/* Dedicated front panel; existing audio and station controls stay in place. */
.radio-page main{max-width:1740px;padding-top:22px}.radio-page .intro{margin-bottom:20px;align-items:center}.radio-page .intro h1{font-size:30px;line-height:1.1}.radio-page .intro h1 br{display:none}.radio-page .intro h1 em{margin-left:8px}.radio-page .intro>p{font-size:11px;margin:0}.radio-page .workspace{grid-template-columns:minmax(0,1fr) 290px;gap:20px}.radio-page .radio{background:linear-gradient(110deg,#30363b,#171d22 55%,#252c32);border:1px solid #62707a;box-shadow:0 22px 45px #0009,inset 0 0 0 5px #101418,inset 0 0 0 6px #48515a}.radio-page .radio-head{padding:22px 22px 15px;margin:0 7px}.radio-page .radio-brand{font-size:30px;font-style:italic}.radio-page .radio-brand span{color:#f5bd60}.transceiver-deck{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:24px;padding:24px 28px 12px}.screen-unit{min-width:0;background:#050c16;border:7px solid #0b0f14;border-radius:5px;box-shadow:0 0 0 1px #53616b,0 5px 10px #0008,inset 0 0 18px #123e5a;overflow:hidden}.screen-top{display:flex;justify-content:space-between;gap:8px;background:#123751;padding:8px 12px;color:#b3ddf4;font:9px monospace;letter-spacing:.6px}.screen-top span:last-child{color:#f9ca70}.radio-page .console{grid-template-columns:minmax(0,1fr) 140px;margin:0;gap:0;min-height:195px}.radio-page .console .meter{border:0;background:linear-gradient(130deg,#0a2032,#06111e);box-shadow:none;padding:15px 14px 8px;min-width:0}.radio-page .console .display{border:0;border-left:1px solid #294355;background:#081826;box-shadow:none;padding:14px 5px 10px;color:#ffd487;display:flex;flex-direction:column;justify-content:center}.radio-page .display strong{font:600 94px/1 'Barlow Condensed',sans-serif;text-shadow:0 0 14px #ffb84c33}.radio-page .display>span{font-size:8px;letter-spacing:1px}.radio-page .display b{font-size:10px;overflow-wrap:anywhere}.radio-page .display small{font-size:8px;color:#83abc2}.radio-page .scale{font-size:9px}.radio-page .current-speaker{margin-top:12px;min-height:58px}.radio-page .current-speaker strong{font-size:23px}.radio-page .audio-controls{margin-top:12px}.radio-page .level-row{grid-template-columns:26px minmax(30px,1fr) 78px}.radio-page .level-row span{font-size:8px}.sdr-panel{border-top:1px solid #294355;padding:8px 10px 0}.sdr-heading{display:flex;justify-content:space-between;gap:8px;color:#87b1cf;font:8px monospace;margin-bottom:6px}.sdr-heading span:last-child{color:#f4c56f}#audio-scope{display:block;width:100%;height:160px;background:#050d20}.scope-axis{display:flex;justify-content:space-between;color:#8db1c9;font:8px monospace;padding-top:4px}.sdr-panel p{font:8px monospace;color:#7293ab;margin:5px 0 8px}.screen-keys{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid #40586a}.screen-keys button{padding:11px 2px;background:linear-gradient(#233747,#101d2a);border:0;border-right:1px solid #41505c;border-radius:0;color:#e4c18b;font:9px monospace}.screen-keys button:last-child{border-right:0}.screen-keys button:hover{background:#34536c;color:white}.main-tuning{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-width:0;color:#d2dbe0}.model-mark{font:bold italic 25px 'Barlow Condensed',sans-serif;letter-spacing:2px;text-align:center;color:#e2e7ea}.model-mark small{display:block;font:7px monospace;color:#91a3ad;letter-spacing:.6px;margin-top:4px}.main-tuning>small{font:8px monospace;color:#9fadb7;text-align:center}#display-mode{margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:24px;width:150px;background:linear-gradient(#48525b,#252c32);border:1px solid #101418;box-shadow:0 3px 0 #101419,inset 0 1px #71808a;color:#f0c47b;font:bold 12px monospace;padding:12px}#mode-value{font-size:10px;color:#a6e6ff}.radio-page .main-tuning .dial{flex:none;width:156px;height:156px;margin:15px 0 3px;border:7px solid #11171c;box-shadow:0 0 0 2px #6b747b,0 10px 14px #0009;background:repeating-conic-gradient(#151c22 0 4deg,#52616b 4deg 6deg);cursor:ns-resize;touch-action:none}.radio-page .main-tuning .dial::after{inset:12px;background:radial-gradient(at 35% 25%,#52616b,#252f38 60%,#131b21);box-shadow:inset 0 1px 2px #9bacb0,0 3px 6px #000}.radio-page .main-tuning .dial i{z-index:2;background:#e5bc76;transform-origin:50% 66px;top:5px;left:calc(50% - 2px);height:14px;width:4px;transform:rotate(var(--dial-angle,0deg))}.dial-caption{font:9px monospace;letter-spacing:1px}.dial-step{display:flex;gap:14px}.dial-step button{font-size:19px;padding:4px 19px;background:linear-gradient(#424e58,#202a33);border-color:#101820;box-shadow:0 2px #0b1118}.radio-page .channel-scale{margin-top:12px}.radio-page .tuning{margin:15px 30px;justify-content:flex-start;gap:12px}.radio-page .tuning .tune-label{flex:1}.radio-page .presets{margin-top:14px}.radio-page .speaker-strip{margin-top:15px}.radio-page .controls{margin-top:20px}.radio-page .ptt-wrap>button{border-radius:15px;background:linear-gradient(140deg,#45535d,#1b252e);border-color:#a4bac8;box-shadow:0 0 0 4px #0b1116,0 0 0 5px #54616a,0 8px 15px #0008}.radio-page .transmitting .screen-top{background:#6b2525;color:#ffe1ca}.radio-page .transmitting .screen-unit{box-shadow:0 0 0 1px #d87b59,0 0 18px #e05c3029}.radio-page .radio.off .screen-unit{opacity:.28}.radio-page .radio.off #audio-scope{visibility:hidden}.radio[data-view=bakkie] .sdr-panel{display:none}.radio[data-view=bakkie] .console{min-height:270px}.radio-page .radio[data-view=bakkie] .display strong{font-size:125px}.radio[data-view=compact] .sdr-panel,.radio[data-view=compact] .meter .audio-controls,.radio[data-view=compact] .meter .scale,.radio[data-view=compact] .meter-bottom{display:none}.radio[data-view=compact] .console{min-height:140px}.radio[data-view=compact] .current-speaker{border:0}.radio[data-view=compact] .main-tuning .model-mark,.radio[data-view=compact] #mode-help{display:none}.radio-page .radio[data-view=compact] .main-tuning .dial{width:110px;height:110px;margin:4px 0}.radio[data-view=compact] .transceiver-deck{grid-template-columns:minmax(0,1fr) 160px}.radio[data-view=compact] .main-tuning .dial i{transform-origin:50% 43px}.radio-page button:focus-visible,.radio-page [role=slider]:focus-visible{outline:2px solid #ffd07a;outline-offset:4px}.radio-page .main-tuning .dial:focus-visible{outline-offset:6px}
@media(max-width:1250px){.radio-page .workspace{grid-template-columns:minmax(0,1fr)}.radio-page .workspace>aside{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.radio-page .workspace>aside .side-card{margin:0}.radio-page .log-card{grid-column:1/-1}.transceiver-deck{grid-template-columns:minmax(0,1fr) 200px}}
@media(max-width:650px){.radio-page main{padding:18px 12px 0}.radio-page .intro h1{font-size:25px}.radio-page .intro>p{display:none}.radio-page .intro .eyebrow{font-size:7px;letter-spacing:1px}.radio-page .transceiver-deck,.radio[data-view=compact] .transceiver-deck{grid-template-columns:minmax(0,1fr);padding:18px 15px 10px;gap:16px}.radio-page .console{grid-template-columns:minmax(0,1fr) 108px;min-height:200px}.radio-page .console .meter{padding:12px 9px}.radio-page .display strong{font-size:82px}.radio-page .level-row{grid-template-columns:24px minmax(20px,1fr)}.radio-page .level-row span{grid-column:2;text-align:left}.screen-top{font-size:7px;padding:8px}.sdr-heading{font-size:7px}#audio-scope{height:130px}.screen-keys button{font-size:8px;padding:13px 1px}.main-tuning{display:grid;grid-template-columns:minmax(0,1fr) 112px;gap:8px 16px;padding:3px 10px}.model-mark{font-size:23px}.main-tuning .tuning-wheel{grid-column:2;grid-row:1/5}.radio-page .main-tuning .dial{width:104px;height:104px;margin:0}.radio-page .main-tuning .dial i{transform-origin:50% 40px}.main-tuning #display-mode{width:100%;margin:0}.main-tuning #mode-help,.main-tuning>small:last-of-type{display:none}.main-tuning .dial-caption{grid-column:1;font-size:8px;text-align:center}.dial-step{grid-column:2;justify-content:center;gap:10px}.dial-step button{padding:2px 15px}.radio-page .radio-head{padding:21px 12px 14px}.radio-page .radio-head small{font-size:6px}.radio-page .power-area{gap:7px}.radio-page .power-area>span{display:none}.radio-page .workspace>aside{grid-template-columns:minmax(0,1fr)}.radio-page .indicators{flex-wrap:wrap;gap:10px}.radio-page .indicators span:last-child{margin-left:0}.radio[data-view=bakkie] .console{min-height:240px}.radio-page .radio[data-view=bakkie] .display strong{font-size:100px}.radio-page .radio[data-view=compact] .main-tuning .dial{width:104px;height:104px}.radio[data-view=compact] .main-tuning #display-mode{grid-column:1;grid-row:1}.radio[data-view=compact] .main-tuning .dial-caption{grid-row:2}.radio[data-view=compact] .main-tuning .dial-step{grid-row:5}}
/* Shared network metadata, no extra audio subscriptions. */
.channel-waterfall{margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #294355}.band-screen{position:relative;background:#050d20;border:1px solid #294355}#channel-waterfall{display:block;width:100%;height:144px}#band-targets{position:absolute;inset:0;display:grid;grid-template-columns:repeat(40,minmax(0,1fr))}#band-targets button{min-width:0;padding:0;border:0;border-right:1px solid #25446455;border-radius:0;background:transparent;touch-action:manipulation}#band-targets button:hover:not(:disabled){background:#ffffff20}#band-targets button:focus-visible{outline:2px solid #fff;outline-offset:-2px;z-index:2}#band-targets button:disabled{cursor:not-allowed;background:repeating-linear-gradient(135deg,transparent 0 4px,#6a728a14 4px 6px)}#band-selected{position:absolute;top:0;bottom:0;left:calc((var(--band-channel,14) - 1)*2.5%);width:2.5%;border:1px solid #ffd487;background:#ffd4870a;pointer-events:none;z-index:1}.band-scale{position:relative;height:14px;margin-top:4px;font:8px monospace;color:#8db1c9}.band-scale span{position:absolute;transform:translateX(-50%)}.band-scale span:nth-child(1){left:1.25%}.band-scale span:nth-child(2){left:23.75%}.band-scale span:nth-child(3){left:48.75%}.band-scale span:nth-child(4){left:73.75%}.band-scale span:nth-child(5){left:98.75%}.band-footer{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#9bb7cd;font:9px monospace}.band-footer i{display:inline-block;width:6px;height:6px;margin-right:4px}.voice-key{background:#3bc7ff}.beacon-key{background:#ffc46a}.band-footer label{display:flex;align-items:center;gap:6px}.radio-page #band-channel{padding:4px;background:#102737;color:#ffd487;border:1px solid #436278;border-radius:3px;font:11px monospace}.radio.off .band-screen{opacity:.3}.radio.off #band-selected{display:none}@media(max-width:650px){.band-footer{font-size:8px;flex-wrap:wrap}.band-footer label{margin-left:auto}.channel-waterfall .sdr-heading{flex-wrap:wrap}#channel-waterfall{height:144px}}
/* Connection controls belong to the transceiver, with details folded away. */
.radio-page header{height:66px;gap:22px}.radio-page main{padding-top:14px}.radio-page .intro{margin-bottom:10px}.radio-page .intro .eyebrow,.radio-page .intro>p{display:none}.radio-page .intro h1{font-size:23px;margin:0}.radio-page .station-strip{padding:7px 12px;margin-bottom:12px}.radio-page .radio-head{gap:12px;flex-wrap:wrap;padding:18px 20px 14px}.radio-page .radio-head .connection-bar{flex:1 1 420px;min-width:0;flex-wrap:wrap;gap:7px 10px;margin:0 5px;padding:9px 12px;border-color:#344c5c;background:#0a1721;font-size:10px;box-shadow:inset 2px 0 #3bc7ff}.radio-page .radio-head .connection-bar>span:nth-child(2){flex:1 1 180px;font-size:9px;line-height:1.5}.radio-page .radio-head .connection-bar>span:first-child{font-weight:600}.radio-page .radio-head .connection-bar button{padding:7px 9px;font-size:10px}.transceiver-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 28px 0;align-items:start}.radio-page .transceiver-links .connection-diagnostics{min-width:0;margin:0;padding:8px 11px;background:#101c26;border-color:#344954;border-radius:4px}.transceiver-links .connection-diagnostics summary{font-size:10px;line-height:1.5}.transceiver-links .connection-diagnostics summary span{margin-left:6px;font-size:9px}.transceiver-links .connection-diagnostics[open]{grid-column:1/-1;padding:12px}.radio-page .transceiver-links .recovery-note{grid-column:1/-1;margin:0;font-size:11px}.radio-page .transceiver-links .recovery-note[hidden]{display:none}.radio-page .transceiver-deck{padding-top:16px}.radio-page .transceiver-links .quality-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
@media(min-width:1251px){.radio-page .console{min-height:160px}.radio-page .console .meter{padding-top:11px}.radio-page .current-speaker{min-height:45px;margin-top:8px}.radio-page .current-speaker strong{font-size:21px}.radio-page #channel-waterfall{height:112px}.radio-page #audio-scope{height:112px}.radio-page .channel-waterfall{margin-bottom:8px;padding-bottom:5px}.radio-page .sdr-panel{padding-top:6px}.radio-page .main-tuning{gap:8px}.radio-page .channel-scale{margin-top:8px;margin-bottom:8px}.radio-page .tuning{margin-top:10px;margin-bottom:10px}.radio-page .speaker-strip{margin-top:10px;padding-top:10px}.radio-page .controls{margin-top:10px;padding-top:16px;padding-bottom:14px}}
@media(max-width:900px){.radio-page .radio-head .connection-bar{order:3;flex-basis:100%;margin:0}.radio-page .radio-head .power-area{margin-left:auto}.radio-page header{gap:10px}}
@media(max-width:650px){.radio-page header{height:auto;min-height:62px;flex-wrap:wrap;padding-top:10px;padding-bottom:10px;gap:8px}.radio-page .radio-head{padding:18px 12px 12px}.radio-page .radio-head .connection-bar{padding:9px;gap:8px}.radio-page .radio-head .connection-bar>span:nth-child(2){flex-basis:100%;order:2}.radio-page .transceiver-links{grid-template-columns:minmax(0,1fr);margin:10px 15px 0;gap:7px}.transceiver-links .connection-diagnostics summary span{display:inline;margin-left:4px}.radio-page .intro h1{font-size:22px}.radio-page .station-strip{font-size:7px}.radio-page .transceiver-deck{padding-top:14px}}
/* SDR: modulation and audio scope share one row, channel activity below. */
.audio-scope-panel{min-width:0;padding:11px 12px 7px;border-left:1px solid #294355;background:#071320}.radio:not([data-view=sdr]) .audio-scope-panel{display:none}.audio-scope-panel .sdr-heading{font-size:8px;flex-wrap:wrap;gap:4px;line-height:1.4}.audio-scope-panel .scope-axis{font-size:7px}.audio-scope-panel p{font:8px/1.5 monospace;color:#7293ab;margin:5px 0 0}.radio-page .radio[data-view=sdr] .console{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 110px;min-height:0}.radio-page .radio[data-view=sdr] .console .display{padding:10px 4px}.radio-page .radio[data-view=sdr] .display strong{font-size:80px}.radio-page .radio[data-view=sdr] .audio-scope-panel #audio-scope{height:126px}.radio-page .radio[data-view=sdr] .console .meter{padding:11px 12px 8px}.radio-page .radio[data-view=sdr] .current-speaker{min-height:44px;margin-top:7px}.radio-page .radio[data-view=sdr] .current-speaker strong{font-size:20px}.radio-page .radio[data-view=sdr] .audio-controls{margin-top:8px}.radio-page .radio[data-view=sdr] .sdr-panel{padding-top:8px}.radio-page .radio[data-view=sdr] .channel-waterfall{margin:0;padding:0;border-bottom:0}.radio-page .radio[data-view=sdr] #channel-waterfall{height:96px}.radio-page .radio[data-view=sdr] .screen-keys button{padding-top:9px;padding-bottom:9px}.radio-page .radio[data-view=sdr] .main-tuning .model-mark{font-size:21px}.radio-page .radio[data-view=sdr] .main-tuning .dial{width:132px;height:132px;margin:6px 0}.radio-page .radio[data-view=sdr] .main-tuning .dial i{transform-origin:50% 54px}.radio-page .radio[data-view=sdr] .channel-scale,.radio-page .radio[data-view=sdr]>.tuning,.radio-page .radio[data-view=sdr]>.speaker-strip{display:none}.radio-page .radio[data-view=sdr] .transceiver-deck{gap:18px;padding-bottom:10px}.radio-page .radio[data-view=sdr] .indicators{margin-top:3px;margin-bottom:10px}.radio-page .radio[data-view=sdr] .presets{margin-top:0}.radio-page .radio[data-view=sdr] .controls{margin-top:0;padding-top:15px;padding-bottom:12px;grid-template-columns:minmax(0,1fr) 150px minmax(0,1fr)}.radio-page .radio[data-view=sdr] .control-bank{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:center;max-width:360px}.radio-page .radio[data-view=sdr] .control-bank .volume-control{border:0;padding-top:0}.radio-page .radio[data-view=sdr] .gain-knob{width:50px;height:50px;margin-top:10px;margin-bottom:8px}.radio-page .radio[data-view=sdr] .ptt-wrap>button{width:112px;height:104px}.radio-page .radio[data-view=sdr] .ptt-wrap strong{font-size:37px}.radio-page .radio[data-view=sdr] .ptt-wrap>p{margin:6px 0}.radio-page .radio[data-view=sdr] .speech-queue{margin-top:0;padding-top:10px;padding-bottom:10px}.radio-page .radio[data-view=sdr] .station-controls{padding-top:10px;padding-bottom:10px}
@media(min-width:651px){.radio-page .radio[data-view=sdr] .level-row{grid-template-columns:24px minmax(25px,1fr)}.radio-page .radio[data-view=sdr] .level-row span{grid-column:2;text-align:right}.radio-page .radio[data-view=sdr] .level-scale{margin-right:0}}
@media(max-width:650px){.radio-page .radio[data-view=sdr] .console{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.radio-page .radio[data-view=sdr] .console .display{grid-column:1/-1;grid-row:1;flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap;border-left:0;border-bottom:1px solid #294355;padding:8px}.radio-page .radio[data-view=sdr] .display strong{font-size:48px}.radio-page .radio[data-view=sdr] .display small{display:none}.radio-page .radio[data-view=sdr] .console .meter{grid-column:1;grid-row:2;padding:10px 8px}.radio-page .radio[data-view=sdr] .audio-scope-panel{grid-column:2;grid-row:2;padding:10px 6px}.radio-page .radio[data-view=sdr] .audio-scope-panel #audio-scope{height:124px}.radio-page .radio[data-view=sdr] .scale{font-size:7px;flex-wrap:wrap;gap:5px}.radio-page .radio[data-view=sdr] .current-speaker strong{font-size:17px}.radio-page .radio[data-view=sdr] .current-speaker>span{font-size:7px;letter-spacing:.5px}.radio-page .radio[data-view=sdr] .main-tuning .dial{width:104px;height:104px;margin:0}.radio-page .radio[data-view=sdr] .main-tuning .dial i{transform-origin:50% 40px}.radio-page .radio[data-view=sdr] .controls{grid-template-columns:minmax(0,1fr) 112px minmax(0,1fr);gap:10px;padding:16px 14px}.radio-page .radio[data-view=sdr] .control-bank{grid-template-columns:minmax(0,1fr);gap:10px}.radio-page .radio[data-view=sdr] .ptt-wrap>button{width:96px;height:96px}.radio-page .radio[data-view=sdr] .ptt-wrap small{font-size:4px}.radio-page .radio[data-view=sdr] .gain-knob{width:44px;height:44px}.radio-page .radio[data-view=sdr] .switches{font-size:7px}.radio-page .radio[data-view=sdr] .ptt-clock{width:100%}}
.radio-page .radio[data-view=sdr] .ptt-wrap>button{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 6px}.radio-page .radio[data-view=sdr] .ptt-wrap>button strong{line-height:1.1}.radio-page .radio[data-view=sdr] .ptt-wrap>button span{font-size:6px;line-height:1.3;letter-spacing:.3px}.radio-page .radio[data-view=sdr] .ptt-wrap>button small{display:block;max-width:100%;font-size:5px;line-height:1.4;letter-spacing:.15px}
/* Matched rotary controls, with the native audio values retained internally. */
.radio-page .control-bank .rotary-control{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:64px;border:0;padding:0;font:9px monospace}.rotary-control .knob-label{color:#b3c7d2;font-size:8px;letter-spacing:.8px}.radio-page .rotary-control output{float:none;color:#f5c574;font:10px monospace}.radio-page .control-bank .small-control-knob{position:relative;flex:none;width:44px;height:44px;margin:0;border:4px solid #09121a;border-radius:50%;background:repeating-conic-gradient(#101a23 0deg 7deg,#526775 7deg 10deg);box-shadow:0 2px 4px #000b,0 0 0 1px #4c606e;cursor:ns-resize;touch-action:none;outline:none}.small-control-knob::after{content:'';position:absolute;inset:4px;border-radius:50%;background:radial-gradient(at 30% 25%,#536875,#1a2935 70%);box-shadow:inset 0 1px 2px #fff3}.small-control-knob i{position:absolute;inset:0;z-index:1;transform:rotate(var(--gain-angle,0deg))}.small-control-knob i::before{content:'';position:absolute;width:2px;height:8px;left:calc(50% - 1px);top:3px;background:#ffd487;border-radius:1px}.radio-page .control-bank .small-control-knob:focus-visible{outline:2px solid #ffd487;outline-offset:4px}.radio-page .control-bank{display:grid;grid-template-columns:repeat(2,minmax(64px,1fr));align-items:center;gap:12px;max-width:200px}.radio-page .control-bank [type=hidden]{display:none}
/* Tight SDR front: the radio fits a Full HD workspace without scaling its text. */
.radio-page:has(.radio[data-view=sdr]) main{max-width:1540px;padding-top:10px}.radio-page:has(.radio[data-view=sdr]) .intro{display:none}.radio-page:has(.radio[data-view=sdr]) .station-strip{margin-bottom:10px}.radio-page .radio[data-view=sdr] .radio-head{padding-top:12px;padding-bottom:10px;gap:10px}.radio-page .radio[data-view=sdr] .radio-head .connection-bar{flex-basis:360px;padding:7px 10px}.radio[data-view=sdr] .transceiver-links{margin-top:8px}.radio[data-view=sdr] .transceiver-links .connection-diagnostics{padding-top:6px;padding-bottom:6px}.radio-page .radio[data-view=sdr] .transceiver-deck{grid-template-columns:minmax(0,1fr) 128px;padding:12px 20px 8px;gap:16px}.radio-page .radio[data-view=sdr] .screen-top{padding:6px 10px}.radio-page .radio[data-view=sdr] .console{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 90px}.radio-page .radio[data-view=sdr] .console .meter{padding:9px 10px 6px}.radio-page .radio[data-view=sdr] .audio-controls{margin-top:6px}.radio-page .radio[data-view=sdr] .current-speaker{min-height:32px;padding-top:6px;margin-top:5px}.radio-page .radio[data-view=sdr] .current-speaker strong{font-size:18px;margin-top:3px}.radio-page .radio[data-view=sdr] .current-speaker>span{font-size:7px;letter-spacing:1px}.radio-page .radio[data-view=sdr] .meter-bottom{padding-top:5px;margin-top:5px;font-size:7px}.radio-page .radio[data-view=sdr] .display strong{font-size:64px}.radio-page .radio[data-view=sdr] .audio-scope-panel{padding:9px 9px 5px}.radio-page .radio[data-view=sdr] .audio-scope-panel #audio-scope{height:88px}.radio-page .radio[data-view=sdr] .audio-scope-panel .sdr-heading{font-size:7px}.radio-page .radio[data-view=sdr] .sdr-panel{padding-top:6px}.radio-page .radio[data-view=sdr] #channel-waterfall{height:72px}.radio-page .radio[data-view=sdr] .screen-keys button{padding-top:8px;padding-bottom:8px}.radio-page .radio[data-view=sdr] .main-tuning{gap:6px}.radio-page .radio[data-view=sdr] .main-tuning .model-mark{display:none}.radio-page .radio[data-view=sdr] #display-mode{width:118px;margin-top:0;padding:9px}.radio-page .radio[data-view=sdr] .main-tuning .dial{width:100px;height:100px;margin:4px 0}.radio-page .radio[data-view=sdr] .main-tuning .dial i{transform-origin:50% 38px}.radio-page .radio[data-view=sdr] .main-tuning .dial-caption{font-size:8px}.radio-page .radio[data-view=sdr] .dial-step button{padding:2px 15px}.radio-page .radio[data-view=sdr] .indicators{margin:3px 22px 8px}.radio-page .radio[data-view=sdr] .presets{margin-left:20px;margin-right:20px}.radio-page .radio[data-view=sdr] .presets button{padding-top:7px;padding-bottom:7px;font-size:18px}.radio-page .radio[data-view=sdr] .presets button span{font-size:7px;margin-top:2px}.radio-page .radio[data-view=sdr] .controls{grid-template-columns:170px 130px minmax(0,1fr);gap:20px;padding:14px 24px 10px}.radio-page .radio[data-view=sdr] .control-bank{grid-template-columns:repeat(2,minmax(64px,1fr));max-width:170px;gap:12px}.radio-page .radio[data-view=sdr] .ptt-wrap>button{width:104px;height:80px;gap:3px;padding:6px}.radio-page .radio[data-view=sdr] .ptt-wrap strong{font-size:30px}.radio-page .radio[data-view=sdr] .ptt-wrap>p{font-size:8px;margin:4px 0 0}.radio-page .radio[data-view=sdr] .ptt-clock{margin-top:6px}.radio-page .radio[data-view=sdr] .switches{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;font-size:9px}.radio-page .radio[data-view=sdr] .switches label{display:flex;gap:10px;align-items:center;margin:0}.radio-page .radio[data-view=sdr] .switches button{padding:6px;margin:0}.radio[data-view=sdr] .radio-utility{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin:0 22px 10px;padding-top:10px;border-top:1px solid #3a4e5c;align-items:center}.radio-page .radio[data-view=sdr] .speech-queue{margin:0;padding:0;border:0;box-shadow:none;grid-template-columns:100px minmax(0,1fr);gap:10px}.radio-page .radio[data-view=sdr] .queue-display{padding:7px 9px}.radio-page .radio[data-view=sdr] .station-controls{padding:0;border:0;gap:8px 12px}.radio-page .radio[data-view=sdr] .station-controls label{font-size:9px;gap:4px}.radio-page .radio[data-view=sdr] .station-controls select{padding:5px;font-size:10px}.radio-page .radio[data-view=sdr] .radio-foot{padding-top:9px;padding-bottom:9px}
@media(min-width:901px){.radio-page .radio[data-view=sdr] .level-row{grid-template-columns:22px minmax(25px,1fr) 76px;gap:4px;margin:5px 0}.radio-page .radio[data-view=sdr] .level-row>span{grid-column:auto;min-height:0;font-size:7px}.radio-page .radio[data-view=sdr] .level-scale{margin-right:76px}}
@media(max-width:1250px){.radio-page .radio[data-view=sdr] .radio-utility{grid-template-columns:minmax(0,1fr)}.radio-page .radio[data-view=sdr] .station-controls{border-top:1px solid #304552;padding-top:10px}}
@media(max-width:650px){.radio-page:has(.radio[data-view=sdr]) main{padding-top:10px}.radio-page .radio[data-view=sdr] .transceiver-deck{grid-template-columns:minmax(0,1fr);padding:12px 14px 8px;gap:12px}.radio-page .radio[data-view=sdr] .console{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.radio-page .radio[data-view=sdr] .console .display{padding:6px;gap:8px}.radio-page .radio[data-view=sdr] .display strong{font-size:40px}.radio-page .radio[data-view=sdr] .console .meter{padding:8px 6px}.radio-page .radio[data-view=sdr] .audio-scope-panel{padding:8px 5px}.radio-page .radio[data-view=sdr] .audio-scope-panel #audio-scope{height:100px}.radio-page .radio[data-view=sdr] .current-speaker strong{font-size:16px}.radio-page .radio[data-view=sdr] .main-tuning{grid-template-columns:minmax(0,1fr) 88px;padding:0 4px}.radio-page .radio[data-view=sdr] #display-mode{width:100%}.radio-page .radio[data-view=sdr] .main-tuning .dial{width:84px;height:84px;margin:0}.radio-page .radio[data-view=sdr] .main-tuning .dial i{transform-origin:50% 30px}.radio-page .radio[data-view=sdr] .presets{margin-left:15px;margin-right:15px}.radio-page .radio[data-view=sdr] .presets button{font-size:15px;padding-left:3px;padding-right:3px}.radio-page .radio[data-view=sdr] .controls{grid-template-columns:minmax(0,1fr) 100px;gap:14px;padding:12px 16px}.radio-page .radio[data-view=sdr] .control-bank{grid-template-columns:repeat(2,minmax(54px,1fr));gap:6px}.radio-page .control-bank .rotary-control{min-width:54px}.radio-page .radio[data-view=sdr] .ptt-wrap>button{width:88px;height:80px}.radio-page .radio[data-view=sdr] .switches{grid-column:1/-1;justify-content:center;font-size:8px;gap:10px}.radio-page .radio[data-view=sdr] .radio-utility{margin:0 16px 10px;gap:10px}.radio-page .radio[data-view=sdr] .speech-queue{grid-template-columns:90px minmax(0,1fr)}.radio-page .radio[data-view=sdr] .station-controls{gap:10px}.radio-page .radio[data-view=sdr] .station-controls select{max-width:140px}}
.radio-page .radio[data-view=sdr] .control-bank .small-control-knob{width:44px;height:44px;margin:0}
/* Original DSEG7 Classic v0.46, bundled locally under SIL OFL 1.1. */
@font-face{font-family:'DSEG7 Classic';src:url('fonts/DSEG7Classic-Regular.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
.radio-page .radio #channel{font-family:'DSEG7 Classic',monospace;font-weight:400;font-style:normal;font-synthesis:none;font-size:52px;line-height:1.3;letter-spacing:1px;padding:4px 0;font-variant-numeric:normal}
.radio-page .radio[data-view=sdr] #channel{font-size:44px}.radio-page .radio[data-view=bakkie] #channel{font-size:60px}.radio-page .radio[data-view=compact] #channel{font-size:48px}
@media(max-width:650px){.radio-page .radio[data-view=sdr] #channel{font-size:34px;padding:2px 0}.radio-page .radio[data-view=bakkie] #channel{font-size:44px}.radio-page .radio[data-view=compact] #channel{font-size:42px}}
/* Small memory keys grouped immediately above the tuning wheel. */
.radio-page .radio .main-tuning .presets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;max-width:156px;gap:4px;margin:4px 0;padding:0}.radio-page .radio .main-tuning .presets button{min-width:0;min-height:28px;margin:0;padding:4px 2px;font:600 15px/1 'Barlow Condensed',sans-serif;border-radius:4px}.radio-page .radio .main-tuning .presets button span{display:none}.radio-page .radio .main-tuning .presets #preset{grid-column:span 2}.radio-page .radio[data-view=sdr] .main-tuning .presets{margin:2px 0}.radio-page .radio .main-tuning .presets button:focus-visible{outline-offset:1px}
@media(max-width:650px){.radio-page .radio .main-tuning{grid-template-columns:minmax(0,1fr) 120px;gap:8px 12px}.radio-page .radio .main-tuning .presets{grid-column:2;grid-row:1;justify-self:center;margin:0;max-width:120px}.radio-page .radio .main-tuning .presets button{font-size:14px;min-height:28px}.radio-page .radio .main-tuning .tuning-wheel{grid-column:2;grid-row:2/5;justify-self:center}.radio-page .radio .main-tuning .model-mark{grid-column:1;grid-row:1}.radio-page .radio .main-tuning #display-mode{grid-column:1;grid-row:2}.radio-page .radio .main-tuning .dial-caption{grid-column:1;grid-row:3}.radio-page .radio .main-tuning .dial-step{grid-column:2;grid-row:5;justify-self:center}}
/* One right-hand control cluster: memories, mode, tuning, gain and volume. */
.radio-page .radio .main-tuning .presets{grid-template-columns:repeat(5,minmax(0,1fr));max-width:168px;margin:0 0 3px;gap:4px}.radio-page .radio .main-tuning .presets #preset{grid-column:auto}.radio-page .radio .main-tuning .presets button{min-height:28px;font-size:14px}.radio-page .radio .main-tuning .control-bank{width:100%;max-width:168px;grid-template-columns:repeat(2,minmax(54px,1fr));gap:10px;margin:5px 0 0;padding-top:9px;border-top:1px solid #465864}.radio-page .radio .main-tuning .small-control-knob{width:44px;height:44px;margin:0}.radio-page .radio .controls{grid-template-columns:150px minmax(0,1fr)}.radio-page:has(.radio[data-view=sdr]) main{max-width:1440px}.radio-page .radio[data-view=sdr] .transceiver-deck{grid-template-columns:minmax(0,1fr) 168px;gap:14px;padding:10px 18px 8px}.radio-page .radio[data-view=sdr] .main-tuning{gap:6px}.radio-page .radio[data-view=sdr] .main-tuning>small{display:none}.radio-page .radio[data-view=sdr] #display-mode{width:100%;max-width:168px;padding:8px 10px}.radio-page .radio[data-view=sdr] .main-tuning .dial{width:88px;height:88px;margin:2px 0}.radio-page .radio[data-view=sdr] .main-tuning .dial i{transform-origin:50% 32px}.radio-page .radio[data-view=sdr] .audio-scope-panel #audio-scope{height:76px}.radio-page .radio[data-view=sdr] #channel-waterfall{height:64px}.radio-page .radio[data-view=sdr] .screen-top{padding:5px 8px}.radio-page .radio[data-view=sdr] .screen-keys button{padding-top:7px;padding-bottom:7px}.radio-page .radio[data-view=sdr] .controls{grid-template-columns:120px minmax(0,1fr);padding:10px 22px 8px;gap:22px}.radio-page .radio[data-view=sdr] .indicators{margin-bottom:4px}
@media(max-width:650px){.radio-page .radio .main-tuning,.radio-page .radio[data-view=sdr] .main-tuning{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:8px 14px;padding:0 4px}.radio-page .radio .main-tuning .model-mark{display:none}.radio-page .radio .main-tuning .presets{grid-column:1;grid-row:1;max-width:none;margin:0}.radio-page .radio .main-tuning .presets button{font-size:13px;min-height:28px;padding:3px 1px}.radio-page .radio .main-tuning #display-mode{grid-column:1;grid-row:2;width:100%;max-width:none}.radio-page .radio .main-tuning .control-bank{grid-column:1;grid-row:3/6;max-width:none;margin:0;padding-top:7px;align-self:start;gap:6px}.radio-page .radio .main-tuning .tuning-wheel{grid-column:2;grid-row:1/4;justify-self:center}.radio-page .radio .main-tuning .dial-caption{grid-column:2;grid-row:4;font-size:7px}.radio-page .radio .main-tuning .dial-step{grid-column:2;grid-row:5;gap:10px}.radio-page .radio .main-tuning>small{display:none}.radio-page .radio .main-tuning .control-bank .rotary-control{min-width:0}.radio-page .radio[data-view=sdr] .transceiver-deck{grid-template-columns:minmax(0,1fr);padding:10px 14px 8px;gap:12px}.radio-page .radio[data-view=sdr] .audio-scope-panel #audio-scope{height:96px}.radio-page .radio[data-view=sdr] .controls{grid-template-columns:100px minmax(0,1fr);gap:12px;padding:12px 16px}.radio-page .radio[data-view=sdr] .switches{grid-column:2;justify-content:flex-start}.radio-page .radio .main-tuning .knob-label{font-size:7px;letter-spacing:.3px}}
/* Receiver state lives inside the display; LEDs remain tied to real RX/TX state. */
.radio-page .radio .screen-unit .indicators{display:grid;grid-template-columns:auto auto auto minmax(0,1fr);align-items:center;gap:10px 14px;margin:0;padding:7px 10px;border-bottom:1px solid #294355;background:#0a1b29;font:9px/1.5 monospace;color:#c4d9e6}.radio-page .radio .screen-unit .indicators>span:nth-child(-n+2){display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.radio-page .radio .screen-unit .indicators i{display:inline-block;flex:none;width:12px;height:12px;margin:0;border:1px solid #4b6473;border-radius:50%;background:#121e28;box-shadow:inset 0 1px 3px #000a}.radio-page .radio .screen-unit .indicators #rx-led.green{background:#29e1b2;border-color:#99ffe2;box-shadow:0 0 8px #29e1b280,inset 0 1px 2px #ffffff66}.radio-page .radio.transmitting .screen-unit .indicators #tx{border-color:#ffd0bc;box-shadow:0 0 9px #ff805c99,inset 0 1px 2px #ffffff66}.radio-page .radio .screen-unit #station-label{min-width:0;margin-left:0;text-align:right;overflow-wrap:anywhere}.radio-page .radio .screen-unit #mode-label{white-space:nowrap;color:#91aabc}.radio-page.live-connected .radio .screen-unit #mode-label{color:#55edcc}
@media(max-width:650px){.radio-page .radio .screen-unit .indicators{grid-template-columns:auto auto minmax(0,1fr);padding:7px 8px;gap:6px 12px;font-size:8px}.radio-page .radio .screen-unit #station-label{grid-column:1/-1;text-align:left;font-size:8px}.radio-page .radio .screen-unit #mode-label{text-align:right}.radio-page .radio .screen-unit .indicators i{width:13px;height:13px}}
