.nightshift-landing{background:#080e17;min-height:100vh;color:#e9f2f1}
.public-header{height:88px;max-width:1370px;margin:auto;padding:0 36px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #1f303d}
.public-brand{display:inline-flex;align-items:center;gap:13px;color:#edf8f5;text-decoration:none}
.public-brand-name{font-family:'Space Grotesk',sans-serif;font-size:19px;font-weight:700;letter-spacing:.12em;line-height:1.1}
.public-brand-name small{display:block;font-family:'DM Sans',sans-serif;font-size:8px;font-weight:800;color:#748e9d;letter-spacing:.19em;margin-top:7px}
.public-login{color:#091e1d;background:#7fe7bc;padding:12px 21px;border-radius:8px;text-decoration:none;font-weight:800;font-size:12px;display:flex;align-items:center;gap:14px}
.public-login:hover{background:#a0f4d1;color:#071a14}
.public-main{max-width:1250px;margin:0 auto;padding:73px 34px 45px}
.public-hero{position:relative;margin-bottom:63px}
.public-hero:before{content:"";pointer-events:none;position:absolute;z-index:-1;right:3%;top:-100px;width:540px;height:420px;background:radial-gradient(ellipse,#224a4359 0%,transparent 66%)}
.public-kicker{display:flex;align-items:center;gap:10px;color:#7fe7bc;font-size:10px;letter-spacing:.18em;font-weight:800}
.public-pulse{display:inline-block;width:7px;height:7px;border-radius:50%;background:#78e6b6;box-shadow:0 0 0 4px #71e5b71d,0 0 14px #62d6a859}
.public-hero h1{font:600 clamp(42px,5.5vw,76px)/1.09 'Space Grotesk',sans-serif;letter-spacing:-.058em;margin:24px 0 18px}
.public-hero h1 em{color:#7fe7bc;font-style:normal}
.public-hero>p{color:#91a7b4;font-size:15px;line-height:1.75;max-width:635px;margin:0}
.public-section-heading{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:22px}
.public-section-heading p{font-size:10px;font-weight:800;letter-spacing:.19em;color:#7fe7bc;margin:0 0 9px}
.public-section-heading h2{font:600 25px 'Space Grotesk',sans-serif;letter-spacing:-.035em;margin:0}
.public-section-heading h2 span{font:700 10px 'DM Sans',sans-serif;color:#8ccab3;background:#1c3637;border:1px solid #3d6562;padding:5px 8px;margin-left:10px;border-radius:6px;vertical-align:middle}
.public-refresh-indicator{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:.1em;font-weight:800;color:#72929e;white-space:nowrap}
.public-streams{display:grid;gap:13px}
.public-stream{border:1px solid #2b404c;background:linear-gradient(110deg,#142431,#101c29);border-radius:13px;display:grid;grid-template-columns:55px minmax(170px,1fr) minmax(150px,1fr) minmax(150px,1fr);align-items:center;gap:21px;padding:22px 26px;min-height:123px}
.public-stream.is-first{border-color:#528b79;background:linear-gradient(110deg,#172f31,#101d29)}
.public-place{font:600 28px 'Space Grotesk',sans-serif;color:#80bbac}
.public-stream.is-first .public-place{color:#91f4c7}
.public-station-name{font:600 18px 'Space Grotesk',sans-serif;letter-spacing:-.02em;overflow-wrap:anywhere}
.public-station-meta{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:8px;color:#8da7b5;font-size:10px}
.public-live-badge{color:#9aebc5;font-size:9px;font-weight:900;letter-spacing:.12em}
.public-live-badge:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#85dcb0;margin-right:6px;vertical-align:middle}
.public-station-meta .public-dj{color:#d9b8ee}
.public-figure{text-align:right}
.public-figure strong{display:block;font:600 27px 'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums}
.public-figure span{display:block;color:#7e98a8;font-size:10px;margin-top:7px}
.public-score{font-size:11px;color:#a7dccc;margin:7px 0 0;text-align:right}
.public-loading,.public-empty{padding:55px 25px;background:#111d2a;border:1px solid #263a48;border-radius:13px;text-align:center;color:#98aab7;line-height:1.65}
.public-error{padding:13px 17px;color:#fac7cc;border:1px solid #804b56;background:#321c27;border-radius:9px;margin:0 0 16px;font-size:12px}
.public-footer{max-width:1370px;margin:30px auto 0;padding:26px 36px 33px;border-top:1px solid #20313c;display:flex;gap:16px;justify-content:space-between;color:#698394;font-size:10px;letter-spacing:.1em;font-weight:700}
@media(max-width:850px){.public-stream{grid-template-columns:45px 1fr 1fr;gap:15px}.public-stream .public-score-wrap{grid-column:3}.public-refresh-indicator{display:none}}
@media(max-width:590px){.public-header{height:73px;padding:0 19px}.public-main{padding:49px 19px 30px}.public-hero{margin-bottom:43px}.public-numbers{gap:8px}.public-numbers>div{min-width:0;flex:1;padding:15px 12px}.public-numbers strong{font-size:25px}.public-numbers span{font-size:8px}.public-hero>p{font-size:13px}.public-stream{grid-template-columns:35px 1fr 1fr;padding:16px 13px;gap:12px}.public-station-ident{grid-column:2/4}.public-figure{grid-column:2;text-align:left}.public-score-wrap{grid-column:3!important}.public-score-wrap,.public-score-wrap .public-figure{text-align:right}.public-station-name{font-size:16px}.public-figure strong{font-size:22px}.public-section-heading h2{font-size:20px}.public-footer{padding:20px;flex-direction:column}.public-brand-name{font-size:16px}}

/* Priority grouping: confirmed live artists/DJs first, unattended radio second. */
.public-streams{display:grid;gap:35px}
.public-stream-group{display:grid;gap:15px;min-width:0}
.public-stream-group-heading{display:flex;align-items:end;justify-content:space-between;gap:14px;border-bottom:1px solid #29404b;padding:0 1px 13px}
.public-stream-group-heading p{margin:0 0 7px;color:#7fe7bc;font-size:10px;font-weight:800;letter-spacing:.16em}
.public-stream-group-heading h3{font:600 clamp(20px,2.5vw,25px) 'Space Grotesk',sans-serif;letter-spacing:-.025em;margin:0}
.public-stream-group-radio .public-stream-group-heading p{color:#93a8b9}
.public-group-count{font-size:10px;font-weight:800;letter-spacing:.1em;color:#809cac;white-space:nowrap}
.public-stream-group-cards{display:grid;gap:13px}
@media(max-width:590px){.public-streams{gap:29px}.public-stream-group-heading{align-items:center}.public-group-count{font-size:9px}}

/* Keep the last-verified time beside the hero title, not in a metrics row. */
.public-hero-heading{display:flex;align-items:center;justify-content:space-between;column-gap:35px;row-gap:18px}
.public-hero-heading h1{margin:24px 0 18px;min-width:0}
.public-time{flex:0 0 auto;min-width:175px;padding:16px 22px;text-align:right;background:#111e2b;border:1px solid #263c49;border-radius:12px}
.public-time strong{font:600 29px 'Space Grotesk',sans-serif;font-variant-numeric:tabular-nums;display:block}
.public-time span{display:block;font-size:9px;font-weight:800;letter-spacing:.12em;color:#7f9aa8;margin-top:6px}
@media(max-width:650px){.public-hero-heading{align-items:flex-start}.public-time{min-width:105px;padding:11px 12px;margin-top:22px}.public-time strong{font-size:19px}.public-time span{font-size:8px}.public-hero-heading h1{font-size:clamp(33px,7.1vw,52px)}}
@media(max-width:390px){.public-hero-heading{gap:8px}.public-time{min-width:90px;padding:10px 8px}.public-time strong{font-size:17px}}

.public-station-extras{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}.public-next-set{color:#a5c5d0;font-size:10px}.public-teleport{display:inline-flex;align-items:center;border:1px solid #58776e;border-radius:6px;padding:6px 9px;color:#92edc3;text-decoration:none;font-size:10px;font-weight:800;white-space:nowrap}.public-teleport:hover{border-color:#9ceac7;background:#1a3b37}

/* Scheduled performers are announced without claiming they are already broadcasting. */
.public-upcoming-stream{grid-template-columns:55px minmax(170px,1fr) minmax(170px,auto);border-color:#405263}
.public-upcoming-symbol{font-size:24px;color:#adbdde}
.public-soon-badge{color:#c4a6ff;font-size:9px;font-weight:850;letter-spacing:.12em}
.public-upcoming-time{text-align:right}
.public-upcoming-time strong{display:block;font:600 17px 'Space Grotesk',sans-serif;white-space:nowrap;color:#e4e3ff}
.public-upcoming-time span{display:block;font-size:9px;letter-spacing:.08em;color:#93a6ba;margin-top:7px}
.public-set-name{font-size:10px;color:#b5c9d5}
.public-stream-group-soon .public-stream-group-heading p{color:#c4a6ff}
@media(max-width:650px){.public-upcoming-stream{grid-template-columns:35px minmax(0,1fr);gap:12px}.public-upcoming-stream .public-station-ident{grid-column:2!important}.public-upcoming-stream .public-upcoming-time{grid-column:2;text-align:left}.public-upcoming-time strong{white-space:normal}}

/* Public calendar navigation next to Log in. */
.public-nav{display:flex;align-items:center;gap:11px}.public-calendar-link{display:inline-flex;align-items:center;text-decoration:none;color:#c9e3df;padding:11px 16px;border:1px solid #35505a;border-radius:8px;font-size:12px;font-weight:800}.public-calendar-link:hover,.public-calendar-link[aria-current="page"]{color:#a8f6d6;border-color:#79c9b1;background:#17332f}@media(max-width:590px){.public-nav{gap:6px}.public-calendar-link{padding:10px 11px}.public-login{padding:11px 13px;gap:7px}}

/* The entire live-and-upcoming region stays absent when no group has entries. */
.public-broadcasts[hidden]{display:none!important}

/* Live Guide listening controls */
.public-play{display:inline-flex;align-items:center;gap:7px;border:1px solid #589d86;border-radius:7px;background:#1b473b;color:#a9f8d4;padding:7px 12px;font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap}
.public-play:hover{background:#285f4d;border-color:#a9f8d4;color:white}
.public-play:focus-visible{outline:2px solid #a9f8d4;outline-offset:3px}
.public-play-unavailable{opacity:.45;cursor:not-allowed;background:#263341;border-color:#415263;color:#b6c3cb}

/* Compact, unmistakable play control for both Live Guides. */
.public-play{width:38px;height:38px;min-width:38px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:0}
.public-play svg{display:block;width:19px;height:19px;margin-left:2px}
.public-play-unavailable{cursor:not-allowed}

/* In-page streaming and separate pop-out player. */
.public-player-controls{display:inline-flex;align-items:center;gap:7px}
button.public-play{font-family:inherit;cursor:pointer}
.public-popout{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid #466472;border-radius:9px;color:#b8d8e4;background:#172b36;text-decoration:none}
.public-popout:hover{border-color:#8ab7c7;color:white;background:#244250}
.public-popout:focus-visible{outline:2px solid #a9f8d4;outline-offset:3px}
.public-popout svg{width:19px;height:19px}
.public-inline-play[aria-pressed="true"]{background:#285f4d;border-color:#a9f8d4}
