[data-tool=keyboard-tester] kbd{border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);padding:1px 5px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.9em}[data-tool=keyboard-tester] .kt-controls{gap:var(--space-md);flex-wrap:wrap;display:flex}[data-tool=keyboard-tester] .kt-field{gap:var(--space-2xs);border:0;flex-direction:column;min-inline-size:0;margin:0;padding:0;display:flex}[data-tool=keyboard-tester] .kt-field .t-seg{flex-wrap:wrap;max-inline-size:100%}[data-tool=keyboard-tester] .kt-field .t-seg label{padding-inline:var(--space-xs)}[data-tool=keyboard-tester] .kt-actions [hidden]{display:none}[data-tool=keyboard-tester] .kt-banner{align-items:center;gap:var(--space-2xs);font-size:var(--text-sm);flex-wrap:wrap;margin:0;display:flex}[data-tool=keyboard-tester] .kt-banner[hidden]{display:none}[data-tool=keyboard-tester] .kt-stage{border:2px dashed var(--color-line-strong);border-radius:var(--radius-lg);background:var(--color-surface-2);padding:var(--space-sm);cursor:pointer;outline:none;min-inline-size:0}[data-tool=keyboard-tester] .kt-stage[data-active=true]{border-style:solid;border-color:var(--color-accent);cursor:default}[data-tool=keyboard-tester] .kt-stage:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}[data-tool=keyboard-tester] .kt-scroll{overscroll-behavior-x:contain;overflow-x:auto}[data-tool=keyboard-tester] .kt-board{inline-size:100%;min-inline-size:640px;aspect-ratio:var(--kt-w) / var(--kt-h);-webkit-user-select:none;user-select:none;position:relative;container-type:inline-size}[data-tool=keyboard-tester] .kt-key{box-sizing:border-box;padding:.22%;position:absolute}[data-tool=keyboard-tester] .kt-cap{text-align:center;box-sizing:border-box;border:1px solid var(--color-line-strong);background:var(--color-surface);block-size:100%;inline-size:100%;color:var(--color-ink);transition:background-color 80ms var(--ease-out), border-color 80ms var(--ease-out);border-radius:4px;justify-content:center;align-items:center;padding:1px;font-size:clamp(8px,1.45cqw,14px);font-weight:600;line-height:1.1;display:flex;overflow:hidden}[data-tool=keyboard-tester] .kt-key.is-tested .kt-cap{background:var(--color-accent-soft);border-color:var(--color-accent)}[data-tool=keyboard-tester] .kt-key.is-warn .kt-cap{box-shadow:0 0 0 2px var(--color-warn)}[data-tool=keyboard-tester] .kt-key.is-down .kt-cap{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-on-accent);translate:0 1px}[data-tool=keyboard-tester] .kt-legend{align-items:center;gap:var(--space-2xs) var(--space-sm);margin:var(--space-xs) 0 0;flex-wrap:wrap;display:flex}[data-tool=keyboard-tester] .kt-sw{border:1px solid var(--color-line-strong);vertical-align:-2px;border-radius:3px;block-size:14px;inline-size:14px;margin-inline-end:-4px;display:inline-block}[data-tool=keyboard-tester] .kt-sw-down{background:var(--color-accent);border-color:var(--color-accent)}[data-tool=keyboard-tester] .kt-sw-tested{background:var(--color-accent-soft);border-color:var(--color-accent)}[data-tool=keyboard-tester] .kt-sw-warn{background:var(--color-surface);box-shadow:0 0 0 2px var(--color-warn)}[data-tool=keyboard-tester] .kt-grid{gap:var(--space-md);grid-template-columns:minmax(0,3fr) minmax(0,2fr);display:grid}@media (width<=860px){[data-tool=keyboard-tester] .kt-grid{grid-template-columns:minmax(0,1fr)}}[data-tool=keyboard-tester] .kt-h3{margin:0 0 var(--space-xs);font-family:var(--font-display);font-size:var(--text-lg);line-height:1.2}[data-tool=keyboard-tester] .kt-stat-grid{gap:var(--space-sm);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}@media (width<=560px){[data-tool=keyboard-tester] .kt-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}[data-tool=keyboard-tester] .kt-stat-grid .t-stat b{font-size:var(--text-xl);font-variant-numeric:tabular-nums}[data-tool=keyboard-tester] .kt-held{margin:var(--space-sm) 0 0}[data-tool=keyboard-tester] .kt-honest{margin:var(--space-xs) 0 0}[data-tool=keyboard-tester] .kt-details{border-block-start:1px solid var(--color-line);padding-block:var(--space-2xs)}[data-tool=keyboard-tester] .kt-details:first-of-type{border-block-start:0}[data-tool=keyboard-tester] .kt-details summary{min-block-size:var(--control-h);font-size:var(--text-sm);cursor:pointer;align-items:center;font-weight:600;display:flex}[data-tool=keyboard-tester] .kt-list{margin:0 0 var(--space-xs);font-size:var(--text-xs);overflow-wrap:anywhere;max-block-size:180px;line-height:1.6;overflow:auto}[data-tool=keyboard-tester] .kt-cant{margin:0 0 var(--space-xs);font-size:var(--text-sm);flex-direction:column;gap:6px;padding-inline-start:1.1em;display:flex}[data-tool=keyboard-tester] .kt-logscroll{border:1px solid var(--color-line);border-radius:var(--radius-md);background:var(--color-surface);max-block-size:380px;overflow:auto}[data-tool=keyboard-tester] .kt-log{min-inline-size:620px}[data-tool=keyboard-tester] .kt-log th,[data-tool=keyboard-tester] .kt-log td{inline-size:auto;padding:6px var(--space-xs);white-space:nowrap;font-variant-numeric:tabular-nums}[data-tool=keyboard-tester] .kt-log thead th{background:var(--color-surface-2);color:var(--color-ink);position:sticky;inset-block-start:0}[data-tool=keyboard-tester] .kt-log td.kt-mono,[data-tool=keyboard-tester] .kt-log td:nth-child(3),[data-tool=keyboard-tester] .kt-log td:nth-child(4){font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}[data-tool=keyboard-tester] .kt-log tr.is-up td{color:var(--color-muted)}[data-tool=keyboard-tester] .kt-log tr.is-warn td:last-child{color:var(--color-warn);font-weight:700}[data-tool=keyboard-tester] .kt-empty td{white-space:normal;color:var(--color-muted)}[data-tool=keyboard-tester]:fullscreen{background:var(--color-paper);padding:var(--space-md);overflow:auto}@media (prefers-reduced-motion:reduce){[data-tool=keyboard-tester] .kt-cap{transition:none}[data-tool=keyboard-tester] .kt-key.is-down .kt-cap{translate:none}}
