@import"https://fonts.googleapis.com/css2?family=Lexend:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@600;700;800&display=swap";.shell-dock{position:fixed;right:20px;bottom:20px;z-index:var(--z-overlay);display:flex;flex-direction:column;gap:8px}.shell-dock-btn{width:44px;height:44px;margin:0;padding:0;display:grid;place-items:center;border-radius:999px;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary);box-shadow:var(--shadow);cursor:pointer}.shell-dock-btn svg{width:18px;height:18px}.shell-dock-btn:hover,.shell-dock-btn:focus-visible{border-color:var(--accent);color:var(--accent)}.shell-dock-btn.is-primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent, #fff)}.shell-dock-btn.is-primary:hover,.shell-dock-btn.is-primary:focus-visible{color:var(--text-on-accent, #fff);filter:brightness(1.05)}@media(max-width:899px){.shell-dock{right:12px;bottom:12px}}@media(max-width:390px){.shell-dock{right:10px;bottom:10px}}.command-menu-root{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:24px 16px}.command-menu-backdrop{position:absolute;inset:0;margin:0;padding:0;border:0;height:auto;width:auto;background:var(--overlay-soft);cursor:pointer}.command-menu-panel{position:relative;width:min(1080px,100%);max-height:min(88vh,820px);overflow:auto;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);padding:22px 22px 16px}.command-menu-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.command-menu-head h2{margin:0;font-family:var(--font-display);font-size:var(--text-lg);color:var(--text-primary)}.command-menu-sub{margin:4px 0 0;font-size:var(--text-sm);color:var(--text-muted)}.command-menu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 20px}.command-menu-block h3{margin:0 0 8px;font-size:var(--text-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.command-menu-block ul{list-style:none;margin:0;padding:0;display:grid;gap:4px}.command-menu-item{display:flex;align-items:flex-start;gap:10px;padding:8px 10px;border-radius:var(--radius-md);color:var(--text-secondary);text-decoration:none;min-height:40px}.command-menu-item svg{width:16px;height:16px;flex:none;margin-top:2px}.command-menu-item:hover,.command-menu-item.active{background:var(--accent-soft);color:var(--accent)}.command-menu-item-label{display:block;font-size:var(--text-sm);font-weight:600;color:inherit}.command-menu-item-hint{display:block;margin-top:2px;font-size:var(--text-xs);color:var(--text-muted);font-weight:400}.command-menu-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}.command-menu-cycle{margin-right:auto}@media(max-width:899px){.command-menu-root{padding:12px;align-items:stretch}.command-menu-panel{max-height:calc(100vh - 24px);padding:16px}.command-menu-grid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.command-menu-grid{grid-template-columns:1fr}}.pr-page{width:100%}.pr-card{width:min(400px,100%)}.pr-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.pr-field{margin:12px 0 0}.pr-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.pr-field input{width:100%}.pr-actions{margin-top:8px}.pr-back{display:block;width:100%;margin-top:10px;text-align:center;font-size:var(--text-sm);color:var(--accent);text-decoration:none}.pr-back:hover{text-decoration:underline}.pr-login-forgot{display:block;width:100%;margin-top:10px;text-align:center;font-size:var(--text-sm);color:var(--accent);text-decoration:none}.pr-login-forgot:hover{text-decoration:underline}.pr-code-box{margin:0 0 12px;padding:12px;border-radius:var(--radius, 12px);border:1px solid var(--border);background:var(--surface-2, var(--bg-elevated));text-align:center}.pr-code-value{font-family:var(--font-numeric, ui-monospace, monospace);font-size:1.6rem;font-weight:700;letter-spacing:.2em;color:var(--text-primary)}.pr-code-hint{margin:8px 0 0;font-size:var(--text-xs);color:var(--text-muted)}@media(max-width:768px){.pr-card{width:min(400px,100%)}.pr-actions .btn-block{width:100%}}@media(max-width:390px){.pr-page{padding:12px}.pr-card{width:100%}.pr-code-value{font-size:1.35rem;letter-spacing:.12em}}.ctx-help{position:relative}.ctx-help-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:var(--z-overlay);width:min(360px,calc(100vw - 32px));max-height:min(420px,calc(100vh - 120px));overflow:auto;padding:14px 16px 16px;background:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.ctx-help-panel:focus{outline:none}.ctx-help-panel:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus-ring);outline-offset:2px}.ctx-help-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.ctx-help-head h2{margin:0;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}.ctx-help-panel section+section{margin-top:12px}.ctx-help-panel h3{margin:0 0 4px;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.ctx-help-panel p,.ctx-help-panel li{margin:0;font-size:var(--text-sm);color:var(--text-primary);line-height:var(--leading-normal)}.ctx-help-panel ol,.ctx-help-panel ul{margin:0;padding-left:18px}.ctx-help-panel li+li{margin-top:4px}@media(max-width:768px){.ctx-help-panel{width:min(100vw - 24px,360px);right:auto;left:0}}@media(max-width:390px){.ctx-help-panel{width:calc(100vw - 24px);max-height:min(70vh,380px)}}.dash-cockpit{margin-bottom:var(--spacing-lg)}.dash-cockpit .kpi-card-sub{color:var(--text-secondary)}.dash-cockpit .dash-date{font-size:var(--text-sm);color:var(--text-secondary);margin:-4px 0 18px}.dash-priorities{margin:0 0 var(--spacing-lg)}.dash-priorities h2{margin:0 0 12px;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}.dash-coverage{margin:0 0 var(--spacing-lg)}.dash-coverage h2{margin:0;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}.dash-coverage-caption{margin:4px 0 12px;font-size:var(--text-xs);color:var(--text-secondary)}.dash-coverage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.dash-coverage-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;padding:10px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);border-left:3px solid var(--border)}.dash-coverage-item.state-observed{border-left-color:var(--info)}.dash-coverage-item.state-partial{border-left-color:var(--text-muted)}.dash-coverage-name{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.dash-coverage-state{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--text-secondary)}.dash-coverage-detail{grid-column:1 / -1;font-size:var(--text-xs);color:var(--text-muted)}.dash-priority-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.dash-priority{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px 16px;align-items:start;padding:14px 16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xs);border-left:3px solid var(--border)}.dash-priority.rank-urgent{border-left-color:var(--danger)}.dash-priority.rank-watch{border-left-color:var(--warning)}.dash-priority.rank-info{border-left-color:var(--info)}.dash-priority-rank{font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);padding-top:2px}.dash-priority-title{margin:0;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.dash-priority-detail,.dash-priority-qty,.dash-priority-note,.dash-priority-context,.dash-priority-access{margin:4px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.dash-priority-context,.dash-priority-access{color:var(--text-secondary)}.dash-priority-cta{font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--accent);text-decoration:none;white-space:nowrap;align-self:center}.dash-priority-cta:hover{text-decoration:underline}.dash-priority-empty{display:flex;flex-direction:column;gap:4px;margin:0;padding:14px 16px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--text-sm)}.dash-priority-empty strong{color:var(--text-primary);font-weight:var(--weight-semibold)}.dash-hero{display:grid;grid-template-columns:minmax(240px,.9fr) minmax(0,1.4fr);gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.dash-cockpit .dgrid{margin-bottom:var(--spacing-md)}.dash-cockpit .dpanel{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px 20px;box-shadow:var(--shadow-sm);min-width:0}.dash-cockpit .dpanel h3{margin:0;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}.dash-cockpit .dash-reading-kind,.dash-priorities .dash-reading-kind{margin:4px 0 0;font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.02em;color:var(--text-secondary)}.dash-receipt-brief .dash-reading-kind{margin:0 0 6px}.dash-cockpit .cap{font-size:var(--text-xs);color:var(--text-muted);margin:4px 0 16px}.dash-cockpit .dchartbox{height:240px;position:relative}.dash-cockpit .gaugewrap{height:220px;max-width:260px;margin:0 auto}.dash-cockpit .gaugelab{position:absolute;left:50%;bottom:36px;transform:translate(-50%);text-align:center;pointer-events:none}.dash-cockpit .gaugelab .g{font-family:var(--font-numeric);font-weight:var(--weight-extrabold);font-size:var(--text-xl);line-height:1;color:var(--text-primary);font-variant-numeric:tabular-nums}.dash-cockpit .gaugelab .g small{font-size:var(--text-base);color:var(--text-secondary)}.dash-cockpit .gaugelab .t{margin-top:6px;font-size:var(--text-xs);color:var(--text-muted)}.dash-cockpit .alert-list{display:flex;flex-direction:column;gap:8px;max-height:260px;overflow:auto}.dash-cockpit .alert-empty{font-size:var(--text-sm);color:var(--text-secondary);padding:8px 0}.dash-cockpit .alert-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-primary)}.dash-cockpit .alert-item.level-danger{background:var(--danger-soft)}.dash-cockpit .alert-item.level-warning{background:var(--warning-soft)}.dash-cockpit .appel-miss td{color:var(--warning)}.dash-threshold-key{margin:10px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.dash-trend-panel{margin-bottom:var(--spacing-md)}.dash-trend-reading{margin:-8px 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.dash-trend-brief{margin:-4px 0 16px;padding:14px 16px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);border-left:3px solid var(--border)}.dash-trend-brief.tone-success{border-left-color:var(--success)}.dash-trend-brief.tone-warning{border-left-color:var(--warning)}.dash-trend-brief.tone-info{border-left-color:var(--info)}.dash-trend-brief.tone-muted{border-left-color:var(--border)}.dash-trend-brief-signal{margin:0;font-size:var(--text-md);font-weight:var(--weight-semibold);color:var(--text-primary)}.dash-trend-brief-delta{margin:6px 0 0;font-family:var(--font-numeric);font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--text-primary)}.dash-trend-brief-period,.dash-trend-brief-note{margin:4px 0 0;font-size:var(--text-xs);color:var(--text-secondary)}.dash-cockpit .dchartbox.dash-trend-chart{height:260px}.dash-academic-brief{margin:0 0 14px;padding:12px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);border-left:3px solid var(--info)}.dash-academic-brief.kind-insufficient{border-left-color:var(--border)}.dash-academic-signal{margin:0;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.dash-academic-note{margin:4px 0 0;font-size:var(--text-xs);color:var(--text-secondary)}.dash-receipt-brief{margin:0 0 14px;padding:12px 14px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);border-left:3px solid var(--info)}.dash-receipt-brief.kind-empty-paid,.dash-receipt-brief.kind-single{border-left-color:var(--border)}.dash-receipt-signal{margin:0;font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-primary)}.dash-receipt-note,.dash-receipt-caption{margin:4px 0 0;font-size:var(--text-xs);color:var(--text-secondary)}@media(max-width:1100px){.dash-hero{grid-template-columns:1fr}.dash-priority{grid-template-columns:auto minmax(0,1fr)}.dash-priority-cta{grid-column:2;justify-self:start}}@media(max-width:768px){.dash-cockpit .dpanel{padding:14px 14px 16px}.dash-cockpit .dchartbox,.dash-cockpit .gaugewrap{height:210px}}@media(max-width:390px){.dash-cockpit .dpanel,.dash-priority{padding:12px}}.qa-page{margin-bottom:var(--spacing-lg)}.qa-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.qa-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface, var(--bg-surface))}.qa-field{margin:0 0 12px}.qa-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.qa-field select{width:min(280px,100%)}.qa-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.qa-item h3{margin:0 0 8px;font-size:var(--text-sm);color:var(--text-muted)}.qa-item p{margin:0;color:var(--text-primary)}.qa-link{display:inline-block;margin-top:8px;font-size:var(--text-sm);color:var(--accent);text-decoration:none}.qa-link:hover{text-decoration:underline}@media(max-width:768px){.qa-grid{grid-template-columns:1fr}.qa-field select{width:100%}}@media(max-width:390px){.qa-page{padding:0}.qa-card{padding:12px}}.portal-section{margin-bottom:var(--spacing-lg)}.portal-section h2{margin:0 0 8px;font-size:var(--text-md)}.portal-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.45}.portal-status{margin:0 0 12px;font-size:var(--text-sm)}.portal-flags{display:grid;gap:10px;margin:0 0 14px}.portal-check{display:flex;align-items:flex-start;gap:8px;font-size:var(--text-sm);line-height:1.4}.portal-check input{margin-top:2px}.portal-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.portal-field{margin:0 0 10px}.portal-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.portal-field input{width:100%}.portal-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.portal-creds{margin:12px 0 0;padding:12px;border:1px solid var(--border);border-radius:8px;background:var(--surface-raised, transparent)}.portal-creds p{margin:0 0 8px;font-size:var(--text-sm)}.portal-creds code{display:block;word-break:break-all;font-size:.92rem}.portal-link-status{display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm)}@media(max-width:768px){.portal-actions button,.portal-actions a{flex:1 1 140px}}@media(max-width:390px){.portal-section{padding:0}.portal-grid{grid-template-columns:1fr}}.license-page{margin-bottom:var(--spacing-lg)}.license-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.license-card{margin:0 0 16px}.license-message{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.license-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:0}.license-dl div{margin:0}.license-dl dt{font-size:var(--text-xs);color:var(--text-muted)}.license-dl dd{margin:2px 0 0;font-weight:600}.license-field{margin:0 0 12px}.license-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.license-field input{width:100%}.license-machine-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.license-machine-row input{flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:var(--text-md);letter-spacing:1px;padding:8px 12px;background:var(--surface-muted, var(--surface));border:1px solid var(--border);border-radius:var(--radius, 8px);-webkit-user-select:all;user-select:all}.license-machine-row button{display:inline-flex;align-items:center;gap:6px}.license-hint{margin:10px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.license-form .primary{margin-top:4px}@media(max-width:768px){.license-dl{grid-template-columns:1fr}.license-machine-row button,.license-form .primary{width:100%}}@media(max-width:390px){.license-page{padding:14px}.license-machine-row input{width:100%;word-break:break-all}}.est-page{margin-bottom:var(--spacing-lg)}.est-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.est-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.est-current{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-muted)}.est-field{margin:12px 0}.est-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.est-field input{width:100%}.est-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}@media(max-width:768px){.est-actions{width:100%}.est-actions button{flex:1 1 140px}}@media(max-width:390px){.est-page{padding:0}.est-actions button{width:100%;flex:1 1 100%}}.app-dialog-root{position:fixed;inset:0;z-index:var(--z-modal);display:flex;align-items:flex-end;justify-content:center;padding:var(--space-3);font-family:var(--font-sans)}.app-dialog-backdrop{position:absolute;inset:0;border:0;margin:0;padding:0;width:auto;height:auto;background:var(--overlay);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:pointer;animation:app-dialog-fade var(--motion-normal)}.app-dialog-backdrop:disabled{cursor:default}.app-dialog-panel{position:relative;display:flex;flex-direction:column;width:100%;max-width:380px;max-height:min(640px,calc(100dvh - 24px));margin:0;padding:0;overflow:hidden;background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-lg) var(--radius-lg) var(--radius-md) var(--radius-md);box-shadow:var(--shadow-lg);animation:app-dialog-in var(--motion-normal)}.app-dialog-panel.size-md{max-width:520px}.app-dialog-panel.size-lg{max-width:720px}.app-dialog-header{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-5) var(--space-5) var(--space-3);flex-shrink:0}.app-dialog-header-main{min-width:0;flex:1;text-align:left}.app-dialog-icon{width:40px;height:40px;border-radius:var(--radius-full);display:grid;place-items:center;flex-shrink:0;background:var(--accent-soft);color:var(--accent)}.app-dialog-icon svg{width:22px;height:22px}.app-dialog-panel.tone-danger .app-dialog-icon{background:var(--danger-soft);color:var(--danger)}.app-dialog-panel.tone-success .app-dialog-icon{background:var(--success-soft);color:var(--success)}.app-dialog-panel.tone-warning .app-dialog-icon,.app-dialog-panel.tone-primary .app-dialog-icon{background:var(--warning-soft);color:var(--warning)}.app-dialog-title{margin:0;font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold);line-height:var(--leading-tight);color:var(--text-primary)}.app-dialog-description{margin:var(--space-2) 0 0;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--text-secondary)}.app-dialog-close{flex-shrink:0}.app-dialog-body{padding:0 var(--space-5) var(--space-4);overflow:auto;min-height:0;flex:1 1 auto;font-size:var(--text-sm);color:var(--text-primary)}.app-dialog-body:empty{display:none}.app-dialog-footer{display:flex;flex-wrap:wrap;gap:var(--space-2);padding:var(--space-3) var(--space-5) var(--space-5);flex-shrink:0;border-top:1px solid var(--border);background:var(--bg-elevated)}.app-dialog-footer:empty{display:none}.app-dialog-footer>button{flex:1 1 8rem;margin:0;min-height:40px}.app-dialog-panel.layout-center .app-dialog-header,.app-dialog-panel.layout-center .app-dialog-header-main,.app-dialog-panel.layout-center .app-dialog-body{text-align:center}.app-dialog-panel.layout-center .app-dialog-header{flex-direction:column;align-items:center}.app-dialog-panel.layout-center .app-dialog-icon{margin:0 auto}@keyframes app-dialog-fade{0%{opacity:0}to{opacity:1}}@keyframes app-dialog-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(min-width:640px){.app-dialog-root{align-items:center;padding:var(--space-6)}.app-dialog-panel{border-radius:var(--radius-xl);max-height:min(720px,calc(100vh - 48px))}.app-dialog-panel.layout-center .app-dialog-footer>button{flex:1}}@media(max-width:390px){.app-dialog-root{padding:var(--space-2)}.app-dialog-header,.app-dialog-body,.app-dialog-footer{padding-left:var(--space-4);padding-right:var(--space-4)}.app-dialog-footer>button{flex:1 1 100%}}@media(prefers-reduced-motion:reduce){.app-dialog-backdrop,.app-dialog-panel{animation:none}}.student-form{margin-bottom:var(--spacing-lg)}.student-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.student-form-section{margin:16px 0 0;font-size:var(--text-sm);font-weight:700;font-family:var(--font-display)}.student-form-field{min-width:0}.student-form-field label{margin-top:10px}.student-form-hint{margin:4px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.student-form-error{margin:4px 0 0;font-size:var(--text-xs);color:var(--danger)}.student-form-field.is-invalid input,.student-form-field.is-invalid select{border-color:var(--danger)}.student-form-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.student-form-actions button{margin:0}.student-form-confirm{margin-top:16px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--warning-soft)}.student-form-confirm p{margin:0 0 8px;font-size:var(--text-sm)}.student-form-confirm .student-form-hint{margin-bottom:12px}.student-form-readonly{margin:0 0 8px;font-size:var(--text-sm);color:var(--text-secondary)}.student-form-empty{margin-top:8px}.student-detail-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.student-detail-actions button{margin:0}@media(max-width:640px){.student-form-grid{grid-template-columns:1fr}}@media(max-width:390px){.student-form{padding:14px}.student-form-actions{flex-direction:column}.student-form-actions button,.student-detail-actions{width:100%}.student-detail-actions button{flex:1;min-width:0}}.class-form{margin-bottom:var(--spacing-lg)}.class-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.class-form-section{margin:16px 0 0;font-size:var(--text-sm);font-weight:700;font-family:var(--font-display)}.class-form-field{min-width:0}.class-form-field label{margin-top:10px}.class-form-hint{margin:4px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.class-form-error{margin:4px 0 0;font-size:var(--text-xs);color:var(--danger)}.class-form-field.is-invalid input,.class-form-field.is-invalid select{border-color:var(--danger)}.class-form-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.class-form-actions button{margin:0}.class-form-confirm{margin-top:16px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--warning-soft)}.class-form-confirm p{margin:0 0 8px;font-size:var(--text-sm)}.class-form-confirm .class-form-hint{margin-bottom:12px}.class-form-empty{margin-top:8px}.year-strip{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.year-chip{display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0;max-width:100%;height:auto;margin:0;padding:8px 12px;text-align:left;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);color:inherit;cursor:pointer}.year-chip:hover{border-color:var(--color-primary)}.year-chip.is-selected{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary);background:var(--color-primary-soft)}.year-chip-label{font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:var(--text-sm)}.year-chip-meta{font-size:var(--text-xs);color:var(--text-muted)}.year-chip.is-open .year-chip-meta{color:var(--accent);font-weight:600}.reference-subjects{margin:8px 0 0;padding-left:1.15em;color:var(--text-primary)}.reference-subjects li+li{margin-top:4px}@media(max-width:640px){.class-form-grid{grid-template-columns:1fr}.class-form-actions{width:100%}.year-chip{min-height:44px}}@media(max-width:390px){.class-form{padding:14px}.class-form-actions{flex-direction:column}.class-form-actions button,.year-chip{width:100%}}.levels-page{margin-bottom:var(--spacing-lg)}.levels-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.levels-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:0 0 16px}.levels-card{margin:0;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.levels-card h2{margin:0 0 12px;font-size:var(--text-md)}.levels-cycle{padding:10px 0;border-top:1px solid var(--border)}.levels-cycle:first-of-type{border-top:0}.levels-cycle header{display:flex;justify-content:space-between;gap:8px;align-items:center}.levels-cycle.is-current{background:var(--surface-muted, transparent)}.levels-muted{margin:4px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.levels-chips,.levels-section-list{list-style:none;margin:8px 0 0;padding:0}.levels-chips{display:flex;flex-wrap:wrap;gap:6px}.levels-chips li,.levels-section-row{border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:var(--text-xs)}.levels-section-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;align-items:center;border-radius:10px;padding:10px 12px;margin-top:8px}.levels-actions{display:flex;flex-wrap:wrap;gap:8px}.levels-field{margin:0 0 10px}.levels-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.levels-edit{margin-bottom:16px}@media(max-width:768px){.levels-grid,.levels-section-row{grid-template-columns:1fr}.levels-actions button{width:100%}}@media(max-width:390px){.levels-page,.levels-card{padding:14px}.levels-field input,.levels-field select,.levels-card button{width:100%}}.subjects-page{margin-bottom:var(--spacing-lg)}.subjects-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.45}.subjects-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.subjects-card h2{margin:0 0 12px;font-size:var(--text-md)}.subjects-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.subjects-field{margin:0 0 10px}.subjects-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.subjects-field input,.subjects-field select{width:100%}.subjects-result{margin:12px 0 0;padding:12px;border:1px solid var(--border);border-radius:8px}.subjects-result p{margin:0 0 6px;font-size:var(--text-sm)}.subjects-result code{word-break:break-all}@media(max-width:768px){.subjects-grid{grid-template-columns:1fr}}@media(max-width:390px){.subjects-page{padding:0}.subjects-card{padding:14px}.subjects-card button{width:100%}}.prom-page{margin-bottom:var(--spacing-lg)}.prom-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.prom-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.prom-card h2{margin:0 0 8px;font-size:var(--text-md)}.prom-list{list-style:none;margin:0;padding:0}.prom-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;align-items:center;padding:12px 0;border-top:1px solid var(--border)}.prom-item:first-child{border-top:0}.prom-name{font-weight:600}.prom-sub{margin:2px 0 0;font-size:var(--text-sm);color:var(--text-muted)}.prom-actions{display:flex;flex-wrap:wrap;gap:8px}.prom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 12px}.prom-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.prom-field input{width:100%}@media(max-width:768px){.prom-item,.prom-grid{grid-template-columns:1fr}.prom-actions button{width:100%}}@media(max-width:390px){.prom-page{padding:0}.prom-actions button{width:100%}}.staff-directory{margin-bottom:var(--spacing-lg)}.staff-directory .card-title{margin-bottom:6px}.staff-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.staff-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.staff-form-field{min-width:0}.staff-form-field label{margin-top:10px}.staff-form-hint{margin:4px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.staff-form-error{margin:4px 0 0;font-size:var(--text-xs);color:var(--danger)}.staff-form-field.is-invalid input,.staff-form-field.is-invalid select{border-color:var(--danger)}.staff-form-check{display:flex;align-items:center;gap:8px;margin-top:14px;grid-column:1 / -1}.staff-form-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.staff-form-actions button{margin:0}.staff-row-actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.staff-row-actions a,.staff-row-actions button{margin:0}.staff-dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:0 0 16px}.staff-dl dt{margin:0;font-size:var(--text-xs);color:var(--text-muted)}.staff-dl dd{margin:2px 0 0;font-size:var(--text-sm)}@media(max-width:768px){.staff-directory .toolbar{flex-direction:column;align-items:stretch}.staff-form-grid,.staff-dl{grid-template-columns:1fr}}@media(max-width:390px){.staff-directory{padding:14px}.staff-form-actions,.staff-row-actions{flex-direction:column}.staff-form-actions button,.staff-row-actions a,.staff-row-actions button{width:100%}}.staff-att{margin-bottom:var(--spacing-lg)}.staff-att-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.staff-att-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.staff-att-tabs button{margin:0}.staff-att-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}.staff-att-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,2fr);gap:12px 16px;padding:12px 0;border-top:1px solid var(--border)}.staff-att-identity{min-width:0}.staff-att-identity .rollname{font-weight:600}.staff-att-identity .rollsub{margin-top:2px;font-size:var(--text-xs);color:var(--text-muted)}.staff-att-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.staff-att-form .staff-form-field{min-width:110px}.staff-att-form label{margin-top:0}.staff-att-month-scroll{overflow-x:auto}.staff-att-month-table th,.staff-att-month-table td{text-align:center;white-space:nowrap}.staff-att-month-table th:first-child,.staff-att-month-table td:first-child{text-align:left;position:sticky;left:0;background:var(--surface)}.staff-att-cell{font-size:var(--text-xs)}.staff-att-cell.present{color:var(--success)}.staff-att-cell.absent{color:var(--danger)}.staff-att-cell.late{color:var(--warning)}.staff-att-cell.excused{color:var(--info)}.staff-att-cell.holiday,.staff-att-cell.empty.holiday{background:var(--warning-soft)}@media(max-width:768px){.staff-att .toolbar{flex-direction:column;align-items:stretch}.staff-att-row{grid-template-columns:1fr}}@media(max-width:390px){.staff-att{padding:14px}.staff-att-form,.staff-att-tabs{flex-direction:column}.staff-att-form button,.staff-att-tabs button{width:100%}}.trash-page{margin-bottom:var(--spacing-lg)}.trash-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.trash-toolbar{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;margin:0 0 16px}.trash-filters{display:flex;flex-wrap:wrap;gap:8px}.trash-filters button{margin:0}.trash-count{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.trash-list{list-style:none;margin:0;padding:0}.trash-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;align-items:center;padding:12px 0;border-top:1px solid var(--border)}.trash-item-name{font-weight:600}.trash-item-sub{margin:2px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.trash-footnote{margin:16px 0 0;font-size:var(--text-xs);color:var(--text-muted)}@media(max-width:768px){.trash-item{grid-template-columns:1fr}.trash-item button{width:100%}}@media(max-width:390px){.trash-page{padding:14px}.trash-filters{flex-direction:column}.trash-filters button{width:100%}}.attendance-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}.attendance-lock-confirm{margin:0 0 16px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--warning-soft)}.attendance-lock-confirm p{margin:0 0 8px;font-size:var(--text-sm)}.attendance-lock-hint{margin:0 0 12px;font-size:var(--text-xs);color:var(--text-muted)}.attendance-lock-actions{display:flex;flex-wrap:wrap;gap:8px}.attendance-lock-actions button{margin:0}.attendance-row-status{min-width:0}.attendance-limit{margin:12px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.attendance-seg{display:flex;flex-wrap:wrap;gap:6px}.attendance-seg .seg-btn{min-width:0;flex:1 1 auto}.attendance-history{margin:16px 0 0}.attendance-history h2{margin:0 0 8px;font-size:var(--text-sm)}.attendance-history-list{margin:0;padding-left:1.2em;font-size:var(--text-sm)}.attendance-history-list li{margin:0 0 4px}@media(max-width:899px){.attendance-desktop-table{display:none}}@media(max-width:390px){.attendance-lock-actions,.attendance-seg{flex-direction:column;align-items:stretch}.attendance-lock-actions button,.attendance-seg .seg-btn{width:100%}}.th-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface, var(--bg-surface))}.th-field{margin:0 0 12px}.th-field label{display:block;margin:0 0 4px;font-size:var(--text-sm);color:var(--text-primary)}.th-field select{width:min(280px,100%)}.th-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.th-item h3{margin:0 0 8px;font-size:var(--text-sm);color:var(--text-muted)}.th-item p{margin:0;color:var(--text-primary)}.th-muted{margin-top:6px;font-size:var(--text-sm);color:var(--text-muted)}.th-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px}.th-link{display:inline-block;font-size:var(--text-sm);color:var(--accent);text-decoration:none}.th-link:hover{text-decoration:underline}@media(max-width:768px){.th-grid{grid-template-columns:1fr}.th-field select{width:100%}}@media(max-width:390px){.th-page{padding:0}.th-card{padding:12px}.th-links{gap:8px}}.tt-page{margin-bottom:var(--spacing-lg)}.tt-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.tt-toolbar{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin:0 0 12px}.tt-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.tt-week-nav{display:flex;flex-wrap:wrap;gap:8px}.tt-muted{margin:0 0 12px;font-size:var(--text-xs);color:var(--text-muted)}.tt-warn{margin:0 0 12px;font-size:var(--text-sm);color:var(--warning, #b45309)}.tt-form{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.tt-form h2{margin:0 0 8px;font-size:var(--text-md)}.tt-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.tt-wrap{overflow-x:auto}.tt-grid{width:100%;min-width:720px;border-collapse:collapse}.tt-grid th,.tt-grid td{border:1px solid var(--border);padding:8px;vertical-align:top;min-width:96px}.tt-grid th:first-child,.tt-grid td:first-child{min-width:72px;position:sticky;left:0;background:var(--surface);z-index:1}.tt-hol{display:block;font-size:var(--text-xs);color:var(--warning, #b45309)}.tt-break{background:var(--surface-muted, transparent);color:var(--text-muted);text-align:center}.tt-holiday{background:var(--warning-soft, transparent)}.tt-slot,.tt-empty{display:flex;flex-direction:column;gap:2px;width:100%;margin:0;text-align:left;font-size:var(--text-xs)}.tt-slot.kind-catchup,.tt-slot.kind-extra{border-style:dashed}@media(max-width:768px){.tt-toolbar{flex-direction:column;align-items:stretch}.tt-week-nav button,.tt-actions button{width:100%}}@media(max-width:390px){.tt-page{padding:14px}.tt-field input,.tt-field select,.tt-form button{width:100%}}.tl-page{margin-bottom:var(--spacing-lg)}.tl-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.tl-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.tl-filters{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.tl-table-wrap{overflow-x:auto}.tl-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.tl-table th,.tl-table td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--border)}.tl-table th{color:var(--text-muted);font-weight:600}.tl-badge{display:inline-block;padding:2px 8px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2, var(--surface))}.tl-field{margin:12px 0}.tl-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.tl-field input{width:100%}.tl-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.tl-hint{margin:0 0 8px;font-size:var(--text-sm);color:var(--text-muted)}@media(max-width:768px){.tl-actions{width:100%}.tl-actions button{flex:1 1 140px}.tl-table th:nth-child(3),.tl-table td:nth-child(3){display:none}}@media(max-width:390px){.tl-page{padding:0}.tl-actions button{width:100%;flex:1 1 100%}.tl-filters button{flex:1 1 calc(50% - 8px)}}.ts-page{margin-bottom:var(--spacing-lg)}.ts-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.ts-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.ts-current{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-muted)}.ts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}.ts-field{margin:0}.ts-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.ts-field input,.ts-field select{width:100%}.ts-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}@media(max-width:768px){.ts-grid{grid-template-columns:1fr}.ts-actions{width:100%}.ts-actions button{flex:1 1 140px}}@media(max-width:390px){.ts-page{padding:0}.ts-actions button{width:100%;flex:1 1 100%}}.wa-page{margin-bottom:var(--spacing-lg)}.wa-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.wa-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.wa-current{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-muted)}.wa-field{margin:12px 0}.wa-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.wa-field input{width:100%}.wa-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}@media(max-width:768px){.wa-actions{width:100%}.wa-actions button{flex:1 1 140px}}@media(max-width:390px){.wa-page{padding:0}.wa-actions button{width:100%;flex:1 1 100%}}.th-page{margin-bottom:var(--spacing-lg)}.th-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.th-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.th-current{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-muted)}.th-field{margin:12px 0}.th-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.th-field input,.th-field select{width:100%}.th-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}@media(max-width:768px){.th-actions{width:100%}.th-actions button{flex:1 1 140px}}@media(max-width:390px){.th-page{padding:0}.th-actions button{width:100%;flex:1 1 100%}}.smtp-page{margin-bottom:var(--spacing-lg)}.smtp-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.smtp-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.smtp-current{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-muted)}.smtp-hint{margin:4px 0 0;font-size:var(--text-sm);color:var(--text-muted)}.smtp-field{margin:12px 0}.smtp-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.smtp-field input{width:100%}.smtp-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}@media(max-width:768px){.smtp-actions{width:100%}.smtp-actions button{flex:1 1 140px}}@media(max-width:390px){.smtp-page{padding:0}.smtp-actions button{width:100%;flex:1 1 100%}}.cur-page{margin-bottom:var(--spacing-lg)}.cur-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.cur-toolbar{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin:0 0 12px}.cur-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.cur-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.cur-muted{margin:0 0 12px;font-size:var(--text-xs);color:var(--text-muted)}.cur-warn{margin:0 0 12px;font-size:var(--text-sm);color:var(--warning, #b45309)}.cur-form{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.cur-form h2,.cur-form h3{margin:0 0 8px;font-size:var(--text-md)}.cur-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.cur-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.cur-wrap{overflow-x:auto}.cur-table{width:100%;min-width:640px;border-collapse:collapse}.cur-table th,.cur-table td{border:1px solid var(--border);padding:8px;vertical-align:top;text-align:left}.cur-notes{display:block;margin-top:4px;font-size:var(--text-xs);color:var(--text-muted)}.cur-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:var(--text-xs);background:var(--surface-muted, transparent)}.cur-badge.status-done{color:var(--success, #15803d)}.cur-badge.status-skipped{color:var(--warning, #b45309)}.cur-print{margin:16px 0;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px)}.cur-print-meta{margin:0 0 8px;font-size:var(--text-sm)}@media(max-width:768px){.cur-toolbar{flex-direction:column;align-items:stretch}.cur-tabs button,.cur-actions button{width:100%}}@media(max-width:390px){.cur-page{padding:14px}.cur-field input,.cur-field select,.cur-form button{width:100%}}@media print{.screenhead,.cur-toolbar,.cur-tabs,.cur-form,.cur-actions,.headtools,.web-aside,.login-alert{display:none!important}.cur-print{border:0;padding:0}}.lp-page{margin-bottom:var(--spacing-lg)}.lp-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.lp-toolbar{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin:0 0 12px}.lp-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.lp-field textarea,.lp-field input,.lp-field select{width:100%}.lp-muted{margin:0 0 12px;font-size:var(--text-xs);color:var(--text-muted)}.lp-form{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.lp-form h2,.lp-detail h2{margin:0 0 8px;font-size:var(--text-md)}.lp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.lp-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.lp-wrap{overflow-x:auto}.lp-table{width:100%;min-width:520px;border-collapse:collapse}.lp-table th,.lp-table td{border:1px solid var(--border);padding:8px;vertical-align:top;text-align:left}.lp-detail{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px)}.lp-block{white-space:pre-wrap;margin:0 0 12px;font-size:var(--text-sm)}@media(max-width:768px){.lp-toolbar{flex-direction:column;align-items:stretch}.lp-actions button{width:100%}}@media(max-width:390px){.lp-page{padding:14px}.lp-field input,.lp-field select,.lp-field textarea,.lp-form button{width:100%}}.adv-page{margin-bottom:var(--spacing-lg)}.adv-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.adv-toolbar{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin:0 0 12px}.adv-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.adv-field textarea,.adv-field input,.adv-field select{width:100%}.adv-muted{margin:0 0 12px;font-size:var(--text-xs);color:var(--text-muted)}.adv-form,.adv-register{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.adv-form h2,.adv-register h2{margin:0 0 8px;font-size:var(--text-md)}.adv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.adv-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.adv-wrap{overflow-x:auto}.adv-table{width:100%;min-width:560px;border-collapse:collapse}.adv-table th,.adv-table td{border:1px solid var(--border);padding:8px;vertical-align:top;text-align:left}.adv-block{white-space:pre-wrap;margin:0 0 12px;font-size:var(--text-sm)}.adv-visit{margin:0 0 16px}@media(max-width:768px){.adv-toolbar{flex-direction:column;align-items:stretch}.adv-actions button{width:100%}}@media(max-width:390px){.adv-page{padding:14px}.adv-field input,.adv-field select,.adv-field textarea,.adv-form button{width:100%}}@media print{.screenhead,.adv-toolbar,.adv-form,.adv-actions,.headtools,.web-aside,.login-alert{display:none!important}.adv-register{border:0;padding:0}}.grade-corr{display:grid;gap:10px;min-width:0;margin:0}.grade-corr-current{margin:0;font-size:var(--text-sm);color:var(--text-secondary)}.grade-corr-field{min-width:0}.grade-corr-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.grade-corr-field input{width:100%;margin:0}.grade-corr-hint{margin:4px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.grade-corr-error{margin:4px 0 0;font-size:var(--text-xs);color:var(--danger)}.grade-corr-field.is-invalid input{border-color:var(--danger)}.grade-corr-actions{display:flex;flex-wrap:wrap;gap:8px}.grade-corr-actions button{margin:0}.grades-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}.grades-period-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px}.grades-close-confirm{margin:0 0 16px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--warning-soft)}.grades-close-confirm p{margin:0 0 8px;font-size:var(--text-sm)}.grades-close-confirm .grade-corr-hint{margin-bottom:12px}.grades-close-actions{display:flex;flex-wrap:wrap;gap:8px}.grades-close-actions button{margin:0}.grades-row-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.grades-row-actions button{margin:0}.grades-create{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.grades-create .grade-corr-field{flex:1 1 88px;min-width:88px}.grades-limit{margin:12px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.grades-history{margin:16px 0 0}.grades-history h2{margin:0 0 8px;font-size:var(--text-sm)}.grades-history-list{margin:0;padding-left:1.2em;font-size:var(--text-sm)}.grades-history-list li{margin:0 0 4px}@media(max-width:899px){.grades-desktop-table{display:none}}@media(max-width:390px){.grade-corr-actions,.grades-close-actions,.grades-row-actions,.grades-create{flex-direction:column;align-items:stretch}.grade-corr-actions button,.grades-close-actions button,.grades-row-actions button,.grades-create button{width:100%}}.bulletin-preview{position:relative;z-index:40}.bulletin-preview-scrim{position:fixed;inset:0;background:#0f172a75}.bulletin-preview-panel{position:fixed;inset:12px;overflow:auto;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;max-width:960px;margin:0 auto}.bulletin-preview-toolbar{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.bulletin-preview-toolbar button{margin:0}.bulletin-preview-dialog.app-dialog-panel.size-lg{max-width:min(960px,calc(100vw - 24px))}.bulletin-preview-dialog .app-dialog-body{padding-top:0}.bulletin-preview-body{display:flex;flex-direction:column;gap:var(--space-3)}.bulletin-preview-sheet-title{margin:0 0 4px;font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--weight-semibold)}.bulletin-preview-notice,.bulletin-print-limit{margin:0 0 12px}.bulletin-preview-notice{padding:var(--space-3);border-radius:var(--radius-md);background:var(--accent-soft);color:var(--text-secondary);font-size:var(--text-sm)}.bulletin-sheet{background:var(--bg-surface);color:var(--text)}.bulletin-sheet-head{margin:0 0 16px}.bulletin-kicker{margin:0 0 4px;font-size:var(--text-xs);letter-spacing:.08em;font-weight:700;color:var(--text-secondary)}.bulletin-sheet-head h2{margin:0 0 4px}.bulletin-sheet-head p{margin:0;color:var(--text-secondary)}.bulletin-identity{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px 16px;margin:0 0 16px}.bulletin-id-cell{margin:0;min-width:0}.bulletin-id-cell dt{margin:0;font-size:var(--text-xs);color:var(--text-muted)}.bulletin-id-cell dd{margin:2px 0 0;font-weight:600;overflow-wrap:anywhere}.bulletin-table-wrap{margin-bottom:16px}.bulletin-total td{font-weight:700}.bulletin-sheet-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:16px;font-size:var(--text-xs);color:var(--text-muted)}.bulletin-actions,.bulletin-close-confirm,.bulletin-history-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.bulletin-actions button,.bulletin-close-confirm button,.bulletin-history-actions button{margin:0}.bulletin-close-confirm{margin:0 0 16px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--warning-soft)}.bulletin-close-confirm p{margin:0 0 8px;font-size:var(--text-sm)}.bulletin-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}.bulletin-limit{font-size:var(--text-xs);color:var(--text-muted)}@media(max-width:768px){.bulletin-preview-panel{inset:0;border-radius:0}}@media print{.screenhead,.headtools,.toolbar,.app-dialog-backdrop,.app-dialog-footer,.app-dialog-close,.bulletin-preview-scrim,.bulletin-preview-toolbar,.bulletin-print-limit,.bulletin-preview-notice,.login-alert,.iconbtn{display:none!important}.app-dialog-root,.app-dialog-panel,.bulletin-preview-panel{position:static!important;inset:auto!important;overflow:visible!important;border:0!important;max-width:none!important;max-height:none!important;padding:0!important;box-shadow:none!important;background:#fff!important}.bulletin-preview-scrim{display:none}body{background:#fff}}.btpl-page{margin-bottom:var(--spacing-lg)}.btpl-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.btpl-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.btpl-card h2{margin:16px 0 8px;font-size:var(--text-md)}.btpl-current,.btpl-meta{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-muted)}.btpl-field{margin:12px 0}.btpl-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.btpl-field input{width:100%}.btpl-table-wrap{overflow-x:auto}.btpl-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.btpl-table th,.btpl-table td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--border);vertical-align:top}.btpl-table input{width:100%}.btpl-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}@media(max-width:768px){.btpl-table th:first-child,.btpl-table td:first-child{min-width:140px}.btpl-actions{width:100%}.btpl-actions button{flex:1 1 140px}}@media(max-width:390px){.btpl-page{padding:0}.btpl-actions button{width:100%;flex:1 1 100%}}.pal-page{margin-bottom:var(--spacing-lg)}.pal-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.pal-toolbar{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin:0 0 12px}.pal-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.pal-field select{width:100%}.pal-muted{margin:0 0 12px;font-size:var(--text-xs);color:var(--text-muted)}.pal-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.pal-seal-banner{margin:12px 0 16px;padding:10px 14px;border-radius:var(--radius-md, 8px);border:1px solid var(--border);display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface)}.pal-seal-banner.is-published{background:var(--bg-success-soft, rgba(46, 125, 50, .08));border-color:var(--border-success, rgba(46, 125, 50, .3))}.pal-seal-banner.is-draft{background:var(--bg-warning-soft, rgba(237, 108, 2, .08));border-color:var(--border-warning, rgba(237, 108, 2, .3))}.pal-seal-meta{font-size:var(--text-sm, 13px);color:var(--text-secondary)}.pal-wrap{overflow-x:auto}.pal-table{width:100%;min-width:640px;border-collapse:collapse}.pal-table th,.pal-table td{border:1px solid var(--border);padding:8px;vertical-align:top;text-align:left}.pal-table th:first-child,.pal-table td:first-child{width:4rem}@media(max-width:768px){.pal-toolbar{flex-direction:column;align-items:stretch}.pal-actions button{width:100%}}@media(max-width:390px){.pal-page{padding:14px}.pal-field input,.pal-field select,.pal-actions button{width:100%}}@media print{.screenhead,.pal-toolbar,.pal-actions,.headtools,.web-aside,.login-alert{display:none!important}}.fc-page{margin-bottom:var(--spacing-lg)}.fc-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.fc-toolbar{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin:0 0 12px}.fc-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.fc-field select{width:100%}.fc-muted{margin:0 0 12px;font-size:var(--text-xs);color:var(--text-muted)}.fc-actions{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.fc-wrap{overflow-x:auto}.fc-table{width:100%;min-width:920px;border-collapse:collapse}.fc-table th,.fc-table td{border:1px solid var(--border);padding:8px;vertical-align:top;text-align:left}.fc-table th:first-child,.fc-table td:first-child{width:3rem}@media(max-width:768px){.fc-toolbar{flex-direction:column;align-items:stretch}.fc-actions button{width:100%}}@media(max-width:390px){.fc-page{padding:14px}.fc-field input,.fc-field select,.fc-actions button{width:100%}}@media print{.screenhead,.fc-toolbar,.fc-actions,.headtools,.web-aside,.login-alert{display:none!important}}.qb-page{margin-bottom:var(--spacing-lg)}.qb-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.qb-toolbar{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin:0 0 12px}.qb-field{min-width:min(100%,280px);flex:1}.qb-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.qb-field select{width:100%}.qb-muted{margin:0 0 12px;font-size:var(--text-xs);color:var(--text-muted)}.qb-prompt{white-space:pre-wrap;margin:0 0 12px;font-size:var(--text-sm)}.qb-wrap{overflow-x:auto}.qb-table{width:100%;min-width:420px;border-collapse:collapse;margin:0 0 12px}.qb-table th,.qb-table td{border:1px solid var(--border);padding:8px;vertical-align:top;text-align:left}.qb-stats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}.qb-field textarea,.qb-field input{width:100%}.qb-create,.qb-detail,.qb-list{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.qb-create h2,.qb-detail h2,.qb-list h2{margin:0 0 8px;font-size:var(--text-md)}.qb-form{display:grid;gap:12px}.qb-choices{position:relative;margin:0;padding:12px;border:1px solid var(--border);border-radius:var(--radius, 8px)}.qb-choices legend{font-size:var(--text-sm)}.qb-choice-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 8px}.qb-choice-row input[type=text]{flex:1;min-width:140px}.qb-choice-row input[type=checkbox]{width:auto;height:auto}.qb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.qb-publish{margin-top:12px}.qb-row{display:flex;gap:8px;align-items:flex-start;width:100%;text-align:left;margin:0 0 8px;padding:10px}.qb-row.active{outline:2px solid var(--accent, var(--border))}.qb-row-main{flex:1}.qb-row-meta{display:block;margin:4px 0 0;font-size:var(--text-xs);color:var(--text-muted)}@media(max-width:768px){.qb-toolbar{flex-direction:column;align-items:stretch}.qb-row,.qb-choice-row button,.qb-form .primary,.qb-publish .primary{width:100%}}@media(max-width:390px){.qb-page{padding:14px}.qb-field select,.qb-row{width:100%}}.fee-catalog-actions{display:flex;align-items:flex-end;gap:8px}.fee-catalog-amount{display:inline-flex;align-items:center;gap:6px;margin:0 8px 6px 0}.fee-catalog-trash{font-size:var(--text-xs);margin:0}.fee-catalog-form{margin-top:12px}.fee-catalog-check{display:flex;align-items:center;gap:8px}@media(max-width:768px){.fee-catalog .toolbar{flex-direction:column;align-items:stretch}}@media(max-width:390px){.fee-catalog-actions,.fee-catalog-amount{flex-direction:column;align-items:stretch}.fee-catalog-actions button,.fee-catalog-trash{width:100%}}.finance-desk{display:grid;gap:16px}.finance-scan-row{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.finance-scan-row textarea{min-height:64px;flex:1 1 220px;resize:vertical}.finance-scan-actions{display:flex;flex-wrap:wrap;gap:8px}.finance-scan-actions button{margin:0}.finance-video{width:100%;max-height:220px;background:#000;border-radius:var(--radius-md);object-fit:cover}.finance-results{width:100%}.finance-results button.row-btn{display:block;width:100%;text-align:left;margin:0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;padding:0}.finance-results tr.is-selected td{background:var(--accent-soft)}.finance-pay-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.finance-pay-grid label{margin-top:10px}.finance-pay-hint{margin:8px 0 0;font-size:var(--text-xs);color:var(--text-muted)}.finance-pay-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.finance-pay-actions button{margin:0}.finance-receipt{margin-top:12px;padding:14px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated)}.finance-receipt h3{margin:0 0 8px}.finance-receipt dl{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr);gap:6px 12px;margin:0}.finance-receipt dt{color:var(--text-muted);font-size:var(--text-xs)}.finance-receipt dd{margin:0;font-weight:600}.finance-offcycle{margin:0 0 12px;font-size:var(--text-xs);color:var(--text-muted)}tr.finance-payment-cancelled td{color:var(--text-muted)}tr.finance-payment-cancelled .finance-payment-status{text-decoration:line-through}tr.finance-payment-reversal td{color:var(--text-muted)}tr.finance-payment-reversal .finance-payment-status{font-style:italic}.finance-institutional table{font-size:var(--text-sm)}.finance-institutional-sub{margin:16px 0 8px;font-size:var(--text-sm);font-weight:700}.finance-sch-actions{display:flex;flex-wrap:wrap;gap:6px}.finance-sch-actions button{margin:0}.finance-sch-detail,.finance-sch-form{margin-top:12px}.finance-sch-reason{grid-column:1 / -1}@media(max-width:768px){.finance-pay-grid,.finance-receipt dl{grid-template-columns:1fr}}@media(max-width:390px){.finance-scan-actions,.finance-pay-actions,.finance-sch-actions{flex-direction:column;align-items:stretch}.finance-scan-actions button,.finance-pay-actions button,.finance-sch-actions button{width:100%}}@media print{.screenhead,.headtools,.toolbar,.login-alert,.finance-print-hide,.web-aside,.iconbtn{display:none!important}.finance-receipt{border:0;background:#fff;position:static}body{background:#fff}}.fx-page{margin-bottom:var(--spacing-lg)}.fx-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.fx-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.fx-current{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-muted)}.fx-field{margin:12px 0}.fx-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.fx-field input{width:100%}.fx-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}@media(max-width:768px){.fx-actions{width:100%}.fx-actions button{flex:1 1 140px}}@media(max-width:390px){.fx-page{padding:0}.fx-actions button{width:100%;flex:1 1 100%}}.budget-page .tablist{margin-bottom:12px}@media(max-width:768px){.budget-page .finance-pay-grid{grid-template-columns:1fr}}@media(max-width:390px){.budget-page .finance-pay-actions button{width:100%}}.payroll-page{margin-bottom:var(--spacing-lg)}.payroll-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.payroll-toolbar{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin:0 0 12px}.payroll-field{min-width:min(100%,280px);flex:1}.payroll-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.payroll-field select{width:100%}.payroll-hint{margin:8px 0 0;font-size:var(--text-sm);color:var(--text-secondary)}.payroll-list,.payroll-detail{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.payroll-list h2,.payroll-detail h2{margin:0 0 8px;font-size:var(--text-md)}.payroll-cycle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:0 0 12px}.payroll-cycle-card{display:flex;flex-direction:column;gap:6px;width:100%;text-align:left;padding:12px;border:1px solid var(--border);border-radius:var(--radius, 8px);background:var(--surface-sunken, var(--surface));color:inherit;cursor:pointer}.payroll-cycle-card.active{outline:2px solid var(--accent, var(--border))}.payroll-cycle-card .payroll-cycle-month{font-weight:600}.payroll-cycle-meta{display:block;font-size:var(--text-xs);color:var(--text-muted)}.payroll-dl{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px 16px;margin:0 0 16px}.payroll-dl div{margin:0}.payroll-dl dt{margin:0 0 2px;font-size:var(--text-xs);color:var(--text-muted)}.payroll-dl dd{margin:0;font-size:var(--text-sm)}.payroll-wrap{overflow-x:auto}.payroll-table{width:100%;min-width:520px;border-collapse:collapse;margin:0 0 12px}.payroll-table th,.payroll-table td{border:1px solid var(--border);padding:8px;vertical-align:top;text-align:left;white-space:nowrap}.payroll-table th:first-child,.payroll-table td:first-child{white-space:normal}.payroll-table .num{text-align:right;font-variant-numeric:tabular-nums}.payroll-actions{margin-top:12px}.payroll-notfound{margin:0 0 16px}@media(max-width:768px){.payroll-toolbar{flex-direction:column;align-items:stretch}.payroll-cycle-grid{grid-template-columns:1fr 1fr}.payroll-actions .primary,.payroll-notfound .secondary{width:100%}}@media(max-width:390px){.payroll-page{padding:0}.payroll-cycle-grid{grid-template-columns:1fr}.payroll-field select,.payroll-cycle-card{width:100%}.payroll-table{min-width:460px}}.comm-page{margin-bottom:var(--spacing-lg)}.comm-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.comm-toolbar{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:flex-end;margin:0 0 12px}.comm-field{min-width:min(100%,280px);flex:1}.comm-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.comm-field select,.comm-field textarea,.comm-field input{width:100%}.comm-hint{margin:8px 0 0;font-size:var(--text-sm);color:var(--text-secondary)}.comm-list,.comm-form{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.comm-list h2,.comm-form h2{margin:0 0 8px;font-size:var(--text-md)}.comm-form{display:grid;gap:12px}.comm-wrap{overflow-x:auto}.comm-table{width:100%;min-width:640px;border-collapse:collapse;margin:0 0 12px}.comm-table th,.comm-table td{border:1px solid var(--border);padding:8px;vertical-align:top;text-align:left}.comm-actions{margin-top:4px}.comm-msg-caption{margin-top:8px}.comm-msg-subtitle{margin:0 0 8px;font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.comm-msg-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:16px;align-items:start}.comm-thread-list{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:8px}.comm-thread-item{display:grid;gap:4px;width:100%;text-align:left;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface);color:inherit;cursor:pointer}.comm-thread-item.is-selected,.comm-thread-item[aria-pressed=true]{border-color:var(--accent, var(--primary));background:var(--accent-soft, color-mix(in srgb, var(--primary) 12%, var(--surface)))}.comm-thread-title{font-weight:600}.comm-thread-meta{font-size:var(--text-sm);color:var(--text-secondary)}.comm-thread-detail-head{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;margin-bottom:8px}.comm-back{flex:0 0 auto}.comm-msg-timeline{display:grid;gap:10px;max-height:min(420px,55vh);overflow-y:auto;margin:0 0 12px;padding:4px 2px}.comm-bubble{max-width:min(100%,520px);padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.comm-bubble.is-own{margin-left:auto;background:var(--accent-soft, color-mix(in srgb, var(--primary) 10%, var(--surface)))}.comm-bubble.is-theirs{margin-right:auto}.comm-bubble-head{display:flex;flex-wrap:wrap;gap:6px 10px;justify-content:space-between;margin:0 0 6px;font-size:var(--text-sm);color:var(--text-secondary)}.comm-bubble-body{margin:0;white-space:pre-wrap}.comm-thread-create,.comm-reply{margin:12px 0 0;padding:0;border:0;background:transparent}@media(max-width:768px){.comm-toolbar{flex-direction:column;align-items:stretch}.comm-actions .primary{width:100%}.comm-msg-layout{grid-template-columns:1fr}.comm-page.is-thread-open .comm-threads{display:none}.comm-back{width:100%}}@media(max-width:390px){.comm-page{padding:0}.comm-field select,.comm-field textarea{width:100%}.comm-table{min-width:520px}.comm-bubble{max-width:100%}}.comm-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin:16px 0}.comm-kpi-card{padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface);display:flex;flex-direction:column;gap:8px}.comm-kpi-title{font-size:var(--text-sm);color:var(--text-secondary);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.comm-kpi-value{font-size:1.8rem;font-weight:700;color:var(--text);line-height:1.1}.comm-kpi-sub{font-size:var(--text-sm);color:var(--text-secondary)}.comm-supervision-period{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0}.comm-help-card{margin:16px 0;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface-alt, var(--surface));font-size:var(--text-sm);line-height:1.5}.comm-help-card h4{margin:0 0 8px;font-size:var(--text-md)}.comm-help-card ul{margin:0;padding-left:20px}.comm-help-card li{margin-bottom:4px}.mreq-page{margin-bottom:var(--spacing-lg)}.mreq-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.mreq-meta{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0 0 16px;font-size:var(--text-sm);color:var(--text-secondary)}.mreq-meta p{margin:0}.mreq-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.mreq-card h2{margin:0 0 8px;font-size:var(--text-md)}.mreq-list{list-style:none;margin:0;padding:0}.mreq-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;align-items:center;padding:12px 0;border-top:1px solid var(--border)}.mreq-item:first-child{border-top:0}.mreq-name{font-weight:600}.mreq-sub{margin:2px 0 0;font-size:var(--text-sm);color:var(--text-muted)}.mreq-actions{display:flex;flex-wrap:wrap;gap:8px}.mreq-field{margin:12px 0}.mreq-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.mreq-field textarea{width:100%}.mreq-wrap{overflow-x:auto}.mreq-table{width:100%;min-width:640px;border-collapse:collapse}.mreq-table th,.mreq-table td{border:1px solid var(--border);padding:8px;text-align:left;vertical-align:top}@media(max-width:768px){.mreq-item{grid-template-columns:1fr}.mreq-actions{width:100%}.mreq-actions button{flex:1 1 140px}}@media(max-width:390px){.mreq-page{padding:0}.mreq-actions button{width:100%;flex:1 1 100%}.mreq-table{min-width:520px}}.mar-page{margin-bottom:var(--spacing-lg)}.mar-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.mar-meta{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0 0 16px;font-size:var(--text-sm);color:var(--text-secondary)}.mar-meta p{margin:0}.mar-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.mar-card h2{margin:0 0 8px;font-size:var(--text-md)}.mar-list{list-style:none;margin:0;padding:0}.mar-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;align-items:center;padding:12px 0;border-top:1px solid var(--border)}.mar-item:first-child{border-top:0}.mar-name{font-weight:600}.mar-sub{margin:2px 0 0;font-size:var(--text-sm);color:var(--text-muted)}.mar-actions{display:flex;flex-wrap:wrap;gap:8px}.mar-field{margin:12px 0}.mar-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.mar-field textarea{width:100%}@media(max-width:768px){.mar-item{grid-template-columns:1fr}.mar-actions{width:100%}.mar-actions button{flex:1 1 140px}}@media(max-width:390px){.mar-page{padding:0}.mar-actions button{width:100%;flex:1 1 100%}}.mgr-page{margin-bottom:var(--spacing-lg)}.mgr-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.mgr-meta{display:flex;flex-wrap:wrap;gap:8px 24px;margin:0 0 16px;font-size:var(--text-sm);color:var(--text-secondary)}.mgr-meta p{margin:0}.mgr-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.mgr-card h2{margin:0 0 8px;font-size:var(--text-md)}.mgr-list{list-style:none;margin:0;padding:0}.mgr-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;align-items:start;padding:12px 0;border-top:1px solid var(--border)}.mgr-item:first-child{border-top:0}.mgr-name{font-weight:600}.mgr-sub{margin:2px 0 0;font-size:var(--text-sm);color:var(--text-muted)}.mgr-grades{margin:8px 0 0;padding-left:18px;font-size:var(--text-sm)}.mgr-actions{display:flex;flex-wrap:wrap;gap:8px}.mgr-field{margin:12px 0}.mgr-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.mgr-field select,.mgr-field textarea{width:100%}@media(max-width:768px){.mgr-item{grid-template-columns:1fr}.mgr-actions{width:100%}.mgr-actions button{flex:1 1 140px}}@media(max-width:390px){.mgr-page{padding:0}.mgr-actions button{width:100%;flex:1 1 100%}}.scn-page{margin-bottom:var(--spacing-lg)}.scn-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.scn-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.scn-card h2{margin:0 0 8px;font-size:var(--text-md)}.scn-field{margin:12px 0}.scn-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.scn-field textarea,.scn-field select,.scn-field input{width:100%}.scn-grid{display:grid;gap:12px}@media(min-width:768px){.scn-grid{grid-template-columns:160px minmax(0,1fr)}}.scn-actions{display:flex;flex-wrap:wrap;gap:8px}.scn-identity{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px 16px;align-items:start}.scn-photo{width:72px;height:72px;object-fit:cover;border-radius:12px;background:var(--surface-2, #eef2f7)}.scn-photo-fallback{display:grid;place-items:center;font-weight:700;font-size:1.4rem}.scn-name{margin:0;font-weight:600}.scn-sub{margin:4px 0 0;font-size:var(--text-sm);color:var(--text-muted)}@media(max-width:768px){.scn-identity{grid-template-columns:64px minmax(0,1fr)}.scn-actions{width:100%}.scn-actions button{flex:1 1 140px}}@media(max-width:390px){.scn-page{padding:0}.scn-grid,.scn-identity{grid-template-columns:1fr}.scn-actions button{width:100%;flex:1 1 100%}}.tr-page{margin-bottom:var(--spacing-lg)}.tr-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary)}.tr-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.tr-card{margin:0 0 16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius, 12px);background:var(--surface)}.tr-card-head{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;justify-content:space-between;margin:0 0 12px}.tr-card h2{margin:0;font-size:var(--text-md)}.tr-section{margin:16px 0 8px;font-size:var(--text-sm)}.tr-sub{margin:4px 0 0;font-size:var(--text-sm);color:var(--text-muted)}.tr-field{margin:0 0 12px}.tr-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.tr-field input,.tr-field select{width:100%}.tr-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.tr-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.tr-wrap{overflow-x:auto}.tr-table{width:100%;min-width:640px;border-collapse:collapse}.tr-table th,.tr-table td{border:1px solid var(--border);padding:8px;text-align:left;vertical-align:top}@media(max-width:768px){.tr-grid{grid-template-columns:1fr}.tr-card-head{flex-direction:column;align-items:stretch}.tr-actions button{flex:1 1 140px}}@media(max-width:390px){.tr-page{padding:0}.tr-tabs button,.tr-actions button{width:100%;flex:1 1 100%}.tr-table{min-width:520px}}.lib-page{margin-bottom:var(--spacing-lg)}.lib-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.45}.lib-card{margin:0 0 16px}.lib-card h2{margin:0 0 12px;font-size:var(--text-md)}.lib-sub{margin:4px 0 12px;font-size:var(--text-sm);color:var(--text-muted)}.lib-field{margin:0 0 12px}.lib-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.lib-field input,.lib-field select,.lib-field textarea{width:100%}.lib-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end}.lib-wrap{overflow-x:auto}.lib-table{width:100%;min-width:640px;border-collapse:collapse}.lib-table th,.lib-table td{border:1px solid var(--border);padding:8px;text-align:left;vertical-align:top}@media(max-width:768px){.lib-actions button{flex:1 1 140px}}@media(max-width:390px){.lib-page{padding:0}.lib-actions{flex-direction:column;align-items:stretch}.lib-actions button{width:100%;flex:1 1 100%}.lib-table{min-width:520px}}.sdoc-page{margin-bottom:var(--spacing-lg)}.sdoc-caption{margin:0 0 12px;font-size:var(--text-sm);color:var(--text-secondary);line-height:1.45}.sdoc-card{margin:0 0 16px}.sdoc-card h2{margin:0 0 12px;font-size:var(--text-md)}.sdoc-sub{margin:4px 0 12px;font-size:var(--text-sm);color:var(--text-muted)}.sdoc-field{margin:0 0 12px}.sdoc-field label{display:block;margin:0 0 4px;font-size:var(--text-sm)}.sdoc-field input,.sdoc-field select,.sdoc-field textarea{width:100%}.sdoc-check{display:flex;align-items:center;gap:8px;font-size:var(--text-sm)}.sdoc-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.sdoc-wrap{overflow-x:auto}.sdoc-table{width:100%;min-width:640px;border-collapse:collapse}.sdoc-table th,.sdoc-table td{border:1px solid var(--border);padding:8px;text-align:left;vertical-align:top}.sdoc-hash{font-size:.78rem;word-break:break-all}@media(max-width:768px){.sdoc-actions a,.sdoc-actions button{flex:1 1 140px}}@media(max-width:390px){.sdoc-page{padding:0}.sdoc-actions{flex-direction:column;align-items:stretch}.sdoc-actions a,.sdoc-actions button{width:100%;flex:1 1 100%}.sdoc-table{min-width:520px}}:root{--font-sans: "Lexend", sans-serif;--font-display: "Plus Jakarta Sans", sans-serif;--font-numeric: "Plus Jakarta Sans", sans-serif;--font-body: var(--font-sans);--ff-display: var(--font-display);--ff-body: var(--font-sans);--text-xs: 12px;--text-sm: 13px;--text-base: 14px;--text-md: 16px;--text-lg: 20px;--text-xl: 28px;--text-2xl: 36px;--font-size-base: var(--text-base);--leading-tight: 1.2;--leading-normal: 1.5;--leading-table: 1.35;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-10: 40px;--spacing-xs: var(--space-1);--spacing-sm: var(--space-2);--spacing-md: var(--space-4);--spacing-lg: var(--space-6);--spacing-xl: var(--space-10);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 999px;--shadow-xs: 0 1px 2px rgba(15, 17, 23, .06);--shadow-sm: 0 1px 2px rgba(15, 17, 23, .06), 0 4px 12px rgba(15, 17, 23, .06);--shadow-md: 0 1px 2px rgba(15, 17, 23, .05), 0 8px 24px rgba(15, 17, 23, .06);--shadow-lg: 0 4px 8px rgba(15, 17, 23, .08), 0 16px 40px rgba(15, 17, 23, .12);--motion-fast: .15s ease;--motion-normal: .2s ease;--motion-slow: .3s ease;--transition-fast: var(--motion-fast);--transition-normal: var(--motion-normal);--transition-slow: var(--motion-slow);--focus-ring-width: 2px;--z-base: 0;--z-sticky: 10;--z-header: 20;--z-sidebar: 30;--z-overlay: 40;--z-modal: 50;--z-skip: 60;--density-factor: 1;--color-bg: #0f1117;--color-surface: #171b26;--color-surface-elevated: #1e2335;--color-text: #f0f2f8;--color-text-muted: #c5cbe0;--color-text-subtle: #a7aec8;--color-border: #2a2f45;--color-primary: #f07e1d;--color-primary-ink: #ffffff;--color-primary-soft: #f07e1d33;--color-success: #22c55e;--color-success-soft: #14532d66;--color-warning: #f59e0b;--color-warning-soft: #78350f66;--color-danger: #ef4444;--color-danger-soft: #7f1d1d66;--color-info: #3b82f6;--color-info-soft: #1e3a8a66;--color-overlay: rgba(0, 0, 0, .6);--color-overlay-soft: rgba(0, 0, 0, .45);--color-focus-ring: var(--color-primary);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .35);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35), 0 4px 14px rgba(0, 0, 0, .35);--shadow-md: 0 1px 2px rgba(0, 0, 0, .35), 0 10px 28px rgba(0, 0, 0, .45);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--bg-base: var(--color-bg);--bg-surface: var(--color-surface);--bg-elevated: var(--color-surface-elevated);--border: var(--color-border);--text-primary: var(--color-text);--text-secondary: var(--color-text-muted);--text-muted: var(--color-text-subtle);--accent: var(--color-primary);--accent-ink: var(--color-primary-ink);--accent-soft: var(--color-primary-soft);--success: var(--color-success);--warning: var(--color-warning);--danger: var(--color-danger);--info: var(--color-info);--success-soft: var(--color-success-soft);--warning-soft: var(--color-warning-soft);--danger-soft: var(--color-danger-soft);--info-soft: var(--color-info-soft);--overlay: var(--color-overlay);--overlay-soft: var(--color-overlay-soft);--shadow: var(--shadow-md);--accent-glow: color-mix(in srgb, var(--color-primary) 45%, transparent);--muted-soft: color-mix(in srgb, var(--color-text-subtle) 22%, transparent);--surface-app: var(--color-bg);--surface-card: var(--color-surface);--surface-sunken: var(--color-surface-elevated);--surface-subtle: var(--color-surface-elevated)}html[data-theme=schola-light],html[data-theme=light],html[data-theme=day]{--color-bg: #f8f9fc;--color-surface: #ffffff;--color-surface-elevated: #eef1f7;--color-text: #0f1117;--color-text-muted: #3d4563;--color-text-subtle: #4a5275;--color-border: #d8dee8;--color-primary: #f07e1d;--color-primary-ink: #ffffff;--color-primary-soft: #f07e1d24;--color-success: #15803d;--color-success-soft: #dcfce7;--color-warning: #b45309;--color-warning-soft: #fef3c7;--color-danger: #b91c1c;--color-danger-soft: #fee2e2;--color-info: #1d4ed8;--color-info-soft: #dbeafe;--color-overlay: rgba(15, 17, 23, .55);--color-overlay-soft: rgba(15, 17, 23, .32);--color-focus-ring: #c45a12;--shadow-xs: 0 1px 2px rgba(15, 17, 23, .06);--shadow-sm: 0 1px 2px rgba(15, 17, 23, .06), 0 4px 12px rgba(15, 17, 23, .06);--shadow-md: 0 1px 2px rgba(15, 17, 23, .05), 0 8px 24px rgba(15, 17, 23, .06);--shadow-lg: 0 4px 8px rgba(15, 17, 23, .08), 0 16px 40px rgba(15, 17, 23, .12);--accent-glow: color-mix(in srgb, var(--color-primary) 40%, transparent);--muted-soft: color-mix(in srgb, var(--color-text-subtle) 18%, transparent)}html[data-theme=schola-dark],html[data-theme=dark],html[data-theme=night]{--color-bg: #0f1117;--color-surface: #171b26;--color-surface-elevated: #1e2335;--color-text: #f0f2f8;--color-text-muted: #c5cbe0;--color-text-subtle: #a7aec8;--color-border: #2a2f45;--color-primary: #f07e1d;--color-primary-ink: #ffffff;--color-primary-soft: #f07e1d33;--color-success: #4ade80;--color-success-soft: #14532d66;--color-warning: #fbbf24;--color-warning-soft: #78350f66;--color-danger: #f87171;--color-danger-soft: #7f1d1d66;--color-info: #60a5fa;--color-info-soft: #1e3a8a66;--color-overlay: rgba(0, 0, 0, .6);--color-overlay-soft: rgba(0, 0, 0, .45);--color-focus-ring: #f07e1d;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .35);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35), 0 4px 14px rgba(0, 0, 0, .35);--shadow-md: 0 1px 2px rgba(0, 0, 0, .35), 0 10px 28px rgba(0, 0, 0, .45);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--accent-glow: color-mix(in srgb, var(--color-primary) 45%, transparent);--muted-soft: color-mix(in srgb, var(--color-text-subtle) 22%, transparent)}html[data-theme=schola-blue]{--color-bg: #0c1220;--color-surface: #141c2e;--color-surface-elevated: #1b2640;--color-text: #e8eef8;--color-text-muted: #b4c0d8;--color-text-subtle: #8b9bb8;--color-border: #2a3a58;--color-primary: #3d6ea8;--color-primary-ink: #ffffff;--color-primary-soft: #3d6ea833;--color-success: #4ade80;--color-success-soft: #14532d66;--color-warning: #fbbf24;--color-warning-soft: #78350f66;--color-danger: #f87171;--color-danger-soft: #7f1d1d66;--color-info: #7dd3fc;--color-info-soft: #0c4a6e66;--color-overlay: rgba(0, 0, 0, .6);--color-overlay-soft: rgba(0, 0, 0, .45);--color-focus-ring: #5b8ec4;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 14px rgba(0, 0, 0, .35);--shadow-md: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 28px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .55);--accent-glow: color-mix(in srgb, var(--color-primary) 45%, transparent);--muted-soft: color-mix(in srgb, var(--color-text-subtle) 22%, transparent)}html[data-theme=schola-slate]{--color-bg: #121417;--color-surface: #1a1d22;--color-surface-elevated: #22262c;--color-text: #eceef1;--color-text-muted: #c2c6ce;--color-text-subtle: #9aa1ab;--color-border: #333840;--color-primary: #7b8494;--color-primary-ink: #0f1117;--color-primary-soft: #7b849433;--color-success: #4ade80;--color-success-soft: #14532d66;--color-warning: #fbbf24;--color-warning-soft: #78350f66;--color-danger: #f87171;--color-danger-soft: #7f1d1d66;--color-info: #94a3b8;--color-info-soft: #1e293b66;--color-overlay: rgba(0, 0, 0, .6);--color-overlay-soft: rgba(0, 0, 0, .45);--color-focus-ring: #9aa3b2;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 14px rgba(0, 0, 0, .35);--shadow-md: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 28px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .55);--accent-glow: color-mix(in srgb, var(--color-primary) 40%, transparent);--muted-soft: color-mix(in srgb, var(--color-text-subtle) 22%, transparent)}html[data-theme=schola-emerald]{--color-bg: #0c1412;--color-surface: #14201c;--color-surface-elevated: #1a2a24;--color-text: #e8f2ed;--color-text-muted: #b4c9c0;--color-text-subtle: #8eaaa0;--color-border: #2a4038;--color-primary: #2f6f5e;--color-primary-ink: #ffffff;--color-primary-soft: #2f6f5e40;--color-success: #4ade80;--color-success-soft: #14532d66;--color-warning: #fbbf24;--color-warning-soft: #78350f66;--color-danger: #f87171;--color-danger-soft: #7f1d1d66;--color-info: #5eead4;--color-info-soft: #115e5966;--color-overlay: rgba(0, 0, 0, .6);--color-overlay-soft: rgba(0, 0, 0, .45);--color-focus-ring: #3d8f78;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 14px rgba(0, 0, 0, .35);--shadow-md: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 28px rgba(0, 0, 0, .5);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .55);--accent-glow: color-mix(in srgb, var(--color-primary) 45%, transparent);--muted-soft: color-mix(in srgb, var(--color-text-subtle) 22%, transparent)}body{transition:background-color var(--motion-normal),color var(--motion-normal)}.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}*{box-sizing:border-box}html{font-size:100%}html,body{height:100%}body{margin:0;background:var(--bg-base);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-normal)}h1,h2,h3{font-family:var(--font-display);margin:0;letter-spacing:-.01em;font-weight:var(--weight-bold);line-height:var(--leading-tight)}#root{height:100%}.skip-link{position:absolute;left:12px;top:-48px;z-index:var(--z-skip);background:var(--accent);color:var(--accent-ink);padding:8px 12px;border-radius:var(--radius-md)}.skip-link:focus{top:12px}:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus-ring);outline-offset:2px}.app{display:grid;grid-template-columns:220px minmax(0,1fr);height:100vh;min-height:100vh;overflow:hidden;transition:grid-template-columns var(--transition-normal)}.app.sidebar-collapsed{grid-template-columns:56px minmax(0,1fr)}.web-aside{background:var(--bg-surface);border-right:1px solid var(--border);padding:var(--spacing-md) var(--spacing-sm);display:flex;flex-direction:column;min-width:0;overflow:hidden;z-index:var(--z-sidebar)}.app.sidebar-collapsed .web-aside{padding:var(--spacing-md) 6px}.brand{display:flex;flex-direction:column;gap:6px;padding:8px 6px 14px}.app.sidebar-collapsed .brand{align-items:center;padding:8px 2px 12px}.brand-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.app.sidebar-collapsed .brand-row{justify-content:center}.brand-identity{min-width:0;flex:1}.brand-logo{display:block;width:auto;max-width:100%;height:40px;object-fit:contain;object-position:left center}.app.sidebar-collapsed .brand-logo{width:28px;height:28px;object-position:center}.brand .est{font-size:var(--text-xs);color:var(--text-secondary);padding-left:2px;font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user{display:flex;align-items:center;gap:10px;padding:10px 8px;margin:0 2px 6px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elevated);cursor:pointer;width:calc(100% - 4px);text-align:left;color:inherit;height:auto}.app.sidebar-collapsed .sidebar-user{justify-content:center;padding:8px;margin-bottom:6px}.sidebar-user-meta{min-width:0;display:flex;flex-direction:column}.sidebar-user-name{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{font-size:var(--text-xs);color:var(--text-muted);margin-top:1px}.sidebar-level{margin:0 2px 12px;padding:10px 10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated)}.app.sidebar-collapsed .sidebar-level{padding:8px 4px;text-align:center}.sidebar-level-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);color:var(--accent);letter-spacing:.03em}.sidebar-level-est{font-size:var(--text-xs);color:var(--text-secondary);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-level-change{margin-top:8px;width:100%;min-height:36px;font-size:var(--text-xs);padding:6px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;height:auto}.sidebar-level-change:hover{border-color:var(--accent);color:var(--accent)}.app.sidebar-collapsed .sidebar-level-est,.app.sidebar-collapsed .sidebar-level-change{display:none}.level-selector{min-height:100vh;display:grid;place-items:center;padding:32px 20px;background:var(--bg-base)}.level-selector-card{width:min(920px,100%);text-align:center}.level-selector-logo{display:block;width:auto;max-width:min(280px,80vw);height:48px;object-fit:contain;margin:0 auto 20px}.level-selector-hello{font-size:var(--text-md);color:var(--text-secondary);margin:0 0 8px}.level-selector-title{font-family:var(--font-display);font-size:clamp(1.4rem,3vw,2rem);font-weight:700;color:var(--text-primary);margin:0 0 8px;line-height:1.25}.level-selector-est{font-size:var(--text-sm);color:var(--text-muted);margin:0 0 28px}.level-selector-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.level-selector-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:28px 18px;margin:0;height:auto;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-surface);cursor:pointer;color:inherit;transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.level-selector-btn:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow)}.level-selector-icon{font-size:2rem;line-height:1}.level-selector-label{font-family:var(--font-display);font-weight:700;font-size:var(--text-md);color:var(--text-primary);letter-spacing:.04em}.level-selector-hint{font-size:var(--text-xs);color:var(--text-muted)}.avatar{width:28px;height:28px;border-radius:999px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700;font-size:var(--text-xs);flex:none}.sidebar-collapse-btn{width:36px;height:36px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);color:var(--text-secondary);cursor:pointer;display:grid;place-items:center;flex:none;margin:0;padding:0}.sidebar-collapse-btn:hover{border-color:var(--accent);color:var(--accent)}.sidebar-collapse-btn svg{width:15px;height:15px}.navlab{font-size:var(--text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);padding:14px 10px 4px;font-weight:600}.navlab-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;margin:0;border:0;background:transparent;cursor:pointer;height:auto;min-height:32px;text-align:left}.navlab-toggle:hover{color:var(--text-primary)}.navlab-caret{width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform var(--transition-fast)}.navlab-caret.is-open{transform:rotate(45deg)}.nav-group+.nav-group{margin-top:2px}.navitem{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;border:none;background:transparent;width:100%;text-align:left;font-family:var(--font-body);text-decoration:none;height:auto;margin:0;transition:background var(--transition-fast),color var(--transition-fast)}.app.sidebar-collapsed .navitem{justify-content:center;padding:9px 0}.navitem svg{width:16px;height:16px;flex:none}.navitem:hover{background:var(--bg-elevated);color:var(--text-primary);border-color:transparent}.navitem.active{background:var(--accent-soft);color:var(--accent);font-weight:600;box-shadow:inset 3px 0 0 var(--accent)}.navitem.active svg{color:var(--accent)}.web-nav{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar-foot{flex:none;margin-top:auto;border-top:1px solid var(--border);padding-top:10px;display:flex;flex-direction:column;gap:2px;background:var(--bg-surface)}.app.sidebar-collapsed .sidebar-foot{align-items:center}.web-maincol{display:flex;flex-direction:column;min-width:0;min-height:0}.web-topbar{display:flex;align-items:center;gap:10px;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--bg-surface);min-height:52px;flex:none;position:relative;z-index:var(--z-header)}.top-crumb{margin:0;min-width:0;overflow-wrap:anywhere}.topbar-spacer{flex:1}.topbar-user{font-size:var(--text-sm);color:var(--text-secondary)}.content{flex:1;overflow:auto;padding:20px 24px 120px;min-height:0}.screenhead{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}.screenhead>div{min-width:0}.screenhead h1{font-size:var(--text-xl);line-height:var(--leading-tight);overflow-wrap:anywhere}.crumb{font-size:var(--text-sm);color:var(--text-secondary);margin-bottom:4px}.subtitle{font-size:var(--text-sm);color:var(--text-secondary);margin-top:4px}.headtools{display:flex;align-items:center;gap:8px}.iconbtn{width:36px;height:36px;margin:0;padding:0;display:grid;place-items:center;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-secondary)}.iconbtn:hover{border-color:var(--accent);color:var(--accent)}.iconbtn svg{width:16px;height:16px}.iconbtn:disabled{opacity:.5}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.card-title{font-size:var(--text-md);margin-bottom:12px}label{display:block;font-size:var(--text-sm);color:var(--text-secondary);margin:10px 0 4px;font-family:var(--font-body);font-weight:500}select,input,button,textarea{font-family:var(--ff-body);font-size:var(--text-sm)}select,input,textarea{width:100%;height:36px;border:1px solid var(--border);border-radius:var(--radius-md);padding:0 10px;background:var(--bg-elevated);color:var(--text-primary)}select:focus,input:focus,textarea:focus{border-color:var(--color-primary);outline:var(--focus-ring-width) solid var(--color-primary-soft);outline-offset:0}button{height:36px;padding:0 14px;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--bg-surface);color:var(--text-primary);cursor:pointer;margin:0;font-weight:var(--weight-medium)}button:hover:not(:disabled){border-color:var(--accent);color:var(--text-primary)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}button.primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px var(--accent-glow);color:var(--accent-ink)}button.danger{background:var(--danger);border-color:var(--danger);color:var(--accent-ink)}button.danger:hover:not(:disabled){border-color:var(--danger);color:var(--accent-ink)}a.primary{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 14px;border-radius:var(--radius-md);border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);font-weight:600;font-size:var(--text-sm);text-decoration:none}a.primary:hover{text-decoration:none;box-shadow:0 4px 12px var(--accent-glow)}button:disabled{opacity:.5;cursor:not-allowed}.btn-block{width:100%;margin-top:16px}.card>button,form.card>button.primary,form.card>button.danger{margin-top:12px}.badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600}.badge.ok{background:var(--success-soft);color:var(--success)}.badge.err{background:var(--danger-soft);color:var(--danger)}.login-alert{display:block;margin-top:12px;padding:8px 12px}table{width:100%;border-collapse:collapse;margin-top:0;font-size:var(--text-sm);font-family:var(--font-sans);line-height:var(--leading-table)}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}table thead th{background:var(--bg-elevated);color:var(--text-secondary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;font-weight:600;position:sticky;top:0;z-index:var(--z-sticky)}table tbody tr:hover{background:var(--bg-elevated)}.login-page{min-height:100vh;display:grid;place-items:center;background:var(--bg-base);padding:24px}.login-card{width:min(400px,100%);margin:0}.login-brand{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:18px}.login-logo{display:block;width:min(280px,100%);height:auto;object-fit:contain}.login-page:not(.pr-page) .login-logo{width:min(230px,100%)}.login-brand .subtitle{text-align:center;margin-top:8px}.kpis-premium{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--spacing-md)}.kpis-six{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow);min-width:0;transition:box-shadow var(--transition-normal),transform var(--transition-fast)}.kpi-card:hover{transform:translateY(-2px)}.kpi-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.kpi-card-icon{width:36px;height:36px;border-radius:var(--radius-md);display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);flex:none}.kpi-card-icon svg{width:18px;height:18px;display:block}.kpi-card.tone-info .kpi-card-icon{background:var(--info-soft);color:var(--info)}.kpi-card.tone-success .kpi-card-icon{background:var(--success-soft);color:var(--success)}.kpi-card.tone-warning .kpi-card-icon{background:var(--warning-soft);color:var(--warning)}.kpi-card.tone-accent .kpi-card-icon{background:var(--accent-soft);color:var(--accent)}.kpi-card-value{font-family:var(--font-numeric);font-weight:var(--weight-extrabold);font-size:var(--text-2xl);color:var(--text-primary);line-height:1.1;letter-spacing:-.02em;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.kpi-card-label{font-size:var(--text-sm);color:var(--text-secondary);margin-top:10px}.kpi-card-sub{font-size:var(--text-xs);color:var(--text-muted);margin-top:4px}.year-progress{margin:0 0 var(--spacing-lg);padding:12px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md)}.year-progress-meta{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:8px;font-size:var(--text-sm);font-weight:500}.year-progress-pct{white-space:nowrap}.year-progress-period{margin-left:10px;color:var(--text-muted);font-weight:400}.year-progress-track{height:4px;border-radius:999px;background:var(--border);overflow:hidden}.year-progress-fill{height:100%;border-radius:999px;background:var(--accent);transition:width .6s ease-out}.dash-date{font-size:var(--text-sm);color:var(--text-secondary);margin:-6px 0 14px}.sync-hint{font-size:var(--text-xs);color:var(--text-muted);margin:12px 0 16px}.dgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.dpanel.dash-follow{margin-top:var(--spacing-md)}.dpanel h3{font-size:var(--text-md)}.cap{font-size:var(--text-xs);color:var(--text-muted);margin:4px 0 12px}.dchartbox{height:220px;position:relative}.gaugewrap{position:relative}.gauge-200{height:200px;max-width:200px;margin:0 auto}.gaugelab{position:absolute;left:50%;bottom:28px;transform:translate(-50%);text-align:center}.gaugelab .g{font-family:var(--font-numeric);font-weight:var(--weight-extrabold);font-size:var(--text-xl);line-height:1;font-variant-numeric:tabular-nums}.gaugelab .g small{font-size:var(--text-base);color:var(--text-secondary)}.gaugelab .t{font-size:var(--text-xs);color:var(--text-muted)}.alert-list{display:flex;flex-direction:column;gap:8px;max-height:240px;overflow:auto}.alert-empty{font-size:var(--text-sm);color:var(--text-secondary);padding:8px 0}.alert-item{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--radius-md);font-size:var(--text-sm)}.alert-item.level-danger{background:var(--danger-soft)}.alert-item.level-warning{background:var(--warning-soft)}.alert-ico{flex:none;width:18px;display:grid;place-items:center}.alert-ico svg{width:16px;height:16px}.alert-ico.tone-danger{color:var(--danger)}.alert-ico.tone-warning{color:var(--warning)}.state-block{padding:12px 0}.state-block.empty{padding:28px 16px;text-align:center;background:var(--bg-surface);border:1px dashed var(--border);border-radius:var(--radius-lg);margin-bottom:var(--spacing-md)}.card .state-block.empty,.dpanel .state-block.empty{background:transparent;border:none;padding:16px 0;margin:0}.state-block.error{padding:16px;background:var(--danger-soft);border-radius:var(--radius-md)}.state-title{font-family:var(--font-display);font-weight:700;margin:0 0 6px}.state-caption{color:var(--text-secondary);font-size:var(--text-sm);margin:0}.section-note{margin:0 0 16px}.skel{background:linear-gradient(90deg,var(--bg-elevated),var(--border),var(--bg-elevated));background-size:200% 100%;animation:skel 1.2s ease infinite;border-radius:var(--radius-md)}.skel-kpi{height:120px}.skel-panel{height:180px}.skel-line{height:12px;width:70%;margin-bottom:8px}.skel-line.short{width:40%}@keyframes skel{0%{background-position:100% 0}to{background-position:-100% 0}}.profile-dl{display:grid;gap:10px;margin:0}.profile-dl div{display:grid;grid-template-columns:140px minmax(0,1fr);gap:8px;font-size:var(--text-sm);min-width:0}.profile-dl dt{color:var(--text-muted)}.profile-dl dd{margin:0;font-weight:600;overflow-wrap:anywhere;min-width:0}.nav-backdrop,.mobile-only{display:none}.desktop-inline{display:inline}.desktop-only{display:grid}@media(max-width:1440px){.content{padding:18px 20px 36px}}@media(max-width:1279px){.kpis-six{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:1024px){.web-topbar{padding:10px 14px}.content{padding:16px 16px 32px}}@media(max-width:1100px){.kpis-premium{grid-template-columns:repeat(2,minmax(0,1fr))}.dgrid{grid-template-columns:1fr}}.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin:0 0 16px;padding:12px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md)}.toolbar-field{margin:0;min-width:min(220px,100%);flex:1}.toolbar-field input,.toolbar-field select{margin-top:4px}.toolbar-count{margin:0 0 6px auto;color:var(--text-secondary);font-size:var(--text-sm)}.toolbar button{margin:0}.tablist{display:flex;flex-wrap:wrap;gap:4px;width:fit-content;max-width:100%;margin:0 0 16px;padding:4px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md)}.tabbtn{min-height:36px;height:36px;padding:0 12px;margin:0;border:0;background:transparent;color:var(--text-secondary);font-weight:600}.tabbtn:hover{color:var(--text-primary);background:var(--bg-elevated)}.tabbtn.active{background:var(--accent-soft);color:var(--accent)}.seg{display:inline-flex;gap:4px;padding:4px;margin-top:10px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md)}.seg-btn{height:32px;padding:0 14px;margin:0;border:0;background:transparent;color:var(--text-secondary);font-weight:600}.seg-btn.active{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:8px}.stat-grid>div{min-width:0;display:flex;flex-direction:column;gap:4px}.stat-label{font-size:var(--text-xs);color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.stat-value{font-family:var(--font-numeric);font-weight:var(--weight-bold);font-size:var(--text-md);font-variant-numeric:tabular-nums}.theme-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3);margin-top:var(--space-4)}.theme-option{display:flex;align-items:center;gap:var(--space-3);height:auto;min-height:64px;margin:0;padding:var(--space-3);text-align:left;background:var(--color-surface-elevated);border:1px solid var(--color-border);border-radius:var(--radius-md);color:inherit;cursor:pointer}.theme-option:hover{border-color:var(--color-primary)}.theme-option:focus-visible{outline:var(--focus-ring-width) solid var(--color-focus-ring);outline-offset:2px}.theme-option.is-selected{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary);background:var(--color-primary-soft)}.theme-swatch{width:44px;height:44px;flex:none;border-radius:var(--radius-sm);border:2px solid;display:grid;grid-template-rows:1fr 10px;overflow:hidden}.theme-swatch-surface,.theme-swatch-primary{display:block}.theme-option-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.theme-option-name{font-family:var(--font-display);font-weight:var(--weight-semibold);font-size:var(--text-sm)}.theme-option-hint{font-size:var(--text-xs);color:var(--color-text-subtle)}.theme-option-state{font-size:var(--text-xs);font-weight:var(--weight-semibold);color:var(--color-primary)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;margin-bottom:var(--spacing-lg);max-width:100%;min-width:0;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg)}.card .table-wrap,.dpanel .table-wrap,.table-card .table-wrap{background:transparent;border:0;border-radius:0;margin-bottom:0}.table-card{padding-bottom:12px}.table-wrap table{margin-top:0}.table-wrap a{color:var(--accent);font-weight:600;text-decoration:none}.table-wrap a:hover{text-decoration:underline}.table-wrap input[type=number]{width:88px;height:32px}.table-wrap input[type=radio]{width:auto;height:auto;accent-color:var(--accent)}.entity-cards{display:none}.entity-card{display:grid;gap:8px;margin:0 0 12px;padding:14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);min-width:0}.entity-card h3{margin:0;font-size:var(--text-md);overflow-wrap:anywhere}.entity-card dl{display:grid;gap:6px;margin:0}.entity-card div{display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr);gap:8px;font-size:var(--text-sm);min-width:0}.entity-card dt{color:var(--text-muted)}.entity-card dd{margin:0;font-weight:600;overflow-wrap:anywhere}.entity-card-actions{display:flex;flex-wrap:wrap;gap:8px}.entity-card-actions a,.entity-card-actions button{margin:0}.structure-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.structure-actions button{margin:0}@media(max-width:899px){.app,.app.sidebar-collapsed{grid-template-columns:1fr}.web-aside{position:fixed;inset:0 auto 0 0;width:min(280px,86vw);transform:translate(-105%);box-shadow:var(--shadow);transition:transform var(--transition-normal);z-index:var(--z-modal);visibility:hidden;pointer-events:none}.web-aside.mobile-open{transform:translate(0);visibility:visible;pointer-events:auto}.web-aside.mobile-open .brand-logo{width:auto;max-width:100%;height:40px}.nav-backdrop{display:block;position:fixed;inset:0;background:var(--overlay-soft);z-index:var(--z-overlay);border:0;margin:0;padding:0;height:auto;width:auto}.mobile-only{display:grid}.desktop-inline{display:none}.desktop-only{display:none!important}.content{padding:16px}.screenhead{flex-direction:column}.headtools{width:100%;justify-content:flex-start;flex-wrap:wrap}.kpis-premium,.kpis-six{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.desktop-table,.classes-desktop-table,.students-desktop-table,.grades-desktop-table{display:none}.entity-cards{display:block}.iconbtn,.sidebar-collapse-btn{width:44px;height:44px}.navitem{min-height:44px;padding:12px 10px}.sidebar-user{min-height:44px}.tablist{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.tabbtn{flex:none;white-space:nowrap;min-height:44px;height:44px;padding:0 14px}.seg-btn{min-height:44px;height:44px}select:not([multiple]),input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not([type=file]){min-height:44px;height:44px}textarea{min-height:88px;height:auto}button:not(.theme-option):not(.level-selector-btn):not(.sidebar-user):not(.navitem):not(.iconbtn){min-height:44px}button.primary,button.danger,a.primary{height:44px;min-height:44px}.table-wrap table{width:max-content;min-width:100%}.table-wrap th,.table-wrap td{white-space:nowrap}.table-wrap input[type=number]{height:44px;min-height:44px}.profile-dl div,.entity-card div{grid-template-columns:1fr}.student-detail-actions,.structure-actions{flex:1 1 auto;min-width:0}.student-detail-actions button,.structure-actions button{flex:1;min-width:0}}@media(max-width:768px){.toolbar{flex-direction:column;align-items:stretch}.toolbar-count{margin:0}.login-card{width:min(400px,100%)}.table-wrap table{font-size:var(--text-xs)}}@media(max-width:390px){.login-page{padding:16px}.web-topbar{padding:8px 10px;min-height:48px}.kpi-card-value{font-size:var(--text-xl)}.level-selector{padding:20px 16px}.level-selector-grid{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
