:root{--bg:#eef2f7;--bg-glow:#1d4ed829;--surface:#ffffffe0;--surface-2:#f8fafc;--surface-3:#fff;--line:#d9e1ec;--line-strong:#c3cfe0;--ink:#14213d;--muted:#637083;--brand:#1d4ed8;--brand-dark:#163b8f;--brand-soft:#eff6ff;--brand-ring:#1d4ed852;--ok:#166534;--ok-bg:#dcfce7;--ok-line:#bbf7d0;--bad:#991b1b;--bad-bg:#fee2e2;--bad-line:#fecaca;--warn:#92400e;--warn-bg:#fef3c7;--warn-line:#fde68a;--track:#e2e8f0;--paper:#fff;--paper-ink:#14213d;--paper-muted:#637083;--paper-line:#d9e1ec;--paper-brand:#1d4ed8;--paper-brand-dark:#163b8f;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:44px;--r-sm:8px;--r-md:14px;--r-lg:18px;--r-xl:22px;--r-2xl:26px;--r-pill:999px;--shadow-sm:0 1px 2px #14213d0d, 0 4px 14px #14213d0d;--shadow-md:0 2px 4px #14213d0d, 0 10px 30px #14213d12;--shadow-lg:0 4px 8px #14213d0a, 0 24px 60px #14213d1a;--focus:0 0 0 3px var(--brand-ring);--t-fast:.12s ease;--t-med:.22s ease;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root:not([data-theme=light]),:root[data-theme=dark]{--bg:#0b111c;--bg-glow:#6096f524;--surface:#141d2e;--surface-2:#1b2537;--surface-3:#101827;--line:#27324a;--line-strong:#3a4863;--ink:#e8eef8;--muted:#93a3bd;--brand:#6096f5;--brand-dark:#85b1ff;--brand-soft:#16233c;--brand-ring:#6096f561;--ok:#6ee7a8;--ok-bg:#10291e;--ok-line:#1d4634;--bad:#fca5a5;--bad-bg:#2c1618;--bad-line:#4d2427;--warn:#fcd34d;--warn-bg:#2b2110;--warn-line:#4a3a17;--track:#24304a;--shadow-sm:0 1px 2px #0000004d, 0 4px 14px #00000047;--shadow-md:0 2px 4px #00000052, 0 10px 30px #00000059;--shadow-lg:0 4px 8px #0000004d, 0 24px 60px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{color:var(--ink);background:radial-gradient(circle at top left, var(--bg-glow), transparent 34rem), var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background-attachment:fixed;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI Variable Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:16px;line-height:1.55}h1,h2,h3,h4{letter-spacing:-.015em;font-weight:700;line-height:1.2}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:var(--r-sm)}::selection{background:var(--brand);color:#fff}.site-shell{width:min(1240px,100% - 32px);padding:var(--sp-7) 0 var(--sp-8);margin:0 auto}.topbar{justify-content:space-between;gap:var(--sp-6);margin-bottom:var(--sp-7);align-items:center;display:flex}.topbar h1{margin:0;font-size:1.5rem}.topbar h1,.hero-card h2,.panel h2{margin:0}.brand{text-align:left;color:inherit;border-radius:var(--r-md);background:0 0;border:none;padding:0;display:block}.brand-link{cursor:pointer;transition:opacity var(--t-fast)}.brand-link:hover{opacity:.75}.brand-link:hover h1{color:var(--brand)}.brand-link h1{transition:color var(--t-fast)}.brand-link:focus-visible{outline-offset:4px}.topbar-actions{align-items:center;gap:var(--sp-2);display:flex}.eyebrow{color:var(--brand);letter-spacing:.14em;margin:0 0 var(--sp-1);text-transform:uppercase;font-size:.72rem;font-weight:800}.user-chip{gap:var(--sp-2);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:var(--sp-1) var(--sp-1) var(--sp-1) var(--sp-4);box-shadow:var(--shadow-sm);align-items:center;display:flex}.user-chip small{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem;font-weight:700}.user-chip button{border:1px solid var(--line);background:var(--surface-3);color:var(--ink);border-radius:var(--r-pill);transition:border-color var(--t-fast), background var(--t-fast), color var(--t-fast);padding:6px 13px;font-size:.85rem;font-weight:600}.user-chip button:hover{border-color:var(--brand);color:var(--brand)}.theme-toggle{border:1px solid var(--line);background:var(--surface);width:40px;height:40px;color:var(--muted);border-radius:var(--r-pill);box-shadow:var(--shadow-sm);transition:color var(--t-fast), border-color var(--t-fast), transform var(--t-fast);flex:none;justify-content:center;align-items:center;font-size:1rem;line-height:1;display:inline-flex}.theme-toggle:hover{color:var(--brand);border-color:var(--brand);transform:translateY(-1px)}.hero-card,.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2xl);box-shadow:var(--shadow-md)}.panel{padding:var(--sp-6)}.panel h2{font-size:1.35rem}.stack,.login-panel{gap:var(--sp-4);display:grid}.wide-panel{min-width:0}label{color:var(--muted);gap:7px;font-size:.88rem;font-weight:700;display:grid}input,select,textarea{border:1px solid var(--line);border-radius:var(--r-md);width:100%;color:var(--ink);background:var(--surface-3);transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:11px 13px}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.75}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:var(--focus);outline:none}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none}.primary{background:var(--brand);color:#fff;border-radius:var(--r-md);box-shadow:var(--shadow-sm);transition:background var(--t-fast), transform var(--t-fast), box-shadow var(--t-fast);border:1px solid #0000;padding:11px 18px;font-weight:700}.primary:hover{background:var(--brand-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}.primary:active{transform:translateY(0)}.primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}:root[data-theme=dark] .primary,:root[data-theme=dark] .reader-nav button.primary,:root[data-theme=dark] .tab-button.active,:root:not([data-theme=light]) .primary,:root:not([data-theme=light]) .reader-nav button.primary,:root:not([data-theme=light]) .tab-button.active{color:#08101d}.danger{border:1px solid var(--bad-line);background:var(--bad-bg);color:var(--bad);border-radius:var(--r-pill);transition:background var(--t-fast);padding:7px 13px;font-size:.85rem;font-weight:700}.danger:hover{background:var(--bad-line)}.error-box,.success-box{border-radius:var(--r-md);border:1px solid #0000;padding:11px 14px;font-weight:600}.error-box{color:var(--bad);background:var(--bad-bg);border-color:var(--bad-line)}.success-box{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line)}.muted-text{color:var(--muted)}.check-row{align-items:center;gap:var(--sp-3);color:var(--ink);flex-direction:row;font-size:.94rem;font-weight:600;display:flex}.check-row input{width:auto;accent-color:var(--brand);flex:none}.badge{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-2);color:var(--muted);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap;padding:3px 10px;font-size:.72rem;font-weight:800;display:inline-block}.badge.published{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line)}.badge.draft{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-line)}.badge.missing{color:var(--bad);background:var(--bad-bg);border-color:var(--bad-line)}.score-pill{border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-3);color:var(--muted);white-space:nowrap;align-items:center;padding:7px 13px;font-size:.88rem;font-weight:800;display:inline-flex}.score-pill.passed{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line)}.score-pill.failed{color:var(--bad);background:var(--bad-bg);border-color:var(--bad-line)}.warning-list{margin:var(--sp-2) 0 0;padding-left:var(--sp-5);color:var(--warn);font-weight:600}.login-layout{gap:var(--sp-6);grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);align-items:stretch;display:grid}.hero-card{padding:var(--sp-8);min-height:430px;box-shadow:var(--shadow-lg);flex-direction:column;justify-content:center;display:flex;position:relative;overflow:hidden}.hero-card:after{content:"";background:radial-gradient(circle, var(--brand-ring), transparent 70%);opacity:.45;pointer-events:none;border-radius:50%;width:30rem;height:30rem;position:absolute;inset:auto -20% -45% auto}.hero-card>*{z-index:1;position:relative}.hero-card h2{letter-spacing:-.03em;max-width:15ch;font-size:clamp(2.1rem,4.6vw,3.6rem);line-height:1.04}.hero-card p{max-width:46ch;color:var(--muted);margin-bottom:0;font-size:1.05rem;line-height:1.7}.login-panel{align-content:start}.password-layout{justify-content:center;display:grid}.password-layout .login-panel{width:min(440px,100%)}.course-grid{gap:var(--sp-5);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.course-card{gap:var(--sp-3);text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-sm);padding:var(--sp-6);transition:border-color var(--t-fast), box-shadow var(--t-med), transform var(--t-med);align-content:start;display:grid}.course-card:hover{border-color:var(--brand);box-shadow:var(--shadow-md);transform:translateY(-2px)}.course-card h3{margin:0;font-size:1.15rem}.course-card p{margin:0;font-size:.94rem}.course-card-head{justify-content:space-between;gap:var(--sp-3);align-items:center;display:flex}.course-card-stats{justify-content:space-between;gap:var(--sp-3);color:var(--muted);font-size:.82rem;font-weight:700;display:flex}.progress-bar{border-radius:var(--r-pill);background:var(--track);height:6px;overflow:hidden}.progress-fill{border-radius:var(--r-pill);background:var(--brand);height:100%;transition:width var(--t-med)}.resume-banner{justify-content:space-between;gap:var(--sp-5);background:var(--surface);border:1px solid var(--brand);border-radius:var(--r-xl);box-shadow:var(--shadow-md);padding:var(--sp-5) var(--sp-6);margin-bottom:var(--sp-5);flex-wrap:wrap;align-items:center;display:flex}.resume-banner strong{font-size:1.02rem}.back-link{color:var(--brand);padding:2px 0 var(--sp-3);text-align:left;background:0 0;border:none;font-size:.9rem;font-weight:700}.back-link:hover{color:var(--brand-dark);text-decoration:underline}.course-progress-line{margin:0 0 var(--sp-3);font-size:.85rem}.student-layout{gap:var(--sp-6);grid-template-columns:320px minmax(0,1fr);display:grid}.lesson-list{top:var(--sp-5);align-self:start;max-height:calc(100vh - 40px);position:sticky;overflow-y:auto}.student-course h3{margin:var(--sp-6) 0 var(--sp-3);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.78rem}.lesson-link{justify-content:space-between;gap:var(--sp-3);border:1px solid var(--line);background:var(--surface-3);width:100%;color:var(--ink);border-radius:var(--r-md);text-align:left;transition:border-color var(--t-fast), background var(--t-fast), color var(--t-fast);align-items:center;margin-bottom:6px;padding:9px 13px;font-size:.92rem;display:flex}.lesson-link:hover{border-color:var(--line-strong)}.lesson-link small{color:var(--muted);white-space:nowrap;font-size:.72rem;font-weight:600}.lesson-link.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:600}.lesson-link.active small{color:var(--brand)}.lesson-link.locked{opacity:.5;cursor:not-allowed}.lesson-link.locked:hover{border-color:var(--line)}.lesson-link.next-up{border-color:var(--brand);box-shadow:var(--focus)}.lesson-link.next-up small{color:var(--brand);font-weight:800}.exercise-link{background:var(--brand-soft);margin-left:var(--sp-4);width:calc(100% - var(--sp-4));border-style:dashed}.lesson-reader{min-height:720px}.reader-actions{justify-content:space-between;gap:var(--sp-5);margin-bottom:var(--sp-4);align-items:center;display:flex}.reader-nav{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.reader-nav button{border:1px solid var(--line);background:var(--surface-3);color:var(--ink);border-radius:var(--r-pill);white-space:nowrap;transition:border-color var(--t-fast), color var(--t-fast);padding:9px 16px;font-size:.9rem;font-weight:600}.reader-nav button:hover:not(:disabled){border-color:var(--brand);color:var(--brand)}.reader-nav button.primary{background:var(--brand);color:#fff;border-color:#0000}.reader-nav button.primary:hover:not(:disabled){background:var(--brand-dark);color:#fff}.reader-nav button:disabled{opacity:.45;cursor:not-allowed}.quiz-nav{margin-bottom:var(--sp-4);justify-content:flex-end}.continue-box{justify-content:space-between;gap:var(--sp-4);margin-bottom:var(--sp-4);flex-wrap:wrap;align-items:center;display:flex}.lesson-frame{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper);width:100%;min-height:780px;display:block}.empty-state{align-content:center;justify-items:center;gap:var(--sp-1);text-align:center;min-height:460px;color:var(--muted);display:grid}.empty-state h2{color:var(--ink)}.empty-state p{max-width:46ch;margin:var(--sp-2) 0 0}.exercise-panel{gap:var(--sp-5);display:grid}.exercise-panel p{color:var(--muted)}.mistake-list,.exercise-form{gap:var(--sp-4);display:grid}.question-card{gap:var(--sp-3);padding:var(--sp-5);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-2);margin:0;display:grid}.question-card legend{color:var(--ink);padding:0 var(--sp-1);font-weight:800;line-height:1.4}.answer-feedback{gap:var(--sp-1);border-radius:var(--r-md);padding:var(--sp-3);border:1px solid #0000;font-size:.92rem;display:grid}.answer-feedback.correct{color:var(--ok);background:var(--ok-bg);border-color:var(--ok-line)}.answer-feedback.wrong{color:var(--bad);background:var(--bad-bg);border-color:var(--bad-line)}.answer-feedback span,.answer-feedback small{color:inherit}.attempt-strip{gap:var(--sp-2);flex-wrap:wrap;align-items:center;display:flex}.attempt-chip{gap:var(--sp-2);border:1px solid var(--line);background:var(--surface-3);color:var(--ink);border-radius:var(--r-pill);transition:border-color var(--t-fast), color var(--t-fast);align-items:baseline;padding:6px 13px;font-size:.85rem;font-weight:700;display:inline-flex}.attempt-chip:hover{border-color:var(--line-strong)}.attempt-chip small{color:var(--muted);font-weight:600}.attempt-chip.active{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}.attempt-chip.active small{color:var(--brand)}.mistake-card{border:1px solid var(--line);border-left:4px solid var(--bad);background:var(--surface-3);border-radius:var(--r-md);padding:var(--sp-3);gap:6px;display:grid}.mistake-card span,.mistake-card small{color:var(--muted)}.certificate-layout{gap:var(--sp-5);display:grid}.certificate{background:var(--paper);color:var(--paper-ink);border:3px double var(--paper-brand);border-radius:var(--r-sm);outline:1px solid var(--paper-line);outline-offset:10px;text-align:center;gap:var(--sp-4);justify-items:center;width:100%;max-width:900px;margin:0 auto;padding:64px 48px;display:grid}.certificate-eyebrow{color:var(--paper-brand);letter-spacing:.28em;text-transform:uppercase;margin:0;font-size:.82rem;font-weight:800}.certificate-name{color:var(--paper-ink);margin:0;font-size:clamp(2rem,5vw,3.2rem)}.certificate-line{color:var(--paper-muted);margin:0}.certificate-course{color:var(--paper-brand-dark);margin:0;font-size:clamp(1.3rem,3vw,1.9rem)}.certificate-desc{color:var(--paper-muted);max-width:56ch;margin:0}.certificate-facts{gap:var(--sp-3);margin-top:var(--sp-3);flex-wrap:wrap;justify-content:center;display:flex}.certificate-facts span{border:1px solid var(--paper-line);border-radius:var(--r-pill);color:var(--paper-muted);padding:6px 14px;font-size:.85rem;font-weight:700}.certificate-date{margin:var(--sp-5) 0 0;color:var(--paper-ink);border-top:1px solid var(--paper-line);padding-top:var(--sp-4);font-weight:700}.tab-strip{gap:var(--sp-2);margin-bottom:var(--sp-5);flex-wrap:wrap;display:flex}.tab-button{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-pill);color:var(--muted);transition:border-color var(--t-fast), color var(--t-fast), background var(--t-fast);padding:9px 18px;font-size:.9rem;font-weight:600}.tab-button:hover{border-color:var(--brand);color:var(--brand)}.tab-button.active{background:var(--brand);border-color:var(--brand);color:#fff}.data-table{border-collapse:collapse;width:100%;margin-top:var(--sp-4);font-size:.92rem}.data-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--line);white-space:nowrap;font-size:.72rem;font-weight:800}.data-table td{padding:var(--sp-3);border-bottom:1px solid var(--line);vertical-align:top}.data-table tr:last-child td{border-bottom:none}.table-scroll{margin:0 calc(var(--sp-1) * -1);padding:0 var(--sp-1);overflow-x:auto}.clickable-row{cursor:pointer}.clickable-row:hover td{background:var(--surface-2)}.matrix-table{min-width:max-content}.matrix-table th:first-child,.matrix-table td:first-child{z-index:1;background:var(--surface);border-right:1px solid var(--line);position:sticky;left:0}.matrix-table th:not(:first-child),.matrix-table td:not(:first-child){text-align:center}.matrix-table .clickable-row:hover td:first-child{background:var(--surface-2)}.dashboard-grid{gap:var(--sp-6);grid-template-columns:360px minmax(0,1fr);display:grid}.student-assignment{border-top:1px solid var(--line);padding-top:var(--sp-5);margin-top:var(--sp-5)}.student-assignment>div:first-child{justify-content:space-between;align-items:center;gap:var(--sp-3);color:var(--muted);display:flex}.student-assignment>div:first-child>div{gap:var(--sp-3);align-items:baseline;display:flex}.student-assignment strong{color:var(--ink)}.student-actions{gap:var(--sp-2);align-items:center;display:flex}.reset-result{gap:var(--sp-1);margin-top:var(--sp-3);display:grid}.reset-result code{letter-spacing:.04em;background:var(--surface-3);border:1px solid var(--line);border-radius:var(--r-sm);padding:2px 7px;font-family:ui-monospace,SFMono-Regular,Cascadia Mono,Consolas,monospace;font-size:1rem;font-weight:700}.course-assignment{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-4);margin-top:var(--sp-3)}.course-assignment details{margin-top:var(--sp-3)}.course-assignment summary{cursor:pointer;color:var(--muted);font-size:.88rem;font-weight:600}.course-assignment summary:hover{color:var(--brand)}.course-check{font-weight:800}.lesson-checks{gap:var(--sp-2);margin-top:var(--sp-3);padding-left:var(--sp-6);display:grid}.admin-results{grid-column:1/-1}.result-group{border:1px solid var(--line);border-radius:var(--r-lg);margin-top:var(--sp-4);overflow:hidden}.result-group-head{justify-content:space-between;align-items:center;gap:var(--sp-3);width:100%;padding:var(--sp-4);background:var(--surface-2);color:var(--ink);text-align:left;transition:background var(--t-fast);border:none;display:flex}.result-group-head:hover{background:var(--line)}.result-group.open .result-group-head{border-bottom:1px solid var(--line)}.result-group-title{align-items:center;gap:var(--sp-3);font-weight:600;display:flex}.disclosure{color:var(--muted);text-align:center;width:1em;font-size:.8rem}.result-group-body{padding:6px var(--sp-4) var(--sp-4);gap:var(--sp-4);display:grid}.result-group-body .submission-card{margin-top:0}.submission-card{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface-2);padding:var(--sp-4);margin-top:var(--sp-4)}.submission-head{justify-content:space-between;gap:var(--sp-4);align-items:flex-start;display:flex}.submission-head div:first-child{gap:var(--sp-1);display:grid}.submission-head span{color:var(--muted)}@media print{body{color:#000;background:#fff}.no-print,.topbar{display:none!important}.site-shell{width:100%;padding:0}.certificate{box-shadow:none;border-color:#333;outline-color:#999}}@media (width<=1100px){.student-layout{grid-template-columns:260px minmax(0,1fr)}.dashboard-grid{grid-template-columns:300px minmax(0,1fr)}.hero-card{padding:var(--sp-7);min-height:380px}}@media (width<=900px){.topbar,.reader-actions{flex-direction:column;align-items:flex-start}.submission-head{flex-direction:column}.login-layout,.dashboard-grid,.student-layout{grid-template-columns:1fr}.hero-card{padding:var(--sp-6);min-height:auto}.lesson-list{max-height:none;position:static;overflow-y:visible}.lesson-reader{min-height:0}}@media (width<=600px){.site-shell{width:calc(100% - 24px);padding:var(--sp-5) 0 var(--sp-6)}.panel{padding:var(--sp-4)}.topbar h1{font-size:1.25rem}.topbar-actions{justify-content:space-between;width:100%}.user-chip{border-radius:var(--r-lg);padding:var(--sp-2) var(--sp-3);flex-wrap:wrap}.course-grid{gap:var(--sp-4);grid-template-columns:1fr}.course-card{padding:var(--sp-4)}.lesson-frame{min-height:60vh}.empty-state{min-height:280px}.certificate{padding:var(--sp-7) var(--sp-5);outline-offset:5px}.reader-nav{width:100%}.reader-nav button{text-align:center;flex:auto}.quiz-nav{justify-content:stretch}.lesson-checks{padding-left:var(--sp-4)}.exercise-link{margin-left:var(--sp-2);width:calc(100% - var(--sp-2))}.question-card{padding:var(--sp-4)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.primary:hover,.course-card:hover,.theme-toggle:hover{transform:none}}
