:root{--vellum-bg: #fbf9f5;--vellum-surface: #ffffff;--vellum-subtle: #f4f1ea;--vellum-border: #e4dfd4;--vellum-border-strong: #cfc8b8;--ink-primary: #18181b;--ink-secondary: #52525b;--ink-muted: #71717a;--accent-cobalt: #1d4ed8;--accent-cobalt-soft: #eff6ff;--accent-emerald: #047857;--accent-emerald-soft: #ecfdf5;--accent-amber: #b45309;--accent-amber-soft: #fffbeb;--accent-coral: #be123c;--accent-coral-soft: #fff1f2;--accent-violet: #6d28d9;--accent-violet-soft: #f5f3ff;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--shadow-card: 0 1px 3px rgba(24, 24, 27, .05), 0 1px 2px rgba(24, 24, 27, .03);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-serif: "Newsreader", "Charter", "Georgia", serif;--font-mono: "JetBrains Mono", "SFMono-Regular", Menlo, Monaco, Consolas, monospace}*{box-sizing:border-box}body{margin:0;background:var(--vellum-bg);color:var(--ink-primary);font-family:var(--font-sans);line-height:1.5;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:40;background:#fbf9f5f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--vellum-border);padding:.65rem 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.brand{display:flex;align-items:center;gap:.65rem}.brand-mark{width:34px;height:34px;border-radius:8px;background:var(--ink-primary);color:#fff;display:grid;place-items:center;font-weight:800;font-size:.9rem;letter-spacing:-.03em}.brand-title{font-weight:700;font-size:1rem;letter-spacing:-.02em}.brand-sub{font-size:.72rem;color:var(--ink-muted)}.nav-tabs{display:flex;gap:.35rem;background:var(--vellum-subtle);padding:.25rem;border-radius:var(--radius-md);border:1px solid var(--vellum-border);flex-wrap:wrap}.nav-tab{border:none;background:transparent;color:var(--ink-secondary);padding:.42rem .8rem;border-radius:var(--radius-sm);font-size:.82rem;font-weight:600;cursor:pointer;transition:all .14s ease}.nav-tab:hover{color:var(--ink-primary)}.nav-tab.active{background:var(--vellum-surface);color:var(--accent-cobalt);box-shadow:var(--shadow-card)}.topbar-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.main-container{max-width:1320px;width:100%;margin:0 auto;padding:.95rem 1.25rem 2.5rem}.card{background:var(--vellum-surface);border:1px solid var(--vellum-border);border-radius:var(--radius-lg);padding:1.2rem;box-shadow:var(--shadow-card)}.card-subtle{background:var(--vellum-subtle);border:1px solid var(--vellum-border);border-radius:var(--radius-md);padding:.95rem}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}@media (max-width: 960px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border-radius:var(--radius-sm);border:1px solid var(--vellum-border-strong);background:var(--vellum-surface);color:var(--ink-primary);font-size:.82rem;font-weight:600;padding:.48rem .85rem;cursor:pointer;transition:all .12s ease}.btn:hover:not(:disabled){background:var(--vellum-subtle)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent-cobalt);border-color:var(--accent-cobalt);color:#fff}.btn-primary:hover:not(:disabled){background:#1e40af}.btn-emerald{background:var(--accent-emerald);border-color:var(--accent-emerald);color:#fff}.btn-emerald:hover:not(:disabled){background:#065f46}.btn-coral{background:var(--accent-coral);border-color:var(--accent-coral);color:#fff}.btn-sm{padding:.32rem .68rem;font-size:.78rem}.btn-lg{min-height:46px;padding:.62rem 1.18rem;font-size:.92rem;font-weight:700;border-radius:10px}.btn-hero{width:100%;min-height:52px;padding:.78rem 1.3rem;font-size:1rem;font-weight:700;border-radius:12px;box-shadow:0 3px 10px #1d4ed82e}.badge{display:inline-flex;align-items:center;gap:.25rem;padding:.16rem .52rem;border-radius:999px;font-size:.72rem;font-weight:600;border:1px solid var(--vellum-border);background:var(--vellum-subtle);color:var(--ink-secondary)}.badge-cobalt{background:var(--accent-cobalt-soft);color:var(--accent-cobalt);border-color:#bfdbfe}.badge-emerald{background:var(--accent-emerald-soft);color:var(--accent-emerald);border-color:#a7f3d0}.badge-amber{background:var(--accent-amber-soft);color:var(--accent-amber);border-color:#fde68a}.badge-coral{background:var(--accent-coral-soft);color:var(--accent-coral);border-color:#fecdd3}.badge-violet{background:var(--accent-violet-soft);color:var(--accent-violet);border-color:#ddd6fe}.select-input,.text-input,.textarea-input{border:1px solid var(--vellum-border-strong);background:var(--vellum-surface);color:var(--ink-primary);border-radius:var(--radius-sm);padding:.44rem .65rem;font-size:.83rem;font-family:inherit}.textarea-input{width:100%;min-height:96px;resize:vertical}.progress-track{width:100%;height:8px;background:var(--vellum-subtle);border-radius:999px;overflow:hidden;border:1px solid var(--vellum-border)}.progress-fill{height:100%;background:var(--accent-cobalt);border-radius:999px;transition:width .25s ease}.prose-serif{font-family:var(--font-serif);font-size:1.03rem;line-height:1.72;color:var(--ink-primary)}.prose-serif h2{font-family:var(--font-sans);font-size:1.14rem;font-weight:700;margin:.2rem 0 .65rem;color:var(--ink-primary);letter-spacing:-.01em}.prose-serif h3,.prose-serif h4{font-family:var(--font-sans);font-size:.98rem;font-weight:700;margin:.95rem 0 .45rem;color:var(--ink-primary)}.prose-serif p{margin:0 0 .8rem}.prose-serif p:last-child{margin-bottom:0}.prose-serif ul,.prose-serif ol{margin:.4rem 0 .85rem;padding-left:1.35rem}.prose-serif li{margin-bottom:.32rem}.prose-serif blockquote{margin:.75rem 0;padding:.65rem .9rem;border-left:3px solid var(--accent-cobalt);background:var(--vellum-surface);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--ink-secondary)}.prose-serif table{width:100%;border-collapse:collapse;margin:.8rem 0;font-family:var(--font-sans);font-size:.85rem;background:var(--vellum-surface);border:1px solid var(--vellum-border);border-radius:var(--radius-sm);overflow:hidden}.prose-serif th{text-align:left;padding:.5rem .65rem;background:var(--vellum-subtle);border-bottom:1px solid var(--vellum-border-strong);font-weight:700;color:var(--ink-primary)}.prose-serif td{padding:.5rem .65rem;border-bottom:1px solid var(--vellum-border);vertical-align:top}.prose-serif img{max-width:100%!important;max-height:min(30vh,250px)!important;width:auto!important;height:auto!important;object-fit:contain;border-radius:var(--radius-sm);border:1px solid var(--vellum-border);display:block;margin:.45rem auto!important;background:#fff;cursor:zoom-in}.prose-serif figure{margin:.55rem 0;padding:.5rem .65rem;background:var(--vellum-surface);border:1px solid var(--vellum-border);border-radius:var(--radius-md);text-align:center}.prose-serif figcaption{font-family:var(--font-sans);font-size:.76rem;color:var(--ink-secondary);margin-top:.32rem;line-height:1.4}.question-figure-above{margin:0 0 .65rem;display:grid;grid-template-columns:1fr;gap:.55rem}.question-figure-above.multi{grid-template-columns:repeat(2,minmax(0,1fr))}@media (max-width: 720px){.question-figure-above.multi{grid-template-columns:1fr}}.question-figure-item{margin:0;padding:.45rem .65rem;background:#fff;border:1px solid var(--vellum-border);border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center}.question-figure-img-wrap{position:relative;display:inline-flex;justify-content:center;align-items:center;max-width:100%;cursor:zoom-in}.question-figure-above img{max-width:100%!important;max-height:min(24vh,205px)!important;width:auto!important;height:auto!important;object-fit:contain;display:block;margin:0 auto!important;border-radius:4px;border:none;background:#fff}.question-figure-above.multi img{max-height:min(21vh,180px)!important}.zoom-pill-hint{position:absolute;right:6px;bottom:6px;background:#18181bb8;color:#fff;font-family:var(--font-sans);font-size:.68rem;font-weight:600;padding:.14rem .42rem;border-radius:999px;opacity:0;transition:opacity .14s ease;pointer-events:none}.question-figure-img-wrap:hover .zoom-pill-hint{opacity:1}.question-figure-caption{font-family:var(--font-sans);font-size:.75rem;line-height:1.35;color:var(--ink-secondary);text-align:center;margin-top:.28rem;max-width:76ch}.question-figure-caption p{margin:0!important}.question-stem-compact{font-size:.96rem;line-height:1.54}.question-stem-compact p{margin:0 0 .48rem!important}.question-stem-compact p:last-child{margin-bottom:0!important}.prose-serif details{margin:.75rem 0;padding:.6rem .85rem;background:var(--vellum-surface);border:1px solid var(--vellum-border);border-radius:var(--radius-sm)}.prose-serif summary{font-family:var(--font-sans);font-weight:600;font-size:.88rem;cursor:pointer}.video-player-frame{width:100%;max-height:480px;border-radius:var(--radius-md);background:#0f172a;border:1px solid var(--vellum-border-strong);display:block}.playlist-grid{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}.code-block{background:#18181b;color:#e4e4e7;font-family:var(--font-mono);font-size:.75rem;padding:.85rem;border-radius:var(--radius-md);overflow-x:auto;max-height:320px;white-space:pre-wrap;word-break:break-word}.option-card{width:100%;min-height:52px;text-align:left;display:flex;align-items:center;gap:.75rem;padding:.64rem .92rem;border:1.5px solid var(--vellum-border-strong);border-radius:10px;background:var(--vellum-surface);cursor:pointer;font-size:.94rem;line-height:1.45;margin-bottom:.48rem;transition:all .12s ease}.option-card:hover{border-color:var(--accent-cobalt);background:var(--accent-cobalt-soft)}.option-card.selected{border-color:var(--accent-cobalt);background:var(--accent-cobalt-soft);box-shadow:0 0 0 1px var(--accent-cobalt)}.option-card.selected .option-key{background:var(--accent-cobalt);border-color:var(--accent-cobalt);color:#fff}.option-card.eliminated{opacity:.48;text-decoration:line-through}.option-key{min-width:30px;height:30px;border-radius:8px;background:var(--vellum-subtle);border:1px solid var(--vellum-border-strong);display:grid;place-items:center;font-weight:700;font-size:.84rem;flex-shrink:0}.table-clean{width:100%;border-collapse:collapse;font-size:.82rem}.table-clean th{text-align:left;padding:.55rem .65rem;border-bottom:1px solid var(--vellum-border-strong);color:var(--ink-secondary);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.table-clean td{padding:.6rem .65rem;border-bottom:1px solid var(--vellum-border);vertical-align:middle}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#18181b73;display:grid;place-items:center;z-index:80;padding:1rem}.modal-panel{background:var(--vellum-surface);border:1px solid var(--vellum-border);border-radius:var(--radius-lg);width:100%;max-width:640px;max-height:90vh;overflow-y:auto;padding:1.4rem;box-shadow:0 20px 40px #00000029}.unit-accordion{border:1px solid var(--vellum-border);border-radius:var(--radius-md);margin-bottom:.5rem;background:var(--vellum-surface);overflow:hidden}.unit-header{width:100%;border:none;background:var(--vellum-subtle);padding:.62rem .85rem;display:flex;align-items:center;justify-content:space-between;cursor:pointer;font-size:.83rem;font-weight:600;color:var(--ink-primary)}.unit-body{padding:.55rem .75rem;display:flex;flex-direction:column;gap:.42rem;max-height:440px;overflow-y:auto}.course-switcher-select{min-height:42px;font-size:.9rem;font-weight:700;padding:.44rem .85rem;border-radius:10px;border:1.5px solid var(--vellum-border-strong);background:var(--vellum-surface);color:var(--ink-primary);max-width:340px;cursor:pointer}.daily-goal-pill{display:inline-flex;align-items:center;gap:.45rem;min-height:40px;padding:.38rem .85rem;border-radius:999px;background:var(--vellum-surface);border:1.5px solid var(--vellum-border-strong);font-size:.84rem;font-weight:700;color:var(--ink-primary)}.daily-goal-pill.met{background:var(--accent-emerald-soft);border-color:#6ee7b7;color:var(--accent-emerald)}.tools-menu-wrap{position:relative}.tools-menu-popover{position:absolute;right:0;top:calc(100% + 8px);width:320px;background:var(--vellum-surface);border:1px solid var(--vellum-border-strong);border-radius:var(--radius-lg);box-shadow:0 18px 40px #0f172a29;padding:.85rem;z-index:95;display:flex;flex-direction:column;gap:.25rem}.tools-menu-section{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-muted);padding:.45rem .5rem .2rem}.tools-menu-item{width:100%;min-height:42px;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.52rem .7rem;border-radius:8px;border:none;background:transparent;font-size:.86rem;font-weight:600;color:var(--ink-primary);cursor:pointer}.tools-menu-item:hover{background:var(--vellum-subtle)}.tools-menu-item.active{background:var(--accent-cobalt-soft);color:var(--accent-cobalt)}.hub-single-course-wrap{max-width:920px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:1.1rem}.course-binder-tabs{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}.course-binder-tab{min-height:44px;padding:.5rem 1rem;border-radius:10px;border:1.5px solid var(--vellum-border-strong);background:var(--vellum-surface);color:var(--ink-secondary);font-size:.88rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;transition:all .14s ease}.course-binder-tab:hover{border-color:var(--accent-cobalt);color:var(--ink-primary)}.course-binder-tab.active{background:var(--accent-cobalt);border-color:var(--accent-cobalt);color:#fff;box-shadow:0 2px 8px #1d4ed838}.goal-segments-row{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;margin:.55rem 0}.goal-segment{height:12px;border-radius:999px;background:var(--vellum-border-strong);opacity:.55;transition:all .2s ease}.goal-segment.filled{background:var(--accent-emerald);opacity:1}.unit-pill-strip{display:flex;gap:.6rem;overflow-x:auto;padding-bottom:.35rem;scrollbar-width:thin}.unit-pill-card{flex:0 0 auto;min-width:172px;max-width:230px;min-height:68px;text-align:left;padding:.68rem .92rem;border-radius:12px;border:1.5px solid var(--vellum-border-strong);background:var(--vellum-surface);color:var(--ink-primary);cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;gap:.32rem;transition:all .14s ease}.unit-pill-card:hover{border-color:var(--accent-cobalt)}.unit-pill-card.active{border:2px solid var(--accent-cobalt);background:var(--accent-cobalt-soft);box-shadow:0 2px 10px #1d4ed81f}.filter-pill-row{display:flex;gap:.45rem;flex-wrap:wrap;align-items:center}.filter-pill{min-height:40px;padding:.44rem .92rem;border-radius:999px;border:1.5px solid var(--vellum-border-strong);background:var(--vellum-surface);font-size:.84rem;font-weight:700;color:var(--ink-secondary);cursor:pointer;transition:all .12s ease}.filter-pill:hover{border-color:var(--ink-primary);color:var(--ink-primary)}.filter-pill.active{background:var(--ink-primary);border-color:var(--ink-primary);color:#fff}.timeline-list{display:flex;flex-direction:column;gap:.72rem}.timeline-row{display:flex;align-items:stretch;gap:.85rem}.timeline-rail{display:flex;flex-direction:column;align-items:center;width:38px;flex-shrink:0}@media (max-width: 640px){.timeline-rail{display:none}}.timeline-dot{width:36px;height:36px;border-radius:999px;display:grid;place-items:center;font-weight:800;font-size:.84rem;border:2px solid var(--vellum-border-strong);background:var(--vellum-surface);color:var(--ink-secondary);z-index:2;flex-shrink:0;margin-top:18px}.timeline-dot.completed{background:var(--accent-emerald);border-color:var(--accent-emerald);color:#fff}.timeline-dot.current{background:var(--accent-cobalt);border-color:var(--accent-cobalt);color:#fff;box-shadow:0 0 0 4px var(--accent-cobalt-soft)}.timeline-line{width:2px;flex:1;background:var(--vellum-border-strong);margin-top:4px;margin-bottom:-22px}.timeline-line.completed{background:var(--accent-emerald)}.timeline-card{flex:1;min-width:0;min-height:74px;background:var(--vellum-surface);border:1.5px solid var(--vellum-border);border-radius:14px;padding:.92rem 1.15rem;box-shadow:var(--shadow-card);cursor:pointer;transition:border-color .14s ease,box-shadow .14s ease}.timeline-card:hover{border-color:var(--accent-cobalt)}.timeline-card.completed{background:var(--vellum-subtle);border-color:#a7f3d0}.timeline-card.current-next{border:2px solid var(--accent-cobalt);background:#fff;padding:1.15rem 1.25rem;box-shadow:0 8px 24px #1d4ed81c}.step-tab-btn{min-height:40px;padding:.44rem .85rem;font-size:.84rem;font-weight:700;border-radius:9px}
