*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;min-height:100%}html{scroll-behavior:smooth}body{font-family:'Inter',sans-serif;background:#111827;color:#fff;overflow-x:hidden}button,input{font:inherit}.hidden{display:none}.fadeIn{animation:fadeIn .5s ease}
#loading{position:fixed;inset:0;background:#111827;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:9999;transition:.5s}#loading.hidden{opacity:0;visibility:hidden}.loadingLogo{width:150px;height:150px;object-fit:contain;margin-bottom:25px;animation:pulse 2s infinite}#loading h2{font-size:32px;margin-bottom:10px}#loading p{color:#cbd5e1}
#app{width:100%;max-width:520px;margin:auto;min-height:100vh;padding-bottom:170px}.appHeader{display:flex;align-items:center;gap:18px;padding:20px}.stationLogo{width:70px!important;height:70px!important;min-width:70px!important;min-height:70px!important;max-width:70px!important;max-height:70px!important;display:block!important;object-fit:contain!important;flex:none!important;border-radius:16px}.headerText h1{font-size:28px;font-weight:800}.liveBadge{display:flex;align-items:center;gap:8px;margin-top:8px;color:#ff5c73;font-weight:700;font-size:14px}.liveDot{width:10px;height:10px;border-radius:50%;background:#f00;animation:pulse 1.4s infinite}
.appPage{display:none}.appPage.active{display:block;animation:pageIn .25s ease}.playerCard,.controlsCard,.infoCard,.recentCard,.homeShortcutCard,.placeholderCard,.moreCard{background:rgba(255,255,255,.08);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.05);border-radius:22px;margin:16px 20px;padding:22px}
#artwork{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:18px;background:#222;transition:opacity .25s ease}.artwork-update{animation:fadeArtwork .4s}#artist{margin-top:20px;font-size:28px;font-weight:700}#title{margin-top:10px;color:#cbd5e1;line-height:1.4}
#playButton{width:100%;padding:18px;border:none;border-radius:14px;background:#d91f3d;color:#fff;font-size:20px;font-weight:700;cursor:pointer;transition:.25s}#playButton:hover{transform:translateY(-2px)}#playButton:focus-visible,.navButton:focus-visible,.secondaryButton:focus-visible,#miniPlayButton:focus-visible{outline:3px solid rgba(255,92,115,.55);outline-offset:3px}.volumeRow{display:flex;align-items:center;gap:15px;margin-top:20px}#volume{width:100%}.listenersRow{font-size:18px;margin-bottom:20px}.nextRow h3{color:#ff5c73;margin-bottom:8px}#next{line-height:1.5;color:#e5e7eb}
.homeShortcutCard{display:flex;align-items:center;justify-content:space-between;gap:18px}.homeShortcutCard h2{margin-bottom:8px;font-size:21px}.homeShortcutCard p:not(.sectionEyebrow){color:#cbd5e1;line-height:1.5}.secondaryButton{flex:none;border:none;border-radius:12px;padding:12px 14px;background:#d91f3d;color:#fff;font-weight:700;cursor:pointer}
.pageIntro{margin:16px 20px 2px;padding:8px 2px}.pageIntro h2{margin-bottom:10px;font-size:30px}.pageIntro p:not(.sectionEyebrow){color:#cbd5e1;line-height:1.55}.sectionEyebrow{color:#ff5c73;font-size:12px;font-weight:800;letter-spacing:.14em;margin-bottom:6px}.sectionHeading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px}.sectionHeading h3{font-size:21px}.recentStatus{flex:none;padding:7px 10px;border-radius:999px;background:rgba(217,31,61,.18);color:#ff8fa0;font-size:12px;font-weight:700}.recentList{display:flex;flex-direction:column}.recentItem{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:13px;padding:13px 0;border-top:1px solid rgba(255,255,255,.08);animation:fadeIn .35s ease both;animation-delay:calc(var(--item-order)*45ms)}.recentItem:first-child{border-top:none;padding-top:2px}.recentArtwork{width:58px;height:58px;border-radius:12px;object-fit:cover;background:#222}.recentDetails{min-width:0}.recentDetails h3,.recentDetails p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recentDetails h3{font-size:15px;line-height:1.3}.recentDetails p{margin-top:5px;color:#cbd5e1;font-size:13px}.recentTime{color:#94a3b8;font-size:11px;white-space:nowrap}.recentEmpty{padding:8px 0 2px;color:#94a3b8;line-height:1.5}
.placeholderCard{text-align:center;padding:38px 24px}.placeholderIcon{margin-bottom:14px;font-size:42px}.placeholderCard h3{margin-bottom:10px;font-size:21px}.placeholderCard p{color:#cbd5e1;line-height:1.6}.moreCard{padding:0;overflow:hidden}.moreLink{display:flex;align-items:center;gap:14px;width:100%;padding:18px;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.08)}.moreLink:last-child{border-bottom:none}.moreLink span:nth-child(2){flex:1;display:flex;flex-direction:column;gap:4px}.moreLink small{color:#94a3b8}.moreIcon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:rgba(217,31,61,.18)}.staticLink{cursor:default}
.miniPlayer{position:fixed;left:50%;bottom:78px;transform:translateX(-50%);width:100%;max-width:520px;height:70px;display:flex;align-items:center;gap:12px;padding:9px 14px;background:#182235;border-top:1px solid rgba(255,255,255,.08);z-index:998}#miniArtwork{width:50px;height:50px;border-radius:10px;object-fit:cover;background:#222}.miniDetails{min-width:0;flex:1;display:flex;flex-direction:column;gap:4px}.miniDetails strong,.miniDetails span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.miniDetails strong{font-size:14px}.miniDetails span{color:#cbd5e1;font-size:12px}#miniPlayButton{width:44px;height:44px;border:none;border-radius:50%;background:#d91f3d;color:#fff;font-size:17px;font-weight:700;cursor:pointer}
nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:520px;min-height:78px;padding-bottom:env(safe-area-inset-bottom);background:#1f2937;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-around;align-items:center;z-index:999}.navButton{min-width:62px;min-height:58px;background:none;border:none;color:#cbd5e1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;font-size:13px;cursor:pointer}.navButton.active{color:#ff5c73}
@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.06)}100%{transform:scale(1)}}@keyframes fadeArtwork{from{opacity:.3}to{opacity:1}}@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes pageIn{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}
@media(max-width:600px){.appHeader{padding:16px}.playerCard,.controlsCard,.infoCard,.recentCard,.homeShortcutCard,.placeholderCard,.moreCard{margin:12px;padding:18px}.moreCard{padding:0}.pageIntro{margin:12px 14px 2px}#artist{font-size:24px}#title{font-size:16px}.recentItem{grid-template-columns:52px minmax(0,1fr) auto;gap:11px}.recentArtwork{width:52px;height:52px}.recentTime{font-size:10px}}@media(max-width:420px){.homeShortcutCard{align-items:flex-start;flex-direction:column}.secondaryButton{width:100%}}@media(max-width:380px){.recentItem{grid-template-columns:48px minmax(0,1fr)}.recentArtwork{width:48px;height:48px}.recentTime{grid-column:2;justify-self:start;margin-top:-7px}.navButton{min-width:54px;font-size:12px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}


/* Dynamic schedule and shows */
.dayTabs{display:flex;gap:8px;overflow-x:auto;padding:10px 20px 4px;scrollbar-width:none}.dayTabs::-webkit-scrollbar{display:none}.dayTab{flex:1 0 54px;min-height:42px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.06);color:#cbd5e1;font-weight:700;cursor:pointer}.dayTab.active{background:#d91f3d;color:#fff;border-color:#d91f3d}.onAirCard,.scheduleCard{margin:16px 20px;border-radius:22px}.onAirCard{display:grid;grid-template-columns:110px minmax(0,1fr);gap:18px;align-items:center;padding:18px;background:linear-gradient(135deg,rgba(217,31,61,.35),rgba(255,255,255,.08));border:1px solid rgba(255,92,115,.38)}.onAirCard img{width:110px;height:110px;border-radius:17px;object-fit:cover;background:#222}.onAirCard h3{margin-bottom:6px;font-size:22px}.onAirPresenter,.onAirTime{color:#e2e8f0;margin-bottom:7px}.onAirCard .secondaryButton{margin-top:8px}.hiddenPanel{display:none!important}.scheduleCard{padding:22px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.05)}.scheduleList{display:flex;flex-direction:column;gap:12px}.scheduleItem{position:relative;display:grid;grid-template-columns:72px minmax(0,1fr);gap:14px;align-items:start;padding:13px;border-radius:16px;background:rgba(255,255,255,.05);border:1px solid transparent}.scheduleItem.isLive{border-color:rgba(255,92,115,.55);background:rgba(217,31,61,.13)}.scheduleArtwork,.scheduleItem>img{display:block;width:72px;height:72px;min-width:72px;max-width:72px;border-radius:13px;object-fit:cover;background:#222}.scheduleTime{color:#ff8fa0;font-size:12px;font-weight:800;margin-bottom:4px}.scheduleDetails h3{padding-right:52px;font-size:17px;line-height:1.3}.schedulePresenter{margin-top:4px;color:#cbd5e1;font-size:13px}.scheduleDescription{margin-top:8px;color:#94a3b8;font-size:12px;line-height:1.45}.nowBadge{position:absolute;top:12px;right:12px;padding:5px 7px;border-radius:999px;background:#d91f3d;color:#fff;font-size:9px;font-weight:800;letter-spacing:.05em}.showsSection{padding:2px 20px 18px}.showsGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.showCard{overflow:hidden;border-radius:18px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.05)}.showCard>img{display:block;width:100%;aspect-ratio:1;object-fit:cover;background:#222}.showCardContent,.showCardBody{padding:14px}.showCardContent h3,.showCardBody h3{font-size:17px;line-height:1.3}.showPresenter{margin-top:5px;color:#ff8fa0;font-size:12px;font-weight:700}.showDescription{margin-top:9px;color:#cbd5e1;font-size:12px;line-height:1.5}.showTimes{margin-top:11px;color:#94a3b8;font-size:11px;line-height:1.45;font-weight:600}@media(max-width:600px){.dayTabs{padding-right:12px;padding-left:12px}.onAirCard,.scheduleCard{margin:12px}.scheduleCard{padding:18px}.showsSection{padding-right:12px;padding-left:12px}}@media(max-width:420px){.onAirCard{grid-template-columns:84px minmax(0,1fr);gap:14px}.onAirCard img{width:84px;height:84px}.onAirCard h3{font-size:18px}.scheduleItem{grid-template-columns:60px minmax(0,1fr);padding:11px}.scheduleArtwork,.scheduleItem>img{width:60px;height:60px;min-width:60px;max-width:60px}.showsGrid{grid-template-columns:1fr}.showCard{display:grid;grid-template-columns:120px minmax(0,1fr)}.showCard>img{height:100%;min-height:150px;aspect-ratio:auto}}


/* Presenter profile pages */
.showCard,.scheduleItem{cursor:pointer;transition:transform .2s ease,border-color .2s ease,background .2s ease}.showCard:hover,.scheduleItem:hover{transform:translateY(-2px);border-color:rgba(255,92,115,.45)}.showCard:focus-visible,.scheduleItem:focus-visible,.profileBackButton:focus-visible,.profileListenButton:focus-visible,.profileWebsiteButton:focus-visible{outline:3px solid rgba(255,92,115,.55);outline-offset:3px}.showViewLink{display:block;margin-top:12px;color:#ff8fa0;font-size:12px;font-weight:800}.profileBackButton{margin:6px 20px 14px;padding:10px 0;border:0;background:none;color:#ff8fa0;font-weight:800;cursor:pointer}.profileContent{margin:0 20px}.profileHero{overflow:hidden;border-radius:24px;background:#222;box-shadow:0 18px 45px rgba(0,0,0,.28)}.profileHero img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.profileBody{padding:24px 4px 10px}.profileBody h2{font-size:31px;line-height:1.12}.profilePresenter{margin-top:8px;color:#ff8fa0;font-size:17px;font-weight:700}.profileTagline{margin-top:14px;color:#e2e8f0;font-size:16px;line-height:1.6}.profileDetailsCard{margin-top:10px;padding:22px;border-radius:20px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.06)}.profileDetailsCard h3{margin-bottom:10px;font-size:20px}.profileDetailsCard>p{color:#cbd5e1;line-height:1.65}.profileSchedule{display:flex;flex-direction:column;gap:6px;margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.09)}.profileSchedule strong{color:#ff8fa0;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.profileSchedule span{font-weight:700;line-height:1.5}.profileActions{display:grid;grid-template-columns:1fr;gap:12px;padding:16px 0 8px}.profileListenButton,.profileWebsiteButton{display:flex;justify-content:center;align-items:center;min-height:52px;padding:14px;border-radius:14px;font-weight:800;text-decoration:none;cursor:pointer}.profileListenButton{border:0;background:#d91f3d;color:#fff}.profileWebsiteButton{border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.07);color:#fff}@media(max-width:600px){.profileContent{margin:0 12px}.profileBackButton{margin-left:14px}.profileBody h2{font-size:27px}}

/* Live on-air panel and countdown */
.homeLivePanel{margin:20px;padding:20px;border-radius:24px;background:linear-gradient(145deg,rgba(217,31,61,.28),rgba(255,255,255,.075));border:1px solid rgba(255,92,115,.34);overflow:hidden}.homeLiveStatus{display:flex;align-items:center;gap:9px;margin-bottom:16px;color:#fff;font-size:11px;font-weight:800;letter-spacing:.12em}.homeLiveDot{width:11px;height:11px;border-radius:50%;background:#ff304f;box-shadow:0 0 0 5px rgba(255,48,79,.14);animation:livePulse 1.5s ease-in-out infinite}.homeLivePanel.isOffAir .homeLiveDot{background:#94a3b8;box-shadow:none;animation:none}.homeLiveMain{display:grid;grid-template-columns:112px minmax(0,1fr);gap:18px;align-items:center}.homeLiveMain>img{width:112px;height:112px;border-radius:18px;object-fit:cover;background:#222}.homeLiveKicker{margin-bottom:5px;color:#ff8fa0;font-size:11px;font-weight:800;letter-spacing:.09em}.homeLiveDetails h2{font-size:23px;line-height:1.18}.homeShowPresenter{margin-top:5px;color:#e2e8f0;font-size:14px}.homeCountdownBlock{display:flex;align-items:baseline;gap:9px;margin-top:13px}.homeCountdownBlock span{color:#cbd5e1;font-size:12px}.homeCountdownBlock strong{font-size:21px;letter-spacing:.03em}.homeNextShow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;margin-top:17px;padding-top:15px;border-top:1px solid rgba(255,255,255,.11)}.homeNextLabel{color:#ff8fa0;font-size:10px;font-weight:800;letter-spacing:.09em}.homeNextDetails strong{display:block;font-size:14px}.homeNextDetails span{display:block;margin-top:3px;color:#cbd5e1;font-size:12px}.onAirCountdown{margin:9px 0 3px;color:#fff;font-size:15px;font-weight:800}.nextScheduleCard{margin-top:14px;padding:14px;border-radius:15px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.07)}.nextScheduleCard .sectionEyebrow{margin-bottom:5px}.nextScheduleCard strong{display:block}.nextScheduleCard span{display:block;margin-top:4px;color:#cbd5e1;font-size:12px}@keyframes livePulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.72);opacity:.55}}@media(max-width:600px){.homeLivePanel{margin:12px;padding:18px}}@media(max-width:420px){.homeLiveMain{grid-template-columns:86px minmax(0,1fr);gap:14px}.homeLiveMain>img{width:86px;height:86px;border-radius:15px}.homeLiveDetails h2{font-size:19px}.homeCountdownBlock{flex-direction:column;gap:2px}.homeCountdownBlock strong{font-size:19px}}


/* Favourite shows and calendar reminders */
.myShowsSection{margin:12px 20px 18px;padding:20px;border-radius:22px;background:rgba(217,31,61,.11);border:1px solid rgba(255,92,115,.25)}.myShowsSection .sectionHeading{margin-bottom:14px}.myShowsSection .sectionEyebrow{margin-bottom:4px}.allShowsHeading{margin:4px 0 14px}.showCard{position:relative}.favouriteButton{position:absolute;top:10px;right:10px;z-index:3;width:42px;height:42px;border:1px solid rgba(255,255,255,.22);border-radius:50%;background:rgba(15,23,42,.82);color:#ff6f85;font-size:25px;line-height:1;cursor:pointer;backdrop-filter:blur(8px)}.favouriteButton:hover{background:#d91f3d;color:#fff}.favouriteButton:focus-visible{outline:3px solid rgba(255,92,115,.58);outline-offset:2px}.favouriteShowCard{border-color:rgba(255,92,115,.38)}.profileFavouriteButton,.profileCalendarButton{font:inherit}.profileActions{grid-template-columns:repeat(2,minmax(0,1fr))}.profileListenButton{grid-column:1/-1}@media(max-width:600px){.myShowsSection{margin:12px;padding:18px}}@media(max-width:420px){.profileActions{grid-template-columns:1fr}.profileListenButton{grid-column:auto}.favouriteButton{width:38px;height:38px;font-size:22px}}


/* Install, offline and update experience */
.updateBanner{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 18px;background:#d91f3d;color:#fff;font-size:13px;font-weight:700}.updateBanner button{border:1px solid rgba(255,255,255,.55);border-radius:10px;background:#fff;color:#9f1239;padding:8px 12px;font-weight:800;cursor:pointer}.appToolsCard{margin:0 20px 16px;overflow:hidden;border-radius:20px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.07)}.appToolRow{display:grid;grid-template-columns:42px minmax(0,1fr) auto;gap:12px;align-items:center;padding:17px}.appToolRow+.appToolRow{border-top:1px solid rgba(255,255,255,.08)}.appToolText{display:flex;min-width:0;flex-direction:column;gap:4px}.appToolText strong{font-size:14px}.appToolText small{color:#cbd5e1;font-size:11px;line-height:1.4}.compactActionButton{min-width:76px;border:0;border-radius:12px;background:#d91f3d;color:#fff;padding:10px 13px;font-weight:800;cursor:pointer}.compactActionButton:disabled{opacity:.55;cursor:default}.connectionBadge{padding:7px 10px;border-radius:999px;background:rgba(34,197,94,.16);color:#86efac;font-size:11px;font-weight:800}.connectionBadge.isOffline{background:rgba(251,146,60,.16);color:#fdba74}@media(max-width:600px){.appToolsCard{margin:0 12px 14px}}@media(max-width:420px){.appToolRow{grid-template-columns:36px minmax(0,1fr);padding:15px}.appToolRow>.compactActionButton,.appToolRow>.connectionBadge{grid-column:2;justify-self:start}}


/* ==========================================================
   Version 3.0 additions
========================================================== */
.searchBox{
  display:flex;
  align-items:center;
  gap:10px;
  margin:12px 20px 4px;
  padding:12px 14px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:14px;
  background:rgba(255,255,255,.06);
}
.searchBox input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:#fff;
  font-size:16px;
}
.searchBox input::placeholder{color:#94a3b8;}
.settingsCard{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.05);
  border-radius:22px;
  margin:16px 20px;
  padding:22px;
}
.settingRow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px 0;
  border-top:1px solid rgba(255,255,255,.08);
}
.settingRow:first-of-type{border-top:0;}
.settingRow span{display:flex;flex-direction:column;gap:5px;}
.settingRow small{color:#94a3b8;line-height:1.4;}
.settingRow input{width:22px;height:22px;accent-color:#d91f3d;}
.dangerButton{
  width:100%;
  margin-top:12px;
  padding:13px 15px;
  border:1px solid rgba(255,92,115,.45);
  border-radius:12px;
  background:transparent;
  color:#ff8fa0;
  font-weight:700;
  cursor:pointer;
}
.noResults{
  padding:24px 4px;
  color:#94a3b8;
  text-align:center;
  line-height:1.5;
}
@media (max-width:600px){
  .searchBox{margin:12px;}
  .settingsCard{margin:12px;padding:18px;}
}

/* ==========================================================
   WMR Radio v4 - Independent WMR Daily
========================================================== */
.wmrDailyFrameSection{
    margin:16px 20px;
}
.wmrDailyFrameSection iframe{
    display:block;
    width:100%;
    height:430px;
    border:0;
    border-radius:22px;
    background:transparent;
}
@media(max-width:600px){
    .wmrDailyFrameSection{
        margin:12px;
    }
    .wmrDailyFrameSection iframe{
        height:420px;
    }
}


/* ==========================================================
   V4.5 Station announcements
========================================================== */

.announcementRegion{
    margin:16px 20px;
}

.announcementRegion[hidden]{
    display:none;
}

.stationAnnouncement{
    position:relative;
    display:grid;
    grid-template-columns:44px minmax(0,1fr);
    gap:14px;
    padding:18px;
    margin-bottom:12px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.12);
    border-radius:20px;
    background:#1b2638;
    box-shadow:0 12px 35px rgba(0,0,0,.18);
}

.stationAnnouncement:last-child{
    margin-bottom:0;
}

.announcementIcon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:50%;
    font-size:22px;
    font-weight:900;
    background:rgba(255,255,255,.12);
}

.announcementContent{
    min-width:0;
    padding-right:24px;
}

.announcementLabel{
    margin:0 0 5px !important;
    color:#ff9aaa;
    font-size:11px;
    font-weight:900;
    letter-spacing:.11em;
}

.announcementContent h2{
    margin:0 0 7px;
    font-size:19px;
    line-height:1.25;
}

.announcementContent > p:not(.announcementLabel){
    margin:0;
    color:#e2e8f0;
    font-size:14px;
    line-height:1.5;
}

.announcementAction{
    display:inline-flex;
    margin-top:13px;
    padding:9px 12px;
    border:0;
    border-radius:10px;
    background:#fff;
    color:#111827;
    font-size:13px;
    font-weight:800;
    text-decoration:none;
    cursor:pointer;
}

.announcementDismiss{
    position:absolute;
    top:9px;
    right:10px;
    width:34px;
    height:34px;
    border:0;
    border-radius:50%;
    background:transparent;
    color:#cbd5e1;
    font-size:23px;
    cursor:pointer;
}

.announcement-information{
    border-left:5px solid #4da3ff;
}

.announcement-information .announcementIcon{
    background:rgba(77,163,255,.18);
    color:#8fc5ff;
}

.announcement-important{
    border-left:5px solid #ff9f43;
}

.announcement-important .announcementIcon{
    background:rgba(255,159,67,.18);
    color:#ffc078;
}

.announcement-schedule-change{
    border-left:5px solid #a78bfa;
}

.announcement-schedule-change .announcementIcon{
    background:rgba(167,139,250,.18);
    color:#c4b5fd;
}

.announcement-emergency{
    border-left:5px solid #ff4d67;
    background:linear-gradient(
        135deg,
        rgba(177,25,51,.35),
        #1b2638
    );
}

.announcement-emergency .announcementIcon{
    background:rgba(255,77,103,.22);
    color:#ff9aab;
    animation:pulse 1.4s infinite;
}

@media(max-width:600px){
    .announcementRegion{
        margin:12px;
    }

    .stationAnnouncement{
        grid-template-columns:38px minmax(0,1fr);
        gap:11px;
        padding:15px;
        border-radius:17px;
    }

    .announcementIcon{
        width:38px;
        height:38px;
        font-size:19px;
    }

    .announcementContent h2{
        font-size:17px;
    }
}


/* ==========================================================
   V4.8 Featured shows and manual ordering
========================================================== */

.featuredShowsRegion{
    margin:16px 20px 6px;
}

.featuredShowsRegion[hidden]{
    display:none;
}

.featuredShowsTrack{
    display:flex;
    gap:13px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    padding:2px 2px 10px;
}

.featuredShowCard{
    position:relative;
    flex:0 0 76%;
    min-height:225px;
    padding:0;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.08);
    border-radius:20px;
    background:#1b2638;
    color:#fff;
    text-align:left;
    scroll-snap-align:start;
    cursor:pointer;
}

.featuredShowCard img{
    display:block;
    width:100%;
    height:225px;
    object-fit:cover;
}

.featuredShowOverlay{
    position:absolute;
    inset:auto 0 0;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:5px;
    padding:38px 16px 16px;
    background:linear-gradient(
        transparent,
        rgba(8,13,23,.94)
    );
}

.featuredShowOverlay strong{
    font-size:20px;
    line-height:1.2;
}

.featuredShowOverlay small{
    color:#dbe4ef;
}

.featuredBadge,
.showBadge{
    display:inline-flex;
    width:max-content;
    padding:5px 8px;
    border-radius:999px;
    background:#d91f3d;
    color:#fff;
    font-size:10px;
    font-weight:900;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.showCardBody .showBadge{
    margin-bottom:8px;
}

@media(max-width:600px){
    .featuredShowsRegion{
        margin:12px;
    }

    .featuredShowCard{
        flex-basis:85%;
        min-height:205px;
    }

    .featuredShowCard img{
        height:205px;
    }
}


/* ==========================================================
   V4.8.1 Unified show-profile artwork sizing
========================================================== */

/*
The profile renderer places these classes directly on the <img> element.
These rules therefore target img.profileHero rather than .profileHero img.
*/

img.profileHero{
    display:block;
    width:100%;
    max-width:100%;
    height:auto;
    margin:0;
    border-radius:24px;
    background:#111827;
    overflow:hidden;
    box-shadow:none;
}

/* Show posters retain their complete original proportions. */
img.profileHeroPoster{
    width:100%;
    height:auto;
    max-height:none;
    aspect-ratio:auto;
    object-fit:contain;
    object-position:center;
    clip-path:inset(0 round 24px);
}

/* Presenter photographs remain consistently cropped. */
img.profileHeroPresenter{
    width:100%;
    aspect-ratio:1 / 1;
    object-fit:cover;
    object-position:center;
    clip-path:inset(0 round 24px);
}

/* Override the older descendant rule, which does not match the current HTML. */
.profileHero img{
    width:100%;
    height:auto;
    aspect-ratio:auto;
}

@media(max-width:600px){
    img.profileHero{
        border-radius:20px;
    }

    img.profileHeroPoster,
    img.profileHeroPresenter{
        clip-path:inset(0 round 20px);
    }
}


/* ==========================================================
   V4.8.2 Schedule text layout correction
========================================================== */

.scheduleItem{
    align-items:center;
}

.scheduleDetails{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    grid-auto-flow:row !important;
    align-content:center;
    justify-items:start;
    min-width:0;
    width:100%;
}

.scheduleDetails .scheduleTitle,
.scheduleDetails .schedulePresenter,
.scheduleDetails .scheduleTimeText{
    display:block !important;
    position:static !important;
    float:none !important;
    clear:both !important;
    width:100% !important;
    max-width:100%;
    padding:0 !important;
    white-space:normal;
    overflow-wrap:anywhere;
}

.scheduleDetails .scheduleTitle{
    margin:0 !important;
    color:#fff;
    font-size:16px;
    font-weight:800;
    line-height:1.25;
}

.scheduleDetails .schedulePresenter{
    margin:5px 0 0 !important;
    color:#cbd5e1;
    font-size:13px;
    font-weight:500;
    line-height:1.3;
}

.scheduleDetails .scheduleTimeText{
    margin:5px 0 0 !important;
    color:#ff8fa0;
    font-size:12px;
    font-weight:800;
    line-height:1.25;
}

/* Compatibility if an older cached renderer briefly supplies strong/span/small. */
.scheduleDetails > strong,
.scheduleDetails > span,
.scheduleDetails > small{
    display:block !important;
    width:100% !important;
    position:static !important;
    float:none !important;
}

.scheduleDetails > strong{
    margin:0 !important;
    line-height:1.25;
}

.scheduleDetails > span{
    margin:5px 0 0 !important;
    color:#cbd5e1;
    line-height:1.3;
}

.scheduleDetails > small{
    margin:5px 0 0 !important;
    color:#ff8fa0;
    font-weight:800;
    line-height:1.25;
}

@media(max-width:420px){
    .scheduleDetails .scheduleTitle{
        font-size:15px;
    }

    .scheduleDetails .schedulePresenter,
    .scheduleDetails .scheduleTimeText{
        font-size:12px;
    }
}


/* ==========================================================
   V6.3 Device-specific app installation guide
========================================================== */

.installGuideDialog{
    width:min(720px,calc(100% - 24px));
    max-height:calc(100dvh - 24px);
    padding:0;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.12);
    border-radius:24px;
    background:#172133;
    color:#fff;
    box-shadow:0 24px 80px rgba(0,0,0,.55);
}

.installGuideDialog::backdrop{
    background:rgba(3,8,16,.78);
    backdrop-filter:blur(6px);
}

.installGuideShell{
    max-height:calc(100dvh - 24px);
    overflow-y:auto;
}

.installGuideHeader{
    position:sticky;
    top:0;
    z-index:3;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:18px 20px;
    border-bottom:1px solid rgba(255,255,255,.08);
    background:rgba(23,33,51,.97);
    backdrop-filter:blur(12px);
}

.installGuideBrand{
    display:flex;
    align-items:center;
    gap:13px;
    min-width:0;
}

.installGuideBrand img{
    width:55px;
    height:55px;
    object-fit:contain;
    border-radius:14px;
    background:#0b1421;
}

.installGuideBrand h2{
    margin:2px 0 0;
    font-size:clamp(20px,4vw,27px);
    line-height:1.15;
}

.installGuideClose{
    flex:none;
    width:40px;
    height:40px;
    display:grid;
    place-items:center;
    border:1px solid rgba(255,255,255,.12);
    border-radius:50%;
    background:#111b2a;
    color:#fff;
    font-size:25px;
    cursor:pointer;
}

.installBenefits{
    padding:20px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.installBenefits h3{
    margin:0 0 14px;
}

.installBenefitsGrid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}

.installBenefitsGrid article{
    display:grid;
    grid-template-columns:42px minmax(0,1fr);
    gap:11px;
    align-items:start;
    padding:13px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:14px;
    background:#111b2a;
}

.installBenefitsGrid article > span{
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:rgba(217,31,61,.16);
    font-size:20px;
}

.installBenefitsGrid article div{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.installBenefitsGrid small{
    color:#aeb9c9;
    line-height:1.4;
}

.installDevicePanel{
    padding:20px;
}

.installDeviceHeading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    margin-bottom:16px;
}

.installDeviceHeading h3{
    margin:2px 0 0;
    font-size:21px;
}

.installStateBadge{
    flex:none;
    padding:6px 9px;
    border-radius:999px;
    background:rgba(255,159,67,.16);
    color:#ffc078;
    font-size:11px;
    font-weight:900;
    text-transform:uppercase;
}

.installStateBadge.installed{
    background:rgba(53,193,143,.16);
    color:#78e1b0;
}

.installNativePanel{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
    padding:16px;
    border:1px solid rgba(53,193,143,.28);
    border-radius:16px;
    background:rgba(53,193,143,.09);
}

.installNativePanel > div{
    display:flex;
    flex-direction:column;
    gap:4px;
}

.installNativePanel small{
    color:#bdd8cc;
}

.primaryInstallButton{
    flex:none;
    min-height:43px;
    padding:10px 17px;
    border:0;
    border-radius:12px;
    background:#d91f3d;
    color:#fff;
    font-weight:900;
    cursor:pointer;
}

.installStepCard{
    min-height:245px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:24px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    background:
        radial-gradient(
            circle at top,
            rgba(217,31,61,.13),
            transparent 46%
        ),
        #111b2a;
    text-align:center;
}

.installStepNumber{
    margin-bottom:13px;
    padding:5px 8px;
    border-radius:999px;
    background:rgba(77,163,255,.15);
    color:#9acaff;
    font-size:10px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.installStepIcon{
    width:76px;
    height:76px;
    display:grid;
    place-items:center;
    margin-bottom:14px;
    border-radius:22px;
    background:rgba(217,31,61,.16);
    font-size:38px;
}

.installStepCard h4{
    margin:0 0 9px;
    font-size:22px;
}

.installStepCard p{
    max-width:490px;
    margin:0;
    color:#c5cfdd;
    line-height:1.55;
}

.installStepControls{
    display:grid;
    grid-template-columns:120px minmax(0,1fr) 120px;
    align-items:center;
    gap:10px;
    margin-top:13px;
}

.installStepControls > span{
    color:#aeb9c9;
    font-size:12px;
    text-align:center;
}

.installStepButton{
    min-height:42px;
    border:1px solid rgba(255,255,255,.12);
    border-radius:11px;
    background:#111b2a;
    color:#fff;
    font-weight:800;
    cursor:pointer;
}

.installStepButton:disabled{
    opacity:.35;
    cursor:not-allowed;
}

.primaryStepButton{
    border-color:#d91f3d;
    background:#d91f3d;
}

.installGuideFooter{
    padding:0 20px 20px;
    color:#8996a8;
    text-align:center;
}

@media(max-width:620px){
    .installGuideDialog{
        width:calc(100% - 12px);
        max-height:calc(100dvh - 12px);
        border-radius:20px;
    }

    .installGuideShell{
        max-height:calc(100dvh - 12px);
    }

    .installGuideHeader{
        padding:14px;
    }

    .installGuideBrand img{
        width:47px;
        height:47px;
    }

    .installBenefits,
    .installDevicePanel{
        padding:15px;
    }

    .installBenefitsGrid{
        grid-template-columns:1fr;
    }

    .installNativePanel{
        align-items:stretch;
        flex-direction:column;
    }

    .primaryInstallButton{
        width:100%;
    }

    .installStepCard{
        min-height:260px;
        padding:19px;
    }

    .installStepControls{
        grid-template-columns:1fr 1fr;
    }

    .installStepControls > span{
        grid-column:1 / -1;
        grid-row:1;
    }

    .installStepControls button{
        grid-row:2;
    }
}


/* ==========================================================
   V6.3.1 Supplied Apple Share icon
========================================================== */

.installStepTitle{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:10px;
}

.installStepTitle img{
    width:42px;
    height:42px;
    display:inline-block;
    object-fit:contain;
    padding:5px;
    border-radius:10px;
    background:#fff;
    vertical-align:middle;
}

@media(max-width:500px){
    .installStepTitle img{
        width:38px;
        height:38px;
    }
}
