: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)}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-ui);margin:0}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}.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-time-grid{grid-template-columns:1fr 1fr;display:grid}.study-time-row{border-bottom:1px solid var(--line);gap:9px;padding:13px 15px;display:grid}.study-time-row:nth-child(odd){border-right:1px solid var(--line)}.study-time-row label{color:var(--muted);font:600 .58rem/1 var(--font-code);letter-spacing:.07em}.study-time-controls{grid-template-columns:auto minmax(54px,1fr) auto auto;align-items:center;gap:6px;display:grid}.study-time-controls button{border:1px solid var(--line-strong);background:var(--bg);min-width:39px;min-height:34px;color:var(--muted);font:650 .6rem/1 var(--font-code);cursor:pointer;padding:6px}.study-time-controls button:hover,.study-time-controls button:focus-visible{border-color:var(--accent);color:var(--accent);outline:none}.study-time-controls input{border:1px solid var(--line-strong);background:var(--bg);width:100%;min-width:0;min-height:34px;color:var(--text);font:650 .72rem/1 var(--font-code);text-align:right;border-radius:0;padding:6px 7px}.study-time-controls input:focus-visible{border-color:var(--accent);outline:1px solid var(--accent);outline-offset:1px}.study-time-controls>span{color:var(--faint);font:550 .52rem/1 var(--font-code)}.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}.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>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{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-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}.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){.bottom-nav-inner{grid-template-columns:repeat(8,minmax(44px,1fr));overflow-x:auto}.nav-link{letter-spacing:0;font-size:.46rem}.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}.progress-position,.progress-summary-pair{grid-template-columns:1fr}.progress-position>div:first-child{border-right:0;border-bottom:1px solid var(--line)}.progress-section-header{align-items:flex-start}.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}.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}.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-time-grid{grid-template-columns:1fr}.study-time-row:nth-child(odd){border-right:0}.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}}@media (width>=720px){.page-content{padding-top:34px}.summary-panel{grid-template-columns:repeat(4,minmax(0,1fr));padding:18px}}
