.challenge-workspace{--code-bg:#1e1e1e;--code-surface:#202020;--code-raised:#2a2d2e;--code-sidebar:#181818;--code-border:#3c3c3c;--code-border-strong:#718096;--code-text:#d4d4d4;--code-text-dim:#c3c3c3;--code-text-mute:#a3a3a3;--code-text-faint:#909090;--code-accent:var(--accent);--code-accent-soft:rgba(125,249,168,0.09);--code-bad-soft:rgba(255,107,107,0.1);padding-bottom:48px}.challenge-workspace .ch-header{padding:26px 0 18px;border-bottom:0}.challenge-topline{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.challenge-workspace .ch-back{margin:0;color:var(--fg-mute);font-size:14px;text-decoration:none}.challenge-workspace .ch-back:hover{color:var(--fg)}.challenge-number{color:var(--fg-faint);font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums}.challenge-workspace .ch-title-row{align-items:end;gap:32px;margin-bottom:0}.challenge-workspace .ch-title-meta{margin-bottom:12px}.challenge-workspace .ch-title-h{max-width:820px;margin-bottom:12px;font-size:clamp(28px,4vw,40px);line-height:1.08;text-wrap:balance}.challenge-workspace .ch-blurb{max-width:70ch;margin:0;color:var(--fg-mute);font-family:var(--sans);font-size:16px;line-height:1.65;text-wrap:pretty}.challenge-metrics{display:grid;grid-template-columns:repeat(3,auto);gap:0;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.challenge-metrics>div{min-width:82px;padding:11px 14px;border-left:1px solid var(--line)}.challenge-metrics>div:first-child{border-left:0}.challenge-metrics dt{color:var(--fg-faint);font-family:var(--mono);font-size:12px;line-height:1.2}.challenge-metrics dd{margin:4px 0 0;color:var(--fg);font-family:var(--mono);font-size:12px;font-variant-numeric:tabular-nums}.challenge-metrics .is-points dd{color:var(--accent)}.challenge-brief{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;margin:2px 0 18px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.challenge-brief-step{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--accent-bd);border-radius:50%;color:var(--accent);font-family:var(--mono);font-size:12px}.challenge-brief strong{display:block;margin-bottom:3px;color:var(--fg);font-family:var(--sans);font-size:14px;font-weight:600}.challenge-brief p{margin:0;color:var(--fg-mute);font-family:var(--sans);font-size:14px;line-height:1.5;text-wrap:pretty}.challenge-brief-hint{color:var(--fg-faint);font-family:var(--mono);font-size:12px;white-space:nowrap}.challenge-review-shell{min-width:0;margin:0 0 36px;overflow:hidden;border:1px solid var(--code-border-strong);border-radius:8px;background:var(--code-surface);color:var(--code-text)}.challenge-monaco-grid{display:grid;grid-template-columns:232px minmax(0,1fr);width:100%;max-width:100%;height:min(62vh,620px);min-height:480px}.challenge-monaco-sidebar{display:flex;min-width:0;flex-direction:column;overflow:hidden;border-right:1px solid var(--code-border);background:var(--code-sidebar)}.challenge-monaco-sidebar-header{display:flex;min-height:44px;align-items:center;justify-content:space-between;padding:0 14px;border-bottom:1px solid var(--code-border);color:var(--code-text-mute);font-family:var(--sans);font-size:13px}.challenge-monaco-sidebar-header span:last-child{color:var(--code-text-faint);font-family:var(--mono);font-size:11px}.challenge-monaco-tree{min-height:0;flex:1;overflow:auto;padding:8px 0;scrollbar-color:var(--code-border-strong) transparent;scrollbar-width:thin}.challenge-monaco-folder{padding:2px 0}.challenge-monaco-folder-name{display:flex;min-height:34px;align-items:center;gap:7px;padding:0 14px;overflow:hidden;color:var(--code-text-mute);font-family:var(--mono);font-size:11px;text-overflow:ellipsis;white-space:nowrap}.challenge-monaco-file{display:grid;grid-template-columns:34px minmax(0,1fr) auto;width:100%;min-height:44px;align-items:center;gap:8px;padding:5px 12px;border:0;border-left:2px solid transparent;background:transparent;color:var(--code-text-dim);text-align:left}.challenge-monaco-file:hover{background:var(--code-raised);color:var(--code-text)}.challenge-monaco-file:disabled{cursor:wait;opacity:.65}.challenge-monaco-file.is-active{border-left-color:var(--code-accent);background:var(--code-raised);color:var(--code-text)}.challenge-monaco-file.is-active .challenge-monaco-file-type,.challenge-monaco-file.is-active .challenge-monaco-line-count{color:var(--code-text-dim)}.challenge-monaco-file:focus-visible{position:relative;z-index:1;outline-offset:-3px}.challenge-monaco-file-type{color:var(--code-text-mute);font-size:9px;font-weight:600;letter-spacing:.04em;text-align:center;text-transform:uppercase}.challenge-monaco-file-name,.challenge-monaco-file-type{overflow:hidden;font-family:var(--mono);text-overflow:ellipsis}.challenge-monaco-file-name{font-size:12px;white-space:nowrap}.challenge-monaco-line-count{color:var(--code-text-mute);font-family:var(--mono);font-size:10px;font-variant-numeric:tabular-nums}.challenge-monaco-main{display:flex;min-width:0;min-height:0;flex-direction:column;overflow:hidden;background:var(--code-bg)}.challenge-monaco-toolbar{display:flex;min-height:44px;flex:0 0 44px;align-items:center;gap:16px;padding:0 14px;border-bottom:1px solid var(--code-border);background:var(--code-sidebar)}.challenge-monaco-active-file{display:flex;min-width:0;align-items:center;gap:9px;color:var(--code-text-dim);font-family:var(--mono);font-size:12px}.challenge-monaco-active-file>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.challenge-monaco-hint{margin-left:auto;color:var(--code-text-faint);font-family:var(--sans);font-size:12px;white-space:nowrap}.challenge-monaco-mobile-files{display:none}.challenge-monaco-code{position:relative;width:100%;min-width:0;min-height:0;flex:1;overflow:hidden;background:var(--code-bg)}.challenge-monaco-code .monaco-editor,.challenge-monaco-code>section{width:100%!important;min-width:0!important;height:100%!important;border:0!important;border-radius:0!important}.challenge-monaco-code .monaco-editor{background:var(--code-bg)}.challenge-monaco-code .monaco-editor,.challenge-monaco-code .monaco-editor .overflow-guard{outline:0!important}.challenge-solution-dialog pre:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.challenge-monaco-code .monaco-scrollable-element.editor-scrollable{max-width:100%;overscroll-behavior-x:contain;overscroll-behavior-y:auto;scrollbar-color:var(--code-border-strong) var(--code-sidebar);scrollbar-width:thin;-webkit-overflow-scrolling:touch}.challenge-monaco-code textarea.inputarea{caret-color:transparent!important}.challenge-monaco-code .monaco-editor .cursors-layer,.challenge-monaco-code .monaco-editor .cursors-layer .cursor{display:none!important;visibility:hidden!important;opacity:0!important}.challenge-monaco-code .monaco-editor .selected-text{display:none!important}.challenge-monaco-code .monaco-editor .view-line,.challenge-monaco-code .monaco-editor .view-line span,.challenge-monaco-code .monaco-editor .view-lines{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.challenge-monaco-code.is-interactive .margin-view-overlays .line-numbers,.challenge-monaco-code.is-interactive .view-lines{cursor:pointer!important}.challenge-monaco-code .challenge-line--selected{background:rgba(125,249,168,.055)}.challenge-monaco-code .challenge-line--wrong{background:rgba(255,123,123,.07)}.challenge-monaco-code .challenge-line--correct{background:rgba(125,249,168,.08)}.challenge-monaco-code .challenge-line-marker--correct{border-left:2px solid var(--code-accent)}.challenge-monaco-code .challenge-line-marker--wrong{border-left:2px solid var(--bad)}.challenge-monaco-code.is-locked .margin-view-overlays .line-numbers,.challenge-monaco-code.is-locked .view-lines{cursor:default!important}.challenge-monaco-loading{display:grid;width:100%;height:100%;min-height:180px;place-items:center;background:var(--code-bg);color:var(--code-text-mute);font-family:var(--mono);font-size:12px}.challenge-monaco-touch-layer{display:none}.challenge-monaco-grid.is-touch-mode .challenge-monaco-main{overflow:visible}.challenge-monaco-code.is-touch-mode{min-height:0;max-height:none;flex:none;overflow:clip}.challenge-monaco-code.is-touch-mode .monaco-scrollable-element.editor-scrollable{overflow:clip!important;overscroll-behavior:auto}.challenge-monaco-code.is-touch-mode textarea.inputarea{font-size:16px!important}.challenge-monaco-code.is-touch-mode .challenge-monaco-touch-layer{position:absolute;z-index:2;inset:0;display:block;background:transparent;cursor:pointer;touch-action:pan-y pinch-zoom}.challenge-monaco-code.is-touch-mode.is-locked .challenge-monaco-touch-layer{cursor:default}.challenge-editor-loading{display:grid;place-items:center;color:var(--code-text-mute);font-family:var(--mono);font-size:12px}.challenge-editor-loading,.challenge-route-editor-loading{min-height:480px;background:linear-gradient(90deg,var(--code-sidebar) 0 232px,var(--code-border) 232px 233px,transparent 233px),var(--code-bg)}.challenge-route-editor-loading{margin:24px 0 36px;border:1px solid var(--code-border-strong);border-radius:8px;opacity:.4}.challenge-review-shell .ide-panel{border-color:var(--code-border);background:var(--code-sidebar)}.challenge-review-shell .ide-panel-inner{min-height:86px;padding:16px 20px}.challenge-review-shell .ide-panel-inner.is-good,.challenge-review-shell .ide-panel-inner.is-wrong{background:transparent}.challenge-review-shell .ide-panel-title{color:var(--code-text);font-family:var(--sans);font-size:15px;letter-spacing:0}.challenge-review-shell .ide-panel-d{max-width:76ch;color:var(--code-text-mute);font-family:var(--sans);font-size:14px}.challenge-review-shell .ide-panel-eye,.challenge-review-shell .ide-selected-line{color:var(--code-text-mute)}.challenge-review-shell .streak-inline-result{color:var(--code-accent)}.challenge-premium-card{margin-top:24px;padding:56px 32px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--panel);text-align:center}.challenge-solution-overlay{position:fixed;inset:0;background:rgba(4,6,9,.82)}.challenge-solution-dialog{--code-surface:#202020;--code-sidebar:#181818;--code-border:#3c3c3c;--code-border-strong:#718096;--code-accent-soft:rgba(125,249,168,0.09);border:1px solid var(--code-border-strong)!important;background:var(--code-surface)!important}.challenge-solution-dialog .success-streak{border-bottom-color:var(--code-border);background:var(--code-accent-soft)}.challenge-solution-dialog .success-share{background:var(--code-sidebar)!important}@media (max-width:900px){.challenge-monaco-grid{display:block;height:auto;min-height:0}.challenge-monaco-sidebar{display:none}.challenge-monaco-main{overflow:hidden}.challenge-monaco-mobile-files{display:grid;grid-template-columns:auto minmax(0,1fr) auto;min-height:60px;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--code-border);background:var(--code-sidebar)}.challenge-monaco-mobile-files label{color:var(--code-text-mute);font-family:var(--sans);font-size:13px}.challenge-monaco-mobile-files select{width:100%;min-width:0;min-height:44px;padding:0 36px 0 12px;border:1px solid var(--code-border-strong);border-radius:5px;background:var(--code-surface);color:var(--code-text);font-family:var(--mono);font-size:12px}.challenge-monaco-mobile-status{color:var(--code-text-mute);font-family:var(--sans);font-size:12px;white-space:nowrap}.challenge-monaco-hint,.challenge-monaco-toolbar{display:none}.challenge-monaco-code{height:clamp(360px,58dvh,540px);flex:none}.challenge-editor-loading{min-height:clamp(460px,68dvh,620px);background:var(--code-bg)}.challenge-route-editor-loading{min-height:460px;background:var(--code-bg)}}@media (max-width:700px){.challenge-workspace{padding-bottom:calc(24px + env(safe-area-inset-bottom, 0px))}.challenge-workspace .ch-header{padding-top:18px}.challenge-topline{margin-bottom:18px}.challenge-workspace .ch-title-row{gap:18px}.challenge-metrics{width:100%}.challenge-metrics>div{flex:1;min-width:0;padding:9px 10px}.challenge-brief{grid-template-columns:auto minmax(0,1fr);gap:12px}.challenge-brief-hint{display:none}.challenge-review-shell{width:calc(100% + 40px);margin-right:-20px;margin-left:-20px;border-right:0;border-left:0;border-radius:0}.challenge-monaco-mobile-files{grid-template-columns:minmax(0,1fr) auto;min-height:52px;gap:8px;padding:4px 12px}.challenge-monaco-mobile-status{padding:5px 8px;border:1px solid var(--code-border);border-radius:999px;color:var(--code-text-dim);font-size:11px;white-space:nowrap}.challenge-monaco-mobile-files select{border-color:var(--code-border-strong);background-color:var(--code-bg);font-size:16px}.challenge-monaco-code{height:clamp(300px,48dvh,420px)}}@media (max-width:600px){.challenge-monaco-main{overflow:visible}.challenge-monaco-code{min-height:0;max-height:none;flex:none;overflow:clip}.challenge-monaco-code .monaco-scrollable-element.editor-scrollable{overflow:clip!important;overscroll-behavior:auto}.challenge-monaco-code textarea.inputarea{font-size:16px!important}.challenge-monaco-touch-layer{position:absolute;z-index:2;inset:0;display:block;background:transparent;cursor:pointer;touch-action:pan-y pinch-zoom}.challenge-monaco-code.is-locked .challenge-monaco-touch-layer{cursor:default}.challenge-workspace.has-mobile-selection{padding-bottom:calc(132px + env(safe-area-inset-bottom, 0px))}.challenge-review-shell>.ide-panel.is-idle{display:none}.challenge-review-shell>.ide-panel.is-selected{position:fixed;z-index:40;right:0;bottom:0;left:0;padding-bottom:env(safe-area-inset-bottom,0);border-top:1px solid var(--code-border-strong);background:var(--code-sidebar)}.challenge-review-shell>.ide-panel.is-selected .ide-panel-inner{display:grid;min-height:0;grid-template-columns:minmax(0,1fr);gap:8px;margin:0;padding:10px 12px 12px}.challenge-review-shell>.ide-panel.is-selected .ide-panel-l{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px}.challenge-review-shell>.ide-panel.is-selected .ide-panel-inner:not(.is-wrong) .ide-panel-eye{display:none}.challenge-review-shell>.ide-panel.is-selected .ide-panel-eye,.challenge-review-shell>.ide-panel.is-selected .ide-selected-line{margin:0;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.challenge-review-shell>.ide-panel.is-selected .ide-panel-r{display:grid;width:100%;grid-template-columns:minmax(84px,.7fr) minmax(0,1.3fr);gap:8px}.challenge-review-shell>.ide-panel.is-selected .ide-panel-r .btn,.challenge-review-shell>.ide-panel.is-selected .ide-panel-r a.btn{width:100%;min-height:44px;justify-content:center}}@media (max-width:640px){.challenge-solution-dialog .success-share-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch!important}.challenge-solution-dialog .success-share-actions>button{width:100%;justify-content:center}.challenge-solution-dialog .success-share-copy{grid-column:1/-1;width:100%;min-width:0!important}.challenge-solution-dialog .success-share-copy input{width:100%;min-width:0}}