:root{--station-accent:#a96919;--station-photo:url('https://bloomradio.nl/bloom-assets/bloemgracht-720-0f1f588d16.webp')}
/* Listener app aligned with the public station websites. No runtime changes. */
:root{--font:'Manrope',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--blue-bright:#415564;--blue:#243340;--blue-chrome:#243340;--blue-deep:#243340;--blue-ink:var(--station-accent);--lime:var(--station-accent);--lime-deep:var(--station-accent);--ink:#23303d;--ink-2:#586875;--ink-3:#64717e;--paper:#f5f4ef;--card:#fff;--hair:#dce2e7;--on-blue:#fff;--on-blue-2:#d4dfe7;--on-blue-3:#b9c8d3;--r-sm:8px;--r-md:12px;--r-lg:14px;--r-xl:12px}
body,.app{background:var(--paper);font-family:var(--font)}
.backdrop-blue,.ambient,.ambient-scrim{display:none}
.topbar,.app.is-live .topbar{background:var(--card);color:var(--ink);border-bottom:1px solid var(--hair);padding-top:calc(var(--safe-top) + 14px);padding-bottom:14px}
.brand-mark{display:block;box-shadow:none;border-radius:8px}
.brand-name{font-size:17px;letter-spacing:-.03em}.brand-sub{color:var(--ink-2);font-size:10px;font-weight:500}
.live-pill{color:var(--station-accent);background:transparent;border:1px solid var(--hair);border-radius:6px;font-size:9px;padding:6px 8px}.live-dot{background:var(--station-accent);box-shadow:none;animation:none}
.app.is-live .screen{background:linear-gradient(180deg,#ffffff18,var(--paper) 310px),var(--station-photo) center top/100% auto no-repeat;padding-top:28px}
.live{min-height:0;width:calc(100% - 32px);max-width:500px;margin:0 auto 16px;padding:22px 20px 16px;background:#243340;border:1px solid #8797a6;border-top:3px solid var(--station-accent);border-radius:16px;box-shadow:0 14px 30px #17263426}
.cover-wrap{width:min(48vw,200px,25svh);margin:0 auto;aspect-ratio:1}
.cover,.cover-fallback{border-radius:10px;box-shadow:0 4px 16px #0003;border:1px solid #ffffff26}
.cover-wrap:before,.cover-wrap:after{display:none}.cover-fallback{background:#344351}
.track{margin-top:18px;width:100%;text-align:center}.track-label{font-size:9px;letter-spacing:.12em;color:#b9c8d3}.track-title{font-family:var(--font);font-size:25px;font-weight:800;letter-spacing:-.03em;line-height:1.15;text-transform:none;margin-top:7px}.track-artist{font-size:14px;color:#d4dfe7;margin-top:6px}
.progress{margin-top:18px}.progress-track{height:4px;background:#52616d;border-radius:4px}.progress-fill{background:var(--station-accent)}.progress-times{font-size:11px;color:#d4dfe7}.progress-times>span:first-child{display:none}.progress-times{justify-content:flex-end}
.controls{padding:14px 0 8px;gap:26px;margin:0}.play-fab{width:60px;height:60px;background:var(--station-accent);color:white;box-shadow:none;border:1px solid #ffffff26;border-radius:50%}.play-fab svg{width:26px;height:26px}.control-side{opacity:1;transform:none;color:#d4dfe7;width:44px;height:44px}.control-side:disabled{opacity:.4}
.status-line{font-size:11px;min-height:16px;margin-bottom:6px}.also-on{font-size:10px;margin-bottom:12px}
.upnext{background:#ffffff0d;border:1px solid #ffffff24;border-radius:9px;box-shadow:none;margin:4px 0 0;padding:10px}.upnext-art{border-radius:5px}.upnext-label{color:#d4dfe7;font-size:8px}.upnext-title{font-size:12px}.upnext-time{font-size:10px}
.tabbar{background:var(--card);border-top:1px solid var(--hair);box-shadow:none}.tab{color:var(--ink-2);font-family:var(--font);font-size:10px;letter-spacing:0;text-transform:none}.tab.is-active{color:var(--station-accent)}
.screen-title{font-size:25px;letter-spacing:-.025em}.list{border:1px solid var(--hair);box-shadow:none}.row{border-color:var(--hair)}
.mini{background:var(--card);color:var(--ink);border:1px solid var(--hair);box-shadow:0 5px 18px #17263418;border-radius:12px}
button:focus-visible,a:focus-visible{outline:3px solid #78b7ec;outline-offset:3px}
@media(prefers-color-scheme:dark){:root{--paper:#25323e;--card:#303e4b;--ink:#f1f5f8;--ink-2:#c4cfd8;--ink-3:#b9c5ce;--hair:#4a5966}.live{background:#415564;border-color:#6d7c88;border-top-color:var(--station-accent)}.app.is-live .screen{background:linear-gradient(180deg,#25323e55,var(--paper) 310px),var(--station-photo) center top/100% auto no-repeat}}
@media(max-height:700px){.app.is-live .screen{padding-top:12px}.live{padding-top:16px}.cover-wrap{width:min(40vw,150px,23svh)}.track{margin-top:12px}.track-title{font-size:22px}.controls{padding-top:8px}.progress{margin-top:12px}}
