@import "https://fonts.googleapis.com/css2?family=Be+Vietnam+Pro:ital,wght@0,400;0,500;0,600;0,700&family=JetBrains+Mono:wght@400;500&display=swap";.button{border-radius:var(--radius-control);cursor:pointer;font:inherit;align-items:center;gap:var(--space-8);letter-spacing:-.01em;white-space:nowrap;border:1px solid #0000;justify-content:center;font-weight:600;line-height:1;transition:background-color .15s,border-color .15s,box-shadow .15s,color .15s,opacity .15s,transform .12s;display:inline-flex}.button:disabled{cursor:not-allowed;opacity:.5}.button:not(:disabled):hover{transform:translateY(-1px)}.button:not(:disabled):active{transform:scale(.98)}.button>span{align-items:center;gap:var(--space-8);display:inline-flex}.button--sm{height:var(--control-height-sm);padding:0 12px;font-size:12px}.button--md{height:36px;padding:0 16px;font-size:13px}.button--lg{height:var(--control-height-lg);padding:0 20px;font-size:14px}.button--primary{background:var(--color-primary);color:#fff;box-shadow:var(--shadow-button-primary);border-color:#0000001a}.button--primary:not(:disabled):hover{background:var(--color-primary-hover)}.button--accent{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-button-accent);border-color:#00000014}.button--accent:not(:disabled):hover{background:var(--color-accent-hover)}.button--secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text);box-shadow:var(--shadow-control)}.button--secondary:not(:disabled):hover{background:var(--color-surface-muted)}.button--ghost{color:var(--color-text-secondary);background:0 0}.button--ghost:not(:disabled):hover{background:var(--color-surface-muted);color:var(--color-text)}.button--danger{background:var(--color-danger);color:#fff;border-color:#00000014}.button--danger:not(:disabled):hover{background:var(--color-danger-hover)}.button--outline{color:var(--color-primary);background:0 0;border-color:#bfdbfe}.button--outline:not(:disabled):hover{background:#eff6ff}.button__spinner{border:2px solid;border-top-color:#0000;border-radius:999px;width:13px;height:13px;animation:.7s linear infinite button-spin}@keyframes button-spin{to{transform:rotate(360deg)}}@media (width<=767px){.button{min-height:44px}}.button--primary>span{color:#fff!important}.tooltip{display:inline-flex;position:relative}.tooltip__content{background:var(--color-sidebar);border-radius:var(--radius-small);color:#fff;pointer-events:none;white-space:nowrap;z-index:20;max-width:220px;padding:6px 8px;font-size:12px;line-height:1.35;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip__content:after{border:5px solid #0000;border-top-color:var(--color-sidebar);content:"";position:absolute;top:100%;left:50%;transform:translate(-50%)}@media (hover:none){.tooltip__content{display:none}}.app-shell{background:var(--color-bg);grid-template-columns:240px minmax(0,1fr);min-height:100vh;display:grid}.app-sidebar{background:var(--color-sidebar);height:100vh;padding:var(--space-20) var(--space-12);flex-direction:column;display:flex;position:sticky;top:0}.app-sidebar__brand{color:#fff;align-items:center;gap:var(--space-12);padding:var(--space-8) var(--space-12) var(--space-24);display:flex}.app-sidebar__brand>span{background:var(--color-primary);border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;font-weight:700;display:flex}.app-sidebar__brand strong,.app-sidebar__brand small{display:block}.app-sidebar__brand strong{font-size:14px}.app-sidebar__brand small{color:#94a3b8;margin-top:2px;font-size:10px}.app-sidebar nav,.app-nav__group{gap:4px;display:grid}.app-nav__item{border-radius:var(--radius-small);color:#b8c7d9;cursor:pointer;font:inherit;align-items:center;gap:var(--space-12);min-height:40px;padding:0 var(--space-12);text-align:left;background:0 0;border:0;width:100%;display:flex}.app-nav__item:hover{color:#fff;background:#ffffff12}.app-nav__item--active{color:#fff;background:#2563eb38;font-weight:600}.app-nav__item__chevron{margin-left:auto;transition:transform .2s}.app-nav__group--expanded .app-nav__item__chevron{transform:rotate(180deg)}.app-nav__subnav{margin:0 0 var(--space-4);gap:2px;padding-left:44px;display:grid}.app-nav__subitem{color:#9eb0c7;cursor:pointer;font:500 12px/1.2 var(--font-sans);min-height:32px;padding:0 var(--space-12);text-align:left;background:0 0;border:0;border-radius:8px;transition:background-color .15s,color .15s}.app-nav__subitem:hover{color:#fff;background:#ffffff12}.app-nav__subitem--active{color:#fff;background:#2563eb29;font-weight:700}.app-sidebar__logout{color:#cbd5e1;justify-content:flex-start;margin-top:auto}.app-shell__content{min-width:0;position:relative}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);height:64px;padding:0 var(--space-24);z-index:5;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.app-header p{color:var(--color-text-muted);text-transform:uppercase;margin:0;font-size:11px;font-weight:600}.app-header strong{font-size:14px}.app-header__actions{align-items:center;gap:8px;display:flex}.app-header__menu,.app-header__notifications{background:var(--color-surface-muted);border:0;border-radius:999px;justify-content:center;align-items:center;width:34px;height:34px;display:flex;position:relative}.app-header__menu{color:var(--color-text);cursor:pointer;display:none}.app-header__notifications span{background:var(--color-danger);color:#fff;border:2px solid #fff;border-radius:999px;justify-content:center;align-items:center;min-width:17px;height:17px;font-size:9px;display:flex;position:absolute;top:-5px;right:-6px}.app-main{padding:var(--space-20) var(--space-24) var(--space-40)}.app-main>.members-page{min-height:auto;padding:0}.app-notification-panel,.app-mobile-nav{display:none}@media (width>=768px) and (width<=1023px){.app-shell{grid-template-columns:88px minmax(0,1fr)}.app-sidebar{padding:var(--space-20) var(--space-12);align-items:center}.app-sidebar__brand{padding:var(--space-8) 0 var(--space-24);justify-content:center}.app-sidebar__brand>div,.app-nav__item span,.app-nav__item__chevron{display:none}.app-sidebar nav{width:100%}.app-nav__group{position:relative}.app-nav__item{justify-content:center;min-height:44px;padding:0}.app-nav__subnav{background:var(--color-sidebar);padding:var(--space-8);z-index:10;border:1px solid #ffffff1a;border-radius:10px;width:184px;margin:0;position:absolute;top:0;left:56px;box-shadow:0 12px 28px #0f233a47}.app-nav__subitem{min-height:36px}.app-sidebar__logout{justify-content:center}.app-sidebar__logout>span{font-size:0}.app-sidebar__logout svg{width:18px;height:18px}.app-header{padding:0 var(--space-20)}.app-main{padding:var(--space-20)}}@media (width<=767px){.app-shell{display:block}.app-sidebar{display:none}.app-header{padding:0 var(--space-16)}.app-header__menu{display:flex}.app-main{padding:var(--space-20) var(--space-16) var(--space-40)}.app-notification-panel{display:none}.app-mobile-nav{display:block}.app-mobile-nav__backdrop{z-index:29;background:#0f233a61;border:0;position:fixed;inset:0}.app-mobile-nav__panel{background:var(--color-surface);border:1px solid var(--color-border);left:var(--space-12);max-height:min(72dvh,560px);right:var(--space-12);z-index:30;border-radius:20px;flex-direction:column;display:flex;position:fixed;top:72px;overflow:hidden;box-shadow:0 20px 48px #0f233a47}.app-mobile-nav__heading{border-bottom:1px solid var(--color-border);padding:var(--space-16);justify-content:space-between;align-items:center;display:flex}.app-mobile-nav__heading small{color:var(--color-text-muted);text-transform:uppercase;font-size:11px;font-weight:600}.app-mobile-nav__heading h2{margin:2px 0 0;font-size:18px}.app-mobile-nav__heading button{background:var(--color-surface-muted);color:var(--color-text);cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.app-mobile-nav__panel nav{padding:var(--space-12);gap:4px;display:grid;overflow-y:auto}.app-mobile-nav__group{gap:4px;display:grid}.app-mobile-nav__item{color:var(--color-text);cursor:pointer;align-items:center;gap:var(--space-12);min-height:46px;padding:0 var(--space-12);text-align:left;background:0 0;border:0;border-radius:10px;font:500 14px/1.2 inherit;display:flex}.app-mobile-nav__item--active{color:var(--color-primary);background:#2563eb1a;font-weight:700}.app-mobile-nav__item__chevron{margin-left:auto;transition:transform .2s}.app-mobile-nav__group--expanded .app-mobile-nav__item__chevron{transform:rotate(180deg)}.app-mobile-nav__subnav{padding:0 0 var(--space-4) 44px;gap:4px;display:grid}.app-mobile-nav__subitem{color:var(--color-text-secondary);cursor:pointer;min-height:36px;padding:0 var(--space-12);text-align:left;background:0 0;border:0;border-radius:8px;font:500 13px/1.2 inherit}.app-mobile-nav__subitem--active{color:var(--color-primary);background:#2563eb1a;font-weight:700}.app-mobile-nav__logout{border-top:1px solid var(--color-border);color:var(--color-text-muted);padding:var(--space-16);border-radius:0;justify-content:flex-start;margin:0}}.app-header .tooltip__content{bottom:auto;left:auto;right:0;top:calc(100% + var(--space-8));transform:none}.app-header .tooltip__content:after{border-bottom-color:var(--color-sidebar);border-top-color:#0000;inset:auto 12px 100% auto;transform:none}.app-shell__loading{color:var(--color-text-secondary);margin:var(--space-24) 0}.app-nav__subitem--active,.app-mobile-nav__item--active,.app-mobile-nav__subitem--active{font-weight:var(--font-weight-semibold)}.app-header__notifications{color:var(--color-text);cursor:pointer;border:0}.app-notification-panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);gap:var(--space-8);max-height:min(560px,100vh - 90px);padding:var(--space-12);right:var(--space-24);z-index:8;width:min(380px,100vw - 32px);display:grid;position:absolute;top:72px;overflow:auto;box-shadow:0 16px 40px #0f172a26}.app-notification-panel__heading{justify-content:space-between;align-items:center;display:flex}.app-notification-panel__heading h2{margin:0;font-size:16px}.app-notification-panel__heading button,.app-notification-panel article button{color:var(--color-primary);cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.app-notification-panel article{border-radius:var(--radius-small);padding:var(--space-12)}.app-notification-panel__unread{background:var(--color-surface-muted)}.app-notification-panel article strong{font-size:14px}.app-notification-panel article p{color:var(--color-text-secondary);margin:var(--space-4) 0 var(--space-8);font-size:13px;line-height:1.45}@media (width<=767px){.app-notification-panel{right:var(--space-16);top:72px}}.auth-layout{background:var(--color-sidebar);grid-template-columns:minmax(0,1fr) 440px;min-height:100vh;display:grid}.field small{color:var(--color-text-secondary);font-size:11px}.field select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);height:40px;padding:0 12px}.dashboard-home{gap:var(--space-24);display:grid}.dashboard-home header p{color:var(--color-primary);text-transform:uppercase;margin:0;font-size:12px;font-weight:700}.dashboard-home h1{margin:var(--space-4) 0 0;font-size:26px}.dashboard-kpis{gap:var(--space-16);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.dashboard-kpis article,.dashboard-actions{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-control);padding:var(--space-20)}.dashboard-kpis span{color:var(--color-text-secondary);font-size:12px;display:block}.dashboard-kpis strong{margin-top:var(--space-8);font-size:26px;line-height:1.15;display:block}.dashboard-actions h2{margin:0 0 var(--space-16);font-size:18px}.dashboard-actions>div{gap:var(--space-12);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.dashboard-actions button{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);cursor:pointer;font:inherit;min-height:64px;padding:var(--space-12);text-align:left;justify-content:space-between;align-items:center;display:flex}.dashboard-actions button:hover{border-color:var(--color-primary);color:var(--color-primary)}.dashboard-actions button span{font-size:20px}@media (width<=767px){.dashboard-kpis,.dashboard-actions>div{grid-template-columns:1fr}}.auth-brand{color:#f1f5f9;background:linear-gradient(135deg,#0b1f33,#102a43);padding:36px 44px;position:relative;overflow:hidden}.auth-brand:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff06 1px,#0000 1px),linear-gradient(90deg,#ffffff06 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0}.auth-brand>*{position:relative}.auth-logo{align-items:center;gap:10px;display:flex}.auth-logo>span{background:var(--color-primary);border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.auth-logo strong,.auth-logo small{display:block}.auth-logo strong{font-size:15px}.auth-logo small{color:#94a3b8;letter-spacing:.08em;text-transform:uppercase;font-size:10px}.auth-brand__content{flex-direction:column;justify-content:center;align-items:flex-start;max-width:460px;height:calc(100vh - 140px);display:flex}.auth-eyebrow{color:#60a5fa;letter-spacing:.1em;text-transform:uppercase;margin:0 0 14px;font-size:11px;font-weight:700}.auth-brand h1{letter-spacing:-.045em;margin:0 0 16px;font-size:38px;line-height:1.1}.auth-brand h1 em{color:#60a5fa;font-style:normal}.auth-brand__lead{color:#94a3b8;margin:0 0 32px;font-size:14px;line-height:1.7}.auth-features{gap:12px;display:grid}.auth-feature{align-items:center;gap:12px;display:flex}.auth-feature>span{color:#60a5fa;background:#2563eb29;border:1px solid #60a5fa38;border-radius:9px;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.auth-feature p{margin:0}.auth-feature strong,.auth-feature small{display:block}.auth-feature strong{color:#dbeafe;font-size:13px}.auth-feature small{color:#94a3b8;margin-top:2px;font-size:11px}.auth-brand__footer{color:#64748b;margin:0;font-size:11px;position:absolute;bottom:32px}.auth-panel{background:var(--color-bg);justify-content:center;align-items:center;padding:40px 36px;display:flex}.auth-card{width:100%;max-width:368px}.auth-card h2{letter-spacing:-.035em;margin:0 0 6px;font-size:24px}.auth-card__subtitle{color:var(--color-text-secondary);margin:0 0 28px;font-size:13px}.auth-form{gap:16px;display:grid}.field{gap:6px;display:grid}.field label{color:var(--color-text);font-size:12px;font-weight:600}.field input{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);width:100%;height:40px;padding:0 12px;transition:border-color .15s,box-shadow .15s}.field input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb1f}.field__error,.auth-alert{color:var(--color-danger);margin:0;font-size:12px}.auth-alert{border-radius:var(--radius-small);background:#fef2f2;border:1px solid #fecaca;padding:10px 12px}.auth-note{color:var(--color-text-secondary);text-align:center;margin:18px 0 0;font-size:12px;line-height:1.6}.auth-link{color:var(--color-primary);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-weight:600}.verification-code{font-family:var(--font-mono);letter-spacing:.35em;text-align:center;font-size:20px!important}.auth-success{border-radius:var(--radius-card);color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;padding:16px}.auth-success h2{font-size:20px}.auth-status-icon{color:var(--color-primary);background:#dbeafe;border-radius:999px;justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:16px;display:flex}.admin-login-card{border-top:3px solid #1d4ed8;padding-top:18px}.admin-login-card__eyebrow{color:#1d4ed8;letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:6px;margin:0 0 12px;font-size:11px;font-weight:800;display:flex}@media (width<=767px){.auth-layout{display:block}.auth-brand{min-height:220px;padding:28px 24px}.auth-brand__content{display:none}.auth-brand__footer{bottom:24px;left:24px}.auth-panel{align-items:flex-start;min-height:calc(100vh - 220px);padding:32px 24px}.auth-card{max-width:none}.auth-card h2{font-size:22px}}.field input,.field select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);height:var(--control-height);width:100%;padding:0 12px;transition:border-color .15s,box-shadow .15s}.field input:focus,.field select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb1f}.dashboard-kpis article,.dashboard-actions{box-shadow:var(--shadow-card)}.dashboard-kpis article{border-top:3px solid #bfdbfe}.dashboard-actions button{padding:var(--space-12) var(--space-16);font-weight:600;transition:background-color .15s,border-color .15s,box-shadow .15s,color .15s,transform .12s}.dashboard-actions button:hover{background:var(--color-surface);box-shadow:var(--shadow-control);border-color:#93c5fd;transform:translateY(-1px)}.dashboard-actions button:active{transform:scale(.99)}:root{--color-bg:#f5f8fc;--color-surface:#fff;--color-surface-muted:#eef3f9;--color-surface-hover:#f8fafd;--color-border:#e4ebf5;--color-border-strong:#cbd8e8;--color-text:#102a43;--color-text-secondary:#64748b;--color-text-muted:#94a3b8;--color-primary:#2563eb;--color-primary-hover:#1d4ed8;--color-accent:#f97316;--color-accent-hover:#ea6c0a;--color-teal:#0f766e;--color-success:#16a34a;--color-warning:#d97706;--color-danger:#dc2626;--color-danger-hover:#b91c1c;--color-info:#0284c7;--color-sidebar:#0b1f33;--font-sans:"Be Vietnam Pro", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Courier New", monospace;--font-weight-regular:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--space-4:4px;--space-8:8px;--space-12:12px;--space-16:16px;--space-20:20px;--space-24:24px;--space-32:32px;--space-40:40px;--space-48:48px;--radius-small:8px;--radius-button-small:10px;--radius-control:10px;--radius-button-large:12px;--radius-card:16px;--control-height-sm:30px;--control-height:40px;--control-height-lg:44px;--shadow-control:0 1px 2px #102a430a;--shadow-card:0 8px 24px #102a430d;--shadow-card-hover:0 12px 30px #102a4314;--shadow-button-primary:0 1px 3px #2563eb40, 0 4px 12px #2563eb26;--shadow-button-accent:0 1px 3px #f9731640, 0 4px 12px #f9731626}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:14px;font-weight:var(--font-weight-regular);-webkit-font-smoothing:antialiased;line-height:1.5}h1{font-weight:var(--font-weight-bold)}h2,h3,h4,strong,b{font-weight:var(--font-weight-semibold)}code{font-weight:var(--font-weight-medium)}th{font-weight:var(--font-weight-semibold)}button,input,select,textarea{font:inherit}button{font-weight:var(--font-weight-semibold)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.app-bootstrap{color:var(--color-text-secondary);align-items:center;gap:var(--space-12);flex-direction:column;justify-content:center;min-height:100vh;display:flex}.app-bootstrap p{margin:0}.app-bootstrap__spinner{border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:28px;height:28px;animation:.8s linear infinite app-bootstrap-spin}@keyframes app-bootstrap-spin{to{transform:rotate(360deg)}}.app-main>:is(.members-page,.staff-page){min-height:auto;padding:0}:is(.members-page,.staff-page)>header{margin:0 0 var(--space-24)}:is(.members-page,.staff-page)>header h1{margin:var(--space-4) 0 0}:is(.members-page,.staff-page)>:not(header)+:not(header){margin-top:var(--space-24)}:is(.members-grid,.staff-grid){gap:var(--space-24)}.members-workspace-stacked{gap:var(--space-24);display:grid}.attendance-monitor{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);display:grid;overflow:hidden}.attendance-monitor__picker{align-items:end;gap:var(--space-20);padding:var(--space-20) var(--space-24);grid-template-columns:minmax(15rem,.7fr) minmax(20rem,1.3fr);display:grid}.attendance-monitor__label{color:var(--color-primary);align-items:center;gap:var(--space-12);display:flex}.attendance-monitor__label div{gap:2px;display:grid}.attendance-monitor__label span{color:var(--color-text-secondary);font-size:12px}.attendance-monitor__label strong{color:var(--color-text);font-size:16px}.attendance-monitor select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);font:inherit;height:var(--control-height);padding:0 var(--space-12);font-weight:600}.attendance-monitor select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb1f}.attendance-monitor__summary{background:var(--color-surface-muted);border-top:1px solid var(--color-border);gap:var(--space-24);padding:var(--space-16) var(--space-24);grid-template-columns:minmax(0,1fr) auto;display:grid}.attendance-monitor__session{gap:var(--space-4);display:grid}.attendance-monitor__session>span{color:var(--color-text-secondary);letter-spacing:.06em;font-size:11px;font-weight:700}.attendance-monitor__session strong{font-size:16px}.attendance-monitor__session small{color:var(--color-text-secondary);font-size:12px}.attendance-monitor__metrics{gap:var(--space-20);grid-template-columns:repeat(3,minmax(6.5rem,1fr));display:grid}.attendance-monitor__metrics div{gap:2px;display:grid;position:relative}.attendance-monitor__metrics svg{color:var(--color-text-secondary);margin-bottom:2px}.attendance-monitor__metrics span{color:var(--color-text-secondary);font-size:12px}.attendance-monitor__metrics strong{font-variant-numeric:tabular-nums;font-size:18px}.attendance-monitor__empty{border-top:1px solid var(--color-border);color:var(--color-text-secondary);align-items:center;gap:var(--space-8);padding:var(--space-16) var(--space-24);font-size:13px;display:flex}.attendance-session-list .list-heading p{color:var(--color-text-secondary);margin:var(--space-4) 0 0;font-size:13px}.attendance-session-list__count{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;font-size:13px}.attendance-session-list tbody tr{transition:background-color .15s}.attendance-session-list tbody tr.is-selected{background:var(--color-surface-muted)}.attendance-session-list__summary{background:var(--color-surface-muted);border-top:1px solid var(--color-border);align-items:center;gap:var(--space-24);margin-top:var(--space-16);padding:var(--space-16);grid-template-columns:minmax(0,1fr) auto;display:grid}.attendance-session-list__summary>div:first-child{gap:var(--space-4);display:grid}.attendance-session-list__summary>div:first-child span{color:var(--color-text-secondary);letter-spacing:.06em;font-size:11px;font-weight:700}.attendance-session-list__summary>div:first-child strong{font-size:16px}.attendance-session-list__summary>div:first-child small{color:var(--color-text-secondary);font-size:12px}.staff-workspace-stacked{gap:var(--space-24);display:grid}.staff-form--create{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end}.staff-form--create h2,.staff-form--create>button{grid-column:1/-1}.training-template-form{grid-template-columns:repeat(3,minmax(0,1fr))}.training-template-form h2,.training-template-form>button{grid-column:1/-1}.training-template-form>button,.training-action-form>button{justify-self:start;min-width:12rem}.training-action-grid{gap:var(--space-24);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.training-action-form{grid-template-columns:repeat(2,minmax(0,1fr));align-content:start}:is(.training-action-form h2,.training-action-form>button,.training-result-form label:has(textarea)),.training-form-heading,.training-field-group{grid-column:1/-1}.training-form-heading{border-bottom:1px solid var(--color-border);gap:var(--space-4);padding-bottom:var(--space-12);display:grid}.training-form-heading span{color:var(--color-primary);font-size:11px;font-weight:var(--font-weight-semibold);letter-spacing:.06em}.training-form-heading h2{margin:0;font-size:18px}.training-field-group{gap:var(--space-12);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.training-field-group h3{color:var(--color-text-secondary);font-size:12px;font-weight:var(--font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;grid-column:1/-1;margin:0}.staff-form--create>button{justify-self:start;min-width:12rem}.members-form--member-create{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}.members-form--member-create h2{grid-column:1/-1}.members-form--member-create>button{grid-column:1/-1;justify-self:start;min-width:12rem}.members-form--booking-create{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.members-form--booking-create h2,.members-form--booking-create>button{grid-column:1/-1}.members-form--payment-create{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}:is(.members-form--payment-create h2,.members-form--payment-create>label:has(textarea),.members-form--payment-create>button){grid-column:1/-1}.members-form--attendance-checkin{grid-template-columns:repeat(2,minmax(0,1fr));align-items:end}.members-form--attendance-checkin h2,.members-form--attendance-checkin small,.members-form--attendance-checkin>button{grid-column:1/-1}.members-form--attendance-checkin>button,.members-form--payment-create>button,.members-form--booking-create>button{justify-self:start;min-width:12rem}.payment-table__actions{gap:var(--space-8);flex-wrap:wrap;display:flex}.payment-table__actions .button{white-space:nowrap}.members-form,.staff-form{gap:var(--space-16)}.members-list th,.members-list td,.staff-list th,.staff-list td{padding-block:var(--space-12)}.members-page .members-list th,.staff-page .staff-list th,.app-sidebar .app-nav__subitem--active,.app-mobile-nav .app-mobile-nav__subitem--active{font-weight:var(--font-weight-semibold)}.dashboard-home .dashboard-metric strong{font-weight:var(--font-weight-bold)}.attendance-class-picker{color:var(--color-text);gap:var(--space-8);margin:0 0 var(--space-20);max-width:26rem;font-size:12px;font-weight:600;display:grid}.attendance-class-picker select{appearance:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);min-height:var(--control-height);padding:0 var(--space-12);width:100%;transition:border-color .15s,box-shadow .15s,background-color .15s}.attendance-class-picker select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb1f}.dashboard-home{gap:var(--space-24)}.membership-workspace{grid-template-columns:minmax(420px,.9fr) minmax(520px,1.1fr)}.membership-workspace--manager{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-card);align-items:start;gap:var(--space-16);padding:var(--space-16);grid-template-columns:minmax(23rem,.78fr) minmax(0,1.22fr)}.membership-workspace--manager>:is(.members-form,.members-list){background:var(--color-surface);box-shadow:none}.membership-workspace--manager>.members-list{grid-area:1/2;min-width:0}.membership-workspace--manager>.members-form{grid-area:1/1}.membership-workspace--assignment-only{grid-template-columns:minmax(0,1.35fr) minmax(19rem,.65fr);align-items:stretch}.membership-workspace--assignment-only>.members-list{grid-column:1/-1}.membership-assignment-sidebar,.membership-manager-followup{gap:var(--space-24);display:grid}.membership-assignment-sidebar{grid-template-rows:repeat(2,minmax(0,1fr));min-height:100%}.membership-assignment-sidebar .members-list{min-width:0;height:100%}.membership-assignment-sidebar .members-list:only-child{grid-row:1/-1}.membership-list-content{border-top:1px solid var(--color-border);margin-top:var(--space-16);padding-top:var(--space-16)}.membership-list-content h3{margin:0 0 var(--space-12);font-size:14px}.classes-reception-workspace{gap:var(--space-24);display:grid}.classes-reception-schedule{min-width:0}.classes-reception-schedule .list-heading p{color:var(--color-text-secondary);margin:var(--space-4) 0 0}.class-approval-list{gap:var(--space-12);display:grid}.class-approval-panel .change-request{align-items:center;gap:var(--space-16);justify-content:space-between;display:flex}.class-approval-panel .change-request p{color:var(--color-text-secondary);margin:var(--space-4) 0 0}.class-approval-actions{gap:var(--space-8);flex-shrink:0;display:flex}.membership-workspace .members-form label small{color:var(--color-text-secondary);font-size:11px;font-weight:400;line-height:1.45}.membership-workspace .members-form{padding-bottom:calc(var(--space-20) + 44px);position:relative}.membership-workspace .members-form>button:last-child{bottom:var(--space-20);left:var(--space-20);right:var(--space-20);margin:0;position:absolute}@media (width>=1024px){.membership-workspace--manager .members-form{grid-template-columns:repeat(2,minmax(0,1fr))}.membership-workspace--manager .members-form>h2,.membership-workspace--manager .members-form>fieldset,.membership-workspace--manager .members-form>button:last-child{grid-column:1/-1}.membership-workspace--manager .members-form>label:has(textarea){grid-column:1/-1}}.selected-member-summary{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-control);gap:var(--space-12);padding:var(--space-12);display:grid}.selected-member-summary>div{gap:var(--space-4);display:grid}.selected-member-summary>div span,.selected-member-summary dt{color:var(--color-text-secondary);font-size:11px;font-weight:600}.selected-member-summary strong{color:var(--color-text);font-size:14px}.selected-member-summary p{color:var(--color-text-secondary);margin:0;font-size:12px;line-height:1.5}.selected-member-summary dl{gap:var(--space-8);grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.selected-member-summary dl div{min-width:0}.selected-member-summary dt,.selected-member-summary dd{margin:0}.class-session-select{position:relative}.class-session-select__trigger{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);cursor:pointer;font:inherit;height:var(--control-height);padding:0 var(--space-12);text-align:left;justify-content:space-between;align-items:center;width:100%;font-weight:600;display:flex}.class-session-select__trigger:focus-visible,.class-session-select__trigger[aria-expanded=true]{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb1f}.class-session-select__menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);box-shadow:var(--shadow-card);margin-top:var(--space-4);z-index:10;max-height:18rem;display:grid;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.class-session-select__menu p{color:var(--color-text-secondary);padding:var(--space-12);margin:0;font-size:12px}.class-session-select__option{border:0;border-bottom:1px solid var(--color-border);color:var(--color-text);cursor:pointer;font:inherit;gap:var(--space-4);padding:var(--space-12);text-align:left;background:0 0;width:100%;display:grid}.class-session-select__option:last-child{border-bottom:0}.class-session-select__option:hover,.class-session-select__option:focus-visible,.class-session-select__option[aria-selected=true]{background:var(--color-surface-muted);outline:none}.class-session-select__option strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.class-session-select__option small{color:var(--color-text-secondary);font-size:11px}.selected-member-summary dd{color:var(--color-text);margin-top:var(--space-4);overflow-wrap:anywhere;font-size:12px}.members-list .field-inline{color:var(--color-text);margin-top:var(--space-16);gap:6px;max-width:420px;font-size:12px;font-weight:600;display:grid}.members-list .field-inline select{appearance:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);font:inherit;height:var(--control-height);padding:0 var(--space-12);width:100%;transition:border-color .15s,box-shadow .15s}.members-list .field-inline select:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #2563eb1f}.data-table-toolbar{align-items:center;gap:var(--space-8);margin:0 0 var(--space-16);flex-wrap:wrap;display:flex}.data-table-toolbar__search{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text-muted);height:var(--control-height);min-width:0;padding:0 var(--space-12);flex:0 24rem;align-items:center;width:min(100%,24rem);display:flex}.data-table-toolbar__search:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1f}.data-table-toolbar__search input,.data-table-toolbar select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);font:inherit;height:var(--control-height);outline:0}.data-table-toolbar__search input{appearance:none;box-shadow:none;min-width:0;height:100%;padding-left:var(--space-8);background:0 0;border:0;border-radius:0;flex:auto;width:100%}.data-table-toolbar__search input:focus-visible{box-shadow:none;outline:0}.data-table-toolbar__search input::-webkit-search-cancel-button{appearance:none}.data-table-toolbar__search input::-webkit-search-decoration{appearance:none}.data-table-toolbar__search svg{flex:none}.data-table-toolbar select{min-width:9rem;padding:0 var(--space-12)}.data-table-toolbar__clear{border-radius:var(--radius-button);color:var(--color-text-secondary);cursor:pointer;font:inherit;align-items:center;gap:var(--space-4);min-height:30px;padding:0 var(--space-8);background:0 0;border:0;font-size:12px;font-weight:600;display:inline-flex}.data-table-toolbar__clear:hover,.data-table-toolbar__clear:focus-visible{background:var(--color-surface-muted);color:var(--color-text);outline:none}.data-table-toolbar__count{color:var(--color-text-secondary);margin-left:auto;font-size:12px}.filter-menu{position:relative}.filter-menu__trigger{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text);cursor:pointer;font:inherit;align-items:center;gap:var(--space-8);height:var(--control-height);padding:0 var(--space-12);font-size:14px;font-weight:600;display:inline-flex}.filter-menu__trigger:hover,.filter-menu__trigger:focus-visible{border-color:var(--color-primary);color:var(--color-primary);outline:none}.filter-menu__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-card);gap:var(--space-12);min-width:min(42rem,100vw - 5rem);padding:var(--space-12);left:0;top:calc(100% + var(--space-8));z-index:10;display:grid;position:absolute}.filter-menu__panel label{color:var(--color-text-secondary);gap:var(--space-4);font-size:12px;font-weight:600;display:grid}.filter-menu__panel select{min-width:100%}.payment-filter-group{gap:var(--space-8);border:0;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;padding:0;display:grid}.payment-filter-group+.payment-filter-group{border-top:1px solid var(--color-border);padding-top:var(--space-12)}.payment-filter-group legend{color:var(--color-text-secondary);grid-column:1/-1;padding:0;font-size:12px;font-weight:600}.filter-menu__panel .payment-filter-group label{color:var(--color-text);cursor:pointer;align-items:center;gap:var(--space-8);font-size:13px;font-weight:500;display:flex}.payment-filter-group input{accent-color:var(--color-primary);width:16px;height:16px;margin:0}.payment-filter-group p{color:var(--color-text-secondary);margin:0;font-size:12px}@media (width<=767px){.attendance-monitor__picker,.attendance-monitor__summary{grid-template-columns:1fr}.attendance-session-list__summary{grid-template-columns:1fr;align-items:stretch}.attendance-monitor__metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-menu__panel{min-width:min(20rem,100vw - 2rem)}.payment-filter-group{grid-template-columns:1fr}.payment-filter-group legend{grid-column:auto}}.sortable-header{color:inherit;cursor:pointer;font:inherit;font-weight:inherit;align-items:center;gap:var(--space-4);letter-spacing:inherit;text-align:left;min-height:30px;text-transform:inherit;background:0 0;border:0;padding:0;display:inline-flex}.sortable-header:hover,.sortable-header:focus-visible{color:var(--color-primary);outline:none}.members-list .classes-capacity-cell{text-align:center}.members-list .classes-capacity-cell .sortable-header{justify-content:center}.staff-role,.staff-status{min-height:28px;padding:0 var(--space-10);white-space:nowrap;border-radius:999px;align-items:center;font-size:12px;font-weight:600;line-height:1;display:inline-flex}.staff-role{color:var(--color-text-secondary);background:0 0;min-height:auto;padding:0;font-weight:500}.staff-status--active{color:#166534;background:#dcfce7}.staff-status--suspended{color:#b91c1c;background:#fee2e2}.members-list .package-entitlements-cell{min-width:19rem}.package-entitlements{gap:var(--space-8);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.package-entitlements li{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text-secondary);padding:6px var(--space-8);white-space:nowrap;font-size:12px;font-weight:500;line-height:1.2}.package-benefits{color:var(--color-text-secondary);line-height:1.5}.app-main :is(.members-page,.staff-page)>header>p,.app-main :is(.members-list,.staff-list) th{font-weight:var(--font-weight-semibold)}.app-main :is(.members-list,.staff-list) td{font-weight:var(--font-weight-regular)}.app-main :is(.members-list,.staff-list) td>strong{font-weight:var(--font-weight-semibold)}@media (width>=1024px){.membership-workspace .entitlement-fieldset{column-gap:var(--space-12);row-gap:var(--space-12);grid-template-columns:repeat(3,minmax(0,1fr))}.membership-workspace .entitlement-fieldset legend{grid-column:1/-1}.members-list .field-inline{max-width:30rem}.members-list .package-entitlements-cell{min-width:0}}@media (width>=768px) and (width<=1023px){.app-main>:is(.members-page,.staff-page){padding:0}.membership-workspace .entitlement-fieldset,.selected-member-summary dl,.members-form--member-create,.training-template-form,.staff-form--create,.members-form--payment-create{grid-template-columns:repeat(2,minmax(0,1fr))}.members-form--attendance-checkin{grid-template-columns:1fr}.membership-workspace .entitlement-fieldset legend{grid-column:1/-1}.membership-workspace--assignment-only{grid-template-columns:1fr}.membership-workspace--manager>.members-form,.membership-workspace--manager>.members-list,.membership-workspace--assignment-only>.members-list{grid-area:auto}.membership-assignment-sidebar{grid-template-rows:auto;min-height:auto}.membership-assignment-sidebar .members-list{height:auto}}@media (width<=767px){:is(.members-page,.staff-page)>header{margin-bottom:var(--space-20)}:is(.members-page,.staff-page)>:not(header)+:not(header){margin-top:var(--space-20)}:is(.members-grid,.staff-grid){gap:var(--space-20)}.members-form--member-create,.training-template-form,.training-action-form,.training-action-grid,.training-field-group{grid-template-columns:1fr}.training-template-form>button,.training-action-form>button,.members-form--member-create>button{justify-self:stretch;width:100%}.staff-form--create{grid-template-columns:1fr}.staff-form--create>button{justify-self:stretch;width:100%}.members-form--booking-create{grid-template-columns:1fr}.members-form--booking-create>button{justify-self:stretch;width:100%}.members-form--payment-create{grid-template-columns:1fr}.members-form--payment-create>button,.members-form--attendance-checkin>button{justify-self:stretch;width:100%}.membership-workspace .entitlement-fieldset{grid-template-columns:1fr}.membership-workspace--manager{gap:var(--space-12);padding:var(--space-12)}.membership-workspace--manager>.members-form,.membership-workspace--manager>.members-list,.membership-workspace--assignment-only>.members-list{grid-area:auto}.selected-member-summary dl{grid-template-columns:1fr}.data-table-toolbar__search,.data-table-toolbar select{width:100%}.data-table-toolbar__count{margin-left:0}.filter-menu,.filter-menu__trigger{width:100%}.filter-menu__panel{left:0;right:0}.class-approval-panel .change-request{flex-direction:column;align-items:stretch}.class-approval-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}}
