:root{--bg:#f5f6f8;--surface:#fff;--text:#1c2430;--muted:#5a6574;--line:#d9dee6;--primary:#1f5fd1;--primary-text:#fff;--ok:#17703a;--bad:#b3261e;--warn-bg:#fff7e0;--warn-line:#e0b84a;--radius:10px}@media (prefers-color-scheme:dark){:root{--bg:#12161c;--surface:#1b212a;--text:#e8ecf2;--muted:#9aa5b5;--line:#2d3644;--primary:#6a9bf5;--primary-text:#0b1220;--ok:#5fcf8a;--bad:#ff8a80;--warn-bg:#3a3017;--warn-line:#8c7424}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.page{max-width:1040px;margin:0 auto;padding:16px}h1{margin:8px 0 12px;font-size:1.6rem}h2{margin:0 0 8px;font-size:1.15rem}a{color:var(--primary)}.muted{color:var(--muted)}.error{color:var(--bad)}.ok{color:var(--ok)}.bad{color:var(--bad)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.demo-banner{background:var(--warn-bg);border-bottom:1px solid var(--warn-line);flex-wrap:wrap;align-items:center;gap:12px;padding:6px 16px;font-size:.9rem;display:flex}.demo-toggle{align-items:center;gap:6px;margin:0 0 0 auto;font-weight:400;display:flex}.demo-toggle input{width:auto;min-height:0;margin:0}.topbar{background:var(--surface);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 16px;display:flex}.topbar .brand{font-weight:700;text-decoration:none}.topbar .who{color:var(--muted);margin-left:auto}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin:12px 0;padding:16px}.card.narrow,.narrow{max-width:420px;margin-left:auto;margin-right:auto}.card.warn{background:var(--warn-bg);border-color:var(--warn-line)}.login{text-align:center}.login form{text-align:left}.logo{justify-content:center;align-items:center;height:72px;margin-bottom:8px;display:flex}.logo img{max-width:220px;max-height:72px}.logo-fallback{background:var(--primary);width:64px;height:64px;color:var(--primary-text);border-radius:50%;place-items:center;font-size:1.8rem;font-weight:700;display:grid}.powered{color:var(--muted);margin:16px 0 0;font-size:.85rem}label{margin:10px 0;font-weight:600;display:block}label>input,label>textarea,label>select{width:100%;margin-top:4px;font-weight:400;display:block}input,textarea,select{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--line);border-radius:6px;min-height:40px;padding:8px}input:focus-visible,textarea:focus-visible,select:focus-visible,.btn:focus-visible,a:focus-visible{outline:3px solid var(--primary);outline-offset:2px}fieldset.form{border:0;min-width:0;margin:0;padding:0}.grid2{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}@media (width<=640px){.grid2{grid-template-columns:1fr}}.btn{font:inherit;border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;min-height:40px;padding:8px 14px;text-decoration:none;display:inline-block}.btn-primary{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.btn-quiet{background:0 0;border-color:#0000}.btn:disabled{opacity:.5;cursor:not-allowed}.row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:8px;display:flex}.assignments{margin:0;padding:0;list-style:none}.assignments li{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:12px;padding:10px 0;display:flex}.assignments .code{min-width:48px;font-weight:700}.assignments .title{flex:1;min-width:140px}.chip{border:1px solid var(--line);border-radius:999px;padding:2px 10px;font-size:.85rem;display:inline-block}.chip-submitted{color:var(--ok);border-color:var(--ok)}.chip-draft{color:var(--primary);border-color:var(--primary)}.chip-not_started,.chip-planned{color:var(--muted)}.savebar{z-index:2;border:1px solid var(--line);background:var(--surface);border-radius:8px;margin:8px 0;padding:8px 12px;position:sticky;top:0}.savebar-saved{color:var(--ok)}.savebar-offline,.savebar-error{color:var(--bad);border-color:var(--bad)}.savebar-conflict{background:var(--warn-bg);border-color:var(--warn-line)}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 8px}table.steps td input,table.steps td select{width:100%;min-width:120px}tfoot th,tfoot td{border-top:2px solid var(--line);font-weight:600}.checks,.warnings{margin:8px 0;padding:0;list-style:none}.checks li{padding:2px 0}pre{background:var(--bg);white-space:pre-wrap;border-radius:8px;padding:12px;overflow-x:auto}.actions{flex-wrap:wrap;align-items:center;gap:12px;margin:18px 0;display:flex}.table-wrap{max-width:100%;overflow-x:auto}.lecture-frame{background:#fff;border:0;width:100%;height:70vh}.tenant-logo{object-fit:contain;max-width:160px;max-height:100px}.json-editor{min-height:420px;font-family:monospace}.submission-image{object-fit:contain;max-width:100%;max-height:480px}.dossier-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}pre{white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%}fieldset{border:1px solid #d5dfdc;border-radius:12px;min-width:0;margin:16px 0;padding:16px}.slips{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.slip{break-inside:avoid;overflow-wrap:anywhere;border:1px dashed #738780;padding:12px}button{font:inherit;border:1px solid var(--line);background:var(--surface);min-height:40px;color:var(--text);cursor:pointer;border-radius:8px;padding:8px 14px}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.check{cursor:pointer;align-items:flex-start;gap:10px;font-weight:400;display:flex}.check>input{width:20px;height:20px;min-height:20px;accent-color:var(--primary);flex:none;margin:2px 0 0}.topbar>a:first-child{font-weight:700;text-decoration:none}.topbar>span{color:var(--muted);margin-right:auto}details>summary{cursor:pointer;padding:8px 0;font-weight:650}.dossier-grid .card{margin:0}@media (width<=600px){.topbar{flex-wrap:wrap}.slips{grid-template-columns:1fr}.page{padding:12px}.card{padding:16px}table{font-size:13px}}@media print{.no-print,header,button{display:none!important}.slips{grid-template-columns:1fr 1fr;gap:6mm}.slip{height:60mm}.page{max-width:none;padding:0}.card{box-shadow:none;break-inside:avoid}body{background:#fff}.report{border:0}@page{size:A4;margin:10mm}}:is(.page:has(.learning-shell),.page:has(.guided-workspace)){max-width:1420px}.learning-shell,.guided-workspace{--learn-soft:color-mix(in srgb,var(--primary) 9%,var(--surface));padding-bottom:50px}.learning-hero,.work-hero{background:linear-gradient(120deg,var(--learn-soft),var(--surface));border:1px solid var(--line);border-radius:20px;margin-bottom:24px;padding:28px 32px}.back-link{color:var(--muted);margin-bottom:20px;font-size:14px;text-decoration:none;display:inline-block}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--primary);margin:0 0 10px;font-size:11px;font-weight:750}.hero-line{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.hero-line h1{margin:0 0 16px;font-size:clamp(26px,3vw,38px);line-height:1.18}.hero-line p{max-width:800px;line-height:1.6}.lesson-progress{text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-direction:column;min-width:110px;padding:18px;display:flex}.lesson-progress strong{font-size:30px}.lesson-progress span{color:var(--muted);font-size:12px}.learning-toolbar,.session-list{flex-wrap:wrap;align-items:center;gap:8px;margin-top:20px;display:flex}.learning-toolbar button.active{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.learning-toolbar>a{padding:9px 12px;text-decoration:none}.learning-toolbar .journey-toggle{color:var(--muted);background:0 0;margin-left:auto;font-size:13px}.session-list a{border:1px solid var(--line);border-radius:30px;padding:8px 14px;text-decoration:none}.session-list [aria-current]{background:var(--surface)}.lesson-layout,.work-layout{grid-template-columns:250px minmax(0,1fr);gap:24px;display:grid}.lesson-outline,.work-outline{border:1px solid var(--line);background:var(--surface);border-radius:16px;align-self:start;padding:18px 14px;position:sticky;top:80px}.lesson-outline>button,.work-outline>button{text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:12px;width:100%;margin-top:8px;padding:13px 10px;line-height:1.4;display:flex}.lesson-outline .selected,.work-outline .selected{background:var(--learn-soft);border-color:var(--primary)}.chapter-number{border:1px solid var(--line);min-width:27px;height:27px;color:var(--primary);border-radius:50%;place-items:center;font-size:12px;font-weight:700;display:grid}.lesson-outline small{color:var(--muted);margin-top:4px;font-size:11px;display:block}.lesson-main,.work-main{background:var(--surface);border:1px solid var(--line);border-radius:20px;min-width:0;overflow:hidden}.lesson-heading{justify-content:space-between;align-items:center;gap:16px;padding:22px 24px;display:flex}.lesson-heading h2{margin:0 0 8px;font-size:23px}.lesson-heading p{color:var(--muted);margin:0;line-height:1.6}.lesson-main .lecture-frame{background:#090d1b;border:0;border-radius:0;width:100%;height:clamp(390px,55vw,620px);display:block}.chapter-footer,.work-actions{justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;display:flex}.primary-link{background:var(--primary);color:var(--primary-text);border-radius:10px;justify-content:center;align-items:center;padding:12px 18px;font-weight:650;line-height:1.4;text-decoration:none;display:inline-flex}.learning-note{color:var(--muted);margin:0;padding:0 24px 18px;font-size:12px;line-height:1.6}.work-outline .learning-note{padding:20px 4px 0}.resource-grid,.assignment-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.resource-card,.assignment-card{border:1px solid var(--line);background:var(--surface);border-radius:18px;padding:26px}.resource-card h2,.assignment-card h2{margin:16px 0;font-size:22px;line-height:1.35}.resource-kind{letter-spacing:.1em;color:var(--muted);font-size:11px;font-weight:750}.resource-card a{font-weight:650;text-decoration:none}.assignment-card p{color:var(--muted);line-height:1.65}.status-pill{background:var(--bg);border:1px solid var(--line);white-space:normal;border-radius:20px;padding:7px 11px;font-size:12px;line-height:1.5;display:inline-flex}.status-pill.done{color:var(--ok);background:color-mix(in srgb,var(--ok) 10%,var(--surface));border-color:color-mix(in srgb,var(--ok) 30%,var(--line))}.work-main{padding:28px}.section-heading h2,.work-main>h2{margin:0 0 12px;font-size:27px}.section-heading p{max-width:720px;line-height:1.7}.section-heading{border-bottom:1px solid var(--line);margin-bottom:24px;padding-bottom:20px}.work-main label{line-height:1.55}.work-main textarea,.work-main input,.work-main select{border-radius:10px;min-height:46px}.work-main textarea{min-height:115px}.fixed-work{margin:16px 0}.work-counter{justify-content:space-between;align-items:center;gap:12px;display:flex}.work-counter>strong{white-space:nowrap;font-size:12px}.fixed-work progress{width:100%;height:5px;accent-color:var(--primary);margin:14px 0 24px}.fixed-step-card{background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:24px}.fixed-step-card h3{margin:0 0 12px;font-size:24px;line-height:1.4}.fixed-step-card>.muted{margin-bottom:22px;font-size:13px;line-height:1.6}.fixed-step-card label{margin-top:18px}.fixed-work .work-actions{padding:18px 0}.step-grid{gap:8px;margin-top:12px;display:grid}.step-grid button{text-align:left;justify-content:space-between;display:flex}.step-grid [aria-current]{border-color:var(--primary)}.sticky-work-actions{background:var(--surface);border-top:1px solid var(--line);z-index:2;margin:28px -28px -28px;padding:18px 28px;position:sticky;bottom:0}.review-section{border:1px solid var(--line);border-radius:14px;margin:16px 0;padding:20px}.review-section h3{margin:0;font-size:18px}.review-section>.work-counter>span{color:var(--muted);font-size:12px}.review-rows>article{border-bottom:1px solid var(--line);padding:12px 0}.review-rows h4{margin:0 0 12px}.review-rows dl>div{grid-template-columns:180px minmax(0,1fr);gap:12px;margin:8px 0;display:grid}.review-rows dt{color:var(--muted)}.review-rows dd{margin:0}.preserve-lines{white-space:pre-wrap;overflow-wrap:anywhere}.validation-summary{border:1px solid var(--warn-line);background:var(--warn-bg);border-radius:12px;padding:18px}.validation-summary li{margin:8px 0;line-height:1.5}.submitted-summary{background:var(--learn-soft);border-radius:14px;margin-top:20px;padding:20px}.sync-now{color:var(--muted);margin-top:26px;font-size:12px}.answer-panel,.feedback-panel{border-top:1px solid var(--line);margin-top:22px;padding-top:20px}.empty-learning{padding:40px}@media (width<=900px){.lesson-layout,.work-layout{grid-template-columns:1fr}.lesson-outline,.work-outline{gap:8px;max-width:100%;padding:10px;display:flex;position:static;overflow-x:auto}.lesson-outline>.eyebrow,.work-outline>.eyebrow,.work-outline>.learning-note{display:none}.lesson-outline>button,.work-outline>button{flex-shrink:0;width:auto;min-width:190px;margin:0}.lesson-outline small{display:none}.learning-hero,.work-hero,.work-main{padding:22px}.sticky-work-actions{margin:22px -22px -22px;padding:16px 22px}.lesson-main .lecture-frame{height:420px}}@media (width<=600px){.learning-hero,.work-hero{border-radius:14px;padding:18px}.hero-line{flex-wrap:wrap;gap:12px}.hero-line h1{font-size:27px}.lesson-progress{flex-direction:row;align-items:center;gap:10px;min-width:0;padding:8px 12px}.lesson-progress strong{font-size:20px}.learning-toolbar .journey-toggle{margin:0}.resource-grid,.assignment-grid{grid-template-columns:1fr}.lesson-heading{flex-direction:column;align-items:flex-start;padding:18px}.lesson-heading h2{font-size:21px}.lesson-main .lecture-frame{height:300px}.chapter-footer,.work-actions{flex-wrap:wrap;padding:16px}.chapter-footer .primary-link{width:100%}.work-main,.fixed-step-card{padding:18px}.fixed-step-card h3{font-size:21px}.work-counter{flex-wrap:wrap}.sticky-work-actions{margin:22px -18px -18px;padding:14px 18px}.review-rows dl>div{grid-template-columns:1fr;gap:2px}.learning-note{padding:0 18px 16px}.resource-card,.assignment-card{padding:20px}}.file-gallery{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:16px 0;display:grid}.file-gallery figure{border:1px solid var(--line);background:var(--surface);border-radius:12px;margin:0;padding:10px}.file-gallery img{object-fit:contain;width:100%;height:180px}.file-gallery figcaption{color:var(--muted);padding-top:10px;font-size:12px}.continue-chapter{background:var(--learn-soft);color:var(--primary);margin:0 24px 20px}:root{--bg:#f4f5fb;--surface:#fff;--surface-2:#eef0f8;--text:#0f1424;--muted:#566079;--line:#e1e5f0;--primary:#5b34d6;--primary-text:#fff;--accent:#0e7490;--ok:#0b7a48;--bad:#c1272d;--warn-bg:#fff6dc;--warn-line:#e2b23c;--radius:14px;--grad:linear-gradient(135deg,#0e7490 0%,#7c3aed 100%);--shadow-sm:0 1px 2px #0f14240f,0 1px 1px #0f14240a;--shadow-md:0 12px 30px -14px #0f142447;--ring:0 0 0 3px color-mix(in srgb,var(--primary) 26%,transparent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0b0d13;--surface:#141822;--surface-2:#1b2030;--text:#e8ebf3;--muted:#9aa4ba;--line:#262d3f;--primary:#67e8f9;--primary-text:#04141a;--accent:#22d3ee;--ok:#4ade80;--bad:#ff8a80;--warn-bg:#33290f;--warn-line:#8a6d1f;--shadow-sm:0 1px 2px #0006;--shadow-md:0 12px 30px -14px #000000b3;--ring:0 0 0 3px color-mix(in srgb,var(--primary) 30%,transparent)}}body{-webkit-font-smoothing:antialiased;background-color:var(--bg);background-image:radial-gradient(56rem 26rem at 0% -8%,color-mix(in srgb,var(--accent) 11%,transparent),transparent 62%),radial-gradient(48rem 24rem at 100% -8%,#7c3aed1c,transparent 62%);background-repeat:no-repeat;min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1,h2,h3{letter-spacing:-.02em;line-height:1.22}h1{margin:6px 0 14px;font-size:clamp(1.55rem,2.2vw + .8rem,2.05rem);font-weight:750}h2{font-weight:700}.page{padding:clamp(14px,3vw,28px)}.page>*{animation:.38s backwards el-rise}@keyframes el-rise{0%{opacity:0;transform:translateY(6px)}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.topbar{z-index:30;background:color-mix(in srgb,var(--surface) 80%,transparent);-webkit-backdrop-filter:saturate(1.5)blur(14px);backdrop-filter:saturate(1.5)blur(14px);gap:14px;padding:10px clamp(12px,3vw,28px);position:sticky;top:0}.topbar .brand{color:var(--text);letter-spacing:-.01em;white-space:nowrap;align-items:center;gap:10px;font-weight:750;text-decoration:none;display:inline-flex}.brand-mark{background:var(--grad);color:#fff;border-radius:9px;place-items:center;width:32px;height:32px;font-size:15px;font-weight:800;display:grid;box-shadow:0 6px 14px -6px #7c3aed}.topnav{scrollbar-width:none;flex:1;gap:2px;min-width:0;display:flex;overflow-x:auto}.topnav::-webkit-scrollbar{display:none}.topnav a{color:var(--muted);white-space:nowrap;border-radius:9px;padding:7px 12px;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s,color .15s}.topnav a:hover{background:var(--surface-2);color:var(--text)}.topnav a[aria-current=page]{background:var(--surface-2);color:var(--text);box-shadow:inset 0 -2px 0 var(--primary)}.topbar>.user-chip{color:var(--text);align-items:center;gap:10px;margin-right:0;display:inline-flex}.avatar{background:var(--grad);color:#fff;letter-spacing:.02em;border-radius:50%;place-items:center;width:34px;height:34px;font-size:.78rem;font-weight:750;display:grid}.user-meta{line-height:1.2;display:grid}.user-meta strong{font-size:.86rem;font-weight:650}.user-meta small{color:var(--muted);font-size:.72rem}.topbar>button{min-height:36px;box-shadow:none;color:var(--muted);background:0 0;border-color:#0000;padding:6px 12px;font-size:.88rem}.topbar>button:hover{color:var(--text);background:var(--surface-2)}@media (width<=700px){.user-meta{display:none}.topnav{flex-basis:100%;order:3}.topbar .brand-name{display:none}}button,.btn,.primary-link{transition:background .15s,border-color .15s,box-shadow .15s,transform 80ms,filter .15s}button,.btn{min-height:42px;box-shadow:var(--shadow-sm);border-radius:10px;padding:9px 16px;font-weight:600}button:hover:not(:disabled),.btn:hover{border-color:color-mix(in srgb,var(--primary) 50%,var(--line))}button:active:not(:disabled),.btn:active{transform:translateY(1px)}.btn-primary,.primary-link,.learning-toolbar button.active{background:var(--grad);color:#fff;border-color:#0000;box-shadow:0 8px 18px -8px #7c3aedb3}.btn-primary:hover:not(:disabled),.primary-link:hover,.learning-toolbar button.active:hover{filter:brightness(1.08);border-color:#0000}.btn-quiet{box-shadow:none;background:0 0}.btn{text-align:center}button:disabled{box-shadow:none}.card{border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:20px}.card.warn{box-shadow:none}label{font-size:.92rem}input,textarea,select{background:var(--surface);border-radius:10px;min-height:44px;padding:9px 12px;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:var(--ring)}input[type=checkbox],input[type=radio]{accent-color:var(--primary)}.check.tile{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:12px 14px;transition:border-color .15s}.check.tile:has(input:checked){border-color:var(--primary)}fieldset{border-color:var(--line);border-radius:var(--radius);background:var(--surface)}details{border-radius:12px}pre{background:var(--surface-2);border:1px solid var(--line)}details>summary{border-radius:8px}.chip{background:var(--surface-2);align-items:center;gap:6px;padding:3px 11px;font-size:.8rem;font-weight:650;display:inline-flex}.chip:before{content:"○";font-size:.9em}.chip-submitted{background:color-mix(in srgb,var(--ok) 12%,var(--surface))}.chip-submitted:before{content:"✓"}.chip-draft{background:color-mix(in srgb,var(--primary) 10%,var(--surface))}.chip-draft:before{content:"◐"}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.status-pill:before{content:"○ ";opacity:.7}.status-pill.done:before{content:"✓ ";opacity:1}.meter{background:var(--surface-2);border-radius:99px;height:8px;overflow:hidden}.meter>i{border-radius:inherit;background:var(--grad);height:100%;transition:width .5s;display:block}progress{appearance:none;background:var(--surface-2);border:0;border-radius:99px;overflow:hidden}progress::-webkit-progress-bar{background:var(--surface-2)}progress::-webkit-progress-value{background:var(--grad);border-radius:99px}progress::-moz-progress-bar{background:var(--grad)}.seg{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;gap:4px;margin:6px 0 18px;padding:4px;display:inline-flex}.seg button{min-height:38px;box-shadow:none;color:var(--muted);background:0 0;border:0;padding:6px 16px}.seg button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.class-card{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;padding:22px;transition:box-shadow .2s,border-color .2s;display:grid}.class-card:hover{box-shadow:var(--shadow-md);border-color:color-mix(in srgb,var(--primary) 35%,var(--line))}.class-card.featured{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 11%,var(--surface)),color-mix(in srgb,#7c3aed 11%,var(--surface)));border-color:color-mix(in srgb,var(--primary) 35%,var(--line))}.class-card h2{margin:0 0 4px;font-size:1.25rem}.class-card p{margin:0}.class-card .eyebrow{margin-bottom:6px}.class-card .btn-primary:after{content:" →"}.progress-line{max-width:440px;color:var(--muted);gap:7px;margin-top:14px;font-size:.85rem;display:grid}.empty-state{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:var(--radius);padding:44px 20px}@media (width<=600px){.class-card{grid-template-columns:1fr}.class-card .btn{width:100%}}.card.start-card{max-width:580px;margin:20px auto}.stepper{counter-reset:step;gap:10px;margin:0 0 20px;padding:0;list-style:none;display:flex}.stepper li{color:var(--muted);flex:1;align-items:center;gap:10px;font-size:.86rem;font-weight:600;display:flex}.stepper li:before{counter-increment:step;content:counter(step);border:1px solid var(--line);background:var(--surface-2);border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-size:.8rem;display:grid}.stepper li[aria-current=step]{color:var(--text)}.stepper li[aria-current=step]:before{background:var(--grad);color:#fff;border-color:#0000}.stepper li.done:before{content:"✓";background:var(--ok);color:#fff;border-color:#0000}.stepper li+li:after{content:none}.lead{color:var(--muted);margin:0 0 16px}.table-wrap{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm)}table{font-size:.92rem}th{background:var(--surface-2);color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.74rem;font-weight:700;position:sticky;top:0}th,td{padding:11px 14px}tbody tr:hover{background:color-mix(in srgb,var(--surface-2) 70%,transparent)}tbody tr:last-child td{border-bottom:0}.stats{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:12px 0 18px;display:grid}.stat{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-sm);padding:16px 18px}.stat strong{letter-spacing:-.02em;font-size:1.75rem;line-height:1.1;display:block}.stat span{color:var(--muted);font-size:.82rem}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:12px;margin:6px 0 4px;display:flex}.toolbar label{min-width:220px;margin:0}.toolbar>.stats{flex:100%;order:3;margin:12px 0 0}.actions>a{border:1px solid var(--line);background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);border-radius:999px;padding:6px 14px;font-size:.9rem;font-weight:600;text-decoration:none;transition:border-color .15s}.actions>a:hover{border-color:var(--primary)}.actions>a[aria-current=page]{background:var(--grad);color:#fff;border-color:#0000}.roster-grid{grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:14px;display:grid}.roster-grid>.card{flex-direction:column;gap:6px;margin:0;display:flex}.roster-grid h2{margin:0;font-size:1.05rem}.roster-grid p{color:var(--muted);margin:0;font-size:.9rem}.roster-grid button{align-self:flex-start}.roster-grid>.card>a{margin-top:auto;font-weight:650;text-decoration:none}.learning-hero,.work-hero{box-shadow:var(--shadow-sm);border-radius:22px}.lesson-main,.work-main,.lesson-outline,.work-outline{box-shadow:var(--shadow-sm)}.lesson-outline .selected .chapter-number,.work-outline .selected .chapter-number{background:var(--grad);color:#fff;border-color:#0000}.lesson-progress strong{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text}.resource-card,.assignment-card{box-shadow:var(--shadow-sm);transition:box-shadow .2s,transform .2s}.resource-card:hover,.assignment-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.sticky-work-actions{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.error,[role=alert].error{font-weight:550}@media print{.topbar{display:none!important}body{background:#fff}}@media (width<=600px){.seg{width:100%;display:flex}.seg button{flex:1;padding:6px;font-size:.86rem}.topbar>.user-chip{margin-left:auto}}@media (prefers-color-scheme:dark){.lesson-progress strong{background:linear-gradient(135deg,#67e8f9,#c4b5fd);-webkit-background-clip:text;background-clip:text}}.hero-meta{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.hero-meta .chip:before{content:none}.objectives{border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 70%,transparent);border-radius:12px;margin-top:14px;padding:12px 16px}.objectives summary{padding:0;font-size:.9rem}.objectives ul{margin:8px 0 0;padding-left:20px;line-height:1.6}.lesson-progress{align-items:center;gap:6px}.lesson-progress small{color:var(--muted);font-size:.72rem}.ring{--p:0;background:conic-gradient(var(--accent) calc(var(--p)*1%),var(--surface-2) 0);border-radius:50%;place-items:center;width:78px;height:78px;display:grid}.ring>strong{background:var(--surface);border-radius:50%;place-items:center;width:62px;height:62px;display:grid;font-size:1.15rem!important}.session-list{gap:10px}.session-chip{border:1px solid var(--line);background:var(--surface);min-width:150px;max-width:220px;color:var(--text);box-shadow:var(--shadow-sm);gap:2px;text-decoration:none;display:grid;border-radius:14px!important;padding:10px 14px!important}.session-chip span{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.85rem;line-height:1.35;display:-webkit-box;overflow:hidden}.session-chip small{color:var(--muted);font-size:.72rem}.session-chip[aria-current=page]{border-color:var(--primary);box-shadow:var(--ring)}.session-chip.locked{opacity:.55;cursor:not-allowed}.chapter-number.seen{background:color-mix(in srgb,var(--ok) 14%,var(--surface));color:var(--ok);border-color:#0000}.lesson-blocks{gap:18px;padding:0 24px 8px;display:grid}.lesson-main .lesson-blocks .lecture-frame{border:1px solid var(--line);border-radius:14px}.lb{margin:0}.lb figcaption{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:8px 2px 0;font-size:.85rem;display:flex}.lb figcaption button{min-height:34px;padding:4px 10px;font-size:.82rem}.video-frame{aspect-ratio:16/9;border:1px solid var(--line);background:#05070d;border-radius:14px;width:100%;position:relative;overflow:hidden}.video-frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}video.video-frame{height:auto;display:block}.lb-reading{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:20px 22px}.lb-reading>h3{margin:0 0 8px}.prose{max-width:72ch;line-height:1.7}.prose>:first-child{margin-top:0}.prose>:last-child{margin-bottom:0}.prose h3,.prose h4,.prose h5,.prose h6{margin:18px 0 6px}.prose ul,.prose ol{padding-left:22px}.prose blockquote{border-left:3px solid var(--accent);background:var(--surface-2);border-radius:0 10px 10px 0;margin:10px 0;padding:8px 14px}.prose code{background:var(--surface-2);border-radius:6px;padding:1px 6px;font-size:.9em}.lb-document{border:1px solid var(--line);background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);border-radius:14px;align-items:center;gap:14px;padding:14px 16px;text-decoration:none;transition:border-color .15s,transform .15s;display:flex}.lb-document:hover{border-color:var(--primary);transform:translateY(-1px)}.lb-document>span:nth-child(2){flex:1;gap:2px;display:grid}.lb-document small{color:var(--muted)}.doc-badge{background:var(--grad);color:#fff;letter-spacing:.04em;border-radius:10px;place-items:center;min-width:48px;height:48px;padding:0 6px;font-size:.72rem;font-weight:800;display:grid}.lb-embed iframe{border:1px solid var(--line);background:#fff;border-radius:14px;width:100%;display:block}.lb-quiz{border:1px solid var(--line);background:var(--surface);border-radius:14px;padding:18px 20px}.lb-quiz-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.lb-quiz-head h3{margin:0}.quiz-q{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;margin:12px 0 0;padding:14px}.quiz-q legend{align-items:flex-start;gap:10px;padding:0 4px;font-weight:650;line-height:1.45;display:flex}.quiz-n{background:var(--grad);color:#fff;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:.75rem;display:grid}.quiz-q.is-right{border-color:color-mix(in srgb,var(--ok) 55%,var(--line))}.quiz-q.is-wrong{border-color:color-mix(in srgb,var(--bad) 55%,var(--line))}.quiz-o{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:10px;align-items:flex-start;gap:10px;margin:8px 0 0;padding:10px 12px;font-weight:500;display:flex}.quiz-o input{flex:none;width:18px;height:18px;min-height:0;margin-top:3px}.quiz-o>span{gap:4px;display:grid}.quiz-o.correct{border-color:var(--ok);background:color-mix(in srgb,var(--ok) 9%,var(--surface))}.quiz-o.wrong{border-color:var(--bad);background:color-mix(in srgb,var(--bad) 8%,var(--surface))}.quiz-explain{color:var(--muted);font-size:.85rem;line-height:1.5}.quiz-actions{margin-top:10px}.quiz-actions p{margin:0;font-weight:650}.lb-reflection{border:1px dashed color-mix(in srgb,var(--primary) 45%,var(--line));background:color-mix(in srgb,var(--primary) 5%,var(--surface));border-radius:14px;gap:8px;padding:18px 20px;display:grid}.lb-reflection label{margin:0;font-size:1rem}.lb-reflection textarea{min-height:110px}.lb-reflection small,.lb-note{color:var(--muted);font-size:.82rem}.lb-checklist{padding:14px 18px}.lb-checklist legend{padding:0 6px;font-weight:700}.lb-callout{border:1px solid var(--line);background:var(--surface);border-left-width:4px;border-radius:14px;padding:14px 18px}.lb-callout>strong{margin-bottom:4px;display:block}.lb-callout.tone-info{border-left-color:var(--accent)}.lb-callout.tone-tip{border-left-color:var(--ok);background:color-mix(in srgb,var(--ok) 6%,var(--surface))}.lb-callout.tone-warning{border-left-color:var(--warn-line);background:var(--warn-bg)}.lb-assignment{border:1px solid color-mix(in srgb,var(--primary) 35%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 9%,var(--surface)),color-mix(in srgb,#7c3aed 9%,var(--surface)));border-radius:16px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:18px 20px;display:grid}.lb-assignment h3{margin:0 0 4px}.lb-assignment p{margin:0}.lb-assignment .eyebrow{margin-bottom:4px}.lb-assignment-cta{justify-items:end;gap:8px;display:grid}.lb-note{border:1px dashed var(--line);border-radius:12px;padding:12px 16px}@media (width<=700px){.lesson-blocks{padding:0 14px 8px}.lb-assignment{grid-template-columns:1fr}.lb-assignment-cta{justify-items:stretch}.lb-assignment .primary-link{width:100%}.ring{width:56px;height:56px}.ring>strong{width:44px;height:44px;font-size:.95rem!important}}.work-outline .meter{margin:-2px 0 10px}.work-help{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;margin:-8px 0 22px}.work-help-bar{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.work-help-title{color:var(--muted);margin-right:4px;font-size:.82rem;font-weight:700}.work-help-bar button{min-height:34px;box-shadow:none;border-radius:999px;padding:5px 12px;font-size:.85rem}.work-help-bar button[aria-expanded=true]{background:var(--grad);color:#fff;border-color:#0000}.work-help-bar a{margin-left:auto;font-size:.85rem;font-weight:600;text-decoration:none}.work-help-body{border-top:1px solid var(--line);padding:4px 16px 14px}.work-help-body .eyebrow{margin:12px 0 6px}.work-help-body.example{background:color-mix(in srgb,var(--accent) 6%,transparent);border-radius:0 0 14px 14px}.safety-notes{gap:6px;margin:14px 0 0;padding:0;list-style:none;display:grid}.safety-notes li{border-radius:10px;align-items:flex-start;gap:8px;padding:9px 12px;font-size:.88rem;line-height:1.45;display:flex}.safety-error{background:color-mix(in srgb,var(--bad) 9%,var(--surface));border:1px solid color-mix(in srgb,var(--bad) 40%,var(--line));color:var(--text)}.safety-warn{background:var(--warn-bg);border:1px solid var(--warn-line)}.answer-compare{border-top:1px solid var(--line);margin-top:26px;padding-top:22px}.answer-compare h2{margin:0 0 4px}.compare-grid{grid-template-columns:1fr 1fr;gap:16px;margin:14px 0;display:grid}.compare-col{border:1px solid var(--line);background:var(--surface);border-radius:14px;min-width:0;padding:16px}.compare-col.ref{background:color-mix(in srgb,var(--accent) 6%,var(--surface))}.compare-col details{border:0;padding:4px 0}.compare-reflect{gap:8px;font-weight:650;display:grid}.feedback-item{border-left:3px solid var(--primary);background:var(--surface-2);border-radius:0 12px 12px 0;margin:10px 0;padding:12px 16px}.feedback-panel h2{flex-wrap:wrap;align-items:center;gap:10px;display:flex}@media (width<=800px){.compare-grid{grid-template-columns:1fr}.work-help-bar a{flex-basis:100%;margin-left:0}}.brand-logo{object-fit:contain;border:1px solid var(--line);background:#fff;border-radius:8px;width:32px;height:32px;padding:2px}.topbar .brand-name{line-height:1.15;display:grid}.topbar .brand-name small{color:var(--muted);letter-spacing:0;font-size:.7rem;font-weight:600}.lead.welcome{max-width:70ch;margin-top:-6px}.inline-select{align-items:center;gap:8px;margin:0;display:flex}.inline-select select{width:auto;min-width:200px}.dossier-slot{transition:border-color .15s}.dossier-slot.has{border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}.dossier-slot>strong{color:var(--primary);letter-spacing:.06em;font-size:.8rem}.dossier-slot h2{margin:6px 0;font-size:1.02rem}.section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin:22px 0 10px;font-size:1rem}.lesson-progress .ring>strong{color:var(--text);background:var(--surface);-webkit-background-clip:border-box;background-clip:border-box}.status-pill{align-items:center;gap:5px}.status-pill:before{content:"○"}.status-pill.done:before{content:"✓"}.lb-quiz-head .chip:before{content:none}input[type=checkbox],input[type=radio]{min-height:0;box-shadow:none;padding:0}.check>input{margin-top:3px}
