/* AF control module: concentric machined bezel, rubber grip and fixed lighting. */
.receiver-audio{display:grid;grid-template-columns:minmax(0,1fr) 104px;grid-template-rows:1fr 1fr auto;gap:8px 16px;padding:14px 16px 10px;margin:10px 0;background:linear-gradient(135deg,#393d3d,#222626 55%,#181d1d);border:1px solid #69706a;border-radius:9px;box-shadow:inset 0 1px 1px #aeb7ac55,inset 0 -3px 5px #0008,0 4px 7px #0006;color:#e4e9de;font:400 .72rem Atkinson,sans-serif;text-align:left;min-width:0}
.radio-console .receiver-audio button{min-height:38px;min-width:0;padding:7px 10px;font:700 .75rem Atkinson,sans-serif;color:#eceee3;background:linear-gradient(#555b57 0%,#343b36 18%,#252b27 85%,#161c18);border:1px solid #6a756b;border-bottom-color:#0b100d;border-radius:5px;box-shadow:inset 0 1px 1px #d7dfc544,0 3px 4px #0008;text-shadow:0 1px 1px #000;white-space:nowrap}
.receiver-audio #receiver-toggle{grid-column:1;grid-row:1;align-self:end}.receiver-audio #receiver-replay{grid-column:1;grid-row:2;align-self:start}
.radio-console .receiver-audio button[aria-pressed=true]{color:#ffe2a0;border-top-color:#d2af65;background:linear-gradient(#6b5835,#393324 25%,#25291f);box-shadow:inset 0 2px 2px #e9ba6233,0 3px 4px #0008}
.radio-console .receiver-audio button:active{transform:translateY(1px);box-shadow:inset 0 2px 4px #0008}.receiver-audio button:disabled{opacity:.45}
.receiver-audio .af-module{grid-column:2;grid-row:1/3;text-align:center;min-width:0}.receiver-audio .af-module label{display:block;color:#eef0e4;font:700 .7rem Atkinson,sans-serif;letter-spacing:.06em;margin:0 0 5px}.receiver-audio .af-module label span{color:#bac4b8;font-size:.55rem;margin-left:3px}
.af-knob{position:relative;width:88px;height:88px;margin:auto;touch-action:none;cursor:ns-resize;border-radius:50%;background:radial-gradient(circle,#111716 55%,#070b0a 56%,#555d56 59%,#202622 62%,transparent 64%)}
.af-scale{position:absolute;inset:0;border-radius:50%;background:repeating-conic-gradient(from 225deg,#c3c9b9 0deg 2deg,transparent 2deg 27deg);mask:radial-gradient(circle,transparent 66%,#000 67%,#000 72%,transparent 73%);clip-path:polygon(0 0,100% 0,100% 100%,78% 100%,50% 65%,22% 100%,0 100%)}
.af-cap{position:absolute;inset:13px;border-radius:50%;background:radial-gradient(ellipse at 32% 20%,#6a706c 0%,#3e4542 22%,#1b211f 55%,#101613 78%);box-shadow:inset 0 2px 2px #b1b9aa88,inset 0 -3px 3px #000,0 5px 6px #000b}
.af-cap::before{content:'';position:absolute;inset:3px;border-radius:50%;background:repeating-conic-gradient(#121714 0deg 4deg,#4f5750 5deg 7deg,#252d27 8deg 12deg);mask:radial-gradient(circle,transparent 65%,#000 67%)}
.af-cap::after{content:'';position:absolute;inset:8px;border-radius:50%;background:linear-gradient(135deg,#4b524e,#252b28 50%,#171e19);box-shadow:inset 0 1px 2px #89958655,inset 0 -1px 2px #000}
.af-cap i{position:absolute;inset:0;transform:rotate(var(--af-angle));z-index:2}.af-cap i::before{content:'';position:absolute;left:calc(50% - 1.5px);top:9px;width:3px;height:12px;background:#f3cd79;border-radius:1px;box-shadow:0 1px 2px #000}
.radio-console .receiver-audio .af-knob input{position:absolute;inset:0;width:100%;height:100%;min-height:0;opacity:0;margin:0;padding:0;pointer-events:none}
.af-knob:focus-within{outline:2px solid #f5ce7b;outline-offset:3px}.af-knob.adjusting{cursor:grabbing}.receiver-audio #af-level{display:block;width:auto;margin:2px 0 0;padding:0;background:none;border:0;box-shadow:none;text-shadow:none;color:#e6ca91;font:700 .7rem Atkinson,sans-serif;line-height:1.2}
.af-help{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.receiver-audio #receiver-status{grid-column:1/-1;grid-row:3;border-top:1px solid #626b5d66;padding-top:7px;text-align:center;color:#bbcbbf;font-size:.65rem;line-height:1.2;margin:0}
.radio-console .receiver-audio button:focus-visible{outline:2px solid #ffe2a0;outline-offset:3px}
@media(max-width:1000px){.receiver-audio{grid-template-columns:minmax(0,1fr) 100px minmax(0,1fr);grid-template-rows:auto auto;gap:5px 10px;margin:0 0 10px;padding:10px}.receiver-audio #receiver-toggle{grid-column:1;grid-row:1;align-self:center}.receiver-audio #receiver-replay{grid-column:3;grid-row:1;align-self:center}.receiver-audio .af-module{grid-column:2;grid-row:1}.radio-console .receiver-audio button{min-height:44px;padding:6px;font-size:.7rem}.receiver-audio #receiver-status{grid-row:2}.af-knob{width:76px;height:76px}.af-cap{inset:11px}}
@media print{.receiver-audio{display:none}}
.radio-console .receiver-audio #receiver-toggle::before{content:'';display:inline-block;width:13px;height:13px;margin-right:5px;vertical-align:-2px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M11 5 6 9H2v6h4l5 4V5Zm5 4 6 6m0-6-6 6'/%3E%3C/svg%3E") center/contain no-repeat}
.radio-console .receiver-audio #receiver-toggle[aria-pressed=true]::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M11 5 6 9H2v6h4l5 4V5Zm5 3c3 2 3 6 0 8m3-11c5 4 5 10 0 14'/%3E%3C/svg%3E")}
.radio-console .receiver-audio #receiver-toggle.audio-attention{color:#ffe4aa;border-color:#e9ba62;animation:receiver-invitation 2.5s ease-in-out infinite}
@keyframes receiver-invitation{0%,100%{background:#30362c;box-shadow:0 2px 3px #0006}50%{background:#66502b;box-shadow:0 3px 9px #e9ba624d}}
@media(prefers-reduced-motion:reduce){.radio-console .receiver-audio #receiver-toggle.audio-attention{animation:none;background:#574729}}
@media(min-width:1001px){.radio-console .console-workspace>.radio-controls,.radio-console .reference-chassis>.radio-controls{overflow-y:auto;overflow-x:hidden;min-height:0}.radio-controls .receiver-audio{flex:none;margin:5px 0;padding:10px 12px 8px;gap:6px 12px}.radio-console .radio-controls .tuning-dial{width:clamp(100px,16vh,150px);height:clamp(100px,16vh,150px);max-height:150px;flex:none}}

/* Compact AF strip: consistent left-to-right audio, volume, replay controls. */
.radio-console .receiver-audio{grid-template-columns:44px minmax(76px,1fr) 44px;grid-template-rows:auto;align-items:center;gap:8px;padding:8px 12px;margin:5px 0}
.receiver-audio #receiver-toggle{grid-column:1;grid-row:1;align-self:center}
.receiver-audio .af-module{grid-column:2;grid-row:1}
.receiver-audio #receiver-replay{grid-column:3;grid-row:1;align-self:center}
.radio-console .receiver-audio button{width:44px;height:44px;min-height:44px;padding:10px;display:grid;place-items:center}
.radio-console .receiver-audio #receiver-toggle::before{content:none}
.receiver-audio button svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.receiver-audio .speaker-cross{stroke:#ff8585;stroke-width:2.5}
.receiver-audio .speaker-waves{display:none}
.receiver-audio [aria-pressed=true] .speaker-cross{display:none}
.receiver-audio [aria-pressed=true] .speaker-waves{display:block}
.receiver-audio .af-module label{margin-bottom:0;font-size:.6rem}
.receiver-audio .af-knob{width:76px;height:76px}
.receiver-audio .af-cap{inset:11px}
.receiver-audio #af-level{margin-top:-2px;font-size:.6rem}
.receiver-audio #receiver-status{position:absolute;width:1px;height:1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%)}
.receiver-audio[data-state*="unavailable"] #receiver-status{position:static;width:auto;height:auto;clip-path:none;grid-column:1/-1;grid-row:2;font-size:.65rem}
.receiver-audio #af-level{min-height:0}

/* Touch-native volume shares the desktop control and audio state. */
@media(max-width:1000px){
 .radio-console .masthead .receiver-audio{grid-column:1/-1;order:4;width:100%;margin:0;padding:4px 0;background:none;border:0;box-shadow:none;gap:12px}
 .receiver-audio .af-module{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:0 8px;align-items:center}
 .receiver-audio .af-module label{grid-column:1;grid-row:1;text-align:left;font-size:.6rem;line-height:1.1}
 .receiver-audio #af-level{grid-column:2;grid-row:1;margin:0;line-height:1.1}
 .receiver-audio .af-knob{grid-column:1/-1;grid-row:2;width:100%;height:30px;background:none;border-radius:0;cursor:auto;touch-action:auto}
 .receiver-audio .af-scale,.receiver-audio .af-cap{display:none}
 .radio-console .receiver-audio .af-knob input{position:static;opacity:1;pointer-events:auto;width:100%;height:30px;accent-color:#e9ba62;cursor:pointer}
}

/* One receiver chassis with a compact physical control deck. */
@media(min-width:1001px){
 .radio-console .console-workspace>.radio-controls,.radio-console .reference-chassis>.radio-controls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:start;align-items:center;align-self:start;gap:8px 12px;padding:12px;overflow-y:auto;background:linear-gradient(115deg,#343936,#191e1c 65%);border:1px solid #72776b;border-radius:10px;box-shadow:inset 0 2px 2px #c5cbb03b,inset 0 -4px 8px #0008}
 .radio-controls>h2{grid-column:1/-1;margin:0;font:700 .7rem Atkinson,sans-serif;text-align:left;justify-content:space-between;color:#cbd3c4;letter-spacing:.08em;text-transform:uppercase}
 .radio-controls>h2::before,.radio-controls>h2::after{content:none}
 .radio-controls .activity-panel{grid-column:1/-1;margin:0;padding:8px;border-width:3px;outline-color:#626c62}
 .radio-controls .activity-panel .scope-heading{font-size:.55rem;min-height:28px}
 .radio-controls .scope-heading button{min-height:28px;padding:3px 8px;font-size:.55rem}
 .radio-controls .activity-panel #tune-label{font-size:1.35rem;min-height:0;padding:3px 0;line-height:1.15;text-align:left}
 .radio-controls .activity-panel .console-status{font-size:.6rem;justify-content:flex-start;padding:3px 0 5px}
 .radio-controls .activity-panel canvas{height:88px;margin:4px 0}
 .radio-controls .activity-panel dl{display:none}
 .radio-console .radio-controls .receiver-audio{grid-column:1;grid-row:3;grid-template-columns:44px 44px;justify-content:center;gap:4px;padding:0;margin:0;background:none;border:0;box-shadow:none}
 .radio-controls .receiver-audio .af-module{grid-column:1/-1;grid-row:1}
 .radio-controls .receiver-audio #receiver-toggle{grid-column:1;grid-row:2}
 .radio-controls .receiver-audio #receiver-replay{grid-column:2;grid-row:2}
 .radio-controls .receiver-audio .af-knob{width:62px;height:62px}
 .radio-controls .receiver-audio .af-module label{font-size:.5rem}
 .radio-controls .receiver-audio #af-level{font-size:.55rem}
 .radio-console .radio-controls .tuning-dial{grid-column:2;grid-row:3;width:120px;height:120px;max-width:100%;margin:0 auto}
 .radio-controls .tune-step{grid-column:1/-1;margin:0;gap:8px}
 .radio-controls .tune-step button{min-height:40px;padding:5px;font-size:.8rem}
 .radio-controls .receiver-help{grid-column:1/-1;border-top:1px solid #65705f;padding-top:4px;text-align:left;font-size:.65rem}
 .radio-controls .receiver-help summary{min-height:32px;align-content:center;cursor:pointer;color:#ced6c8}
 .radio-controls .receiver-help .control-hint{font-size:.65rem;line-height:1.4;margin:8px 0}
 .radio-controls .receiver-help a{display:block;min-height:32px;font-size:.65rem;margin:0}
}

/* A bounded invitation to commit the selected topic; never moves the control. */
.radio-console .radio-controls .tuning-dial.selection-reminder{outline:2px solid #f4ca73;outline-offset:3px;animation:vfo-selection-reminder 1.5s ease-in-out 3}
#console-status.selection-reminder{color:#ffe0a0;font-weight:700}
@keyframes vfo-selection-reminder{0%,100%{outline-color:#a98a4d;box-shadow:0 5px 8px #0008}50%{outline-color:#ffe6a8;box-shadow:0 5px 16px #e9ba6266}}
@media(prefers-reduced-motion:reduce){.radio-console .radio-controls .tuning-dial.selection-reminder{animation:none;outline-color:#f4ca73}}

@media screen and (min-width:1001px){
 .radio-console.reference-console .reference-chassis{grid-template-columns:140px minmax(0,1fr) 300px}
 .radio-console.reference-console .reference-chassis>.radio-controls{position:sticky;top:12px;max-height:calc(100vh - 24px);height:auto;min-height:0}
 .reference-console .activity-panel .console-status{display:flex}
 .reference-console .receiver-help .control-hint{display:block}
}
@media screen and (min-width:1001px) and (max-width:1200px){.radio-console.reference-console .reference-chassis{grid-template-columns:110px minmax(0,1fr) 260px}}

.radio-console .receiver-station-id{min-height:36px;padding:6px 10px;font-size:.65rem;margin-top:8px}

.radio-console .receiver-audio #receiver-toggle.resume-attention{color:#ffe4aa;border-color:#e9ba62;animation:receiver-invitation 2.5s ease-in-out 4}
@media(prefers-reduced-motion:reduce){.radio-console .receiver-audio #receiver-toggle.resume-attention{animation:none;background:#574729}}

.radio-console .radio-controls .tuning-dial.dial-attention{outline:2px solid #f4ca73;outline-offset:3px;animation:vfo-selection-reminder 2s ease-in-out infinite}
@media(prefers-reduced-motion:reduce){.radio-console .radio-controls .tuning-dial.dial-attention{animation:none}}
