:root{color:#171715;font-synthesis:none;text-rendering:optimizelegibility;--canvas:#f4f2ec;--surface:#fff;--surface-subtle:#eae7df;--ink:#171715;--ink-muted:#65645f;--rule:#c9c6bd;--signal:#c83b24;--signal-strong:#9f2b19;--info:#1769aa;--success:#287a4b;--warning:#9a6500;--danger:#b3261e;--radius-small:4px;--radius-control:8px;--radius-surface:12px;--container:1280px;--ease:cubic-bezier(.2, .7, .3, 1);background:#f4f2ec;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,Helvetica Neue,Arial,sans-serif}*{box-sizing:border-box}html{background:var(--canvas)}body{background:var(--canvas);min-width:320px;min-height:100vh;margin:0}button,input,textarea,select{font:inherit}h1,h2,h3,.wordmark{font-family:SF Pro Display,-apple-system,BlinkMacSystemFont,SF Pro Text,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid color-mix(in srgb, var(--info) 55%, transparent);outline-offset:3px}a{color:inherit}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app{min-height:100vh}.site-header{width:100%;height:68px;padding-inline:max(32px, calc((100% - var(--container)) / 2));border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;display:flex}.header-primary{align-items:center;gap:48px;height:100%;display:flex}.wordmark{letter-spacing:-.01em;cursor:pointer;background:0 0;border:0;align-items:flex-end;gap:12px;height:100%;padding:0 0 13px;font-size:18px;font-weight:600;line-height:18px;display:inline-flex}.mark{width:32px;height:16px;margin-bottom:1px;display:inline-block;position:relative}.mark-line{background:var(--signal);height:2px;position:absolute;top:7px;left:0;right:0}.mark-station{border:3px solid var(--signal);background:var(--canvas);border-radius:50%;width:12px;height:12px;position:absolute;top:2px;left:10px}.main-nav{align-items:center;gap:32px;height:100%;display:flex}.main-nav button{height:100%;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:flex-end;padding:0 0 13px;font-size:14px;font-weight:500;line-height:18px;display:flex}.main-nav button:hover{color:var(--ink)}.main-nav button.active{color:var(--ink);border-bottom-color:var(--signal)}.header-tools{position:relative}.settings-button{border-radius:var(--radius-control);width:40px;height:40px;color:var(--ink-muted);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;display:grid}.settings-button:hover,.settings-button[aria-expanded=true]{border-color:var(--rule);background:var(--surface);color:var(--ink)}.settings-menu{z-index:10;border:1px solid var(--rule);border-radius:var(--radius-surface);background:var(--surface);width:288px;padding:20px;position:absolute;top:calc(100% + 10px);right:0}.settings-menu h2{margin:0 0 8px;font-size:17px}.settings-menu>p,.settings-confirm>p{color:var(--ink-muted);margin:0 0 20px;font-size:13px;line-height:19px}.settings-actions{margin:0 -8px;display:grid}.settings-actions .quiet-button{text-align:left;min-height:36px}.hidden-file-input{display:none}.settings-reset{border-top:1px solid var(--rule);text-align:left;border-radius:0;width:100%;margin-top:12px;padding:16px 0 0}.settings-message{margin:16px 0 0!important}.settings-message.error{color:var(--danger)}.settings-confirm{border-top:1px solid var(--rule);margin-top:16px;padding-top:16px}.settings-confirm>p{color:var(--ink);margin-bottom:12px}.settings-confirm>div{justify-content:flex-end;gap:8px;display:flex}.settings-confirm .secondary-button{min-height:36px;padding:8px 12px;font-size:14px}.page-shell{width:min(calc(100% - 64px), var(--container));margin:0 auto}.today-hero{padding:64px 0 56px}.today-heading-row{color:var(--ink-muted);justify-content:flex-end;align-items:center;display:flex}.today-heading-row time{font-size:14px}.hero-content{max-width:760px;margin-top:32px}.hero-content h1{letter-spacing:-.035em;margin:0;font-size:clamp(46px,6vw,72px);font-weight:600;line-height:.98}.lede{max-width:600px;color:var(--ink-muted);margin:16px 0 0;font-size:17px;line-height:26px}.completion-summary{color:var(--ink-muted);margin:16px 0 0;font-size:17px;line-height:26px}.hero-action{align-items:center;gap:16px;margin-top:32px;display:flex}.hero-action .primary-button{min-width:176px}.study-more-button{align-items:center;gap:12px;display:inline-flex}.time-note{color:var(--ink-muted);font-size:13px}.primary-button{border:1px solid var(--signal);border-radius:var(--radius-control);background:var(--signal);color:#fff;cursor:pointer;min-height:48px;transition:background .16s var(--ease), border-color .16s var(--ease);justify-content:center;align-items:center;gap:12px;padding:12px 16px;font-weight:600;display:inline-flex}.primary-button:hover:not(:disabled){background:var(--signal-strong);border-color:var(--signal-strong)}.primary-button:disabled{background:var(--rule);border-color:var(--rule);color:var(--ink-muted);cursor:default}.secondary-button{border:1px solid var(--ink);border-radius:var(--radius-control);cursor:pointer;background:0 0;min-height:48px;padding:12px 16px;font-weight:600}.secondary-button:hover{color:var(--signal-strong);border-color:var(--signal-strong)}.quiet-button,.icon-button,.remove-button{cursor:pointer;background:0 0;border:0;padding:8px;font-size:14px;font-weight:500}.quiet-button:hover,.icon-button:hover,.remove-button:hover{color:var(--signal-strong)}.back-to-today{align-items:center;gap:8px;display:inline-flex}.route-overview{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:28px 0}.metrics-row{grid-template-columns:repeat(3,1fr);display:grid}.metric{flex-direction:column;gap:6px;padding-right:24px;display:flex}.metric+.metric{border-left:1px solid var(--rule);padding-left:24px}.metric strong{font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.metric span{color:var(--ink-muted);font-size:13px}.queue-section{padding:64px 0 96px}.section-heading{justify-content:space-between;align-items:end;margin-bottom:24px;display:flex}.section-heading h2{letter-spacing:-.02em;margin:0;font-size:28px}.section-count{color:var(--ink-muted);font-size:13px}.queue-counts{gap:16px;display:flex}.question-list{border-top:1px solid var(--ink)}.question-row{border-bottom:1px solid var(--rule);grid-template-columns:minmax(280px,2fr) 1fr 88px;align-items:center;gap:24px;min-height:88px;display:grid}.question-row.has-status{grid-template-columns:minmax(280px,2fr) 1fr 96px 88px}.question-primary h3{letter-spacing:-.01em;margin:0;font-size:17px;font-weight:600}.topic-label{color:var(--ink-muted);font-size:14px}.queue-status{font-size:13px;font-weight:500}.queue-status-review{color:var(--signal-strong)}.queue-status-new{color:var(--ink-muted)}.difficulty{font-size:13px}.standard-page-layout,.roadmap-layout{grid-template-columns:minmax(0,1fr) 288px;align-items:start;gap:32px;display:grid}.standard-page-main{min-width:0}.today-page .study-sidebar{margin-top:64px}.review-layout{padding:32px 0 72px}.session-progress{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:24px;margin-bottom:16px;display:grid}.session-progress>span{color:var(--ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px}.progress-segments{gap:4px;display:flex}.progress-segment{background:var(--rule);flex:1;height:6px;position:relative}.progress-segment.complete{background:var(--signal)}.progress-segment.current{border:2px solid var(--signal);background:0 0}.progress-segment.departing{border-color:#0000}.progress-segment.departing:before{content:"";background:var(--signal);transform-origin:0;animation:progress-route-fill .28s var(--ease) forwards;position:absolute;inset:0;transform:scaleX(0)}.progress-traveler{z-index:1;border:3px solid var(--signal);background:var(--canvas);width:10px;height:10px;animation:progress-traveler .3s var(--ease) forwards;border-radius:50%;position:absolute;top:50%;left:0;transform:translate(-50%,-50%)}.question-arrival{animation:question-arrival .18s var(--ease) both}.review-card{background:var(--surface);border-radius:var(--radius-surface);border:1px solid var(--rule);min-height:560px;position:relative;overflow:hidden}.focus-edge{background:var(--signal);width:4px;position:absolute;top:0;bottom:0;left:0}.question-meta{color:var(--ink-muted);gap:20px;font-size:13px;display:flex}.workbench{min-height:560px}.problem-panel{flex-direction:column;min-height:560px;padding:48px 64px 40px;display:flex}.question-copy{max-width:760px;margin-top:56px}.question-copy h1{letter-spacing:-.03em;margin:0;font-size:clamp(34px,4vw,50px);font-weight:600;line-height:1.04}.question-copy p{margin:24px 0 0;font-size:17px;line-height:27px}.problem-action{align-items:center;gap:16px;margin-top:auto;padding-top:40px;display:flex}.problem-action .primary-button{min-width:168px}.approach-button{padding-left:0;padding-right:0}kbd{border:1px solid var(--rule);border-radius:var(--radius-small);background:var(--canvas);color:var(--ink);border-bottom-width:2px;padding:3px 6px;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:11px}.review-sheet{background:#fafaf8;padding:32px 48px;display:none;position:relative}.review-sheet.open{animation:review-sheet-enter .18s var(--ease);display:block}.review-card.review-open{min-height:0}.review-card.review-open .workbench{display:none}.review-sheet-close{position:absolute;top:20px;right:20px}.review-sheet-main{grid-template-columns:minmax(180px,.65fr) minmax(0,2fr);gap:32px;padding-right:48px;display:grid}.review-sheet-intro{flex-direction:column;align-items:flex-start;display:flex}.review-sheet-intro h2{margin:0;font-size:22px}.review-sheet-intro .approach-button{margin-top:auto}.rating-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.rating-button{--rating-color:var(--ink-muted);text-align:left;border:1px solid var(--rule);border-radius:var(--radius-control);background:var(--surface);cursor:pointer;grid-template-rows:1fr 1fr;grid-template-columns:20px 1fr;align-items:center;column-gap:8px;min-height:84px;padding:10px 12px;transition:background-color .12s,border-color .12s;display:grid}.rating-button:hover,.rating-button:focus-visible{border-color:var(--rating-color);background:color-mix(in srgb, var(--rating-color) 6%, var(--surface))}.rating-button:disabled{cursor:default}.rating-button:disabled:not(.selected){opacity:.52}.rating-button.selected{border-color:var(--rating-color);background:color-mix(in srgb, var(--rating-color) 8%, var(--surface))}.rating-key{color:var(--rating-color);border-color:color-mix(in srgb, var(--rating-color) 40%, var(--rule));background:color-mix(in srgb, var(--rating-color) 10%, var(--canvas));grid-row:1/span 2;font-size:11px}.rating-button strong{align-self:end;font-size:14px}.rating-button small{color:var(--ink-muted);align-self:start;font-size:11px}.rating-again{--rating-color:var(--danger)}.rating-hard{--rating-color:var(--warning)}.rating-good{--rating-color:var(--success)}.review-sheet-steps{border-top:0;margin-top:0}.review-sheet-steps.open{border-top:1px solid var(--rule);margin-top:24px;padding-top:16px}.review-sheet .answer-copy{opacity:0;max-height:0;transition:max-height .18s,opacity .14s;overflow:hidden}.review-sheet .answer-copy.open{opacity:1;max-height:360px}.review-sheet .answer-copy ol{margin:0 0 20px;padding-left:22px}.review-sheet .answer-copy li{margin:10px 0;padding-left:6px;line-height:24px}.review-sheet .answer-copy code{color:var(--success);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:13px}@media (prefers-reduced-motion:reduce){.review-sheet.open{animation:none}.review-sheet .answer-copy{transition:none}}@keyframes review-sheet-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes progress-route-fill{to{transform:scaleX(1)}}@keyframes progress-traveler{to{left:100%}}@keyframes question-arrival{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes terminus-route{to{transform:scaleX(1)}}@keyframes terminus-station{0%{transform:translate(0)scale(.8)}75%{transform:translate(184px)scale(.8)}to{transform:translate(184px)scale(1)}}@keyframes completion-content{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.completion-page{flex-direction:column;justify-content:center;align-items:flex-start;min-height:calc(100vh - 160px);padding:96px 0;display:flex}.terminus{width:200px;height:16px;margin-bottom:48px;position:relative}.terminus:before{content:"";background:var(--signal);transform-origin:0;height:2px;animation:terminus-route .44s var(--ease) forwards;position:absolute;top:7px;left:0;right:8px;transform:scaleX(0)}.terminus span{border:4px solid var(--signal);background:var(--canvas);width:16px;height:16px;animation:terminus-station .48s var(--ease) forwards;border-radius:50%;position:absolute;left:0}.completion-page h1{letter-spacing:-.035em;margin:16px 0;font-size:clamp(48px,7vw,80px);font-weight:600}.completion-page>p{color:var(--ink-muted);margin:0;font-size:18px}.completion-page .primary-button{margin-top:40px}.completion-page h1,.completion-page>p,.completion-page .primary-button{animation:completion-content .22s var(--ease) .36s both}.path-page{padding:64px 0 96px}.path-kicker{color:var(--ink-muted);margin-bottom:12px;font-size:13px;display:block}.readiness-bar{background:var(--rule);width:100%;height:7px;display:flex;overflow:hidden}.readiness-bar>span{height:100%;display:block}.readiness-current{background:var(--success)}.readiness-due{background:var(--signal)}.readiness-new{background:var(--rule)}.readiness-counts{color:var(--ink-muted);font-variant-numeric:tabular-nums;grid-template-columns:repeat(3,1fr);margin-top:16px;font-size:13px;display:grid}.readiness-counts span{align-items:baseline;gap:6px;display:inline-flex}.readiness-counts strong{color:var(--ink);font-size:17px;font-weight:600}.readiness-counts span:before{content:"";flex:0 0 7px;width:7px;height:7px}.readiness-counts .count-current:before{background:var(--success)}.readiness-counts .count-due:before{background:var(--signal)}.readiness-counts .count-new:before{background:var(--rule)}.readiness-counts .is-zero{color:color-mix(in srgb, var(--ink-muted) 72%, transparent)}.readiness-counts .is-zero:before{visibility:hidden}.readiness-counts .is-zero strong{color:var(--ink-muted)}.category-path{border:0}.category-row{grid-template-columns:28px minmax(220px,1fr) minmax(220px,280px) 128px;align-items:center;gap:32px;min-height:132px;display:grid}.path-station{align-self:stretch;place-items:center;display:grid;position:relative}.path-station:before{content:"";background:var(--rule);width:2px;position:absolute;top:0;bottom:0;left:13px}.category-row:first-child .path-station:before{top:50%}.category-row:last-child .path-station:before{bottom:50%}.path-station span{z-index:1;border:2px solid var(--rule);background:var(--canvas);border-radius:50%;width:12px;height:12px;position:relative}.category-row.current .path-station span{border:4px solid var(--signal);width:16px;height:16px}.category-title-line{align-items:center;gap:10px;display:flex}.category-copy h2{letter-spacing:-.015em;margin:0;font-size:20px}.category-name-button{font-weight:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0}.category-name-button:hover{color:var(--signal-strong)}.category-copy p{color:var(--ink-muted);margin:8px 0 0;font-size:13px}.current-label{color:var(--signal-strong);font-size:12px;font-weight:600}.category-progress{flex-direction:column;justify-self:start;gap:10px;width:100%;max-width:280px;display:flex}.category-progress .readiness-bar{height:5px}.readiness-counts.compact{flex-wrap:wrap;gap:8px 16px;margin-top:0;font-size:12px;display:flex}.readiness-counts.compact strong{font-size:12px}.readiness-counts.compact span{gap:4px}.readiness-counts.compact span:before{flex-basis:5px;width:5px;height:5px}.category-action{border:1px solid var(--ink);border-radius:var(--radius-control);cursor:pointer;background:0 0;min-height:40px;padding:8px 10px;font-size:13px;font-weight:600}.category-action:hover:not(:disabled){color:var(--signal-strong);border-color:var(--signal-strong)}.roadmap-content{min-width:0}.roadmap-list-fallback{display:none}.roadmap-graph{overflow:hidden}.roadmap-canvas{width:900px;height:1000px;margin:0 auto;position:relative}.roadmap-connectors{width:900px;height:1000px;position:absolute;inset:0;overflow:visible}.roadmap-connectors path{fill:none;stroke:color-mix(in srgb, var(--ink-muted) 48%, transparent);stroke-width:2px;vector-effect:non-scaling-stroke}.roadmap-connectors path.updated{stroke:var(--signal);stroke-dasharray:10 8;animation:roadmap-route-update .9s var(--ease) both}.roadmap-node{border:1px solid var(--rule);border-radius:var(--radius-surface);background:var(--surface);width:196px;min-height:86px;color:var(--ink);text-align:left;cursor:pointer;box-shadow:0 1px 0 color-mix(in srgb, var(--ink) 5%, transparent);transition:border-color .14s var(--ease), transform .14s var(--ease);padding:12px;position:absolute;transform:translate(-50%,-50%)}.roadmap-node:hover:not(:disabled){border-color:var(--ink);transform:translate(-50%,calc(-50% - 2px))}.roadmap-node.current{border:2px solid var(--signal);box-shadow:none;padding:11px}.roadmap-node.updated{animation:roadmap-node-update .9s var(--ease) both}.roadmap-node.updated .readiness-bar>span,.category-row.updated .readiness-bar>span{transform-origin:0;animation:readiness-update .65s var(--ease) both}.category-row.updated .path-station span{animation:category-station-update .9s var(--ease) both}.roadmap-node:disabled{cursor:default}.roadmap-node-title{min-height:32px;font-size:14px;font-weight:600;line-height:17px;display:block}.roadmap-node .readiness-bar{height:4px;margin-top:8px}.roadmap-node .readiness-counts.compact{grid-template-columns:repeat(3,auto);justify-content:space-between;gap:4px;margin-top:8px;font-size:10px;display:grid}.roadmap-node .readiness-counts.compact strong{font-size:10px}.roadmap-node .readiness-counts.compact span{gap:3px}.roadmap-node .readiness-counts.compact span:before{display:none}.roadmap-next{color:var(--signal-strong);font-size:11px;font-weight:600;position:absolute;top:-20px;left:0}.category-details-layer{z-index:20;background:color-mix(in srgb, var(--ink) 28%, transparent);animation:category-backdrop-enter .16s var(--ease);justify-content:flex-end;display:flex;position:fixed;inset:0}.category-details{background:var(--surface);border-left:1px solid var(--rule);width:min(680px,58vw);height:100%;box-shadow:-12px 0 36px color-mix(in srgb, var(--ink) 12%, transparent);animation:category-panel-enter .2s var(--ease);overflow-y:auto}.category-details-header{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:flex-start;gap:32px;min-height:176px;padding:36px 40px 32px;display:flex}.category-details-header h2{letter-spacing:-.025em;margin:12px 0 8px;font-size:36px;line-height:1.05}.category-details-header p{color:var(--ink-muted);margin:0;font-size:13px}.category-details-close{flex:none;margin:-8px -8px 0 0}.category-details-readiness{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px 24px;padding:28px 40px 32px;display:grid}.category-details-readiness .readiness-bar{grid-column:1/-1}.category-details-readiness .readiness-counts{margin-top:0}.category-details-readiness .primary-button{min-width:176px}.category-problems{padding:8px 40px 48px}.category-problems-heading{justify-content:space-between;align-items:baseline;margin-bottom:16px;display:flex}.category-problems-heading h3{letter-spacing:-.015em;margin:0;font-size:20px}.category-problems-heading span{color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:13px}.category-problem-list{border-top:1px solid var(--ink)}.category-problem-row{border-bottom:1px solid var(--rule);grid-template-columns:84px minmax(0,1fr) 64px 28px;align-items:center;gap:16px;min-height:72px;display:grid}.problem-status{color:var(--ink-muted);font-size:12px;font-weight:500}.problem-status.current{color:var(--success)}.problem-status.due{color:var(--signal-strong)}.category-problem-title{min-width:0}.category-problem-title h4{text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:15px;font-weight:600;line-height:20px;overflow:hidden}.category-problem-title span{color:var(--ink-muted);margin-top:3px;font-size:11px;display:block}.category-problem-row>a{color:var(--ink-muted);place-items:center;display:grid}.category-problem-row>a:hover{color:var(--info)}@keyframes category-panel-enter{0%{opacity:.7;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes category-backdrop-enter{0%{background:0 0}}@keyframes roadmap-route-update{0%{stroke-dashoffset:36px;opacity:.25}45%{opacity:1}to{stroke-dashoffset:0;opacity:.5}}@keyframes roadmap-node-update{0%,to{border-color:var(--rule);box-shadow:0 1px 0 color-mix(in srgb, var(--ink) 5%, transparent)}35%{border-color:var(--signal);box-shadow:0 0 0 1px var(--signal)}}@keyframes readiness-update{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes category-station-update{0%,to{border-color:var(--rule)}35%{border-color:var(--signal);transform:scale(1.25)}}@keyframes calendar-first-review{0%{opacity:0;transform:scale(.7)}40%{opacity:1}to{opacity:0;transform:scale(1.18)}}.study-sidebar{flex-direction:column;gap:24px;min-width:0;display:flex;position:sticky;top:24px}.sidebar-panel{border:1px solid var(--rule);border-radius:var(--radius-surface);background:color-mix(in srgb, var(--surface) 72%, var(--canvas));padding:20px}.progress-panel{position:relative}.plan-select-button{border:1px solid var(--rule);border-radius:var(--radius-control);background:var(--surface);width:100%;min-height:40px;color:var(--ink);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.plan-select-button strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:600;overflow:hidden}.plan-select-button svg{transition:transform .16s var(--ease);flex:none}.plan-select-button[aria-expanded=true] svg{transform:rotate(180deg)}.plan-select-button:hover,.plan-select-button:focus-visible{border-color:var(--ink)}.sidebar-plan-options{z-index:4;border:1px solid var(--rule);border-radius:var(--radius-control);background:var(--surface);position:absolute;top:68px;left:20px;right:20px;overflow:hidden}.sidebar-plan-options button{border:0;border-bottom:1px solid var(--rule);width:100%;min-height:48px;color:var(--ink);text-align:left;cursor:pointer;background:0 0;justify-content:space-between;align-items:baseline;gap:12px;padding:10px 12px;display:flex}.sidebar-plan-options button:last-child{border-bottom:0}.sidebar-plan-options button:hover,.sidebar-plan-options button:focus-visible{background:var(--surface-subtle)}.sidebar-plan-options button.selected{background:var(--surface-subtle);color:var(--signal-strong)}.sidebar-plan-options span{font-size:13px;font-weight:500}.sidebar-plan-options small{color:var(--ink-muted);white-space:nowrap;font-size:10px}.progress-total{align-items:baseline;gap:8px;margin:28px 0 20px;display:flex}.progress-total strong{font-variant-numeric:tabular-nums;font-size:36px;font-weight:600;line-height:1}.progress-total span{color:var(--ink-muted);font-size:12px}.progress-panel .readiness-bar{height:5px}.progress-panel .readiness-counts.compact{grid-template-columns:repeat(3,auto);justify-content:space-between;gap:8px;margin-top:12px;font-size:10px}.progress-panel .readiness-counts.compact strong{font-size:11px}.month-controls{grid-template-columns:32px minmax(0,1fr) 32px;align-items:center;gap:8px;margin-bottom:20px;display:grid}.month-controls strong{text-align:center;font-size:14px;font-weight:600}.month-controls .icon-button{place-items:center;padding:6px;display:grid}.month-controls .previous-month svg{transform:rotate(180deg)}.calendar-weekdays,.activity-calendar{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.calendar-weekdays{color:var(--ink-muted);text-align:center;margin-bottom:8px;font-size:10px}.calendar-day,.calendar-blank{aspect-ratio:1;font-variant-numeric:tabular-nums;place-items:center;font-size:11px;display:grid}.calendar-day{border-radius:var(--radius-small);color:var(--ink-muted);border:1px solid #0000;position:relative}.calendar-day.intensity-1{background:color-mix(in srgb, var(--success) 18%, var(--surface));color:var(--ink)}.calendar-day.intensity-2{background:color-mix(in srgb, var(--success) 36%, var(--surface));color:var(--ink)}.calendar-day.intensity-3{background:color-mix(in srgb, var(--success) 62%, var(--surface));color:var(--ink)}.calendar-day.intensity-4{background:var(--success);color:#fff}.calendar-day.today{border-color:var(--signal);color:var(--ink);font-weight:600}.calendar-day.first-review:after{content:"";border:1px solid var(--signal);pointer-events:none;animation:calendar-first-review .8s var(--ease) both;position:absolute;inset:-4px}.streak-row{border-top:1px solid var(--rule);grid-template-columns:repeat(2,1fr);gap:16px;margin-top:28px;padding-top:24px;display:grid}.streak-row>div{flex-direction:column;gap:6px;display:flex}.streak-row strong{font-variant-numeric:tabular-nums;font-size:28px;line-height:1}.streak-row span{color:var(--ink-muted);font-size:12px}.streak-note{color:var(--ink-muted);margin:20px 0 0;font-size:11px;line-height:16px}.library-page{padding:64px 0 96px}.library-heading{justify-content:space-between;align-items:flex-end;padding-bottom:48px;display:flex}.library-heading h1{letter-spacing:-.035em;margin:0;font-size:clamp(40px,6vw,64px);font-weight:600;line-height:1}.library-heading .primary-button{min-width:160px}.add-form{background:var(--surface);border-left:4px solid var(--signal);border-radius:var(--radius-surface);margin-bottom:48px;padding:32px}.form-header{justify-content:space-between;align-items:start;margin-bottom:32px;display:flex}.form-header h2{margin:0;font-size:24px}.form-grid{grid-template-columns:repeat(2,1fr);gap:20px 24px;display:grid}.form-grid label{flex-direction:column;gap:8px;display:flex}.form-grid label>span{font-size:13px;font-weight:600}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid var(--rule);border-radius:var(--radius-control);width:100%;color:var(--ink);background:#fafaf8;padding:12px 14px}.form-grid textarea{resize:vertical;line-height:22px}.full-field{grid-column:1/-1}.form-actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.library-controls{border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);justify-content:space-between;align-items:center;height:64px;display:flex}.search-field{max-width:520px;color:var(--ink-muted);flex:1;align-items:center;gap:10px;display:flex}.search-field input{width:100%;color:var(--ink);background:0 0;border:0;outline:0}.library-controls>span{color:var(--ink-muted);font-variant-numeric:tabular-nums;font-size:12px}.library-row{border-bottom:1px solid var(--rule);grid-template-columns:minmax(260px,2fr) 1fr 80px 110px 24px auto;align-items:center;gap:20px;min-height:88px;font-size:14px;display:grid}.library-title h2{letter-spacing:-.015em;margin:5px 0 0;font-size:17px}.library-row>a{color:var(--ink-muted);display:inline-flex}.library-row>a:hover{color:var(--info)}.due-label{font-variant-numeric:tabular-nums;font-size:13px}.remove-button{color:var(--ink-muted);font-size:12px}.danger-text{color:var(--danger)}.danger-button{border:1px solid var(--danger);background:var(--danger);color:#fff;border-radius:var(--radius-control);cursor:pointer;padding:9px 14px}@media (width<=900px){.question-row{grid-template-columns:minmax(220px,2fr) 1fr 76px;gap:16px}.question-row.has-status{grid-template-columns:minmax(220px,2fr) 1fr 88px 76px}.problem-panel{min-height:480px}.review-sheet{padding-left:40px;padding-right:40px}.review-sheet-main{grid-template-columns:minmax(150px,.55fr) minmax(0,2fr);gap:24px;padding-right:40px}.library-row{grid-template-columns:minmax(220px,2fr) 1fr 70px 96px 24px auto}.library-row .remove-button{grid-column:1;justify-self:start;margin-top:-12px;padding-left:0}.category-row{grid-template-columns:28px minmax(200px,1fr) minmax(160px,220px) 120px;gap:20px}.standard-page-layout,.roadmap-layout{grid-template-columns:1fr;gap:48px}.study-sidebar{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid;position:static}.today-page .study-sidebar{margin-top:0}}@media (width<=1180px){.roadmap-graph{display:none}.roadmap-list-fallback{display:block}}@media (width<=680px){.page-shell{width:min(calc(100% - 32px), var(--container))}.site-header{height:60px;padding-inline:16px}.header-primary{gap:24px}.wordmark>span{display:none}.main-nav{gap:20px}.main-nav button{font-size:13px}.today-hero{padding:48px 0 32px}.today-heading-row{align-items:center}.today-heading-row time{text-align:right;max-width:120px;font-size:12px;line-height:18px}.hero-content{margin-top:24px}.hero-content h1{font-size:46px}.lede{margin-top:16px;font-size:16px;line-height:24px}.hero-action{align-items:center;margin-top:28px}.route-overview{padding:24px 0}.metric{padding-right:12px}.metric+.metric{padding-left:12px}.metric strong{font-size:20px}.queue-section{padding:48px 0 64px}.section-heading{align-items:flex-start}.section-heading h2{font-size:24px}.question-row{grid-template-columns:1fr auto;gap:12px;min-height:92px}.question-row.has-status{grid-template-columns:1fr auto}.question-row .topic-label{display:none}.question-row.has-status .queue-status{grid-area:2/1}.question-row.has-status .difficulty{grid-area:1/2/span 2;align-self:center}.question-primary h3{font-size:16px}.difficulty{font-size:12px}.review-layout{padding:24px 0 64px}.session-progress{grid-template-columns:1fr;gap:10px;margin-bottom:16px}.session-progress>span{font-size:12px}.review-card{min-height:0}.problem-panel{min-height:440px;padding:32px 24px 24px 28px}.question-meta{flex-wrap:wrap;gap:12px}.question-copy{margin-top:32px}.question-copy h1{font-size:36px}.question-copy p{font-size:16px;line-height:25px}.problem-action{flex-direction:column;align-items:stretch}.problem-action .primary-button,.problem-action .secondary-button{width:100%}.approach-button{text-align:center}.review-sheet{padding:20px 24px 24px}.review-sheet-close{top:12px;right:12px}.review-sheet-main{grid-template-columns:1fr;gap:16px;padding-right:0}.review-sheet-intro{min-height:36px;padding-right:44px}.review-sheet-intro h2{font-size:18px}.review-sheet-intro .approach-button{margin-top:12px}.rating-grid{grid-template-columns:1fr}.completion-page{min-height:calc(100vh - 128px);padding:64px 0}.completion-page h1{font-size:48px}.path-page{padding:48px 0 64px}.readiness-counts{gap:12px}.category-row{grid-template-columns:20px minmax(0,1fr) 108px;gap:12px;min-height:0;padding:24px 0}.path-station{grid-row:1/span 2}.path-station:before{left:9px}.category-copy h2{font-size:17px}.category-progress{grid-column:2;gap:8px}.category-action{grid-area:1/3;font-size:12px}.study-sidebar{grid-template-columns:1fr}.activity-panel{max-width:none}.category-details{width:100%}.category-details-header{min-height:148px;padding:28px 24px 24px}.category-details-header h2{font-size:30px}.category-details-readiness{grid-template-columns:1fr;padding:24px}.category-details-readiness .primary-button{width:100%}.category-problems{padding:8px 24px 40px}.category-problem-row{grid-template-columns:minmax(0,1fr) 56px 24px;gap:12px;padding:14px 0}.category-problem-row .problem-status{grid-area:2/1}.category-problem-title{grid-area:1/1}.category-problem-row .difficulty{text-align:right;grid-area:1/2}.category-problem-row>a{grid-area:1/3}.library-page{padding:48px 0 64px}.library-heading{padding-bottom:32px;display:block}.library-heading h1{font-size:44px}.library-heading .primary-button{width:100%;margin-top:32px}.add-form{padding:24px 20px}.form-grid{grid-template-columns:1fr}.full-field{grid-column:auto}.library-controls{gap:16px}.library-controls>span{display:none}.library-row{grid-template-columns:1fr 24px;gap:12px;min-height:104px;padding:16px 0}.library-row .topic-label,.library-row .due-label{grid-column:1}.library-row .topic-label{color:var(--ink-muted)}.library-row>span:nth-of-type(2){display:none}.library-row>a{grid-area:1/2}.library-row .remove-button{grid-column:1;margin:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-delay:0s!important}}
