@font-face{font-family:Instrument Sans;src:url('/assets/instrument-400.woff2') format('woff2');font-weight:400;font-display:swap}@font-face{font-family:Instrument Sans;src:url('/assets/instrument-500.woff2') format('woff2');font-weight:500;font-display:swap}@font-face{font-family:Instrument Sans;src:url('/assets/instrument-600.woff2') format('woff2');font-weight:600 900;font-display:swap}
:root{color-scheme:light;--page:#fafbfc;--surface:#fff;--ink:#0e0c1b;--accent:#e2641e;--title:#ca3b3a;--panel:#fdfbf7;--muted:#686572;--line:#e8e6ed;--mint:var(--title);--peach:var(--accent);font-family:'Instrument Sans',system-ui,sans-serif;background:var(--page);color:var(--ink)}
:root[data-theme=dark]{color-scheme:dark;--page:#0f0d18;--surface:#1b1827;--ink:#f3f3f6;--panel:#211d2e;--muted:#aaa5b7;--line:#353041}
*{box-sizing:border-box}body{background:var(--page);color:var(--ink)}button,input,select{font-family:inherit}a,button,input{touch-action:manipulation}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--accent);outline-offset:4px}button:disabled{opacity:.5;cursor:not-allowed}[hidden]{display:none!important}.shell{max-width:1220px;padding:0 32px}header{position:relative;justify-content:center;padding:22px 0 16px;border:0;min-height:190px}.official-brand{display:inline-flex;text-decoration:none;flex-shrink:0}.official-brand img{width:245px;height:150px;object-fit:contain}.logo-dark{display:none}:root[data-theme=dark] .logo-light{display:none}:root[data-theme=dark] .logo-dark{display:block}header nav{position:absolute;right:0;top:25px;gap:12px}header nav>a:first-of-type{display:none}header nav .admin{color:var(--muted);border-color:var(--line);border-radius:9px;font-size:12px;min-height:38px}.theme-toggle{width:38px;height:38px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font-size:21px;padding:0}.intro{padding:0 0 22px}.intro .eyebrow,.intro .lede{display:none}.intro h1{font-size:19px;letter-spacing:-.3px;font-weight:500;color:var(--muted)}.onair{background:var(--surface);border-color:var(--line);color:var(--title)}.onair.offline{background:var(--panel);color:var(--accent);border-color:var(--line)}.hero{grid-template-columns:29% 43% 28%;padding:30px;gap:0;border:0;border-radius:18px;background:var(--surface);box-shadow:0 12px 45px #0e0c1b0c;overflow:visible}.artstage{padding:0 20px 0 0;justify-content:center}.cover{border-radius:14px;box-shadow:none}.record-ring,.art-caption{display:none}.now{padding:4px 25px 4px 4px}.now h2{font-size:clamp(25px,2.5vw,34px);font-weight:600;letter-spacing:-1px}.eyebrow,.overline{color:var(--title);letter-spacing:1.2px;font-size:11px}.artist,.hero-copy .artist{color:var(--ink);font-size:17px}.album,.quality-label,.player-status,.timing-note,.volume span,.timebar>div,.panel-heading>span,.panel-heading p,.track-copy small,.track-row time,.hint,.empty,.notice,.lede,.about p,footer p,footer>a:last-child,.episode small{color:var(--muted)}.broadcast{margin:10px 0}.broadcast span,.tag{background:var(--panel);border:1px solid var(--line);color:var(--muted)}.timebar progress,.timebar progress::-webkit-progress-bar{background:var(--line)}.timebar progress::-webkit-progress-value{background:var(--accent)}.timebar progress::-moz-progress-bar{background:var(--accent)}progress,input[type=range]{accent-color:var(--accent)}.primary-controls{gap:14px;margin:18px 0 14px;flex-wrap:wrap}.play-button{background:var(--accent);color:#fff;font-weight:600;padding:12px 20px;border-radius:10px;font-size:14px;min-height:44px}.play-button:hover{background:#cb5517}.quality-label{font-size:11px}.volume input{accent-color:var(--accent)}.timing-note{font-size:10px}.secondary,.track-row .request-button,.linkbutton{background:var(--surface);border:1px solid var(--line);border-radius:9px;color:var(--ink)}.secondary:hover,.track-row .request-button:hover{background:var(--panel)}.text-button{color:var(--title)}.upcoming{background:var(--panel);border-radius:12px;padding:18px;align-self:stretch;display:flex;flex-direction:column;justify-content:center;min-width:0}.upcoming-song{text-align:center;min-width:0}.upcoming-song p.eyebrow{text-align:left;margin:0 0 10px}.upcoming-song img{width:120px;height:120px;object-fit:cover;border-radius:9px}.upcoming-song h3{font-size:15px;margin:10px 0 3px;overflow-wrap:anywhere}.upcoming-song p:not(.eyebrow){font-size:13px;margin:0 0 4px}.upcoming-song small{font-size:11px;color:var(--muted)}.upcoming-song+.upcoming-song{border-top:1px solid var(--line);margin-top:15px;padding-top:15px;text-align:left}.upcoming-song+.upcoming-song img{float:left;width:44px;height:44px;margin:0 10px 5px 0}.upcoming-song+.upcoming-song h3{font-size:12px;margin-top:0}.upcoming-song+.upcoming-song p:not(.eyebrow){font-size:11px}.upcoming-song+.upcoming-song small{display:none}.song-votes{margin-top:14px}.vote-buttons{display:inline-flex;gap:8px}.vote-button{background:transparent;border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:5px 11px;min-height:36px;display:inline-flex;gap:7px;align-items:center}.vote-button[aria-pressed=true]{color:var(--accent);border-color:var(--accent);background:var(--panel)}.vote-symbol{font-size:22px;line-height:1}.vote-count{font-size:12px}.vote-help,.vote-unavailable{font-size:11px;color:var(--muted);display:block;margin-top:6px}.vote-status{font-size:12px;color:var(--title);line-height:1.5;margin:6px 0 0}.vote-status:empty{display:none}.programme-section{padding:26px 0 0}.programme-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px}.programme-heading h2{font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--title);margin:0}.programme-heading a{font-size:11px;text-decoration:none;color:var(--muted)}.programme-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.programme-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;min-width:0}.programme-card>img{width:100%;aspect-ratio:205/115;object-fit:cover;display:block}.programme-card>div{padding:13px}.programme-card h3{font-size:15px;line-height:1.3;margin:0 0 8px;letter-spacing:-.2px}.programme-card p{font-size:13px;line-height:1.5;margin:0;color:var(--muted)}.programme-card p.programme-time{font-size:11px;font-weight:600;color:var(--accent);margin-bottom:6px}.muted{font-size:11px;line-height:1.6;color:var(--muted)}.discover{padding-top:25px}.section-heading{margin-bottom:20px}.section-heading .eyebrow,.little-star{display:none}.section-heading h2{font-size:23px}.tabs button{color:var(--muted)}.tabs button[aria-selected=true]{color:var(--title);border-bottom-color:var(--title)}.track-list{gap:0 25px}.track-copy strong{font-size:13px}.about,.podcast-playing,dialog{background:var(--surface);border-color:var(--line);color:var(--ink)}.about{margin:28px 0}.about>span{color:var(--accent)}.wordmark span{color:var(--title)}#search{background:var(--surface);border-color:var(--line);color:var(--ink)}.request-hours{display:flex;gap:8px;flex-wrap:wrap;background:var(--panel);padding:16px;border-radius:10px;font-size:12px}.request-hours strong,.request-hours small{width:100%;color:var(--muted)}.request-hours span{border:1px solid var(--line);padding:6px 10px;border-radius:6px}.request-hours small{font-size:11px;margin-top:4px}.metadata-status{color:var(--title)}footer .wordmark{color:var(--ink)}
/* Private operations dashboard: preserve metrics and controls in the same visual system. */
.admin-page main{max-width:1220px;padding:0 32px 32px}.admin-page header{justify-content:space-between}.admin-page header nav{position:static}.admin-page header nav>a:first-of-type{display:inline-flex}.admin-page .official-brand img{width:196px;height:120px}.admin-page header{min-height:160px;border-bottom:1px solid var(--line)}.admin-page .back-player{background:var(--accent);color:white;border-radius:9px}.admin-page .private{color:var(--muted);border-color:var(--line)}.admin-page .eyebrow{margin-top:25px}.admin-page h1{font-size:38px;letter-spacing:-1.3px}.admin-page p{color:var(--muted)}.admin-page .radiohero,.admin-page .card,.admin-page .panel,.admin-page .metric{background:var(--surface);border-color:var(--line);box-shadow:0 8px 30px #0e0c1b05}.admin-page .radiohero{background:var(--surface);grid-template-columns:220px 1fr;border:1px solid var(--line)}.admin-page .artist{color:var(--ink)}.admin-page .tag{background:var(--panel);color:var(--muted)}.admin-page .times,.admin-page .tiny,.admin-page .summary small,.admin-page #checked,.admin-page .spec,.admin-page .quality span,.admin-page .statslist dt,.admin-page .statslist dd,.admin-page .section-title span,.admin-page .metric small,.admin-page .history-row small,.admin-page .history-row time,.admin-page .mount small,.admin-page .chart-labels,.admin-page .audience,.admin-page .statusline,.admin-page footer{color:var(--muted)}.admin-page button:not(.theme-toggle):not(.vote-button){background:var(--accent);color:white}.admin-page button.secondary{background:var(--panel);color:var(--ink);border:1px solid var(--line)}.admin-page .url{background:var(--page);color:var(--ink);border-color:var(--line)}.admin-page .badge{background:var(--panel);color:var(--muted)}.admin-page .badge.good{background:#e0f1e9;color:#216a45}.admin-page .badge.bad{background:#ffe2df;color:#9d2929}:root[data-theme=dark] .admin-page .badge.good{background:#18372b;color:#a6ddbc}:root[data-theme=dark] .admin-page .badge.bad{background:#472127;color:#ffb7b7}.admin-page .legend{color:var(--accent)}.admin-page .history-row,.admin-page .mount,.admin-page .note{border-color:var(--line)}.admin-page .progress,.admin-page .metric progress{accent-color:var(--accent)}.admin-page .vote-status,.admin-page .statusline.error{color:var(--title)}
@media(max-width:1000px){.hero{grid-template-columns:36% 64%;padding:24px}.upcoming{grid-column:1/-1;margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:20px}.upcoming-song img{float:left;width:58px;height:58px;margin-right:12px}.upcoming-song{text-align:left}.upcoming-song+.upcoming-song{margin:0;padding:0 0 0 20px;border-top:0;border-left:1px solid var(--line)}.programme-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px}.programme-card{flex:0 0 205px;scroll-snap-align:start}.upcoming-song h3{font-size:14px}.upcoming-song+.upcoming-song img{width:58px;height:58px}.upcoming-song+.upcoming-song h3{font-size:14px}.upcoming-song+.upcoming-song p:not(.eyebrow){font-size:13px}.programme-section{overflow:hidden}}
@media(max-width:600px){.shell,.admin-page main{padding-left:18px;padding-right:18px}header{padding-top:60px;min-height:205px}header nav{top:14px;right:0}.official-brand img{width:210px;height:129px}.intro{padding-bottom:16px}.intro h1{font-size:16px;letter-spacing:0}.intro{display:flex;gap:8px}.onair{margin:0;font-size:10px;padding:7px 9px}.hero{grid-template-columns:1fr;padding:22px}.artstage{padding:0 12px 20px}.cover{max-width:285px;align-self:center}.now{padding:0}.now h2{font-size:29px}.now .eyebrow{font-size:11px}.upcoming{padding:14px;gap:12px}.upcoming-song+.upcoming-song{padding-left:12px}.upcoming-song img,.upcoming-song+.upcoming-song img{width:42px;height:42px;margin-right:8px}.upcoming-song h3,.upcoming-song+.upcoming-song h3{font-size:12px}.upcoming-song p:not(.eyebrow),.upcoming-song+.upcoming-song p:not(.eyebrow){font-size:11px}.upcoming-song small{display:none}.upcoming-song p.eyebrow{font-size:10px}.programme-card{flex-basis:195px}.programme-heading{gap:10px}.admin-page header{padding:16px 0;min-height:0;justify-content:center}.admin-page header nav{justify-content:center;gap:9px}.admin-page h1{font-size:30px}.admin-page .radiohero{grid-template-columns:1fr}.admin-page .cover{width:160px}.admin-page .hero-copy h2{font-size:25px}.admin-page .summary{gap:18px}.admin-page .programme-heading h2{font-size:12px}.theme-toggle{flex-shrink:0}.track-copy strong{font-size:13px}.track-copy small{font-size:11px}.tabs button{font-size:11px}.tabs{gap:12px}}
/* Official player proportions: two thirds current song, one third coming up. */
body:not(.admin-page) .intro{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0}
body:not(.admin-page) header{min-height:198px;padding:24px 0}
body:not(.admin-page) #main{background:var(--surface);border-radius:16px;padding:32px;box-shadow:0 15px 45px #00000014}
body:not(.admin-page) .hero{grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);gap:32px;padding:0;box-shadow:none;border-radius:0}
.radio-main{min-width:0;padding:16px 0 0}.radio-main>.eyebrow{margin:0 0 10px}.track-presentation{display:grid;grid-template-columns:40% minmax(0,1fr);gap:24px;align-items:center;min-height:0}.track-presentation .artstage{padding:0}.track-presentation .now{padding:0}.track-presentation .now h2{font-size:30px;letter-spacing:-.8px;line-height:1.22;margin:0 0 6px}.track-presentation .cover{width:100%;max-width:none;border-radius:14px}.track-presentation .artist{font-size:16px;line-height:1.4}.track-presentation .album{font-size:13px;line-height:1.45;margin-top:5px}.track-presentation .broadcast{display:none}.track-presentation .vote-help{display:none}.track-presentation .song-votes{margin-top:10px}.track-presentation .vote-button{border:0;padding:0 3px;color:var(--muted);min-height:26px;gap:6px;background:transparent}.track-presentation .vote-button[aria-pressed=true]{color:var(--accent)}.vote-symbol svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5}.vote-button[data-vote=down] .vote-symbol svg{transform:rotate(180deg)}.radio-transport{display:grid;grid-template-columns:1fr auto;column-gap:20px;margin-top:20px;align-items:center}.radio-transport .timebar{grid-column:1/-1;margin:0 0 14px}.radio-transport .timebar progress{margin:0 0 8px;height:3px}.radio-transport .primary-controls{margin:0;gap:13px;flex-wrap:nowrap}.radio-transport #radio-toggle{width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;font-size:17px}.radio-transport #play-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.radio-transport .quality-label{font-size:12px;background:var(--page);border:1px solid var(--line);padding:9px 14px;border-radius:7px;color:var(--ink)}.radio-transport .volume{margin:0;gap:8px}.radio-transport .volume input{width:80px}.radio-transport .volume span{display:none}.radio-transport #mute{font-size:18px;color:var(--muted);padding:0}.radio-transport .player-status{grid-column:1/-1;font-size:10px;margin:9px 0 0;min-height:0}.radio-transport .timing-note{grid-column:1/-1;margin:3px 0 0;max-width:none;font-size:9px}.upcoming{display:flex;flex-direction:column;justify-content:flex-start;margin:0;padding:18px 16px;background:color-mix(in srgb,var(--panel) 55%,var(--surface));border-radius:12px;gap:0;align-self:stretch}.upcoming-song{text-align:center;min-width:0}.upcoming-song img{float:none;width:160px;height:160px;max-width:100%;margin:0;border-radius:7px}.upcoming-song h3{font-size:16px;font-weight:600;line-height:1.3;margin:10px 0 3px}.upcoming-song p:not(.eyebrow){font-size:14px}.upcoming-song small{font-size:12px;display:block}.upcoming-song+.upcoming-song{margin-top:16px;padding:14px 0 0;border-left:0;border-top:1px solid var(--line);display:grid;grid-template-columns:54px minmax(0,1fr);column-gap:12px;align-content:start;text-align:left}.upcoming-song+.upcoming-song .eyebrow{grid-column:1/-1;margin:0 0 10px}.upcoming-song+.upcoming-song img{grid-column:1;grid-row:2/5;width:54px;height:54px;margin:0;float:none}.upcoming-song+.upcoming-song h3{grid-column:2;margin:0 0 2px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-song+.upcoming-song p:not(.eyebrow){grid-column:2;font-size:12px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-song+.upcoming-song small{grid-column:2;font-size:11px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-counts{display:flex;justify-content:center;gap:10px;margin-top:8px;color:var(--muted);font-size:11px}.upcoming-counts span{display:inline-flex;align-items:center;gap:4px}.upcoming-counts svg{width:15px;height:15px}.upcoming-counts span+span svg{transform:rotate(180deg)}
body:not(.admin-page) .programme-section{border-top:1px solid var(--line);margin-top:16px;padding-top:24px}.programme-card{background:transparent}.programme-heading a{font-size:10px}.programme-card>div{padding:12px}.programme-card h3{font-size:15px}.programme-card p{font-size:14px}.programme-card p.programme-time{font-size:12px}body:not(.admin-page) .metadata-status:empty{display:none}body:not(.admin-page) .discover{border-top:1px solid var(--line);margin-top:20px}
@media(max-width:1023px){body:not(.admin-page) .hero{grid-template-columns:minmax(0,1fr);gap:22px}.upcoming{display:grid;grid-template-columns:1fr 1fr;gap:18px}.upcoming-song img{width:95px;height:95px}.upcoming-song+.upcoming-song{border-top:0;border-left:1px solid var(--line);margin:0;padding:0 0 0 18px;display:block}.upcoming-song+.upcoming-song img{float:left;margin:0 10px 8px 0;width:54px;height:54px}.upcoming-song+.upcoming-song h3{white-space:normal}.track-presentation .now h2{font-size:28px}.radio-transport .volume input{width:100px}}
@media(max-width:600px){body:not(.admin-page) header{min-height:198px;padding:60px 0 18px}.shell{padding:0 16px}body:not(.admin-page) #main{padding:20px;border-radius:16px}.radio-main{padding:0}.track-presentation{grid-template-columns:1fr;gap:18px}.track-presentation .artstage{padding:0 10px}.track-presentation .cover{max-width:285px}.track-presentation .now h2{font-size:25px}.track-presentation .artist{font-size:15px}.radio-main>.eyebrow{font-size:10px}.radio-transport{column-gap:8px}.radio-transport .quality-label{font-size:10px;padding:8px}.radio-transport .volume input{width:55px}.radio-transport .primary-controls{gap:9px}.radio-transport .volume{gap:5px}.radio-transport #radio-toggle{width:38px;height:38px;min-height:38px;flex-shrink:0}.radio-transport .timing-note{font-size:9px}.upcoming{padding:14px 12px;gap:12px;grid-template-columns:1fr 1fr}.upcoming-song p.eyebrow{font-size:10px}.upcoming-song h3{font-size:13px}.upcoming-song p:not(.eyebrow){font-size:12px}.upcoming-song small{font-size:11px}.upcoming-song+.upcoming-song{padding-left:12px}.upcoming-song+.upcoming-song img{float:none;width:60px;height:60px}.upcoming-song+.upcoming-song h3{font-size:12px}.upcoming-song+.upcoming-song small{white-space:normal}.programme-heading{align-items:baseline}.programme-heading a{font-size:9px}.programme-grid{margin:0 -4px}.section-heading h2{font-size:22px}.tabs{gap:8px}.tabs button{font-size:10px}.programme-card{flex-basis:195px}.about{padding:18px}.about div{min-width:0}.about h2{font-size:15px}}
.radio-transport #progress{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.wave-progress{display:block;width:100%;height:12px;margin:0 0 6px;fill:none;stroke-width:1.5}.wave-track{stroke:var(--line)}#progress-wave{stroke:var(--accent)}.radio-transport #mute svg{width:17px;height:17px;stroke-width:1.6}.radio-transport .volume input{appearance:none;height:24px;background:none;border:0;border-radius:0;cursor:pointer}.radio-transport .volume input::-webkit-slider-runnable-track{height:20px;background:var(--accent);clip-path:polygon(0 50%,100% 0,100% 100%)}.radio-transport .volume input::-webkit-slider-thumb{appearance:none;width:4px;height:20px;background:var(--ink);opacity:.65;border:0;border-radius:0}.radio-transport .volume input::-moz-range-track{height:20px;background:var(--accent);clip-path:polygon(0 50%,100% 0,100% 100%)}.radio-transport .volume input::-moz-range-thumb{width:4px;height:20px;background:var(--ink);border:0;border-radius:0;opacity:.65}
/* Original D-Tales glove icons; the selected vote fills the outer silhouette. */
.vote-symbol svg{width:24px;height:24px}.vote-button[aria-pressed=true] .thumb-outline{fill:currentColor}.upcoming-counts svg{width:16px;height:16px}
#popout-toggle{display:inline-flex;align-items:center;justify-content:center}#popout-toggle svg{width:21px;height:21px}#popout-toggle[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}.mini-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:300px;padding:30px;border:1px dashed var(--line);border-radius:12px}.mini-placeholder h2{font-size:22px;line-height:1.4;margin:0}.mini-placeholder p:not(.eyebrow){font-size:13px;color:var(--muted);line-height:1.6;max-width:350px}.mini-placeholder button{margin-top:12px}
body.mini-page{margin:0;padding:14px;background:var(--page);overflow-x:hidden;min-width:260px}.mini-page .radio-main{padding:0}.mini-page .radio-main>.eyebrow{display:none}.mini-page .track-presentation{display:grid;grid-template-columns:88px minmax(0,1fr);gap:14px;align-items:center}.mini-page .track-presentation .artstage{padding:0}.mini-page .track-presentation .cover{width:88px;height:88px;border-radius:10px}.mini-page .track-presentation .now h2{font-size:17px;line-height:1.22;letter-spacing:-.3px;margin:0 0 4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.mini-page .track-presentation .artist{font-size:14px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-page .track-presentation .album{font-size:12px;margin:3px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-page .song-votes{margin-top:6px}.mini-page .vote-symbol svg{width:22px;height:22px}.mini-page .vote-button{min-height:24px}.mini-page .vote-status{font-size:11px;margin-top:4px}.mini-page .vote-unavailable{font-size:10px;line-height:1.3}.mini-page .radio-transport{margin-top:16px;gap:0 12px}.mini-page .radio-transport .timebar{margin:0 0 12px}.mini-page .radio-transport .primary-controls{gap:12px}.mini-page .radio-transport .quality-label{font-size:11px;padding:8px 12px}.mini-page .radio-transport #radio-toggle{width:36px;height:36px;min-height:36px}.mini-page .radio-transport .volume input{width:75px}.mini-page .radio-transport .player-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.mini-page .radio-transport .player-status.error{position:static;width:auto;height:auto;clip-path:none;font-size:11px;margin-top:8px}.mini-page .timing-note{display:none}@media(max-width:350px){.mini-page .track-presentation{grid-template-columns:68px minmax(0,1fr);gap:10px}.mini-page .track-presentation .cover{width:68px;height:68px}.mini-page .track-presentation .now h2{font-size:15px}.mini-page .radio-transport .quality-label{padding:8px;font-size:10px}.mini-page .radio-transport .volume input{width:48px}}

/* Radio controls and programme detail view. */
.radio-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px}.radio-heading .eyebrow{margin:0}.radio-heading #popout-toggle{width:30px;height:30px;border:0;background:transparent;color:var(--muted)}.radio-heading #popout-toggle:hover{color:var(--accent);background:var(--panel)}
.radio-transport .primary-controls{min-width:0}.stream-source{min-width:0;max-width:230px;width:100%;font-size:12px;padding:10px 24px 10px 10px;border:1px solid var(--line);border-radius:7px;background:var(--page);color:var(--ink);cursor:pointer}.stream-source:focus-visible,.volume-slider:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.radio-transport .volume svg.volume-slider{width:80px;height:20px;overflow:visible;cursor:pointer;touch-action:none;user-select:none;stroke:none;flex-shrink:0}.volume-track{fill:var(--ink);opacity:.1}.volume-fill{fill:var(--accent)}
.programme-card{position:relative}.programme-open,.admin-page .programme-open{padding:0;margin-top:13px;border:0;background:none;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer}.programme-open::after{content:"";position:absolute;inset:0;border-radius:inherit}.programme-open:focus-visible{outline:0}.programme-open:focus-visible::after{outline:3px solid var(--accent);outline-offset:-3px}.programme-card:hover{border-color:var(--accent)}
.programme-dialog{position:fixed;inset:0;padding:0;margin:auto;width:min(800px,calc(100% - 32px));max-width:800px;max-height:calc(100dvh - 48px);border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);overflow:auto;box-shadow:0 25px 100px #0008}.programme-dialog::backdrop{background:#080911bd;backdrop-filter:blur(6px)}.programme-detail-image{display:block;width:100%;max-height:440px;aspect-ratio:16/9;object-fit:cover}.programme-close,.admin-page .programme-close{position:absolute;right:14px;top:14px;width:40px;height:40px;min-height:40px;padding:0;border:1px solid #ffffff50;border-radius:50%;background:#161725dc;color:white;font-size:28px;line-height:1;cursor:pointer;z-index:1}.programme-detail-body{padding:30px 36px 36px}.programme-detail-body h2{font-size:32px;letter-spacing:-.6px;margin:8px 0 18px;line-height:1.15;color:var(--title)}.programme-description{font-size:17px;line-height:1.7;white-space:pre-line}.programme-detail-body small{display:block;color:var(--muted);line-height:1.6;margin-top:24px}.programme-source{display:inline-block;margin-top:18px;color:var(--accent);font-size:13px}
.mini-page .radio-heading{margin-bottom:10px}.mini-page .radio-heading .eyebrow{font-size:9px}.mini-page .radio-heading #popout-toggle{width:24px;height:24px}.mini-page .stream-source{font-size:11px;padding:9px 20px 9px 8px}.mini-page .radio-transport{column-gap:10px}.mini-page .radio-transport .volume svg.volume-slider{width:65px}
@media(max-width:600px){.radio-heading{margin-bottom:16px}.radio-transport{column-gap:9px}.stream-source{font-size:10px;padding:10px 16px 10px 7px}.radio-transport .volume svg.volume-slider{width:55px}.programme-detail-body{padding:22px}.programme-detail-body h2{font-size:26px}.programme-description{font-size:15px}}
@media(max-width:350px){.mini-page .radio-transport .volume svg.volume-slider{width:40px}.mini-page .radio-transport .primary-controls{gap:7px}.mini-page .stream-source{font-size:10px}}

/* Listening history and song information. */
.history-search{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:10px;background:var(--page);color:var(--ink);font:inherit}.history-day{margin:24px 0 8px;font-size:12px;color:var(--muted);font-weight:500;text-transform:capitalize}.history-track{display:grid;grid-template-columns:52px minmax(0,1fr) 58px 16px;gap:16px;align-items:center;width:100%;padding:13px 8px;border:0;border-bottom:1px solid var(--line);background:transparent;text-align:left;color:var(--ink);cursor:pointer;border-radius:7px}.history-track:hover{background:var(--panel)}.history-track img{width:52px;height:52px;border-radius:7px;object-fit:cover}.history-copy{min-width:0;display:grid;gap:4px}.history-copy strong{font-size:14px}.history-copy span{font-size:13px}.history-copy small{font-size:11px;color:var(--muted)}.history-copy>*{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-stamp{display:grid;gap:5px;text-align:right;font-size:12px;color:var(--muted)}.history-stamp small{font-size:10px}.history-arrow{color:var(--muted)}#history-count{font-size:11px}#more-history{margin-top:20px}.discover-fold{border-top:1px solid var(--line);margin-top:24px}.discover-fold>summary{padding:25px 0;cursor:pointer;font-size:20px;font-weight:600}.discover-fold>summary span{display:block;margin:6px 0 0 19px;font-size:12px;color:var(--muted);font-weight:400}.discover-fold .panel{padding:0 0 20px}.track-info{font-size:11px;margin-top:10px;padding:0}.cover[role=button]{cursor:pointer}.cover[role=button]:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.track-dialog{inset:0;margin:auto;width:min(800px,calc(100% - 32px));max-width:800px;max-height:calc(100dvh - 40px);padding:0;border:1px solid var(--line);border-radius:20px;background:var(--surface);color:var(--ink);overflow:auto}.track-dialog::backdrop{background:#080911bd;backdrop-filter:blur(6px)}.track-detail-head{display:grid;grid-template-columns:180px minmax(0,1fr);gap:28px;align-items:center;padding:36px;background:var(--panel)}.track-detail-head img{width:180px;height:180px;border-radius:12px;object-fit:cover}.track-detail-head h2{font-size:28px;line-height:1.2;margin:10px 0;color:var(--title)}.detail-artist{font-size:17px}.detail-album{font-size:13px;color:var(--muted)}.track-detail-body{padding:28px 36px}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:0}.detail-grid dt{color:var(--muted);font-size:11px;margin-bottom:7px}.detail-grid dd{margin:0;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.track-lyrics{margin:28px 0}.track-lyrics h3{font-size:14px}.track-lyrics p{font-size:13px;line-height:1.7;white-space:pre-wrap;color:var(--muted)}.track-extra{border-top:1px solid var(--line);padding-top:20px}.track-extra summary{cursor:pointer;font-size:13px}.track-extra .detail-grid{margin-top:22px}.mini-page .track-info{font-size:10px;margin-top:5px}
@media(max-width:600px){.history-track{grid-template-columns:44px minmax(0,1fr) 42px;gap:10px;padding:12px 0}.history-track img{width:44px;height:44px}.history-arrow{display:none}.history-copy strong{font-size:12px}.history-copy span{font-size:11px}.history-copy small{font-size:10px}.track-dialog{width:100%;max-width:100%;max-height:92dvh;margin:auto 0 0;border-radius:22px 22px 0 0}.track-detail-head{grid-template-columns:90px minmax(0,1fr);gap:16px;padding:50px 22px 22px}.track-detail-head img{width:90px;height:90px}.track-detail-head h2{font-size:21px}.detail-artist{font-size:14px}.track-detail-body{padding:24px 22px}.detail-grid{gap:20px 15px}.detail-grid dd{font-size:12px}.discover-fold>summary{font-size:18px}}

/* Keep discovery compact and independent of the number of loaded tracks. */
.discover .section-heading{margin-bottom:12px}.discover-fold{margin-top:0}.discover-fold>summary{position:relative;list-style:none;display:grid;grid-template-columns:1fr 24px;gap:4px 16px;padding:22px 4px;font-size:18px}.discover-fold>summary::-webkit-details-marker{display:none}.discover-fold>summary::after{content:'+';grid-column:2;grid-row:1/3;align-self:center;justify-self:center;font-size:26px;font-weight:400;color:var(--muted)}.discover-fold[open]>summary::after{content:'−'}.discover-fold>summary span{grid-column:1;margin:0;font-size:12px;line-height:1.5}.discover-fold .panel{padding:0 4px 22px}.history-fold .panel-heading{margin-bottom:12px;font-size:11px;color:var(--muted)}.history-scroll{height:370px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--line) transparent;padding-right:10px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.history-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.history-scroll .history-day{position:sticky;top:0;z-index:1;background:var(--surface);margin:0;padding:12px 8px 8px;font-size:11px}.history-track{height:82px;min-height:82px;grid-template-columns:48px minmax(0,1fr) 60px 20px;gap:15px;padding:12px 8px}.history-track img{width:48px;height:48px}.history-copy{gap:3px;grid-template-rows:18px 16px 14px}.history-copy strong{font-size:13px;line-height:18px}.history-copy span{font-size:12px;line-height:16px}.history-copy small{font-size:10px;line-height:14px;min-height:14px}.history-stamp{font-variant-numeric:tabular-nums;white-space:nowrap}.history-fold #more-history{display:block;margin:14px auto 0;font-size:12px}.discover-fold .request-hours{max-height:140px;overflow:auto}.discover-fold #requests{max-height:420px;overflow:auto;overscroll-behavior:contain}.discover-fold #episode-list{max-height:420px;overflow:auto;overscroll-behavior:contain}
@media(max-width:600px){.history-scroll{height:330px;padding-right:3px}.history-track{height:76px;min-height:76px;grid-template-columns:40px minmax(0,1fr) 40px;gap:9px;padding:10px 2px}.history-track img{width:40px;height:40px}.history-copy strong{font-size:12px}.history-copy span{font-size:11px}.history-copy small{font-size:10px}.history-stamp{font-size:11px}.discover-fold>summary{font-size:17px;padding:20px 0}.discover-fold .panel{padding-left:0;padding-right:0}.history-search{font-size:12px;padding:12px}.history-scroll .history-day{padding-left:2px}}
#history.history-scroll{display:block;columns:auto}.history-scroll .history-track{width:100%}.history-scroll .history-day{width:100%}

/* Interactive artwork and upcoming tracks. */
.cover[role=button]{transition:box-shadow .18s ease,filter .18s ease}.cover[role=button]:hover,.cover[role=button]:focus-visible{box-shadow:0 0 0 3px var(--accent),0 8px 26px #e2672333;filter:brightness(1.06)}.track-info{display:inline-flex;align-items:center;min-height:30px;padding:5px 10px;border:1px solid var(--line);border-radius:7px;text-decoration:none;color:var(--accent);background:var(--panel)}.track-info:hover,.track-info:focus-visible{border-color:var(--accent);background:var(--page)}.selectable-track{cursor:pointer;border-radius:9px;transition:background .18s ease,box-shadow .18s ease}.selectable-track:hover,.selectable-track:focus-visible{background:color-mix(in srgb,var(--accent) 9%,var(--surface));box-shadow:0 0 0 2px var(--accent);outline:0}.track-hint{display:block;color:var(--accent);font-size:10px;margin-top:9px}.upcoming-song+.upcoming-song .track-hint{grid-column:2;font-size:9px;margin-top:6px}.history-track:hover,.history-track:focus-visible{background:color-mix(in srgb,var(--accent) 7%,var(--surface));box-shadow:inset 3px 0 var(--accent)}@media(prefers-reduced-motion:reduce){.cover[role=button],.selectable-track{transition:none}}

.language-control{display:inline-flex;align-items:center}.language-control select{height:38px;min-width:58px;border:1px solid var(--line);border-radius:9px;padding:0 8px;background:var(--surface);color:var(--ink);font-size:12px;font-weight:600;cursor:pointer}.language-control select:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.timezone-notice{padding:10px 13px;border:1px solid var(--line);border-radius:9px;color:var(--muted);background:var(--panel);font-size:11px;line-height:1.5;margin:0 0 20px}.admin-page .timezone-notice{margin-top:20px}.translation-note{display:block;font-size:10px;color:var(--muted);margin:8px 0}.admin-page .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}@media(max-width:600px){header nav{gap:8px}.language-control select{min-width:54px}.admin-page .dashboard-nav{flex-wrap:wrap}}

/* Dedicated on-demand transport; the radio transport is never a podcast pause button. */

/* Podcast occupies the same hero grid cell as live radio. */
.podcast-playing{min-width:0;padding:16px 0 0;margin:0;border:0;background:transparent;display:block}
#episode-art{width:100%;aspect-ratio:1;object-fit:cover}.episode-now{min-width:0}#episode-playing{overflow-wrap:anywhere}#episode-series,#episode-meta{color:var(--muted)}#episode-description{max-height:6em;overflow:auto;line-height:1.6;white-space:pre-line;font-size:13px}
.podcast-seek{margin:22px 0 16px}.podcast-seek input{width:100%;accent-color:var(--accent)}.podcast-seek>div{display:flex;justify-content:space-between;font-variant-numeric:tabular-nums;color:var(--muted);font-size:13px}.episode-transport{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.episode-transport button{min-height:44px}#episode-toggle{min-width:110px;background:var(--accent);color:#fff}#episode-volume{width:80px;accent-color:var(--accent)}#podcast-status{color:var(--muted);font-size:12px}.podcast-playing .hint{font-size:12px}.podcast-playing audio{display:none}
.radio-return{display:block;width:100%;border:0;border-radius:8px;padding:8px;background:transparent;color:var(--ink);cursor:pointer;font:inherit}.radio-return:hover,.radio-return:focus-visible{background:var(--surface);outline:2px solid var(--accent);outline-offset:3px}.radio-return small{color:var(--accent)}
@media(max-width:600px){.podcast-playing{padding:0}.episode-transport{gap:8px}.podcast-radio .radio-return{padding:4px}.podcast-radio .radio-return+.radio-return{padding-left:12px}.podcast-radio h3{white-space:normal}}

/* Request badges use the official orange in both themes. */
.request-art{display:inline-block;position:relative;vertical-align:top;max-width:100%;border-radius:7px}.request-art img{display:block}.request-label{position:absolute;right:0;bottom:0;z-index:2;padding:4px 8px;border-radius:8px 0 7px 0;background:#e2641e;color:#fff;font-size:12px;font-weight:600;line-height:1;letter-spacing:.35px;white-space:nowrap;pointer-events:none}
.main-request-art{width:100%;border-radius:14px}.main-request-art .request-label{font-size:14px;border-bottom-right-radius:14px}.upcoming-song+.upcoming-song .request-art{grid-column:1;grid-row:2/5;width:54px;height:54px}.upcoming-song+.upcoming-song .request-art img{float:none;margin:0;width:100%;height:100%}.upcoming-song+.upcoming-song .request-label{font-size:6px;letter-spacing:0;padding:3px 2px;border-top-left-radius:4px}.mini-page .main-request-art{width:88px}.mini-page .main-request-art .request-label{font-size:7px;padding:3px 4px;border-radius:5px 0 10px 0}
@media(max-width:1023px){.upcoming-song+.upcoming-song .request-art{float:left;margin:0 10px 8px 0}.upcoming-song .request-label{font-size:8px;padding:4px}}
@media(max-width:600px){.main-request-art{max-width:285px;align-self:center}.upcoming-song+.upcoming-song .request-art{float:none;margin:0 0 8px;width:60px;height:60px}.mini-page .main-request-art{max-width:88px}}
@media(max-width:350px){.mini-page .main-request-art{width:68px}}

.history-art{width:48px;height:48px}.history-art .request-label{font-size:5.5px;letter-spacing:0;padding:3px 2px;border-top-left-radius:4px;z-index:0}@media(max-width:600px){.history-art{width:40px;height:40px}.history-art .request-label{font-size:4.8px;padding:3px 1px}}

.detail-request-art{width:180px;height:180px;border-radius:12px}.detail-request-art .request-label{border-bottom-right-radius:12px}@media(max-width:600px){.detail-request-art{width:90px;height:90px}.detail-request-art .request-label{font-size:8px;padding:4px;letter-spacing:0}}

/* Match the single-column hero breakpoint on phones and tablets. */
@media(max-width:1023px){
 :is(#upcoming,#podcast-radio){display:flex;flex-direction:column;gap:0;padding:12px;align-self:start;width:100%}
 :is(#upcoming,#podcast-radio) .upcoming-song{display:grid;grid-template-columns:72px minmax(0,1fr);grid-template-rows:auto auto auto auto auto;gap:3px 12px;text-align:left;align-content:start;margin:0;padding:10px 2px;min-width:0;width:100%;border:0;min-height:112px}
 :is(#upcoming,#podcast-radio) .upcoming-song+.upcoming-song{border-top:1px solid var(--line);padding-top:16px;margin-top:6px}
 :is(#upcoming,#podcast-radio) .upcoming-song .eyebrow{grid-column:2;grid-row:1;margin:0 0 3px;font-size:10px}
 :is(#upcoming,#podcast-radio) .upcoming-song .request-art{grid-column:1;grid-row:1/6;float:none;width:72px;height:72px;margin:0;align-self:start}
 :is(#upcoming,#podcast-radio) .upcoming-song .request-art img{display:block;width:72px;height:72px;float:none;margin:0;object-fit:cover}
 :is(#upcoming,#podcast-radio) .upcoming-song h3{grid-column:2;grid-row:2;font-size:13px;line-height:1.35;margin:0;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 :is(#upcoming,#podcast-radio) .upcoming-song p:not(.eyebrow){grid-column:2;grid-row:3;font-size:12px;line-height:1.4;margin:0;white-space:normal;overflow-wrap:anywhere}
 :is(#upcoming,#podcast-radio) .upcoming-song small{grid-column:2;grid-row:4;font-size:10px;line-height:1.4;white-space:normal;overflow-wrap:anywhere;margin:0}
 :is(#upcoming,#podcast-radio) .upcoming-song .track-hint{grid-column:2;grid-row:5;font-size:10px;margin:3px 0 0}
 #upcoming .upcoming-counts{display:none}
 :is(#upcoming,#podcast-radio) .upcoming-song .request-label{font-size:7px;padding:3px 2px;letter-spacing:0}
}

#upcoming button.track-hint{border:0;background:transparent;padding:5px 0;cursor:pointer;font-family:inherit;text-align:inherit}#upcoming .upcoming-counts .vote-button{min-width:42px;min-height:38px;justify-content:center}#upcoming .upcoming-counts .vote-symbol svg{width:20px;height:20px}#upcoming .upcoming-counts .vote-count{transform:none}#upcoming .vote-status{font-size:11px}#upcoming .upcoming-song+.upcoming-song button.track-hint{grid-column:2}

@media(max-width:1023px){#upcoming .upcoming-song .vote-status{grid-column:2;grid-row:6}}

/* Distinguish voting from opening the surrounding track card. */
#upcoming .selectable-track:has(.vote-button:hover),
#upcoming .selectable-track:has(.vote-button:focus-visible){box-shadow:none;background:transparent}
#upcoming .upcoming-counts .vote-button{cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,color .15s ease}
#upcoming .upcoming-counts .vote-button:not(:disabled):hover,
#upcoming .upcoming-counts .vote-button:not(:disabled):focus-visible{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--surface));box-shadow:0 0 0 2px var(--accent);outline:none}
#upcoming .upcoming-counts .vote-button:not(:disabled):active{background:color-mix(in srgb,var(--accent) 25%,var(--surface))}
#upcoming .upcoming-counts .vote-button:disabled{cursor:not-allowed}
@media(prefers-reduced-motion:reduce){#upcoming .upcoming-counts .vote-button{transition:none}}

/* Matching feedback for current-track voting, including the mini player. */
#song-votes .vote-button{cursor:pointer;border-radius:8px;transition:background .15s ease,box-shadow .15s ease,color .15s ease}
#song-votes .vote-button:not(:disabled):hover,
#song-votes .vote-button:not(:disabled):focus-visible{color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,var(--surface));box-shadow:0 0 0 2px var(--accent);outline:none}
#song-votes .vote-button:not(:disabled):active{background:color-mix(in srgb,var(--accent) 25%,var(--surface))}
#song-votes .vote-button:disabled{cursor:not-allowed}
@media(prefers-reduced-motion:reduce){#song-votes .vote-button{transition:none}}

.broadcast-notice{box-sizing:border-box;position:relative;border:1px solid #e2641e;border-radius:12px;background:var(--panel,#211b19);color:var(--text,#f5f2ee);padding:14px 16px;margin:12px 0;text-align:left;overflow-wrap:anywhere}.broadcast-notice[hidden]{display:none}.broadcast-notice strong{display:block;font-size:1rem;line-height:1.35}.broadcast-notice p{font-size:.9rem;line-height:1.5;color:inherit;white-space:pre-line;margin:8px 0}.broadcast-notice small{display:block;font-size:.75rem;line-height:1.4;opacity:.8}.broadcast-notice a{display:inline-block;color:inherit;font-size:.8rem;margin-top:6px;text-decoration:underline}.broadcast-notice a:focus-visible{outline:2px solid #e2641e;outline-offset:3px}.radio .broadcast-notice{padding:9px 11px;margin:8px 0}.radio .broadcast-notice p{font-size:.8rem}.radio .broadcast-notice strong{font-size:.9rem}



/* Reuse the next-track area; keep the current player and branding intact. */
#radio-hero > .broadcast-notice{margin:0;align-self:stretch;min-width:0;width:100%;display:flex;flex-direction:column;justify-content:center;padding:18px}
@media(max-width:1023px){#radio-hero > .broadcast-notice{grid-column:1/-1;order:-1}}
#radio-hero > .broadcast-notice:not([hidden]) ~ #upcoming{display:none!important}
.nextsong.has-broadcast-notice{display:block}
.nextsong.has-broadcast-notice > :not(.broadcast-notice){display:none!important}
.nextsong > .broadcast-notice{margin:0}
.broadcast-notice:not([hidden]) + #next{display:none!important}

/* Podcast library beside the main player; one shared audio element. */
.player-library-nav{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid var(--line)}
.player-mode-label{font-size:11px;letter-spacing:.16em;font-weight:600;color:var(--muted)}.player-library-nav button{min-height:42px;padding:9px 18px;border-radius:24px;font-size:13px;display:flex;align-items:center;gap:20px}
.podcast-preview{display:grid;grid-template-columns:54px minmax(0,1fr) 44px;gap:13px;align-items:center;margin-top:22px;padding:16px 0 4px;border-top:1px solid var(--line)}.podcast-preview>img{width:54px;height:54px;object-fit:cover;border-radius:9px}.podcast-preview .eyebrow{font-size:9px;margin:0 0 5px}.podcast-preview strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13px;line-height:1.4}.podcast-preview small{display:block;color:var(--muted);font-size:11px;margin-top:4px}.podcast-preview>button{width:44px;height:44px;padding:0;border-radius:50%}
.podcast-library{inset:0;margin:auto;width:min(900px,calc(100% - 32px));max-width:900px;max-height:88dvh;padding:0;border:1px solid var(--line);border-radius:22px;background:var(--surface);color:var(--ink);overflow:auto;overscroll-behavior:contain}.podcast-library::backdrop{background:#080911bd;backdrop-filter:blur(6px)}.podcast-library-top{display:flex;justify-content:space-between;align-items:center;gap:20px;position:sticky;top:0;z-index:2;padding:24px 28px;background:var(--surface);border-bottom:1px solid var(--line)}.podcast-library-top h2{font-size:24px;margin:6px 0 0}.podcast-library-top .eyebrow{font-size:10px;margin:0}.podcast-library-top button{width:44px;height:44px;font-size:24px;padding:0;flex-shrink:0}.podcast-library .panel{padding:20px 28px;background:none;border:0}.podcast-library .panel-heading,.podcast-library .episode-heading>h3,.podcast-library #back-podcasts{display:none}.podcast-library .episode-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px}.podcast-library .episode-heading p{font-size:12px;line-height:1.6;max-width:520px;color:var(--muted);margin:0}.podcast-library .episode-heading a{font-size:11px;white-space:nowrap}.podcast-library #episode-list{max-height:none;overflow:visible}.podcast-library .episode{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}.podcast-library .episode>img{width:64px;height:64px;border-radius:10px;object-fit:cover}.podcast-library .episode h4{font-size:15px;margin:7px 0;line-height:1.4}.podcast-library .episode small{font-size:11px;color:var(--muted)}.podcast-library .episode p{font-size:12px;line-height:1.6;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0 0 12px}.podcast-library .episode-controls{display:flex;gap:16px;align-items:center}.podcast-library .episode-controls button{font-size:12px;padding:8px 14px;min-height:40px}.podcast-library .episode-controls a{font-size:11px}.podcast-library #more-episodes{display:block;margin:20px auto 0}.podcast-library #more-episodes[hidden]{display:none}.podcast-playing #episode-description{font-size:13px;line-height:1.6;color:var(--muted);max-height:100px;overflow:auto;overscroll-behavior:contain}.podcast-playing .episode-now h2{font-size:28px;line-height:1.25;overflow-wrap:anywhere}
body:has(.podcast-library[open]){overflow:hidden}
@media(max-width:600px){.podcast-library{width:100%;max-width:100%;max-height:92dvh;margin:auto 0 0;border-radius:22px 22px 0 0}.podcast-library-top{padding:20px}.podcast-library-top h2{font-size:20px}.podcast-library .panel{padding:18px 20px}.podcast-library .episode-heading{display:block}.podcast-library .episode-heading a{display:inline-block;margin-top:12px}.podcast-library .episode{grid-template-columns:48px minmax(0,1fr);gap:12px}.podcast-library .episode>img{width:48px;height:48px}.podcast-library .episode h4{font-size:14px}.podcast-playing .episode-now h2{font-size:24px}}

.podcast-library-top #reload-podcasts{width:auto;font-size:12px;margin-left:auto;padding:0 8px}.podcast-library-top #podcast-library-close{margin-left:0}

/* The same episode actions in discovery and the player library. */
.podcast-preview-links{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;margin-top:4px}.podcast-preview .podcast-preview-links small{margin:0}.podcast-preview button#podcast-preview-all{width:auto;height:auto;min-height:22px;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--accent);font-size:11px;font-weight:500}.podcast-discovery-list{max-height:420px;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-right:8px;scrollbar-width:thin}.podcast-discovery-list:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.podcast-discovery-list .episode{display:grid;grid-template-columns:48px minmax(0,1fr);gap:15px;padding:16px 0;border-bottom:1px solid var(--line);margin:0}.podcast-discovery-list .episode:last-child{border:0}.podcast-discovery-list .episode>img{width:48px;height:48px;border-radius:8px;object-fit:cover}.podcast-discovery-list .episode h4{font-size:14px;line-height:1.4;margin:5px 0 10px;color:var(--ink)}.podcast-discovery-list .episode small{font-size:11px;color:var(--muted)}.podcast-discovery-list .episode p{display:none}.podcast-discovery-list .episode-controls{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.podcast-discovery-list .episode-controls button{font-size:12px;min-height:38px;padding:8px 12px}.podcast-discovery-list .episode-controls .text-button{padding:6px 0;background:transparent;color:var(--accent);border:0}.podcast-discovery-fold #podcast-discovery-status{font-size:11px;margin:0}.podcast-discovery-fold #podcast-discovery-status:empty{display:none}.podcast-discovery-fold .panel-heading{align-items:center;min-height:24px;margin-bottom:10px}.podcast-discovery-fold .panel-heading button{margin-left:auto;font-size:11px}.podcast-discovery-fold #podcast-discovery-more{display:block;margin:16px auto 0}.podcast-discovery-fold #podcast-discovery-more[hidden]{display:none}
@media(max-width:600px){.podcast-discovery-list{max-height:380px;padding-right:3px}.podcast-discovery-list .episode{grid-template-columns:42px minmax(0,1fr);gap:10px;padding:14px 0}.podcast-discovery-list .episode>img{width:42px;height:42px}.podcast-discovery-list .episode h4{font-size:13px}.podcast-discovery-list .episode-controls{gap:6px 12px}.podcast-discovery-list .episode-controls button{font-size:11px}.podcast-preview-links{gap:3px 8px}.podcast-preview button#podcast-preview-all{font-size:10px}}

/* Listening state shared by discovery rows and the podcast dialog. */
.episode-progress{max-width:340px;margin:7px 0 10px}.episode-progress-meta{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:5px;color:var(--muted);font-size:10px;line-height:1.4}.episode-progress-time{font-variant-numeric:tabular-nums;white-space:nowrap}.episode-progress[data-state=completed] .episode-progress-state{color:var(--ink);font-weight:600}.episode-progress-track{display:block;appearance:none;width:100%;height:3px;border:0;border-radius:3px;overflow:hidden;background:var(--line);color:var(--accent)}.episode-progress-track::-webkit-progress-bar{background:var(--line);border-radius:3px}.episode-progress-track::-webkit-progress-value{background:var(--accent);border-radius:3px}.episode-progress-track::-moz-progress-bar{background:var(--accent);border-radius:3px}.episode-progress[data-state=completed] .episode-progress-track::-webkit-progress-value{background:#63ad91}.episode-progress[data-state=completed] .episode-progress-track::-moz-progress-bar{background:#63ad91}
@media(max-width:600px){.episode-progress{max-width:none}.episode-progress-meta{font-size:9px;gap:8px}}
/* Fill the remaining radio sidebar height without enlarging the player. */
@media(min-width:1024px){
 #upcoming .upcoming-song+.upcoming-song{flex:1 1 128px;contain:size;height:auto;max-height:none;min-height:128px;box-sizing:border-box;grid-template-columns:112px minmax(0,1fr);grid-template-rows:14px 60px 18px 16px 22px;column-gap:12px;row-gap:0;align-content:center;padding-top:14px;text-align:left}
 #upcoming .upcoming-song+.upcoming-song .eyebrow{grid-column:1/-1;grid-row:1;margin:0;font-size:10px;line-height:14px}
 #upcoming .upcoming-song+.upcoming-song .request-art{grid-column:1;grid-row:2/6;width:112px;height:112px;float:none;margin:0;align-self:center}
 #upcoming .upcoming-song+.upcoming-song .request-art img{width:112px;height:112px;float:none;margin:0;object-fit:cover}
 #upcoming .upcoming-song+.upcoming-song h3{grid-column:2;grid-row:2;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-height:60px;margin:0;font-size:15px;line-height:20px;align-self:center;white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
 #upcoming .upcoming-song+.upcoming-song p:not(.eyebrow){grid-column:2;grid-row:3;margin:0;font-size:13px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #upcoming .upcoming-song+.upcoming-song small{grid-column:2;grid-row:4;margin:0;font-size:12px;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 #upcoming .upcoming-song+.upcoming-song button.track-hint{grid-column:2;grid-row:5;justify-self:start;align-self:start;padding:0;margin:0;font-size:11px;line-height:22px;min-height:0}
}

/* Let the mobile introduction read at full width, with its action below. */
@media(max-width:600px){
 .about{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
 .about>span{display:none}
 .about>div{width:100%;min-width:0}
 .about h2{margin:0 0 8px;line-height:1.4}
 .about p{margin:0;font-size:13px;line-height:1.65}
 .about>a{display:inline-flex;align-items:center;align-self:flex-start;min-height:44px;margin:0;white-space:normal}
}

/* Keep mobile headings and actions readable rather than squeezing the copy. */
@media(max-width:600px){
 #panel-requests .panel-heading{flex-wrap:wrap;align-items:flex-start;gap:10px}
 #panel-requests .panel-heading>div{flex:1 1 220px;min-width:0}
 #panel-requests .panel-heading>button{margin-left:auto}
 #request-search{flex-wrap:wrap}
 #search{flex:1 1 200px;min-width:0}
 #search-button{margin-left:auto;min-height:44px}
 input[type=search]{font-size:16px}
 .podcast-library-top{gap:10px}
 .podcast-library-top>div{min-width:0}
 .podcast-library-top #reload-podcasts{width:36px;min-width:36px;min-height:44px;padding:0;margin-left:auto;font-size:0}
 .podcast-library-top #reload-podcasts::after{content:"↻";font-size:22px}
 .podcast-library .episode-controls{flex-wrap:wrap;gap:8px 12px}
 .podcast-library .episode-controls button{min-height:44px;max-width:100%;white-space:normal}
 .podcast-library .episode-controls .text-button{padding-left:0;padding-right:0}
}

@media(max-width:600px){
 .episode-transport{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:10px 8px}
 #episode-back{grid-column:1;grid-row:1}
 #episode-toggle{grid-column:2;grid-row:1;min-width:0;width:100%}
 #episode-forward{grid-column:3;grid-row:1}
 .episode-transport>button{min-height:44px;padding:8px 0}
 .episode-transport>label{grid-column:1;grid-row:2;margin:0;font-size:11px}
 #episode-volume{grid-column:2/4;grid-row:2;width:100%;min-width:0;margin:0}
}
