/* KeypadTest - keyboard shortcuts reference (scoped under .ks) */
.ks{box-sizing:border-box;width:100%;color:var(--text)}
.ks *,.ks *::before,.ks *::after{box-sizing:border-box}
.ks-noscript{padding:12px;border:1px solid var(--warn);border-radius:8px;color:var(--warn)}
.ks button{font:inherit;font-size:16px;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:8px 14px;min-height:44px;min-width:44px;cursor:pointer}
.ks button:hover{border-color:var(--accent)}
.ks button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:700}
.ks button:focus-visible,.ks-scroll:focus-visible,.ks-cap:focus-visible,.ks input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ks-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end}
.ks-search{flex:1 1 260px;display:flex;flex-direction:column;gap:4px;min-width:0}
.ks-search label{color:var(--muted);font-size:.95rem}
.ks-search input{width:100%;min-height:44px;padding:8px 12px;font:inherit;font-size:16px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:8px}
.ks-os{display:flex;gap:6px}
.ks-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.ks-chips button{border-radius:999px}
.ks-chips span{opacity:.75;font-weight:400;font-size:.85em}
.ks-count{margin:10px 0 0;color:var(--muted);font-size:.95rem;min-height:1.5em}
.ks-capture{margin:16px 0 0;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px}
.ks-h{margin:0 0 8px;font-size:1.25rem}
.ks-cap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:120px;padding:12px;text-align:center;background:var(--bg);border:2px dashed var(--border);border-radius:12px;overflow:hidden;cursor:text}
.ks-cap:focus{border-color:var(--accent);border-style:solid}
.ks-cap-hint{color:var(--muted);font-size:.95rem}
.ks-cap-combo{font-family:var(--mono);font-size:clamp(1.25rem,5vw,2rem);color:var(--accent);min-height:2.4rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ks-hits{list-style:none;margin:10px 0 0;padding:0;min-height:44px;display:flex;flex-direction:column;gap:6px}
.ks-hits li{padding:8px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;font-size:1rem}
.ks-hits li small{color:var(--muted);margin-left:6px}
.ks-note{margin:10px 0 0;color:var(--muted);font-size:.9rem}
.ks-tables{margin:20px 0 0}
.ks-cat{margin:0 0 20px}
.ks-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:10px}
.ks-table{width:100%;min-width:520px;border-collapse:collapse;font-size:1rem}
.ks-table th,.ks-table td{padding:10px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}
.ks-table thead th{background:var(--surface);color:var(--muted);font-size:.9rem;font-weight:600}
.ks-table tbody th{font-weight:500}
.ks-table tbody th small{display:block;margin-top:2px;color:var(--muted);font-size:.85rem;font-weight:400}
.ks-table tr:last-child>*{border-bottom:0}
.ks-table tr.ks-hit>*{background:var(--key-tested)}
.ks kbd{display:inline-block;font-family:var(--mono);font-size:.9rem;background:var(--key-bg);color:var(--key-text);border:1px solid var(--key-border);border-bottom-width:2px;border-radius:6px;padding:2px 8px;min-width:28px;text-align:center;margin:1px 0}
.ks-plus{margin:0 3px;color:var(--muted)}
.ks-na{color:var(--muted)}
.ks-empty{padding:16px;color:var(--muted);text-align:center}
.ks[data-os=win] .ks-m,.ks[data-os=mac] .ks-w{display:none}
@media (max-width:480px){.ks-table{min-width:440px}.ks-os{width:100%}.ks-os button{flex:1}}
.ks[data-os=win] .ks-table,.ks[data-os=mac] .ks-table{min-width:0}
