/* KeypadTest - keyboard symbols reference (scoped under .ky) */
.ky{box-sizing:border-box;width:100%;color:var(--text)}
.ky *,.ky *::before,.ky *::after{box-sizing:border-box}
.ky-noscript{padding:12px;border:1px solid var(--warn);border-radius:8px;color:var(--warn)}
.ky 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}
.ky button:hover{border-color:var(--accent)}
.ky button:focus-visible,.ky-scroll:focus-visible,.ky-cap:focus-visible,.ky input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ky-search{display:flex;flex-direction:column;gap:4px}
.ky-search label{color:var(--muted);font-size:.95rem}
.ky-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}
.ky-count{margin:6px 0 0;color:var(--muted);font-size:.95rem;min-height:1.5em}
.ky-capture{margin:16px 0 0;padding:12px;background:var(--surface);border:1px solid var(--border);border-radius:12px}
.ky-h{margin:0 0 8px;font-size:1.25rem}
.ky-cap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:140px;padding:12px;text-align:center;background:var(--bg);border:2px dashed var(--border);border-radius:12px;overflow:hidden;cursor:text}
.ky-cap:focus{border-color:var(--accent);border-style:solid}
.ky-cap-hint{color:var(--muted);font-size:.95rem}
.ky-cap-char{font-family:var(--mono);font-size:clamp(2rem,9vw,3.5rem);line-height:1.2;color:var(--accent);min-height:4.2rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ky-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px;margin:10px 0 0}
.ky-info div{background:var(--surface-2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;min-height:72px}
.ky-info dt{color:var(--muted);font-size:.85rem}
.ky-info dd{margin:2px 0 0;font-family:var(--mono);font-size:1rem;overflow-wrap:anywhere}
.ky-note{margin:10px 0;color:var(--muted);font-size:.9rem}
.ky-sec{margin:20px 0 0}
.ky-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:10px}
.ky-table{width:100%;min-width:480px;border-collapse:collapse;font-size:1rem}
.ky-table-sp{min-width:640px}
.ky-table th,.ky-table td{padding:8px 12px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--border)}
.ky-table thead th{background:var(--surface);color:var(--muted);font-size:.9rem;font-weight:600}
.ky-table tr:last-child>*{border-bottom:0}
.ky-table td small{display:block;margin-top:2px;color:var(--muted);font-size:.85rem}
.ky-ch{font-family:var(--mono);font-size:1.5rem;font-weight:700;color:var(--accent);width:72px;text-align:center!important}
.ky 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}
.ky-plus{margin:0 3px;color:var(--muted)}
.ky-na{color:var(--muted)}
.ky-empty{padding:16px;color:var(--muted);text-align:center}
.ky-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:10px 18px;border-radius:999px;background:var(--accent);color:var(--bg);font-weight:700;opacity:0;pointer-events:none;transition:opacity .15s;z-index:50}
.ky-toast.on{opacity:1}
@media (max-width:480px){.ky-table{min-width:420px}.ky-table-sp{min-width:600px}}
