.ws-body{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.ws-body main{flex:1;min-height:0}.ws{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);height:100%;display:grid}.ws-switch{display:none}.ws-bar{border-bottom:1px solid var(--line);background:var(--surface);flex:none;align-items:center;gap:4px;min-height:52px;padding:0 12px;display:flex}.ws-tabs{flex-wrap:wrap;flex:auto;gap:2px;display:flex}.ws-tabs [role=tab]{appearance:none;border-radius:var(--radius-xs);color:var(--muted);font:500 .9rem/1 var(--font-sans);cursor:pointer;background:0 0;border:0;padding:8px 12px}.ws-tabs [role=tab]:hover{color:var(--text)}.ws-tabs [role=tab][aria-selected=true]{background:var(--accent-wash);color:var(--accent-text)}.ws-tabs [role=tab][aria-disabled=true]{color:var(--faint);cursor:not-allowed}.ws-icon{appearance:none;border-radius:var(--radius-xs);width:34px;height:34px;color:var(--muted);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:inline-grid}a.ws-icon:hover,button.ws-icon:hover{background:var(--surface-2);color:var(--text)}.ws-icon svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ws-left{background:var(--surface);border-right:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.ws-scroll{flex:1;min-height:0;overflow:auto}.ws-doc{padding:22px 26px 40px}.ws-head{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px 14px;margin-bottom:18px;padding-bottom:16px;display:flex}.ws-head h1{letter-spacing:-.03em;flex:auto;margin:0;font-size:1.55rem}.ws-topics{flex-wrap:wrap;flex-basis:100%;gap:6px;margin:0;display:flex}.ws-doc[data-tab=description]>:is([data-part=theory],[data-part=solution]),.ws-doc[data-tab=theory]>:not([data-part=theory]),.ws-doc[data-tab=solution]>:not([data-part=solution]){display:none}.ws-doc[data-tab=description]>.ws-feedback{border-top:1px solid var(--line);color:var(--muted);margin:28px 0 0;padding-top:16px;font-size:.9rem}.ws-doc [data-part=examples] h2,.ws-doc [data-part=requirements] h2{letter-spacing:-.02em;margin:24px 0 10px;font-size:1.05rem}.examples{gap:8px;display:grid}.example{border-radius:var(--radius-sm);background:var(--surface-2);font:.86rem/1.7 var(--font-mono);color:var(--text);overflow-wrap:anywhere;margin:0;padding:10px 14px}.example span{color:var(--muted)}.hint{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.hint summary{cursor:pointer;color:var(--text);font-weight:600}.hint>:not(summary){margin-top:8px}.ws-pane{align-content:start;gap:10px;padding:22px 26px 40px;display:grid}.ws-note{border-radius:var(--radius-sm);background:var(--surface-2);width:100%;min-height:240px;box-shadow:var(--ring);color:var(--text);font:.95rem/1.6 var(--font-sans);resize:vertical;border:0;padding:12px 14px}.ws-right{background:var(--code-bg);flex-direction:column;min-height:0;display:flex}.ws-toolbar .btn{margin-left:6px}.ws-file{font:500 .82rem/1 var(--font-mono);color:var(--muted);margin-left:8px}.ws-state{font:400 .78rem/1 var(--font-mono);color:var(--faint);margin-left:auto;margin-right:8px}.ws-load{background:var(--surface);border-bottom:1px solid var(--line);color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 16px;font-size:.84rem;display:flex}.ws-load[hidden]{display:none}.ws-load-steps{font:500 .78rem/1 var(--font-mono);color:var(--faint);gap:12px;margin:0;padding:0;list-style:none;display:flex}.ws-load-steps li:before{content:"○ "}.ws-load-steps li[data-status=active]{color:var(--accent-text)}.ws-load-steps li[data-status=active]:before{content:"◐ "}.ws-load-steps li[data-status=done]{color:var(--muted)}.ws-load-steps li[data-status=done]:before{content:"● "}.ws-load-bar{appearance:none;background:var(--line);border:0;border-radius:3px;flex:120px;max-width:260px;height:6px;overflow:hidden}.ws-load-bar::-webkit-progress-bar{background:var(--line)}.ws-load-bar::-webkit-progress-value{background:var(--accent)}.ws-load-bar::-moz-progress-bar{background:var(--accent)}@media (prefers-reduced-motion:no-preference){.ws-load-bar::-webkit-progress-value{transition:width .2s}}.ws-load-detail{font:400 .78rem/1 var(--font-mono);color:var(--faint)}.ws-load[data-phase=failed] .ws-load-bar,.ws-load[data-phase=failed] .ws-load-detail,.ws-load[data-phase=failed] .ws-load-steps{display:none}.ws-load[data-phase=failed] .ws-load-text{color:var(--text)}.ws-settings{background:var(--surface);border-bottom:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:12px 20px;padding:10px 16px;font-size:.88rem;display:flex}.ws-settings select{margin-left:8px}.ws-editor{flex:1 1 0;min-height:120px;overflow:hidden}.ws-editor .cm-editor{height:100%}.ws-plain{resize:none;background:var(--code-bg);width:100%;height:100%;color:var(--code-fg);font:14px/1.75 var(--font-mono);tab-size:4;white-space:pre;border:0;padding:12px 16px;display:block;overflow:auto}.ws-editor pre.code{height:100%;padding-top:12px;font-size:14px}.ws-panel{border-top:1px solid var(--line-strong);flex-direction:column;flex:0 0 42%;min-height:220px;display:flex}.ws-panel-bar{min-height:44px}.ws-panel-bar [role=tab][aria-selected=true]{color:var(--text);box-shadow:inset 0 -2px 0 var(--accent);background:0 0;border-radius:0}.ws-panel-body{min-height:0;color:var(--code-fg);flex:1;padding:16px 18px 24px;overflow:auto}.ws-chips{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.ws-chip-wrap{display:inline-flex}.ws-chip,.ws-chip-x{appearance:none;border-radius:var(--radius-xs);color:var(--check-text);font:500 .84rem/1 var(--font-sans);cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;padding:7px 12px;display:inline-flex}.ws-chip-x{margin-left:-6px;padding:7px 8px}.ws-chip[aria-pressed=true]{color:var(--syntax-op);background:#ffffff14}.ws-chip[data-tone]:before{content:"";background:var(--fail);border-radius:50%;width:7px;height:7px}.ws-chip[data-tone=pass]:before{background:var(--pass)}.ws-fields{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;display:grid}.ws-field,.ws-block{gap:6px;display:grid}.ws-block{margin-top:12px}.ws-block-label{font:.8rem var(--font-mono);color:var(--check-text)}.ws-input,.ws-value{border-radius:var(--radius-xs);color:var(--code-fg);font:.88rem/1.5 var(--font-mono);background:#ffffff0f;border:0;padding:9px 12px}.ws-value{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.ws-values{flex-wrap:wrap;gap:8px;display:flex}.ws-values .ws-value{flex:140px}.ws-value[data-tone=pass]{color:var(--pass)}.ws-value[data-tone=fail]{color:var(--danger)}.ws-trace{border-radius:var(--radius-xs);font:.88rem/1.5 var(--font-mono);overflow-wrap:anywhere;background:#ffffff0f;margin:0 0 14px;padding:10px 12px}.ws-trace-title{color:var(--danger);white-space:pre-wrap;margin:0;font-weight:600}.ws-frames{color:var(--code-fg);gap:2px;margin:8px 0 0;padding:0;list-style:none;display:grid}.ws-frames li{flex-wrap:wrap;gap:0 10px;display:flex}.ws-frame-line{color:var(--check-text)}.ws-frames code{font:inherit;white-space:pre-wrap}.ws-frame-times{color:var(--check-text)}.ws-trace-hint{font:.88rem/1.5 var(--font-sans);color:var(--code-fg);margin:8px 0 0}.ws-panel-body>.ws-trace-hint,.ws-detail>.ws-trace-hint{margin:0 0 12px}.ws-stdout{color:var(--check-text);max-height:200px;overflow:auto}.ws-outcome{flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:14px;display:flex}.ws-outcome-title{color:var(--fail);font-size:1.05rem;font-weight:600}.ws-outcome[data-outcome=accepted] .ws-outcome-title{color:var(--pass)}.ws-solved{border-radius:var(--radius-sm);background:#73c9911a;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 14px;padding:12px 14px;display:flex}.ws-solved p{color:var(--code-fg);flex:240px;margin:0;font-size:.9rem}.ws-solved .ws-nudge{color:var(--muted);flex-basis:100%;font-size:.85rem}.ws-solved-wrap{margin:0 0 14px}.ws-solved-wrap .ws-solved{margin:0}.ws-hint{color:var(--check-text);margin:10px 0 0;font-size:.85rem}.ws-outcome .ws-hint{margin:0}.ws-empty{color:var(--check-text);margin:0;font-size:.9rem}.ws-pane .ws-empty{color:var(--muted)}.ws-link{appearance:none;color:var(--accent-text);font:inherit;cursor:pointer;background:0 0;border:0;margin-top:10px;padding:0;font-size:.85rem}.ws-subs{gap:4px;margin:0;padding:0;list-style:none;display:grid}.ws-sub{appearance:none;border-radius:var(--radius-xs);width:100%;color:var(--muted);font:.85rem/1.4 var(--font-sans);text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:14px;padding:10px 12px;display:grid}.ws-sub[aria-pressed=true]{background:var(--surface-2)}.ws-sub-outcome{color:var(--danger);font-weight:600}.ws-sub[data-outcome=accepted] .ws-sub-outcome{color:var(--pass)}.ws-sub-detail{gap:10px;margin-top:16px;display:grid}.ws-sub-detail .label{margin:8px 0 0}.ws-code{border-radius:var(--radius-sm);background:var(--code-bg);max-height:320px;overflow:auto}.ws-sub-actions{flex-wrap:wrap;gap:8px;display:flex}.ws-ctx{border-bottom:1px solid var(--line);background:var(--surface);flex:none;align-items:center;gap:10px;min-height:46px;padding:0 12px;display:flex}.ws-crumbs{min-width:0;color:var(--muted);white-space:nowrap;flex:auto;align-items:center;gap:8px;font-size:.84rem;display:flex;overflow:hidden}.ws-crumbs a{color:var(--muted);flex:none;text-decoration:none}.ws-crumbs a:hover{color:var(--accent-text)}.ws-crumbs .ws-crumb-here{text-overflow:ellipsis;min-width:0;color:var(--text);flex:0 auto;overflow:hidden}.ws-sep{color:var(--faint);flex:none}.ws-next{border-radius:var(--radius-xs);min-height:34px;color:var(--muted);font:500 .86rem/1 var(--font-sans);white-space:nowrap;box-shadow:var(--ring-strong);flex:none;align-items:center;gap:4px;padding:0 8px 0 12px;text-decoration:none;display:inline-flex}.ws-next:hover{color:var(--text);background:var(--surface-2)}.ws-next svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round}.ws-next[data-hot]{background:var(--accent);color:var(--on-accent);box-shadow:none}.ws-next[data-hot]:hover{background:var(--accent-hover)}.ws-solved-tag{color:var(--pass);font:500 .8rem/1 var(--font-mono);align-items:center;gap:6px;display:inline-flex}.ws-solved-tag[hidden]{display:none}.ws-doc[data-tab=description]>.ws-endnext{border-top:1px solid var(--line);margin:28px 0 0;padding-top:16px}.ws-endnext-step{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 14px;font-size:.9rem;display:flex}.ws-endnext-step[hidden]{display:none}.ws-endnext-label{font:500 .72rem/1 var(--font-mono);letter-spacing:.06em;color:var(--faint);flex-basis:100%}.ws-toc{border:0;border-right:1px solid var(--line-strong);background:var(--bg);width:min(340px,92vw);max-width:none;height:100dvh;max-height:none;color:var(--text);box-shadow:var(--raise-dialog);margin:0;padding:16px;position:fixed;inset:0 auto 0 0;overflow-y:auto}.ws-toc::backdrop{background:var(--backdrop)}.ws-toc-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.ws-toc-head h2{letter-spacing:-.02em;margin:0;font-size:1.05rem}@media (width<=900px){.ws-body{height:auto;display:block;overflow:visible}.ws{height:auto;display:block}.ws-switch{top:var(--nav-h);z-index:20;background:var(--bg);border-bottom:1px solid var(--line);gap:4px;padding:8px 12px;display:flex;position:sticky}.ws-switch button{appearance:none;border-radius:var(--radius-xs);color:var(--muted);font:500 .92rem/1 var(--font-sans);background:0 0;border:0;flex:1;padding:9px 12px}.ws-switch [aria-pressed=true]{background:var(--accent-wash);color:var(--accent-text)}.ws-left{border-right:0}.ws-editor{flex:none;height:60vh}.ws-panel{flex:none}.ws-panel-body{overflow:visible}.ws[data-view=question] .ws-right,.ws[data-view=code] .ws-left,.ws[data-view=code] .ws-panel,.ws[data-view=result] .ws-left,.ws[data-view=result] .ws-editor,.ws[data-view=result] .ws-settings,.ws-file,.ws-state{display:none}}@media (width<=600px){.ws-bar:not(.ws-toolbar):not(.ws-panel-bar){flex-wrap:wrap;padding-block:6px}.ws-left .ws-bar .ws-tabs{flex-basis:100%}}
