:root{color-scheme:light;--color-bg: #f5f7fb;--color-surface: #ffffff;--color-surface-soft: #eef4fb;--color-text: #172033;--color-muted: #64748b;--color-border: #d8e0eb;--color-primary: #0f7bc7;--color-primary-strong: #075c99;--color-success: #15803d;--color-warning: #b7791f;--color-info: #2563eb;--color-danger: #d64545;--color-sidebar: #f8fbff;--color-sidebar-text: #22324a;--shadow-card: 0 18px 45px rgba(15, 31, 53, .1);--radius-card: 8px;--radius-control: 8px;--app-header-height: 72px;--font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}:root[data-theme=dark]{color-scheme:dark;--color-bg: #0d1118;--color-surface: #151b25;--color-surface-soft: #1d2735;--color-text: #eef4ff;--color-muted: #a9b6c9;--color-border: #2f3b4c;--color-primary: #59b6ff;--color-primary-strong: #8dceff;--color-success: #5dd68a;--color-warning: #f0c15a;--color-info: #8ab4ff;--color-danger: #ff7d7d;--color-sidebar: #090d13;--color-sidebar-text: #edf4ff;--shadow-card: 0 22px 50px rgba(0, 0, 0, .32)}*{box-sizing:border-box}html{min-width:320px}body{margin:0;min-width:320px;background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans)}a{color:inherit;text-decoration:none}a:hover,a:focus-visible{text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-color:color-mix(in srgb,var(--color-primary),transparent 35%)}button{cursor:pointer}button:disabled,[aria-disabled=true]{cursor:not-allowed;opacity:.62}.ui-icon{display:inline-block;flex:0 0 auto;vertical-align:-.18em}.brand-icon{display:inline-block;flex:0 0 auto;color:var(--brand-icon-color, currentColor);vertical-align:-.16em}.role-inline{display:inline-flex;align-items:center;gap:6px}.role-inline--end{justify-content:flex-end}.muted{color:var(--color-muted)}.eyebrow{margin:0 0 4px;color:var(--color-muted);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}:focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary),transparent 35%);outline-offset:3px}::selection{background:color-mix(in srgb,var(--color-primary),transparent 75%)}img,svg{max-width:100%}.skip-link{position:fixed;left:16px;top:12px;z-index:1000;transform:translateY(-140%);border-radius:var(--radius-control);background:var(--color-primary);color:#fff;padding:9px 12px;text-decoration:none;transition:transform .12s ease}.skip-link:focus{transform:translateY(0)}.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);padding:8px 12px;text-decoration:none;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .12s ease}.button:hover{border-color:color-mix(in srgb,var(--color-primary),transparent 35%);background:color-mix(in srgb,var(--color-primary),transparent 92%)}.button:active{transform:translateY(1px)}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.button-primary{border-color:var(--color-primary);background:var(--color-primary);color:#fff}.button-primary:hover{border-color:var(--color-primary-strong);background:var(--color-primary-strong);color:#fff}.button-secondary{border-color:color-mix(in srgb,var(--color-primary),transparent 55%);background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary-strong)}.button-success{border-color:var(--color-success);background:var(--color-success);color:#fff}.button-success:hover{border-color:color-mix(in srgb,var(--color-success),#000 12%);background:color-mix(in srgb,var(--color-success),#000 10%);color:#fff}.button-danger{border-color:var(--color-danger);background:var(--color-danger);color:#fff}.button-danger:hover{border-color:color-mix(in srgb,var(--color-danger),#000 12%);background:color-mix(in srgb,var(--color-danger),#000 10%);color:#fff}.button-ghost{background:transparent;color:var(--color-text)}.button-secondary:hover,.button-ghost:hover{border-color:color-mix(in srgb,var(--color-primary),transparent 38%);background:color-mix(in srgb,var(--color-primary),var(--color-surface) 86%);color:var(--color-primary-strong)}.button-link{min-height:auto;border:0;background:transparent;color:var(--color-primary);padding:0}.button-link:hover{background:transparent;color:var(--color-primary-strong)}.button-sm{min-height:30px;padding:5px 9px;font-size:13px}.button-lg{min-height:42px;padding:10px 16px;font-weight:700}.button-icon{width:36px;padding:0}.segmented{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-control);overflow:hidden}.segmented button{display:inline-flex;align-items:center;gap:7px;border:0;background:var(--color-surface);color:var(--color-text);padding:8px 12px}.segmented button.is-active{background:var(--color-primary);color:#fff}.form-grid{display:grid;gap:12px}.form-row{display:flex;align-items:center;gap:10px}.form-actions{display:flex;justify-content:flex-end;gap:10px}.field{display:grid;gap:6px}.field label,.field-label{color:var(--color-muted);font-size:13px;font-weight:700}.input,.select,.textarea,.login-form input{width:100%;border:1px solid color-mix(in srgb,var(--color-border),var(--color-text) 8%);border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-surface),#fff 10%);color:var(--color-text);padding:9px 11px;box-shadow:inset 0 1px color-mix(in srgb,#fff,transparent 38%)}.input:focus,.select:focus,.textarea:focus,.login-form input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary),transparent 82%);outline:none}.input:disabled,.select:disabled,.textarea:disabled{background:color-mix(in srgb,var(--color-surface-soft),transparent 30%);color:var(--color-muted)}.field-hint{color:var(--color-muted);font-size:12px}.field-error{color:var(--color-danger);font-size:12px;font-weight:700}.login-form{display:grid;gap:14px}.login-form label{display:grid;gap:7px;color:var(--color-muted);font-size:13px;font-weight:700}.input-with-icon{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:8px;border:1px solid color-mix(in srgb,var(--color-border),var(--color-text) 8%);border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-surface),#fff 10%);color:var(--color-muted);padding:0 11px;box-shadow:inset 0 1px color-mix(in srgb,#fff,transparent 38%)}.input-dynamic-icon{display:inline-flex;align-items:center;justify-content:center}.input-with-icon:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary),transparent 82%)}.input-with-icon input,.input-with-icon input:focus,.input-with-icon select,.input-with-icon select:focus{border:0;border-radius:0;background:transparent;box-shadow:none;outline:none;padding-inline:0}.input-with-icon select{width:100%;min-width:0;color:var(--color-text)}.choice-field,.toggle-field{display:grid;align-items:start;gap:7px 10px;color:var(--color-text);font-weight:700}.choice-field{grid-template-columns:auto minmax(0,1fr)}.choice-field input{width:18px;height:18px;accent-color:var(--color-primary);margin-top:1px}.choice-field small{grid-column:2;color:var(--color-muted);font-weight:500}.toggle-field{grid-template-columns:auto minmax(0,1fr);border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:10px}.toggle-field input{position:absolute;opacity:0;pointer-events:none}.toggle-field__control{position:relative;width:42px;height:24px;border-radius:999px;background:var(--color-border);transition:background-color .12s ease}.toggle-field__control:after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:var(--color-surface);box-shadow:0 1px 3px #0000002e;transition:transform .12s ease}.toggle-field input:checked+.toggle-field__control{background:var(--color-primary)}.toggle-field input:checked+.toggle-field__control:after{transform:translate(18px)}.toggle-field__body{display:grid;gap:2px}.toggle-field__body small{color:var(--color-muted);font-weight:500}.card,.hero-panel,.stat-card,.content-panel{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.content-panel{padding:18px}.hero-panel{grid-column:1 / -1;padding:28px}.hero-panel h2{margin:0 0 10px;font-size:30px}.hero-panel p:last-child{margin-bottom:0;color:var(--color-muted)}.stat-card{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:12px;padding:16px}.stat-card__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary)}.stat-card span{display:block;color:var(--color-muted);font-size:13px;margin-bottom:8px}.stat-card strong{display:block;overflow:hidden;font-size:18px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.stat-card small{display:block;margin-top:5px;color:var(--color-muted);font-weight:700;line-height:1.35}.stat-card--success .stat-card__icon{background:color-mix(in srgb,var(--color-success),transparent 88%);color:var(--color-success)}.stat-card--info .stat-card__icon{background:color-mix(in srgb,var(--color-info),transparent 88%);color:var(--color-info)}.stat-card--warning .stat-card__icon{background:color-mix(in srgb,var(--color-warning),transparent 88%);color:var(--color-warning)}.group-card,.student-card{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-soft);padding:16px}.group-card{display:grid;gap:12px}.group-card__top,.group-card__actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.group-card span,.student-number{color:var(--color-muted);font-size:12px;font-weight:800;text-transform:uppercase}.group-card h3,.student-card h3{margin:0}.group-card p,.student-card p{color:var(--color-muted);margin:0 0 14px}.group-meta{display:grid;gap:7px;margin:0}.group-meta div{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px}.group-meta dt{color:var(--color-muted);font-size:12px;font-weight:800}.group-meta dd{margin:0}.badge,.chip{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-muted);padding:3px 8px;font-size:12px;font-weight:700}.badge-success{border-color:color-mix(in srgb,var(--color-success),transparent 55%);background:color-mix(in srgb,var(--color-success),transparent 90%);color:var(--color-success)}.badge-muted{background:var(--color-surface-soft)}.action-card{display:grid;gap:8px;min-height:138px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-soft);color:var(--color-text);padding:16px;text-decoration:none;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.action-card:hover{border-color:color-mix(in srgb,var(--color-primary),transparent 42%);box-shadow:var(--shadow-card);transform:translateY(-1px)}.action-card__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary)}.action-card strong{font-size:17px}.action-card p{margin:0;color:var(--color-muted);line-height:1.45}.action-card--success .action-card__icon{background:color-mix(in srgb,var(--color-success),transparent 88%);color:var(--color-success)}.action-card--info .action-card__icon{background:color-mix(in srgb,var(--color-info),transparent 88%);color:var(--color-info)}.action-card--warning .action-card__icon{background:color-mix(in srgb,var(--color-warning),transparent 88%);color:var(--color-warning)}.action-card--danger .action-card__icon{background:color-mix(in srgb,var(--color-danger),transparent 88%);color:var(--color-danger)}.action-card--success:hover{border-color:color-mix(in srgb,var(--color-success),transparent 42%)}.action-card--info:hover{border-color:color-mix(in srgb,var(--color-info),transparent 42%)}.action-card--warning:hover{border-color:color-mix(in srgb,var(--color-warning),transparent 42%)}.action-card--danger:hover{border-color:color-mix(in srgb,var(--color-danger),transparent 42%)}.report-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}.report-card{display:grid;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-soft);padding:16px}.report-card__top{display:flex;align-items:center;justify-content:space-between;gap:10px}.report-card__icon{display:grid;place-items:center;width:42px;height:42px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary)}.report-card__icon--success{background:color-mix(in srgb,var(--color-success),transparent 88%);color:var(--color-success)}.report-card__icon--info{background:color-mix(in srgb,var(--color-info),transparent 88%);color:var(--color-info)}.report-card__icon--warning{background:color-mix(in srgb,var(--color-warning),transparent 88%);color:var(--color-warning)}.report-card h3{margin:0}.report-card p{margin:0;color:var(--color-muted);line-height:1.45}.data-table tr[data-staff-id]{cursor:pointer}.data-table tr[data-staff-id].is-selected td{background:color-mix(in srgb,var(--color-primary),transparent 92%)}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{border-bottom:1px solid var(--color-border);padding:9px 10px;text-align:left;vertical-align:middle}.data-table th{color:var(--color-muted);font-size:12px;text-transform:uppercase;white-space:nowrap}.data-table td:last-child,.data-table th:last-child{text-align:right}.data-table__actions{display:inline-flex;justify-content:flex-end;gap:8px}.alert,.form-alert{border:1px solid color-mix(in srgb,var(--color-danger),transparent 45%);border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-danger),transparent 88%);color:var(--color-danger);padding:10px}.form-alert:not([hidden]){margin-bottom:14px}.form-alert:not([hidden])+.form-actions,.form-alert:not([hidden])+.admin-form-actions{margin-top:6px}.alert-success{border-color:color-mix(in srgb,var(--color-success),transparent 45%);background:color-mix(in srgb,var(--color-success),transparent 88%);color:var(--color-success)}.empty-state{border:1px dashed var(--color-border);border-radius:var(--radius-control);color:var(--color-muted);padding:24px;text-align:center}.empty-state.is-error{border-color:color-mix(in srgb,var(--color-danger),transparent 55%);color:var(--color-danger)}.filter-summary{display:flex;align-items:center;flex-wrap:wrap;gap:7px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:8px 10px;color:var(--color-muted);font-size:12px;font-weight:800}.filter-summary[hidden]{display:none}.action-state{display:grid;justify-items:center;gap:10px;border:1px dashed var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-soft);color:var(--color-muted);padding:24px;text-align:center}.action-state strong{color:var(--color-text);font-size:16px}.action-state p{max-width:52ch;margin:0}.action-state__icon{display:grid;place-items:center;width:42px;height:42px;border-radius:999px;background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary)}.action-state.is-error{border-color:color-mix(in srgb,var(--color-danger),transparent 55%)}.action-state.is-error .action-state__icon{background:color-mix(in srgb,var(--color-danger),transparent 88%);color:var(--color-danger)}.loading-block{display:grid;gap:10px}.loading-block__label{color:var(--color-muted);font-size:13px;font-weight:750}.skeleton-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.skeleton-card{display:grid;gap:10px;min-height:128px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-soft);padding:16px;overflow:hidden}.skeleton-card span,.skeleton-card strong,.skeleton-card p{display:block;border-radius:999px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--color-text),transparent 90%),transparent),color-mix(in srgb,var(--color-muted),transparent 82%);background-size:220% 100%;animation:skeleton-pulse 1.25s ease-in-out infinite}.skeleton-card span{width:38%;height:12px}.skeleton-card strong{width:70%;height:20px}.skeleton-card p{width:92%;height:42px;border-radius:var(--radius-control)}@keyframes skeleton-pulse{0%{background-position:220% 0}to{background-position:-220% 0}}.summary-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.summary-metric{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);color:var(--color-muted);padding:10px 12px;font-size:12px;font-weight:760}.summary-metric--button{font:inherit;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,color .12s ease,transform .12s ease}.summary-metric--button:hover,.summary-metric--button.is-active{border-color:color-mix(in srgb,var(--color-primary),transparent 45%);background:color-mix(in srgb,var(--color-primary),transparent 90%);color:var(--color-primary-strong)}.summary-metric--button:focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary),transparent 65%);outline-offset:2px}.summary-metric--button:active{transform:translateY(1px)}.summary-metric--compact{gap:6px;background:var(--color-surface);padding:6px 10px}.summary-metric strong{color:var(--color-text);font-size:18px}.summary-metric--compact strong{font-size:12px}.app-shell{display:grid;grid-template-columns:260px minmax(0,1fr);grid-template-rows:1fr;min-height:100vh;--sidebar-expanded-width: 260px;--sidebar-rail-width: 76px}.app-sidebar{position:sticky;top:var(--app-header-height);grid-row:1;align-self:start;height:calc(100vh - var(--app-header-height));margin-top:var(--app-header-height);overflow:auto;background:var(--color-sidebar);color:var(--color-sidebar-text);padding:22px;box-shadow:inset -1px 0 color-mix(in srgb,var(--color-sidebar-text),transparent 88%);transition:width .17s ease,padding .17s ease,box-shadow .17s ease,transform .17s ease}.brand{display:flex;align-items:center;gap:12px;margin-bottom:34px}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:var(--radius-control);background:var(--color-primary);color:#fff;font-weight:800}.brand small{display:block;color:color-mix(in srgb,var(--color-sidebar-text),transparent 35%)}.main-nav{display:grid;gap:16px;margin-inline:-22px}.main-nav--home{margin-bottom:10px}.main-nav__link{display:flex;align-items:center;gap:10px;min-height:42px;border-radius:0;color:inherit;padding:10px 22px;text-decoration:none;transition:background .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.main-nav__link svg{flex:0 0 auto;width:20px;height:20px}.main-nav__link span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.main-nav__link:hover,.main-nav__link.is-active,.main-nav__link[aria-current=page]{background:linear-gradient(90deg,color-mix(in srgb,var(--color-primary),transparent 84%),color-mix(in srgb,var(--color-primary),transparent 94%));box-shadow:inset 4px 0 0 var(--color-primary);color:color-mix(in srgb,var(--color-primary),var(--color-sidebar-text) 32%)}.main-nav__link:hover{transform:translate(2px)}.main-nav__group,.main-nav__section{display:grid;gap:3px}.main-nav__heading{display:block;padding:0 22px 5px;color:color-mix(in srgb,var(--color-sidebar-text),transparent 42%);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.main-nav__subheading{display:block;padding:8px 22px 3px;color:color-mix(in srgb,var(--color-sidebar-text),transparent 24%);font-size:11px;font-weight:900;letter-spacing:.04em;white-space:nowrap}.sidebar-role{display:flex;align-items:center;gap:9px;min-height:42px;margin:0 -22px 18px;padding:10px 22px;color:color-mix(in srgb,var(--color-primary),var(--color-sidebar-text) 32%);font-size:13px;font-weight:900;white-space:nowrap}.sidebar-role svg{flex:0 0 auto;width:21px;height:21px}.sidebar-role span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-status{display:inline-flex!important;align-items:center;gap:6px;margin-top:6px}.session-status i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--color-success);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-success),transparent 78%)}.header-title{display:flex;align-items:flex-start;gap:12px;min-width:0}.sidebar-backdrop{display:none}.sidebar-toggle{display:inline-flex;flex:0 0 auto}.app-shell.is-sidebar-collapsed{grid-template-columns:var(--sidebar-rail-width) minmax(0,1fr)}.app-shell.is-sidebar-collapsed .app-sidebar{z-index:55;width:var(--sidebar-rail-width);min-width:var(--sidebar-rail-width);overflow-x:hidden;padding-inline:12px}.app-shell.is-sidebar-collapsed .app-sidebar:hover,.app-shell.is-sidebar-collapsed .app-sidebar:focus-within{width:var(--sidebar-expanded-width);box-shadow:18px 0 38px color-mix(in srgb,var(--color-text),transparent 86%),inset -1px 0 color-mix(in srgb,var(--color-sidebar-text),transparent 88%)}.app-shell.is-sidebar-collapsed .main-nav,.app-shell.is-sidebar-collapsed .sidebar-role{margin-inline:-12px}.app-shell.is-sidebar-collapsed .main-nav__link,.app-shell.is-sidebar-collapsed .sidebar-role{padding-inline:26px}.app-shell.is-sidebar-collapsed .main-nav__link span,.app-shell.is-sidebar-collapsed .main-nav__heading,.app-shell.is-sidebar-collapsed .main-nav__subheading,.app-shell.is-sidebar-collapsed .sidebar-role span{opacity:0;pointer-events:none;transition:opacity .12s ease}.app-shell.is-sidebar-collapsed .app-sidebar:hover .main-nav__link span,.app-shell.is-sidebar-collapsed .app-sidebar:hover .main-nav__heading,.app-shell.is-sidebar-collapsed .app-sidebar:hover .main-nav__subheading,.app-shell.is-sidebar-collapsed .app-sidebar:hover .sidebar-role span,.app-shell.is-sidebar-collapsed .app-sidebar:focus-within .main-nav__link span,.app-shell.is-sidebar-collapsed .app-sidebar:focus-within .main-nav__heading,.app-shell.is-sidebar-collapsed .app-sidebar:focus-within .main-nav__subheading,.app-shell.is-sidebar-collapsed .app-sidebar:focus-within .sidebar-role span{opacity:1;pointer-events:auto}.app-header{position:fixed;z-index:100002;inset:0 0 auto;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 18px;min-height:var(--app-header-height);padding:12px 22px;border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-surface),transparent 3%);box-shadow:0 10px 32px #0f1f3514;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-header h1{margin:0;font-size:24px}.breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px;color:var(--color-muted);font-size:12px;font-weight:700}.breadcrumbs a{color:inherit;text-decoration:none}.breadcrumbs a:hover{color:var(--color-primary)}.breadcrumbs span[aria-current=page]{color:var(--color-text)}.breadcrumbs__separator{color:color-mix(in srgb,var(--color-muted),transparent 35%)}.header-left,.header-actions,.header-user{display:flex;align-items:center;gap:10px}.header-left{min-width:0}.header-banner{display:block;width:clamp(118px,16vw,184px);height:48px;object-fit:contain}.header-banner-link{display:inline-flex;align-items:center;border-radius:var(--radius-control);transition:opacity .12s ease,transform .12s ease}.header-banner-link:hover{opacity:.9;transform:translateY(-1px)}.header-school{display:grid;min-width:0}.header-school strong,.header-school span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-school strong{color:var(--color-text);font-size:15px;line-height:1.25}.header-school span{color:color-mix(in srgb,var(--color-primary),var(--color-text) 32%);font-size:12px;font-weight:900}.header-actions{justify-self:end}.header-actions .button-icon{flex:0 0 auto}.header-actions .button-icon:has(.button-icon__label){width:auto;padding-inline:10px}.button-icon__label{font-size:11px;font-weight:900;text-transform:uppercase}.header-user-menu{position:relative}.header-avatar{display:grid;width:42px;height:42px;place-items:center;overflow:hidden;border:2px solid color-mix(in srgb,var(--color-muted),transparent 48%);border-radius:50%;background:var(--color-surface-soft);padding:0}.header-avatar.is-online,.user-menu__avatar.is-online,.profile-edit-card__avatar.is-online{border-color:var(--color-success);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-success),transparent 78%)}.header-avatar.is-offline,.user-menu__avatar.is-offline,.profile-edit-card__avatar.is-offline{border-color:color-mix(in srgb,var(--color-muted),transparent 18%);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-muted),transparent 84%)}.app-shell.is-user-invisible .header-avatar,.app-shell.is-user-invisible .user-menu__avatar,.app-shell.is-user-invisible .profile-edit-card__avatar{border-color:color-mix(in srgb,var(--color-muted),transparent 8%);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-muted),transparent 80%);filter:saturate(.8)}.header-avatar:hover{border-color:color-mix(in srgb,var(--color-primary),transparent 35%)}.header-avatar__image{width:100%;height:100%;object-fit:cover}.user-menu{position:absolute;top:calc(100% + 10px);right:0;z-index:70;display:grid;width:min(300px,calc(100vw - 24px));overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);padding:8px}.user-menu[hidden]{display:none}.user-menu__summary{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:10px;margin-bottom:6px;border-bottom:1px solid var(--color-border);padding:8px 8px 12px}.user-menu__avatar{overflow:hidden;width:44px;height:44px;border:2px solid color-mix(in srgb,var(--color-muted),transparent 48%);border-radius:50%;background:var(--color-surface-soft)}.user-menu__avatar img{width:100%;height:100%;object-fit:cover}.user-menu a,.user-menu button{display:flex;align-items:center;gap:9px;width:100%;border:0;border-radius:var(--radius-control);background:transparent;color:var(--color-text);padding:9px 10px;text-align:left;text-decoration:none}.user-menu a:hover,.user-menu button:hover{background:color-mix(in srgb,var(--color-primary),transparent 92%)}.user-menu button.is-muted{color:var(--color-muted)}.app-tooltip{position:fixed;z-index:5000;top:0;left:0;max-width:min(280px,calc(100vw - 16px));border-radius:8px;background:color-mix(in srgb,var(--color-text),#000 8%);color:#fff;padding:7px 10px;font-size:12px;font-weight:800;line-height:1.25;pointer-events:none;box-shadow:0 12px 28px color-mix(in srgb,#000,transparent 78%)}.app-tooltip[hidden]{display:none}.modal-backdrop-lite{position:fixed;inset:0;z-index:90;display:grid;place-items:center;background:color-mix(in srgb,var(--color-text) 28%,transparent);padding:18px}.modal-backdrop-lite[hidden]{display:none}.group-reports-dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(920px,100%);max-height:calc(100vh - 36px);overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.group-reports-dialog__header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center;background:linear-gradient(135deg,var(--color-primary),color-mix(in srgb,var(--color-primary),var(--color-success) 30%));color:#fff;padding:16px 18px}.group-reports-dialog__header>span{display:grid;width:42px;height:42px;place-items:center;border-radius:14px;background:#ffffff2e}.group-reports-dialog__header strong,.group-reports-dialog__header small{display:block;min-width:0}.group-reports-dialog__header strong{font-size:18px}.group-reports-dialog__header small{opacity:.9;font-weight:750}.group-reports-dialog__body{display:grid;gap:16px;min-height:0;overflow:auto;overscroll-behavior:contain;padding:18px}.group-reports-dialog__footer{display:flex;justify-content:flex-end;border-top:1px solid var(--color-border);padding:12px 18px}.group-reports-intro{display:grid;gap:4px;border:1px solid color-mix(in srgb,var(--color-primary),transparent 76%);border-radius:var(--radius-card);background:color-mix(in srgb,var(--color-primary),transparent 93%);padding:12px 14px}.group-reports-intro p,.group-reports-section__title small,.group-report-option small,.group-reports-empty p{margin:0;color:var(--color-muted);font-weight:750}.group-reports-sections{display:grid;gap:14px}.group-reports-section{--report-section-accent: var(--color-primary);display:grid;gap:12px}.group-reports-section__title{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:11px;border:1px solid color-mix(in srgb,var(--report-section-accent),transparent 78%);border-radius:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--report-section-accent),transparent 90%),transparent 70%),var(--color-surface-soft);padding:11px 13px}.group-reports-section__icon{display:grid;width:38px;height:38px;place-items:center;border:1px solid color-mix(in srgb,var(--report-section-accent),transparent 64%);border-radius:12px;background:color-mix(in srgb,var(--report-section-accent),transparent 86%);color:var(--report-section-accent);box-shadow:inset 0 1px color-mix(in srgb,#fff,transparent 70%)}.group-reports-section__title strong,.group-reports-section__title small{display:block;min-width:0}.group-reports-section__title strong{line-height:1.15}.group-reports-section--success{--report-section-accent: var(--color-success)}.group-reports-section--warning{--report-section-accent: var(--color-warning)}.group-reports-section--danger{--report-section-accent: var(--color-danger)}.group-reports-section--info{--report-section-accent: #0ea5e9}.group-reports-section--primary{--report-section-accent: var(--color-primary)}.group-reports-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.group-report-option{--report-accent: var(--color-primary);position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;min-width:0;min-height:96px;border:1px solid color-mix(in srgb,var(--report-accent),var(--color-border) 72%);border-radius:var(--radius-card);background:linear-gradient(180deg,color-mix(in srgb,var(--report-accent),transparent 95%),transparent 58%),var(--color-surface-soft);color:var(--color-text);padding:14px 13px;text-decoration:none;overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.group-report-option:before{position:absolute;inset:0 auto 0 0;width:4px;background:var(--report-accent);content:"";opacity:.9}.group-report-option:hover{border-color:color-mix(in srgb,var(--report-accent) 58%,var(--color-border));background:linear-gradient(180deg,color-mix(in srgb,var(--report-accent),transparent 90%),transparent 62%),var(--color-surface);box-shadow:0 18px 38px color-mix(in srgb,var(--report-accent),transparent 84%);transform:translateY(-3px)}.group-report-option>span{display:grid;width:42px;height:42px;place-items:center;border:1px solid color-mix(in srgb,var(--report-accent),transparent 72%);border-radius:13px;background:color-mix(in srgb,var(--report-accent),transparent 88%);color:var(--report-accent);box-shadow:inset 0 1px color-mix(in srgb,#fff,transparent 72%)}.group-report-option>svg:last-child{color:color-mix(in srgb,var(--report-accent),var(--color-muted) 30%);transition:transform .18s ease}.group-report-option:hover>svg:last-child{transform:translate(2px)}.group-report-option.is-disabled{cursor:not-allowed;opacity:.62;filter:saturate(.45)}.group-report-option.is-disabled:hover{transform:none;box-shadow:none}.group-report-option.is-loading{pointer-events:none}.group-report-download-status{display:flex;align-items:center;gap:8px;border:1px solid color-mix(in srgb,var(--color-primary),transparent 72%);border-radius:10px;background:color-mix(in srgb,var(--color-primary),transparent 92%);color:var(--color-primary);font-weight:800;padding:10px 12px}.modal-backdrop-lite,.photo-editor-backdrop,.group-info-modal,.group-background-crop-backdrop,.biometric-confirm-backdrop,.confirm-dialog-backdrop,.school-year-modal,.student-account-detail-modal,.class-roulette-modal{z-index:100010!important}.global-student-search{position:fixed;top:calc(var(--header-height, 72px) + 10px);left:50%;transform:translate(-50%);z-index:1200;width:min(980px,calc(100vw - 28px));max-height:calc(100vh - 110px);overflow:auto;padding:18px;border:1px solid var(--border, #dbe3ee);border-radius:14px;background:var(--surface, #fff);box-shadow:0 18px 55px #0f172a33}.global-student-search__head{display:flex;gap:12px;align-items:end}.global-student-search__head label{flex:1;display:grid;gap:6px;color:var(--text-muted);font-weight:700}.global-student-search__head input{width:100%;min-height:52px;padding:0 16px;border:2px solid var(--primary,#2563eb);border-radius:10px;background:var(--surface-soft,#f8fafc);color:var(--text,#172033);font-size:1.08rem;outline:0}.global-student-search__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:12px;margin-top:16px}.global-student-result{display:flex;align-items:center;gap:12px;min-width:0;padding:12px;border:1px solid var(--border,#dbe3ee);border-radius:10px;color:inherit;text-decoration:none;background:var(--surface-soft,#f8fafc);transition:.16s ease}.global-student-result:hover{border-color:var(--primary,#2563eb);transform:translateY(-1px);box-shadow:0 7px 18px #2563eb1f}.global-student-result img{width:52px;height:52px;flex:0 0 52px;border-radius:50%;object-fit:cover}.global-student-result span{min-width:0;display:grid;gap:4px}.global-student-result strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.global-student-result small{color:var(--text-muted)}.global-student-result mark{padding:0 2px;border-radius:3px;background:#fde68a;color:inherit}.global-student-search__empty,.global-student-search__loading{display:flex;justify-content:center;align-items:center;gap:8px;padding:28px;color:var(--text-muted)}.global-student-search__loading svg{animation:spin 1s linear infinite}@media(max-width:600px){.global-student-search{top:10px}.global-student-search__grid{grid-template-columns:1fr}}@media(max-width:760px){.grades-page .grade-capture-table{display:table!important;width:max-content!important;min-width:780px!important}.grades-page .grade-capture-table thead{display:table-header-group!important}.grades-page .grade-capture-table tbody{display:table-row-group!important}.grades-page .grade-capture-table tr{display:table-row!important}.grades-page .grade-capture-table td,.grades-page .grade-capture-table th{display:table-cell!important;min-height:0!important;padding:revert!important;border-radius:0!important}.grades-page .grade-capture-table td:before,.grades-page .grade-capture-table th:before{content:none!important;display:none!important}.grades-page .grade-capture-table .grade-capture-mobile-group,.grades-page .grade-capture-table .grade-mobile-hide-extended{display:table-cell!important}.grades-page .grade-capture-table tbody td[data-grade-column-label*=CALIFIC i],.grades-page .grade-capture-table tbody td[data-grade-column-label*=RECUPER i],.grades-page .grade-capture-table tbody td[data-mobile-label*=CALIFIC i],.grades-page .grade-capture-table tbody td[data-mobile-label*=RECUPER i]{display:none!important}.grades-page .grade-capture-table [data-column-key^=gc][data-column-key*=base],.grades-page .grade-capture-table [data-column-key^=gc][data-column-key*=points],.grades-page .grade-capture-table [data-column-key^=gc][data-column-key*=rp],.grades-page .grade-capture-table [data-column-key^=gc][data-column-key*=r],.grades-page .grade-capture-table thead .grade-capture-table__competency,.grades-page .grade-capture-table thead .grade-capture-table__subgroups{display:none!important}.grades-page .grade-capture-mobile-group+td,.grades-page .grade-capture-mobile-group+th{border-top-left-radius:0!important}.grades-page .grade-capture-table tbody tr{box-shadow:0 8px 24px #0f172a1f}.grades-page .grade-capture-table tbody td,.grades-page .grade-capture-table tbody th{border-radius:6px}.grades-page .grade-capture-table tbody .grade-capture-mobile-group{border-radius:7px 7px 0 0;letter-spacing:.02em}.grades-page .grade-capture-table tbody tr[hidden]{display:none!important}.grades-page .grade-capture-tools label:has([data-grade-page-size]){display:none!important}.grades-page .grade-capture-mobile-group{grid-column:1 / -1!important;display:block!important;min-height:0!important;padding:10px 12px 7px!important;color:var(--color-primary);font-size:.78rem;font-weight:900;background:var(--color-surface-soft)!important}.grades-page .grade-capture-mobile-group:before{display:none!important}.grades-page .grade-capture-table tbody td[data-mobile-label^="Grupo de competencias"]:before,.grades-page .grade-capture-table tbody th[data-mobile-label^="Grupo de competencias"]:before{content:none!important;display:none!important}.grades-page .grade-mobile-hide-extended,.grades-page .grade-capture-table thead th.grade-mobile-hide-extended{display:none!important}.grades-page .grade-capture-table tbody .grade-capture-mobile-group+td{border-top-left-radius:0!important}.grades-page .grade-capture-table tbody td[data-mobile-label^=PC]{justify-content:center;min-height:52px}.grades-page .grade-capture-table tbody .grade-capture-mobile-group{margin-top:8px;box-shadow:inset 3px 0 0 var(--color-primary)}.grades-page .grade-capture-table tbody td[data-mobile-label^=PC] .grade-entry-input,.grades-page .grade-capture-table tbody td[data-mobile-label^=PC] .grade-entry-denominator{font-size:1rem;font-weight:900}}.student-promotion-table tr:has([data-promotion-student]:disabled) td:last-child{color:transparent}.app-tooltip-image{width:30px;height:30px;margin-right:7px;border-radius:50%;object-fit:cover;vertical-align:middle}.app-tooltip-image[hidden]{display:none}.header-notifications{position:relative}.notification-count{position:absolute;top:1px;right:1px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#dc2626;color:#fff;font-size:10px;line-height:16px;text-align:center}.notifications-panel{position:absolute;z-index:1000;top:calc(100% + 12px);right:-.35rem;width:min(390px,calc(100vw - 24px));max-height:460px;overflow:auto;padding:.65rem;border:1px solid color-mix(in srgb,var(--primary, #2563eb) 18%,var(--border, #dbe3ef));border-radius:1rem;background:var(--surface, #fff);box-shadow:0 22px 55px #0f172a38,0 2px 8px #0f172a14;animation:notifications-panel-in .18s ease-out}.notifications-panel:before{content:"";position:absolute;top:-6px;right:1.1rem;width:11px;height:11px;border-left:1px solid color-mix(in srgb,var(--primary, #2563eb) 18%,var(--border, #dbe3ef));border-top:1px solid color-mix(in srgb,var(--primary, #2563eb) 18%,var(--border, #dbe3ef));background:var(--surface, #fff);transform:rotate(45deg)}.notifications-panel header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .6rem .7rem;border-bottom:1px solid var(--border, #dbe3ef)}.notifications-panel__title{display:inline-flex;align-items:center;gap:.55rem;color:var(--text, #172033);font-size:.9rem}.notifications-panel__title svg{color:var(--primary, #2563eb)}.notifications-panel__count{padding:.25rem .55rem;border-radius:999px;background:color-mix(in srgb,var(--primary, #2563eb) 12%,transparent);color:var(--primary, #2563eb);font-size:.68rem;font-weight:800}.notification-item{position:relative;display:grid;grid-template-columns:2.45rem minmax(0,1fr) .45rem;align-items:center;gap:.75rem;width:100%;min-height:4.7rem;margin:.18rem 0;padding:.78rem .7rem;border:1px solid transparent;border-bottom-color:color-mix(in srgb,var(--border, #dbe3ef) 72%,transparent);border-radius:.8rem;background:transparent;color:inherit;text-align:left;cursor:pointer;transition:background .16s ease,transform .16s ease,box-shadow .16s ease,border-color .16s ease}.notification-item:last-child{border-bottom:0}.notification-item:hover{background:color-mix(in srgb,var(--primary, #2563eb) 8%,var(--surface, #fff));border-color:color-mix(in srgb,var(--primary, #2563eb) 18%,transparent);box-shadow:0 7px 18px #2563eb1a;transform:translateY(-1px)}.notification-item.is-unread{background:color-mix(in srgb,var(--primary, #2563eb) 7%,var(--surface, #fff));border-color:color-mix(in srgb,var(--primary, #2563eb) 14%,transparent)}.notification-item.is-unread:before{content:"";position:absolute;left:-1px;top:.8rem;bottom:.8rem;width:3px;border-radius:0 3px 3px 0;background:var(--primary, #2563eb)}.notification-item__icon{display:grid;place-items:center;width:2.25rem;height:2.25rem;border-radius:.7rem;background:linear-gradient(145deg,color-mix(in srgb,var(--primary, #2563eb) 18%,transparent),color-mix(in srgb,var(--primary, #2563eb) 7%,transparent));color:var(--primary, #2563eb)}.notification-item__icon--sender{overflow:hidden;border-radius:50%;background:var(--surface-muted, #eef3f8)}.notification-item__sender-photo{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%}.notification-item__content{display:grid;min-width:0;gap:4px}.notification-item__content strong{color:var(--text, #172033);font-size:.8rem;font-weight:800;letter-spacing:.01em}.notification-item__content strong,.notification-item__content small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notification-item__content small,.notification-item__content time{display:flex;align-items:center;gap:.25rem;color:var(--text-muted);font-size:.75rem}.notification-item__content small:first-of-type{color:var(--primary, #2563eb);font-weight:700}.notification-item__content time{margin-top:.08rem;font-size:.68rem;opacity:.85}.notification-item__state{width:.4rem;height:.4rem;border-radius:50%;background:transparent}.notification-item.is-unread .notification-item__state{background:#2563eb;box-shadow:0 0 0 3px #2563eb1f}@keyframes notifications-panel-in{0%{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.notifications-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem 1.5rem;color:var(--text-muted);text-align:center}.group-report-download-status[hidden]{display:none}.group-report-download-status[data-tone=success]{color:var(--color-success)}.group-report-download-status[data-tone=error]{color:var(--color-danger)}.group-report-download-status[data-tone=success] svg,.group-report-download-status[data-tone=error] svg{animation:none}.group-report-download-status svg{animation:report-download-spin .9s linear infinite}@keyframes report-download-spin{to{transform:rotate(360deg)}}.group-report-option strong,.group-report-option small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis}.group-report-option strong{margin-bottom:3px;font-size:13.5px;line-height:1.2}.group-report-option small{display:-webkit-box;line-height:1.28;-webkit-box-orient:vertical;-webkit-line-clamp:3;white-space:normal}.group-report-option--success{--report-accent: var(--color-success)}.group-report-option--warning{--report-accent: var(--color-warning)}.group-report-option--danger{--report-accent: var(--color-danger)}.group-report-option--info{--report-accent: #0ea5e9}.group-report-option--primary{--report-accent: var(--color-primary)}.group-reports-empty{display:grid;gap:8px;place-items:center;min-height:220px;text-align:center}.group-reports-empty svg{color:var(--color-muted)}@media(max-width:980px){.group-reports-options{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.group-reports-dialog{max-height:calc(100vh - 20px)}.group-reports-options{grid-template-columns:1fr}}.role-school-dialog{display:grid;gap:16px;width:min(680px,100%);max-height:min(720px,calc(100vh - 36px));overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);padding:18px}.role-school-dialog header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin:-18px -18px 0;border-bottom:1px solid color-mix(in srgb,var(--color-primary),transparent 68%);border-radius:var(--radius-card) var(--radius-card) 0 0;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary),transparent 84%),var(--color-surface-soft));padding:16px 18px}.role-school-dialog__icon{display:grid;width:42px;height:42px;place-items:center;border-radius:var(--radius-control);background:var(--color-primary);color:#fff}.role-school-dialog h2{margin:0;font-size:20px}.role-school-dialog footer{display:flex;justify-content:flex-end;margin:0 -18px -18px;border-top:1px solid var(--color-border);background:var(--color-surface-soft);padding:12px 18px}.role-school-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.role-school-option{display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);color:var(--color-text);padding:12px;text-align:left;box-shadow:0 8px 20px color-mix(in srgb,var(--color-text),transparent 94%);cursor:pointer;transform:translateY(0);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease}.role-school-option:not(.is-current):hover{border-color:color-mix(in srgb,var(--color-primary),transparent 35%);background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary),transparent 91%),var(--color-surface));box-shadow:0 16px 34px color-mix(in srgb,var(--color-primary),transparent 84%);transform:translateY(-3px)}.role-school-option:not(.is-current):focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary),transparent 70%);outline-offset:3px}.role-school-option.is-loading{opacity:.7}.role-school-option.is-current{cursor:default;border-color:color-mix(in srgb,var(--color-success),var(--color-primary) 42%);background:linear-gradient(135deg,color-mix(in srgb,var(--color-success),transparent 82%),color-mix(in srgb,var(--color-primary),transparent 88%));box-shadow:0 14px 34px color-mix(in srgb,var(--color-success),transparent 82%),inset 0 0 0 1px color-mix(in srgb,#fff,transparent 55%);opacity:1}.role-school-option:disabled{cursor:wait;opacity:.72}.role-school-option__logo{width:52px;height:52px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:#fff;object-fit:contain;padding:5px}.role-school-option span,.role-school-option strong,.role-school-option small{min-width:0}.role-school-option strong,.role-school-option small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-school-option em{display:inline-flex;align-items:center;gap:5px;margin-top:4px;border-radius:999px;background:color-mix(in srgb,var(--color-success),transparent 76%);color:color-mix(in srgb,var(--color-success),#06281d 34%);padding:3px 7px;font-size:11px;font-style:normal;font-weight:850}.role-school-option em svg{width:13px;height:13px}.modal-loading{display:flex;align-items:center;justify-content:center;gap:9px;min-height:140px;color:var(--color-muted);font-weight:800}.user-chip{display:grid;gap:2px;justify-items:end;margin-right:8px}.user-chip span{color:var(--color-muted)}.app-main{grid-column:2;grid-row:1;min-width:0;padding:calc(var(--app-header-height) + 30px) 30px 30px}.content-breadcrumbs{margin-bottom:16px}.content-breadcrumbs .breadcrumbs{margin-top:0;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);padding:9px 12px;box-shadow:0 8px 24px #0f1f350d}.login-page{display:grid;min-height:100vh;place-items:center;padding:24px}.login-card{width:min(440px,100%);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);padding:28px}.login-banner{display:block;width:100%;max-height:132px;margin-bottom:22px;border-radius:calc(var(--radius-card) - 6px);object-fit:cover}.login-card h1{margin:0 0 22px}.password-field{display:grid;grid-template-columns:minmax(0,1fr) 42px;align-items:center;gap:6px}.password-field input{min-width:0}.password-field .button{align-self:stretch}.login-submit{width:100%}.login-qr-option{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 0 1.25rem}.login-alternative-row{display:flex;align-items:stretch;justify-content:center;gap:.75rem;margin:0 0 .35rem}.login-biometric-option,.login-qr-option{display:flex;flex:0 0 9rem;align-items:stretch;justify-content:center;width:9rem;height:8.5rem;min-height:8.5rem;margin:0}.profile-identity-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:start;margin-top:1rem}.profile-sessions-card{width:100%;margin-top:1rem}.profile-sessions-card header{display:flex;align-items:center;gap:.75rem}.profile-sessions-card header>span{color:var(--color-primary)}.profile-sessions-card header h3{margin:0}.profile-sessions-card header p{margin:.2rem 0 0}.profile-sessions-list{display:grid;gap:.55rem;margin-top:1rem}.profile-session-item{display:flex;align-items:center;gap:.7rem;min-width:0;padding:.7rem;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface)}.profile-session-item.is-current{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 12%,transparent)}.profile-session-item__icon{display:grid;place-items:center;flex:0 0 2.2rem;height:2.2rem;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary)}.profile-session-item>div{display:grid;min-width:0;flex:1}.profile-session-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-muted)}.profile-sessions-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.6rem;margin-top:1rem}.profile-identity-tools>*{min-width:0}.profile-identity-tools .profile-qr-card,.profile-identity-tools .profile-biometric-card{height:100%;margin-top:0}.profile-biometric-card footer{display:flex;flex-wrap:wrap;gap:.65rem}.profile-biometric-item{display:flex;align-items:center;gap:.65rem;margin:.55rem 0;padding:.7rem .8rem;border:1px solid rgba(14,165,164,.25);border-radius:.65rem;background:linear-gradient(135deg,#0ea5a414,#0f7bc70d)}.profile-biometric-item__icon{display:grid;place-items:center;width:2rem;height:2rem;flex:none;border-radius:50%;background:#d8f7ed;color:#087f5b}.profile-biometric-item>div{min-width:0;flex:1}.profile-biometric-item strong,.profile-biometric-item small{display:block;overflow-wrap:anywhere}.profile-biometric-item small{margin-top:.15rem;color:var(--color-muted);font-size:.78rem}.profile-biometric-item__status{padding:.22rem .45rem;border-radius:999px;background:#d8f7ed;color:#087f5b;font-size:.7rem;white-space:nowrap}.profile-biometric-item__revoke{margin-left:auto;flex:none;padding:.3rem;color:#b42318}.biometric-confirm-backdrop{z-index:10000}.biometric-confirm-dialog{width:min(420px,calc(100% - 2rem));padding:1rem;border:1px solid var(--color-border);border-radius:.75rem;background:var(--color-surface);box-shadow:0 24px 70px #00000047}.biometric-confirm-dialog header{display:flex;align-items:center;gap:.55rem;color:var(--color-danger,#b42318)}.biometric-confirm-dialog p{margin:1rem 0;color:var(--color-text)}.biometric-confirm-dialog footer{display:flex;justify-content:flex-end;gap:.6rem}.biometric-debug{display:block;margin-top:.4rem;font-family:monospace;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:760px){.profile-identity-tools{grid-template-columns:1fr}}.login-alternative-row .login-qr-option:after{display:none}@media(max-width:520px){.login-alternative-row{gap:.45rem}.qr-login-trigger,.login-biometric-trigger{width:8rem!important;max-width:8rem!important}}.login-google-option{position:relative;margin:0 0 1.05rem;padding-bottom:.15rem}.login-method-alert{width:100%;margin:0 0 .55rem}.login-main-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.login-main-heading .login-remember-switch{flex:0 0 auto}.login-alternative-row+.login-password-heading{margin-top:1rem}.login-google-option:after,.login-qr-option:after{content:"";display:block;width:42%;height:1px;margin:1rem auto 0;background:var(--color-border);opacity:.8}.login-google-trigger{width:100%;justify-content:center;gap:.7rem;min-height:3.15rem;border:2px solid #4285f4;background:#fff;color:#202124;box-shadow:0 3px 10px #4285f42e;font-weight:650}.login-google-trigger:hover{border-color:#1a73e8;background:#f8fbff;color:#174ea6;box-shadow:0 5px 14px #4285f447;transform:translateY(-1px)}.login-google-trigger:focus-visible{outline:3px solid rgba(66,133,244,.35);outline-offset:2px}.login-google-trigger .brand-icon{color:#4285f4;flex:0 0 auto}.login-qr-option{margin-bottom:.35rem}.login-password-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:1rem 0 .65rem;padding:.7rem 0;border-top:1px solid var(--color-border);border-bottom:1px solid var(--color-border);border-left:0;text-align:left;font-size:.95rem;line-height:1.25;font-weight:600;color:var(--color-text);background:transparent}.login-forgot-link{display:block;margin:.7rem 0 .1rem;padding:0;border:0;background:transparent;color:var(--color-primary);cursor:pointer;font:inherit;font-size:.85rem;text-align:left}.login-forgot-link:hover{text-decoration:underline}.password-recovery-dialog{width:min(440px,calc(100vw - 2rem));padding:1.25rem;border-radius:12px;background:var(--color-surface);color:var(--color-text);box-shadow:0 20px 60px #00000047}.password-recovery-dialog header{display:flex;gap:.75rem;align-items:flex-start;margin-bottom:1rem}.password-recovery-dialog header h2{margin:0}.password-recovery-dialog header p{margin:.25rem 0 0;color:var(--color-muted)}.password-recovery-dialog form label{display:grid;gap:.35rem}.password-recovery-dialog form input{width:100%;box-sizing:border-box;min-height:44px;border:1px solid var(--color-border-strong, var(--color-border));border-radius:10px;background:var(--color-surface-soft);padding:.65rem .8rem;color:var(--color-text);outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.password-recovery-dialog form input:focus,.password-reset-card form input:focus{border-color:var(--color-primary);background:var(--color-surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary),transparent 82%)}.password-recovery-dialog footer{display:flex;justify-content:flex-end;gap:.6rem;margin-top:1rem}.password-reset-card{padding:1.4rem}.password-reset-card>h1{display:flex;align-items:center;gap:.65rem;margin:0 0 .5rem}.password-reset-card>p{color:var(--color-muted)}.password-reset-card form{display:grid;gap:.8rem}.password-reset-card form[hidden]{display:none!important}.password-reset-card.is-invalid-token>p{display:none}.password-reset-card label{display:grid;gap:.35rem}.password-reset-card form input{min-height:46px;border:1px solid var(--color-border-strong, var(--color-border));border-radius:10px;background:var(--color-surface-soft);padding:.7rem .85rem;color:var(--color-text);outline:none;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.password-reset-input{display:flex;align-items:center;gap:.35rem}.password-reset-input input{flex:1;min-width:0}.password-requirements{margin:-.35rem 0 .3rem;padding-left:1.2rem;color:var(--color-muted);font-size:.82rem}.password-requirements li.is-valid{color:#18864b;text-decoration:line-through}.password-recovery-dialog .form-alert,.password-reset-card .form-alert{margin-top:.55rem}.web-session-page{min-height:100dvh;display:grid;place-items:center;padding:clamp(18px,4vw,56px);box-sizing:border-box;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 12%,var(--color-background)),var(--color-background) 55%),var(--color-background)}.web-session-panel{width:min(940px,100%);display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-template-areas:"brand qr" "copy qr";gap:24px 42px;align-items:center;padding:clamp(24px,5vw,48px);box-sizing:border-box;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:0 24px 70px color-mix(in srgb,#000 18%,transparent)}.web-session-brand{grid-area:brand;align-self:end}.web-session-brand img{display:block;width:min(250px,70%);height:auto}.web-session-copy{grid-area:copy;align-self:start}.web-session-copy h1{margin:10px 0 12px;font-size:clamp(2rem,4vw,3.2rem);line-height:1.02;letter-spacing:0}.web-session-copy>p{max-width:52ch;margin:0;color:var(--color-muted);font-size:1.02rem;line-height:1.6}.web-session-eyebrow{display:inline-flex;gap:8px;align-items:center;color:var(--color-primary);font-weight:800}.web-session-copy ol{display:grid;gap:12px;margin:25px 0 0;padding:0;list-style:none}.web-session-copy li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:11px;align-items:center;color:var(--color-text)}.web-session-copy li>span{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:var(--color-primary);color:#fff;font-weight:900}.web-session-qr{grid-area:qr;display:grid;justify-items:center;gap:12px;min-width:0}.web-session-qr__frame{position:relative;width:min(292px,100%);aspect-ratio:1;overflow:hidden;box-sizing:content-box;border:10px solid #fff;outline:1px solid var(--color-border);border-radius:8px;background:#fff;box-shadow:0 15px 35px #0f172a24}.web-session-qr__frame canvas{display:block;width:100%!important;height:100%!important}.web-session-qr__overlay{position:absolute;inset:0;display:grid;place-items:center;background:#ffffffeb;color:var(--color-primary)}.web-session-qr__overlay[hidden]{display:none}.web-session-qr__overlay svg,.web-session-qr__status.is-loading svg{animation:web-session-spin .9s linear infinite}.web-session-qr__status{display:flex;justify-content:center;align-items:center;gap:8px;min-height:24px;text-align:center;font-weight:800}.web-session-qr__status.is-success{color:var(--color-success)}.web-session-qr__status.is-error{color:var(--color-danger)}.web-session-qr__expiry{min-height:20px;color:var(--color-muted);font-size:.9rem;text-align:center}@keyframes web-session-spin{to{transform:rotate(360deg)}}.web-session-scanner__dialog{width:min(520px,100%)}.web-session-scanner__camera{position:relative;margin:16px;overflow:hidden;aspect-ratio:4 / 3;border-radius:8px;background:#080b10}.web-session-scanner__camera video{display:block;width:100%;height:100%;object-fit:cover}.web-session-scanner__guide{position:absolute;inset:14%;border:3px solid rgba(255,255,255,.9);border-radius:8px;box-shadow:0 0 0 999px #0000003b;pointer-events:none}.web-session-scanner__status{display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;margin:0 16px 16px;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface-muted);text-align:center;font-weight:750}.web-session-scanner__status.is-success{border-color:color-mix(in srgb,var(--color-success),transparent 55%);color:var(--color-success)}.web-session-scanner__status.is-error{border-color:color-mix(in srgb,var(--color-danger),transparent 55%);color:var(--color-danger)}@media(max-width:720px){.web-session-page{place-items:start center;padding:14px}.web-session-panel{grid-template-columns:1fr;grid-template-areas:"brand" "copy" "qr";gap:18px;padding:22px 18px 26px}.web-session-brand img{width:min(220px,72%);margin-inline:auto}.web-session-copy{text-align:center}.web-session-copy h1{font-size:2.2rem}.web-session-copy li{text-align:left}.web-session-qr__frame{width:min(276px,calc(100vw - 78px))}.web-session-scanner__camera{margin:12px}.web-session-scanner__status{margin:0 12px 12px}}.login-password-heading>span{min-width:0}.login-submit-row{display:flex;align-items:center;gap:.75rem}.login-submit-row .login-submit{flex:1 1 auto}.login-remember-switch{display:inline-flex;align-items:center;gap:.65rem;width:max-content;margin:0 0 0 auto;color:var(--color-text);font-size:.8rem;font-weight:600;cursor:pointer}.login-remember-switch input{position:absolute;opacity:0;pointer-events:none}.login-remember-switch i{position:relative;display:block;width:2.35rem;height:1.25rem;border:1px solid var(--color-border-strong, var(--color-border));border-radius:999px;background:var(--color-border);transition:background .16s ease,border-color .16s ease}.login-remember-switch i:after{content:"";position:absolute;top:2px;left:2px;width:.9rem;height:.9rem;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0f172a40;transition:transform .16s ease}.login-remember-switch input:checked+i{border-color:var(--color-primary);background:var(--color-primary)}.login-remember-switch input:checked+i:after{transform:translate(1.1rem)}.login-remember-switch:hover i{border-color:var(--color-primary)}@media(max-width:520px){.login-submit-row{gap:.5rem}.login-submit-row .login-remember-switch{gap:.35rem;font-size:.74rem}}.qr-login-trigger,.login-biometric-trigger{box-sizing:border-box;display:flex!important;flex:0 0 9rem;width:9rem!important;min-width:9rem!important;max-width:9rem!important;height:8.5rem!important;min-height:8.5rem!important;max-height:8.5rem!important;flex-direction:column!important;align-items:center;justify-content:center;gap:.5rem;padding:.75rem .35rem 1rem!important;border:1px solid rgba(15,123,199,.35);border-radius:.7rem;background:linear-gradient(135deg,#0f7bc71a,#0ea5a414);color:var(--color-primary);font-size:1.2rem!important;font-weight:400!important;line-height:1.15;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.login-access-icon{display:grid;place-items:center;flex:0 0 72px;width:72px;height:72px}.login-access-icon svg{display:block;flex:none}.qr-login-trigger>span:last-child,.login-biometric-trigger>span:last-child{display:block;font-size:1.2rem!important;font-weight:400!important;line-height:1.15;text-align:center}.login-biometric-option>.login-biometric-trigger,.login-qr-option>.qr-login-trigger{align-self:stretch}.qr-login-trigger:hover,.login-biometric-trigger:hover{border-color:var(--color-primary)!important;background:linear-gradient(135deg,#0f7bc72e,#0ea5a424)!important;color:var(--color-primary)!important;box-shadow:0 8px 18px #0f1f351f;transform:translateY(-1px)}.school-options{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:12px}.school-options p{margin:0 0 10px;color:var(--color-muted)}.school-options-grid{display:grid;gap:8px}.school-option{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);padding:10px;text-align:left}.school-option:hover{border-color:color-mix(in srgb,var(--color-primary),transparent 35%);background:color-mix(in srgb,var(--color-primary),transparent 92%)}.school-option__logo{width:46px;height:46px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:#fff;object-fit:contain;padding:4px}.school-option__body{display:grid;gap:2px;min-width:0}.school-option__body span{display:block;color:var(--color-muted);font-size:12px}.dashboard-page{align-content:start}.dashboard-hero{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:22px;align-items:start}.dashboard-hero--home{overflow:hidden;border-color:color-mix(in srgb,var(--color-primary),transparent 72%);background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary),transparent 88%),transparent 52%),linear-gradient(45deg,color-mix(in srgb,var(--color-success),transparent 90%),var(--color-surface))}.dashboard-hero--home h2{max-width:720px;font-size:clamp(28px,4vw,48px);line-height:1.04}.dashboard-hero--home p:not(.eyebrow){max-width:760px;color:color-mix(in srgb,var(--color-text),var(--color-muted) 34%);font-size:16px}.dashboard-school{gap:20px}.school-home-hero{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:28px;overflow:hidden;border:1px solid color-mix(in srgb,var(--color-primary),transparent 72%);border-radius:var(--radius-card);background:radial-gradient(circle at 92% 12%,color-mix(in srgb,var(--color-success),transparent 70%),transparent 24%),linear-gradient(135deg,color-mix(in srgb,var(--color-primary),transparent 88%),var(--color-surface));padding:clamp(20px,3vw,34px);box-shadow:var(--shadow-card)}.school-home-hero__logo{display:grid;width:clamp(120px,16vw,180px);aspect-ratio:1;place-items:center;border:1px solid var(--color-border);border-radius:24px;background:#fff;box-shadow:0 16px 34px color-mix(in srgb,var(--color-text),transparent 88%)}.school-home-hero__logo img{max-width:86%;max-height:86%;object-fit:contain}.school-home-hero__content{min-width:0}.school-home-hero h2{margin:0;max-width:900px;color:var(--color-text);font-size:clamp(30px,4.8vw,58px);line-height:1.02}.school-home-hero p:not(.eyebrow){margin:10px 0 16px;color:color-mix(in srgb,var(--color-primary),var(--color-text) 28%);font-size:clamp(16px,2vw,22px);font-weight:800}.school-home-hero__content>span{display:block;width:min(520px,86%);height:5px;border-radius:999px;background:linear-gradient(90deg,var(--color-primary),var(--color-success))}.school-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.school-info-card{display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;min-height:154px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:18px;box-shadow:var(--shadow-card)}.school-info-card__icon{display:grid;width:42px;height:42px;place-items:center;border-radius:14px;background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary)}.school-info-card--success .school-info-card__icon{background:color-mix(in srgb,var(--color-success),transparent 84%);color:var(--color-success)}.school-info-card--danger .school-info-card__icon{background:color-mix(in srgb,var(--color-danger),transparent 88%);color:var(--color-danger)}.school-info-card--info .school-info-card__icon{background:color-mix(in srgb,var(--color-info),transparent 86%);color:var(--color-info)}.school-info-card--warning .school-info-card__icon{background:color-mix(in srgb,var(--color-warning),transparent 82%);color:color-mix(in srgb,var(--color-warning),var(--color-text) 28%)}.school-info-card--muted .school-info-card__icon{background:var(--color-surface-soft);color:var(--color-muted)}.school-info-card h3{margin:0 0 7px;font-size:13px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.school-info-card__body{margin:0;color:color-mix(in srgb,var(--color-text),var(--color-muted) 18%);font-weight:700;line-height:1.42;overflow-wrap:anywhere}.school-info-card a{color:color-mix(in srgb,var(--color-primary),var(--color-text) 18%);text-decoration:none}.school-info-card a:hover{text-decoration:none}.school-info-card small{display:block;margin-top:8px;color:var(--color-muted);line-height:1.35}.school-card-actions,.school-social-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.school-social-link{gap:7px}.school-social-link .brand-icon{filter:saturate(1.05)}.admin-form-hero h2{display:flex;align-items:center;gap:10px}.admin-form-card{display:grid;gap:16px;max-width:780px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary),transparent 94%),transparent 42%),var(--color-surface);box-shadow:var(--shadow-card);padding:18px}.admin-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.admin-form-grid>.admin-field--wide{grid-column:1 / -1}.admin-field:first-child,.admin-field:nth-last-child(1):nth-child(odd){grid-column:1 / -1}.admin-form-actions{justify-content:flex-start}.schools-editor-layout{display:grid;grid-template-columns:minmax(280px,.95fr) minmax(0,1.35fr);gap:18px;align-items:start}.schools-gallery-panel,.school-edit-panel{min-width:0}.school-edit-panel{max-width:none}.school-edit-form-card{max-width:1180px}.schools-gallery-panel{display:grid;gap:12px}.schools-gallery-header{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-muted);font-size:13px;font-weight:800}.schools-gallery-header strong{color:var(--color-text);font-size:15px}.schools-gallery{display:grid;gap:12px}.schools-gallery--full{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.school-gallery-card{display:grid;gap:0;width:100%;overflow:hidden;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);color:var(--color-text);padding:0;text-align:left;box-shadow:var(--shadow-card);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.school-gallery-card:hover,.school-gallery-card:focus-within{border-color:color-mix(in srgb,var(--color-primary),var(--color-border) 42%);box-shadow:0 16px 34px color-mix(in srgb,var(--color-primary),transparent 86%);outline:none;transform:translateY(-3px)}.school-gallery-card.is-selected{border-color:color-mix(in srgb,var(--color-primary),var(--color-success) 35%);background:color-mix(in srgb,var(--color-primary),var(--color-surface) 94%);box-shadow:inset 4px 0 0 var(--color-primary),0 14px 28px color-mix(in srgb,var(--color-primary),transparent 88%)}.school-gallery-card__body{display:grid;grid-template-columns:68px minmax(0,1fr);gap:14px;align-items:center;padding:16px 14px 10px}.school-gallery-card__logo{display:grid;place-items:center;width:68px;height:68px;overflow:hidden;border:3px solid var(--color-surface);border-radius:50%;background:var(--color-surface);box-shadow:0 8px 18px #0f172a24}.school-gallery-card__logo img{width:100%;height:100%;object-fit:contain}.school-gallery-card__body strong,.school-gallery-card__body small{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.school-gallery-card__body strong{font-size:14px}.school-gallery-card__body small,.school-gallery-card__meta{color:var(--color-muted);font-size:12px}.school-gallery-card__meta{display:flex;flex-wrap:wrap;gap:8px;padding:0 14px 14px}.school-gallery-card__meta span{display:inline-flex;align-items:center;gap:5px}.school-gallery-card__meta svg{width:14px;height:14px}.school-status-badge{border:1px solid var(--color-border);border-radius:999px;font-weight:800;padding:5px 9px}.school-status-badge.is-active{background:color-mix(in srgb,var(--color-success),var(--color-surface) 88%);border-color:color-mix(in srgb,var(--color-success),var(--color-border) 28%);color:var(--color-success)}.school-status-badge.is-inactive{background:color-mix(in srgb,var(--color-danger),var(--color-surface) 90%);border-color:color-mix(in srgb,var(--color-danger),var(--color-border) 35%);color:var(--color-danger)}.school-gallery-card__actions{display:flex;justify-content:flex-end;padding:0 14px 14px}.school-gallery-card__actions .button{min-height:36px}.school-edit-header{display:flex;align-items:center;gap:12px;margin-bottom:16px}.school-edit-header>span{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary)}.school-edit-header h3{margin:0}.school-edit-sections{display:grid;gap:18px}.school-edit-section{display:grid;gap:14px;border:1px solid var(--color-border);border-radius:14px;background:color-mix(in srgb,var(--color-surface-soft),var(--color-surface) 48%);padding:14px}.school-edit-section>header{display:flex;align-items:center;gap:10px;color:var(--color-text)}.school-edit-section>header>span{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary)}.school-edit-section>header strong{font-size:15px}.input-with-icon--textarea{align-items:flex-start}.input-with-icon--textarea>svg{margin-top:11px}.school-media-grid{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(280px,1.2fr);gap:16px;align-items:start}.school-media-field{display:grid;gap:10px}.school-media-preview{display:grid;place-items:center;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);overflow:hidden;padding:10px}.school-media-preview img{width:100%;height:100%;object-fit:contain}.school-media-preview--square{width:min(240px,100%);aspect-ratio:1}.school-media-preview--banner{width:min(420px,100%);aspect-ratio:210 / 46}.school-media-dropzone{min-height:132px}.school-media-url{margin-top:2px}.school-image-editor-dialog{width:min(420px,100%)}.school-image-canvas-wrap{--school-image-editor-ratio: 1 / 1;--school-image-editor-width: 420px;--school-image-editor-height: 420px}.profile-edit-card{max-width:900px}.profile-edit-card__summary{display:flex;align-items:center;gap:16px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-soft);padding:14px}.profile-edit-card__summary h3{margin:2px 0 4px;font-size:21px}.profile-edit-card__summary p{margin:0;color:var(--color-muted)}.profile-edit-card__avatar{display:grid;flex:0 0 76px;place-items:center;width:76px;height:76px;overflow:hidden;border:3px solid color-mix(in srgb,var(--color-primary),transparent 45%);border-radius:50%;background:var(--color-surface);box-shadow:0 12px 28px color-mix(in srgb,var(--color-primary),transparent 86%)}.profile-edit-card__avatar img{width:100%;height:100%;object-fit:cover}.profile-edit-page{width:100%;max-width:none}.profile-edit-layout{display:grid;grid-template-columns:minmax(0,1fr)!important;width:100%!important;gap:18px;align-items:start}.profile-edit-layout__main,.profile-edit-layout__side{display:grid;width:100%;gap:18px;min-width:0}.profile-edit-layout__side{position:static;grid-column:1 / -1!important;width:100%!important}.profile-edit-card,.profile-management-card{display:grid;gap:18px;max-width:none}.profile-edit-layout>*{max-width:none}.profile-edit-card{grid-template-columns:1fr;align-items:start}.profile-edit-card>.profile-edit-card__summary,.profile-edit-card>.form-alert,.profile-edit-card>.form-actions{grid-column:1 / -1}.profile-active-toggle{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-height:58px;border:1px solid color-mix(in srgb,var(--color-success),transparent 58%);border-radius:var(--radius-control);background:linear-gradient(135deg,color-mix(in srgb,var(--color-success),transparent 90%),var(--color-surface));box-shadow:0 10px 24px color-mix(in srgb,var(--color-success),transparent 88%);color:var(--color-text);cursor:pointer;padding:10px 12px;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.profile-active-toggle:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--color-success),transparent 35%);box-shadow:0 14px 30px color-mix(in srgb,var(--color-success),transparent 82%)}.profile-active-toggle input{position:absolute;opacity:0;pointer-events:none}.profile-active-toggle__track{display:flex;align-items:center;width:58px;height:32px;border-radius:999px;background:color-mix(in srgb,var(--color-success),transparent 18%);padding:4px;transition:background .16s ease}.profile-active-toggle__thumb{display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:#fff;color:var(--color-success);box-shadow:0 3px 10px color-mix(in srgb,var(--color-text),transparent 78%);transform:translate(26px);transition:color .16s ease,transform .16s ease}.profile-active-toggle__thumb svg{width:14px;height:14px}.profile-active-toggle__body{display:grid;gap:2px;min-width:0}.profile-active-toggle__body strong{font-size:13px;font-weight:900}.profile-active-toggle__body small{color:var(--color-success);font-size:12px;font-weight:850}.profile-active-toggle__off{display:none}.profile-active-toggle input:not(:checked)+.profile-active-toggle__track{background:color-mix(in srgb,var(--color-muted),transparent 32%)}.profile-active-toggle input:not(:checked)+.profile-active-toggle__track .profile-active-toggle__thumb{color:var(--color-muted);transform:translate(0)}.profile-active-toggle:has(input:not(:checked)){border-color:color-mix(in srgb,var(--color-muted),transparent 58%);background:linear-gradient(135deg,color-mix(in srgb,var(--color-muted),transparent 91%),var(--color-surface));box-shadow:0 8px 18px color-mix(in srgb,var(--color-muted),transparent 88%)}.profile-active-toggle:has(input:not(:checked)) .profile-active-toggle__body small{color:var(--color-muted)}.profile-active-toggle:has(input:not(:checked)) .profile-active-toggle__on{display:none}.profile-active-toggle:has(input:not(:checked)) .profile-active-toggle__off{display:inline}.profile-form-section{display:grid;gap:14px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-surface-soft),var(--color-surface) 36%);padding:16px}.profile-form-section__header{display:flex;align-items:center;gap:10px;margin-bottom:2px}.profile-form-section__header span{display:grid;flex:0 0 36px;width:36px;height:36px;place-items:center;border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-primary),transparent 86%);color:var(--color-primary)}.profile-form-section__header h3{margin:0;font-size:17px}.profile-switch-field{align-self:end;min-height:42px}.profile-photo-control{display:grid;grid-template-columns:118px minmax(0,1fr);gap:16px;align-items:start;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);padding:14px}.profile-photo-preview{display:grid;width:118px;height:118px;overflow:hidden;place-items:center;border:3px solid color-mix(in srgb,var(--color-primary),transparent 55%);border-radius:50%;background:var(--color-surface-soft);box-shadow:0 14px 28px color-mix(in srgb,var(--color-primary),transparent 88%)}.profile-photo-preview img{width:100%;height:100%;object-fit:cover}.profile-photo-control__body{display:grid;gap:10px}.profile-photo-control__body .field{margin:0}.profile-photo-control__body small{color:var(--color-muted);font-size:12px;font-weight:700}.profile-photo-actions{display:flex;flex-wrap:wrap;gap:8px}.profile-photo-status{display:grid;gap:7px;border:1px solid color-mix(in srgb,var(--color-info),transparent 58%);border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-info),transparent 92%);color:var(--color-info);padding:9px 11px}.profile-photo-status[hidden]{display:none}.profile-photo-status[data-tone=success]{border-color:color-mix(in srgb,var(--color-success),transparent 55%);background:color-mix(in srgb,var(--color-success),transparent 92%);color:var(--color-success)}.profile-photo-status[data-tone=error]{border-color:color-mix(in srgb,var(--color-danger),transparent 55%);background:color-mix(in srgb,var(--color-danger),transparent 92%);color:var(--color-danger)}.profile-photo-status strong{font-size:12px;font-weight:850}.profile-photo-status span{display:block;height:7px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,currentColor,transparent 82%)}.profile-photo-status i{display:block;width:0;height:100%;border-radius:inherit;background:currentColor;transition:width .18s ease}.profile-photo-dropzone{display:grid;justify-items:center;gap:5px;border:2px dashed color-mix(in srgb,var(--color-primary),transparent 45%);border-radius:var(--radius-control);background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary),transparent 94%),color-mix(in srgb,var(--color-surface),#fff 12%));color:var(--color-muted);padding:16px;text-align:center;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.profile-photo-dropzone span{display:grid;width:40px;height:40px;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--color-primary),transparent 86%);color:var(--color-primary)}.profile-photo-dropzone strong{color:var(--color-text)}.profile-photo-dropzone:hover,.profile-photo-dropzone.is-dragging,.profile-photo-dropzone:focus-visible{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary),transparent 89%);box-shadow:0 14px 30px color-mix(in srgb,var(--color-primary),transparent 84%);outline:0;transform:translateY(-1px)}.photo-editor-backdrop{position:fixed;inset:0;z-index:95;display:grid;place-items:center;background:color-mix(in srgb,var(--color-text) 30%,transparent);padding:12px}.photo-editor-backdrop[hidden]{display:none}.photo-editor-dialog{display:grid;gap:8px;width:min(540px,100%);max-height:calc(100vh - 24px);overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);padding:12px}.photo-editor-dialog header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center}.photo-editor-dialog header>span{display:grid;width:38px;height:38px;place-items:center;border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-primary),transparent 84%);color:var(--color-primary)}.photo-editor-dialog h3,.photo-editor-dialog p{margin:0}.photo-editor-dialog p{color:var(--color-muted);font-size:12px;font-weight:700}.photo-editor-canvas-wrap,.photo-camera-frame{display:grid;place-items:center;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:8px}.photo-editor-canvas-wrap{overflow:hidden}.photo-editor-canvas-wrap canvas{width:min(380px,100%,max(240px,calc(100vh - 292px)));aspect-ratio:1;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:50%;box-shadow:0 12px 28px color-mix(in srgb,var(--color-text),transparent 88%)}.photo-editor-canvas-wrap.school-image-canvas-wrap canvas{width:min(var(--school-image-editor-width),100%);height:min(var(--school-image-editor-height),calc(100vh - 380px));aspect-ratio:var(--school-image-editor-ratio);border-radius:14px;background:var(--color-surface)}.photo-editor-tools{display:grid;grid-template-columns:auto minmax(86px,1fr) auto auto auto auto auto;gap:6px;align-items:end}.photo-editor-tools .btn{min-width:34px;width:34px;height:34px;justify-content:center;padding:0}.photo-editor-tools .btn.is-active{border-color:color-mix(in srgb,var(--color-primary),transparent 34%);background:color-mix(in srgb,var(--color-primary),transparent 86%);color:var(--color-primary)}.school-image-zoom-field{margin:0}.school-image-zoom-field .field-label{font-size:11px}.school-image-zoom-field input{height:34px;padding-inline:8px}.photo-editor-canvas-wrap canvas:active{cursor:grabbing}.photo-camera-frame video{width:min(380px,100%,max(240px,calc(100vh - 292px)));aspect-ratio:1;overflow:hidden;border-radius:50%;object-fit:cover;box-shadow:0 12px 28px color-mix(in srgb,var(--color-text),transparent 88%);transform:scaleX(-1)}.photo-editor-dialog footer{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}@media(max-height:680px),(max-width:560px){.photo-editor-backdrop{align-items:start;padding:8px}.photo-editor-dialog{gap:8px;max-height:calc(100vh - 16px);padding:10px}.photo-editor-dialog header{gap:8px}.photo-editor-dialog header>span{width:32px;height:32px}.photo-editor-dialog h3{font-size:16px}.photo-editor-canvas-wrap,.photo-camera-frame{padding:6px}.photo-editor-canvas-wrap.school-image-canvas-wrap canvas{height:min(var(--school-image-editor-height),calc(100vh - 300px))}.photo-editor-tools{grid-template-columns:auto minmax(64px,1fr) auto auto auto auto auto}}.profile-checkbox-columns{display:grid;grid-template-columns:1fr;gap:22px;align-items:start}.profile-checkbox-group{display:grid;gap:14px;min-width:0;margin:0;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);padding:18px}.profile-checkbox-group legend{display:inline-flex;align-items:center;gap:8px;float:left;width:100%;margin:0 0 4px;color:var(--color-text);font-size:13px;font-weight:900}.profile-checkbox-group>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}.profile-assignment-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.profile-assignment-item{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);padding:12px 14px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.profile-assignment-item:hover{border-color:color-mix(in srgb,var(--color-primary),transparent 42%);box-shadow:0 12px 28px color-mix(in srgb,var(--color-primary),transparent 88%);transform:translateY(-2px)}.profile-assignment-item strong{display:inline-flex;align-items:center;gap:8px}.profile-assignment-item span{display:block;margin-top:4px;color:var(--color-muted);font-size:13px;font-weight:750}.profile-danger-zone{display:grid;width:100%;max-width:none;margin-top:18px;box-sizing:border-box;grid-column:1 / -1;gap:14px;border-color:color-mix(in srgb,var(--color-danger),transparent 58%);background:linear-gradient(135deg,color-mix(in srgb,var(--color-danger),transparent 92%),var(--color-surface))}.profile-danger-zone header{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:start;gap:12px}.profile-danger-zone header>span{display:grid;width:42px;height:42px;place-items:center;border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-danger),transparent 86%);color:var(--color-danger)}.profile-danger-zone h3{margin:0 0 5px;color:var(--color-danger)}.profile-danger-zone p{margin:0;color:var(--color-muted)}.student-import-card{gap:18px;width:100%;max-width:none}.student-import-page{width:min(100%,calc(100vw - var(--sidebar-expanded-width) - 70px));max-width:none}.app-shell.is-sidebar-collapsed .student-import-page{width:min(100%,calc(100vw - var(--sidebar-rail-width) - 70px))}.student-import-dropzone{display:grid;place-items:center;gap:8px;min-height:190px;width:100%;border:2px dashed color-mix(in srgb,var(--color-primary),transparent 38%);border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary),transparent 91%),transparent),var(--color-surface-muted);color:var(--color-text);cursor:pointer;text-align:center;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease,background .16s ease}.student-import-dropzone:hover,.student-import-dropzone.is-dragging{transform:translateY(-2px);border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary),transparent 88%);box-shadow:var(--shadow-card)}.student-import-dropzone span{display:inline-grid;place-items:center;width:62px;height:62px;border-radius:18px;background:color-mix(in srgb,var(--color-primary),transparent 86%);color:var(--color-primary)}.student-import-dropzone small{max-width:680px;color:var(--color-muted)}.student-import-summary{display:flex;flex-wrap:wrap;gap:10px}.student-import-summary span{display:inline-flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-muted);color:var(--color-muted);font-size:13px}.student-import-summary strong{color:var(--color-text)}.student-import-skipped{display:grid;gap:10px;border:1px solid color-mix(in srgb,var(--color-warning),transparent 50%);border-radius:var(--radius-control);background:#fff7df;color:#5f3f08;padding:12px 14px}[data-theme=dark] .student-import-skipped{background:#3d2f14;color:#ffe7ad}.student-import-skipped[hidden]{display:none}.student-import-skipped ul{display:grid;gap:6px;max-height:220px;overflow:auto;margin:0;padding-left:18px}.student-import-skipped li{line-height:1.35}.student-import-skipped span{font-weight:800}.student-import-skipped small{display:block}.student-import-preview{display:grid;gap:10px}.student-import-table-wrap{max-height:68vh;overflow:auto;border:1px solid var(--color-border);border-radius:14px}.student-import-table{min-width:2800px;width:max-content}.student-import-table th,.student-import-table td{white-space:nowrap}.student-import-table thead th{position:sticky;top:0;z-index:4;background:var(--color-surface)}.student-import-table thead tr:first-child th{top:0}.student-import-table thead tr:nth-child(2) th{top:36px}.student-import-actions-head{min-width:72px;text-align:center!important;background:color-mix(in srgb,var(--color-danger),transparent 84%)!important}.student-import-actions-cell{text-align:center!important;background:color-mix(in srgb,var(--color-danger),transparent 94%)}.student-import-group-head{text-align:center;text-transform:uppercase;letter-spacing:.04em;font-size:11px;color:var(--color-text);border-bottom:1px solid var(--color-border)}.student-import-group-tutor{text-align:left}.student-import-table th.student-import-group-tutor{text-align:left!important}.student-import-input{width:100%;min-width:132px;border:1px solid var(--color-border);border-radius:9px;padding:7px 9px;background:var(--color-surface);color:var(--color-text);font:inherit}.student-import-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary),transparent 82%);outline:none}.student-import-number{text-align:center;font-weight:800;color:var(--color-muted)}.student-import-sticky{position:sticky;z-index:3;background:#dbeafe!important;box-shadow:2px 0 #93c5fd}[data-theme=dark] .student-import-sticky{background:#1e3a5f!important;box-shadow:2px 0 #3b82f6}.student-import-sticky .student-import-input{background:#eff6ff;border-color:#93c5fd;font-weight:700}[data-theme=dark] .student-import-sticky .student-import-input{background:#172f50;border-color:#60a5fa}.student-import-table thead .student-import-sticky{z-index:6}.student-import-sticky-1{left:0;min-width:58px}.student-import-sticky-2{left:58px;min-width:170px}.student-import-sticky-4{left:228px;min-width:170px}.student-import-block-student{background-color:color-mix(in srgb,var(--color-primary),transparent 94%)!important}.student-import-block-birth{background-color:color-mix(in srgb,var(--color-info),transparent 92%)!important}.student-import-block-emergency{background-color:color-mix(in srgb,var(--color-warning),transparent 91%)!important}.student-import-block-father{background-color:color-mix(in srgb,var(--color-success),transparent 92%)!important}.student-import-block-mother{background-color:color-mix(in srgb,#d946ef,transparent 92%)!important}.student-import-block-tutor{background-color:color-mix(in srgb,#6366f1,transparent 92%)!important}.student-import-block-extra{background-color:color-mix(in srgb,var(--color-muted),transparent 94%)!important}.student-import-table .student-import-sticky{background:#dbeafe!important;background-color:#dbeafe!important}.student-import-table thead .student-import-sticky{background:#bfdbfe!important;background-color:#bfdbfe!important}[data-theme=dark] .student-import-table .student-import-sticky{background:#1e3a5f!important;background-color:#1e3a5f!important}[data-theme=dark] .student-import-table thead .student-import-sticky{background:#244b78!important;background-color:#244b78!important}.student-import-table .student-import-sticky .student-import-input{background:#eff6ff!important;background-color:#eff6ff!important}[data-theme=dark] .student-import-table .student-import-sticky .student-import-input{background:#172f50!important;background-color:#172f50!important}.student-import-group-student{background:color-mix(in srgb,var(--color-primary),transparent 78%)!important}.student-import-group-birth{background:color-mix(in srgb,var(--color-info),transparent 78%)!important}.student-import-group-emergency{background:color-mix(in srgb,var(--color-warning),transparent 76%)!important}.student-import-group-father{background:color-mix(in srgb,var(--color-success),transparent 78%)!important}.student-import-group-mother{background:color-mix(in srgb,#d946ef,transparent 80%)!important}.student-import-group-tutor{background:color-mix(in srgb,#6366f1,transparent 80%)!important}.student-import-group-extra{background:color-mix(in srgb,var(--color-muted),transparent 84%)!important}.student-import-table thead th{background:#f1f5f9!important;background-color:#f1f5f9!important}.student-import-table thead th.student-import-group-student,.student-import-table thead th.student-import-block-student{background:#cfe3ff!important;background-color:#cfe3ff!important}.student-import-table thead th.student-import-group-birth,.student-import-table thead th.student-import-block-birth{background:#d7ebff!important;background-color:#d7ebff!important}.student-import-table thead th.student-import-group-emergency,.student-import-table thead th.student-import-block-emergency{background:#fff0c7!important;background-color:#fff0c7!important}.student-import-table thead th.student-import-group-father,.student-import-table thead th.student-import-block-father{background:#d6f4df!important;background-color:#d6f4df!important}.student-import-table thead th.student-import-group-mother,.student-import-table thead th.student-import-block-mother{background:#f4d7fb!important;background-color:#f4d7fb!important}.student-import-table thead th.student-import-group-tutor,.student-import-table thead th.student-import-block-tutor{background:#dddfff!important;background-color:#dddfff!important}.student-import-table thead th.student-import-group-extra,.student-import-table thead th.student-import-block-extra{background:#e5e7eb!important;background-color:#e5e7eb!important}[data-theme=dark] .student-import-table thead th{background:#263241!important;background-color:#263241!important}[data-theme=dark] .student-import-table thead th.student-import-group-student,[data-theme=dark] .student-import-table thead th.student-import-block-student{background:#244b78!important;background-color:#244b78!important}[data-theme=dark] .student-import-table thead th.student-import-group-birth,[data-theme=dark] .student-import-table thead th.student-import-block-birth{background:#1f4a65!important;background-color:#1f4a65!important}[data-theme=dark] .student-import-table thead th.student-import-group-emergency,[data-theme=dark] .student-import-table thead th.student-import-block-emergency{background:#614417!important;background-color:#614417!important}[data-theme=dark] .student-import-table thead th.student-import-group-father,[data-theme=dark] .student-import-table thead th.student-import-block-father{background:#1f5131!important;background-color:#1f5131!important}[data-theme=dark] .student-import-table thead th.student-import-group-mother,[data-theme=dark] .student-import-table thead th.student-import-block-mother{background:#59305f!important;background-color:#59305f!important}[data-theme=dark] .student-import-table thead th.student-import-group-tutor,[data-theme=dark] .student-import-table thead th.student-import-block-tutor{background:#373964!important;background-color:#373964!important}[data-theme=dark] .student-import-table thead th.student-import-group-extra,[data-theme=dark] .student-import-table thead th.student-import-block-extra{background:#374151!important;background-color:#374151!important}.student-import-row.is-duplicate,.student-import-row.is-incomplete{background:color-mix(in srgb,var(--color-warning),transparent 92%)}.school-detail-list{display:grid;gap:7px;margin:0}.school-detail-list div{display:grid;grid-template-columns:minmax(90px,.45fr) minmax(0,1fr);gap:10px}.school-detail-list dt{color:var(--color-muted);font-size:12px;font-weight:850}.school-detail-list dd{margin:0;font-weight:750}.dashboard-context{display:grid;gap:9px;margin:0;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:12px}.dashboard-context div{display:grid;gap:2px}.dashboard-context dt{color:var(--color-muted);font-size:11px;font-weight:800;text-transform:uppercase}.dashboard-context dd{margin:0;font-weight:750}.dashboard-grid--stats{grid-template-columns:repeat(3,minmax(0,1fr))}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-heading h3{margin:0;font-size:20px}.action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.system-map-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.system-map-item{display:flex;align-items:center;gap:9px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:10px 12px;font-weight:750}.system-map-item svg{color:var(--color-success)}.system-map-item--pending svg{color:var(--color-warning)}.foundation-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.foundation-item{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:12px}.foundation-item__icon{display:grid;place-items:center;width:42px;height:42px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-success),transparent 88%);color:var(--color-success)}.foundation-item strong{display:block;margin-bottom:4px}.foundation-item p{margin:0;color:var(--color-muted);font-size:13px;line-height:1.4}.system-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.system-overview{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;margin-bottom:14px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:16px;box-shadow:var(--shadow-card)}.system-overview>span{display:grid;width:44px;height:44px;place-items:center;border-radius:50%}.system-overview.is-ok>span{background:color-mix(in srgb,var(--color-success) 14%,var(--color-surface));color:var(--color-success)}.system-overview.is-warning>span{background:color-mix(in srgb,var(--color-warning) 16%,var(--color-surface));color:var(--color-warning)}.system-overview strong,.system-overview small{display:block}.system-overview p{margin:3px 0 0;color:var(--color-muted)}.system-overview small{color:var(--color-muted);font-weight:750;text-align:right}.system-status-card{display:grid;gap:14px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.system-status-card.is-ok{border-color:color-mix(in srgb,var(--color-success) 34%,var(--color-border))}.system-status-card.is-warning{border-color:color-mix(in srgb,var(--color-warning) 42%,var(--color-border))}.system-status-card__header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.system-status-card__header>span:first-child{display:grid;width:38px;height:38px;place-items:center;border-radius:var(--radius-control);color:var(--color-primary);background:var(--color-primary-soft)}.system-status-card__header strong,.system-status-card__header small{display:block;min-width:0}.system-status-card__header small{margin-top:2px;color:var(--color-muted);overflow-wrap:anywhere}.system-status-card__details dd{overflow-wrap:anywhere}.system-route-panel{margin-top:16px;padding:18px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.system-route-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:14px}.system-mvp-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:14px}.system-mvp-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 10px;align-items:center;min-height:86px;padding:13px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-muted);color:var(--color-text);text-decoration:none}.system-mvp-card:hover{border-color:color-mix(in srgb,var(--color-success) 42%,var(--color-border));box-shadow:var(--shadow-card);transform:translateY(-1px)}.system-mvp-card>span{display:grid;width:36px;height:36px;grid-row:span 2;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--color-success) 14%,transparent);color:var(--color-success)}.system-mvp-card strong,.system-mvp-card small{min-width:0}.system-mvp-card small{color:var(--color-muted)}.system-route-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px 10px;min-height:72px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-muted);color:var(--color-text);text-decoration:none;transition:border-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.system-route-card:hover{border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border));box-shadow:var(--shadow-card);transform:translateY(-1px)}.system-route-card>span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;grid-row:span 2;border-radius:12px;background:color-mix(in srgb,var(--color-success) 14%,transparent);color:var(--color-success)}.system-route-card strong,.system-route-card small{display:block}.system-route-card small{color:var(--color-muted)}.academic-module-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.attendance-section{display:grid;gap:12px}.attendance-permission-notice{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-soft);padding:12px 14px}.attendance-permission-notice>span{display:grid;width:38px;height:38px;place-items:center;border-radius:var(--radius-control);color:var(--color-muted);background:var(--color-surface)}.attendance-permission-notice--edit>span{color:var(--color-success);background:color-mix(in srgb,var(--color-success),transparent 88%)}.attendance-permission-notice--read>span{color:var(--color-info);background:color-mix(in srgb,var(--color-info),transparent 88%)}.attendance-permission-notice strong,.attendance-permission-notice p{margin:0}.attendance-permission-notice p{color:var(--color-muted);font-size:13px;font-weight:650}.attendance-month-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.attendance-month-grid article,.attendance-subject-group{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.attendance-month-grid article{display:grid;gap:6px;padding:12px}.attendance-month-grid span{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;color:var(--color-success);background:color-mix(in srgb,var(--color-success),transparent 86%);font-weight:900}.attendance-month-grid strong,.attendance-month-grid small{display:block}.attendance-month-grid small,.attendance-subject-row small{color:var(--color-muted)}.attendance-subject-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.attendance-subject-group{display:grid;gap:10px;padding:14px}.attendance-subject-group header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.attendance-subject-group header>span{display:grid;width:38px;height:38px;place-items:center;border-radius:var(--radius-control);color:var(--color-success);background:color-mix(in srgb,var(--color-success),transparent 88%)}.attendance-subject-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;padding:8px 0;border-top:1px solid color-mix(in srgb,var(--color-border),transparent 45%)}.attendance-student-preview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.attendance-student-preview span{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 10px;border-radius:var(--radius-control);background:var(--color-surface-soft)}.attendance-student-preview strong{display:grid;min-width:28px;height:28px;place-items:center;border-radius:50%;color:var(--color-success);background:color-mix(in srgb,var(--color-success),transparent 86%)}.attendance-student-preview__more{border:1px dashed color-mix(in srgb,var(--color-success) 35%,var(--color-border));color:var(--color-success);font-weight:800;justify-content:center}.final-test-section{display:grid;gap:12px}.final-test-workflow,.final-test-buckets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.final-test-workflow article,.final-test-bucket{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.final-test-workflow article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px}.final-test-workflow span,.final-test-bucket header>span{display:grid;width:38px;height:38px;place-items:center;border-radius:var(--radius-control);color:var(--color-warning);background:color-mix(in srgb,var(--color-warning),transparent 88%)}.final-test-workflow p,.final-test-bucket small,.final-test-subject small{margin:0;color:var(--color-muted)}.final-test-bucket{display:grid;gap:10px;padding:14px}.final-test-bucket header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px}.final-test-subject-list{display:grid}.final-test-subject{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:8px;padding:8px 0;border-top:1px solid color-mix(in srgb,var(--color-border),transparent 45%)}.final-report-toolbar{position:sticky;z-index:5;top:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:color-mix(in srgb,var(--color-surface),transparent 4%);box-shadow:var(--shadow-card)}.final-report-toolbar strong,.final-report-toolbar span{display:block}.final-report-toolbar span{color:var(--color-muted);font-size:13px;font-weight:800}.final-report-list{display:grid;gap:18px}.final-report-card{display:grid;gap:12px;min-height:680px;padding:18px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);break-after:page}.final-report-card header{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,.75fr);gap:18px;align-items:start;border-bottom:2px solid var(--color-border);padding-bottom:12px}.final-report-card h2,.final-report-card p{margin:0}.final-report-card p{color:var(--color-muted);font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.final-report-card dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.final-report-card dt,.final-report-card dd{margin:0}.final-report-card dt{color:var(--color-muted);font-size:11px;font-weight:900;text-transform:uppercase}.final-report-card dd{color:var(--color-text);font-weight:900}.final-report-table{width:100%;border-collapse:collapse;font-size:13px}.final-report-table th,.final-report-table td{border:1px solid var(--color-border);padding:7px 8px;text-align:center}.final-report-table th:first-child,.final-report-table td:first-child{text-align:left}.final-report-table thead th{background:var(--color-surface-soft);font-size:11px;text-transform:uppercase}.final-report-table small{display:block;color:var(--color-muted)}.final-report-detail{display:grid;grid-template-columns:repeat(auto-fit,minmax(46px,1fr));gap:4px;min-width:220px}.final-report-detail span{display:grid;gap:2px;place-items:center;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);padding:4px}.final-report-detail small{font-size:9px;font-weight:900}.final-report-detail strong{min-height:16px;font-size:13px;font-weight:950}.final-report-table .is-risk td{background:color-mix(in srgb,var(--color-danger),transparent 92%)}.partial-report-list{display:grid;gap:18px}.partial-report-card{display:grid;gap:14px;min-height:680px;padding:18px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);break-after:page}.partial-report-card header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end;border-bottom:2px solid var(--color-border);padding-bottom:12px}.partial-report-card h2,.partial-report-card p{margin:0}.partial-report-card p{color:var(--color-muted);font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.partial-report-card header strong{font-size:18px}.partial-subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.partial-subject{display:grid;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:10px}.partial-subject h3{margin:0;font-size:15px;line-height:1.25}.partial-subject__items{display:grid;grid-template-columns:repeat(auto-fit,minmax(64px,1fr));gap:6px}.partial-subject__items span{display:grid;gap:3px;min-height:50px;place-items:center;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);padding:6px;text-align:center}.partial-subject__items span.is-low{border-color:color-mix(in srgb,var(--color-danger) 45%,var(--color-border));background:color-mix(in srgb,var(--color-danger) 9%,var(--color-surface))}.partial-subject__items small{color:var(--color-muted);font-size:10px;font-weight:900;text-transform:uppercase}.partial-subject__items strong{min-height:18px;font-size:16px;font-weight:950}.partial-subject__items i{color:var(--color-danger);font-size:10px;font-style:normal;font-weight:900}.partial-subject em{color:var(--color-muted);font-size:13px;font-style:normal;font-weight:800}.teacher-progress-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.teacher-progress-card{display:grid;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);padding:14px}.teacher-progress-card strong,.teacher-progress-card span{display:block}.teacher-progress-card span{color:var(--color-muted);font-size:13px;font-weight:750}.teacher-progress-card--success{border-color:color-mix(in srgb,var(--color-success),transparent 48%)}.teacher-progress-card--warning{border-color:color-mix(in srgb,var(--color-warning),transparent 45%)}.teacher-progress-card--danger{border-color:color-mix(in srgb,var(--color-danger),transparent 48%)}.teacher-progress-table-wrap{overflow-x:auto}.teacher-progress-table td:last-child{min-width:170px}.teacher-progress-table small{display:block;color:var(--color-muted)}.teacher-progress-meter{display:grid;grid-template-columns:minmax(90px,1fr) auto auto;align-items:center;gap:8px}.teacher-progress-meter span{height:9px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border),transparent 28%)}.teacher-progress-meter i{display:block;height:100%;border-radius:inherit}.teacher-progress-meter strong{font-size:13px}.teacher-progress-meter small{color:var(--color-muted);font-size:11px;font-weight:800}.teacher-progress-meter--success i{background:linear-gradient(90deg,var(--color-success),color-mix(in srgb,var(--color-success),white 16%))}.teacher-progress-meter--warning i{background:linear-gradient(90deg,var(--color-warning),color-mix(in srgb,var(--color-warning),white 16%))}.teacher-progress-meter--danger i{background:linear-gradient(90deg,var(--color-danger),color-mix(in srgb,var(--color-danger),white 16%))}.partial-stats-table-wrap{overflow-x:auto}.partial-stats-table td:last-child{min-width:150px}.partial-stats-table small{display:block;color:var(--color-muted)}.partial-stats-meter{display:grid;grid-template-columns:minmax(90px,1fr) auto;align-items:center;gap:8px}.partial-stats-meter span{height:9px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border),transparent 28%)}.partial-stats-meter i{display:block;height:100%;border-radius:inherit}.partial-stats-meter strong{font-size:13px}.partial-stats-meter--success i{background:linear-gradient(90deg,var(--color-success),color-mix(in srgb,var(--color-success),white 16%))}.partial-stats-meter--warning i{background:linear-gradient(90deg,var(--color-warning),color-mix(in srgb,var(--color-warning),white 16%))}.partial-stats-meter--danger i{background:linear-gradient(90deg,var(--color-danger),color-mix(in srgb,var(--color-danger),white 16%))}.final-stats-table-wrap{overflow-x:auto}.final-stats-table td:last-child{min-width:150px}.final-stats-table small{display:block;color:var(--color-muted)}.final-stats-meter{display:grid;grid-template-columns:minmax(90px,1fr) auto;align-items:center;gap:8px}.final-stats-meter span{height:9px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border),transparent 28%)}.final-stats-meter i{display:block;height:100%;border-radius:inherit}.final-stats-meter strong{font-size:13px}.final-stats-meter--success i{background:linear-gradient(90deg,var(--color-success),color-mix(in srgb,var(--color-success),white 16%))}.final-stats-meter--warning i{background:linear-gradient(90deg,var(--color-warning),color-mix(in srgb,var(--color-warning),white 16%))}.final-stats-meter--danger i{background:linear-gradient(90deg,var(--color-danger),color-mix(in srgb,var(--color-danger),white 16%))}.recovery-table-wrap{overflow-x:auto}.recovery-table small{display:block;color:var(--color-muted)}.dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.page-stack{display:grid;min-width:0;max-width:100%;gap:18px}.content-panel.page-stack,[data-groups-content]{min-width:0;max-width:100%}[data-groups-content]{overflow:hidden}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.page-heading h2{margin:0;font-size:28px}.page-heading__meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.page-heading__meta[hidden]{display:none}.route-intent-banner{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-soft);padding:14px 16px}.route-intent-banner>span{display:grid;width:38px;height:38px;place-items:center;flex:0 0 auto;border-radius:50%;background:var(--color-primary-soft);color:var(--color-primary)}.route-intent-banner strong{display:block;margin-bottom:3px}.route-intent-banner p{margin:0;color:var(--color-muted)}.route-intent-banner--warning>span{background:color-mix(in srgb,var(--color-warning) 16%,var(--color-surface));color:var(--color-warning)}.route-intent-banner--info>span{background:color-mix(in srgb,var(--color-info) 14%,var(--color-surface));color:var(--color-info)}.report-selection-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid color-mix(in srgb,var(--color-primary),transparent 58%);border-radius:var(--radius-card);background:color-mix(in srgb,var(--color-primary),transparent 94%);padding:12px 14px}.report-selection-bar strong,.report-selection-bar span{display:block}.report-selection-bar span{color:var(--color-muted);font-size:13px;font-weight:750}.report-selection-bar>div:last-child{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.page-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.inline-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.group-heading-actions>.button-success{box-shadow:0 10px 22px color-mix(in srgb,var(--color-success),transparent 82%)}.page-search{min-width:min(320px,100%)}.group-page-tools{display:grid;grid-template-columns:minmax(280px,1fr) minmax(126px,150px) auto auto;align-items:end;gap:10px}.group-page-tools .field{min-width:0}.group-page-tools .field-label{min-height:16px;line-height:16px}.group-page-tools .input,.group-page-tools .select,.group-page-tools .button,.group-page-tools .group-count-chip{min-height:42px}.group-page-tools .input,.group-page-tools .select{padding-block:9px}.group-page-tools .group-list-actions{align-self:end}.group-count-chip{align-self:end;justify-content:center;min-width:112px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-primary),transparent 91%);color:color-mix(in srgb,var(--color-primary),var(--color-text) 28%);padding-inline:12px;font-weight:900}.filter-grid{display:grid;grid-template-columns:repeat(5,minmax(116px,1fr)) auto;align-items:end;gap:10px;flex:1 1 480px}.filter-grid--compact{grid-template-columns:repeat(3,minmax(118px,1fr));flex:0 1 340px}.filter-grid--staff{grid-template-columns:repeat(3,minmax(140px,1fr));flex:1 1 560px}.staff-role-filter-panel{border-top:1px solid var(--color-border);padding-top:12px;width:100%}.staff-role-filter{display:grid;gap:7px;min-width:0;border:0;margin:0;padding:0}.staff-role-filter legend{color:var(--color-muted);font-size:12px;font-weight:850}.staff-role-filter>div{display:flex;flex-wrap:wrap;gap:7px}.check-chip{cursor:pointer}.check-chip input{position:absolute;opacity:0;pointer-events:none}.check-chip span{display:inline-flex;align-items:center;gap:6px;min-height:34px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-muted);padding:7px 11px;font-size:12px;font-weight:850;transition:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .14s ease}.check-chip input:checked+span{border-color:color-mix(in srgb,var(--color-primary),transparent 35%);background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary);box-shadow:0 8px 18px color-mix(in srgb,var(--color-primary),transparent 88%)}.check-chip input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--color-primary),transparent 72%);outline-offset:2px}.filter-clear{align-self:end;white-space:nowrap}.summary-breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.group-insights{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.group-insights article{display:grid;gap:4px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:10px 12px}.group-insights span,.group-insights small{overflow:hidden;color:var(--color-muted);font-size:12px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.group-insights strong{overflow:hidden;font-size:18px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.group-card__top-actions{display:inline-flex;align-items:center;gap:7px}.group-select{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-muted);padding:4px 8px;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap}.group-select input{width:14px;height:14px;accent-color:var(--color-primary)}.group-select:has(input:checked){border-color:color-mix(in srgb,var(--color-primary),transparent 45%);background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary)}.group-select--compact{justify-content:center;width:34px;height:34px;padding:0}.group-select--compact span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.summary-breakdown__group{display:grid;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:10px 12px}.summary-breakdown__group>strong{font-size:12px;text-transform:uppercase;color:var(--color-muted);letter-spacing:.04em}.summary-breakdown__group>div{display:flex;flex-wrap:wrap;gap:6px}.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:8px 10px;color:var(--color-muted);font-size:13px}.pagination-bar strong{color:var(--color-text)}.pagination-bar__meta{font-weight:700}.pagination-bar__actions{display:flex;align-items:center;gap:8px}.app-fatal{padding:30px}.fallback-page{display:grid;min-height:min(620px,calc(100vh - 150px));place-items:center}.fallback-card{display:grid;justify-items:center;width:min(760px,100%);border:1px solid var(--color-border);border-radius:var(--radius-card);background:linear-gradient(180deg,var(--color-surface),var(--color-surface-soft));box-shadow:var(--shadow-card);padding:clamp(24px,5vw,44px);text-align:center}.fallback-page__icon{display:grid;place-items:center;width:78px;height:78px;margin-bottom:14px;border:1px solid color-mix(in srgb,var(--color-primary),transparent 62%);border-radius:24px;background:color-mix(in srgb,var(--color-primary),transparent 90%);color:var(--color-primary)}.fallback-card h2{max-width:620px;margin:4px 0 10px;font-size:clamp(28px,4vw,42px)}.fallback-card .muted{max-width:620px;margin:0}.fallback-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;margin:24px 0}.fallback-steps span{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-muted);font-size:13px;font-weight:850}.fallback-page__actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px}.group-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:16px}.group-grade-gallery{display:grid;gap:22px}.group-grade-section{display:grid;gap:12px}.group-grade-section__header{display:flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:linear-gradient(135deg,var(--color-surface),var(--color-surface-soft));padding:13px 15px;box-shadow:0 8px 20px color-mix(in srgb,var(--color-text),transparent 94%)}.group-grade-section__header span{display:block;color:var(--color-muted);font-size:11px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.group-grade-section__header strong{display:block;color:var(--color-text);font-size:21px;line-height:1.15}.group-grade-section__summary{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.grade-summary-panel{display:grid;gap:0;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:var(--shadow-card);overflow:hidden}.grade-summary-panel>header,.grade-summary-panel__progress{display:flex;align-items:center}.grade-summary-panel>header{justify-content:space-between;gap:12px;border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-primary),transparent 91%);padding:12px 14px}.grade-summary-panel>header strong{display:flex;align-items:center;gap:8px;color:var(--color-text);font-size:15px;font-weight:950}.grade-summary-panel>header span,.grade-summary-panel__progress span{color:var(--color-muted);font-size:11px;font-weight:900;text-transform:uppercase}.grade-summary-panel__progress{min-width:min(280px,100%);flex-direction:column;align-items:stretch;gap:5px}.grade-summary-panel__progress i{overflow:hidden;height:8px;border-radius:999px;background:color-mix(in srgb,var(--color-primary),transparent 86%)}.grade-summary-panel__progress em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#03a9f3,#00c292)}.grade-summary-panel__body{display:grid;grid-template-columns:1fr;gap:16px;padding:14px}.grade-summary-chart{display:grid;grid-column:1 / -1;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:12px}.grade-summary-chart[hidden]{display:none}.grade-donut-card{display:grid;gap:10px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);padding:14px;box-shadow:0 8px 20px color-mix(in srgb,var(--color-text),transparent 94%)}.grade-donut-card>strong{color:var(--color-text);font-size:14px;font-weight:950}.grade-donut-card>span{color:var(--color-muted);font-size:12px;font-weight:800}.grade-donut-card__body{display:flex;align-items:center;gap:14px}.grade-donut{position:relative;display:grid;width:96px;height:96px;flex:0 0 96px;place-items:center;border-radius:50%}.grade-donut:after{position:absolute;inset:10px;border-radius:inherit;background:var(--color-surface);content:""}.grade-donut b{position:relative;z-index:1;color:var(--color-text);font-size:18px;font-weight:950}.grade-donut-legend{display:grid;flex:1;gap:5px}.grade-donut-legend div{display:grid;grid-template-columns:10px 32px minmax(0,1fr);align-items:center;gap:6px}.grade-donut-legend i{width:10px;height:10px;border-radius:50%}.grade-donut-legend b{color:var(--color-text);font-size:13px;text-align:right}.grade-donut-legend span{overflow:hidden;color:var(--color-muted);font-size:12px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.grade-summary-panel__table-wrap{overflow:visible}.grade-summary-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px}.grade-summary-table th,.grade-summary-table td{border:1px solid var(--color-border);padding:7px 6px;text-align:right;overflow-wrap:anywhere}.grade-summary-table th:first-child,.grade-summary-table td:first-child{text-align:left}.grade-summary-table thead th{background:#03a9f3;color:#fff;font-weight:900}.grade-summary-table tfoot th{background:color-mix(in srgb,var(--color-primary),transparent 90%)}.grade-summary-table__icon-head{display:inline-flex;align-items:center;justify-content:flex-end;gap:5px}.grade-linked-summary{display:grid;grid-column:1 / -1;gap:6px;border:1px solid color-mix(in srgb,#00c292,var(--color-border) 62%);border-radius:8px;background:color-mix(in srgb,#00c292,transparent 92%);padding:10px 12px}.grade-linked-summary span,.grade-linked-summary strong{display:flex;align-items:center;gap:8px;color:var(--color-text);font-size:12px;font-weight:900}.grade-linked-summary span{color:color-mix(in srgb,#007c6f,var(--color-text) 35%)}.grade-linked-summary strong{justify-content:flex-end}.grade-linked-summary svg{flex:0 0 auto}.grade-linked-summary i{position:relative;display:block;overflow:hidden;height:18px;border-radius:999px;background:color-mix(in srgb,#00c292,transparent 82%)}.grade-linked-summary em{display:flex;align-items:center;justify-content:flex-end;min-width:38px;height:100%;border-radius:inherit;background:linear-gradient(90deg,#03a9f3,#00c292);color:#fff;font-size:10px;font-style:normal;font-weight:950;line-height:1;padding-right:7px;text-shadow:0 1px 2px rgba(0,0,0,.22)}.grade-linked-summary em span{display:inline-block;min-width:max-content}.group-editor{position:relative;z-index:2;display:grid;gap:16px;border:1px solid color-mix(in srgb,var(--color-primary),var(--color-border) 55%);border-radius:18px;background:var(--color-surface);padding:18px;box-shadow:0 18px 36px color-mix(in srgb,var(--color-primary),transparent 84%)}.group-editor__header{display:flex;align-items:center;gap:12px}.group-editor__header>span{display:inline-grid;width:42px;height:42px;place-items:center;border-radius:14px;background:color-mix(in srgb,var(--color-primary),transparent 86%);color:var(--color-primary)}.group-editor__header strong{display:block;font-size:18px}.group-editor__header small{color:var(--color-muted);font-weight:700}.group-editor__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.group-editor__grid .field:nth-child(4),.group-editor__grid .field:nth-child(5),.group-editor__grid .field:nth-child(6){grid-column:span 2}.group-editor__footer{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.group-editor__alert{flex:1;margin:0}.page-stack.is-editing-group [data-group-summary],.page-stack.is-editing-group [data-group-report-selection],.page-stack.is-editing-group [data-groups-content],.page-stack.is-editing-group [data-group-pagination]{opacity:.32;pointer-events:none;transition:opacity .18s ease}.student-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.group-card--inactive{filter:grayscale(.4)}.group-card--inactive:hover{filter:grayscale(.25) saturate(1.02)}.group-table{min-width:1660px;table-layout:auto;border-collapse:separate;border-spacing:0}.group-table thead th{background:var(--color-primary);color:#fff;padding:10px 9px;border:0;box-shadow:inset 0 -1px color-mix(in srgb,#fff,transparent 72%);white-space:nowrap}.group-table thead th>svg{vertical-align:middle}.group-table__sort{display:inline-flex;align-items:center;gap:6px;width:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:850;cursor:pointer}.group-table__sort:hover,.group-table__sort:focus-visible,.group-table__sort.is-active{color:#fff;opacity:1}.group-table__sort:not(.is-active){opacity:.88}.group-table tbody tr{--group-color: var(--color-primary)}.group-table tbody td{padding:9px;border:0;background:color-mix(in srgb,var(--group-color),var(--color-surface) 96%);box-shadow:inset 0 -1px color-mix(in srgb,var(--group-color),var(--color-border) 76%);vertical-align:middle}.group-table tbody tr:hover td{background:color-mix(in srgb,var(--group-color),var(--color-surface) 89%)}.group-table .group-table__sticky-one,.group-table .group-table__sticky-two{position:sticky;z-index:3;background:color-mix(in srgb,var(--group-color, var(--color-primary)),var(--color-surface) 96%);background-clip:padding-box}.group-table thead .group-table__sticky-one,.group-table thead .group-table__sticky-two{z-index:6;background:var(--color-primary)}.group-table .group-table__sticky-one{left:0;width:170px;min-width:170px;max-width:170px}.group-table .group-table__sticky-two{left:170px;width:285px;min-width:285px;max-width:285px}.group-table .group-table__sticky-two:after{position:absolute;z-index:8;top:0;right:-4px;bottom:0;width:4px;background:color-mix(in srgb,var(--group-color, var(--color-primary)),var(--color-border) 28%);box-shadow:7px 0 12px #0f172a3d;content:"";pointer-events:none}.group-table thead .group-table__sticky-two:after{background:color-mix(in srgb,var(--color-primary),#fff 24%);box-shadow:7px 0 12px #0f172a52}.group-table tbody tr:hover .group-table__sticky-one,.group-table tbody tr:hover .group-table__sticky-two{background:color-mix(in srgb,var(--group-color),var(--color-surface) 89%)}.group-table-title{display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:9px;min-width:145px;color:var(--color-text)}.group-table-title>span:last-child{display:grid;gap:2px}.group-table-title strong,.group-table-title small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-table-title strong{font-size:15px;font-weight:950}.group-table-title small{color:var(--color-muted);font-size:10px;font-weight:750}.group-table-title__icon{display:inline-grid;width:36px;height:36px;place-items:center;border-radius:9px;background:var(--group-color);color:#fff}.group-table-area{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;min-width:0}.group-table-family{display:inline-grid;grid-template-columns:30px minmax(80px,1fr);align-items:center;gap:7px;max-width:190px;font-size:12px;font-weight:800}.group-table-family i{display:inline-grid;width:30px;height:30px;place-items:center;border-radius:8px;background:color-mix(in srgb,var(--group-color),transparent 86%);color:var(--group-color);font-style:normal}.group-table-family span,.group-table-person span,.group-table-schedule strong,.group-table-schedule span{overflow:hidden;text-overflow:ellipsis}.group-table-person{display:inline-grid;grid-template-columns:32px minmax(75px,1fr);align-items:center;gap:7px;max-width:190px;padding:0;border:0;background:transparent;color:var(--color-text);font:inherit;font-size:12px;font-weight:800;text-align:left;cursor:pointer}.group-table-person:disabled{cursor:default}.group-table-person__photo{width:32px;height:32px;border:2px solid var(--presence-color, var(--color-border));border-radius:50%;object-fit:cover;transition:transform .18s ease,box-shadow .18s ease}.group-table-person:not(:disabled):hover .group-table-person__photo{transform:scale(1.12);box-shadow:0 5px 13px #0f172a2e}.group-table-schedule{display:grid;min-width:190px;max-width:260px;gap:7px}.group-table-schedule__moment{display:grid;gap:1px;padding-left:8px;border-left:3px solid var(--group-color)}.group-table-schedule__moment.is-next{border-left-color:color-mix(in srgb,var(--group-color),var(--color-muted) 55%);opacity:.78}.group-table-schedule__moment small{display:inline-flex;align-items:center;gap:4px;color:var(--group-color);font-size:9px;font-weight:900;text-transform:uppercase}.group-table-schedule__moment strong{max-width:240px;font-size:12px;white-space:nowrap}.group-table-schedule__moment span{max-width:240px;color:var(--color-muted);font-size:10px;white-space:nowrap}.group-table__schedule,.group-table__actions-heading,.group-table__number{text-align:center}.group-table__schedule-heading{text-transform:none}.group-table__schedule-link{margin-inline:auto}.group-table-performance{display:grid;grid-template-columns:minmax(78px,1fr) 36px;align-items:center;gap:7px;min-width:126px}.group-table-performance>span{height:8px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-muted),transparent 78%)}.group-table-performance i{display:block;width:0;height:100%;border-radius:inherit;background:var(--performance-color, var(--group-color))}.group-table-performance strong{font-size:11px;text-align:right}.group-table__muted{color:var(--color-muted);font-size:11px;font-style:italic}.group-table__actions{display:inline-flex;flex-wrap:nowrap;justify-content:flex-end;min-width:178px}.group-table-scroll{position:relative;display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:visible;overscroll-behavior-inline:contain;scrollbar-gutter:stable;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:inset -12px 0 18px -18px #0f172ab3;-webkit-overflow-scrolling:touch}.group-table-scroll::-webkit-scrollbar{height:11px}.group-table-scroll::-webkit-scrollbar-track{border-radius:999px;background:color-mix(in srgb,var(--color-muted),transparent 88%)}.group-table-scroll::-webkit-scrollbar-thumb{border:3px solid transparent;border-radius:999px;background:color-mix(in srgb,var(--color-primary),var(--color-muted) 34%);background-clip:padding-box}.group-table-area>span{display:inline-grid;width:34px;height:34px;place-items:center;border-radius:9px;background:color-mix(in srgb,var(--group-color),transparent 84%);color:var(--group-color)}.group-table-area svg{width:18px;height:18px}.group-table-area strong,.group-table-area small{overflow-wrap:anywhere;white-space:normal}.group-table-area strong{font-size:13px;font-weight:950}.group-table-area small{grid-column:2;color:var(--color-muted);font-size:11px;font-weight:750}.group-table__actions-heading>span{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px}.group-table-scroll:focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary),transparent 68%);outline-offset:2px}.group-card__signals{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 2px}.group-occupancy,.group-performance{display:grid;gap:7px;margin:10px 0 8px;color:var(--color-muted);font-size:12px;font-weight:800}.group-performance>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.group-performance>div span{display:inline-flex;align-items:center;gap:6px;color:var(--color-muted);font-size:12px;font-weight:900}.group-performance>div strong{color:color-mix(in srgb,var(--group-color),var(--color-text) 35%);font-size:13px;font-weight:950}.group-performance--empty{opacity:.76}.group-occupancy span,.group-performance__track{height:8px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border),transparent 28%)}.group-occupancy i,.group-performance__track i{position:relative;display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--group-color),color-mix(in srgb,var(--group-color),#fff 28%))}.group-performance__track em{position:absolute;inset:0;display:grid;min-width:38px;place-items:center;color:#fff;font-size:10px;font-style:normal;font-weight:950;line-height:1}.group-visual-tools{display:grid;gap:9px;border-top:1px solid var(--color-border);padding-top:12px}.group-color-palette{display:flex;flex-wrap:wrap;gap:7px}.group-color-dot{width:25px;height:25px;border:2px solid #fff;border-radius:50%;background:var(--dot-color);box-shadow:0 0 0 1px color-mix(in srgb,var(--dot-color),transparent 45%),0 4px 10px #0f172a29;cursor:pointer;transition:transform .14s ease,box-shadow .14s ease}.group-color-dot:hover,.group-color-dot.is-active{transform:scale(1.12);box-shadow:0 0 0 3px color-mix(in srgb,var(--dot-color),transparent 68%),0 7px 16px #0f172a38}.group-color-custom{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;overflow:hidden;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface);color:var(--group-color);cursor:pointer}.group-color-custom input{position:absolute;width:1px;height:1px;opacity:0}.group-info-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;background:#0f172a8a;padding:18px}.group-info-modal[hidden]{display:none}.fct-visits-dialog{width:min(760px,calc(100vw - 28px));max-height:min(780px,calc(100dvh - 28px))}.fct-visits-body{overflow-y:auto;padding:20px}.fct-visits-dialog>.inline-feedback{margin:0 20px 16px}.fct-visit-company-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.fct-visit-company-card{display:grid;grid-template-columns:62px minmax(0,1fr) 22px;align-items:center;gap:13px;width:100%;min-height:88px;padding:12px;color:var(--color-text);text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.fct-visit-company-card:hover,.fct-visit-company-card:focus-visible{border-color:var(--color-primary);box-shadow:0 8px 22px color-mix(in srgb,var(--color-primary) 16%,transparent);transform:translateY(-2px);outline:none}.fct-visit-company-card__logo{width:62px;height:62px;object-fit:contain;background:#fff;border:1px solid var(--color-border);border-radius:7px}.fct-visit-company-card>span{display:grid;gap:6px;min-width:0}.fct-visit-company-card strong{overflow-wrap:anywhere}.fct-visit-company-card small{display:flex;align-items:center;gap:6px;color:var(--color-muted)}.fct-visit-company-card>i{color:var(--color-primary);font-style:normal}.fct-visit-form{display:grid;gap:18px}.fct-visits-back{justify-self:start}.fct-visit-company-identity{display:flex;align-items:center;gap:15px;padding:14px;background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface));border-left:4px solid var(--color-primary)}.fct-visit-company-identity img{width:72px;height:72px;object-fit:contain;background:#fff;border-radius:7px}.fct-visit-company-identity div{display:grid;gap:3px;min-width:0}.fct-visit-company-identity small{color:var(--color-muted)}.fct-visit-company-identity strong{font-size:1.12rem;overflow-wrap:anywhere}.fct-visit-reasons{min-width:0;margin:0;padding:0;border:0}.fct-visit-reasons legend{width:100%;margin-bottom:10px;font-size:1.05rem;font-weight:750}.fct-visit-reasons>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.fct-visit-reason-card{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:11px;min-height:72px;padding:11px 13px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease}.fct-visit-reason-card input{position:absolute;opacity:0;pointer-events:none}.fct-visit-reason-card>span{display:grid;place-items:center;width:42px;height:42px;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));border-radius:7px}.fct-visit-reason-card:hover,.fct-visit-reason-card:focus-within,.fct-visit-reason-card.is-selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 7%,var(--color-surface));box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 13%,transparent)}.fct-visit-date{max-width:320px}.fct-visit-date .field-label{display:flex;align-items:center;gap:7px}.fct-visit-submit{justify-self:end;min-width:180px}.fct-visit-spinner{animation:fct-visit-spin .9s linear infinite}@keyframes fct-visit-spin{to{transform:rotate(360deg)}}.fct-visit-calendar-dialog{width:min(1180px,calc(100vw - 32px));max-height:calc(100dvh - 32px)}.fct-visit-calendar-body{display:grid;gap:20px;padding:18px;overflow:auto}.fct-calendar-body-title{display:flex;align-items:center;gap:9px;margin:0 0 14px;color:var(--color-heading);font-size:1.2rem;line-height:1.25}.fct-calendar-body-title .ui-icon{color:var(--color-primary);flex:0 0 auto}.fct-calendar-summary{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;padding:12px 14px;color:var(--color-text);background:color-mix(in srgb,var(--color-primary) 7%,var(--color-surface));border-left:4px solid var(--color-primary)}.fct-calendar-summary span{display:inline-flex;align-items:center;gap:8px}.fct-year-calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;align-items:start}.fct-calendar-month{padding:12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px}.fct-calendar-month h3{margin:0 0 10px;font-size:.98rem;text-align:center;text-transform:capitalize}.fct-calendar-weekdays,.fct-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.fct-calendar-weekdays{margin-bottom:4px;color:var(--color-muted);font-size:.72rem;font-weight:750;text-align:center}.fct-calendar-date,.fct-calendar-blank{aspect-ratio:1;min-width:0}.fct-calendar-date{position:relative;display:grid;place-items:center;padding:0;color:var(--color-text);background:transparent;border:1px solid transparent;border-radius:6px;cursor:pointer}.fct-calendar-date:hover,.fct-calendar-date:focus-visible{border-color:var(--color-primary);outline:none}.fct-calendar-date.has-visits{color:var(--color-primary-contrast, #fff);font-weight:800;background:var(--color-primary)}.fct-calendar-date.is-selected{box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 28%,transparent)}.fct-calendar-date:disabled{color:color-mix(in srgb,var(--color-muted) 50%,transparent);background:color-mix(in srgb,var(--color-border) 30%,transparent);cursor:not-allowed}.fct-calendar-date b{position:absolute;right:2px;bottom:1px;min-width:14px;font-size:.58rem;line-height:14px;text-align:center;background:color-mix(in srgb,#000 28%,transparent);border-radius:7px}.fct-calendar-day-detail{display:grid;gap:12px;padding-top:16px;border-top:1px solid var(--color-border)}.fct-calendar-day-detail h3{display:flex;align-items:center;gap:8px;margin:0;font-size:1.12rem}.fct-calendar-table-wrap{overflow-x:auto}.fct-calendar-table{width:100%;min-width:900px;border-collapse:separate;border-spacing:0}.fct-calendar-table th,.fct-calendar-table td{padding:10px;text-align:left;vertical-align:middle;border:1px solid var(--color-border)}.fct-calendar-table th{background:color-mix(in srgb,var(--color-primary) 9%,var(--color-surface))}@media(min-width:621px){.fct-calendar-table th:nth-child(1),.fct-calendar-table td:nth-child(1){width:54px;min-width:54px;max-width:54px;position:sticky;left:0;z-index:2;background:var(--color-surface)}.fct-calendar-table th:nth-child(2),.fct-calendar-table td:nth-child(2){width:220px;min-width:220px;position:sticky;left:54px;z-index:2;background:var(--color-surface);box-shadow:8px 0 12px -10px #0f172ad9}.fct-calendar-table thead th:nth-child(1),.fct-calendar-table thead th:nth-child(2){z-index:3;background:color-mix(in srgb,var(--color-primary) 9%,var(--color-surface))}}.fct-calendar-table td:nth-child(5){min-width:240px;white-space:normal;overflow-wrap:anywhere}.fct-calendar-table tbody tr:nth-child(2n){background:color-mix(in srgb,var(--color-border) 20%,transparent)}.fct-calendar-person,.fct-location-link,.fct-location-missing{display:flex;align-items:center;gap:9px}.fct-calendar-person img{width:42px;height:42px;flex:0 0 42px;object-fit:cover;background:#fff;border:1px solid var(--color-border);border-radius:7px}.fct-location-link span{display:grid;gap:2px}.fct-location-link{justify-content:center;width:34px;min-width:34px}.fct-location-link small,.fct-location-missing{color:var(--color-muted)}.fct-calendar-reason-editor{display:grid;gap:6px}.fct-calendar-reason-current{display:block;line-height:1.3;white-space:normal;overflow-wrap:anywhere}.fct-calendar-reason-controls{display:grid;grid-template-columns:minmax(150px,1fr) 38px;gap:6px;align-items:center}.fct-calendar-empty{display:grid;justify-items:center;gap:8px;min-height:100px;padding:22px;color:var(--color-muted);text-align:center;border:1px dashed var(--color-border)}@media(max-width:620px){.fct-visits-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.fct-visits-body{padding:14px}.fct-visit-company-gallery,.fct-visit-reasons>div{grid-template-columns:1fr}.fct-visit-company-card{grid-template-columns:54px minmax(0,1fr) 20px;min-height:76px}.fct-visit-company-card__logo{width:54px;height:54px}.fct-visit-date,.fct-visit-submit{width:100%;max-width:none}.fct-visit-calendar-dialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px)}.fct-visit-calendar-body{padding:12px}.fct-year-calendar{grid-template-columns:1fr}.fct-calendar-summary{align-items:flex-start;flex-direction:column}.fct-calendar-table{min-width:0}.fct-calendar-table thead{display:none}.fct-calendar-table,.fct-calendar-table tbody,.fct-calendar-table tr,.fct-calendar-table td{display:block;width:100%}.fct-calendar-table tr{margin-bottom:12px;border:1px solid var(--color-border);border-radius:8px}.fct-calendar-table td{display:grid;grid-template-columns:minmax(90px,34%) minmax(0,1fr);gap:10px;border:0;border-bottom:1px solid var(--color-border)}.fct-calendar-table td:last-child{border-bottom:0}.fct-calendar-table td:before{content:attr(data-label);color:var(--color-muted);font-size:.78rem;font-weight:750}}.group-info-dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(760px,100%);max-height:min(720px,calc(100vh - 36px));overflow:hidden;border:1px solid var(--color-border);border-radius:18px;background:var(--color-surface);box-shadow:var(--shadow-modal, 0 24px 70px rgba(15, 23, 42, .28))}.group-info-dialog>header,.group-info-dialog>footer{display:flex;align-items:center;gap:12px;padding:14px 16px}.group-info-dialog>header{background:linear-gradient(135deg,var(--color-primary),color-mix(in srgb,var(--color-primary),#111827 28%));color:#fff}.profile-assignment-item__school-logo{flex:0 0 42px;width:42px;height:42px;display:grid;place-items:center;overflow:hidden;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface-muted)}.profile-assignment-item__school-logo img{width:100%;height:100%;object-fit:contain}.group-info-dialog>header .button-ghost{color:#fff}.group-info-dialog>header .button-ghost:hover,.group-info-dialog>header .button-ghost:focus-visible{color:#000;background:#fff}.group-info-dialog>header>span{display:inline-grid;width:38px;height:38px;place-items:center;border-radius:12px;background:#ffffff2e}.group-info-dialog>header>div{flex:1;min-width:0}.group-info-dialog strong,.group-info-dialog small{display:block}.group-info-dialog>footer{justify-content:flex-end;border-top:1px solid var(--color-border)}.group-info-body{overflow:auto;padding:16px}.group-teachers-dialog{width:min(1180px,100%);grid-template-rows:auto auto minmax(0,1fr) auto}.group-teachers-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,180px);gap:10px;padding:14px 16px 0}.group-teachers-tools .field{min-width:0}.group-teachers-table-wrap{overflow:auto;max-width:100%}.group-teachers-table{min-width:980px}.group-teachers-sort{display:inline-flex;align-items:center;gap:5px;border:0;background:transparent;color:inherit;padding:0;font:inherit;font-weight:800;cursor:pointer}.group-teachers-sort:hover,.group-teachers-sort.is-active{color:var(--color-primary)}.group-teachers-dialog>footer{justify-content:space-between;flex-wrap:wrap;gap:12px}.group-teachers-dialog>footer [data-group-teachers-pagination]{display:inline-flex;align-items:center;gap:8px;min-width:0}.group-teachers-table .group-teachers-col-number{width:42px}.group-teachers-table .group-teachers-col-teacher{width:178px}.group-teachers-table .group-teachers-col-class{width:150px}.group-teachers-table .group-teachers-col-course{width:220px}.group-teachers-table .group-teachers-col-subject{width:260px}.group-teachers-table .group-teachers-col-hours{width:62px}.group-teachers-table td:nth-child(3) small,.group-teachers-table td:nth-child(4) small{display:block;color:var(--color-muted);margin-top:2px}.group-teachers-person-cell{display:grid;gap:8px;justify-items:start}.group-teachers-person-cell .group-table-person{width:100%}.group-teachers-person-cell .group-teachers-reports{margin-top:2px}.group-teachers-person-photo{width:34px;height:34px;flex:0 0 34px;overflow:hidden;border-radius:50%}.group-teachers-person-photo img{width:100%;height:100%;object-fit:cover;display:block}.group-teachers-reports{display:flex;flex-wrap:wrap;gap:5px;min-width:150px}.group-teachers-reports .icon-button{width:29px;height:29px}@media(max-width:760px){.group-teachers-tools{grid-template-columns:1fr}}@media(max-width:760px){.grades-page .grade-capture-table tbody .grade-entry-input,.grades-page .grade-capture-table tbody input,.grades-page .grade-capture-table tbody select{margin-left:auto;margin-right:auto}.grades-page .grade-capture-table tbody td:before,.grades-page .grade-capture-table tbody th:before{max-width:100%;text-align:left}.grades-page .grade-capture-table tbody .grade-capture-table__number{justify-content:flex-start}}@media(max-width:760px){.grades-page--embedded .student-mobile-grades-panel{margin-top:14px;padding:12px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface)}.grades-page--embedded .student-mobile-grades-panel h3{margin:0 0 10px;padding:8px 10px;font-size:2.4rem;text-align:center;font-weight:900;background:var(--color-primary);color:#fff;border-radius:7px}.grades-page--embedded .student-mobile-grades-scroll{display:block;width:100%;max-width:100%;min-width:0;overflow-x:auto;overflow-y:visible;box-sizing:border-box}.grades-page--embedded .student-mobile-grades-table{display:table!important;width:calc(100% - 8px)!important;min-width:calc(100% - 8px)!important;max-width:calc(100% - 8px);margin-right:8px}.grades-page--embedded .student-mobile-grades-table thead{display:table-header-group!important}.grades-page--embedded .student-mobile-grades-table tbody{display:table-row-group!important}.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-recovery-bridge{display:none!important}.grades-page--embedded .student-mobile-grades-table tr{display:table-row!important}.grades-page--embedded .student-mobile-grades-table th,.grades-page--embedded .student-mobile-grades-table td{display:table-cell!important;min-height:0!important;padding:8px!important;white-space:nowrap!important}.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-group th,.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-average th,.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-final th{padding:10px 8px!important;text-align:left;font-weight:800}.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-group th{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface))}.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-average th{color:#0f766e;background:color-mix(in srgb,#14b8a6 13%,var(--color-surface))}.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-final th{color:#92400e;background:color-mix(in srgb,#f59e0b 16%,var(--color-surface))}.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-status td{background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface))}.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-group svg,.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-average svg,.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-final svg{margin-right:8px;vertical-align:middle}.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-group svg,.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-average svg,.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-final svg{width:1em;height:1em}.grades-page--embedded .student-mobile-grades-table th{text-align:left!important}.grades-page--embedded .student-mobile-grades-table th.student-mobile-grades-total-label{text-align:center!important;vertical-align:middle!important}.grades-page--embedded .student-mobile-grades-table th.student-mobile-grades-company{text-align:center!important;color:#075c99;background:color-mix(in srgb,#0f7bc7 12%,var(--color-surface));font-size:1.9rem;font-weight:800}.grades-page--embedded .student-mobile-grades-company svg{width:1em;height:1em;margin-right:8px;vertical-align:middle}.grades-page--embedded .student-mobile-grades-company-heading{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;text-align:center}.grades-page--embedded .student-mobile-grades-company-heading svg{margin-right:0}.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-format-average th{text-align:center!important;color:#0f766e;background:color-mix(in srgb,#14b8a6 12%,var(--color-surface));font-size:1.9rem;font-weight:800}.grades-page--embedded .student-mobile-grades-format-average-value td{text-align:center!important;background:color-mix(in srgb,#14b8a6 6%,var(--color-surface))}.grades-page--embedded .student-mobile-grades-format-average-value td>*{margin-left:auto;margin-right:auto}.grades-page--embedded .student-mobile-grades-company-value td{text-align:center!important;background:color-mix(in srgb,#0f7bc7 6%,var(--color-surface))}.grades-page--embedded .student-mobile-grades-company-value td .student-account-company-cell,.grades-page--embedded .student-mobile-grades-company-value td .student-account-company-link,.grades-page--embedded .student-mobile-grades-company-value td .student-account-subject-link{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;margin:0 auto;text-align:center;white-space:normal}.grades-page--embedded .student-mobile-grades-company-value td .student-account-company-table-logo{display:block!important;width:54px!important;height:54px!important;margin:0 auto}.grades-page--embedded .student-mobile-grades-table th.student-mobile-grades-company{text-align:center!important}.grades-page--embedded .student-mobile-grades-company-value td .grade-capture-table__company{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;margin:0 auto;text-align:center;white-space:normal}.grades-page--embedded .student-mobile-grades-company-value td.grade-capture-table__company{display:table-cell!important;width:100%;text-align:center;white-space:normal}.grades-page--embedded .student-mobile-grades-company-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:100%;margin:0 auto;text-align:center}.grades-page--embedded .student-mobile-grades-company-content>img{display:block!important;width:96px!important;height:96px!important;max-width:96px!important;margin:0 auto!important;object-fit:contain}.grades-page--embedded .student-mobile-grades-company-content>span{display:block;width:100%;font-size:1.2rem!important;line-height:1.3;text-align:center!important}.grades-page--embedded .student-mobile-grades-company-value td.grade-capture-table__company>img{display:block!important;width:96px!important;height:96px!important;max-width:96px!important;margin:0 auto!important;object-fit:contain}.grades-page--embedded .student-mobile-grades-company-value td.grade-capture-table__company>span{display:block!important;width:100%;font-size:.95rem!important;line-height:1.25;text-align:center!important}.grades-page--embedded .student-mobile-grades-company-value td .grade-capture-table__company img{display:block;width:88px;height:88px;margin:0 auto;object-fit:contain}.grades-page--embedded .student-mobile-grades-company-value td .grade-capture-table__company span{display:block;font-size:1.1rem;text-align:center}.grades-page--embedded .student-mobile-grades-table tbody th{font-size:1.9rem}.grades-page--embedded .student-mobile-grades-table tbody th{white-space:normal!important;overflow-wrap:anywhere}.grades-page--embedded .student-mobile-grades-table .student-mobile-grades-status td{text-align:center!important}.grades-page--embedded .student-mobile-grades-status-label{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:8px;color:var(--color-primary);font-size:1.9rem;font-weight:800;text-align:center}.grades-page--embedded .student-mobile-grades-status-label svg{width:1em;height:1em;flex:0 0 auto}.grades-page--embedded .student-mobile-grades-total-label{text-align:center!important;color:#0f766e;background:color-mix(in srgb,#14b8a6 10%,var(--color-surface));font-size:1.9rem;font-weight:800}.grades-page--embedded .student-mobile-grades-total-value-row td{text-align:center!important;background:color-mix(in srgb,#14b8a6 6%,var(--color-surface))}.grades-page--embedded .student-mobile-grades-total-value-row td>.grade-result-card,.grades-page--embedded .student-mobile-grades-total-value-row td>.grade-status-card{margin-left:auto;margin-right:auto}.grades-page--embedded .student-mobile-grades-total-value-row .grade-result-card--fraction{display:inline-grid;grid-template-columns:auto auto;grid-template-rows:1fr 1fr;column-gap:8px;min-width:116px;min-height:92px;padding:10px 16px;font-size:3rem}.grades-page--embedded .student-mobile-grades-total-value-row .grade-result-card--fraction svg{grid-row:1 / -1;align-self:center}.grades-page--embedded .student-mobile-grades-total-value-row .grade-result-card--fraction strong{grid-column:2;grid-row:1;padding:0 5px 4px;border-bottom:2px solid currentColor;line-height:1}.grades-page--embedded .student-mobile-grades-total-value-row .grade-result-card--fraction small{grid-column:2;grid-row:2;padding-top:4px;font-size:2rem;line-height:1}.grades-page--embedded .student-mobile-grades-total-value-row .student-account-fraction{min-width:72px;font-size:3rem;line-height:1}.grades-page--embedded .student-mobile-grades-total-value-row .student-account-fraction b,.grades-page--embedded .student-mobile-grades-total-value-row .student-account-fraction i{font-weight:800!important;padding-inline:8px}.grades-page--embedded .student-mobile-grades-table td{text-align:center!important;vertical-align:middle;font-size:3rem}.grades-page--embedded .student-mobile-grades-table td{width:60%;max-width:280px}.grades-page--embedded .student-mobile-grade-entry{display:inline-flex;align-items:center;justify-content:center;max-width:100%}.grades-page--embedded .student-mobile-grade-entry .grade-entry-input{order:1;width:92px;margin:0;padding-right:8px;border-radius:6px 0 0 6px}.grades-page--embedded .student-mobile-grades-table .grade-entry-denominator{position:static;order:2;display:inline-flex;align-items:center;justify-content:center;align-self:stretch;min-width:48px;height:auto;transform:none;border:1px solid var(--color-border);border-left:0;border-radius:0 6px 6px 0;padding:0 6px;font-size:1.1rem}.grades-page--embedded .student-mobile-grades-table th{width:40%;max-width:260px}.grades-page--embedded .student-mobile-grades-table input,.grades-page--embedded .student-mobile-grades-table select{width:min(100%,110px);min-height:84px;font-size:3rem;text-align:center}.grades-page--embedded .student-mobile-grades-table input{font-size:3rem}.grades-page--embedded .student-mobile-grades-table td{text-align:center!important}.grades-page--embedded .student-mobile-grades-table td>input,.grades-page--embedded .student-mobile-grades-table td>select,.grades-page--embedded .student-mobile-grades-table td .grade-result-card,.grades-page--embedded .student-mobile-grades-table td .grade-status-card{margin-left:auto;margin-right:auto}.grades-page--embedded .student-mobile-grades-table td .grade-result-card,.grades-page--embedded .student-mobile-grades-table td .grade-status-card{min-width:110px;min-height:84px;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box}.grades-page--embedded .student-mobile-grades-table td .grade-result-card,.grades-page--embedded .student-mobile-grades-table td .grade-status-card,.grades-page--embedded .student-mobile-grades-table td .grade-result-card *,.grades-page--embedded .student-mobile-grades-table td .grade-status-card *{font-size:3rem}.grades-page--embedded .student-mobile-grades-table td .grade-result-card svg,.grades-page--embedded .student-mobile-grades-table td .grade-status-card svg{width:2.2rem;height:2.2rem}.grades-page--embedded .student-mobile-grades-table td .grade-final-card{min-width:180px;min-height:120px;padding:12px 16px;box-sizing:border-box}.grades-page--embedded .student-mobile-grades-table td .grade-final-card>strong{font-size:3rem}.grades-page--embedded .student-mobile-grades-table td .grade-final-card>small{font-size:1.2rem}.grades-page--embedded .student-mobile-grades-table{border:1px solid var(--color-border);border-collapse:collapse}.grades-page--embedded .student-mobile-grades-table th,.grades-page--embedded .student-mobile-grades-table td{border:1px solid var(--color-border)!important}.grades-page--embedded .student-mobile-grades-table tbody tr:nth-child(2n):not(.student-mobile-grades-group):not(.student-mobile-grades-average):not(.student-mobile-grades-final){background:var(--color-surface-soft)}.grades-page--embedded .student-mobile-attendance-panel h3{background:#0f766e}.grades-page--embedded .student-mobile-attendance-table .student-mobile-attendance-summary-title th,.grades-page--embedded .student-mobile-attendance-table .student-mobile-attendance-summary-value td{color:#0f766e;background:color-mix(in srgb,#14b8a6 12%,var(--color-surface))}.grades-page--embedded .student-mobile-attendance-table .student-mobile-attendance-summary-title th{text-align:center!important;font-size:1.45rem}.grades-page--embedded .student-mobile-attendance-table .student-mobile-attendance-summary-title svg{width:1em;height:1em;margin-right:8px;vertical-align:middle}.grades-page--embedded .student-mobile-attendance-table .student-mobile-attendance-summary-value td{text-align:center!important}.grades-page--embedded .student-mobile-attendance-table .student-mobile-attendance-summary-value strong{font-size:2.4rem}.grades-page--embedded .student-mobile-attendance-table .student-mobile-attendance-summary-title th{width:max-content!important;min-width:max-content!important;max-width:none!important;white-space:nowrap!important;overflow-wrap:normal!important;font-size:1.45rem}.grades-page--embedded .student-mobile-attendance-table .student-mobile-attendance-finals th{padding:10px 8px!important;color:#92400e;background:color-mix(in srgb,#f59e0b 16%,var(--color-surface));text-align:center!important}.grades-page--embedded .student-mobile-attendance-table .student-mobile-attendance-finals svg{width:1em;height:1em;margin-right:8px;vertical-align:middle}.grades-page--embedded .student-mobile-attendance-table .student-mobile-attendance-exam-title th{text-align:center!important;color:#075c99;background:color-mix(in srgb,#0f7bc7 10%,var(--color-surface))}.grades-page--embedded .student-mobile-attendance-table .student-mobile-attendance-exam-title span{display:inline-block}.grades-page--embedded .student-mobile-attendance-table .student-mobile-attendance-exam-value td{text-align:center!important;background:color-mix(in srgb,#0f7bc7 5%,var(--color-surface))}.grades-page--embedded .student-mobile-attendance-table th small{display:block;margin-top:3px;color:var(--color-muted);font-size:.75rem}.grades-page--embedded .student-mobile-attendance-select{width:min(100%,110px);min-height:84px;margin-inline:auto;font-size:2rem;text-align:center}.grades-page--embedded .grade-mobile-editor-visible .student-mobile-grades-heading{margin:14px 0 10px;color:var(--color-text);font-size:1rem}.grades-page--embedded .grade-mobile-editor-visible .grade-capture-table-wrap{overflow-x:auto!important;overflow-y:visible!important}.grades-page--embedded .grade-mobile-editor-visible .grade-capture-table{display:table!important;width:max-content!important;min-width:100%!important}.grades-page--embedded .grade-mobile-editor-visible .grade-capture-table thead{display:table-header-group!important}.grades-page--embedded .grade-mobile-editor-visible .grade-capture-table tbody{display:table-row-group!important}.grades-page--embedded .grade-mobile-editor-visible .grade-capture-table tbody tr{display:table-row!important}.grades-page--embedded .grade-mobile-editor-visible .grade-capture-table tbody td,.grades-page--embedded .grade-mobile-editor-visible .grade-capture-table tbody th{display:table-cell!important;min-height:0!important;padding:8px!important;white-space:nowrap!important}.grades-page--embedded .grade-mobile-editor-visible .grade-capture-table tbody tr[hidden]{display:none!important}.grades-page--embedded .student-grade-mobile-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;width:100%;min-width:0;box-sizing:border-box;margin-top:12px}.grades-page--embedded .student-grade-mobile-actions .button{min-width:0;max-width:100%;box-sizing:border-box;justify-content:center;white-space:normal;overflow-wrap:anywhere;text-align:center}.grades-page--embedded .teacher-student-gallery,.grades-page--embedded .teacher-student-gallery>*,.grades-page--embedded .student-card--rich{min-width:0;max-width:100%;box-sizing:border-box}.grades-page--embedded .student-card__primary{cursor:default}.grades-page .grade-capture-table-wrap{width:100%!important;min-width:0!important;max-width:100%!important;overflow:visible!important}.grades-page .grade-capture-table{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;zoom:1!important}.grades-page .grade-capture-table thead{display:none!important}.grades-page .grade-capture-table tbody{display:grid!important;gap:12px}.grades-page .grade-capture-table tbody tr{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;width:100%;box-sizing:border-box;padding:7px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-border)}.grades-page .grade-capture-table tbody td,.grades-page .grade-capture-table tbody th{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:flex-start;position:static!important;width:auto!important;min-width:0!important;max-width:none!important;min-height:44px;box-sizing:border-box;padding:7px;white-space:normal!important;overflow-wrap:anywhere;word-break:break-word;background:var(--color-surface)!important;box-shadow:none!important}.grades-page .grade-capture-table tbody td:before,.grades-page .grade-capture-table tbody th:before{content:attr(data-mobile-label);flex:1 0 100%;margin:0 0 4px;color:var(--color-muted);font-size:.62rem;font-weight:800;line-height:1.15;text-transform:uppercase;overflow-wrap:anywhere}.grades-page .grade-capture-table tbody .grade-capture-table__number,.grades-page .grade-capture-table tbody .grade-capture-table__photo,.grades-page .grade-capture-table tbody .grade-capture-table__first-name{grid-column:1 / -1}.grades-page .grade-capture-table tbody .grade-capture-table__number:before,.grades-page .grade-capture-table tbody .grade-capture-table__photo:before{display:none}.grades-page .grade-capture-table tbody .grade-capture-table__first-name{justify-content:flex-start;text-align:left}.grades-page .grade-capture-table tbody .grade-capture-table__photo{justify-content:center}.grades-page .grade-capture-table tbody .grade-capture-table__photo img{width:52px;height:52px;border-radius:50%;object-fit:cover}.grades-page .grade-capture-table tbody .grade-entry-input{width:min(100%,78px);max-width:100%}.grades-page .grade-capture-table tbody .grade-capture-mobile-group{grid-column:1 / -1;display:block!important;min-height:0;padding:10px 9px 6px;border-radius:7px 7px 0 0;background:var(--color-surface-soft)!important;color:var(--color-primary);font-size:.76rem;font-weight:900;text-align:left}.grades-page .grade-capture-table tbody .grade-capture-mobile-group:before{display:none}}@media(max-width:760px){.grades-page .grade-capture-shell>.grade-capture-tools label:has([data-grade-page-size]),.grades-page [data-grade-page-size]{display:none!important}.grades-page .grade-capture-shell>.grade-capture-tools{grid-template-columns:1fr!important}.grades-page .grade-capture-shell>.grade-capture-tools label{width:100%}.grades-page .grade-capture-mobile-group{border-bottom:2px solid color-mix(in srgb,var(--color-primary) 22%,var(--color-border))}.grades-page .grade-capture-table tbody tr{align-items:stretch;overflow:hidden;border-color:color-mix(in srgb,var(--color-primary) 20%,var(--color-border));background:var(--color-border)}.grades-page .grade-capture-table tbody td,.grades-page .grade-capture-table tbody th{border:0;border-bottom:1px solid color-mix(in srgb,var(--color-border) 70%,transparent)}.grades-page .grade-capture-table tbody .grade-capture-table__first-name span{font-size:1rem;font-weight:900}.grades-page .grade-recovery-mode-control,.grades-page .grade-capture-table tbody tr[hidden],.grades-page .grade-capture-table tbody .grade-capture-table__local-recovery-result.is-recovery-ignored,.grades-page .grade-capture-table tbody .grade-capture-table__local-recovery.is-recovery-ignored{display:none!important}.grades-page .grade-capture-table tbody .grade-capture-table__entry-cell,.grades-page .grade-capture-table tbody .grade-capture-table__calculated{justify-content:center;text-align:center}.grades-page .grade-capture-table tbody .grade-entry-input{text-align:center}.grades-page .grade-capture-table tbody tr{box-shadow:0 3px 12px #0f172a14}}.group-info-table-wrap{overflow:auto}.group-info-table{width:100%;min-width:620px;border:1px solid var(--color-border);border-collapse:collapse;background:var(--color-surface);font-size:13px}.group-info-table th,.group-info-table td{border:1px solid var(--color-border);padding:9px 10px;vertical-align:middle}.group-info-table thead th{background:var(--color-surface-soft);color:var(--color-muted);font-size:12px;font-weight:900;white-space:nowrap}.group-info-table thead th svg,.group-info-table tbody strong svg{margin-right:6px;color:var(--color-primary);vertical-align:-2px}.group-info-table tbody td:first-child,.group-info-table thead th:first-child{width:48px;color:var(--color-muted);font-weight:850;text-align:center}.group-info-table tbody strong{display:inline-flex;align-items:center;max-width:100%;color:var(--color-text);font-weight:850;overflow-wrap:anywhere}.group-info-person{display:inline-grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;max-width:100%;border:0;background:transparent;color:inherit;padding:0;text-align:left;cursor:pointer}.group-info-person:disabled{cursor:default}.group-info-person:hover strong,.group-info-person:focus-visible strong{color:var(--color-primary)}.group-info-person__avatar{display:grid;width:34px;height:34px;place-items:center;overflow:hidden;border:2px solid color-mix(in srgb,var(--color-primary),transparent 62%);border-radius:50%;background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary);object-fit:cover}.group-info-table tbody small{display:block;margin-top:2px;color:var(--color-muted);font-weight:750}.group-info-table tfoot th{background:var(--color-surface-soft);color:var(--color-muted);font-weight:900}.group-info-badge{display:inline-flex;margin-left:7px;border-radius:999px;background:color-mix(in srgb,var(--color-primary),transparent 84%);color:var(--color-primary);padding:3px 7px;font-size:11px;font-weight:900}.group-info-subject-list{display:grid;gap:4px}.group-info-subject-list span{display:inline-flex;align-items:center;gap:6px;min-width:0;color:var(--color-muted);font-size:12px;font-weight:800;overflow-wrap:anywhere}.group-info-subject-list svg{flex:0 0 auto;color:var(--color-success)}.group-info-muted{color:var(--color-muted)}.staff-profile-modal-card{display:grid;gap:16px}.staff-profile-modal-card__hero{display:grid;grid-template-columns:92px minmax(0,1fr);align-items:center;gap:16px;border:1px solid color-mix(in srgb,var(--color-primary),transparent 70%);border-radius:16px;background:radial-gradient(circle at 12% 10%,color-mix(in srgb,var(--color-primary),transparent 74%),transparent 34%),linear-gradient(135deg,color-mix(in srgb,var(--color-primary),transparent 88%),var(--color-surface));padding:14px}.staff-profile-modal-card__photo,.staff-profile-modal-card__school-logo{object-fit:cover;box-shadow:var(--shadow-card)}.staff-profile-modal-card__photo{width:92px;height:92px;border:4px solid color-mix(in srgb,var(--color-primary),transparent 54%);border-radius:50%;background:var(--color-surface)}.staff-profile-modal-card__photo.is-online{border-color:#00c292}.staff-profile-modal-card__photo.is-offline{border-color:#adb5bd}.staff-profile-modal-card__title{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.staff-profile-modal-card__hero strong{display:inline-flex;align-items:center;gap:8px;color:var(--color-text);font-size:23px;font-weight:950;line-height:1.1}.staff-profile-modal-card__hero span,.staff-profile-modal-card__hero em,.staff-profile-modal-card__hero small{display:inline-flex;align-items:center;gap:7px;margin-top:6px;color:var(--color-muted);font-size:13px;font-style:normal;font-weight:850}.staff-profile-modal-card__hero .presence-badge{width:max-content;border-radius:999px;padding:5px 9px}.staff-profile-modal-card__section{display:grid;gap:10px}.staff-profile-modal-card__section h4{display:inline-flex;align-items:center;gap:7px;margin:0;color:var(--color-text);font-size:13px;font-weight:950}.staff-profile-modal-card__section p{margin:0;border-left:4px solid var(--color-primary);border-radius:10px;background:color-mix(in srgb,var(--color-primary),transparent 91%);color:var(--color-text);padding:12px;font-size:13px;line-height:1.55}.staff-profile-modal-card__details{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:0}.staff-profile-modal-card__details div{border:1px solid var(--color-border);border-radius:10px;background:color-mix(in srgb,var(--color-surface),var(--color-primary) 4%);padding:10px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.staff-profile-modal-card__details div:hover,.staff-profile-modal-card__birthday:hover,.staff-profile-modal-card__phone:hover,.staff-profile-modal-card__formation article:hover,.staff-profile-modal-card__assignments article:hover{border-color:color-mix(in srgb,var(--color-primary),transparent 42%);box-shadow:0 10px 24px #141e3c1c;transform:translateY(-2px)}.staff-profile-modal-card__details dt{display:inline-flex;align-items:center;gap:6px;color:var(--color-muted);font-size:11px;font-weight:900}.staff-profile-modal-card__details dd{margin:4px 0 0;color:var(--color-text);font-size:13px;font-weight:800;overflow-wrap:anywhere}.staff-profile-modal-card__details a{color:var(--color-primary);text-decoration:none}.staff-profile-modal-card__contact-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.staff-profile-modal-card__birthday,.staff-profile-modal-card__phone{display:grid;align-items:center;gap:10px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-soft);padding:12px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.staff-profile-modal-card__birthday{grid-template-columns:auto minmax(0,1fr)}.birthday-tile{width:58px;overflow:hidden;border:2px solid var(--color-danger);border-radius:8px;background:#fff;text-align:center;box-shadow:0 4px 12px color-mix(in srgb,var(--color-danger),transparent 84%)}.birthday-tile .day,.birthday-tile .month{display:block;font-weight:900;line-height:1.1}.birthday-tile .day{color:#111827;font-size:21px;padding:6px 4px 4px}.birthday-tile .month{background:var(--color-danger);color:#fff;font-size:17px;padding:5px 4px 7px}.staff-profile-modal-card__birthday span,.staff-profile-modal-card__phone span{display:inline-flex;align-items:center;gap:6px;color:var(--color-muted);font-size:12px;font-weight:900}.staff-profile-modal-card__birthday strong,.staff-profile-modal-card__phone strong{color:var(--color-text);font-size:14px;font-weight:900}.staff-profile-modal-card__phone div{display:flex;gap:7px}.staff-profile-modal-card__phone a{display:inline-grid;width:32px;height:32px;place-items:center;border-radius:50%;background:var(--color-surface);color:var(--color-primary);text-decoration:none}.staff-profile-modal-card__phone a:last-child{color:#25d366}.staff-profile-modal-card__formation{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:10px}.staff-profile-modal-card__formation article{display:grid;align-content:start;gap:7px;min-height:100%;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-soft);padding:12px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.staff-profile-modal-card__formation article>span{display:inline-flex;align-items:center;gap:6px;color:var(--color-muted);font-size:12px;font-weight:900}.staff-profile-modal-card__formation article>strong{color:var(--color-text);font-size:14px;font-weight:900}.staff-profile-modal-card__formation article>div{display:flex;flex-wrap:wrap;gap:7px}.staff-profile-modal-card__formation em{border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-soft);color:var(--color-text);padding:6px 10px;font-size:12px;font-style:normal;font-weight:800}.staff-profile-modal-card__assignments{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}.staff-profile-modal-card__assignments article{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:10px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-soft);padding:10px;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.staff-profile-modal-card__school-logo{width:42px;height:42px;border-radius:10px;background:#fff}.staff-profile-modal-card__assignments strong,.staff-profile-modal-card__assignments span{display:block}.staff-profile-modal-card__assignments span{display:inline-flex;align-items:center;gap:6px;margin-top:3px;color:var(--color-muted);font-size:12px;font-weight:850}.group-info-list{display:grid;gap:10px}.group-info-list article{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:12px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-soft);padding:11px}.group-info-list article>span{display:inline-grid;width:42px;height:42px;place-items:center;border-radius:12px;background:color-mix(in srgb,var(--color-primary),transparent 86%);color:var(--color-primary)}.group-info-list article strong,.group-info-list article small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-info-list article small{color:var(--color-muted);font-size:12px;font-weight:750}.group-info-empty{border:1px dashed var(--color-border);border-radius:12px;padding:20px;color:var(--color-muted);text-align:center}.group-visual-tools>.button{justify-content:center;width:100%}.group-card-v3{--group-color: var(--color-primary);--group-readable-shadow: 0 1px 2px rgba(15, 23, 42, .28);position:relative;display:grid;min-height:100%;overflow:visible;border:0;border-radius:10px;background-color:var(--group-color);background-image:linear-gradient(to bottom right,color-mix(in srgb,var(--group-color),transparent 10%),color-mix(in srgb,var(--group-color),#1f2937 16%)),var(--group-bg-image, linear-gradient(transparent, transparent));background-position:center;background-size:cover;color:#fff;box-shadow:0 5px 18px #141e3c14;transition:box-shadow .18s ease,filter .18s ease,transform .18s ease}.group-card-v3:hover{z-index:6;box-shadow:0 16px 34px #141e3c2b;filter:saturate(1.08);transform:translateY(-4px)}.group-card-v3:has(.gcp-wrap.is-open){z-index:auto;transform:none;filter:none}[data-groups-content]:has(.gcp-wrap.is-open){overflow:visible}.group-card-v3[style*=--group-bg-image]{--group-readable-shadow: 0 2px 8px rgba(15, 23, 42, .58);background-color:var(--group-color);background-image:linear-gradient(to bottom right,color-mix(in srgb,var(--group-color),transparent 72%),color-mix(in srgb,var(--group-color),transparent 46%) 54%,color-mix(in srgb,var(--group-color),transparent 26%)),linear-gradient(to bottom,#0f172a24,#0f172a3d 58%,#0f172a61),var(--group-bg-image)}.group-card-v3__body{position:relative;overflow:visible;border-radius:inherit;display:grid;align-content:start;gap:0;min-height:100%;min-width:0;padding:16px}.group-card-v3__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:14px}.group-card-v3__title-wrap{flex:1;min-width:0}.group-card-v3__title-line{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.group-card-v3__title-line h3{display:flex;align-items:center;gap:7px;min-width:0;margin:0;color:#fff;font-size:19px;font-weight:850;line-height:1.18;text-shadow:var(--group-readable-shadow)}.group-card-v3__title-line h3 span{display:inline-flex;flex:0 0 auto;color:inherit}.group-card-v3__title-line h3 span svg{color:inherit;stroke:currentColor}.group-card-v3__title-line a{min-width:0;color:#fff;text-decoration:none;overflow-wrap:anywhere}.group-card-v3__title-line a:hover{color:#fff;text-decoration:none}.group-card-v3 hr{width:100%;margin:11px 0;border:0;border-top:1px solid rgba(255,255,255,.34)}.group-card-v3__family,.group-card-v3__person small{display:inline-flex;align-items:center;gap:6px;color:#ffffffc7;font-size:12px;font-weight:800;text-shadow:var(--group-readable-shadow)}.group-card-v3__state{display:flex;flex:0 0 auto;align-items:flex-start;justify-content:flex-end;gap:6px}.group-card-v3__inactive{flex:0 0 auto;border-radius:999px;background:#00000080;color:#fff;padding:4px 8px;font-size:11px;font-weight:850}.group-card-v3 .group-select{border-color:#ffffff52;background:#ffffff26;color:#fff}.group-card-v3 .group-select span{color:#fff}.group-card-v3__people{display:grid;gap:13px;margin-bottom:16px}.group-card-v3__schedule{display:grid;gap:3px;margin-bottom:16px}.group-card-v3__schedule small{display:inline-flex;align-items:center;gap:6px;color:#ffffffc7;font-size:12px;font-weight:800;text-transform:none}.group-card-v3__schedule-tip{display:inline-flex;align-items:center;color:#ffffffd1;cursor:help}.group-card-v3__schedule strong{color:#fff;font-size:14px;font-weight:750;text-transform:none;overflow-wrap:anywhere;text-shadow:var(--group-readable-shadow)}.group-card-v3__schedule span{color:#ffffffa3;font-size:12px;font-weight:750;text-transform:none;overflow-wrap:anywhere;text-shadow:var(--group-readable-shadow)}.group-card-v3__person{display:grid;gap:4px;min-width:0}.group-card-v3__person-action{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;min-width:0;border:0;background:transparent;color:inherit;padding:0;text-align:left;cursor:pointer}.group-card-v3__person-action:disabled{cursor:default}.group-card-v3__person-action:hover strong,.group-card-v3__person-action:focus-visible strong{text-decoration:none}.group-card-v3__person strong{color:#fff;font-size:14px;font-weight:750;line-height:1.25;overflow-wrap:anywhere;text-shadow:var(--group-readable-shadow)}.group-card-v3__avatar,.group-card-v3__avatar-placeholder{display:grid;width:34px;height:34px;place-items:center;overflow:hidden;border:2px solid rgba(255,255,255,.82);border-radius:50%;background:#ffffff2e;color:#fff;object-fit:cover;box-shadow:0 3px 10px #00000029;transition:transform .18s ease,box-shadow .18s ease}.group-card-v3__avatar:hover,.group-card-v3__avatar-placeholder:hover{position:relative;z-index:20;transform:scale(2.05);box-shadow:0 8px 24px #141e3c3d}.group-card-v3__chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.group-card-v3 .group-chip{border-radius:999px;padding:6px 10px;background:#ffffff26;color:#fff;font-size:12px}.group-card-v3 .group-chip-action{display:inline-flex;align-items:center;gap:6px;max-width:100%;border:0;font-weight:850;line-height:1.2;overflow-wrap:anywhere;text-decoration:none;cursor:pointer;transition:background .15s ease,box-shadow .15s ease,color .15s ease,transform .15s ease}.group-card-v3 .group-chip-action:hover,.group-card-v3 .group-chip-action:focus-visible{background:#fff;box-shadow:0 4px 12px #141e3c24;color:#272c33;outline:0;transform:translateY(-1px)}.group-card-v3 .group-performance{margin:2px 0 18px;color:#ffffffc7}.group-card-v3 .group-performance>div span,.group-card-v3 .group-performance>div strong{color:#fff}.group-card-v3 .group-performance__track{width:100%;height:12px;background:#ffffff26}.group-card-v3 .group-performance__track i{background:var(--performance-color, #00c292)}.group-card-v3__actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:auto}.group-card-v3__btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:31px;border:0;border-radius:4px;background:#fff;color:color-mix(in srgb,var(--group-color),#111827 34%);padding:6px 10px;box-shadow:none;font-size:12px;font-weight:850;line-height:1;text-decoration:none;transition:background-color .16s ease,box-shadow .16s ease,color .16s ease,transform .16s ease}.group-card-v3__btn:hover,.group-card-v3__btn:focus-visible{background:#ffffffeb;color:#111827;box-shadow:0 4px 10px #141e3c29;outline:0;transform:translateY(-1px)}.group-card-v3__btn--success{color:#0f8a5f}.group-card-v3__btn--warning{color:#9a6400}.group-card-v3__btn--danger{color:#c33131}.group-card-v3 .group-visual-tools{display:inline-flex;align-items:center;flex-wrap:wrap;gap:9px;border:0;padding:0}.gcp-wrap{position:relative;display:inline-flex}.gcp-wrap.is-open{z-index:100000}.gcp-button,.gcp-clear{display:inline-flex;align-items:center;justify-content:center;border:0;cursor:pointer}.gcp-button{position:relative;width:38px;height:38px;border:2px solid rgba(255,255,255,.92);border-radius:50%;background:#ffffffeb;color:color-mix(in srgb,var(--group-color),#111827 24%);box-shadow:0 3px 10px #00000029,inset 0 0 0 1px #ffffff8c;transition:transform .16s ease,box-shadow .16s ease}.gcp-button:hover,.gcp-button:focus-visible{transform:scale(1.06);box-shadow:0 8px 18px #0003,inset 0 0 0 1px #ffffffad}.gcp-current{position:absolute;right:3px;bottom:3px;width:12px;height:12px;border:2px solid #fff;border-radius:50%;background:var(--gcp-color, var(--group-color));box-shadow:0 1px 4px #0000003d}.gcp-popover{position:absolute;right:0;bottom:calc(100% + 10px);z-index:100001;display:none;width:160px;border:0;border-radius:18px;background:transparent;padding:0;box-shadow:none}.gcp-wrap.is-open .gcp-popover{display:grid;gap:10px}.gcp-wheel{position:relative;width:160px;height:160px;border:7px solid rgba(255,255,255,.92);border-radius:50%;background:conic-gradient(#0d6efd,#6610f2,#6f42c1,#d63384,#dc3545,#fd7e14,#ffc107,#198754,#20c997,#0dcaf0,#03a9f3,#0d6efd);box-shadow:inset 0 0 0 1px #00000014,0 18px 38px #0f172a5c;cursor:crosshair}.gcp-wheel:after{position:absolute;inset:44px;border-radius:50%;background:var(--color-surface);content:"";pointer-events:none}.gcp-thumb{position:absolute;z-index:2;display:none;width:22px;height:22px;border:3px solid #fff;border-radius:50%;box-shadow:0 3px 9px #00000052;pointer-events:none}.gcp-clear{position:absolute;right:-10px;bottom:-10px;width:36px;min-height:34px;border-radius:999px;background:#fff;color:var(--color-muted);box-shadow:0 8px 20px #0f172a33}.gcp-clear:hover,.gcp-clear:focus-visible{background:color-mix(in srgb,var(--color-danger),transparent 88%);color:var(--color-danger)}.group-card-v3 .group-color-palette{display:inline-flex;max-width:150px;gap:5px}.group-card-v3 .group-color-custom,.group-card-v3 .group-visual-tools>.button{width:38px;height:38px;min-height:38px;border:2px solid rgba(255,255,255,.92);border-radius:50%;background:#ffffffe6;color:color-mix(in srgb,var(--group-color),#111827 24%);padding:0;box-shadow:0 3px 10px #00000029,inset 0 0 0 1px #ffffff8c}.group-card-v3 .group-color-dot{width:19px;height:19px;border-color:#ffffffe0}.group-card-v3 .group-visual-tools>.button:hover,.group-card-v3 .group-color-custom:hover{transform:scale(1.06)}.group-background-progress{flex:1 1 100%;display:grid;min-width:190px;gap:5px;margin-top:2px;color:#fff;text-shadow:var(--group-readable-shadow)}.group-background-progress[hidden]{display:none}.group-background-progress strong{font-size:11px;font-weight:850;line-height:1.2}.group-background-progress span{overflow:hidden;height:7px;border-radius:999px;background:#ffffff42;box-shadow:inset 0 0 0 1px #ffffff1f}.group-background-progress i{display:block;width:0%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5eead4,#38bdf8);transition:width .16s ease}.group-background-progress[data-tone=success] i{background:linear-gradient(90deg,#86efac,#22c55e)}.group-background-progress[data-tone=error] i{background:linear-gradient(90deg,#fca5a5,#ef4444)}.group-background-alert{flex:1 1 100%;margin-top:6px;padding:6px 9px;border:1px solid rgba(255,255,255,.3);border-radius:6px;background:#0f172a61;color:#fff;font-size:12px;font-weight:700;line-height:1.3;text-shadow:var(--group-readable-shadow)}.group-background-alert[data-tone=success]{background:#1665349e}.group-background-alert[data-tone=error]{background:#991b1bad}.group-background-crop-backdrop{position:fixed;inset:0;z-index:5200;display:grid;place-items:center;padding:12px;background:#0f172a94;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.group-background-crop-backdrop[hidden]{display:none}.group-background-crop-dialog{display:grid;width:min(620px,94vw);max-height:min(88vh,560px);overflow:auto;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface);box-shadow:0 24px 80px #0f172a47}.group-background-crop-dialog header{display:flex;gap:12px;align-items:center;padding:12px 14px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary),transparent 14%),color-mix(in srgb,var(--color-success),transparent 18%));color:#fff}.group-background-crop-dialog header>span{display:inline-grid;width:34px;height:34px;place-items:center;border-radius:12px;background:#ffffff29}.group-background-crop-dialog h3,.group-background-crop-dialog p{margin:0}.group-background-crop-dialog h3{font-size:15px}.group-background-crop-dialog p{margin-top:2px;color:#ffffffc7;font-size:11px;font-weight:700}.group-background-crop-frame{width:min(360px,calc(94vw - 36px));height:auto;min-height:0;aspect-ratio:4 / 5;margin:12px auto 10px;overflow:hidden;border:3px solid color-mix(in srgb,var(--color-primary),#fff 25%);border-radius:12px;background:#0f172a;box-shadow:inset 0 0 0 1px #ffffff24}.photo-editor-canvas-wrap.group-background-crop-frame canvas,.group-background-crop-frame canvas{display:block;max-width:100%;width:100%;height:100%;aspect-ratio:4 / 5;cursor:grab;touch-action:none;border-radius:8px;box-shadow:none}.group-background-crop-frame canvas:active{cursor:grabbing}.group-background-crop-tools{display:grid;grid-template-columns:auto minmax(140px,1fr) repeat(5,auto);gap:8px;align-items:center;padding:0 14px 10px}.group-background-crop-tools .button{width:36px;min-height:34px;height:34px;justify-content:center;padding:0}.group-background-crop-dialog footer{display:flex;justify-content:flex-end;gap:10px;padding:10px 14px 14px}@media(max-height:620px){.group-background-crop-dialog{width:min(540px,94vw);max-height:86vh}.group-background-crop-frame{width:min(300px,calc(94vw - 36px));margin-top:10px}.group-background-crop-dialog header p{display:none}}@media(max-width:560px){.group-background-crop-tools{grid-template-columns:repeat(4,auto);justify-content:center}.grades-page--embedded .student-grade-mobile-actions [data-mobile-edit-student]{grid-column:1 / -1}.group-background-crop-tools input{grid-column:1 / -1;min-width:100%;order:-1}}.group-page-alert{margin-bottom:10px}@media(max-width:1020px){.grade-summary-panel__body{grid-template-columns:1fr}.group-editor__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.group-grade-section__header,.group-editor__footer{align-items:stretch;flex-direction:column}.group-grade-section__summary{justify-content:flex-start}.group-editor__grid,.group-editor__grid .field:nth-child(4),.group-editor__grid .field:nth-child(5),.group-editor__grid .field:nth-child(6){grid-column:auto;grid-template-columns:1fr}}.student-card{display:grid;grid-template-columns:58px minmax(0,1fr);gap:12px}.student-card--link{color:inherit;text-decoration:none;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.student-card--link:hover{border-color:color-mix(in srgb,var(--color-primary),transparent 45%);box-shadow:var(--shadow-card);transform:translateY(-1px)}.student-card__top,.student-card__meta{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.student-card__top{justify-content:space-between}.student-card__meta{margin:6px 0 10px}.student-card__open{display:inline-flex;align-items:center;width:max-content;margin-top:8px;color:var(--color-primary);font-size:12px;font-weight:800}.student-card--link:hover .student-card__open{color:var(--color-primary-strong);text-decoration:none}.student-avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--color-primary);color:#fff;font-weight:800;overflow:hidden}.student-avatar img{width:100%;height:100%;object-fit:cover}.student-account{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:16px}.student-account-hero{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:18px}.student-account-avatar{width:112px;height:112px;overflow:hidden;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface-soft)}.student-account-avatar img{width:100%;height:100%;object-fit:cover}.student-account-main h3{margin:8px 0 4px;font-size:28px}.student-account-main p{color:var(--color-muted);margin:0 0 12px}.student-account-v2{display:grid;grid-template-columns:minmax(0,1fr);width:100%;gap:16px}.student-account-hero-v2{position:relative;grid-column:1 / -1;width:100%;box-sizing:border-box;overflow:hidden;padding:22px;color:#fff;border-radius:18px 18px 0 0!important;background:linear-gradient(135deg,color-mix(in srgb,var(--student-group-color) 96%,#0f172a),color-mix(in srgb,var(--student-group-color) 58%,#0f172a));box-shadow:0 18px 45px #0f172a2e}.student-account-hero-v2 a{color:inherit}.student-account-hero-top,.student-account-hero-nav{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-account-hero-top>span{opacity:.78;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.student-account-hero-content{display:grid;grid-template-columns:168px minmax(0,1fr);align-items:center;gap:24px;margin-top:18px}.student-account-photo-wrap{width:168px;height:168px;overflow:hidden;border:5px solid rgba(255,255,255,.86);border-radius:50%;background:#ffffff29;box-shadow:0 16px 36px #0f172a47}.student-account-photo-v2{width:100%;height:100%;object-fit:cover}.student-account-identity h1{margin:8px 0 4px;font-size:clamp(28px,4.2vw,42px);line-height:1.05;overflow-wrap:anywhere}.student-account-identity p{margin:0;opacity:.88;font-size:15px;font-weight:700}.student-account-course-meta{margin-top:5px!important;font-size:13px;opacity:.72!important}.student-account-identity-meta{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.student-account-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid rgba(255,255,255,.3);border-radius:999px;background:#ffffff24;font-size:12px;font-weight:800}.student-account-hero-nav{margin-top:18px}.student-account-performance{display:grid;grid-column:1 / -1;width:100%;box-sizing:border-box;gap:10px}.student-account-v2>.student-account-performance-shell{display:grid;grid-column:1 / -1;align-self:stretch;justify-self:stretch;width:100%;min-width:0;box-sizing:border-box;gap:10px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-panel);background:var(--color-surface)}.student-account-shell-title{display:flex;align-items:center;gap:9px;color:var(--color-text)}.student-account-shell-title h2{margin:0;font-size:16px}.student-account-performance-shell .student-account-performance>.student-account-section-title{display:none}.student-account-performance-shell{position:relative;z-index:20}.student-account-monthly{z-index:21}.student-account-top-panels{position:relative;z-index:30}.student-account-top-panels .student-account-performance{position:relative;z-index:31}.student-account-top-panels{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(250px,.7fr);gap:16px;align-items:stretch}.student-account-top-panels .student-account-performance{grid-column:auto}.student-account-section-title{display:flex;align-items:center;gap:9px;margin-bottom:13px;color:var(--color-text)}.student-account-section-heading{display:inline-flex;align-items:center;gap:9px;min-width:0}.student-account-view-toggle{display:inline-flex;align-items:center;gap:4px;margin-left:auto}.student-account-view-toggle .button{display:inline-grid;place-items:center;min-width:34px;min-height:32px;padding:6px;color:var(--color-muted)}.student-account-view-toggle .button.is-active{color:var(--color-primary-strong);border-color:color-mix(in srgb,var(--color-primary) 55%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface))}.student-account-subject-table.is-hidden,.student-account-subject-grid.is-hidden{display:none}.student-account-format>header{display:flex;width:100%;align-items:center;gap:10px}.student-account-format>header>h3{min-width:0;margin:0}.student-account-format-count{margin-left:auto;color:#fff;font-size:12px;font-weight:750;white-space:nowrap}.student-account-format>header>.student-account-view-toggle{margin-left:0}.student-account-view-toggle .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}.student-account-format[data-account-subject-format="3"] .student-account-grade-table:not(.student-account-configured-table) th:first-child{font-size:0}.student-account-format[data-account-subject-format="3"] .student-account-grade-table:not(.student-account-configured-table) th:first-child:after{content:"Asignatura";font-size:12px}.student-account-view-toggle.button{background:#fff;color:var(--color-primary-strong);border-color:color-mix(in srgb,var(--color-primary) 40%,#fff)}.student-account-view-toggle.button:hover,.student-account-view-toggle.button:focus-visible{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.student-account-section-title h2{margin:0;font-size:15px}.student-account-performance-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.student-account-performance-head strong{font-size:30px;color:var(--color-primary-strong)}.student-account-performance-head span{color:var(--color-muted);font-weight:800}.student-account-bar{position:relative;height:16px;overflow:hidden;border:1px solid #9ca3af;border-radius:999px;background:#d1d5db;box-shadow:inset 0 1px 2px #0f172a1f}[data-theme=dark] .student-account-bar{border-color:#6b7280;background:#4b5563}.student-account-bar i{position:relative;display:block;height:100%;overflow:hidden;border-radius:inherit;background:linear-gradient(90deg,#ef4444,#f59e0b 52%,#22c55e);background-size:180% 100%;box-shadow:0 0 12px #22c55e47;animation:student-account-progress-flow .9s ease-out 1 both;transition:width .8s cubic-bezier(.2,.75,.25,1)}.student-account-bar i:after{position:absolute;inset:0;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.38) 48%,transparent 74%);content:"";transform:translate(-100%);animation:student-account-progress-shine .9s ease-out 1 both}.student-account-bar b{position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:11px;text-shadow:0 1px 2px rgba(0,0,0,.5)}.student-account-monthly{position:relative;z-index:100;isolation:isolate;margin-top:10px;padding:11px 12px 9px;border:0;border-radius:12px;background:transparent}.student-account-monthly>small{display:block;color:var(--color-muted);font-size:11px;font-weight:800;letter-spacing:.02em}.student-account-monthly>small:after{content:none}.student-account-monthly:after{content:none}.student-account-monthly>div{position:relative;display:flex;align-items:end;gap:0;height:104px;margin-top:8px;overflow:visible;padding:0 4px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 24px,color-mix(in srgb,var(--border-color) 45%,transparent) 25px);border-radius:10px}.student-account-month-line{display:block;position:absolute;z-index:999;inset:0;width:100%;height:100%;overflow:visible;color:#0f766e;pointer-events:none}.student-account-month-line polyline{stroke:#075985!important;stroke-width:3px;opacity:1;filter:drop-shadow(0 1px 1px rgb(255 255 255 / .9))}.student-account-month-line marker path{fill:#075985!important;stroke:#075985}.student-account-month-line marker{display:none!important}.student-account-month-bar{position:relative;z-index:1;display:grid;flex:1 1 0;grid-template-rows:18px minmax(36px,1fr) 18px;min-width:0;height:100%;place-items:center}.student-account-month-bar strong,.student-account-month-bar span{color:var(--color-muted);font-size:10px;white-space:nowrap}.student-account-month-bar strong{font-variant-numeric:tabular-nums;opacity:.82}.student-account-month-bar i{position:relative;display:block;width:100%;min-height:5px;border:1px solid rgb(15 23 42 / .2);border-radius:0;align-self:end;opacity:.82;box-shadow:inset 1px 0 #ffffff2e;transform-origin:bottom;animation:student-account-bar-rise .65s cubic-bezier(.2,.75,.25,1) both}.student-account-month-bar i:after{display:none}.student-account-month-point{position:absolute;z-index:5;width:8px;height:8px;margin-left:-4px;border:0;border-radius:50%;background:#075985;box-shadow:0 1px 4px #0f172a47;pointer-events:none}.student-account-month-line [data-month-point]{display:none}.student-account-month-bar span{font-weight:800}.student-account-month-bar:hover i{filter:saturate(1.18) brightness(1.06);transform:scaleX(1.1);transition:transform .16s ease,filter .16s ease}@keyframes student-account-bar-rise{0%{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes student-account-bar-fill{0%{transform:scaleX(0);opacity:.35}to{transform:scaleX(1);opacity:1}}@keyframes student-account-progress-flow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes student-account-progress-shine{0%,35%{transform:translate(-100%)}70%,to{transform:translate(100%)}}@media(prefers-reduced-motion:reduce){.student-account-month-bar i,.student-account-bar i,.student-account-bar i:after{animation:none}.student-account-month-bar:hover i{transform:none}}@media(max-width:760px){.student-account-top-panels{grid-template-columns:1fr}}@media(max-width:760px){.student-account-main-column,.student-account-side-column{grid-template-columns:1fr}}.student-account-layout{display:grid;grid-template-columns:minmax(0,1fr);width:100%;gap:16px;align-items:start}.student-account-subjects{grid-column:1 / -1;width:100%;box-sizing:border-box}.student-account-main-column,.student-account-side-column{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;min-width:0}.student-account-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.student-account-kpis>div,.student-account-health-grid>div{padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-muted)}.student-account-kpi{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-width:0;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.student-account-kpi:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--color-primary) 45%,var(--color-border));box-shadow:0 8px 18px #0f172a1a}.student-account-kpi-icon{display:grid;width:34px;height:34px;place-items:center;border-radius:10px;color:var(--color-primary-strong);background:color-mix(in srgb,var(--color-primary) 14%,transparent)}.student-account-kpi:nth-child(2) .student-account-kpi-icon{color:#2563eb;background:color-mix(in srgb,#2563eb 14%,transparent)}.student-account-kpi:nth-child(3) .student-account-kpi-icon{color:#d97706;background:color-mix(in srgb,#d97706 14%,transparent)}.student-account-kpi:nth-child(4) .student-account-kpi-icon{color:#16a34a;background:color-mix(in srgb,#16a34a 14%,transparent)}.student-account-kpi:nth-child(5) .student-account-kpi-icon{color:#7c3aed;background:color-mix(in srgb,#7c3aed 14%,transparent)}.student-account-kpi:nth-child(3) strong{text-transform:capitalize}.student-account-performance-head span{display:inline-flex;align-items:center;gap:6px}.student-account-performance-head span:before{content:"";width:9px;height:9px;border-radius:50%;background:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 15%,transparent)}.student-account-performance-head span:before{display:none}.student-account-performance-head>span>svg{flex:0 0 auto;color:var(--color-primary-strong)}.student-account-kpi--birthday{border-color:color-mix(in srgb,#db2777 35%,var(--color-border))!important;background:linear-gradient(135deg,color-mix(in srgb,#db2777 11%,var(--color-surface-muted)),var(--color-surface-muted))!important}.student-account-kpi--birthday .student-account-kpi-icon{width:58px;height:48px;border:2px solid #db2777;border-radius:8px;color:#db2777;background:#fff;box-shadow:0 4px 12px color-mix(in srgb,#db2777,transparent 84%)}.student-account-kpi--birthday strong{color:#db2777}.student-account-birthday-tile{display:grid;width:58px;height:48px;overflow:hidden;place-items:center;align-content:center;border:2px solid #db2777;border-radius:8px;background:#fff;color:#db2777;box-shadow:0 4px 12px color-mix(in srgb,#db2777,transparent 84%)}.student-account-birthday-tile span{font-size:19px;font-weight:900;line-height:1}.student-account-birthday-tile small{color:#db2777;font-size:10px;font-weight:900;text-transform:uppercase}.student-account-kpi--birthday>div:last-child strong{display:none!important}.student-account-kpi--birthday{grid-template-columns:1fr!important;justify-items:center;gap:7px!important;text-align:center}.student-account-kpi--birthday>div:last-child{order:-1}.student-account-kpi--birthday>div:last-child small{color:#db2777;font-size:11px;font-weight:900}@media(max-width:560px){.student-account-kpis{grid-template-columns:1fr}}.student-account-kpis small,.student-account-health-grid small{display:block;color:var(--color-muted);font-size:11px;font-weight:800}.student-account-kpis strong{display:block;margin-top:4px;font-size:16px}.student-account-details{display:grid;gap:0;margin:0}.student-account-details>div{display:grid;grid-template-columns:minmax(155px,.42fr) minmax(0,1fr);gap:18px;padding:9px 0;border-bottom:1px solid var(--color-border)}.student-account-details dt{color:var(--color-muted);font-size:12px;font-weight:800}.student-account-details dt{display:inline-flex;align-items:center;gap:6px}.student-account-detail-icon{display:inline-flex;color:var(--color-primary-strong)}.student-account-details dd{margin:0;overflow-wrap:anywhere}.student-account-details a,.student-account-contact-card a,.student-account-contact-card span a{color:var(--color-primary-strong);text-decoration:none}.student-account-bio{margin-top:14px;padding:12px;border-left:3px solid var(--color-primary);background:var(--color-surface-muted)}.student-account-bio p{margin:5px 0 0;white-space:pre-wrap}.student-account-contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.student-account-contact-card{display:grid;gap:7px;min-width:0;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-muted);transition:transform .16s ease,box-shadow .16s ease}.student-account-contact-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0f172a1a}.student-account-contact-card>div{display:flex;align-items:center;gap:7px;color:var(--color-primary-strong)}.student-account-contact-card b{overflow-wrap:anywhere}.student-account-contact-card span,.student-account-contact-card a{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow-wrap:anywhere;font-size:12px}.student-account-whatsapp{margin-left:6px;color:#16a34a!important}.student-account-health-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.student-account-health-grid p{margin:5px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}.student-account-company-logo{display:block;width:70px;height:70px;margin-bottom:10px;object-fit:contain;border-radius:12px}.student-account-ring{display:grid;width:112px;height:112px;margin:5px auto 12px;place-items:center;border-radius:50%;background:conic-gradient(var(--color-primary) var(--completion),var(--color-border) 0);box-shadow:inset 0 0 0 10px var(--color-surface)}.student-account-ring strong{display:grid;width:78px;height:78px;place-items:center;border-radius:50%;background:var(--color-surface);font-size:22px}.student-account-muted{margin:0;color:var(--color-muted)}.student-account-format{overflow:hidden;margin-top:14px;border:1px solid var(--color-border);border-radius:var(--radius-control)}.student-account-format>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;color:#fff;background:linear-gradient(110deg,var(--color-primary-strong),var(--color-primary))}.student-account-format>header h3{margin:0;font-size:14px}.student-account-format>header span{font-size:12px;font-weight:800}.student-account-subject-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px;padding:12px;background:var(--color-surface-muted)}.student-account-subject-card{min-width:0;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);transition:transform .16s ease,box-shadow .16s ease}.student-account-subject-card:hover{transform:translateY(-2px);box-shadow:0 8px 20px #0f172a1a}.student-account-subject-card button{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;width:100%;padding:0;border:0;color:var(--color-text);background:transparent;text-align:left;cursor:pointer}.student-account-subject-card button strong{overflow-wrap:anywhere}.student-account-subject-card button small{grid-column:2;color:var(--color-muted)}.student-account-subject-icon{display:grid;width:36px;height:36px;place-items:center;border-radius:11px;color:var(--color-primary-strong);background:color-mix(in srgb,var(--color-primary) 13%,transparent)}.student-account-subject-meta,.student-account-grade-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;font-size:12px}.student-account-subject-meta span{display:inline-flex;align-items:center;gap:5px;color:var(--color-muted);overflow-wrap:anywhere}.student-account-subject-performance{display:grid;grid-template-columns:auto minmax(55px,1fr) auto;align-items:center;gap:7px;margin-top:10px;color:var(--color-muted);font-size:11px;font-weight:750}.student-account-subject-performance>div{height:7px;overflow:hidden;border-radius:999px;background:#d1d5db}.student-account-subject-performance>div i{display:block;height:100%;border-radius:inherit}.student-account-grade-row b{font-size:18px}.student-account-grade-row span{padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800}.student-account-grade-row .is-success,.student-account-grade-table .is-success{color:#15803d;background:#dcfce7}.student-account-grade-row .is-danger,.student-account-grade-table .is-danger{color:#b91c1c;background:#fee2e2}.student-account-grade-row .is-warning,.student-account-grade-table .is-warning{color:#a16207;background:#fef3c7}.student-account-table-wrap{display:block;width:0;min-width:100%;max-width:100%;overflow-x:auto;overflow-y:visible;padding:0 0 12px;overscroll-behavior-x:contain;scrollbar-width:auto;scrollbar-color:var(--color-primary) color-mix(in srgb,var(--color-primary) 12%,var(--color-surface))}.student-account-table-wrap::-webkit-scrollbar{height:10px}.student-account-table-wrap::-webkit-scrollbar-track{background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));border-radius:8px}.student-account-table-wrap::-webkit-scrollbar-thumb{background:var(--color-primary);border-radius:8px}.student-account-grade-table{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.student-account-grade-table th,.student-account-grade-table td{padding:8px 10px;border-bottom:1px solid var(--color-border);text-align:left;white-space:nowrap}.student-account-grade-table th{color:var(--color-muted);font-size:10px;text-transform:uppercase}.student-account-grade-table th:first-child,.student-account-grade-table td:first-child{position:sticky;left:0;z-index:1;background:var(--color-surface)}.student-account-format[data-account-subject-format="3"] .student-account-grade-table th:first-child,.student-account-format[data-account-subject-format="3"] .student-account-grade-table td:first-child{width:240px;min-width:240px;max-width:240px}.student-account-format[data-account-subject-format="3"] .student-account-grade-table th:nth-child(2),.student-account-format[data-account-subject-format="3"] .student-account-grade-table td:nth-child(2){position:sticky;left:240px;width:125px;min-width:125px;max-width:125px;z-index:1;background:var(--color-surface);box-shadow:8px 0 12px -10px #0f172aa6}.student-account-format .student-account-grade-table th:nth-child(2),.student-account-format .student-account-grade-table td:nth-child(2){text-align:center}.student-account-status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:4px 8px;border:1px solid currentColor;border-radius:999px;font-size:10px;font-weight:800;line-height:1.1;white-space:nowrap}.student-account-ra-grade-badge{display:inline-flex!important;align-items:center;justify-content:center;flex:0 0 42px!important;width:42px!important;min-width:42px!important;max-width:42px!important;height:24px;box-sizing:border-box;overflow:hidden;margin-left:4px;padding:3px 4px;border:1px solid #0d4778;border-radius:999px;background:#15558d;color:#fff;font-size:11px;font-weight:800;line-height:1;white-space:nowrap}.student-account-grade-table tbody tr:nth-child(2n) td{background:#eef4f8!important}.student-account-grade-table tbody tr:nth-child(odd) td{background:#fff!important}.student-account-grade-table tbody td:nth-child(1),.student-account-grade-table tbody td:nth-child(2){background:var(--color-surface)!important}[data-theme=dark] .student-account-grade-table tbody tr:nth-child(2n) td{background:#243746!important}[data-theme=dark] .student-account-grade-table tbody tr:nth-child(odd) td{background:#1b2b38!important}.student-account-format[data-account-subject-format="5"] .student-account-grade-table th:first-child,.student-account-format[data-account-subject-format="5"] .student-account-grade-table td:first-child,.student-account-format[data-account-subject-format="6"] .student-account-grade-table th:first-child,.student-account-format[data-account-subject-format="6"] .student-account-grade-table td:first-child{left:0;min-width:220px;width:220px;max-width:220px}.student-account-format[data-account-subject-format="5"] .student-account-grade-table th:first-child,.student-account-format[data-account-subject-format="5"] .student-account-grade-table td:first-child,.student-account-format[data-account-subject-format="6"] .student-account-grade-table th:first-child,.student-account-format[data-account-subject-format="6"] .student-account-grade-table td:first-child{white-space:normal;overflow-wrap:anywhere;word-break:normal}.student-account-format[data-account-subject-format="5"] .student-account-grade-table th:nth-child(2),.student-account-format[data-account-subject-format="5"] .student-account-grade-table td:nth-child(2),.student-account-format[data-account-subject-format="6"] .student-account-grade-table th:nth-child(2),.student-account-format[data-account-subject-format="6"] .student-account-grade-table td:nth-child(2){position:sticky;left:220px;width:125px;min-width:125px;max-width:125px;z-index:1;background:var(--color-surface);box-shadow:8px 0 12px -10px #0f172aa6}.student-account-format[data-account-subject-format="3"] .student-account-grade-table thead tr:first-child>th:nth-child(-n+2),.student-account-format[data-account-subject-format="5"] .student-account-grade-table thead tr:first-child>th:nth-child(-n+2),.student-account-format[data-account-subject-format="6"] .student-account-grade-table thead tr:first-child>th:nth-child(-n+2){z-index:3}.student-account-configured-table thead tr:nth-child(2) th{position:relative;z-index:1}.student-account-configured-table thead tr:nth-child(2) th{left:auto!important;width:auto!important;min-width:0!important;max-width:none!important;box-shadow:none!important}.student-account-configured-table th,.student-account-configured-table td{border:1px solid var(--color-border)}.student-account-configured-table tbody tr:nth-child(2n) td{background:color-mix(in srgb,var(--color-surface-muted) 58%,var(--color-surface))}.student-account-configured-table tbody tr:nth-child(odd) td{background:var(--color-surface)}.student-account-configured-table tbody td:nth-child(1),.student-account-configured-table tbody td:nth-child(2){background:var(--color-surface)!important}.student-account-configured-table thead th{text-align:center;vertical-align:middle}.student-account-configured-table tbody td:nth-child(n+4){text-align:center}.student-account-configured-table tbody td:nth-child(1),.student-account-configured-table tbody td:nth-child(2),.student-account-configured-table tbody td:nth-child(3){text-align:left}.student-account-format .student-account-grade-table th:first-child,.student-account-format .student-account-grade-table td:first-child,.student-account-format .student-account-grade-table th:nth-child(2),.student-account-format .student-account-grade-table td:nth-child(2){box-sizing:border-box}.student-account-table-meter{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow:visible;white-space:nowrap}.student-account-table-meter-track{display:block;width:76px;min-width:76px;height:7px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border) 62%,transparent)}.student-account-table-meter-track i{display:block;height:100%;min-width:0;border-radius:inherit;transition:width .2s ease}.student-account-table-meter b{color:var(--color-text);font-size:.68rem;font-weight:400;line-height:1;white-space:nowrap}.student-account-format .student-account-grade-table td:last-child{text-align:left!important}.student-account-format .student-account-configured-table th:last-child,.student-account-format .student-account-configured-table td:last-child{text-align:left!important}.student-account-format .student-account-grade-table th:last-child{text-align:left!important}.student-account-format[data-account-subject-format="3"] .student-account-grade-table th:nth-child(4),.student-account-format[data-account-subject-format="3"] .student-account-grade-table td:nth-child(4){text-align:center!important}@media(max-width:760px){.grade-capture-table-wrap{width:100%;min-width:0;max-width:100%;overflow:visible}.grade-capture-table{display:block;width:100%;min-width:0;max-width:100%;zoom:1}.grade-capture-table thead{display:none}.grade-capture-table tbody{display:grid;gap:12px}.grade-capture-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:8px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-border)}.grade-capture-table tbody td,.grade-capture-table tbody th{display:flex;align-items:center;justify-content:center;position:static!important;width:auto!important;min-width:0!important;max-width:none!important;min-height:44px;padding:7px 8px;white-space:normal;overflow-wrap:anywhere;background:var(--color-surface)!important;box-shadow:none!important}.grade-capture-table tbody .grade-capture-table__number,.grade-capture-table tbody .grade-capture-table__photo,.grade-capture-table tbody .grade-capture-table__first-name{grid-column:1 / -1}.grade-capture-table tbody .grade-capture-table__first-name{justify-content:flex-start;text-align:left}.grade-capture-table tbody .grade-capture-table__photo img{width:48px;height:48px;border-radius:50%;object-fit:cover}.grade-capture-table tbody .grade-capture-table__entry-cell{min-width:0!important}.grade-capture-table tbody .grade-entry-input{width:min(100%,78px)}.grade-capture-table tbody td:before,.grade-capture-table tbody th:before{content:attr(data-mobile-label);display:block;margin-right:6px;color:var(--color-muted);font-size:.64rem;font-weight:800;line-height:1.1;text-transform:uppercase}.grade-capture-table tbody .grade-capture-table__number:before,.grade-capture-table tbody .grade-capture-table__photo:before{display:none}.grade-capture-table tbody tr:hover td,.grade-capture-table tbody tr:hover th{background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface))!important}.student-account-table-wrap{width:100%;min-width:0;overflow:visible;padding-bottom:0}.student-account-grade-table,.student-account-grade-table tbody,.student-account-grade-table tr,.student-account-grade-table td{display:block}.student-account-grade-table{width:100%;min-width:0;font-size:.82rem}.student-account-grade-table thead{display:none}.student-account-grade-table tbody{display:grid;gap:12px}.student-account-grade-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:8px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-border)}.student-account-grade-table tbody td{position:static!important;width:auto!important;min-width:0!important;max-width:none!important;min-height:44px;padding:7px 9px;white-space:normal!important;overflow-wrap:anywhere;background:var(--color-surface)!important;box-shadow:none!important}.student-account-grade-table tbody td:before{content:attr(data-mobile-label);display:block;margin-bottom:3px;color:var(--color-muted);font-size:.66rem;font-weight:750;letter-spacing:.02em;text-transform:uppercase}.student-account-grade-table tbody td:first-child{grid-column:1 / -1;font-weight:700}.student-account-grade-table tbody td:last-child{grid-column:1 / -1}.student-account-grade-table tbody td:has(.student-account-performance){grid-column:1 / -1}}.student-account-company-cell{display:table-cell!important;vertical-align:middle;white-space:nowrap}.student-account-company-cell>span{display:inline-block;vertical-align:middle}.student-account-company-table-logo{width:36px!important;height:36px!important;flex:0 0 36px;border-radius:6px;object-fit:contain}.student-account-company-cell .student-account-company-table-logo{display:inline-block;margin-right:7px;vertical-align:middle}.student-account-company-link{display:inline-flex;align-items:center;gap:9px;font-size:1.05rem}.student-account-company-link .student-account-company-table-logo{margin-right:0}.student-account-format[data-account-subject-format="5"] .student-account-grade-table th:nth-child(4),.student-account-format[data-account-subject-format="5"] .student-account-grade-table td:nth-child(4){text-align:center!important}.student-account-format .student-account-configured-table td:last-child .student-account-table-meter{margin-left:0;margin-right:auto}.student-account-fraction,.student-account-fraction b,.student-account-fraction i{font-weight:400!important}.student-account-fraction{display:inline-grid;grid-template-rows:1fr 1fr;min-width:26px;color:var(--color-text);font-size:.78rem;line-height:1;text-align:center;vertical-align:middle}.student-account-fraction b{padding:0 3px 2px;border-bottom:1px solid currentColor}.student-account-fraction i{padding:2px 3px 0;font-style:normal}.student-account-format .student-account-grade-table th:first-child,.student-account-format .student-account-grade-table td:first-child{padding-left:10px!important;padding-right:10px;text-indent:0;text-align:left!important}.student-account-detail-modal{position:fixed;inset:0;z-index:10050;display:grid;padding:20px;place-items:center;background:#0f172a9e}.student-account-detail-modal[hidden]{display:none}.student-account-detail-dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(920px,100%);max-height:min(820px,calc(100vh - 40px));overflow:hidden;border-radius:14px;background:var(--color-surface);box-shadow:0 22px 70px #00000047}.student-account-detail-dialog>header,.student-account-detail-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--color-border)}.student-account-detail-dialog>footer{justify-content:flex-end;border-top:1px solid var(--color-border);border-bottom:0}.student-account-detail-dialog>header h2{margin:0;font-size:17px}.student-account-detail-dialog>header button{display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:8px;color:var(--color-text);background:transparent;cursor:pointer}.student-account-detail-dialog>header button:hover{color:#fff;background:var(--color-primary)}.student-account-detail-dialog>[data-detail-body]{overflow:auto;padding:16px}.student-account-detail-group{margin-bottom:12px;border:1px solid var(--color-border);border-radius:10px;overflow:hidden}.student-account-detail-group h4,.student-account-detail-group footer{margin:0;padding:10px 12px;background:var(--color-surface-muted)}.student-account-detail-group h4{display:flex;align-items:center;gap:8px;font-size:15px}.student-account-detail-group h4 small{color:var(--color-muted)}.student-account-detail-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:10px 12px;border-top:1px solid var(--color-border)}.student-account-detail-row span{color:var(--color-muted);font-size:12px}.student-account-detail-row b,.student-account-detail-row strong{margin-left:auto}.student-account-detail-group footer{color:var(--color-muted);font-size:12px}@media(max-width:760px){.student-account-hero-content,.student-account-layout{grid-template-columns:1fr}.student-account-photo-wrap{width:118px;height:118px;margin:auto}.student-account-identity{text-align:center}.student-account-identity-meta,.student-account-actions,.student-account-hero-nav{justify-content:center}.student-account-health-grid{grid-template-columns:1fr}.student-account-details>div{grid-template-columns:1fr;gap:3px}}.student-account-detail-periods{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.student-account-detail-periods>article{min-width:0;padding:14px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface)}.student-account-detail-periods>article.is-full-width{grid-column:1 / -1}.student-account-detail-not-worked{grid-column:1 / -1;margin:0;padding:16px;color:var(--color-muted);font-size:13px;text-align:center;background:var(--color-surface-muted);border:1px dashed var(--color-border);border-radius:8px}.student-account-detail-dialog>[data-detail-body][data-format="6"]{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));align-content:start;align-items:start;gap:14px}.student-account-detail-dialog>[data-detail-body][data-format="6"] .student-account-detail-group{min-width:0;margin-bottom:0;height:auto;padding:8px;background:var(--color-surface);box-shadow:0 4px 14px color-mix(in srgb,var(--color-text) 8%,transparent);overflow:visible}.student-account-detail-dialog>[data-detail-body][data-format="6"] .student-account-detail-periods{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;flex:initial}.student-account-detail-dialog>[data-detail-body][data-format="6"] .student-account-detail-performance,.student-account-detail-dialog>[data-detail-body][data-format="6"] .student-account-comparisons{display:block;visibility:visible;opacity:1}@media(max-width:600px){.student-account-detail-dialog>[data-detail-body][data-format="6"]{grid-template-columns:1fr}.student-account-detail-dialog>[data-detail-body][data-format="6"] .student-account-detail-periods{grid-template-columns:1fr}}.student-account-detail-periods article>header,.student-account-detail-performance-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.student-account-detail-periods article>header span{display:inline-flex;align-items:center;gap:6px;color:var(--color-muted);font-size:14px}.student-account-detail-periods article>header b{white-space:nowrap}.student-account-detail-performance{margin-top:9px}.student-account-detail-performance-head{color:var(--color-muted);font-size:13px}.student-account-detail-performance-head b{color:var(--color-text);font-size:12px}.student-account-detail-performance-bar,.student-account-comparison-meter{height:12px;margin-top:6px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border) 70%,transparent)}.student-account-detail-performance-bar i,.student-account-comparison-meter i{display:block;height:100%;border-radius:inherit;background:#2563eb}.student-account-comparison-meter.excellent i{background:#16a34a}.student-account-comparison-meter.very-good i{background:#0d9488}.student-account-comparison-meter.good i{background:#2563eb}.student-account-comparison-meter.insufficient i{background:#dc2626}.student-account-detail-performance.excellent .student-account-detail-performance-bar i{background:#16a34a}.student-account-detail-performance.very-good .student-account-detail-performance-bar i{background:#0d9488}.student-account-detail-performance.good .student-account-detail-performance-bar i{background:#2563eb}.student-account-detail-performance.insufficient .student-account-detail-performance-bar i{background:#dc2626}.student-account-detail-performance.is-recovery .student-account-detail-performance-bar i{background:#d97706}.student-account-comparisons{display:grid;gap:7px;margin-top:11px;padding-top:9px;border-top:1px solid var(--color-border)}.student-account-comparisons>strong{display:inline-flex;align-items:center;gap:6px;color:var(--color-muted);font-size:11px}.student-account-comparison-row{display:grid;grid-template-columns:62px minmax(50px,1fr) 36px;align-items:center;gap:7px;min-width:0;font-size:11px}.student-account-comparison-row>span{display:inline-flex;align-items:center;gap:4px;color:var(--color-muted)}.student-account-comparison-row>b{text-align:right}.student-account-comparison-row small{grid-column:1 / -1;display:inline-flex;align-items:center;gap:4px;color:var(--color-muted)}.student-account-detail-group>footer{display:flex;align-items:center;gap:6px}.student-account-subject-link{display:inline-flex;max-width:100%;padding:0;border:0;color:inherit;background:transparent;font:inherit;text-align:left;text-decoration:none;cursor:pointer}.student-account-subject-link:hover{color:inherit;text-decoration:none}.student-account-subject-link.is-disabled{cursor:not-allowed;opacity:.58}.student-account-grade-table tbody tr{transition:background-color .16s ease,box-shadow .16s ease}.student-account-grade-table tbody tr:hover{background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface))}.student-account-grade-table tbody tr:hover>td{background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface))!important}.student-account-grade-table tbody tr:hover>td:nth-child(1),.student-account-grade-table tbody tr:hover>td:nth-child(2){background:color-mix(in srgb,var(--color-primary) 14%,var(--color-surface))!important}@media(max-width:600px){.student-account-detail-modal{padding:8px}.student-account-detail-dialog{max-height:calc(100vh - 16px);border-radius:10px}.student-account-detail-periods{grid-template-columns:1fr;padding:9px}.student-account-comparison-row{grid-template-columns:58px minmax(40px,1fr) 34px}}.student-account-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.student-account-report-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.student-account-summary{grid-column:1 / -1}.profile-meter-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:14px}.account-readiness-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:14px}.account-readiness{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;padding:11px 12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-muted)}.account-readiness>span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:12px;background:color-mix(in srgb,var(--color-primary) 12%,transparent);color:var(--color-primary)}.account-readiness strong,.account-readiness small{display:block}.account-readiness small{color:var(--color-muted);margin-top:2px}.account-readiness--success>span{background:color-mix(in srgb,var(--color-success) 14%,transparent);color:var(--color-success)}.account-readiness--warning>span{background:color-mix(in srgb,var(--color-warning) 16%,transparent);color:var(--color-warning)}.account-readiness--danger>span{background:color-mix(in srgb,var(--color-danger) 12%,transparent);color:var(--color-danger)}.profile-meter{display:grid;gap:8px}.profile-meter>div{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-muted);font-size:12px;font-weight:800}.profile-meter strong{color:var(--color-text);font-size:16px}.profile-meter__track{display:block;height:9px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border),transparent 40%)}.profile-meter__track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-primary),var(--color-success))}.contact-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.contact-card{display:grid;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:12px}.contact-card>span{color:var(--color-muted);font-size:12px;font-weight:800;text-transform:uppercase}.contact-card strong{overflow-wrap:anywhere}.contact-card__actions{display:flex;flex-wrap:wrap;gap:7px}.contact-card__actions a,.contact-card__actions small{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:var(--color-surface);color:var(--color-muted);padding:5px 8px;font-size:12px;font-weight:750;text-decoration:none}.contact-card__actions a:hover{color:var(--color-primary)}.student-account-nav{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.student-account-academics{grid-column:1 / -1}.detail-list{display:grid;gap:26px;margin:0}.detail-list div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:26px}.detail-list dt{color:var(--color-muted);font-weight:800}.detail-list dd{margin:0}.detail-list--stacked div{align-items:start}.detail-list--stacked dd{line-height:1.45}.subject-block{display:grid;gap:12px}.subject-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin:12px 0 18px}.subject-summary-card{display:grid;gap:4px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:12px}.subject-summary-card span,.subject-summary-card small{color:var(--color-muted);font-size:12px;font-weight:700}.subject-summary-card strong{font-size:24px}.subject-block+.subject-block{margin-top:18px}.subject-block__heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.subject-block__heading h4{margin:0}.subject-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.subject-card{display:grid;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:12px}.subject-card__top{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.subject-card h5{margin:0;font-size:15px}.subject-card p{margin:0;color:var(--color-muted);font-size:13px}@media(max-width:820px){:root{--app-header-height: 126px}.schools-editor-layout,.school-media-grid,.app-shell{grid-template-columns:1fr}.app-sidebar{position:fixed;z-index:60;inset:var(--app-header-height) auto 0 0;width:min(300px,calc(100vw - 42px));min-width:0;grid-row:auto;height:calc(100vh - var(--app-header-height));margin-top:0;overflow:auto;padding:22px;transform:translate(-105%);transition:transform .16s ease}.app-shell.is-sidebar-collapsed .app-sidebar{width:min(300px,calc(100vw - 42px));min-width:0;padding:22px;transform:translate(-105%)}.app-shell.is-sidebar-open .app-sidebar,.app-shell.is-sidebar-open.is-sidebar-collapsed .app-sidebar{transform:translate(0)}.sidebar-backdrop{position:fixed;z-index:50;inset:var(--app-header-height) 0 0;display:block;border:0;background:#060c1885;opacity:0;pointer-events:none;transition:opacity .16s ease}.app-shell.is-sidebar-open .sidebar-backdrop{opacity:1;pointer-events:auto}.sidebar-toggle{display:inline-flex;flex:0 0 auto}.brand{margin-bottom:16px}.main-nav{display:grid;gap:8px;overflow:visible;padding-bottom:4px;margin-inline:-22px}.app-shell.is-sidebar-collapsed .main-nav,.app-shell.is-sidebar-collapsed .sidebar-role{margin-inline:-22px}.main-nav__link{flex:0 0 auto;white-space:nowrap;padding-inline:22px}.app-shell.is-sidebar-collapsed .main-nav__link,.app-shell.is-sidebar-collapsed .sidebar-role{padding-inline:22px}.app-shell.is-sidebar-collapsed .main-nav__link span,.app-shell.is-sidebar-collapsed .main-nav__heading,.app-shell.is-sidebar-collapsed .main-nav__subheading,.app-shell.is-sidebar-collapsed .sidebar-role span{opacity:1;pointer-events:auto}.app-header{grid-template-columns:1fr;align-items:start;min-height:var(--app-header-height);padding:16px 18px}.header-left,.header-actions{width:100%}.header-banner{width:120px;height:42px}.admin-form-grid{grid-template-columns:1fr}.admin-field:first-child,.admin-field:nth-last-child(1):nth-child(odd){grid-column:auto}.header-actions{justify-content:flex-end;justify-self:stretch;overflow:visible;padding-bottom:2px}.user-menu{right:0;max-width:calc(100vw - 24px)}.role-school-grid{grid-template-columns:1fr}.app-main{grid-column:1;padding:calc(var(--app-header-height) + 18px) 18px 24px}.header-user,.page-heading,.page-tools{align-items:stretch;flex-direction:column;width:100%}.group-page-tools{grid-template-columns:1fr}.group-count-chip{width:100%}.user-chip{justify-items:start;margin-right:0}.filter-grid{grid-template-columns:1fr;width:100%}.dashboard-grid,.dashboard-grid--stats,.action-grid,.dashboard-hero,.school-home-hero,.school-info-grid,.foundation-grid,.system-status-grid,.report-action-row,.fallback-steps{grid-template-columns:1fr}.school-home-hero{text-align:center}.school-home-hero__logo{justify-self:center}.school-home-hero__content>span{margin-inline:auto}.system-overview{grid-template-columns:auto minmax(0,1fr)}.system-overview small{grid-column:1 / -1;text-align:left}.student-account,.student-account-hero{grid-template-columns:1fr}}.staff-role-section{display:grid;gap:14px}.staff-role-section+.staff-role-section{margin-top:20px}.staff-role-title{display:flex;align-items:center;gap:10px;margin:0;border-left:4px solid var(--color-primary);padding-left:12px;color:var(--color-text);font-size:18px;line-height:1.2}.staff-role-title span{color:var(--color-primary)}.staff-role-title em{border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-soft);color:var(--color-muted);padding:4px 8px;font-size:12px;font-style:normal;font-weight:850}.staff-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:18px}.staff-card{display:grid;gap:14px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);box-shadow:0 3px 14px #141e3c0f;padding:18px;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.staff-card:hover,.staff-card:focus-visible,.staff-card.is-selected{transform:translateY(-3px);border-color:color-mix(in srgb,var(--color-primary),transparent 35%);box-shadow:0 18px 42px color-mix(in srgb,var(--color-primary),transparent 84%);outline:0}.staff-card__name{display:flex;align-items:flex-start;gap:7px;width:100%;border:0;background:transparent;color:var(--color-text);padding:0;text-align:left;font:inherit;font-size:16px;font-weight:850;line-height:1.25;overflow-wrap:anywhere;cursor:pointer}.staff-card__divider{height:1px;background:var(--color-border)}.staff-card__head{display:flex;align-items:flex-start;gap:14px}.staff-card__avatar{display:grid;flex:0 0 76px;place-items:center;width:76px;height:76px;border:3px solid #adb5bd;border-radius:50%;background:var(--color-surface-soft);color:var(--color-primary);overflow:hidden;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.staff-card__avatar.is-online{border-color:#00c292}.staff-card__avatar img{width:100%;height:100%;object-fit:cover}.staff-card__avatar:hover{position:relative;z-index:20;transform:scale(2.15);box-shadow:0 8px 24px #141e3c59}.staff-card__meta{display:grid;gap:7px;min-width:0}.staff-card__badges{display:flex;flex-wrap:wrap;gap:6px}.presence-badge{display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:color-mix(in srgb,var(--color-muted),transparent 88%);color:var(--color-muted);padding:4px 8px;font-size:11px;font-weight:850}.presence-badge.is-online{background:color-mix(in srgb,var(--color-success),transparent 86%);color:var(--color-success)}.staff-card__contact{display:inline-flex;align-items:center;gap:6px;min-width:0;color:var(--color-muted);font-size:12px;font-weight:750;text-decoration:none}.staff-card__contact:hover{color:var(--color-primary)}.staff-sex{display:inline-grid;flex:0 0 auto;place-items:center;margin-top:1px}.staff-sex--male{color:#0d6efd}.staff-sex--female{color:#dc3545}.birthday-tile{width:58px;border:2px solid #dc3545;border-radius:8px;background:#fff;overflow:hidden;text-align:center;box-shadow:0 4px 12px #dc354529}.birthday-tile .day{display:block;color:#111827;font-size:21px;font-weight:900;line-height:1.2;padding:5px 4px 4px}.birthday-tile .month{display:block;background:#dc3545;color:#fff;font-size:18px;font-weight:900;line-height:1.1;padding:5px 4px 7px}.staff-birthday-row{display:flex;align-items:center;gap:10px;border:1px solid rgba(220,53,69,.18);border-radius:8px;background:#fff5f6;padding:10px 12px}[data-theme=dark] .staff-birthday-row{background:color-mix(in srgb,#dc3545,transparent 86%)}.staff-birthday-row .birthday-tile{flex:0 0 auto;transform:scale(.78);transform-origin:left center}.staff-birthday-text{min-width:0;color:var(--color-muted);font-size:12px;line-height:1.2}.staff-birthday-text strong{display:block;color:var(--color-text);font-size:13px}.staff-card__stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;border-top:1px solid var(--color-border);padding-top:14px;text-align:center}.staff-card__actions{display:flex;justify-content:flex-end;border-top:1px solid var(--color-border);padding-top:12px}.staff-edit-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;border:1px solid color-mix(in srgb,var(--color-primary),transparent 52%);border-radius:999px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary),transparent 88%),color-mix(in srgb,var(--color-info),transparent 90%));color:var(--color-primary);padding:8px 14px;font-size:12px;font-weight:900;letter-spacing:0;text-decoration:none;box-shadow:0 8px 18px color-mix(in srgb,var(--color-primary),transparent 90%);transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease}.staff-edit-button:hover,.staff-edit-button:focus-visible{transform:translateY(-2px);border-color:color-mix(in srgb,var(--color-primary),transparent 25%);background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary),transparent 82%),color-mix(in srgb,var(--color-info),transparent 84%));color:var(--color-primary);box-shadow:0 14px 28px color-mix(in srgb,var(--color-primary),transparent 84%);outline:0}.staff-edit-button:focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary),transparent 72%);outline-offset:2px}.staff-stat{display:grid;justify-items:center;gap:3px;min-width:0}.staff-stat strong{font-size:20px;line-height:1}.staff-stat small{color:var(--color-muted);font-size:11px}.staff-stat--blue{color:#0d6efd}.staff-stat--teal{color:#20c997}.staff-stat--purple{color:#6f42c1}.staff-stat--amber{color:#f0ad4e}.staff-insights{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:10px}.staff-insights article{display:grid;gap:4px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:10px 12px}.staff-insights span,.staff-insights small{overflow:hidden;color:var(--color-muted);font-size:12px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.staff-insights strong{overflow:hidden;font-size:18px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.staff-directory{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.staff-directory__main{min-width:0}.staff-detail{position:sticky;top:18px}.staff-detail__panel,.staff-detail__empty{display:grid;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-soft);padding:16px}.staff-detail__empty{min-height:260px;place-items:center;align-content:center;text-align:center;color:var(--color-muted)}.staff-detail__icon,.staff-detail__avatar{display:grid;place-items:center;width:86px;height:86px;overflow:hidden;border:1px solid var(--color-border);border-radius:50%;background:var(--color-surface);color:var(--color-primary)}.staff-detail__avatar img{width:100%;height:100%;object-fit:cover}.staff-detail__panel h3{margin:0;font-size:22px}.staff-detail__role{color:var(--color-muted);font-weight:800}.staff-detail__close{justify-self:end}.staff-detail__list div{grid-template-columns:88px minmax(0,1fr)}.staff-detail__actions{display:flex;flex-wrap:wrap;gap:8px}@media(max-width:1100px){.staff-directory{grid-template-columns:1fr}.staff-insights{grid-template-columns:repeat(2,minmax(0,1fr))}.staff-detail{position:static}}@media(max-width:520px){.staff-insights{grid-template-columns:1fr}}.report-card__body{display:grid;gap:7px}.report-card__category{width:max-content;border-radius:999px;background:color-mix(in srgb,var(--color-primary),transparent 90%);color:var(--color-primary);padding:4px 8px;font-size:11px;font-weight:850;text-transform:uppercase}.report-card__signals{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.reports-page .summary-strip{margin-bottom:2px}.report-action-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.report-action{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 10px;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:14px;color:var(--color-text);text-decoration:none;box-shadow:var(--shadow-card)}.report-action:hover{border-color:color-mix(in srgb,var(--color-primary) 30%,var(--color-border));transform:translateY(-1px)}.report-action span{display:grid;width:38px;height:38px;grid-row:span 2;place-items:center;border-radius:var(--radius-control);background:var(--color-primary-soft);color:var(--color-primary)}.report-action strong,.report-action small{min-width:0}.report-action small{color:var(--color-muted)}.report-action--warning span{background:color-mix(in srgb,var(--color-warning) 15%,var(--color-surface));color:var(--color-warning)}.report-action--success span{background:color-mix(in srgb,var(--color-success) 14%,var(--color-surface));color:var(--color-success)}.report-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.report-board__section{display:grid;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:14px;box-shadow:var(--shadow-soft)}.report-board__section>div{display:grid;gap:3px}.report-board__section strong{font-size:15px}.report-board__section p{margin:0;color:var(--color-muted)}.report-board__section ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.report-board__section li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center;border-radius:var(--radius-control);background:var(--color-surface-soft);padding:8px 10px}.report-board__section li>span:first-child{color:var(--color-primary)}.report-board__section a{overflow:hidden;color:var(--color-text);font-weight:850;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.report-board__section .is-empty{grid-template-columns:1fr;color:var(--color-muted);font-weight:800}.students-flow,.attendance-flow,.final-tests-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.students-flow article,.attendance-flow article,.final-tests-flow article{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:14px;box-shadow:var(--shadow-soft)}.students-flow span,.attendance-flow span,.final-tests-flow span{display:grid;width:38px;height:38px;place-items:center;border-radius:14px;color:var(--color-success);background:color-mix(in srgb,var(--color-success),transparent 88%)}.students-flow strong,.attendance-flow strong,.final-tests-flow strong{display:block;margin-bottom:4px}.students-flow p,.attendance-flow p,.final-tests-flow p{margin:0;color:var(--color-muted)}.students-flow span{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary),transparent 88%)}.final-tests-flow span{color:var(--color-warning);background:color-mix(in srgb,var(--color-warning),transparent 88%)}.report-breakdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:10px}.report-breakdown article{display:grid;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:10px 12px}.report-breakdown article>div:first-child{display:grid;gap:2px}.report-breakdown strong,.report-breakdown span,.report-breakdown small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.report-breakdown span,.report-breakdown small{color:var(--color-muted);font-size:12px;font-weight:750}.report-breakdown__bar{height:8px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border),transparent 30%)}.report-breakdown__bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-primary),var(--color-success))}.grade-format-grid,.grade-step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.grade-step-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.grade-format-card,.grade-step,.grade-contract-item{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:14px}.grade-format-card{display:grid;gap:12px}.grade-format-card__top,.grade-step{display:grid;grid-template-columns:42px minmax(0,1fr);gap:10px}.grade-format-card__top>span,.grade-step>span{display:grid;place-items:center;width:42px;height:42px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary)}.grade-format-card--success .grade-format-card__top>span{background:color-mix(in srgb,var(--color-success),transparent 88%);color:var(--color-success)}.grade-format-card--info .grade-format-card__top>span{background:color-mix(in srgb,var(--color-info),transparent 88%);color:var(--color-info)}.grade-format-card--warning .grade-format-card__top>span{background:color-mix(in srgb,var(--color-warning),transparent 88%);color:var(--color-warning)}.grade-format-card p,.grade-step p,.grade-contract-item dd{margin:0;color:var(--color-muted);line-height:1.42}.grade-format-card__signals{display:flex;flex-wrap:wrap;gap:6px}.grade-format-card__signals em{border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-muted);padding:4px 8px;font-size:12px;font-style:normal;font-weight:750}.grade-contract-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0}.grade-contract-item{display:grid;gap:5px}.grade-contract-item dt{font-weight:850}.grade-subject-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.grade-subject-tools{display:flex;justify-content:flex-end}.grade-subject-tools .field{width:min(420px,100%)}.grade-format-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.grade-format-overview__item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:14px;box-shadow:var(--shadow-soft)}.grade-format-overview__item>span{display:grid;width:38px;height:38px;place-items:center;border-radius:14px;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary),transparent 88%)}.grade-format-overview__item--warning>span{color:var(--color-warning);background:color-mix(in srgb,var(--color-warning),transparent 86%)}.grade-format-overview__item--success>span{color:var(--color-success);background:color-mix(in srgb,var(--color-success),transparent 86%)}.grade-format-overview__item strong,.grade-format-overview__item small{display:block}.grade-format-overview__item small{margin-top:2px;color:var(--color-muted);font-size:12px;font-weight:750}.grade-format-overview__item dl{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:2px 0 0}.grade-format-overview__item dl div{border-radius:var(--radius-control);background:var(--color-surface-soft);padding:8px 10px}.grade-format-overview__item dt{color:var(--color-muted);font-size:10px;font-weight:850;text-transform:uppercase}.grade-format-overview__item dd{margin:2px 0 0;font-weight:900}.grade-selected-subject{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.8fr);gap:16px;border:1px solid color-mix(in srgb,var(--color-primary),transparent 64%);border-radius:var(--radius-card);background:color-mix(in srgb,var(--color-primary),transparent 94%);padding:16px}.grade-selected-subject h4{margin:4px 0 6px;font-size:22px}.grade-selected-subject p{margin:0;color:var(--color-muted)}.grade-selected-subject dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.grade-selected-subject dl div{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);padding:8px 10px}.grade-selected-subject dt{color:var(--color-muted);font-size:11px;font-weight:850;text-transform:uppercase}.grade-selected-subject dd{margin:3px 0 0;font-weight:850}.grade-subject-group{display:grid;gap:10px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-soft);padding:14px}.grade-subject-group__heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.grade-subject-list{display:grid;gap:8px}.grade-subject-list>p{margin:0;color:var(--color-muted)}.grade-subject-empty{display:grid;gap:6px;border:1px dashed var(--color-border);border-radius:var(--radius-card);background:var(--color-surface-soft);color:var(--color-muted);padding:14px}.grade-subject-empty[hidden]{display:none}.grade-subject-empty strong{color:var(--color-text)}.grade-subject-empty p{margin:0}.grade-subject-item{display:grid;gap:5px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text);padding:10px;text-decoration:none;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.grade-subject-item:hover,.grade-subject-item.is-selected{border-color:color-mix(in srgb,var(--color-primary),transparent 42%);box-shadow:0 12px 30px color-mix(in srgb,var(--color-primary),transparent 90%);transform:translateY(-1px)}.grade-subject-item.is-selected{background:color-mix(in srgb,var(--color-primary),transparent 94%)}.grade-subject-item span{color:var(--color-muted);font-size:13px;line-height:1.35}.grade-subject-item div{display:flex;flex-wrap:wrap;gap:5px}.grade-subject-item__selected-chip{border-color:color-mix(in srgb,var(--color-primary),transparent 45%);background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary)}.grade-capture-shell .is-recovery-collapsed{display:none!important}.grade-capture-shell{display:grid;gap:12px;width:100%;min-width:0;max-width:100%;overflow:hidden;border:1px solid color-mix(in srgb,var(--color-primary),transparent 70%);border-radius:var(--radius-card);background:linear-gradient(180deg,color-mix(in srgb,var(--color-primary),transparent 96%),transparent 52%),var(--color-surface);padding:14px}.grade-capture-shell__heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.grade-capture-shell__heading h4{margin:4px 0 6px;font-size:20px}.grade-capture-shell__heading p{margin:0;color:var(--color-muted)}.grade-capture-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.grade-capture-stats div{display:grid;grid-template-columns:34px minmax(0,1fr);gap:2px 8px;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:9px 10px}.grade-capture-stats span{grid-row:span 2;display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:color-mix(in srgb,var(--color-info),transparent 88%);color:var(--color-info)}.grade-capture-stats small,.grade-capture-stats strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grade-capture-stats small{color:var(--color-muted);font-size:11px;font-weight:800}.grade-capture-stats strong{font-size:15px}.grade-progress-distribution{display:grid;gap:8px}.grade-progress-distribution__bar{display:flex;height:10px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border),transparent 34%)}.grade-progress-distribution__bar i{min-width:0}.grade-progress-distribution__legend{display:flex;flex-wrap:wrap;gap:7px}.grade-progress-distribution__legend span{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-muted);padding:4px 8px;font-size:12px;font-weight:800}.grade-progress-distribution__legend b{width:8px;height:8px;border-radius:50%}.grade-progress-distribution__legend strong{color:var(--color-text)}.grade-progress-distribution__complete{background:var(--color-success)}.grade-progress-distribution__incomplete{background:var(--color-warning)}.grade-progress-distribution__empty{background:var(--color-info)}.grade-progress-distribution__withdrawn{background:var(--color-muted)}.grade-capture-tools{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,190px) max-content;align-items:end;gap:10px}.grade-capture-tools .check-field{min-height:40px}.grade-capture-tools__count{align-self:center;color:var(--color-muted);font-size:13px;font-weight:700;white-space:nowrap}.grade-capture-pagination{min-width:0}.grade-capture-pagination[hidden]{display:none}.grade-capture-pagination .pagination-bar{margin-top:0}.grade-capture-summary{display:flex;flex-wrap:wrap;gap:7px}.grade-capture-summary span{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface-soft);color:var(--color-muted);padding:5px 9px;font-size:12px;font-weight:800}.grade-capture-summary strong{color:var(--color-text);font-size:13px}.grade-capture-summary__success{border-color:color-mix(in srgb,var(--color-success),transparent 55%)!important}.grade-capture-summary__warning{border-color:color-mix(in srgb,var(--color-warning),transparent 55%)!important}.grade-capture-summary__info{border-color:color-mix(in srgb,var(--color-info),transparent 55%)!important}.grade-capture-summary__danger{border-color:color-mix(in srgb,var(--color-danger),transparent 55%)!important}.grade-capture-legend{display:flex;flex-wrap:wrap;gap:7px;color:var(--color-muted);font-size:12px;font-weight:800}.grade-capture-legend span{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-surface);padding:4px 8px}.grade-capture-legend b{display:inline-block;width:14px;height:8px;border-radius:999px}.grade-capture-legend .is-filled{background:color-mix(in srgb,var(--color-success),transparent 42%)}.grade-capture-legend .is-calculated{background:color-mix(in srgb,var(--color-info),transparent 42%)}.grade-capture-legend .is-empty{height:2px;background:color-mix(in srgb,var(--color-border),var(--color-muted) 8%)}.grade-capture-legend .is-progress{background:linear-gradient(90deg,var(--color-info),var(--color-success))}.grade-capture-hint{margin:-4px 0 0;color:var(--color-muted);font-size:12px;font-weight:700}.grade-entry-status{border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);color:var(--color-muted);padding:8px 10px;font-size:13px;font-weight:800}.grade-entry-status[hidden]{display:none}.grade-entry-status[data-tone=saving]{border-color:color-mix(in srgb,var(--color-warning),transparent 55%);color:var(--color-warning)}.grade-entry-status[data-tone=success]{border-color:color-mix(in srgb,var(--color-success),transparent 55%);color:var(--color-success)}.grade-entry-status[data-tone=error]{border-color:color-mix(in srgb,var(--color-danger),transparent 45%);color:var(--color-danger)}.grade-capture-table-wrap{width:100%;min-width:0;max-width:100%;overflow-x:auto;overflow-y:visible;overscroll-behavior-inline:contain;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface)}.grade-capture-table-wrap:focus-visible{outline:3px solid color-mix(in srgb,var(--color-primary) 28%,transparent);outline-offset:2px}.grade-scroll-clone{position:fixed;left:50%;bottom:8px;z-index:4600;display:flex;align-items:center;gap:7px;width:min(780px,calc(100vw - 32px));min-width:280px;height:46px;padding:7px 9px;border:1px solid color-mix(in srgb,var(--color-primary) 42%,var(--color-border));border-radius:999px;background:color-mix(in srgb,var(--color-surface) 88%,transparent);box-shadow:0 16px 42px #0f172a3d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transform:translate(-50%)}.grade-scroll-clone[hidden],.grade-scroll-clone__restore[hidden]{display:none}.grade-scroll-clone.is-dragging{box-shadow:0 22px 58px #0f172a57}.grade-scroll-clone__body{flex:1;min-width:0;height:29px;overflow-x:auto;overflow-y:hidden;scrollbar-width:auto;scrollbar-color:var(--color-primary) color-mix(in srgb,var(--color-primary) 14%,var(--color-surface))}.grade-scroll-clone__body:focus-visible{outline:2px solid color-mix(in srgb,var(--color-primary) 42%,transparent);outline-offset:1px}.grade-scroll-clone__body::-webkit-scrollbar{height:17px}.grade-scroll-clone__body::-webkit-scrollbar-track{border-radius:999px;background:color-mix(in srgb,var(--color-primary) 13%,var(--color-surface))}.grade-scroll-clone__body::-webkit-scrollbar-thumb{border:3px solid color-mix(in srgb,var(--color-surface) 82%,transparent);border-radius:999px;background:linear-gradient(90deg,var(--color-primary),var(--color-primary-strong))}.grade-scroll-clone__space{height:1px}.grade-scroll-clone__button,.grade-scroll-clone__restore{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:30px;height:30px;padding:0;border:1px solid color-mix(in srgb,var(--color-primary) 22%,var(--color-border));border-radius:50%;background:var(--color-surface);color:var(--color-primary-strong);box-shadow:0 3px 9px #0f172a1f;cursor:pointer}.grade-scroll-clone__button:hover,.grade-scroll-clone__restore:hover{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));color:var(--color-primary-strong)}.grade-scroll-clone__grip{background:var(--color-warning);color:#172033;cursor:grab}.grade-scroll-clone.is-dragging .grade-scroll-clone__grip{cursor:grabbing}.grade-scroll-clone__close:hover{border-color:var(--color-danger);background:var(--color-danger);color:#fff}.grade-scroll-clone__restore{position:fixed;right:14px;bottom:12px;z-index:4600;width:38px;height:38px}@media(max-width:640px){.grade-scroll-clone{gap:4px;width:calc(100vw - 16px);min-width:0;bottom:6px}.grade-scroll-clone__grip{display:none}}.grade-capture-empty{display:grid;justify-items:center;gap:8px;border:1px dashed var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);color:var(--color-muted);padding:18px;text-align:center}.grade-capture-empty[hidden]{display:none}.grade-capture-empty span{display:inline-flex;color:var(--color-primary)}.grade-capture-empty strong{color:var(--color-text)}.grade-capture-empty p{margin:0}.grade-capture-table{zoom:var(--grade-table-zoom, 1);width:max-content;max-width:none;min-width:780px;border-collapse:separate;border-spacing:0;font-size:12px}.grade-capture-table th,.grade-capture-table td{border-bottom:1px solid var(--color-border);padding:7px 5px;text-align:center;vertical-align:middle;white-space:nowrap}.grade-capture-table thead th{background:var(--color-surface-soft);color:var(--color-muted);font-size:11px;font-weight:850;letter-spacing:.04em;text-transform:uppercase;white-space:normal;line-height:1.15}.grade-capture-table thead th:not([rowspan]) .grade-column-sort{max-width:110px;min-width:50px}.grade-capture-table__groups th{border-top:0;border-bottom:2px solid color-mix(in srgb,var(--color-primary) 45%,var(--color-border));background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));color:var(--color-primary-strong);letter-spacing:0}.grade-capture-table__section{padding-block:9px!important;border-inline:1px solid color-mix(in srgb,var(--color-primary) 28%,var(--color-border));font-size:11px!important}.grade-capture-table__subgroups th{border-bottom:2px solid color-mix(in srgb,var(--color-primary) 30%,var(--color-border));background:color-mix(in srgb,var(--color-info) 7%,var(--color-surface))}.grade-capture-table__competency{max-width:230px;border-inline:2px solid color-mix(in srgb,var(--color-primary) 44%,var(--color-border));color:var(--color-primary-strong);white-space:normal!important}.grade-competency-heading{display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;border:0;background:transparent;color:inherit;padding:2px 4px;font:inherit;font-weight:850;cursor:pointer}.grade-competency-heading:hover,.grade-competency-heading:focus-visible{color:var(--color-primary)}.grade-competency-heading:focus-visible{border-radius:var(--radius-control);outline:2px solid color-mix(in srgb,var(--color-primary) 65%,transparent);outline-offset:2px}.grade-competency-dialog{width:min(760px,calc(100vw - 28px));max-height:min(720px,calc(100vh - 40px))}.grade-competency-body{display:grid;gap:20px;overflow-y:auto}.grade-competency-section{display:grid;gap:10px}.grade-competency-section h4{display:flex;align-items:center;gap:8px;margin:0;color:var(--color-text);font-size:1rem}.grade-competency-section--fundamental h4{color:var(--color-success)}.grade-competency-section--specific h4{color:var(--color-primary)}.grade-competency-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.grade-competency-list li{display:grid;grid-template-columns:max-content minmax(0,1fr);align-items:start;gap:10px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:11px 12px}.grade-competency-list li>span{min-width:28px;border-radius:999px;background:var(--color-primary);color:#fff;padding:4px 8px;font-size:.76rem;font-weight:850;text-align:center}.grade-competency-section--fundamental .grade-competency-list li>span{background:var(--color-success)}.grade-competency-list p{margin:0;color:var(--color-text);line-height:1.5}.grade-competency-empty{display:flex;align-items:center;gap:8px;border:1px dashed var(--color-border);border-radius:var(--radius-control);color:var(--color-muted);padding:14px}.grade-capture-table__details th{border-bottom:2px solid var(--color-border)}.grade-column-group-start{border-left:3px solid color-mix(in srgb,var(--color-primary) 72%,var(--color-border))!important}.grade-column-group-end{border-right:2px solid color-mix(in srgb,var(--color-primary) 52%,var(--color-border))!important}.grade-column-sort{display:inline-flex;align-items:center;justify-content:center;gap:5px;width:100%;border:0;background:transparent;color:inherit;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.grade-column-sort:hover,.grade-column-sort:focus-visible,.grade-column-sort[aria-sort]{color:var(--color-primary)}.grade-column-heading-wrap{display:flex;align-items:center;justify-content:center;gap:4px;width:100%}.grade-column-heading-wrap .grade-column-sort{min-width:0}.grade-column-dictation-button{display:inline-grid;width:28px;height:28px;flex:0 0 28px;place-items:center;border:1px solid color-mix(in srgb,var(--grade-heading-color, var(--color-primary)) 42%,var(--color-border));border-radius:50%;background:color-mix(in srgb,var(--grade-heading-color, var(--color-primary)) 10%,var(--color-surface));color:var(--grade-heading-color, var(--color-primary));cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,background-color .16s ease}.grade-column-dictation-button:hover,.grade-column-dictation-button:focus-visible,.grade-column-dictation-button.is-pending{transform:translateY(-1px);background:var(--grade-heading-color, var(--color-primary));color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--grade-heading-color, var(--color-primary)) 28%,transparent);outline:0}.grade-column-dictation-button.is-listening{background:var(--color-danger);color:#fff;animation:grade-dictation-pulse 1.25s ease-in-out infinite}.grade-column-entry-actions{display:inline-flex;flex:0 0 auto;align-items:center;gap:3px}.grade-column-paste-button{display:inline-grid;width:28px;height:28px;flex:0 0 28px;place-items:center;border:1px solid color-mix(in srgb,var(--color-info) 45%,var(--color-border));border-radius:50%;background:color-mix(in srgb,var(--color-info) 10%,var(--color-surface));color:var(--color-info);cursor:pointer;transition:box-shadow .16s ease,background-color .16s ease,border-color .16s ease}.grade-column-paste-button:hover,.grade-column-paste-button:focus-visible,.grade-column-paste-button.is-previewing{border-color:var(--color-info);background:var(--color-info);color:#fff;box-shadow:0 6px 14px color-mix(in srgb,var(--color-info) 30%,transparent);outline:0}.grade-column-paste-button.is-applying{border-color:var(--color-success);background:var(--color-success);color:#fff;animation:grade-dictation-pulse 1s ease-in-out infinite}.grade-capture-table thead .grade-capture-table__calculated{background:color-mix(in srgb,var(--color-info),transparent 88%);color:var(--color-info)}.grade-capture-table tbody tr:last-child th,.grade-capture-table tbody tr:last-child td{border-bottom:0}.grade-capture-table tbody tr:hover{background:color-mix(in srgb,var(--color-primary),transparent 96%)}.grade-capture-table tbody tr.is-updated{animation:grade-row-updated 1.1s ease}.grade-capture-table tr.is-muted{color:var(--color-muted)}.grade-capture-table__number{position:sticky;left:0;z-index:2;width:54px;min-width:54px;background:var(--color-surface);font-weight:850}.grade-capture-table__student{position:sticky;left:54px;z-index:2;min-width:230px;background:var(--color-surface);box-shadow:1px 0 0 var(--color-border);text-align:left!important}.grade-capture-table thead .grade-capture-table__number,.grade-capture-table thead .grade-capture-table__student{z-index:3;background:var(--color-surface-soft)}.grade-capture-table tbody tr:hover .grade-capture-table__number,.grade-capture-table tbody tr:hover .grade-capture-table__student{background:color-mix(in srgb,var(--color-primary),transparent 96%)}.grade-capture-table tbody tr.is-updated .grade-capture-table__number,.grade-capture-table tbody tr.is-updated .grade-capture-table__student{animation:grade-row-sticky-updated 1.1s ease}.grade-capture-table__student span{display:inline-block;margin-right:8px}.grade-capture-table__progress{min-width:116px}.grade-row-progress{display:grid;grid-template-columns:minmax(44px,1fr) auto;gap:3px 7px;align-items:center}.grade-row-progress i{display:block;height:7px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border),transparent 28%)}.grade-row-progress b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-info),var(--color-success))}.grade-row-progress strong{font-size:12px}.grade-row-progress small{grid-column:1 / -1;color:var(--color-muted);font-size:10px;font-weight:800}.grade-row-progress--performance{width:100%;min-width:138px;margin-top:8px;padding-top:2px}.grade-row-progress--performance small{display:inline-flex;align-items:center;gap:4px;text-transform:none;letter-spacing:0}.grade-row-progress--performance[data-tone=excellent] b{background:var(--color-success)}.grade-row-progress--performance[data-tone=high] b{background:color-mix(in srgb,var(--color-success) 58%,var(--color-info))}.grade-row-progress--performance[data-tone=passing] b{background:var(--color-info)}.grade-row-progress--performance[data-tone=warning] b{background:var(--color-warning)}.grade-row-progress--performance[data-tone=danger] b{background:var(--color-danger)}.grade-row-progress--performance[data-tone=empty] b{background:var(--color-muted)}.grade-capture-table__empty{position:relative;min-width:50px;height:36px}.grade-capture-table__value{min-width:50px;color:var(--color-text);font-size:14px;font-weight:900}.grade-capture-table__value:not(:empty){background:color-mix(in srgb,var(--color-success),transparent 91%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-success),transparent 78%)}.grade-capture-table__entry-cell{position:relative;min-width:88px;background:color-mix(in srgb,var(--color-success),transparent 94%)}.grade-capture-table th.grade-column-group-start,.grade-capture-table td.grade-column-group-start{border-left-width:3px}.grade-capture-shell--format-3 .grade-capture-table__groups th:nth-last-child(-n+5){background:color-mix(in srgb,var(--color-warning) 11%,var(--color-surface))}.grade-capture-table__entry-cell.is-recovery-ignored{background:color-mix(in srgb,var(--color-muted),transparent 94%)}.grade-capture-table__entry-cell.is-publication-locked{background:repeating-linear-gradient(135deg,transparent 0 7px,color-mix(in srgb,var(--color-danger),transparent 91%) 7px 14px),color-mix(in srgb,var(--color-danger),transparent 95%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-danger),transparent 78%)}.grade-capture-table__entry-cell.is-publication-locked .grade-entry-input:disabled{color:var(--color-danger);background:transparent;opacity:.82}.final-test-input.is-publication-locked:disabled{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger) 45%,var(--color-border));background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--color-danger) 8%,var(--color-surface)) 0 6px,var(--color-surface) 6px 12px);opacity:.86;cursor:not-allowed}.grade-entry-input{width:78px;height:50px;border:2px solid color-mix(in srgb,var(--color-border),transparent 15%);border-radius:8px;background:var(--color-surface);color:var(--color-text);padding:7px 8px;text-align:center;font-family:inherit;font-size:20px;line-height:1;font-weight:900;appearance:textfield;-moz-appearance:textfield;transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease,transform .16s ease}.grade-entry-input::-webkit-inner-spin-button,.grade-entry-input::-webkit-outer-spin-button{margin:0;appearance:none;-webkit-appearance:none}.grade-entry-fraction,.grade-capture-table__entry-cell:has(.grade-entry-denominator){min-width:150px;width:150px}.grade-capture-table__local-recovery-result{min-width:70px;background:color-mix(in srgb,var(--color-warning) 12%,var(--color-surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-warning) 42%,var(--color-border))}.grade-capture-table__local-recovery-result .grade-entry-input{width:60px;border-color:color-mix(in srgb,var(--color-warning) 64%,var(--color-border));background:color-mix(in srgb,var(--color-warning) 8%,var(--color-surface))}.grade-entry-fraction .grade-entry-input,.grade-capture-table__entry-cell:has(.grade-entry-denominator) .grade-entry-input{display:block;width:118px;margin:0 auto;padding-right:44px}.grade-entry-denominator{position:absolute;z-index:1;top:50%;left:calc(50% + 17px);min-width:34px;height:30px;transform:translateY(-50%);border-left:1px solid color-mix(in srgb,var(--color-danger),transparent 55%);background:var(--color-surface);padding:7px 4px 0 6px;color:color-mix(in srgb,var(--color-danger) 68%,var(--color-text));font-size:12px;font-weight:900;line-height:1;text-align:center;white-space:nowrap;pointer-events:none}.grades-page--embedded .grade-capture-table__number,.grades-page--embedded .grade-capture-table__photo,.grades-page--embedded .grade-capture-table__first-name{z-index:20;isolation:isolate;background:var(--color-surface)}.grades-page--embedded .grade-capture-table thead .grade-capture-table__number,.grades-page--embedded .grade-capture-table thead .grade-capture-table__photo,.grades-page--embedded .grade-capture-table thead .grade-capture-table__first-name{z-index:24}.grade-embedded-actions{min-width:0}.grade-embedded-actions:empty{display:none}.grade-embedded-actions .student-primary-actions{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-primary) 4%,var(--color-surface));padding:10px 12px}.grade-embedded-actions .grade-scroll-clone__restore{position:static;z-index:auto;width:34px;height:34px}.grade-student-gallery{display:grid;gap:14px;min-width:0}.grade-student-gallery[hidden]{display:none}.teacher-student-gallery__pagination{display:flex;justify-content:center;padding-top:4px}.teacher-student-gallery__tools{display:grid;grid-template-columns:minmax(220px,1fr) minmax(120px,160px);align-items:end;gap:10px;padding-bottom:2px}.teacher-student-gallery__tools .field{margin:0}.grade-focus-card,.grade-position-badge{position:fixed;z-index:4300;display:flex;align-items:center;gap:11px;border:2px solid var(--color-primary);border-radius:9px;background:var(--color-surface);color:var(--color-text);box-shadow:0 16px 42px #0f172a38;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.grade-focus-card[hidden],.grade-position-badge[hidden],.grade-last-saved-tooltip[hidden]{display:none}.grade-focus-card{top:70px;left:8px;min-width:280px;max-width:380px;padding:12px 14px}.grade-focus-card img{width:54px;height:54px;flex:0 0 auto;border:3px solid var(--color-primary);border-radius:50%;object-fit:cover}.grade-focus-card strong,.grade-focus-card span,.grade-position-badge strong,.grade-position-badge small{display:block}.grade-focus-card strong{line-height:1.15}.grade-focus-card span{margin-top:3px;color:var(--color-muted);font-size:12px;font-weight:800}.grade-position-badge{top:70px;left:50%;max-width:min(620px,calc(100vw - 400px));transform:translate(-50%);border-color:color-mix(in srgb,var(--color-primary),#1f3b57 45%);background:#1f3b57;color:#fff;padding:9px 13px}.grade-position-badge small{max-width:500px;overflow:hidden;color:#cbd5e1;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.grade-focus-card.is-dragging,.grade-position-badge.is-dragging{cursor:grabbing;box-shadow:0 22px 58px #0f172a57}.grade-last-saved-tooltip{position:fixed;z-index:4400;border-radius:6px;background:#1f2937;color:#fff;padding:7px 10px;font-size:12px;font-weight:800;box-shadow:0 8px 22px #0f172a38;pointer-events:none}.grade-last-saved-tooltip:after{position:absolute;bottom:-6px;left:14px;border-width:6px 6px 0;border-style:solid;border-color:#1f2937 transparent transparent;content:""}.grade-capture-table .grade-heading-tone--period{--grade-heading-color: #2563eb}.grade-capture-table .grade-heading-tone--recovery{--grade-heading-color: #c47a10}.grade-capture-table .grade-heading-tone--average{--grade-heading-color: #0f8b8d}.grade-capture-table .grade-heading-tone--completive{--grade-heading-color: #16834b}.grade-capture-table .grade-heading-tone--extraordinary{--grade-heading-color: #7656c8}.grade-capture-table .grade-heading-tone--special{--grade-heading-color: #c2415b}.grade-capture-table .grade-heading-tone--status{--grade-heading-color: #27506f}.grade-capture-table .grade-heading-tone--ra-1{--grade-heading-color: #167d8d}.grade-capture-table .grade-heading-tone--ra-2{--grade-heading-color: #63732d}.grade-capture-table .grade-heading-tone--ra-3{--grade-heading-color: #9b5f19}.grade-capture-table .grade-heading-tone--ra-4{--grade-heading-color: #7555a6}.grade-capture-table thead th[class*=grade-heading-tone--]{border-bottom-color:color-mix(in srgb,var(--grade-heading-color) 54%,var(--color-border));background:color-mix(in srgb,var(--grade-heading-color) 14%,var(--color-surface));color:color-mix(in srgb,var(--grade-heading-color) 82%,var(--color-text))}.grade-capture-table__groups th[class*=grade-heading-tone--],.grade-capture-table__section[class*=grade-heading-tone--]{border-top:3px solid var(--grade-heading-color);background:color-mix(in srgb,var(--grade-heading-color) 20%,var(--color-surface));color:color-mix(in srgb,var(--grade-heading-color) 88%,var(--color-text))}.grade-capture-table__subgroups th[class*=grade-heading-tone--],.grade-capture-table__competency[class*=grade-heading-tone--]{background:color-mix(in srgb,var(--grade-heading-color) 11%,var(--color-surface))}.grade-position-badge[data-tone=period]{background:#1e4f9f;border-color:#5b8ee6}.grade-position-badge[data-tone=recovery]{background:#8a5209;border-color:#e1a94d}.grade-position-badge[data-tone=average]{background:#086267;border-color:#46b6b8}.grade-position-badge[data-tone=completive]{background:#126238;border-color:#58af7d}.grade-position-badge[data-tone=extraordinary]{background:#523992;border-color:#a992e5}.grade-position-badge[data-tone=special]{background:#8d2941;border-color:#e67891}.grade-position-badge[data-tone=status]{background:#1e4059;border-color:#7197b3}.grade-position-badge[data-tone^=ra-]{background:#28586a;border-color:#77adbd}@media(max-width:800px){.grade-focus-card{top:62px;min-width:230px;max-width:calc(100vw - 16px)}.grade-position-badge{top:132px;left:8px;max-width:calc(100vw - 16px);transform:none}}.grade-capture-table__entry-cell:has(.grade-entry-denominator){background:color-mix(in srgb,var(--color-danger) 6%,var(--color-surface))}.grade-capture-table__entry-cell:has(.grade-entry-input--r) .grade-entry-denominator{border-left-color:color-mix(in srgb,var(--color-warning),transparent 35%);color:color-mix(in srgb,var(--color-warning) 75%,var(--color-text))}.grade-capture-table__local-special .grade-entry-denominator:empty{display:none}.grade-special-points-input{border-color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 8%,var(--color-surface));color:color-mix(in srgb,var(--color-danger) 78%,var(--color-text))}.grade-entry-input--recovery-points{border-color:color-mix(in srgb,var(--color-warning),transparent 35%);background:color-mix(in srgb,var(--color-warning) 8%,var(--color-surface))}.grade-entry-input:disabled{cursor:not-allowed;color:var(--color-muted);background:color-mix(in srgb,var(--color-muted),transparent 92%);opacity:.7}.grade-entry-input:focus{border-color:var(--color-primary);background:var(--color-surface);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary),transparent 78%);outline:0}.grade-entry-input.is-saving{opacity:.65}.grade-entry-input.is-dirty{border-color:var(--color-warning);background:color-mix(in srgb,var(--color-warning),transparent 90%)}.grade-entry-input.is-saved{border-color:color-mix(in srgb,var(--color-success),transparent 35%);animation:grade-input-saved 2.4s ease}.grade-entry-input.is-error{border-color:var(--color-danger);background:color-mix(in srgb,var(--color-danger),transparent 92%)}.grade-entry-input.is-dictation-current{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 11%,var(--color-surface));box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary) 25%,transparent);transform:scale(1.04)}.grade-entry-input.is-dictation-next{border-color:var(--color-warning);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-warning) 18%,transparent)}.grade-entry-input.is-dictation-staged{border-color:var(--color-success);background:color-mix(in srgb,var(--color-success) 12%,var(--color-surface))}.grade-entry-input.is-dictation-invalid{border-color:var(--color-danger);animation:grade-dictation-invalid .7s ease}.grade-entry-input.is-paste-preview{border-color:var(--color-info);background:color-mix(in srgb,var(--color-info) 12%,var(--color-surface));color:var(--color-text);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-info) 20%,transparent);font-weight:800}.grade-entry-input.is-paste-invalid{border-color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 13%,var(--color-surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--color-danger) 22%,transparent)}.grade-entry-input.is-paste-skip{border-style:dashed;border-color:var(--color-muted);background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--color-muted) 7%,var(--color-surface)) 0 6px,color-mix(in srgb,var(--color-muted) 14%,var(--color-surface)) 6px 12px);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-muted) 16%,transparent)}.grade-dictation-panel{position:fixed;z-index:4450;right:18px;bottom:18px;width:min(390px,calc(100vw - 28px));overflow:hidden;border:1px solid color-mix(in srgb,var(--color-primary) 38%,var(--color-border));border-radius:10px;background:var(--color-surface);color:var(--color-text);box-shadow:0 22px 58px #0f172a47}.grade-dictation-panel[hidden],.grade-dictation-bubble[hidden]{display:none}.grade-dictation-panel>header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));padding:12px 14px}.grade-dictation-panel__icon{display:grid;width:38px;height:38px;place-items:center;border-radius:50%;background:var(--color-primary);color:#fff}.grade-dictation-panel header small,.grade-dictation-panel header strong{display:block}.grade-dictation-panel header small{color:var(--color-muted);font-size:11px;font-weight:750}.grade-dictation-panel header strong{overflow:hidden;margin-top:2px;text-overflow:ellipsis;white-space:nowrap}.grade-dictation-panel__body{display:grid;gap:11px;padding:14px}.grade-dictation-current{display:grid;gap:2px}.grade-dictation-current small,.grade-dictation-hint{color:var(--color-muted)}.grade-dictation-current span{min-height:20px;color:var(--color-primary);font-size:13px;font-weight:800}.grade-dictation-progress{display:grid;gap:5px;color:var(--color-muted);font-size:12px;font-weight:750}.grade-dictation-progress>div{height:7px;overflow:hidden;border-radius:999px;background:var(--color-surface-soft)}.grade-dictation-progress i{display:block;width:0;height:100%;border-radius:inherit;background:var(--color-primary);transition:width .2s ease}.grade-dictation-panel [data-grade-dictation-status]{margin:0;border-left:3px solid var(--color-primary);background:var(--color-surface-soft);padding:8px 10px;font-size:13px}.grade-dictation-panel [data-grade-dictation-status][data-tone=listening]{border-color:var(--color-danger)}.grade-dictation-panel [data-grade-dictation-status][data-tone=success]{border-color:var(--color-success)}.grade-dictation-panel [data-grade-dictation-status][data-tone=error]{border-color:var(--color-danger)}.grade-dictation-panel>footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;border-top:1px solid var(--color-border);padding:11px 14px}.grade-dictation-panel [data-grade-dictation-toggle].is-listening{border-color:var(--color-danger);background:var(--color-danger)}.grade-dictation-bubble{position:fixed;z-index:5100;display:inline-flex;align-items:center;gap:5px;border-radius:999px;background:#1f3b57;color:#fff;padding:7px 9px;font-size:11px;font-weight:850;box-shadow:0 8px 20px #0f172a3d;pointer-events:none}@keyframes grade-dictation-pulse{50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--color-danger) 20%,transparent)}}@keyframes grade-dictation-invalid{25%,75%{transform:translate(-4px)}50%{transform:translate(4px)}}@media(max-width:620px){.grade-dictation-panel{right:8px;bottom:8px;width:calc(100vw - 16px)}.grade-dictation-panel>footer .button{flex:1 1 auto}}.grade-dictation-panel{right:auto;bottom:auto;width:245px;border-radius:10px;padding:13px 14px 12px;text-align:center}.grade-dictation-panel:after{position:absolute;bottom:-8px;left:50%;transform:translate(-50%);border-width:8px 8px 0;border-style:solid;border-color:var(--color-surface) transparent transparent;content:""}.grade-dictation-close{position:absolute;top:5px;right:6px;display:grid;width:26px;height:26px;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--color-muted);cursor:pointer}.grade-dictation-close:hover,.grade-dictation-close:focus-visible{background:var(--color-surface-soft);color:var(--color-danger);outline:0}.grade-dictation-big-mic{display:inline-grid;width:58px;height:58px;margin-bottom:7px;place-items:center;border:2px solid var(--color-danger);border-radius:50%;background:color-mix(in srgb,var(--color-danger) 10%,var(--color-surface));color:var(--color-danger);cursor:pointer;animation:grade-mic-stopped-pulse 1.15s ease-in-out infinite}.grade-dictation-big-mic.is-listening{border-color:var(--color-primary);background:var(--color-primary);color:#fff;animation:grade-mic-listening-pulse 1s ease-in-out infinite}.grade-dictation-big-mic.is-pending{border-color:var(--color-danger);background:var(--color-danger);color:#fff;animation:grade-mic-stopped-pulse 1.15s ease-in-out infinite}.grade-dictation-big-mic:disabled,.grade-dictation-big-mic[aria-disabled=true]{border-color:var(--color-border);background:var(--color-surface-soft);color:var(--color-muted);cursor:not-allowed;opacity:.72;animation:none}.grade-dictation-panel>strong,.grade-dictation-panel>small,.grade-dictation-transcript{display:block}.grade-dictation-panel>strong{font-size:13px}.grade-dictation-panel>small{overflow:hidden;margin-top:2px;color:var(--color-muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.grade-dictation-panel [data-grade-dictation-status]{min-height:30px;margin:8px 0 0;border:0;background:transparent;padding:0;color:var(--color-muted);font-size:11px;line-height:1.3}.grade-dictation-transcript{min-height:14px;overflow:hidden;color:var(--color-primary);font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.grade-dictation-panel__actions{display:flex;justify-content:center;gap:7px;margin-top:8px}.grade-dictation-bubble{width:36px;height:36px;justify-content:center;border:1px solid color-mix(in srgb,var(--color-primary) 30%,var(--color-border));border-radius:50%;background:var(--color-surface);color:var(--color-primary);padding:0;cursor:pointer;pointer-events:auto}.grade-dictation-bubble span{position:absolute;top:50%;left:44px;display:none;min-width:145px;max-width:240px;transform:translateY(-50%);border-radius:7px;background:#1f2937;color:#fff;padding:6px 9px;line-height:1.2;white-space:normal}.grade-dictation-bubble:hover span{display:block}.grade-dictation-bubble.is-pending{border-color:var(--color-danger);background:var(--color-danger);color:#fff;animation:grade-mic-stopped-pulse 1.15s ease-in-out infinite}.grade-dictation-bubble.is-listening{border-color:var(--color-primary);background:var(--color-primary);color:#fff;animation:grade-mic-listening-pulse 1s ease-in-out infinite}.grade-dictation-bubble.is-stopped{border-color:var(--color-danger);background:var(--color-danger);color:#fff;animation:grade-mic-stopped-pulse 1.15s ease-in-out infinite}.grade-dictation-bubble.is-disabled{border-color:var(--color-border);background:var(--color-surface-soft);color:var(--color-muted);cursor:not-allowed;opacity:.72}.grade-column-dictation-button{border-color:var(--color-border);background:var(--color-surface-soft);color:var(--color-muted)}.grade-column-dictation-button.is-pending{border-color:var(--color-danger);background:var(--color-danger);color:#fff;animation:grade-mic-stopped-pulse 1.15s ease-in-out infinite}.grade-column-dictation-button.is-listening{border-color:var(--color-primary);background:var(--color-primary);color:#fff;animation:grade-mic-listening-pulse 1s ease-in-out infinite}.grade-column-dictation-button:disabled,.grade-column-dictation-button[aria-disabled=true]{border-color:var(--color-border);background:var(--color-surface-soft);color:var(--color-muted);cursor:not-allowed;opacity:.72;animation:none}@keyframes grade-mic-listening-pulse{50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--color-primary) 22%,transparent)}}@keyframes grade-mic-stopped-pulse{50%{box-shadow:0 0 0 5px color-mix(in srgb,var(--color-danger) 18%,transparent)}}.grade-dictation-bubble.is-invalid,.grade-dictation-big-mic.is-invalid,.grade-column-dictation-button.is-invalid{border-color:var(--color-danger);background:var(--color-danger);color:#fff;animation:grade-mic-invalid-pulse .42s ease-in-out 5}@keyframes grade-mic-invalid-pulse{0%,to{background:var(--color-danger);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-danger) 18%,transparent)}50%{background:color-mix(in srgb,var(--color-danger) 70%,#7f1d1d);box-shadow:0 0 0 8px color-mix(in srgb,var(--color-danger) 35%,transparent)}}@media(max-width:620px){.grade-dictation-panel{right:auto;bottom:auto;width:220px}}.grade-entry-input--r{border-color:color-mix(in srgb,var(--color-warning),transparent 35%);background:color-mix(in srgb,var(--color-warning) 8%,var(--color-surface))}.grade-entry-input--c,.grade-entry-input--e,.grade-entry-input--s{border-color:color-mix(in srgb,var(--color-danger),transparent 48%);background:color-mix(in srgb,var(--color-danger) 6%,var(--color-surface))}.grade-entry-input--a{border-color:color-mix(in srgb,#7457c8,transparent 52%);background:color-mix(in srgb,#7457c8 7%,var(--color-surface))}.grade-entry-input--f{border-color:color-mix(in srgb,#168a85,transparent 45%);background:color-mix(in srgb,#168a85 7%,var(--color-surface))}.grade-entry-input.is-below-threshold{color:var(--color-danger);border-color:var(--color-danger);background:color-mix(in srgb,var(--color-danger) 10%,var(--color-surface))}@keyframes grade-input-saved{0%,20%{color:#063d25;border-color:var(--color-success);background:color-mix(in srgb,var(--color-success) 34%,var(--color-surface));box-shadow:0 0 0 4px color-mix(in srgb,var(--color-success),transparent 72%);transform:scale(1.035)}to{box-shadow:none;transform:scale(1)}}.grade-result-cell{min-width:98px;padding:5px!important}.grade-result-card,.grade-status-card{display:inline-flex;min-width:78px;min-height:42px;align-items:center;justify-content:center;gap:6px;border:1px solid color-mix(in srgb,var(--color-info),transparent 55%);border-radius:7px;background:color-mix(in srgb,var(--color-info) 9%,var(--color-surface));padding:6px 8px;color:var(--color-text);font-size:16px;font-weight:900;box-shadow:0 2px 5px color-mix(in srgb,var(--color-text),transparent 92%)}.grade-result-card--final{border-color:color-mix(in srgb,var(--color-primary),transparent 38%);background:color-mix(in srgb,var(--color-primary) 14%,var(--color-surface));font-size:19px}.grade-result-card--fraction small{color:var(--color-muted);font-size:13px}.grade-status-card{min-width:112px;font-size:13px}.grade-status-card--passed{color:#075d37;border-color:color-mix(in srgb,var(--color-success),transparent 35%);background:color-mix(in srgb,var(--color-success) 18%,var(--color-surface))}.grade-status-card--failed{color:var(--color-danger);border-color:color-mix(in srgb,var(--color-danger),transparent 35%);background:color-mix(in srgb,var(--color-danger) 12%,var(--color-surface))}.grade-status-card--pending,.grade-status-card--undefined{color:color-mix(in srgb,var(--color-warning) 72%,var(--color-text));border-color:color-mix(in srgb,var(--color-warning),transparent 35%);background:color-mix(in srgb,var(--color-warning) 13%,var(--color-surface))}.grade-status-card--withdrawn{color:var(--color-muted);border-color:color-mix(in srgb,var(--color-muted),transparent 42%);background:color-mix(in srgb,var(--color-muted) 12%,var(--color-surface))}.grade-final-card{display:inline-flex;min-width:118px;min-height:58px;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid color-mix(in srgb,var(--color-primary),transparent 48%);border-radius:8px;background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));padding:6px 9px;box-shadow:0 2px 6px color-mix(in srgb,var(--color-text),transparent 91%)}.grade-final-card>strong{color:var(--color-text);font-size:21px;line-height:1}.grade-final-card>small{display:inline-flex;align-items:center;justify-content:center;gap:4px;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900;line-height:1;text-transform:uppercase;white-space:nowrap}.grade-final-card--passed>small{border:1px solid color-mix(in srgb,var(--color-success),transparent 40%);background:color-mix(in srgb,var(--color-success) 20%,var(--color-surface));color:#087044}.grade-final-card--failed>small{border:1px solid color-mix(in srgb,var(--color-danger),transparent 40%);background:color-mix(in srgb,var(--color-danger) 14%,var(--color-surface));color:var(--color-danger)}.grade-final-card--pending>small{border:1px solid color-mix(in srgb,var(--color-warning),transparent 35%);background:color-mix(in srgb,var(--color-warning) 16%,var(--color-surface));color:color-mix(in srgb,var(--color-warning) 72%,var(--color-text))}.grade-column-label,.grade-capture-table__section>span{display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}.grade-capture-table__section--recovery{background:color-mix(in srgb,var(--color-warning) 18%,var(--color-surface))!important}.grade-capture-table__section--direct{background:color-mix(in srgb,var(--color-primary) 15%,var(--color-surface))!important}.grade-capture-shell--format-6 .grade-capture-table thead tr:last-child th:last-child{min-width:113px;width:113px;white-space:normal}.grade-capture-shell--format-6 .grade-capture-table thead tr:last-child th:last-child .grade-column-sort,.grade-capture-shell--format-6 .grade-capture-table thead tr:last-child th:last-child .grade-column-label{max-width:none;white-space:normal;line-height:1.15}@keyframes grade-row-updated{0%{background:color-mix(in srgb,var(--color-success),transparent 78%)}to{background:transparent}}@keyframes grade-row-sticky-updated{0%{background:color-mix(in srgb,var(--color-success),transparent 78%)}to{background:var(--color-surface)}}.grade-capture-table td.grade-capture-table__calculated{background:color-mix(in srgb,var(--color-info),transparent 92%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-info),transparent 82%)}.grade-capture-table__empty:after{content:"";display:inline-block;width:28px;height:2px;border-radius:999px;background:color-mix(in srgb,var(--color-border),var(--color-muted) 8%);opacity:.55}.grade-capture-table tbody tr:hover .grade-capture-table__empty:after{opacity:.95}.action-grid--reports{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1280px){.profile-edit-layout{grid-template-columns:1fr}.profile-edit-layout__side{grid-template-columns:1fr;position:static}.profile-edit-layout__side>:not(.profile-danger-zone),.profile-edit-layout__side>.profile-danger-zone{grid-column:1 / -1}}@media(max-width:1100px){.action-grid--reports,.attendance-month-grid,.attendance-student-preview{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-subject-groups,.final-test-workflow,.final-test-buckets{grid-template-columns:1fr}}@media(max-width:760px){.profile-photo-control,.profile-edit-layout,.profile-edit-card,.profile-checkbox-columns,.profile-checkbox-group>div{grid-template-columns:1fr}.profile-edit-layout__side{grid-template-columns:1fr;position:static}.profile-edit-layout__side>:not(.profile-danger-zone),.profile-edit-layout__side>.profile-danger-zone{grid-column:auto}.profile-photo-preview{width:96px;height:96px}.student-import-page{width:100%}.summary-breakdown,.report-breakdown,.report-board,.students-flow,.attendance-flow,.attendance-permission-notice,.final-tests-flow,.attendance-month-grid,.attendance-student-preview,.grade-format-grid,.grade-format-overview,.grade-step-grid,.grade-contract-list,.grade-subject-groups,.grade-selected-subject,.grade-capture-shell__heading,.grade-capture-stats,.grade-capture-tools,.teacher-progress-grid{grid-template-columns:1fr}.grade-capture-shell__heading{display:grid}.group-insights{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.group-insights{grid-template-columns:1fr}}.attendance-workspace{overflow:hidden}.attendance-toolbar{align-items:end;display:flex;gap:16px;justify-content:space-between}.attendance-load-field{flex:1 1 420px;max-width:720px}.segmented-control{align-items:center;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;display:inline-flex;padding:3px}.segmented-control button{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--color-muted);cursor:pointer;display:inline-flex;font:inherit;font-size:.84rem;font-weight:750;gap:7px;min-height:36px;padding:7px 12px}.segmented-control button.is-active{background:var(--color-primary);color:#fff;box-shadow:0 2px 7px #0e749038}.attendance-view{min-width:0}.attendance-capture-header{align-items:center;background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface));border-left:4px solid var(--color-primary);display:flex;gap:13px;padding:12px 14px}.attendance-capture-header>span{align-items:center;background:var(--color-primary);border-radius:7px;color:#fff;display:inline-flex;height:42px;justify-content:center;width:42px}.attendance-capture-header p,.attendance-capture-header h3,.attendance-capture-header small{margin:0}.attendance-capture-header p{color:var(--color-primary);font-size:.74rem;font-weight:850;text-transform:uppercase}.attendance-capture-header h3{font-size:1.12rem}.attendance-capture-header small{color:var(--color-muted)}.attendance-daily-tools{align-items:end;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}.attendance-daily-tools .field{width:min(260px,100%)}.attendance-legend{display:flex;flex-wrap:wrap;gap:8px 14px}.attendance-legend span{align-items:center;color:var(--color-muted);display:inline-flex;font-size:.78rem;gap:6px}.attendance-legend .attendance-state{cursor:default;font-size:.75rem;height:24px;min-width:24px;width:24px}.student-attendance-subject{margin:2px 0 4px;text-align:center}.student-attendance-modal__body>.attendance-legend{justify-content:center;margin-bottom:4px}.attendance-daily-table-wrap{margin-top:16px;max-height:48vh;overflow:auto;width:100%}.attendance-daily-table{border-collapse:separate;border-spacing:0;min-width:100%;width:100%}.attendance-daily-table th{background:var(--color-surface);position:sticky;top:0;z-index:2}.attendance-daily-table th:first-child,.attendance-daily-table td:first-child{text-align:center;width:86px}.attendance-daily-table th:last-child,.attendance-daily-table td:last-child{text-align:center;width:150px}.attendance-daily-table tr.is-retired{opacity:.7}.attendance-daily-student-info{align-items:center;display:flex;gap:14px;min-width:0}.attendance-daily-student-info img{border-radius:8px;flex:0 0 auto;height:82px;object-fit:cover;width:82px}.attendance-daily-student-info>div{align-items:flex-start;display:flex;flex-direction:column;gap:6px}.attendance-daily-student-info strong{font-size:.96rem}.attendance-date-heading{align-items:center;display:flex;flex-direction:column;gap:5px}.attendance-date-heading .input{min-width:138px}.attendance-daily-table .attendance-state{font-size:2rem;height:68px;width:88px}.attendance-student-number{color:var(--color-muted);font-size:.74rem;font-weight:850}.attendance-state{align-items:center;border:0;border-radius:7px;color:#fff;cursor:pointer;display:inline-flex;font-weight:900;height:40px;justify-content:center;min-width:40px}.attendance-state--P{background:#1677d2}.attendance-state--A{background:#c93749}.attendance-state--E{background:#16845b}.attendance-state--T{background:#d49a0b;color:#251a00}.attendance-state--R{background:#6b7280}.attendance-message{border:1px solid var(--color-border);border-radius:7px;font-size:.85rem;font-weight:700;padding:9px 12px}.attendance-message[data-tone=success]{background:color-mix(in srgb,#16a34a 10%,var(--color-surface));border-color:#16a34a;color:#15803d}.attendance-message[data-tone=error]{background:color-mix(in srgb,#dc2626 9%,var(--color-surface));border-color:#dc2626;color:#b91c1c}.attendance-message[data-tone=info]{background:color-mix(in srgb,var(--color-primary) 9%,var(--color-surface));color:var(--color-primary)}.attendance-summary-wrap{margin-top:18px;max-width:100%;overflow-x:auto;width:100%}.attendance-summary{min-width:100%;width:100%}.attendance-summary th,.attendance-summary td{text-align:center}.attendance-summary tr>th:first-child{position:sticky;left:0;z-index:2;background:var(--color-surface);box-shadow:5px 0 7px -6px #0f172a8c;text-align:left;white-space:nowrap}.attendance-summary thead tr>th:first-child{z-index:3;background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface))}.attendance-footer{align-items:center;border-top:1px solid var(--color-border);display:flex;justify-content:space-between;padding-top:14px}.attendance-monthly-wrap{border:1px solid var(--color-border);max-width:100%;overflow:auto}.attendance-monthly-pagination{align-items:center;display:flex;gap:10px;justify-content:center;padding-top:12px}.attendance-monthly-shell{min-width:0}.attendance-monthly-table{border-collapse:separate;border-spacing:0;min-width:1080px}.attendance-monthly-table th{background:color-mix(in srgb,#2563eb 12%,var(--color-surface));border-color:color-mix(in srgb,#2563eb 24%,var(--color-border));color:color-mix(in srgb,#1d4ed8 80%,var(--color-text));white-space:nowrap}.attendance-monthly-table th.is-month{background:color-mix(in srgb,#0f766e 15%,var(--color-surface));border-color:color-mix(in srgb,#0f766e 30%,var(--color-border));color:color-mix(in srgb,#0f766e 82%,var(--color-text))}.attendance-monthly-table th.is-exam-start,.attendance-monthly-table thead tr:first-child th.is-exam-start~th{background:color-mix(in srgb,#7c3aed 14%,var(--color-surface));border-color:color-mix(in srgb,#7c3aed 28%,var(--color-border));color:color-mix(in srgb,#6d28d9 82%,var(--color-text))}.attendance-monthly-table tbody tr:nth-child(2n) td:not(.is-sticky){background:color-mix(in srgb,var(--color-primary) 3%,var(--color-surface))}.attendance-monthly-table tbody tr:hover td{background:color-mix(in srgb,var(--color-primary) 9%,var(--color-surface))}.attendance-monthly-table th small{color:var(--color-primary);display:block;font-size:.67rem}.attendance-monthly-table th,.attendance-monthly-table td{text-align:center;vertical-align:middle}.attendance-monthly-table .table-sort-button{align-items:center;appearance:none;background:transparent;border:0;border-radius:0;box-shadow:none;color:inherit;cursor:pointer;display:inline-flex;font:inherit;font-weight:800;gap:5px;justify-content:center;min-height:0;padding:0;white-space:nowrap;width:100%}.attendance-monthly-table .table-sort-button:hover,.attendance-monthly-table .table-sort-button:focus-visible{background:transparent;box-shadow:none;color:var(--color-primary-strong);outline:none;text-decoration:none;transform:none}.attendance-monthly-table .table-sort-button [data-monthly-sort-icon]{align-items:center;display:inline-flex}.attendance-monthly-table .is-sticky{background:var(--color-surface);left:0;position:sticky;z-index:3}.attendance-monthly-table thead .is-sticky{background:color-mix(in srgb,#2563eb 12%,var(--color-surface))}.attendance-monthly-table .is-number{min-width:68px;width:68px}.attendance-monthly-table .is-photo{left:68px;min-width:54px;width:54px}.attendance-monthly-table .is-student{box-shadow:5px 0 6px -5px #0f172a73;left:122px;min-width:145px;text-align:left}.attendance-monthly-table thead .is-sticky{z-index:5}.attendance-monthly-table .is-period-start{border-left:4px solid #0f766e}.attendance-monthly-table .is-exam-start{border-left:4px solid #7c3aed}.attendance-table-student{align-items:center;display:flex;gap:8px}.attendance-table-student img{border-radius:50%;flex:0 0 auto;height:34px;object-fit:cover;width:34px}.attendance-monthly-photo{border-radius:50%;height:36px;object-fit:cover;width:36px}.attendance-table-student strong{font-size:.8rem}.attendance-percent{background:color-mix(in srgb,#0891b2 12%,var(--color-surface));border-radius:999px;color:#08718b;display:inline-flex;font-weight:850;padding:4px 8px}.attendance-fraction{white-space:nowrap}.attendance-exam-date{min-width:72px;padding-inline:5px;text-align:center}.attendance-exam-select{min-width:62px;padding-inline:6px}.attendance-exam-date.is-saving,.attendance-exam-select.is-saving{outline:2px solid #d49a0b}.attendance-exam-date.is-saved,.attendance-exam-select.is-saved{outline:2px solid #16a34a}.attendance-exam-date.is-error,.attendance-exam-select.is-error{outline:2px solid #dc2626}.student-attendance-modal{isolation:isolate;z-index:2147483000}:fullscreen>.student-attendance-modal,:fullscreen .student-attendance-modal{position:fixed;inset:0}.student-attendance-dialog{max-height:min(90vh,820px);max-width:min(880px,calc(100vw - 28px));width:100%}.student-attendance-dialog>header{flex:0 0 auto}.student-attendance-modal__tools{align-items:end;border-bottom:1px solid var(--color-border);display:flex;flex:0 0 auto;flex-wrap:wrap;gap:14px;justify-content:space-between;padding:12px 18px}.student-attendance-modal__tools .field{width:230px}.student-attendance-modal__body{min-height:220px;overflow:auto}.student-attendance-dialog>footer{align-items:center;display:flex;flex:0 0 auto;justify-content:space-between}.student-monthly-attendance{min-width:0}@media(max-width:720px){.attendance-toolbar{align-items:stretch;flex-direction:column}.segmented-control{align-self:stretch}.segmented-control button{flex:1;justify-content:center}.attendance-daily-student-info img{height:58px;width:58px}.attendance-daily-table .attendance-state{height:52px;width:62px}.attendance-monthly-wrap{width:100%;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain}.attendance-monthly-table{width:max-content;min-width:720px;max-width:none;font-size:.78rem}.attendance-monthly-table th,.attendance-monthly-table td{padding:7px 6px}.attendance-monthly-table thead{display:none}.attendance-monthly-table,.attendance-monthly-table tbody,.attendance-monthly-table tr,.attendance-monthly-table td{display:block}.attendance-monthly-table{min-width:0;width:100%}.attendance-monthly-table tbody{display:grid;gap:10px}.attendance-monthly-table tr[data-monthly-row]{border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);box-shadow:0 2px 8px #0f172a14;overflow:hidden}.attendance-monthly-table tr[data-monthly-row] td{align-items:center;border:0;border-bottom:1px solid var(--color-border);display:flex;gap:10px;justify-content:space-between;min-height:42px;text-align:right}.attendance-monthly-table tr[data-monthly-row] td:last-child{border-bottom:0}.attendance-monthly-table tr[data-monthly-row] td:before{color:var(--color-muted);content:attr(data-mobile-label);flex:1 1 auto;font-size:.72rem;font-weight:800;text-align:left}.attendance-monthly-table tr[data-monthly-row] .is-photo{justify-content:flex-end}.attendance-monthly-table tr[data-monthly-row] .is-photo:before{content:"Foto"}.attendance-monthly-table tr[data-monthly-row] .is-student{left:auto}.attendance-monthly-table tr[data-monthly-row] .is-sticky{position:static}}@media print{@page{size:letter landscape;margin:.35in}.app-sidebar,.app-header,.page-heading,.final-report-toolbar{display:none!important}.app-shell,.app-main,.app-content,.content-panel{display:block!important;padding:0!important;margin:0!important;background:#fff!important;box-shadow:none!important;border:0!important}.final-report-list,.partial-report-list{gap:0}.final-report-card,.partial-report-card{min-height:auto;border-radius:0;box-shadow:none;border-color:#111;color:#111}.partial-subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.student-card__signals{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 2px}.students-page{min-width:0}.students-page>*{min-width:0;max-width:100%}[data-student-subject-management]{width:100%;min-width:0;max-width:100%}.student-group-overview{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(520px,1.5fr);gap:14px;align-items:stretch}.student-group-overview__card{min-width:0;padding:18px 20px;border:1px solid var(--color-border);border-radius:7px;background:var(--color-surface);box-shadow:var(--shadow-card)}.student-group-overview__card--identity{border-left:5px solid var(--student-group-color);background:linear-gradient(115deg,color-mix(in srgb,var(--student-group-color) 12%,var(--color-surface)),var(--color-surface) 68%)}.student-group-overview__card--activity{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr);gap:12px 18px;align-items:center}.student-group-overview__identity,.student-group-overview__people,.student-group-overview__stats,.student-group-overview__schedule{min-width:0}.student-group-overview__identity{display:flex;align-items:center;gap:15px}.student-group-overview__icon{display:grid;place-items:center;width:52px;height:52px;color:var(--student-group-color);background:color-mix(in srgb,var(--student-group-color) 13%,var(--color-surface));border:1px solid color-mix(in srgb,var(--student-group-color) 35%,transparent);border-radius:8px;flex:0 0 auto}.student-group-overview h2{margin:2px 0 4px;font-size:1.25rem}.student-group-overview__area{display:block;color:var(--student-group-color);line-height:1.3}.student-group-overview__identity-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.student-group-overview__identity-meta>span{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;font-size:.75rem;font-weight:700}.student-group-overview p,.student-group-overview small{margin:0;color:var(--color-muted)}.student-group-overview p{display:flex;align-items:center;gap:6px}.student-group-overview__people{display:grid;gap:8px}.student-group-overview__people button{display:flex;align-items:center;gap:10px;min-width:0;padding:6px 8px;border:0;background:transparent;color:var(--color-text);text-align:left;cursor:pointer;border-radius:6px}.student-group-overview__people button:hover{background:color-mix(in srgb,var(--color-primary) 8%,transparent)}.student-group-overview__people img{width:38px;height:38px;object-fit:cover;border-radius:50%}.student-group-overview__people span{min-width:0;display:grid}.student-group-overview__people small{display:flex;gap:5px;align-items:center}.student-group-overview__people strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-group-overview__stats{display:flex;gap:9px}.student-group-overview__stats>div{display:flex;align-items:center;gap:8px;min-width:88px;padding:9px 10px;color:var(--student-group-color);border:1px solid var(--color-border);background:var(--color-surface);border-radius:6px}.student-group-overview__stats span{display:grid}.student-group-overview__stats strong{color:var(--color-text);font-size:1rem}.student-group-overview__stats small{font-size:.7rem}.student-group-overview__schedule{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:12px;border-top:1px solid var(--color-border)}.student-group-overview__schedule>div{display:flex;flex-direction:column;align-items:stretch;gap:6px;min-width:0;padding:10px 12px;border:1px solid var(--color-border);border-radius:6px;background:color-mix(in srgb,var(--student-group-color) 6%,var(--color-surface))}.fct-group-block{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) minmax(170px,.7fr);gap:14px;align-items:center;margin-top:14px;padding:14px 16px;border:1px solid color-mix(in srgb,#0f766e 28%,var(--color-border));border-left:4px solid #0f766e;border-radius:7px;background:linear-gradient(112deg,color-mix(in srgb,#0f766e 9%,var(--color-surface)),var(--color-surface) 68%)}.fct-group-block__heading,.fct-group-block__tutor,.fct-group-block__logo{min-width:0;display:flex;align-items:center;gap:10px}.fct-group-block__heading{color:#0f766e}.fct-group-block__heading small,.fct-group-block__logo small,.fct-group-block__tutor small{display:block;color:var(--color-muted);font-size:11px}.fct-group-block__heading strong,.fct-group-block__tutor strong{display:block;color:var(--color-text)}.fct-group-block__icon{display:grid;place-items:center;width:42px;height:42px;border-radius:8px;background:color-mix(in srgb,#0f766e 14%,var(--color-surface));color:#0f766e;flex:0 0 auto}.fct-group-block__tutor{width:100%;padding:6px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--color-text);text-align:left;cursor:pointer}.fct-group-block__tutor:hover{border-color:#0f766e;background:color-mix(in srgb,#0f766e 7%,var(--color-surface))}.fct-group-block__tutor:disabled{cursor:default}.fct-group-block__tutor svg{margin-left:auto;color:var(--color-muted)}.fct-group-block__tutor-photo{width:40px;height:40px;object-fit:cover;border-radius:50%;border:2px solid #0f766e;flex:0 0 auto}.fct-group-block__logo{justify-content:flex-end}.fct-group-block__logo>img{width:58px;height:58px;object-fit:contain;border-radius:8px;border:1px solid var(--color-border);background:var(--color-surface)}.fct-group-block__logo-actions{display:flex;gap:5px;margin-top:6px}.fct-group-block__logo-actions .button{min-height:28px;padding:4px 7px}.fct-group-block__logo-actions .button svg{margin:0}@media(max-width:760px){.fct-group-block{grid-template-columns:1fr}.fct-group-block__logo{justify-content:flex-start}}.fct-group-block__logo>img{cursor:zoom-in;position:relative;z-index:1;transition:transform .2s ease,box-shadow .2s ease}.fct-group-block__logo>img:hover{transform:translateY(-28px) scale(2.45);z-index:20;box-shadow:0 10px 24px color-mix(in srgb,var(--color-text) 25%,transparent)}.fct-crop-dialog{width:min(430px,calc(100vw - 28px))}.fct-crop-body{display:grid;justify-items:center;gap:14px;padding:18px}.fct-crop-body canvas{width:min(320px,78vw);height:min(320px,78vw);border:2px solid #0f766e;border-radius:8px;background:#fff;box-shadow:0 5px 18px #0f766e24}.fct-crop-body .field{width:min(320px,78vw)}.fct-crop-tools{display:flex;flex-wrap:wrap;justify-content:center;align-items:end;gap:5px;width:min(360px,82vw)}.fct-crop-tools .field{flex:1 1 110px;margin:0}.fct-crop-tools .button{min-width:30px;padding:5px 7px}.fct-group-block__progress{grid-column:1 / -1;min-width:0;padding-top:10px;border-top:1px solid color-mix(in srgb,#0f766e 22%,var(--color-border))}.fct-group-block__progress>div:first-child{display:flex;justify-content:space-between;gap:10px;color:var(--color-text);font-size:12px}.fct-group-block__progress>div:first-child span{color:var(--color-muted);text-align:right}.fct-group-block__progress-track{position:relative;height:16px;margin-top:6px;overflow:hidden;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,#0f766e 12%,var(--color-surface)),color-mix(in srgb,#22c55e 15%,var(--color-surface)))}.fct-group-block__progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#0f766e,#14b8a6,#84cc16);transition:width .35s ease}.fct-group-block__progress-track b{position:absolute;inset:0;display:grid;place-items:center;color:var(--color-text);font-size:10px;text-shadow:0 1px 2px color-mix(in srgb,var(--color-surface) 80%,transparent)}.fct-crop-dialog{grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.fct-crop-dialog>header .button{color:#fff}.fct-crop-body{min-height:0;overflow:auto}.fct-crop-dialog>footer{position:relative;z-index:3;flex-wrap:wrap;background:var(--color-surface)}.student-group-overview__schedule>.is-current{border-left:4px solid #16a34a}.student-group-overview__schedule>.is-next{border-left:4px solid #0284c7}.student-group-overview__schedule>div>small{display:block;color:var(--color-muted);font-size:.7rem;font-weight:800;text-transform:uppercase}.student-group-overview__schedule strong{display:flex;align-items:flex-start;gap:6px;min-width:0;white-space:normal;overflow-wrap:break-word;word-break:normal;line-height:1.3}.student-group-overview__schedule strong svg{flex:0 0 auto}.student-schedule-meta{display:flex;flex-wrap:wrap;gap:6px 14px;color:var(--color-muted);font-size:.75rem}.student-schedule-meta>span{display:inline-flex;align-items:center;gap:5px;min-width:0}.grades-page--embedded{min-width:0}.students-page,.students-roster,.grades-page,.grade-context-panel,[data-teacher-grade-workspace],[data-grade-capture]{min-width:0;max-width:100%;overflow-x:clip}.grades-page--embedded>.content-panel{padding:0;border:0;box-shadow:none;background:transparent}.grade-load-selector{width:100%;padding:16px 18px;border:1px solid var(--color-border);border-left:5px solid var(--color-primary);border-radius:7px;background:color-mix(in srgb,var(--color-primary) 5%,var(--color-surface))}.grade-load-selector .field{width:100%;margin:0}.grade-load-selector .select{width:100%;min-height:44px;font-weight:750;background:var(--color-surface)}.grades-page--embedded .grade-selected-subject,.grades-page--embedded .grade-capture-shell{margin-top:0}.grade-capture-table__groups th{text-align:center;color:var(--color-primary-strong);background:color-mix(in srgb,var(--color-primary) 9%,var(--color-surface));border-bottom-color:color-mix(in srgb,var(--color-primary) 32%,var(--color-border))}.grade-ra-heading{display:inline-flex;align-items:center;justify-content:center;gap:10px}.grade-ra-heading label{display:inline-flex;align-items:center;gap:5px;font-size:10px}.grade-ra-heading input{width:58px;border:1px solid color-mix(in srgb,var(--color-primary),transparent 55%);border-radius:6px;background:var(--color-surface);color:var(--color-text);padding:4px;text-align:center;font-weight:850}.fct-grade-head.is-hidden,.fct-grade-cell.is-hidden{display:none}.fct-grade-head--part,.fct-grade-cell--part{background:color-mix(in srgb,var(--color-warning),transparent 91%)!important}.grade-capture-shell--format-6 .fct-grade-head--main{min-width:60px;padding-left:10px!important;padding-right:10px!important}.grade-capture-shell--format-6 .fct-grade-head--main .grade-column-sort{padding-left:10px;padding-right:10px}.grade-capture-shell--format-6 .grade-capture-table thead th[data-grade-sort-column=total],.grade-capture-shell--format-6 .grade-capture-table thead th[data-grade-sort-column=average]{padding-left:10px!important;padding-right:10px!important}.grade-capture-shell--format-6 .grade-capture-table thead th[data-grade-sort-column=total] .grade-column-sort,.grade-capture-shell--format-6 .grade-capture-table thead th[data-grade-sort-column=average] .grade-column-sort{padding-left:10px;padding-right:10px}.grades-page--embedded .grade-context-heading,.grades-page--embedded [data-grade-context-summary],.grades-page--embedded [data-grade-format-overview],.grades-page--embedded [data-grade-selected-subject],.grades-page--embedded .grade-capture-shell__heading,.grades-page--embedded .grade-capture-stats,.grades-page--embedded .grade-progress-distribution,.grades-page--embedded .grade-capture-summary,.grades-page--embedded .grade-capture-legend,.grades-page--embedded .grade-capture-hint,.grades-page--embedded .grade-subject-tools,.grades-page--embedded [data-grade-subjects],.grades-page--embedded [data-grade-subject-empty]{display:none!important}.grades-page--embedded .grade-context-panel{gap:14px}.grades-page--embedded .grade-capture-table{--grade-sticky-number-width: 68px;--grade-sticky-photo-width: 54px;--grade-sticky-name-left: 122px;border-collapse:separate;border-spacing:0;min-width:max-content}.grades-page--embedded .grade-capture-table__number{left:0;width:var(--grade-sticky-number-width);min-width:var(--grade-sticky-number-width)}.grades-page--embedded .grade-capture-table__photo{position:sticky;left:var(--grade-sticky-number-width);z-index:2;width:var(--grade-sticky-photo-width);min-width:var(--grade-sticky-photo-width);background:var(--color-surface)}.grades-page--embedded .grade-capture-table__first-name{position:sticky;left:var(--grade-sticky-name-left);z-index:2;min-width:180px;background:var(--color-surface);text-align:left;box-shadow:3px 0 color-mix(in srgb,var(--color-primary) 35%,var(--color-border))}.grades-page--embedded .grade-capture-table thead .grade-capture-table__number,.grades-page--embedded .grade-capture-table thead .grade-capture-table__photo,.grades-page--embedded .grade-capture-table thead .grade-capture-table__first-name{z-index:4;background:var(--color-surface-soft)}.grades-page--embedded .grade-capture-table tbody tr:hover .grade-capture-table__number,.grades-page--embedded .grade-capture-table tbody tr:hover .grade-capture-table__photo,.grades-page--embedded .grade-capture-table tbody tr:hover .grade-capture-table__first-name{background:color-mix(in srgb,var(--color-primary) 5%,var(--color-surface))}.grade-capture-table__photo img{display:block;width:38px;height:38px;margin:0 auto;border-radius:50%;object-fit:cover;transition:transform .16s ease,box-shadow .16s ease}.grade-capture-table__photo img:hover{position:relative;z-index:12;transform:scale(2.1);box-shadow:0 10px 24px #0f172a40}.grade-capture-table__age{min-width:64px}.grade-capture-table__sex{min-width:62px}.grade-capture-table__company{min-width:180px;text-align:left!important}.grade-capture-table__company img{width:30px;height:30px;margin-right:8px;border-radius:5px;object-fit:contain;vertical-align:middle}.student-primary-actions{display:grid;justify-items:start;gap:6px;min-width:0}.student-primary-actions>small{display:inline-flex;align-items:center;gap:5px;color:var(--color-muted);font-size:.7rem;font-weight:800;text-transform:uppercase}.student-primary-actions .inline-actions{gap:6px}.grade-recovery-mode-control{display:inline-flex;align-items:center;gap:3px;min-height:30px;color:var(--color-muted);font-size:.72rem;font-weight:800}.grade-recovery-mode-control>span{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.grade-recovery-mode-control .button{min-height:26px;padding:3px 7px}.grade-recovery-mode-control .button{font-weight:500}.grade-recovery-mode-control .button.is-active{background:color-mix(in srgb,var(--color-primary) 14%,var(--color-surface));border-color:var(--color-primary);color:var(--color-primary)}.grade-viewport-controls{display:inline-flex;align-items:center;gap:3px;min-height:34px;padding:2px;border:1px solid var(--color-border);border-radius:7px;background:var(--color-surface)}.grade-viewport-controls .button{width:32px;min-width:32px;height:30px;min-height:30px;padding:0}.grade-zoom-level{min-width:48px;height:28px;border:0;border-inline:1px solid var(--color-border);background:transparent;color:var(--color-text);padding:0 7px;font-size:.72rem;font-weight:850;cursor:pointer}.grade-zoom-level:hover{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 7%,transparent)}.grade-viewport-controls button:disabled{opacity:.4;cursor:not-allowed}.grade-capture-tools .grade-viewport-controls{align-self:end;min-height:42px;padding:5px}.grade-capture-table tbody tr.is-grade-focused>:is(th,td),.grades-page--embedded .grade-capture-table tbody tr.is-grade-focused>:is(th,td){background:color-mix(in srgb,var(--color-primary) 11%,var(--color-surface))!important;box-shadow:inset 0 2px color-mix(in srgb,var(--color-primary) 48%,transparent),inset 0 -2px color-mix(in srgb,var(--color-primary) 48%,transparent)}.grades-page--embedded .grade-capture-table tbody tr.is-grade-focused>.grade-capture-table__first-name{box-shadow:3px 0 color-mix(in srgb,var(--color-primary) 55%,var(--color-border)),inset 0 2px color-mix(in srgb,var(--color-primary) 48%,transparent),inset 0 -2px color-mix(in srgb,var(--color-primary) 48%,transparent)}.grade-context-panel:fullscreen{width:100vw;height:100vh;max-width:none;overflow:auto;padding:16px;background:var(--color-bg)}.grade-context-panel:fullscreen .grade-embedded-actions{position:sticky;top:0;z-index:60;padding-bottom:8px;background:var(--color-bg)}.grade-context-panel:fullscreen .grade-capture-table-wrap{max-height:calc(100vh - 190px)}.grade-context-panel:fullscreen [data-teacher-student-view-toggle]{display:none!important}.student-primary-actions-row{display:flex;justify-content:flex-start;padding-top:2px}.student-workspace-controls{display:grid;gap:10px;min-width:0;padding:12px;border:1px solid var(--color-border);border-radius:7px;background:var(--color-surface);box-shadow:var(--shadow-card)}.student-workspace-controls--linker .student-primary-actions-row{border-top:1px solid var(--color-border);padding-top:10px}.student-workspace-controls:has([data-student-context-actions]:empty):has([data-student-primary-actions]:empty){display:none}.class-tools{position:relative;z-index:100000}.grade-context-panel:fullscreen .class-tools{position:fixed;inset:0;z-index:100000;pointer-events:none}.grade-context-panel:fullscreen .class-tools>.class-calculator,.grade-context-panel:fullscreen .class-tools>.class-roulette-modal{pointer-events:auto}.class-tools.is-roulette-open .grade-scroll-clone,.class-tools.is-roulette-open .grade-scroll-clone__restore{display:none!important}.class-calculator{position:fixed;right:24px;bottom:84px;z-index:100001;width:min(286px,calc(100vw - 24px));overflow:hidden;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);box-shadow:0 22px 58px #0f172a40}.class-calculator.is-dragging{opacity:.96;box-shadow:0 28px 70px #0f172a57}.class-tool-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;color:#fff;background:linear-gradient(135deg,var(--color-primary),#0f766e);cursor:grab}.class-tool-header strong{display:inline-flex;align-items:center;gap:7px}.class-tool-header .button-ghost{color:#fff}.class-calculator-body{padding:12px}.class-calculator-display{width:100%;min-height:44px;margin-bottom:10px;padding:8px 10px;border:1px solid var(--color-border);border-radius:7px;color:var(--color-text);background:var(--color-surface-soft);font-size:1.3rem;font-weight:800;text-align:right}.class-calculator-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.class-calculator-grid button{min-height:38px;border:1px solid var(--color-border);border-radius:7px;color:var(--color-text);background:var(--color-surface-soft);font-weight:800;cursor:pointer}.class-calculator-grid button:hover{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface))}.class-calculator-grid button.is-wide{grid-column:span 2}.class-calculator-grid button.is-equals{color:#fff;border-color:var(--color-primary);background:var(--color-primary)}.class-calculator-footer{display:flex;justify-content:space-between;gap:8px;margin-top:10px}.class-roulette-modal{position:fixed;inset:0;z-index:100002;display:grid;place-items:stretch;padding:14px;overflow:auto;background:#020617b8}.class-roulette-modal[hidden],.class-calculator[hidden]{display:none!important}.class-roulette-dialog{display:grid;grid-template-rows:auto 1fr auto;min-height:min(900px,calc(100vh - 28px));overflow:hidden;border:1px solid var(--color-border);border-radius:14px;background:var(--color-bg);box-shadow:0 28px 80px #02061766}.class-roulette-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;color:#fff;background:linear-gradient(135deg,var(--color-primary),#0f766e)}.class-roulette-header h2{margin:3px 0 0;font-size:1.1rem}.class-roulette-header .eyebrow{display:inline-flex;align-items:center;gap:6px;color:#ffffffc7}.class-roulette-header .button-ghost{color:#fff}.class-roulette-body{min-height:0;overflow:auto;padding:18px}.class-roulette-stage{display:grid;grid-template-columns:minmax(340px,1fr) minmax(360px,1.12fr);align-items:start;gap:14px;max-width:1320px;margin:0 auto}.class-roulette-wheel-card{position:relative;display:grid;align-content:start;gap:10px;min-width:0;align-self:start;padding:clamp(10px,2vw,20px);border:1px solid var(--color-border);border-radius:12px;background:radial-gradient(circle at center,color-mix(in srgb,var(--color-primary) 8%,var(--color-surface)),var(--color-surface-soft))}.class-roulette-wheel-wrap{position:relative;width:min(58vh,560px,100%);aspect-ratio:1;margin:0 auto 76px}.class-roulette-wheel-wrap canvas{display:block;width:100%;height:100%;border-radius:50%;box-shadow:0 14px 35px #0f172a38}.class-roulette-pointer{position:absolute;top:-2px;left:50%;z-index:2;width:0;height:0;transform:translate(-50%);border-right:16px solid transparent;border-left:16px solid transparent;border-top:30px solid #dc2626;filter:drop-shadow(0 3px 2px rgb(15 23 42 / .3))}.class-roulette-spin{position:absolute;top:50%;left:50%;display:grid;place-items:center;width:112px;height:112px;transform:translate(-50%,-50%);border:7px solid #fff;border-radius:50%;color:#fff;background:linear-gradient(135deg,#0f766e,#15803d);box-shadow:0 8px 24px #0f172a4d;font-weight:900;cursor:pointer}.class-roulette-spin.is-stopping{gap:2px;padding:0 14px;font-size:.68rem;line-height:1.05;white-space:normal}.class-roulette-spin:hover{transform:translate(-50%,-50%) scale(1.04)}.class-roulette-winner{position:absolute;right:16px;bottom:16px;left:16px;z-index:5;display:flex;align-items:center;gap:10px;width:auto;min-height:62px;padding:10px 14px;border:1px solid rgb(148 163 184 / .35);border-radius:10px;color:#fff;background:#0f172ae6;box-shadow:0 12px 28px #02061759;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.class-roulette-winner[hidden]{display:none!important}.class-roulette-winner.is-winner-flash{animation:class-roulette-winner-flash 1.1s ease-out}@keyframes class-roulette-winner-flash{0%,to{box-shadow:0 14px 35px #0f172a59}25%,55%{box-shadow:0 0 0 10px #22c55e33,0 14px 35px #0f172a59}}.class-roulette-winner img{width:44px;height:44px;flex:0 0 auto;object-fit:cover;border-radius:50%}.class-roulette-winner div{display:grid;gap:3px}.class-roulette-winner small{color:var(--color-muted);font-weight:800;text-transform:uppercase}.class-roulette-winner strong{font-size:1rem}.class-roulette-winner span{color:var(--color-muted);font-size:.8rem}.class-roulette-panel{display:grid;align-content:start;gap:10px;min-width:0;padding:14px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface)}.class-roulette-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.class-roulette-tabs button{display:grid;justify-items:center;gap:4px;min-width:0;padding:8px 4px;border:1px solid var(--color-border);border-radius:7px;color:var(--color-muted);background:var(--color-surface-soft);font-size:.72rem;font-weight:800;cursor:pointer}.class-roulette-tabs button.is-active{color:#fff;border-color:var(--color-primary);background:var(--color-primary)}.class-roulette-panel-status{min-height:20px;color:var(--color-muted);font-size:.78rem}.class-roulette-panel-status[data-tone=error]{color:var(--color-danger)}.class-roulette-panel-status[data-tone=success]{color:var(--color-success)}.class-roulette-list-field textarea{min-height:150px;resize:vertical}.class-roulette-actions,.class-roulette-number-fields{display:flex;gap:8px}.class-roulette-number-fields{display:contents}.class-roulette-groups{display:grid;grid-template-columns:minmax(72px,1fr) minmax(72px,1fr) auto;align-items:end;gap:6px;margin-top:8px;padding:8px;border:1px solid var(--color-border);border-radius:7px;background:var(--color-surface-soft)}.class-roulette-groups>.button{grid-column:3;grid-row:1;white-space:nowrap}.class-roulette-groups[hidden]{display:none!important}.class-roulette-groups [data-roulette-groups-list]{grid-column:1 / -1;max-height:360px;overflow:auto}.class-roulette-check{display:flex;align-items:center;gap:8px;color:var(--color-muted);font-size:.82rem}.class-roulette-mini,.class-roulette-history{display:grid;gap:7px;padding-top:7px;border-top:1px solid var(--color-border)}.class-roulette-summary-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;min-width:0}.class-roulette-summary-row>*{min-width:0;max-width:100%;overflow:hidden}.class-roulette-mini>strong{display:flex;align-items:center;justify-content:flex-start;gap:7px;min-height:30px;color:var(--color-text)}.class-roulette-mini>strong>span{display:inline-flex;align-items:center;justify-content:center;min-width:26px;min-height:22px;padding:2px 7px;border:1px solid color-mix(in srgb,var(--color-primary) 35%,var(--color-border));border-radius:999px;color:var(--color-primary-strong);background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));font-size:.72rem}.class-roulette-mini>div{display:flex;flex-wrap:wrap;gap:5px;max-height:92px;overflow:auto}.class-roulette-mini span,.class-roulette-history-item{display:inline-flex;align-items:center;gap:4px;max-width:100%;min-width:0;overflow:hidden;padding:3px 6px;border:1px solid var(--color-border);border-radius:999px;color:var(--color-muted);background:var(--color-surface-soft);font-size:.65rem;white-space:nowrap;text-overflow:ellipsis}.class-roulette-history>div:first-child{display:flex;align-items:center;justify-content:space-between}.class-roulette-history>div:last-child{display:grid;gap:5px;min-height:210px;max-height:210px;overflow-y:auto;overflow-x:hidden}.class-roulette-history-item{justify-content:flex-start;border-radius:6px}.class-roulette-history-item>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-roulette-history-item>small{flex:0 0 auto;max-width:42%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-roulette-mini span,.class-roulette-history-item{overflow-wrap:anywhere;white-space:normal;text-overflow:clip}.class-roulette-history-item>span,.class-roulette-history-item>small{overflow-wrap:anywhere;white-space:normal;text-overflow:clip}.class-roulette-history-item{display:flex;flex-wrap:wrap;width:100%;overflow:visible}.class-roulette-history-item>span{flex:1 1 100%;overflow:visible}.class-roulette-history-item>small{flex:1 1 100%;max-width:none;overflow:visible}.class-roulette-mini,.class-roulette-history{min-height:250px;box-sizing:border-box}.class-roulette-mini{overflow:visible}.class-roulette-summary-row>.class-roulette-mini{overflow:visible}.class-roulette-summary-row>.class-roulette-mini>div{height:auto;min-height:210px;max-height:none;overflow:visible}.class-roulette-mini>strong,.class-roulette-history>div:first-child,.class-roulette-history>div:first-child strong{display:flex;align-items:center;gap:7px;min-height:30px}.class-roulette-history>div:first-child{justify-content:space-between;border-bottom:1px solid var(--color-border)}.class-roulette-history>div:first-child strong{color:var(--color-text);font-weight:850}.class-roulette-mini>strong>span.class-roulette-summary-label{min-width:0;padding:0;border:0;color:var(--color-text);background:transparent;font-size:.82rem}.class-roulette-mini>strong>span:not(.class-roulette-summary-label){flex:0 0 auto}.class-roulette-mini>div{display:grid;grid-template-columns:minmax(0,1fr);min-height:210px;max-height:300px;align-content:start;gap:7px;overflow-y:auto;overflow-x:hidden}.class-roulette-mini>div>span{display:flex;align-items:flex-start;width:100%;min-width:0;min-height:0;box-sizing:border-box;gap:5px;padding:6px 8px;border-radius:7px;line-height:1.25;overflow:visible}.class-roulette-mini>div>span b{flex:0 0 auto;white-space:nowrap}.class-roulette-mini>div>span em{flex:1 1 auto;min-width:0;overflow-wrap:anywhere;white-space:normal;font-style:normal}.class-roulette-group{display:grid;gap:5px;min-height:0;margin-top:8px;padding:8px;border:1px solid var(--color-border);border-radius:7px;background:var(--color-surface-soft)}.class-roulette-group>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(92px,110px) 28px;align-items:center;gap:8px;min-width:0;min-height:29px;font-size:.64rem}.class-roulette-group>div>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.class-roulette-group .select{width:100%;min-width:0;min-height:28px;padding:2px 5px;font-size:.72rem}.class-roulette-footer{display:flex;justify-content:flex-end;padding:10px 18px;border-top:1px solid var(--color-border);background:var(--color-surface)}.class-roulette-modal:fullscreen{padding:14px;background:#020617d1}@media(max-width:900px){.class-roulette-stage{grid-template-columns:1fr}.class-roulette-wheel-wrap{width:min(58vh,520px,100%)}}@media(max-width:560px){.class-roulette-modal{padding:0}.class-roulette-dialog{min-height:100vh;border:0;border-radius:0}.class-roulette-body{padding:10px}.class-roulette-tabs button{font-size:.63rem}.class-roulette-spin{width:88px;height:88px}.class-calculator{right:12px;bottom:68px}.class-roulette-groups{grid-template-columns:1fr 1fr}.class-roulette-groups>.button{grid-column:1 / -1;grid-row:auto}}@media(max-width:560px){.class-roulette-summary-row{grid-template-columns:1fr}}.students-page-tools{display:grid;grid-template-columns:minmax(260px,1fr) 130px auto auto;align-items:end;gap:10px}.students-page-tools>.field,.students-page-tools .filter-grid,.students-page-tools .inline-actions{min-width:0;margin:0}.students-page-tools .filter-grid{display:block}.students-page-tools .field-label{min-height:16px;line-height:16px}.students-page-tools .input,.students-page-tools .select,.students-page-tools .button,.students-page-tools>.chip{min-height:42px}.students-page-tools>.chip{align-self:end;display:inline-flex;align-items:center;justify-content:center;min-width:118px;border-radius:var(--radius-control)}.student-context-toolbar{display:flex;align-items:end;justify-content:flex-start;flex-wrap:nowrap;gap:10px;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.student-context-toolbar>div:first-child{display:flex;align-items:end;flex:0 0 auto;gap:10px}.student-context-toolbar .field{margin:0}.student-context-toolbar .field{width:min(210px,32vw);min-width:170px}.student-context-toolbar .field:has([data-student-group-switch]){width:min(320px,42vw);min-width:260px}.student-context-toolbar .inline-actions{flex-wrap:nowrap}.student-context-toolbar .button{flex:0 0 auto;white-space:nowrap}.student-context-toolbar>.inline-actions{align-self:end;justify-content:flex-start}.grades-page--embedded .grade-capture-table tbody .grade-capture-table__number,.grades-page--embedded .grade-capture-table tbody .grade-capture-table__photo,.grades-page--embedded .grade-capture-table tbody .grade-capture-table__first-name{z-index:20!important;background:var(--color-surface)}.grade-capture-table tbody .grade-capture-table__photo{overflow:visible}.grades-page--embedded .grade-capture-table tbody .grade-capture-table__photo:hover,.grade-capture-table tbody .grade-capture-table__photo:hover{z-index:90!important}.grade-capture-table tbody .grade-capture-table__photo img:hover{position:relative;z-index:91;transform:scale(2.35);box-shadow:0 16px 34px #0f172a57,0 0 0 3px var(--color-surface)}.grades-page--embedded .grade-capture-table thead .grade-capture-table__number,.grades-page--embedded .grade-capture-table thead .grade-capture-table__photo,.grades-page--embedded .grade-capture-table thead .grade-capture-table__first-name{z-index:24!important;background:var(--color-surface-soft)}.student-gallery{grid-template-columns:repeat(auto-fill,minmax(275px,1fr));gap:12px}.student-card--rich{position:relative;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:0;min-width:0;padding:0;overflow:visible;border:1px solid var(--color-border);border-left:3px solid var(--color-primary);border-radius:7px;background:var(--color-surface);box-shadow:0 3px 10px #0f172a12;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.student-card--rich:hover{z-index:20;transform:translateY(-2px);border-color:color-mix(in srgb,var(--color-primary) 48%,var(--color-border));border-left-color:var(--color-primary);box-shadow:0 10px 24px #0f172a1f}.student-card__primary{display:grid;grid-template-columns:68px minmax(0,1fr);align-items:start;gap:11px;min-width:0;border-radius:6px 6px 0 0;padding:12px;background:var(--color-surface);color:inherit;text-decoration:none}.student-card__contact{position:absolute;top:88px;left:16px;z-index:5;display:grid;place-items:center;width:60px;height:46px;padding:0;border:1px solid var(--color-border);border-radius:8px;color:var(--color-primary);background:var(--color-surface-muted);cursor:pointer;transition:color .16s ease,background .16s ease,border-color .16s ease,transform .16s ease}.student-card__contact:hover,.student-card__contact:focus-visible{border-color:var(--color-primary);color:#fff;background:var(--color-primary);transform:translateY(-1px);outline:none}.student-card__body{min-width:0}.student-card__body h3{margin:4px 0 5px;overflow:visible;font-size:.94rem;line-height:1.25;text-overflow:clip;white-space:normal;overflow-wrap:break-word}.student-card__primary .student-avatar--zoom{position:relative;z-index:2;width:68px;height:68px;overflow:visible;border:2px solid color-mix(in srgb,var(--color-primary) 32%,var(--color-border));border-radius:50%;background:var(--color-surface);box-shadow:0 4px 11px #0f172a1c}.student-avatar--zoom img{width:100%;height:100%;border-radius:50%;object-fit:cover;transition:transform .22s ease,box-shadow .22s ease}.student-card__primary .student-avatar--zoom:hover{z-index:40}.student-card__primary .student-avatar--zoom:hover img{position:relative;z-index:41;transform:scale(2.15);box-shadow:0 14px 32px #0f172a61,0 0 0 3px var(--color-surface)}.student-card__footer{display:flex;align-items:center;justify-content:space-between;gap:8px;border-radius:0 0 6px 6px;padding:7px 10px;border-top:1px solid var(--color-border);background:var(--color-surface)}.student-card__footer .button{min-height:30px;padding:5px 8px}.student-contact-whatsapp{display:inline-flex;margin-left:6px;color:#16a34a;vertical-align:middle}.student-contact-card__identity{display:flex;align-items:center;gap:13px;margin-bottom:15px;padding:13px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-muted);box-shadow:0 4px 12px #0f172a0f}.student-contact-card__identity img{width:58px;height:58px;flex:0 0 58px;border:2px solid var(--color-primary);border-radius:50%;object-fit:cover}.student-contact-card__identity>div{display:grid;min-width:0;gap:4px}.student-contact-card__identity strong{color:var(--color-text);font-size:1rem}.student-contact-card__identity small{color:var(--color-muted)}.student-contact-groups{display:grid;gap:12px}.student-contact-group{padding:11px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface-muted)}.student-contact-group h4{display:flex;align-items:center;gap:7px;margin:0;color:var(--color-text);font-size:.86rem}.student-contact-group h4 svg{color:var(--color-primary)}.student-contact-group dl{margin-top:9px}.student-card__open{display:inline-flex;align-items:center;gap:5px;color:var(--color-primary);font-size:.78rem;font-weight:700;text-decoration:none}.student-card__facts{display:flex;flex-wrap:wrap;gap:4px 9px;margin:3px 0 6px}.student-card__facts>span{display:inline-flex;align-items:center;gap:5px;color:var(--color-muted)}.student-card__facts small{font-size:.68rem;font-weight:700}.student-card__facts .student-sex{width:auto;height:auto;padding:0;border:0;background:transparent}.student-card__condition{display:inline-flex;align-items:center;gap:5px;max-width:100%;margin-bottom:1px;border:1px solid var(--color-border);border-radius:5px;background:var(--color-surface-soft);padding:3px 7px;color:var(--color-text);font-size:.68rem;font-weight:800}.student-metric{display:grid;grid-template-columns:minmax(76px,auto) minmax(54px,1fr) 34px;gap:6px;align-items:center;margin-top:6px;font-size:.68rem}.student-metric>span{display:flex;align-items:center;gap:5px;color:var(--color-muted)}.student-metric>div{height:6px;overflow:hidden;background:var(--color-border);border-radius:999px}.student-metric i{display:block;height:100%;background:var(--metric-color, #2563eb);border-radius:inherit}.student-metric strong{font-size:.68rem;text-align:right}.student-metric.is-compact{grid-template-columns:minmax(76px,1fr) 38px;min-width:120px;margin:0}.student-table-scroll{max-width:100%;overflow:auto;border:1px solid var(--color-border);border-radius:6px}.students-roster .student-table-scroll{overflow-x:hidden}.student-roster-table{width:100%;min-width:0;table-layout:fixed;border-collapse:separate;border-spacing:0}.student-roster-table th,.student-roster-table td{min-width:0;padding:7px 5px;overflow:hidden;vertical-align:middle}.student-roster-table th{white-space:normal;font-size:.68rem;line-height:1.15}.student-table-sort{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;min-height:30px;padding:2px;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;cursor:pointer}.student-table-sort span{min-width:0;overflow-wrap:anywhere}.student-table-sort svg:last-child{flex:0 0 auto;opacity:.55}.student-table-sort:hover,.student-table-sort.is-active{color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 8%,transparent);border-radius:4px}.student-table-sort.is-active svg:last-child{opacity:1}.student-roster-table th:nth-child(1){width:53px}.student-roster-table th:nth-child(2){width:67px}.student-roster-table th:nth-child(3){width:90px}.student-roster-table th:nth-child(4),.student-roster-table th:nth-child(5){width:14%}.student-roster-table th:nth-child(6){width:48px}.student-roster-table th:nth-child(7){width:67px}.student-roster-table th:nth-child(7) .student-table-sort span{overflow-wrap:normal;white-space:nowrap}.student-roster-table th:nth-child(8){width:128px}.student-roster-table th:nth-child(9){width:124px}.student-roster-table .subject-table-heading{align-items:flex-start;white-space:normal}.student-roster-table td{overflow:visible}.student-roster-table th:nth-child(6),.student-roster-table td:nth-child(6){width:64px;min-width:64px;white-space:nowrap}.student-roster-table th:nth-child(6) .student-table-sort span{white-space:nowrap;overflow-wrap:normal}.student-roster-table tbody tr{position:relative;z-index:1}.student-roster-table tbody tr:hover{z-index:12}.student-roster-table td:first-child{position:relative;z-index:2}.student-table-avatar{position:relative;display:block;width:36px;height:36px;overflow:visible;border-radius:50%;z-index:3}.student-table-avatar img{width:36px;height:36px;object-fit:cover;border-radius:50%;transition:transform .2s ease,box-shadow .2s ease}.student-table-avatar:hover{z-index:30}.student-table-avatar:hover img{position:absolute;top:50%;left:0;z-index:30;transform:translateY(-50%) scale(2.2);box-shadow:0 14px 30px #0f172a59}.student-table-input.is-save-success,.student-table-select.is-save-success{animation:student-field-saved 1.15s ease-out}.student-table-input.is-save-pending,.student-table-select.is-save-pending{border-color:#d97706;box-shadow:0 0 0 3px #d977061f}@keyframes student-field-saved{0%,to{border-color:var(--color-border);box-shadow:none;background:var(--color-surface)}25%,65%{border-color:#16a34a;box-shadow:0 0 0 4px #16a34a33;background:#dcfce7e0}}.student-table-input,.student-table-select{min-width:78px;height:34px;padding:5px 8px;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong, var(--color-border));border-radius:5px}.subject-management-table .student-table-select.is-saved-value{border-color:var(--color-success, #16a34a)}.subject-management-table .student-table-select option.student-table-option-saved{background:#dcfce7;color:#166534;font-weight:700}.student-table-input--number{width:68px;min-width:68px}.student-roster-table .student-table-input--number{width:100%;min-width:0}.student-roster-table .student-table-select{width:100%;min-width:0;padding-inline:5px;font-size:.72rem}.student-name-link{display:inline-block;max-width:100%;overflow:hidden;color:var(--color-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:750}.icon-button--danger{color:var(--color-danger)}.student-roster-table .table-actions{display:flex;align-items:center;justify-content:center;gap:5px}.student-roster-table .table-actions .icon-button{width:30px;height:30px;min-width:30px}.student-roster-table .table-actions .icon-button{border:1px solid var(--color-border);background:var(--color-surface);box-shadow:0 1px 2px #0f172a12}.student-roster-table .table-actions .icon-button:hover{border-color:currentColor;background:color-mix(in srgb,currentColor 8%,var(--color-surface))}.student-roster-table .table-actions .icon-button:first-child{color:var(--color-primary)}.student-roster-table .table-actions [data-student-active]{color:#b45309}.student-roster-table .table-actions .icon-button--danger{color:var(--color-danger)}.student-sex{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px}.student-sex--male{color:#2563eb}.student-sex--female{color:#db2777}.student-sex--unknown{color:var(--color-muted)}.student-subject-manager{width:100%;min-width:0;max-width:100%;overflow:hidden}.student-subject-manager>header{display:flex;align-items:center;justify-content:space-between;gap:16px}.student-subject-manager>header small{display:flex;align-items:center;gap:6px;color:var(--color-muted)}.student-subject-manager h3{display:flex;align-items:center;gap:8px;margin:2px 0 0}.subject-management-tools{display:grid;grid-template-columns:minmax(260px,1fr) minmax(180px,.35fr) minmax(130px,.2fr);gap:10px;margin:15px 0 12px;padding:11px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg)}.subject-management-tools label{display:grid;grid-template-columns:auto 1fr;gap:2px 7px;align-items:center;color:var(--color-muted);font-size:.72rem;font-weight:700}.subject-management-tools label>svg{grid-row:1}.subject-management-tools input,.subject-management-tools select{grid-column:1 / -1;width:100%;height:37px;padding:6px 9px;color:var(--color-text);border:1px solid var(--color-border-strong, var(--color-border));border-radius:5px;background:var(--color-surface)}.subject-management-scroll{position:relative;display:block;width:100%;min-width:0;max-width:100%;overflow-x:auto;overflow-y:visible;overscroll-behavior-inline:contain;scrollbar-gutter:stable}.subject-management-table{width:max-content;min-width:1640px;max-width:none;border-collapse:separate;border-spacing:0}.subject-management-table th{white-space:nowrap}.subject-management-table th:last-child{text-align:left}.subject-management-table th:nth-child(1),.subject-management-table td:nth-child(1),.subject-management-table th:nth-child(2),.subject-management-table td:nth-child(2),.subject-management-table th:nth-child(3),.subject-management-table td:nth-child(3){position:sticky;background:var(--color-surface)}.subject-management-table th:nth-child(1),.subject-management-table td:nth-child(1){left:0;width:56px;min-width:56px;text-align:center;z-index:3}.subject-management-table th:nth-child(2),.subject-management-table td:nth-child(2){left:56px;width:116px;min-width:116px;z-index:3}.subject-management-table th:nth-child(3),.subject-management-table td:nth-child(3){left:172px;width:290px;min-width:290px;z-index:3;box-shadow:5px 0 7px -6px #0f172ab3}.subject-management-table th:nth-child(3),.subject-management-table td:nth-child(3){white-space:nowrap}.subject-management-table th:first-child,.subject-management-table td:first-child{font-size:12px}.subject-management-table thead th:nth-child(-n+3){z-index:6;background:var(--color-surface-strong, var(--color-surface))}.subject-management-table tfoot td{position:static;background:var(--color-surface)}.subject-management-table code{color:var(--color-primary);font-weight:800;letter-spacing:.02em}.subject-management-table tr.subject-row--unloaded{background:color-mix(in srgb,var(--color-warning, #f59e0b) 10%,var(--color-surface))}.subject-management-table tr.subject-row--unloaded td:nth-child(3){box-shadow:inset 4px 0 0 var(--color-warning, #f59e0b)}.preload-target{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 18px 4px;padding:13px 15px;border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:8px;background:var(--color-surface-strong, var(--color-surface));color:var(--color-muted);font-size:.78rem;font-weight:700}.preload-target strong{color:var(--color-text);font-size:.95rem}.subject-preload-option{display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:12px;width:100%;margin:8px 0;padding:13px 15px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.subject-preload-option:hover,.subject-preload-option.is-selected{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 9%,var(--color-surface));transform:translateY(-1px)}.subject-preload-option__icon{display:grid;place-items:center;width:38px;height:38px;border-radius:8px;background:color-mix(in srgb,var(--color-primary) 14%,transparent);color:var(--color-primary)}.subject-preload-option__content{display:grid;gap:3px;min-width:0}.subject-preload-option__content strong{font-size:.95rem}.subject-preload-option__content small,.subject-preload-option__content em{color:var(--color-muted);font-size:.78rem;font-style:normal}.subject-preload-option__count{display:grid;justify-items:end;gap:2px;min-width:58px}.subject-preload-option__count b{color:var(--color-primary);font-size:1.25rem}.subject-preload-option__count small{color:var(--color-muted);font-size:.72rem}.subject-management-table select{min-width:180px;width:100%}.subject-management-table th:nth-child(4),.subject-management-table td:nth-child(4){width:250px;min-width:250px}.subject-management-table th:nth-child(7),.subject-management-table td:nth-child(7){width:74px;min-width:74px;max-width:74px;text-align:center}.subject-management-table th:nth-child(8),.subject-management-table td:nth-child(8){width:96px;min-width:96px;max-width:96px;text-align:center}.subject-management-table td:nth-child(7) .student-table-input{width:52px;min-width:52px;text-align:center}.subject-management-table td:nth-child(8) .student-table-input{width:74px;min-width:74px;text-align:center}.subject-table-heading,.subject-management-name,.subject-type{display:inline-flex;align-items:center;gap:6px}.subject-management-name{white-space:normal;line-height:1.25}.subject-type--fct{color:#7c3aed;background:#7c3aed1a;border-color:#7c3aed3d}.subject-management-scroll:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}.subject-report-actions{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-width:220px}.subject-report-button{width:31px;height:31px;border:1px solid var(--color-border);background:var(--color-surface)}.subject-report-button.is-excel{color:#15803d}.subject-report-button.is-word{color:#2563eb}.subject-report-button.is-pdf{color:#dc2626}.subject-report-button:hover{color:#fff;border-color:currentColor}.subject-report-button.is-excel:hover{background:#15803d}.subject-report-button.is-word:hover{background:#2563eb}.subject-report-button.is-pdf:hover{background:#dc2626}.confirm-dialog-backdrop.student-action-dialog-backdrop{z-index:1300;padding:20px}.confirm-dialog.student-action-dialog{gap:0;width:min(520px,100%);max-height:min(720px,calc(100vh - 40px));overflow-y:auto;padding:0;border-radius:8px;background:var(--color-surface)}.student-action-dialog__header{display:flex;align-items:center;gap:12px;padding:17px 19px;color:#fff;background:linear-gradient(135deg,#b91c1c,#dc2626)}.student-action-dialog__header>span{display:grid;place-items:center;width:39px;height:39px;flex:0 0 39px;border-radius:50%;background:#ffffff2b}.student-action-dialog__header small{display:block;margin-bottom:2px;color:#fffc;font-size:.72rem;font-weight:700}.student-action-dialog .student-action-dialog__header h2{margin:0;color:inherit;font-size:1.02rem;letter-spacing:0}.student-action-dialog__student{display:flex;align-items:center;gap:13px;margin:18px 19px 10px;padding:12px;border:1px solid var(--color-border);border-radius:7px;background:var(--color-bg)}.student-action-dialog__student img{width:58px;height:58px;flex:0 0 58px;object-fit:cover;border:3px solid var(--color-surface);border-radius:50%;box-shadow:0 3px 12px #0f172a29}.student-action-dialog__student div{display:grid;gap:5px;min-width:0}.student-action-dialog__student strong{overflow:hidden;font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.student-action-dialog__student span{display:inline-flex;align-items:center;gap:5px;color:var(--color-muted);font-size:.78rem;font-weight:700}.student-action-dialog__question{margin:13px 19px;color:var(--color-text);line-height:1.5}.student-action-dialog__fields{display:grid;gap:13px;margin:0 19px 18px}.student-action-dialog__fields label{display:grid;gap:6px;color:var(--color-text);font-size:.78rem;font-weight:700}.student-action-dialog__fields label>span{display:inline-flex;align-items:center;gap:6px}.student-action-dialog__fields input,.student-action-dialog__fields textarea{width:100%;color:var(--color-text);border:1px solid var(--color-border-strong, var(--color-border));border-radius:6px;background:var(--color-bg)}.student-action-dialog__fields input{min-height:40px;padding:7px 10px}.student-action-dialog__fields textarea{resize:vertical;min-height:82px;padding:9px 10px}.student-action-dialog__fields input:focus,.student-action-dialog__fields textarea:focus{outline:2px solid rgb(220 38 38 / 22%);border-color:#dc2626}.student-action-dialog__error{padding:8px 10px;color:#991b1b;border-radius:5px;background:#fee2e2}.student-action-dialog__footer{position:sticky;bottom:0;margin:0;padding:13px 19px;border-top:1px solid var(--color-border);background:var(--color-surface)}.subject-type{padding:4px 7px;border-radius:999px;font-size:.72rem;font-weight:800}.subject-type--academic{color:#1d4ed8;background:#dbeafe}.subject-type--technical{color:#9a3412;background:#ffedd5}.subject-management-empty{padding:28px!important;text-align:center;color:var(--color-muted)}.subject-management-footer{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;min-width:0;margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border)}.subject-management-footer>div{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.subject-management-footer strong,.subject-management-footer>div>span{display:inline-flex;align-items:center;gap:6px}.subject-management-footer>div>span{color:var(--color-muted)}.subject-management-pagination{display:flex;align-items:center;gap:8px;margin-left:auto}.subject-management-pagination span{font-size:.75rem;font-weight:700}.student-table-person{display:inline-flex;align-items:center;gap:9px;color:var(--color-text);text-decoration:none;min-width:220px}.student-table-person span{display:grid;place-items:center;width:34px;height:34px;overflow:hidden;background:var(--color-bg);border-radius:50%}.student-table-person img{width:100%;height:100%;object-fit:cover}.student-teachers>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.student-teachers h3{display:flex;align-items:center;gap:8px;margin:2px 0 0}.student-teachers header>span{display:grid;place-items:center;min-width:34px;height:28px;color:var(--color-primary);background:color-mix(in srgb,var(--color-primary) 10%,transparent);border-radius:999px;font-weight:800}.student-teacher-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.student-teacher-card{min-width:0;padding:14px;border:1px solid var(--color-border);border-top:3px solid #7c3aed;border-radius:6px;background:var(--color-surface);transition:transform .2s ease,box-shadow .2s ease}.student-teacher-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-card)}.student-teacher-card__person{display:flex;align-items:center;gap:10px;width:100%;padding:0 0 11px;border:0;border-bottom:1px solid var(--color-border);background:transparent;color:var(--color-text);text-align:left;cursor:pointer}.student-teacher-photo{display:block;flex:0 0 auto;width:48px;height:48px;overflow:visible}.student-teacher-card__person img{width:48px;height:48px;object-fit:cover;border-radius:50%;transition:transform .2s ease,box-shadow .2s ease}.student-teacher-card__person:hover img{position:relative;z-index:4;transform:scale(1.65);box-shadow:var(--shadow-card)}.student-teacher-card__person span{display:grid;min-width:0}.student-teacher-card__person strong{overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:break-word;line-height:1.25}.student-teacher-card__person small{color:var(--color-muted)}.student-teacher-card__subjects{display:grid;gap:8px;padding-top:10px}.student-teacher-card__subjects>div{display:grid;gap:2px}.student-teacher-card__subjects span{display:flex;align-items:center;gap:6px;min-width:0}.student-teacher-card__subjects b{white-space:normal;overflow-wrap:anywhere;line-height:1.3}.student-teacher-card__subjects small{padding-left:20px;color:var(--color-muted)}.student-teacher-card__schedule{display:grid;gap:7px;padding:10px 0;border-bottom:1px solid var(--color-border)}.student-teacher-card__schedule>div{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:0}.student-teacher-card__schedule small,.student-teacher-card__schedule span{color:var(--color-muted);font-size:.72rem}.student-teacher-card__schedule strong{display:flex;gap:5px;min-width:0;white-space:normal;overflow-wrap:break-word;word-break:normal;font-size:.78rem}.student-teacher-card__schedule strong svg{flex:0 0 auto}.student-teacher-card__schedule .student-schedule-meta{margin-top:1px}.student-teacher-card__actions{display:flex;justify-content:flex-end;gap:7px;margin-top:12px;padding-top:10px;border-top:1px solid var(--color-border)}.student-teacher-card__actions .icon-button{border:1px solid var(--color-border);background:var(--color-surface)}.student-teacher-card__actions .is-grades{color:#2563eb}.student-teacher-card__actions .is-statistics{color:#0f766e}.student-teacher-card__actions .is-recovery{color:#c2410c}.student-teacher-card__actions .is-schedule{color:#7c3aed}.student-teacher-card__actions .icon-button:hover{border-color:currentColor;background:color-mix(in srgb,currentColor 9%,var(--color-surface))}.student-contact-card header{display:flex;align-items:center;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--color-border)}.student-contact-card header img{width:58px;height:58px;object-fit:cover;border-radius:50%}.student-contact-card header div{display:grid}.student-contact-card header small{color:var(--color-muted)}.student-contact-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 0}.student-contact-card dl>div{min-width:0;padding:10px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:5px}.student-contact-card dt{display:flex;align-items:center;gap:6px;color:var(--color-muted);font-size:.74rem}.student-contact-card dd{margin:4px 0 0;overflow-wrap:anywhere;font-weight:700}.student-enroll-dialog{grid-template-rows:auto auto minmax(0,1fr) auto;width:min(960px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 32px))}.student-enrollment-target{display:flex;align-items:center;gap:8px;margin:14px 18px 0;padding:10px 12px;color:#075985;border:1px solid #7dd3fc;border-radius:6px;background:#e0f2fe;font-size:.8rem;font-weight:750;line-height:1.4}.student-enrollment-target:before{content:"";width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:#0284c7;box-shadow:0 0 0 4px #0284c721}.student-enrollment-target--form{margin:0}.student-enrollment-target--form:before{display:none}.student-enrollment-target--form svg{flex:0 0 auto}.student-enroll-header-context{display:inline-flex;max-width:min(620px,70vw);margin-top:4px;padding:3px 8px;overflow:hidden;color:#fff;border:1px solid rgb(255 255 255 / 22%);border-radius:999px;background:#ffffff21;text-overflow:ellipsis;white-space:nowrap}.student-enroll-tools{position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,150px) minmax(130px,auto);align-items:end;gap:12px;min-width:0;padding:14px 18px;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.student-enroll-tools .field{min-width:0;margin:0}.student-enroll-tools .input,.student-enroll-tools .select,.student-enroll-tools .chip{width:100%;min-width:0;min-height:40px}.student-enroll-tools .chip{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-control)}.student-enroll-dialog .group-info-body{position:relative;z-index:1;min-width:0;min-height:0;overflow:hidden auto;padding-top:14px;background:var(--color-surface)}.student-enroll-table-wrap{width:100%;overflow-x:auto;border:1px solid var(--color-border);border-radius:6px}.student-enroll-table{width:100%;min-width:650px}.student-enroll-table th,.student-enroll-table td{vertical-align:middle}.student-enroll-table th{padding-inline:4px}.student-enroll-sort{min-width:max-content}.student-enroll-table td:first-child{width:54px}.student-enroll-table td:first-child img{width:38px;height:38px;object-fit:cover;border-radius:50%}.student-enroll-table th:last-child,.student-enroll-table td:last-child{width:76px;text-align:center}.student-enroll-table tr{cursor:pointer}.student-enroll-table tr.is-selected>td{background:color-mix(in srgb,var(--color-success) 13%,var(--color-surface))}.student-enroll-dialog>footer{display:flex;align-items:center;gap:9px}.student-enroll-dialog>footer>:first-child{margin-right:auto}.student-move-footer{display:flex;justify-content:flex-end;width:100%;padding-top:1rem;border-top:1px solid var(--color-border)}.student-move-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.student-roster-table tr.student-row--move-selected td{background:color-mix(in srgb,var(--color-primary) 14%,var(--color-surface));box-shadow:inset 0 1px color-mix(in srgb,var(--color-primary) 30%,transparent),inset 0 -1px color-mix(in srgb,var(--color-primary) 30%,transparent)}@media(max-width:600px){.student-move-footer{flex-wrap:wrap}.student-move-footer [data-apply-student-moves]{flex:1 1 100%;order:-1}}.student-promotion-table input[type=checkbox]{width:21px;height:21px;accent-color:var(--color-primary);transform:scale(1.08)}.student-promotion-table .student-promotion-name-cell{display:table-cell;vertical-align:middle;white-space:nowrap}.student-promotion-table .student-promotion-name-cell input{margin:0 8px 0 0;vertical-align:middle}.student-promotion-table .student-promotion-photo{width:38px;height:38px;display:block;object-fit:cover;border-radius:50%}.student-promotion-table tr[data-condition=aprobado],.student-promotion-table tr[data-condition=aprobada]{background:color-mix(in srgb,var(--color-success) 9%,var(--color-surface))}.student-promotion-table tr[data-condition=reprobado],.student-promotion-table tr[data-condition=reprobada]{background:color-mix(in srgb,var(--color-danger) 9%,var(--color-surface))}.student-promotion-table tr[data-condition]{transition:background-color .16s ease}.student-promotion-table tr[data-condition]:hover{background:color-mix(in srgb,var(--color-primary) 13%,var(--color-surface))}.student-promotion-table .student-promotion-name{color:inherit;text-decoration:none;font-weight:650}.student-promotion-table th .promotion-heading-label,.student-promotion-table th .promotion-heading-year{display:block}.student-promotion-table th .promotion-heading-year{margin-top:3px;color:var(--color-text-muted);font-size:.72rem;font-weight:600}.student-promotion-table .student-promotion-name:hover{text-decoration:underline}@media(max-width:1100px){.student-group-overview{grid-template-columns:1fr}}@media(max-width:760px){.student-group-overview__card--activity{grid-template-columns:1fr}.student-group-overview__stats,.student-group-overview__schedule{grid-column:auto;grid-template-columns:1fr}.student-group-overview__stats{display:grid;grid-template-columns:repeat(3,1fr)}.student-context-toolbar{align-items:stretch;flex-direction:column;gap:12px;overflow-x:visible}.student-context-toolbar>div:first-child,.student-context-toolbar>.inline-actions{width:100%;min-width:0;flex-wrap:wrap}.student-context-toolbar .field,.student-context-toolbar .field:has([data-student-group-switch]){width:100%;min-width:0}.student-context-toolbar .inline-actions{gap:8px}.student-context-toolbar .inline-actions .button{max-width:100%;white-space:normal}.student-context-toolbar .inline-actions .button,.student-primary-actions .inline-actions .button{flex:1 1 100%;width:100%;min-width:0}.student-primary-actions{justify-items:stretch}.student-primary-actions-row{justify-content:stretch}.student-primary-actions .inline-actions{justify-content:flex-start}.students-page-tools,.student-enroll-tools,.teacher-student-gallery__tools{grid-template-columns:1fr}.students-page-tools>.chip{justify-self:stretch}.student-context-toolbar>div:first-child{display:flex}.student-card__primary{grid-template-columns:62px minmax(0,1fr)}.student-card__primary .student-avatar--zoom{width:62px;height:62px}.student-contact-card dl,.subject-management-tools{grid-template-columns:1fr}.subject-management-footer{align-items:flex-start;flex-direction:column}.subject-management-footer{display:flex}.subject-management-pagination{margin-left:0}}.student-insights{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}.student-insights article{display:grid;gap:4px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-soft);padding:10px 12px}.student-insights span,.student-insights small{overflow:hidden;color:var(--color-muted);font-size:12px;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.student-insights strong{overflow:hidden;font-size:18px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.student-mini-meter{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:8px;color:var(--color-muted);font-size:12px;font-weight:800}.student-mini-meter span{height:7px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border),transparent 30%)}.student-mini-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--color-info),var(--color-success))}.teacher-files-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}@media(min-width:761px)and (max-width:980px){.student-context-toolbar{flex-wrap:wrap}.student-context-toolbar>div:first-child,.student-context-toolbar>.inline-actions{min-width:0;flex-wrap:wrap}.student-context-toolbar .field:has([data-student-group-switch]){width:min(280px,42vw);min-width:0}.student-context-toolbar .inline-actions .button{max-width:100%;white-space:normal}}.teacher-files-card,.teacher-files-upload,.teacher-files-relations article,.teacher-files-list article{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.teacher-files-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;padding:18px}.teacher-files-card__icon{display:grid;place-items:center;width:44px;height:44px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-primary),transparent 86%);color:var(--color-primary)}.teacher-files-card--success .teacher-files-card__icon{background:color-mix(in srgb,var(--color-success),transparent 84%);color:var(--color-success)}.teacher-files-card--warning .teacher-files-card__icon{background:color-mix(in srgb,var(--color-warning),transparent 84%);color:var(--color-warning)}.teacher-files-card strong,.teacher-files-relations strong,.teacher-files-list strong{display:block;color:var(--color-text);font-size:15px}.teacher-files-card p{margin:5px 0 12px;color:var(--color-muted)}.teacher-files-upload{width:100%;padding:12px}.teacher-files-dropzone{display:grid;min-height:210px;place-items:center;align-content:center;gap:8px;border:2px dashed color-mix(in srgb,var(--color-primary),transparent 45%);border-radius:var(--radius-card);background:color-mix(in srgb,var(--color-primary),transparent 95%);padding:22px;text-align:center}.teacher-files-dropzone.is-dragging{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary),transparent 88%);box-shadow:0 0 0 4px color-mix(in srgb,var(--color-primary),transparent 88%)}.teacher-files-upload.is-disabled .teacher-files-dropzone{border-color:color-mix(in srgb,var(--color-warning),transparent 35%);background:color-mix(in srgb,var(--color-warning),transparent 92%)}.teacher-files-input{display:none}.teacher-files-dropzone p,.teacher-files-dropzone small{margin:0;color:var(--color-muted)}.teacher-files-relations{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.teacher-files-selection{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}.teacher-files-selection article{display:grid;gap:16px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:linear-gradient(145deg,var(--color-surface),var(--color-surface-soft));padding:18px;box-shadow:0 10px 26px color-mix(in srgb,var(--color-text),transparent 94%)}.teacher-files-selection header{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px}.teacher-files-selection header span{color:var(--color-muted);font-size:12px;font-weight:750}.teacher-files-selection header>div:first-child{display:grid;gap:4px}.teacher-files-selection__title{display:flex;align-items:center;gap:8px;min-width:0}.teacher-files-selection__title strong{min-width:0}.teacher-files-selection__icon{display:inline-grid;width:32px;height:32px;flex:0 0 32px;place-items:center;border-radius:10px;background:color-mix(in srgb,var(--color-primary),transparent 87%);color:var(--color-primary)}.teacher-files-selection__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.teacher-files-checks{display:grid;max-height:220px;overflow:auto;gap:8px;padding:2px 4px 2px 2px}.teacher-files-check{margin:0;display:flex;align-items:center;gap:10px;min-height:42px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);padding:9px 11px;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease}.teacher-files-check:hover{border-color:color-mix(in srgb,var(--color-primary),transparent 35%);background:color-mix(in srgb,var(--color-primary),transparent 94%);transform:translateY(-1px)}.teacher-files-check:has(input:checked){border-color:color-mix(in srgb,var(--color-primary),transparent 25%);background:color-mix(in srgb,var(--color-primary),transparent 88%);box-shadow:0 5px 14px color-mix(in srgb,var(--color-primary),transparent 88%)}.teacher-files-check span{min-width:0;overflow-wrap:anywhere}.teacher-files-selection__actions{align-items:center}.teacher-files-relations article{display:grid;gap:12px;padding:16px}.teacher-files-relations header{display:flex;align-items:center;gap:9px}.chip-list{display:flex;flex-wrap:wrap;gap:7px}.teacher-files-list,.teacher-files-list__items{display:grid;gap:10px}.teacher-files-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}.teacher-files-list__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.teacher-files-list article p{display:flex;flex-wrap:wrap;gap:6px;margin:7px 0 0}.teacher-files-list small{color:var(--color-muted)}.teacher-files-alert{display:grid;gap:4px;border:1px solid color-mix(in srgb,var(--color-danger),transparent 58%);border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-danger),transparent 92%);color:var(--color-danger);padding:10px 12px}.teacher-files-alert p{margin:0;font-size:13px;font-weight:750}.teacher-files-list article>.teacher-files-file-number{flex:0 0 2rem;text-align:center}.teacher-files-list article>.teacher-files-file-number+div{flex:1 1 auto;min-width:0;margin-left:0}.teacher-files-prepared-list>.teacher-files-alert{margin-top:1rem}.attendance-capture-wrap{overflow:auto}.attendance-capture-table th,.attendance-capture-table td{white-space:nowrap}.attendance-cell-select{min-width:54px;padding-inline:8px}.final-test-capture-wrap{overflow:auto}.final-test-capture-table th,.final-test-capture-table td{white-space:nowrap}.final-test-capture-table small{display:block;color:var(--color-muted)}.final-test-input{width:82px}.student-report-pages{display:grid;gap:18px}.report-print-toolbar{position:sticky;top:12px;z-index:4;display:flex;justify-content:flex-end;padding:8px 0}.student-report-group{display:grid;gap:12px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:16px;box-shadow:var(--shadow-card)}.student-report-group header{display:flex;align-items:center;justify-content:space-between;gap:12px}.student-report-group h3{margin:0}.student-report-table small{display:block;color:var(--color-muted);margin-top:3px}.student-report-table--data th,.student-report-table--data td{vertical-align:top}.confirm-dialog-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:color-mix(in srgb,var(--color-text) 24%,transparent);padding:18px}.confirm-dialog{display:grid;gap:18px;width:min(440px,100%);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:20px;box-shadow:var(--shadow-card)}.confirm-dialog h2{margin:4px 0 0;font-size:1rem;line-height:1.35}.confirm-dialog__actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.school-years-page{--sy-card-radius: 18px;min-width:0;max-width:100%;overflow:clip}.school-year-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px}.school-year-toolbar>div{display:grid;gap:4px}.school-year-toolbar strong{color:var(--color-muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.school-year-toolbar span{color:var(--color-text);font-size:1.5rem;font-weight:850}.school-year-select{min-width:min(280px,100%);margin:0}.school-year-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:18px;min-width:0;width:100%;max-width:100%}.school-year-actions-panel{box-sizing:border-box;width:100%;max-width:100%;min-width:0;overflow:hidden;background:#fff;padding:20px}[data-theme=dark] .school-year-actions-panel{background:var(--color-surface)}.school-year-action-card{position:relative;isolation:isolate;min-height:152px;overflow:hidden;border:1px solid color-mix(in srgb,var(--sy-color),transparent 62%);border-radius:var(--sy-card-radius);background:linear-gradient(135deg,color-mix(in srgb,var(--sy-color),#fff 8%),color-mix(in srgb,var(--sy-color),#111 6%));color:#fff;text-decoration:none;padding:20px;box-shadow:0 18px 38px color-mix(in srgb,var(--sy-color),transparent 72%);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;box-sizing:border-box;min-width:0;width:100%;max-width:100%}.school-year-action-card:before{content:"";position:absolute;right:-34px;bottom:-42px;z-index:-1;width:138px;aspect-ratio:1;border-radius:999px;background:#ffffff2e}.school-year-action-card:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(140deg,rgb(255 255 255 / .16),transparent 48%)}.school-year-action-card:hover{transform:translateY(-4px);box-shadow:0 24px 52px color-mix(in srgb,var(--sy-color),transparent 62%);filter:saturate(1.05);text-decoration:none}.school-year-action-card:focus-visible{text-decoration:none}.school-year-action-card>span{display:grid;place-items:center;width:46px;height:46px;border-radius:16px;background:#fff3;margin-bottom:16px}.school-year-action-card svg{width:25px;height:25px}.school-year-action-card strong{display:block;font-size:1.04rem;line-height:1.25}.school-year-action-card small{display:block;margin-top:7px;color:#ffffffdb;font-weight:750}.school-year-modal{position:fixed;inset:0;z-index:92;display:grid;place-items:center;background:color-mix(in srgb,var(--color-text) 28%,transparent);padding:18px}.school-year-modal[hidden]{display:none}.school-year-modal__dialog{display:grid;grid-template-rows:auto minmax(0,1fr) auto;width:min(1120px,100%);max-height:min(88vh,860px);overflow:hidden;border:1px solid var(--color-border);border-radius:20px;background:var(--color-surface);box-shadow:0 32px 80px #0f172a47}.school-year-modal__dialog>header{display:flex;align-items:center;gap:12px;padding:16px 18px;background:linear-gradient(135deg,color-mix(in srgb,var(--sy-color),transparent 5%),color-mix(in srgb,var(--sy-color),#111 14%));color:#fff}.school-year-modal__dialog>header>span{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:#fff3}.school-year-modal__dialog h3{flex:1;margin:0;font-size:1.05rem}.school-year-modal__dialog>header .button{color:#fff}.school-year-modal__body{overflow:auto;padding:18px}.school-year-modal__dialog>footer,.school-year-group-selector>footer{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;border-top:1px solid var(--color-border);padding:14px 18px}.school-year-config-grid,.school-year-stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.school-year-config-grid article,.school-year-stat-tiles article{display:grid;gap:7px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:color-mix(in srgb,var(--color-surface),var(--color-bg) 18%);padding:14px}.school-year-config-grid article>span,.school-year-stat-tiles article>span{color:var(--color-primary)}.school-year-config-grid small,.school-year-stat-tiles small{color:var(--color-muted);font-weight:750}.school-year-config-grid strong,.school-year-stat-tiles strong{font-size:1.05rem}.school-year-config-form{display:grid;gap:16px}.school-year-config-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px}.school-year-config-card{display:grid;align-content:start;gap:14px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:color-mix(in srgb,var(--color-surface),var(--color-bg) 10%);padding:16px;box-shadow:0 6px 18px #0f172a0f}.school-year-config-card--full{grid-column:1 / -1}.school-year-config-card>header{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--color-border);padding-bottom:10px}.school-year-config-card__action-header strong{flex:1}.school-year-config-card__action-header .button{flex:0 0 auto}.school-year-config-card>header span{color:var(--color-primary)}.school-year-rule-version{display:grid;grid-template-columns:auto minmax(10rem,1fr) minmax(12rem,18rem);align-items:center;gap:.75rem;margin:0 0 1rem;padding:.8rem .9rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface-muted, var(--color-surface))}.school-year-rule-version>div{display:grid;gap:.2rem}.school-year-rule-version span{color:var(--color-muted);font-size:.78rem}.school-year-rule-version strong{color:var(--color-text)}.school-year-rule-confirm{grid-column:2 / -1;display:flex;align-items:flex-start;gap:.55rem;color:var(--color-text)}.school-year-rule-confirm[hidden]{display:none}@media(max-width:720px){.school-year-rule-version{grid-template-columns:auto 1fr}.school-year-rule-version .input,.school-year-rule-confirm{grid-column:1 / -1}}.school-year-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.school-year-form-grid--single{grid-template-columns:1fr}.school-year-config-field{min-width:0;margin:0}.school-year-input-icon{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:stretch}.school-year-input-icon>span{display:grid;place-items:center;border:1px solid var(--color-border);border-right:0;border-radius:var(--radius-control) 0 0 var(--radius-control);background:color-mix(in srgb,var(--color-primary),transparent 90%);color:var(--color-primary)}.school-year-input-icon .input{border-radius:0 var(--radius-control) var(--radius-control) 0}.school-year-period-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;min-width:0}.school-year-period-box{display:grid;gap:10px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);padding:12px;min-width:0}.school-year-period-box>header{display:flex;align-items:center;justify-content:space-between;gap:8px}.school-year-period-box>header .button{color:var(--color-danger)}.school-year-period-box h4,.school-year-lock-layout h4,.school-year-outcome-locks h4{margin:0;font-size:.9rem}.school-year-period-box>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.school-year-period-box label,.school-year-lock-grid label,.school-year-outcome-locks label{display:flex;align-items:center;gap:7px;border:1px solid var(--color-border);border-radius:9px;background:color-mix(in srgb,var(--color-surface),var(--color-bg) 12%);padding:7px 8px;font-size:12px;font-weight:750}.school-year-period-box input,.school-year-lock-grid input,.school-year-outcome-locks input{accent-color:var(--color-primary)}.school-year-period-box label.is-disabled{cursor:not-allowed;opacity:.58;background:color-mix(in srgb,var(--color-muted),var(--color-surface) 88%)}.school-year-lock-layout{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.school-year-lock-layout section{display:grid;gap:9px}.school-year-lock-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:8px}.school-year-outcome-locks{display:grid;gap:10px;margin-top:8px}.school-year-outcome-locks>div{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}.school-year-outcome-locks article{display:grid;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);padding:10px}.school-year-outcome-locks article>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(38px,1fr));gap:5px}.grade-lock-manager{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);gap:18px;min-width:0}.grade-lock-composer,.grade-lock-stack{display:grid;align-content:start;gap:14px;min-width:0}.grade-lock-composer{border-right:1px solid var(--color-border);padding-right:18px}.grade-lock-option-groups{min-width:0}.grade-lock-options{display:grid;gap:11px;min-width:0}.grade-lock-options[hidden]{display:none}.grade-lock-options>header,.grade-lock-stack>header{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:3px 10px}.grade-lock-options>header>span,.grade-lock-stack>header>span{grid-row:span 2;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary)}.grade-lock-options>header small,.grade-lock-stack>header small{color:var(--color-muted)}.grade-lock-options--year{grid-template-columns:auto minmax(0,1fr);align-items:center;border-left:4px solid var(--color-danger);border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-danger),transparent 93%);padding:15px}.grade-lock-options--year>span{color:var(--color-danger)}.grade-lock-options--year p,.grade-lock-rule p,.grade-lock-empty-state p{margin:3px 0 0;color:var(--color-muted)}.grade-lock-option-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px;max-height:250px;overflow:auto;padding:2px 4px 2px 0}.grade-lock-option-grid label{display:flex;align-items:center;gap:9px;min-width:0;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);padding:9px 10px;font-size:13px;font-weight:750;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}.grade-lock-option-grid label:hover{border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary),transparent 94%);transform:translateY(-1px)}.grade-lock-option-grid label span{min-width:0;overflow-wrap:anywhere}.grade-lock-option-grid input{flex:0 0 auto;accent-color:var(--color-primary)}.grade-lock-option-grid.grade-lock-ra-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:start}.grade-lock-ra-option{display:grid;grid-template-columns:42px minmax(0,1fr);align-items:center;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);padding:8px}.grade-lock-ra-option>strong{color:var(--color-primary);font-size:13px}.grade-lock-ra-option>div{display:grid;grid-template-columns:repeat(4,minmax(30px,1fr));gap:5px}.grade-lock-ra-option>div>label{justify-content:center;gap:5px;padding:6px 4px;font-size:12px}.grade-lock-composer__footer{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.grade-lock-feedback{flex:1 1 220px;color:var(--color-danger);font-size:13px;font-weight:750}.grade-lock-rule-list{display:grid;gap:9px;max-height:390px;overflow:auto;padding-right:4px}.grade-lock-rule{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius-control);background:var(--color-surface);padding:11px 12px;box-shadow:0 5px 14px #0f172a0d}.grade-lock-rule__icon{display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary)}.grade-lock-rule .button{color:var(--color-danger)}.grade-lock-empty,.grade-lock-empty-state{color:var(--color-muted);font-size:13px}.grade-lock-empty-state{display:grid;justify-items:center;gap:8px;border:1px dashed var(--color-border);border-radius:var(--radius-control);padding:24px 16px;text-align:center}.grade-lock-empty-state>span{color:var(--color-success)}.school-year-config-alert{border:1px solid var(--color-border);border-radius:var(--radius-control);padding:10px 12px;font-weight:800}.school-year-config-alert--info{border-color:color-mix(in srgb,var(--color-info),transparent 65%);background:color-mix(in srgb,var(--color-info),transparent 90%);color:var(--color-info)}.school-year-config-alert--success{border-color:color-mix(in srgb,var(--color-success),transparent 65%);background:color-mix(in srgb,var(--color-success),transparent 88%);color:var(--color-success)}.school-year-config-alert--error{border-color:color-mix(in srgb,var(--color-danger),transparent 65%);background:color-mix(in srgb,var(--color-danger),transparent 90%);color:var(--color-danger)}.school-year-config-actions{grid-column:1 / -1}.school-year-stats{display:grid;gap:16px}.school-year-stat-tiles{grid-template-columns:repeat(6,minmax(0,1fr))}.school-year-stat-tiles article{position:relative;border-left:4px solid var(--stat-color, var(--color-primary));background:var(--color-surface);box-shadow:0 3px 14px #141e3c12}.school-year-stat-tiles article>span{color:var(--stat-color, var(--color-primary))}.school-year-stat-tiles article>strong{font-size:1.5rem;line-height:1}.school-year-stats-charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.school-year-stats-chart-card,.school-year-stats-table-card{min-width:0;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:0 3px 14px #141e3c0f}.school-year-stats-chart-card>header,.school-year-stats-table-card>header{display:flex;align-items:center;gap:9px;border-bottom:1px solid var(--color-border);padding:11px 13px;color:var(--color-text)}.school-year-stats-chart-card>header>span,.school-year-stats-table-card>header>span{color:var(--color-primary)}.school-year-stats-chart-body{display:flex;align-items:center;gap:14px;padding:14px}.school-year-pie-wrap{position:relative;flex:0 0 120px;width:120px;height:120px}.school-year-pie{width:120px;height:120px;border-radius:50%;box-shadow:inset 0 0 0 13px #ffffff8c,0 8px 18px #141e3c1a;transition:transform .18s ease,filter .18s ease}.school-year-pie-wrap:hover .school-year-pie{transform:scale(1.05) rotate(4deg);filter:saturate(1.12)}.school-year-pie-center{position:absolute;inset:32px;display:grid;place-content:center;border-radius:50%;background:var(--color-surface);box-shadow:0 2px 8px #141e3c1f;color:var(--color-muted);text-align:center;font-size:11px;font-weight:700}.school-year-pie-center strong{color:var(--color-text);font-size:1.15rem;line-height:1}.school-year-pie-legend{display:grid;flex:1;gap:6px;min-width:0}.school-year-pie-legend>div{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-surface),var(--color-bg) 12%);padding:6px 8px;font-size:12px}.school-year-pie-legend span{display:inline-flex;align-items:center;min-width:0;gap:6px}.school-year-pie-legend i{flex:0 0 11px;width:11px;height:11px;border-radius:50%;background:var(--legend-color)}.school-year-pie-legend b{white-space:nowrap}.school-year-stats-tables{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.school-year-stats-table{width:100%;border-collapse:collapse;table-layout:fixed}.school-year-stats-table th,.school-year-stats-table td{border:1px solid var(--color-border);padding:7px 5px;text-align:center;font-size:11px;line-height:1.2;overflow-wrap:anywhere}.school-year-stats-table th:first-child,.school-year-stats-table td:first-child{width:30%;text-align:left}.school-year-stats-table thead th[style]{background:var(--column-color);color:#fff}.school-year-stats-table tbody tr:nth-child(2n){background:color-mix(in srgb,var(--color-bg),transparent 38%)}.school-year-stats-table tbody a{color:var(--color-primary);font-weight:750;text-decoration:none}.school-year-stats-table tbody a:hover{color:var(--color-primary-strong)}.school-year-stats-table tfoot{background:color-mix(in srgb,var(--color-primary),transparent 92%);font-weight:800}.school-year-table-wrap{overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-card)}.school-year-student-tools+.school-year-table-wrap{margin-top:14px}.school-year-table-wrap .data-table{margin:0}@media(max-width:1080px){.school-year-stat-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}.school-year-stats-charts,.school-year-stats-tables{grid-template-columns:1fr}}@media(max-width:620px){.school-year-stat-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.school-year-stats-chart-body{align-items:stretch;flex-direction:column}.school-year-pie-wrap{align-self:center}}.school-year-option-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.school-year-option{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;align-items:center;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);padding:16px;box-shadow:var(--shadow-card);text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.school-year-option:hover{transform:translateY(-3px);border-color:var(--color-primary);box-shadow:0 18px 36px #0f172a1f;text-decoration:none}.school-year-option:focus-visible{text-decoration:none}.school-year-option>span{grid-row:span 2;display:grid;place-items:center;width:42px;height:42px;border-radius:14px;background:color-mix(in srgb,var(--color-primary),transparent 86%);color:var(--color-primary)}.school-year-option small{color:var(--color-muted)}.school-year-group-selector{display:grid;gap:14px}.school-year-selector-head,.school-year-student-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.school-year-selector-head span{border-radius:999px;background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary);padding:8px 12px;font-weight:850}.school-year-group-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px;max-height:360px;overflow:auto;padding-right:4px}.school-year-group-list label{display:flex;align-items:center;gap:9px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-surface),var(--color-bg) 14%);padding:10px 12px;font-weight:750;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background-color .16s ease,box-shadow .16s ease}.school-year-group-list label:hover{z-index:1;transform:translateY(-3px);border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary),var(--color-surface) 94%);box-shadow:0 10px 22px #0f172a24}.school-year-group-list label:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary),transparent 82%)}.school-year-group-list label:has(input:checked){border-color:color-mix(in srgb,var(--color-primary),var(--color-border) 35%);background:color-mix(in srgb,var(--color-primary),var(--color-surface) 91%)}.school-year-group-list input{width:16px;height:16px;accent-color:var(--color-primary)}.school-year-student-tools .input[type=search]{flex:1 1 260px}.school-year-student-tools select{flex:0 1 210px}.school-year-student-tools [data-school-year-page-size]{flex-basis:110px}.school-year-student-photo{display:block;width:42px;min-width:42px;max-width:none;height:42px;aspect-ratio:1;border-radius:50%;object-fit:cover;object-position:center;flex:0 0 42px;border:2px solid var(--color-border);transition:transform .16s ease,box-shadow .16s ease}.school-year-student-photo:hover{position:relative;z-index:4;transform:scale(1.8);box-shadow:0 10px 24px #0f172a38}.school-year-student-table th,.school-year-student-table td{white-space:nowrap}.school-year-student-table th:last-child,.school-year-student-table td:last-child{text-align:left}.school-year-current-group-link{display:inline-flex;align-items:center;gap:6px;border:1px solid color-mix(in srgb,var(--color-primary),transparent 68%);border-radius:999px;background:color-mix(in srgb,var(--color-primary),var(--color-surface) 91%);color:var(--color-primary);padding:5px 9px;font-weight:750;transition:transform .14s ease,border-color .14s ease,background-color .14s ease,box-shadow .14s ease}.school-year-current-group-link:hover,.school-year-current-group-link:focus-visible{transform:translateY(-1px);border-color:var(--color-primary);background:color-mix(in srgb,var(--color-primary),var(--color-surface) 84%);color:var(--color-primary-strong);box-shadow:0 5px 12px #0f172a1f}.school-year-sex-icon{width:22px;height:22px;stroke-width:2.35}.school-year-sex-icon--male{color:#1976d2}.school-year-sex-icon--female{color:#d63384}.school-year-sex-icon--unknown{color:var(--color-muted)}.school-year-student-table th>button{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:inherit;padding:0;font:inherit;font-weight:800;cursor:pointer}.school-year-student-table th>button.is-active{color:var(--color-primary)}.school-year-student-table th>button[data-sort-direction=desc] .school-year-sort-icon{transform:rotate(180deg)}.school-year-student-paging{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-muted);font-size:.85rem;margin-top:14px}.school-year-student-paging>div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px}@media(max-width:760px){.student-insights,.teacher-files-layout,.teacher-files-selection,.teacher-files-relations{grid-template-columns:1fr}.school-year-toolbar{align-items:stretch;flex-direction:column}.school-year-config-layout,.school-year-form-grid,.school-year-period-grid,.school-year-lock-layout,.school-year-period-box>div{grid-template-columns:1fr}.grade-lock-manager{grid-template-columns:1fr}.grade-lock-composer{border-right:0;border-bottom:1px solid var(--color-border);padding:0 0 16px}.school-year-modal{padding:10px}.school-year-modal__dialog{max-height:94vh;border-radius:16px}.school-year-modal__body{padding:14px}}@media print{.report-print-toolbar{display:none!important}.student-report-pages{display:block}.student-report-group{break-after:page;box-shadow:none;border-color:#d7dbe2;margin:0 0 12px}.student-report-group:last-child{break-after:auto}}.fct-student-table-viewport{width:100%;min-width:0;max-width:100%}.fct-table-shell{min-width:0;width:100%}.fct-table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.55rem}.fct-table-toolbar>span{display:inline-flex;align-items:center;gap:.4rem;color:var(--color-muted);font-size:.85rem}.fct-viewport-controls{flex:0 0 auto}.fct-table-shell:fullscreen,.students-page:fullscreen,.fct-fullscreen-context:fullscreen{width:100vw;height:100vh;overflow:auto;padding:1rem;background:var(--color-bg)}.fct-table-shell:fullscreen .fct-table-toolbar{position:sticky;top:0;z-index:20;padding-bottom:.55rem;background:var(--color-bg)}.fct-table-scrollbar{width:100%;height:14px;margin-top:8px;overflow-x:scroll;overflow-y:hidden;border:1px solid var(--color-border);border-radius:8px;background:color-mix(in srgb,var(--color-primary) 10%,var(--color-surface));scrollbar-width:auto;scrollbar-color:var(--color-primary) color-mix(in srgb,var(--color-primary) 12%,var(--color-surface))}.fct-table-scrollbar>div{height:1px;min-width:100%}.fct-table-scrollbar::-webkit-scrollbar{height:12px}.fct-table-scrollbar::-webkit-scrollbar-track{background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface))}.fct-table-scrollbar::-webkit-scrollbar-thumb{background:var(--color-primary);border-radius:8px}.fct-student-table-scroll{width:100%;overflow-x:auto;overscroll-behavior-x:contain}.students-roster,.students-roster .content-panel,.students-roster .fct-student-table-scroll{min-width:0}.students-roster .fct-student-table-scroll{width:0;min-width:100%;max-width:100%;contain:inline-size}.students-roster .fct-student-table-scroll{display:block;width:100%;min-width:0;max-width:100%;overflow-x:auto!important;overflow-y:visible;scrollbar-width:auto;scrollbar-color:var(--color-primary) color-mix(in srgb,var(--color-primary) 14%,var(--color-surface));scrollbar-gutter:stable}.students-roster .fct-student-table-scroll::-webkit-scrollbar{height:12px}.students-roster .fct-student-table-scroll::-webkit-scrollbar-track{background:color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));border-radius:8px}.students-roster .fct-student-table-scroll::-webkit-scrollbar-thumb{background:var(--color-primary);border:2px solid color-mix(in srgb,var(--color-primary) 12%,var(--color-surface));border-radius:8px}.fct-student-table{display:table;width:max-content;min-width:1420px;max-width:none;table-layout:auto}.fct-student-table{zoom:var(--grade-table-zoom, 1);transform-origin:top left}.fct-student-table th,.fct-student-table td{vertical-align:middle;white-space:normal}.fct-student-table th{position:sticky;top:0;z-index:3}.fct-student-table td:nth-child(1),.fct-student-table th:nth-child(1){width:56px;text-align:center}.fct-student-table td:nth-child(2),.fct-student-table th:nth-child(2){width:76px}.fct-student-table td:nth-child(3),.fct-student-table th:nth-child(3){min-width:210px}.fct-student-table td:nth-child(4),.fct-student-table th:nth-child(4),.fct-student-table td:nth-child(5),.fct-student-table th:nth-child(5){width:78px;white-space:nowrap}.fct-student-table td:nth-child(7),.fct-student-table th:nth-child(7){width:170px;min-width:170px;max-width:170px}.fct-student-table td:nth-child(8),.fct-student-table th:nth-child(8){width:125px;min-width:125px;white-space:nowrap}.fct-student-table td:nth-child(12),.fct-student-table th:nth-child(12){width:300px;min-width:300px;max-width:300px}.fct-student-table td:nth-child(7) a,.fct-student-table td:nth-child(12){overflow-wrap:anywhere}.fct-student-table .company-link img{width:34px;height:34px;object-fit:contain;border-radius:6px;flex:0 0 auto}.fct-student-table .table-actions{display:inline-flex;align-items:center;gap:.35rem;white-space:nowrap}.fct-company-status-button{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid currentColor;border-radius:8px;background:transparent;cursor:pointer}.fct-company-status-button.is-linked{color:#15803d;background:color-mix(in srgb,#22c55e 14%,var(--color-surface))}.fct-company-status-button.is-unlinked{color:#b45309;background:color-mix(in srgb,#f59e0b 14%,var(--color-surface))}.fct-company-status-button:hover{transform:translateY(-1px);box-shadow:var(--shadow-card)}.company-link-form{display:flex;align-items:end;gap:.65rem;margin-top:1rem;padding:.9rem;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface-muted)}.company-link-form label{display:block;flex:1;font-weight:700}.company-link-form select{min-width:220px}.company-link-dialog{width:min(560px,calc(100vw - 2rem))}.company-link-student{display:flex;align-items:center;gap:.85rem;padding:.85rem;margin-bottom:1rem;border:1px solid var(--color-border);border-radius:10px;background:color-mix(in srgb,var(--color-primary) 7%,var(--color-surface))}.company-link-student img{width:58px;height:58px;border-radius:50%;object-fit:cover;border:2px solid var(--color-primary)}.company-link-student strong,.company-link-student span{display:block}.company-link-student span{color:var(--color-muted);font-size:.82rem;margin-top:.2rem}.company-link-dialog .field{display:grid;gap:.4rem}.company-link-dialog .field-label{display:flex;align-items:center;gap:.4rem;font-weight:700}.company-link-preview{display:flex;align-items:center;gap:.8rem;min-height:78px;padding:.8rem;margin-top:1rem;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface-muted)}.company-link-preview img{width:54px;height:54px;object-fit:contain;border-radius:8px;background:var(--color-surface)}.company-link-preview small,.company-link-preview strong{display:block}.company-link-preview small{color:var(--color-muted)}.company-link-dialog [data-fct-company-link-feedback]{margin:1rem 1.2rem 0}.fct-student-table .company-link{display:inline-flex;align-items:center;gap:.45rem;max-width:220px;border:0;background:transparent;color:var(--color-text);padding:.25rem;text-align:left;cursor:pointer}.fct-student-table .company-link:hover{color:var(--color-primary);transform:translateY(-1px)}.fct-student-table .table-sort-button{display:inline-flex;align-items:center;justify-content:flex-start;gap:.35rem;width:100%;min-height:32px;padding:.2rem .25rem;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer}.fct-student-table .table-sort-button:hover{color:var(--color-primary)}.fct-student-table .table-sort-indicator{display:inline-flex;margin-left:auto;opacity:.65}.fct-student-table td a{color:var(--color-primary);text-decoration:none}.company-detail-dialog{width:min(720px,calc(100vw - 2rem))}.company-modal-hero{display:flex;align-items:center;gap:1rem;padding:.25rem 0 1rem;border-bottom:1px solid var(--color-border)}.company-modal-hero{padding:1rem;border-radius:10px;background:linear-gradient(135deg,color-mix(in srgb,var(--color-primary) 14%,var(--color-surface)),var(--color-surface))}.company-modal-logos{display:flex;align-items:center;gap:.5rem}.company-modal-hero img{width:72px;height:72px;object-fit:contain;border-radius:10px;background:var(--color-surface-muted)}.company-modal-hero img+img{width:62px;height:62px;border-radius:50%;object-fit:cover;border:3px solid var(--color-primary)}.company-modal-hero strong,.company-modal-hero span{display:block}.company-modal-hero span{color:var(--color-muted);margin-top:.2rem}.company-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;padding-top:1rem}.company-info-grid>div{padding:.75rem;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:8px}.company-info-grid b,.company-info-grid span{display:block}.company-info-grid b{display:flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--color-muted);margin-bottom:.25rem}.company-info-grid b .ui-icon{color:var(--color-primary)}.company-info-grid a{color:var(--color-primary);text-decoration:none}.company-info-item--wide{grid-column:1 / -1}.company-whatsapp{display:inline-flex;margin-left:.45rem;color:#16a34a!important;vertical-align:middle}.fct-phone-cell{display:inline-flex;align-items:center;white-space:nowrap}@media(max-width:680px){.company-info-grid{grid-template-columns:1fr}}.confirm-dialog-backdrop{z-index:1400}.fct-student-table{border-collapse:separate;border-spacing:0}.fct-student-table th,.fct-student-table td{border-right:1px solid var(--color-border);border-bottom:1px solid var(--color-border)}.fct-student-table thead th{color:#17324d;font-weight:700}.fct-student-table thead th:nth-child(-n+3){background:#dcecf8}.fct-student-table thead th:nth-child(n+4):nth-child(-n+5){background:#e8f3e8}.fct-student-table thead th:nth-child(n+6):nth-child(-n+7){background:#fff1d6}.fct-student-table thead th:nth-child(n+8):nth-child(-n+10){background:#f1e7f8}.fct-student-table thead th:nth-child(11){background:#e7edf2}.fct-student-table tbody td:nth-child(4),.fct-student-table tbody td:nth-child(5){background:color-mix(in srgb,#e8f3e8 42%,var(--color-surface))}.fct-student-table tbody td:nth-child(6),.fct-student-table tbody td:nth-child(7){background:color-mix(in srgb,#fff1d6 42%,var(--color-surface))}.fct-student-table tbody td:nth-child(8),.fct-student-table tbody td:nth-child(9),.fct-student-table tbody td:nth-child(10){background:color-mix(in srgb,#f1e7f8 42%,var(--color-surface))}.fct-student-table th:nth-child(1),.fct-student-table td:nth-child(1),.fct-student-table th:nth-child(2),.fct-student-table td:nth-child(2),.fct-student-table th:nth-child(3),.fct-student-table td:nth-child(3){position:sticky;z-index:4}.fct-student-table thead th:nth-child(1),.fct-student-table tbody td:nth-child(1){left:0;min-width:56px;background:#dcecf8}.fct-student-table thead th:nth-child(2),.fct-student-table tbody td:nth-child(2){left:56px;min-width:76px;background:#dcecf8}.fct-student-table thead th:nth-child(3),.fct-student-table tbody td:nth-child(3){left:132px;min-width:210px;background:#dcecf8}.fct-student-table th:nth-child(3),.fct-student-table td:nth-child(3){box-shadow:8px 0 12px -10px #0f2b43bf}.fct-student-table tbody tr:hover td:nth-child(-n+3){background:#c8e2f2}.fct-student-table .student-table-avatar{display:inline-flex;width:46px;height:46px;flex:0 0 46px;overflow:visible;vertical-align:middle}.fct-student-table .student-table-avatar img{display:block;width:46px!important;height:46px!important;min-width:46px;max-width:46px;aspect-ratio:1 / 1;object-fit:cover;border-radius:50%!important}.fct-student-table td:has(.student-table-avatar){overflow:visible}.fct-student-table tbody td:nth-child(2){position:sticky;left:56px;z-index:4}.fct-student-table .student-table-avatar img{position:relative;z-index:6;transition:transform .16s ease,box-shadow .16s ease;transform-origin:center}.fct-student-table .student-table-avatar:hover img,.fct-student-table .student-table-avatar:focus-visible img{transform:scale(2.1);z-index:20;box-shadow:0 10px 24px #0f172a40}.fct-student-table tbody tr:hover td:has(.student-table-avatar){z-index:12}.fct-student-table .company-link span{overflow-wrap:anywhere}[data-theme=dark] .fct-student-table thead th,[data-theme=dark] .fct-student-table tbody td:nth-child(-n+3){color:#edf6ff;background:#20384b}[data-theme=dark] .fct-student-table tbody td:nth-child(4),[data-theme=dark] .fct-student-table tbody td:nth-child(5){background:#1f332a}[data-theme=dark] .fct-student-table tbody td:nth-child(6),[data-theme=dark] .fct-student-table tbody td:nth-child(7){background:#3b3120}[data-theme=dark] .fct-student-table tbody td:nth-child(8),[data-theme=dark] .fct-student-table tbody td:nth-child(9),[data-theme=dark] .fct-student-table tbody td:nth-child(10){background:#30253b}.group-companies-modal,.group-company-detail-modal{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:24px;background:#0f172a8f}.group-company-detail-modal{z-index:1250}.group-companies-modal[hidden],.group-company-detail-modal[hidden]{display:none}.group-companies-dialog,.group-company-detail-dialog{display:flex;flex-direction:column;width:min(980px,100%);max-height:min(860px,calc(100vh - 48px));overflow:hidden;border:1px solid var(--color-border);border-radius:16px;background:var(--color-surface);box-shadow:0 24px 70px #0f172a4d;color:var(--color-text)}.group-company-detail-dialog{width:min(1120px,100%)}.group-companies-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid var(--color-border);background:linear-gradient(110deg,#0f766e,#2563eb);color:#fff}.group-companies-dialog__header .button-ghost{color:#fff}.group-companies-dialog__header .button-ghost:hover,.group-companies-dialog__header .button-ghost:focus-visible{color:#000;background:#fff}.group-companies-dialog__heading{display:flex;align-items:center;min-width:0;gap:12px}.group-companies-dialog__heading>div{display:grid;gap:3px;min-width:0}.group-companies-dialog__heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-companies-dialog__heading small{color:#fffc}.group-companies-dialog__icon{display:inline-grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:10px;background:#ffffff29}.group-companies-dialog__body,.group-company-detail-dialog__body{min-height:180px;overflow:auto;padding:20px}.group-companies-dialog>footer,.group-company-detail-dialog>footer{display:flex;justify-content:flex-end;padding:12px 20px;border-top:1px solid var(--color-border);background:var(--color-surface-muted)}.group-companies-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.group-company-card{display:flex;align-items:center;gap:13px;min-width:0;padding:14px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface);color:var(--color-text);text-align:left;cursor:pointer;box-shadow:0 5px 16px #0f172a0f;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.group-company-card:hover,.group-company-card:focus-visible{transform:translateY(-3px);border-color:#0f766e;box-shadow:0 14px 28px #0f766e2e;outline:none}.group-company-card__logo{width:58px;height:58px;flex:0 0 58px;object-fit:contain;border:1px solid var(--color-border);border-radius:10px;background:#fff}.group-company-card__content{display:grid;min-width:0;gap:5px}.group-company-card__content strong{overflow-wrap:anywhere}.group-company-card__content small{display:inline-flex;align-items:center;gap:5px;color:var(--color-muted)}.group-company-card__arrow{margin-left:auto;color:var(--color-primary)}.group-company-detail{display:grid;gap:18px}.group-company-detail__identity{display:flex;align-items:center;gap:16px;padding:14px;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-muted)}.group-company-detail__identity h3{margin:0 0 8px;font-size:1.2rem}.group-company-detail__address{display:flex;align-items:flex-start;gap:5px;max-width:760px;margin:-2px 0 8px;color:var(--color-muted);font-size:.88rem;line-height:1.35;text-decoration:none}.group-company-detail__address:hover{color:var(--color-primary);text-decoration:underline}.group-company-detail__address svg{flex:0 0 auto;margin-top:2px}.group-company-detail__identity strong{display:inline-flex;align-items:center;gap:6px;color:var(--color-primary)}.group-company-detail__logo{width:78px;height:78px;flex:0 0 78px;object-fit:contain;border:1px solid var(--color-border);border-radius:12px;background:#fff}.group-company-detail__facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.group-company-fact{display:flex;align-items:flex-start;gap:8px;min-width:0;min-height:58px;padding:9px 10px;border:1px solid var(--color-border);border-radius:10px;background:var(--color-surface);color:var(--color-text);text-decoration:none}.group-company-fact:hover{border-color:var(--color-primary);background:var(--color-surface-muted)}.group-company-fact>svg{flex:0 0 auto;color:var(--color-primary)}.group-company-fact>span{display:grid;min-width:0;gap:4px}.group-company-fact small{color:var(--color-muted)}.group-company-fact strong{overflow-wrap:anywhere}.group-company-phone-value{display:flex!important;align-items:center;gap:7px;min-width:0}.group-company-phone-value strong{white-space:nowrap}.group-company-phone-value .inline-actions{display:inline-flex;flex:0 0 auto;gap:2px}.group-company-fact--wide{grid-column:1 / -1;min-height:48px}.group-company-detail__stat-labels{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px;font-size:.85rem;font-weight:700}.group-company-detail__stat-labels span{display:inline-flex;align-items:center;gap:6px}.group-company-detail__stat-labels span:first-child{color:#2563eb}.group-company-detail__stat-labels span:last-child{color:#db2777}.group-company-sex-bar{display:flex;height:24px;overflow:hidden;border-radius:999px;background:var(--color-surface-muted)}.group-company-sex-bar span{display:grid;place-items:center;min-width:0;color:#fff;font-size:.75rem;font-weight:800;text-shadow:0 1px 2px rgb(0 0 0 / .3)}.group-company-sex-bar .is-male{background:#2563eb}.group-company-sex-bar .is-female{background:#db2777}.group-company-students-scroll{max-width:100%;overflow:auto}.group-company-students{min-width:720px}.group-company-students th:last-child,.group-company-students td:last-child{text-align:left}.group-company-student-photo{width:40px;height:40px;object-fit:cover;border-radius:50%;border:2px solid var(--color-border)}.group-company-student-sex.is-male{color:#2563eb}.group-company-student-sex.is-female{color:#db2777}.group-company-empty{padding:28px 0}@media(max-width:760px){.group-companies-modal,.group-company-detail-modal{padding:10px}.group-companies-dialog,.group-company-detail-dialog{max-height:calc(100vh - 20px)}.group-companies-dialog__body,.group-company-detail-dialog__body{padding:14px}.group-company-detail__facts{grid-template-columns:repeat(2,minmax(0,1fr))}.group-company-fact--wide{grid-column:auto}.group-company-detail__stat-labels{flex-direction:column;gap:5px}}.school-year-create-preview{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 10px;padding:16px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-muted, #f5f7f9)}.school-year-create-preview svg{grid-row:span 2;color:var(--color-primary)}.school-year-create-preview strong{font-size:1.35rem}.school-year-create-preview small{color:var(--color-muted)}@media(max-width:520px){.group-company-detail__facts{grid-template-columns:1fr}.group-company-fact--wide{grid-column:auto}}.group-linking-stats-modal{position:fixed;inset:0;z-index:1400;display:grid;place-items:center;padding:18px;background:#0f172a9e}.group-linking-stats-modal[hidden]{display:none}.group-linking-stats-dialog{width:min(1120px,100%);max-height:min(860px,calc(100vh - 36px));display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid var(--color-border);border-radius:14px;background:var(--color-surface);box-shadow:0 24px 80px #0f172a59}.group-linking-stats-dialog__header{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 20px;color:#fff;background:linear-gradient(110deg,#b45309,#2563eb)}.group-linking-stats-dialog__header .button-ghost{color:#fff}.group-linking-stats-dialog__header .button-ghost:hover,.group-linking-stats-dialog__header .button-ghost:focus-visible{color:#000;background:#fff}.group-linking-stats-dialog__heading{display:flex;align-items:center;gap:12px;min-width:0}.group-linking-stats-dialog__heading>span{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:10px;background:#ffffff29}.group-linking-stats-dialog__heading div{display:grid;gap:3px;min-width:0}.group-linking-stats-dialog__heading strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.group-linking-stats-dialog__heading small{color:#ffffffd1}.group-linking-stats-dialog__body{min-height:0;overflow:auto;padding:20px}.group-linking-stats-dialog>footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 20px;border-top:1px solid var(--color-border);background:var(--color-surface-raised, var(--color-surface))}.group-linking-stats-downloads{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.group-linking-stats-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.group-linking-stats-card{padding:16px;border:1px solid color-mix(in srgb,var(--stats-area-color) 35%,var(--color-border));border-radius:10px;background:linear-gradient(145deg,color-mix(in srgb,var(--stats-area-color) 10%,var(--color-surface)),var(--color-surface));box-shadow:0 6px 18px #0f172a14;transition:transform .18s ease,box-shadow .18s ease}.group-linking-stats-card:hover{transform:translateY(-2px);box-shadow:0 12px 26px #0f172a26}.group-linking-stats-card--total{grid-column:1 / -1;border-color:#16a34a;background:linear-gradient(145deg,rgb(22 163 74 / .12),var(--color-surface))}.group-linking-stats-card__title{display:flex;align-items:center;gap:10px;min-width:0;margin-bottom:12px;color:var(--color-text)}.group-linking-stats-card__title strong{overflow-wrap:anywhere}.group-linking-stats-card__area-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:9px;color:var(--stats-area-color);background:color-mix(in srgb,var(--stats-area-color) 17%,transparent)}.group-linking-stats-card__linked{color:var(--color-muted);font-size:.9rem}.group-linking-stats-progress,.group-linking-stats-sex-bar{display:flex;overflow:hidden;height:24px;margin-top:8px;border-radius:999px;background:color-mix(in srgb,var(--color-border) 55%,transparent)}.group-linking-stats-progress span{display:grid;place-items:center;min-width:34px;color:#fff;font-size:.78rem;font-weight:700;background:linear-gradient(90deg,#16a34a,#0d9488)}.group-linking-stats-sex-labels{display:flex;justify-content:space-between;gap:8px;margin-top:14px;color:var(--color-muted);font-size:.82rem}.group-linking-stats-sex-labels span{display:inline-flex;align-items:center;gap:4px}.group-linking-stats-sex-bar{height:18px}.group-linking-stats-sex-bar span{display:grid;place-items:center;min-width:3px;color:#fff;font-size:.7rem;font-weight:700}.group-linking-stats-sex-bar .is-male{background:#2563eb}.group-linking-stats-sex-bar .is-female{background:#db2777}@media(max-width:640px){.group-linking-stats-modal{padding:8px}.group-linking-stats-dialog{max-height:calc(100vh - 16px)}.group-linking-stats-dialog__body{padding:12px}.group-linking-stats-dialog>footer{align-items:stretch;flex-direction:column;padding:10px 12px}.group-linking-stats-downloads{display:grid;grid-template-columns:1fr}.group-linking-stats-downloads .button{justify-content:center}}.psych-performance-panel{display:grid;gap:16px;margin-top:18px;padding:18px;overflow:visible}.psych-performance-panel__header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.psych-performance-panel__title{display:flex;align-items:center;gap:11px;min-width:0;color:var(--color-primary)}.psych-performance-panel__title>span{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:10px;color:#fff;background:linear-gradient(135deg,#0f766e,#2563eb)}.psych-performance-panel__title p{margin:0 0 3px;color:var(--color-muted);font-size:.75rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.psych-performance-panel__title h3{margin:0;color:var(--color-text);font-size:1.08rem}.psych-performance-panel__stats{display:flex;align-items:stretch;justify-content:flex-end;flex-wrap:wrap;gap:8px}.psych-performance-stat{display:grid;min-width:78px;padding:7px 10px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface-muted);text-align:center}.psych-performance-stat strong{color:var(--color-text);font-size:1.05rem;line-height:1.1}.psych-performance-stat small{color:var(--color-muted);font-size:.72rem}.psych-performance-sex-summary{display:grid;align-content:center;gap:4px;padding:7px 10px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface-muted);font-size:.78rem}.psych-performance-sex-summary span{display:inline-flex;align-items:center;gap:5px}.psych-performance-sex-summary span:first-child{color:#db2777}.psych-performance-sex-summary span:last-child{color:#2563eb}.psych-performance-tools{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:end;gap:12px}.psych-performance-tools .field{margin:0}.psych-performance-page-size{min-width:0}.psych-performance-table-wrap{max-width:100%;overflow-x:auto;overflow-y:visible;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--color-primary) 50%,transparent) transparent;border:1px solid var(--color-border);border-radius:10px}.psych-performance-table-wrap::-webkit-scrollbar{height:5px}.psych-performance-table-wrap::-webkit-scrollbar-track{background:transparent}.psych-performance-table-wrap::-webkit-scrollbar-thumb{border-radius:999px;background:color-mix(in srgb,var(--color-primary) 50%,transparent)}.psych-performance-table{min-width:700px;margin:0}.psych-performance-table th,.psych-performance-table td{vertical-align:middle;white-space:nowrap}.psych-performance-table thead th{background:var(--color-surface-muted);color:var(--color-text)}.psych-performance-table thead th>button{display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:3px 0;border:0;color:inherit;background:transparent;font:inherit;font-weight:750;cursor:pointer}.psych-performance-table thead th>button:hover,.psych-performance-table thead th>button.is-active{color:var(--color-primary)}.psych-performance-table tbody th{min-width:115px;max-width:130px;color:var(--color-text);text-align:left}.psych-performance-table tbody th a{display:block;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.psych-performance-table tbody th a,.psych-performance-table td a{color:inherit;text-decoration:none}.psych-performance-table tbody th a{text-transform:none!important}.psych-performance-table tbody th a:hover,.psych-performance-table td a:hover{color:var(--color-primary)}.psych-performance-table td small{display:block;max-width:250px;overflow:hidden;color:var(--color-muted);text-overflow:ellipsis}.psych-performance-photo{width:48px;text-align:center}.psych-performance-photo__image{display:block;width:40px!important;min-width:40px;height:40px!important;min-height:40px;aspect-ratio:1 / 1;border:2px solid var(--color-border);border-radius:50%!important;object-fit:cover;transition:transform .16s ease,box-shadow .16s ease}.psych-performance-photo__image:hover{position:relative;z-index:30;transform:scale(2.15);box-shadow:0 8px 22px #0f172a47}.psych-performance-sex-cell{width:54px;text-align:center}.psych-performance-sex{display:inline-grid;place-items:center}.psych-performance-sex--male{color:#2563eb}.psych-performance-sex--female{color:#db2777}.psych-performance-sex--unknown{color:var(--color-muted)}.psych-performance-meter{display:block;width:80px;min-width:80px}.psych-performance-meter__track{display:block;position:relative;width:80px;height:18px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--color-border) 62%,transparent)}.psych-performance-meter i{display:flex;align-items:center;justify-content:flex-end;min-width:0;height:100%;overflow:hidden;border-radius:999px;background:var(--color-primary);transition:width .2s ease}.psych-performance-meter strong{min-width:0;padding:0 6px;color:#fff;font-size:.72rem;line-height:18px;text-align:right;text-shadow:0 1px 2px rgb(0 0 0 / .35);white-space:nowrap}.psych-performance-meter--good i{background:linear-gradient(90deg,#16a34a,#0d9488)}.psych-performance-meter--info i{background:linear-gradient(90deg,#2563eb,#0891b2)}.psych-performance-meter--warn i{background:linear-gradient(90deg,#d97706,#eab308)}.psych-performance-meter--danger i{background:linear-gradient(90deg,#dc2626,#f97316)}.psych-performance-empty{color:var(--color-muted);font-size:.8rem}.psych-performance-warning{display:inline-grid;margin-left:5px;color:#d97706;vertical-align:middle}@media(max-width:900px){.psych-performance-panel__header{display:grid}.psych-performance-panel__stats{justify-content:flex-start}}@media(max-width:620px){.psych-performance-panel{padding:14px}.psych-performance-tools{grid-template-columns:1fr}.psych-performance-page-size{max-width:180px}}.teacher-files-upload-actions--right{display:flex;justify-content:flex-end;margin-top:1rem}.teacher-files-prepared-tools{display:flex;justify-content:flex-start;margin:.75rem 0}.teacher-files-prepared-list,.teacher-files-list{width:100%;margin-top:1rem;padding:1rem;border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface)}.teacher-files-tree-section{display:grid;gap:.65rem;margin-top:1.1rem;padding:1rem;border:1px solid var(--border, #dbe3ef);border-left:4px solid var(--primary, #2563eb);border-radius:.75rem;background:color-mix(in srgb,var(--surface, #fff) 94%,var(--primary, #2563eb))}.teacher-files-tree-section--received{border-left-color:#0f9f78;background:color-mix(in srgb,var(--surface, #fff) 94%,#0f9f78)}.teacher-files-tree-section>h4{display:flex;align-items:center;gap:.5rem;margin:.1rem 0 .2rem;font-size:1rem}.teacher-files-tree-section--own>h4{color:var(--primary, #2563eb)}.teacher-files-tree-section--received>h4{color:#087f62}.teacher-files-layout[hidden],.teacher-files-selection[hidden],.teacher-files-list[hidden],.teacher-files-prepared-actions[hidden],[data-teacher-files-prepared-actions][hidden],[data-teacher-files-prepared-tools][hidden]{display:none!important}[data-teacher-files-upload-panel]:not([hidden])~[data-teacher-files-list] [data-teacher-files-prepared-actions],[data-teacher-files-upload-panel]:not([hidden])~[data-teacher-files-list] [data-teacher-files-prepared-tools]{display:flex!important}.teacher-files-file-number{display:inline-grid;place-items:center;min-width:1.75rem;height:1.75rem;border-radius:50%;background:var(--color-primary, #2563eb);color:#fff;font-weight:700;font-size:.8rem}.teacher-files-total-progress{display:grid;gap:5px;margin-top:1rem}.teacher-files-total-progress span{color:var(--color-muted);font-size:.85rem}.teacher-files-total-progress b{font-size:.85rem}.teacher-files-total-progress i{display:block;height:8px;border-radius:99px;background:linear-gradient(90deg,var(--color-primary) var(--progress,0%),var(--color-border) var(--progress,0%))}.teacher-files-file-progress{display:grid;grid-template-columns:minmax(120px,220px) auto;align-items:center;gap:8px;margin-top:6px}.teacher-files-file-progress progress{width:100%;height:7px;accent-color:var(--color-primary)}.teacher-files-owner-badge{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:3px 8px 3px 4px;border-radius:999px;background:color-mix(in srgb,var(--color-primary),transparent 88%);color:var(--color-primary);font-size:.75rem;font-weight:700}.teacher-files-owner-photo{width:22px;height:22px;border-radius:50%;object-fit:cover}.teacher-files-file-meta{display:inline-flex;align-items:center;gap:5px}.teacher-files-file-type{display:inline-flex;color:var(--color-primary)}.teacher-files-batch-uploaded{margin-top:1rem}.teacher-files-batch-uploaded h4{margin:0 0 .5rem}.teacher-files-drop-summary{width:100%;margin-top:.6rem;padding:.55rem .7rem;border:1px dashed var(--color-border);border-radius:var(--radius-control);color:var(--color-muted);font-size:.82rem;text-align:left}.teacher-files-drop-summary ol{margin:.35rem 0 0 1.2rem;padding:0}.teacher-files-drop-summary li{padding:.1rem 0}.teacher-files-tree{width:100%;margin-top:1rem}.teacher-files-tree-navigation{width:100%}.teacher-files-tree-results{width:100%;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-border)}.teacher-files-tree-level{min-width:0}.teacher-files-tree__crumb{margin-bottom:.75rem}.teacher-files-tree__nodes{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.65rem}.teacher-files-tree-node{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.65rem;min-width:0;padding:.8rem .9rem;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface-raised);color:var(--color-text);text-align:left;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.teacher-files-tree-node:hover,.teacher-files-tree-node:focus-visible{border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.teacher-files-tree-node strong{min-width:0;overflow-wrap:anywhere}.teacher-files-tree-node small{color:var(--color-muted);font-weight:700}.teacher-files-tree-branch{min-width:0}.teacher-files-tree-branch-body{margin-left:1.15rem;padding-left:.8rem;border-left:1px solid var(--color-border)}.teacher-files-tree-node.is-expanded>svg:last-child{transform:rotate(90deg)}.teacher-files-tree-node>svg:last-child{transition:transform .18s ease}.teacher-files-tree-files{margin:.65rem 0 .8rem}.teacher-files-tree-files-pane h4{margin:0 0 .65rem}.teacher-files-tree-file-controls{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin:0 0 .75rem}.teacher-files-tree-file-controls label{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:600}.teacher-files-tree-file-controls select{min-width:4.5rem;height:2.25rem;padding:.35rem 2rem .35rem .7rem;border:1px solid var(--border-strong, #cbd5e1);border-radius:.55rem;background:var(--surface, #fff);color:var(--text, #172033);font:inherit;font-size:.85rem;font-weight:700;cursor:pointer;box-shadow:0 1px 2px #0f172a14}.teacher-files-tree-file-controls select:hover{border-color:var(--primary, #2563eb)}.teacher-files-tree-file-controls select:focus-visible{outline:2px solid color-mix(in srgb,var(--primary, #2563eb) 35%,transparent);outline-offset:2px}.teacher-files-tree-file-controls>span{color:var(--text-muted);font-size:.8rem}.teacher-files-tree-file-controls>div{display:inline-flex;gap:.35rem;margin-left:auto}.teacher-files-tree-search{margin:0 0 .8rem}.teacher-files-tree-search label{display:flex;align-items:center;gap:.55rem;max-width:34rem;padding:.1rem .75rem;border:1px solid var(--border-strong, #cbd5e1);border-radius:.6rem;background:var(--surface, #fff);color:var(--text-muted);box-shadow:0 1px 2px #0f172a0f}.teacher-files-tree-search input{width:100%;min-height:2.35rem;border:0;outline:0;background:transparent;color:var(--text, #172033);font:inherit}.teacher-files-tree-search label:focus-within{border-color:var(--primary, #2563eb);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary, #2563eb) 15%,transparent)}.teacher-files-tree-search-empty{padding:1rem;color:var(--text-muted);text-align:center}@media(max-width:640px){.teacher-files-tree-file-controls>div{margin-left:0;width:100%}}.teacher-files-tree-children{display:grid;gap:.35rem}.teacher-files-list button[hidden],.teacher-files-prepared-list button[hidden]{display:none!important}.profile-qr-card{margin-top:1.25rem;overflow:visible;border:1px solid var(--color-border);border-radius:var(--radius-card, .75rem);background:var(--color-surface, #fff);box-shadow:0 14px 32px #0f1f351f}.profile-qr-card__header{display:flex;align-items:flex-start;gap:.75rem;padding:1rem 1.15rem;border-bottom:1px solid var(--color-border);background:linear-gradient(135deg,#0f7bc724,#0ea5a414)}.profile-qr-card__header>span{display:grid;place-items:center;width:2.25rem;height:2.25rem;flex:none;border-radius:.65rem;background:var(--color-primary);color:#fff}.profile-qr-card__header h3,.profile-qr-card__header p{margin:0}.profile-qr-card__header p{margin-top:.2rem;color:var(--color-muted);font-size:.86rem}.profile-qr-card__body{padding:1rem 1.15rem 1.15rem}.profile-qr-card__loading,.profile-qr-card__disabled{display:flex;align-items:center;justify-content:center;gap:.55rem;min-height:8rem;color:var(--color-muted)}.profile-qr-card__loading svg{animation:profile-qr-spin .9s linear infinite}.profile-qr-card__lanyard{position:relative;width:170px;height:98px;margin:0 auto -1px;overflow:hidden}.profile-qr-card__tag{position:absolute;left:10px;top:-38px;width:0;height:0;border-left:75px solid transparent;border-right:75px solid transparent;border-top:103px solid #075c99}.profile-qr-card__tag:after{content:"";position:absolute;left:-51px;top:-92px;width:0;height:0;border-left:51px solid transparent;border-right:51px solid transparent;border-top:78px solid #f8fbff}.profile-qr-card__tag-strip{position:absolute;z-index:3;left:68px;top:53px;width:34px;height:32px;border:1px solid #004b83;border-radius:5px;background:#075c99;box-shadow:0 3px 5px #0f1f3533}.profile-qr-card__tag-strip:after{content:"";position:absolute;top:10px;left:0;width:100%;height:1px;background:#c1c1c1}.profile-qr-card__hook{position:absolute;z-index:2;left:48px;top:76px;width:73px;height:22px;border-radius:5px 5px 0 0;background:#11151a}.profile-qr-card__hook span{display:block;position:relative;top:6px;width:47px;height:6px;margin:auto;border-radius:4px;background:#d7d6d3}.profile-qr-card__holder{position:relative;width:222px;max-width:100%;margin:0 auto .15rem;padding:.42rem;border-radius:.5rem;background:#20242b;box-shadow:0 12px 24px #0f1f3533}.profile-qr-card__holder:before,.profile-qr-card__holder:after{content:"";position:absolute;z-index:2;top:50%;width:9px;height:8.25rem;transform:translateY(-50%);background:#101318;box-shadow:0 0 0 1px #080b0f;pointer-events:none}.profile-qr-card__holder:before{left:.15rem;border-radius:0 .35rem .35rem 0}.profile-qr-card__holder:after{right:.15rem;border-radius:.35rem 0 0 .35rem}.profile-qr-card__ticket{position:relative;display:block;width:208px;max-width:100%;min-height:321px;margin:0 auto;padding:.85rem .7rem .75rem;overflow:hidden;border:1px solid #1f2937;border-radius:.55rem;background:linear-gradient(180deg,#f8fbff,#fff 48%,#eef6fc);color:#172033;box-shadow:0 0 2px #0f1f3540}.profile-qr-card__accent{position:absolute;inset:0 0 auto;height:.55rem;background:linear-gradient(90deg,#075c99,#0f7bc7 55%,#0ea5a4)}.profile-qr-card__school,.profile-qr-card__person{display:flex;align-items:center;gap:.7rem;min-width:0}.profile-qr-card__identity{display:block;min-width:0;padding-top:.15rem;text-align:center}.profile-qr-card__school,.profile-qr-card__person{justify-content:center}.profile-qr-card__school{display:grid;gap:.25rem}.profile-qr-card__school img{width:3.15rem;height:3.15rem;margin:0 auto;object-fit:contain;border-radius:.45rem}.profile-qr-card__person{display:grid;grid-template-columns:minmax(0,1fr);gap:.45rem;width:100%;margin-top:.9rem}.profile-qr-card__person img{width:4.75rem;height:4.75rem;margin:0 auto;object-fit:cover;border-radius:.45rem;border:2px solid #0f7bc7}.profile-qr-card__identity strong,.profile-qr-card__identity h4{display:block;overflow-wrap:anywhere}.profile-qr-card__kicker{display:block;margin-bottom:.1rem;color:var(--color-primary);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.profile-qr-card__identity h4{display:block;grid-column:1;width:100%;min-width:0;margin:0 0 .25rem;padding:.32rem .5rem;border:0;border-radius:.18rem;background:linear-gradient(90deg,#cfeeff,#a9ddf8,#cfeeff);color:#073b63;font-size:1rem;line-height:1.2;box-sizing:border-box}.profile-qr-card__role{display:inline-flex;align-items:center;gap:.3rem;max-width:100%;padding:.22rem .45rem;border:1px solid rgba(15,123,199,.3);border-radius:99px;background:#dceffd;color:#075c99;font-size:.72rem;font-weight:800}.profile-qr-card__meta{display:flex;align-items:baseline;justify-content:center;gap:.35rem;margin-top:.4rem;color:#64748b;font-size:.7rem}.profile-qr-card__meta b{color:#172033;font-size:.78rem}.profile-qr-card__identity small,.profile-qr-card__school small{display:block;color:#64748b;font-size:.68rem}.profile-qr-card__school strong{display:block;font-size:.9rem;line-height:1.15}.profile-qr-card__kicker{color:#075c99!important;font-size:.58rem!important}.profile-qr-card__code{display:grid;justify-items:center;gap:.25rem;min-width:0;margin-top:.85rem;padding:.65rem 0 0;border-top:1px dashed rgba(15,123,199,.38)}.profile-qr-card__qr-frame{display:grid;place-items:center;padding:.35rem;border-radius:.35rem;background:#fff;box-shadow:0 2px 8px #0f172a1f}.profile-qr-card__code canvas{display:block;width:5.35rem;height:5.35rem;image-rendering:auto}.profile-qr-card__code [data-profile-qr-placeholder]{display:block;width:5.35rem;height:5.35rem;object-fit:contain}.profile-qr-card__contact{display:grid;gap:.16rem;width:100%;margin-top:.35rem;padding-top:.35rem;border-top:1px solid #d8e0eb;color:#64748b;font-size:.58rem;line-height:1.25;text-align:center}.profile-qr-card__contact span{display:flex;align-items:center;justify-content:center;gap:.25rem;overflow-wrap:anywhere}.profile-qr-card__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.55rem;margin-top:.8rem}.profile-qr-card__disabled{flex-direction:column;gap:.7rem}.qr-login-modal{z-index:2000}.qr-login-dialog{width:min(27rem,calc(100vw - 2rem))}.qr-login-body{display:grid;gap:.8rem;padding:1rem}.qr-login-body video{display:block;width:100%;max-height:16rem;aspect-ratio:4/3;object-fit:cover;border-radius:.65rem;background:#111827;transform:scaleX(-1)}.qr-login-status{display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:2.5rem;color:var(--color-muted);text-align:center}.qr-login-file{justify-content:center}.qr-login-dialog footer{display:flex;justify-content:flex-end;padding:.8rem 1rem;border-top:1px solid var(--color-border)}@keyframes profile-qr-spin{to{transform:rotate(360deg)}}@media(max-width:640px){.profile-qr-card__ticket{width:208px;min-height:321px}.profile-qr-card__code{justify-self:center}.profile-qr-card__actions{justify-content:stretch}.profile-qr-card__actions button{flex:1 1 100%}}@media print{@page{size:208px 321px;margin:0}html,body{width:208px!important;height:321px!important;min-width:0!important;margin:0!important;overflow:hidden!important}body *{visibility:hidden!important}.profile-qr-card,.profile-qr-card__body,.profile-qr-card__holder,.profile-qr-card__ticket,.profile-qr-card__ticket *{visibility:visible!important}.profile-qr-card{position:absolute;top:0;left:0;width:208px;height:321px;max-width:none;margin:0;border:0;box-shadow:none;background:transparent}.profile-qr-card__header,.profile-qr-card__lanyard,.profile-qr-card__actions,.profile-qr-card .form-alert{display:none!important}.profile-qr-card__body{padding:0}.profile-qr-card__holder{width:208px;padding:0;background:transparent;box-shadow:none}.profile-qr-card__holder:before,.profile-qr-card__holder:after{display:none}.profile-qr-card__ticket{width:208px;max-width:100%;min-height:321px;height:321px;padding:.62rem .55rem .5rem;overflow:hidden;break-inside:avoid;page-break-inside:avoid}.profile-qr-card__school img{width:2.6rem;height:2.6rem}.profile-qr-card__person{margin-top:.55rem}.profile-qr-card__person img{width:3.6rem;height:3.6rem}.profile-qr-card__code{margin-top:.55rem;padding-top:.45rem}.profile-qr-card__code canvas{width:4.7rem;height:4.7rem}.profile-qr-card__contact{margin-top:.25rem;padding-top:.25rem;font-size:.5rem}}@media(max-width:760px){.grades-page .grade-capture-table-wrap{width:100%!important;min-width:0!important;max-width:100%!important;overflow:visible!important}.grades-page .grade-capture-table{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;zoom:1!important}.grades-page .grade-capture-table thead{display:none!important}.grades-page .grade-capture-table tbody{display:grid!important;gap:12px}.grades-page .grade-capture-table tbody tr{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;width:100%;box-sizing:border-box;padding:7px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-border)}.grades-page .grade-capture-table tbody td,.grades-page .grade-capture-table tbody th{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:flex-start;position:static!important;width:auto!important;min-width:0!important;max-width:none!important;min-height:44px;box-sizing:border-box;padding:7px;white-space:normal!important;overflow-wrap:anywhere;word-break:break-word;background:var(--color-surface)!important;box-shadow:none!important}.grades-page .grade-capture-table tbody td:before,.grades-page .grade-capture-table tbody th:before{content:attr(data-mobile-label);flex:1 0 100%;margin:0 0 4px;color:var(--color-muted);font-size:.62rem;font-weight:800;line-height:1.15;text-transform:uppercase;overflow-wrap:anywhere}.grades-page .grade-capture-table tbody .grade-capture-table__number,.grades-page .grade-capture-table tbody .grade-capture-table__photo,.grades-page .grade-capture-table tbody .grade-capture-table__first-name{grid-column:1 / -1}.grades-page .grade-capture-table tbody .grade-capture-table__number:before,.grades-page .grade-capture-table tbody .grade-capture-table__photo:before{display:none}.grades-page .grade-capture-table tbody .grade-capture-table__first-name{justify-content:flex-start;text-align:left}.grades-page .grade-capture-table tbody .grade-capture-table__photo{justify-content:center}.grades-page .grade-capture-table tbody .grade-capture-table__photo img{width:52px;height:52px;border-radius:50%;object-fit:cover}.grades-page .grade-capture-table tbody .grade-entry-input{width:min(100%,78px);max-width:100%}}@media(max-width:760px){.grades-page .grade-capture-table-wrap{overflow:auto!important}.grades-page .grade-capture-table{display:table!important;width:max-content!important;min-width:780px!important;max-width:none!important;zoom:1!important}.grades-page .grade-capture-table thead{display:table-header-group!important}.grades-page .grade-capture-table tbody{display:table-row-group!important}.grades-page .grade-capture-table tbody tr{display:table-row!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}.grades-page .grade-capture-table tbody td,.grades-page .grade-capture-table tbody th{display:table-cell!important;min-height:0!important;padding:8px 10px!important;background:transparent!important}.grades-page .grade-capture-table tbody td:before,.grades-page .grade-capture-table tbody th:before{content:none!important;display:none!important}.grades-page .grade-capture-table .grade-capture-mobile-group,.grades-page .grade-mobile-hide-extended{display:table-cell!important}.grades-page .grade-capture-table tbody tr[hidden]{display:none!important}}@media(max-width:760px){.grades-page .grade-capture-table-wrap{display:block!important;width:100%!important;max-width:100%!important;overflow:auto!important}.grades-page .grade-capture-table{display:table!important;width:max-content!important;min-width:780px!important;max-width:none!important}.grades-page .grade-capture-table thead{display:table-header-group!important}.grades-page .grade-capture-table tbody{display:table-row-group!important}.grades-page .grade-capture-table tbody tr{display:table-row!important;grid-template-columns:none!important;gap:normal!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}.grades-page .grade-capture-table tbody td,.grades-page .grade-capture-table tbody th{display:table-cell!important;position:static!important;width:auto!important;min-width:0!important;max-width:none!important;min-height:0!important;padding:8px 10px!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}.grades-page .grade-capture-table tbody td:before,.grades-page .grade-capture-table tbody th:before{content:none!important;display:none!important}.grades-page .grade-capture-table .grade-capture-mobile-group,.grades-page .grade-capture-table .grade-mobile-hide-extended{display:table-cell!important}.grades-page .grade-capture-table tbody tr[hidden]{display:none!important}}.student-account-title-year{margin-left:.55rem;font-size:.78em;font-weight:600;color:var(--muted-text, #64748b);white-space:nowrap}.student-account-main-column>.content-panel{min-width:0}@media(max-width:760px){.student-account-main-column{grid-template-columns:1fr!important}.student-account-main-column>.content-panel{width:100%}}@media(max-width:1100px)and (min-width:681px){.dashboard-grid,.dashboard-grid--stats,.action-grid,.school-info-grid,.foundation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-hero{grid-template-columns:minmax(0,1fr)}}@media(max-width:680px){.dashboard-grid,.dashboard-grid--stats,.action-grid,.school-info-grid,.foundation-grid{grid-template-columns:1fr}}@media(max-width:760px){.page-stack:has([data-group-search]) [data-group-view-switch]{display:none!important}}@media(max-width:760px){.grade-summary-panel__table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}.grade-summary-table{width:620px;min-width:620px;table-layout:fixed}.grade-summary-table th:first-child,.grade-summary-table td:first-child{position:sticky;left:0;z-index:2;width:150px;min-width:150px;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:var(--color-surface);border-left:1px solid var(--color-border);border-right:0;box-shadow:inset -2px 0 #64748b6b,5px 0 9px -5px #0f172a47}.grade-summary-table thead th:first-child{z-index:3;background:#03a9f3}.grade-summary-table tfoot th:first-child{background:color-mix(in srgb,var(--color-primary),transparent 90%)}.grade-summary-table tfoot,.grade-summary-table tfoot th{position:sticky;bottom:0;z-index:4}.grade-summary-table tfoot th:first-child{z-index:5;background:#dbe5f0!important;color:#1e293b!important}}.grade-summary-table,.grade-summary-table th,.grade-summary-table td{box-sizing:border-box}.grade-summary-table tfoot th{background:color-mix(in srgb,var(--color-primary),transparent 90%);color:var(--color-text)}.teacher-panel-page{--panel-accent:#2563eb}.teacher-panel-hero{display:flex;justify-content:space-between;gap:24px;align-items:center;padding:24px;border:1px solid var(--color-border);border-radius:var(--radius-card);background:linear-gradient(120deg,color-mix(in srgb,var(--color-primary),var(--color-surface) 88%),var(--color-surface));box-shadow:var(--shadow-card)}.teacher-panel-identity{display:flex;align-items:center;gap:16px;min-width:0}.teacher-panel-identity h2{margin:3px 0;font-size:clamp(24px,3vw,34px)}.teacher-panel-identity small,.teacher-panel-class small,.teacher-panel-class em{color:var(--color-muted)}.teacher-panel-avatar{width:82px;height:82px;border-radius:50%;object-fit:cover;border:4px solid var(--color-surface);box-shadow:0 0 0 3px var(--color-primary)}.teacher-panel-class-strip{display:grid;grid-template-columns:repeat(2,minmax(180px,1fr));gap:10px;min-width:420px}.teacher-panel-class{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:color-mix(in srgb,var(--color-surface),transparent 4%)}.teacher-panel-class>span{color:var(--color-primary)}.teacher-panel-class strong,.teacher-panel-class em{display:block}.teacher-panel-class strong{margin:3px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px}.teacher-panel-class em{font-size:12px;font-style:normal}.teacher-panel-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.teacher-panel-metric,.teacher-panel-progress{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card);padding:15px}.teacher-panel-metric{display:flex;gap:12px}.teacher-panel-metric>span,.teacher-panel-progress__top>span{color:var(--color-primary)}.teacher-panel-metric small,.teacher-panel-metric em,.teacher-panel-progress small{display:block;color:var(--color-muted)}.teacher-panel-metric strong{display:block;font-size:25px;line-height:1.15}.teacher-panel-metric em{font-size:11px;font-style:normal;margin-top:3px}.teacher-panel-progress{grid-column:span 2}.teacher-panel-progress__top{display:flex;align-items:center;gap:8px}.teacher-panel-progress__top b{margin-left:auto}.teacher-panel-progress__bar,.teacher-panel-group-card__bars i{display:block;height:8px;margin:10px 0 7px;overflow:hidden;border-radius:99px;background:color-mix(in srgb,var(--color-muted),transparent 82%)}.teacher-panel-progress__bar i,.teacher-panel-group-card__bars i span{display:block;height:100%;border-radius:inherit;background:var(--color-primary)}.teacher-panel-progress--success .teacher-panel-progress__bar i{background:var(--color-success)}.teacher-panel-progress--info .teacher-panel-progress__bar i{background:var(--color-info)}.teacher-panel-progress--warning .teacher-panel-progress__bar i{background:var(--color-warning)}.teacher-panel-section-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.teacher-panel-section-heading h3{margin:3px 0 0}.teacher-panel-section-heading>svg{color:var(--color-muted)}.teacher-panel-action-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:16px}.teacher-panel-action{display:flex;align-items:center;gap:10px;min-height:76px;padding:12px;border:1px solid var(--color-border);border-left:4px solid var(--color-primary);border-radius:var(--radius-control);background:var(--color-surface-soft);color:var(--color-text);text-decoration:none;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.teacher-panel-action:hover{transform:translateY(-2px);box-shadow:var(--shadow-card);border-color:var(--color-primary)}.teacher-panel-action>svg{flex:0 0 auto;color:var(--color-primary)}.teacher-panel-action span{min-width:0}.teacher-panel-action strong,.teacher-panel-action small{display:block}.teacher-panel-action small{color:var(--color-muted);font-size:11px;margin-top:3px}.teacher-panel-action>svg:last-child{margin-left:auto}.teacher-panel-action--success{border-left-color:var(--color-success)}.teacher-panel-action--warning{border-left-color:var(--color-warning)}.teacher-panel-action--danger{border-left-color:var(--color-danger)}.teacher-panel-action--info{border-left-color:var(--color-info)}.teacher-panel-view-toggle{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-control);overflow:hidden}.teacher-panel-view-toggle button{display:flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--color-muted);padding:8px 11px;cursor:pointer}.teacher-panel-view-toggle button.is-active{background:color-mix(in srgb,var(--color-primary),transparent 86%);color:var(--color-primary)}.teacher-panel-tools{display:flex;gap:10px;align-items:end;margin:16px 0}.teacher-panel-tools>*:first-child{flex:1}.teacher-panel-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.teacher-panel-group-card{display:grid;gap:13px;padding:16px;border:1px solid var(--color-border);border-top:4px solid var(--panel-group-color);border-radius:var(--radius-card);background:var(--color-surface);box-shadow:var(--shadow-card)}.teacher-panel-group-card__head{display:flex;gap:12px}.teacher-panel-group-card__head>span{display:grid;place-items:center;flex:0 0 40px;height:40px;border-radius:var(--radius-control);background:color-mix(in srgb,var(--panel-group-color),transparent 84%);color:var(--panel-group-color)}.teacher-panel-group-card h4{margin:2px 0;font-size:18px}.teacher-panel-group-card h4 a{color:inherit;text-decoration:none}.teacher-panel-group-card__head small,.teacher-panel-group-card__head em{display:block;color:var(--color-muted);font-size:12px;font-style:normal}.teacher-panel-group-card__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.teacher-panel-group-card__stats span{display:flex;align-items:center;gap:4px;color:var(--color-muted);font-size:12px}.teacher-panel-group-card__stats svg{color:var(--panel-group-color)}.teacher-panel-group-card__bars label{display:flex;justify-content:space-between;font-size:12px;color:var(--color-muted)}.teacher-panel-group-card__bars i{height:6px;margin:4px 0 8px}.teacher-panel-group-card__bars i span{background:var(--panel-group-color)}.teacher-panel-group-card__actions{display:flex;align-items:center;gap:8px}.teacher-panel-group-card__actions a{display:inline-flex;align-items:center;gap:5px;color:var(--color-muted);text-decoration:none}.teacher-panel-group-card__actions a:first-child{margin-right:auto;border:1px solid var(--color-border);border-radius:var(--radius-control);padding:7px 9px;color:var(--color-text)}.teacher-panel-load-table td small,.teacher-panel-group-table td small{display:block;color:var(--color-muted);font-size:11px}@media(max-width:1100px){.teacher-panel-hero{align-items:stretch;flex-direction:column}.teacher-panel-class-strip{min-width:0}.teacher-panel-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-panel-action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-panel-group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.teacher-panel-kpis,.teacher-panel-class-strip,.teacher-panel-group-grid{grid-template-columns:1fr}.teacher-panel-progress{grid-column:auto}.teacher-panel-action-grid{grid-template-columns:1fr}.teacher-panel-tools{align-items:stretch;flex-direction:column}.teacher-panel-identity{align-items:flex-start}.teacher-panel-avatar{width:64px;height:64px}.teacher-panel-section-heading{align-items:flex-start;flex-direction:column}}.teacher-panel-group-card__people{display:grid;gap:4px;color:var(--color-muted);font-size:12px}.teacher-panel-group-card__people span{display:flex;align-items:center;gap:5px}.teacher-panel-group-card__people svg{color:var(--panel-group-color)}.teacher-panel-page{min-width:0;max-width:100%;overflow-x:clip}.teacher-panel-page *{box-sizing:border-box;min-width:0}.teacher-panel-hero>*,.teacher-panel-section-heading>*{max-width:100%}.teacher-panel-class-strip{width:min(100%,520px);min-width:0}.teacher-panel-class strong{max-width:100%;white-space:normal;overflow-wrap:anywhere}.teacher-panel-action-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr))}.teacher-panel-action{min-width:0}.teacher-panel-action strong,.teacher-panel-action small{min-width:0;overflow-wrap:anywhere}.teacher-panel-group-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr))}.teacher-panel-group-card__head h4,.teacher-panel-group-card__head em,.teacher-panel-group-card__people span{min-width:0;overflow-wrap:anywhere}.teacher-panel-group-card__stats{grid-template-columns:repeat(3,minmax(0,1fr))}.teacher-panel-group-card__stats span{min-width:0;overflow-wrap:anywhere}.teacher-panel-group-card__actions{flex-wrap:wrap}.teacher-panel-group-card__actions a:first-child,.teacher-panel-tools{min-width:0;max-width:100%}.teacher-panel-load-table{width:100%;max-width:100%}.teacher-panel-avatar-wrap{display:flex;flex:0 0 auto;width:82px;flex-direction:column;align-items:center;gap:7px}.teacher-panel-avatar-wrap .teacher-panel-avatar{display:block}.teacher-panel-avatar-wrap .presence-badge{position:static;white-space:nowrap}.teacher-panel-avatar-wrap.is-online .teacher-panel-avatar{border-color:var(--color-success);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-success),transparent 78%)}.teacher-panel-avatar-wrap.is-offline .teacher-panel-avatar{border-color:color-mix(in srgb,var(--color-muted),transparent 18%);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-muted),transparent 84%)}@media(max-width:700px){.teacher-panel-hero{padding:16px}.teacher-panel-class-strip,.teacher-panel-group-card__stats{grid-template-columns:1fr}.teacher-panel-group-card__actions a:first-child{margin-right:0;flex:1}.teacher-panel-tools{width:100%}}.teacher-panel-kpis{margin-top:20px}.teacher-panel-load-tools{display:flex;gap:12px;align-items:end;margin:0 0 14px;flex-wrap:wrap}.teacher-panel-load-tools label{display:flex;align-items:center;gap:7px;color:var(--color-muted);font-size:12px}.teacher-panel-load-tools input,.teacher-panel-load-tools select{height:36px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);color:var(--color-text);padding:0 10px}.teacher-panel-load-scroll{overflow-x:auto}.teacher-panel-load-table{min-width:760px;border-collapse:separate;border-spacing:0}.teacher-panel-load-table th,.teacher-panel-load-table td{white-space:nowrap}.teacher-panel-load-course{position:sticky;left:0;z-index:2;background:var(--color-surface)!important;box-shadow:5px 0 0 -4px var(--color-border)}.teacher-panel-load-table thead .teacher-panel-load-course{z-index:4;background:var(--color-primary)!important;color:#fff}.teacher-panel-load-course strong,.teacher-panel-load-course small{display:block}.teacher-panel-load-course small{color:var(--color-muted);font-size:11px;margin-top:3px}.teacher-panel-load-total th,.teacher-panel-load-total td{background:color-mix(in srgb,var(--color-primary),transparent 90%);font-weight:800}.teacher-panel-load-pagination{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding-top:12px}.teacher-panel-load-pagination span{margin-right:auto;color:var(--color-muted);font-size:12px}@media(max-width:700px){.teacher-panel-load-tools{align-items:stretch;flex-direction:column}.teacher-panel-load-tools label{justify-content:space-between}.teacher-panel-load-tools input,.teacher-panel-load-tools select{flex:1}}.teacher-panel-load-tools label{flex:1;min-width:220px;white-space:nowrap}.teacher-panel-load-tools label span{white-space:nowrap}.teacher-panel-load-tools input,.teacher-panel-load-tools select{width:100%}.teacher-panel-load-table tfoot .teacher-panel-load-course{position:sticky;left:0;background:var(--color-surface)!important;z-index:5}.teacher-panel-subject-reports{margin-top:8px}.teacher-panel-course-reports td{position:sticky;left:0;background:color-mix(in srgb,var(--color-primary),transparent 92%);padding:9px 12px;text-align:left}.teacher-panel-course-reports td>span{margin-right:12px;font-weight:800;color:var(--color-primary)}.teacher-panel-report-icon{transition:transform .15s ease,background .15s ease,color .15s ease}.teacher-panel-inline-progress{min-width:110px}.teacher-panel-inline-progress i{width:58px;height:8px;background:var(--color-border);border-radius:99px;overflow:hidden}.teacher-panel-inline-progress i:after{display:block;width:100%;height:100%;background:var(--color-primary);border-radius:inherit}.teacher-panel-load-total{border-top:2px solid var(--color-primary)}.teacher-panel-load-tools{margin-top:10px}.teacher-panel-load-table tfoot .teacher-panel-load-course{z-index:3}.teacher-panel-report-icons{display:inline-flex;align-items:center;gap:5px;flex-wrap:wrap}.teacher-panel-report-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--color-border);border-radius:7px;color:var(--color-primary);background:var(--color-surface);text-decoration:none}.teacher-panel-report-icon:hover{color:#fff;background:var(--color-primary);transform:translateY(-1px)}.teacher-panel-inline-progress{display:inline-flex;align-items:center;gap:6px;min-width:92px}.teacher-panel-inline-progress i{display:block;width:48px;height:6px;border-radius:99px;background:linear-gradient(90deg,var(--color-primary) var(--progress,0%),var(--color-border) var(--progress,0%));position:relative;overflow:hidden}.teacher-panel-inline-progress i:after{content:"";position:absolute;inset:0;background:var(--color-primary);width:inherit}.teacher-panel-inline-progress b{font-size:11px}.teacher-panel-load-total td,.teacher-panel-load-total th{vertical-align:middle}.teacher-panel-actions{margin-top:18px}.teacher-panel-load-tools label{align-items:center;height:36px;line-height:1.2}.teacher-panel-load-tools label>span{line-height:1;display:inline-flex;align-items:center;height:36px}.teacher-panel-load-tools label>svg{flex:0 0 auto}.teacher-panel-load-total .teacher-panel-load-course{vertical-align:top;padding-bottom:10px}.teacher-panel-load-total .teacher-panel-course-reports{display:block;margin-top:7px}.teacher-panel-load-total .teacher-panel-course-reports .teacher-panel-report-icons{display:flex;align-items:center;gap:5px}.teacher-panel-load-total .teacher-panel-course-reports .teacher-panel-report-icon{width:26px;height:26px}.teacher-panel-inline-progress i:after{width:var(--progress,0%)!important}.teacher-panel-load-table .teacher-panel-load-course{width:400px;min-width:400px;max-width:400px;white-space:normal;overflow-wrap:anywhere}.teacher-panel-load-table .teacher-panel-load-course strong,.teacher-panel-load-table .teacher-panel-load-course small{max-width:100%;overflow-wrap:anywhere}@media(max-width:700px){.teacher-panel-load-table .teacher-panel-load-course{width:360px;min-width:360px;max-width:360px}}.teacher-panel-load-tools label:first-child{flex:1 1 240px}.teacher-panel-load-tools label:nth-child(2){flex:0 0 auto}.teacher-panel-load-tools label:nth-child(2) select{width:92px;min-width:92px;flex:0 0 92px;padding-left:7px;padding-right:7px}.teacher-panel-load-table th:nth-child(2),.teacher-panel-load-table td:nth-child(2){white-space:nowrap;min-width:220px}.teacher-panel-load-table td:nth-child(2) .teacher-panel-subject-reports{white-space:nowrap;overflow:visible}.teacher-panel-load-table td:nth-child(2) .teacher-panel-report-icons{flex-wrap:nowrap;white-space:nowrap}
