.hotel-radio-modal{padding:16px}
.hotel-radio-modal .modal-card{width:min(660px,100%);max-height:calc(100dvh - 32px);padding:25px 28px;background:#1e221deb}
.hotel-radio-modal .modal-card h2{font-size:28px;margin:8px 0 20px}
.hotel-radio-modal .modal-card>.eyebrow{font-size:9px;margin:0}
.hotel-radio-panel{position:relative;padding:25px 28px 22px;border:2px solid #111b16;border-radius:12px;background:linear-gradient(115deg,#546151,#374738 60%,#2c3a2e);color:#e0d4ae;box-shadow:inset 0 1px 1px #b8bd9290,inset 0 -5px 1px #16241b,0 9px 20px #0005;font-family:Arial,sans-serif}
.radio-screw{position:absolute;width:8px;height:8px;border-radius:50%;background:linear-gradient(45deg,#9b9d83,#515b48 45%,#19261d 46%,#19261d 59%,#8b9275 60%);box-shadow:0 1px 2px #0008}.screw-tl{top:10px;left:10px}.screw-tr{top:10px;right:10px}.screw-bl{bottom:12px;left:10px}.screw-br{bottom:12px;right:10px}
.radio-topline{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:13px;letter-spacing:3px;font-weight:600;text-shadow:0 1px #1b281b}
.radio-topline small{font-size:9px;letter-spacing:1.6px;font-weight:400;margin-left:8px;color:#c1c7ae}
.radio-pilot{display:flex;align-items:center;gap:7px;font:9px monospace;letter-spacing:1px;color:#d1d6b1}
.radio-pilot:before{content:'';width:6px;height:6px;border-radius:50%;background:#bccb73;box-shadow:0 0 7px #b2cf6f}
.radio-face{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:19px;align-items:center;margin:24px 0 14px}
.radio-receiver{min-width:0}.radio-readout{min-height:130px;padding:16px 17px;background:linear-gradient(135deg,#23291c,#182218);border:4px solid #263023;border-radius:4px;box-shadow:inset 0 2px 10px #0009,0 1px #7c8964;color:#e9ce87;text-shadow:0 0 10px #dac17630}
.radio-readout>div{display:flex;align-items:center;justify-content:space-between;gap:10px}
.radio-readout b{font:32px/1.15 'Courier New',monospace;letter-spacing:2px;font-weight:600;white-space:nowrap}
.radio-rx{font:10px monospace;opacity:.2}.hotel-radio-panel[data-receiving=true] .radio-rx{opacity:1;color:#e8d28e}
.radio-readout>span{display:block;font:15px/1.3 Georgia,serif;margin:8px 0 6px}
.radio-readout>small{display:block;font:9px/1.5 monospace;color:#aeb78e}
.radio-speaker{height:44px;margin:18px 3px 0;border-radius:3px;background:repeating-linear-gradient(0deg,#1c291e 0 3px,#5c6951 4px,#3b4939 5px 7px);box-shadow:inset 2px 2px 5px #15211480;opacity:.85}
.radio-tuner{text-align:center;position:relative}
#radio-dial{width:190px;height:190px;position:relative;border-radius:50%;touch-action:none;user-select:none;cursor:grab;outline-offset:2px}
#radio-dial.is-turning{cursor:grabbing}#radio-dial:focus-visible{outline:2px solid #f0d89f}
.radio-knob{position:absolute;inset:35px;border-radius:50%;border:3px solid #10180f;background:repeating-conic-gradient(#1d261b 0deg 3deg,#46503b 3deg 5deg,#232e21 5deg 9deg);box-shadow:1px 8px 9px #121b10a0,0 -1px 0 #839073;transform:rotate(var(--dial-angle,135deg));transition:transform .12s ease-out}
.is-turning .radio-knob{transition:none}
.radio-knob-face{position:absolute;inset:8px;border-radius:50%;background:radial-gradient(circle at 38% 30%,#505941,#273121 75%);border:1px solid #6c7655;box-shadow:inset 0 1px 3px #9b9c6d44}
.radio-knob-pointer{position:absolute;top:13px;left:calc(50% - 2px);width:4px;height:23px;background:#eddaa2;border-radius:2px;box-shadow:0 0 3px #f2df9244}
.radio-dial-tick{position:absolute;inset:0;transform:rotate(var(--tick-angle));pointer-events:none;color:#c4c8a7;font:11px monospace}
.radio-dial-tick:after{content:'';position:absolute;top:22px;left:calc(50% - 1px);width:2px;height:7px;background:#a0ab83}
.radio-dial-tick>span{display:block;position:absolute;top:2px;left:calc(50% - 12px);width:24px;transform:rotate(calc(-1 * var(--tick-angle)))}
.radio-dial-tick.selected{color:#ffdfa0;font-weight:700}.radio-dial-tick.selected:after{background:#ffdfa0;box-shadow:0 0 4px #e4ce8d44}
.radio-tuning-label{display:block;font-size:9px;letter-spacing:2.6px;margin-top:-13px;pointer-events:none}
#radio-dial-help{display:block;font-size:9px;color:#bcc4a7;margin-top:9px}
.radio-bottom{border-top:1px solid #aab38b35;padding-top:15px}
.radio-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.radio-controls button{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:9px 14px;background:linear-gradient(#3a4936,#253323);color:#e3d9b6;border:1px solid #87906b80;border-radius:4px;box-shadow:0 2px 2px #1c281c;font:11px Arial,sans-serif}
.radio-controls svg{width:18px;height:18px}.radio-controls button:hover:not(:disabled){background:#506043;border-color:#c6bf89}.radio-controls button:disabled{opacity:.38;cursor:default}
#radio-power[aria-pressed=true] svg{color:#d6e69c}#radio-scan[aria-busy=true]{background:#596343}
.hotel-radio-modal #radio-state{min-height:15px;font:10px/1.5 Arial,sans-serif;color:#d0cba9;margin:14px 0 0}
.hotel-radio-panel[data-powered=false] .radio-readout{color:#7f8a66;text-shadow:none}.hotel-radio-panel[data-powered=false] .radio-readout>small{color:#7f8a66}.hotel-radio-panel[data-powered=false] .radio-pilot:before{background:#253422;box-shadow:none}
.radio-reports{margin-top:19px;font:12px Arial,sans-serif;color:#c6bda6}
.radio-reports>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;min-height:40px;border-bottom:1px solid #c9ac7330;padding:6px 0}
.radio-reports>summary::-webkit-details-marker{display:none}.radio-reports[open]>summary>span:last-child{transform:rotate(180deg)}
#radio-log-count{font:10px monospace;color:#b5b093;margin-left:7px}
.radio-transmission{padding:17px 0}.radio-transmission small{font:9px/1.5 monospace;color:#b4b39a}.hotel-radio-modal .radio-transmission h3{font:19px Georgia,serif;margin:9px 0}.hotel-radio-modal .radio-transmission p{font:12px/1.7 Arial,sans-serif;margin:8px 0 14px;color:#d3ccb9}
#radio-replay{font:11px Arial,sans-serif;border:1px solid #9b97615c;background:#263327;padding:9px 12px;border-radius:3px;color:#ded2b0}#radio-replay:disabled{opacity:.4;cursor:default}
.radio-history>summary{cursor:pointer;padding:12px 0;border-top:1px solid #c9ac7330;font-size:11px}#radio-log{max-height:190px;overflow:auto}#radio-log details{padding:8px 0;font-size:11px;border-bottom:1px solid #8d997433}#radio-log summary{cursor:pointer;line-height:1.6}.hotel-radio-modal #radio-log p{font-size:12px;line-height:1.7}
.hotel-radio-modal button:focus-visible,.radio-reports summary:focus-visible{outline:2px solid #efdda7;outline-offset:3px}
@media(max-width:540px){.hotel-radio-modal{padding:10px}.hotel-radio-modal .modal-card{padding:22px 16px;width:100%;max-height:calc(100dvh - 20px)}.hotel-radio-panel{padding:23px 16px 22px}.radio-face{grid-template-columns:1fr;gap:12px;margin:19px 0 16px}.radio-speaker{display:none}.radio-tuner{justify-self:center}.radio-readout{min-height:112px}.radio-controls{justify-content:center;gap:7px}.radio-controls button{padding:9px 11px}.radio-topline{font-size:11px;letter-spacing:2px}.radio-topline small{font-size:8px;margin-left:4px}.hotel-radio-modal #radio-state{text-align:center}.radio-reports{margin-top:11px}}
@media(prefers-reduced-motion:reduce){.radio-knob{transition:none}}
