.k2b{--k2-ok-bg: var(--accent-soft);--k2-ok-fg: var(--accent);--k2-ok-line: color-mix(in srgb, var(--accent) 42%, var(--border));--k2-bad-fg: #c0392b;--k2-bad-bg: #fbe7e5;--k2-bad-line: #e3a49c;--k2-cap: var(--bg);--k2-cap-shadow: 0 1px 0 var(--border), 0 2px 3px rgb(0 0 0 / 7%);display:flex;flex-direction:column;gap:1.6rem;margin:0 0 3rem;font-size:.95rem}:root[data-theme=dark] .k2b{--k2-bad-fg: #f2626b;--k2-bad-bg: #35191c;--k2-bad-line: #6b2b30;--k2-cap: color-mix(in srgb, var(--bg-soft) 86%, var(--text) 14%);--k2-cap-shadow: 0 1px 0 rgb(0 0 0 / 40%), 0 2px 4px rgb(0 0 0 / 35%)}.k2b .k2b-head{display:flex;flex-direction:column;gap:.4rem}.k2b .eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.k2b .k2b-title{margin:.4rem 0 0}.k2b .intro{color:var(--text-soft);margin:0;max-width:var(--reading)}.k2b .controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem 1.6rem;background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:.9rem 1.1rem}.k2b .ctl{display:flex;flex-direction:column;gap:.3rem}.k2b .ctl-k{font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--text-faint)}.k2b select{font-family:var(--font);font-size:.9rem;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:7px;padding:5px 9px;cursor:pointer}.k2b select:hover{border-color:var(--accent)}.k2b .ctl-toggle{gap:.4rem}.k2b .switch{display:flex;align-items:center;gap:.45rem;cursor:pointer}.k2b .switch input{accent-color:var(--accent);width:15px;height:15px;cursor:pointer}.k2b .switch-label{font-size:.86rem;color:var(--text-soft)}.k2b .capture-status{margin:-.7rem 0 0;font-size:.84rem;line-height:1.5;color:var(--text-soft);max-width:var(--reading);border-left:2px solid var(--border);padding-left:.8rem}.k2b .capture-status b{color:var(--text)}.k2b .capture-status.on{border-left-color:var(--accent);color:var(--text)}.k2b .stop-capture{display:none;align-self:flex-start;margin-top:.5rem;font-family:var(--font);font-size:.82rem;cursor:pointer;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:7px;padding:5px 13px}.k2b.capturing .stop-capture{display:block}.k2b .ctl-blurb{margin:0;font-size:.84rem;color:var(--text-faint);flex:1 1 14rem;min-width:12rem}.k2b .primer{background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:1rem 1.1rem}.k2b .primer-head{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap;margin-bottom:.7rem}.k2b .primer-head h2{margin:0;font-size:1.05rem}.k2b .primer-note{font-size:.75rem;color:var(--text-faint)}.k2b .primer ul{margin:0;padding:0;list-style:none;display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(290px,1fr))}.k2b .primer li{display:flex;gap:.55rem;margin:0;font-size:.88rem;line-height:1.5;color:var(--text-soft)}.k2b .primer li b{color:var(--text)}.k2b .dot{flex:none;width:5px;height:5px;border-radius:50%;background:var(--accent);margin-top:.6em}.k2b .live-bar{display:flex;gap:1.4rem;flex-wrap:wrap;align-items:center;background:var(--bg-soft);border:1px solid var(--border);border-radius:10px;padding:.6rem 1rem}.k2b .live-bar .cell{display:flex;align-items:baseline;gap:.5rem}.k2b .live-bar .k{font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--text-faint)}.k2b .live-bar .v{font-size:.9rem;font-weight:700}.k2b .k2b-tabs{display:flex;gap:.1rem;flex-wrap:wrap;border-bottom:1px solid var(--border)}.k2b .tab{font-family:var(--font);font-size:.9rem;font-weight:700;background:none;border:none;border-bottom:2px solid transparent;border-radius:0;color:var(--text-soft);padding:.5rem .85rem;margin-bottom:-1px;cursor:pointer;display:flex;align-items:center;gap:.5rem}.k2b .tab:hover{color:var(--text)}.k2b .tab[aria-pressed=true]{color:var(--accent);border-bottom-color:var(--accent)}.k2b .tab .num{font-size:.72rem;font-weight:400;color:var(--text-faint)}.k2b .tab[aria-pressed=true] .num{color:var(--accent)}.k2b .board-shell{background:var(--bg-soft);border:1px solid var(--border);border-radius:12px;padding:.85rem;overflow-x:auto}.k2b .board{display:grid;grid-template-columns:repeat(var(--cols, 64),minmax(0,1fr));grid-auto-rows:40px;gap:5px;min-width:calc(var(--cols, 64) * 10px)}.k2b .key{padding:2px 3px;border:1px solid var(--border);border-radius:6px;background:var(--k2-cap);box-shadow:var(--k2-cap-shadow);color:var(--text-soft);font-size:.7rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;line-height:1.15;overflow:hidden;transition:background .06s linear,color .06s linear,border-color .06s linear,transform .06s linear}.k2b .key .top{font-size:.64rem;color:var(--text-faint)}.k2b .key .lg{font-size:.82rem;font-weight:700;color:var(--text)}.k2b .key.wide .lg{font-size:.7rem}.k2b .key.seen{background:var(--k2-ok-bg);border-color:var(--k2-ok-line)}.k2b .key.seen .lg,.k2b .key.seen .top{color:var(--k2-ok-fg)}.k2b .key.held{background:var(--accent);border-color:var(--accent);transform:translateY(1px);box-shadow:none}.k2b .key.held .lg,.k2b .key.held .top{color:#fff}.k2b .key.quiet{background:transparent;border-style:dashed;box-shadow:none}.k2b .key.quiet .lg{color:var(--text-faint);font-weight:400}.k2b .groups{display:flex;flex-direction:column;gap:.9rem}.k2b .group-head{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-bottom:.35rem}.k2b .group-name{font-size:.9rem;font-weight:700}.k2b .group-hint{font-size:.78rem;color:var(--text-faint)}.k2b .group-count{font-size:.72rem;color:var(--accent);margin-left:auto}.k2b .panel{background:var(--bg-soft);border:1px solid var(--border);border-radius:12px;padding:1.1rem 1.2rem;display:flex;flex-direction:column;gap:1rem}.k2b .panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.k2b .panel h2{margin:0;font-size:1.1rem}.k2b .panel h3{margin:0 0 .45rem;font-size:.9rem}.k2b .note{color:var(--text-soft);font-size:.86rem;margin:.25rem 0 0;max-width:var(--reading)}.k2b .note:empty{display:none}.k2b .note b{color:var(--text)}.k2b .readout{display:flex;gap:1.8rem;flex-wrap:wrap;align-items:baseline}.k2b .metric{display:flex;flex-direction:column}.k2b .metric .n{font-size:1.9rem;font-weight:700;line-height:1}.k2b .metric .l{font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--text-faint);margin-top:.35rem}.k2b .metric.good .n{color:var(--accent)}.k2b .metric.warn .n{color:var(--k2-bad-fg)}.k2b .chips{display:flex;flex-wrap:wrap;gap:5px}.k2b .chip{font-size:.78rem;padding:2px 8px;border-radius:999px;background:var(--bg);border:1px solid var(--border);color:var(--text-soft)}.k2b .chip.live{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:700}.k2b .chip.ok{background:var(--k2-ok-bg);border-color:var(--k2-ok-line);color:var(--k2-ok-fg)}.k2b .btn{font-family:var(--font);font-size:.82rem;background:var(--bg);color:var(--text-soft);border:1px solid var(--border);border-radius:7px;padding:4px 12px;cursor:pointer;transition:color .15s ease,border-color .15s ease}.k2b .btn:hover{color:var(--text);border-color:var(--accent)}.k2b :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.k2b .slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem}.k2b .slot{background:var(--bg);border:1px solid var(--border);border-radius:9px;padding:.65rem .75rem;display:flex;flex-direction:column;gap:.25rem}.k2b .slot .pos{font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint)}.k2b .slot .cap{font-size:.95rem;font-weight:700}.k2b .slot .res{font-size:.76rem;color:var(--text-soft)}.k2b .slot.ok{border-color:var(--k2-ok-line);background:var(--k2-ok-bg)}.k2b .slot.ok .res{color:var(--k2-ok-fg);font-weight:700}.k2b .slot.bad{border-color:var(--k2-bad-line);background:var(--k2-bad-bg)}.k2b .slot.bad .res{color:var(--k2-bad-fg);font-weight:700}.k2b .verdict{border:1px solid var(--border);border-radius:9px;background:var(--bg);color:var(--text-soft);padding:.7rem .9rem;font-size:.9rem}.k2b .verdict.ok{border-color:var(--k2-ok-line);background:var(--k2-ok-bg);color:var(--k2-ok-fg)}.k2b .verdict.bad{border-color:var(--k2-bad-line);background:var(--k2-bad-bg);color:var(--k2-bad-fg)}.k2b .stream{display:flex;flex-wrap:wrap;gap:4px}.k2b .ch{width:30px;height:34px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text-soft);font-size:.9rem}.k2b .ch.now{border-color:var(--accent);color:var(--accent);font-weight:700;box-shadow:0 0 0 2px var(--accent-soft)}.k2b .ch.pass{border-color:var(--k2-ok-line);background:var(--k2-ok-bg);color:var(--k2-ok-fg)}.k2b .ch.fail{border-color:var(--k2-bad-line);background:var(--k2-bad-bg);color:var(--k2-bad-fg)}.k2b .tbl-scroll{overflow-x:auto}.k2b table{margin:0;font-size:.86rem}.k2b td.y{color:var(--k2-ok-fg);font-weight:700}.k2b td.x{color:var(--k2-bad-fg);font-weight:700}.k2b .k2b-foot{border-top:1px solid var(--border);padding-top:.9rem;color:var(--text-faint);font-size:.82rem}.k2b .k2b-foot p{margin:0 0 .4rem;max-width:var(--reading)}.k2b .hidden{display:none!important}@media(max-width:640px){.k2b .readout{gap:1.2rem}.k2b .metric .n{font-size:1.5rem}}@media(prefers-reduced-motion:reduce){.k2b .key{transition:none}}
