/* ══ ST LEU TV — ACCUEIL V2 ══ */

/* BRAND */
.stv-brand { display:flex; align-items:center; gap:10px; }
.stv-brand-logo {
  font-weight:900; font-size:1.15rem; letter-spacing:.02em;
  animation:stv-brand-in .6s ease both;
}
.stv-bl-stleu { color:#ff1744; }
.stv-bl-tv    { color:#ffffff; }
.stv-brand-slogan {
  font-size:.72rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); margin-top:2px; opacity:.85;
}
@keyframes stv-brand-in {
  from { opacity:0; transform:translateX(-8px); }
  to   { opacity:1; transform:translateX(0); }
}

/* Topbar actions */
.topbar-actions { display:flex; align-items:center; gap:10px; }
.stv-share-btn {
  width:34px; height:34px; border-radius:50%;
  border:1px solid rgba(255,255,255,.15); background:rgba(255,255,255,.06);
  color:#fff; cursor:pointer; display:grid; place-items:center; transition:.18s;
}
.stv-share-btn:hover { background:rgba(255,255,255,.14); }

/* LOADER */
.stv-loader {
  position:absolute; inset:0; z-index:10;
  background:radial-gradient(circle at 25% 35%, rgba(255,23,68,.2), transparent 55%),
             linear-gradient(180deg,#06080d,#030407);
  display:flex; align-items:center; justify-content:center;
  transition:opacity .7s ease;
}
.stv-loader.hidden { opacity:0; pointer-events:none; }
.stv-loader-content { text-align:center; padding:30px; margin-top:-60px; }
.stv-loader-brand-wrap { margin-bottom:26px; }
.stv-loader-brand {
  font-weight:900; font-size:2.4rem; letter-spacing:.04em; line-height:1;
  animation:stv-loader-pulse 2s ease-in-out infinite;
}
.stv-loader-brand .stv-bl-stleu { color:#ff1744; text-shadow:0 0 40px rgba(255,23,68,.6); }
.stv-loader-brand .stv-bl-tv    { color:#ffffff; text-shadow:0 0 30px rgba(255,255,255,.3); }
.stv-loader-slogan {
  font-size:.75rem; letter-spacing:.25em; text-transform:uppercase;
  color:var(--gold); margin-top:10px; opacity:.75;
}
@keyframes stv-loader-pulse {
  0%,100% { transform:scale(1); }
  50% { transform:scale(1.03); filter:brightness(1.15); }
}
.stv-loader-bar {
  width:200px; height:3px; background:rgba(255,255,255,.08);
  border-radius:999px; overflow:hidden; margin:0 auto 10px;
}
.stv-loader-fill {
  height:100%; width:0%;
  background:linear-gradient(90deg,#ff1744,#ff6b6b,#fff);
  border-radius:999px; transition:width .35s ease;
}
.stv-loader-pct { font-size:.7rem; color:rgba(255,255,255,.3); font-family:var(--mono); }

/* CAPTION */
.direct-caption {
  display:flex; align-items:center; justify-content:space-between;
  gap:14px; padding:10px 16px;
  background:rgba(3,4,7,.8); border-top:1px solid rgba(255,255,255,.07);
  flex:none;
}
.stv-caption-main { flex:1; min-width:0; }
.stv-caption-btns { display:flex; align-items:center; gap:6px; flex:none; }
.stv-prog-title {
  font-size:clamp(.9rem,1.3vw,1.35rem); font-weight:800;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:#fff;
}
.stv-prog-next {
  font-size:.7rem; color:var(--muted); margin-top:3px;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.stv-prog-next:not(:empty)::before { content:'▶ '; color:var(--gold); font-size:.55rem; }

/* Progression */
.stv-progress-wrap { margin-top:7px; }
.stv-progress-bar {
  height:3px; background:rgba(255,255,255,.1);
  border-radius:999px; overflow:hidden;
}
.stv-progress-fill {
  height:100%; width:0%;
  background:linear-gradient(90deg,#ff1744,#ff6b6b);
  border-radius:999px; transition:width .5s linear;
}
.stv-progress-times {
  display:flex; justify-content:space-between;
  font-size:.62rem; color:rgba(255,255,255,.28);
  font-family:var(--mono); margin-top:3px;
}

/* Boutons caption */
.stv-ctrl-btn {
  width:34px; height:34px; border-radius:9px;
  border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.05);
  color:#fff; cursor:pointer; font-size:.9rem;
  display:grid; place-items:center; transition:.15s; flex:none;
}
.stv-ctrl-btn:hover { background:rgba(255,255,255,.13); border-color:rgba(255,255,255,.22); }

/* RSS TICKER */
.stv-rss-panel {
  border:1px solid rgba(255,255,255,.08); border-radius:18px;
  background:rgba(255,255,255,.03); overflow:hidden; flex:none;
}
.stv-ticker-wrap {
  overflow:hidden; padding:0;
  height:36px; display:flex; align-items:center;
  background:rgba(255,23,68,.06);
}
.stv-ticker-track {
  white-space:nowrap; font-size:.75rem; font-weight:600;
  color:rgba(255,255,255,.75); padding-left:100%;
  animation:stv-ticker 35s linear infinite;
  display:inline-block;
}
@keyframes stv-ticker {
  from { transform:translateX(0); }
  to   { transform:translateX(-50%); }
}

/* MÉTÉO */
.weather-panel {
  border:1px solid rgba(255,255,255,.08); border-radius:18px;
  background:rgba(255,255,255,.03); overflow:hidden; flex:none;
}

/* VIDÉO À LA UNE */
.stv-une-panel {
  border:1px solid rgba(255,255,255,.08); border-radius:18px;
  background:rgba(255,255,255,.03); overflow:hidden;
  flex:1; min-height:0; display:flex; flex-direction:column;
}
.stv-une-back {
  font-size:.68rem; color:var(--gold); cursor:pointer;
  text-decoration:underline; transition:.15s;
}
.stv-une-back:hover { opacity:.7; }
.stv-une-featured { flex:1; padding:10px; display:flex; flex-direction:column; gap:10px; }
.stv-une-card {
  position:relative; border-radius:14px; overflow:hidden;
  cursor:pointer; transition:.2s;
  box-shadow:0 8px 24px rgba(0,0,0,.4);
}
.stv-une-card:hover { transform:scale(1.02); box-shadow:0 12px 32px rgba(0,0,0,.5); }
.stv-une-card.playing { outline:2px solid #ff1744; }
.stv-une-thumb-big {
  width:100%; aspect-ratio:16/9; object-fit:cover; display:block;
  background:#111;
}
.stv-une-overlay {
  position:absolute; inset:0;
  background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.85) 100%);
  display:flex; flex-direction:column; justify-content:flex-end; padding:12px;
}
.stv-une-play-btn {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:52px; height:52px; border-radius:50%;
  background:rgba(255,23,68,.85); border:2px solid rgba(255,255,255,.3);
  display:grid; place-items:center; font-size:1.3rem;
  transition:.2s; backdrop-filter:blur(4px);
}
.stv-une-card:hover .stv-une-play-btn { background:#ff1744; transform:translate(-50%,-50%) scale(1.1); }
.stv-une-card.playing .stv-une-play-btn { background:#ff6b6b; }
.stv-une-title-big { font-size:.85rem; font-weight:800; color:#fff; line-height:1.3; }
.stv-une-meta-big { font-size:.65rem; color:rgba(255,255,255,.55); margin-top:3px; }
.stv-une-dur-badge {
  position:absolute; top:8px; right:8px;
  background:rgba(0,0,0,.8); color:#fff; font-size:.65rem;
  font-weight:700; padding:2px 7px; border-radius:5px;
  font-family:var(--mono);
}
.stv-rss-loading { padding:14px; font-size:.75rem; color:var(--muted); }

/* AGENDA */
.stv-agenda-panel {
  border:1px solid rgba(255,255,255,.08); border-radius:18px;
  background:rgba(255,255,255,.03); overflow:hidden; flex:none;
}
.stv-agenda-list { padding:6px 0; }
.stv-agenda-item {
  display:flex; align-items:center; gap:10px; padding:8px 12px;
  border-bottom:1px solid rgba(255,255,255,.05);
}
.stv-agenda-item:last-child { border-bottom:none; }
.stv-agenda-date {
  width:40px; text-align:center; flex:none;
  background:rgba(255,23,68,.1); border:1px solid rgba(255,23,68,.2);
  border-radius:9px; padding:4px 0;
}
.stv-agenda-day { font-size:.8rem; font-weight:900; color:#ff1744; }
.stv-agenda-mon { font-size:.55rem; color:var(--muted); text-transform:uppercase; letter-spacing:.07em; }
.stv-agenda-body { flex:1; min-width:0; }
.stv-agenda-title { font-size:.74rem; font-weight:700; color:#fff; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.stv-agenda-lieu { font-size:.62rem; color:var(--gold); margin-top:1px; }
.stv-agenda-empty { padding:12px; font-size:.74rem; color:var(--muted); }

/* MODAL PARTAGE */
.stv-share-modal {
  position:fixed; inset:0; z-index:200;
  background:rgba(0,0,0,.75); backdrop-filter:blur(6px);
  display:none; align-items:center; justify-content:center;
}
.stv-share-modal.show { display:flex; animation:stv-fadein .2s; }
@keyframes stv-fadein { from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)} }
.stv-share-card {
  background:#0d1117; border:1px solid rgba(255,255,255,.12);
  border-radius:20px; padding:26px; width:300px; max-width:90vw;
  text-align:center; position:relative; box-shadow:0 24px 60px rgba(0,0,0,.6);
}
.stv-share-title { font-size:1rem; font-weight:800; margin-bottom:18px; color:#fff; }
.stv-share-btns { display:flex; flex-direction:column; gap:9px; }
.stv-sh-btn {
  display:flex; align-items:center; justify-content:center; gap:9px;
  padding:11px 18px; border-radius:11px; font-size:.88rem; font-weight:700;
  cursor:pointer; text-decoration:none; color:#fff; border:none; transition:.15s;
}
.stv-sh-wa { background:#25D366; } .stv-sh-wa:hover { background:#1db954; }
.stv-sh-fb { background:#1877F2; } .stv-sh-fb:hover { background:#0e68d9; }
.stv-sh-copy { background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.15); }
.stv-sh-copy:hover { background:rgba(255,255,255,.18); }
.stv-share-close {
  position:absolute; top:10px; right:13px;
  background:none; border:none; color:var(--muted); font-size:1rem; cursor:pointer;
}

/* MOBILE */
@media (max-width:768px) {
  .direct-shell {
    grid-template-columns:1fr !important;
    height:auto !important; gap:0 !important; padding:0 !important;
  }
  .direct-stage { height:auto !important; grid-template-rows:auto minmax(0,56vw) auto !important; }
  .video-wrap { min-height:56vw !important; }
  .direct-info-panel {
    max-height:none !important; overflow:visible !important;
    padding:10px !important; gap:8px !important;
    grid-template-rows:auto !important;
    display:flex !important; flex-direction:column !important;
  }
  .stv-une-panel { min-height:260px; }
  body.direct-lock { height:auto !important; overflow:auto !important; }
  .topbar { position:sticky; top:0; margin-top:0 !important; }
  .stv-brand-slogan { display:none; }
  .footer { display:block !important; }
  .container { width:100% !important; }
}

/* SCROLLBARS */
.stv-agenda-list::-webkit-scrollbar,
.stv-une-featured::-webkit-scrollbar { width:3px; }
.stv-agenda-list::-webkit-scrollbar-thumb,
.stv-une-featured::-webkit-scrollbar-thumb { background:rgba(255,255,255,.12); border-radius:999px; }

/* PLEIN ÉCRAN */
:fullscreen .video-wrap, :-webkit-full-screen .video-wrap { border-radius:0; }
:fullscreen video, :-webkit-full-screen video { width:100%; height:100%; object-fit:contain; }

/* Date largeur fixe — empêche le bloc de bouger */
#directDate { 
  font-variant-numeric: tabular-nums;
  min-width: 88px;
  display: inline-block;
}
#directClock {
  font-variant-numeric: tabular-nums;
}
.direct-datebox .mini-tile {
  min-width: 0;
  overflow: hidden;
}
