:root{--bg: #0d0d0d;--panel: #1a1a1a;--panel-2: #222;--fg: #e8e8e8;--muted: #9a9a9a;--accent: #c0392b;--led-bg: #e9a83a;--led-fg: #000;--border: #2a2a2a}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;height:100%;overflow:hidden;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}#app{height:100svh;display:flex;flex-direction:column;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);box-sizing:border-box}.topbar{display:flex;gap:8px;padding:8px;background:var(--bg);border-bottom:1px solid var(--border)}.topbar button{background:var(--panel);color:var(--fg);border:1px solid var(--border);border-radius:8px;height:27px;width:48px;font-size:18px;display:inline-flex;align-items:center;justify-content:center}.topbar .server{flex:1;min-width:0;background:var(--panel);color:var(--fg);border:1px solid var(--border);border-radius:8px;height:40px;padding:0 12px;text-align:center;font-size:14px;cursor:pointer}.topbar .power{color:var(--accent);border-color:var(--accent);height:27px;width:auto;padding:0 8px;font-size:14px;align-self:center;display:inline-flex;align-items:center;justify-content:center}.topbar .power svg{width:16px;height:16px}.topbar .conn-dot{margin-left:auto;align-self:center}.topbar .source-btn{width:auto;padding:0 10px;height:27px;font-size:12px;font-weight:500;white-space:nowrap;align-self:center}.topbar .menu.installable{border-color:#2ecc71;color:#2ecc71;animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #2ecc7100}50%{box-shadow:0 0 8px #2ecc7199}}main{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}main>*{flex-shrink:0}.fft-wrap{margin:4px 8px;border:1px solid #555;border-radius:10px;overflow:hidden;background:#000;flex:1 1 0;min-height:40px;display:flex;position:relative;box-shadow:0 0 4px #7878782e}.fft{display:block;width:100%;flex:1;min-height:0;background:#000;image-rendering:pixelated;touch-action:none}.fnrow{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:4px 6px;background:var(--bg);border-bottom:1px solid var(--border)}.fnbtn,.kpbtn{background:linear-gradient(180deg,#2a2a2a,#1c1c1c 60%,#161616);color:var(--fg);border:1px solid #2a2a2a;border-radius:6px;box-shadow:inset 0 1px #ffffff0d,inset 0 -1px #0006,0 1px #00000080;transition:filter 80ms ease,box-shadow 80ms ease}.fnbtn:active,.kpbtn:active{filter:brightness(.7);transform:translateY(1px)}.fnbtn{height:27px;font-size:12px;font-weight:500}.fnbtn[data-bw],#btnFilters,.fnrow-half .fnbtn{height:17px;font-size:11px}.fnrow.fnrow-half-7{grid-template-columns:repeat(7,1fr)}.fnrow.fnrow-half-8{grid-template-columns:repeat(9,1fr)}.fnrow.fnrow-half-9{grid-template-columns:repeat(10,1fr)}.fnrow.fnrow-half-10{grid-template-columns:repeat(11,1fr)}.fnrow.fnrow-half-11{grid-template-columns:repeat(12,1fr)}.fnrow.fnrow-half-12{grid-template-columns:repeat(13,1fr)}.fnbtn.fnbtn-half{height:17px;font-size:11px}#btnTranscribe,#btnLangFrom,#btnLangTo,#btnRec,#btnRecordings,.fnrow-8 .fnbtn[data-mode=drm]{height:22px;font-size:11px}.fnrow.fnrow-7{grid-template-columns:repeat(7,1fr)}.fnrow.fnrow-8,.fnrow.fnrow-9{grid-template-columns:repeat(9,1fr)}.fnbtn.active,.kpbtn.active{border-color:var(--led-bg);color:var(--led-bg)}.led{background:radial-gradient(ellipse at 30% 20%,#f3c466,#e9a83a 60%,#b27e21);color:var(--led-fg);margin:6px 8px;border-radius:10px;padding:6px 10px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-weight:700;box-shadow:inset 0 2px 4px #00000040,inset 0 -1px 2px #00000026,0 1px 2px #0009;text-shadow:0 1px 0 rgba(255,255,255,.15)}.led-status{display:flex;gap:10px;align-items:center;font-size:11px;font-weight:700}.led-dot{width:9px;height:9px;border-radius:50%;background:#2ecc71}.conn-dot{width:10px;height:10px;border-radius:50%;background:#555;flex-shrink:0;transition:background .2s ease,box-shadow .2s ease}.conn-dot[data-state=connecting]{background:#e9a83a;animation:conn-blink 1s ease-in-out infinite;box-shadow:0 0 6px #e9a83acc}.conn-dot[data-state=on]{background:#2ecc71;box-shadow:0 0 8px #2ecc71d9}@keyframes conn-blink{0%,to{opacity:1}50%{opacity:.35}}.led-meter{margin-left:auto;letter-spacing:-1px;font-size:11px}.led-freq-row{position:relative;margin:2px 0}.led-utc{position:absolute;right:0;top:50%;transform:translateY(-50%);font-family:DSEG7 Modern,ui-monospace,SF Mono,Menlo,monospace;font-size:15px;font-weight:700;letter-spacing:1px;text-align:right;opacity:.85;padding:2px 6px;border:1px solid currentColor;border-radius:4px}.led-freq{font-size:34px;font-weight:700;letter-spacing:2px;text-align:left;font-family:DSEG7 Modern,ui-monospace,SF Mono,Menlo,monospace}.led-freq small{font-size:12px;font-weight:700;vertical-align:middle}.led-sub{display:flex;justify-content:space-between;font-size:11px;font-weight:700}.led-users:empty{display:none}.led-stats{font-size:10px;font-weight:700;letter-spacing:.2px;margin-top:2px;opacity:.85;font-family:ui-monospace,SF Mono,Menlo,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.led-stats:empty{display:none}.led-diag{margin-top:3px;font:600 11px ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.2px;padding:2px 8px;border-radius:4px;background:#c0392b2e;border:1px solid rgba(192,57,43,.6);color:#5a1a10;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.led-diag.info{background:#2ecc712e;border-color:#2ecc718c;color:#14391f}.led-diag.warn{background:#f39c1238;border-color:#f39c12b3;color:#5a3a08}.led-diag:empty{display:none}.knobs{display:grid;grid-template-columns:repeat(8,1fr) auto auto auto;gap:2px;padding:2px 4px 6px;align-items:end}.knob-mini{height:18px;align-self:end;font:600 10px ui-monospace,SF Mono,Menlo,monospace;background:#1f1f1f;color:#cfcfcf;border:1px solid #3a3a3a;border-radius:3px;padding:0 4px;cursor:pointer;margin-bottom:2px}.knob-mini:active{filter:brightness(.7);transform:translateY(1px)}.knob-mini.active{background:#2a4a1f;color:#d8ff90;border-color:#4f7f3f}.knob{display:flex;flex-direction:column;align-items:center;gap:2px;touch-action:none}.knob-label{font-size:9px;color:var(--muted)}.knob-dial{width:20px;height:20px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#3a3a3a,#181818);position:relative;cursor:ns-resize;border:1px solid var(--border)}.knob-line{position:absolute;left:50%;bottom:50%;width:1px;height:9px;background:#e8e8e8;transform-origin:50% 100%;margin-left:-.5px;transform:rotate(-135deg)}.spectrum-wrap{position:relative;flex:1 1 0;min-height:0;display:flex;flex-direction:column}.audio-fft{flex:1 1 0;min-height:60px;margin:4px 8px;border:1px solid #555;border-radius:10px;background:#000;display:block;width:calc(100% - 16px);touch-action:none}.audio-fft-ext-btn{position:absolute;bottom:8px;left:14px;z-index:6;height:22px;padding:0 8px;background:#000000b3;border:1px solid rgba(255,255,255,.18);border-radius:6px;color:#cfffa3;font:600 11px ui-monospace,SF Mono,Menlo,monospace;cursor:pointer}.audio-fft-ext-btn.active{background:#2a4d1a;color:#cfffa3}.audio-fft-auto-btn{position:absolute;bottom:8px;left:60px;z-index:6;height:22px;padding:0 8px;background:#000000b3;border:1px solid rgba(255,255,255,.18);border-radius:6px;color:#cfffa3;font:600 11px ui-monospace,SF Mono,Menlo,monospace;cursor:pointer}.audio-fft-auto-btn:active{background:#2a4d1a}.audio-fft-auto-btn.active{background:#2a4d1a;color:#cfffa3}body.audio-fft-ext main>.freq-row,body.audio-fft-ext main>.knobs,body.audio-fft-ext main>.keypad,body.audio-fft-ext main>.fnrow:not(:last-of-type){display:none}body.iq-view-ext main>.freq-row,body.iq-view-ext main>.knobs,body.iq-view-ext main>.keypad,body.iq-view-ext main>.fnrow:not(:last-of-type){display:none}body.acon-ext main>.freq-row,body.acon-ext main>.knobs,body.acon-ext main>.keypad,body.acon-ext main>.fnrow:not(:last-of-type){display:none}.audio-fft-contrast{position:absolute;top:8px;right:14px;display:flex;align-items:center;gap:4px;background:#000000b3;border:1px solid rgba(255,255,255,.15);padding:2px 6px;border-radius:6px;z-index:6;pointer-events:auto;color:#cfffa3;font:600 11px ui-monospace,SF Mono,Menlo,monospace}.audio-fft-contrast .transcript-btn{font-size:13px;padding:0 7px;line-height:1.4}.audio-fft-label{position:absolute;left:50%;transform:translate(-50%,-50%);background:#000000d9;color:#ffeb3b;font:600 10px ui-monospace,SF Mono,Menlo,monospace;padding:2px 6px;border-radius:4px;pointer-events:none;z-index:6;white-space:nowrap}.audio-fft-label-lo,.audio-fft-label-hi{pointer-events:auto;cursor:pointer;background:#000000d9;color:#ffeb3b;font:600 10px ui-monospace,SF Mono,Menlo,monospace;padding:2px 6px;border-radius:4px;border:1px solid rgba(255,255,255,.25);margin:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;white-space:nowrap;z-index:7}.audio-fft-label-lo:active,.audio-fft-label-hi:active{background:#ffffff26}.audio-fft-label-lo{left:8px;transform:translateY(-50%)}.audio-fft-label-hi{left:auto;right:14px;transform:translateY(-50%)}.wefax-panel{padding:0;overflow:hidden}.wefax-canvas-wrap{position:absolute;top:28px;right:8px;bottom:8px;left:8px;overflow:auto;background:#000;border:1px solid #555;border-radius:6px}.wefax-actions-overlay{position:absolute;right:8px;bottom:8px;display:flex;gap:4px;z-index:6;background:#0000008c;padding:3px 4px;border-radius:6px}body.wefax-ext main>.freq-row,body.wefax-ext main>.knobs,body.wefax-ext main>.keypad,body.wefax-ext main>.fnrow:not(:last-of-type){display:none}body.wefax-ext .wefax-canvas{aspect-ratio:1 / 2.083333;height:auto;object-fit:contain}.wefax-canvas{display:block;width:100%;height:auto;image-rendering:pixelated;background:#000}.fax-scan-bars{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;background:#00000080;z-index:6;pointer-events:auto;cursor:pointer}.ft8-panel{position:absolute;top:0;right:0;bottom:0;left:0;margin:4px 8px;background:#000;border:1px solid #555;border-radius:10px;padding:8px 12px;z-index:5;display:flex;flex-direction:column;gap:4px;color:#cfffa3;font-family:ui-monospace,SF Mono,Menlo,monospace}.ft8-status{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.ft8-actions{position:absolute;left:6px;right:6px;bottom:4px;display:flex;flex-wrap:wrap-reverse;justify-content:flex-end;gap:4px;z-index:6}body.panel-ext .ft8-panel{position:fixed;top:0;right:0;bottom:0;left:0;margin:0;border-radius:0;z-index:9999}.ft8-lines{overflow-y:auto;flex:1;font-size:12px;line-height:1.4}.ft8-header{color:var(--led-bg);font-size:10px;margin-top:4px}.ft8-line{white-space:pre}.cw-text{white-space:pre-wrap;word-break:break-word}.scope-level{width:120px;vertical-align:middle;accent-color:#cfffa3}.scope-level-readout{font-size:11px;color:var(--muted);min-width:36px;text-align:right}#scopePanel .ft8-actions{gap:6px;align-items:center}#iqViewPanel .iq-view-actions{top:auto;bottom:6px;right:8px}.iq-clock-baud{background:#111;color:var(--fg);border:1px solid #555;border-radius:4px;font-size:10px;font-family:ui-monospace,monospace;padding:2px 4px}#iqClockBtn.active{color:#cfffa3;border-color:#5a8a2c}#aconPanel .acon-actions{top:auto;bottom:6px;right:8px;display:flex;gap:4px;align-items:center}#scopePanel .ft8-actions{top:auto;bottom:6px;right:8px}#persistPanel{overflow:hidden}#persistPanel #persistCanvas{min-height:0;height:auto!important}#envpPanel{overflow:hidden}#envpPanel #envpCanvas{min-height:0;height:auto!important}#cepsPanel{overflow:hidden}#cepsPanel #cepsCanvas{min-height:0;height:auto!important}#mhumPanel{overflow:hidden}#mhumPanel #mhumCanvas{min-height:0;height:auto!important}#welchPanel{overflow:hidden}#welchPanel #welchCanvas{min-height:0;height:auto!important}#crestPanel{overflow:hidden}#crestPanel #crestCanvas{min-height:0;height:auto!important}#maskPanel{overflow:hidden}#maskPanel #maskCanvas{min-height:0;height:auto!important}#rspecPanel{overflow:hidden}#rspecPanel #rspecCanvas{min-height:0;height:auto!important}#lpcPanel{overflow:hidden}#lpcPanel #lpcCanvas{min-height:0;height:auto!important}#gdelayPanel{overflow:hidden}#gdelayPanel #gdelayCanvas{min-height:0;height:auto!important}#abspecPanel{overflow:hidden}#abspecPanel #abspecCanvas{min-height:0;height:auto!important}#waveletPanel{overflow:hidden}#waveletPanel #waveletCanvas{min-height:0;height:auto!important}#cdenPanel{overflow:hidden}#cdenPanel #cdenCanvas{min-height:0;height:auto!important}#evmPanel{overflow:hidden}#evmPanel #evmCanvas{min-height:0;height:auto!important}#hocPanel{overflow:hidden}#hocPanel #hocCanvas{min-height:0;height:auto!important}#pnoisePanel{overflow:hidden}#pnoisePanel #pnoiseCanvas{min-height:0;height:auto!important}#mtdevPanel{overflow:hidden}#mtdevPanel #mtdevCanvas{min-height:0;height:auto!important}#gpsdoPanel{overflow:hidden}#gpsdoPanel #gpsdoCanvas{min-height:0;height:auto!important}#rdopPanel{overflow:hidden}#rdopPanel #rdopCanvas{min-height:0;height:auto!important}#cohPanel{overflow:hidden}#cohPanel #cohCanvas{min-height:0;height:auto!important}#hhtPanel{overflow:hidden}#hhtPanel #hhtCanvas{min-height:0;height:auto!important}#melPanel{overflow:hidden}#melPanel #melCanvas{min-height:0;height:auto!important}#chroPanel{overflow:hidden}#chroPanel #chroCanvas{min-height:0;height:auto!important}#mspecPanel{overflow:hidden}#mspecPanel #mspecCanvas{min-height:0;height:auto!important}#acfPanel{overflow:hidden}#acfPanel #acfCanvas{min-height:0;height:auto!important}#sentPanel{overflow:hidden}#sentPanel #sentCanvas{min-height:0;height:auto!important}#sflatPanel{overflow:hidden}#sflatPanel #sflatCanvas{min-height:0;height:auto!important}#qqPanel{overflow:hidden}#qqPanel #qqCanvas{min-height:0;height:auto!important}#ciperPanel{overflow:hidden}#ciperPanel #ciperCanvas{min-height:0;height:auto!important}#phasePPanel{overflow:hidden}#phasePPanel #phasePCanvas{min-height:0;height:auto!important}#wvdPanel{overflow:hidden}#wvdPanel #wvdCanvas{min-height:0;height:auto!important}#stxfPanel{overflow:hidden}#stxfPanel #stxfCanvas{min-height:0;height:auto!important}#scfPanel{overflow:hidden}#scfPanel #scfCanvas{min-height:0;height:auto!important}#bispPanel{overflow:hidden}#bispPanel #bispCanvas{min-height:0;height:auto!important}#ambigPanel{overflow:hidden}#ambigPanel #ambigCanvas{min-height:0;height:auto!important}#iqimbPanel{overflow:hidden}#iqimbPanel #iqimbCanvas{min-height:0;height:auto!important}#mirrPanel{overflow:hidden}#mirrPanel #mirrCanvas{min-height:0;height:auto!important}#ifrqPanel{overflow:hidden}#ifrqPanel #ifrqCanvas{min-height:0;height:auto!important}#aldvPanel{overflow:hidden}#aldvPanel #aldvCanvas{min-height:0;height:auto!important}#cafPanel{overflow:hidden}#cafPanel #cafCanvas{min-height:0;height:auto!important}#echoPanel{overflow:hidden}#echoPanel #echoCanvas{min-height:0;height:auto!important}#sclkPanel{overflow:hidden}#sclkPanel #sclkCanvas{min-height:0;height:auto!important}#aconLockBtn.active{color:#cfffa3;border-color:#5a8a2c}.acon-preset{background:#111;color:var(--fg);border:1px solid #555;border-radius:4px;font-size:10px;font-family:ui-monospace,monospace;padding:2px 4px;max-width:110px}.acon-label{font-size:10px;opacity:.7;font-family:ui-monospace,monospace}.acon-input{width:56px;background:#111;color:var(--fg);border:1px solid #555;border-radius:4px;font-size:10px;font-family:ui-monospace,monospace;padding:2px 4px}.acon-input::-webkit-inner-spin-button,.acon-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.auto-panel{position:absolute;left:8px;right:8px;bottom:4px;max-height:96px;background:#000000c7;border:1px solid #555;border-radius:8px;padding:4px 10px;z-index:5;display:flex;flex-direction:column;gap:2px;color:#cfffa3;font-family:ui-monospace,SF Mono,Menlo,monospace;pointer-events:auto;cursor:pointer}.auto-panel .ft8-lines{max-height:60px;font-size:11px;line-height:1.3}.transcript{position:absolute;top:0;right:0;bottom:0;left:0;margin:4px 8px;background:#000;border:1px solid #555;border-radius:10px;padding:8px 12px;overflow:hidden;font-size:13px;line-height:1.35;color:#fff;display:flex;flex-direction:column;gap:4px;z-index:6}.transcript-status{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.transcript-actions{position:absolute;top:4px;right:6px;display:flex;gap:4px;pointer-events:auto;z-index:5}.transcript-btn{font:inherit;font-size:10px;line-height:1;padding:3px 6px;color:#fff;background:#2a2a2a;border:1px solid #4a4a4a;border-radius:4px;cursor:pointer}.transcript-btn:active{background:#3a3a3a}.cw-param{display:inline-flex;align-items:center;gap:4px;font-size:10px;color:#cfffa3;margin-left:4px}.cw-param input{width:52px;font:inherit;background:#ffffff14;color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:4px;padding:2px 4px;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.cw-param input::-webkit-outer-spin-button,.cw-param input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.transcript-lines{overflow-y:auto;flex:1}.transcript-line{padding:2px 0;border-bottom:1px solid rgba(255,255,255,.05)}.transcript-line:last-child{color:#fff;font-weight:500}.transcript-line.transcript-error{color:#ff8a7a;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px}.fft-freq-label{position:absolute;top:4px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:10px;line-height:1;color:#ffffffbf;background:#0006;padding:2px 5px;border-radius:3px;pointer-events:none;z-index:3;text-shadow:0 1px 2px rgba(0,0,0,.8)}.fft-freq-lo{left:6px}.fft-freq-hi{right:6px}.wf-freq-label{position:absolute;top:4px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:16px;line-height:1;color:#fff;background:#0006;padding:2px 5px;border-radius:3px;pointer-events:none;z-index:3;opacity:.8;text-shadow:0 1px 2px rgba(0,0,0,.8)}.wf-freq-lo{left:6px}.wf-freq-hi{right:6px}.wf-tools{position:absolute;bottom:6px;display:flex;gap:4px;z-index:3}.wf-tools-l{left:6px}.wf-tools-r{right:6px}.wf-tools .knob-mini{margin-bottom:0}.wf-chev{position:absolute;top:50%;transform:translateY(-50%);height:36px;min-width:60px;padding:0 10px;background:#f04e3a8c;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:6px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;font-weight:600;cursor:pointer;z-index:4;opacity:.9;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.copy-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:20px}.copy-overlay-card{background:#1f1f1f;color:#e0e0e0;border:1px solid #4a4a4a;border-radius:6px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;gap:8px;padding:12px;font-family:ui-monospace,SF Mono,Menlo,monospace}.copy-overlay-hint{font-size:12px;opacity:.85}.copy-overlay-text{flex:1;min-height:200px;min-width:60vw;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;line-height:1.4;background:#000;color:#cfffa3;border:1px solid #3a3a3a;border-radius:3px;padding:6px;resize:none}.copy-overlay-close{align-self:flex-end;font-size:12px;padding:4px 12px;background:#333;color:#e0e0e0;border:1px solid #555;border-radius:3px;cursor:pointer}.no-data-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px;line-height:1.2;color:#ff9090;background:#000000b3;padding:8px 14px;border:1px solid rgba(255,80,80,.6);border-radius:4px;pointer-events:none;z-index:5;white-space:nowrap}.scan-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;line-height:1.2;color:#ffe27a;background:#0009;padding:6px 12px;border-radius:4px;pointer-events:none;z-index:4;white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis}.kpbtn.active[data-cmd=scan]{background:#2a4a1f}.kpbtn.paused[data-cmd=scan]{background:#4a3a1f}.wf-chev-l{left:4px}.wf-chev-r{right:4px}.wf-chev:active{background:#f04e3ad9}.fft-wrap{position:relative}.banner{position:absolute;left:8px;right:8px;top:6px;padding:6px 12px;background:#c0392beb;color:#fff;font-size:12px;font-weight:600;border-radius:6px;pointer-events:none;box-shadow:0 2px 6px #00000080;text-align:center;opacity:0;transform:translateY(-4px);transition:opacity .12s ease,transform .12s ease;z-index:5}.banner.show{opacity:1;transform:translateY(0)}.wf-wrap{position:relative;flex:1 1 0;min-height:40px;display:flex;margin:0 8px 4px;border:1px solid #555;border-radius:10px;overflow:hidden;background:#000;box-shadow:0 0 4px #7878782e}.fft-avg-wrap{display:none;position:relative;flex:0 0 auto;height:18px;margin:0 8px 2px;border:1px solid #555;border-radius:6px;overflow:hidden;background:#000}.fft-avg{display:block;width:100%;height:100%}.fft-avg-sel{position:absolute;right:4px;top:50%;transform:translateY(-50%);height:14px;font:600 9px ui-monospace,SF Mono,Menlo,monospace;background:#000000b3;color:#cfffa3;border:1px solid rgba(255,255,255,.18);border-radius:3px;padding:0 2px;z-index:2;-moz-appearance:none;appearance:none;-webkit-appearance:none}.wf-wrap .wf{flex:1;min-height:0}.fnbtn.busy{background:#1f6b34;color:#eaffea;border-color:#2ecc71}.fnbtn.busy:active{background:#29914a}.sig-marker{position:absolute;top:0;bottom:0;width:0;border-left:1px dashed;pointer-events:none;opacity:1;z-index:6}.sig-marker-l{border-color:#e74c3c}.sig-marker:before,.sig-marker:after{position:absolute;left:3px;font:600 10px ui-monospace,SF Mono,Menlo,monospace;color:inherit;text-shadow:0 0 2px rgba(0,0,0,.9)}.sig-marker:before{top:2px}.sig-marker:after{bottom:2px}.sig-marker-l:before,.sig-marker-l:after{content:"F2";color:#e74c3c}.fnbtn.selected{background:#1f6b34;color:#eaffea;border-color:#2ecc71}.sig-bw-label{position:absolute;top:4px;left:50%;transform:translate(-50%);font:400 16px ui-monospace,SF Mono,Menlo,monospace;color:#fff;background:#0006;padding:2px 8px;border-radius:4px;pointer-events:none;z-index:4;text-shadow:0 1px 2px rgba(0,0,0,.8)}.sig-overlay{position:absolute;left:12px;right:12px;top:12px;max-height:calc(100% - 24px);overflow:auto;padding:10px 14px;background:#141419eb;color:#e8f7ff;border:1px solid #3f8fc4;border-radius:8px;font:500 13px/1.4 ui-monospace,SF Mono,Menlo,monospace;white-space:pre;word-break:normal;z-index:8;box-shadow:0 4px 12px #0009;cursor:pointer}.sig-overlay-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}.sig-overlay-copy{font:600 11px ui-monospace,SF Mono,Menlo,monospace;background:#2a3a4a;color:#cfffa3;border:1px solid #3f8fc4;border-radius:4px;padding:3px 10px;cursor:pointer}.sig-overlay-copy:active{background:#3f8fc4;color:#fff}.sig-overlay-verdict{color:#fff;font-weight:700}.sig-overlay-close{font:700 16px ui-monospace,SF Mono,Menlo,monospace;line-height:1;background:#2a3a4a;color:#e8f7ff;border:1px solid #3f8fc4;border-radius:4px;padding:1px 8px 3px;cursor:pointer}.sig-overlay-close:active{background:#c0392b;color:#fff;border-color:#c0392b}.sig-overlay-markdown{white-space:normal;font:400 13px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.sig-overlay-markdown h1,.sig-overlay-markdown h2,.sig-overlay-markdown h3{color:#cfffa3;margin:14px 0 6px;font-weight:700;line-height:1.25}.sig-overlay-markdown h1{font-size:16px;border-bottom:1px solid #3f8fc4;padding-bottom:4px}.sig-overlay-markdown h2{font-size:14px;color:#9be0ff}.sig-overlay-markdown h3{font-size:13px;color:#9be0ff}.sig-overlay-markdown p{margin:6px 0;color:#e8f7ff}.sig-overlay-markdown blockquote{margin:6px 0;padding:4px 10px;border-left:3px solid #3f8fc4;background:#3f8fc414;color:#cfe8f7}.sig-overlay-markdown pre{margin:6px 0;padding:8px 10px;background:#00000073;border:1px solid rgba(63,143,196,.3);border-radius:4px;overflow-x:scroll;overflow-y:auto;max-height:60vh;scrollbar-width:thin;scrollbar-color:#3f8fc4 rgba(0,0,0,.3)}.sig-overlay-markdown pre::-webkit-scrollbar{width:10px;height:10px}.sig-overlay-markdown pre::-webkit-scrollbar-track{background:#0006;border-radius:4px}.sig-overlay-markdown pre::-webkit-scrollbar-thumb{background:#3f8fc4;border-radius:4px}.sig-overlay-markdown pre::-webkit-scrollbar-thumb:hover{background:#5fb0e4}.sig-overlay-markdown pre code,.sig-overlay-markdown code{font:500 12px/1.4 ui-monospace,SF Mono,Menlo,monospace;color:#d6f5ff;white-space:pre}.sig-overlay-markdown :not(pre)>code{padding:1px 4px;background:#3f8fc42e;border-radius:3px}.sig-overlay-markdown strong{color:#fff}.sig-overlay-markdown em{color:#cfe8f7;font-style:italic}.sig-overlay-markdown table{width:100%;margin:8px 0;border-collapse:collapse;font:500 11px/1.35 ui-monospace,SF Mono,Menlo,monospace}.sig-overlay-markdown th,.sig-overlay-markdown td{padding:3px 8px;border:1px solid rgba(63,143,196,.25);text-align:left;vertical-align:top;white-space:nowrap}.sig-overlay-markdown th{background:#161616;color:var(--led-bg);font-weight:700;position:sticky;top:0}.sig-overlay-markdown tbody tr:nth-child(odd){background:#3f8fc40a}.sig-overlay-markdown tbody tr:nth-child(2n){background:#3f8fc41a}.wf{display:block;width:100%;background:#000;image-rendering:pixelated;touch-action:none}.wf-pan{position:absolute;top:50%;transform:translateY(-50%);width:28px;height:36px;padding:0;background:#00000073;border:1px solid rgba(255,255,255,.18);border-radius:6px;color:#e8e8e8;font-size:18px;font-weight:600;font-family:ui-monospace,SF Mono,Menlo,monospace;line-height:1;cursor:pointer;z-index:4;opacity:.6;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.wf-pan-l{left:4px}.wf-pan-r{right:4px}.wf-pan:active{background:#000000b3}.pitch-bar{position:absolute;bottom:8px;right:14px;display:flex;gap:4px;z-index:6;background:#000000b3;border:1px solid rgba(255,255,255,.15);padding:2px 6px;border-radius:6px;pointer-events:auto}.pitch-btn{height:22px;min-width:26px;padding:0 6px;background:transparent;border:1px solid rgba(255,255,255,.18);border-radius:4px;color:#cfffa3;font:600 11px ui-monospace,SF Mono,Menlo,monospace;cursor:pointer}.pitch-btn:active{background:#ffffff1a}.wf-cursor{position:absolute;top:0;bottom:0;left:0;width:0;border-left:1px dashed #ffffff;pointer-events:none;transform:translate(-1px);display:none;filter:drop-shadow(0 0 3px rgba(255,255,255,.6));opacity:1;z-index:5}#wfCursor:before,#wfCursor:after{content:"F";position:absolute;left:3px;font:600 10px ui-monospace,SF Mono,Menlo,monospace;color:#fff;text-shadow:0 0 2px rgba(0,0,0,.9)}#wfCursor:before{top:2px}#wfCursor:after{bottom:2px}.keypad{display:flex;flex-direction:column;gap:4px;padding:5px 6px;background:var(--bg);border-top:1px solid var(--border)}.kprow:not(.freq-row)>.kpbtn:nth-child(n+4):nth-child(-n+6){color:var(--led-bg)}.kpbtn[data-key]{color:var(--led-bg)}.kprow:not(.freq-row)>.kpbtn[data-cmd=gen]:nth-child(n),.kprow:not(.freq-row)>.kpbtn[data-cmd=sid]:nth-child(n),.kprow:not(.freq-row)>.kpbtn[data-cmd=mem]:nth-child(n),.kprow:not(.freq-row)>.kpbtn[data-cmd=back]:nth-child(n){color:#fff}.kprow:not(.freq-row)>.kpbtn[data-cmd=mhz]:nth-child(n),.kprow:not(.freq-row)>.kpbtn[data-cmd=set]:nth-child(n){color:var(--led-bg)}#btnDlds,#btnKurt{color:var(--led-bg)}#btnZoom{color:#fff}#btnZoom.active{color:var(--led-bg)}#aiPanel #aiText{overflow:auto}#aiPanel .ai-markdown{word-break:normal}#aiPanel .ai-markdown table,#aiPanel .ai-markdown pre{max-width:none}#aiPanel .ai-separator{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;color:#888;padding:4px 6px}#aiPanel .ai-markdown{font-size:12px;line-height:1.45;color:#ddd;padding:2px 8px 6px}#aiPanel .ai-markdown h1,#aiPanel .ai-markdown h2,#aiPanel .ai-markdown h3,#aiPanel .ai-markdown h4{color:var(--led-bg);margin:8px 0 4px;font-size:13px}#aiPanel .ai-markdown h1{font-size:15px}#aiPanel .ai-markdown h2{font-size:14px}#aiPanel .ai-markdown p{margin:4px 0}#aiPanel .ai-markdown ul,#aiPanel .ai-markdown ol{margin:4px 0 4px 18px;padding:0}#aiPanel .ai-markdown li{margin:2px 0}#aiPanel .ai-markdown strong{color:#fff}#aiPanel .ai-markdown em{color:#cfc}#aiPanel .ai-markdown code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;background:#0a0a0a;padding:0 4px;border-radius:2px;color:#cfffa3}#aiPanel .ai-markdown pre{background:#0a0a0a;border:1px solid #1f1f1f;border-radius:3px;padding:6px 8px;margin:4px 0;overflow-x:auto}#aiPanel .ai-markdown pre code{background:transparent;padding:0}#aiPanel .ai-markdown blockquote{border-left:2px solid var(--led-bg);margin:4px 0;padding:2px 8px;color:#aaa}#aiPanel .ai-markdown table{border-collapse:collapse;margin:6px 0;font-size:11px}#aiPanel .ai-markdown th,#aiPanel .ai-markdown td{border:1px solid #2a2a2a;padding:3px 8px;text-align:left}#aiPanel .ai-markdown th{background:#161616;color:var(--led-bg)}.mem-list{padding:4px 6px;overflow:auto}.mem-empty{color:#888;font-size:12px;padding:8px;text-align:center}.mem-search{flex:1;min-width:0;background:#0a0a0a;border:1px solid #2a2a2a;border-radius:3px;color:#ddd;font-size:11px;padding:2px 6px;margin:0 4px}.mem-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px;padding:4px;border-bottom:1px solid #1c1c1c}.mem-row-title{font-size:12px;color:#ddd}.mem-row-mode{font-size:10px;color:#888;margin-left:4px}.mem-row-name,.mem-row-notes{width:calc(100% - 4px);background:#0a0a0a;border:1px solid #2a2a2a;border-radius:3px;color:#ddd;font-size:11px;padding:2px 4px;margin-top:2px}.mem-row-sub{font-size:10px;color:#666;margin-top:2px}.mem-row-actions{display:flex;flex-direction:column;gap:2px}.kprow{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.kprow.kprow-7{grid-template-columns:repeat(7,1fr)}.kpbtn{height:27px;font-size:12px;font-weight:500}.kpbtn[data-cmd=dec]{color:var(--led-bg)}.kpbtn.disabled,.kpbtn:disabled{opacity:.4;filter:grayscale(.6)}.kpbtn.kpbtn-empty,.fnbtn.fnbtn-empty{visibility:hidden;pointer-events:none}.kpbtn.kpbtn-aux{color:#555;pointer-events:none;cursor:default;opacity:.6}.freq-row{padding:4px 6px 0;background:var(--bg)}.freq-row .kpbtn{font-size:12px;font-weight:500;letter-spacing:normal}.kpbtn.k{font-size:16px;font-weight:600}.kpbtn-pair{display:flex;flex-direction:column;gap:2px}.kpbtn.kpbtn-half{height:12px;font-size:10px;padding:0;line-height:12px;letter-spacing:0}.debug{margin:0 8px 8px;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px;font:11px/1.4 ui-monospace,monospace;color:var(--muted)}.debug summary{cursor:pointer;-webkit-user-select:none;user-select:none}.debug button{background:var(--panel-2);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:4px 10px;font-size:12px}#log{margin-top:8px;max-height:30vh;overflow:auto;white-space:pre-wrap;user-select:text;-webkit-user-select:text}#log *{user-select:text;-webkit-user-select:text}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:stretch;justify-content:stretch;z-index:1000}.modal-card{background:var(--bg);width:100%;height:100%;max-height:100vh;display:flex;flex-direction:column;min-height:0}.modal-bar{display:flex;gap:8px;padding:8px;background:var(--bg);border-bottom:1px solid var(--border);position:sticky;top:0}.srv-search{flex:1;min-width:0;background:var(--panel);color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:0 12px;height:40px;font-size:14px}.modal-bar button{background:var(--panel);color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:0 14px;height:40px;font-size:14px}.modal-bar .btn-favs.active,.modal-bar .btn-no-rtl.active,.modal-bar .btn-ham.active{border-color:var(--led-bg);color:var(--led-bg)}.srv-list{flex:1;min-height:0;overflow-y:scroll;overflow-x:hidden;padding:8px;scrollbar-gutter:stable}.srv-list::-webkit-scrollbar{-webkit-appearance:none;width:12px;height:12px}.srv-list::-webkit-scrollbar-track{background:#1c1c1c;border-left:1px solid #333}.srv-list::-webkit-scrollbar-thumb{background:#888;border-radius:6px;min-height:30px;border:2px solid #1c1c1c}.srv-list::-webkit-scrollbar-thumb:hover{background:#aaa}.srv-list::-webkit-scrollbar-corner{background:#1c1c1c}.srv-list{scrollbar-width:auto;scrollbar-color:#888 #1c1c1c}.srv-row{display:flex;gap:10px;padding:12px;background:var(--panel);border-radius:10px;margin-bottom:8px;border:1px solid var(--border);align-items:flex-start;cursor:pointer}.srv-fav{background:transparent;border:0;color:var(--fg);font-size:22px;line-height:1;padding:0;min-width:28px}.srv-meta{flex:1;min-width:0}.srv-title{font-size:15px;margin-bottom:4px}.srv-sub{color:var(--muted);font-size:12px;line-height:1.4}.srv-del{margin-top:6px;background:transparent;color:var(--accent);border:1px solid var(--accent);border-radius:6px;padding:4px 8px;font-size:12px}.srv-empty{color:var(--muted);padding:16px;text-align:center}.srv-pill{display:inline-block;margin-left:6px;padding:1px 6px;font-size:10px;line-height:1.4;border-radius:6px;background:#cfffa31f;color:var(--led-bg, #cfffa3);border:1px solid rgba(207,255,163,.35);text-transform:lowercase;letter-spacing:.4px}.srv-pill-anon{background:#b4b4b41a;color:var(--muted);border-color:#b4b4b440}.srv-status{padding:6px 12px;font-size:12px;color:var(--muted);border-bottom:1px solid var(--border)}.btn-refresh{background:transparent;border:1px solid var(--border);color:var(--fg);border-radius:6px;padding:4px 10px;font-size:14px;cursor:pointer}.btn-refresh:hover{background:var(--panel)}.settings-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:1000;display:flex;flex-direction:column;overflow:auto;color:var(--fg)}.settings-bar{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:1}.settings-bar h2{margin:0;font-size:18px;font-weight:500}.settings-version{margin-left:auto;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;opacity:.6}.settings-bar .btn-close{background:transparent;border:0;color:var(--fg);font-size:22px;line-height:1;padding:4px 8px}.settings-body{padding:12px 16px 32px}.settings-section{padding:16px 0;border-bottom:1px solid var(--border)}.settings-section:last-child{border-bottom:0}.settings-section-title{font-size:16px;font-weight:500;color:var(--fg);margin-bottom:12px}.settings-row{display:flex;align-items:center;gap:12px;padding:10px 12px;font-size:14px}.settings-row>span{flex:1}.settings-row input[type=text],.settings-row input[type=number]{background:var(--panel);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:6px 10px;font-size:14px;width:110px;text-align:right}.settings-row.toggle-row{justify-content:space-between}.settings-row input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:44px;height:24px;background:#444;border-radius:12px;position:relative;cursor:pointer;transition:background .12s ease}.settings-row input[type=checkbox]:after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;background:#fff;border-radius:50%;transition:left .12s ease}.settings-row input[type=checkbox]:checked{background:#2196f3}.settings-row input[type=checkbox]:checked:after{left:22px}.settings-btn{background:var(--panel);color:var(--fg);border:1px solid var(--border);border-radius:6px;padding:6px 14px;font-size:13px;cursor:pointer}.band-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:safe center;justify-content:safe center;background:transparent;z-index:1000;animation:bandFadeIn .14s ease;overflow:auto}@keyframes bandFadeIn{0%{opacity:0}to{opacity:1}}.eq-card{background:#141419f0;border:1px solid #3f8fc4;border-radius:12px;padding:16px 18px;box-shadow:0 8px 24px #0009;font:500 12px/1.3 ui-monospace,SF Mono,Menlo,monospace;color:#e8f7ff}.eq-title{font-size:13px;font-weight:700;color:#cfffa3;text-align:center;margin-bottom:12px;letter-spacing:.5px}.eq-grid{display:flex;gap:8px;align-items:center}.eq-col{display:flex;flex-direction:column;align-items:center;gap:6px}.eq-val{min-width:44px;text-align:center;font-size:10px;color:#cfffa3}.eq-slider{-webkit-appearance:slider-vertical;-moz-appearance:slider-vertical;appearance:slider-vertical;writing-mode:vertical-lr;direction:rtl;width:28px;height:160px;accent-color:#3f8fc4}.eq-freq{font-size:11px;color:#9be0ff;font-weight:600}.eq-bar{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}.eq-flat,.eq-close{background:#2a3a4a;color:#cfffa3;border:1px solid #3f8fc4;border-radius:6px;padding:4px 14px;font:600 11px ui-monospace,SF Mono,Menlo,monospace;cursor:pointer}.eq-flat:active,.eq-close:active{background:#3f8fc4;color:#fff}.band-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(44px,1fr));gap:4px;padding:6px;background:transparent;border:0;box-shadow:none;width:calc(100% - 12px);max-width:720px;max-height:100%;box-sizing:border-box}.band-btn{height:32px;font-size:12px;font-weight:500;color:var(--fg);background:linear-gradient(180deg,#2a2a2a,#1c1c1c 60%,#161616);border:2px solid #2a2a2a;border-radius:12px;box-shadow:inset 0 1px #ffffff0f,inset 0 -1px #00000080,0 2px 8px #0006;transition:filter 80ms ease}.band-btn:active{filter:brightness(.7)}.band-btn[data-khz]{height:44px;font-size:13px;padding:4px 6px}.ftx-picker .band-grid{grid-template-columns:repeat(4,1fr);max-width:480px}.rtty-picker .band-grid{grid-template-columns:repeat(3,1fr);max-width:380px}.srch-picker .band-grid{grid-template-columns:repeat(3,1fr);max-width:320px}.lists-picker .lists-card{width:calc(100% - 24px);max-width:720px;max-height:80vh;display:flex;flex-direction:column;background:#1a1a1a;border:1px solid #2a2a2a;border-radius:6px;overflow:hidden}.lists-picker .lists-bar{display:flex;align-items:center;gap:8px;padding:6px 8px;background:#0e0e0e;border-bottom:1px solid #2a2a2a}.lists-picker .lists-search{flex:1;min-width:0;background:#050505;border:1px solid #2a2a2a;border-radius:3px;color:#ddd;font-size:13px;padding:4px 8px}.lists-picker .lists-count{color:#888;font-size:11px}.lists-picker .lists-close{background:transparent;border:0;color:#ddd;font-size:18px;cursor:pointer;padding:0 6px}.band-modal.lists-picker{overflow:hidden}.lists-picker .lists-result{overflow:auto;padding:4px}.lists-picker .lists-row{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:baseline;width:100%;padding:6px 8px;margin-bottom:2px;background:#161616;border:1px solid #232323;border-radius:4px;color:#ddd;font-family:ui-monospace,SF Mono,Menlo,monospace;text-align:left;cursor:pointer}.lists-picker .lists-row.active{border-color:var(--led-bg)}.lists-picker .lists-row:hover{background:#1f1f1f}.lists-picker .lists-row-freq{font-size:13px;color:var(--led-bg);white-space:nowrap}.lists-picker .lists-row-unit{font-size:10px;color:#888}.lists-picker .lists-row-meta{font-size:11px;display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.lists-picker .lists-row-mode{font-size:10px;color:#aaa;background:#0e0e0e;border:1px solid #2a2a2a;border-radius:3px;padding:0 4px}.lists-picker .lists-row-picker{font-size:10px;color:var(--led-bg);background:#0e0e0e;border:1px solid #4a3a1a;border-radius:3px;padding:0 4px}.lists-picker .lists-row-label{color:#ddd}.lists-picker .lists-row-note{color:#888}.lists-picker .lists-overflow{color:#666;font-size:11px;padding:8px;text-align:center}.rtty-picker .rtty-list{width:calc(100% - 24px);max-width:480px;max-height:70vh;overflow-y:auto;padding:8px;background:#00000026;backdrop-filter:blur(20px) saturate(1.1);-webkit-backdrop-filter:blur(20px) saturate(1.1);border:1px solid rgba(255,255,255,.08);border-radius:14px;box-shadow:0 10px 40px #0009}.rtty-row{display:block;width:100%;text-align:left;padding:8px 12px;margin-bottom:4px;background:linear-gradient(180deg,#2a2a2a,#1c1c1c 60%,#161616);border:1px solid #2a2a2a;border-radius:8px;color:var(--fg);font-family:ui-monospace,SF Mono,Menlo,monospace;cursor:pointer}.rtty-row.active{border-color:var(--led-bg);color:var(--led-bg)}.rtty-row:active{filter:brightness(.7)}.rtty-row-name{font-size:13px;font-weight:600}.rtty-row-meta{font-size:11px;opacity:.7;margin-top:2px}.dec-picker .rtty-row-name,.dec-picker .rtty-row.active .rtty-row-name{color:var(--led-bg)}.psk-mode-picker .rtty-list{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;max-width:320px}.psk-mode-picker .rtty-row{display:flex;align-items:center;justify-content:center;padding:12px 6px;margin:0;text-align:center}.psk-mode-picker .rtty-row-name{font-size:13px}.modes-picker .rtty-list{max-width:360px}.modes-group-title{font-size:11px;font-weight:600;letter-spacing:.05em;opacity:.6;padding:8px 4px 4px}.modes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:4px}.modes-picker .rtty-row{display:flex;align-items:center;justify-content:center;padding:10px 6px;margin:0;text-align:center}.modes-picker .rtty-row-name{font-size:12px}.modes-picker .rtty-row.active{border-color:var(--led-bg);color:var(--led-bg)}.freq-picker .rtty-list{max-width:380px}.modes-toolbar{display:flex;gap:16px;padding:6px 4px 8px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:4px}.modes-opt{display:flex;align-items:center;gap:6px;font-size:11px;font-family:ui-monospace,SF Mono,Menlo,monospace;color:var(--fg);cursor:pointer;-webkit-user-select:none;user-select:none}.modes-opt input[type=checkbox]{margin:0}.psk-pitch-label{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-family:ui-monospace,SF Mono,Menlo,monospace;color:var(--fg);margin-right:8px}.psk-pitch-input{width:56px;background:#0000004d;color:var(--fg);border:1px solid rgba(255,255,255,.12);border-radius:4px;padding:2px 4px;font:inherit;text-align:right}.lang-grid{grid-template-columns:repeat(3,1fr);gap:8px;padding:12px;max-width:420px}.lang-btn{height:40px;font-size:13px;font-weight:500;font-family:inherit;border-radius:8px;padding:0 6px}.band-btn.active{border-color:var(--accent);box-shadow:inset 0 1px #ffffff0f,inset 0 0 0 1px #c0392b8c,0 0 12px #f04e3ab3,0 2px 8px #0006}@media (max-width: 520px){.band-grid{gap:4px}.band-btn{height:32px;font-size:12px;border-radius:8px}}.stats-modal{z-index:1100}.stats-card{width:calc(100% - 24px);max-width:560px;max-height:80vh;display:flex;flex-direction:column;background:#0a0a0af2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);border-radius:14px;box-shadow:0 12px 48px #000000b3;color:var(--fg)}.stats-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.stats-bar h3{margin:0;font-size:14px;font-weight:600}.stats-close{background:transparent;border:0;color:var(--fg);font-size:18px;line-height:1;padding:4px 8px;cursor:pointer}.stats-list{overflow-y:auto;padding:6px 8px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px}.stats-row{display:grid;grid-template-columns:180px 1fr;gap:8px;padding:3px 4px;border-bottom:1px solid rgba(255,255,255,.04)}.stats-key{color:var(--led-bg)}.stats-val{color:#ddd;word-break:break-all}.stats-empty{padding:18px 12px;opacity:.7;font-size:12px}.logs-modal .stats-card{max-width:720px}.logs-list{font-size:11px}.logs-row{display:grid;grid-template-columns:64px 48px 1fr;gap:6px;padding:2px 4px;border-bottom:1px solid rgba(255,255,255,.04)}.logs-ts{color:#c8c8c88c}.logs-lvl{color:var(--led-bg);text-transform:uppercase;font-size:10px;align-self:center}.logs-msg{color:#ddd;word-break:break-all;white-space:pre-wrap}.logs-row.logs-warn .logs-msg{color:#ffd07a}.logs-row.logs-error .logs-msg{color:#ff8a7a}.logs-row.logs-debug .logs-msg{color:#9bc7ff}.recordings-modal .stats-card{max-width:600px}.rec-list{overflow-y:auto;padding:8px}.rec-row{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:4px 8px;padding:8px;border:1px solid rgba(255,255,255,.06);border-radius:8px;margin-bottom:8px;background:#ffffff05}.rec-meta{grid-column:1;grid-row:1}.rec-title{font-size:13px;font-weight:500}.rec-sub{font-size:11px;opacity:.65}.rec-audio{grid-column:1 / -1;grid-row:2;width:100%;height:30px}.rec-del{grid-column:2;grid-row:1;background:#c0392b33;border:1px solid rgba(192,57,43,.5);color:#f5b7b1;border-radius:6px;padding:2px 8px;font-size:11px;cursor:pointer}.rec-del:hover{background:#c0392b66}.fnbtn,.kpbtn,.band-btn,.lang-btn,.settings-btn{background:linear-gradient(180deg,#4a4a4a,#303030 45%,#1d1d1d 80%,#131313);border:1px solid #0a0a0a;border-top-color:#5a5a5a;box-shadow:inset 0 1px #ffffff38,inset 0 -2px 3px #0000008c,inset 0 0 0 1px #ffffff0a,0 2px #0a0a0a,0 3px 4px #000000a6,0 0 1px #000c;text-shadow:0 -1px 0 rgba(0,0,0,.7),0 1px 0 rgba(255,255,255,.06);transition:transform 60ms ease,box-shadow 60ms ease,filter 60ms ease}.fnbtn:active,.kpbtn:active,.band-btn:active,.lang-btn:active,.settings-btn:active{filter:none;transform:translateY(2px);box-shadow:inset 0 2px 4px #000000b3,inset 0 -1px #ffffff0a,0 0 1px #000c}.fnbtn.active,.kpbtn.active,.band-btn.active{border-color:var(--led-bg)!important;border-top-color:var(--led-bg)!important;color:var(--led-bg);box-shadow:inset 0 1px #ffffff38,inset 0 -2px 3px #0000008c,inset 0 0 0 1px #ffffff0a,0 2px #0a0a0a,0 3px 4px #000000a6,0 0 0 1px var(--led-bg)}.help-modal{align-items:flex-start;padding-top:24px}.help-content{background:#0000008c;backdrop-filter:blur(20px) saturate(1.1);-webkit-backdrop-filter:blur(20px) saturate(1.1);border:1px solid rgba(255,255,255,.08);border-radius:14px;box-shadow:0 10px 40px #0009;width:calc(100% - 24px);max-width:720px;max-height:calc(100vh - 48px);display:flex;flex-direction:column;color:var(--fg);font-family:ui-monospace,SF Mono,Menlo,monospace}.help-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.08);font-size:13px;font-weight:600}.help-title{letter-spacing:.5px}.help-close{background:transparent;border:0;color:var(--fg);font-size:22px;line-height:1;cursor:pointer;padding:0 8px}.help-close:hover{color:#ffb27a}.help-search{margin:10px 14px;background:#0006;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:var(--fg);font:inherit;padding:7px 10px;outline:none}.help-list{overflow-y:auto;padding:4px 14px 14px;flex:1}.help-row{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:12px}.help-row-wide{grid-template-columns:max-content 1fr}.help-row:last-child{border-bottom:0}.help-label{font-weight:700;color:#ffb27a;white-space:nowrap}.help-desc{color:#cfd5db;line-height:1.45}.dec-picker{align-items:stretch;justify-content:stretch;padding:0}.dec-picker .rtty-list{width:100%;max-width:none;height:100%;max-height:100%;box-sizing:border-box}.dec-picker .rtty-row-meta{white-space:normal;overflow-wrap:anywhere;line-height:1.4}.menu.decod{width:auto;padding:0 10px;font:inherit;font-size:13px;font-weight:600;letter-spacing:.5px}.decod-row{display:grid;grid-template-columns:24px 64px 1fr;gap:10px;align-items:baseline;width:100%;padding:8px 6px;border:0;border-bottom:1px solid rgba(255,255,255,.05);background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background .08s}.decod-row:hover{background:#ffb27a0f}.decod-row:last-child{border-bottom:0}.decod-row.active{background:#ffb27a1a}.decod-row.active .help-label{color:#ffd6a8}.decod-dot{font-size:13px;line-height:1;color:#5a6066;width:24px;text-align:center}.decod-row.active .decod-dot{color:#ffb27a}
