:root{color-scheme:light;--bg:#f6f7fa;--surface:#fff;--ink:#162139;--muted:#56637a;--line:#dce2eb;--accent:#254fa9;--accent-hover:#193e8c;--read-size:18px;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;font-size:16px;line-height:1.6}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}a{color:var(--accent);text-underline-offset:3px}a:hover{color:var(--accent-hover)}button,input,textarea,select{font:inherit}button,.button{border:1px solid transparent;border-radius:8px;background:var(--accent);color:white;padding:11px 19px;font-weight:650;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;line-height:1.4}button:hover,.button:hover{background:var(--accent-hover);color:white}button:disabled{opacity:.6;cursor:wait}button.secondary,.button.secondary{background:#fff;border-color:#b8c6df;color:var(--accent)}button.secondary:hover,.button.secondary:hover{background:#f1f5fd}.text-button{padding:0;border:0;background:none;color:var(--muted);font-weight:500}.text-button:hover{background:none;color:var(--ink)}:focus-visible{outline:3px solid #d79317;outline-offset:4px}.skip-link{position:absolute;top:-100px;left:16px;z-index:20;background:#fff;padding:10px}.skip-link:focus{top:10px}.site-header{background:white;border-bottom:1px solid var(--line)}.header-inner{max-width:1280px;margin:0 auto;min-height:84px;display:flex;align-items:center;gap:35px;padding:16px 32px}.brand{color:var(--ink);display:flex;align-items:center;gap:12px;text-decoration:none;white-space:nowrap;font-size:15px}.brand-mark{background:var(--ink);color:#fff;font-size:15px;letter-spacing:.04em;padding:7px 9px;border-radius:8px;font-weight:750}.brand strong{display:block;line-height:1.25}.header-inner nav{display:flex;align-items:center;gap:23px;margin-left:auto}.header-inner nav a{color:var(--muted);font-size:14px;text-decoration:none;white-space:nowrap}.header-inner nav a[aria-current]{color:var(--accent);font-weight:700}.session{display:flex;gap:14px;align-items:center;font-size:13px}.session form{margin:0}.main-wrap{max-width:1180px;margin:0 auto;padding:42px 32px 72px;min-height:calc(100vh - 160px)}.site-footer{max-width:1180px;margin:0 auto;padding:20px 32px;border-top:1px solid var(--line);color:var(--muted);font-size:12px}h1,h2,h3,h4{line-height:1.3;letter-spacing:-.02em;margin:0 0 14px}h1{font-size:clamp(28px,4vw,38px);font-weight:740;max-width:830px}h2{font-size:23px}h3{font-size:18px}h4{font-size:16px}p{margin:0 0 16px}ul,ol{padding-left:24px;margin:0 0 18px}li+li{margin-top:7px}code{font-family:ui-monospace,Consolas,monospace;font-size:.9em}pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f0f3f9;border:1px solid var(--line);border-radius:8px;padding:18px;position:relative}p:last-child{margin-bottom:0}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:32px;margin-bottom:25px}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.095em;font-size:11px;font-weight:750;margin-bottom:13px}.lead{color:var(--muted);font-size:18px;max-width:760px}.muted{color:var(--muted)}.small{font-size:13px}.progress-summary{flex-shrink:0;text-align:center;background:white;border:1px solid var(--line);border-radius:12px;padding:18px 25px}.progress-summary strong{display:block;font-size:32px;line-height:1.2}.progress-summary span{font-size:12px;color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:28px;margin-bottom:22px}.notice{border-radius:9px;padding:17px 20px;border:1px solid;font-size:14px;margin-bottom:24px}.notice.info{background:#edf3fe;border-color:#cbdcfc;color:#284579}.notice.warning{background:#fff8e9;border-color:#ead59f;color:#72511e}.notice.danger{background:#fff0ed;border-color:#e8b3aa;color:#8b2f23}.continue-card{background:#edf3fe;border:1px solid #cbdcfc;border-radius:12px;padding:28px;display:flex;align-items:center;justify-content:space-between;gap:32px;margin-bottom:26px}.continue-card p{max-width:670px;font-size:14px}.continue-card .button{flex-shrink:0}.course-switch{display:flex;gap:24px;margin:0 0 22px;font-size:14px}.legend{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 21px}.badge{display:inline-flex;font-size:11px;line-height:1.4;font-weight:650;padding:5px 9px;border:1px solid;border-radius:5px;white-space:nowrap}.badge.available{color:#205c41;background:#edf9f2;border-color:#c0dfce}.badge.pending{color:#795914;background:#fff9e9;border-color:#e8dcae}.badge.locked{color:#586172;background:#eff1f5;border-color:#d5dae2}.badge.mastered{color:#244ba0;background:#eef3ff;border-color:#c6d5f6}.module{padding:0;overflow:hidden;margin-bottom:16px}.module summary{display:flex;gap:20px;align-items:center;padding:24px 28px;cursor:pointer;list-style:none}.module summary::-webkit-details-marker{display:none}.module summary h2{font-size:20px;margin:0}.module-code{font-family:ui-monospace,Consolas,monospace;font-size:13px;letter-spacing:.06em;color:var(--muted);min-width:38px}.summary-arrow{font-size:22px;margin-left:auto;line-height:1}.module[open] .summary-arrow{transform:rotate(180deg)}.weeks{border-top:1px solid var(--line);padding:0 28px}.week{padding:22px 0}.week+.week{border-top:1px solid var(--line)}.week h3{font-size:16px}.week h3 span{font-size:12px;color:var(--muted);display:block;margin-bottom:6px;letter-spacing:.01em}.block-list{list-style:none;padding:0;margin:0}.block-list li{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0}.block-title{font-size:15px;font-weight:580}.block-list .small{margin-top:5px}.back-link{display:inline-block;margin-bottom:24px;font-size:14px;text-decoration:none}.reading-layout{display:grid;grid-template-columns:245px minmax(0,1fr);gap:24px;align-items:start}.reading-sidebar{position:sticky;top:24px;padding:22px}.reading-sidebar h2{font-size:16px}.reading-sidebar li{font-size:13px}.reading-sidebar nav{border-top:1px solid var(--line);padding-top:14px;display:grid;gap:9px;font-size:13px;margin-bottom:18px}.reading-content{font-size:var(--read-size);line-height:1.75;max-width:790px;overflow-wrap:anywhere;padding:35px 40px}.reading-content h1{font-size:1.6em}.reading-content h2{font-size:1.35em;margin-top:35px}.reading-content h3{font-size:1.1em;margin-top:26px}.reading-content pre{font-size:14px;line-height:1.7;padding-top:46px}.reading-content blockquote{margin:22px 0;border-left:3px solid #b7c8e6;padding:7px 18px;color:var(--muted)}.reading-controls{font-size:12px;display:grid;gap:5px;flex-shrink:0}.reading-controls select{min-width:150px}.reading-note h2{font-size:20px}.copy-code{position:absolute;right:10px;top:8px;font-size:11px;padding:5px 8px;background:white;border:1px solid #b8c6df;color:var(--accent)}.assignments{margin-top:25px}.assignments>.card{margin-top:18px}.form-stack{display:grid;gap:19px}.form-stack>button,.form-stack .actions{justify-self:start}.form-stack label{font-size:14px;font-weight:600;display:grid;gap:7px}.form-stack label.checkbox{display:flex;align-items:center;gap:10px;font-weight:500}.form-stack p{margin-bottom:0}.form-stack input:not([type=checkbox]),.form-stack textarea,.form-stack select,.reading-controls select{color:var(--ink);border:1px solid #b9c5d7;border-radius:7px;padding:11px 12px;width:100%;background:#fff;font-size:15px;font-weight:400;line-height:1.5}.form-stack textarea{resize:vertical}.form-stack input[type=file]{padding:8px;font-size:13px}.form-stack input[type=checkbox]{width:19px;height:19px;accent-color:var(--accent)}.form-stack fieldset{border:1px solid var(--line);border-radius:9px;padding:20px;display:grid;gap:17px;min-width:0}.form-stack legend{font-size:15px;font-weight:700;padding:0 8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-status{font-size:13px;overflow-wrap:anywhere;min-height:0}.form-status:empty{display:none}.form-status.error{color:#a13123;background:#fff0ed;padding:13px;border-radius:7px}.form-status.success{color:#205c41}.actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.preserve-lines{white-space:pre-wrap}.question-id{display:inline;color:var(--muted);font:12px ui-monospace,Consolas,monospace}.file-list,.history-list{padding:0;margin:20px 0;list-style:none}.file-list li{padding:15px 0;border-top:1px solid var(--line);display:grid;gap:4px}.file-list span{font-size:12px;color:var(--muted)}.hash{font-size:11px;color:var(--muted);overflow-wrap:anywhere}.history-list li{display:flex;gap:14px;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding:13px 0}.history-list code{font-size:11px;color:var(--muted)}.answer-text{white-space:pre-wrap;font-family:inherit;font-size:15px;background:#f8f9fc}.definition-list{display:grid;grid-template-columns:160px minmax(0,1fr);gap:8px 15px;font-size:14px;margin-bottom:22px}.definition-list dt{color:var(--muted)}.definition-list dd{margin:0;overflow-wrap:anywhere}.submit-card{background:#eef3fe;border-color:#cbdcfc;display:flex;gap:28px;align-items:center;justify-content:space-between}.submit-card>div{max-width:720px}.submit-card p{font-size:14px}.submit-card form{flex-shrink:0;max-width:280px}.submit-card button{white-space:normal}.empty-state{color:var(--muted);font-size:14px}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px;text-align:left}th,td{padding:15px 13px;border-bottom:1px solid var(--line);vertical-align:top}thead th{font-size:12px;color:var(--muted)}tbody th{width:130px}td p:last-child{margin:0}.finding+.finding{border-top:1px solid var(--line);margin-top:20px;padding-top:22px}.finding h3{font-size:18px}.finding p{font-size:14px}.narrow{max-width:840px}.login-card{max-width:440px;margin:45px auto}.login-card h1{font-size:28px}.login-card p{font-size:14px}.login-card button{width:100%}.code-input{font-family:ui-monospace,Consolas,monospace!important;font-size:13px!important}.toast{position:fixed;bottom:24px;right:24px;background:var(--ink);color:white;padding:14px 20px;border-radius:9px;max-width:min(400px,calc(100vw - 48px));font-size:14px;z-index:30}.toast[hidden]{display:none}.skill-list{display:grid;gap:0}.skill-list h2{font-size:20px}.skill-list h3{font-size:15px;margin-top:20px}
@media(max-width:1000px){.header-inner{gap:18px;flex-wrap:wrap}.header-inner nav{order:3;margin-left:0;width:100%}.session{margin-left:auto}.reading-layout{grid-template-columns:190px minmax(0,1fr)}.reading-content{padding:26px}.submit-card{align-items:flex-start;flex-direction:column}.submit-card form{max-width:none}}
@media(max-width:680px){.header-inner{padding:15px 20px;gap:15px}.brand{font-size:13px}.header-inner nav{gap:18px;overflow-x:auto}.header-inner nav a{font-size:12px}.session{font-size:11px}.session>span{display:none}.main-wrap{padding:28px 18px 48px}.site-footer{padding:18px}.page-heading{align-items:flex-start;gap:16px;flex-wrap:wrap}.progress-summary{padding:11px 17px}.progress-summary strong{font-size:25px}.progress-summary span{font-size:11px}.lead{font-size:16px}.card{padding:21px 18px}.module{padding:0}.module summary{padding:20px 18px;gap:12px}.module summary h2{font-size:17px}.weeks{padding:0 18px}.continue-card{padding:22px;align-items:flex-start;flex-direction:column;gap:15px}.block-list li{align-items:flex-start;gap:12px}.block-list .badge{white-space:normal;min-width:75px;justify-content:center;text-align:center;font-size:10px}.reading-layout{display:block}.reading-sidebar{position:static}.reading-sidebar nav{display:flex;flex-wrap:wrap;gap:15px}.reading-content{padding:24px 20px;line-height:1.7}.form-grid{grid-template-columns:1fr}.form-stack fieldset{padding:15px}.definition-list{grid-template-columns:1fr;gap:3px}.definition-list dd{margin-bottom:12px}.course-switch{font-size:12px;gap:18px}.history-list li{gap:9px}.login-card{margin:15px auto}.notice{padding:15px 17px}.submit-card{padding:22px 18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
