:root{--brand:#f97316;--brand-tint:#fb923c;--bg:#f8f9fb;--panel:#fff;--ink:#16181d;--muted:#5b6472;--line:#e3e6ec;--accent:#b45309;--accent-strong:#8f4207;--soft:#fff2e6;--warn:#9a4a05;--warn-soft:#fdf2e4;--danger:#b42318;--shadow:0 18px 55px #16181d1a;--focus:0 0 0 3px #f9731659}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--brand);box-shadow:var(--focus);outline:none}a{color:inherit;text-decoration:none}.login-shell{background:linear-gradient(135deg,#f8f9fb 0%,#f1e9e2 100%);place-items:center;min-height:100vh;padding:32px;display:grid}.login-panel{background:var(--panel);border:1px solid var(--line);width:min(920px,100%);box-shadow:var(--shadow);border-radius:8px;grid-template-columns:1fr 380px;align-items:center;gap:42px;padding:42px;display:grid}.eyebrow{color:var(--accent);letter-spacing:0;text-transform:uppercase;margin:0 0 8px;font-size:.76rem;font-weight:800}h1,h2,h3,p{margin-top:0}h1{margin-bottom:14px;font-size:2.4rem;line-height:1.05}h2{font-size:1.25rem;line-height:1.35}h3{margin:28px 0 14px;font-size:1rem}h4{align-items:center;gap:8px;margin:0;font-size:1rem;display:flex}.lede{color:var(--muted);font-size:1.05rem;line-height:1.55}.login-form,.questions,.question{gap:14px;display:grid}.segmented{background:#eef0f4;border-radius:8px;grid-template-columns:1fr 1fr;padding:4px;display:grid}.segmented button{cursor:pointer;background:0 0;border:0;border-radius:6px;padding:10px 12px}.segmented .active{background:var(--panel);color:var(--accent-strong);border-bottom:2px solid var(--brand);box-shadow:0 1px 6px #16181d1f}label{color:var(--muted);gap:7px;font-size:.88rem;font-weight:700;display:grid}input,select,textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:6px;padding:11px 12px}textarea{resize:vertical}.primary,.icon-button{cursor:pointer;border:1px solid #0000;border-radius:6px;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:10px 14px;font-weight:800;display:inline-flex}.primary{background:var(--accent);border-color:var(--accent);color:#fff}.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.icon-button{border-color:var(--line);color:var(--ink);background:#fff}.icon-button:hover{border-color:var(--accent);color:var(--accent-strong)}.error{color:var(--danger);margin:0;font-weight:800}.app-shell{grid-template-columns:320px 1fr;min-height:100vh;display:grid}.sidebar{color:#f4f5f8;background:#171a21;height:100vh;padding:22px;position:sticky;top:0;overflow:auto}.brand{border-bottom:1px solid #ffffff29;align-items:flex-start;gap:12px;padding-bottom:22px;display:flex}.brand strong,.brand span{display:block}.brand span{color:#b6bcc9;margin-top:4px;font-size:.84rem;line-height:1.35}.module-nav{gap:8px;margin-top:20px;display:grid}.module-nav button{text-align:left;color:#f4f5f8;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;gap:4px;width:100%;padding:12px;display:grid}.module-nav button:hover{background:#ffffff14;border-color:#ffffff24}.module-nav .selected{border-color:#f9731673;border-left:3px solid var(--brand);background:#f9731624}.module-nav span,.module-nav small{color:#b6bcc9;font-size:.78rem}.workspace{min-width:0;padding:28px}.topbar,.module-head,.resource-row,.question-actions{justify-content:space-between;align-items:center;gap:18px;display:flex}.topbar{margin-bottom:24px}.topbar h1{margin:0;font-size:1.9rem}.top-actions{gap:10px;display:flex}.content-grid{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:22px;display:grid}.main-panel,.admin-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px;box-shadow:0 8px 24px #16181d0f}.progress-ring{border:8px solid var(--soft);width:70px;height:70px;color:var(--accent-strong);border-top-color:#ea580c;border-radius:50%;flex:0 0 70px;place-items:center;font-weight:900;display:grid}.locked{color:var(--warn);background:var(--warn-soft);border:1px solid #f2d3ae;border-radius:8px;align-items:center;gap:10px;padding:16px;font-weight:800;display:flex}.steps{gap:10px;padding-left:24px;display:grid}.steps li{line-height:1.45}.section-list,.resource-list{gap:10px;display:grid}.content-section{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;gap:12px;padding:14px;display:grid}.section-head{justify-content:space-between;align-items:center;gap:16px;display:flex}.section-head p{color:var(--muted);margin:5px 0 0;font-size:.86rem}.resource-row{border:1px solid var(--line);border-radius:8px;padding:12px}.resource-row>div{flex:1;min-width:0}.resource-row strong,.resource-row span{display:block}.resource-row span,.muted{color:var(--muted);font-size:.88rem}.badge{color:var(--muted);background:#eef0f4;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:.82rem;font-weight:800;display:inline-flex}.questions{border-top:1px solid var(--line);margin-top:26px;padding-top:8px}.content-section.questions{border-top:1px solid var(--line);margin-top:0;padding-top:14px}.question{border:1px solid var(--line);background:#fafbfd;border-radius:8px;padding:14px}.question>span{color:var(--ink)}.score{color:var(--accent-strong);margin:0;font-weight:900}.admin-title{align-items:center;gap:8px;font-weight:900;display:flex}.metric{background:var(--soft);border-radius:8px;margin:18px 0;padding:16px}.metric strong,.metric span{display:block}.metric strong{font-size:2rem}.learner-list,.answers{gap:10px;display:grid}.learner-list article{border-bottom:1px solid var(--line);gap:5px;padding:0 0 10px;display:grid}.learner-list .selected-learner{background:var(--soft);border:1px solid #c8ddd5;border-radius:8px;padding:10px}.learner-list span,.answers p{color:var(--muted);font-size:.86rem}.answers{margin-top:22px}.learner-report{border-top:1px solid var(--line);gap:12px;margin-top:22px;padding-top:18px;display:grid}.report-metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.report-metrics span{background:var(--soft);color:var(--accent-strong);text-align:center;border-radius:6px;padding:8px;font-size:.82rem;font-weight:900}.report-modules{gap:10px;max-height:420px;padding-right:4px;display:grid;overflow:auto}.report-modules article{border:1px solid var(--line);background:#fff;border-radius:8px;gap:5px;padding:10px;display:grid}.report-modules span,.report-modules small{color:var(--muted);font-size:.82rem;line-height:1.35}.admin-panel h3{align-items:center;gap:8px;display:flex}.wordmark{letter-spacing:-.01em;align-items:baseline;gap:.28em;display:inline-flex}.wordmark-lead{color:var(--brand);font-weight:900}.wordmark-rest{font-weight:400}.wordmark-light .wordmark-lead{color:var(--accent)}.wordmark-light .wordmark-rest{color:var(--ink)}.wordmark-dark .wordmark-lead{color:var(--brand-tint)}.wordmark-dark .wordmark-rest{color:#f4f5f8}.brand strong{font-size:1.02rem}.link-button{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-weight:700;text-decoration:underline;display:inline-flex}.link-button:hover{color:var(--accent-strong)}.account-created{border:1px solid var(--accent);background:var(--soft);border-radius:10px;gap:10px;padding:16px;display:grid}.account-created p{margin:0}.account-created p:first-child{color:var(--accent-strong);align-items:center;gap:8px;font-weight:800;display:flex}.activation-code{letter-spacing:.12em;text-align:center;background:var(--panel);border:1px dashed var(--accent);-webkit-user-select:all;user-select:all;border-radius:8px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.4rem;font-weight:800}.password-changer{gap:10px;margin-top:18px;display:grid}.notice{background:var(--soft);color:var(--accent-strong);border-radius:8px;margin:0 0 12px;padding:12px 14px;font-weight:700}.link-sent{border:1px solid var(--line);background:var(--soft);border-radius:10px;gap:10px;padding:18px;display:grid}.link-sent p{color:var(--accent-strong);align-items:center;gap:8px;margin:0;font-weight:700;display:flex}.link-sent .muted{font-weight:500}.dev-link a{word-break:break-all;font-weight:800}.learner-summary{border-top:1px solid var(--line);color:var(--muted);gap:6px;margin-top:22px;padding-top:18px;font-size:.88rem;display:grid}.learner-summary .metric{margin:0 0 8px;padding:12px 14px}.learner-summary .metric strong{font-size:1.6rem}.settings-block{border:1px solid var(--line);background:#fbfcfd;border-radius:8px;gap:12px;padding:14px;display:grid}.switch{grid-template-columns:auto 1fr;align-items:start;gap:10px;font-weight:600;display:grid}.switch input{width:18px;height:18px;margin-top:2px}.badge.warn{color:var(--warn);background:var(--warn-soft);margin-left:8px}.score.below{color:var(--warn)}.learner-actions{flex-wrap:wrap;gap:8px;display:flex}.backup-panel{border-top:1px solid var(--line);gap:10px;margin-top:22px;padding-top:16px;display:grid}@media (max-width:980px){.app-shell,.content-grid,.login-panel{grid-template-columns:1fr}.sidebar{height:auto;position:static}.module-nav{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.login-shell,.workspace,.sidebar{padding:16px}.login-panel,.main-panel,.admin-panel{padding:18px}.module-nav,.topbar,.module-head,.section-head,.resource-row,.question-actions{display:grid}h1{font-size:2rem}}.page-shell{place-items:start center;min-height:100vh;padding:42px 24px;display:grid}.page-panel{background:var(--panel);border:1px solid var(--line);width:min(760px,100%);box-shadow:var(--shadow);border-radius:12px;padding:36px}.page-panel h2{margin-top:28px}.cookie-table{border-collapse:collapse;width:100%;margin:12px 0 20px;font-size:.9rem}.cookie-table th,.cookie-table td{text-align:left;border-bottom:1px solid var(--line);padding:8px 10px}.cookie-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.02em;font-size:.82rem}.cookie-banner{z-index:20;background:var(--panel);border-top:2px solid var(--brand);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding:18px 24px;display:flex;position:sticky;bottom:0;box-shadow:0 -8px 30px #16181d1f}.cookie-banner p{align-items:center;gap:8px;max-width:62ch;margin:0 0 6px;display:flex}.cookie-banner a{color:var(--accent);text-decoration:underline}.cookie-actions{flex-wrap:wrap;gap:10px;display:flex}.resume-card{background:var(--soft);border:1px solid var(--line);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-bottom:20px;padding:16px 18px;display:flex}.resume-card p{color:var(--accent-strong);align-items:center;gap:8px;margin:0;font-weight:800;display:flex}.course-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;display:grid}.course-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;align-content:start;gap:14px;padding:20px;display:grid;box-shadow:0 8px 24px #16181d0f}.course-card-head{align-items:flex-start;gap:12px;display:flex}.course-card-head strong,.course-card-head span{display:block}.course-card-head span{color:var(--muted);margin-top:4px;font-size:.86rem}.course-card-meta{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:.84rem;display:flex}.course-progress-bar{background:var(--soft);border-radius:999px;height:8px;overflow:hidden}.course-progress-bar span{background:#ea580c;height:100%;display:block}.course-progress small{color:var(--muted);margin-top:6px;font-size:.82rem;display:block}.module-nav a{color:#f4f5f8;border:1px solid #0000;border-radius:8px;gap:4px;padding:12px;display:grid}.module-nav a:hover{background:#ffffff14;border-color:#ffffff24}.module-nav a.selected{border-color:#f9731673;border-left:3px solid var(--brand);background:#f9731624}.module-nav a span{align-items:center;gap:6px;display:flex}.status-pill{color:var(--muted);background:#eef0f4;border-radius:999px;align-items:center;gap:7px;padding:8px 14px;font-size:.86rem;font-weight:800;display:inline-flex}.status-pill.status-in-progress{background:var(--soft);color:var(--accent-strong)}.status-pill.status-done{color:#15633a;background:#e6f4ea}.module-description{margin:18px 0 24px;line-height:1.65}.module-description h3,.module-description h4{margin:22px 0 10px}.module-description pre{color:#f4f5f8;background:#16181d;border-radius:8px;padding:14px;overflow:auto}.module-description code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em}.module-description blockquote{border-left:3px solid var(--brand);background:var(--soft);color:var(--accent-strong);margin:14px 0;padding:10px 16px}.module-description a{color:var(--accent);text-decoration:underline}.sidebar-footer{border-top:1px solid #ffffff29;gap:8px;margin-top:24px;padding-top:16px;display:grid}.sidebar-link{color:#b6bcc9;align-items:center;gap:7px;font-size:.86rem;display:flex}.sidebar-link:hover{color:#f4f5f8}.admin-sections{gap:18px;display:grid}.admin-sections h2{align-items:center;gap:9px;margin:0;display:flex}.search-field{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:6px;align-items:center;gap:9px;margin:16px 0 12px;padding:0 12px;display:flex}.search-field input{background:0 0;border:0;padding:11px 0}.search-field input:focus-visible{box-shadow:none;outline:none}.search-field:focus-within{border-color:var(--brand);box-shadow:var(--focus)}.matrix-scroll{overflow-x:auto}.matrix{border-collapse:collapse;width:100%;font-size:.88rem}.matrix th,.matrix td{border:1px solid var(--line);text-align:center;padding:8px 10px}.matrix thead th{background:var(--soft);color:var(--accent-strong);font-size:.82rem}.matrix tbody td:first-child,.matrix thead th:first-child{text-align:left;background:var(--panel);min-width:200px;position:sticky;left:0}.matrix thead th:first-child{background:var(--soft)}.matrix td strong,.matrix td small{display:block}.matrix td small{color:var(--muted);font-size:.78rem}.matrix .cell-in-progress{background:var(--soft);color:var(--accent-strong)}.matrix .cell-done{color:#15633a;background:#e6f4ea}.matrix .cell-not-started{color:var(--muted)}.session-list{gap:8px;display:grid}.session-row{border:1px solid var(--line);background:var(--panel);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.session-row strong,.session-row span{display:block}.session-row span{color:var(--muted);margin-top:3px;font-size:.84rem}
