@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-ext-700-normal-BuR0mlCG.woff2) format("woff2"),url(/assets/nunito-cyrillic-ext-700-normal-DfoqN4Gs.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-cyrillic-700-normal-DP36NgGt.woff2) format("woff2"),url(/assets/nunito-cyrillic-700-normal-DfHRUDv-.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-vietnamese-700-normal-Ch8EUCfz.woff2) format("woff2"),url(/assets/nunito-vietnamese-700-normal-C9SQsXvj.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-ext-700-normal-BWeMsAzO.woff2) format("woff2"),url(/assets/nunito-latin-ext-700-normal-D4woHhbd.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/nunito-latin-700-normal-Dort48En.woff2) format("woff2"),url(/assets/nunito-latin-700-normal-OcDqTBcA.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.xgrid{display:grid;gap:.6rem}.xgrid__scroll{border:1px solid var(--velora-border);border-radius:var(--velora-radius);overflow-x:auto;overflow-y:visible;background:var(--velora-surface)}.xgrid__table{border-collapse:separate;border-spacing:0;width:100%;color:var(--velora-ink);font-size:.88rem}.xgrid__table thead th{position:sticky;top:0;z-index:2;background:var(--velora-primary-pale);color:var(--velora-primary-dark);font-family:var(--velora-font-emphasis);font-weight:700;font-size:.82rem;text-align:left;white-space:nowrap;padding:.5rem .6rem;border-bottom:1px solid var(--velora-border);border-right:1px solid rgba(255,255,255,.55)}.xgrid__corner{width:40px;text-align:center!important;position:sticky;left:0;z-index:3}.xgrid__rowtools{width:42px;text-align:center!important}.xgrid__table td{padding:0;border-bottom:1px solid var(--velora-border);border-right:1px solid var(--velora-border);background:var(--velora-surface);vertical-align:middle}.xgrid__num{width:40px;text-align:center;color:var(--velora-muted);font-size:.78rem;font-variant-numeric:tabular-nums;background:var(--velora-surface-soft)!important;position:sticky;left:0;z-index:1}.xgrid__text,.xgrid__select{display:flex;align-items:center;gap:.35rem;min-height:38px;padding:.35rem .55rem;cursor:default;outline:none;min-width:120px;white-space:nowrap;overflow:hidden}.xgrid__text{text-overflow:ellipsis}.xgrid__text span{overflow:hidden;text-overflow:ellipsis}.xgrid__cell--center .xgrid__text,.xgrid__cell--center .xgrid__select{justify-content:center}.xgrid__select{cursor:pointer;justify-content:space-between}.xgrid__reveal{margin-left:auto;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;padding:2px;border-radius:4px;color:#7c93a1;cursor:pointer}.xgrid__reveal:hover{color:var(--velora-primary);background:#009bc21a}.xgrid__inputwrap{position:relative;display:flex;align-items:center;width:100%}.xgrid__inputwrap .xgrid__input{padding-right:1.9rem}.xgrid__inputwrap .xgrid__reveal{position:absolute;right:.3rem;margin:0}.xgrid__input--masked{-webkit-text-security:disc;text-security:disc}.xgrid__selval{overflow:hidden;text-overflow:ellipsis}.xgrid__chev{color:var(--velora-muted);flex:none}.xgrid__placeholder{color:#9bb0bd}.xgrid__cell{position:relative}.xgrid__cell--selected{background:#009bc214}.xgrid__cell--selected .xgrid__text,.xgrid__cell--selected .xgrid__select{background:transparent}.xgrid__cell--active{box-shadow:inset 0 0 0 2px var(--velora-primary);border-radius:2px}.xgrid__text:focus-visible,.xgrid__select:focus-visible{box-shadow:inset 0 0 0 2px var(--velora-primary);border-radius:2px}.xgrid__cell--invalid{background:#fdecec}.xgrid__cell--invalid.xgrid__cell--active{box-shadow:inset 0 0 0 2px #d4574f}.xgrid__input{width:100%;min-height:38px;border:none;outline:2px solid var(--velora-primary);outline-offset:-2px;border-radius:2px;padding:.35rem .55rem;font:inherit;color:var(--velora-ink);background:#fff}.xgrid__rowdel{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid transparent;border-radius:var(--velora-radius-sm);background:transparent;color:var(--velora-muted);cursor:pointer}.xgrid__rowdel:hover{background:#fdecec;color:#c0453c;border-color:#f2c9c5}.xgrid__toolbar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.xgrid__add{display:inline-flex;align-items:center;gap:.35rem;cursor:pointer}.xgrid__hint{color:var(--velora-muted);font-size:.76rem}.xgrid__row--invalid>td:not(.xgrid__num){background:#fff8f8}.xgrid__msgrow td{background:#fff6f6;border-bottom:1px solid var(--velora-border);padding:0}.xgrid__msglist{list-style:none;margin:0;padding:.35rem .7rem;display:grid;gap:.15rem;color:#b4423a;font-size:.78rem;line-height:1.4}.xgrid__pop{z-index:60;background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);box-shadow:var(--velora-shadow);max-height:280px;display:flex;flex-direction:column;overflow:hidden}.xgrid__popsearch{display:flex;align-items:center;gap:.4rem;padding:.45rem .6rem;border-bottom:1px solid var(--velora-border);color:var(--velora-muted)}.xgrid__popsearch input{border:none;outline:none;font:inherit;width:100%;color:var(--velora-ink);background:transparent}.xgrid__poplist{overflow-y:auto;padding:.25rem;display:grid;gap:1px}.xgrid__popempty{padding:.5rem .6rem;color:var(--velora-muted);font-size:.82rem}.xgrid__popopt{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;text-align:left;padding:.4rem .55rem;border:none;border-radius:6px;background:transparent;color:var(--velora-ink);font:inherit;cursor:pointer}.xgrid__popopt:hover{background:var(--velora-surface-soft)}.xgrid__popopt--selected{color:var(--velora-primary-dark);font-weight:700}.xgrid__popopt--selected svg{color:var(--velora-primary)}.xgrid__popfoot{display:flex;justify-content:space-between;padding:.35rem .5rem;border-top:1px solid var(--velora-border)}.xgrid__poplink{display:inline-flex;align-items:center;gap:.25rem;border:none;background:transparent;color:var(--velora-muted);font:inherit;font-size:.8rem;cursor:pointer;padding:.2rem .35rem;border-radius:6px}.xgrid__poplink:hover{background:var(--velora-surface-soft)}.xgrid__poplink--done{color:var(--velora-primary-dark);font-weight:700}.xgrid__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.settings-page .profile-name-display,.settings-page .profile-name-edit{align-items:center;display:flex;gap:.38rem;min-width:0}.settings-page .profile-name-edit{flex-wrap:wrap}.settings-page .profile-name-edit input{border:1px solid var(--velora-border);border-radius:7px;color:var(--velora-ink);font:inherit;min-height:34px;min-width:180px;padding:.35rem .55rem;width:min(100%,280px)}.settings-page .profile-name-edit input:focus-visible{border-color:var(--velora-primary);outline:2px solid color-mix(in srgb,var(--velora-primary) 24%,transparent);outline-offset:1px}.settings-page .profile-name-icon{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--velora-muted);cursor:pointer;display:inline-flex;flex:0 0 auto;justify-content:center;min-height:28px;min-width:28px;padding:.25rem;transition:background-color .16s ease,color .16s ease}.settings-page .profile-name-icon:hover,.settings-page .profile-name-icon:focus-visible{background:var(--velora-primary-pale);color:var(--velora-primary-dark);outline:2px solid var(--velora-primary);outline-offset:1px}.settings-page .profile-name-icon:disabled{cursor:default;opacity:.55}.settings-page .profile-name-error{color:#b42318;flex-basis:100%;font-size:.8rem;font-weight:600}.settings-page .work-assignment-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.settings-page .work-assignment-grid__classes{grid-column:1 / -1}.settings-page .profile-assignment-lines{display:grid;gap:.28rem;list-style:none;margin:0;padding:0}.settings-page .account-summary__identity{min-width:0}.settings-page .account-summary .account-summary__logout{border:1px solid transparent;color:#a33c3c;margin-left:auto}.settings-page .account-summary .account-summary__logout:hover:not(:disabled){background:#fff1f1;border-color:#f0c2c2;color:#812b2b}.settings-page .account-summary .account-summary__logout:focus-visible{outline:2px solid #b42318;outline-offset:2px}@media (max-width: 760px){.settings-page .account-summary .account-summary__logout{margin-left:auto}.settings-page .work-assignment-grid{grid-template-columns:1fr}.settings-page .work-assignment-grid__classes{grid-column:auto}}@media (max-width: 520px){.settings-page .account-summary__identity{flex:1 1 calc(100% - 80px)}}@media (prefers-reduced-motion: reduce){.settings-page .profile-name-icon{transition:none}}.admin-users-page .admin-access-modal{gap:0;grid-template-rows:auto minmax(0,1fr) auto;max-height:calc(100dvh - 2rem);overflow:hidden;padding:0}.admin-users-page .admin-access-modal__header{align-items:flex-start;border-bottom:1px solid var(--velora-border);display:flex;gap:1rem;justify-content:space-between;padding:1.2rem 1.4rem}.admin-users-page .admin-access-modal__close{align-items:center;background:transparent;border:0;border-radius:7px;color:var(--velora-muted);cursor:pointer;display:inline-flex;flex:0 0 auto;justify-content:center;min-height:34px;min-width:34px;padding:.35rem}.admin-users-page .admin-access-modal__close:hover,.admin-users-page .admin-access-modal__close:focus-visible{background:#eef7f9;color:var(--velora-ink);outline:2px solid var(--velora-primary);outline-offset:1px}.admin-users-page .admin-access-modal__body{display:grid;gap:.82rem;min-height:0;overflow-y:auto;padding:1rem 1.4rem}.admin-users-page .admin-access-modal__body>label{color:#52707c;display:grid;font-family:var(--velora-font-emphasis);font-size:.8rem;font-weight:700;gap:.3rem}.admin-users-page .admin-access-modal__footer{background:#fff;border-top:1px solid var(--velora-border);margin:0;padding:.9rem 1.4rem}.admin-users-page .admin-users__assignment-summary{cursor:help;display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-users-page .admin-users__assignment-summary:focus-visible{border-radius:4px;outline:2px solid var(--velora-primary);outline-offset:2px}.admin-users__assignment-tooltip{background:#173643;border:1px solid #2c5666;border-radius:8px;box-shadow:0 10px 28px #081e2638;color:#fff;font-size:.78rem;line-height:1.45;max-width:min(390px,calc(100vw - 16px));padding:.62rem .72rem;pointer-events:none;position:fixed;width:max-content;z-index:80}.admin-users__assignment-tooltip ul,.admin-users-page .admin-teacher-assignment-list{list-style:none;margin:0;padding:0}.admin-users__assignment-tooltip li+li,.admin-users-page .admin-teacher-assignment-list li+li{margin-top:.25rem}.admin-users-page .admin-teacher-assignment-list{line-height:1.4}.admin-users-page .admin-access-modal{width:min(820px,calc(100vw - 2rem))}.admin-users-page .custom-lesson-picker{background:#f8fbfc;border:1px solid var(--velora-border);border-radius:10px;display:grid;gap:.7rem;padding:.85rem}.admin-users-page .custom-lesson-picker__toolbar,.admin-users-page .admin-quick-external__head,.admin-users-page .admin-quick-external__fields{align-items:center;display:flex;gap:.75rem;justify-content:space-between}.admin-users-page .custom-lesson-picker__toolbar>div{display:flex;gap:.35rem}.admin-users-page .custom-lesson-picker__tree{display:grid;gap:.5rem;max-height:300px;overflow:auto}.admin-users-page .custom-lesson-picker details,.admin-users-page .custom-lesson-picker fieldset{border:0;margin:0;padding:0}.admin-users-page .custom-lesson-picker summary{color:#173643;cursor:pointer;font-weight:800;padding:.35rem 0}.admin-users-page .custom-lesson-picker fieldset{border-left:2px solid #dcecef;margin-left:.35rem;padding:.3rem 0 .5rem .8rem}.admin-users-page .custom-lesson-picker legend{color:#52707c;font-size:.78rem;font-weight:800;padding:0 0 .35rem}.admin-users-page .custom-lesson-picker__lessons{display:grid;gap:.3rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.admin-users-page .custom-lesson-picker__lessons label{align-items:flex-start;background:#fff;border:1px solid #e2ecef;border-radius:7px;color:#294b58;display:flex;font-family:var(--velora-font-body);font-size:.82rem;font-weight:500;gap:.5rem;padding:.5rem .55rem}.admin-users-page .custom-lesson-picker__summary{background:#edf8f4;border-radius:8px;color:#244e43;display:grid;font-size:.8rem;gap:.35rem;padding:.65rem .75rem}.admin-users-page .custom-lesson-picker__summary p,.admin-users-page .custom-lesson-picker__summary div{margin:0}.admin-users-page .custom-lesson-picker__summary div{display:grid;gap:.12rem}.admin-users-page .admin-quick-external{background:#f4fbf8;border:1px solid #cfe8dd;border-radius:12px;display:grid;gap:.8rem;padding:1rem}.admin-users-page .admin-quick-external__head h3,.admin-users-page .admin-quick-external__head p{margin:0}.admin-users-page .admin-quick-external__head>span{background:#dff3ea;border-radius:999px;color:#27634f;font-size:.75rem;font-weight:800;padding:.35rem .65rem}.admin-users-page .admin-quick-external>label,.admin-users-page .admin-quick-external__fields label{display:grid;flex:1;font-size:.8rem;font-weight:700;gap:.3rem}.admin-users-page .admin-quick-external textarea{min-height:6.5rem;resize:vertical}.admin-users-page .admin-bulk__section-divider{align-items:center;color:var(--velora-muted);display:flex;font-size:.76rem;gap:.75rem}.admin-users-page .admin-bulk__section-divider:before,.admin-users-page .admin-bulk__section-divider:after{background:var(--velora-border);content:"";flex:1;height:1px}@media (max-width: 720px){.admin-users-page .custom-lesson-picker__toolbar,.admin-users-page .admin-quick-external__head,.admin-users-page .admin-quick-external__fields{align-items:stretch;flex-direction:column}}:root{--velora-font-body: Inter, Aptos, "Segoe UI", sans-serif;--velora-font-emphasis: "Nunito", Inter, Aptos, "Segoe UI", sans-serif;font-family:var(--velora-font-body);color:#075c3d;background:#f7faf8;font-synthesis:none;text-rendering:optimizeLegibility;--velora-canvas: #f7faf8;--velora-surface: #ffffff;--velora-surface-soft: #eef9f3;--velora-primary: #178a58;--velora-primary-hover: #0f7147;--velora-primary-light: #5ebf8d;--velora-teal-strong: #075c3d;--velora-primary-dark: #075c3d;--velora-primary-pale: #ddf4e8;--velora-accent: #f4a340;--velora-success: #178a58;--velora-success-pale: #d9f3e4;--velora-ink: #123f30;--velora-muted: #516b60;--velora-border: #d7e5de;--velora-border-strong: #bdd5c9;--velora-focus-ring: rgba(23, 138, 88, .18);--velora-shadow: 0 14px 36px rgba(18, 63, 48, .1);--color-bg: var(--velora-canvas);--color-surface: var(--velora-surface);--color-primary: var(--velora-primary);--color-primary-hover: var(--velora-primary-hover);--color-soft: var(--velora-surface-soft);--color-soft-strong: var(--velora-primary-pale);--color-text: var(--velora-ink);--color-text-muted: var(--velora-muted);--color-border: var(--velora-border);--velora-radius-sm: 8px;--velora-radius: 12px;--velora-radius-lg: 16px;--app-sidebar-width: 224px;--sidebar-row-height: 42px;--sidebar-row-radius: 12px;--sidebar-row-padding-inline: .65rem;--teacher-card-radius: 16px;--teacher-card-media-ratio: 3 / 2;--teacher-grade-card-width: 440px;--teacher-subject-card-width: 440px;--velora-table-index-width: 3.25rem;--attendance-primary: #0f8f6a;--attendance-primary-hover: #0b7657;--attendance-primary-soft: #e8f7f1;--attendance-selected: #ddf3ea;--attendance-border: #d9e2de;--attendance-surface: #fff;--attendance-head: #f3f6f5}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}button,input{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}body{min-height:100vh;background:var(--velora-canvas)}.admin-page{display:grid;gap:1.25rem;margin:0 auto;max-width:1140px}.admin-page__header{align-items:flex-end;display:flex;gap:1rem;justify-content:space-between}.admin-page__header h1{font-size:clamp(1.8rem,3vw,2.4rem);letter-spacing:-.035em;margin:.3rem 0 .4rem}.admin-page__header p{color:var(--velora-muted);margin:0}.admin-page__filters{align-items:end;background:var(--velora-surface);border:1px solid var(--velora-border);border-radius:var(--velora-radius-lg);display:grid;gap:.75rem;grid-template-columns:minmax(155px,.5fr) minmax(210px,1fr) auto;padding:.9rem}.admin-page__filters label{color:#52707c;display:grid;font-family:var(--velora-font-emphasis);font-size:.78rem;font-weight:700;gap:.32rem}.admin-page__filters input:not([type=checkbox]),.admin-page__filters select,.admin-modal__card input,.admin-modal__card select{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-ink);font:inherit;height:42px;outline:none;padding:0 .7rem}.admin-page__filters input:focus,.admin-page__filters select:focus,.admin-modal__card input:focus,.admin-modal__card select:focus,.admin-table__actions .button:focus-visible{border-color:var(--velora-primary);box-shadow:0 0 0 3px #4fb4bb29}.admin-page__archive-filter{align-items:center;align-self:end;color:var(--velora-ink)!important;display:flex!important;font-family:var(--velora-font-body)!important;font-size:.85rem!important;gap:.5rem!important;height:42px;white-space:nowrap}.admin-page__archive-filter input{accent-color:var(--velora-primary);height:17px;width:17px}.admin-page__error{background:#fff1f1;border:1px solid #f0c2c2;border-radius:var(--velora-radius-sm);color:#a33c3c;margin:0;padding:.75rem .9rem}.admin-page__success{background:#effaf3;border:1px solid #b6e3c6;border-radius:var(--velora-radius-sm);color:#1f7a44;margin:0;padding:.75rem .9rem}.admin-modal__error{background:#fff1f1;border:1px solid #f0c2c2;border-radius:var(--velora-radius-sm);color:#a33c3c;font-size:.85rem;margin:0;padding:.6rem .8rem}.admin-modal__field-error{color:#a33c3c;font-family:var(--velora-font-base);font-size:.76rem;font-weight:600}.admin-modal__card input[aria-invalid=true],.admin-modal__card textarea[aria-invalid=true]{border-color:#d98b8b}.admin-modal__required-note{color:var(--velora-muted);font-size:.76rem;margin:-.2rem 0 0}.req-star{color:#dc2626;font-weight:700}.admin-modal__card>label textarea{border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);font:inherit;padding:.5rem .6rem;resize:vertical}.admin-modal__success{background:#effaf3;border:1px solid #b6e3c6;border-radius:var(--velora-radius-sm);color:#1f7a44;font-size:.85rem;margin:0;padding:.6rem .8rem}.admin-modal__password{position:relative}.admin-modal__password input{width:100%}.admin-modal__password--filled input{padding-right:2.7rem}.admin-modal__password .field__trailing-button{height:32px;position:absolute;right:.35rem;top:50%;transform:translateY(-50%);width:32px}.admin-page__notice{background:#effaf3;border:1px solid #b6e3c6;border-radius:var(--velora-radius-sm);color:#1f7a44;margin:0;padding:.75rem .9rem}.admin-modal__uploads{display:grid;gap:.35rem}.admin-modal__upload{display:flex;gap:.6rem;justify-content:space-between;align-items:center;font-size:.82rem;margin:0;padding:.45rem .7rem;border-radius:var(--velora-radius-sm);background:#f1f5f9}.admin-modal__upload span:first-child{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-modal__upload--done{background:#effaf3;color:#1f7a44}.admin-modal__upload--error{background:#fff1f1;color:#a33c3c}.admin-upload-card__remove{border:0;background:transparent;color:#a33c3c;cursor:pointer;font-size:1rem;line-height:1;padding:0 .25rem}.admin-table-wrap{background:var(--velora-surface);border:1px solid var(--velora-border);border-radius:var(--velora-radius-lg);overflow-x:auto}.admin-table{border-collapse:collapse;min-width:760px;width:100%}.admin-table th,.admin-table td{border-bottom:1px solid var(--velora-border);padding:.82rem .9rem;text-align:left;vertical-align:middle}.admin-table__sort{align-items:center;background:none;border:0;color:inherit;cursor:pointer;display:inline-flex;font:inherit;font-weight:700;gap:.3rem;padding:0}.admin-table__sort:hover{color:var(--velora-primary)}.admin-table--cards{border-collapse:separate;border-spacing:0 .6rem}.admin-table--cards thead th{border-bottom:0;color:var(--velora-muted);font-size:.8rem;letter-spacing:.02em;padding-bottom:.2rem;text-transform:uppercase}.admin-table--cards tbody td{background:#fff;border-bottom:0;border-top:1px solid var(--velora-border);box-shadow:0 1px 2px #081e260d}.admin-table--cards tbody td:first-child{border-bottom-left-radius:var(--velora-radius);border-left:1px solid var(--velora-border);border-top-left-radius:var(--velora-radius)}.admin-table--cards tbody td:last-child{border-bottom-right-radius:var(--velora-radius);border-right:1px solid var(--velora-border);border-top-right-radius:var(--velora-radius)}.admin-table--cards tbody tr:hover td{border-color:var(--velora-border-strong);box-shadow:0 4px 12px #081e2614}.admin-table th{background:var(--velora-surface-soft);color:var(--velora-primary-dark);font-family:var(--velora-font-emphasis);font-size:.76rem;letter-spacing:.035em;text-transform:uppercase}.admin-students__index{text-align:center!important;vertical-align:middle!important}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table tbody tr:hover{background:var(--velora-surface-soft)}.admin-table__actions{display:flex;flex-wrap:wrap;gap:.25rem;justify-content:flex-end}.admin-table__actions .button{cursor:pointer;min-height:35px;padding:.38rem .58rem}.admin-table__empty{color:var(--velora-muted);padding:2.25rem!important;text-align:center!important}.admin-status{border-radius:999px;display:inline-flex;font-family:var(--velora-font-emphasis);font-size:.76rem;font-weight:700;padding:.27rem .58rem;white-space:nowrap}.admin-status--published{background:#def5e6;color:#1f7a44}.admin-status--draft{background:#fff3d9;color:#8a5a16}.admin-status--archived{background:#edf1f3;color:#58707a}.admin-status--deleted{background:#fff1f1;color:#a33c3c}.admin-users-page{gap:1rem}.admin-users-page .admin-page__header h1{font-size:clamp(2rem,2.6vw,2.125rem);margin-bottom:.3rem}.admin-users-page .admin-page__header p{font-size:.875rem}.admin-users__filter-area{display:grid;gap:.5rem}.admin-users__toolbar{align-items:end;background:var(--velora-surface);border:1px solid var(--velora-border);border-radius:var(--velora-radius-lg);display:grid;gap:.75rem;grid-template-columns:minmax(300px,1.6fr) minmax(180px,.75fr) minmax(150px,.55fr) auto;min-height:70px;padding:.3rem .75rem}.admin-users__toolbar>label{color:#52707c;display:grid;font-family:var(--velora-font-emphasis);font-size:.72rem;font-weight:700;gap:.2rem;min-width:0}.admin-users__toolbar input,.admin-users__toolbar select{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-ink);font:inherit;height:40px;min-width:0;outline:none;padding:0 .7rem;width:100%}.admin-users__toolbar input:focus,.admin-users__toolbar select:focus{border-color:var(--velora-primary);box-shadow:0 0 0 3px #4fb4bb29}.admin-users__search-control{display:block;position:relative}.admin-users__search-control>svg{color:#6d8993;left:.7rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.admin-users__search-control input{padding-left:2rem}.admin-users__advanced-wrap{align-self:end;position:relative}.admin-users__advanced-trigger{align-items:center;background:#f8fcf9;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-primary-dark);cursor:pointer;display:inline-flex;font-family:var(--velora-font-emphasis);font-size:.8rem;font-weight:800;gap:.42rem;height:40px;justify-content:center;padding:0 .75rem;white-space:nowrap}.admin-users__advanced-trigger:hover{background:var(--velora-surface-soft);border-color:var(--velora-border-strong)}.admin-users__advanced-trigger:focus-visible{border-color:var(--velora-primary);box-shadow:0 0 0 3px var(--velora-focus-ring);outline:none}.admin-users__filter-count{align-items:center;background:var(--velora-primary);border-radius:999px;color:#fff;display:inline-flex;font-size:.67rem;height:20px;justify-content:center;min-width:20px;padding:0 .3rem}.admin-users__advanced-backdrop{display:none}.admin-users__advanced-panel{background:#fff;border:1px solid var(--velora-border);border-radius:12px;box-shadow:0 18px 42px #081e262e;display:grid;gap:1rem;padding:1rem;position:absolute;right:0;top:calc(100% + .5rem);width:min(360px,calc(100vw - 2rem));z-index:80}.admin-users__advanced-panel>header{align-items:flex-start;border-bottom:1px solid #e7f0f2;display:flex;gap:1rem;justify-content:space-between;padding-bottom:.75rem}.admin-users__advanced-panel>header div{display:grid;gap:.2rem}.admin-users__advanced-panel>header strong{color:var(--velora-ink);font-family:var(--velora-font-emphasis);font-size:.92rem}.admin-users__advanced-panel>header small{color:var(--velora-muted);font-size:.72rem;line-height:1.35}.admin-users__advanced-panel>header button{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--velora-muted);cursor:pointer;display:inline-flex;height:30px;justify-content:center;padding:0;width:30px}.admin-users__advanced-panel>header button:hover,.admin-users__advanced-panel>header button:focus-visible{background:#edfafd;color:var(--velora-primary-dark);outline:2px solid var(--velora-primary);outline-offset:1px}.admin-users__grade-options{border:0;margin:0;padding:0}.admin-users__grade-options legend,.admin-users__last-login-filter>span{color:#52707c;font-family:var(--velora-font-emphasis);font-size:.75rem;font-weight:800;margin-bottom:.45rem}.admin-users__grade-options>div{display:grid;gap:.45rem;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-users__grade-options label{align-items:center;border:1px solid #dfebee;border-radius:8px;color:var(--velora-ink);cursor:pointer;display:flex;font-size:.82rem;gap:.5rem;min-height:36px;padding:.4rem .55rem}.admin-users__grade-options label:has(input:checked){background:var(--velora-primary-pale);border-color:var(--velora-border-strong);color:var(--velora-primary-dark)}.admin-users__grade-options input{accent-color:var(--velora-primary);height:16px;margin:0;width:16px}.admin-users__grade-options input:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.admin-users__last-login-filter{display:grid}.admin-users__last-login-filter select{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-ink);font:inherit;font-size:.82rem;height:40px;outline:none;padding:0 .65rem}.admin-users__last-login-filter select:focus{border-color:var(--velora-primary);box-shadow:0 0 0 3px #4fb4bb29}.admin-users__active-filters{align-items:flex-start;display:flex;gap:.5rem .75rem;justify-content:space-between}.filter-chips{margin:-.5rem 0 1rem}.filter-chips__list{align-items:center;display:flex;flex-wrap:wrap;gap:.45rem .55rem;min-width:0}.admin-users__chips{display:flex;flex:1;flex-wrap:wrap;gap:.35rem;min-width:0}.admin-users__filter-chip{align-items:center;background:#f4faf6;border:1px solid var(--velora-border);border-radius:999px;color:var(--velora-muted);cursor:pointer;display:inline-flex;font-size:.74rem;gap:.35rem;min-height:28px;max-width:100%;padding:.25rem .55rem .25rem .65rem}.admin-users__filter-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-users__filter-chip:hover,.admin-users__filter-chip:focus-visible{background:var(--velora-primary-pale);border-color:var(--velora-border-strong);color:var(--velora-primary-dark);outline:none}.admin-users__clear-all{background:transparent;border:0;color:var(--velora-primary-dark);cursor:pointer;font-family:var(--velora-font-emphasis);font-size:.76rem;font-weight:800;min-height:28px;padding:.2rem .15rem;white-space:nowrap}.admin-users__clear-all:hover,.admin-users__clear-all:focus-visible{color:var(--velora-primary);outline:none;text-decoration:underline}.admin-users__table{min-width:680px;table-layout:fixed}.admin-users__table th,.admin-users__table td{font-size:.875rem;line-height:1.35;padding:.55rem .75rem}.admin-users__table th{background:#f8fcfd;color:#5b7680;font-size:.72rem;font-weight:700;height:38px;letter-spacing:.01em;padding-bottom:.45rem;padding-top:.45rem;text-transform:none}.admin-users__table tbody tr{height:57px}.admin-users__table th:nth-child(2){width:34%}.admin-users__table th:nth-child(3){width:22%}.admin-users__table th:nth-child(4){width:23%}.admin-users__table th:nth-child(5){width:145px}.admin-users__select{text-align:center!important;width:44px}.admin-users__select input{accent-color:var(--velora-primary);height:17px;width:17px}.admin-users__person{min-width:190px}.admin-users__identity-line{align-items:center;display:flex;gap:.45rem;min-width:0}.admin-users__identity-line strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-users__email{color:var(--velora-muted);display:block;font-size:.77rem;margin-top:.12rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-users__truncate,.admin-users__grade-summary{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-users__grade-summary:focus-visible{border-radius:3px;outline:2px solid var(--velora-primary);outline-offset:2px}.admin-users-page .admin-role-badge{align-items:center;background:var(--velora-primary-pale);border:1px solid var(--velora-border-strong);border-radius:999px;color:var(--velora-primary-dark);display:inline-flex;flex:0 0 auto;font-family:var(--velora-font-emphasis);font-size:.66rem;font-weight:800;justify-content:center;min-width:28px;padding:.14rem .34rem}.admin-users__menu-trigger{align-items:center;background:#fff;border:1px solid transparent;border-radius:7px;color:var(--velora-muted);cursor:pointer;display:inline-flex;height:34px;justify-content:center;padding:0;width:34px}.admin-users__menu-trigger:hover,.admin-users__menu-trigger:focus-visible,.admin-users__menu-trigger[aria-expanded=true]{background:var(--velora-primary-pale);border-color:var(--velora-border-strong);color:var(--velora-primary-dark);outline:none}.admin-users__menu{background:#fff;border:1px solid var(--velora-border);border-radius:var(--velora-radius-sm);box-shadow:0 14px 34px #081e262e;display:grid;gap:.15rem;min-width:190px;overflow-y:auto;padding:.35rem;position:fixed;z-index:120}.admin-users__menu button{background:transparent;border:0;border-radius:6px;color:var(--velora-ink);cursor:pointer;font:inherit;font-size:.82rem;min-height:36px;padding:.5rem .65rem;text-align:left;white-space:nowrap}.admin-users__menu button:hover,.admin-users__menu button:focus-visible{background:var(--velora-surface-soft);color:var(--velora-primary-dark);outline:none}.admin-users__menu button.is-danger{color:#b42318}.admin-users__menu button.is-danger:hover,.admin-users__menu button.is-danger:focus-visible{background:#fff1f0;color:#8f1d14}.admin-classes-page{gap:1rem;min-width:0;width:100%}.admin-classes-page .admin-page__header h1{font-size:clamp(2rem,2.6vw,2.125rem);margin-bottom:.3rem}.admin-classes-page .admin-page__header p{font-size:.875rem}.admin-classes__filters{display:grid;gap:.6rem .75rem;grid-template-columns:minmax(220px,1.6fr) minmax(230px,1.2fr) minmax(150px,.85fr) minmax(150px,.85fr)}.admin-classes__filters>label{min-width:0}.admin-classes__filters input:not([type=checkbox]),.admin-classes__filters select{box-sizing:border-box;max-width:100%;min-width:0;text-overflow:ellipsis;width:100%}@media (max-width: 1180px){.admin-classes__filters{grid-template-columns:1fr 1fr}}.admin-classes__table-wrap{overflow-x:auto}.admin-classes__table{min-width:880px;width:100%}.admin-classes__row{cursor:pointer;transition:background-color .16s ease}.admin-classes__row:hover,.admin-classes__row[data-selected=true]{background:#f6fcfd}.admin-classes__row:focus-visible{outline:2px solid var(--velora-primary);outline-offset:-2px}.admin-classes__identity{display:grid;gap:.12rem;min-width:0}.admin-classes__identity strong{color:var(--velora-ink);font-size:.9rem}.admin-classes__mobile-school{color:var(--velora-muted);display:none;font-size:.72rem}.admin-classes__school{color:#45636e;font-size:.84rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-classes__count{color:#45636e;font-size:.82rem;font-weight:700;white-space:nowrap}.admin-classes__actions{text-align:right!important}.admin-class-teachers{display:grid;gap:.7rem;margin-top:.5rem}.admin-class-teachers__empty{color:var(--velora-muted);font-size:.82rem;margin:0}.admin-class-teachers__list{display:grid;gap:.4rem;list-style:none;margin:0;padding:0}.admin-class-teachers__list li{align-items:center;border:1px solid var(--velora-border);border-radius:8px;column-gap:.5rem;display:grid;grid-template-columns:1fr auto;padding:.45rem .6rem}.admin-class-teachers__name{font-size:.85rem;font-weight:700}.admin-class-teachers__meta{color:var(--velora-muted);font-size:.73rem;grid-column:1}.admin-class-teachers__remove{grid-column:2;grid-row:1 / span 2;min-height:30px;padding:.25rem .55rem}.admin-class-teachers__assign{align-items:end;display:grid;gap:.5rem;grid-template-columns:1fr auto}.admin-class-teachers__assign-label{color:#52707c;display:grid;font-family:var(--velora-font-emphasis);font-size:.72rem;font-weight:800;gap:.22rem;min-width:0}.admin-class-teachers__assign select{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-ink);font:inherit;height:38px;min-width:0;padding:0 .5rem;width:100%}.admin-class-drawer__students{color:var(--velora-ink);font-size:.86rem;margin:.3rem 0 .7rem}.admin-class-drawer__lesson-link{justify-self:start;text-decoration:none}.admin-class-delete__warning{color:#526b75;font-size:.84rem;line-height:1.55;margin:0}.admin-class-delete__warning strong{color:var(--velora-ink)}.admin-lessons-page{gap:1rem;min-width:0;width:100%}.admin-lessons-page .admin-page__header h1{font-size:clamp(2rem,2.6vw,2.125rem);margin-bottom:.3rem}.admin-lessons-page .admin-page__header p{font-size:.875rem}.admin-lessons__heading{min-width:0}.admin-lessons-page .admin-page__header-actions{align-items:center;flex:0 0 auto;justify-content:flex-end}.admin-lessons-page .admin-page__header-actions .button{height:40px;white-space:nowrap}.admin-lessons__filter-area{display:grid;gap:.5rem}.admin-lessons__toolbar{align-items:end;background:var(--velora-surface);border:1px solid var(--velora-border);border-radius:var(--velora-radius-lg);display:grid;gap:.7rem;grid-template-columns:minmax(250px,1.5fr) minmax(105px,.48fr) minmax(145px,.7fr) minmax(150px,.7fr) auto;min-height:70px;padding:.3rem .75rem}.admin-lessons__toolbar>label{color:#52707c;display:grid;font-family:var(--velora-font-emphasis);font-size:.72rem;font-weight:700;gap:.2rem;min-width:0}.admin-lessons__toolbar input,.admin-lessons__toolbar select{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-ink);font:inherit;height:40px;min-width:0;outline:none;padding:0 .65rem;width:100%}.admin-lessons__toolbar input:focus,.admin-lessons__toolbar select:focus{border-color:var(--velora-primary);box-shadow:0 0 0 3px #4fb4bb29}.admin-lessons__search-control{display:block;position:relative}.admin-lessons__search-control>svg{color:#6d8993;left:.7rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.admin-lessons__search-control input{padding-left:2rem}.admin-lessons__advanced-wrap{min-width:0}.admin-lessons__advanced-panel{width:min(330px,calc(100vw - 2rem))}.admin-lessons__table-wrap{max-width:100%;overflow-x:hidden}.admin-lessons__table{min-width:0;table-layout:fixed;width:100%}.admin-lessons__table th,.admin-lessons__table td{font-size:.875rem;line-height:1.35;padding:.55rem .75rem}.admin-lessons__table th{background:#f8fcfd;color:#5b7680;font-size:.72rem;font-weight:700;height:38px;letter-spacing:.01em;padding-bottom:.45rem;padding-top:.45rem;text-transform:none}.admin-lessons__table th:first-child{width:64px}.admin-lessons__table th:nth-child(2){width:38%}.admin-lessons__table th:nth-child(3){width:70px}.admin-lessons__table th:nth-child(4){width:22%}.admin-lessons__table th:nth-child(5){width:135px}.admin-lessons__table th:last-child{width:48px}.admin-lessons__table tbody td{background:transparent;border-left:0;border-right:0;border-top:0;box-shadow:none}.admin-lessons__row{height:57px;transition:background-color .16s ease}.admin-lessons__row:hover,.admin-lessons__row:focus-within{background:#f6fcfd}.admin-lessons__number{color:#45636e;font-family:var(--velora-font-emphasis);font-weight:800;text-align:center!important}.admin-lessons__identity{display:grid;gap:.12rem;min-width:0}.admin-lessons__identity strong,.admin-lessons__identity small,.admin-lessons__subject span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-lessons__identity strong{color:var(--velora-ink);font-size:.875rem}.admin-lessons__identity small{color:var(--velora-muted);font-size:.72rem}.admin-lessons__mobile-meta{color:var(--velora-muted);display:none;font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-lessons__grade{color:#45636e;font-weight:800;text-align:center!important}.admin-lessons__subject span{display:block}.admin-lessons__actions{text-align:center!important;width:48px}.admin-lessons__menu-trigger{background:transparent}.admin-lessons__menu{min-width:180px}.admin-lessons__pagination-summary{color:var(--velora-muted);font-size:.76rem;margin-top:-.35rem;text-align:center}.admin-lessons__pagination{align-items:center;display:flex;flex-wrap:wrap;gap:.3rem;justify-content:center}.admin-lessons__pagination button{align-items:center;background:#fff;border:1px solid transparent;border-radius:7px;color:#45636e;cursor:pointer;display:inline-flex;font:inherit;font-size:.78rem;height:34px;justify-content:center;min-width:34px;padding:0 .4rem}.admin-lessons__pagination button:hover:not(:disabled),.admin-lessons__pagination button:focus-visible{background:#edfafd;border-color:#8ed9e9;color:var(--velora-primary-dark);outline:none}.admin-lessons__pagination button.is-current{background:#f1fbfd;border-color:var(--velora-primary);color:var(--velora-primary-dark);font-weight:800}.admin-lessons__pagination button:disabled{color:#a9b7bc;cursor:not-allowed}.admin-lessons__pagination>span{color:var(--velora-muted);min-width:22px;text-align:center}.admin-lessons__page-jump{align-items:center;color:var(--velora-muted);display:flex;font-size:.76rem;gap:.3rem;margin-left:.35rem;min-height:34px;position:relative}.admin-lessons__page-jump input{background:#fff;border:1px solid var(--velora-border-strong);border-radius:7px;color:var(--velora-ink);font:inherit;height:34px;outline:none;padding:0 .3rem;text-align:center;width:42px}.admin-lessons__page-jump input:focus{border-color:var(--velora-primary);box-shadow:0 0 0 3px #4fb4bb24}.admin-lessons__page-jump.has-error input{border-color:#c44c4c}.admin-lessons__page-jump small{background:#fff7f7;border:1px solid #f0caca;border-radius:5px;color:#a93737;font-size:.68rem;left:0;padding:.18rem .35rem;position:absolute;top:calc(100% + .25rem);white-space:nowrap;z-index:2}.admin-schools__filters{grid-template-columns:minmax(260px,1fr) auto}.admin-schools__archive-toggle{align-items:center;color:#52707c;display:flex;flex:0 0 auto;font-size:.85rem;font-weight:600;gap:.45rem;white-space:nowrap}.admin-schools__archive-toggle input{accent-color:var(--velora-primary);height:16px;width:16px}.admin-subjects-page{gap:1rem;min-width:0;width:100%}.admin-subjects-page .admin-page__header h1{font-size:clamp(2rem,2.6vw,2.125rem);margin-bottom:.3rem}.admin-subjects-page .admin-page__header p{font-size:.875rem}.admin-subjects__heading{min-width:0}.admin-subjects-page .admin-page__header-actions{flex:0 0 auto}.admin-subjects-page .admin-page__header-actions .button{height:40px;white-space:nowrap}.admin-subjects__toolbar{align-items:end;background:var(--velora-surface);border:1px solid var(--velora-border);border-radius:var(--velora-radius-lg);display:grid;min-height:70px;padding:.3rem .75rem}.admin-subjects__toolbar label{color:#52707c;display:grid;font-family:var(--velora-font-emphasis);font-size:.72rem;font-weight:700;gap:.2rem;min-width:0}.admin-subjects__search-control{display:block;position:relative}.admin-subjects__search-control>svg{color:#6d8993;left:.7rem;pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.admin-subjects__search-control input{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-ink);font:inherit;height:40px;min-width:0;outline:none;padding:0 .7rem 0 2rem;width:100%}.admin-subjects__search-control input:focus{border-color:var(--velora-primary);box-shadow:0 0 0 3px #4fb4bb29}.admin-subjects__table-wrap{max-width:100%;overflow-x:hidden}.admin-subjects__table{min-width:0;table-layout:fixed;width:100%}.admin-subjects__table th,.admin-subjects__table td{font-size:.875rem;line-height:1.35;padding:.55rem .75rem}.admin-subjects__table th{background:#f8fcfd;color:#5b7680;font-size:.72rem;font-weight:700;height:38px;letter-spacing:.01em;padding-bottom:.45rem;padding-top:.45rem;text-transform:none}.admin-subjects__table th:first-child{width:46%}.admin-subjects__table th:nth-child(2){width:22%}.admin-subjects__table th:nth-child(3){width:25%}.admin-subjects__table th:last-child{width:48px}.admin-subjects__table tbody td{background:transparent;border-left:0;border-right:0;border-top:0;box-shadow:none}.admin-subjects__row{height:57px;transition:background-color .16s ease}.admin-subjects__row:hover,.admin-subjects__row:focus-within{background:#f6fcfd}.admin-subjects__identity{display:grid;gap:.12rem;min-width:0}.admin-subjects__identity strong{color:var(--velora-ink);font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-subjects__code{color:var(--velora-muted);display:block;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-subjects__mobile-code{color:var(--velora-muted);display:none;font-size:.72rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-subjects__actions{text-align:center!important;width:48px}.admin-subjects__menu-trigger{background:transparent}.admin-subjects__menu-separator{border-top:1px solid #f0dddd;margin:.15rem .35rem}.admin-subjects__menu .is-danger{color:#a33c3c}.admin-subjects__menu .is-danger:hover,.admin-subjects__menu .is-danger:focus-visible{background:#fff1f1;color:#8f2f2f}.admin-schools__list-wrap{overflow-x:hidden}.admin-schools__table{min-width:0;table-layout:fixed;width:100%}.admin-schools__table th,.admin-schools__table td{font-size:.875rem;line-height:1.35;padding:.82rem .9rem}.admin-schools__table th{background:var(--velora-surface-soft);color:var(--velora-primary-dark);font-family:var(--velora-font-emphasis);font-size:.76rem;font-weight:700;letter-spacing:.035em;text-transform:uppercase}.admin-schools__table th:first-child{width:40%}.admin-schools__table th:nth-child(2){width:20%}.admin-schools__table th:nth-child(3){width:13%}.admin-schools__table th:nth-child(4){width:20%}.admin-schools__table th:last-child{width:48px}.admin-schools__table tbody td{background:transparent;border-left:0;border-right:0;border-top:0;box-shadow:none}.admin-schools__row{cursor:pointer;height:57px;transition:background-color .16s ease}.admin-schools__row:hover,.admin-schools__row[data-selected=true]{background:#f6fcfd}.admin-schools__row:focus-visible{outline:2px solid var(--velora-primary);outline-offset:-2px}.admin-schools__identity{display:grid;gap:.15rem;min-width:0}.admin-schools__identity strong,.admin-schools__identity small,.admin-schools__code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-schools__identity strong{color:var(--velora-ink);font-size:.875rem}.admin-schools__identity small{color:var(--velora-muted);font-size:.77rem}.admin-schools__mobile-teachers{display:none}.admin-schools__code{color:var(--velora-muted);display:inline-block;font-size:.78rem;max-width:100%}.admin-schools__teacher-count{color:#45636e;font-size:.8rem;font-weight:700;white-space:nowrap}.admin-schools__actions{text-align:right!important}.admin-schools__detail-button{align-items:center;background:transparent;border:1px solid transparent;border-radius:7px;color:var(--velora-muted);cursor:pointer;display:inline-flex;height:34px;justify-content:center;padding:0;width:34px}.admin-schools__detail-button:hover,.admin-schools__detail-button:focus-visible{background:#e6f8fc;border-color:#8ed9e9;color:var(--velora-primary-dark);outline:none}.admin-school-drawer-layer{top:0;right:0;bottom:0;left:0;position:fixed;z-index:130}.admin-school-drawer__backdrop{background:#081e266b;border:0;top:0;right:0;bottom:0;left:0;opacity:0;padding:0;position:absolute;transition:opacity .24s ease;width:100%}.admin-school-drawer-layer.is-open .admin-school-drawer__backdrop{opacity:1}.admin-school-drawer{background:#fff;box-shadow:-18px 0 46px #081e2633;display:flex;flex-direction:column;height:100dvh;max-width:100%;position:absolute;right:0;top:0;transform:translate(100%);transition:transform .24s cubic-bezier(.16,1,.3,1),filter .16s ease;width:min(560px,calc(100vw - 24px))}.admin-school-drawer-layer.is-open .admin-school-drawer{transform:translate(0)}@media (prefers-reduced-motion: reduce){.admin-school-drawer,.admin-school-drawer__backdrop{transition:none}}.admin-school-drawer[inert]{filter:brightness(.92);pointer-events:none;-webkit-user-select:none;user-select:none}.admin-school-drawer__header{align-items:flex-start;background:#fff;border-bottom:1px solid var(--velora-border);display:flex;flex:0 0 auto;gap:1rem;justify-content:space-between;padding:1rem 1.1rem}.admin-school-drawer__heading{display:grid;gap:.32rem;min-width:0}.admin-school-drawer__heading h2{font-size:1.35rem;line-height:1.2;margin:0;overflow-wrap:anywhere}.admin-school-drawer__meta{align-items:center;display:flex;flex-wrap:wrap;gap:.45rem}.admin-school-drawer__code{background:#eef6f8;border-radius:6px;color:#45636e;font-size:.72rem;font-weight:800;overflow-wrap:anywhere;padding:.22rem .45rem}.admin-school-drawer__header-actions{align-items:center;display:flex;flex:0 0 auto;gap:.35rem}.admin-school-drawer__close{align-items:center;background:transparent;border:0;border-radius:7px;color:var(--velora-muted);cursor:pointer;display:inline-flex;height:36px;justify-content:center;padding:0;width:36px}.admin-school-drawer__close:hover,.admin-school-drawer__close:focus-visible{background:#e9f8fb;color:var(--velora-primary-dark);outline:2px solid var(--velora-primary);outline-offset:1px}.admin-school-drawer__body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 1.1rem 1.25rem}.admin-school-drawer__readonly{background:#f1f4f5;border:1px solid #d9e2e5;border-radius:8px;color:#526b75;font-size:.8rem;margin:1rem 0 0;padding:.7rem .8rem}.admin-school-drawer__section{border-bottom:1px solid var(--velora-border);padding:1.1rem 0}.admin-school-drawer__section h3{font-size:.98rem;margin:0}.admin-school-drawer__section-heading p{color:var(--velora-muted);font-size:.77rem;line-height:1.4;margin:.25rem 0 0}.admin-school-drawer__info{display:grid;gap:.65rem 1rem;grid-template-columns:repeat(2,minmax(0,1fr));margin:.85rem 0 0}.admin-school-drawer__info div{display:grid;gap:.15rem;min-width:0}.admin-school-drawer__info dt{color:var(--velora-muted);font-size:.72rem;font-weight:700}.admin-school-drawer__info dd{font-size:.84rem;margin:0;overflow-wrap:anywhere}.admin-detail-drawer__section-action{margin-top:.85rem}.admin-detail-drawer__inline-actions{display:flex;flex-wrap:wrap;gap:.55rem}.admin-detail-drawer__value-list{color:var(--velora-ink);font-size:.84rem;line-height:1.55;margin:.75rem 0 0}.admin-school-ranges{border-top:1px solid var(--velora-border);display:grid;margin-top:.8rem}.admin-school-range-row{align-items:end;border-bottom:1px solid var(--velora-border);display:grid;gap:.65rem;grid-template-columns:minmax(125px,1fr) 100px 100px;padding:.7rem .1rem}.admin-school-range-row.has-error{background:snow}.admin-school-range-row__identity{align-self:end;display:grid;gap:.15rem}.admin-school-range-row__identity strong{font-size:.86rem}.admin-school-range-row__identity small{color:var(--velora-muted);font-size:.7rem;line-height:1.3}.admin-school-range-row label{color:#52707c;display:grid;font-size:.68rem;font-weight:800;gap:.22rem}.admin-school-range-row input{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-ink);font:inherit;font-size:.82rem;height:36px;min-width:0;padding:0 .5rem;width:100%}.admin-school-range-row input:focus{border-color:var(--velora-primary);box-shadow:0 0 0 3px #4fb4bb29;outline:none}.admin-school-range-row input:disabled{background:#f3f6f7;color:#647b84}.admin-school-range-row__error{color:#a33c3c;font-size:.72rem;line-height:1.3;margin:.1rem 0 0}.admin-school-range-row__label{color:#33515c;font-size:.8rem;font-weight:700;letter-spacing:.005em}.admin-school-subject-tabs{display:grid;gap:.35rem;margin-top:.85rem}.admin-school-subject-tabs__label{color:var(--velora-ink);font-family:var(--velora-font-emphasis);font-size:.98rem;font-weight:700;letter-spacing:normal;text-transform:none}.admin-school-subject-tabs__list{display:flex;flex-wrap:wrap;gap:.35rem}.admin-school-subject-tab{background:#f1f6f8;border:1px solid var(--velora-border);border-radius:999px;color:#4a636d;cursor:pointer;font:inherit;font-size:.8rem;font-weight:700;padding:.3rem .7rem;transition:background-color .14s ease,border-color .14s ease,color .14s ease}.admin-school-subject-tab:hover{background:#e6f4f7}.admin-school-subject-tab.is-active{background:var(--velora-primary);border-color:var(--velora-primary);color:#fff}.admin-school-subject-tab.has-error{border-color:#e0a3a3;box-shadow:inset 0 0 0 1px #e0a3a3}.admin-school-subject-tab.has-error:after{color:#dc2626;content:" •"}.admin-school-subject-tab:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.admin-school-ranges__scope-note{color:var(--velora-muted);font-size:.76rem;line-height:1.4;margin:.55rem 0 0}.admin-school-range-row__lesson{color:var(--velora-muted);font-family:var(--velora-font-base);font-size:.64rem;font-style:italic;font-weight:400;letter-spacing:0;line-height:1.3;margin-top:.1rem;min-height:1em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-school-subject-ranges{border:1px solid #dce9ec;border-radius:9px;margin-top:.7rem;overflow:hidden}.admin-school-subject-ranges summary{align-items:center;cursor:pointer;display:flex;font-size:.8rem;font-weight:800;gap:.45rem;list-style:none;padding:.65rem .75rem}.admin-school-subject-ranges summary::-webkit-details-marker{display:none}.admin-school-subject-ranges summary span{background:#e9f6f9;border-radius:999px;color:var(--velora-primary-dark);font-size:.68rem;padding:.12rem .38rem}.admin-school-subject-ranges[open] summary svg{transform:rotate(180deg)}.admin-school-subject-ranges>div{border-top:1px solid #dce9ec;display:grid}.admin-school-subject-ranges article{align-items:center;display:flex;font-size:.76rem;justify-content:space-between;padding:.55rem .75rem}.admin-school-subject-ranges article+article{border-top:1px solid #e5eef0}.admin-school-subject-ranges article div{display:grid;gap:.1rem}.admin-school-subject-ranges article div span{color:var(--velora-muted);font-size:.7rem}.admin-school-drawer__range-actions{align-items:center;display:flex;gap:.75rem;justify-content:space-between;margin-top:.8rem}.admin-school-drawer__range-actions>div{display:grid;gap:.15rem}.admin-school-drawer__dirty{color:#8a5a16;font-size:.75rem;font-weight:800}.admin-school-drawer__saved{color:#1f7a44;font-size:.75rem;font-weight:800}.admin-school-drawer .button:disabled{background:#edf2f3;border-color:#dce5e7;box-shadow:none;color:#8a9ca3;cursor:not-allowed;opacity:1}.admin-school-preview__toggle{align-items:center;background:transparent;border:0;color:var(--velora-ink);cursor:pointer;display:flex;justify-content:space-between;padding:0;text-align:left;width:100%}.admin-school-preview__toggle>span{align-items:center;display:flex;gap:.55rem}.admin-school-preview__toggle>span>span{display:grid;gap:.12rem}.admin-school-preview__toggle strong{font-size:.92rem}.admin-school-preview__toggle small{color:var(--velora-muted);font-size:.73rem;font-weight:400}.admin-school-preview__toggle[aria-expanded=true]>svg{transform:rotate(90deg)}.admin-school-preview__toggle:focus-visible{border-radius:6px;outline:2px solid var(--velora-primary);outline-offset:4px}.admin-school-preview__content{display:grid;gap:.75rem;padding-top:.85rem}.admin-school-preview__filters{align-items:end;display:grid;gap:.55rem;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.admin-school-preview__filters label{color:#52707c;display:grid;font-size:.7rem;font-weight:800;gap:.25rem}.admin-school-preview__filters select{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-ink);font:inherit;font-size:.78rem;height:38px;min-width:0;padding:0 .5rem}.admin-school-preview__filters select:focus{border-color:var(--velora-primary);box-shadow:0 0 0 3px #4fb4bb29;outline:none}.admin-school-preview__results{background:#f8fcfd;border:1px solid var(--velora-border);border-radius:9px;display:grid;gap:.55rem;padding:.65rem}.admin-school-preview__summary{display:flex;flex-wrap:wrap;gap:.4rem}.admin-school-preview__summary span{border-radius:999px;font-size:.72rem;font-weight:800;padding:.22rem .5rem}.admin-school-preview__summary .is-visible{background:#def5e6;color:#1f7a44}.admin-school-preview__summary .is-hidden{background:#fff0e6;color:#98551c}.admin-school-preview__results ul{display:grid;gap:.35rem;list-style:none;margin:0;max-height:320px;overflow-y:auto;padding:0}.admin-school-preview__results li{align-items:start;border:1px solid transparent;border-radius:7px;display:grid;gap:.35rem .55rem;grid-template-columns:minmax(0,1fr) auto;padding:.55rem .6rem}.admin-school-preview__results li.is-visible{background:#f0faf4;border-color:#d5eedf}.admin-school-preview__results li.is-hidden{background:#fff8f2;border-color:#f3dfcf}.admin-school-preview__results li>div{display:grid;gap:.12rem;min-width:0}.admin-school-preview__results li strong{font-size:.77rem;overflow-wrap:anywhere}.admin-school-preview__results li div span,.admin-school-preview__results li small{color:var(--velora-muted);font-size:.69rem}.admin-school-preview__results li small{grid-column:1 / -1}.admin-school-preview__badge{border-radius:999px;font-size:.67rem;font-weight:800;padding:.18rem .42rem;white-space:nowrap}.admin-school-preview__results li.is-visible .admin-school-preview__badge{background:#d8f1e1;color:#1f7a44}.admin-school-preview__results li.is-hidden .admin-school-preview__badge{background:#fbe2d1;color:#98551c}.admin-school-drawer__danger{align-items:center;background:#fff8f8;border:1px solid #f1d4d4;border-radius:9px;display:flex;gap:1rem;justify-content:space-between;margin-top:1rem;padding:.8rem}.admin-school-drawer__danger strong{color:#8f3434;font-size:.82rem}.admin-school-drawer__danger p{color:#7f6262;font-size:.72rem;margin:.15rem 0 0}.admin-modal.admin-school-modal,.admin-drawer-overlay.admin-detail-edit-layer{z-index:160}.admin-modal.admin-school-archive-modal,.admin-modal.admin-school-delete-impact-modal,.admin-modal.admin-school-delete-confirm-modal{z-index:200}.admin-school-drawer__restore{background:#f4faf6;border-color:#cfe6d6}.admin-school-drawer__restore strong{color:#1f6b3e}.admin-school-delete__card{max-width:520px;width:min(100%,520px)}.admin-school-delete__card--danger{border-color:#f0c2c2}.admin-school-delete__name{color:var(--velora-ink)!important;font-weight:700}.admin-school-delete__loading{color:var(--velora-muted);font-size:.88rem;margin:0}.admin-school-delete__impact{background:#f8fafb;border:1px solid var(--velora-border);border-radius:9px;padding:.7rem .85rem}.admin-school-delete__impact>strong{display:block;font-size:.82rem;margin-bottom:.4rem}.admin-school-delete__counts{display:flex;flex-wrap:wrap;gap:.4rem .9rem;list-style:none;margin:0;padding:0}.admin-school-delete__counts li{align-items:center;color:var(--velora-ink);display:flex;font-size:.85rem;font-weight:700;gap:.3rem}.admin-school-delete__teachers>strong{display:block;font-size:.82rem;margin-bottom:.35rem}.admin-school-delete__teachers ul{display:grid;gap:.4rem;list-style:none;margin:0;max-height:240px;overflow-y:auto;padding:0}.admin-school-delete__teachers li{border:1px solid var(--velora-border);border-radius:8px;display:grid;gap:.1rem;padding:.45rem .6rem}.admin-school-delete__teacher-name{font-size:.85rem;font-weight:700}.admin-school-delete__teacher-email{color:var(--velora-muted);font-size:.74rem}.admin-school-delete__teacher-meta{color:#45636e;font-size:.74rem;font-weight:600}.admin-school-delete__warn{align-items:center;color:#a33c3c;display:flex;font-size:.82rem;font-weight:700;gap:.4rem;margin:0}.admin-school-delete__chips{color:#45636e;font-size:.82rem;font-weight:600;margin:.1rem 0 0}.admin-school-delete__teacher-name em{color:var(--velora-muted);font-style:normal;font-weight:600}.admin-school-delete__blockers{background:#fff1f1;border:1px solid #f0c2c2;border-radius:9px;color:#a33c3c;padding:.65rem .8rem}.admin-school-delete__blockers>strong{display:block;font-size:.82rem;margin-bottom:.3rem}.admin-school-delete__blockers ul{display:grid;gap:.3rem;margin:0;padding-left:1.1rem}.admin-school-delete__blockers li{font-size:.8rem}.admin-access-preview{background:#f7fcfd;border:1px solid var(--velora-border);border-radius:var(--velora-radius);display:grid;gap:.55rem;padding:.75rem}.admin-access-preview__heading{align-items:center;display:flex;gap:.75rem;justify-content:space-between}.admin-access-preview__heading span{color:var(--velora-muted);font-size:.78rem}.admin-access-preview p{color:var(--velora-muted);font-size:.82rem;margin:0}.admin-access-preview ul{display:grid;gap:.3rem;list-style:none;margin:0;max-height:310px;overflow-y:auto;padding:0}.admin-access-preview li{align-items:baseline;border-radius:7px;display:grid;font-size:.78rem;gap:.4rem;grid-template-columns:18px minmax(0,1fr) auto;line-height:1.35;padding:.38rem .45rem}.admin-access-preview li.is-visible{background:#effaf3;color:#1f7a44}.admin-access-preview li.is-hidden{background:#fff7f0;color:#8a5a16}.admin-access-preview li small{color:inherit;font-size:.7rem;opacity:.8}.admin-access-preview--page{max-height:420px}.admin-access-preview__filters{background:transparent;border:0;grid-template-columns:repeat(2,minmax(0,1fr));padding:0}.admin-access-modal{max-width:650px;width:min(100%,650px)}.admin-access-modal select{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-ink);font:inherit;min-height:42px;padding:.45rem .65rem}.admin-access-modal select[multiple]{min-height:115px}.admin-field__hint{color:var(--velora-muted);font-family:var(--velora-font-body);font-size:.75rem;font-weight:400}@media (max-width: 1100px){.admin-lessons__toolbar{grid-template-columns:repeat(3,minmax(0,1fr)) auto;padding-bottom:.55rem;padding-top:.55rem}.admin-lessons__search{grid-column:1 / -1}.admin-schools__table th:first-child{width:40%}.admin-schools__table th:nth-child(2){width:20%}.admin-schools__table th:nth-child(3){width:13%}.admin-schools__table th:nth-child(4){width:20%}.admin-schools__table th:last-child{width:48px}}@media (max-width: 900px){.admin-lessons-page .admin-page__header{align-items:flex-start;flex-direction:column}.admin-lessons-page .admin-page__header-actions{justify-content:flex-start;max-width:none;width:100%}.admin-lessons__subject,.admin-lessons__table th:nth-child(4){display:none}.admin-lessons__mobile-meta{display:block}.admin-lessons__table th:nth-child(2){width:auto}.admin-schools__table th:nth-child(2),.admin-schools__table td:nth-child(2){display:none}.admin-schools__table th:first-child{width:52%}.admin-schools__table th:nth-child(3){width:15%}.admin-schools__table th:nth-child(4){width:26%}.admin-schools__table th:last-child{width:48px}}@media (max-width: 620px){.admin-lessons-page{gap:.85rem}.admin-lessons-page .admin-page__header{align-items:stretch;flex-direction:column}.admin-lessons-page .admin-page__header h1{font-size:1.85rem}.admin-lessons-page .admin-page__header-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.admin-lessons-page .admin-page__header-actions .button{font-size:.76rem;padding-left:.55rem;padding-right:.55rem}.admin-lessons-page .admin-page__header-actions .button:last-child{grid-column:1 / -1}.admin-lessons__toolbar{gap:.45rem;grid-template-columns:repeat(2,minmax(0,1fr));padding:.45rem .55rem}.admin-lessons__search{grid-column:1 / -1}.admin-lessons__toolbar>label{font-size:.68rem;gap:.1rem}.admin-lessons__advanced-wrap{align-self:end}.admin-lessons__advanced-trigger{width:100%}.admin-lessons__advanced-panel{border-bottom-left-radius:0;border-bottom-right-radius:0;bottom:0;left:0;max-height:70vh;overflow-y:auto;position:fixed;right:0;top:auto;width:100vw;z-index:145}.admin-lessons__table th,.admin-lessons__table td{padding-left:.6rem;padding-right:.6rem}.admin-lessons__table th:first-child{width:52px}.admin-lessons__table th:nth-child(3){width:52px}.admin-lessons__table th:nth-child(5){width:116px}.admin-lessons__table th:last-child{width:44px}.admin-classes-page{gap:.85rem}.admin-classes-page .admin-page__header h1{font-size:1.85rem}.admin-classes__filters{grid-template-columns:1fr 1fr}.admin-classes__mobile-school{display:block}.admin-class-drawer{width:100vw}.admin-schools__filters{grid-template-columns:1fr}.admin-schools__table th,.admin-schools__table td{padding-left:.75rem;padding-right:.75rem}.admin-schools__table th:first-child{width:50%}.admin-schools__table th:nth-child(3){width:16%}.admin-schools__table th:nth-child(4){width:27%}.admin-schools__table th:last-child{width:44px}.admin-school-drawer{width:100vw}.admin-school-drawer__header{padding:.85rem 1rem}.admin-school-drawer__body{padding-left:1rem;padding-right:1rem}.admin-school-drawer__header-actions .button span{display:none}.admin-school-preview__filters{grid-template-columns:1fr}.admin-school-preview__filters .button{width:100%}.admin-subjects-page{gap:.85rem}.admin-subjects-page .admin-page__header{align-items:flex-end;flex-direction:row;gap:.65rem}.admin-subjects-page .admin-page__header h1{font-size:1.85rem}.admin-subjects-page .admin-page__header p{line-height:1.4}.admin-subjects-page .admin-page__header-actions .button{flex:0 0 auto;padding-left:.7rem;padding-right:.7rem}.admin-subjects__toolbar{padding:.4rem .55rem}.admin-subjects__toolbar label{font-size:.68rem;gap:.1rem}.admin-subjects__table th,.admin-subjects__table td{padding-left:.65rem;padding-right:.65rem}.admin-subjects__table th:first-child{width:48%}.admin-subjects__table th:nth-child(2){width:21%}.admin-subjects__table th:nth-child(3){width:25%}.admin-subjects__table th:last-child{width:44px}}@media (max-width: 480px){.admin-lessons__grade,.admin-lessons__table th:nth-child(3),.admin-lessons__table td:nth-child(5),.admin-lessons__table th:nth-child(5){display:none}.admin-lessons__table th:first-child{width:48px}.admin-lessons__table th:last-child{width:42px}.admin-lessons__identity strong{white-space:normal}.admin-lessons__row{height:68px}.admin-lessons__pagination{gap:.18rem}.admin-lessons__pagination button{height:32px;min-width:30px;padding:0 .25rem}.admin-lessons__page-jump{margin-left:.2rem}.admin-lessons__page-jump input{height:32px;width:38px}.admin-classes__filters{grid-template-columns:1fr}.admin-schools__identity strong{white-space:normal}.admin-schools__mobile-teachers{display:block}.admin-schools__table th:nth-child(3),.admin-schools__table td:nth-child(3){display:none}.admin-schools__table th:first-child{width:64%}.admin-schools__table th:nth-child(4){width:29%}.admin-schools__table th:last-child{width:44px}.admin-schools__table .admin-status{font-size:.68rem;padding:.2rem .38rem}.admin-school-range-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.admin-school-range-row__identity{grid-column:1 / -1}.admin-school-drawer__info{grid-template-columns:1fr}.admin-school-drawer__range-actions{align-items:stretch;flex-direction:column}.admin-school-drawer__range-actions .button{width:100%}.admin-school-drawer__danger{align-items:stretch;flex-direction:column}.admin-school-drawer__danger .button{width:100%}.admin-subjects-page .admin-page__header{align-items:flex-start}.admin-subjects__heading{flex:1 1 auto}.admin-subjects-page .admin-page__header-actions .button{font-size:.76rem;margin-top:1.3rem;padding-left:.55rem;padding-right:.55rem}.admin-subjects__code-column{display:none}.admin-subjects__mobile-code{display:block}.admin-subjects__table th:first-child{width:58%}.admin-subjects__table th:nth-child(3){width:31%}.admin-subjects__table th:last-child{width:44px}.admin-subjects__table .admin-status{font-size:.68rem;padding:.2rem .38rem}}.admin-bulk-actions{align-items:center;background:#f8fdff;border:1px solid var(--velora-border);border-radius:var(--velora-radius);display:flex;flex-wrap:wrap;gap:.5rem .7rem;justify-content:flex-start;padding:.75rem .9rem}.admin-bulk-actions strong{color:var(--velora-primary-dark);font-size:.88rem;margin-right:.25rem}.admin-bulk-actions .button{cursor:pointer;min-height:36px;padding:.42rem .7rem}.admin-modal{align-items:center;background:#081e267a;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:1rem;position:fixed;z-index:40}.admin-modal__card{background:#fff;border:1px solid var(--velora-border);border-radius:var(--velora-radius-lg);box-shadow:var(--velora-shadow);display:grid;gap:.82rem;max-width:470px;padding:1.4rem;width:min(100%,470px)}.admin-modal__card h2{font-size:1.35rem;margin:0}.admin-modal__card header p,.admin-modal__preview{color:var(--velora-muted);font-size:.86rem;margin:.3rem 0 0}.admin-modal__card>label{color:#52707c;display:grid;font-family:var(--velora-font-emphasis);font-size:.8rem;font-weight:700;gap:.3rem}.admin-modal__actions{display:flex;gap:.55rem;justify-content:flex-end;margin-top:.25rem}.admin-modal__actions .button{cursor:pointer}.admin-modal__card--lesson{max-height:calc(100vh - 2rem);max-width:1000px;overflow-y:auto;width:min(100%,1000px)}.admin-files{border-top:1px solid var(--velora-border);display:grid;gap:.85rem;margin-top:.3rem;padding-top:1.05rem}.admin-files__header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.admin-files h2{font-size:1.06rem;margin:0}.admin-files__header p{color:var(--velora-muted);font-size:.82rem;line-height:1.4;margin:.25rem 0 0}.admin-files__archived{color:#8a5a16!important;max-width:260px}.admin-files__grid{display:grid;gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-upload-card{background:#fbfeff;border:1px solid var(--velora-border);border-radius:var(--velora-radius);display:grid;gap:.62rem;min-width:0;padding:.85rem}.admin-upload-card__heading{align-items:center;display:flex;gap:.7rem;justify-content:space-between}.admin-upload-card h3{color:var(--velora-ink);font-size:.92rem;margin:0}.admin-upload-card__heading span{background:#e6f8fc;border-radius:999px;color:var(--velora-primary-dark);font-family:var(--velora-font-emphasis);font-size:.71rem;font-weight:700;padding:.22rem .45rem;white-space:nowrap}.admin-upload-card__dropzone{align-items:center;border:1px dashed #9dcbd5;border-radius:var(--velora-radius-sm);color:#52707c;cursor:pointer;display:grid;gap:.18rem;justify-items:center;min-height:92px;padding:.7rem;text-align:center}.admin-upload-card__dropzone:hover{background:#f1fbfd;border-color:var(--velora-primary)}.admin-upload-card__dropzone strong{color:var(--velora-primary-dark);font-family:var(--velora-font-emphasis);font-size:.79rem}.admin-upload-card__dropzone small{color:var(--velora-muted);font-size:.73rem}.admin-upload-card__dropzone input{height:1px;opacity:0;overflow:hidden;position:absolute;width:1px}.admin-upload-card__dropzone--disabled{cursor:not-allowed;opacity:.65}.admin-upload-card__error,.admin-upload-card__success{border-radius:var(--velora-radius-sm);font-size:.76rem;margin:0;padding:.45rem .55rem}.admin-upload-card__error{background:#fff1f1;color:#a33c3c}.admin-upload-card__success{background:#e8f8ec;color:#1f7a44}.admin-upload-card__files{display:grid;gap:.35rem;min-height:29px}.admin-upload-card__files p{color:var(--velora-muted);font-size:.76rem;line-height:1.35;margin:0}.admin-upload-card__files p:not(:only-child),.admin-upload-card__files p:has(strong){background:#fff;border:1px solid #e2eef1;border-radius:7px;padding:.42rem .5rem}.admin-upload-card__files strong,.admin-upload-card__files span{display:block}.admin-upload-card__files strong{color:var(--velora-ink);font-size:.77rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-upload-card__files .admin-upload-card__file--removable{min-width:0;overflow:hidden}.admin-upload-card__files button{background:transparent;border:0;color:#a33c3c;cursor:pointer}.admin-upload-card__files button:disabled{cursor:not-allowed;opacity:.6}.admin-upload-card__files button:focus-visible{outline:2px solid var(--velora-primary);outline-offset:3px}.admin-upload-card__files .admin-upload-card__file--removable{display:grid;grid-template-columns:minmax(0,1fr) 26px;column-gap:.45rem;align-items:center;padding-block:.3rem}.admin-upload-card__file--removable strong,.admin-upload-card__file--removable>span{grid-column:1;min-width:0}.admin-upload-card__files .admin-upload-card__file--removable button{align-items:center;align-self:center;border-radius:5px;display:inline-flex;font-family:inherit;font-size:1.05rem;font-weight:400;grid-column:2;grid-row:1 / span 2;height:26px;justify-content:center;line-height:1;margin:0;padding:0;text-decoration:none;width:26px}.admin-upload-card__file--removable button:hover:not(:disabled){background:#fff1f1}@media (max-width: 620px){.admin-files__grid{grid-template-columns:minmax(0,1fr)}.admin-upload-card__heading{flex-wrap:wrap}}.admin-content-quality-page{gap:1rem;min-width:0;width:100%}.admin-content-quality-page .admin-page__header h1{font-size:clamp(2rem,2.6vw,2.125rem);margin-bottom:.3rem}.admin-content-quality-page .admin-page__header p{font-size:.875rem}.content-quality__cards{display:grid;gap:.6rem;grid-template-columns:repeat(4,minmax(0,1fr))}.content-quality__card{background:#fff;border:1px solid var(--velora-border);border-radius:var(--velora-radius);display:grid;gap:.22rem;min-height:76px;padding:.75rem .85rem}.content-quality__card-value{color:var(--velora-primary-dark);font-family:var(--velora-font-emphasis);font-size:1.4rem;font-weight:800;line-height:1}.content-quality__card:nth-child(2) .content-quality__card-value{color:#1f7a44}.content-quality__card:nth-child(n+5) .content-quality__card-value{color:#8a5a16}.content-quality__card:nth-child(8) .content-quality__card-value{color:#a33c3c}.content-quality__card-label{color:#58727c;font-size:.75rem;font-weight:700;line-height:1.3}.content-quality__filter-area{display:grid;gap:.5rem}.content-quality__toolbar{align-items:end;background:var(--velora-surface);border:1px solid var(--velora-border);border-radius:var(--velora-radius-lg);display:grid;gap:.7rem;grid-template-columns:minmax(105px,.48fr) minmax(170px,.9fr) minmax(145px,.7fr) minmax(170px,.8fr) auto;min-height:70px;padding:.3rem .75rem}.content-quality__toolbar>label:not(.content-quality__missing-filter){color:#52707c;display:grid;font-family:var(--velora-font-emphasis);font-size:.72rem;font-weight:700;gap:.2rem;min-width:0}.content-quality__toolbar select{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-ink);font:inherit;height:40px;min-width:0;outline:none;padding:0 .65rem;width:100%}.content-quality__toolbar select:focus{border-color:var(--velora-primary);box-shadow:0 0 0 3px #4fb4bb29}.content-quality__missing-filter{align-items:center;align-self:end;color:#365b68;cursor:pointer;display:flex;font-size:.78rem;font-weight:700;gap:.45rem;height:40px;white-space:nowrap}.content-quality__missing-filter input{accent-color:var(--velora-primary);height:17px;margin:0;width:17px}.content-quality__missing-filter input:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.content-quality__table-wrap{max-width:100%;overflow-x:hidden}.content-quality__table{min-width:0;table-layout:fixed;width:100%}.content-quality__table th,.content-quality__table td{font-size:.875rem;line-height:1.35;padding:.55rem .65rem}.content-quality__table th{background:#f8fcfd;color:#5b7680;font-size:.72rem;font-weight:700;height:38px;letter-spacing:.01em;padding-bottom:.45rem;padding-top:.45rem;text-transform:none}.content-quality__table th:first-child{width:54px}.content-quality__table th:nth-child(2){width:15%}.content-quality__table th:nth-child(3){width:31%}.content-quality__table th:nth-child(4){width:124px}.content-quality__table th:nth-child(n+5){width:72px}.content-quality__table tbody td{background:transparent;border-left:0;border-right:0;border-top:0;box-shadow:none}.content-quality__table td:nth-child(n+5){text-align:center}.content-quality__row{height:57px;transition:background-color .16s ease}.content-quality__row:hover,.content-quality__row:focus-within{background:#f6fcfd}.content-quality__grade{color:#45636e;font-family:var(--velora-font-emphasis);font-weight:800;text-align:center!important}.content-quality__subject span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content-quality__lesson button{background:transparent;border:0;color:inherit;cursor:pointer;display:grid;gap:.1rem;max-width:100%;min-width:0;padding:0;text-align:left}.content-quality__lesson button:hover strong{color:var(--velora-primary-dark);text-decoration:underline;text-underline-offset:2px}.content-quality__lesson button:focus-visible{border-radius:4px;outline:2px solid var(--velora-primary);outline-offset:3px}.content-quality__lesson strong,.content-quality__lesson small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content-quality__lesson strong{color:var(--velora-ink);font-size:.875rem}.content-quality__lesson small{color:var(--velora-muted);font-size:.72rem}.content-quality__mobile-meta{color:var(--velora-muted);display:none;font-size:.7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content-quality__resource{align-items:center;border-radius:999px;display:inline-flex;height:26px;justify-content:center;width:26px}.content-quality__resource.is-ready{background:#e8f8ec;color:#1f7a44}.content-quality__resource.is-missing{background:#fff3d9;color:#8a5a16}.content-quality__resource:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}@media (min-width: 821px) and (max-width: 1100px){.content-quality__toolbar{grid-template-columns:repeat(3,minmax(0,1fr));padding-bottom:.5rem;padding-top:.5rem}.content-quality__missing-filter{justify-self:start}.content-quality__table th,.content-quality__table td{padding-left:.45rem;padding-right:.45rem}.content-quality__table th:nth-child(2){width:14%}.content-quality__table th:nth-child(3){width:28%}.content-quality__table th:nth-child(4){width:112px}.content-quality__table th:nth-child(n+5){width:62px}}@media (max-width: 820px){.content-quality__cards{grid-template-columns:repeat(2,minmax(0,1fr))}.content-quality__toolbar{grid-template-columns:repeat(2,minmax(0,1fr));padding-bottom:.55rem;padding-top:.55rem}.content-quality__missing-filter{grid-column:1 / -1}.content-quality__table-wrap{background:transparent;border:0;border-radius:0}.content-quality__table,.content-quality__table tbody{display:block;width:100%}.content-quality__table thead{display:none}.content-quality__table tbody{display:grid;gap:.55rem}.content-quality__table .content-quality__row{background:#fff;border:1px solid var(--velora-border);border-radius:var(--velora-radius);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:auto;min-height:104px;overflow:hidden;padding:.7rem .75rem .55rem}.content-quality__table .content-quality__row:hover,.content-quality__table .content-quality__row:focus-within{background:#fbfeff;border-color:#9bd9e5}.content-quality__table .content-quality__row td{border:0;display:flex;padding:.25rem}.content-quality__table .content-quality__row td.content-quality__grade,.content-quality__table .content-quality__row td.content-quality__subject,.content-quality__table .content-quality__row td.content-quality__status{display:none}.content-quality__table .content-quality__lesson{grid-column:1 / -1;padding:0 0 .55rem}.content-quality__lesson button{width:100%}.content-quality__lesson strong{white-space:normal}.content-quality__mobile-meta{display:block}.content-quality__table .content-quality__row td:nth-child(n+5){align-items:center;border-top:1px solid #e8f0f2;flex-direction:column;gap:.25rem;justify-content:center;padding-top:.5rem}.content-quality__table .content-quality__row td:nth-child(n+5):before{color:var(--velora-muted);content:attr(data-label);font-size:.66rem;font-weight:700}.content-quality__table .admin-table__empty{background:#fff;border:1px solid var(--velora-border);border-radius:var(--velora-radius);display:block}}@media (max-width: 480px){.admin-content-quality-page{gap:.85rem}.admin-content-quality-page .admin-page__header h1{font-size:1.85rem}.content-quality__card{min-height:70px;padding:.65rem}.content-quality__card-value{font-size:1.25rem}.content-quality__card-label{font-size:.7rem}.content-quality__toolbar{column-gap:.45rem;padding-left:.55rem;padding-right:.55rem}.content-quality__toolbar>label:not(.content-quality__missing-filter){font-size:.68rem}.content-quality__toolbar select{padding-left:.5rem;padding-right:.5rem}.content-quality__pagination{gap:.18rem}.content-quality__pagination button{height:32px;min-width:30px;padding:0 .25rem}.content-quality__pagination .admin-lessons__page-jump{margin-left:.2rem}.content-quality__pagination .admin-lessons__page-jump input{height:32px;width:38px}}.admin-bulk{gap:1rem}.admin-bulk__head h2{font-size:1.5rem;margin:0}.admin-bulk__head p{color:var(--velora-muted);font-size:.9rem;margin:.3rem 0 0}.admin-bulk__shared{display:grid;gap:.9rem;grid-template-columns:minmax(140px,.4fr) minmax(220px,1fr)}.admin-bulk__shared label{color:#52707c;display:grid;font-family:var(--velora-font-emphasis);font-size:.8rem;font-weight:700;gap:.3rem}.admin-bulk__template{align-items:center;background:#f2fbfd;border:1px solid var(--velora-border);border-radius:var(--velora-radius);display:flex;flex-wrap:wrap;gap:.6rem 1rem;justify-content:space-between;padding:.8rem .9rem}.admin-bulk__template-actions{display:flex;flex-wrap:wrap;gap:.55rem}.admin-bulk__file-input{height:1px;opacity:0;overflow:hidden;position:absolute;width:1px}.admin-bulk__hint{color:#52707c;font-size:.82rem;line-height:1.45;margin:0;max-width:360px}.admin-bulk__paste{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius);box-shadow:0 5px 16px #15475412;display:grid;gap:.55rem;padding:.85rem}.admin-bulk__paste-hint{color:var(--velora-ink);font-family:var(--velora-font-emphasis);font-size:.85rem;font-weight:700;margin:0}.admin-bulk__paste textarea{border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-ink);font:inherit;line-height:1.5;padding:.6rem .7rem;resize:vertical;width:100%}.admin-bulk__paste textarea:focus{border-color:var(--velora-primary);box-shadow:0 0 0 3px #4fb4bb29;outline:none}.admin-bulk__paste-actions{display:flex;gap:.5rem;justify-content:flex-end}.admin-bulk__table-wrap{max-height:42vh;overflow-y:auto}.admin-bulk__table{min-width:940px}.admin-bulk__table th,.admin-bulk__table td{padding:.5rem .6rem}.admin-bulk__table th{position:sticky;top:0;z-index:1}.admin-bulk__table input,.admin-bulk__table select{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-ink);font:inherit;height:40px;padding:0 .6rem;width:100%}.admin-bulk__cell-number{width:110px}.admin-bulk__cell-error{width:220px}.admin-bulk__table th:nth-child(1),.admin-bulk__table td:nth-child(1){width:180px}.admin-bulk__table th:nth-child(2),.admin-bulk__table td:nth-child(2){width:130px}.admin-bulk__table th:nth-child(4),.admin-bulk__table td:nth-child(4){min-width:220px}.admin-bulk__row--error input{border-color:#e0a3a3}.admin-bulk__error{color:#a33c3c;font-size:.78rem;line-height:1.35}.admin-bulk__controls,.admin-page__header-actions{display:flex;flex-wrap:wrap;gap:.5rem}.admin-bulk__controls .button,.admin-page__header-actions .button{cursor:pointer}.admin-bulk--teachers .admin-bulk__table{min-width:820px}.admin-bulk--teachers .admin-bulk__table td{vertical-align:top}.admin-bulk--teachers .admin-bulk__table td:nth-child(1){min-width:190px}.admin-bulk--teachers .admin-bulk__table td:nth-child(2){min-width:210px}.admin-bulk--teachers .admin-bulk__table td:nth-child(3){min-width:145px}.admin-bulk--teachers .admin-bulk__table td:nth-child(5){min-width:210px}.admin-bulk__password-source+span{color:#52707c;display:block;font-size:.76rem;font-weight:700;margin-top:.25rem;min-height:1rem}.admin-bulk__workbook-preview{background:#fff;border:1px solid var(--velora-border);border-radius:var(--velora-radius);display:grid;gap:.8rem;padding:1rem}.admin-bulk__workbook-preview h3{color:var(--velora-ink);font-size:1rem;margin:0}.admin-bulk__workbook-classes{display:grid;gap:.35rem;list-style:none;margin:0;max-height:42vh;overflow:auto;padding:0}.admin-bulk__workbook-classes li{align-items:center;border:1px solid #d7e4e8;border-radius:var(--velora-radius-sm);display:grid;gap:.5rem;grid-template-columns:72px minmax(0,1fr) auto auto;padding:.55rem .65rem}.admin-bulk__workbook-classes li[data-invalid]{background:#fef2f2;border-color:#e8b4b4}.admin-bulk__workbook-error{color:#a33c3c;font-size:.82rem;font-weight:700}.admin-bulk__workbook-errors{background:#fef2f2;border:1px solid #e8b4b4;border-radius:var(--velora-radius-sm);color:#7f1d1d;font-size:.86rem;padding:.7rem .8rem}.admin-bulk__workbook-errors ul{margin:.45rem 0 0;padding-left:1.1rem}.admin-class-move__confirm{align-items:flex-start;display:flex;gap:.55rem;line-height:1.45}.admin-class-move__confirm input{margin-top:.2rem}@media (max-width: 620px){.admin-page__header{align-items:stretch;flex-direction:column}.admin-page__header-actions .button{flex:1 1 180px}.admin-bulk-actions .button{flex:1 1 170px}.admin-bulk__shared{grid-template-columns:1fr}.admin-bulk__template{align-items:stretch;flex-direction:column}.admin-bulk__template-actions .button{flex:1 1 150px}.admin-bulk__hint{max-width:none}.admin-bulk__controls .button{flex:1 1 130px}.admin-bulk__paste-actions .button{flex:1}.admin-bulk__workbook-classes li{grid-template-columns:1fr auto}.admin-bulk__workbook-classes li span{grid-column:1 / -1}}@media (min-width: 761px) and (max-width: 1100px){.admin-users__toolbar{column-gap:.65rem;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;padding:.4rem .65rem;row-gap:.4rem}.admin-users__toolbar>label{gap:.1rem}.admin-users__search{grid-column:1 / -1}}@media (max-width: 760px){.admin-users-page{gap:.85rem}.admin-users-page .admin-page__header h1{font-size:1.85rem}.admin-users__toolbar{column-gap:.45rem;grid-template-columns:minmax(0,1fr) minmax(0,.85fr) auto;padding:.4rem .55rem;row-gap:.4rem}.admin-users__search{grid-column:1 / -1}.admin-users__toolbar>label{font-size:.68rem;gap:.1rem}.admin-users__advanced-trigger{padding:0 .6rem}.admin-users__advanced-panel{border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0;bottom:0;left:0;max-height:min(72vh,560px);overflow-y:auto;position:fixed;right:0;top:auto;width:100%;z-index:101}.admin-users__advanced-backdrop{background:#081e2659;border:0;display:block;top:0;right:0;bottom:0;left:0;padding:0;position:fixed;width:100%;z-index:100}.admin-users__active-filters{align-items:stretch;flex-direction:column;gap:.25rem}.admin-users__clear-all{align-self:flex-start}.admin-users__table{min-width:650px}}@media (max-width: 430px){.admin-users__toolbar{grid-template-columns:minmax(0,1fr) minmax(0,.82fr) auto}.admin-users__advanced-trigger span:not(.admin-users__filter-count){display:none}.admin-users__advanced-trigger{padding:0 .65rem}.admin-users__grade-options>div{grid-template-columns:1fr}}.admin-bulk-resource__drop{align-items:center;background:#f2fbfd;border:1px dashed #9dcbd5;border-radius:var(--velora-radius);display:grid;gap:.55rem;justify-items:center;padding:1.3rem;text-align:center}.admin-bulk-resource__drop p{color:#52707c;font-family:var(--velora-font-emphasis);margin:0}.admin-bulk-resource__review-title{color:var(--velora-ink);font-family:var(--velora-font-emphasis);font-size:.9rem;font-weight:700;margin:.2rem 0 0}.admin-bulk-resource__summary{display:flex;flex-wrap:wrap;gap:.5rem 1.2rem}.admin-bulk-resource__summary span{background:#eef6f8;border-radius:999px;color:#41606b;font-size:.82rem;font-weight:700;padding:.3rem .7rem}.admin-bulk-resource__review{display:grid;gap:.85rem;max-height:44vh;overflow-y:auto}.admin-bulk-resource__group{background:#fbfeff;border:1px solid var(--velora-border);border-radius:var(--velora-radius);padding:.7rem .85rem}.admin-bulk-resource__group h3{font-size:.95rem;margin:0 0 .45rem}.admin-bulk-resource__group ul{display:grid;gap:.35rem;list-style:none;margin:0;padding:0}.admin-bulk-resource__group li{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.admin-bulk-resource__slot{background:#e6f8fc;border-radius:999px;color:var(--velora-primary-dark);font-family:var(--velora-font-emphasis);font-size:.72rem;font-weight:700;padding:.2rem .5rem}.admin-bulk-resource__name{color:var(--velora-ink);font-size:.85rem}.admin-bulk-resource__status{color:#41606b;font-size:.78rem;font-weight:700;margin-left:auto}.admin-bulk-resource__problem{background:#fff8ef;border:1px solid #f0dcc0;border-radius:var(--velora-radius);padding:.7rem .85rem}.admin-bulk-resource__problem h3{color:#8a5a16;font-size:.92rem;margin:0 0 .5rem}.admin-bulk-resource__problem-row{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.4rem}.admin-bulk-resource__problem-row select{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);font:inherit;height:38px;padding:0 .55rem}.admin-bulk-resource__reason{color:#a33c3c;font-size:.78rem}.surface-card{background:var(--velora-surface);border:1px solid var(--velora-border);border-radius:var(--velora-radius-lg)}.eyebrow{color:var(--velora-primary-dark);font-family:var(--velora-font-emphasis);font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.button,.brand-logo,.field__label,.login-card__recovery button,.top-bar__link,.teacher-menu,.lesson-card__title,.sidebar__settings,.resource-button,.course-player__error,.course-resource-action,.classes-page__heading p,.grade-card__art em,.viewer-page__header a{font-family:var(--velora-font-emphasis)}:where(h1,h2,h3,h4,h5,h6,strong,b){font-family:var(--velora-font-emphasis);font-weight:700}.button{align-items:center;border:1px solid transparent;border-radius:var(--velora-radius-sm);display:inline-flex;font-size:.92rem;font-weight:700;gap:.5rem;justify-content:center;min-height:42px;padding:.62rem 1rem;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}.button:hover,.icon-button:hover{transform:translateY(-1px)}.button:active,.icon-button:active{transform:translateY(0)}.button--primary{background:var(--velora-primary);box-shadow:0 6px 16px #178a584d;color:#fff}.button--primary:hover{background:var(--velora-primary-hover)}.button--secondary{background:var(--velora-surface);border-color:var(--velora-border);color:var(--velora-primary-dark)}.button--secondary:hover{background:var(--velora-surface-soft);border-color:var(--velora-primary)}.button--outline{background:#fff;border-color:var(--velora-primary);color:var(--velora-primary-dark)}.button--outline:hover{background:var(--velora-surface-soft)}.button--quiet{background:transparent;color:var(--velora-muted)}.button--quiet:hover{background:var(--velora-surface-soft);color:var(--velora-ink)}.button--success{background:var(--velora-success);color:#fff}.button--success:hover{background:#248959}.button--danger{background:#dc2626;color:#fff}.button--danger:hover:not(:disabled){background:#b91c1c}.lesson-data__bulk{align-items:center;background:var(--velora-surface-soft);border:1px solid var(--velora-border);border-radius:var(--velora-radius-sm);display:flex;gap:1rem;justify-content:space-between;margin-bottom:.75rem;padding:.5rem .85rem}.lesson-data__table th,.lesson-data__table td{vertical-align:middle}.lesson-data__check{text-align:center;width:48px}.lesson-data__check input{accent-color:var(--velora-primary);height:16px;width:16px}.lesson-data__action{text-align:right;width:60px}.lesson-data__delete{color:#b91c1c}.lesson-data__delete:hover{background:#fef2f2;color:#dc2626}.lesson-data__empty{align-items:center;color:var(--velora-muted);display:flex;flex-direction:column;gap:.35rem;padding:2.25rem 1rem;text-align:center}.lesson-data__empty p{color:var(--velora-ink);font-weight:700;margin:.2rem 0 0}.lesson-data__empty span{font-size:.86rem}.button--danger{background:#fff1f1;border-color:#f0c2c2;color:#a33c3c}.button--danger:hover{background:#fde2e2;color:#812b2b}.icon-button{align-items:center;background:transparent;border:0;border-radius:50%;color:var(--velora-primary-dark);display:inline-flex;height:38px;justify-content:center;padding:0;transition:background .16s ease,transform .16s ease;width:38px}.icon-button:hover{background:var(--velora-surface-soft)}.icon-button--outlined{border:1px solid var(--velora-border)}.login-page{--login-green: #078b58;--login-green-dark: #056841;--login-green-soft: #e7f7ed;align-items:center;background:linear-gradient(#ffffff4d,#ffffff4d),url(/login-background.png) center / cover no-repeat;display:flex;justify-content:center;min-height:100vh;overflow:hidden;padding:2rem;position:relative}.login-card{background:#fffffff5;border:1px solid rgba(218,232,223,.9);border-radius:20px;box-shadow:0 18px 48px #0e502f1f;max-width:400px;padding:2.2rem 2rem 1.5rem;position:relative;width:min(100%,400px)}.brand-logo{align-items:center;color:var(--velora-primary-dark);display:inline-flex;font-size:1.55rem;font-weight:700;gap:.65rem;letter-spacing:-.04em}.brand-logo__mark{align-items:center;display:inline-flex;height:34px;justify-content:center;width:34px}.brand-logo__mark img{display:block;height:100%;object-fit:contain;width:100%}.login-card .brand-logo--compact{align-items:center;color:var(--login-green);flex-direction:column;font-size:1.34rem;gap:.42rem;justify-content:center;text-align:center;width:100%}.login-card .brand-logo--compact .brand-logo__mark{flex:0 0 auto;height:72px;width:72px}.login-card .brand-logo--compact .brand-logo__name{display:block;line-height:1}.login-card__intro{margin:1.65rem 0 1.4rem;text-align:center}.login-card__intro h1{color:#124b34;font-size:1.28rem;letter-spacing:.025em;margin:0 0 .45rem}.login-card__intro p{color:#708278;font-size:.84rem;line-height:1.5;margin:0}.field{display:block;margin:0 0 1.05rem}.field__label{color:#3e484e;display:block;font-size:.88rem;font-weight:700;margin:0 0 .48rem}.field__control{align-items:center;color:#6e797e;display:flex;position:relative}.field__control>svg{left:.9rem;position:absolute}.field__input{background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);color:var(--velora-ink);height:48px;outline:none;padding:0 .95rem 0 2.95rem;transition:border .16s ease,box-shadow .16s ease;width:100%}.field__control--trailing .field__input{padding-right:3.05rem}.field__trailing{align-items:center;display:flex;position:absolute;right:.55rem}.field__trailing-button{align-items:center;background:transparent;border:0;border-radius:7px;color:#5f7783;display:inline-flex;height:34px;justify-content:center;padding:0;width:34px}.field__trailing-button:hover{background:var(--velora-primary-pale);color:var(--velora-primary-dark)}.field__trailing-button:focus-visible{outline:2px solid var(--velora-primary);outline-offset:1px}.field__input:focus{border:2px solid var(--velora-primary);box-shadow:0 0 0 4px var(--velora-focus-ring)}.field__input--masked{-webkit-text-security:disc;text-security:disc}.field--floating{display:block;margin:0 0 1.05rem}.field--floating .field__input{padding:1.15rem .95rem .15rem}.field--floating .field__control--trailing .field__input{padding-right:3.05rem}.field--floating .field__label{position:absolute;left:1rem;top:50%;transform:translateY(-50%);margin:0;color:#6e797e;font-size:1rem;font-weight:500;pointer-events:none;background:transparent;transition:top .18s ease,transform .18s ease,font-size .18s ease,color .18s ease}.field--floating .field__input:focus~.field__label,.field--floating .field__input:not(:placeholder-shown)~.field__label{top:.5rem;transform:translateY(0);font-size:.72rem;font-weight:700;color:var(--velora-primary-dark)}.field--floating-icon{--field-icon-left: .85rem;--field-content-left: 2.72rem}.field__leading{align-items:center;display:inline-flex;justify-content:center;left:var(--field-icon-left, .9rem);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%);width:1.15rem}.field--floating-icon .field__input{padding-left:var(--field-content-left)}.field--floating-icon .field__label,.field--floating-icon .field__input:focus~.field__label,.field--floating-icon .field__input:not(:placeholder-shown)~.field__label{left:var(--field-content-left)}@media (prefers-reduced-motion: reduce){.field--floating .field__label{transition:none}}.login-forgot__card{display:flex;flex-direction:column;gap:1rem;padding:1.6rem;width:min(420px,92vw)}.login-forgot__head{align-items:center;display:flex;justify-content:space-between}.login-forgot__head h2{color:var(--velora-primary-dark);font-size:1.15rem;margin:0}.login-forgot__msg{color:var(--velora-ink);margin:0}.login-forgot__contact{color:var(--velora-muted);display:flex;flex-direction:column;gap:.35rem;list-style:none;margin:0;padding:.4rem 0}.login-forgot__contact a{color:var(--velora-primary-dark);font-weight:700}input[type=password]::-ms-reveal,input[type=password]::-ms-clear{display:none}.settings-page__notice{color:var(--velora-primary-dark);font-weight:700;margin:.6rem 0}.login-card .field{margin-bottom:.8rem}.login-card__field .field{margin-bottom:.24rem}.login-card__field-error{color:#b42318;font-size:.74rem;font-weight:700;line-height:1.25;margin:0;min-height:.95rem;padding-left:.1rem}.login-card .field__input{border-color:#d5e2d9;border-radius:9px;height:52px;padding-bottom:.3rem;padding-top:1.25rem}.login-card .field__control{color:#75a188}.login-card .field__control:focus-within{color:var(--login-green)}.login-card .field__input:focus{border-color:var(--login-green);border-width:1px;box-shadow:0 0 0 3px #078b5821}.login-card .field__input--invalid,.login-card .field__input--invalid:focus{border-color:#d25b5b;box-shadow:0 0 0 3px #d25b5b21}.login-card .field--floating .field__label{color:#738278;font-size:.88rem}.login-card .field--floating .field__input:focus~.field__label,.login-card .field--floating .field__input:not(:placeholder-shown)~.field__label{color:var(--login-green-dark)}.login-card .field__trailing-button{color:#718077}.login-card .field__trailing-button:hover{background:var(--login-green-soft);color:var(--login-green-dark)}.login-card .field__trailing-button:focus-visible{outline-color:var(--login-green)}.login-card__recovery{align-items:center;display:flex;font-size:.78rem;justify-content:flex-end;margin:.15rem 0 1.15rem}.login-card__recovery button{background:none;border:0;color:var(--login-green);font-weight:800;padding:0}.login-card__recovery button:hover,.login-card__recovery button:focus-visible{color:var(--login-green-dark);text-decoration:underline}.login-card__recovery button:focus-visible{outline:2px solid var(--login-green);outline-offset:3px}.login-card .button--primary{background:linear-gradient(135deg,#19aa6d,var(--login-green));box-shadow:0 8px 16px #078b5833;font-size:.9rem;font-weight:800;min-height:48px;width:100%}.login-card .button--primary:hover:not(:disabled){background:linear-gradient(135deg,#0d9a60,var(--login-green-dark));box-shadow:0 10px 20px #078b5842;transform:translateY(-1px)}.login-card .button--primary:focus-visible{outline:3px solid rgba(7,139,88,.35);outline-offset:3px}.login-card .button--primary:disabled{background:#8fcbb0;box-shadow:none}.login-card__submit{width:100%}.login-card__error{background:#fff1f1;border:1px solid #f0c2c2;border-radius:8px;color:#a33c3c;font-size:.84rem;line-height:1.4;margin:0 0 1rem;padding:.7rem .8rem}.login-card footer{border-top:1px solid #e5eee8;color:#87958d;font-size:.71rem;margin-top:1.35rem;padding-top:1rem;text-align:center}.spin{animation:velora-spin .8s linear infinite}@keyframes velora-spin{to{transform:rotate(360deg)}}.app-shell{background:var(--velora-canvas);min-height:100vh}.top-bar{align-items:center;background:#ffffffd6;border-bottom:1px solid var(--velora-border);display:flex;gap:2rem;height:74px;padding:0 2.5rem;position:sticky;top:0;z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.top-bar>.brand-logo{flex:0 0 auto}.top-bar__subjects{align-items:center;display:flex;flex:1 1 0;gap:.2rem;min-width:0;overflow:visible;position:relative}.top-bar__subjects::-webkit-scrollbar{display:none}.course-context-selector{position:relative}.course-context-selector__trigger{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--velora-radius-sm);color:var(--velora-ink);cursor:pointer;display:inline-flex;gap:.45rem;min-height:40px;padding:.4rem .65rem}.course-context-selector__trigger:hover,.course-context-selector__trigger[aria-expanded=true]{background:var(--velora-primary-pale);border-color:var(--velora-border-strong);color:var(--velora-primary-dark)}.course-context-selector__trigger--current{color:var(--velora-primary-dark);font-family:var(--velora-font-emphasis)}.course-context-selector__trigger:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.course-context-selector__subject{font-family:var(--velora-font-emphasis);font-weight:800}.course-context-selector__grade{color:var(--velora-muted);font-size:.84rem;font-weight:700}.course-context-selector__menu{background:#fff;border:1px solid var(--velora-border);border-radius:var(--velora-radius);box-shadow:0 14px 32px #092b3b29;display:grid;gap:.2rem;left:0;min-width:180px;padding:.4rem;position:absolute;top:calc(100% + .4rem);z-index:35}.course-context-selector--overflow>.course-context-selector__menu{left:auto;right:0;width:220px}.course-context-selector__overflow-menu{max-height:min(70vh,520px);overflow-y:auto}.course-context-selector__overflow-item{display:grid;gap:.15rem}.course-context-selector__overflow-subject{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--velora-radius-sm);color:var(--velora-ink);cursor:pointer;display:flex;font-weight:700;justify-content:space-between;min-height:40px;padding:.5rem .65rem;text-align:left;width:100%}.course-context-selector__overflow-subject:hover,.course-context-selector__overflow-subject[aria-expanded=true],.course-context-selector__overflow-subject--current{background:var(--velora-primary-pale);border-color:var(--velora-border-strong);color:var(--velora-primary-dark)}.course-context-selector__overflow-grades{border-left:2px solid var(--velora-border-strong);display:grid;gap:.15rem;margin:0 .25rem .25rem .65rem;padding-left:.25rem}.course-context-selector__option--nested{min-height:36px}.course-context-selector__empty{color:var(--velora-muted);font-size:.8rem;padding:.55rem .65rem;white-space:nowrap}.course-context-selector__option{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--velora-radius-sm);color:var(--velora-ink);cursor:pointer;display:flex;font-weight:700;justify-content:space-between;min-height:40px;padding:.5rem .65rem;text-align:left}.course-context-selector__option:hover,.course-context-selector__option:focus-visible,.course-context-selector__option[aria-checked=true]{background:var(--velora-primary-pale);border-color:var(--velora-border-strong);color:var(--velora-primary-dark)}.course-context-selector__option:focus-visible{outline:2px solid var(--velora-primary);outline-offset:1px}.top-bar__account{align-items:center;background:#ffffffeb;display:flex;flex:0 0 auto;gap:.45rem;margin-left:auto;position:relative;z-index:40}.teacher-menu{align-items:center;border-radius:var(--velora-radius-sm);display:flex;font-size:.9rem;font-weight:700;gap:.42rem;padding:.45rem .55rem}.teacher-menu:hover,.teacher-menu--active{background:var(--velora-primary-pale);color:var(--velora-primary-dark)}.top-bar__settings{display:none}.app-shell__body{display:flex;height:calc(100vh - 74px);overflow:hidden}.app-shell__body--admin{align-items:stretch}.app-shell__body--wide{display:block;height:auto;overflow:visible}.app-shell__content{flex:1 1 auto;min-width:0;overflow-x:visible;overflow-y:auto;padding:12px 2rem}.app-shell__body--wide .app-shell__content{overflow:visible}.admin-sidebar{--admin-sidebar-w: 248px;background:#ffffffc7;border-right:1px solid var(--velora-border);display:flex;flex:0 0 var(--admin-sidebar-w);overflow:hidden;transition:flex-basis .2s ease,width .2s ease,border-color .2s ease;width:var(--admin-sidebar-w)}.admin-sidebar__inner{display:flex;flex-direction:column;min-height:100%;padding:1.15rem .75rem;width:var(--admin-sidebar-w)}.admin-sidebar__heading{align-items:center;display:flex;gap:.5rem;padding:.35rem .55rem .9rem}.admin-sidebar__eyebrow{color:var(--velora-muted);font-family:var(--velora-font-emphasis);font-size:.68rem;font-weight:800;letter-spacing:.08em;white-space:nowrap}.admin-sidebar__toggle{align-items:center;background:transparent;border:0;border-radius:8px;color:var(--velora-muted);cursor:pointer;display:inline-flex;height:30px;justify-content:center;margin-left:auto;padding:0;width:30px}.admin-sidebar__toggle:hover{background:#092b3b0f;color:var(--velora-primary-dark)}.admin-sidebar__toggle:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.admin-sidebar__nav{display:grid;gap:1rem;overflow-y:auto}.admin-sidebar__group{display:grid;gap:.18rem}.admin-sidebar__group h2{color:var(--velora-muted);font-family:var(--velora-font-emphasis);font-size:.66rem;letter-spacing:.08em;margin:.2rem .65rem .25rem}.admin-sidebar__link{align-items:center;border:1px solid transparent;border-radius:var(--velora-radius);color:var(--velora-ink);display:flex;font-size:.86rem;font-weight:700;gap:.65rem;min-height:42px;padding:.55rem .65rem;text-decoration:none;transition:background .15s ease,border-color .15s ease,color .15s ease}.admin-sidebar__link:hover{background:var(--velora-surface-soft);border-color:var(--velora-border)}.admin-sidebar__link--active{background:var(--velora-primary-pale);border-color:transparent;color:var(--velora-primary-dark)}.admin-sidebar__link--active svg{color:var(--velora-teal-strong)}.admin-sidebar__link:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.teacher-sidebar .admin-sidebar__link{font-weight:500;position:relative}.teacher-sidebar .admin-sidebar__link--active{color:var(--velora-primary-dark);font-weight:500}.teacher-sidebar .admin-sidebar__link--active svg{color:var(--velora-primary);stroke-width:2.5}.teacher-sidebar .admin-sidebar__link--active:after{display:none}.teacher-sidebar .admin-sidebar__link:hover:not(.admin-sidebar__link--active):not(.admin-sidebar__link--section-current){background:var(--velora-surface-soft);border-color:var(--velora-border)}.teacher-sidebar .admin-sidebar__link:active{box-shadow:inset 0 0 0 1px #2384593d;transform:none}.admin-sidebar--collapsed{flex-basis:64px;width:64px}.admin-sidebar--collapsed .admin-sidebar__inner{padding-left:.5rem;padding-right:.5rem;width:64px}.admin-sidebar--collapsed .brand-logo__name,.admin-sidebar--collapsed .admin-sidebar__eyebrow,.admin-sidebar--collapsed .admin-sidebar__group h2,.admin-sidebar--collapsed .admin-sidebar__link span{display:none}.admin-sidebar--collapsed .admin-sidebar__heading{justify-content:center;padding-left:0;padding-right:0}.admin-sidebar--collapsed .admin-sidebar__toggle{margin-left:0}.admin-sidebar--collapsed .admin-sidebar__link{justify-content:center;padding-left:0;padding-right:0}.sidebar{--sidebar-w: 320px;background:#ffffffb8;border-right:1px solid var(--velora-border);display:flex;flex:0 0 var(--sidebar-w);overflow:hidden;transition:flex-basis .25s ease 0s,width .25s ease 0s,border-color .25s ease 0s;width:var(--sidebar-w)}.sidebar__inner{display:flex;flex-direction:column;height:100%;opacity:1;padding:1.25rem .85rem;transform:none;transition:opacity .18s ease .25s,transform .18s ease .25s;width:var(--sidebar-w)}.sidebar--collapsed{border-right-color:transparent;flex-basis:0;transition:flex-basis .25s ease .18s,width .25s ease .18s,border-color .25s ease .18s;width:0}.sidebar--collapsed .sidebar__inner{opacity:0;transform:translate(-8px);transition:opacity .18s ease 0s,transform .18s ease 0s}.sidebar__heading{align-items:center;color:var(--velora-primary-dark);display:flex;gap:.58rem;padding:.4rem .55rem 1rem}.sidebar__heading h2{font-size:1rem;margin:0;white-space:nowrap}.sidebar__toggle{align-items:center;background:transparent;border:0;border-radius:8px;color:var(--velora-muted);cursor:pointer;display:inline-flex;flex:0 0 auto;height:30px;justify-content:center;margin-left:auto;padding:0;transition:background .15s ease,color .15s ease;width:30px}.sidebar__toggle:hover{background:#092b3b0f;color:var(--velora-primary-dark)}.sidebar__toggle:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.sidebar-rail{align-items:center;background:#ffffffb8;border-right:1px solid var(--velora-border);display:flex;flex:0 0 56px;flex-direction:column;gap:.5rem;justify-content:space-between;overflow:hidden;padding:1rem .5rem;width:56px}.sidebar-rail__btn{align-items:center;background:transparent;border:0;border-radius:10px;color:var(--velora-primary-dark);cursor:pointer;display:inline-flex;flex:0 0 auto;height:40px;justify-content:center;text-decoration:none;transition:background .15s ease;width:40px}.sidebar-rail__btn:hover{background:#092b3b0f}.sidebar-rail__btn:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.sidebar__list{display:grid;flex:1 1 auto;gap:.45rem;min-height:0;overflow-y:auto;scrollbar-color:rgba(9,43,59,.14) transparent;scrollbar-width:thin}.sidebar__list:hover{scrollbar-color:rgba(9,43,59,.32) transparent}.sidebar__list::-webkit-scrollbar{width:8px}.sidebar__list::-webkit-scrollbar-track{background:transparent}.sidebar__list::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:#092b3b24;border:2px solid transparent;border-radius:8px;transition:background-color .22s ease}.sidebar__list:hover::-webkit-scrollbar-thumb{background-color:#092b3b52}.sidebar__list::-webkit-scrollbar-thumb:hover{background-color:#092b3b80}.sidebar__settings{align-items:center;border-top:1px solid var(--velora-border);color:var(--velora-muted);display:flex;font-size:.82rem;font-weight:700;gap:.5rem;margin:auto .45rem 0;padding-top:1rem}.sidebar__empty{color:var(--velora-muted);font-size:.82rem;margin:.5rem}.lesson-card{background:transparent;border:1px solid transparent;border-radius:var(--velora-radius);color:var(--velora-ink);padding:.85rem .8rem .8rem;position:relative;text-align:left;transition:background .15s ease,border-color .15s ease;width:100%}.lesson-card:hover{background:#f4fbfd;border-color:var(--velora-border)}.lesson-card--active{background:#ecfaff;border-color:#b2e6f2;box-shadow:0 5px 14px #4fb4bb14}.lesson-card--active:before{background:var(--velora-primary);border-radius:5px;content:"";height:65%;left:-1px;position:absolute;top:18%;width:4px}.lesson-card__title{align-items:flex-start;display:flex;font-size:.88rem;font-weight:700;gap:.45rem;line-height:1.35}.lesson-card__icon{color:var(--velora-muted);flex:0 0 auto;margin-top:.05rem}.lesson-card__icon--done{color:var(--velora-success)}.lesson-card__title-text{flex:1 1 auto;min-width:0}.lesson-card__summary{color:var(--velora-muted);display:block;font-size:.75rem;line-height:1.35;margin-top:.36rem}.course-page__status{color:var(--velora-muted);margin:1rem auto;max-width:720px;text-align:center}.course-page__status--error{color:#a33c3c}.course-player{overflow:hidden}.course-page__viewer{margin-top:0}.course-toolbar{align-items:center;background:transparent;border:0;box-shadow:none;display:flex;flex-direction:column;gap:.5rem;justify-content:center;padding:0}.course-toolbar .course-player__tabs{margin-bottom:0}.course-player__empty{align-items:center;color:var(--velora-muted);display:flex;flex-direction:column;gap:.35rem;justify-content:center;min-height:220px;padding:2.4rem;text-align:center}.course-player__empty h2{color:var(--velora-ink);font-size:1.2rem;margin:.6rem 0 0}.course-player__empty p{margin:0}.material-chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.material-chip{background:#fff;border:1px solid var(--velora-border);border-radius:999px;color:var(--velora-ink);cursor:pointer;font-size:.85rem;font-weight:700;padding:.4rem .9rem}.material-chip:hover{border-color:var(--velora-primary)}.material-chip--active{background:#e6f7fb;border-color:var(--velora-primary);color:var(--velora-primary)}.viewer-panel__file-actions{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:1.4rem}.viewer-panel__file-actions .button{margin-top:0}.course-player__body{padding:1.2rem 2rem 2rem}.course-player__tabs{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:center;margin-bottom:1.25rem}.course-player__lesson{margin:0 auto;max-width:720px;text-align:center}.course-player h1{font-size:clamp(1.45rem,3vw,2.15rem);letter-spacing:-.03em;margin:.35rem 0 .65rem}.course-player__lesson>p{color:var(--velora-muted);line-height:1.6;margin:0}.resource-button{align-items:center;background:#fff;border:1px solid var(--velora-border);border-radius:11px;color:#52707c;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:700;gap:.5rem;min-height:44px;padding:.55rem 1.25rem;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}.resource-button:hover{background:#f2fbfd;border-color:#9dddeb;color:var(--velora-primary-dark)}.resource-button--active{background:#e0f7fc;border-color:var(--velora-primary);box-shadow:0 4px 12px #4fb4bb29;color:var(--velora-primary-dark)}.resource-button:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.resource-button:disabled{background:#f4f7f8;border-color:#e1e8eb;box-shadow:none;color:#9aabb2;cursor:not-allowed}.course-player__download-state{align-items:center;background:#f4fbfd;border:1px solid var(--velora-border);border-radius:var(--velora-radius);display:flex;gap:1rem;margin:1.7rem auto 0;max-width:720px;padding:1.1rem 1.2rem;text-align:left}.course-player__download-state>svg{color:var(--velora-primary);flex:0 0 auto}.course-player__download-state h2{font-size:1rem;margin:0}.course-player__download-state p{color:var(--velora-muted);font-size:.84rem;line-height:1.45;margin:.24rem 0 0}.course-player__download-state .button{margin-left:auto;white-space:nowrap}.course-player__resources{margin:1.65rem auto 0;max-width:850px;text-align:center}.course-player__resources h2{color:var(--velora-primary-dark);font-size:1rem;margin:0}.course-player__resource-actions{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;margin-top:.75rem}.course-player__empty{color:var(--velora-muted);font-size:.88rem;margin:.5rem}.course-player__error{color:#a33c3c!important;font-weight:700}.course-resource-action{align-items:center;background:#fff;border:1px solid var(--velora-border);border-radius:10px;color:var(--velora-primary-dark);display:inline-flex;font-size:.86rem;font-weight:700;gap:.55rem;justify-content:center;min-height:46px;padding:.65rem .9rem;transition:background .15s ease,border-color .15s ease,transform .15s ease}.course-resource-action:hover,.course-resource-action--active{background:#e6f9fd;border-color:#8ed9e9;transform:translateY(-1px)}.classes-page{margin:1rem auto 0;max-width:1520px;padding:clamp(1.5rem,4vw,2.5rem)}.classes-page__heading h1{color:var(--velora-primary-dark);font-size:clamp(2rem,5vw,2.8rem);letter-spacing:-.045em;margin:.45rem 0}.classes-page__heading p{align-items:center;display:flex;font-size:1.25rem;font-weight:700;gap:.65rem;margin:0}.classes-page__heading p span{background:var(--velora-primary-dark);border-radius:999px;height:4px;width:40px}.grade-grid{display:grid;gap:1.2rem;grid-template-columns:repeat(5,minmax(0,1fr));margin:2.5rem 0 3rem}.grade-card{background:#fff;border:1px solid var(--velora-border);border-radius:var(--velora-radius);color:inherit;cursor:pointer;overflow:hidden;padding:0;text-align:left;text-decoration:none;transition:transform .16s ease-out,box-shadow .16s ease-out,border-color .16s ease-out}.grade-card:hover,.grade-card--selected{border-color:var(--velora-primary);box-shadow:var(--velora-shadow);transform:translateY(-2px)}.grade-card:active{box-shadow:0 2px 8px #092b3b1a;transform:translateY(0) scale(.99)}.grade-card__art{align-items:center;background:linear-gradient(145deg,#1e8ba8,#bcecf5);display:flex;height:160px;justify-content:center;overflow:hidden;position:relative}.grade-card__art i{align-items:center;background:#ffffffd1;border:8px solid rgba(18,85,104,.45);border-radius:24px;color:#236d7d;display:flex;font-size:4rem;font-style:normal;height:88px;justify-content:center;transform:rotate(-5deg);width:120px}.grade-card__art em{background:#82efad;border-radius:999px;color:#166e47;font-size:.76rem;font-style:normal;font-weight:700;padding:.45rem .75rem;position:absolute;right:.75rem;top:.75rem}.grade-card--green .grade-card__art{background:linear-gradient(145deg,#196d6e,#a2ddcf)}.grade-card--green .grade-card__art i{border-radius:8px;color:#49806e}.grade-card--yellow .grade-card__art{background:linear-gradient(145deg,#5d6955,#f5d47c)}.grade-card--yellow .grade-card__art i{background:#ffcb57;border-color:#efb53d;color:#695131}.grade-card--violet .grade-card__art{background:linear-gradient(145deg,#282a49,#9d9dde)}.grade-card--violet .grade-card__art i{background:#d9e4ff;border-color:#8193d6;color:#5366a0}.grade-card--rose .grade-card__art{background:linear-gradient(145deg,#fff8f7,#d5eaf2)}.grade-card--rose .grade-card__art i{background:#f1c4ca;border-color:#256d80;border-radius:50%;color:#075d77}.grade-card__content{display:grid;gap:.5rem;min-height:138px;padding:1.2rem}.grade-card__content strong{color:var(--velora-ink);font-size:1.15rem}.grade-card__content small{color:var(--velora-muted);font-size:.9rem;line-height:1.45}.admin-grade-catalog{align-items:end;display:flex;flex-wrap:wrap;gap:.75rem 1rem;margin-top:1rem}.admin-grade-catalog label{color:var(--velora-ink);flex-basis:100%;font-size:.86rem;font-weight:700}.admin-grade-catalog>div{align-items:center;display:flex;gap:.65rem;width:min(100%,460px)}.admin-grade-catalog input{border:1px solid var(--velora-border-strong);border-radius:9px;flex:1;min-height:42px;padding:.55rem .75rem}.grade-card--archived{display:flex;flex-direction:column;opacity:.82}.grade-card--archived:hover{border-color:var(--velora-border);box-shadow:none;transform:none}.grade-card--archived>.button{align-self:stretch;justify-content:center;margin:0 1rem 1rem}.grade-card--add{align-items:center;background:#fbfdfe;border:2px dashed var(--velora-border-strong);box-shadow:none;color:var(--velora-muted);cursor:pointer;display:flex;flex-direction:column;gap:.6rem;justify-content:center;min-height:336px;padding:1.2rem;text-align:center}.grade-card--add:hover{background:#f2fafc;border-color:#83d3e5;color:var(--velora-primary);transform:translateY(-4px)}.grade-card--add span{font-family:var(--velora-font-emphasis);font-size:1.05rem;font-weight:700}.classes-page__footer{align-items:center;border-top:1px solid var(--velora-border);display:flex;justify-content:space-between;padding-top:1.8rem}.classes-page__footer p{font-size:.95rem;font-style:italic;margin:0}.classes-page__footer div{display:flex;gap:.75rem}.classes-page__hint{align-items:center;color:#7290a0;display:flex;font-size:.76rem;gap:.4rem;justify-content:center;margin:1rem 0 0}.classes-page__status{align-items:center;color:var(--velora-muted);display:flex;font-size:.9rem;gap:.5rem;justify-content:center;margin:3rem 0}.classes-page__status--error{color:#a33c3c}.viewer-page__header{align-items:center;color:#516271;display:flex;font-size:.86rem;gap:1rem;justify-content:space-between;margin-bottom:.8rem}.viewer-page__header a{align-items:center;color:var(--velora-primary-dark);display:flex;font-weight:700;gap:.35rem}.viewer-page__header button{background:#fff;border:1px solid var(--velora-border);border-radius:8px;color:var(--velora-primary-dark);display:grid;height:34px;place-items:center;width:34px}.viewer-panel{background:#0d2f3d;border-radius:var(--velora-radius-lg);box-shadow:var(--velora-shadow);overflow:hidden;position:relative}.viewer-panel__toolbar{background:#fffffff5;display:flex;gap:.5rem;overflow-x:auto;padding:.7rem 1rem}.viewer-panel__canvas{background:radial-gradient(circle at 55% 25%,#1c647a,#092b3b 67%);color:#fff;min-height:600px;overflow:hidden;padding:clamp(1.5rem,4vw,3.2rem);position:relative}.viewer-panel__meta{align-items:start;display:flex;flex-wrap:wrap;gap:.7rem 1rem;justify-content:space-between}.viewer-panel__meta .eyebrow{background:#0e93ae;border-radius:5px;color:#fff;padding:.35rem .5rem}.viewer-panel__meta h1{flex-basis:100%;font-size:clamp(1.65rem,4vw,2.7rem);margin:0}.viewer-panel__meta>span:last-child{background:#ffffff1f;border:1px solid rgba(255,255,255,.18);border-radius:9px;margin-top:-2.4rem;padding:.7rem .9rem}.viewer-panel--message{align-items:center;color:#fff;display:flex;flex-direction:column;justify-content:center;min-height:520px;padding:2rem;text-align:center}.viewer-panel--message h2{font-size:1.35rem;margin:1rem 0 .5rem}.viewer-panel--message p{color:#ffffffc7;line-height:1.6;margin:0;max-width:560px}.viewer-panel--message .button{margin-top:1.4rem}.viewer-panel--document{background:#fff;height:calc(100vh - 150px)}.viewer-panel--document iframe{border:0;height:100%;width:100%}.viewer-panel--presentation{background:transparent;border-radius:0;box-shadow:none;display:flex;flex-direction:column;overflow:hidden;position:relative}.viewer-panel--presentation>iframe{border:0;flex:1;min-height:0;width:100%}.viewer-panel--video{align-items:center;display:flex;justify-content:center;min-height:520px;padding:2rem}.viewer-panel--video video{max-height:72vh;max-width:100%}.viewer-panel--skeleton{align-items:center;background:#f8faf9;border:1px solid #e2e8e5;display:flex;flex-direction:column;gap:.75rem;height:calc(100vh - 150px);justify-content:center;padding:2rem}.viewer-panel--video{align-items:center;background:#fff;border:1px solid var(--velora-border);min-height:0;padding:clamp(.75rem,1.5vw,1.25rem)}.viewer-panel--video video{display:block;height:auto;max-height:calc(100vh - 170px);object-fit:contain;width:100%}.viewer-panel--video video:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.viewer-panel--video{background:transparent;border:0;box-shadow:none;padding:12px 0 0}.viewer-panel--video video{max-height:calc(100vh - 195px)}.viewer-skeleton__surface{aspect-ratio:16 / 9;background:linear-gradient(100deg,#e5e7eb 30%,#f3f4f6,#e5e7eb 70%);background-size:220% 100%;border-radius:14px;max-width:940px;width:min(78%,940px);animation:viewer-skeleton-shimmer 1.6s ease-in-out infinite}.viewer-skeleton__details{display:flex;flex-direction:column;gap:.42rem;width:min(78%,940px)}.viewer-skeleton__bar{background:linear-gradient(100deg,#e5e7eb 30%,#f3f4f6,#e5e7eb 70%);background-size:220% 100%;border-radius:999px;display:block;height:10px;width:30%;animation:viewer-skeleton-shimmer 1.6s ease-in-out infinite}.viewer-skeleton__bar--short{width:18%}.viewer-skeleton__label{color:#6b7280;font-size:.84rem;font-weight:600;letter-spacing:.01em;margin:.1rem 0 0}@keyframes viewer-skeleton-shimmer{0%{background-position:180% 0}to{background-position:-180% 0}}@media (prefers-reduced-motion: reduce){.viewer-skeleton__surface,.viewer-skeleton__bar{animation:none}}.viewer-panel__slide{align-items:center;display:grid;gap:clamp(1.5rem,4vw,4rem);grid-template-columns:minmax(250px,.9fr) minmax(290px,1.1fr);margin:2.7rem auto 1rem;max-width:1000px}.cell-visual{aspect-ratio:1;background:radial-gradient(circle at 35% 35%,#abe5d1,#4a8c84 48%,#153f5b 71%);border:4px solid #67d1dc;border-radius:30% 44% 33% 47%;box-shadow:inset 0 0 0 17px #eaffd74d,0 20px 42px #0000003d;position:relative;transform:rotate(-5deg)}.cell-visual__wall{border:4px dashed #dff4a5;border-radius:inherit;top:10%;right:10%;bottom:10%;left:10%;position:absolute}.cell-visual__vacuole{background:radial-gradient(circle at 30% 30%,#d7fffa,#7ac5d6);border:5px solid #4e92a9;border-radius:50% 42% 44% 50%;height:49%;left:27%;position:absolute;top:26%;width:47%}.cell-visual__nucleus{background:#7e5bc5;border:5px solid #c49cfa;border-radius:50%;height:20%;left:18%;position:absolute;top:21%;width:20%}.cell-visual__chloroplast{background:#6bc557;border:4px solid #c4ef7f;border-radius:999px;height:14%;position:absolute;width:23%}.cell-visual__chloroplast--one{bottom:20%;left:17%}.cell-visual__chloroplast--two{right:15%;top:20%}.cell-visual__chloroplast--three{bottom:19%;right:14%}.viewer-panel__notes{display:grid;gap:.8rem}.viewer-panel__notes article{align-items:center;background:#ffffff17;border:1px solid rgba(255,255,255,.16);border-radius:12px;display:flex;gap:.9rem;padding:.85rem}.viewer-panel__notes b{align-items:center;background:#0e93ae;border-radius:8px;display:grid;flex:0 0 37px;height:37px;place-items:center}.viewer-panel__notes strong{font-size:1rem}.viewer-panel__notes p{color:#ffffffbd;font-size:.84rem;line-height:1.35;margin:.15rem 0 0}.viewer-panel__nav,.viewer-panel__expand{align-items:center;background:#ffffff21;border:1px solid rgba(255,255,255,.2);border-radius:50%;color:#fff;display:flex;height:44px;justify-content:center;position:absolute;top:50%;width:44px}.viewer-panel__nav--previous{left:1rem}.viewer-panel__nav--next{right:1rem}.viewer-panel__expand{right:1rem;top:1rem}.annotation-toolbar{align-items:center;background:#fffffff5;border:1px solid var(--velora-border);border-radius:999px;bottom:1.2rem;box-shadow:var(--velora-shadow);display:flex;gap:.15rem;left:50%;padding:.35rem;position:absolute;transform:translate(-50%)}.annotation-toolbar button{background:transparent;border:0;border-radius:50%;color:var(--velora-primary-dark);display:grid;height:35px;place-items:center;width:35px}.annotation-toolbar button:hover{background:#e9faff}.annotation-toolbar span{background:var(--velora-border);height:22px;margin:0 .2rem;width:1px}.settings-page{margin:1rem auto;max-width:1050px}.settings-page__heading h1{font-size:clamp(2rem,4vw,2.6rem);letter-spacing:-.04em;margin:.35rem 0 .5rem}.settings-page__heading p{color:var(--velora-muted);margin:0}.settings-page__heading--compact h1{margin:0}.account-summary{align-items:center;display:flex;gap:1rem;margin:1.75rem 0 2.2rem;padding:1.25rem}.settings-page__heading--compact+.account-summary{margin:1rem 0 1.5rem}.account-summary>span{align-items:center;background:#ddf6fb;border-radius:12px;color:var(--velora-primary-dark);display:grid;height:62px;place-items:center;width:62px}.account-summary h2{font-size:1.08rem;margin:0}.account-summary p{color:var(--velora-muted);font-size:.86rem;margin:.25rem 0 0}.account-summary .button{margin-left:auto}.settings-page__groups{display:grid;gap:1.55rem}.settings-page__groups section>h2{font-size:1rem;margin:0 0 .75rem}.settings-page__groups section>div{display:grid;gap:.65rem}.settings-card{align-items:center;display:flex;gap:1rem;padding:1rem 1.1rem}.settings-card__icon{align-items:center;background:#eaf9fc;border-radius:10px;color:var(--velora-primary-dark);display:grid;height:42px;place-items:center;width:42px}.settings-card h3{font-size:.93rem;margin:0}.settings-card p{color:var(--velora-muted);font-size:.82rem;margin:.25rem 0 0}.support-card{align-items:center;background:linear-gradient(110deg,#f2fbfd,#fff);display:flex;gap:1rem;margin-top:1.5rem;padding:1.15rem}.support-card>svg{color:var(--velora-success)}.support-card h2{font-size:1rem;margin:0}.support-card p{color:var(--velora-muted);font-size:.84rem;margin:.25rem 0 0}.support-card .button{margin-left:auto}.settings-page__actions{display:flex;gap:.3rem;justify-content:flex-end;margin-top:.75rem}.account-modal__card{gap:1.05rem;max-width:480px;width:min(100%,480px)}.account-modal__card header h2{font-size:1.4rem}.account-modal__fields{display:grid;gap:.95rem}.account-modal__card .field{margin:0}.account-modal__card .field__input{height:46px;padding:0 .95rem}.account-modal__card .field__control--trailing .field__input{padding-right:3.05rem}@media (max-width: 1100px){.grade-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.sidebar{--sidebar-w: 270px}.top-bar{padding:0 1.4rem}}@media (max-width: 760px){.top-bar{gap:.5rem;height:62px;padding:0 1rem}.brand-logo{font-size:1.2rem}.brand-logo__mark{height:29px;width:29px}.top-bar__nav,.teacher-menu span,.teacher-menu svg:last-child{display:none}.top-bar__settings{display:inline-flex}.top-bar__subjects{gap:0;min-width:0}.course-context-selector__trigger{gap:.25rem;max-width:100%;padding-left:.4rem;padding-right:.4rem}.course-context-selector__subject{max-width:24vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell__body{display:block;height:auto;overflow:visible}.sidebar{border-bottom:1px solid var(--velora-border);border-right:0;flex:none;max-height:none;overflow:visible;width:auto}.sidebar--collapsed{flex-basis:auto;width:auto}.sidebar__inner{padding:.65rem 1rem;transition:none;width:auto}.sidebar--collapsed .sidebar__inner{opacity:1;transform:none}.sidebar__toggle,.sidebar-rail{display:none}.sidebar__heading{padding:.3rem 0 .55rem}.sidebar__list{display:flex;gap:.5rem;min-height:0;overflow-x:auto;overflow-y:visible}.lesson-card{flex:0 0 210px}.app-shell__content{overflow:visible}.sidebar__settings{display:none}.app-shell__content{padding:1rem}.grade-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin:1.5rem 0}.grade-card__art{height:120px}.grade-card__art i{font-size:3rem;height:68px;width:94px}.grade-card__content{min-height:120px;padding:.9rem}.classes-page__footer,.support-card{align-items:stretch;flex-direction:column}.classes-page__footer div{justify-content:stretch}.classes-page__footer .button{flex:1}.course-player__body{padding:1.4rem}.course-player__download-state{align-items:stretch;flex-direction:column;text-align:center}.course-player__download-state .button{margin-left:0}.course-player__resource-actions{align-items:stretch;flex-direction:column}.course-resource-action{width:100%}.viewer-panel__canvas{min-height:710px;padding:1.25rem}.viewer-panel__slide{grid-template-columns:1fr;margin-top:1.5rem}.viewer-panel__meta>span:last-child{margin:0}.viewer-panel__nav{bottom:1rem;top:auto}.viewer-panel__nav--previous{left:calc(50% - 51px)}.viewer-panel__nav--next{left:calc(50% + 7px);right:auto}.annotation-toolbar{bottom:1rem}.account-summary{align-items:flex-start;flex-wrap:wrap}.account-summary .button,.support-card .button{margin-left:0}.settings-page__actions{justify-content:start}.login-card{padding:2rem 1.35rem}}@media (max-width: 450px){.login-page{padding:1rem}.grade-grid{grid-template-columns:1fr}.classes-page{margin-top:0}.classes-page__footer div{flex-direction:column}.viewer-panel__toolbar{padding-left:.6rem}.viewer-panel__meta h1{font-size:1.45rem}.course-player__actions .button{width:100%}.annotation-toolbar{transform:translate(-50%) scale(.9)}}@media (max-width: 760px){.app-shell__body--admin{display:block;height:auto;overflow:visible}.admin-sidebar,.admin-sidebar--collapsed{border-bottom:1px solid var(--velora-border);border-right:0;display:block;flex:none;width:auto}.admin-sidebar__inner,.admin-sidebar--collapsed .admin-sidebar__inner{min-height:0;padding:.6rem 1rem .7rem;width:auto}.admin-sidebar__heading{padding:.15rem 0 .55rem}.admin-sidebar__nav{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.1rem}.admin-sidebar__group,.admin-sidebar--collapsed .admin-sidebar__group{display:contents}.admin-sidebar__group h2,.admin-sidebar--collapsed .admin-sidebar__group h2{display:none}.admin-sidebar__link,.admin-sidebar--collapsed .admin-sidebar__link{flex:0 0 auto;justify-content:flex-start;min-height:38px;padding:.45rem .65rem}.admin-sidebar--collapsed .admin-sidebar__eyebrow,.admin-sidebar--collapsed .admin-sidebar__link span{display:inline}.admin-sidebar--collapsed .admin-sidebar__heading{justify-content:flex-start;padding-left:0;padding-right:0}.admin-sidebar--collapsed .admin-sidebar__toggle{margin-left:auto}}@media (max-width: 760px){.top-bar__course-selector{max-width:44vw}.course-context-selector__trigger{gap:.25rem;max-width:100%;padding-left:.4rem;padding-right:.4rem}.course-context-selector__subject{max-width:20vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-context-selector__grade{font-size:.76rem}.app-shell__body--course-admin{display:grid;grid-template-columns:64px minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);height:calc(100vh - 62px);overflow:hidden}.app-shell__body--course-admin>.admin-sidebar{border-bottom:0;border-right:1px solid var(--velora-border);display:flex;flex:0 0 64px;grid-column:1;grid-row:1 / span 2;width:64px}.app-shell__body--course-admin>.admin-sidebar .admin-sidebar__inner{min-height:100%;padding:.6rem .5rem;width:64px}.app-shell__body--course-admin .admin-sidebar--collapsed .brand-logo__name,.app-shell__body--course-admin .admin-sidebar--collapsed .admin-sidebar__eyebrow,.app-shell__body--course-admin .admin-sidebar--collapsed .admin-sidebar__group h2,.app-shell__body--course-admin .admin-sidebar--collapsed .admin-sidebar__link span{display:none}.app-shell__body--course-admin .admin-sidebar--collapsed .admin-sidebar__heading{justify-content:center}.app-shell__body--course-admin .admin-sidebar--collapsed .admin-sidebar__link{justify-content:center;padding-left:0;padding-right:0}.app-shell__body--course-admin .admin-sidebar__nav{display:grid;overflow-y:auto}.app-shell__body--course-admin .admin-sidebar__group{display:grid}.app-shell__body--course-admin .admin-sidebar__group h2{display:block}.app-shell__body--course-admin .admin-sidebar--collapsed .admin-sidebar__group h2{display:none}.app-shell__body--course-admin>.sidebar{border-bottom:1px solid var(--velora-border);border-right:0;display:flex;flex:none;grid-column:2;grid-row:1;max-height:none;width:auto}.app-shell__body--course-admin>.sidebar .sidebar__inner{padding:.65rem 1rem;width:auto}.app-shell__body--course-admin>.sidebar .sidebar__list{display:flex;gap:.5rem;min-height:0;overflow-x:auto;overflow-y:visible}.app-shell__body--course-admin>.sidebar .sidebar__toggle{display:inline-flex}.app-shell__body--course-admin>.sidebar .lesson-card{flex:0 0 210px}.app-shell__body--course-admin>.app-shell__content{grid-column:2;grid-row:2;min-width:0;overflow-y:auto;padding:1rem}.app-shell__body--course-admin .admin-sidebar--overlay:not(.admin-sidebar--collapsed){bottom:0;left:0;position:fixed;top:62px;width:min(85vw,248px);z-index:30}.app-shell__body--course-admin .app-shell__admin-backdrop{top:62px;right:0;bottom:0;left:0;position:fixed;z-index:25}}.app-shell--workspace{background:var(--velora-canvas)}.app-shell--workspace .app-shell__body--admin,.app-shell--workspace .app-shell__body--teacher,.app-shell--workspace .app-shell__body--teacher-course{height:100vh}.sidebar-brand{border-bottom:1px solid var(--velora-border);margin-bottom:.55rem;padding:.35rem .55rem .8rem}.sidebar-brand .brand-logo{font-size:1.2rem}.teacher-utility{align-items:center;display:flex;gap:.55rem;justify-content:flex-end;margin:0 0 .9rem;min-width:0}.teacher-utility .icon-button{background:#fff;border:1px solid var(--velora-border);box-shadow:0 1px 2px #092b3b12;color:var(--velora-primary-dark);height:44px;width:44px}.teacher-utility .icon-button:hover{background:var(--velora-surface-soft);border-color:var(--velora-border-strong);color:var(--velora-primary-dark)}.teacher-utility .icon-button:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.teacher-utility>.notification-bell,.teacher-utility>.teacher-menu{flex:0 0 auto}.teacher-utility .teacher-menu{background:#fff;border:1px solid var(--velora-border);border-radius:999px;box-shadow:0 1px 2px #092b3b12;gap:.5rem;padding:.3rem .7rem .3rem .45rem}.teacher-utility .teacher-menu:hover{background:var(--velora-surface-soft);border-color:var(--velora-border-strong)}.teacher-utility .teacher-menu>svg:first-child{color:var(--velora-primary-dark);flex:0 0 auto}.teacher-menu__id{display:grid;line-height:1.15;text-align:left}.teacher-menu__id strong{font-size:.88rem}.teacher-menu__id small{color:var(--velora-muted);font-size:.72rem;font-weight:700}.expanding-search-dock{flex:0 0 auto;height:44px;overflow:hidden;position:relative;transition:width .26s cubic-bezier(.22,1,.36,1);width:44px}.expanding-search-dock.is-expanded{width:clamp(300px,23vw,328px)}.expanding-search-dock__trigger,.expanding-search-dock__form{background:var(--velora-surface);border:1px solid var(--velora-border);box-shadow:0 1px 2px #092b3b12;color:var(--velora-primary-dark);top:0;right:0;bottom:0;left:0;position:absolute}.expanding-search-dock__trigger{align-items:center;border-radius:50%;cursor:pointer;display:inline-flex;height:44px;justify-content:center;left:auto;padding:0;right:0;transition:background .18s ease,border-color .18s ease,color .18s ease,opacity .12s ease;width:44px}.expanding-search-dock__trigger:hover{background:var(--velora-surface-soft);border-color:var(--velora-primary-pale)}.expanding-search-dock__trigger:focus-visible,.expanding-search-dock__close:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.expanding-search-dock__form{align-items:center;border-radius:999px;display:flex;gap:.48rem;opacity:0;padding:0 .38rem 0 .78rem;pointer-events:none;transition:border-color .18s ease,box-shadow .18s ease,opacity .14s ease;visibility:hidden}.expanding-search-dock.is-expanded .expanding-search-dock__trigger{opacity:0;pointer-events:none}.expanding-search-dock.is-expanded .expanding-search-dock__form{opacity:1;pointer-events:auto;transition-delay:.04s,.04s,.04s;visibility:visible}.expanding-search-dock__form:focus-within{border-color:var(--velora-primary);box-shadow:0 0 0 3px #4fb4bb29}.expanding-search-dock__icon{color:var(--velora-primary-dark);flex:0 0 auto}.expanding-search-dock__form input{background:transparent;border:0;color:var(--velora-ink);flex:1 1 auto;font:inherit;height:40px;min-width:0;outline:0;padding:0}.expanding-search-dock__form input::placeholder{color:var(--velora-muted);opacity:1}.expanding-search-dock__form input::-webkit-search-cancel-button{display:none}.expanding-search-dock__close{align-items:center;background:transparent;border:0;border-radius:50%;color:var(--velora-muted);cursor:pointer;display:inline-flex;flex:0 0 auto;height:32px;justify-content:center;padding:0;transition:background .18s ease,color .18s ease;width:32px}.expanding-search-dock__close:hover{background:var(--velora-surface-soft);color:var(--velora-primary-dark)}@media (prefers-reduced-motion: reduce){.expanding-search-dock,.expanding-search-dock__trigger,.expanding-search-dock__form,.expanding-search-dock__close{transition:none}}.admin-sidebar__link--soon{color:var(--velora-muted);cursor:default}.admin-sidebar__link--soon:hover{background:transparent;border-color:transparent}.admin-sidebar__link--soon svg{opacity:.7}.teacher-sidebar__soon{background:#eef3f6;border-radius:999px;color:#6b7c8a;font-size:.58rem;font-style:normal;font-weight:800;letter-spacing:.04em;margin-left:auto;padding:.18rem .42rem;text-transform:uppercase;white-space:nowrap}.teacher-nav-group{display:block;min-width:0}.teacher-nav-group__header{align-items:center;display:flex;gap:.15rem;min-width:0}.teacher-nav-group__header .admin-sidebar__link{flex:1 1 auto;min-width:0}.teacher-nav-group__sub{display:grid;grid-template-rows:0fr;transition:grid-template-rows .21s ease}.teacher-nav-group:hover>.teacher-nav-group__sub,.teacher-nav-group:focus-within>.teacher-nav-group__sub,.teacher-nav-group.is-current>.teacher-nav-group__sub{grid-template-rows:1fr}.teacher-nav-group__sub>div{min-height:0;overflow:hidden}.teacher-subjects__link{display:flex;margin:.1rem .25rem;min-width:0;padding:.45rem .55rem .45rem 2.42rem;border-radius:var(--velora-radius-sm);color:var(--velora-muted);font-size:.82rem;font-weight:500;text-decoration:none}.teacher-subjects__link:hover{background:var(--velora-surface-soft);color:var(--velora-ink)}.teacher-subjects__link:active{background:#0f8f6a1a;box-shadow:inset 0 0 0 1px #2384592e}.teacher-subjects__link--active{background:var(--velora-primary-pale);color:var(--velora-primary-dark)}.teacher-nav-state-icon{display:inline-grid;flex:0 0 18px;height:18px;place-items:center;position:relative;width:18px}.teacher-nav-state-icon>svg{height:18px;top:0;right:0;bottom:0;left:0;position:absolute;transform-origin:center;transition:opacity .18s ease-out,transform .18s ease-out;width:18px;will-change:opacity,transform}.teacher-nav-state-icon__resting{opacity:1;transform:scale(1) rotate(0)}.teacher-nav-state-icon__active{opacity:0;transform:scale(.94) rotate(-2deg)}.teacher-nav-state-icon--active .teacher-nav-state-icon__resting{animation:teacher-nav-icon-out .18s ease-out both;opacity:0;transform:scale(.94) rotate(2deg)}.teacher-nav-state-icon--active .teacher-nav-state-icon__active{animation:teacher-nav-icon-in .18s ease-out both;opacity:1;transform:scale(1) rotate(0)}@keyframes teacher-nav-icon-out{0%{opacity:1;transform:scale(1) rotate(0)}to{opacity:0;transform:scale(.94) rotate(2deg)}}@keyframes teacher-nav-icon-in{0%{opacity:0;transform:scale(.94) rotate(-2deg)}to{opacity:1;transform:scale(1) rotate(0)}}.teacher-nav-group.is-child-current .teacher-nav-group__header .admin-sidebar__link{color:var(--velora-primary-dark);font-weight:500}.teacher-nav-group.is-child-current .teacher-nav-state-icon{color:var(--velora-primary)}.overflow-marquee{display:block;min-width:0;overflow:hidden;white-space:nowrap;width:100%}.overflow-marquee__track{display:inline-block;max-width:none;transform:translate(0);transition:none;white-space:nowrap}.admin-sidebar__link:hover .overflow-marquee.is-overflowing .overflow-marquee__track,.teacher-subjects__link:hover .overflow-marquee.is-overflowing .overflow-marquee__track,.lesson-card:hover .overflow-marquee.is-overflowing .overflow-marquee__track,.course-nav__item:hover .overflow-marquee.is-overflowing .overflow-marquee__track,.course-nav__subitem:hover .overflow-marquee.is-overflowing .overflow-marquee__track,.course-nav__compact-picker:hover .overflow-marquee.is-overflowing .overflow-marquee__track,.admin-sidebar__link:focus-visible .overflow-marquee.is-overflowing .overflow-marquee__track,.teacher-subjects__link:focus-visible .overflow-marquee.is-overflowing .overflow-marquee__track,.lesson-card:focus-visible .overflow-marquee.is-overflowing .overflow-marquee__track,.course-nav__item:focus-visible .overflow-marquee.is-overflowing .overflow-marquee__track,.course-nav__subitem:focus-visible .overflow-marquee.is-overflowing .overflow-marquee__track{transform:translate(var(--overflow-shift));transition:transform var(--overflow-duration, .9s) ease-out var(--overflow-delay, .6s)}@media (prefers-reduced-motion: reduce){.teacher-nav-group__sub,.overflow-marquee__track,.teacher-nav-state-icon>svg{animation:none!important;transition:none!important}.admin-sidebar__link:hover .overflow-marquee.is-overflowing,.teacher-subjects__link:hover .overflow-marquee.is-overflowing,.lesson-card:hover .overflow-marquee.is-overflowing,.course-nav__item:hover .overflow-marquee.is-overflowing,.course-nav__subitem:hover .overflow-marquee.is-overflowing,.course-nav__compact-picker:hover .overflow-marquee.is-overflowing,.admin-sidebar__link:focus-visible .overflow-marquee.is-overflowing,.teacher-subjects__link:focus-visible .overflow-marquee.is-overflowing,.lesson-card:focus-visible .overflow-marquee.is-overflowing,.course-nav__item:focus-visible .overflow-marquee.is-overflowing,.course-nav__subitem:focus-visible .overflow-marquee.is-overflowing{overflow:visible;white-space:normal}.admin-sidebar__link:hover .overflow-marquee.is-overflowing .overflow-marquee__track,.teacher-subjects__link:hover .overflow-marquee.is-overflowing .overflow-marquee__track,.lesson-card:hover .overflow-marquee.is-overflowing .overflow-marquee__track,.course-nav__item:hover .overflow-marquee.is-overflowing .overflow-marquee__track,.course-nav__subitem:hover .overflow-marquee.is-overflowing .overflow-marquee__track,.course-nav__compact-picker:hover .overflow-marquee.is-overflowing .overflow-marquee__track,.admin-sidebar__link:focus-visible .overflow-marquee.is-overflowing .overflow-marquee__track,.teacher-subjects__link:focus-visible .overflow-marquee.is-overflowing .overflow-marquee__track,.lesson-card:focus-visible .overflow-marquee.is-overflowing .overflow-marquee__track,.course-nav__item:focus-visible .overflow-marquee.is-overflowing .overflow-marquee__track,.course-nav__subitem:focus-visible .overflow-marquee.is-overflowing .overflow-marquee__track{transform:none;white-space:normal}}.teacher-dash{display:grid;gap:1.15rem;margin:0 auto;max-width:1520px}.teacher-dash__hero{align-items:center;background:linear-gradient(180deg,#ffffff 0%,var(--velora-surface-soft) 100%);box-shadow:var(--velora-shadow);display:flex;gap:1.5rem;overflow:hidden;padding:1.5rem clamp(1.25rem,3vw,2rem);position:relative}.teacher-dash__hero:after{background:radial-gradient(circle at 72% 28%,rgba(79,180,187,.18),transparent 58%);content:"";top:0;right:0;bottom:0;left:0;pointer-events:none;position:absolute}.teacher-dash__hero-text{position:relative;z-index:1}.teacher-dash__title{align-items:center;display:flex;flex-wrap:wrap;gap:.7rem;margin:.4rem 0 .5rem}.teacher-dash__title h1{color:var(--velora-primary-dark);font-size:clamp(1.9rem,4vw,2.6rem);letter-spacing:-.045em;margin:0}.subject-pill{align-items:center;background:var(--velora-primary-pale);border:1px solid var(--velora-border-strong);border-radius:999px;color:var(--velora-primary-dark);display:inline-flex;font-family:var(--velora-font-emphasis);font-size:.82rem;font-weight:800;gap:.35rem;padding:.3rem .8rem}.teacher-dash__context{color:var(--velora-muted);font-size:1rem;margin:0}.teacher-dash__context strong{color:var(--velora-ink)}.teacher-dash__hero-art{align-items:center;background:linear-gradient(150deg,#1e8ba8,#bcecf5);border-radius:20px;color:#fff;display:grid;flex:0 0 auto;height:84px;margin-left:auto;place-items:center;position:relative;width:84px;z-index:1}.teacher-dash__hero--illustrated{aspect-ratio:5 / 1;background:#e8fbf6 url(/teacher-overview-hero.png) center / cover no-repeat;border:0;border-radius:var(--velora-radius-lg);box-shadow:none;min-height:0;padding:0;position:relative}.teacher-dash__hero--illustrated:after{display:none}.teacher-dash__hero--illustrated .teacher-dash__quote{background:transparent;border:0;box-sizing:border-box;height:72%;margin:0;max-width:none;min-width:0;overflow:hidden;padding:0;position:absolute;right:3.1%;top:12%;width:31.4%;z-index:1}.teacher-dash__hero--illustrated .teacher-dash__quote p{align-items:center;box-sizing:border-box;color:#075c3d;display:flex;font-family:var(--velora-font-emphasis);font-size:clamp(9px,1.1vw,19px);font-style:italic;font-weight:600;top:22%;right:5%;bottom:10%;left:9%;justify-content:center;letter-spacing:-.02em;line-height:1.5;margin:0;max-width:100%;min-width:0;overflow-wrap:anywhere;padding:0 .2em;position:absolute;text-align:center;text-shadow:0 1px 0 rgba(255,255,255,.78);text-wrap:balance;visibility:visible;white-space:normal;width:auto;z-index:2}.teacher-stats{border-top:2px solid var(--velora-primary);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:hidden;padding:.35rem 0}.stat-cell{align-items:center;display:flex;gap:.9rem;padding:1.1rem 1.4rem;position:relative}.stat-cell:before{background:var(--velora-border);content:"";display:none;height:52%;left:0;position:absolute;top:24%;width:1px}.stat-cell:not(:first-child):before{display:block}.stat-cell__icon{align-items:center;border-radius:14px;display:grid;flex:0 0 auto;height:48px;place-items:center;width:48px}.stat-cell--grades .stat-cell__icon{background:#e2f4fb;color:#0b6f8c}.stat-cell--subjects .stat-cell__icon{background:#ddf6ea;color:#1c8a5a}.stat-cell--lessons .stat-cell__icon{background:#ece7fb;color:#6a4dbf}.stat-cell--downloads .stat-cell__icon{background:#fdeede;color:#c47a1e}.stat-cell__text{display:grid;min-width:0}.stat-cell__value{color:var(--velora-ink);font-size:1.7rem;font-weight:800;line-height:1.1}.stat-cell__label{color:var(--velora-muted);font-size:.82rem}@media (max-width: 900px){.teacher-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-cell:before{display:none}.stat-cell:nth-child(2n):before{display:block}.stat-cell:nth-child(n+3){border-top:1px solid var(--velora-border)}}@media (max-width: 480px){.teacher-stats{grid-template-columns:1fr}.stat-cell:before{display:none}.stat-cell:not(:first-child){border-top:1px solid var(--velora-border)}}.teacher-dash__grid{align-items:start;display:grid;gap:1.15rem;grid-template-columns:minmax(0,1fr) 340px}.teacher-section__head{margin:0 0 .85rem}.teacher-section__head h2{font-size:1.15rem;margin:0}.teacher-section__head p{color:var(--velora-muted);font-size:.86rem;margin:.2rem 0 0}.teacher-empty{color:var(--velora-muted);font-size:.9rem;padding:1.1rem 1.2rem}.grade-grid--dash{grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.subject-grades{display:grid;gap:1.15rem}.subject-grades__head h1{color:var(--velora-primary-dark);font-size:clamp(1.3rem,2.2vw,1.7rem);line-height:1.25;margin:0}.subject-grades__head p{color:var(--velora-muted);font-size:.9rem;line-height:1.5;margin:.25rem 0 0}.subject-grades .subject-grade-grid.grade-grid--dash{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),280px));justify-content:center;width:100%}.recent-download-table-wrap{border:1px solid var(--velora-border);border-radius:var(--velora-radius-sm);overflow:hidden}.recent-download-table{border-collapse:collapse;table-layout:fixed;width:100%}.recent-download-table th,.recent-download-table td{border-bottom:1px solid var(--velora-border);padding:0;text-align:left}.recent-download-table tbody:last-child tr:last-child>*{border-bottom:0}.recent-download-table__group-row th{background:#f1f3f4;border-top:1px solid var(--velora-border);padding:.56rem .72rem}.recent-download-table tbody:first-of-type .recent-download-table__group-row th{border-top:0}.recent-download-table__group-row h3{color:var(--velora-primary-dark);font-size:.84rem;font-weight:800;line-height:1.35;margin:0;overflow-wrap:anywhere}.recent-download-table__lesson-row button{background:#fff;border:0;color:var(--velora-ink);cursor:pointer;display:block;font:inherit;font-size:.83rem;font-weight:700;line-height:1.4;min-height:40px;overflow-wrap:anywhere;padding:.62rem .72rem;text-align:left;transition:background .15s ease,color .15s ease;width:100%}.recent-download-table__lesson-row button:hover{background:var(--velora-surface-soft);color:var(--velora-primary-dark)}.recent-download-table__lesson-row button:focus-visible{box-shadow:inset 0 0 0 2px var(--velora-primary);outline:0}.recent-download-table--skeleton .recent-download-table__lesson-row td{height:40px;padding:.62rem .72rem}.recent-lessons{display:grid;gap:.2rem;list-style:none;margin:0;padding:.5rem}.recent-lesson{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--velora-radius);color:var(--velora-ink);display:flex;gap:.75rem;padding:.7rem .65rem;text-align:left;transition:background .15s ease,border-color .15s ease;width:100%}.recent-lesson:hover{background:#f0fafb;border-color:var(--velora-border)}.recent-lesson:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.recent-lesson__badge{align-items:center;background:var(--velora-primary-pale);border-radius:9px;color:var(--velora-teal-strong);display:grid;flex:0 0 auto;font-size:.72rem;font-weight:800;height:40px;min-width:44px;padding:0 .5rem;place-items:center;text-align:center}.recent-lesson__body{display:grid;min-width:0}.recent-lesson__body strong{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recent-lesson__body small{color:var(--velora-muted);font-size:.76rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 1180px){.teacher-dash__grid{grid-template-columns:1fr}.teacher-dash__rail{order:-1}.grade-grid--dash{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.app-shell__body--teacher,.app-shell--workspace .app-shell__body--teacher{display:block;height:auto;overflow:visible}.app-shell__body--teacher .admin-sidebar,.app-shell__body--teacher .admin-sidebar--collapsed{border-bottom:1px solid var(--velora-border);border-right:0;display:block;flex:none;width:auto}.app-shell__body--teacher .admin-sidebar__inner{min-height:0;padding:.6rem 1rem .7rem;width:auto}.app-shell__body--teacher .admin-sidebar__nav{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.1rem}.app-shell__body--teacher .admin-sidebar__group{display:contents}.app-shell__body--teacher .admin-sidebar__group h2{display:none}.app-shell__body--teacher .admin-sidebar__link{flex:0 0 auto;min-height:38px;padding:.45rem .65rem}.app-shell__body--teacher .teacher-sidebar__soon{display:none}.teacher-dash__hero{flex-direction:column;align-items:flex-start}.teacher-dash__hero-art{display:none}.teacher-dash__hero-text{width:100%}.teacher-dash__hero--illustrated{background-size:cover;min-height:0}}@media (max-width: 480px){.grade-grid--dash{grid-template-columns:1fr}.teacher-dash__hero--illustrated{min-height:0}}.grade-card__art--image{aspect-ratio:3 / 2;background:var(--velora-surface-soft);height:auto;padding:0}.grade-card__art--image img{display:block;height:100%;object-fit:cover;object-position:center;width:100%}.grade-card--teacher{border-color:#e5ece8}.grade-card--teacher .grade-card__content{align-content:start;gap:.35rem;min-height:0;padding:.9rem 1.1rem}.grade-card--teacher .grade-card__content strong{font-size:1.05rem;line-height:1.4}.course-player__download-state.course-player__download-state--minimal{background:transparent;border:0;flex-direction:column;padding:.5rem 0;text-align:center}.course-player__download-state--minimal .button{margin:.4rem auto 0}.lesson-download-progress{display:grid;gap:.55rem;margin:.2rem auto 0;max-width:520px;min-width:0;width:100%}.lesson-download-progress__header{align-items:baseline;color:var(--velora-ink);display:flex;font-size:.9rem;gap:1rem;justify-content:space-between;line-height:1.35;text-align:left}.lesson-download-progress__header strong{font-weight:700}.lesson-download-progress__header span{color:var(--velora-primary-dark);flex:0 0 auto;font-variant-numeric:tabular-nums;font-weight:700}.lesson-download-progress__track{background:#e8f1ec;border-radius:999px;height:10px;overflow:hidden;position:relative;width:100%}.lesson-download-progress__fill{background:linear-gradient(90deg,var(--velora-primary),#2aae72);border-radius:inherit;display:block;height:100%;transition:width .2s ease}.lesson-download-progress__fill--initial{transition:none}.lesson-download-progress__track--indeterminate .lesson-download-progress__fill{animation:lesson-download-indeterminate 1.15s ease-in-out infinite;left:-38%;position:absolute;width:38%}.lesson-download-result{align-items:center;display:flex;flex-wrap:wrap;font-size:.9rem;gap:.55rem;justify-content:center;margin:.2rem auto 0;min-width:0}.lesson-download-result--success{color:var(--velora-primary-dark)}.lesson-download-result--error{color:#9f3838}.lesson-download-result--error .button{margin:0 0 0 .35rem;min-height:38px;padding:.48rem .8rem}@keyframes lesson-download-indeterminate{0%{transform:translate(0)}to{transform:translate(365%)}}@media (prefers-reduced-motion: reduce){.lesson-download-progress__fill{transition:none}.lesson-download-progress__track--indeterminate .lesson-download-progress__fill{animation:none;left:0;opacity:.72;transform:none;width:46%}}.curriculum-grid.grade-grid--dash{grid-template-columns:repeat(2,minmax(0,1fr))}.desktop-update-notice{position:fixed;bottom:1.25rem;right:1.25rem;z-index:1000;max-width:calc(100vw - 2.5rem);background:var(--velora-primary-dark);border-radius:var(--velora-radius);color:#fff;padding:.8rem 1rem;box-shadow:var(--velora-shadow);pointer-events:none}@media (max-width: 480px){.curriculum-grid.grade-grid--dash{grid-template-columns:1fr}}.app-shell__body--teacher-course{display:flex;height:calc(100vh - 74px);overflow:hidden}.course-nav{--sidebar-w: 300px}.course-nav .sidebar__inner{gap:.25rem}.course-nav__section{display:grid;gap:.15rem;padding:.35rem 0}.course-nav__section--lessons,.course-nav__desktop-lessons{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.course-nav__compact-picker,.course-nav__compact-value,.course-nav__compact-chevron{display:none}.course-nav__section--lessons .sidebar__list{display:flex;flex:1 1 auto;flex-direction:column;align-content:flex-start;min-height:0;overflow-y:auto}.course-nav .lesson-card{flex:0 0 auto;min-height:56px}.course-nav .lesson-card__title-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}.course-nav__section:not(.course-nav__section--lessons){flex:0 0 auto}.course-nav__section+.course-nav__section{border-top:1px solid var(--velora-border);margin-top:.35rem;padding-top:.7rem}.course-nav__label{color:var(--velora-muted);font-family:var(--velora-font-emphasis);font-size:.66rem;font-weight:800;letter-spacing:.08em;margin:.1rem .55rem .35rem;text-transform:uppercase}.course-nav__item{align-items:center;background:transparent;border:1px solid transparent;border-radius:var(--velora-radius);color:var(--velora-ink);cursor:pointer;display:flex;font-size:.88rem;font-weight:700;gap:.6rem;min-height:42px;padding:.55rem .65rem;text-align:left;transition:background .15s ease,border-color .15s ease,color .15s ease;width:100%}.course-nav__item:hover{background:var(--velora-surface-soft);border-color:var(--velora-border)}.course-nav__item--active{background:var(--velora-primary-pale);border-color:var(--velora-border-strong);color:var(--velora-primary-dark)}.course-nav__item:focus-visible{outline:2px solid var(--velora-primary);outline-offset:2px}.course-nav__item svg{color:var(--velora-primary-dark);flex:0 0 auto}.course-nav__subitems{display:grid;gap:.1rem;margin:.15rem 0 .1rem .55rem;padding-left:.5rem;border-left:2px solid var(--velora-border-strong)}.course-nav__subitem{background:transparent;border:0;border-radius:8px;color:var(--velora-muted);cursor:pointer;font-size:.82rem;font-weight:700;padding:.4rem .55rem;text-align:left}.course-nav__subitem:hover{background:var(--velora-surface-soft);color:var(--velora-ink)}.course-nav__subitem--active{background:var(--velora-primary-pale);color:var(--velora-primary-hover)}.course-page--teacher{display:block}@media (max-width: 760px){.app-shell__body--teacher-course,.app-shell--workspace .app-shell__body--teacher-course{display:block;height:auto;overflow:visible}.course-nav.sidebar,.course-nav.sidebar--collapsed{border-bottom:1px solid var(--velora-border);border-right:0;display:block;flex:none;max-height:none;max-width:100%;overflow:hidden;width:auto}.course-nav .sidebar__inner{display:block;max-width:100%;padding:.65rem 1rem;width:auto}.course-nav__section{display:block}.course-nav__section--lessons{flex:none}.course-nav__section+.course-nav__section{margin-top:0}.course-nav .sidebar__list{display:flex;gap:.5rem;min-height:0;overflow-x:auto;overflow-y:visible}.course-nav .lesson-card{flex:0 0 200px}.course-nav__section:not(.course-nav__section--lessons){align-items:center;display:flex;gap:.4rem;overflow-x:auto}.course-nav__section:not(.course-nav__section--lessons) .course-nav__label{flex:0 0 auto;margin:0 .3rem 0 0}.course-nav__item{flex:0 0 auto;min-height:38px;width:auto;white-space:nowrap}.course-nav__subitems,.course-nav .sidebar__toggle{display:none}}.nav-rail{background:#fff;border-right:1px solid var(--velora-border);flex:0 0 64px;overflow:hidden;transition:flex-basis .22s ease,width .22s ease;width:64px;z-index:5}.nav-rail:hover{flex-basis:248px;width:248px}.nav-rail__inner{display:flex;flex-direction:column;height:100%;min-height:0;width:248px}.teacher-sidebar.nav-rail--fixed,.teacher-sidebar.nav-rail--fixed:hover{flex-basis:224px;width:224px}.teacher-sidebar.nav-rail--fixed .nav-rail__inner{width:224px}.nav-rail__top{display:flex;flex-direction:column;gap:.1rem;padding:.5rem .4rem .35rem}.nav-rail__brand{padding:.35rem .3rem .25rem}.nav-rail__brand .brand-logo{font-size:1.15rem}.nav-rail__label,.nav-rail .brand-logo__name{opacity:0;transform:translate(-4px);transition:opacity .22s ease-in-out,transform .22s ease-in-out;white-space:nowrap}.nav-rail:hover .nav-rail__label,.nav-rail:hover .brand-logo__name,.teacher-sidebar.nav-rail--fixed .nav-rail__label,.teacher-sidebar.nav-rail--fixed .brand-logo__name{opacity:1;transform:translate(0)}@media (min-width: 761px){.nav-rail .admin-sidebar__link{background:transparent!important;border-color:transparent!important;position:relative;z-index:1;padding-left:12px}.nav-rail .admin-sidebar__link:before{content:"";position:absolute;left:0;top:0;bottom:0;width:42px;border-radius:50%;background:transparent;border:1px solid transparent;z-index:-1;transition:width .22s ease-in-out,border-radius .22s ease-in-out,background .15s ease,border-color .15s ease}.nav-rail .admin-sidebar__link:hover:before{background:var(--velora-surface-soft);border-color:var(--velora-border)}.nav-rail .admin-sidebar__link--active:before{background:var(--velora-primary-pale);border-color:transparent}.nav-rail:hover .admin-sidebar__link:before,.nav-rail--fixed .admin-sidebar__link:before{width:100%;border-radius:var(--velora-radius)}@media (prefers-reduced-motion: reduce){.nav-rail .admin-sidebar__link:before,.nav-rail__label,.nav-rail .brand-logo__name{transition:none!important}}}.nav-rail .admin-sidebar__nav{display:flex;flex:1 1 auto;flex-direction:column;gap:0;min-height:0;overflow-y:auto;padding:.2rem .4rem .6rem}.nav-rail .admin-sidebar__group{display:flex;flex-direction:column;gap:.14rem;padding:.35rem 0}.nav-rail .admin-sidebar__group+.admin-sidebar__group{border-top:1px solid var(--velora-border)}.teacher-sidebar .admin-sidebar__group+.admin-sidebar__group{border-top:0;margin-top:.28rem;padding-top:.28rem}.nav-rail .admin-sidebar__link{min-height:42px;white-space:nowrap}@media (max-width: 760px){.nav-rail{flex:none;overflow:visible;width:auto}.nav-rail:hover{flex-basis:auto;width:auto}.nav-rail__inner{width:auto}.nav-rail__top{flex-direction:row;align-items:center}.nav-rail__label,.nav-rail .brand-logo__name{opacity:1;transform:none}.nav-rail .admin-sidebar__nav{flex-direction:row;overflow-x:auto}.nav-rail .admin-sidebar__group{flex-direction:row}.nav-rail .admin-sidebar__group+.admin-sidebar__group{border-top:0}}.compact-filter-bar{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.25rem;margin-bottom:1.5rem;border-radius:var(--velora-radius);flex-wrap:wrap}.admin-page>.compact-filter-bar,.admin-users__filter-area>.compact-filter-bar,.content-quality__filter-area>.compact-filter-bar{margin-bottom:0}.admin-page>.filter-chips{margin:0}.admin-page>.admin-users__filter-area{margin-bottom:0}.compact-filter-field{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:.9rem;color:var(--velora-ink)}.compact-filter-field__label{white-space:nowrap;color:var(--velora-ink);font-size:.9rem}.compact-filter-select{height:42px;padding:0 1rem;border-radius:var(--velora-radius);border:1.5px solid var(--velora-border);background-color:#fff;color:var(--velora-ink);font-size:.9rem;font-weight:600;outline:none;min-width:180px;transition:border-color .15s ease,box-shadow .15s ease}.compact-filter-select:focus{border-color:var(--velora-primary);box-shadow:0 0 0 3px #2563eb26}.compact-filter-input{height:42px;padding:0 .85rem;border-radius:var(--velora-radius);border:1.5px solid var(--velora-border);background-color:#fff;color:var(--velora-ink);font-size:.9rem;font-weight:600;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.compact-filter-input:focus{border-color:var(--velora-primary);box-shadow:0 0 0 3px #2563eb26}.compact-search-field{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:.9rem;color:var(--velora-ink);flex:1 1 300px;max-width:480px}.compact-search-control{position:relative;display:flex;align-items:center;width:100%;height:42px;background-color:#fff;border:1.5px solid var(--velora-border);border-radius:9999px;padding:0 .85rem;transition:border-color .15s ease,box-shadow .15s ease}.compact-search-control:focus-within{border-color:var(--velora-primary, #0284c7);box-shadow:0 0 0 3px #0284c72e}.compact-search-control__icon{color:#64748b;flex-shrink:0;margin-right:.5rem}.compact-search-control__input{flex:1 1 auto;border:none;outline:none;background:transparent;font-size:.9rem;color:var(--velora-ink);padding:0;min-width:0}.compact-search-control__input::placeholder{color:#94a3b8;font-weight:500}.compact-search-control__clear{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background-color:#e2e8f0;color:#475569;border:none;cursor:pointer;padding:0;flex-shrink:0;margin-left:.4rem;transition:background-color .15s ease,color .15s ease}.compact-search-control__clear:hover{background-color:#cbd5e1;color:#1e293b}.admin-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid var(--velora-border);padding-bottom:.5rem}.admin-tab{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.2rem;border-radius:var(--velora-radius);font-weight:700;font-size:.95rem;color:var(--velora-muted, #64748b);background:transparent;border:1px solid transparent;cursor:pointer;transition:all .15s ease}.admin-tab:hover{color:var(--velora-ink);background:var(--velora-surface-soft)}.admin-tab--active{color:var(--velora-primary-dark);background:var(--velora-primary-pale);border-color:var(--velora-border-strong)}.admin-summary-strip{display:flex;align-items:center;gap:1.5rem;padding:.65rem 1.25rem;background:#f8fafc;border:1px solid var(--velora-border);border-radius:var(--velora-radius);margin-bottom:1.25rem;font-size:.9rem;flex-wrap:wrap}.admin-summary-item{display:flex;align-items:center;gap:.4rem;font-weight:600}.admin-summary-item strong{font-size:1rem}.admin-status-badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:9999px;font-size:.8rem;font-weight:700;white-space:nowrap}.admin-status-badge--active{background:#ecfdf5;color:#059669;border:1px solid #a7f3d0}.admin-status-badge--archived{background:#f1f5f9;color:#64748b;border:1px solid #cbd5e1}.admin-drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;z-index:100;display:flex;justify-content:flex-end;animation:fadeIn .15s ease-out}.admin-drawer{width:min(100vw,440px);height:100%;background:#fff;box-shadow:-4px 0 20px #00000026;display:flex;flex-direction:column;animation:slideInRight .2s cubic-bezier(.16,1,.3,1);overflow-y:auto}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.admin-drawer__header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid var(--velora-border)}.admin-drawer__header h2{font-size:1.15rem;margin:0;font-weight:700}.admin-drawer__body{padding:1.5rem;flex:1;display:flex;flex-direction:column;gap:1rem}.admin-drawer__footer{padding:1.25rem 1.5rem;border-top:1px solid var(--velora-border);display:flex;justify-content:flex-end;gap:.75rem;background:#fafafa}.admin-drawer__field{display:flex;flex-direction:column;gap:.35rem}.admin-drawer__field label{font-size:.82rem;font-weight:700;color:var(--velora-ink)}.admin-drawer__field input,.admin-drawer__field select,.admin-drawer__field textarea{height:40px;padding:0 .75rem;border-radius:var(--velora-radius);border:1px solid var(--velora-border);font-size:.9rem;outline:none;background:#fff;transition:border-color .15s ease,box-shadow .15s ease}.admin-drawer__field textarea{height:70px;padding:.5rem .75rem}.admin-drawer__field input:focus,.admin-drawer__field select:focus,.admin-drawer__field textarea:focus{border-color:var(--velora-primary);box-shadow:0 0 0 3px var(--velora-focus-ring)}.compact-filter-bar--single{flex-wrap:nowrap;gap:.75rem;align-items:center}.compact-filter-bar--single .compact-search-field{flex:1 1 auto;min-width:200px;max-width:none}.compact-filter-select--fixed{min-width:0}.filter-combobox{position:relative;flex:0 0 auto}.filter-combobox__trigger{align-items:center;background:#fff;border:1.5px solid var(--velora-border);border-radius:var(--velora-radius);color:var(--velora-ink);cursor:pointer;display:flex;font-size:.9rem;font-weight:600;gap:.5rem;height:42px;justify-content:space-between;padding:0 .75rem 0 1rem;transition:border-color .15s ease,box-shadow .15s ease;width:100%}.filter-combobox__trigger:hover{border-color:var(--velora-border-strong)}.filter-combobox__trigger--open,.filter-combobox__trigger:focus-visible{border-color:var(--velora-primary);box-shadow:0 0 0 3px var(--velora-focus-ring);outline:none}.filter-combobox__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-combobox__value--placeholder{color:#94a3b8;font-weight:500}.filter-combobox__chevron{color:#64748b;flex:0 0 auto}.filter-combobox__popover{background:#fff;border:1px solid var(--velora-border);border-radius:var(--velora-radius);box-shadow:0 14px 34px #092b3b29;left:0;margin-top:.35rem;min-width:100%;padding:.4rem;position:absolute;top:100%;width:max-content;max-width:320px;z-index:60}.filter-combobox__popover--floating{margin-top:0;max-width:min(320px,calc(100vw - 16px));z-index:80}.filter-combobox__search{align-items:center;background:var(--velora-surface-soft);border:1px solid var(--velora-border);border-radius:var(--velora-radius-sm);color:#64748b;display:flex;gap:.4rem;margin-bottom:.35rem;padding:0 .6rem}.filter-combobox__search input{background:transparent;border:0;color:var(--velora-ink);flex:1 1 auto;font-size:.88rem;height:34px;min-width:0;outline:none}.filter-combobox__list{display:flex;flex-direction:column;gap:.1rem;max-height:260px;overflow-y:auto}.filter-combobox__option{align-items:center;background:transparent;border:0;border-radius:var(--velora-radius-sm);color:var(--velora-ink);cursor:pointer;display:flex;font-size:.88rem;font-weight:600;gap:.5rem;justify-content:space-between;min-height:36px;padding:.45rem .6rem;text-align:left;width:100%}.filter-combobox__option--active{background:var(--velora-primary-pale)}.filter-combobox__option--selected{color:var(--velora-primary-dark)}.filter-combobox__option svg{color:var(--velora-primary);flex:0 0 auto}.filter-combobox__empty{color:var(--velora-muted);font-size:.85rem;padding:.6rem;text-align:center}@media (max-width: 1100px){.compact-filter-bar--single{flex-wrap:wrap}.compact-filter-bar--single .compact-search-field{flex-basis:100%}}.settings-tabs{border-bottom:1px solid var(--velora-border);display:flex;flex-wrap:nowrap;gap:.35rem;margin:1.1rem 0 1.2rem;max-width:100%;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scrollbar-width:none;-ms-overflow-style:none}.settings-tabs::-webkit-scrollbar{display:none;height:0;width:0}.settings-tab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--velora-muted);cursor:pointer;font-size:.92rem;font-weight:700;flex:0 0 auto;margin-bottom:-1px;padding:.55rem .85rem;white-space:nowrap}.settings-tab:hover{color:var(--velora-ink)}.settings-tab--active{color:var(--velora-primary-dark);border-bottom-color:var(--velora-primary)}.settings-section{display:flex;flex-direction:column;gap:1rem}.settings-block{padding:1.25rem 1.4rem}.settings-block>h2{align-items:center;color:var(--velora-primary-dark);display:flex;font-size:1.02rem;gap:.45rem;margin:0 0 .5rem}.settings-block>h2 svg{color:var(--velora-primary)}.settings-block__hint{color:var(--velora-muted);font-size:.85rem;margin:0 0 .9rem}.account-grid{display:grid;gap:.9rem 2rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:0}.account-grid dt{align-items:center;color:var(--velora-muted);display:flex;font-size:.76rem;font-weight:700;gap:.35rem;letter-spacing:.02em;margin-bottom:.2rem;text-transform:uppercase}.account-grid dt svg{color:var(--velora-primary)}.account-grid dd{color:var(--velora-ink);font-size:.95rem;font-weight:600;margin:0}.org-stats{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-top:1.1rem}.org-stat{background:var(--velora-surface-soft, #f4fbfd);border:1px solid var(--velora-border);border-radius:var(--velora-radius);display:flex;flex-direction:column;gap:.1rem;padding:.85rem 1rem}.org-stat strong{color:var(--velora-primary-dark);font-size:1.5rem;line-height:1}.org-stat span{color:var(--velora-muted);font-size:.78rem;font-weight:600}.profile-menu{position:relative}.profile-menu__trigger{background:transparent;border:0;color:inherit;cursor:pointer}.teacher-utility>.profile-menu{flex:0 0 auto}.profile-menu__trigger:hover{background:var(--velora-primary-pale);color:var(--velora-primary-dark)}.profile-menu__panel{position:absolute;right:0;top:calc(100% + .4rem);min-width:224px;z-index:80;display:flex;flex-direction:column;gap:.1rem;background:#fff;border:1px solid var(--velora-border);border-radius:var(--velora-radius);box-shadow:0 14px 34px #092b3b29;padding:.35rem}.profile-menu__head{display:flex;flex-direction:column;gap:.1rem;padding:.55rem .6rem;margin-bottom:.25rem;border-bottom:1px solid var(--velora-border)}.profile-menu__head strong{color:var(--velora-primary-dark);font-size:.92rem}.profile-menu__head span{color:var(--velora-muted);font-size:.8rem;overflow:hidden;text-overflow:ellipsis}.profile-menu__item{align-items:center;display:flex;gap:.55rem;width:100%;background:transparent;border:0;border-radius:var(--velora-radius-sm);color:var(--velora-ink);cursor:pointer;font-size:.88rem;font-weight:600;padding:.5rem .6rem;text-align:left;text-decoration:none}.profile-menu__item:hover{background:var(--velora-surface-soft)}.profile-menu__item svg{color:var(--velora-primary);flex:0 0 auto}.profile-menu__item--danger{color:#b91c1c}.profile-menu__item--danger svg{color:#dc2626}.month-field,.vietnamese-month-picker{display:inline-flex;position:relative}.attendance-page{--attendance-primary: #0f8f6a;--attendance-primary-hover: #0b7657;--attendance-primary-soft: #e8f7f1;--attendance-selected: #ddf3ea;--attendance-border: #d9e2de;--attendance-surface: #fff;--attendance-page-bg: #f7f9f8;--attendance-head: #f3f6f5}.attendance-page.teacher-dash{gap:.85rem}.attendance-page .teacher-section__head,.attendance-filter-bar{margin-bottom:0}.attendance-page .button--primary{background:var(--attendance-primary);box-shadow:0 6px 14px #0f8f6a38;color:#fff}.attendance-page .button--primary:hover:not(:disabled){background:var(--attendance-primary-hover)}.attendance-page .button--secondary{background:var(--attendance-surface);border-color:var(--attendance-border);color:var(--velora-primary-dark)}.attendance-page .button--secondary:hover:not(:disabled){background:var(--attendance-primary-soft);border-color:var(--attendance-primary)}.attendance-page .button--quiet:hover:not(:disabled){background:var(--attendance-primary-soft);color:var(--attendance-primary-hover)}.attendance-page .button:disabled{cursor:not-allowed;opacity:.55}.attendance-header{margin-bottom:.15rem}.attendance-header__actions{align-items:center;display:flex;flex:0 0 auto;justify-content:flex-end;margin-left:auto;min-width:0}.attendance-header__slot{display:contents}.attendance-action-bar{align-items:center;display:flex;gap:.5rem;justify-content:flex-end;min-width:0;position:relative}.attendance-action-bar__secondary{background:#fff;border:1px solid var(--attendance-border);border-radius:var(--velora-radius);box-shadow:var(--velora-shadow);display:none;gap:.35rem;min-width:190px;padding:.45rem;position:absolute;right:0;top:calc(100% + .4rem);z-index:30}.attendance-action-bar__secondary.is-open{display:grid}.attendance-action-bar__secondary .button{justify-content:flex-start;min-height:44px;width:100%}.attendance-action-bar__primary{display:flex}.attendance-action-bar__primary .button{min-height:44px;white-space:nowrap}.attendance-action-bar__menu-trigger{align-items:center;display:inline-flex;height:44px;justify-content:center;min-width:44px;padding:0;width:44px}.attendance-action-bar>.attendance-save-status{flex:0 0 auto;min-width:0;width:auto}.attendance-action-bar>.attendance-save-status:not(.is-visible){display:none}.attendance-controls-toolbar{display:grid;gap:.65rem;min-width:0;width:100%}.attendance-controls-row{align-items:center;display:flex;gap:.65rem;justify-content:flex-end;min-width:0;width:100%}.attendance-view-select{align-items:center;background:#fff;border:1px solid var(--attendance-border);border-radius:var(--velora-radius-sm);color:var(--attendance-primary-hover);display:none;flex:1 1 auto;gap:.4rem;height:44px;min-width:0;padding:0 .45rem 0 .7rem}.attendance-view-select:focus-within{border-color:var(--attendance-primary);box-shadow:0 0 0 3px var(--velora-focus-ring)}.attendance-view-select svg{flex:0 0 auto}.attendance-view-select select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;background:transparent;border:0;color:var(--velora-ink);flex:1 1 auto;font:inherit;font-size:.82rem;font-weight:600;height:42px;min-width:0;outline:0}.attendance-filter-bar{align-items:center;background:transparent;border:0;border-radius:0;box-shadow:none;flex:1 1 auto;flex-wrap:wrap;gap:.75rem;justify-content:flex-end;margin:0 0 0 auto;max-width:100%;padding:0;width:auto}.attendance-filter__field{display:flex;min-width:0}.attendance-filter__field--school,.attendance-filter__field--class{flex:0 0 240px}.attendance-filter__field--period{flex:0 0 auto}.attendance-filter__field .filter-combobox{width:100%}.attendance-filter-bar .compact-search-field{flex:0 0 220px;max-width:220px;min-width:160px}.vietnamese-date-picker{display:inline-flex;position:relative}.vietnamese-date-picker__trigger,.vietnamese-month-picker__trigger{align-items:center;background:#fff;border:1.5px solid var(--velora-border);border-radius:var(--velora-radius);color:var(--velora-ink);cursor:pointer;display:inline-flex;font:inherit;font-size:.9rem;font-weight:600;gap:.75rem;height:42px;justify-content:space-between;min-width:154px;padding:0 .8rem 0 .9rem;transition:border-color .15s ease,box-shadow .15s ease}.vietnamese-date-picker__trigger:hover:not(:disabled),.vietnamese-month-picker__trigger:hover{border-color:var(--velora-border-strong)}.vietnamese-date-picker__trigger:focus-visible,.vietnamese-month-picker__trigger:focus-visible{border-color:var(--velora-primary);box-shadow:0 0 0 3px var(--velora-focus-ring);outline:none}.vietnamese-date-picker__trigger:disabled{cursor:not-allowed;opacity:.55}.vietnamese-date-picker__trigger svg,.vietnamese-month-picker__trigger svg{color:var(--velora-primary-dark);flex:0 0 auto}.vietnamese-date-picker__popup,.vietnamese-month-picker__popup{background:#fff;border:1px solid var(--velora-border);border-radius:var(--velora-radius);box-shadow:0 16px 34px #0830232e;left:0;min-width:280px;padding:.7rem;position:absolute;top:calc(100% + .45rem);width:280px;z-index:75}.vietnamese-date-picker__header,.vietnamese-month-picker__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.vietnamese-date-picker__header strong,.vietnamese-month-picker__header strong{color:var(--velora-primary-dark);font-family:var(--velora-font-emphasis);font-size:.88rem;text-align:center}.vietnamese-date-picker__month-button,.vietnamese-month-picker__year-button{align-items:center;background:transparent;border:0;border-radius:var(--velora-radius-sm);color:var(--velora-primary-dark);cursor:pointer;display:inline-flex;height:30px;justify-content:center;padding:0;width:30px}.vietnamese-date-picker__month-button:hover,.vietnamese-date-picker__month-button:focus-visible,.vietnamese-month-picker__year-button:hover,.vietnamese-month-picker__year-button:focus-visible{background:var(--attendance-primary-soft);outline:none}.vietnamese-date-picker__month-button:focus-visible,.vietnamese-date-picker__day:focus-visible,.vietnamese-date-picker__footer button:focus-visible,.vietnamese-month-picker__year-button:focus-visible,.vietnamese-month-picker__month:focus-visible,.vietnamese-month-picker__footer button:focus-visible{box-shadow:0 0 0 3px var(--velora-focus-ring)}.vietnamese-date-picker__grid{display:grid;gap:.12rem}.vietnamese-date-picker__week{display:grid;grid-template-columns:repeat(7,1fr)}.vietnamese-date-picker__week--labels span{color:var(--velora-muted);font-size:.7rem;font-weight:800;padding:.25rem 0 .35rem;text-align:center}.vietnamese-date-picker__week>[role=gridcell]{display:flex;justify-content:center}.vietnamese-date-picker__day{align-items:center;background:transparent;border:1px solid transparent;border-radius:50%;color:var(--velora-ink);cursor:pointer;display:inline-flex;font:inherit;font-size:.8rem;font-weight:700;height:32px;justify-content:center;outline:none;padding:0;width:32px}.vietnamese-date-picker__day:hover{background:var(--attendance-primary-soft)}.vietnamese-date-picker__day.is-outside-month{color:#94a3a6;font-weight:500}.vietnamese-date-picker__day.is-today{border-color:var(--velora-primary);color:var(--velora-primary-dark)}.vietnamese-date-picker__day.is-selected{background:var(--velora-primary);border-color:var(--velora-primary);color:#fff}.vietnamese-date-picker__footer{border-top:1px solid var(--velora-border);display:flex;justify-content:flex-end;margin-top:.55rem;padding-top:.55rem}.vietnamese-date-picker__footer button{background:transparent;border:0;border-radius:var(--velora-radius-sm);color:var(--velora-primary-dark);cursor:pointer;font:inherit;font-size:.78rem;font-weight:800;outline:none;padding:.35rem .5rem}.vietnamese-date-picker__footer button:hover{background:var(--attendance-primary-soft)}.vietnamese-month-picker__grid{display:grid;gap:.3rem;grid-template-columns:repeat(3,1fr)}.vietnamese-month-picker__month{background:transparent;border:1px solid transparent;border-radius:var(--velora-radius-sm);color:var(--velora-ink);cursor:pointer;font:inherit;font-size:.78rem;font-weight:700;min-height:34px;outline:none;padding:.35rem .2rem}.vietnamese-month-picker__month:hover{background:var(--attendance-primary-soft)}.vietnamese-month-picker__month.is-current{border-color:var(--velora-primary);color:var(--velora-primary-dark)}.vietnamese-month-picker__month.is-selected{background:var(--velora-primary);border-color:var(--velora-primary);color:#fff}.vietnamese-month-picker__footer{border-top:1px solid var(--velora-border);display:flex;justify-content:flex-end;margin-top:.55rem;padding-top:.55rem}.vietnamese-month-picker__footer button{background:transparent;border:0;border-radius:var(--velora-radius-sm);color:var(--velora-primary-dark);cursor:pointer;font:inherit;font-size:.78rem;font-weight:800;outline:none;padding:.35rem .5rem}.vietnamese-month-picker__footer button:hover{background:var(--attendance-primary-soft)}@media (max-width: 700px){.attendance-filter__field--school,.attendance-filter__field--class{flex:1 1 100%}.attendance-filter__field--period,.attendance-filter-bar .compact-search-field{flex:1 1 180px;max-width:none}.vietnamese-date-picker__popup,.vietnamese-month-picker__popup{left:50%;max-width:calc(100vw - 2rem);transform:translate(-50%)}}.attendance-banner{align-items:center;border-radius:var(--velora-radius-sm);display:flex;font-size:.88rem;gap:.75rem;justify-content:space-between;padding:.55rem .85rem}.attendance-banner--ok{background:var(--attendance-primary-soft, #ecfdf5);color:#065f46}.attendance-banner--error{background:#fef2f2;color:#b91c1c}.attendance-banner--restore{background:var(--attendance-primary-soft, #e8f7f1);color:var(--attendance-primary-hover, #0b7657)}.attendance-banner--restore strong{color:var(--velora-primary-dark)}.attendance-banner__revert{align-items:center;background:#fff;border:1px solid var(--attendance-primary, #0f8f6a);border-radius:var(--velora-radius-sm);color:var(--attendance-primary-hover, #0b7657);display:inline-flex;flex:0 0 auto;font-size:.82rem;font-weight:700;gap:.35rem;padding:.32rem .6rem;white-space:nowrap}.attendance-banner__revert:hover:not(:disabled){background:var(--attendance-primary, #0f8f6a);color:#fff}.attendance-banner__revert:disabled{cursor:not-allowed;opacity:.55}.attendance-daily{display:flex;flex-direction:column;gap:.55rem}.attendance-daily__summary{align-items:center;background:var(--attendance-primary-soft, #eef6f9);border:1px solid var(--attendance-border, var(--velora-border));border-radius:var(--velora-radius);display:flex;flex-wrap:wrap;gap:.45rem 1.4rem;padding:.6rem 1rem}.attendance-daily__summary-item{align-items:baseline;color:var(--velora-muted);display:inline-flex;font-size:.86rem;gap:.35rem}.attendance-daily__summary-value{color:var(--velora-ink);font-size:1rem}.attendance-daily__summary-item.is-present .attendance-daily__summary-value{color:#047857}.attendance-daily__summary-item.is-absent .attendance-daily__summary-value{color:#b91c1c}.attendance-daily__mark-all{margin-left:auto}.attendance-save-status{align-items:center;color:#a16207;display:inline-flex;flex:0 0 7.3rem;font-size:.78rem;font-weight:800;gap:.36rem;height:40px;justify-content:center;visibility:hidden;white-space:nowrap}.attendance-save-status.is-visible{visibility:visible}.attendance-save-status__dot{background:#f59e0b;border-radius:50%;box-shadow:0 0 0 3px #fef3c7;height:8px;width:8px}.student-roster-table__wrap{overflow-x:auto;padding:0}.student-roster-table{--student-roster-index-width: var(--velora-table-index-width);border-collapse:collapse;min-width:880px;width:100%}.student-roster-table th{background:var(--attendance-head, #f3f6f5);color:var(--velora-primary-dark);font-size:.75rem;letter-spacing:.025em;padding:.62rem .65rem;text-align:center;text-transform:uppercase;vertical-align:middle;white-space:nowrap}.student-roster-table td{border-top:1px solid var(--attendance-border, var(--velora-border));color:var(--velora-ink);font-size:.86rem;padding:.5rem .65rem}.student-roster-table tbody tr:hover{background:var(--attendance-primary-soft, #f9fcfd)}.student-roster-table__center{text-align:center!important}.student-roster-table__index{box-sizing:border-box;max-width:var(--student-roster-index-width);min-width:var(--student-roster-index-width);text-align:center!important;vertical-align:middle;width:var(--student-roster-index-width)}.attendance-daily__present-control{align-items:center;cursor:pointer;display:inline-flex;height:40px;justify-content:center;position:relative;width:40px}.attendance-daily__present{height:1px;margin:0;opacity:0;position:absolute;width:1px}.attendance-daily__present-indicator{align-items:center;background:#fff;border:2px solid var(--attendance-border, var(--velora-border-strong));border-radius:50%;box-shadow:0 1px 2px #075c3d14;color:transparent;display:inline-flex;height:26px;justify-content:center;transition:background-color .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease,transform .18s ease;width:26px}.attendance-daily__present-control:hover:not(.is-disabled) .attendance-daily__present-indicator{border-color:var(--attendance-primary, var(--velora-primary));box-shadow:0 0 0 4px var(--velora-focus-ring)}.attendance-daily__present:checked+.attendance-daily__present-indicator{background:var(--attendance-primary, var(--velora-primary));border-color:var(--attendance-primary, var(--velora-primary));box-shadow:0 2px 5px #075c3d33;color:#fff}.attendance-daily__present:focus-visible+.attendance-daily__present-indicator{box-shadow:0 0 0 4px var(--velora-focus-ring)}.attendance-daily__present:disabled+.attendance-daily__present-indicator{background:#f0f4f2;border-color:var(--velora-border);box-shadow:none;color:#9aa8a1}.attendance-daily__present-control.is-disabled{cursor:not-allowed}.attendance-daily__status-toggle,.student-roster-table__mobile-name{display:none}@media (prefers-reduced-motion: reduce){.attendance-daily__present-indicator{transition:none}}.attendance-daily__bottom-actions{align-items:center;display:flex;gap:.6rem;justify-content:flex-end}.attendance-daily__bottom-actions{border-top:1px solid var(--attendance-border, var(--velora-border));padding-top:.65rem}.student-roster-table__empty{color:var(--velora-muted);padding:2.5rem!important;text-align:center}.attendance-month{display:flex;flex-direction:column;gap:.55rem;margin-top:0;max-width:100%;min-width:0;overflow:hidden;width:100%}.attendance-month__toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:.65rem 1rem;justify-content:space-between;max-width:100%;min-width:0;width:100%}.attendance-month__legend{color:var(--velora-muted);display:flex;font-size:.82rem;gap:1rem}.attendance-month__legend span{align-items:center;display:inline-flex;gap:.35rem}.attendance-month__code{border-radius:5px;color:#fff;display:inline-block;font-size:.72rem;font-weight:800;line-height:1;min-width:18px;padding:.2rem .1rem;text-align:center}.attendance-month__code.is-present{background:#059669}.attendance-month__code.is-absent{background:#dc2626}.attendance-month__actions{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;margin-left:auto}.attendance-month__action-divider{align-self:stretch;border-left:1px solid var(--velora-border);margin:0 .1rem;min-height:30px}.attendance-month__scroll{isolation:isolate;max-width:100%;min-width:0;overflow-x:auto;padding:0;position:relative;width:100%}.attendance-month__loading,.attendance-month__empty{color:var(--velora-muted);padding:2rem;text-align:center}.attendance-month__table{--attendance-month-index-width: var(--velora-table-index-width);--attendance-month-family-name-width: 13rem;--attendance-month-given-name-width: 7.5rem;--attendance-month-date-width: 8rem;--attendance-month-summary-width: 5.75rem;border:1px solid var(--attendance-border, var(--velora-border));border-collapse:separate;border-spacing:0;font-size:.82rem;table-layout:fixed;width:max-content}.attendance-month__table th,.attendance-month__table td{border-bottom:1px solid var(--attendance-border, var(--velora-border));border-right:1px solid var(--attendance-border, var(--velora-border));line-height:1.25}.attendance-month__table th:last-child,.attendance-month__table td:last-child{border-right:0}.attendance-month__table tbody tr:last-child td{border-bottom:0}.attendance-month__table tbody tr:hover td{background:var(--attendance-primary-soft, #f4fbfd)}.attendance-month__table thead th{background:var(--attendance-head, #f4fbfd);color:var(--velora-primary-dark);font-weight:800;padding:.6rem .55rem;text-align:center;vertical-align:middle;white-space:nowrap}.attendance-month__table td{padding:.55rem;vertical-align:middle}.attendance-month__col--index{width:var(--attendance-month-index-width)}.attendance-month__col--family-name{width:var(--attendance-month-family-name-width)}.attendance-month__col--given-name{width:var(--attendance-month-given-name-width)}.attendance-month__col--date{width:var(--attendance-month-date-width)}.attendance-month__col--summary{width:var(--attendance-month-summary-width)}.attendance-month__col--day{width:2.6rem}.attendance-month__index,.attendance-month__date,.attendance-month__summary{text-align:center}.attendance-month__name-group{left:var(--attendance-month-index-width);min-width:calc(var(--attendance-month-family-name-width) + var(--attendance-month-given-name-width));position:sticky;z-index:4}.attendance-month__family-name,.attendance-month__given-name{padding-left:.8rem!important;text-align:left}.attendance-month__family-name{min-width:var(--attendance-month-family-name-width)}.attendance-month__given-name{min-width:var(--attendance-month-given-name-width)}.attendance-month__summary-end{border-right:3px solid var(--attendance-primary, var(--velora-primary))!important}.attendance-month__day-start{border-left:0}.attendance-month__cell{padding:.3rem .2rem!important;text-align:center}.attendance-month__index,.attendance-month__family-name,.attendance-month__given-name,.attendance-month__date,.attendance-month__summary{background:var(--velora-surface);position:sticky;z-index:2}.attendance-month__index{left:0}.attendance-month__family-name{left:var(--attendance-month-index-width)}.attendance-month__given-name{left:calc(var(--attendance-month-index-width) + var(--attendance-month-family-name-width))}.attendance-month__date{left:calc(var(--attendance-month-index-width) + var(--attendance-month-family-name-width) + var(--attendance-month-given-name-width))}.attendance-month__summary--present{left:calc(var(--attendance-month-index-width) + var(--attendance-month-family-name-width) + var(--attendance-month-given-name-width) + var(--attendance-month-date-width))}.attendance-month__summary--absent{left:calc(var(--attendance-month-index-width) + var(--attendance-month-family-name-width) + var(--attendance-month-given-name-width) + var(--attendance-month-date-width) + var(--attendance-month-summary-width))}.attendance-month__table thead .attendance-month__index,.attendance-month__table thead .attendance-month__name-group,.attendance-month__table thead .attendance-month__date,.attendance-month__table thead .attendance-month__summary{background:var(--attendance-head, #f4fbfd);z-index:4}.attendance-month__table tbody tr:hover .attendance-month__index,.attendance-month__table tbody tr:hover .attendance-month__family-name,.attendance-month__table tbody tr:hover .attendance-month__given-name,.attendance-month__table tbody tr:hover .attendance-month__date,.attendance-month__table tbody tr:hover .attendance-month__summary{background:var(--attendance-primary-soft, #f4fbfd)}.attendance-month__mark{background:transparent;border:1px solid transparent;border-radius:6px;color:var(--velora-ink);cursor:pointer;font-size:.74rem;font-weight:800;height:26px;width:30px}.attendance-month__mark:hover{background:var(--attendance-primary-soft, #f4fbfd);border-color:var(--attendance-border, var(--velora-border))}.attendance-month__mark.is-present{background:var(--attendance-selected, #d9f5ec);color:#047857}.attendance-month__mark.is-absent{background:#fbdcdc;color:#b91c1c}.attendance-month__scroll:focus-visible,.attendance-month__mark:focus-visible{outline:2px solid var(--velora-primary);outline-offset:-2px}@media (max-width: 1180px){.attendance-month__date,.attendance-month__summary{position:static}}@media (max-width: 700px){.attendance-month__index,.attendance-month__name-group,.attendance-month__family-name,.attendance-month__given-name{position:static}}.student-import{display:flex;flex-direction:column;gap:1rem;max-height:88vh;overflow:hidden;padding:1.6rem;width:min(860px,94vw)}.student-import__title{align-items:center;display:flex;font-size:1.15rem;gap:.5rem;margin:0}.student-import__hint{align-items:center;color:var(--velora-muted);display:flex;flex-wrap:wrap;font-size:.88rem;gap:.4rem;margin:0}.student-import__summary{align-items:center;background:var(--velora-surface-soft);border:1px solid var(--velora-border);border-radius:var(--velora-radius);display:flex;flex-wrap:wrap;font-size:.92rem;gap:1.4rem;padding:.7rem 1rem}.student-import__ok{align-items:center;color:#1c8a5a;display:inline-flex;gap:.35rem}.student-import__bad{align-items:center;color:#c0392b;display:inline-flex;gap:.35rem}.student-import__tablewrap{border:1px solid var(--velora-border);border-radius:var(--velora-radius);flex:1 1 auto;min-height:0;overflow:auto}.student-import__tablewrap .admin-table{width:100%}.student-import__row--bad{background:#fdecec}.student-import__actions{display:flex;gap:.6rem;justify-content:flex-end}.admin-bulk__table--teachers{min-width:980px}.admin-bulk__table--teachers th:nth-child(1),.admin-bulk__table--teachers td:nth-child(1){width:170px;min-width:150px}.admin-bulk__table--teachers th:nth-child(2),.admin-bulk__table--teachers td:nth-child(2){width:210px;min-width:180px}.admin-bulk__table--teachers th:nth-child(3),.admin-bulk__table--teachers td:nth-child(3){width:140px;min-width:120px}.admin-bulk__table--teachers th:nth-child(4),.admin-bulk__table--teachers td:nth-child(4){width:190px;min-width:160px}.admin-bulk__table--teachers th:nth-child(5),.admin-bulk__table--teachers td:nth-child(5){width:160px;min-width:140px}.admin-bulk__table--teachers th:nth-child(6),.admin-bulk__table--teachers td:nth-child(6){width:130px;min-width:120px}.admin-bulk__table select.admin-bulk__grade-select{height:auto;max-height:92px;min-height:40px;overflow-y:auto;padding:.3rem .45rem}.admin-bulk__error-row td{background:#fdf2f2;border-top:0;padding:0 .7rem .5rem}.admin-bulk__table--teachers .admin-bulk__row--error+.admin-bulk__error-row td{padding-top:.1rem}.admin-bulk__error-list{color:#a33c3c;display:flex;flex-direction:column;font-size:.82rem;gap:.15rem;line-height:1.4;list-style:none;margin:0;padding:0}.admin-bulk__error-list li{white-space:normal}.skeleton{animation:viewer-skeleton-shimmer 1.6s ease-in-out infinite;background:linear-gradient(100deg,#e5edf0 30%,#f4f9fb,#e5edf0 70%);background-size:220% 100%;border-radius:8px;display:block}.skeleton-line{border-radius:6px;height:.8rem}.skeleton-text{display:grid;gap:.45rem}.skeleton-fill{border-radius:0;height:100%;width:100%}.skeleton-card{background:var(--velora-surface);border:1px solid var(--velora-border);border-radius:var(--velora-radius);display:grid;gap:.6rem;padding:1rem}.skeleton-card__media{aspect-ratio:3 / 2;border-radius:var(--velora-radius-sm)}.skeleton-row td{vertical-align:middle}.skeleton-row td .skeleton-line{min-height:1rem}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}}.offline-indicator{background:#fff7d6;border:1px solid #f0d26b;border-radius:999px;color:#705600;font-size:.78rem;font-weight:700;left:50%;padding:.35rem .75rem;position:fixed;top:.55rem;transform:translate(-50%);z-index:120}.teacher-students__note-cell{min-width:0;overflow:hidden}.teacher-students__note-display{cursor:text;display:block;max-width:100%;min-width:0;overflow:hidden;width:100%}.teacher-students__note-display:focus-visible{border-radius:4px;outline:2px solid var(--velora-primary);outline-offset:2px}.management-table.admin-table.teacher-students__table td .teacher-students__note-text{color:var(--velora-ink, #0f172a);display:block;max-width:100%;min-width:0;overflow:hidden!important;text-overflow:ellipsis;white-space:nowrap!important}.teacher-students__note-empty{color:var(--velora-muted, #94a3b8);font-size:.85rem}.teacher-students__note-input{box-sizing:border-box;border:1px solid var(--velora-border, #cbd5e1);border-radius:6px;font:inherit;line-height:1.4;min-height:76px;overflow-wrap:anywhere;padding:.45rem .55rem;resize:vertical;white-space:pre-wrap;width:100%;word-break:break-word}.teacher-students__note-input:focus-visible{border-color:var(--velora-primary);outline:2px solid var(--velora-primary);outline-offset:1px}.truncated-text__tooltip{overflow-wrap:anywhere;white-space:pre-wrap;word-break:break-word}.admin-page__filters input:focus,.admin-page__filters select:focus,.admin-modal__card input:focus,.admin-modal__card select:focus,.admin-table__actions .button:focus-visible,.admin-users__toolbar input:focus,.admin-users__toolbar select:focus,.admin-users__last-login-filter select:focus,.admin-lessons__toolbar input:focus,.admin-lessons__toolbar select:focus,.admin-subjects__search-control input:focus,.admin-school-range-row input:focus,.admin-school-preview__filters select:focus,.content-quality__toolbar select:focus,.admin-bulk__paste textarea:focus,.expanding-search-dock__form:focus-within{box-shadow:0 0 0 3px var(--velora-focus-ring)}.admin-users__advanced-panel>header button:hover,.admin-users__advanced-panel>header button:focus-visible,.admin-schools__detail-button:hover,.admin-schools__detail-button:focus-visible,.admin-lessons__pagination button:hover:not(:disabled),.admin-lessons__pagination button:focus-visible,.admin-upload-card__dropzone:hover,.admin-bulk-resource__drop,.admin-bulk__template,.resource-button:hover,.course-player__download-state,.course-resource-action:hover,.course-resource-action--active,.lesson-card:hover,.recent-lesson:hover,.admin-classes__row:hover,.admin-classes__row[data-selected=true],.admin-lessons__row:hover,.admin-lessons__row:focus-within,.admin-subjects__row:hover,.admin-subjects__row:focus-within,.admin-schools__row:hover,.admin-schools__row[data-selected=true],.content-quality__row:hover,.content-quality__row:focus-within{background:var(--velora-surface-soft)}.admin-users__advanced-panel>header button:hover,.admin-users__advanced-panel>header button:focus-visible,.admin-schools__detail-button:hover,.admin-schools__detail-button:focus-visible,.admin-lessons__pagination button:hover:not(:disabled),.admin-lessons__pagination button:focus-visible,.resource-button:hover,.course-resource-action:hover,.course-resource-action--active,.lesson-card--active,.grade-card--add:hover{border-color:var(--velora-border-strong)}.admin-lessons__pagination button.is-current,.admin-upload-card__heading span,.admin-bulk-resource__slot,.material-chip--active,.resource-button--active,.lesson-card--active,.course-resource-action--active,.account-summary>span,.settings-card__icon,.admin-school-subject-ranges summary span{background:var(--velora-primary-pale);color:var(--velora-primary-dark)}.admin-users__table th,.admin-lessons__table th,.admin-subjects__table th,.content-quality__table th,.admin-school-preview__results{background:#f8fcf9}.admin-school-subject-tab:hover{background:var(--velora-surface-soft)}.admin-school-subject-ranges,.admin-school-subject-ranges>div{border-color:var(--velora-border)}.admin-school-subject-ranges article+article{border-top-color:var(--velora-border)}.support-card{background:linear-gradient(110deg,var(--velora-surface-soft),#fff)}.teacher-dash__hero:after{background:radial-gradient(circle at 72% 28%,rgba(23,138,88,.18),transparent 58%)}.compact-search-control:focus-within,.compact-filter-select:focus-within{box-shadow:0 0 0 3px var(--velora-focus-ring)}.app-shell,.app-shell__body,.app-shell__content{max-width:100%;min-width:0;width:100%}.app-shell__route-content{max-width:100%;min-width:0}.app-shell__body--teacher>.app-shell__content>.app-shell__route-content--enter-a,.app-shell__body--teacher-course>.app-shell__content>.app-shell__route-content--enter-a{animation:teacher-route-enter-a .19s ease-out both}.app-shell__body--teacher>.app-shell__content>.app-shell__route-content--enter-b,.app-shell__body--teacher-course>.app-shell__content>.app-shell__route-content--enter-b{animation:teacher-route-enter-b .19s ease-out both}@keyframes teacher-route-enter-a{0%{opacity:.86;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes teacher-route-enter-b{0%{opacity:.86;transform:translateY(4px)}to{opacity:1;transform:none}}.teacher-dash__main,.teacher-dash__rail{min-width:0}.viewer-panel--pdf{background:#e8eeec;display:flex;flex-direction:column;height:calc(100vh - 110px);min-height:420px}.viewer-panel--pdf:fullscreen{height:100vh;min-height:0}.protected-pdf__toolbar{align-items:center;background:#fff;border-bottom:1px solid var(--velora-border);display:flex;gap:1rem;justify-content:space-between;min-height:52px;padding:.5rem .75rem}.protected-pdf__toolbar>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.protected-pdf__controls{align-items:center;display:flex;flex:0 0 auto;gap:.25rem}.protected-pdf__controls button{align-items:center;background:transparent;border:1px solid transparent;border-radius:7px;color:var(--velora-primary-dark);display:inline-flex;height:34px;justify-content:center;padding:0;width:34px}.protected-pdf__controls button:hover:not(:disabled),.protected-pdf__controls button:focus-visible{background:var(--velora-primary-pale);border-color:var(--velora-border-strong);outline:none}.protected-pdf__controls button:disabled{cursor:default;opacity:.35}.protected-pdf__controls span{color:var(--velora-muted);font-size:.78rem;font-variant-numeric:tabular-nums;min-width:48px;text-align:center}.protected-pdf__stage{flex:1 1 auto;overflow:auto;padding:1.25rem}.protected-pdf__document{align-items:center;display:flex;flex-direction:column;gap:1.25rem;margin:0 auto;min-width:max-content;width:max-content}.protected-pdf__page{background:#fff;box-shadow:0 8px 28px #092b3b2e;flex:0 0 auto;min-height:1px;min-width:1px;position:relative}.protected-pdf__page canvas{display:block;max-width:none;-webkit-user-select:none;user-select:none}.protected-pdf__text-layer{forced-color-adjust:none;top:0;right:0;bottom:0;left:0;line-height:1;overflow:hidden;position:absolute;text-align:initial;text-size-adjust:none;transform-origin:0 0;-webkit-user-select:text;user-select:text;z-index:2}.protected-pdf__text-layer :is(span,br){color:transparent;cursor:text;position:absolute;transform-origin:0 0;white-space:pre}.protected-pdf__text-layer ::selection{background:color-mix(in srgb,var(--velora-primary) 32%,transparent)}.protected-pdf__annotation-layer{top:0;right:0;bottom:0;left:0;pointer-events:none;position:absolute;z-index:3}.protected-pdf__annotation-layer a{background:transparent;border:1px solid transparent;box-sizing:border-box;cursor:pointer;pointer-events:auto;position:absolute}.protected-pdf__annotation-layer a:hover{background:color-mix(in srgb,var(--velora-primary) 13%,transparent);border-color:color-mix(in srgb,var(--velora-primary) 55%,transparent)}.protected-pdf__annotation-layer a:focus-visible{background:color-mix(in srgb,var(--velora-primary) 18%,transparent);border-color:var(--velora-primary);outline:2px solid var(--velora-primary);outline-offset:1px}@media (min-width: 760px) and (max-width: 1179px){.app-shell__content{padding-left:1rem;padding-right:1rem}.nav-rail,.nav-rail:hover{flex-basis:64px;width:64px}.nav-rail__top,.nav-rail .nav-rail__label,.nav-rail .brand-logo__name{display:none}.nav-rail:not(.teacher-sidebar) .admin-sidebar__link:before,.nav-rail:not(.teacher-sidebar):hover .admin-sidebar__link:before{border-radius:50%;width:42px}.teacher-subjects__sub{display:none}.teacher-dash__grid{grid-template-columns:1fr}.teacher-dash__main{order:1}.teacher-dash__rail{order:2}.teacher-dash__hero--illustrated{aspect-ratio:4.6 / 1}.grade-grid--dash{grid-template-columns:repeat(2,minmax(0,1fr))}.course-nav{--sidebar-w: 238px}.course-nav .lesson-card{min-height:72px;padding:.65rem .6rem}.course-nav .lesson-card__summary{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;line-clamp:1;overflow:hidden}.compact-filter-bar--single{align-items:stretch}.settings-tabs{flex-wrap:nowrap;overflow-x:auto}.settings-tab{flex:0 0 auto;white-space:nowrap}}@media (min-width: 980px) and (max-width: 1179px){.grade-grid--dash:not(.curriculum-grid){grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 759px){.app-shell--workspace .app-shell__body--teacher,.app-shell--workspace .app-shell__body--admin,.app-shell--workspace .app-shell__body--teacher-course{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-shell__content{flex:1 1 auto;min-height:0;overflow-x:visible;overflow-y:auto;padding:.75rem .85rem 76px}.nav-rail,.nav-rail:hover,.app-shell__body--teacher .admin-sidebar,.app-shell__body--teacher .admin-sidebar--collapsed{background:#fffffffa;border:1px solid var(--velora-border);border-bottom:0;border-radius:14px 14px 0 0;bottom:0;box-shadow:0 -5px 22px #092b3b1f;display:block;flex:none;height:64px;left:0;overflow-x:auto;overflow-y:hidden;position:fixed;right:0;top:auto;width:100%;z-index:110}.nav-rail__inner,.app-shell__body--teacher .admin-sidebar__inner{display:block;height:64px;min-height:0;padding:0 .35rem;width:max-content;min-width:100%}.nav-rail__top{display:none}.nav-rail .admin-sidebar__nav,.app-shell__body--teacher .admin-sidebar__nav{align-items:stretch;display:flex;gap:.15rem;height:64px;overflow:visible;padding:0}.nav-rail .admin-sidebar__group,.app-shell__body--teacher .admin-sidebar__group{display:contents}.nav-rail .admin-sidebar__link,.app-shell__body--teacher .admin-sidebar__link{align-items:center;border:0;border-radius:10px;flex:1 0 62px;flex-direction:column;font-size:.64rem;gap:.12rem;justify-content:center;min-height:58px;padding:.35rem .45rem}.nav-rail .admin-sidebar__link svg{flex:0 0 auto}.nav-rail .nav-rail__label{display:block;max-width:74px;opacity:1;overflow:hidden;text-overflow:ellipsis;transform:none;white-space:nowrap}.teacher-sidebar__soon,.teacher-subjects__sub{display:none!important}.teacher-dash{gap:.8rem}.teacher-dash__grid{grid-template-columns:1fr}.teacher-dash__main{order:1}.teacher-dash__rail{order:2}.teacher-dash__hero--illustrated{aspect-ratio:4.15 / 1;background-position:center}.teacher-dash__hero--illustrated .teacher-dash__quote p{font-size:clamp(8px,1.65vw,12px)}.teacher-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.stat-cell{gap:.4rem;padding:.7rem .55rem}.stat-cell__icon{height:38px;width:38px}.stat-cell__value{font-size:1.25rem}.stat-cell__label{font-size:.68rem}.stat-cell:nth-child(n+3){border-top:0}.stat-cell:not(:first-child):before{display:block}.grade-grid--dash{gap:.75rem;grid-template-columns:repeat(2,minmax(0,1fr))}.grade-card--teacher .grade-card__content{padding:.7rem .8rem}.grade-card--teacher .grade-card__content strong{font-size:.92rem}.course-nav.sidebar,.course-nav.sidebar--collapsed{border-bottom:1px solid var(--velora-border);border-right:0;display:block;flex:0 0 auto;max-height:176px;max-width:100%;overflow-y:auto;position:static;width:100%}.course-nav .sidebar__inner{display:block;height:auto;min-height:0;padding:.45rem .75rem;width:100%}.course-nav__section{display:block;padding:.2rem 0}.course-nav__section--lessons{display:block}.course-nav .sidebar__list{display:flex;gap:.45rem;overflow-x:auto;overflow-y:hidden}.course-nav .lesson-card{flex:0 0 176px;min-height:72px;padding:.55rem .6rem}.course-nav .lesson-card__summary{-webkit-box-orient:vertical;-webkit-line-clamp:1;display:-webkit-box;line-clamp:1;overflow:hidden}.course-nav__section:not(.course-nav__section--lessons){align-items:center;display:flex;gap:.35rem;overflow-x:auto}.course-nav__section:not(.course-nav__section--lessons) .course-nav__label{flex:0 0 auto;margin:0 .25rem 0 0}.course-nav__item{flex:0 0 auto;min-height:36px;padding:.4rem .55rem;white-space:nowrap;width:auto}.course-nav__subitems,.course-nav .sidebar__toggle{display:none}.settings-tabs{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain}.settings-tab{flex:0 0 auto;white-space:nowrap}.settings-block{padding:1rem}.account-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-filter-bar--single{align-items:stretch;flex-wrap:wrap}.compact-filter-bar--single .compact-search-field{flex:1 1 100%;max-width:none}.admin-page__table-wrap,.management-table__wrap,.student-roster-table__wrap{max-width:100%;overflow-x:auto}.viewer-panel--pdf,.viewer-panel--document,.viewer-panel--skeleton{height:calc(100vh - 245px);min-height:315px}.protected-pdf__toolbar{align-items:stretch;flex-direction:column;gap:.35rem}.protected-pdf__controls{justify-content:center}.protected-pdf__stage{padding:.75rem}}@media (max-width: 619px){.grade-grid--dash,.curriculum-grid.grade-grid--dash{grid-template-columns:1fr}.teacher-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-cell:nth-child(n+3){border-top:1px solid var(--velora-border)}.account-grid{grid-template-columns:1fr}}.app-shell__body>*,.teacher-dash,.teacher-dash__grid,.teacher-dash__main,.teacher-dash__rail,.teacher-section,.grade-grid,.settings-page,.admin-page{min-width:0;max-width:100%}.teacher-dash{width:100%}.teacher-dash__main{order:1}.teacher-dash__rail{order:2}.subject-selection__header{display:grid;gap:.3rem;padding:.35rem 0 .15rem}.subject-selection__header h1{color:var(--velora-primary-dark);font-size:clamp(1.65rem,3vw,2.25rem);letter-spacing:-.035em;margin:0}.subject-selection__header p{color:var(--velora-muted);margin:0}.curriculum-grid .grade-card{min-width:0}.curriculum-grid .grade-card__content strong{overflow-wrap:anywhere}@media (min-width: 1200px){.app-shell--wide .nav-rail:hover{flex-basis:248px;width:248px}.app-shell--wide .teacher-sidebar.nav-rail--fixed,.app-shell--wide .teacher-sidebar.nav-rail--fixed:hover{flex-basis:224px;width:224px}.app-shell--wide .teacher-subjects__sub{display:grid}}@media (min-width: 900px) and (max-width: 1199px){.app-shell__content{padding-left:1rem;padding-right:1rem}.nav-rail,.nav-rail:hover{flex-basis:64px;width:64px}.nav-rail__top,.nav-rail .nav-rail__label,.nav-rail .brand-logo__name{display:none}.nav-rail:not(.teacher-sidebar) .admin-sidebar__link:before,.nav-rail:not(.teacher-sidebar):hover .admin-sidebar__link:before{border-radius:50%;width:42px}.teacher-subjects__sub{display:none}.teacher-sidebar.nav-rail,.teacher-sidebar.nav-rail:hover,.teacher-sidebar.nav-rail--fixed{flex-basis:208px;width:208px}.teacher-sidebar .nav-rail__inner{width:208px}.teacher-sidebar .nav-rail__label,.teacher-sidebar .brand-logo__name{display:block;opacity:1;transform:none}.teacher-sidebar .teacher-nav-group__sub{display:grid}.teacher-dash__grid{grid-template-columns:minmax(0,1fr)}.teacher-dash__hero--illustrated{aspect-ratio:auto;height:clamp(112px,12vw,144px)}.teacher-dash__hero--illustrated .teacher-dash__quote p{font-size:clamp(9px,1.15vw,13px)}.curriculum-grid.grade-grid--dash{grid-template-columns:repeat(2,minmax(0,1fr))}.curriculum-grid .grade-card__art--image{aspect-ratio:auto;height:clamp(130px,15vw,168px)}.grade-grid--dash:not(.curriculum-grid){grid-template-columns:repeat(3,minmax(0,1fr))}.course-nav{--sidebar-w: 238px}.course-nav__section--lessons{flex:0 0 auto}.course-nav__desktop-lessons{display:none}.course-nav__compact-picker{align-items:center;background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);display:grid;grid-template-columns:auto minmax(0,1fr) auto;height:44px;margin:.2rem 0 .45rem;padding:0 .6rem 0 .7rem;position:relative}.course-nav__compact-picker:focus-within{border-color:var(--velora-primary);box-shadow:0 0 0 3px var(--velora-focus-ring)}.course-nav__compact-picker>svg{color:var(--velora-primary-dark)}.course-nav__compact-value{display:block;font-size:.84rem;font-weight:700;min-width:0;padding:0 .35rem}.course-nav__compact-chevron{color:var(--velora-muted);display:block}.course-nav__compact-picker select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;cursor:pointer;font:inherit;height:42px;top:0;right:0;bottom:0;left:0;min-width:0;opacity:0;outline:0;position:absolute;width:100%}.compact-filter-bar--single{align-items:stretch}.settings-tabs{flex-wrap:nowrap;overflow-x:auto}.settings-tab{flex:0 0 auto;white-space:nowrap}}@media (max-width: 899px){.app-shell--workspace .app-shell__body--teacher,.app-shell--workspace .app-shell__body--teacher-course{display:flex;flex-direction:column;height:100vh;overflow:hidden;width:100%}.app-shell__content{flex:1 1 auto;min-height:0;overflow-x:visible;overflow-y:auto;padding:.75rem .85rem calc(76px + env(safe-area-inset-bottom));position:relative;z-index:0}.app-shell__body--teacher>.teacher-sidebar,.app-shell__body--teacher-course>.teacher-sidebar,.app-shell__body--teacher>.teacher-sidebar:hover,.app-shell__body--teacher-course>.teacher-sidebar:hover{background:#fff;border:0;border-radius:0;border-top:1px solid var(--velora-border);bottom:0;box-shadow:0 -2px 10px #092b3b0f;display:block;flex:none;height:calc(58px + env(safe-area-inset-bottom));isolation:isolate;left:0;overflow:visible;pointer-events:auto;position:fixed;right:0;top:auto;width:100%;z-index:200}.teacher-sidebar .nav-rail__inner{display:block;height:58px;min-height:0;padding:0;width:100%}.teacher-sidebar .nav-rail__top{display:none}.teacher-sidebar .admin-sidebar__nav{align-items:stretch;display:grid;gap:0;grid-template-columns:repeat(5,minmax(0,1fr));height:58px;overflow:visible;padding:0;width:100%}.teacher-sidebar .admin-sidebar__group,.teacher-sidebar .teacher-nav-group,.teacher-sidebar .teacher-nav-group__header{display:contents}.teacher-sidebar .admin-sidebar__group+.admin-sidebar__group{border:0}.teacher-sidebar .admin-sidebar__link{align-items:center;border:0;border-radius:0;color:var(--velora-muted);display:flex;flex-direction:column;font-size:.62rem;gap:.06rem;height:58px;justify-content:center;min-height:44px;min-width:0;padding:.25rem .15rem .18rem;pointer-events:auto;transition:background .15s ease,color .15s ease;width:100%}.teacher-sidebar .admin-sidebar__link:before{display:none}.teacher-sidebar .admin-sidebar__link>svg,.teacher-sidebar .admin-sidebar__link>.teacher-nav-state-icon{border-radius:7px;box-sizing:content-box;flex:0 0 auto;padding:.12rem .28rem;transition:background .15s ease,color .15s ease}.teacher-sidebar .admin-sidebar__link--active,.teacher-sidebar .admin-sidebar__link--active:hover,.teacher-sidebar .admin-sidebar__link--section-current,.teacher-sidebar .admin-sidebar__link--section-current:hover{background:transparent!important;color:var(--velora-primary-dark);font-weight:500}.teacher-sidebar .admin-sidebar__link--active>svg,.teacher-sidebar .admin-sidebar__link--active>.teacher-nav-state-icon,.teacher-sidebar .admin-sidebar__link--section-current .teacher-nav-state-icon{background:#0f8f6a14;color:var(--velora-primary-dark)}.teacher-sidebar .admin-sidebar__link:hover:not(.admin-sidebar__link--active):not(.admin-sidebar__link--section-current){background:#0f8f6a0b!important;color:var(--velora-ink)}.teacher-sidebar .admin-sidebar__link--active:after{background:var(--velora-primary);border-radius:0 0 999px 999px;bottom:auto;content:"";display:block;height:3px;left:50%;position:absolute;top:0;transform:translate(-50%);width:28px}.teacher-sidebar .nav-rail__label{display:block;max-width:100%;opacity:1;overflow:hidden;text-overflow:clip;transform:none;white-space:nowrap}.teacher-sidebar__soon,.teacher-sidebar .teacher-nav-group__sub{display:none!important}.teacher-dash{gap:.75rem}.teacher-dash__grid{grid-template-columns:minmax(0,1fr)}.teacher-dash__hero--illustrated{aspect-ratio:auto;background-position:center;height:108px}.teacher-dash__hero--illustrated .teacher-dash__quote p{font-size:clamp(8px,1.45vw,11px)}.curriculum-grid.grade-grid--dash{gap:.7rem;grid-template-columns:minmax(0,1fr)}.curriculum-grid .grade-card__art--image{aspect-ratio:auto;height:clamp(116px,16vw,142px)}.grade-grid--dash:not(.curriculum-grid){gap:.7rem;grid-template-columns:repeat(2,minmax(0,1fr))}.grade-card--teacher .grade-card__content{padding:.68rem .78rem}.grade-card--teacher .grade-card__content strong{font-size:.91rem}.course-nav.sidebar,.course-nav.sidebar--collapsed{border-bottom:1px solid var(--velora-border);border-right:0;display:block;flex:0 0 auto;max-height:none;max-width:100%;overflow:visible;position:static;width:100%}.course-nav .sidebar__inner{display:block;height:auto;min-height:0;padding:.35rem .75rem;width:100%}.course-nav .sidebar__heading{display:none}.course-nav__section{display:block;padding:.2rem 0}.course-nav__section--lessons{display:block}.course-nav__desktop-lessons{display:none}.course-nav__compact-picker{align-items:center;background:#fff;border:1px solid var(--velora-border-strong);border-radius:var(--velora-radius-sm);display:grid;grid-template-columns:auto minmax(0,1fr) auto;height:44px;margin:0;padding:0 .6rem 0 .7rem;position:relative}.course-nav__compact-picker:focus-within{border-color:var(--velora-primary);box-shadow:0 0 0 3px var(--velora-focus-ring)}.course-nav__compact-picker>svg{color:var(--velora-primary-dark)}.course-nav__compact-value{display:block;font-size:.84rem;font-weight:700;min-width:0;padding:0 .35rem}.course-nav__compact-chevron{color:var(--velora-muted);display:block}.course-nav__compact-picker select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;cursor:pointer;font:inherit;height:42px;top:0;right:0;bottom:0;left:0;min-width:0;opacity:0;outline:0;position:absolute;width:100%}.course-nav__section:not(.course-nav__section--lessons){align-items:center;display:flex;gap:.35rem;overflow-x:auto}.course-nav__section:not(.course-nav__section--lessons) .course-nav__label{flex:0 0 auto;margin:0 .25rem 0 0}.course-nav__item{flex:0 0 auto;min-height:36px;padding:.4rem .55rem;white-space:nowrap;width:auto}.course-nav__subitems,.course-nav .sidebar__toggle{display:none}.settings-tabs{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain}.settings-tab{flex:0 0 auto;white-space:nowrap}.settings-block{padding:1rem}.account-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-filter-bar--single{align-items:stretch;flex-wrap:wrap}.compact-filter-bar--single .compact-search-field{flex:1 1 100%;max-width:none}.admin-page__table-wrap,.management-table__wrap,.student-roster-table__wrap{max-width:100%;overflow-x:auto}.viewer-panel--pdf,.viewer-panel--document,.viewer-panel--skeleton{height:calc(100vh - 245px);min-height:315px}.protected-pdf__toolbar{align-items:stretch;flex-direction:column;gap:.35rem}.protected-pdf__controls{justify-content:center}.protected-pdf__stage{padding:.75rem}}@media (max-width: 1199px){.attendance-page{min-width:0;padding-bottom:.5rem;width:100%}.attendance-header{margin-bottom:.1rem;width:100%}.attendance-header__intro,.attendance-controls-row{min-width:0}.attendance-filter-bar{display:grid;gap:.65rem;grid-template-columns:minmax(0,6fr) minmax(0,5fr) minmax(0,9fr);margin:0;width:100%}.attendance-filter__field,.attendance-filter__field--school,.attendance-filter__field--class,.attendance-filter__field--period,.attendance-filter-bar .compact-search-field{flex:none;max-width:none;min-width:0;width:100%}.attendance-filter__field--school{grid-column:1 / -1}.attendance-filter__field .filter-combobox,.attendance-filter__field--period>*,.attendance-filter__field--period button{width:100%}.attendance-daily__summary{min-width:0}.attendance-month__scroll{max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain}}@media (max-width: 1099px){.attendance-page.teacher-dash{gap:.65rem}.attendance-daily__summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;padding:.65rem .75rem}.attendance-daily__mark-all{grid-column:4;margin-left:0;min-height:44px}.attendance-daily__bottom-actions{display:none}.attendance-page .student-roster-table__wrap{background:transparent;border:0;box-shadow:none;overflow:visible}.attendance-page .student-roster-table{display:block;min-width:0;width:100%}.attendance-page .student-roster-table thead{display:none}.attendance-page .student-roster-table tbody{display:grid;gap:.6rem}.attendance-page .student-roster-table tbody tr{align-items:center;background:#fff;border:1px solid var(--attendance-border);border-radius:var(--velora-radius);box-shadow:0 4px 12px #1148350f;display:grid;grid-template-areas:"name status" "meta status";grid-template-columns:minmax(0,1fr) auto;min-width:0;padding:.7rem .75rem}.attendance-page .student-roster-table td{border:0;min-width:0;padding:.12rem 0}.attendance-page .student-roster-table td:nth-child(1),.attendance-page .student-roster-table td:nth-child(3),.attendance-page .student-roster-table td:nth-child(4),.attendance-page .student-roster-table td:nth-child(6){display:none}.attendance-page .student-roster-table td:nth-child(2){grid-area:name;overflow:hidden;padding-right:.75rem;text-overflow:ellipsis}.attendance-page .student-roster-table td:nth-child(5){color:var(--velora-muted);font-size:.78rem;grid-area:meta;padding-right:.75rem}.attendance-page .student-roster-table td:nth-child(5):before{content:"Ngày sinh: "}.attendance-page .student-roster-table td:nth-child(7){grid-area:status}.attendance-page .student-roster-table__family-name{display:none}.attendance-page .student-roster-table__mobile-name{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attendance-page .student-roster-table__empty{align-items:center;display:flex!important;grid-area:1 / 1 / -1 / -1;justify-content:center;min-height:112px;padding:1.5rem!important}.attendance-daily__present-control{display:none}.attendance-daily__status-toggle{background:#f5f8f7;border:1px solid var(--attendance-border);border-radius:var(--velora-radius-sm);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;padding:3px}.attendance-daily__status-toggle button{background:transparent;border:0;border-radius:calc(var(--velora-radius-sm) - 3px);color:var(--velora-muted);cursor:pointer;font:inherit;font-size:.78rem;font-weight:800;min-height:44px;min-width:70px;padding:0 .65rem}.attendance-daily__status-toggle button:focus-visible{box-shadow:0 0 0 3px var(--velora-focus-ring);outline:0}.attendance-daily__status-toggle button.is-present{background:var(--attendance-primary);color:#fff}.attendance-daily__status-toggle button.is-absent{background:#b91c1c;color:#fff}.attendance-daily__status-toggle button:disabled{cursor:not-allowed;opacity:.55}}@media (max-width: 899px){.attendance-view-select{display:flex}}@media (max-width: 699px){.attendance-controls-row{align-items:stretch;flex-wrap:wrap}.attendance-view-select{flex-basis:100%}.attendance-header__actions{margin-left:auto}.attendance-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-filter__field--school,.attendance-filter-bar .compact-search-field{grid-column:1 / -1}.attendance-daily__summary{grid-template-columns:repeat(3,minmax(0,1fr))}.attendance-daily__mark-all{grid-column:1 / -1;width:100%}}@media (max-width: 559px){.attendance-page .student-roster-table tbody tr{grid-template-areas:"name" "meta" "status";grid-template-columns:minmax(0,1fr)}.attendance-page .student-roster-table td:nth-child(2),.attendance-page .student-roster-table td:nth-child(5){padding-right:0}.attendance-daily__status-toggle{margin-top:.5rem;width:100%}}@media (max-width: 479px){.attendance-filter-bar{grid-template-columns:minmax(0,1fr)}.attendance-filter-bar>*,.attendance-filter__field--school,.attendance-filter-bar .compact-search-field{grid-column:1}}.grade-card--teacher{border-radius:var(--teacher-card-radius);display:grid;grid-template-rows:auto 1fr;height:100%;justify-self:center;width:100%}.grade-card--teacher .grade-card__art,.grade-card--teacher .grade-card__art--image{aspect-ratio:var(--teacher-card-media-ratio);height:auto}.grade-card--teacher .grade-card__art--image img{height:100%;object-fit:contain;object-position:center;width:100%}.curriculum-grid.grade-grid--dash{align-items:stretch;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:center}.curriculum-grid.grade-grid--dash>.grade-card--teacher{max-width:none}.subject-grades .subject-grade-grid.grade-grid--dash{gap:clamp(1.25rem,2vw,2rem);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),var(--teacher-grade-card-width)));justify-content:center}.subject-grades .subject-grade-grid.grade-grid--dash>.grade-card--teacher{max-width:var(--teacher-grade-card-width)}@media (min-width: 900px){.teacher-sidebar.nav-rail,.teacher-sidebar.nav-rail:hover,.teacher-sidebar.nav-rail--fixed{flex-basis:var(--app-sidebar-width);width:var(--app-sidebar-width)}.teacher-sidebar .nav-rail__inner,.course-nav.sidebar,.course-nav .sidebar__inner{width:var(--app-sidebar-width)}.course-nav.sidebar{--sidebar-w: var(--app-sidebar-width);flex-basis:var(--app-sidebar-width)}.teacher-sidebar .admin-sidebar__nav{overflow-x:hidden}.teacher-sidebar.nav-rail .admin-sidebar__group+.admin-sidebar__group{border-top:0;margin-top:0;padding-top:.25rem}.teacher-sidebar.nav-rail .admin-sidebar__group.admin-sidebar__group--settings{border-top:1px solid var(--velora-border);margin-top:auto;padding-top:.65rem}.teacher-nav-group__sub{grid-template-rows:1fr;transition:none}.teacher-nav-group__sub>div{overflow:hidden}.teacher-sidebar .admin-sidebar__link,.course-nav__item,.course-nav .lesson-card{border-radius:var(--sidebar-row-radius);min-height:var(--sidebar-row-height);padding-left:var(--sidebar-row-padding-inline);padding-right:var(--sidebar-row-padding-inline)}.course-nav .lesson-card{align-items:center;display:flex;height:var(--sidebar-row-height);padding-bottom:.5rem;padding-top:.5rem}.teacher-sidebar .admin-sidebar__link{box-sizing:border-box;flex-shrink:0;height:var(--sidebar-row-height);isolation:isolate;overflow:hidden}.teacher-sidebar .admin-sidebar__link:before,.teacher-sidebar .admin-sidebar__link:hover:before,.teacher-sidebar.nav-rail:hover .admin-sidebar__link:before,.teacher-sidebar .admin-sidebar__link--active:before{border-radius:var(--sidebar-row-radius);bottom:0;left:0;top:0;width:100%}.course-nav .lesson-card__title{align-items:center;min-width:0;width:100%}.course-nav .lesson-card__title-text{display:block;line-clamp:unset;overflow:hidden;white-space:nowrap}.course-nav .lesson-card--active{background:var(--velora-primary-pale);border-color:transparent;box-shadow:none;color:var(--velora-primary-dark)}.course-nav .lesson-card--active:before{display:none}}@media (max-width: 899px){.teacher-sidebar .admin-sidebar__nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:hidden;width:100%}.teacher-sidebar .admin-sidebar__group--settings{border:0;margin:0;padding:0}.app-shell__body--teacher>.teacher-sidebar,.app-shell__body--teacher-course>.teacher-sidebar,.app-shell__body--teacher>.teacher-sidebar:hover,.app-shell__body--teacher-course>.teacher-sidebar:hover{box-sizing:border-box;margin:0;max-width:100%;overflow:hidden;padding:0;width:auto}.teacher-sidebar.nav-rail .nav-rail__inner,.teacher-sidebar.nav-rail--fixed .nav-rail__inner{box-sizing:border-box;max-width:100%;overflow:hidden;width:100%}.teacher-sidebar .admin-sidebar__link{box-sizing:border-box;min-width:0;overflow:hidden;width:100%}.teacher-sidebar .admin-sidebar__link>svg,.teacher-sidebar .teacher-nav-state-icon{margin-inline:auto}.teacher-sidebar .nav-rail__label{max-width:calc(100% - .25rem);text-align:center;text-overflow:clip;width:100%}.teacher-sidebar .admin-sidebar__link--section-current:after{background:var(--velora-primary);border-radius:0 0 999px 999px;content:"";display:block;height:3px;left:50%;position:absolute;top:0;transform:translate(-50%);width:28px}}@media (max-width: 559px){.curriculum-grid.grade-grid--dash{grid-template-columns:minmax(0,1fr)}.teacher-sidebar .admin-sidebar__link{font-size:clamp(.56rem,2.4vw,.62rem);gap:.03rem;padding-left:.08rem;padding-right:.08rem}}@media (prefers-reduced-motion: reduce){.app-shell__body--teacher>.app-shell__content>.app-shell__route-content--enter-a,.app-shell__body--teacher-course>.app-shell__content>.app-shell__route-content--enter-a,.app-shell__body--teacher>.app-shell__content>.app-shell__route-content--enter-b,.app-shell__body--teacher-course>.app-shell__content>.app-shell__route-content--enter-b{animation:none}}.management-table-wrap{box-sizing:border-box;isolation:isolate;max-width:100%;min-width:0;overflow:hidden!important;width:100%}.management-table__scrollport{max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;width:100%}.admin-students__panel{min-width:0}.management-table.admin-table{border-collapse:collapse;table-layout:auto!important}.management-table.admin-table.teacher-students__table{table-layout:fixed!important}.management-table.admin-table thead{background:var(--velora-surface-soft)}.management-table.admin-table th,.management-table.admin-table td{box-sizing:border-box;font-size:.875rem;line-height:1.35;padding:.82rem .9rem;white-space:nowrap!important}.management-table.admin-table th{background:var(--velora-surface-soft);color:var(--velora-primary-dark);font-family:var(--velora-font-emphasis);font-size:.76rem;font-weight:700;letter-spacing:.035em;text-transform:uppercase}.management-table.admin-table thead th{border-bottom:1px solid var(--velora-border)}.management-table.admin-table thead th:first-child{border-top-left-radius:calc(var(--velora-radius-lg) - 1px)}.management-table.admin-table thead th:last-child{border-top-right-radius:calc(var(--velora-radius-lg) - 1px)}.management-table--has-actions tr>:last-child:not([colspan]),.management-table__actions{text-align:right!important}.management-table.admin-table tbody tr{height:57px}.management-table.admin-table tbody td{background:transparent;border-left:0;border-right:0;border-top:0;box-shadow:none}.management-table.admin-table td :where(strong,small,span,code,a),.management-table.admin-table th :where(button,span){white-space:nowrap!important}.management-table.admin-table td :where(.admin-users__identity-line strong,.admin-users__email,.admin-users__truncate,.admin-users__grade-summary,.admin-schools__identity strong,.admin-schools__identity small,.admin-schools__code,.admin-classes__school,.admin-subjects__identity strong,.admin-subjects__code,.admin-lessons__identity strong,.admin-lessons__identity small,.admin-lessons__subject span,.content-quality__subject span,.content-quality__lesson strong,.content-quality__lesson small){overflow:visible!important}.data-table-grid{border-collapse:separate!important;border-spacing:0!important}.data-table-grid>thead>tr>th,.data-table-grid>tbody>tr>td{border-bottom:1px solid var(--velora-border)!important;border-left:0!important;border-right:1px solid var(--velora-border)!important;border-top:0!important}.data-table-grid>thead>tr>th:last-child,.data-table-grid>tbody>tr>td:last-child{border-right:0!important}.data-table-grid>tbody>tr:last-child>td{border-bottom:0!important}
