.plan-tracks{grid-template-columns:1fr 1fr;gap:16px;margin:32px 0 24px;display:grid}.plan-track{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:22px}.plan-track.active{border-color:var(--lime);background:#20291f}.plan-track-title{justify-content:space-between;align-items:center;gap:12px;font-size:19px;font-weight:650;display:flex}.plan-track-title>span{color:var(--muted);font-size:13px;font-weight:400}.plan-track-description{color:var(--muted);margin-top:8px;font-size:14px;line-height:1.6;display:block}.plan-next{border:1px solid var(--border);background:var(--surface);border-radius:8px;justify-content:space-between;align-items:center;gap:24px;padding:24px;display:flex}.plan-eyebrow{color:var(--lime);letter-spacing:1.3px;margin-bottom:10px;font-size:11px;display:block}.plan-next h2{margin-bottom:6px}.plan-next p{color:var(--muted);margin:0;font-size:14px}.plan-action{background:var(--lime);color:#14200b;border-radius:5px;flex-shrink:0;justify-content:center;align-items:center;gap:12px;padding:12px 18px;font-size:14px;font-weight:650;display:inline-flex}.plan-action:hover{color:#14200b;background:#d2ff99}.plan-guidance{max-width:900px;margin:22px 0 32px}.plan-guidance p{color:var(--muted);margin-bottom:8px;font-size:14px;line-height:1.7}.plan-outline-heading,.plan-stage-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.plan-outline-heading{margin-bottom:24px}.plan-outline-heading h2{margin:0}.plan-stage{margin-bottom:32px}.plan-stage-heading{margin-bottom:12px}.plan-stage-heading h2{align-items:center;gap:14px;margin:0;font-size:17px;display:flex}.plan-stage-heading h2 .difficulty{min-width:62px;font-weight:500}.plan-stage-heading>span{color:var(--muted);font-size:13px}.plan-group{border:1px solid var(--border);background:var(--surface);border-radius:6px;margin-bottom:8px;overflow:hidden}.plan-group summary{cursor:pointer;align-items:center;gap:18px;padding:18px 20px;list-style:none;display:flex}.plan-group summary::-webkit-details-marker{display:none}.plan-group summary:after{content:"+";color:var(--muted);text-align:center;width:16px;font-size:20px}.plan-group[open] summary:after{content:"−"}.plan-group summary:hover{background:#20292e}.plan-group summary:focus-visible{outline:2px solid var(--lime);outline-offset:-3px}.plan-group-number{color:#8c9da9;font:13px var(--font-mono)}.plan-group-info{flex:1;min-width:0}.plan-group-info strong{font-size:15px;font-weight:600;display:block}.plan-group-info>span{color:var(--muted);margin-top:5px;font-size:13px;line-height:1.6;display:block}.plan-group-count{color:var(--muted);white-space:nowrap;align-items:center;gap:8px;font-size:13px;display:inline-flex}.plan-group-count.solved{color:var(--lime)}.plan-problems{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.plan-problems li{margin:0}.plan-problems a{color:#e6ecf2;border-bottom:1px solid #252e34;align-items:center;gap:14px;padding:13px 22px 13px 54px;font-size:14px;display:flex}.plan-problems li:last-child a{border-bottom:0}.plan-problems a:hover{color:var(--lime);background:#20292e}.plan-problems a>span:first-child{display:flex}.plan-problem-title{flex:1}.plan-next-label{color:var(--lime);font-size:11px}.plan-problems .difficulty{min-width:52px;font-size:12px}.plan-problems a>svg{color:var(--muted)}.plan-context{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-bottom:16px;font-size:13px;display:flex}.plan-context a{color:var(--lime);align-items:center;gap:8px;display:inline-flex}.lesson-chapters{flex-wrap:wrap;gap:5px;margin:16px 0 24px;display:flex}.lesson-chapters button{color:#b4bdc5;background:0 0;border:1px solid #343b42;border-radius:20px;padding:6px 9px;font-size:10px}.lesson-chapters button:hover,.lesson-chapters button:focus-visible{color:#c1f17a;border-color:#8eaf66}.chapter-kicker{color:#91a07e;text-transform:uppercase;letter-spacing:1.1px;margin-top:30px;margin-bottom:7px;font-size:9px;display:block}.editorial-lesson .chapter-kicker+h3{color:#ecf0e8;margin-top:0;font-size:18px;font-weight:580}.editorial-lesson .lesson-inline-code{font-family:var(--font-mono);color:#d2edb7;-webkit-box-decoration-break:clone;box-decoration-break:clone;overflow-wrap:anywhere;white-space:break-spaces;background:#253020;border:1px solid #4a5d3b;border-radius:4px;padding:2px 5px;font-size:.9em}.editorial-lesson p strong,.editorial-lesson li strong,.editorial-lesson dd strong{color:#edf3e7;font-weight:650}.editorial-lesson em{color:#d5dde3}.concept-illustration{background:#151a1e;border:1px solid #303937;border-radius:9px;margin:22px 0;overflow:hidden}.concept-illustration img{object-fit:contain;width:100%;height:auto;max-height:260px;display:block}.concept-illustration figcaption{padding:14px 17px}.concept-illustration figcaption>span{color:#b0c296;text-transform:uppercase;letter-spacing:.7px;font-size:9px}.concept-illustration figcaption p{color:#adb9b2;margin:7px 0 0;font-size:12px;line-height:1.7}.worked-input,.worked-output{background:#161b1f;border:1px solid #343d44;border-radius:5px;flex-direction:column;gap:7px;padding:12px;display:flex}.worked-input>span,.worked-output>span{color:#a1acb4;font-size:10px}.worked-input code,.worked-output code{color:#d5dfe5;overflow-wrap:anywhere;white-space:pre-wrap;font-size:11px}.worked-output{background:#1b231b;border-color:#4a613b}.worked-output code{color:#c1f17a}.worked-steps{margin:20px 0;padding:0;list-style:none}.worked-steps>li{grid-template-columns:25px minmax(0,1fr);gap:12px;margin:0;padding:0 0 18px;display:grid;position:relative}.worked-steps>li:not(:last-child):before{content:"";background:#3c4537;width:1px;position:absolute;top:28px;bottom:3px;left:12px}.worked-step-index{width:25px;height:25px;font:10px var(--font-mono);color:#c1f17a;background:#27311f;border:1px solid #566943;border-radius:50%;place-items:center;display:grid}.worked-steps p{margin:0!important;font-size:12px!important;line-height:1.85!important}.walkthrough-link{color:#c1f17a;margin-top:13px;font-size:11px;text-decoration:none;display:inline-block}.code-note{margin:16px 0 24px}.code-note-line{color:#8c9eaa;margin:0 0 8px;font-size:10px;display:block}.code-note pre{background:#12171b;border:1px solid #34414b;border-left:2px solid #82b1ce;border-radius:4px;max-width:100%;margin:0;padding:12px 14px;overflow:auto}.code-note pre code{font:11px/1.8 var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;color:#d1e0ed}.code-note p{margin:10px 0!important;font-size:12px!important}.editorial-lesson .prerequisites>p{margin:12px 0 0}.lesson-chapters{z-index:5;background:#101518;border-bottom:1px solid #2c343a;padding:9px 0;position:sticky;top:0}.editorial-section{scroll-margin-top:75px}.editorial-lesson p,.editorial-lesson li,.editorial-lesson .worked-steps p,.editorial-lesson .code-note p{color:#c4cdd2;overflow-wrap:anywhere;font-size:15px!important;line-height:1.8!important}.editorial-lesson .complexity-note,.editorial-lesson .example p{font-size:13px!important}.worked-step-content{min-width:0}.key-decision{background:#1b231b;border:1px solid #526343;border-left:3px solid #c1f17a;border-radius:6px;margin:22px 0;padding:16px 18px}.key-decision h4{color:#c1f17a;margin:0 0 7px;font-size:13px}.editorial-lesson .key-decision p{margin:0}.lesson-vocabulary{border-bottom:1px solid #343d44;margin:20px 0;padding:14px 0}.lesson-vocabulary summary{cursor:pointer;color:#d6e0e7;font-size:14px}.lesson-vocabulary summary>span{color:#9cabb5;margin:5px 0 0 16px;font-size:12px;display:block}.lesson-vocabulary dl{margin:16px 0 0}.lesson-vocabulary dl>div{border-top:1px solid #29343b;padding:10px 0}.lesson-vocabulary dt{color:#d2e6b9;font-size:14px;font-weight:600}.lesson-vocabulary dd{color:#bac7d0;margin:5px 0 0;font-size:14px;line-height:1.7}.lesson-figure{background:#141b20;border:1px solid #3d4a53;border-radius:8px;min-width:0;margin:20px 0 8px;padding:15px;scroll-margin-top:85px}.figure-kicker{letter-spacing:.5px;color:#b3cf98;font-size:11px}.lesson-figure h4{color:#ecf0e8;margin:5px 0 8px;font-size:16px;line-height:1.5}.editorial-lesson .lesson-figure figcaption p{margin-bottom:15px!important;font-size:13px!important}.editorial-lesson .figure-panels{gap:12px;margin:0;padding:0;list-style:none;display:grid}.editorial-lesson .figure-panel{background:#192229;border:1px solid #36444e;border-radius:6px;margin:0;padding:13px}.figure-panel h5{color:#e1e9ef;align-items:center;gap:9px;margin:0 0 14px;font-size:14px;display:flex}.figure-panel h5>span{color:#d1f79d;background:#27331f;border:1px solid #637e49;border-radius:50%;flex-shrink:0;place-items:center;width:24px;height:24px;font-size:12px;display:grid}.figure-row{min-width:0;margin:12px 0}.figure-row-label{color:#a7bdcb;margin-bottom:7px;font-size:12px;line-height:1.5;display:block}.figure-cells{flex-wrap:wrap;align-items:stretch;gap:5px;display:flex}.figure-item{align-items:center;gap:5px;min-width:0;max-width:100%;display:flex}.figure-connector{color:#97b4c8;flex-shrink:0;font-size:15px}.figure-cell{text-align:center;background:#202e38;border:1px solid #536673;border-radius:4px;align-content:center;min-width:32px;max-width:100%;min-height:36px;padding:7px 9px;display:grid}.figure-cell small{color:#abc3d4;margin-bottom:3px;font-size:10px;line-height:1.5;display:block}.editorial-lesson li .figure-cell code{color:#e2edf5;white-space:pre-wrap;background:0 0;padding:0;font-size:13px;line-height:1.5}.figure-cell-active{background:#293b23;border:2px solid #b3e67d;padding:6px 8px}.figure-cell-active small{color:#d2ecb4}.editorial-lesson li .figure-cell-active code{color:#e1f8c7}.figure-grid{gap:5px;display:grid}.figure-grid .figure-item{display:block}.figure-grid .figure-cell{width:100%;min-width:0}.editorial-lesson .figure-panel>p{margin:12px 0 0!important;font-size:13px!important}@media (max-width:600px){.lesson-figure,.editorial-lesson .figure-panel{padding:10px}.figure-cell{min-width:27px;padding:6px}.figure-cell-active{padding:5px}}@media (max-width:800px){body:has(.workspace){min-width:0}body:has(.workspace) .app-header{gap:16px;padding:0 16px}body:has(.workspace) .brand{gap:8px;font-size:16px}body:has(.workspace) .brand-mark{width:24px}body:has(.workspace) .app-header>nav{gap:16px;margin-left:auto}body:has(.workspace) .runtime-label{display:none}body:has(.workspace) .workspace{display:block}.workspace>.sidebar{display:none}.workspace .workspace-main{height:auto}.workspace-main>.problem-header{padding:22px 16px 0}.workspace .workspace-tabs{padding-left:16px}.workspace .workspace-main>.split-view{align-items:start;gap:24px;padding:16px;overflow:visible;grid-template-columns:minmax(0,1fr)!important}.workspace .split-view>.lesson-text,.workspace .split-view>.workspace-panel{padding-right:0;overflow:visible}.split-view>.pane-divider{display:none}.editorial-lesson .lesson-chapters{top:0}}.example-fields{gap:16px;min-width:0;margin:0;display:grid}.example-field{grid-template-columns:minmax(0,1fr);gap:7px;min-width:0;display:grid}.example-field dt{color:#a9bac8;overflow-wrap:anywhere;font-size:12px}.example-field dd{min-width:0;margin:0}.example-scalar{font:13px/1.6 var(--font-mono);color:#e2eaf0;white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;display:inline-block}.example-link{color:#91a6b6}.example-empty{color:#a9bac8}.example .example-heading{flex-wrap:wrap;align-items:baseline;gap:6px 16px;margin-bottom:18px;display:flex}.example .example-heading h3,.example .example-heading p{margin:0}.example .example-body{gap:18px;display:grid}.example .example-panel{min-width:0}.example-panel h4{color:#a9bac8;text-transform:uppercase;letter-spacing:1px;margin:0 0 12px;font-size:11px;font-weight:600}.example .example-result{border-top:1px solid #344339;padding-top:16px}.example-result h4,.example-result .example-scalar,.worked-output .example-scalar{color:#c1f17a}.example-index,.example-note{color:#9eafbd;font:11px/1.6 var(--font-mono);display:block}.example-groups{gap:10px;min-width:0;display:grid}.example-group{border-left:2px solid #34434d;min-width:0;padding-left:10px}.example-linked{flex-wrap:wrap;gap:8px;display:flex}.example-list-node{align-items:center;gap:8px;display:inline-flex}.example-list-node code{border:1px solid #3c4b56;border-radius:4px;padding:3px 9px}.example-table-scroll,.example-tree{min-width:0;max-width:100%;overflow:auto}.example-table-scroll:focus-visible{outline-offset:3px;outline:2px solid #c1f17a}.example-table,.example-grid{border-collapse:collapse;font:12px/1.5 var(--font-mono);color:#dce6ec}.example-table{width:100%}.example-table caption,.example-grid caption{text-align:left;color:#9eafbd;font:11px/1.6 var(--font-mono);padding-bottom:8px}.example-table th,.example-table td{text-align:left;vertical-align:top;border:1px solid #34434d;padding:7px 9px}.example-table th{color:#a9bac8;background:#11191e;font-weight:500}.example-grid th{color:#9eafbd;padding:3px 6px;font-size:10px;font-weight:400}.example-grid td{text-align:center;background:#11191e;border:1px solid #3c4b56;min-width:25px;height:28px;padding:3px 6px}.example-sudoku{border:2px solid #91a6b6}.example-sudoku td{min-width:26px;height:28px;padding:3px}.example-sudoku td:nth-child(3n){border-right:2px solid #91a6b6}.example-sudoku tr:nth-child(3n) td{border-bottom:2px solid #91a6b6}.example-grid .example-grid-empty{color:#82929f;background:#1e292f}.example-tree ul{border-left:1px solid #465764;margin:5px 0 0 5px;padding-left:14px;list-style:none}.example-tree>ul{margin:0}.example-tree li{white-space:nowrap;margin:4px 0}.example-tree-side{color:#9eafbd;min-width:38px;font:11px var(--font-mono);display:inline-block}.example-result .example-grid td,.worked-output .example-grid td{color:#c1f17a}.editorial-lesson .example-type-note{color:#a9bac8;margin:0 0 12px;font-size:12px!important;line-height:1.7!important}.concept-player{padding:22px}.concept-player:focus-visible{outline:2px solid var(--lime);outline-offset:-2px}.concept-player-header{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.concept-player-header h2{margin-bottom:18px;font-size:20px}.concept-progress{color:var(--muted);white-space:nowrap;font-size:12px}.concept-toolbar{align-items:center;gap:12px;margin-bottom:18px;display:flex}.concept-scene-selector{color:var(--muted);flex:1;align-items:center;gap:8px;min-width:0;font-size:13px;display:flex}.concept-scene-selector select{width:100%;min-width:0;padding:9px}.concept-stage{border:1px solid var(--border);background:#101618;border-radius:12px;animation:.24s ease-out concept-arrive;overflow:hidden}.concept-diagram{width:100%;height:auto;min-height:240px;display:block}.concept-shape{stroke:#53b1ef;fill:#53b1ef}.concept-shape rect,.concept-shape circle{fill:#152932;stroke-width:1.5px}.concept-shape text{stroke:none;fill:#e8edf2}text.concept-shape{stroke:none}.concept-active{stroke:#c1f17a;fill:#c1f17a}.concept-active rect,.concept-active circle{fill:#263423}.concept-warning{stroke:#f5bd74;fill:#f5bd74}.concept-warning rect,.concept-warning circle{fill:#352a20}.concept-muted{stroke:#61727c;fill:#a7b5c4}.concept-muted rect,.concept-muted circle{fill:#171d21}.concept-detail{fill:#a7b5c4!important}.concept-narration{padding:22px 0 10px}.concept-narration h3{margin-bottom:12px;font-size:22px}.concept-narration p{color:#c5cfd8;font-size:15px;line-height:1.7}.concept-decision{border-left:2px solid var(--lime);background:#19221c;padding:10px 16px}.concept-decision strong{color:var(--lime);font-size:13px}.concept-decision p{margin:6px 0 0;font-size:14px}.concept-navigation{align-items:center;gap:16px;margin:0 0 18px;display:flex}.concept-navigation progress{min-width:30px;height:5px;accent-color:var(--lime);flex:1}.concept-keyboard-hint{color:var(--muted);margin:14px 0 0;font-size:11px;line-height:1.6}.concept-loading{min-height:260px;color:var(--muted);place-items:center;display:grid}.concept-lesson .concept-illustration img{aspect-ratio:2;object-fit:contain;background:#101618}.concept-lesson .concept-illustration{margin-top:24px}.concept-example-data{margin:10px 0 0}.concept-example-data>div{margin:0 0 12px}.concept-example-data dt{color:var(--muted);text-transform:capitalize;margin-bottom:4px;font-size:12px}.concept-example-data dd{overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.7}.concept-example-answer{overflow-wrap:anywhere;margin:10px 0 0}.solution-view-tabs{gap:8px;margin-bottom:16px;display:flex}.solution-view-tabs button[aria-pressed=true]{color:var(--lime);border-color:var(--lime);background:var(--lime-dark)}@keyframes concept-arrive{0%{opacity:.4;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.concept-stage{animation:none}}@media (max-width:1280px){.concept-player{padding:16px}.concept-player-header{flex-wrap:wrap;gap:0}.concept-toolbar{gap:8px}.concept-scene-selector{gap:0;font-size:0}.concept-narration h3{font-size:20px}}@media (max-height:900px){.solution-view-tabs{margin-bottom:4px}.solution-view-tabs button{padding:3px 8px;font-size:12px}}:root{color:#e8edf2;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#111517;--surface:#171d21;--border:#2b343c;--muted:#a7b5c4;--lime:#c1f17a;--lime-dark:#293724;--blue:#53b1ef;--danger:#f09389;--font-mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace;background:#111517;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:1000px;margin:0}button,input,textarea,select{font:inherit}button,a,input,select,textarea{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[role=separator]:focus-visible{outline:2px solid var(--lime)}button{border:1px solid var(--border);color:var(--muted);cursor:pointer;white-space:nowrap;background:#191f23;border-radius:5px;justify-content:center;align-items:center;gap:8px;padding:10px 15px;font-size:14px;line-height:1.3;transition:background .14s,color .14s,border-color .14s;display:inline-flex}button:hover{color:#fff;background:#252e33;border-color:#52606b}button:disabled{opacity:.4;cursor:not-allowed}button.primary{background:var(--lime);border-color:var(--lime);color:#14200b;font-weight:650}button.primary:hover{background:#d2ff99}button.subtle{background:0 0;border-color:#0000;padding:7px 9px}button.icon-button{background:0 0;border:0;padding:7px}a{color:inherit;text-decoration:none}a:hover{color:var(--lime)}input,select,textarea{color:var(--muted);background:#12181c;border:1px solid #35424c;border-radius:5px;padding:11px 13px;font-size:14px}select{cursor:pointer;max-width:100%}textarea{font-family:var(--font-mono);resize:vertical;color:#e0e8ef;line-height:1.6}input::placeholder{color:#8596a7}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.8px;font-size:36px;font-weight:680;line-height:1.2}h2{letter-spacing:-.3px;font-size:23px;font-weight:650;line-height:1.4}h3{margin-bottom:13px;font-size:20px;font-weight:620;line-height:1.4}p,li{color:#c0cbd6;font-size:16px;line-height:1.78}code,pre{font-family:var(--font-mono)}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:1.7}svg{flex-shrink:0}.muted{color:#8194a5}.solved,.easy{color:var(--lime)}.medium{color:#f3ce7c}.hard{color:#f39790}.difficulty{font-size:14px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.spin{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.app-header{border-bottom:1px solid var(--border);z-index:2;background:#111619;align-items:center;gap:64px;height:56px;padding:0 28px;display:flex;position:relative}.brand{letter-spacing:-.3px;align-items:center;gap:16px;font-size:20px;font-weight:650;display:flex}.brand-mark{font-family:var(--font-mono);color:var(--lime);letter-spacing:-5px;width:36px;font-size:29px;font-weight:500;display:inline-block}.app-header nav{gap:30px;height:100%;display:flex}.app-header nav a{color:#b8c6d4;border-bottom:3px solid #0000;align-items:center;height:100%;padding-top:3px;font-size:14px;display:flex}.app-header nav a.active{color:#f5f7fa;border-bottom-color:var(--lime)}.runtime-label{color:var(--muted);align-items:center;gap:12px;margin-left:auto;font-size:14px;display:flex}.local-indicator{color:#91a182;border:1px solid #354331;border-radius:3px;padding:3px 6px;font-size:12px}.storage-warning{color:#f1d09b;background:#3b3023;padding:12px 28px;font-size:14px}.progress-track{background:#2b3742;border-radius:10px;height:6px;overflow:hidden}.progress-track>span{background:var(--lime);height:100%;transition:width .3s;display:block}.search-box{color:#9caebe;background:#12181b;border:1px solid #35424c;border-radius:5px;align-items:center;gap:11px;padding:0 14px;display:flex}.search-box input{background:0 0;border:0;outline:0;width:100%;padding:12px 0}.search-box:focus-within{border-color:var(--lime)}.library{max-width:1236px;margin:0 auto;padding:52px 28px 35px}.library-heading{justify-content:space-between;align-items:center;gap:50px;margin-bottom:28px;display:flex}.library-heading h1{letter-spacing:-.9px;margin-bottom:8px;font-size:38px}.library-heading p{letter-spacing:.2px;color:#a7b7c8;margin:0;font-size:20px}.library-progress{flex-shrink:0;width:272px}.library-progress>div:first-child{color:var(--muted);justify-content:space-between;margin-bottom:9px;font-size:14px;display:flex}.filters{grid-template-columns:minmax(240px,2.55fr) repeat(3,minmax(145px,1fr));gap:12px;margin:22px 0 30px;display:grid}.filters select{min-width:0;height:46px}.problem-table{border-collapse:collapse;text-align:left;table-layout:fixed;width:100%}.problem-table th{letter-spacing:1.1px;text-transform:uppercase;color:#a9b9c9;padding:10px 16px 16px;font-size:11px;font-weight:500}.problem-table th:first-child{width:86px}.problem-table th:nth-child(2){width:66px}.problem-table th:nth-child(4){width:200px}.problem-table th:nth-child(5){width:120px}.problem-table th:nth-child(6){width:26px;padding:0}.problem-table td{color:#b9c6d4;border-bottom:1px solid #2b343b;height:50px;padding:14px 16px;font-size:14px}.problem-table td:nth-child(3){color:#e6ecf2}.problem-table td:nth-child(3) a{display:block}.problem-table td:nth-child(6){opacity:0;padding:0}.problem-table tr:hover td{background:#1c2429}.problem-table tr:hover td:last-child{opacity:1}.problem-table td:first-child>span{align-items:center;display:flex}.problem-table td:nth-child(4){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.library-footer{border-top:1px solid var(--border);color:#9eafbf;justify-content:space-between;margin-top:36px;padding-top:22px;font-size:13px;display:flex}.library-footer a{color:#dae2ea}.no-results{text-align:center;padding:60px}.no-results h2{color:var(--muted);font-size:19px}.workspace{grid-template-columns:288px minmax(0,1fr);min-height:calc(100vh - 56px);display:grid}.workspace.sidebar-hidden{grid-template-columns:54px minmax(0,1fr)}.sidebar{border-right:1px solid var(--border);background:#171d21;flex-direction:column;height:calc(100vh - 56px);display:flex;position:sticky;top:0;overflow:hidden}.sidebar-top{flex-shrink:0;justify-content:space-between;align-items:center;height:76px;padding:24px 16px 19px 24px;display:flex}.sidebar-top a{color:#b8c7d6;align-items:center;gap:12px;font-size:13px;display:flex}.sidebar.collapsed .sidebar-top{justify-content:center;padding:18px 9px}.sidebar-search{margin:0 20px 28px}.sidebar-search input{min-width:0;font-size:13px}.sidebar-list{scrollbar-width:thin;scrollbar-color:#36434b transparent;flex:1;padding-bottom:12px;overflow-y:auto}.sidebar-label{letter-spacing:1.2px;color:#91a5b8;margin:13px 24px 12px;font-size:11px}.sidebar-label.additional{border-top:1px solid var(--border);margin-top:25px;padding-top:24px}.sidebar-problem{color:#becbd9;border-left:3px solid #0000;justify-content:space-between;align-items:center;gap:8px;min-height:42px;padding:11px 22px 11px 25px;font-size:14px;line-height:1.5;display:flex}.sidebar-problem span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sidebar-problem:hover{background:#20292e}.sidebar-problem.active{color:var(--lime);border-left-color:var(--lime);background:#293426}.sidebar-progress{background:#171d21;padding:25px 22px 30px;box-shadow:0 -12px 18px #171d21}.sidebar-progress>div:first-child{color:#a0b3c6;justify-content:space-between;gap:10px;margin-bottom:10px;font-size:12px;display:flex}.workspace-main{min-width:0}.problem-header{padding:20px 30px 6px}.problem-position{color:#bbc9d6;margin-bottom:7px;font-size:12px}.title-row{align-items:center;gap:18px;display:flex}.title-row h1{margin:0 0 9px;font-size:34px}.solved-badge{color:var(--lime);align-items:center;gap:6px;font-size:13px;display:flex}.problem-meta{color:#adbdcd;align-items:center;gap:16px;font-size:13px;line-height:1.8;display:flex}.problem-meta>span:not(:first-child):before{content:"·";color:#657b8d;margin-right:16px}.workspace-tabs{border-bottom:1px solid var(--border);gap:12px;height:48px;padding:0 15px;display:flex}.workspace-tabs a{color:#a9bbcc;border-bottom:3px solid #0000;align-items:center;padding:10px 16px;font-size:14px;display:flex}.workspace-tabs a.active{color:#f6fafc;border-color:var(--lime);font-weight:550}.split-view{align-items:start;gap:0;min-width:0;padding:18px 22px 45px 30px;display:grid}.pane-divider{cursor:col-resize;touch-action:none;align-self:stretch;min-height:500px;margin:0 3px;position:relative}.pane-divider:after{content:"";background:0 0;width:2px;position:absolute;top:0;bottom:0;left:2px}.pane-divider:hover:after,.pane-divider:focus:after{background:#5f7551}.lesson-text{min-width:0;padding:17px 19px 20px 0}.lesson-text h2{margin-bottom:18px;font-size:23px;line-height:1.4}.lesson-text p{margin-bottom:19px}.lesson-text section{margin:26px 0}.lesson-text ul{margin:12px 0;padding-left:21px}.lesson-text li{margin-bottom:8px;padding-left:1px}.example{background:#192126;border:1px solid #2a363e;border-radius:5px;margin:21px 0 27px;padding:18px 19px}.example h3{margin-bottom:15px;font-size:16px}.example p{color:#96aabd;margin:12px 0 0;font-size:12px}.prerequisites{border-bottom:1px solid var(--border);color:var(--muted);padding:0 0 15px;font-size:13px}.prerequisites summary{cursor:pointer}.prerequisites li{font-size:14px}.approach{counter-reset:steps;padding:0;list-style:none}.approach li{counter-increment:steps;margin-bottom:13px;padding-left:31px;position:relative}.approach li:before{content:counter(steps);color:var(--lime);background:#263222;border:1px solid #455539;border-radius:50%;place-items:center;width:21px;height:21px;font-size:12px;line-height:1;display:grid;position:absolute;top:3px;left:0}.complexity{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:22px;margin-top:26px;padding:22px 0 10px;display:grid}.complexity>div+div{border-left:1px solid var(--border);padding-left:25px}.complexity span{color:#b3c1cf;margin-bottom:10px;font-size:13px;display:block}.complexity strong{font-family:var(--font-mono);overflow-wrap:anywhere;font-size:20px;font-weight:500}.complexity-note{color:#8fa3b5;font-size:13px;line-height:1.6}.sources{border-top:1px solid var(--border);color:#8fa2b4;flex-wrap:wrap;gap:10px 15px;margin-top:28px;padding-top:18px;font-size:12px;line-height:1.6;display:flex}.sources>span{text-transform:uppercase;letter-spacing:1px;width:100%;font-size:11px}.sources a{text-underline-offset:3px;text-decoration:underline}.workspace-panel{min-width:0;padding-left:10px}.panel{border:1px solid var(--border);background:#171e22;border-radius:5px;overflow:hidden}.panel-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:17px;display:flex}.panel-heading h2{letter-spacing:-.25px;margin:0;font-size:21px}.algorithm-label{color:#bac8d4;text-transform:capitalize;white-space:nowrap;background:#1d252a;border:1px solid #303b43;border-radius:4px;padding:5px 8px;font-size:11px}.walkthrough{padding:17px}.trace-input{border-bottom:1px solid #303a43;margin-bottom:20px;padding-bottom:17px}.trace-input label,.test-input>label{color:#afc0d0;margin-bottom:7px;font-size:12px;display:block}.trace-input label span{color:#7c94a7;margin-left:6px;font-size:10px}.input-action{align-items:center;gap:12px;display:flex}.input-action textarea{width:100%;min-width:0;min-height:42px;max-height:130px;padding:9px 12px;font-size:12px;line-height:1.4}.input-action button{padding:10px 21px}.structure{margin-bottom:21px;overflow:hidden}.structure-label{color:#a9bdce;margin-bottom:10px;font-size:12px;line-height:1.5;display:block}.array{flex-wrap:wrap;align-items:flex-start;gap:9px;display:flex}.array-item{text-align:center;min-width:45px;max-width:160px}.array-index{color:#a3b6c7;margin-bottom:6px;font-size:11px;display:block}.array-cell{color:#e9f0f6;min-width:55px;min-height:38px;font-family:var(--font-mono);background:#202b33;border:1px solid #42515c;border-radius:4px;padding:9px 12px;font-size:14px}.array-cell.current{border-color:var(--lime);color:var(--lime);background:#2a3b23;box-shadow:inset 0 0 0 1px #c1f17a12}.pointer{color:var(--lime);height:16px;margin-top:5px;font-size:10px;line-height:1.5;display:block}.pointer:not(:empty):before{content:"↑ ";font-size:13px}.nested-value{overflow-wrap:anywhere;font-size:10px}.watch-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px;display:grid}.watch{min-width:0;overflow:hidden}.watch .structure-label{margin-bottom:7px}.watch .scalar{overflow-wrap:anywhere;background:#11191d;border:1px solid #303f48;border-radius:4px;min-height:40px;padding:8px 12px;font-size:17px;display:block}.empty-value{color:#7f98aa;padding:8px 0;font-size:12px;font-style:italic;display:block}.map-wrap,.matrix-wrap{scrollbar-width:thin;max-height:240px;overflow:auto}.map-table{border-collapse:collapse;border:1px solid #33424e;width:100%;font-size:12px}.map-table th,.map-table td{text-align:left;overflow-wrap:anywhere;border:1px solid #33424e;padding:7px 12px;font-weight:400}.map-table th{color:#c5d0da;background:#1b242b}.map-table td:first-child{color:var(--blue)}.map-table td{font-family:var(--font-mono);background:#11181d}.matrix{border-collapse:separate;border-spacing:3px;font-family:var(--font-mono);font-size:12px}.matrix td{text-align:center;background:#1f2c35;border:1px solid #3b505e;border-radius:3px;min-width:30px;padding:7px}.matrix td.active-cell{color:var(--lime);border-color:var(--lime);background:#293823}.node-diagram{width:100%;min-width:220px;max-height:380px;display:block}.edge-label{fill:#9bb2c6;font-size:11px}.call-stack{flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0;display:flex}.call-stack>span:not(:first-child){color:#9fcdf1;font-family:var(--font-mono);background:#25303b;border:1px solid #405666;padding:4px 7px;font-size:10px}.call-stack .structure-label{width:100%;margin:0}.return-value{color:var(--lime);background:#22351f;border:1px solid #42593a;border-radius:4px;justify-content:space-between;gap:12px;margin:12px 0;padding:10px 12px;font-size:12px;display:flex}.return-value code{overflow-wrap:anywhere;max-width:75%}.insight{color:#bcdcf2;background:#1c2a33;border:1px solid #3c5060;border-radius:4px;align-items:flex-start;gap:9px;min-height:45px;margin:18px 0;padding:12px;font-size:12px;line-height:1.55;display:flex}.insight svg{margin-top:1px}.insight.returned{color:var(--lime);background:#23331e;border-color:#8cbb55}.playback{flex-wrap:wrap;align-items:center;gap:8px;margin:16px 0 10px;display:flex}.playback-buttons{gap:6px;display:flex}.playback-buttons button{padding:9px 10px;font-size:12px}.playback-buttons .primary{padding:9px 15px}.step-count{color:#a3b5c6;margin-left:auto;font-size:11px}.playback select{padding:7px;font-size:11px}.scrubber{width:100%;accent-color:var(--lime);cursor:pointer;height:5px;margin:6px 0 20px;padding:0}.trace-code{background:#11181c;border:1px solid #2c3b46;border-radius:4px;padding:11px 0 5px}.trace-code>.structure-label{padding:0 12px;font-size:11px}.trace-code>.structure-label span{color:#7f98ad}.code-lines{scrollbar-width:thin;scrollbar-color:#344851 transparent;max-height:260px;position:relative;overflow:auto}.code-line{min-width:max-content;min-height:20px;padding:2px 11px 2px 0;font-size:11px;line-height:1.65;display:flex}.line-number{text-align:right;color:#687e90;width:32px;font-family:var(--font-mono);-webkit-user-select:none;user-select:none;flex-shrink:0;margin-right:13px}.code-line code{white-space:pre;color:#afd4ea}.code-line code.comment{color:#7794a9}.code-line.highlighted{border-left:2px solid var(--lime);background:#3c522846;padding-left:0}.code-line.highlighted .line-number{width:30px;color:var(--lime)}.interval-chart{flex-direction:column;gap:9px;display:flex}.interval-row{color:#97afc1;align-items:center;gap:12px;font-size:10px;display:flex}.interval-track{background:#111a20;border-radius:3px;flex:1;height:28px;position:relative}.interval-bar{color:#bae9f2;min-width:35px;font-family:var(--font-mono);background:#283f45;border:1px solid #4b8c9b;border-radius:3px;justify-content:center;align-items:center;font-size:10px;display:flex;position:absolute;top:0;bottom:0}.bits{flex-wrap:wrap;gap:3px;display:flex}.bits span{font-family:var(--font-mono);border:1px solid #334650;padding:4px;font-size:11px}.bits .bit-set{color:var(--lime);background:#304526;border-color:#7d9e56}.editor-toolbar{border-bottom:1px solid var(--border);color:#b5c9d8;justify-content:space-between;align-items:center;min-height:49px;padding:10px 15px;font-size:13px;display:flex}.editor-toolbar .subtle{font-size:11px}.editor-panel .code-editor{min-height:315px}.cm-editor{min-height:inherit}.cm-scroller{max-height:580px;overflow:auto}.editor-actions{border-top:1px solid var(--border);justify-content:flex-end;align-items:center;gap:10px;padding:11px 14px;display:flex}.editor-actions button{min-width:100px}.keyboard-hint{color:#6e879c;margin-right:auto;font-size:10px}.test-panel{margin-top:12px}.small-tabs{border-bottom:1px solid var(--border);gap:15px;padding:0 10px;display:flex}.small-tabs button{background:0 0;border:0;border-bottom:3px solid #0000;border-radius:0;padding:14px 9px 12px;font-size:12px}.small-tabs button.active{border-bottom-color:var(--lime);color:#eef2f6}.result-count{color:var(--lime);font-size:10px}.test-input{padding:16px}.case-tabs{gap:8px;margin-bottom:15px;display:flex}.case-tabs button{padding:9px 15px;font-size:11px}.case-tabs .selected{color:var(--lime);background:#293422;border-color:#8da968}.test-input>label{justify-content:space-between;gap:10px;display:flex}.test-input>label span{color:#7992a6;font-size:10px}.test-input textarea{background:#11181c;width:100%;font-size:12px}.expected-output{color:#9fb4c4;align-items:baseline;gap:15px;margin-top:12px;font-size:11px;display:flex}.expected-output code{color:#ccdeec;overflow-wrap:anywhere}.run-status{color:#b5c6d3;background:#1e2830;border:1px solid #33424d;border-radius:4px;align-items:center;gap:10px;margin:0 16px 16px;padding:11px 12px;font-size:11px;display:flex}.run-status.success{color:var(--lime);background:#20301d;border-color:#405637}.results{padding:16px}.running{color:#bacadd;align-items:center;gap:10px;padding:14px 0;font-size:13px;display:flex}.case-result{border:1px solid var(--border);background:#141d22;border-radius:4px;margin-bottom:9px}.case-result summary{cursor:pointer;align-items:center;gap:9px;padding:12px;font-size:12px;display:flex}.case-result.passed summary>svg{color:var(--lime)}.case-result.failed summary>svg{color:var(--danger)}.case-result summary>span{flex:1}.case-result summary strong{font-size:11px;font-weight:500}.case-result.passed strong{color:var(--lime)}.case-result.failed strong{color:var(--danger)}.case-result summary small{color:#728da1;font-size:10px}.result-details{padding:0 12px 12px}.result-details label{letter-spacing:.5px;text-transform:uppercase;color:#8aa3b7;font-size:10px}.result-details pre{color:#c8dbe8;background:#0f171c;border:1px solid #2b3a45;border-radius:4px;margin:6px 0 10px;padding:10px;font-size:11px}.output-comparison{grid-template-columns:1fr 1fr;gap:10px;display:grid}.output-comparison>div{min-width:0}.empty-results{text-align:center;color:#6e899e;padding:22px 0}.empty-results p{margin-top:8px;font-size:12px}.confirm-reset{align-items:center;gap:6px;font-size:11px;display:flex}.confirm-reset button{padding:6px;font-size:10px}.solution-panel{padding:18px}.solution-panel .code-editor{border:1px solid #2b3b47;border-radius:4px;min-height:440px;overflow:hidden}.solution-panel .panel-heading button{padding:9px 12px;font-size:11px}.try-button{width:100%;height:45px;margin-top:18px}.try-caption{text-align:center;color:#9eb3c4;margin-top:10px;font-size:12px}.loading{color:#a1b7c8;flex-wrap:wrap;justify-content:center;align-items:center;gap:13px;min-height:190px;padding:65px 15px;font-size:13px;display:flex}.page-loading{padding-top:160px}.error{color:#f5b3a9;white-space:pre-wrap;overflow-wrap:anywhere;background:#382624;border:1px solid #75453e;border-radius:4px;padding:14px;font-size:12px;line-height:1.65}.notice{color:#dfc49b;background:#382f23;border-radius:4px;padding:9px;font-size:12px;line-height:1.6}.page-error{padding:55px 35px}.page-error a{margin-left:20px}.compact .array-cell{min-width:30px;min-height:27px;padding:5px;font-size:11px}.compact .array-item{min-width:30px}.compact .array-index{font-size:9px}.compact .pointer{height:0}.compact.array{gap:4px}.scalar{font-family:var(--font-mono);color:#e5eef5;font-size:18px}@media (min-width:1600px){.sidebar{font-size:15px}.workspace{grid-template-columns:290px minmax(0,1fr)}.split-view{padding:24px 30px 50px}.lesson-text{padding-right:26px}p,li{font-size:16px}.sidebar-problem{font-size:14px}.code-line{font-size:12px}.watch .scalar{font-size:20px}}@media (max-width:1200px){.workspace{grid-template-columns:224px minmax(0,1fr)}.app-header{gap:38px}.split-view{padding-left:22px;padding-right:16px}.problem-header{padding-left:22px}.sidebar-problem{padding-left:18px;font-size:12px}.sidebar-search{margin-left:15px;margin-right:15px}.sidebar-top{padding-left:18px}.panel-heading h2{font-size:17px}.walkthrough{padding:13px}.watch-grid{gap:8px}.playback{gap:5px}.step-count{margin-left:0}.keyboard-hint{display:none}.lesson-text{padding-right:10px}.lesson-text h2{font-size:21px}.problem-table th:nth-child(4){width:155px}.library{padding-top:48px}.library-heading h1{font-size:34px}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}.spin{animation-duration:3s}}.brand-mark{flex-shrink:0;height:32px}.code-editor .cm-editor{background-color:#11181c}.code-editor .cm-gutters{background-color:#11181c;border-right:1px solid #2a3944}.code-editor .cm-activeLineGutter{background:#1e2b30}.code-editor .cm-activeLine{background:#24302144}.trace-input label,.structure-label,.step-count,.playback select,.run-status,.small-tabs button,.case-tabs button,.editor-toolbar,.sidebar-top a,.test-input>label,.sources{font-size:13px}.trace-code>.structure-label,.trace-input label span,.code-line,.case-result summary,.test-input textarea,.input-action textarea{font-size:12px}.inspect-state{color:#9db5c6;margin-top:10px;font-size:12px}.inspect-state summary{cursor:pointer;margin-bottom:10px}.workspace-main{flex-direction:column;height:calc(100dvh - 56px);min-height:0;display:flex}.workspace-main>.problem-header,.workspace-main>.workspace-tabs{flex-shrink:0}.workspace-main>.split-view{flex:1;align-items:stretch;min-height:0;padding-bottom:18px;overflow:hidden}.split-view>.lesson-text,.split-view>.workspace-panel{scrollbar-width:thin;scrollbar-color:#414a50 transparent;overscroll-behavior-y:contain;min-height:0;overflow-y:auto}.split-view>.lesson-text{padding-right:20px}.split-view>.workspace-panel{padding-right:3px}.split-view>.pane-divider{min-height:0}.draft-status{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px;padding:8px 30px;font-size:12px;display:flex}.draft-status button{padding:5px 9px;font-size:12px}.progress-dialog{color:#e8edf2;background:var(--surface);border:1px solid var(--border);border-radius:12px;width:540px;padding:28px}.progress-dialog::backdrop{background:#000a}.progress-dialog p{color:var(--muted);line-height:1.6}.progress-dialog a{color:var(--lime)}.backup-input{gap:10px;margin-top:24px;display:grid}
