:root{--brand-primary: #2563EB;--brand-secondary: #1E3A8A;--brand-on-primary: #ffffff;--brand-on-secondary: #ffffff;--preview-primary: #2563EB;--preview-secondary: #1E3A8A;--present: 0;--absent: 0;--present-end: 0%;--absent-end: 0%;--color-primary: #0066cc;--color-primary-dark: #0052a3;--color-primary-light: #e6f0ff;--color-secondary: #666;--color-secondary-dark: #333;--color-secondary-light: #f0f0f0;--color-success: #28a745;--color-success-light: #e8f5e9;--color-warning: #ffc107;--color-warning-light: #fff8e1;--color-error: #dc3545;--color-error-light: #ffebee;--color-info: #0066cc;--color-info-light: #e6f0ff;--color-bg-primary: #ffffff;--color-bg-secondary: #f5f5f5;--color-bg-tertiary: #efefef;--color-text-primary: #333333;--color-text-secondary: #666666;--color-text-muted: #999999;--color-text-light: #ffffff;--color-text-inverse: #ffffff;--color-border: #e0e0e0;--color-border-dark: #d0d0d0;--color-divider: #f0f0f0;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 2px 4px rgba(0, 0, 0, .08);--shadow-lg: 0 4px 8px rgba(0, 0, 0, .1);--shadow-xl: 0 8px 16px rgba(0, 0, 0, .12);--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-size-base: 1rem;--font-size-sm: .875rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--container-width-sm: 640px;--container-width-md: 768px;--container-width-lg: 1024px;--container-width-xl: 1280px;--container-max-width: 1200px;--container-padding: var(--space-md);--header-height-mobile: 3.5rem;--header-height-desktop: 4rem;--header-bg: var(--color-bg-primary);--header-border: var(--color-border);--touch-target-min: 44px;--button-padding-mobile: var(--space-md) var(--space-lg);--button-padding-desktop: var(--space-md) var(--space-xl);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-overlay: 400;--z-modal: 500;--z-tooltip: 600}@media (prefers-reduced-motion: reduce){:root{--transition-fast: 0ms;--transition-normal: 0ms;--transition-slow: 0ms}*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:root{--touch-target: 44px;--control-height: 42px;--content-max: 1440px;--page-content-max: 1240px;--page-reading-max: 72ch;--page-gutter-mobile: .75rem;--page-gutter-tablet: 1rem;--page-gutter-desktop: 1.25rem;--control-radius: 10px;--panel-radius: 16px}:root{--kpi-accent: #2563eb;--qa-accent: #2563eb}:root{--mobile-canvas: #f6f8fc;--mobile-surface: #ffffff;--mobile-surface-soft: #f8fafc;--mobile-text: #172033;--mobile-text-secondary: #526077;--mobile-text-muted: #748197;--mobile-border: #e4e9f1;--mobile-border-strong: #d7deea;--mobile-radius-control: 11px;--mobile-radius-card: 14px;--mobile-radius-panel: 16px;--mobile-shadow-card: 0 1px 2px rgba(15, 23, 42, .035), 0 4px 14px rgba(15, 23, 42, .035);--mobile-shadow-float: 0 10px 28px rgba(15, 23, 42, .1);--mobile-press: 80ms cubic-bezier(.2,.8,.2,1);--mobile-brand-soft: color-mix(in srgb, var(--brand-primary, #2563eb) 8%, #ffffff);--mobile-brand-soft-strong: color-mix(in srgb, var(--brand-primary, #2563eb) 13%, #ffffff);--mobile-brand-border: color-mix(in srgb, var(--brand-primary, #2563eb) 20%, var(--mobile-border));--mobile-control-height: 46px;--focus-ring: 0 0 0 3px rgba(37, 99, 235, .22);--surface-border: var(--mobile-border);--ui-table-min: 44rem}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family-base);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-secondary);transition:background-color var(--transition-normal)}h1,h2,h3,h4,h5,h6{line-height:var(--line-height-tight);margin-bottom:var(--space-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}h1{font-size:var(--font-size-3xl)}h2{font-size:var(--font-size-2xl)}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}h5,h6{font-size:var(--font-size-base)}p{margin-bottom:var(--space-md);line-height:var(--line-height-relaxed)}p:last-child{margin-bottom:0}strong,b{font-weight:var(--font-weight-bold)}small{font-size:var(--font-size-sm)}a{color:var(--color-primary);text-decoration:none;cursor:pointer;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark);text-decoration:underline}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}a:active{opacity:.8}button,input[type=button],input[type=submit],input[type=reset]{font-family:inherit;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);padding:var(--button-padding-mobile);border:none;border-radius:var(--radius-md);background-color:var(--color-primary);color:var(--color-text-light);cursor:pointer;min-height:var(--touch-target-min);transition:background-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;-webkit-user-select:none;user-select:none}button:hover{background-color:var(--color-primary-dark);box-shadow:var(--shadow-md)}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:active{transform:scale(.98)}button:disabled{background-color:var(--color-secondary-light);color:var(--color-text-muted);cursor:not-allowed;box-shadow:none}button.btn-secondary{background-color:var(--color-secondary-light);color:var(--color-text-primary);border:1px solid var(--color-border)}button.btn-secondary:hover{background-color:var(--color-border-dark);color:var(--color-text-primary)}button.btn-danger{background-color:var(--color-error)}button.btn-danger:hover{background-color:#bb2d3b}button.btn-success{background-color:var(--color-success)}button.btn-success:hover{background-color:#218838}input,textarea,select{font-family:inherit;font-size:var(--font-size-base);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;min-height:var(--touch-target-min);background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast);-webkit-appearance:none;-moz-appearance:none;appearance:none}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}input::placeholder,textarea::placeholder{color:var(--color-text-muted)}textarea{resize:vertical;min-height:120px;font-family:inherit}select{cursor:pointer;padding-right:var(--space-lg);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%23333'%3E%3Cpath fill-rule='evenodd' d='M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z' clip-rule='evenodd'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--space-md) center;background-size:1.25rem;padding-right:calc(var(--space-lg) + 1.25rem)}input[type=checkbox],input[type=radio]{width:auto;min-height:auto;margin-right:var(--space-sm);cursor:pointer}label{display:block;font-weight:var(--font-weight-medium);margin-bottom:var(--space-sm);color:var(--color-text-primary);cursor:pointer}.form-group{margin-bottom:var(--space-lg)}.form-group:last-child{margin-bottom:0}.form-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--space-xs);display:block}.form-error{font-size:var(--font-size-sm);color:var(--color-error);margin-top:var(--space-xs);display:block}.form-success{font-size:var(--font-size-sm);color:var(--color-success);margin-top:var(--space-xs);display:block}input.error,textarea.error,select.error{border-color:var(--color-error);background-color:var(--color-error-light)}input.error:focus,textarea.error:focus,select.error:focus{box-shadow:0 0 0 3px var(--color-error-light)}.card{background-color:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-lg);box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-normal),border-color var(--transition-normal)}.card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-dark)}.container{width:100%;max-width:var(--container-max-width);margin-left:auto;margin-right:auto;padding-left:var(--container-padding);padding-right:var(--container-padding)}.page-section{padding:var(--space-lg);background-color:var(--color-bg-primary);margin-bottom:var(--space-lg);border-radius:var(--radius-md)}.page-section:last-child{margin-bottom:0}.app-container{min-height:100vh;display:flex;flex-direction:column;background-color:var(--color-bg-secondary)}.app-header{background-color:var(--color-bg-primary);padding:var(--space-lg);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-md);position:sticky;top:0;z-index:var(--z-sticky)}.app-header h1{margin:0 0 var(--space-xs) 0;font-size:var(--font-size-2xl)}.app-header p{margin:0;font-size:var(--font-size-sm)}.app-main{flex:1;padding:var(--space-lg);display:flex;flex-direction:column}.app-footer{background-color:var(--color-bg-primary);padding:var(--space-lg);border-top:1px solid var(--color-border);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:auto}.app-footer p{margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.text-muted{color:var(--color-text-muted)}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-info{color:var(--color-info)}.text-center{text-align:center}.text-right{text-align:right}.text-left{text-align:left}.bg-light{background-color:var(--color-bg-secondary)}.bg-white{background-color:var(--color-bg-primary)}.border-top{border-top:1px solid var(--color-border);padding-top:var(--space-lg);margin-top:var(--space-lg)}.border-bottom{border-bottom:1px solid var(--color-border);padding-bottom:var(--space-lg);margin-bottom:var(--space-lg)}.hidden{display:none!important}.visually-hidden{position:absolute;left:-9999px}.text-bold{font-weight:var(--font-weight-bold)}.text-semibold{font-weight:var(--font-weight-semibold)}.text-small{font-size:var(--font-size-sm)}.no-wrap{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (min-width: 640px){:root{--button-padding-mobile: var(--button-padding-desktop)}h1{font-size:2.5rem}.container{padding-left:var(--space-xl);padding-right:var(--space-xl)}.app-header{padding:var(--space-xl)}.app-header h1{font-size:var(--font-size-3xl)}.app-main,.app-footer{padding:var(--space-xl)}}@media (min-width: 1024px){body{font-size:var(--font-size-base)}.container{padding-left:var(--space-2xl);padding-right:var(--space-2xl)}.page-section,.app-header,.app-main,.app-footer{padding:var(--space-2xl)}}.loading{opacity:.6;pointer-events:none}.loading:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:#ffffff80}@media (prefers-contrast: more){button{border:2px solid var(--color-primary-dark)}input,textarea,select{border-width:2px}}input[type=checkbox],input[type=radio]{-moz-appearance:auto;appearance:auto;-webkit-appearance:auto;accent-color:var(--color-primary);inline-size:1.15rem;block-size:1.15rem;min-inline-size:1.15rem;min-block-size:1.15rem;padding:0;border:1px solid var(--color-border);background:Canvas}input[type=checkbox]:checked,input[type=radio]:checked{opacity:1}input[type=checkbox]:disabled,input[type=radio]:disabled{opacity:.55;cursor:not-allowed}html .final-polish-page{max-width:1480px;margin:0 auto}html .filter-search{flex:1;min-width:220px}html .filter-search input,html .table-toolbar input{width:100%}html .filter-chips{display:flex;gap:8px;flex-wrap:wrap}html .chip{border:1px solid var(--color-border);background:var(--color-bg-primary);color:var(--color-text-secondary);border-radius:999px;padding:7px 12px;min-height:38px}html .sticky-action-row{position:sticky;bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;border-radius:12px;background:var(--color-bg-primary);border:1px solid var(--color-border);box-shadow:0 8px 24px #00000014}html .unsaved-indicator{font-weight:700}html .saved-indicator{color:var(--color-text-secondary)}html .comparison-card{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:14px;margin-top:14px;border:1px solid var(--color-border);border-radius:12px}html .comparison-card>div span,html .restore-preview span{display:block;color:var(--color-text-secondary);font-size:.82rem}html .comparison-card p{grid-column:1/-1;margin:0;color:var(--color-text-secondary);font-size:.84rem}html .trend-up{color:var(--color-success)}html .trend-down{color:var(--color-error)}html .table-toolbar{justify-content:space-between}html .table-toolbar>input{max-width:420px}html .row-warning{background:color-mix(in srgb,var(--color-warning) 8%,transparent)}html .cell-note{display:block;max-width:220px;margin-top:4px;color:var(--color-text-secondary)}html .restore-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;margin:14px 0;border:1px solid var(--color-border);border-radius:12px}html .skeleton-block{min-height:90px}html .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width:760px){html .comparison-card,html .restore-preview{grid-template-columns:1fr}}@media (max-width:760px){html .table-toolbar>input,html .filter-search{min-width:100%;max-width:none}}@media (max-width:760px){html .sticky-action-row{bottom:72px}}@media (max-width:480px){html .filter-chips{display:grid;grid-template-columns:repeat(2,1fr);width:100%}}@media (max-width:480px){html .chip{width:100%}}@media (prefers-reduced-motion:reduce){html .final-polish-page *{scroll-behavior:auto;transition-duration:.01ms;animation-duration:.01ms;animation-iteration-count:1}}html .maintenance-preview{display:grid;gap:4px;margin-top:14px;padding:12px 14px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-secondary)}html .maintenance-preview span,html .session-summary span{color:var(--color-text-secondary)}html .session-summary{display:inline-flex;align-items:baseline;gap:5px;margin:8px 0 14px;padding:8px 12px;border:1px solid var(--color-border);border-radius:999px}html .maintenance-impact{margin-top:1rem}@media (max-width:640px){html .maintenance-impact{font-size:.92rem}}html .combined-module{width:min(100%,1240px);margin:0 auto}html .support-school-page .school-selector-panel{display:grid;gap:1rem}html .school-selector-list{display:grid;gap:.65rem;max-height:62vh;overflow:auto;padding-right:.25rem}html .school-selector-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:1rem;align-items:center;padding:.9rem 1rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-primary)}html .school-selector-main{display:grid;gap:.2rem;min-width:0}html .school-selector-main strong,html .school-selector-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}html .school-selector-main span{color:var(--color-text-muted);font-size:.88rem}html .school-selector-panel .search-field input{width:100%;min-height:44px}html .maintenance-control-card{display:grid;gap:1rem}html .maintenance-status-line{display:flex;align-items:center;gap:.65rem;padding-bottom:.75rem;border-bottom:1px solid var(--color-border)}html table{width:100%}html th{white-space:nowrap}html td,html th{vertical-align:middle}html input,html select,html textarea,html button{font:inherit}html input,html select,html textarea{min-height:42px}@media (max-width:760px){html .school-selector-row{grid-template-columns:1fr auto}}@media (max-width:760px){html .school-selector-row button{grid-column:1/-1;width:100%}}@media (max-width:360px){html .final-polish-page{width:100%;max-width:100%}}html .school-brand-identity{position:fixed;right:clamp(1rem,3vw,2.5rem);bottom:clamp(1rem,3vw,2rem);z-index:-1;max-width:min(34vw,360px);padding:.45rem .8rem;border-radius:999px;background:#ffffff94;color:color-mix(in srgb,var(--brand-primary, #2563eb) 76%,#0f172a);font-size:.78rem;font-weight:700;text-align:center;box-shadow:0 8px 28px #0f172a12;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}html :where(table) thead th{background:#f1f5f9f5;color:var(--color-text-secondary);font-weight:700}html :where(table) tbody tr{transition:background-color var(--transition-fast),box-shadow var(--transition-fast)}html :where(table) tbody tr:hover{background:#eff6ffb8}html :where(input,html select,html textarea){border-radius:10px;border-color:#64748b59;background:#fffffff0}html :where(input,html select,html textarea):focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 14%,transparent);outline:none}html :where(label){line-height:1.4}@media (max-width: 767px){html .school-brand-identity{display:none}}@media (max-width: 767px){html :where(.form-actions,html .card-actions)>:where(button,html a){min-height:44px}}@media (max-width: 520px){html :where(.form-actions,html .page-actions,html .card-actions)>:where(button,html a){width:100%;justify-content:center}}html:root,html body,html #root{min-width:0;width:100%;max-width:100%}html body{overflow-x:hidden}html *{min-width:0}html img,html svg,html video,html canvas{max-width:100%}html :where(input,html select,html textarea){width:100%;max-width:100%;min-height:44px;font:inherit}html textarea{min-height:96px;resize:vertical}html :where(input,html select,html textarea):disabled{opacity:.72;cursor:not-allowed}html :where(table){width:100%;border-collapse:separate;border-spacing:0}html :where(table) th,html :where(table) td{padding:.75rem .8rem;vertical-align:middle;overflow-wrap:anywhere}html :where(table) th{white-space:nowrap}html :where(table) td:last-child{white-space:normal}@media (max-width: 700px){html .compact-list>div{align-items:stretch;flex-direction:column;gap:.65rem;padding:.85rem;margin-bottom:.65rem;border:1px solid var(--color-border);border-radius:12px;background:var(--color-bg-primary)}}@media (max-width: 700px){html .compact-list>div:last-child{border-bottom:1px solid var(--color-border)}}@media (max-width: 700px){html .compact-list>div>button{width:100%;min-height:44px}}html :where(img,html svg,html video,html canvas){max-width:100%}html :where(input,html select,html textarea,html button,html a){-webkit-tap-highlight-color:transparent}@media (max-width: 767px){html :where(textarea){min-height:96px;resize:vertical}}@media (max-width: 767px){html :where(input,html select,html textarea){font-size:16px}}@media (max-width: 767px){html:root,html body,html #root{max-width:100%;overflow-x:hidden}}@media (max-width: 767px){html body{min-width:0}}@media (max-width: 767px){html :where(h1,html h2,html h3,html p,html span,html strong,html small,html label,html dd,html dt,html a,html button){overflow-wrap:anywhere}}@media (max-width: 767px){html :where(input[type=date],html input[type=datetime-local],html select){width:100%;min-width:0}}@media (max-width: 767px){html dialog,html .modal,html .modal-card,html .dialog-card{max-width:calc(100vw - 1rem);max-height:calc(100dvh - 1rem);overflow:auto}}@media (max-width: 359px){html:root{--mobile-page-gutter:.65rem}}@media (orientation: landscape) and (max-height: 520px) and (max-width: 900px){html dialog,html .modal,html .modal-card,html .dialog-card{max-height:calc(100dvh - .5rem)}}html :where(input,html select,html textarea){max-width:100%}@media (max-width: 767px){html :where(.filter-search,html .search-field,html .table-toolbar>input){max-width:none;width:100%}}@media (max-width: 767px){html :where(.filter-chips){max-width:100%}}@media (max-width: 767px){html :where(dialog,html .modal,html .modal-card,html .dialog-card){width:min(100% - 1rem,680px);margin:auto}}@media (hover:none) and (pointer:coarse){html :where(input,html select){min-height:44px}}html .diagnostic-technical-details{margin-top:.7rem;color:var(--color-text-muted);font-size:.78rem}html .diagnostic-technical-details summary{cursor:pointer;font-weight:700;color:var(--color-text-secondary);min-height:36px;display:flex;align-items:center}html .diagnostic-technical-details p{margin:.45rem 0 0;padding:.55rem .65rem;border-radius:9px;background:var(--color-bg-secondary);overflow-wrap:anywhere;word-break:break-word}html :where(input:not([type=checkbox]):not([type=radio]),html select,html textarea){min-height:44px;border-radius:var(--control-radius,10px)}html textarea{min-height:96px}@media (max-width: 767px){html :where(dialog,html .modal,html .modal-card,html .dialog-card){border-radius:14px;max-height:calc(100dvh - max(1rem,env(safe-area-inset-top)) - max(1rem,env(safe-area-inset-bottom)))}}html :focus-visible{outline:3px solid #2563eb;outline-offset:3px}html .onboarding-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a9e;z-index:1200;display:grid;place-items:center;padding:1rem}html .onboarding-card{background:#fff;color:#0f172a;width:min(560px,100%);border-radius:16px;padding:1.5rem;box-shadow:0 24px 80px #00000040}html .onboarding-card ul{list-style:none;padding:0}html .onboarding-card li{padding:.65rem 0}html .onboarding-card li.done{opacity:.7}html .onboarding-progress{height:8px;background:#e2e8f0;border-radius:99px;overflow:hidden}html .onboarding-progress span{display:block;height:100%;background:#2563eb}html .onboarding-actions{justify-content:flex-end}html .action-alerts{margin:0 0 1.25rem}html .action-alert{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem;border:1px solid #e2e8f0;border-radius:12px;background:#fff}html .action-alert p{margin:.25rem 0 0}html .impersonation-banner{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.7rem 1rem;background:#fff7ed;border:1px solid #fdba74;border-radius:10px;margin:0 0 1rem}html .impersonation-banner button{margin-left:auto}html .compact-list>div{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.8rem 0;border-bottom:1px solid #e2e8f0}html .compact-list span{display:flex;flex-direction:column}html .compact-list small{margin-top:.25rem;color:#64748b}html .inline-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;align-items:end}html .diagnostic-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}html .file-drop,html .file-control{display:flex;flex-direction:column;gap:.5rem}@media (prefers-reduced-motion:reduce){html *,html *:before,html *:after{scroll-behavior:auto;animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms}}@media (max-width:700px){html .impersonation-banner button{margin-left:0}}@media (forced-colors:active){html button,html a,html input,html select,html textarea{forced-color-adjust:auto}}html .page-stack{display:grid;gap:1rem}html .page-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}html .form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}html .checkbox-row{display:flex;align-items:center;gap:.55rem}@media (max-width:700px){html .page-header{flex-direction:column}}@media (max-width: 767px){html:root{scroll-behavior:auto;-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--color-bg-secondary)}}@media (max-width: 767px){html body{min-height:100dvh;overscroll-behavior-y:none;-webkit-tap-highlight-color:transparent}}@media (max-width: 767px){html :where(input,html select,html textarea){font-size:16px;min-height:46px;padding:.68rem .75rem;border-radius:10px}}@media (max-width: 767px){html textarea{min-height:104px}}@media (max-width: 767px){html label{margin-bottom:.38rem;font-size:.9rem}}@media (max-width: 767px){html .form-group{margin-bottom:.85rem}}@media (max-width: 767px){html .form-hint,html .form-error,html .form-success{font-size:.8rem;line-height:1.4}}@media (max-width: 767px){html :where(table){font-size:.86rem}}@media (max-width: 767px){html :where(th,html td){padding:.62rem .7rem;line-height:1.35}}html *,html *:before,html *:after{box-sizing:border-box}@media (max-width: 767px){html img,html svg,html video,html canvas{max-width:100%}}@media (max-width: 767px){html img{height:auto}}@media (max-width: 767px){html :where(button,html a,html input,html select,html textarea,html [role=button],html [role=tab],html [tabindex]):focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary, #2563eb) 72%,white);outline-offset:2px}}@media (max-width: 767px){html :where(input,html select,html textarea,html button){max-width:100%}}@media (max-width: 767px){html :where(input,html textarea){caret-color:currentColor}}@media (max-width: 767px){html input:-webkit-autofill{background-clip:padding-box}}@media (prefers-reduced-motion: reduce){html:root{scroll-behavior:auto}}@media (max-width: 767px){html:root{background:var(--mobile-canvas);-webkit-tap-highlight-color:transparent}}@media (max-width: 767px){html body{background:var(--mobile-canvas);color:var(--mobile-text)}}@media (max-width: 767px){html :where(h2,html h3,html .card-title,html .panel-title){letter-spacing:-.01em}}@media (max-width: 767px){html :where(input,html select,html textarea){color:var(--mobile-text);background:var(--mobile-surface);border-color:var(--mobile-border-strong);border-radius:var(--mobile-radius-control);box-shadow:none;transition:border-color var(--mobile-press),box-shadow var(--mobile-press),background-color var(--mobile-press)}}@media (max-width: 767px){html :where(input,html select,html textarea)::placeholder{color:var(--mobile-text-muted);opacity:1}}@media (max-width: 767px){html :where(input,html select,html textarea):focus{border-color:color-mix(in srgb,var(--brand-primary, #2563eb) 62%,var(--mobile-border-strong));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-primary, #2563eb) 10%,transparent)}}@media (max-width: 767px){html :where(table){background:var(--mobile-surface)}}@media (max-width: 767px){html :where(thead th){background:var(--mobile-surface-soft);color:#3f4b60;border-bottom-color:var(--mobile-border-strong)}}@media (max-width: 767px){html :where(tbody td){border-bottom-color:var(--mobile-border)}}@media (max-width: 379px){html:root{--mobile-radius-card:13px;--mobile-radius-panel:14px}}@media (max-width: 900px) and (max-height: 500px) and (orientation: landscape){html:root{--header-height-mobile:3.25rem}}@media (max-width: 767px){html:root{--mobile-canvas:color-mix(in srgb, var(--brand-primary, #2563eb) 2.4%, #f7f9fc)}}@media (max-width: 767px){html ::selection{background:color-mix(in srgb,var(--brand-primary, #2563eb) 22%,#ffffff);color:var(--mobile-text)}}@media (max-width: 767px){html body{font-feature-settings:"kern" 1;font-kerning:normal;text-rendering:optimizeLegibility}}@media (max-width: 767px){html :where(input,html select,html textarea){min-height:var(--mobile-control-height);border-color:var(--mobile-border-strong);background:#fff;accent-color:var(--brand-primary, #2563eb)}}@media (max-width: 767px){html :where(input,html select,html textarea):focus,html :where(input,html select,html textarea):focus-visible{border-color:color-mix(in srgb,var(--brand-primary, #2563eb) 64%,var(--mobile-border-strong));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-primary, #2563eb) 10%,transparent)}}@media (max-width: 767px){html :where(input[type=checkbox],html input[type=radio]){min-width:20px;min-height:20px}}@media (max-width: 767px){html :where(thead th){color:var(--mobile-text-secondary);font-weight:700;background:color-mix(in srgb,var(--brand-primary, #2563eb) 2.4%,var(--mobile-surface-soft))}}@media (max-width: 767px){html :where(tbody tr:last-child td){border-bottom-color:transparent}}@media (max-width: 359px){html:root{--mobile-control-height:44px}}@keyframes v48-route-spin{to{transform:rotate(360deg)}}html :where(a,html button,html input,html select,html textarea,html [tabindex]):focus-visible{outline:3px solid color-mix(in srgb,var(--brand-primary, #2563eb) 28%,transparent);outline-offset:2px}html [aria-busy=true]{opacity:.985}@media (max-width: 767px){html button,html input[type=button],html input[type=submit],html input[type=reset]{min-height:44px;white-space:normal;overflow-wrap:anywhere;text-wrap:balance;line-height:1.2}}@media (max-width: 767px){html .filter-chips{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none}}@media (max-width: 767px){html .filter-chips::-webkit-scrollbar{display:none}}@media (max-width: 767px){html .filter-chips .chip{flex:0 0 auto;min-height:44px}}@media (max-width: 767px){html :where(input,html select,html textarea){width:100%;min-width:0;min-height:46px;font-size:16px}}@media (max-width: 767px){html :where(label,html .form-label){line-height:1.3}}@media (prefers-reduced-motion: reduce){html *,html *:before,html *:after{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms;scroll-behavior:auto}}@media (max-width: 900px){html:root,html body,html #root{width:100%;max-width:100%;min-height:100%;height:auto;overflow-x:hidden;overflow-y:visible}}@media (max-width: 900px){html:root{min-height:100%;scroll-behavior:auto;-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--mobile-canvas, #f7f9fc)}}@media (max-width: 900px){html body{min-height:100svh;position:static;overscroll-behavior-y:auto;-webkit-tap-highlight-color:transparent;touch-action:manipulation}}@media (max-width: 900px){html input,html select,html textarea{font-size:16px}}@media (max-width: 900px){html .global-search-layer{z-index:6200;padding:max(.7rem,env(safe-area-inset-top)) max(.6rem,env(safe-area-inset-right)) max(.7rem,env(safe-area-inset-bottom)) max(.6rem,env(safe-area-inset-left));align-items:flex-start}}.async-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);min-height:180px;padding:var(--space-xl);text-align:center;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.async-state-compact{min-height:110px;padding:var(--space-lg)}.async-state-error{border-color:var(--color-error);background:var(--color-error-light)}.async-state-empty{border-style:dashed}.async-state-copy{max-width:620px}.async-state-copy h2{margin:0 0 var(--space-sm);font-size:var(--font-size-xl)}.async-state-copy p{margin:0;color:var(--color-text-secondary)}.async-state-spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:async-spin .8s linear infinite}@keyframes async-spin{to{transform:rotate(360deg)}}.page-notice{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-primary);overflow-wrap:anywhere}.page-notice-success{border-color:var(--color-success);background:var(--color-success-light)}.page-notice-error{border-color:var(--color-error);background:var(--color-error-light)}.page-notice-info{border-color:var(--color-info);background:var(--color-info-light)}.page-notice-dismiss{flex:0 0 var(--touch-target-min);width:var(--touch-target-min);min-height:var(--touch-target-min);padding:0;background:transparent;color:var(--color-text-primary);font-size:var(--font-size-xl);line-height:1}.page-notice-dismiss:hover{background:var(--color-bg-tertiary);color:var(--color-text-primary)}.pagination-consistent{margin-top:var(--space-xl)}.pagination-consistent button{min-width:108px}button[aria-busy=true],.button-link[aria-disabled=true]{cursor:wait}@media (max-width: 479px){.async-state{min-height:150px;padding:var(--space-lg)}.page-notice{align-items:center}.pagination-consistent{width:100%}.pagination-consistent button{min-width:0;flex:1 1 0}}@media (prefers-reduced-motion: reduce){.async-state-spinner{animation-duration:1.5s}}html :where(.toast,html .toast-item,html .alert-toast,html [role=status],html [role=alert]){max-width:100%;overflow-wrap:anywhere}html .action-alert-grid{display:grid;gap:.75rem}html .route-loading-shell{min-height:100dvh;display:grid;place-items:center;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));background:var(--mobile-canvas, #f6f8fc);color:var(--mobile-text, #172033)}html .route-loading-card{min-width:min(13rem,80vw);min-height:4.25rem;display:flex;align-items:center;justify-content:center;gap:.7rem;padding:.9rem 1rem;border:1px solid var(--mobile-border, #e4e9f1);border-radius:var(--mobile-radius-panel, 16px);background:#fff;box-shadow:var(--mobile-shadow-card, 0 1px 2px rgba(15,23,42,.04));font-weight:650}html .route-loading-spinner{width:1.15rem;height:1.15rem;flex:0 0 auto;border:2px solid color-mix(in srgb,var(--brand-primary, #2563eb) 20%,#dbe3ef);border-top-color:var(--brand-primary, #2563eb);border-radius:999px;animation:v48-route-spin .7s linear infinite}@media (prefers-reduced-motion: reduce){html .route-loading-spinner{animation:none}}:root{--brand-primary: #2563EB;--brand-secondary: #1E3A8A}.app-sidebar{background:linear-gradient(180deg,var(--brand-secondary),color-mix(in srgb,var(--brand-secondary) 82%,#0f172a));border-right:0;color:#fff}.app-sidebar .nav-section-title{color:#ffffffa6}.app-sidebar .nav-item{color:#ffffffe0;border-radius:var(--radius-md);margin:2px var(--space-sm)}.app-sidebar .nav-item:hover,.app-sidebar .nav-item.active{background:#ffffff24;color:#fff;text-decoration:none}.header-brand{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.header-brand-mark{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--brand-primary),var(--brand-secondary));color:#fff;display:grid;place-items:center;font-size:.72rem;font-weight:800;flex:0 0 auto;overflow:hidden;box-shadow:var(--shadow-sm)}.header-brand-mark img{width:100%;height:100%;object-fit:cover}.header-tagline{margin:2px 0 0;color:var(--color-text-muted);font-size:.72rem;line-height:1.2;max-width:420px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-notification-link{position:relative;width:44px;height:44px;display:grid;place-items:center;border-radius:50%;background:var(--color-bg-secondary);text-decoration:none;font-size:1.15rem}.header-notification-link span{position:absolute;right:-2px;top:-4px;min-width:19px;height:19px;border-radius:10px;padding:0 4px;display:grid;place-items:center;font-size:.65rem;color:#fff;background:var(--color-error)}.dashboard-section,.page-section,.card,.kpi-card{border-color:color-mix(in srgb,var(--brand-primary) 13%,var(--color-border))}.kpi-card{position:relative;overflow:hidden}.kpi-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--brand-primary)}.content-header{padding:var(--space-lg);border-radius:var(--radius-lg);background:linear-gradient(120deg,color-mix(in srgb,var(--brand-primary) 10%,#fff),#fff);border:1px solid color-mix(in srgb,var(--brand-primary) 15%,var(--color-border))}.premium-page{max-width:1200px;margin:0 auto;display:grid;gap:var(--space-lg)}.premium-panel{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm)}@media (max-width:767px){.header-tagline{display:none}.header-brand-mark{width:36px;height:36px}.header-notification-link{width:44px;height:44px}}.toast-viewport{position:fixed;right:var(--space-md);top:calc(var(--header-height-desktop) + var(--space-md));z-index:9999;display:grid;gap:var(--space-sm);width:min(380px,calc(100vw - 2 * var(--space-md)))}.app-toast{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-primary);box-shadow:var(--shadow-lg);font-weight:var(--font-weight-medium)}.app-toast.toast-success{border-left:4px solid var(--color-success)}.app-toast.toast-error{border-left:4px solid var(--color-error)}.app-toast.toast-warning{border-left:4px solid var(--color-warning)}.app-toast button{min-width:44px;min-height:44px;background:transparent;color:var(--color-text-secondary);padding:0;font-size:1.4rem}.teacher-bottom-nav{display:none}.global-search{position:relative;margin-left:auto}.global-search-trigger{display:flex;align-items:center;gap:var(--space-sm);min-height:44px;padding:0 var(--space-md);background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:999px}.global-search-trigger kbd{font-size:.7rem;padding:2px 6px;border:1px solid var(--color-border);border-radius:5px;background:var(--color-bg-primary)}.global-search-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9998;background:#0f172a7a;display:flex;justify-content:center;align-items:flex-start;padding:10vh var(--space-md)}.global-search-panel{width:min(680px,100%);max-height:70vh;overflow:hidden;background:var(--color-bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);border:1px solid var(--color-border)}.global-search-input-wrap{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-bottom:1px solid var(--color-border)}.global-search-input-wrap input{border:0;box-shadow:none;background:transparent;font-size:1.05rem}.global-search-input-wrap button{background:var(--color-bg-secondary);color:var(--color-text-secondary);padding:var(--space-xs) var(--space-sm);min-height:36px}.global-search-results{max-height:55vh;overflow:auto;padding:var(--space-sm)}.global-search-results>p{padding:var(--space-lg);text-align:center;color:var(--color-text-secondary)}.global-search-results>button{width:100%;display:flex;align-items:center;justify-content:space-between;text-align:left;padding:var(--space-md);background:transparent;color:var(--color-text-primary);border-radius:var(--radius-md)}.global-search-results>button:hover,.global-search-results>button:focus-visible{background:var(--color-bg-secondary)}.global-search-results strong,.global-search-results small{display:block}.global-search-results small{color:var(--color-text-secondary);margin-top:2px}.global-search-results em{font-style:normal;font-size:.75rem;color:var(--color-primary);background:var(--color-primary-light);padding:4px 8px;border-radius:999px}@media (max-width:767px){.teacher-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sticky);display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--color-bg-primary);border-top:1px solid var(--color-border);box-shadow:0 -4px 18px #0f172a1a;padding:6px 6px calc(6px + env(safe-area-inset-bottom))}.teacher-bottom-nav a{min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-md)}.teacher-bottom-nav a.active{color:var(--color-primary);background:var(--color-primary-light)}.teacher-bottom-nav span{font-size:1.15rem}.teacher-bottom-nav small{font-size:.7rem}.app-layout:has(.teacher-bottom-nav) .app-content{padding-bottom:calc(84px + env(safe-area-inset-bottom))}.global-search-trigger{padding:0 10px}.global-search-trigger span,.global-search-trigger kbd{display:none}.global-search-backdrop{padding-top:6vh}.toast-viewport{top:auto;bottom:calc(84px + env(safe-area-inset-bottom))}}.account-language-preference{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--color-border,#d9e1ee)}.account-language-preference p{margin:.2rem 0 0}@media (max-width:600px){.account-language-preference{align-items:flex-start;flex-direction:column}}.teacher-account-page{max-width:1240px}.teacher-account-page>.content-header{margin-bottom:1rem}.teacher-account-page .account-profile-summary{margin-top:1rem;padding:1.1rem}.teacher-account-page .subscription-details-grid{gap:.7rem}.teacher-account-page .subscription-details-grid>div{padding:.85rem;min-height:72px}.teacher-account-page .account-language-preference{margin-top:.9rem;padding-top:.85rem}@media (max-width:600px){.teacher-account-page>.content-header{margin-bottom:.7rem}.teacher-account-page .account-profile-summary{margin-top:.75rem;padding:.85rem}.teacher-account-page .subscription-details-grid{grid-template-columns:1fr}.teacher-account-page .account-language-preference{gap:.65rem}}.teacher-account-page{max-width:1180px;gap:.85rem}.teacher-account-page>.content-header{padding:1rem 1.05rem;margin-bottom:.25rem}.teacher-account-page>.content-header h1{font-size:1.35rem}.teacher-account-page .account-profile-summary{margin-top:.25rem;padding:.9rem}.teacher-account-page .panel-heading{margin-bottom:.65rem}.teacher-account-page .subscription-details-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.teacher-account-page .subscription-details-grid>div{min-height:64px;padding:.72rem .78rem;border-radius:12px}.teacher-account-page .account-language-preference{margin-top:.72rem;padding-top:.7rem}.teacher-account-page .premium-panel{border-radius:15px}@media (max-width:600px){.teacher-account-page{gap:.65rem}.teacher-account-page>.content-header{padding:.78rem;margin-bottom:.15rem}.teacher-account-page>.content-header h1{font-size:1.18rem}.teacher-account-page .account-profile-summary{margin-top:.1rem;padding:.72rem}.teacher-account-page .subscription-details-grid{grid-template-columns:1fr}.teacher-account-page .subscription-details-grid>div{min-height:56px;padding:.65rem .7rem}.teacher-account-page .account-language-preference{margin-top:.6rem;padding-top:.6rem}}@media (max-width:760px){html .content-header .button-row{width:100%}}@media (max-width:760px){html .content-header .button-row>*{flex:1}}@media (max-width:760px){html .premium-panel.table-wrap{overflow-x:auto}}html .global-search-results [role=option]:focus-visible{outline:2px solid currentColor;outline-offset:-2px}@media (max-width:760px){html .panel-heading{align-items:flex-start;gap:.75rem}}@media (max-width: 767px){html .global-search{display:none}}html :where(.confirm-dialog,html .school-delete-dialog,html .onboarding-card,html .global-search-panel){max-width:min(100%,620px);max-height:min(90dvh,760px);overflow:auto;overscroll-behavior:contain}html :where(.modal-backdrop,html .school-delete-overlay,html .onboarding-backdrop,html .global-search-backdrop){padding:max(.75rem,env(safe-area-inset-top)) max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left))}@media (max-width: 767px){html :where(.confirm-dialog,html .school-delete-dialog,html .onboarding-card,html .global-search-panel){width:100%}}html .onboarding-actions,html .button-row,html .panel-heading{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}@media (max-width:700px){html .action-alert,html .panel-heading{align-items:flex-start;flex-direction:column}}html .form-grid label,html .card>label{display:grid;gap:.4rem}html .card textarea{min-height:90px}@media (max-width: 767px){html .global-search-backdrop{padding:max(.65rem,env(safe-area-inset-top)) max(.65rem,env(safe-area-inset-right)) max(.65rem,env(safe-area-inset-bottom)) max(.65rem,env(safe-area-inset-left));align-items:flex-start}}@media (max-width: 767px){html .global-search-panel{margin-top:calc(var(--header-height-mobile) + .35rem);max-height:calc(100dvh - var(--header-height-mobile) - 1.4rem);border-radius:14px;contain:layout paint}}@media (max-width: 767px){html .global-search-input-wrap{padding:.7rem;gap:.45rem}}@media (max-width: 767px){html .global-search-results{max-height:calc(100dvh - var(--header-height-mobile) - 6rem);-webkit-overflow-scrolling:touch}}@media (max-width: 767px){html .global-search-results>button{padding:.72rem}}@media (orientation: landscape) and (max-height: 520px) and (max-width: 900px){html .global-search-panel{margin-top:.25rem;max-height:calc(100dvh - 1rem)}}@media (max-width: 900px) and (max-height: 500px) and (orientation: landscape){html .content-header{padding-top:.65rem;padding-bottom:.65rem}}@media (max-width: 900px){html .global-search-layer .global-search-panel{width:100%;max-width:680px;max-height:calc(100dvh - max(1.4rem,env(safe-area-inset-top) + env(safe-area-inset-bottom)));margin:0 auto;touch-action:pan-y}}.weekly-off-fieldset{border:0;padding:0;margin:0;min-width:0}.weekly-off-fieldset legend{font-weight:700;color:var(--color-text-primary);margin-bottom:.25rem}.weekly-off-help{margin:.15rem 0 .65rem}.weekly-off-selector{display:flex;flex-wrap:wrap;gap:.5rem}.weekly-off-option{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:44px;padding:.5rem .75rem;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg-primary);color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}.weekly-off-option.selected{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary-dark);font-weight:700}.weekly-off-option input{width:1rem;height:1rem;margin:0;accent-color:var(--color-primary)}.weekly-off-option:focus-within{outline:2px solid var(--color-primary);outline-offset:2px}.weekly-off-option:has(input:disabled){opacity:.6;cursor:not-allowed}.holiday-list small{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem}@media (max-width:520px){.weekly-off-option{flex:1 1 calc(50% - .5rem)}}.system-alert{padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--color-border)}.system-alert.error{background:var(--color-error-light);color:var(--color-error)}.system-alert.success{background:var(--color-success-light);color:var(--color-success)}.system-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.system-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg);margin-bottom:var(--space-lg)}.system-form-grid label{display:grid;gap:var(--space-sm)}.system-form-grid .wide{grid-column:1/-1}.system-actions{display:flex;gap:var(--space-md);flex-wrap:wrap}.muted{color:var(--color-text-muted);font-size:var(--font-size-sm)}.branding-preview{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg);border-radius:var(--radius-lg);background:linear-gradient(120deg,color-mix(in srgb,var(--preview-primary) 14%,white),color-mix(in srgb,var(--preview-secondary) 8%,white));margin-bottom:var(--space-xl)}.branding-preview-mark{width:72px;height:72px;border-radius:18px;background:linear-gradient(135deg,var(--preview-primary),var(--preview-secondary));display:grid;place-items:center;color:#fff;font-weight:800;overflow:hidden}.branding-preview-mark img{width:100%;height:100%;object-fit:cover}.branding-preview div:last-child{display:grid;gap:4px}.branding-preview strong{font-size:var(--font-size-xl)}.branding-preview span{color:var(--color-text-secondary)}.notification-item{display:grid;grid-template-columns:10px 1fr;gap:var(--space-md)}.notification-item.read{opacity:.72}.notification-dot{width:10px;height:10px;border-radius:50%;background:var(--color-info);margin-top:7px}.notification-dot.warning{background:var(--color-warning)}.notification-dot.action{background:var(--color-error)}.notification-meta{display:flex;justify-content:space-between;gap:var(--space-md);align-items:flex-start}.notification-meta span{font-size:var(--font-size-sm);color:var(--color-text-muted)}.activity-timeline{position:relative;display:grid;gap:var(--space-md);padding-left:24px}.activity-timeline:before{content:"";position:absolute;left:7px;top:0;bottom:0;width:2px;background:var(--color-border)}.activity-entry{position:relative}.activity-marker{position:absolute;left:-22px;top:22px;width:12px;height:12px;border-radius:50%;background:var(--brand-primary);box-shadow:0 0 0 4px #fff}.analytics-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-md)}.analytics-kpis>div{display:grid;gap:var(--space-sm)}.analytics-kpis strong{font-size:2rem}.analytics-bars{height:260px;display:flex;align-items:end;justify-content:space-around;gap:var(--space-md);padding-top:var(--space-lg)}.analytics-day{height:100%;display:grid;grid-template-rows:1fr auto auto;align-items:end;text-align:center;gap:6px;min-width:42px}.analytics-bar-track{height:100%;width:34px;background:var(--color-bg-secondary);border-radius:10px;overflow:hidden;display:flex;align-items:end;margin:auto}.analytics-bar-fill{width:100%;background:linear-gradient(180deg,var(--brand-primary),var(--brand-secondary));border-radius:10px 10px 0 0;min-height:4px}.analytics-day span{font-size:var(--font-size-sm);color:var(--color-text-muted)}.analytics-status{display:grid;place-items:center;gap:var(--space-md)}.analytics-donut{--present-end:0%;--absent-end:0%;width:190px;height:190px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--color-success) 0 var(--present-end),var(--color-error) var(--present-end) var(--absent-end),var(--color-warning) var(--absent-end) 100%);position:relative}.analytics-donut:after{content:"";position:absolute;width:130px;height:130px;border-radius:50%;background:#fff}.analytics-donut span{position:relative;z-index:1;display:grid;text-align:center;font-size:1.7rem;font-weight:700}.analytics-donut small{font-size:.75rem;font-weight:400;color:var(--color-text-muted)}.analytics-legend{display:flex;gap:var(--space-lg);flex-wrap:wrap}.export-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg)}.export-grid article{display:grid;align-content:start;gap:var(--space-md)}.export-icon{width:64px;height:64px;border-radius:16px;display:grid;place-items:center;font-weight:800;background:var(--color-success-light);color:var(--color-success)}.export-icon.pdf{background:var(--color-error-light);color:var(--color-error)}.parent-attendance-list{display:grid;gap:var(--space-sm)}.parent-attendance-row{display:flex;justify-content:space-between;align-items:center}.parent-attendance-row>div{display:grid;gap:4px}.parent-attendance-row span{color:var(--color-text-muted)}.status-pill{padding:6px 10px;border-radius:999px;font-size:var(--font-size-sm);font-weight:700}.status-pill.present{background:var(--color-success-light);color:var(--color-success)}.status-pill.absent{background:var(--color-error-light);color:var(--color-error)}.status-pill.leave{background:var(--color-warning-light);color:#8a5b00}.permission-list{display:grid;gap:var(--space-md)}.permission-list label{min-height:56px;display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md)}.permission-list input{width:22px;height:22px;min-height:22px}.permission-list span{display:grid;gap:3px}.permission-list small{color:var(--color-text-muted)}@media (max-width:767px){.system-heading{align-items:flex-start;flex-direction:column}.system-form-grid,.analytics-kpis,.export-grid{grid-template-columns:1fr}.analytics-bars{overflow-x:auto;justify-content:flex-start}.notification-meta{flex-direction:column;gap:4px}.branding-preview-mark{width:58px;height:58px}}html .status-pill{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:700;border:1px solid var(--color-border)}html .status-pill.accent,html .status-pill.high,html .status-pill.warning{color:var(--color-warning)}html .status-pill.success,html .status-pill.low{color:var(--color-success)}html .status-pill.medium{color:var(--color-primary)}html .restore-preview .wide{grid-column:1/-1}@media (max-width:760px){html .comparison-card p,html .restore-preview .wide{grid-column:auto}}html .status-pill.success{margin-left:.35rem}html .status-pill{display:inline-block;padding:.35rem .6rem;border-radius:999px}html .status-pill.good{background:#dcfce7}html .status-pill.bad{background:#fee2e2}@media (max-width: 767px){html :where(.status-pill,html .badge,html .chip){border-radius:999px;box-shadow:none}}:root{--focus-ring: 0 0 0 3px color-mix(in srgb, var(--brand-primary, #2563eb) 22%, transparent);--surface-border: var(--mobile-border, #e4e9f1);--surface-radius: var(--mobile-radius-card, 14px);--content-gutter: clamp(.75rem, 2vw, 1.5rem);--control-inline-gap: .625rem}.skip-link{position:fixed;inset:.5rem auto auto .5rem;z-index:10000;transform:translateY(-180%);padding:.7rem 1rem;border-radius:.6rem;background:#111827;color:#fff;font-weight:700;box-shadow:0 8px 24px #0f172a2e}.skip-link:focus{transform:translateY(0)}:where(button,a,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--brand-primary, var(--color-primary));outline-offset:2px}.ui-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--control-radius, 10px);padding:.7rem 1rem;font-weight:650;line-height:1.2;text-decoration:none;white-space:normal;text-align:center}.ui-button:hover{text-decoration:none}.ui-button-primary{background:var(--brand-primary, var(--color-primary));color:var(--brand-on-primary, #fff)}.ui-button-secondary{background:var(--mobile-surface-soft, #f8fafc);color:var(--mobile-text, #172033);border:1px solid var(--surface-border)}.ui-button-danger{background:var(--color-error);color:#fff}.ui-button-sm{min-height:40px;padding:.55rem .8rem;font-size:.9rem}.ui-button-lg{min-height:48px;padding:.8rem 1.2rem}.ui-button[aria-disabled=true],.ui-button:disabled{opacity:.58;pointer-events:none}.ui-form-field{display:grid;gap:.4rem;min-width:0}.ui-form-field>label{font-weight:650;color:var(--mobile-text, var(--color-text-primary))}.ui-required{color:var(--color-error)}.ui-field-hint,.ui-field-error{margin:0;font-size:.86rem;line-height:1.45}.ui-field-hint{color:var(--mobile-text-secondary, var(--color-text-secondary))}.ui-field-error{color:var(--color-error)}.ui-form-field.has-error :is(input,select,textarea){border-color:var(--color-error);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-error) 12%,transparent)}.ui-page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:clamp(1rem,2vw,1.5rem)}.ui-page-header-copy{min-width:0}.ui-page-header h1{margin-bottom:.35rem}.ui-page-eyebrow{margin:0 0 .35rem;color:var(--brand-primary, var(--color-primary));font-weight:750;font-size:.78rem;letter-spacing:.06em;text-transform:uppercase}.ui-page-description{margin:0;color:var(--mobile-text-secondary, var(--color-text-secondary));max-width:70ch}.ui-page-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:flex-end}.ui-table-scroll,.table-responsive,[class$=-table-wrap],.table-wrap{width:100%;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-gutter:stable}.ui-table-scroll>table{min-width:var(--ui-table-min, 44rem)}.ui-table-scroll:focus-visible{border-radius:.5rem;box-shadow:var(--focus-ring)}@media (pointer: coarse){:where(button,.button-link,.link-button,.table-action,[role=tab]){min-height:44px}:where(.table-action,.link-button){display:inline-flex;align-items:center}}@media (max-width: 767px){.ui-page-header{flex-direction:column}.ui-page-actions{width:100%;justify-content:stretch}.ui-page-actions>*{flex:1 1 10rem}.ui-button{width:auto;max-width:100%}:where(.ui-table-scroll,.table-responsive,[class$=-table-wrap],.table-wrap) table{font-size:.9rem}:where(.ui-table-scroll,.table-responsive,[class$=-table-wrap],.table-wrap) th,:where(.ui-table-scroll,.table-responsive,[class$=-table-wrap],.table-wrap) td{padding-inline:.7rem;white-space:nowrap}}@media (max-width: 420px){.ui-page-actions>*{flex-basis:100%}.ui-button{min-height:46px}}@media (prefers-reduced-motion: reduce){.skip-link,.ui-button{transition:none!important}}html .module-tabs{margin:0 0 1rem;overflow-x:auto;scrollbar-width:thin}html .module-tabs button{white-space:nowrap}@media (max-width: 640px){html .module-tabs{display:flex}}@media (max-width: 640px){html .module-tabs button{flex:0 0 auto}}html .module-tabs,html .section-tabs{overflow-x:auto;scrollbar-width:thin}html .module-tabs button,html .section-tabs a{white-space:nowrap}html button,html .button-link,html .btn,html .btn-primary,html .btn-secondary{min-height:40px}@media (max-width:760px){html .panel-heading .button-link{width:100%;text-align:center}}html :where(button:not(:disabled),html .btn:not(.disabled),html .button-link):active{transform:translateY(1px)}html :where(button,html .btn,html .button-link,html a[class*=primary],html a[class*=secondary]):focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary) 32%,transparent);outline-offset:2px}html :where(button:disabled,html .btn.disabled,html [aria-disabled=true]){cursor:not-allowed;opacity:.58;transform:none}html :where(.btn-danger,html button.btn-danger){box-shadow:none;border:1px solid color-mix(in srgb,var(--color-error) 40%,transparent)}html :where(.module-tabs,html .section-tabs,html .segmented-control,html .tab-list){gap:.4rem;padding:.3rem;border:1px solid rgba(148,163,184,.28);border-radius:12px;background:#ffffffb8}html :where(.module-tabs button,html .section-tabs button,html .section-tabs a,html .segmented-control button,html [role=tab]){border-radius:9px}html :where(.module-tabs .active,html .section-tabs .active,html .segmented-control .active,html [role=tab][aria-selected=true]){box-shadow:0 4px 12px color-mix(in srgb,var(--color-primary) 15%,transparent)}html :where(button,html .btn,html .button-link,html a[class*=button],html .table-action):focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary) 34%,transparent);outline-offset:2px}html :where(.btn-danger,html button.btn-danger,html .danger){color:var(--color-error)}@media (max-width: 767px){html :where(.form-actions,html .page-actions,html .card-actions,html .button-row)>:where(button,html a,html .btn,html .button-link){flex:1 1 150px}}@media (max-width: 520px){html :where(.form-actions,html .page-actions,html .card-actions,html .button-row)>:where(button,html a,html .btn,html .button-link){flex-basis:100%;width:100%}}@media (max-width: 520px){html :where(.panel-heading-actions)>:where(.scope-toggle,html .section-tabs,html .module-tabs){width:100%}}@media (max-width: 520px){html :where(.pagination){gap:.4rem;justify-content:center;flex-wrap:wrap}}@media (max-width: 520px){html :where(.pagination button){min-width:44px;min-height:44px}}@media (max-width: 380px){html :where(button,html .btn,html .button-link){padding-inline:.7rem}}@media (max-width: 767px){html :where(button,html .button-link,html .btn,html .btn-primary,html .btn-secondary,html a[role=button]){touch-action:manipulation}}@media (max-width: 767px){html :where(.module-tabs,html .section-tabs){max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}}@media (max-width: 767px){html :where(.module-tabs,html .section-tabs)::-webkit-scrollbar{display:none}}@media (max-width: 767px){html :where(.module-tabs button,html .section-tabs a){min-height:44px;flex:0 0 auto}}@media (max-width: 359px){html .module-tabs button,html .section-tabs a{padding-inline:.7rem;font-size:.82rem}}html :where(button,html .btn,html .btn-primary,html .btn-secondary,html .button-link,html .table-action,html [role=button]){touch-action:manipulation}html :where(input,html select,html textarea,html button,html .btn,html .btn-primary,html .btn-secondary,html .button-link){border-radius:max(8px,var(--radius-sm,8px))}@media (hover:none) and (pointer:coarse){html :where(button,html .btn,html .btn-primary,html .btn-secondary,html .button-link,html .table-action,html [role=button]){min-height:44px}}html .table-wrap,html .table-responsive{overflow:auto}@media (max-width:700px){html .page-header .btn{width:100%}}@media (max-width: 767px){html :where(button,html [role=button],html .btn,html .button-link):disabled,html :where(button,html [role=button],html .btn,html .button-link)[aria-disabled=true]{transform:none;pointer-events:none}}@media (max-width: 767px){html :where(button,html .btn,html .button-link){border-radius:var(--mobile-radius-control);transition:background-color var(--mobile-press),border-color var(--mobile-press),color var(--mobile-press),opacity var(--mobile-press)}}@media (max-width: 767px){html :where(.btn-primary,html .button-primary,html button.primary){box-shadow:none}}@media (max-width: 767px){html :where(.btn-secondary,html .button-secondary,html .btn-outline,html .button-outline){background:var(--mobile-surface);border-color:var(--mobile-border-strong)}}@media (max-width: 767px){html :where(button,html .btn,html .button-link):active:not(:disabled){opacity:.86}}@media (max-width: 767px){html :where(button,html .btn,html .button-link,html [role=button]){-webkit-tap-highlight-color:transparent;transition-property:background-color,border-color,color,opacity;transition-duration:70ms;transform:none}}@media (max-width: 767px){html :where(button,html .btn,html .button-link,html [role=button]):active:not(:disabled){opacity:.84;transform:none;filter:none}}@media (max-width: 767px){html :where(.button-row,html .page-actions,html .card-actions,html .form-actions,html .panel-heading-actions)>:where(button,html .button-link,html .btn){min-height:44px}}@media (max-width: 379px){html :where(.button-row,html .page-actions,html .form-actions)>:where(button,html .button-link,html .btn){flex:1 1 100%;width:100%;justify-content:center}}html :where(button.btn-danger,html .btn-danger,html .danger){background:var(--color-error, #dc3545);color:#fff}html :where(button.btn-success,html .btn-success){background:var(--color-success, #28a745);color:#fff}@media (max-width: 767px){html .scope-toggle{width:100%}}@media (max-width: 767px){html .scope-toggle>button{flex:1 1 0;min-width:max-content}}@media (max-width: 767px){html :where(.panel-heading-actions,html .page-actions,html .button-row,html .form-actions,html .card-actions)>:where(button,html .btn,html .button-link,html a[class*=button]){min-height:44px}}@media (prefers-reduced-motion: reduce){html :where(button,html .btn,html .button-link,html .module-tabs,html .section-tabs,html .segmented-control,html .scope-toggle){transition-duration:.01ms}}@media (max-width: 379px){html .panel-heading-actions>.scope-toggle{width:100%}}html :where(input,html select,html textarea,html button,html a,html .btn,html .button-link){touch-action:manipulation}html :where(.table-wrap,html .table-responsive,html [class*=table-wrap],html [class*=table-container]){max-width:100%;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}@media (max-width: 767px){html :where(.panel-heading-actions)>:where(button,html a,html .btn,html .button-link){min-height:44px}}@media (max-width: 767px){html :where(button,html .btn,html .button-link,html [role=button]){transition-duration:70ms;box-shadow:none;transform:none}}@media (max-width: 767px){html :where(button,html .btn,html .button-link,html [role=button]):active:not(:disabled){opacity:.84}}
