:root{font-family:DM Sans,Arial,sans-serif;color:#18201f;background:#f5f7f8;font-synthesis:none;--ink: #18201f;--muted: #63706f;--faint: #8c9795;--line: #dce2e1;--line-strong: #c8d0cf;--surface: #ffffff;--surface-alt: #eef2f2;--green: #087b65;--green-dark: #075e50;--green-soft: #e1f2ed;--yellow: #a86705;--yellow-soft: #fff1d3;--red: #b43f45;--red-soft: #fae7e8;--blue: #246a9b;--blue-soft: #e7f1f8;--code: #1e2425}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{min-width:320px}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{color:inherit}.app-shell{min-height:100vh}.topbar{height:62px;padding:0 28px;display:grid;grid-template-columns:minmax(210px,1fr) auto minmax(210px,1fr);align-items:center;gap:24px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:11px;font-weight:700}.brand-mark{width:32px;height:32px;flex:0 0 32px;display:grid;place-items:center;color:var(--ink)}.brand-mark svg{width:100%;height:100%;display:block;overflow:visible}.brand-mark-fill{fill:#fff;stroke:#000;stroke-width:2.2;stroke-linejoin:round}.brand-mark-eye,.brand-mark-nose{fill:#000}.brand-mark-mouth{fill:none;stroke:#000;stroke-width:1.4;stroke-linecap:round}.brand-mark-whiskers{fill:none;stroke:#000;stroke-width:1.2;stroke-linecap:round}.brand-mark-spark{fill:none;stroke:#000;stroke-width:1.8;stroke-linecap:round}.primary-nav{display:flex;align-self:stretch}.primary-nav a{min-width:104px;padding:0 15px;display:flex;align-items:center;justify-content:center;gap:7px;color:var(--muted);font-size:14px;font-weight:600;border-bottom:2px solid transparent}.primary-nav a:hover{color:var(--ink);background:#fafbfb}.primary-nav a.active{color:var(--green-dark);border-bottom-color:var(--green)}.account-menu{position:relative;display:flex;align-items:center;justify-content:flex-end;min-width:0}.account-trigger{min-width:0;max-width:246px;height:38px;padding:0 8px 0 6px;display:inline-flex;align-items:center;gap:9px;border:1px solid transparent;border-radius:5px;background:transparent;cursor:pointer}.account-trigger:hover,.account-trigger[aria-expanded=true]{border-color:var(--line);background:#fafbfb}.account-avatar{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;color:#fff;background:var(--blue);font-size:12px;font-weight:700}.account-email{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.account-popover{position:absolute;top:calc(100% + 8px);right:0;width:174px;padding:5px;border:1px solid var(--line);border-radius:6px;background:var(--surface);box-shadow:0 12px 28px #18201f24}.account-popover button{width:100%;height:36px;padding:0 10px;display:flex;align-items:center;gap:8px;border:0;border-radius:4px;background:transparent;cursor:pointer;color:var(--ink);font-size:12px;font-weight:600;text-align:left}.account-popover button:hover{background:var(--surface-alt)}.icon-button{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:5px;background:var(--surface);cursor:pointer}.icon-button:hover{border-color:var(--line-strong);background:var(--surface-alt)}.danger-icon-button{width:32px;height:32px;display:grid;place-items:center;border:1px solid var(--red-soft);border-radius:5px;color:var(--red);background:var(--surface);cursor:pointer}.danger-icon-button:hover{border-color:#e2b6ba;background:var(--red-soft)}.danger-icon-button:disabled{opacity:.55;cursor:wait}.danger-button{height:34px;padding:0 11px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #e2b6ba;border-radius:5px;color:var(--red);background:var(--surface);cursor:pointer;font-size:12px;font-weight:700}.danger-button:hover{background:var(--red-soft)}.danger-button:disabled{opacity:.5;cursor:default}.page{width:min(1180px,calc(100% - 48px));margin:0 auto;padding:48px 0 72px}.page-heading{max-width:680px;margin-bottom:38px}.eyebrow,.section-kicker{color:var(--green-dark);font-size:11px;line-height:1;font-weight:700;letter-spacing:0}.page-heading h1{margin:11px 0 9px;font-size:34px;line-height:1.16;letter-spacing:0}.page-heading p{margin:0;color:var(--muted);font-size:16px;line-height:1.6}.section-heading{min-height:42px;margin-bottom:18px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.section-heading h2{margin:6px 0 0;font-size:19px;line-height:1.2;letter-spacing:0}.text-link{display:flex;align-items:center;gap:3px;color:var(--green-dark);font-size:13px;font-weight:600}.section-block{min-width:0}.metric-strip{margin-bottom:48px;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--surface)}.metric{min-height:112px;padding:20px 24px;display:grid;align-content:center;border-right:1px solid var(--line)}.metric:last-child{border-right:0}.metric>span{color:var(--muted);font-size:12px;font-weight:600}.metric strong{margin:4px 0 2px;font:600 29px/1.1 IBM Plex Mono,monospace}.metric small{color:var(--faint);font-size:11px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(270px,.8fr);gap:42px}.featured-question{min-height:190px;display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:20px;align-items:start;padding:26px;border:1px solid var(--line);border-radius:6px;background:var(--surface);transition:border-color .16s,transform .16s}.featured-question:hover{border-color:#9eb0ad;transform:translateY(-1px)}.featured-index{width:48px;height:48px;display:grid;place-items:center;color:var(--green-dark);background:var(--green-soft);border-radius:5px}.featured-copy h3{margin:16px 0 7px;font-size:20px;letter-spacing:0}.featured-copy p{margin:0;max-width:580px;color:var(--muted);line-height:1.55}.featured-action{align-self:center;display:flex;align-items:center;gap:3px;color:var(--green-dark);font-size:13px;font-weight:700}.tag-row{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.difficulty,.topic-tag,.skill-tag{width:max-content;display:inline-flex;align-items:center;min-height:23px;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700;white-space:nowrap}.difficulty.easy{color:var(--green-dark);background:var(--green-soft)}.difficulty.medium{color:var(--yellow);background:var(--yellow-soft)}.difficulty.hard{color:var(--red);background:var(--red-soft)}.topic-tag{color:#4f5c5a;background:var(--surface-alt);font-weight:600}.skill-tag{color:#285c74;background:var(--blue-soft);font-weight:600}.topic-progress{display:grid;gap:19px}.topic-progress>div>div:first-child{display:flex;justify-content:space-between;gap:12px;margin-bottom:7px;color:var(--muted);font-size:12px}.topic-progress strong{color:var(--ink);font:500 11px IBM Plex Mono,monospace}.progress-track{height:7px;overflow:hidden;background:#e3e8e7;border-radius:4px}.progress-track span{display:block;height:100%;background:var(--green);border-radius:4px}.recent-section{margin-top:52px}.question-table{border-top:1px solid var(--line)}.question-table>a{min-height:62px;padding:10px 12px;display:grid;grid-template-columns:24px minmax(0,1fr) auto 24px;gap:10px;align-items:center;border-bottom:1px solid var(--line);background:var(--surface)}.question-table>a:hover{background:#fafbfb}.question-table span{min-width:0;display:grid;gap:2px}.question-table strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.question-table small{color:var(--faint);font-size:11px}.status-solved{color:var(--green)}.status-progress{color:var(--yellow)}.status-empty{color:#aeb8b6}.catalog-tools{margin-bottom:16px;display:flex;justify-content:space-between;align-items:center;gap:20px}.practice-type-grid{margin-bottom:34px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.practice-type-card{min-width:0;min-height:152px;padding:18px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:14px;align-items:start;border:1px solid var(--line);border-radius:7px;background:var(--surface);cursor:pointer;text-align:left;transition:border-color .16s,box-shadow .16s,transform .16s}.practice-type-card:hover{border-color:#9eb0ad;transform:translateY(-1px)}.practice-type-card.active{border-color:var(--green);box-shadow:0 0 0 2px #087b651a}.practice-type-icon{width:40px;height:40px;display:grid;place-items:center;color:var(--green-dark);background:var(--green-soft);border-radius:5px}.practice-type-card>span:nth-child(2){min-width:0;display:grid;gap:6px}.practice-type-card small{color:var(--green-dark);font-size:10px;font-weight:700;letter-spacing:0}.practice-type-card strong{font-size:16px;line-height:1.25}.practice-type-card em{max-width:280px;color:var(--muted);font-size:12px;font-style:normal;line-height:1.5}.practice-type-card b{min-width:30px;height:24px;padding:0 8px;display:grid;place-items:center;border-radius:4px;color:#3e4b49;background:var(--surface-alt);font:700 11px IBM Plex Mono,monospace}.practice-type-card.active b{color:var(--green-dark);background:var(--green-soft)}.catalog-results{display:grid;gap:16px}.catalog-results-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.catalog-results-head h2{margin:6px 0 0;font-size:21px;line-height:1.2}.catalog-results-head>span{color:var(--muted);font-size:12px;font-weight:700}.question-groups{display:grid;gap:34px}.question-group{min-width:0}.question-group-head{margin-bottom:12px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.question-group-head h2{margin:6px 0 5px;font-size:19px;line-height:1.2;letter-spacing:0}.question-group-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}.search-field{width:min(420px,100%);height:40px;padding:0 12px;display:flex;align-items:center;gap:9px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:var(--muted)}.search-field:focus-within{border-color:var(--green);box-shadow:0 0 0 2px #087b651a}.search-field input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink);font-size:13px}.segmented{display:flex;padding:3px;border:1px solid var(--line);border-radius:5px;background:var(--surface-alt)}.segmented button{min-width:66px;height:30px;padding:0 10px;border:0;border-radius:3px;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;font-weight:600}.segmented button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #18201f1f}.question-list{border:1px solid var(--line);background:var(--surface)}.question-list-head,.question-row{display:grid;grid-template-columns:minmax(280px,1fr) 110px 150px 78px 20px;gap:18px;align-items:center}.question-list-head{height:42px;padding:0 18px;color:var(--faint);background:var(--surface-alt);border-bottom:1px solid var(--line);font-size:10px;font-weight:700;text-transform:uppercase}.question-row{min-height:92px;padding:14px 18px;border-bottom:1px solid var(--line)}.question-row:last-child{border-bottom:0}.question-row:hover{background:#fafbfb}.question-row>div:first-child{min-width:0;display:grid;gap:5px}.question-row>div:first-child strong{font-size:14px}.question-row>div:first-child>span{max-width:650px;color:var(--muted);font-size:12px;line-height:1.45}.row-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:3px}.row-tags .skill-tag{min-height:20px;padding:2px 6px;font-size:10px;font-weight:600}.status-label{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:12px;font-weight:600}.time-cell{display:flex;align-items:center;gap:5px;color:var(--muted);font:500 11px IBM Plex Mono,monospace}.workspace{height:calc(100vh - 62px);min-height:620px;display:grid;grid-template-rows:52px minmax(0,1fr);background:var(--surface)}.workspace-toolbar{min-width:0;padding:0 14px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.back-button{height:34px;padding:0 8px;display:flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:12px}.back-button:hover{color:var(--ink)}.workspace-title{min-width:0;margin-right:auto;display:flex;align-items:center;gap:9px}.workspace-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.save-state{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:11px}.save-state.error{color:var(--red)}.run-button,.primary-button{height:34px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--green-dark);border-radius:5px;color:#fff;background:var(--green-dark);cursor:pointer;font-size:12px;font-weight:700}.run-button:hover,.primary-button:hover{background:#064c41}.run-button:disabled{opacity:.65;cursor:wait}.small-button{height:30px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:5px;color:var(--ink);background:var(--surface);cursor:pointer;font-size:11px;font-weight:700}.small-button:hover{border-color:var(--line-strong);background:var(--surface-alt)}.workspace-grid{min-height:0;display:grid;grid-template-columns:minmax(320px,38%) minmax(420px,62%);grid-template-rows:minmax(300px,1fr) minmax(170px,30%) auto}.workspace-grid.notebook-mode{grid-template-columns:minmax(320px,34%) minmax(520px,66%);grid-template-rows:minmax(420px,1fr) minmax(170px,24%) auto}.problem-pane{grid-row:1 / 3;min-height:0;border-right:1px solid var(--line);overflow:hidden}.pane-tabs{height:42px;display:flex;overflow-x:auto;border-bottom:1px solid var(--line)}.pane-tabs button{flex:0 0 auto;min-width:86px;padding:0 13px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);cursor:pointer;font-size:12px;font-weight:600}.pane-tabs button.active{color:var(--green-dark);border-bottom-color:var(--green)}.problem-content{height:calc(100% - 42px);padding:27px 28px 60px;overflow:auto}.problem-content h1{margin:17px 0 13px;font-size:24px;letter-spacing:0}.problem-content h2{margin:30px 0 10px;font-size:15px;letter-spacing:0}.problem-content p,.problem-content li{color:#475250;font-size:13px;line-height:1.7}.problem-content ul{margin:0;padding-left:20px}.prompt-text{display:grid;gap:13px}.prompt-text h2{margin:8px 0 0;font-size:14px;line-height:1.35}.prompt-text p{margin:0}.prompt-text ol{margin:0;padding-left:20px;display:grid;gap:6px}.prompt-text code{padding:1px 4px;border:1px solid var(--line);border-radius:4px;background:var(--surface-alt);color:#303b39;font:12px IBM Plex Mono,monospace}.prompt-text pre{margin:2px 0;overflow:auto;padding:12px 13px;background:var(--surface-alt);border:1px solid var(--line);border-radius:5px;color:#303b39;font:12px/1.55 IBM Plex Mono,monospace;white-space:pre-wrap}.problem-meta{display:flex;flex-wrap:wrap;gap:7px;align-items:center}.problem-meta>span:first-child{display:flex;align-items:center;gap:5px;margin-right:3px;color:var(--muted);font:500 11px IBM Plex Mono,monospace}.follow-up-list{margin-top:24px;display:grid;gap:9px}.follow-up-list h2{margin-bottom:2px}.follow-up-tabs{display:grid;gap:8px}.follow-up-item{width:100%;display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 12px;border:1px solid var(--line);border-radius:6px;background:var(--surface);cursor:pointer;text-align:left}.follow-up-item:hover{border-color:#b5c6c2;background:#fafdfc}.follow-up-item>span{width:22px;height:22px;display:grid;place-items:center;color:var(--muted);background:var(--surface-alt);border-radius:50%;font:700 10px IBM Plex Mono,monospace}.follow-up-item strong{display:block;font-size:12px}.follow-up-item small{color:var(--faint);font:700 10px IBM Plex Mono,monospace;text-transform:uppercase}.follow-up-item.active{border-color:var(--green);box-shadow:0 0 0 2px #087b6514}.follow-up-item.current{border-color:#c5d8d3;background:#f7fbfa}.follow-up-item.current>span{color:#fff;background:var(--green-dark)}.follow-up-item.passed{border-color:#cde0da}.follow-up-item.passed>span{color:var(--green-dark);background:var(--green-soft)}.follow-up-item.passed small{color:var(--green-dark)}.follow-up-detail{padding:12px 13px;border:1px solid var(--line);border-radius:6px;background:var(--surface-alt)}.follow-up-detail .prompt-text{gap:10px}.follow-up-detail .prompt-text h2{margin-top:0;font-size:13px}.follow-up-detail .prompt-text p,.follow-up-detail .prompt-text li{color:#475250;font-size:12px;line-height:1.65}.code-pane,.results-pane,.notebook-workspace-pane{min-width:0;min-height:0;display:grid;grid-template-rows:34px minmax(0,1fr);background:var(--code);overflow:hidden}.code-pane{border-bottom:1px solid #3a4242}.notebook-workspace-pane{border-bottom:1px solid #3a4242;background:#f7f9f8}.notebook-workspace-body{min-height:0;overflow:auto;padding:14px}.code-pane-label{padding-left:6px}.code-file-tabs{min-width:0;height:100%;display:flex;align-items:center;gap:3px;overflow-x:auto}.code-file-tabs button{flex:0 0 auto;height:27px;padding:0 9px;display:inline-flex;align-items:center;gap:5px;border:0;border-radius:4px;color:#aeb9b8;background:transparent;cursor:pointer;font:700 10px IBM Plex Mono,monospace}.code-file-tabs button:hover{color:#fff;background:#303839}.code-file-tabs button.active{color:#d9e2e0;background:#101516}.code-editor,.code-editor .cm-editor{height:100%;min-height:0}.editor-loading{height:100%;display:grid;place-items:center;color:#aeb9b8}.code-editor .cm-editor{font:14px/22px IBM Plex Mono,monospace;background:var(--code)}.code-editor .cm-scroller{padding-top:10px;overflow:auto}.code-editor .cm-gutters{background:var(--code);border-right-color:#303839;color:#687372}.pane-label{min-width:0;height:34px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#aeb9b8;background:#252c2d;border-bottom:1px solid #384142;font:500 10px IBM Plex Mono,monospace}.pane-label>span{display:flex;align-items:center;gap:6px}.results-pane{min-height:0;display:grid;grid-template-rows:34px minmax(0,1fr);background:var(--surface)}.results-pane .pane-label{color:var(--muted);background:var(--surface-alt);border-bottom-color:var(--line)}.results-label{padding-left:6px}.results-tabs{height:100%;display:flex;align-items:center;gap:2px}.results-tabs button{height:26px;padding:0 9px;border:0;border-radius:4px;color:var(--muted);background:transparent;cursor:pointer;font:700 10px IBM Plex Mono,monospace;text-transform:uppercase}.results-tabs button:hover{color:var(--ink);background:var(--surface)}.results-tabs button.active{color:var(--green-dark);background:var(--green-soft)}.results-body{min-height:0;overflow:auto;background:#f7f9f8}.result-pass{color:var(--green)}.result-fail{color:var(--red)}.result-empty{display:grid;place-content:center;justify-items:center;gap:7px;padding:20px;color:var(--faint);text-align:center}.result-empty p{margin:0;font-size:12px}.result-empty span{color:var(--faint);font:500 10px IBM Plex Mono,monospace}.result-empty.error{color:var(--red)}.test-results{padding:12px 14px 22px;overflow:auto;display:grid;gap:12px}.test-run-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.test-run-summary>div{min-width:0;padding:9px 10px;display:grid;gap:3px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.test-run-summary span{color:var(--faint);font-size:10px;font-weight:700;text-transform:uppercase}.test-run-summary strong{color:var(--ink);font:700 13px IBM Plex Mono,monospace}.test-run-summary.passed>div:first-child{border-color:#087b6552;background:var(--green-soft)}.test-run-summary.failed>div:first-child{border-color:#c5473d52;background:#fff4f2}.test-group{border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--surface);box-shadow:0 1px #18201f08}.test-group-head{min-height:36px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fbfcfc;border-bottom:1px solid var(--line)}.test-group-head span{color:var(--ink);font-size:12px;font-weight:700}.test-group-head small{color:var(--muted);font:700 10px IBM Plex Mono,monospace;text-transform:uppercase}.test-group.passed .test-group-head small{color:var(--green-dark)}.test-group.current .test-group-head small{color:var(--red)}.test-result-row{border-bottom:1px solid var(--line)}.test-result-row:last-child{border-bottom:0}.test-result-row.fail{background:#fffdfc}.test-result-summary{min-height:48px;display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px 12px}.test-result-row.pass .test-result-summary>svg{color:var(--green)}.test-result-row.fail .test-result-summary>svg{color:var(--red)}.test-result-summary span{display:grid;gap:2px}.test-results strong{font-size:12px}.test-results small{color:var(--red);font-size:11px;line-height:1.4}.test-results time{color:var(--faint);font:10px IBM Plex Mono,monospace}.test-results details{margin-top:4px}.test-results summary{cursor:pointer;color:var(--muted);font-size:11px;font-weight:700}.test-results pre{overflow:auto;padding:9px 10px;background:#f9fbfa;border:1px solid var(--line);border-radius:5px;font:11px/1.5 IBM Plex Mono,monospace}.test-debug{margin:0 12px 12px 43px;padding-top:1px}.test-debug dl{margin:8px 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.test-debug dl>div{display:grid;gap:4px}.test-debug dt{color:var(--faint);font-size:10px;font-weight:700;text-transform:uppercase}.test-debug dd{margin:0;min-width:0}.test-debug pre{max-height:160px;margin:0;white-space:pre}.debug-stdout{grid-column:1 / -1}.visible-tests{padding:12px 14px 22px;display:grid;gap:10px}.visible-tests-summary{min-height:34px;padding:0 2px;display:flex;align-items:center;justify-content:space-between;gap:10px}.visible-tests-summary strong{color:var(--ink);font-size:13px}.visible-tests-summary span{color:var(--faint);font:700 10px IBM Plex Mono,monospace;text-transform:uppercase}.visible-test-case{border:1px solid var(--line);border-radius:7px;overflow:hidden;background:var(--surface);box-shadow:0 1px #18201f08}.visible-test-head{min-height:36px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fbfcfc;border-bottom:1px solid var(--line)}.visible-test-head strong{font-size:12px}.visible-test-head small{color:var(--muted);font:700 10px IBM Plex Mono,monospace;text-transform:uppercase}.visible-test-case dl{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.visible-test-case dl>div{min-width:0;padding:10px 12px;display:grid;gap:6px;border-bottom:1px solid var(--line)}.visible-test-case dl>div:first-child{border-right:1px solid var(--line)}.visible-test-case dl>div:last-child{border-bottom:0}.visible-test-case dt{color:var(--faint);font-size:10px;font-weight:700;text-transform:uppercase}.visible-test-case dd{margin:0;min-width:0}.visible-test-case pre{max-height:150px;margin:0;padding:0;overflow:auto;background:transparent;font:11px/1.55 IBM Plex Mono,monospace;white-space:pre}.terminal-drawer{grid-column:1 / 3;min-width:0;border-top:1px solid #303839;background:#171d1e;overflow:hidden}.terminal-drawer-head{height:38px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#d9e2e0;background:#202829;border-bottom:1px solid #303839}.terminal-drawer-head button{height:28px;padding:0 9px;display:inline-flex;align-items:center;gap:7px;border:1px solid #3b4647;border-radius:5px;color:#d9e2e0;background:#171d1e;cursor:pointer;font:700 11px IBM Plex Mono,monospace;text-transform:uppercase}.terminal-drawer-head strong{font:700 11px IBM Plex Mono,monospace}.terminal-drawer.collapsed .terminal-drawer-head{border-bottom:0}.terminal-drawer-body{min-height:0;height:250px}.terminal-drawer.collapsed .terminal-drawer-body{height:0;visibility:hidden}.run-terminal{height:100%;min-height:0;padding:8px 12px 12px;display:grid;grid-template-rows:auto minmax(110px,1fr) auto;gap:8px;background:#171d1e}.terminal-actions{min-height:34px;display:flex;align-items:center;gap:8px}.terminal-actions .terminal-status{margin-right:auto}.terminal-actions button,.terminal-input-row button{height:30px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #3b4647;border-radius:5px;color:#d9e2e0;background:#222b2c;font-size:11px;font-weight:700;cursor:pointer}.terminal-actions button:disabled,.terminal-input-row button:disabled{opacity:.48;cursor:not-allowed}.terminal-status{min-width:0;display:flex;align-items:center;gap:8px;color:#99aaa7;font-size:11px}.terminal-status strong{color:#d9e2e0;font-size:11px}.terminal-status span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.terminal-error{color:#f2a09a}.run-terminal pre{min-height:110px;margin:0;overflow:auto;padding:12px;border:1px solid #303839;border-radius:6px;color:#d9e2e0;background:#101516;box-shadow:inset 0 1px #ffffff08;font:11px/1.55 IBM Plex Mono,monospace;white-space:pre-wrap}.terminal-input-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}.terminal-input-row span{color:#7fb8a8;font:700 11px IBM Plex Mono,monospace}.terminal-input-row input{min-width:0;height:32px;padding:0 10px;border:1px solid #303839;border-radius:5px;outline:0;color:#d9e2e0;background:#101516;font:12px IBM Plex Mono,monospace}.terminal-input-row input:focus{border-color:#7fb8a8;box-shadow:0 0 0 2px #7fb8a829}.hint-list{display:grid;gap:12px}.hint{display:grid;grid-template-columns:28px 1fr;gap:11px;padding:14px;border:1px solid var(--line);border-radius:5px}.hint>span{width:26px;height:26px;display:grid;place-items:center;color:var(--green-dark);background:var(--green-soft);border-radius:50%;font:600 11px IBM Plex Mono,monospace}.hint p{margin:2px 0 0}.notes-panel{min-height:100%;display:grid}.notes-panel textarea{width:100%;min-height:360px;padding:16px;border:1px solid var(--line-strong);border-radius:6px;outline:0;color:var(--ink);background:var(--surface);resize:vertical;font:13px/1.65 DM Sans,sans-serif}.notes-panel textarea:focus{border-color:var(--green);box-shadow:0 0 0 2px #087b651a}.solution-panel{display:grid;gap:14px;padding:16px;border:1px solid var(--line-strong);border-radius:6px;background:var(--surface)}.solution-panel.loading,.solution-panel.error{min-height:92px;align-content:center;justify-content:center;grid-auto-flow:column;color:var(--muted);font-size:13px}.solution-panel.error{color:var(--red);background:var(--red-soft);border-color:#e2b6ba}.solution-panel .prompt-text{max-width:none}.solution-versions-panel{display:grid;gap:16px}.version-save-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.version-save-row input{min-width:0;height:36px;padding:0 10px;border:1px solid var(--line-strong);border-radius:5px;outline:0;color:var(--ink);background:var(--surface);font-size:12px}.version-save-row input:focus{border-color:var(--green);box-shadow:0 0 0 2px #087b651a}.version-list{display:grid;gap:10px}.version-item{min-width:0;min-height:62px;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.version-item strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.version-item span{display:block;margin-top:3px;color:var(--muted);font-size:11px}.version-actions{display:flex;align-items:center;gap:7px}.version-actions .icon-button{width:30px;height:30px}.notebook-panel{display:grid;gap:16px}.notebook-toolbar{min-height:54px;display:grid;grid-template-columns:minmax(120px,1fr) auto auto;align-items:center;gap:12px}.notebook-toolbar h1{margin:0 0 3px;font-size:20px;line-height:1.2}.notebook-toolbar span{color:var(--muted);font-size:11px}.notebook-toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.notebook-connection{min-height:38px;min-width:176px;padding:7px 10px;display:grid;grid-template-columns:12px 1fr;column-gap:7px;align-items:center;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.notebook-connection strong{color:var(--muted);font-size:12px;line-height:1.1}.notebook-connection small{grid-column:2;color:var(--faint);font-size:10px;line-height:1.2}.notebook-connection.connected{border-color:#b8d5ce;background:#f5fbf9}.notebook-connection.connected strong{color:var(--green-dark)}.notebook-alert{padding:9px 10px;color:var(--red);background:var(--red-soft);border-radius:4px;font-size:12px;line-height:1.4}.notebook-cells{display:grid;gap:18px}.notebook-cell{min-width:0;overflow:hidden;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);box-shadow:0 1px #18201f08}.notebook-cell.source-cell{border-color:#9eb0ad;box-shadow:0 0 0 2px #087b6512}.notebook-cell:focus-within{border-color:#9eb0ad;box-shadow:0 0 0 2px #087b6514}.notebook-cell-head{min-height:42px;padding:0 9px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);background:#f8fafa}.notebook-cell-head>div:first-child{display:flex;align-items:center;gap:8px;min-width:0}.notebook-cell-index{color:var(--green-dark);font:700 11px IBM Plex Mono,monospace}.notebook-cell-kind{color:var(--faint);font-size:10px;font-weight:700;text-transform:uppercase}.notebook-cell-actions{display:flex;align-items:center;gap:7px}.notebook-cell-actions .run-button{height:30px;padding:0 10px}.notebook-cell-actions .icon-button{width:30px;height:30px}.notebook-cell-actions .icon-button:disabled{opacity:.45;cursor:default}.notebook-editor{min-height:84px;background:var(--code)}.notebook-editor.source-editor{min-height:260px}.notebook-editor .code-editor,.notebook-editor .code-editor .cm-editor{height:auto;min-height:84px}.notebook-editor.source-editor .code-editor,.notebook-editor.source-editor .code-editor .cm-editor{min-height:260px}.notebook-editor .code-editor .cm-editor{font-size:12px;line-height:19px}.notebook-editor .code-editor .cm-scroller{min-height:84px;overflow:visible}.notebook-output-wrap{border-top:1px solid var(--line);background:#222829}.notebook-output-wrap.idle{background:#f8fafa}.notebook-output-wrap.error{background:#2d2225}.notebook-output-head{min-height:30px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#aeb9b8;border-bottom:1px solid rgba(255,255,255,.08);font:700 10px IBM Plex Mono,monospace;text-transform:uppercase}.notebook-output-wrap.idle .notebook-output-head{color:var(--faint);border-bottom:0}.notebook-output-wrap.error .notebook-output-head{color:#ffc6cc}.notebook-output-head small{color:inherit;font:600 10px IBM Plex Mono,monospace;text-transform:none}.notebook-output-empty{min-height:48px;padding:12px;display:flex;align-items:center;gap:8px;color:#aeb9b8;font-size:12px}.notebook-output{min-height:48px;margin:0;overflow-x:auto;overflow-y:visible;padding:12px;color:#d9e2e0;font:11px/1.55 IBM Plex Mono,monospace;white-space:pre-wrap}.notebook-output-wrap.error .notebook-output{color:#ffd8dc}.notebook-output-wrap.terminal{background:#171d1e;border-color:#303839}.notebook-output-wrap.terminal .notebook-output-head{color:#d9e2e0;background:#222b2c;border-color:#303839}.notebook-output-wrap.terminal .notebook-output-head small{color:#99aaa7}.terminal-output{min-height:150px;background:#101516;border-color:#303839}.notebook-terminal-input{padding:8px;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:8px;border-top:1px solid #303839}.notebook-terminal-input span{color:#7fb8a8;font:700 11px IBM Plex Mono,monospace}.notebook-terminal-input input{min-width:0;height:30px;padding:0 9px;border:1px solid #303839;border-radius:5px;outline:0;color:#d9e2e0;background:#101516;font:12px IBM Plex Mono,monospace}.notebook-terminal-input input:focus{border-color:#7fb8a8;box-shadow:0 0 0 2px #7fb8a829}.notebook-terminal-input button{height:30px;padding:0 10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #3b4647;border-radius:5px;color:#d9e2e0;background:#222b2c;font-size:11px;font-weight:700;cursor:pointer}.notebook-terminal-input button:disabled{opacity:.48;cursor:not-allowed}.progress-grid{display:grid;grid-template-columns:minmax(260px,.7fr) minmax(0,1.3fr);gap:52px}.metric-strip.compact{margin-bottom:52px}.danger-zone{margin-top:52px;min-height:116px;padding:18px 20px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;border:1px solid #e2b6ba;border-radius:6px;background:snow}.danger-zone h2{margin:6px 0 7px;font-size:18px;line-height:1.2}.danger-zone p{max-width:690px;margin:0;color:var(--muted);font-size:13px;line-height:1.55}.danger-zone-notice,.danger-zone-error{display:block;margin-top:8px;font-size:12px}.danger-zone-notice{color:var(--green-dark)}.danger-zone-error{color:var(--red)}.admin-layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:34px;align-items:start}.admin-sidebar{position:sticky;top:90px;display:grid;gap:8px}.admin-links{display:grid;gap:4px;margin-bottom:18px}.admin-links a{min-height:36px;padding:0 10px;display:flex;align-items:center;gap:8px;border-radius:5px;color:var(--muted);font-size:12px;font-weight:700}.admin-links a:hover{color:var(--ink);background:var(--surface-alt)}.admin-links a.active{color:var(--green-dark);background:var(--green-soft)}.admin-sidebar label{font-size:11px;font-weight:700}.admin-sidebar select{width:100%;height:40px;padding:0 9px;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface);font-size:12px}.admin-sidebar p{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.55}.admin-form{border:1px solid var(--line);background:var(--surface)}.admin-form-head{height:58px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.admin-form-head>div{display:flex;align-items:center;gap:7px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--green)}.admin-monitor{min-width:0;display:grid;gap:18px}.admin-monitor-head{min-height:42px;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.admin-monitor-head h2{margin:6px 0 0;font-size:19px;line-height:1.2}.admin-monitor-metrics{margin-bottom:4px}.notebook-session-table{min-width:0;border:1px solid var(--line);background:var(--surface);overflow-x:auto}.notebook-session-head,.notebook-session-row{min-width:880px;display:grid;grid-template-columns:minmax(170px,1.2fr) 128px 120px 118px 118px minmax(140px,.8fr) 36px;gap:14px;align-items:center}.notebook-session-head{height:40px;padding:0 14px;color:var(--faint);background:var(--surface-alt);border-bottom:1px solid var(--line);font-size:10px;font-weight:700;text-transform:uppercase}.notebook-session-row{min-height:62px;padding:10px 14px;border-bottom:1px solid var(--line);font-size:12px}.notebook-session-row:last-child{border-bottom:0}.notebook-session-row>span:first-child{min-width:0;display:grid;gap:2px}.notebook-session-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.notebook-session-row small,.notebook-session-row time{color:var(--muted);font-size:11px}.notebook-session-row code{width:max-content;max-width:118px;overflow:hidden;text-overflow:ellipsis;padding:3px 6px;border-radius:4px;color:#3e4b49;background:var(--surface-alt);font:11px IBM Plex Mono,monospace}.notebook-session-row>span:nth-child(3){display:flex;align-items:center;gap:7px;color:var(--muted);font-weight:700}.state-dot{width:7px;height:7px;border-radius:50%;background:var(--faint)}.state-dot.active{background:var(--green);box-shadow:0 0 0 3px var(--green-soft)}.form-grid{padding:22px;display:grid;grid-template-columns:1fr 1fr;gap:18px}.field{min-width:0;display:grid;align-content:start;gap:7px;color:var(--muted);font-size:11px;font-weight:700}.field.wide{grid-column:1 / -1}.field input,.field textarea,.field select{width:100%;padding:9px 10px;border:1px solid var(--line-strong);border-radius:4px;outline:0;color:var(--ink);background:var(--surface);resize:vertical;font-size:13px;font-weight:400;line-height:1.5}.field select{height:40px}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--green);box-shadow:0 0 0 2px #087b651a}.field input:disabled{color:var(--faint);background:var(--surface-alt)}.field .code-input{font:12px/1.55 IBM Plex Mono,monospace}.notice{margin:18px 22px 0;padding:10px 12px;color:var(--green-dark);background:var(--green-soft);border-radius:4px;font-size:12px}.empty-state{min-height:120px;display:grid;place-content:center;justify-items:center;gap:8px;border:1px dashed var(--line-strong);color:var(--faint);font-size:12px}.page-loader{min-height:calc(100vh - 62px);display:grid;place-content:center;justify-items:center;gap:9px;color:var(--muted);font-size:12px}.page-loader.error{color:var(--red)}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-screen{min-height:100vh;position:relative;overflow:hidden;display:grid;place-items:center;background:#f4f7f6}.login-screen:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.58;background:linear-gradient(90deg,rgba(24,32,31,.055) 1px,transparent 1px),linear-gradient(0deg,rgba(24,32,31,.045) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(ellipse at center,black 0 42%,transparent 74%);mask-image:radial-gradient(ellipse at center,black 0 42%,transparent 74%)}.login-main{width:min(420px,calc(100% - 48px));position:relative;z-index:2;display:grid;justify-items:center;gap:26px;text-align:center}.login-lockup{display:grid;justify-items:center;gap:13px;color:var(--ink);font-size:18px;font-weight:700}.login-lockup .brand-mark{width:58px;height:58px;flex-basis:58px}.login-cats{width:min(280px,74vw);height:86px;position:relative;margin:2px 0 4px}.login-cats span{position:absolute;bottom:0;width:62px;height:44px;border:1px solid var(--line-strong);border-radius:18px 18px 16px 16px;background:var(--surface);box-shadow:0 10px 24px #18201f14}.login-cats span:before,.login-cats span:after{content:"";position:absolute;top:-13px;width:22px;height:22px;background:inherit;border:1px solid var(--line-strong);transform:rotate(45deg)}.login-cats span:before{left:7px;border-right:0;border-bottom:0}.login-cats span:after{right:7px;border-left:0;border-top:0}.login-cats span:nth-child(1){left:0;transform:rotate(-5deg);background:#fff7e7}.login-cats span:nth-child(2){left:50%;width:72px;height:52px;transform:translate(-50%);background:#f8fbfa}.login-cats span:nth-child(3){right:0;transform:rotate(5deg);background:#e8f4f1}.login-cats span:nth-child(1):before,.login-cats span:nth-child(1):after{background:#fff7e7}.login-cats span:nth-child(2):before,.login-cats span:nth-child(2):after{background:#f8fbfa}.login-cats span:nth-child(3):before,.login-cats span:nth-child(3):after{background:#e8f4f1}.google-button{min-height:44px;display:flex;justify-content:center}.auth-error{color:var(--red)!important;font-size:12px!important}@media(max-width:900px){.topbar{padding:0 16px;grid-template-columns:auto 1fr auto}.brand>span:last-child,.account-trigger .account-email{display:none}.primary-nav{justify-self:center}.primary-nav a{min-width:86px;padding:0 10px}.dashboard-grid,.progress-grid,.danger-zone{grid-template-columns:1fr;gap:38px}.practice-type-grid{grid-template-columns:1fr}.practice-type-card{min-height:124px}.question-list-head,.question-row{grid-template-columns:minmax(220px,1fr) 90px 130px 20px}.question-list-head span:nth-child(4),.question-row .time-cell{display:none}.workspace{height:auto;min-height:calc(100vh - 62px)}.workspace-grid{grid-template-columns:42% 58%;grid-template-rows:520px 230px auto}.workspace-grid.notebook-mode{grid-template-columns:42% 58%;grid-template-rows:620px 230px auto}.problem-pane{grid-row:1 / 2}.results-pane,.terminal-drawer{grid-column:1 / 3}.terminal-drawer-body{height:240px}.admin-layout{grid-template-columns:1fr}.admin-sidebar{position:static}.notebook-toolbar{grid-template-columns:1fr;align-items:stretch}.notebook-toolbar-actions{justify-content:flex-start}.notebook-connection{width:100%}}@media(max-width:640px){body{overflow-x:hidden}.topbar{height:56px;gap:6px}.brand-mark{width:28px;height:28px;flex-basis:28px}.primary-nav a{min-width:58px;padding:0 6px;font-size:0}.primary-nav svg{width:19px;height:19px}.account-trigger{width:37px;padding:0 4px;justify-content:center}.account-trigger svg{display:none}.account-avatar{width:27px;height:27px}.page{width:min(100% - 28px,1180px);padding:32px 0 50px}.page-heading{margin-bottom:28px}.page-heading h1{font-size:28px}.page-heading p{font-size:14px}.metric-strip{grid-template-columns:1fr 1fr;margin-bottom:36px}.metric{min-height:96px;padding:16px;border-bottom:1px solid var(--line)}.metric:nth-child(2){border-right:0}.metric:nth-child(3),.metric:nth-child(4){border-bottom:0}.metric strong{font-size:24px}.featured-question{grid-template-columns:42px minmax(0,1fr);padding:18px}.featured-index{width:40px;height:40px}.featured-action{grid-column:2;justify-self:start}.catalog-tools{align-items:stretch;flex-direction:column}.practice-type-grid{margin-bottom:26px}.practice-type-card{grid-template-columns:36px minmax(0,1fr) auto;min-height:118px;padding:15px;gap:11px}.practice-type-icon{width:34px;height:34px}.catalog-results-head{align-items:flex-start}.catalog-results-head h2{font-size:19px}.search-field,.segmented{width:100%}.segmented button{min-width:0;flex:1;padding:0 5px}.question-list-head{display:none}.question-list{border:0}.question-row{grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:16px 6px}.question-row>.difficulty,.question-row>.status-label,.question-row>.time-cell{display:none}.workspace{width:100%;max-width:100vw;min-height:calc(100vh - 56px);grid-template-rows:auto auto;overflow-x:hidden}.workspace-toolbar{min-height:54px;padding:8px 10px;display:grid;grid-template-columns:34px minmax(0,1fr) 34px auto;gap:6px}.back-button{width:34px;padding:0;font-size:0;justify-content:center}.workspace-title{width:100%;max-width:none}.workspace-title .difficulty,.save-state{display:none}.run-button{margin-left:0;white-space:nowrap}.workspace-grid{width:100%;max-width:100vw;display:block;overflow-x:hidden}.problem-pane{height:auto;min-height:420px;max-height:58vh;border-right:0;border-bottom:1px solid var(--line)}.problem-content{max-height:calc(58vh - 42px);padding:22px 20px 38px}.code-pane{width:100%;max-width:100vw;height:420px}.notebook-workspace-pane{width:100%;max-width:100vw;height:620px}.results-pane{width:100%;max-width:100vw;height:230px}.terminal-drawer{width:100%;max-width:100vw}.terminal-drawer-body{height:260px}.terminal-actions{grid-template-columns:1fr auto}.terminal-actions button:last-child{display:none}.terminal-input-row{grid-template-columns:minmax(0,1fr) auto}.terminal-input-row span{display:none}.test-results,.visible-tests{padding:10px 10px 18px}.test-run-summary{grid-template-columns:1fr 1fr 1fr;gap:6px}.test-run-summary>div{padding:7px 8px}.test-debug{margin:0 10px 10px}.test-debug dl,.visible-test-case dl{grid-template-columns:1fr}.visible-test-case dl>div:first-child{border-right:0}.visible-test-case dl>div:last-child{border-bottom:0}.code-editor{width:100%;max-width:100vw;overflow:hidden}.form-grid{grid-template-columns:1fr;padding:16px}.field{grid-column:1 / -1}.login-main{width:min(360px,calc(100% - 32px));gap:22px}.login-lockup .brand-mark{width:52px;height:52px;flex-basis:52px}.login-cats{width:min(250px,78vw);height:78px}.login-cats span{width:55px;height:40px}.login-cats span:nth-child(2){width:64px;height:47px}}
