:root{color:#2f2925;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--brown-950:#2d1b12;--brown-900:#422719;--brown-800:#5b3827;--brown-700:#75492f;--brown-100:#eee2d9;--cream:#f7f3ef;--surface:#fff;--surface-2:#fbf8f5;--border:#e3dcd6;--text:#2f2925;--muted:#79716b;--success:#18794e;--success-bg:#eaf7ef;--warning:#9a6700;--warning-bg:#fff7dd;--danger:#b42318;--danger-bg:#fff0ee;--shadow:0 18px 55px #442a1b14;--radius:18px;background:#f7f3ef;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}html,body,#root{background:var(--cream);min-width:320px;min-height:100%;margin:0}body{min-height:100vh;min-height:100dvh}button,input,select,textarea{font:inherit}button{touch-action:manipulation}input,select,textarea{font-size:16px}button:focus-visible{outline-offset:2px;outline:3px solid #75492f2e}input:focus-visible{outline-offset:2px;outline:3px solid #75492f2e}select:focus-visible{outline-offset:2px;outline:3px solid #75492f2e}textarea:focus-visible{outline-offset:2px;outline:3px solid #75492f2e}button{cursor:pointer}button:disabled{cursor:wait;opacity:.62}.eyebrow{color:var(--brown-700);letter-spacing:.14em;margin-bottom:7px;font-size:11px;font-weight:900;display:block}.muted{color:var(--muted)}.primary-button,.secondary-button{border-radius:13px;min-height:48px;font-weight:800}.primary-button{background:var(--brown-800);color:#fff;border:0;padding:0 20px;box-shadow:0 8px 22px #5b38272b}.primary-button:hover:not(:disabled){background:var(--brown-900)}.secondary-button{border:1px solid var(--border);color:var(--brown-800);background:#fff;padding:0 18px}.compact{min-height:40px;padding:0 14px}.full{width:100%}.text-button,.subtle-link{color:var(--brown-700);background:0 0;border:0;padding:8px;font-weight:800}.danger-link{color:var(--danger)!important}.icon-button{background:var(--surface-2);width:38px;height:38px;color:var(--brown-800);border:0;border-radius:12px;font-size:18px}.auth-page{min-height:100vh;min-height:100dvh;padding:max(24px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left));background:radial-gradient(circle at top left,#75492f1a,transparent 36rem),var(--cream);place-items:center;display:grid}.auth-card{border:1px solid var(--border);width:min(100%,460px);box-shadow:var(--shadow);background:#fff;border-radius:24px;padding:34px}.auth-card-wide{width:min(100%,520px)}.brand-mark{background:var(--brown-900);color:#fff;border-radius:18px;place-items:center;width:58px;height:58px;margin-bottom:24px;font-size:24px;font-weight:900;display:grid}.brand-mark.small{border-radius:14px;flex:none;width:44px;height:44px;margin:0;font-size:18px}.auth-heading h1{color:var(--text);letter-spacing:-.04em;margin:0;font-size:max(32px,min(6vw,44px));line-height:1.02}.auth-heading p{color:var(--muted);margin:14px 0 0;line-height:1.55}.auth-form,.form-stack{gap:17px;margin-top:28px;display:grid}.field{gap:8px;display:grid}.field>span{font-size:13px;font-weight:800}.field input,.field select,.field textarea,.search-box input{border:1px solid var(--border);width:100%;min-height:50px;color:var(--text);background:#fff;border-radius:13px;padding:0 14px}.field textarea{resize:vertical;min-height:94px;padding:12px 14px}.password-field{position:relative}.password-field input{padding-right:92px}.password-toggle{color:var(--brown-700);background:0 0;border:0;padding:8px;font-size:12px;font-weight:900;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.segmented{background:#f3efec;border-radius:14px;grid-template-columns:1fr 1fr;gap:4px;margin-top:25px;padding:4px;display:grid}.segmented button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:10px;font-weight:800}.segmented button.active{color:var(--brown-800);background:#fff;box-shadow:0 2px 8px #281e1814}.auth-links,.inline-actions{justify-content:space-between;gap:10px;margin-top:16px;display:flex}.back-button{color:var(--brown-700);background:0 0;border:0;margin-bottom:22px;padding:0;font-weight:800}.form-grid.two{grid-template-columns:1fr 1fr;gap:12px;display:grid}.otp-input{text-align:center;letter-spacing:.35em;font-size:22px;font-weight:900}.info-box,.success-box{border-radius:13px;padding:14px 15px;font-size:13px;line-height:1.45}.info-box{color:#694a38;background:#faf5f1;border:1px solid #eadbd0}.success-box{background:var(--success-bg);color:#236a4a;border:1px solid #bee3ce}.info-box p{margin:6px 0 0}.form-message{border-radius:12px;margin-top:15px;padding:12px 14px;font-size:13px;line-height:1.4}.form-message-error{background:var(--danger-bg);color:var(--danger);border:1px solid #f1b6af}.form-message-success{background:var(--success-bg);color:var(--success);border:1px solid #bee3ce}.splash-screen,.fatal-screen{min-height:100vh;place-content:center;justify-items:center;gap:14px;min-height:100dvh;padding:24px;display:grid}.loader{border:3px solid var(--brown-100);border-top-color:var(--brown-700);border-radius:50%;width:34px;height:34px;animation:.7s linear infinite spin}.loader.small{width:26px;height:26px}.fatal-screen section{text-align:center;max-width:520px}.fatal-screen h1{margin:8px 0;font-size:36px}.fatal-screen p{color:var(--muted);line-height:1.6}@keyframes spin{to{transform:rotate(360deg)}}.app-shell{min-height:100vh;grid-template-columns:260px 1fr;min-height:100dvh;display:grid}.sidebar{height:100vh;border-right:1px solid var(--border);z-index:20;background:#fff;flex-direction:column;height:100dvh;padding:18px 14px 14px;display:flex;position:-webkit-sticky;position:sticky;top:0}.sidebar-brand{align-items:center;gap:12px;padding:6px 6px 18px;display:flex}.sidebar-brand strong{white-space:nowrap;text-overflow:ellipsis;font-size:14px;display:block;overflow:hidden}.sidebar-brand span,.sidebar-user span{color:var(--muted);margin-top:3px;font-size:11px;display:block}.side-nav{gap:4px;padding-right:2px;display:grid;overflow:auto}.side-nav button{color:#5b5550;text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:11px;min-height:44px;padding:0 12px;font-weight:700;display:flex}.side-nav button span{text-align:center;width:22px}.side-nav button:hover,.side-nav button.active{color:var(--brown-800);background:#f4ebe5}.sidebar-user{border-top:1px solid var(--border);grid-template-columns:38px 1fr 38px;align-items:center;gap:10px;margin-top:auto;padding:13px 6px 0;display:grid}.avatar{width:38px;height:38px;color:var(--brown-800);background:#f3e7dd;border-radius:50%;place-items:center;font-weight:900;display:grid}.main-area{min-width:0}.topbar{z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);background:#f7f3eff0;justify-content:space-between;align-items:center;gap:14px;min-height:78px;padding:12px 28px;display:flex;position:-webkit-sticky;position:sticky;top:0}.topbar h1{letter-spacing:-.025em;margin:0;font-size:24px}.updated-label{color:var(--muted);font-size:11px}.menu-button{background:#fff;border:0;border-radius:12px;width:42px;height:42px;display:none}.page-content{max-width:1450px;margin:0 auto;padding:28px}.page-actions{justify-content:flex-start;gap:10px;margin-bottom:16px;display:flex}.card,.student-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:22px;box-shadow:0 3px 12px #3c281c06}.card h3,.student-card h2{margin:0 0 10px}.hero-panel{color:#fff;background:linear-gradient(135deg,#593525,#7e5237);border-radius:22px;justify-content:space-between;align-items:end;gap:24px;padding:28px;display:flex}.hero-panel .eyebrow{color:#e8d2c2}.hero-panel h2{letter-spacing:-.04em;margin:0;font-size:42px}.hero-panel p{color:#eadfd8;margin:7px 0 0}.hero-extra{text-align:right}.hero-extra span{color:#eadfd8;font-size:12px;display:block}.hero-extra strong{font-size:24px}.progress-track{background:#e8ddd6;border-radius:999px;height:10px;margin:14px 2px 24px;overflow:hidden}.progress-track span{background:var(--brown-700);border-radius:inherit;height:100%;display:block}.metric-grid{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px;display:grid}.metric-card{border:1px solid var(--border);background:#fff;border-radius:16px;gap:7px;padding:19px;display:grid}.metric-card>span{color:var(--muted);font-size:12px}.metric-card strong{font-size:20px}.metric-card small{color:var(--muted)}.search-box{border:1px solid var(--border);background:#fff;border-radius:14px;align-items:center;gap:10px;margin-bottom:16px;padding:0 14px;display:flex}.search-box input{border:0;padding-left:0}.table-card{padding:0;overflow:auto}.table-card table{border-collapse:collapse;width:100%;min-width:780px}.table-card th,.table-card td{text-align:left;vertical-align:middle;border-bottom:1px solid #eee8e3;padding:14px 16px}.table-card th{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;background:#fcfaf8;font-size:11px}.table-card td{font-size:13px}.table-card td small{color:var(--muted);margin-top:4px;display:block}.table-card button{color:var(--brown-700);background:0 0;border:0;padding:6px;font-weight:800}.row-actions{white-space:nowrap;text-align:right!important}.badge{border-radius:999px;align-items:center;padding:5px 9px;font-size:11px;font-weight:800;display:inline-flex}.badge.green{background:var(--success-bg);color:var(--success)}.badge.amber{background:var(--warning-bg);color:var(--warning)}.badge.red{background:var(--danger-bg);color:var(--danger)}.badge.gray{color:#666;background:#efefef}.empty-state{text-align:center;color:var(--muted);padding:34px}.empty-state strong{color:var(--text);display:block}.empty-state p{margin:6px 0 0}.settings-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.check-row{align-items:center;gap:9px;margin:14px 0;font-size:13px;display:flex}.check-row input{width:17px;height:17px}.person-summary{background:var(--surface-2);border-radius:13px;gap:4px;padding:14px;display:grid}.person-summary span{color:var(--muted);font-size:12px}.skeleton-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.skeleton-grid div{background:linear-gradient(90deg,#eee8e3,#f8f5f2,#eee8e3) 0 0/200% 100%;border-radius:18px;height:120px;animation:1.2s infinite skeleton}@keyframes skeleton{to{background-position:-200% 0}}.modal-backdrop{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#261d188f;place-items:center;padding:20px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.app-modal{background:#fff;border-radius:22px;width:min(100%,520px);max-height:min(90vh,760px);overflow:auto;box-shadow:0 28px 80px #140e0a47}.modal-header{z-index:2;border-bottom:1px solid var(--border);background:#fff;justify-content:space-between;align-items:center;gap:20px;padding:20px 22px;display:flex;position:-webkit-sticky;position:sticky;top:0}.modal-header h2{margin:0;font-size:20px}.modal-body{gap:15px;padding:22px;display:grid}.install-card{border:1px solid var(--border);background:#fff;border-radius:16px;grid-template-columns:1fr auto;gap:16px;margin-bottom:16px;padding:17px;display:grid}.install-card-content{align-items:center;gap:12px;display:flex}.install-card-content strong{font-size:13px;display:block}.install-card-content p{color:var(--muted);margin:3px 0 0;font-size:12px}.install-icon{background:var(--brown-100);border-radius:12px;place-items:center;width:40px;height:40px;font-weight:900;display:grid}.install-actions{align-items:center;gap:4px;display:flex}.never-show-option{color:var(--muted);grid-column:1/-1;align-items:center;gap:7px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;font-size:11px;display:inline-flex}.install-steps{color:var(--muted);gap:12px;padding:0 42px 20px;display:grid}.student-shell{min-height:100vh;min-height:100dvh;padding-bottom:calc(86px + env(safe-area-inset-bottom));background:var(--cream)}.student-header{z-index:20;padding:max(18px,env(safe-area-inset-top)) 18px 14px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#f7f3eff2;justify-content:space-between;align-items:center;display:flex;position:-webkit-sticky;position:sticky;top:0}.student-header h1{letter-spacing:-.03em;margin:0;font-size:24px}.student-main{max-width:720px;margin:0 auto;padding:20px 16px}.student-hero{color:#fff;background:linear-gradient(145deg,#4c2d1f,#775039);border-radius:22px;padding:24px}.student-hero .eyebrow{color:#ead9cc}.student-total{align-items:baseline;gap:8px;display:flex}.student-total strong{letter-spacing:-.04em;font-size:39px}.student-total span{color:#e5d9d2}.progress-track.student{background:#ffffff2e;margin:18px 0}.progress-track.student span{background:#fff}.student-stats{grid-template-columns:1fr 1fr;gap:14px;display:grid}.student-stats div{gap:4px;display:grid}.student-stats span{color:var(--muted);font-size:11px}.student-hero .student-stats span{color:#dbcfc7}.student-stats strong{font-size:18px}.student-card{margin-top:14px}.card-title-row,.student-section-heading{justify-content:space-between;align-items:center;gap:14px;display:flex}.card-title-row h2,.student-section-heading h2{margin:0}.status-pill{background:#eee;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900}.status-pill.up_to_date,.status-pill.ahead,.status-pill.completed{background:var(--success-bg);color:var(--success)}.status-pill.overdue{background:var(--danger-bg);color:var(--danger)}.status-pill.due_soon{background:var(--warning-bg);color:var(--warning)}.bottom-nav{z-index:30;padding:8px max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-top:1px solid var(--border);background:#fffffff7;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav button{min-height:54px;color:var(--muted);background:0 0;border:0;border-radius:12px;place-items:center;gap:2px;font-size:10px;font-weight:800;display:grid}.bottom-nav button span{font-size:17px}.bottom-nav button.active{color:var(--brown-800);background:#f6ece5}.payment-list,.schedule-list{gap:10px;margin-top:14px;display:grid}.payment-item{grid-template-columns:1fr auto;align-items:center;gap:10px;margin:0;display:grid}.payment-item>div{gap:3px;display:grid}.payment-item>div span{color:var(--muted);font-size:11px}.rejection{color:var(--danger);grid-column:1/-1;margin:0;font-size:12px}.schedule-row{border:1px solid var(--border);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.schedule-row>div{gap:3px;display:grid}.schedule-row>div:last-child{text-align:right}.schedule-row span{color:var(--muted);font-size:11px}.status-text.overdue{color:var(--danger)}.status-text.paid,.status-text.ahead{color:var(--success)}.profile-list{gap:10px;margin:18px 0;display:grid}.profile-list div{border-bottom:1px solid var(--border);justify-content:space-between;gap:20px;padding-bottom:10px;display:flex}.profile-list dt{color:var(--muted)}.profile-list dd{text-align:right;margin:0;font-weight:700}.drawer-scrim{display:none}@media (max-width:1050px){.metric-grid{grid-template-columns:repeat(2,1fr)}.app-shell{grid-template-columns:220px 1fr}.sidebar-brand strong{font-size:12px}.settings-grid{grid-template-columns:1fr}}@media (max-width:760px){.app-shell{display:block}.sidebar{width:min(84vw,300px);transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-105%);box-shadow:20px 0 60px #2318122e}.sidebar.open{transform:translate(0)}.drawer-scrim{z-index:15;background:#1e161259;border:0;display:block;position:fixed;top:0;bottom:0;left:0;right:0}.menu-button{place-items:center;display:grid}.topbar{min-height:70px;padding:10px 14px}.topbar h1{font-size:20px}.topbar .secondary-button{display:none}.page-content{padding:16px}.metric-grid{grid-template-columns:1fr 1fr}.hero-panel{flex-direction:column;align-items:flex-start;padding:22px}.hero-extra{text-align:left}.hero-panel h2{font-size:35px}.form-grid.two{grid-template-columns:1fr}.auth-card{padding:26px 20px}.install-card{grid-template-columns:1fr}.install-actions{justify-content:space-between}.table-card{border-radius:14px}.student-section-heading{align-items:flex-end}.settings-grid{display:block}.settings-grid>.card{margin-bottom:14px}}@media (max-width:480px){.metric-grid{grid-template-columns:1fr}.auth-links{flex-direction:column;align-items:flex-start}.student-total{gap:1px;display:grid}.student-total strong{font-size:34px}.app-modal{border-radius:18px}.modal-backdrop{padding:10px}.modal-body{padding:18px}.modal-header{padding:17px 18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.maintenance-screen{min-height:100vh;background:radial-gradient(circle at top,#f0e4db,transparent 34rem),var(--cream);place-items:center;min-height:100dvh;padding:24px;display:grid}.maintenance-screen section{border:1px solid var(--border);width:min(100%,520px);box-shadow:var(--shadow);background:#fff;border-radius:24px;padding:34px}.maintenance-screen h1{letter-spacing:-.04em;margin:8px 0 12px;font-size:36px}.maintenance-screen p{color:var(--muted);line-height:1.6}.maintenance-actions{gap:10px;margin-top:20px;display:flex}.permissions-box{border:1px solid var(--border);background:var(--surface-2);border-radius:14px;padding:14px}.permissions-box>strong{margin-bottom:8px;display:block}.permissions-box .check-row{margin:9px 0}.compact-total{margin-top:8px}.peer-list{gap:7px;margin-top:14px;display:grid}.peer-list div{border-top:1px solid var(--border);justify-content:space-between;gap:12px;padding:8px 0;font-size:12px;display:flex}body{color:var(--text);transition:background-color .18s,color .18s}:root{--topbar-bg:#f7f3efe0;--nav-bg:#fffffff0;--accent-soft:#f4ebe5;--row-hover:#fcf8f5;--overlay:#261d1885;--focus:#75492f33}:root[data-theme=dark]{--brown-950:#f7e8dc;--brown-900:#e9cbb7;--brown-800:#d7a887;--brown-700:#c78d69;--brown-100:#342820;--cream:#11100f;--surface:#191715;--surface-2:#211e1b;--border:#37312d;--text:#f3ede8;--muted:#aaa099;--success:#72d7a3;--success-bg:#173126;--warning:#f4c768;--warning-bg:#342b18;--danger:#ff948a;--danger-bg:#3a201e;--shadow:0 22px 70px #00000057;--topbar-bg:#11100fe0;--nav-bg:#191715f0;--accent-soft:#2b231e;--row-hover:#201c19;--overlay:#000000a3;--focus:#d7a8873d}:root[data-theme=dark] .auth-page{background:radial-gradient(circle at top left,#c78d691a,transparent 34rem),var(--cream)}:root[data-theme=dark] .maintenance-screen{background:radial-gradient(circle at top,#c78d691a,transparent 34rem),var(--cream)}:root[data-theme=dark] .hero-panel{background:linear-gradient(135deg,#362218,#65412e)}:root[data-theme=dark] .student-hero{background:linear-gradient(145deg,#352117,#65442f)}.auth-card,.sidebar,.card,.student-card,.metric-card,.search-box,.schedule-row,.app-modal,.modal-header,.secondary-button,.menu-button{background:var(--surface);color:var(--text)}.field input,.field select,.field textarea,.search-box input{background:var(--surface);color:var(--text);border-color:var(--border)}.segmented{background:var(--surface-2)}.segmented button.active{background:var(--surface);color:var(--brown-800)}.topbar,.student-header{background:var(--topbar-bg)}.bottom-nav{background:var(--nav-bg)}.side-nav button{color:var(--muted)}.side-nav button:hover,.side-nav button.active,.bottom-nav button.active{background:var(--accent-soft);color:var(--brown-800)}.table-card th{background:var(--surface-2);color:var(--muted)}.table-card th,.table-card td{border-bottom-color:var(--border)}.table-card tbody tr{transition:background-color .15s}.table-card tbody tr:hover{background:var(--row-hover)}.badge.gray{background:var(--surface-2);color:var(--muted)}.info-box{background:var(--surface-2);border-color:var(--border);color:var(--text)}.success-box{border-color:color-mix(in srgb,var(--success) 35%,var(--border))}.skeleton-grid div{background:linear-gradient(90deg,var(--surface-2),color-mix(in srgb,var(--surface-2) 70%,var(--border)),var(--surface-2));background-size:200% 100%}.primary-button,.secondary-button,.icon-button,.theme-toggle,.side-nav button,.bottom-nav button,.table-card button{transition:transform .14s,box-shadow .14s,background-color .14s,border-color .14s,color .14s,opacity .14s}.primary-button{background:linear-gradient(135deg,#6a412d,#4d2d20);box-shadow:0 8px 24px #442a1b2e}:root[data-theme=dark] .primary-button{color:#fff8f3;background:linear-gradient(135deg,#a86f4e,#75472f);box-shadow:0 10px 28px #00000047}.primary-button:hover:not(:disabled),.secondary-button:hover:not(:disabled),.icon-button:hover:not(:disabled),.theme-toggle:hover:not(:disabled){transform:translateY(-1px)}.primary-button:active:not(:disabled),.secondary-button:active:not(:disabled),.icon-button:active:not(:disabled),.theme-toggle:active:not(:disabled){transform:translateY(0)scale(.98)}.secondary-button:hover:not(:disabled){border-color:color-mix(in srgb,var(--brown-700) 42%,var(--border));box-shadow:0 5px 16px #281e180f}.icon-button{background:var(--surface-2);color:var(--brown-800);border:1px solid #0000}.icon-button:hover{border-color:var(--border)}button:focus-visible{outline-color:var(--focus)}input:focus-visible{outline-color:var(--focus)}select:focus-visible{outline-color:var(--focus)}textarea:focus-visible{outline-color:var(--focus)}.theme-toggle{border:1px solid var(--border);background:var(--surface);min-width:40px;height:40px;color:var(--text);border-radius:13px;justify-content:center;align-items:center;gap:7px;padding:0 12px;font-size:12px;font-weight:800;display:inline-flex;box-shadow:0 3px 12px #32231a0a}.theme-toggle>span:first-child{font-size:17px;line-height:1}.compact-toggle{width:40px;min-width:40px;padding:0}.auth-theme-toggle{z-index:5;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));position:fixed}.topbar-title{flex:1;min-width:0}.topbar-actions,.student-header-actions{align-items:center;gap:8px;display:flex}.refresh-button{align-items:center;gap:7px;display:inline-flex}.page-transition{animation:.16s ease-out both page-enter}@keyframes page-enter{0%{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:none}}.busy-backdrop{z-index:4000;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);cursor:wait;place-items:center;padding:20px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.busy-panel{border:1px solid var(--border);background:var(--surface);border-radius:20px;align-items:center;gap:16px;width:min(92vw,410px);padding:20px 21px;animation:.16s ease-out both busy-in;display:flex;box-shadow:0 30px 90px #00000047}.busy-panel .loader{flex:none}.busy-panel>div:last-child{gap:5px;display:grid}.busy-panel strong{color:var(--text);font-size:14px}.busy-panel span{color:var(--muted);font-size:12px;line-height:1.45}@keyframes busy-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.modal-backdrop{background:var(--overlay)}.app-modal{border:1px solid var(--border)}.install-onboarding-backdrop{z-index:2500;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.install-onboarding{width:min(100%,500px);max-height:min(92dvh,780px)}.install-onboarding-body{gap:16px;padding:25px;display:grid}.install-welcome-icon{background:linear-gradient(145deg,var(--brown-900),var(--brown-700));color:#fff;border-radius:17px;place-items:center;width:54px;height:54px;font-size:20px;font-weight:900;display:grid;box-shadow:0 10px 26px #442a1b2e}.install-welcome-copy h2{letter-spacing:-.035em;margin:0;font-size:24px}.install-welcome-copy p{color:var(--muted);margin:8px 0 0;font-size:13px;line-height:1.55}.modern-steps{margin:0;padding:0;list-style:none}.modern-steps li{grid-template-columns:30px 1fr;align-items:start;gap:11px;display:grid}.modern-steps li>span{background:var(--accent-soft);width:28px;height:28px;color:var(--brown-800);border-radius:9px;place-items:center;font-size:11px;font-weight:900;display:grid}.modern-steps li div{gap:3px;display:grid}.modern-steps strong{font-size:13px}.modern-steps p{color:var(--muted);margin:0;font-size:12px;line-height:1.45}.install-tip{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);border-radius:12px;padding:12px 13px;font-size:12px;line-height:1.5}.install-primary-actions{gap:8px;display:grid}.never-show-option{color:var(--muted);font-size:11px}.install-card-modern{grid-template-columns:54px 1fr;align-items:start;padding:18px}.install-card-modern .install-welcome-icon{grid-column:1}.install-card-modern .install-welcome-copy,.install-card-modern .install-tip,.install-card-modern .install-primary-actions,.install-card-modern .never-show-option{grid-column:2}.install-card-modern .install-primary-actions{grid-template-columns:auto auto;justify-content:start}.install-card-modern .install-primary-actions .full{width:auto}@media (max-width:760px){.topbar-actions .refresh-button span{display:none}.topbar-actions .refresh-button{justify-content:center;width:40px;padding:0}.topbar{gap:9px}.topbar-title h1{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.student-header-actions{gap:6px}}@media (max-width:480px){.install-onboarding-body{padding:21px 18px}.install-welcome-copy h2{font-size:22px}.busy-panel{padding:18px}.auth-theme-toggle{top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right))}}@media (prefers-reduced-motion:reduce){.page-transition,.busy-panel{animation:none!important}}.auth-page-final{padding:max(18px,min(4vw,42px))}.auth-login-shell{border:1px solid var(--border);background:var(--surface);border-radius:30px;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);width:min(100%,980px);display:grid;overflow:hidden;box-shadow:0 28px 90px #402a1c1f}.auth-brand-panel{color:#fff;background:linear-gradient(145deg,#563321 0%,#75492f 58%,#8b6042 100%);flex-direction:column;justify-content:center;gap:28px;min-height:610px;padding:54px;display:flex;position:relative;overflow:hidden}.auth-brand-panel:before{content:"";background:#ffffff12;border-radius:50%;width:340px;height:340px;position:absolute;top:-150px;right:-160px}.auth-brand-panel:after{content:"";background:#ffffff0d;border-radius:50%;width:240px;height:240px;position:absolute;bottom:-130px;left:-130px}.auth-brand-panel>*{z-index:1;position:relative}.auth-brand-panel .eyebrow{color:#ead7c8}.auth-brand-panel h1{letter-spacing:-.055em;margin:0;font-size:max(38px,min(4.5vw,58px));line-height:.98}.auth-brand-panel>div>p{color:#f0e4dc;max-width:430px;margin:16px 0 0;line-height:1.65}.login-logo-wrap{align-items:center;min-height:64px;display:flex}.login-logo{object-fit:contain;object-position:left center;filter:drop-shadow(0 10px 20px #0000001f);max-width:170px;max-height:76px;display:block}.login-mark{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff24;border:1px solid #ffffff29;margin:0}.login-benefits{gap:15px;display:grid}.login-benefits>div{grid-template-columns:28px 1fr;align-items:start;gap:11px;display:grid}.login-benefits>div>span{background:#ffffff21;border-radius:9px;place-items:center;width:27px;height:27px;font-weight:900;display:grid}.login-benefits p{gap:3px;margin:0;display:grid}.login-benefits strong{font-size:13px}.login-benefits small{color:#eadfd7;font-size:12px;line-height:1.45}.login-cohort-pill{background:#ffffff17;border:1px solid #fff3;border-radius:999px;align-self:flex-start;padding:8px 12px;font-size:12px;font-weight:800}.auth-login-form-panel{flex-direction:column;justify-content:center;padding:50px 46px;display:flex}.compact-heading h2{letter-spacing:-.04em;margin:0;font-size:30px}.compact-heading p{margin-top:9px}.segmented-elevated{margin-top:26px}.login-form-final{margin-top:22px}.login-submit{margin-top:2px}.auth-links-final{align-items:center}.small-copy{font-size:12px}.support-link{color:var(--brown-700);text-align:center;margin:18px auto 0;font-size:12px;font-weight:800;text-decoration:none;display:block}.support-link:hover{text-decoration:underline}.login-security-note{border-top:1px solid var(--border);color:var(--muted);text-align:center;margin:18px 0 0;padding-top:15px;font-size:11px;line-height:1.45}.form-message-warning{border:1px solid color-mix(in srgb,var(--warning) 40%,var(--border));background:var(--warning-bg);color:var(--warning)}.activation-card-final{position:relative}.activation-brand-row{align-items:center;gap:11px;margin:0 0 22px;display:flex}.activation-brand-row>div:last-child{gap:3px;display:grid}.activation-brand-row strong{font-size:13px}.activation-brand-row span{color:var(--muted);font-size:11px}.activation-logo{object-fit:contain;object-position:left center;max-width:110px;max-height:46px}.sidebar-logo{object-fit:contain;background:var(--surface-2);border-radius:13px;flex:none;width:44px;height:44px;padding:4px}.role-switch-link{color:var(--brown-700);text-align:left;background:0 0;border:0;margin:4px 0 0;padding:0;font-size:10px;font-weight:900;display:block}.role-switch-button{white-space:nowrap}.student-brand-title{align-items:center;gap:11px;display:flex}.student-logo{object-fit:contain;background:var(--surface);border:1px solid var(--border);border-radius:12px;width:42px;height:42px;padding:3px}.maintenance-logo{object-fit:contain;max-width:150px;max-height:70px;margin-bottom:22px;display:block}.install-welcome-logo{object-fit:contain;max-width:150px;max-height:62px;display:block}.settings-final{gap:16px;padding-bottom:92px;display:grid}.settings-section-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.settings-card{align-content:start;gap:17px;display:grid}.settings-card-heading{justify-content:space-between;align-items:start;gap:16px;display:flex}.settings-card-heading h3{letter-spacing:-.025em;margin:0;font-size:20px}.status-dot{background:var(--surface-2);border-radius:999px;align-items:center;gap:6px;padding:6px 9px;font-size:10px;font-weight:900;display:inline-flex}.status-dot:before{content:"";background:var(--muted);border-radius:50%;width:7px;height:7px}.status-dot.online:before{background:var(--success);box-shadow:0 0 0 3px color-mix(in srgb,var(--success) 16%,transparent)}.branding-editor{gap:14px;display:grid}.branding-preview{border:1px dashed color-mix(in srgb,var(--border) 78%,var(--brown-700));background:var(--surface-2);border-radius:16px;align-items:center;gap:16px;min-height:96px;padding:15px;display:flex}.branding-preview img{object-fit:contain;max-width:130px;max-height:66px}.branding-preview .brand-mark{flex:none;margin:0}.branding-preview>div:last-child{gap:5px;display:grid}.branding-preview strong{font-size:15px}.branding-preview span{color:var(--muted);font-size:11px}.field small{color:var(--muted);font-size:11px;line-height:1.4}.compact-check{margin:0}.toggle-stack{gap:10px;display:grid}.toggle-card{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:14px;grid-template-columns:20px 1fr;align-items:start;gap:11px;padding:14px;display:grid}.toggle-card:hover{border-color:color-mix(in srgb,var(--brown-700) 38%,var(--border))}.toggle-card input{width:18px;height:18px;accent-color:var(--brown-700);margin-top:2px}.toggle-card>span{gap:4px;display:grid}.toggle-card strong{font-size:13px}.toggle-card small{color:var(--muted);font-size:11px;line-height:1.45}.toggle-card.important{background:color-mix(in srgb,var(--warning-bg) 55%,var(--surface))}.settings-maintenance-card{grid-column:1/-1}.maintenance-active-banner{border:1px solid color-mix(in srgb,var(--warning) 45%,var(--border));background:var(--warning-bg);color:var(--warning);border-radius:14px;justify-content:space-between;align-items:center;gap:15px;padding:13px 16px;font-size:12px;display:flex}.maintenance-active-banner strong{font-size:12px}.maintenance-active-banner.soft{background:var(--surface-2);color:var(--text);border-color:var(--border)}.settings-save-bar{z-index:9;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:17px;justify-content:space-between;align-items:center;gap:18px;margin-top:4px;padding:14px 16px;display:flex;position:-webkit-sticky;position:sticky;bottom:14px;box-shadow:0 16px 40px #281c141f}.settings-save-bar>div{gap:3px;display:grid}.settings-save-bar strong{font-size:13px}.settings-save-bar span{color:var(--muted);font-size:11px}:root[data-theme=dark] .auth-brand-panel{background:linear-gradient(145deg,#2b1b14 0%,#4d3023 58%,#674630 100%)}:root[data-theme=dark] .auth-login-shell{box-shadow:0 30px 90px #0000006b}@media (max-width:900px){.auth-login-shell{grid-template-columns:1fr;max-width:570px}.auth-brand-panel{gap:18px;min-height:auto;padding:34px 32px}.auth-brand-panel h1{font-size:38px}.login-benefits{display:none}.login-logo{max-height:56px}.auth-login-form-panel{padding:36px 32px}.settings-section-grid{grid-template-columns:1fr}.settings-maintenance-card{grid-column:auto}}@media (max-width:600px){.auth-page-final{padding:0}.auth-login-shell{min-height:100dvh;box-shadow:none;border:0;border-radius:0}.auth-brand-panel{padding:max(68px,calc(env(safe-area-inset-top) + 50px)) 22px 24px}.auth-brand-panel h1{font-size:32px}.auth-brand-panel>div>p{font-size:13px}.login-cohort-pill{font-size:10px}.auth-login-form-panel{padding:28px 22px max(28px,env(safe-area-inset-bottom))}.compact-heading h2{font-size:27px}.auth-links-final{align-items:flex-start}.settings-save-bar{flex-direction:column;align-items:stretch;bottom:8px}.settings-save-bar .primary-button{width:100%}.maintenance-active-banner{flex-direction:column;align-items:flex-start}.role-switch-button{width:40px;padding:0;font-size:0}.role-switch-button:after{content:"Admin";font-size:10px}.student-logo{width:36px;height:36px}}.nav-label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.nav-count{background:var(--brown-800);color:#fff;border-radius:999px;place-items:center;min-width:22px;height:22px;margin-left:auto;padding:0 7px;font-size:10px;font-weight:900;display:inline-grid;box-shadow:0 5px 12px #41271924}.notification-center{display:inline-flex;position:relative}.notification-button{position:relative}.notification-count{border:2px solid var(--surface);background:var(--danger);color:#fff;border-radius:999px;place-items:center;min-width:19px;height:19px;padding:0 5px;font-size:9px;font-weight:900;line-height:1;display:grid;position:absolute;top:-6px;right:-7px}.notification-popover{z-index:50;border:1px solid var(--border);background:var(--surface);border-radius:18px;width:min(390px,100vw - 28px);position:absolute;top:calc(100% + 10px);right:0;overflow:hidden;box-shadow:0 24px 70px #2619112e}.notification-popover-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:16px 16px 13px;display:flex}.notification-popover-head h3{margin:2px 0 0;font-size:18px}.notification-list{max-height:min(430px,65vh);overflow:auto}.notification-item{border:0;border-bottom:1px solid var(--border);width:100%;color:var(--text);text-align:left;background:0 0;grid-template-columns:10px 1fr;gap:10px;padding:14px 16px;display:grid}.notification-item:hover{background:var(--surface-2)}.notification-item.unread{background:color-mix(in srgb,var(--brown-100) 30%,var(--surface))}.notification-dot{background:0 0;border-radius:50%;width:7px;height:7px;margin-top:6px}.notification-item.unread .notification-dot{background:var(--brown-700);box-shadow:0 0 0 4px color-mix(in srgb,var(--brown-700) 12%,transparent)}.notification-copy{gap:4px;display:grid}.notification-copy strong{font-size:12px}.notification-copy>span{color:var(--muted);font-size:11px;line-height:1.45}.notification-copy small{color:var(--muted);font-size:9px}.notification-empty{text-align:center;gap:5px;padding:28px 18px;display:grid}.notification-empty strong{font-size:13px}.notification-empty span{color:var(--muted);font-size:11px}.notification-error{background:var(--danger-bg);color:var(--danger);padding:10px 14px;font-size:10px}.reminder-hint{border:1px solid color-mix(in srgb,var(--success) 22%,var(--border));background:color-mix(in srgb,var(--success-bg) 72%,var(--surface));color:var(--success);border-radius:11px;margin:8px 0 0;padding:9px 11px;font-size:11px;line-height:1.45}.schedule-mode-selector{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.schedule-option{border:1px solid var(--border);background:var(--surface-2);color:var(--text);text-align:left;border-radius:13px;gap:4px;padding:13px;display:grid}.schedule-option strong{font-size:12px}.schedule-option span{color:var(--muted);font-size:10px;line-height:1.4}.schedule-option.active{border-color:var(--brown-700);background:color-mix(in srgb,var(--brown-100) 42%,var(--surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--brown-700) 26%,transparent)}.custom-schedule-head{justify-content:space-between;align-items:center;gap:14px;padding-top:3px;display:flex}.custom-schedule-head>div{gap:3px;display:grid}.custom-schedule-head strong{font-size:12px}.custom-schedule-head span{color:var(--muted);font-size:10px}.custom-date-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-height:330px;padding:2px;display:grid;overflow:auto}.compact-frequency{max-width:280px}.mini-loading{border:1px dashed var(--border);color:var(--muted);text-align:center;border-radius:12px;padding:18px;font-size:11px}.settings-notification-card{min-height:100%}.reminder-rule-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.settings-templates-card{grid-column:1/-1}.settings-help{margin:-7px 0 0}.template-count{background:var(--surface-2);border:1px solid var(--border);border-radius:10px;place-items:center;min-width:30px;height:30px;font-size:11px;font-weight:900;display:grid}.notification-template-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.notification-template-row{border:1px solid var(--border);background:var(--surface-2);border-radius:13px;justify-content:space-between;align-items:center;gap:12px;padding:12px 13px;display:flex}.notification-template-row>div:first-child{gap:4px;min-width:0;display:grid}.notification-template-row strong{font-size:12px}.notification-template-row span{color:var(--muted);font-size:9px}.template-row-actions{flex:none;align-items:center;gap:7px;display:flex}.template-state{background:var(--danger-bg);border-radius:999px;justify-content:center;align-items:center;min-width:31px;padding:4px 6px;font-weight:900;color:var(--danger)!important;font-size:8px!important;display:inline-flex!important}.template-state.on{background:var(--success-bg);color:var(--success)!important}.notification-template-modal{gap:14px}.template-channel-grid{gap:8px;display:grid}.template-placeholders{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;gap:6px;padding:12px;display:grid}.template-placeholders strong{font-size:11px}.template-placeholders code{background:color-mix(in srgb,var(--brown-100) 35%,var(--surface));color:var(--brown-800);white-space:nowrap;border-radius:8px;padding:7px 9px;font-size:10px;display:block;overflow:auto}.template-placeholders span{color:var(--muted);font-size:10px;line-height:1.4}:root[data-theme=dark] .notification-popover{box-shadow:0 28px 70px #0000007a}:root[data-theme=dark] .notification-count{border-color:var(--surface)}@media (max-width:900px){.notification-template-list,.reminder-rule-grid{grid-template-columns:1fr}.custom-date-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.notification-popover{width:auto;position:fixed;top:72px;left:10px;right:10px}.schedule-mode-selector{grid-template-columns:1fr}.custom-schedule-head{flex-direction:column;align-items:stretch}.custom-date-grid{grid-template-columns:1fr;max-height:310px}.notification-template-row{flex-direction:column;align-items:flex-start}.template-row-actions{justify-content:space-between;width:100%}.settings-templates-card{grid-column:auto}}.app-shell{grid-template-columns:272px minmax(0,1fr)}.sidebar{min-width:0;padding:18px 12px 14px;overflow:hidden}.sidebar-brand{min-width:0;padding:6px 8px 18px}.sidebar-brand>div:last-child{min-width:0;overflow:hidden}.sidebar-brand strong{white-space:normal;text-overflow:clip;line-height:1.2;overflow:visible}.side-nav{scrollbar-gutter:stable;flex-direction:column;flex:1;gap:4px;min-height:0;padding:2px 3px 10px 0;display:flex;overflow-x:hidden;overflow-y:auto}.side-nav button{text-align:left;flex:none;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;column-gap:10px;width:100%;min-height:46px;padding:8px 10px;display:grid}.side-nav button>span:first-child{text-align:center;place-items:center;width:28px;min-width:28px;font-size:15px;line-height:1;display:grid}.side-nav .nav-label{text-overflow:clip;white-space:normal;text-align:left;width:auto;min-width:0;line-height:1.15;overflow:visible}.side-nav .nav-count{flex:none;width:auto;min-width:22px;margin-left:0}.side-nav button.active{box-shadow:inset 3px 0 0 var(--brown-700)}.sidebar-user{grid-template-columns:38px minmax(0,1fr) 38px;padding:13px 7px 0}.sidebar-user>div:nth-child(2){min-width:0}.sidebar-user strong{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.role-switch-link{white-space:normal}.main-area{width:100%;min-width:0}@media (max-width:1100px){.app-shell{grid-template-columns:244px minmax(0,1fr)}}@media (max-width:760px){.app-shell{display:block}.sidebar{width:min(86vw,300px);max-width:300px;padding:18px 12px 14px}.side-nav button{min-height:48px}.side-nav .nav-label{white-space:normal}}.admin-attention-card{border:1px solid color-mix(in srgb,var(--warning) 38%,var(--border));background:color-mix(in srgb,var(--warning-bg) 72%,var(--surface));width:100%;color:var(--text);text-align:left;cursor:pointer;border-radius:17px;justify-content:space-between;align-items:center;gap:20px;margin:0 0 18px;padding:18px 20px;transition:transform .14s,border-color .14s,box-shadow .14s;display:flex}.admin-attention-card:hover{border-color:color-mix(in srgb,var(--warning) 62%,var(--border));transform:translateY(-1px);box-shadow:0 10px 28px #32231812}.admin-attention-card>div{gap:4px;display:grid}.admin-attention-card strong{font-size:16px}.admin-attention-card small{color:var(--muted);font-size:11px}.admin-attention-action{color:var(--brown-800);flex:none;font-size:12px;font-weight:900}.admin-quick-section{margin:4px 0 18px}.admin-section-heading{justify-content:space-between;align-items:end;gap:16px;margin-bottom:12px;display:flex}.admin-section-heading h3{letter-spacing:-.02em;margin:2px 0 0;font-size:19px}.admin-quick-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;display:grid}.admin-quick-action{border:1px solid var(--border);background:var(--surface);min-height:92px;color:var(--text);text-align:left;cursor:pointer;border-radius:16px;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:11px;padding:15px;transition:transform .14s,border-color .14s,box-shadow .14s;display:grid}.admin-quick-action:hover{border-color:color-mix(in srgb,var(--brown-700) 35%,var(--border));transform:translateY(-1px);box-shadow:0 10px 28px #3223180f}.admin-quick-icon{background:var(--accent-soft);width:38px;height:38px;color:var(--brown-800);border-radius:12px;place-items:center;font-size:16px;font-weight:900;display:grid}.admin-quick-action>div{gap:4px;min-width:0;display:grid}.admin-quick-action strong{font-size:12px}.admin-quick-action small{color:var(--muted);font-size:10px;line-height:1.35}.admin-system-card{margin-top:2px}.student-next-card{gap:16px;display:grid}.student-next-card.state-overdue{border-color:color-mix(in srgb,var(--danger) 34%,var(--border))}.student-next-card.state-due_soon{border-color:color-mix(in srgb,var(--warning) 35%,var(--border))}.student-next-card.state-ahead,.student-next-card.state-completed,.student-next-card.state-up_to_date{border-color:color-mix(in srgb,var(--success) 28%,var(--border))}.student-next-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.student-next-copy{min-width:0}.student-next-copy h2{letter-spacing:-.03em;margin:2px 0 6px;font-size:23px}.student-next-copy p{max-width:520px;color:var(--muted);margin:0;font-size:12px;line-height:1.5}.next-due-box{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.next-due-box>div{border:1px solid var(--border);background:var(--surface-2);border-radius:13px;gap:5px;padding:13px 14px;display:grid}.next-due-box span{color:var(--muted);font-size:10px}.next-due-box strong{font-size:15px}.student-primary-actions{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:9px;display:grid}.student-primary-actions .primary-button,.student-primary-actions .secondary-button{justify-content:center;width:100%}.student-completed-message{border:1px solid color-mix(in srgb,var(--success) 30%,var(--border));background:var(--success-bg);color:var(--success);border-radius:14px;gap:4px;padding:14px;display:grid}.student-completed-message strong{font-size:13px}.student-completed-message span{font-size:11px;line-height:1.45}.student-success-highlight{margin-top:14px}.student-payment-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0;display:grid}.student-payment-overview>div{border:1px solid var(--border);background:var(--surface);text-align:center;border-radius:13px;gap:4px;padding:12px;display:grid}.student-payment-overview span{color:var(--muted);font-size:9px}.student-payment-overview strong{font-size:17px}@media (max-width:1050px){.admin-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.admin-attention-card{flex-direction:column;align-items:flex-start}.admin-quick-grid{grid-template-columns:1fr 1fr}.admin-quick-action{grid-template-columns:1fr;align-content:start;min-height:102px}.student-next-top{flex-direction:column}.student-primary-actions{grid-template-columns:1fr}}@media (max-width:420px){.admin-quick-grid{grid-template-columns:1fr}.next-due-box{grid-template-columns:1fr 1fr}.student-payment-overview{gap:6px}.student-payment-overview>div{padding:10px 6px}}.dashboard-loading{gap:18px;min-height:420px;display:grid}.dashboard-loading-head{border:1px solid var(--border);background:var(--surface);border-radius:15px;align-items:center;gap:12px;min-height:52px;padding:13px 15px;display:flex}.dashboard-loading-head>div:last-child{gap:3px;display:grid}.dashboard-loading-head strong{color:var(--text);font-size:13px}.dashboard-loading-head span{color:var(--muted);font-size:11px}.dashboard-loading-hero{border-radius:22px;height:160px}.dashboard-loading-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.dashboard-loading-grid>div{border-radius:16px;height:112px}.skeleton-shimmer{background:var(--surface-2);border:1px solid var(--border);position:relative;overflow:hidden}.skeleton-shimmer:after{content:"";background:linear-gradient(90deg, transparent, color-mix(in srgb,var(--surface) 72%,transparent), transparent);animation:1.25s infinite graduation-shimmer;position:absolute;top:0;bottom:0;left:0;right:0;transform:translate(-100%)}@keyframes graduation-shimmer{to{transform:translate(100%)}}@media (max-width:900px){.dashboard-loading-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:520px){.dashboard-loading-grid{grid-template-columns:1fr 1fr}.dashboard-loading-hero{height:135px}}@media (prefers-reduced-motion:reduce){.skeleton-shimmer:after{animation:none}}.modal-backdrop{animation:.16s ease-out both modal-backdrop-enter}.app-modal{animation:.18s cubic-bezier(.2,.78,.2,1) both modal-card-enter}.app-modal-wide{width:min(94vw,860px);max-height:min(92vh,900px)}.modal-header>div:first-child{gap:3px;min-width:0;display:grid}.modal-kicker{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:9px;font-weight:900}.modal-close-button{flex:none}@keyframes modal-backdrop-enter{0%{opacity:0}to{opacity:1}}@keyframes modal-card-enter{0%{opacity:0;transform:translateY(8px)scale(.985)}to{opacity:1;transform:none}}.primary-button,.secondary-button{min-height:42px}.primary-button:disabled,.secondary-button:disabled,.icon-button:disabled,.text-button:disabled{cursor:not-allowed;opacity:.52;box-shadow:none!important;transform:none!important}.settings-support-card{min-height:100%}.treasurer-contact-box{border:1px solid var(--border);background:var(--surface-2);border-radius:16px;gap:13px;padding:15px;display:grid}.treasurer-contact-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.treasurer-contact-heading>div{gap:4px;display:grid}.treasurer-contact-heading strong{font-size:13px}.treasurer-contact-heading span{color:var(--muted);font-size:10px;line-height:1.4}.whatsapp-mark{background:var(--success-bg);border-radius:12px;flex:none;place-items:center;width:36px;height:36px;font-weight:900;display:grid;color:var(--success)!important;font-size:10px!important}.phone-input-shell{border:1px solid var(--border);background:var(--surface);border-radius:13px;grid-template-columns:auto 1fr;align-items:center;min-height:50px;display:grid;overflow:hidden}.phone-prefix{border-right:1px solid var(--border);background:var(--surface-2);color:var(--text);align-self:stretch;place-items:center;padding:0 13px;font-size:13px;font-weight:900;display:grid}.phone-input-shell input{letter-spacing:.04em;min-height:48px;font-size:16px;font-weight:800;background:0 0!important;border:0!important;border-radius:0!important}.notification-template-modal-v2{gap:14px;padding-bottom:18px}.template-section{border:1px solid var(--border);background:var(--surface);border-radius:16px;gap:13px;padding:16px;display:grid}.template-section-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.template-section-heading>div{gap:3px;display:grid}.template-section-heading strong{font-size:14px}.template-channel-grid-v2{grid-template-columns:repeat(3,minmax(0,1fr))}.template-live-state,.editor-target-pill,.preview-badge,.locked-pill{border:1px solid var(--border);background:var(--surface-2);min-height:26px;color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;padding:0 9px;font-size:9px;font-weight:900;display:inline-flex}.template-live-state.on{border-color:color-mix(in srgb,var(--success) 28%,var(--border));background:var(--success-bg);color:var(--success)}.editor-target-pill{background:var(--accent-soft);color:var(--brown-800)}.template-variable-picker{border:1px dashed color-mix(in srgb,var(--brown-700) 34%,var(--border));background:var(--surface-2);border-radius:14px;gap:11px;padding:13px;display:grid}.template-variable-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.template-variable-heading>div{gap:3px;display:grid}.template-variable-heading strong{font-size:12px}.template-variable-heading span{color:var(--muted);font-size:10px;line-height:1.4}.template-variable-chips{flex-wrap:wrap;gap:8px;display:flex}.template-variable-chip{border:1px solid var(--border);background:var(--surface);min-width:118px;color:var(--text);text-align:left;cursor:pointer;border-radius:12px;grid-template-rows:auto auto;grid-template-columns:24px 1fr;column-gap:7px;padding:9px 10px;transition:transform .12s,border-color .12s,background-color .12s;display:grid}.template-variable-chip:hover{border-color:color-mix(in srgb,var(--brown-700) 36%,var(--border));background:color-mix(in srgb,var(--accent-soft) 45%,var(--surface));transform:translateY(-1px)}.template-variable-chip>span{grid-row:1/3;align-self:center;font-size:17px}.template-variable-chip strong{font-size:10px}.template-variable-chip small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:8px;overflow:hidden}.whatsapp-template-toggle.is-disabled{cursor:not-allowed;opacity:.66}.template-preview-section{background:var(--surface-2)}.email-preview{border:1px solid var(--border);background:var(--surface);border-radius:16px;gap:10px;padding:22px;display:grid;box-shadow:0 12px 36px #3122190f}.email-preview-brand{color:var(--brown-700);letter-spacing:.12em;font-size:9px;font-weight:900}.email-preview h3{letter-spacing:-.025em;margin:0;font-size:19px}.email-preview p{color:var(--text);white-space:pre-line;margin:0;font-size:12px;line-height:1.6}.email-preview>small{color:var(--muted);font-size:9px}.email-preview-whatsapp{background:var(--success);color:#fff;border-radius:11px;align-items:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;min-height:40px;margin-top:4px;padding:0 14px;font-size:11px;font-weight:900;display:inline-flex}.template-save-bar{z-index:3;border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:15px;justify-content:space-between;align-items:center;gap:16px;margin:3px -2px -2px;padding:13px 14px;display:flex;position:-webkit-sticky;position:sticky;bottom:-4px;box-shadow:0 14px 34px #281c1421}.template-save-bar>div:first-child{gap:3px;display:grid}.template-save-bar strong{font-size:11px}.template-save-bar span{color:var(--muted);font-size:9px}.template-save-actions{flex:none;align-items:center;gap:8px;display:flex}@media (max-width:760px){.app-modal-wide{width:min(100%,680px)}.template-channel-grid-v2{grid-template-columns:1fr}.template-section-heading,.template-variable-heading{flex-direction:column;align-items:flex-start}.template-variable-chip{flex:calc(50% - 4px);min-width:calc(50% - 4px)}.template-save-bar{flex-direction:column;align-items:stretch}.template-save-actions{width:100%}.template-save-actions button{flex:1}}@media (max-width:480px){.app-modal-wide{max-height:96dvh}.template-variable-chip{min-width:100%}.email-preview{padding:18px}}@media (prefers-reduced-motion:reduce){.modal-backdrop,.app-modal{animation:none!important}}.remember-session-card{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:13px;align-items:flex-start;gap:10px;padding:12px 13px;display:flex}.remember-session-card input{margin-top:2px}.remember-session-card>span{gap:3px;display:grid}.remember-session-card strong{font-size:11px}.remember-session-card small{color:var(--muted);font-size:9px;line-height:1.4}.channel-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.channel-choice{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:14px;align-items:flex-start;gap:9px;min-height:92px;padding:12px;transition:border-color .12s,background-color .12s,transform .12s;display:flex}.channel-choice:hover{transform:translateY(-1px)}.channel-choice.active{border-color:color-mix(in srgb,var(--brown-700) 48%,var(--border));background:var(--accent-soft)}.channel-choice input{margin-top:2px}.channel-choice>span{gap:4px;display:grid}.channel-choice strong{font-size:11px}.channel-choice small{color:var(--muted);font-size:9px;line-height:1.4}.channel-fixed-card{border:1px solid var(--border);background:var(--surface-2);border-radius:14px;gap:5px;padding:13px;display:grid}.channel-fixed-card strong{font-size:11px}.channel-fixed-card span{color:var(--muted);font-size:9px;line-height:1.45}.template-section-heading.compact{align-items:center}.template-rich-editor{border:1px solid var(--border);background:var(--surface);min-height:132px;color:var(--text);font:inherit;white-space:pre-wrap;word-break:break-word;border-radius:13px;outline:none;padding:13px 14px;font-size:12px;line-height:1.65;transition:border-color .12s,box-shadow .12s}.template-rich-editor.single-line{white-space:nowrap;min-height:48px;overflow-x:auto;overflow-y:hidden}.template-rich-editor:focus{border-color:color-mix(in srgb,var(--brown-700) 55%,var(--border));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-soft) 70%,transparent)}.template-rich-editor:empty:before{content:attr(data-placeholder);color:var(--muted);pointer-events:none}.template-token-pill{border:1px solid color-mix(in srgb,var(--brown-700) 28%,var(--border));background:var(--accent-soft);min-height:24px;color:var(--brown-900);-webkit-user-select:all;-moz-user-select:all;user-select:all;vertical-align:baseline;border-radius:999px;align-items:center;margin:0 2px;padding:1px 8px;font-size:10px;font-weight:900;line-height:1.5;display:inline-flex}.student-loading-state,.student-error-state{border:1px solid var(--border);background:var(--surface);border-radius:16px;align-items:center;gap:13px;min-height:112px;padding:16px;display:flex}.student-loading-state>div:last-child,.student-error-state>div:first-child{gap:4px;display:grid}.student-loading-state strong,.student-error-state strong{font-size:12px}.student-loading-state span,.student-error-state span{color:var(--muted);font-size:10px;line-height:1.45}.student-error-state{justify-content:space-between}.student-error-state.compact{min-height:0;margin-top:12px}.payment-modal-v2{gap:15px}.payment-step-intro{gap:4px;display:grid}.payment-step-intro h3{margin:0;font-size:17px}.payment-step-intro p{color:var(--muted);margin:0;font-size:10px}.payment-form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.money-input-shell{border:1px solid var(--border);background:var(--surface);border-radius:13px;grid-template-columns:auto 1fr;align-items:center;display:grid;overflow:hidden}.money-input-shell>span{border-right:1px solid var(--border);background:var(--surface-2);align-self:stretch;place-items:center;padding:0 13px;font-weight:900;display:grid}.money-input-shell input{background:0 0!important;border:0!important;border-radius:0!important}.payment-method-card{border:1px solid var(--border);background:var(--surface-2);border-radius:14px;gap:5px;padding:13px;display:grid}.payment-method-card>span{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:9px;font-weight:800}.payment-method-card strong{font-size:13px}.payment-method-card p{color:var(--muted);margin:0;font-size:10px;line-height:1.45}.receipt-upload-card{border:1px dashed color-mix(in srgb,var(--brown-700) 40%,var(--border));background:var(--surface-2);cursor:pointer;border-radius:14px;align-items:center;gap:12px;min-height:76px;padding:13px;display:flex;position:relative}.receipt-upload-card.has-file{background:color-mix(in srgb,var(--success-bg) 60%,var(--surface));border-style:solid}.receipt-upload-card input{opacity:0;cursor:pointer;position:absolute;top:0;bottom:0;left:0;right:0}.receipt-upload-icon{background:var(--surface);border:1px solid var(--border);border-radius:12px;flex:none;place-items:center;width:38px;height:38px;font-size:16px;font-weight:900;display:grid}.receipt-upload-copy{gap:3px;min-width:0;display:grid}.receipt-upload-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.receipt-upload-copy small{color:var(--muted);font-size:9px}.payment-modal-actions{justify-content:flex-end;gap:9px;display:flex}.payment-sent-state{border:1px solid color-mix(in srgb,var(--success) 30%,var(--border));background:var(--success-bg);border-radius:16px;align-items:flex-start;gap:13px;padding:18px;display:flex}.payment-sent-state>span{background:var(--success);color:#fff;border-radius:50%;place-items:center;width:38px;height:38px;font-weight:900;display:grid}.payment-sent-state>div{gap:5px;display:grid}.payment-sent-state strong{font-size:13px}.payment-sent-state p{color:var(--muted);margin:0;font-size:10px;line-height:1.45}@media (max-width:760px){.channel-choice-grid,.payment-form-grid{grid-template-columns:1fr}.payment-modal-actions{width:100%}.payment-modal-actions button{flex:1}}.activation-flow-v2{max-width:620px}.activation-progress{grid-template-columns:repeat(5,1fr);gap:8px;margin:2px 0 20px;display:grid}.activation-progress span{border:1px solid var(--border);background:var(--surface-2);height:30px;color:var(--muted);border-radius:999px;place-items:center;font-size:10px;font-weight:900;display:grid;position:relative}.activation-progress span.active{border-color:var(--brown-700);background:var(--accent-soft);color:var(--brown-900)}.activation-progress span.done{border-color:color-mix(in srgb,var(--success) 35%,var(--border));background:var(--success-bg);color:var(--success)}.activation-verified-line{border:1px solid color-mix(in srgb,var(--success) 28%,var(--border));background:var(--success-bg);border-radius:13px;align-items:center;gap:10px;padding:11px 12px;display:flex}.activation-verified-line>span{background:var(--success);color:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-weight:900;display:grid}.activation-verified-line>div{gap:2px;display:grid}.activation-verified-line strong{font-size:11px}.activation-verified-line small{color:var(--muted);font-size:9px}.activation-scale-section{gap:10px;display:grid}.activation-scale-heading{justify-content:space-between;align-items:end;gap:12px;display:flex}.activation-scale-heading>div{gap:3px;display:grid}.activation-scale-heading strong{font-size:12px}.activation-scale-heading span{color:var(--muted);font-size:9px}.activation-scale-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.activation-scale-option{border:1px solid var(--border);background:var(--surface-2);cursor:pointer;border-radius:14px;align-items:flex-start;gap:10px;min-height:104px;padding:13px;transition:border-color .12s,background-color .12s,transform .12s;display:flex;position:relative}.activation-scale-option:hover{transform:translateY(-1px)}.activation-scale-option.selected{border-color:color-mix(in srgb,var(--brown-700) 55%,var(--border));background:var(--accent-soft)}.activation-scale-option input{opacity:0;pointer-events:none;position:absolute}.activation-scale-radio{border:2px solid var(--border);background:var(--surface);width:18px;height:18px;box-shadow:inset 0 0 0 4px var(--surface);border-radius:50%;flex:none}.activation-scale-option.selected .activation-scale-radio{border-color:var(--brown-700);background:var(--brown-700)}.activation-scale-copy{gap:4px;min-width:0;display:grid}.activation-scale-copy strong{font-size:12px}.activation-scale-copy small{color:var(--muted);font-size:9px;line-height:1.35}.activation-summary-box{border:1px solid var(--border);background:var(--surface-2);border-radius:14px;gap:8px;padding:13px;display:grid}.activation-summary-box>div{justify-content:space-between;gap:14px;display:flex}.activation-summary-box span{color:var(--muted);font-size:9px}.activation-summary-box strong{text-align:right;font-size:10px}@media (max-width:600px){.activation-scale-grid{grid-template-columns:1fr}.activation-flow-v2{max-width:none}.activation-progress{gap:5px}}.file-picker-field{gap:8px;display:grid}.file-picker-label{font-size:13px;font-weight:800}.file-picker-native{opacity:0!important;pointer-events:none!important;width:1px!important;height:1px!important;position:absolute!important}.file-picker-shell{border:1px dashed color-mix(in srgb,var(--brown-700) 42%,var(--border));background:var(--surface-2);border-radius:15px;align-items:stretch;gap:8px;padding:8px;display:flex}.file-picker-shell.has-file{background:color-mix(in srgb,var(--success-bg) 45%,var(--surface));border-style:solid}.file-picker-main{min-width:0;color:var(--text);text-align:left;background:0 0;border:0;flex:1;align-items:center;gap:11px;padding:8px;display:flex}.file-picker-icon{background:var(--surface);border:1px solid var(--border);width:40px;height:40px;color:var(--brown-800);border-radius:12px;flex:none;place-items:center;display:grid}.file-picker-copy{gap:3px;min-width:0;display:grid}.file-picker-copy strong{font-size:12px}.file-picker-copy small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--muted);font-size:10px;overflow:hidden}.file-picker-remove{color:var(--danger);background:0 0;border:0;align-self:center;padding:10px;font-size:10px;font-weight:900}.file-picker-hint{color:var(--muted);font-size:10px;line-height:1.4}.payment-modal-polished{gap:15px}.payment-reference-card{border:1px solid color-mix(in srgb,var(--brown-700) 25%,var(--border));background:color-mix(in srgb,var(--brown-100) 45%,var(--surface));border-radius:15px;gap:10px;padding:14px;display:grid}.payment-reference-head>div{gap:5px;display:grid}.payment-reference-head strong{font-size:13px;line-height:1.35}.payment-reference-value{border:1px solid var(--border);background:var(--surface);border-radius:12px;align-items:center;gap:9px;padding:8px 9px 8px 12px;display:flex}.payment-reference-value code{min-width:0;color:var(--text);white-space:nowrap;flex:1;font:800 15px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;overflow:auto}.copy-reference-button{border:1px solid var(--border);background:var(--surface-2);min-height:36px;color:var(--brown-800);border-radius:9px;flex:none;padding:0 11px;font-size:10px;font-weight:900}.payment-reference-card>small{color:var(--muted);font-size:9px;line-height:1.4}.permissions-box-polished{gap:9px;display:grid}.permissions-heading{gap:9px;margin-bottom:3px;display:grid}.permissions-heading>div:first-child{gap:4px;display:grid}.permissions-heading small{color:var(--muted);font-size:10px;line-height:1.45}.permission-presets{flex-wrap:wrap;gap:6px;display:flex}.permission-presets button{border:1px solid var(--border);background:var(--surface);min-height:32px;color:var(--text);border-radius:9px;padding:0 10px;font-size:9px;font-weight:850}.permission-presets button:hover{border-color:color-mix(in srgb,var(--brown-700) 45%,var(--border));color:var(--brown-800)}.admin-portal-switch,.student-refresh-button{white-space:nowrap}@media (max-width:600px){.file-picker-shell{flex-direction:column}.file-picker-remove{align-self:flex-end;padding:4px 8px}.payment-reference-value{flex-direction:column;align-items:stretch}.copy-reference-button{width:100%;min-height:40px}.admin-portal-switch span,.student-refresh-button span{display:none}.admin-portal-switch,.student-refresh-button{justify-content:center;width:40px;padding:0}.auth-login-shell{min-height:100vh}}@supports (height:100dvh){@media (max-width:600px){.auth-login-shell{min-height:100dvh}}}.busy-backdrop{-webkit-backdrop-filter:blur(3px)}.settings-save-bar{-webkit-backdrop-filter:blur(12px)}@supports not (color:color-mix(in srgb,#000 50%,#fff)){.success-box{border-color:var(--border)}.skeleton-grid div{background:linear-gradient(90deg,var(--surface-2),var(--border),var(--surface-2));background-size:200% 100%}.secondary-button:hover:not(:disabled),.branding-preview,.toggle-card,.maintenance-active-banner{border-color:var(--border)}.settings-save-bar{background:var(--surface)}.toggle-card.important{background:var(--warning-bg)}}.push-card{gap:14px;margin-bottom:16px;display:grid}.push-card-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.push-card-heading h3{margin:4px 0 0}.push-card-actions{flex-wrap:wrap}.push-onboarding-banner{background:#7f7f7f14;border:1px solid #7f7f7f38;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin:0 0 16px;padding:14px 16px;display:flex}.push-onboarding-banner>div:first-child{gap:3px;min-width:220px;display:grid}.push-onboarding-banner>div:first-child span{opacity:.76;font-size:.88rem}.plan-pending-state{text-align:left;gap:14px;max-width:720px;display:grid}.plan-pending-state .pending-plan-icon{background:#7f7f7f14;border:1px solid #7f7f7f38;border-radius:14px;place-items:center;width:46px;height:46px;font-size:1.25rem;display:grid}.plan-pending-state h2,.plan-pending-state p{margin:0}.notification-item-action{align-items:flex-start;gap:12px}.notification-kind-icon{background:#7f7f7f14;border:1px solid #7f7f7f38;border-radius:10px;place-items:center;width:34px;min-width:34px;height:34px;font-size:.8rem;font-weight:800;display:grid}.notification-meta{justify-content:space-between;align-items:center;gap:12px;margin-top:5px;display:flex}.notification-action-label{font-weight:700}.notification-popover-head>div{gap:2px;display:grid}.notification-popover-head>div>small{opacity:.68}@media (max-width:640px){.push-onboarding-banner{align-items:stretch}.push-onboarding-banner .inline-actions,.push-onboarding-banner .inline-actions button{width:100%}.notification-meta{flex-direction:column;align-items:flex-start;gap:3px}}.dni-page-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.bulk-dni-modal{gap:18px}.bulk-dni-intro{background:#7f7f7f0f;border:1px solid #7f7f7f2e;border-radius:16px;align-items:center;gap:12px;padding:14px 16px;display:flex}.bulk-dni-intro>div:last-child{gap:3px;display:grid}.bulk-dni-intro span{opacity:.75;font-size:.9rem}.bulk-dni-icon{background:#7f7f7f1a;border-radius:13px;place-items:center;width:42px;min-width:42px;height:42px;font-size:1.1rem;display:grid}.bulk-dni-textarea{resize:vertical;letter-spacing:.04em;min-height:250px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;line-height:1.65}.bulk-dni-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.bulk-dni-stat{background:#7f7f7f0d;border:1px solid #7f7f7f2e;border-radius:14px;flex-direction:column;gap:5px;padding:14px;display:flex}.bulk-dni-stat span{opacity:.72;font-size:.78rem}.bulk-dni-stat strong{font-size:1.45rem}.bulk-dni-stat.ready{border-color:#2b7a4c59}.bulk-dni-stat.warning{border-color:#b76b006b}.bulk-dni-invalid{gap:8px;display:grid}.bulk-dni-invalid>div{flex-wrap:wrap;gap:7px;display:flex}.bulk-dni-invalid code{background:#b4463214;border:1px solid #b446322e;border-radius:8px;padding:5px 8px}.bulk-dni-note{margin:0}.bulk-dni-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.push-onboarding-banner{display:none!important}.push-onboarding-toast{z-index:90;color:#2c211d;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffffff7;border:1px solid #7f7f7f38;border-radius:20px;align-items:flex-start;gap:13px;width:min(390px,100vw - 32px);padding:17px 18px;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 18px 55px #00000038}html[data-theme=dark] .push-onboarding-toast{color:#f4eee9;background:#1b1816f7;border-color:#ffffff24}.push-onboarding-toast.has-error{border-color:#b55c2e59}.push-onboarding-icon{background:#784b351a;border-radius:14px;place-items:center;width:44px;min-width:44px;height:44px;font-size:1.15rem;font-weight:800;display:grid}.push-onboarding-content{gap:5px;padding-right:20px;display:grid}.push-onboarding-content>strong{font-size:1rem}.push-onboarding-content p{opacity:.76;margin:0;font-size:.88rem;line-height:1.45}.push-onboarding-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:7px;display:flex}.push-onboarding-close{width:30px;height:30px;color:inherit;opacity:.58;cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;font-size:1.25rem;display:grid;position:absolute;top:10px;right:10px}.push-onboarding-close:hover{opacity:1;background:#7f7f7f1a}.push-card-polished{overflow:hidden}.push-card-title-row{align-items:center;gap:12px;display:flex}.push-card-main-icon{background:#7f7f7f12;border:1px solid #7f7f7f2e;border-radius:14px;place-items:center;width:42px;min-width:42px;height:42px;font-weight:800;display:grid}.push-card-main-icon.active{background:#2d874f1a;border-color:#2d874f47}.push-card-description{margin:0;line-height:1.55}.push-permission-help,.push-friendly-error{border-radius:14px;gap:4px;padding:13px 14px;display:grid}.push-permission-help{background:#b8771c17;border:1px solid #b8771c33}.push-friendly-error{background:#af463212;border:1px solid #af46322e}.push-permission-help span,.push-friendly-error span{opacity:.78;font-size:.88rem;line-height:1.45}@media (max-width:720px){.bulk-dni-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.bulk-dni-actions>button{flex:150px}.push-onboarding-toast{border-radius:18px;width:calc(100vw - 24px);bottom:86px;right:12px}}.notification-center-v3{position:relative}.notification-button.is-open{background:#7f7f7f1f}.notification-bell-glyph{font-weight:800;line-height:1}.notification-popover-v3{z-index:120;background:var(--panel,#fff);width:min(430px,100vw - 28px);max-height:min(620px,100vh - 110px);color:var(--text,#2c211d);border:1px solid #7f7f7f33;border-radius:20px;flex-direction:column;display:flex;position:absolute;top:calc(100% + 12px);right:0;overflow:hidden;box-shadow:0 24px 70px #0000003d}.notification-popover-head-v3{border-bottom:1px solid #7f7f7f29;justify-content:space-between;align-items:flex-start;gap:14px;padding:18px 18px 15px;display:flex}.notification-popover-head-v3 h3{margin:3px 0 2px;font-size:1.18rem;line-height:1.2}.notification-popover-head-v3 p{opacity:.66;margin:0;font-size:.82rem}.notification-read-all{color:inherit;opacity:.72;font:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:7px 0 7px 10px;font-size:.78rem;font-weight:700}.notification-read-all:hover{opacity:1}.notification-list-v3{overscroll-behavior:contain;padding:8px;overflow:auto}.notification-item-v3{width:100%;min-width:0;color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:15px;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:12px;padding:13px 12px;display:grid}.notification-item-v3+.notification-item-v3{margin-top:3px}.notification-item-v3:hover{background:#7f7f7f13;border-color:#7f7f7f1a}.notification-item-v3.is-unread{background:#b16d4914}.notification-kind-icon{letter-spacing:-.02em;background:#7f7f7f12;border:1px solid #7f7f7f29;border-radius:13px;place-items:center;width:40px;height:40px;font-size:.8rem;font-weight:900;line-height:1;display:grid}.notification-kind-icon.tone-money{background:#a467431c;border-color:#a4674333}.notification-kind-icon.tone-success{background:#2a89521a;border-color:#2a895233}.notification-kind-icon.tone-warning{background:#ba6f241c;border-color:#ba6f2438}.notification-kind-icon.tone-info{background:#516f9917;border-color:#516f992e}.notification-copy-v3{gap:5px;min-width:0;display:grid}.notification-title-line{align-items:center;gap:8px;min-width:0;display:flex}.notification-title-line strong{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.92rem;line-height:1.25;overflow:hidden}.notification-new-pill{text-transform:uppercase;letter-spacing:.04em;background:#ae674321;border-radius:999px;flex:none;padding:3px 6px;font-size:.62rem;font-weight:800}.notification-body-v3{-webkit-line-clamp:2;opacity:.76;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:.82rem;line-height:1.42;display:-webkit-box;overflow:hidden}.notification-meta-v3{justify-content:space-between;align-items:center;gap:12px;min-width:0;margin-top:2px;font-size:.7rem;line-height:1.2;display:flex}.notification-meta-v3 time{min-width:0;color:inherit;opacity:.54}.notification-action-v3{opacity:.76;flex:none;align-items:center;gap:4px;font-weight:800;display:inline-flex}.notification-item-v3:hover .notification-action-v3{opacity:1}.notification-empty-v3{text-align:center;align-content:center;place-items:center;gap:5px;min-height:180px;padding:28px 20px;display:grid}.notification-empty-v3>span:last-child{opacity:.64;max-width:270px;font-size:.82rem;line-height:1.45}.notification-empty-icon{background:#2d874f1a;border-radius:14px;place-items:center;width:42px;height:42px;margin-bottom:5px;font-weight:900;display:grid}.notification-error-v3{background:#af46320f;border-top:1px solid #af463226;justify-content:space-between;align-items:center;gap:10px;padding:10px 14px 12px;font-size:.76rem;display:flex}html[data-theme=dark] .notification-popover-v3{color:#f5eee9;background:#171513;border-color:#ffffff1f}@media (max-width:720px){.notification-popover-v3{border-radius:18px;width:auto;max-height:calc(100vh - 96px);position:fixed;top:76px;left:10px;right:10px}.notification-popover-head-v3{padding:16px}.notification-item-v3{grid-template-columns:38px minmax(0,1fr);gap:10px;padding:12px 10px}.notification-kind-icon{border-radius:12px;width:36px;height:36px}.notification-meta-v3{align-items:flex-end}.notification-action-v3{text-align:right;max-width:44%}}.dni-security-note{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.dni-locked-action{opacity:.66;white-space:nowrap;align-items:center;gap:5px;font-size:.78rem;font-weight:700;display:inline-flex}.activated-dni-lock{background:#3a8b5314;border:1px solid #3a8b533d;border-radius:16px;align-items:flex-start;gap:13px;padding:16px;display:flex}.activated-dni-lock>span{background:#3a8b531f;border-radius:12px;place-items:center;width:38px;min-width:38px;height:38px;display:grid}.activated-dni-lock p{opacity:.74;margin:4px 0 0;font-size:.86rem;line-height:1.45}.student-test-zone{background:#ab4a340a;border:1px dashed #ab4a344d;border-radius:16px;justify-content:space-between;align-items:center;gap:18px;margin-top:6px;padding:16px;display:flex}.student-test-zone>div{gap:4px;min-width:0;display:grid}.student-test-zone p{opacity:.68;max-width:560px;margin:0;font-size:.82rem;line-height:1.45}.student-test-cleanup{background:#b13e2a0f;border:1px solid #b13e2a4d;border-radius:18px;gap:16px;padding:17px;display:grid}.student-test-cleanup-head{align-items:flex-start;gap:12px;display:flex}.student-test-cleanup-head>div{gap:4px;display:grid}.student-test-cleanup-head p{opacity:.76;margin:0;font-size:.85rem;line-height:1.5}.danger-symbol{background:#b13e2a1f;border:1px solid #b13e2a33;border-radius:13px;place-items:center;width:40px;min-width:40px;height:40px;font-weight:900;display:grid}.student-cleanup-summary{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.student-cleanup-summary>div{background:#7f7f7f0d;border:1px solid #7f7f7f26;border-radius:12px;gap:3px;padding:11px;display:grid}.student-cleanup-summary span{opacity:.62;font-size:.7rem}.student-cleanup-summary strong{font-size:1.15rem}.cleanup-confirm-check{background:#b13e2a0f;border-radius:12px;padding:11px 12px}.student-test-cleanup-actions{justify-content:flex-end;gap:10px;display:flex}.test-delete-button,.app-confirm-danger{color:#fff!important;background:#a93f2d!important;border-color:#a93f2d!important}.app-confirm-layer{z-index:10000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#0c0a0994;place-items:center;padding:20px;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.app-confirm-dialog{background:var(--panel,#fff);width:min(440px,100%);color:var(--text,#2c211d);border:1px solid #7f7f7f38;border-radius:20px;grid-template-columns:44px minmax(0,1fr);gap:14px;padding:20px;display:grid;box-shadow:0 24px 80px #00000052}html[data-theme=dark] .app-confirm-dialog{color:#f5eee9;background:#1c1917;border-color:#ffffff21}.app-confirm-icon{background:#4880571a;border-radius:13px;place-items:center;width:42px;height:42px;font-weight:900;display:grid}.app-confirm-dialog.danger .app-confirm-icon{color:#a93f2d;background:#a93f2d1c}.app-confirm-copy{min-width:0}.app-confirm-copy h3{margin:2px 0 7px;font-size:1.04rem}.app-confirm-copy p{opacity:.74;margin:0;font-size:.87rem;line-height:1.5}.app-confirm-actions{grid-column:1/-1;justify-content:flex-end;gap:9px;margin-top:4px;display:flex}@media (max-width:720px){.student-test-zone{flex-direction:column;align-items:stretch}.student-cleanup-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.student-test-cleanup-actions{flex-direction:column-reverse}.student-test-cleanup-actions button{width:100%}.app-confirm-dialog{border-radius:18px;grid-template-columns:38px minmax(0,1fr);padding:17px}.app-confirm-icon{width:36px;height:36px}.app-confirm-actions{flex-direction:column-reverse}.app-confirm-actions button{width:100%}}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;width:100%;min-width:0}body,#root{width:100%;min-width:0;overflow-x:hidden}img,svg,video,canvas,input,select,textarea{max-width:100%}.table-card{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.app-modal,.install-onboarding{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;max-width:calc(100vw - 20px);max-height:min(90vh,760px)}.install-onboarding{max-height:min(92vh,780px)}.notification-list-v3,.side-nav{-webkit-overflow-scrolling:touch}.push-device-label{flex-wrap:wrap;align-items:center;gap:7px;margin-top:-4px;display:flex}.push-device-label span{border:1px solid var(--border);background:var(--surface-2);min-height:25px;color:var(--muted);border-radius:999px;align-items:center;padding:0 8px;font-size:.68rem;font-weight:700;display:inline-flex}.install-native-ready{gap:3px;display:grid}.install-native-ready strong{color:var(--text);font-size:.78rem}.install-native-ready span{font-size:.74rem;line-height:1.45}.auth-page{padding:24px 18px}.student-header{padding:18px 18px 14px}.bottom-nav{padding:8px 10px}.install-onboarding-backdrop{padding:12px}.auth-theme-toggle{top:16px;right:16px}@supports (padding-top:env(safe-area-inset-top)){.auth-page{padding:max(24px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(18px,env(safe-area-inset-left))}.student-header{padding:max(18px,env(safe-area-inset-top)) max(18px,env(safe-area-inset-right)) 14px max(18px,env(safe-area-inset-left))}.bottom-nav{padding:8px max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.install-onboarding-backdrop{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.auth-theme-toggle{top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right))}@media (max-width:760px){.topbar{padding-top:max(10px,env(safe-area-inset-top));padding-right:max(14px,env(safe-area-inset-right));padding-left:max(14px,env(safe-area-inset-left))}.sidebar{padding-bottom:max(14px,env(safe-area-inset-bottom));padding-left:max(12px,env(safe-area-inset-left))}}}body,.auth-page,.splash-screen,.fatal-screen,.maintenance-screen,.app-shell,.student-shell{min-height:100vh}@supports (height:100svh){body,.auth-page,.splash-screen,.fatal-screen,.maintenance-screen,.app-shell,.student-shell{min-height:100svh}}@supports (height:100dvh){body,.auth-page,.splash-screen,.fatal-screen,.maintenance-screen,.app-shell,.student-shell{min-height:100dvh}.app-modal{max-height:min(90dvh,760px)}.install-onboarding{max-height:min(92dvh,780px)}.notification-popover-v3{max-height:min(620px,100dvh - 110px)}}@media (hover:none),(pointer:coarse){.icon-button,.theme-toggle,.compact,.menu-button{min-width:44px;min-height:44px}.side-nav button{min-height:48px}.bottom-nav button{min-height:56px}}@media (max-width:760px){.page-content{padding-left:max(12px,3.5vw);padding-right:max(12px,3.5vw)}.card,.student-card{max-width:100%}.app-modal{width:min(100%,520px)}.notification-popover-v3{max-width:calc(100vw - 20px)}.push-onboarding-toast{max-width:calc(100vw - 24px)}.install-steps{padding-left:0;padding-right:0}.topbar-title{overflow:hidden}.topbar-title h1{text-overflow:ellipsis;max-width:100%;overflow:hidden}}@media (max-width:380px){.page-content,.student-main{padding-left:10px;padding-right:10px}.modal-backdrop{padding:6px}.modal-body,.modal-header{padding:15px}.student-header{gap:8px;padding-left:10px;padding-right:10px}.student-brand-title,.student-brand-title>div:last-child{min-width:0}.student-header h1{text-overflow:ellipsis;white-space:nowrap;max-width:44vw;overflow:hidden}.push-onboarding-toast{width:calc(100vw - 16px);right:8px}}@media (max-height:520px) and (orientation:landscape){.app-modal,.install-onboarding{max-height:96vh}@supports (height:100dvh){.app-modal,.install-onboarding{max-height:96dvh}}.install-onboarding-body{gap:11px;padding:15px 18px}.modern-steps{gap:7px}.modern-steps li{gap:8px}.modern-steps li>span{width:24px;height:24px}}:root[data-theme=dark]{--brown-950:#f8e9dd;--brown-900:#eccfbd;--brown-800:#dcae8e;--brown-700:#c88d68;--brown-100:#3a2d26;--cream:#1b1714;--surface:#241f1b;--surface-2:#2d2722;--border:#493d35;--text:#f5eee9;--muted:#b9aaa0;--shadow:0 22px 70px #0c080657;--topbar-bg:#1f1915f0;--nav-bg:#241f1bf5;--accent-soft:#392d26;--row-hover:#302823;--overlay:#0c0806ad;--focus:#dcae8e40}:root[data-theme=dark] body,:root[data-theme=dark] .student-shell,:root[data-theme=dark] .app-shell{background:radial-gradient(circle at 20% 0,#7a4c3317,transparent 32rem), var(--cream)}.theme-preference-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.theme-preference-option{border:1px solid var(--border);background:var(--surface-2);min-width:0;color:var(--text);text-align:left;cursor:pointer;border-radius:14px;grid-template-columns:32px minmax(0,1fr);align-items:start;gap:9px;padding:12px;display:grid}.theme-preference-option.active{border-color:var(--brown-700);background:color-mix(in srgb,var(--brown-100) 62%,var(--surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--brown-700) 14%,transparent)}.theme-preference-icon{background:var(--surface);border-radius:10px;place-items:center;width:32px;height:32px;font-size:16px;display:grid}.theme-preference-option>span:last-child{gap:3px;min-width:0;display:grid}.theme-preference-option strong{font-size:12px}.theme-preference-option small{color:var(--muted);font-size:9.5px;line-height:1.4}.profile-settings-card{gap:14px;display:grid}.profile-settings-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.profile-settings-heading>div{gap:3px;display:grid}.profile-settings-heading h3{margin:0;font-size:16px}.profile-account-actions{gap:9px;display:grid}.install-reminder-chip{z-index:55;border:1px solid color-mix(in srgb,var(--brown-700) 34%,var(--border));background:color-mix(in srgb,var(--surface) 94%,transparent);min-height:42px;color:var(--brown-800);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:0 13px;font-size:11px;font-weight:800;display:inline-flex;position:fixed;bottom:18px;right:18px;box-shadow:0 14px 34px #2217112e}.student-shell .install-reminder-chip{bottom:88px}.install-reminder-chip:hover{border-color:var(--brown-700);transform:translateY(-1px)}.admin-access-box{gap:12px;display:grid}.admin-role-toggle{margin:0}.admin-notification-preferences{border:1px solid var(--border);background:var(--surface);border-radius:13px;gap:8px;padding:13px;display:grid}.admin-notification-preferences>div:first-child{gap:3px;margin-bottom:2px;display:grid}.admin-notification-preferences>div:first-child strong{font-size:12px}.admin-notification-preferences>div:first-child small{color:var(--muted);font-size:10px;line-height:1.45}.app-modal{max-height:min(90vh,760px)}@supports (height:100dvh){.app-modal{max-height:min(90dvh,760px)}}:root.app-keyboard-open .modal-backdrop{padding-top:max(6px,var(--app-visual-offset-top,0px));-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);align-items:flex-start}:root.app-keyboard-open .app-modal{max-height:calc(var(--app-visual-height,100vh) - 12px);margin:0 auto}:root.app-keyboard-open .modal-body{scroll-padding-top:90px;scroll-padding-bottom:110px}:root.app-keyboard-open .field:focus-within,:root.app-keyboard-open .template-rich-editor:focus{z-index:2;position:relative}.scale-schedule-modal-v3{gap:14px;display:grid}.scale-editor-section{border:1px solid var(--border);background:var(--surface-2);border-radius:16px;gap:12px;padding:15px;display:grid}.scale-editor-section-title{grid-template-columns:30px minmax(0,1fr);align-items:start;gap:10px;display:grid}.scale-editor-section-title>span{background:var(--brown-800);width:30px;height:30px;color:var(--surface);border-radius:10px;place-items:center;font-size:11px;font-weight:900;display:grid}.scale-editor-section-title>div{gap:3px;display:grid}.scale-editor-section-title strong{font-size:13px}.scale-editor-section-title small{color:var(--muted);font-size:10px;line-height:1.4}.schedule-mode-selector-v3{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;display:grid}.schedule-mode-selector-v3 button{border:1px solid var(--border);background:var(--surface);min-height:74px;color:var(--text);text-align:left;border-radius:14px;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:9px;padding:13px;display:grid}.schedule-mode-selector-v3 button>span:last-child{gap:4px;display:grid}.schedule-mode-selector-v3 small{color:var(--muted);font-size:10px;line-height:1.4}.schedule-choice-radio{border:2px solid var(--muted);border-radius:999px;width:16px;height:16px;margin-top:1px}.schedule-mode-selector-v3 button.active{border-color:var(--brown-700);background:color-mix(in srgb,var(--brown-100) 46%,var(--surface))}.schedule-mode-selector-v3 button.active .schedule-choice-radio{border:5px solid var(--brown-700);background:var(--surface)}.scale-summary-card{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.scale-summary-card>div{border:1px solid var(--border);background:var(--surface-2);border-radius:13px;gap:4px;padding:11px 12px;display:grid}.scale-summary-card span{color:var(--muted);font-size:9px}.scale-summary-card strong{overflow-wrap:anywhere;font-size:12px}.compact-scale-active{margin:0}.scale-modal-savebar{z-index:4;background:linear-gradient(to bottom,transparent,var(--surface) 24%);justify-content:flex-end;gap:9px;padding:12px 0 2px;display:flex;position:-webkit-sticky;position:sticky;bottom:-18px}.branding-icon-note{border:1px solid var(--border);background:var(--surface-2);color:var(--muted);border-radius:11px;padding:10px 11px;font-size:10px;line-height:1.45}@media (max-width:760px){.theme-preference-grid{grid-template-columns:1fr}.student-header-actions{gap:7px}.student-header-actions .student-refresh-button span{display:none}.student-header-actions .student-refresh-button{width:44px;min-width:44px;padding:0}.scale-summary-card{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-mode-selector-v3{grid-template-columns:1fr}.scale-modal-savebar{flex-direction:column-reverse;bottom:-15px}.scale-modal-savebar button{width:100%}}@media (max-width:390px){.install-reminder-chip{padding:0 11px;right:10px}.scale-editor-section{padding:12px}}
