:root{font-family:Manrope,sans-serif;line-height:1.5;font-weight:400;color:var(--ink);background-color:var(--surface-muted);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--ink: #111827;--ink-subtle: #374151;--muted: #6B7280;--muted-strong: #4B5563;--muted-soft: #9CA3AF;--text-on-dark: #f8fafc;--surface: #ffffff;--surface-muted: #F9FAFB;--surface-soft: #F3F4F6;--surface-hover: rgba(107, 114, 128, .08);--surface-muted-strong: rgba(249, 250, 251, .7);--surface-ghost: rgba(255, 255, 255, .9);--surface-ghost-strong: rgba(255, 255, 255, .95);--border-softest: rgba(229, 231, 235, .5);--border-subtle: rgba(229, 231, 235, .7);--border-soft: #E5E7EB;--border-medium: rgba(209, 213, 219, .8);--border-strong: #D1D5DB;--primary: #4F46E5;--primary-hover: #4338CA;--primary-ink: #4F46E5;--primary-soft: rgba(79, 70, 229, .06);--primary-soft-strong: rgba(79, 70, 229, .1);--primary-soft-alt: rgba(79, 70, 229, .12);--primary-glow: rgba(79, 70, 229, .2);--primary-border: rgba(79, 70, 229, .3);--primary-border-strong: rgba(79, 70, 229, .45);--primary-pill-bg: #4F46E5;--accent: #F59E0B;--accent-hover: #D97706;--accent-ink: #B45309;--accent-soft: rgba(245, 158, 11, .1);--accent-soft-strong: rgba(245, 158, 11, .15);--accent-border: rgba(245, 158, 11, .35);--accent-border-strong: rgba(245, 158, 11, .5);--success-ink: #16A34A;--success-soft: #DCFCE7;--success-border: rgba(22, 163, 74, .35);--success-border-strong: rgba(22, 163, 74, .5);--danger-ink: #991b1b;--danger-strong: #dc2626;--danger-soft: rgba(248, 113, 113, .12);--danger-border: rgba(248, 113, 113, .35);--danger-border-strong: rgba(248, 113, 113, .45);--warning-ink: #B45309;--warning-bg: #FEF3C7;--warning-soft: rgba(245, 158, 11, .12);--info-ink: #4F46E5;--info-soft: rgba(79, 70, 229, .1);--ink-overlay: rgba(17, 24, 39, .4);--ink-overlay-strong: rgba(17, 24, 39, .5);--ink-overlay-soft: rgba(17, 24, 39, .3);--shadow-strong: 0 20px 50px rgba(17, 24, 39, .15);--shadow-card: 0 4px 16px rgba(17, 24, 39, .06);--shadow-soft: 0 8px 24px rgba(17, 24, 39, .08);--shadow-pop: 0 12px 32px rgba(17, 24, 39, .12);--sidebar-text: #e2e8f0;--sidebar-muted: rgba(226, 232, 240, .6);--sidebar-divider: rgba(226, 232, 240, .12);--sidebar-hover-bg: rgba(226, 232, 240, .08);--sidebar-hover-border: rgba(226, 232, 240, .18);--sidebar-active-bg: rgba(79, 70, 229, .2);--sidebar-active-text: #ffffff;--skeleton-light: rgba(229, 231, 235, .5);--skeleton-soft: rgba(229, 231, 235, .4);--skeleton-strong: rgba(229, 231, 235, .7);--text-2xs: 10.5px;--text-xs: 11px;--text-xs-plus: 11.5px;--text-sm: 12px;--text-sm-plus: 12.5px;--text-md: 13px;--text-base: 14px;--text-base-plus: 15px;--text-lg: 16px;--text-xl: 17px;--text-2xl: 18px;--text-3xl: 20px;--text-4xl: 22px;--text-5xl: 24px;--text-6xl: 28px}@media(prefers-color-scheme:dark){:root:not(.light){--ink: #F1F5F9;--ink-subtle: #CBD5E1;--muted: #94A3B8;--muted-strong: #B8C4D4;--muted-soft: #64748B;--surface: #1e293b;--surface-muted: #0f172a;--surface-soft: #334155;--surface-hover: rgba(148, 163, 184, .12);--surface-muted-strong: rgba(15, 23, 42, .8);--surface-ghost: rgba(30, 41, 59, .95);--surface-ghost-strong: rgba(30, 41, 59, .98);--border-softest: rgba(148, 163, 184, .06);--border-subtle: rgba(148, 163, 184, .1);--border-soft: rgba(148, 163, 184, .15);--border-medium: rgba(148, 163, 184, .25);--border-strong: rgba(148, 163, 184, .35);--primary: #818CF8;--primary-hover: #A5B4FC;--primary-ink: #A5B4FC;--primary-soft: rgba(129, 140, 248, .1);--primary-soft-strong: rgba(129, 140, 248, .15);--primary-soft-alt: rgba(129, 140, 248, .18);--primary-glow: rgba(129, 140, 248, .25);--primary-border: rgba(129, 140, 248, .3);--primary-border-strong: rgba(129, 140, 248, .45);--primary-pill-bg: #818CF8;--accent: #FBBF24;--accent-hover: #FCD34D;--accent-ink: #FBBF24;--accent-soft: rgba(251, 191, 36, .15);--accent-soft-strong: rgba(251, 191, 36, .2);--accent-border: rgba(251, 191, 36, .35);--accent-border-strong: rgba(251, 191, 36, .5);--success-ink: #4ADE80;--success-soft: rgba(74, 222, 128, .15);--success-border: rgba(74, 222, 128, .35);--success-border-strong: rgba(74, 222, 128, .5);--danger-ink: #F87171;--danger-strong: #EF4444;--danger-soft: rgba(248, 113, 113, .15);--danger-border: rgba(248, 113, 113, .35);--danger-border-strong: rgba(248, 113, 113, .5);--danger-ink-soft: #FCA5A5;--warning-ink: #FBBF24;--warning-bg: rgba(251, 191, 36, .15);--warning-soft: rgba(251, 191, 36, .12);--info-ink: #A5B4FC;--info-soft: rgba(129, 140, 248, .15);--ink-overlay: rgba(0, 0, 0, .5);--ink-overlay-strong: rgba(0, 0, 0, .6);--ink-overlay-soft: rgba(0, 0, 0, .4);--shadow-strong: 0 20px 50px rgba(0, 0, 0, .4);--shadow-card: 0 4px 16px rgba(0, 0, 0, .25);--shadow-soft: 0 8px 24px rgba(0, 0, 0, .3);--shadow-pop: 0 12px 32px rgba(0, 0, 0, .4);--sidebar-active-bg: rgba(129, 140, 248, .2);--skeleton-light: rgba(71, 85, 105, .4);--skeleton-soft: rgba(71, 85, 105, .3);--skeleton-strong: rgba(71, 85, 105, .5)}}:root.dark{--ink: #F1F5F9;--ink-subtle: #CBD5E1;--muted: #94A3B8;--muted-strong: #B8C4D4;--muted-soft: #64748B;--surface: #1e293b;--surface-muted: #0f172a;--surface-soft: #334155;--surface-hover: rgba(148, 163, 184, .12);--surface-muted-strong: rgba(15, 23, 42, .8);--surface-ghost: rgba(30, 41, 59, .95);--surface-ghost-strong: rgba(30, 41, 59, .98);--border-softest: rgba(148, 163, 184, .06);--border-subtle: rgba(148, 163, 184, .1);--border-soft: rgba(148, 163, 184, .15);--border-medium: rgba(148, 163, 184, .25);--border-strong: rgba(148, 163, 184, .35);--primary: #818CF8;--primary-hover: #A5B4FC;--primary-ink: #A5B4FC;--primary-soft: rgba(129, 140, 248, .1);--primary-soft-strong: rgba(129, 140, 248, .15);--primary-soft-alt: rgba(129, 140, 248, .18);--primary-glow: rgba(129, 140, 248, .25);--primary-border: rgba(129, 140, 248, .3);--primary-border-strong: rgba(129, 140, 248, .45);--primary-pill-bg: #818CF8;--accent: #FBBF24;--accent-hover: #FCD34D;--accent-ink: #FBBF24;--accent-soft: rgba(251, 191, 36, .15);--accent-soft-strong: rgba(251, 191, 36, .2);--accent-border: rgba(251, 191, 36, .35);--accent-border-strong: rgba(251, 191, 36, .5);--success-ink: #4ADE80;--success-soft: rgba(74, 222, 128, .15);--success-border: rgba(74, 222, 128, .35);--success-border-strong: rgba(74, 222, 128, .5);--danger-ink: #F87171;--danger-strong: #EF4444;--danger-soft: rgba(248, 113, 113, .15);--danger-border: rgba(248, 113, 113, .35);--danger-border-strong: rgba(248, 113, 113, .5);--danger-ink-soft: #FCA5A5;--warning-ink: #FBBF24;--warning-bg: rgba(251, 191, 36, .15);--warning-soft: rgba(251, 191, 36, .12);--info-ink: #A5B4FC;--info-soft: rgba(129, 140, 248, .15);--ink-overlay: rgba(0, 0, 0, .5);--ink-overlay-strong: rgba(0, 0, 0, .6);--ink-overlay-soft: rgba(0, 0, 0, .4);--shadow-strong: 0 20px 50px rgba(0, 0, 0, .4);--shadow-card: 0 4px 16px rgba(0, 0, 0, .25);--shadow-soft: 0 8px 24px rgba(0, 0, 0, .3);--shadow-pop: 0 12px 32px rgba(0, 0, 0, .4);--sidebar-active-bg: rgba(129, 140, 248, .2);--skeleton-light: rgba(71, 85, 105, .4);--skeleton-soft: rgba(71, 85, 105, .3);--skeleton-strong: rgba(71, 85, 105, .5)}@media(prefers-color-scheme:dark){:root:not(.light) input::placeholder,:root:not(.light) textarea::placeholder{color:#b8c4d4;opacity:1}}:root.dark input::placeholder,:root.dark textarea::placeholder{color:#b8c4d4;opacity:1}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;font-size:var(--text-base);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}button,input,select,textarea{font-family:inherit}#root{min-height:100vh;min-height:100dvh}@media(max-width:900px){button,[role=button],input[type=submit],input[type=button]{min-height:44px}input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=search],select,textarea{min-height:44px;font-size:16px}.nav-item,.profile-trigger,.primary,.text-button{min-height:44px}}.app{min-height:100vh;min-height:100dvh;background:var(--surface-muted, #F1F4F9);color:var(--ink);overflow-x:hidden;width:100%}.app:before{content:"";display:block;height:3px;background:#4f46e5;position:fixed;top:0;left:0;right:0;z-index:100}.admin-shell{display:grid;grid-template-rows:auto 1fr auto;min-height:100vh;min-height:100dvh;height:100vh;height:100dvh;overflow:hidden;padding-top:3px}.admin-layout{display:grid;grid-template-columns:260px 1fr;flex:1;min-height:0;height:100%;overflow:hidden}.sidebar{background:linear-gradient(180deg,#152848,#0f203d 55%,#0c1a32);color:var(--sidebar-text);padding:28px 18px 36px;display:flex;flex-direction:column;gap:24px;min-height:0;height:calc(100% - 32px);overflow:hidden;border-radius:0 28px 28px 0;border:1px solid var(--border-medium);box-shadow:none;margin:16px 0 16px 16px}.sidebar .muted{color:#ffffffb8}.sidebar .brand-mark{color:var(--text-on-dark);font-size:var(--text-lg);font-weight:600;letter-spacing:.01em}.sidebar-header{flex-shrink:0;display:flex;gap:16px;align-items:flex-start;justify-content:center;text-align:left;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-lockup{display:flex;gap:12px;align-items:flex-start;flex-direction:column;align-self:center;width:100%;max-width:212px;padding-left:46px}.nav{display:grid;gap:18px;padding-left:4px;align-items:start;align-content:start;flex:1;min-height:0;overflow-y:auto;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.2) transparent}.nav::-webkit-scrollbar{width:6px}.nav::-webkit-scrollbar-track{background:transparent}.nav::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.nav::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.nav-group{display:grid;gap:8px}.nav-group+.nav-group{padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.nav-group-title{font-size:.65rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:#a5b4fc8c;margin:4px 0 2px 12px}.nav-item{background:transparent;border:1px solid transparent;color:#e2e8f0a6;font-weight:500;padding:10px 16px;border-radius:16px;display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;width:100%;max-width:212px;position:relative;transition:background .15s ease,border-color .15s ease,color .15s ease}.nav-item.active,.nav-item.active:hover,.nav-item.active:focus-visible{background:#e0e7ff;border-color:#6366f14d;color:#3730a3;font-weight:700;box-shadow:0 4px 12px #06122633}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:20px;background:#4f46e5;border-radius:0 2px 2px 0}.nav-item.active .nav-icon,.nav-item.active:hover .nav-icon,.nav-item.active:focus-visible .nav-icon{color:#4f46e5}.nav-item:not(.active):hover{background:#ffffff14;border-color:#ffffff1f;color:#e2e8f0f2}.nav-item:focus{outline:none}.nav-item:focus-visible{outline:none;background:#ffffff14;border-color:#fff3}.nav-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;color:#e2e8f099;transition:color .15s ease}.nav-item:hover .nav-icon{color:#e2e8f0e6}.nav-icon svg{width:18px;height:18px}.nav-item-coming-soon{opacity:.5;cursor:not-allowed}.nav-item-coming-soon:hover{background:transparent;border-color:transparent}.nav-badge{margin-left:auto;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:3px 6px;border-radius:4px}.nav-badge.coming-soon{background:#ffffff26;color:#ffffffb3}.sidebar-footer{flex-shrink:0;display:flex;flex-direction:column;gap:12px;padding-top:12px}.shell{max-width:1280px;margin:0 auto;padding:28px 20px 56px;width:100%;display:flex;flex-direction:column;gap:24px;min-height:0;overflow-y:auto;position:relative}.shell>*{flex-shrink:0}.shell-search-bar{position:absolute;top:29px;right:24px;z-index:20}.shell-search-bar .global-search{width:240px}.shell-search-bar .global-search-input{padding:8px 32px 8px 36px;background:var(--surface);border-color:var(--border-subtle);font-size:var(--text-xs)}.shell-search-bar .global-search-input::placeholder{color:var(--muted-soft)}.shell-search-bar .global-search-input:focus{border-color:var(--border-soft)}.shell-search-bar .global-search-icon{left:10px}.shell-search-bar .global-search-icon svg{width:14px;height:14px}.brand{display:flex;flex-direction:column;gap:8px}.brand-mark{font-family:Manrope,sans-serif;font-size:var(--text-6xl);color:var(--ink)}.brand-tag{font-size:var(--text-md);text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}.muted{color:var(--muted)}.primary{background:var(--primary);border:1px solid var(--primary);color:#fff;padding:12px 18px;border-radius:10px;font-weight:600;cursor:pointer;transition:background .15s ease,box-shadow .15s ease}.primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.primary.danger{background:var(--danger-ink);border-color:var(--danger-ink);color:var(--text-on-dark)}.primary:disabled{opacity:.6;cursor:not-allowed}.text-button{background:transparent;border:none;color:var(--ink);font-weight:600;cursor:pointer}.modal-close{width:40px;height:40px;border-radius:999px;color:var(--text-strong);display:inline-flex;align-items:center;justify-content:center;align-self:flex-start;margin-top:2px}.modal-close:hover{background:var(--surface-tint)}.modal-close:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 55%,white);outline-offset:2px}.sidebar .text-button,.logout-button{color:var(--sidebar-text)}.logout-button{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:#ffffff0f;font-size:var(--text-sm);color:#ffffffb3;letter-spacing:.01em;transition:color .15s ease,background .15s ease,border-color .15s ease}.logout-button:hover{color:#fffffff2;background:#ffffff1a;border-color:#ffffff40}.logout-icon{font-size:13px;opacity:1}.error{color:var(--danger-strong);font-size:var(--text-md);margin:0}.topbar{padding:12px 24px;border-bottom:1px solid #DDE3EE;background:#f7f8fb;box-shadow:0 1px #00000008;display:flex;justify-content:space-between;align-items:center;gap:16px}.topbar-menu{border:1px solid #DDE3EE;background:#f7f8fb;color:#3730a3;width:40px;height:40px;border-radius:12px;display:none;align-items:center;justify-content:center;font-size:var(--text-lg);cursor:pointer}.topbar-menu:hover{background:#e0e7ff}.topbar-brand{display:flex;align-items:center;gap:8px;flex:0 0 auto;margin-left:24px;color:#3730a3}.topbar-logo{width:28px;height:28px;background:#4f46e5;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.topbar-logo span{color:#fff;font-size:14px;font-weight:700;letter-spacing:-.02em}.topbar-wordmark{font-size:var(--text-base);font-weight:600;letter-spacing:.01em;color:#3730a3}.sidebar-overlay{position:fixed;inset:0;background:var(--ink-overlay-strong);border:none;padding:0;z-index:40}.topbar-title{flex:1;text-align:center;font-family:Manrope,sans-serif;font-size:var(--text-4xl);font-weight:700;color:var(--ink)}.topbar-title:empty{display:none}.topbar-spacer{width:200px}.topbar-profile{position:relative;flex:0 0 auto}.topbar-actions{display:flex;align-items:center;gap:16px;flex:0 0 auto}.center-switcher{display:grid;gap:4px;font-size:var(--text-sm);color:var(--muted)}.center-switcher select{border-radius:10px;border:1px solid var(--border-medium);padding:8px 12px;background:var(--surface);font-size:var(--text-md);color:var(--ink)}.profile-trigger{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:14px;border:1px solid #C7D2FE;background:#eef2ff;color:#3730a3;font-size:var(--text-sm);font-weight:600;cursor:pointer}.profile-trigger:hover{background:#e0e7ff;border-color:#a5b4fc}.profile-avatar{width:34px;height:34px;border-radius:12px;background:#e0e7ff;color:#3730a3;display:inline-flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:700}.profile-name{font-size:var(--text-sm)}.profile-caret{font-size:var(--text-sm);color:var(--muted-strong)}.profile-menu{position:absolute;top:calc(100% + 10px);right:0;min-width:180px;background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;box-shadow:0 16px 30px var(--border-subtle);padding:8px;display:grid;gap:4px;z-index:30}.profile-menu-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:6px 12px 10px;border-bottom:1px solid var(--border-soft);margin-bottom:4px}.profile-menu-item{background:transparent;border:none;text-align:left;padding:10px 12px;border-radius:10px;font-size:var(--text-md);font-weight:600;color:var(--ink);cursor:pointer}.profile-menu-item:hover{background:var(--border-soft)}.profile-menu-item.danger{color:#b91c1c}.profile-menu-divider{height:1px;background:var(--border-soft);margin:4px 0}.profile-theme-toggle{display:flex;align-items:center;gap:8px}.profile-theme-icon{width:16px;height:16px;flex-shrink:0}.topbar h1{font-family:Manrope,sans-serif;font-size:var(--text-6xl);margin:0 0 6px}.brand-subtitle{display:block;font-size:var(--text-sm);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted-soft);margin-top:2px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:18px 280px 18px 24px;border-radius:0;border-bottom:1px solid #E5E7EB;border-left:2px solid rgba(79,70,229,.12);background:#f1f5f9;min-height:72px}.page-header h2{font-size:var(--text-4xl);margin:0 0 6px}.page-header .muted{font-size:var(--text-base-plus)}.page-brand{display:flex;gap:16px;align-items:center}.page-brand .brand-mark{font-size:var(--text-4xl)}.page-header h2{margin:0 0 6px;font-size:var(--text-3xl);font-weight:700;font-family:Manrope,sans-serif}.card h3{font-family:Manrope,sans-serif;font-size:var(--text-lg);font-weight:700;margin:0}.card h2{font-family:Manrope,sans-serif;font-size:var(--text-6xl);margin:0 0 8px}.page-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:6px}.topbar-meta{flex:0 0 auto;display:flex;gap:12px;align-items:center}.pill{background:var(--primary-soft);color:var(--primary-ink);padding:6px 12px;border-radius:999px;font-size:var(--text-sm);font-weight:600}button.pill{cursor:pointer}button.pill:disabled{cursor:not-allowed;opacity:.55}.pill.primary-pill,.primary-pill{background:var(--primary);color:var(--text-on-dark);border:none;cursor:pointer;transition:background .15s ease}.pill.primary-pill:hover,.primary-pill:hover{background:var(--primary-hover)}.pill.primary-pill:disabled,.primary-pill:disabled{background:var(--surface-soft);color:var(--muted)}.page-footer{margin-top:12px;padding:24px;border-top:1px solid #E5E7EB;background:#f3f4f6;font-family:Manrope,sans-serif;font-size:var(--text-sm);color:var(--muted);min-height:64px;display:flex;align-items:center}.page-footer-inner{max-width:1100px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;width:100%}.footer-links{display:flex;gap:12px;margin-left:auto}.page-footer-inner>.muted{color:#312e81;font-weight:700;font-size:var(--text-sm);letter-spacing:.01em}.page-footer-inner>.muted:before{content:"";display:inline-block;width:6px;height:6px;background:#4f46e5;border-radius:50%;margin-right:10px;vertical-align:middle}.page-footer .text-button{font-family:Manrope,sans-serif;font-size:var(--text-xs);font-weight:400;color:#9ca3af;padding:0;background:none;border:none}.page-footer .text-button:hover{color:#6b7280;text-decoration:underline}.footer-links{display:flex;gap:16px;margin-left:auto}.section-container{background:#f1f5f9;border-radius:24px;padding:20px}.section-container--indigo{background:#eef2ff}.section-container--transparent{background:transparent;padding:0}.section-header-band{background:#f1f5f9;border-radius:18px;padding:22px 24px;margin-bottom:20px}.section-header-band h2{font-size:var(--text-3xl);font-weight:700;font-family:Manrope,sans-serif;margin:0 0 6px}.section-header-band .muted{font-size:var(--text-base-plus)}.section-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.card{background:#fff;border-radius:20px;padding:20px;border:1px solid var(--border-subtle);box-shadow:0 2px 6px #0000000f;min-height:200px;display:flex;flex-direction:column;gap:16px}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-title{display:flex;align-items:center;gap:10px}.card-icon{width:32px;height:32px;border-radius:12px;background:var(--surface-soft);color:var(--ink-subtle);display:inline-flex;align-items:center;justify-content:center}.card-icon svg{width:16px;height:16px}.card.wide{grid-column:span 2;min-height:200px}.subtle-pill{background:var(--surface-muted);color:var(--ink);border:1px solid var(--border-medium)}.card-loading{display:grid;gap:12px;margin-top:12px}.skeleton-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px}.skeleton-lines{display:grid;gap:8px}.skeleton-line,.skeleton-circle,.skeleton-bar,.skeleton-pill{position:relative;overflow:hidden;background:var(--surface-soft);border-radius:999px}.skeleton-line{height:12px;width:160px}.skeleton-line.wide{width:220px}.skeleton-line.medium{width:140px}.skeleton-line.short{width:60px}.skeleton-circle{width:42px;height:42px;border-radius:50%}.skeleton-bar{height:8px;width:100%}.skeleton-bar.tall{height:96px;width:24px;border-radius:999px}.skeleton-pill{height:20px;width:44px}.skeleton-line:after,.skeleton-circle:after,.skeleton-bar:after,.skeleton-pill:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:shimmer 1.6s infinite}@keyframes shimmer{to{transform:translate(100%)}}.status-chip{position:relative;display:inline-flex;align-items:center}.status-chip-trigger{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--border-medium);background:var(--surface);color:var(--ink-subtle);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:border-color .2s ease,background .2s ease}.status-chip-trigger.static{font-size:var(--text-2xs);padding:4px 9px;letter-spacing:.01em}.status-chip-trigger:disabled{cursor:default;opacity:.6}.status-chip-trigger .caret{font-size:var(--text-2xs);color:var(--muted)}.status-chip-trigger.active{border-color:var(--success-border);color:var(--success-ink)}.status-chip-trigger.inactive{border-color:var(--danger-border);color:var(--danger-ink)}.status-chip:hover .status-menu,.status-chip:focus-within .status-menu{opacity:1;pointer-events:auto;transform:translateY(0)}.status-menu{position:absolute;left:0;top:calc(100% + 8px);background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;padding:6px;box-shadow:var(--shadow-pop);min-width:140px;opacity:0;pointer-events:none;transform:translateY(-4px);transition:opacity .2s ease,transform .2s ease;z-index:5}.status-item{width:100%;background:transparent;border:none;text-align:left;padding:10px 12px;border-radius:8px;font-size:var(--text-md);font-weight:600;color:var(--ink);cursor:pointer}.status-item:hover{background:var(--border-soft)}.modal-backdrop{position:fixed;inset:0;background:var(--ink-overlay-strong);display:flex;align-items:center;justify-content:center;z-index:50;padding:24px;padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,env(safe-area-inset-bottom));padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}.modal-card{background:var(--surface);border-radius:14px;padding:0;width:min(520px,100%);max-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom));box-shadow:0 20px 60px #0003;display:flex;flex-direction:column;overflow:hidden}.modal-card>.modal-header{padding:20px 24px;border-bottom:1px solid var(--border-soft);flex-shrink:0}.modal-card>.modal-form,.modal-card>form{padding:20px 24px;overflow-y:auto;flex:1;min-height:0}.modal-card>.modal-actions{padding:16px 24px 20px;border-top:1px solid var(--border-soft);background:var(--surface-muted);flex-shrink:0}.modal-card.idle-timeout{width:min(270px,100%);padding:18px 20px 16px;gap:10px}.modal-card.idle-timeout h3{font-size:var(--text-xl);margin:0}.modal-card.idle-timeout .muted{font-size:var(--text-sm);line-height:1.35;margin:0}.modal-card.idle-timeout .modal-header{display:grid;gap:8px}.modal-card.idle-timeout .modal-header .muted{margin-top:8px}.modal-card.idle-timeout .modal-actions{flex-direction:row;align-items:baseline;gap:8px;margin-top:8px;justify-content:flex-start}.modal-card.idle-timeout .modal-actions .text-button,.modal-card.idle-timeout .modal-actions .primary{padding:6px 10px;font-size:var(--text-sm-plus)}.modal-card.idle-timeout .idle-timeout-divider{height:1px;width:70%;background:var(--border-soft);margin:6px 0 0}.modal-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.modal-header h3{margin:0;font-size:var(--text-lg);font-weight:600}.modal-header .muted{margin:4px 0 0;font-size:var(--text-sm)}.modal-form{display:grid;gap:16px}.modal-form label{display:grid;gap:6px;font-size:var(--text-sm);font-weight:500;color:var(--ink)}.modal-form input,.modal-form select,.modal-form textarea{border-radius:10px;border:1px solid var(--border-soft);padding:10px 12px;font-size:var(--text-base);background:var(--surface);color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}.modal-form input:focus,.modal-form select:focus,.modal-form textarea:focus{outline:none;border-color:var(--primary-border-strong);box-shadow:0 0 0 3px #6366f11a}.modal-form input:disabled,.modal-form select:disabled,.modal-form textarea:disabled{background:var(--surface-muted);cursor:not-allowed}.modal-form .muted{font-size:var(--text-xs);margin-top:4px}.modal-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px}.modal-actions .modal-footer-hint{flex:1 0 100%;font-size:var(--text-xs);color:var(--muted);text-align:center;margin:0 0 8px;order:-1}.feed-meta{display:grid;justify-items:end;gap:6px}.tag{background:var(--warning-bg);color:var(--warning-ink);padding:4px 10px;border-radius:999px;font-size:var(--text-xs);font-weight:600}.warm-accent{color:#b45309}.warm-dot{display:inline-block;width:6px;height:6px;background:#f59e0b;border-radius:50%;margin-right:6px;vertical-align:middle}.warm-pill{background:#fef3c7;color:#92400e;padding:3px 8px;border-radius:999px;font-size:var(--text-2xs);font-weight:600;letter-spacing:.02em}.warm-icon{color:#d97706}.birthday-indicator{display:inline-flex;align-items:center;gap:4px;color:#b45309;font-size:var(--text-xs);font-weight:600}.birthday-indicator:before{content:"🎂";font-size:12px}.pulse{width:54px;height:54px;border-radius:50%;background:radial-gradient(circle,#38bdf8,transparent 60%);animation:pulse 1.6s ease-in-out infinite}.skeleton-header{background:var(--surface);border-radius:18px;border:1px solid var(--border-subtle);padding:20px;display:grid;gap:12px;background-image:linear-gradient(135deg,var(--skeleton-light),var(--surface-ghost))}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.skeleton-card{background:var(--surface);border-radius:20px;border:1px solid var(--border-subtle);padding:20px;min-height:200px;display:grid;gap:12px;background-image:linear-gradient(160deg,var(--skeleton-soft),var(--surface-ghost-strong))}.skeleton-card.wide{grid-column:span 2;min-height:220px}.skeleton-line,.skeleton-pill{position:relative;overflow:hidden;background:linear-gradient(90deg,var(--skeleton-strong) 25%,var(--border-soft) 50%,var(--skeleton-strong) 75%);background-size:200% 100%;animation:shimmer 1.8s ease-in-out infinite}.skeleton-line{height:12px;border-radius:8px}.skeleton-line.short{width:40%}.skeleton-line.mid{width:60%}.skeleton-pill{height:24px;border-radius:999px}.skeleton-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:8px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes pulse{0%{transform:scale(.92);opacity:.6}50%{transform:scale(1);opacity:1}to{transform:scale(.92);opacity:.6}}@media(max-width:900px){.topbar{padding:10px 16px;padding-top:max(10px,env(safe-area-inset-top));padding-left:max(16px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:8px;max-width:100vw;box-sizing:border-box}.topbar-menu{display:inline-flex}.topbar-brand{margin-left:0;justify-self:center}.topbar-logo{width:24px;height:24px;border-radius:6px}.topbar-logo span{font-size:12px}.topbar-wordmark{font-size:var(--text-sm)}.admin-layout{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;width:min(86vw,280px);height:100vh;height:100dvh;margin:0;border-radius:0 24px 24px 0;transform:translate(-100%);transition:transform .25s ease;z-index:50;padding-top:max(28px,env(safe-area-inset-top));padding-left:max(18px,env(safe-area-inset-left));padding-bottom:max(36px,env(safe-area-inset-bottom))}.sidebar.open{transform:translate(0)}.sidebar-footer{flex-direction:row;align-items:center}.shell{padding:20px 16px 44px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(44px,calc(44px + env(safe-area-inset-bottom)));max-width:100%;overflow-x:hidden}.shell>*{flex-shrink:1;max-width:100%}.card{padding:16px}.card.wide,.skeleton-card.wide{grid-column:span 1}.topbar-actions{justify-self:end}.topbar-profile{justify-content:flex-end}.profile-trigger{padding:4px;border-radius:999px}.profile-trigger .profile-meta,.profile-trigger .profile-caret{display:none}.profile-avatar{width:32px;height:32px;font-size:var(--text-sm)}.page-header{flex-direction:column;padding-right:24px;min-height:auto;padding-bottom:20px}.shell-search-bar{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));right:calc(58px + env(safe-area-inset-right,0px));z-index:35}.shell-search-bar .global-search{width:auto}.shell-search-bar .global-search-input-wrap{background:transparent;border:none;box-shadow:none}.page-brand{align-items:flex-start}.page-footer{padding:16px 20px;padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));padding-bottom:max(16px,calc(16px + env(safe-area-inset-bottom)))}.page-footer-inner{flex-direction:column;align-items:flex-start;gap:10px}.footer-links{margin-left:0}.table-scroll-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px}.table-scroll-wrap>table,.table-scroll-wrap>.data-table{min-width:600px}.card,.section-container{overflow-x:hidden;word-wrap:break-word;overflow-wrap:break-word}.page-header{padding:14px 16px 16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.page-header h2{font-size:var(--text-2xl)}.kiosk-launch-btn{display:none!important}}@media(prefers-color-scheme:dark){:root:not(.light) .topbar{background:linear-gradient(180deg,#4338ca26,#1e293bcc);border-bottom-color:#6366f126}:root:not(.light) .topbar-brand,:root:not(.light) .topbar-wordmark{color:#a5b4fc}:root:not(.light) .topbar-menu{background:#4338ca33;border-color:#6366f140;color:#a5b4fc}:root:not(.light) .page-footer{background:#1e293b99;border-top-color:#94a3b81a}:root:not(.light) .page-footer-inner>.muted{color:#cbd5e1}:root:not(.light) .page-footer-inner>.muted:before{background:#818cf8}:root:not(.light) .page-footer .text-button{color:#94a3b8}:root:not(.light) .card{background:linear-gradient(180deg,#33415559,#1e293b80);border-color:#94a3b814;border-radius:24px;box-shadow:0 4px 16px #00000026,inset 0 1px #ffffff05}:root:not(.light) hr,:root:not(.light) .divider{border-color:#94a3b80f}:root:not(.light) .health-status.danger{border:1px solid var(--danger-border)}:root:not(.light) .health-status.warn{border:1px solid var(--primary-border)}:root:not(.light) .health-status.ok{border:1px solid var(--success-border)}}:root.dark .app{background:#0f172a}:root.dark .section-container{background:#1e293b80}:root.dark .section-container--indigo{background:#4338ca1f}:root.dark .section-header-band,:root.dark .page-header{background:#1e293b99}:root.dark .card{background:#1e293bb3;box-shadow:0 2px 8px #0003}:root.dark .topbar{background:linear-gradient(180deg,#4338ca26,#1e293bcc);border-bottom-color:#6366f126}:root.dark .topbar-brand,:root.dark .topbar-wordmark{color:#a5b4fc}:root.dark .topbar-menu{background:#4338ca33;border-color:#6366f140;color:#a5b4fc}:root.dark .page-footer{background:#1e293b99;border-top-color:#94a3b81a}:root.dark .page-footer-inner>.muted{color:#cbd5e1}:root.dark .page-footer-inner>.muted:before{background:#818cf8}:root.dark .page-footer .text-button{color:#94a3b8}:root.dark .card{background:linear-gradient(180deg,#33415559,#1e293b80);border-color:#94a3b814;border-radius:24px;box-shadow:0 4px 16px #00000026,inset 0 1px #ffffff05}:root.dark hr,:root.dark .divider{border-color:#94a3b80f}@media(prefers-color-scheme:dark){:root:not(.light) .sidebar{background:linear-gradient(180deg,#1e293bd9,#162032e6 55%,#121b2bf2);border:1px solid rgba(148,163,184,.12)}:root:not(.light) .nav-item:hover{background:#94a3b814;border-color:#94a3b81a}:root:not(.light) .nav-item.active{background:#6366f133;border-color:#6366f14d;color:#e0e7ff}:root:not(.light) .nav-item.active:before{background:#818cf8}:root:not(.light) .nav-item.active .nav-icon{color:#a5b4fc}:root:not(.light) .sidebar-footer{border-top-color:#94a3b814}:root:not(.light) .logout-button{color:#94a3b899}:root:not(.light) .logout-button:hover{color:#e2e8f0;background:#94a3b81f}:root:not(.light) .profile-trigger{background:#33415580;border-color:#94a3b833;color:#e2e8f0}:root:not(.light) .profile-trigger:hover{background:#334155b3;border-color:#94a3b84d}:root:not(.light) .profile-avatar{background:#94a3b840;color:#e2e8f0}:root:not(.light) .profile-menu{background:#1e293b;border-color:#94a3b826;box-shadow:0 8px 24px #0006}:root:not(.light) .profile-menu-label{color:#64748b}:root:not(.light) .profile-menu-item{color:#e2e8f0}:root:not(.light) .profile-menu-item:hover{background:#94a3b81a}:root:not(.light) .profile-menu-divider{background:#94a3b81a}:root:not(.light) .shell-search-bar .global-search-input{background:#33415580;border-color:#94a3b840;color:#e2e8f0}:root:not(.light) .shell-search-bar .global-search-input::placeholder{color:#94a3b8}:root:not(.light) .shell-search-bar .global-search-input:focus{border-color:#94a3b866;background:#33415599}:root:not(.light) .shell-search-bar .global-search-icon{color:#cbd5e1}}:root.dark .sidebar{background:linear-gradient(180deg,#1e293bd9,#162032e6 55%,#121b2bf2);border:1px solid rgba(148,163,184,.12)}:root.dark .nav-item:hover{background:#94a3b814;border-color:#94a3b81a}:root.dark .nav-item.active{background:#6366f133;border-color:#6366f14d;color:#e0e7ff}:root.dark .nav-item.active:before{background:#818cf8}:root.dark .nav-item.active .nav-icon{color:#a5b4fc}:root.dark .sidebar-footer{border-top-color:#94a3b814}:root.dark .logout-button{color:#94a3b899}:root.dark .logout-button:hover{color:#e2e8f0;background:#94a3b81f}:root.dark .profile-trigger{background:#33415580;border-color:#94a3b833;color:#e2e8f0}:root.dark .profile-trigger:hover{background:#334155b3;border-color:#94a3b84d}:root.dark .profile-avatar{background:#94a3b840;color:#e2e8f0}:root.dark .profile-menu{background:#1e293b;border-color:#94a3b826;box-shadow:0 8px 24px #0006}:root.dark .profile-menu-label{color:#64748b}:root.dark .profile-menu-item{color:#e2e8f0}:root.dark .profile-menu-item:hover{background:#94a3b81a}:root.dark .profile-menu-divider{background:#94a3b81a}:root.dark .shell-search-bar .global-search-input{background:#33415580;border-color:#94a3b840;color:#e2e8f0}:root.dark .shell-search-bar .global-search-input::placeholder{color:#94a3b8}:root.dark .shell-search-bar .global-search-input:focus{border-color:#94a3b866;background:#33415599}:root.dark .shell-search-bar .global-search-icon{color:#cbd5e1}@media(prefers-color-scheme:dark){:root:not(.light) .primary{background:var(--primary)!important;border-color:var(--primary-border-strong)!important;color:#fff!important;box-shadow:0 2px 8px #00000040,0 0 0 1px var(--primary-border)!important}:root:not(.light) .primary:hover{background:var(--primary-hover)!important;box-shadow:0 4px 16px #0000004d,0 0 12px var(--primary-glow)!important}:root:not(.light) .primary:disabled{background:var(--surface-soft)!important;border-color:var(--border-soft)!important;color:var(--muted)!important;box-shadow:none!important}}:root.dark .primary{background:var(--primary)!important;border-color:var(--primary-border-strong)!important;color:#fff!important;box-shadow:0 2px 8px #00000040,0 0 0 1px var(--primary-border)!important}:root.dark .primary:hover{background:var(--primary-hover)!important;box-shadow:0 4px 16px #0000004d,0 0 12px var(--primary-glow)!important}:root.dark .primary:disabled{background:var(--surface-soft)!important;border-color:var(--border-soft)!important;color:var(--muted)!important;box-shadow:none!important}@media(prefers-color-scheme:dark){:root:not(.light) .secondary,:root:not(.light) .btn-secondary{background:var(--surface-soft);border:1px solid var(--border-medium);color:var(--ink-subtle);box-shadow:none}:root:not(.light) .secondary:hover,:root:not(.light) .btn-secondary:hover{background:var(--surface-hover);border-color:var(--border-strong);color:var(--ink)}:root:not(.light) .text-button{color:var(--muted)}:root:not(.light) .text-button:hover{color:var(--ink-subtle)}:root:not(.light) .filter-pill.active{background:#334155b3;color:var(--ink);box-shadow:0 0 0 1px #94a3b833}:root:not(.light) .filter-pill:hover:not(.active){background:var(--surface-hover)}:root:not(.light) .attention-pill{border:1px solid var(--border-soft)}}:root.dark .secondary,:root.dark .btn-secondary{background:var(--surface-soft);border:1px solid var(--border-medium);color:var(--ink-subtle);box-shadow:none}:root.dark .secondary:hover,:root.dark .btn-secondary:hover{background:var(--surface-hover);border-color:var(--border-strong);color:var(--ink)}:root.dark .text-button{color:var(--muted)}:root.dark .text-button:hover{color:var(--ink-subtle)}:root.dark .filter-pill.active{background:#334155b3;color:var(--ink);box-shadow:0 0 0 1px #94a3b833}:root.dark .filter-pill:hover:not(.active){background:var(--surface-hover)}:root.dark .attention-pill{border:1px solid var(--border-soft)}@media(prefers-color-scheme:dark){:root:not(.light) .skeleton-line,:root:not(.light) .skeleton-circle,:root:not(.light) .skeleton-bar,:root:not(.light) .skeleton-pill,:root:not(.light) .skeleton-block{background:linear-gradient(90deg,#33415580,#475569b3,#33415580);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}:root:not(.light) .skeleton-line:after,:root:not(.light) .skeleton-circle:after,:root:not(.light) .skeleton-bar:after,:root:not(.light) .skeleton-pill:after{display:none}}:root.dark .skeleton-line,:root.dark .skeleton-circle,:root.dark .skeleton-bar,:root.dark .skeleton-pill,:root.dark .skeleton-block{background:linear-gradient(90deg,#33415580,#475569b3,#33415580);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite}:root.dark .skeleton-line:after,:root.dark .skeleton-circle:after,:root.dark .skeleton-bar:after,:root.dark .skeleton-pill:after{display:none}:root.dark .page-header{background:#1e293b99;border-bottom-color:#94a3b81a;border-left-color:#6366f133}:root.dark .modal-card{background:#1e293b;border-color:#94a3b826}:root.dark .modal-card>.modal-header{border-bottom-color:#94a3b81a}:root.dark .modal-card>.modal-actions{background:#0f172a80;border-top-color:#94a3b81a}:root.dark .modal-form input,:root.dark .modal-form select,:root.dark .modal-form textarea{background:#3341554d;border-color:#94a3b833;color:#e2e8f0}:root.dark .modal-form input:focus,:root.dark .modal-form select:focus,:root.dark .modal-form textarea:focus{border-color:var(--primary-border);box-shadow:0 0 0 3px #818cf826}:root.dark .status-chip-trigger{background:#33415566;border-color:#94a3b833;color:#cbd5e1}:root.dark .status-menu{background:#1e293b;border-color:#94a3b826}:root.dark .status-item{color:#e2e8f0}:root.dark .status-item:hover{background:#33415580}@media(prefers-color-scheme:dark){:root:not(.light) .page-header{background:#1e293b99;border-bottom-color:#94a3b81a;border-left-color:#6366f133}:root:not(.light) .modal-card{background:#1e293b;border-color:#94a3b826}:root:not(.light) .modal-card>.modal-header{border-bottom-color:#94a3b81a}:root:not(.light) .modal-card>.modal-actions{background:#0f172a80;border-top-color:#94a3b81a}:root:not(.light) .modal-form input,:root:not(.light) .modal-form select,:root:not(.light) .modal-form textarea{background:#3341554d;border-color:#94a3b833;color:#e2e8f0}:root:not(.light) .modal-form input:focus,:root:not(.light) .modal-form select:focus,:root:not(.light) .modal-form textarea:focus{border-color:var(--primary-border);box-shadow:0 0 0 3px #818cf826}:root:not(.light) .status-chip-trigger{background:#33415566;border-color:#94a3b833;color:#cbd5e1}:root:not(.light) .status-menu{background:#1e293b;border-color:#94a3b826}:root:not(.light) .status-item{color:#e2e8f0}:root:not(.light) .status-item:hover{background:#33415580}}.custom-select{position:relative}.custom-select.disabled{opacity:.6;pointer-events:none}.custom-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:8px 12px;background:var(--surface);border:1px solid var(--border-medium);border-radius:8px;cursor:pointer;text-align:left;color:var(--ink);font-size:var(--text-sm);font-weight:500;transition:border-color .15s,box-shadow .15s}.custom-select-trigger:hover:not(:disabled){border-color:var(--border-strong)}.custom-select-trigger:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.custom-select.open .custom-select-trigger{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.custom-select-value{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.custom-select-placeholder{color:var(--muted);flex:1}.custom-select-chevron{flex-shrink:0;width:16px;height:16px;color:var(--muted);transition:transform .15s}.custom-select.open .custom-select-chevron{transform:rotate(180deg)}.custom-select-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;box-shadow:var(--shadow-lg);z-index:100;overflow:hidden;max-height:280px;overflow-y:auto;padding:4px 0}.custom-select-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px 12px;background:transparent;border:none;cursor:pointer;text-align:left;color:var(--ink);font-size:var(--text-sm);font-weight:500;transition:background-color .1s}.custom-select-item:hover,.custom-select-item.highlighted{background:var(--surface-soft)}.custom-select-item.selected{background:var(--primary-soft)}.custom-select-item-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.custom-select-check{flex-shrink:0;width:16px;height:16px;color:var(--primary-ink)}.custom-select-empty{padding:16px 12px;text-align:center;color:var(--muted);font-size:var(--text-sm)}@media(prefers-color-scheme:dark){:root:not(.light) .custom-select-trigger{background:#1e293b99;border-color:#94a3b826;color:#e2e8f0}:root:not(.light) .custom-select-trigger:hover:not(:disabled){border-color:#94a3b840}:root:not(.light) .custom-select-dropdown{background:#1e293b;border-color:#94a3b826;box-shadow:0 8px 32px #0006}:root:not(.light) .custom-select-item{color:#e2e8f0}:root:not(.light) .custom-select-item:hover,:root:not(.light) .custom-select-item.highlighted{background:#33415580}:root:not(.light) .custom-select-item.selected{background:#58c4be26}:root:not(.light) .custom-select-value{color:#e2e8f0}:root:not(.light) .custom-select-placeholder{color:#94a3b8}:root:not(.light) .custom-select-chevron{color:#94a3b8}:root:not(.light) .custom-select-empty{color:#94a3b8}:root:not(.light) .custom-select-check{color:#58c4be}}:root.dark .custom-select-trigger{background:#1e293b99;border-color:#94a3b826;color:#e2e8f0}:root.dark .custom-select-trigger:hover:not(:disabled){border-color:#94a3b840}:root.dark .custom-select-dropdown{background:#1e293b;border-color:#94a3b826;box-shadow:0 8px 32px #0006}:root.dark .custom-select-item{color:#e2e8f0}:root.dark .custom-select-item:hover,:root.dark .custom-select-item.highlighted{background:#33415580}:root.dark .custom-select-item.selected{background:#58c4be26}:root.dark .custom-select-value{color:#e2e8f0}:root.dark .custom-select-placeholder{color:#94a3b8}:root.dark .custom-select-chevron{color:#94a3b8}:root.dark .custom-select-empty{color:#94a3b8}:root.dark .custom-select-check{color:#58c4be}.auth-page{min-height:100vh;display:grid;grid-template-columns:1fr;background:radial-gradient(ellipse 900px 600px at 10% 30%,rgba(21,40,72,.06),transparent 50%),radial-gradient(ellipse 600px 400px at 80% 80%,rgba(15,32,61,.04),transparent 50%),#f8fafc}@media(min-width:900px){.auth-page{grid-template-columns:380px 1fr}}.auth-rail{display:none;background:linear-gradient(180deg,#152848,#0f203d 55%,#0c1a32);padding:0;flex-direction:column;justify-content:space-between;color:#fffffff2;position:relative}.auth-rail:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:#4f46e5}.auth-rail-content{padding:35px 28px 32px;display:flex;flex-direction:column;justify-content:space-between;flex:1}@media(min-width:900px){.auth-rail{display:flex}}.auth-rail-top{display:flex;flex-direction:column;gap:24px}.auth-rail-brand{display:flex;align-items:center;gap:12px}.auth-rail-logo{width:36px;height:36px;background:#4f46e5;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 0 20px #4f46e54d}.auth-rail-logo span{color:#fff;font-size:18px;font-weight:700;letter-spacing:-.02em}.auth-rail-name{font-size:20px;font-weight:600;letter-spacing:-.01em;position:relative}.auth-rail-name:after{content:"";position:absolute;bottom:-6px;left:0;width:32px;height:2px;background:#4f46e5;border-radius:1px}.auth-rail-tagline{font-size:15px;color:#fff9;margin:0;font-style:italic}.auth-rail-features{list-style:none;margin:32px 0 0;padding:0;display:flex;flex-direction:column;gap:16px}.auth-rail-features li{display:flex;align-items:center;gap:12px;font-size:14px;color:#ffffffbf}.auth-rail-features svg{width:18px;height:18px;color:#10b981;flex-shrink:0}.auth-rail-footer{font-size:12px;color:#fff6}.auth-main{display:flex;align-items:center;justify-content:center;padding:24px;padding-top:max(24px,env(safe-area-inset-top));padding-bottom:max(24px,calc(24px + env(safe-area-inset-bottom)));padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));min-height:100vh;min-height:100dvh;position:relative}.auth-main:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:600px;height:600px;background:radial-gradient(circle,rgba(21,40,72,.04) 0%,transparent 70%);pointer-events:none}@media(min-width:900px){.auth-main{min-height:auto}}.auth-card{width:100%;max-width:400px;border-radius:20px;border:1px solid rgba(15,23,42,.12);background:#ffffffd9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 1px 3px #0000000a,0 12px 40px #00000014;padding:32px}.auth-mobile-brand{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:24px}.auth-mobile-logo{width:32px;height:32px;background:#4f46e5;border-radius:8px;display:flex;align-items:center;justify-content:center}.auth-mobile-logo span{color:#fff;font-size:16px;font-weight:700;letter-spacing:-.02em}.auth-mobile-name{font-size:18px;font-weight:600;color:#0f172a}@media(min-width:900px){.auth-mobile-brand{display:none}}.auth-title{font-size:22px;font-weight:600;color:#0f172a;margin:0;text-align:center}.auth-divider{height:1px;background:#0f172a14;margin:20px 0 24px}.auth-form{display:flex;flex-direction:column;gap:20px}.auth-field{display:flex;flex-direction:column;gap:6px}.auth-field label{font-size:13px;font-weight:500;color:#475569}.auth-field input{height:48px;border-radius:12px;border:1px solid rgba(15,23,42,.12);background:#f8fafccc;padding:0 14px;font-size:15px;color:#0f172a;transition:border-color .15s,box-shadow .15s}.auth-field input::placeholder{color:#94a3b8}.auth-field input:focus{outline:none;border-color:#4f46e580;box-shadow:0 0 0 4px #4f46e51a}.password-field{position:relative}.password-field input{width:100%;padding-right:48px}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:34px;height:34px;border:none;border-radius:8px;background:transparent;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s,background .15s}.password-toggle svg{width:18px;height:18px}.password-toggle:hover{color:#475569;background:#0f172a0d}.forgot-password{display:block;text-align:right;font-size:13px;color:#64748b;text-decoration:none;margin-top:8px}.forgot-password:hover{color:#4f46e5;text-decoration:underline}.auth-error{margin:0;padding:12px 14px;border-radius:10px;background:#ef444414;border:1px solid rgba(239,68,68,.2);color:#dc2626;font-size:14px}.auth-submit{height:48px;border-radius:12px;border:none;background:linear-gradient(135deg,#4f46e5,#6366f1);color:#fff;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 8px #4f46e540}.auth-submit:hover:not(:disabled){background:linear-gradient(135deg,#4338ca,#4f46e5);box-shadow:0 4px 16px #4f46e559;transform:translateY(-1px)}.auth-submit:active:not(:disabled){transform:scale(.99)}.auth-submit:disabled{opacity:.7;cursor:not-allowed}.auth-help{margin:20px 0 0;text-align:center;font-size:11px;color:#a1a1aa}@media(prefers-color-scheme:dark){:root:not(.light) .auth-page{background:radial-gradient(ellipse 900px 600px at 10% 30%,rgba(21,40,72,.15),transparent 50%),radial-gradient(ellipse 600px 400px at 80% 80%,rgba(15,32,61,.1),transparent 50%),#0f172a}:root:not(.light) .auth-rail{background:linear-gradient(180deg,#0c1a32,#091426 55%,#050d1a);border-right:1px solid rgba(148,163,184,.1)}:root:not(.light) .auth-card{background:#1e293bcc;border-color:#94a3b81f;box-shadow:0 1px 3px #0003,0 12px 40px #0000004d}:root:not(.light) .auth-mobile-name{color:#e2e8f0}:root:not(.light) .auth-title{color:#f1f5f9}:root:not(.light) .auth-divider{background:#94a3b81f}:root:not(.light) .auth-field label{color:#cbd5e1}:root:not(.light) .auth-field input{background:#0f172a99;border-color:#94a3b826;color:#f1f5f9}:root:not(.light) .auth-field input::placeholder{color:#64748b}:root:not(.light) .auth-field input:focus{border-color:#8178f780;box-shadow:0 0 0 4px #4f46e526}:root:not(.light) .password-toggle{color:#64748b}:root:not(.light) .password-toggle:hover{color:#cbd5e1;background:#94a3b81a}:root:not(.light) .forgot-password{color:#94a3b8}:root:not(.light) .forgot-password:hover{color:#818cf8}:root:not(.light) .auth-error{background:#ef444426;border-color:#ef44444d;color:#fca5a5}:root:not(.light) .auth-submit{background:#e2e8f0;color:#1e293b}:root:not(.light) .auth-submit:hover:not(:disabled){background:#f1f5f9}:root:not(.light) .auth-help{color:#64748b}}:root.dark .auth-page{background:radial-gradient(ellipse 900px 600px at 10% 30%,rgba(21,40,72,.15),transparent 50%),radial-gradient(ellipse 600px 400px at 80% 80%,rgba(15,32,61,.1),transparent 50%),#0f172a}:root.dark .auth-rail{background:linear-gradient(180deg,#0c1a32,#091426 55%,#050d1a);border-right:1px solid rgba(148,163,184,.1)}:root.dark .auth-card{background:#1e293bcc;border-color:#94a3b81f;box-shadow:0 1px 3px #0003,0 12px 40px #0000004d}:root.dark .auth-mobile-name{color:#e2e8f0}:root.dark .auth-title{color:#f1f5f9}:root.dark .auth-divider{background:#94a3b81f}:root.dark .auth-field label{color:#cbd5e1}:root.dark .auth-field input{background:#0f172a99;border-color:#94a3b826;color:#f1f5f9}:root.dark .auth-field input::placeholder{color:#64748b}:root.dark .auth-field input:focus{border-color:#8178f780;box-shadow:0 0 0 4px #4f46e526}:root.dark .password-toggle{color:#64748b}:root.dark .password-toggle:hover{color:#cbd5e1;background:#94a3b81a}:root.dark .forgot-password{color:#94a3b8}:root.dark .forgot-password:hover{color:#818cf8}:root.dark .auth-error{background:#ef444426;border-color:#ef44444d;color:#fca5a5}:root.dark .auth-submit{background:#e2e8f0;color:#1e293b}:root.dark .auth-submit:hover:not(:disabled){background:#f1f5f9}:root.dark .auth-help{color:#64748b}.shell>.dashboard-scroll-container{flex:1 1 0;min-height:0;overflow-y:auto;padding-bottom:16px;margin-bottom:-30px;background:transparent}.dashboard-grid .card{background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:0 1px 3px #0000000a}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;align-items:stretch}.attention-strip{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 20px;border-radius:16px;border:1px solid var(--border-soft);background:var(--surface);margin-bottom:22px;flex-wrap:wrap}.attention-title{display:flex;align-items:center;gap:12px}.attention-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:var(--surface-soft);color:var(--muted)}.attention-icon svg{width:18px;height:18px}.attention-meta{display:grid;gap:2px}.attention-meta strong{font-size:var(--text-base);font-weight:600;color:var(--ink)}.attention-meta .muted{font-size:var(--text-xs)}.attention-items{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.attention-pill{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:10px;font-size:var(--text-sm);font-weight:500;background:var(--surface-soft);color:var(--ink-subtle);border:1px solid var(--border-soft);transition:transform .15s ease,box-shadow .15s ease}.attention-pill:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000000f}.attention-dot{width:8px;height:8px;border-radius:50%;background:var(--muted-soft);flex-shrink:0}.attention-pill.ok{background:#dcfce7;border-color:#16a34a4d;color:#166534}.attention-pill.ok .attention-dot{background:#16a34a}.attention-pill.warn{background:var(--surface);border-color:var(--accent-border);color:var(--ink)}.attention-pill.warn .attention-dot{background:var(--accent)}.attention-pill.danger{background:var(--surface);border-color:var(--danger-border);color:var(--ink)}.attention-pill.danger .attention-dot{background:var(--danger-strong)}.attention-strip.all-clear{background:linear-gradient(135deg,var(--surface) 0%,rgba(22,163,74,.02) 100%);border-color:var(--success-border)}.attention-strip.all-clear .attention-icon{background:var(--success-soft);color:var(--success-ink)}@media(prefers-color-scheme:dark){:root:not(.light) .attention-strip{background:#3341554d;border-color:var(--border-soft)}:root:not(.light) .attention-pill{background:#1e293b99;border-color:var(--border-medium)}:root:not(.light) .attention-pill.ok{border-color:var(--success-border)}:root:not(.light) .attention-pill.warn{border-color:var(--accent-border)}:root:not(.light) .attention-pill.danger{border-color:var(--danger-border)}:root:not(.light) .attention-strip.all-clear{background:linear-gradient(135deg,#3341554d,#4ade800d)}}:root.dark .attention-strip{background:#3341554d;border-color:var(--border-soft)}:root.dark .attention-pill{background:#1e293b99;border-color:var(--border-medium)}:root.dark .attention-pill.ok{border-color:var(--success-border)}:root.dark .attention-pill.warn{border-color:var(--accent-border)}:root.dark .attention-pill.danger{border-color:var(--danger-border)}:root.dark .attention-strip.all-clear{background:linear-gradient(135deg,#3341554d,#4ade800d)}.dashboard-header h2{font-weight:900}.dashboard-grid.calm{grid-template-columns:minmax(320px,1.2fr) minmax(280px,1fr)}.dashboard-title{grid-column:1 / -1;display:grid;gap:6px;padding:6px 4px 2px}.dashboard-title h2{margin:0;font-size:var(--text-6xl)}.dashboard-title .muted{font-size:var(--text-base-plus)}.dashboard-grid .card{border-radius:26px;padding:24px;border:1px solid var(--border-soft);background:var(--surface)}.dashboard-grid .card h3{font-size:var(--text-xl);margin:0}.today-card{gap:20px}.today-card h2{margin:0 0 4px}.today-header{display:flex;justify-content:space-between;align-items:center;gap:12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:18px}.stat-grid.compact{gap:16px}.stat strong{font-size:var(--text-3xl);display:block;margin:4px 0}.stat-trend{font-size:var(--text-sm);color:var(--success-ink)}.action-list{display:grid;gap:10px}.action-item{display:flex;gap:12px;align-items:flex-start}.dashboard-grid .action-item .icon{width:40px;height:40px;border-radius:14px;background:var(--surface-soft);display:grid;place-items:center;font-size:var(--text-4xl)}.action-item .icon{font-size:var(--text-4xl)}.list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.list li{display:grid;gap:4px}.feed{display:grid;gap:14px}.feed-item{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border-subtle)}.feed-item:last-child{border-bottom:none}.birthday-list{display:grid;gap:10px;margin-top:12px}.birthday-item{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:4px 0}.birthday-item strong{display:block}.birthday-item .muted{font-size:var(--text-sm)}.avatar-circle{width:28px;height:28px;border-radius:50%;aspect-ratio:1 / 1;overflow:hidden;background:var(--surface-soft);color:var(--ink-subtle);display:grid;place-items:center;font-weight:700;font-size:var(--text-xs);border:2px solid var(--surface);box-shadow:none;position:relative}.birthday-more{font-size:var(--text-sm);font-weight:600;padding-top:4px}.avatar-circle img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}.avatar-circle.is-loading:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,var(--surface-soft),var(--surface-muted),var(--surface-soft));background-size:200% 100%;animation:shimmer 1.4s ease infinite}.birthday-date{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:600;color:var(--muted)}.birthdays-card{background:var(--surface-soft);border-color:var(--border-subtle)}.birthdays-card h3{font-size:var(--text-lg)}.birthday-dot{width:6px;height:6px;border-radius:999px;background:var(--muted);display:inline-block}.birthday-dot.blue{background:var(--primary-ink)}.birthday-dot.green{background:var(--success-ink)}.birthday-dot.yellow{background:var(--warning-ink)}.ratio-list{display:grid;gap:12px;margin-top:12px}.ratio-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:12px}.ratio-bar{height:6px;border-radius:999px;background:var(--surface-muted);position:relative;overflow:hidden}.ratio-bar span{display:block;height:100%;background:var(--primary-ink);border-radius:999px}.ratio-pill{padding:4px 10px;border-radius:999px;font-size:var(--text-sm);font-weight:600;background:var(--surface-soft);color:var(--ink-subtle)}.ratio-pill.ok{background:var(--success-soft);color:var(--success-ink)}.ratio-pill.warn{background:var(--danger-soft);color:var(--danger-ink)}.ratio-status{display:inline-flex;align-items:center;gap:10px}.ratio-context{font-size:var(--text-xs);font-weight:600}.ratio-state{font-size:var(--text-sm);font-weight:600;color:var(--muted-strong);display:inline-flex;align-items:center;gap:6px}.ratio-status.ok .ratio-state{color:var(--success-ink)}.ratio-status.warn .ratio-state{color:var(--warning-ink)}.ratio-status.danger .ratio-state{color:var(--danger-ink)}.revenue-card{display:grid;gap:12px;background:var(--surface-muted);border-color:var(--border-subtle)}.revenue-card .card-title .muted{font-size:var(--text-sm)}.revenue-metric strong{font-size:var(--text-2xl);display:block;margin-bottom:4px;font-weight:600;letter-spacing:-.01em}.revenue-amount{display:grid;gap:6px;margin-bottom:6px}.revenue-amount .muted{font-size:var(--text-sm)}.revenue-label{font-size:var(--text-sm);font-weight:600;color:var(--muted-strong)}.revenue-period{font-size:var(--text-xs);margin-top:-2px}.revenue-details{display:grid;gap:16px;margin-top:8px}.revenue-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}.revenue-row-text{display:grid;gap:4px}.revenue-row strong{font-size:var(--text-base)}.revenue-row-value{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:var(--text-base);color:var(--ink)}.revenue-row-value svg{width:12px;height:12px}.revenue-row-value.up{color:var(--success-ink)}.revenue-row-value.down{color:var(--danger-ink)}.revenue-row-value.neutral{color:var(--ink)}.activity-list{display:grid;gap:12px;margin-top:12px}.ratio-loading .skeleton-row{grid-template-columns:1fr 2fr auto}.ratio-loading .skeleton-bar{max-width:220px}.revenue-loading .skeleton-line.wide{height:28px;width:180px;border-radius:12px}.revenue-loading .skeleton-line.medium{width:120px}.revenue-loading .skeleton-duo{display:grid;gap:16px;margin-top:6px}.revenue-loading .skeleton-row{grid-template-columns:auto 1fr}.activity-row{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:12px}.activity-row strong{display:block}.activity-row .muted{font-size:var(--text-sm)}.activity-context{display:block;margin-top:4px;font-size:var(--text-xs);color:var(--muted)}.activity-count{width:42px;height:42px;border-radius:50%;background:var(--surface-soft);display:grid;place-items:center;font-weight:700;color:var(--ink)}.activity-disclaimer{margin-top:12px;font-size:var(--text-xs)}@media(max-width:900px){.today-header{flex-direction:column;align-items:flex-start}.dashboard-grid.calm{grid-template-columns:1fr}}.staff-dashboard{display:flex;flex-direction:column;height:100%;gap:0}.staff-command-bar{display:flex;align-items:center;justify-content:space-between;padding:0 280px 12px 0;gap:16px}.staff-command-left{display:flex;align-items:baseline;gap:12px}.staff-command-left h1{font-size:var(--text-xl);font-weight:600;color:var(--ink);margin:0}.staff-date{font-size:var(--text-sm);color:var(--muted)}.staff-command-right{display:flex;align-items:center;gap:12px}.staff-classroom-select{min-width:160px}.staff-classroom-chip{display:inline-flex;align-items:center;padding:6px 12px;font-size:var(--text-sm);font-weight:500;color:var(--muted);background:var(--surface-muted);border-radius:8px}.staff-action-row{display:flex;gap:10px;padding-bottom:16px}.staff-action-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:10px;font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:all .15s ease}.staff-action-btn.staff-primary{background:var(--primary);color:#fff;border:1px solid var(--primary);box-shadow:0 2px 8px #4f46e540}.staff-action-btn.staff-primary:hover{background:var(--primary-hover);color:#fff;border-color:var(--primary-hover);transform:translateY(-1px);box-shadow:0 4px 12px #4f46e54d,0 0 20px #4f46e526}.staff-action-btn.staff-primary:active{background:var(--primary);color:#fff;transform:translateY(0);box-shadow:0 2px 6px #4f46e540}.staff-action-btn.staff-primary:focus{background:var(--primary);color:#fff;outline:none}.staff-action-btn.staff-primary:focus-visible{background:var(--primary);color:#fff;outline:2px solid var(--primary-border);outline-offset:2px}.staff-action-btn.secondary{background:transparent;color:var(--ink);border:1px solid var(--border-medium)}.staff-action-btn.secondary:hover{background:var(--surface-hover);border-color:var(--border-strong)}.staff-action-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;transition:transform .2s ease}.staff-action-btn.staff-primary:hover .staff-action-icon{transform:rotate(90deg)}.staff-action-icon svg{width:100%;height:100%}.staff-dashboard-scroll{flex:1 1 0;min-height:0;overflow-y:auto;display:flex;flex-direction:column}.staff-widgets{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:20px}.staff-widget{background:var(--surface);border:1px solid var(--border-soft);border-radius:16px;box-shadow:0 2px 8px #0f172a0f,0 6px 20px #0f172a0a;padding:14px 16px;display:flex;flex-direction:column;min-height:170px;transition:transform .2s ease,box-shadow .2s ease}.staff-widget:hover{box-shadow:0 4px 12px #0f172a14,0 8px 24px #0f172a0f}.staff-widget-checkin{background:linear-gradient(135deg,rgba(14,165,233,.04) 0%,var(--surface) 100%);border-color:#0ea5e91f}.staff-widget-checkin.has-data{background:linear-gradient(135deg,#0ea5e914,#0ea5e905);animation:cardEnter .3s ease-out}.staff-widget-naps{background:linear-gradient(135deg,rgba(139,92,246,.04) 0%,var(--surface) 100%);border-color:#8b5cf61f}.staff-widget-naps.has-data{background:linear-gradient(135deg,#8b5cf614,#8b5cf605);animation:cardEnter .3s ease-out}@keyframes cardEnter{0%{opacity:.8;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.staff-widget-wide{grid-column:span 2;min-height:auto}.staff-widget-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.staff-widget-meta{display:flex;align-items:center;gap:10px}.staff-widget-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:var(--surface-muted);color:var(--muted)}.staff-widget-icon.checkin{background:#0ea5e91f;color:#0284c7}.staff-widget-icon.napping{background:#8b5cf61f;color:#7c3aed}.staff-widget-icon svg{width:18px;height:18px}.staff-widget-header h3{font-size:var(--text-sm);font-weight:600;color:var(--ink);margin:0}.staff-widget-count{font-size:var(--text-2xl);font-weight:700;color:var(--muted);line-height:1;transition:color .2s ease,transform .2s ease}.staff-widget-count.active{color:#0284c7}.staff-widget-count.napping{color:#7c3aed}.staff-widget-badge{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;font-size:var(--text-sm);font-weight:600;background:var(--surface-muted);color:var(--ink)}.staff-widget-badge.napping{background:#8b5cf61f;color:#7c3aed}.staff-widget-body{flex:1;display:flex;flex-direction:column}.staff-widget-loading{display:flex;flex-direction:column;gap:10px}.staff-widget-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:8px}.staff-widget-empty p{margin:0;font-size:var(--text-sm);color:var(--ink);font-weight:500}.staff-widget-hint{font-size:var(--text-xs);color:var(--muted);margin-top:2px}.staff-link-btn{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-sm);font-weight:500;color:var(--primary-ink);background:none;border:none;padding:4px 0;cursor:pointer;transition:opacity .15s ease}.staff-link-btn:hover{opacity:.8}.staff-link-btn svg{width:14px;height:14px}.staff-children-list{display:flex;flex-direction:column;gap:2px}.staff-child-row{display:flex;align-items:center;gap:10px;padding:5px 0}.staff-child-avatar{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#0ea5e91f;color:#0284c7;font-size:var(--text-xs);font-weight:600;flex-shrink:0}.staff-child-info{display:flex;flex-direction:column;gap:1px;min-width:0}.staff-child-name{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.staff-child-time{font-size:var(--text-xs);color:var(--muted)}.staff-more-btn{font-size:var(--text-xs);color:var(--muted);background:none;border:none;padding:6px 0;cursor:pointer;text-align:left}.staff-more-btn:hover{color:var(--ink)}.staff-naps-list{display:flex;flex-direction:column;gap:2px}.staff-nap-row{display:flex;align-items:center;gap:10px;padding:5px 0}.staff-nap-avatar{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:#8b5cf61f;color:#7c3aed;font-size:var(--text-xs);font-weight:600;flex-shrink:0}.staff-nap-info{display:flex;flex-direction:column;gap:1px;min-width:0}.staff-nap-name{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.staff-nap-time{font-size:var(--text-xs);color:var(--muted)}.staff-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.staff-stat-card{display:flex;flex-direction:column;align-items:center;gap:2px;padding:14px 8px;background:var(--surface-muted);border-radius:12px;border:1px solid transparent;box-shadow:0 2px 6px #0f172a0f;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease;cursor:pointer}.staff-stat-card:hover{transform:translateY(-3px);box-shadow:0 6px 16px #0f172a1f}.staff-stat-card:active{transform:translateY(-1px);box-shadow:0 3px 8px #0f172a1a}.staff-stat-card.meals{background:var(--surface-muted);border-color:#fb923c1f}.staff-stat-card.meals:hover{border-color:#fb923c40}.staff-stat-card.meals .staff-stat-value{color:#ea580c}.staff-stat-card.naps{background:var(--surface-muted);border-color:#8b5cf61f}.staff-stat-card.naps:hover{border-color:#8b5cf640}.staff-stat-card.naps .staff-stat-value{color:#7c3aed}.staff-stat-card.potty{background:var(--surface-muted);border-color:#64748b1f}.staff-stat-card.potty:hover{border-color:#64748b40}.staff-stat-card.potty .staff-stat-value{color:#475569}.staff-stat-card.notes{background:var(--surface-muted);border-color:#3b82f61f}.staff-stat-card.notes:hover{border-color:#3b82f640}.staff-stat-card.notes .staff-stat-value{color:#2563eb}.staff-stat-value{font-size:var(--text-2xl);font-weight:700;color:var(--ink);line-height:1}.staff-stat-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.staff-recent-section{flex:1;margin-bottom:-42px;background:var(--surface);border:1px solid var(--border-soft);border-radius:16px;box-shadow:0 1px 4px #0f172a08,0 2px 8px #0f172a05;padding:14px 16px;display:flex;flex-direction:column}.staff-recent-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--border-soft)}.staff-recent-header h3{font-size:var(--text-sm);font-weight:600;color:var(--ink);margin:0}.staff-recent-loading{display:flex;flex-direction:column;gap:10px}.staff-recent-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 16px 24px;text-align:center;position:relative}.staff-recent-empty:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:80px;height:2px;background:repeating-linear-gradient(90deg,var(--border-soft) 0px,var(--border-soft) 4px,transparent 4px,transparent 8px);border-radius:1px;opacity:.6}.staff-recent-empty-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,#fbbf241f,#fb923c14);color:#f59e0b}.staff-recent-empty-icon svg{width:28px;height:28px}.staff-recent-empty-title{font-size:var(--text-base);font-weight:600;color:var(--ink);margin:0}.staff-recent-empty-hint{font-size:var(--text-sm);color:var(--muted);margin:0;max-width:280px}.staff-btn-primary{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;margin-top:4px;background:var(--primary);color:#fff;border:none;border-radius:10px;font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background .15s ease,transform .15s ease}.staff-btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px)}.staff-btn-primary svg{width:16px;height:16px}.staff-recent-list{display:flex;flex-direction:column;gap:2px}.staff-recent-item{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border-soft)}.staff-recent-item:last-child{border-bottom:none;padding-bottom:0}.staff-recent-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;background:var(--surface-muted);color:var(--muted);flex-shrink:0}.staff-recent-icon svg{width:14px;height:14px}.staff-recent-icon.meal{background:#fb923c1a;color:#ea580c}.staff-recent-icon.nap{background:#8b5cf61a;color:#7c3aed}.staff-recent-icon.potty{background:#64748b1a;color:#475569}.staff-recent-info{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.staff-recent-title{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--ink)}.staff-recent-title strong{font-weight:500}.staff-recent-type,.staff-recent-time{font-size:var(--text-xs);color:var(--muted)}.staff-dashboard .skeleton-row{display:flex;align-items:center;gap:10px}.staff-dashboard .skeleton-circle{width:30px;height:30px;border-radius:50%;background:linear-gradient(90deg,var(--skeleton-base) 0%,var(--skeleton-highlight) 50%,var(--skeleton-base) 100%);background-size:200% 100%;animation:staff-skeleton-shimmer 1.5s ease-in-out infinite}.staff-dashboard .skeleton-circle.small{width:28px;height:28px;border-radius:8px}.staff-dashboard .skeleton-line{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--skeleton-base) 0%,var(--skeleton-highlight) 50%,var(--skeleton-base) 100%);background-size:200% 100%;animation:staff-skeleton-shimmer 1.5s ease-in-out infinite}.staff-dashboard .skeleton-line.short{width:60px}.staff-dashboard .skeleton-line.medium{width:100px}.staff-dashboard .skeleton-lines{display:flex;flex-direction:column;gap:6px}.staff-dashboard{--skeleton-base: rgba(226, 232, 240, .6);--skeleton-highlight: rgba(241, 245, 249, .9)}@keyframes staff-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media(max-width:900px){.staff-widgets{grid-template-columns:1fr}.staff-widget-wide{grid-column:span 1}.staff-stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.staff-command-bar{flex-direction:column;align-items:flex-start;gap:12px}.staff-command-right,.staff-classroom-select{width:100%}.staff-action-row{flex-wrap:wrap}.staff-action-btn{flex:1;min-width:100px;justify-content:center}}@media(max-width:480px){.staff-action-btn span:not(.staff-action-icon){display:none}.staff-action-btn{padding:10px 12px;flex:0}.staff-stats-grid{grid-template-columns:repeat(2,1fr)}}@media(prefers-color-scheme:dark){:root:not(.light) .staff-dashboard{--skeleton-base: rgba(51, 65, 85, .5);--skeleton-highlight: rgba(71, 85, 105, .7)}:root:not(.light) .staff-widget{background:var(--surface);border-color:var(--border-soft);box-shadow:0 2px 8px #0003}:root:not(.light) .staff-widget-checkin{background:linear-gradient(135deg,rgba(14,165,233,.08) 0%,var(--surface) 100%);border-color:#0ea5e933}:root:not(.light) .staff-widget-naps{background:linear-gradient(135deg,rgba(139,92,246,.08) 0%,var(--surface) 100%);border-color:#8b5cf633}:root:not(.light) .staff-widget-icon.checkin{background:#0ea5e933;color:#38bdf8}:root:not(.light) .staff-widget-icon.napping{background:#8b5cf633;color:#a78bfa}:root:not(.light) .staff-widget-count.active{color:#38bdf8}:root:not(.light) .staff-widget-count.napping{color:#a78bfa}:root:not(.light) .staff-child-avatar{background:#0ea5e933;color:#38bdf8}:root:not(.light) .staff-nap-avatar{background:#8b5cf633;color:#a78bfa}:root:not(.light) .staff-recent-section{background:var(--surface);border-color:var(--border-soft);box-shadow:0 2px 8px #0003}:root:not(.light) .staff-action-btn.staff-primary{background:var(--primary-ink);border-color:var(--primary-ink)}:root:not(.light) .staff-action-btn.secondary{background:transparent;border-color:var(--border-medium)}:root:not(.light) .staff-action-btn.secondary:hover{background:var(--surface-hover)}:root:not(.light) .staff-stat-card.meals{background:var(--surface);border-color:#fb923c26}:root:not(.light) .staff-stat-card.meals .staff-stat-value{color:#fb923c}:root:not(.light) .staff-stat-card.naps{background:var(--surface);border-color:#8b5cf626}:root:not(.light) .staff-stat-card.naps .staff-stat-value{color:#a78bfa}:root:not(.light) .staff-stat-card.potty{background:var(--surface);border-color:#94a3b826}:root:not(.light) .staff-stat-card.potty .staff-stat-value{color:#94a3b8}:root:not(.light) .staff-stat-card.notes{background:var(--surface);border-color:#3b82f626}:root:not(.light) .staff-stat-card.notes .staff-stat-value{color:#60a5fa}:root:not(.light) .staff-stat-card:hover{box-shadow:0 4px 12px #0000004d}:root:not(.light) .staff-recent-icon.meal{background:#fb923c26;color:#fb923c}:root:not(.light) .staff-recent-icon.nap{background:#8b5cf626;color:#a78bfa}:root:not(.light) .staff-recent-icon.potty{background:#94a3b826;color:#94a3b8}:root:not(.light) .staff-recent-empty-icon{background:linear-gradient(135deg,#fbbf2433,#fb923c1f);color:#fbbf24}:root:not(.light) .staff-recent-empty-hint,:root:not(.light) .staff-widget-hint,:root:not(.light) .staff-checkin-empty,:root:not(.light) .staff-naps-empty{color:#a1adc0}:root:not(.light) .staff-btn-primary{background:var(--primary-ink)}}:root.dark .staff-dashboard{--skeleton-base: rgba(51, 65, 85, .5);--skeleton-highlight: rgba(71, 85, 105, .7)}:root.dark .staff-widget{background:var(--surface);border-color:var(--border-soft);box-shadow:0 2px 8px #0003}:root.dark .staff-widget-checkin{background:linear-gradient(135deg,rgba(14,165,233,.08) 0%,var(--surface) 100%);border-color:#0ea5e933}:root.dark .staff-widget-naps{background:linear-gradient(135deg,rgba(139,92,246,.08) 0%,var(--surface) 100%);border-color:#8b5cf633}:root.dark .staff-widget-icon.checkin{background:#0ea5e933;color:#38bdf8}:root.dark .staff-widget-icon.napping{background:#8b5cf633;color:#a78bfa}:root.dark .staff-widget-count.active{color:#38bdf8}:root.dark .staff-widget-count.napping{color:#a78bfa}:root.dark .staff-child-avatar{background:#0ea5e933;color:#38bdf8}:root.dark .staff-nap-avatar{background:#8b5cf633;color:#a78bfa}:root.dark .staff-recent-section{background:var(--surface);border-color:var(--border-soft);box-shadow:0 2px 8px #0003}:root.dark .staff-action-btn.staff-primary{background:var(--primary-ink);border-color:var(--primary-ink)}:root.dark .staff-action-btn.secondary{background:transparent;border-color:var(--border-medium)}:root.dark .staff-action-btn.secondary:hover{background:var(--surface-hover)}:root.dark .staff-stat-card.meals{background:var(--surface);border-color:#fb923c26}:root.dark .staff-stat-card.meals .staff-stat-value{color:#fb923c}:root.dark .staff-stat-card.naps{background:var(--surface);border-color:#8b5cf626}:root.dark .staff-stat-card.naps .staff-stat-value{color:#a78bfa}:root.dark .staff-stat-card.potty{background:var(--surface);border-color:#94a3b826}:root.dark .staff-stat-card.potty .staff-stat-value{color:#94a3b8}:root.dark .staff-stat-card.notes{background:var(--surface);border-color:#3b82f626}:root.dark .staff-stat-card.notes .staff-stat-value{color:#60a5fa}:root.dark .staff-stat-card:hover{box-shadow:0 4px 12px #0000004d}:root.dark .staff-recent-icon.meal{background:#fb923c26;color:#fb923c}:root.dark .staff-recent-icon.nap{background:#8b5cf626;color:#a78bfa}:root.dark .staff-recent-icon.potty{background:#94a3b826;color:#94a3b8}:root.dark .staff-recent-empty-icon{background:linear-gradient(135deg,#fbbf2433,#fb923c1f);color:#fbbf24}:root.dark .staff-recent-empty-hint,:root.dark .staff-widget-hint,:root.dark .staff-checkin-empty,:root.dark .staff-naps-empty{color:#a1adc0}:root.dark .staff-btn-primary{background:var(--primary-ink)}.shell>.messages-grid{flex:1 1 0}.messages-grid{display:flex;gap:20px;min-height:0;margin-bottom:-42px}.messages-attention{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;border-radius:18px;border:1px solid var(--border-soft);background:var(--surface);border-left:4px solid var(--accent);margin-bottom:18px;flex-wrap:wrap}.messages-attention-title{display:grid;gap:4px}.messages-attention-title strong{font-weight:800}.messages-attention-pills{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.attention-pill{padding:6px 12px;border-radius:999px;font-size:var(--text-sm);font-weight:600;background:var(--surface-soft);color:var(--ink-subtle)}.attention-pill.ok{background:var(--success-soft);color:var(--success-ink)}.attention-pill.warn{background:var(--warning-soft);color:var(--warning-ink)}.messages-list{width:320px;flex-shrink:0;padding:18px;gap:12px;min-height:0;overflow:hidden;border-color:var(--border-soft)}.messages-list-header{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.messages-list-header p{margin:4px 0 0}.messages-filters{display:flex;gap:6px;background:var(--surface-soft);border:1px solid var(--border-soft);padding:4px;border-radius:999px}.filter-pill{border:none;background:transparent;color:var(--muted-strong);border-radius:999px;padding:6px 12px;font-size:var(--text-xs);font-weight:600;cursor:pointer}.filter-pill.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-soft)}@media(prefers-color-scheme:dark){:root:not(.light) .filter-pill.active{background:#334155b3!important;box-shadow:0 0 0 1px #94a3b833!important}}:root.dark .filter-pill.active{background:#334155b3!important;box-shadow:0 0 0 1px #94a3b833!important}.messages-search{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:14px;border:1px solid var(--border-soft);background:var(--surface)}.messages-search input{flex:1;border:none;background:transparent;font-size:var(--text-md);color:var(--ink);outline:none}.messages-search .muted{font-size:var(--text-xs)}.messages-list-body{display:grid;gap:10px;align-content:start;flex:1;min-height:0;overflow-y:auto}.message-thread{border:1px solid var(--border-soft);background:var(--surface);border-radius:16px;padding:12px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;text-align:left;cursor:pointer;color:inherit}.thread-avatar{width:38px;height:38px;border-radius:14px;background:var(--surface-muted, #f1f5f9);color:var(--muted-strong, #475569);display:grid;place-items:center;font-weight:700;font-size:var(--text-sm)}.thread-main{display:grid;gap:6px}.thread-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.thread-bottom{display:flex;justify-content:space-between;gap:10px;align-items:center}.thread-badges{display:flex;align-items:center;gap:6px}.badge{font-size:var(--text-xxs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:2px 6px;border-radius:999px;background:var(--surface-soft);color:var(--muted-strong)}.badge.warn,.badge.info{background:transparent;color:var(--muted-strong, #475569)}.badge-icon{display:inline-flex;align-items:center;gap:4px}.badge-icon svg{width:12px;height:12px;opacity:.8}.thread-time{font-size:var(--text-xs);color:var(--muted)}.message-thread strong{display:block;font-size:var(--text-base);color:var(--ink)}.message-thread .muted{font-size:var(--text-sm)}.unread-badge{background:var(--primary-ink);color:var(--text-on-dark);border-radius:999px;padding:2px 8px;font-size:var(--text-xs);font-weight:700}.message-thread.active{border-color:var(--border-medium);background:var(--surface);box-shadow:var(--shadow-soft)}.messages-thread{flex:1;padding:18px;gap:16px;min-height:0;overflow:hidden;border-color:var(--border-soft);position:relative}.messages-thread:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--accent));opacity:0;border-radius:12px 12px 0 0}.messages-thread-header{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.thread-details{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.messages-thread .detail-pill{padding:4px 10px;border-radius:999px;background:var(--surface-soft);color:var(--ink);font-size:var(--text-xs);font-weight:600}.messages-thread .detail-note{font-size:var(--text-xs);color:var(--muted-strong);margin:8px 0 0}.messages-thread-body{display:grid;gap:10px;align-content:start;flex:1;min-height:0;overflow-y:auto;background:#f9fafb;border:1px solid var(--border-subtle);border-radius:18px;padding:10px 14px}.messages-loading .skeleton-row{grid-template-columns:auto 1fr auto}.messages-thread-loading{display:grid;gap:10px}.messages-thread-loading .skeleton-line{width:min(70%,280px)}.messages-thread-loading .skeleton-line.wide{width:min(85%,320px)}.messages-thread-loading .skeleton-line.short{width:min(45%,160px)}.message-bubble{padding:10px 14px;border-radius:18px;background:var(--surface);max-width:65%;display:grid;gap:6px;box-shadow:0 1px 2px #0000000a}.message-bubble p{margin:0;font-size:var(--text-base);color:var(--ink)}.message-bubble .muted{font-size:var(--text-xs)}.message-bubble.incoming{margin-right:auto;background:var(--surface);border:1px solid var(--border-soft)}.message-bubble.outgoing{margin-left:auto;background:var(--surface);border:1px solid var(--border-medium);border-right:3px solid var(--primary)}.message-bubble.outgoing p{color:var(--ink)}.message-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--text-xs)}.message-sender{display:flex;align-items:center;gap:6px;font-weight:400;color:var(--muted)}.message-role{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--muted, #64748b)}.message-bubble.outgoing .message-sender,.message-bubble.outgoing .message-role{color:var(--muted)}.message-time{color:var(--muted);font-size:10px;opacity:.5;flex-shrink:0}.message-bubble.outgoing .message-time{color:var(--muted);opacity:.5}.messages-thread-input{display:flex;gap:10px;align-items:center;padding-top:8px;border-top:1px solid var(--border-subtle)}.reply-context{font-size:var(--text-xs);color:var(--muted-strong);padding:4px 0 2px}.messages-modal textarea{border-radius:12px;border:1px solid var(--border-medium);padding:10px 12px;font-size:var(--text-base);background:var(--surface);color:var(--ink);resize:vertical}.messages-modal select optgroup{font-weight:600;color:var(--ink-subtle);padding:8px 0 4px}.messages-modal select option{font-weight:400;color:var(--ink);padding:6px 12px}.messages-modal .modal-form{overflow:visible}.messages-modal .modal-form>label{position:relative}.messages-modal .child-picker-dropdown{z-index:200}.compose-recipient-section{display:grid;gap:4px;margin-top:-4px}.compose-recipient-preview{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--surface-soft);border-radius:8px;font-size:var(--text-sm)}.compose-recipient-note{font-size:var(--text-xs);padding-left:12px}.compose-recipient-label{color:var(--ink-subtle)}.compose-recipient-name{font-weight:600;color:var(--ink)}.messages-modal button.primary:disabled{opacity:.5;cursor:not-allowed}.messages-thread-input input{flex:1;border-radius:10px;border:1px solid var(--border-medium);padding:10px 12px;font-size:var(--text-base);background:var(--surface);color:var(--ink)}.messages-empty{padding:24px;min-height:320px;display:grid;place-items:center;text-align:center}.messages-empty-content{display:grid;gap:8px;justify-items:center;max-width:320px}.messages-empty-title{font-size:var(--text-lg);font-weight:700;color:var(--ink)}.messages-empty-action{background:none;border:none;padding:0;margin-top:8px;font:inherit;font-size:var(--text-sm);font-weight:500;color:var(--primary);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.messages-empty-action:hover{opacity:.8}.quick-replies-section{display:grid;gap:6px}.quick-replies-label{font-size:var(--text-xxs);font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.quick-replies{display:flex;flex-wrap:wrap;gap:6px}.quick-reply{border:1px solid var(--border-subtle);background:transparent;color:var(--muted);padding:5px 10px;border-radius:999px;font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:color .15s,border-color .15s}.quick-reply:hover{color:var(--ink-subtle);border-color:var(--border-soft)}@media(max-width:900px){.messages-grid{flex-direction:column;gap:16px;margin-bottom:0;max-width:100%;overflow-x:hidden}.messages-attention{flex-direction:column;align-items:flex-start;gap:12px}.messages-attention-pills{justify-content:flex-start;width:100%}.messages-list{width:100%;flex-shrink:1;max-height:320px;overflow-y:auto;padding:14px}.messages-list-header{flex-direction:column;align-items:flex-start;gap:10px}.messages-filters{width:100%;justify-content:center}.messages-list-body{max-height:none}.message-thread{padding:10px}.messages-thread{width:100%;flex-shrink:1;padding:14px;min-height:400px}.messages-thread-header{flex-direction:column;gap:12px}.thread-details{margin-top:4px}.messages-thread-body{max-height:none;padding:10px}.message-bubble{max-width:85%}.messages-thread-input{flex-wrap:wrap;gap:8px}.messages-thread-input input{min-width:0;flex:1 1 100%}.quick-replies{width:100%;justify-content:flex-start}.messages-empty{min-height:200px;padding:16px}}@media(prefers-color-scheme:dark){:root:not(.light) .messages-filters{background:#3341554d;border-color:#94a3b81a}:root:not(.light) .filter-pill{color:var(--muted)}:root:not(.light) .filter-pill:hover:not(.active){color:var(--ink-subtle);background:#94a3b814}:root:not(.light) .messages-list{background:linear-gradient(180deg,#33415559,#1e293b80)}:root:not(.light) .message-thread{background:#1e293b66;border-color:#94a3b814}:root:not(.light) .message-thread:hover{background:#33415566;border-color:#94a3b81f}:root:not(.light) .message-thread.active{background:#33415580;border-color:#94a3b833;box-shadow:0 0 0 1px #94a3b814}}:root.dark .messages-filters{background:#3341554d;border-color:#94a3b81a}:root.dark .filter-pill{color:var(--muted)}:root.dark .filter-pill:hover:not(.active){color:var(--ink-subtle);background:#94a3b814}:root.dark .messages-list{background:linear-gradient(180deg,#33415559,#1e293b80)}:root.dark .message-thread{background:#1e293b66;border-color:#94a3b814}:root.dark .message-thread:hover{background:#33415566;border-color:#94a3b81f}:root.dark .message-thread.active{background:#33415580;border-color:#94a3b833;box-shadow:0 0 0 1px #94a3b814}@media(prefers-color-scheme:dark){:root:not(.light) .messages-empty-action{color:var(--primary-ink)}}:root.dark .messages-empty-action{color:var(--primary-ink)}@media(prefers-color-scheme:dark){:root:not(.light) .messages-thread:before{opacity:.7}}:root.dark .messages-thread:before{opacity:.7}@media(prefers-color-scheme:dark){:root:not(.light) .messages-list-header p{color:#94a3b8}:root:not(.light) .message-thread .muted{color:#94a3b8}:root:not(.light) .thread-time{color:#94a3b8}:root:not(.light) .message-bubble{box-shadow:0 1px 3px #00000026}:root:not(.light) .message-bubble.incoming{background:#1e293b99;border-color:#94a3b81f}:root:not(.light) .message-bubble.outgoing{background:#1e293b99;border-color:#94a3b81f;border-right:3px solid var(--primary)}:root:not(.light) .message-bubble p{color:#e2e8f0}:root:not(.light) .message-bubble.outgoing p{color:#e2e8f0}:root:not(.light) .message-sender{color:#94a3b8}:root:not(.light) .message-role{color:#cbd5e1}:root:not(.light) .message-bubble.outgoing .message-sender,:root:not(.light) .message-bubble.outgoing .message-role{color:#94a3b8}:root:not(.light) .message-time{color:#a1afc4;opacity:.8}:root:not(.light) .quick-replies-label{color:#94a3b8}:root:not(.light) .quick-reply{border-color:#94a3b833;color:#94a3b8}:root:not(.light) .quick-reply:hover{border-color:#94a3b859;color:#cbd5e1;background:#94a3b814}:root:not(.light) .reply-context{color:#94a3b8}:root:not(.light) .messages-thread-body{background:#0f172a80;border-color:#94a3b814}:root:not(.light) .attention-pill.warn{background:#fbbf2426;color:#fbbf24}}:root.dark .messages-list-header p{color:#94a3b8}:root.dark .message-thread .muted{color:#94a3b8}:root.dark .thread-time{color:#94a3b8}:root.dark .message-bubble{box-shadow:0 1px 3px #00000026}:root.dark .message-bubble.incoming{background:#1e293b99;border-color:#94a3b81f}:root.dark .message-bubble.outgoing{background:#1e293b99;border-color:#94a3b81f;border-right:3px solid var(--primary)}:root.dark .message-bubble p{color:#e2e8f0}:root.dark .message-bubble.outgoing p{color:#e2e8f0}:root.dark .message-sender{color:#94a3b8}:root.dark .message-role{color:#cbd5e1}:root.dark .message-bubble.outgoing .message-sender,:root.dark .message-bubble.outgoing .message-role{color:#94a3b8}:root.dark .message-time{color:#a1afc4;opacity:.8}:root.dark .quick-replies-label{color:#94a3b8}:root.dark .quick-reply{border-color:#94a3b833;color:#94a3b8}:root.dark .quick-reply:hover{border-color:#94a3b859;color:#cbd5e1;background:#94a3b814}:root.dark .reply-context{color:#94a3b8}:root.dark .messages-thread-body{background:#0f172a80;border-color:#94a3b814}:root.dark .attention-pill.warn{background:#fbbf2426;color:#fbbf24}.child-picker{position:relative;width:100%}.child-picker.disabled{opacity:.6;pointer-events:none}.child-picker-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;background:var(--surface);border:1px solid var(--border-medium);border-radius:8px;cursor:pointer;text-align:left;color:var(--ink);transition:border-color .15s,box-shadow .15s}.child-picker-trigger:hover:not(:disabled){border-color:var(--border-strong)}.child-picker-trigger:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.child-picker.open .child-picker-trigger{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.child-picker-selected{display:flex;align-items:center;gap:10px;min-width:0;flex:1}.child-picker-avatar{flex-shrink:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary-ink);border-radius:50%;font-size:var(--text-xs);font-weight:600}.child-picker-selected-text{display:flex;flex-direction:column;gap:1px;min-width:0}.child-picker-selected-name{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.child-picker-selected-meta{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.child-picker-placeholder{color:var(--muted)}.child-picker-chevron{flex-shrink:0;width:16px;height:16px;color:var(--muted);transition:transform .15s}.child-picker.open .child-picker-chevron{transform:rotate(180deg)}.child-picker-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;box-shadow:var(--shadow-lg);z-index:100;overflow:hidden}.child-picker-search{padding:8px;border-bottom:1px solid var(--border-soft)}.child-picker-search input{width:100%;padding:8px 12px;background:var(--surface-soft);border:1px solid transparent;border-radius:6px;font-size:var(--text-sm);color:var(--ink)}.child-picker-search input:focus{outline:none;border-color:var(--primary);background:var(--surface)}.child-picker-search input::placeholder{color:var(--muted)}.child-picker-list{max-height:280px;overflow-y:auto;padding:4px 0}.child-picker-group{margin-bottom:4px}.child-picker-group:last-child{margin-bottom:0}.child-picker-group-header{padding:8px 12px 4px;font-size:var(--text-xs);font-weight:600;color:var(--muted-strong);text-transform:uppercase;letter-spacing:.03em}.child-picker-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;background:transparent;border:none;cursor:pointer;text-align:left;color:var(--ink);transition:background-color .1s}.child-picker-item:hover,.child-picker-item.highlighted{background:var(--surface-soft)}.child-picker-item.selected{background:var(--primary-soft)}.child-picker-item-avatar{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--surface-soft);color:var(--muted-strong);border-radius:50%;font-size:var(--text-xs);font-weight:600}.child-picker-item.selected .child-picker-item-avatar,.child-picker-item.highlighted .child-picker-item-avatar{background:var(--primary-soft);color:var(--primary-ink)}.child-picker-item-text{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.child-picker-item-name{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.child-picker-item-guardian{font-size:var(--text-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.child-picker-check{flex-shrink:0;width:16px;height:16px;color:var(--primary-ink)}.child-picker-empty{padding:24px 16px;text-align:center;color:var(--muted);font-size:var(--text-sm)}@media(prefers-color-scheme:dark){:root:not(.light) .child-picker-trigger{background:#1e293b99;border-color:#94a3b826}:root:not(.light) .child-picker-trigger:hover:not(:disabled){border-color:#94a3b840}:root:not(.light) .child-picker-dropdown{background:#1e293b;border-color:#94a3b826;box-shadow:0 8px 32px #0006}:root:not(.light) .child-picker-search{border-color:#94a3b81a}:root:not(.light) .child-picker-search input{background:#33415580;color:#e2e8f0}:root:not(.light) .child-picker-search input::placeholder{color:#94a3b8}:root:not(.light) .child-picker-group-header{color:#94a3b8}:root:not(.light) .child-picker-item{color:#e2e8f0}:root:not(.light) .child-picker-item:hover,:root:not(.light) .child-picker-item.highlighted{background:#33415580}:root:not(.light) .child-picker-item.selected{background:#58c4be26}:root:not(.light) .child-picker-item-avatar{background:#33415599;color:#94a3b8}:root:not(.light) .child-picker-item.selected .child-picker-item-avatar,:root:not(.light) .child-picker-item.highlighted .child-picker-item-avatar{background:#58c4be33;color:#58c4be}:root:not(.light) .child-picker-item-name{color:#e2e8f0}:root:not(.light) .child-picker-item-guardian{color:#94a3b8}:root:not(.light) .child-picker-selected-name{color:#e2e8f0}:root:not(.light) .child-picker-selected-meta{color:#94a3b8}:root:not(.light) .child-picker-placeholder{color:#94a3b8}:root:not(.light) .child-picker-chevron{color:#94a3b8}:root:not(.light) .child-picker-empty{color:#94a3b8}}:root.dark .child-picker-trigger{background:#1e293b99;border-color:#94a3b826}:root.dark .child-picker-trigger:hover:not(:disabled){border-color:#94a3b840}:root.dark .child-picker-dropdown{background:#1e293b;border-color:#94a3b826;box-shadow:0 8px 32px #0006}:root.dark .child-picker-search{border-color:#94a3b81a}:root.dark .child-picker-search input{background:#33415580;color:#e2e8f0}:root.dark .child-picker-search input::placeholder{color:#94a3b8}:root.dark .child-picker-group-header{color:#94a3b8}:root.dark .child-picker-item{color:#e2e8f0}:root.dark .child-picker-item:hover,:root.dark .child-picker-item.highlighted{background:#33415580}:root.dark .child-picker-item.selected{background:#58c4be26}:root.dark .child-picker-item-avatar{background:#33415599;color:#94a3b8}:root.dark .child-picker-item.selected .child-picker-item-avatar,:root.dark .child-picker-item.highlighted .child-picker-item-avatar{background:#58c4be33;color:#58c4be}:root.dark .child-picker-item-name{color:#e2e8f0}:root.dark .child-picker-item-guardian{color:#94a3b8}:root.dark .child-picker-selected-name{color:#e2e8f0}:root.dark .child-picker-selected-meta{color:#94a3b8}:root.dark .child-picker-placeholder{color:#94a3b8}:root.dark .child-picker-chevron{color:#94a3b8}:root.dark .child-picker-empty{color:#94a3b8}.shell>.attendance-scroll-container{flex:1 1 0;min-height:0;overflow-y:auto;padding-bottom:16px;margin-bottom:-36px;background:transparent}.attendance-layout{display:grid;grid-template-columns:1fr 340px;gap:24px;align-items:start}.attendance-primary{display:flex;flex-direction:column;min-height:0}.attendance-secondary{display:flex;flex-direction:column;gap:16px;align-self:start;position:sticky;top:28px}@media(max-width:1100px){.attendance-layout{grid-template-columns:1fr}.attendance-secondary{position:static;max-height:none;flex-direction:row;flex-wrap:wrap}.attendance-secondary>*{flex:1 1 280px}.shell>.attendance-scroll-container{margin-bottom:-24px}}.shell>.attendance-card{flex:1 1 0}.attendance-secondary .card{min-height:auto;padding:14px 16px;gap:10px;border-color:var(--border-soft);box-shadow:none}.attendance-secondary .card-header{margin-bottom:0}.attendance-secondary .card-header h3{font-size:var(--text-xs);font-weight:500;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.attendance-summary-card{background:var(--surface);border-color:var(--border-soft)}.attendance-summary-card .summary-stat{display:flex;justify-content:space-between;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--border-softest)}.attendance-summary-card .summary-stat:last-child{border-bottom:none}.attendance-summary-card .summary-stat-label{font-size:var(--text-2xs);font-weight:400;color:var(--muted);opacity:.7}.attendance-summary-card .summary-stat-value{font-size:var(--text-sm);font-weight:500;color:var(--muted-strong)}.attendance-summary-card .summary-stat.success .summary-stat-value{color:var(--success-ink)}.attendance-summary-card .summary-stat.warning .summary-stat-value{color:var(--warning-ink, #d97706)}.attendance-summary-card .summary-stat.danger .summary-stat-value{color:var(--danger-ink)}.attendance-summary-card .summary-stat.info .summary-stat-value{color:var(--info-ink, #2563eb)}.attendance-summary-card .summary-stat.muted .summary-stat-value{color:var(--muted)}.attendance-action-card{background:var(--surface);text-align:center;padding:20px 16px}.attendance-action-card .primary{width:100%}.incomplete-alert{margin-top:8px;padding:8px 12px;background:#fbbf241a;border-radius:8px;text-align:center}.attendance-secondary .attendance-health-card .health-row{padding:8px 0}.attendance-secondary .attendance-health-card .health-header strong{font-size:var(--text-sm)}.attendance-secondary .attendance-health-card .health-value{font-size:var(--text-base)}.attendance-secondary .attendance-health-card .health-status{font-size:var(--text-2xs);padding:2px 6px}.attendance-secondary .attendance-trend-card .attendance-trend{gap:6px}.attendance-secondary .attendance-trend-card .trend-bar-fill{max-height:80px}.attendance-insights{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.attendance-insights--secondary{margin-top:24px;opacity:.92}.attendance-insights--secondary .card{background:#ffffffd9;box-shadow:0 1px 3px #0000000a}.attendance-insights--secondary .card-header h3{font-size:var(--text-base);font-weight:600;color:var(--muted)}.attendance-summary-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;border-radius:18px;border:1px solid var(--border-soft);background:var(--surface);margin-bottom:18px;flex-wrap:wrap}.attendance-summary-title{display:flex;align-items:baseline;gap:10px}.attendance-summary-title strong{font-weight:800}.attendance-summary-pills{display:flex;flex-wrap:wrap;gap:12px}.summary-pill{display:flex;align-items:baseline;gap:6px;padding:6px 12px;border-radius:999px;background:#58c4be1f;font-size:var(--text-sm)}.summary-pill.muted-pill{background:#94a3b826}.summary-pill-value{font-weight:600;font-size:var(--text-base)}.summary-pill-label{color:var(--muted)}.status-badge{display:inline-block;padding:1px 6px;border-radius:4px;border:none;font-size:11px;font-weight:500;letter-spacing:0;line-height:1.3;background:transparent}.status-badge.present{border-color:var(--success-border);color:var(--success-ink)}.status-badge.absent{border-color:var(--border-medium);color:var(--muted);background:transparent}.status-text{font-size:var(--text-2xs);font-weight:400;opacity:.5}.attendance-baseline{margin-top:12px;font-size:var(--text-xs)}.attendance-trend-card,.attendance-health-card{padding:18px;gap:16px;border-color:var(--border-soft)}.attendance-trend{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:12px;min-height:140px}.trend-bar{display:grid;gap:8px;justify-items:center;font-size:var(--text-xs)}.trend-bar-fill{width:24px;border-radius:999px;transition:height .2s ease}.attendance-trend-skeleton{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:12px;min-height:140px}.attendance-health{display:grid;gap:16px}.health-row{display:grid;gap:8px}.health-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.health-header>div{display:grid;gap:4px}.health-value{font-weight:700;font-size:var(--text-lg);color:var(--ink)}.health-row.danger .health-value,.health-status.danger{color:var(--danger-ink)}.health-row.warn .health-value,.health-status.warn{color:var(--primary-ink)}.health-status.ok{color:var(--success-ink)}.health-metric{display:flex;align-items:center;gap:10px}.health-status{font-size:var(--text-xs);font-weight:600;background:var(--surface-soft);padding:4px 8px;border-radius:999px;color:var(--muted-strong)}.health-status.ok{background:var(--success-soft)}.health-status.warn{background:var(--primary-soft)}.health-status.danger{background:var(--danger-soft)}.health-status.neutral{background:var(--surface-muted);color:var(--muted-strong)}.health-context{font-size:var(--text-xs);margin-top:4px}.health-bar{height:6px;border-radius:999px;background:var(--surface-muted);overflow:hidden}.health-bar span{display:block;height:100%;background:var(--primary-ink);border-radius:999px}.health-row.danger .health-bar span{background:var(--danger-ink)}.health-row.warn .health-bar span{background:var(--primary-ink)}.text-button.tiny{font-size:var(--text-xs);padding:0}.attendance-card{display:flex;flex-direction:column;padding:0;gap:0;flex:1;min-height:0;overflow:hidden;border-color:var(--border-medium);box-shadow:0 4px 12px #0f172a0f}.attendance-card-header{padding:24px 24px 16px;border-bottom:1px solid var(--border-subtle)}.attendance-empty-section{max-width:840px;margin:0 auto;padding:36px 40px;background:#eef2ff73;border-radius:32px}.attendance-date-band{display:flex;align-items:baseline;gap:8px;padding:0 4px;margin-bottom:16px}.attendance-date-label{font-size:var(--text-2xs);font-weight:600;color:#6366f1;text-transform:uppercase;letter-spacing:.08em;opacity:.8}.attendance-date-value{font-size:var(--text-xs);color:var(--muted);opacity:.7}.attendance-empty-card{padding:0;border-color:#c7d2fe80;box-shadow:0 2px 8px #0f172a0a;min-height:auto}.attendance-empty-state-centered{display:flex;flex-direction:column;align-items:center;text-align:center;padding:60px 32px 52px;gap:0}.attendance-empty-icon{width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,#eef2ff,#e0e7ff);border:1px solid rgba(129,140,248,.2);display:grid;place-items:center;margin-bottom:24px;color:#6366f1}.attendance-empty-icon svg{width:32px;height:32px;opacity:.85}.attendance-empty-title{font-size:var(--text-xl);font-weight:600;color:var(--ink);margin:0 0 8px}.attendance-empty-desc{font-size:var(--text-sm);color:var(--muted);margin:0 0 24px;max-width:340px;line-height:1.5}.attendance-empty-state-centered .primary{box-shadow:0 8px 20px #4f46e533}.attendance-empty{display:grid;gap:10px;padding:28px 24px;color:var(--ink)}.attendance-empty .primary{justify-self:flex-start;box-shadow:0 12px 24px #0c182e2e}.attendance-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--muted)}.attendance-empty-state .attendance-empty-icon{margin-bottom:16px}.attendance-empty-state .attendance-empty-icon svg{width:48px;height:48px}.attendance-empty-title{font-size:var(--text-lg);font-weight:600;color:var(--ink);margin:0 0 4px}.attendance-empty-state .muted{margin:0;font-size:var(--text-sm)}.attendance-header{display:grid;gap:12px}.attendance-header-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.attendance-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.attendance-header-actions .pill.active{background:var(--primary-soft);color:var(--primary-ink);border-color:var(--primary-border-strong)}.mode-toggle{display:flex;gap:0;border:1px solid var(--border-soft);border-radius:999px;overflow:hidden;background:var(--surface-muted)}.mode-pill{padding:5px 12px;border:none;background:transparent;font-size:var(--text-xs);font-weight:500;color:var(--muted);cursor:pointer;transition:all .15s ease}.mode-pill:hover:not(.active){color:var(--ink-subtle)}.mode-pill.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0000000d}.attendance-summary{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-start}.summary-pill{padding:5px 10px;border-radius:999px;background:var(--surface-soft);color:var(--ink);font-size:var(--text-xs-plus);font-weight:600}.summary-pill.success{background:var(--success-soft);color:var(--success-ink)}.summary-pill.danger{background:var(--danger-soft);color:var(--danger-ink)}.summary-pill.warn{background:var(--primary-soft);color:var(--primary-ink)}.summary-pill.neutral{background:var(--surface-muted);color:var(--muted-strong)}.summary-skeleton-pill{width:86px;height:22px}.attendance-table{display:grid;gap:0;padding:0;border-radius:0;background:transparent;border:none;align-content:start}.attendance-table-wrap{flex:1;min-height:0;overflow-y:auto;overflow-x:auto;-webkit-overflow-scrolling:touch;background:var(--surface);padding-bottom:0;position:relative;box-shadow:inset 0 6px 6px -6px #0f172a0f,inset 0 -6px 6px -6px #0f172a0a}.attendance-footer-count{display:block;text-align:center;font-size:11px;color:var(--muted-soft);padding:10px 16px;opacity:.6;border-top:1px solid var(--border-subtle)}.export-button{padding:6px 12px;border-radius:999px;border:1px solid var(--border-medium);background:var(--surface);color:var(--muted-strong);font-size:var(--text-sm)}.attendance-row{display:grid;grid-template-columns:1.4fr .8fr .8fr 1fr .7fr .7fr 1.2fr .4fr;gap:12px;padding:16px 20px;border-radius:0;background:var(--surface);border:none;border-bottom:1px solid var(--border-subtle);cursor:pointer}.attendance-row.mode-quiet{grid-template-columns:1.6fr 1fr 1.1fr .8fr .4fr}.attendance-row:nth-child(2n){background:#f1f5f980}.attendance-row:hover{background:#eef2ff99}.attendance-header-row{position:sticky;top:0;z-index:10;background:#f8fafc;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--muted-strong);border-top:none;border-bottom:1px solid var(--border-medium);cursor:default;box-shadow:0 1px 3px #0f172a0f}.attendance-row:last-child{border-bottom:none}.attendance-actions{display:flex;align-items:center}.attendance-loading .skeleton-row{grid-template-columns:1.4fr 1fr .7fr .7fr .7fr 1.4fr .3fr}.attendance-loading .skeleton-line,.attendance-loading .skeleton-pill{width:100%}.manage-button{border:none;background:transparent;color:var(--muted-strong);font-size:var(--text-lg);font-weight:600;padding:4px 8px;border-radius:999px;cursor:pointer}.manage-button:hover{background:var(--border-soft)}.attendance-actions .text-button{justify-self:start}.attendance-note{display:flex;align-items:center}.child-cell{display:grid;gap:6px}.child-name-link{background:none;border:none;padding:0;font:inherit;font-weight:500;color:var(--ink);cursor:pointer;text-align:left;text-decoration:none;transition:color .15s ease}.child-name-link:hover{color:var(--ink);text-decoration:underline}.pickup-actions{display:grid;gap:4px}.pickup-note{font-size:var(--text-sm)}.attendance-detail{grid-column:1 / -1;margin-top:10px;padding:8px 12px;border-radius:10px;background:var(--surface-muted-strong);border:1px solid var(--border-softest);display:flex;align-items:center;gap:8px;flex-wrap:wrap}.detail-actions{display:flex;flex-wrap:wrap;gap:8px}.detail-actions.segmented{gap:0;border:1px solid var(--border-soft);border-radius:999px;overflow:hidden;width:fit-content}.attendance-detail .detail-pill{border-radius:999px;padding:5px 10px;border:1px solid var(--border-soft);background:var(--surface);font-size:var(--text-xs-plus);font-weight:600;color:var(--ink-subtle);cursor:pointer}.attendance-detail .detail-actions.segmented .detail-pill{border:none;border-radius:0}.attendance-detail .detail-pill.active{border-color:var(--primary-border-strong);color:var(--primary-ink);background:var(--primary-soft)}.attendance-detail .detail-pill.active.present{border-color:var(--success-border-strong);color:var(--success-ink);background:var(--success-soft)}.attendance-detail .detail-pill.active.absent{border-color:var(--danger-border-strong);color:var(--danger-ink);background:var(--danger-soft)}.detail-meta{font-size:var(--text-sm)}.override-editor{display:grid;gap:8px;margin-top:8px}.note-editor.inline{display:grid;gap:8px;min-width:240px}.override-editor select,.override-editor input{border-radius:10px;border:1px solid var(--border-medium);padding:6px 8px;font-size:var(--text-sm);background:var(--surface);color:var(--ink)}.override-actions{display:flex;justify-content:flex-end;gap:8px}.note-editor{display:grid;gap:8px}.note-editor textarea{min-height:70px;resize:vertical;border-radius:10px;border:1px solid var(--border-medium);padding:8px 10px;font-size:var(--text-md);color:var(--ink);background:var(--surface)}.note-actions{display:flex;gap:8px;justify-content:flex-end}@media(max-width:900px){.attendance-layout{grid-template-columns:1fr;gap:16px}.attendance-row{grid-template-columns:1fr;padding:12px 16px;gap:8px}.attendance-row.mode-quiet{grid-template-columns:1fr}.attendance-header-row{display:none}.attendance-detail{grid-template-columns:1fr}.attendance-card-header{padding:16px}.attendance-filters{padding:10px 16px 12px;gap:6px}.filter-pill{padding:5px 10px;font-size:11px}.attendance-secondary{position:static;flex-direction:column}.kiosk-launch-btn{display:none!important}}@media(prefers-color-scheme:dark){:root:not(.light) .attendance-summary-banner{background:linear-gradient(180deg,#33415566,#1e293b80);border-color:#94a3b81a}:root:not(.light) .attendance-trend-card,:root:not(.light) .attendance-health-card{background:linear-gradient(180deg,#33415559,#1e293b80)}:root:not(.light) .health-status.danger{border:1px solid var(--danger-border)}:root:not(.light) .health-status.warn{border:1px solid var(--primary-border)}:root:not(.light) .health-status.ok{border:1px solid var(--success-border)}:root:not(.light) .health-bar{background:#33415580}}:root.dark .attendance-summary-banner{background:linear-gradient(180deg,#33415566,#1e293b80);border-color:#94a3b81a}:root.dark .attendance-trend-card,:root.dark .attendance-health-card{background:linear-gradient(180deg,#33415559,#1e293b80)}:root.dark .health-status.danger{border:1px solid var(--danger-border)}:root.dark .health-status.warn{border:1px solid var(--primary-border)}:root.dark .health-status.ok{border:1px solid var(--success-border)}:root.dark .health-bar{background:#33415580}:root.dark .attendance-footer-count{color:#94a3b8;opacity:.8;background:#33415540;border-top:1px solid rgba(148,163,184,.1)}@media(prefers-color-scheme:dark){:root:not(.light) .attendance-empty-section{background:#4338ca1f}:root:not(.light) .attendance-empty-icon{border-radius:20px;background:linear-gradient(135deg,#818cf826,#6366f114);border:1px solid rgba(129,140,248,.25);color:#818cf8}:root:not(.light) .attendance-empty-icon svg{opacity:.9}:root:not(.light) .attendance-date-label{color:#818cf8}:root:not(.light) .attendance-empty-card{border-color:#6366f126}}:root.dark .attendance-empty-section{background:#4338ca1f}:root.dark .attendance-empty-icon{border-radius:20px;background:linear-gradient(135deg,#818cf826,#6366f114);border:1px solid rgba(129,140,248,.25);color:#818cf8}:root.dark .attendance-empty-icon svg{opacity:.9}:root.dark .attendance-date-label{color:#818cf8}:root.dark .attendance-empty-card{border-color:#6366f126}@media(prefers-color-scheme:dark){:root:not(.light) .attendance-header-row{color:#94a3b8}}:root.dark .attendance-header-row{color:#94a3b8}.attendance-filters{display:flex;flex-wrap:wrap;gap:8px;padding:12px 24px 16px;border-bottom:1px solid var(--border-subtle);background:var(--surface)}.filter-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;border:1px solid var(--border-soft);background:var(--surface);font-size:var(--text-xs);font-weight:500;color:var(--muted-strong);cursor:pointer;transition:all .15s ease}.filter-pill:hover:not(.active){border-color:var(--border-medium);background:var(--surface-muted)}.filter-pill.active{border-color:var(--primary-border-strong);background:var(--primary-soft);color:var(--primary-ink)}.filter-pill.active.due_soon{border-color:var(--info-border, #60a5fa);background:#60a5fa1f;color:var(--info-ink, #2563eb)}.filter-pill.active.late{border-color:var(--warning-border, #fbbf24);background:#fbbf241f;color:var(--warning-ink, #d97706)}.filter-pill.active.absent{border-color:var(--danger-border);background:var(--danger-soft);color:var(--danger-ink)}.filter-pill.active.present{border-color:var(--success-border);background:var(--success-soft);color:var(--success-ink)}.filter-pill.active.checked_out{border-color:var(--border-medium);background:var(--surface-muted);color:var(--muted-strong)}.filter-pill.active.not_scheduled{border-color:var(--border-soft);background:var(--surface-muted);color:var(--muted)}.filter-count{font-size:var(--text-2xs);font-weight:600;padding:1px 5px;border-radius:999px;background:#0000000f}.filter-pill.active .filter-count{background:#0000001a}.status-cell{display:flex;flex-direction:column;gap:2px}.status-sublabel{font-size:10px;font-weight:400;color:var(--muted)}.status-badge.success{color:var(--success-ink)}.status-badge.info{color:var(--info-ink, #2563eb)}.status-badge.warning{color:var(--warning-ink, #d97706)}.status-badge.danger{color:var(--danger-ink)}.status-badge.muted{color:var(--muted)}.status-badge.gray{color:var(--muted-soft);opacity:.7}.status-badge.default{color:var(--muted-strong)}.schedule-cell{font-size:var(--text-sm)}@media(prefers-color-scheme:dark){:root:not(.light) .attendance-filters{background:var(--surface);border-color:var(--border-soft)}:root:not(.light) .filter-pill{background:var(--surface);border-color:var(--border-soft)}:root:not(.light) .filter-count{background:#ffffff14}:root:not(.light) .filter-pill.active .filter-count{background:#ffffff26}}:root.dark .attendance-filters{background:var(--surface);border-color:var(--border-soft)}:root.dark .filter-pill{background:var(--surface);border-color:var(--border-soft)}:root.dark .filter-count{background:#ffffff14}:root.dark .filter-pill.active .filter-count{background:#ffffff26}@media(prefers-color-scheme:dark){:root:not(.light) .attendance-table-wrap{background:var(--surface);box-shadow:inset 0 6px 6px -6px #00000026,inset 0 -6px 6px -6px #0000001a}:root:not(.light) .attendance-row{background:#1e293b33;border-bottom-color:#94a3b81a}:root:not(.light) .attendance-row:nth-child(2n){background:#1e293b66}:root:not(.light) .attendance-row:hover{background:#33415580}:root:not(.light) .attendance-header-row{background:#3341554d;border-bottom-color:#94a3b826}:root:not(.light) .attendance-card{border-color:#94a3b826;box-shadow:0 4px 12px #0003}:root:not(.light) .attendance-card-header{border-bottom-color:#94a3b81a}:root:not(.light) .child-name-link{color:#e2e8f0}:root:not(.light) .child-name-link:hover{color:#f1f5f9}:root:not(.light) .attendance-detail{background:#33415566;border-color:#94a3b826}:root:not(.light) .attendance-detail .detail-pill{background:#1e293b80;border-color:#94a3b833;color:#e2e8f0}:root:not(.light) .mode-toggle{background:#1e293b80;border-color:#94a3b826}:root:not(.light) .mode-pill.active{background:#33415599}:root:not(.light) .export-button{background:#1e293b80;border-color:#94a3b833;color:#94a3b8}:root:not(.light) .export-button:hover{background:#33415580}:root:not(.light) .note-editor textarea{background:#1e293b80;border-color:#94a3b833;color:#e2e8f0}:root:not(.light) .override-editor select,:root:not(.light) .override-editor input{background:#1e293b80;border-color:#94a3b833;color:#e2e8f0}}:root.dark .attendance-table-wrap{background:var(--surface);box-shadow:inset 0 6px 6px -6px #00000026,inset 0 -6px 6px -6px #0000001a}:root.dark .attendance-row{background:#1e293b33;border-bottom-color:#94a3b81a}:root.dark .attendance-row:nth-child(2n){background:#1e293b66}:root.dark .attendance-row:hover{background:#33415580}:root.dark .attendance-header-row{background:#3341554d;border-bottom-color:#94a3b826}:root.dark .attendance-card{border-color:#94a3b826;box-shadow:0 4px 12px #0003}:root.dark .attendance-card-header{border-bottom-color:#94a3b81a}:root.dark .child-name-link{color:#e2e8f0}:root.dark .child-name-link:hover{color:#f1f5f9}:root.dark .attendance-detail{background:#33415566;border-color:#94a3b826}:root.dark .attendance-detail .detail-pill{background:#1e293b80;border-color:#94a3b833;color:#e2e8f0}:root.dark .mode-toggle{background:#1e293b80;border-color:#94a3b826}:root.dark .mode-pill.active{background:#33415599}:root.dark .export-button{background:#1e293b80;border-color:#94a3b833;color:#94a3b8}:root.dark .export-button:hover{background:#33415580}:root.dark .note-editor textarea{background:#1e293b80;border-color:#94a3b833;color:#e2e8f0}:root.dark .override-editor select,:root.dark .override-editor input{background:#1e293b80;border-color:#94a3b833;color:#e2e8f0}.kiosk-shell{display:flex;justify-content:center;padding:32px 0}.kiosk-shell:focus,.kiosk-shell:focus-visible{outline:none}.kiosk-card{width:min(980px,100%);background:var(--surface);border-radius:20px;border:1px solid var(--border-soft);padding:24px;display:grid;gap:20px}.kiosk-header h2{margin:0 0 6px}.kiosk-header{display:flex;justify-content:space-between;align-items:center;gap:16px}.kiosk-body{display:grid;grid-template-columns:1.1fr 1fr;gap:20px}.kiosk-panel{border-radius:16px;border:1px solid var(--border-soft);background:var(--surface-muted);padding:20px;display:grid;gap:16px}.pin-dots{display:flex;gap:12px}.pin-dots span{width:16px;height:16px;border-radius:999px;border:2px solid rgba(255,255,255,.4);background:transparent}.pin-dots span.filled{background:var(--accent, #3b82f6);border-color:var(--accent, #3b82f6)}.keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.keypad-key{border:1px solid var(--border-medium);border-radius:14px;background:var(--surface);padding:14px 0;font-size:var(--text-lg);font-weight:600;color:var(--ink);cursor:pointer}.keypad-key.primary{background:var(--ink);color:var(--text-on-dark);border-color:transparent}.keypad-key.ghost{color:var(--muted-strong)}.kiosk-result{display:grid;gap:12px}.kiosk-actions{display:flex;gap:10px;flex-wrap:wrap}.kiosk-actions [aria-disabled=true]{opacity:.5;cursor:not-allowed}.kiosk-note{font-size:var(--text-sm)}.kiosk-status{font-size:var(--text-sm);color:var(--success-ink)}.kiosk-empty{text-align:center;padding:32px 0}.kiosk-fullscreen .sidebar{display:none}.kiosk-fullscreen .admin-layout{grid-template-columns:1fr}.kiosk-fullscreen .topbar,.kiosk-fullscreen .page-footer{display:none}.kiosk-fullscreen .shell{padding:0}.kiosk-fullscreen .kiosk-shell{min-height:100vh;align-items:center}.signature-pad{border-radius:12px;border:1px solid var(--border-soft);background:var(--surface);padding:12px;display:grid;gap:10px}.signature-pad canvas{width:100%;border-radius:8px;border:1px solid var(--border-soft);background:var(--surface-muted)}.signature-actions{display:flex;justify-content:flex-end;gap:10px}@media(max-width:900px){.kiosk-body{grid-template-columns:1fr}}.shell>.staff-scroll-container{flex:1 1 0;min-height:0;overflow-y:auto;padding-bottom:16px;margin-bottom:-42px;background:transparent;border-radius:0}.staff-toolbar{display:flex;justify-content:flex-end;align-items:flex-end;gap:16px}.staff-attention{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;border-radius:14px;border:1px solid var(--border-soft);background:var(--surface);border-left:4px solid var(--accent);margin-bottom:14px;flex-wrap:wrap}.staff-attention.is-clear{border-left-color:var(--border-soft)}.staff-invite-reassurance{margin-top:6px;font-size:var(--text-sm)}.staff-invite-helper{display:block;margin-top:4px;font-size:.68rem;color:var(--muted-soft);opacity:.65}.staff-invite-error{display:block;margin-top:4px;font-size:var(--text-xs)}.staff-invite-note{margin:8px 0 0;font-size:var(--text-xs);color:var(--muted)}.staff-attention-title{display:grid;gap:4px}.staff-attention-title strong{font-weight:800}.staff-attention-pills{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.staff-attention .attention-pill{padding:6px 12px;border-radius:999px;font-size:var(--text-sm);font-weight:500;background:var(--surface-soft);color:var(--ink-subtle);border:none;cursor:pointer;transition:background .15s ease,opacity .15s ease}.staff-attention .attention-pill:hover:not(:disabled){opacity:.85}.staff-attention .attention-pill.warn{background:var(--warning-soft);color:var(--warning-ink)}.staff-attention .attention-pill.warn.is-active{background:var(--warning-ink);color:#fff}.staff-attention .attention-pill.is-zero{opacity:.35;background:transparent;color:var(--muted);cursor:default}.staff-table{display:flex;flex-direction:column;padding:0;border-radius:0;background:var(--surface);border:none;flex:1;min-height:0;overflow-y:auto}.staff-loading .skeleton-row{grid-template-columns:1.4fr .8fr .8fr}.staff-loading .skeleton-line,.staff-loading .skeleton-pill{width:100%}.staff-metric{display:grid;gap:2px;text-align:right;padding:6px 12px;border-radius:12px;border:1px solid var(--border-soft);background:var(--surface-muted);min-width:120px}.staff-metric strong{font-size:var(--text-2xl);color:var(--ink)}.staff-metric.compact{padding:8px 12px;border-radius:999px;min-width:auto;font-size:var(--text-sm);color:var(--muted-strong)}.staff-card{display:flex;flex-direction:column;gap:0;padding:0;flex:1;min-height:0;margin-bottom:-42px;overflow:hidden;border-color:var(--border-medium);border-radius:20px;box-shadow:0 4px 12px #0f172a0f}.staff-search{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.staff-search input{flex:1;padding:10px 14px;border:1px solid var(--border-subtle);border-radius:10px;font-size:var(--text-sm);background:var(--surface-muted)}.staff-search input:focus{outline:none;border-color:var(--primary-border-strong);box-shadow:none}.staff-search .muted{font-size:var(--text-sm);white-space:nowrap}.staff-row{display:grid;grid-template-columns:1.4fr .9fr .8fr;align-items:center;padding:14px 20px;gap:12px;border-bottom:1px solid var(--border-subtle);background:var(--surface);border-left:none;border-right:none}.staff-row:nth-child(2n){background:#f1f5f980}.staff-table>.staff-row:last-child{border-bottom:none}.staff-row-clickable{cursor:pointer;transition:background-color .15s ease}.staff-row-clickable:hover{background:#eef2ff99}.staff-row-clickable:focus{outline:none;background:#6366f114;box-shadow:inset 3px 0 0 var(--primary)}.staff-row-clickable:focus-visible{box-shadow:inset 3px 0 0 var(--primary),inset 0 0 0 2px var(--primary-soft)}.staff-row-clickable.is-selected{background:#6366f114;box-shadow:inset 3px 0 0 var(--primary)}.staff-header-row{position:sticky;top:0;z-index:10;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.12em;color:var(--muted-strong);border-top:none;border-bottom:1px solid var(--border-medium);background:#f8fafc;padding:12px 20px;cursor:default;box-shadow:0 1px 3px #0f172a0f}.staff-name-cell{display:flex;flex-direction:column;gap:2px}.staff-name{font-weight:600;font-size:var(--text-sm);color:var(--ink)}.staff-email{font-size:var(--text-xs)}.staff-role{font-size:var(--text-sm);color:var(--muted-strong);text-transform:capitalize;font-weight:500}.staff-status{display:flex;align-items:center}.staff-status .status-label{display:inline-block;padding:4px 10px;border-radius:6px;font-size:var(--text-xs);font-weight:600}.staff-status .status-label.status-active{background:var(--success-soft);color:var(--success-ink)}.staff-status .status-label.status-inactive{background:var(--surface-hover);color:var(--muted)}.staff-status .status-label.status-pending{background:var(--warning-soft);color:var(--warning-ink)}.staff-status .status-label.is-clickable{cursor:pointer;border:none;transition:opacity .15s ease}.staff-status .status-label.is-clickable:hover:not(:disabled){opacity:.8}.staff-status .status-label.is-clickable:disabled{opacity:.5;cursor:not-allowed}.staff-empty{padding:32px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.staff-empty p{margin:0}.staff-empty p+p{margin-top:6px}.staff-empty-action{background:none;border:none;padding:0;font:inherit;font-size:var(--text-sm);font-weight:500;color:var(--primary);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.staff-empty-action:hover{opacity:.8}.staff-footer-count{display:block;text-align:center;font-size:11px;color:var(--muted-soft);padding:10px 16px;opacity:.6;border-top:1px solid var(--border-subtle)}.toast{position:fixed;right:24px;bottom:24px;background:var(--ink);color:var(--text-on-dark);padding:10px 14px;border-radius:10px;font-size:var(--text-sm);font-weight:600;box-shadow:0 12px 24px var(--border-soft);z-index:60}@media(max-width:900px){.staff-toolbar{flex-direction:column;align-items:flex-start}.staff-attention{flex-direction:column;align-items:flex-start;gap:12px;padding:12px 14px}.staff-attention-pills{justify-content:flex-start;width:auto;gap:6px}.staff-attention .attention-pill{padding:4px 10px;font-size:12px;min-width:36px;text-align:center}.staff-attention .attention-pill .attention-label{display:none}.staff-attention .attention-pill .attention-count{font-weight:700}.staff-summary{text-align:left}.staff-metric{min-width:auto;padding:6px 10px}.staff-search{flex-direction:column;align-items:stretch;gap:10px;padding:12px 16px}.staff-row{grid-template-columns:1fr;gap:8px;padding:14px 16px}.staff-header-row{display:none}.staff-name-cell{order:1}.staff-role{order:3}.staff-status{order:2}.staff-empty{padding:16px}.toast{left:16px;right:16px;bottom:16px}}@media(prefers-color-scheme:dark){:root:not(.light) .staff-empty-action{color:var(--primary-ink)}}:root.dark .staff-empty-action{color:var(--primary-ink)}:root.dark .staff-footer-count{color:#94a3b8;opacity:.8;background:#33415540;border-top:1px solid rgba(148,163,184,.1)}@media(prefers-color-scheme:dark){:root:not(.light) .staff-header-row{color:#94a3b8}}:root.dark .staff-header-row{color:#94a3b8}@media(prefers-color-scheme:dark){:root:not(.light) .staff-card{border-color:#94a3b826;box-shadow:0 4px 12px #0003}:root:not(.light) .staff-table{background:var(--surface)}:root:not(.light) .staff-row{background:#1e293b33;border-bottom-color:#94a3b81a}:root:not(.light) .staff-row:nth-child(2n){background:#1e293b66}:root:not(.light) .staff-row-clickable:hover{background:#33415580}:root:not(.light) .staff-row-clickable:focus,:root:not(.light) .staff-row-clickable.is-selected{background:#6366f126}:root:not(.light) .staff-header-row{background:#3341554d;border-bottom-color:#94a3b826}:root:not(.light) .staff-search{border-bottom-color:#94a3b81a}:root:not(.light) .staff-search input{background:#1e293b80;border-color:#94a3b826;color:#e2e8f0}:root:not(.light) .staff-search input:focus{border-color:#818cf866}:root:not(.light) .staff-name{color:#e2e8f0}:root:not(.light) .staff-attention{background:#1e293b66;border-color:#94a3b826}:root:not(.light) .staff-attention .attention-pill{background:#33415580;color:#e2e8f0}:root:not(.light) .staff-metric{background:#1e293b80;border-color:#94a3b826}:root:not(.light) .staff-metric strong{color:#e2e8f0}:root:not(.light) .staff-status .status-label.status-inactive{background:#33415580;color:#94a3b8}}:root.dark .staff-card{border-color:#94a3b826;box-shadow:0 4px 12px #0003}:root.dark .staff-table{background:var(--surface)}:root.dark .staff-row{background:#1e293b33;border-bottom-color:#94a3b81a}:root.dark .staff-row:nth-child(2n){background:#1e293b66}:root.dark .staff-row-clickable:hover{background:#33415580}:root.dark .staff-row-clickable:focus,:root.dark .staff-row-clickable.is-selected{background:#6366f126}:root.dark .staff-header-row{background:#3341554d;border-bottom-color:#94a3b826}:root.dark .staff-search{border-bottom-color:#94a3b81a}:root.dark .staff-search input{background:#1e293b80;border-color:#94a3b826;color:#e2e8f0}:root.dark .staff-search input:focus{border-color:#818cf866}:root.dark .staff-name{color:#e2e8f0}:root.dark .staff-attention{background:#1e293b66;border-color:#94a3b826}:root.dark .staff-attention .attention-pill{background:#33415580;color:#e2e8f0}:root.dark .staff-metric{background:#1e293b80;border-color:#94a3b826}:root.dark .staff-metric strong{color:#e2e8f0}:root.dark .staff-status .status-label.status-inactive{background:#33415580;color:#94a3b8}.shell>.timeline-card{flex:1 1 0}.timeline-card{display:flex;flex-direction:column;padding:0;gap:0;flex:1;min-height:0;margin-bottom:-42px;overflow:hidden;border-color:var(--border-medium);box-shadow:0 4px 12px #0f172a0f}.timeline-card-header{padding:24px 24px 16px;border-bottom:1px solid var(--border-subtle)}.timeline-header{display:grid;gap:12px}.timeline-header-top{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.timeline-date-display{display:flex;align-items:center;gap:10px}.timeline-date-display h3{margin:0}.timeline-header-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.timeline-sort-toggle{display:inline-flex;align-items:center;gap:4px;padding:6px 10px;border:none;border-radius:8px;background:var(--surface-soft);color:var(--ink);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:background .15s ease}.timeline-sort-toggle:hover{background:var(--surface-hover)}.timeline-sort-toggle .sort-arrow{font-size:var(--text-xs);opacity:.6}.timeline-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.timeline-filter-select{min-width:160px}.timeline-search{padding:8px 12px;border-radius:10px;border:1px solid var(--border-medium);background:var(--surface);color:var(--ink);font-size:var(--text-sm);min-width:180px;transition:border-color .15s ease,box-shadow .15s ease}.timeline-search::placeholder{color:var(--muted)}.timeline-search:hover{border-color:var(--border-strong)}.timeline-search:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.timeline-summary-line{font-size:var(--text-sm);padding-top:4px}.timeline-table{display:grid;gap:0;padding:0;border-radius:0;background:transparent;border:none;align-content:start}.timeline-table-wrap{flex:1;min-height:0;overflow-y:auto;background:var(--surface-muted);padding-bottom:0}.timeline-footer-count{display:block;text-align:center;font-size:11px;color:var(--muted-soft);padding:10px 16px;opacity:.6;border-top:1px solid var(--border-subtle)}.timeline-row{display:grid;grid-template-columns:.8fr 1.2fr 1.4fr 1.2fr 1fr;gap:12px;padding:16px 20px;border-radius:0;background:var(--surface);border:none;border-top:1px solid var(--border-subtle);cursor:pointer}.timeline-row:hover{background:var(--surface-hover)}.timeline-header-row{background:var(--surface);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);border-top:none;border-bottom:1px solid var(--border-subtle);cursor:default}.timeline-header-row:hover{background:transparent}.timeline-time{font-size:var(--text-sm);font-weight:600;color:var(--ink)}.timeline-type{font-size:var(--text-sm);font-weight:400;display:flex;align-items:center;gap:6px}.timeline-type-icon{font-size:var(--text-xs);opacity:.7}.timeline-type.success{color:var(--success-ink)}.timeline-type.neutral{color:var(--muted-strong)}.timeline-type.warn{color:var(--warning-ink)}.timeline-type.info{color:var(--primary-ink)}.timeline-child{font-size:var(--text-sm);font-weight:600;color:var(--ink)}.timeline-child-link{background:none;border:none;padding:0;font:inherit;font-weight:500;color:var(--accent);cursor:pointer;text-align:left;text-decoration:none;transition:color .15s ease,text-decoration .15s ease}.timeline-child-link:hover{color:var(--accent-hover, var(--ink));text-decoration:underline}.timeline-classroom{font-size:var(--text-xs);color:var(--muted)}.timeline-actor{color:var(--muted);font-size:var(--text-xs)}.timeline-empty-state{padding:40px 24px;text-align:center}.timeline-error-state{padding:40px 24px;text-align:center;display:grid;gap:8px;justify-items:center}.timeline-error-state h4{margin:0;color:var(--ink)}.timeline-error-state .pill{margin-top:8px}.timeline-empty{display:grid;gap:10px;padding:28px 24px;text-align:center}.timeline-loading .skeleton-row{display:grid;grid-template-columns:.8fr 1.2fr 1.4fr 1.2fr 1fr;gap:12px;padding:16px 20px;border-top:1px solid var(--border-subtle)}.timeline-loading .skeleton-line{height:16px;background:var(--surface-hover);border-radius:4px}@media(max-width:900px){.timeline-header-top{flex-direction:column;align-items:flex-start}.timeline-row{grid-template-columns:1fr;gap:6px}.timeline-header-row{display:none}}:root.dark .timeline-footer-count{color:#94a3b8;opacity:.8;background:#33415540;border-top:1px solid rgba(148,163,184,.1)}.datepicker{position:relative;display:inline-block}.datepicker-trigger{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;border:1px solid var(--border-medium);background:var(--surface);color:var(--ink);font-size:var(--text-sm);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.datepicker-trigger:hover{border-color:var(--border-strong)}.datepicker-trigger:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.datepicker-value{font-weight:500}.datepicker-value.placeholder{color:var(--muted);font-weight:400}.datepicker-icon{font-size:14px;opacity:.7}.datepicker-dropdown{position:absolute;top:calc(100% + 6px);left:0;z-index:100;background:var(--surface);border:1px solid var(--border-medium);border-radius:12px;box-shadow:0 8px 24px #0000001f;padding:12px;min-width:280px;animation:datepicker-fade-in .15s ease}@keyframes datepicker-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.datepicker-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--border-subtle);margin-bottom:12px}.datepicker-month{font-weight:600;font-size:var(--text-base);color:var(--ink)}.datepicker-nav{width:32px;height:32px;border:none;background:transparent;color:var(--ink);font-size:18px;cursor:pointer;border-radius:8px;transition:background .15s ease;display:flex;align-items:center;justify-content:center}.datepicker-nav:hover:not(:disabled){background:var(--surface-hover)}.datepicker-nav:disabled{opacity:.3;cursor:not-allowed}.datepicker-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:8px}.datepicker-weekday{text-align:center;font-size:var(--text-xs);font-weight:600;color:var(--muted);padding:4px 0;text-transform:uppercase;letter-spacing:.05em}.datepicker-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.datepicker-day{width:36px;height:36px;border:none;background:transparent;color:var(--ink);font-size:var(--text-sm);font-weight:500;cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center}.datepicker-day.empty{cursor:default}.datepicker-day:hover:not(.empty):not(.disabled):not(.selected){background:var(--surface-hover)}.datepicker-day.today{font-weight:700;text-decoration:underline;text-underline-offset:3px}.datepicker-day.selected{background:var(--ink);color:#fff}.datepicker-day.today.selected{background:var(--ink);color:#fff;text-decoration:none}.datepicker-day.disabled{opacity:.3;cursor:not-allowed}.datepicker-footer{padding-top:12px;border-top:1px solid var(--border-subtle);margin-top:12px;display:flex;justify-content:center}.datepicker-today-btn{background:var(--ink);border:1px solid var(--border-soft);color:#fff;padding:8px 18px;border-radius:10px;font-size:var(--text-sm);font-weight:600;cursor:pointer}.datepicker-today-btn:disabled{opacity:.6;cursor:not-allowed}.shell>.activities-timeline-card,.shell>.attendance-card{flex:1 1 0!important;min-height:0}.activities-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.activities-header-actions{display:flex;align-items:center;gap:10px}.activities-classroom-select{min-width:180px}.activities-timeline-card{margin-top:16px;margin-bottom:-42px;flex:1 1 0!important;display:flex;flex-direction:column;min-height:0;padding:0;gap:0;overflow:hidden;border-color:var(--border-medium);box-shadow:0 4px 12px #0f172a0f}.activities-timeline-header{padding:12px 16px;border-bottom:1px solid var(--border-soft)}.activities-count{font-size:var(--text-sm);color:var(--muted)}.activities-loading{padding:16px;display:grid;gap:12px;flex:1;align-content:start}.activities-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--muted);flex:1}.activities-empty .activities-empty-icon{margin-bottom:16px;color:var(--muted)}.activities-empty .activities-empty-icon svg{width:48px;height:48px}.activities-empty-title{font-size:var(--text-lg);font-weight:600;color:var(--ink);margin:0 0 4px}.activities-empty p{margin:0 0 8px}.activities-empty p.muted{font-size:var(--text-sm)}.activities-empty-hint{margin-top:4px}.activities-empty button{margin-top:8px}.activities-empty-actions{display:flex;gap:12px;align-items:center;margin-top:8px}.activities-empty-actions button{margin-top:0}.activities-list{display:grid;flex:1;overflow-y:auto;align-content:start}.activity-row{display:flex;align-items:center;gap:12px;padding:12px 16px;background:transparent;border:none;border-bottom:1px solid var(--border-soft);cursor:pointer;text-align:left;width:100%;transition:background-color .1s}.activity-row:hover{background:var(--surface-soft)}.activity-row:last-child{border-bottom:none}.activity-icon{font-size:20px;flex-shrink:0;width:32px;text-align:center}.activity-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.activity-child{font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-summary{font-size:var(--text-sm);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.activity-time{font-size:var(--text-xs);color:var(--muted)}.activity-badge{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:2px 6px;border-radius:4px;background:var(--surface-soft);color:var(--muted-strong)}.activity-detail-modal .modal-body{display:grid;gap:12px}.activity-detail-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.activity-detail-label{font-weight:500;color:var(--muted);flex-shrink:0}.activity-visibility-badge{font-size:var(--text-xs);font-weight:500;padding:4px 8px;border-radius:4px;background:var(--surface-soft);color:var(--muted)}@media(prefers-color-scheme:dark){:root:not(.light) .activity-row:hover{background:#33415566}:root:not(.light) .activity-child{color:#e2e8f0}:root:not(.light) .activity-summary{color:#94a3b8}:root:not(.light) .activity-time{color:#94a3b8}:root:not(.light) .activity-badge{background:#33415580;color:#94a3b8}:root:not(.light) .activities-timeline-header{border-color:#94a3b81a}:root:not(.light) .activity-row{border-color:#94a3b81a}:root:not(.light) .activity-visibility-badge{background:#33415580;color:#94a3b8}}:root.dark .activity-row:hover{background:#33415566}:root.dark .activity-child{color:#e2e8f0}:root.dark .activity-summary{color:#94a3b8}:root.dark .activity-time{color:#94a3b8}:root.dark .activity-badge{background:#33415580;color:#94a3b8}:root.dark .activities-timeline-header{border-color:#94a3b81a}:root.dark .activity-row{border-color:#94a3b81a}:root.dark .activity-visibility-badge{background:#33415580;color:#94a3b8}.roster-strip{display:flex;gap:10px;padding:16px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;margin-top:16px}.roster-strip::-webkit-scrollbar{display:none}.roster-strip-loading{opacity:.6}.roster-strip-empty{justify-content:center;padding:24px}.roster-chip{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 14px;background:var(--surface-soft);border:1px solid var(--border-soft);border-radius:12px;cursor:pointer;transition:border-color .15s,background-color .15s,transform .1s;min-width:80px;flex-shrink:0}.roster-chip:hover{border-color:var(--border-strong);background:var(--surface)}.roster-chip:active{transform:scale(.97)}.roster-chip.napping{border-color:var(--primary);background:var(--primary-soft)}.roster-chip.skeleton{pointer-events:none}.roster-avatar{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary-ink);border-radius:50%;font-size:var(--text-sm);font-weight:600}.roster-chip.napping .roster-avatar{background:var(--primary);color:#fff}.roster-avatar.skeleton-circle{background:var(--surface-soft);animation:pulse 1.5s infinite}.roster-name{font-size:var(--text-sm);font-weight:500;color:var(--ink);white-space:nowrap;max-width:72px;overflow:hidden;text-overflow:ellipsis}.roster-name.skeleton-line{width:48px;height:14px;background:var(--surface-soft);border-radius:4px;animation:pulse 1.5s infinite}.roster-status-chip{font-size:var(--text-xxs);font-weight:600;text-transform:uppercase;letter-spacing:.02em;padding:2px 6px;border-radius:4px}.roster-status-chip.nap{background:var(--primary);color:#fff}.roster-summary{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.roster-summary-item{font-size:var(--text-xxs);color:var(--muted);white-space:nowrap}@media(prefers-color-scheme:dark){:root:not(.light) .roster-strip{background:#1e293b99;border-color:#94a3b826}:root:not(.light) .roster-chip{background:#33415566;border-color:#94a3b81f}:root:not(.light) .roster-chip:hover{background:#33415599;border-color:#94a3b833}:root:not(.light) .roster-chip.napping{border-color:#58c4be66;background:#58c4be26}:root:not(.light) .roster-avatar{background:#58c4be33;color:#58c4be}:root:not(.light) .roster-chip.napping .roster-avatar{background:#58c4be;color:#1e293b}:root:not(.light) .roster-name{color:#e2e8f0}:root:not(.light) .roster-summary-item{color:#94a3b8}:root:not(.light) .roster-status-chip.nap{background:#58c4be;color:#1e293b}}:root.dark .roster-strip{background:#1e293b99;border-color:#94a3b826}:root.dark .roster-chip{background:#33415566;border-color:#94a3b81f}:root.dark .roster-chip:hover{background:#33415599;border-color:#94a3b833}:root.dark .roster-chip.napping{border-color:#58c4be66;background:#58c4be26}:root.dark .roster-avatar{background:#58c4be33;color:#58c4be}:root.dark .roster-chip.napping .roster-avatar{background:#58c4be;color:#1e293b}:root.dark .roster-name{color:#e2e8f0}:root.dark .roster-summary-item{color:#94a3b8}:root.dark .roster-status-chip.nap{background:#58c4be;color:#1e293b}.quick-log-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:flex-end;justify-content:center;z-index:1000;padding:0}.quick-log-sheet{width:100%;max-width:500px;max-height:90vh;background:var(--surface);border-radius:20px 20px 0 0;overflow-y:auto;animation:slideUp .2s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.quick-log-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-soft);position:sticky;top:0;background:var(--surface);z-index:1}.quick-log-child{display:flex;align-items:center;gap:12px}.quick-log-avatar{width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:var(--primary-soft);color:var(--primary-ink);border-radius:50%;font-size:var(--text-sm);font-weight:600}.quick-log-child-info{display:flex;flex-direction:column;gap:2px}.quick-log-child-name{font-weight:600;color:var(--ink)}.quick-log-child-room{font-size:var(--text-sm);color:var(--muted)}.quick-log-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--surface-soft);border:none;border-radius:50%;font-size:20px;color:var(--muted);cursor:pointer}.quick-log-close:hover{background:var(--surface);color:var(--ink)}.quick-log-time-row{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border-soft)}.quick-log-time-row label{font-size:var(--text-sm);color:var(--muted)}.quick-log-time-row input[type=time]{padding:6px 10px;border:1px solid var(--border-medium);border-radius:6px;background:var(--surface-soft);color:var(--ink);font-size:var(--text-sm)}.quick-log-time-input-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.quick-log-time-warning{font-size:var(--text-xs);color:var(--warning, #f59e0b);font-weight:500}.quick-log-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:20px}.quick-log-action{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;background:var(--surface-soft);border:1px solid var(--border-soft);border-radius:12px;cursor:pointer;transition:border-color .15s,background-color .15s,transform .1s}.quick-log-action:hover{border-color:var(--border-strong);background:var(--surface)}.quick-log-action:active{transform:scale(.97)}.quick-log-action.nap-active{border-color:var(--primary);background:var(--primary-soft)}.quick-log-icon{font-size:28px}.quick-log-action span:last-child{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.quick-log-saved-hint{text-align:center;padding:0 20px 16px;font-size:var(--text-sm);color:var(--primary-ink)}.quick-log-form-header{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border-soft)}.quick-log-back{background:none;border:none;font-size:var(--text-sm);color:var(--primary-ink);cursor:pointer;padding:4px 8px;margin:-4px -8px}.quick-log-form-title{font-weight:600;color:var(--ink)}.quick-log-form{padding:16px 20px;display:grid;gap:16px}.quick-log-field{display:grid;gap:8px}.quick-log-field label{font-size:var(--text-sm);font-weight:500;color:var(--muted-strong)}.quick-log-field input,.quick-log-field textarea{padding:10px 12px;border:1px solid var(--border-medium);border-radius:8px;background:var(--surface);color:var(--ink);font-size:var(--text-sm);resize:none}.quick-log-field input:focus,.quick-log-field textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.quick-log-field input::placeholder,.quick-log-field textarea::placeholder{color:var(--muted)}.quick-log-chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:6px 12px;border:1px solid var(--border-medium);border-radius:20px;background:var(--surface);color:var(--muted-strong);font-size:var(--text-sm);font-weight:500;cursor:pointer;transition:border-color .15s,background-color .15s,color .15s}.chip:hover{border-color:var(--border-strong);color:var(--ink)}.chip.active{border-color:var(--primary);background:var(--primary-soft);color:var(--primary-ink)}.quick-log-hint{font-size:var(--text-sm);color:var(--muted);margin:0}.quick-log-placeholder{padding:32px;text-align:center}.quick-log-actions{padding:16px 20px;border-top:1px solid var(--border-soft)}.quick-log-actions button{width:100%}@media(prefers-color-scheme:dark){:root:not(.light) .quick-log-backdrop{background:#000000b3}:root:not(.light) .quick-log-sheet{background:#1e293b}:root:not(.light) .quick-log-header{background:#1e293b;border-color:#94a3b81a}:root:not(.light) .quick-log-avatar{background:#58c4be33;color:#58c4be}:root:not(.light) .quick-log-child-name{color:#e2e8f0}:root:not(.light) .quick-log-child-room{color:#94a3b8}:root:not(.light) .quick-log-close{background:#33415580;color:#94a3b8}:root:not(.light) .quick-log-close:hover{background:#334155cc;color:#e2e8f0}:root:not(.light) .quick-log-time-row{border-color:#94a3b81a}:root:not(.light) .quick-log-time-row input[type=time]{background:#33415580;border-color:#94a3b826;color:#e2e8f0}:root:not(.light) .quick-log-time-warning{color:#fbbf24}:root:not(.light) .quick-log-action{background:#33415566;border-color:#94a3b81f}:root:not(.light) .quick-log-action:hover{background:#33415599;border-color:#94a3b833}:root:not(.light) .quick-log-action.nap-active{background:#58c4be26;border-color:#58c4be66}:root:not(.light) .quick-log-action span:last-child{color:#e2e8f0}:root:not(.light) .quick-log-form-header{border-color:#94a3b81a}:root:not(.light) .quick-log-back{color:#58c4be}:root:not(.light) .quick-log-form-title{color:#e2e8f0}:root:not(.light) .quick-log-field label{color:#94a3b8}:root:not(.light) .quick-log-field input,:root:not(.light) .quick-log-field textarea{background:#33415580;border-color:#94a3b826;color:#e2e8f0}:root:not(.light) .quick-log-field input::placeholder,:root:not(.light) .quick-log-field textarea::placeholder{color:#64748b}:root:not(.light) .chip{background:#33415566;border-color:#94a3b826;color:#94a3b8}:root:not(.light) .chip:hover{border-color:#94a3b840;color:#e2e8f0}:root:not(.light) .chip.active{background:#58c4be26;border-color:#58c4be66;color:#58c4be}:root:not(.light) .quick-log-hint{color:#94a3b8}:root:not(.light) .quick-log-actions{border-color:#94a3b81a}:root:not(.light) .quick-log-saved-hint{color:#58c4be}}:root.dark .quick-log-backdrop{background:#000000b3}:root.dark .quick-log-sheet{background:#1e293b}:root.dark .quick-log-header{background:#1e293b;border-color:#94a3b81a}:root.dark .quick-log-avatar{background:#58c4be33;color:#58c4be}:root.dark .quick-log-child-name{color:#e2e8f0}:root.dark .quick-log-child-room{color:#94a3b8}:root.dark .quick-log-close{background:#33415580;color:#94a3b8}:root.dark .quick-log-close:hover{background:#334155cc;color:#e2e8f0}:root.dark .quick-log-time-row{border-color:#94a3b81a}:root.dark .quick-log-time-row input[type=time]{background:#33415580;border-color:#94a3b826;color:#e2e8f0}:root.dark .quick-log-time-warning{color:#fbbf24}:root.dark .quick-log-action{background:#33415566;border-color:#94a3b81f}:root.dark .quick-log-action:hover{background:#33415599;border-color:#94a3b833}:root.dark .quick-log-action.nap-active{background:#58c4be26;border-color:#58c4be66}:root.dark .quick-log-action span:last-child{color:#e2e8f0}:root.dark .quick-log-form-header{border-color:#94a3b81a}:root.dark .quick-log-back{color:#58c4be}:root.dark .quick-log-form-title{color:#e2e8f0}:root.dark .quick-log-field label{color:#94a3b8}:root.dark .quick-log-field input,:root.dark .quick-log-field textarea{background:#33415580;border-color:#94a3b826;color:#e2e8f0}:root.dark .quick-log-field input::placeholder,:root.dark .quick-log-field textarea::placeholder{color:#64748b}:root.dark .chip{background:#33415566;border-color:#94a3b826;color:#94a3b8}:root.dark .chip:hover{border-color:#94a3b840;color:#e2e8f0}:root.dark .chip.active{background:#58c4be26;border-color:#58c4be66;color:#58c4be}:root.dark .quick-log-hint{color:#94a3b8}:root.dark .quick-log-actions{border-color:#94a3b81a}:root.dark .quick-log-saved-hint{color:#58c4be}.batch-log-modal{max-width:480px;max-height:90vh;overflow-y:auto}.batch-log-modal .modal-body{padding:0}.batch-log-step{padding:20px}.batch-log-step h4{margin:0 0 16px;font-size:var(--text-base);font-weight:600;color:var(--ink)}.batch-log-type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.batch-log-type-btn{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 16px;background:var(--surface-soft);border:1px solid var(--border-soft);border-radius:12px;cursor:pointer;transition:border-color .15s,background-color .15s,transform .1s}.batch-log-type-btn:hover{border-color:var(--border-strong);background:var(--surface)}.batch-log-type-btn:active{transform:scale(.97)}.batch-log-type-icon{font-size:32px}.batch-log-type-btn span:last-child{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.batch-log-field{display:grid;gap:8px;margin-bottom:16px}.batch-log-field:last-of-type{margin-bottom:0}.batch-log-field label{font-size:var(--text-sm);font-weight:500;color:var(--muted-strong)}.batch-log-field input{padding:10px 12px;border:1px solid var(--border-medium);border-radius:8px;background:var(--surface);color:var(--ink);font-size:var(--text-sm)}.batch-log-field input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.batch-log-field input::placeholder{color:var(--muted)}.batch-log-chips{display:flex;flex-wrap:wrap;gap:8px}.batch-log-step-actions{display:flex;justify-content:space-between;margin-top:20px;padding-top:16px;border-top:1px solid var(--border-soft)}.batch-log-config-summary{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--primary-soft);border-radius:8px;margin-bottom:16px;font-size:var(--text-sm)}.batch-log-config-label{color:var(--muted-strong);font-weight:500}.batch-log-config-value{color:var(--primary-ink);font-weight:600}.batch-log-roster-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.batch-log-roster-header h4{margin:0}.batch-log-roster{display:grid;gap:8px;max-height:300px;overflow-y:auto;padding-right:4px}.batch-log-child{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--surface-soft);border:1px solid var(--border-soft);border-radius:10px;cursor:pointer;transition:border-color .15s,background-color .15s;width:100%;text-align:left}.batch-log-child:hover{border-color:var(--border-strong)}.batch-log-child.selected{border-color:var(--primary);background:var(--primary-soft)}.batch-log-child-avatar{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--surface);color:var(--muted-strong);border-radius:50%;font-size:var(--text-xs);font-weight:600;flex-shrink:0}.batch-log-child.selected .batch-log-child-avatar{background:var(--primary);color:#fff}.batch-log-child-name{flex:1;font-weight:500;color:var(--ink)}.batch-log-check{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface);border:1px solid var(--border-medium);font-size:var(--text-sm);color:transparent}.batch-log-check.checked{background:var(--primary);border-color:var(--primary);color:#fff}.batch-log-summary{margin-top:12px;text-align:center}.batch-log-error{color:var(--danger, #ef4444);font-size:var(--text-sm);font-weight:500}@media(prefers-color-scheme:dark){:root:not(.light) .batch-log-step h4{color:#e2e8f0}:root:not(.light) .batch-log-type-btn{background:#33415566;border-color:#94a3b81f}:root:not(.light) .batch-log-type-btn:hover{background:#33415599;border-color:#94a3b833}:root:not(.light) .batch-log-type-btn span:last-child{color:#e2e8f0}:root:not(.light) .batch-log-field label{color:#94a3b8}:root:not(.light) .batch-log-field input{background:#33415580;border-color:#94a3b826;color:#e2e8f0}:root:not(.light) .batch-log-field input::placeholder{color:#64748b}:root:not(.light) .batch-log-step-actions{border-color:#94a3b81a}:root:not(.light) .batch-log-config-summary{background:#58c4be1f}:root:not(.light) .batch-log-config-label{color:#94a3b8}:root:not(.light) .batch-log-config-value{color:#58c4be}:root:not(.light) .batch-log-error{color:#f87171}:root:not(.light) .batch-log-child{background:#33415566;border-color:#94a3b81f}:root:not(.light) .batch-log-child:hover{border-color:#94a3b833}:root:not(.light) .batch-log-child.selected{background:#58c4be26;border-color:#58c4be66}:root:not(.light) .batch-log-child-avatar{background:#33415599;color:#94a3b8}:root:not(.light) .batch-log-child.selected .batch-log-child-avatar{background:#58c4be;color:#1e293b}:root:not(.light) .batch-log-child-name{color:#e2e8f0}:root:not(.light) .batch-log-check{background:#33415580;border-color:#94a3b826}:root:not(.light) .batch-log-check.checked{background:#58c4be;border-color:#58c4be}}:root.dark .batch-log-step h4{color:#e2e8f0}:root.dark .batch-log-type-btn{background:#33415566;border-color:#94a3b81f}:root.dark .batch-log-type-btn:hover{background:#33415599;border-color:#94a3b833}:root.dark .batch-log-type-btn span:last-child{color:#e2e8f0}:root.dark .batch-log-field label{color:#94a3b8}:root.dark .batch-log-field input{background:#33415580;border-color:#94a3b826;color:#e2e8f0}:root.dark .batch-log-field input::placeholder{color:#64748b}:root.dark .batch-log-step-actions{border-color:#94a3b81a}:root.dark .batch-log-config-summary{background:#58c4be1f}:root.dark .batch-log-config-label{color:#94a3b8}:root.dark .batch-log-config-value{color:#58c4be}:root.dark .batch-log-error{color:#f87171}:root.dark .batch-log-child{background:#33415566;border-color:#94a3b81f}:root.dark .batch-log-child:hover{border-color:#94a3b833}:root.dark .batch-log-child.selected{background:#58c4be26;border-color:#58c4be66}:root.dark .batch-log-child-avatar{background:#33415599;color:#94a3b8}:root.dark .batch-log-child.selected .batch-log-child-avatar{background:#58c4be;color:#1e293b}:root.dark .batch-log-child-name{color:#e2e8f0}:root.dark .batch-log-check{background:#33415580;border-color:#94a3b826}:root.dark .batch-log-check.checked{background:#58c4be;border-color:#58c4be}.shell>.classrooms-grid{flex:1 1 0}.classrooms-grid{display:flex;gap:24px;min-height:0;margin-bottom:-42px}.classrooms-list{width:320px;flex-shrink:0;padding:18px;gap:12px;background:var(--surface-muted);min-height:0;overflow:hidden}.classrooms-list-header{display:flex;justify-content:space-between;align-items:center}.classrooms-list-header h3{font-size:var(--text-sm);color:var(--muted-strong);font-weight:600}.classrooms-list-header .muted{font-size:var(--text-sm)}.classrooms-field-group{display:grid;gap:10px}.classrooms-inline-error{font-size:var(--text-xs);font-weight:500;color:var(--danger-ink);opacity:.85}.classrooms-inline-warning{font-size:var(--text-xs);font-weight:500;color:var(--warning-ink, #b45309);opacity:.85}.classrooms-list-body{display:grid;gap:10px;align-content:start;flex:1;min-height:0;overflow-y:auto}.classroom-card{border:1px solid var(--border-soft);background:var(--surface-muted);border-radius:14px;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;cursor:pointer;color:inherit}.classroom-card-info{display:flex;flex-direction:column;gap:2px;min-width:0}.classroom-card strong{display:block;font-size:var(--text-base);color:var(--ink)}.classroom-card-ages{font-size:var(--text-2xs, .6875rem);color:var(--muted-soft);font-weight:400}.classroom-card .muted{font-size:var(--text-sm)}.classroom-card.active{background:var(--surface);border-color:var(--border-soft);border-left:4px solid var(--accent);padding-left:10px}.classroom-card.active strong{color:var(--ink);font-weight:600}.classroom-card:not(.active){border-color:var(--border-subtle);background:var(--surface)}.classroom-card:not(.active) strong{color:var(--ink-subtle);font-weight:500}.classroom-card:not(.active) .classroom-meta{opacity:.85}.classroom-meta{display:grid;gap:6px;justify-items:end}.classroom-pill{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--surface-soft);color:var(--ink-subtle);font-size:var(--text-xs-plus);font-weight:600}.classroom-pill.subtle{border:1px solid var(--border-soft);background:var(--surface-muted)}.classroom-pill.subtle.warn{border-color:var(--danger-border);background:var(--danger-soft);color:var(--danger-ink)}.classroom-pill.subtle.danger{border-color:var(--danger-border-strong);background:var(--danger-soft);color:var(--danger-ink)}.classroom-pill.subtle.ok{border-color:var(--success-border);background:var(--success-soft);color:var(--success-ink)}.classroom-pill.ratio{border:1px solid var(--border-soft);background:var(--surface-soft);color:var(--ink-subtle)}.classroom-pill.age-range{border:1px solid var(--border-soft);background:var(--surface-muted);color:var(--muted-strong)}.classroom-pill.lead-unassigned{border:1px solid var(--warning-border, #fde68a);background:var(--warning-soft, #fefce8);color:var(--warning-ink, #b45309);cursor:pointer}.classroom-pill.lead-unassigned:hover{background:var(--warning-bg-hover, #fef9c3);border-color:var(--warning-border-hover, #fcd34d)}.lead-unassigned-menu{position:relative}.lead-unassigned-popover{position:absolute;top:calc(100% + 8px);left:0;min-width:220px;background:var(--surface);border-radius:12px;border:1px solid var(--border-soft);box-shadow:var(--shadow-pop);padding:12px;display:flex;flex-direction:column;gap:8px;z-index:10}.lead-popover-title{margin:0;font-size:var(--text-sm);font-weight:600;color:var(--ink)}.lead-popover-desc{margin:0;font-size:var(--text-xs);color:var(--muted);line-height:1.4}.lead-popover-action{align-self:flex-start;margin-top:4px;padding:6px 12px;border:none;border-radius:8px;background:var(--warning-soft, #fefce8);color:var(--warning-ink, #b45309);font-size:var(--text-xs);font-weight:500;cursor:pointer}.lead-popover-action:hover{background:var(--warning-bg-hover, #fef9c3)}.classroom-count{font-size:var(--text-sm);color:var(--muted)}.roster-card{flex:1;padding:18px;gap:20px;min-height:0;overflow:hidden;border-color:var(--border-soft);position:relative}.roster-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--accent));opacity:0;border-radius:12px 12px 0 0}.roster-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:14px;border-bottom:1px solid var(--border-subtle)}.roster-header .muted{font-size:var(--text-sm)}.roster-header-left{display:flex;flex-direction:column;gap:6px;min-width:0}.roster-title-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.roster-badges{display:flex;align-items:center;gap:6px}.roster-title-row h2{margin:0;font-size:var(--text-xl, 1.25rem);font-weight:700;color:var(--ink);line-height:1.2}.roster-compliance-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:var(--text-2xs, .6875rem);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.roster-compliance-badge.ok{background:var(--success-soft);color:var(--success-ink);border:1px solid var(--success-border)}.roster-compliance-badge.warn{background:var(--warning-soft, #fefce8);color:var(--warning-ink, #b45309);border:1px solid var(--warning-border, #fde68a)}.roster-compliance-badge.danger{background:var(--danger-soft);color:var(--danger-ink);border:1px solid var(--danger-border)}.roster-status-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:var(--text-2xs, .6875rem);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.roster-status-badge.warning{background:var(--warning-soft, #fefce8);color:var(--warning-ink, #b45309);border:1px solid var(--warning-border, #fde68a)}.roster-status-badge svg{flex-shrink:0}.roster-meta-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.roster-meta-item{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-sm);color:var(--muted)}.roster-meta-item svg{color:var(--muted-soft);flex-shrink:0}.roster-capacity{font-weight:500;color:var(--ink-subtle)}.roster-staff{font-weight:500}.roster-filter{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;border:1px solid var(--border-soft);background:var(--surface-muted);min-width:200px;max-width:280px;transition:border-color .15s ease,box-shadow .15s ease}.roster-filter:focus-within{border-color:var(--primary-border, var(--accent));box-shadow:0 0 0 3px var(--primary-soft, rgba(99, 102, 241, .1))}.roster-filter-icon{color:var(--muted-soft);flex-shrink:0}.roster-filter-input{flex:1;border:none;background:transparent;font-size:var(--text-sm);color:var(--ink);outline:none}.roster-filter-input::placeholder{color:var(--muted-soft)}.roster-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.roster-actions>.room-actions-menu{margin-right:4px}.room-actions-menu{position:relative}.room-actions-trigger{width:32px;height:32px;border-radius:999px;border:1px solid var(--border-subtle);background:transparent;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:14px;opacity:.7}.room-actions-trigger:hover{border-color:var(--border-soft);color:var(--muted-strong);opacity:1}.room-actions-popover{position:absolute;top:calc(100% + 8px);right:0;min-width:160px;background:var(--surface);border-radius:12px;border:1px solid var(--border-soft);box-shadow:var(--shadow-pop);padding:6px;display:grid;gap:4px;z-index:2}.room-menu-item{border:none;background:transparent;text-align:left;padding:8px 10px;border-radius:10px;font-size:var(--text-sm);color:var(--ink);cursor:pointer}.room-menu-item:hover{background:var(--surface-muted)}.room-menu-item.danger{color:var(--danger-ink)}.room-menu-item.warning{color:var(--warning-ink, #b45309)}.roster-table{display:grid;gap:0;align-content:start;border:1px solid var(--border-subtle);border-radius:12px;background:var(--surface-muted);flex:1;min-height:0;overflow-y:auto}.roster-footer-count{display:block;text-align:center;font-size:11px;color:var(--muted-soft);padding:10px 16px;opacity:.6;border-top:1px solid var(--border-subtle)}.roster-row.roster-empty-state{display:flex;justify-content:center;align-items:center;padding:48px 24px;min-height:200px}.roster-empty-content{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;max-width:280px}.roster-empty-content .muted{font-size:var(--text-sm);color:var(--muted)}.roster-empty-action{background:none;border:none;padding:0;font:inherit;font-size:var(--text-sm);font-weight:500;color:var(--primary);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.roster-empty-action:hover{opacity:.8}.roster-empty-action:disabled{opacity:.4;cursor:not-allowed}.roster-row{display:grid;grid-template-columns:1.5fr 1.3fr .9fr 1fr;gap:12px;padding:16px;align-items:center;background:var(--surface);border-top:1px solid var(--border-subtle)}.roster-row:nth-child(2n):not(.roster-header-row){background:#fafbfd}:root.dark .roster-row:nth-child(2n):not(.roster-header-row){background:#1e293b4d}.roster-row-clickable{cursor:pointer;transition:background-color .1s ease}.roster-row-clickable:hover{background:var(--surface-hover, rgba(0, 0, 0, .02))}.roster-row-clickable:focus-visible{outline:2px solid var(--focus-ring, #3b82f6);outline-offset:-2px}.roster-header-row{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--surface);border-top:none}.roster-header-row span:last-child{text-align:right}.roster-header-row span:last-child{padding-right:6px}.roster-child{display:grid;gap:4px}.roster-child strong{font-size:var(--text-sm);font-weight:600}.roster-child-age{font-size:var(--text-2xs, .6875rem);color:var(--muted-soft);font-weight:400;display:block;margin-top:1px}.roster-child-mismatch{display:inline-flex;align-items:center;gap:3px;font-size:var(--text-2xs, .6875rem);color:var(--warning-ink, #b45309);margin-left:4px;vertical-align:middle}.roster-child-mismatch svg{opacity:.8}.roster-row .muted{font-size:var(--text-xs);color:var(--muted-soft)}.roster-toolbar{display:flex;justify-content:space-between;align-items:center;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.roster-search{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:12px;border:1px solid var(--border-soft);background:var(--surface-muted);width:100%}.roster-search input{flex:1;border:none;background:transparent;font-size:var(--text-md);color:var(--ink);outline:none}.roster-search .muted{font-size:var(--text-xs)}.roster-actions-cell{display:flex;align-items:center;gap:10px;justify-content:flex-end}.schedule-cell{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm)}.schedule-days{font-weight:500;color:var(--ink)}.schedule-time{font-size:var(--text-xs)}.move-menu{position:relative}.move-menu-trigger{border-radius:999px;border:1px solid var(--border-soft);background:var(--surface);padding:6px 12px;font-size:var(--text-xs);color:var(--muted-strong);cursor:pointer;display:inline-flex;align-items:center;gap:4px}.move-menu-trigger:hover{border-color:var(--border-medium);color:var(--ink)}.move-menu-caret{font-size:10px;opacity:.6}.move-menu-popover{position:absolute;top:calc(100% + 6px);right:0;min-width:140px;background:var(--surface);border-radius:12px;border:1px solid var(--border-soft);box-shadow:var(--shadow-pop);padding:6px;display:grid;gap:2px;z-index:10}.move-menu-item{border:none;background:transparent;text-align:left;padding:8px 10px;border-radius:8px;font-size:var(--text-sm);color:var(--ink);cursor:pointer;white-space:nowrap}.move-menu-item:hover{background:var(--surface-muted)}.move-menu-item:disabled{opacity:.4;cursor:not-allowed}.move-menu-item:disabled:hover{background:transparent}.roster-remove{width:40px;height:40px;border-radius:999px;border:1px solid var(--border-soft);background:var(--surface);color:var(--muted-strong);display:inline-flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer}.roster-remove:disabled{opacity:.6;cursor:not-allowed}.roster-remove:not(:disabled):hover{border-color:var(--danger-border);color:var(--danger-ink);background:var(--danger-soft)}.pill.danger{background:var(--danger-soft);border:1px solid var(--danger-border);color:var(--danger-ink)}.classrooms-modal .primary.danger{background:var(--danger-ink);border-color:var(--danger-ink);color:var(--text-on-dark)}.classrooms-modal .text-button.danger{color:var(--danger-ink)}.classrooms-delete-detail{color:var(--muted-soft);font-size:var(--text-sm)}.classrooms-delete-final{color:var(--text-strong);font-weight:600}.classrooms-programs-field{display:flex;flex-direction:column;gap:12px;margin-top:8px;padding:16px;background:var(--surface-muted, #f9fafb);border-radius:8px;border:1px solid var(--border-light, #e5e7eb)}.classrooms-programs-header{display:flex;flex-direction:column;gap:4px}.classrooms-programs-label{font-size:var(--text-sm);font-weight:600;color:var(--text-strong)}.classrooms-programs-helper{font-size:var(--text-xs, .75rem);color:var(--muted)}.classrooms-programs-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0}@media(max-width:480px){.classrooms-programs-list{grid-template-columns:1fr}}.classrooms-program-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:var(--text-sm);color:var(--text-base);padding:11px 12px;border-radius:6px;transition:background .15s ease;-webkit-user-select:none;user-select:none}.classrooms-program-checkbox:hover{background:var(--surface-hover, rgba(0, 0, 0, .05))}.classrooms-program-checkbox input[type=checkbox]{width:18px;height:18px;margin:0;cursor:pointer;accent-color:var(--primary, #4f46e5);flex-shrink:0}.classrooms-program-name{line-height:1.3}.classrooms-programs-fallback{font-size:var(--text-2xs, .6875rem);color:var(--muted);opacity:.8;margin-top:4px}.assign-child-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.assign-child-program{font-size:var(--text-xs);padding:2px 8px;background:var(--surface-soft);border-radius:4px;color:var(--muted-soft)}@media(max-width:900px){.classrooms-grid{flex-direction:column;gap:16px;margin-bottom:0;max-width:100%;overflow-x:hidden}.classrooms-list{width:100%;flex-shrink:1;max-height:280px;overflow-y:auto;padding:14px}.classrooms-list-body{max-height:none}.classroom-card{padding:10px 12px}.classroom-meta{flex-direction:row;gap:8px;align-items:center}.roster-card{width:100%;flex-shrink:1;padding:14px;gap:16px;min-height:400px}.roster-header{flex-direction:column;align-items:flex-start;gap:12px}.roster-header-left{width:100%}.roster-title-row{flex-wrap:wrap;gap:8px}.roster-meta-row{gap:10px}.roster-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.roster-filter{min-width:0;max-width:none;flex:1}.roster-toolbar{flex-direction:column;align-items:stretch;gap:12px}.roster-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.roster-row{grid-template-columns:1fr;align-items:flex-start;padding:12px;gap:8px}.roster-header-row{display:none}.roster-child{margin-bottom:4px}.roster-actions-cell{justify-content:flex-start;margin-top:8px;padding-top:8px;border-top:1px solid var(--border-subtle);width:100%}.schedule-cell{font-size:var(--text-xs)}.move-menu-trigger{padding:5px 10px;font-size:var(--text-2xs)}.classrooms-modal{max-width:100%;margin:16px}.room-actions-popover{right:auto;left:0}.lead-unassigned-popover{left:auto;right:0;min-width:200px}.move-menu-popover{min-width:120px}}.assign-search-wrapper{margin-bottom:12px}.assign-search-wrapper input{width:100%}.assign-search-wrapper input:disabled{opacity:.5;cursor:not-allowed}.assign-child-list{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.assign-child-row{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:var(--surface-muted);border:1px solid transparent;border-radius:8px;cursor:pointer;text-align:left;transition:background .15s,border-color .15s}.assign-child-row:hover{background:var(--bg-hover);border-color:var(--border)}.assign-child-row:disabled{opacity:.5;cursor:not-allowed}.assign-child-info{display:flex;flex-direction:column;gap:2px}.assign-child-info strong{font-size:var(--text-sm);font-weight:500}.assign-child-info .muted{font-size:var(--text-xs)}.assign-child-age{font-size:var(--text-2xs, .6875rem);color:var(--muted-soft);font-weight:400;margin-left:6px}.assign-child-warning{font-size:var(--text-2xs, .6875rem);color:var(--warning-ink, #b45309);font-weight:500;margin-top:2px}.assign-child-row.assign-child-ineligible{opacity:.7}.assign-child-row.assign-child-ineligible:hover{background:var(--surface-muted);border-color:var(--warning-border, #fde68a)}.assign-empty-state{display:flex;flex-direction:column;align-items:center;gap:8px;padding:24px 16px 40px;text-align:center}.assign-empty-icon{color:var(--muted);opacity:.5;margin-bottom:4px}.assign-empty-title{font-size:var(--text-sm);font-weight:600;color:var(--text-base)}.assign-empty-desc{font-size:var(--text-xs);color:var(--muted);max-width:240px;line-height:1.5}.assign-empty-inline-link{display:inline-flex;align-items:center;gap:3px;background:none;border:none;padding:0;font:inherit;font-weight:600;color:var(--primary);cursor:pointer;text-decoration:underline}.assign-empty-inline-link svg{flex-shrink:0;margin-top:1px}.assign-empty-inline-link:hover{opacity:.8}@media(prefers-color-scheme:dark){:root:not(.light) .classroom-pill.ratio{border-color:#94a3b826;background:#33415566}:root:not(.light) .classroom-pill.lead-unassigned{border-color:#fbbf2459;background:#fbbf241f}:root:not(.light) .classroom-pill.lead-unassigned:hover{border-color:#fbbf2480;background:#fbbf242e}:root:not(.light) .child-age-warning{color:var(--warning-ink)}:root:not(.light) .classroom-card.active{border-color:var(--primary-border);box-shadow:0 0 0 1px var(--primary-border)}:root:not(.light) .roster-card:before{opacity:.7}:root:not(.light) .roster-empty-action{color:var(--primary-ink)}:root:not(.light) .room-actions-trigger{border-color:#94a3b81a}:root:not(.light) .room-actions-trigger:hover{border-color:#94a3b833;background:#94a3b814}:root:not(.light) .classroom-age{color:#cbd5e1}:root:not(.light) .classroom-card-ages{color:#94a3b8}:root:not(.light) .classroom-count{color:#cbd5e1}:root:not(.light) .classroom-card:not(.active) .classroom-meta{opacity:1}:root:not(.light) .roster-subtitle{color:#94a3b8}:root:not(.light) .roster-row .muted{color:#94a3b8}:root:not(.light) .roster-row:nth-child(2n):not(.roster-header-row){background:#1e293b4d}:root:not(.light) .roster-header-cell{color:#94a3b8}:root:not(.light) .schedule-time{color:#94a3b8}:root:not(.light) .roster-empty-content .muted{color:#94a3b8}:root:not(.light) .roster-header-row{color:#94a3b8}:root:not(.light) .roster-search{background:#3341554d;border-color:#94a3b826}:root:not(.light) .roster-title-row h2{color:#f1f5f9}:root:not(.light) .roster-compliance-badge.ok{background:#22c55e26;border-color:#22c55e4d}:root:not(.light) .roster-compliance-badge.warn{background:#fbbf241f;border-color:#fbbf2459}:root:not(.light) .roster-status-badge.warning{background:#fbbf241f;border-color:#fbbf2459}:root:not(.light) .roster-meta-item{color:#94a3b8}:root:not(.light) .roster-meta-item svg{color:#64748b}:root:not(.light) .roster-filter{background:#3341554d;border-color:#94a3b826}:root:not(.light) .roster-filter:focus-within{border-color:var(--primary-border);box-shadow:0 0 0 3px #6366f126}:root:not(.light) .roster-filter-icon{color:#64748b}:root:not(.light) .roster-filter-input{color:#f1f5f9}:root:not(.light) .roster-filter-input::placeholder{color:#64748b}}:root.dark .classroom-pill.ratio{border-color:#94a3b826;background:#33415566}:root.dark .classroom-pill.lead-unassigned{border-color:#fbbf2459;background:#fbbf241f}:root.dark .classroom-pill.lead-unassigned:hover{border-color:#fbbf2480;background:#fbbf242e}:root.dark .child-age-warning{color:var(--warning-ink)}:root.dark .classroom-card.active{border-color:var(--primary-border);box-shadow:0 0 0 1px var(--primary-border)}:root.dark .roster-card:before{opacity:.7}:root.dark .roster-empty-action{color:var(--primary-ink)}:root.dark .room-actions-trigger{border-color:#94a3b81a}:root.dark .room-actions-trigger:hover{border-color:#94a3b833;background:#94a3b814}:root.dark .roster-footer-count{color:#94a3b8;opacity:.8;background:#33415540;border-top:1px solid rgba(148,163,184,.1)}:root.dark .classroom-age{color:#cbd5e1}:root.dark .classroom-card-ages{color:#94a3b8}:root.dark .classroom-count{color:#cbd5e1}:root.dark .classroom-card:not(.active) .classroom-meta{opacity:1}:root.dark .roster-subtitle{color:#94a3b8}:root.dark .roster-row .muted{color:#94a3b8}:root.dark .roster-header-cell{color:#94a3b8}:root.dark .schedule-time{color:#94a3b8}:root.dark .roster-empty-content .muted{color:#94a3b8}:root.dark .roster-header-row{color:#94a3b8}:root.dark .roster-search{background:#3341554d;border-color:#94a3b826}:root.dark .roster-title-row h2{color:#f1f5f9}:root.dark .roster-compliance-badge.ok{background:#22c55e26;border-color:#22c55e4d}:root.dark .roster-compliance-badge.warn{background:#fbbf241f;border-color:#fbbf2459}:root.dark .roster-status-badge.warning{background:#fbbf241f;border-color:#fbbf2459}:root.dark .roster-meta-item{color:#94a3b8}:root.dark .roster-meta-item svg{color:#64748b}:root.dark .roster-filter{background:#3341554d;border-color:#94a3b826}:root.dark .roster-filter:focus-within{border-color:var(--primary-border);box-shadow:0 0 0 3px #6366f126}:root.dark .roster-filter-icon{color:#64748b}:root.dark .roster-filter-input{color:#f1f5f9}:root.dark .roster-filter-input::placeholder{color:#64748b}.shell>.enrollments-scroll-container{flex:1 1 0;min-height:0;overflow-y:auto;padding-bottom:16px;margin-bottom:-42px;background:transparent;border-radius:0}.admissions-grid{display:flex;flex-direction:column;flex:1;min-height:0}.admissions-attention{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;border-radius:18px;border:1px solid var(--border-soft);background:var(--surface);border-left:4px solid var(--accent);margin-bottom:18px;flex-wrap:wrap}.admissions-attention-title{display:grid;gap:4px}.admissions-attention-title strong{font-weight:800}.admissions-attention-pills{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.admissions-attention .attention-pill{padding:6px 12px;border-radius:999px;font-size:var(--text-sm);font-weight:500;background:var(--surface-muted);color:var(--muted-strong);border:1px solid var(--border-soft);cursor:pointer;transition:all .15s ease}.admissions-attention .attention-pill:hover:not(.is-zero){border-color:var(--border-medium);background:var(--surface)}.admissions-attention .attention-pill.ok,.admissions-attention .attention-pill.warn{background:var(--surface-muted);color:var(--muted-strong);border-color:var(--border-soft)}.admissions-attention .attention-pill.is-zero{opacity:.35;background:transparent;color:var(--muted);border-color:transparent}.admissions-attention .attention-pill.active{border-color:var(--ink);background:var(--surface);box-shadow:var(--shadow-soft);color:var(--ink);font-weight:600}.admissions-attention .attention-pill.reset{background:transparent;color:var(--muted-strong);border:1px dashed var(--border-medium)}.admissions-attention .attention-pill.info{background:var(--surface-muted);color:var(--muted-strong);border-color:var(--border-soft)}.admissions-list{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;gap:0;padding:0;border-color:var(--border-medium);border-radius:20px;box-shadow:0 4px 12px #0f172a0f}.admissions-list-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:20px 20px 14px;background:var(--surface);border-bottom:none}.admissions-list-header .muted{font-size:var(--text-sm)}.admissions-remove-reassurance{font-size:var(--text-sm);color:var(--muted);margin-top:8px}.admissions-remove-details{margin:14px 0 0;padding-left:18px;color:var(--muted-soft);font-size:var(--text-xs);line-height:1.5;display:grid;gap:6px}.admissions-remove-actions{margin-top:22px}.admissions-search{display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;border:1px solid var(--border-soft);background:var(--surface-muted);margin:0 20px 16px;transition:border-color .15s ease,background .15s ease}.admissions-search:focus-within{border-color:var(--border-medium);background:var(--surface)}.admissions-search input{flex:1;border:none;background:transparent;font-size:var(--text-sm);color:var(--ink);outline:none;padding:0;min-width:0}.admissions-search input::placeholder{color:var(--muted)}.admissions-search .muted{font-size:var(--text-xs);color:var(--muted)}.admissions-list-body{display:flex;flex-direction:column;flex:0 0 auto;min-height:0;overflow-y:auto;background:var(--surface);border-radius:0;border:none}.admissions-load-more{display:flex;justify-content:center;padding:4px 0 12px}.admissions-table{display:grid;gap:0;padding:0;border-radius:0;background:var(--surface);border:none;align-content:start;flex:0 0 auto}.admissions-footer-count{display:block;text-align:center;font-size:11px;color:var(--muted-soft);padding:10px 16px;opacity:.6;border-top:1px solid var(--border-subtle)}.admissions-row{display:grid;grid-template-columns:1.2fr .9fr 1.2fr .8fr;gap:12px;padding:14px 20px;align-items:center;background:var(--surface);border:none;border-bottom:1px solid var(--border-subtle)}.admissions-row:nth-child(2n){background:#f1f5f980}.admissions-row-flat{padding:12px 20px}.admissions-avatar-flat{width:28px;height:28px;font-size:var(--text-2xs);border-radius:8px;background:#e2e8f0;color:#64748b}.admissions-child-flat{gap:10px}.admissions-child-name-flat{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.admissions-status-flat{gap:8px}.admissions-row-clickable{cursor:pointer}.admissions-row-clickable:hover{background:#eef2ff99}.admissions-row-clickable:focus{outline:none;background:#6366f114;box-shadow:inset 3px 0 0 var(--primary)}.admissions-row-clickable:focus-visible{box-shadow:inset 3px 0 0 var(--primary),inset 0 0 0 2px var(--primary-soft)}.admissions-row-clickable.is-selected{background:#6366f114;box-shadow:inset 3px 0 0 var(--primary)}.admissions-row.is-complete,.admissions-row.is-complete strong{color:var(--muted-strong)}.admissions-header-row{position:sticky;top:0;z-index:10;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ink-subtle);background:var(--surface-muted);border-top:none;border-bottom:2px solid var(--border-medium);cursor:default;padding:16px 20px}.admissions-header-action{text-align:right}.admissions-table>.admissions-row:last-child{border-bottom:none}.admissions-parent{display:flex;align-items:center;gap:12px}.admissions-avatar{width:40px;height:40px;border-radius:14px;background:#e2e8f0;color:#64748b;display:grid;place-items:center;font-weight:600;font-size:var(--text-sm)}.admissions-parent-info{display:grid;gap:4px}.admissions-parent-info strong{font-size:var(--text-base);color:var(--ink);font-weight:600}.admissions-child{display:flex;align-items:center;gap:12px}.admissions-child-name{font-size:var(--text-base);color:var(--ink);font-weight:600}.admissions-room-cell{font-size:var(--text-sm);color:var(--ink-subtle)}.admissions-parent-cell{display:grid;gap:2px}.admissions-parent-info-row{display:flex;align-items:center;gap:8px}.admissions-parent-name{font-size:var(--text-sm);color:var(--ink-subtle);font-weight:500}.admissions-parent-email{font-size:var(--text-xs)}.admissions-invite-badge-inline{font-size:9px;font-weight:500;padding:2px 5px;border-radius:999px;text-transform:uppercase;letter-spacing:.03em;flex-shrink:0}.admissions-invite-badge-inline.invite-accepted{background:var(--success-soft);color:var(--success-ink)}.admissions-invite-badge-inline.invite-sent{background:var(--primary-soft-strong);color:var(--primary-ink)}.admissions-invite-badge-inline.invite-pending{background:transparent;color:var(--muted-soft);border:none;font-size:8px;padding:0;letter-spacing:0}.admissions-invite-badge-inline.invite-no-email{background:var(--surface-soft);color:var(--muted)}.admissions-children-section{border:1px solid var(--border-subtle);border-radius:12px;padding:12px;display:grid;gap:10px;background:var(--surface-soft)}.admissions-children-header{display:flex;align-items:center;justify-content:space-between}.admissions-children-list{display:grid;gap:10px}.admissions-child-row{display:flex;align-items:center;justify-content:space-between;gap:12px;border-radius:10px;padding:6px 8px}.admissions-child-row strong{display:block;font-size:var(--text-sm)}.admissions-child-row .child-name-link{display:block;background:none;border:none;padding:0;font:inherit;font-weight:600;font-size:var(--text-sm);color:var(--accent);cursor:pointer;text-align:left;text-decoration:none;transition:color .15s ease,text-decoration .15s ease}.admissions-child-row .child-name-link:hover:not(:disabled){color:var(--accent-hover, var(--ink));text-decoration:underline}.admissions-child-row .child-name-link:disabled{cursor:default;color:var(--ink)}.admissions-child-row .muted{font-size:var(--text-xs)}.admissions-child-row.is-new{background:color-mix(in srgb,var(--success-soft) 45%,transparent);transition:background .6s ease}.admissions-child-remove{color:var(--muted-strong);font-weight:500}.admissions-child-remove:hover{color:var(--danger-ink)}.admissions-create-child-row{display:flex;align-items:flex-end;gap:12px;padding:10px 12px;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px}.admissions-create-child-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:1}.admissions-create-child-fields label{display:flex;flex-direction:column;gap:4px;font-size:var(--text-sm);font-weight:500}.admissions-create-child-fields input,.admissions-create-child-fields select{padding:8px 10px;border:1px solid var(--border-soft);border-radius:8px;font-size:var(--text-sm)}.admissions-remove-child-btn{color:var(--muted);font-size:var(--text-xs);font-weight:500;padding:6px 8px;flex-shrink:0}.admissions-remove-child-btn:hover{color:var(--danger-ink)}.admissions-add-child-btn{color:var(--primary-ink);font-size:var(--text-sm);font-weight:600;padding:8px 0;text-align:left}.admissions-add-child-btn:hover{text-decoration:underline}.admissions-children-cell{font-size:var(--text-sm);color:var(--ink-subtle)}.admissions-email-link{font-size:var(--text-xs);color:var(--muted-strong);display:inline-flex;align-items:center;gap:6px;padding:0}.admissions-email-link[aria-disabled=true]{cursor:not-allowed;opacity:.7}.admissions-add-child{margin-top:8px;display:grid;gap:12px;padding-top:10px;border-top:1px solid var(--border-subtle)}.admissions-row .muted{font-size:var(--text-sm)}.admissions-status{display:flex;align-items:center;gap:10px;justify-content:flex-start}.status-age{font-size:var(--text-xs);color:var(--muted)}.admissions-actions{display:flex;justify-content:flex-end}.admissions-action-placeholder{font-size:var(--text-sm)}.admissions-action-menu{position:relative}.admissions-kebab{width:28px;height:28px;border-radius:999px;border:none;background:transparent;color:var(--muted-strong);font-size:var(--text-lg);line-height:1;cursor:pointer}.admissions-menu{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;box-shadow:var(--shadow-pop);min-width:160px;padding:6px;z-index:10}.admissions-menu-item{width:100%;border:none;background:transparent;padding:8px 10px;text-align:left;font-size:var(--text-sm);color:var(--ink);border-radius:8px;cursor:pointer}.admissions-menu-item:hover{background:var(--surface-soft)}.admissions-menu-item:disabled{color:var(--muted-soft);cursor:not-allowed}.admissions-menu-item.danger{color:var(--danger-ink)}.status-dot{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:500;text-transform:capitalize;color:var(--ink-subtle)}.status-dot .dot{width:8px;height:8px;border-radius:999px;background:var(--border-medium)}.status-dot.status-pending{color:var(--warning-ink)}.status-dot.status-pending .dot{background:var(--warning-ink)}.status-dot.status-invited{color:var(--primary-ink)}.status-dot.status-invited .dot{background:var(--primary-ink)}.status-dot.status-active{color:var(--success-ink)}.status-dot.status-active .dot{background:var(--success-ink)}.admissions-success{margin:8px 0 4px;font-size:var(--text-sm);color:var(--success-ink)}.admissions-drawer-backdrop{justify-content:center}.admissions-drawer{width:min(420px,100%);border-radius:16px;max-height:min(100%,720px);overflow-y:auto;overflow-x:visible}.admissions-checkbox{display:flex;align-items:center;gap:10px;font-size:var(--text-sm);color:var(--muted-strong);font-weight:600}.modal-form .admissions-checkbox{display:flex;grid-auto-flow:unset;gap:10px}.admissions-checkbox input{width:16px;height:16px;accent-color:var(--primary-ink)}.admissions-helper{font-size:var(--text-xs);color:var(--muted-soft)}.admissions-age-warning{display:flex;align-items:flex-start;gap:6px;font-size:var(--text-xs);color:var(--warning-ink);background:var(--warning-soft);padding:8px 12px;border-radius:6px;margin:0}.admissions-age-warning svg{flex-shrink:0;margin-top:1px}.admissions-divider{height:1px;background:var(--border-subtle);margin:4px 0}.admissions-helper-soft{opacity:.7}.admissions-age-feedback{display:flex;align-items:center;gap:12px;margin:-8px 0 4px}.admissions-age-value{font-size:var(--text-xs);color:var(--muted-strong)}.admissions-eligibility-ok{display:inline-flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--success-ink)}.admissions-billing-fields{display:flex;flex-direction:column;gap:16px;margin-bottom:8px}.admissions-optional-label{font-size:var(--text-xs);font-weight:400;color:var(--muted-soft)}.admissions-helper-footer{margin-top:4px}.admissions-cta-wrapper{display:inline-block}.admissions-pickups{width:min(520px,100%)}.admissions-pickups-form{display:grid;gap:16px}.admissions-pickup-row{display:grid;gap:12px;padding:12px;border-radius:12px;border:1px solid var(--border-soft);background:var(--surface-muted);position:relative}.admissions-pickup-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admissions-pickup-fields label{display:grid;gap:6px}.admissions-inline-error{font-size:var(--text-xs);color:var(--danger-ink)}.admissions-pickup-actions{display:flex;gap:12px;align-items:center;justify-content:flex-start}.admissions-pickup-menu{position:relative}.admissions-pickup-menu .admissions-menu{top:auto;bottom:calc(100% + 8px);left:0;right:auto}.admissions-add{align-self:flex-start}.admissions-invite{display:inline-flex;align-items:center;gap:6px}.admissions-invite:disabled{opacity:.55;cursor:not-allowed}.admissions-invite-note{font-size:var(--text-xs);margin-top:4px;color:var(--muted)}.admissions-invite-actions{margin-top:6px}.admissions-toast{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-radius:10px;border:1px solid var(--border-soft);background:var(--surface);box-shadow:var(--shadow-pop);font-size:var(--text-sm)}.admissions-remove{width:40px;height:40px;border-radius:999px;border:1px solid var(--border-soft);color:var(--muted-strong);display:inline-flex;align-items:center;justify-content:center;font-size:18px;position:absolute;top:-16px;right:-16px;background:var(--surface);z-index:2}.admissions-remove:hover{border-color:var(--danger-border);background:var(--danger-soft)}.admissions-remove:focus-visible{outline:2px solid color-mix(in srgb,var(--danger-ink) 35%,var(--accent));outline-offset:2px}.admissions-group-toggle{display:flex;align-items:center;gap:6px;font-size:var(--text-sm);color:var(--muted-strong);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.admissions-group-toggle input{width:14px;height:14px;accent-color:var(--primary-ink);cursor:pointer}.admissions-group-toggle span{font-weight:500}.admissions-header-grouped{grid-template-columns:1.2fr .9fr .8fr;position:sticky;top:0;z-index:10}.admissions-family-group{border-top:1px solid var(--border-soft)}.admissions-family-group:first-child{border-top:none}.admissions-family-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 20px;background:var(--surface-muted);border-bottom:1px solid var(--border-softest)}.admissions-family-label{font-size:var(--text-sm);font-weight:600;color:var(--ink-subtle);display:flex;align-items:center;gap:6px}.admissions-family-dot{color:var(--muted-soft)}.admissions-family-count{font-weight:400;color:var(--muted)}.admissions-invite-badge{font-size:var(--text-2xs);font-weight:500;padding:3px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em}.admissions-invite-badge.invite-accepted{background:var(--success-soft);color:var(--success-ink)}.admissions-invite-badge.invite-sent{background:var(--primary-soft-strong);color:var(--primary-ink)}.admissions-invite-badge.invite-pending{background:transparent;color:var(--muted-soft);border:none;font-size:9px;padding:0;letter-spacing:0}.admissions-invite-badge.invite-no-email{background:var(--surface-soft);color:var(--muted)}.admissions-family-header.is-no-parent{background:var(--surface);border-bottom-color:var(--border-subtle)}.admissions-family-header.is-no-parent .admissions-family-label{color:var(--muted);font-weight:500}.admissions-row-grouped{grid-template-columns:1.2fr .9fr .8fr;padding:14px 20px 14px 24px;background:var(--surface);border-bottom:1px solid var(--border-subtle)}.admissions-row-grouped:nth-child(2n){background:#f1f5f980}.admissions-family-group>.admissions-row-grouped:last-child{border-bottom:none}.admissions-row-grouped .admissions-avatar-small{width:28px;height:28px;font-size:var(--text-2xs);border-radius:8px;background:#e2e8f0;color:#64748b}.admissions-child-grouped{gap:10px}.admissions-child-name-grouped{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.admissions-status-grouped{gap:8px}.status-label{font-size:var(--text-xs);font-weight:500;color:var(--muted-strong)}.status-label.status-enrolled{color:var(--success-ink)}.admissions-kebab-small{width:24px;height:24px;font-size:var(--text-sm)}.admissions-empty{display:grid;gap:8px;justify-items:center;text-align:center;padding:48px 24px}.admissions-empty-icon{width:48px;height:48px;border-radius:14px;background:var(--surface-soft);display:grid;place-items:center;margin-bottom:8px;color:var(--muted-strong)}.admissions-empty-icon svg{width:24px;height:24px;opacity:.7}.admissions-empty-title{font-size:var(--text-lg);font-weight:600;color:var(--ink);margin:0}.admissions-empty .primary{margin-top:8px}@media(max-width:900px){.admissions-attention{flex-direction:column;align-items:flex-start;gap:12px;padding:12px 14px}.admissions-attention-pills{justify-content:flex-start;width:auto;gap:6px}.admissions-attention-pills .attention-pill{padding:4px 10px;font-size:12px;min-width:32px;text-align:center}.admissions-attention-pills .attention-pill .attention-label{display:none}.admissions-attention-pills .attention-pill .attention-count{font-weight:700}.admissions-attention-pills .attention-pill.reset .attention-label,.admissions-attention-pills .attention-pill.ok .attention-label{display:inline;font-size:11px}.admissions-list{padding:14px}.admissions-row{grid-template-columns:1fr;justify-items:start;padding:10px 14px}.admissions-row-flat{padding:10px 14px}.admissions-header-row{display:none}.admissions-actions{width:100%;justify-content:flex-start}.admissions-search{max-width:none;padding:8px 12px}.admissions-drawer-backdrop{justify-content:center}.admissions-drawer{border-radius:16px;margin:16px;max-width:calc(100% - 32px)}.admissions-pickups{margin:16px;max-width:calc(100% - 32px)}.admissions-pickup-fields{grid-template-columns:1fr}.admissions-create-child-row{flex-direction:column;align-items:stretch}.admissions-create-child-fields{grid-template-columns:1fr}.admissions-children-section{padding:10px}.admissions-family-header{padding:8px 14px}.admissions-family-label{font-size:var(--text-xs)}.admissions-invite-badge{font-size:9px;padding:2px 6px}.admissions-row-grouped{grid-template-columns:1fr;padding:10px 14px 10px 20px}.admissions-group-toggle{order:2}}.admissions-row.has-billing,.admissions-header-row.has-billing{grid-template-columns:1.2fr .8fr 1fr 1.2fr .7fr}.admissions-header-grouped.has-billing,.admissions-row-grouped.has-billing{grid-template-columns:1.2fr .8fr 1fr .7fr}.admissions-billing-cell{font-size:var(--text-sm);color:var(--ink-subtle)}.admissions-billing-cell.billing-missing{color:var(--muted);font-style:italic}.admissions-billing-cell.billing-partial{color:var(--warning-ink)}.admissions-billing-cell.billing-complete{color:var(--success-ink)}.admissions-age-warning-badge{display:block;width:fit-content;font-size:9px;font-weight:500;letter-spacing:.3px;padding:3px 6px;border-radius:4px;margin-top:4px;background:var(--warning-soft, #fef3c7);color:var(--warning-ink, #92400e);white-space:nowrap}@media(max-width:900px){.admissions-row.has-billing,.admissions-header-row.has-billing,.admissions-header-grouped.has-billing,.admissions-row-grouped.has-billing{grid-template-columns:1fr}}@media(prefers-color-scheme:dark){:root:not(.light) .admissions-attention{background:linear-gradient(180deg,#33415566,#1e293b80);border-color:#94a3b81a}:root:not(.light) .admissions-attention .attention-pill{background:#33415566;border-color:#94a3b826}:root:not(.light) .admissions-attention .attention-pill.warn{border-color:#94a3b826}:root:not(.light) .admissions-attention .attention-pill.ok{border-color:#94a3b826}:root:not(.light) .admissions-attention .attention-pill.info{border-color:#94a3b826}:root:not(.light) .admissions-attention .attention-pill.active{background:#33415599;border-color:#94a3b840;box-shadow:0 0 0 1px #94a3b81a}:root:not(.light) .admissions-age-warning{background:#fbbf241a;border:1px solid rgba(251,191,36,.25)}}:root.dark .admissions-attention{background:linear-gradient(180deg,#33415566,#1e293b80);border-color:#94a3b81a}:root.dark .admissions-attention .attention-pill{background:#33415566;border-color:#94a3b826}:root.dark .admissions-attention .attention-pill.warn{border-color:#94a3b826}:root.dark .admissions-attention .attention-pill.ok{border-color:#94a3b826}:root.dark .admissions-attention .attention-pill.info{border-color:#94a3b826}:root.dark .admissions-attention .attention-pill.active{background:#33415599;border-color:#94a3b840;box-shadow:0 0 0 1px #94a3b81a}:root.dark .admissions-age-warning{background:#fbbf241a;border:1px solid rgba(251,191,36,.25)}:root.dark .admissions-footer-count{color:#94a3b8;opacity:.8;background:#33415540;border-top:1px solid rgba(148,163,184,.1)}@media(prefers-color-scheme:dark){:root:not(.light) .admissions-list-header .muted{color:#94a3b8}}:root.dark .admissions-list-header .muted{color:#94a3b8}:root.dark .admissions-row{background:#1e293b33;border-bottom-color:#94a3b81a}:root.dark .admissions-row:nth-child(2n){background:#1e293b66}:root.dark .admissions-row:hover{background:#33415580}:root.dark .admissions-row-grouped{background:#1e293b33;border-bottom-color:#94a3b81a}:root.dark .admissions-row-grouped:nth-child(2n){background:#1e293b66}:root.dark .admissions-row-grouped:hover{background:#33415580}:root.dark .admissions-header-row{background:#3341554d;border-bottom-color:#94a3b826}:root.dark .admissions-row .muted,:root.dark .admissions-row-grouped .muted{color:#94a3b8}:root.dark .admissions-search{background:#3341554d;border-color:#94a3b826;color:#e2e8f0}:root.dark .admissions-search::placeholder{color:#64748b}:root.dark .admissions-search:focus{border-color:#94a3b84d;background:#33415566}:root.dark .admissions-status{background:#33415580;color:#94a3b8}:root.dark .admissions-status.active,:root.dark .admissions-status.enrolled{background:#22c55e26;color:#4ade80}:root.dark .admissions-status.pending{background:#fbbf2426;color:#fbbf24}:root.dark .admissions-group-header{background:#33415566;border-bottom-color:#94a3b826}@media(prefers-color-scheme:dark){:root:not(.light) .admissions-row{background:#1e293b33;border-bottom-color:#94a3b81a}:root:not(.light) .admissions-row:nth-child(2n){background:#1e293b66}:root:not(.light) .admissions-row:hover{background:#33415580}:root:not(.light) .admissions-row-grouped{background:#1e293b33;border-bottom-color:#94a3b81a}:root:not(.light) .admissions-row-grouped:nth-child(2n){background:#1e293b66}:root:not(.light) .admissions-row-grouped:hover{background:#33415580}:root:not(.light) .admissions-header-row{background:#3341554d;border-bottom-color:#94a3b826}:root:not(.light) .admissions-row .muted,:root:not(.light) .admissions-row-grouped .muted{color:#94a3b8}:root:not(.light) .admissions-search{background:#3341554d;border-color:#94a3b826;color:#e2e8f0}:root:not(.light) .admissions-search::placeholder{color:#64748b}:root:not(.light) .admissions-search:focus{border-color:#94a3b84d;background:#33415566}:root:not(.light) .admissions-status{background:#33415580;color:#94a3b8}:root:not(.light) .admissions-status.active,:root:not(.light) .admissions-status.enrolled{background:#22c55e26;color:#4ade80}:root:not(.light) .admissions-status.pending{background:#fbbf2426;color:#fbbf24}:root:not(.light) .admissions-group-header{background:#33415566;border-bottom-color:#94a3b826}:root:not(.light) .admissions-billing-cell{color:#cbd5e1}:root:not(.light) .admissions-billing-cell.billing-missing{color:#64748b}:root:not(.light) .admissions-billing-cell.billing-complete{color:#4ade80}:root:not(.light) .admissions-room-cell{color:#cbd5e1}}:root.dark .admissions-billing-cell{color:#cbd5e1}:root.dark .admissions-billing-cell.billing-missing{color:#64748b}:root.dark .admissions-billing-cell.billing-complete{color:#4ade80}:root.dark .admissions-room-cell{color:#cbd5e1}:root.dark .admissions-avatar,:root.dark .admissions-avatar-flat,:root.dark .admissions-avatar-small{background:#33415599;color:#94a3b8}@media(prefers-color-scheme:dark){:root:not(.light) .admissions-avatar,:root:not(.light) .admissions-avatar-flat,:root:not(.light) .admissions-avatar-small{background:#33415599;color:#94a3b8}}.shell>.settings-scroll-container{flex:1 1 0;min-height:0;overflow-y:auto;padding-bottom:16px;margin-bottom:-30px;background:transparent}.settings-sections{display:flex;flex-direction:column;gap:24px}.settings-card{padding:0;box-shadow:none;border:none;border-radius:20px}.settings-card-header{padding:20px 24px 0}.settings-card-header h3{font-size:var(--text-base);font-weight:700;margin:0}.settings-card-body{padding:20px 24px;display:flex;flex-direction:column;gap:20px}.settings-card-footer{padding:16px 24px;border-top:1px solid var(--border-soft);display:flex;align-items:center;justify-content:flex-end;gap:16px}.settings-footer-hint{font-size:var(--text-xs);color:var(--muted);margin-right:auto}.settings-card-footer button.primary{min-width:120px}.settings-field{display:flex;flex-direction:column;gap:6px}.settings-field label{font-size:var(--text-sm);font-weight:600;color:var(--ink)}.settings-field input,.settings-field select{padding:10px 12px;border:1px solid var(--border-medium);border-radius:8px;font-size:var(--text-sm);background:var(--surface);color:var(--ink);transition:border-color .15s ease}.settings-field input:focus,.settings-field select:focus{outline:none;border-color:var(--ink)}.settings-field input::placeholder{color:var(--muted)}.settings-field-hint{font-size:var(--text-xs);color:var(--muted)}.settings-field-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.settings-field-inline{display:flex;flex-direction:column;gap:4px}.settings-field-inline label{font-size:var(--text-xs);font-weight:500;color:var(--muted)}.settings-field-inline input{padding:10px 12px;border:1px solid var(--border-medium);border-radius:8px;font-size:var(--text-sm);background:var(--surface);color:var(--ink)}.settings-field-inline input:focus{outline:none;border-color:var(--ink)}.settings-toggle{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:12px 16px;margin:0 -16px;border-bottom:1px solid var(--border-soft);transition:background .1s ease}.settings-toggle:nth-child(2n){background:#fafbfd}.settings-toggle:hover{background:var(--surface-hover)}.settings-toggle.settings-toggle-indent{padding-left:36px;border-left:2px solid var(--border-soft);margin-left:8px}.settings-toggle:last-child{border-bottom:none}.settings-toggle:first-child{padding-top:12px}.settings-toggle-text{display:flex;flex-direction:column;gap:4px;flex:1}.settings-toggle-label{font-size:var(--text-sm);font-weight:600;color:var(--ink)}.settings-toggle-hint{font-size:var(--text-xs);color:var(--muted);line-height:1.4}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background:var(--border-medium);border-radius:24px;transition:background .2s ease}.toggle-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .2s ease;box-shadow:0 1px 3px #00000026}.toggle-switch input:checked+.toggle-slider{background:var(--ink)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 2px #0000001a}.settings-card-info{background:var(--surface-hover);border-style:dashed}.settings-card-info .settings-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.settings-info-badge{font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted);padding:4px 8px;background:var(--surface);border-radius:4px;border:1px solid var(--border-soft)}.settings-roles-list{display:flex;flex-direction:column;gap:0;margin:0 -24px}.settings-role{display:flex;flex-direction:column;gap:4px;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border-soft)}.settings-role:last-child{border-bottom:none}.settings-role:nth-child(2n){background:#fafbfd}.settings-role-name{font-size:var(--text-sm);font-weight:600;color:var(--ink)}.settings-role-desc{font-size:var(--text-xs);color:var(--muted)}.settings-roles-note{font-size:var(--text-xs);margin-top:8px}.settings-integrations-list{display:flex;flex-direction:column;gap:0;margin:0 -24px}.settings-integration{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border-soft)}.settings-integration:last-child{border-bottom:none}.settings-integration:nth-child(2n){background:#fafbfd}.settings-integration-name{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.settings-integration-status{font-size:var(--text-xs);font-weight:600;padding:4px 10px;border-radius:999px}.settings-integration-status.connected{background:#22c55e1f;color:var(--success-ink)}.settings-integration-status.coming-soon{background:var(--surface-hover);color:var(--muted);border:1px solid var(--border-soft)}.settings-card-muted{background:var(--surface)}.settings-data-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.settings-data-actions .text-button{font-size:var(--text-sm)}.settings-section-divider{height:1px;background:var(--border-soft);margin:8px 0}.settings-section-divider-danger{height:2px;background:linear-gradient(90deg,transparent,rgba(239,68,68,.3),transparent);margin:16px 0}.settings-danger-zone{border:2px solid rgba(239,68,68,.4);background:#ef44440d;margin-top:8px}.settings-danger-zone .settings-card-header{display:flex;flex-direction:column;gap:4px}.settings-danger-zone .settings-card-header h3{color:var(--danger-ink)}.settings-danger-warning{font-size:var(--text-xs);color:var(--muted);font-weight:400}.settings-danger-actions{display:flex;flex-direction:column;gap:16px}.settings-danger-action{display:flex;align-items:center;justify-content:space-between;gap:16px}.settings-danger-action>div{display:flex;flex-direction:column;gap:4px}.settings-danger-label{font-size:var(--text-sm);font-weight:600;color:var(--ink)}.settings-danger-hint{font-size:var(--text-xs);color:var(--muted)}button.danger-outline{padding:8px 16px;border:1px solid var(--danger-border);border-radius:8px;background:transparent;color:var(--danger-ink);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background .15s ease;flex-shrink:0}button.danger-outline:hover{background:#ef444414}.settings-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#ef444414;border:1px solid var(--danger-border);border-radius:8px;margin-bottom:20px;color:var(--danger-ink);font-size:var(--text-sm)}.settings-loading .settings-card{padding:24px}.skeleton-text{height:16px;background:var(--surface-hover);border-radius:4px;width:60%;margin-bottom:12px}.skeleton-text.wide{width:80%}.settings-modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.settings-modal{background:var(--surface);border-radius:12px;padding:24px;max-width:420px;width:100%;box-shadow:0 20px 40px #0003}.settings-modal h3{font-size:var(--text-lg);font-weight:700;margin:0 0 12px;color:var(--danger-ink)}.settings-modal p{font-size:var(--text-sm);color:var(--ink);line-height:1.5;margin:0 0 12px}.settings-modal-warning{color:var(--muted);font-size:var(--text-xs);margin-top:16px}.settings-modal-reassurance{color:var(--muted);font-size:var(--text-sm);margin:0 0 16px;font-style:italic}.settings-modal-reference{background:var(--surface-soft);border:1px solid var(--border-soft);border-radius:8px;padding:12px;margin-bottom:4px}.settings-modal-reference-label{display:block;font-size:var(--text-xs);color:var(--muted);margin-bottom:4px}.settings-modal-reference-value{display:block;font-size:var(--text-sm);font-weight:600;color:var(--ink)}.settings-modal-input{width:100%;padding:10px 12px;border:1px solid var(--border-medium);border-radius:8px;font-size:var(--text-sm);background:var(--surface);color:var(--ink);margin-top:8px;box-sizing:border-box}.settings-modal-input:focus{outline:none;border-color:var(--danger-border)}.settings-modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:20px}.settings-modal-actions button.secondary{padding:10px 20px;border:1px solid var(--border-medium);border-radius:8px;background:var(--surface);color:var(--ink);font-size:var(--text-sm);font-weight:600;cursor:pointer}.settings-modal-actions button.danger{padding:10px 20px;border:none;border-radius:8px;background:var(--danger-ink);color:#fff;font-size:var(--text-sm);font-weight:600;cursor:pointer}.settings-modal-actions button.danger:disabled{opacity:.5;cursor:not-allowed}.settings-tools-intro{margin-bottom:16px;font-size:var(--text-sm)}.settings-tools-list{display:flex;flex-direction:column;gap:0;margin:0 -24px}.settings-tool-item{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--border-soft)}.settings-tool-item:last-child{border-bottom:none}.settings-tool-item:nth-child(2n){background:#fafbfd}.settings-tool-info{display:flex;flex-direction:column;gap:4px;flex:1}.settings-tool-name{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.settings-tool-desc{font-size:var(--text-xs);color:var(--muted)}.settings-tool-result{font-size:var(--text-xs);padding:4px 8px;border-radius:4px;margin-top:4px}.settings-tool-result.success{background:var(--success-surface);color:var(--success-ink)}.settings-tool-result.error{background:var(--danger-surface);color:var(--danger-ink)}.settings-diag-results{margin-top:16px;padding:16px;background:var(--surface);border:1px solid var(--border-soft);border-radius:8px;font-size:var(--text-sm)}.settings-diag-summary,.settings-diag-section{margin-bottom:12px}.settings-diag-section:last-child{margin-bottom:0}.settings-diag-section ul{margin:6px 0 0;padding-left:20px;color:var(--muted)}.settings-diag-section li{margin-bottom:4px}@media(max-width:600px){.settings-field-row{grid-template-columns:1fr}.settings-danger-action{flex-direction:column;align-items:flex-start}.settings-tool-item{flex-direction:column;align-items:stretch}.settings-tool-item button{align-self:flex-start}}.settings-theme-options{display:flex;gap:12px;margin-top:4px}.settings-theme-option{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 24px;border:1px solid var(--border-soft);border-radius:12px;background:var(--surface);color:var(--muted);cursor:pointer;transition:all .15s ease;min-width:90px}.settings-theme-option:hover{border-color:var(--border-medium);color:var(--ink)}.settings-theme-option.active{border-color:var(--ink);background:var(--surface-soft);color:var(--ink)}.settings-theme-option svg{opacity:.7}.settings-theme-option.active svg{opacity:1}.settings-theme-option span{font-size:var(--text-sm);font-weight:500}@media(prefers-color-scheme:dark){:root:not(.light) .settings-theme-option{border-color:#94a3b833;color:#cbd5e1}:root:not(.light) .settings-theme-option:hover{border-color:#94a3b859;color:#f1f5f9}:root:not(.light) .settings-theme-option.active{border-color:var(--primary-border);background:#33415566;color:#f1f5f9}}:root.dark .settings-theme-option{border-color:#94a3b833;color:#cbd5e1}:root.dark .settings-theme-option:hover{border-color:#94a3b859;color:#f1f5f9}:root.dark .settings-theme-option.active{border-color:var(--primary-border);background:#33415566;color:#f1f5f9}:root.dark .settings-toggle-label{color:#e2e8f0}:root.dark .settings-toggle-hint{color:#94a3b8}:root.dark .settings-field label{color:#e2e8f0}:root.dark .settings-field input,:root.dark .settings-field select{background:#3341554d;border-color:#94a3b833;color:#e2e8f0}:root.dark .settings-field input:focus,:root.dark .settings-field select:focus{border-color:#94a3b866}@media(prefers-color-scheme:dark){:root:not(.light) .settings-field input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.8);opacity:.7}:root:not(.light) .settings-field input[type=time]::-webkit-calendar-picker-indicator:hover{opacity:1}}:root.dark .settings-field input[type=time]::-webkit-calendar-picker-indicator{filter:invert(.8);opacity:.7}:root.dark .settings-field input[type=time]::-webkit-calendar-picker-indicator:hover{opacity:1}:root.dark .settings-toggle:nth-child(2n){background:#1e293b4d}:root.dark .settings-role:nth-child(2n){background:#1e293b4d}:root.dark .settings-integration:nth-child(2n){background:#1e293b4d}:root.dark .settings-tool-item:nth-child(2n){background:#1e293b4d}:root.dark .settings-role{border-bottom-color:#94a3b81a}:root.dark .settings-integration{border-bottom-color:#94a3b81a}:root.dark .settings-tool-item{border-bottom-color:#94a3b81a}@media(prefers-color-scheme:dark){:root:not(.light) .settings-toggle:nth-child(2n){background:#1e293b4d}:root:not(.light) .settings-role:nth-child(2n){background:#1e293b4d}:root:not(.light) .settings-integration:nth-child(2n){background:#1e293b4d}:root:not(.light) .settings-tool-item:nth-child(2n){background:#1e293b4d}:root:not(.light) .settings-role{border-bottom-color:#94a3b81a}:root:not(.light) .settings-integration{border-bottom-color:#94a3b81a}:root:not(.light) .settings-tool-item{border-bottom-color:#94a3b81a}:root:not(.light) .settings-toggle{border-bottom-color:#94a3b81a}:root:not(.light) .settings-modal{background:#1e293b}:root:not(.light) .settings-modal-reference{background:#1e293b80;border-color:#94a3b826}:root:not(.light) .settings-modal-input{background:#3341554d;border-color:#94a3b833;color:#e2e8f0}:root:not(.light) .settings-modal-actions button.secondary{background:#33415566;border-color:#94a3b833;color:#e2e8f0}:root:not(.light) .toggle-slider{background:#33415580}:root:not(.light) .toggle-switch input:checked+.toggle-slider{background:var(--primary)}:root:not(.light) .settings-info-badge{background:#33415580;border-color:#94a3b833;color:#94a3b8}:root:not(.light) .settings-integration-status.coming-soon{background:#33415580;border-color:#94a3b833}:root:not(.light) .settings-diag-results{background:#1e293b66;border-color:#94a3b826}:root:not(.light) .settings-danger-zone{background:#ef444414;border-color:#ef44444d}}:root.dark .settings-toggle{border-bottom-color:#94a3b81a}:root.dark .settings-modal{background:#1e293b}:root.dark .settings-modal-reference{background:#1e293b80;border-color:#94a3b826}:root.dark .settings-modal-input{background:#3341554d;border-color:#94a3b833;color:#e2e8f0}:root.dark .settings-modal-actions button.secondary{background:#33415566;border-color:#94a3b833;color:#e2e8f0}:root.dark .toggle-slider{background:#33415580}:root.dark .toggle-switch input:checked+.toggle-slider{background:var(--primary)}:root.dark .settings-info-badge{background:#33415580;border-color:#94a3b833;color:#94a3b8}:root.dark .settings-integration-status.coming-soon{background:#33415580;border-color:#94a3b833}:root.dark .settings-diag-results{background:#1e293b66;border-color:#94a3b826}:root.dark .settings-danger-zone{background:#ef444414;border-color:#ef44444d}.shell>.events-scroll-container{flex:1 1 0;min-height:0;overflow-y:auto;padding-bottom:16px;margin-bottom:-30px;background:transparent}.events-card{padding:0;flex:1;min-height:0;border:none;box-shadow:none;overflow:hidden;border-radius:20px}.events-error{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#ef444414;border:1px solid var(--danger-border);border-radius:8px;margin-bottom:20px;color:var(--danger-ink);font-size:var(--text-sm)}.events-loading{padding:24px}.events-loading .skeleton-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--border-soft)}.events-loading .skeleton-row:last-child{border-bottom:none}.events-loading .skeleton-text{height:16px;background:var(--surface-hover);border-radius:4px}.events-loading .skeleton-text.short{width:60%}.events-empty{padding:48px 24px;text-align:center}.events-empty p{margin:0}.events-empty p:first-child{font-weight:600;font-size:var(--text-base);margin-bottom:4px}.events-empty .primary{margin-top:16px}.events-table-wrapper{flex:1;min-height:0;overflow-y:auto;background:var(--surface);display:flex;flex-direction:column}.events-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);background:var(--surface)}.events-table th,.events-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--border-soft)}.events-table th{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:var(--surface)}.events-table tbody tr{background:var(--surface);transition:background .1s ease}.events-table tbody tr:nth-child(2n):not(.section-divider-row):not(.inactive-row){background:#fafbfd}.events-table tbody tr:last-child td{border-bottom:none}.events-table tbody tr:hover:not(.section-divider-row){background:var(--surface-hover)}.events-footer-count{display:block;text-align:center;font-size:11px;color:var(--muted-soft);padding:10px 16px;opacity:.6;border-top:1px solid var(--border-subtle)}.event-name-cell{display:flex;flex-direction:column;gap:2px}.event-name-cell strong{font-weight:600}.event-desc{font-size:var(--text-xs);line-height:1.4}.actions-col{width:140px}.actions-cell{white-space:nowrap;opacity:0;transition:opacity .15s ease}.events-table tbody tr:hover .actions-cell{opacity:1}.action-divider{color:var(--muted);margin:0 4px}.status-badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.02em}.status-badge.active{background:#22c55e1f;color:var(--success-ink)}.status-badge.inactive{background:var(--surface-hover);color:var(--muted);border:1px solid var(--border-soft)}.inactive-row{opacity:.6}.section-divider-row td{padding:8px 16px;background:var(--surface-hover);border-bottom:1px solid var(--border-soft)}.events-modal{max-width:480px}.events-modal .modal-close{width:28px;height:28px;border:none;background:transparent;font-size:1.125rem;color:var(--muted);cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;outline:none;-webkit-tap-highlight-color:transparent}.events-modal .modal-close:hover{background:var(--surface-muted)}.events-modal .modal-close:focus-visible{outline:2px solid var(--primary-ink);outline-offset:2px}.events-modal .required{color:var(--danger-ink);opacity:.6;font-weight:400}.form-error{padding:10px 12px;background:#ef444414;border:1px solid var(--danger-border);border-radius:8px;color:var(--danger-ink);font-size:var(--text-sm)}.form-field-group{display:grid;gap:6px}.form-label{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.scope-options{display:flex;gap:16px}.radio-row{display:flex;align-items:center;gap:8px;font-size:var(--text-sm);cursor:pointer;-webkit-tap-highlight-color:transparent;outline:none}.radio-row input[type=radio]{width:16px;height:16px;flex-shrink:0;cursor:pointer;accent-color:var(--primary-ink);outline:none;box-shadow:none;-webkit-tap-highlight-color:transparent}.radio-row input[type=radio]:focus{outline:none;box-shadow:none}.scope-hint{margin:4px 0 0;font-size:var(--text-xs)}.classroom-picker{display:flex;flex-direction:column;gap:4px;max-height:160px;overflow-y:auto;margin-top:4px}.room-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--surface);border:1px solid var(--border-soft);border-radius:8px;cursor:pointer;text-align:left;font-family:inherit;font-size:inherit;transition:background .12s ease,border-color .12s ease;outline:none;-webkit-tap-highlight-color:transparent}.room-row:focus-visible{outline:2px solid var(--primary-ink);outline-offset:2px}.room-row:hover{background:var(--surface-muted);border-color:var(--border-medium)}.room-row.selected{background:var(--primary-soft);border-color:var(--primary-border)}.room-info{display:flex;flex-direction:column;gap:2px}.room-name{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.room-meta{font-size:var(--text-xs);color:var(--muted)}.room-check{font-size:var(--text-base);color:var(--primary-ink);font-weight:600}.room-row-select-all{font-weight:500}.picker-divider{height:1px;background:var(--border-soft);margin:4px 0}.confirm-modal{max-width:400px}.confirm-modal .modal-close{width:28px;height:28px;border:none;background:transparent;font-size:1.125rem;color:var(--muted);cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;outline:none;-webkit-tap-highlight-color:transparent}.confirm-modal .modal-close:hover{background:var(--surface-muted)}.confirm-modal .modal-form p{font-size:var(--text-sm);line-height:1.5;margin:0}@media(max-width:900px){.events-table th,.events-table td{padding:10px 12px}.events-table th:nth-child(3),.events-table td:nth-child(3){display:none}.actions-col{width:auto}.events-empty{padding:32px 16px}.events-modal{max-width:100%;margin:16px}.scope-options{flex-direction:column;gap:10px}.classroom-picker{max-height:200px}}@media(prefers-color-scheme:dark){:root:not(.light) .events-table th{color:#94a3b8;background:#3341554d}:root:not(.light) .events-table tbody tr:nth-child(2n):not(.section-divider-row):not(.inactive-row){background:#1e293b4d}}:root.dark .events-table th{color:#94a3b8;background:#3341554d}:root.dark .events-table tbody tr:nth-child(2n):not(.section-divider-row):not(.inactive-row){background:#1e293b4d}:root.dark .events-footer-count{color:#94a3b8;opacity:.8;background:#33415540;border-top:1px solid rgba(148,163,184,.1)}:root.dark .events-table tbody tr{background:#1e293b33}:root.dark .events-table td{border-bottom-color:#94a3b81a}:root.dark .events-table tbody tr:hover:not(.section-divider-row){background:#33415580}:root.dark .section-divider-row td{background:#33415566;border-bottom-color:#94a3b826}:root.dark .status-badge.active{background:#22c55e26;color:#4ade80}:root.dark .status-badge.inactive{background:#33415580;color:#94a3b8;border-color:#94a3b833}:root.dark .events-modal .modal-close:hover{background:#33415580}:root.dark .room-row{background:#1e293b66;border-color:#94a3b826}:root.dark .room-row:hover{background:#33415580;border-color:#94a3b840}:root.dark .room-row.selected{background:#6366f126;border-color:#6366f14d}:root.dark .room-name{color:#e2e8f0}:root.dark .room-meta{color:#94a3b8}:root.dark .picker-divider{background:#94a3b826}@media(prefers-color-scheme:dark){:root:not(.light) .events-table tbody tr{background:#1e293b33}:root:not(.light) .events-table td{border-bottom-color:#94a3b81a}:root:not(.light) .events-table tbody tr:hover:not(.section-divider-row){background:#33415580}:root:not(.light) .section-divider-row td{background:#33415566;border-bottom-color:#94a3b826}:root:not(.light) .status-badge.active{background:#22c55e26;color:#4ade80}:root:not(.light) .status-badge.inactive{background:#33415580;color:#94a3b8;border-color:#94a3b833}:root:not(.light) .room-row{background:#1e293b66;border-color:#94a3b826}:root:not(.light) .room-row:hover{background:#33415580;border-color:#94a3b840}:root:not(.light) .room-row.selected{background:#6366f126;border-color:#6366f14d}:root:not(.light) .room-name{color:#e2e8f0}:root:not(.light) .room-meta{color:#94a3b8}}.shell>.billing-scroll-container{flex:1 1 0;min-height:0;overflow-y:auto;padding-bottom:16px;margin-bottom:-42px;background:transparent}.billing-loading{padding:24px}.billing-summary-skeleton{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.billing-summary-skeleton .skeleton-card{height:100px;background:var(--surface-soft, #f5f5f5);border-radius:12px;animation:skeleton-pulse 1.5s ease-in-out infinite}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.5}}.billing-table-skeleton{padding:0;background:var(--surface, #fff)}.billing-skeleton-row{display:flex;gap:16px;padding:16px 20px;border-top:1px solid var(--border-softest, #f0f0f0);background:var(--surface, #fff)}.billing-skeleton-row:first-child{border-top:none}.billing-skeleton-cell{height:16px;background:linear-gradient(90deg,var(--surface-soft, #f0f0f0) 25%,var(--surface-hover, #e8e8e8) 50%,var(--surface-soft, #f0f0f0) 75%);background-size:200% 100%;border-radius:4px;animation:skeleton-shimmer 1.5s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.billing-empty{padding:48px 24px;text-align:center;color:var(--text-muted, #666)}.billing-empty-filtered{display:flex;flex-direction:column;align-items:center;padding:48px 24px;text-align:center;background:#f9fafb;border-radius:10px;border:1px solid #eceef2}.billing-empty-icon{color:var(--border, #c8ccd4);opacity:.6;margin-bottom:14px}.billing-empty-title{margin:0 0 4px;font-size:17px;font-weight:600;color:var(--text-primary, #1a1a1a)}.billing-empty-description{margin:0;font-size:14px;color:var(--text-muted, #666);max-width:300px;line-height:1.45}.billing-empty-description strong{font-weight:600;color:var(--text-primary, #1a1a1a);text-transform:capitalize}.billing-empty-actions{display:flex;align-items:center;gap:10px;margin-top:16px}.billing-empty-clear-btn{padding:9px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.billing-empty-new-btn{padding:9px 16px;background:var(--surface, #fff);border:1px solid var(--border-soft, #e5e5e5);border-radius:8px;font-size:14px;font-weight:500;color:var(--text-muted, #666);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.billing-empty-new-btn:hover{background:var(--surface-soft, #fafafa);border-color:var(--border, #d0d0d0);color:var(--text-primary, #1a1a1a)}.billing-stripe-banner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px;margin:0 24px 24px;background:linear-gradient(135deg,#635bff10,#635bff05);border:1px solid #635bff30;border-radius:12px}.billing-stripe-banner-content{display:flex;align-items:flex-start;gap:16px}.billing-stripe-banner-content svg{flex-shrink:0;color:#635bff}.billing-stripe-banner-content strong{display:block;margin-bottom:4px;color:var(--text-primary, #1a1a1a)}.billing-stripe-banner-content p{margin:0;font-size:14px;color:var(--text-muted, #666)}.billing-stripe-banner .primary{flex-shrink:0;background:#635bff;border-color:#635bff}.billing-stripe-banner .primary:hover{background:#4f46e5;border-color:#4f46e5}.billing-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.billing-summary-card{padding:20px;background:var(--surface, #fff);border:1px solid var(--border-soft, #e5e5e5);border-radius:12px;position:relative}.billing-summary-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--border-medium, #ddd);border-radius:12px 12px 0 0;opacity:0}.billing-summary-label{display:flex;align-items:center;gap:6px;margin-bottom:8px;font-size:13px;color:var(--text-muted, #666)}.billing-info-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted, #999);opacity:.5;cursor:help;transition:opacity .15s,color .15s}.billing-info-icon:hover{opacity:1;color:var(--text-secondary, #666)}.billing-summary-refresh{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;color:var(--text-muted, #999);border-radius:4px;cursor:pointer;opacity:.6;transition:opacity .15s,color .15s,background .15s}.billing-summary-refresh:hover{opacity:1;color:var(--text-primary, #333);background:var(--surface-soft, #f0f0f0)}.billing-summary-refresh:disabled{cursor:default;opacity:.4}.billing-summary-refresh svg.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.billing-summary-value{display:block;font-size:28px;font-weight:700;color:var(--ink, #1a1a1a);line-height:1.2}.billing-summary-value.billing-summary-accent{color:var(--primary, #4f46e5)}.billing-summary-value.billing-summary-warning{color:var(--warning-ink, #d97706)}.billing-summary-value.billing-summary-danger{color:var(--danger-ink, #ef4444)}.billing-summary-subtext{display:block;margin-top:4px;font-size:12px;color:var(--text-muted, #888)}.billing-summary-subtext.billing-summary-muted{color:var(--text-muted, #aaa);font-style:italic}.billing-summary-updated{margin:8px 0 0;font-size:11px;color:var(--text-muted, #999);text-align:right}.billing-quick-action{display:flex;justify-content:flex-start;gap:12px;margin-bottom:16px}.billing-quick-action .primary,.billing-quick-action .secondary{display:flex;align-items:center;gap:8px;padding:12px 20px;font-size:var(--text-sm, 14px)}.billing-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border-soft, #e5e5e5)}.billing-tab{display:flex;align-items:center;gap:8px;padding:12px 16px;background:none;border:none;border-bottom:2px solid transparent;font-size:var(--text-sm, 14px);font-weight:500;color:var(--muted, #666);cursor:pointer;transition:color .15s,border-color .15s}.billing-tab:hover{color:var(--ink, #1a1a1a)}.billing-tab.active{color:var(--primary-ink, #2563eb);border-bottom-color:var(--primary-ink, #2563eb)}.billing-tab-count{padding:2px 8px;background:var(--surface-soft, #f5f5f5);border-radius:10px;font-size:var(--text-xs, 12px);font-weight:500;color:var(--muted, #666)}.billing-tab.active .billing-tab-count{background:var(--primary-soft, #eff6ff);color:var(--primary-ink, #2563eb)}.billing-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:20px}.billing-search{display:flex;align-items:center;gap:8px;flex:1;padding:10px 14px;border-radius:10px;border:1px solid var(--border-soft, #e5e5e5);background:var(--surface-muted);transition:border-color .15s ease,background .15s ease}.billing-search svg{flex-shrink:0;color:var(--muted, #888)}.billing-search input{flex:1;padding:4px 0;border:none;background:transparent;font-size:var(--text-sm, 14px);color:var(--ink, #1a1a1a);outline:none}.billing-search input::placeholder{color:var(--muted, #888)}.billing-search:focus-within{border-color:var(--border-medium);background:var(--surface)}.billing-search-clear{padding:2px 6px;background:none;border:none;font-size:16px;color:var(--muted, #888);cursor:pointer;line-height:1}.billing-search-clear:hover{color:var(--ink, #1a1a1a)}.billing-filters{display:flex;gap:8px}.billing-filter-select .custom-select-trigger{padding:12px 18px;font-size:13px;font-weight:600;border-radius:10px;border-color:var(--border-soft, #e0e0e0)}.billing-new-btn{margin-left:auto;display:flex;align-items:center;gap:6px}.billing-content{display:flex;flex-direction:column;flex:1;min-height:0}.billing-table-container{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;background:var(--surface, #fff);border:1px solid var(--border-soft, #e5e5e5);border-radius:16px;box-shadow:0 4px 12px #0f172a0f}.billing-table{display:grid;gap:0;padding:0;border-radius:0;background:var(--surface, #fff);border:none;align-content:start;flex:1}.billing-footer-count{display:block;text-align:center;font-size:11px;color:var(--muted-soft, #999);padding:10px 16px;opacity:.6;border-top:1px solid var(--border-subtle)}.billing-row{display:grid;grid-template-columns:1.4fr 1.2fr .5fr .8fr .8fr .7fr;gap:12px;padding:12px 20px;align-items:center;font-size:var(--text-sm, 14px);background:var(--surface, #fff);border:none;border-top:1px solid var(--border-softest, #f0f0f0)}.billing-row:nth-child(2n){background:#fafbfd}:root.dark .billing-row:nth-child(2n){background:#1e293b4d}.billing-header-row{display:grid;grid-template-columns:1.4fr 1.2fr .5fr .8fr .8fr .7fr;gap:12px;padding:16px 20px;font-size:var(--text-xs, 12px);text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ink-subtle);background:var(--surface-muted);border-top:none;border-bottom:2px solid var(--border-medium)}.billing-table-invoices .billing-header-invoices,.billing-table-invoices .billing-row-invoices{grid-template-columns:1fr 1.2fr .8fr .8fr .8fr .8fr .8fr}.billing-table-payments .billing-header-payments,.billing-table-payments .billing-row-payments{grid-template-columns:.9fr 1.2fr .9fr .8fr .7fr .7fr}.billing-row-clickable{cursor:pointer;transition:background-color .15s ease}.billing-row-clickable:hover{background:var(--surface-hover, #fafafa)}.billing-row-clickable:focus{outline:none;background:#6366f114;box-shadow:inset 3px 0 0 var(--primary, #2563eb)}.billing-row-clickable:focus-visible{box-shadow:inset 3px 0 0 var(--primary, #2563eb),inset 0 0 0 2px var(--primary-soft, #eff6ff)}.billing-row-clickable.is-selected{background:#6366f114;box-shadow:inset 3px 0 0 var(--primary, #2563eb)}.billing-name-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.billing-name{font-weight:600;font-size:var(--text-sm, 14px);color:var(--ink, #1a1a1a)}.billing-row.is-unlinked{background:var(--warning-soft, #fffbeb)}.billing-row.is-unlinked:hover{background:var(--warning-soft-hover, #fef3c7)}.billing-unlinked-badge{display:inline-block;padding:2px 6px;background:var(--warning-soft, #fef3c7);border:1px solid var(--warning-border, #fcd34d);border-radius:4px;font-size:10px;font-weight:600;color:var(--warning-ink, #92400e);text-transform:uppercase}.billing-email{font-size:var(--text-xs, 12px);color:var(--muted, #888)}.billing-invoice-number{font-size:var(--text-sm, 14px);font-weight:600;color:var(--ink, #1a1a1a)}.billing-balance-warning{color:var(--warning, #f59e0b);font-weight:500}.billing-date-overdue{color:var(--danger, #ef4444);font-weight:500}.billing-method{text-transform:capitalize;font-size:var(--text-sm, 14px);color:var(--muted-strong, #666)}.billing-status{display:flex;align-items:center}.billing-actions{display:flex;gap:8px}.billing-action-btn{padding:6px 12px;background:var(--surface-soft, #f5f5f5);border:1px solid var(--border-soft, #e5e5e5);border-radius:6px;font-size:13px;font-weight:500;color:var(--text-primary, #1a1a1a);cursor:pointer;transition:background .15s,border-color .15s;display:inline-flex;align-items:center;justify-content:center;gap:6px}.billing-action-btn:hover:not(:disabled){background:var(--surface, #fff);border-color:var(--border, #d0d0d0)}.billing-action-btn:disabled{opacity:.5;cursor:not-allowed}.billing-action-btn.is-sending{display:inline-flex;align-items:center;gap:6px;min-width:72px}.billing-btn-spinner{width:14px;height:14px;border:2px solid var(--border-soft, #e5e5e5);border-top-color:var(--ink, #1a1a1a);border-radius:50%;animation:billing-spin .7s linear infinite}.billing-btn-spinner-light{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:billing-spin .7s linear infinite}.primary .billing-btn-spinner,button.primary .billing-btn-spinner{border-color:#ffffff4d;border-top-color:#fff}@keyframes billing-spin{to{transform:rotate(360deg)}}.billing-status .status-label{display:inline-block;padding:4px 10px;border-radius:6px;font-size:var(--text-xs, 12px);font-weight:600;text-transform:capitalize}.billing-status .status-label.status-active{background:var(--success-soft, #dcfce7);color:var(--success-ink, #16a34a)}.billing-status .status-label.status-inactive,.billing-status .status-label.status-draft{background:var(--surface-hover, #f5f5f5);color:var(--muted, #666)}.billing-status .status-label.status-open{background:var(--surface-muted, #fafafa);border:1px solid var(--border-soft, #e5e5e5);color:var(--muted-strong, #555)}.billing-status .status-label.status-sent{background:var(--primary-soft, #eff6ff);color:var(--primary-ink, #2563eb)}.billing-status .status-label.status-paid{background:var(--success-soft, #dcfce7);color:var(--success-ink, #16a34a)}.billing-status .status-label.status-overdue{background:var(--danger-soft, #fef2f2);color:var(--danger-ink, #ef4444)}.billing-status .status-label.status-void{background:var(--surface-hover, #f5f5f5);color:var(--muted, #888);text-decoration:line-through}.billing-status .status-label.status-pending{background:var(--warning-soft, #fffbeb);color:var(--warning-ink, #d97706)}.billing-status .status-label.status-completed{background:var(--success-soft, #dcfce7);color:var(--success-ink, #16a34a)}.billing-status .status-label.status-failed{background:var(--danger-soft, #fef2f2);color:var(--danger-ink, #ef4444)}.billing-status .status-label.status-refunded{background:var(--info-soft, #f0f9ff);color:var(--info, #0ea5e9)}.billing-modal-backdrop{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.billing-modal{width:90%;max-width:520px;max-height:90vh;background:var(--surface, #fff);border-radius:16px;box-shadow:0 20px 60px #0003;overflow:hidden;display:flex;flex-direction:column}.billing-modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border-soft, #e5e5e5)}.billing-modal-header-content{display:flex;flex-direction:column;gap:4px}.billing-modal-header h3{margin:0;font-size:18px;font-weight:600;color:var(--text-primary, #1a1a1a)}.billing-modal-subtitle{font-size:13px;color:var(--muted, #888)}.billing-modal-close{padding:8px;background:none;border:none;font-size:24px;line-height:1;color:var(--text-muted, #888);cursor:pointer}.billing-modal-close:hover{color:var(--text-primary, #1a1a1a)}.billing-modal-body{flex:1;padding:24px;overflow-y:auto}.billing-modal-error{padding:12px 16px;margin-bottom:16px;background:var(--danger-soft, #fef2f2);border:1px solid var(--danger, #ef4444)20;border-radius:8px;font-size:14px;color:var(--danger, #ef4444)}.billing-modal-footer{display:flex;flex-direction:column;gap:12px;padding:16px 24px;border-top:1px solid var(--border-soft, #e5e5e5);background:var(--surface-soft, #fafafa)}.billing-modal-footer-info{display:flex;flex-direction:column;gap:4px}.billing-modal-footer-hint{font-size:12px;color:var(--muted, #888)}.billing-modal-footer-stripe-notice{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--warning-ink, #d97706);background:var(--warning-soft, #fffbeb);padding:6px 10px;border-radius:6px;margin-top:4px}.billing-modal-footer-stripe-notice svg{flex-shrink:0}.billing-modal-footer-actions{display:flex;justify-content:flex-end;gap:12px}.billing-modal-footer-actions .primary{display:inline-flex;align-items:center;justify-content:center;gap:6px}.billing-discard-btn{padding:8px 14px;background:none;border:none;font-size:14px;font-weight:500;color:var(--muted, #888);cursor:pointer;border-radius:6px;transition:color .15s,background .15s}.billing-discard-btn:hover{color:var(--ink, #1a1a1a);background:var(--surface-hover, #f5f5f5)}.billing-form-field{margin-bottom:20px}.billing-form-field label{display:block;margin-bottom:6px;font-size:13px;font-weight:500;color:var(--text-muted, #666)}.billing-form-helper{display:block;margin-bottom:8px;font-size:11px;color:var(--muted, #888)}.billing-form-field input,.billing-form-field select,.billing-form-field textarea{width:100%;padding:10px 12px;background:var(--surface, #fff);border:1px solid var(--border-soft, #e5e5e5);border-radius:8px;font-size:14px;color:var(--text-primary, #1a1a1a)}.billing-form-field input:focus,.billing-form-field select:focus,.billing-form-field textarea:focus{outline:none;border-color:var(--primary, #2563eb);box-shadow:0 0 0 3px var(--primary-soft, #eff6ff)}.billing-form-field textarea{resize:vertical;min-height:80px}.billing-form-field input[type=date]{cursor:pointer;color-scheme:light;padding:10px 12px;border:1px solid var(--border-medium, #d4d4d4);border-radius:10px;font-size:var(--text-sm, 14px);font-weight:500;background:var(--surface);color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease}.billing-form-field input[type=date]:hover{border-color:var(--border-strong, #a3a3a3)}.billing-form-field input[type=date]:focus{outline:none;border-color:var(--primary, #2563eb);box-shadow:0 0 0 3px var(--primary-soft, rgba(37, 99, 235, .1))}.billing-form-field input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;padding:4px;margin-right:-4px;border-radius:6px;opacity:.5;transition:opacity .15s,background .15s}.billing-form-field input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:.8;background:var(--surface-hover, #f5f5f5)}.billing-line-items{display:flex;flex-direction:column;gap:12px}.billing-line-item{display:flex;gap:12px;align-items:center}.billing-line-item input[type=text]{flex:1}.billing-line-item-amount{position:relative;width:120px}.billing-currency-prefix{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted, #888);pointer-events:none}.billing-line-item-amount input{width:100%;padding-left:24px}.billing-line-item-remove{padding:8px;background:none;border:none;font-size:18px;color:var(--text-muted, #888);cursor:pointer}.billing-line-item-remove:hover{color:var(--danger, #ef4444)}.billing-add-line-item{padding:10px;background:var(--surface-soft, #f5f5f5);border:1px dashed var(--border, #d0d0d0);border-radius:8px;font-size:14px;color:var(--text-muted, #666);cursor:pointer;transition:background .15s,border-color .15s}.billing-add-line-item:hover{background:var(--surface, #fff);border-color:var(--primary, #2563eb);color:var(--primary, #2563eb)}.billing-line-items-loading,.billing-line-items-empty{padding:16px;background:var(--surface-soft, #f8fafc);border:1px dashed var(--border-soft, #e2e8f0);border-radius:8px;text-align:center;margin-bottom:12px}.billing-line-items-loading-text{font-size:13px;color:var(--text-muted, #64748b)}.billing-line-items-empty-text{display:block;font-size:13px;color:var(--text-muted, #64748b)}.billing-line-items-empty-hint{display:block;font-size:12px;color:var(--text-muted, #94a3b8);margin-top:4px}.billing-line-item-group{display:flex;flex-direction:column;gap:6px}.billing-line-item-group+.billing-line-item-group{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-soft, #e5e5e5)}.billing-line-item-group-header{font-size:12px;font-weight:600;color:var(--text-muted, #64748b);padding:0 4px 4px;text-transform:uppercase;letter-spacing:.02em}.billing-line-item-computed{background:var(--surface-soft, #f8fafc);border:1px solid var(--border-soft, #e2e8f0);border-radius:8px;padding:10px 12px}.billing-line-item-computed .billing-line-item-description{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.billing-line-item-description-text{font-size:14px;color:var(--text, #1e293b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.billing-line-item-computed .billing-line-item-amount{width:auto}.billing-line-item-amount-value{font-size:14px;font-weight:600;color:var(--text, #1e293b)}.billing-line-item-badge{display:inline-block;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;flex-shrink:0}.billing-line-item-badge.one-time{background:var(--info-soft, #dbeafe);color:var(--info-ink, #1e40af)}.billing-line-item-badge.recurring{background:var(--success-soft, #dcfce7);color:var(--success-ink, #166534)}.billing-form-helper-pricing{margin-top:8px;font-style:italic}.billing-missing-billing-warning{background:var(--warning-soft, #fef3c7);border:1px solid var(--warning-border, #fcd34d);border-radius:8px;padding:12px;margin-top:8px;margin-bottom:16px}.billing-missing-billing-header{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--warning-ink, #92400e);margin-bottom:8px}.billing-missing-billing-header svg{color:var(--warning-ink, #d97706);flex-shrink:0}.billing-missing-billing-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.billing-missing-billing-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;background:var(--surface, #fff);border-radius:6px}.billing-missing-billing-name{font-size:13px;color:var(--text, #1e293b)}.billing-missing-billing-cta{font-size:12px;font-weight:500;color:var(--primary, #2563eb);background:none;border:none;padding:4px 8px;cursor:pointer;border-radius:4px;transition:background-color .15s}.billing-missing-billing-cta:hover{background:var(--primary-soft, #dbeafe)}.billing-missing-billing-footnote{margin:8px 0 0;font-size:11px;color:var(--warning-ink, #92400e);opacity:.8}.billing-missing-billing-warning.is-valid{background:var(--surface-soft, #fafafa);border-color:var(--border-soft, #e5e5e5)}.billing-missing-billing-warning.is-valid .billing-missing-billing-header{color:var(--text-muted, #64748b)}.billing-missing-billing-warning.is-valid .billing-missing-billing-header svg{color:var(--text-muted, #94a3b8)}.billing-missing-billing-warning.is-valid .billing-missing-billing-footnote{color:var(--success, #16a34a);font-weight:500}.billing-family-select{position:relative}.billing-family-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;background:var(--surface, #fff);border:1px solid var(--border-soft, #e5e5e5);border-radius:8px;font-size:14px;text-align:left;cursor:pointer;transition:border-color .15s}.billing-family-trigger:hover{border-color:var(--border, #d0d0d0)}.billing-family-trigger:focus{outline:none;border-color:var(--primary, #2563eb);box-shadow:0 0 0 3px var(--primary-soft, #eff6ff)}.billing-family-trigger svg{flex-shrink:0;color:var(--muted, #888);transition:transform .15s}.billing-family-trigger-placeholder{color:var(--muted, #888)}.billing-family-trigger-value{color:var(--ink, #1a1a1a);font-weight:500}.billing-family-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--surface, #fff);border:1px solid var(--border-soft, #e5e5e5);border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:10;overflow:hidden}.billing-family-filter{padding:8px;border-bottom:1px solid var(--border-softest, #f0f0f0)}.billing-family-filter-input{width:100%;padding:8px 10px;border:1px solid var(--border-soft, #e5e5e5);border-radius:6px;font-size:13px;color:var(--ink, #1a1a1a);background:var(--surface-soft, #fafafa)}.billing-family-filter-input:focus{outline:none;border-color:var(--primary, #2563eb);background:var(--surface, #fff)}.billing-family-filter-input::placeholder{color:var(--muted, #888)}.billing-family-options{max-height:220px;overflow-y:auto}.billing-family-dropdown-empty{padding:16px;text-align:center;font-size:13px;color:var(--muted, #888)}.billing-family-option{display:flex;align-items:center;width:100%;padding:10px 12px;background:none;border:none;border-bottom:1px solid var(--border-softest, #f0f0f0);text-align:left;cursor:pointer;transition:background .1s}.billing-family-option:last-child{border-bottom:none}.billing-family-option:hover{background:var(--surface-hover, #fafafa)}.billing-family-option.is-selected{background:var(--primary-soft, #eff6ff)}.billing-family-option.is-selected .billing-family-option-name{color:var(--primary-ink, #2563eb)}.billing-family-option-name{font-size:14px;font-weight:500;color:var(--ink, #1a1a1a)}.billing-family-locked{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--surface-soft, #fafafa);border:1px solid var(--border-soft, #e5e5e5);border-radius:8px}.billing-family-locked-name{font-size:14px;font-weight:500;color:var(--ink, #1a1a1a)}.billing-family-change-btn{padding:4px 10px;background:none;border:none;font-size:13px;font-weight:500;color:var(--primary-ink, #2563eb);cursor:pointer;border-radius:4px;transition:background .15s}.billing-family-change-btn:hover{background:var(--primary-soft, #eff6ff)}.billing-family-cancel-change{display:block;margin-top:8px;padding:0;background:none;border:none;font-size:13px;color:var(--muted, #888);cursor:pointer}.billing-family-cancel-change:hover{color:var(--ink, #1a1a1a);text-decoration:underline}.billing-invoice-total{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;margin:16px -24px 0;background:var(--surface-soft, #fafafa);border-top:2px solid var(--border-soft, #e5e5e5)}.billing-invoice-total-label{font-size:14px;font-weight:600;color:var(--muted-strong, #666);text-transform:uppercase;letter-spacing:.04em}.billing-invoice-total-value{font-size:24px;font-weight:700;color:var(--ink, #1a1a1a)}.billing-drawer{position:fixed;top:calc(72px + env(safe-area-inset-top,0px));right:0;bottom:calc(44px + env(safe-area-inset-bottom,0px));width:420px;max-width:100%;background:var(--surface, #fff);box-shadow:-4px 0 24px #0000001a;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:100}.invoice-drawer.billing-drawer{z-index:2000;width:min(440px,100vw - 2rem);border-radius:16px 0 0 16px;box-shadow:-8px 0 32px #00000026;animation:invoiceSlideIn .2s ease-out}@keyframes invoiceSlideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.billing-drawer .drawer-header{display:flex;align-items:flex-start;justify-content:space-between;padding:24px;border-bottom:1px solid var(--border-soft, #e5e5e5)}.billing-drawer .drawer-header.editing{background:var(--surface-soft, #fafafa);padding-top:20px;padding-bottom:16px;align-items:center}.billing-drawer .drawer-header-content{flex:1;min-width:0}.billing-drawer .drawer-header-main{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.billing-drawer .drawer-header-main h2{margin:0;font-size:20px;font-weight:600;color:var(--text-primary, #1a1a1a)}.billing-drawer .drawer-header-meta{margin-top:8px}.billing-drawer .drawer-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.billing-drawer .drawer-close{padding:8px;background:none;border:none;font-size:24px;line-height:1;color:var(--text-muted, #888);cursor:pointer}.billing-drawer .drawer-close:hover{color:var(--text-primary, #1a1a1a)}.billing-drawer .drawer-content{flex:1;padding:24px;overflow-y:auto}.billing-name-input{width:100%;padding:8px 12px;background:var(--surface, #fff);border:1px solid var(--border-soft, #e5e5e5);border-radius:8px;font-size:18px;font-weight:600;color:var(--text-primary, #1a1a1a)}.billing-name-input:focus{outline:none;border-color:var(--primary, #2563eb);box-shadow:0 0 0 3px var(--primary-soft, #eff6ff)}.billing-edit-btn,.billing-cancel-btn,.billing-save-btn{padding:8px 14px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.billing-edit-btn{display:flex;align-items:center;gap:6px;background:var(--surface-soft, #f5f5f5);border:1px solid var(--border-soft, #e5e5e5);color:var(--text-primary, #1a1a1a)}.billing-edit-btn:hover{background:var(--surface, #fff);border-color:var(--border, #d0d0d0)}.billing-cancel-btn{background:var(--surface, #fff);border:1px solid var(--border-soft, #e5e5e5);color:var(--text-primary, #1a1a1a)}.billing-cancel-btn:hover:not(:disabled){background:var(--surface-soft, #f5f5f5)}.billing-save-btn{background:var(--primary, #2563eb);border:1px solid var(--primary, #2563eb);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:6px}.billing-save-btn .billing-btn-spinner{border-color:#ffffff4d;border-top-color:#fff}.billing-save-btn:hover:not(:disabled){background:var(--primary-dark, #1d4ed8);border-color:var(--primary-dark, #1d4ed8)}.billing-save-btn:disabled,.billing-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.billing-save-error{padding:12px 16px;margin-bottom:16px;background:var(--danger-soft, #fef2f2);border:1px solid var(--danger, #ef4444)20;border-radius:8px;font-size:14px;color:var(--danger, #ef4444)}.billing-balance{font-size:14px;color:var(--text-muted, #666)}.billing-form-grid{display:grid;gap:16px}.billing-form-grid .billing-form-field{margin-bottom:0}.billing-form-grid .billing-form-field.full-width{grid-column:1 / -1}.billing-currency-input{position:relative}.billing-currency-input .billing-currency-prefix{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--text-muted, #888);pointer-events:none}.billing-currency-input input{padding-left:24px}.billing-form-toggle label{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:400;color:var(--text-primary, #1a1a1a);cursor:pointer}.billing-form-toggle input[type=checkbox]{width:auto}.billing-form-hint{display:block;margin-top:4px;margin-left:24px;font-size:12px;color:var(--text-muted, #888)}.billing-info-grid{display:grid;gap:16px}.billing-info-item{display:flex;flex-direction:column;gap:4px}.billing-info-item.full-width{grid-column:1 / -1}.billing-info-label{font-size:12px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, #888)}.billing-info-value{font-size:14px;color:var(--text-primary, #1a1a1a)}.billing-info-value.billing-notes{white-space:pre-wrap;color:var(--text-muted, #666)}.children-list{display:flex;flex-direction:column;gap:10px}.child-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--surface-soft, #fafafa);border-radius:8px}.child-avatar{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--primary-soft, #eff6ff);border-radius:50%;font-size:14px;font-weight:600;color:var(--primary, #2563eb)}.child-name{font-size:14px;font-weight:500;color:var(--text-primary, #1a1a1a)}.payment-method{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--surface-soft, #fafafa);border-radius:8px;font-size:14px;color:var(--text-primary, #1a1a1a)}.payment-method svg{color:var(--text-muted, #888)}.section-locked{opacity:.6;pointer-events:none}.section-locked-hint{margin-top:-8px;margin-bottom:12px;font-size:12px;color:var(--text-muted, #888);font-style:italic}.section-readonly-badge{display:inline-block;margin-left:8px;padding:2px 8px;background:var(--surface-soft, #f5f5f5);border-radius:4px;font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted, #888);vertical-align:middle}.billing-empty-state{padding:24px;text-align:center;background:var(--surface-soft, #fafafa);border-radius:8px}.billing-form-field .billing-form-hint{display:block;margin-top:6px;margin-left:0;font-size:12px;color:var(--text-muted, #888)}.billing-field-hint{display:block;margin-top:6px;font-size:12px;color:var(--text-muted, #999);font-style:italic}.invoice-drawer-backdrop{position:fixed;top:calc(72px + env(safe-area-inset-top,0px));left:0;right:0;bottom:calc(67px + env(safe-area-inset-bottom,0px));background:#00000080;z-index:2000;display:flex;justify-content:flex-end;align-items:stretch}.invoice-drawer .drawer-header-meta{margin-top:4px}.invoice-family{font-size:14px;color:var(--text-muted, #666)}.invoice-drawer .profile-section h4{margin:0 0 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted-strong, #64748b)}.invoice-drawer .profile-section{padding:20px 0;margin-bottom:0;border-bottom:1px solid var(--border-soft, #e5e5e5);background:transparent;border-radius:0}.invoice-drawer .profile-section:last-of-type{border-bottom:none}.invoice-summary{text-align:center;padding:24px!important;margin-bottom:0;background:var(--surface-muted, #f8fafc);border-radius:12px;border-bottom:none!important}.invoice-amount-block{margin-bottom:8px}.invoice-amount-label{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted-strong, #64748b);margin-bottom:6px}.invoice-amount-value{display:block;font-size:36px;font-weight:700;color:var(--text-primary, #1a1a1a);line-height:1.2}.invoice-amount-detail{display:flex;justify-content:center;gap:16px;font-size:13px;color:var(--text-muted, #666)}.invoice-dates-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.invoice-date-item{display:flex;flex-direction:column;gap:2px}.invoice-date-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted, #94a3b8)}.invoice-date-value{font-size:14px;font-weight:500;color:var(--text-primary, #1a1a1a)}.invoice-date-item.invoice-date-overdue .invoice-date-value{color:var(--danger, #ef4444)}.invoice-date-item.invoice-date-paid .invoice-date-value{color:var(--success, #16a34a)}.invoice-line-items{display:flex;flex-direction:column}.invoice-line-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;margin:0 -16px;border-bottom:1px solid var(--border-soft, #f0f0f0)}.invoice-line-item:nth-child(2n):not(.invoice-line-total){background:#fafbfd}:root.dark .invoice-line-item:nth-child(2n):not(.invoice-line-total){background:#1e293b4d}.invoice-line-item:last-child{border-bottom:none}.invoice-line-description{font-size:14px;color:var(--text-primary, #1a1a1a)}.invoice-line-amount{font-size:14px;font-weight:500;color:var(--text-primary, #1a1a1a)}.invoice-line-item.invoice-line-total{border-top:1px solid var(--border, #e5e5e5);border-bottom:none;margin-top:4px;padding-top:14px}.invoice-line-items .invoice-line-item:nth-last-child(2){border-bottom:none}.invoice-line-item.invoice-line-total .invoice-line-description{font-weight:600}.invoice-line-item.invoice-line-total .invoice-line-amount{font-size:16px;font-weight:600}.profile-section:has(.invoice-line-items){border-bottom:none}.invoice-billing-period{font-size:14px;color:var(--text-primary, #1a1a1a);margin:0}.invoice-notes{font-size:14px;color:var(--text-muted, #666);white-space:pre-wrap;margin:0}.invoice-actions-section{padding-top:24px!important;padding-bottom:0!important;margin-top:auto;border-top:1px solid var(--border-soft, #e5e5e5);border-bottom:none!important}.invoice-action-btn{width:100%;padding:14px 20px;font-size:15px;display:inline-flex;align-items:center;justify-content:center;gap:8px}.invoice-send-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px}.invoice-btn-spinner{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:invoice-spin .7s linear infinite}@keyframes invoice-spin{to{transform:rotate(360deg)}}.invoice-open-actions{display:flex;gap:10px}.invoice-open-actions .invoice-action-btn{flex:1}.invoice-resend-btn{background:var(--surface-soft, #f3f4f6);border:1px solid var(--border-medium, #d1d5db);color:var(--ink, #1f2937);border-radius:8px;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.invoice-resend-btn:hover:not(:disabled){background:var(--surface-hover, #e5e7eb);border-color:var(--border-strong, #9ca3af)}.invoice-resend-btn:disabled{opacity:.6;cursor:not-allowed}.invoice-paid-badge{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;background:var(--success-soft, #dcfce7);border-radius:8px;font-size:15px;font-weight:500;color:var(--success, #16a34a)}.billing-stripe-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 20px;margin-bottom:16px;background:var(--warning-soft, #fffbeb);border:1px solid var(--warning, #f59e0b)30;border-radius:8px}.billing-stripe-strip-text{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--warning-dark, #92400e)}.billing-stripe-strip-text svg{flex-shrink:0;color:var(--warning, #d97706)}.billing-stripe-strip-btn{display:inline-flex;align-items:center;gap:8px;flex-shrink:0;padding:8px 16px;background:#635bff;border:none;border-radius:6px;font-size:14px;font-weight:500;color:#fff;cursor:pointer;transition:background .15s}.billing-stripe-strip-btn:hover:not(:disabled){background:#4f46e5}.billing-stripe-strip-btn:disabled{opacity:.6;cursor:not-allowed}.billing-refresh-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px;background:transparent;border:none;border-radius:6px;color:var(--text-muted, #888);cursor:pointer;transition:background .15s,color .15s}.billing-refresh-btn:hover:not(:disabled){background:var(--surface-soft, #f5f5f5);color:var(--text-primary, #1a1a1a)}.billing-refresh-btn:disabled{cursor:not-allowed}.billing-refresh-btn svg.spinning{animation:billing-spin 1s linear infinite}.billing-repair-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px;background:transparent;border:none;border-radius:6px;color:var(--text-muted, #888);cursor:pointer;transition:background .15s,color .15s}.billing-repair-btn:hover:not(:disabled){background:var(--surface-soft, #f5f5f5);color:var(--text-primary, #1a1a1a)}.billing-repair-btn:disabled{cursor:not-allowed}.billing-repair-btn svg.spinning{animation:billing-spin 1s linear infinite}.billing-repair-status{font-size:12px;color:var(--text-muted, #64748b);padding:4px 8px;background:var(--surface-soft, #f8fafc);border-radius:4px;margin-left:8px}.billing-summary.is-refreshing .billing-summary-card{opacity:.5;transition:opacity .15s ease-out}.billing-summary .billing-summary-card{transition:opacity .15s ease-out}.billing-stripe-dashboard-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:transparent;border:1px solid var(--border-soft, #e5e5e5);border-radius:6px;font-size:13px;font-weight:500;color:var(--text-muted, #666);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.billing-stripe-dashboard-btn:hover:not(:disabled){background:var(--surface-soft, #fafafa);border-color:var(--border, #d0d0d0);color:var(--text-primary, #1a1a1a)}.billing-stripe-dashboard-btn:disabled{opacity:.5;cursor:not-allowed}.billing-stripe-dashboard-btn svg:first-child{color:var(--text-muted, #888);opacity:.55;transition:color .15s,opacity .15s}.billing-stripe-dashboard-btn:hover:not(:disabled) svg:first-child{color:#635bff;opacity:1}.billing-external-icon{opacity:.5;margin-left:2px;transition:opacity .15s}.billing-stripe-dashboard-btn:hover:not(:disabled) .billing-external-icon{opacity:.7}.billing-onboarding{margin-bottom:24px;padding:32px;background:var(--surface, #fff);border:1px solid var(--border-soft, #e5e5e5);border-radius:12px}.billing-onboarding-title{margin:0 0 24px;font-size:18px;font-weight:600;color:var(--text-primary, #1a1a1a)}.billing-onboarding-steps{display:flex;flex-direction:column;gap:16px}.billing-onboarding-step{display:flex;align-items:center;gap:16px;padding:20px;background:var(--surface-soft, #fafafa);border:1px solid var(--border-soft, #e5e5e5);border-radius:10px;transition:border-color .15s,background .15s}.billing-onboarding-step.completed{background:var(--success-soft, #dcfce7);border-color:var(--success, #16a34a)30}.billing-onboarding-step.disabled{opacity:.5}.billing-onboarding-step-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--surface, #fff);border:2px solid var(--border, #d0d0d0);border-radius:50%;font-size:16px;font-weight:600;color:var(--text-muted, #666);flex-shrink:0}.billing-onboarding-step.completed .billing-onboarding-step-icon{background:var(--success, #16a34a);border-color:var(--success, #16a34a);color:#fff}.billing-onboarding-step-content{flex:1;min-width:0}.billing-onboarding-step-content strong{display:block;font-size:15px;font-weight:600;color:var(--text-primary, #1a1a1a);margin-bottom:2px}.billing-onboarding-step-content p{margin:0;font-size:13px;color:var(--text-muted, #666)}.billing-onboarding-step .primary{flex-shrink:0;padding:10px 20px}.billing-onboarding-step .primary:disabled{opacity:.4;cursor:not-allowed}.billing-onboarding-hint{font-size:13px;color:var(--text-muted, #666);font-style:italic}@media(max-width:1024px){.billing-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.billing-summary{grid-template-columns:1fr}.billing-stripe-banner{flex-direction:column;align-items:flex-start}.billing-toolbar{flex-wrap:wrap}.billing-search{flex-basis:100%;max-width:none}.billing-drawer{width:100%;top:calc(70px + env(safe-area-inset-top,0px));bottom:calc(52px + env(safe-area-inset-bottom,0px));border-radius:0}.invoice-drawer-backdrop{top:calc(70px + env(safe-area-inset-top,0px));bottom:calc(52px + env(safe-area-inset-bottom,0px))}.billing-header-row{display:none}.billing-row{grid-template-columns:1fr;gap:8px;padding:14px 16px}.billing-row-invoices,.billing-row-payments{grid-template-columns:1fr}.billing-name-cell{order:1}.billing-status{order:2}.billing-actions{order:3;width:100%;justify-content:flex-start}.invoice-dates-grid{grid-template-columns:1fr}}.billing-toast{position:fixed;top:80px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:18px 24px;background:var(--surface-card, #fff);border-radius:14px;box-shadow:0 16px 48px #0000002e,0 6px 16px #0000001f;z-index:10000;animation:toastSlideDown .4s cubic-bezier(.21,1.02,.73,1);max-width:480px;min-width:320px}@keyframes toastSlideDown{0%{opacity:0;transform:translate(-50%) translateY(-24px) scale(.96)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.billing-toast-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:36px;height:36px;border-radius:10px}.billing-toast-message{font-size:15px;font-weight:500;color:var(--text-primary, #1a1a1a);line-height:1.5}.billing-toast-info{border:1px solid #3b82f620}.billing-toast-info .billing-toast-icon{background:#3b82f615;color:#3b82f6}.billing-toast-success{border:1px solid #10b98120}.billing-toast-success .billing-toast-icon{background:#10b98115;color:#10b981}.billing-toast-warning{border:1px solid #f59e0b20}.billing-toast-warning .billing-toast-icon{background:#f59e0b15;color:#f59e0b}@media(prefers-color-scheme:dark){:root:not(.light) .billing-toast{background:var(--surface-card, #1e1e1e);box-shadow:0 8px 32px #0006}:root:not(.light) .billing-toast-message{color:var(--text-primary, #f5f5f5)}:root:not(.light) .billing-summary-card:before{background:#94a3b833;opacity:.7}:root:not(.light) .billing-summary-value.billing-summary-accent{color:var(--primary-ink)}:root:not(.light) .billing-summary-label{color:#94a3b8}:root:not(.light) .billing-summary-subtext{color:#94a3b8}:root:not(.light) .billing-summary-updated{color:#64748b}:root:not(.light) .billing-row:nth-child(2n){background:#1e293b4d}:root:not(.light) .invoice-line-item:nth-child(2n):not(.invoice-line-total){background:#1e293b4d}:root:not(.light) .billing-info-icon{color:#64748b;opacity:.7}:root:not(.light) .billing-info-icon:hover{color:#94a3b8;opacity:1}:root:not(.light) .billing-status .status-label.status-open{background:#33415566;border-color:#94a3b826;color:var(--muted-strong)}:root:not(.light) .billing-stripe-dashboard-btn{border-color:#94a3b840;color:var(--muted-strong, #a0a0a0)}:root:not(.light) .billing-stripe-dashboard-btn:hover:not(:disabled){background:#ffffff0d;border-color:#94a3b866;color:var(--text-primary, #f5f5f5)}:root:not(.light) .billing-stripe-dashboard-btn svg:first-child{color:var(--muted-strong, #a0a0a0);opacity:.7}:root:not(.light) .billing-action-btn{background:#ffffff0f;border-color:#94a3b840;color:var(--text-primary, #f5f5f5)}:root:not(.light) .billing-action-btn:hover:not(:disabled){background:#ffffff1a;border-color:#94a3b866}:root:not(.light) .billing-refresh-btn{color:var(--muted-strong, #a0a0a0)}:root:not(.light) .billing-refresh-btn:hover:not(:disabled){background:#ffffff0f;color:var(--text-primary, #f5f5f5)}:root:not(.light) .billing-batch-btn{background:#ffffff0a;border-color:#94a3b840;color:var(--muted-strong, #a0a0a0)}:root:not(.light) .billing-batch-btn:hover:not(:disabled){background:#ffffff14;border-color:#94a3b866;color:var(--text-primary, #f5f5f5)}:root:not(.light) .billing-footer-count{color:#94a3b8;opacity:.8}}:root.dark .billing-summary-card:before{background:#94a3b833;opacity:.7}:root.dark .billing-summary-value.billing-summary-accent{color:var(--primary-ink)}:root.dark .billing-status .status-label.status-open{background:#33415566;border-color:#94a3b826;color:var(--muted-strong)}:root.dark .billing-stripe-dashboard-btn{border-color:#94a3b840;color:var(--muted-strong, #a0a0a0)}:root.dark .billing-stripe-dashboard-btn:hover:not(:disabled){background:#ffffff0d;border-color:#94a3b866;color:var(--text-primary, #f5f5f5)}:root.dark .billing-stripe-dashboard-btn svg:first-child{color:var(--muted-strong, #a0a0a0);opacity:.7}:root.dark .billing-action-btn{background:#ffffff0f;border-color:#94a3b840;color:var(--text-primary, #f5f5f5)}:root.dark .billing-action-btn:hover:not(:disabled){background:#ffffff1a;border-color:#94a3b866}:root.dark .billing-refresh-btn{color:var(--muted-strong, #a0a0a0)}:root.dark .billing-refresh-btn:hover:not(:disabled){background:#ffffff0f;color:var(--text-primary, #f5f5f5)}:root.dark .billing-batch-btn{background:#ffffff0a;border-color:#94a3b840;color:var(--muted-strong, #a0a0a0)}:root.dark .billing-batch-btn:hover:not(:disabled){background:#ffffff14;border-color:#94a3b866;color:var(--text-primary, #f5f5f5)}:root.dark .billing-footer-count{color:#94a3b8;opacity:.8;background:#33415540;border-top:1px solid rgba(148,163,184,.1)}:root.dark .billing-summary-label{color:#94a3b8}:root.dark .billing-summary-subtext{color:#94a3b8}:root.dark .billing-summary-updated{color:#64748b}:root.dark .billing-info-icon{color:#64748b;opacity:.7}:root.dark .billing-info-icon:hover{color:#94a3b8;opacity:1}@media(prefers-color-scheme:dark){:root:not(.light) .billing-header-row{color:#94a3b8}:root:not(.light) .billing-batch-family-list-header{color:#94a3b8}:root:not(.light) .billing-batch-review-header{color:#94a3b8}}:root.dark .billing-header-row{color:#94a3b8}:root.dark .billing-batch-family-list-header{color:#94a3b8}:root.dark .billing-batch-review-header{color:#94a3b8}.billing-header-actions{display:flex;align-items:center;gap:10px}.billing-header-actions .primary{padding:9px 16px;font-size:13px;font-weight:600;border-radius:10px;gap:6px}.billing-header-actions .primary svg{width:14px;height:14px}.billing-batch-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;background:var(--surface);border:1px solid var(--border-soft, #e0e0e0);border-radius:10px;font-size:13px;font-weight:600;color:var(--muted-strong, #555);cursor:pointer;transition:background .15s,border-color .15s,color .15s}.billing-batch-btn:hover:not(:disabled){background:var(--surface-soft, #fafafa);border-color:var(--border-medium, #ccc);color:var(--ink, #1a1a1a)}.billing-batch-btn:disabled{opacity:.5;cursor:not-allowed}.billing-batch-btn svg{opacity:.7;transition:opacity .15s}.billing-batch-btn:hover:not(:disabled) svg{opacity:1}.billing-quick-action .billing-batch-btn{padding:12px 20px}.billing-modal-wide{max-width:520px}.billing-batch-step{min-height:280px}.billing-batch-intro{margin:0 0 16px;padding:10px 14px;background:var(--surface-soft, #f9f9f9);border-radius:8px;font-size:13px;color:var(--text-muted, #666);text-align:center}.billing-batch-preview{margin:16px 0 0;padding:12px 16px;background:var(--surface-soft, #f5f7fa);border-radius:8px;font-size:14px;font-weight:500;color:var(--text-secondary, #444);text-align:center}.billing-batch-step-centered{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.billing-batch-select-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--border-soft, #e5e5e5)}.billing-batch-select-all{padding:6px 12px;background:transparent;border:1px solid var(--border-soft, #e5e5e5);border-radius:6px;font-size:13px;font-weight:500;color:var(--text-secondary, #666);cursor:pointer;transition:background .15s,border-color .15s}.billing-batch-select-all:hover{background:var(--surface-soft, #f5f5f5);border-color:var(--border, #d0d0d0)}.billing-batch-count{font-size:13px;color:var(--text-muted, #888)}.billing-batch-family-list{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}.billing-batch-family-list-header{display:flex;justify-content:space-between;padding:6px 12px 6px 38px;font-size:11px;font-weight:500;color:var(--text-muted, #888);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border-light, #f0f0f0);margin-bottom:4px}.billing-batch-family-list-header span:last-child{cursor:help}.billing-batch-family-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:6px;cursor:pointer;transition:background .1s}.billing-batch-family-item:hover{background:var(--surface-soft, #f9f9f9)}.billing-batch-family-item input[type=checkbox]{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--primary, #2563eb)}.billing-batch-family-name{flex:1;font-size:14px;font-weight:500;color:var(--text-primary, #1a1a1a)}.billing-batch-family-children{font-size:13px;color:var(--text-muted, #888)}.billing-batch-family-item-v2{align-items:flex-start}.billing-batch-family-item-v2 input[type=checkbox]{margin-top:3px}.billing-batch-family-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.billing-batch-family-enrollments{display:flex;flex-wrap:wrap;gap:4px}.billing-batch-enrollment-tag{font-size:11px;padding:2px 6px;background:var(--surface-soft, #f0f4f8);border-radius:4px;color:var(--text-secondary, #555)}.billing-batch-family-amount{font-size:14px;font-weight:600;color:var(--text-primary, #1a1a1a);white-space:nowrap}.billing-batch-family-amount-unconfigured{color:var(--text-muted, #888);font-weight:400}.billing-batch-enrollment-more{font-size:11px;padding:2px 6px;background:var(--border, #e0e0e0);border-radius:4px;color:var(--text-muted, #666)}.billing-batch-selection-total{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:12px 16px;background:var(--primary-soft, #e0edff);border-radius:8px;font-size:14px;color:var(--primary-dark, #1e40af)}.billing-batch-selection-total strong{font-size:16px}.billing-batch-selection-total-pending{background:var(--surface-soft, #f5f5f5);color:var(--text-muted, #666)}.billing-batch-selection-total-pending strong{font-weight:500;font-size:14px}.billing-batch-pending-banner{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;margin-bottom:16px;background:#fef9e7;border:1px solid #f5e6b3;border-radius:8px;font-size:13px;line-height:1.45;color:#856404}.billing-batch-pending-banner svg{flex-shrink:0;margin-top:1px;color:#b8860b}.billing-batch-review-list{max-height:250px;overflow-y:auto;margin:12px 0;border:1px solid var(--border, #e0e0e0);border-radius:8px}.billing-batch-review-header{display:flex;justify-content:space-between;padding:10px 14px;background:var(--surface-soft, #f9f9f9);font-size:12px;font-weight:600;color:var(--text-muted, #888);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border, #e0e0e0)}.billing-batch-review-row{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border-light, #f0f0f0)}.billing-batch-review-row:last-child{border-bottom:none}.billing-batch-review-skipped{opacity:.5;text-decoration:line-through}.billing-batch-review-family{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.billing-batch-review-name{font-size:14px;font-weight:500;color:var(--text-primary, #1a1a1a)}.billing-batch-review-children{font-size:12px;color:var(--text-muted, #888);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.billing-batch-review-skip-badge{font-size:11px;padding:2px 6px;background:var(--warning-soft, #fef3c7);color:var(--warning-dark, #92400e);border-radius:4px;width:fit-content}.billing-batch-review-amount{font-size:14px;font-weight:600;color:var(--text-primary, #1a1a1a);white-space:nowrap}.billing-batch-review-children-invalid{color:var(--text-muted, #888)}.billing-batch-review-amount-invalid{color:var(--text-muted, #888);font-weight:400}.billing-batch-blocking-banner{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;margin-bottom:16px;background:#fef9e7;border:1px solid #f5e6b3;border-radius:10px}.billing-batch-blocking-banner svg{flex-shrink:0;margin-top:2px;color:#b8860b}.billing-batch-blocking-banner strong{display:block;font-size:14px;font-weight:600;color:#856404;margin-bottom:2px}.billing-batch-blocking-banner p{margin:0;font-size:13px;line-height:1.45;color:#6b5a1e}.billing-batch-amount-input{display:flex;align-items:center;max-width:200px}.billing-batch-amount-input .billing-currency-prefix{padding:10px 0 10px 12px;background:var(--surface, #fff);border:1px solid var(--border, #d0d0d0);border-right:none;border-radius:8px 0 0 8px;font-size:14px;color:var(--text-muted, #888)}.billing-batch-amount-input input{flex:1;padding:10px 12px 10px 4px;border-radius:0 8px 8px 0;font-size:16px;font-weight:500}.billing-batch-summary{background:var(--surface-soft, #f9f9f9);border-radius:12px;padding:20px}.billing-batch-summary-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.billing-batch-summary-row span{font-size:14px;color:var(--text-secondary, #666)}.billing-batch-summary-row strong{font-size:14px;font-weight:600;color:var(--text-primary, #1a1a1a)}.billing-batch-summary-divider{height:1px;background:var(--border-soft, #e5e5e5);margin:8px 0}.billing-batch-summary-total{padding-top:12px}.billing-batch-summary-total span{font-weight:500}.billing-batch-summary-total strong{font-size:15px;color:var(--primary, #2563eb)}.billing-batch-duplicates-warning{display:flex;gap:12px;margin-top:16px;padding:16px;background:#fef3c7;border:1px solid #fcd34d;border-radius:10px}.billing-batch-duplicates-warning svg{flex-shrink:0;color:#d97706}.billing-batch-duplicates-warning strong{display:block;font-size:14px;font-weight:500;color:#92400e;margin-bottom:8px}.billing-batch-skip-toggle{display:flex;align-items:center;gap:8px;font-size:13px;color:#92400e;cursor:pointer}.billing-batch-skip-toggle input{margin:0;cursor:pointer;accent-color:#d97706}.billing-batch-creating{display:flex;flex-direction:column;align-items:center;gap:16px}.billing-batch-spinner{width:40px;height:40px;border:3px solid var(--border-soft, #e5e5e5);border-top-color:var(--primary, #2563eb);border-radius:50%;animation:billing-spin .8s linear infinite}.billing-batch-creating p{font-size:15px;color:var(--text-secondary, #666)}.billing-batch-complete{display:flex;flex-direction:column;align-items:center;gap:12px}.billing-batch-complete svg{color:#10b981}.billing-batch-complete h4{margin:0;font-size:18px;font-weight:600;color:var(--text-primary, #1a1a1a)}.billing-batch-complete-stats{margin:0;font-size:15px;font-weight:500;color:var(--text-primary, #1a1a1a)}.billing-batch-complete-skipped{font-weight:400;color:var(--text-muted, #888)}.billing-batch-complete-hint{margin:8px 0 0;font-size:13px;color:var(--text-muted, #888)}.billing-batch-error{display:flex;flex-direction:column;align-items:center;gap:12px}.billing-batch-error svg{color:#ef4444}.billing-batch-error h4{margin:0;font-size:18px;font-weight:600;color:var(--text-primary, #1a1a1a)}.billing-batch-error p{margin:0;font-size:14px;color:var(--text-secondary, #666)}.billing-batch-addon-overrides{display:flex;flex-direction:column;gap:8px;margin-top:8px;padding:14px;background:var(--surface-soft, #f5f7f9);border:1px solid var(--border-soft, #e8eaed);border-radius:10px}.billing-batch-addon-toggle{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface, #fff);border:1px solid var(--border-soft, #e5e5e5);border-radius:8px;cursor:default}.billing-batch-addon-label{font-size:14px;font-weight:500;color:var(--text-primary, #1a1a1a)}.billing-batch-addon-toggle select{padding:6px 10px;background:var(--surface, #fff);border:1px solid var(--border, #d0d0d0);border-radius:6px;font-size:13px;color:var(--text-primary, #1a1a1a);cursor:pointer;min-width:160px}.billing-batch-addon-toggle select:focus{outline:none;border-color:var(--primary, #2563eb);box-shadow:0 0 0 2px var(--primary-soft, #e0edff)}.billing-batch-computing{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px;font-size:14px;color:var(--text-muted, #888)}@media(max-width:900px){.billing-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.billing-table{min-width:700px}.billing-row,.billing-header-row{padding:12px 16px;gap:10px}.billing-summary-skeleton{grid-template-columns:repeat(2,1fr)}.billing-filters{flex-wrap:wrap;gap:8px}}.person-backdrop{position:fixed;top:calc(72px + env(safe-area-inset-top,0px));left:0;right:0;bottom:calc(67px + env(safe-area-inset-bottom,0px));background:#0006;z-index:1000;display:flex;justify-content:flex-end}.person-drawer{position:relative;width:min(440px,100vw - 2rem);height:100%;background:#f9fafb;box-shadow:-8px 0 32px #00000026;display:flex;flex-direction:column;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;border-radius:16px 0 0 16px;animation:slideIn .2s ease-out}.person-header{padding:24px 24px 20px;border-bottom:1px solid var(--border-soft, #e5e5e5);display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.person-header-content{display:flex;flex-direction:column;gap:8px}.person-header-main{display:flex;align-items:center;gap:10px}.person-header h2{margin:0;font-size:var(--text-xl, 1.25rem);font-weight:700}.person-role-badge{font-size:var(--text-xs, .75rem);font-weight:500;color:var(--muted, #64748b)}.person-meta-row{display:flex;align-items:center;gap:12px}.person-meta-count{font-size:var(--text-sm, .8125rem);color:var(--muted, #64748b)}.person-app-status{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs, .75rem);font-weight:500}.person-app-status .status-dot{width:6px;height:6px;border-radius:50%}.person-app-status.enabled{color:var(--success-ink, #0d9488)}.person-app-status.enabled .status-dot{background:var(--success-ink, #0d9488)}.person-app-status.disabled{color:var(--muted, #64748b)}.person-app-status.disabled .status-dot{background:var(--muted, #94a3b8)}.person-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.person-edit-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:none;background:transparent;font-size:var(--text-xs, .75rem);font-weight:500;color:var(--muted);cursor:pointer;border-radius:8px;transition:background .15s ease,color .15s ease}.person-edit-btn:hover{background:var(--surface-hover, #f5f5f5);color:var(--accent)}.person-edit-btn svg{color:currentColor}.person-drawer .drawer-close{width:32px;height:32px;border:none;background:transparent;cursor:pointer;font-size:1.5rem;line-height:1;color:var(--muted, #64748b);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.person-drawer .drawer-close:hover{background:var(--surface-hover, #f5f5f5)}.person-loading{display:flex;flex-direction:column;gap:1rem}.person-loading .skeleton-block{height:3rem;background:var(--surface-hover, #f5f5f5);border-radius:8px;animation:pulse 1.5s ease-in-out infinite}.person-loading .skeleton-block.short{width:60%;height:2rem}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.person-content{flex:1;overflow-y:auto;padding:20px 24px;background:#f9fafb}.person-section{margin-bottom:16px}.person-section:last-child{margin-bottom:0}.person-section h4{margin:0 0 8px;font-size:var(--text-sm, .8125rem);font-weight:600;color:var(--ink, #1a1a1a)}.person-section .section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.person-section .section-header h4{margin:0}.person-section .section-action{font-size:var(--text-xs, .75rem);font-weight:500;color:var(--muted);background:transparent;border:none;cursor:pointer;padding:4px 8px;margin:-4px -8px;border-radius:6px;transition:background .15s ease,color .15s ease}.person-section .section-action:hover{background:var(--surface-hover, #f5f5f5);color:var(--accent)}.person-section .section-actions{display:flex;align-items:center;gap:8px}.person-section .section-action-primary{font-size:var(--text-xs, .75rem);font-weight:600;color:var(--text-on-dark, #fff);background:var(--ink, #1a1a1a);border:none;cursor:pointer;padding:6px 12px;border-radius:6px;transition:opacity .15s ease}.person-section .section-action-primary:hover{opacity:.85}.person-section.children-section{border-top:1px solid var(--border-soft, #e5e5e5);padding-top:20px;margin-top:16px}.contact-list{display:flex;flex-direction:column;gap:0}.contact-row{display:flex;align-items:center;gap:10px;padding:6px 10px;margin:0 -10px;border-radius:8px;text-decoration:none;color:var(--ink, #1a1a1a);transition:background .15s ease}.contact-row:hover{background:var(--surface-hover, #f5f5f5)}.contact-icon{color:var(--muted, #64748b);flex-shrink:0}.contact-value{font-size:var(--text-sm, .875rem);color:var(--ink, #1a1a1a)}.linked-children-list{display:flex;flex-direction:column;gap:0}.linked-child-row{display:flex;align-items:center;gap:12px;padding:10px 12px;margin:0 -12px;background:transparent;border:none;cursor:pointer;border-radius:10px;text-align:left;width:calc(100% + 24px);transition:background .15s ease,transform .1s ease}.linked-child-row:hover{background:var(--surface-hover, #f5f5f5)}.linked-child-row:active{transform:scale(.995)}.linked-child-avatar{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm, .875rem);font-weight:600;flex-shrink:0;background:var(--surface-muted, #f1f5f9);color:var(--muted-strong, #475569)}.linked-child-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.linked-child-name{font-size:var(--text-sm, .875rem);font-weight:500;color:var(--ink, #1a1a1a)}.linked-child-age{font-size:var(--text-xs, .75rem);color:var(--ink-subtle)}.linked-child-room{font-size:var(--text-xs, .75rem);font-weight:500;color:var(--muted, #64748b);background:var(--surface-muted, #f5f5f5);padding:3px 8px;border-radius:4px;flex-shrink:0}.permission-icon.permission-app{color:var(--muted, #64748b)}.linked-child-chevron{color:var(--muted, #64748b);opacity:.7;flex-shrink:0;transition:opacity .15s ease,color .15s ease}.linked-child-row:hover .linked-child-chevron{opacity:1;color:var(--ink, #1a1a1a)}.notes-list{display:flex;flex-direction:column;gap:.5rem}.note-item{font-size:.875rem;padding:.75rem;background:var(--surface-hover, #fafafa);border-radius:6px;border-left:3px solid var(--border, #e5e5e5)}.note-child{font-weight:500;margin-right:.25rem}.note-text{color:var(--text, #1a1a1a)}.person-permission-error{padding:16px;background:#fbbf2414;border:1px solid rgba(251,191,36,.2);border-radius:10px;margin-bottom:20px}.person-permission-error h4{margin:0 0 8px;font-size:var(--text-sm, .875rem);font-weight:600;color:var(--warning-ink, #92400e)}.person-permission-error h4:not(:first-child){margin-top:16px}.person-permission-error p{margin:0;font-size:var(--text-sm, .875rem);line-height:1.5}.person-drawer .muted{color:var(--muted, #64748b)}.person-drawer{animation:slideIn .2s ease-out}.person-drawer .inline-add-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:12px}.person-drawer .inline-add-form.card-form{flex-direction:column;align-items:stretch;gap:10px;padding:16px;background:var(--surface-raised, #f8fafc);border-radius:12px;border:1px solid var(--border-soft, #e5e5e5)}.person-drawer .inline-form-error{font-size:var(--text-xs, .75rem);color:var(--danger-ink, #dc2626);padding:6px 10px;background:#dc262614;border-radius:6px;width:100%}.person-drawer .inline-form-row{display:flex;gap:6px;align-items:center;flex:1;min-width:0}.person-drawer .card-form .inline-form-row{flex:none;gap:10px}.person-drawer .inline-input{flex:1;min-width:100px;padding:9px 11px;border:1px solid var(--border-soft, #e5e5e5);border-radius:7px;font-size:var(--text-sm, .875rem);background:var(--surface, #fff);color:var(--ink, #1a1a1a);outline:none;transition:border-color .15s ease}.person-drawer .card-form .inline-input{padding:12px 14px;border-radius:8px;flex:1;min-width:0}.person-drawer .inline-input:focus{border-color:var(--primary-border-strong, #3b82f6)}.person-drawer .inline-input::placeholder{color:var(--muted, #64748b)}.person-drawer .inline-select{width:110px;padding:9px 10px;border:1px solid var(--border-soft, #e5e5e5);border-radius:7px;font-size:var(--text-sm, .875rem);background:var(--surface, #fff);color:var(--ink, #1a1a1a);outline:none;cursor:pointer;flex-shrink:0}.person-drawer .inline-select.custom-select{padding:0;border:none;background:transparent;width:120px}.person-drawer .card-form .inline-select.custom-select{width:140px;flex-shrink:0}.person-drawer .inline-select:focus{border-color:var(--primary-border-strong, #3b82f6)}.person-drawer .inline-form-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.person-drawer .card-form .inline-form-actions{justify-content:flex-end;margin-top:4px}.person-drawer .inline-cancel{padding:4px 0;border:none;background:transparent;font-size:var(--text-xs, .75rem);font-weight:500;color:var(--muted, #64748b);cursor:pointer;transition:color .15s ease}.person-drawer .inline-cancel:hover:not(:disabled){color:var(--muted-strong, #475569)}.person-drawer .inline-cancel:disabled{opacity:.5;cursor:not-allowed}.person-drawer .inline-submit{padding:7px 14px;border:none;background:var(--ink, #1a1a1a);color:var(--text-on-dark, #fff);font-size:var(--text-sm, .875rem);font-weight:600;cursor:pointer;border-radius:6px;transition:opacity .15s ease}.person-drawer .inline-submit:hover:not(:disabled){opacity:.9}.person-drawer .inline-submit:disabled{opacity:.5;cursor:not-allowed}.person-drawer .drawer-toast{position:absolute;top:72px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;background:var(--success-bg, #ecfdf5);color:var(--success-text, #065f46);padding:6px 12px;border-radius:20px;box-shadow:0 2px 8px #00000014;font-size:var(--text-xs, .75rem);font-weight:500;z-index:200;animation:toastSlideIn .2s ease-out,toastFadeOut .3s ease-in 1.5s forwards}.person-drawer .drawer-toast:before{content:"✓";font-size:.7rem;font-weight:700}.person-header.editing{background:var(--surface-soft, #fafafa)}.person-name-input{font-size:var(--text-xl, 1.25rem);font-weight:700;padding:4px 0;border:none;border-bottom:2px solid var(--border-medium, #d1d5db);border-radius:0;background:transparent;color:var(--ink, #1a1a1a);min-width:160px;max-width:220px;outline:none;transition:border-color .15s ease}.person-name-input:focus{border-bottom-color:var(--ink, #1a1a1a)}.person-name-input::placeholder{color:var(--muted, #64748b);font-weight:500}.person-save-btn,.person-cancel-btn{padding:8px 16px;border-radius:8px;font-size:var(--text-sm, .875rem);font-weight:600;cursor:pointer;transition:opacity .15s ease,background .15s ease}.person-cancel-btn{border:1px solid var(--border-medium, #d1d5db);background:var(--surface, #fff);color:var(--ink, #1a1a1a)}.person-cancel-btn:hover:not(:disabled){background:var(--surface-hover, #f5f5f5)}.person-save-btn{border:none;background:var(--ink, #1a1a1a);color:var(--text-on-dark, #fff)}.person-save-btn:hover:not(:disabled){opacity:.9}.person-save-btn:disabled,.person-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.person-edit-btn:disabled{opacity:.4;cursor:not-allowed}.person-save-error{font-size:var(--text-xs, .75rem);color:var(--danger-ink, #dc2626);padding:8px 12px;background:#dc262614;border-radius:6px;margin-bottom:12px}.person-section.section-editable{background:var(--surface-soft, #f8fafc);margin-left:-16px;margin-right:-16px;padding:12px 16px;border-radius:10px}.permissions-scope-notice{display:flex;align-items:center;gap:6px;padding:6px 8px;margin-top:6px;margin-bottom:12px;font-size:var(--text-xs, .75rem);color:var(--muted, #64748b);background:var(--surface-muted, #f1f5f9);border-radius:6px}.permissions-scope-notice svg{flex-shrink:0;color:var(--muted, #64748b);opacity:.6}.contact-edit-list{display:flex;flex-direction:column;gap:6px}.contact-edit-row{display:flex;align-items:center;gap:10px}.contact-edit-row .contact-icon{opacity:.6}.contact-edit-input{flex:1;padding:8px 10px;border:1px solid var(--border-softest, #eee);border-radius:6px;font-size:var(--text-sm, .875rem);background:var(--surface, #fff);color:var(--ink-subtle, #333);outline:none;transition:border-color .15s ease,background .15s ease}.contact-edit-input:focus{border-color:var(--primary-border, #93c5fd);background:var(--surface, #fff)}.contact-edit-input::placeholder{color:var(--muted-soft, #94a3b8)}.contact-edit-input:disabled{background:var(--surface-muted, #f5f5f5);cursor:not-allowed}.permissions-section{border:1px solid var(--border-soft, #e5e5e5);margin-bottom:16px}.permissions-section.section-editable{border:1px solid rgba(37,99,235,.15)}.permissions-section h4{margin-bottom:2px;font-size:var(--text-xs, .75rem);text-transform:uppercase;letter-spacing:.03em;color:var(--muted, #64748b)}.permissions-list{display:flex;flex-direction:column;gap:2px}.permission-toggle{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;margin:0 -10px;border-radius:6px;cursor:pointer;transition:background .15s ease}.permission-toggle:hover{background:var(--surface-soft, #fafafa)}.permission-toggle-label{display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm, .875rem);font-weight:500;color:var(--ink, #1a1a1a)}.permission-toggle-label svg{display:none}.permission-toggle-hint{font-size:var(--text-xs, .75rem);font-weight:400;color:var(--muted, #64748b)}.permission-toggle input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.toggle-switch-track{position:relative;width:40px;height:22px;background:var(--border-medium, #d1d5db);border-radius:11px;transition:background .2s ease;flex-shrink:0}.toggle-switch-track:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;background:var(--surface, #fff);border-radius:50%;box-shadow:0 1px 3px #00000026;transition:transform .2s ease}.permission-toggle input[type=checkbox]:checked+.toggle-switch-track{background:var(--success-ink, #0d9488)}.permission-toggle input[type=checkbox]:checked+.toggle-switch-track:after{transform:translate(18px)}.permission-toggle input[type=checkbox]:disabled+.toggle-switch-track{opacity:.5;cursor:not-allowed}.children-section-locked{opacity:.6;pointer-events:none}.children-section-locked .section-header h4{color:var(--muted, #64748b)}.children-locked-hint{font-size:var(--text-xs, .75rem);margin:-4px 0 8px;font-style:italic}.linked-child-row.locked{cursor:default;pointer-events:none}.linked-child-row.locked .linked-child-avatar,.linked-child-row.locked .linked-child-name,.linked-child-row.locked .linked-child-room,.linked-child-row.locked .permission-icons{opacity:.5}.linked-child-row.locked .linked-child-chevron{opacity:.3}.linked-child-row.locked:hover{background:transparent}.discard-modal-backdrop{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1200;padding:20px}.person-tabs{display:flex;gap:0;padding:0 24px;border-bottom:1px solid var(--border-soft, #e5e5e5);background:var(--surface, #fff)}.person-tab{padding:12px 16px;border:none;background:transparent;font-size:var(--text-sm, .875rem);font-weight:500;color:var(--muted, #64748b);cursor:pointer;position:relative;transition:color .15s ease}.person-tab:hover{color:var(--ink, #1a1a1a)}.person-tab.active{color:var(--ink, #1a1a1a);font-weight:600}.person-tab.active:after{content:"";position:absolute;bottom:-1px;left:16px;right:16px;height:2px;background:var(--ink, #1a1a1a);border-radius:1px 1px 0 0}.person-tabs.setup-mode .person-tab:not(.active){color:var(--muted, #b0b8c4);opacity:.7}.person-tabs.setup-mode .person-tab:not(.active):hover{color:var(--muted, #94a3b8);opacity:.85}.billing-tab-content{display:flex;flex-direction:column;gap:0}.section-heading-secondary{font-size:var(--text-xs, .75rem);font-weight:600;color:var(--muted, #64748b);text-transform:uppercase;letter-spacing:.04em}.billing-info-list{display:flex;flex-direction:column;gap:10px}.billing-info-row{display:flex;justify-content:space-between;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--border-softest, #f0f0f0)}.billing-info-row:last-child{border-bottom:none}.billing-info-label{font-size:var(--text-sm, .875rem);color:var(--muted, #64748b);flex-shrink:0}.billing-info-value{font-size:var(--text-sm, .875rem);color:var(--ink, #1a1a1a);text-align:right}.billing-info-hint{display:block;font-size:var(--text-xs, .75rem);color:var(--muted, #94a3b8);margin-top:2px}.billing-info-row.billing-notes{flex-direction:column;gap:4px}.billing-info-row.billing-notes .billing-info-value{text-align:left;font-size:var(--text-xs, .75rem);color:var(--muted, #64748b);background:var(--surface-soft, #f8fafc);padding:8px 10px;border-radius:6px;white-space:pre-wrap}.billing-status-badge{display:inline-block;padding:3px 10px;font-size:var(--text-xs, .75rem);font-weight:600;border-radius:999px}.billing-status-badge.enabled{background:#22c55e1f;color:var(--success-ink, #0d9488)}.billing-status-badge.disabled{background:var(--surface-muted, #f1f5f9);color:var(--muted-soft, #94a3b8);font-weight:500}.billing-balance{font-weight:600}.billing-balance.credit{color:var(--success-ink, #0d9488)}.billing-balance.debit{color:var(--danger-ink, #dc2626)}.billing-empty-state{text-align:center;padding:32px 16px;background:var(--surface-muted, #f9fafb);border-radius:12px;border:1px solid var(--border-soft, #eceef2)}.billing-empty-title{margin:0 0 6px;font-size:1rem;font-weight:600;color:var(--ink, #1a1a1a)}.billing-empty-description{margin:0 0 20px;font-size:var(--text-sm, .875rem);color:var(--muted, #64748b);line-height:1.45}.billing-setup-btn{padding:10px 20px;border:none;border-radius:8px;background:var(--ink, #1a1a1a);color:var(--text-on-dark, #fff);font-size:var(--text-sm, .875rem);font-weight:600;cursor:pointer;transition:opacity .15s ease}.billing-setup-btn:hover{opacity:.9}.billing-setup-form{display:flex;flex-direction:column;gap:0}.billing-setup-header{margin:4px 0 20px;padding-bottom:14px;font-size:1.0625rem;font-weight:700;color:var(--ink, #1a1a1a);border-bottom:1px solid var(--border-soft, #eceef2)}.billing-setup-section{padding:16px 0;border-bottom:1px solid var(--border-soft, #eceef2)}.billing-setup-section:first-of-type{padding-top:0}.billing-setup-section:last-of-type{border-bottom:none}.billing-setup-section-header{margin-bottom:12px}.billing-setup-section-title{display:block;font-size:var(--text-sm, .875rem);font-weight:600;color:var(--ink, #1a1a1a);margin-bottom:2px}.billing-setup-section-hint{display:block;font-size:var(--text-xs, .75rem);color:var(--muted, #64748b)}.billing-setup-section-secondary{background:var(--surface-muted, #f7f8f9);margin:16px -16px 0;padding:14px 16px;border-radius:8px;border-bottom:none;opacity:.9}.billing-setup-section-secondary .billing-setup-section-header{display:flex;align-items:center;gap:6px;margin-bottom:10px}.billing-setup-section-secondary .billing-setup-section-title{font-size:.7rem;color:var(--muted, #94a3b8);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.billing-setup-section-secondary .billing-staff-icon{color:var(--muted, #94a3b8);opacity:.7}.billing-setup-section-secondary .billing-edit-textarea{background:var(--surface, #fff);font-size:.8125rem}.billing-setup-section .permission-toggle-label{font-weight:600;color:var(--ink, #1a1a1a)}.billing-setup-section .permission-toggle-hint{color:var(--muted, #94a3b8);font-size:.7rem}.billing-setup-section .permission-toggle:has(input:disabled){opacity:.6;cursor:not-allowed}.billing-setup-section .permission-toggle:has(input:disabled):hover{background:transparent}.billing-autopay-locked{display:inline-flex;align-items:center;gap:6px}.billing-autopay-lock-icon{color:var(--muted, #94a3b8);opacity:.7}.billing-stripe-notice{display:flex;align-items:center;gap:6px;margin-top:8px;margin-left:52px;font-size:.7rem;color:var(--muted, #94a3b8);font-style:italic}.billing-stripe-notice svg{flex-shrink:0;opacity:.6}.billing-edit-form{display:flex;flex-direction:column;gap:16px}.billing-edit-row{display:flex;flex-direction:column;gap:6px}.billing-edit-label{font-size:var(--text-xs, .75rem);font-weight:600;color:var(--muted, #64748b);text-transform:uppercase;letter-spacing:.03em}.billing-edit-input{padding:10px 12px;border:1px solid var(--border-soft, #e5e5e5);border-radius:8px;font-size:var(--text-sm, .875rem);background:var(--surface, #fff);color:var(--ink, #1a1a1a);outline:none;transition:border-color .15s ease}.billing-edit-input:focus{border-color:var(--primary-border-strong, #3b82f6)}.billing-edit-input::placeholder{color:var(--muted, #94a3b8)}.billing-edit-input:disabled{background:var(--surface-muted, #f5f5f5);cursor:not-allowed}.billing-edit-hint{font-size:var(--text-xs, .75rem);color:var(--muted, #94a3b8)}.billing-edit-textarea{padding:10px 12px;border:1px solid var(--border-soft, #e5e5e5);border-radius:8px;font-size:var(--text-sm, .875rem);background:var(--surface, #fff);color:var(--ink, #1a1a1a);outline:none;resize:vertical;font-family:inherit;transition:border-color .15s ease}.billing-edit-textarea:focus{border-color:var(--primary-border-strong, #3b82f6)}.billing-edit-textarea::placeholder{color:var(--muted, #94a3b8)}.billing-edit-textarea:disabled{background:var(--surface-muted, #f5f5f5);cursor:not-allowed}.billing-edit-actions{display:flex;flex-direction:column;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--border-soft, #eceef2)}.billing-edit-buttons{display:flex;justify-content:flex-end;gap:12px}.billing-edit-actions .person-save-btn{padding:10px 20px;font-size:.9375rem}.billing-edit-reassurance{text-align:center;font-size:.75rem;color:var(--muted, #94a3b8)}.billing-invoices-section{margin-top:8px;padding-top:16px;border-top:1px solid var(--border-softest, #f0f0f0)}.billing-invoices-section h4{font-size:var(--text-sm, .875rem);font-weight:600;color:var(--ink, #1a1a1a)}.billing-invoices-list{display:flex;flex-direction:column;gap:0}.billing-invoice-row{display:flex;align-items:center;gap:12px;padding:10px 12px;margin:0 -12px;border-radius:8px;transition:background .15s ease}.billing-invoice-row:hover{background:var(--surface-hover, #f5f5f5)}.billing-invoice-row-clickable{cursor:pointer}.billing-invoice-row-clickable:focus{outline:none}.billing-invoice-row-clickable:focus-visible{outline:2px solid var(--focus, #4f46e5);outline-offset:-2px}.billing-invoice-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.billing-invoice-number{font-size:var(--text-sm, .875rem);font-weight:500;color:var(--ink, #1a1a1a)}.billing-invoice-date{font-size:var(--text-xs, .75rem);color:var(--muted, #64748b)}.billing-invoice-amount{font-size:var(--text-sm, .875rem);font-weight:600;color:var(--ink, #1a1a1a)}.billing-invoice-amount.zero-amount{color:var(--muted, #64748b);font-weight:500}.billing-invoice-chevron{color:var(--muted-soft, #94a3b8);flex-shrink:0;margin-left:4px;transition:transform .15s ease}.billing-invoice-row:hover .billing-invoice-chevron{color:var(--muted, #64748b);transform:translate(2px)}.billing-invoice-status{display:inline-block;padding:3px 8px;font-size:var(--text-2xs, .625rem);font-weight:600;text-transform:uppercase;letter-spacing:.02em;border-radius:4px}.billing-invoice-status.status-paid{background:#22c55e1f;color:var(--success-ink, #0d9488)}.billing-invoice-status.status-sent,.billing-invoice-status.status-pending{background:#fbbf241f;color:var(--warning-ink, #92400e)}.billing-invoice-status.status-overdue{background:#dc262614;color:var(--danger-ink, #dc2626)}.billing-invoice-status.status-draft{background:var(--surface-muted, #f5f5f5);color:var(--muted, #64748b)}.billing-invoice-status.status-void{background:var(--surface-muted, #f5f5f5);color:var(--muted, #94a3b8);text-decoration:line-through}.pin-card{background:var(--surface, #fff);border:1px solid var(--border-subtle, #f1f5f9);border-radius:8px;padding:12px 14px}.pin-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px}.pin-lock-icon{flex-shrink:0;color:var(--muted, #64748b);margin-top:2px}.pin-header-text{display:flex;flex-direction:column;gap:2px}.pin-header-text h4{margin:0;font-size:var(--text-sm, .875rem);font-weight:600;color:var(--ink-subtle, #475569)}.pin-subtitle{margin:0;font-size:var(--text-xs, .75rem);color:var(--muted, #64748b)}.pin-active{display:flex;flex-direction:column;gap:10px}.pin-value-row{display:flex;align-items:center;gap:10px}.pin-value{font-size:1.25rem;font-weight:700;font-family:SF Mono,Monaco,Inconsolata,monospace;letter-spacing:.2em;color:var(--ink, #1e293b);background:var(--surface, #fff);border:1px solid var(--border-soft, #e2e8f0);padding:8px 14px;border-radius:8px;min-width:90px;text-align:center}.pin-toggle-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--muted, #64748b);cursor:pointer;border-radius:6px;transition:background .15s ease,color .15s ease}.pin-toggle-btn:hover{background:var(--surface-hover, rgba(0, 0, 0, .04));color:var(--ink, #1e293b)}.pin-status-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:4px;font-size:var(--text-2xs, .6875rem);font-weight:600;text-transform:uppercase;letter-spacing:.03em;background:var(--success-soft, #dcfce7);color:var(--success-ink, #15803d);border:1px solid var(--success-border, #bbf7d0)}.pin-actions{display:flex;gap:8px}.pin-action-secondary{padding:6px 12px;border:1px solid var(--border-medium, #cbd5e1);background:var(--surface, #fff);color:var(--ink-subtle, #475569);font-size:var(--text-xs, .75rem);font-weight:500;border-radius:6px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.pin-action-secondary:hover:not(:disabled){background:var(--surface-hover, #f8fafc);border-color:var(--border-strong, #94a3b8);color:var(--ink, #1e293b)}.pin-action-secondary:disabled{opacity:.5;cursor:not-allowed}.pin-action-tertiary{padding:6px 12px;border:none;background:transparent;color:var(--muted, #64748b);font-size:var(--text-xs, .75rem);font-weight:500;border-radius:6px;cursor:pointer;transition:background .15s ease,color .15s ease}.pin-action-tertiary:hover:not(:disabled){background:#dc262614;color:var(--danger-ink, #dc2626)}.pin-action-tertiary:disabled{opacity:.5;cursor:not-allowed}.pin-empty{display:flex;flex-direction:column;gap:10px;align-items:flex-start}.pin-empty-title{margin:0;font-size:var(--text-sm, .875rem);font-weight:600;color:var(--ink-subtle, #475569)}.pin-empty-desc{margin:0;font-size:var(--text-xs, .75rem);color:var(--muted, #64748b);line-height:1.5}.pin-generate-btn{padding:10px 18px;border:none;background:var(--ink-subtle, #475569);color:var(--text-on-dark, #fff);font-size:var(--text-sm, .875rem);font-weight:600;border-radius:8px;cursor:pointer;transition:background .15s ease,opacity .15s ease}.pin-generate-btn:hover:not(:disabled){background:var(--ink, #1e293b)}.pin-generate-btn:disabled{opacity:.5;cursor:not-allowed}.pin-hint{font-size:var(--text-2xs, .6875rem);color:var(--muted-soft, #94a3b8);margin:0}@media(max-width:900px){.person-backdrop{top:calc(70px + env(safe-area-inset-top,0px));bottom:calc(52px + env(safe-area-inset-bottom,0px));left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px)}.person-drawer{width:100vw;border-radius:0}.person-header{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}.person-content{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right));padding-bottom:max(20px,env(safe-area-inset-bottom))}}:root.dark .person-drawer{background:#1e293b;box-shadow:-8px 0 32px #0006}:root.dark .person-header{border-bottom-color:#94a3b826}:root.dark .person-header h2{color:#f1f5f9}:root.dark .person-content{background:#0f172a}:root.dark .person-section h4{color:#e2e8f0}:root.dark .person-section.children-section{border-top-color:#94a3b826}:root.dark .linked-child-avatar{background:#33415599;color:#94a3b8}:root.dark .linked-child-row:hover{background:#33415566}:root.dark .linked-child-name{color:#e2e8f0}:root.dark .linked-child-room{background:#33415580;color:#94a3b8}:root.dark .note-item{background:#33415566;border-left-color:#94a3b84d}:root.dark .person-tabs{background:#1e293b99;border-bottom-color:#94a3b826}:root.dark .person-tab{color:#94a3b8}:root.dark .person-tab:hover{color:#e2e8f0}:root.dark .person-tab.active{color:#f1f5f9}:root.dark .person-tab.active:after{background:#f1f5f9}:root.dark .person-header.editing{background:#33415566}:root.dark .person-name-input{border-bottom-color:#94a3b84d;color:#e2e8f0}:root.dark .person-name-input:focus{border-bottom-color:#e2e8f0}:root.dark .person-cancel-btn{background:#33415580;border-color:#94a3b840;color:#e2e8f0}:root.dark .person-cancel-btn:hover:not(:disabled){background:#334155b3}:root.dark .person-section.section-editable{background:#3341554d}:root.dark .contact-edit-input{background:#33415566;border-color:#94a3b833;color:#e2e8f0}:root.dark .contact-edit-input:focus{border-color:#818cf880}:root.dark .permissions-section{border-color:#94a3b826}:root.dark .permission-toggle:hover{background:#3341554d}:root.dark .permission-toggle-label{color:#e2e8f0}:root.dark .toggle-switch-track{background:#33415599}:root.dark .permissions-scope-notice{background:#33415566}:root.dark .billing-empty-state{background:#3341554d;border-color:#94a3b826}:root.dark .billing-info-row{border-bottom-color:#94a3b81a}:root.dark .billing-invoice-row:hover{background:#33415566}:root.dark .billing-edit-input,:root.dark .billing-edit-textarea{background:#33415566;border-color:#94a3b833;color:#e2e8f0}:root.dark .billing-setup-section{border-bottom-color:#94a3b81a}:root.dark .billing-setup-section-secondary{background:#3341554d}:root.dark .pin-card{background:#1e293b80;border-color:#94a3b826}:root.dark .pin-value{background:#33415580;border-color:#94a3b833;color:#e2e8f0}:root.dark .pin-action-secondary{background:#33415580;border-color:#94a3b840;color:#e2e8f0}:root.dark .person-drawer .inline-input,:root.dark .person-drawer .inline-select:not(.custom-select){background:#33415566;border-color:#94a3b833;color:#e2e8f0}:root.dark .person-drawer .inline-add-form.card-form{background:#1e293b99;border-color:#94a3b826}@media(prefers-color-scheme:dark){:root:not(.light) .person-drawer{background:#1e293b;box-shadow:-8px 0 32px #0006}:root:not(.light) .person-content{background:#0f172a}:root:not(.light) .person-header{border-bottom-color:#94a3b826}:root:not(.light) .person-tabs{background:#1e293b99;border-bottom-color:#94a3b826}:root:not(.light) .person-drawer .inline-add-form.card-form{background:#1e293b99;border-color:#94a3b826}}.link-child-backdrop{position:fixed;inset:0;background:var(--ink-overlay-strong, rgba(0, 0, 0, .5));z-index:1100;display:flex;align-items:center;justify-content:center;padding:24px}.link-child-modal{width:100%;max-width:440px;max-height:calc(100vh - 2rem);background:var(--surface, #ffffff);border-radius:14px;box-shadow:0 20px 60px #0003;display:flex;flex-direction:column;overflow:hidden;color:var(--ink, #0f172a)}.link-child-modal .modal-subtitle{color:var(--muted, #6b7280)}.link-child-modal form{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.link-child-modal .modal-header{display:flex;justify-content:space-between;align-items:flex-start;padding:1.25rem 1.5rem;border-bottom:1px solid var(--border-soft, #e5e5e5)}.link-child-modal .modal-header h2{margin:0;font-size:var(--text-lg, 1.125rem);font-weight:600}.link-child-modal .modal-subtitle{margin:.25rem 0 0;font-size:var(--text-sm, .8125rem)}.link-child-modal .modal-close{width:28px;height:28px;border:none;background:transparent;font-size:1.125rem;color:var(--muted, #6b7280);cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin:-.25rem -.5rem 0 0;outline:none;-webkit-tap-highlight-color:transparent}.link-child-modal .modal-close:hover:not(:disabled){background:var(--surface-muted, #f5f5f5)}.link-child-modal .modal-close:disabled{opacity:.5;cursor:not-allowed}.link-child-modal .modal-content{flex:1;overflow-y:auto;padding:1.25rem 1.5rem}.link-child-modal .modal-error{padding:.75rem 1rem;margin-bottom:1rem;background:var(--danger-soft, rgba(239, 68, 68, .1));border:1px solid var(--danger-border, rgba(239, 68, 68, .2));border-radius:10px;color:var(--danger-ink, #dc2626);font-size:var(--text-sm, .875rem)}.link-child-modal .form-section{margin-bottom:1.5rem}.link-child-modal .form-section:last-child{margin-bottom:0}.link-child-modal .form-field{margin-bottom:1rem}.link-child-modal .form-field:last-child{margin-bottom:0}.link-child-modal .form-field label{display:block;margin-bottom:.375rem;font-size:var(--text-sm, .8125rem);font-weight:500;color:var(--ink, #0f172a)}.link-child-modal .form-field input,.link-child-modal .form-field select,.link-child-modal .form-field textarea{width:100%;padding:.625rem .75rem;border:1px solid var(--border-soft, #d1d5db);border-radius:10px;font-size:var(--text-base, .9375rem);background:var(--surface, #ffffff);color:var(--ink, #0f172a);transition:border-color .15s ease,box-shadow .15s ease}.link-child-modal .form-field input:focus,.link-child-modal .form-field select:focus,.link-child-modal .form-field textarea:focus{outline:none;border-color:var(--primary-border-strong, #2563eb);box-shadow:0 0 0 3px var(--primary-glow, rgba(37, 99, 235, .1))}.link-child-modal .form-field input:disabled,.link-child-modal .form-field select:disabled,.link-child-modal .form-field textarea:disabled{background:var(--surface-muted, #f5f5f5);cursor:not-allowed}.link-child-modal .form-field textarea{resize:vertical;min-height:60px}.link-child-modal .child-picker{display:flex;flex-direction:column;gap:4px;max-height:200px;overflow-y:auto;margin-top:8px;padding:4px;background:var(--surface-muted, #fafafa);border:1px solid var(--border-soft, #e5e5e5);border-radius:10px}.link-child-modal .child-picker-loading,.link-child-modal .child-picker-empty{padding:24px;text-align:center}.link-child-modal .child-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--surface, #ffffff);border:1px solid var(--border-soft, #e5e5e5);border-radius:8px;cursor:pointer;text-align:left;font-family:inherit;font-size:inherit;transition:background .12s ease,border-color .12s ease;outline:none;-webkit-tap-highlight-color:transparent}.link-child-modal .child-row:focus-visible{outline:2px solid var(--primary-ink, #2563eb);outline-offset:2px}.link-child-modal .child-row:hover:not(:disabled){background:var(--surface-hover, #f5f5f5);border-color:var(--border-medium, #d1d5db)}.link-child-modal .child-row.selected{background:var(--primary-soft, rgba(37, 99, 235, .08));border-color:var(--primary-border, rgba(37, 99, 235, .3))}.link-child-modal .child-row:disabled{opacity:.5;cursor:not-allowed}.link-child-modal .child-avatar{width:36px;height:36px;border-radius:50%;background:var(--primary-soft, rgba(37, 99, 235, .1));color:var(--primary-ink, #2563eb);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--text-sm, .875rem);flex-shrink:0}.link-child-modal .child-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.link-child-modal .child-name{font-size:var(--text-sm, .875rem);font-weight:500;color:var(--ink, #0f172a)}.link-child-modal .child-meta{font-size:var(--text-xs, .75rem)}.link-child-modal .child-check{font-size:var(--text-base, 1rem);color:var(--primary-ink, #2563eb);font-weight:600}.link-child-modal .relationship-section{padding-top:1rem;border-top:1px solid var(--border-soft, #e5e5e5)}.link-child-modal .section-title{font-size:var(--text-sm, .8125rem);font-weight:600;color:var(--ink, #0f172a);display:flex;align-items:baseline;gap:1.25rem;margin-bottom:.5rem}.link-child-modal .section-scope{font-size:var(--text-xs, .75rem);color:var(--muted, #64748b);font-weight:400;margin-left:.25rem;opacity:.72}.link-child-modal .permissions-section{padding-top:1rem;border-top:1px solid var(--border-soft, #e5e5e5)}.link-child-modal .checkbox-field{display:flex;align-items:flex-start;gap:12px;padding:.5rem .75rem;margin:0 -.75rem;border-radius:8px;cursor:pointer;transition:background .15s ease}.link-child-modal .checkbox-field.emergency-field{margin-top:.5rem}.link-child-modal .checkbox-field:hover{background:transparent}.link-child-modal .checkbox-field input[type=checkbox]{width:18px;height:18px;margin-top:2px;flex-shrink:0;align-self:flex-start;accent-color:var(--accent, #2563eb);cursor:pointer}.link-child-modal .checkbox-label{display:flex;flex-direction:column;gap:.125rem;align-items:flex-start}.link-child-modal .checkbox-label strong{font-size:var(--text-sm, .875rem);font-weight:500;color:var(--ink, #0f172a);line-height:1.08}.link-child-modal .checkbox-hint{font-size:var(--text-xs, .75rem);color:var(--muted, #64748b);margin-top:2px}.link-child-modal .permissions-section .checkbox-field{padding-left:1.25rem;gap:14px}.link-child-modal .permissions-section .checkbox-label strong{font-weight:400}.link-child-modal .permissions-section .checkbox-label .checkbox-hint{margin-left:12px;font-size:var(--text-2xs, .72rem);opacity:.85}.link-child-modal .show-notes-btn{background:none;border:none;font-size:var(--text-sm, .8125rem);font-weight:600;color:var(--primary-ink, #2563eb);cursor:pointer;padding:.5rem .75rem;margin:.25rem -.75rem;border-radius:8px;transition:background .15s ease}.link-child-modal .show-notes-btn:hover:not(:disabled){background:var(--surface-muted, #f5f5f5)}.link-child-modal .show-notes-btn .show-notes-optional{font-weight:400;color:var(--muted, #64748b);margin-left:6px}.link-child-modal .show-notes-btn .show-notes-main{font-weight:600}.link-child-modal .notes-field{margin-top:.5rem}.link-child-modal .notes-field label{display:block;margin-bottom:.375rem;font-size:var(--text-sm, .8125rem);font-weight:500;color:var(--ink, #0f172a)}.link-child-modal .notes-field textarea{width:100%;padding:.625rem .75rem;border:1px solid var(--border-soft, #d1d5db);border-radius:10px;font-size:var(--text-base, .9375rem);background:var(--surface, #fff)}.link-child-modal .modal-footer{display:flex;flex-direction:column;gap:12px;padding:20px 24px 24px;flex-shrink:0;border-top:1px solid var(--border-soft, #e5e5e5);background:var(--surface-muted, #fafafa)}.link-child-modal .footer-hint{margin:0;font-size:var(--text-xs, .75rem);color:var(--muted, #64748b);opacity:.8;text-align:center}.link-child-modal .footer-actions{display:flex;justify-content:flex-end;gap:12px}.link-child-modal .btn-secondary{background:transparent;border:none;color:var(--ink, #0f172a);font-size:var(--text-base, .9375rem);font-weight:600;cursor:pointer;padding:10px 14px;border-radius:10px}.link-child-modal .btn-secondary:hover:not(:disabled){opacity:.7}.link-child-modal .btn-secondary:disabled{opacity:.5;cursor:not-allowed}.link-child-modal .btn-primary{background:var(--ink)!important;border:none!important;color:var(--text-on-dark)!important;padding:12px 18px;border-radius:10px;font-size:var(--text-base, .9375rem);font-weight:600;cursor:pointer;transition:opacity .15s ease,background .15s ease}.link-child-modal .btn-primary:hover:not(:disabled){opacity:.95}.link-child-modal .btn-primary:disabled{background:var(--muted)!important;color:var(--muted-soft)!important;opacity:.6;cursor:not-allowed}.pricing-section{display:flex;flex-direction:column;background:#fff;border-radius:16px;padding:24px 28px;flex:1;min-height:0;margin-bottom:-42px;overflow-y:auto;box-shadow:0 2px 6px #1018280f;max-width:940px;width:100%;align-self:center}.pricing-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;gap:16px;color:var(--muted)}.pricing-spinner{width:32px;height:32px;border:3px solid var(--border-soft, #e5e5e5);border-top-color:var(--ink);border-radius:50%;animation:pricing-spin .8s linear infinite}@keyframes pricing-spin{to{transform:rotate(360deg)}}.pricing-wizard{position:relative;display:grid;grid-template-columns:1fr 260px;grid-template-rows:auto auto 1fr;gap:0 32px;padding:0;flex:1}.pricing-wizard-header,.pricing-wizard-progress-row{grid-column:1 / -1}.pricing-wizard-content{grid-column:1;grid-row:3}.pricing-wizard-sidebar{grid-column:2;grid-row:3;padding:0;align-self:start}.pricing-sidebar-card{padding:18px 20px;background:var(--surface);border:1px solid var(--border-soft);border-radius:12px}.pricing-sidebar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border-softest)}.pricing-sidebar-title{margin:0;font-size:13px;font-weight:600;color:var(--ink)}.pricing-sidebar-progress{font-size:11px;color:var(--muted)}.pricing-sidebar-checklist{display:flex;flex-direction:column;gap:0;padding:0;background:transparent;border:none;border-radius:0;margin:0}.pricing-sidebar-item{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:0 -10px;font-size:13px;color:var(--muted);border-radius:6px;opacity:.5}.pricing-sidebar-item.is-current{color:var(--ink);font-weight:700;background:var(--surface-soft, #f8fafc);opacity:1}.pricing-sidebar-item.is-past{color:var(--muted);opacity:.6}.pricing-sidebar-item.is-done{color:var(--success-ink, #2e7d32);opacity:1}.pricing-sidebar-item.is-current.is-done{color:var(--success-ink, #2e7d32);background:var(--success-soft, #e8f5e9)}.pricing-sidebar-indicator{display:flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:11px;color:inherit;background:var(--surface-muted, #f5f5f5);border-radius:50%}.pricing-sidebar-item.is-current .pricing-sidebar-indicator{background:var(--ink);color:#fff}.pricing-sidebar-item.is-past .pricing-sidebar-indicator,.pricing-sidebar-item.is-done .pricing-sidebar-indicator{background:var(--success-soft, #e8f5e9);color:var(--success-ink, #2e7d32)}.pricing-sidebar-label{flex:1}.pricing-sidebar-hint{margin:14px 0 0;padding-top:14px;border-top:1px solid var(--border-softest);font-size:12px;color:var(--muted);line-height:1.5}.pricing-sidebar-card-light{background:transparent;border:none;padding:0}.pricing-sidebar-header-minimal{margin-bottom:12px}.pricing-sidebar-step-count{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);opacity:.7}.pricing-sidebar-tip{margin:0 0 14px;font-size:14px;font-weight:500;color:var(--ink);line-height:1.5}.pricing-sidebar-reassurance{display:flex;align-items:center;gap:6px;padding:8px 10px;background:transparent;border:1px solid var(--border-soft, #e2e8f0);border-radius:6px;font-size:11px;color:var(--muted);opacity:.7}.pricing-sidebar-reassurance svg{flex-shrink:0;width:12px;height:12px;color:#94a3b8;opacity:.7}.pricing-wizard-header{text-align:left;margin-bottom:20px}.pricing-wizard-header h1{margin:0 0 6px;font-size:20px;font-weight:700;color:var(--ink);letter-spacing:-.01em}.pricing-wizard-subtitle{margin:0;font-size:14px;font-weight:400;color:var(--muted);line-height:1.6;opacity:.85}.pricing-wizard-progress-row{display:flex;flex-direction:column;gap:12px;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--border-softest, #eef1f5)}.pricing-wizard-progress{display:flex;align-items:center;gap:6px;background:#eef1f7;border-radius:14px;padding:6px;width:fit-content}.pricing-progress-step{display:flex;align-items:center;gap:8px;height:40px;padding:0 16px;background:transparent;border:none;border-radius:10px;font-size:13px;color:var(--muted);cursor:default;transition:all .15s ease;position:relative}.pricing-progress-step:not(:first-child):before{content:"";position:absolute;left:-3px;top:50%;transform:translateY(-50%);width:1px;height:20px;background:var(--border-soft, #e2e8f0);opacity:.6;transition:opacity .15s ease}.pricing-progress-step.active:before,.pricing-progress-step.active+.pricing-progress-step:before,.pricing-progress-step.clickable:hover:before,.pricing-progress-step.clickable:hover+.pricing-progress-step:before{opacity:0}.pricing-progress-step.clickable{cursor:pointer}.pricing-progress-step.clickable:hover{background:var(--surface, #fff);color:var(--ink)}.pricing-progress-step.active{background:var(--surface, #fff);color:var(--ink);box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a}.pricing-progress-step.complete{color:#34c38f}.pricing-progress-step.complete.clickable:hover{background:var(--surface)}.pricing-progress-number{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--border-soft);border-radius:50%;font-size:11px;font-weight:700;color:var(--muted);transition:all .15s ease}.pricing-progress-step.active .pricing-progress-number{background:var(--primary, #58c4be);color:#fff}.pricing-progress-step.complete .pricing-progress-number{background:#e6f7f0;color:#34c38f}.pricing-progress-label{font-weight:500;letter-spacing:-.01em}.pricing-progress-step.active .pricing-progress-label{font-weight:600}.pricing-progress-separator{display:none}.pricing-wizard-step-indicator{font-size:12px;font-weight:500;color:var(--muted);margin-top:2px}.pricing-wizard-content{display:flex;flex-direction:column;flex:1;min-height:0}.pricing-step{display:flex;flex-direction:column;flex:1;padding:0}.pricing-step h2,.pricing-step-desc{display:none}.pricing-step-footer{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding:24px 0 0;border-top:1px solid #eef1f5}.pricing-step-footer .pricing-btn-primary{min-width:120px}.pricing-step-footer-end{justify-content:flex-end}.pricing-step-footer.is-empty{border-top-color:var(--border-softest)}.pricing-step-footer.is-empty .pricing-btn-secondary{opacity:.6}.pricing-step-hint{font-size:12px;color:var(--muted);opacity:.7}.pricing-step-exit-hint{flex-basis:100%;text-align:right;font-size:12px;color:var(--muted);margin-top:4px}.pricing-exit-link{position:absolute;top:0;right:0;background:transparent;border:none;padding:4px 0;font-size:12px;font-weight:400;color:var(--muted);opacity:.5;cursor:pointer;transition:opacity .15s ease}.pricing-exit-link:hover{opacity:.8}.pricing-modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.pricing-modal{background:var(--surface);border-radius:18px;padding:24px;max-width:360px;width:90%;box-shadow:0 8px 32px #0000001f}.pricing-modal h3{margin:0 0 8px;font-size:18px;font-weight:600;color:var(--ink)}.pricing-modal p{margin:0 0 20px;font-size:14px;color:var(--muted);line-height:1.5}.pricing-modal-actions{display:flex;gap:12px;justify-content:flex-end}.pricing-progress-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;background:#fef9ec;border:1px solid #f5e6c4;border-radius:8px;margin-bottom:20px}.pricing-progress-banner-content{display:flex;align-items:center;gap:8px}.pricing-progress-banner-title{font-size:var(--text-sm);font-weight:600;color:#92610a}.pricing-progress-banner-desc{font-size:var(--text-xs);color:#b08320}.pricing-form-card{background:#fbfcfe;border:1px solid #eef1f5;border-radius:14px;padding:0;overflow:hidden}.pricing-form-card-header{display:flex;align-items:center;gap:12px;padding:14px 20px;background:#fff;border-bottom:1px solid #eef1f5}.pricing-form-card-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--primary-soft, #e0f7f5);border-radius:8px;color:var(--primary, #58c4be)}.pricing-form-card-title-group{display:flex;flex-direction:column;gap:2px}.pricing-form-card-title{font-size:15px;font-weight:600;color:var(--ink);margin:0}.pricing-form-card-subtitle{font-size:12px;color:var(--muted);font-weight:400}.pricing-form-card-body{padding:20px}.pricing-form{display:flex;flex-direction:column;gap:14px}.pricing-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.pricing-form-field{display:flex;flex-direction:column;gap:10px}.pricing-form-field+.pricing-form-field{margin-top:22px}.pricing-form-row .pricing-form-field+.pricing-form-field{margin-top:0}.pricing-form-field label{font-size:12px;font-weight:500;color:var(--muted)}.pricing-form-field input,.pricing-form-field select,.pricing-form-field textarea{padding:10px 12px;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;font-size:14px;color:var(--ink);transition:border-color .15s,box-shadow .15s}.pricing-form-field input:focus,.pricing-form-field select:focus,.pricing-form-field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #0000000f}.pricing-form-field input::placeholder{color:var(--muted)}.pricing-form-field .datepicker{width:100%}.pricing-form-field .datepicker-trigger{width:100%;padding:10px 12px;border-color:var(--border-soft);justify-content:space-between}.pricing-form-field .datepicker-trigger:hover{border-color:var(--border-strong, #a3a3a3)}.pricing-form-field .datepicker-trigger:focus{border-color:var(--ink);box-shadow:0 0 0 3px #0000000f}.pricing-input-prefix{display:flex;align-items:center;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;overflow:hidden;transition:border-color .15s,box-shadow .15s}.pricing-input-prefix:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px #0000000f}.pricing-input-prefix span{padding:10px 0 10px 12px;color:var(--muted)}.pricing-input-prefix input{flex:1;padding:10px 12px 10px 4px;border:none;background:transparent}.pricing-input-prefix input:focus{outline:none;box-shadow:none}.pricing-form-error{padding:10px 14px;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;font-size:13px;color:#dc2626}.pricing-form-hint{margin:0;font-size:12px;color:var(--muted);opacity:.7}.pricing-form-intro{margin:0 0 20px;font-size:14px;font-weight:400;color:var(--muted);line-height:1.6}.pricing-reassurance{display:block;margin-top:6px;font-size:13px;color:var(--success-ink, #2e7d32);font-weight:500}.pricing-form-hint-below{margin:16px 0 0;font-size:13px;font-weight:400;color:var(--muted);opacity:.7}.pricing-field-hint{margin-top:4px;font-size:11px;color:var(--muted);opacity:.55}.pricing-btn-text-cancel{padding:12px 16px;background:none;border:none;font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;transition:color .15s ease}.pricing-btn-text-cancel:hover{color:var(--ink)}.pricing-form-group{display:flex;flex-direction:column;gap:8px;margin-top:4px}.pricing-form-group-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.pricing-schedule-preview{display:flex;align-items:center;justify-content:space-between;margin-top:8px}.pricing-schedule-preview-text{font-size:12px;color:var(--muted);opacity:.7}.pricing-form-actions{display:flex;justify-content:flex-start;gap:10px;margin-top:16px}.pricing-form-actions-divider{height:1px;background:var(--border-softest);margin:32px 0 16px}.pricing-form-actions-single{margin-top:0}.pricing-btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 28px;background:var(--primary, #58c4be);border:1px solid transparent;border-radius:12px;font-size:15px;font-weight:600;color:#fff;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #58c4be40}.pricing-btn-primary:hover:not(:disabled){background:var(--primary-hover, #4ab5af);box-shadow:0 4px 12px #58c4be59;transform:translateY(-1px)}.pricing-btn-primary.pricing-btn-add-item{height:42px;padding:0 18px;font-size:14px;background:var(--surface);border:1.5px solid var(--ink);color:var(--ink)}.pricing-btn-primary.pricing-btn-add-item:hover:not(:disabled){background:var(--surface-soft, #f8fafc)}.pricing-btn-primary:disabled{opacity:.5;cursor:not-allowed}.pricing-btn-secondary{padding:12px 18px;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;font-size:14px;font-weight:600;color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s}.pricing-btn-secondary:hover:not(:disabled){background:var(--surface-soft);border-color:var(--border-medium)}.pricing-btn-secondary:disabled{opacity:.6;cursor:not-allowed}.pricing-btn-danger{padding:12px 18px;background:var(--error, #dc2626);border:none;border-radius:10px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;transition:background .15s,opacity .15s}.pricing-btn-danger:hover:not(:disabled){background:var(--error-hover, #b91c1c)}.pricing-btn-add{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;background:transparent;border:1px dashed var(--border-medium);border-radius:10px;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s}.pricing-btn-add:hover{background:var(--surface-soft);border-color:var(--ink)}.pricing-btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:6px;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}.pricing-btn-icon:hover{background:var(--surface-soft);color:var(--ink)}.pricing-btn-icon.pricing-btn-danger{padding:0;background:transparent;color:var(--muted)}.pricing-btn-icon.pricing-btn-danger:hover{background:#fef2f2;color:#dc2626}.pricing-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.pricing-empty-state{display:flex;flex-direction:column;align-items:flex-start;padding:24px 40px 28px;background:#fbfcfe;border:1px solid #eef1f5;border-radius:16px;width:100%;max-width:760px;min-height:180px}.pricing-empty-text{margin:0 0 4px;font-size:18px;font-weight:600;color:var(--ink)}.pricing-empty-text-light{margin:0 0 16px;font-size:15px;font-weight:500;color:var(--muted-strong, #64748b)}.pricing-empty-state-compact{min-height:auto;padding:24px 40px 32px}.pricing-empty-label{display:block;margin:0 0 12px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.pricing-secondary-action{display:inline-flex;align-items:center;gap:4px;margin-top:28px;margin-left:20px;padding:0;background:none;border:none;font-size:12px;color:var(--muted);opacity:.6;cursor:pointer;transition:color .15s ease,opacity .15s ease}.pricing-secondary-action:hover{color:var(--muted-strong, #64748b);opacity:.85}.pricing-secondary-action svg{opacity:.5;transition:opacity .15s ease,transform .15s ease}.pricing-secondary-action:hover svg{opacity:.7;transform:translate(2px)}.pricing-empty-hint{margin:0 0 18px;padding-bottom:16px;border-bottom:1px solid var(--border-softest);font-size:14px;color:var(--muted);width:100%}.pricing-empty-reassurance{margin:16px 0 0;font-size:12px;color:var(--muted);opacity:.6}.pricing-quick-start{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.pricing-quick-start-label{font-size:12px;font-weight:500;color:var(--muted)}.pricing-quick-start-label.pricing-recommended-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;background:var(--surface-soft, #f8fafc);border-radius:999px;font-size:11px;font-weight:600;color:var(--muted-strong, #64748b)}.pricing-recommended-pill svg{color:var(--warning-ink, #d97706);opacity:.8}.pricing-quick-start-chips{display:flex;flex-wrap:wrap;gap:10px}.pricing-quick-start-helper{display:block;margin-top:8px;font-size:12px;color:var(--muted);opacity:.8}.pricing-quick-chip{display:inline-flex;align-items:center;gap:6px;padding:16px 22px;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;font-size:15px;font-weight:500;color:var(--ink);cursor:pointer;transition:all .15s ease}.pricing-quick-chip:hover:not(.is-selected){border-color:var(--border-medium);background:var(--surface-soft, #fafafa)}.pricing-quick-chip.pricing-quick-chip-primary{border-color:var(--border-medium);border-width:1.5px;background:var(--surface);box-shadow:0 1px 3px #0000000a;transition:all .15s ease}.pricing-quick-chip.pricing-quick-chip-primary:hover{border-color:var(--ink);background:var(--surface-soft, #fafafa);box-shadow:0 4px 12px #00000014;transform:translateY(-1px)}.pricing-quick-chip.pricing-quick-chip-primary:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #0000000f}.pricing-quick-chip.pricing-quick-chip-primary svg{opacity:.5;transition:opacity .15s ease,transform .15s ease}.pricing-quick-chip.pricing-quick-chip-primary:hover svg{opacity:.8;transform:translate(2px)}.pricing-quick-chip.is-selected{background:var(--primary-soft, #f0f4ff);border-color:var(--ink);border-width:2px;padding:15px 21px;color:var(--ink);font-weight:600;box-shadow:0 0 0 3px #6366f114}.pricing-quick-chip.is-selected:hover{background:var(--primary-soft, #e8edff)}.pricing-selection-feedback{display:inline-flex;align-items:center;gap:5px;margin-top:6px;font-size:12px;font-weight:500;color:var(--success-ink, #2e7d32);animation:pricing-selection-in .2s ease-out}@keyframes pricing-selection-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.pricing-selection-feedback svg{color:var(--success-ink, #2e7d32)}.pricing-btn-text{display:inline-flex;align-items:center;gap:6px;padding:0;background:none;border:none;font-size:13px;font-weight:500;color:var(--muted);opacity:.7;cursor:pointer;transition:opacity .15s ease}.pricing-btn-text:hover{opacity:1}.pricing-btn-text svg{opacity:.5}.pricing-btn-text-link{display:inline-flex;align-items:center;gap:4px;margin-top:16px;padding:0;background:none;border:none;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;transition:color .15s ease}.pricing-btn-text-link:hover{color:var(--ink)}.pricing-btn-text-link svg{opacity:.5;transition:opacity .15s ease,transform .15s ease}.pricing-btn-text-link:hover svg{opacity:.8;transform:translate(2px)}.pricing-btn-text-link-indented{margin-left:16px;font-size:12px;opacity:.7}.pricing-btn-text-link-indented:hover{opacity:1}.pricing-optional-guidance{margin-top:16px;padding:0;background:none;border:none;font-size:12px;color:var(--muted);cursor:pointer;transition:color .15s ease}.pricing-optional-guidance:hover{color:var(--muted-strong, #64748b)}.pricing-btn-text-sm{padding:0;background:none;border:none;font-size:12px;font-weight:500;color:var(--muted);cursor:pointer;transition:color .15s ease}.pricing-btn-text-sm:hover{color:var(--ink)}.pricing-btn-text-sm.pricing-btn-text-danger:hover{color:var(--error, #dc2626)}.pricing-charges-confirmed{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.pricing-charge-confirmed{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;border-left:3px solid var(--success-ink, #2e7d32);animation:pricing-confirm-in .25s ease-out}@keyframes pricing-confirm-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.pricing-charge-confirmed-info{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.pricing-charge-confirmed-main{display:flex;align-items:center;gap:8px}.pricing-charge-confirmed-check{display:flex;align-items:center;justify-content:center;color:var(--success-ink, #2e7d32)}.pricing-charge-confirmed-name{font-size:15px;font-weight:600;color:var(--ink)}.pricing-charge-confirmed-summary{font-size:13px;color:var(--muted);margin-left:22px}.pricing-charge-confirmed-actions{display:flex;align-items:center;gap:4px;flex-shrink:0;margin-top:2px}.pricing-charges-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 24px;background:var(--surface-soft, #f8fafc);border:1px solid var(--border-softest);border-radius:12px;margin-bottom:24px}.pricing-charges-empty-label{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:0}.pricing-charges-empty-norm{font-size:13px;color:var(--muted);margin:0 0 4px}.pricing-charges-empty-text{font-size:14px;color:var(--muted);text-align:center;margin:0}.pricing-quick-start-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.pricing-quick-start-chip{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 18px;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;cursor:pointer;transition:all .15s ease;box-shadow:0 1px 2px #0000000a}.pricing-quick-start-chip:hover{border-color:var(--ink);background:var(--surface);box-shadow:0 3px 8px #00000014;transform:translateY(-1px)}.pricing-quick-start-chip:active{transform:translateY(0);box-shadow:0 1px 3px #0000000f}.pricing-quick-start-name{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--ink)}.pricing-quick-start-name svg{color:var(--muted);opacity:.7}.pricing-quick-start-chip:hover .pricing-quick-start-name svg{opacity:1}.pricing-quick-start-hint{font-size:11px;color:var(--muted);margin-left:20px}.pricing-btn-custom-charge{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;background:transparent;border:1px dashed var(--border-medium);border-radius:8px;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;transition:all .15s ease;margin-top:4px}.pricing-btn-custom-charge:hover{border-color:var(--ink);color:var(--ink);background:var(--surface)}.pricing-btn-custom-charge svg{opacity:.6}.pricing-btn-custom-charge:hover svg{opacity:1}.pricing-charges-add-more{display:flex;flex-direction:column;gap:10px;padding:16px 18px;background:var(--surface-soft, #f8fafc);border:1px dashed var(--border-soft);border-radius:10px}.pricing-charges-add-more-label{font-size:12px;font-weight:500;color:var(--muted)}.pricing-quick-start-secondary{display:flex;flex-wrap:wrap;gap:8px}.pricing-quick-chip-secondary{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;background:var(--surface);border:1px solid var(--border-soft);border-radius:6px;font-size:12px;font-weight:500;color:var(--muted);cursor:pointer;transition:all .15s ease}.pricing-quick-chip-secondary:hover{border-color:var(--border-medium);color:var(--ink);background:var(--surface)}.pricing-quick-chip-secondary svg{opacity:.5}.pricing-quick-chip-secondary:hover svg{opacity:.8}.pricing-quick-chip-secondary.pricing-quick-chip-custom{border-style:dashed}.pricing-step-hint-inline{display:block;font-size:13px;color:var(--muted);margin-top:4px}.pricing-step-footer-left,.pricing-step-footer-right{display:flex;align-items:center;gap:12px}.pricing-btn-link{background:none;border:none;padding:8px 12px;font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;transition:color .15s ease}.pricing-btn-link:hover{color:var(--ink)}.pricing-optional-badge{font-size:10px;font-weight:500;color:var(--muted);background:var(--surface-soft, #f1f5f9);padding:2px 6px;border-radius:4px;margin-left:6px;text-transform:lowercase}.pricing-sidebar-item.is-optional .pricing-sidebar-indicator{opacity:.7}.pricing-optional-section{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:var(--surface-soft, #f8fafc);border:1px solid var(--border-softest, #e5e7eb);border-radius:12px;margin-top:8px}.pricing-optional-section.pricing-optional-quiet{padding:10px 16px;background:transparent;border:1px dashed var(--border-soft)}.pricing-optional-label{font-size:12px;color:var(--muted)}.pricing-btn-ghost{display:inline-flex;align-items:center;gap:4px;padding:0;background:none;border:none;font-size:12px;font-weight:500;color:var(--muted);cursor:pointer;transition:color .15s ease}.pricing-btn-ghost:hover{color:var(--ink)}.pricing-btn-ghost svg{opacity:.6}.pricing-optional-inline{display:flex;align-items:center;gap:6px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border-softest)}.pricing-optional-inline-label{font-size:12px;color:var(--muted)}.pricing-optional-inline-sep{color:var(--border-soft);font-size:10px}.pricing-optional-header{display:flex;flex-direction:column;gap:2px}.pricing-optional-title{font-size:13px;font-weight:600;color:var(--ink)}.pricing-optional-desc{font-size:12px;color:var(--muted);opacity:.8}.pricing-optional-section .pricing-btn-text{flex-shrink:0;padding:8px 14px;background:var(--surface);border:1px solid var(--border-soft);border-radius:8px;font-size:13px;opacity:1;transition:border-color .15s ease,background .15s ease}.pricing-optional-section .pricing-btn-text:hover{border-color:var(--border-medium);background:var(--surface)}.pricing-footer-hint{flex-basis:100%;font-size:12px;color:var(--muted);margin-bottom:8px}.pricing-empty{padding:8px 0;text-align:center;font-size:13px;color:var(--muted);opacity:.7}.pricing-list-item{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;background:#fbfcfe;border:1px solid #eef1f5;border-radius:10px;transition:background .15s,border-color .15s}.pricing-list-item:hover{background:#fff;border-color:#e2e8f0}.pricing-list-item-info{display:flex;flex-direction:column;gap:4px}.pricing-list-item-header{display:flex;align-items:center;gap:10px}.pricing-list-item-name{font-size:15px;font-weight:500;color:var(--ink)}.pricing-list-item-desc,.pricing-list-item-summary{font-size:13px;color:var(--muted)}.pricing-list-item-actions{display:flex;align-items:center;gap:4px}.pricing-list-add{padding:24px 24px 28px;background:#00000004;border:1px solid var(--border-softest);border-radius:12px}.pricing-charge-type-selector{display:flex;gap:8px;margin-bottom:28px;padding-bottom:18px;border-bottom:1px solid var(--border-soft)}.pricing-charge-type{flex:1;padding:10px 12px;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;transition:all .15s}.pricing-charge-type:hover{border-color:var(--border-medium);color:var(--ink)}.pricing-charge-type.active{background:var(--ink);border-color:var(--ink);color:#fff}.pricing-charge-type-hint{margin:-12px 0 12px;font-size:11px;color:var(--muted);opacity:.6}.pricing-category-badge{padding:3px 8px;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.pricing-category-tuition{background:#e3f2fd;color:#1565c0}.pricing-category-addon{background:#f3e5f5;color:#7b1fa2}.pricing-category-pack{background:#fff3e0;color:#e65100}.pricing-category-fee{background:#e8f5e9;color:#2e7d32}.pricing-category-adjustment{background:#fce4ec;color:#c2185b}.pricing-period-label{margin-bottom:16px;padding:0;background:transparent;border-radius:0;font-size:13px;color:var(--muted)}.pricing-period-label strong{color:var(--ink);font-weight:600}.pricing-program-cards{display:flex;flex-direction:column;gap:0;margin-bottom:16px;padding:16px;background:#fbfcfe;border:1px solid #eef1f5;border-radius:10px}.pricing-program-pricing-card{padding:0 0 16px;background:transparent;border:none;border-radius:0;border-bottom:1px solid #eef1f5;margin-bottom:16px}.pricing-program-pricing-card:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.pricing-program-pricing-card.needs-tuition{background:transparent}.pricing-program-pricing-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:0}.pricing-program-pricing-name{font-size:14px;font-weight:600;color:var(--ink)}.pricing-needs-tuition-badge{padding:2px 8px;background:#fef9e7;border:1px solid #f5e6b3;border-radius:4px;font-size:10px;font-weight:600;color:#92610a;text-transform:uppercase;letter-spacing:.3px}.pricing-program-pricing-section{margin-bottom:16px}.pricing-program-pricing-section:last-child{margin-bottom:0}.pricing-program-pricing-section label{display:block;margin-bottom:8px;font-size:13px;font-weight:500;color:var(--muted)}.pricing-program-pricing-section select{width:100%;padding:10px 12px;background:var(--surface);border:1px solid var(--border-soft);border-radius:10px;font-size:14px;color:var(--ink)}.pricing-required-badge{display:inline-block;margin-left:8px;padding:2px 6px;background:#e3f2fd;border-radius:4px;font-size:10px;font-weight:600;color:#1565c0;text-transform:uppercase;vertical-align:middle}.pricing-addons-list{display:flex;flex-direction:column;gap:8px}.pricing-addon-row{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--surface-soft);border-radius:10px}.pricing-addon-checkbox{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink);cursor:pointer}.pricing-addon-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.pricing-addon-rate{margin-left:auto;padding-left:12px;font-size:13px;color:var(--muted)}.pricing-addon-default{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted);cursor:pointer}.pricing-addon-default input[type=checkbox]{width:14px;height:14px;cursor:pointer}.pricing-tuition-count{padding:2px 8px;background:#eef2f7;border:none;border-radius:4px;font-size:11px;font-weight:600;color:#64748b}.pricing-tuition-options-list{display:flex;flex-direction:column;gap:0;margin-bottom:8px;background:#fbfcfe;border:1px solid #eef1f5;border-radius:8px;overflow:hidden}.pricing-tuition-option-item{padding:10px 14px;background:transparent;border-bottom:1px solid #eef1f5}.pricing-tuition-option-item:last-child{border-bottom:none}.pricing-tuition-option-item:nth-child(2n){background:#f8fafc}.pricing-tuition-option-display{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:16px}.pricing-tuition-option-info{display:flex;align-items:center;gap:12px}.pricing-tuition-option-label{font-size:13px;font-weight:400;color:var(--muted)}.pricing-tuition-option-rate{display:inline-block;font-size:13px;font-weight:600;color:var(--ink)}.pricing-tuition-option-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .15s}.pricing-tuition-option-item:hover .pricing-tuition-option-actions{opacity:.7}.pricing-tuition-option-form{display:flex;flex-direction:column;gap:10px;padding:12px;background:#f8fafc;border-radius:8px;margin-top:8px}.pricing-tuition-add-form{margin-top:8px;padding:12px;background:#f8fafc;border:1px solid #eef1f5;border-radius:8px}.pricing-btn-add-inline{display:inline-flex;align-items:center;gap:6px;width:auto;padding:8px 14px;margin-top:2px;background:transparent;border:none;border-radius:0;font-size:13px;font-weight:500;color:#64748b;cursor:pointer;transition:color .15s ease}.pricing-btn-add-inline:hover{color:var(--ink);background:transparent;border-color:transparent}.pricing-btn-add-inline svg{color:#94a3b8}.pricing-btn-add-inline:hover{background:var(--surface-soft);border-color:var(--border-medium);color:var(--ink)}.pricing-dashboard{max-width:680px;margin:0;padding:0}.pricing-summary-cards{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.pricing-summary-card{display:flex;align-items:center;gap:6px;padding:6px 12px;background:transparent;border:1px solid #e5eaf2;border-radius:6px;text-align:left;cursor:pointer;transition:all .15s ease}.pricing-summary-card:hover{background:#f8fafc;border-color:#d8dfe8}.pricing-summary-label{font-size:12px;font-weight:500;color:#64748b}.pricing-summary-value{font-size:12px;font-weight:600;color:#475569}.pricing-summary-card .pricing-summary-label:after{content:"·";margin-left:5px;color:#cbd5e1}.pricing-summary-card-empty{border:1px dashed #d0d7e3;background:transparent}.pricing-summary-card-empty:hover{border-color:#b8c4d4;background:#f8fafc}.pricing-summary-action{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.pricing-programs-list .pricing-empty-state{padding:20px 16px;text-align:center;align-items:center}.pricing-empty-desc{margin:0 0 12px;font-size:var(--text-sm);color:var(--muted);line-height:1.45}.pricing-checklist{display:flex;flex-direction:column;gap:2px;max-width:260px;margin:0 auto;text-align:left}.pricing-checklist-item{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:var(--text-sm);color:var(--muted)}.pricing-checklist-item.done{color:var(--ink)}.pricing-checklist-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--muted)}.pricing-checklist-item.done .pricing-checklist-icon{color:#34c38f}.pricing-checklist-label{flex:1}.pricing-programs-list{background:#fbfcfe;border:1px solid #e5eaf2;border-radius:10px;overflow:hidden;margin-top:4px}.pricing-programs-list h2{margin:0;padding:14px 16px;font-size:var(--text-base-plus);font-weight:600;color:var(--ink);border-bottom:1px solid var(--border-subtle)}.pricing-program-card{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #eef1f5;background:#fff;transition:background .1s ease}.pricing-program-card:nth-child(2n){background:#fafbfd}.pricing-program-card:last-child{border-bottom:none}.pricing-program-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.pricing-program-name{font-size:var(--text-base);font-weight:500;color:var(--ink);line-height:1.3}.pricing-program-desc{font-size:var(--text-xs);color:var(--muted);opacity:.85}.pricing-program-price{text-align:right;min-width:80px}.pricing-program-rate{display:inline-block;padding:4px 10px;background:#f1f5f9;border-radius:6px;font-size:13px;font-weight:600;color:#475569;letter-spacing:-.01em}.pricing-program-missing{font-size:var(--text-sm);color:#b8860b}.pricing-ready-panel{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#f4fbf8;border:1px solid #d8ede4;border-radius:6px;margin-bottom:16px}.pricing-ready-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:#34c38f;border-radius:50%;color:#fff;flex-shrink:0}.pricing-ready-icon svg{width:10px;height:10px}.pricing-ready-content{display:flex;align-items:center;gap:6px;flex:1;min-width:0}.pricing-ready-title{font-size:13px;font-weight:600;color:#1a7a52;white-space:nowrap}.pricing-ready-list{display:none}.pricing-ready-actions{display:flex;gap:12px;margin-left:auto;flex-shrink:0}.pricing-ready-actions button{background:none;border:none;padding:4px 8px;font-size:var(--text-xs);font-weight:500;color:#1e6b4a;cursor:pointer;border-radius:4px;transition:background .15s ease}.pricing-ready-actions button:hover{background:#e0f2eb;color:#166534}.pricing-section-header{display:flex;align-items:center;gap:10px;margin:0;padding:14px 16px 10px;background:#fff;border-bottom:none}.pricing-section-header h2{margin:0;padding:0;font-size:15px;font-weight:700;color:#1e293b;letter-spacing:-.02em}.pricing-section-badge{padding:2px 6px;background:#eef1f7;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:#64748b}.pricing-section-desc{margin:0;padding:0 16px 14px;font-size:12px;color:#64748b;line-height:1.4;background:#fff;border-bottom:1px solid #eaeff5}.pricing-usage-programs-note{display:flex;align-items:baseline;gap:6px;padding:10px 16px;background:#f8fafc;border-top:1px solid var(--border-softest);font-size:var(--text-xs)}.pricing-usage-programs-label{color:var(--muted);font-weight:500;white-space:nowrap}.pricing-usage-programs-list{color:var(--ink)}.pricing-dashboard-footer{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding-top:16px;border-top:1px solid #eef1f5}.pricing-dashboard-footer-note{font-size:12px;color:#94a3b8;line-height:1.4}:root.dark .pricing-dashboard-footer{border-top-color:#94a3b81a}:root.dark .pricing-dashboard-footer-note{color:#64748b}.pricing-notification{position:fixed;bottom:24px;left:50%;transform:translate(-50%);padding:12px 20px;background:var(--ink);border-radius:10px;font-size:var(--text-base);color:#fff;box-shadow:0 4px 12px #00000026;z-index:1000;animation:pricing-toast-in .2s ease-out}@keyframes pricing-toast-in{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.pricing-notification-success{background:#2e7d32}.pricing-notification-warning{background:#ed6c02}.pricing-notification-info{background:var(--ink)}.pricing-toggle-label{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.pricing-toggle-label input[type=checkbox]{width:18px;height:18px;margin-top:2px;cursor:pointer}.pricing-toggle-text{display:flex;flex-direction:column;gap:2px}.pricing-toggle-text strong{font-size:var(--text-base);font-weight:600;color:var(--ink)}.pricing-toggle-hint{font-size:var(--text-sm);color:var(--muted);font-weight:400}.pricing-age-range-row{display:flex;align-items:center;gap:12px}.pricing-age-range-input{display:flex;align-items:center;gap:6px}.pricing-age-range-input input{width:70px;text-align:center}.pricing-age-range-label,.pricing-age-range-separator{font-size:var(--text-sm);color:var(--muted)}.pricing-form-hint{font-size:var(--text-sm);color:var(--muted);margin-top:4px}.pricing-billing-badge{padding:3px 8px;background:#e9eef6;border-radius:4px;font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.3px;color:#475569}.pricing-billing-badge.usage-based{background:#e9eef6;color:#475569}.pricing-age-badge{padding:3px 8px;background:#e8f5e9;border-radius:4px;font-size:var(--text-2xs);font-weight:600;color:#2e7d32}.pricing-usage-note{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;padding:10px 12px;background:#f8fafc;border:1px solid #eef1f5;border-radius:6px;margin-bottom:12px;font-size:12px}.pricing-usage-note-label{font-weight:600;color:#64748b}.pricing-usage-note-list{font-weight:500;color:var(--ink)}.pricing-usage-note-hint{flex-basis:100%;margin-top:2px;font-size:11px;color:#94a3b8}@media(max-width:900px){.pricing-wizard{grid-template-columns:1fr;gap:0}.pricing-wizard-sidebar{grid-column:1;grid-row:auto;order:-1;margin-bottom:16px}.pricing-sidebar-card{padding:12px 16px;border-radius:10px}.pricing-sidebar-header{margin-bottom:10px;padding-bottom:8px}.pricing-sidebar-checklist{flex-direction:row;flex-wrap:wrap;gap:4px 8px}.pricing-sidebar-item{padding:4px 8px;margin:0;font-size:11px}.pricing-sidebar-item.is-current{background:transparent}.pricing-sidebar-indicator{width:16px;height:16px;font-size:9px}.pricing-sidebar-hint{display:none}.pricing-empty-state{max-width:100%;padding:28px 24px;min-height:auto}.pricing-empty-hint{margin-bottom:20px;padding-bottom:16px}.pricing-quick-start-chips{gap:8px}.pricing-quick-chip{padding:12px 16px;font-size:14px}.pricing-optional-section{flex-direction:column;align-items:flex-start;gap:12px;padding:14px 16px}.pricing-optional-section.pricing-optional-quiet{flex-direction:row;align-items:center;padding:10px 14px}.pricing-optional-section .pricing-btn-text{width:100%;justify-content:center}.pricing-charge-confirmed{flex-direction:column;align-items:flex-start;padding:12px 14px}.pricing-charge-confirmed-info{width:100%}.pricing-charge-confirmed-summary{margin-left:0}.pricing-charge-confirmed-actions{margin-top:8px}.pricing-step-footer{margin-top:32px;padding:20px 0 0}}@media(max-width:768px){.pricing-wizard-header h1{font-size:16px}.pricing-wizard-progress{flex-wrap:wrap;gap:6px}.pricing-progress-step{padding:6px 10px;font-size:11px}.pricing-step-footer{margin-left:-16px;margin-right:-16px;padding:14px 16px}.pricing-empty-state{padding:28px 24px}.pricing-btn-primary{height:44px;padding:0 20px;font-size:14px}.pricing-form-row{grid-template-columns:1fr}.pricing-charge-type-selector{flex-wrap:wrap}.pricing-charge-type{flex:1 1 45%}.pricing-summary-cards{grid-template-columns:1fr}.pricing-dashboard{padding:24px 16px}}@media(prefers-color-scheme:dark){:root:not(.light) .pricing-ready-panel{background:#22c55e14;border:1px solid rgba(74,222,128,.2)}:root:not(.light) .pricing-ready-icon{background:#22c55e33;color:#4ade80}:root:not(.light) .pricing-ready-title{color:#4ade80}:root:not(.light) .pricing-ready-list{color:#86efac}:root:not(.light) .pricing-ready-actions button{color:#4ade80}:root:not(.light) .pricing-ready-actions button:hover{color:#86efac}:root:not(.light) .pricing-section-badge{background:#38bdf81f;color:#7dd3fc;border:1px solid rgba(56,189,248,.2)}:root:not(.light) .pricing-program-time{color:#94a3b8}:root:not(.light) .pricing-summary-label{color:#94a3b8}:root:not(.light) .pricing-section-desc{color:#94a3b8}:root:not(.light) .pricing-tuition-option-label{color:#64748b}:root:not(.light) .pricing-tuition-option-rate{color:#e2e8f0}:root:not(.light) .pricing-btn-secondary{background:transparent;border-color:#94a3b840;color:#94a3b8}:root:not(.light) .pricing-btn-secondary:hover:not(:disabled){background:#3341554d;border-color:#94a3b866;color:#cbd5e1}:root:not(.light) .pricing-programs-list{border-color:#94a3b826}:root:not(.light) .pricing-summary-card{border-color:#94a3b826}:root:not(.light) .pricing-sidebar-card{border-color:#94a3b826}:root:not(.light) .pricing-program-card{border-bottom-color:#94a3b81a}:root:not(.light) .pricing-section-header{border-bottom-color:#94a3b81a}:root:not(.light) .pricing-list-item{border-color:#94a3b826}:root:not(.light) .pricing-list-item:hover{border-color:#94a3b840}}:root.dark .pricing-ready-panel{background:#22c55e14;border:1px solid rgba(74,222,128,.2)}:root.dark .pricing-ready-icon{background:#22c55e33;color:#4ade80}:root.dark .pricing-ready-title{color:#4ade80}:root.dark .pricing-ready-list{color:#86efac}:root.dark .pricing-ready-actions button{color:#4ade80}:root.dark .pricing-ready-actions button:hover{color:#86efac}:root.dark .pricing-section-badge{background:#38bdf81f;color:#7dd3fc;border:1px solid rgba(56,189,248,.2)}:root.dark .pricing-program-time{color:#94a3b8}:root.dark .pricing-section-desc{color:#94a3b8}:root.dark .pricing-tuition-option-label{color:#64748b}:root.dark .pricing-tuition-option-rate{color:#f1f5f9}:root.dark .pricing-program-cards{background:#1e293b4d;border-color:#94a3b826}:root.dark .pricing-program-pricing-card{border-bottom-color:#94a3b81a}:root.dark .pricing-tuition-options-list{background:#1e293b4d;border-color:#94a3b826}:root.dark .pricing-tuition-option-item{border-bottom-color:#94a3b81a}:root.dark .pricing-tuition-option-item:nth-child(2n){background:#1e293b66}:root.dark .pricing-tuition-add-form{background:#1e293b66;border-color:#94a3b81a}:root.dark .pricing-btn-add-inline{color:#94a3b8}:root.dark .pricing-btn-add-inline:hover{color:#cbd5e1}:root.dark .pricing-btn-add-inline svg{color:#64748b}:root.dark .pricing-btn-secondary{background:transparent;border-color:#94a3b840;color:#94a3b8}:root.dark .pricing-btn-secondary:hover:not(:disabled){background:#3341554d;border-color:#94a3b866;color:#cbd5e1}:root.dark .pricing-programs-list{border-color:#94a3b826}:root.dark .pricing-summary-card{background:transparent;border-color:#94a3b833}:root.dark .pricing-summary-card:hover{background:#3341554d;border-color:#94a3b84d}:root.dark .pricing-summary-label{color:#94a3b8}:root.dark .pricing-summary-value{color:#cbd5e1}:root.dark .pricing-summary-card .pricing-summary-label:after{color:#475569}:root.dark .pricing-programs-list{background:#1e293b4d}:root.dark .pricing-program-card{background:#1e293b33;border-bottom-color:#94a3b81a}:root.dark .pricing-program-card:nth-child(2n){background:#1e293b66}:root.dark .pricing-program-rate{background:#33415580;color:#cbd5e1}:root.dark .pricing-sidebar-card{border-color:#94a3b826}:root.dark .pricing-program-card{border-bottom-color:#94a3b81a}:root.dark .pricing-section-header{background:transparent;border-bottom-color:#94a3b81a}:root.dark .pricing-section-header h2{color:#f1f5f9}:root.dark .pricing-section-desc{background:transparent;border-bottom-color:#94a3b81a}:root.dark .pricing-list-item{border-color:#94a3b826}:root.dark .pricing-list-item:hover{border-color:#94a3b840}:root.dark .pricing-progress-banner{background:#fbbf241a;border-color:#fbbf2433}:root.dark .pricing-progress-banner-title{color:#fbbf24}:root.dark .pricing-progress-banner-desc{color:#fcd34d}:root.dark .pricing-section{background:var(--surface, #1e293b);box-shadow:0 1px 3px #0000004d}:root.dark .pricing-wizard-progress{background:#0f172a99}:root.dark .pricing-progress-step{color:#94a3b8}:root.dark .pricing-progress-step.clickable:hover{background:#33415580;color:#e2e8f0}:root.dark .pricing-progress-step.active{background:#33415599;color:#e2e8f0;box-shadow:0 1px 3px #0003,0 1px 2px #00000026}:root.dark .pricing-progress-step.active .pricing-progress-number{background:var(--primary, #58c4be);color:#fff}:root.dark .pricing-progress-step.complete{color:#5dd9a3}:root.dark .pricing-progress-number{background:#33415580;color:#94a3b8}:root.dark .pricing-progress-step.complete .pricing-progress-number{background:#5dd9a326;color:#5dd9a3}:root.dark .pricing-progress-step:not(:first-child):before{background:#94a3b833}:root.dark .pricing-progress-bar-segment.active{background:var(--primary, #58c4be)}:root.dark .pricing-form-card{background:#1e293b66;border-color:#94a3b81f}:root.dark .pricing-empty-state{background:#1e293b66;border-color:#94a3b81f}:root.dark .pricing-form-card-header{background:#1e293b66;border-bottom-color:#94a3b81a}:root.dark .pricing-form-card-icon{background:#58c4be26;color:#58c4be}:root.dark .pricing-form-card-title{color:#e2e8f0}:root.dark .pricing-form-card-subtitle{color:#94a3b8}:root.dark .pricing-btn-primary{background:var(--primary, #58c4be);box-shadow:0 2px 8px #58c4be33}:root.dark .pricing-btn-primary:hover:not(:disabled){background:var(--primary-hover, #4ab5af);box-shadow:0 4px 12px #58c4be4d}:root.dark .pricing-exit-link{color:#94a3b8}:root.dark .pricing-exit-link:hover{color:#cbd5e1}:root.dark .pricing-sidebar-step-count{color:#94a3b8}:root.dark .pricing-sidebar-tip{color:#e2e8f0}:root.dark .pricing-sidebar-reassurance{background:transparent;border-color:#94a3b833;color:#94a3b8}:root.dark .pricing-sidebar-reassurance svg{color:#64748b}:root.dark .pricing-reassurance{color:#4ade80}@media(prefers-color-scheme:dark){:root:not(.light) .pricing-section{background:var(--surface, #1e293b);box-shadow:0 1px 3px #0000004d}:root:not(.light) .pricing-wizard-progress{background:#0f172a99}:root:not(.light) .pricing-progress-step{color:#94a3b8}:root:not(.light) .pricing-progress-step.clickable:hover{background:#33415580;color:#e2e8f0}:root:not(.light) .pricing-progress-step.active{background:#33415599;color:#e2e8f0;box-shadow:0 1px 3px #0003,0 1px 2px #00000026}:root:not(.light) .pricing-progress-step.active .pricing-progress-number{background:var(--primary, #58c4be);color:#fff}:root:not(.light) .pricing-progress-step.complete{color:#5dd9a3}:root:not(.light) .pricing-progress-number{background:#33415580;color:#94a3b8}:root:not(.light) .pricing-progress-step.complete .pricing-progress-number{background:#5dd9a326;color:#5dd9a3}:root:not(.light) .pricing-progress-step:not(:first-child):before{background:#94a3b833}:root:not(.light) .pricing-progress-bar-segment.active{background:var(--primary, #58c4be)}:root:not(.light) .pricing-form-card{background:#1e293b66;border-color:#94a3b81f}:root:not(.light) .pricing-empty-state{background:#1e293b66;border-color:#94a3b81f}:root:not(.light) .pricing-form-card-header{background:#1e293b66;border-bottom-color:#94a3b81a}:root:not(.light) .pricing-form-card-icon{background:#58c4be26;color:#58c4be}:root:not(.light) .pricing-form-card-title{color:#e2e8f0}:root:not(.light) .pricing-form-card-subtitle{color:#94a3b8}:root:not(.light) .pricing-btn-primary{background:var(--primary, #58c4be);box-shadow:0 2px 8px #58c4be33}:root:not(.light) .pricing-btn-primary:hover:not(:disabled){background:var(--primary-hover, #4ab5af);box-shadow:0 4px 12px #58c4be4d}:root:not(.light) .pricing-exit-link{color:#94a3b8}:root:not(.light) .pricing-exit-link:hover{color:#cbd5e1}:root:not(.light) .pricing-sidebar-step-count{color:#94a3b8}:root:not(.light) .pricing-sidebar-tip{color:#e2e8f0}:root:not(.light) .pricing-sidebar-reassurance{background:transparent;border-color:#94a3b833;color:#94a3b8}:root:not(.light) .pricing-sidebar-reassurance svg{color:#64748b}:root:not(.light) .pricing-reassurance{color:#4ade80}:root:not(.light) .pricing-form-error{background:#ef44441f;border-color:#f871714d;color:#f87171}:root:not(.light) .pricing-usage-note{background:#1e293b66;border-color:#94a3b826}:root:not(.light) .pricing-usage-note-label{color:#94a3b8}:root:not(.light) .pricing-usage-note-hint{color:#64748b}:root:not(.light) .pricing-billing-badge{background:#33415580;color:#cbd5e1}:root:not(.light) .pricing-age-badge{background:#22c55e26;color:#4ade80}:root:not(.light) .pricing-btn-icon.pricing-btn-danger:hover{background:#ef444426;color:#f87171}:root:not(.light) .pricing-wizard-progress-row{border-bottom-color:#94a3b81a}:root:not(.light) .pricing-step-footer{border-top-color:#94a3b81a}:root:not(.light) .pricing-form-actions-divider{background:#94a3b81a}:root:not(.light) .pricing-list-item{background:#1e293b4d}:root:not(.light) .pricing-list-item:hover{background:#33415566}}:root.dark .pricing-form-error{background:#ef44441f;border-color:#f871714d;color:#f87171}:root.dark .pricing-usage-note{background:#1e293b66;border-color:#94a3b826}:root.dark .pricing-usage-note-label{color:#94a3b8}:root.dark .pricing-usage-note-hint{color:#64748b}:root.dark .pricing-billing-badge{background:#33415580;color:#cbd5e1}:root.dark .pricing-age-badge{background:#22c55e26;color:#4ade80}:root.dark .pricing-btn-icon.pricing-btn-danger:hover{background:#ef444426;color:#f87171}:root.dark .pricing-wizard-progress-row{border-bottom-color:#94a3b81a}:root.dark .pricing-step-footer{border-top-color:#94a3b81a}:root.dark .pricing-form-actions-divider{background:#94a3b81a}:root.dark .pricing-list-item{background:#1e293b4d}:root.dark .pricing-list-item:hover{background:#33415566}.drawer-backdrop{position:fixed;top:calc(72px + env(safe-area-inset-top,0px));left:0;right:0;bottom:calc(67px + env(safe-area-inset-bottom,0px));background:var(--ink-overlay-strong);z-index:60;display:flex;justify-content:flex-end}.child-profile-drawer{position:relative;width:100%;max-width:480px;height:100%;background:#f9fafb;display:flex;flex-direction:column;box-shadow:-8px 0 32px #00000026;animation:slideIn .2s ease-out;border-radius:16px 0 0 16px;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 24px 16px;background:var(--surface);border-bottom:1px solid var(--border-medium)}.drawer-header-content{display:flex;flex-direction:column;gap:8px}.drawer-header-main{display:flex;align-items:center;gap:10px}.drawer-header-main h2{margin:0;font-size:var(--text-xl);font-weight:700}.drawer-classroom{display:inline-block;padding:4px 10px;background:var(--surface-muted);border-radius:6px;color:var(--ink-subtle);font-size:var(--text-xs);font-weight:500}.drawer-header-meta{display:flex;align-items:center;gap:8px}.enrollment-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.02em}.enrollment-badge.enrolled,.enrollment-badge.active{background:#22c55e1f;color:var(--success-ink)}.enrollment-badge.pending{background:#fbbf241f;color:var(--warning-ink)}.enrollment-badge.inactive{background:var(--surface-hover);color:var(--muted)}.drawer-close{width:36px;height:36px;border:none;background:transparent;border-radius:999px;font-size:24px;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s ease}.drawer-close:hover{background:var(--surface-hover)}.drawer-tabs{display:flex;gap:0;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--border-medium);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.drawer-tabs::-webkit-scrollbar{display:none}.drawer-tab{padding:12px;border:none;background:transparent;font-size:var(--text-sm);font-weight:500;color:var(--muted);cursor:pointer;position:relative;transition:color .15s ease;white-space:nowrap;flex-shrink:0}.drawer-tab:hover:not(.stub){color:var(--ink)}.drawer-tab.active{color:var(--ink);font-weight:600}.drawer-tab.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--ink);border-radius:2px 2px 0 0}.drawer-tab.stub{cursor:not-allowed;opacity:.5}.tab-stub-badge{margin-left:4px;padding:2px 6px;border-radius:4px;background:var(--surface-muted);font-size:var(--text-2xs);font-weight:500;color:var(--muted)}.drawer-content{flex:1;overflow-y:auto;padding:20px 24px;background:#f9fafb}.drawer-loading{display:flex;flex-direction:column;gap:12px}.skeleton-block{height:60px;background:var(--surface-hover);border-radius:8px}.skeleton-block.short{width:60%}.skeleton-row{display:flex;gap:12px;padding:8px 0}.skeleton-text{height:16px;flex:1;background:var(--surface-hover);border-radius:4px}.skeleton-text.short{flex:0 0 80px}.drawer-error{padding:24px;text-align:center;color:var(--danger-ink)}.tab-overview{display:flex;flex-direction:column;gap:20px}.profile-section{background:var(--surface);border-radius:12px;padding:16px;margin-bottom:12px}.profile-strip{display:flex;gap:16px;align-items:flex-start}.profile-photo{width:64px;height:64px;border-radius:14px;background:var(--surface-muted, #f1f5f9);display:flex;align-items:center;justify-content:center;flex-shrink:0}.profile-photo-initials{font-size:var(--text-xl);font-weight:700;color:var(--muted-strong, #475569)}.profile-info{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.profile-age-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.profile-age{font-size:var(--text-lg);font-weight:700;color:var(--ink)}.profile-age.profile-age-empty{color:var(--muted);font-weight:500}.profile-dob-btn{display:inline-flex;align-items:center;padding:2px 8px;margin:-2px -8px;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background .15s ease}.profile-dob-btn:hover{background:var(--surface-hover)}.profile-dob{font-size:var(--text-xs);color:var(--muted)}.profile-dob.profile-dob-add{color:var(--muted);font-weight:500}.profile-dob.profile-dob-add:hover{color:var(--accent)}.profile-dob-edit{display:flex;align-items:center;gap:4px}.profile-dob-input{padding:6px 10px;font-size:var(--text-sm);width:auto;min-width:140px}.profile-dob-save,.profile-dob-cancel{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:background .15s ease}.profile-dob-save{color:var(--success-ink)}.profile-dob-save:hover:not(:disabled){background:var(--success-soft)}.profile-dob-cancel{color:var(--muted)}.profile-dob-cancel:hover:not(:disabled){background:var(--surface-hover)}.profile-dob-save:disabled,.profile-dob-cancel:disabled{opacity:.5;cursor:not-allowed}.profile-guardian-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;margin:-4px -8px;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background .15s ease;text-align:left}.profile-guardian-btn:hover{background:var(--surface-hover)}.profile-guardian-btn:hover .profile-guardian-chevron{opacity:1}.profile-guardian-label{font-size:var(--text-xs);color:var(--muted)}.profile-guardian-name{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.profile-guardian-chevron{color:var(--muted);opacity:.5;margin-left:2px;transition:opacity .15s ease}.profile-guardian-empty{font-size:var(--text-xs);color:var(--muted);font-style:italic}.profile-eligibility{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:6px;font-size:var(--text-xs);font-weight:500;width:fit-content;margin-top:2px}.profile-eligibility-eligible{background:var(--success-soft);color:var(--success-ink)}.profile-eligibility-aging-out{background:var(--info-soft, rgba(99, 102, 241, .08));color:var(--info-ink, #4f46e5)}.profile-eligibility-ineligible,.profile-eligibility-aged-out{background:#dc26260f;color:var(--danger-ink-soft, #b91c1c)}.profile-eligibility-hint{background:var(--surface-muted);color:var(--muted)}.profile-eligibility-wrapper{display:flex;flex-direction:column;gap:8px;margin-top:2px}.profile-eligibility-action{font-size:var(--text-2xs, .625rem);color:var(--muted);padding-left:2px}.overview-section{display:flex;flex-direction:column;gap:10px;background:var(--surface);border-radius:12px;padding:16px;margin-bottom:12px}.overview-section h4{margin:0;font-size:var(--text-sm);font-weight:600;color:var(--ink)}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}.info-item{display:flex;flex-direction:column;gap:2px}.info-item.full-width{grid-column:1 / -1}.info-label{font-size:var(--text-xs);color:var(--muted)}.info-value{font-size:var(--text-sm);font-weight:600;color:var(--ink)}.schedule-value{display:flex;flex-direction:column;gap:6px}.schedule-day-chips{display:flex;gap:3px}.schedule-day-chip{width:22px;height:22px;border-radius:4px;font-size:10px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-muted);color:var(--muted);border:1px solid var(--border-soft)}.schedule-day-chip.active{background:var(--surface, #fff);color:var(--ink);border-color:var(--border-medium)}.schedule-time-label{font-size:var(--text-xs);font-weight:500;color:var(--muted-strong)}.attention-section{padding:16px;background:#fbbf2414;border:1px solid rgba(251,191,36,.25);border-radius:8px}.attention-section h4{color:var(--warning-ink)}.attention-list{display:flex;flex-direction:column;gap:8px}.attention-item{display:flex;align-items:center;gap:8px;font-size:var(--text-sm)}.attention-icon{color:var(--warning-ink)}.contacts-section{background:var(--surface);border-radius:12px;padding:16px;margin-top:12px}.contacts-section.contacts-section-locked .contacts-list,.contacts-section.contacts-section-locked .contacts-empty{opacity:.5;pointer-events:none}.contacts-locked-hint{margin:0 0 12px;font-size:var(--text-xs, .75rem);color:var(--muted, #64748b);font-style:italic}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header h4{margin:0;font-size:var(--text-sm);font-weight:600;color:var(--ink);text-transform:none;letter-spacing:0}.section-action{display:inline-flex;align-items:center;gap:4px;background:transparent;border:none;font-size:var(--text-xs);font-weight:500;color:var(--muted);cursor:pointer;padding:4px 8px;margin:-4px -8px;border-radius:6px;transition:background .15s ease,color .15s ease}.section-action:hover{background:var(--surface-hover);color:var(--accent)}.tuition-section{background:var(--surface);border-radius:12px;padding:16px;margin-top:12px}.tuition-loading{padding:8px 0}.tuition-edit-form{display:flex;flex-direction:column;gap:12px}.tuition-error{font-size:var(--text-xs);color:var(--danger-ink);padding:8px 12px;background:#dc262614;border-radius:6px}.tuition-form-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:4px}.tuition-cancel-btn{padding:7px 14px;border:1px solid var(--border-medium);border-radius:6px;background:var(--surface);font-size:var(--text-sm);font-weight:600;color:var(--ink);cursor:pointer;transition:background .15s ease}.tuition-cancel-btn:hover:not(:disabled){background:var(--surface-hover)}.tuition-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.tuition-save-btn{padding:7px 14px;border:none;border-radius:6px;background:var(--ink);font-size:var(--text-sm);font-weight:600;color:var(--text-on-dark);cursor:pointer;transition:opacity .15s ease}.tuition-save-btn:hover:not(:disabled){opacity:.9}.tuition-save-btn:disabled{opacity:.5;cursor:not-allowed}.tuition-display{padding:0}.tuition-summary{font-size:var(--text-sm);font-weight:600;color:var(--ink);line-height:1.5}.tuition-hint{font-size:var(--text-xs);color:var(--muted);margin-right:auto}.tuition-hint.warning{color:var(--warning-ink);margin-top:4px;display:block}.tuition-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 16px;background:var(--surface-muted);border-radius:10px;text-align:center}.tuition-empty-text{font-size:var(--text-sm);color:var(--muted)}.tuition-empty-hint{font-size:var(--text-xs);color:var(--muted-soft)}.program-section-staff{background:var(--surface);border-radius:12px;padding:16px;margin-top:12px}.program-staff-display{display:flex;flex-direction:column;gap:4px}.program-staff-name{font-size:var(--text-sm);font-weight:600;color:var(--ink)}.charges-section{background:var(--surface);border-radius:12px;padding:16px;margin-top:12px}.charges-list{display:flex;flex-direction:column;gap:8px}.charge-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--surface-soft);border-radius:8px;transition:opacity .15s ease}.charge-item.is-paused{background:var(--surface-soft, #f8fafc);border:1px dashed var(--border-soft, #e2e8f0)}.charge-item.is-paused .charge-item-name{color:var(--muted)}.charge-item.is-paused .charge-item-rate{color:var(--muted);opacity:.7}.charge-item-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.charge-item-name{font-size:var(--text-sm);font-weight:600;color:var(--ink)}.charge-item-rate{font-size:var(--text-xs);color:var(--muted)}.charge-item-badge{display:inline-block;padding:2px 6px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;margin-top:4px;width:fit-content}.charge-item-badge.paused{background:var(--warning-soft, #fef3c7);color:var(--warning-ink, #92400e)}.charge-item-badge.pending{background:var(--info-soft, #dbeafe);color:var(--info-ink, #1e40af)}.charge-item-badge.charged{background:var(--success-soft, #dcfce7);color:var(--success-ink, #166534)}.charge-item.is-charged{opacity:.7}.charge-item-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.charge-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:6px;color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease}.charge-action-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--ink)}.charge-action-btn.danger:hover:not(:disabled){background:#dc262614;color:var(--danger-ink, #dc2626)}.charge-action-btn:disabled{opacity:.5;cursor:not-allowed}.charges-empty{padding:16px;text-align:center}.charges-empty-text{font-size:var(--text-sm);color:var(--muted)}.charges-billing-hint{font-size:var(--text-xs);color:var(--muted);margin-top:8px;padding:0 4px}.charge-selector{background:var(--surface);border:1px solid var(--border-medium);border-radius:10px;overflow:hidden;box-shadow:0 2px 8px #00000014}.charge-selector-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--surface-soft);border-bottom:1px solid var(--border-soft)}.charge-selector-title{font-size:var(--text-xs);font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.charge-selector-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:4px;font-size:12px;color:var(--muted);cursor:pointer;transition:background .15s ease,color .15s ease}.charge-selector-close:hover{background:var(--surface-hover);color:var(--ink)}.charge-selector-list{max-height:200px;overflow-y:auto}.charge-selector-empty{padding:16px;text-align:center;font-size:var(--text-sm);color:var(--muted)}.charge-selector-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;background:transparent;border:none;border-bottom:1px solid var(--border-softest);text-align:left;cursor:pointer;transition:background .15s ease}.charge-selector-item:last-child{border-bottom:none}.charge-selector-item:hover:not(:disabled){background:var(--surface-soft)}.charge-selector-item:disabled{opacity:.5;cursor:not-allowed}.charge-selector-name{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.charge-selector-rate{font-size:var(--text-xs);color:var(--muted);white-space:nowrap}.contacts-list{display:flex;flex-direction:column;gap:0}.contact-highlight{animation:contact-flash 1.6s ease-in-out}@keyframes contact-flash{0%{background:#6366f11f}50%{background:#6366f10f}to{background:transparent}}.drawer-toast{position:absolute;top:72px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;background:var(--success-bg, #ecfdf5);color:var(--success-text, #065f46);padding:6px 12px;border-radius:20px;box-shadow:0 2px 8px #00000014;font-size:var(--text-xs, .75rem);font-weight:500;z-index:200;animation:toastSlideIn .2s ease-out,toastFadeOut .3s ease-in 1.5s forwards}.drawer-toast:before{content:"✓";font-size:.7rem;font-weight:700}.sr-live{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.contact-row{display:flex;align-items:center;gap:12px;padding:10px 12px;margin:0 -12px;background:transparent;border:none;cursor:pointer;border-radius:10px;text-align:left;width:calc(100% + 24px);transition:background .15s ease}.contact-row:hover{background:var(--surface-hover)}.contact-row:hover .contact-chevron{opacity:1;color:var(--ink)}.contact-avatar{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;flex-shrink:0;background:var(--surface-muted, #f1f5f9);color:var(--muted-strong, #475569)}.contact-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.contact-name{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.contact-relationship{font-size:var(--text-xs);color:var(--ink-subtle);font-weight:500}.permission-icons{display:flex;align-items:center;gap:4px;flex-shrink:0}.permission-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;cursor:default;opacity:.7;transition:opacity .15s ease}.permission-icon:hover{opacity:1}.permission-icon.permission-pickup{color:var(--success-ink, #0d9488)}.permission-icon.permission-emergency{color:#ea580c}.contact-chevron{color:var(--muted);opacity:.7;flex-shrink:0;transition:opacity .15s ease,color .15s ease}.contacts-loading{padding:8px 0}.contacts-empty{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 16px;background:var(--surface-muted);border-radius:10px;text-align:center}.contacts-empty-text{font-size:var(--text-sm);color:var(--muted)}.contacts-empty-hint{font-size:var(--text-xs);color:var(--muted-soft)}.inline-add-form{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.inline-form-error{font-size:var(--text-xs);color:var(--danger-ink);padding:6px 10px;background:var(--danger-soft);border-radius:6px;margin-bottom:2px}.inline-form-row{display:flex;gap:6px;align-items:center}.inline-input{flex:1;padding:9px 11px;border:1px solid var(--border-soft);border-radius:7px;font-size:var(--text-sm);background:var(--surface);color:var(--ink);outline:none;transition:border-color .15s ease}.inline-input:focus{border-color:var(--primary-border-strong)}.inline-input::placeholder{color:var(--muted)}.inline-select{width:110px;padding:9px 10px;border:1px solid var(--border-soft);border-radius:7px;font-size:var(--text-sm);background:var(--surface);color:var(--ink);outline:none;cursor:pointer}.inline-select.custom-select{padding:0;border:none;background:transparent}.inline-select:focus{border-color:var(--primary-border-strong)}.inline-checkbox{display:flex;align-items:center;gap:5px;padding:0 6px;font-size:var(--text-xs);color:var(--ink-subtle);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none}.inline-checkbox input{width:14px;height:14px;accent-color:var(--success-ink);cursor:pointer}.inline-checkbox span{font-weight:500}.inline-permissions{margin-top:2px;padding-top:6px}.inline-checkboxes{display:flex;align-items:center;gap:12px}.inline-permissions .inline-checkbox{padding:0;font-size:11px;color:var(--muted);opacity:.85}.inline-permissions .inline-checkbox input{width:12px;height:12px;opacity:.8}.inline-permissions .inline-checkbox span{font-weight:400}.inline-form-actions{display:flex;justify-content:flex-end;align-items:center;gap:12px;margin-top:10px}.inline-cancel{padding:4px 0;border:none;background:transparent;font-size:var(--text-xs);font-weight:500;color:var(--muted);cursor:pointer;transition:color .15s ease}.inline-cancel:hover:not(:disabled){color:var(--muted-strong)}.inline-cancel:disabled{opacity:.5;cursor:not-allowed}.inline-submit{padding:7px 14px;border:none;background:var(--ink);color:var(--text-on-dark);font-size:var(--text-sm);font-weight:600;cursor:pointer;border-radius:6px;transition:opacity .15s ease}.inline-submit:hover:not(:disabled){opacity:.9}.inline-submit:disabled{opacity:.5;cursor:not-allowed}.today-section{background:var(--surface-muted);border-radius:12px;padding:16px;margin-top:8px}.today-section h4{margin-bottom:12px;font-size:var(--text-sm);font-weight:600;color:var(--ink);text-transform:none;letter-spacing:0}.today-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat-item{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:var(--text-xs);color:var(--muted)}.stat-value{font-size:var(--text-sm);font-weight:600}.stat-value.pending{color:var(--muted);font-weight:500;font-style:italic}.stat-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:var(--text-xs);font-weight:600}.stat-badge.present{background:var(--success-soft);color:var(--success-ink)}.stat-badge.absent{background:var(--danger-soft);color:var(--danger-ink)}.today-section:has(.today-empty){background:transparent;border:1px dashed var(--border-soft)}.today-empty{display:flex;align-items:center;gap:10px;padding:0}.today-empty-icon{width:28px;height:28px;border-radius:6px;background:var(--surface-muted);display:flex;align-items:center;justify-content:center;color:var(--muted);flex-shrink:0}.today-empty-text{font-size:var(--text-sm);color:var(--muted)}.tab-attendance{display:flex;flex-direction:column}.attendance-history-table{display:flex;flex-direction:column;font-size:var(--text-sm)}.history-header{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:8px;padding:8px 0;border-bottom:1px solid var(--border-soft);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.history-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:8px;padding:12px 0;border-bottom:1px solid var(--border-soft);align-items:center}.history-row:last-child{border-bottom:none}.status-badge-sm{display:inline-block;padding:2px 8px;border-radius:999px;font-size:var(--text-2xs);font-weight:600}.status-badge-sm.present{background:#22c55e1f;color:var(--success-ink)}.status-badge-sm.absent{background:var(--danger-soft);color:var(--danger-ink)}.tab-timeline,.timeline-list{display:flex;flex-direction:column}.timeline-item{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--border-soft)}.timeline-item:last-child{border-bottom:none}.timeline-item-time{display:flex;flex-direction:column;gap:2px;min-width:70px;text-align:right}.timeline-date{font-size:var(--text-xs);font-weight:500}.timeline-time{font-size:var(--text-xs);color:var(--muted)}.timeline-item-content{flex:1;display:flex;flex-direction:column;gap:4px}.timeline-type-label{font-size:var(--text-sm);font-weight:600}.timeline-note{font-size:var(--text-sm);margin:0;color:var(--ink)}.timeline-by{font-size:var(--text-xs)}.tab-empty,.tab-stub{padding:32px 24px;text-align:center}.stub-content{max-width:280px;margin:0 auto}.stub-content p{margin:0}.stub-content p:first-child{font-weight:500;margin-bottom:4px}.drawer-header.editing{background:var(--surface-soft, #fafafa)}.drawer-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.child-name-input{font-size:var(--text-xl, 1.25rem);font-weight:700;padding:4px 0;border:none;border-bottom:2px solid var(--border-medium, #d1d5db);border-radius:0;background:transparent;color:var(--ink, #1a1a1a);min-width:160px;max-width:240px;outline:none;transition:border-color .15s ease}.child-name-input:focus{border-bottom-color:var(--ink, #1a1a1a)}.child-name-input::placeholder{color:var(--muted, #64748b);font-weight:500}.child-edit-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:none;background:transparent;font-size:var(--text-xs, .75rem);font-weight:500;color:var(--muted);cursor:pointer;border-radius:8px;transition:background .15s ease,color .15s ease}.child-edit-btn:hover{background:var(--surface-hover, #f5f5f5);color:var(--accent)}.child-edit-btn svg{color:currentColor}.child-cancel-btn{padding:8px 14px;border:1px solid var(--border-medium, #d1d5db);border-radius:8px;background:var(--surface, #fff);font-size:var(--text-sm, .875rem);font-weight:600;color:var(--ink, #1a1a1a);cursor:pointer;transition:background .15s ease}.child-cancel-btn:hover{background:var(--surface-hover, #f5f5f5)}.child-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.child-save-btn{padding:8px 14px;border:none;border-radius:8px;background:var(--ink, #1a1a1a);font-size:var(--text-sm, .875rem);font-weight:600;color:var(--text-on-dark, #fff);cursor:pointer;transition:opacity .15s ease}.child-save-btn:hover:not(:disabled){opacity:.9}.child-save-btn:disabled{opacity:.5;cursor:not-allowed}.overview-section.section-editable{background:var(--surface-soft, #f8fafc);margin-left:-16px;margin-right:-16px;padding:12px 16px;border-radius:10px}.section-edit-indicator{display:inline-block;margin-left:8px;padding:2px 8px;font-size:var(--text-2xs, .625rem);font-weight:500;color:var(--muted, #64748b);background:var(--surface-muted, #f1f5f9);border-radius:10px;vertical-align:middle}.child-save-error{font-size:var(--text-xs, .75rem);color:var(--danger-ink, #dc2626);padding:8px 12px;background:#dc262614;border-radius:6px;margin-bottom:12px}.info-edit-grid{display:flex;flex-direction:column;gap:12px}.info-edit-item{display:flex;flex-direction:column;gap:4px}.info-edit-label{font-size:var(--text-xs, .75rem);color:var(--muted, #64748b);font-weight:500}.info-edit-select{padding:8px 10px;border:1px solid var(--border-soft, #e5e5e5);border-radius:6px;font-size:var(--text-sm, .875rem);background:var(--surface, #fff);color:var(--ink, #1a1a1a);cursor:pointer;transition:border-color .15s ease}.info-edit-select:focus{outline:none;border-color:var(--ink, #1a1a1a)}.info-edit-select:disabled{background:var(--surface-muted, #f5f5f5);cursor:not-allowed}.discard-modal-backdrop{position:fixed;inset:72px 0 44px;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.discard-modal{background:var(--surface, #fff);border-radius:12px;padding:24px;max-width:340px;width:100%;box-shadow:0 20px 40px #0003;animation:modalFadeIn .15s ease-out}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.discard-modal h3{margin:0 0 8px;font-size:var(--text-lg, 1.125rem);font-weight:700;color:var(--ink, #1a1a1a)}.discard-modal p{margin:0 0 20px;font-size:var(--text-sm, .875rem);color:var(--muted, #64748b);line-height:1.5}.discard-modal-actions{display:flex;gap:12px;justify-content:flex-end}.discard-modal-cancel{padding:10px 16px;border:1px solid var(--border-medium, #d1d5db);border-radius:8px;background:var(--surface, #fff);color:var(--ink, #1a1a1a);font-size:var(--text-sm, .875rem);font-weight:600;cursor:pointer;transition:background .15s ease}.discard-modal-cancel:hover{background:var(--surface-hover, #f5f5f5)}.discard-modal-confirm{padding:10px 16px;border:none;border-radius:8px;background:var(--danger-ink, #dc2626);color:#fff;font-size:var(--text-sm, .875rem);font-weight:600;cursor:pointer;transition:opacity .15s ease}.discard-modal-confirm:hover{opacity:.9}@media(max-width:640px){.drawer-backdrop{top:calc(70px + env(safe-area-inset-top,0px));bottom:calc(52px + env(safe-area-inset-bottom,0px));left:env(safe-area-inset-left,0px);right:env(safe-area-inset-right,0px)}.child-profile-drawer{max-width:100%;border-radius:0}.drawer-header{padding:20px 16px 14px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.drawer-tabs{padding:0 16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.drawer-content{padding:16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(16px,env(safe-area-inset-bottom))}.info-grid{grid-template-columns:1fr}.today-stats{grid-template-columns:1fr;gap:10px}.history-header{display:none}.history-row{grid-template-columns:1fr;gap:6px}.history-row>span:first-child{font-weight:500}.timeline-item{flex-direction:column;gap:8px}.timeline-item-time{text-align:left;flex-direction:row;gap:8px}.contact-row{padding:10px 8px;margin:0 -8px;width:calc(100% + 16px)}.permission-icons{gap:2px}.drawer-toast{top:64px}.inline-form-row{flex-wrap:wrap}.inline-input{min-width:0}.inline-select{flex:1;width:auto;min-width:100px}.inline-checkbox{padding:6px 0}.inline-checkboxes{flex-wrap:wrap;gap:10px 16px}.discard-modal-backdrop{top:calc(70px + env(safe-area-inset-top,0px));bottom:calc(52px + env(safe-area-inset-bottom,0px))}.child-name-input{max-width:180px;font-size:var(--text-lg, 1.125rem)}.drawer-header-actions{gap:6px}.child-cancel-btn,.child-save-btn{padding:6px 10px;font-size:var(--text-xs, .75rem)}.child-edit-btn{padding:6px 10px}.profile-strip{gap:12px}.profile-photo{width:52px;height:52px;border-radius:12px}.profile-photo-initials{font-size:var(--text-lg)}.profile-age{font-size:var(--text-base)}.profile-age-row{gap:8px}.profile-dob-edit{flex-wrap:wrap}}:root.dark .child-profile-drawer{background:#1e293b;box-shadow:-8px 0 32px #0006}:root.dark .drawer-header{background:#1e293bcc;border-bottom-color:#94a3b826}:root.dark .drawer-classroom{background:#33415580;color:#94a3b8}:root.dark .drawer-tabs{background:#1e293b99;border-bottom-color:#94a3b826}:root.dark .drawer-tab{color:#94a3b8}:root.dark .drawer-tab:hover:not(.stub){color:#e2e8f0}:root.dark .drawer-tab.active{color:#f1f5f9}:root.dark .drawer-tab.active:after{background:#f1f5f9}:root.dark .tab-stub-badge{background:#33415580;color:#64748b}:root.dark .drawer-content{background:#0f172a}:root.dark .profile-section,:root.dark .overview-section,:root.dark .contacts-section,:root.dark .tuition-section,:root.dark .charges-section,:root.dark .program-section-staff{background:#1e293b80;border-color:#94a3b81a}:root.dark .profile-photo{background:#33415599}:root.dark .profile-photo-initials{color:#94a3b8}:root.dark .profile-dob-btn:hover{background:#33415580}:root.dark .profile-guardian-btn:hover{background:#33415580}:root.dark .schedule-day-chip{background:#33415580;border-color:#94a3b833;color:#64748b}:root.dark .schedule-day-chip.active{background:#334155cc;color:#e2e8f0;border-color:#94a3b859}:root.dark .contact-row:hover{background:#33415566}:root.dark .contact-avatar{background:#33415599;color:#94a3b8}:root.dark .contacts-empty,:root.dark .tuition-empty{background:#3341554d}:root.dark .today-section{background:#3341554d}:root.dark .today-section:has(.today-empty){border-color:#94a3b833}:root.dark .today-empty-icon{background:#33415580}:root.dark .charge-item{background:#33415566}:root.dark .charge-selector{background:#1e293b;border-color:#94a3b833}:root.dark .charge-selector-header{background:#33415566;border-bottom-color:#94a3b81a}:root.dark .charge-selector-item{border-bottom-color:#94a3b81a}:root.dark .charge-selector-item:hover:not(:disabled){background:#33415580}:root.dark .inline-input,:root.dark .inline-select:not(.custom-select){background:#33415566;border-color:#94a3b833;color:#e2e8f0}:root.dark .inline-input:focus,:root.dark .inline-select:not(.custom-select):focus{border-color:#818cf880}:root.dark .history-header,:root.dark .history-row{border-bottom-color:#94a3b81a}:root.dark .timeline-item{border-bottom-color:#94a3b81a}:root.dark .drawer-header.editing{background:#33415566}:root.dark .child-name-input{border-bottom-color:#94a3b84d;color:#e2e8f0}:root.dark .child-name-input:focus{border-bottom-color:#e2e8f0}:root.dark .child-cancel-btn{background:#33415580;border-color:#94a3b840;color:#e2e8f0}:root.dark .child-cancel-btn:hover{background:#334155b3}:root.dark .overview-section.section-editable{background:#3341554d}:root.dark .info-edit-select{background:#33415566;border-color:#94a3b833;color:#e2e8f0}:root.dark .discard-modal{background:#1e293b}:root.dark .discard-modal h3{color:#f1f5f9}:root.dark .discard-modal p{color:#94a3b8}:root.dark .discard-modal-cancel{background:#33415580;border-color:#94a3b840;color:#e2e8f0}:root.dark .discard-modal-cancel:hover{background:#334155b3}@media(prefers-color-scheme:dark){:root:not(.light) .child-profile-drawer{background:#1e293b;box-shadow:-8px 0 32px #0006}:root:not(.light) .drawer-header{background:#1e293bcc;border-bottom-color:#94a3b826}:root:not(.light) .drawer-content{background:#0f172a}:root:not(.light) .drawer-tabs{background:#1e293b99;border-bottom-color:#94a3b826}:root:not(.light) .profile-section,:root:not(.light) .overview-section,:root:not(.light) .contacts-section,:root:not(.light) .tuition-section,:root:not(.light) .charges-section{background:#1e293b80}}.staff-profile-drawer{position:relative;width:100%;max-width:480px;height:100%;background:var(--surface);display:flex;flex-direction:column;box-shadow:-8px 0 32px #00000026;animation:slideIn .2s ease-out;border-radius:16px 0 0 16px;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.staff-profile-drawer .drawer-toast{position:absolute;top:72px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:6px;background:var(--success-bg, #ecfdf5);color:var(--success-text, #065f46);padding:6px 12px;border-radius:20px;box-shadow:0 2px 8px #00000014;font-size:var(--text-xs, .75rem);font-weight:500;z-index:200;animation:toastSlideIn .2s ease-out,toastFadeOut .3s ease-in 1.5s forwards}.staff-profile-drawer .drawer-toast:before{content:"✓";font-size:.7rem;font-weight:700}@keyframes toastSlideIn{0%{opacity:0;transform:translate(-50%) translateY(-8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toastFadeOut{0%{opacity:1}to{opacity:0}}.staff-profile-drawer .drawer-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px 24px 20px;border-bottom:1px solid var(--border-soft);gap:1rem}.staff-profile-drawer .drawer-header-content{display:flex;flex-direction:column;gap:8px}.staff-profile-drawer .drawer-header-main{display:flex;align-items:center;gap:10px}.staff-profile-drawer .drawer-header h2{margin:0;font-size:var(--text-xl);font-weight:700;color:var(--ink);line-height:1.2}.staff-profile-drawer .drawer-role-badge{font-size:var(--text-xs);font-weight:500;color:var(--muted)}.staff-profile-drawer .drawer-header-meta{display:flex;align-items:center;gap:8px}.staff-profile-drawer .status-badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:var(--text-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.02em}.staff-profile-drawer .status-badge.active{background:#22c55e1f;color:var(--success-ink)}.staff-profile-drawer .status-badge.inactive{background:var(--surface-hover);color:var(--muted)}.staff-profile-drawer .drawer-header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.staff-profile-drawer .staff-edit-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border:none;background:transparent;font-size:var(--text-xs);font-weight:600;color:var(--accent);cursor:pointer;border-radius:8px;transition:background .15s ease}.staff-profile-drawer .staff-edit-btn:hover{background:var(--surface-hover)}.staff-profile-drawer .staff-edit-btn svg{color:currentColor}.staff-profile-drawer .drawer-close{width:32px;height:32px;border:none;background:transparent;border-radius:8px;font-size:1.5rem;line-height:1;color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s ease}.staff-profile-drawer .drawer-close:hover{background:var(--surface-hover)}.staff-profile-drawer .drawer-content{flex:1;overflow-y:auto;padding:20px 24px}.staff-profile-drawer .profile-section{margin-bottom:16px;border-bottom:none}.staff-profile-drawer .profile-section:last-child{margin-bottom:0}.staff-profile-drawer .profile-section h4{margin:0 0 8px;font-size:var(--text-sm);font-weight:600;color:var(--ink)}.staff-profile-drawer .contact-list{display:flex;flex-direction:column;gap:0}.staff-profile-drawer .contact-row{display:flex;align-items:center;gap:10px;padding:6px 10px;margin:0 -10px;border-radius:8px;text-decoration:none;color:var(--ink);transition:background .15s ease}.staff-profile-drawer .contact-row:hover{background:var(--surface-hover)}.staff-profile-drawer .contact-icon{color:var(--muted);flex-shrink:0}.staff-profile-drawer .contact-value{font-size:var(--text-sm);color:var(--accent)}.staff-profile-drawer .classrooms-section{border-top:1px solid var(--border-soft);padding-top:20px;margin-top:16px}.staff-profile-drawer .classrooms-list{display:flex;flex-direction:column;gap:0}.staff-profile-drawer .classroom-row{display:flex;align-items:center;gap:12px;padding:10px 12px;margin:0 -12px;border-radius:10px;transition:background .15s ease}.staff-profile-drawer .classroom-row:hover{background:var(--surface-hover)}.staff-profile-drawer .classroom-avatar{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;flex-shrink:0;background:#6366f11f;color:var(--accent)}.staff-profile-drawer .classroom-name{font-size:var(--text-sm);font-weight:500;color:var(--ink)}.staff-profile-drawer .status-section{border-top:1px solid var(--border-soft);padding-top:20px;margin-top:16px}.staff-profile-drawer .status-action-btn{display:inline-block;padding:8px 14px;border-radius:8px;font-size:var(--text-sm);font-weight:600;border:none;cursor:pointer;transition:background .15s ease,opacity .15s ease}.staff-profile-drawer .status-action-btn.is-deactivate{background:var(--danger-soft);color:var(--danger)}.staff-profile-drawer .status-action-btn.is-deactivate:hover{background:#ef44442e}.staff-profile-drawer .status-action-btn.is-activate{background:var(--success-soft);color:var(--success-ink)}.staff-profile-drawer .status-action-btn.is-activate:hover{background:#22c55e2e}.staff-profile-drawer .status-action-btn:disabled{opacity:.5;cursor:not-allowed}.staff-profile-drawer .status-hint{margin:8px 0 0;font-size:var(--text-xs);line-height:1.5}.staff-profile-drawer .confirm-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:110}.staff-profile-drawer .confirm-card{background:var(--surface);border-radius:16px;padding:24px;max-width:380px;width:90%;box-shadow:0 16px 48px #0003}.staff-profile-drawer .confirm-header{margin-bottom:20px}.staff-profile-drawer .confirm-header h3{margin:0 0 8px;font-size:var(--text-lg);font-weight:700}.staff-profile-drawer .confirm-header .muted{margin:0;font-size:var(--text-sm);line-height:1.5}.staff-profile-drawer .confirm-actions{display:flex;justify-content:flex-end;gap:12px}.staff-profile-drawer .confirm-actions .text-button{padding:10px 16px;background:transparent;border:none;font-size:var(--text-sm);font-weight:600;color:var(--muted-strong);cursor:pointer;border-radius:8px}.staff-profile-drawer .confirm-actions .text-button:hover{background:var(--surface-hover)}.staff-profile-drawer .confirm-actions .primary{padding:10px 18px;border-radius:10px;font-size:var(--text-sm);font-weight:600;border:none;cursor:pointer;background:var(--primary);color:var(--text-on-dark)}.staff-profile-drawer .confirm-actions .primary.danger{background:var(--danger);color:#fff}.staff-profile-drawer .confirm-actions .primary:disabled{opacity:.5;cursor:not-allowed}.staff-profile-drawer .edit-card{max-width:400px}.staff-profile-drawer .edit-form{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.staff-profile-drawer .edit-form label{display:flex;flex-direction:column;gap:6px;font-size:var(--text-sm);font-weight:600;color:var(--ink)}.staff-profile-drawer .edit-form input,.staff-profile-drawer .edit-form select{padding:10px 12px;border:1px solid var(--border-soft);border-radius:8px;font-size:var(--text-base);background:var(--surface)}.staff-profile-drawer .edit-form input:focus,.staff-profile-drawer .edit-form select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft)}.staff-profile-drawer .edit-form input:disabled{background:var(--surface-muted);color:var(--muted);cursor:not-allowed}.staff-profile-drawer .edit-email-hint{font-size:var(--text-xs);font-weight:400}.staff-profile-drawer .edit-form .error{color:var(--danger);font-size:var(--text-sm);margin:0}.staff-profile-drawer .drawer-header.editing{background:var(--surface-soft, #fafafa);align-items:center;padding-top:20px;padding-bottom:16px}.staff-profile-drawer .staff-name-input{font-size:var(--text-xl, 1.25rem);font-weight:700;padding:4px 0;border:none;border-bottom:2px solid var(--border-medium, #d1d5db);border-radius:0;background:transparent;color:var(--ink, #1a1a1a);min-width:160px;max-width:220px;outline:none;transition:border-color .15s ease}.staff-profile-drawer .staff-name-input:focus{border-bottom-color:var(--ink, #1a1a1a)}.staff-profile-drawer .staff-name-input::placeholder{color:var(--muted, #64748b);font-weight:500}.staff-profile-drawer .staff-cancel-btn{padding:8px 14px;border:1px solid var(--border-medium, #d1d5db);border-radius:8px;background:var(--surface, #fff);font-size:var(--text-sm, .875rem);font-weight:600;color:var(--ink, #1a1a1a);cursor:pointer;transition:background .15s ease}.staff-profile-drawer .staff-cancel-btn:hover{background:var(--surface-hover, #f5f5f5)}.staff-profile-drawer .staff-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.staff-profile-drawer .staff-save-btn{padding:8px 14px;border:none;border-radius:8px;background:var(--ink, #1a1a1a);font-size:var(--text-sm, .875rem);font-weight:600;color:var(--text-on-dark, #fff);cursor:pointer;transition:opacity .15s ease}.staff-profile-drawer .staff-save-btn:hover:not(:disabled){opacity:.9}.staff-profile-drawer .staff-save-btn:disabled{opacity:.5;cursor:not-allowed}.staff-profile-drawer .profile-section.section-editable{background:var(--surface-soft, #f8fafc);margin-left:-16px;margin-right:-16px;padding:12px 16px;border-radius:10px}.staff-profile-drawer .section-edit-indicator{display:inline-block;margin-left:8px;padding:2px 8px;font-size:var(--text-2xs, .625rem);font-weight:500;color:var(--muted, #64748b);background:var(--surface-muted, #f1f5f9);border-radius:10px;vertical-align:middle}.staff-profile-drawer .staff-save-error{font-size:var(--text-xs, .75rem);color:var(--danger-ink, #dc2626);padding:8px 12px;background:#dc262614;border-radius:6px;margin-bottom:12px}.staff-profile-drawer .role-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}.staff-profile-drawer .role-info-item{display:flex;flex-direction:column;gap:2px}.staff-profile-drawer .role-info-label{font-size:var(--text-xs, .75rem);color:var(--muted, #64748b)}.staff-profile-drawer .role-info-value{font-size:var(--text-sm, .875rem);font-weight:600;color:var(--ink, #1a1a1a)}.staff-profile-drawer .role-edit-grid{display:flex;flex-direction:column;gap:12px}.staff-profile-drawer .role-edit-item{display:flex;flex-direction:column;gap:4px}.staff-profile-drawer .role-edit-label{font-size:var(--text-xs, .75rem);color:var(--muted, #64748b);font-weight:500}.staff-profile-drawer .role-edit-select{padding:8px 10px;border:1px solid var(--border-soft, #e5e5e5);border-radius:6px;font-size:var(--text-sm, .875rem);background:var(--surface, #fff);color:var(--ink, #1a1a1a);cursor:pointer;transition:border-color .15s ease}.staff-profile-drawer .role-edit-select:focus{outline:none;border-color:var(--ink, #1a1a1a)}.staff-profile-drawer .role-edit-select:disabled{background:var(--surface-muted, #f5f5f5);cursor:not-allowed}.staff-profile-drawer .role-value{font-size:var(--text-sm, .875rem);font-weight:500;color:var(--ink, #1a1a1a)}.staff-profile-drawer .role-value.muted{color:var(--muted, #64748b)}.staff-profile-drawer .role-edit-hint{font-size:var(--text-2xs, .625rem);color:var(--muted, #64748b);font-style:italic}.staff-profile-drawer .classrooms-section.classrooms-section-locked .classrooms-list{opacity:.5;pointer-events:none}.staff-profile-drawer .classrooms-locked-hint{margin:0 0 12px;font-size:var(--text-xs, .75rem);color:var(--muted, #64748b);font-style:italic}.staff-profile-drawer .discard-modal-backdrop{position:fixed;inset:72px 0 44px;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1100;padding:20px}.staff-profile-drawer .discard-modal{background:var(--surface, #fff);border-radius:12px;padding:24px;max-width:340px;width:100%;box-shadow:0 20px 40px #0003;animation:modalFadeIn .15s ease-out}.staff-profile-drawer .discard-modal h3{margin:0 0 8px;font-size:var(--text-lg, 1.125rem);font-weight:700;color:var(--ink, #1a1a1a)}.staff-profile-drawer .discard-modal p{margin:0 0 20px;font-size:var(--text-sm, .875rem);color:var(--muted, #64748b);line-height:1.5}.staff-profile-drawer .discard-modal-actions{display:flex;gap:12px;justify-content:flex-end}.staff-profile-drawer .discard-modal-cancel{padding:10px 16px;border:1px solid var(--border-medium, #d1d5db);border-radius:8px;background:var(--surface, #fff);color:var(--ink, #1a1a1a);font-size:var(--text-sm, .875rem);font-weight:600;cursor:pointer;transition:background .15s ease}.staff-profile-drawer .discard-modal-cancel:hover{background:var(--surface-hover, #f5f5f5)}.staff-profile-drawer .discard-modal-confirm{padding:10px 16px;border:none;border-radius:8px;background:var(--danger-ink, #dc2626);color:#fff;font-size:var(--text-sm, .875rem);font-weight:600;cursor:pointer;transition:opacity .15s ease}.staff-profile-drawer .discard-modal-confirm:hover{opacity:.9}@media(max-width:640px){.staff-profile-drawer{max-width:100%;border-radius:0}.staff-profile-drawer .drawer-header{padding:20px 16px 14px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}.staff-profile-drawer .drawer-content{padding:16px;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(16px,env(safe-area-inset-bottom))}.staff-profile-drawer .confirm-card{padding:20px;margin:16px;max-width:calc(100% - 32px)}.staff-profile-drawer .edit-card{margin:16px;max-width:calc(100% - 32px)}.staff-profile-drawer .discard-modal-backdrop{top:calc(70px + env(safe-area-inset-top,0px));bottom:calc(52px + env(safe-area-inset-bottom,0px))}.staff-profile-drawer .staff-name-input{max-width:180px;font-size:var(--text-lg, 1.125rem)}.staff-profile-drawer .drawer-header-actions{gap:6px}.staff-profile-drawer .staff-cancel-btn,.staff-profile-drawer .staff-save-btn{padding:6px 10px;font-size:var(--text-xs, .75rem)}.staff-profile-drawer .staff-edit-btn{padding:6px 10px}}:root.dark .staff-profile-drawer{background:#1e293b;box-shadow:-8px 0 32px #0006}:root.dark .staff-profile-drawer .drawer-header{border-bottom-color:#94a3b826}:root.dark .staff-profile-drawer .drawer-header h2{color:#f1f5f9}:root.dark .staff-profile-drawer .drawer-content{background:#0f172a}:root.dark .staff-profile-drawer .profile-section h4{color:#e2e8f0}:root.dark .staff-profile-drawer .classrooms-section{border-top-color:#94a3b826}:root.dark .staff-profile-drawer .contact-row:hover{background:#33415566}:root.dark .staff-profile-drawer .classroom-row:hover{background:#33415566}:root.dark .staff-profile-drawer .classroom-avatar{background:#6366f133;color:#a5b4fc}:root.dark .staff-profile-drawer .classroom-name{color:#e2e8f0}:root.dark .staff-profile-drawer .status-section{border-top-color:#94a3b826}:root.dark .staff-profile-drawer .confirm-card{background:#1e293b}:root.dark .staff-profile-drawer .confirm-header h3{color:#f1f5f9}:root.dark .staff-profile-drawer .drawer-header.editing{background:#33415566}:root.dark .staff-profile-drawer .staff-name-input{border-bottom-color:#94a3b84d;color:#e2e8f0}:root.dark .staff-profile-drawer .staff-name-input:focus{border-bottom-color:#e2e8f0}:root.dark .staff-profile-drawer .staff-cancel-btn{background:#33415580;border-color:#94a3b840;color:#e2e8f0}:root.dark .staff-profile-drawer .staff-cancel-btn:hover{background:#334155b3}:root.dark .staff-profile-drawer .profile-section.section-editable{background:#3341554d}:root.dark .staff-profile-drawer .role-edit-select{background:#33415566;border-color:#94a3b833;color:#e2e8f0}:root.dark .staff-profile-drawer .role-edit-select:focus{border-color:#e2e8f0}:root.dark .staff-profile-drawer .role-info-value{color:#e2e8f0}:root.dark .staff-profile-drawer .discard-modal{background:#1e293b}:root.dark .staff-profile-drawer .discard-modal h3{color:#f1f5f9}:root.dark .staff-profile-drawer .discard-modal p{color:#94a3b8}:root.dark .staff-profile-drawer .discard-modal-cancel{background:#33415580;border-color:#94a3b840;color:#e2e8f0}:root.dark .staff-profile-drawer .edit-form input,:root.dark .staff-profile-drawer .edit-form select{background:#33415566;border-color:#94a3b833;color:#e2e8f0}@media(prefers-color-scheme:dark){:root:not(.light) .staff-profile-drawer{background:#1e293b;box-shadow:-8px 0 32px #0006}:root:not(.light) .staff-profile-drawer .drawer-content{background:#0f172a}:root:not(.light) .staff-profile-drawer .drawer-header{border-bottom-color:#94a3b826}}.global-search{position:relative;flex:1;max-width:320px}.global-search-input-wrap{position:relative;display:flex;align-items:center}.global-search-icon{position:absolute;left:12px;color:var(--muted);pointer-events:none;display:flex;align-items:center;justify-content:center}.global-search-input{width:100%;padding:10px 36px 10px 40px;border:1px solid var(--border-softest);border-radius:10px;background:var(--surface);font-size:var(--text-sm);color:var(--ink);transition:border-color .15s ease,background .15s ease,box-shadow .15s ease;box-shadow:0 1px 2px #0000000a}.global-search-input::placeholder{color:var(--muted-soft)}.global-search-input:focus{outline:none;border-color:var(--border-soft);background:var(--surface);box-shadow:0 2px 8px #0000000f}.global-search-clear{position:absolute;right:8px;width:24px;height:24px;border:none;background:transparent;color:var(--muted);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px}.global-search-clear:hover{color:var(--ink);background:var(--surface-hover)}.global-search-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;box-shadow:var(--shadow-strong);z-index:100;max-height:400px;overflow-y:auto}.global-search-loading,.global-search-empty{padding:16px;text-align:center}.search-group{padding:8px 0}.search-group+.search-group{border-top:1px solid var(--border-soft)}.search-group-label{padding:4px 16px 8px;font-size:var(--text-xs);font-weight:600;letter-spacing:.02em;color:var(--muted)}.search-result{display:flex;align-items:center;gap:12px;width:100%;padding:10px 16px;border:none;background:transparent;cursor:pointer;text-align:left;transition:background .1s ease}.search-result:hover,.search-result.selected{background:var(--surface-hover)}.search-result.selected{outline:none}.search-result-avatar{width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;flex-shrink:0}.search-result-avatar.child{background:#58c4be26;color:var(--success-ink)}.search-result-avatar.staff{background:#6366f11f;color:var(--accent)}.search-result-info{display:flex;flex-direction:column;gap:2px;min-width:0}.search-result-name{font-size:var(--text-sm);font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.search-result-meta{font-size:var(--text-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:900px){.global-search{max-width:none;flex:0 0 auto;width:40px}.global-search-input-wrap{width:40px;height:40px;border-radius:10px;background:transparent;border:none;transition:width .2s ease,background .2s ease}.global-search-icon{left:50%;transform:translate(-50%);transition:left .2s ease,transform .2s ease;color:var(--muted)}.global-search-input{opacity:0;width:40px;padding:10px 12px;cursor:pointer;background:transparent;border:none}.global-search:focus-within .global-search-input-wrap,.global-search.expanded .global-search-input-wrap{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));right:calc(58px + env(safe-area-inset-right,0px));left:calc(56px + env(safe-area-inset-left,0px));width:auto;height:44px;background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;box-shadow:0 4px 20px #00000026}.global-search:focus-within .global-search-icon,.global-search.expanded .global-search-icon{left:12px;transform:translate(0);color:var(--muted)}.global-search:focus-within .global-search-input,.global-search.expanded .global-search-input{opacity:1;width:100%;padding:10px 36px 10px 40px;cursor:text;border:none;background:transparent}.global-search-dropdown{position:fixed;top:calc(64px + env(safe-area-inset-top,0px));left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));width:auto;max-height:calc(100dvh - 120px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow-y:auto;-webkit-overflow-scrolling:touch}}.invite-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,rgba(15,23,42,.03),transparent 60%),#f5f7fb;padding:32px 16px}.invite-card{width:min(520px,100%);background:#fff;border-radius:20px;box-shadow:0 24px 60px #0f172a1f;padding:32px}.invite-loading{display:grid;gap:16px}.invite-loading-title,.invite-loading-line,.invite-loading-input,.invite-loading-button{position:relative;overflow:hidden;background:#eef2f7;border-radius:12px}.invite-loading-title{height:32px;width:70%}.invite-loading-line{height:14px;width:85%}.invite-loading-line.wide{width:92%}.invite-loading-input{height:44px}.invite-loading-button{height:44px;border-radius:999px}.invite-loading-title:after,.invite-loading-line:after,.invite-loading-input:after,.invite-loading-button:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);animation:invite-shimmer 1.4s ease-in-out infinite}@keyframes invite-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.invite-header h1{margin:0 0 12px;font-size:28px;color:#0f172a}.invite-header .muted{margin:0;color:#64748b}.invite-form{margin-top:24px;display:grid;gap:16px}.invite-form label{display:grid;gap:8px;font-size:13px;color:#64748b}.invite-form input{border-radius:14px;border:1px solid #e2e8f0;padding:12px 14px;font-size:15px;color:#0f172a}.invite-password{position:relative;display:flex;align-items:center}.invite-password input{width:100%;padding-right:70px}.invite-eye{position:absolute;right:12px;width:32px;height:32px;border:none;background:transparent;color:#64748b;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:4px}.invite-eye svg{width:18px;height:18px}.invite-eye:hover{color:#0f172a;background:#0000000a}.invite-form input:disabled{background:#f1f5f9;color:#64748b}.field-helper{display:block;font-size:12px;margin-top:4px}.invite-form .primary,:root:not(.light) .invite-form .primary,:root.dark .invite-form .primary{margin-top:4px;background:#0f172a!important;color:#fff!important;border:1px solid rgba(15,23,42,.1)!important;padding:15px 18px;border-radius:10px;font-weight:600;cursor:pointer;box-shadow:none!important;transition:background .15s ease}.invite-form .primary:hover:not(:disabled),:root:not(.light) .invite-form .primary:hover:not(:disabled),:root.dark .invite-form .primary:hover:not(:disabled){background:#1e293b!important}.invite-form .primary:disabled,:root:not(.light) .invite-form .primary:disabled,:root.dark .invite-form .primary:disabled{opacity:.6;cursor:not-allowed;background:#94a3b8!important}.invite-form .error{color:#b91c1c;font-size:13px;margin:0}.invite-form .success{color:#15803d;font-size:13px;margin:0}.invite-reassurance{margin-top:8px;font-size:13px}.password-hint{font-size:12px;margin:0}.invite-cta-hint{text-align:center;font-size:13px;margin:0}.invite-expectation{text-align:center;font-size:12px;margin:8px 0 0}.invite-status-action,:root:not(.light) .invite-status-action,:root.dark .invite-status-action{display:inline-block;margin-top:24px;padding:12px 24px;background:transparent!important;color:#0f172a!important;border:1px solid #e2e8f0!important;border-radius:8px;font-weight:600;text-align:center;text-decoration:none;cursor:pointer;box-shadow:none!important;transition:background .15s ease,border-color .15s ease}.invite-status-action:hover,:root:not(.light) .invite-status-action:hover,:root.dark .invite-status-action:hover{background:#f8fafc!important;border-color:#cbd5e1!important}@media(prefers-color-scheme:dark){.invite-form .primary,:root:not(.light) .invite-form .primary,.invite-status-action,:root:not(.light) .invite-status-action{background:#0f172a!important;color:#fff!important;border:1px solid rgba(15,23,42,.1)!important;box-shadow:none!important}.invite-form .primary:hover:not(:disabled),:root:not(.light) .invite-form .primary:hover:not(:disabled),.invite-status-action:hover,:root:not(.light) .invite-status-action:hover{background:#1e293b!important}.invite-form .primary:disabled,:root:not(.light) .invite-form .primary:disabled{background:#94a3b8!important}}.pay-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,#f5f7fa,#e4e9f0);font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.pay-card{background:#fff;border-radius:16px;box-shadow:0 4px 24px #00000014;padding:40px;width:100%;max-width:420px}.pay-logo{text-align:center;margin-bottom:24px;opacity:.9}.pay-logo img{height:auto}.pay-header{text-align:center;margin-bottom:32px}.pay-header h1{margin:0 0 12px;font-size:24px;font-weight:600;color:#1d1d1f;letter-spacing:-.3px}.pay-muted{margin:0;font-size:15px;color:#86868b;line-height:1.5}.pay-center-name{margin-top:8px;font-weight:500}.pay-sub-message{margin:8px 0 0;font-size:14px;color:#a1a1a6}.pay-close-hint{margin:24px 0 0;padding-top:16px;border-top:1px solid #e5e5e7;font-size:12px;color:#a1a1a6;text-align:center}.pay-amount-hero{font-size:36px;font-weight:700;color:#1d1d1f;letter-spacing:-.5px;margin:12px 0 8px}.pay-invoice-meta{margin:0;font-size:14px;color:#86868b}.pay-invoice-summary{background:#f5f5f7;border-radius:12px;padding:20px;margin-bottom:24px}.pay-invoice-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.pay-invoice-row:not(:last-child){border-bottom:1px solid #e5e5e7}.pay-invoice-row span{color:#86868b;font-size:14px}.pay-invoice-row strong{color:#1d1d1f;font-size:15px}.pay-amount{font-size:20px!important;color:#1d1d1f}.pay-contact-box{background:#f5f5f7;border:1px solid #e5e5e7;border-radius:12px;padding:20px;text-align:center}.pay-contact-icon{display:flex;align-items:center;justify-content:center;margin-bottom:12px;color:#86868b}.pay-setup-box{background:#f0f7ff;border:1px solid #d0e3f7;border-radius:12px;padding:20px;text-align:center}.pay-setup-box p{margin:0;font-size:14px;color:#1d1d1f;line-height:1.6}.pay-setup-box p:not(:last-child){margin-bottom:8px}.pay-contact-links{display:flex;flex-direction:column;gap:6px;margin-top:12px}.pay-contact-links a{color:#0071e3;text-decoration:none;font-size:14px}.pay-contact-links a:hover{text-decoration:underline}.pay-btn{width:100%;padding:16px 24px;background:#0071e3;border:none;border-radius:12px;font-size:17px;font-weight:600;color:#fff;cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center;gap:8px}.pay-btn:hover:not(:disabled){background:#0062cc}.pay-btn:disabled{opacity:.7;cursor:not-allowed}.pay-btn-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:pay-spin .7s linear infinite}@keyframes pay-spin{to{transform:rotate(360deg)}}.pay-error{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:14px;color:#dc2626;text-align:center}.pay-receipt-note{text-align:center;margin:16px 0 0;font-size:13px;color:#86868b}.pay-view-details{display:block;text-align:center;margin-top:12px;font-size:13px;color:#86868b;text-decoration:none;transition:color .15s}.pay-view-details:hover{color:#0071e3;text-decoration:underline}.pay-trust-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;margin-top:16px;padding-top:16px;border-top:1px solid #e5e5e7;font-size:12px;letter-spacing:.01em;color:#86868b}.pay-trust-row span{display:inline-flex;align-items:center;gap:4px}.pay-trust-row svg{opacity:.6;stroke-width:1.75}.pay-trust-divider{color:#d0d0d0}.pay-secondary-actions{margin-top:16px;text-align:center}.pay-help-text{margin:0;font-size:13px;color:#86868b}.pay-help-text a{color:#0071e3;text-decoration:none}.pay-help-text a:hover{text-decoration:underline}.pay-contact-box p{margin:0;font-size:14px;color:#1d1d1f;line-height:1.6}.pay-contact-box p:not(:last-child){margin-bottom:12px}.pay-contact-box a{color:#0071e3;text-decoration:none}.pay-contact-box a:hover{text-decoration:underline}.pay-link{display:block;text-align:center;margin-top:16px;color:#0071e3;font-size:15px;text-decoration:none}.pay-link:hover{text-decoration:underline}.pay-loading{animation:pay-pulse 1.5s ease-in-out infinite}@keyframes pay-pulse{0%,to{opacity:1}50%{opacity:.6}}.pay-loading-logo{width:140px;height:40px;background:#e5e5e7;border-radius:8px;margin:0 auto 32px}.pay-loading-title{width:200px;height:28px;background:#e5e5e7;border-radius:6px;margin:0 auto 16px}.pay-loading-line{width:60%;height:16px;background:#e5e5e7;border-radius:4px;margin:0 auto 12px}.pay-loading-line.wide{width:80%}@media(max-width:480px){.pay-screen{padding:40px 16px 16px;align-items:flex-start}.pay-card{padding:24px;border-radius:12px}.pay-header h1{font-size:20px}.pay-logo img{width:120px}}
