/* ==========================================================
   Radio école .tl — le direct (styles complémentaires)
   Mobile-first : 1 colonne par défaut, 2 colonnes >= 768px
   ========================================================== */

/* Boutons et champs rectangulaires (angles légèrement arrondis) */
.btn { border-radius: 8px; }
.btn-icon { border-radius: 8px; }
.btn-install { border-radius: 8px; }
.input, select.input, textarea.input { border-radius: 8px; }
.tab-btn { border-radius: 8px; }

/* ------------------------- Bandeau EN DIRECT ------------------------- */
.live-strip {
  display: flex;
  align-items: center;
  gap: .55rem;
  max-width: 1160px;
  margin: 0 auto;
  padding: .55rem 18px;
  background: #fff1f1;
  color: #b91c1c;
  border-bottom: 1px solid #ffd9d9;
  font-size: .84rem;
  font-weight: 700;
}
.live-strip:hover { text-decoration: none; }
.live-strip-text {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
}
.live-strip-go { flex: none; display: inline-flex; align-items: center; }

/* Le point rouge ne clignote que lorsqu'un direct est vraiment en cours. */
.brand-sub .live-dot { background: #c9c4d8; animation: none; box-shadow: none; }
.brand-sub .live-dot.is-on { background: #ef4444; animation: pulse 1.8s infinite; }

/* ------------------------- Page du direct ------------------------- */
.live-layout { display: grid; grid-template-columns: 1fr; gap: 1rem; }
.live-listen-top {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  margin-bottom: .6rem;
}
.onair-badge {
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  padding: .28rem .65rem;
  border-radius: 8px;
  background: #ffe4e4;
  color: #b91c1c;
  font-size: .76rem;
  font-weight: 800;
  letter-spacing: .05em;
}
.onair-badge .live-dot { background: #e11d48; }

.live-listen h2 { margin-top: .5rem; }

/* ------------------------- Panneau micro ------------------------- */
.live-onair-panel {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}
.live-mic-state { display: flex; align-items: center; gap: .7rem; }
.live-mic-state strong { display: block; line-height: 1.3; }
.live-mic-state span.muted { font-size: .84rem; }
.live-dot-lg { width: 14px; height: 14px; flex: none; }
.live-meter {
  margin: .85rem 0 .45rem;
  height: 10px;
  border-radius: 6px;
  background: var(--bg-alt);
  border: 1px solid var(--line);
  overflow: hidden;
}
.live-meter span {
  display: block;
  height: 100%;
  width: 3%;
  background: linear-gradient(90deg, var(--brand), var(--accent));
  transition: width .09s linear;
}

/* ------------------------- Étapes et listes ------------------------- */
.live-steps li {
  display: flex;
  align-items: flex-start;
  gap: .6rem;
  padding: .5rem 0;
  font-size: .9rem;
  color: var(--ink-soft);
  line-height: 1.5;
}
.live-steps li + li { border-top: 1px solid var(--line); }
.live-steps .step-num { flex: none; }

/* ------------------------- Rediffusions ------------------------- */
#liveReplays .ep-play[disabled] { opacity: .45; cursor: not-allowed; }
#liveReplays .episode + .episode { margin-top: .6rem; }

/* ------------------------- Grand écran ------------------------- */
@media (min-width: 768px) {
  .live-layout { grid-template-columns: 1.55fr 1fr; gap: 1.4rem; align-items: start; }
  .live-side { display: grid; gap: 1rem; position: sticky; top: calc(var(--topbar-h) + 14px); }
  .live-strip { padding: .6rem 18px; }
}

/* ------------------------- Navigation à six onglets -------------------------
   La barre compte désormais six entrées : les libellés ne doivent jamais
   déborder, ni provoquer un défilement horizontal sur un petit téléphone. */
.tabbar .tab span {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 400px) {
  .tabbar .tab { font-size: .6rem; padding: .5rem .08rem; gap: 1px; }
  .tabbar .tab .icon { width: 20px; height: 20px; }
}
@media (max-width: 340px) {
  .tabbar .tab span { display: none; }
  .tabbar .tab { min-height: 52px; }
}
