/* Streamtime v4.3.4 — isolated Login/Public Player mobile repair.
   Intentionally does not alter the dashboard, scheduler, Auto DJ or admin layout. */
.page-brand-logo{
  display:block;
  width:min(390px,88%);
  height:auto;
  object-fit:contain;
  margin:0 auto 22px;
  max-width:100%;
}
.auth-page-brand-logo{width:min(350px,86%);margin-bottom:20px}
.player-page-brand-logo{width:min(410px,90%);margin-bottom:24px}

/* Keep the public player comfortable without changing native audio controls. */
.player-card{overflow:hidden}
.player-card .big-disc{margin-top:2px}

@media(max-width:760px){
  .login-shell,
  .player-shell{
    min-height:100dvh;
    place-items:start center;
    padding-left:18px;
    padding-right:18px;
  }
  .login-shell{padding-top:42px;padding-bottom:56px}
  .player-shell{padding-top:48px;padding-bottom:72px}
  .login-card,
  .player-card{
    width:100%;
    max-width:650px;
    box-sizing:border-box;
  }
  .login-card{padding:26px 24px 28px}
  .player-card{padding:28px 24px 30px}
  .auth-page-brand-logo{width:min(340px,82vw);margin-bottom:18px}
  .player-page-brand-logo{width:min(390px,84vw);margin-bottom:24px}
  .login-card .brand{font-size:23px;line-height:1.2}
  .login-card h1{font-size:27px;line-height:1.15;margin-top:14px}
  .player-card h1{font-size:clamp(30px,7.2vw,42px);line-height:1.08;margin-top:20px}
  .player-card h2{font-size:clamp(24px,6vw,34px);line-height:1.15}
  .player-card audio{margin-top:20px}
}

@media(max-width:430px){
  .login-shell{padding-top:28px}
  .player-shell{padding-top:32px}
  .login-card,.player-card{padding-left:18px;padding-right:18px;border-radius:14px}
  .auth-page-brand-logo{width:min(310px,84vw)}
  .player-page-brand-logo{width:min(335px,86vw)}
  .player-card .big-disc{width:140px;height:140px}
}

/* Streamtime v4.3.5 — public Radio Page custom live player.
   Native browser audio chrome is deliberately hidden so browsers do not expose
   their Download / playback-rate menu. The stream itself remains normal web audio. */
.streamtime-audio-engine{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  overflow:hidden!important;
  clip:rect(0 0 0 0)!important;
  clip-path:inset(50%)!important;
  white-space:nowrap!important;
  opacity:0!important;
  pointer-events:none!important;
}
.radio-controls{
  display:grid;
  grid-template-columns:auto auto minmax(90px,1fr) auto auto minmax(72px,120px);
  align-items:center;
  gap:12px;
  width:100%;
  margin:22px 0 6px;
  padding:14px 16px;
  box-sizing:border-box;
  border:1px solid #33404d;
  border-radius:999px;
  background:#f4f5f7;
  color:#14181d;
  box-shadow:0 10px 28px rgba(0,0,0,.22);
}
.radio-control-btn{
  appearance:none;
  border:0;
  background:transparent;
  color:#101419;
  min-width:38px;
  min-height:38px;
  padding:0;
  display:grid;
  place-items:center;
  border-radius:50%;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.radio-control-btn:hover,.radio-control-btn:focus-visible{background:#e2e5e9;outline:none}
.radio-play-btn{font-size:23px}
.radio-mute-btn{font-size:20px}
.radio-time{font-variant-numeric:tabular-nums;font-weight:700;font-size:14px;color:#343b43;min-width:40px;text-align:center}
.radio-progress{
  position:relative;
  height:8px;
  border-radius:999px;
  overflow:hidden;
  background:#8d9399;
}
.radio-progress-fill{
  position:absolute;
  inset:0 auto 0 0;
  width:0%;
  border-radius:inherit;
  background:linear-gradient(90deg,#ff6b18,#ff8a2f);
  transition:width .35s linear;
}
.radio-progress.is-live-stream .radio-progress-fill{
  width:42%;
  animation:streamtimeLivePulse 1.7s ease-in-out infinite alternate;
}
@keyframes streamtimeLivePulse{from{transform:translateX(-65%)}to{transform:translateX(185%)}}
.radio-volume{
  width:100%;
  min-width:72px;
  accent-color:#ff6b18;
  cursor:pointer;
}
.radio-live-state{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  margin-top:8px;
  min-height:22px;
}
.radio-live-dot{width:8px;height:8px;border-radius:50%;background:#ff6b18;box-shadow:0 0 12px rgba(255,107,24,.7)}
.radio-live-state.paused .radio-live-dot{background:#7d8790;box-shadow:none}

@media(max-width:560px){
  .radio-controls{
    grid-template-columns:auto auto minmax(82px,1fr) auto auto;
    gap:8px;
    padding:12px 13px;
  }
  .radio-volume{display:none}
  .radio-time{font-size:13px;min-width:36px}
  .radio-control-btn{min-width:34px;min-height:34px}
}

@media(max-width:390px){
  .radio-controls{gap:5px;padding:10px 11px}
  .radio-progress{min-width:70px}
}


/* Streamtime v4.3.6 — upgraded public Radio Page now-playing presentation.
   Keeps the v4.3.5 custom live player behavior and removes native download UI. */
.radio-page-card{
  width:min(1180px,96vw);
  padding:26px;
  text-align:left;
}
.radio-page-card .player-page-brand-logo{
  width:min(330px,72vw);
  margin:0 0 22px;
}
.radio-now-panel{
  position:relative;
  display:grid;
  grid-template-columns:minmax(210px,270px) minmax(320px,1fr) minmax(220px,320px);
  gap:34px;
  align-items:center;
  min-height:280px;
  padding:34px 34px 30px;
  border:1px solid #263442;
  border-radius:22px;
  background:radial-gradient(circle at 18% 28%,rgba(255,103,25,.07),transparent 30%),linear-gradient(145deg,#111b25,#0d151e 70%);
  box-shadow:0 24px 70px rgba(0,0,0,.32);
  overflow:hidden;
}
.radio-on-air-badge{
  position:absolute;
  left:18px;
  top:18px;
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:8px;
  background:#b91821;
  color:#fff;
  font-size:13px;
  font-weight:900;
  letter-spacing:.06em;
  box-shadow:0 0 20px rgba(216,33,43,.28);
  z-index:2;
}
.radio-on-air-badge span{width:7px;height:7px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff}
.radio-artwork{
  position:relative;
  width:100%;
  aspect-ratio:1/1;
  max-width:260px;
  justify-self:center;
  display:grid;
  place-items:center;
  border-radius:18px;
  overflow:hidden;
  background:radial-gradient(circle at 50% 50%,#101722 0 32%,#08101a 33% 100%);
  box-shadow:inset 0 0 0 1px #273545,0 18px 42px rgba(0,0,0,.3);
}
.radio-art-ring{
  position:absolute;
  inset:13%;
  border-radius:50%;
  background:conic-gradient(from 0deg,#ff6b18,#ff3d5d,#6d7cff,#24b5ff,#ff6b18);
  filter:drop-shadow(0 0 13px rgba(91,124,255,.28));
}
.radio-art-ring::after{content:"";position:absolute;inset:5px;border-radius:50%;background:#0a1119}
.radio-art-copy{position:relative;z-index:1;text-align:center;padding:24px;max-width:76%}
.radio-art-copy strong{display:block;color:#fff;font-size:clamp(17px,2vw,28px);line-height:1.05;letter-spacing:.035em;word-break:break-word}
.radio-art-copy small{display:block;margin-top:9px;color:#d9dee5;font-size:11px;font-weight:800;letter-spacing:.14em}
.radio-art-play{
  position:absolute;
  right:12px;
  bottom:12px;
  z-index:3;
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid #475768;
  background:rgba(7,13,20,.88);
  color:#fff;
  display:grid;
  place-items:center;
  font-size:18px;
  box-shadow:0 8px 20px rgba(0,0,0,.35);
}
.radio-art-play:hover,.radio-art-play:focus-visible{background:#ff6b18;border-color:#ff6b18;outline:none}
.radio-now-copy{min-width:0;padding-top:10px}
.radio-now-copy h1{margin:0 0 10px;color:#fff;font-size:clamp(34px,4vw,58px);line-height:1.02;overflow-wrap:anywhere}
.radio-now-copy h2{margin:0 0 15px;color:#ff7a2b;font-size:clamp(21px,2.2vw,32px);font-weight:700;overflow-wrap:anywhere}
.radio-show-line{margin:0 0 32px;color:#d8e0e8;font-size:18px}
.radio-show-line strong{color:#ff7a2b}
.radio-track-progress-wrap{display:grid;grid-template-columns:auto minmax(110px,1fr) auto;align-items:center;gap:16px}
.radio-track-progress-wrap .radio-time{font-size:17px;color:#d8e0e8;font-weight:600;min-width:48px}
.radio-track-progress-wrap .radio-progress{height:9px;background:#263646;cursor:default}
.radio-live-state{justify-content:flex-start;margin:18px 0 0;color:#aab4bf;font-size:14px}
.radio-live-state strong{color:#ff5d4d}
.radio-wave-volume{display:flex;min-width:0;flex-direction:column;justify-content:center;align-items:stretch;gap:34px}
.radio-waveform{height:105px;display:flex;align-items:center;justify-content:center;gap:5px;padding:0 6px;filter:drop-shadow(0 0 12px rgba(255,97,42,.15))}
.radio-waveform i{display:block;width:5px;height:20%;border-radius:999px;background:linear-gradient(180deg,#ff7951,#a73d2b);opacity:.52;transform-origin:center;transition:height .25s ease,opacity .25s ease}
.radio-waveform i:nth-child(3n){height:52%}.radio-waveform i:nth-child(4n){height:78%}.radio-waveform i:nth-child(5n){height:36%}.radio-waveform i:nth-child(7n){height:92%}
.radio-waveform.is-playing i{animation:streamtimeWave 1.05s ease-in-out infinite alternate;opacity:.86}
.radio-waveform.is-playing i:nth-child(2n){animation-duration:.72s}.radio-waveform.is-playing i:nth-child(3n){animation-duration:1.28s}.radio-waveform.is-playing i:nth-child(5n){animation-duration:.88s}
@keyframes streamtimeWave{0%{transform:scaleY(.45)}100%{transform:scaleY(1.12)}}
.radio-volume-row{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:12px}
.radio-volume-row .radio-control-btn{color:#edf3f7;background:#16212c;border:1px solid #2d3b49}
.radio-volume-row .radio-control-btn:hover{background:#202e3b}
.radio-volume-row .radio-volume{display:block;accent-color:#ff6b18}
.radio-station-meta{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 4px 0}
.radio-station-meta h3{display:inline-block;margin:0 0 0 10px;font-size:20px;color:#f2f5f8}
.radio-station-meta p{margin:0;text-align:right;max-width:520px}
.radio-page-links{margin:18px 0 0;text-align:right}

@media(max-width:900px){
  .radio-now-panel{grid-template-columns:190px minmax(0,1fr);gap:24px;padding:68px 24px 26px}
  .radio-wave-volume{grid-column:1/-1;display:grid;grid-template-columns:1fr minmax(180px,280px);gap:24px;align-items:center}
  .radio-waveform{height:72px}
}
@media(max-width:640px){
  .radio-page-card{width:100%;padding:18px}
  .radio-page-card .player-page-brand-logo{width:min(290px,78vw);margin:0 auto 20px}
  .radio-now-panel{grid-template-columns:1fr;gap:22px;padding:64px 20px 24px;text-align:center;border-radius:18px}
  .radio-artwork{max-width:250px}
  .radio-now-copy{padding-top:0}
  .radio-now-copy h1{font-size:clamp(30px,9vw,43px)}
  .radio-now-copy h2{font-size:clamp(20px,6vw,27px)}
  .radio-show-line{font-size:16px;margin-bottom:24px}
  .radio-track-progress-wrap{gap:10px}
  .radio-track-progress-wrap .radio-time{font-size:14px;min-width:40px}
  .radio-live-state{justify-content:center}
  .radio-wave-volume{grid-column:auto;display:flex;gap:18px}
  .radio-waveform{height:64px}
  .radio-volume-row{width:min(320px,100%);margin:0 auto}
  .radio-station-meta{flex-direction:column;align-items:center;text-align:center}
  .radio-station-meta h3{display:block;margin:10px 0 0}
  .radio-station-meta p{text-align:center}
  .radio-page-links{text-align:center}
}
@media(max-width:390px){
  .radio-page-card{padding-left:13px;padding-right:13px}
  .radio-now-panel{padding-left:15px;padding-right:15px}
  .radio-track-progress-wrap{grid-template-columns:auto minmax(80px,1fr) auto}
  .radio-waveform{gap:3px}
  .radio-waveform i{width:4px}
}

/* Streamtime v4.3.7 — public Radio Page visual rebuild.
   Keeps the 4.3.6 live/audio engine, nodownload behavior and station APIs intact. */
.streamtime-public-radio{margin:0;background:#071019;color:#f5f7fa}
.public-radio-shell{min-height:100dvh;background:radial-gradient(circle at 50% -15%,#162b3a 0,#0a1722 34%,#071019 68%);padding:0 24px 72px;box-sizing:border-box}
.public-radio-header{position:relative;max-width:1180px;margin:0 auto;padding:34px 0 26px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.public-radio-logo{display:block;width:min(365px,52vw);height:auto;object-fit:contain}
.public-radio-menu-btn{appearance:none;border:0;background:transparent;color:#f4f6f8;font-size:42px;line-height:1;cursor:pointer;padding:10px;border-radius:12px}
.public-radio-menu-btn:hover,.public-radio-menu-btn:focus-visible{background:#14202b;outline:1px solid #2a3948}
.public-radio-menu{position:absolute;right:0;top:86px;z-index:20;display:none;min-width:210px;padding:10px;border:1px solid #2a3948;border-radius:14px;background:#0f1923;box-shadow:0 22px 60px rgba(0,0,0,.45)}
.public-radio-menu.is-open{display:grid}
.public-radio-menu a{padding:12px 14px;border-radius:10px;color:#e8eef4;text-decoration:none}
.public-radio-menu a:hover{background:#182531;color:#ff7a2b}
.public-radio-main{max-width:1180px;margin:0 auto;display:grid;gap:28px}
.radio-now-panel-v437{grid-template-columns:minmax(260px,350px) minmax(360px,1fr);grid-template-areas:"art copy" "progress progress" "state state" "controls controls" "station station";min-height:auto;padding:82px 34px 30px;gap:24px 48px;background:radial-gradient(circle at 12% 28%,rgba(255,101,31,.08),transparent 28%),linear-gradient(145deg,#101c27,#0a141d 76%);border-color:#2b3b4b}
.radio-now-panel-v437 .radio-artwork{grid-area:art;max-width:350px}
.radio-now-panel-v437 .radio-now-copy{grid-area:copy;align-self:center;padding:0;display:grid;align-content:center}
.radio-now-panel-v437 .radio-now-copy h1{font-size:clamp(38px,4.8vw,68px);margin-bottom:12px}
.radio-now-panel-v437 .radio-now-copy h2{font-size:clamp(22px,2.5vw,34px);margin-bottom:18px}
.radio-now-panel-v437 .radio-show-line{font-size:clamp(17px,1.6vw,22px);margin-bottom:14px}
.radio-now-panel-v437 .radio-waveform{height:112px;justify-content:flex-start;padding:4px 0 0;max-width:520px}
.radio-now-panel-v437 .radio-waveform i{width:6px}
.radio-track-progress-v437{grid-area:progress;display:grid;grid-template-columns:auto minmax(140px,1fr) auto;gap:18px;align-items:center;margin-top:2px}
.radio-track-progress-v437 .radio-time{color:#eef3f7;font-size:20px;font-weight:800;min-width:58px}
.radio-track-progress-v437 .radio-progress{height:10px;overflow:visible;background:#304153}
.radio-track-progress-v437 .radio-progress-fill{height:10px}
.radio-progress-knob{position:absolute;top:50%;left:0;width:22px;height:22px;transform:translate(-50%,-50%);border-radius:50%;background:#ff6b18;box-shadow:0 0 0 5px rgba(255,107,24,.12);transition:left .35s linear}
.radio-track-progress-v437.is-live-stream .radio-progress-knob{display:none}
.radio-now-panel-v437>.radio-live-state{grid-area:state;margin:0;color:#aeb8c2;justify-content:flex-start;font-size:15px}
.radio-control-deck{grid-area:controls;display:grid;grid-template-columns:104px 62px minmax(220px,360px);align-items:center;gap:26px;padding:24px 0 10px;border-top:1px solid #263645;border-bottom:1px solid #263645}
.radio-main-play{appearance:none;border:1px solid #ff7a2b;width:94px;height:94px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(145deg,#ff7a20,#e75112);color:#fff;font-size:32px;font-weight:900;cursor:pointer;box-shadow:0 0 0 13px rgba(255,107,24,.10),0 18px 34px rgba(0,0,0,.34)}
.radio-main-play:hover,.radio-main-play:focus-visible{filter:brightness(1.06);outline:none;box-shadow:0 0 0 13px rgba(255,107,24,.16),0 18px 34px rgba(0,0,0,.34)}
.radio-main-play.is-playing{background:linear-gradient(145deg,#ff791f,#ff5f12)}
.radio-mute-v437{width:58px;height:58px;min-width:58px;min-height:58px;background:#101b25!important;border:1px solid #344656!important;font-size:24px!important;color:#fff!important}
.radio-volume-wrap{display:grid;grid-template-columns:34px 1fr;gap:14px;align-items:center;width:100%}
.radio-volume-speaker{font-size:21px}
.radio-volume-wrap .radio-volume{display:block;accent-color:#ff6b18;width:100%}
.radio-station-meta-v437{grid-area:station;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;padding:8px 0 0}
.radio-station-name{display:flex;align-items:center;gap:10px;min-width:0}
.radio-station-meta-v437 h3{margin:0;font-size:22px;white-space:nowrap}
.radio-station-meta-v437 p{text-align:right;margin:0;min-width:0}
.public-podcast-btn{white-space:nowrap;background:#101b25;border:1px solid #3a4b5c;color:#f2f5f8}
.public-schedule-card{display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:22px;padding:26px 30px;border:1px solid #2a3a49;border-radius:22px;background:linear-gradient(145deg,#101b25,#0c1620);color:#f3f6f8;text-decoration:none;box-shadow:0 20px 50px rgba(0,0,0,.22)}
.public-schedule-card:hover{border-color:#415465;background:#12202b}
.public-schedule-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:14px;color:#ff6b18;font-size:35px;background:#151e28;border:1px solid #334251}
.public-schedule-card strong{display:block;font-size:28px;line-height:1.1}
.public-schedule-card small{display:block;margin-top:8px;color:#8f9aa6;font-size:17px}
.public-schedule-arrow{font-size:54px;color:#c8d0d8;line-height:1}

.public-schedule-page{min-height:100dvh;background:radial-gradient(circle at 50% -15%,#162b3a 0,#0a1722 34%,#071019 68%);color:#f5f7fa;padding:0 24px 72px;box-sizing:border-box}
.public-schedule-wrap{max-width:1050px;margin:0 auto}
.public-schedule-title{margin:0 0 6px;font-size:clamp(31px,5vw,48px)}
.public-schedule-sub{margin:0 0 24px;color:#9aa6b2}
.public-schedule-list{display:grid;gap:12px}
.public-airing{display:grid;grid-template-columns:120px 1fr auto;gap:18px;align-items:center;padding:18px 20px;border:1px solid #263747;border-radius:16px;background:#0f1923}
.public-airing time{font-weight:800;color:#ff7a2b}
.public-airing strong{display:block;font-size:18px}.public-airing small{display:block;color:#8d99a5;margin-top:4px}
.public-airing .tag{justify-self:end}
.public-back-link{display:inline-flex;margin:22px 0;color:#cbd5dd;text-decoration:none}.public-back-link:hover{color:#ff7a2b}

@media(max-width:760px){
  .public-radio-shell,.public-schedule-page{padding-left:18px;padding-right:18px;padding-bottom:54px}
  .public-radio-header{padding:24px 4px 20px}
  .public-radio-logo{width:min(300px,72vw)}
  .public-radio-menu-btn{font-size:34px}
  .public-radio-menu{top:72px;right:2px}
  .radio-now-panel-v437{grid-template-columns:1fr;grid-template-areas:"art" "copy" "progress" "state" "controls" "station";gap:22px;padding:72px 20px 24px;text-align:left;border-radius:22px}
  .radio-now-panel-v437 .radio-artwork{max-width:360px;width:min(100%,360px);justify-self:center}
  .radio-now-panel-v437 .radio-now-copy{text-align:left}
  .radio-now-panel-v437 .radio-now-copy h1{font-size:clamp(34px,9vw,48px)}
  .radio-now-panel-v437 .radio-now-copy h2{font-size:clamp(21px,6vw,30px)}
  .radio-now-panel-v437 .radio-waveform{height:82px;justify-content:center;max-width:none}
  .radio-track-progress-v437{gap:12px}
  .radio-track-progress-v437 .radio-time{font-size:17px;min-width:46px}
  .radio-now-panel-v437>.radio-live-state{justify-content:flex-start}
  .radio-control-deck{grid-template-columns:88px 54px minmax(0,1fr);gap:18px}
  .radio-main-play{width:80px;height:80px;font-size:28px}
  .radio-mute-v437{width:52px;height:52px;min-width:52px;min-height:52px}
  .radio-volume-wrap{grid-template-columns:1fr}.radio-volume-speaker{display:none}
  .radio-station-meta-v437{grid-template-columns:1fr auto;gap:14px}
  .radio-station-name{grid-column:1/2}.radio-station-meta-v437 p{grid-column:1/-1;grid-row:2;text-align:left}.public-podcast-btn{grid-column:2;grid-row:1}
  .public-schedule-card{grid-template-columns:58px 1fr auto;padding:22px 20px;gap:16px}
  .public-schedule-icon{width:52px;height:52px;font-size:30px}.public-schedule-card strong{font-size:23px}.public-schedule-card small{font-size:15px}.public-schedule-arrow{font-size:42px}
  .public-airing{grid-template-columns:92px 1fr}.public-airing .tag{grid-column:2;justify-self:start}
}
@media(max-width:460px){
  .public-radio-shell,.public-schedule-page{padding-left:12px;padding-right:12px}
  .public-radio-header{gap:10px}
  .public-radio-logo{width:min(260px,73vw)}
  .radio-now-panel-v437{padding-left:16px;padding-right:16px}
  .radio-control-deck{grid-template-columns:76px 48px minmax(0,1fr);gap:12px}
  .radio-main-play{width:70px;height:70px;font-size:25px}
  .radio-mute-v437{width:46px;height:46px;min-width:46px;min-height:46px;font-size:20px!important}
  .radio-track-progress-v437{grid-template-columns:auto minmax(80px,1fr) auto;gap:8px}
  .radio-track-progress-v437 .radio-time{font-size:15px;min-width:40px}
  .radio-station-meta-v437{grid-template-columns:1fr}.radio-station-name,.public-podcast-btn{grid-column:1}.public-podcast-btn{grid-row:3;justify-self:start}.radio-station-meta-v437 p{grid-row:2}
  .public-schedule-card{grid-template-columns:48px 1fr auto;padding:18px 16px}.public-schedule-icon{width:44px;height:44px;font-size:25px}.public-schedule-card strong{font-size:20px}.public-schedule-card small{font-size:14px}
}
.radio-progress.is-live-stream .radio-progress-knob{display:none}
