/* Isolated radio dock; the TV and page keep their own viewport. */
.fox-radio-shell { margin: 0; background: #f6f7f8; }
.fox-radio-workspace { position: fixed; inset: 0; display: grid; grid-template-rows: minmax(0, 1fr) auto; width: 100%; height: 100%; height: 100dvh; overflow: hidden; }
.fox-radio-workspace [hidden], .fox-radio-workspace[hidden] { display: none !important; }
.fox-radio-page-frame { display: block; width: 100%; height: 100%; min-height: 0; border: 0; background: #fff; }
.fox-radio-bar { --radio-mint: #74ead1; position: relative; padding: 1px 2px 0; background: #eaf0f3; color: #f5fafb; font-family: inherit; box-shadow: 0 -6px 28px #16293812; }
.fox-radio-console { position: relative; display: grid; grid-template-columns: minmax(200px, 1fr) 60px minmax(180px, 1.15fr) 140px 36px; align-items: center; gap: 26px; min-height: 96px; margin: 0 auto; padding: 18px 24px max(18px, env(safe-area-inset-bottom)); border: 1px solid #354c56; border-radius: 20px; background: radial-gradient(ellipse at 4% 0, #234d4f80, transparent 50%), linear-gradient(115deg, #14272e, #101c27 65%, #182a32); box-shadow: 0 8px 24px #12212b26, inset 0 1px 0 #ffffff0b; }
.fox-radio-console::before { content: ''; position: absolute; top: -1px; left: 32px; right: 32px; height: 1px; background: linear-gradient(90deg, transparent, #74ead180, #e7c98b66, transparent); }
.fox-radio-bar button { cursor: pointer; font: inherit; }
.fox-radio-bar button:focus-visible, .fox-radio-bar input:focus-visible { outline: 3px solid #f4d49a; outline-offset: 4px; }
.fox-radio-identity { display: flex; align-items: center; gap: 14px; min-width: 0; }
.fox-radio-art { display: grid; place-items: center; flex: 0 0 60px; width: 60px; height: 60px; padding: 0; border: 1px solid #90c8b92b; border-radius: 16px; background: linear-gradient(140deg, #315554, #1b323c); box-shadow: 0 4px 12px #0002; color: #a1efdd; }
.fox-radio-logo { width: 100%; height: 100%; object-fit: contain; border-radius: 15px; background: #ffffff0a; }
.fox-radio-art-icon { width: 30px; height: 30px; }
.fox-radio-station { display: grid; gap: 4px; min-width: 0; }
.fox-radio-bar .fox-radio-eyebrow { color: #a5bcbf; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; line-height: 1.4; }
.fox-radio-station > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 16px; font-weight: 750; line-height: 1.3; color: #f5fafb; }
.fox-radio-status { display: flex; align-items: center; gap: 6px; color: #bac8ce; font-size: 11px; line-height: 1.4; }
.fox-radio-status::before { content: ''; width: 5px; height: 5px; flex: 0 0 5px; border-radius: 50%; background: #83949e; }
.fox-radio-bar.is-playing .fox-radio-status { color: #91e8ce; }
.fox-radio-bar.is-playing .fox-radio-status::before { background: #74ead1; box-shadow: 0 0 0 3px #74ead112; }
.fox-radio-play { position: relative; display: grid; place-items: center; width: 60px; height: 60px; padding: 0; border: 1px solid #f8e5b9; border-radius: 50%; background: linear-gradient(135deg, #ffe7ae, #e8ba65); color: #172b31; box-shadow: 0 0 0 5px #f5ce8210, 0 5px 18px #0003; transition: transform .18s, box-shadow .18s; }
.fox-radio-play:hover { transform: translateY(-2px); box-shadow: 0 0 0 7px #f5ce8217, 0 6px 20px #0004; }
.fox-radio-play [data-radio-play-icon] { font-size: 0; width: 18px; height: 20px; position: relative; }
.fox-radio-play [data-radio-play-icon]::before { content: ''; position: absolute; top: 1px; left: 3px; border-top: 9px solid transparent; border-bottom: 9px solid transparent; border-left: 14px solid currentColor; }
.fox-radio-play[aria-pressed="true"] [data-radio-play-icon]::before { top: 1px; left: 1px; width: 16px; height: 18px; border: 0; background: linear-gradient(90deg, currentColor 0 5px, transparent 5px 11px, currentColor 11px); border-radius: 1px; }
.fox-radio-copy { display: grid; align-content: center; gap: 8px; min-width: 0; padding-left: 26px; border-left: 1px solid #afc4ce24; }
.fox-radio-track-heading { display: flex; align-items: center; gap: 9px; }
.fox-radio-wave { display: flex; align-items: center; gap: 3px; height: 14px; color: #718b91; }
.fox-radio-wave i { display: block; width: 2px; height: 5px; border-radius: 2px; background: currentColor; transform-origin: center; }
.fox-radio-wave i:nth-child(2), .fox-radio-wave i:nth-child(4) { height: 10px; }
.fox-radio-wave i:nth-child(3) { height: 14px; }
.is-playing .fox-radio-wave { color: var(--radio-mint); }
.is-playing .fox-radio-wave i { animation: fox-radio-wave 1s ease-in-out infinite alternate; }
.is-playing .fox-radio-wave i:nth-child(2) { animation-delay: -.35s; }
.is-playing .fox-radio-wave i:nth-child(3) { animation-delay: -.7s; }
.is-playing .fox-radio-wave i:nth-child(4) { animation-delay: -.2s; }
.is-playing .fox-radio-wave i:nth-child(5) { animation-delay: -.5s; }
@keyframes fox-radio-wave { from { transform: scaleY(.4); } to { transform: scaleY(1); } }
.fox-radio-copy [data-radio-track], .fox-radio-track-placeholder { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; line-height: 1.5; color: #f0f5f6; }
.fox-radio-copy [data-radio-track] { font-weight: 650; }
.fox-radio-track-placeholder { color: #b2c3cb; font-weight: 400; }
.fox-radio-copy:has([data-radio-track]:not([hidden])) .fox-radio-track-placeholder { display: none; }
.fox-radio-bar.is-playing .fox-radio-track-placeholder { font-size: 0; }
.fox-radio-bar.is-playing .fox-radio-track-placeholder::after { content: 'Você está ouvindo nossa rádio'; font-size: 14px; }
.fox-radio-volume { display: grid; gap: 10px; margin: 0; }
.fox-radio-volume-heading { display: flex; align-items: center; gap: 7px; color: #b8c9ce; font-size: 10px; }
.fox-radio-volume-heading svg { width: 15px; height: 15px; }
.fox-radio-volume-heading [data-radio-volume-value] { margin-left: auto; font-variant-numeric: tabular-nums; }
.fox-radio-volume input { appearance: none; -webkit-appearance: none; width: 100%; height: 4px; margin: 3px 0; padding: 0; border: 0; border-radius: 10px; background: linear-gradient(to right, #74ead1 0 var(--radio-volume, 80%), #ffffff26 var(--radio-volume, 80%) 100%); cursor: pointer; accent-color: #74ead1; }
.fox-radio-volume input::-webkit-slider-thumb { appearance: none; width: 11px; height: 11px; border-radius: 50%; background: #c7fff1; box-shadow: 0 0 0 3px #74ead118; }
.fox-radio-volume input::-moz-range-thumb { width: 11px; height: 11px; border: 0; border-radius: 50%; background: #c7fff1; }
.fox-radio-minimize, .fox-radio-expand { display: flex; align-items: center; justify-content: center; border: 1px solid #bed5df24; border-radius: 10px; background: #ffffff05; color: #b7c9d1; padding: 8px; }
.fox-radio-minimize svg, .fox-radio-expand svg { width: 18px; height: 18px; }
.fox-radio-minimize:hover, .fox-radio-expand:hover { background: #ffffff12; color: #fff; }
.fox-radio-expand { gap: 14px; font-size: 12px !important; }
.fox-radio-bar.is-collapsed { padding-top: 1px; }
.fox-radio-bar.is-collapsed .fox-radio-console { display: flex; justify-content: flex-end; gap: 14px; min-height: 48px; padding: 6px 14px max(6px, env(safe-area-inset-bottom)); border-radius: 14px; }
.fox-radio-bar.is-collapsed .fox-radio-identity, .fox-radio-bar.is-collapsed .fox-radio-copy, .fox-radio-bar.is-collapsed .fox-radio-volume { display: none; }
.fox-radio-bar.is-collapsed .fox-radio-play { flex: 0 0 34px; width: 34px; height: 34px; box-shadow: none; }
.fox-radio-bar.is-collapsed .fox-radio-play [data-radio-play-icon] { transform: scale(.7); }
.fox-radio-loading { position: absolute; top: 8px; left: 50%; transform: translateX(-50%); border-radius: 20px; padding: 7px 18px; background: #122336; color: #fff; font-size: 12px; pointer-events: none; box-shadow: 0 3px 15px #0002; }
.fox-radio-navigation-error { position: absolute; top: 8px; left: 10px; right: 10px; padding: 14px; border-radius: 10px; background: #fff4dd; color: #593f17; text-align: center; }
.fox-radio-navigation-error button { cursor: pointer; margin-left: 12px; }
@media (max-width: 1000px) {
 .fox-radio-console { grid-template-columns: minmax(170px, 1fr) 52px minmax(150px, 1fr) 32px; gap: 18px; padding: 16px 20px max(16px, env(safe-area-inset-bottom)); }
 .fox-radio-play { width: 52px; height: 52px; }
 .fox-radio-volume { display: none; }
 .fox-radio-copy { padding-left: 18px; }
}
@media (max-width: 600px) {
 .fox-radio-bar { padding: 1px 2px 0; }
 .fox-radio-console { grid-template-columns: minmax(0, 1fr) 44px 28px; gap: 7px 12px; min-height: 80px; padding: 12px 12px max(12px, env(safe-area-inset-bottom)); border-radius: 16px; }
 .fox-radio-identity { gap: 10px; }
 .fox-radio-art { flex-basis: 42px; width: 42px; height: 42px; border-radius: 12px; padding: 0; }
 .fox-radio-art-icon { width: 24px; height: 24px; }
 .fox-radio-logo { border-radius: 11px; }
 .fox-radio-station > .fox-radio-eyebrow { display: none; }
 .fox-radio-station > strong { font-size: 13px; }
 .fox-radio-status { font-size: 10px; }
 .fox-radio-play { width: 44px; height: 44px; }
 .fox-radio-play [data-radio-play-icon] { transform: scale(.8); }
 .fox-radio-copy { display: none; padding: 8px 0 0; border-left: 0; border-top: 1px solid #afc4ce24; grid-column: 1 / -1; grid-row: 2; }
 .fox-radio-bar:not(.is-collapsed) .fox-radio-copy:has([data-radio-track]:not([hidden])) { display: block; }
 .fox-radio-track-heading { display: none; }
 .fox-radio-copy [data-radio-track] { display: block; font-size: 12px; }
 .fox-radio-minimize { padding: 6px; }
}
@media (prefers-reduced-motion: reduce) { .fox-radio-bar *, .fox-radio-bar *::before { animation: none !important; transition: none !important; } }
@media print { .fox-radio-bar, .fox-radio-loading { display: none; } .fox-radio-workspace { position: static; height: auto; } }
