.kt{display:flex;flex-direction:column;gap:12px;max-width:1280px;width:100%;margin:0 auto}
.kt-bar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.kt-cap{margin:0;flex:1 1 320px;padding:10px 14px;border:1px dashed var(--line);border-radius:var(--r);color:var(--muted);font-size:.9rem;background:var(--panel)}
.kt-cap.on{border-style:solid;border-color:var(--accent);color:var(--fg)}
.kt-wrap{width:100%}
.kt-board{position:relative;margin:0 auto;width:calc(var(--w,18.25)*var(--u,40px));height:calc(6.5*var(--u,40px));padding:0;border-radius:14px;outline:none;--u:40px}
.kt-board:focus-visible{outline:2px solid var(--accent2);outline-offset:8px}
.kt-board.cap{outline:2px solid var(--accent);outline-offset:8px}
.kk{position:absolute;left:calc(var(--x)*var(--u));top:calc(var(--y)*var(--u));width:calc(var(--kw,1)*var(--u) - 4px);height:calc(var(--kh,1)*var(--u) - 4px);margin:2px;display:flex;align-items:center;justify-content:center;text-align:center;border:1px solid var(--line);border-bottom-width:3px;border-radius:calc(var(--u)*.14);background:var(--panel);color:var(--fg);font:600 calc(var(--u)*.27)/1.05 var(--font);overflow:hidden;user-select:none;transition:background .05s}
.kk.tested{background:color-mix(in srgb,var(--accent) 28%,var(--panel));border-color:color-mix(in srgb,var(--accent) 60%,var(--line))}
.kk.down{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);transform:translateY(2px);border-bottom-width:1px}
.kt-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin:0}
.kt-stats>div{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:8px 12px;min-width:0}
.kt-stats dt{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.kt-stats dd{margin:2px 0 0;font:700 1.25rem/1.2 var(--mono);overflow-wrap:anywhere}
.kt-wide{grid-column:span 2}
.kt-hint,.kt-other{margin:0;color:var(--muted);font-size:.88rem}
.kt-h{margin:8px 0 0;font-size:.95rem}
.kt-log-wrap{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.kt-log{width:100%;border-collapse:collapse;font:.82rem/1.4 var(--mono)}
.kt-log th,.kt-log td{text-align:left;padding:4px 10px;white-space:nowrap}
.kt-log thead th{position:sticky;top:0;background:var(--panel2);color:var(--muted);font-weight:600}
.kt-log tbody tr:nth-child(even){background:color-mix(in srgb,var(--panel2) 50%,transparent)}
.kt-log .up{color:var(--muted)}
.kt-empty{margin:0;padding:12px;color:var(--muted);font-size:.88rem}
