/* 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}
}
