: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}: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):not(.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)}}:root.dark input::placeholder,:root.dark textarea::placeholder{color:#b8c4d4;opacity:1}@media(prefers-color-scheme:dark){:root:not(.light):not(.dark) input::placeholder,:root:not(.light):not(.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}}.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}.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}.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}.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}.primary-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:600;letter-spacing:.02em;padding:1px 6px;margin-left:6px;border-radius:4px;background:var(--primary-soft, rgba(79, 70, 229, .1));color:var(--primary-ink, #4f46e5);vertical-align:middle;line-height:1.5}.set-primary-btn{color:var(--muted, #94a3b8);cursor:pointer;opacity:0;transition:opacity .15s ease,color .15s ease}.contact-row:hover .set-primary-btn{opacity:.6}.set-primary-btn:hover{opacity:1!important;color:var(--primary-ink, #4f46e5)}.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}.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}@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-avatar{background:#33415599;color:#94a3b8}:root.dark .primary-badge{background:#58c4be26;color:#58c4be}:root.dark .set-primary-btn:hover{color:#58c4be}: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-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}:root:not(.light) .primary-badge{background:#58c4be26;color:#58c4be}:root:not(.light) .set-primary-btn:hover{color:#58c4be}}.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-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-app{color:var(--muted, #64748b)}.permission-icon.permission-emergency{color:#ea580c}.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}@keyframes slideIn{0%{transform:translate(100%)}to{transform:translate(0)}}.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}.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}.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}.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}.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}.invite-card{background:var(--surface, #fff);border:1px solid var(--border-subtle, #f1f5f9);border-radius:8px;padding:12px 14px}.invite-header{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}.invite-icon{flex-shrink:0;color:var(--accent, #4f46e5);margin-top:2px}.invite-header-text{flex:1;min-width:0}.invite-header-text h4{margin:0 0 2px;font-size:var(--text-sm, .875rem);font-weight:600;color:var(--ink, #1e293b)}.invite-status{margin:0;font-size:var(--text-xs, .75rem);color:var(--muted, #64748b)}.invite-status-pending{color:var(--warning-ink, #d97706)}.invite-status-sent{color:var(--accent, #4f46e5)}.invite-status-accepted{color:var(--success-ink, #059669)}.invite-status-failed,.invite-status-expired{color:var(--danger-ink, #dc2626)}.invite-date{color:var(--muted, #64748b)}.invite-email{margin:2px 0 0;font-size:var(--text-2xs, .6875rem)}.invite-actions{display:flex;gap:8px;align-items:center}.invite-send-btn{padding:8px 14px;border:none;background:var(--accent, #4f46e5);color:var(--text-on-dark, #fff);font-size:var(--text-xs, .75rem);font-weight:600;border-radius:6px;cursor:pointer;transition:background .15s ease,opacity .15s ease}.invite-send-btn:hover:not(:disabled){background:var(--accent-hover, #4338ca)}.invite-send-btn:disabled{opacity:.6;cursor:not-allowed}.invite-no-email{margin:0;font-size:var(--text-xs, .75rem)}:root.dark .invite-card{background:#1e293b80;border-color:#94a3b826}:root.dark .invite-header-text h4{color:#e2e8f0}:root.dark .invite-send-btn{background:var(--accent, #6366f1)}:root.dark .invite-send-btn:hover:not(:disabled){background:var(--accent-hover, #818cf8)}@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 .contact-row:hover{background:#33415566}: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 .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 .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}@media(prefers-color-scheme:dark){:root:not(.light) .link-child-modal{box-shadow:0 20px 60px #0009}}:root.dark .link-child-modal{box-shadow:0 20px 60px #0009}.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}}.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}}.tour-backdrop{position:fixed;inset:0;z-index:10001;background:#1118278c;animation:tourFadeIn .25s ease-out}@keyframes tourFadeIn{0%{opacity:0}to{opacity:1}}.tour-spotlight{position:fixed;border-radius:14px;border:1.5px solid var(--primary);box-shadow:0 0 0 9999px #1118278c;transition:top .35s cubic-bezier(.4,0,.2,1),left .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1),height .35s cubic-bezier(.4,0,.2,1);z-index:10002;pointer-events:none}.tour-tooltip{position:fixed;z-index:10003;max-width:340px;width:340px;padding:20px;background:var(--surface);border-radius:14px;border:1px solid var(--border-soft);box-shadow:0 12px 32px #1118271f,0 2px 8px #1118270f;animation:tourTooltipIn .3s cubic-bezier(.4,0,.2,1)}.tour-tooltip--welcome{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);text-align:left;max-width:360px;width:360px;padding:24px 22px 20px}@keyframes tourTooltipIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.tour-tooltip--welcome{animation-name:tourWelcomeIn}@keyframes tourWelcomeIn{0%{opacity:0;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.tour-tooltip-title{margin:0 0 6px;font-size:1.05rem;font-weight:700;color:var(--ink);line-height:1.3}.tour-tooltip-desc{margin:0 0 16px;font-size:.875rem;color:var(--muted);line-height:1.55;white-space:pre-line}.tour-tooltip-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.tour-step-counter{font-size:.6875rem;color:var(--muted);opacity:.7;white-space:nowrap;flex-shrink:0}.tour-tooltip-actions{display:flex;align-items:center;gap:6px}.tour-btn-next{appearance:none;border:none;cursor:pointer;font-size:.75rem;font-weight:600;padding:5px 14px;border-radius:6px;background:var(--primary);color:#fff;transition:background .15s ease,transform .1s ease}.tour-btn-next:hover{filter:brightness(1.08)}.tour-btn-next:active{transform:scale(.97)}.tour-btn-skip,.tour-btn-back{appearance:none;border:none;cursor:pointer;font-size:.75rem;font-weight:500;padding:5px 10px;border-radius:6px;background:transparent;color:var(--muted);transition:color .15s ease,background .15s ease}.tour-btn-skip:hover,.tour-btn-back:hover{background:var(--surface-soft);color:var(--ink)}.tour-tooltip--welcome .tour-btn-skip{font-weight:500;color:var(--muted);background:none;padding:5px 6px}.tour-tooltip--welcome .tour-btn-skip:hover{background:none;color:var(--ink);text-decoration:underline}.tour-restart-button{font-size:.75rem!important;color:var(--muted)!important;padding:4px 0!important;opacity:.8;transition:opacity .15s ease}.tour-restart-button:hover{opacity:1}.tour-tooltip--final{max-width:380px;width:380px}@media(max-width:640px){.tour-tooltip,.tour-tooltip--welcome{max-width:calc(100vw - 32px);width:calc(100vw - 32px)}.tour-tooltip--welcome{padding:24px 20px 20px}}@media(prefers-color-scheme:dark){:root:not(.light) .tour-backdrop{background:#0009}:root:not(.light) .tour-spotlight{border-color:#818cf8;box-shadow:0 0 0 9999px #0009}:root:not(.light) .tour-tooltip{background:#1e293b;border-color:#94a3b826;box-shadow:0 20px 50px #0006,0 4px 12px #0003}:root:not(.light) .tour-tooltip-title{color:#e2e8f0}:root:not(.light) .tour-tooltip-desc{color:#94a3b8}:root:not(.light) .tour-step-counter{color:#94a3b8}:root:not(.light) .tour-btn-next{background:#818cf8}:root:not(.light) .tour-btn-skip,:root:not(.light) .tour-btn-back{color:#94a3b8}:root:not(.light) .tour-btn-skip:hover,:root:not(.light) .tour-btn-back:hover{background:#33415580;color:#e2e8f0}:root:not(.light) .tour-tooltip--welcome .tour-btn-skip{color:#94a3b8;background:none}:root:not(.light) .tour-tooltip--welcome .tour-btn-skip:hover{background:none;color:#e2e8f0}}:root.dark .tour-backdrop{background:#0009}:root.dark .tour-spotlight{border-color:#818cf8;box-shadow:0 0 0 9999px #0009}:root.dark .tour-tooltip{background:#1e293b;border-color:#94a3b826;box-shadow:0 20px 50px #0006,0 4px 12px #0003}:root.dark .tour-tooltip-title{color:#e2e8f0}:root.dark .tour-tooltip-desc{color:#94a3b8}:root.dark .tour-step-counter{color:#94a3b8}:root.dark .tour-btn-next{background:#818cf8}:root.dark .tour-btn-skip,:root.dark .tour-btn-back{color:#94a3b8}:root.dark .tour-btn-skip:hover,:root.dark .tour-btn-back:hover{background:#33415580;color:#e2e8f0}:root.dark .tour-tooltip--welcome .tour-btn-skip{color:#94a3b8;background:none}:root.dark .tour-tooltip--welcome .tour-btn-skip:hover{background:none;color:#e2e8f0}.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,#1e3a5f,#1a3355 55%,#162d4a);color:var(--sidebar-text);padding:20px 14px 28px;display:flex;flex-direction:column;gap:20px;min-height:0;height:calc(100% - 32px);overflow:hidden;border-radius:0 24px 24px 0;border:1px solid rgba(148,163,184,.12);box-shadow:0 4px 24px #0f172a26;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:12px;align-items:flex-start;justify-content:center;text-align:left;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.08)}.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:.6rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#94a3b873;margin:4px 0 2px 10px}.nav-item{background:transparent;border:1px solid transparent;color:#e2e8f08c;font-weight:500;font-size:var(--text-sm);padding:9px 14px;border-radius:12px;display:flex;align-items:center;gap:10px;text-align:left;cursor:pointer;width:100%;max-width:200px;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:#ffffff1f;border-color:#ffffff26;color:#fff;font-weight:600;box-shadow:0 2px 8px #00000026}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:16px;background:#818cf8;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}.nav-badge.unread-count{background:#ef4444;color:#fff;border-radius:999px;min-width:18px;text-align:center;font-size:10px;font-weight:700;padding:2px 6px;line-height:1.2}.sidebar-footer{flex-shrink:0;display:flex;flex-direction:column;gap:12px;padding-top:12px}.sidebar-version{font-size:11px;color:#94a3b873;letter-spacing:.02em;-webkit-user-select:text;user-select:text}.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%)}}@keyframes shimmer-gradient{0%{background-position:200% 0}to{background-position:-200% 0}}.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-body{padding:20px 24px;overflow-y:auto;flex:1;min-height:0;display:grid;gap:8px;align-content:start}.modal-card>.modal-body p{margin:0;font-size:var(--text-sm);line-height:1.5}.modal-card>.modal-body .modal-meta{font-size:var(--text-xs);color:var(--muted);margin-top:4px}.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-card .skeleton-line.short{width:40%}.skeleton-card .skeleton-line.mid{width:60%}.skeleton-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:8px}@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:calc(16px + env(safe-area-inset-right,0px));display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:8px;width:100%;max-width:100vw;box-sizing:border-box;overflow:visible}.topbar-actions{display:flex;align-items:center;gap:4px;flex-shrink:0;padding-right:4px}.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-shell{grid-template-rows:auto 1fr auto}.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:16px 14px 44px;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:max(44px,calc(44px + env(safe-area-inset-bottom)));max-width:100%;height:100%;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.shell>*{max-width:100%;box-sizing:border-box}.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(14px + env(safe-area-inset-top,0px));right:calc(60px + 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:10px 14px;padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));min-height:auto;gap:4px}.page-header h2{font-size:var(--text-lg);margin-bottom:0}.page-header .muted{font-size:var(--text-xs);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.page-header .primary{padding:6px 12px;font-size:var(--text-xs)}.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}: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)}@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-gradient 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-gradient 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}}.section-fallback{display:flex;align-items:center;justify-content:center;min-height:200px;padding:3rem}.section-fallback-spinner{width:28px;height:28px;border:2.5px solid var(--border-soft, #e2e8f0);border-top-color:var(--primary-ink, #4F46E5);border-radius:50%;animation:section-spin .6s linear infinite}@keyframes section-spin{to{transform:rotate(360deg)}}@media(prefers-color-scheme:dark){:root:not(.light) .section-fallback-spinner{border-color:#94a3b826;border-top-color:#58c4be}}:root.dark .section-fallback-spinner{border-color:#94a3b826;border-top-color:#58c4be}
