/*! tailwindcss v4.3.2 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:host,:root{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-lg:1.125rem;--text-xl:1.25rem;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,::backdrop,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}:host,html{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden}.absolute,.sr-only{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-0{margin:0}.mt-0{margin-top:0}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mt-24{margin-top:calc(var(--spacing) * 24)}.mb-0{margin-bottom:0}.mb-12{margin-bottom:calc(var(--spacing) * 12)}.mb-16{margin-bottom:calc(var(--spacing) * 16)}.mb-18{margin-bottom:calc(var(--spacing) * 18)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.w-fit{width:fit-content}.justify-end{justify-content:flex-end}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.p-8{padding:calc(var(--spacing) * 8)}.p-12{padding:calc(var(--spacing) * 12)}.p-14{padding:calc(var(--spacing) * 14)}.p-16{padding:calc(var(--spacing) * 16)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.ordinal{--tw-ordinal:ordinal;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--bg:#fbf8f2;--surface:#fffdfa;--ink:#241f23;--ink-2:#6f676c;--line:#e8ded3;--rating-e:#1f9d55;--rating-g:#7bb662;--rating-s:#e8b931;--rating-d:#e07c24;--rating-b:#d14343;--attendance-present:#1f9d55;--attendance-absent:#d14343;--attendance-leave:#e8b931;--attendance-late:#e07c24;--role-common:#5b2166;--role-teacher:#6c3476;--role-lead:#493455;--role-lead-line:#b8863b;--role-admin:#3b846f;--role-homeroom:#74447f;--role-sales:#a66b30;--role-marketing:#ad586e;--role-system:#30283a;--role-system-ok:#22c55e;--feishu-blue:#3370ff;--role-common-deep:#2a1e34;--soft:#f7f1ea;--surface-subtle:#fcf8f3;--surface-raised:#f9f4ee;--surface-muted:#f0e9e1;--row-hover:#fbf5ef;--line-strong:#d8c9bb;--warning-ink:#332600;--warning-ink-strong:#7a4b00;--accent:var(--role-common);--danger:var(--rating-b);--success:var(--rating-e);--text-xs:12px;--text-sm:13px;--text-base:14px;--text-lg:18px;--text-xl:24px;--text-brand-action:19px;--radius-card:14px;--radius-control:10px;--shadow-card:0 4px 16px #3f27370f;--shadow-float:0 18px 48px #39233424;--plum-950:#211827;--plum-900:#2b2033;--plum-800:#382742;--plum-700:#4a1b54;--plum-600:#5b2166;--plum-500:#74447f;--sage-700:#3b715e;--sage-100:#eaf3ec;--amber-600:#a86f22;--amber-100:#fff3d9;--warm-canvas:#fbf8f2;--warm-paper:#fffdfa;--border:var(--line);--primary:var(--accent);--shadow-sm:var(--shadow-card);--font-display:var(--font-bricolage),"Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;--font-body:var(--font-inter),"Noto Sans SC","PingFang SC","Microsoft YaHei",system-ui,sans-serif;--font-mono:var(--font-jetbrains),"SFMono-Regular",Consolas,monospace;--background:var(--bg);--foreground:var(--ink);--muted:var(--ink-2);--panel:var(--surface)}.login-locale-control{justify-content:flex-start;align-items:center;width:100%;max-width:420px;min-height:64px;display:flex}.locale-switcher{border:1px solid var(--line);border-radius:var(--radius-control,8px);background:var(--surface);min-height:38px;color:var(--ink);box-shadow:var(--shadow-xs,0 1px 2px #1b1e240f);align-items:center;gap:8px;padding:0 10px;display:inline-flex;position:relative}.locale-switcher[data-compact=true]{min-height:34px;margin-inline-start:auto;padding-inline:8px}.locale-switcher select{width:auto;min-width:108px;color:inherit;font:inherit;cursor:pointer;background-color:#0000;border:0;padding:0 22px 0 0}.locale-switcher[data-compact=true] select{min-width:92px;font-size:13px}.locale-switcher select:focus-visible{outline:2px solid var(--focus,var(--teacher));outline-offset:4px}.locale-switcher-error{border:1px solid var(--danger);background:var(--surface);width:max-content;max-width:260px;color:var(--danger);border-radius:6px;padding:6px 8px;font-size:12px;position:absolute;inset-block-start:calc(100% + 6px);inset-inline-end:0}.sr-only{clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}*{box-sizing:border-box}body{background:radial-gradient(circle at 92% -8%,var(--role-common),transparent 30rem),var(--bg);margin:0}@supports (color:color-mix(in lab,red,red)){body{background:radial-gradient(circle at 92% -8%,color-mix(in srgb,var(--role-common) 6%,transparent),transparent 30rem),var(--bg)}}body{color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.5}::selection{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){::selection{background:color-mix(in srgb,var(--accent) 22%,white)}}::selection{color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,strong{letter-spacing:0}h1,h2,h3{font-family:var(--font-display)}.mono{font-family:var(--font-mono)}.card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface)}.btn{color:#fff;cursor:pointer;border:1px solid #0000;align-items:center;gap:8px;min-height:36px;padding:8px 12px;font-weight:500;transition:background-color .16s cubic-bezier(.32,.72,0,1),box-shadow .16s cubic-bezier(.32,.72,0,1),opacity .16s;display:inline-flex}.btn,.btn:hover:not(:disabled){background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 92%,black)}}.btn:hover:not(:disabled){box-shadow:var(--shadow-card)}.btn:active:not(:disabled){background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.btn:active:not(:disabled){background:color-mix(in srgb,var(--accent) 86%,black)}}.btn:disabled{background:var(--line);color:var(--ink-2);cursor:not-allowed}.btn.secondary{background:var(--surface)}.icon-button{justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:inline-flex}.btn.danger{background:var(--danger)}.btn.danger-ghost{color:var(--danger);box-shadow:none;background:0 0;border-color:#0000}.btn.danger-ghost:hover:not(:disabled){background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.btn.danger-ghost:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 8%,transparent)}}.btn.danger-ghost:hover:not(:disabled){box-shadow:none}.btn.danger-ghost:active:not(:disabled){background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.btn.danger-ghost:active:not(:disabled){background:color-mix(in srgb,var(--danger) 14%,transparent)}}.field{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);width:100%;min-height:36px;padding:8px 12px;transition:border-color .16s cubic-bezier(.32,.72,0,1),box-shadow .16s cubic-bezier(.32,.72,0,1),background-color .16s}textarea.field{min-height:96px}.field:hover:not(:disabled){border-color:var(--line-strong)}.field:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent)}@supports (color:color-mix(in lab,red,red)){.field:focus{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent)}}.field:focus{outline:0}.field:disabled,.field[readonly]{background:var(--soft);color:var(--ink-2);cursor:not-allowed}.class-select{display:block}.class-select,.class-select-dropdown{width:100%;position:relative}.class-select-trigger{cursor:pointer;color:var(--ink);text-align:left;justify-content:space-between;align-items:center;gap:10px;list-style:none;display:flex}.class-select-trigger::-webkit-details-marker{display:none}.class-select-trigger[aria-disabled=true]{background:var(--soft);color:var(--ink-2);cursor:not-allowed}.class-select-placeholder{color:var(--ink-2)}.class-select-caret{border-bottom:1.5px solid;border-right:1.5px solid;flex:none;width:8px;height:8px;transform:translateY(-2px)rotate(45deg)}.class-select-dropdown[data-open=true] .class-select-caret{transform:translateY(2px)rotate(225deg)}.class-select-popover{z-index:24;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);width:min(420px,max(100%,300px));max-width:calc(100vw - 48px);box-shadow:var(--shadow-float);gap:8px;padding:8px;display:grid;position:absolute;top:calc(100% + 6px);left:0}.class-select-popover[hidden]{display:none}.class-select-search{min-width:0}.class-select-options{overscroll-behavior:contain;gap:4px;max-height:312px;display:grid;overflow:auto}.class-select-group{gap:2px;display:grid}.class-select-group+.class-select-group{border-top:1px solid var(--line);margin-top:4px;padding-top:6px}.class-select-group-label{color:var(--ink-2);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;font-size:10px;font-weight:700}.class-select-option{width:100%;min-height:36px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-left:3px solid #0000;border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:7px 9px 7px 7px;display:flex}.class-select-option:focus-visible,.class-select-option:hover{background:var(--soft)}.class-select-option[aria-selected=true]{border-left-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.class-select-option[aria-selected=true]{background:color-mix(in srgb,var(--accent) 8%,white)}}.class-select-option[aria-selected=true]{color:var(--accent);font-weight:600}.class-select-option-tag{background:var(--attendance-leave);border-radius:999px;flex:none}@supports (color:color-mix(in lab,red,red)){.class-select-option-tag{background:color-mix(in srgb,var(--attendance-leave) 14%,white)}}.class-select-option-tag{color:var(--warning-ink-strong);padding:2px 7px;font-size:11px;font-weight:600}.class-select-option-placeholder{color:var(--ink-2)}.class-select-empty{color:var(--ink-2);text-align:center;margin:0;padding:12px 9px}.class-select-native{opacity:0;pointer-events:none;border:0;width:1px;height:1px;position:absolute;bottom:0;left:0}.label{color:var(--ink-2);gap:6px;font-size:13px;display:grid}.badge{background:var(--accent);border-radius:999px;align-items:center;min-height:22px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.badge{background:color-mix(in srgb,var(--accent) 12%,transparent)}}.badge{color:var(--accent)}.rating-badge{color:#fff;min-width:26px;min-height:22px;font-family:var(--font-mono);border-radius:999px;justify-content:center;align-items:center;padding:2px 9px;font-size:12px;font-weight:700;line-height:1;display:inline-flex}.rating-badge[data-rating=E]{background:var(--rating-e)}.rating-badge[data-rating=G]{background:var(--rating-g)}.rating-badge[data-rating=S]{background:var(--rating-s);color:var(--warning-ink)}.rating-badge[data-rating=D]{background:var(--rating-d)}.rating-badge[data-rating=B]{background:var(--rating-b)}.rating-badge[data-rating=\-]{background:var(--line);color:var(--ink-2)}.rating-cluster{flex-wrap:wrap;gap:6px;display:flex}.rating-chip{border:1px solid var(--line);background:var(--surface);min-height:28px;color:var(--ink-2);border-radius:999px;align-items:center;gap:6px;padding:3px 4px 3px 10px;font-size:12px;display:inline-flex}.rating-segment-field{border:0;gap:6px;min-width:min(260px,100%);margin:0;padding:0;display:grid}.rating-segment-field legend{color:var(--ink-2);margin:0;padding:0;font-size:13px}.rating-segment{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);grid-template-columns:repeat(5,1fr);width:min(260px,100%);height:34px;display:grid;overflow:hidden}.rating-segment-option{border-left:1px solid var(--line);color:var(--ink-2);cursor:pointer;font-family:var(--font-mono);place-items:center;font-size:13px;transition:background-color .1s cubic-bezier(.32,.72,0,1),color .1s;display:grid;position:relative}.rating-segment-option:first-child{border-left:0}.rating-segment-option input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.rating-segment-option span{pointer-events:none}.rating-segment-option[data-rating=E]:hover{background:var(--rating-e)}@supports (color:color-mix(in lab,red,red)){.rating-segment-option[data-rating=E]:hover{background:color-mix(in srgb,var(--rating-e) 12%,white)}}.rating-segment-option[data-rating=G]:hover{background:var(--rating-g)}@supports (color:color-mix(in lab,red,red)){.rating-segment-option[data-rating=G]:hover{background:color-mix(in srgb,var(--rating-g) 12%,white)}}.rating-segment-option[data-rating=S]:hover{background:var(--rating-s)}@supports (color:color-mix(in lab,red,red)){.rating-segment-option[data-rating=S]:hover{background:color-mix(in srgb,var(--rating-s) 12%,white)}}.rating-segment-option[data-rating=D]:hover{background:var(--rating-d)}@supports (color:color-mix(in lab,red,red)){.rating-segment-option[data-rating=D]:hover{background:color-mix(in srgb,var(--rating-d) 12%,white)}}.rating-segment-option[data-rating=B]:hover{background:var(--rating-b)}@supports (color:color-mix(in lab,red,red)){.rating-segment-option[data-rating=B]:hover{background:color-mix(in srgb,var(--rating-b) 12%,white)}}.rating-segment-option:has(input:checked){color:#fff;font-weight:700}.rating-segment-option[data-rating=E]:has(input:checked){background:var(--rating-e)}.rating-segment-option[data-rating=G]:has(input:checked){background:var(--rating-g)}.rating-segment-option[data-rating=S]:has(input:checked){background:var(--rating-s);color:var(--warning-ink)}.rating-segment-option[data-rating=D]:has(input:checked){background:var(--rating-d)}.rating-segment-option[data-rating=B]:has(input:checked){background:var(--rating-b)}.rating-segment-option:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.doorplate-card{gap:14px;padding:16px;transition:transform .16s cubic-bezier(.32,.72,0,1),box-shadow .16s cubic-bezier(.32,.72,0,1);display:grid;position:relative;overflow:hidden}.doorplate-card:before{content:"";background:var(--role-teacher);height:4px;position:absolute;inset:0 0 auto}.doorplate-card:hover{box-shadow:var(--shadow-float);transform:translateY(-2px)}.b1-class-card{border-top:3px solid var(--role-teacher);align-content:start;display:grid;overflow:visible}.b1-class-card-trigger{border-radius:calc(var(--radius-card) - 1px) calc(var(--radius-card) - 1px) 0 0;width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;gap:14px;padding:16px;display:grid}.b1-class-card-trigger:hover{background:var(--surface-subtle)}.b1-class-card-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.b1-class-card-facts{color:var(--ink-2);flex-wrap:wrap;gap:8px 18px;font-size:13px;display:flex}.b1-class-card-action{border-top:1px solid var(--line);justify-content:flex-end;padding:12px 16px;display:flex}.b1-roster-drawer .drawer-panel{width:min(560px,100vw);animation:drawer-slide-in .18s cubic-bezier(.32,.72,0,1)}.b1-class-dates{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-subtle);color:var(--ink-2);flex-wrap:wrap;gap:8px 20px;padding:10px 12px;font-size:13px;display:flex}.b1-roster-list{display:grid}.b1-roster-row{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 0;display:grid}.b1-roster-row:first-child{border-top:0}.doorplate-head{justify-content:space-between;align-items:start;gap:12px;display:flex}.doorplate-title{gap:6px;display:grid}.doorplate-title strong{font-family:var(--font-display);font-size:18px}.doorplate-meta{color:var(--ink-2);flex-wrap:wrap;gap:8px;font-size:12px;display:flex}.zoom-code{border:1px solid var(--line);background:var(--surface-subtle);width:fit-content;color:var(--ink);font-family:var(--font-mono);border-radius:6px;padding:4px 8px;font-size:12px;display:inline-flex}.lesson-progress-ring{flex:0 auto;align-items:center;gap:6px;display:inline-flex}.progress-ring{--progress:0%;background:conic-gradient(var(--success) var(--progress),var(--line) 0);border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid}.progress-ring:before{content:"";position:absolute}.progress-ring span{background:var(--surface);width:34px;height:34px;color:var(--ink);border-radius:50%;place-items:center;font-size:9px;font-weight:700;display:grid}.progress-ring[data-state=over-limit]{background:conic-gradient(var(--danger) var(--progress),var(--line) 0)}.progress-ring[data-state=unconfigured]{background:var(--line)}.suspended-zone{border:1px dashed var(--line-strong);border-radius:var(--radius-control);background:repeating-linear-gradient(45deg,var(--soft) 0 6px,var(--surface-raised) 6px 12px);opacity:.78;padding:10px}.attendance-mini{grid-template-columns:minmax(88px,max-content) auto;align-items:center;gap:8px;display:inline-grid}.attendance-mini>span{grid-row:1;height:8px}.attendance-mini>span:first-child{background:var(--attendance-present);border-radius:999px 0 0 999px;grid-column:1;justify-self:start}.attendance-mini>span:nth-child(2){background:var(--attendance-absent);border-radius:0 999px 999px 0;grid-column:1;justify-self:end}.attendance-mini strong{color:var(--ink-2);grid-column:2;font-size:12px}.attendance-split{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.attendance-list{border:1px solid var(--line);border-radius:var(--radius-control);padding:12px}.attendance-list[data-tone=present]{border-left:3px solid var(--attendance-present)}.attendance-list[data-tone=absent]{border-left:3px solid var(--attendance-absent)}.attendance-list h3{margin:0 0 8px;font-size:14px}.flow-pill{border:1px solid var(--line);background:var(--soft);border-radius:999px;font-size:12px;font-weight:600;overflow:hidden}.flow-pill,.flow-step{align-items:center;min-height:22px;display:inline-flex}.flow-step{color:var(--ink-2);gap:6px;padding:2px 8px}.flow-step[data-active=true]{background:var(--attendance-present);color:#fff}.flow-pill[data-status=PENDING] .flow-step[data-active=true]{background:var(--attendance-leave);color:var(--warning-ink)}.flow-pill[data-status=REJECTED] .flow-step[data-active=true]{background:var(--danger)}.flow-step i{color:currentColor;opacity:.65;font-style:normal}.rejection-quote{border-left:3px solid var(--danger);border-radius:0 var(--radius-control) var(--radius-control) 0;background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.rejection-quote{background:color-mix(in srgb,var(--danger) 8%,white)}}.rejection-quote{color:var(--danger);padding:10px 12px}.homework-stage-card{position:relative;overflow:hidden}.homework-stage-card:before{content:"";background:var(--role-lead-line);border-radius:999px;height:3px;position:absolute;inset:0 18px auto}.leave-item,.leave-timeline{gap:12px;display:grid}.leave-item{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);grid-template-columns:auto minmax(0,1fr) auto;align-items:start;padding:14px}.date-chip{border-radius:var(--radius-control);background:var(--role-teacher);place-items:center;min-width:74px;display:grid}@supports (color:color-mix(in lab,red,red)){.date-chip{background:color-mix(in srgb,var(--role-teacher) 12%,white)}}.date-chip{color:var(--role-teacher);font-family:var(--font-mono);padding:8px 10px;font-weight:700}.date-chip small{color:var(--ink-2);font-size:10px;font-weight:500}.class-report-workbench{--submit-bar-clearance:92px;padding-bottom:var(--submit-bar-clearance);scroll-padding-bottom:var(--submit-bar-clearance);grid-template-columns:minmax(0,1.63fr) minmax(300px,1fr);grid-template-areas:"writing attendance""submit submit";align-items:start;gap:16px;display:grid}.attendance-panel{overscroll-behavior:contain;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);max-height:calc(100vh - 96px);box-shadow:var(--shadow-card);grid-area:attendance;gap:12px;padding:16px;display:grid;position:sticky;top:76px;overflow:auto}.attendance-panel[data-disabled=true],.class-report-disabled-zone[data-disabled=true]{border-color:var(--line);background:var(--soft);box-shadow:none;color:var(--ink-2)}.class-report-disabled-zone{min-width:0;margin:0}.class-report-disabled-prompt{border:1px dashed var(--line-strong);border-radius:var(--radius-control);background:var(--surface);margin:0}@supports (color:color-mix(in lab,red,red)){.class-report-disabled-prompt{background:color-mix(in srgb,var(--surface) 78%,transparent)}}.class-report-disabled-prompt{color:var(--ink-2);text-align:center;padding:12px}.attendance-checklist,.attendance-row{gap:8px;display:grid}.attendance-row{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);cursor:pointer;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;min-height:48px;padding:8px 10px}.attendance-row:hover{background:var(--row-hover)}.attendance-row input{width:22px;height:22px;accent-color:var(--role-teacher)}.attendance-row[data-present=true]{border-color:var(--attendance-present)}@supports (color:color-mix(in lab,red,red)){.attendance-row[data-present=true]{border-color:color-mix(in srgb,var(--attendance-present) 32%,var(--line))}}.attendance-row[data-present=true]{background:var(--attendance-present)}@supports (color:color-mix(in lab,red,red)){.attendance-row[data-present=true]{background:color-mix(in srgb,var(--attendance-present) 8%,white)}}.attendance-row em{background:var(--role-teacher);border-radius:999px}@supports (color:color-mix(in lab,red,red)){.attendance-row em{background:color-mix(in srgb,var(--role-teacher) 12%,white)}}.attendance-row em{color:var(--role-teacher);padding:2px 8px;font-size:12px;font-style:normal;font-weight:600}.roster-issue-dialog{border-top:1px solid var(--line);padding-top:12px}.roster-issue-link{width:fit-content;color:var(--role-teacher);cursor:pointer;text-underline-offset:3px;font-size:13px;font-weight:600;text-decoration:underline;list-style:none}.roster-issue-link::-webkit-details-marker{display:none}.roster-issue-link[aria-disabled=true]{color:var(--ink-2);cursor:not-allowed;opacity:.7}.roster-issue-dialog-panel{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);box-shadow:var(--shadow-card);margin-top:10px;padding:12px}.report-writing-flow{grid-area:writing;gap:14px;min-width:0;display:grid}.flow-section{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);gap:12px;padding:16px;display:grid}.flow-section h2{align-items:center;gap:8px;margin:0;font-size:16px;display:flex}.flow-section h2 span{background:var(--role-teacher);color:#fff;width:24px;height:24px;font-family:var(--font-mono);border-radius:50%;place-items:center;font-size:12px;display:grid}.flow-section h2 small{color:var(--ink-2);font-family:var(--font-mono);margin-left:auto;font-size:12px}.student-note-list{grid-template-columns:minmax(0,1fr);gap:12px;display:grid}.student-note-card{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);gap:8px;padding:12px;display:grid}.student-note-card-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.attendance-chip{border-radius:999px;align-items:center;width:fit-content;min-height:22px;padding:2px 9px;font-size:12px;font-weight:600;display:inline-flex}.attendance-chip.is-present{background:var(--attendance-present)}@supports (color:color-mix(in lab,red,red)){.attendance-chip.is-present{background:color-mix(in srgb,var(--attendance-present) 12%,white)}}.attendance-chip.is-present{color:var(--attendance-present)}.field[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger)}@supports (color:color-mix(in lab,red,red)){.field[aria-invalid=true]{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 10%,transparent)}}.class-select-trigger[aria-invalid=true],.ui-date-trigger[aria-invalid=true],.ui-select-trigger[aria-invalid=true]{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger)}@supports (color:color-mix(in lab,red,red)){.class-select-trigger[aria-invalid=true],.ui-date-trigger[aria-invalid=true],.ui-select-trigger[aria-invalid=true]{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 10%,transparent)}}.class-select-value,.ui-control-value{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.ui-date-picker,.ui-month-picker,.ui-select{width:100%;display:block;position:relative}.ui-date-trigger,.ui-month-trigger,.ui-select-trigger{width:100%;color:var(--ink);text-align:left;cursor:pointer;justify-content:space-between;align-items:center;gap:8px;display:flex}.ui-date-trigger:disabled,.ui-month-trigger:disabled,.ui-select-trigger:disabled{background:var(--soft);color:var(--ink-2);cursor:not-allowed}.ui-select-chevron{flex:none;transition:transform .16s}.ui-select-trigger[aria-expanded=true] .ui-select-chevron{transform:rotate(180deg)}.ui-date-placeholder,.ui-select-placeholder{color:var(--ink-2)}.ui-calendar-popover,.ui-select-popover{z-index:30;border:1px solid var(--line);background:var(--surface);width:min(360px,100vw - 32px);box-shadow:var(--shadow-float);border-radius:10px;padding:8px;position:absolute;top:calc(100% + 6px);left:0}.ui-select-search-wrap{border:1px solid var(--line);color:var(--ink-2);border-radius:7px;align-items:center;gap:7px;padding:0 9px;display:flex}.ui-select-search{background:0 0;border:0;outline:0;width:100%;min-width:0;padding:8px 0}.ui-select-options{gap:2px;max-height:320px;margin-top:6px;display:grid;overflow:auto}.ui-select-option{min-height:36px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:7px 9px;display:flex}.ui-select-option:focus-visible,.ui-select-option:hover:not(:disabled){background:var(--soft)}.ui-select-option[aria-selected=true]{color:var(--accent);font-weight:600}.ui-select-option:disabled{color:var(--ink-2);cursor:not-allowed}.ui-select-empty{color:var(--ink-2);text-align:center;margin:0;padding:12px 9px}.ui-date-trigger{justify-content:flex-start}.ui-date-trigger>span:not(.ui-date-clear){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.ui-date-clear{color:var(--ink-2);margin-left:auto;display:inline-flex}.ui-calendar-popover{width:292px;padding:12px}.ui-month-popover{border-radius:var(--radius-control);width:292px;box-shadow:var(--shadow-float)}.ui-month-trigger .ui-month-chevron{margin-left:auto}.ui-month-trigger[aria-expanded=true] .ui-month-chevron{transform:rotate(180deg)}.ui-month-step-hint{color:var(--ink-2);text-align:center;margin:0 0 8px;font-size:12px}.ui-month-grid,.ui-month-year-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.ui-month-option,.ui-month-year,.ui-month-year-switch{color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000}.ui-month-year{border-radius:var(--radius-control);min-height:38px;font-size:13px}.ui-month-year-selected,.ui-month-year:focus-visible,.ui-month-year:hover:not(:disabled){background:var(--soft);color:var(--accent)}.ui-month-year-selected{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.ui-month-year-selected{border-color:color-mix(in srgb,var(--accent) 38%,var(--line))}}.ui-month-year-selected{font-weight:650}.ui-month-year-switch{border-radius:var(--radius-control);min-width:64px;min-height:28px;font-size:13px;font-weight:650}.ui-month-year-switch:focus-visible,.ui-month-year-switch:hover{background:var(--soft);color:var(--accent)}.ui-month-option{border-radius:var(--radius-control);place-items:center;min-height:52px;padding:4px;display:grid}.ui-month-option>span{border-radius:50%;place-items:center;width:44px;height:44px;font-size:12px;display:grid}.ui-month-option:focus-visible>span,.ui-month-option:hover:not(:disabled)>span{background:var(--soft)}.ui-month-option-selected>span{background:var(--accent);color:#fff;font-weight:650}.ui-month-option:disabled,.ui-month-year:disabled{color:var(--line-strong);cursor:not-allowed}.ui-calendar-range-popover{width:min(620px,100vw - 32px)}.ui-calendar-nav{justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px;display:flex}.ui-calendar-nav strong{font-size:13px}.ui-calendar-nav .icon-button{width:28px;height:28px}.ui-calendar-range-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.ui-calendar-month{min-width:0}.ui-calendar-title{color:var(--ink);text-align:center;margin-bottom:8px;font-size:13px;display:block}.ui-calendar-grid,.ui-calendar-weekdays{grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.ui-calendar-weekdays{color:var(--ink-2);text-align:center;margin-bottom:3px;font-size:11px}.ui-calendar-day{width:32px;height:32px;color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;font-size:12px;display:grid;position:relative}.ui-calendar-day:hover:not(:disabled){background:var(--soft)}.ui-calendar-day-muted,.ui-calendar-day:disabled{color:var(--line-strong);cursor:default}.ui-calendar-day-selected{border-color:var(--accent);background:var(--accent);color:#fff;font-weight:600}.ui-calendar-day-range:not(.ui-calendar-day-selected){background:var(--accent);border-radius:4px}@supports (color:color-mix(in lab,red,red)){.ui-calendar-day-range:not(.ui-calendar-day-selected){background:color-mix(in srgb,var(--accent) 12%,white)}}.ui-calendar-day-range:not(.ui-calendar-day-selected){color:var(--accent)}.ui-calendar-day-today:not(.ui-calendar-day-selected){border-color:var(--accent)}.ui-checkbox-wrap{align-items:center;gap:8px;min-height:28px;display:inline-flex}.ui-checkbox{border:1px solid var(--line-strong);background:var(--surface);color:#fff;cursor:pointer;border-radius:4px;flex:none;place-items:center;width:18px;height:18px;padding:0;transition:background-color .12s,border-color .12s;display:inline-grid}.ui-checkbox-large{width:22px;height:22px}.ui-checkbox[aria-checked=true]{border-color:var(--accent);background:var(--accent)}.ui-checkbox[aria-disabled=true]{background:repeating-linear-gradient(45deg,var(--soft) 0 6px,var(--surface-raised) 6px 12px);cursor:not-allowed;opacity:.75}.ui-checkbox-label{cursor:pointer}.ui-checkbox[aria-disabled=true]+.ui-checkbox-label{color:var(--ink-2);cursor:not-allowed}.ui-radio-group{flex-wrap:wrap;gap:8px;display:flex}.ui-radio-option{border:1px solid var(--line);background:var(--surface);min-height:32px;color:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:5px 10px;display:inline-flex}.ui-radio-option:hover:not(:disabled){background:var(--soft)}.ui-radio-option[aria-checked=true]{border-color:var(--accent);color:var(--accent)}.ui-radio-dot{background:0 0;border:1px solid;border-radius:50%;width:14px;height:14px}.ui-radio-option[aria-checked=true] .ui-radio-dot{border:4px solid var(--accent)}.required-mark{color:var(--danger);margin-left:3px}.field-error{color:var(--danger);font-size:12px;font-weight:500}[data-field-error=true]{scroll-margin:96px 0 92px}.submit-bar{z-index:18;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);grid-area:submit;justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;bottom:0}@supports (color:color-mix(in lab,red,red)){.submit-bar{background:color-mix(in srgb,var(--surface) 94%,transparent)}}.submit-bar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-float);padding:12px}.submit-bar-status{min-width:0;color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:10px;display:flex}.submit-bar-status>span:first-child{color:var(--ink-2)}.validation-error-link{color:var(--danger);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;border-radius:6px;padding:4px 6px;font-weight:700;text-decoration:underline}.validation-error-link:hover{background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.validation-error-link:hover{background:color-mix(in srgb,var(--danger) 8%,white)}}.submit-error-message{color:var(--danger);font-family:var(--font-body)}.term-report-card{position:relative}.term-report-head{z-index:4;border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;display:flex;position:sticky;top:56px}@supports (color:color-mix(in lab,red,red)){.term-report-head{background:color-mix(in srgb,var(--surface) 94%,transparent)}}.term-report-head{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding-bottom:10px}.term-report-head h2{margin:0}.term-report-head span{background:var(--role-teacher);border-radius:999px}@supports (color:color-mix(in lab,red,red)){.term-report-head span{background:color-mix(in srgb,var(--role-teacher) 12%,white)}}.term-report-head span{color:var(--role-teacher);padding:4px 10px;font-size:12px;font-weight:700}.note-card{background-image:repeating-linear-gradient(#0000 0 27px,#1b1e2408 27px 28px)}.info-banner{border-left:4px solid var(--attendance-leave);background:var(--attendance-leave)}@supports (color:color-mix(in lab,red,red)){.info-banner{background:color-mix(in srgb,var(--attendance-leave) 12%,white)}}.status-edge{background:var(--ink-2);border-radius:999px;align-self:stretch;width:3px;min-height:32px;display:inline-block}.status-edge[data-status=active]{background:var(--attendance-present)}.status-edge[data-status=trial]{background:var(--role-teacher)}.status-edge[data-status=paused]{background:var(--attendance-leave)}.status-edge[data-status=graduated],.status-edge[data-status=withdrawn]{background:var(--ink-2)}.student-edge-cell{grid-template-columns:3px minmax(0,1fr);align-items:stretch;gap:10px;display:grid}.teacher-students-workspace{gap:14px;display:grid}.teacher-students-filter{grid-template-columns:repeat(3,minmax(140px,.75fr)) minmax(220px,1.35fr) auto;align-items:end;gap:12px;padding:14px;display:grid}.teacher-students-filter .label{min-width:0}.teacher-students-search{min-width:220px}.search-field-wrap{display:block;position:relative}.search-field-wrap svg{z-index:1;color:var(--ink-2);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.search-field-wrap .field{width:100%;padding-left:34px}.clear-student-filters{white-space:nowrap}.teacher-students-results{position:relative}.teacher-students-results[aria-busy=true] .data-table-shell{opacity:.72}.teacher-students-error,.teacher-students-loading{padding:18px}.teacher-students-error{justify-content:space-between;align-items:center;gap:12px;display:flex}.data-table tbody tr[data-clickable=true]{cursor:pointer}.teacher-students-workspace .data-table tbody tr[data-row-status=active],.teacher-students-workspace .data-table tbody tr[data-selected=true][data-row-status=active]{box-shadow:inset 3px 0 0 var(--attendance-present)}.teacher-students-workspace .data-table tbody tr[data-row-status=trial],.teacher-students-workspace .data-table tbody tr[data-selected=true][data-row-status=trial]{box-shadow:inset 3px 0 0 var(--role-teacher)}.teacher-students-workspace .data-table tbody tr[data-row-status=paused],.teacher-students-workspace .data-table tbody tr[data-selected=true][data-row-status=paused]{box-shadow:inset 3px 0 0 var(--attendance-leave)}.teacher-students-workspace .data-table tbody tr[data-row-status=graduated],.teacher-students-workspace .data-table tbody tr[data-row-status=withdrawn],.teacher-students-workspace .data-table tbody tr[data-selected=true][data-row-status=graduated],.teacher-students-workspace .data-table tbody tr[data-selected=true][data-row-status=withdrawn]{box-shadow:inset 3px 0 0 var(--ink-2)}.data-table tbody tr[data-clickable=true]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.last-report-cell,.student-class-list,.student-name-cell{gap:3px;display:grid}.student-name-cell strong{color:var(--ink);font-weight:700}.student-class-list small,.student-name-cell>span{color:var(--ink-2);font-size:var(--text-xs)}.student-class-list>span{gap:1px;display:grid}.project-line-badge,.student-attendance-badge,.student-status-badge{width:fit-content;min-height:22px;font-size:var(--text-xs);border-radius:999px;align-items:center;padding:2px 10px;font-weight:500;display:inline-flex}.student-status-badge[data-status=active]{background:var(--attendance-present)}@supports (color:color-mix(in lab,red,red)){.student-status-badge[data-status=active]{background:color-mix(in srgb,var(--attendance-present) 12%,white)}}.student-status-badge[data-status=active]{color:var(--attendance-present)}.student-status-badge[data-status=trial]{background:var(--role-teacher)}@supports (color:color-mix(in lab,red,red)){.student-status-badge[data-status=trial]{background:color-mix(in srgb,var(--role-teacher) 12%,white)}}.student-status-badge[data-status=trial]{color:var(--role-teacher)}.student-status-badge[data-status=paused]{background:var(--attendance-leave)}@supports (color:color-mix(in lab,red,red)){.student-status-badge[data-status=paused]{background:color-mix(in srgb,var(--attendance-leave) 15%,white)}}.student-status-badge[data-status=paused]{color:var(--warning-ink-strong)}.student-status-badge[data-status=graduated],.student-status-badge[data-status=withdrawn]{background:var(--soft);color:var(--ink-2)}.project-line-badge[data-line=piff]{background:var(--role-common)}@supports (color:color-mix(in lab,red,red)){.project-line-badge[data-line=piff]{background:color-mix(in srgb,var(--role-common) 12%,white)}}.project-line-badge[data-line=piff]{color:var(--role-common)}.project-line-badge[data-line=pbe]{background:var(--role-admin)}@supports (color:color-mix(in lab,red,red)){.project-line-badge[data-line=pbe]{background:color-mix(in srgb,var(--role-admin) 12%,white)}}.project-line-badge[data-line=pbe]{color:var(--role-admin)}.student-attendance-badge[data-status=present]{background:var(--attendance-present)}@supports (color:color-mix(in lab,red,red)){.student-attendance-badge[data-status=present]{background:color-mix(in srgb,var(--attendance-present) 12%,white)}}.student-attendance-badge[data-status=present]{color:var(--attendance-present)}.student-attendance-badge[data-status=absent]{background:var(--attendance-absent)}@supports (color:color-mix(in lab,red,red)){.student-attendance-badge[data-status=absent]{background:color-mix(in srgb,var(--attendance-absent) 12%,white)}}.student-attendance-badge[data-status=absent]{color:var(--attendance-absent)}.student-attendance-badge[data-status=leave]{background:var(--attendance-leave)}@supports (color:color-mix(in lab,red,red)){.student-attendance-badge[data-status=leave]{background:color-mix(in srgb,var(--attendance-leave) 15%,white)}}.student-attendance-badge[data-status=leave]{color:var(--warning-ink-strong)}.student-attendance-badge[data-status=late]{background:var(--attendance-late)}@supports (color:color-mix(in lab,red,red)){.student-attendance-badge[data-status=late]{background:color-mix(in srgb,var(--attendance-late) 12%,white)}}.student-attendance-badge[data-status=late]{color:var(--attendance-late)}.student-attendance-badge[data-status=unmarked]{background:var(--soft);color:var(--ink-2)}.goal-count-cell{align-items:center;gap:7px;display:inline-flex}.goal-warning{cursor:help;place-items:center;width:18px;height:18px;display:inline-grid;position:relative}.goal-warning>i{background:var(--attendance-leave);width:8px;height:8px;box-shadow:0 0 0 3px var(--attendance-leave);border-radius:50%;display:block}@supports (color:color-mix(in lab,red,red)){.goal-warning>i{box-shadow:0 0 0 3px color-mix(in srgb,var(--attendance-leave) 16%,transparent)}}.goal-warning [role=tooltip]{z-index:20;background:var(--ink);color:#fff;width:max-content;max-width:220px;box-shadow:var(--shadow-float);font-size:var(--text-xs);opacity:0;pointer-events:none;border-radius:6px;padding:5px 8px;font-style:normal;transition:opacity .1s cubic-bezier(.32,.72,0,1);position:absolute;bottom:calc(100% + 7px);left:50%;transform:translate(-50%)}.goal-warning:focus [role=tooltip],.goal-warning:hover [role=tooltip]{opacity:1}.last-report-cell .mono{font-size:var(--text-sm)}.student-row-actions{white-space:nowrap;justify-content:flex-end;display:flex}.profile-quick-card{gap:8px;padding:14px;display:grid}.profile-action-dialog,.profile-quick-dialog{width:min(560px,100%)}.profile-quick-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.profile-quick-head strong{font-family:var(--font-display);font-size:var(--text-lg)}.profile-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.profile-back-link{width:fit-content;color:var(--role-teacher);font-size:var(--text-sm);margin-bottom:10px;font-weight:600;display:inline-flex}.profile-back-link:hover{text-underline-offset:3px;text-decoration:underline}.profile-title-block{gap:3px;margin-bottom:18px;display:grid}.profile-title-block h1,.profile-title-block p,.profile-title-block span{margin:0}.profile-title-block p{color:var(--role-teacher);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.profile-title-block span{color:var(--ink-2);font-size:var(--text-sm)}.student-profile-page{gap:20px;display:grid}.student-profile-hero{isolation:isolate;border:1px solid var(--plum-600);position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.student-profile-hero{border:1px solid color-mix(in srgb,var(--plum-600) 16%,var(--line))}}.student-profile-hero{border-left:5px solid var(--ink-2);background:var(--surface);background-image:radial-gradient(circle at 78% 0,var(--plum-500),transparent 34%),linear-gradient(118deg,var(--warm-paper) 0,var(--plum-600) 100%)}@supports (color:color-mix(in lab,red,red)){.student-profile-hero{background-image:radial-gradient(circle at 78% 0,color-mix(in srgb,var(--plum-500) 14%,transparent),transparent 34%),linear-gradient(118deg,var(--warm-paper) 0,color-mix(in srgb,var(--plum-600) 5%,var(--warm-paper)) 100%)}}.student-profile-hero{color:var(--ink);box-shadow:var(--shadow-card),0 18px 44px var(--plum-950)}@supports (color:color-mix(in lab,red,red)){.student-profile-hero{box-shadow:var(--shadow-card),0 18px 44px color-mix(in srgb,var(--plum-950) 10%,transparent)}}.student-profile-hero:before{z-index:0;color:var(--plum-600);position:absolute;bottom:-48px;right:28px}@supports (color:color-mix(in lab,red,red)){.student-profile-hero:before{color:color-mix(in srgb,var(--plum-600) 7%,transparent)}}.student-profile-hero:before{content:attr(data-initial);font-family:var(--font-display);pointer-events:none;font-size:164px;font-weight:800;line-height:1}.student-profile-hero>*{z-index:1;position:relative}.student-profile-hero[data-status=active]{border-left-color:var(--attendance-present)}.student-profile-hero[data-status=trial]{border-left-color:var(--role-teacher)}.student-profile-hero[data-status=paused]{border-left-color:var(--attendance-leave)}.student-profile-hero[data-project-line=pbe]{border-color:var(--sage-700)}@supports (color:color-mix(in lab,red,red)){.student-profile-hero[data-project-line=pbe]{border-color:color-mix(in srgb,var(--sage-700) 18%,var(--line))}}.student-profile-hero[data-project-line=pbe]{background:var(--surface);background-image:radial-gradient(circle at 78% 0,var(--sage-700),transparent 34%),linear-gradient(118deg,var(--warm-paper) 0,var(--sage-700) 100%)}@supports (color:color-mix(in lab,red,red)){.student-profile-hero[data-project-line=pbe]{background-image:radial-gradient(circle at 78% 0,color-mix(in srgb,var(--sage-700) 14%,transparent),transparent 34%),linear-gradient(118deg,var(--warm-paper) 0,color-mix(in srgb,var(--sage-700) 6%,var(--warm-paper)) 100%)}}.student-profile-hero[data-project-line=pbe]:before{color:var(--sage-700)}@supports (color:color-mix(in lab,red,red)){.student-profile-hero[data-project-line=pbe]:before{color:color-mix(in srgb,var(--sage-700) 8%,transparent)}}.profile-hero-main{grid-template-columns:auto minmax(0,1fr) minmax(250px,.55fr);align-items:center;gap:20px;min-height:142px;padding:24px 26px 22px;display:grid}.profile-avatar{border:5px solid var(--warm-paper);place-items:center;width:68px;height:68px;display:grid}@supports (color:color-mix(in lab,red,red)){.profile-avatar{border:5px solid color-mix(in srgb,var(--warm-paper) 88%,transparent)}}.profile-avatar{background:var(--plum-600);border-radius:50%}@supports (color:color-mix(in lab,red,red)){.profile-avatar{background:color-mix(in srgb,var(--plum-600) 12%,var(--warm-paper))}}.profile-avatar{color:var(--plum-600);font-family:var(--font-display);box-shadow:0 9px 24px var(--plum-950);font-size:28px;font-weight:700}@supports (color:color-mix(in lab,red,red)){.profile-avatar{box-shadow:0 9px 24px color-mix(in srgb,var(--plum-950) 14%,transparent)}}.student-profile-hero[data-project-line=pbe] .profile-avatar{border-color:var(--sage-700)}@supports (color:color-mix(in lab,red,red)){.student-profile-hero[data-project-line=pbe] .profile-avatar{border-color:color-mix(in srgb,var(--sage-700) 20%,var(--line))}}.student-profile-hero[data-project-line=pbe] .profile-avatar{background:var(--sage-100);color:var(--sage-700)}.profile-hero-identity{min-width:0}.profile-hero-identity>h1,.profile-hero-identity>p,.profile-hero-identity>span{margin:0}.profile-hero-identity>p{color:var(--plum-600);font-size:var(--text-xs);letter-spacing:.05em;font-weight:700}.profile-hero-identity>h1{color:var(--ink);letter-spacing:-.02em;margin-top:4px;font-size:clamp(31px,3vw,40px);line-height:1.08}.profile-hero-identity>span{color:var(--ink-2);font-size:var(--text-sm);margin-top:5px;display:block}.profile-hero-identity>.profile-secondary-name{color:var(--ink)}@supports (color:color-mix(in lab,red,red)){.profile-hero-identity>.profile-secondary-name{color:color-mix(in srgb,var(--ink) 64%,var(--ink-2))}}.profile-hero-identity>.profile-secondary-name{font-size:var(--text-base);font-weight:600}.profile-hero-badges{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.profile-stage-badge{border:1px solid var(--line);background:var(--soft);width:fit-content;min-height:22px;color:var(--ink-2);font-size:var(--text-xs);border-radius:999px;align-items:center;padding:2px 10px;font-weight:500;display:inline-flex}.profile-current-class{border:1px solid var(--plum-600);justify-items:start;gap:4px;min-width:0;display:grid}@supports (color:color-mix(in lab,red,red)){.profile-current-class{border:1px solid color-mix(in srgb,var(--plum-600) 13%,var(--line))}}.profile-current-class{background:var(--warm-paper);border-radius:12px}@supports (color:color-mix(in lab,red,red)){.profile-current-class{background:color-mix(in srgb,var(--warm-paper) 78%,transparent)}}.profile-current-class{text-align:left;padding:15px 17px;box-shadow:inset 0 1px #ffffffb3}.profile-current-class>small,.profile-current-class>span{color:var(--ink-2);font-size:var(--text-xs)}.profile-current-class>strong{color:var(--ink);font-size:var(--text-lg);line-height:1.25}.profile-lesson-progress{border-top:1px solid var(--plum-600);gap:8px;display:grid}@supports (color:color-mix(in lab,red,red)){.profile-lesson-progress{border-top:1px solid color-mix(in srgb,var(--plum-600) 12%,var(--line))}}.profile-lesson-progress{background:var(--warm-paper)}@supports (color:color-mix(in lab,red,red)){.profile-lesson-progress{background:color-mix(in srgb,var(--warm-paper) 72%,transparent)}}.profile-lesson-progress{padding:14px 26px 17px}.profile-lesson-progress>div:first-child{color:var(--ink-2);font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:12px;display:flex}.profile-lesson-progress>div:first-child strong{color:var(--ink);font-size:var(--text-sm)}.profile-lesson-progress[data-low=true]>div:first-child strong{color:var(--attendance-leave)}.profile-progress-track{background:var(--surface-muted);border-radius:999px;width:100%;height:9px;display:flex;overflow:hidden}.profile-progress-track>span{height:100%;display:block}.profile-progress-used{background:var(--role-homeroom)}.profile-progress-remaining{background:var(--surface-muted)}.profile-lesson-progress[data-low=true] .profile-progress-remaining{background:var(--attendance-leave)}.student-profile-hero[data-project-line=pbe] .profile-progress-used{background:var(--sage-700)}.student-profile-sections{gap:16px;min-width:0;display:grid}.profile-section{background:var(--surface);min-width:0;box-shadow:0 9px 28px var(--plum-950);border-radius:16px;padding:20px;scroll-margin-top:148px}@supports (color:color-mix(in lab,red,red)){.profile-section{box-shadow:0 9px 28px color-mix(in srgb,var(--plum-950) 6%,transparent)}}.profile-section-heading{border-bottom:1px solid var(--line);margin-bottom:14px;padding-bottom:12px}.profile-section-heading h2,.profile-section-heading h3,.profile-section-heading p{margin:0}.profile-section-heading h2,.profile-section-heading h3{color:var(--ink);font-size:var(--text-lg);font-weight:720}.profile-section-heading p{color:var(--ink-2);font-size:var(--text-sm);margin-top:3px}.profile-section-heading-split{justify-content:space-between;align-items:end;gap:12px;display:flex}.profile-fact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.profile-fact-grid>div{border:1px solid var(--plum-600);grid-template-columns:minmax(74px,auto) minmax(0,1fr);align-items:center;gap:12px;min-height:46px;display:grid}@supports (color:color-mix(in lab,red,red)){.profile-fact-grid>div{border:1px solid color-mix(in srgb,var(--plum-600) 7%,var(--line))}}.profile-fact-grid>div{border-radius:var(--radius-control);background:var(--surface-subtle);padding:10px 12px}.profile-fact-grid .profile-fact-wide{background:var(--plum-600);grid-column:1/-1;align-items:start;min-height:58px}@supports (color:color-mix(in lab,red,red)){.profile-fact-grid .profile-fact-wide{background:color-mix(in srgb,var(--plum-600) 4%,var(--surface-subtle))}}.profile-fact-grid dt{color:var(--ink-2);font-size:var(--text-sm)}.profile-fact-grid dd{min-width:0;margin:0}.profile-history-list,.profile-record-list{gap:10px;display:grid}.profile-history-list>article{border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:var(--radius-control);background:var(--surface-subtle);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 13px;display:grid}.profile-history-list>article>.mono{grid-column:2}.profile-history-list>article>.membership-action-trigger{grid-area:1/3/span 2}.profile-history-list>article[data-current=true]{border-left-color:var(--role-teacher)}.profile-history-list article>div{gap:1px;display:grid}.profile-history-list .mono,.profile-history-list small{color:var(--ink-2);font-size:var(--text-xs)}.membership-action-trigger{min-width:34px;min-height:34px;padding:6px}.membership-row-actions{flex-wrap:nowrap}.membership-action-dialog{width:min(520px,100vw - 32px)}.membership-action-dialog header h2,.membership-action-dialog header p{margin:0}.membership-action-dialog header p{color:var(--ink-2);font-size:var(--text-sm);margin-top:4px}.membership-impact-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.membership-impact-summary>span{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-subtle);padding:10px 12px}.membership-impact-warning,.membership-undo-block{border:1px solid var(--danger)}@supports (color:color-mix(in lab,red,red)){.membership-impact-warning,.membership-undo-block{border:1px solid color-mix(in srgb,var(--danger) 35%,var(--line))}}.membership-impact-warning,.membership-undo-block{border-radius:var(--radius-control);background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.membership-impact-warning,.membership-undo-block{background:color-mix(in srgb,var(--danger) 7%,var(--surface))}}.membership-impact-warning,.membership-undo-block{padding:12px}.membership-impact-warning p,.membership-undo-block ul{margin:6px 0 0}.voided-membership-toggle{color:var(--ink-2);font-size:var(--text-sm);align-items:center;gap:8px;text-decoration:none;display:inline-flex}.voided-membership-toggle-track{border:1px solid var(--line-strong);background:var(--surface-subtle);border-radius:999px;align-items:center;width:36px;height:20px;padding:2px;transition:background-color .16s,border-color .16s;display:inline-flex}.voided-membership-toggle-track>span{background:var(--ink-2);border-radius:50%;width:14px;height:14px;transition:transform .16s,background-color .16s}.voided-membership-toggle[aria-checked=true] .voided-membership-toggle-track{border-color:var(--role-admin);background:var(--role-admin)}@supports (color:color-mix(in lab,red,red)){.voided-membership-toggle[aria-checked=true] .voided-membership-toggle-track{background:color-mix(in srgb,var(--role-admin) 18%,var(--surface))}}.voided-membership-toggle[aria-checked=true] .voided-membership-toggle-track>span{background:var(--role-admin);transform:translate(16px)}.profile-attendance-summary,.profile-report-chips{flex-wrap:wrap;gap:6px;display:flex}.profile-activity-timeline{gap:12px;padding-left:28px;display:grid;position:relative}.profile-activity-timeline:before{background:var(--line);content:"";width:2px;position:absolute;top:10px;bottom:10px;left:7px}.profile-timeline-entry{position:relative}.profile-timeline-node{z-index:1;border:3px solid var(--surface);background:var(--ink-2);width:14px;height:14px;box-shadow:0 0 0 1px var(--line-strong);border-radius:50%;position:absolute;top:17px;left:-27px}.profile-timeline-card{border:1px solid var(--line);border-left:3px solid var(--ink-2);border-radius:var(--radius-card);background:var(--surface);box-shadow:0 5px 18px var(--plum-950)}@supports (color:color-mix(in lab,red,red)){.profile-timeline-card{box-shadow:0 5px 18px color-mix(in srgb,var(--plum-950) 5%,transparent)}}.profile-timeline-card{padding:16px;transition:border-color .16s,box-shadow .16s,transform .16s}.profile-timeline-card[data-tone=present]{border-left-color:var(--attendance-present)}.profile-timeline-card[data-tone=late],.profile-timeline-card[data-tone=leave]{border-left-color:var(--attendance-leave)}.profile-timeline-card[data-tone=absent]{border-left-color:var(--attendance-absent)}.profile-record-head,.profile-timeline-card-head{justify-content:space-between;align-items:start;gap:12px;display:flex}.profile-record-head p,.profile-record-head strong,.profile-timeline-card-head h3,.profile-timeline-card-head strong{margin:0}.profile-date-badge{background:var(--soft);width:fit-content;min-height:24px;color:var(--ink-2);font-family:var(--font-mono);font-size:var(--text-xs);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 9px;display:inline-flex}.profile-report-chips{margin-top:8px}.profile-report-body{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:14px;display:grid}.profile-report-body>section{min-width:0;padding:13px 14px 0 0}.profile-report-body>section:nth-child(2n){border-left:1px solid var(--line);padding-left:14px;padding-right:0}.profile-report-body h4{color:var(--ink-2);letter-spacing:.06em;text-transform:uppercase;margin:0 0 5px;font-size:11px;font-weight:700}.profile-report-body p{white-space:pre-wrap;margin:0}.profile-absence-card,.profile-leave-card{padding:12px 14px}.profile-absence-card>p,.profile-leave-card>p{color:var(--ink-2);font-size:var(--text-sm);margin:8px 0 0}.profile-compact-meta{color:var(--ink-2);font-size:var(--text-xs);flex-wrap:wrap;gap:6px 10px;margin-top:8px;display:flex}.profile-compact-meta strong{color:var(--ink)}.profile-card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.profile-record-card{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);min-width:0;padding:14px}.profile-record-card :where(p,strong,h3,.badge){overflow-wrap:anywhere;word-break:break-word}.profile-record-head>:first-child{min-width:0}.report-list-link.profile-record-card{transition:border-color .16s,box-shadow .16s,transform .16s}.report-list-link.profile-record-card:hover{border-color:var(--plum-600)}@supports (color:color-mix(in lab,red,red)){.report-list-link.profile-record-card:hover{border-color:color-mix(in srgb,var(--plum-600) 24%,var(--line))}}.report-list-link.profile-record-card:hover{box-shadow:0 8px 22px var(--plum-950)}@supports (color:color-mix(in lab,red,red)){.report-list-link.profile-record-card:hover{box-shadow:0 8px 22px color-mix(in srgb,var(--plum-950) 8%,transparent)}}.report-list-link.profile-record-card:hover{transform:translateY(-1px)}.profile-record-card>p{margin:8px 0 0}.profile-expandable-text{min-width:0;margin-top:8px}.profile-record-head>.profile-expandable-text{flex:auto;margin-top:0}.profile-expandable-content{overflow-wrap:anywhere;word-break:break-word;margin:0}.profile-expandable-text[data-collapsible=true] .profile-expandable-content[data-expanded=false]{-webkit-line-clamp:5;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.profile-expandable-trigger{min-height:28px;color:var(--plum-600);font:inherit;font-size:var(--text-xs);cursor:pointer;background:0 0;border:0;margin-top:5px;padding:2px 0;font-weight:750}.profile-expandable-trigger:hover{color:var(--plum-700);text-decoration:underline}.profile-expandable-trigger:focus-visible{outline:2px solid var(--plum-600);outline-offset:2px}.profile-disciplinary-row{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.profile-disciplinary-row>div:first-child>p{margin:8px 0 0}.profile-record-actions{justify-content:flex-end;align-items:center;gap:6px;display:flex}.profile-record-head time{color:var(--ink-2);font-size:var(--text-xs);white-space:nowrap}.profile-goal-plans,.profile-review-history{border-top:1px solid var(--line);gap:6px;margin-top:12px;padding-top:10px;display:grid}.profile-goal-plans h3,.profile-goal-plans p,.profile-review-history p{margin:0}.profile-review-history p{color:var(--ink-2);font-size:var(--text-xs)}.profile-goal-plans>div{border-top:1px solid var(--line);gap:3px;padding-top:8px;display:grid}.profile-goal-plans>div:first-of-type{border-top:0;padding-top:0}.profile-tab-nav{z-index:9;border:1px solid var(--line);background:var(--warm-paper);border-radius:16px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid;position:sticky;top:70px}@supports (color:color-mix(in lab,red,red)){.profile-tab-nav{background:color-mix(in srgb,var(--warm-paper) 92%,transparent)}}.profile-tab-nav{box-shadow:0 8px 22px var(--plum-950)}@supports (color:color-mix(in lab,red,red)){.profile-tab-nav{box-shadow:0 8px 22px color-mix(in srgb,var(--plum-950) 7%,transparent)}}.profile-tab-nav{-webkit-backdrop-filter:blur(14px)saturate(120%);backdrop-filter:blur(14px)saturate(120%);padding:6px}.profile-tab-link{border-radius:var(--radius-control);min-width:0;min-height:46px;color:var(--ink-2);font-size:var(--text-sm);text-align:center;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-weight:680;display:flex;position:relative}.profile-tab-link:after{content:"";background:0 0;border-radius:999px;height:3px;position:absolute;bottom:4px;left:22%;right:22%}.profile-tab-link:hover{background:var(--soft);color:var(--ink)}.profile-tab-link[data-active=true]{border-color:var(--plum-600)}@supports (color:color-mix(in lab,red,red)){.profile-tab-link[data-active=true]{border-color:color-mix(in srgb,var(--plum-600) 16%,var(--line))}}.profile-tab-link[data-active=true]{background:var(--plum-600)}@supports (color:color-mix(in lab,red,red)){.profile-tab-link[data-active=true]{background:color-mix(in srgb,var(--plum-600) 5%,var(--surface-subtle))}}.profile-tab-link[data-active=true]{color:var(--plum-700);box-shadow:inset 0 1px #ffffffb8}.profile-tab-link[data-active=true]:after{background:var(--role-teacher)}.profile-tab-count{border:1px solid var(--line);background:var(--surface);min-width:22px;height:22px;color:var(--ink-2);font-family:var(--font-mono);border-radius:999px;place-items:center;padding:0 6px;font-size:11px;line-height:1;display:inline-grid}.profile-tab-link[data-active=true] .profile-tab-count{border-color:var(--plum-600);background:var(--plum-600);color:#fff}.student-profile-tab-panel{min-width:0}.profile-overview-sections{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:16px;display:grid}.profile-overview-sections>#profile-basic,.profile-overview-sections>#profile-class-history{grid-column:span 5}.profile-overview-sections>#profile-basic{grid-column:span 7}.profile-overview-sections>.profile-overview-activity{grid-column:span 8}.profile-overview-sections>.profile-goal-summary{grid-column:span 4}.profile-assessment-sections .profile-section,.profile-growth-family-sections .profile-section,.profile-overview-sections .profile-section,.profile-performance-sections .profile-section{padding:18px}.profile-overview-sections .profile-section-heading{margin-bottom:10px;padding-bottom:8px}.profile-current-class-summary>article{border-color:var(--plum-600)}@supports (color:color-mix(in lab,red,red)){.profile-current-class-summary>article{border-color:color-mix(in srgb,var(--plum-600) 14%,var(--line))}}.profile-current-class-summary>article{background:var(--plum-600)}@supports (color:color-mix(in lab,red,red)){.profile-current-class-summary>article{background:color-mix(in srgb,var(--plum-600) 4%,var(--surface-subtle))}}.profile-current-class-summary>article{padding:12px 13px}.profile-class-history-collapsible{border-top:1px solid var(--line);margin-top:10px;padding-top:8px}.profile-class-history-collapsible>summary{min-height:32px;color:var(--ink-2);cursor:pointer;font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:10px;font-weight:650;list-style-position:inside;display:flex}.profile-class-history-collapsible[open]>summary{color:var(--ink);margin-bottom:8px}.profile-overview-timeline{gap:8px;padding-left:24px}.profile-overview-timeline .profile-timeline-node{left:-23px}.profile-overview-timeline .profile-timeline-card{box-shadow:0 4px 14px var(--plum-950);padding:12px 14px}@supports (color:color-mix(in lab,red,red)){.profile-overview-timeline .profile-timeline-card{box-shadow:0 4px 14px color-mix(in srgb,var(--plum-950) 4%,transparent)}}.profile-overview-timeline .profile-report-chips{margin-top:5px}.profile-overview-timeline .profile-timeline-card-head h3{font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.profile-overview-highlight{color:var(--ink-2);font-size:var(--text-sm);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:7px 0 0;display:-webkit-box;overflow:hidden}.profile-goal-summary-list{gap:8px}.profile-goal-summary-list .profile-record-card{border-color:var(--amber-600)}@supports (color:color-mix(in lab,red,red)){.profile-goal-summary-list .profile-record-card{border-color:color-mix(in srgb,var(--amber-600) 12%,var(--line))}}.profile-goal-summary-list .profile-record-card{background:var(--amber-100)}@supports (color:color-mix(in lab,red,red)){.profile-goal-summary-list .profile-record-card{background:color-mix(in srgb,var(--amber-100) 42%,var(--warm-paper))}}.profile-goal-summary-list .profile-record-card{padding:12px 13px}.profile-performance-filters{border:1px solid var(--line);background:var(--surface-subtle);border-radius:12px;grid-template-columns:minmax(180px,1.35fr) repeat(2,minmax(150px,1fr)) auto;align-items:end;gap:10px;margin-bottom:18px;padding:14px;display:grid}.profile-performance-filter-actions{align-items:center;gap:7px;display:flex}.profile-localized-date-field{display:block;position:relative}.profile-localized-date-field>input{width:100%}.profile-localized-date-field>span{border-radius:calc(var(--radius-control) - 1px) 0 0 calc(var(--radius-control) - 1px);background:var(--surface);color:var(--ink-2);font-family:var(--font-mono);font-size:var(--text-sm);pointer-events:none;align-items:center;padding-left:12px;display:flex;position:absolute;inset:1px 38px 1px 1px}.profile-localized-date-field>input:focus+span{display:none}.profile-performance-timeline .profile-report-body{grid-template-columns:repeat(4,minmax(0,1fr))}.profile-performance-timeline .profile-report-body>section{border-left:1px solid var(--line);padding:12px 10px 0}.profile-performance-timeline .profile-report-body>section:first-child{border-left:0;padding-left:0}.profile-performance-timeline .profile-report-body>section:last-child{padding-right:0}.profile-performance-pagination{border-top:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:16px;padding-top:14px;display:grid}.profile-performance-pagination>:last-child{justify-self:end}.profile-section-pagination{border-top:1px solid var(--line);grid-template-columns:minmax(76px,1fr) auto minmax(76px,1fr);align-items:center;gap:10px;margin-top:14px;padding-top:12px;display:grid}.profile-section-pagination>.mono{color:var(--ink-2);font-size:var(--text-xs);text-align:center;white-space:nowrap}.profile-section-pagination>:last-child{justify-self:end}.profile-assessment-sections,.profile-growth-family-sections{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.profile-assessment-column,.profile-family-column{align-content:start;gap:16px;min-width:0;display:grid}.profile-family-area-label{width:fit-content;color:var(--ink-2);font-size:var(--text-xs);letter-spacing:.06em;margin:0 0 -5px 2px;font-weight:750}.profile-family-column[data-profile-family-area=student] .profile-family-area-label{color:var(--plum-600)}.profile-family-column[data-profile-family-area=parent] .profile-family-area-label{color:var(--role-sales)}.profile-assessment-sections .profile-card-grid{grid-template-columns:1fr}.profile-growth-family-sections .profile-record-list{gap:8px}.profile-growth-family-sections .profile-record-card{padding:13px 14px}#profile-goals,#profile-goals-summary{border-top:3px solid var(--amber-600)}@supports (color:color-mix(in lab,red,red)){#profile-goals,#profile-goals-summary{border-top:3px solid color-mix(in srgb,var(--amber-600) 64%,var(--line))}}#profile-classroom-performance{border-top:3px solid var(--sage-700)}@supports (color:color-mix(in lab,red,red)){#profile-classroom-performance{border-top:3px solid color-mix(in srgb,var(--sage-700) 56%,var(--line))}}#pbe-assessments,#piff-assessments,#profile-homework,#term-assessments{border-top:3px solid var(--plum-600)}@supports (color:color-mix(in lab,red,red)){#pbe-assessments,#piff-assessments,#profile-homework,#term-assessments{border-top:3px solid color-mix(in srgb,var(--plum-600) 46%,var(--line))}}#profile-disciplinary,#profile-issues{border-top:3px solid var(--attendance-absent)}@supports (color:color-mix(in lab,red,red)){#profile-disciplinary,#profile-issues{border-top:3px solid color-mix(in srgb,var(--attendance-absent) 38%,var(--line))}}#profile-parent-pain-points,#profile-parent-shares,#profile-parent-tasks{border-top:3px solid var(--role-sales)}@supports (color:color-mix(in lab,red,red)){#profile-parent-pain-points,#profile-parent-shares,#profile-parent-tasks{border-top:3px solid color-mix(in srgb,var(--role-sales) 42%,var(--line))}}.profile-attendance-summary .student-attendance-badge{min-height:28px;font-family:var(--font-mono);padding:5px 10px}.consumption-bar{align-items:center;gap:8px;display:inline-flex}.consumption-bar-track{background:var(--line);border-radius:999px;width:120px;height:8px;display:flex;overflow:hidden}.consumption-bar-fill{border-radius:inherit;background:var(--success);height:100%;transition:width .2s ease-out;display:block}.consumption-bar[data-state=over-limit] .consumption-bar-fill{background:var(--danger)}.consumption-bar-meta{white-space:nowrap;align-items:center;gap:6px;display:inline-flex}.consumption-bar-meta strong{color:var(--ink-2);font-size:12px}.lesson-progress-marker{background:var(--surface-muted);min-height:20px;color:var(--ink-2);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 7px;font-size:10px;font-weight:750;line-height:1;display:inline-flex}.lesson-progress-marker[data-tone=warning]{background:var(--amber-100);color:var(--amber-600)}.lesson-progress-marker[data-tone=danger]{background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.lesson-progress-marker[data-tone=danger]{background:color-mix(in srgb,var(--danger) 11%,var(--surface))}}.lesson-progress-marker[data-tone=danger]{color:var(--danger)}.teaching-overview-anomaly-row .consumption-bar,.teaching-overview-classroom-row .consumption-bar{flex-wrap:wrap;justify-content:flex-end}.teaching-overview-anomaly-row .consumption-bar-track,.teaching-overview-classroom-row .consumption-bar-track{width:96px}.teaching-overview-anomaly-row .consumption-bar-meta,.teaching-overview-classroom-row .consumption-bar-meta{justify-content:flex-end}@media (prefers-reduced-motion:reduce){.consumption-bar-fill{transition:none}}.sync-status-dot{color:var(--ink-2);align-items:center;gap:6px;font-size:12px;display:inline-flex}.sync-status-dot i{background:var(--danger);border-radius:50%;width:8px;height:8px}.sync-status-dot[data-ok=true] i{background:var(--role-system-ok)}.roster-task-list{gap:12px;display:grid}.roster-task-card{border:1px solid var(--line);border-left:4px solid var(--role-admin);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:14px;display:grid}.roster-task-meta{color:var(--ink-2);flex-wrap:wrap;gap:8px;font-size:12px;display:flex}.approval-queue{gap:12px;margin-bottom:16px;display:grid}.approval-card{border:1px solid var(--line);border-left:4px solid var(--attendance-leave);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);grid-template-columns:minmax(0,1fr) auto;gap:14px;padding:16px;display:grid}.approval-card-actions{align-items:center;display:flex}.month-heat-strip{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);flex-wrap:wrap;gap:2px;margin-bottom:12px;padding:10px;display:flex}.month-heat-strip span{color:#0000;background:var(--surface-muted);border-radius:3px;place-items:center;width:12px;height:12px;font-size:0;display:grid}.month-heat-strip span[data-level="1"]{background:var(--role-admin)}@supports (color:color-mix(in lab,red,red)){.month-heat-strip span[data-level="1"]{background:color-mix(in srgb,var(--role-admin) 30%,white)}}.month-heat-strip span[data-level="2"]{background:var(--role-admin)}@supports (color:color-mix(in lab,red,red)){.month-heat-strip span[data-level="2"]{background:color-mix(in srgb,var(--role-admin) 60%,white)}}.month-heat-strip span[data-level="3"]{background:var(--role-admin)}.manual-chip{background:var(--attendance-leave);border-radius:999px;align-items:center;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.manual-chip{background:color-mix(in srgb,var(--attendance-leave) 14%,white)}}.manual-chip{color:var(--warning-ink-strong);padding:2px 8px;font-size:12px;font-weight:700}.classroom-doorplate-wide{border-top:4px solid var(--role-admin);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:16px;margin-bottom:18px;padding:18px;display:grid}.lesson-ledger-section{gap:14px;display:grid}.lesson-ledger-head,.lesson-ledger-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;display:flex}.lesson-ledger-head p{margin:4px 0 0}.lesson-ledger-summary{border:1px solid var(--line);border-left:4px solid var(--role-admin);border-radius:var(--radius-control);background:var(--surface-muted);padding:12px 14px}.lesson-ledger-equation{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.lesson-ledger-equation small,.lesson-ledger-equation>b{color:var(--ink-2)}.lesson-ledger-sync-meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:12px;display:flex}.lesson-ledger-adjustment{white-space:normal;gap:3px;min-width:150px;max-width:260px;display:grid}.lesson-ledger-adjustment span{color:var(--ink-2);overflow-wrap:anywhere}.lesson-ledger-conflict,.lesson-ledger-sync-warning{border-radius:var(--radius-control);background:var(--attendance-leave);width:fit-content;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.lesson-ledger-conflict,.lesson-ledger-sync-warning{background:color-mix(in srgb,var(--attendance-leave) 16%,var(--surface))}}.lesson-ledger-conflict,.lesson-ledger-sync-warning{color:var(--warning-ink-strong);padding:3px 7px;font-size:12px;font-weight:700}.lesson-ledger-sync-warning{margin-top:8px}.lesson-ledger-section .data-table tr[data-row-status=conflict] td:first-child{box-shadow:inset 3px 0 0 var(--attendance-leave)}.lesson-ledger-section .badge[data-lesson-counted=true]{background:var(--attendance-present)}@supports (color:color-mix(in lab,red,red)){.lesson-ledger-section .badge[data-lesson-counted=true]{background:color-mix(in srgb,var(--attendance-present) 14%,var(--surface))}}.lesson-ledger-section .badge[data-lesson-counted=true]{color:var(--attendance-present)}.lesson-ledger-section .badge[data-lesson-counted=false]{background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.lesson-ledger-section .badge[data-lesson-counted=false]{background:color-mix(in srgb,var(--danger) 10%,var(--surface))}}.lesson-ledger-section .badge[data-lesson-counted=false]{color:var(--danger)}.transfer-arrow{color:var(--ink-2);align-items:center;gap:6px;font-size:12px;display:inline-flex}@media (max-width:720px){.lesson-ledger-head,.lesson-ledger-summary{flex-direction:column;align-items:stretch}}.report-dot-timeline{border-left:2px solid var(--line);gap:12px;padding-left:16px;display:grid}.report-dot-item{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);padding:14px;position:relative}.report-dot-item:before{content:"";border:3px solid var(--surface);background:var(--role-admin);border-radius:50%;width:12px;height:12px;position:absolute;top:18px;left:-23px}.teacher-chip-bar{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.teacher-chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card);border-radius:999px;align-items:center;gap:8px;padding:6px 10px 6px 6px;display:inline-flex}.teacher-chip span:first-child{background:var(--role-lead);color:#fff;border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:grid}.teacher-chip strong{font-size:13px}.teacher-chip em{color:var(--ink-2);font-style:normal;font-family:var(--font-mono);font-size:12px}.assessment-console{grid-template-columns:minmax(220px,1fr) minmax(0,2fr);align-items:start;gap:16px;display:grid}.student-summary-card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);gap:12px;padding:16px;display:grid;position:sticky;top:76px}.student-summary-card[data-line=PIFF]{border-top:4px solid var(--role-common)}.student-summary-card[data-line=PBE]{border-top:4px solid var(--role-admin)}.assessment-panel{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);gap:12px;padding:16px;display:grid}.assessment-progress{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-subtle);gap:8px;padding:12px;display:grid}.assessment-progress>div{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.assessment-progress progress{background:var(--line);width:100%;height:6px;accent-color:var(--role-lead);border:0;border-radius:999px;overflow:hidden}.assessment-error-summary{color:var(--danger);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:650;text-decoration:underline}.rating-segment-field[data-unrated=true] .rating-segment,.rating-segment-field[data-unrated=true] .rating-segment-option:hover{background:var(--surface-subtle)}.rating-segment.ui-radio-group{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);grid-template-columns:repeat(5,1fr);gap:0;width:min(260px,100%);height:34px;display:grid;overflow:hidden}.rating-segment .ui-radio-option{border:0;border-left:1px solid var(--line);width:100%;min-width:0;min-height:32px;color:var(--ink-2);cursor:pointer;font-family:var(--font-mono);border-radius:0;justify-content:center;padding:0;font-size:13px;transition:background-color .1s cubic-bezier(.32,.72,0,1),color .1s}.rating-segment .ui-radio-option:first-of-type{border-left:0}.rating-segment .ui-radio-dot{display:none}.rating-segment .ui-radio-option:hover:not(:disabled){background:var(--surface-subtle)}.rating-segment .ui-radio-option[data-value=E]:hover:not(:disabled){background:var(--rating-e)}@supports (color:color-mix(in lab,red,red)){.rating-segment .ui-radio-option[data-value=E]:hover:not(:disabled){background:color-mix(in srgb,var(--rating-e) 12%,white)}}.rating-segment .ui-radio-option[data-value=G]:hover:not(:disabled){background:var(--rating-g)}@supports (color:color-mix(in lab,red,red)){.rating-segment .ui-radio-option[data-value=G]:hover:not(:disabled){background:color-mix(in srgb,var(--rating-g) 12%,white)}}.rating-segment .ui-radio-option[data-value=S]:hover:not(:disabled){background:var(--rating-s)}@supports (color:color-mix(in lab,red,red)){.rating-segment .ui-radio-option[data-value=S]:hover:not(:disabled){background:color-mix(in srgb,var(--rating-s) 12%,white)}}.rating-segment .ui-radio-option[data-value=D]:hover:not(:disabled){background:var(--rating-d)}@supports (color:color-mix(in lab,red,red)){.rating-segment .ui-radio-option[data-value=D]:hover:not(:disabled){background:color-mix(in srgb,var(--rating-d) 12%,white)}}.rating-segment .ui-radio-option[data-value=B]:hover:not(:disabled){background:var(--rating-b)}@supports (color:color-mix(in lab,red,red)){.rating-segment .ui-radio-option[data-value=B]:hover:not(:disabled){background:color-mix(in srgb,var(--rating-b) 12%,white)}}.rating-segment .ui-radio-option[aria-checked=true]{color:#fff;font-weight:700}.rating-segment .ui-radio-option[data-value=E][aria-checked=true]{background:var(--rating-e)}.rating-segment .ui-radio-option[data-value=G][aria-checked=true]{background:var(--rating-g)}.rating-segment .ui-radio-option[data-value=S][aria-checked=true]{background:var(--rating-s);color:var(--warning-ink)}.rating-segment .ui-radio-option[data-value=D][aria-checked=true]{background:var(--rating-d)}.rating-segment .ui-radio-option[data-value=B][aria-checked=true]{background:var(--rating-b)}.rating-segment .ui-radio-option:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}.rating-segment-field[aria-invalid=true] .rating-segment{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger)}@supports (color:color-mix(in lab,red,red)){.rating-segment-field[aria-invalid=true] .rating-segment{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 10%,transparent)}}.assessment-scale-note{color:var(--ink-2);margin:0;font-size:12px;line-height:1.6}.homework-review-desk{grid-template-columns:minmax(260px,40%) minmax(0,1fr);align-items:start;gap:16px;display:grid}.homework-list-pane,.homework-reading-window{gap:12px;display:grid}.homework-list-card{border:1px solid var(--line);border-left:4px solid var(--role-homeroom);border-radius:var(--radius-card);background:var(--surface);padding:12px}.homework-reading-card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);gap:12px;padding:18px;display:grid}.reading-field{gap:6px;display:grid}.reading-field small{color:var(--role-homeroom);letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:700}.reading-field p{margin:0;line-height:1.7}.student-growth-workspace{grid-template-columns:minmax(300px,30%) minmax(0,1fr);align-items:start;display:grid}.growth-master-pane{z-index:10;border-top:4px solid var(--role-homeroom);flex-direction:column;min-height:min(680px,100dvh - 92px);max-height:calc(100dvh - 92px);display:flex;position:sticky;top:76px;overflow:hidden}.growth-master-heading{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 12px;display:flex}.growth-master-heading h2{font-size:var(--text-lg);margin:2px 0 0}.growth-list-total{background:var(--role-homeroom);border-radius:999px;place-items:center;min-width:32px;height:32px;display:inline-grid}@supports (color:color-mix(in lab,red,red)){.growth-list-total{background:color-mix(in srgb,var(--role-homeroom) 10%,var(--surface))}}.growth-list-total{color:var(--role-homeroom);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:750}.growth-list-filters{border-bottom:1px solid var(--line);background:var(--surface);gap:9px;padding:12px;display:grid}.growth-list-filter-grid{grid-template-columns:1fr;gap:8px;display:grid}.growth-list-filters .label{gap:4px;font-size:11px}.growth-list-filters .class-select-trigger,.growth-list-filters .field{min-height:36px;font-size:var(--text-xs);padding-top:7px;padding-bottom:7px}.growth-list-search .student-picker-control{display:block}.growth-clear-filters{width:fit-content;color:var(--role-homeroom);font:inherit;font-size:var(--text-xs);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:0;font-weight:650;display:inline-flex}.growth-student-list-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;flex:auto;min-height:240px;padding:6px;overflow-y:auto}.growth-student-row{border:0;border-bottom:1px solid var(--line);border-radius:var(--radius-control);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;gap:6px;padding:10px 10px 10px 13px;display:grid;position:relative}.growth-student-row:last-child{border-bottom-color:#0000}.growth-student-row:focus-visible,.growth-student-row:hover{background:var(--soft)}@supports (color:color-mix(in lab,red,red)){.growth-student-row[data-selected=true]{background:color-mix(in srgb,var(--role-homeroom) 8%,var(--surface))}}.growth-student-row-badges,.growth-student-row-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.growth-student-row-heading>span:first-child{gap:1px;min-width:0;display:grid}.growth-same-name,.growth-student-class,.growth-student-row-heading small,.growth-student-row-heading strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.growth-goal-indicator,.growth-same-name,.growth-student-class,.growth-student-row-heading small{color:var(--ink-2);font-size:var(--text-xs)}.growth-goal-indicator{flex:none;align-items:center;gap:5px;display:inline-flex}.growth-goal-indicator i{background:var(--rating-s);width:8px;height:8px;box-shadow:0 0 0 3px var(--rating-s);border-radius:50%}@supports (color:color-mix(in lab,red,red)){.growth-goal-indicator i{box-shadow:0 0 0 3px color-mix(in srgb,var(--rating-s) 18%,transparent)}}.growth-student-row-badges{flex-wrap:wrap;justify-content:flex-start}.growth-student-row-badges .project-line-badge,.growth-student-row-badges .student-status-badge{padding:3px 7px;font-size:10px}.growth-same-name{display:block}.growth-list-pagination{border-top:1px solid var(--line);background:var(--surface);color:var(--ink-2);font-size:var(--text-xs);justify-content:center;align-items:center;gap:10px;padding:9px 12px;display:flex}.growth-list-pagination .icon-button{width:30px;height:30px;min-height:30px}.growth-detail-content,.growth-detail-pane{gap:16px;min-width:0;display:grid}.growth-readonly-badge{justify-self:end}.growth-search-card{z-index:12;border-left:4px solid var(--role-homeroom);align-items:end;gap:12px;padding:16px;display:flex;position:relative}.student-picker{flex:520px;max-width:760px}.student-picker,.student-picker-control{position:relative}.student-picker-control>svg{z-index:1;color:var(--ink-2);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.student-picker-control .field{padding-left:38px}.student-picker-popover{z-index:30;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);max-height:340px;box-shadow:var(--shadow-float);padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;overflow-y:auto}.student-picker-option{border-radius:var(--radius-control);width:100%;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:14px;padding:10px 12px;display:flex}.student-picker-option:hover,.student-picker-option[data-active=true]{background:var(--soft)}.student-picker-option[aria-selected=true]{box-shadow:inset 3px 0 0 var(--role-homeroom)}.student-picker-option>span:first-child{gap:2px;display:grid}.student-picker-empty,.student-picker-meta,.student-picker-option small{color:var(--ink-2);font-size:var(--text-xs)}.student-picker-meta{flex:none;gap:6px;display:flex}.student-picker-meta span{border:1px solid var(--line);background:var(--surface-subtle);border-radius:999px;padding:3px 8px}.student-picker-empty{text-align:center;margin:0;padding:20px 12px}.growth-select-empty{min-height:250px}.growth-summary-strip{border-top:4px solid var(--role-homeroom);justify-content:space-between;align-items:center;gap:20px;padding:18px;display:flex}.growth-summary-strip h2{margin:3px 0 7px}.growth-summary-secondary-name{color:var(--ink-2);font-size:var(--text-sm);margin:0 0 9px}.growth-summary-meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px;margin:0;display:flex}.growth-summary-class{border-left:1px solid var(--line);font-size:var(--text-sm);align-items:center;gap:4px;padding-left:9px;display:inline-flex}.growth-summary-kicker{color:var(--role-homeroom);letter-spacing:.08em;font-size:11px;font-weight:800}.growth-tab-list{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;display:grid}.growth-tab{border-radius:calc(var(--radius-control) - 2px);min-height:44px;color:var(--ink-2);font:inherit;font-size:var(--text-sm);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:8px 12px;font-weight:650;display:flex}.growth-tab:hover{background:var(--soft);color:var(--ink)}.growth-tab[data-active=true]{border-color:var(--role-homeroom)}@supports (color:color-mix(in lab,red,red)){.growth-tab[data-active=true]{border-color:color-mix(in srgb,var(--role-homeroom) 28%,var(--line))}}.growth-tab[data-active=true]{background:var(--role-homeroom)}@supports (color:color-mix(in lab,red,red)){.growth-tab[data-active=true]{background:color-mix(in srgb,var(--role-homeroom) 8%,var(--surface))}}.growth-tab[data-active=true] .tab-count{border-color:var(--role-homeroom)}@supports (color:color-mix(in lab,red,red)){.growth-tab[data-active=true] .tab-count{border-color:color-mix(in srgb,var(--role-homeroom) 36%,var(--line))}}.growth-tab[data-active=true] .tab-count{color:var(--role-homeroom)}.growth-panel{overflow:hidden}.growth-panel-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:18px;padding:16px 18px;display:flex}.growth-panel-header>div:first-child{min-width:0}.growth-panel-title{align-items:center;gap:4px;display:flex}.growth-panel-title h2{font-size:var(--text-xl);margin:0}.growth-context-copy{max-width:780px;color:var(--ink-2);font-size:var(--text-sm);margin:7px 0 0;line-height:1.6}.growth-goal-count{background:var(--surface-subtle);width:fit-content;color:var(--ink-2);font-size:var(--text-xs);border-radius:999px;margin:8px 0 0;padding:4px 9px;font-weight:650}.growth-goal-count[data-warning=true]{border:1px solid var(--rating-s)}@supports (color:color-mix(in lab,red,red)){.growth-goal-count[data-warning=true]{border:1px solid color-mix(in srgb,var(--rating-s) 48%,var(--line))}}.growth-goal-count[data-warning=true]{background:var(--rating-s)}@supports (color:color-mix(in lab,red,red)){.growth-goal-count[data-warning=true]{background:color-mix(in srgb,var(--rating-s) 15%,var(--surface))}}.growth-goal-count[data-warning=true]{color:var(--warning-ink)}.growth-record-table{min-width:1080px}.growth-share-table,.growth-task-table{min-width:720px}.growth-record-table td:last-child,.growth-record-table th:last-child{white-space:nowrap;width:1%}.growth-inline-select{min-width:112px;padding-right:28px}.growth-goal-plans{gap:8px;min-width:220px;display:grid}.growth-goal-plans article{border-left:2px solid var(--role-homeroom);gap:3px;display:grid}@supports (color:color-mix(in lab,red,red)){.growth-goal-plans article{border-left:2px solid color-mix(in srgb,var(--role-homeroom) 45%,var(--line))}}.growth-goal-plans article{padding-left:9px}.growth-goal-plans article>p,.growth-goal-plans article>span{color:var(--ink-2);font-size:var(--text-xs);margin:0}.growth-row-actions{align-items:center;gap:4px;display:flex}.growth-row-actions .btn{min-height:32px;font-size:var(--text-xs);padding:6px 9px}.growth-row-actions .icon-button{width:32px;height:32px;padding:0}.growth-text-button{width:fit-content;color:var(--role-homeroom);cursor:pointer;background:0 0;border:0;align-items:center;gap:4px;padding:3px 0;font-weight:650;display:inline-flex}.inline-edit-text{gap:12px;padding:18px;display:grid}.inline-edit-display{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-subtle);width:calc(100% - 36px);min-height:116px;color:var(--ink);font:inherit;text-align:left;justify-content:space-between;align-items:flex-start;gap:16px;margin:18px;padding:16px;line-height:1.7;display:flex}.inline-edit-display:not(:disabled){cursor:text}.inline-edit-display:not(:disabled):hover{border-color:var(--role-homeroom)}@supports (color:color-mix(in lab,red,red)){.inline-edit-display:not(:disabled):hover{border-color:color-mix(in srgb,var(--role-homeroom) 45%,var(--line))}}.inline-edit-display:not(:disabled):hover{background:var(--role-homeroom)}@supports (color:color-mix(in lab,red,red)){.inline-edit-display:not(:disabled):hover{background:color-mix(in srgb,var(--role-homeroom) 5%,var(--surface))}}.inline-edit-display:disabled{opacity:1}.inline-edit-display small{color:var(--role-homeroom);flex:none;font-weight:650}.growth-record-dialog{width:min(600px,100%);max-height:min(760px,100vh - 36px);overflow-y:auto}.growth-dialog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.growth-dialog-error{border-radius:var(--radius-control);background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.growth-dialog-error{background:color-mix(in srgb,var(--danger) 9%,var(--surface))}}.growth-dialog-error{font-size:var(--text-sm);padding:9px 10px;color:var(--danger)!important}.growth-unsaved-backdrop{z-index:86}.growth-unsaved-dialog{border-top:4px solid var(--rating-s);width:min(520px,100%);padding:20px}.growth-unsaved-dialog h2{margin:3px 0 0}.growth-unsaved-dialog>p{color:var(--ink-2);margin:16px 0 0;line-height:1.65}.growth-unsaved-actions{margin-top:20px}@media (max-width:980px){.student-growth-workspace{display:block}.growth-detail-pane{margin-top:16px}.growth-master-pane{min-height:0;max-height:none;position:static}.growth-student-list-scroll{max-height:520px}.growth-list-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:700px){.growth-panel-header,.growth-summary-strip{flex-direction:column;align-items:stretch}.student-picker{flex-basis:auto;max-width:none}.student-picker-option{flex-direction:column;align-items:flex-start}.growth-panel-header>.btn,.growth-summary-strip .btn{justify-content:center}.growth-tab-list{grid-template-columns:repeat(2,minmax(0,1fr))}.growth-dialog-grid,.growth-list-filter-grid{grid-template-columns:1fr}.growth-summary-class{border-left:0;width:100%;padding-left:0}.growth-unsaved-actions{flex-direction:column-reverse;align-items:stretch}.growth-unsaved-actions .btn{justify-content:center}}.readonly-badge{background:var(--ink-2);border-radius:999px;align-items:center;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.readonly-badge{background:color-mix(in srgb,var(--ink-2) 12%,white)}}.readonly-badge{color:var(--ink-2);padding:4px 10px;font-size:12px;font-weight:700}.sales-readonly-banner{border-left:4px solid var(--role-sales);background:var(--role-sales)}@supports (color:color-mix(in lab,red,red)){.sales-readonly-banner{background:color-mix(in srgb,var(--role-sales) 12%,white)}}.sales-entry-layout{grid-template-columns:minmax(280px,45%) minmax(0,1fr);align-items:start}.sales-entry-layout,.sales-locked-workspace{gap:16px;display:grid}.sales-student-context{z-index:8;border:1px solid var(--line);border-left:4px solid var(--role-sales);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);justify-content:space-between;align-items:end;gap:16px;padding:14px 16px;display:flex;position:sticky;top:10px}.sales-student-context>div{gap:4px;display:grid}.sales-student-context>div>strong{font-size:20px}.sales-locked-target,.sales-student-context small{color:var(--ink-2)}.sales-student-context .label{width:min(320px,45vw)}.sales-composer{min-width:0}.sales-locked-target{border-left:3px solid var(--role-sales);margin:0;padding-left:10px}.unsaved-dot{background:var(--rating-s);border-radius:50%;width:7px;height:7px}.sales-feed,.sales-form-stack{gap:12px;display:grid}.sales-feed-card{border:1px solid var(--line);border-left:4px solid var(--role-sales);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);padding:14px}.timecode-chip{background:var(--ink);color:#fff;width:fit-content;font-family:var(--font-mono);letter-spacing:.06em;border-radius:6px;align-items:center;padding:4px 10px;font-size:13px;display:inline-flex}.clip-card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);gap:10px;padding:14px;display:grid}.role-stack{flex-wrap:wrap;gap:6px;display:flex}.user-row-disabled{opacity:.58;filter:grayscale(.35)}.role-matrix{overflow:auto}.role-draft-workspace{padding-bottom:88px;position:relative}.role-view-switch{border:1px solid var(--line);background:var(--surface-subtle);border-radius:11px;grid-template-columns:repeat(2,minmax(120px,1fr));gap:3px;margin-bottom:12px;padding:3px;display:inline-grid}.role-view-switch button{color:var(--ink-2);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:8px;padding:8px 16px;font-weight:700}.role-view-switch button[data-active=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 4px #141b2d1f}.role-app-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.role-app-tab{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);color:var(--ink-2);text-align:left;cursor:pointer;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 10px;padding:11px 14px;display:grid}.role-app-tab[data-active=true]{border-color:var(--role-system);box-shadow:inset 0 -3px 0 var(--role-system);color:var(--ink)}.role-app-tab[data-disabled=true]{background:var(--surface-subtle)}.role-app-tab small{color:var(--danger);grid-column:1/-1}.role-filter-bar{grid-template-columns:minmax(240px,1fr) minmax(180px,.45fr) auto minmax(120px,.35fr);align-items:end;gap:10px;margin-bottom:12px;padding:12px;display:grid}.role-filter-check{align-items:center;gap:7px;min-height:40px;display:inline-flex}.role-matrix-error,.role-scope-warning{border-left:4px solid var(--rating-s);border-radius:var(--radius-control);background:var(--rating-s);margin:0 0 10px}@supports (color:color-mix(in lab,red,red)){.role-matrix-error,.role-scope-warning{background:color-mix(in srgb,var(--rating-s) 10%,white)}}.role-matrix-error,.role-scope-warning{padding:10px 12px}.role-matrix-error{border-left-color:var(--danger)}.role-matrix tbody tr:has(input:checked){background:var(--role-system)}@supports (color:color-mix(in lab,red,red)){.role-matrix tbody tr:has(input:checked){background:color-mix(in srgb,var(--role-system) 2%,white)}}.role-user-list{gap:9px;display:grid}.role-user-row{border:1px solid var(--line);width:100%;color:var(--ink);text-align:left;cursor:pointer;font:inherit;grid-template-columns:minmax(220px,.7fr) minmax(300px,1.5fr) auto;align-items:center;gap:16px;padding:14px 16px;display:grid}.role-user-row:focus-visible,.role-user-row:hover{border-color:var(--role-system)}@supports (color:color-mix(in lab,red,red)){.role-user-row:focus-visible,.role-user-row:hover{border-color:color-mix(in srgb,var(--role-system) 42%,var(--line))}}.role-user-row:focus-visible,.role-user-row:hover{outline:none;box-shadow:0 5px 16px #141b2d14}.role-user-row[data-draft=true]{border-left:4px solid var(--role-system)}.role-user-row[data-user-active=false]{background:var(--surface-subtle)}.role-user-identity{gap:3px;display:grid}.role-summary-chips{flex-wrap:wrap;gap:6px;display:flex}.role-summary-chip{border:1px solid var(--role-system);align-items:center;min-height:26px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.role-summary-chip{border:1px solid color-mix(in srgb,var(--role-system) 24%,var(--line))}}.role-summary-chip{background:var(--role-system);border-radius:999px}@supports (color:color-mix(in lab,red,red)){.role-summary-chip{background:color-mix(in srgb,var(--role-system) 6%,var(--surface))}}.role-summary-chip{color:var(--ink-2);padding:3px 9px;font-size:12px;font-weight:650}.role-summary-chip[data-scope=platform]{border-color:var(--rating-s)}@supports (color:color-mix(in lab,red,red)){.role-summary-chip[data-scope=platform]{border-color:color-mix(in srgb,var(--rating-s) 42%,var(--line))}}.role-summary-chip[data-scope=platform]{background:var(--rating-s)}@supports (color:color-mix(in lab,red,red)){.role-summary-chip[data-scope=platform]{background:color-mix(in srgb,var(--rating-s) 9%,var(--surface))}}.role-row-action{color:var(--role-system);white-space:nowrap;font-size:13px;font-weight:750}.role-draft-badge{border-color:var(--attendance-present)}@supports (color:color-mix(in lab,red,red)){.role-draft-badge{border-color:color-mix(in srgb,var(--attendance-present) 45%,var(--line))}}.role-draft-badge{background:var(--attendance-present)}@supports (color:color-mix(in lab,red,red)){.role-draft-badge{background:color-mix(in srgb,var(--attendance-present) 10%,var(--surface))}}.role-constraint-note{border-left:3px solid var(--rating-s);max-width:280px;color:var(--warning-ink);margin:8px 0 0;padding-left:8px;font-size:12px}.role-matrix tbody tr[data-row-rejected=true]{background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.role-matrix tbody tr[data-row-rejected=true]{background:color-mix(in srgb,var(--danger) 5%,white)}}.role-cell[data-rejected=true]{outline:1.5px solid var(--danger);outline-offset:-3px;background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.role-cell[data-rejected=true]{background:color-mix(in srgb,var(--danger) 8%,white)}}.role-rejected-note{border-left:3px solid var(--danger);max-width:320px;color:var(--danger);margin:8px 0 0;padding-left:8px;font-size:12px}.role-cell-rejected{background:var(--danger);color:#fff;border-radius:999px;place-items:center;width:16px;height:16px;font-size:11px;font-weight:800;display:inline-grid;position:absolute;top:-8px;right:-9px}.role-draft-bar{z-index:12;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;margin:14px 10px 0;display:grid;position:sticky;bottom:10px}@supports (color:color-mix(in lab,red,red)){.role-draft-bar{background:color-mix(in srgb,var(--surface) 96%,transparent)}}.role-draft-bar{box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:12px}.role-draft-bar[data-visible=true]{border-left:4px solid var(--role-system)}.role-draft-bar>span{color:var(--ink-2)}.role-draft-bar>div{gap:8px;display:flex}.role-review-dialog{width:min(720px,100vw - 32px)}.role-user-dialog{width:min(760px,100vw - 32px);max-height:min(86vh,760px);overflow:auto}.role-dialog-scopes{gap:12px;display:grid}.role-dialog-section{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);padding:13px}.role-dialog-section[data-scope=platform]{border-left:4px solid var(--rating-s)}.role-dialog-section[data-scope=teaching]{border-left:4px solid var(--role-system)}.role-dialog-section-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.role-dialog-section-head h3{margin:2px 0 0;font-size:16px}.role-dialog-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.role-dialog-options>span{min-width:0}.role-dialog-option{border:1px solid var(--line);background:var(--surface-subtle);cursor:pointer;border-radius:9px;align-items:center;gap:9px;width:100%;min-height:42px;padding:8px 10px;display:flex;position:relative}.role-dialog-option:has(input:checked){border-color:var(--role-system)}@supports (color:color-mix(in lab,red,red)){.role-dialog-option:has(input:checked){border-color:color-mix(in srgb,var(--role-system) 42%,var(--line))}}.role-dialog-option:has(input:checked){background:var(--role-system)}@supports (color:color-mix(in lab,red,red)){.role-dialog-option:has(input:checked){background:color-mix(in srgb,var(--role-system) 6%,var(--surface))}}.role-dialog-option:has(input:disabled){color:var(--ink-3);cursor:not-allowed;opacity:.64}.role-dialog-option input{width:17px;height:17px}.role-review-scope-note{border-left:3px solid var(--role-system);background:var(--role-system)}@supports (color:color-mix(in lab,red,red)){.role-review-scope-note{background:color-mix(in srgb,var(--role-system) 5%,var(--surface))}}.role-review-scope-note{padding:9px 11px;font-size:13px}.role-review-list{gap:10px;max-height:min(52vh,480px);display:grid;overflow:auto}.role-review-list article{border:1px solid var(--line);border-left:3px solid var(--role-system);border-radius:var(--radius-control);background:var(--surface);gap:6px;padding:10px 12px;display:grid}.role-review-list p{color:var(--ink-2);margin:5px 0;font-size:13px}.role-review-list section{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);padding:10px 12px}.role-review-list h3{margin:0 0 8px}.role-review-list p[data-kind=add]{color:var(--attendance-present)}@supports (color:color-mix(in lab,red,red)){.role-review-list p[data-kind=add]{color:color-mix(in srgb,var(--attendance-present) 76%,var(--ink))}}.role-review-list p[data-kind=remove]{color:var(--danger)}.role-matrix table{border-collapse:separate;border-spacing:0;width:100%;min-width:1160px}.role-matrix td,.role-matrix th{border-top:1px solid var(--line);padding:12px;transition:background-color .12s}.role-matrix thead th{background:var(--surface-subtle);z-index:2;position:sticky;top:0}.role-matrix .role-group-header th{border-bottom:1px solid var(--line);height:44px}.role-matrix .role-column-header th{border-bottom:1px solid var(--line);min-width:116px;font-size:12px;top:44px}.role-scope-group{text-align:center;letter-spacing:.03em;font-size:13px}.role-scope-group[data-scope=platform]{background:var(--rating-s)}@supports (color:color-mix(in lab,red,red)){.role-scope-group[data-scope=platform]{background:color-mix(in srgb,var(--rating-s) 11%,var(--surface))}}.role-scope-group[data-scope=teaching]{background:var(--role-system)}@supports (color:color-mix(in lab,red,red)){.role-scope-group[data-scope=teaching]{background:color-mix(in srgb,var(--role-system) 8%,var(--surface))}}.role-scope-group small{color:var(--danger)}.role-matrix td:first-child,.role-matrix th:first-child{background:var(--surface);z-index:1;position:sticky;left:0}.role-matrix thead th:first-child{z-index:5}.role-matrix [data-column-active=true],.role-matrix tbody tr:hover td{background:#3d44510f}.role-matrix .role-cell:focus-within,.role-matrix .role-cell:hover{outline:1.5px solid var(--role-system);outline-offset:-2px}.role-matrix tr[data-row-disabled=true] td{background:var(--surface-subtle)}@supports (color:color-mix(in lab,red,red)){.role-matrix tr[data-row-disabled=true] td{background:color-mix(in srgb,var(--surface-subtle) 88%,white)}}.role-matrix tr[data-row-disabled=true] td{color:var(--ink-2)}@supports (color:color-mix(in lab,red,red)){.role-matrix tr[data-row-disabled=true] td{color:color-mix(in srgb,var(--ink-2) 64%,white)}}.role-matrix td[data-external-disabled=true]{background:var(--surface-subtle)}@supports (color:color-mix(in lab,red,red)){.role-matrix td[data-external-disabled=true]{background:color-mix(in srgb,var(--surface-subtle) 90%,white)}}.role-user-column{min-width:286px}.role-matrix-user-button{width:100%;color:inherit;text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;gap:3px;padding:0;display:grid}.role-matrix-user-button:focus-visible strong,.role-matrix-user-button:hover strong{color:var(--role-system)}.role-matrix-user-button>span:not(.role-user-meta){color:var(--ink-3);font-size:12px}.role-user-meta{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:5px;margin-top:7px;font-size:11px;display:flex}.role-user-meta .badge[data-user-type=EXTERNAL_TEACHER]{border-color:var(--warning-ink)}@supports (color:color-mix(in lab,red,red)){.role-user-meta .badge[data-user-type=EXTERNAL_TEACHER]{border-color:color-mix(in srgb,var(--warning-ink) 35%,var(--line))}}.role-user-meta .badge[data-user-type=EXTERNAL_TEACHER]{background:var(--rating-s)}@supports (color:color-mix(in lab,red,red)){.role-user-meta .badge[data-user-type=EXTERNAL_TEACHER]{background:color-mix(in srgb,var(--rating-s) 10%,white)}}.role-disabled-reason{max-width:430px;color:var(--ink-2);margin:8px 0 0;font-size:12px;line-height:1.45}.role-disabled-reason a{color:var(--role-system);font-weight:700}.role-checkbox-wrap{border-radius:8px;place-items:center;width:34px;height:34px;display:inline-grid;position:relative}.role-checkbox-wrap input{width:17px;height:17px}.role-delta-dot{background:var(--attendance-present);width:7px;height:7px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:3px;right:3px}.role-delta-dot[data-kind=remove]{background:var(--danger)}.role-tab-decision{width:min(620px,100vw - 32px)}.user-type-conflicts{border-left:3px solid var(--danger);background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.user-type-conflicts{background:color-mix(in srgb,var(--danger) 7%,white)}}.user-type-conflicts{padding:9px 11px}.user-type-conflicts ul{margin:6px 0 0;padding-left:20px}@media (max-width:880px){.role-app-tabs,.role-filter-bar{grid-template-columns:1fr}.role-view-switch{display:grid}.role-user-row{grid-template-columns:1fr}.role-row-action{justify-self:start}.role-dialog-options{grid-template-columns:1fr}}.audit-log-table{font-family:var(--font-mono);font-size:12px}.audit-log-table tbody tr:nth-child(odd){background:var(--surface-subtle)}.diff-view{font-family:var(--font-mono);gap:6px;font-size:12px;display:grid}.diff-line{border-left:3px solid var(--line);overflow-wrap:anywhere;white-space:pre-wrap;padding:6px 8px}.diff-line[data-kind=old]{border-left-color:var(--danger);background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.diff-line[data-kind=old]{background:color-mix(in srgb,var(--danger) 8%,white)}}.diff-line[data-kind=old]{text-decoration:line-through}.diff-line[data-kind=new]{border-left-color:var(--attendance-present);background:var(--attendance-present)}@supports (color:color-mix(in lab,red,red)){.diff-line[data-kind=new]{background:color-mix(in srgb,var(--attendance-present) 8%,white)}}.ops-status-board{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.ops-status-card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);box-shadow:var(--shadow-card);gap:8px;padding:14px;display:grid}.ops-status-card[data-tone=error]{border-left:3px solid var(--danger)}.ops-status-card[data-tone=error] .status-breath:before{background:var(--danger)}.ops-status-card[data-tone=warning]{border-left:3px solid var(--attendance-leave)}.ops-status-card[data-tone=warning] .status-breath:before{background:var(--attendance-leave);animation:status-breathe 2.4s ease-in-out infinite}.ops-technical-detail{border-top:1px solid var(--line);color:var(--ink-2);padding-top:8px;font-size:12px}.ops-technical-detail summary{cursor:pointer;width:fit-content;font-weight:650}.ops-technical-detail code{overflow-wrap:anywhere;white-space:pre-wrap;margin-top:8px;display:block}.status-breath{align-items:center;gap:8px;display:inline-flex}.status-breath:before{content:"";background:var(--role-system-ok);border-radius:50%;width:9px;height:9px;animation:none}@keyframes status-breathe{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.ops-status-card[data-tone=warning] .status-breath:before{animation:none}}@media (max-width:900px){.assessment-console,.class-report-workbench,.homework-review-desk{grid-template-columns:1fr}.class-report-workbench{grid-template-areas:"writing""attendance""submit"}.attendance-panel,.student-summary-card{max-height:none;position:static}.submit-bar{bottom:0}}.grid-auto{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;display:grid}.toast-stack{z-index:80;gap:10px;width:min(360px,100vw - 36px);display:grid;position:fixed;bottom:18px;right:18px}.toast{border:0;border-radius:var(--radius-control);background:var(--ink);color:#fff;box-shadow:var(--shadow-float);padding:12px 14px;font-size:14px}.toast.success{border-color:var(--rating-e)}.toast.error{border-color:var(--danger);color:#fff}.dialog-backdrop{z-index:70;background:#1018286b;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.dialog-panel{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);width:min(460px,100%);box-shadow:var(--shadow-float);gap:12px;padding:18px;display:grid}.dialog-panel h2{margin:0;font-size:18px}.dialog-panel p{color:var(--muted);margin:0}.form-dialog-panel{max-height:calc(100vh - 36px);overflow:auto}.form-dialog-panel-wide{width:min(1080px,100%)}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.classroom-completion-dialog{width:min(640px,100%);max-height:calc(100vh - 36px);overflow:auto}.classroom-completion-checklist{gap:8px;margin:0;padding:0;list-style:none;display:grid}.classroom-completion-checklist li{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-muted);justify-content:space-between;gap:18px;padding:10px 12px;display:flex}.classroom-completion-checklist strong{text-align:right}.classroom-completion-badge,.classroom-completion-notice{color:var(--warning-ink-strong)}.classroom-completion-notice{border-left:3px solid var(--attendance-leave);background:var(--attendance-leave)}@supports (color:color-mix(in lab,red,red)){.classroom-completion-notice{background:color-mix(in srgb,var(--attendance-leave) 12%,var(--surface))}}.classroom-completion-notice{padding:8px 10px}.classroom-completion-badge{background:var(--attendance-leave);width:fit-content}@supports (color:color-mix(in lab,red,red)){.classroom-completion-badge{background:color-mix(in srgb,var(--attendance-leave) 18%,var(--surface))}}.classroom-auto-transition-panel,.classroom-transition-name-report{border:1px solid var(--attendance-leave);gap:10px;display:grid}@supports (color:color-mix(in lab,red,red)){.classroom-auto-transition-panel,.classroom-transition-name-report{border:1px solid color-mix(in srgb,var(--attendance-leave) 45%,var(--line))}}.classroom-auto-transition-panel,.classroom-transition-name-report{border-radius:var(--radius-control);background:var(--attendance-leave)}@supports (color:color-mix(in lab,red,red)){.classroom-auto-transition-panel,.classroom-transition-name-report{background:color-mix(in srgb,var(--attendance-leave) 8%,var(--surface))}}.classroom-auto-transition-panel,.classroom-transition-name-report{padding:12px}.classroom-transition-excluded ul,.classroom-transition-result-list,.classroom-transition-student-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.classroom-transition-result-list li,.classroom-transition-student-list li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:6px 0;display:flex}.classroom-transition-result-list li:last-child,.classroom-transition-student-list li:last-child{border-bottom:0}.classroom-transition-result-list strong{text-align:right;overflow-wrap:anywhere;max-width:72%}.classroom-transition-consent{align-items:center;gap:8px;width:fit-content;font-weight:700;display:flex}.classroom-transition-consent input{width:18px;height:18px}.classroom-transition-excluded{border-left:3px solid var(--attendance-leave);background:var(--attendance-leave)}@supports (color:color-mix(in lab,red,red)){.classroom-transition-excluded{background:color-mix(in srgb,var(--attendance-leave) 10%,var(--surface))}}.classroom-transition-excluded{padding:8px 10px}.classroom-transition-excluded ul{margin-top:6px}.classroom-transition-name-report p{overflow-wrap:anywhere;margin:0}.classroom-missing-zoom-badge{width:fit-content;color:var(--warning-ink-strong);background:var(--attendance-leave)}@supports (color:color-mix(in lab,red,red)){.classroom-missing-zoom-badge{background:color-mix(in srgb,var(--attendance-leave) 22%,var(--surface))}}.draft-recovery-banner{border:1px solid var(--rating-s);justify-content:space-between;align-items:center;gap:12px;width:100%;display:flex}@supports (color:color-mix(in lab,red,red)){.draft-recovery-banner{border:1px solid color-mix(in srgb,var(--rating-s) 42%,var(--line))}}.draft-recovery-banner{border-left:4px solid var(--rating-s);border-radius:var(--radius-control);background:var(--rating-s)}@supports (color:color-mix(in lab,red,red)){.draft-recovery-banner{background:color-mix(in srgb,var(--rating-s) 9%,var(--surface))}}.draft-recovery-banner{color:var(--ink);box-shadow:var(--shadow-card);padding:11px 14px;font-size:14px}.assessment-console>.draft-recovery-banner{grid-column:1/-1}.session-timeout-backdrop{z-index:90;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.session-timeout-dialog{border-top:4px solid var(--rating-s);width:min(440px,100%);padding:22px}.session-timeout-kicker{color:var(--warning-ink-strong);font-family:var(--font-mono);letter-spacing:.08em;font-size:11px;font-weight:700}.session-timeout-countdown{color:var(--ink);font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:.04em;font-size:32px}@media (max-width:640px){.draft-recovery-banner{flex-direction:column;align-items:flex-start}}.sync-result-dialog{width:min(680px,100%);max-height:min(760px,100vh - 36px);overflow:auto}.sync-result-metrics{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;display:grid}.sync-result-metrics>div{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-subtle);gap:3px;padding:10px 12px;display:grid}.sync-result-metrics span{color:var(--ink-2);font-size:12px}.sync-result-metrics strong{font-family:var(--font-display);font-size:20px}.sync-result-metrics small{color:var(--ink-2);font-size:11px;font-weight:500}.sync-result-list{gap:6px;max-height:280px;display:grid;overflow:auto}.sync-result-list article{border:1px solid var(--line);border-left:3px solid var(--success);border-radius:var(--radius-control);gap:4px;padding:9px 10px;display:grid}.sync-result-list article[data-ok=false]{border-left-color:var(--danger)}.sync-result-list article p{font-size:12px}.data-table-shell{overflow:hidden}.data-table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;background:var(--surface);width:100%;min-width:760px}.data-table td,.data-table th{border-top:1px solid var(--line);text-align:left;vertical-align:top;height:48px;padding:10px 12px}.data-table thead th{z-index:1;background:var(--surface-subtle);color:var(--ink-2);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;border-top:0;font-weight:600;position:sticky;top:0}.sort-button{color:inherit;cursor:pointer;font:inherit;text-transform:inherit;letter-spacing:inherit;background:0 0;border:0;align-items:center;gap:6px;padding:0;display:inline-flex}.sort-button svg{opacity:0;transition:opacity .12s cubic-bezier(.32,.72,0,1),color .12s}.sort-button:hover svg,th[aria-sort=ascending] .sort-button svg,th[aria-sort=descending] .sort-button svg{opacity:1}th[aria-sort=ascending] .sort-button,th[aria-sort=descending] .sort-button{color:var(--accent)}.sort-button svg[data-direction=asc]{transform:rotate(180deg)}.data-table tbody tr{transition:background-color .12s cubic-bezier(.32,.72,0,1)}.data-table td[data-actions=true]>*{opacity:.34;transition:opacity .12s cubic-bezier(.32,.72,0,1)}.data-table tbody tr:focus-within td[data-actions=true]>*,.data-table tbody tr:hover td[data-actions=true]>*,.data-table tbody tr[data-selected=true] td[data-actions=true]>*{opacity:1}.table-pagination{border-top:1px solid var(--line);color:var(--muted);font-size:var(--text-xs);justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.table-pagination>div{gap:6px;display:flex}.table-pagination :is(button,a,span[data-disabled=true]){border:1px solid var(--line);background:var(--surface);width:28px;height:28px;color:var(--ink);cursor:pointer;border-radius:6px;place-items:center;text-decoration:none;display:inline-grid}.table-pagination :is(button,a)[data-current=true]{border-color:var(--accent);background:var(--accent);color:#fff}.table-pagination button:disabled,.table-pagination span[data-disabled=true]{opacity:.42;cursor:not-allowed}.form-tabs{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.form-tab{cursor:pointer;min-height:40px;color:var(--ink-2);background:0 0;border:solid var(--line);border-width:0 0 2px;border-radius:0;padding:9px 4px}.form-tab.active{border-color:var(--accent);color:var(--ink);background:0 0;font-weight:600}.form-tab .tab-count,.tab-count{border:1px solid var(--line);background:var(--surface);min-width:21px;height:21px;color:var(--ink-2);border-radius:999px;place-items:center;margin-left:6px;padding:0 6px;font-size:11px;display:inline-grid}.drawer-details{display:inline-block}.drawer-details>summary{list-style:none}.drawer-details>summary::-webkit-details-marker{display:none}.drawer{z-index:60;background:#10182866;grid-template-columns:minmax(0,1fr) min(560px,100%);display:grid;position:fixed;inset:0}.drawer-panel{background:var(--surface);border-left:1px solid var(--line);grid-column:2;align-content:start;gap:14px;padding:22px;display:grid;overflow:auto}.drawer-details[open] .drawer-panel{animation:drawer-slide-in .18s cubic-bezier(.32,.72,0,1)}.drawer-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.drawer-head h2{margin:0}.app-shell{grid-template-columns:232px minmax(0,1fr);min-height:100vh;display:grid}.app-shell[data-active-perspective=ADMINISTRATIVE_ADMIN]{--accent:var(--role-admin)}.app-shell[data-active-perspective=UK_TEACHER]{--accent:var(--role-teacher)}.app-shell[data-active-perspective=UK_TEACHER_LEAD]{--accent:var(--role-lead)}.app-shell[data-active-perspective=HEADTEACHER_ADMIN]{--accent:var(--role-homeroom)}.app-shell[data-active-perspective=SALES_ADMIN]{--accent:var(--role-sales)}.app-shell[data-active-perspective=PROMOTION_ADMIN]{--accent:var(--role-marketing)}.app-shell[data-active-perspective=SYSTEM_ADMIN]{--accent:var(--role-system)}.app-shell>main,.platform-admin-shell>main{min-width:0}.sidebar{border-right:1px solid var(--line);color:#fff;background:radial-gradient(circle at 8% 0,#ffffff14,#0000 15rem),linear-gradient(165deg,#414958,#343b48 62%,#2f3541);height:100dvh;position:sticky;top:0}.sidebar-panel{flex-direction:column;gap:18px;height:100%;min-height:0;padding:18px 14px 16px;display:flex}.sidebar-backdrop,.sidebar-mobile-bar,.sidebar-panel-close{display:none}.brand-lockup{gap:8px;display:grid}.brand-title{font-family:var(--font-display);font-size:18px;font-weight:700}.spectrum-bar{border-radius:999px;grid-template-columns:repeat(5,1fr);height:3px;display:grid;overflow:hidden}.spectrum-bar span:first-child{background:var(--rating-e)}.spectrum-bar span:nth-child(2){background:var(--rating-g)}.spectrum-bar span:nth-child(3){background:var(--rating-s)}.spectrum-bar span:nth-child(4){background:var(--rating-d)}.spectrum-bar span:nth-child(5){background:var(--rating-b)}.perspective-switcher{z-index:12;gap:6px;display:grid;position:relative}.perspective-label{color:#ffffffad;letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800}.perspective-switcher details{position:relative}.perspective-switcher summary{border-radius:var(--radius-control);color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff2e;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;min-height:42px;padding:8px 9px;list-style:none;display:grid}.perspective-switcher summary::-webkit-details-marker{display:none}.perspective-switcher details[open] summary{background:#ffffff1f;border-color:#ffffff57}.perspective-switcher details[open] summary>svg{transform:rotate(180deg)}.perspective-menu{z-index:20;border-radius:var(--radius-card);background:var(--role-system);border:1px solid #ffffff29;gap:3px;display:grid;position:absolute;inset:calc(100% + 6px) 0 auto}@supports (color:color-mix(in lab,red,red)){.perspective-menu{background:color-mix(in srgb,var(--role-system) 96%,black)}}.perspective-menu{padding:6px;box-shadow:0 14px 30px #00000047}.perspective-menu button{color:#ffffffd1;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:7px;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;width:100%;min-height:36px;padding:7px 8px;display:grid}.perspective-menu button:hover,.perspective-menu button[aria-current=true]{color:#fff;background:#ffffff1a}.perspective-dot{background:var(--role-common);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 2px #ffffff1a}.perspective-dot[data-tone=admin]{background:var(--role-admin)}.perspective-dot[data-tone=teacher]{background:var(--role-teacher)}.perspective-dot[data-tone=lead]{background:var(--role-lead-line)}.perspective-dot[data-tone=homeroom]{background:var(--role-homeroom)}.perspective-dot[data-tone=sales]{background:var(--role-sales)}.perspective-dot[data-tone=marketing]{background:var(--role-marketing)}.perspective-dot[data-tone=system]{background:var(--role-system-ok)}.perspective-count{color:#fff;min-width:20px;min-height:20px;font-family:var(--font-mono);background:#ffffff29;border-radius:999px;place-items:center;padding-inline:6px;font-size:11px;display:inline-grid}.perspective-error{color:#ffd4d4;font-size:11px}.perspective-switcher[data-pending=true]{opacity:.72}.nav-group-title{color:#ffffffa3;letter-spacing:.08em;text-transform:uppercase;margin:14px 0 6px;font-size:11px;font-weight:700}.nav-list{gap:4px;display:grid}.role-nav{scrollbar-color:#ffffff2e transparent;scrollbar-width:thin;flex:auto;align-content:start;gap:12px;min-height:0;margin-right:-6px;padding-right:6px;display:grid;overflow:auto}.sidebar-dashboard-link{margin-bottom:2px}.role-nav-section{--section-tone:var(--role-common);gap:8px;display:grid}.role-nav-section[data-tone=admin]{--section-tone:var(--role-admin)}.role-nav-section[data-tone=teacher]{--section-tone:var(--role-teacher)}.role-nav-section[data-tone=lead]{--section-tone:var(--role-lead-line)}.role-nav-section[data-tone=homeroom]{--section-tone:var(--role-homeroom)}.role-nav-section[data-tone=sales]{--section-tone:var(--role-sales)}.role-nav-section[data-tone=marketing]{--section-tone:var(--role-marketing)}.role-nav-section[data-tone=system]{--section-tone:var(--role-system-ok)}.nav-domain>summary,.role-section-title{color:#ffffffad;letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;min-height:28px;font-size:11px;font-weight:800;display:flex}.nav-domain>summary{cursor:pointer;justify-content:space-between;list-style:none}.nav-domain>summary::-webkit-details-marker{display:none}.role-dot{background:var(--section-tone);border-radius:50%;width:7px;height:7px}.nav-count,.nav-dot-count{background:var(--section-tone);border-radius:999px;place-items:center;min-width:20px;min-height:20px;display:inline-grid}@supports (color:color-mix(in lab,red,red)){.nav-count,.nav-dot-count{background:color-mix(in srgb,var(--section-tone) 76%,white)}}.nav-count,.nav-dot-count{color:#fff;font-family:var(--font-mono);padding:0 6px;font-size:11px;line-height:1}.nav-dot-count{background:var(--danger);margin-left:auto}.nav-item{border-radius:var(--radius-control);color:#ffffffd1;border-left:3px solid #0000;align-items:center;gap:8px;min-height:38px;padding:8px 10px 8px 9px;transition:background-color .16s cubic-bezier(.32,.72,0,1),color .16s;display:flex}.nav-item span:first-of-type{min-width:0}.nav-item:hover{color:#fff;background:#ffffff14}.nav-item[data-section=teacher]{--item-accent:var(--role-teacher)}.nav-item[data-section=lead]{--item-accent:var(--role-lead-line)}.nav-item[data-section=admin]{--item-accent:var(--role-admin)}.nav-item[data-section=homeroom]{--item-accent:var(--role-homeroom)}.nav-item[data-section=sales]{--item-accent:var(--role-sales)}.nav-item[data-section=marketing]{--item-accent:var(--role-marketing)}.nav-item[data-section=system]{--item-accent:var(--role-system-ok)}.nav-item[data-section=common]{--item-accent:var(--role-common)}.nav-item[aria-current=page]{border-left-color:var(--item-accent);color:#fff;background:#ffffff1f}.user-card{border-radius:var(--radius-card);background:#ffffff12;border:1px solid #ffffff1f;gap:8px;padding:12px;display:grid;box-shadow:inset 0 1px #ffffff0d}.role-chip-wrap{flex-wrap:wrap;gap:6px;display:flex}.topbar{z-index:24;border-bottom:1px solid var(--line);background:var(--surface);height:56px;position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.topbar{background:color-mix(in srgb,var(--surface) 92%,transparent)}}.topbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);justify-content:space-between;align-items:center;gap:16px;padding:0 24px;display:flex}.topbar-actions{justify-content:flex-end;gap:9px}.topbar-actions,.topbar-leading{align-items:center;min-width:0;display:flex}.topbar-leading{gap:14px}.topbar-leading .breadcrumb{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.platform-home-layout{background:radial-gradient(circle at 12% 8%,#246bfd14,transparent 30%),linear-gradient(180deg,#f7f9fd 0,var(--surface) 68%);min-height:100vh}.platform-home-topbar{z-index:30;border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:10px 24px;display:flex;position:sticky;top:0}@supports (color:color-mix(in lab,red,red)){.platform-home-topbar{background:color-mix(in srgb,var(--surface) 94%,transparent)}}.platform-home-topbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.platform-home-brand{color:var(--ink);font-family:var(--font-display);font-size:20px;font-weight:800}.platform-home-actions{align-items:center;gap:10px;display:flex}.platform-home-actions .locale-switcher[data-compact=true]{margin-inline-start:0}.platform-home{gap:34px;max-width:1180px;padding-block:36px 56px;display:grid}.platform-welcome{border:1px solid var(--accent);grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);align-items:center;gap:28px;display:grid;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.platform-welcome{border:1px solid color-mix(in srgb,var(--accent) 18%,var(--line))}}.platform-welcome{background:radial-gradient(circle at 95% 10%,#ffffffdb,transparent 34%),linear-gradient(120deg,var(--accent),white 58%);border-radius:16px}@supports (color:color-mix(in lab,red,red)){.platform-welcome{background:radial-gradient(circle at 95% 10%,#ffffffdb,transparent 34%),linear-gradient(120deg,color-mix(in srgb,var(--accent) 9%,white),white 58%)}}.platform-welcome{box-shadow:var(--shadow-float);padding:clamp(24px,4vw,42px)}.platform-welcome h1{max-width:720px;font-family:var(--font-display);letter-spacing:-.025em;margin:6px 0 10px;font-size:clamp(30px,4vw,46px);line-height:1.08}.platform-welcome>div:first-child>p:last-child{max-width:620px;color:var(--ink-2);margin:0;line-height:1.7}.platform-user-summary{box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffc2;border:1px solid #ffffffc2;border-radius:12px;gap:5px;padding:18px;display:grid}.platform-user-summary>span:first-child{color:var(--accent);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:800}.platform-user-summary>strong{font-family:var(--font-display);font-size:19px}.platform-user-summary>small{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.platform-user-summary>div{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.platform-role-chip{border:1px solid var(--accent);align-items:center;min-height:25px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.platform-role-chip{border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line))}}.platform-role-chip{background:var(--accent);border-radius:999px}@supports (color:color-mix(in lab,red,red)){.platform-role-chip{background:color-mix(in srgb,var(--accent) 7%,white)}}.platform-role-chip{color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.platform-role-chip{color:color-mix(in srgb,var(--accent) 84%,black)}}.platform-role-chip{padding:3px 9px;font-size:11px;font-weight:700}.platform-app-wall,.platform-management-home{gap:18px;display:grid}.platform-section-heading{align-items:flex-start;gap:12px;display:flex}.platform-section-heading h2{font-family:var(--font-display);margin:2px 0 5px;font-size:24px}.platform-section-heading p{color:var(--ink-2);margin:0;font-size:13px;line-height:1.6}.platform-section-heading .eyebrow{color:var(--accent);letter-spacing:.1em;font-size:10px;font-weight:800}.platform-section-icon{background:var(--accent);border-radius:11px;flex:none;place-items:center;width:38px;height:38px;display:grid}@supports (color:color-mix(in lab,red,red)){.platform-section-icon{background:color-mix(in srgb,var(--accent) 11%,white)}}.platform-section-icon{color:var(--accent)}.platform-app-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.platform-app-card{border:1px solid var(--line);background:var(--surface);min-height:238px;box-shadow:var(--shadow-card);color:var(--ink);border-radius:12px;align-content:space-between;gap:14px;padding:20px;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid;position:relative;overflow:visible}a.platform-app-card:hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){a.platform-app-card:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}}a.platform-app-card:hover{box-shadow:var(--shadow-float);transform:translateY(-3px)}.platform-app-card[data-disabled=true]{background:repeating-linear-gradient(135deg,transparent 0 12px,#0f172a05 12px 13px),var(--surface-muted);border-style:dashed}@supports (color:color-mix(in lab,red,red)){.platform-app-card[data-disabled=true]{background:repeating-linear-gradient(135deg,transparent 0 12px,#0f172a05 12px 13px),color-mix(in srgb,var(--surface-muted) 48%,white)}}.platform-app-card[data-disabled=true]{color:var(--ink)}@supports (color:color-mix(in lab,red,red)){.platform-app-card[data-disabled=true]{color:color-mix(in srgb,var(--ink) 66%,white)}}.platform-app-card[data-disabled=true]{cursor:not-allowed}.platform-app-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.platform-app-card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.platform-app-icon{color:#fff;background:linear-gradient(145deg,#1e5fe7,#4c8dff);border-radius:14px;place-items:center;width:48px;height:48px;display:grid;box-shadow:0 8px 22px #246bfd38}[data-disabled=true] .platform-app-icon{background:var(--surface-muted);color:var(--ink-2);box-shadow:none}.platform-coming-badge,.platform-todo-badge{min-height:26px;font-family:var(--font-mono);border-radius:999px;align-items:center;padding:4px 9px;font-size:11px;font-weight:700;display:inline-flex}.platform-todo-badge{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.platform-todo-badge{background:color-mix(in srgb,var(--accent) 9%,white)}}.platform-todo-badge{color:var(--accent)}.platform-coming-badge{color:#a35408;background:#fbf1e6}.platform-app-card h3{font-family:var(--font-display);margin:0 0 3px;font-size:20px}.platform-app-name-en{color:var(--ink-2);font-family:var(--font-mono);font-size:11px}.platform-app-card>p{color:var(--ink-2);margin:0;font-size:13px;line-height:1.65}.platform-app-card-action{color:var(--accent);font-size:12px;font-weight:800}[data-disabled=true] .platform-app-card-action{color:var(--ink-2)}.platform-app-tooltip{z-index:4;color:#fff;width:max-content;box-shadow:var(--shadow-float);opacity:0;pointer-events:none;background:#172033;border-radius:7px;padding:7px 10px;font-size:12px;transition:opacity .12s,transform .12s;position:absolute;bottom:-35px;right:14px;transform:translateY(-4px)}.platform-app-card[data-disabled=true]:focus-visible .platform-app-tooltip,.platform-app-card[data-disabled=true]:hover .platform-app-tooltip{opacity:1;transform:translateY(0)}.platform-management-home{border-top:1px solid var(--line);padding-top:30px}.platform-management-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.platform-management-card{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);min-height:94px;color:var(--ink);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:13px;transition:border-color .13s,background-color .13s;display:grid}.platform-management-card:hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.platform-management-card:hover{border-color:color-mix(in srgb,var(--accent) 38%,var(--line))}}.platform-management-card:hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.platform-management-card:hover{background:color-mix(in srgb,var(--accent) 3%,white)}}.platform-management-card-icon{background:var(--accent);border-radius:10px;place-items:center;width:34px;height:34px;display:grid}@supports (color:color-mix(in lab,red,red)){.platform-management-card-icon{background:color-mix(in srgb,var(--accent) 9%,white)}}.platform-management-card-icon{color:var(--accent)}.platform-management-card>span:nth-child(2){gap:4px;min-width:0;display:grid}.platform-management-card strong{font-size:13px}.platform-management-card small{color:var(--ink-2);font-size:10px;line-height:1.45}.app-switcher{flex:none;position:relative}.app-switcher>summary{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--ink);cursor:pointer;border-radius:10px;align-items:center;gap:8px;padding:6px 9px;font-size:13px;font-weight:700;list-style:none;display:flex}.app-switcher>summary::-webkit-details-marker{display:none}.app-switcher[open]>summary{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.app-switcher[open]>summary{border-color:color-mix(in srgb,var(--accent) 48%,var(--line))}}.app-switcher[open]>summary{box-shadow:0 0 0 3px var(--accent)}@supports (color:color-mix(in lab,red,red)){.app-switcher[open]>summary{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 9%,transparent)}}.app-switcher[open]>summary>svg:last-child{transform:rotate(180deg)}.app-switcher-current-icon,.app-switcher-option-icon{background:var(--accent);border-radius:8px;place-items:center;width:28px;height:28px;display:grid}@supports (color:color-mix(in lab,red,red)){.app-switcher-current-icon,.app-switcher-option-icon{background:color-mix(in srgb,var(--accent) 10%,white)}}.app-switcher-current-icon,.app-switcher-option-icon{color:var(--accent)}.app-switcher-menu{z-index:45;border:1px solid var(--line);background:var(--surface);border-radius:14px;width:min(330px,100vw - 32px);position:absolute;top:calc(100% + 8px);left:0;overflow:hidden;box-shadow:0 20px 54px #1018282e}.app-switcher-apps{gap:3px;padding:7px;display:grid}.app-switcher-apps button,.app-switcher-platform-section a{width:100%;min-height:54px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 9px;display:grid}.app-switcher-apps button:hover,.app-switcher-apps button[aria-current=page]{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.app-switcher-apps button:hover,.app-switcher-apps button[aria-current=page]{background:color-mix(in srgb,var(--accent) 6%,white)}}.app-switcher-apps button:disabled{cursor:wait;opacity:.7}.app-switcher-option-copy{gap:2px;min-width:0;display:grid}.app-switcher-option-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.app-switcher-option-copy small,.app-switcher-todo{color:var(--ink-2);font-size:10px}.app-switcher-todo{background:var(--surface-muted);min-width:23px;min-height:23px;font-family:var(--font-mono);border-radius:999px;place-items:center;padding-inline:6px;display:inline-grid}.app-switcher-platform-section{border-top:1px solid var(--line);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.app-switcher-platform-section{background:color-mix(in srgb,var(--accent) 3%,white)}}.app-switcher-platform-section{padding:7px}.app-switcher-platform-section a:hover{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.app-switcher-platform-section a:hover{background:color-mix(in srgb,var(--accent) 8%,white)}}.platform-admin-shell{background:#f7f9fc;grid-template-columns:244px minmax(0,1fr);min-height:100vh;display:grid}.platform-admin-sidebar{color:#fff;background:radial-gradient(circle at 15% 8%,#3b82f633,#0000 26%),#14213a;border-right:1px solid #233351;align-content:start;gap:18px;height:100vh;padding:18px 14px;display:grid;position:sticky;top:0}.platform-admin-brand{color:#fff;align-items:center;gap:10px;padding:2px 4px;display:flex}.platform-admin-brand-mark{background:#2f72f4;border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.platform-admin-brand>span:last-child{gap:2px;display:grid}.platform-admin-brand strong{font-family:var(--font-display);font-size:16px}.platform-admin-brand small{color:#ffffff94;font-size:10px}.platform-admin-context{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;gap:4px;padding:12px;display:grid}.platform-admin-context>span{color:#8db7ff;font-family:var(--font-mono);letter-spacing:.12em;font-size:9px;font-weight:700}.platform-admin-context p{color:#ffffff8a;margin:0;font-size:10px;line-height:1.5}.platform-management-nav{gap:5px;display:grid}.platform-management-nav-link{color:#ffffffbd;border-left:3px solid #0000;border-radius:9px;align-items:center;gap:9px;min-height:42px;padding:9px 10px;font-size:13px;font-weight:650;display:flex}.platform-management-nav-link:hover{color:#fff;background:#ffffff12}.platform-management-nav-link[aria-current=page]{color:#fff;background:#4981ec2b;border-left-color:#6da0ff}.platform-admin-return{color:#ffffff9e;border-top:1px solid #ffffff1a;margin-top:4px;padding:14px 9px 0;font-size:11px}.platform-admin-return:hover{color:#fff}.platform-admin-topbar{justify-content:space-between}.platform-admin-topbar-actions{align-items:center;gap:9px;display:flex}.platform-user-menu{flex:none;position:relative}.platform-user-trigger{border:1px solid var(--line);background:var(--surface);min-height:38px;color:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:4px 9px 4px 5px;list-style:none;transition:border-color .12s,box-shadow .12s;display:flex}.platform-user-trigger::-webkit-details-marker{display:none}.platform-user-menu[open] .platform-user-trigger,.platform-user-trigger:hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.platform-user-menu[open] .platform-user-trigger,.platform-user-trigger:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line))}}.platform-user-menu[open] .platform-user-trigger,.platform-user-trigger:hover{box-shadow:0 4px 16px #10182814}.platform-user-trigger:focus-visible{outline:2px solid var(--focus,var(--teacher));outline-offset:3px}.platform-user-avatar{background:var(--brand-blue,#246bfd);color:#fff;border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;font-weight:800;display:grid}.platform-user-trigger-name{text-overflow:ellipsis;white-space:nowrap;max-width:132px;font-size:13px;font-weight:700;overflow:hidden}.platform-user-popover{z-index:40;border:1px solid var(--line);background:var(--surface);width:min(260px,100vw - 32px);box-shadow:var(--shadow-float);border-radius:12px;display:grid;position:absolute;inset-block-start:calc(100% + 8px);inset-inline-end:0;overflow:hidden}.platform-user-identity{border-bottom:1px solid var(--line);gap:3px;padding:14px;display:grid}.platform-user-identity span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.platform-user-action{min-height:44px;color:var(--danger);font:inherit;text-align:start;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;padding:10px 14px;font-size:13px;font-weight:700;display:flex}.platform-user-action:hover{background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.platform-user-action:hover{background:color-mix(in srgb,var(--danger) 7%,transparent)}}.platform-user-action:disabled{cursor:wait;opacity:.6}.breadcrumb{color:var(--ink-2);font-family:var(--font-mono);font-size:12px}.content-wrap{max-width:1280px;margin:0 auto;padding:clamp(18px,2.4vw,30px);animation:page-fade .12s cubic-bezier(.32,.72,0,1)}.page-header{justify-content:space-between;align-items:end;gap:16px;padding-bottom:14px;display:flex;position:relative}.page-header:after{background:linear-gradient(90deg,var(--accent),var(--line) 32%,transparent 82%);height:1px;position:absolute;bottom:0;left:0;right:0}@supports (color:color-mix(in lab,red,red)){.page-header:after{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 54%,var(--line)),var(--line) 32%,transparent 82%)}}.page-header:after{content:""}.page-header p{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:800}.page-header h1{letter-spacing:-.018em;margin:0;font-size:clamp(27px,3vw,34px);line-height:1.08}.page-header-actions{flex-wrap:wrap;justify-content:end;gap:8px;display:flex}.empty-state{color:var(--ink-2);text-align:center;justify-items:center;gap:8px;padding:28px 16px;display:grid}.empty-state strong{color:var(--ink)}.empty-state p{max-width:360px;margin:0;font-size:12px}.empty-illustration{gap:5px;width:120px;margin-bottom:4px;display:grid}.empty-illustration span{border:1.5px solid var(--line);border-left-color:var(--accent);border-radius:8px;height:16px}.empty-illustration span:nth-child(2){justify-self:end;width:82%}.empty-illustration span:nth-child(3){width:64%}.skeleton-block{gap:10px;display:grid}.skeleton-block span{border-radius:var(--radius-control);background:linear-gradient(90deg,var(--surface-muted) 0,var(--surface-raised) 45%,var(--surface-muted) 100%);background-size:220% 100%;height:42px;animation:skeleton-shimmer 1.2s linear infinite}.notification-menu{z-index:20;gap:10px;width:min(360px,100vw - 32px);padding:12px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.notification-details{position:relative}.notification-summary{cursor:pointer;align-items:center;gap:8px;list-style:none;display:flex}.notification-summary::-webkit-details-marker{display:none}.notification-row{border-top:1px solid var(--line);gap:4px;padding-top:8px;display:grid}@media (min-width:721px) and (max-width:1023px){.platform-app-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.platform-management-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:720px){.platform-home-topbar{padding-inline:14px}.platform-home-actions{gap:6px}.platform-home-actions .locale-switcher[data-compact=true] select{min-width:76px}.platform-user-trigger-name{display:none}.platform-home{padding-block:22px 40px}.platform-app-grid,.platform-management-grid,.platform-welcome{grid-template-columns:1fr}}.muted-text{color:var(--muted)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.w-fit{width:fit-content}.p-12{padding:12px}.p-14{padding:14px}.p-16{padding:16px}.p-8{padding:8px}.mt-0{margin-top:0}.mt-8{margin-top:8px}.mt-10{margin-top:10px}.mt-12{margin-top:12px}.mt-18{margin-top:18px}.mt-24{margin-top:24px}.mb-12{margin-bottom:12px}.mb-16{margin-bottom:16px}.mb-18{margin-bottom:18px}.mb-22{margin-bottom:22px}.m-0{margin:0}.pre-wrap{white-space:pre-wrap}.hidden{display:none}.overflow-x-auto{overflow-x:auto}.danger-text{color:var(--danger)}.stack-8{gap:8px;display:grid}.stack-10{gap:10px;display:grid}.stack-12{gap:12px;display:grid}.stack-14{gap:14px;display:grid}.stack-18{gap:18px;display:grid}.stack-6{gap:6px;display:grid}.cluster-6{gap:6px}.cluster-6,.cluster-8{flex-wrap:wrap;display:flex}.cluster-8{gap:8px}.cluster-10{gap:10px}.cluster-10,.cluster-12{flex-wrap:wrap;display:flex}.cluster-12{gap:12px}.cluster-16{flex-wrap:wrap;gap:16px;display:flex}.align-center{align-items:center}.justify-end{justify-content:end}.filter-card{gap:12px;padding:14px;display:grid}.form-card{gap:12px;padding:16px;display:grid}.form-card-lg{gap:12px;padding:18px;display:grid}.form-card-10{gap:10px;padding:16px;display:grid}.form-card-compact{gap:10px;padding:14px;display:grid}.field-box{border:1px solid var(--line);border-radius:6px}.divider-10{margin-top:10px}.divider-10,.divider-top-10{border-top:1px solid var(--line);padding-top:10px}.divider-8{margin-top:8px}.divider-8,.divider-top-8{border-top:1px solid var(--line);padding-top:8px}.muted-my-6{color:var(--muted);margin:6px 0}.muted-my-4{color:var(--muted);margin:4px 0}.muted-mt-4{color:var(--muted);margin:4px 0 0}.muted-neg-6{color:var(--muted);margin-top:-6px}.split-row,.split-row-10,.split-row-nowrap{justify-content:space-between;display:flex}.split-row{flex-wrap:wrap;gap:12px}.split-row-nowrap{gap:12px}.split-row-10{gap:10px}.todo-strip{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.todo-strip[data-empty=true]{color:var(--muted)}.todo-card{border:1px solid var(--attendance-leave);align-items:center;gap:8px;min-height:44px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.todo-card{border:1px solid color-mix(in srgb,var(--attendance-leave) 28%,var(--line))}}.todo-card{border-radius:var(--radius-control);background:var(--attendance-leave)}@supports (color:color-mix(in lab,red,red)){.todo-card{background:color-mix(in srgb,var(--attendance-leave) 15%,white)}}.todo-card{color:var(--warning-ink-strong);padding:10px 14px;font-weight:700;transition:border-color .14s,box-shadow .14s,transform .14s}.todo-card:hover{border-color:var(--attendance-leave)}@supports (color:color-mix(in lab,red,red)){.todo-card:hover{border-color:color-mix(in srgb,var(--attendance-leave) 52%,var(--line))}}.todo-card:hover{box-shadow:var(--shadow-card);transform:translateY(-1px)}.quick-actions{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:20px;display:grid}.quick-action{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);min-height:50px;box-shadow:var(--shadow-card);color:var(--ink);justify-content:flex-start;align-items:center;gap:8px;padding:10px 14px;font-weight:700;transition:border-color .14s,box-shadow .14s,color .14s,transform .14s;display:inline-flex}.quick-action:hover{border-color:var(--accent);box-shadow:var(--shadow-float);color:var(--accent);transform:translateY(-2px)}.workspace-overview{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.workspace-stat{--stat-tone:var(--role-common);border-color:var(--stat-tone);gap:8px;min-height:112px;display:grid;position:relative;overflow:hidden}@supports (color:color-mix(in lab,red,red)){.workspace-stat{border-color:color-mix(in srgb,var(--stat-tone) 18%,var(--line))}}.workspace-stat{padding:14px;transition:border-color .14s,box-shadow .14s,transform .14s}.workspace-stat:after{background:linear-gradient(90deg,var(--stat-tone),var(--stat-tone));height:3px;position:absolute;top:0;left:0;right:0}@supports (color:color-mix(in lab,red,red)){.workspace-stat:after{background:linear-gradient(90deg,var(--stat-tone),color-mix(in srgb,var(--stat-tone) 18%,transparent))}}.workspace-stat:after{content:""}.workspace-stat:hover{border-color:var(--stat-tone)}@supports (color:color-mix(in lab,red,red)){.workspace-stat:hover{border-color:color-mix(in srgb,var(--stat-tone) 38%,var(--line))}}.workspace-stat:hover{box-shadow:var(--shadow-float);transform:translateY(-2px)}.workspace-stat[data-wide=true]{grid-column:span 2}.workspace-stat[data-tone=admin]{--stat-tone:var(--role-admin)}.workspace-stat[data-tone=teacher]{--stat-tone:var(--role-teacher)}.workspace-stat[data-tone=lead]{--stat-tone:var(--role-lead-line)}.workspace-stat[data-tone=homeroom]{--stat-tone:var(--role-homeroom)}.workspace-stat[data-tone=sales]{--stat-tone:var(--role-sales)}.workspace-stat[data-tone=marketing]{--stat-tone:var(--role-marketing)}.workspace-stat[data-tone=system]{--stat-tone:var(--role-system)}.workspace-stat span{background:var(--stat-tone);border-radius:999px;width:fit-content}@supports (color:color-mix(in lab,red,red)){.workspace-stat span{background:color-mix(in srgb,var(--stat-tone) 12%,white)}}.workspace-stat span{color:var(--stat-tone);font-size:var(--text-xs);text-transform:uppercase;padding:2px 8px;font-weight:800}.workspace-stat strong{font-family:var(--font-display);letter-spacing:-.025em;font-size:32px;line-height:1}.dashboard-class-section{margin-top:24px}.class-mini-card{padding:16px}.class-mini-card p{color:var(--muted)}.usage-bar{background:var(--soft);border-radius:999px;height:8px;overflow:hidden}.usage-bar span{background:var(--accent);height:100%;display:block}.usage-bar span[data-danger=true]{background:var(--danger)}.attendance-badge{background:var(--attendance-absent);border-radius:999px;align-items:center;gap:6px;min-height:24px;display:inline-flex}@supports (color:color-mix(in lab,red,red)){.attendance-badge{background:color-mix(in srgb,var(--attendance-absent) 14%,white)}}.attendance-badge{color:var(--role-admin);font-size:var(--text-xs);padding:2px 10px;font-weight:600}.attendance-badge[data-present=true]{background:var(--attendance-present)}@supports (color:color-mix(in lab,red,red)){.attendance-badge[data-present=true]{background:color-mix(in srgb,var(--attendance-present) 16%,white)}}.login-shell{--login-blue:#0b63f6;--login-blue-hover:#0755d9;--login-text:#172b5f;--login-muted:#6f82a8;background:radial-gradient(circle at 13% 16%,#2e7be817,#0000 34%),linear-gradient(135deg,#f4f7fc,#fff);place-items:center;min-height:100dvh;padding:clamp(40px,4vw,56px);display:grid;position:relative}.login-page-frame{justify-items:center;gap:24px;width:min(1200px,100%);display:grid}.login-main-card{background:#fff;border-radius:24px;grid-template-columns:minmax(0,55%) minmax(0,45%);width:100%;height:clamp(640px,75vh,700px);display:grid;overflow:hidden;box-shadow:0 24px 64px #102a641f}.login-brand{background:radial-gradient(circle at 78% 24%,#73bcff5c,#0000 38%),linear-gradient(145deg,#1246c8,#1762dc 52%,#2e7be8);min-width:0;position:relative;overflow:hidden}.login-brand-copy{z-index:2;color:#fff;max-width:calc(100% - 96px);position:absolute;top:clamp(56px,7vh,76px);left:clamp(48px,5vw,72px)}.login-brand-copy h2{letter-spacing:.01em;margin:0;font-size:clamp(28px,2.2vw,32px);font-weight:600;line-height:1.25}.login-brand-copy p{color:#ffffffb3;letter-spacing:.02em;margin:10px 0 0;font-size:clamp(14px,1.05vw,15px);line-height:1.5}.role-account-muted{color:var(--muted);font-size:var(--text-sm)}.ops-metric-value{font-size:22px}.login-hero-stage{aspect-ratio:760/625;width:66%;max-height:55%;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.login-hero-illustration{object-fit:contain;object-position:center;opacity:.9;mix-blend-mode:screen;width:100%;height:100%;-webkit-mask-image:radial-gradient(#000 54%,#0000 88%);mask-image:radial-gradient(#000 54%,#0000 88%)}.login-panel{z-index:1;background:#fff;grid-template-rows:64px minmax(0,1fr) 48px;justify-items:center;min-width:0;min-height:0;padding:0 clamp(32px,3.2vw,56px);display:grid;position:relative}.login-panel:before{pointer-events:none;content:"";background:linear-gradient(90deg,#fff0,#ffffffeb);width:56px;position:absolute;top:0;bottom:0;left:-56px}.login-card{width:100%;max-width:420px;box-shadow:none;background:0 0;border:0;border-radius:0;align-self:center;gap:0;padding:0;display:grid}.login-card-heading{text-align:center;justify-items:center;gap:7px;margin-bottom:28px;display:grid}.login-wordmark{width:min(210px,68%);height:auto}.login-subtitle{color:var(--login-muted);gap:4px;font-size:14px;line-height:1.5;display:grid}.login-subtitle span:first-child{color:var(--login-text);font-size:16px;font-weight:650}.login-alert,.login-error-alert{border-left:3px solid var(--danger);border-radius:0 var(--radius-control) var(--radius-control) 0;background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.login-alert,.login-error-alert{background:color-mix(in srgb,var(--danger) 8%,var(--surface))}}.login-alert,.login-error-alert{color:var(--danger);font-size:var(--text-sm);padding:10px 12px}.login-alert{gap:3px;display:grid}.login-alert span,.login-alert strong{display:block}.login-alert-info{background:#2563eb;border-left-color:#2563eb}@supports (color:color-mix(in lab,red,red)){.login-alert-info{background:color-mix(in srgb,#2563eb 8%,var(--surface))}}.login-alert-info{color:#1d4ed8}.login-card>.login-alert,.login-card>.login-error-alert{margin-bottom:16px}.feishu-login-section{justify-items:stretch;display:grid}.feishu-login-button{width:100%;min-height:48px;color:var(--login-text);background:#fff;border:1px solid #9fb3d7;border-radius:12px;justify-content:center;align-items:center;margin-top:12px;font-size:15px;font-weight:600;transition:border-color .16s,background-color .16s,box-shadow .16s;display:inline-flex}.feishu-login-button:hover{border-color:var(--login-blue);background:#f7faff;box-shadow:0 4px 14px #0b63f61f}.feishu-login-button:active{background:#edf4ff}.feishu-login-button:focus-visible{outline:2px solid var(--login-blue);outline-offset:3px}.password-login-form{gap:10px;display:grid}.login-field-label{color:var(--login-text);font-size:14px;font-weight:650}.login-field-label:not(:first-of-type){margin-top:4px}.login-input-control{color:#8a9ab8;background:#fff;border:1px solid #c7d4eb;border-radius:12px;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:48px;padding:0 14px;transition:border-color .16s,box-shadow .16s;display:grid}.login-input-control[data-field-error=true]{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger)}@supports (color:color-mix(in lab,red,red)){.login-input-control[data-field-error=true]{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 10%,transparent)}}.login-input-control>img{width:20px;height:20px}.login-input-control input{width:100%;min-width:0;height:46px;color:var(--ink);font:inherit;background:0 0;border:0;outline:0}.login-input-control input::placeholder{color:#9aa9c3}.password-visibility-toggle{color:#8a9ab8;cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;width:32px;height:32px;display:inline-grid}.password-visibility-toggle:hover{background:#edf4ff}.password-visibility-toggle:focus-visible{outline:2px solid var(--login-blue);outline-offset:2px}.login-primary-button{border:1px solid var(--login-blue);background:var(--login-blue);color:#fff;cursor:pointer;border-radius:12px;justify-content:center;align-items:center;width:100%;min-height:48px;margin-top:10px;font-size:15px;font-weight:700;transition:background-color .16s,box-shadow .16s,transform .12s;display:inline-flex}.login-primary-button:active{transform:translateY(1px)}.login-primary-button:focus-visible{outline:2px solid var(--login-blue);outline-offset:3px}.login-primary-button:disabled{cursor:wait;opacity:.68}.login-footer{color:#8a9ab8;text-align:center;width:100%;margin:0;font-size:12px;line-height:1.5}.teaching-node-progress{grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:16px 0 0;padding:0;list-style:none;display:grid}.teaching-node-progress li{color:var(--muted);text-align:center;justify-items:center;gap:6px;display:grid;position:relative}.teaching-node-progress li:after,.teaching-node-progress li:before{z-index:0;background:var(--line);content:"";width:50%;height:2px;position:absolute;top:8px}.teaching-node-progress li:before{left:0}.teaching-node-progress li:after{right:0}.teaching-node-progress li:first-child:before,.teaching-node-progress li:last-child:after{display:none}.teaching-node-progress li>span{z-index:1;border:3px solid var(--surface);background:var(--line);width:18px;height:18px;box-shadow:0 0 0 1px var(--line);border-radius:999px}.teaching-node-progress li[data-state=reached]:after,.teaching-node-progress li[data-state=reached]:before,.teaching-node-progress li[data-state=reached]>span{background:var(--rating-s)}.teaching-node-progress li[data-state=reminded]:after,.teaching-node-progress li[data-state=reminded]:before,.teaching-node-progress li[data-state=reminded]>span{background:var(--success)}.teaching-node-progress li[data-state=reached],.teaching-node-progress li[data-state=reminded]{color:var(--ink)}.teaching-node-progress small{color:var(--muted)}.teaching-node-ineligible{border:1px dashed var(--line);border-radius:var(--radius-control);color:var(--muted);background:var(--surface-subtle);margin:12px 0 0;padding:12px}.passive-queue-empty{justify-items:start;gap:10px;padding:24px;display:grid}.passive-queue-empty a{color:var(--plum-600);font-weight:700}.passive-queue-filters{padding:0}.passive-queue-filters>summary{min-height:44px;color:var(--ink-2);cursor:pointer;align-items:center;padding:10px 14px;font-size:13px;font-weight:700;display:flex}.passive-queue-filters[open]>summary{border-bottom:1px solid var(--line);color:var(--ink)}.passive-queue-filters>.filter-card{box-shadow:none;border:0}.binding-mode{border-radius:var(--radius-control);background:var(--soft);grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px;display:grid}.binding-mode .btn{justify-content:center}.binding-mode .btn[data-active=true]{border-color:var(--role-admin)}@supports (color:color-mix(in lab,red,red)){.binding-mode .btn[data-active=true]{border-color:color-mix(in srgb,var(--role-admin) 40%,var(--line))}}.binding-mode .btn[data-active=true]{background:var(--surface);color:var(--role-admin);box-shadow:var(--shadow-card)}.feishu-bind-dialog{grid-template-rows:auto minmax(0,1fr) auto;width:min(720px,100%);max-height:calc(100dvh - 36px)}.feishu-directory-body{min-height:0;padding-right:4px;overflow-y:auto}.feishu-directory-heading,.feishu-directory-pagination{justify-content:space-between;align-items:center;gap:12px;display:flex}.feishu-directory-empty,.feishu-directory-loading,.feishu-directory-progress{border:1px dashed var(--line);border-radius:var(--radius-control);background:var(--surface-subtle);color:var(--muted);text-align:center;padding:12px}.feishu-directory-progress{text-align:left;padding:7px 10px}.feishu-directory-alert{border:1px solid var(--danger)}@supports (color:color-mix(in lab,red,red)){.feishu-directory-alert{border:1px solid color-mix(in srgb,var(--danger) 42%,var(--line))}}.feishu-directory-alert{border-radius:var(--radius-control);background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.feishu-directory-alert{background:color-mix(in srgb,var(--danger) 8%,var(--surface))}}.feishu-directory-alert{color:var(--ink);padding:10px 12px}.feishu-directory-alert p{color:inherit;margin-top:4px}.feishu-directory-list{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface);display:grid;overflow:hidden}.feishu-directory-user{border:0;border-bottom:1px solid var(--line);background:var(--surface);width:100%;color:var(--ink);font:inherit;text-align:left;cursor:pointer;grid-template-columns:42px minmax(0,1fr) minmax(120px,auto);align-items:center;gap:12px;padding:10px 12px;display:grid}.feishu-directory-user:last-child{border-bottom:0}.feishu-directory-user:focus-visible,.feishu-directory-user:hover:not(:disabled){background:var(--role-admin)}@supports (color:color-mix(in lab,red,red)){.feishu-directory-user:focus-visible,.feishu-directory-user:hover:not(:disabled){background:color-mix(in srgb,var(--role-admin) 7%,var(--surface))}}.feishu-directory-user:focus-visible,.feishu-directory-user:hover:not(:disabled){outline:2px solid var(--role-admin)}@supports (color:color-mix(in lab,red,red)){.feishu-directory-user:focus-visible,.feishu-directory-user:hover:not(:disabled){outline:2px solid color-mix(in srgb,var(--role-admin) 45%,transparent)}}.feishu-directory-user:focus-visible,.feishu-directory-user:hover:not(:disabled){outline-offset:-2px}.feishu-directory-user:disabled{background:var(--surface-subtle);color:var(--ink-2);cursor:not-allowed;opacity:1}.feishu-directory-avatar{border:1px solid var(--line);background-color:var(--soft);width:40px;height:40px;color:var(--role-admin);background-position:50%;background-size:cover;border-radius:999px;place-items:center;font-weight:800;display:grid;overflow:hidden}.feishu-directory-identity{gap:2px;min-width:0;display:grid}.feishu-directory-identity span,.feishu-directory-identity strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.feishu-directory-identity span{color:var(--muted);font-size:12px}.feishu-directory-state{color:var(--danger);text-align:right;font-size:12px;font-weight:700}.feishu-directory-pagination{color:var(--muted);font-size:13px}@keyframes page-fade{0%{opacity:0}to{opacity:1}}@keyframes spectrum-fill{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes skeleton-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@keyframes drawer-slide-in{0%{opacity:.84;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.dictionary-page{--accent:var(--role-system)}.dictionary-context{border-left:3px solid var(--role-system);border-radius:0 var(--radius-control) var(--radius-control) 0;background:var(--surface-subtle);max-width:860px;color:var(--ink-2);margin:-7px 0 18px;padding:10px 12px}.dictionary-workspace{grid-template-columns:minmax(210px,248px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.dictionary-type-rail{position:sticky;top:76px;overflow:hidden}.dictionary-type-rail-head{border-bottom:1px solid var(--line);color:var(--ink-2);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;font-weight:700;display:flex}.dictionary-type-list{gap:3px;padding:8px;display:grid}.dictionary-type-button{width:100%;min-height:42px;color:var(--ink-2);text-align:left;cursor:pointer;background:0 0;border:0;border-left:3px solid #0000;border-radius:7px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 9px 8px 8px;transition:background-color .14s,color .14s,border-color .14s;display:grid}.dictionary-type-button:hover{background:var(--surface-raised);color:var(--ink)}.dictionary-type-button[data-active=true]{border-left-color:var(--role-system);background:var(--role-system)}@supports (color:color-mix(in lab,red,red)){.dictionary-type-button[data-active=true]{background:color-mix(in srgb,var(--role-system) 8%,white)}}.dictionary-type-button[data-active=true]{color:var(--ink);font-weight:650}.dictionary-type-count{border:1px solid var(--line);background:var(--surface);min-width:25px;color:var(--ink-2);text-align:center;border-radius:999px;padding:1px 6px;font-size:11px}.dictionary-type-rail>p{border-top:1px solid var(--line);background:var(--surface-subtle);color:var(--ink-2);margin:0;padding:12px 14px;font-size:12px}.dictionary-detail{min-width:0;overflow:hidden}.dictionary-detail-head{justify-content:space-between;align-items:flex-start;gap:16px;padding:18px;display:flex}.dictionary-detail-head h2{margin:2px 0 3px;font-size:21px}.dictionary-detail-head p{max-width:660px;color:var(--ink-2);margin:0;font-size:13px}.dictionary-kicker{color:var(--role-system);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:800}.dictionary-filters{border-top:1px solid var(--line);background:var(--surface-subtle);align-items:end;gap:10px;padding:12px 18px;display:flex}.dictionary-filters label{min-width:180px;color:var(--ink-2);gap:4px;font-size:12px;display:grid}.dictionary-filter-result{color:var(--ink-2);margin-left:auto;padding-bottom:8px;font-size:11px}.dictionary-table-wrap{border-top:1px solid var(--line);overflow-x:auto}.dictionary-table-wrap.compact{border:1px solid var(--line);border-radius:var(--radius-control)}.dictionary-table{border-collapse:collapse;width:100%;min-width:690px}.dictionary-table td,.dictionary-table th{border-bottom:1px solid var(--line);text-align:left;vertical-align:middle;height:54px;padding:10px 14px}.dictionary-table th{background:var(--surface-subtle);color:var(--ink-2);letter-spacing:.04em;text-transform:uppercase;font-size:11px;font-weight:700}.dictionary-table td:last-child,.dictionary-table th:last-child{text-align:right;width:96px}.dictionary-table tbody tr:last-child td{border-bottom:0}.dictionary-table tbody tr:hover{background:var(--row-hover)}.dictionary-table tbody tr[data-active=false]>td:first-child strong{color:var(--ink-2)}.dictionary-meta-chip,.dictionary-usage{border:1px solid var(--line);background:var(--surface-subtle);min-height:24px;color:var(--ink-2);border-radius:999px;align-items:center;padding:2px 8px;font-size:12px;display:inline-flex}.dictionary-usage[data-used=true]{border-color:var(--role-system)}@supports (color:color-mix(in lab,red,red)){.dictionary-usage[data-used=true]{border-color:color-mix(in srgb,var(--role-system) 24%,var(--line))}}.dictionary-usage[data-used=true]{color:var(--role-system)}.dictionary-switch{color:var(--ink-2);cursor:pointer;background:0 0;border:0;align-items:center;gap:7px;padding:3px 0;font-size:12px;display:inline-flex}.dictionary-switch>span:first-child{background:var(--line-strong);border-radius:999px;width:32px;height:18px;transition:background-color .14s;position:relative}.dictionary-switch i{background:var(--surface);border-radius:50%;width:12px;height:12px;transition:transform .14s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #1018282e}.dictionary-switch[data-active=true]{color:var(--success);font-weight:650}.dictionary-switch[data-active=true]>span:first-child{background:var(--success)}.dictionary-switch[data-active=true] i{transform:translate(14px)}.dictionary-switch:disabled{opacity:.55;cursor:wait}.dictionary-row-actions{justify-content:flex-end;gap:6px;display:flex}.dictionary-row-actions .btn{opacity:.45}.dictionary-table tr:focus-within .dictionary-row-actions .btn,.dictionary-table tr:hover .dictionary-row-actions .btn{opacity:1}.dictionary-delete-button:disabled{color:var(--ink-2);opacity:.5;background:0 0;border-color:#0000}.dictionary-progress-groups{border-top:1px solid var(--line);gap:14px;padding:16px 18px 18px;display:grid}.dictionary-progress-group{gap:7px;display:grid}.dictionary-progress-group-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.dictionary-progress-group-head>strong{border-left:3px solid var(--role-system);padding-left:8px;font-size:13px}.dictionary-progress-group-head>span{color:var(--ink-2);font-size:11px}.dictionary-empty{color:var(--ink-2);text-align:center;justify-items:center;gap:4px;padding:34px 18px;display:grid}.dictionary-empty strong{color:var(--ink)}.dictionary-empty p{margin:0;font-size:12px}.dictionary-form-dialog{width:min(620px,100%);max-height:calc(100vh - 36px);padding:0;overflow:auto}.dictionary-form-dialog>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 18px;display:flex}.dictionary-form-dialog>header h2{margin-top:2px}.dictionary-form-dialog>form{padding:16px 18px 18px}.dictionary-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.dictionary-active-field{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-subtle);align-items:center;gap:9px;padding:10px 12px;display:flex}.dictionary-active-field>span:first-child{flex:1;display:grid}.dictionary-active-field small,.dictionary-advanced small{color:var(--ink-2);font-size:11px}.dictionary-active-field input{width:17px;height:17px;accent-color:var(--success)}.dictionary-advanced{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--surface-subtle);overflow:hidden}.dictionary-advanced>summary{cursor:pointer;color:var(--ink-2);padding:9px 12px;font-size:12px;font-weight:650}.dictionary-advanced[open]>summary{border-bottom:1px solid var(--line)}.dictionary-advanced>div{padding:12px}@media (max-width:980px){.dictionary-workspace{grid-template-columns:1fr}.dictionary-type-rail{position:static}.dictionary-type-list{grid-template-columns:repeat(5,minmax(150px,1fr));overflow-x:auto}.dictionary-type-rail>p{display:none}}@media (max-width:680px){.dictionary-detail-head,.dictionary-filters{flex-direction:column;align-items:stretch}.dictionary-detail-head .btn{justify-content:center}.dictionary-filters label{min-width:0}.dictionary-filter-result{margin-left:0;padding-bottom:0}.dictionary-form-grid{grid-template-columns:1fr}}@media (max-width:1023px){.platform-admin-shell{grid-template-columns:1fr}.platform-admin-sidebar{width:100%;height:auto;position:static}.platform-management-nav{grid-template-columns:repeat(5,minmax(140px,1fr));overflow-x:auto}.platform-admin-topbar{flex-wrap:wrap;align-items:flex-start;height:auto;min-height:56px;padding-block:9px}.platform-admin-topbar-actions{flex-wrap:wrap}.app-shell{grid-template-rows:58px auto;grid-template-columns:1fr;align-content:start}.sidebar{z-index:50;border-bottom:1px solid #ffffff1f;border-right:0;width:100%;height:58px;position:sticky;top:0;overflow:visible}.sidebar-mobile-bar{z-index:54;justify-content:space-between;align-items:center;gap:14px;height:58px;padding:8px 14px;display:flex;position:relative}.sidebar-mobile-brand{gap:1px;min-width:0;display:grid}.sidebar-mobile-brand strong{font-family:var(--font-display);font-size:15px}.sidebar-mobile-brand small,.sidebar-mobile-brand strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-mobile-brand small{color:#ffffff94;font-size:10px}.sidebar-mobile-toggle{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff2e;border-radius:9px;align-items:center;gap:7px;min-height:38px;padding:7px 10px;font-size:12px;font-weight:700;display:inline-flex}.sidebar-mobile-toggle:focus-visible,.sidebar-mobile-toggle:hover{background:#ffffff21}.sidebar-panel{z-index:56;visibility:hidden;background:radial-gradient(circle at 8% 0,#ffffff14,#0000 15rem),linear-gradient(165deg,#414958,#343b48 62%,#2f3541);border-right:1px solid #ffffff24;width:min(320px,88vw);height:100dvh;padding:18px 14px 16px;transition:transform .24s cubic-bezier(.32,.72,0,1),visibility 0s linear .24s;position:fixed;inset:0 auto 0 0;transform:translate(-105%);box-shadow:22px 0 54px #0f172a47}.sidebar-panel-close{z-index:2;color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff2e;border-radius:8px;align-items:center;gap:6px;min-height:36px;padding:6px 9px;font-size:11px;font-weight:700;display:inline-flex;position:absolute;top:14px;right:14px}.sidebar-panel>.brand-lockup{padding-right:82px}.sidebar-backdrop{z-index:55;opacity:0;pointer-events:none;background:#1018286b;border:0;padding:0;transition:opacity .18s;display:block;position:fixed;inset:0}.sidebar[data-open=true] .sidebar-panel{visibility:visible;transition-delay:0s;transform:translate(0)}.sidebar[data-open=true] .sidebar-backdrop{opacity:1;pointer-events:auto}.sidebar[data-open=true] .sidebar-mobile-toggle{visibility:hidden}.topbar{height:auto;min-height:56px;padding:8px 16px;top:58px}.topbar,.topbar-actions{flex-wrap:wrap}.page-header{flex-direction:column;align-items:start}.login-shell{padding:clamp(16px,3vw,24px)}.login-page-frame{width:min(90vw,560px)}.login-main-card{border-radius:20px;grid-template-columns:1fr;height:auto;min-height:0}.login-brand{display:none}.login-panel{grid-template-rows:56px minmax(0,1fr) 32px;min-height:min(660px,100dvh - 112px);padding:0 clamp(18px,5vw,32px)}.login-panel:before{display:none}.login-locale-control{min-height:56px}.teaching-node-progress{grid-template-columns:1fr;gap:14px}.teaching-node-progress li{text-align:left;justify-items:start;padding-left:30px}.teaching-node-progress li:after,.teaching-node-progress li:before{display:none}.teaching-node-progress li>span{position:absolute;top:1px;left:0}.teacher-students-filter{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-students-search{min-width:0}.clear-student-filters{justify-self:start}.profile-tab-nav{top:66px}.profile-overview-sections>#profile-basic,.profile-overview-sections>#profile-class-history,.profile-overview-sections>.profile-goal-summary,.profile-overview-sections>.profile-overview-activity{grid-column:1/-1}.profile-performance-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-performance-filter-actions{align-self:end}.profile-performance-timeline .profile-report-body{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-performance-timeline .profile-report-body>section:nth-child(3){border-left:0;padding-left:0}.profile-performance-timeline .profile-report-body>section:nth-child(odd){border-left:0}.profile-section{scroll-margin-top:132px}}@media (max-width:640px){.topbar{justify-content:flex-end;padding-inline:12px}.topbar-leading>.breadcrumb{display:none}.topbar-leading{flex:none}.topbar-actions{justify-content:space-between;gap:6px;width:100%}.topbar-actions .locale-switcher[data-compact=true] select{min-width:72px}.topbar-actions .notification-summary{border:1px solid var(--line);background:var(--surface);border-radius:999px;min-height:36px;padding:6px 9px;font-size:0}.topbar-actions .notification-summary .badge{min-width:22px;padding-inline:6px;font-size:11px}.content-wrap{padding:18px 14px 28px}.workspace-stat[data-wide=true]{grid-column:auto}.page-header{margin-bottom:18px}.page-header-actions{justify-content:stretch;width:100%}.page-header-actions>.btn{flex:auto;justify-content:center}.login-panel{grid-template-rows:56px minmax(0,1fr) 28px;padding:0 clamp(18px,5vw,24px)}.login-card{padding:0}.login-wordmark{width:min(196px,66%)}.login-subtitle{font-size:12px}.binding-mode{grid-template-columns:1fr}.feishu-bind-dialog{max-height:calc(100dvh - 20px)}.feishu-directory-heading,.feishu-directory-pagination{flex-direction:column;align-items:stretch}.feishu-directory-user{grid-template-columns:40px minmax(0,1fr)}.feishu-directory-state{text-align:left;grid-column:2}.profile-quick-grid,.teacher-students-filter{grid-template-columns:1fr}.teacher-students-error{flex-direction:column;align-items:stretch}.profile-hero-main{grid-template-columns:auto minmax(0,1fr);gap:14px;min-height:0;padding:18px 16px 16px}.student-profile-hero:before{font-size:104px;bottom:-28px;right:-2px}.profile-avatar{border-width:4px;width:56px;height:56px;font-size:23px}.profile-hero-identity>h1{font-size:29px}.profile-tab-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:5px;display:grid}.profile-tab-link{min-height:44px;padding:7px 10px}.profile-section{scroll-margin-top:180px}.profile-assessment-sections,.profile-growth-family-sections,.profile-performance-filters{grid-template-columns:1fr}.profile-assessment-column{display:contents}.profile-assessment-sections>.profile-assessment-column>#term-assessments{order:1}.profile-assessment-sections>.profile-assessment-column>#piff-assessments{order:2}.profile-assessment-sections>.profile-assessment-column>#pbe-assessments{order:3}.profile-assessment-sections>.profile-assessment-column>#profile-homework{order:4}.profile-performance-filter-actions .btn{flex:1 1 0}.profile-performance-timeline .profile-report-body{grid-template-columns:1fr}.profile-performance-timeline .profile-report-body>section{border-left:0;padding-left:0;padding-right:0}.profile-current-class{border:1px solid var(--plum-600);grid-column:1/-1;justify-items:start}@supports (color:color-mix(in lab,red,red)){.profile-current-class{border:1px solid color-mix(in srgb,var(--plum-600) 13%,var(--line))}}.profile-current-class{background:var(--warm-paper)}@supports (color:color-mix(in lab,red,red)){.profile-current-class{background:color-mix(in srgb,var(--warm-paper) 82%,transparent)}}.profile-current-class{text-align:left;padding:12px 13px}.profile-lesson-progress{padding:12px 16px 15px}.profile-lesson-progress>div:first-child,.profile-record-head,.profile-section-heading-split,.profile-timeline-card-head{flex-direction:column;align-items:flex-start}.profile-card-grid,.profile-disciplinary-row,.profile-fact-grid,.profile-report-body{grid-template-columns:1fr}.profile-fact-grid>div{grid-template-columns:minmax(72px,auto) minmax(0,1fr)}.profile-report-body>section:nth-child(2n){border-left:0;padding-left:0}.profile-history-list>article{grid-template-columns:auto minmax(0,1fr) auto}.profile-history-list .mono{grid-column:2}.membership-impact-summary{grid-template-columns:1fr}.student-profile-page .profile-tab-nav{grid-template-columns:repeat(2,minmax(0,1fr));overflow-x:visible}}@media (prefers-reduced-motion:reduce){*,:after,:before{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.assessment-report-page{justify-items:center;gap:18px;display:grid}.report-list-link{cursor:pointer;transition:border-color .16s,box-shadow .16s,transform .16s}.report-list-link:hover{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.report-list-link:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}}.report-list-link:hover{transform:translateY(-1px);box-shadow:0 8px 22px #1018281a}.report-action-bar{z-index:10;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--surface);justify-content:space-between;align-items:center;gap:12px;width:min(210mm,100%);display:flex;position:sticky;top:12px}@supports (color:color-mix(in lab,red,red)){.report-action-bar{background:color-mix(in srgb,var(--surface) 94%,transparent)}}.report-action-bar{box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:10px 12px}.assessment-report-sheet{color:#17191f;-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff;border:1px solid #d8dbe2;width:210mm;min-height:297mm;padding:15mm;font-family:Arial,Helvetica Neue,sans-serif;font-size:11pt;line-height:1.4;box-shadow:0 18px 45px #10182824}.assessment-report-heading{border-bottom:3px solid #1e3a6e;justify-content:space-between;align-items:end;gap:16px;padding-bottom:10px;display:flex}.assessment-report-heading h1{color:#1e3a6e;margin:2px 0 0;font-family:Arial,Helvetica Neue,sans-serif;font-size:24pt;line-height:1.05}.assessment-report-kicker{color:#667085;letter-spacing:.16em;margin:0;font-size:8pt;font-weight:700}.assessment-report-type{color:#1e3a6e;background:#edf2fa;border:1px solid #b6c2d8;border-radius:999px;padding:5px 10px;font-size:9pt;font-weight:700}.assessment-report-student{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 20px;margin:16px 0 10px;display:grid}.assessment-report-student p{margin:0}.assessment-report-scale{white-space:pre-wrap;color:#475467;grid-column:1/-1;font-size:8.5pt}.assessment-report-meta{color:#475467;flex-wrap:wrap;gap:8px 28px;margin:0 0 14px;font-size:8.5pt;display:flex}.assessment-report-meta>div{gap:6px;display:flex}.assessment-report-meta dt{font-weight:700}.assessment-report-meta dd{margin:0}.assessment-report-table{border-collapse:collapse;table-layout:fixed;width:100%}.assessment-report-table td,.assessment-report-table th{vertical-align:top;border:1px solid #8d96a5;padding:7px 8px}.assessment-report-table thead{display:table-header-group}.assessment-report-table thead th{color:#fff;text-align:left;background:#1e3a6e;font-size:8.5pt;line-height:1.25}.assessment-report-table thead th:first-child{width:22%}.assessment-report-table thead th:nth-child(2){width:66%}.assessment-report-table thead th:last-child{text-align:center;width:12%}.assessment-report-table tbody tr{break-inside:avoid;page-break-inside:avoid}.assessment-report-print-spacer{display:none}.assessment-report-group{color:#1e3a6e;text-align:left;background:#edf2fa;font-size:9pt}.assessment-report-item p{color:#344054;margin:3px 0 0;font-size:8.5pt}.assessment-report-indicator{color:#17191f;font-size:9pt;display:block}.assessment-report-result{text-align:center;vertical-align:middle!important}.assessment-report-rating{justify-content:center;min-width:27px;min-height:27px;font-size:10pt}.assessment-report-knowledge{gap:3px;display:grid}.assessment-report-knowledge p{margin:0}.assessment-report-feedback{break-inside:avoid;page-break-inside:avoid}.assessment-report-feedback th{color:#1e3a6e;text-align:left;background:#edf2fa;font-size:9pt}.assessment-report-feedback td{white-space:pre-wrap;min-height:44px}.report-print-footer{color:#667085;border-top:1px solid #cbd1dc;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;margin-top:14px;padding-top:6px;font-size:7.5pt;display:grid}.report-print-page-counter:after{content:"1"}@media (max-width:900px){.assessment-report-sheet,.report-action-bar{width:100%}.assessment-report-sheet{min-height:0;padding:20px}}.login-feishu-unavailable{color:#7a4b00;background:#fff8e8;border:1px solid #f0c36a;border-radius:12px;margin-bottom:16px;padding:11px 13px;font-size:.9rem;line-height:1.5}.ops-integration-card{border:1px solid var(--border);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);border-radius:20px;grid-template-columns:minmax(0,1fr);gap:20px;margin-top:24px;padding:22px;display:grid}.feishu-api-circuits li,.feishu-api-quota>div:first-child,.ops-integration-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.feishu-api-circuits h3,.ops-integration-heading h2,.ops-integration-heading p{margin:0}.feishu-api-purpose-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}.feishu-api-purpose-card{border:1px solid var(--border);background:var(--surface);border-radius:14px;gap:6px;min-width:0;padding:14px;display:grid}@supports (color:color-mix(in lab,red,red)){.feishu-api-purpose-card{background:color-mix(in srgb,var(--surface) 86%,var(--primary) 14%)}}.feishu-api-purpose-card strong{font-size:1.7rem}.feishu-api-circuits span,.feishu-api-purpose-card small,.feishu-api-quota small{color:var(--muted)}.feishu-api-quota{background:var(--surface);border-radius:14px;gap:8px;padding:15px;display:grid}@supports (color:color-mix(in lab,red,red)){.feishu-api-quota{background:color-mix(in srgb,var(--surface) 90%,#1f9d65 10%)}}.feishu-api-quota[data-tone=warning]{background:#fff8e8}.feishu-api-quota[data-tone=critical]{background:#fff0f0}.feishu-api-quota[data-tone=neutral]{background:var(--surface-subtle,#f5f6f8)}.feishu-api-quota progress{accent-color:#1f9d65;border:0;border-radius:999px;width:100%;height:12px;overflow:hidden}.feishu-api-quota[data-tone=warning] progress{accent-color:#d58a00}.feishu-api-quota[data-tone=critical] progress{accent-color:#cf3f4f}.feishu-api-quota[data-tone=neutral] progress{accent-color:#98a2b3}.feishu-api-circuits{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:16px 0}.feishu-api-circuits ul{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.status-badge{border-radius:999px;padding:3px 8px;font-size:.75rem;font-weight:700;display:inline-flex}.status-badge.success{color:#137a4c;background:#e8f7ef}.status-badge.danger{color:#b32636;background:#ffebee}.feishu-api-summary{white-space:pre-wrap;overflow-wrap:anywhere;min-width:220px;max-width:420px;display:inline-block}@media (max-width:1100px){.feishu-api-purpose-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.feishu-api-circuits li,.ops-integration-heading{flex-direction:column;align-items:flex-start}.feishu-api-purpose-grid{grid-template-columns:1fr}}body{background:radial-gradient(circle at 84% 0,#74447f0d,transparent 32rem),linear-gradient(180deg,#fcfaf6 0,var(--warm-canvas) 100%)}.app-shell{grid-template-columns:255px minmax(0,1fr)}.app-shell[data-active-perspective]{--accent:var(--plum-600)}.platform-admin-sidebar,.sidebar{background:radial-gradient(circle at 15% 2%,#845c9342,transparent 18rem),linear-gradient(165deg,var(--plum-900) 0,var(--plum-950) 72%,#1d1724 100%);color:#fffdfa;border-color:#ffffff17}.sidebar-panel{gap:20px;padding:20px 18px 18px}.brand-lockup{gap:14px}.brand-identity{align-items:center;gap:12px;display:flex}.brand-mark,.platform-admin-brand-mark{width:42px;height:42px;color:var(--plum-600);background:#fffdfa;border:1px solid #ffffffbd;border-radius:50%;flex:none;place-items:center;display:grid;box-shadow:0 8px 20px #0a060e38}.brand-title{letter-spacing:.01em;font-size:20px}.brand-subtitle{color:#fffdfaa8;font-size:12px}.spectrum-bar{height:4px;box-shadow:0 0 18px #e5ae481f}.perspective-switcher summary,.platform-admin-context,.user-card{background:#ffffff12;border-color:#ffffff1f;box-shadow:inset 0 1px #ffffff0d}.sidebar .role-nav-section{--section-tone:#b78ac0}.sidebar .nav-item{--item-accent:#c4919c;color:#fffdfac7;border-left-width:0;border-radius:10px;min-height:42px;padding:9px 11px}.sidebar .nav-item:hover{background:#ffffff14}.sidebar .nav-item[aria-current=page]{color:#fffdfa;background:linear-gradient(90deg,#8953978a,#ffffff1f);box-shadow:inset 3px 0 #c89b58}.nav-domain>summary,.nav-group-title,.perspective-label,.role-section-title{color:#fffdfa99;letter-spacing:.05em;text-transform:none}.topbar{border-color:var(--line);background:var(--warm-paper);height:58px}@supports (color:color-mix(in lab,red,red)){.topbar{background:color-mix(in srgb,var(--warm-paper) 94%,transparent)}}.topbar{-webkit-backdrop-filter:blur(16px)saturate(115%);backdrop-filter:blur(16px)saturate(115%);box-shadow:0 1px #3d253405}.topbar-brand{color:var(--plum-600);font-family:var(--font-display);font-size:15px;font-weight:760;display:inline-flex}.breadcrumb,.topbar-brand{align-items:center;gap:7px}.breadcrumb{color:#8a8085;min-width:0;font-family:var(--font-body);display:flex}.breadcrumb-app,.breadcrumb-current{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.breadcrumb-app{color:var(--plum-600);font-weight:700}.breadcrumb-app:hover{color:var(--plum-800)}.breadcrumb-separator{color:#b7adb1;flex:none}.breadcrumb-current{color:#756a70}.app-switcher>summary,.locale-switcher,.notification-summary,.platform-user-trigger{border-color:var(--line);background:var(--warm-paper)}.content-wrap{width:100%;max-width:1440px;padding:clamp(22px,2.2vw,32px)}.page-header{margin-bottom:22px;padding-bottom:18px}.page-header:after{background:linear-gradient(90deg,var(--accent),var(--line) 54%,transparent 96%)}@supports (color:color-mix(in lab,red,red)){.page-header:after{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 28%,var(--line)),var(--line) 54%,transparent 96%)}}.growth-summary-kicker,.page-header p{color:var(--accent);letter-spacing:.045em;text-transform:none}.page-header h1{letter-spacing:-.012em;font-size:clamp(28px,2.6vw,36px);font-weight:720}.card{border-color:var(--line);background:var(--warm-paper)}@supports (color:color-mix(in lab,red,red)){.card{background:color-mix(in srgb,var(--warm-paper) 96%,white)}}.card{box-shadow:var(--shadow-card)}.btn{border-radius:var(--radius-control);background:var(--plum-600);min-height:40px;padding:9px 14px;font-weight:680;box-shadow:0 4px 12px #5b216621}.btn:hover:not(:disabled){background:var(--plum-700);box-shadow:0 7px 18px #5b21662e}.btn.secondary{border-color:var(--line);background:var(--warm-paper);color:var(--ink);box-shadow:none}.btn.secondary:hover:not(:disabled){border-color:var(--plum-600)}@supports (color:color-mix(in lab,red,red)){.btn.secondary:hover:not(:disabled){border-color:color-mix(in srgb,var(--plum-600) 22%,var(--line))}}.btn.secondary:hover:not(:disabled){background:var(--surface-subtle)}.class-select-trigger,.field,.ui-date-trigger,.ui-select-trigger{border-color:var(--line);border-radius:var(--radius-control);background:var(--warm-paper);min-height:40px;padding:9px 12px}.class-select-trigger:focus-visible,.field:focus,.ui-date-trigger:focus-visible,.ui-select-trigger:focus-visible{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.class-select-trigger:focus-visible,.field:focus,.ui-date-trigger:focus-visible,.ui-select-trigger:focus-visible{border-color:color-mix(in srgb,var(--accent) 58%,var(--line))}}.class-select-trigger:focus-visible,.field:focus,.ui-date-trigger:focus-visible,.ui-select-trigger:focus-visible{box-shadow:0 0 0 3px var(--accent)}@supports (color:color-mix(in lab,red,red)){.class-select-trigger:focus-visible,.field:focus,.ui-date-trigger:focus-visible,.ui-select-trigger:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}}.app-switcher-menu,.class-select-popover,.notification-menu,.platform-user-popover,.student-picker-popover,.ui-calendar-popover,.ui-select-popover{border-color:var(--line);border-radius:var(--radius-card);background:var(--warm-paper);box-shadow:var(--shadow-float)}.data-table-shell{border-radius:var(--radius-card);background:var(--warm-paper)}.data-table td,.data-table th{border-color:var(--line);vertical-align:middle;height:54px;padding:11px 14px}.data-table thead th{color:#6a6067;letter-spacing:.02em;text-transform:none;background:#fbf6ef;font-size:11px;font-weight:720}.data-table tbody tr:hover{background:#fcf6f0}.data-table tbody tr[data-selected=true]{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.data-table tbody tr[data-selected=true]{background:color-mix(in srgb,var(--accent) 5%,var(--warm-paper))}}.data-table tbody tr[data-selected=true]{box-shadow:inset 4px 0 0 var(--accent)}.data-table td[data-actions=true]>*{opacity:1}.data-table td[data-actions=true] .cluster-8{flex-wrap:wrap;gap:6px}.data-table td[data-actions=true] .cluster-8>*{white-space:nowrap;flex:none}.mobile-table-sort{display:none}.status-badge.success,.student-status-badge[data-status=active]{border-color:var(--sage-700)}@supports (color:color-mix(in lab,red,red)){.status-badge.success,.student-status-badge[data-status=active]{border-color:color-mix(in srgb,var(--sage-700) 18%,var(--line))}}.status-badge.success,.student-status-badge[data-status=active]{background:var(--sage-100);color:var(--sage-700)}.todo-strip{gap:12px;margin-bottom:22px}.todo-card{background:var(--amber-100);color:#785019;border-color:#ead2a4;border-radius:12px;min-height:46px;padding:10px 15px;box-shadow:0 3px 12px #885b1d0f}.quick-actions{gap:14px;margin-bottom:24px}.quick-action{background:var(--warm-paper);border-radius:12px;min-height:62px;padding:14px 18px}.quick-action svg{color:var(--sage-700)}.workspace-overview{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:18px}.workspace-stat{border-color:var(--line);align-content:space-between;gap:20px;min-height:170px;padding:20px}.workspace-stat:after{background:linear-gradient(90deg,var(--sage-700),var(--sage-700));height:2px}@supports (color:color-mix(in lab,red,red)){.workspace-stat:after{background:linear-gradient(90deg,var(--sage-700),color-mix(in srgb,var(--sage-700) 18%,transparent))}}.workspace-stat span{background:var(--sage-100);color:var(--sage-700);text-transform:none}.workspace-stat strong{font-size:44px}.student-growth-workspace{grid-template-columns:minmax(330px,30%) minmax(0,1fr);gap:16px}.growth-master-pane{border-top:1px solid var(--line);background:var(--warm-paper);min-height:min(720px,100dvh - 104px);max-height:calc(100dvh - 104px);top:78px}.growth-master-heading{padding:18px 18px 14px}.growth-list-total{background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.growth-list-total{background:color-mix(in srgb,var(--accent) 9%,var(--warm-paper))}}.growth-list-total{color:var(--accent)}.growth-list-filters{background:#fffcf8;gap:11px;padding:14px}.growth-student-list-scroll{padding:0}.growth-student-row{border-radius:0;gap:7px;min-height:86px;padding:13px 16px 13px 20px}.growth-student-row[data-selected=true]{background:linear-gradient(90deg,var(--accent),var(--accent))}@supports (color:color-mix(in lab,red,red)){.growth-student-row[data-selected=true]{background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 9%,var(--warm-paper)),color-mix(in srgb,var(--accent) 4%,var(--warm-paper)))}}.growth-student-row[data-selected=true]{box-shadow:inset 4px 0 0 var(--accent)}.growth-summary-strip{border-top:1px solid var(--line);padding:20px 22px}.growth-summary-identity{align-items:center;gap:16px;min-width:0;display:flex}.growth-summary-avatar{width:58px;height:58px;color:var(--plum-600);font-family:var(--font-display);background:linear-gradient(145deg,#eadfeb,#dfd1e2);border-radius:50%;flex:none;place-items:center;font-size:18px;font-weight:720;display:grid}.growth-summary-strip h2{font-size:24px}.growth-tab-list{gap:0;padding:0;overflow:hidden}.growth-tab{border:0;border-bottom:3px solid #0000;border-radius:0;min-height:58px;font-size:15px}.growth-tab[data-active=true]{border-bottom-color:var(--accent);background:var(--accent)}@supports (color:color-mix(in lab,red,red)){.growth-tab[data-active=true]{background:color-mix(in srgb,var(--accent) 5%,var(--warm-paper))}}.growth-tab[data-active=true]{color:var(--plum-700)}.growth-select-empty{place-items:center;min-height:min(700px,100dvh - 238px)}.empty-state{gap:10px;padding:34px 20px}.empty-illustration{object-fit:contain;width:min(260px,68vw);height:auto;margin:0 0 8px;display:block}.growth-select-empty .empty-illustration{width:min(370px,72%)}.growth-panel>.empty-state{min-height:430px}.growth-panel>.empty-state .empty-illustration{width:min(390px,72%)}.empty-state strong{font-size:18px}.empty-state p{max-width:460px;color:var(--ink-2);font-size:13px;line-height:1.65}.toast{border:1px solid #ffffff17;border-left:4px solid var(--accent);background:var(--plum-950);border-radius:12px}.dialog-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#1e172275}.dialog-panel{background:var(--warm-paper);border-radius:16px;padding:22px}.platform-admin-shell{background:var(--warm-canvas);grid-template-columns:255px minmax(0,1fr)}.platform-admin-sidebar{border-right-color:#ffffff17;padding:20px 18px}.platform-admin-brand-mark{color:var(--plum-600);background:#fffdfa}.platform-management-nav-link[aria-current=page]{background:linear-gradient(90deg,#89539766,#ffffff14);border-left-color:#c89b58}.login-shell{--login-blue:var(--plum-600);--login-blue-hover:var(--plum-700);--login-text:var(--ink);--login-muted:var(--ink-2);background:radial-gradient(circle at 12% 12%,#74447f0f,#0000 34%),linear-gradient(135deg,#fbf7f1,#fffdfa)}.login-main-card{border:1px solid var(--line);background:var(--warm-paper);border-radius:18px;box-shadow:0 24px 68px #38233421}.login-brand{background:radial-gradient(circle at 76% 20%,#8a5b993d,#0000 36%),linear-gradient(145deg,#352641,#2a2033 58%,#211a29)}.login-brand-copy{top:clamp(54px,7vh,72px)}.login-brand-copy h2{font-size:clamp(29px,2.4vw,36px)}.login-hero-stage{aspect-ratio:4/3;width:74%;max-height:58%;bottom:44px}.login-hero-illustration{opacity:1;mix-blend-mode:normal;-webkit-mask-image:none;mask-image:none}.login-panel{background:var(--warm-paper)}.login-panel:before{background:linear-gradient(90deg,#fffdfa00,#fffdfaf0)}.login-input-control{border-color:var(--line);background:var(--warm-paper);color:#8f858a}.login-input-control:focus-within{border-color:var(--plum-600);box-shadow:0 0 0 3px #5b21661a}.login-primary-button{border-color:var(--plum-600);background:var(--plum-600)}.login-primary-button:hover{background:var(--plum-700);box-shadow:0 8px 20px #5b216633}@media (max-width:1023px){.app-shell,.platform-admin-shell,.student-growth-workspace{grid-template-columns:1fr}.sidebar-panel{background:radial-gradient(circle at 15% 2%,#845c933d,transparent 18rem),linear-gradient(165deg,var(--plum-900) 0,var(--plum-950) 100%)}.growth-select-empty{min-height:460px}.growth-panel>.empty-state{min-height:360px}.growth-summary-avatar{width:50px;height:50px;font-size:16px}}@media (max-width:720px){.content-wrap{padding:18px 14px 28px}.filter-card{gap:10px;padding:12px}.filter-card>.grid-auto{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.filter-card>.grid-auto>*{min-width:0}.filter-card>.btn{justify-content:center;width:100%}.data-table-shell{box-shadow:none;background:0 0;border:0;overflow:visible}.mobile-table-sort{z-index:3;margin-bottom:10px;display:block;position:relative}.mobile-table-sort>summary{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--warm-paper);min-height:44px;color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;font-size:13px;font-weight:720;list-style:none;display:flex}.mobile-table-sort>summary::-webkit-details-marker{display:none}.mobile-table-sort[open]>summary{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.mobile-table-sort[open]>summary{border-color:color-mix(in srgb,var(--accent) 44%,var(--line))}}.mobile-table-sort[open]>summary{box-shadow:0 0 0 3px var(--accent)}@supports (color:color-mix(in lab,red,red)){.mobile-table-sort[open]>summary{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}}.mobile-table-sort>div{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--warm-paper);box-shadow:var(--shadow-float);gap:4px;padding:6px;display:grid;position:absolute;top:calc(100% + 6px);left:0;right:0}.mobile-table-sort button{min-height:42px;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;justify-content:space-between;align-items:center;gap:10px;padding:9px 10px;display:flex}.mobile-table-sort button:hover,.mobile-table-sort button[data-active=true]{background:var(--plum-50);color:var(--plum-700)}.mobile-table-sort svg[data-direction=asc]{transform:rotate(180deg)}.data-table-scroll{overflow:visible}.data-table[data-responsive=cards]{background:0 0;min-width:0;display:block}.data-table[data-responsive=cards] thead{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.data-table[data-responsive=cards] tbody{gap:10px;display:grid}.data-table[data-responsive=cards] tbody tr{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--warm-paper);box-shadow:var(--shadow-paper);display:grid;overflow:hidden}.data-table[data-responsive=cards] td{border-top:1px solid var(--line);overflow-wrap:anywhere;grid-template-columns:minmax(82px,30%) minmax(0,1fr);align-items:start;gap:10px;height:auto;min-height:42px;padding:10px 12px;display:grid}.data-table[data-responsive=cards] td:first-child{background:#fffcf8;border-top:0}.data-table[data-responsive=cards] td:before{color:var(--ink-2);content:attr(data-label);font-size:11px;font-weight:720;line-height:1.45}.data-table[data-responsive=cards] td[data-actions=true]{grid-template-columns:1fr}.data-table[data-responsive=cards] td[data-actions=true] .cluster-8{flex-wrap:wrap}.data-table[data-responsive=cards] td[colspan]{padding:0;display:block}.data-table[data-responsive=cards] td[colspan]:before{display:none}.table-pagination{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--warm-paper);margin-top:10px}.workspace-overview{grid-template-columns:1fr}.workspace-stat{min-height:132px}.growth-student-row{min-height:78px}.growth-tab{min-height:50px;padding-inline:7px;font-size:13px}.growth-select-empty .empty-illustration{width:min(280px,86vw)}.growth-panel>.empty-state .empty-illustration{width:min(300px,84vw)}}@media (max-width:360px){.filter-card>.grid-auto{grid-template-columns:1fr}}.teaching-overview-page{gap:18px;display:grid}.teaching-overview-classroom-row,.teaching-overview-filterbar,.teaching-overview-handle-link,.teaching-overview-intro,.teaching-overview-intro>div,.teaching-overview-stats,.teaching-overview-student-row,.teaching-overview-teacher-row{align-items:center;display:flex}.teaching-overview-intro{color:var(--ink-2);justify-content:space-between;gap:16px}.teaching-overview-intro>div{gap:9px}.teaching-overview-intro p{margin:0}.teaching-overview-intro>span{border:1px solid var(--line);background:var(--warm-paper);color:var(--ink-2);border-radius:999px;flex:none;padding:5px 10px;font-size:12px;font-weight:720}.teaching-overview-stats{gap:6px;width:fit-content}.teaching-overview-stats>span{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--warm-paper);min-height:54px;color:var(--ink-2);align-items:baseline;gap:5px;padding:10px 16px;font-size:12px;display:flex}.teaching-overview-stats b{color:var(--accent);font-size:22px}.teaching-overview-filterbar{flex-wrap:wrap;gap:12px;padding:14px}.teaching-overview-filterbar>label:not(.teaching-overview-search):not(.teaching-overview-completed-toggle){min-width:150px;color:var(--ink-2);gap:5px;font-size:11px;font-weight:740;display:grid}.teaching-overview-filterbar select{min-height:40px;color:var(--ink);padding:0 32px 0 11px}.teaching-overview-filterbar select,.teaching-overview-search{border:1px solid var(--line);border-radius:var(--radius-control);background:var(--warm-paper)}.teaching-overview-search{min-width:min(300px,100%);min-height:42px;color:var(--ink-2);flex:280px;align-items:center;gap:9px;padding:0 12px;display:flex}.teaching-overview-search:focus-within{border-color:var(--accent)}@supports (color:color-mix(in lab,red,red)){.teaching-overview-search:focus-within{border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}}.teaching-overview-search:focus-within{box-shadow:0 0 0 3px var(--accent)}@supports (color:color-mix(in lab,red,red)){.teaching-overview-search:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}}.teaching-overview-search input{width:100%;color:var(--ink);background:0 0;border:0;outline:0}.teaching-overview-completed-toggle{cursor:pointer;min-height:42px;color:var(--ink-2);align-items:center;gap:8px;font-size:13px;font-weight:700;display:inline-flex}.teaching-overview-completed-toggle input{accent-color:var(--accent)}.teaching-overview-tree{gap:10px;display:grid}.teaching-overview-teacher{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--warm-paper);box-shadow:var(--shadow-paper);overflow:hidden}.teaching-overview-teacher-row{gap:14px;min-height:72px;padding:10px 14px}.teaching-overview-row-toggle{min-width:0;color:var(--ink);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:0;display:flex}.teaching-overview-row-toggle>svg{flex:none;transition:transform .16s}.teaching-overview-classroom[data-expanded=false] .teaching-overview-row-toggle>svg,[data-expanded=false]>:first-child .teaching-overview-row-toggle>svg{transform:rotate(-90deg)}.teaching-overview-avatar{background:var(--accent);border-radius:12px;flex:0 0 38px;place-items:center;width:38px;height:38px;display:grid}@supports (color:color-mix(in lab,red,red)){.teaching-overview-avatar{background:color-mix(in srgb,var(--accent) 13%,var(--warm-paper))}}.teaching-overview-avatar{color:var(--accent);font-weight:800}.teaching-overview-anomaly-row>span:first-child,.teaching-overview-row-toggle>span:not(.teaching-overview-avatar){gap:2px;min-width:0;display:grid}.teaching-overview-anomaly-row small,.teaching-overview-row-toggle small{color:var(--ink-2);font-size:11px}.teaching-overview-relation-count{color:var(--ink-2);margin-left:auto;font-size:12px}.teaching-overview-handle-link{color:var(--accent);flex:none;gap:4px;font-size:12px;font-weight:750;text-decoration:none}.teaching-overview-handle-link:hover{text-decoration:underline}.teaching-overview-class-list{border-top:1px solid var(--line);background:var(--surface-subtle);display:grid}@supports (color:color-mix(in lab,red,red)){.teaching-overview-class-list{background:color-mix(in srgb,var(--surface-subtle) 78%,var(--warm-paper))}}.teaching-overview-classroom+.teaching-overview-classroom{border-top:1px solid var(--line)}.teaching-overview-classroom-row{gap:12px;min-height:58px;padding:9px 14px 9px 38px}.teaching-overview-classroom-row .teaching-overview-row-toggle{flex:220px}.teaching-overview-project-badge,.teaching-overview-stage-badge,.teaching-overview-status-badge{background:var(--accent);border-radius:999px}@supports (color:color-mix(in lab,red,red)){.teaching-overview-project-badge,.teaching-overview-stage-badge,.teaching-overview-status-badge{background:color-mix(in srgb,var(--accent) 10%,var(--warm-paper))}}.teaching-overview-project-badge,.teaching-overview-stage-badge,.teaching-overview-status-badge{color:var(--accent);padding:4px 8px;font-size:11px;font-weight:750}.teaching-overview-status-badge[data-status=completed]{color:#46715a;background:#edf5f0}.teaching-overview-status-badge[data-status=transition]{color:#996522;background:#fff1dc}.teaching-overview-student-count{color:var(--ink-2);align-items:center;gap:4px;font-size:12px;display:flex}.teaching-overview-zoom-warning{background:#d9932f;border-radius:50%;flex:0 0 8px;width:8px;height:8px;box-shadow:0 0 0 3px #fff0d5}.teaching-overview-student-list{border-top:1px dashed var(--line)}.teaching-overview-student-row{gap:12px;min-height:48px;padding:8px 14px 8px 78px}.teaching-overview-student-row+.teaching-overview-student-row{border-top:1px solid var(--line)}@supports (color:color-mix(in lab,red,red)){.teaching-overview-student-row+.teaching-overview-student-row{border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent)}}.teaching-overview-student-name{flex-wrap:wrap;flex:1;align-items:baseline;gap:6px;min-width:0;display:flex}.teaching-overview-student-name i{color:var(--ink-2);font-style:normal}.teaching-overview-project-badge{color:#536a7d;background:#eef3f7}.teaching-overview-empty-row,.teaching-overview-no-results{color:var(--ink-2);text-align:center;margin:0;padding:18px}.teaching-overview-tree mark{color:inherit;background:#ffe59d;border-radius:3px;padding:0 2px}.teaching-overview-anomalies{gap:14px;margin-top:10px;display:grid}.teaching-overview-section-heading{align-items:flex-start;gap:11px;display:flex}.teaching-overview-section-heading>span{color:#a86522;background:#fff0dc;border-radius:11px;place-items:center;width:36px;height:36px;display:grid}.teaching-overview-section-heading p{color:var(--ink-2);letter-spacing:.09em;margin:0 0 3px;font-size:10px;font-weight:780}.teaching-overview-section-heading h2{margin:0;font-size:22px}.teaching-overview-section-heading small{color:var(--ink-2)}.teaching-overview-anomaly-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.teaching-overview-anomaly{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--warm-paper);overflow:hidden}.teaching-overview-anomaly>summary{cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:10px;min-height:70px;padding:11px 13px;list-style:none;display:grid}.teaching-overview-anomaly>summary::-webkit-details-marker{display:none}.teaching-overview-anomaly-icon{color:#ae702c}.teaching-overview-anomaly summary>span:nth-child(2){gap:3px;display:grid}.teaching-overview-anomaly summary small{color:var(--ink-2);font-size:11px}.teaching-overview-count{color:#9b6122;text-align:center;background:#fff0dc;border-radius:999px;min-width:28px;padding:5px 8px}.teaching-overview-anomaly[open] .teaching-overview-chevron{transform:rotate(180deg)}.teaching-overview-anomaly-list{border-top:1px solid var(--line)}.teaching-overview-anomaly-row{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:10px 13px;display:grid}.teaching-overview-anomaly-row+.teaching-overview-anomaly-row{border-top:1px solid var(--line)}.teaching-overview-anomaly-detail{color:var(--ink-2);font-size:11px}.teaching-overview-anomaly-empty{color:#4e7c61;text-align:center;margin:0;padding:12px}@media (max-width:900px){.teaching-overview-anomaly-grid{grid-template-columns:1fr}.teaching-overview-classroom-row{flex-wrap:wrap}.teaching-overview-classroom-row .teaching-overview-row-toggle{flex-basis:calc(100% - 20px)}}@media (max-width:640px){.teaching-overview-intro,.teaching-overview-teacher-row{align-items:flex-start}.teaching-overview-teacher-row{flex-wrap:wrap}.teaching-overview-relation-count{width:calc(100% - 48px);margin-left:48px}.teaching-overview-classroom-row{padding-left:20px}.teaching-overview-student-row{flex-wrap:wrap;padding-left:48px}.teaching-overview-student-name{flex-basis:100%}.teaching-overview-filterbar>label:not(.teaching-overview-search):not(.teaching-overview-completed-toggle){flex:140px}.teaching-overview-stats{width:100%}.teaching-overview-stats>span{flex:1;padding-inline:10px}.teaching-overview-anomaly-row{grid-template-columns:1fr auto}.teaching-overview-anomaly-detail{grid-column:1/-1}}.payment-page-intro{border-left:3px solid var(--role-admin);color:var(--ink-2);margin:0 0 12px;padding:12px 14px}.payment-workspace .form-tabs{margin-bottom:0}.payment-filter-card .cluster-8{align-items:center}.payment-export-link{margin-left:auto}.payment-fields{border:1px solid var(--line);border-radius:var(--radius-card);background:var(--role-admin);min-width:0;margin:0}@supports (color:color-mix(in lab,red,red)){.payment-fields{background:color-mix(in srgb,var(--role-admin) 3%,var(--surface-subtle))}}.payment-fields{padding:14px}.payment-fields>legend{color:var(--ink);font-family:var(--font-display);font-size:var(--text-lg);padding:0 6px;font-weight:720}.payment-plan-radio{min-height:40px}.payment-full-note{border-radius:var(--radius-control);background:var(--attendance-present);align-self:end;margin:0}@supports (color:color-mix(in lab,red,red)){.payment-full-note{background:color-mix(in srgb,var(--attendance-present) 9%,var(--surface))}}.payment-full-note{color:var(--ink-2);font-size:var(--text-sm);padding:11px 12px}.payment-amount-stack{white-space:nowrap;gap:4px;display:grid}.payment-amount-stack small,.payment-amount-stack>span,.payment-status-badge{color:var(--ink-2);font-size:var(--text-xs)}.payment-status-badge{background:var(--soft);width:fit-content;white-space:nowrap;border-radius:999px;align-items:center;padding:5px 9px;font-weight:750;display:inline-flex}.payment-status-badge[data-status=settled]{background:var(--attendance-present)}@supports (color:color-mix(in lab,red,red)){.payment-status-badge[data-status=settled]{background:color-mix(in srgb,var(--attendance-present) 13%,white)}}.payment-status-badge[data-status=settled]{color:var(--attendance-present)}.payment-status-badge[data-status=overdue]{background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.payment-status-badge[data-status=overdue]{background:color-mix(in srgb,var(--danger) 12%,white)}}.payment-status-badge[data-status=overdue]{color:var(--danger)}.payment-status-badge[data-status=due_soon]{background:var(--attendance-leave)}@supports (color:color-mix(in lab,red,red)){.payment-status-badge[data-status=due_soon]{background:color-mix(in srgb,var(--attendance-leave) 16%,white)}}.payment-status-badge[data-status=due_soon]{color:var(--warning-ink-strong)}.payment-status-badge[data-status=pending]{background:var(--role-admin)}@supports (color:color-mix(in lab,red,red)){.payment-status-badge[data-status=pending]{background:color-mix(in srgb,var(--role-admin) 11%,white)}}.payment-status-badge[data-status=pending]{color:var(--role-admin)}.payment-workspace .data-table tbody tr[data-row-status=overdue] td{background:var(--danger)}@supports (color:color-mix(in lab,red,red)){.payment-workspace .data-table tbody tr[data-row-status=overdue] td{background:color-mix(in srgb,var(--danger) 7%,var(--surface))}}.payment-workspace .data-table tbody tr[data-row-status=overdue] td{color:var(--danger)}@supports (color:color-mix(in lab,red,red)){.payment-workspace .data-table tbody tr[data-row-status=overdue] td{color:color-mix(in srgb,var(--danger) 82%,var(--ink))}}.payment-workspace .data-table tbody tr[data-row-status=overdue] td:first-child{box-shadow:inset 4px 0 0 var(--danger)}.payment-row-actions{white-space:nowrap;flex-wrap:nowrap}.profile-overview-sections>#profile-payment{grid-column:1/-1}.profile-payment-section .profile-fact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:760px){.payment-export-link{margin-left:0}.payment-filter-card .cluster-8{align-items:stretch}.profile-payment-section .profile-fact-grid{grid-template-columns:1fr}}@page{size:A4 portrait;margin:15mm}@media print{body,html{background:#fff!important}.app-shell,.app-shell>main,body{min-height:0!important;display:block!important}.report-action-bar,.sidebar,.topbar{display:none!important}.assessment-report-page,.content-wrap{width:auto!important;max-width:none!important;margin:0!important;padding:0!important;animation:none!important;display:block!important}.assessment-report-sheet{font-size:9.5pt;width:auto!important;min-height:0!important;box-shadow:none!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;border:0!important;padding:0!important}.assessment-report-table{margin-bottom:5mm}.assessment-report-table thead{display:table-header-group!important}.assessment-report-print-spacer{display:table-footer-group!important}.assessment-report-print-spacer td{height:9mm;border:0!important;padding:0!important}.assessment-report-table tbody tr{break-inside:avoid;page-break-inside:avoid}.assessment-report-feedback{break-inside:avoid!important;page-break-inside:avoid!important}.assessment-report-feedback td{orphans:3;widows:3;overflow-wrap:anywhere}.report-print-footer{margin:0;position:fixed;bottom:0;left:0;right:0}.report-print-page-counter:after{content:counter(page)}}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}