@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,[data-theme=light]{--surface:#eceef2;--surface-raised:#fff;--surface-sunk:#f3f4f7;--line:#e2e4ea;--line-strong:#b9bec8;--ink:#15161a;--ink-muted:#5f6470;--focus:#15161a;--primary:#15161a;--on-primary:#fff;--lime:#d4f06a;--on-lime:#15161a;--maroon:#a31d33;--on-maroon:#fff;--maroon-soft:#fbe4e7;--sun:#f5b83d;--on-sun:#15161a;--ongoing:#9a5300;--ongoing-soft:#ffefd6;--upcoming:#2349c4;--upcoming-soft:#e2eaff;--done:#16753a;--done-soft:#def6e4;--overdue:#b8233a;--overdue-soft:#ffe2e6;--ai:#6236c9;--ai-soft:#ece5ff;--bg-a:#f1f2f5;--bg-b:#e6e3f0;--shadow-card:0 1px 2px #11131a0a, 0 10px 30px #11131a0f;--shadow-pop:0 18px 48px #11131a29}[data-theme=dark]{--surface:#0d0e11;--surface-raised:#16181c;--surface-sunk:#1e2126;--line:#2a2d34;--line-strong:#555b66;--ink:#f2f3f5;--ink-muted:#a2a7b2;--focus:#f2f3f5;--primary:#f2f3f5;--on-primary:#111214;--lime:#c8e65c;--on-lime:#111214;--maroon:#f28b9b;--on-maroon:#2a0b10;--maroon-soft:#3d1820;--sun:#e9a92f;--on-sun:#111214;--ongoing:#f6b45a;--ongoing-soft:#3a2a12;--upcoming:#93b2ff;--upcoming-soft:#18264a;--done:#72dc98;--done-soft:#15331f;--overdue:#ff8d9d;--overdue-soft:#3d1820;--ai:#bba3ff;--ai-soft:#2a2050;--bg-a:#0d0e11;--bg-b:#141221;--shadow-card:0 1px 2px #0006, 0 10px 30px #0000004d;--shadow-pop:0 18px 48px #0009}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--surface:#0d0e11;--surface-raised:#16181c;--surface-sunk:#1e2126;--line:#2a2d34;--line-strong:#555b66;--ink:#f2f3f5;--ink-muted:#a2a7b2;--focus:#f2f3f5;--primary:#f2f3f5;--on-primary:#111214;--lime:#c8e65c;--on-lime:#111214;--maroon:#f28b9b;--on-maroon:#2a0b10;--maroon-soft:#3d1820;--sun:#e9a92f;--on-sun:#111214;--ongoing:#f6b45a;--ongoing-soft:#3a2a12;--upcoming:#93b2ff;--upcoming-soft:#18264a;--done:#72dc98;--done-soft:#15331f;--overdue:#ff8d9d;--overdue-soft:#3d1820;--ai:#bba3ff;--ai-soft:#2a2050;--bg-a:#0d0e11;--bg-b:#141221;--shadow-card:0 1px 2px #0006, 0 10px 30px #0000004d;--shadow-pop:0 18px 48px #0009}}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-12:48px;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-xl:28px;--radius-pill:999px;--font-display:"Plus Jakarta Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-sans:"Plus Jakarta Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono Variable", ui-monospace, "SF Mono", Consolas, monospace}*,:before,:after{box-sizing:border-box}body{font-family:var(--font-sans);background:var(--surface);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:24px}button,input{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3,p{margin:0}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}[data-tone=ongoing]{--tone:var(--ongoing);--tone-soft:var(--ongoing-soft)}[data-tone=upcoming]{--tone:var(--upcoming);--tone-soft:var(--upcoming-soft)}[data-tone=done]{--tone:var(--done);--tone-soft:var(--done-soft)}[data-tone=overdue]{--tone:var(--overdue);--tone-soft:var(--overdue-soft)}[data-tone=ai]{--tone:var(--ai);--tone-soft:var(--ai-soft)}[data-tone=brand]{--tone:var(--maroon);--tone-soft:var(--maroon-soft)}.ml-stage{padding:var(--space-6);gap:var(--space-4);flex-wrap:wrap;align-items:center;display:flex}.ml-stage-col{flex-direction:column;align-items:stretch}.ml-stage>.ml-grow{flex:280px;min-width:0}i[data-ic]{flex:none;width:20px;height:20px;display:inline-flex}i[data-ic] svg{width:100%;height:100%;display:block}.ml-meta{color:var(--ink-muted);font-size:14px;font-weight:500;line-height:20px}.ml-code{font-family:var(--font-mono);color:var(--ink-muted);font-size:13px;font-weight:500;line-height:18px}.ml-kbd{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--surface-sunk);color:var(--ink-muted);border:1px solid var(--line);padding:0 6px;font-size:12px;line-height:20px}.ml-section-title{font-family:var(--font-display);font-size:20px;font-weight:700;line-height:26px}.ml-btn{justify-content:center;align-items:center;gap:var(--space-2);height:44px;padding:0 var(--space-5);border-radius:var(--radius-pill);color:var(--ink);white-space:nowrap;background:0 0;border:1px solid #0000;font-size:15px;font-weight:600;text-decoration:none;transition:transform .15s ease-out,opacity .15s ease-out;display:inline-flex}.ml-btn:active{transform:scale(.98)}.ml-btn-secondary{background:var(--surface-raised);border-color:var(--line-strong)}.ml-btn-ghost{color:var(--maroon);padding:0 var(--space-3)}.ml-btn-ai{background:var(--ai-soft);color:var(--ai)}.ml-btn-sm{height:36px;padding:0 var(--space-4);font-size:13px}.ml-btn-block{width:100%;display:flex}.ml-btn[disabled]{opacity:.45;cursor:not-allowed}.ml-btn i[data-ic]{width:18px;height:18px}.ml-icon-btn{border-radius:var(--radius-pill);width:44px;height:44px;color:var(--ink-muted);background:0 0;border:0;flex:none;place-items:center;display:inline-grid}.ml-icon-btn:hover{background:var(--surface-sunk);color:var(--ink)}.ml-badge,.ml-countdown{align-items:center;gap:var(--space-1);border-radius:var(--radius-pill);background:var(--tone-soft,var(--surface-sunk));height:24px;color:var(--tone,var(--ink));white-space:nowrap;padding:0 10px;font-size:12px;font-weight:600;line-height:16px;display:inline-flex}.ml-badge i[data-ic],.ml-countdown i[data-ic]{width:14px;height:14px}.ml-countdown{font-family:var(--font-mono);height:28px;font-size:13px;font-weight:500}.ml-timer{align-items:flex-end;gap:var(--space-2);display:inline-flex}.ml-timer-seg{min-width:56px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--tone-soft,var(--surface-sunk));color:var(--tone,var(--ink));justify-items:center;gap:2px;display:grid}.ml-timer-seg b{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:28px;font-weight:800;line-height:30px}.ml-timer-seg span{font-size:12px;font-weight:600;line-height:16px}.ml-field{gap:var(--space-2);min-width:0;display:grid}.ml-field>label{font-size:13px;font-weight:600;line-height:16px}.ml-input{align-items:center;gap:var(--space-2);height:48px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink-muted);display:flex}.ml-input input{min-width:0;height:100%;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:16px}.ml-input input::placeholder{color:var(--ink-muted);opacity:1}.ml-input:focus-within{outline:2px solid var(--focus);outline-offset:2px}.ml-input-mono input{font-family:var(--font-mono)}.ml-field[data-state=ok] .ml-input{border-color:var(--done);color:var(--done)}.ml-field[data-state=error] .ml-input{border-color:var(--maroon);border-width:2px}.ml-hint{align-items:center;gap:var(--space-1);color:var(--ink-muted);font-size:14px;font-weight:500;line-height:20px;display:flex}.ml-hint i[data-ic]{width:16px;height:16px}.ml-field[data-state=ok] .ml-hint{color:var(--done)}.ml-field[data-state=error] .ml-hint{color:var(--maroon)}.ml-seg{border-radius:var(--radius-pill);background:var(--surface-sunk);gap:2px;max-width:100%;padding:4px;display:inline-flex}.ml-seg button{height:36px;padding:0 var(--space-4);border-radius:var(--radius-pill);color:var(--ink-muted);white-space:nowrap;background:0 0;border:0;align-items:center;gap:6px;font-size:13px;font-weight:600;display:inline-flex}.ml-seg-block{display:flex}.ml-seg-block button{padding:0 var(--space-2);flex:1;justify-content:center}.ml-count{font-family:var(--font-mono);color:var(--tone,var(--ink-muted));font-size:12px;font-weight:500}.ml-tabs{gap:var(--space-2);scrollbar-width:none;padding:2px;display:flex;overflow-x:auto}.ml-tabs::-webkit-scrollbar{display:none}.ml-tab{align-items:center;gap:var(--space-2);height:40px;padding:0 var(--space-4);border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface-raised);color:var(--ink);white-space:nowrap;flex:none;font-size:13px;font-weight:600;display:inline-flex}.ml-tab i[data-ic]{width:18px;height:18px}.ml-tab .ml-count{color:var(--ink-muted)}.ml-card{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.ml-tile{border-radius:var(--radius-md);background:var(--tone-soft,var(--surface-sunk));width:44px;height:44px;color:var(--tone,var(--ink));flex:none;place-items:center;display:grid}.ml-progress{border-radius:var(--radius-sm);background:var(--surface-sunk);height:8px;overflow:hidden}.ml-progress>span{border-radius:var(--radius-sm);background:var(--tone,var(--maroon));height:100%;display:block}.ml-task{align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-wrap:wrap;display:flex}.ml-task-main{flex:200px;gap:2px;min-width:0;display:grid}.ml-task-title{overflow-wrap:anywhere;font-size:16px;font-weight:700;line-height:22px}.ml-task-side{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin-left:auto;display:flex}.ml-task[data-tone=overdue] .ml-task-title{color:var(--ink-muted)}.ml-task-stack .ml-task-side{flex:100%;justify-content:space-between;margin-left:0}.ml-metric{align-items:start;gap:var(--space-1) var(--space-3);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);grid-template-columns:1fr auto;min-width:0;display:grid}.ml-metric .ml-tile{grid-area:1/2/span 2}.ml-metric-num{font-family:var(--font-display);letter-spacing:-.02em;color:var(--tone,var(--ink));font-variant-numeric:tabular-nums;font-size:40px;font-weight:800;line-height:44px}.ml-metric-label{font-size:14px;font-weight:600;line-height:20px}.ml-art{width:100%;height:100%;display:block}.ml-art .s1{fill:var(--tone,var(--maroon))}.ml-art .s2{fill:var(--sun)}.ml-art .s3{fill:var(--surface-raised)}.ml-art .s4{fill:var(--ink)}.ml-course{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);flex-direction:column;min-width:0;display:flex;overflow:hidden}.ml-course-art{background:var(--tone-soft,var(--surface-sunk));height:96px;overflow:hidden}.ml-course-body{gap:var(--space-2);padding:var(--space-4);display:grid}.ml-course-title{overflow-wrap:anywhere;font-size:16px;font-weight:700;line-height:22px}.ml-course-foot{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.ml-list{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);overflow:hidden}.ml-row{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);display:flex}.ml-row+.ml-row{border-top:1px solid var(--line)}.ml-row-main{flex:1;gap:2px;min-width:0;display:grid}.ml-row-title{overflow-wrap:anywhere;font-size:16px;font-weight:600;line-height:22px}.ml-row-actions{flex:none;align-items:center;display:flex}.ml-check{border-radius:var(--radius-pill);border:2px solid var(--line-strong);color:#0000;background:0 0;flex:none;place-items:center;width:28px;height:28px;margin:8px;padding:0;display:grid}.ml-check i[data-ic]{width:16px;height:16px}.ml-check[aria-pressed=true]{background:var(--done);border-color:var(--done);color:var(--surface-raised)}.ml-enroll{gap:var(--space-3);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);min-width:0;display:grid}.ml-enroll-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);display:flex}.ml-enroll-title{overflow-wrap:anywhere;font-size:16px;font-weight:700;line-height:22px}.ml-enroll-foot{align-items:center;gap:var(--space-2);display:flex}.ml-enroll-foot .ml-input{flex:1;min-width:0}.ml-ai{gap:var(--space-4);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);min-width:0;display:grid}.ml-ai-head{align-items:center;gap:var(--space-3);display:flex}.ml-ai-head>div{flex:1;min-width:0}.ml-ai-title{font-size:16px;font-weight:700;line-height:22px}.ml-ai-body{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--ai-soft);color:var(--ink)}.ml-ai-body b{color:var(--ai)}.ml-confidence{align-items:center;gap:var(--space-3);grid-template-columns:auto 1fr auto;display:grid}.ml-confidence b{font-family:var(--font-mono);color:var(--ai);font-size:13px;font-weight:500}.ml-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.ml-chip{border-radius:var(--radius-sm);background:var(--surface-sunk);height:28px;color:var(--ink);align-items:center;gap:6px;padding:0 10px;font-size:13px;font-weight:500;display:inline-flex}.ml-chip i[data-ic]{width:14px;height:14px;color:var(--ink-muted)}.ml-ai-foot{gap:var(--space-2);flex-wrap:wrap;display:flex}.ml-hero{border-radius:var(--radius-xl);background:var(--sun);min-height:176px;color:var(--on-sun);--tone:var(--maroon);align-items:stretch;display:flex;position:relative;overflow:hidden}.ml-hero-text{z-index:1;align-content:center;gap:var(--space-2);padding:var(--space-6);flex:60%;min-width:0;display:grid;position:relative}.ml-hero-kicker{font-size:13px;font-weight:600;line-height:16px}.ml-hero-title{font-family:var(--font-display);letter-spacing:-.02em;font-size:40px;font-weight:800;line-height:44px}.ml-hero-sub{max-width:36ch;font-size:16px;font-weight:500;line-height:24px}.ml-hero-art{flex:0 300px;align-self:stretch;min-width:120px}.ml-hero .ml-art .s2{fill:var(--on-sun)}.ml-hero-compact{min-height:132px}.ml-hero-compact .ml-hero-text{padding:var(--space-4)}.ml-hero-compact .ml-hero-title{font-size:28px;line-height:34px}.ml-hero-compact .ml-hero-sub{font-size:14px;line-height:20px}.ml-hero-compact .ml-hero-art{flex-basis:120px;min-width:96px}.ml-nav{gap:var(--space-1);width:248px;padding:var(--space-5) var(--space-3);background:var(--surface-raised);border-right:1px solid var(--line);flex-direction:column;display:flex}.ml-nav-brand{padding:0 var(--space-3) var(--space-5);font-family:var(--font-display);letter-spacing:-.02em;align-items:baseline;font-size:22px;font-weight:800;line-height:26px;display:flex}.ml-nav-brand span{color:var(--maroon)}.ml-nav-item{align-items:center;gap:var(--space-3);height:44px;padding:0 var(--space-3);border-radius:var(--radius-md);color:var(--ink-muted);text-align:left;background:0 0;border:0;font-size:14px;font-weight:600;text-decoration:none;display:flex}.ml-nav-item:hover{background:var(--surface-sunk);color:var(--ink)}.ml-nav-item[aria-current=page]{background:var(--maroon-soft);color:var(--maroon)}.ml-nav-item .ml-count{margin-left:auto}.ml-nav-item[aria-current=page] .ml-count{color:var(--maroon)}.ml-nav-spacer{min-height:var(--space-6);flex:1}.ml-profile{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface-sunk);min-width:0;display:flex}.ml-avatar{border-radius:var(--radius-pill);background:var(--maroon);width:36px;height:36px;color:var(--on-maroon);flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.ml-profile-name{font-size:14px;font-weight:700;line-height:20px}.ml-profile .ml-meta{font-size:12px;line-height:16px}.ml-bar{padding:6px var(--space-2) calc(6px + env(safe-area-inset-bottom,0px));background:var(--surface-raised);border-top:1px solid var(--line);grid-auto-columns:1fr;grid-auto-flow:column;display:grid}.ml-bar-item{min-height:48px;color:var(--ink-muted);background:0 0;border:0;justify-items:center;gap:2px;padding:4px 0;font-size:12px;font-weight:600;line-height:16px;text-decoration:none;display:grid}.ml-bar-item i[data-ic]{box-sizing:content-box;border-radius:var(--radius-pill);width:22px;height:22px;padding:3px 16px}.ml-bar-item[aria-current=page]{color:var(--maroon)}.ml-bar-item[aria-current=page] i[data-ic]{background:var(--maroon-soft)}.ml-cmd{background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--radius-xl);width:100%;max-width:560px;box-shadow:var(--shadow-pop);overflow:hidden}.ml-cmd-input{align-items:center;gap:var(--space-3);height:56px;padding:0 var(--space-5);border-bottom:1px solid var(--line);color:var(--ink-muted);display:flex}.ml-cmd-input input{min-width:0;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:16px}.ml-cmd-group{padding:var(--space-3) var(--space-5) var(--space-1);color:var(--ink-muted);font-size:12px;font-weight:600;line-height:16px}.ml-cmd-list{padding:0 var(--space-2) var(--space-2);gap:2px;display:grid}.ml-cmd-item{align-items:center;gap:var(--space-3);min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:14px;font-weight:600;line-height:20px;display:flex}.ml-cmd-item>span:first-of-type{overflow-wrap:anywhere;flex:1;min-width:0}.ml-cmd-item i[data-ic]{color:var(--ink-muted)}.ml-cmd-item[aria-selected=true]{background:var(--surface-sunk)}.ml-cmd-item mark{background:var(--maroon-soft);color:var(--maroon);border-radius:4px;padding:0 2px}.ml-shell{background:var(--surface);grid-template-columns:248px 1fr;min-height:100%;display:grid}.ml-main{padding:var(--space-8);gap:var(--space-8);align-content:start;min-width:0;display:grid}.ml-topbar{align-items:center;gap:var(--space-3);display:flex}.ml-topbar .ml-input{flex:1;max-width:420px}.ml-topbar-end{align-items:center;gap:var(--space-1);margin-left:auto;display:flex}.ml-section{gap:var(--space-4);min-width:0;display:grid}.ml-section-head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.ml-cols-3{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.ml-stack{gap:var(--space-3);display:grid}.ml-phone{border:1px solid var(--line-strong);background:var(--surface);border-radius:40px;flex-direction:column;flex:none;width:390px;height:800px;display:flex;overflow:hidden}.ml-phone-body{padding:var(--space-5) var(--space-4) var(--space-4);gap:var(--space-4);flex:1;align-content:start;display:grid;overflow:hidden}.ml-phone-head{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.ml-phone-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:28px;font-weight:700;line-height:34px}@media (prefers-reduced-motion:reduce){.ml-btn{transition:none}}html,body,#root{min-height:100%}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-text-size-adjust:100%}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}a{color:inherit;text-decoration:none}.app{grid-template-columns:248px minmax(0,1fr);min-height:100dvh;display:grid}.app>.ml-nav{height:100dvh;position:sticky;top:0;overflow-y:auto}.app-main{width:100%;max-width:1184px;padding:var(--space-8);gap:var(--space-8);align-content:start;min-width:0;display:grid}.app-bar{display:none}.page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.page-sub{margin-top:var(--space-1)}.back-link{align-items:center;gap:var(--space-1);min-height:44px;color:var(--ink-muted);font-size:14px;font-weight:600;display:inline-flex}.back-link i[data-ic]{transform:rotate(180deg)}.dash-top{gap:var(--space-4);grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);display:grid}.dash-metrics{gap:var(--space-3);align-content:stretch;display:grid}.dash-metrics-pair{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.grid-cards{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.grid-metrics{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.filters{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.search-trigger{cursor:pointer;text-align:left;width:100%;max-width:680px;height:56px;padding:0 var(--space-5);border-radius:var(--radius-lg);box-shadow:var(--shadow-card)}.search-trigger>i[data-ic]{width:22px;height:22px}.search-trigger span:first-of-type{flex:1;font-size:17px}.empty{justify-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);border:1px dashed var(--line-strong);border-radius:var(--radius-lg);color:var(--ink-muted);text-align:center;font-size:14px;font-weight:500;display:grid}.note{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-sunk);color:var(--ink-muted);font-size:14px;font-weight:500;line-height:20px}.panel{gap:var(--space-4);padding:var(--space-5);max-width:640px;display:grid}.panel h2{font-family:var(--font-display);font-size:20px;font-weight:700;line-height:26px}.ml-row-title a:hover,.ml-task-title a:hover{text-decoration:underline}.panel.wide{max-width:860px}.facts{gap:var(--space-2) var(--space-4);grid-template-columns:max-content 1fr;margin:0;font-size:14px;line-height:20px;display:grid}.facts dt{color:var(--ink-muted);font-weight:600}.facts dd{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;font-weight:600;display:flex}.rich{overflow-wrap:anywhere;min-width:0;font-size:16px;line-height:24px}.rich>:first-child{margin-top:0}.rich>:last-child{margin-bottom:0}.rich p,.rich ul,.rich ol,.rich table,.rich pre,.rich blockquote{margin:0 0 var(--space-3)}.rich h1,.rich h2,.rich h3,.rich h4,.rich h5{font-family:var(--font-display);margin:var(--space-4) 0 var(--space-2);font-size:18px;font-weight:700;line-height:24px}.rich a{color:var(--maroon);text-decoration:underline}.rich img{border-radius:var(--radius-sm);max-width:100%;height:auto}.rich ul,.rich ol{padding-left:var(--space-5)}.rich table{border-collapse:collapse;max-width:100%;display:block;overflow-x:auto}.rich td,.rich th{border:1px solid var(--line);padding:var(--space-1) var(--space-2);text-align:left;vertical-align:top}.rich pre,.rich code{font-family:var(--font-mono);font-size:13px}.rich pre{padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface-sunk);overflow-x:auto}.quiz-bar{z-index:5;justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-raised);border:1px solid var(--line);box-shadow:var(--shadow-card);flex-wrap:wrap;max-width:860px;display:flex;position:sticky;top:0}.question .accesshide,.question .sr-only,.question .visually-hidden,.question .info,.question .questionflag,.question .im-controls,.question .editquestion,.question .clearchoice{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.question .qtext{margin-bottom:var(--space-4);font-weight:500}.question .prompt{color:var(--ink-muted);margin-bottom:var(--space-2);font-size:14px;font-weight:600}.question .answer>div,.question .answer>.r0,.question .answer>.r1{align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line);margin-bottom:var(--space-2);display:flex}.question .answer>div:has(input:checked){border-color:var(--maroon);background:var(--maroon-soft)}.question .answer label,.question .answer [data-region=answer-label]{gap:var(--space-2);flex:1;min-width:0;display:flex}.question .answer p{margin:0}.question input[type=radio],.question input[type=checkbox]{width:20px;height:20px;accent-color:var(--maroon);flex:none;margin:2px 0 0}.question input[type=radio][value="-1"]{opacity:0;pointer-events:none;width:1px;height:1px;margin:0;position:absolute}.question .qtype_multichoice_clearchoice{align-items:center;gap:var(--space-2);margin-top:var(--space-2);font-size:14px;display:flex}.question .qtype_multichoice_clearchoice label{color:var(--maroon);text-underline-offset:3px;cursor:pointer;font-weight:600;text-decoration:underline}.question input[type=text],.question input[type=number],.question select,.question textarea{font:inherit;max-width:100%;min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);font-size:16px}.question textarea{width:100%;min-height:160px;line-height:24px}.question .outcome,.question .feedback,.question .rightanswer,.question .specificfeedback,.question .generalfeedback{margin-top:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-sunk);font-size:14px;line-height:20px}.question .ablock,.question .formulation{min-width:0}:root{--quiz-top:76px}@media (width<=1023px){:root{--quiz-top:calc(68px + env(safe-area-inset-top,0px))}}.quiz-layout{gap:var(--space-4);align-items:start;max-width:1240px;display:grid}.quiz-main{gap:var(--space-4);min-width:0;display:grid}.quiz-main .panel{max-width:none}.quiz-bar{top:var(--quiz-top);max-width:none}[data-slot]{scroll-margin-top:calc(var(--quiz-top) + 88px)}.quiz-rail{gap:var(--space-3);padding:var(--space-4);border-radius:var(--radius-xl);background:var(--surface-raised);box-shadow:var(--shadow-card);align-content:start;min-width:0;display:grid}.rail-head{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:24px;display:flex}.rail-label{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-muted);font-size:12px;font-weight:700;line-height:16px}.rail-close{border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface);width:32px;height:32px;color:var(--ink);cursor:pointer;place-items:center;display:none}.rail-close i[data-ic]{transform:rotate(90deg)}.rail-sep{background:var(--line);height:1px}.quiz-jump{gap:var(--space-2);grid-template-columns:repeat(auto-fill,minmax(44px,1fr));display:grid}.quiz-jump button{border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface);height:44px;color:var(--ink);font-family:var(--font-mono);cursor:pointer;font-size:14px;font-weight:600}.quiz-jump button:hover{border-color:var(--line-strong)}.quiz-jump button[data-done=true]{border-color:var(--done);background:var(--done-soft);color:var(--done)}.quiz-jump button[aria-current=true]{outline:2px solid var(--maroon);outline-offset:1px}.quiz-rail-fab,.quiz-scrim{display:none}.ai-panel{gap:var(--space-3);min-width:0;display:grid}.ai-panel .ai-row{gap:var(--space-2);display:grid}.ai-panel .ml-field>label{font-size:12px}.ai-panel .ml-select{height:44px}.ai-panel .ml-btn{justify-content:center}.ai-panel .option{min-height:42px;padding:var(--space-2) var(--space-3);gap:var(--space-2)}.ai-panel .option-label{font-size:13px}.ai-check{align-items:center;gap:var(--space-2);color:var(--ink-muted);cursor:pointer;font-size:13px;font-weight:600;line-height:18px;display:flex}.ai-check input{width:18px;height:18px;accent-color:var(--ai);flex:none}.ai-progress{gap:6px;display:grid}.ai-progress-track{border-radius:var(--radius-pill);background:var(--surface-sunk);height:4px;overflow:hidden}.ai-progress-track span{border-radius:inherit;background:var(--ai);width:38%;height:100%;animation:1.1s ease-in-out infinite ai-fill-progress;display:block}.ai-progress-text{color:var(--ink-muted);margin:0;font-size:12px;font-weight:600;line-height:16px}@keyframes ai-fill-progress{0%{transform:translate(-110%)}to{transform:translate(320%)}}@media (prefers-reduced-motion:reduce){.ai-progress-track span{opacity:.55;width:100%;animation:none}}.ai-material{gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--line);display:grid}.ai-material-head{align-items:center;gap:var(--space-2);cursor:pointer;min-height:32px;font-size:13px;font-weight:600;list-style:none;display:flex}.ai-material-head::-webkit-details-marker{display:none}.ai-material-head .ml-count{margin-left:auto}.ai-results{gap:var(--space-2);display:grid}.ai-result{align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--line);background:var(--surface);display:flex}.ai-result p{margin:0;font-size:13px;line-height:18px}.ai-result .ai-why{color:var(--ink-muted)}.ai-confidence{min-width:38px;height:24px;padding:0 var(--space-1);border-radius:var(--radius-pill);background:var(--surface-sunk);color:var(--ink-muted);font-variant-numeric:tabular-nums;flex:none;place-items:center;font-size:12px;font-weight:700;display:inline-grid}.ai-confidence[data-tone=done]{background:var(--done-soft);color:var(--done)}.ai-confidence[data-tone=ongoing]{background:var(--ongoing-soft);color:var(--ongoing)}.ai-confidence[data-tone=overdue]{background:var(--overdue-soft);color:var(--overdue)}@media (width>=1280px){.quiz-layout{grid-template-columns:minmax(0,1fr) 320px}.quiz-rail{top:calc(var(--quiz-top) + var(--space-3));max-height:calc(100dvh - var(--quiz-top) - var(--space-8));position:sticky;overflow-y:auto}}@media (width<=1279px){.quiz-rail{left:var(--space-3);right:var(--space-3);bottom:var(--space-3);z-index:46;max-height:78dvh;box-shadow:var(--shadow-pop);visibility:hidden;transition:transform .22s ease-out,visibility .22s;position:fixed;overflow-y:auto;transform:translateY(calc(100% + 24px))}.quiz-rail[data-open=true]{visibility:visible;transform:none}.rail-close{display:grid}.quiz-scrim{z-index:45;background:#140a0861;display:block;position:fixed;inset:0}.quiz-rail-fab{right:var(--space-4);bottom:calc(var(--space-4) + env(safe-area-inset-bottom));z-index:47;align-items:center;gap:var(--space-2);height:48px;padding:0 var(--space-4);border-radius:var(--radius-pill);background:var(--ai);color:var(--on-primary);font:inherit;box-shadow:var(--shadow-pop);cursor:pointer;border:0;font-size:14px;font-weight:700;display:inline-flex;position:fixed}.quiz-rail-fab[data-open=true]{display:none}}@media (prefers-reduced-motion:reduce){.quiz-rail{transition:none}}@media (width<=1023px){.quiz-rail,.quiz-rail-fab{bottom:calc(96px + env(safe-area-inset-bottom,0px))}}.post.reply{margin-left:var(--space-5)}.post .ml-meta{font-size:12px;line-height:16px}.option{align-items:center;gap:var(--space-3);min-height:52px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--line);cursor:pointer;transition:transform .15s ease-out;display:flex}.option:active{transform:scale(.99)}.option[data-off=true]{opacity:.55;cursor:not-allowed}.option input{width:20px;height:20px;accent-color:var(--maroon);flex:none}.option-label{overflow-wrap:anywhere;flex:1;min-width:0;font-weight:600}.wide{max-width:860px}.ml-select{width:100%;height:48px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);font:inherit;font-size:16px}.chat{gap:var(--space-3);display:grid}.bubble{padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);min-width:0;max-width:100%;animation:.25s ease-out both rise}.bubble.user{background:var(--maroon);max-width:85%;color:var(--on-maroon);border-bottom-right-radius:var(--radius-sm);justify-self:end}.bubble.assistant{background:var(--surface-raised);border:1px solid var(--line);border-bottom-left-radius:var(--radius-sm);justify-self:start}.bubble.pending{color:var(--ink-muted);font-size:14px;font-weight:600;animation:1.2s ease-in-out infinite pulse}.bubble-text{white-space:pre-wrap;overflow-wrap:anywhere}.bubble .ml-code{margin-top:var(--space-2);font-size:12px}.composer{bottom:var(--space-4);align-items:flex-end;gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-lg);background:var(--surface-raised);border:1px solid var(--line);box-shadow:var(--shadow-pop);display:flex;position:sticky}.composer .ml-textarea{resize:none;padding:var(--space-2) var(--space-3);background:0 0;border:0}.composer .ml-textarea:focus-visible{outline:none}button.option{width:100%;color:inherit;font:inherit;text-align:left;background:0 0}@media (width<=1023px){.composer{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}.ml-textarea{width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);font:inherit;resize:vertical;font-size:16px;line-height:24px}.file-input{max-width:100%;color:var(--ink);font-size:16px}.file-input::file-selector-button{font:inherit;height:36px;padding:0 var(--space-4);margin-right:var(--space-3);border-radius:var(--radius-pill);border:1px solid var(--line-strong);background:var(--surface-raised);color:var(--ink);cursor:pointer;font-size:13px;font-weight:600}.check-line{gap:var(--space-3);align-items:flex-start;font-size:14px;font-weight:500;line-height:20px;display:flex}.check-line input{width:20px;height:20px;accent-color:var(--maroon);flex:none}a.ml-task-link{border-radius:var(--radius-lg);display:block}a.ml-course{transition:transform .15s ease-out}a.ml-course:active{transform:scale(.99)}.ml-row[role=button]{cursor:pointer}.lock{min-height:100dvh;padding:var(--space-4);place-items:center;display:grid}.lock .panel{gap:var(--space-5);width:100%;max-width:420px}.tl-cols{display:none}.tl-col{gap:var(--space-3);align-content:start;min-width:0;display:grid}.tl-col-head{justify-content:space-between;align-items:center;display:flex}@media (width>=1440px){.tl-cols{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.tl-single{display:none}.app-main.wide{max-width:1600px}}.update-bar{right:var(--space-4);bottom:calc(var(--space-4) + env(safe-area-inset-bottom,0px));z-index:40;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-radius:var(--radius-pill);background:var(--surface-raised);border:1px solid var(--line);box-shadow:var(--shadow-pop);font-size:14px;font-weight:600;animation:.24s cubic-bezier(.2,.7,.2,1) both sheet;display:flex;position:fixed}@media (width<=1023px){.update-bar{left:var(--space-4);bottom:calc(84px + env(safe-area-inset-bottom,0px));justify-content:space-between}}.viewer{z-index:60;background:var(--surface);flex-direction:column;animation:.16s ease-out both fade;display:flex;position:fixed;inset:0}.viewer-bar{align-items:center;gap:var(--space-2);padding:calc(var(--space-2) + env(safe-area-inset-top,0px)) var(--space-4) var(--space-2);background:var(--surface-raised);border-bottom:1px solid var(--line);display:flex}.viewer-name{overflow-wrap:anywhere;flex:1;min-width:0;font-size:14px;font-weight:700;line-height:20px}.viewer-body{min-height:0;padding-bottom:env(safe-area-inset-bottom,0px);flex:1;display:grid;overflow:auto}.viewer-body>.empty{margin:var(--space-4);place-self:center}.viewer-frame{background:var(--surface-sunk);border:0;width:100%;height:100%}.viewer-image{object-fit:contain;max-width:100%;max-height:100%;padding:var(--space-4);place-self:center}.viewer-text{padding:var(--space-5);font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:14px;line-height:22px}.viewer-media{width:min(100%,960px);padding:var(--space-4);place-self:center}.overlay{z-index:50;padding:8vh var(--space-6) var(--space-6);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#140e0c73;align-content:start;justify-items:center;display:grid;position:fixed;inset:0}.cmd{flex-direction:column;max-width:760px;max-height:80dvh;display:flex}.cmd-search{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-4) var(--space-4) var(--space-6);border-bottom:1px solid var(--line);color:var(--ink-muted);display:flex}.cmd-search>i[data-ic]{width:26px;height:26px;color:var(--maroon)}.cmd-search input{min-width:0;height:48px;color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:20px;font-weight:500}.cmd-search input::placeholder{color:var(--ink-muted);opacity:1}.cmd-clear{border-radius:var(--radius-pill);background:var(--surface-sunk);width:32px;height:32px;color:var(--ink-muted);border:0;font-size:18px;line-height:1}.cmd-close{color:var(--ink-muted);padding:var(--space-1) var(--space-2);background:0 0;border:0;font-size:14px;font-weight:600}.cmd-results{overscroll-behavior:contain;min-height:0;padding:var(--space-3) var(--space-3) var(--space-4);scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;flex:1;overflow-y:auto}.cmd-results::-webkit-scrollbar{width:10px}.cmd-results::-webkit-scrollbar-thumb{background:var(--line);border:3px solid var(--surface-raised);border-radius:999px}.cmd-results::-webkit-scrollbar-track{background:0 0}.cmd-group+.cmd-group{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--line)}.cmd-group-label{padding:var(--space-2) var(--space-4) var(--space-1);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);font-size:11px;font-weight:700;line-height:16px}.cmd-item{align-items:center;gap:var(--space-4);min-height:60px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;display:flex}.cmd-item[aria-selected=true]{background:var(--surface-sunk)}.cmd-tile{border-radius:var(--radius-sm);background:var(--tone-soft,var(--surface-sunk));width:40px;height:40px;color:var(--tone,var(--ink-muted));flex:none;place-items:center;display:grid}.cmd-item[aria-selected=true] .cmd-tile:not([data-tone]){background:var(--surface-raised)}.cmd-tile i[data-ic]{width:18px;height:18px}.cmd-text{flex:1;gap:1px;min-width:0;display:grid}.cmd-title{overflow-wrap:anywhere;font-size:15px;font-weight:600;line-height:22px}.cmd-sub{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;line-height:18px;overflow:hidden}.cmd-item mark{background:var(--maroon-soft);color:var(--maroon);border-radius:3px;padding:0 1px}.cmd-enter{color:var(--ink-muted);opacity:0;place-items:center;transition:opacity .15s ease-out,transform .15s ease-out;display:grid;transform:translate(-4px)}.cmd-enter i[data-ic]{width:16px;height:16px}.cmd-item[aria-selected=true] .cmd-enter{opacity:1;transform:none}.cmd-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;display:grid}.cmd-grid .cmd-item{min-height:52px}.cmd-grid .cmd-enter{display:none}@media (width<=480px){.cmd-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.cmd-empty{justify-items:center;gap:var(--space-1);padding:var(--space-8) var(--space-4);text-align:center;color:var(--ink-muted);display:grid}.cmd-empty i[data-ic]{width:28px;height:28px;margin-bottom:var(--space-2)}.cmd-empty-title{color:var(--ink);overflow-wrap:anywhere;font-weight:600}.cmd-foot{align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-5);border-top:1px solid var(--line);background:var(--surface-sunk);color:var(--ink-muted);font-size:12px;font-weight:600;display:flex}.cmd-foot .ml-kbd{margin-right:4px}.cmd-count{margin-left:auto}.show-sm{display:none}@media (width<=1023px){.app{grid-template-columns:minmax(0,1fr)}.app>.ml-nav{display:none}.app-main{padding:calc(var(--space-5) + env(safe-area-inset-top,0px)) var(--space-4) calc(88px + env(safe-area-inset-bottom,0px));gap:var(--space-6)}.app-bar{z-index:10;box-shadow:var(--shadow-pop);display:grid;position:fixed;bottom:0;left:0;right:0}.dash-top{grid-template-columns:minmax(0,1fr)}.dash-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.dash-metrics-pair{display:contents}.search-trigger{max-width:none}.overlay{-webkit-backdrop-filter:none;backdrop-filter:none;padding:0}.overlay .cmd{max-width:none;height:100dvh;max-height:none;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);border:0;border-radius:0}.cmd-search{padding:var(--space-3) var(--space-3) var(--space-3) var(--space-4)}.cmd-search input{font-size:18px}.cmd-item{min-height:56px}.show-sm{display:inline}}@media (width<=639px){.ml-hero{min-height:132px}.ml-hero-text{padding:var(--space-4)}.ml-hero-title{font-size:28px;line-height:34px}.ml-hero-sub{font-size:14px;line-height:20px}.ml-hero-art{flex-basis:110px;min-width:96px}.ml-metric{padding:var(--space-3);grid-template-columns:1fr}.ml-metric .ml-tile{display:none}.ml-metric-num{font-size:28px;line-height:32px}.ml-task .ml-task-side{flex:100%;justify-content:space-between;margin-left:0}.ml-seg.fill{display:flex}.ml-seg.fill button{padding:0 var(--space-2);flex:1;justify-content:center}.hide-sm{display:none}}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{transform:scale(.5)}60%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes sheet{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:none}}@keyframes drift{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}.page-enter>*{animation:.34s cubic-bezier(.2,.7,.2,1) both rise}.page-enter>.quiz-layout{animation:none}.page-enter>:nth-child(2){animation-delay:50ms}.page-enter>:nth-child(3){animation-delay:.1s}.page-enter>:nth-child(4){animation-delay:.15s}.page-enter>:nth-child(n+5){animation-delay:.2s}.ml-stack>*,.grid-cards>*,.grid-metrics>*,.dash-metrics>*,.tl-col>*,.ml-list>.ml-row{animation:.3s cubic-bezier(.2,.7,.2,1) both rise}:is(.ml-stack,.grid-cards,.grid-metrics,.tl-col,.ml-list)>:nth-child(2){animation-delay:40ms}:is(.ml-stack,.grid-cards,.grid-metrics,.tl-col,.ml-list)>:nth-child(3){animation-delay:80ms}:is(.ml-stack,.grid-cards,.grid-metrics,.tl-col,.ml-list)>:nth-child(4){animation-delay:.12s}:is(.ml-stack,.grid-cards,.grid-metrics,.tl-col,.ml-list)>:nth-child(5){animation-delay:.16s}:is(.ml-stack,.grid-cards,.grid-metrics,.tl-col,.ml-list)>:nth-child(n+6){animation-delay:.2s}.ml-course,.ml-task,.ml-enroll,.ml-row[role=button],.ml-nav-item,.ml-tab,.ml-seg button,.ml-icon-btn,.ml-check,.ml-bar-item i[data-ic]{transition:transform .16s ease-out,background-color .16s ease-out,color .16s ease-out,border-color .16s ease-out,box-shadow .16s ease-out}.ml-tab:active,.ml-seg button:active,.ml-nav-item:active,.ml-icon-btn:active,.ml-check:active{transform:scale(.96)}@media (hover:hover){a.ml-course:hover{box-shadow:var(--shadow-pop);transform:translateY(-3px)}.ml-row[role=button]:hover{background:var(--surface-sunk)}.ml-btn-primary:hover,.ml-btn-secondary:hover{transform:translateY(-1px)}a.ml-course:hover .ml-art{transform:scale(1.04)}}.ml-art{transition:transform .4s cubic-bezier(.2,.7,.2,1)}.ml-progress>span{transform-origin:0;animation:.7s cubic-bezier(.2,.7,.2,1) .15s both grow}.ml-check[aria-pressed=true] i[data-ic],.ml-nav-item[aria-current=page] i[data-ic],.ml-bar-item[aria-current=page] i[data-ic]{animation:.28s cubic-bezier(.2,.7,.2,1) pop}.ml-badge,.ml-countdown{animation:.3s ease-out both fade}.note[role=status],.note[role=alert]{animation:.25s ease-out both rise}.empty[role=status] i[data-ic]{animation:1.2s ease-in-out infinite pulse}.overlay{animation:.16s ease-out both fade}.overlay .ml-cmd,.lock .panel{animation:.24s cubic-bezier(.2,.7,.2,1) both sheet}.ml-hero .ml-art :is(circle,rect){transform-box:fill-box;transform-origin:50%;animation:7s ease-in-out infinite drift}.ml-hero .ml-art :nth-child(2){animation-delay:-2s}.ml-hero .ml-art :nth-child(3){animation-duration:9s;animation-delay:-4s}.ml-hero .ml-art :nth-child(4),.ml-hero .ml-art :nth-child(5){animation-duration:5s;animation-delay:-1s}.ml-hero .ml-art :nth-child(6){animation-delay:-3s}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}body{background:radial-gradient(1200px 700px at 100% 0%, var(--bg-b), transparent 60%), linear-gradient(180deg, var(--bg-a), var(--surface));background-attachment:fixed}::selection{background:var(--lime);color:var(--on-lime)}.app{grid-template-columns:96px minmax(0,1fr)}.rail{z-index:35;align-items:center;gap:var(--space-2);height:100dvh;padding:var(--space-5) 0;flex-direction:column;display:flex;position:sticky;top:0}.rail-items{gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-pill);background:var(--surface-raised);box-shadow:var(--shadow-card);display:grid}.rail-item,.rail-avatar{border-radius:var(--radius-pill);width:48px;height:48px;color:var(--ink-muted);place-items:center;transition:background-color .16s ease-out,color .16s ease-out,transform .16s ease-out;display:grid;position:relative}.rail-item i[data-ic]{width:21px;height:21px}.rail-item:hover{background:var(--surface-sunk);color:var(--ink)}.rail-item[aria-current=page]{background:var(--primary);color:var(--on-primary)}.rail-item:active{transform:scale(.94)}.rail-spacer{flex:1}.rail>.rail-item{background:var(--surface-raised);box-shadow:var(--shadow-card)}.rail>.rail-item[aria-current=page]{background:var(--primary)}.rail-avatar{background:var(--lime);color:var(--on-lime);font-size:14px;font-weight:800}.rail-badge{background:var(--overdue);color:#fff;text-align:center;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:4px;right:2px}.rail [data-label]:after{content:attr(data-label);z-index:30;opacity:0;pointer-events:none;white-space:nowrap;background:var(--primary);color:var(--on-primary);border-radius:10px;padding:6px 10px;font-size:13px;font-weight:600;transition:opacity .12s ease-out,transform .12s ease-out;position:absolute;top:50%;left:calc(100% + 14px);transform:translate(-4px,-50%)}.rail [data-label]:hover:after,.rail [data-label]:focus-visible:after{opacity:1;transform:translateY(-50%)}.frame{flex-direction:column;min-width:0;display:flex}.topbar{z-index:20;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-8) var(--space-3) var(--space-2);background:color-mix(in srgb, var(--bg-a) 86%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);display:flex;position:sticky;top:0}.topbar-brand{letter-spacing:-.03em;flex:none;font-size:22px;font-weight:800}.topbar-brand span{color:var(--maroon)}.topbar-search{align-items:center;gap:var(--space-3);max-width:560px;height:48px;padding:0 var(--space-2) 0 var(--space-5);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--ink-muted);font:inherit;text-align:left;cursor:pointer;box-shadow:var(--shadow-card);flex:1;margin:0 auto;font-size:15px;font-weight:500;transition:border-color .16s ease-out,box-shadow .16s ease-out;display:flex}.topbar-search:hover{border-color:var(--line-strong)}.topbar-search i[data-ic]{width:20px;height:20px;color:var(--ink)}.topbar-search-text{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.topbar-search .ml-kbd{margin-right:var(--space-2)}.topbar-end{align-items:center;gap:var(--space-2);flex:none;display:flex}.round-btn{border-radius:var(--radius-pill);background:var(--surface-raised);width:48px;height:48px;color:var(--ink);box-shadow:var(--shadow-card);cursor:pointer;border:0;place-items:center;display:grid;position:relative}.round-btn i[data-ic]{width:20px;height:20px}.bell{position:relative}.bell-count{background:var(--overdue);color:#fff;text-align:center;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:4px;right:2px}.theme-toggle{border-radius:var(--radius-pill);background:var(--surface-raised);box-shadow:var(--shadow-card);gap:2px;padding:4px;display:inline-flex}.theme-toggle button{border-radius:var(--radius-pill);width:40px;height:40px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.theme-toggle button i[data-ic]{width:18px;height:18px}.theme-toggle button[aria-pressed=true]{background:var(--surface-sunk);color:var(--ink)}.popover{z-index:40;border-radius:var(--radius-lg);background:var(--surface-raised);border:1px solid var(--line);width:min(400px,100vw - 32px);max-height:min(560px,75dvh);box-shadow:var(--shadow-pop);flex-direction:column;animation:.2s cubic-bezier(.2,.7,.2,1) both sheet;display:flex;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden}.popover-head{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-2);display:flex}.popover-body{padding:0 var(--space-2) var(--space-3);overflow-y:auto}.app-main{max-width:1640px;padding:var(--space-2) var(--space-8) var(--space-12) var(--space-2);gap:var(--space-6)}.page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4) var(--space-8);flex-wrap:wrap;display:flex}.page-header-text{gap:var(--space-1);flex:420px;min-width:0;display:grid}.page-header-aside{align-items:flex-end;gap:var(--space-6);flex-wrap:wrap;display:flex}.page-title{font-family:var(--font-display);letter-spacing:-.025em;overflow-wrap:anywhere;font-size:36px;font-weight:700;line-height:42px}.page-sub{color:var(--ink-muted);margin:0;font-size:15px;font-weight:500;line-height:22px}.eyebrow{font-family:var(--font-mono);color:var(--ink-muted);overflow-wrap:anywhere;font-size:12px;font-weight:500;line-height:16px}.back-link{min-height:32px;margin-bottom:var(--space-1);overflow-wrap:anywhere}.back-link i[data-ic]{flex:none;width:18px;height:18px;transform:none}.figure{gap:2px;display:grid}.figure-label{color:var(--ink-muted);font-size:13px;font-weight:600}.figure-value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;align-items:flex-start;gap:4px;font-size:44px;font-weight:400;line-height:48px;display:flex}.figure-value i[data-ic]{width:18px;height:18px;color:var(--ink-muted);margin-top:4px}.pill-primary{align-items:center;gap:var(--space-2);height:52px;padding:0 var(--space-6);border-radius:var(--radius-pill);background:var(--primary);color:var(--on-primary);font-size:15px;font-weight:700;transition:transform .16s ease-out;display:inline-flex}.pill-primary:hover{transform:translateY(-1px)}.pill-primary i[data-ic]{width:18px;height:18px}.panels{gap:var(--space-5);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.panel-col,.panel-center{gap:var(--space-5);align-content:start;min-width:0;display:grid}@media (width>=1024px){.panels[data-right=true]{grid-template-columns:minmax(0,1fr) 320px}.panels[data-left=true][data-right=true] .panel-left{grid-area:1/1}.panels[data-left=true][data-right=true] .panel-center{grid-area:2/1}.panels[data-left=true][data-right=true] .panel-right{grid-area:1/2/span 2}.panels[data-left=true]:not([data-right=true]){grid-template-columns:280px minmax(0,1fr)}}@media (width>=1360px){.panels[data-left=true][data-right=true]{grid-template-columns:300px minmax(0,1fr) 330px}.panels[data-left=true][data-right=true] .panel-left{grid-area:1/1}.panels[data-left=true][data-right=true] .panel-center{grid-area:1/2}.panels[data-left=true][data-right=true] .panel-right{grid-area:1/3}}@media (width>=1680px){.panels[data-left=true][data-right=true]{grid-template-columns:340px minmax(0,1fr) 360px}}.card{gap:var(--space-4);padding:var(--space-5);border-radius:var(--radius-xl);background:var(--surface-raised);box-shadow:var(--shadow-card);align-content:start;min-width:0;display:grid}.card-flush{padding:var(--space-5) var(--space-2) var(--space-2)}.card-flush>.card-head{padding:0 var(--space-3)}.card-head{justify-content:space-between;align-items:flex-start;gap:var(--space-3);min-width:0;display:flex}.card-head-text{gap:2px;min-width:0;display:grid}.card-title{letter-spacing:-.01em;overflow-wrap:anywhere;font-size:17px;font-weight:700;line-height:24px}.card-sub{color:var(--ink-muted);font-size:13px;font-weight:500;line-height:18px}.card-action{align-items:center;gap:var(--space-2);flex:none;display:flex}.circle-btn{border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface-raised);width:40px;height:40px;color:var(--ink);flex:none;place-items:center;transition:transform .16s ease-out,background-color .16s ease-out;display:grid}.circle-btn:hover{background:var(--surface-sunk);transform:rotate(-8deg)}.circle-btn i[data-ic]{width:18px;height:18px}.text-btn{color:var(--ink);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:13px;font-weight:700;text-decoration:underline}.text-btn:disabled{opacity:.5;cursor:default}.card .empty{padding:var(--space-6) var(--space-3)}.card .note{margin:0}.chip{border-radius:var(--radius-pill);background:var(--surface-sunk);height:28px;color:var(--ink);white-space:nowrap;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.chip[data-tone]{background:var(--tone-soft);color:var(--tone)}.chip i[data-ic]{width:14px;height:14px}.stats{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.stat{align-content:space-between;gap:var(--space-3);min-height:168px;padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-xl);background:linear-gradient(170deg, var(--surface-raised) 10%, var(--tone-soft) 100%);color:var(--ink);text-align:left;font:inherit;min-width:0;display:grid;position:relative;overflow:hidden}button.stat{cursor:pointer;transition:transform .18s ease-out,box-shadow .18s ease-out}button.stat:hover{box-shadow:var(--shadow-pop);transform:translateY(-3px)}.stat[aria-pressed=true]{outline:2px solid var(--tone);outline-offset:-2px}.stat-value{letter-spacing:-.05em;color:var(--tone);font-variant-numeric:tabular-nums;font-size:64px;font-weight:300;line-height:64px}.stat-label{color:var(--ink);overflow-wrap:anywhere;font-size:16px;font-weight:600;line-height:21px}.stat-icon{background:var(--surface-raised);width:40px;height:40px;color:var(--tone);box-shadow:var(--shadow-card);border-radius:12px;order:-1;justify-self:end;place-items:center;display:grid}.stat-icon i[data-ic]{width:18px;height:18px}.ring{background:conic-gradient(var(--tone) calc(var(--v) * 1%), var(--surface-sunk) 0);border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.ring:before{content:"";background:var(--surface-raised);border-radius:50%;position:absolute;inset:12px}.ring-value{letter-spacing:-.04em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:400;line-height:1;position:relative}.ring-value small{color:var(--ink-muted);margin-left:1px;font-size:14px}.ring-row{align-items:center;gap:var(--space-5);display:flex}.legend{gap:var(--space-2);flex:1;min-width:0;display:grid}.legend-item{align-items:center;gap:var(--space-2);font-size:13px;font-weight:600;display:flex}.legend-item b{font-variant-numeric:tabular-nums;margin-left:auto}.legend-dot{background:var(--tone);border-radius:50%;flex:none;width:10px;height:10px}.todo-list{gap:2px;display:grid}.todo{align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);color:inherit;min-width:0;transition:background-color .15s ease-out;display:flex}.todo:hover{background:var(--surface-sunk)}.todo+.todo{border-top:1px solid var(--line);border-radius:0}.todo:hover+.todo,.todo+.todo:hover{border-top-color:#0000}.todo-dot{background:var(--tone-soft);width:32px;height:32px;color:var(--tone);border-radius:50%;flex:none;place-items:center;display:grid}.todo-dot i[data-ic]{width:16px;height:16px}.todo-text{flex:1;gap:2px;min-width:0;display:grid}.todo-title{overflow-wrap:anywhere;font-size:14px;font-weight:700;line-height:20px}.todo[data-tone=done] .todo-title{color:var(--ink-muted);text-decoration:line-through}.todo-sub{color:var(--ink-muted);overflow-wrap:anywhere;font-size:12px;font-weight:500;line-height:17px}.todo-due{margin-top:4px;display:flex}.week-head{align-items:center;gap:var(--space-2);display:flex}.week-wrap{container-type:inline-size}.week{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;min-height:240px;display:grid}@container (width<=760px){.week{grid-template-columns:minmax(0,1fr);min-height:0}.week-day{grid-template-columns:64px minmax(0,1fr);align-items:start}.week-day-name{grid-row:span 9;justify-items:start;padding:4px 0 0 4px}.week-day:not(:has(.week-chip)):not([data-today=true]){display:none}.week-chip-title{-webkit-line-clamp:unset;display:block}}.week-day{padding:var(--space-2) 6px var(--space-3);background:var(--surface-sunk);border-radius:18px;align-content:start;gap:6px;min-width:0;display:grid;position:relative}.week-day[data-today=true]{background:var(--lime);color:var(--on-lime)}.week-day-name{color:inherit;opacity:.8;justify-items:center;gap:0;padding-bottom:6px;font-size:12px;font-weight:600;display:grid}.week-day-name b{opacity:1;letter-spacing:-.02em;font-size:20px;font-weight:500;line-height:26px}.week-chip{background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow-card);border-left:0;border-radius:12px;gap:2px;min-width:0;padding:8px;transition:transform .15s ease-out;display:grid}.week-chip:hover{transform:translateY(-2px)}.week-chip-time{color:var(--tone);align-items:center;gap:4px;font-size:11px;font-weight:700;display:flex}.week-chip-time:before{content:"";background:var(--tone);border-radius:50%;flex:none;width:6px;height:6px}.week-chip-title{overflow-wrap:anywhere;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:12px;font-weight:600;line-height:16px;display:-webkit-box;overflow:hidden}.week-chip[data-tone=done] .week-chip-title{color:var(--ink-muted);text-decoration:line-through}.week-empty{text-align:center;color:inherit;opacity:.55;padding-top:var(--space-2);font-size:11px}.course-rows{gap:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.course-row{gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-lg);background:var(--surface-sunk);color:inherit;min-width:0;transition:transform .16s ease-out,background-color .16s ease-out;display:grid}.course-row:hover{background:var(--surface-raised);box-shadow:var(--shadow-card);transform:translateY(-2px)}.course-row-top{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.course-row-name{overflow-wrap:anywhere;min-width:0;font-size:14px;font-weight:700;line-height:20px}.course-row-meta{justify-content:space-between;align-items:center;gap:var(--space-2);color:var(--ink-muted);flex-wrap:wrap;font-size:12px;font-weight:600;display:flex}.notice-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.notice{align-items:flex-start;gap:var(--space-3);width:100%;padding:var(--space-3);border-radius:var(--radius-md);color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;display:flex}.notice:hover{background:var(--surface-sunk)}.notice-dot{background:var(--overdue);border-radius:50%;flex:none;width:8px;height:8px;margin-top:7px}.notice[data-read=true] .notice-dot{box-shadow:inset 0 0 0 1.5px var(--line-strong);background:0 0}.notice-text{gap:2px;min-width:0;display:grid}.notice-subject{overflow-wrap:anywhere;font-size:13px;font-weight:700;line-height:19px}.notice[data-read=true] .notice-subject{color:var(--ink-muted);font-weight:600}.notice-body{color:var(--ink-muted);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:17px;display:-webkit-box;overflow:hidden}.notice-time{color:var(--ink-muted);font-size:11px;font-weight:600}.notice-empty{padding:var(--space-3)}.mini-chat{gap:var(--space-3);display:grid}.mini-bubble{max-width:92%;padding:var(--space-3) var(--space-4);background:var(--surface-sunk);border-radius:18px 18px 18px 6px;justify-self:start;font-size:14px;font-weight:500;line-height:20px}.mini-form{align-items:center;gap:var(--space-2);padding:6px 6px 6px var(--space-4);border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-raised);display:flex}.mini-form input{min-width:0;height:40px;color:var(--ink);font:inherit;background:0 0;border:0;outline:0;flex:1;font-size:16px}.mini-form button{background:var(--primary);width:40px;height:40px;color:var(--on-primary);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.mini-form button:disabled{opacity:.4;cursor:default}.mini-form button i[data-ic]{width:18px;height:18px}.mini-prompts{flex-wrap:wrap;gap:6px;display:flex}.mini-prompts button{border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--ink);font:inherit;cursor:pointer;text-align:left;background:0 0;padding:6px 12px;font-size:12px;font-weight:600}.mini-prompts button:hover{background:var(--surface-sunk)}.side-list{gap:2px;display:grid}.side-item{align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;min-width:0;font-size:14px;font-weight:600;display:flex}.side-item:hover{background:var(--surface-sunk)}.side-item[aria-pressed=true],.side-item[aria-current=page]{background:var(--primary);color:var(--on-primary)}.side-item[aria-pressed=true] .ml-count,.side-item[aria-current=page] .ml-count,.side-item[aria-pressed=true] .side-sub,.side-item[aria-current=page] .side-sub{color:inherit;opacity:.75}.side-item i[data-ic]{flex:none;width:18px;height:18px}.side-item .ml-count{flex:none;margin-left:auto}.side-text{flex:1;gap:1px;min-width:0;display:grid}.side-label{overflow-wrap:anywhere}.side-sub{color:var(--ink-muted);overflow-wrap:anywhere;font-size:12px;font-weight:500;line-height:16px}.side-dot{background:var(--tone,var(--line-strong));border-radius:50%;flex:none;width:10px;height:10px}.cal-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.cal-nav{gap:4px;display:flex}.cal-nav button{border:1px solid var(--line);width:32px;height:32px;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;place-items:center;display:grid}.cal-nav button i[data-ic]{width:16px;height:16px}.cal{text-align:center;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;display:grid}.cal-dow{color:var(--ink-muted);padding:4px 0;font-size:11px;font-weight:700}.cal-day{aspect-ratio:1;color:var(--ink);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;font-size:13px;font-weight:600;display:grid;position:relative}.cal-day:hover{background:var(--surface-sunk)}.cal-day[data-out=true]{color:var(--line-strong)}.cal-day[data-today=true]{box-shadow:inset 0 0 0 1.5px var(--ink)}.cal-day[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}.cal-dots{gap:2px;display:flex;position:absolute;bottom:3px;left:50%;transform:translate(-50%)}.cal-dots span{background:var(--tone);border-radius:50%;width:4px;height:4px}.group{gap:var(--space-3);display:grid}.group-label{align-items:center;gap:var(--space-2);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:700;display:flex}.group-label .ml-count{color:inherit}.ml-btn-primary{background:var(--primary);color:var(--on-primary)}.ml-btn-secondary{border-color:var(--line)}.ml-btn-ghost{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.ml-card,.ml-task,.ml-course,.ml-list,.ml-enroll,.ml-metric{border-radius:var(--radius-xl);border-color:#0000}.ml-task{padding:var(--space-4) var(--space-5)}.ml-tab{background:var(--surface-raised);box-shadow:var(--shadow-card);border-color:#0000}.ml-tab[aria-selected=true]{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.ml-tab[aria-selected=true] .ml-count{color:var(--on-primary)}.ml-seg{background:var(--surface-raised);box-shadow:var(--shadow-card)}.ml-seg button[aria-pressed=true]{background:var(--primary);color:var(--on-primary);box-shadow:none}.ml-seg button[aria-pressed=true] .ml-count{color:var(--on-primary)}.ml-input,.ml-select,.ml-textarea{border-color:var(--line)}.ml-input:focus-within,.ml-select:focus-visible,.ml-textarea:focus-visible{border-color:var(--ink)}.ml-kbd{background:var(--surface-sunk);border-color:var(--line)}.ml-tile{border-radius:14px}.ml-check[aria-pressed=true]{background:var(--done);border-color:var(--done)}.option[data-picked=true]{border-color:var(--ink);background:var(--surface-sunk)}.bubble.user{background:var(--primary);color:var(--on-primary)}.ml-course-art{height:88px}.panel{border-radius:var(--radius-xl);border-color:#0000}.note{border-radius:var(--radius-md)}.ml-enroll{gap:var(--space-3)}.ml-enroll-head{gap:var(--space-2);display:grid}.enroll-top{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.enroll-top .ml-code{overflow-wrap:anywhere;min-width:0}.ml-enroll-title,.ml-enroll>.ml-meta{overflow-wrap:anywhere}.ml-enroll-foot{gap:var(--space-2);margin-top:auto;display:grid}.ml-enroll-foot .ml-btn{width:100%}.grid-enroll{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));align-items:stretch;display:grid}.chat-col{gap:var(--space-4);align-content:start;min-height:60dvh;display:grid}@media (width<=1023px){.app{grid-template-columns:minmax(0,1fr)}.rail{display:none}.topbar{padding:calc(var(--space-3) + env(safe-area-inset-top,0px)) var(--space-4) var(--space-3);gap:var(--space-2)}.topbar-search{height:44px;padding-left:var(--space-4)}.round-btn{width:44px;height:44px}.theme-toggle{display:none}.app-main{padding:var(--space-2) var(--space-4) calc(96px + env(safe-area-inset-bottom,0px));gap:var(--space-5)}.page-title{font-size:28px;line-height:34px}.figure-value{font-size:34px;line-height:38px}}@media (width<=639px){.topbar-brand{font-size:20px}.topbar-search-text{font-size:14px}.stats{gap:var(--space-3)}.stat{min-height:132px;padding:var(--space-4);gap:var(--space-3)}.stat-value{font-size:44px;line-height:46px}.stat-label{font-size:14px;line-height:18px}.stat-icon{width:34px;height:34px}.card{padding:var(--space-4);border-radius:var(--radius-lg)}.card-flush{padding:var(--space-4) var(--space-1) var(--space-1)}.page-header-aside{gap:var(--space-4);width:100%}.pill-primary{justify-content:center;width:100%}.ring-row{flex-wrap:wrap}.topbar{justify-content:space-between}.topbar-search{border:0;flex:none;justify-content:center;width:44px;height:44px;margin:0 0 0 auto;padding:0}.topbar-search-text{display:none}}.stats>*,.todo-list>*,.notice-list>*,.course-rows>*,.week-chip{animation:.3s cubic-bezier(.2,.7,.2,1) both rise}.stats>:nth-child(2),.course-rows>:nth-child(2),.todo-list>:nth-child(2){animation-delay:40ms}.stats>:nth-child(3),.course-rows>:nth-child(3),.todo-list>:nth-child(3){animation-delay:80ms}.stats>:nth-child(4),.course-rows>:nth-child(4),.todo-list>:nth-child(4){animation-delay:.12s}.ring{animation:.5s ease-out both fade}@media (prefers-reduced-motion:reduce){.rail [data-label]:after{transition:none}}.file-input{width:100%;min-width:0}.ml-stack>.ml-field,form.ml-stack{min-width:0}.panel-center{container-type:inline-size}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}@container (width<=640px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.avatar{border-radius:inherit;place-items:center;width:100%;height:100%;display:grid;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%;display:block}.rail-avatar{padding:0;overflow:hidden}.ml-avatar.avatar{border-radius:50%;width:40px;height:40px}.menu-btn,.drawer,.drawer-scrim{display:none}@media (width<=1023px){.menu-btn{flex:none;display:grid}.drawer-scrim{z-index:54;background:#11131a6b;animation:.16s ease-out both fade;display:block;position:fixed;inset:0}.drawer{z-index:55;gap:var(--space-4);width:min(320px,86vw);padding:calc(var(--space-4) + env(safe-area-inset-top,0px)) var(--space-4) calc(var(--space-4) + env(safe-area-inset-bottom,0px));background:var(--surface-raised);box-shadow:var(--shadow-pop);visibility:hidden;flex-direction:column;transition:transform .22s cubic-bezier(.2,.7,.2,1),visibility .22s;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-104%)}.drawer[data-open=true]{visibility:visible;transform:none}.drawer-head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.drawer-profile{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--surface-sunk);min-width:0;display:flex}.drawer-profile .rail-avatar{flex:none;width:44px;height:44px}.drawer .side-item{min-height:48px;font-size:15px}.drawer-foot{justify-content:space-between;align-items:center;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--line);margin-top:auto;display:flex}.drawer .theme-toggle{box-shadow:none;background:var(--surface-sunk);display:inline-flex}}@media (prefers-reduced-motion:reduce){.drawer{transition:none}}.done-toggle{height:34px;margin-left:var(--space-1);padding:0 var(--space-3);border:1.5px solid var(--line-strong);border-radius:var(--radius-pill);color:var(--ink-muted);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;flex:none;align-items:center;gap:6px;font-size:13px;font-weight:600;transition:background-color .16s ease-out,color .16s ease-out,border-color .16s ease-out,transform .16s ease-out;display:inline-flex}.done-toggle i[data-ic]{width:15px;height:15px}.done-toggle:hover{border-color:var(--ink);color:var(--ink)}.done-toggle:active{transform:scale(.96)}.done-toggle[aria-pressed=true]{background:var(--done);border-color:var(--done);color:#fff}.done-toggle[aria-pressed=true] i[data-ic]{animation:.28s cubic-bezier(.2,.7,.2,1) pop}.done-toggle:disabled{opacity:.6;cursor:progress}.done-chip{height:28px;margin-left:var(--space-1);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--done) 16%, transparent);color:var(--done);white-space:nowrap;flex:none;align-items:center;gap:5px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.done-chip i[data-ic]{width:14px;height:14px}.done-toggle-lg{height:40px;padding:0 var(--space-4);font-size:14px}.done-chip-lg{height:36px;padding:0 var(--space-3);font-size:13px}@media (width<=560px){.ml-list .ml-row{flex-wrap:wrap}.ml-list .ml-row-main{flex:120px}.ml-list .ml-row-actions{margin-left:auto}}.side-item:disabled{opacity:.5;cursor:not-allowed}.side-item:disabled:hover{background:0 0}.viewer-problem{place-self:center;justify-items:center;gap:var(--space-2);width:min(560px, calc(100% - 2 * var(--space-4)));margin:var(--space-4);padding:var(--space-6) var(--space-5);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-card);text-align:center;color:var(--ink-muted);font-size:14px;line-height:21px;display:grid}.viewer-problem>i[data-ic]{width:28px;height:28px;color:var(--overdue)}.viewer-problem-title{color:var(--ink);font-size:17px;font-weight:700;line-height:24px}.viewer-problem-text{max-height:40vh;margin:var(--space-1) 0 0;padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface-sunk);color:var(--ink);font-family:var(--font-mono);text-align:left;white-space:pre-wrap;overflow-wrap:anywhere;justify-self:stretch;font-size:13px;line-height:20px;overflow:auto}.viewer-problem-actions{justify-content:center;gap:var(--space-2);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.rail-clock{width:60px;height:60px;margin-bottom:var(--space-5);background:var(--primary);color:var(--on-primary);font-variant-numeric:tabular-nums;cursor:default;border-radius:20px;align-content:center;place-items:center;gap:3px;display:grid;position:relative}.rail-clock-time{letter-spacing:-.02em;font-size:17px;font-weight:800;line-height:1}.rail-clock-colon{margin:0 1px;animation:1s step-end infinite colon;display:inline-block}.rail-clock-zone{letter-spacing:.14em;opacity:.65;font-size:10px;font-weight:700;line-height:1}@keyframes colon{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.rail-clock-colon{animation:none}}.ml-meta{overflow-wrap:anywhere}button.todo{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0}.list-more{margin:var(--space-2) auto 0;justify-self:center;display:flex}.card .list-more{margin:var(--space-2) auto var(--space-3)}.plain-list{gap:6px;margin:0;padding-left:18px;font-size:14px;font-weight:600;line-height:20px;display:grid}.text-btn[aria-current=page]{color:var(--ink);cursor:default;text-decoration:none}.facts{grid-template-columns:max-content minmax(0,1fr)}.facts dd,.facts dd>*{overflow-wrap:anywhere;min-width:0}.face{background:var(--surface-sunk);width:40px;height:40px;color:var(--ink-muted);letter-spacing:.02em;border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid;overflow:hidden}.face img{object-fit:cover;width:100%;height:100%;display:block}.face[data-size=lg]{width:112px;height:112px;font-size:34px}.person-face{flex:none;display:inline-grid;position:relative}.online-dot{background:var(--done);width:12px;height:12px;box-shadow:0 0 0 2px var(--surface-raised);border-radius:50%;position:absolute;bottom:0;right:0}.face[data-size=lg]+.online-dot{width:22px;height:22px;box-shadow:0 0 0 4px var(--surface-raised);bottom:6px;right:6px}.person-row{align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) var(--space-4);color:inherit;border-radius:var(--radius-md);min-width:0;display:flex}.person-row:hover{background:var(--surface-sunk)}.person-row>i[data-ic]{width:16px;height:16px;color:var(--ink-muted);flex:none}.person-row .side-label{font-size:14px;font-weight:700}.profile-card{justify-items:center;gap:var(--space-2);text-align:center;padding:var(--space-2) 0;display:grid}.news-list{gap:var(--space-4);display:grid}.news{gap:var(--space-5);padding:var(--space-5) var(--space-6);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-card);min-width:0;scroll-margin-top:96px;display:flex}.news-date{width:104px;padding-right:var(--space-5);border-right:1px solid var(--line);text-align:center;flex:none;align-content:start;justify-items:center;gap:2px;display:grid}.news-day{letter-spacing:-.03em;font-size:34px;font-weight:800;line-height:38px}.news-month{color:var(--ink-muted);text-transform:capitalize;font-size:13px;font-weight:700;line-height:18px}.news-body{gap:var(--space-2);flex:1;justify-items:start;min-width:0;display:grid}.news-body>.rich{justify-self:stretch}.news-title{overflow-wrap:anywhere;font-size:18px;font-weight:800;line-height:24px}.news-meta{color:var(--ink-muted);font-size:13px;font-weight:600;line-height:18px}.news-excerpt{color:var(--ink-muted);overflow-wrap:anywhere;font-size:14px;line-height:21px}.news-files{gap:var(--space-2);flex-wrap:wrap;display:flex}@media (width<=639px){.news{gap:var(--space-3);padding:var(--space-4);flex-direction:column}.news-date{align-items:baseline;gap:var(--space-2);border:0;width:auto;padding:0;display:flex}.news-day{font-size:22px;line-height:26px}}.cal-nav .cal-today{width:auto;padding:0 var(--space-3);border-radius:var(--radius-pill);font:inherit;font-size:13px;font-weight:700}.cal-nav>a{margin-left:4px}.month{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.month-dow{text-align:center;color:var(--ink-muted);padding:6px 0;font-size:12px;font-weight:700}.month-day{border:1px solid var(--line);border-radius:var(--radius-md);min-width:0;min-height:96px;color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;flex-direction:column;align-items:stretch;gap:4px;padding:6px;transition:background-color .15s ease-out,border-color .15s ease-out;display:flex;position:relative}.month-day:hover{background:var(--surface-sunk)}.month-num{font-variant-numeric:tabular-nums;font-size:13px;font-weight:700}.month-day[data-busy=true] .month-num{color:var(--maroon)}.month-day[data-today=true] .month-num{background:var(--primary);width:24px;height:24px;color:var(--on-primary);border-radius:50%;place-items:center;display:inline-grid}.month-day[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.month-events{gap:3px;min-width:0;display:grid}.month-chip{background:var(--tone-soft);color:var(--tone);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:700;line-height:15px;display:block;overflow:hidden}.month-more{color:var(--ink-muted);font-size:11px;font-weight:700}.month-dots{justify-content:center;gap:3px;display:flex}.month-dots span{background:var(--tone);border-radius:50%;width:5px;height:5px}.month[data-compact=true]{gap:2px}.month[data-compact=true] .month-day{aspect-ratio:1;text-align:center;border:0;border-radius:50%;justify-content:center;align-items:center;gap:2px;min-height:0;padding:0}.month[data-compact=true] .month-day[aria-pressed=true]{box-shadow:none}.month[data-compact=true] .month-dow{padding:4px 0;font-size:11px}@media (width<=760px){.month:not([data-compact=true]) .month-day{align-items:center;min-height:52px;padding:4px 2px}.month:not([data-compact=true]) .month-events{justify-content:center;gap:3px;display:flex}.month:not([data-compact=true]) .month-chip{background:var(--tone);color:#0000;border-radius:50%;width:6px;height:6px;padding:0;font-size:0}.month:not([data-compact=true]) .month-more{display:none}}.event-list{gap:var(--space-3);display:grid}.event{gap:var(--space-3);min-width:0;display:flex}.event-bar{background:var(--tone);border-radius:4px;flex:none;width:4px}.event-body{flex:1;justify-items:start;gap:2px;min-width:0;display:grid}.event-body>.rich{justify-self:stretch;font-size:14px}.event-time{color:var(--ink-muted);font-size:12px;font-weight:700;line-height:16px}.event-name{color:var(--ink);overflow-wrap:anywhere;font-size:15px;font-weight:700;line-height:21px}a.event-name:hover{text-decoration:underline}.event-sub{color:var(--ink-muted);overflow-wrap:anywhere;font-size:13px;line-height:18px}.crumbs{flex-wrap:wrap;align-items:center;gap:4px;font-size:14px;display:flex}.crumbs>span{align-items:center;gap:4px;min-width:0;display:inline-flex}.crumbs i[data-ic]{width:14px;height:14px;color:var(--ink-muted)}.cat-grid{gap:var(--space-2);margin-top:var(--space-3);grid-template-columns:repeat(auto-fill,minmax(min(220px,100%),1fr));display:grid}.cat{align-items:center;gap:var(--space-3);min-width:0;padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;display:flex}.cat:hover{background:var(--surface-sunk)}.cat>i[data-ic]{width:20px;height:20px;color:var(--maroon);flex:none}.cat .side-label{font-size:14px;font-weight:700}.ask{gap:var(--space-3);min-width:0;display:grid}.ask-thread{gap:var(--space-2);max-height:420px;padding-right:2px;display:grid;overflow-y:auto}.ask-thread .bubble{font-size:14px;line-height:21px}.ask-foot{justify-content:space-between;gap:var(--space-2);display:flex}.mini-prompts button:disabled{opacity:.5;cursor:not-allowed}.brand-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.brand{align-items:center;animation:.9s cubic-bezier(.2,.7,.2,1) both brand-reveal;display:inline-flex;position:relative}.brand-logo{width:auto;height:34px;transition:transform .2s ease-out;display:block}.brand-logo-dark,[data-theme=dark] .brand-logo-light{display:none}[data-theme=dark] .brand-logo-dark{display:block}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .brand-logo-light{display:none}:root:not([data-theme=light]) .brand-logo-dark{display:block}}.brand:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000 38%,#fffc 50%,#0000 62%) 160% 0/260% 100% no-repeat;animation:1.2s ease-out .75s both brand-shine;position:absolute;inset:0;-webkit-mask:url(/logo-light.webp) 0/auto 100% no-repeat;mask:url(/logo-light.webp) 0/auto 100% no-repeat}.brand:hover:after{animation:.9s ease-out both brand-shine-again}.brand:hover .brand-logo{transform:translateY(-1px)}@keyframes brand-reveal{0%{clip-path:inset(0 100% 0 0);opacity:.3}to{clip-path:inset(0);opacity:1}}@keyframes brand-shine{0%{background-position:160% 0}to{background-position:-60% 0}}@keyframes brand-shine-again{0%{background-position:160% 0}to{background-position:-60% 0}}.drawer .brand-logo{height:30px}.ml-nav-brand .brand-logo{height:44px}@media (width<=639px){.topbar .brand-logo{height:28px}}@media (prefers-reduced-motion:reduce){.brand,.brand:after,.brand:hover:after{animation:none}.brand:after{display:none}}@media (width>=1024px) and (height<=660px){.rail{padding:var(--space-3) 0;gap:6px}.rail-clock{height:52px;margin-bottom:var(--space-2)}.rail-items{gap:4px;padding:6px}.rail-item,.rail-avatar{width:42px;height:42px}}.cmenu{align-content:start;gap:var(--space-2);grid-auto-rows:max-content;display:grid;position:relative}@media (width>=1024px){.cmenu-card .cmenu{max-height:min(70vh,760px);margin:0 calc(var(--space-2) * -1);padding:0 var(--space-2);overflow-y:auto}}.cmenu-sec{border:1px solid var(--line);border-radius:var(--radius-md);overflow:clip}.cmenu-head{align-items:center;gap:var(--space-2);width:100%;min-height:44px;padding:var(--space-2) var(--space-3);background:var(--maroon-soft);color:var(--ink);font:inherit;text-align:left;cursor:pointer;border:0;font-size:14px;font-weight:700;display:flex}.cmenu-name{overflow-wrap:anywhere;flex:1;min-width:0}.cmenu-count{color:var(--ink-muted);font-variant-numeric:tabular-nums;flex:none;font-size:12px;font-weight:700}.cmenu-head>i[data-ic]{width:16px;height:16px;color:var(--ink-muted);flex:none;transition:transform .16s ease-out;transform:rotate(-90deg)}.cmenu-head[aria-expanded=false]>i[data-ic]{transform:rotate(90deg)}.cmenu-list{padding:var(--space-1) 0;margin:0;list-style:none}.cmenu-item{align-items:flex-start;gap:var(--space-2);padding:7px var(--space-3);color:var(--ink);min-width:0;font-size:14px;font-weight:500;line-height:20px;display:flex}.cmenu-item:hover{background:var(--surface-sunk)}.cmenu-item[aria-current=page]{background:var(--surface-sunk);box-shadow:inset 3px 0 0 var(--ink);font-weight:800}.cmenu-item[data-locked=true]{color:var(--ink-muted)}.cmenu-title{overflow-wrap:anywhere;flex:1;min-width:0}@media (width<=1023px){.panels:has(.cmenu-card)>.panel-left{order:1}}.cmark{border-radius:50%;flex:none;place-items:center;width:18px;height:18px;margin-top:1px;display:grid}.cmark i[data-ic]{width:14px;height:14px}.cmark[data-state=done]{color:var(--done)}.cmark[data-state=done] i[data-ic]{stroke-width:2.6px;width:17px;height:17px}.cmark[data-state=todo]{border:1.5px solid var(--ink-muted);width:15px;height:15px;margin:2px 1.5px 0}.cmark[data-state=locked]{color:var(--ink-muted)}.ml-row[data-locked=true] .ml-tile{background:var(--surface-sunk);color:var(--ink-muted)}.ml-row[data-locked=true] .ml-row-title a{color:var(--ink-muted)}.grades{display:grid}.grade-row{align-items:center;gap:var(--space-3);padding:var(--space-3) 0;border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) 90px 110px 100px;font-size:14px;line-height:20px;display:grid}.grade-headrow{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;border-top:0;padding-top:0;font-size:12px;font-weight:700}.grade-row>span:not(.grade-name){text-align:right;font-variant-numeric:tabular-nums}.grade-name{align-items:baseline;gap:4px var(--space-2);overflow-wrap:anywhere;flex-wrap:wrap;min-width:0;font-weight:600;display:flex}.grade-name a{color:var(--ink)}.grade-name a:hover{text-decoration:underline}.grade-weight{color:var(--ink-muted);font-size:12px;font-weight:600}.grade-value{font-weight:800}.grade-row[data-kind=category]{background:var(--surface-sunk);margin:0 calc(var(--space-3) * -1);padding-left:var(--space-3);padding-right:var(--space-3);border-radius:var(--radius-sm)}.grade-row[data-kind=course]{border-top:2px solid var(--ink);font-size:15px}.grade-row[data-kind=course] .grade-name{font-weight:800}.grade-feedback{padding:0 0 var(--space-3);font-size:14px}@media (width<=639px){.grade-headrow{display:none}.grade-row{gap:4px var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr))}.grade-name{grid-column:1/-1}.grade-row>span:not(.grade-name){text-align:left;font-size:13px}.grade-row>span[data-label]:before{content:attr(data-label) " ";color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:700;display:block}}.embed{aspect-ratio:16/9;width:100%;margin:var(--space-3) 0;border-radius:var(--radius-md);background:#000;position:relative;overflow:hidden}.embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.rich video,.rich audio{width:100%;max-width:100%;margin:var(--space-3) 0;border-radius:var(--radius-md);display:block}.rich video{background:#000;max-height:70vh}.cmenu-sec[data-locked=true] .cmenu-head{background:var(--surface-sunk);color:var(--ink-muted)}.cmenu-lock{color:var(--ink-muted);flex:none;place-items:center;display:grid}.cmenu-lock i[data-ic]{width:15px;height:15px}.cmenu-empty{padding:var(--space-2) var(--space-3);color:var(--ink-muted);overflow-wrap:anywhere;margin:0;font-size:13px;line-height:18px}.locked-list{padding:0 0 var(--space-2);margin:0;list-style:none;display:grid}.locked-list li{align-items:flex-start;gap:var(--space-3);padding:var(--space-2) var(--space-4);min-width:0;display:flex}.locked-list li+li{border-top:1px solid var(--line)}.locked-list li>i[data-ic]{width:16px;height:16px;color:var(--ink-muted);flex:none;margin-top:2px}.sec-title{align-items:center;gap:var(--space-2);display:inline-flex}.sec-title i[data-ic]{width:16px;height:16px;color:var(--ink-muted)}.sec-summary{padding:0 var(--space-4) var(--space-2);font-size:14px}.sec-empty{padding:0 var(--space-4) var(--space-4)}.group-desc{padding:0 var(--space-4) var(--space-2);font-size:14px}.person-me{background:var(--surface-sunk)}.person-me .side-sub{color:var(--maroon);font-weight:700}.bulk-bar{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-card);flex-wrap:wrap;display:flex}.bulk-text{flex:260px;gap:2px;min-width:0;display:grid}.bulk-title{font-size:15px;font-weight:700;line-height:21px}.bulk-actions,.bulk-ask{gap:var(--space-2);flex-wrap:wrap;display:inline-flex}.card-action .done-toggle{margin-left:0}.cert-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fill,minmax(min(300px,100%),1fr));display:grid}.cert{gap:var(--space-3) var(--space-4);padding:var(--space-5);border-radius:var(--radius-lg);background:var(--surface-raised);box-shadow:var(--shadow-card);grid-template-columns:auto minmax(0,1fr);align-content:start;min-width:0;display:grid}.cert-icon{color:#d9801a;background:#f6a6232e;border-radius:16px;place-items:center;width:48px;height:48px;display:grid}.cert-icon i[data-ic]{width:24px;height:24px}.cert[data-locked=true] .cert-icon{background:var(--surface-sunk);color:var(--ink-muted)}.cert-body{gap:2px;min-width:0;display:grid}.cert-course{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.03em;overflow-wrap:anywhere;font-size:12px;font-weight:700;line-height:16px}.cert-title{overflow-wrap:anywhere;font-size:16px;font-weight:800;line-height:22px}.cert-title a{color:var(--ink)}.cert-title a:hover{text-decoration:underline}.cert-actions{gap:var(--space-2);flex-wrap:wrap;grid-column:1/-1;display:flex}.embed-h5p{aspect-ratio:16/10.5;background:var(--surface-sunk)}.cmenu-subhead{padding:8px var(--space-3) 2px;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.03em;overflow-wrap:anywhere;align-items:center;gap:6px;font-size:13px;font-weight:800;line-height:18px;display:flex}.cmenu-subhead i[data-ic]{width:13px;height:13px}.cmenu-item[data-nested=true]{padding-left:calc(var(--space-3) + 14px)}.sec-subhead{padding:var(--space-3) var(--space-4) var(--space-1);border-top:1px solid var(--line);color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;overflow-wrap:anywhere;align-items:center;gap:6px;font-size:12px;font-weight:800;line-height:16px;display:flex}.sec-subhead i[data-ic]{width:13px;height:13px}.staff-label{margin-top:var(--space-2);font-weight:700}.staff-tools{align-items:center;gap:var(--space-2) var(--space-3);padding:0 var(--space-4) var(--space-3);flex-wrap:wrap;display:flex}.staff-tools>.ml-input{flex:220px;min-width:0}.group-picker{align-items:center;gap:var(--space-2);min-width:0;max-width:100%;color:var(--ink-muted);font-size:13px;font-weight:700;display:inline-flex}.group-picker.grow{flex:260px}.group-picker select{width:100%;min-width:0;max-width:100%;height:38px;padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--ink);font:inherit;flex:1;font-size:14px;font-weight:600}.staff-note{margin:0 var(--space-4) var(--space-3)}.staff-list{display:grid}.staff-row{justify-content:space-between;align-items:flex-start;gap:var(--space-2) var(--space-4);padding:var(--space-3) var(--space-4);border-top:1px solid var(--line);color:inherit;flex-wrap:wrap;min-width:0;display:flex}a.staff-row:hover{background:var(--surface-sunk)}.staff-main{flex:260px;justify-items:start;gap:3px;min-width:0;display:grid}.staff-main .side-label{color:var(--ink);font-size:14px;font-weight:700}.staff-meta{text-align:right;overflow-wrap:anywhere;flex-wrap:wrap;flex:0 300px;justify-content:flex-end;align-items:center;gap:6px;min-width:0;font-size:13px;line-height:18px;display:flex}.staff-meta>span:not(.ml-badge){flex-basis:100%}.staff-progress{flex:0 220px}.staff-progress .ml-progress{width:100%}.sub-files{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.file-chip{border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface-raised);max-width:100%;min-height:32px;color:var(--ink);font:inherit;text-align:left;overflow-wrap:anywhere;cursor:pointer;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.file-chip:hover{background:var(--surface-sunk)}.file-chip i[data-ic]{width:14px;height:14px;color:var(--maroon);flex:none}.sub-text{padding:var(--space-3);border-radius:var(--radius-md);background:var(--surface-sunk);justify-self:stretch;font-size:14px}.table-scroll{margin:0 0 var(--space-3);overflow-x:auto}.staff-table{border-collapse:collapse;width:max-content;min-width:100%;font-size:13px;line-height:18px}.staff-table th,.staff-table td{padding:var(--space-2) var(--space-3);border-top:1px solid var(--line);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.staff-table thead th{white-space:normal;vertical-align:bottom;max-width:160px;color:var(--ink-muted);font-size:12px;font-weight:700}.staff-table th[scope=row],.staff-table thead th:first-child{z-index:1;text-align:left;background:var(--surface-raised);white-space:normal;max-width:220px;color:var(--ink);font-weight:700;position:sticky;left:0}.staff-table a{color:inherit}.staff-table a:hover{text-decoration:underline}.staff-table [data-total=true]{color:var(--ink);font-weight:800}@media (width<=639px){.staff-meta{text-align:left;flex-basis:100%;justify-content:flex-start}.group-picker{flex:100%}}.grade-form{align-items:flex-end;gap:var(--space-3);margin-top:var(--space-2);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--surface-sunk);flex-wrap:wrap;flex:100%;min-width:0;display:flex}.grade-form>.note{flex-basis:100%;margin:0}.grade-field{min-width:0;color:var(--ink-muted);gap:4px;font-size:12px;font-weight:700;display:grid}.grade-field.grow{flex:260px}.grade-field input,.grade-field textarea{width:100%;min-width:0;padding:var(--space-2) var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-md);background:var(--surface-raised);color:var(--ink);font:inherit;font-size:15px;font-weight:500}.grade-field input{font-variant-numeric:tabular-nums;width:110px;font-weight:700}.grade-field input[aria-invalid=true]{border-color:var(--overdue)}.grade-field textarea{resize:vertical;min-height:64px;line-height:21px}.grade-actions{gap:var(--space-2);flex-wrap:wrap;flex-basis:100%;display:flex}
