:root{color-scheme:dark;--bg: #0e1116;--panel: #171c26;--text: #e8edf6;--muted: #93a0b4;--line: #2c3548;--accent: #d7e4ff;font-family:Hiragino Sans,BIZ UDPGothic,Yu Gothic UI,Yu Gothic,Noto Sans JP,WenQuanYi Micro Hei,Droid Sans Fallback,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text)}#app{max-width:880px;margin:0 auto;padding:20px 16px 40px}.top h1{margin:0;font-size:22px;font-weight:700;letter-spacing:.04em}.top p{margin:4px 0 16px;color:var(--muted);font-size:13px}.layout{display:flex;gap:16px;align-items:flex-start;justify-content:center;flex-wrap:wrap}.panel,.settings{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px}.panel{min-width:148px}.panel h2,.settings summary{margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--accent)}canvas{display:block;border-radius:6px;background:#10141c;box-shadow:0 0 0 1px #2a3346}.stats{margin:12px 0;display:grid;gap:6px}.stats div{display:flex;justify-content:space-between;gap:12px;font-variant-numeric:tabular-nums}.stats dt{color:var(--muted);font-size:12px}.stats dd{margin:0;font-weight:600}button,summary{cursor:pointer}button{background:#232a3a;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 10px;font:inherit;font-size:13px}button:hover{border-color:#8ea2c4}button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid #9db7e8;outline-offset:2px}.status,.hint{color:var(--muted);font-size:12px;line-height:1.5}.settings{margin-top:16px}.settings summary{margin:0}.tuning{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-top:12px}label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted)}input[type=number]{background:#10141c;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font:inherit}#bindings{list-style:none;padding:0;margin:8px 0 12px;display:grid;gap:6px}#bindings li{display:grid;grid-template-columns:9em 1fr auto;gap:8px;align-items:center;font-size:13px}#bindings .keys{font-variant-numeric:tabular-nums;color:var(--accent)}.row{display:flex;flex-wrap:wrap;gap:8px}.check{flex-direction:row;align-items:center;margin-top:10px;color:var(--text);font-size:13px}.check input{margin:0}.field{margin-top:10px}select{background:#10141c;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font:inherit}#pattern-hint{margin-top:14px}#pattern-hint h2{margin-bottom:6px}#pattern-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:240px;overflow:auto}#pattern-list button{width:100%;text-align:left}#pattern-list button[aria-pressed=true]{border-color:#ffe08a}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
