:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--tt-bg:#141210;--tt-surface:#1d1b18;--tt-surface-raised:#24211d;--tt-surface-overlay:#2c2925;--tt-surface-muted:#1a1815;--tt-text:#f5f3ee;--tt-muted:#8e887d;--tt-muted-strong:#b9b1a5;--tt-line:#2c2925;--tt-line-strong:#f5f3ee29;--tt-cover-bg:#1f1c19;--tt-pad:#191714;--tt-accent:#e07a55;--tt-accent-strong:#f19a76;--tt-accent-dim:#e07a5524;--tt-logo-ink:#f0ece2;--tt-logo-tile:#15140f;--tt-success:#8faf7d;--tt-warning:#d9a441;--tt-error:#d86d66;--tt-info:#7ba6c7;--tt-gold:#d7a748;--font-body:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--tt-bg:#f7f6f3;--tt-surface:#fff;--tt-surface-raised:#f0eee8;--tt-surface-overlay:#e6e3dc;--tt-surface-muted:#efece5;--tt-text:#14110d;--tt-muted:#7c7770;--tt-muted-strong:#5c554d;--tt-line:#ebe8e1;--tt-line-strong:#14110d24;--tt-cover-bg:#efece5;--tt-pad:#e6e3dc;--tt-accent:#c75d3a;--tt-accent-strong:#a8472d;--tt-accent-dim:#c75d3a24;--tt-logo-ink:#1a1a18;--tt-logo-tile:#f0ece2;--tt-success:#4f7a41;--tt-warning:#8f6412;--tt-error:#b23b34;--tt-info:#3d6d90;--tt-gold:#8f6c12}:root{--surface-base:var(--tt-bg);--surface-card:var(--tt-surface);--surface-nav:var(--tt-surface-muted);--surface-raised:var(--tt-surface-raised);--surface-overlay:var(--tt-surface-overlay);--text-primary:var(--tt-text);--text-secondary:var(--tt-muted-strong);--text-tertiary:var(--tt-muted);--border-default:var(--tt-line);--border-strong:var(--tt-line-strong);--brand-primary:var(--tt-accent);--brand-accent:var(--tt-accent-strong);--brand-primary-dim:var(--tt-accent-dim);--button-on-accent:var(--tt-bg);--status-success:var(--tt-success);--status-warning:var(--tt-warning);--status-error:var(--tt-error);--status-info:var(--tt-info);--status-gold:var(--tt-gold);--font-size-2xs:11px;--font-size-xs:12px;--font-size-sm:13px;--font-size-md:14px;--font-size-lg:16px;--font-size-xl:19px;--font-size-2xl:22px;--font-size-3xl:28px;--font-size-display:30px;--line-height-tight:1.3;--line-height-normal:1.5;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-pill:999px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:28px;--sidebar-width:232px;--sidebar-pad:20px 14px;--content-pad:28px;--content-pad-compact:18px;--bg-base:var(--surface-base);--bg-surface:var(--surface-card);--bg-elevated:var(--surface-raised);--bg-highlight:var(--surface-overlay);--accent:var(--brand-primary);--accent-dim:var(--brand-primary-dim);--text-muted:var(--text-tertiary);--border:var(--border-default);--success:var(--status-success);--warning:var(--status-warning);--error:var(--status-error);--danger:var(--status-error);--info:var(--status-info);--gold:var(--status-gold);--mint:var(--status-success);--color-mint:var(--status-success)}.app-shell,.shell{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);height:100svh;display:grid}.main{min-height:0;padding:var(--content-pad);overflow-y:auto}.sidebar{background:var(--surface-nav);border-right:1px solid var(--border-default);height:100%;min-height:0;padding:var(--sidebar-pad);flex-direction:column;display:flex;overflow:hidden}.brand{border-bottom:1px solid var(--border-default);align-items:center;gap:10px;padding:0 8px 18px;display:flex}.brand h1{color:var(--text-primary);font-family:var(--font-display);font-size:var(--font-size-xl);font-weight:var(--weight-semibold);letter-spacing:-.01em;line-height:var(--line-height-tight);margin:0}.brand p{color:var(--text-tertiary);font-size:var(--font-size-xs);line-height:var(--line-height-normal);margin:3px 0 0}.nav,.side-nav{align-content:start;gap:var(--space-1);min-height:0;padding:var(--space-4) 0;flex:1;display:grid;overflow-y:auto}.nav-group{gap:var(--space-1);display:grid}.nav-group+.nav-group{margin-top:var(--space-3)}.nav-group-label{color:var(--brand-primary);font-family:var(--font-mono);font-size:var(--font-size-2xs);font-weight:var(--weight-semibold);letter-spacing:.09em;text-transform:uppercase;padding:10px 12px 4px}.nav button,.nav a,.side-nav button,.side-nav a{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);font-size:var(--font-size-md);font-weight:var(--weight-regular);text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:10px;width:100%;padding:9px 12px;text-decoration:none;display:flex}.nav button:hover,.nav a:hover,.side-nav button:hover,.side-nav a:hover{background:var(--surface-raised);color:var(--text-primary)}.nav button.active,.nav a.active,.side-nav button.active,.side-nav a.active{background:var(--brand-primary-dim);border-color:var(--brand-primary);color:var(--brand-primary);font-weight:var(--weight-medium)}.nav-icon{color:inherit;font-family:var(--font-mono);font-size:var(--font-size-2xs);font-weight:var(--weight-semibold);letter-spacing:.05em;opacity:.85;flex-shrink:0;width:22px}.sidebar-footer{border-top:1px solid var(--border-default);padding-top:var(--space-3);margin-top:auto}.sidebar-signout{border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);font-size:var(--font-size-md);font-weight:var(--weight-medium);text-align:left;background:0 0;align-items:center;gap:10px;width:100%;padding:9px 12px;display:flex}.sidebar-signout:hover{background:color-mix(in srgb, var(--status-error) 10%, transparent);border-color:var(--status-error);color:var(--status-error)}.powered-by{color:var(--text-tertiary);font-size:var(--font-size-2xs);letter-spacing:.05em;justify-content:center;align-items:center;gap:7px;margin:0;display:flex}.powered-by:before{background:var(--brand-primary);border-radius:var(--radius-pill);content:"";opacity:.75;flex-shrink:0;width:5px;height:5px}.powered-by strong{color:var(--text-secondary);font-weight:var(--weight-semibold)}.sidebar-footer .powered-by{margin-top:var(--space-3);justify-content:flex-start;padding-left:13px}.page-head{align-items:flex-end;gap:var(--space-4);margin-bottom:var(--space-5);justify-content:space-between;display:flex}.page-head h1,.page-head h2{color:var(--text-primary);font-family:var(--font-display);font-size:var(--font-size-3xl);font-weight:var(--weight-semibold);letter-spacing:-.01em;line-height:var(--line-height-tight);margin:0}.page-head p{color:var(--text-tertiary);font-size:var(--font-size-sm);line-height:var(--line-height-normal);margin:5px 0 0}.card,.panel{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-4)}.card h3,.panel h3{font-family:var(--font-display);font-size:var(--font-size-lg);font-weight:var(--weight-semibold);margin:0 0 var(--space-2)}.primary-button,button.primary{background:var(--brand-primary);border:1px solid var(--brand-primary);border-radius:var(--radius-sm);color:var(--button-on-accent);cursor:pointer;font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--weight-semibold);padding:9px 14px}.secondary-button{border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--weight-medium);background:0 0;padding:9px 14px}.ghost-button,button.ghost{border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--weight-medium);background:0 0;padding:8px 12px}.danger-button,button.danger{border:1px solid var(--status-error);border-radius:var(--radius-sm);color:var(--status-error);cursor:pointer;font-family:var(--font-body);font-size:var(--font-size-sm);font-weight:var(--weight-medium);background:0 0;padding:8px 12px}.text-button{color:var(--brand-primary);cursor:pointer;font-family:var(--font-body);font-size:var(--font-size-sm);background:0 0;border:0;width:fit-content;padding:0}.primary-button:hover,button.primary:hover,.secondary-button:hover,.ghost-button:hover,button.ghost:hover{filter:brightness(1.08)}.primary-button:disabled,.secondary-button:disabled,.ghost-button:disabled,.danger-button:disabled,button:disabled{cursor:not-allowed;opacity:.5}.theme-choice,.theme-options button{background:var(--surface-base);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--weight-semibold);text-transform:capitalize;padding:8px 13px}.theme-choice[data-active=true],.theme-options button.active{background:var(--brand-primary-dim);border-color:var(--brand-primary);color:var(--brand-primary)}.muted{color:var(--text-tertiary)}.error{color:var(--status-error)}.notice{background:color-mix(in srgb, var(--brand-primary) 10%, transparent);border:1px solid color-mix(in srgb, var(--brand-primary) 30%, transparent);border-radius:var(--radius-md);line-height:var(--line-height-normal);margin:0;padding:11px 12px}.login-wrap,.login{align-items:center;gap:var(--space-4);min-height:100svh;padding:var(--space-5);flex-direction:column;justify-content:center;display:flex}.login-card{gap:var(--space-3);width:min(380px,100%);display:grid}.login-card h1,.login-card h2{color:var(--text-primary);font-family:var(--font-display);font-size:var(--font-size-3xl);font-weight:var(--weight-semibold);letter-spacing:-.01em;line-height:var(--line-height-tight);margin:0}@media (width<=860px){.app-shell,.shell{grid-template-columns:1fr;height:auto;min-height:100svh}.main{overflow-y:visible}.sidebar{border-bottom:1px solid var(--border-default);border-right:0;height:auto;overflow:visible}.nav,.side-nav{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.nav button,.nav a,.side-nav button,.side-nav a{justify-content:center}.main{padding:var(--content-pad-compact)}}*{box-sizing:border-box}body{background:var(--surface-base);min-width:320px;min-height:100svh;color:var(--text-primary);font-family:var(--font-body);font-size:var(--font-size-md);line-height:var(--line-height-normal);margin:0}button,input,select,textarea{font:inherit}.grid{gap:14px;display:grid}.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-label{color:var(--text-tertiary);font-size:var(--font-size-xs)}.metric-value{font-family:var(--font-display);font-size:var(--font-size-display);font-weight:var(--weight-semibold);margin-top:7px}.table{border-collapse:collapse;width:100%;overflow:hidden}.table th,.table td{border-bottom:1px solid var(--border-default);text-align:left;padding:12px 10px}.table th{color:var(--text-tertiary);font-size:var(--font-size-xs);font-weight:var(--weight-semibold)}.bar{background:var(--surface-raised);border-radius:var(--radius-pill);height:8px;overflow:hidden}.bar span{background:var(--brand-primary);height:100%;display:block}.field{gap:5px;margin-top:14px;display:grid}.field span{color:var(--text-secondary);font-size:var(--font-size-xs)}.field input,.field select,.field textarea,select,textarea{background:var(--surface-base);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);padding:10px 11px}.status-chip{background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-pill);color:var(--text-secondary);padding:7px 11px}.status-chip.success{border-color:var(--status-success);color:var(--status-success)}.communications-tabs{gap:8px;margin-bottom:16px;display:flex;overflow-x:auto}.communications-tabs button{border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;text-transform:capitalize;background:0 0;padding:8px 12px}.communications-tabs button.active{background:var(--brand-primary-dim);border-color:var(--brand-primary);color:var(--brand-primary)}.communications-overview,.safeguarding-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-top:14px;display:grid}.communications-layout{grid-template-columns:minmax(260px,.65fr) minmax(480px,1.35fr);gap:14px;min-height:650px;display:grid}.conversation-list{overflow:auto}.conversation-list h3,.card h3{margin-top:0}.conversation-list button{border-radius:var(--radius-sm);color:var(--text-primary);text-align:left;background:0 0;border:1px solid #0000;gap:5px;width:100%;padding:11px;display:grid}.conversation-list button.active{background:var(--brand-primary-dim);border-color:var(--brand-primary)}.conversation-list small{color:var(--text-tertiary)}.coordinator-chat{grid-template-rows:auto auto 1fr auto;padding:0;display:grid;overflow:hidden}.coordinator-chat>header{justify-content:space-between;padding:15px;display:flex}.coordinator-chat header h3,.coordinator-chat header p{margin:0}.coordinator-chat header p{color:var(--text-tertiary);font-size:var(--font-size-xs);margin-top:4px}.monitoring-banner{background:color-mix(in srgb, var(--status-warning) 10%, var(--surface-card));border-block:1px solid var(--status-warning);padding:11px 15px}.monitoring-banner p{font-size:var(--font-size-2xs);margin:4px 0;line-height:1.5}.message-list{padding:14px;overflow:auto}.message-list article{background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-sm);margin-bottom:9px;padding:10px}.message-list article small{color:var(--text-tertiary)}.message-list article p{white-space:pre-wrap;margin:5px 0}.chat-compose{border-top:1px solid var(--border-default);grid-template-columns:1fr auto;gap:9px;padding:12px;display:grid}.chat-compose textarea{resize:vertical;min-height:70px}.announcement-form,.policy-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;display:grid}.announcement-form h3,.announcement-form .wide,.policy-form h3,.policy-form>p{grid-column:1/-1}.announcement-form label,.policy-form label{gap:5px;display:grid}.announcement-form input,.policy-form input{background:var(--surface-base);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);padding:10px}.announcement-form textarea,.policy-form textarea{resize:vertical;min-height:120px}.check{flex-direction:row;align-items:center!important;display:flex!important}.recipient-preview{background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-sm);gap:4px;padding:10px;display:grid}.recipient-preview span{color:var(--text-tertiary);font-size:var(--font-size-xs)}.announcement-history{border-top:1px solid var(--border-default);margin-top:8px;padding-top:14px}.actions{gap:7px;display:flex}.case-row{border-top:1px solid var(--border-default);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.case-row p{color:var(--text-secondary);margin:4px 0}.case-row small{color:var(--text-tertiary)}.setup-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.readiness{align-items:center;gap:9px;padding:8px 0;display:flex}.readiness strong{color:var(--status-error)}.readiness.ok strong{color:var(--status-success)}.assignment-editor{border-top:1px solid var(--border-default);grid-template-columns:110px 1fr auto;align-items:center;gap:8px;padding:9px 0;display:grid}.assignment-editor small{color:var(--text-tertiary);grid-column:2/-1}@media (width<=1000px){.communications-layout,.communications-overview,.safeguarding-grid,.setup-grid,.announcement-form,.policy-form{grid-template-columns:1fr}.announcement-form h3,.announcement-form .wide,.policy-form h3,.policy-form>p{grid-column:auto}}.success-message{color:var(--status-success)}.attendance-page-head{align-items:center;margin-bottom:12px}.rollout-status{border:1px solid var(--border-default);border-radius:var(--radius-pill);color:var(--text-tertiary);font-size:var(--font-size-xs);font-weight:var(--weight-bold);padding:6px 10px}.rollout-status.enabled{border-color:var(--status-success);color:var(--status-success)}.attendance-tabs{border-bottom:1px solid var(--border-default);gap:6px;margin-bottom:18px;display:flex}.attendance-tabs button{color:var(--text-tertiary);cursor:pointer;font-weight:var(--weight-bold);text-transform:capitalize;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 13px}.attendance-tabs button.active{border-color:var(--brand-primary);color:var(--brand-primary)}.rollout-callout{max-width:680px}.rollout-callout h3{margin-top:0}.rollout-callout p{color:var(--text-secondary);line-height:1.55}.attendance-operation-bar{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.attendance-operation-bar .field{min-width:180px;margin:0}.pending-toggle{color:var(--text-secondary);font-size:var(--font-size-sm);align-items:center;gap:7px;padding-bottom:9px;display:flex}.student-lookup-grid{grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:14px;margin-top:14px;display:grid}.student-result-list{max-height:640px;overflow-y:auto}.student-result-list h3{margin:0 0 10px}.student-result{border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;width:100%;margin-bottom:7px;padding:10px 11px;display:block}.student-result.active{border-color:var(--brand-primary)}.student-result strong{color:var(--text-primary);font-size:var(--font-size-sm);display:block}.student-result small{color:var(--text-tertiary);font-size:var(--font-size-xs)}.student-history-card .attendance-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}@media (width<=900px){.student-lookup-grid{grid-template-columns:minmax(0,1fr)}}.grade-band th{background:var(--surface-raised,transparent);color:var(--text-tertiary);font-size:var(--font-size-2xs);letter-spacing:.08em;text-transform:uppercase}.working-day{border-radius:var(--radius-pill);color:var(--status-success);font-size:var(--font-size-xs);font-weight:var(--weight-bold);margin-left:auto;padding:7px 10px}.working-day.closed{color:var(--status-error)}.attendance-metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:14px}.attendance-metric span{color:var(--text-tertiary);font-size:var(--font-size-xs)}.attendance-metric strong{font-family:var(--font-display);font-size:var(--font-size-3xl);margin-top:8px;display:block}.attendance-metric.danger strong{color:var(--status-error)}.attendance-metric.warning strong{color:var(--status-warning)}.card-title-row{justify-content:space-between;align-items:start;gap:14px;display:flex}.card-title-row h3{margin:0}.card-title-row p{color:var(--text-tertiary);font-size:var(--font-size-sm);margin:5px 0 0}.attendance-classes-table small{color:var(--status-warning);margin-top:4px;display:block}.register-state{border:1px solid var(--border-default);border-radius:var(--radius-pill);font-size:var(--font-size-2xs);font-weight:var(--weight-bold);text-transform:capitalize;padding:5px 8px;display:inline-block}.register-state.submitted{border-color:var(--status-success);color:var(--status-success)}.register-state.draft{border-color:var(--status-warning);color:var(--status-warning)}.table-action{border:1px solid var(--brand-primary);border-radius:var(--radius-sm);color:var(--brand-primary);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--weight-bold);background:0 0;padding:7px 10px}.table-action:disabled,button:disabled{cursor:not-allowed;opacity:.5}.push-warning{border-color:var(--status-warning);justify-content:space-between;align-items:center;gap:12px;margin-top:14px;display:flex}.operations-warning{border-color:var(--status-warning);flex-wrap:wrap;align-items:center;gap:10px;margin-top:14px;display:flex}.operations-warning span{color:var(--text-secondary)}.attendance-setup-grid{grid-template-columns:minmax(280px,.7fr) minmax(420px,1.3fr);gap:14px;display:grid}.class-assignment-card,.roster-assignment-card{grid-column:1/-1}.readiness-score{border:1px solid var(--border-default);font-size:var(--font-size-xs);font-weight:var(--weight-bold);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.readiness-score.ready{border-color:var(--status-success);color:var(--status-success)}.readiness-list{gap:9px;margin:18px 0;display:grid}.readiness-list>div{align-items:center;gap:9px;display:flex}.check{border:1px solid var(--status-error);color:var(--status-error);font-size:var(--font-size-2xs);font-weight:var(--weight-bold);border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:inline-flex}.check.passed{border-color:var(--status-success);color:var(--status-success)}.form-grid{gap:12px;display:grid}.form-grid.two-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.weekday-field{margin:16px 0}.weekday-field>span{color:var(--text-secondary);font-size:var(--font-size-xs);margin-bottom:6px;display:block}.weekday-field>div{flex-wrap:wrap;gap:6px;display:flex}.weekday-field button{background:var(--surface-base);border:1px solid var(--border-default);border-radius:var(--radius-sm);color:var(--text-tertiary);cursor:pointer;padding:7px 9px}.weekday-field button.active{background:var(--brand-primary-dim);border-color:var(--brand-primary);color:var(--brand-primary)}.notification-policy{border:1px solid var(--border-default);border-radius:var(--radius-sm);gap:10px;margin:16px 0;padding:12px;display:grid}.notification-policy>label{font-weight:var(--weight-bold)}.notification-policy>div{flex-wrap:wrap;gap:12px;display:flex}.notification-policy label{font-size:var(--font-size-xs);align-items:center;gap:6px;display:flex}.assignment-list{margin-top:12px;display:grid}.class-assignment-row{border-top:1px solid var(--border-default);grid-template-columns:100px minmax(180px,.7fr) minmax(260px,1.3fr) auto;align-items:start;gap:12px;padding:14px 0;display:grid}.class-assignment-row>div:first-child small{color:var(--text-tertiary);margin-top:4px;display:block}.class-assignment-row>label,.delegate-picker{color:var(--text-tertiary);font-size:var(--font-size-2xs);gap:5px;display:grid}.delegate-picker{flex-wrap:wrap;align-items:center;display:flex}.delegate-picker>span{width:100%}.delegate-picker label{color:var(--text-secondary);align-items:center;gap:4px;display:flex}.compact-field{min-width:160px;margin:0}.roster-assignment-list{margin-top:12px;display:grid}.roster-assignment-row{border-top:1px solid var(--border-default);grid-template-columns:minmax(220px,1fr) minmax(180px,.7fr) auto;align-items:center;gap:12px;padding:12px 0;display:grid}.roster-assignment-row small{color:var(--text-tertiary);margin-top:4px;display:block}.report-controls{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.report-controls .field{min-width:170px;margin:0}.attendance-modal-backdrop{z-index:100;background:#0000009e;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.attendance-modal{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:min(980px,100%);max-height:calc(100svh - 40px);padding:20px;overflow:auto}.attendance-modal>header{justify-content:space-between;align-items:start;display:flex}.attendance-modal h3{font-family:var(--font-display);font-size:var(--font-size-2xl);margin:0}.attendance-modal header p{color:var(--text-tertiary);text-transform:capitalize;margin:4px 0}.close-button{color:var(--text-secondary);cursor:pointer;background:0 0;border:0;font-size:26px}.register-editor-actions,.modal-footer,.correction-actions{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.register-editor-table{overflow-x:auto}.register-editor-table select{min-width:125px}.register-editor-table input{background:var(--surface-base);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);min-width:200px;padding:9px}.modal-footer{justify-content:flex-end}.correction-panel{border-top:1px solid var(--border-default);margin-top:14px;padding-top:12px}.correction-actions input{background:var(--surface-base);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);padding:9px}@media (width<=860px){.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-metrics,.attendance-setup-grid,.form-grid.two-columns,.class-assignment-row{grid-template-columns:1fr 1fr}}@media (width<=600px){.attendance-metrics,.attendance-setup-grid,.form-grid.two-columns,.class-assignment-row{grid-template-columns:1fr}.class-assignment-card{grid-column:auto}.working-day{margin-left:0}}.branding-settings{gap:14px;display:grid}.branding-heading{justify-content:space-between;align-items:center;gap:24px;display:flex}.branding-heading h3,.branding-readiness h3,.branding-controls h3,.branding-history h3{margin:0}.branding-heading p{color:var(--text-secondary);max-width:720px;margin:7px 0 0;line-height:1.5}.eyebrow{color:var(--brand-primary);font-size:var(--font-size-2xs);font-weight:var(--weight-bold);letter-spacing:.09em;text-transform:uppercase;margin-bottom:6px;display:block}.branding-live-state{border:1px solid var(--border-default);border-radius:var(--radius-md);flex:none;gap:3px;min-width:150px;padding:12px;display:grid}.branding-live-state span{color:var(--text-tertiary);font-size:var(--font-size-2xs)}.branding-feedback{border-radius:var(--radius-sm);border:1px solid;margin:0;padding:10px 12px}.branding-editor-grid{grid-template-columns:minmax(520px,1.5fr) minmax(260px,.5fr);gap:14px;display:grid}.branding-controls{gap:18px;display:grid}.branding-color-grid,.branding-logo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.branding-color-field,.branding-logo-field{gap:7px;display:grid}.branding-color-field>span,.branding-logo-field>span{color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:var(--weight-bold)}.branding-color-field>div{grid-template-columns:44px 1fr;align-items:center;gap:8px;display:grid}.branding-color-field input[type=color]{border:1px solid var(--border-default);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:44px;height:42px;padding:3px}.branding-color-field input:not([type=color]){background:var(--surface-base);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-primary);text-transform:uppercase;padding:10px}.branding-logo-drop{background:var(--surface-base);border:1px dashed var(--border-strong);border-radius:var(--radius-md);align-items:center;gap:12px;min-height:96px;padding:12px;display:flex}.branding-logo-drop img{object-fit:contain;width:90px;max-width:150px;height:64px}.branding-logo-drop>strong{color:var(--text-tertiary);text-align:center;flex:1}.branding-logo-drop label{white-space:nowrap;margin-left:auto}.branding-logo-drop input{opacity:0;width:1px;height:1px;position:absolute}.branding-logo-field small{color:var(--text-tertiary)}.branding-logo-field.disabled{opacity:.55}.branding-reuse{font-size:var(--font-size-xs);align-items:center;gap:8px;display:flex}.branding-validation{font-size:var(--font-size-xs);gap:4px;display:grid}.branding-actions{flex-wrap:wrap;gap:8px;display:flex}.branding-readiness{align-content:start;gap:10px;display:grid}.branding-readiness>p{font-size:var(--font-size-xs);line-height:1.5}.branding-previews{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:16px}.branding-preview-grid{grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px;margin-top:14px;display:grid}.app-preview{--preview-bg:#f7f6f3;--preview-surface:#fff;--preview-text:#14110d;background:var(--preview-bg);border:1px solid color-mix(in srgb, var(--preview-text) 13%, transparent);color:var(--preview-text);border-radius:18px;flex-direction:column;min-height:330px;padding:18px;display:flex;position:relative;overflow:hidden}.app-preview[data-mode=dark]{--preview-bg:#141210;--preview-surface:#1d1b18;--preview-text:#f5f3ee}.app-preview-label{color:color-mix(in srgb, var(--preview-text) 58%, transparent);font-size:var(--font-size-2xs);font-weight:var(--weight-bold);letter-spacing:.05em;text-transform:uppercase}.app-preview-logo{background:var(--preview-surface);border:1px solid color-mix(in srgb, var(--preview-primary) 24%, transparent);border-radius:14px;justify-content:center;align-items:center;width:100%;height:74px;margin-top:28px;padding:10px;display:flex}.app-preview-logo img{object-fit:contain;max-width:100%;height:100%}.app-preview-logo span{color:var(--preview-primary);font-size:34px;font-weight:var(--weight-bold)}.app-preview h4{font-size:var(--font-size-xl);margin:18px 0 6px}.app-preview p{color:color-mix(in srgb, var(--preview-text) 66%, transparent);font-size:var(--font-size-xs);margin:0;line-height:1.45}.app-preview button{background:var(--preview-primary);border-radius:var(--radius-md);color:#fff;font-weight:var(--weight-bold);border:0;margin-top:auto;padding:10px}.app-preview small{color:color-mix(in srgb, var(--preview-text) 46%, transparent);text-align:center;margin-top:10px;font-size:9px}.branding-history-list{margin-top:14px;display:grid}.branding-history-list article{border-top:1px solid var(--border-default);grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 0;display:grid}.branding-history-list p{color:var(--text-tertiary);font-size:var(--font-size-xs);margin:4px 0}.branding-history-list small{color:var(--text-secondary)}.branding-history-swatches{display:flex}.branding-history-swatches span{border:2px solid var(--surface-card);border-radius:50%;width:28px;height:28px}.branding-history-swatches span+span{margin-left:-8px}@media (width<=1180px){.branding-editor-grid{grid-template-columns:1fr}.branding-preview-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}}@media (width<=700px){.branding-heading{flex-direction:column;align-items:stretch}.branding-color-grid,.branding-logo-grid,.branding-preview-grid{grid-template-columns:1fr}.branding-editor-grid{grid-template-columns:minmax(0,1fr)}}
