:root{--forest:#133d35;--emerald:#176b55;--gold:#e6c67e;--ink:#173a31;--muted:#52665d;--line:#dce5df;font-size:16px;color:var(--ink)}
html,body{height:100%;width:100%;overflow:hidden}body{height:100dvh;height:var(--app-height,100dvh);display:grid;grid-template-rows:auto minmax(0,1fr) auto;background:#f4f7f5}*{box-sizing:border-box}button,.button,input,select,textarea{font:inherit;font-size:1rem}button,.button{min-height:44px;white-space:normal;line-height:1.3;padding:10px 15px;max-width:100%;overflow-wrap:anywhere}.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;background:var(--emerald);color:white;border:1px solid var(--emerald);border-radius:10px;gap:8px}.button.outline{background:white;color:var(--emerald);border-color:#b8c9c0}button:disabled,.button[aria-disabled=true]{opacity:.55;cursor:wait}input,select,textarea{min-height:46px;padding:10px 12px;width:100%;border:1px solid #aabbaf;border-radius:9px;background:white;color:var(--ink)}textarea{min-height:88px;resize:vertical}label{font-size:.875rem;font-weight:650;color:#3e594c;display:grid;gap:7px}small,.muted{font-size:.8rem;color:var(--muted);line-height:1.5}p{line-height:1.5}.hidden,[hidden]{display:none!important}.top{padding:12px max(20px,env(safe-area-inset-right)) 12px max(20px,env(safe-area-inset-left));padding-top:calc(12px + env(safe-area-inset-top));min-width:0;gap:12px}.brand strong{font-size:1.125rem}.brand small{font-size:.75rem}.top-right .outline{min-height:44px;font-size:.875rem}.app-shell,body.authenticated .app-shell{width:100%;height:100%;min-height:0;max-width:none;overflow:hidden;grid-template-columns:236px minmax(0,1fr);margin:0;align-items:stretch}.app-shell main{height:100%;min-height:0;overflow:auto;overscroll-behavior-y:contain;padding:22px 30px 32px;scrollbar-gutter:stable;scroll-padding-block:16px}.app-sidebar{position:relative;top:0;min-height:0;height:100%;max-height:none;margin:0;border-radius:0;padding:22px 14px;overflow-y:auto}.app-sidebar a{font-size:.875rem;min-height:46px}.app-sidebar a>span{font-size:1.25rem;width:22px;text-align:center}.sidebar-role{font-size:1.25rem;margin:10px 10px 20px}.sidebar-caption,.sidebar-foot{font-size:.75rem}.workspace-toolbar{margin-bottom:16px;padding-bottom:12px;gap:8px}.workspace-toolbar>strong{font-size:.875rem;color:var(--muted)}.yearpicker label{font-size:.875rem!important}.yearpicker select{min-height:40px;width:auto}.app-shell .notice{margin:0 0 14px}.notice:empty{display:none}.section-title{align-items:center;gap:12px;margin-bottom:16px}.section-title h2,.app-shell [data-page]>h2{font:650 1.5rem/1.25 Inter,system-ui,sans-serif;margin:0}.panel h3{font:650 1.125rem/1.4 Inter,system-ui,sans-serif}.panel{padding:20px;margin-bottom:16px;border-radius:14px}.panel p{font-size:.875rem;color:var(--muted);margin:10px 0}.app-shell .metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.metric{min-height:120px;padding:16px}.metric span{font-size:.875rem;color:var(--muted)}.metric strong{font:650 clamp(1.125rem,2vw,1.5rem)/1.3 Inter,system-ui,sans-serif;margin:18px 0 0;white-space:normal;overflow-wrap:anywhere}.metric.dark{background:var(--forest);color:white}.metric.dark span,.metric.dark strong{color:white}.list-tools{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin-bottom:12px}.list-tools>label{flex:1 1 140px;min-width:0}.list-tools>label:first-child{flex:2 1 250px}.list-status{font-size:.875rem!important;min-height:22px;margin:8px 0 12px!important}.list-status.error{color:#942f2f}.register-scroll{max-height:480px;max-height:clamp(220px,52dvh,480px);overflow:auto;scrollbar-gutter:stable;overscroll-behavior:contain;border:1px solid var(--line);border-radius:10px}.register-scroll table{min-width:690px}.register-scroll th{font-size:.8125rem;color:#3f5a4c;background:#eef4f0;position:sticky;top:0;z-index:3;padding:14px 12px;text-align:left}.register-scroll td{font-size:.875rem;padding:14px 12px;line-height:1.45;vertical-align:top;border-bottom:1px solid #e3eae5}.register-scroll td small{display:block;font-size:.75rem;color:var(--muted)}.register-scroll th:first-child,.register-scroll td:first-child{position:sticky;left:0;background:#fff;z-index:1;min-width:130px;max-width:210px;overflow-wrap:anywhere;box-shadow:1px 0 0 var(--line)}.register-scroll th:first-child{z-index:4;background:#eef4f0}.register-scroll tbody tr:hover td{background:#f6f9f7}.register-scroll button.text-button{font-size:.875rem;text-decoration:underline;text-underline-offset:3px}.pill{font-size:.8125rem;white-space:normal;padding:5px 9px;line-height:1.3}.pill.warn{background:#fff3d4;color:#795512}.pill.critical{background:#ffe9e6;color:#91382c}.pill.neutral{background:#e9edeb;color:#465c50}.pagination{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:14px}.pagination span{font-size:.875rem;color:var(--muted);text-align:center}.pagination button{min-width:44px;font-size:.875rem;padding:10px}.secondary>summary{font-size:1rem;line-height:1.5;font-weight:650;cursor:pointer;min-height:32px;padding:4px 0;list-style-position:inside}.secondary[open]>summary{padding-bottom:14px}.secondary summary strong{float:right}.secondary li{font-size:.875rem;line-height:1.7}.revenue-lines div,.line{font-size:.875rem;gap:16px;flex-wrap:wrap}.line span{color:var(--muted)}.line strong{white-space:normal;text-align:right}.month-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important;gap:8px}.month b,.month span{font-size:.8rem;white-space:normal}.account-picker{display:grid;gap:7px;margin:14px 0}.account-picker select{min-width:0}.account-picker small{min-height:18px}.member-balance{background:var(--forest);color:white;padding:22px;border-radius:14px;margin-bottom:16px}.member-balance p{color:#d4e7dd;margin:8px 0}.member-balance strong.balance-value{display:block;font-size:2rem;line-height:1.35;margin:12px 0}.member-balance h3{margin:0;color:white;font-size:1.15rem}.member-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 0}.member-actions .button{background:var(--gold);color:var(--forest);border-color:var(--gold)}#waveForm{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}#waveForm button,#waveForm .form-error{grid-column:1/-1}.payment-status{margin-top:14px;padding:14px;background:#edf5f0;border-radius:10px;line-height:1.5}.payment-status.error{background:#fff0ed}.payment-steps{display:flex;gap:10px;flex-wrap:wrap;font-size:.875rem;margin:8px 0 12px;padding-left:20px}.payment-steps .done{color:#146446}.payment-steps .current{font-weight:750}.payment-row{padding:14px 0;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.payment-row small{display:block}.actions-menu summary{cursor:pointer;min-height:44px;display:flex;align-items:center;color:var(--emerald);font-weight:650}.actions-menu[open]{min-width:190px}.actions-menu button,.actions-menu .button{display:flex;width:100%;margin:6px 0;text-align:left;justify-content:start}.danger,button.danger{background:#963b32;color:white;border-color:#963b32}.danger.outline,button.danger.outline{background:white;color:#963b32;border-color:#d6a19a}.form-error,.field-error{color:#8f3029!important;font-size:.875rem!important;background:#fff0ed;border:1px solid #e8b3aa;border-radius:8px;padding:10px 12px;line-height:1.5}.field-error{margin:6px 0 0;padding:8px;font-weight:400}.invalid,[aria-invalid=true]{border-color:#a63028!important}.dialog-body{padding:24px}.dialog-body h2{font:650 1.375rem/1.3 Inter,system-ui,sans-serif;margin:0}.dialog-head{align-items:center;gap:12px;margin-bottom:16px}.dialog-head .close{flex-shrink:0;min-width:44px;min-height:44px}.dialog-body label{font-size:.875rem}.dialog-body .form-grid{gap:14px}.dialog-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding-top:18px;margin-top:18px}.dialog-foot span{font-size:.8rem}.dialog-body fieldset{border:0;padding:0;margin:16px 0;min-width:0}.dialog-body legend{font-weight:700;font-size:1rem;margin-bottom:14px}.stepper{list-style:none;padding:0;margin:12px 0 20px;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.stepper li{font-size:.75rem;border-bottom:3px solid #dce6df;padding:8px 0;color:var(--muted)}.stepper li[aria-current=step]{border-color:var(--emerald);font-weight:750;color:var(--emerald)}dialog{border:1px solid var(--line);border-radius:16px;width:min(680px,calc(100vw - 32px));max-width:100%;max-height:calc(var(--app-height,100dvh) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px);padding:0;overflow-y:auto;overscroll-behavior:contain;color:var(--ink)}dialog::backdrop{background:#0c2829a8}.auth-gate{width:100%;height:100%;min-height:0;max-width:none;margin:0;overflow:auto;padding:30px 18px}.auth-card{max-width:480px;margin:0 auto;padding:26px;border-radius:16px}.auth-card h1{font-size:1.75rem;line-height:1.2;margin-top:12px}.auth-form label{font-size:.875rem}.auth-form input{font-size:1rem;min-height:48px}.auth-card>p,.auth-help{font-size:.875rem}.auth-secondary{min-height:48px}.eyebrow{font-size:.75rem}.toast{position:fixed;z-index:100;bottom:calc(18px + env(safe-area-inset-bottom));top:auto;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);margin:0;font-size:.875rem;line-height:1.5}.mobile-nav{display:none}footer{font-size:.75rem;padding-top:16px;margin-top:20px}#biometricDevices p{font-size:.875rem;line-height:1.5}#biometricDevices small{font-size:.75rem}#biometricDevices button{margin-top:8px}.inline-actions{display:flex;gap:8px;flex-wrap:wrap}.loading-region{opacity:.65;pointer-events:none}
@media(max-width:1100px){.app-shell .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){body{position:fixed;left:0;right:0;top:var(--visual-top,0)}body.authenticated .app-shell{grid-template-columns:minmax(0,1fr)}.app-shell main{padding:18px 14px 24px;scrollbar-gutter:auto}.app-sidebar{position:fixed;top:env(safe-area-inset-top);bottom:env(safe-area-inset-bottom);left:0;height:auto;width:min(300px,calc(100vw - 40px));z-index:40;transform:translateX(-110%);transition:transform .18s ease}.navigation-open .app-sidebar{transform:translateX(0)}.nav-backdrop{position:fixed;inset:0;width:100%;height:100%;z-index:35}.nav-toggle{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:6px;font-size:24px}.top{padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top));gap:8px}.top .brand strong{font-size:1rem}.top .brand .mark,.top .brand small{display:none}.top-right #logoutBtn{min-height:44px;max-width:108px;padding:8px;font-size:.8125rem}.mobile-nav{display:flex;align-items:stretch;gap:2px;background:var(--forest);padding:5px max(5px,env(safe-area-inset-right)) calc(5px + env(safe-area-inset-bottom)) max(5px,env(safe-area-inset-left));border-top:1px solid #315b50}.mobile-nav a,.mobile-nav button{flex:1;min-width:0;min-height:48px;display:flex;align-items:center;justify-content:center;padding:8px 3px;border:0;border-radius:9px;background:transparent;color:#d9e7df;text-decoration:none;font-size:.875rem;font-weight:650;line-height:1.25;text-align:center;overflow-wrap:anywhere}.mobile-nav [aria-current=page]{background:var(--gold);color:var(--forest)}.toast{bottom:calc(76px + env(safe-area-inset-bottom))}.section-title h2{font-size:1.375rem}.panel{padding:15px}.list-tools{gap:10px}.list-tools>label{flex:1 1 110px}.list-tools>label:first-child{flex:1 1 100%}.register-scroll{max-height:clamp(180px,42dvh,360px)}.register-scroll td,.register-scroll th{padding:12px 10px}.register-scroll table{min-width:650px}.register-scroll td:first-child{max-width:145px}.month-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.secondary>summary{font-size:.9375rem}.metric{min-height:108px;padding:14px}.metric span{font-size:.8125rem}.metric strong{font-size:1.25rem}.dialog-body{padding:20px 16px}.dialog-foot{flex-direction:row;flex-wrap:wrap}.wizard-actions>button{flex:1}.auth-gate{padding:20px 14px}.auth-card{padding:24px 20px}.auth-card h1{font-size:1.75rem}.member-balance{padding:20px}.member-balance strong.balance-value{font-size:1.75rem}#waveForm{grid-template-columns:1fr}.detail-dialog{width:calc(100vw - 20px)}.form-grid{grid-template-columns:minmax(0,1fr)}.form-grid .wide{grid-column:1}.inline-actions{width:auto}.inline-actions>button{flex:initial}.workspace-toolbar{padding-bottom:10px;margin-bottom:14px}.line{gap:7px}.section-title{flex-wrap:wrap}}
@media(max-height:500px) and (max-width:900px){.top{padding-block:4px}.mobile-nav{padding-top:2px;padding-bottom:calc(2px + env(safe-area-inset-bottom))}.mobile-nav a,.mobile-nav button{min-height:44px}.app-shell main{padding-top:10px}.auth-gate{padding-top:10px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}
@media print{html,body{height:auto!important;overflow:visible!important;position:static!important;display:block!important}.app-shell,body.authenticated .app-shell,.app-shell main{height:auto!important;overflow:visible!important;display:block!important}.top,.mobile-nav,.app-sidebar,.workspace-toolbar,.pagination,.list-tools,.button,button,.notice,.toast,footer{display:none!important}.panel{break-inside:avoid;border:0;padding:10px 0}.register-scroll{max-height:none!important;overflow:visible!important}details:not([open])>*:not(summary){display:none!important}}

.app-refresh{margin:16px 12px 0;width:calc(100% - 24px);white-space:normal;color:var(--gold,#e4c574);border-color:currentColor;min-height:44px}.update-notice{position:fixed;z-index:1000;bottom:calc(env(safe-area-inset-bottom,0px) + 84px);left:50%;transform:translateX(-50%);width:min(360px,calc(100% - 32px));padding:16px;border:1px solid #b5cabf;border-radius:14px;background:#fff;color:#153d36;box-shadow:0 8px 32px #0003;font-size:1rem}.update-notice[hidden]{display:none}.update-notice p{margin:0 0 12px}.update-notice button{min-height:44px}
/* Keep invitation actions reachable when the users table is scrolled sideways. */
@media(max-width:900px){#accessPanel .register-scroll td:first-child{position:static}#accessPanel .register-scroll th:first-child{left:auto}}

.check-line{display:flex;align-items:flex-start;gap:.6rem}.check-line input{width:1.3rem;min-height:1.3rem;flex:none;margin-top:.2rem}
