:root{color-scheme:light;--bg: #f6f7f5;--surface: #ffffff;--surface-raised: #fbfcfb;--text: #17201b;--text-strong: #0c120f;--muted: #65726c;--muted-2: #8a9690;--border: #dfe5e1;--border-strong: #cbd4cf;--accent: #127c69;--accent-strong: #0a5e50;--accent-soft: #dff4ef;--warning: #aa6b09;--shadow: 0 18px 55px rgba(18, 31, 25, .08);--radius: 8px;--radius-sm: 6px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--font-body: Inter, Geist, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Instrument Serif", Georgia, "Times New Roman", serif;--ease: .18s ease}:root[data-theme=dark]{color-scheme:dark;--bg: #0e1210;--surface: #151b18;--surface-raised: #1a211e;--text: #e7eee9;--text-strong: #f9fffb;--muted: #a5b3ab;--muted-2: #77837d;--border: #28322d;--border-strong: #39463f;--accent: #50d6b8;--accent-strong: #7be6ce;--accent-soft: #183b34;--shadow: 0 18px 55px rgba(0, 0, 0, .28)}*{box-sizing:border-box}html{min-width:320px;background:var(--bg)}body{margin:0;color:var(--text);background:linear-gradient(180deg,rgba(255,255,255,.52),transparent 320px),var(--bg);font-family:var(--font-body);line-height:1.5}button,input,select{font:inherit}button{color:inherit}a{color:var(--accent-strong)}img{display:block;max-width:100%}:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 42%,transparent);outline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:minmax(240px,330px) minmax(210px,320px) minmax(280px,1fr) auto;gap:var(--space-5);align-items:center;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:flex;gap:var(--space-3);align-items:center;min-width:0}.brand-mark{display:grid;width:38px;height:38px;place-items:center;color:var(--accent-strong);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border));border-radius:var(--radius)}.brand h1,.sidebar-header h2{margin:0;color:var(--text-strong);font-size:1rem;line-height:1.1}.brand-kicker,.eyebrow{margin:0 0 .2rem;color:var(--muted);font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.search-field{display:flex;align-items:center;gap:var(--space-2);min-width:0;min-height:42px;padding:0 var(--space-3);color:var(--muted);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--ease),box-shadow var(--ease),background var(--ease)}.search-field:focus-within{border-color:color-mix(in srgb,var(--accent) 62%,var(--border));box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 13%,transparent)}.search-field input{width:100%;min-width:0;color:var(--text);background:transparent;border:0;outline:0}.search-field input::placeholder{color:var(--muted-2)}.topbar-actions{display:flex;gap:var(--space-3);align-items:center}.course-picker{min-width:0}.course-picker select{width:100%;min-height:42px;padding:0 var(--space-8) 0 var(--space-3);color:var(--text-strong);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);outline:0;transition:border-color var(--ease),box-shadow var(--ease),background var(--ease)}.course-picker select:focus-visible{border-color:color-mix(in srgb,var(--accent) 62%,var(--border));box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 13%,transparent)}.progress-pill{display:flex;align-items:center;gap:var(--space-3);min-width:138px;padding:var(--space-2) var(--space-3);color:var(--text-strong);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem;font-weight:700}.progress-track,.wide-progress{overflow:hidden;height:6px;background:color-mix(in srgb,var(--muted-2) 18%,transparent);border-radius:999px}.progress-track{flex:1}.progress-track span,.wide-progress span{display:block;height:100%;background:var(--accent);border-radius:inherit;transition:width .26s ease}.workspace{display:grid;grid-template-columns:328px minmax(0,1fr);gap:var(--space-5);max-width:1780px;margin:0 auto;padding:var(--space-5)}.module-sidebar,.reader{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.module-sidebar{display:flex;flex-direction:column;min-height:0;height:calc(100vh - 112px);position:sticky;top:88px;align-self:start;padding:var(--space-5);overflow:hidden;gap:var(--space-4)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}.sidebar-header-actions{display:inline-flex;align-items:center;gap:var(--space-2)}.course-progress{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3);margin-bottom:var(--space-5);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius)}.course-progress span{display:block;color:var(--text-strong);font-size:1.35rem;font-weight:760;line-height:1}.course-progress small{color:var(--muted);font-size:.76rem}.wide-progress{grid-column:1 / -1}.course-outline,.module-lessons{display:flex;flex-direction:column;gap:var(--space-2)}.course-outline{flex:1;min-height:0;overflow:auto}.module-section{display:grid;gap:var(--space-2);padding-bottom:var(--space-2);border-bottom:1px solid color-mix(in srgb,var(--border) 72%,transparent)}.module-section:last-child{border-bottom:0}.module-toggle,.lesson-row,.ghost-button,.icon-button,.complete-button{border:0;cursor:pointer;transition:transform var(--ease),border-color var(--ease),color var(--ease),background var(--ease),box-shadow var(--ease)}.module-toggle{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);color:var(--text-strong);text-align:left;background:color-mix(in srgb,var(--surface-raised) 70%,transparent);border:1px solid transparent;border-radius:var(--radius)}.module-toggle span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;font-weight:760}.module-toggle strong{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:24px;color:var(--muted-2);background:var(--surface);border:1px solid var(--border);border-radius:999px;font-size:.78rem}.module-toggle:hover,.lesson-row:hover,.ghost-button:hover,.icon-button:hover{color:var(--text-strong);background:var(--surface-raised);border-color:var(--border)}.lesson-row.is-active{color:var(--text-strong);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}.reader-stage{min-width:0;overflow:hidden}.panel-search{margin-bottom:var(--space-4)}.module-lessons{padding:0;margin:0 0 var(--space-3);list-style:none}.lesson-row{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-3);width:100%;padding:.72rem var(--space-3);text-align:left;background:transparent;border:1px solid transparent;border-radius:var(--radius)}.lesson-row.has-status{grid-template-columns:34px minmax(0,1fr)}.lesson-status{display:grid;width:30px;height:30px;place-items:center;color:var(--muted);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.72rem;font-weight:750}.lesson-status.is-done{color:var(--accent-strong);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}.lesson-copy{min-width:0;padding-left:var(--space-2)}.lesson-copy strong,.lesson-copy small{display:block;overflow:hidden;text-overflow:ellipsis}.lesson-copy strong{color:var(--text-strong);font-size:.88rem;line-height:1.3;font-weight:560}.lesson-copy small{margin-top:.18rem;color:var(--muted);font-size:.76rem;white-space:nowrap}.reader{min-width:0;padding:clamp(1.25rem,3vw,3rem)}.reader-toolbar{display:flex;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-8)}.reader-header{display:grid;gap:var(--space-4);margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:1px solid var(--border)}.reader-header h2{max-width:850px;margin:0;color:var(--text-strong);font-family:var(--font-display);font-size:clamp(2.25rem,4.6vw,5rem);font-weight:500;line-height:.95}.lesson-meta{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;color:var(--muted);font-size:.88rem}.lesson-meta span,.lesson-meta a{display:inline-flex;gap:var(--space-1);align-items:center;min-height:30px}.lesson-meta a{color:var(--accent-strong);font-weight:700;text-decoration:none}.lesson-meta a:hover{text-decoration:underline}.ghost-button,.icon-button,.complete-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:40px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised);font-size:.88rem;font-weight:730}.ghost-button{padding:0 var(--space-3)}.icon-button{width:42px;padding:0}.complete-button{justify-self:start;padding:0 var(--space-4);color:var(--text-strong)}.complete-button.is-complete{color:var(--accent-strong);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 36%,var(--border))}.ghost-button:disabled{cursor:not-allowed;opacity:.45}.markdown-body{color:var(--text);font-size:1.02rem}.markdown-body>*:first-child{margin-top:0}.markdown-body h2,.markdown-body h3,.markdown-body h4{color:var(--text-strong);line-height:1.14}.markdown-body h2{margin:2.2em 0 .7em;font-size:clamp(1.45rem,2vw,2.1rem)}.markdown-body h3{margin:1.8em 0 .6em;font-size:1.22rem}.markdown-body p,.markdown-body li{color:color-mix(in srgb,var(--text) 92%,var(--muted))}.markdown-body p{margin:0 0 1.1em}.markdown-body ul,.markdown-body ol{padding-left:1.35rem}.markdown-body li+li{margin-top:.45rem}.markdown-body img{width:min(100%,860px);margin:var(--space-6) 0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-raised)}.video-embed{overflow:hidden;width:100%;margin:var(--space-6) 0;aspect-ratio:16 / 9;background:#080b09;border:1px solid var(--border);border-radius:var(--radius)}.video-embed iframe,.video-embed video{display:block;width:100%;height:100%;border:0}.markdown-body blockquote{margin:var(--space-6) 0;padding:var(--space-4) var(--space-5);color:var(--text-strong);background:var(--surface-raised);border-left:3px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0}.markdown-body pre,.markdown-body code{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.markdown-body code{padding:.15rem .3rem;background:var(--surface-raised);border:1px solid var(--border);border-radius:5px;font-size:.92em}.markdown-body pre{overflow:auto;padding:var(--space-4);background:#101512;border-radius:var(--radius)}.markdown-body pre code{padding:0;color:#e8fff4;background:transparent;border:0}.empty-state{display:grid;min-height:160px;place-items:center;padding:var(--space-6);color:var(--muted);text-align:center;background:var(--surface-raised);border:1px dashed var(--border-strong);border-radius:var(--radius)}.mobile-only{display:none}@media(max-width:1180px){.topbar{grid-template-columns:auto minmax(220px,1fr) minmax(190px,280px) auto}.top-search{display:none}.workspace{display:block;padding:var(--space-4)}.module-sidebar{position:fixed;inset:0 auto 0 0;height:100vh;z-index:40;width:min(86vw,340px);border-radius:0;transform:translate(-104%);transition:transform .22s ease}.module-sidebar.is-open{transform:translate(0)}.mobile-only{display:inline-flex}}@media(max-width:780px){.topbar{grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-3);padding:var(--space-3)}.brand-mark,.progress-pill,.desktop-only{display:none}.brand h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.course-picker{grid-column:1 / -1}.workspace{padding:var(--space-3)}.module-sidebar{padding:var(--space-4)}.reader{padding:var(--space-5)}.reader-toolbar{margin-bottom:var(--space-5)}.reader-header h2{font-size:clamp(2rem,12vw,3.25rem)}.markdown-body{font-size:.98rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
