@font-face{font-family:Unifont;src:url(/unifont.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}:root{--bg: #0a0c10;--fg: #c9d1d9;--dim: #8b949e;--line: #2a3140;--sel: #141b26;--accent: #ff2b6d;--rx: #29d8ff;--tx: #3ddc84;--warn: #ffb000;--err: #ff4d5e;--cell: 16px;color-scheme:dark;font-family:Unifont,ui-monospace,monospace;font-size:16px;line-height:var(--cell);color:var(--fg);background-color:var(--bg);font-synthesis:none;-webkit-font-smoothing:none;-moz-osx-font-smoothing:unset;text-rendering:optimizeSpeed}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%;background-color:var(--bg)}#root{max-width:1440px;margin:0 auto}button,input,textarea{font:inherit;color:inherit;line-height:var(--cell)}a{color:var(--rx)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}::selection{background:var(--accent);color:var(--bg)}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.app{display:flex;flex-direction:column;gap:var(--cell);min-height:100vh;padding:var(--cell) 2ch 8px}.dim{color:var(--dim)}.ok{color:var(--tx)}.rx{color:var(--rx)}.tx{color:var(--tx)}.warn{color:var(--warn)}.err{color:var(--err)}.blink,.cursor{animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.spacer{flex:1}.topbar{display:flex;flex-wrap:wrap;align-items:center;gap:4px 2ch}.topbar>*{white-space:nowrap}.brand{background:var(--accent);color:var(--bg);padding:0 1ch}.topbar .state{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}.screen{flex:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto 1fr;grid-template-areas:"spec spec" "tx log";gap:calc(var(--cell) * 1.5) 2ch;padding-top:8px}.p-spectrum{grid-area:spec}.p-log{grid-area:log}.p-tx{grid-area:tx}.panel{position:relative;min-width:0;border:1px solid var(--line);padding:var(--cell) 1ch 8px;transition:border-color .15s}.panel:focus-within{border-color:var(--accent)}.panel-title{position:absolute;top:calc(var(--cell) / -2);left:1ch;right:1ch;display:flex;justify-content:space-between;gap:2ch;pointer-events:none;color:var(--line);white-space:nowrap}.panel-title>span{background:var(--bg);padding:0 .5ch}.panel:focus-within .panel-title{color:var(--accent)}.panel-name{display:inline;margin:0;font:inherit;color:var(--fg)}.panel:focus-within .panel-name{color:var(--accent)}.p-tx{border-color:var(--dim);border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}.p-tx .panel-title,.p-tx .panel-name{color:var(--accent)}.p-tx .prompt{border-style:solid}.panel-right{color:var(--dim);overflow:hidden;text-overflow:ellipsis}.spectrum{width:100%;overflow:hidden}.spectrum canvas{display:block;image-rendering:pixelated}.p-log{display:flex;flex-direction:column}.log{flex:1 1 0;min-height:calc(var(--cell) * 16);overflow-y:auto;outline:none}.log-row{display:grid;grid-template-columns:9ch 3ch 10ch minmax(0,1fr);padding-left:6px;white-space:pre-wrap;word-break:break-word}.log-row:hover{background:var(--sel)}.log-time{color:var(--dim)}.tag-rx{background:color-mix(in srgb,var(--rx) 9%,transparent);box-shadow:inset 2px 0 var(--rx)}.tag-tx{background:color-mix(in srgb,var(--tx) 9%,transparent);box-shadow:inset 2px 0 var(--tx)}.tag-rx .log-tag,.tag-rx .log-mode{color:var(--rx)}.tag-tx .log-tag,.tag-tx .log-mode{color:var(--tx)}.tag-err .log-tag,.tag-err .log-text{color:var(--err)}.tag-warn .log-tag,.tag-warn .log-note{color:var(--warn)}.tag-sys .log-tag,.tag-sys .log-text,.log-note{color:var(--dim)}.log-action{padding:0;border:none;background:none;font:inherit;color:var(--accent);text-decoration:underline;text-underline-offset:3px;cursor:pointer}.log-action:focus-visible{outline:1px dashed var(--accent)}.busy .log-tag{animation:blink 1s steps(1) infinite}.log-mode{color:var(--dim)}.tag-rx .log-bar{color:var(--rx)}.tag-tx .log-bar{color:var(--tx)}.file-link{color:var(--rx);text-decoration:underline;text-underline-offset:3px}.field-label{display:block;padding:0;margin-top:8px;color:var(--dim)}.modes{margin:0 0 4px;padding:0;border:none;min-width:0}.modes .field-label{margin-top:0;margin-bottom:4px}.mode-row{position:relative;display:grid;grid-template-columns:4ch 10ch 11ch minmax(0,1fr) 2ch;align-items:center;min-height:24px;cursor:pointer;white-space:nowrap}.modes:disabled .mode-row{cursor:not-allowed}.mode-row input{position:absolute;opacity:0;pointer-events:none}.mode-row:hover{background:var(--sel)}.mode-row.active{background:var(--sel);color:var(--rx)}.mode-row:focus-within{outline:1px dashed var(--accent);outline-offset:-1px}.mode-row.disabled{color:var(--dim);cursor:not-allowed;text-decoration:line-through}.mode-band,.mode-rate,.mode-key{color:var(--dim)}.mode-key{text-align:right}.mode-hint{color:var(--dim);min-height:calc(var(--cell) * 2)}.mode-hint-specs{display:none}.tx-hint{margin-top:4px;color:var(--warn)}.prompt{display:flex;gap:1ch;margin-top:4px;padding:4px 1ch;border:1px dashed var(--line)}.prompt:focus-within{border-color:var(--accent)}.prompt-sign{color:var(--accent)}.prompt textarea{flex:1;min-width:0;padding:0;border:none;outline:none;resize:none;background:transparent;caret-color:var(--accent)}.prompt textarea::placeholder{color:var(--dim)}.tx-meta{color:var(--dim);margin:4px 0 8px}.tx-meta.err{color:var(--err)}.actions{display:flex;flex-wrap:wrap;gap:1ch}.btn{max-width:100%;min-height:24px;padding:4px 0;border:none;background:none;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn:hover:not(:disabled){background:var(--sel)}.btn:focus-visible{outline:1px dashed var(--accent)}.btn:disabled{color:var(--dim);cursor:not-allowed}.btn-primary:not(:disabled){background:var(--accent);color:var(--bg)}.btn-primary:hover:not(:disabled){background:var(--fg)}.key{color:var(--accent)}.btn:disabled .key{color:inherit}details>summary{cursor:pointer;list-style:none;margin-bottom:4px}details>summary::-webkit-details-marker{display:none}details>summary:before{content:"▸ "}details[open]>summary:before{content:"▾ "}details>summary:focus-visible{outline:1px dashed var(--accent)}.diagnostics{margin-top:8px}.diag{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--cell) 4ch}@media (max-width: 900px){.diag{grid-template-columns:minmax(0,1fr)}}.kv{display:grid;grid-template-columns:9ch minmax(0,1fr);align-content:start}.kv>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats{width:100%;border-collapse:collapse;table-layout:auto}.stats th,.stats td{padding:0 0 0 1ch;font-weight:400;text-align:right;white-space:nowrap}.stats th[scope=row],.stats thead th:first-child{padding-left:0;text-align:left}.stats thead th{color:var(--dim);border-bottom:1px solid var(--line);padding-bottom:4px}.stats tbody tr:first-child>*{padding-top:4px}.keybar{display:flex;flex-wrap:wrap;align-items:center;gap:4px 2ch;color:var(--dim);border-top:1px solid var(--line);padding-top:8px;white-space:nowrap;overflow:hidden}.keybar a{color:var(--dim)}.keybar a:hover{color:var(--accent)}.keybar .explain-toggle{flex-shrink:0;color:var(--accent);text-decoration:none}.hotkeys .key{margin-left:1ch}.hotkeys .key:first-child{margin-left:0}@media (max-width: 900px){.screen{flex:none;grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-template-areas:"spec" "tx" "log"}.topbar{position:sticky;top:0;z-index:2;margin:-8px 0 0;padding:max(8px,env(safe-area-inset-top)) 0 4px;background:var(--bg)}.log{flex:none;height:calc(var(--cell) * 16)}}@media (max-width: 760px){.app{padding:8px 1ch}.topbar-sub{display:none}.keybar{white-space:normal}.log{flex:none;height:calc(var(--cell) * 14)}.log-row{grid-template-columns:3ch 10ch minmax(0,1fr)}.log-time{display:none}.mode-row{grid-template-columns:4ch 10ch minmax(0,1fr) 0}.mode-band,.mode-key{display:none}}@media (max-width: 420px){.stats .col-fixed{display:none}}@media (max-width: 760px),(max-height: 500px){.modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 4px}.mode-row{grid-template-columns:minmax(0,1fr);justify-items:center;border:1px solid var(--line)}.mode-row.active{border-color:var(--rx)}.mode-radio,.mode-band,.mode-rate,.mode-key{display:none}.mode-name{max-width:100%;overflow:hidden;text-overflow:ellipsis}.mode-hint-specs{display:inline}}@media (pointer: coarse){.mode-row,.btn,details>summary{min-height:44px}.mode-row{display:grid;align-items:center}details>summary{display:flex;align-items:center;gap:1ch}.btn{padding:0 1ch}.actions{gap:4px 1ch}}@media (prefers-reduced-motion: reduce){.blink,.cursor,.busy .log-tag{animation:none}.panel{transition:none}}@media (hover: none){.hotkeys,.hotkey-hint,.key-hint,.mode-key{display:none}}
