:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#090d0f;--surface:#101619;--line:#263137;--line-strong:#354249;--text:#eef3f3;--muted:#89969b;--faint:#5f6c71;--accent:#6ee7b7;--font-ui:Inter, ui-sans-serif, system-ui, sans-serif;--font-code:"SFMono-Regular", Consolas, monospace;--content-width:760px;--nav-height:68px}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f2f5f4;--surface:#fff;--line:#d8dfdc;--line-strong:#c4ceca;--text:#14201d;--muted:#61706b;--faint:#84918c;--accent:#047857}*{box-sizing:border-box}html{background:var(--bg);max-width:100%;overflow-x:hidden}body{background:var(--bg);max-width:100%;min-height:100vh;color:var(--text);font-family:var(--font-ui);margin:0;overflow-x:hidden}button,select,input,textarea,a{touch-action:manipulation}button,select,input,textarea{font:inherit}code,pre,h1,h2,h3,p,li,dd,strong{overflow-wrap:anywhere}a{color:inherit;text-decoration:none}.app-shell{min-height:100vh;padding-bottom:calc(var(--nav-height) + env(safe-area-inset-bottom))}.topbar{z-index:10;border-bottom:1px solid var(--line);background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0}.topbar-inner{width:min(100%, var(--content-width));justify-content:space-between;align-items:center;min-height:54px;margin:0 auto;padding:0 16px;display:flex}.brand{font:700 .78rem/1 var(--font-code);letter-spacing:.12em;align-items:center;gap:9px;display:flex}.brand-mark{border:2px solid var(--accent);width:9px;height:9px;box-shadow:4px 4px 0 color-mix(in srgb, var(--accent) 32%, transparent)}.version-label{color:var(--faint);font:500 .64rem/1 var(--font-code)}.page-content{width:min(100%, var(--content-width));margin:0 auto;padding:24px 16px 28px}.page-header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.eyebrow,.day-code,.item-type,.time-label,.row-status,.status-badge,.summary-panel span,.section-heading,.scope-note{font-family:var(--font-code)}.eyebrow{color:var(--muted);letter-spacing:.09em;margin:0 0 12px;font-size:.64rem}.day-code{color:var(--accent);letter-spacing:.08em;margin:0 0 6px;font-size:.76rem;font-weight:700}h1{letter-spacing:-.025em;max-width:520px;margin:0;font-size:clamp(1.35rem,6vw,2rem);line-height:1.2}.status-badge{border:1px solid var(--line-strong);color:var(--muted);letter-spacing:.08em;flex:none;margin-top:27px;padding:6px 8px;font-size:.6rem}.status-badge.status-doing{color:#e7bd67;border-color:#d8a84e}.status-badge.status-pass{border-color:var(--accent);color:var(--accent)}.day-selector{border:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:14px;margin:-4px 0 14px;padding:11px 13px;display:flex}.day-selector>div{gap:5px;display:grid}.day-selector span{color:var(--faint);font:600 .56rem/1 var(--font-code);letter-spacing:.08em}.day-selector strong{color:var(--accent);font:650 .72rem/1 var(--font-code);letter-spacing:.07em}.day-selector select{border:1px solid var(--line-strong);background:var(--bg);min-width:112px;min-height:36px;color:var(--text);font:600 .68rem/1 var(--font-code);cursor:pointer;border-radius:0;padding:7px 30px 7px 10px}.day-selector select:focus-visible{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:2px}.day-selector select:disabled{color:var(--faint);cursor:default;opacity:.55}.today-focus{border:1px solid var(--line);background:var(--surface);margin-bottom:14px}.today-focus>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:58px;padding:13px 15px;display:flex}.today-focus>header>div{gap:5px;display:grid}.today-focus>header p,.today-focus>header h2{font-family:var(--font-code);margin:0}.today-focus>header p{color:var(--faint);letter-spacing:.08em;font-size:.54rem}.today-focus>header h2{color:var(--accent);letter-spacing:.1em;font-size:.72rem}.today-focus>header>strong{color:var(--muted);font:650 .58rem/1 var(--font-code);letter-spacing:.06em}.today-focus-goal{border-bottom:1px solid var(--line);gap:7px;padding:13px 15px;display:grid}.today-focus-goal>span{color:var(--faint);font:650 .53rem/1 var(--font-code);letter-spacing:.08em}.today-focus-goal>p{color:var(--text);margin:0;font-size:.78rem;line-height:1.5}.focus-task-list{display:grid}.focus-task-list>article{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-width:0;padding:12px 15px;display:flex}.focus-task-list>article:last-child{border-bottom:0}.focus-task-list>article>div:first-child{gap:5px;min-width:0;display:grid}.focus-task-list>article span{color:var(--faint);font:600 .52rem/1 var(--font-code);letter-spacing:.07em}.focus-task-list>article strong{text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;line-height:1.35;overflow:hidden}.focus-task-actions{flex:none;gap:7px;display:flex}.focus-task-actions a,.focus-task-actions button{border:1px solid var(--line-strong);background:var(--bg);min-height:34px;color:var(--muted);font:650 .53rem/1 var(--font-code);letter-spacing:.05em;place-items:center;padding:8px 10px;display:grid}.focus-task-actions button{border-color:var(--accent);color:var(--accent);cursor:pointer}.focus-task-actions button:disabled{border-color:var(--line-strong);color:var(--faint);cursor:default;opacity:.45}.focus-complete{color:var(--accent);font:650 .63rem/1 var(--font-code);letter-spacing:.06em;margin:0;padding:18px 15px}.summary-panel{border:1px solid var(--line);background:var(--surface);grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px;padding:15px;display:grid}.summary-panel>div{gap:6px;display:grid}.summary-panel span{color:var(--faint);letter-spacing:.08em;font-size:.59rem}.summary-panel strong{font:650 .9rem/1.1 var(--font-code)}.metric-track{background:var(--line);height:4px;margin-top:2px;overflow:hidden}.metric-track span{background:var(--accent);width:0;height:100%;display:block}.mastery-track span{background:#60a5fa}.study-time-panel{border:1px solid var(--line);background:var(--surface);margin-bottom:28px}.study-time-panel>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:58px;padding:13px 15px;display:flex}.study-time-panel>header div{gap:5px;display:grid}.study-time-panel>header p{color:var(--faint);font:600 .54rem/1 var(--font-code);letter-spacing:.08em;margin:0}.study-time-panel>header h2{color:var(--accent);font:650 .72rem/1 var(--font-code);letter-spacing:.1em;margin:0}.study-time-panel>header strong{font:650 .82rem/1 var(--font-code)}.study-timer-body{grid-template-columns:minmax(130px,.8fr) minmax(180px,1fr);align-items:end;gap:14px;padding:15px;display:grid}.active-focus-task{border-bottom:1px solid var(--line);grid-column:1/-1;gap:6px;padding-bottom:12px;display:grid}.active-focus-task>span{color:var(--faint);font:600 .53rem/1 var(--font-code);letter-spacing:.08em}.active-focus-task>strong{font-size:.78rem;line-height:1.4}.study-type-field{gap:8px;display:grid}.study-type-field>span,.study-timer-display>span{color:var(--faint);font:600 .55rem/1 var(--font-code);letter-spacing:.08em}.study-type-field select{border:1px solid var(--line-strong);background:var(--bg);min-height:40px;color:var(--text);font:650 .68rem/1 var(--font-code);cursor:pointer;border-radius:0;padding:8px 30px 8px 10px}.study-type-field select:focus-visible{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:1px}.study-type-field select:disabled{color:var(--faint);cursor:default;opacity:.6}.study-timer-display{text-align:right;gap:7px;display:grid}.study-timer-display>strong{color:var(--accent);font:650 1.65rem/1 var(--font-code);letter-spacing:.05em}.study-timer-actions{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.study-timer-actions button{border:1px solid var(--line-strong);background:var(--bg);min-height:40px;color:var(--muted);font:650 .58rem/1 var(--font-code);letter-spacing:.06em;cursor:pointer;padding:9px}.study-timer-actions button:first-child,.study-timer-actions button:last-child{border-color:var(--accent);color:var(--accent)}.study-timer-actions button:hover:not(:disabled),.study-timer-actions button:focus-visible:not(:disabled){background:color-mix(in srgb, var(--accent) 7%, var(--bg));outline:none}.study-timer-actions button:disabled{border-color:var(--line-strong);color:var(--faint);cursor:default;opacity:.45}.section{margin-top:26px}.section-heading{color:var(--accent);letter-spacing:.12em;align-items:center;margin:0 0 9px;font-size:.7rem;display:flex}.section-heading:after{background:var(--line);content:"";flex:1;height:1px;margin-left:10px}.section-heading span{color:var(--faint);margin-left:8px}.section-body{border-top:1px solid var(--line)}.learning-group{padding-top:14px}.learning-group+.learning-group{border-top:1px solid var(--line);margin-top:4px}.learning-group-title{color:var(--faint);font:600 .58rem/1 var(--font-code);letter-spacing:.1em;margin:0 2px 10px}.topic-list{flex-wrap:wrap;gap:7px;margin:0 0 14px;padding:0 2px;list-style:none;display:flex}.topic-list li{border:1px solid var(--line-strong);color:var(--muted);font:500 .66rem/1.2 var(--font-code);padding:6px 8px}.empty-resource-note{border-top:1px solid var(--line);color:var(--faint);font:500 .58rem/1 var(--font-code);letter-spacing:.07em;margin:0;padding:14px 2px}.learning-row,.task-row{border-bottom:1px solid var(--line);align-items:flex-start;min-width:0;padding:14px 2px;display:flex}.learning-row>div:not(.task-actions),.task-row>div{flex:1;min-width:0}.learning-row h2,.task-row h2{margin:3px 0 0;font-size:.9rem;font-weight:620;line-height:1.35}.learning-row p,.task-row p{color:var(--muted);margin:5px 0 0;font-size:.75rem;line-height:1.5}.item-type,.time-label,.row-status{color:var(--faint);letter-spacing:.07em;font-size:.58rem}.time-label,.row-status{flex:none;margin:5px 0 0 14px}.task-marker{border:1px solid var(--line-strong);flex:none;width:13px;height:13px;margin:3px 11px 0 0}.task-marker.status-doing{background:#d8a84e59;border-color:#d8a84e}.task-marker.status-pass{border-color:var(--accent);background:var(--accent)}.task-actions{flex:none;justify-items:end;gap:8px;margin-left:14px;display:grid}.task-actions .time-label{margin:5px 0 0}.task-status-select{border:1px solid var(--line-strong);background:var(--surface);min-width:78px;min-height:32px;color:var(--muted);font:600 .58rem/1 var(--font-code);letter-spacing:.05em;cursor:pointer;border-radius:0;padding:6px 22px 6px 7px}.task-status-select.status-doing{color:#e7bd67;border-color:#d8a84e}.task-status-select.status-pass{border-color:var(--accent);color:var(--accent)}.task-status-select:focus-visible{outline:1px solid var(--accent);outline-offset:2px}.practice-list{gap:14px;padding-top:14px;display:grid}.practice-card{border:1px solid var(--line);background:var(--surface);padding:14px}.practice-card.completed{border-color:color-mix(in srgb, var(--accent) 58%, var(--line))}.practice-card>header{justify-content:space-between;align-items:center;gap:12px;display:flex}.practice-card>header>span,.practice-status,.practice-feedback>strong,.practice-feedback p>span{font-family:var(--font-code);letter-spacing:.07em}.practice-card>header>span{color:var(--faint);font-size:.55rem}.practice-status{border:1px solid var(--line-strong);color:var(--faint);padding:5px 7px;font-size:.52rem}.practice-status.status-doing{color:#e7bd67;border-color:#d8a84e}.practice-status.status-pass{border-color:var(--accent);color:var(--accent)}.practice-card>h2{margin:13px 0 0;font-size:.9rem;line-height:1.45}.practice-card fieldset{border:0;gap:8px;min-width:0;margin:14px 0 0;padding:0;display:grid}.practice-card fieldset label{border:1px solid var(--line-strong);min-height:42px;color:var(--muted);cursor:pointer;grid-template-columns:auto 20px minmax(0,1fr);align-items:center;gap:8px;padding:10px 11px;font-size:.76rem;line-height:1.4;display:grid}.practice-card fieldset label:hover,.practice-card fieldset label:focus-within,.practice-card fieldset label.selected{border-color:var(--accent);color:var(--text)}.practice-card fieldset:disabled label{cursor:default;opacity:.58}.practice-card fieldset:disabled label.selected{opacity:1}.practice-card fieldset input{width:15px;height:15px;accent-color:var(--accent);margin:0}.practice-card fieldset label>strong{color:var(--accent);font:650 .66rem/1 var(--font-code)}.practice-submit{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 7%, var(--surface));min-width:112px;min-height:36px;color:var(--accent);font:650 .58rem/1 var(--font-code);letter-spacing:.07em;cursor:pointer;margin-top:12px;padding:8px 12px}.practice-submit:disabled{border-color:var(--line-strong);color:var(--faint);cursor:default;opacity:.55}.practice-feedback{border-left:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 5%, var(--bg));margin-top:13px;padding:12px}.practice-feedback.incorrect{background:color-mix(in srgb, #ef4444 5%, var(--bg));border-left-color:#ef4444}.practice-feedback>strong{color:var(--accent);font-size:.63rem}.practice-feedback.incorrect>strong{color:#fca5a5}.practice-feedback p{color:var(--muted);gap:6px;margin:10px 0 0;font-size:.72rem;line-height:1.55;display:grid}.practice-feedback p>span{color:var(--faint);font-size:.51rem}.day-completion-summary{grid-column:1/-1}.requirement-label{border:1px solid var(--line-strong);color:var(--faint);font:650 .5rem/1 var(--font-code);letter-spacing:.07em;padding:4px 6px;display:inline-flex}.requirement-label.required{border-color:color-mix(in srgb, var(--accent) 58%, var(--line));color:var(--accent)}.resource-card{gap:16px}.resource-card.completed{border-left:2px solid var(--accent);padding-left:10px}.resource-card>div.resource-actions{flex:0 0 148px;justify-items:stretch;gap:8px;min-width:148px;display:grid}.resource-meta{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.resource-platform{border-left:1px solid var(--line-strong);color:var(--muted);font:600 .55rem/1 var(--font-code);letter-spacing:.05em;padding-left:7px}.resource-meta .time-label{margin:0}.resource-objectives{color:var(--muted);gap:5px;margin:11px 0 0;padding-left:18px;font-size:.7rem;line-height:1.45;display:grid}.resource-actions>a,.software-actions a{border:1px solid var(--accent);min-height:34px;color:var(--accent);font:650 .55rem/1.25 var(--font-code);letter-spacing:.04em;place-items:center;padding:8px 10px;display:grid}.resource-actions>a:hover,.resource-actions>a:focus-visible,.software-actions a:hover,.software-actions a:focus-visible{background:color-mix(in srgb, var(--accent) 9%, transparent);outline:none}.resource-actions>label{border:1px solid var(--line-strong);min-height:34px;color:var(--muted);font:600 .53rem/1.2 var(--font-code);cursor:pointer;align-items:center;gap:7px;padding:8px 9px;display:flex}.resource-actions input{width:14px;height:14px;accent-color:var(--accent);margin:0}.software-row{border-bottom:1px solid var(--line);padding:15px 2px}.software-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.software-heading h2{margin:7px 0 0;font-size:.9rem}.software-heading p{color:var(--muted);margin:5px 0 0;font-size:.75rem;line-height:1.5}.software-actions{margin-top:12px}.software-actions a{display:inline-grid}.execution-list{color:var(--muted);gap:6px;margin:11px 0 0;padding-left:21px;font-size:.72rem;line-height:1.5;display:grid}.build-task-card>div{width:100%}.build-task-card.completed{border-color:color-mix(in srgb, var(--accent) 58%, var(--line))}.build-task-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.build-status{border:1px solid var(--line-strong);color:var(--faint);font:650 .52rem/1 var(--font-code);letter-spacing:.07em;padding:6px 8px}.build-status.status-doing{color:#e7bd67;border-color:#d8a84e}.build-status.status-pass{border-color:var(--accent);color:var(--accent)}.verification-method{letter-spacing:.06em;color:var(--accent)!important;font:600 .58rem/1.4 var(--font-code)!important}.execution-block{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.execution-block h3{color:var(--faint);font:650 .56rem/1 var(--font-code);letter-spacing:.09em;margin:0}.execution-block pre{border:1px solid var(--line);background:var(--bg);max-width:100%;color:var(--text);font:500 .65rem/1.55 var(--font-code);margin:10px 0 0;padding:12px;overflow-x:auto}.command-line{border-left:2px solid var(--accent);background:var(--bg);color:var(--text);font:500 .64rem/1.4 var(--font-code);white-space:nowrap;margin-top:8px;padding:10px 11px;display:block;overflow-x:auto}.build-step-list{gap:10px;margin:12px 0 0;padding:0;list-style:none;display:grid}.build-step-list>li{border:1px solid var(--line);background:var(--bg);grid-template-columns:30px minmax(0,1fr);gap:10px;padding:12px;display:grid}.build-step-list>li>span{border:1px solid var(--accent);width:28px;height:28px;color:var(--accent);font:650 .58rem/1 var(--font-code);place-items:center;display:grid}.build-step-list h4{margin:2px 0 0;font-size:.78rem}.build-step-list p{color:var(--muted);margin:7px 0 0;font-size:.7rem;line-height:1.5}.build-step-list .step-expected{gap:5px;display:grid}.step-expected strong{color:var(--faint);font:650 .52rem/1 var(--font-code);letter-spacing:.07em}.build-verification{border:1px solid var(--line-strong);background:var(--bg);gap:11px;margin-top:16px;padding:13px;display:grid}.build-verification label{color:var(--text);cursor:pointer;align-items:center;gap:9px;font-size:.75rem;display:flex}.build-verification input{width:16px;height:16px;accent-color:var(--accent);margin:0}.build-verification button{border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 7%, var(--surface));min-height:38px;color:var(--accent);font:650 .58rem/1 var(--font-code);letter-spacing:.07em;cursor:pointer;padding:9px 12px}.build-verification button:disabled{border-color:var(--line-strong);color:var(--faint);cursor:default;opacity:.55}.build-verification>strong{color:var(--accent);font:650 .62rem/1.2 var(--font-code);letter-spacing:.06em}.session-completion-overlay{z-index:30;background:#04080cc7;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.session-completion-dialog{border:1px solid var(--accent);background:var(--surface);width:min(100%,420px);padding:18px;box-shadow:0 18px 60px #0000006b}.session-completion-dialog>p:first-child,.session-completion-dialog h2,.session-completion-dialog dt,.session-completion-dialog dd{font-family:var(--font-code)}.session-completion-dialog>p:first-child{color:var(--accent);letter-spacing:.09em;margin:0;font-size:.55rem}.session-completion-dialog h2{letter-spacing:.05em;margin:8px 0 0;font-size:.9rem}.session-completion-dialog>strong{margin-top:14px;font-size:.82rem;line-height:1.4;display:block}.session-completion-dialog dl{border:1px solid var(--line);grid-template-columns:1fr 1fr;margin:16px 0 0;display:grid}.session-completion-dialog dl>div{gap:6px;padding:11px;display:grid}.session-completion-dialog dl>div:first-child{border-right:1px solid var(--line)}.session-completion-dialog dt{color:var(--faint);letter-spacing:.07em;font-size:.5rem}.session-completion-dialog dd{color:var(--text);margin:0;font-size:.7rem}.completion-gate-note{color:var(--muted);margin:13px 0 0;font-size:.7rem;line-height:1.5}.session-completion-dialog footer{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;display:grid}.session-completion-dialog footer button{border:1px solid var(--line-strong);background:var(--bg);min-height:38px;color:var(--muted);font:650 .57rem/1 var(--font-code);letter-spacing:.06em;cursor:pointer}.session-completion-dialog footer button:first-child{border-color:var(--accent);color:var(--accent)}.expected-outcome{font-family:var(--font-code);font-size:.65rem!important}.mastery-row{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;min-height:48px;padding:13px 2px;display:grid}.mastery-row input{width:15px;height:15px;accent-color:var(--accent);cursor:pointer;margin:0}.mastery-row>span{font-size:.84rem;font-weight:580;line-height:1.4}.mastery-row>strong{color:var(--faint);font:600 .56rem/1 var(--font-code);letter-spacing:.06em}.mastery-row.mastered>span,.mastery-row.mastered>strong{color:var(--accent)}.day-step-navigation{border-top:1px solid var(--line);grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-top:30px;padding-top:16px;display:grid}.day-step-navigation span{color:var(--faint);font:600 .58rem/1 var(--font-code);letter-spacing:.07em}.day-step-navigation button{border:1px solid var(--line-strong);background:var(--surface);min-height:38px;color:var(--muted);font:600 .56rem/1 var(--font-code);letter-spacing:.05em;cursor:pointer;padding:8px 10px}.day-step-navigation button:last-child{justify-self:end}.day-step-navigation button:disabled{color:var(--faint);cursor:default;opacity:.35}.day-step-navigation button:not(:disabled):hover,.day-step-navigation button:not(:disabled):focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.scope-note{color:var(--faint);letter-spacing:.1em;text-align:center;margin:34px 0 8px;font-size:.56rem}.page-intro{margin-bottom:28px}.page-intro h1{margin-bottom:10px}.page-intro>p:last-child{max-width:560px;color:var(--muted);margin:0;font-size:.82rem;line-height:1.6}.empty-state{border:1px dashed var(--line-strong);background:var(--surface);text-align:center;min-height:250px;padding:42px 22px}.empty-code,.constraint-note{font-family:var(--font-code)}.empty-code{color:var(--accent);letter-spacing:.1em;font-size:.62rem}.empty-state h2{margin:14px 0 8px;font-size:1.02rem}.empty-state>p{max-width:470px;color:var(--muted);margin:0 auto;font-size:.78rem;line-height:1.6}.constraint-note{border-left:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 7%, transparent);max-width:480px;color:var(--muted);text-align:left;margin:24px auto 0;padding:12px;font-size:.68rem;line-height:1.5}.roadmap-list{gap:24px;display:grid}.roadmap-stage{border:1px solid var(--line);background:var(--surface)}.roadmap-stage>header{border-bottom:1px solid var(--line);padding:15px}.roadmap-stage>header span{color:var(--accent);font:600 .6rem/1 var(--font-code);letter-spacing:.1em}.roadmap-stage>header h2{margin:8px 0 0;font-size:.95rem}.roadmap-item{border-bottom:1px solid var(--line);grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:49px;padding:12px 15px;display:grid}.roadmap-item:last-child{border-bottom:0}.roadmap-week,.roadmap-status{font-family:var(--font-code)}.roadmap-week{color:var(--muted);font-size:.64rem}.roadmap-item strong{font-size:.78rem;font-weight:580}.roadmap-status{color:var(--faint);letter-spacing:.06em;text-align:right;font-size:.54rem}.roadmap-status.available{color:var(--accent)}.bottom-nav{z-index:20;min-height:calc(var(--nav-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:color-mix(in srgb, var(--bg) 96%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);position:fixed;bottom:0;left:0;right:0}.bottom-nav-inner{width:min(100%, var(--content-width));min-height:var(--nav-height);grid-template-columns:repeat(8,1fr);margin:0 auto;display:grid}.nav-link{min-width:0;color:var(--faint);font:600 .56rem/1 var(--font-code);letter-spacing:.04em;place-items:center;display:grid;position:relative}.nav-link:before{content:"";background:currentColor;width:5px;height:5px;margin-bottom:-18px}.nav-link.active{color:var(--accent)}.nav-link.active:after{background:var(--accent);content:"";height:1px;position:absolute;top:-1px;left:20%;right:20%}.data-management{border:1px solid var(--line);background:var(--surface)}.data-management>header{border-bottom:1px solid var(--line);padding:15px}.data-management>header p{color:var(--faint);font:600 .55rem/1 var(--font-code);letter-spacing:.09em;margin:0 0 7px}.data-management>header h2{color:var(--accent);font:650 .76rem/1 var(--font-code);letter-spacing:.11em;margin:0}.data-action{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 15px;display:grid}.data-action h3{margin:0;font-size:.88rem}.data-action p{color:var(--muted);margin:6px 0 0;font-size:.73rem;line-height:1.5}.data-action button{border:1px solid var(--line-strong);background:var(--bg);min-width:112px;min-height:38px;color:var(--text);font:650 .58rem/1 var(--font-code);letter-spacing:.06em;cursor:pointer;padding:8px 10px}.data-action button:not(:disabled):hover,.data-action button:not(:disabled):focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.data-action button:disabled{cursor:default;opacity:.45}.danger-action h3{color:#fca5a5}.danger-action>button{border-color:color-mix(in srgb, #ef4444 55%, var(--line-strong));color:#fca5a5}.danger-action>button:not(:disabled):hover,.danger-action>button:not(:disabled):focus-visible{color:#fecaca;border-color:#ef4444}.reset-confirmation{background:color-mix(in srgb, #7f1d1d 18%, var(--bg));border:1px solid #7f1d1d;margin:14px;padding:15px}.reset-confirmation h3{color:#fecaca;margin:0;font-size:.9rem}.reset-confirmation p{color:var(--muted);margin:8px 0 14px;font-size:.74rem;line-height:1.5}.reset-confirmation>div{justify-content:flex-end;gap:8px;display:flex}.reset-confirmation button{border:1px solid var(--line-strong);background:var(--bg);min-height:36px;color:var(--muted);font:650 .57rem/1 var(--font-code);letter-spacing:.05em;cursor:pointer;padding:8px 11px}.reset-confirmation button:not(:disabled):hover,.reset-confirmation button:not(:disabled):focus-visible{border-color:var(--text);color:var(--text);outline:none}.reset-confirmation .confirm-reset{color:#fecaca;border-color:#ef4444}.reset-confirmation button:disabled{cursor:default;opacity:.45}.data-warning{border-bottom:1px solid var(--line);color:var(--muted);font:500 .65rem/1.5 var(--font-code);margin:0;padding:13px 15px}.operation-message{font:550 .68rem/1.5 var(--font-code);margin:0;padding:13px 15px}.operation-message.success{color:var(--accent)}.operation-message.error{color:#fca5a5}.operation-message.neutral{color:var(--muted)}.learning-projects{border:1px solid var(--line);background:var(--surface);margin-bottom:24px}.learning-projects-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:14px;padding:14px 15px;display:flex}.learning-projects-header>div{gap:6px;display:grid}.learning-projects-header span{color:var(--accent);font:650 .54rem/1 var(--font-code);letter-spacing:.09em}.learning-projects-header h2{letter-spacing:.04em;margin:0;font-size:.86rem}.learning-projects-header>strong{color:var(--accent);font:650 1rem/1 var(--font-code)}.learning-project-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.learning-project-card{border-bottom:1px solid var(--line);min-width:0;padding:15px}.learning-project-card:nth-child(odd){border-right:1px solid var(--line)}.learning-project-card.portfolio-ready{border-left:3px solid var(--accent);background:linear-gradient(120deg, color-mix(in srgb, var(--accent) 6%, transparent), transparent 45%)}.learning-project-card>header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.learning-project-card>header>div{min-width:0}.learning-project-card>header code{max-width:42%;color:var(--faint);overflow-wrap:anywhere;text-align:right;font-size:.5rem;line-height:1.4}.learning-project-badges{flex-wrap:wrap;gap:6px;display:flex}.learning-project-level,.learning-project-status{border:1px solid var(--line-strong);color:var(--muted);font:650 .49rem/1 var(--font-code);letter-spacing:.06em;padding:5px 6px}.learning-project-level.level-intermediate{color:#93c5fd;border-color:#3b82f6}.learning-project-level.level-advanced{color:#d8b4fe;border-color:#a855f7}.learning-project-status.status-doing{color:#fcd34d;border-color:#f59e0b}.learning-project-status.status-done{border-color:var(--accent);color:var(--accent)}.learning-project-card h3{margin:10px 0 0;font-size:.88rem;line-height:1.35}.learning-project-card header p{color:var(--muted);margin:7px 0 0;font-size:.7rem;line-height:1.55}.learning-project-skills{flex-wrap:wrap;gap:6px;margin-top:13px;display:flex}.learning-project-skills span{background:color-mix(in srgb, var(--accent) 7%, var(--bg));color:var(--accent);font:550 .53rem/1 var(--font-code);padding:5px 7px}.learning-project-progress{margin-top:15px}.learning-project-progress>div:first-child{justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px;display:flex}.learning-project-progress span,.learning-project-milestones>span,.learning-project-outputs>span,.learning-project-portfolio-notes>span{color:var(--faint);font:650 .53rem/1 var(--font-code);letter-spacing:.07em}.learning-project-progress strong{color:var(--text);font:650 .6rem/1 var(--font-code)}.learning-project-progress-track{background:var(--line);height:5px;overflow:hidden}.learning-project-progress-track>span{background:var(--accent);height:100%;display:block}.learning-project-portfolio-status{border:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));margin:15px 0 0;display:grid}.learning-project-portfolio-status>div{border-right:1px solid var(--line);gap:7px;min-width:0;padding:10px 9px;display:grid}.learning-project-portfolio-status>div:last-child{border-right:0}.learning-project-portfolio-status dt,.learning-project-portfolio-status dd{margin:0}.learning-project-portfolio-status dt{color:var(--faint);font:650 .48rem/1 var(--font-code);letter-spacing:.06em}.learning-project-portfolio-status dd{color:var(--muted);font:650 .54rem/1.3 var(--font-code);overflow-wrap:anywhere}.learning-project-portfolio-status a{color:var(--accent);text-decoration:none}.learning-project-portfolio-status .portfolio-readiness.readiness-in_progress{color:#93c5fd}.learning-project-portfolio-status .portfolio-readiness.readiness-portfolio_ready{color:var(--accent)}.learning-project-outputs,.learning-project-portfolio-notes{border-top:1px solid var(--line);margin-top:15px;padding-top:13px}.learning-project-outputs ul{gap:6px;margin:10px 0 0;padding-left:16px;display:grid}.learning-project-outputs li{color:var(--muted);font-size:.66rem;line-height:1.45}.learning-project-outputs p,.learning-project-portfolio-notes p{color:var(--muted);margin:10px 0 0;font-size:.66rem;line-height:1.55}.learning-project-portfolio-notes{border-left:2px solid var(--accent);padding-left:11px}.learning-project-milestones{border-top:1px solid var(--line);margin-top:15px;padding-top:13px}.learning-project-milestones ul{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.learning-project-milestones li{color:var(--muted);padding-left:14px;font-size:.66rem;line-height:1.4;position:relative}.learning-project-milestones li:before{background:var(--line-strong);content:"";width:5px;height:5px;position:absolute;top:.55em;left:0}.skills-list{border:1px solid var(--line);background:var(--surface);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.skill-card{border-bottom:1px solid var(--line);min-width:0;padding:15px}.skill-card:nth-child(odd){border-right:1px solid var(--line)}.skill-card>header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.skill-card>header>div{gap:7px;min-width:0;display:grid}.skill-card>header span,.skill-projects>span{color:var(--faint);font:650 .52rem/1 var(--font-code);letter-spacing:.08em}.skill-card h2{margin:0;font-size:.9rem}.skill-card>header strong{color:var(--accent);font:650 .86rem/1 var(--font-code)}.skill-progress-track{background:var(--line);height:6px;margin-top:14px;overflow:hidden}.skill-progress-track>span{background:var(--accent);height:100%;display:block}.skill-projects{border-top:1px solid var(--line);margin-top:15px;padding-top:13px}.skill-projects ul{gap:6px;margin:10px 0 0;padding:0;list-style:none;display:grid}.skill-projects li{color:var(--muted);padding-left:14px;font-size:.68rem;line-height:1.4;position:relative}.skill-projects li:before{background:var(--accent);content:"";width:5px;height:5px;position:absolute;top:.55em;left:0}.skill-projects p{color:var(--faint);font:550 .58rem/1.4 var(--font-code);margin:10px 0 0}.interview-toolbar{border:1px solid var(--line);background:var(--surface);grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end;gap:12px;margin-bottom:18px;padding:13px 14px;display:grid}.interview-toolbar label,.interview-toolbar>div{gap:7px;display:grid}.interview-toolbar span,.standard-answer>span,.my-answer-field>span,.interview-status-control>span{color:var(--faint);font:650 .53rem/1 var(--font-code);letter-spacing:.08em}.interview-toolbar select,.my-answer-field textarea{border:1px solid var(--line-strong);background:var(--bg);width:100%;min-width:0;color:var(--text);font:550 .68rem/1.5 var(--font-code);border-radius:0}.interview-toolbar select{min-height:38px;padding:8px 9px}.interview-toolbar>div{text-align:right;min-width:68px}.interview-toolbar strong{color:var(--accent);font:650 .92rem/1 var(--font-code)}.interview-message{color:#fca5a5;font:550 .65rem/1.5 var(--font-code);border:1px solid #ef4444;margin:0 0 14px;padding:11px 12px}.interview-list{gap:12px;display:grid}.interview-card{border:1px solid var(--line);border-left:2px solid var(--line-strong);background:var(--surface)}.interview-card.status-learning{border-left-color:#f59e0b}.interview-card.status-mastered{border-left-color:var(--accent)}.interview-question-toggle{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 15px;display:flex}.interview-question-toggle:focus-visible{outline:1px solid var(--accent);outline-offset:-2px}.interview-question-toggle>div{min-width:0}.interview-question-toggle>span{color:var(--accent);font:500 1.15rem/1 var(--font-code)}.interview-question-badges{flex-wrap:wrap;gap:6px;display:flex}.interview-question-badges span{border:1px solid var(--line-strong);color:var(--muted);font:650 .49rem/1 var(--font-code);letter-spacing:.05em;padding:4px 6px}.interview-question-toggle h2{margin:10px 0 0;font-size:.86rem;line-height:1.45}.interview-question-toggle p{color:var(--faint);font:550 .53rem/1.45 var(--font-code);margin:8px 0 0}.interview-answer-panel{border-top:1px solid var(--line);gap:15px;padding:15px;display:grid}.standard-answer{border-left:2px solid var(--accent);background:color-mix(in srgb, var(--accent) 5%, var(--bg));padding:13px 14px}.standard-answer p{color:var(--muted);margin:9px 0 0;font-size:.74rem;line-height:1.7}.my-answer-field{gap:8px;display:grid}.my-answer-field textarea{resize:vertical;min-height:116px;padding:10px 11px}.my-answer-field textarea:focus{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:1px}.interview-status-control{gap:9px;display:grid}.interview-status-control>div{flex-wrap:wrap;gap:7px;display:flex}.interview-status-control button{border:1px solid var(--line-strong);background:var(--bg);min-height:34px;color:var(--muted);font:650 .54rem/1 var(--font-code);letter-spacing:.05em;cursor:pointer;padding:7px 9px}.interview-status-control button.active{border-color:var(--accent);color:var(--accent)}.interview-status-control button:hover,.interview-status-control button:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.interview-answer-panel>footer{border-top:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:12px;padding-top:12px;display:flex}.interview-tags{flex-wrap:wrap;gap:5px;display:flex}.interview-tags span{background:color-mix(in srgb, var(--accent) 7%, var(--bg));color:var(--accent);font:550 .52rem/1 var(--font-code);padding:4px 6px}.interview-answer-panel time{color:var(--faint);font:500 .49rem/1.4 var(--font-code);text-align:right}.projects-toolbar{border:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;padding:13px 14px;display:flex}.projects-toolbar>div{gap:5px;display:grid}.projects-toolbar span{color:var(--faint);font:600 .55rem/1 var(--font-code);letter-spacing:.08em}.projects-toolbar strong{color:var(--accent);font:650 .9rem/1 var(--font-code)}.projects-toolbar button,.project-editor button,.project-card-actions button{border:1px solid var(--line-strong);background:var(--surface);min-height:36px;color:var(--muted);font:650 .57rem/1 var(--font-code);letter-spacing:.06em;cursor:pointer;padding:8px 10px}.projects-toolbar>button{background:color-mix(in srgb, var(--accent) 8%, var(--surface));min-width:132px;color:var(--accent)}.projects-toolbar button:hover,.projects-toolbar button:focus-visible,.project-editor button:hover,.project-editor button:focus-visible,.project-card-actions button:hover,.project-card-actions button:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.project-editor{border:1px solid var(--line-strong);background:var(--surface);margin-bottom:20px}.project-editor>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:14px 15px;display:flex}.project-editor>header p{color:var(--faint);font:600 .54rem/1 var(--font-code);letter-spacing:.08em;margin:0 0 6px}.project-editor>header h2{color:var(--accent);font:650 .74rem/1 var(--font-code);letter-spacing:.1em;margin:0}.project-editor>header span{color:var(--faint);font:500 .54rem/1.3 var(--font-code);overflow-wrap:anywhere;margin-top:7px;display:block}.project-editor form{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:15px;display:grid}.project-field{gap:7px;display:grid}.project-field>span{color:var(--faint);font:600 .56rem/1 var(--font-code);letter-spacing:.08em}.project-field input,.project-field select,.project-field textarea{border:1px solid var(--line-strong);background:var(--bg);width:100%;min-width:0;color:var(--text);font:500 .72rem/1.5 var(--font-code);border-radius:0}.project-field input,.project-field select{min-height:38px;padding:8px 10px}.project-field input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light] .project-field input[type=date]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.project-field textarea{resize:vertical;min-height:92px;padding:9px 10px}.project-field input:focus,.project-field select:focus,.project-field textarea:focus{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:1px}.project-name-field,.project-wide-field,.project-form-error,.project-form-actions{grid-column:1/-1}.project-form-actions{justify-content:flex-end;gap:8px;display:flex}.project-form-actions .primary{border-color:var(--accent);color:var(--accent)}.project-form-error,.project-page-message{color:#fca5a5;font:550 .67rem/1.5 var(--font-code);margin:0}.project-page-message{border:1px solid color-mix(in srgb, #ef4444 45%, var(--line));background:var(--surface);margin-bottom:14px;padding:11px 12px}.projects-list{gap:14px;display:grid}.projects-empty{border:1px dashed var(--line-strong);background:var(--surface);text-align:center;padding:38px 20px}.projects-empty span{color:var(--accent);font:650 .6rem/1 var(--font-code);letter-spacing:.1em}.projects-empty h2{margin:13px 0 7px;font-size:.98rem}.projects-empty p{color:var(--muted);margin:0;font-size:.76rem;line-height:1.5}.project-card{border:1px solid var(--line);background:var(--surface)}.project-card>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:14px;padding:14px;display:flex}.project-card>header h2{margin:8px 0 0;font-size:.96rem;line-height:1.35}.project-card>header code{color:var(--faint);overflow-wrap:anywhere;margin-top:7px;font-size:.54rem;display:block}.project-status{border:1px solid var(--line-strong);min-height:22px;color:var(--muted);font:650 .52rem/1 var(--font-code);letter-spacing:.06em;align-items:center;padding:5px 7px;display:inline-flex}.project-status.status-planning{color:#cbd5e1;border-color:#64748b}.project-status.status-in_progress{color:#93c5fd;border-color:#3b82f6}.project-status.status-blocked{color:#fca5a5;border-color:#ef4444}.project-status.status-completed{border-color:var(--accent);color:var(--accent)}.project-card-actions{flex:none;gap:6px;display:flex}.project-card-actions button{min-height:30px;padding:6px 8px;font-size:.52rem}.project-card-actions .delete:hover,.project-card-actions .delete:focus-visible{color:#fca5a5;border-color:#ef4444}.project-details{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.project-details>div{border-bottom:1px solid var(--line);min-width:0;padding:12px 14px}.project-details>div:nth-child(odd):not(.project-detail-wide){border-right:1px solid var(--line)}.project-details>div:last-child{border-bottom:0}.project-detail-wide{grid-column:1/-1}.project-details dt{color:var(--faint);font:650 .54rem/1 var(--font-code);letter-spacing:.07em;margin:0 0 7px}.project-details dd{color:var(--muted);overflow-wrap:anywhere;white-space:pre-wrap;margin:0;font-size:.75rem;line-height:1.55}.project-details a{color:var(--accent);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent);text-decoration-color:color-mix(in srgb, var(--accent) 45%, transparent);text-underline-offset:3px}.current-issue-detail{background:#f59e0b0a}.progress-position{border:1px solid var(--line);background:var(--surface);grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px;display:grid}.progress-position>div{gap:7px;padding:14px 15px;display:grid}.progress-position>div:first-child{border-right:1px solid var(--line)}.progress-position span,.progress-section-header span,.progress-header-metric span,.week-day-progress>header span,.day-progress-metrics span,.day-progress-status,.task-category-summary article>span,.study-category-summary span,.daily-study-time-list span,.recent-progress-list article>div span,.recent-progress-list dt,.coding-summary span{color:var(--faint);font:600 .55rem/1 var(--font-code);letter-spacing:.08em}.progress-position strong{color:var(--accent);font:650 .82rem/1.2 var(--font-code)}.progress-section{border:1px solid var(--line);background:var(--surface);margin-top:18px}.progress-section-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:62px;padding:14px 15px;display:flex}.progress-section-header>div:first-child{gap:7px;display:grid}.progress-section-header h2{margin:0;font-size:.88rem}.progress-section-header>div:first-child>span{color:var(--accent)}.progress-header-metric{text-align:right;gap:6px;display:grid}.progress-header-metric strong{font:650 .8rem/1 var(--font-code)}.progress-track{background:var(--line);height:4px;overflow:hidden}.progress-section>.progress-track{margin:14px 15px}.progress-track>span{background:var(--accent);width:0;height:100%;display:block}.progress-track.blue>span{background:#60a5fa}.dashboard-status-grid{border-bottom:1px solid var(--line);grid-template-columns:1.15fr 1fr .85fr;display:grid}.dashboard-status-grid article{border-right:1px solid var(--line);gap:8px;min-width:0;padding:15px;display:grid}.dashboard-status-grid article:last-child{border-right:0}.dashboard-status-grid span,.dashboard-skill-list span,.dashboard-count-list dt,.dashboard-session-list span,.dashboard-session-list small{color:var(--faint);font:600 .54rem/1.3 var(--font-code);letter-spacing:.08em}.dashboard-status-grid strong{font-size:.76rem;line-height:1.45}.dashboard-status-grid small{color:var(--muted);font:600 .55rem/1.3 var(--font-code)}.dashboard-status-grid article.current-stage{border-left:3px solid var(--accent);background:linear-gradient(105deg, color-mix(in srgb, var(--accent) 9%, transparent), transparent 70%);position:relative}.dashboard-status-grid article.current-stage:after{background:var(--accent);width:6px;height:6px;box-shadow:0 0 12px color-mix(in srgb, var(--accent) 60%, transparent);content:"";position:absolute;top:12px;right:12px}.dashboard-recommendation-list{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.dashboard-recommendation-list article{border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-width:0;padding:15px}.dashboard-recommendation-list article:nth-child(2n){border-right:0}.dashboard-recommendation-list article:nth-last-child(-n+2){border-bottom:0}.dashboard-recommendation-list article.primary{border-right:0;border-bottom:1px solid var(--line);border-left:3px solid var(--accent);background:linear-gradient(110deg, color-mix(in srgb, var(--accent) 10%, transparent), color-mix(in srgb, var(--accent) 2%, transparent) 72%);box-shadow:inset 0 1px 0 color-mix(in srgb, var(--accent) 12%, transparent);grid-column:1/-1;padding:18px 17px;position:relative}.dashboard-recommendation-list article.primary h3{color:var(--text);font-size:.9rem}.dashboard-recommendation-list article>header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.dashboard-recommendation-list article>header>div{gap:7px;display:grid}.dashboard-recommendation-list article>header span,.dashboard-recommendation-list footer span{color:var(--accent);font:650 .54rem/1 var(--font-code);letter-spacing:.08em}.dashboard-recommendation-list h3{margin:0;font-size:.78rem;line-height:1.45}.dashboard-recommendation-list p{color:var(--muted);margin:12px 0;font-size:.7rem;line-height:1.65}.dashboard-recommendation-list footer{flex-wrap:wrap;align-items:center;gap:7px;min-width:0;display:flex}.dashboard-recommendation-list footer code{background:var(--bg);max-width:100%;color:var(--faint);font:550 .5rem/1.2 var(--font-code);overflow-wrap:anywhere;padding:4px 6px}.recommendation-priority{border:1px solid var(--line-strong);font:700 .52rem/1 var(--font-code);letter-spacing:.07em;flex:none;padding:5px 7px}.recommendation-priority.priority-high{color:#fbbf24;border-color:#f59e0b}.recommendation-priority.priority-medium{color:#93c5fd;border-color:#60a5fa}.recommendation-priority.priority-low{color:var(--faint)}.dashboard-skill-list{grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.dashboard-skill-list article{border-right:1px solid var(--line);border-bottom:1px solid var(--line);gap:11px;padding:14px 15px;display:grid}.dashboard-skill-list article:nth-child(3n){border-right:0}.dashboard-skill-list article:nth-last-child(-n+3){border-bottom:0}.dashboard-skill-list article>div{grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:6px 10px;display:grid}.dashboard-skill-list span{grid-column:1/-1}.dashboard-skill-list strong{min-width:0;font-size:.72rem}.dashboard-skill-list em{color:var(--accent);font:650 .62rem/1 var(--font-code);font-style:normal}.dashboard-skill-card{position:relative}.dashboard-skill-card:before{background:var(--line-strong);content:"";width:2px;position:absolute;top:0;bottom:0;left:0}.dashboard-skill-card.skill-developing:before{background:#60a5fa}.dashboard-skill-card.skill-ready:before{background:var(--accent)}.dashboard-skill-card.skill-developing em{color:#93c5fd}.dashboard-skill-card.skill-ready{background:color-mix(in srgb, var(--accent) 3%, transparent)}.dashboard-overview-pair .progress-section{height:fit-content}.dashboard-count-list{grid-template-columns:repeat(3,minmax(0,1fr));margin:0;display:grid}.dashboard-count-list>div{border-right:1px solid var(--line);gap:8px;padding:16px 15px;display:grid}.dashboard-count-list>div:last-child{border-right:0}.dashboard-count-list dt,.dashboard-count-list dd{margin:0}.dashboard-count-list dd{color:var(--text);font:650 1rem/1 var(--font-code)}.dashboard-session-list article{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:13px 15px;display:grid}.dashboard-session-list article:first-child{border-top:0}.dashboard-session-list article>div{gap:6px;min-width:0;display:grid}.dashboard-session-list article>div:last-child{text-align:right}.dashboard-session-list strong{font:650 .68rem/1.2 var(--font-code)}.dashboard-session-list small{overflow-wrap:anywhere}.dashboard-empty-note{color:var(--faint);font:600 .58rem/1.4 var(--font-code);letter-spacing:.08em;text-align:center;margin:0;padding:22px 15px}.week-day-progress{border-top:1px solid var(--line)}.week-day-progress:first-child{border-top:0}.week-day-progress>header{justify-content:space-between;align-items:flex-start;gap:12px;padding:13px 15px 10px;display:flex}.week-day-progress>header>div{gap:6px;display:grid}.week-day-progress>header h3{margin:0;font-size:.8rem;line-height:1.4}.day-progress-status{border:1px solid var(--line-strong);flex:none;padding:5px 7px}.day-progress-status.pass{border-color:var(--accent);color:var(--accent)}.day-progress-status.in_progress{color:#e7bd67;border-color:#d8a84e}.day-progress-metrics{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.day-progress-metrics>div{grid-template-columns:1fr auto;gap:8px;padding:10px 15px 14px;display:grid}.day-progress-metrics>div:first-child{border-right:1px solid var(--line)}.day-progress-metrics strong{font:650 .68rem/1 var(--font-code)}.day-progress-metrics .progress-track{grid-column:1/-1}.task-category-summary{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.task-category-summary article{border-bottom:1px solid var(--line);gap:10px;padding:15px;display:grid}.task-category-summary article:nth-child(odd){border-right:1px solid var(--line)}.task-category-summary article:nth-last-child(-n+2){border-bottom:0}.task-category-summary article>div{justify-content:space-between;align-items:baseline;display:flex}.task-category-summary strong,.large-progress-metric strong{font:650 .9rem/1 var(--font-code)}.task-category-summary em,.large-progress-metric em{color:var(--muted);font:600 .62rem/1 var(--font-code);font-style:normal}.progress-summary-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.progress-section.compact{min-width:0}.large-progress-metric{justify-content:space-between;align-items:baseline;padding:17px 15px 12px;display:flex}.coding-summary{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.coding-summary>div{gap:8px;padding:17px 15px 12px;display:grid}.coding-summary>div:first-child{border-right:1px solid var(--line)}.coding-summary strong{font:650 .9rem/1 var(--font-code)}.study-category-summary{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.study-category-summary>div{border-right:1px solid var(--line);gap:8px;padding:14px 15px;display:grid}.study-category-summary>div:last-child{border-right:0}.study-category-summary strong{font:650 .7rem/1 var(--font-code)}.daily-study-time-list{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.daily-study-time-list>div{border-right:1px solid var(--line);text-align:center;gap:7px;min-width:0;padding:13px 8px;display:grid}.daily-study-time-list>div:last-child{border-right:0}.daily-study-time-list strong{font:650 .59rem/1.2 var(--font-code)}.recent-progress-list article{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:13px 15px;display:grid}.recent-progress-list article:first-child{border-top:0}.recent-progress-list article>div{gap:6px;min-width:0;display:grid}.recent-progress-list article>div strong{font-size:.78rem;line-height:1.4}.recent-progress-list dl{grid-template-columns:repeat(3,auto);gap:16px;margin:0;display:grid}.recent-progress-list dl>div{text-align:right;gap:5px;display:grid}.recent-progress-list dt,.recent-progress-list dd{margin:0}.recent-progress-list dd{color:var(--muted);font:650 .61rem/1 var(--font-code)}.notes-toolbar{grid-template-columns:minmax(0,1fr) auto auto;align-items:end;gap:12px;margin-bottom:18px;display:grid}.note-type-filters,.note-category-filters{flex-wrap:wrap;grid-column:1/-1;gap:6px;display:flex}.note-category-filters{border-top:1px solid var(--line);padding-top:9px}.note-type-filters button,.note-category-filters button,.add-note-button,.note-editor button,.note-card-actions button,.question-status{border:1px solid var(--line-strong);background:var(--surface);min-height:36px;color:var(--muted);font:650 .57rem/1 var(--font-code);letter-spacing:.06em;cursor:pointer;padding:8px 10px}.note-type-filters button.active,.note-category-filters button.active{border-color:var(--accent);color:var(--accent)}.note-type-filters button:hover,.note-type-filters button:focus-visible,.note-category-filters button:hover,.note-category-filters button:focus-visible,.add-note-button:hover,.add-note-button:focus-visible,.note-editor button:hover,.note-editor button:focus-visible,.note-card-actions button:hover,.note-card-actions button:focus-visible,.question-status:hover,.question-status:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.note-date-filter,.note-search-filter{gap:6px;display:grid}.note-date-filter span,.note-search-filter span,.note-field>span{color:var(--faint);font:600 .56rem/1 var(--font-code);letter-spacing:.08em}.note-date-filter input,.note-search-filter input,.note-field input,.note-field select,.note-field textarea{border:1px solid var(--line-strong);background:var(--bg);width:100%;min-width:0;color:var(--text);font:500 .72rem/1.5 var(--font-code);border-radius:0}.note-date-filter input,.note-search-filter input{min-height:36px;padding:7px 9px}.note-date-filter input{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}[data-theme=light] .note-date-filter input{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.add-note-button{background:color-mix(in srgb, var(--accent) 8%, var(--surface));min-width:124px;color:var(--accent)}.note-editor{border:1px solid var(--line-strong);background:var(--surface);margin-bottom:20px}.note-editor>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 15px;display:flex}.note-editor>header p{color:var(--faint);font:600 .54rem/1 var(--font-code);letter-spacing:.08em;margin:0 0 6px}.note-editor>header h2{color:var(--accent);font:650 .74rem/1 var(--font-code);letter-spacing:.1em;margin:0}.note-editor form{gap:14px;padding:15px;display:grid}.note-field{gap:7px;display:grid}.note-field small{color:var(--faint);font:inherit;margin-left:6px}.note-field input,.note-field select{min-height:38px;padding:8px 10px}.note-field textarea{resize:vertical;min-height:88px;padding:9px 10px}.note-field input:focus,.note-field select:focus,.note-field textarea:focus{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:1px}.note-field select:disabled{cursor:not-allowed;opacity:.6}.note-category-example{color:var(--muted)!important;font:550 .57rem/1.4 var(--font-code)!important}.note-metadata-fields{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding-top:14px;display:grid}.bug-note-fields{gap:14px;display:grid}.note-form-actions{justify-content:flex-end;gap:8px;display:flex}.note-form-actions .primary{border-color:var(--accent);color:var(--accent)}.note-form-error,.note-page-message{color:#fca5a5;font:550 .67rem/1.5 var(--font-code);margin:0}.note-page-message{border:1px solid color-mix(in srgb, #ef4444 45%, var(--line));background:var(--surface);margin-bottom:14px;padding:11px 12px}.notes-list{gap:14px;display:grid}.notes-empty{border:1px dashed var(--line-strong);background:var(--surface);text-align:center;padding:38px 20px}.notes-empty span{color:var(--accent);font:650 .6rem/1 var(--font-code);letter-spacing:.1em}.notes-empty h2{margin:13px 0 7px;font-size:.98rem}.notes-empty p{color:var(--muted);margin:0;font-size:.76rem;line-height:1.5}.note-card{border:1px solid var(--line);border-left:2px solid var(--line-strong);background:var(--surface)}.note-card.note-question{border-left-color:#60a5fa}.note-card.note-bug{border-left-color:#f59e0b}.note-card.note-note{border-left-color:var(--accent)}.note-card>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.note-card>header>div:first-child{align-items:center;gap:10px;display:flex}.note-type{color:var(--accent);font:700 .59rem/1 var(--font-code);letter-spacing:.09em}.note-category{border:1px solid var(--line-strong);color:var(--muted);font:650 .5rem/1 var(--font-code);letter-spacing:.05em;padding:4px 6px}.note-question .note-type{color:#93c5fd}.note-bug .note-type{color:#fbbf24}.note-card time{color:var(--faint);font:550 .56rem/1 var(--font-code)}.note-card-actions{gap:6px;display:flex}.note-card-actions button{min-height:30px;padding:6px 8px;font-size:.52rem}.note-card-actions .delete:hover,.note-card-actions .delete:focus-visible{color:#fca5a5;border-color:#ef4444}.note-content{color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:16px 14px;font-size:.82rem;line-height:1.65}.note-relations{border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.note-relations>div{min-width:0;padding:11px 14px}.note-relations>div:nth-child(odd){border-right:1px solid var(--line)}.note-relations dt{color:var(--faint);font:650 .52rem/1 var(--font-code);letter-spacing:.07em;margin:0 0 7px}.note-relations dd{color:var(--muted);overflow-wrap:anywhere;margin:0;font-size:.66rem;line-height:1.5}.note-tags{flex-wrap:wrap;gap:5px;display:flex}.note-tags span{background:color-mix(in srgb, var(--accent) 7%, var(--bg));color:var(--accent);font:550 .54rem/1 var(--font-code);padding:4px 6px}.question-status{min-height:32px;margin:0 14px 14px;font-size:.53rem}.question-status.resolved{border-color:var(--accent);color:var(--accent)}.bug-note-details{grid-template-columns:110px minmax(0,1fr);margin:0;display:grid}.bug-note-details dt,.bug-note-details dd{border-bottom:1px solid var(--line);margin:0;padding:12px 14px}.bug-note-details dt{color:var(--faint);font:650 .55rem/1.4 var(--font-code);letter-spacing:.07em}.bug-note-details dd{color:var(--muted);white-space:pre-wrap;overflow-wrap:anywhere;font-size:.77rem;line-height:1.55}.bug-note-details dt:last-of-type,.bug-note-details dd:last-of-type{border-bottom:0}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.pwa-update-prompt{z-index:40;right:14px;bottom:calc(var(--nav-height) + env(safe-area-inset-bottom) + 14px);border:1px solid var(--accent);background:var(--surface);justify-content:space-between;align-items:center;width:min(100% - 28px,420px);min-height:50px;margin-left:auto;padding:10px 11px 10px 14px;display:flex;position:fixed;left:14px;box-shadow:0 14px 34px #0000007a}.pwa-update-prompt span{color:var(--text);font:600 .7rem/1.3 var(--font-code)}.pwa-update-prompt button{border:1px solid var(--accent);background:var(--bg);min-height:32px;color:var(--accent);font:650 .55rem/1 var(--font-code);letter-spacing:.06em;cursor:pointer;margin-left:12px;padding:7px 9px}.pwa-update-prompt button:disabled{cursor:default;opacity:.55}@media (width<=420px){:root{--nav-height:72px}.page-content{padding:18px 12px 26px}.topbar-inner{min-height:50px;padding:0 12px}.brand{letter-spacing:.08em;font-size:.7rem}.version-label{font-size:.56rem}.bottom-nav-inner{overscroll-behavior-x:contain;scrollbar-width:none;scroll-snap-type:x proximity;grid-template-columns:repeat(8,minmax(54px,1fr));overflow-x:auto}.bottom-nav-inner::-webkit-scrollbar{display:none}.nav-link{letter-spacing:0;scroll-snap-align:center;min-height:48px;font-size:.48rem}.page-intro{margin-bottom:20px}.page-intro h1{font-size:1.3rem}.page-intro>p:last-child{font-size:.76rem}.today-page-header{gap:12px;display:grid}.today-page-header .status-badge{width:fit-content;margin-top:0}.day-selector{gap:10px;padding:12px;display:grid}.day-selector select{width:100%;min-height:44px}.today-focus>header,.study-time-panel>header{align-items:flex-start;gap:10px;min-height:62px;padding:13px 12px}.today-focus>header>strong,.study-time-panel>header>strong{text-align:right;padding-top:2px}.today-focus-goal,.focus-task-list>article{padding-left:12px;padding-right:12px}.focus-task-list>article strong{text-overflow:clip;white-space:normal;overflow:visible}.focus-task-actions a,.focus-task-actions button{min-height:44px}.summary-panel{gap:8px;padding:10px}.summary-panel>div{border:1px solid var(--line);background:var(--bg);min-width:0;padding:10px}.summary-panel span{font-size:.52rem;line-height:1.25}.summary-panel strong{font-size:.78rem}.study-timer-body{padding:12px}.study-type-field select,.study-timer-actions button{min-height:44px}.study-timer-display{padding:8px 0 2px}.study-timer-display>strong{font-size:1.85rem}.section{margin-top:22px}.learning-row,.task-row{gap:10px;padding:14px 0}.learning-row h2,.task-row h2{font-size:.84rem}.resource-actions>a,.resource-actions>label,.software-actions a,.practice-submit,.build-verification button,.task-status-select,.day-step-navigation button{min-height:44px}.practice-card{padding:12px}.practice-card fieldset label{min-height:46px;padding:11px 10px}.practice-submit{width:100%}.build-step-list>li{grid-template-columns:28px minmax(0,1fr);padding:10px}.execution-block pre,.command-line{overscroll-behavior-x:contain;max-width:calc(100vw - 48px)}.mastery-row{min-height:52px;padding:14px 0}.session-completion-overlay{padding:max(12px, env(safe-area-inset-top)) 12px max(12px, env(safe-area-inset-bottom))}.session-completion-dialog{max-height:calc(100dvh - 24px);padding:15px;overflow-y:auto}.interview-toolbar{grid-template-columns:1fr}.interview-toolbar>div{text-align:left}.interview-answer-panel>footer{display:grid}.interview-answer-panel time{text-align:left}.skills-list{grid-template-columns:1fr}.skill-card:nth-child(odd){border-right:0}.learning-project-list{grid-template-columns:1fr}.learning-project-card:nth-child(odd){border-right:0}.learning-project-card>header{display:grid}.learning-project-card>header code{text-align:left;max-width:none}.learning-project-card{padding:13px 12px}.learning-project-portfolio-status{grid-template-columns:1fr}.learning-project-portfolio-status>div{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:center}.learning-project-portfolio-status>div:last-child{border-bottom:0}.progress-position,.progress-summary-pair{grid-template-columns:1fr}.progress-position>div:first-child{border-right:0;border-bottom:1px solid var(--line)}.dashboard-status-grid,.dashboard-skill-list{grid-template-columns:1fr}.dashboard-status-grid article,.dashboard-skill-list article{border-right:0;border-bottom:1px solid var(--line)}.dashboard-status-grid article:last-child,.dashboard-skill-list article:last-child{border-bottom:0}.dashboard-recommendation-list{grid-template-columns:1fr}.dashboard-recommendation-list article,.dashboard-recommendation-list article:nth-child(2n),.dashboard-recommendation-list article:nth-last-child(-n+2){border-right:0;border-bottom:1px solid var(--line)}.dashboard-recommendation-list article:last-child{border-bottom:0}.progress-section{margin-top:14px}.progress-section-header{flex-wrap:wrap;align-items:flex-start;min-height:0;padding:13px 12px}.progress-header-metric{text-align:left}.dashboard-status-grid article,.dashboard-skill-list article,.dashboard-recommendation-list article{padding-left:12px;padding-right:12px}.dashboard-recommendation-list article.primary{padding:16px 13px}.dashboard-recommendation-list article>header{display:grid}.recommendation-priority{justify-self:start}.dashboard-count-list>div{padding:14px 10px}.dashboard-session-list article{grid-template-columns:1fr;padding:12px}.dashboard-session-list article>div:last-child{text-align:left}.week-day-progress>header{display:grid}.day-progress-status{justify-self:start}.task-category-summary{grid-template-columns:1fr}.task-category-summary article:nth-child(odd){border-right:0}.task-category-summary article:nth-last-child(-n+2){border-bottom:1px solid var(--line)}.task-category-summary article:last-child{border-bottom:0}.study-category-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.study-category-summary>div{border-bottom:1px solid var(--line)}.study-category-summary>div:nth-child(2){border-right:0}.study-category-summary>div:nth-last-child(-n+2){border-bottom:0}.daily-study-time-list{grid-template-columns:repeat(2,minmax(0,1fr))}.daily-study-time-list>div{border-bottom:1px solid var(--line)}.daily-study-time-list>div:nth-child(2n){border-right:0}.daily-study-time-list>div:last-child{border-bottom:0}.recent-progress-list article{grid-template-columns:1fr}.recent-progress-list dl{grid-template-columns:repeat(3,minmax(0,1fr))}.recent-progress-list dl>div{text-align:left}.projects-toolbar{align-items:stretch}.projects-toolbar>button{min-width:0;min-height:44px}.project-editor form{grid-template-columns:1fr}.project-field,.project-name-field,.project-wide-field,.project-form-error,.project-form-actions{grid-column:1}.project-card>header{display:grid}.project-card-actions{width:100%}.project-card-actions button{flex:1;min-height:44px}.project-details{grid-template-columns:1fr}.project-details>div,.project-details>div:nth-child(odd):not(.project-detail-wide){border-right:0}.project-detail-wide{grid-column:1}.notes-toolbar{grid-template-columns:1fr}.note-date-filter,.note-search-filter,.add-note-button{width:100%}.note-metadata-fields,.note-relations{grid-template-columns:1fr}.note-relations>div:nth-child(odd){border-right:0}.note-card>header{align-items:flex-start}.note-card>header>div:first-child{gap:6px;display:grid}.bug-note-details{grid-template-columns:1fr}.bug-note-details dt{border-bottom:0;padding-bottom:4px}.bug-note-details dd{padding-top:4px}.data-action{grid-template-columns:1fr}.data-action button{width:100%}.study-timer-body{grid-template-columns:1fr}.study-timer-display{text-align:left}.study-timer-actions{grid-column:1}.focus-task-list>article{display:grid}.focus-task-actions{width:100%}.focus-task-actions>*{flex:1}.day-step-navigation{grid-template-columns:1fr 1fr}.day-step-navigation span{display:none}.roadmap-item{grid-template-columns:58px minmax(0,1fr)}.roadmap-status{text-align:left;grid-column:2}.resource-card{display:grid}.resource-card>div.resource-actions{grid-template-columns:1fr 1fr;width:100%;min-width:0}.task-row{grid-template-columns:auto minmax(0,1fr);display:grid}.task-row>.task-status-select{grid-column:2;width:100%}.software-heading,.build-task-heading{display:grid}.software-heading .task-status-select,.build-task-heading .task-status-select{justify-self:start}}@media (width<=350px){.summary-panel,.study-category-summary,.daily-study-time-list,.dashboard-count-list{grid-template-columns:1fr}.study-category-summary>div,.daily-study-time-list>div,.dashboard-count-list>div{border-right:0;border-bottom:1px solid var(--line)}.study-category-summary>div:last-child,.daily-study-time-list>div:last-child,.dashboard-count-list>div:last-child{border-bottom:0}.study-timer-actions,.session-completion-dialog footer,.resource-card>div.resource-actions,.day-step-navigation{grid-template-columns:1fr}.day-step-navigation button:last-child{justify-self:stretch}}@media (width>=720px){.page-content{padding-top:34px}.summary-panel{grid-template-columns:repeat(4,minmax(0,1fr));padding:18px}.day-completion-summary{grid-column:1/-1}}
