.progress{height:10px;background:var(--line);border-radius:6px;overflow:hidden;margin:10px 0 14px}
.progress div{height:100%;width:0;background:var(--acc);transition:width .3s}
.stage-list{list-style:none;padding:0;margin:0;display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:860px){.stage-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.stage-list button{width:100%;text-align:left;font:inherit;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;min-height:64px}
.stage-list button[aria-pressed="true"]{border-color:var(--acc);box-shadow:inset 0 0 0 1px var(--acc)}
.stage-list .n{font-size:12px;font-weight:700;color:var(--mute);letter-spacing:.05em;text-transform:uppercase;display:block}
.stage-list .t{font-weight:650;display:block}
.stage-list .s{font-size:13px;display:block;margin-top:2px}
.st-done .s{color:var(--ok)}.st-part .s{color:var(--warn)}.st-todo .s{color:var(--mute)}
.bench label,main .card label{display:block;font-weight:600;font-size:14px;margin:12px 0 6px}
.bench textarea,.bench input:not([type=file]),main .card textarea{width:100%;font:inherit;padding:10px;border:1px solid var(--field-line);border-radius:8px;background:var(--field);color:var(--ink)}
.code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace!important;font-size:14px!important;line-height:1.5;tab-size:2}
textarea.code{white-space:pre;overflow:auto}
.loop{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;padding:0;margin:4px 0 6px;counter-reset:l}.loop li{counter-increment:l}.loop li::before{content:counter(l) " · ";color:var(--acc);font-weight:700}
.results{margin-top:12px;display:grid;gap:8px}
.case{border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:14px}
.case.pass{border-color:var(--ok)}.case.fail{border-color:var(--bad)}
.case b{font-weight:650}.case code{white-space:pre-wrap;word-break:break-word}
.case .k{display:inline-block;min-width:76px;color:var(--mute)}
.log{max-height:280px;overflow:auto;padding-left:20px}.log li{margin:4px 0}
.ev td input{width:100%;min-width:70px;padding:6px;border:1px solid var(--field-line);border-radius:6px;background:var(--field);color:var(--ink);font:inherit;font-size:14px}
