.wrap{max-width:1100px}
h2{margin-bottom:12px}
p{line-height:1.6}
.muted,small{color:var(--muted)}
section{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px;margin:18px 0}
.row{display:flex;gap:12px;align-items:end;flex-wrap:wrap}
label{display:flex;flex-direction:column;gap:6px;font-size:14px}
input,select,button{font:inherit;border:1px solid var(--line);border-radius:6px;padding:9px;background:var(--sunk);color:inherit}
button{cursor:pointer}
button.primary{background:var(--accent);color:#fff;border-color:var(--accent);font-weight:600}
button{background:var(--surface)}
button:disabled,select:disabled,input:disabled{opacity:.5;cursor:not-allowed}
input[type=number]{width:170px}
#key{width:min(350px,80vw)}
.status{white-space:pre-wrap;color:var(--info)}
.status.error{color:var(--bad)}
.scroll{overflow:auto;max-height:470px;border:1px solid var(--line);border-radius:8px}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{text-align:left;padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
th{background:var(--sunk);position:sticky;top:0}
td.num,th.num{text-align:right}
td small{margin-left:6px}
tr.out td{color:var(--muted)}
.stats{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.stat{background:var(--sunk);padding:14px;border-radius:8px;flex:1;min-width:190px}
.stat b{display:block;font-size:22px;margin:8px 0}
.result b{font-size:26px}
details{margin-top:12px}
button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
