:root{--bg:#eef2f7;--ink:#14213d;--muted:#637083;--panel:#fff;--line:#d9e1ec;--brand:#1d4ed8;--brand-dark:#163b8f;--ok:#166534;--bad:#991b1b}*{box-sizing:border-box}body{color:var(--ink);background:radial-gradient(circle at top left, #1d4ed829, transparent 34rem), var(--bg);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.site-shell{width:min(1240px,100% - 32px);margin:0 auto;padding:28px 0 42px}.topbar{justify-content:space-between;align-items:center;gap:24px;margin-bottom:28px;display:flex}.topbar h1,.hero-card h2,.panel h2{margin:0}.eyebrow{color:var(--brand);letter-spacing:.14em;text-transform:uppercase;margin:0 0 6px;font-size:.72rem;font-weight:800}.user-chip{border:1px solid var(--line);background:#ffffffb8;border-radius:999px;align-items:center;gap:10px;padding:8px 10px 8px 16px;display:flex}.user-chip small{color:var(--muted);text-transform:uppercase}.user-chip button,.lesson-link{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 12px}.login-layout{grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);align-items:stretch;gap:24px;display:grid}.hero-card,.panel{border:1px solid var(--line);background:#ffffffe0;border-radius:26px;box-shadow:0 24px 70px #14213d14}.hero-card{flex-direction:column;justify-content:center;min-height:430px;padding:46px;display:flex}.hero-card h2{max-width:720px;font-size:clamp(2.4rem,6vw,5rem);line-height:.95}.hero-card p{max-width:640px;color:var(--muted);font-size:1.1rem;line-height:1.7}.demo-logins{color:var(--muted);border:1px dashed var(--line);background:#f8fafc;border-radius:18px;gap:4px;margin-top:20px;padding:16px;display:grid}.panel{padding:24px}.login-panel,.stack{gap:16px;display:grid}label{color:var(--muted);gap:7px;font-weight:700;display:grid}input,select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:14px;padding:12px 13px}.primary{background:var(--brand);color:#fff;border:none;border-radius:14px;padding:12px 16px;font-weight:800}.primary:hover{background:var(--brand-dark)}.error-box,.success-box{border-radius:14px;padding:11px 13px;font-weight:700}.error-box{color:var(--bad);background:#fee2e2}.success-box{color:var(--ok);background:#dcfce7}.muted-text{color:var(--muted)}.dashboard-grid{grid-template-columns:360px minmax(0,1fr);gap:24px;display:grid}.wide-panel{min-width:0}.student-assignment{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.student-assignment>div:first-child{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;display:flex}.student-assignment>div:first-child>div{align-items:baseline;gap:10px;display:flex}.student-assignment strong{color:var(--ink)}.student-actions{align-items:center;gap:8px;display:flex}.danger{color:var(--bad);background:#fee2e2;border:1px solid #fecaca;border-radius:999px;padding:7px 12px;font-weight:700}.danger:hover{background:#fecaca}.reset-result{gap:4px;margin-top:10px;display:grid}.reset-result code{letter-spacing:.04em;background:#ffffffb3;border-radius:6px;padding:1px 6px;font-size:1.05rem;font-weight:800}.course-assignment{border:1px solid var(--line);background:#f8fafc;border-radius:18px;margin-top:12px;padding:14px}.check-row{color:var(--ink);flex-direction:row;grid-template-columns:auto 1fr;align-items:center;gap:10px;font-weight:600;display:flex}.check-row input{width:auto}.course-check{font-weight:800}.lesson-checks{gap:8px;margin-top:12px;padding-left:24px;display:grid}.student-layout{grid-template-columns:340px minmax(0,1fr);gap:22px;display:grid}.lesson-list{align-self:start;position:sticky;top:20px}.student-course h3{margin:22px 0 10px}.lesson-link{text-align:left;border-radius:16px;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:8px;display:flex}.lesson-link small{color:var(--muted);white-space:nowrap}.lesson-link.active{border-color:var(--brand);color:var(--brand)}.exercise-link{background:#eff6ff;border-style:dashed;width:calc(100% - 14px);margin-left:14px}.lesson-reader{min-height:720px}.reader-actions{justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px;display:flex}.lesson-frame{border:1px solid var(--line);background:#fff;border-radius:18px;width:100%;min-height:780px}.empty-state{text-align:center;min-height:540px;color:var(--muted);align-content:center;justify-items:center;display:grid}.empty-state h2{color:var(--ink)}.admin-results{grid-column:1/-1}.result-group{border:1px solid var(--line);border-radius:18px;margin-top:14px;overflow:hidden}.result-group-head{text-align:left;background:#f8fafc;border:none;justify-content:space-between;align-items:center;gap:12px;width:100%;padding:14px 16px;display:flex}.result-group-head:hover{background:#eef2f7}.result-group.open .result-group-head{border-bottom:1px solid var(--line)}.result-group-title{align-items:center;gap:10px;display:flex}.disclosure{color:var(--muted);text-align:center;width:1em;font-size:.8rem}.result-group-body{gap:14px;padding:6px 16px 16px;display:grid}.result-group-body .submission-card{margin-top:0}.submission-card,.question-card{border:1px solid var(--line);background:#f8fafc;border-radius:18px}.submission-card{margin-top:14px;padding:16px}.submission-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.submission-head div:first-child{gap:4px;display:grid}.submission-head span,.mistake-card span,.mistake-card small,.exercise-panel p{color:var(--muted)}.score-pill{border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:#fff;border-radius:999px;align-items:center;padding:8px 12px;font-weight:800;display:inline-flex}.score-pill.passed{color:var(--ok);background:#dcfce7;border-color:#bbf7d0}.score-pill.failed{color:var(--bad);background:#fee2e2;border-color:#fecaca}.mistake-list,.exercise-form{gap:14px;display:grid}.mistake-card{border-left:4px solid var(--bad);background:#fff;border-radius:14px;gap:6px;padding:12px;display:grid}.exercise-panel{gap:18px;display:grid}.question-card{gap:12px;margin:0;padding:18px;display:grid}.question-card legend{color:var(--ink);padding:0 6px;font-weight:900}.answer-feedback{border-radius:14px;gap:4px;padding:12px;display:grid}.answer-feedback.correct{color:var(--ok);background:#dcfce7}.answer-feedback.wrong{color:var(--bad);background:#fee2e2}.answer-feedback span,.answer-feedback small{color:inherit}.tab-strip{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.tab-button{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:999px;padding:9px 18px;font-weight:700}.tab-button.active{background:var(--brand);border-color:var(--brand);color:#fff}.data-table{border-collapse:collapse;width:100%;margin-top:14px}.data-table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid var(--line);padding:8px 10px;font-size:.78rem}.data-table td{border-bottom:1px solid var(--line);vertical-align:top;padding:10px}.table-scroll{overflow-x:auto}.clickable-row{cursor:pointer}.clickable-row:hover td{background:#f8fafc}.badge{border:1px solid var(--line);color:var(--muted);white-space:nowrap;background:#f8fafc;border-radius:999px;padding:3px 10px;font-size:.74rem;font-weight:800;display:inline-block}.badge.published{color:var(--ok);background:#dcfce7;border-color:#bbf7d0}.badge.draft{color:#92400e;background:#fef3c7;border-color:#fde68a}.badge.missing{color:var(--bad);background:#fee2e2;border-color:#fecaca}.warning-list{color:#92400e;margin:8px 0 0;padding-left:18px;font-weight:600}.course-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;display:grid}.course-card{text-align:left;border:1px solid var(--line);background:#ffffffe0;border-radius:22px;align-content:start;gap:12px;padding:22px;display:grid;box-shadow:0 24px 70px #14213d14}.course-card:hover{border-color:var(--brand)}.course-card h3{margin:0;font-size:1.2rem}.course-card p{margin:0}.course-card-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.course-card-stats{color:var(--muted);justify-content:space-between;gap:10px;font-size:.88rem;font-weight:700;display:flex}.progress-bar{background:#e2e8f0;border-radius:999px;height:8px;overflow:hidden}.progress-fill{background:var(--brand);border-radius:999px;height:100%;transition:width .3s}.back-link{color:var(--brand);text-align:left;background:0 0;border:none;padding:0 0 12px;font-weight:800}.course-progress-line{margin:0 0 12px;font-size:.88rem}.course-assignment details{margin-top:10px}.course-assignment summary{cursor:pointer;font-weight:600}.reader-nav{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.reader-nav button{border:1px solid var(--line);white-space:nowrap;background:#fff;border-radius:999px;padding:9px 16px;font-weight:700}.reader-nav button.primary{background:var(--brand);color:#fff;border:none}.reader-nav button:disabled{opacity:.45;cursor:not-allowed}.quiz-nav{justify-content:flex-end;margin-bottom:14px}.continue-box{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.resume-banner{border:1px solid var(--brand);background:#ffffffe0;border-radius:22px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px;padding:18px 22px;display:flex;box-shadow:0 24px 70px #14213d14}.resume-banner strong{font-size:1.05rem}.lesson-link.locked{opacity:.55;cursor:not-allowed}.lesson-link.next-up{border-color:var(--brand);box-shadow:0 0 0 2px #1d4ed826}.lesson-link.next-up small{color:var(--brand);font-weight:800}.attempt-strip{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.attempt-chip{border:1px solid var(--line);background:#fff;border-radius:999px;align-items:baseline;gap:8px;padding:6px 12px;font-weight:700;display:inline-flex}.attempt-chip small{color:var(--muted);font-weight:600}.attempt-chip.active{border-color:var(--brand);color:var(--brand)}.password-layout{justify-content:center;display:grid}.password-layout .login-panel{width:min(440px,100%)}.certificate-layout{gap:18px;display:grid}.certificate{border:3px double var(--brand);outline:1px solid var(--line);outline-offset:10px;text-align:center;background:#fff;border-radius:8px;justify-items:center;gap:14px;width:100%;max-width:900px;margin:0 auto;padding:64px 48px;display:grid}.certificate-eyebrow{color:var(--brand);letter-spacing:.28em;text-transform:uppercase;margin:0;font-size:.85rem;font-weight:800}.certificate-name{margin:0;font-size:clamp(2rem,5vw,3.2rem)}.certificate-line{color:var(--muted);margin:0}.certificate-course{color:var(--brand-dark);margin:0;font-size:clamp(1.3rem,3vw,1.9rem)}.certificate-desc{color:var(--muted);max-width:560px;margin:0}.certificate-facts{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px;display:flex}.certificate-facts span{border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:6px 14px;font-size:.88rem;font-weight:700}.certificate-date{border-top:1px solid var(--line);margin:18px 0 0;padding-top:16px;font-weight:700}@media print{body{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<=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{min-height:auto;padding:28px}.lesson-list{position:static}}
