:root{--bg:#f4f2ff;--surface:#fff;--surface-2:#faf9ff;--ink:#1c1a3b;--ink-2:#3d3a66;--muted:#6c6a90;--line:#e6e3fa;--brand:#5b46e8;--brand-2:#8a63ff;--brand-soft:#ece8ff;--coral:#ff7a59;--focus:#5b46e859;--admin-fg:#5b3fe0;--admin-bg:#ece8ff;--teacher-fg:#0a7f72;--teacher-bg:#d6f4ee;--student-fg:#c2480c;--student-bg:#ffe8da;--amber-fg:#8a5a00;--amber-bg:#fff1c9;--rose-fg:#b4232a;--rose-bg:#ffe3e5;--grey-fg:#5d5b7d;--grey-bg:#eceaf7;--shadow-sm:0 1px 2px #291f780f;--shadow:0 1px 2px #291f780f, 0 10px 30px -12px #291f7838;--shadow-lg:0 24px 60px -20px #1e146473;--radius:18px;--font:ui-rounded, "SF Pro Rounded", "Avenir Next", "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#100e26;--surface:#1a1738;--surface-2:#211d45;--ink:#efedff;--ink-2:#cfcbf5;--muted:#a09dcc;--line:#302c5c;--brand:#8c79ff;--brand-2:#b08cff;--brand-soft:#2b2658;--focus:#8c79ff73;--admin-fg:#c9bcff;--admin-bg:#2f2866;--teacher-fg:#7ee0d0;--teacher-bg:#11373a;--student-fg:#ffb48a;--student-bg:#4a2a1b;--amber-fg:#ffd36e;--amber-bg:#43330c;--rose-fg:#ff9ea4;--rose-bg:#4a1c24;--grey-fg:#b9b6e0;--grey-bg:#2a2650;--shadow:0 1px 2px #0000004d, 0 10px 30px -12px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4,p{margin:0}h1{letter-spacing:-.02em;font-size:clamp(1.6rem,2.4vw,2.1rem);font-weight:800;line-height:1.15}h2{letter-spacing:-.01em;font-size:1.15rem}h4{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px;font-size:.78rem}button,input{font:inherit;color:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:10px}::selection{background:var(--brand-soft)}.logo{letter-spacing:-.02em;align-items:center;gap:10px;font-size:1.15rem;font-weight:800;display:inline-flex}.logo-mark{color:#fff;background:linear-gradient(135deg,#7c5cff,#ff7a59);border-radius:11px;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 6px 16px -6px #ff7a59b3}.logo-light{color:#fff}.logo-img{background:#e0ecdf;border-radius:16px;width:170px;height:auto;display:block}.logo-img-light{box-shadow:0 6px 18px #140a4647}.hero .logo-img{width:230px}.sidebar .logo-img{width:156px;margin-left:4px}.avatar{--a:#7c5cff;--b:#5b46e8;color:#fff;letter-spacing:.02em;background:linear-gradient(135deg, var(--a), var(--b));border-radius:50%;flex:none;place-items:center;font-weight:800;display:grid;box-shadow:inset 0 0 0 2px #ffffff40}.avatar[data-tone="0"]{--a:#8a63ff;--b:#5b46e8}.avatar[data-tone="1"]{--a:#ff9d6b;--b:#ff5d73}.avatar[data-tone="2"]{--a:#2fd0b5;--b:#0a8f94}.avatar[data-tone="3"]{--a:#ffc857;--b:#f08a24}.avatar[data-tone="4"]{--a:#5ab0ff;--b:#3b6cf0}.avatar[data-tone="5"]{--a:#ff7eb6;--b:#c24fd6}.avatar-sm{width:30px;height:30px;font-size:.7rem}.avatar-md{width:42px;height:42px;font-size:.85rem}.avatar-lg{width:64px;height:64px;font-size:1.3rem}.chips,.person-tags,.pill-row{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip,.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.chip-admin{color:var(--admin-fg);background:var(--admin-bg)}.chip-teacher{color:var(--teacher-fg);background:var(--teacher-bg)}.chip-student{color:var(--student-fg);background:var(--student-bg)}.pill-amber{color:var(--amber-fg);background:var(--amber-bg)}.pill-rose{color:var(--rose-fg);background:var(--rose-bg)}.pill-grey{color:var(--grey-fg);background:var(--grey-bg)}.pill-you{color:#fff;background:linear-gradient(135deg, var(--brand), var(--coral));vertical-align:middle}.pill-amber:before{content:"";background:#f2a20c;border-radius:50%;width:7px;height:7px}.spinner{opacity:.75;border:2.5px solid;border-right-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--line)}.lede{color:var(--ink-2)}.fine{color:var(--muted);font-size:.82rem}.hint{color:var(--muted);margin-bottom:12px;font-size:.88rem}.eyebrow{letter-spacing:.1em;text-transform:uppercase;color:var(--brand);margin-bottom:4px;font-size:.78rem;font-weight:800}.notice{color:var(--amber-fg);background:var(--amber-bg);border-radius:12px;padding:10px 14px;font-size:.9rem;font-weight:600}.alert{color:var(--rose-fg);background:var(--rose-bg);border-radius:12px;padding:10px 14px;font-size:.9rem;font-weight:600}.btn{border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:42px;padding:0 18px;font-weight:700;transition:transform .12s,box-shadow .12s,background .12s,border-color .12s;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:not(:disabled):active{transform:translateY(1px)}.btn-primary{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-2));box-shadow:0 8px 20px -8px #5b46e8cc}.btn-primary:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 12px 24px -8px #5b46e8e6}.btn-quiet{color:var(--ink-2);background:0 0}.btn-quiet:hover{background:var(--brand-soft)}.btn-outline{border-color:var(--line);background:var(--surface)}.btn-outline:hover{border-color:var(--brand)}.btn-outline-danger{border-color:var(--rose-bg);color:var(--rose-fg);background:0 0}.btn-outline-danger:not(:disabled):hover{background:var(--rose-bg)}.btn-danger{color:#fff;background:#e5484d}.btn-ghost-light{color:#ffffffe6;background:#ffffff1f;width:100%}.btn-ghost-light:hover{background:#fff3}.btn-google{color:#1f1f1f;width:100%;min-height:50px;box-shadow:var(--shadow-sm);background:#fff;border-color:#dadce0;font-size:1rem}.btn-google:hover{transform:translateY(-1px);box-shadow:0 6px 18px -6px #00000040}.icon-btn{width:36px;height:36px;color:var(--muted);background:0 0;border:0;border-radius:10px;place-items:center;display:grid}.icon-btn:hover{background:var(--brand-soft);color:var(--ink)}.signin{grid-template-columns:1.15fr 1fr;min-height:100dvh;display:grid}.hero{color:#fff;background:linear-gradient(150deg,#2a2073 0%,#4a39c9 55%,#7a4cf0 100%);flex-direction:column;justify-content:space-between;padding:40px 56px;display:flex;position:relative;overflow:hidden}.blob{filter:blur(2px);pointer-events:none;border-radius:50%;position:absolute}.blob-1{opacity:.85;background:radial-gradient(circle at 30% 30%,#ff9d86,#ff5d73 70%);width:380px;height:380px;animation:14s ease-in-out infinite float;top:-100px;right:-120px}.blob-2{opacity:.7;background:radial-gradient(circle at 30% 30%,#7ee0c9,#12a594 75%);width:260px;height:260px;animation:18s ease-in-out infinite reverse float;bottom:270px;left:-110px}.blob-3{opacity:.8;background:radial-gradient(circle at 30% 30%,#ffe08a,#f2a20c 75%);width:140px;height:140px;animation:11s ease-in-out infinite float;bottom:38%;right:7%}@keyframes float{50%{transform:translate(18px,-22px)scale(1.04)}}.hero>:not(.blob){position:relative}.hero-copy h2{letter-spacing:-.03em;max-width:14em;font-size:clamp(1.9rem,3.2vw,2.9rem);font-weight:800;line-height:1.1}.hero-copy ul{color:#ffffffeb;gap:14px;margin:28px 0 0;padding:0;font-size:1.05rem;list-style:none;display:grid}.hero-copy li{align-items:center;gap:12px;display:flex}.hero-copy i{border-radius:4px;flex:none;width:12px;height:12px;transform:rotate(45deg)}.signin-main{background:var(--bg);place-items:center;padding:32px 20px;display:grid}.signin-card{gap:16px;width:min(420px,100%);padding:36px;display:grid}.signin-card .lede{margin-top:-6px}.centered{place-content:center;justify-items:center;gap:20px;min-height:100dvh;padding:24px;display:grid;position:relative;overflow:hidden}.centered .blob-1{opacity:.5;width:300px;height:300px;top:-90px;right:-80px}.centered .blob-2{opacity:.45;width:220px;height:220px;bottom:-50px;left:-70px}.noaccess{text-align:center;justify-items:center;gap:14px;width:min(460px,100%);padding:36px;display:grid;position:relative}.noaccess-art{width:190px;height:auto;margin:6px 0}.actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;display:flex}.shell{grid-template-columns:264px 1fr;min-height:100dvh;display:grid}.sidebar{color:#fff;background:radial-gradient(120% 60% at 0 0,#ff7a5947,#0000 55%),linear-gradient(#2a2073 0%,#4a39c9 62%,#6f48ee 100%);flex-direction:column;gap:28px;height:100dvh;padding:26px 18px 18px;display:flex;position:sticky;top:0}.sidebar .logo{padding:0 8px}.nav{gap:4px;display:grid}.nav-link{color:#ffffffc7;border-radius:13px;align-items:center;gap:12px;padding:11px 14px;font-weight:700;transition:background .12s,color .12s;display:flex}.nav-link:hover{color:#fff;background:#ffffff1a}.nav-link.active{color:#3b2bb3;background:#fffffff2;box-shadow:0 8px 20px -10px #00000080}.sidebar-foot{gap:12px;margin-top:auto;display:grid}.me{background:#ffffff1a;border-radius:14px;align-items:center;gap:12px;padding:10px;display:flex}.me-text{min-width:0;display:grid}.me-text strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.me-text span{color:#ffffffb8;font-size:.78rem}.main{min-width:0}.page{align-content:start;gap:26px;max-width:980px;margin:0 auto;padding:40px 32px 80px;display:grid}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-head .lede{margin-top:6px}.stats{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px;display:grid}.stat{border-radius:var(--radius);color:#fff;box-shadow:var(--shadow);gap:2px;padding:20px 22px;transition:transform .15s,box-shadow .15s;display:grid;position:relative;overflow:hidden}.stat:hover{box-shadow:var(--shadow-lg);transform:translateY(-3px)}.stat:after{content:"";background:#ffffff29;border-radius:50%;width:110px;height:110px;position:absolute;top:-30px;right:-30px}.stat-num{letter-spacing:-.03em;font-size:2.4rem;font-weight:800;line-height:1.1}.stat-label{opacity:.92;font-weight:700}.stat-violet{background:linear-gradient(135deg,#6c4df0,#8a63ff)}.stat-amber{color:#3a2600;background:linear-gradient(135deg,#f59e0b,#ffbf47)}.stat-teal{background:linear-gradient(135deg,#0f9a8b,#2fd0b5)}.stat-coral{background:linear-gradient(135deg,#ff6b57,#ff9d6b)}.stat-pulse{animation:2.4s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 8px #f59e0b2e, var(--shadow)}}.soon{border-left:5px solid var(--coral);gap:8px;padding:26px 28px;display:grid}.toolbar{gap:12px;display:grid}.search{background:var(--surface);border:1px solid var(--line);min-height:46px;color:var(--muted);box-shadow:var(--shadow-sm);border-radius:14px;align-items:center;gap:10px;padding:0 14px;display:flex}.search:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px var(--focus)}.search input{background:0 0;border:0;outline:0;flex:1;min-width:0}.segments{flex-wrap:wrap;gap:8px;display:flex}.segment{color:var(--ink-2);background:var(--surface);border:1px solid var(--line);border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:.88rem;font-weight:700;transition:all .12s;display:inline-flex}.segment:hover{border-color:var(--brand)}.segment.on{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-2));border-color:#0000;box-shadow:0 6px 16px -8px #5b46e8e6}.segment .count{background:var(--brand-soft);color:var(--admin-fg);border-radius:999px;padding:1px 7px;font-size:.75rem}.segment.on .count{color:#fff;background:#ffffff40}.segment.attn:not(.on) .count{color:#3a2600;background:#f59e0b}.people{gap:10px;margin:0;padding:0;list-style:none;display:grid}.person{text-align:left;background:var(--surface);border:1px solid var(--line);width:100%;box-shadow:var(--shadow-sm);border-radius:16px;grid-template-columns:auto minmax(0,1.1fr) minmax(0,1.4fr) auto;align-items:center;gap:14px;padding:12px 16px;transition:transform .12s,box-shadow .12s,border-color .12s;display:grid}.person:hover{box-shadow:var(--shadow);border-color:var(--brand-2);transform:translateY(-2px)}.person-id{min-width:0;display:grid}.person-id strong,.person-id small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.person-id small{color:var(--muted)}.person-tags{justify-content:flex-end}.chev{color:var(--muted)}.is-suspended{opacity:.7}.is-suspended .person-id strong{text-decoration:line-through;-webkit-text-decoration-color:var(--rose-fg);text-decoration-color:var(--rose-fg)}.empty{color:var(--muted);text-align:center;border:2px dashed var(--line);border-radius:var(--radius);justify-items:center;gap:12px;padding:56px 16px;display:grid}.dot{background:var(--grey-fg);border-radius:50%;flex:none;width:9px;height:9px}.dot-ok{background:#2fa55b;box-shadow:0 0 0 4px #2fa55b2e}.dot-bad{background:#e5484d;box-shadow:0 0 0 4px #e5484d33}.syncbar{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:16px;align-items:center;gap:12px;padding:8px 8px 8px 16px;display:flex}.syncbar-text{line-height:1.25;display:grid}.syncbar-text small{color:var(--muted);font-size:.78rem}.syncbar .btn{min-height:38px}.pill-suggest{background:0 0;border:1.5px dashed}.pill-suggest-admin{color:var(--admin-fg)}.pill-suggest-teacher{color:var(--teacher-fg)}.pill-suggest-student{color:var(--student-fg)}.suggest{background:var(--brand-soft);border-radius:14px;justify-items:start;gap:10px;margin-bottom:12px;padding:14px 16px;display:grid}.state{align-items:center;gap:10px;margin-bottom:6px;font-weight:700;display:flex}code{background:var(--grey-bg);border-radius:6px;padding:1px 6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.85em}.hint a{color:var(--brand);font-weight:700;text-decoration:underline}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.check{width:fit-content;color:var(--ink-2);cursor:pointer;align-items:center;gap:8px;font-weight:600;display:inline-flex}.check input{width:18px;height:18px;accent-color:var(--brand)}.boards{grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));align-items:start;gap:20px;display:grid}.board{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);overflow:hidden}.board.is-archived{opacity:.7}.board-head{--a:#8a63ff;--b:#5b46e8;color:#fff;background:linear-gradient(135deg, var(--a), var(--b));justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;display:flex}.board-head[data-tone="1"]{--a:#ff9d6b;--b:#ff5d73}.board-head[data-tone="2"]{--a:#2fd0b5;--b:#0a8f94}.board-head[data-tone="3"]{--a:#ffc857;--b:#f08a24}.board-head[data-tone="4"]{--a:#5ab0ff;--b:#3b6cf0}.board-head[data-tone="5"]{--a:#ff7eb6;--b:#c24fd6}.board-head h2{font-size:1.1rem}.board-code{letter-spacing:.06em;opacity:.85;font-size:.78rem;font-weight:700}.board-head .btn-ghost-light{width:auto;min-height:34px;padding:0 14px}.syllabi{gap:2px;margin:0;padding:8px;list-style:none;display:grid}.syllabus{text-align:left;background:0 0;border:0;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;width:100%;padding:10px 12px;transition:background .12s;display:flex}.syllabus:hover{background:var(--brand-soft)}.syllabus-subject{flex:140px;font-weight:700}.syllabus.is-archived .syllabus-subject{color:var(--muted);text-decoration:line-through}.pill-version{color:var(--admin-fg);background:var(--admin-bg)}.board-empty{color:var(--muted);padding:18px 20px 4px}.board-add{border:1.5px dashed var(--line);width:calc(100% - 16px);color:var(--brand);background:0 0;border-radius:12px;margin:4px 8px 8px;padding:10px;font-weight:700}.board-add:hover{border-color:var(--brand);background:var(--brand-soft)}.setting{gap:20px;padding:24px 26px;display:grid}.setting-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.setting-head .hint{max-width:46ch;margin:4px 0 0}.switch-row{cursor:pointer;align-items:center;gap:12px;font-weight:700;display:inline-flex;position:relative}.switch-row input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch-row input:checked~.switch{background:var(--brand)}.switch-row input:checked~.switch:after{transform:translate(18px)}.switch-row:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:4px;border-radius:999px}.intervals{flex-wrap:wrap;gap:10px;display:flex}.interval{cursor:pointer;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:9px 16px;font-weight:700;transition:all .12s;position:relative}.interval input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.interval:hover{border-color:var(--brand)}.interval.on{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-2));border-color:#0000;box-shadow:0 6px 16px -8px #5b46e8e6}.interval:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}fieldset:disabled .interval{opacity:.5;cursor:not-allowed}.setting-foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:16px;display:flex}.setting-foot .hint{flex:280px;margin:0}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-actions.split{justify-content:space-between;align-items:center}.field select{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;outline:0;width:100%;min-height:44px;padding:0 14px}.field select:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--focus)}.field input:disabled{opacity:.6;cursor:not-allowed}.panel-wide{width:min(780px,100% - 24px)}.field textarea{resize:vertical;border:1px solid var(--line);background:var(--surface-2);border-radius:12px;outline:0;width:100%;min-height:220px;padding:12px 14px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.88rem;line-height:1.5}.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--focus);background:var(--surface)}.field textarea:disabled{opacity:.6}.field-label{color:var(--ink-2);font-size:.88rem;font-weight:700}.field-hint{flex-wrap:wrap;justify-content:space-between;gap:12px;margin:0;display:flex}.count-note{font-variant-numeric:tabular-nums;white-space:nowrap}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.btn-sm{min-height:34px;padding:0 14px;font-size:.88rem}label.btn:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.doc{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;display:flex}.doc-empty{border-style:dashed}.doc-icon{color:#fff;background:linear-gradient(135deg,#ff7a59,#e5484d);border-radius:10px;flex:none;place-items:center;width:40px;height:40px;font-size:.7rem;font-weight:800;display:grid}.doc-text{overflow-wrap:anywhere;flex:160px;min-width:0;font-weight:700;display:grid}.doc-text a{color:var(--brand);text-decoration:underline}.doc-text small{color:var(--muted);font-weight:500}.pill-teal{color:var(--teacher-fg);background:var(--teacher-bg)}.pill-pdf{color:var(--rose-fg);background:var(--rose-bg)}.pill-ghost{color:var(--muted);border:1px dashed var(--line);background:0 0}.scrim{z-index:50;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#16104680;animation:.15s ease-out fade;display:grid;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.panel{background:var(--surface);border:1.5px solid var(--section-line);box-shadow:var(--shadow-lg);flex-direction:column;max-height:100dvh;display:flex}.panel-dialog{border-radius:22px;place-self:center;width:min(520px,100% - 24px);animation:.18s ease-out pop;overflow:auto}@keyframes pop{0%{opacity:0;transform:translateY(10px)scale(.98)}}.panel-drawer{border-radius:22px 0 0 22px;justify-self:end;width:min(460px,100%);height:100dvh;animation:.22s cubic-bezier(.2,.8,.2,1) slide}@keyframes slide{0%{opacity:0;transform:translate(40px)}}.panel-head{justify-content:space-between;align-items:center;padding:18px 20px 6px 24px;display:flex}.drawer-body{align-content:start;gap:28px;padding:8px 24px 32px;display:grid;overflow:auto}.profile{background:linear-gradient(135deg, var(--brand-soft), var(--surface-2));border-radius:18px;align-items:center;gap:16px;padding:18px;display:flex}.profile h3{letter-spacing:-.01em;font-size:1.2rem}.profile p{color:var(--muted)}.profile .pill-row{margin-top:8px}.toggles{gap:10px;display:grid}.toggle{cursor:pointer;border:1px solid var(--line);background:var(--surface-2);border-radius:14px;justify-content:space-between;align-items:center;gap:14px;padding:12px 16px;transition:border-color .12s,background .12s;display:flex;position:relative}.toggle small{color:var(--muted);display:block}.toggle input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch{background:var(--line);border-radius:999px;flex:none;width:44px;height:26px;transition:background .15s;position:relative}.switch:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 2px 5px #00000040}.toggle input:checked~.switch:after{transform:translate(18px)}.toggle input:disabled~.switch{opacity:.55}.toggle:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.toggle-admin:has(input:checked){background:var(--admin-bg);border-color:var(--admin-fg)}.toggle-admin input:checked~.switch{background:var(--admin-fg)}.toggle-teacher:has(input:checked){background:var(--teacher-bg);border-color:var(--teacher-fg)}.toggle-teacher input:checked~.switch{background:var(--teacher-fg)}.toggle-student:has(input:checked){background:var(--student-bg);border-color:var(--student-fg)}.toggle-student input:checked~.switch{background:var(--student-fg)}.confirm{background:var(--rose-bg);color:var(--rose-fg);border-radius:14px;gap:12px;padding:16px;display:grid}.confirm .form-actions{justify-content:flex-start}.timeline{border-left:2px solid var(--line);gap:14px;margin:0;padding:0 0 0 18px;list-style:none;display:grid}.timeline li{display:grid;position:relative}.timeline li:before{content:"";background:var(--brand-2);width:10px;height:10px;box-shadow:0 0 0 4px var(--surface);border-radius:50%;position:absolute;top:6px;left:-25px}.timeline small{color:var(--muted)}.form{gap:16px;padding:8px 24px 24px;display:grid}.field{border:0;gap:6px;min-width:0;margin:0;padding:0;display:grid}.field>span,.field>legend,.field>label{color:var(--ink-2);padding:0;font-size:.88rem;font-weight:700}.field input:not([type=checkbox]){border:1px solid var(--line);background:var(--surface-2);border-radius:12px;outline:0;width:100%;min-height:44px;padding:0 14px}.field input:not([type=checkbox]):focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--focus);background:var(--surface)}.pick{gap:8px;display:grid}.pick-item{border:1px solid var(--line);cursor:pointer;background:var(--surface-2);border-radius:12px;align-items:center;gap:12px;padding:10px 14px;display:flex}.pick-item small{color:var(--muted);display:block}.pick-item input{width:18px;height:18px;accent-color:var(--brand)}.pick-admin:has(input:checked){background:var(--admin-bg);border-color:var(--admin-fg)}.pick-teacher:has(input:checked){background:var(--teacher-bg);border-color:var(--teacher-fg)}.pick-student:has(input:checked){background:var(--student-bg);border-color:var(--student-fg)}.form-actions{justify-content:flex-end;gap:10px;display:flex}.toasts{z-index:80;pointer-events:none;gap:8px;width:min(440px,100% - 24px);display:grid;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{color:#fff;box-shadow:var(--shadow-lg);background:linear-gradient(135deg,#3b2bb3,#5b46e8);border-radius:14px;padding:12px 16px;font-weight:700;animation:.2s ease-out pop}.toast-error{background:linear-gradient(135deg,#c92a3a,#e5484d)}@media (width<=860px){.signin{grid-template-columns:1fr}.hero{gap:28px;padding:28px 24px 36px}.hero .blob-1{width:170px;height:170px;top:-60px;right:-70px}.hero .blob-2{display:none}.hero .blob-3{width:70px;height:70px;bottom:18px;right:22px}.shell{grid-template-columns:1fr}.sidebar{flex-flow:wrap;align-items:center;gap:12px;height:auto;padding:14px 16px;position:static}.nav{order:3;width:100%;display:flex}.sidebar-foot{align-items:center;margin:0 0 0 auto;display:flex}.me-text{display:none}.btn-ghost-light{width:auto}.page{padding:24px 16px 60px}.syncbar{width:100%}.syncbar .btn{margin-left:auto}.person{grid-template-columns:auto minmax(0,1fr) auto}.person-tags{grid-column:2/3;justify-content:flex-start}.person .chev{grid-area:1/3}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.sessions{gap:12px;padding:22px 24px;display:grid}.sessions-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.sessions-head .hint{margin:2px 0 0}.session-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.placements{gap:10px;margin:0 0 12px;padding:0;list-style:none;display:grid}.placements li{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:12px 14px;display:flex}.placement-main{flex:150px;min-width:0;display:grid}.placement-main small{color:var(--muted)}.placements select,.placement-add select{border:1px solid var(--line);background:var(--surface);border-radius:10px;max-width:100%;min-height:34px;padding:0 10px}.placement-add{grid-template-columns:1fr;gap:8px;display:grid}.placement-add .btn{justify-self:start}.placements-past{margin-top:8px;margin-bottom:0}.past summary{cursor:pointer;color:var(--ink-2);padding:8px 0;font-weight:700}.mine{gap:12px;padding:22px 24px;display:grid}.mine-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.mine-list>li{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:12px 14px;display:flex}.mine-list>li small{color:var(--muted);flex:160px}.mine-teach .chips{flex-wrap:wrap;flex:100%;gap:6px;margin:4px 0 0;padding:0;list-style:none;display:flex}.side-search{color:#ffffffbf;background:#ffffff1f;border:1px solid #0000;border-radius:12px;align-items:center;gap:8px;min-height:40px;margin:14px 0 4px;padding:0 12px;display:flex}.side-search:focus-within{background:#fff3;border-color:#ffffff80}.side-search input{color:#fff;background:0 0;border:0;outline:0;flex:1;min-width:0}.side-search input::placeholder{color:#ffffffa6}.find{gap:12px;padding:20px 24px;display:grid}.search-big{min-height:56px;box-shadow:var(--shadow);border-radius:18px;font-size:1.05rem}.search-big svg{flex:none}.filter-rows{gap:10px;display:grid}.segments-tags .segment{padding:5px 12px;font-weight:600}.result-count{color:var(--muted);margin:0;font-weight:600}.msection{gap:10px;display:grid}.msection h2{color:var(--ink-2);font-size:1.05rem}.mlist{gap:12px;margin:0;padding:0;list-style:none;display:grid}.mcard{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);border-radius:16px;grid-template-columns:76px minmax(0,1fr);align-items:start;gap:16px;padding:14px 16px;transition:transform .12s,box-shadow .12s,border-color .12s;display:grid;position:relative}.mcard:hover{box-shadow:var(--shadow);border-color:var(--brand-2);transform:translateY(-2px)}.mcard.is-archived{opacity:.7}.mcard-title{text-align:left;color:var(--ink);background:0 0;border:0;padding:0;font-size:1.05rem;font-weight:800}.mcard-title:after{content:"";border-radius:16px;position:absolute;inset:0}.mcard-title:focus-visible{outline:0}.mcard:has(.mcard-title:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.mcard-body{gap:6px;min-width:0;display:grid}.mcard-meta{flex-wrap:wrap;align-items:center;gap:6px;margin:0;display:flex}.mcard-snippet{color:var(--ink-2);overflow-wrap:anywhere;margin:0}.mcard-why{color:var(--brand);margin:0;font-size:.8rem;font-weight:700}.mcard-thumb{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;place-items:center;width:76px;height:76px;display:grid;overflow:hidden}.mcard-thumb img{object-fit:cover;width:100%;height:100%}.mcard-icon{color:#fff;border:0;font-size:.85rem;font-weight:800}.mcard-icon-pdf{background:linear-gradient(135deg,#ff7a59,#e5484d)}.mcard-icon-link{background:linear-gradient(135deg,#2fd0b5,#0a8f94);font-size:1.6rem}.mcard-icon-image{background:linear-gradient(135deg,#5ab0ff,#3b6cf0)}mark{color:inherit;background:#ffe58a;border-radius:3px;padding:0 1px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) mark{background:#7a5d00}}:root[data-theme=dark] mark{background:#7a5d00}.mtags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.mtags li{color:var(--admin-fg);background:var(--admin-bg);border-radius:999px;align-items:center;gap:4px;padding:2px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.mtags li:before{content:"#";opacity:.6}.mtags-edit li:before{content:none}.mtags-edit button{width:18px;height:18px;color:inherit;background:0 0;border:0;border-radius:50%;padding:0;font-size:1rem;line-height:1}.mtags-edit button:hover{background:#0000001f}.tag-input{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;outline:0;width:100%;min-height:40px;margin-top:8px;padding:0 12px}.tag-input:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--focus)}.form-tight{padding:0}.field textarea.short{min-height:0;font-family:inherit;font-size:.95rem}.mdesc{white-space:pre-wrap;color:var(--ink-2);margin:0}.mfiles{gap:16px;margin:0 0 12px;padding:0;list-style:none;display:grid}.mfile-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.mfile-bar small{color:var(--muted);overflow-wrap:anywhere}.page-img{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;overflow:hidden}.page-img img{width:100%;height:auto;display:block}.page-img.is-turned{position:relative}.page-img.is-turned img{width:auto;max-width:none;position:absolute;top:50%;left:50%}.add-files{gap:8px}.chosen{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.chosen li{background:var(--surface-2);overflow-wrap:anywhere;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:4px 4px 4px 12px;display:flex}.grouping{border:1px solid var(--line);border-radius:14px;gap:8px;margin:12px 0 0;padding:12px 14px;display:grid}.syl-pick{border:0;gap:8px;margin:0;padding:0;display:grid}.hint-inline{color:var(--muted)}.chosen .btn{min-height:28px}@media (width<=720px){.side-search{display:none}.mcard{grid-template-columns:56px minmax(0,1fr);gap:12px}.mcard-thumb{width:56px;height:56px}}.engines{border:0;gap:10px;margin:0;padding:0;display:grid}.engine{cursor:pointer;border:1px solid var(--line);background:var(--surface-2);border-radius:14px;align-items:flex-start;gap:14px;padding:14px 16px;transition:border-color .12s,background .12s;display:flex;position:relative}.engine:hover:not(.is-unready){border-color:var(--brand)}.engine.on{border-color:var(--brand);background:var(--brand-soft)}.engine.is-unready{cursor:not-allowed;opacity:.75}.engine input{width:18px;height:18px;accent-color:var(--brand);flex:none;margin-top:4px}.engine:has(input:focus-visible){outline:3px solid var(--focus);outline-offset:2px}.engine-main{gap:3px;min-width:0;display:grid}.engine-main small{color:var(--ink-2)}.engine-main .where{color:var(--teacher-fg);font-weight:700}.engine-main .where-out{color:var(--amber-fg)}.engine-main .needs{color:var(--muted)}.engine code{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:1px 6px;font-size:.82em}.daily{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;gap:12px;padding:18px 20px;display:grid}.daily h3{font-size:1rem}.daily .hint{margin:0}.meter{gap:6px;display:grid}.meter p{margin:0}.meter-bar{background:var(--line);border-radius:999px;height:12px;overflow:hidden}.meter-bar i{background:linear-gradient(90deg, var(--brand), var(--brand-2));border-radius:999px;height:100%;transition:width .3s;display:block}.meter.is-full .meter-bar i{background:linear-gradient(90deg,#f59e0b,#e5484d)}.spark{align-items:flex-end;gap:8px;height:64px;margin:0;padding:0;list-style:none;display:flex}.spark li{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:4px;height:100%;display:flex}.spark li i{background:var(--brand-2);opacity:.8;border-radius:6px 6px 2px 2px;width:100%;max-width:28px;display:block}.spark li:last-child i{background:var(--brand);opacity:1}.spark small{color:var(--muted);font-size:.7rem}.daily-form{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.daily-form .field{max-width:180px}.daily-form input{border:1px solid var(--line);background:var(--surface);border-radius:12px;width:100%;min-height:44px;padding:0 14px}.state{align-items:center;gap:8px;margin:0 0 8px;font-weight:700;display:flex}.notice>p{margin:0 0 8px}.aisummary{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;justify-items:start;gap:8px;margin:8px 0;padding:14px 16px;display:grid}.aisummary p{color:var(--ink-2);margin:0}.suggested{justify-items:start;gap:8px;margin:12px 0;display:grid}.suggested-list{gap:6px;width:100%;margin:0;padding:0;list-style:none;display:grid}.suggested-list li{background:var(--surface-2);border:1px dashed var(--brand-2);border-radius:12px;align-items:center;gap:8px;padding:6px 6px 6px 12px;display:flex}.suggested-list li span{overflow-wrap:anywhere;flex:1;font-weight:700}.readpages{margin:10px 0}.readpages>summary,.readpages details>summary{cursor:pointer;color:var(--ink-2);padding:6px 0;font-weight:700}.readpages ol{gap:12px;margin:6px 0 0;padding-left:20px;display:grid}.readpages li p{color:var(--ink-2);margin:2px 0 0}.readpages pre{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;max-height:240px;margin:6px 0 0;padding:10px 12px;font-family:inherit;font-size:.9rem;overflow:auto}.model-form{grid-template-columns:1fr 1fr;gap:12px;display:grid}.model-form input{border:1px solid var(--line);background:var(--surface);border-radius:12px;width:100%;min-height:44px;padding:0 14px}@media (width<=720px){.model-form{grid-template-columns:1fr}}.cgrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,560px),1fr));gap:16px;display:grid}.ccard{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);align-content:start;gap:10px;padding:18px;display:grid}.ccard.is-archived{opacity:.75}.ccard-head{justify-content:space-between;align-items:start;gap:10px;display:flex}.ccard-head h2{overflow-wrap:anywhere;margin:0;font-size:1.1rem}.ccard-head p{margin:2px 0 0}.ccard-desc{color:var(--ink-2);overflow-wrap:anywhere;margin:0}.ccard-actions{flex-wrap:wrap;gap:8px;display:flex}.roster{gap:4px;margin:0;padding:0;list-style:none;display:grid}.roster small{color:var(--muted);margin-left:6px}.subhead{color:var(--muted);margin:28px 0 12px;font-size:1rem}.muted{color:var(--muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.roster-rows{gap:8px;margin-top:8px}.roster-rows li{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.roster-rows li>span:nth-child(2){overflow-wrap:anywhere;flex:auto;min-width:0}.skill-cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.skill-card{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);justify-content:space-between;align-items:start;gap:12px;padding:16px 18px;display:flex}.skill-card.is-archived{opacity:.7}.skill-card h3{overflow-wrap:anywhere;margin:0 0 4px;font-size:1.02rem}.skill-card p{margin:0 0 6px}.skill-card-main{min-width:0}a.pill{text-decoration:none}.student-skills{gap:14px;display:grid}.student-skills h4{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:14px 0 8px;font-size:.85rem}.skill-rows{gap:12px;margin:0;padding:0;list-style:none;display:grid}.skill-row{background:var(--surface);border:1px solid var(--line);border-radius:14px;gap:8px;padding:14px;display:grid}.skill-row-head{justify-content:space-between;align-items:start;gap:10px;display:flex}.skill-row-head strong{margin-right:6px}.skill-row-head small{margin-top:2px;display:block}.skill-row-meta{color:var(--muted);white-space:nowrap;font-size:.8rem}.skill-row-actions{flex-wrap:wrap;gap:8px;margin:0;display:flex}.levels{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.level{text-align:center;font:inherit;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);border-radius:10px;padding:8px 2px;font-size:.78rem;font-weight:700}button.level{cursor:pointer}button.level:hover:not(:disabled){border-color:var(--brand);color:var(--ink)}.level.on{color:#fff;background:linear-gradient(135deg, var(--brand), var(--brand-2));border-color:#0000}.level-1.on{background:#d9731a}.level-2.on{background:#0f9a8b}.level-3.on{background:linear-gradient(135deg, var(--brand), var(--brand-2))}.rating-legend{flex-wrap:wrap;gap:8px 20px;margin:0;display:flex}.rating-legend>div{align-items:center;gap:8px;display:flex}.rating-legend dt,.rating-legend dd{margin:0}.rating-legend dd{color:var(--muted);font-size:.88rem}.rating-legend .level{padding:4px 10px}.req-subject{border:1.5px solid var(--section-line);background:var(--surface-2);border-radius:14px;gap:10px;padding:14px 16px;display:grid}.req-subject h4,.req-topic h5{margin:0}.req-topic h5{color:var(--ink-2);font-size:.9rem}.req-add{grid-template-columns:1fr 1fr;align-items:end;gap:8px;display:grid}.req-add .field-wide{grid-column:1/-1}.req-add select,.req-add input{border:1.5px solid var(--field-line);background:var(--surface);border-radius:12px;width:100%;min-height:40px;padding:0 10px}@media (width<=720px){.req-add{grid-template-columns:1fr}}.skill-history{gap:6px;margin:0;padding-left:18px;font-size:.9rem;display:grid}.skill-history p{color:var(--ink-2);margin:2px 0 0}fieldset.field{border:0;margin:0;padding:0}fieldset.field legend{margin-bottom:6px;padding:0;font-weight:700}.linklike{font:inherit;color:var(--brand);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-weight:700;text-decoration:underline}.linklike:hover{color:var(--brand-2)}.pill-skill{color:var(--student-fg);background:var(--student-bg)}.skill-links{gap:8px;margin:0 0 8px;padding:0;list-style:none;display:grid}.skill-links li{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.skill-add{flex-wrap:wrap;gap:8px;display:flex}.skill-add select{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;min-height:40px;padding:0 10px}.syllabi li{align-items:center;gap:8px;display:flex}.syllabi li .syllabus{flex:auto;width:auto;min-width:0}.topics-head{justify-content:space-between;align-items:center;margin-bottom:8px}.topic-tree{gap:2px;margin:0;padding:0;list-style:none;display:grid}.topic{align-items:baseline;gap:8px;padding-top:3px;padding-bottom:3px;display:flex}.topic-code{min-width:3.2em;color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:.88rem}.topic-group{font-weight:700}.topic.is-retired{color:var(--muted);text-decoration:line-through}.outline-edit{border:1px solid var(--line,#d8d4cc);resize:vertical;background:var(--surface,#fff);width:100%;color:inherit;border-radius:10px;margin-bottom:10px;padding:10px 12px;font:.88rem/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.95em}.head-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.head-actions select{border:1px solid var(--line);background:var(--surface);border-radius:12px;min-height:44px;padding:0 12px}.work-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.work-row{border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm);color:inherit;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;text-decoration:none;display:flex}.work-row:hover{border-color:var(--brand)}.work-main{gap:2px;min-width:0;display:grid}.work-main strong{overflow-wrap:anywhere}.work-main small{color:var(--muted)}.work-meta{flex-wrap:wrap;gap:6px;display:flex}.work-card{gap:12px;margin-bottom:16px;padding:18px 20px;display:grid}.work-card h2,.work-card h3{margin:0}.work-instructions{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.mark-line{background:var(--admin-bg);color:var(--ink);border-radius:12px;margin:0;padding:10px 14px}.page-strip{flex-wrap:wrap;gap:14px;display:flex}.page-pair{gap:8px;display:flex}.page-thumb{width:120px;color:inherit;gap:4px;text-decoration:none;display:grid}.page-thumb img,.page-thumb-pdf{object-fit:cover;border:1px solid var(--line);background:var(--surface-2);border-radius:10px;width:120px;height:160px}.page-thumb-pdf{color:var(--muted);place-items:center;font-weight:800;display:grid}.page-thumb small{color:var(--muted);font-size:.78rem}.scan-list{gap:8px;margin:0 0 12px;padding:0;list-style:none;display:grid}.scan-list li{border:1px solid var(--line);background:var(--surface);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex}.scan-list li.is-picked{border-color:var(--brand);background:var(--surface-2)}.scan-list label{cursor:pointer;flex:auto;align-items:center;gap:10px;min-width:0;display:flex}.scan-order{color:#fff;background:var(--brand);visibility:hidden;border-radius:50%;place-items:center;min-width:24px;height:24px;font-size:.8rem;font-weight:800;display:inline-grid}.is-picked .scan-order{visibility:visible}.scan-main{gap:2px;min-width:0;display:grid}.scan-main small{color:var(--muted)}.scan-action{gap:10px;display:grid}.student-row{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 14px}.student-row-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.student-row-head strong{margin-right:auto}.student-panel{border-top:1px solid var(--line);gap:14px;margin-top:12px;padding-top:12px;display:grid}.student-tools{flex-wrap:wrap;align-items:end;gap:10px;display:flex}.mode-tabs{flex-wrap:wrap;gap:8px;display:flex}textarea{font:inherit;border:1px solid var(--line);background:var(--surface-2);border-radius:12px;width:100%;padding:10px 14px}:root{--field-line:#8f89c4;--section-line:#cfcbea}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--field-line:#7d78bd;--section-line:#4a4580}}:root[data-theme=dark]{--field-line:#7d78bd;--section-line:#4a4580}.model-form.dialog-form{grid-template-columns:1fr;gap:16px}.panel>.dialog-form{padding:8px 24px 24px}.dialog-form .field input:not([type=checkbox]):not([type=radio]),.dialog-form .field select,.dialog-form .field textarea{border:1.5px solid var(--field-line);background:var(--surface);border-radius:12px;width:100%;min-height:44px;padding:0 14px}.dialog-form .form-section>textarea{border:1.5px solid var(--field-line);background:var(--surface);width:100%;font:inherit;resize:vertical;border-radius:12px;padding:10px 14px}.dialog-form .form-section>textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--focus);outline:0}.dialog-form .attach-link input{border:1.5px solid var(--field-line);background:var(--surface)}.dialog-form .field input:not([type=checkbox]):not([type=radio]):focus,.dialog-form .field select:focus,.dialog-form .field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px var(--focus)}.dialog-form .check,.give-more .check{color:var(--ink);align-items:center;gap:10px;font-weight:500;display:flex}.model-form .check input[type=checkbox],.dialog-form .check input[type=checkbox],.model-form .req-pick input[type=radio],.dialog-form .req-pick input[type=radio]{flex:none;width:16px;height:16px;min-height:0;margin:0;padding:0}.check-list{border:1.5px solid var(--field-line);border-radius:12px;gap:8px;max-height:200px;margin:0;padding:10px 14px;list-style:none;display:grid;overflow:auto}.give-more{margin-top:16px}.form-section{border:1.5px solid var(--section-line);background:var(--surface-2);border-radius:14px;gap:12px;min-width:0;margin:0;padding:14px 16px 16px;display:grid}.form-section>legend{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);padding:0 8px;font-size:.82rem;font-weight:800}.form-section .field{gap:6px}.attachments{gap:10px}.attach-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.attach-list li{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.attach-list a,.attach-list li>span:first-child{overflow-wrap:anywhere}.attach-add{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.attach-file{cursor:pointer;position:relative}.attach-file input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.attach-file:focus-within{box-shadow:0 0 0 4px var(--focus)}.attach-link{grid-template-columns:1fr 1fr auto;gap:8px;display:grid}@media (width<=720px){.attach-link{grid-template-columns:1fr}}.dash h2{margin-top:0}.dash-stats{flex-wrap:wrap;gap:12px;margin:0 0 8px;display:flex}.dash-stat{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;gap:2px;min-width:150px;margin:0;padding:12px 16px;display:grid}.dash-stat strong{letter-spacing:-.02em;font-size:1.8rem;line-height:1.1}.dash-stat small{color:var(--muted)}.dash-warn{border-color:#f5b942}.dash-bad{border-color:#e5604d}.scan-picker{gap:12px;display:grid}.scan-upload{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.attach-file.is-disabled{opacity:.6;pointer-events:none}.unresolved-card{border:1.5px solid #f5b942;padding:16px 20px}.unresolved-card h2{margin-top:0}.skill-card.unresolved{align-items:flex-start;gap:16px}.unresolved-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.source-list{gap:4px;margin:6px 0 0;padding:0;font-size:.92rem;list-style:none;display:grid}.source-list small{color:var(--muted)}.marking-notes{border:1.5px solid var(--section-line);background:var(--surface-2);border-radius:12px;gap:8px;margin-top:12px;padding:12px 14px;display:grid}.marking-notes h3{margin:0}.note-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.note-list li{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.topic-list{max-height:240px}.topic-list .check{align-items:flex-start}.topic-list .check input[type=checkbox]{margin-top:3px}.skill-pick{gap:12px;max-height:260px}.skill-pick-head{letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2);margin:0 0 4px;font-size:.78rem;font-weight:800}.skill-pick-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.skill-desc{display:block}.skill-chips{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.skill-chips li{background:var(--teacher-bg);color:var(--teacher-fg);border-radius:999px;align-items:center;gap:6px;padding:4px 6px 4px 12px;font-size:.88rem;font-weight:600;display:inline-flex}.skill-chips li.is-locked{padding-right:12px}.skill-chips button{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:2px 6px;font-size:1rem;line-height:1}.skill-chips button:hover{background:#0000001a}.req-pick{gap:6px;max-height:300px;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.req-pick label{border:1px solid var(--field-line);cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.req-pick label span:first-of-type{flex:1}.roster li small{margin-left:0}.roster-skills{font-size:.85rem}.obs-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.obs-list li{border:1px solid var(--field-line);border-radius:10px;grid-template-columns:1fr auto;place-items:start;gap:4px 12px;padding:10px 12px;display:grid}.obs-list li>button{grid-area:1/2/span 2;justify-self:end}.obs-list p{margin:0}.roster li{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:6px 0;display:flex}.roster li:first-child{border-top:0}.roster-who{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.roster-who small{text-overflow:ellipsis;max-width:100%;overflow:hidden}.roster-actions{white-space:nowrap;flex-wrap:nowrap;flex-shrink:0;justify-content:flex-end;gap:12px;margin-left:auto;font-size:.78rem;display:flex}.roster-who .linklike,.roster-who small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.ccard-edit{margin-left:auto;font-size:.85rem}.roster-more{border:1px solid var(--field-line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:8px;flex-shrink:0;width:36px;height:32px;font-size:1.2rem;line-height:1}.action-menu{gap:8px;padding:8px 24px 24px;display:grid}.tiles-note{margin:8px 0 0}.class-row{color:inherit;flex-wrap:wrap;align-items:center;gap:10px;padding:4px 0;text-decoration:none;display:flex}.class-row-main{flex-direction:column;flex:220px;min-width:0;display:flex}.class-row-main small{color:var(--muted)}.class-row:hover strong{text-decoration:underline}.nav-group{letter-spacing:.08em;text-transform:uppercase;color:#ffffff80;margin:14px 14px 2px;font-size:.72rem;font-weight:800}.nav-sub{gap:4px;display:grid}@media (width<=860px){.nav-group{display:none}.nav-sub{gap:4px;display:flex}}:root{--obs-praise:#0f9a8b;--obs-error:#e5604d;--obs-prompt:#f2a20c;--obs-track:#eceaf7}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--obs-praise:#2fd0b5;--obs-error:#ff8a78;--obs-prompt:#ffbf47;--obs-track:#2b2858}}:root[data-theme=dark]{--obs-praise:#2fd0b5;--obs-error:#ff8a78;--obs-prompt:#ffbf47;--obs-track:#2b2858}.obs-page{gap:20px;display:grid}.obs-bar{--c:var(--obs-prompt)}.obs-bar.k-praise{--c:var(--obs-praise)}.obs-bar.k-error{--c:var(--obs-error)}.obs-bar.k-prompt{--c:var(--obs-prompt)}.obs-legend{color:var(--ink-2);flex-wrap:wrap;gap:6px 16px;margin:0 0 10px;padding:0;font-size:.85rem;list-style:none;display:flex}.obs-legend li{align-items:center;gap:6px;display:inline-flex}.obs-swatch{background:var(--c);border-radius:3px;width:10px;height:10px;display:inline-block}.obs-bars{gap:6px;margin:0;padding:0;list-style:none;display:grid}.obs-bars li{grid-template-columns:minmax(120px,230px) 1fr 40px;align-items:center;gap:12px;display:grid}.obs-name{color:var(--ink);overflow-wrap:anywhere;font-size:.9rem}.obs-track{background:var(--obs-track);border-radius:5px;height:10px}.obs-fill{background:var(--c);border-radius:0 4px 4px 0;min-width:3px;height:10px}.obs-val{font-variant-numeric:tabular-nums;text-align:right;color:var(--ink);font-weight:700}.obs-freq{border-collapse:collapse;width:100%;font-size:.88rem}.obs-freq th,.obs-freq td{text-align:left;border-top:1px solid var(--line);vertical-align:middle;padding:6px 8px}.obs-freq thead th{color:var(--muted);border-top:0;font-size:.78rem;font-weight:700}.obs-freq td.num,.obs-freq th.num{text-align:right;font-variant-numeric:tabular-nums}.obs-spark{display:block}.obs-spark rect{fill:var(--c)}.obs-trends{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.obs-trend-list{gap:8px;margin:8px 0 0;padding:0;list-style:none;display:grid}.obs-trend-list li{border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:8px 10px;display:flex}.obs-trend-list .obs-name{flex:140px}.obs-trend-list small{color:var(--muted)}.obs-head{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.written-body{gap:16px;display:grid}.card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.card-head h2{margin:0}.steps{gap:12px;margin:0;padding-left:20px;display:grid}.usage-table{border-collapse:collapse;width:100%;font-size:.9rem}.usage-table th,.usage-table td{text-align:left;border-top:1px solid var(--line);vertical-align:top;padding:8px 10px}.usage-table thead th{color:var(--muted);border-top:0;font-size:.78rem;font-weight:700}.usage-table .num{text-align:right;font-variant-numeric:tabular-nums}.usage-table tbody th{font-weight:700}.usage-table tbody th small{color:var(--muted);font-weight:400;display:block}.ai-days{width:100%;height:70px;display:block}.ai-days rect{fill:var(--brand)}.check-rows{gap:8px;margin:0;padding:0;list-style:none;display:grid}.check-rows li{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.check-rows small{color:var(--muted);flex:220px}.tool-buttons{flex-wrap:wrap;gap:10px;margin:0;display:flex}.centre-name{color:#ffffffb3;overflow-wrap:anywhere;margin:-6px 0 4px;font-size:.8rem;font-weight:700}@media (width<=860px){.centre-name{display:none}}.facts{grid-template-columns:max-content 1fr;gap:6px 18px;margin:0;display:grid}.facts dt{color:var(--muted);font-size:.85rem;font-weight:700}.facts dd{overflow-wrap:anywhere;margin:0}.row-actions{white-space:nowrap;justify-content:flex-end;gap:14px;display:flex}.guide-steps{counter-reset:none;gap:22px;margin:8px 0 0;padding:0;list-style:none;display:grid}.guide-steps h3{align-items:center;gap:10px;margin:0 0 6px;font-size:1.05rem;display:flex}.step-no{background:var(--brand);color:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:.9rem;font-weight:800;display:inline-grid}.step-body{gap:10px;margin-left:38px;display:grid}.step-body p,.step-body ul,.step-body ol{margin:0}.step-body ul,.step-body ol{gap:8px;padding-left:22px;display:grid}.step-body code{background:var(--surface-2);overflow-wrap:anywhere;border-radius:6px;padding:1px 6px;font-size:.88em}.copyable{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.guide-index{margin:0;padding-left:20px}@media (width<=640px){.step-body{margin-left:0}}
