/* ===== Source historique : inline-1 ===== */
html{ background:#0b0f1a; }
body {
  position: relative;
  font-family: 'Orbitron', sans-serif;
  background: #0b0f1a;
  color: #e0f0ff;
  margin: 0;
  padding: calc(var(--top-bar-height, 72px) + 24px) 20px calc(var(--bottom-bar-height, 78px) + 24px);
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

:root{
  --top-bar-height: 72px;
  --bottom-bar-height: 84px;
}

.top-bar{
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--top-bar-height);
  z-index: 3000;
  background:
    linear-gradient(180deg, rgba(30, 72, 110, 0.16), rgba(30, 72, 110, 0) 58%),
    linear-gradient(135deg, rgba(7, 15, 30, 0.98), rgba(12, 24, 44, 0.96));
  border-bottom: 1px solid rgba(0, 240, 255, 0.35);
  box-shadow: 0 8px 24px rgba(0, 240, 255, 0.15);
  backdrop-filter: blur(12px);
}

.top-bar__inner{
  max-width: 1200px;
  margin: 0 auto;
  height: 100%;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.top-bar__brand{
  display:flex;
  align-items:center;
  gap:12px;
  min-width: 0;
}

.top-bar__brand-logos{
  display:flex;
  align-items:center;
  gap:10px;
  flex: 0 0 auto;
}

.top-bar__logo-icon,
.top-bar__logo-text{
  width: auto;
  object-fit: contain;
  filter: drop-shadow(0 0 10px rgba(0, 240, 255, 0.35));
  display: block;
  flex: 0 0 auto;
}

.top-bar__logo-icon{ height: 44px; }
.top-bar__logo-text{ height: 28px; }

.top-bar__title{
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.top-bar__route{
  flex: 1 1 auto;
  display:flex;
  justify-content:center;
  min-width: 0;
}

.top-bar__route-pill{
  max-width: 100%;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid rgba(0, 240, 255, 0.35);
  background: rgba(0, 10, 20, 0.55);
  color: #bff7ff;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: 0.78rem;
  box-shadow: inset 0 0 10px rgba(0, 240, 255, 0.16), 0 0 14px rgba(0, 240, 255, 0.12);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


.top-bar__socials{
  display:grid;
  grid-template-columns: repeat(2, auto);
  align-items:center;
  justify-items:center;
  gap:4px 6px;
}

.top-bar__social-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color: #dffbff;
  text-decoration:none;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  padding: 0;
  transition: transform 0.16s ease, filter 0.16s ease, color 0.16s ease;
}

.top-bar__social-link:hover,
.top-bar__social-link:focus-visible{
  transform: scale(1.06);
  color: #f3feff;
  filter: drop-shadow(0 0 6px rgba(0,240,255,.7));
}

.top-bar__social-link svg{
  width: 16px;
  height: 16px;
  fill: currentColor;
}

.header-container.hero-compact{ display:none !important; }

.top-bar__title{
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: #7ef7ff;
  text-transform: uppercase;
  text-shadow: 0 0 12px rgba(0, 240, 255, 0.6);
}

.top-bar__account{
  border: 1px solid rgba(0, 240, 255, 0.55);
  background: rgba(0, 16, 28, 0.75);
  color: #dffbff;
  padding: 8px 16px;
  border-radius: 999px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: inset 0 0 10px rgba(0, 240, 255, 0.25), 0 0 16px rgba(0, 240, 255, 0.2);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.top-bar__account:hover{
  transform: translateY(-1px);
  border-color: rgba(0, 240, 255, 0.9);
  box-shadow: inset 0 0 12px rgba(0, 240, 255, 0.35), 0 0 18px rgba(0, 240, 255, 0.35);
}

/* Top-bar actions (PWA) */
.top-bar__actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex: 0 0 auto;
}

.top-bar__iconbtn{
  width: 40px;
  height: 40px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius: 999px;
  border: 1px solid rgba(0, 240, 255, 0.45);
  background: rgba(0, 16, 28, 0.55);
  color: #dffbff;
  text-decoration:none;
  font-size: 1.05rem;
  line-height: 1;
  box-shadow: inset 0 0 10px rgba(0, 240, 255, 0.18), 0 0 12px rgba(0, 240, 255, 0.12);
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.top-bar__iconbtn:hover{
  transform: translateY(-1px);
  border-color: rgba(0, 240, 255, 0.9);
  box-shadow: inset 0 0 12px rgba(0, 240, 255, 0.28), 0 0 18px rgba(0, 240, 255, 0.25);
}

.top-bar__support{
  position: relative;
  display:inline-flex;
  align-items:center;
  gap:6px;
  border: 1px solid rgba(255, 207, 90, 0.75);
  background: linear-gradient(135deg, rgba(255,214,102,.96), rgba(255,178,46,.92));
  color:#2b1700;
  border-radius:999px;
  padding:7px 11px;
  font-size:0.72rem;
  font-weight:800;
  text-decoration:none;
  letter-spacing:.02em;
  box-shadow: 0 0 0 1px rgba(255,245,210,.35) inset, 0 4px 14px rgba(255,170,40,.35);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.top-bar__support::after{
  content:'';
  position:absolute;
  inset:1px;
  border-radius:999px;
  background: linear-gradient(180deg, rgba(255,255,255,.35), rgba(255,255,255,0));
  pointer-events:none;
}
.top-bar__support:hover,
.top-bar__support:focus-visible{
  transform: translateY(-1px) scale(1.02);
  filter: brightness(1.02);
  box-shadow: 0 0 0 1px rgba(255,248,220,.45) inset, 0 6px 18px rgba(255,170,40,.45);
}
.top-bar__support .euro{ font-size:.92rem; line-height:1; }
.top-bar__support .label{
  display:flex;
  flex-direction:column;
  line-height:1.02;
  white-space:nowrap;
}
.top-bar__support .label .line2{ font-size:.64rem; font-weight:700; opacity:.88; }

.table-legend-toggle{
  margin-top: 8px;
  border: 1px solid rgba(0,240,255,.2);
  border-radius: 12px;
  background: rgba(0,12,22,.38);
  overflow: hidden;
}
.table-legend-toggle > summary{
  list-style:none;
  cursor:pointer;
  padding: 7px 10px;
  font-size: .78rem;
  font-weight: 700;
  color: #aef8ff;
}
.table-legend-toggle > summary::-webkit-details-marker{ display:none; }
.table-legend-toggle .legend-content{
  padding: 0 10px 10px;
  font-size: .74rem;
  line-height: 1.35;
  color: #d9f7ff;
}
.table-legend-toggle ul{ margin: 6px 0 0 16px; padding:0; }
.table-legend-toggle li{ margin: 4px 0; }

@media (max-width: 600px){
  .top-bar__support .euro{ display:none; }
  .top-bar__support .label{ display:flex; }
  .top-bar__support{ padding:7px 11px; min-width:auto; justify-content:center; }
}


/* ==== FIX: éléments invisibles mais cliquables (mobile / pas de hover) ==== */
@media (hover: none){
  .hover-only, .hover-reveal, .reveal-on-hover{
    opacity: 1 !important;
    visibility: visible !important;
  }
}
.video-container, .video-container iframe{
  opacity: 1 !important;
  visibility: visible !important;
}
/* Sécurité: si un parent applique opacity, on force sur ces zones clés */
#multimedia, #multimedia * , .home-section, .home-section *{
  opacity: 1;
  visibility: visible;
}
/* Home dashboard */

/* ===== Home: aperçu favoris (compact) ===== */
.home-fav-preview{
  display: grid;
  gap: 10px;
  margin-top: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.home-fav-row{
  display:flex;
    flex-direction:column;
  align-items:stretch;
  gap:8px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(0, 240, 255, 0.22);
  cursor: pointer;
  transition: transform .08s ease, box-shadow .12s ease, border-color .12s ease;
}
.home-fav-row:active{ transform: scale(0.99); }
.home-fav-left{ flex: 1 1 auto; min-width:0; }
.home-fav-head{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:8px;
  min-width:0;
}
.home-fav-trainline{
  min-width:0;
}
.home-fav-train{
  display:inline-flex;
  align-items:baseline;
  gap:4px;
  font-weight: 900;
  letter-spacing: .08em;
  color:#dffbff;
  min-width:0;
}
.home-fav-meta{
  margin-top: 3px;
  font-size: .88rem;
  color: rgba(223, 251, 255, 0.78);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.home-fav-pill{
  flex: 0 0 auto;
  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 900;
  font-size: .72rem;
  letter-spacing: .08em;
  border: 1px solid rgba(0,240,255,0.35);
  color:#eaffff;
  background: rgba(0,240,255,0.10);
}
.home-fav-pill.arrive{ border-color: rgba(0,255,140,0.55); background: rgba(0,255,140,0.10); }
.home-fav-pill.live{ border-color: rgba(34,197,94,.55); background: rgba(34,197,94,.14); color:#86efac; }
.home-fav-badge{ width:auto; justify-content:flex-end; }
.home-fav-row .fav-state-badge{ font-size:.74rem; padding:6px 10px; }
.home-fav-pill.avenir{ border-color: rgba(0,240,255,0.45); background: rgba(0,240,255,0.10); }
.home-fav-route{
  font-size:.88rem;
  line-height:1.2;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.home-fav-time{
  font-size:.9rem;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  line-height:1.2;
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
/* Favoris accueil — horaires prévus/live sur tablette et PC.
   Les mêmes règles existaient uniquement dans le media query mobile,
   ce qui concaténait les deux heures et supprimait le barré sur desktop. */
@media (min-width: 701px){
  #homeFavSlot .home-fav-time{
    align-items:baseline;
    flex-wrap:nowrap;
    white-space:nowrap;
  }
  #homeFavSlot .home-fav-time-part{
    display:inline-flex;
    align-items:baseline;
    gap:4px;
    min-width:0;
    line-height:1.05;
  }
  #homeFavSlot .home-fav-time-planned{
    color:#ffffff;
    white-space:nowrap;
  }
  #homeFavSlot .home-fav-time-planned.is-strike{
    color:rgba(223,251,255,.62);
    text-decoration:line-through;
    opacity:.75;
  }
  #homeFavSlot .home-fav-time-live{
    color:#ff9a3c;
    font-weight:900;
    white-space:nowrap;
  }
  #homeFavSlot .home-fav-time-sep{
    color:#ffffff;
    opacity:.8;
    white-space:nowrap;
  }
}
.home-fav-actions{
  display:flex;
  justify-content:flex-end;
  margin-top: 10px;
}


/* --- Mobile fit: éviter que les pastilles/statuts débordent --- */
.home-fav-row{ min-width:0; }
.home-fav-pill{ max-width: 42%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

@media (max-width: 520px){
  .home-fav-preview{ gap: 6px; }
  .home-fav-row{ padding: 6px 8px; gap: 8px; }
  .home-fav-train{ font-size: .82rem; letter-spacing: .05em; }
  .home-fav-meta{ font-size: .74rem; }
  .home-fav-pill{ padding: 4px 7px; font-size: .64rem; letter-spacing: .05em; max-width: 40%; }
}
.home-dashboard{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-bottom: 16px;
}

@media (max-width: 820px){
  .home-dashboard{ grid-template-columns: 1fr; }
}

@media (max-width: 700px){
  .home-dashboard{
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas:
      "welcome welcome"
      "traffic weather"
      "traffic punct"
      "comments comments"
      "ber ber";
    gap: 10px;
    margin-bottom: 10px;
    align-items: start;
  }
  .home-dashboard > *{ min-width: 0; }
  #homeWelcomeLine{ grid-area: welcome; margin-bottom: 0; }
  .home-card[aria-label="Info trafic"]{ grid-area: traffic; }
  .home-card[aria-label="Météo sur votre ligne"]{ grid-area: weather; }
  .home-punct-card{ grid-area: punct; }
  .home-card[forwarding="ber"]{ grid-area: ber; }
  .live-wall-card--home{ grid-area: comments; }

  .home-card[aria-label="Info trafic"]{
    padding-left: 9px;
    padding-right: 9px;
    align-self: stretch;
  }
  .home-card{
    padding: 10px 10px;
    border-radius: 16px;
  }
  .home-card h2{
    font-size: .96rem;
    margin-bottom: 6px;
  }

  .traffic-split{ gap: 6px; }
  .traffic-split-row{
    display:grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items:center;
    gap: 7px;
    padding: 7px 8px;
    min-width: 0;
    overflow: hidden;
    border: none;
    background: transparent;
    box-shadow: none;
  }
  .traffic-split-line{
    min-width: 0;
    font-size: .80rem;
    line-height: 1.1;
  }
  .traffic-pill{
    flex: 0 0 auto;
    max-width: 68px;
    font-size: .56rem;
    padding: 4px 7px;
    line-height: 1.05;
    white-space: normal;
    text-align: center;
  }

  .home-card[aria-label="Météo sur votre ligne"]{
    align-self: start;
    min-height: 92px;
    padding: 9px 9px 8px;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-stations{
    grid-template-columns: 1fr;
    gap: 2px;
    margin-top: 0;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-station{
    padding: 2px 4px;
    min-height: 32px;
    border: none;
    background: transparent;
    box-shadow: none;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-row{
    gap: 4px;
    align-items: center;
    text-align: center;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-now{
    justify-content: center;
    width: 100%;
    font-size: .95rem;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-title{
    margin-top: 0;
    font-size: .62rem;
    line-height: 1.1;
    white-space: normal;
  }

  .home-card[forwarding="ber"]{
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }
  .home-card[forwarding="ber"] .ber-metric{
    display:none !important;
  }
  .home-card[forwarding="ber"] .ber-line1{
    font-size: .96rem;
    line-height: 1.1;
  }
  .home-stats-panel{
    gap: 8px;
  }
  .home-stats-item{
    padding: 8px 10px;
  }

  .live-wall-card--home{
    margin-top: 0;
    gap: 6px;
  }
  .live-wall-feed--home{
    max-height: 148px;
  }
}

.home-card .subtle{
  color: rgba(224, 240, 255, 0.78);
  font-size: 0.95rem;
}

.wx-stations{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 10px;
}

@media (max-width: 520px){
  .wx-stations{ grid-template-columns: 1fr; }
}

.wx-station{
  border: 1px solid rgba(0, 240, 255, 0.22);
  background: rgba(0, 12, 22, 0.45);
  border-radius: 14px;
  padding: 10px 12px;
}

.wx-row{
  display:flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.wx-title{
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 0.7rem;
  color: #bff7ff;
  margin-top: 4px;
}

.wx-now{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  font-weight: 900;
}
.wx-now .wx-main{
  display:flex;
  align-items:center;
  gap: 8px;
}
.wx-now .wx-icon{
  font-size: 1.8rem;
  line-height: 1;
}
.wx-now .wx-temp{
  font-size: 1.55rem;
}
.wx-now .wx-details{
  font-size: 0.72rem;
  font-weight: 600;
  opacity: 0.85;
  text-align: right;
}

.wx-mini{
  margin-top: 6px;
  font-size: 0.72rem;
  color: rgba(224,240,255,0.78);
}

.wx-badge{
  display:inline-flex;
  align-items:center;
  gap: 8px;
  margin-top: 10px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0, 240, 255, 0.25);
  background: rgba(0, 10, 18, 0.45);
  font-weight: 800;
}

.ber-lines{
  margin-top: 10px;
  display:flex;
  flex-direction: column;
  gap: 8px;
}

.ber-line1{
  font-size: 1.05rem;
  font-weight: 900;
}

.ber-context{
  padding: 8px 10px;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(255, 255, 255, 0.05);
}

.ber-metric{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 14px;
  border: 1px solid rgba(0, 240, 255, 0.22);
  background: rgba(0, 12, 22, 0.35);
  font-weight: 900;
}

.ber-metric .value{
  font-size: 1.02rem;
  color: #e8fbff;
}

.home-stats-panel{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top: 8px;
}
.home-stats-item{
  padding:8px 10px;
  border-radius:12px;
  border:1px solid rgba(0, 240, 255, 0.18);
  background: rgba(0, 12, 22, 0.3);
}
.home-stats-item .title{
  font-size:0.8rem;
  color:#7ef7ff;
  margin-bottom:4px;
}
.home-stats-item .value{
  font-weight:800;
}
.home-stats-item .meta{
  font-size:0.8rem;
  color: rgba(224,240,255,0.75);
}

.home-fav-wrap{
  margin-top: 8px;
}

.bottom-nav{
  pointer-events:auto !important;
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 3200;
  background:
    linear-gradient(0deg, rgba(30, 72, 110, 0.18), rgba(30, 72, 110, 0) 62%),
    linear-gradient(135deg, rgba(7, 15, 30, 0.98), rgba(12, 24, 44, 0.96));
  border-top: 1px solid rgba(0, 240, 255, 0.35);
  box-shadow: 0 -6px 20px rgba(0, 240, 255, 0.18);
  padding: 6px calc(env(safe-area-inset-right, 0px) + 12px) calc(env(safe-area-inset-bottom) + 10px) calc(env(safe-area-inset-left, 0px) + 12px);
}

.bottom-nav__items{
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.bottom-nav__item{
  pointer-events:auto !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  text-decoration: none;
  color: #dffbff;
  font-size: 0.72rem;
  font-weight: 700;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 6px 4px;
}

.bottom-nav__icon{
  font-size: 2.0rem;
  line-height: 1;
  display:block;
  filter: drop-shadow(0 0 10px rgba(0, 240, 255, 0.65));
}
.bottom-nav__icon-img{
  width: 34px;
  height: 34px;
  display:block;
  object-fit:contain;
  filter: drop-shadow(0 0 8px rgba(0,240,255,.55));
}

.bottom-nav__item:hover,
.bottom-nav__item:focus-visible{
  color: #ffffff;
  outline: none;
}


.bottom-nav__item.active,
.bottom-nav__item[aria-current="page"],
.bottom-nav__item.is-active{
  color: #f6ffff !important;
  background: transparent !important;
  box-shadow: none !important;
}

.bottom-nav__item.active .bottom-nav__icon,
.bottom-nav__item[aria-current="page"] .bottom-nav__icon,
.bottom-nav__item.is-active .bottom-nav__icon,
.bottom-nav__item.active .bottom-nav__icon-img,
.bottom-nav__item[aria-current="page"] .bottom-nav__icon-img,
.bottom-nav__item.is-active .bottom-nav__icon-img{
  filter:
    drop-shadow(0 0 12px rgba(0, 255, 255, 1))
    drop-shadow(0 0 26px rgba(0, 214, 255, 0.9))
    drop-shadow(0 0 36px rgba(70, 240, 255, 0.55)) !important;
  transform: scale(1.12);
}

.bottom-nav__item.active .bottom-nav__label,
.bottom-nav__item[aria-current="page"] .bottom-nav__label,
.bottom-nav__item.is-active .bottom-nav__label{
  color: #f3feff;
  text-shadow:
    0 0 10px rgba(0, 250, 255, 0.72),
    0 0 22px rgba(0, 214, 255, 0.55);
}

@media (max-width: 600px){
  :root{
    --top-bar-height: 64px;
    --bottom-bar-height: 84px;
  }
  .top-bar__logo-icon{ height: 36px; }
  .top-bar__logo-text{ height: 24px; max-width: 42vw; }
  .top-bar__social-link svg{ width: 14px; height: 14px; }
  .top-bar__account{ padding: 7px 12px; }
  .top-bar__title{ font-size: 1.05rem; letter-spacing: 0.08em; }
  .bottom-nav__items{ gap: 4px; }
  .bottom-nav__item{ font-size: 0.65rem; padding: 4px 2px; }
  .bottom-nav__icon{ font-size: 2.05rem; line-height:1; display:block; }
}


.home-section{
  margin: 18px 0 20px;
  display: grid;
  gap: 12px;
}

.home-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}

.home-card{
  background: rgba(0, 12, 26, 0.72);
  border: 1px solid rgba(0, 240, 255, 0.25);
  border-radius: 18px;
  padding: 14px;
  box-shadow: inset 0 0 16px rgba(0, 240, 255, 0.12), 0 10px 22px rgba(0, 0, 0, 0.25);
}

.home-card h2{
  margin: 0 0 6px;
  color: #7ef7ff;
  font-size: 1.04rem;
}
.home-card[aria-label="Mes Bétaillères favorites"] h2{
  font-size: 1.0rem;
  margin-bottom: 6px;
  line-height: 1.05;
}

.home-card p{
  margin: 0 0 10px;
  color: #d2ebff;
  line-height: 1.5;
}

.home-card .home-action{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: 999px;
  background: rgba(0, 240, 255, 0.15);
  border: 1px solid rgba(0, 240, 255, 0.4);
  color: #e7fbff;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.home-card .home-action:hover{
  border-color: rgba(0, 240, 255, 0.85);
}


.traffic-split{ display:grid; gap:8px; }
.traffic-split-row{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 10px; border:1px solid rgba(0,240,255,.18); border-radius:12px; background:rgba(0,0,0,.18); }
.traffic-split-line{ font-weight:700; color:#dffbff; }
.traffic-pill{ display:inline-flex; align-items:center; border-radius:999px; padding:5px 10px; font-size:.78rem; font-weight:800; border:1px solid transparent; }
.traffic-pill--green{ background:rgba(36,194,90,.16); border-color:rgba(36,194,90,.45); color:#7df2a4; }
.traffic-pill--yellow{ background:rgba(255,209,102,.14); border-color:rgba(255,209,102,.42); color:#ffe08f; }
.traffic-pill--orange{ background:rgba(255,138,26,.14); border-color:rgba(255,138,26,.45); color:#ffba74; }
.traffic-pill--red{ background:rgba(255,49,49,.14); border-color:rgba(255,49,49,.45); color:#ff8d8d; }
.traffic-pill--loading{ background:rgba(0,240,255,.12); border-color:rgba(0,240,255,.35); color:#8ff9ff; }

.live-wall-card{
  border: 1px solid rgba(0,240,255,.25);
  background: linear-gradient(135deg, rgba(6,16,30,.92), rgba(6,20,36,.86));
}
.live-wall-card--home{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.live-wall-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:2px;
}
.live-wall-title{ margin:0; font-size:.92rem; letter-spacing:.04em; color:#7ef7ff; line-height:1.05; }
.live-wall-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:38px;
  padding:4px 9px;
  border-radius:999px;
  border:1px solid rgba(0,240,255,.32);
  background:rgba(0,14,26,.58);
  color:#dffbff;
  font-size:.72rem;
  font-weight:800;
}
.faq-btn{
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  margin:0;
  min-width:0 !important;
  width:auto !important;
  min-height:24px !important;
  height:24px;
  padding:3px 9px 3px 8px;
  border-radius:999px;
  border:1px solid rgba(126,247,255,.52);
  background:linear-gradient(180deg, rgba(8,35,54,.94), rgba(4,18,30,.96));
  color:#dffcff;
  font-family:'Orbitron', sans-serif;
  font-size:.64rem;
  font-weight:900;
  letter-spacing:.04em;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
  opacity:.94;
  box-shadow:inset 0 0 0 1px rgba(0,240,255,.10), 0 0 10px rgba(0,240,255,.16) !important;
  transition:transform .16s ease, box-shadow .18s ease, opacity .18s ease, border-color .18s ease, background .18s ease;
}
.faq-btn::before{
  content:'?';
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:15px;
  height:15px;
  border-radius:50%;
  border:1px solid rgba(126,247,255,.48);
  color:#8ef8ff;
  font-size:.62rem;
  font-weight:900;
  box-shadow:0 0 8px rgba(0,240,255,.20) inset;
}
.faq-btn:hover,
.faq-btn:focus-visible{
  opacity:1;
  transform:translateY(-1px);
  border-color:rgba(126,247,255,.9);
  background:linear-gradient(180deg, rgba(10,45,66,.98), rgba(5,22,36,.98));
  box-shadow:inset 0 0 0 1px rgba(0,240,255,.18), 0 0 15px rgba(0,240,255,.34) !important;
  outline:none;
}
.voice-header,
.live-wall-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.live-wall-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  flex:0 0 auto;
}
.faq-modal{
  position:fixed;
  inset:0;
  width:100vw;
  height:100dvh;
  max-width:none;
  max-height:none;
  margin:0;
  border:none;
  background:rgba(4,12,20,.78);
  padding:20px;
  box-sizing:border-box;
  overflow:hidden;
  z-index:3600;
}
.faq-modal[open]{
  display:flex;
  align-items:center;
  justify-content:center;
}
.faq-modal::backdrop{ background:rgba(2,8,14,.72); }
.faq-container{
  width:min(760px, calc(100vw - 40px));
  max-height:calc(100dvh - var(--top-bar-height, 72px) - var(--bottom-bar-height, 84px) - 28px);
  margin:0;
  padding:14px 14px 12px;
  color:white;
  overflow-y:auto;
  overflow-x:hidden;
  box-sizing:border-box;
  border-radius:18px;
  border:1px solid rgba(0,240,255,.44);
  background:radial-gradient(circle at top, rgba(12,34,54,.88), rgba(6,14,24,.96));
  box-shadow:0 18px 40px rgba(0,0,0,.45), 0 0 30px rgba(0,220,255,.18), inset 0 0 18px rgba(0,220,255,.20);
  backdrop-filter:blur(6px);
}
@media (max-width:600px){
  .faq-modal{
    padding:12px;
  }
  .faq-container{
    width:min(340px, calc(100vw - 24px));
    max-height:calc(100dvh - var(--top-bar-height, 64px) - var(--bottom-bar-height, 84px) - 24px);
    border-radius:16px;
    padding:12px 12px 10px;
  }
}
.faq-header{
  display:flex; justify-content:space-between; align-items:center;
  font-size:1.02rem; margin-bottom:12px;
}
.faq-content{ display:flex; flex-direction:column; gap:10px; padding-bottom:2px; }
.faq-item{ background:rgba(0,20,40,.42); border:1px solid rgba(0,234,255,.68); border-radius:12px; padding:10px 11px; }
.faq-item p{ margin:6px 0 0; color:#d4e6f4; line-height:1.3; }
.faq-item b{ color:#00eaff; }
#closeFaq{ flex:0 0 auto; }
.live-wall-feed{
  display:grid;
  gap:6px;
}
.live-wall-feed--home{
  max-height: 196px;
  overflow:auto;
  padding-right:2px;
}
.live-wall-item{
  border:1px solid rgba(0,240,255,.2);
  border-radius:12px;
  padding:6px 8px;
  background:rgba(0,8,18,.45);
  font-size:.84rem;
}
.live-wall-item--home{
  padding:6px 8px;
}
.live-wall-item-text{
  line-height:1.22;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.live-wall-meta{ font-size:.72rem; opacity:.78; margin-bottom:3px; display:flex; gap:8px; flex-wrap:wrap; }
.live-wall-form{ margin-top:2px; display:flex; gap:6px; }
.live-wall-form input{ flex:1; min-width:0; }
.live-wall-empty,
.live-wall-cta{ opacity:.7; font-size:.82rem; }


.lb-community-actions{
  display:grid;
  grid-template-columns:1fr 1fr auto;
  gap:8px;
  margin-top:2px;
}
.lb-community-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:30px;
  padding:7px 10px;
  border-radius:999px;
  border:1px solid rgba(0,240,255,.24);
  background:linear-gradient(180deg, rgba(8,37,60,.95), rgba(5,24,39,.95));
  color:#dffcff;
  font-family:'Orbitron', sans-serif;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.03em;
  cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04), 0 0 10px rgba(18,214,255,.08);
}
.lb-community-btn:hover{
  border-color:rgba(0,240,255,.48);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 0 14px rgba(18,214,255,.12);
}
.lb-community-btn--signal{
  color:#ffd66c;
  border-color:rgba(255,196,44,.26);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04), 0 0 8px rgba(255,194,40,.08);
}
.lb-community-btn--live{
  color:#92f4ff;
}
.lb-live-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  background:radial-gradient(circle at 35% 35%, #b9ffcf 0%, #2dff73 38%, #0ea846 100%);
  box-shadow:
    0 0 0 1px rgba(97,255,151,.25),
    0 0 7px rgba(45,255,115,.95),
    0 0 14px rgba(45,255,115,.72);
  animation:lbLiveDotPulse 1.6s ease-in-out infinite;
  flex:0 0 10px;
}
@keyframes lbLiveDotPulse{
  0%,100%{
    transform:scale(1);
    box-shadow:
      0 0 0 1px rgba(97,255,151,.25),
      0 0 7px rgba(45,255,115,.95),
      0 0 14px rgba(45,255,115,.72);
  }
  50%{
    transform:scale(1.08);
    box-shadow:
      0 0 0 1px rgba(129,255,174,.35),
      0 0 10px rgba(58,255,123,1),
      0 0 18px rgba(58,255,123,.85);
  }
}
.lb-community-status{
  font-size:.72rem;
  color:rgba(223,251,255,.72);
  margin-top:-1px;
}
.home-comments-compact{
  padding:8px 10px 6px !important;
  min-height:0 !important;
}
.home-comments-compact .live-wall-head{
  margin-bottom:2px !important;
}
.home-comments-compact .live-wall-feed--home{
  max-height:68px !important;
  margin-bottom:0 !important;
}
.home-comments-compact .live-wall-form{
  margin-top:2px !important;
  margin-bottom:0 !important;
}
.home-comments-compact .lb-community-actions{
  margin-top:1px !important;
  margin-bottom:0 !important;
}
.lb-community-modal{
  position:fixed;
  inset:0;
  z-index:3900;
  display:none;
  align-items:center;
  justify-content:center;
  padding:8px;
  background:rgba(3,11,18,.78);
  backdrop-filter:blur(4px);
}
.lb-community-modal.is-open{ display:flex; }
body.lb-community-modal-open{
  overflow:hidden;
  overscroll-behavior:none;
}
#lbSignalModal{
  z-index:5100;
}
#lbVoteConfirmModal{
  z-index:5200;
}
.lb-community-modal.is-open .lb-community-panel{
  animation:lbCommunityModalEnter .18s ease-out both;
}
@keyframes lbCommunityModalEnter{
  from{ opacity:0; transform:translateY(8px) scale(.985); }
  to{ opacity:1; transform:translateY(0) scale(1); }
}
.lb-community-panel{
  width:min(1120px, calc(100vw - 8px));
  max-height:min(88vh, 860px);
  overflow:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  position:relative;
  border-radius:22px;
  border:1px solid rgba(0,240,255,.28);
  background:linear-gradient(180deg, rgba(5,20,34,.98), rgba(4,15,28,.99));
  box-shadow:0 20px 60px rgba(0,0,0,.45), 0 0 26px rgba(18,214,255,.12);
  padding:14px 12px 16px;
}
@media (prefers-reduced-motion:reduce){
  .lb-community-modal.is-open .lb-community-panel{ animation:none; }
}
.lb-community-panel h3{
  margin:0;
  color:#a7f8ff;
  font-size:1.08rem;
}
#lbLiveModalTitle{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.lb-community-panel-sub{
  color:#b1cad9;
  font-size:.8rem;
  line-height:1.35;
  margin-top:4px;
}
.lb-community-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:12px;
  padding-right:34px;
}
.lb-community-close{
  position:absolute;
  top:8px;
  right:8px;
  z-index:2;
  left:auto !important;
}
.lb-community-close.tron-close-button{
  position:absolute !important;
  top:8px !important;
  right:8px !important;
  left:auto !important;
}
#lbVoteConfirmModal .lb-community-panel{
  width:min(720px, calc(100vw - 24px));
  max-height:none;
  padding:18px 18px 16px;
}
#lbVoteConfirmModal .lb-vote-confirm-text{
  padding:6px 2px 2px;
  color:#d9f7ff;
  line-height:1.45;
  font-size:.92rem;
}
#lbVoteConfirmModal .lb-vote-confirm-actions{
  display:flex;
  gap:12px;
  justify-content:center;
  align-items:center;
  margin-top:14px;
  flex-wrap:wrap;
}
#lbVoteConfirmModal .lb-vote-confirm-actions .lb-signal-submit,
#lbVoteConfirmModal .lb-vote-confirm-actions .lb-community-btn{
  min-width:170px;
  max-width:220px;
}
@media (max-width:680px){
  #lbVoteConfirmModal .lb-community-panel{
    width:min(360px, calc(100vw - 20px));
    border-radius:16px;
    padding:12px 12px 10px;
  }
  #lbVoteConfirmModal .lb-vote-confirm-text{
    font-size:.84rem;
    line-height:1.38;
  }
  #lbVoteConfirmModal .lb-vote-confirm-actions{
    gap:8px;
    margin-top:10px;
  }
  #lbVoteConfirmModal .lb-vote-confirm-actions .lb-signal-submit,
  #lbVoteConfirmModal .lb-vote-confirm-actions .lb-community-btn{
    min-width:126px;
    max-width:150px;
    min-height:34px;
    padding:8px 12px;
    font-size:.82rem;
  }
}
.lb-community-grid{
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(260px,.85fr);
  gap:14px;
}
.lb-live-list,
.lb-live-side,
.lb-signal-form{
  border:1px solid rgba(0,240,255,.16);
  border-radius:16px;
  background:rgba(255,255,255,.04);
  padding:12px;
}
#lbLiveModal .lb-community-grid{
  grid-template-columns:minmax(0,1.35fr) minmax(230px,.65fr);
  gap:10px;
}
#lbLiveModal .lb-live-list,
#lbSignalModal .lb-signal-form{
  border:none;
  background:transparent;
  padding:0;
}
.lb-live-toolbar{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
}
.lb-live-toolbar-main{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.lb-live-direction{
  min-width: 170px;
  border-radius: 999px;
  border:1px solid rgba(0,240,255,.28);
  background: rgba(0, 18, 31, .82);
  color:#dffbff;
  font-weight:700;
  font-size:.72rem;
  padding:4px 10px;
  outline:none;
  box-shadow: inset 0 0 10px rgba(0,240,255,.12);
}
.lb-live-direction:focus{
  border-color: rgba(0,240,255,.58);
  box-shadow: 0 0 0 2px rgba(0,240,255,.22), inset 0 0 10px rgba(0,240,255,.12);
}
.lb-live-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid rgba(0,240,255,.24);
  background:rgba(0,14,26,.58);
  color:#dffbff;
  font-size:.72rem;
  font-weight:800;
}
.lb-live-cards{ display:grid; gap:8px; }
.lb-live-card{
  border:1px solid rgba(0,240,255,.14);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(11,33,52,.8), rgba(8,25,41,.95));
  box-shadow:0 8px 22px rgba(0,0,0,.18);
  padding:8px;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.lb-live-card--delay{
  border-color: rgba(255,138,26,.55);
  box-shadow:0 8px 22px rgba(0,0,0,.18), 0 0 16px rgba(255,138,26,.2);
}
.lb-live-card--cancel{
  border-color: rgba(255,77,109,.6);
  box-shadow:0 8px 22px rgba(0,0,0,.2), 0 0 16px rgba(255,77,109,.24);
}
.lb-live-card:hover,
.lb-live-card:focus-within{
  border-color: rgba(0,240,255,.42);
  box-shadow:0 10px 24px rgba(0,0,0,.25), 0 0 18px rgba(0,240,255,.15);
}
.lb-live-card:active{
  transform: scale(.988);
  box-shadow:0 6px 16px rgba(0,0,0,.22), 0 0 12px rgba(0,240,255,.12);
}
.lb-live-card-top{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:flex-start;
  position:relative;
}
.lb-live-right{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
}
.lb-live-status-row{
  display:flex;
  align-items:center;
  gap:5px;
}
.lb-live-train{
  color:#9ef5ff;
  font-weight:900;
  font-size:.92rem;
}
.lb-live-train-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.lb-live-compo-top{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:72px;
  position:absolute;
  left:50%;
  top:1px;
  transform:translateX(-50%);
  pointer-events:auto;
  cursor:help;
}
.lb-live-compo-top[data-compo-help]{
  position:absolute;
}
.lb-live-compo-top[data-compo-help]::after{
  content: attr(data-compo-help);
  position:absolute;
  left:50%;
  bottom:calc(100% + 8px);
  transform:translateX(-50%);
  width:max-content;
  max-width:220px;
  padding:5px 8px;
  border-radius:8px;
  border:1px solid rgba(0,240,255,.38);
  background:rgba(4,22,35,.95);
  color:#dff9ff;
  font-size:.58rem;
  font-weight:700;
  text-align:center;
  line-height:1.2;
  box-shadow:0 6px 14px rgba(0,0,0,.28), 0 0 12px rgba(0,240,255,.18);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .16s ease;
  z-index:4;
}
.lb-live-compo-top:hover::after,
.lb-live-compo-top:focus-visible::after,
.lb-live-compo-top.is-open::after{
  opacity:1;
  visibility:visible;
}
.lb-live-route{ font-size:.78rem; color:#e0f0ff; margin-top:2px; }
.lb-live-status{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:24px;
  padding:0 9px;
  border-radius:999px;
  font-size:.72rem;
  font-weight:900;
  border:1px solid transparent;
  text-align:center;
}
.lb-live-status--delay{ color:#ff8a1a; background:rgba(255,138,26,.12); border-color:rgba(255,138,26,.42); }
.lb-live-status--ok{ color:#22c55e; background:rgba(34,197,94,.12); border-color:rgba(34,197,94,.42); }
.lb-live-status--cancel{ color:#ff4d6d; background:rgba(255,77,109,.12); border-color:rgba(255,77,109,.42); }
.lb-live-passenger{
  font-size:.64rem;
  font-weight:800;
  color:#dff8ff;
  opacity:.92;
  animation:none !important;
  transition:none !important;
}
.lb-live-user-alert{
  margin-top:1px;
  min-height:20px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  line-height:1.05;
  font-size:.58rem;
  font-weight:800;
  color:#ff8a1a;
  padding:2px 7px;
  border-radius:999px;
  border:1px solid rgba(255,138,26,.45);
  background:rgba(110,58,12,.26);
  white-space:nowrap;
}
.lb-live-user-alert--cancel{
  color:#ff4d6d;
  border-color: rgba(255,77,109,.5);
  background: rgba(110,20,42,.3);
}
.lb-live-meta{ display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.lb-live-chip{
  font-size:.68rem;
  font-weight:800;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.05);
  color:#eafcff;
}
.lb-live-chip.is-own{
  border-color:rgba(255,160,160,.45);
  cursor:pointer;
}
.lb-live-sncf-cause{
  margin-top:6px;
  border-radius:10px;
  border:1px solid rgba(255,168,76,.45);
  background:rgba(112,62,18,.38);
  color:#ffbd72;
  font-size:.66rem;
  font-weight:800;
  padding:5px 8px;
  line-height:1.2;
}
.lb-live-sncf-cause.lb-live-sncf-cause--cancel{
  border-color:rgba(255,77,109,.52);
  background:rgba(110,20,42,.34);
  color:#ff9fb3;
}
.lb-live-card-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-top:6px;
}
.lb-live-card-actions button{
  flex:0 0 auto;
  min-height:23px;
  min-width:104px;
  border-radius:999px;
  border:1px solid rgba(0,240,255,.22);
  background:rgba(13,54,82,.9);
  color:#fff;
  font-family:'Orbitron', sans-serif;
  font-size:.66rem;
  font-weight:800;
  cursor:pointer;
  padding:0 12px;
}
.lb-live-schedule{
  margin-top:3px;
  padding:0;
  border:none;
  background:transparent;
  font-size:.74rem;
  line-height:1.25;
  color:#bfe6f5;
}
.lb-compo-inline{
  display:inline-flex;
  align-items:center;
  gap:2px;
  vertical-align:middle;
}
.lb-compo-icon{
  height: 18px;
  width: auto;
  display:block;
  filter:none;
  animation:none !important;
  transition:none !important;
}
.lb-live-presence{
  margin-top:4px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
}
.lb-live-presence-count{
  font-size:.76rem;
  min-width:44px;
  opacity:.92;
  font-weight:800;
}
.lb-live-presence-btn{
  border:1px solid rgba(77,245,174,.45);
  background:linear-gradient(180deg, rgba(8,88,72,.65), rgba(6,56,46,.92));
  color:#dcffef;
  border-radius:999px;
  padding:4px 8px;
  font-weight:700;
  font-size:.62rem;
  cursor:pointer;
  min-height:24px;
}
.lb-live-presence-btn:disabled{
  opacity:.65;
  cursor:not-allowed;
}

/* ===== LIVE compact fix: garder le style, revenir à une densité type RailZ ===== */
.lb-live-cards{ gap:6px; }
.lb-live-card{
  padding:6px 7px;
  border-radius:13px;
}
.lb-live-card-top{
  gap:8px;
  align-items:flex-start;
}
.lb-live-train{
  font-size:.88rem;
  line-height:1.02;
}
.lb-live-train-row{
  gap:6px;
  min-height:18px;
}
.lb-live-compo-top{
  top:0;
  min-width:58px;
}
.lb-live-route{
  margin-top:1px;
  font-size:.72rem;
  line-height:1.12;
}
.lb-live-right{
  gap:1px;
  flex:0 0 auto;
}
.lb-live-status-row{
  gap:4px;
  flex-wrap:nowrap;
}
.lb-live-status{
  min-height:20px;
  padding:0 7px;
  font-size:.64rem;
  line-height:1;
}
.lb-live-passenger{
  font-size:.58rem;
  line-height:1;
  padding:0;
}
.lb-live-user-alert{
  margin-top:0;
  font-size:.55rem;
  padding:1px 5px;
  line-height:1.05;
}
.lb-live-meta{
  gap:4px;
  margin-top:5px;
}
.lb-live-chip{
  font-size:.60rem;
  padding:2px 6px;
  line-height:1.05;
}
.lb-live-sncf-cause{
  margin-top:5px;
  padding:4px 7px;
  font-size:.60rem;
  line-height:1.12;
}
.lb-live-card-actions{
  gap:6px;
  margin-top:5px;
}
.lb-live-card-actions button{
  min-width:96px;
  min-height:21px;
  padding:0 10px;
  font-size:.62rem;
}
.lb-live-presence{
  margin-top:3px;
  gap:5px;
}
.lb-live-presence-count{
  min-width:0;
  font-size:.68rem;
  line-height:1;
}
.lb-live-presence-btn{
  min-height:21px;
  padding:3px 7px;
  font-size:.58rem;
}
.lb-live-schedule{
  margin-top:2px;
  font-size:.70rem;
  line-height:1.12;
}
.lb-compo-icon{
  height:15px;
}
.lb-compo-icon--us5{
  height:23px;
  width:auto;
  object-fit:contain;
  align-self:center;
}
@media (max-width: 600px){
  .lb-live-cards{ gap:5px; }
  .lb-live-card{
    padding:5px 6px;
    border-radius:12px;
  }
  .lb-live-train{ font-size:.84rem; }
  .lb-live-route{
    font-size:.69rem;
    line-height:1.08;
  }
  .lb-live-status{
    min-height:18px;
    padding:0 6px;
    font-size:.60rem;
  }
  .lb-live-passenger{
    font-size:.54rem;
  }
  .lb-live-user-alert{
    font-size:.52rem;
    padding:1px 4px;
  }
  .lb-live-meta{
    gap:3px;
    margin-top:4px;
  }
  .lb-live-chip{
    font-size:.56rem;
    padding:2px 5px;
  }
  .lb-live-sncf-cause{
    margin-top:4px;
    padding:4px 6px;
    font-size:.56rem;
  }
  .lb-live-card-actions{
    margin-top:4px;
    gap:5px;
  }
  .lb-live-card-actions button{
    min-width:88px;
    min-height:20px;
    padding:0 9px;
    font-size:.60rem;
  }
  .lb-live-presence-count{ font-size:.62rem; }
  .lb-live-presence-btn{
    min-height:20px;
    padding:3px 6px;
    font-size:.54rem;
  }
}

.lb-live-feed{ display:grid; gap:8px; max-height:55vh; overflow:auto; }
.lb-live-feed-item{
  padding:8px 10px;
  border-radius:12px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
}
.lb-live-feed-item .meta{
  font-size:.7rem;
  color:#dff4ff;
  font-weight:800;
  margin-bottom:3px;
}
.lb-live-feed-item .text{ font-size:.76rem; color:#a9c4d6; line-height:1.3; }
.lb-live-empty{ opacity:.76; font-size:.78rem; color:#c7dceb; text-align:center; padding:8px 0; }

#lbSignalModal .lb-community-panel{
  width:min(560px, calc(100vw - 14px));
  max-height:min(88vh, 760px);
  padding:14px 12px 16px;
}
#lbSignalModal .lb-community-head{
  margin-bottom:10px;
  padding-right:30px;
}
#lbSignalModal .lb-community-panel-sub{
  max-width:460px;
  font-size:.76rem;
  line-height:1.25;
}
#lbSignalModal .lb-signal-form{
  border:1px solid rgba(0,240,255,.18);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(4,18,30,.56), rgba(4,12,24,.34));
  padding:12px;
  box-shadow: inset 0 0 0 1px rgba(0,240,255,.06);
}
#lbSignalModal .lb-signal-form-grid{
  gap:10px;
}
#lbSignalModal .lb-signal-form select{
  min-height:42px;
  border-radius:13px;
  padding:10px 12px;
  background:linear-gradient(180deg, rgba(10,25,41,.92), rgba(7,18,31,.94));
  border:1px solid rgba(120,220,255,.18);
  box-shadow: inset 0 0 10px rgba(0,240,255,.08);
}
#lbSignalModal .lb-signal-types{
  grid-template-columns:1fr 1fr;
  gap:10px;
}
#lbSignalModal .lb-signal-type{
  min-height:56px;
  border-radius:16px;
  padding:10px 8px;
  background:linear-gradient(180deg, rgba(7,33,52,.92), rgba(5,22,36,.96));
  border:1px solid rgba(0,240,255,.18);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 0 10px rgba(18,214,255,.10);
  font-size:.76rem;
  line-height:1.1;
}
#lbSignalModal .lb-signal-type.is-selected{
  border-color:rgba(0,240,255,.46);
  background:linear-gradient(180deg, rgba(10,52,80,.92), rgba(7,29,47,.98));
  box-shadow: inset 0 0 0 1px rgba(0,240,255,.14), 0 0 16px rgba(0,240,255,.16);
}
#lbSignalModal .lb-signal-help{
  margin-top:2px;
  min-height:0;
  font-size:.72rem;
  line-height:1.25;
  color:#b9d4e6;
}
#lbSignalModal .lb-signal-help:empty{
  display:none;
}
#lbSignalModal .lb-signal-submit{
  width:min(220px, 100%);
  min-height:42px;
  margin:2px auto 0;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:0 18px;
  border-radius:999px;
  font-size:.84rem;
  line-height:1.08;
  box-shadow: 0 0 20px rgba(0,240,255,.22), inset 0 0 18px rgba(0,240,255,.22);
}
@media (max-width: 600px){
  #lbSignalModal .lb-community-panel{
    width:calc(100vw - 8px);
    padding:12px 9px 12px;
  }
  #lbSignalModal .lb-signal-form{
    padding:10px;
    border-radius:15px;
  }
  #lbSignalModal .lb-signal-form-grid{
    gap:9px;
  }
  #lbSignalModal .lb-signal-form select{
    min-height:40px;
    font-size:.82rem;
  }
  #lbSignalModal .lb-signal-type{
    min-height:52px;
    border-radius:15px;
    font-size:.74rem;
    padding:8px 6px;
  }
  #lbSignalModal .lb-signal-submit{
    min-height:40px;
    width:min(210px, 100%);
    font-size:.8rem;
  }
}

.lb-signal-form-grid{ display:grid; gap:10px; }
.lb-signal-delay-wrap{ display:none; }
.lb-signal-delay-wrap.is-visible{ display:block; }
.lb-signal-station-wrap.is-hidden{ display:none; }
.lb-signal-form select,
.lb-signal-form textarea{
  width:100%;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.05);
  color:#eaf8ff;
  padding:12px 12px;
  font-size:.86rem;
  font-family:inherit;
}
.lb-signal-form select{
  appearance:none;
  -webkit-appearance:none;
  -moz-appearance:none;
  background-image:
    linear-gradient(45deg, transparent 50%, #9ad8ee 50%),
    linear-gradient(135deg, #9ad8ee 50%, transparent 50%);
  background-position:
    calc(100% - 18px) calc(50% - 2px),
    calc(100% - 12px) calc(50% - 2px);
  background-size:6px 6px, 6px 6px;
  background-repeat:no-repeat;
  padding-right:34px;
}
.lb-signal-form select option,
.lb-signal-form select optgroup{
  background:#10273b;
  color:#eaf8ff;
}
.lb-signal-form select:focus{
  outline:none;
  border-color:rgba(0,240,255,.5);
  box-shadow:0 0 0 2px rgba(0,240,255,.16);
}
.lb-signal-types{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.lb-signal-type{
  min-height:58px;
  border-radius:14px;
  border:1px solid rgba(76,236,255,.18);
  background:rgba(255,255,255,.04);
  color:#e8fbff;
  font-weight:900;
  font-size:.8rem;
  padding:10px;
  text-align:center;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.lb-signal-type.is-selected{
  border-color:rgba(0,240,255,.52);
  box-shadow:0 0 14px rgba(0,240,255,.14) inset, 0 0 12px rgba(0,240,255,.08);
  background:rgba(0,240,255,.08);
}
.lb-signal-submit{
  width:100%;
  min-height:40px;
  border-radius:999px;
  border:1px solid rgba(76,236,255,.3);
  background:linear-gradient(180deg, rgba(16,122,170,.95), rgba(7,74,114,.95));
  color:#fff;
  font-family:'Orbitron', sans-serif;
  font-size:.84rem;
  font-weight:900;
  cursor:pointer;
}
.lb-signal-help{ font-size:.72rem; color:#b1cad9; line-height:1.35; }
.lb-info-quick-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:10px;
}
.lb-info-quick-btn{
  min-height:56px;
  border-radius:16px;
  border:1px solid rgba(0,240,255,.18);
  background:linear-gradient(180deg, rgba(7,33,52,.92), rgba(5,22,36,.96));
  color:#e8fbff;
  font-family:'Orbitron', sans-serif;
  font-size:.76rem;
  font-weight:900;
  cursor:pointer;
  text-align:center;
  padding:10px 8px;
  line-height:1.1;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 0 10px rgba(18,214,255,.10);
}
.lb-info-quick-btn.is-selected{
  border-color:rgba(0,240,255,.46);
  background:linear-gradient(180deg, rgba(10,52,80,.92), rgba(7,29,47,.98));
  box-shadow: inset 0 0 0 1px rgba(0,240,255,.14), 0 0 16px rgba(0,240,255,.16);
}
.lb-train-detail-route{ font-size:.82rem; color:#cbe8f7; margin-top:2px; }
.lb-train-detail-cause{
  margin-top:6px;
  font-size:.67rem;
  color:#ffbd72;
  border:1px solid rgba(255,168,76,.4);
  background:rgba(112,62,18,.28);
  border-radius:8px;
  padding:4px 7px;
}
.lb-train-detail-stops{
  margin-top:10px;
  border:1px solid rgba(0,240,255,.18);
  border-radius:12px;
  background:rgba(0,16,30,.4);
  padding:8px;
  max-height:46vh;
  overflow:auto;
  display:grid;
  gap:6px;
}
.lb-train-stop-item{
  border:1px solid rgba(255,255,255,.08);
  border-radius:10px;
  padding:7px 8px;
  background:rgba(255,255,255,.03);
}
.lb-train-stop-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:8px;
}
.lb-train-stop-name{ font-weight:800; font-size:.78rem; color:#dcf9ff; }
.lb-train-stop-time{
  font-size:.76rem;
  font-weight:800;
  color:#e8f8ff;
  white-space:nowrap;
}
.lb-train-stop-time .planned{
  text-decoration:line-through;
  opacity:.82;
  margin-right:4px;
}
.lb-train-stop-time .actual{ color:#ffffff; }
.lb-train-stop-time.is-delay .planned{
  color:#ffffff;
}
.lb-train-stop-time.is-delay .actual{
  color:#ff8a1a;
  font-weight:900;
}
.lb-train-stop-time.is-cancel .actual{
  text-decoration:line-through;
  color:#ff4d6d;
  opacity:.9;
}
.lb-train-stop-signals{ margin-top:5px; display:flex; flex-wrap:wrap; gap:5px; }
.lb-inline-signal-editor{
  margin-top:6px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
}
.lb-inline-signal-editor[hidden]{ display:none !important; }
.lb-inline-signal-editor select{
  min-height:30px;
  border-radius:10px;
  background:rgba(6,22,36,.9);
  color:#dff9ff;
  border:1px solid rgba(0,240,255,.35);
  padding:4px 8px;
}
.lb-inline-signal-editor button{
  min-height:30px;
  border-radius:10px;
  border:1px solid rgba(0,240,255,.35);
  background:rgba(5,35,56,.88);
  color:#dff9ff;
  padding:4px 10px;
  font-weight:800;
  cursor:pointer;
}
.lb-inline-signal-editor button[data-lb-inline-delete]{ border-color:rgba(255,113,145,.45); color:#ffd5df; }
.lb-stop-chip{
  border-radius:999px;
  border:1px solid rgba(255,255,255,.15);
  background:rgba(255,255,255,.07);
  font-size:.66rem;
  padding:3px 7px;
  font-weight:800;
}
.lb-stop-chip--retard{
  color:#ff8a1a;
  border-color:rgba(255,138,26,.62);
  background:rgba(120,62,8,.24);
}
.lb-stop-chip--suppression{
  color:#ff4d6d;
  border-color:rgba(255,77,109,.62);
  background:rgba(115,28,45,.25);
}
.lb-stop-chip--a-lheure{
  color:#22c55e;
  border-color:rgba(34,197,94,.45);
  background:rgba(20,84,43,.22);
}
.lb-stop-chip.is-own{
  border-color:rgba(255,160,160,.48);
  cursor:pointer;
}
.lb-stop-chip-wrap{
  display:inline-flex;
  align-items:center;
  gap:4px;
}
.lb-signal-vote{
  display:inline-flex;
  align-items:center;
  gap:2px;
  font-size:.68rem;
}
.lb-signal-vote-btn{
  all:unset;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#cfe8f5;
  cursor:pointer;
  font-size:.84rem;
  line-height:1;
}
.lb-signal-vote-btn.is-up{ color:#22c55e; }
.lb-signal-vote-btn.is-down{ color:#ff4d6d; }
.lb-signal-vote-btn.is-active{
  text-shadow:0 0 8px currentColor;
}
.lb-signal-vote-btn:focus-visible{
  outline:1px solid rgba(110,231,255,.7);
  outline-offset:2px;
  border-radius:4px;
}
.lb-signal-vote-count{
  font-size:.68rem;
  color:#cfe8f5;
  opacity:.92;
  min-width:1.4ch;
  text-align:center;
}
.lb-red {
  color: #ff4d4d;
  font-weight: 600;
}

.lb-orange {
  color: #ff9f1a;
  font-weight: 600;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-card--home,
.home-card[aria-label="Mur de commentaires"],
.home-card.live-wall-card--home{ min-height:0; }
.home-card[aria-label="Mur de commentaires"] .live-wall-feed--home{ max-height:96px !important; }
.home-card[aria-label="Mur de commentaires"] .live-wall-item--home{ padding:5px 7px !important; }
.home-card[aria-label="Mur de commentaires"] .live-wall-item-text{ font-size:.74rem !important; line-height:1.12 !important; }
.home-card[aria-label="Mur de commentaires"] .live-wall-form{ gap:8px !important; margin-bottom:6px !important; }
.home-card[aria-label="Mur de commentaires"] .live-wall-form input{ height:34px !important; min-height:34px !important; }
.home-card[aria-label="Mur de commentaires"] .live-wall-form .auth-button,
.home-card[aria-label="Mur de commentaires"] .live-wall-form button{ height:34px !important; min-height:34px !important; }
@media (max-width: 700px){
  .lb-community-actions{ gap:6px; }
  .lb-community-btn{ min-height:26px; padding:6px 8px; font-size:.68rem; }
  .home-card[aria-label="Mur de commentaires"] .live-wall-feed--home{ max-height:88px !important; }
  .home-card[aria-label="Mur de commentaires"]{
    padding-bottom:8px !important;
  }
  .home-card[aria-label="Mur de commentaires"] .live-wall-feed--home{
    max-height:72px !important;
    margin-bottom:2px !important;
  }
  .home-card[aria-label="Mur de commentaires"] .live-wall-form{
    margin-bottom:2px !important;
  }
  .home-card[aria-label="Mur de commentaires"] .lb-community-actions{
    margin-top:1px !important;
    margin-bottom:0 !important;
  }
  .home-card[aria-label="Mur de commentaires"] .lb-community-status{
    margin-top:0 !important;
    line-height:1.15 !important;
  }
}
@media (max-width: 860px){
  .lb-community-grid{ grid-template-columns:1fr; }
  .lb-live-feed{ max-height:32vh; }
  #lbLiveModal .lb-community-grid{
    grid-template-columns:1fr;
    gap:8px;
  }
  #lbLiveModal .lb-live-side{
    display:none;
  }
  #lbLiveModal .lb-live-list{
    width:100%;
    min-width:0;
  }
  #lbLiveModal .lb-live-card{
    width:100%;
  }
  .lb-community-modal{ padding:4px; }
  .lb-community-panel{
    width: calc(100vw - 4px);
    max-height: 94vh;
    padding:12px 8px 12px;
    border-radius:16px;
  }
}

.fav-comments-row{ display:inline; }
.fav-comment-btn{
  display:inline-block;
  margin-left:6px;
  border:none;
  background:none;
  color:#ff3b30;
  padding:0;
  font-size:.9rem;
  font-weight:700;
  line-height:1;
  cursor:pointer;
  vertical-align:middle;
}

.train-comments{
  margin-top:10px;
  border:1px solid rgba(0,240,255,.2);
  border-radius:10px;
  background:rgba(0,10,20,.35);
  padding:10px;
}
.train-comments-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:6px; }
.train-comments-list{ max-height:170px; overflow:auto; display:grid; gap:6px; }
.train-comments-item{ border-bottom:1px dashed rgba(0,240,255,.14); padding-bottom:6px; }
.train-comments-item:last-child{ border-bottom:none; padding-bottom:0; }
.train-comments-form{ margin-top:8px; display:flex; gap:6px; }
.train-comments-form input{ flex:1; min-width:0; }

@media (max-width: 820px){
  .live-wall-card--home{ order: 2; }
}

@media (max-width: 600px){
  .live-wall-card--home{
    padding: 10px 12px !important;
    gap: 6px;
  }
  .live-wall-title{ font-size: .88rem; }
  .live-wall-badge{ font-size:.68rem; padding:3px 8px; min-width:34px; }
  .live-wall-feed--home{ max-height: 176px; gap:5px; }
  .live-wall-item--home{ padding:5px 7px; }
  .live-wall-item--home .live-wall-meta{ font-size:.68rem; margin-bottom:2px; gap:6px; }
  .live-wall-item--home .live-wall-item-text{ font-size:.76rem; }
}
.quick-links{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
}

.quick-card{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 14px 12px;
  background: rgba(0, 16, 30, 0.7);
  border-radius: 16px;
  border: 1px solid rgba(0, 240, 255, 0.2);
  color: #e7fbff;
  text-decoration: none;
  font-weight: 700;
}

.quick-card span{
  font-size: 1.4rem;
}

.media-section{
  margin: 32px 0;
  padding: 18px;
  background: rgba(0, 12, 26, 0.72);
  border-radius: 18px;
  border: 1px solid rgba(0, 240, 255, 0.25);
  box-shadow: inset 0 0 16px rgba(0, 240, 255, 0.12), 0 10px 22px rgba(0, 0, 0, 0.25);
}

.media-section h2{
  margin: 0 0 12px;
  color: #7ef7ff;
}

.media-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
}

.media-card{
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid rgba(0, 240, 255, 0.2);
  box-shadow: 0 0 12px rgba(0, 240, 255, 0.15);
  background: rgba(0, 0, 0, 0.35);
}

.media-card iframe{
  width: 100%;
  height: 180px;
  border: none;
  display: block;
}
    /* Fond futuriste dynamique style TRON */
body::before {
  content: "";
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background-image: url("pattern/Fond site paysage.png");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  z-index: -1;
  pointer-events: none;
}

body[data-snapshotting="true"] {
  background: #0b0f1a !important;
}

body[data-snapshotting="true"]::before {
  content: none !important;
  display: none !important;
}

/* Conteneur principal futuriste */
.header-container {
  position: relative;
  background-color: #0b0f1a; /* couleur de base sombre */
  border: 2px solid #00f0ff55;
  border-radius: 20px;
  padding: 20px;
  margin-bottom: 30px;
  box-shadow:
    inset 0 0 18px #00f0ff55,
    0 0 12px #00f0ff88;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  min-height: 180px;
  overflow: visible; /* pour que l'effet externe ne soit pas coupé */
}

.header-container::after {
  content: "";
  position: absolute;
  top: -3px;    /* dépasse de 3px au-dessus */
  left: -3px;   /* dépasse de 3px à gauche */
  right: -3px;  /* dépasse de 3px à droite */
  bottom: -3px; /* dépasse de 3px en bas */
  border-radius: 26px; /* bordure arrondie + marge */
  pointer-events: none;

  background:
    linear-gradient(
      90deg,
      transparent 40%,
      #00f0ffdd 50%,
      #00f0ffdd 55%,
      transparent 60%
    );
  background-repeat: no-repeat;
  background-size: 200% 100%;

  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: destination-out;
  mask-composite: exclude;

  padding: 3px; /* épaisseur de la bande lumineuse */

  animation: flux-lumineux 5s linear infinite;

  z-index: 2;
}
@keyframes flux-lumineux {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}
/* superposition du pattern en semi-transparence */
.header-container::before {
  content: "";
  position: absolute;
  inset: 0; /* top/right/bottom/left = 0 */
  z-index: 0;
  pointer-events: none;
  background-image: url("pattern/asfalt-light.png");
  background-repeat: repeat;
  background-size: 466px 349px;
  opacity: 0.3; /* ajuste la visibilité */
  filter: brightness(1.1) contrast(1.2);
}

    /* Pour que le contenu soit au-dessus du pattern */
.header-container > * {
  position: relative;
  z-index: 1;
}
/* Logo à gauche (plus grand, sans contour) */
.logo-container img {
  height: 160px;
  max-height: 20vh;
  width: auto;
  border-radius: 0;
  background: none;
  box-shadow: none;
}

/* ========== TITRE ========== */
.header-title {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 1.6rem;
  color: #00f0ff;
  font-weight: bold;
  line-height: 1.3;
  text-shadow: 0 0 10px #00f0ff, 0 0 25px #00cfff, 0 0 35px #00eaff;
  white-space: pre-line;
  margin: 0 20px;
}

/* ========== VIDÉO ========== */
.video-container {
  width: 320px;
  max-width: 100%;
  height: 180px;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 0 16px #00f0ff88;
  margin-left: 20px;   /* marge à gauche sur grand écran */
  margin-top: 0;
  margin-bottom: 0;
  padding: 8px;
  box-sizing: border-box;
}
.video-container iframe {
  width: 100%;
  height: 100%;
  border-radius: 8px;
  display: block;
  box-sizing: border-box;
}
   .toggle-container {
  margin-bottom: 20px;
}

.toggle-label-switch {
  font-family: 'Orbitron', sans-serif;
  font-size: 1.2rem;
  color: #00ffff;            /* cyan Tron vif pour le label global */
  font-weight: bold;
  text-shadow: 0 0 8px #00ffff;
  margin-bottom: 10px;
  display: block;
}

.switch-wrapper {
  display: flex;
  align-items: center;
  gap: 15px;
  font-family: 'Orbitron', sans-serif;
  font-size: 1.1rem;
  color: #00ffff;            /* cyan Tron vif pour les textes de sens */
  font-weight: 600;
  text-shadow: 0 0 6px #00ffff;
  user-select: none;
}

.switch-label {
  /* optionnel si tu veux un style légèrement différent */
  color: #00ffff;
}

.switch {
  position: relative;
  display: inline-block;
  width: 60px;
  height: 34px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0; left: 0;
  right: 0; bottom: 0;
  background-color: #0b1325;
  border: 2px solid #00f0ff55;
  box-shadow: 0 0 6px #00f0ff44 inset;
  border-radius: 34px;
  transition: 0.4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 26px;
  width: 26px;
  left: 4px;
  bottom: 4px;
  background-color: #00f0ff;
  border-radius: 50%;
  transition: 0.4s;
  box-shadow: 0 0 10px #00ffff;
}

input:checked + .slider {
  background-color: #8800cc;
  box-shadow: 0 0 10px #b200ff, inset 0 0 20px #b200ff;
}

input:checked + .slider:before {
  transform: translateX(26px);
}
    /* --- Overlay de chargement GTFS --- */
#gtfsLoadingOverlay {
  position: fixed;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  background: rgba(11, 15, 26, 0.92);
  color: #00f0ff;
  font-family: 'Orbitron', sans-serif;
  text-align: center;
  z-index: 5000;
  transition: opacity 0.25s ease;
  opacity: 1;
  backdrop-filter: blur(6px);
}

#gtfsLoadingOverlay.is-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

#gtfsLoadingOverlay .gtfs-loading-box {
  background: rgba(9, 14, 24, 0.85);
  border: 2px solid rgba(0, 240, 255, 0.6);
  border-radius: 18px;
  padding: 28px 32px;
  box-shadow: 0 0 28px rgba(0, 240, 255, 0.35);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  max-width: 320px;
}

#gtfsLoadingOverlay .gtfs-spinner {
  width: 58px;
  height: 58px;
  border-radius: 50%;
  border: 4px solid rgba(0, 240, 255, 0.2);
  border-top-color: #00f0ff;
  animation: gtfs-spin 1s linear infinite;
}

#gtfsLoadingOverlay .gtfs-loading-text {
  font-size: 1.1rem;
  text-shadow: 0 0 12px rgba(0, 240, 255, 0.45);
}

#gtfsLoadingOverlay small {
  color: rgba(200, 240, 255, 0.85);
  font-size: 0.85rem;
}

@keyframes gtfs-spin {
  to { transform: rotate(360deg); }
}
    #liens-utiles {
  position: static; /* ou supprimer cette ligne, static est défaut */
  width: 160px; /* ou flex-basis dans flexbox */
  max-height: 60vh;
  overflow-y: auto;
  background: linear-gradient(145deg, #1a1e2e, #121725);
  border: 2px solid rgba(0, 255, 255, 0.5);
  border-radius: 20px;
  padding: 20px;
  color: #c8e6ff;
  font-family: 'Orbitron', monospace;
  box-shadow:
    0 0 15px rgba(0, 255, 255, 0.6),
    inset 0 0 20px rgba(0, 255, 255, 0.2);
  z-index: 20;
  transition: all 0.3s ease;
}

/* Titre */
#liens-utiles h3 {
  margin-top: 0;
  margin-bottom: 15px;
  color: #00ffff;
  font-weight: 700;
  font-size: 1.5rem;
  text-shadow: 0 0 8px rgba(0, 255, 255, 0.8);
  border-bottom: 1px dashed rgba(0, 255, 255, 0.4);
  padding-bottom: 6px;
}

/* Liste et liens */
#liens-utiles ul {
  list-style: none;
  padding-left: 0;
  margin: 0;
}

#liens-utiles li {
  margin-bottom: 10px;
}

#liens-utiles a {
  color: #d0e6ff;
  text-decoration: underline;
  font-weight: 600;
  transition: color 0.3s ease;
}

#liens-utiles a:hover {
  color: #ffffff;
  text-shadow: 0 0 6px #d0e6ff;
}
.command-console {
  background: linear-gradient(145deg, #101828, #0a0e1a);
  border: 2px solid #00f0ff55;
  box-shadow: 0 0 12px #00f0ff88, 0 0 30px #00ffff44 inset;
  border-radius: 20px;
  padding: 22px;
  margin-bottom: 40px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  font-size: 1rem;
  position: relative;
}

.console-header {
  font-size: 1.2rem;
  color: #00ffff;
  margin-bottom: 12px;
  text-shadow: 0 0 10px #00f0ff;
  border-bottom: 1px dashed #00f0ff99;
  padding-bottom: 6px;
}
.console-section {
  position: relative;
  border: 1px solid rgba(0, 240, 255, 0.28);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(0, 28, 46, 0.85), rgba(0, 14, 28, 0.75));
  box-shadow: inset 0 0 0 1px rgba(0, 255, 255, 0.12);
  overflow: hidden;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}

/* UI simplifiée: on supprime les onglets (accordéons) et on navigue via la barre du bas */
.console-section > summary{ display:none !important; }
.console-section{ padding-top: 10px; }


.console-section + .console-section {
  margin-top: 12px;
}

.console-section[open] {
  border-color: rgba(0, 255, 255, 0.6);
  box-shadow: 0 0 18px rgba(0, 255, 255, 0.25), inset 0 0 14px rgba(0, 255, 255, 0.18);
}

.console-section > summary {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  margin: 0;
  color: #aef5ff;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  background: linear-gradient(135deg, rgba(0, 36, 58, 0.95), rgba(0, 18, 34, 0.9));
  position: relative;
  transition: color 0.25s ease;
}

.console-section > summary::-webkit-details-marker {
  display: none;
}

.console-section > summary .section-icon {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 30% 30%, rgba(0, 255, 255, 0.45), rgba(0, 120, 168, 0.25));
  box-shadow: 0 0 12px rgba(0, 255, 255, 0.28);
  font-size: 1rem;
  color: #0b0f1a;
}

.console-section > summary .section-title {
  flex: 1;
}

.console-section > summary::after {
  content: "";
  width: 12px;
  height: 12px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform 0.3s ease;
}

.console-section[open] > summary::after {
  transform: rotate(-135deg);
}

.console-section .section-content {
  padding: 18px 20px 22px;
  background: linear-gradient(145deg, rgba(0, 22, 36, 0.88), rgba(0, 12, 24, 0.82));
  border-top: 1px solid rgba(0, 255, 255, 0.14);
}

.command-console label,
.command-console select {
  font-family: 'Orbitron', sans-serif;
  font-size: 1rem; /* ajuste la taille selon ce que tu souhaites */
  color: #e0f0ff;
  font-weight: bold;
  text-shadow: 0 0 4px #00f0ff;
}

.command-console input,
.command-console select {
  background: #0b1325;
  color: #00f0ff;
  border: 1px solid #00f0ff55;
  border-radius: 10px;
  padding: 9px;
  box-shadow: 0 0 6px #00f0ff44 inset;
  font-family: 'Orbitron', sans-serif;
  font-size: 1rem;
}

.command-console select:focus,
.command-console input:focus {
  outline: none;
  box-shadow: 0 0 10px #00ffff;
}

.toggle-label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 10px;
}
  h1 {
    font-size: 2.8em;
    font-weight: 700;
    color: #00f0ff;
    text-align: center;
    text-shadow:
      0 0 8px #00f0ff,
      0 0 20px #00cfff,
      0 0 30px #00eaff,
      0 0 40px #00eaff,
      0 0 50px #00eaff,
      0 0 60px #00eaff;
    position: relative;
    max-width: 90vw;
    margin-bottom: 40px;
    animation: pulseGlow 3s ease-in-out infinite alternate;
  }

  h1::before {
    content: "";
    position: absolute;
    top: 0;
    left: -75%;
    width: 50%;
    height: 100%;
    background: linear-gradient(120deg, transparent, rgba(255,255,255,0.6), transparent);
    transform: skewX(-25deg);
    animation: shine 3s ease-in-out infinite;
    pointer-events: none;
    z-index: 1;
    border-radius: 10px;
  }

  @keyframes pulseGlow {
    from {
      text-shadow:
        0 0 10px #00f0ff,
        0 0 25px #00cfff,
        0 0 35px #00eaff,
        0 0 50px #00eaff,
        0 0 70px #00eaff;
    }
    to {
      text-shadow:
        0 0 20px #00f0ff,
        0 0 40px #00cfff,
        0 0 60px #00eaff,
        0 0 80px #00eaff,
        0 0 100px #00eaff;
    }
  }

  @keyframes shine {
    0% { left: -75%; opacity: 0; }
    50% { left: 110%; opacity: 1; }
    100% { left: 110%; opacity: 0; }
  }

  input, button {
    font-size: 1.2rem;
    font-family: 'Orbitron', sans-serif;
  }

  /* Style commun pour tous les boutons "tron" */
button,
.bouton-don,
.console-buttons-group1 button,
.console-buttons-group2 button {
  font-family: 'Orbitron', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  padding: 10px 18px;
  border-radius: 8px;
  cursor: pointer;
  box-shadow: 0 0 12px #00f0ff, inset 0 0 20px #00f0ff88;
  transition: all 0.3s ease;
  border: none;
  color: #000;
  background-color: #00f0ff; /* bleu tron par défaut */
  display: inline-block;
  text-align: center;
  user-select: none;
  min-width: 120px;
  max-width: 180px;
  width: auto;
  margin: 0.6em 5px;
}

/* Hover pour boutons bleus */
button:hover,
.console-buttons-group1 button:hover,
.console-buttons-group2 button:hover {
  background-color: #00c0cc;
  box-shadow: 0 0 24px #00f0ff, inset 0 0 30px #00f0ffcc;
  transform: scale(1.05);
}

/* Bouton jaune "don" */
.bouton-don {
  background: #ffe600;
  color: #000;
  box-shadow: 0 0 8px #ffe600, 0 0 16px #ffe600 inset;
  max-width: 220px;
  min-width: 150px;
  margin-top: 0.6em;
  text-decoration: none;
}

/* Hover bouton jaune */
.bouton-don:hover {
  background: #fff700;
  box-shadow: 0 0 18px #ffee00, 0 0 26px #ffee00 inset;
  transform: scale(1.08);
  text-decoration: none;
}

/* Conteneur boutons "Afficher" centré */
.console-buttons-group1 {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 20px;
}

/* Conteneur boutons Bingo & Jeu : empilés verticalement */
.console-buttons-group2 {
  display: flex !important;
  flex-direction: column !important;
  gap: 12px;
  justify-content: center;
  align-items: center;
}

/* Assurer même taille pour boutons Bingo & Jeu */
.console-buttons-group2 button {
  min-width: 120px;
  max-width: 180px;
  width: auto;
  padding: 10px 18px;
  font-family: 'Orbitron', sans-serif;
  font-size: 1rem;
  font-weight: 700;
  border-radius: 8px;
  cursor: pointer;
  background-color: #00f0ff;
  color: #000;
  box-shadow: 0 0 12px #00f0ff, inset 0 0 20px #00f0ff88;
  transition: all 0.3s ease;
  border: none;
  user-select: none;
}

.console-buttons-group2 button:hover {
  background-color: #00c0cc;
  box-shadow: 0 0 24px #00f0ff, inset 0 0 30px #00f0ffcc;
  transform: scale(1.05);
}
.refresh-btn {
  background: #00f0ff;
  color: #0b0f1a;
  border: none;
  padding: 8px 18px;       /* même padding que bouton-don */
  border-radius: 8px;
  font-weight: 700;
  font-family: 'Orbitron', sans-serif;
  font-size: 1rem;         /* même taille que bouton-don */
  cursor: pointer;
  box-shadow: 0 0 10px #00f0ff, 0 0 16px #00f0ff inset; /* un peu plus d’effet inset pour rappeler bouton-don */
  transition: all 0.25s ease;
  margin-top: 0.6em;       /* même marge */
  display: inline-block;   /* comme bouton-don */
}
.refresh-btn:hover {
  background: #8800cc;
  box-shadow: 0 0 24px #b200ff, 0 0 32px #b200ff inset;
  transform: scale(1.05);
}
  .input-container {
    background: #151b2d;
    padding: 16px;
    border-radius: 16px;
    box-shadow: 0 0 15px #00f0ff33;
    margin-bottom: 30px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    font-size: 0.9rem;
  }

  table {
  position: relative;
  width: 100%;
  border-collapse: collapse;
  border-radius: 16px;
  background: #0b0f1a;
  border: 2px solid rgba(0, 240, 255, 0.35); /* bordure fallback si les masques ne sont pas dispo */
  box-shadow:
    0 0 12px #00f0ff88,
    0 0 24px #00ffffaa;
  overflow: hidden; /* IMPORTANT pour que les coins soient nets */
}

@supports (mask-composite: exclude) or (-webkit-mask-composite: destination-out) {
  table {
    border: none;
  }

  table::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    border-radius: 16px;
    border: 2px solid transparent;
    background: linear-gradient(45deg, #00f0ff, #00ffff, #00f0ff) border-box;
    mask:
      linear-gradient(#fff 0 0) padding-box,
      linear-gradient(#fff 0 0);
    mask-composite: exclude;
    -webkit-mask-composite: destination-out;
    z-index: 1;
    pointer-events: none;
  }
}

table[data-snapshotting="true"] {
  background: #0b0f1a !important;
  background-image: none !important;
  border: 2px solid rgba(0, 240, 255, 0.35) !important;
  box-shadow: none !important;
  filter: none !important;
}

table[data-snapshotting="true"]::before,
table[data-snapshotting="true"]::after {
  content: none !important;
  display: none !important;
}

table[data-snapshotting="true"] thead th,
table[data-snapshotting="true"] tbody th,
table[data-snapshotting="true"] tbody td {
  background: transparent !important;
  background-image: none !important;
  filter: none !important;
}

table[data-snapshotting="true"],
table[data-snapshotting="true"] * {
  animation: none !important;
  transition: none !important;
}

table[data-snapshotting="true"] .deleted,
table[data-snapshotting="true"] .blink-red,
table[data-snapshotting="true"] .new-end {
  color: #ff4c4c !important;
  opacity: 1 !important;
}

table[data-snapshotting="true"] .blink-red-icon,
table[data-snapshotting="true"] .icon-blink,
table[data-snapshotting="true"] .delayed,
table[data-snapshotting="true"] .retard,
table[data-snapshotting="true"] .delay-strike,
table[data-snapshotting="true"] .added-stop,
table[data-snapshotting="true"] .us-train,
table[data-snapshotting="true"] .train-header,
table[data-snapshotting="true"] .train-header * {
  opacity: 1 !important;
  }

table[data-snapshotting="true"] tbody tr:nth-child(odd) {
  background-color: #0d1422 !important;
}

table[data-snapshotting="true"] tbody tr:nth-child(even) {
  background-color: #121926 !important;
}

/* Snapshot: éviter tout chevauchement (heures + voies + retards) */
table[data-snapshotting="true"] td,
table[data-snapshotting="true"] th{
  overflow: visible !important;
  white-space: nowrap !important;
  vertical-align: middle !important;
}
table[data-snapshotting="true"] .voie-info{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:2px !important;
  white-space:normal !important;
}
table[data-snapshotting="true"] .delay-stack{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:2px !important;
  line-height:1.05 !important;
}
table[data-snapshotting="true"] .delay-strike,
table[data-snapshotting="true"] .delayed,
table[data-snapshotting="true"] .new-start,
table[data-snapshotting="true"] .delay-voie{
  display:block !important;
}
table[data-snapshotting="true"] .voie-badge{
  margin-left:0 !important;
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
  display:inline-flex !important;
}

/* Colonne Gare: largeur renforcée en snapshot pour éviter débordements (gare + météo) */
table[data-snapshotting="true"] th.gare-head,
table[data-snapshotting="true"] td:first-child,
table[data-snapshotting="true"] th:first-child{
  min-width: 260px !important;
  white-space: nowrap !important;
}

  th, td {
    padding: 3px 4px;
    text-align: center;
    border-bottom: 1px solid #1e2a3a;
    font-size: 12px; /* <-- ajoute cette ligne ici */
  }

#trainInfo table tbody tr td:first-child {
  text-align: left;  /* Première colonne à gauche */
  padding-left: 10px;
}

  thead th {
    background-color: #1c2b3a;
    color: #00f0ff;
    text-shadow: 0 0 6px #00f0ff;
  }

  tbody tr:nth-child(even) {
    background-color: #121926;
  }

  tbody tr:hover {
    background-color: #1a2333;
    box-shadow: inset 0 0 10px #00f0ff33;
  }

  .deleted {
  color: #ff4c4c;
  text-decoration: line-through;
  font-weight: 700;
  animation: blinkRedStrike 1.2s infinite;
}

  .delay-stack {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  line-height: 1;
}
  .delay-strike {
  text-decoration: line-through;
  display: block;
  margin: 0;
  line-height: 1;
}
  .delayed {
    color: #ff8a00;
    font-weight: 700;
    display: block;
    margin: 0;
    line-height: 1;
  }
  .supprimé {
      color: #ff4c4c;
    }
  .retard {
      color: #ff6600;
      font-weight: 600;
      font-size: 0.9em;
    }
  .gtfs-fallback-cell {
    background: rgba(0, 240, 255, 0.08);
    box-shadow: inset 0 0 14px rgba(0, 240, 255, 0.08);
  }
  .fallback-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 8px;
    padding: 2px 8px;
    border-radius: 999px;
    font-size: 0.6rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    background: rgba(0, 240, 255, 0.15);
    border: 1px solid rgba(0, 240, 255, 0.5);
    color: #00f0ff;
    white-space: nowrap;
  }
  .sncf-fallback-banner {
    margin-bottom: 12px;
    padding: 12px 16px;
    border-radius: 14px;
    border: 1px solid rgba(255, 196, 87, 0.6);
    background: linear-gradient(135deg, rgba(255, 196, 87, 0.12), rgba(255, 120, 0, 0.12));
    color: #ffdca8;
    font-size: 0.95rem;
    line-height: 1.5;
  }
  .sncf-fallback-banner strong {
    color: #ffcd73;
    display: inline-block;
    margin-bottom: 6px;
  }
  .sncf-fallback-banner ul {
    margin: 8px 0 0 18px;
    padding: 0;
  }
  .sncf-fallback-banner li {
    margin-bottom: 4px;
  }
    @keyframes blinkRedStrike {
  0%, 100% {
    color: #ff4c4c;      /* rouge vif */
    text-decoration: line-through;
    opacity: 1;
  }
  50% {
    color: transparent;  /* disparaît (couleur transparente) */
    text-decoration: line-through;
    opacity: 0;
  }
}
    .blink-red {
  animation: blinkRedStrike 1.2s infinite;
  color: #ff4c4c;
  text-decoration: line-through;
  font-weight: 700;
}
  /* Icône "train supprimé" sous l’en-tête: clignote rouge, SANS barré */
.blink-red-icon{
  color:#ff4c4c;
  font-weight:700;
  animation: blink 1.2s infinite;
  text-decoration:none !important;
}
  .new-start {
    color: #0055cc;
    font-weight: 700;
  }
  .new-end {
  font-weight: bold;
  color: #ff4c4c;
  text-decoration: line-through;
  animation: blinkRedStrike 1.2s infinite;
}
    /* Arrêt exceptionnel (ajouté dynamiquement par l') */
.added-stop{
  color:#00ffa6;
  font-weight:700;
  white-space:nowrap;
}
.added-stop .plus{
  font-weight:900;
  margin-right:4px;
}
.voie-info{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.voie-badge{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 7px;
  border-radius: 999px;
  border: 1px solid #00f0ff66;
  background: linear-gradient(135deg, rgba(0, 240, 255, 0.15), rgba(0, 120, 255, 0.12));
  color: #00f0ff;
  font-family: Arial, sans-serif;
  font-size: 0.74em;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-shadow: 0 0 6px rgba(0, 240, 255, 0.55);
  box-shadow: 0 0 6px rgba(0, 240, 255, 0.25) inset, 0 0 10px rgba(0, 240, 255, 0.15);
  line-height: 1.2;
}
 .us-train {
  color: #bf00ff;
  text-shadow: 0 0 5px #bf00ff, 0 0 10px #8000ff;
}
.train-header.us5-train,
.us5-train{
  color:#ffd24a;
  text-shadow:0 0 5px #ffd24a, 0 0 12px rgba(255,210,74,.65);
}
.train-header.um-train,
.um-train{
  color:#00f0ff;
  text-shadow:0 0 5px rgba(0,240,255,.75), 0 0 10px rgba(0,200,255,.45);
}
  .train-header.um3-train,
.um3-train{
  color:#00ffa6;
  text-shadow:0 0 5px #00ffa6, 0 0 10px rgba(0,255,166,.5);
  border-color:transparent !important;
  box-shadow:none !important;
}
 .train-header.reduced-seats,
 .reduced-seats {
  color: #bf00ff;
  text-shadow: 0 0 5px #bf00ff, 0 0 10px #8000ff;
 }
 .reduced-seat-icon{
  color: #bf00ff;
  text-shadow: 0 0 4px rgba(191,0,255,.75);
  display: block;
  margin-top: 2px;
 }
  /* Compo inconnue : texte blanc, aucun fond */
.train-header.no-compo-text{
  color: #fff !important;     /* texte blanc uniquement */
}

.train-header.no-compo-text a.train-link{
  color: inherit !important;  /* le lien reste blanc comme le texte */
}
#trainInfo .fav-star{
  margin-left: 6px;
  color: #ffd24a;
  font-size: 0.9em;
  text-shadow: 0 0 6px rgba(255, 210, 74, 0.8);
}
#trainInfo .train-link-cfl {
  color: inherit;
  font-weight: inherit;
}
  .icon[title]:hover::after {
  content: attr(title);
  position: absolute;
  bottom: 125%;
  left: 50%;
  transform: translateX(-50%);
  background: rgba(0,255,255,0.2);
  color: #00f0ff;
  padding: 6px 10px;
  border-radius: 5px;
  white-space: nowrap;
  font-size: 0.9em;
  z-index: 1000;
  pointer-events: none;
  box-shadow: 0 0 10px #00f0ff66;
}
.icon[title]:hover::before {
  content: "";
  position: absolute;
  bottom: 115%;
  left: 50%;
  transform: translateX(-50%);
  border-width: 6px;
  border-style: solid;
  border-color: #00f0ff transparent transparent transparent;
}
 /* Style des gares cliquables */
#trainInfo a.gare-link {
  color: #00ffff; /* cyan néon */
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s ease-in-out;
  border-bottom: 1px dashed transparent;
}

#trainInfo a.gare-link:hover {
  color: #ff00cc; /* rose néon au survol */
  border-bottom: 1px dashed #ff00cc;
  text-shadow: 0 0 4px #ff00cc;
}
/* Lien train : couleur et style hérités du parent, donc pas de bleu, pas de soulignement */
#trainInfo a.train-link {
  color: inherit;            /* Hérite de la couleur du texte normal */
  text-decoration: none;     /* Pas de soulignement */
  font-weight: inherit;      /* Même graisse que le texte normal */
  cursor: pointer;           /* Indique que c'est cliquable */
}

.train-detail-panel{
  margin: 12px 0 16px;
  border: 1px solid rgba(0, 240, 255, 0.32);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(7, 15, 30, 0.96), rgba(11, 23, 42, 0.94));
  box-shadow: 0 10px 30px rgba(0, 240, 255, 0.10);
  padding: 14px;
}
body.page-carte .train-detail-panel{
  position: fixed;
  top: calc(var(--top-bar-height, 72px) + 10px);
  right: 12px;
  width: min(540px, calc(100vw - 24px));
  max-height: calc(100dvh - var(--top-bar-height, 72px) - var(--bottom-bar-height, 84px) - 24px);
  overflow: auto;
  margin: 0;
  z-index: 1205;
  box-shadow: 0 16px 36px rgba(0, 240, 255, 0.16), 0 8px 24px rgba(0,0,0,.35);
}
.train-detail-panel[hidden]{ display:none !important; }
.train-detail-top{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:10px;
  margin-bottom:10px;
}
.train-detail-top h3{
  margin:0;
  color:#7ef7ff;
  letter-spacing:.04em;
}
.train-detail-close{
  border:1px solid rgba(0,240,255,.45);
  border-radius:999px;
  background:rgba(0,16,28,.5);
  color:#dffbff;
  cursor:pointer;
  padding:6px 10px;
}
.train-detail-grid{
  display:grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap:10px;
}
.train-detail-card{
  border:1px solid rgba(0, 240, 255, 0.2);
  border-radius:10px;
  padding:10px;
  background:rgba(0, 10, 20, 0.42);
}
.train-detail-card .k{ opacity:.78; font-size:.78rem; text-transform:uppercase; letter-spacing:.07em; }
.train-detail-card .v{ margin-top:4px; font-weight:700; color:#dffbff; }
.train-detail-route{
  margin-top:10px;
  border:1px solid rgba(0, 240, 255, 0.2);
  border-radius:10px;
  background:rgba(0,10,20,.35);
  max-height:260px;
  overflow:auto;
}
.train-detail-stop{ display:flex; justify-content:space-between; gap:10px; padding:8px 10px; border-bottom:1px solid rgba(0,240,255,.08); }
.train-detail-stop:last-child{ border-bottom:none; }
.train-detail-stop .left{ display:flex; align-items:center; gap:10px; min-width:0; }
.train-detail-stop .time{ min-width:50px; color:#8ff9ff; font-weight:700; font-variant-numeric:tabular-nums; }
.train-detail-stop .name{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.train-detail-stop .right{ display:flex; align-items:center; gap:8px; }
#trainDetailPanel .aff-chart{ padding:8px 10px; }
#trainDetailPanel #trainDetailAffluenceChart{ height:92px !important; max-height:92px; }
@media (max-width: 900px){
  #trainDetailPanel #trainDetailAffluenceChart{ height:130px !important; max-height:130px; }
}

/* Fiche train : affluence harmonisée avec les Bétaillères favorites */
.train-detail-aff-card{ overflow:hidden; }
.train-detail-aff-details{ margin-top:8px; display:flex; flex-direction:column; gap:8px; }
.train-detail-aff-summary{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:8px 10px; border-radius:12px;
  border:1px solid rgba(0,240,255,.20); background:rgba(0,10,20,.35);
}
.train-detail-aff-summary .fav-aff-title{ font-size:.78rem; white-space:nowrap; }
.train-detail-aff-summary .fav-aff-schema{ flex:1 1 auto; min-width:0; }
.train-detail-aff-details .fav-aff-stops{ gap:7px; }
.train-detail-aff-details .fav-aff-stop{
  padding:7px 8px; border-radius:11px;
  background:rgba(0,8,18,.40); border-color:rgba(0,240,255,.16);
}
.train-detail-aff-details .fav-aff-stop-name{ max-width:48vw; }
.train-detail-aff-details .fav-aff-stop-schema{ margin-top:5px; justify-content:flex-end; }
.train-detail-aff-details .affls-rame{ max-width:100%; }
.train-detail-aff-empty{
  padding:9px 10px; border-radius:12px;
  border:1px solid rgba(255,180,80,.25); background:rgba(255,180,80,.08);
  color:#ffd9b0; font-weight:800; font-size:.82rem;
}
@media (max-width:600px){
  .train-detail-aff-summary{ padding:7px 8px; }
  .train-detail-aff-details .fav-aff-stop{ padding:6px 7px; }
  .train-detail-aff-details .fav-aff-stop-name{ max-width:58vw; }
  .train-detail-aff-details .fav-aff-stop-schema .affls-rame{ transform-origin:right center; }
}

.train-detail-actions{ margin-top:10px; display:flex; gap:8px; flex-wrap:wrap; }
.train-detail-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid rgba(0,240,255,.4);
  border-radius:999px;
  color:#dffbff;
  text-decoration:none;
  padding:6px 12px;
  background:rgba(0,16,28,.5);
}

.train-detail-minirow{ display:flex; justify-content:space-between; gap:10px; padding:6px 0; border-bottom:1px dashed rgba(0,240,255,.12); }
.train-detail-minirow:last-child{ border-bottom:none; }
.train-detail-minirow .right{ text-align:right; }
.train-detail-reliability-badges{ display:flex; gap:8px; flex-wrap:wrap; margin-top:6px; }
.train-detail-reliability-badges span{ font-size:.82rem; }

/* Pastille météo (lien) – intégrée, sans bleu ni souligné */
#trainInfo .wx a.wx-link{
  color: inherit;                 /* hérite la couleur du texte du tableau */
  text-decoration: none;          /* pas de soulignement */
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  padding: .15rem .45rem;         /* légère pastille */
  border-radius: 9999px;          /* pill */
  background: rgba(0,0,0,.04);    /* léger fond neutre */
  border: 1px solid rgba(0,0,0,.06);
  line-height: 1.1;
}

/* Icône et valeur bien calées */
#trainInfo .wx .wx-ico{ line-height: 1; }
#trainInfo .wx .wx-t{ font-variant-numeric: tabular-nums; opacity: .9; }

/* Hover/focus discrets, pas d’underline */
#trainInfo .wx a.wx-link:hover{
  background: rgba(0,0,0,.06);
  border-color: rgba(0,0,0,.1);
}
#trainInfo .wx a.wx-link:focus{
  outline: none;
  box-shadow: 0 0 0 2px rgba(0,128,255,.15); /* focus doux accessible */
  background: rgba(0,0,0,.06);
}

/* Évite la couleur visiteur violette */
#trainInfo .wx a.wx-link:visited{
  color: inherit;
}

/* Option sombre (si tu as un thème dark, sinon tu peux supprimer) */
@media (prefers-color-scheme: dark){
  #trainInfo .wx a.wx-link{
    background: rgba(255,255,255,.06);
    border-color: rgba(255,255,255,.08);
  }
  #trainInfo .wx a.wx-link:hover{
    background: rgba(255,255,255,.08);
    border-color: rgba(255,255,255,.14);
  }
}

#alertesInline{
  margin-top: 14px;
}

.alerte-box {
  background-color: #001122; /* fond bleu nuit très foncé */
  border: 1.5px solid #00ffcc;
  border-radius: 6px;
  padding: 14px 16px;
  color: #00ffcc;
  font-family: 'Courier New', Courier, monospace;
  box-sizing: border-box;
  box-shadow: inset 0 0 6px #00ffcc44; /* léger éclat intérieur */
  transition: transform 0.15s ease;
  cursor: pointer;
}

.alerte-box:hover {
  transform: scale(1.03);
  box-shadow: 0 0 12px #00ffcc, inset 0 0 10px #00ffcc;
}

.alerte-box.red {
  border-color: #ff0044;
  color: #ff0044;
  box-shadow: inset 0 0 6px #ff004444;
}

.alerte-box.red:hover {
  box-shadow: 0 0 12px #ff0044, inset 0 0 10px #ff0044;
}

.alerte-box.orange {
  border-color: #ff9900;
  color: #ff9900;
  box-shadow: inset 0 0 6px #ff990044;
}

.alerte-box.orange:hover {
  box-shadow: 0 0 12px #ff9900, inset 0 0 10px #ff9900;
}

.alerte-icon {
  font-size: 1.5em;
  margin-right: 10px;
  animation: blink 1.2s infinite;
  color: inherit;
  vertical-align: middle;
}

.alerte-content {
  margin-top: 10px;
  font-weight: normal;
  color: #d1ecf1;
  display: none;
  font-size: 1rem;
  line-height: 1.3;
}

.alerte-box.expanded .alerte-content {
  display: block;
}

@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}
    .reduced-service {
  background-color: #ffc107 !important;  /* jaune/orange */
  color: #000 !important;
  font-weight: bold;
  border: 2px solid #ff9800;
}

  /* Par défaut (desktop/tablette) : pas d'indices, pas de min-width forcée */
.scroll-hint { display: none; }

/* Sur mobile uniquement */
@media (max-width: 768px) {
  .table-scroll {
    overflow-x: auto;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch; /* scroll fluide iOS */
    height: calc(100dvh - var(--top-bar-height, 72px) - var(--bottom-bar-height, 78px) - var(--tableau-viewbar-h, 0px) - 10px);
    margin-top: 0;
  }
  #trainInfo table{
    height: auto; /* évite l'étirement des lignes quand il y a peu d'arrêts */
    width: 100%;
    table-layout: fixed;
    font-size: var(--lb-row-font-size, 0.78rem);
    line-height: 1.0;
  }

  /* Hauteur des lignes: adaptative (évite les lignes géantes quand il y a peu d'arrêts) */
  #trainInfo{
    --lb-row-h: 34px;          /* sera recalculé en JS */
    --lb-cell-pad-y: 6px;     /* sera recalculé en JS */
    --lb-row-font-size: 0.78rem;
  }
  #trainInfo table tbody tr{ height: var(--lb-row-h); }
  #trainInfo table tbody td,
  #trainInfo table thead th{
    padding-top: var(--lb-cell-pad-y) !important;
    padding-bottom: var(--lb-cell-pad-y) !important;
  }
  #trainInfo table th:first-child,
  #trainInfo table td:first-child{
    /* Colonne gares : compacte pour faire tenir TOUTES les gares à l'écran */
    width: var(--lb-first-col-px, 170px);
    min-width: var(--lb-first-col-px, 170px);
    max-width: var(--lb-first-col-px, 170px);

    font-size: 0.64rem;
    padding: 2px 4px;

    /* Mode compact: une seule ligne, pas de retour pour éviter d'agrandir les lignes */
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: normal;
    line-height: 1.0;

    position: sticky;
    left: 0;
    z-index: 6;
    background: rgba(11,15,26,0.995);
    border-right: 1px solid rgba(0,240,255,0.14);
    box-shadow: 10px 0 18px rgba(0,0,0,0.35);
  }

  /* Gare + météo sur UNE ligne (sans masquer la météo) */
  #trainInfo table td:first-child .gare-label{
    display: inline-block;
    max-width: calc(100% - 40px);
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: middle;
    letter-spacing: -0.01em;
  }
  #trainInfo table td:first-child .wx{
    display: inline-flex !important;
    align-items: center;
    vertical-align: middle;
    margin-left: 2px;
    max-width: 36px;
    font-size: 0.52rem;
  }
  #trainInfo table td:first-child .wx a.wx-link{
    display: inline-flex;
    align-items: center;
    gap: 0.12rem;
    padding: 0 2px;
    border: none;
    background: transparent;
    line-height: 1;
  }
  #trainInfo table td:first-child .wx .wx-ico{ font-size: 0.62rem; }
  #trainInfo table td:first-child .wx .wx-t{ font-size: 0.52rem; }


  /* Colonnes trains : compactées pour en afficher ~4 sur smartphone */
  #trainInfo table th:not(:first-child),
  #trainInfo table td:not(:first-child){
    width: var(--lb-train-col-px, 64px);
    min-width: var(--lb-train-col-px, 64px);
    max-width: var(--lb-train-col-px, 64px);
  }

  /* En-tête figé (scroll vertical) */
  #trainInfo table thead th{
    position: sticky;
    top: 0;
    z-index: 3;
  }
  #trainInfo table thead th:first-child{ z-index: 5; }
  .scroll-hint {
    display: block;
    font-size: .8rem;
    color: #bbb;     /* gris doux */
    margin: 4px 4px 8px;
    text-align: right;
    font-style: italic;
    user-select: none;
  }
}

/* Desktop / grand écran : colonnes plus compactes (plus de trains visibles) */
@media (min-width: 769px){
  .table-scroll{
    overflow-x: auto;
    overflow-y: auto;
  }
  #trainInfo table{
    table-layout: fixed;
    width: 100%;
    font-size: 0.95rem;
    line-height: 1.2;
  }
  #trainInfo table th:first-child,
  #trainInfo table td:first-child{
    width: var(--lb-first-col-px, 240px);
    min-width: var(--lb-first-col-px, 240px);
    max-width: var(--lb-first-col-px, 240px);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 8px 10px;
    z-index: 4;
    background: rgba(11,15,26,0.98);
    border-right: 1px solid rgba(0,240,255,0.14);
  }
  #trainInfo table th:not(:first-child),
  #trainInfo table td:not(:first-child){
    width: var(--lb-train-col-px, 74px);
    min-width: var(--lb-train-col-px, 74px);
    max-width: var(--lb-train-col-px, 74px);
  }
  #trainInfo table thead th{
    position: sticky;
    top: 0;
    z-index: 3;
  }
  #trainInfo table thead th:first-child{ z-index: 5; }
}


  .legend-container {
    font-size: 0.9em;
    line-height: 1.6;
    border-top: 1px solid #333;
    margin-top: 3em;
    padding-top: 1em;
  }

  .legend-container h3 {
    color: #00f0ff;
  }

  .legend-container li {
    margin-bottom: 6px;
  }

    /* Conteneur scrollable pour le tableau */
.table-scroll {
  overflow-x: auto;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-x pan-y;
  margin-top: 8px;
  border: 1px solid #00f0ff33;
  border-radius: 8px;
}

/* Fix superposition PC/mobile : en-têtes opaques + z-index corrects */
#trainInfo table thead th{
  position: sticky;
  top: 0;
  z-index: 8;
  background: rgba(11,15,26,0.995);
  backdrop-filter: blur(6px);
}
#trainInfo table thead th:first-child{
  left: 0;
  z-index: 10;
}

#trainInfo table th:first-child,
#trainInfo table td:first-child{
  position: sticky;
  left: 0;
  z-index: 6;
  background: rgba(11,15,26,0.995);
  border-right: 1px solid rgba(0,240,255,0.14);
  box-shadow: 10px 0 18px rgba(0,0,0,0.35);
}

#trainInfo table thead th:first-child{ z-index: 10; }

#trainInfo table thead th:first-child{ z-index: 12; }
#trainInfo table thead th:not(:first-child){ z-index: 7; }
#trainInfo table thead th.status-head{ padding-top: 4px !important; padding-bottom: 4px !important; }
#trainInfo table thead th .train-num{ display:block; line-height:1.05; }
#trainInfo table thead th .train-state{ display:inline-block; margin-top:2px; line-height:1; font-size:.86em; }
#trainInfo table thead th .train-alert-icon{
  display:inline-block;
  margin-left:4px;
  font-size:.82em;
  line-height:1;
  color:#ffd15a;
  text-shadow:0 0 6px rgba(255,209,90,.7);
}


.table-toolbar{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  margin:6px 0 2px;
}

.table-toolbar .snapshot-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 12px;
  border-radius:999px;
  background:linear-gradient(135deg, rgba(0,255,255,.85), rgba(0,170,255,.85));
  border:1px solid rgba(0,255,255,.65);
  color:#00111a;
  font-family:'Orbitron', sans-serif;
  font-size:.85rem;
  font-weight:700;
  letter-spacing:.02em;
  cursor:pointer;
  box-shadow:0 0 12px rgba(0,255,255,.35), inset 0 0 18px rgba(0,255,255,.25);
  transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}

.table-toolbar .snapshot-btn:hover:not([disabled]){
  transform:translateY(-1px) scale(1.02);
  box-shadow:0 0 18px rgba(0,255,255,.55), inset 0 0 20px rgba(0,255,255,.35);
}

.table-toolbar .snapshot-btn:active:not([disabled]){
  transform:translateY(0) scale(.99);
}

.table-toolbar .snapshot-btn[disabled]{
  cursor:wait;
  opacity:.65;
  box-shadow:none;
}

.table-toolbar .snapshot-btn[data-loading]{
  background:linear-gradient(135deg, rgba(0,255,255,.45), rgba(0,170,255,.45));
}

/* Hint "glisser" en mobile uniquement */
@media (max-width: 600px) {
  .scroll-hint {
    font-size: 0.75em;
    color: #bbb;
    margin: 4px 4px 0 4px;
    text-align: right;
    font-style: italic;
  }
}

#disruptionsSummary {
  margin: 20px 0;
  max-width: 960px;
  background: linear-gradient(145deg, #101828, #0a0e1a);
  border: 2px solid #00f0ff55;
  box-shadow: 0 0 10px #00f0ff66, 0 0 24px #00ffff33 inset;
  border-radius: 18px;
  padding: 18px 20px;
  margin-bottom: 32px;
  font-family: 'Orbitron', sans-serif;
  color: #e0f0ff;
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-size: 1rem;
  position: relative;
}
    #disruptionsSummary .disruption-header {
  font-size: 1.25rem;
  color: #00ffff;
  margin-bottom: 10px;
  text-shadow: 0 0 8px #00f0ff;
  border-bottom: 1px dashed #00f0ff99;
  padding-bottom: 4px;
}
.disruption-box {
  background-color: #001122;
  border: 1px solid #00ffcc;
  border-radius: 10px;
  padding: 10px 12px;
  color: #00ffcc;
  font-family: 'Orbitron', sans-serif;
  font-size: 0.85rem;
  line-height: 1.25;
  box-sizing: border-box;
  box-shadow:
    inset 0 0 6px #00ffcc33,
    0 0 4px #00ffcc22;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.disruption-box:hover {
  transform: scale(1.02);
  box-shadow: 0 0 10px #00ffcc, inset 0 0 8px #00ffcc44;
}

/* Alerte critique futuriste rouge façon vaisseau */
.disruption-box.red {
  background-color: #1d0207;
  border: 1.5px solid #ff3355;
  color: #ff3355; /* rouge vif, sans flou */
  font-weight: 600;
  box-shadow:
    0 0 14px #ff335588,
    0 0 28px #ff335544,
    inset 0 0 6px #ff335533;
  animation: alert-glow 1.1s infinite alternate;
}

.disruption-box.red:hover {
  transform: scale(1.02);
  box-shadow:
    0 0 20px #ff3355,
    0 0 32px #ff335588,
    inset 0 0 10px #ff335566;
}

/* Animation type alarme, sans impact sur le texte */
@keyframes alert-glow {
  0% {
    background-color: #1d0207;
    box-shadow:
      0 0 12px #ff335566,
      0 0 26px #ff335544,
      inset 0 0 6px #ff335533;
  }
  100% {
    background-color: #30040d;
    box-shadow:
      0 0 18px #ff335588,
      0 0 34px #ff335566,
      inset 0 0 9px #ff335544;
  }
}

/* Variante orange pour alerte moyenne */
.disruption-box.orange {
  border-color: #ff922b;
  color: #ff922b;
  background: rgba(255,146,43,.08);
  box-shadow: inset 0 0 4px rgba(255,146,43,.35);
}

.disruption-box.orange:hover {
  box-shadow: 0 0 14px rgba(255,146,43,.72), inset 0 0 8px rgba(255,146,43,.38);
}
.disruption-box.info {
  border-color: #00f0ff;
  color: #7ff6ff;
  box-shadow: inset 0 0 4px #00f0ff33;
}
.disruption-description{ margin-top:8px; line-height:1.35; opacity:.92; }

/* Icône clignotante style console */
.disruption-icon {
  font-size: 1.05em;
  margin-bottom: 3px;
  animation: blink 1.2s infinite;
  color: inherit;
}

/* Animation clignotante curseur console */
@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

/* Contenu des disruptions, marges discrètes */
.disruption-content div {
  margin-bottom: 2px;
}

/* Listes stylisées pour console */
.disruption-content ul {
  margin: 2px 0 0 12px;
  font-size: 0.8rem;
  padding-left: 0;
  list-style-type: disc;
  color: inherit;
}
.disruption-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 14px;
  margin-top: 16px;
}
.disruption-title-row{ display:flex; align-items:center; gap:8px; font-weight:800; font-size:1rem; }
.disruption-title-text{ letter-spacing:.01em; }
.disruption-cause{ margin-top:6px; opacity:.9; font-style:italic; }
.disruption-trains{ margin-top:10px; display:flex; flex-wrap:wrap; gap:6px; }
.disruption-train-pill{ padding:3px 8px; border-radius:999px; border:1px solid currentColor; font-weight:700; font-size:.75rem; }
.disruption-train-pill .mb-train-name,
#alertDetailModal .mb-train-name{
  font-weight:900;
}
.disruption-train-pill .mb-train-desc,
#alertDetailModal .mb-train-desc{
  font-weight:500;
  opacity:.88;
}
.disruption-empty{ margin-top:10px; opacity:.75; font-size:.78rem; }
    @media (max-width: 768px) {
  #disruptionsSummary {
    overflow: hidden; /* Empêche les débordements visuels sur mobile */
  }

  .disruption-grid {
    display: flex;
    flex-direction: column;
    gap: 16px; /* espace entre les alertes */
  }

  .disruption-box {
    width: 100%;
    box-sizing: border-box;
  }

  .disruption-box:hover {
    transform: none; /* pas de zoom sur mobile */
    box-shadow: 0 0 8px #00ffcc, inset 0 0 6px #00ffcc;
  }

  .disruption-box.red:hover,
  .disruption-box.orange:hover {
    box-shadow: 0 0 8px currentColor, inset 0 0 6px currentColor;
  }
}


/* Modal détail perturbation (clic icône tableau) */
#alertDetailModal.lb-auth-modal{ z-index:3800; }
#alertDetailModal.is-open{ display:flex !important; }
#alertDetailModal .alert-detail-panel.lb-auth-card{
  width:min(680px, 94vw);
  max-height:min(86vh, 760px);
  overflow:auto;
  padding:16px;
}
#alertDetailModal .alert-detail-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:10px; padding-right:28px; }
#alertDetailModal .alert-detail-title{ color:#9ffcff; font-weight:800; font-size:1rem; }
#alertDetailModal .alert-detail-body{ display:flex; flex-direction:column; gap:10px; }
#alertDetailModal .alert-detail-card{ border:1px solid rgba(0,240,255,.24); border-radius:12px; background:rgba(0,14,24,.6); padding:10px; }
#alertDetailModal .alert-detail-card.red{ border-color:#ff3355; color:#ff8d9f; }
#alertDetailModal .alert-detail-card.orange{ border-color:#ffb74d; color:#ffd08f; }
#alertDetailModal .alert-detail-card.info{ border-color:#00f0ff; color:#7ff6ff; }
#alertDetailModal .alert-detail-row{ display:flex; align-items:center; gap:8px; font-weight:800; }
#alertDetailModal .alert-detail-desc{ margin-top:6px; line-height:1.35; opacity:.92; color:#d7ecff; }

.gtfs-retard {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  margin-top: 0;
  padding: 0;
  background: none;
  color: inherit;
  text-align: center;
  font-size: 0.86em;
  line-height: 1.05;
  gap: 1px;
}
.gtfs-retard .delay-voie{
  display:block;
  margin-top:2px;
}
.gtfs-retard .delay-voie .voie-badge{
  margin-left:0 !important;
}
  .gtfs-retard-base,
  .gtfs-retard-new {
    display: block;
  }

  .gtfs-retard-base {
    text-decoration: line-through;
  }

  .gtfs-retard-new {
    color: #ff8a00 !important;
    font-weight: 900;
    margin-top: 0;
    text-shadow:0 0 7px rgba(255,126,0,.90),0 0 14px rgba(255,126,0,.45) !important;
  }

@media (max-width: 600px) {
  .header-container {
    width: 100%;            /* Prend toute la largeur */
    max-width: 100%;        /* Pas de max-width limité */
    margin: 0 auto;         /* Centrage horizontal */
    padding: 0 10px;        /* Un peu de padding pour l’intérieur */
    box-sizing: border-box; /* Inclut le padding dans la largeur */
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    text-align: center;
    margin-bottom: 24px;
  }

  .logo-container {
    width: 100%;
    display: flex;
    justify-content: center;
  }

  .logo-container img {
    max-height: 150px;
    width: auto;
    height: auto;
  }

  .header-title {
    font-size: 1.2rem;
    line-height: 1.4;
    padding: 0 12px;
    white-space: pre-line;
    color: #00f0ff;
    font-weight: bold;
    text-shadow:
      0 0 10px #00f0ff,
      0 0 25px #00cfff,
      0 0 35px #00eaff;
  }

  .video-container {
  width: 100%;
  max-width: 320px;
  height: auto;
  aspect-ratio: 16 / 9;
  margin: 0 auto 12px; /* ⬅️ Centrage horizontal */
}

  .video-container iframe {
    width: 100%;
    height: 100%;
  }
}
/* Styles console */
@media (max-width: 600px) {
  .command-console {
    padding: 18px;
    font-size: 0.95rem;
    border-radius: 16px;
  }

  .console-header {
    font-size: 1.05rem;
    margin-bottom: 8px;
  }

  .console-section > summary {
    padding: 14px 16px;
    font-size: 0.9rem;
    gap: 10px;
  }

  .console-section .section-content {
    padding: 16px 16px 18px;
  }
  .command-console label,
  .command-console select,
  .command-console input {
    font-size: 0.95rem;
  }

  .command-console input,
  .command-console select {
    padding: 8px;
  }
}
/* Adaptation pour petits écrans (mobile) */
@media (max-width: 480px) {
  .console-buttons-group1,
  .console-buttons-group2 {
    justify-content: center;
    flex-wrap: wrap; /* Permet aux boutons de passer à la ligne si besoin */
  }

  .console-buttons-group1 button,
  .console-buttons-group2 button {
    flex: 1 1 100px;
    max-width: 45vw;
    font-size: 0.9rem;
    padding: 8px 10px;
    margin: 6px 5px; /* espace entre boutons */
  }

  /* Pour console-buttons-group2, boutons empilés */
  .console-buttons-group2 {
    flex-direction: column !important;
    gap: 10px;
    align-items: center;
  }

  /* Autres éléments sous 480px */
  .toggle-container {
    margin-bottom: 15px;
    padding: 0 10px;
    width: 100%;
    box-sizing: border-box;
  }

  .toggle-label-switch {
    font-size: 1rem;
    text-align: center;
  }

  .switch-wrapper {
    gap: 8px;
    flex-wrap: wrap;
    justify-content: center;
  }

  .switch-label {
    font-size: 0.9rem;
    min-width: 90px;
    white-space: nowrap;
    text-align: center;
    flex-shrink: 0;
  }

  .switch {
    width: 48px;
    height: 28px;
  }

  .slider:before {
    height: 22px;
    width: 22px;
    left: 3px;
    bottom: 3px;
    box-shadow: 0 0 8px #00ffff;
  }

  input:checked + .slider:before {
    transform: translateX(20px);
  }
  }
@media (max-width: 720px) {
  .console-buttons-group2 {
    display: flex !important;
    flex-direction: row !important;
    justify-content: center !important;
    gap: 15px;
    width: 100% !important;
    max-width: 320px;
    min-width: auto !important;
  }

  #liens-utiles,
  #video-center,
  .console-buttons-group2 {
    flex: none;
    width: 100%;
    max-width: 320px;
    min-width: auto;
    text-align: center;
  }

  #liens-utiles {
    max-width: 240px;
    padding: 15px;
  }

  #video-center {
    max-width: 300px;
    min-width: 100px;
    width: 100%;
  }

  #video-center iframe {
    width: 100%;
    max-width: 300px;
    height: 160px;
    border-radius: 8px;
  }
}

/* ---------------------- Panneau latéral retards ---------------------- */
#retards-panel {
  position: fixed;
  top: 0;
  right: -290px; /* masqué par défaut */
  width: 300px;
  height: 100%;
  background: #0b0f1a; /* fond sombre futuriste */
  color: #0ff;
  overflow-y: auto;
  transition: right 0.3s ease-in-out;
  box-shadow: -3px 0 12px rgba(0, 255, 255, 0.4);
  font-family: 'Orbitron', sans-serif;
  z-index: 1000;
  padding-left: 20px;
  box-sizing: border-box;
  border-left: 3px solid #0ff; /* bordure néon style Labetaillere */
}

#retards-panel h2 {
  font-size: 18px;
  margin-bottom: 10px;
  border-bottom: 1px solid #00f0ff66;
  padding-bottom: 5px;
  text-shadow: 0 0 6px #0ff, 0 0 12px #00cfff;
}

.retard {
  padding: 6px;
  border-bottom: 1px solid #00f0ff33;
}

/* Couleurs des s */
.-aucun { color: #0f0; }
.-moyen { color: orange; }
.-long { color: #ff3300; }

/* Rayures alternées style néon futuriste */
#s-list > div:nth-child(odd) {
  background-color: rgba(0, 255, 255, 0.08);
}
#s-list > div:nth-child(even) {
  background-color: rgba(191, 0, 255, 0.08);
}

/* Bordures pour séparer les lignes */
#retards-list > div {
  border-left: 3px solid #0ff; /* accent néon turquoise */
  padding: 8px 10px;
  margin-bottom: 4px;
  border-radius: 6px;
  box-shadow: inset 0 0 8px #00f0ff33;
}

   #lastUpdated{
  font-size:0.8em;
  margin-top:6px;
  color:#bbb;
  font-style:italic;
  /* on met le texte + bouton sur la même ligne, sans casser mobile */
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  text-align:right;
}
#lastUpdated .last-updated-text{
  min-width:0;
}
#lastUpdated .last-updated-text strong{ font-style:normal; }
#lastUpdated .refresh-inline-btn{
  appearance:none;
  border:1px solid rgba(0, 240, 255, 0.35);
  background:rgba(0, 240, 255, 0.10);
  color:#9ffcff;
  border-radius:999px;
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:0 0 10px rgba(0, 240, 255, 0.18);
  transition:transform .08s ease, box-shadow .15s ease, background .15s ease;
  flex:0 0 auto;
}
#lastUpdated .refresh-inline-btn:hover{
  background:rgba(0, 240, 255, 0.18);
  box-shadow:0 0 14px rgba(0, 240, 255, 0.26);
}
#lastUpdated .refresh-inline-btn:active{ transform:scale(0.96); }
#lastUpdated .refresh-inline-btn[disabled]{
  opacity:0.55;
  cursor:not-allowed;
  box-shadow:none;
}
#lastUpdated .refresh-inline-btn .spin{
  display:inline-block;
  animation:lbspin 0.9s linear infinite;
}
@keyframes lbspin{ from{transform:rotate(0deg);} to{transform:rotate(360deg);} }

/* Ancien bouton centré : on le masque (remplacé par l'icône à droite du "Généré le…") */
#refreshContainer{ display:none !important; }

   /* Modale */
.table-modal{
  display:none; position:fixed; inset:0; z-index:2000;
  background:rgba(0,0,0,.85);
  justify-content:center; align-items:center;
}
.table-modal-content{
  background:#0b0f1a; color:#0ff;
  width:96vw; height:92vh; border:2px solid #0ff;
  box-shadow:0 0 20px #00f0ff88; border-radius:10px;
  overflow:auto; padding:8px; position:relative;
}
.table-modal-actions{
  position:sticky; top:0; display:flex; justify-content:space-between; align-items:center; gap:12px;
  background:linear-gradient(180deg, #0b0f1a 0%, #0b0f1a 70%, transparent 100%);
  padding:6px 0 4px; z-index:1;
}
.table-modal-status{
  font-size:.8rem;
  color:#bfefff;
  font-style:italic;
  padding-left:6px;
}

#tableModalInner img{
  width:100%;
  height:auto;
  display:block;
  border-radius:6px;
  box-shadow:0 0 14px rgba(0,255,255,.25);
}

#tableModalInner .table-modal-error{
  background:rgba(255,82,82,.12);
  border:1px solid rgba(255,82,82,.5);
  padding:12px;
  border-radius:8px;
  color:#ff9b9b;
  text-align:center;
  font-size:.95rem;
}
/* Conteneur “fit” : on applique une échelle pour voir 100% du tableau */
#tableModalInner{
  transform-origin: top left;   /* important pour le fit */
}

/* (Optionnel) sur mobile tu peux afficher un petit hint en bas de la modale */
@media (max-width: 768px){
  .table-modal-content::after{
    content:"Pincer pour zoomer • Défilement autorisé";
    display:block; text-align:center; font-size:.75rem; color:#bfc5cc; margin-top:8px;
  }
}
@media (max-width: 600px){
  .table-modal-content{
    width:94vw;
    height:88vh;
    padding:6px;
    border-radius:8px;
  }
}
/* =================== Filtres (unique, sans doublons) =================== */
.filters-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
  margin-bottom:8px;
}

/* Paire label + champ : s’adapte à la largeur, ne casse pas le layout */
.filter-item{
  display:flex;
  align-items:center;
  gap:6px;
  flex:1 1 260px;
  min-width:180px;
}
.filter-item label{ white-space:nowrap; }
.filter-item select,
.filter-item input{
  flex:1 1 auto;
  min-width:0;
  width:100%;
}

/* Boutons compacts réutilisables */
.mini-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:8px 14px;
  border-radius:999px;
  border:1px solid #00ffff55;
  background:linear-gradient(135deg, rgba(0,25,35,.9), rgba(0,12,24,.78));
  color:#cfffff;
  font-family:'Orbitron', sans-serif;
  font-weight:700;
  font-size:.95rem;
  letter-spacing:.02em;
  cursor:pointer;
  transition:transform .12s ease, box-shadow .2s ease, border-color .2s ease, color .2s ease;
  box-shadow:0 0 12px rgba(0,255,255,.25);
  text-decoration:none;
}
.mini-btn:hover{
  border-color:#00ffff;
  color:#ffffff;
  box-shadow:0 0 20px rgba(0,255,255,.35), inset 0 0 10px rgba(0,255,255,.18);
}
.mini-btn:active{
  transform:translateY(1px) scale(.99);
}
.mini-btn:focus{
  outline:2px solid #00ffff;
  outline-offset:2px;
}

/* Horaire : (ancienne version inputs) masquée si le slider est présent */
.time-inline{ display:none !important; }
.time-sep{ opacity:.7; }

/* ===== Barre d’actions (Proposer + presets) ===== */
.console-actions-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin: 8px 0 6px;
}
.console-actions-row .actions-left{
  display:flex;
  align-items:center;
  gap:10px;
}
.console-actions-row .actions-right{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
/* Mobile : on empile et on centre proprement */
@media (max-width:720px){
  .console-actions-row{
    flex-direction:column;
    align-items:stretch;
  }
  .console-actions-row .actions-right{
    justify-content:center;
  }
}

/* (sécurité) si l’ancien conteneur de raccourcis existe encore, on le masque */
.console-buttons-shortcuts{ display:none !important; }

/* Table : confort de scroll horizontal */
.table-scroll{ overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* Header “TRON” responsive */
@media (max-width:768px){
  .header-container{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .video-container{ height:180px; }
}

/* Serrage sur très petits écrans */
@media (max-width:480px){
  .filters-row{ gap:8px; }
  .filter-item{ flex:1 1 100%; min-width:0; }
}

/* ============================================================= */
/* ===== Panneaux “cartes/chips” (propositions & sélection) ==== */
/* ============================================================= */
.chips-panel{
  border:1px solid #00ffff22;
  border-radius:13px;
  padding:11px;
  margin-top:12px;
  background:linear-gradient(180deg,rgba(0,20,30,.55),rgba(0,10,18,.35));
  color:#eaffff;
}
.chips-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:8px;
}
.chips-count{ font-size:.85em; opacity:.85; }

.chips-actions,
.chips-footer{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  align-items:center;
  margin:6px 0;
}

/* Boutons “chips-panel” (partagés) */
.btn{
  padding:9px 13px;
  border-radius:10px;
  border:1px solid #00ffff55;
  background:#06232b;
  color:#cfffff;
  font-weight:700;
  cursor:pointer;
}
.btn.primary{
  background:#00ffff;
  color:#01333b;
  border-color:#00ffff;
  box-shadow:0 0 12px #00ffff55;
}
 .btn.ghost{
  background:linear-gradient(135deg, rgba(0,25,35,0.65), rgba(0,12,24,0.55));
  color:#bdf6ff;
  border-color:#00ffff55;
  box-shadow:0 0 12px rgba(0,255,255,0.18);
  text-shadow:0 0 6px rgba(0,255,255,0.3);
}
.btn.ghost:hover{
  border-color:#00ffff;
  color:#ffffff;
}
.btn:active{ transform:translateY(1px); }

/* =================== Propositions (cartes) =================== */
#propositions *, #propositions *::before, #propositions *::after{ box-sizing:border-box; }

/* Grille responsive des cartes de propositions */
#propositions .chips-wrap{
  display:grid; gap:12px;
  grid-template-columns:repeat(4, minmax(0,1fr));
  align-items:stretch;
}
@media (max-width:1024px){ #propositions .chips-wrap{ grid-template-columns:repeat(3, minmax(0,1fr)); } }
@media (max-width:700px){  #propositions .chips-wrap{ grid-template-columns:repeat(2, minmax(0,1fr)); } }

/* Carte d’une proposition */
#propositions .chip{
  width:100%; min-width:0; overflow:hidden; position:relative;
  display:flex; flex-direction:column; gap:5px;
  padding:11px; border:1px solid #00ffff55; border-radius:14px;
  color:#eaffff; font-weight:700; letter-spacing:.2px; cursor:pointer; user-select:none;
  box-shadow:0 0 0 1px inset #00ffff22;
  transition:transform .05s ease, box-shadow .15s ease, background .15s ease;
}
#propositions .chip.cfl-train{
  border-color:#ffb347;
  box-shadow:0 0 0 1px inset rgba(255, 149, 0, 0.35);
  background:linear-gradient(180deg, rgba(255, 166, 0, 0.12), rgba(120, 60, 0, 0.08));
  color:#ffe7c6;
}
#propositions .chip:active{ transform:scale(.99); }
#propositions .chip.is-selected{
  background:radial-gradient(120% 120% at 50% 10%, #00ffff44 0%, #00ffff22 45%, transparent 70%);
  border-color:#00ffff; box-shadow:0 0 10px #00ffff99, inset 0 0 8px #00ffff55;
}
#propositions .chip.cfl-train.is-selected{
  background:radial-gradient(120% 120% at 50% 10%, rgba(255, 180, 0, 0.35) 0%, rgba(255, 153, 0, 0.22) 45%, transparent 70%);
  border-color:#ffb347;
  box-shadow:0 0 10px rgba(255, 184, 77, 0.55), inset 0 0 8px rgba(255, 191, 102, 0.45);
}
#propositions .t-num{ font-variant-numeric:tabular-nums; font-size:1rem; }
#propositions .t-time{ font-size:.85em; opacity:.85; }
#propositions .chip .train-label{ font-weight:700; }
#propositions .chip .train-label.cfl{ color:#ffcf91; }

 @media (max-width:600px){
  #propositions .chip{
    padding:8px;
    gap:3px;
    border-radius:11px;
  }
  #propositions .t-num{
    font-size:.9rem;
  }
  #propositions .t-time{
    font-size:.78rem;
  }
}

@media (max-width:480px){
  .chips-panel{
    padding:9px;
    border-radius:11px;
  }

  .chips-count{
    font-size:.8em;
  }
 .chips-actions,
  .chips-footer{
    gap:5px;
  }

  .btn{
    padding:8px 11px;
    font-size:.85rem;
  }

  #propositions .chips-wrap{
    gap:8px;
  }

  #propositions .chip{
    padding:7px;
    gap:3px;
  }

  #propositions .t-num{
    font-size:.85rem;
  }
  #propositions .t-time{
    font-size:.72rem;
  }
}
 .proposal-section{
  margin-bottom: 28px;
}
.proposal-section[hidden]{
  display: none !important;
}
.proposal-section__title{
  font-size: 1.05rem;
  font-weight: 700;
  margin-bottom: 14px;
  color: #00f0ff;
  text-shadow: 0 0 8px rgba(0, 240, 255, 0.6);
}
.selection-modal__body .proposal-section .chips-panel{
  margin-bottom: 20px;
}
.proposal-section.is-empty .proposal-section__title{
  opacity: 0.75;
}
.proposal-section.is-empty .propositions .chips-panel{
  text-align: center;
}

/* =================== Sélection (chips utilisateur) =================== */
.command-console .filters-row.filters-selection{
  display:block;
  width:100%;
  margin-bottom:8px;
}
    .command-console .filters-row.filters-selection[hidden]{
  display:none !important;
}

/* ===== Sélecteur manuel compact (input + Ajouter + Vider sur la même ligne) ===== */
#selectionBlock .selection-manual-card{
  margin:8px 0 10px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(0,255,255,0.2);
  background:linear-gradient(180deg, rgba(0,18,30,0.65), rgba(0,12,20,0.45));
  box-shadow: inset 0 0 12px rgba(0,255,255,0.08);
}
#selectionBlock .selection-manual-card__title{
  font-size:0.85rem;
  font-weight:700;
  color:#9ffcff;
  text-transform:uppercase;
  letter-spacing:0.08em;
  margin-bottom:6px;
  display:flex;
  align-items:center;
  gap:6px;
}
#selectionBlock .chips-manual{
  display:flex;
  align-items:center;
  gap:8px;
  margin:4px 0 0;
  flex-wrap:nowrap;              /* tout sur une ligne autant que possible */
  padding:0;                     /* compact */
}
#selectionBlock .chips-manual input{
  flex:1 1 auto;
  min-width:0;
  padding:7px 10px;
  border-radius:10px;
  background:#0b1325;
  color:#00f0ff;
  border:1px solid #00f0ff55;
  box-shadow:0 0 6px #00f0ff44 inset;
  font-family:'Orbitron', sans-serif;
  font-size:0.95rem;
}

/* (optionnel) wrapper si tu l’utilises dans le HTML */
#selectionBlock .chips-manual .manual-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
}

/* boutons compacts = on écrase le style bouton global (min-width, etc.) */
#selectionBlock .btn.btn-compact{
  min-width:auto !important;
  max-width:none !important;
  width:auto !important;
  margin:0 !important;
  padding:6px 10px !important;
  font-size:.95rem !important;
  line-height:1.1 !important;
  box-shadow:0 0 10px #00f0ff66, inset 0 0 14px #00f0ff55;
  border-radius:8px;
}
/* variante fantôme pour "Vider" (moins flashy) */
#selectionBlock .btn.btn-compact.ghost{
  background:#06232b !important;
  color:#cfffff !important;
  border:1px solid #00ffff55 !important;
  box-shadow:none !important;
}

/* Mobile très étroit : wrap mais input reste large */
@media (max-width:420px){
  #selectionBlock .chips-manual{ flex-wrap:wrap; }
  #selectionBlock .chips-manual input{ flex:1 1 100%; }
  #selectionBlock .chips-manual .manual-actions{ width:100%; justify-content:flex-end; }
}

.command-console .filters-row.filters-selection .filter-item{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  flex:none !important;
}
/* Résumé compact + bouton pour ouvrir la modale */
.selection-inline{
  margin-top:12px;
  padding:12px 16px;
  border:1px solid #00ffff33;
  border-radius:14px;
  background:linear-gradient(180deg, rgba(0,20,30,0.45), rgba(0,10,18,0.35));
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
 .selection-inline[hidden]{
  display:none !important;
}
.selection-inline.has-selection{
  border-color:#00ffff88;
  box-shadow:0 0 16px rgba(0,255,255,0.25);
}
.selection-inline__text{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.selection-inline__title{
  font-weight:700;
  color:#00f0ff;
  text-shadow:0 0 6px rgba(0,240,255,0.6);
}
.selection-inline__count{
  font-size:0.95rem;
  opacity:0.85;
}
.selection-inline .btn{
  flex-shrink:0;
  min-width:140px;
}
@media (max-width:600px){
  .selection-inline{
    flex-direction:column;
    align-items:stretch;
  }
  .selection-inline .btn{
    width:100%;
  }
}

/* ===== Grille des chips sélectionnées (optimisée mobile) ===== */
#selectionChips{
  box-sizing:border-box !important;      /* padding inclus */
  width:100% !important;
  max-width:100%;
  display:grid !important;
  grid-template-columns:repeat(auto-fit, minmax(100px, 1fr)) !important; /* ↓ 100 = + de colonnes */
  gap:10px 14px !important;              /* un poil plus serré */
  padding:8px 12px !important;           /* aligne avec l’en-tête */
  margin-top:8px !important;
  align-items:stretch !important;
  overflow-x:hidden;                     /* sécurité anti-scroll horizontal */
}
@media (max-width:600px){
  #selectionChips{
    grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
    gap:7px 8px !important;
    padding:6px 8px !important;
  }
}
@media (max-width:390px){
  #selectionChips .chip-tag{
    padding:5px 6px !important;
  }
  #selectionChips .chip-tag .t-num{
    font-size:.82rem !important;
  }
}
#selectionChips > *{
  min-width:0 !important;
  box-sizing:border-box !important;
}

/* Style d’une chip sélectionnée (clic = supprimer) */
#selectionChips .chip-tag{
  position:relative; display:flex; align-items:center; gap:6px;
  width:100%; padding:6px 9px; min-height:32px;
  border:1px solid #00ffff55; border-radius:10px;
  background:linear-gradient(180deg, rgba(0,20,30,.55), rgba(0,10,18,.35));
  color:#eaffff; font-weight:700; letter-spacing:.2px;
  box-shadow:0 0 0 1px inset #00ffff22;
  white-space:nowrap; cursor:pointer;
  transition:background .15s ease, box-shadow .15s ease, border-color .15s ease, transform .05s ease;
}
#selectionChips .chip-tag.cfl-train{
  border-color:#ffb347;
  background:linear-gradient(180deg, rgba(255, 166, 0, 0.18), rgba(120, 60, 0, 0.12));
  color:#ffe7c6;
  box-shadow:0 0 0 1px inset rgba(255, 149, 0, 0.28);
}
#selectionChips .chip-tag:hover{
  background:linear-gradient(180deg, rgba(0,40,60,.6), rgba(0,20,36,.5));
  border-color:#00ffff;
  box-shadow:0 0 10px #00ffff55, 0 0 0 1px inset #00ffff44;
}
#selectionChips .chip-tag.cfl-train:hover{
  background:linear-gradient(180deg, rgba(255, 188, 66, 0.32), rgba(120, 60, 0, 0.22));
  border-color:#ffb347;
  box-shadow:0 0 10px rgba(255, 176, 77, 0.45), 0 0 0 1px inset rgba(255, 191, 102, 0.4);
}
#selectionChips .chip-tag:active{ transform:scale(.98); }
#selectionChips .chip-tag:focus{ outline:2px solid #00ffff; outline-offset:2px; }
#selectionChips .chip-tag .t-num{ font-variant-numeric:tabular-nums; font-size:.9rem; }
@media (max-width:600px){
  #selectionChips .chip-tag{ padding:5px 8px; min-height:28px; }
  #selectionChips .chip-tag .t-num{ font-size:.86rem; }
}
#selectionChips .chip-tag .close{ display:none !important; }  /* croix supprimée */
.selection-flyout{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  z-index:120;
  padding:24px;
}
.selection-flyout.is-visible{
  display:flex;
}
.selection-flyout-backdrop{
  position:absolute;
  inset:0;
  background:rgba(6,12,22,.82);
  backdrop-filter:blur(4px);
}
.selection-flyout-panel{
  position:relative;
  width:min(480px, 100%);
  background:linear-gradient(160deg, rgba(0,28,46,.95), rgba(0,8,16,.92));
  border:1px solid rgba(0,255,255,.35);
  border-radius:20px;
  box-shadow:0 28px 60px rgba(0,0,0,.45), 0 0 22px rgba(0,255,255,.18);
  padding:24px 24px 20px;
  display:flex;
  flex-direction:column;
  gap:16px;
}
.tron-close-button,
.selection-flyout-close,
.selection-modal__close,
.table-modal__close{
  --tron-close-size:22px;
  width:var(--tron-close-size);
  height:var(--tron-close-size);
  min-width:var(--tron-close-size);
  min-height:var(--tron-close-size);
  border-radius:3px;
  border:1px solid rgba(0,255,255,.6);
  background:linear-gradient(135deg, rgba(4,22,34,.94), rgba(0,34,52,.78));
  box-shadow:0 0 6px rgba(0,255,255,.32), inset 0 0 4px rgba(0,18,30,.7);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0;
  cursor:pointer;
  font-size:0;
  line-height:1;
  color:inherit;
  transition:border-color .18s ease, box-shadow .18s ease, background .18s ease;
  isolation:isolate;
  position:relative;
}

.selection-flyout-close,
.selection-modal__close{
  position:absolute;
  top:8px;
  right:8px;
}
.selection-modal__close{ top:6px; }
.table-modal__close{
  margin-left:auto;
}
.tron-close-button::before,
.tron-close-button::after,
.selection-flyout-close::before,
.selection-flyout-close::after,
.selection-modal__close::before,
.selection-modal__close::after,
.table-modal__close::before,
.table-modal__close::after{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  width:72%;
  height:2px;
  border-radius:1px;
  background:linear-gradient(90deg, rgba(0,255,255,.15) 0%, rgba(0,255,255,.85) 52%, rgba(0,255,255,.15) 100%);
  box-shadow:0 0 6px rgba(0,255,255,.55);
  transform-origin:center;
  transition:background .18s ease, box-shadow .18s ease;
}

.tron-close-button::before,
.selection-flyout-close::before,
.selection-modal__close::before,
.table-modal__close::before{
  transform:translate(-50%, -50%) rotate(45deg);
}
.tron-close-button::after,
.selection-flyout-close::after,
.selection-modal__close::after,
.table-modal__close::after{
  transform:translate(-50%, -50%) rotate(-45deg);
}
.tron-close-button:hover,
.selection-flyout-close:hover,
.selection-modal__close:hover,
.table-modal__close:hover{
  border-color:rgba(0,255,255,.9);
  box-shadow:0 0 12px rgba(0,255,255,.45), inset 0 0 6px rgba(0,40,60,.8);
  background:linear-gradient(135deg, rgba(6,32,48,.96), rgba(0,56,80,.78));
}
.tron-close-button:hover::before,
.tron-close-button:hover::after,
.selection-flyout-close:hover::before,
.selection-flyout-close:hover::after,
.selection-modal__close:hover::before,
.selection-modal__close:hover::after,
.table-modal__close:hover::before,
.table-modal__close:hover::after{
  background:linear-gradient(90deg, rgba(0,255,255,.3) 0%, rgba(0,255,255,1) 52%, rgba(0,255,255,.3) 100%);
  box-shadow:0 0 10px rgba(0,255,255,.7);
}
.tron-close-button:active,
.selection-flyout-close:active,
.selection-modal__close:active,
.table-modal__close:active{
  background:linear-gradient(135deg, rgba(2,18,28,.92), rgba(0,30,46,.78));
  box-shadow:0 0 6px rgba(0,255,255,.35), inset 0 0 10px rgba(0,0,0,.6);
}
.tron-close-button:focus-visible,
.selection-flyout-close:focus-visible,
.selection-modal__close:focus-visible,
.table-modal__close:focus-visible{
  outline:none;
  box-shadow:0 0 0 1px rgba(0,255,255,.9), 0 0 12px rgba(0,255,255,.55), inset 0 0 6px rgba(0,40,60,.85);
}
@media (prefers-reduced-motion: reduce){
  .tron-close-button,
  .selection-flyout-close,
  .selection-modal__close,
  .table-modal__close{
    transition:none;
  }
  .tron-close-button::before,
  .tron-close-button::after,
  .selection-flyout-close::before,
  .selection-flyout-close::after,
  .selection-modal__close::before,
  .selection-modal__close::after,
  .table-modal__close::before,
  .table-modal__close::after{
    transition:none;
  }
}
.selection-flyout-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.selection-flyout-header h3{
  margin:0;
  font-size:1.2rem;
  color:#00f0ff;
  text-shadow:0 0 12px rgba(0,255,255,.4);
}
.selection-flyout-count{
  font-size:.85rem;
  color:#9aeaff;
  text-transform:uppercase;
  letter-spacing:.12em;
}
.selection-flyout-subtitle{
  margin:0;
  font-size:.95rem;
  color:#d5f8ff;
  line-height:1.4;
}
.selection-flyout-chips{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  max-height:180px;
  overflow-y:auto;
  padding-right:4px;
}
.selection-flyout-empty{
  width:100%;
  text-align:center;
  color:#9bdcff;
  font-size:.9rem;
  padding:12px 0;
}
.selection-flyout-chips .chip-tag{
  background:linear-gradient(135deg, rgba(0,255,255,.22), rgba(0,170,220,.16));
  border:1px solid rgba(0,255,255,.45);
  box-shadow:0 0 12px rgba(0,255,255,.18);
}
.selection-flyout-actions{
  display:flex;
  justify-content:flex-end;
}
.selection-flyout-actions .btn{
  min-width:0;
}

/* Barre d’actions sous les chips */
#selectionActions{
  box-sizing:border-box;
  display:flex !important;
  gap:10px;
  justify-content:flex-start;
  margin-top:12px;
  padding:0 12px;                        /* aligné avec la grille */
}
#selectionActions[hidden]{ display:none !important; }

label[for="trainNumbers"]{ display:none !important; }
#trainNumbers{ display:none !important; }
.csv-only{ display:none !important; }

/* ===== Modale de sélection ===== */
body.modal-open{ overflow:hidden; }

.selection-modal__backdrop{
  position:fixed;
  inset:0;
  background:radial-gradient(circle at top, rgba(0,255,255,0.18) 0%, rgba(0,12,24,0.82) 45%, rgba(0,0,0,0.92) 100%);
  backdrop-filter:blur(3px);
  z-index:900;
}
.selection-modal__backdrop[hidden]{ display:none !important; }

.selection-modal{
  position:fixed;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  z-index:910;
}
.selection-modal[hidden]{ display:none !important; }

.selection-modal__panel{
  position:relative;
  width:min(640px, 96vw);
  max-height:90vh;
  padding:24px 22px 28px;
  border:1px solid #00ffff55;
  border-radius:20px;
  background:linear-gradient(155deg, rgba(0,25,35,0.95), rgba(0,12,24,0.88));
  box-shadow:0 0 28px rgba(0,255,255,0.35), 0 0 12px rgba(178,0,255,0.25) inset;
  display:flex;
  flex-direction:column;
  gap:14px;
}
.selection-modal__header h2{
  margin:0;
  font-size:1.35rem;
  color:#00f0ff;
  text-shadow:0 0 12px rgba(0,255,255,0.55);
}
.selection-modal__subtitle{
  margin:6px 0 0;
  font-size:0.95rem;
  color:#9ae7ff;
  opacity:0.88;
}

.selection-modal__body{
  overflow-y:auto;
  padding-right:4px;
}
.selection-modal__body .chips-panel{
  margin-top:0;
}
 .selection-date{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:24px;
}
.selection-date__label{
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#7fe7ff;
}
.selection-date__controls{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}
.selection-date__controls input[type="date"]{
  padding:8px 12px;
  border-radius:12px;
  border:1px solid #00ffff33;
  background:#0b1325;
  color:#cfffff;
  font-family:'Orbitron', sans-serif;
  font-size:.95rem;
  box-shadow:0 0 10px rgba(0,255,255,.12) inset;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.selection-date__controls input[type="date"]:focus{
  outline:none;
  border-color:#00ffff;
  box-shadow:0 0 16px rgba(0,255,255,.25);
}
.selection-date .quick-button-group{
  margin-top:0;
}
.selection-date .quick-btn{
  padding:6px 10px;
}
@media (max-width:600px){
  .selection-date__controls{
    flex-direction:column;
    align-items:flex-start;
  }
  .selection-date__controls input[type="date"]{
    width:100%;
  }
}
.selection-empty{
  border:1px dashed rgba(0,255,255,0.4);
  border-radius:14px;
  padding:16px;
  background:rgba(0,16,26,0.6);
  color:#aeefff;
  text-align:center;
}
.selection-empty p{
  margin:0;
}

@media (max-width:540px){
  .selection-modal{
    padding:12px;
  }
  .selection-modal__panel{
    width:100%;
    padding:22px 18px 24px;
  }
}
@media (max-width:600px){
  .selection-modal__panel{
    max-height:88vh;
    gap:10px;
    padding:18px 16px 20px;
    border-radius:16px;
  }
  .selection-modal__header h2{
    font-size:1.1rem;
  }
  .selection-modal__subtitle{
    font-size:0.85rem;
  }
  .selection-modal__body{
    padding-right:0;
  }
}

/* =================== De / À / Date =================== */
.persona-intro{
  margin:4px 0 12px;
  font-size:1rem;
  color:#8fffff;
  text-shadow:0 0 8px rgba(0,255,255,.3);
}

.itinerary-preview{
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:12px 16px;
  border:1px solid #00ffff33;
  border-radius:16px;
  background:linear-gradient(135deg, rgba(0,25,35,.65), rgba(0,10,18,.55));
  box-shadow:0 0 18px rgba(0,255,255,.18) inset;
  margin-bottom:14px;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.itinerary-preview.is-ready{
  border-color:#00ffff;
  box-shadow:0 0 22px rgba(0,255,255,.28), inset 0 0 18px rgba(0,255,255,.22);
  transform:translateY(-1px);
}
.itinerary-preview .preview-icon{ font-size:1.6rem; line-height:1; }
.itinerary-preview .preview-line{
  font-weight:700;
  font-size:1.05rem;
  color:#ffffff;
  text-shadow:0 0 8px rgba(0,255,255,.4);
}
.itinerary-preview .preview-subline{
  font-size:.92rem;
  color:#9ae7ff;
  opacity:.85;
}
.manual-compact .itinerary-preview{
  display:none;
}
.manual-compact .itinerary-preview .preview-line{ font-size:1rem; }
.manual-compact .itinerary-preview .preview-subline{ font-size:.82rem; }

.tableau-mode-switch{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 12px;
  margin-bottom:12px;
  border:1px solid rgba(0,240,255,.24);
  border-radius:12px;
  background:rgba(0,14,26,.52);
}
.tableau-mode-switch__label{
  font-size:.78rem;
  color:#9befff;
  font-weight:700;
  white-space:nowrap;
}
.tableau-mode-switch__select{
  flex:1;
  min-width:240px;
  border:1px solid rgba(0,240,255,.3);
  border-radius:10px;
  background:rgba(0,18,30,.88);
  color:#e8fcff;
  padding:8px 10px;
  font-family:inherit;
}
.manual-compact .search-card{
  border:1px solid rgba(0,240,255,.22);
  border-radius:14px;
  background:rgba(0,12,22,.48);
  padding:10px 12px;
}
.manual-compact .search-card h4{
  margin:0 0 8px;
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#8eeeff;
}
.manual-compact .search-options-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.manual-compact .compact-fields__title{
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:#7fe7ff;
  font-weight:700;
}
.manual-compact[data-search-mode="quick"] .compact-fields{
  display:none;
}
.manual-compact[data-search-mode="quick"] .compact-train-search{
  display:none;
}
.manual-compact[data-search-mode="advanced"] .compact-presets{
  display:none;
}
.manual-compact[data-search-mode="advanced"] .compact-train-search{
  display:none;
}
.manual-compact[data-search-mode="train"] .compact-presets,
.manual-compact[data-search-mode="train"] .compact-fields{
  display:none;
}
.manual-compact[data-search-mode="quick"] .manual-compact-grid,
.manual-compact[data-search-mode="advanced"] .manual-compact-grid,
.manual-compact[data-search-mode="train"] .manual-compact-grid{
  grid-template-columns:1fr;
}
.manual-compact .compact-train-search{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-width:0;
}
.manual-compact .tableau-train-search__fields{
  display:grid;
  grid-template-columns:minmax(150px,1fr) minmax(145px,.72fr) auto;
  align-items:end;
  gap:10px;
}
.manual-compact .tableau-train-search__field{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}
.manual-compact .tableau-train-search__field label{
  color:#9befff;
  font-size:.72rem;
  font-weight:700;
}
.manual-compact .tableau-train-search__field input{
  width:100%;
  min-width:0;
  min-height:42px;
  border:1px solid rgba(0,240,255,.3);
  border-radius:10px;
  background:rgba(0,18,30,.88);
  color:#e8fcff;
  padding:8px 10px;
  font-family:inherit;
  font-size:.9rem;
}
.manual-compact .tableau-train-search__submit{
  min-height:42px;
  margin:0;
  white-space:nowrap;
}
.manual-compact .tableau-train-search__status{
  min-height:1em;
  margin:9px 0 0;
  color:#86aebb;
  font-size:.7rem;
}
.manual-compact .tableau-train-search__status.is-error{ color:#ff778d; }
.manual-compact .tableau-train-search__status.is-loading{ color:#ffd166; }
.manual-compact .tableau-train-search__status.is-success{ color:#59efa4; }
@media (max-width:700px){
  .tableau-mode-switch{ flex-direction:column; align-items:stretch; }
  .tableau-mode-switch__select{ min-width:0; width:100%; }
  .manual-compact .tableau-train-search__fields{ grid-template-columns:1fr; }
  .manual-compact .tableau-train-search__submit{ width:100%; }
}
.manual-compact .filters-row{
  gap:8px;
  margin-bottom:6px;
}
.manual-compact .filters-date-time{
  display:grid;
  grid-template-columns: minmax(220px, 1fr) minmax(260px, 2fr);
  gap:12px;
  align-items:start;
}
.manual-compact .station-date-grid{
  display:grid;
  grid-template-columns: minmax(240px, 1.2fr) minmax(240px, 1fr);
  gap:12px;
  align-items:start;
}
.manual-compact .date-time-stack{
  display:flex;
  flex-direction:column;
  gap:10px;
  height:100%;
}
.manual-compact .date-time-stack .filters-date-time{
  grid-template-columns:1fr;
}
.manual-compact .date-picker-wrap{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.manual-compact .quick-button-group{
  gap:6px;
}
.manual-compact .quick-button-group .mini-btn{
  padding:6px 12px;
  font-size:.82rem;
}
.manual-compact .time-range label{
  font-weight:700;
  font-size:.9rem;
  color:#cfffff;
}
.manual-compact .manual-compact-grid{
  display:grid;
  grid-template-columns: minmax(160px, 200px) 1fr;
  gap:16px;
  align-items:start;
}
.manual-compact .compact-presets{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px;
  border-radius:14px;
  border:1px solid rgba(0, 240, 255, 0.25);
  background:rgba(0, 12, 22, 0.55);
}
.manual-compact .compact-presets__title{
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#7fe7ff;
}
.manual-compact .preset-stack{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.manual-compact .compact-presets .preset-btn{
  width:100%;
  justify-content:flex-start;
  padding:6px 10px !important;
  font-size:.85rem !important;
}
.manual-compact .compact-fields{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.manual-compact .station-stack{
  position:relative;
  border:1px solid rgba(0, 240, 255, 0.35);
  border-radius:14px;
  background:rgba(6, 16, 28, 0.7);
  overflow:hidden;
  box-shadow:0 0 14px rgba(0,255,255,.12) inset;
  padding:12px 58px 12px 12px;
}
.manual-compact .station-row{
  display:grid;
  grid-template-columns: 28px 1fr;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-bottom:1px solid rgba(0, 240, 255, 0.12);
}
.manual-compact .station-row:last-child{
  border-bottom:none;
}
.manual-compact .station-label{
  font-weight:700;
  color:#bff7ff;
  font-size:.85rem;
}
.manual-compact .station-stack .station-search{
  padding:6px 0;
  border:none;
  background:transparent;
  box-shadow:none;
  color:#e7fbff;
}
.manual-compact .station-stack .station-search:focus{
  transform:none;
  box-shadow:none;
}
.manual-compact .swap-btn--center{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%, -50%);
  width:34px;
  height:34px;
  border-radius:50%;
  padding:0;
  font-size:1rem;
  background:linear-gradient(135deg, #00f0ff, #6cfaff);
  color:#02131f;
  border:1px solid rgba(0, 240, 255, 0.6);
  box-shadow:0 0 12px rgba(0,255,255,.5);
}
.manual-compact .swap-btn--center:hover{
  transform:translate(-50%, -50%) scale(1.03);
}
.manual-compact .station-search{
  padding:6px 8px;
  font-size:.92rem;
}
.manual-compact .station-swap{
  min-width:110px;
}
.manual-compact .swap-btn{
  padding:8px 14px;
  font-size:.9rem;
}
.manual-compact .time-grid{
  grid-template-columns: 1fr;
}
.manual-compact .time-slider{
  margin:8px 0;
}
.manual-compact .time-values{
  font-size:.85rem;
}
.manual-compact .helper-text{
  font-size:.78rem;
  color:rgba(224, 240, 255, 0.75);
}
.manual-compact .filters-options{
  justify-content:flex-start;
}
.manual-compact .option-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:999px;
  border:1px solid rgba(0, 240, 255, 0.3);
  background:rgba(0, 12, 22, 0.6);
  color:#dffbff;
  font-size:.85rem;
}
@media (max-width:900px){
  .manual-compact .filters-date-time{
    grid-template-columns:1fr;
  }
  .manual-compact .manual-compact-grid{
    grid-template-columns:1fr;
  }
  .manual-compact .station-date-grid{
    grid-template-columns:1fr;
  }
}
.manual-compact .field-caption{
  font-size:.75rem;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.command-console .filters-dea{
  display:grid;
  gap:12px;
  grid-template-columns:1fr auto 1fr;
  align-items:stretch;
}
@media (max-width:980px){
  .command-console .filters-dea{ grid-template-columns:1fr; }
}
.field-caption{
  font-size:.85rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#7fe7ff;
}

.station-field{
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
}
.station-field select{
  width:100%;
}
.station-select-hidden{
  display:none;
}
.station-search{
  width:100%;
  padding:9px 14px;
  border-radius:14px;
  border:1px solid rgba(0,255,255,.45);
  background:linear-gradient(135deg, rgba(6,18,34,.92), rgba(5,12,24,.88));
  color:#00f0ff;
  font-family:'Orbitron', sans-serif;
  font-size:1rem;
  line-height:1.2;
  min-height:0px;
  box-shadow:0 0 16px rgba(0,255,255,.16) inset;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.station-search::placeholder{
  color:rgba(144,244,255,.75);
}
.station-search:focus{
  outline:none;
  border-color:#00ffff;
  box-shadow:0 0 22px rgba(0,255,255,.35);
  transform:translateY(-1px);
}
.station-swap{
  flex-direction:column;
  justify-content:center;
  align-items:center;
  gap:8px;
  min-width:130px;
}
.swap-btn{
  padding:10px 18px;
  font-size:1rem;
  background:linear-gradient(135deg, rgba(0,35,50,.9), rgba(0,20,35,.8));
}
.swap-caption{
  font-size:.8rem;
  text-align:center;
  color:#8fceff;
  opacity:.8;
}

.command-console .filters-date{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:flex-start;
  margin-bottom:6px;
}
.command-console .filters-date .filter-item{
  flex:1 1 280px;
  min-width:200px;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
}
.date-picker-wrap{ width:100%; }

.quick-button-group{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:8px;
}
.quick-btn{
  font-size:.88rem;
  padding:6px 12px;
  box-shadow:0 0 12px rgba(0,255,255,.18);
  background:linear-gradient(135deg, rgba(0,30,45,.85), rgba(0,18,30,.7));
}
.quick-btn.is-active{
  border-color:#00ffff;
  box-shadow:0 0 18px rgba(0,255,255,.35), inset 0 0 14px rgba(0,255,255,.22);
}

.field-pulse{
  animation:fieldPulse .45s ease;
}
@keyframes fieldPulse{
  0%{ box-shadow:0 0 0 rgba(0,255,255,0); }
  40%{ box-shadow:0 0 20px rgba(0,255,255,.35); }
  100%{ box-shadow:0 0 0 rgba(0,255,255,0); }
}

.input-error{
  border-color:#ff6b6b !important;
  box-shadow:0 0 14px rgba(255,107,107,.45) inset;
  animation:inputShake .35s ease;
}
@keyframes inputShake{
  0%,100%{ transform:translateX(0); }
  25%{ transform:translateX(-4px); }
  75%{ transform:translateX(4px); }
}

@media (max-width:720px){
  .station-swap{ min-width:100%; flex-direction:row; }
  .swap-caption{ text-align:left; }
  .swap-btn::after{ display:none; }
}

/* =================== Slider horaire (noUiSlider) =================== */
/* Le groupe horaire prend toute la largeur */
.filters-datetime .time-range{
  display:flex;
  flex-direction:column;
  width:100%;
}

/* Inputs compatibles masqués visuellement */
.visually-hidden{
  position:absolute !important;
  width:1px !important; height:1px !important;
  margin:-1px !important; padding:0 !important;
  overflow:hidden !important; clip:rect(0 0 0 0) !important;
  white-space:nowrap !important; border:0 !important;
}

/* Slider = plein large + marges */
.time-slider{ width:100%; min-width:0; max-width:100%; margin:10px 0; box-sizing:border-box; overflow:hidden; }

/* Rail épais et glow Tron */
#timeSlider.noUi-horizontal{ height:24px; }
#timeSlider.noUi-target{
  background:#0b1325;
  border:2px solid #00f0ff88;
  border-radius:12px;
  box-shadow:0 0 6px #00f0ff44 inset, 0 0 16px rgba(0,255,255,.25);
}
#timeSlider .noUi-connects{ border-radius:12px; overflow:hidden; }
#timeSlider .noUi-connect{
  background:linear-gradient(90deg, #00f0ff 0%, #00d6ff 40%, #b200ff 100%);
  box-shadow:0 0 10px rgba(0,255,255,.5);
}

/* Poignées boostées */
#timeSlider .noUi-handle{
  width:28px; height:28px; top:-2px;
  border-radius:50%;
  background:#00f0ff; border:2px solid #00f0ff;
  box-shadow:0 0 16px #00ffff; cursor:grab;
}
#timeSlider .noUi-handle:active{ cursor:grabbing; }
#timeSlider .noUi-handle::before,
#timeSlider .noUi-handle::after{ display:none; }

/* ===== v22: encore plus compact + alignements mobile (Tableau/Console) ===== */
@media (max-width: 520px){
  /* Raccourcis plus compacts */
  .manual-compact .compact-presets{ padding:8px !important; gap:6px !important; }
  .manual-compact .preset-stack{ gap:6px !important; }
  .manual-compact .compact-presets .preset-btn{ min-height:34px !important; font-size: 14px !important; padding:6px 8px !important; justify-content:center !important; }

  /* Zone De/À plus basse */
  .manual-compact .station-stack{ padding:8px 44px 8px 10px !important; gap:4px !important; border-radius:16px !important; }
  .manual-compact .station-row{ grid-template-columns:28px 1fr !important; padding:4px 0 !important; }
  .manual-compact .station-label{ font-size:13px !important; }
  .manual-compact .station-search{ font-size:15px !important; padding:8px 10px !important; border-radius:12px !important; }

  /* Bouton inversion : à droite + centré en hauteur */
  .manual-compact .swap-btn--center{
    left:auto !important; right:10px !important;
    top:50% !important; transform:translateY(-50%) !important;
    width:30px !important; height:30px !important;
    font-size:16px !important;
    display:grid !important; place-items:center !important;
  }

  /* Plage horaire : slider plus fin + poignées plus petites */
  #timeSlider.noUi-target{ height:16px !important; }
  #timeSlider .noUi-handle{ width:20px !important; height:20px !important; top:-3px !important; }
  .manual-compact .time-range label{ font-size:12px !important; margin-bottom:4px !important; }
  .time-values{ font-size:14px !important; margin-top:6px !important; }
  #timeSlider{ touch-action:none; }

  /* Options (Correspondances + Trains CFL) sur une seule ligne */
  .manual-compact .filters-options{ flex-wrap:nowrap !important; gap:8px !important; }
  .manual-compact .filter-option{ padding:10px 12px !important; }

  /* Bouton Rechercher visible */
  .manual-compact .actions-main{ margin-top:6px !important; }
  .manual-compact .actions-main .proposer-btn{ min-height: 40px !important; padding:10px 12px !important; }
}

/* Tooltips (heures au-dessus des poignées) : MASQUÉS pour éviter le doublon */
#timeSlider .noUi-tooltip{ display:none !important; }

/* Pips/repères – forcés masqués (évite la “légende en minutes”) */
#timeSlider .noUi-pips{ display:none !important; }

/* Labels live (SOUS le slider) */
.time-values{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top:6px;
  font-family:'Orbitron', sans-serif;
  color:#cfffff;
  text-shadow:0 0 6px #00f0ff99;
  font-weight:700;
}

/* ======== Actions: Proposer + AM/PM ======== */
/* PC/tablette: rangée, proposer à gauche, AM/PM à droite */
.actions-stack{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-top:6px;
}
.actions-main{ display:flex; align-items:center; }
.actions-shortcuts{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

/* Raccourcis compacts = on écrase le gabarit bouton global */
.preset-btn{
  min-width:auto !important;
  max-width:none !important;
  width:auto !important;
  margin:0 !important;
  padding:6px 10px !important;
  font-size:.95rem !important;
  line-height:1.1 !important;
  white-space:nowrap;
  box-shadow:0 0 10px #00f0ff66, inset 0 0 14px #00f0ff55; /* discret */
}

 .preset-btn.is-active{
  background:#00f0ff !important;
  color:#02131f !important;
  box-shadow:0 0 20px #00f0ffbb, inset 0 0 18px #00f0ffbb;
}

.mini-btn.proposer-btn{
  padding:9px 16px;
}

@media (max-width:768px){
  .actions-stack{
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
  }
  .actions-main{ justify-content:center; width:100%; }
  .actions-shortcuts{
    justify-content:center;
    width:100%;
    flex-wrap:nowrap; /* AM + PM côte à côte */
    gap:12px;
  }
}

/* Disposition du slider + AM/PM */
.time-grid{
  display:grid;
  grid-template-columns: 1fr auto; /* slider + presets à droite */
  gap:12px;
  align-items:center;
}

/* Ligne du bouton Proposer */
.actions-main{
  display:flex;
  justify-content:flex-start;   /* PC: aligné à gauche */
  margin-top:6px;
}

/* Mobile : AM/PM passent SOUS le slider (toujours côte à côte) et Proposer est CENTRÉ */
@media (max-width:768px){
  .time-grid{
    grid-template-columns: 1fr;  /* slider seul en première ligne */
    gap:10px;
  }

  .actions-main{
    justify-content:center;      /* Proposer centré en dessous */
  }
}
    /* Centrer le bouton "Proposer" */
.actions-main{
  flex: 1 1 100%;
  display: flex;
  justify-content: center;
}

/* Centrer le bouton "Générer le tableau" dans le footer de sélection */
#selectionFooter.chips-footer,
.chips-footer.centered{
  display: flex !important;
  justify-content: center !important;
  align-items: center;
  padding: 8px 0;
}
.filters-transfer .filter-item input[type="checkbox"] {
  accent-color: #00ffff; /* TRON cyan */
}
.filters-transfer .cfl-toggle span {
  color: #ffdfa9;
}
.filters-transfer .cfl-toggle input[type="checkbox"] {
  accent-color: #ff9e3d;
}
.filters-transfer .filter-item input[type="number"] {
  background:#0b1220; color:#bff; border:1px solid #00ffff66; border-radius:6px; padding:6px 8px;
  box-shadow: inset 0 0 8px #00ffff22; outline:none;
}
.filters-transfer label span { color:#bff; }

    /* ======= BANNIÈRE TRON — HEADER COMPACT ======= */
/* Layout : logo à gauche, bloc titre vraiment centré */
.hero-compact .hero-inner{
  position: relative;
  width: 100%;
  min-height: 160px;                 /* hauteur confortable pour le titre SVG */
}

/* Logo fixé à gauche, centré verticalement */
.hero-compact .logo-container{
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
}

/* Bloc titre : centrage exact + espace très serré titre/sous-titre */
.hero-compact .hero-title{
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: grid;
  justify-items: center;             /* centre SVG et sous-titre sur le même axe */
  text-align: center;
  row-gap: 2px;                      /* espace réduit entre le titre et le sous-titre */
  max-width: 72%;
  padding: 0;                        /* pas d’espace parasite */
}

/* Conteneur du SVG : pas d’espace de ligne ajouté */
.hero-compact .hero-heading{
  margin: 0;
  line-height: 0;                    /* supprime le blanc typographique sous le SVG */
}

/* SVG : responsive et sans coupe du halo */
.tron-svg{
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;                 /* le glow ne sera jamais rogné */
  line-height: 0;                    /* renforce l’absence de blanc résiduel */
}

/* Sous-titre façon Tron Legacy : médaillon lumineux + filets */
.hero-compact .hero-sub{
  --tron-pill-bg: linear-gradient(90deg, rgba(0,255,255,.12) 0%, rgba(0,174,255,.22) 45%, rgba(0,255,255,.12) 100%);
  --tron-text-gradient: linear-gradient(90deg, #defbff 0%, #5ce7ff 45%, #c2f8ff 100%);
  margin: 0;
  display: inline-flex;
  align-items: center;
  gap: 18px;
  padding: 6px 26px;
  border-radius: 999px;
  position: relative;
  background: var(--tron-pill-bg);
  border: 1px solid rgba(0,255,255,.32);
  box-shadow:
    inset 0 0 18px rgba(0,255,255,.18),
    0 0 24px rgba(0,255,255,.16);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  isolation: isolate;
  letter-spacing: .28em;
  text-transform: uppercase;
  font-weight: 600;
  font-size: clamp(.82rem, 1.25vw, 1rem);
  color: #b5f7ff;
  text-shadow: 0 0 12px rgba(0,255,255,.55);
  white-space: nowrap;
}

.hero-compact .hero-sub::before,
.hero-compact .hero-sub::after{
  content: "";
  flex: 1 1 42px;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(0,255,255,.75) 50%, transparent 100%);
  filter: drop-shadow(0 0 6px rgba(0,255,255,.65));
}

@supports ((-webkit-background-clip: text) or (background-clip: text)){
  .hero-compact .hero-sub{
    background:
      var(--tron-pill-bg) padding-box,
      var(--tron-text-gradient) text;
    background-clip: padding-box, text;
    -webkit-background-clip: padding-box, text;
    color: transparent;
  }
  @supports (-webkit-text-fill-color: transparent){
    .hero-compact .hero-sub{
      -webkit-text-fill-color: transparent;
    }
  }
}

/* ------- Responsive : on empile et on centre tout ------- */
@media (max-width: 600px){
  .hero-compact .hero-inner{
    min-height: initial;
    padding: 8px 0;
  }
  .hero-compact .logo-container{
    position: static;
    transform: none;
    display: flex;
    justify-content: center;
    margin-bottom: 6px;              /* un petit air sous le logo */
  }
  .hero-compact .hero-title{
    position: static;
    transform: none;
    max-width: 100%;
    padding: 0 8px;
  }
.hero-compact .hero-sub{
    padding: 6px 16px;
    gap: 8px;
    letter-spacing: .14em;
    font-size: clamp(.74rem, 3vw, .88rem);
    max-width: min(100%, 280px);
    white-space: normal;
    text-align: center;
    line-height: 1.35;
    flex-wrap: wrap;
    justify-content: center;
  }
  .hero-compact .hero-sub::before,
  .hero-compact .hero-sub::after{
    display: none;
    content: none;
  }
}
    /* Halo cyan doux autour du titre (SVG) */
.hero-compact .hero-heading{
  /* pas d'offset, juste de la lueur */
  filter:
    drop-shadow(0 0 6px rgba(0,255,255,.28))
    drop-shadow(0 0 16px rgba(0,255,255,.20))
    drop-shadow(0 0 28px rgba(0,255,255,.12));
}

/* Si iOS chauffe, on allège (optionnel) */
@supports (-webkit-touch-callout: none){
  .hero-compact .hero-heading{
    filter:
      drop-shadow(0 0 6px rgba(0,255,255,.22))
      drop-shadow(0 0 16px rgba(0,255,255,.14));
  }
  .hero-compact .hero-sub{
    box-shadow:
      inset 0 0 14px rgba(0,255,255,.14),
      0 0 18px rgba(0,255,255,.12);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
  }
  .hero-compact .hero-sub::before,
.hero-compact .hero-sub::after{
    filter: drop-shadow(0 0 4px rgba(0,255,255,.45));
  }
}
/* ======= AUTH / COMPTE ======= */
.hero-compact .auth-actions{
  position: absolute;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  align-items: center;
  gap: 10px;
  z-index: 2;
}

.auth-button{
  border: 1px solid rgba(0,220,255,.5);
  background: linear-gradient(135deg, rgba(0,220,255,.35), rgba(0,120,255,.35));
  color: #e9fbff;
  font-weight: 700;
  letter-spacing: .03em;
  padding: 12px 16px;
  border-radius: 14px;
  cursor: pointer;
  box-shadow: 0 0 18px rgba(0,220,255,.25);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

.auth-button:hover{
  transform: translateY(-1px);
  box-shadow: 0 0 24px rgba(0,220,255,.35);
  border-color: rgba(0,220,255,.75);
}

.auth-button--ghost{
  background: rgba(8,18,30,.7);
  border: 1px solid rgba(120,220,255,.35);
  box-shadow: inset 0 0 14px rgba(0,220,255,.12);
}

.lb-auth-modal{
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(4,12,20,.78);
  z-index: 2600;
  padding: 20px;
}

.lb-auth-card{
  width: min(360px, 90vw);
  background: radial-gradient(circle at top, rgba(12,34,54,.85), rgba(6,14,24,.92));
  border-radius: 20px;
  border: 1px solid rgba(120,220,255,.35);
  box-shadow:
    0 18px 40px rgba(0,0,0,.45),
    0 0 30px rgba(0,220,255,.18),
    inset 0 0 18px rgba(0,220,255,.2);
  padding: 20px;
  color: #e6f7ff;
  position: relative;
  backdrop-filter: blur(6px);
  overflow: hidden;
}

.lb-auth-close{
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 1;
}

.lb-auth-card h3{
  margin: 0 0 6px;
  font-size: 1.35rem;
  color: #dffcff;
  text-shadow: 0 0 10px rgba(0,255,255,.35);
}

.lb-auth-fields{
  display: grid;
  gap: 10px;
  margin-bottom: 12px;
}

.lb-auth-fields label{
  font-size: .82rem;
  color: #9fb4c9;
}

.lb-auth-fields input{
  width: 100%;
  padding: 9px 12px;
  border-radius: 10px;
  border: 1px solid rgba(120,220,255,.35);
  background: rgba(6,16,28,.8);
  color: #e6f7ff;
  font-size: 0.85rem;
  line-height: 1.2;
  box-shadow: inset 0 0 12px rgba(0,220,255,.12);
  box-sizing: border-box;
}

.lb-auth-msg{
  min-height: 20px;
  font-size: .8rem;
  margin: 8px 0 14px;
  color: #aab6c8;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 10px;
  background: rgba(5,16,28,.55)
}

.lb-profile-card{
  margin: 4px 0 12px;
  border: 1px solid rgba(0,240,255,.28);
  border-radius: 12px;
  background: rgba(5,16,28,.58);
  box-shadow: inset 0 0 12px rgba(0,220,255,.1);
  padding: 10px;
  display: grid;
  gap: 8px;
}
.lb-profile-title{
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: #9defff;
}
.lb-profile-grid{
  display:grid;
  grid-template-columns: 1fr;
  gap:8px;
}
.lb-profile-chip{
  border:1px solid rgba(0,240,255,.2);
  border-radius:10px;
  background:rgba(8,18,32,.72);
  padding:8px 10px;
}
.lb-profile-chip b{ display:block; font-size:.7rem; color:#8da8bc; font-weight:600; }
.lb-profile-chip span{ display:block; margin-top:2px; font-size:.9rem; color:#e2f7ff; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lb-profile-chip--rank{
  text-align:center;
}
.lb-profile-chip--hidden{
  display:none !important;
}
.lb-grade-card{
  margin: 0 0 12px;
  border: 1px solid rgba(0,240,255,.25);
  border-radius: 14px;
  background: radial-gradient(circle at 50% -20%, rgba(0,255,255,.15), transparent 60%), rgba(5,16,28,.6);
  box-shadow: inset 0 0 14px rgba(0,220,255,.08);
  padding: 12px 10px;
  text-align: center;
}
.lb-grade-card .lb-grade-label{
  font-size: .68rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color:#8fdaf2;
  margin-bottom: 8px;
}
.lb-grade-card img{
  width: 86px;
  height: 86px;
  border-radius: 50%;
  object-fit: cover;
  border: 1px solid rgba(0,240,255,.35);
  box-shadow: 0 0 18px rgba(0,255,255,.2);
  background: rgba(8,18,32,.75);
}
.lb-grade-name{
  margin-top: 8px;
  font-size: .9rem;
  font-weight: 700;
  color: #e6fbff;
}
.lb-grade-points{
  margin-top: 3px;
  font-size: .75rem;
  color:#9fc1d7;
}
.lb-grade-progress{
  margin: 10px auto 0;
  width: min(280px, 100%);
}
.lb-grade-progress-track{
  width: 100%;
  height: 9px;
  border-radius: 999px;
  border: 1px solid rgba(0,240,255,.28);
  background: rgba(8,18,32,.75);
  overflow: hidden;
}
.lb-grade-progress-fill{
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #20d6ff, #79f9ff);
  box-shadow: 0 0 12px rgba(70,240,255,.45);
  transition: width .25s ease;
}
.lb-grade-next{
  margin-top: 5px;
  font-size: .7rem;
  color:#8da8bc;
}
.lb-grade-inline{
  border: 1px solid rgba(0,240,255,.22);
  border-radius: 14px;
  background: radial-gradient(circle at 50% 0%, rgba(0,255,255,.10), transparent 58%), rgba(7,18,30,.72);
  padding: 12px 12px 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 6px;
}
.lb-grade-inline .lb-grade-pseudo{
  width: 100%;
  font-size: .94rem;
  font-weight: 800;
  color: #f2fdff;
  text-shadow: 0 0 10px rgba(0,240,255,.22);
  letter-spacing: .02em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lb-grade-inline .lb-grade-avatar-wrap{
  position: relative;
  width: 130px;
  height: 130px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 1px solid rgba(0,240,255,.38);
  box-shadow: 0 0 0 6px rgba(0,240,255,.07), 0 0 24px rgba(0,240,255,.16);
  background: rgba(8,18,32,.82);
}
.lb-grade-inline .lb-grade-avatar-mask{
  width:100%;
  height:100%;
  border-radius:50%;
  overflow:hidden;
  display:grid;
  place-items:center;
  position:relative;
  z-index:2;
}
.lb-grade-inline .lb-grade-rank-badge{
  position:absolute;
  top:-6px;
  right:calc(50% - 82px);
  min-width:56px;
  padding:6px 8px 5px;
  border-radius:12px;
  border:1px solid rgba(255,214,102,.58);
  background:linear-gradient(180deg, rgba(255,214,102,.22), rgba(120,78,10,.28));
  box-shadow:0 0 12px rgba(255,196,44,.22), inset 0 0 10px rgba(255,235,160,.10);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1px;
  z-index:2;
}
.lb-grade-inline .lb-grade-rank-badge__label{
  font-size:.56rem;
  line-height:1;
  letter-spacing:.04em;
  color:#ffe6a1;
  text-transform:uppercase;
  font-weight:700;
}
.lb-grade-inline .lb-grade-rank-badge__value{
  font-size:.9rem;
  line-height:1;
  color:#fff9de;
  font-weight:900;
  text-shadow:0 0 8px rgba(255,230,161,.22);
}
.lb-grade-inline #lbProfileGradeImage{
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  object-position: 50% 28%;
  transform: scale(1.44) translateY(-8px);
  transform-origin: center 40%;
  border: 0;
  box-shadow: none;
  background: transparent;
}
.lb-grade-inline #lbProfileGradeImage.lb-grade-appear{
  animation: lbGradePokemonAppear .62s cubic-bezier(.19,.85,.28,1);
}
@keyframes lbGradePokemonAppear{
  0%{
    opacity:0;
    transform: scale(.62) translateY(8px);
    filter: brightness(1.45) saturate(1.4);
  }
  55%{
    opacity:1;
    transform: scale(1.62) translateY(-10px);
    filter: brightness(1.12) saturate(1.18);
  }
  100%{
    opacity:1;
    transform: scale(1.44) translateY(-8px);
    filter: brightness(1) saturate(1);
  }
}
.lb-grade-inline .lb-grade-name{
  margin-top: 0;
  font-size: 1rem;
}
.lb-grade-title-row{
  margin-top: 4px;
  display:flex;
  justify-content:center;
}
.lb-grade-help-btn{
  appearance:none;
  -webkit-appearance:none;
  padding:0 !important;
  min-width:14px !important;
  min-height:14px !important;
  max-width:14px !important;
  max-height:14px !important;
  border-radius:50% !important;
  flex:0 0 14px;
  width:14px;
  height:14px;
  border:1px solid rgba(126,247,255,.45);
  background:rgba(0,240,255,.08);
  color:rgba(174,245,255,.95);
  font-weight:900;
  font-size:.5rem;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  box-shadow:none;
  margin-left:4px;
  vertical-align:middle;
}
.lb-grade-help-pop{
  position:absolute;
  right:6px;
  top:88px;
  z-index:25;
  width:min(230px, 72vw);
  border:1px solid rgba(0,240,255,.36);
  border-radius:12px;
  background:linear-gradient(180deg, rgba(7,20,34,.96), rgba(3,12,22,.96));
  padding:8px 10px;
  box-shadow:0 12px 28px rgba(0,0,0,.36), 0 0 20px rgba(0,240,255,.16);
}
.lb-grade-title-row .lb-grade-name{
  white-space:nowrap;
  text-align:center;
  margin:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.lb-grade-help-pop[hidden]{ display:none !important; }
.lb-grade-help-title{
  margin:0 0 6px;
  color:#86f7ff;
  font-size:.65rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:900;
}
.lb-grade-help-list{
  margin:0;
  padding:0;
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.lb-grade-help-list li{
  display:flex;
  justify-content:space-between;
  gap:8px;
  font-size:.68rem;
  color:#d9f4ff;
}
.lb-grade-help-list .v{ color:#7ef7ff; font-weight:800; white-space:nowrap; }
.lb-grade-inline .lb-grade-points{
  margin-top: 0;
  font-size: .88rem;
}
.lb-grade-inline .lb-grade-progress{
  margin-top: 4px;
  width: 100%;
}
.lb-grade-inline .lb-grade-progress-track{
  height: 8px;
}
.lb-grade-inline .lb-grade-next{
  margin-top: 5px;
  font-size: .74rem;
  line-height: 1.25;
}
.lb-ranking-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.lb-ranking-filter{
  width:auto;
  border-radius:9px;
  border:1px solid rgba(120,220,255,.32);
  background:rgba(6,16,28,.8);
  color:#dffbff;
  font-size:.74rem;
  padding:5px 7px;
}
.lb-ranking-podium{
  position: relative;
  margin: 10px auto 6px;
  display: flex;
  justify-content: center;
}
.lb-ranking-podium-visual{
  position: relative;
  width: 100%;
  max-width: 432px;
  margin: 0 auto;
  padding-top: 16px;
}
.lb-ranking-podium-art{
  width: 100%;
  height: auto;
  display: block;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  margin: 20px 0 0;
  object-fit: contain;
  filter: drop-shadow(0 8px 16px rgba(0,0,0,.35));
}
.lb-ranking-podium-item{
  position:absolute;
  z-index:2;
  text-align:center;
  min-width:0;
  max-width:34%;
  transform: translateX(-50%);
  pointer-events:none;
}
.lb-ranking-podium-item .podium-caption{
  display:grid;
  gap:2px;
  align-items:center; justify-items:center;
  background: rgba(3,14,28,.62);
  border:1px solid rgba(120,220,255,.26);
  border-radius:10px;
  padding:4px 6px;
  box-shadow: 0 6px 14px rgba(0,0,0,.25), inset 0 0 12px rgba(0,220,255,.1);
}
.lb-ranking-podium-item .pseudo{
  max-width: 100%;
  font-size:.7rem;
  font-weight:800;
  color:#eafcff;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.lb-ranking-podium-item .meta{
  font-size:.6rem;
  color:#bfe9ff;
  white-space:nowrap;
}
.lb-ranking-podium-item .podium-step{
  display:none;
}
.lb-ranking-podium-item .rank{
  display:none;
}
.lb-ranking-podium-item.pos-2{ left: 18%; top: 12px; }
.lb-ranking-podium-item.pos-1{ left: 50%; top: 4px; }
.lb-ranking-podium-item.pos-3{ left: 82%; top: 12px; }
@media (max-width: 420px){
  .lb-ranking-podium-visual{
    padding-top: 14px;
  }
  .lb-ranking-podium-art{
    margin-top: 20px;
  }
  .lb-ranking-podium-item .podium-caption{
    padding: 3px 5px;
    border-radius: 9px;
  }
  .lb-ranking-podium-item .pseudo{ font-size:.66rem; }
  .lb-ranking-podium-item .meta{ font-size:.56rem; }
}
.lb-ranking-list{
  display:grid;
  gap:4px;
  max-height:160px;
  overflow:auto;
}
.lb-ranking-row{
  display:grid;
  grid-template-columns:26px 1fr auto;
  gap:6px;
  align-items:center;
  border:1px solid rgba(0,240,255,.14);
  border-radius:9px;
  padding:5px 7px;
  background:rgba(8,18,32,.58);
  font-size:.73rem;
}
.lb-ranking-row.me{ color:#8df7ff; border-color: rgba(0,240,255,.35); }
.lb-rank-cell{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:22px;
}
.lb-rank-medal{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  filter: drop-shadow(0 0 6px rgba(0,240,255,.25));
}
.lb-rank-medal img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.lb-rank-medal--profile{
  width:48px;
  height:48px;
}

#lbAuthModal .lb-grade-inline .lb-grade-rank-badge{
  min-width:0 !important;
  padding:0 !important;
  border:none !important;
  background:transparent !important;
  box-shadow:none !important;
  top:8px !important;
  right:calc(50% - 56px) !important;
}
#lbAuthModal .lb-grade-inline .lb-grade-rank-badge__label{
  display:none !important;
}
#lbAuthModal .lb-grade-inline .lb-grade-rank-badge__value{
  color:inherit !important;
  text-shadow:none !important;
}

.lb-pseudo-trigger{
  display:inline-flex;
  align-items:center;
  max-width:140px;
  color:inherit;
  text-decoration:none;
  border-bottom:1px dotted rgba(120,220,255,.3);
  cursor:pointer;
}
.lb-pseudo-tooltip{
  position:fixed;
  z-index:3900;
  min-width:120px;
  max-width:170px;
  border:1px solid rgba(0,240,255,.45);
  background:rgba(4,14,24,.95);
  border-radius:10px;
  box-shadow:0 10px 24px rgba(0,0,0,.35), inset 0 0 10px rgba(0,220,255,.1);
  padding:7px 8px;
  font-size:.7rem;
  line-height:1.25;
  pointer-events:none;
}
.lb-pseudo-tooltip strong{
  display:block;
  color:#ddfbff;
  margin-bottom:3px;
  font-size:.74rem;
}

.lb-auth-actions{
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: center;
}

.lb-auth-actions .auth-button,
.lb-auth-switch button{
  width: min(240px, 100%);
}
#lbAuthModal .lb-auth-actions{
  align-items:center !important;
  gap: 7px !important;
}
#lbAuthModal .lb-auth-actions .auth-button{
  margin-inline:auto !important;
  text-align:center !important;
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height: 38px;
  padding: 8px 14px;
}
#lbAuthModal .lb-auth-actions #lbBtnSubmit,
#lbAuthModal .lb-auth-actions #lbBtnPrefs,
#lbAuthModal .lb-auth-actions #lbBtnRanking,
#lbAuthModal .lb-auth-actions #lbBtnLogout{
  width:min(220px,100%) !important;
  text-align:center !important;
}

.lb-auth-actions #lbBtnLogout{
  margin-inline: auto;
  justify-content: center;
  text-align: center;
}
.lb-auth-links{
  margin-top: 8px;
  font-size: 0.8rem;
  text-align: center;
}

.lb-auth-links a{
  color: #8fefff;
  text-decoration: underline;
}

.lb-auth-links--danger a{
  color: #ff9a9a;
}
#lbDeleteLinkWrap{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
#lbDeleteLinkWrap .lb-auth-link-safe{
  color:#7ef7ff;
  text-decoration:underline;
}
#lbDeleteLinkWrap .lb-auth-link-safe:hover{
  color:#b8fbff;
}

.lb-auth-switch{
  margin-top: 8px;
  display: grid;
  gap: 6px;
  text-align: center;
  justify-items: center;
}

.lb-auth-switch span{
  font-size: 0.75rem;
  color: #7f97b2;
}

.lb-auth-switch button{
  border: 1px solid rgba(120,220,255,.35);
  background: rgba(8,18,30,.7);
  color: #d7f9ff;
  padding: 8px 12px;
  border-radius: 12px;
  font-weight: 700;
  cursor: pointer;
  box-shadow: inset 0 0 14px rgba(0,220,255,.12);
}

#lbAuthModal .lb-auth-card{
  width: min(348px, 92vw);
  padding: 14px 14px 12px;
}
#lbAuthModal .lb-auth-msg{
  margin: 6px 0 10px;
  min-height: 18px;
  padding: 5px 9px;
}
#lbAuthModal .lb-profile-card{
  margin: 2px 0 10px;
  padding: 8px;
  gap: 6px;
}
#lbAuthModal .lb-auth-links--danger{
  margin-top: 6px;
}

#lbAuthModal{
  align-items: center;
  justify-content: center;
  padding:
    calc(var(--top-bar-height, 72px) + env(safe-area-inset-top, 0px) + 10px)
    10px
    calc(var(--bottom-bar-height, 84px) + env(safe-area-inset-bottom, 0px) + 10px);
  overflow-y: auto;
  box-sizing: border-box;
}
#lbAuthModal .lb-auth-card{
  width: min(352px, 94vw);
  max-height: calc(100dvh - var(--top-bar-height, 72px) - var(--bottom-bar-height, 84px) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 20px);
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  padding: 12px 12px 10px;
  border-radius: 18px;
}
#lbAuthModal .lb-auth-card h3{
  margin: 0 28px 4px 0;
  font-size: 1.18rem;
}
#lbAuthModal .lb-auth-msg{
  margin: 5px 0 8px;
  min-height: 16px;
  padding: 5px 8px;
  font-size: .74rem;
  line-height: 1.25;
}
#lbAuthModal .lb-profile-card{
  margin: 2px 0 9px;
  padding: 8px;
  gap: 6px;
  border-radius: 16px;
}
#lbAuthModal .lb-profile-title{
  font-size: .7rem;
}
#lbAuthModal .lb-profile-grid{
  grid-template-columns: 1fr;
}
#lbAuthModal .lb-profile-chip--rank{
  display:none !important;
}
#lbAuthModal .lb-grade-inline{
  padding: 9px 9px 8px;
  gap: 4px;
  border-radius: 16px;
}
#lbAuthModal .lb-grade-inline .lb-grade-pseudo{
  font-size: .84rem;
}
#lbAuthModal .lb-grade-inline .lb-grade-name{
  font-size: .88rem;
}
#lbAuthModal .lb-grade-inline .lb-grade-points{
  font-size: .76rem;
}
#lbAuthModal .lb-grade-inline .lb-grade-progress{
  margin-top: 2px;
}
#lbAuthModal .lb-grade-inline .lb-grade-progress-track{
  height: 7px;
}
#lbAuthModal .lb-grade-inline .lb-grade-next{
  margin-top: 4px;
  font-size: .64rem;
  line-height: 1.15;
}
#lbAuthModal .lb-profile-ranking-inline{
  display:none !important;
}
#lbAuthModal .lb-auth-actions{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:8px;
  align-items:stretch;
  margin-top: 8px;
}
#lbAuthModal .lb-auth-actions #lbBtnSubmit,
#lbAuthModal .lb-auth-actions #lbBtnPrefs,
#lbAuthModal .lb-auth-actions #lbBtnRanking,
#lbAuthModal .lb-auth-actions #lbBtnLogout,
#lbAuthModal .lb-auth-actions #lbBtnContact{
  width:100%;
  min-width:0;
  max-width:none;
  min-height:44px;
  margin:0;
  padding:8px 10px;
  font-size:.86rem;
  line-height:1.12;
  justify-content:center;
  text-align:center;
  white-space:normal;
}
#lbAuthModal .lb-auth-actions #lbBtnLogout{
  grid-column: 1 / -1;
  width: min(240px, 100%);
  justify-self: center;
}
#lbAuthModal .lb-auth-actions #lbBtnContact{
  grid-column: 1 / -1;
}
#lbAuthModal .lb-auth-links{
  margin-top: 8px;
}
#lbAuthModal .lb-auth-links a{
  font-size: .78rem;
}
#lbAuthModal .lb-auth-links--danger{
  margin-top: 5px;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:8px 12px;
}
#lbAuthModal .lb-auth-links--danger a{
  font-size:.76rem;
}
#lbAuthModal .lb-account-box{
  margin-top: 10px;
  padding: 10px;
}
#lbAuthModal .lb-account-box h4{
  font-size: .84rem;
  margin-bottom: 6px;
}
#lbAuthModal .lb-account-box input{
  padding: 8px 10px;
  margin-bottom: 6px;
}
#lbAuthModal .lb-account-box .delete-button{
  width:100%;
  max-width:none;
  min-width:0;
  margin:0;
  min-height:40px;
  padding:8px 10px;
  font-size:.82rem;
}
#lbAuthModal .lb-grade-inline .lb-grade-rank-badge__value{
  font-size:.8rem;
}
@media (max-width: 420px){
  #lbAuthModal{
    padding-left:8px;
    padding-right:8px;
    padding-top: calc(var(--top-bar-height, 64px) + env(safe-area-inset-top, 0px) + 8px);
    padding-bottom: calc(var(--bottom-bar-height, 84px) + env(safe-area-inset-bottom, 0px) + 8px);
  }
  #lbAuthModal .lb-auth-card{
    width:min(336px, 100%);
    max-height: calc(100dvh - var(--top-bar-height, 64px) - var(--bottom-bar-height, 84px) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 16px);
    padding: 11px 10px 9px;
    border-radius: 16px;
  }
  #lbAuthModal .lb-auth-card h3{
    font-size: 1.1rem;
  }
  #lbAuthModal .lb-auth-actions{
    gap:7px;
  }
  #lbAuthModal .lb-auth-actions #lbBtnSubmit,
  #lbAuthModal .lb-auth-actions #lbBtnPrefs,
  #lbAuthModal .lb-auth-actions #lbBtnRanking,
  #lbAuthModal .lb-auth-actions #lbBtnLogout,
  #lbAuthModal .lb-auth-actions #lbBtnContact{
    min-height:40px;
    padding:7px 8px;
    font-size:.8rem;
  }
}

.lb-auth-switch button:hover{
  box-shadow: 0 0 18px rgba(0,220,255,.25);
}

.lb-prefs-note{
  font-size: 0.85rem;
  color: #aab6c8;
  margin: 0 0 12px;
}

.lb-prefs-grid{
  display: grid;
  gap: 12px;
  margin-bottom: 12px;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.lb-prefs-section label{
  font-size: .82rem;
  color: #9fb4c9;
}

.lb-prefs-grid input,
.lb-prefs-grid select{
  width: 100%;
  padding: 9px 12px;
  border-radius: 10px;
  border: 1px solid rgba(120,220,255,.35);
  background: rgba(6,16,28,.8);
  color: #e6f7ff;
  font-size: 0.85rem;
  line-height: 1.2;
  box-shadow: inset 0 0 12px rgba(0,220,255,.12);
  box-sizing: border-box;
}

.lb-prefs-section{
  display: grid;
  gap: 6px;
  padding: 12px;
  border-radius: 14px;
  border: 1px solid rgba(120,220,255,.3);
  background: rgba(6,16,28,.7);
  box-shadow: inset 0 0 14px rgba(0,220,255,.12);
}

.lb-prefs-section--optional{
  display: none;
}

.lb-prefs-section-title{
  font-size: 0.85rem;
  font-weight: 700;
  color: #d7f9ff;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.lb-prefs-section small{
  color: #8fa4bd;
  font-size: 0.75rem;
  line-height: 1.2;
}

.lb-prefs-options{
  display: grid;
  gap: 10px;
  margin-bottom: 12px;
}
.lb-prefs-utility{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-bottom: 12px;
}

.lb-prefs-add{
  width: auto;
  margin: 0;
  border: 1px dashed rgba(120,220,255,.45);
  background: rgba(6,16,28,.65);
  color: #d7f9ff;
  padding: 7px 12px;
  border-radius: 12px;
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  box-shadow: inset 0 0 12px rgba(0,220,255,.12);
}

.lb-prefs-add:hover{
  box-shadow: 0 0 18px rgba(0,220,255,.25);
}

.lb-prefs-reset{
  width: auto;
  margin: 0;
  border: 1px solid rgba(255,200,120,.5);
  background: rgba(30,18,8,.65);
  color: #ffd9a6;
  padding: 7px 12px;
  border-radius: 12px;
  font-weight: 700;
  font-size: 0.85rem;
  cursor: pointer;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  box-shadow: inset 0 0 12px rgba(255,200,120,.12);
}

.lb-prefs-reset:hover{
  box-shadow: 0 0 18px rgba(255,200,120,.25);
}

.lb-prefs-checkbox{
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 0.85rem;
  color: #c6d6e5;
}
#lbPrefsModal .lb-auth-card{
  max-height: min(90vh, 820px);
  overflow-y: auto;
}


#lbPrefsModal{
  align-items:center !important;
  justify-content:center !important;
  padding-top: calc(var(--top-bar-height, 72px) + 14px) !important;
  padding-bottom: calc(var(--bottom-bar-height, 84px) + 14px) !important;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
#lbPrefsModal .lb-auth-card{
  width: min(760px, calc(100vw - 18px)) !important;
  max-height: calc(100dvh - var(--top-bar-height, 72px) - var(--bottom-bar-height, 84px) - 28px) !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  padding: 14px 14px 16px !important;
  border-radius: 18px !important;
}
#lbPrefsModal #lbPrefsTitle{
  padding-right: 36px;
  margin-bottom: 8px;
}
#lbPrefsModal #lbPrefsGradeCard{
  display: none !important;
}
#lbPrefsModal .lb-prefs-note{
  margin: 0 0 10px;
}
#lbPrefsModal .lb-prefs-grid{
  gap: 10px;
  margin-bottom: 10px;
}
#lbPrefsModal .lb-prefs-section{
  padding: 10px;
  gap: 5px;
  border-radius: 12px;
}
#lbPrefsModal .lb-prefs-grid input,
#lbPrefsModal .lb-prefs-grid select,
#lbPrefsModal .lb-prefs-section input,
#lbPrefsModal .lb-prefs-section select{
  padding: 8px 10px;
  border: 1px solid rgba(120,220,255,.38);
  background: linear-gradient(180deg, rgba(7,20,34,.9), rgba(5,16,28,.88));
  color: #e6f7ff;
  box-shadow: inset 0 0 12px rgba(0,220,255,.14);
}
#lbPrefsModal .lb-prefs-grid input::placeholder,
#lbPrefsModal .lb-prefs-section input::placeholder{
  color: rgba(168, 208, 224, .72);
}
#lbPrefsModal .lb-prefs-grid input:-webkit-autofill,
#lbPrefsModal .lb-prefs-section input:-webkit-autofill{
  -webkit-text-fill-color: #e6f7ff;
  -webkit-box-shadow: 0 0 0 1000px rgba(7,20,34,.95) inset;
  transition: background-color 9999s ease-out 0s;
}
#lbPrefsModal .lb-prefs-utility{
  margin-top: 8px !important;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
#lbPrefsModal .lb-prefs-utility > *{
  width: 100%;
  margin: 0;
}
#lbPrefsModal .lb-auth-actions{
  display:grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 10px;
}
#lbPrefsModal .lb-auth-actions > *{
  width: 100%;
  margin: 0 !important;
}
@media (max-width: 600px){
  #lbPrefsModal{
    padding-top: calc(var(--top-bar-height, 64px) + 10px) !important;
    padding-bottom: calc(var(--bottom-bar-height, 84px) + 10px) !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
  #lbPrefsModal .lb-auth-card{
    width: calc(100vw - 16px) !important;
    max-height: calc(100dvh - var(--top-bar-height, 64px) - var(--bottom-bar-height, 84px) - 20px) !important;
    padding: 12px 10px 12px !important;
    border-radius: 16px !important;
  }
  #lbPrefsModal .lb-prefs-grid{
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  #lbPrefsModal .lb-prefs-section{
    padding: 9px !important;
    gap: 4px !important;
  }
  #lbPrefsModal .lb-prefs-utility,
  #lbPrefsModal .lb-auth-actions{
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }
  #lbPrefsModal .lb-prefs-note,
  #lbPrefsModal .lb-prefs-section small{
    font-size: .72rem;
    line-height: 1.15;
  }
}

.lb-prefs-remove{
  justify-self: start;
  border: 1px solid rgba(255,120,120,.35);
  background: rgba(40,10,16,.7);
  color: #ffb8b8;
  padding: 6px 10px;
  border-radius: 10px;
  font-weight: 600;
  cursor: pointer;
}

.lb-prefs-remove:hover{
  box-shadow: 0 0 16px rgba(255,120,120,.35);
}
.lb-prefs-build{
  justify-self: start;
  border: 1px dashed rgba(120,220,255,.45);
  background: rgba(6,16,28,.65);
  color: #d7f9ff;
  padding: 6px 10px;
  border-radius: 10px;
  font-weight: 600;
  cursor: pointer;
  box-shadow: inset 0 0 10px rgba(0,220,255,.12);
}
.lb-prefs-build:hover{
  box-shadow: 0 0 16px rgba(0,220,255,.35);
}
#presetBuilderModal .lb-auth-card{
  width: min(420px, 94vw);
}
#presetBuilderModal .lb-prefs-note{
  margin-bottom: 8px;
  font-size: .76rem;
  line-height: 1.2;
}
#presetBuilderModal .lb-auth-fields{
  gap: 7px;
}
#presetBuilderModal .lb-auth-fields input{
  background: linear-gradient(180deg, rgba(7,20,34,.9), rgba(5,16,28,.88));
  border: 1px solid rgba(120,220,255,.38);
  color: #e6f7ff;
  box-shadow: inset 0 0 12px rgba(0,220,255,.14);
}
#presetBuilderModal .lb-auth-actions{
  margin-top: 8px;
}
.preset-btn--add{
  border-style: dashed;
  opacity: 0.85;
  padding: 8px 14px;
}
.preset-btn--add:hover{
  opacity: 1;
}
.lb-account-box{
  margin-top: 16px;
  padding: 12px;
  border-radius: 10px;
  border: 1px solid rgba(255,120,120,.35);
  background: rgba(255,80,80,.08);
  display: none;
}

.lb-account-box h4{
  margin: 0 0 8px;
  color: #ffb0b0;
  font-size: 0.95rem;
}

.lb-account-box input{
  width: 100%;
  padding: 10px 12px;
  border-radius: 8px;
  border: 1px solid rgba(255,120,120,.35);
  background: #0b0f1a;
  color: #e6f7ff;
  box-shadow: inset 0 0 10px rgba(255,120,120,.12);
  margin-bottom: 8px;
}

.lb-account-box .delete-button{
  background: linear-gradient(135deg, rgba(255,70,70,.8), rgba(190,30,30,.9));
  border-color: rgba(255,120,120,.75);
}

.lb-account-box .delete-button:hover{
  box-shadow: 0 0 22px rgba(255,120,120,.5);
}

.lb-account-box .delete-msg{
  font-size: 0.85rem;
  color: #ffd1d1;
  min-height: 18px;
}

.rgpd{
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 0.85rem;
  color: #c6d6e5;
  line-height: 1.4;
}

.rgpd input{
  margin-top: 3px;
  accent-color: #00ffff;
}

.rgpd a{
  color: #7ce9ff;
}

.rapid-preset-row{
  flex-wrap: wrap;
}

#lbPrefsModal .lb-auth-actions{
  gap: 10px;
}

@media (max-width: 600px){
  .hero-compact .auth-actions{
    position: static;
    transform: none;
    margin-top: 10px;
    justify-content: center;
  }
 .lb-prefs-grid{
    gap: 10px;
  }
  .lb-prefs-section{
    gap: 4px;
    padding: 10px;
  }
  .lb-prefs-section-title{
    margin-bottom: 2px;
  }
  .lb-auth-modal{
    padding: 12px;
  }
  .lb-auth-card{
    width: min(320px, 94vw);
    padding: 16px;
    border-radius: 16px;
  }
  .lb-auth-card h3{
    font-size: 1.15rem;
  }
  .lb-auth-fields{
    gap: 8px;
  }
  .lb-auth-fields input{
    padding: 8px 10px;
    font-size: 0.82rem;
  }
  .lb-auth-actions{
    gap: 8px;
  }
  .auth-button{
    padding: 10px 14px;
  }
  .rapid-preset-row{
    gap: 8px;
  }
  .rapid-preset-row .preset-btn{
    flex: 1 1 auto;
  }
  .lb-prefs-utility{
    gap: 8px;
  }
}
.footer-counter-wrapper {
  margin-top: 18px;
  display: flex;
  justify-content: flex-end;
}

.footer-counter {
  font-size: 0.9em;
  color: #7ac7d9;
  padding: 6px 10px;
  border-radius: 10px;
  background: rgba(0, 240, 255, 0.04);
  border: 1px solid rgba(0, 240, 255, 0.12);
  box-shadow: inset 0 0 6px rgba(0, 240, 255, 0.08);
}

.legal-links{
  display: flex;
  justify-content: center;
  gap: 16px;
  font-size: 0.85em;
  margin-top: 1.5em;
}

.legal-links a{
  color: #8fefff;
  text-decoration: underline;
}


/* Rendre le bas de page plus "app" tout en gardant les infos légales visibles */
#bottom-bar,
.footer-counter-wrapper{
  display:none;
}

/* Mentions légales/confidentialité toujours accessibles */
.legal-links{ display:flex; }
#siteLicense{ display:block; }
.cookie-banner{
  position: fixed;
  isolation:isolate;
  left: 16px;
  right: 16px;
  bottom: 16px;
  z-index: 2800;
  padding: 12px 16px;
  border-radius: 14px;
  border: 1px solid rgba(120,220,255,.35);
  background: linear-gradient(155deg, rgba(6,18,30,.92), rgba(4,10,20,.88));
  box-shadow: 0 0 18px rgba(0,220,255,.18);
  color: #cfefff;
  font-size: 0.78rem;
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: space-between;
  flex-wrap: wrap;
}
.cookie-banner[hidden]{
  display: none !important;
}

.cookie-banner__close{
  position:absolute;
  top:7px;
  right:9px;
  width:18px;
  height:18px;
  border:none;
  border-radius:999px;
  background: transparent;
  color: rgba(210,245,255,.8);
  font-size: 11px;
  line-height: 1;
  cursor:pointer;
}
.cookie-banner__close:hover{ background: rgba(120,220,255,.12); color:#fff; }

.cookie-banner p{
  margin: 0;
  flex: 1 1 240px;
  padding-right: 22px;
}

.cookie-banner a{
  color: #8fefff;
  text-decoration: underline;
}

.cookie-banner__actions{
  display: inline-flex;
  gap: 8px;
  align-items: center;
}

.cookie-banner__actions button{
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 0.78rem;
  border: 1px solid rgba(120,220,255,.4);
  background: rgba(6,18,30,.7);
  color: #dffcff;
  cursor: pointer;
  box-shadow: inset 0 0 10px rgba(0,220,255,.12);
}

.cookie-banner__actions button:hover{
  box-shadow: 0 0 16px rgba(0,220,255,.25);
}

.cookie-banner__actions .cookie-accept{
  background: linear-gradient(135deg, rgba(0,220,255,.35), rgba(0,120,255,.35));
  border-color: rgba(0,220,255,.6);
}

@media (max-width: 600px){
  .cookie-banner{
    left: 12px;
    right: 12px;
    bottom: 12px;
    padding: 10px 12px;
    font-size: 0.74rem;
  }
  .cookie-banner__actions{
    width: 100%;
    justify-content: flex-end;
  }
}

/* ======================= */
/* Stats (style Tron) */
/* ======================= */
.stats-shell{
  position: relative;
  margin: 0;
  padding: 0;
  border-radius: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.stats-shell::before{
  content:"";
  position:absolute;
  inset:0;
  background-image: url("pattern/asfalt-light.png");
  opacity:0;
  pointer-events:none;
}
.stats-shell > *{ position: relative; z-index:1; }
.stats-header{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:14px;
  margin-bottom: 16px;
}
.stats-header h2{
  margin:0;
  font-size:1.4rem;
  color:#9ffcff;
  text-shadow:0 0 10px rgba(0,240,255,0.6);
}
.stats-header p{
  margin:6px 0 0;
  color:#b9e9ff;
  font-size:0.9rem;
}
.stats-chip{
  padding:6px 12px;
  border-radius:999px;
  background: rgba(0,240,255,0.12);
  border:1px solid rgba(0,240,255,0.4);
  font-size:0.75rem;
  color:#d9feff;
  text-transform:uppercase;
  letter-spacing:0.08em;
}
.stats-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:flex-end;
  padding:14px;
  border-radius:16px;
  background: rgba(8,20,32,0.8);
  border:1px solid rgba(0,240,255,0.2);
  box-shadow: inset 0 0 12px rgba(0,240,255,0.12);
}
.stats-field{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width: 170px;
}
.stats-field label{
  font-size:0.72rem;
  color:#8fdfff;
  letter-spacing:0.04em;
}
.stats-input,
.stats-select{
  border:1px solid rgba(0,240,255,0.35);
  border-radius:10px;
  padding:10px 12px;
  background: rgba(5,12,20,0.9);
  color:#e8fbff;
  font: inherit;
}
.stats-button{
  border:1px solid rgba(0,240,255,0.55);
  border-radius:999px;
  padding:10px 16px;
  background: linear-gradient(135deg, rgba(0,220,255,0.35), rgba(0,140,255,0.4));
  color:#00121d;
  font-weight:800;
  cursor:pointer;
  box-shadow: 0 0 18px rgba(0,220,255,0.32);
  text-transform:uppercase;
  letter-spacing:0.06em;
}
.stats-button.secondary{
  background: rgba(6,16,26,0.9);
  color:#c8f8ff;
  border-color: rgba(0,240,255,0.28);
  box-shadow: inset 0 0 10px rgba(0,240,255,0.12);
}
.stats-button:disabled{ opacity:0.6; cursor:not-allowed; }
.stats-status{
  font-size:0.78rem;
  color:#9adfff;
  margin-left:auto;
}
.stats-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:18px 0 12px;
}
.stats-tabbtn{
  padding:8px 16px;
  border-radius:999px;
  background: rgba(5,15,26,0.85);
  border:1px solid rgba(0,240,255,0.35);
  color:#cfffff;
  cursor:pointer;
  font-weight:700;
  letter-spacing:0.02em;
}
.stats-tabbtn.active{
  background: rgba(0,45,62,0.9);
  color:#ffffff;
  border-color:#00ffff;
  box-shadow:0 0 16px rgba(0,240,255,0.4);
}
.stats-tabcontent{ display:none; }
.stats-tabcontent.active{ display:block; }
.stats-warning,
.stats-ok{
  padding:12px 14px;
  border-radius:14px;
  font-size:0.85rem;
  border:1px solid rgba(0,240,255,0.2);
  background: rgba(6,18,30,0.82);
  color:#dffbff;
  margin:10px 0;
}
.stats-warning strong{ color:#ffd27a; }
.stats-ok{ border-color: rgba(0,240,255,0.45); }
.stats-grid-kpi{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:10px;
}
.stats-kpi{
  padding:12px;
  border-radius:14px;
  border:1px solid rgba(0,240,255,0.2);
  background: rgba(6,16,28,0.88);
  box-shadow: inset 0 0 10px rgba(0,240,255,0.12);
}
.stats-kpi .t{
  font-size:0.7rem;
  color:#9adfff;
  text-transform:uppercase;
  letter-spacing:0.08em;
}
.stats-kpi .v{
  font-size:1.4rem;
  font-weight:800;
  margin-top:6px;
  color:#e8fbff;
}
.stats-grid-charts,
.stats-grid-lists{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:10px;
}
.stats-card,
.stats-listbox,
.stats-table{
  border-radius:16px;
  border:1px solid rgba(0,240,255,0.2);
  background: rgba(5,13,24,0.88);
  padding:12px;
  box-shadow: inset 0 0 12px rgba(0,240,255,0.12);
}
.stats-card .head,
.stats-listbox .h{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:10px;
}
.stats-card .title,
.stats-listbox .name{
  font-size:0.85rem;
  font-weight:700;
  color:#e8fbff;
}
.stats-card .meta,
.stats-listbox .count{
  font-size:0.72rem;
  color:#89d9ff;
}
.stats-canvas{
  height:240px;
  margin-top:8px;
}
.stats-pills{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  max-height:96px;
  overflow-y:auto;
  overflow-x:hidden;

}
  .stats-pill{
  border:1px solid rgba(0,240,255,0.25);
  border-radius:999px;
  padding:6px 10px;
  font-size:0.72rem;
  background: rgba(8,22,32,0.9);
  color:#d2f7ff;
  cursor:pointer;
  min-width:0;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
@media (min-width: 1025px){
  .stats-pills{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    grid-auto-flow:row;
    align-items:center;
    gap:4px;
    max-height:72px;

  }
  .stats-pill{
    padding:4px 8px;
    font-size:0.68rem;
  }
}
  .stats-pill:hover{
    box-shadow:0 0 10px rgba(0,240,255,0.25);
  }
.stats-pill:active{
  transform:scale(0.98);
}
.stats-table-top{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
  justify-content:space-between;
}
.stats-table table{
  width:100%;
  border-collapse:collapse;
  margin-top:10px;
  font-size:0.82rem;
}
.stats-table th,
.stats-table td{
  padding:8px 6px;
  border-bottom:1px solid rgba(0,240,255,0.12);
}
.stats-table th{
  color:#8fdfff;
  text-align:left;
  font-weight:700;
}
.stats-table th.num{
  text-align:right;
}
.stats-table td.num{
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.stats-table tr:hover td{
  background: rgba(0,120,160,0.12);
}
.stats-mini{
  font-size:0.72rem;
  color:#8fdfff;
}
.stats-hide{ display:none !important; }
.stats-express{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.stats-express-head{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
}
.stats-range{
  display:none;
  gap:6px;
  flex:1;
  width:100%;
  max-width:320px;
  margin:0 auto;
  box-sizing:border-box;
  overflow:hidden;
  padding:4px;
  border-radius:999px;
  background: rgba(0,255,255,0.08);
  box-shadow: inset 0 0 12px rgba(0,255,255,0.15);;
}
.stats-range button{
  flex:1;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  border:none;
  border-radius:999px;
  padding:10px 0;
  background: transparent;
  color:#7fdde0;
  font-weight:600;;
  cursor:pointer;
  font-size:0.78rem;
  letter-spacing:0.02em;
  transition: all 0.25s ease;;
}
.stats-range button.active{
  background: linear-gradient(135deg,#00e5ff,#00bcd4);
  color:#001a1f;
  box-shadow:0 0 14px rgba(0,229,255,0.7);
}
.stats-express-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.stats-express-actions{
  display:flex;
  justify-content:center;
  margin-top:10px;
}
.stats-express-card{
  border-radius:16px;
  border:1px solid rgba(0,240,255,0.2);
  background: rgba(5,13,24,0.9);
  padding:14px;
  box-shadow: inset 0 0 12px rgba(0,240,255,0.12);
  display:flex;
  flex-direction:column;
  gap:12px;
  min-height:220px;
  min-width:0;
  overflow:hidden;
}
.stats-express-card .head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:10px;
}
.stats-express-card .head h3{
  margin:0;
  font-size:0.92rem;
  color:#e8fbff;
}
.stats-express-card .meta{
  font-size:0.75rem;
  color:#89d9ff;
}
.stats-express-canvas{
  position:relative;
  height:220px;
  width:100%;
}
.stats-express-canvas canvas{
  width:100% !important;
  height:100% !important;
  display:block;
}
.stats-express-legend{
  display:flex;
  flex-wrap:wrap;
  gap:8px 12px;
  justify-content:center;
  padding-top:8px;
  border-top:1px solid rgba(0,240,255,0.18);
}
.stats-express-legend .item{
  display:flex;
  align-items:center;
  gap:6px;
  font-size:0.72rem;
  color:#9adfff;
}
.stats-express-legend .dot{
  width:10px;
  height:10px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,0.2);
}
.stats-trend{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.stats-trend.is-up .stats-trend-delta .v,
.stats-trend.is-up .stats-trend-text .state{
  color:#39f78c;
  text-shadow:0 0 10px rgba(57,247,140,0.45);
}
.stats-trend.is-down .stats-trend-delta .v,
.stats-trend.is-down .stats-trend-text .state{
  color:#ff6363;
  text-shadow:0 0 10px rgba(255,99,99,0.45);
}
.stats-trend.is-flat .stats-trend-delta .v,
.stats-trend.is-flat .stats-trend-text .state{
  color:#ffd166;
  text-shadow:0 0 10px rgba(255,209,102,0.35);
}
.stats-trend-toggle{
  display:flex;
  gap:6px;
  padding:4px;
  border-radius:999px;
  border:1px solid rgba(0,240,255,0.28);
  background: rgba(3,12,20,0.7);
  box-shadow: inset 0 0 10px rgba(0,240,255,0.16);
  width:fit-content;
}
.stats-trend-toggle .toggle-btn{
  border:none;
  background: transparent;
  color:#bdefff;
  font-size:0.68rem;
  font-weight:700;
  padding:6px 10px;
  border-radius:999px;
  cursor:pointer;
  transition: background 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}
.stats-trend-toggle .toggle-btn.active{
  background: rgba(0,210,255,0.18);
  color:#ffffff;
  box-shadow:0 0 10px rgba(0,240,255,0.3), inset 0 0 10px rgba(0,240,255,0.2);
}
.stats-trend-panel{
  display:none;
  flex-direction:column;
  gap:12px;
}
.stats-trend-panel.is-active{
  display:flex;
}
.stats-trend-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
}
.stats-trend-left{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  flex:1;
}
.stats-trend-led{
  width:14px;
  height:14px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,0.18);
  box-shadow:0 0 12px rgba(0,0,0,0.35);
}
.stats-trend-text{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.stats-trend-text .state{
  font-size:1rem;
  font-weight:800;
  color:#e8fbff;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.stats-trend-text .sub{
  font-size:0.72rem;
  color:#89d9ff;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.stats-trend-delta{
  min-width:0;
  text-align:right;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(0,240,255,0.18);
  background: rgba(5,15,26,0.8);
}
.stats-trend-delta .k{
  font-size:0.68rem;
  color:#8fdfff;
}
.stats-trend-delta .v{
  font-size:1.1rem;
  font-weight:800;
  margin-top:0;
}
.stats-trend-facts{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
.stats-trend-fact{
  border:1px solid rgba(0,240,255,0.18);
  background: rgba(5,15,26,0.75);
  border-radius:12px;
  padding:10px 12px;
}
.stats-trend-fact .k{
  font-size:0.7rem;
  color:#89d9ff;
}
.stats-trend-fact .v{
  font-size:0.95rem;
  font-weight:800;
  margin-top:4px;
}
.stats-trend-fact .s{
  font-size:0.72rem;
  color:#89d9ff;
  margin-top:4px;
}
.stats-details{
  margin-top:18px;
}
.stats-chart-picker{
  display:none;
}

@media (max-width: 1200px){
  .stats-grid-kpi{ grid-template-columns:repeat(3,minmax(0,1fr)); }
  .stats-grid-charts,
  .stats-grid-lists{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 720px){
  .stats-express-grid{
    grid-template-columns:1fr;
  }
  .stats-tabs{
    display:flex;
    flex-wrap:nowrap;
    gap:8px;
  }
  .stats-tabbtn{
    flex:1 1 0;
    min-width:0;
    width:auto;
    text-align:center;
    padding:8px 10px;
    font-size:0.78rem;
    white-space:nowrap;
  }
  .stats-pill{
    padding:4px 8px;
    font-size:0.66rem;
  }
  .stats-range{
    display:flex;
  }
  .stats-express-card[data-punctuality-card]{
    display:none;
  }
  .stats-shell[data-punctuality-mode="7d"] .stats-express-card[data-punctuality-card="7d"],
  .stats-shell[data-punctuality-mode="yesterday"] .stats-express-card[data-punctuality-card="yesterday"]{
    display:flex;
  }
  .stats-trend-delta{
    min-width:86px;
    padding:8px 10px;
  }
  .stats-toolbar{
    padding:12px;
    flex-direction:column;
    align-items:stretch;
  }
  .stats-field{ min-width:0; width:100%; }
  .stats-button{ width:100%; }

  .stats-grid-kpi{
    grid-template-columns:none;
    grid-auto-flow:column;
    grid-auto-columns:minmax(180px, 70vw);
    overflow-x:auto;
    padding-bottom:8px;
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
  }
  .stats-kpi{ scroll-snap-align:start; }

  .stats-grid-charts,
  .stats-grid-lists{
    grid-template-columns:1fr;
    grid-auto-flow:row;
    overflow-x:visible;
    scroll-snap-type:none;
  }
  .stats-chart-picker{
    display:flex;
    gap:8px;
    align-items:center;
    margin:8px 0 12px;
  }
  .stats-chart-picker label{
    color:#9ffcff;
    font-size:0.8rem;
  }
  .stats-chart-picker select{
    flex:1;
    min-width:0;
    background:rgba(8, 18, 35, 0.8);
    color:#e8fbff;
    border:1px solid rgba(125, 224, 255, 0.35);
    border-radius:10px;
    padding:8px 10px;
  }
  .stats-grid-charts .stats-card{
    display:none;
  }
  .stats-grid-charts .stats-card.is-active{
    display:block;
  }
  .stats-card,
  .stats-listbox,
  .stats-table{
    min-width:0;
    scroll-snap-align:start;
  }
  .stats-canvas{ height:220px; }

  .stats-pill{
    padding:4px 8px;
    font-size:0.66rem;
  }

  .stats-listbox .name{
    font-size:0.8rem;
  }

  .stats-listbox .count{
    font-size:0.68rem;
  }

  .stats-pills{
    max-height:120px;
  }
}

@media (max-width: 600px){
  .stats-grid-lists{
    grid-template-columns:1fr;
    grid-auto-flow:row;
    overflow-x:visible;
    scroll-snap-type:none;
  }
  .stats-listbox{
    min-width:0;
  }
}

@media (max-width: 768px){
  body{
    padding: calc(var(--top-bar-height, 64px) + 16px) 12px calc(var(--bottom-bar-height, 70px) + 16px);
    max-width: 100%;
  }

  #trainInfo table th,
  #trainInfo table td{
    font-size: 11px;
    padding: 4px 4px;
  }

  #trainInfo table{
    table-layout: fixed;
    width: max-content;
    min-width: 100%;
    overflow: visible;
    border-collapse: separate;
    border-spacing: 0;
  }

  #trainInfo table th,
  #trainInfo table td{
    width: 56px;
    min-width: 56px;
    max-width: 72px;
    white-space: nowrap;
  }

  #trainInfo table{
    box-shadow: 0 0 18px #00f0ff88, 0 0 26px #00ffff88;
  }

  #trainInfo{
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
  }

  #trainInfo .table-scroll{
    width: 100vw;
    border-radius: 10px;
  }

  #trainInfo table th:first-child,
  #trainInfo table td:first-child{
    width: 130px;
    min-width: 130px;
    max-width: 160px;
    position: sticky;
    left: 0;
    z-index: 2;
    background: #0b0f1a;
    box-shadow: 6px 0 10px rgba(0, 240, 255, 0.12);
    white-space: nowrap;
  }

#trainInfo table thead th:first-child{ z-index: 10; }
}

#trainInfo{
  scroll-margin-top: calc(var(--top-bar-height, 72px) + 16px);
  scroll-margin-bottom: calc(var(--bottom-bar-height, 78px) + 16px);
  margin-bottom: calc(var(--bottom-bar-height, 78px) + 16px);
}

.stats-status-on-time{
  color: #39f78c;
  font-weight: 700;
  text-shadow: 0 0 8px rgba(57,247,140,0.45);
}

.stats-status-delayed{
  color: #facc15;
  font-weight: 700;
  text-shadow: 0 0 8px rgba(250,204,21,0.35);
}

.stats-status-partial{
  color: #f97316;
  font-weight: 700;
  text-shadow: 0 0 8px rgba(249,115,22,0.35);
}

.stats-status-canceled{
  color: #ef4444;
  font-weight: 700;
  text-shadow: 0 0 8px rgba(239,68,68,0.45);
}



/* ===== Widget Favoris (Matin/Soir) ===== */
.fav-widget{
  margin: 14px auto;
  max-width: 1100px;
  padding: 12px;
  border-radius: 14px;
  border: 1px solid rgba(0,255,255,.18);
  background: rgba(8,14,28,.62);
  box-shadow: 0 10px 35px rgba(0,0,0,.35);
}
.fav-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
  flex-wrap: wrap;
}
.fav-title{
  font-weight: 800;
  letter-spacing: .02em;
  color: #dffcff;
}
.fav-btn{
  border: 1px solid rgba(0,255,255,.35);
  background: rgba(0,255,255,.08);
  color: #bff;
  border-radius: 10px;
  padding: 8px 10px;
  cursor: pointer;
  font-weight: 700;
}
.fav-grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.fav-card{
  border-radius: 14px;
  border: 1px solid rgba(0,255,255,.14);
  background: rgba(3,8,18,.55);
  padding: 10px;
  min-width: 0;
  box-sizing: border-box;
  overflow: hidden;
}
.fav-card.is-delayed{
  border-color: rgba(255,146,43,.82);
  background: linear-gradient(180deg, rgba(33,24,12,.72), rgba(18,14,10,.90));
}
.fav-card.is-canceled{
  border-color: rgba(255,77,109,.85);
  background: linear-gradient(180deg, rgba(34,14,20,.72), rgba(18,10,14,.90));
}
.fav-card-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; min-width:0; }
.fav-train-block{
  display:grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-width:0;
  width:100%;
}
.fav-train-badge{
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  justify-content:flex-end;
  width:auto;
  max-width:52%;
}
.fav-tag{
  font-size: .85rem;
  font-weight: 900;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(0,255,255,.10);
  color: #0ff;
  display:none;
}
.fav-train{
  font-weight: 900;
  color:#fff;
  max-width:100%;
  font-size:1.08rem;
  line-height:1.05;
  letter-spacing:.03em;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-align:left;
}
.fav-train-badge .fav-type-wrap{
  margin-left:0 !important;
  gap:6px !important;
}
.fav-train-badge .fav-state-badge,
.fav-train-badge .fav-type-badge{
  margin:0 !important;
}
.fav-meta{ margin-top: 8px; color:#b9c8d8; font-size:.95rem; overflow-wrap:anywhere; }
.fav-primary-route{
  font-size:1.02rem;
  font-weight:900;
  line-height:1.15;
  color:#e7fbff;
}
.fav-primary-times{
  margin-top:5px;
  font-size:1rem;
  font-weight:900;
  color:#8ff8ff;
  letter-spacing:.02em;
  font-variant-numeric: tabular-nums;
}
.fav-mini-alert{
  margin-top:6px;
  display:inline-flex;
  align-items:center;
  padding:2px 8px;
  border-radius:999px;
  border:1px solid rgba(255,90,90,.35);
  background:rgba(255,90,90,.10);
  color:#ffadad;
  font-size:.72rem;
  font-weight:800;
}
.fav-line{ margin-top: 8px; color:#e6f7ff; font-size:.95rem; line-height: 1.35; overflow-wrap:anywhere; }
.fav-times{
  margin-top:6px;
  display:flex;
  flex-wrap:nowrap;
  gap:6px;
  font-size:clamp(.9rem, 4.2vw, 1.35rem);
  font-weight:900;
  letter-spacing:.01em;
  line-height:1.05;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.fav-next-train{
  margin: 10px 0 2px 0;
  font-size:.84rem;
  font-weight: 800;
  color: rgba(198,236,255,.92);
}

.fav-cause{
  margin-top: 6px;
  font-size: 0.78rem;
  color: rgba(255, 200, 120, 0.95);
  opacity: 0.95;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}


/* --- Favoris: rendu plus pro (moins neon) --- */
.fav-widget{ border-color: rgba(255,255,255,.10); background: rgba(10,14,22,.55); box-shadow: 0 8px 24px rgba(0,0,0,.28); }
.fav-btn{ border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.04); color: rgba(225,250,255,.95); }
.fav-card{ border-color: rgba(255,255,255,.10); background: rgba(6,10,16,.50); }
.fav-tag{ background: rgba(255,255,255,.06); color: rgba(200,250,255,.95); border: 1px solid rgba(255,255,255,.10); }

/* --- Bandeau stats deroulant (evite de polluer la vue) --- */
.fav-details{ margin-top: 8px; border-radius: 12px; border: 1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.03); overflow: hidden; }
.fav-details-summary{ cursor:pointer; display:flex; align-items:center; justify-content: space-between; gap:10px; padding:7px 10px; font-size:.82rem; color: rgba(230,247,255,.92); user-select:none; }
.fav-details-summary::-webkit-details-marker{ display:none; }
.fav-details-summary:after{ content:"▾"; opacity:.65; font-weight:900; }
.fav-details[open] .fav-details-summary:after{ content:"▴"; }
.fav-pct{ font-weight:900; }
.fav-details-body{ padding:8px 10px; border-top: 1px solid rgba(255,255,255,.08); font-size:.82rem; color: rgba(210,240,255,.92); line-height:1.35; }

/* ===== Favoris compact : lisibilité mobile + horaires en colonne dans les détails ===== */
.fav-next-row{ display:flex; gap:10px; align-items:baseline; flex-wrap:wrap; }

.fav-stopwrap{display:inline-flex;align-items:center;gap:8px;min-width:0;flex:1 1 auto;overflow:hidden;}
.fav-stopwrap.deleted{color:#ff9a9a;}
.fav-timecell{margin-left:auto;white-space:nowrap;text-align:right;}

.fav-stopwrap{ display:inline-flex; align-items:center; gap:8px; min-width:0; flex:1 1 auto; overflow:hidden; }
.fav-timecell{ margin-left:auto; text-align:right; white-space:nowrap; }
.fav-stopwrap .voie-badge{ margin-left:0 !important; }

.fav-next-row.is-past{ opacity:.55; }
.fav-stop{ min-width:10ch; font-weight:800; }
.fav-next-row.deleted .fav-stop{ color:#ff9a9a; text-decoration:line-through; }

.fav-time-wrap{ display:inline-flex; gap:8px; align-items:baseline; }
.fav-time-rt.delay{ color:#ffb36b; font-weight:900; }
.fav-time-planned.is-strike{ text-decoration:line-through; opacity:.75; }
.fav-time-rt.deleted-label{ margin-left:8px; color:#ff6b6b; font-weight:900; }

/* Détails : horaires l'un sous l'autre */
.fav-stops-expanded .fav-next-row{ align-items:flex-start; }
.fav-stops-expanded .fav-time-wrap{ display:flex; flex-direction:column; gap:2px; line-height:1.05; }
.fav-stops-expanded .fav-time-planned{ opacity:.92; }
.fav-stops-expanded .fav-stopwrap{ white-space:normal; }
.fav-stops-expanded .fav-voiecell{ margin-left:auto; }

/* Compact : tout sur une ligne (même sur mobile) */
.fav-stops-compact .fav-next-row{ flex-wrap:nowrap; }
.fav-stops-compact .fav-stop{ min-width:0; flex:1 1 auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fav-stops-compact .fav-time-wrap{ white-space:nowrap; }

.fav-stops-title{ display:flex; align-items:center; gap:8px; margin-bottom:6px; opacity:.95; }

/* Compact : pas de cadre pour le prochain arrêt */
.fav-stops-compact-flat{margin-top:10px;padding:0;border:0;background:transparent;box-shadow:none;}
.fav-stops-compact-flat .fav-stops-title{margin-bottom:6px;}
.fav-stops-title-icon{ font-weight:900; }
.fav-stops-title-text{ font-weight:900; }

@media (max-width: 600px){
  body{ padding:10px; max-width:none; }
  .fav-grid{ grid-template-columns: minmax(0, 1fr); }
  .fav-widget{ padding:10px; margin:10px 0; border-radius:16px; }
  .fav-card{ padding:12px; }
  .fav-tag{ font-size:.80rem; }
  .fav-train{ font-size:1rem; }
  .fav-title{ font-size:1.05rem; }
  .fav-btn{ width:100%; text-align:center; padding:8px 12px; }
  .fav-head{ align-items:flex-start; }
  .fav-state-badge{ font-size:.72rem; padding:4px 8px; }
  .fav-train-block{ align-items:center; }

  /* route + horaires plus compacts */
  .fav-meta{ font-size:.90rem; }
  .fav-primary-route{ font-size:1rem !important; }
  .fav-primary-times{ font-size:1.02rem !important; }
  .fav-times{ font-size:clamp(.82rem, 4vw, 1.05rem); letter-spacing:0; line-height:1.05; }

  /* cause moins "brique" */
  .fav-cause{ font-size:.76rem; }

  /* prochain arrêt : tout sur 1 ligne */
  .fav-stops-compact .fav-next-row{ gap:8px; flex-wrap:wrap; }
  .fav-stops-compact .fav-stopwrap{ max-width:100%; white-space:normal; }
  .fav-stops-compact .fav-stop{ font-size:.92rem; white-space:normal; text-overflow:clip; }
  .fav-stops-compact .voie-badge{ padding:2px 8px; font-size:.72rem; }
  .fav-timecell{ font-size:.92rem; }

  /* détails : colonne d'horaires bien alignée + moins d'espace */
  .fav-details-summary{ font-size:.80rem; }
  .fav-details-body{ font-size:.72rem; }
  .fav-stops-expanded .fav-next-row{ padding:8px 0; gap:8px; align-items:flex-start; flex-wrap:wrap; }
  .fav-stops-expanded .fav-stop{ font-size:.86rem; line-height:1.2; }
  .fav-stops-expanded .fav-time-wrap{ gap:1px; }
  .fav-stops-expanded .fav-timecell{ font-size:.82rem; }
  .fav-stops-expanded .fav-voiecell{ margin-left:auto; }
}

.fav-details-body .stats-status-on-time,
.fav-details-body .stats-status-delayed,
.fav-details-body .stats-status-canceled,
.fav-details-body .stats-status-partial{ font-size:.82rem; }

/* En suppression: bandeau + cause plus visibles */
.fav-card.is-canceled .fav-box-warn{ border-color: rgba(255,60,60,.40) !important; background: rgba(255,60,60,.10) !important; }

.fav-card.is-canceled .fav-details{ border-color: rgba(255,60,60,.35); background: rgba(255,60,60,.08); }
.fav-card.is-canceled .fav-details-summary{ color: rgba(255,225,225,.95); }
.fav-card.is-canceled .fav-details-body{ border-top-color: rgba(255,60,60,.25); }

.fav-stats{
  margin-top: 4px;
  font-size: 0.78rem;
  color: #bfefff;
  opacity: 0.9;
  white-space: nowrap;
}



/* ===== Favoris: rendu plus pro + stats en bandeau deroulant ===== */
.fav-widget{ border: 1px solid rgba(255,255,255,.10) !important; background: rgba(8,12,18,.60) !important; box-shadow: 0 8px 22px rgba(0,0,0,.28) !important; }
.fav-card{ border: 1px solid rgba(255,255,255,.10) !important; background: rgba(6,9,14,.55) !important; }
.fav-btn{ border: 1px solid rgba(255,255,255,.18) !important; background: rgba(255,255,255,.05) !important; color: rgba(225,250,255,.95) !important; }
.fav-tag{ background: rgba(255,255,255,.06) !important; color: rgba(200,255,255,.95) !important; border: 1px solid rgba(255,255,255,.12) !important; }

.fav-details{ margin-top: 8px; border-radius: 12px; border: 1px solid rgba(255,255,255,.10); background: rgba(255,255,255,.03); overflow: hidden; }
.fav-details-summary{ cursor: pointer; display:flex; align-items:center; justify-content:space-between; gap:10px; padding: 7px 10px; font-size:.82rem; color: rgba(230,247,255,.92); user-select:none; }
.fav-details-summary::-webkit-details-marker{ display:none; }
.fav-details-summary:after{ content:"▾"; opacity:.65; font-size:.9rem; }
.fav-details[open] .fav-details-summary:after{ transform: rotate(180deg); }
.fav-pct{ font-weight: 900; }
.fav-details-body{ padding: 8px 10px 10px 10px; font-size: .80rem; color: rgba(210,235,255,.95); border-top: 1px solid rgba(255,255,255,.08); }
.fav-details-body .fav-minirow{ display:flex; gap:10px; flex-wrap:wrap; line-height:1.3; }
.fav-details-body .fav-note{ margin-top:2px; opacity:.75; font-size:.72rem; line-height:1.2; }

/* --- Favori: mise en avant SUPPRIME --- */
.fav-card.is-canceled{
  border: 1px solid rgba(255, 60, 60, .75) !important;
  background: linear-gradient(180deg, rgba(80,0,0,.55), rgba(10,5,12,.55)) !important;
  box-shadow: 0 0 0 1px rgba(255,60,60,.35), 0 0 24px rgba(255,60,60,.22);
}
.fav-card.is-canceled .fav-tag{
  background: rgba(255,60,60,.18) !important;
  color: #ff6b6b !important;
  border: 1px solid rgba(255,60,60,.35);
}
.fav-card.is-canceled .fav-meta{
  color: #ffd2d2 !important;
}
.fav-card.is-canceled .fav-line{
  color: #ffe9e9 !important;
}
.fav-card.is-canceled .fav-cause{
  color: #ff9a9a !important;
  background: rgba(255, 60, 60, .10);
  border: 1px dashed rgba(255, 60, 60, .35);
  padding: 6px 8px;
  border-radius: 10px;
  white-space: normal;
}
.fav-cancel-badge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 6px 10px;
  border-radius: 999px;
  background: rgba(255, 60, 60, .18);
  border: 1px solid rgba(255, 60, 60, .45);
  color: #ff6b6b;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.fav-state-badge{
  display:inline-flex;
  align-items:center;
  padding: 5px 10px;
  border-radius: 999px;
  font-weight: 900;
  letter-spacing: .02em;
  text-transform: uppercase;
  font-size: .78rem;
}
.fav-state-before{
  border: 1px solid rgba(59,130,246,.45);
  background: rgba(59,130,246,.12);
  color: #93c5fd;
}
.fav-state-live,
.fav-state-running{
  border: 1px solid rgba(0,240,255,.28);
  background: linear-gradient(180deg, rgba(8,37,60,.95), rgba(5,24,39,.95));
  color: #92f4ff;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 0 12px rgba(18,214,255,.12);
  text-shadow: 0 0 8px rgba(146,244,255,.32);
}
.fav-state-live::before,
.fav-state-running::before{
  content:"";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #b9ffcf 0%, #2dff73 38%, #0ea846 100%);
  box-shadow:
    0 0 0 1px rgba(97,255,151,.25),
    0 0 7px rgba(45,255,115,.95),
    0 0 14px rgba(45,255,115,.72);
  animation: lbLiveDotPulse 1.6s ease-in-out infinite;
  flex: 0 0 8px;
  margin-right: 6px;
}
.fav-state-after{
  border: 1px solid rgba(148,163,184,.45);
  background: rgba(148,163,184,.14);
  color: #e2e8f0;
}
.fav-state-unknown{
  border: 1px solid rgba(148,163,184,.3);
  background: rgba(148,163,184,.08);
  color: rgba(226,232,240,.85);
}

/* --- Encadres (cause / prochains arrets) style site --- */
.fav-box{margin-top:8px;padding:8px 10px;border-radius:12px;border:1px solid rgba(0,255,255,.14);background:rgba(0,0,0,.22);box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);}
.fav-box > summary::-webkit-details-marker{display:none;}
.fav-box > summary{list-style:none; cursor:pointer;}
.fav-box-info{border-color:rgba(0,255,255,.14);background:rgba(0,0,0,.20);}
.fav-box-warn{border-color:rgba(255,154,60,.30);background:rgba(255,154,60,.10);}
.fav-box-danger{border-color:rgba(255,60,60,.40);background:rgba(255,60,60,.10);}
.fav-box-danger .fav-box-body{color:#ff9a9a;font-weight:900;}
.fav-box-title{display:flex;align-items:center;gap:8px;font-weight:900;font-size:.82rem;opacity:.95;margin-bottom:4px;}
.fav-box-warn .fav-box-title{color:#ffb36b;}
.fav-box-body{font-size:.92rem;line-height:1.35;}
/* Bouton "Détail" dans l'affluence des favoris */
.fav-aff-open{
  margin-left: 8px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,240,255,.45);
  background: rgba(0, 16, 28, 0.55);
  color: #dffbff;
  font-family: 'Orbitron', sans-serif;
  font-weight: 800;
  font-size: .82rem;
  cursor: pointer;
  box-shadow: inset 0 0 10px rgba(0, 240, 255, 0.18), 0 0 12px rgba(0, 240, 255, 0.12);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.fav-aff-open:hover{
  transform: translateY(-1px);
  border-color: rgba(0,240,255,.85);
  box-shadow: inset 0 0 12px rgba(0, 240, 255, 0.28), 0 0 18px rgba(0, 240, 255, 0.25);
}

/* --- Favoris: horaires prevus / temps reel (retards live) --- */
.fav-next{ margin-top: 6px; line-height: 1.35; }
.fav-next .fav-next-title{ opacity: .9; margin-bottom: 2px; }
.fav-next .fav-next-row{ display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; }
.fav-stop{ opacity:.95; }
.fav-time{ font-variant-numeric: tabular-nums; }
.fav-time-planned{ opacity:.85; }
.fav-time-planned.is-strike{ text-decoration: line-through; opacity: .55; }
.fav-time-rt{ font-weight: 800; margin-left: 6px; }
.fav-time-rt.delay{ color: #ff9a3c; }
.fav-delay-pill{ display:inline-block; margin-left: 6px; padding: 1px 6px; border-radius: 999px; font-size: .80em; color: #ffb36b; background: rgba(255, 154, 60, .12); border: 1px solid rgba(255, 154, 60, .28); }
.fav-route{
  opacity: .92;
  font-weight: 800;
}

@media (max-width: 768px){ .fav-grid{ grid-template-columns: minmax(0, 1fr); } }


/* ===== Favoris: badge composition (US/UM/UM3/US5/UM Mixte) + réduit ===== */
.fav-train-wrap{display:inline-flex;align-items:center;gap:10px}
.fav-train-num{font-weight:900}
.fav-type-wrap{display:inline-flex;align-items:center;gap:8px;margin-left:6px}
.fav-type-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:38px;height:22px;padding:0 10px;border-radius:999px;
  font-weight:900;font-size:12px;letter-spacing:.5px;
  border:1px solid rgba(0,255,255,.35);
  background:rgba(0,255,255,.08);
  color:#bffcff;
}
.fav-type-us { border-color: rgba(100,200,255,.45); }
.fav-type-um { border-color: rgba(255,180,80,.45); }
.fav-type-um3{ border-color: rgba(255,80,160,.45); }
.fav-type-compo{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:0;
  padding:0;
  border:none;
  background:transparent;
  border-radius:0;
  box-shadow:none;
}
.fav-type-compo .lb-compo-icon{ height:14px; }
.fav-type-compo .lb-compo-inline{ gap:2px; }
.fav-type-compo .lb-compo-icon--us5{ height:22px; width:auto; }
.fav-type-reduced{
  display:inline-flex;align-items:center;justify-content:center;
  padding:0 10px;height:22px;border-radius:999px;
  font-weight:900;font-size:12px;
  border:1px solid rgba(200,120,255,.55);
  background:rgba(200,120,255,.12);
  color:#e7c8ff;
}

/* ===== Favoris: tiroir Affluence intégré ===== */
.fav-aff summary{ list-style:none; cursor:pointer; }
.fav-aff summary::-webkit-details-marker{ display:none; }
.fav-aff .fav-aff-summary{ display:flex; flex-direction:column; gap:8px; }
.fav-aff-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.fav-aff-title{ font-weight:900; color:#c9fbff; }
.fav-aff-typewrap{ display:flex; justify-content:flex-end; }
.fav-aff-meta{ font-size:.92rem; color: rgba(224,240,255,.85); display:flex; align-items:center; gap:10px; }
.fav-aff-pct{ font-weight:900; color:#00f0ff; }


.fav-aff-pct.ok{ color:#2cff96; }
.fav-aff-pct.mid{ color:#f1c40f; }
.fav-aff-pct.warn{ color:#ff8a1a; }
.fav-aff-pct.bad{ color:#ff3131; }
.fav-aff-pct.sat{ color:#b7b7b7; }
.fav-aff-max{ font-size:.85rem; opacity:.9; color: rgba(224,240,255,.75); }
.fav-aff-max .m{ font-weight:900; }
.fav-card .affls-pct{display:none !important;}
.fav-aff-schema{ display:flex; justify-content:flex-end; align-items:center; gap:10px; flex-wrap:nowrap; width:100%; overflow:hidden; }
.fav-aff-schema .affls-train{ transform-origin: right center; }
.fav-aff-schema.is-fit .affls-train{ will-change: transform; }
@media (max-width: 520px){
  .fav-aff-schema{ justify-content:flex-end; }
}
.fav-aff-toggleline{ cursor:pointer; font-weight:800; font-size:.9rem; opacity:.9; color:#aef5ff; display:flex; justify-content:flex-end; align-items:center; gap:8px; user-select:none; }
.fav-aff-toggleline:after{ content:"▾"; opacity:.65; font-weight:900; }
.fav-aff[open] .fav-aff-toggleline:after{ content:"▴"; opacity:.9; }
.fav-aff[open] .fav-aff-toggleline{ opacity:1; }
.fav-aff-body{ display:flex; flex-direction:column; gap:10px; }
.fav-aff-tip{
  border:1px solid rgba(0,255,255,.18);
  border-radius:10px;
  background: rgba(0,16,30,.24);
}
.fav-aff-tip summary{
  list-style:none;
  cursor:pointer;
  padding:6px 10px;
  font-size:.76rem;
  font-weight:800;
  color:#b9f7ff;
}
.fav-aff-tip summary::-webkit-details-marker{ display:none; }
.fav-aff-tip summary::after{ content:'▾'; float:right; opacity:.7; }
.fav-aff-tip[open] summary::after{ content:'▴'; }
.fav-aff-tip-body{
  padding:0 10px 8px;
  font-size:.74rem;
  color:rgba(224,240,255,.88);
  line-height:1.35;
}
.fav-aff-tip-list{
  margin:0;
  padding:0 0 0 16px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.fav-aff-tip-list li b{ color:#d2fcff; }
.fav-aff-tip-list li::marker{ color:#5ef3ff; }
.fav-aff-stops{ display:flex; flex-direction:column; gap:8px; }
.fav-aff-stop{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px 12px;
  border-radius:12px;
  border:1px solid rgba(0,255,255,.14);
  background: rgba(0, 12, 22, .28);
}

.fav-aff-stop-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
}

.fav-aff-stop-title{
  display:flex;
  align-items:baseline;
  gap:8px;
  min-width:0;
  flex:1 1 auto;
}

.fav-aff-stop-name{
  font-weight:900;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.fav-aff-stop-time{
  font-size:.82rem;
  opacity:.85;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

.fav-aff-stop-schema{
  width:100%;
  overflow:hidden;
}

/* Le schéma doit toujours tenir dans la carte (mobile compris) */
.fav-aff-stop-schema .train-schema,
.fav-aff-stop-schema .trainSchema,
.fav-aff-stop-schema .wagon-schema,
.fav-aff-stop-schema .wagonSchema,
.fav-aff-stop-schema svg{
  max-width:100%;
}

/* Sur mobile: éviter tout scroll horizontal */
@media (max-width: 520px){
  .fav-aff-stop{ padding:10px 10px; }
  .fav-aff-stop-head{ gap:10px; }
  .fav-aff-stop-name{ max-width: 70vw; }
}
.fav-aff-stop-pct{ font-weight:900; color:#dffbff; min-width:42px; text-align:right; }
.fav-aff-stop-pct.ok{ color:#2cff96; }
.fav-aff-stop-pct.mid{ color:#f1c40f; }
.fav-aff-stop-pct.warn{ color:#ff8a1a; }
.fav-aff-stop-pct.bad{ color:#ff3131; }
.fav-aff-stop-pct.sat{ color:#b7b7b7; }

.fav-aff-empty{ padding:10px 12px; border-radius:12px; border:1px solid rgba(255,180,80,.25); background: rgba(255,180,80,.08); color:#ffd9b0; font-weight:800; }
.fav-spark{
  width:100%;
  height:72px;
  border-radius:12px;
  background: rgba(0, 12, 22, .18);
  border:1px solid rgba(0,255,255,.12);
  overflow:hidden;
}
.fav-aff-open{ display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:10px 12px; border-radius:14px; font-weight:900; text-decoration:none; color:#bffcff; border:1px solid rgba(0,255,255,.35); background: rgba(0,255,255,.08); }
.fav-aff-open:hover{ filter: brightness(1.08); }
/* ===== Harmonisation du bloc "Mes bétaillères favorites" avec le style global du site =====
   (mêmes codes que .command-console / .console-section) */
.fav-widget{
  background: linear-gradient(145deg, #101828, #0a0e1a) !important;
  border: 2px solid #00f0ff55 !important;
  box-shadow: 0 0 12px #00f0ff88, 0 0 30px #00ffff44 inset !important;
  border-radius: 20px !important;
  padding: 22px !important;
  margin: 18px auto 22px auto !important;
}
.fav-head{
  margin-bottom: 12px !important;
  padding-bottom: 6px !important;
  border-bottom: 1px dashed #00f0ff99 !important;
}
.fav-title{
  font-size: 1.15rem !important;
  color: #00ffff !important;
  text-shadow: 0 0 10px #00f0ff !important;
}
.fav-btn{
  border: 1px solid rgba(0, 240, 255, 0.45) !important;
  background: linear-gradient(135deg, rgba(0, 36, 58, 0.85), rgba(0, 18, 34, 0.80)) !important;
  box-shadow: 0 0 10px rgba(0, 255, 255, 0.25) !important;
  color: #aef5ff !important;
  border-radius: 14px !important;
  padding: 10px 14px !important;
}
.fav-card{
  border: 1px solid rgba(0, 240, 255, 0.28) !important;
  border-radius: 18px !important;
  background: linear-gradient(135deg, rgba(0, 28, 46, 0.70), rgba(0, 14, 28, 0.62)) !important;
  box-shadow: inset 0 0 0 1px rgba(0, 255, 255, 0.10) !important;
  padding: 16px 18px !important;
}
.fav-tag{
  background: rgba(0, 255, 255, 0.10) !important;
  border: 1px solid rgba(0, 240, 255, 0.28) !important;
  color: #aef5ff !important;
}
.fav-train{ text-shadow: 0 0 10px rgba(0,255,255,.10); }
.fav-meta{ color: rgba(210,240,255,.95) !important; }
.fav-line{ color: rgba(230,247,255,.98) !important; }
.fav-details{
  border: 1px solid rgba(0, 240, 255, 0.22) !important;
  background: rgba(0, 0, 0, 0.18) !important;
}
.fav-details-summary{
  background: rgba(0, 0, 0, 0.10) !important;
  color: rgba(210,240,255,.95) !important;
}
.fav-details-body{
  border-top: 1px solid rgba(0, 240, 255, 0.16) !important;
}

/* Encadrés internes (cause / prochains arrêts) alignés sur le style des sections */
.fav-box{
  border: 1px solid rgba(0, 240, 255, 0.22) !important;
  background: rgba(0, 0, 0, 0.18) !important;
}
.fav-box-warn{
  border-color: rgba(255,154,60,.32) !important;
  background: rgba(255,154,60,.08) !important;
}


/* Cause perturbation (favoris) */
.fav-cause-inline{
  margin: 6px 0 8px 0;
  padding: 6px 8px;
  border-radius: 10px;
  background: rgba(255, 154, 60, .10);
  border: 1px solid rgba(255, 154, 60, .22);
  color: #ffb36b;
  font-weight: 700;
}
.fav-cause-inline.fav-cause-inline--cancel{
  background: rgba(255, 77, 109, .14);
  border-color: rgba(255, 77, 109, .35);
  color: #ff8ea8;
}

/* === FIX: masque l'ancien bandeau TRON (évite grand vide au-dessus de l'accueil) === */
.header-container.hero-compact{display:none !important;}

/* === FIX: boutons d'action toujours visibles (pas besoin de hover) === */
.topbar-actions button, .topbar-actions a{opacity:1 !important; pointer-events:auto !important;}

/* ===== COMPACT MOBILE PASS (app-like) ===== */
@media (max-width: 600px){
  body{
    padding: calc(var(--top-bar-height, 64px) + 12px) 12px calc(var(--bottom-bar-height, 72px) + 12px);
  }
  .top-bar__inner{ padding: 0 12px; gap: 10px; }
  /* Hide quick icons in the top bar on mobile (keep only Compte) */
  .top-bar__iconbtn{ display:none !important; }
  .top-bar__actions{ gap: 10px; }
  .top-bar__account{ padding: 8px 14px; font-size: 0.95rem; }
  .top-bar__social-link svg{ width: 14px; height: 14px; }
  .top-bar__title{ font-size: 1.0rem; }
  /* Make sections tighter */
  .home-section{ margin: 8px 0 10px; gap: 6px; }
  .home-card{ padding: 10px; border-radius: 14px; }
  .home-card h3{ margin: 0 0 6px; }
  .home-card p{ margin: 4px 0; }
  /* Favorites widget compact */
  .fav-widget{ padding: 12px !important; border-radius: 16px; }
  .fav-head{ margin-bottom: 10px; }
  .fav-title{ font-size: 0.95rem; }
  .fav-grid{ gap: 8px; }
  .fav-card{ padding: 10px; border-radius: 14px; }
  .fav-meta, .fav-line{ font-size: 0.88rem; }
  .fav-times{ font-size: 0.98rem; }
  .fav-cause{ font-size: 0.9rem; padding: 10px; }
  /* Bottom nav: keep inside safe area + avoid clipping last item */
  .bottom-nav{
    padding-left: calc(env(safe-area-inset-left, 0px) + 10px);
    padding-right: calc(env(safe-area-inset-right, 0px) + 10px);
  }
  .bottom-nav__items{ gap: 2px; }
  .bottom-nav__item{ padding: 6px 2px; }
}



:root{
  --lb-topbar-h: 64px;
  --lb-bottomnav-h: 70px;
}

/* Ensure content isn't hidden behind fixed top/bottom bars */
body{
  padding-top: calc(var(--lb-topbar-h) + env(safe-area-inset-top, 0px));
  padding-bottom: calc(var(--lb-bottomnav-h) + env(safe-area-inset-bottom, 0px));
}

/* Smooth anchor jumps with offset */
[id]{
  scroll-margin-top: calc(var(--lb-topbar-h) + 10px);
}

/* Bottom nav: prevent right cut on Android, keep items centered */
.bottom-nav, .bottomNav, #bottomNav{
  box-sizing: border-box;
  padding-left: max(12px, env(safe-area-inset-left, 0px));
  padding-right: max(18px, env(safe-area-inset-right, 0px)); /* a bit more on the right */
}

.bottom-nav .nav-item, .bottomNav .nav-item, #bottomNav .nav-item,
.bottom-nav a, .bottomNav a, #bottomNav a{
  flex: 1 1 0;
  min-width: 0;
}

/* Make the "Compte" label never overflow its pill */
.bottom-nav .nav-item span, .bottomNav .nav-item span, #bottomNav .nav-item span,
.bottom-nav a .bottom-nav__label, .bottomNav a .bottom-nav__label, #bottomNav a .bottom-nav__label,
.bottom-nav button .bottom-nav__label, .bottomNav button .bottom-nav__label, #bottomNav button .bottom-nav__label{
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Preferences section: avoid being clipped under topbar when opened */
#prefsSection, #prefsPanel, #prefsModal, .prefs-section, .prefs-panel{
  scroll-margin-top: calc(var(--lb-topbar-h) + 14px);
}

/* Slightly tighter paddings for mobile */
@media (max-width: 520px){
  .card, .panel, .widget, .fav-card, .fav-widget{
    padding: 12px !important;
  }
  .card h2, .panel h2, .section-title{
    margin-top: 2px !important;
  }
}




@media (max-width: 720px){
  /* When a console <details> opens, keep its content scrollable within viewport */
  .command-console details.console-section .section-content{
    max-height: calc(100vh - var(--lb-topbar-h) - var(--lb-bottomnav-h) - 24px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px));
  }
  /* Make sure the opened accordion isn't hidden under the fixed header */
  .command-console details.console-section{
    scroll-margin-top: calc(var(--lb-topbar-h) + 14px);
  }
}

/* Force 4 columns for train chips on mobile to reduce vertical scrolling */
@media (max-width: 520px){
  #selectionChips{
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 7px 8px !important;
    padding: 6px 8px !important;
  }
  #selectionChips .chip,
  #selectionChips .selection-chip,
  #selectionChips button,
  #selectionChips .pill{
    font-size: 0.78rem !important;
    padding: 7px 6px !important;
  }

  #selectionModal .selection-modal__panel{
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
  #selectionBlock.chips-panel{
    padding-left: 8px !important;
    padding-right: 8px !important;
  }
}




:root{
  --lb-topbar-h: 64px;
  --lb-bottomnav-h: 70px;
}

/* Bottom nav: ensure rightmost item never clipped */
.bottom-nav, .bottomNav, #bottomNav{
  width: 100vw;
  left: 0;
  right: 0;
  padding-right: max(28px, env(safe-area-inset-right, 0px));
  padding-left: max(16px, env(safe-area-inset-left, 0px));
}
.bottom-nav .nav-item, .bottomNav .nav-item, #bottomNav .nav-item,
.bottom-nav a, .bottomNav a, #bottomNav a{
  min-width: 0;
}
.bottom-nav .nav-item span, .bottomNav .nav-item span, #bottomNav .nav-item span,
.bottom-nav a .bottom-nav__label, .bottomNav a .bottom-nav__label, #bottomNav a .bottom-nav__label,
.bottom-nav button .bottom-nav__label, .bottomNav button .bottom-nav__label, #bottomNav button .bottom-nav__label{
  font-size: 0.72rem;
}

/* Console panels inside details: cap height to visible area and allow scroll */
@media (max-width: 520px){
  .console, #console, .console-container, .command-console{
    padding-bottom: 6px !important;
  }

  details > .details-content, details > .content, details > .panel, details > .detailsBody,
  .details-content, .detailsBody, .accordion-content, .acc-content{
    max-height: calc(100vh - var(--lb-topbar-h) - var(--lb-bottomnav-h) - 24px);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 72px; /* room for sticky generate bar */
  }

  /* Sticky bar for generate buttons (works even if we can't target exact id) */
  .lb-sticky-actions{
    position: sticky;
    bottom: 0;
    z-index: 50;
    display: flex;
    gap: 10px;
    justify-content: center;
    align-items: center;
    padding: 10px 10px;
    margin-top: 10px;
    background: rgba(5, 15, 25, 0.85);
    backdrop-filter: blur(10px);
    border-top: 1px solid rgba(0, 255, 255, 0.18);
    border-radius: 14px;
  }
  .lb-sticky-actions .btn, .lb-sticky-actions button{
    flex: 1 1 auto;
  }
}




:root{
  --lb-topbar-h: 64px;
  --lb-bottomnav-h: 70px;
}

/* Bottom nav: make items tighter so "Compte" never clips */
@media (max-width: 520px){
  .bottom-nav, .bottomNav, #bottomNav{
    height: var(--lb-bottomnav-h);
    padding-left: max(10px, env(safe-area-inset-left, 0px));
    padding-right: max(10px, env(safe-area-inset-right, 0px));
  }
  .bottom-nav .nav-item, .bottomNav .nav-item, #bottomNav .nav-item,
  .bottom-nav a, .bottomNav a, #bottomNav a{
    padding: 6px 4px !important;
    gap: 4px !important;
  }
  .bottom-nav .nav-item span, .bottomNav .nav-item span, #bottomNav .nav-item span,
  .bottom-nav a .bottom-nav__label, .bottomNav a .bottom-nav__label, #bottomNav a .bottom-nav__label,
.bottom-nav button .bottom-nav__label, .bottomNav button .bottom-nav__label, #bottomNav button .bottom-nav__label{
    font-size: 0.68rem !important;
    letter-spacing: .02em;
  }
  /* Active/selected pill should not overflow its cell */
  .bottom-nav .nav-item.active, .bottomNav .nav-item.active, #bottomNav .nav-item.active,
  .bottom-nav a.active, .bottomNav a.active, #bottomNav a.active{
    max-width: 100%;
    border-radius: 18px !important;
    padding: 6px 4px !important;
  }
}

/* Universal: when a <details> opens, its content must fit between fixed bars */
@media (max-width: 520px){
  details[open] > :not(summary){
    box-sizing: border-box;
    max-height: calc(100dvh - var(--lb-topbar-h) - var(--lb-bottomnav-h) - 18px);
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(var(--lb-bottomnav-h) + env(safe-area-inset-bottom, 0px) + 90px) !important;
    padding-top: 10px !important;
  }

  /* Sticky action bars inside details should sit ABOVE the bottom nav */
  details[open] .lb-sticky-actions{
    position: sticky;
    bottom: calc(var(--lb-bottomnav-h) + env(safe-area-inset-bottom, 0px) + 8px) !important;
    z-index: 80;
  }

  /* Close buttons often placed top-right inside details: keep them visible below topbar */
  details[open] .close, details[open] .close-btn, details[open] .btn-close, details[open] [data-close]{
    position: sticky;
    top: 0;
    z-index: 90;
  }
}




:root{
  --lb-topbar-h: 64px;
  --lb-bottomnav-h: 84px; /* will be overridden by JS with real height */
}

@media (max-width: 520px){
  /* Date quick buttons on one line (3 columns) */
  .quick-button-group[data-group="date"]{
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px !important;
  }
  .quick-button-group[data-group="date"] .quick-btn{
    padding: 10px 8px !important;
    font-size: 0.82rem !important;
    border-radius: 14px !important;
    min-width: 0 !important;
    white-space: nowrap;
  }

  /* Bottom nav tighter + label controllable */
  .bottom-nav{
    padding-left: max(10px, env(safe-area-inset-left, 0px)) !important;
    padding-right: max(16px, env(safe-area-inset-right, 0px)) !important;
  }
  .bottom-nav__items{ gap: 4px !important; }
  .bottom-nav__item{
    padding: 6px 2px !important;
    min-width: 0 !important;
  }
  .bottom-nav__label{
    display:block;
    max-width: 100%;
    overflow:hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 0.64rem !important;
    letter-spacing: .02em;
  }
}

/* Details open content must fit using REAL heights */
@media (max-width: 520px){
  details[open] > :not(summary){
    max-height: calc(100dvh - var(--lb-topbar-h) - var(--lb-bottomnav-h) - 14px) !important;
    overflow: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  details[open] .lb-sticky-actions{
    bottom: calc(var(--lb-bottomnav-h) + env(safe-area-inset-bottom, 0px) + 8px) !important;
    z-index: 2000;
  }
}




@media (max-width: 520px){
  /* Remove ellipsis/truncation for the brand title */
  .top-bar .brand, .topbar .brand, header .brand,
  .top-bar .title, .topbar .title, header .title,
  .top-bar .site-title, .topbar .site-title, header .site-title{
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
  }
  .top-bar .site-title, .topbar .site-title, header .site-title,
  .top-bar .title, .topbar .title, header .title{
    font-size: 1.05rem !important;
    letter-spacing: .06em;
  }
  /* Give the header more room horizontally */
  .top-bar, .topbar, header{
    padding-left: 10px !important;
    padding-right: 10px !important;
  }

  /* Favorites widgets: ~20% less vertical space */
  .favorites-section, #favoritesSection, .favorites-container, .fav-container{
    margin-top: 10px !important;
  }
  .fav-widget, .fav-card, .favorites-widget, .favorites-card, .favTrainCard,
  .favorite-card, .train-fav-card{
    padding: 10px 12px !important;
  }
  .fav-widget h3, .fav-card h3, .favorites-widget h3, .favorites-card h3{
    margin: 0 0 6px !important;
  }
  .fav-widget .route, .fav-card .route, .favorites-widget .route, .favorites-card .route{
    font-size: 1.05rem !important;
    line-height: 1.15 !important;
  }
  .fav-widget .times, .fav-card .times, .favorites-widget .times, .favorites-card .times{
    font-size: 0.98rem !important;
    line-height: 1.1 !important;
  }
  .fav-widget .next, .fav-card .next, .favorites-widget .next, .favorites-card .next,
  .fav-widget .subline, .fav-card .subline, .favorites-widget .subline, .favorites-card .subline{
    font-size: 0.9rem !important;
    line-height: 1.1 !important;
    margin-top: 6px !important;
  }
  .fav-widget .progress, .fav-card .progress, .favorites-widget .progress, .favorites-card .progress{
    margin: 8px 0 !important;
  }
  .favorites-grid, .fav-grid, .favContainer{
    gap: 10px !important;
  }
  .fav-widget .badge, .fav-card .badge, .favorites-widget .badge, .favorites-card .badge{
    padding: 4px 8px !important;
    font-size: 0.78rem !important;
  }
}




@media (max-width: 720px){
  /* 1) Supprime le bouton Compte en haut (même si réinjecté plus tard) */
  .top-bar__account{ display:none !important; }

  /* 2) Assure le titre visible */
  .top-bar__brand{ flex: 1 1 auto; min-width: 0; }
  .top-bar__title{
    display:block !important;
    font-size: 1.10rem;
    letter-spacing: 0.10em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
  }

  /* Si écran très étroit: on garde les icônes sociales compactes */
  @media (max-width: 420px){
    .top-bar__social-link svg{ width: 13px; height: 13px; }
  }

  /* 3) Bottom bar: icônes +50% & zones cliquables */
  .bottom-nav__icon{ font-size: 3.2rem !important; }
  .bottom-nav__item{
    padding: 8px 4px !important;
    min-height: 64px;
  }
  .bottom-nav__label{ font-size: 0.7rem !important; }

  /* 4) Modal sélection: évite d'être caché par top/bottom bars */
  .selection-modal{
    padding-top: calc(16px + var(--lb-topbar-h, 56px) + env(safe-area-inset-top));
    padding-bottom: calc(16px + var(--lb-bottomnav-h, 64px) + env(safe-area-inset-bottom));
    padding-left: 12px;
    padding-right: 12px;
    align-items: flex-start;
  }
  .selection-modal__panel{
    width: min(720px, 100%);
    max-height: calc(100vh - var(--lb-topbar-h, 56px) - var(--lb-bottomnav-h, 64px) - 32px);
    padding: 18px 14px 16px;
    border-radius: 18px;
  }
  .selection-modal__close{
    top: 10px;
    right: 10px;
    --tron-close-size: 28px;
  }

  /* Footer "Générer" toujours accessible */
  .selection-modal__body{
    padding-bottom: 84px; /* réserve pour footer sticky */
  }
  #selectionFooter{
    position: sticky;
    bottom: 0;
    z-index: 2;
    padding: 10px 0 calc(12px + env(safe-area-inset-bottom));
    margin-top: 10px;
    background: linear-gradient(180deg, rgba(0,12,24,0), rgba(0,12,24,0.86) 22%, rgba(0,12,24,0.96));
    border-top: 1px solid rgba(0,255,255,0.22);
    backdrop-filter: blur(8px);
  }
  #selectionFooter .lb-sticky-actions{
    display:flex;
    justify-content:center;
    gap:10px;
  }
  #loadTrains{
    width: min(360px, 92vw);
    padding: 12px 16px;
    font-size: 1.05rem;
  }
}

/* Unifie le padding body (évite double système) */
@media (max-width: 720px){
  body.has-topbar-bottomnav{
    padding-top: calc(var(--lb-topbar-h, 56px) + env(safe-area-inset-top));
    padding-bottom: calc(var(--lb-bottomnav-h, 64px) + env(safe-area-inset-bottom));
  }
}


@media (max-width: 600px){
  /* Favoris plus compacts (mobile) */
  .fav-widget{ margin: 10px auto; padding: 8px; border-radius: 12px; }
  .fav-head{ margin-bottom: 8px; gap: 8px; }
  .fav-title{ font-size: .95rem; }
  .fav-btn{ padding: 6px 8px; border-radius: 9px; font-size: .85rem; }
  .fav-grid{ gap: 8px; }
  .fav-card{ padding: 8px; border-radius: 12px; }
  .fav-card-head{ gap: 8px; }
  .fav-tag{ font-size: .72rem; padding: 3px 8px; }
  .fav-meta{ margin-top: 6px; font-size: .82rem; }
  .fav-line{ margin-top: 6px; font-size: .82rem; line-height: 1.25; }
  .fav-times{ margin-top: 4px; gap: 6px; font-size: .9rem; }
}


/* --- Prefs: select gares (same look as inputs) --- */
.lb-station-select{
  width:100%;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid rgba(0,255,255,.22);
  background:rgba(255,255,255,.06);
  color:#e9ffff;
  outline:none;
  box-shadow: inset 0 0 0 1px rgba(0,255,255,.06);
  appearance:none;
  -webkit-appearance:none;
}
.lb-station-select:focus{
  border-color:rgba(0,255,255,.55);
  box-shadow:0 0 0 2px rgba(0,255,255,.18), inset 0 0 0 1px rgba(0,255,255,.08);
}
.lb-station-select option{ color:#0b0f1a; }

/* ===== HOME (simplifié) : état du trafic + météo compacte ===== */
.home-traffic-card{
  position: relative;
  overflow: hidden;
  background: rgba(0, 10, 18, 0.35);
  border: 2px solid rgba(0, 240, 255, 0.18);
  box-shadow: 0 0 0 1px rgba(0, 240, 255, 0.10), 0 10px 35px rgba(0,0,0,0.45);
  backdrop-filter: blur(6px);
}
.home-traffic-card::before{
  content:"";
  position:absolute; inset:-2px;
  border-radius: inherit;
  pointer-events:none;
  opacity: 0.12;
  background: radial-gradient(60% 120% at 0% 0%, rgba(0,240,255,0.35), transparent 55%),
              radial-gradient(60% 120% at 100% 100%, rgba(0,240,255,0.22), transparent 55%);
}
.home-traffic-card .traffic-inner{
  display:flex;
  align-items:flex-start;
  gap: 14px;
}
.home-traffic-card .traffic-dot{
  width: 18px; height: 18px;
  margin-top: 6px;
  border-radius: 999px;
  box-shadow: 0 0 0 2px rgba(255,255,255,0.06), 0 0 18px rgba(0,255,160,0.35);
}
.home-traffic-card .traffic-welcome{font-size:.78rem; color:rgba(224,240,255,0.75); margin-bottom:8px; letter-spacing:0.02em;}
.home-traffic-card .traffic-title{
  font-weight: 950;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-size: 1.15rem;
  margin-bottom: 4px;
}
.home-traffic-card .traffic-sub{
  color: rgba(224,240,255,0.92);
  font-size: 0.98rem;
  font-weight: 700;
}
.home-traffic-card .traffic-quote{
  margin-top: 14px;
  font-style: italic;
  color: rgba(180,220,255,0.85);
}
.home-traffic-card .traffic-hash{
  margin-top: 6px;
  font-weight: 900;
  letter-spacing: 0.10em;
  color: #00f0ff;
}

/* Niveaux trafic : bordure + dot */
.traffic-level--loading{ border-color: rgba(0,240,255,0.22) !important; }
.traffic-level--loading .traffic-dot{ background: rgba(0,240,255,0.55); box-shadow: 0 0 22px rgba(0,240,255,0.35); }

.traffic-level--green{ border-color: rgba(0,255,160,0.70) !important; }
.traffic-level--green .traffic-dot{ background: #00ffa0; box-shadow: 0 0 26px rgba(0,255,160,0.45); }

.traffic-level--amber{ border-color: rgba(255,170,0,0.80) !important; }
.traffic-level--amber .traffic-dot{ background: #ffb020; box-shadow: 0 0 26px rgba(255,170,0,0.45); }

.traffic-level--red{ border-color: rgba(255,60,90,0.85) !important; }
.traffic-level--red .traffic-dot{ background: #ff3c5a; box-shadow: 0 0 28px rgba(255,60,90,0.45); }


/* === HOME trafic: niveaux supplémentaires (jaune/orange) === */
.traffic-level--yellow{
  border-color: rgba(255, 209, 102, .95);
  box-shadow: 0 0 0 1px rgba(255,209,102,.25), 0 0 26px rgba(255,209,102,.18);
}
.traffic-level--yellow .traffic-dot{
  background: rgba(255,209,102, .95);
  box-shadow: 0 0 18px rgba(255,209,102,.55);
}
.traffic-level--orange{
  border-color: rgba(255, 160, 50, .95);
  box-shadow: 0 0 0 1px rgba(255,160,50,.25), 0 0 26px rgba(255,160,50,.18);
}
.traffic-level--orange .traffic-dot{
  background: rgba(255,160,50, .95);
  box-shadow: 0 0 18px rgba(255,160,50,.55);
}

/* === HOME: stats compactes (on garde uniquement "Moyenne 30 jours") === */
.home-card[forwarding="ber"] h2{ display:none !important; }
.home-card[forwarding="ber"] .ber-line1,
.home-card[forwarding="ber"] .ber-context,
.home-card[forwarding="ber"] .home-stats-panel,
.home-card[forwarding="ber"] .home-stats-item{ display:none !important; }
.home-card[forwarding="ber"]{ padding-top: 8px !important; padding-bottom: 8px !important; }
.home-card[forwarding="ber"] .ber-metric{
  margin-top: 0 !important;
  padding: 2px 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.home-card[forwarding="ber"] .ber-metric .value{
  font-size: .96rem !important;
}

/* Mobile: tout tient mieux sur l'écran d'accueil */
@media (max-width: 520px){
  .home-dashboard{ gap: 8px !important; }
  .home-card{ padding: 14px 14px !important; }
  .home-traffic-card .traffic-title{ font-size: 1.00rem !important; }
  .home-traffic-card .traffic-sub{ font-size: .84rem !important; }
  .home-traffic-card .traffic-quote{ font-size: .82rem !important; margin-top: 6px !important; }
  .home-traffic-card .traffic-hash{ font-size: .98rem !important; }
  .home-card[aria-label="Météo sur votre ligne"] h2{ font-size: .95rem !important; margin-bottom: 6px !important; }
.home-card[aria-label="Mes Bétaillères favorites"] h2{ font-size: .95rem !important; margin-bottom: 6px !important; line-height: 1.05 !important; }
  /* on enlève le #BER dans la carte trafic (reste le style, mais sans hashtag) */
  .home-traffic-card .traffic-hash{ display:none !important; }
  .wx-stations{ gap: 6px !important; }
  .wx-station{ padding: 8px 8px !important; }
  .wx-title{font-size:.62rem !important; letter-spacing:.04em !important; text-transform:none !important; text-align:center !important; line-height:1.1 !important;}
  .wx-now .wx-temp{font-size:.95rem !important;}
}

/* Météo : une seule ligne (2 gares côte à côte), très compacte */
.wx-stations{
  display:flex !important;
  flex-wrap: nowrap !important;
  gap: 10px !important;
  grid-template-columns: unset !important;
}
.wx-station{ flex: 1 1 0; padding: 10px 10px; }
.wx-row{ flex-direction: column !important; align-items: center !important; justify-content: center !important; gap: 6px !important; }
.wx-title{ margin-top: 0 !important; }
.wx-now{ justify-content: center !important; width: 100% !important; }
.wx-now .wx-details{ display:none !important; }
.wx-now .wx-main{ gap: 8px !important; }
.wx-now .wx-temp{ font-size: 1.05rem !important; }
#homeWxRisk{ display:none !important; }

/* Mobile : on garde le trafic lisible */
@media (max-width: 520px){
  .home-traffic-card .traffic-title{ font-size: 1.05rem; }
  .home-traffic-card .traffic-quote{ font-size: 0.95rem; }
}


/* Anti-débordement global (mobile/PWA) */
html, body{ overflow-x: hidden; }
*, *::before, *::after{ box-sizing: border-box; }

/* ==== Mobile HOME ultra-compact (fit écran) ==== */
@media (max-width: 420px){
  body{
    padding-left: 12px !important;
    padding-right: 12px !important;
    padding-top: calc(var(--top-bar-height, 64px) + 12px) !important;
    padding-bottom: calc(var(--bottom-bar-height, 74px) + 10px + env(safe-area-inset-bottom)) !important;
  }
  :root{
    --top-bar-height: 64px;
    --bottom-bar-height: 74px;
  }
  .top-bar__inner{ padding: 0 12px; gap: 10px; }
  .top-bar__brand-logos{ gap: 8px; }
  .top-bar__logo-icon{ height: 34px; }
  .top-bar__logo-text{ height: 22px; max-width: 46vw; }
  .top-bar__title{ font-size: 1.05rem; }
  .top-bar__social-link svg{ width: 14px; height: 14px; }

  .home-grid{ gap: 10px; }
  .home-card{ padding: 12px; border-radius: 16px; }
  .home-card h2{ font-size: 0.92rem; margin-bottom: 4px; }
  .home-card p{ margin-bottom: 6px; font-size: 0.82rem; }

  /* Traffic card compact */
  .home-traffic-card .traffic-inner{ gap: 10px; }
  .home-traffic-card .traffic-dot{ width: 14px; height: 14px; margin-top: 5px; }
  .home-traffic-card .traffic-title{ font-size: 0.94rem; }
  .home-traffic-card .traffic-sub{ font-size: 0.82rem; }
  .home-traffic-card .traffic-quote{ margin-top: 6px; font-size: 0.78rem; line-height: 1.18; }
  .home-traffic-card .traffic-hash{ margin-top: 3px; font-size: 0.82rem; }

  /* Weather compact */
  .wx-mini-row{ gap: 10px !important; }
  .wx-mini-card{ padding: 10px 10px !important; min-height: 54px !important; }
  .wx-mini-card .wx-temp{ font-size: 0.98rem !important; }
  .wx-mini-card .wx-city{ font-size: 0.78rem !important; }

  /* Ponctualité compact */
  .home-stat-row{ padding: 10px 12px !important; border-radius: 14px !important; }
  .home-stat-row .stat-title{ font-size: 0.86rem !important; }
  .home-stat-row .stat-value{ font-size: 0.98rem !important; }

  /* Favoris preview compact + no overflow */
  .home-fav-preview{ gap: 8px; margin-top: 8px; }
  .home-fav-row{ padding: 6px 8px; gap: 8px; }
  .home-fav-train{ font-size: 0.80rem; }
  .home-fav-meta{ font-size: 0.74rem; opacity: 0.92; }
  .home-fav-badge{
    font-size: 0.68rem;
    padding: 4px 7px;
    max-width: 92px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .home-fav-actions a{ padding: 8px 10px; font-size: 0.86rem; }
}


/* ===== HOME welcome line above traffic card ===== */
.home-welcome-line{
  margin: 0 0 8px 0;
  padding: 0;
  background: transparent;
  border: none;
  color: rgba(224,240,255,0.92);
  font-weight: 800;
  letter-spacing: .02em;
  font-size: .95rem;
}

/* ===== Traffic card: soft tinted background by level ===== */
.home-traffic-card{
  background: rgba(10, 20, 28, 0.55);
}
.home-traffic-card.traffic-level--green{
  background: rgba(34, 197, 94, 0.08);
}
.home-traffic-card.traffic-level--yellow{
  background: rgba(250, 204, 21, 0.08);
}
.home-traffic-card.traffic-level--orange{
  background: rgba(249, 115, 22, 0.08);
}
.home-traffic-card.traffic-level--red{
  background: rgba(239, 68, 68, 0.08);
}

/* Remove any leftover risk badge space if present */
#homeWxRisk{display:none !important;}

/* ===== Weather tiles: icon/temperature above city ===== */
.wx-station .wx-row{
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.wx-station .wx-now{
  font-size: clamp(1.05rem, 4.2vw, 1.25rem);
  line-height: 1.05;
}
.wx-station .wx-title{
  font-size: clamp(.78rem, 3.2vw, .95rem);
  letter-spacing: .04em;
  opacity: .95;
  text-transform: none;
  white-space: nowrap;
  overflow: visible;
  text-overflow: clip;
  max-width: 100%;
}

/* ===== Make HOME fit: tighten vertical rhythm on small screens ===== */
@media (max-width: 520px){
  .home-dashboard{gap: 10px;}
  .home-card{padding: 12px 12px;}
  .home-traffic-card .traffic-inner{gap: 10px;}
  .traffic-title{font-size: clamp(1.25rem, 5.2vw, 1.55rem);}
  .traffic-sub{font-size: clamp(.92rem, 3.6vw, 1.05rem);}
  .traffic-quote{font-size: .95rem; opacity: .85;}
  .traffic-hash{font-size: 1.05rem;}
  .home-welcome-line{margin-bottom: 8px; padding: 8px 12px;}
}


/* ===== HOME ultra-fit: harmoniser titres + réduire hauteurs (mobile) ===== */
@media (max-width: 480px){
  body{
    padding-left: 12px;
    padding-right: 12px;
  }

  .home-section{
    margin: 14px 0 18px;
    gap: 10px;
  }

  .home-card{
    padding: 12px;
    border-radius: 16px;
  }

  .home-card h2{
    font-size: 0.98rem;
    margin-bottom: 6px;
    line-height: 1.15;
  }

  /* Trafic card compact + harmonisé */
  .home-traffic-card .traffic-inner{ gap: 10px; }
  .home-traffic-card .traffic-dot{ width: 14px; height: 14px; margin-top: 4px; }
  .home-traffic-card .traffic-title{ font-size: 1.05rem; margin-bottom: 2px; line-height: 1.1; }
  .home-traffic-card .traffic-sub{ font-size: 0.88rem; }
  .home-traffic-card .traffic-quote{ margin-top: 8px; font-size: 0.80rem; line-height: 1.25; }
  .home-traffic-card .traffic-hashtag{ margin-top: 6px; font-size: 0.95rem; }

  /* Météo encore plus compacte */
  .wx-station{ padding: 8px 10px; border-radius: 14px; }
  .wx-row{ gap: 8px; }
  .wx-now .wx-icon{ font-size: 1.55rem; }
  .wx-now .wx-temp{ font-size: 1.25rem; }
  .wx-title{ font-size: 0.66rem; }

  /* Ponctualité (moins haut) */
  #homePunctualityRow{
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    border-radius: 14px !important;
  }
  #homePunctualityRow .title{
    font-size: 0.92rem !important;
    line-height: 1.1 !important;
  }
  #homePunctualityRow .value{
    font-size: 0.98rem !important;
    line-height: 1.1 !important;
  }

  /* Favoris preview (harmoniser + réduire) */
  .home-fav-preview{ gap: 8px; margin-top: 8px; }
  .home-fav-row{ padding: 8px 10px; border-radius: 14px; }
  .home-fav-train{ font-size: 0.92rem; }
  .home-fav-meta{ font-size: 0.78rem; margin-top: 2px; }
  .home-fav-pill{ padding: 5px 8px; font-size: 0.64rem; max-width: 46%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  .home-fav-actions{ margin-top: 8px; }
  .home-card .home-action{ padding: 7px 12px; font-size: 0.85rem; }

  /* Réduction des espaces entre gros blocs sur l'accueil */
  .home-grid{ gap: 10px; }
}
@media (max-width: 360px){
  /* très petits écrans: on gratte encore un peu */
  .home-traffic-card .traffic-quote{ display:none; }
  .home-welcome-line{ font-size: 0.90rem; }
  .home-card h2{ font-size: 0.94rem; }
}


  /* Ultra-compact mobile: reduce fonts/heights + keep 'Rechercher' visible */
  .manual-compact .field-caption{font-size:12px; width:34px; letter-spacing:0.02em;}
  .manual-compact .station-field{padding:10px 12px; gap:10px;}
  .manual-compact .station-input{
    height:34px;
    padding:0 10px;
    font-size:16px;
    border-radius:14px;
  }
  .manual-compact .swap-btn{
    width:44px;
    height:44px;
    margin-left:6px;
    align-self:center;
  }

  /* Remove big pill borders around Correspondances / Trains CFL */
  .manual-compact .option-toggle{
    border:none !important;
    background:transparent !important;
    box-shadow:none !important;
    padding:0 !important;
  }
  .manual-compact .option-toggle:hover{background:transparent !important;}
  .manual-compact .option-toggle input{margin-right:10px;}
  .manual-compact .option-toggle span{font-size:14px;}

  /* Make the main action button always reachable above bottom nav */
  .manual-compact .actions-main{
    position: sticky;
    bottom: calc(env(safe-area-inset-bottom) + 86px);
    z-index: 60;
    margin-top: 6px;
    padding: 6px 0 0;
    background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(7,15,30,0.55) 55%, rgba(7,15,30,0.75) 100%);
    backdrop-filter: blur(6px);
  }
  .manual-compact .proposer-btn{
    width: min(260px, 92%);
    padding: 10px 14px;
    font-size: 16px;
    border-radius: 16px;
  }

  /* Slightly tighter titles everywhere in the console */
  .manual-compact h2{font-size:26px; line-height:1.05;}
  .manual-compact .card-title{font-size:18px;}
  .manual-compact .station-label{font-size:12px;}
  .manual-compact .station-search{height:34px; padding:8px 10px; font-size:14px;}


/* === Mobile: éviter superposition Voie/Retard/Affluence (tableau trains) === */
@media (max-width: 520px){
  /* Un poil plus petit pour laisser respirer */
  #trainInfo table th,
  #trainInfo table td{
    font-size: 11px !important;
    padding: 2px 3px !important;
    line-height: 1.15 !important;
  }
  #trainInfo table thead th{
    font-size: 12px !important;
  }

  /* Les cellules qui contiennent des infos ajoutées doivent pouvoir "wrap" */
  #trainInfo table td{
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  /* Voie : empile (heure au-dessus, voie en dessous) -> plus de chevauchement */
  .voie-info{
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 2px !important;
    white-space: normal !important;
  }
  .voie-badge{
    font-size: 0.66em !important;
    padding: 1px 6px !important;
    max-width: 100%;
  }

  /* Retard : garde un rendu en lignes (déjà <br>) mais compacte un peu */
  .delay-strike{
    display: block;
    line-height: 1.05 !important;
  }
  .delayed, .retard{
    display: inline-block;
    line-height: 1.05 !important;
  }

  /* Pastilles affluence : plus petites pour ne pas recouvrir les numéros */
  .affluence-dot{
    width: 9px !important;
    height: 9px !important;
    margin-left: 4px !important;
  }

  /* Header train : autorise un micro-wrap sans casser l'alignement */
  th.train-header, .train-header{
    white-space: normal !important;
  }
  th.train-header a.train-link, .train-header a.train-link{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex-wrap: wrap;
  }
}


/* Harmonisation espaces sur l'accueil (sans changer la hauteur des cartes) */
@media (max-width: 768px){
  #home.home-section{
    gap: 12px !important;
    margin: 18px 0 18px !important;
  }
  #home.home-section > .home-card,
  #home.home-section > #favTrainsWidget,
  #home.home-section > .home-dashboard,
  #home.home-section > .home-fav-wrap{
    margin-top: 0 !important;
    margin-bottom: 0 !important;
  }
}


/* Carte intégrée */
#carte .map-embed-shell{
  border: 1px solid rgba(0, 240, 255, 0.25);
  border-radius: 14px;
  overflow: hidden;
  background: rgba(3, 10, 18, 0.88);
  box-shadow: inset 0 0 12px rgba(0, 240, 255, 0.08);
}
#carte .map-embed-shell iframe{
  width: 100%;
  height: calc(100dvh - var(--top-bar-height, 72px) - var(--bottom-bar-height, 84px) - 92px);
  min-height: 520px;
  border: 0;
  display: block;
  background: #07101b;
}

/* Mode carte plein écran sur smartphone: entre les barres fixes */
:root{ --carte-top-offset: 72px; --carte-bottom-offset: 84px; }
@media (max-width: 768px){
  #carte{ margin: 0 !important; }

  body.carte-fullscreen #home,
  body.carte-fullscreen #search,
  body.carte-fullscreen #favTrainsWidget,
  body.carte-fullscreen #disruptionsSummary,
  body.carte-fullscreen #trainInfo,
  body.carte-fullscreen #refreshContainer,
  body.carte-fullscreen #affluence,
  body.carte-fullscreen #multimedia,
  body.carte-fullscreen #statsConsole,
  body.carte-fullscreen .home-card{ display:none !important; }

  body.carte-fullscreen #carte,
  #carte:target{
    display:block !important;
    position: fixed !important;
    top: var(--carte-top-offset, var(--top-bar-height, 72px)) !important;
    left: 0 !important;
    right: 0 !important;
    bottom: var(--carte-bottom-offset, calc(max(var(--bottom-bar-height, 84px), var(--lb-bottomnav-h, 84px)) + var(--loisirs-viewbar-h, 0px) + env(safe-area-inset-bottom, 0px))) !important;
    width: 100vw !important;
    max-width: none !important;
    z-index: 1000 !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: #07101b;
    pointer-events: none;
    overflow: hidden !important;
  }
  body.carte-fullscreen #carte h2,
  body.carte-fullscreen #carte p,
  #carte:target h2,
  #carte:target p{ display:none !important; }

  body.carte-fullscreen #carte .map-embed-shell,
  #carte:target .map-embed-shell{
    position: absolute !important;
    inset: 0 !important;
    height: 100% !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    pointer-events: auto;
  }
  body.carte-fullscreen #carte .map-embed-shell iframe,
  #carte:target .map-embed-shell iframe{
    height: 100% !important;
    min-height: 100% !important;
  }

  body.carte-underlay #carte{
    position: relative !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    width: auto !important;
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
    opacity: 0 !important;
    z-index: -1 !important;
    pointer-events: none !important;
  }
}

@media (max-width: 768px){
  body.jeu-fullscreen #home,
  body.jeu-fullscreen #search,
  body.jeu-fullscreen #favTrainsWidget,
  body.jeu-fullscreen #disruptionsSummary,
  body.jeu-fullscreen #trainInfo,
  body.jeu-fullscreen #refreshContainer,
  body.jeu-fullscreen #affluence,
  body.jeu-fullscreen #multimedia,
  body.jeu-fullscreen #carte,
  body.jeu-fullscreen #statsConsole,
  body.jeu-fullscreen .home-card{ display:none !important; }

  body.jeu-fullscreen #jeuContainer{
    display:block !important;
    position: fixed !important;
    top: var(--carte-top-offset, var(--top-bar-height, 72px)) !important;
    left: 0 !important;
    right: 0 !important;
    bottom: var(--carte-bottom-offset, calc(max(var(--bottom-bar-height, 84px), var(--lb-bottomnav-h, 84px)) + var(--loisirs-viewbar-h, 0px) + env(safe-area-inset-bottom, 0px))) !important;
    width: 100vw !important;
    max-width: none !important;
    z-index: 1000 !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: #07101b;
    overflow: hidden !important;
  }
  body.jeu-fullscreen #jeuContainer h2,
  body.jeu-fullscreen #jeuContainer p{ display:none !important; }
  body.jeu-fullscreen #jeuContainer .map-embed-shell{
    position:absolute !important;
    inset:0 !important;
    height:100% !important;
    border:none !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }
  body.jeu-fullscreen #jeuContainer .map-embed-shell iframe{
    width:100% !important;
    height:100% !important;
    min-height:100% !important;
    border:0 !important;
    background:#07101b;
  }
}


/* === Navigation pages (1 onglet = 1 page) === */
#jeuContainer{ display:none !important; }
#jeuContainer .map-embed-shell{
  border: 1px solid rgba(0,240,255,.24);
  border-radius: 14px;
  overflow:hidden;
  background:#050d18;
  min-height: 420px;
}
#jeuContainer #jeuFrame{
  width:100%;
  height: min(70vh, 780px);
  border:0;
  display:block;
  background:#050d18;
}
body.loisirs-jeu-active #jeuContainer{ display:block !important; }
body.loisirs-jeu-active #multimedia{ display:none !important; }

.app-page{ display:none; }
.app-page.is-page-active{ display:block; }
body.page-home #home{ display:grid; }
body.page-favoris #favTrainsWidget{ display:block !important; }
body:not(.page-search) #disruptionsSummary{ display:none !important; }
body:not(.page-search) #refreshContainer{ display:none !important; }
body:not(.page-search) #trainInfo{ display:none !important; }

body.page-search #search,
body.page-carte #carte,
body.page-carte #affluence,
body.page-loisirs #divertissement,
body.page-loisirs #multimedia,
body.page-stats #stats{ display:block; }
/* Masquer visuellement la section Affluence (conservée dans le code/DOM) */
body.page-carte #affluence{ display:none !important; }




.top-bar__brand{
  margin-right: auto;
  padding-left: 2px;
}

.top-bar__route{
  display:none !important;
}

.top-bar__actions{
  margin-left: auto;
}

/* Réduit le diamètre du halo actif (desktop + mobile) */
.bottom-nav__item.active .bottom-nav__icon,
.bottom-nav__item[aria-current="page"] .bottom-nav__icon,
.bottom-nav__item.is-active .bottom-nav__icon,
.bottom-nav__item.active .bottom-nav__icon-img,
.bottom-nav__item[aria-current="page"] .bottom-nav__icon-img,
.bottom-nav__item.is-active .bottom-nav__icon-img{
  filter:
    drop-shadow(0 0 7px rgba(0, 255, 255, 0.95))
    drop-shadow(0 0 14px rgba(0, 214, 255, 0.72))
    drop-shadow(0 0 20px rgba(70, 240, 255, 0.4)) !important;
  transform: scale(1.06);
}

@media (max-width: 720px){
  .top-bar__inner{ gap: 8px; }
  .top-bar__brand-logos{ gap: 6px; }
  .top-bar__logo-text{ max-width: 34vw; }
    .top-bar__socials{ gap: 6px; }
  .top-bar__social-link svg{ width: 14px; height: 14px; }
  .top-bar__support{ padding: 6px 9px; font-size: 0.66rem; }
}

@media (max-width: 420px){
  .top-bar__logo-icon{ height: 31px !important; }
  .top-bar__logo-text{ height: 19px !important; max-width: 31vw !important; }
  .top-bar__social-link svg{ width: 13px; height: 13px; }
  .top-bar__support{ padding: 6px 8px; }
}

/* === LIVE compact buttons: épurés, centrés, sans débordement === */
.lb-live-card-actions{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:8px !important;
  align-items:center !important;
  justify-items:stretch !important;
  margin-top:6px !important;
}
.lb-live-card-actions button,
.lb-live-card-actions .lb-live-presence-btn{
  appearance:none;
  -webkit-appearance:none;
  margin:0 !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  min-height:30px !important;
  height:30px !important;
  padding:0 10px !important;
  border-radius:999px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  font-family:'Orbitron', sans-serif !important;
  font-size:.70rem !important;
  font-weight:800 !important;
  letter-spacing:.02em !important;
  box-sizing:border-box !important;
  box-shadow:none !important;
  transform:none !important;
}
.lb-live-card-actions button{
  border:1px solid rgba(0,240,255,.26) !important;
  background:linear-gradient(180deg, rgba(10,48,74,.88), rgba(7,32,52,.90)) !important;
  color:#dffcff !important;
}
.lb-live-card-actions button:hover,
.lb-live-card-actions .lb-live-presence-btn:hover{
  box-shadow:0 0 10px rgba(18,214,255,.16), inset 0 0 8px rgba(255,255,255,.03) !important;
  border-color:rgba(0,240,255,.44) !important;
}
.lb-live-card-actions .lb-live-presence-btn{
  border:1px solid rgba(0,240,255,.26) !important;
  background:linear-gradient(180deg, rgba(12,66,96,.88), rgba(8,40,64,.92)) !important;
  color:#eafcff !important;
}
.lb-live-card-actions [data-lb-signal-train]{
  color:#ffd66c !important;
  border-color:rgba(255,196,44,.28) !important;
  background:linear-gradient(180deg, rgba(43,60,22,.40), rgba(18,36,32,.72)) !important;
}
.lb-live-card-actions [data-lb-signal-train]:hover{
  border-color:rgba(255,196,44,.42) !important;
  box-shadow:0 0 10px rgba(255,194,40,.16), inset 0 0 8px rgba(255,255,255,.03) !important;
}

@media (max-width: 600px){
  .lb-live-card-actions{
    gap:7px !important;
    margin-top:5px !important;
  }
  .lb-live-card-actions button,
  .lb-live-card-actions .lb-live-presence-btn{
    min-height:28px !important;
    height:28px !important;
    padding:0 8px !important;
    font-size:.66rem !important;
  }
}



/* === LIVE harmonisation: densité uniforme type RailZ === */
.lb-live-card{
  padding:7px 8px !important;
  border-radius:13px !important;
}
.lb-live-card--ok{
  border-color: rgba(0,240,255,.30) !important;
  background: linear-gradient(180deg, rgba(11,33,52,.80), rgba(8,25,41,.95)) !important;
}
.lb-live-card--delay{
  border-color: rgba(255,146,43,.82) !important;
  background: linear-gradient(180deg, rgba(33,24,12,.78), rgba(20,14,8,.92)) !important;
  box-shadow: 0 8px 22px rgba(0,0,0,.2), 0 0 14px rgba(255,146,43,.22) !important;
}
.lb-live-card--cancel{
  border-color: rgba(255,77,109,.85) !important;
  background: linear-gradient(180deg, rgba(34,14,20,.76), rgba(20,10,14,.92)) !important;
  box-shadow: 0 8px 22px rgba(0,0,0,.22), 0 0 14px rgba(255,77,109,.24) !important;
}
.lb-live-card-top{
  gap:8px !important;
  align-items:flex-start !important;
}
.lb-live-train-row{
  gap:6px !important;
  align-items:flex-start !important;
}
.lb-live-train{
  font-size:.88rem !important;
  line-height:1.02 !important;
}
.lb-live-card--delay .lb-live-train{
  color:#ff922b !important;
  text-shadow:0 0 8px rgba(255,146,43,.35) !important;
}
.lb-live-card--cancel .lb-live-train{
  color:#ff4d6d !important;
  text-shadow:0 0 8px rgba(255,77,109,.35) !important;
}
.lb-live-route,
.lb-live-schedule{
  font-size:.74rem !important;
  line-height:1.08 !important;
  margin-top:1px !important;
}
.lb-live-right{
  gap:3px !important;
  min-width:fit-content;
}
.lb-live-status-row{
  gap:4px !important;
  justify-content:flex-end !important;
  flex-wrap:nowrap !important;
}
.lb-live-passenger{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:18px !important;
  padding:0 5px !important;
  border-radius:999px !important;
  border:1px solid rgba(0,240,255,.14) !important;
  background:rgba(255,255,255,.03) !important;
  font-size:.58rem !important;
  line-height:1 !important;
}
.lb-live-status,
.lb-live-user-alert{
  min-height:18px !important;
  padding:0 7px !important;
  font-size:.60rem !important;
  line-height:1 !important;
  border-radius:999px !important;
}
.lb-live-user-alert{
  margin-top:0 !important;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.lb-live-sncf-cause{
  margin-top:5px !important;
  padding:4px 7px !important;
  font-size:.62rem !important;
  line-height:1.14 !important;
  border-radius:9px !important;
}
.lb-live-meta{
  margin-top:5px !important;
  gap:5px !important;
  padding-top:5px !important;
  border-top:1px solid rgba(255,255,255,.06) !important;
}
.lb-live-chip{
  display:inline-flex !important;
  align-items:center !important;
  min-height:18px !important;
  padding:0 7px !important;
  font-size:.60rem !important;
  line-height:1 !important;
  border-radius:999px !important;
  white-space:nowrap !important;
  max-width:100% !important;
}
.lb-live-card-actions{
  margin-top:5px !important;
}
.lb-live-presence{
  margin-top:4px !important;
  gap:5px !important;
}
.lb-live-presence-count{
  font-size:.66rem !important;
  min-width:auto !important;
}
@media (max-width: 600px){
  .lb-live-card{
    padding:6px 7px !important;
    border-radius:12px !important;
  }
  .lb-live-train{
    font-size:.84rem !important;
  }
  .lb-live-route,
  .lb-live-schedule{
    font-size:.70rem !important;
  }
  .lb-live-status,
  .lb-live-user-alert,
  .lb-live-chip{
    font-size:.57rem !important;
  }
  .lb-live-status,
  .lb-live-user-alert,
  .lb-live-passenger,
  .lb-live-chip{
    min-height:17px !important;
  }
  .lb-live-status,
  .lb-live-user-alert,
  .lb-live-chip{
    padding:0 6px !important;
  }
  .lb-live-meta{
    gap:4px !important;
    margin-top:4px !important;
    padding-top:4px !important;
  }
  .lb-live-sncf-cause{
    margin-top:4px !important;
    font-size:.60rem !important;
    padding:4px 6px !important;
  }
}

/* ===== Premium mobile refresh (Mon compte / Mon profil troupeau) ===== */
#lbAuthModal::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background: radial-gradient(circle at 55% 22%, rgba(2,24,42,.52), rgba(1,8,18,.68) 62%, rgba(0,4,10,.78));
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
#lbAuthModal .lb-auth-card{
  position:relative;
  z-index:1;
}
#lbAuthModal .lb-auth-card h3{
  font-size:1.28rem !important;
  font-weight:800 !important;
  color:#eafcff !important;
  letter-spacing:.01em;
  display:flex;
  align-items:center;
  gap:8px;
}
#lbAuthModal .lb-auth-card h3::before{
  content:"";
  width:20px;
  height:20px;
  display:inline-block;
  flex:0 0 20px;
  background: center/contain no-repeat url('/ber_icons_pack/compte.svg');
  filter: drop-shadow(0 0 8px rgba(77,236,255,.55));
}
#lbAuthModal .lb-profile-card{
  margin: 5px 0 12px !important;
  padding: 11px !important;
  gap: 10px !important;
  border-radius: 18px !important;
  border: none !important;
  background:
    radial-gradient(circle at 50% -8%, rgba(56,166,255,.2), transparent 54%),
    linear-gradient(165deg, rgba(9,26,45,.86), rgba(5,15,28,.94) 68%, rgba(2,9,20,.97)) !important;
  box-shadow:
    0 10px 26px rgba(0,0,0,.34),
    inset 0 1px 0 rgba(185,252,255,.08),
    inset 0 -8px 20px rgba(0,0,0,.32),
    inset 0 0 18px rgba(0,204,255,.09),
    0 0 16px rgba(53,224,255,.14) !important;
}
#lbAuthModal .lb-profile-title{
  font-size:.73rem !important;
  letter-spacing:.12em !important;
  color:#9edbe7 !important;
  opacity:.92;
}
#lbAuthModal .lb-grade-inline{
  border: 1px solid rgba(115,245,255,.28) !important;
  border-radius: 17px !important;
  background:
    radial-gradient(circle at 50% -18%, rgba(56,223,255,.16), transparent 52%),
    linear-gradient(180deg, rgba(7,22,38,.92), rgba(3,13,24,.95)) !important;
  box-shadow:
    inset 0 0 0 1px rgba(153,244,255,.03),
    inset 0 -10px 22px rgba(0,0,0,.28),
    0 6px 18px rgba(0,0,0,.24) !important;
  padding: 12px 11px 11px !important;
  gap: 7px !important;
}
#lbAuthModal .lb-grade-inline .lb-grade-pseudo{
  font-size:.94rem !important;
  font-weight:800 !important;
  color:#ecfcff !important;
  text-shadow:0 1px 0 rgba(0,0,0,.34);
}
#lbAuthModal .lb-grade-inline .lb-grade-avatar-wrap{
  position:relative;
  width:106px;
  height:106px;
  margin: 0 auto;
  align-self: center;
  border-radius:50%;
  overflow:visible;
  display:grid;
  place-items:center;
  border:1px solid rgba(162,251,255,.96);
  box-shadow:
    0 0 0 1px rgba(142,250,255,.95),
    0 0 0 2px rgba(52,234,255,.52),
    0 0 16px rgba(56,233,255,.74),
    0 0 34px rgba(27,206,255,.58),
    inset 0 1px 7px rgba(199,250,255,.25);
  background: radial-gradient(circle at 50% 35%, rgba(12,52,84,.7), rgba(4,17,29,.92) 74%);
  isolation:isolate;
}
#lbAuthModal .lb-grade-inline .lb-grade-avatar-mask{
  width:100%;
  height:100%;
  border-radius:50%;
  overflow:hidden;
  display:grid;
  place-items:center;
  position:relative;
  z-index:2;
}
#lbAuthModal .lb-grade-inline .lb-grade-avatar-wrap::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:50%;
  background:radial-gradient(circle, rgba(53,236,255,.68) 0%, rgba(28,206,255,.34) 38%, rgba(0,189,255,.12) 57%, rgba(0,239,255,0) 74%);
  filter: blur(7px);
  opacity:.95;
  pointer-events:none;
  z-index:0;
}
#lbAuthModal .lb-grade-inline .lb-grade-avatar-wrap::after{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:50%;
  border:1px solid rgba(123,247,255,.46);
  box-shadow: inset 0 0 14px rgba(35,204,255,.24);
  pointer-events:none;
  z-index:1;
}
#lbAuthModal .lb-grade-inline #lbProfileGradeImage{
  position:relative;
  width:100% !important;
  height:100% !important;
  border-radius:50%;
  object-fit:cover;
  object-position: 50% 30% !important;
  transform: scale(1.48) translateY(-8px) !important;
  transform-origin: center 40% !important;
  clip-path: none;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  z-index:1;
  opacity:0;
  will-change: transform, opacity, filter;
}
#lbAuthModal .lb-grade-inline #lbProfileGradeImage.lb-grade-appear{
  animation: lbGradePokemonAppearModal .64s cubic-bezier(.19,.85,.28,1) forwards !important;
}
@keyframes lbGradePokemonAppearModal{
  0%{
    opacity:0;
    transform: scale(.68) translateY(8px) !important;
    filter: brightness(1.45) saturate(1.4);
  }
  56%{
    opacity:1;
    transform: scale(1.66) translateY(-10px) !important;
    filter: brightness(1.14) saturate(1.2);
  }
  100%{
    opacity:1;
    transform: scale(1.48) translateY(-8px) !important;
    filter: brightness(1) saturate(1);
  }
}
#lbAuthModal .lb-grade-inline .lb-grade-rank-badge{
  position:absolute !important;
  right:-16px !important;
  top:-8px !important;
  left:auto !important;
  transform:none !important;
  min-width:0 !important;
  padding:0 !important;
  border:none !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  z-index:9 !important;
  pointer-events:none !important;
}
#lbAuthModal .lb-grade-inline .lb-grade-rank-badge__label{
  display:none !important;
}
#lbAuthModal .lb-grade-inline .lb-grade-rank-badge__value{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-size:.72rem !important;
  font-weight:900 !important;
  color:#fff8dd !important;
  text-shadow:0 1px 1px rgba(71,44,0,.45);
}
#lbAuthModal .lb-grade-inline .lb-grade-rank-badge__value .lb-rank-medal{
  width:51px !important;
  height:51px !important;
  filter: drop-shadow(0 5px 12px rgba(0,0,0,.38)) drop-shadow(0 0 9px rgba(255,209,92,.44));
}
#lbAuthModal .lb-grade-inline .lb-grade-rank-badge__value .lb-rank-medal img{
  width:100%;
  height:100%;
}
#lbAuthModal .lb-grade-inline .lb-grade-rank-badge__value .lb-profile-rank-number{
  min-width:42px;
  height:42px;
  padding:0 10px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-size:.92rem !important;
  background:radial-gradient(circle at 35% 30%, #fff0b8, #d19a1f 54%, #8c5e00);
  border:1px solid rgba(255,231,167,.8);
  box-shadow: 0 5px 12px rgba(0,0,0,.35), 0 0 11px rgba(255,208,94,.36);
}
#lbAuthModal .lb-grade-inline .lb-grade-name{
  margin-top:4px !important;
  margin-left:auto !important;
  margin-right:auto !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  align-self:center;
  text-align:center;
  border-radius:999px;
  width:fit-content;
  max-width:100%;
  padding:2px 7px 2px !important;
  border:1px solid rgba(113,244,255,.4);
  background:linear-gradient(180deg, rgba(7,27,43,.8), rgba(4,17,29,.9));
  color:#e6fbff !important;
  font-size:.84rem !important;
  font-weight:700 !important;
  letter-spacing:.02em;
  white-space: nowrap !important;
  line-height: 1 !important;
}
#lbAuthModal .lb-grade-inline .lb-grade-points{
  margin-top:1px !important;
  font-size:.76rem !important;
  color:#9bc2d7 !important;
}
#lbAuthModal .lb-grade-inline .lb-grade-progress{
  width:min(280px,100%) !important;
  margin-top:4px !important;
}
#lbAuthModal .lb-grade-inline .lb-grade-progress-track{
  height:10px !important;
  border-radius:999px !important;
  border:1px solid rgba(108,242,255,.34) !important;
  background:linear-gradient(180deg, rgba(6,20,32,.95), rgba(4,13,24,.95)) !important;
  box-shadow: inset 0 2px 7px rgba(0,0,0,.34) !important;
}
#lbAuthModal .lb-grade-inline .lb-grade-progress-fill{
  background:linear-gradient(90deg, #12caef 0%, #47d9ff 35%, #69b7ff 100%) !important;
  box-shadow: 0 0 12px rgba(88,226,255,.4) !important;
}
#lbAuthModal .lb-grade-inline .lb-grade-next{
  margin-top:8px !important;
  font-size:.67rem !important;
  line-height:1.28 !important;
  color:#b3d0e0 !important;
  text-align:center !important;
}
#lbAuthModal .lb-auth-actions{
  gap:9px !important;
  margin-top: 9px !important;
  justify-items:center;
}
#lbAuthModal .lb-auth-actions #lbBtnSubmit{
  grid-column: 1 / -1;
  width: min(220px, 100%) !important;
  justify-self: center;
}
#lbAuthModal .lb-auth-actions #lbBtnPrefs,
#lbAuthModal .lb-auth-actions #lbBtnRanking,
#lbAuthModal .lb-auth-actions #lbBtnLogout{
  border:1px solid rgba(109,241,255,.42) !important;
  border-radius:13px !important;
  background:
    linear-gradient(180deg, rgba(9,28,44,.92), rgba(5,17,30,.95)) !important;
  color:#e8fbff !important;
  box-shadow:
    inset 0 1px 0 rgba(184,247,255,.08),
    0 0 0 1px rgba(29,124,160,.22),
    0 5px 14px rgba(0,0,0,.3),
    0 0 12px rgba(58,220,255,.13) !important;
  transition: transform .12s ease, box-shadow .16s ease, border-color .16s ease;
}
#lbAuthModal .lb-auth-actions #lbBtnPrefs:hover,
#lbAuthModal .lb-auth-actions #lbBtnRanking:hover,
#lbAuthModal .lb-auth-actions #lbBtnLogout:hover{
  border-color:rgba(140,248,255,.65) !important;
  box-shadow:
    inset 0 1px 0 rgba(200,249,255,.1),
    0 0 0 1px rgba(39,154,186,.24),
    0 8px 18px rgba(0,0,0,.34),
    0 0 15px rgba(70,230,255,.2) !important;
}
#lbAuthModal .lb-auth-actions #lbBtnPrefs:active,
#lbAuthModal .lb-auth-actions #lbBtnRanking:active,
#lbAuthModal .lb-auth-actions #lbBtnLogout:active{
  transform:translateY(1px) scale(.995);
  box-shadow:
    inset 0 2px 10px rgba(0,0,0,.25),
    0 3px 10px rgba(0,0,0,.26),
    0 0 10px rgba(62,219,255,.18) !important;
}




#favTrainsWidget .fav-aff-stop-schema .affls-unit{
  border-color: rgba(120, 240, 255, .72) !important;
  background: rgba(4, 14, 24, .86) !important;
  box-shadow:
    0 0 0 1px rgba(0,240,255,.16),
    inset 0 0 10px rgba(0,0,0,.22) !important;
}
#favTrainsWidget .fav-aff-stop-schema .affls-unit > span{
  border-right-color: rgba(120, 240, 255, .52) !important;
}
#favTrainsWidget .fav-aff-stop-schema .affls-unit > span:last-child{
  border-right:none !important;
}
#favTrainsWidget .fav-aff-stop-schema .affls-unk .affls-unit{
  border-color: rgba(120, 240, 255, .52) !important;
  background: rgba(4, 14, 24, .64) !important;
}
#favTrainsWidget .fav-aff-stop-schema .aff-arrow{
  color: rgba(126, 247, 255, .78) !important;
  text-shadow: 0 0 6px rgba(0,240,255,.35) !important;
}



/* === LB QUICK WINS SAFE 2026-04-29 === */
/* Micro-interactions globales, volontairement légères et non destructives */
:where(button, .home-action, .mini-btn, .lb-community-btn, .faq-btn, .bottom-nav__item, .home-fav-row, .quick-card){
  -webkit-tap-highlight-color: transparent;
}
:where(button, .home-action, .mini-btn, .lb-community-btn, .faq-btn, .bottom-nav__item, .home-fav-row, .quick-card):active{
  transform: scale(.975);
}
@media (prefers-reduced-motion: no-preference){
  :where(button, .home-action, .mini-btn, .lb-community-btn, .faq-btn, .bottom-nav__item, .home-fav-row, .quick-card){
    transition: transform .14s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease, background .18s ease;
  }
  .home-card{
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
  }
  .home-card:hover{
    border-color: rgba(0,240,255,.36);
    box-shadow: inset 0 0 18px rgba(0,240,255,.14), 0 12px 26px rgba(0,0,0,.28), 0 0 14px rgba(0,240,255,.08);
  }
}

/* Toast discret pour feedback utilisateur */
.lb-toast-host{
  position: fixed;
  left: 50%;
  bottom: calc(var(--bottom-bar-height, 84px) + env(safe-area-inset-bottom, 0px) + 12px);
  transform: translateX(-50%);
  z-index: 5000;
  display: grid;
  gap: 8px;
  width: min(380px, calc(100vw - 28px));
  pointer-events: none;
}
.lb-toast{
  justify-self: center;
  max-width: 100%;
  padding: 9px 13px;
  border-radius: 999px;
  border: 1px solid rgba(0,240,255,.42);
  background: linear-gradient(180deg, rgba(7,24,38,.96), rgba(3,12,22,.96));
  color: #dffcff;
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: .02em;
  box-shadow: 0 12px 24px rgba(0,0,0,.36), 0 0 18px rgba(0,240,255,.18), inset 0 0 0 1px rgba(0,240,255,.10);
  opacity: 0;
  transform: translateY(10px) scale(.98);
  animation: lbToastInOut 2.8s ease forwards;
}
@keyframes lbToastInOut{
  0%{ opacity:0; transform:translateY(10px) scale(.98); }
  12%,82%{ opacity:1; transform:translateY(0) scale(1); }
  100%{ opacity:0; transform:translateY(8px) scale(.985); }
}

/* FAQ en accordéon léger : lisible, plus compact, sans changer le HTML source */
#faqModal .faq-item{
  cursor: pointer;
  position: relative;
  padding-right: 34px !important;
}
#faqModal .faq-item::after{
  content: '⌄';
  position: absolute;
  right: 12px;
  top: 10px;
  color: #7ef7ff;
  font-weight: 900;
  text-shadow: 0 0 8px rgba(0,240,255,.45);
  transition: transform .18s ease;
}
#faqModal .faq-item:not(.is-open) p{
  display: none;
}
#faqModal .faq-item.is-open{
  border-color: rgba(126,247,255,.86) !important;
  box-shadow: 0 0 14px rgba(0,240,255,.12), inset 0 0 10px rgba(0,240,255,.08);
}
#faqModal .faq-item.is-open::after{
  transform: rotate(180deg);
}

/* Affluence : contours + respiration douce sur les segments, sans modifier les calculs */
.affluence-card, .affluence-detail-card, .affluence-panel, .affluence-row, .aff-row, .affluence-line{
  box-sizing: border-box;
}
:where(.affluence-card, .affluence-detail-card, .affluence-panel){
  border-color: rgba(0,240,255,.32) !important;
  box-shadow: inset 0 0 14px rgba(0,240,255,.10), 0 0 12px rgba(0,240,255,.08);
}
@media (prefers-reduced-motion: no-preference){
  :where(.aff-segment, .affluence-segment, .affluence-bar span, .aff-bar span, .aff-seg){
    animation: lbAffBreath 2.8s ease-in-out infinite;
  }
}
@keyframes lbAffBreath{
  0%,100%{ filter: brightness(1); }
  50%{ filter: brightness(1.12); }
}


/* ===== Liens légaux déplacés dans Mon compte (mobile premium, discret) ===== */
.lb-account-legal-links{
  margin:10px auto 0;
  padding-top:8px;
  width:100%;
  max-width:330px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:6px 12px;
  border-top:1px solid rgba(126,247,255,.16);
  font-size:.68rem;
  line-height:1.2;
  opacity:.82;
}
.lb-account-legal-links a{
  color:#9defff;
  text-decoration:none;
  border-bottom:1px dotted rgba(126,247,255,.45);
  text-shadow:0 0 6px rgba(0,240,255,.22);
}
.lb-account-legal-links a:hover,
.lb-account-legal-links a:focus-visible{
  color:#ffffff;
  border-bottom-color:rgba(126,247,255,.9);
  outline:none;
}
@media (max-width:600px){
  .lb-account-legal-links{
    margin-top:8px;
    padding-top:7px;
    font-size:.62rem;
    gap:5px 10px;
  }
}

/* Les liens légaux ne sont plus affichés en bas des pages app : ils vivent dans Mon compte. */
body > .legal-links{ display:none !important; }


/* ===== La Voix du Bétail — accueil compact premium ===== */
#home .live-wall-card--home,
.live-wall-card--home.home-comments-compact,
.home-card[aria-label="Mur de commentaires"]{
  padding: 9px 10px 7px !important;
  gap: 5px !important;
  border-radius: 18px !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(0,240,255,.18), transparent 34%),
    linear-gradient(180deg, rgba(7,35,53,.88), rgba(4,18,31,.94)) !important;
  box-shadow:
    inset 0 0 0 1px rgba(126,247,255,.08),
    inset 0 0 18px rgba(0,240,255,.09),
    0 10px 22px rgba(0,0,0,.22) !important;
  overflow: hidden !important;
}

.live-wall-card--home .live-wall-head{
  margin: 0 0 4px !important;
  min-height: 22px !important;
  align-items: center !important;
}
.live-wall-card--home .live-wall-title{
  font-size: .86rem !important;
  line-height: 1 !important;
  letter-spacing: .035em !important;
  text-shadow: 0 0 9px rgba(0,240,255,.42) !important;
}
.live-wall-card--home .faq-btn{
  height: 22px !important;
  min-height: 22px !important;
  padding: 2px 8px 2px 7px !important;
  font-size: .58rem !important;
  opacity: .9 !important;
}
.live-wall-card--home .faq-btn::before{
  width: 13px !important;
  height: 13px !important;
  font-size: .56rem !important;
}

.live-wall-card--home .lb-community-actions{
  grid-template-columns: 1fr 1fr !important;
  gap: 8px !important;
  margin: 1px 0 3px !important;
}
.live-wall-card--home .lb-community-btn{
  min-height: 28px !important;
  height: 28px !important;
  padding: 4px 9px !important;
  border-radius: 999px !important;
  font-size: .70rem !important;
  line-height: 1 !important;
  background: linear-gradient(180deg, rgba(6,31,49,.92), rgba(3,17,29,.96)) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.035), 0 0 10px rgba(0,240,255,.08) !important;
}
.live-wall-card--home .lb-community-btn--signal{
  color: #ffd36a !important;
  border-color: rgba(255,201,82,.36) !important;
  background:
    radial-gradient(circle at 20% 0%, rgba(255,198,58,.20), transparent 48%),
    linear-gradient(180deg, rgba(52,41,15,.66), rgba(5,21,32,.94)) !important;
}
.live-wall-card--home .lb-community-btn--live{
  color: #dbffef !important;
  border-color: rgba(69,255,139,.25) !important;
  background:
    radial-gradient(circle at 20% 0%, rgba(45,255,115,.20), transparent 45%),
    linear-gradient(180deg, rgba(7,45,48,.75), rgba(4,18,31,.96)) !important;
}
.live-wall-card--home .lb-live-dot{
  width: 8px !important;
  height: 8px !important;
  flex-basis: 8px !important;
}

.live-wall-card--home .live-wall-feed--home,
.home-comments-compact .live-wall-feed--home,
.home-card[aria-label="Mur de commentaires"] .live-wall-feed--home{
  max-height: 58px !important;
  gap: 3px !important;
  margin: 0 !important;
  padding: 0 2px 0 0 !important;
  overflow: auto !important;
  scrollbar-width: thin;
}
.live-wall-card--home .live-wall-item--home,
.home-card[aria-label="Mur de commentaires"] .live-wall-item--home{
  position: relative !important;
  padding: 3px 6px 3px 8px !important;
  min-height: 0 !important;
  border-radius: 8px !important;
  border: 1px solid rgba(0,240,255,.10) !important;
  border-left: 2px solid rgba(0,240,255,.34) !important;
  background: linear-gradient(90deg, rgba(0,240,255,.065), rgba(0,10,20,.18)) !important;
  box-shadow: none !important;
}
.live-wall-card--home .live-wall-item--home:has(.lb-red),
.home-card[aria-label="Mur de commentaires"] .live-wall-item--home:has(.lb-red){
  border-left-color: rgba(255,77,109,.75) !important;
  background: linear-gradient(90deg, rgba(255,77,109,.09), rgba(0,10,20,.16)) !important;
}
.live-wall-card--home .live-wall-item--home:has(.lb-orange),
.home-card[aria-label="Mur de commentaires"] .live-wall-item--home:has(.lb-orange){
  border-left-color: rgba(255,159,26,.72) !important;
  background: linear-gradient(90deg, rgba(255,159,26,.085), rgba(0,10,20,.16)) !important;
}
.live-wall-card--home .live-wall-meta{
  margin: 0 0 1px !important;
  gap: 5px !important;
  font-size: .58rem !important;
  line-height: 1 !important;
  opacity: .72 !important;
}
.live-wall-card--home .live-wall-item-text{
  display: block !important;
  -webkit-line-clamp: unset !important;
  font-size: .66rem !important;
  line-height: 1.05 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.live-wall-card--home .fav-comment-btn{
  font-size: .72rem !important;
  margin-left: 4px !important;
  opacity: .85 !important;
}

.live-wall-card--home .live-wall-form,
.home-card[aria-label="Mur de commentaires"] .live-wall-form{
  gap: 7px !important;
  margin: 3px 0 0 !important;
  align-items: center !important;
}
.live-wall-card--home .live-wall-form input,
.home-card[aria-label="Mur de commentaires"] .live-wall-form input{
  height: 30px !important;
  min-height: 30px !important;
  padding: 0 10px !important;
  border-radius: 12px !important;
  font-size: .70rem !important;
  background: rgba(2,14,25,.72) !important;
  border: 1px solid rgba(126,247,255,.26) !important;
  box-shadow: inset 0 0 12px rgba(0,240,255,.08) !important;
}
.live-wall-card--home .live-wall-form button,
.home-card[aria-label="Mur de commentaires"] .live-wall-form button{
  height: 30px !important;
  min-height: 30px !important;
  min-width: 78px !important;
  max-width: 96px !important;
  padding: 0 12px !important;
  margin: 0 !important;
  border-radius: 999px !important;
  font-size: .72rem !important;
  box-shadow: inset 0 0 12px rgba(0,240,255,.20), 0 0 10px rgba(0,240,255,.18) !important;
}
@media (max-width: 420px){
  .live-wall-card--home .live-wall-feed--home{ max-height: 54px !important; }
  .live-wall-card--home .live-wall-item-text{ font-size: .62rem !important; }
  .live-wall-card--home .live-wall-form input{ font-size: .66rem !important; }
}



/* ===== Patch mobile compte BER : modal centrée + checkbox propre ===== */
.lb-facebook-warning{
  display:grid;
  gap:4px;
  margin:8px 0 12px;
  padding:10px 11px;
  border-radius:12px;
  border:1px solid rgba(255,197,60,.62);
  background:linear-gradient(135deg, rgba(255,183,35,.12), rgba(255,122,24,.07));
  color:#ffe7a8;
  font-size:.78rem;
  line-height:1.28;
  box-shadow:inset 0 0 12px rgba(255,197,60,.08), 0 0 12px rgba(255,197,60,.12);
}
.lb-facebook-warning strong{
  color:#ffd66c;
  font-size:.82rem;
  line-height:1.15;
}
.lb-facebook-warning span{
  display:block;
}
.rgpd .rgpd-text{
  flex:1 1 auto;
  min-width:0;
  display:block;
}
.rgpd a{
  display:inline;
  white-space:normal;
  overflow-wrap:anywhere;
}
#lbRegisterModal{
  z-index:4100;
  align-items:center;
  justify-content:center;
  padding:16px;
  box-sizing:border-box;
}
#lbRegisterModal .lb-auth-card{
  width:min(430px, calc(100vw - 32px));
  max-height:calc(100dvh - 32px);
  overflow-y:auto;
  overflow-x:hidden;
  box-sizing:border-box;
  margin:auto;
}
#lbRegisterModal .lb-auth-fields{
  gap:9px;
}
#lbRegisterModal .lb-auth-fields label:not(.rgpd){
  font-size:.84rem;
  line-height:1.15;
}
#lbRegisterModal .lb-auth-fields input:not([type="checkbox"]){
  font-size:.9rem;
  min-height:40px;
}
#lbRegisterModal .rgpd{
  display:flex;
  align-items:flex-start;
  gap:9px;
  font-size:.82rem;
  line-height:1.28;
  margin-top:3px;
}
#lbRegisterModal .rgpd input[type="checkbox"]{
  flex:0 0 auto;
  width:18px;
  height:18px;
  margin:1px 2px 0 0;
}
#lbRegisterModal .lb-auth-actions{
  margin-top:8px;
  justify-content:center;
}
#lbRegisterModal .lb-auth-actions .auth-button{
  width:min(260px, 100%);
  max-width:none;
}
@media (max-width:600px){
  #lbRegisterModal{
    padding:10px;
    align-items:center !important;
    justify-content:center !important;
  }
  #lbRegisterModal .lb-auth-card{
    width:calc(100vw - 20px) !important;
    max-width:380px;
    max-height:calc(100dvh - 20px);
    padding:12px 12px 10px !important;
    border-radius:15px;
  }
  #lbRegisterModal .lb-auth-card h3{
    font-size:1.12rem !important;
    margin-bottom:4px;
    padding-right:28px;
  }
  #lbRegisterModal .lb-auth-msg{
    font-size:.78rem !important;
    line-height:1.2;
    margin:5px 0 7px;
    padding:5px 8px;
    min-height:0;
  }
  #lbRegisterModal .lb-facebook-warning{
    margin:6px 0 8px;
    padding:8px 9px;
    font-size:.76rem;
    line-height:1.24;
  }
  #lbRegisterModal .lb-facebook-warning strong{
    font-size:.80rem;
  }
  #lbRegisterModal .lb-auth-fields{
    gap:7px !important;
    margin-bottom:8px;
  }
  #lbRegisterModal .lb-auth-fields label:not(.rgpd){
    font-size:.80rem;
  }
  #lbRegisterModal .lb-auth-fields input:not([type="checkbox"]){
    min-height:38px;
    padding:8px 10px;
    font-size:.86rem !important;
  }
  #lbRegisterModal .rgpd{
    gap:8px;
    font-size:.76rem;
    line-height:1.22;
    align-items:flex-start;
    padding:2px 0;
  }
  #lbRegisterModal .rgpd input[type="checkbox"]{
    width:17px;
    height:17px;
    margin-top:1px;
  }
  #lbRegisterModal .rgpd .rgpd-text{
    flex:1 1 auto;
    min-width:0;
  }
  #lbRegisterModal .lb-auth-actions{
    margin-top:7px;
  }
  #lbRegisterModal .lb-auth-actions .auth-button{
    min-height:38px;
    padding:9px 14px;
    font-size:.9rem;
  }
}
@media (max-width:370px){
  #lbRegisterModal .lb-auth-card{
    width:calc(100vw - 12px) !important;
    padding:10px !important;
  }
  #lbRegisterModal .lb-facebook-warning,
  #lbRegisterModal .rgpd{
    font-size:.72rem;
  }
}

/* GTFS-RT prioritaire quand l’API SNCF garde une suppression périmée
   IMPORTANT : on garde la priorité GTFS-RT, mais on ne transforme PAS un retard en “nouveau terminus” bleu.
   - remise en circulation + retard GTFS-RT => ORANGE
   - remise en circulation + 0 min => horaire normal/neutre
*/
.gtfs-retard--restored .gtfs-retard-new{
  color:#ff8a00 !important;
  font-weight:900 !important;
  text-shadow:0 0 7px rgba(255,126,0,.90),0 0 14px rgba(255,126,0,.45) !important;
}
.gtfs-restored{
  color:#e0f0ff !important;
  font-weight:900 !important;
  text-shadow:none !important;
}

/* Opt-in notifications à la création de compte */
.lb-reg-alerts-optin{
  margin-top:8px;
  border:1px solid rgba(255, 207, 90, .35);
  background:rgba(255, 207, 90, .08);
  border-radius:12px;
  padding:10px;
}
.lb-reg-alerts-optin small{
  display:block;
  margin-top:3px;
  color:rgba(224,240,255,.82);
  line-height:1.3;
}

/* ===== Source historique : inline-2 ===== */
@supports (-webkit-touch-callout: none) {
  /* Allège effets lourds sur iOS */
  .heavy-blur { backdrop-filter:none !important; -webkit-backdrop-filter:none !important; }
  .heavy-shadow { box-shadow:none !important; }
}

/* ===== Source historique : lb-typography ===== */
/* Global typography tuning — “standard app” sizing */
html{font-size:14px;}
@media (min-width:768px){html{font-size:15px;}}
@media (min-width:1200px){html{font-size:16px;}}

body{
  font-size:1rem;
  line-height:1.45;
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}

/* Headings: less “hero”, more app-like */
h1{font-size:1.4rem !important; line-height:1.15;}
h2{font-size:1.2rem !important; line-height:1.2;}
h3{font-size:1.05rem !important; line-height:1.25;}
h4,h5,h6{font-size:1rem !important;}

/* Generic UI text */
small,.small,.muted,.hint,.subtitle,.subtle{font-size:.85rem !important;}
label, input, select, textarea, button{font-size:.95rem;}

/* Buttons / pills */
button, .btn, .button, .pill, .chip{
  font-size:.9rem !important;
}

/* Tables */
table, .table{font-size:.92rem;}
th{font-size:.85rem;}
td{font-size:.92rem;}

/* Bottom navigation (mobile) */
.bottom-nav__item{
  font-size:.75rem !important;
}
.bottom-nav__icon{
  font-size:2.05rem !important;
  line-height:1;
  display:block;
}

/* Keep ALL bottom-nav icons/items on a single row (PC + mobile) */
.bottom-nav__items{
  display:grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  grid-auto-flow: column;
  gap: 6px;
}
.bottom-nav__item{
  min-width: 0;
}
@media (max-width: 720px){
  .bottom-nav__items{
    grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    gap: 2px !important;
  }
}

/* Fav widgets + cards: keep key numbers readable but reduce labels */
.fav-title, .fav-title-text, .fav-header-title, .widget-title{
  font-size:1.05rem !important;
}
.fav-subtitle, .fav-meta, .fav-label, .fav-detail, .fav-stops-title-text{
  font-size:.85rem !important;
}
.fav-times, .fav-time, .time, .horaire{font-size:1.05rem !important;}
.big-number, .stat-value{font-size:1.8rem !important;}

/* Inputs in preference panels */
.prefs-modal input, .prefs-modal select, .prefs-modal textarea{
  font-size:.95rem !important;
}

/* Prevent “hover-only visibility” issues on touch: make action buttons always visible */
@media (hover:none){
  .hover-actions, .hover-reveal, .hover-only{opacity:1 !important; visibility:visible !important; transform:none !important;}
}

/* ===== Source historique : homeFitPatch ===== */
/* ===== HOME: fit in one screen on mobile + no horizontal truncation ===== */
html, body{
  max-width:100%;
  overflow-x:hidden;
}
*, *::before, *::after{ box-sizing:border-box; }

:root{
  --home-gap: 14px;
  --home-pad: 14px;
  --home-radius: 18px;
}

/* Make main home content leave room for bottom nav (PWA safe area) */
.home-section{
  padding-bottom: calc(92px + env(safe-area-inset-bottom));
}

/* Home cards must never exceed viewport */
.home-dashboard, .home-card{
  max-width: 100%;
  min-width: 0;
}
.home-dashboard{
  gap: var(--home-gap);
}
.home-card{
  padding: var(--home-pad);
  border-radius: var(--home-radius);
}

/* TRAFFIC card: keep compact */
.home-traffic-card .traffic-inner{
  gap: 12px;
}
.home-traffic-card .traffic-title{
  font-size: clamp(1.15rem, 4.8vw, 1.55rem);
  letter-spacing: .06em;
}
.home-traffic-card .traffic-sub{
  font-size: clamp(.95rem, 3.6vw, 1.1rem);
  opacity: .95;
}
.home-traffic-card .traffic-quote{
  font-size: clamp(.9rem, 3.5vw, 1.05rem);
  line-height: 1.15;
  margin-top: 10px;
}
.home-traffic-card .traffic-hash{
  font-size: clamp(.95rem, 3.7vw, 1.1rem);
  margin-top: 6px;
}

/* WEATHER: one line, no overflow */
.wx-stations{
  display:flex;
  gap: 10px;
  flex-wrap: nowrap;
}
.wx-station{
  flex: 1 1 0;
  min-width: 0;
}
.wx-row{
  display:flex;
  align-items:center;
  gap: 10px;
  min-width: 0;
}
.wx-now{
  font-size: clamp(1.05rem, 4.4vw, 1.35rem);
  white-space: nowrap;
  flex: 0 0 auto;
}
.wx-title{
  font-size: clamp(.95rem, 3.8vw, 1.15rem);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

/* Compact the "Ponctualité hier" row so it stays visible */
.ber-metric{
  padding: 8px 10px;
}
.ber-metric .value{
  font-size: clamp(0.98rem, 3.9vw, 1.12rem);
}

/* Favorites preview: keep it short and readable */
#homeFavPreview .favpreview-row{
  padding: 10px 12px;
  gap: 10px;
}
#homeFavPreview .favpreview-train{
  font-size: clamp(1.05rem, 4.2vw, 1.25rem);
}
#homeFavPreview .favpreview-meta{
  font-size: clamp(.9rem, 3.4vw, 1rem);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#homeFavPreview .favpreview-badge{
  font-size: .85rem;
  padding: 6px 10px;
}

/* Mobile: tighter spacing so Traffic + Weather + Punctuality + Fav preview fits without scroll */
@media (max-width: 430px){
  :root{ --home-gap: 12px; --home-pad: 12px; }
  .home-traffic-card{ padding: 12px; }
  .home-traffic-card .traffic-dot{ width: 18px; height: 18px; }
  .wx-stations{ gap: 8px; }
  .ber-metric{ padding: 10px 12px; }
  .home-card h2{ font-size: 1.05rem; margin: 0 0 10px; }
}

/* Prevent any accidental 100vw elements from causing overflow */
[class*="nav"], .bottom-nav, .bottom-bar, #bottomNav{
  max-width: 100%;
}

/* ===== Source historique : lb-visual-refresh-v1 ===== */
/* ===== Refresh visuel accueil / app shell ===== */
:root{
  --lb-bg-1:#06111d;
  --lb-bg-2:#081827;
  --lb-card:#091a2b;
  --lb-card-2:#0c2135;
  --lb-line:rgba(97, 237, 255, .24);
  --lb-line-strong:rgba(97, 237, 255, .45);
  --lb-glow:rgba(0, 240, 255, .22);
  --lb-text:#e9fbff;
  --lb-muted:#a5d8e7;
  --lb-orange:rgba(255, 155, 50, .22);
}

body{
  background:
    radial-gradient(circle at top center, rgba(0,240,255,.10), transparent 34%),
    linear-gradient(180deg, #07111c 0%, #071523 40%, #081a29 100%) !important;
}

.top-bar{
  background:
    linear-gradient(180deg, rgba(18, 43, 66, .72), rgba(8, 18, 34, .96)),
    linear-gradient(135deg, rgba(7,15,30,.98), rgba(12,24,44,.96)) !important;
  border-bottom:1px solid rgba(0,240,255,.42) !important;
  box-shadow:0 10px 26px rgba(0,0,0,.35), 0 0 22px rgba(0,240,255,.12) !important;
}

.top-bar__route-pill{
  background:linear-gradient(135deg, rgba(5,20,34,.88), rgba(10,32,52,.78)) !important;
  border-color:rgba(0,240,255,.38) !important;
  box-shadow:inset 0 0 14px rgba(0,240,255,.14), 0 0 18px rgba(0,240,255,.10) !important;
}

.top-bar__support{
  box-shadow:0 6px 18px rgba(255,170,40,.35), inset 0 0 0 1px rgba(255,255,255,.28) !important;
}

#home{
  margin-top: 4px;
}

.home-dashboard{
  grid-template-columns: 1.12fr .88fr !important;
  gap: 14px !important;
  align-items: stretch !important;
}

#homeWelcomeLine,
.home-welcome-line{
  font-size: clamp(1.05rem, .45vw + .96rem, 1.3rem) !important;
  font-weight: 900 !important;
  color: var(--lb-text) !important;
  text-shadow: 0 0 16px rgba(0,240,255,.18) !important;
  letter-spacing: -.01em !important;
  margin: 0 0 8px 0 !important;
}

.home-card,
.live-wall-card,
.home-card[aria-label="Mes Bétaillères favorites"]{
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(9, 23, 37, .92), rgba(8, 18, 30, .94)) !important;
  border: 1px solid var(--lb-line) !important;
  border-radius: 20px !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.03),
    inset 0 0 24px rgba(0,240,255,.05),
    0 14px 30px rgba(0,0,0,.28),
    0 0 16px rgba(0,240,255,.08) !important;
  backdrop-filter: blur(10px);
}

.home-card::before,
.live-wall-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.04), transparent 28%),
    radial-gradient(circle at top right, rgba(0,240,255,.10), transparent 34%);
  pointer-events:none;
}

.home-card h2,
.live-wall-title{
  position:relative;
  z-index:1;
  margin: 0 0 12px 0 !important;
  font-size: clamp(1.02rem, .3vw + .98rem, 1.18rem) !important;
  font-weight: 900 !important;
  letter-spacing: -.01em !important;
  color: #8ef5ff !important;
  text-shadow: 0 0 12px rgba(0,240,255,.18);
}

.home-card[aria-label="Info trafic"]{
  border-color: rgba(0,255,170,.24) !important;
  box-shadow:
    inset 0 0 26px rgba(0,255,170,.05),
    0 14px 30px rgba(0,0,0,.28),
    0 0 18px rgba(0,255,170,.08) !important;
}
.home-card[aria-label="Info trafic"] h2{
  text-align:left !important;
  padding-left: 2px !important;
}
.traffic-split{
  gap: 10px !important;
}
.traffic-split-row{
  position:relative;
  min-height: 62px;
  align-items:center !important;
  padding: 12px 14px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(97,237,255,.12) !important;
  background:
    linear-gradient(135deg, rgba(8,25,40,.84), rgba(6,15,24,.62)) !important;
  box-shadow: inset 0 0 14px rgba(0,240,255,.05) !important;
}
.traffic-split-row::before{
  content:"";
  position:absolute;
  inset:auto auto 0 0;
  width: 54px;
  height: 3px;
  border-radius: 999px;
  background: linear-gradient(90deg, rgba(0,255,170,.92), rgba(0,240,255,0));
  opacity:.9;
}
.traffic-split-line{
  font-size: clamp(.96rem, .26vw + .9rem, 1.08rem) !important;
  font-weight: 900 !important;
  color: #eefcff !important;
  letter-spacing: -.01em !important;
}
.traffic-pill{
  min-width: 118px;
  justify-content:center;
  text-align:center;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  font-size: .72rem !important;
  font-weight: 900 !important;
  letter-spacing: .05em !important;
  box-shadow: inset 0 0 10px rgba(255,255,255,.03), 0 0 14px rgba(0,0,0,.18);
}
.traffic-pill--green{
  background: linear-gradient(135deg, rgba(18,115,67,.48), rgba(34,197,94,.16)) !important;
  border-color: rgba(34,197,94,.58) !important;
  color:#abffcf !important;
}
.traffic-pill--yellow{
  background: linear-gradient(135deg, rgba(145,110,18,.44), rgba(250,204,21,.16)) !important;
  border-color: rgba(250,204,21,.5) !important;
}
.traffic-pill--orange{
  background: linear-gradient(135deg, rgba(149,78,16,.44), rgba(251,146,60,.16)) !important;
  border-color: rgba(251,146,60,.54) !important;
}
.traffic-pill--red{
  background: linear-gradient(135deg, rgba(120,22,22,.50), rgba(239,68,68,.18)) !important;
  border-color: rgba(239,68,68,.54) !important;
}
.traffic-pill--loading{
  background: linear-gradient(135deg, rgba(0,80,105,.40), rgba(0,240,255,.12)) !important;
}

.home-card[aria-label="Météo sur votre ligne"]{
  border-color: rgba(97,237,255,.24) !important;
}
.wx-stations{
  gap: 10px !important;
}
.wx-station{
  border-radius: 16px !important;
  background:
    linear-gradient(180deg, rgba(12,28,44,.74), rgba(8,18,30,.68)) !important;
  border: 1px solid rgba(97,237,255,.16) !important;
  min-height: 104px;
  display:flex;
  align-items:center;
}
.wx-row{
  width:100%;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
}
.wx-now{
  justify-content:center !important;
  gap: 10px !important;
  width:100%;
  font-size: 1.2rem !important;
}
.wx-now .wx-main{
  gap: 10px !important;
}
.wx-now .wx-icon{
  font-size: 2rem !important;
  filter: drop-shadow(0 0 10px rgba(255,255,255,.12));
}
.wx-now .wx-temp{
  font-size: clamp(1.45rem, .35vw + 1.35rem, 1.7rem) !important;
  font-weight: 900 !important;
}
.wx-title{
  width:100%;
  text-align:center !important;
  color: #dffbff !important;
  font-size: .8rem !important;
  letter-spacing: .04em !important;
}

.home-punct-card{
  border-color: rgba(255,155,50,.28) !important;
  box-shadow:
    inset 0 0 24px rgba(255,155,50,.05),
    0 14px 30px rgba(0,0,0,.28),
    0 0 18px rgba(255,155,50,.10) !important;
}
.home-punct-card h2{
  margin-bottom: 8px !important;
}
.home-punct-chart-host{
  min-height: 112px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.home-punct-chart-wrap{
  width: 96px !important;
  height: 96px !important;
  filter: drop-shadow(0 0 14px rgba(255,155,50,.14));
}

.live-wall-card--home{
  border-color: rgba(97,237,255,.28) !important;
}
.live-wall-head{
  margin-bottom: 6px !important;
}
.live-wall-badge{
  min-width: 34px !important;
  height: 34px;
  padding: 0 10px !important;
  background: linear-gradient(135deg, rgba(0,30,46,.95), rgba(0,18,30,.80)) !important;
  border-color: rgba(97,237,255,.30) !important;
  box-shadow: 0 0 14px rgba(0,240,255,.10) !important;
}
.live-wall-feed--home{
  max-height: 190px !important;
  padding-right: 4px !important;
}
.live-wall-item,
.live-wall-empty{
  border-radius: 14px !important;
  border: 1px solid rgba(97,237,255,.12) !important;
  background:
    linear-gradient(180deg, rgba(6,16,26,.90), rgba(8,22,36,.76)) !important;
  box-shadow: inset 0 0 10px rgba(0,240,255,.04) !important;
}
.live-wall-item-text{
  color: #ecfbff !important;
  line-height: 1.28 !important;
}
.live-wall-meta{
  color: #95d8ea !important;
}
.live-wall-form{
  gap: 8px !important;
  align-items:center;
}
.live-wall-form input{
  min-height: 42px;
  border-radius: 12px !important;
  border: 1px solid rgba(97,237,255,.26) !important;
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(240,247,250,.90)) !important;
  color: #153041 !important;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.08) !important;
}
.live-wall-form .auth-button{
  min-width: 112px !important;
  min-height: 42px;
  border-radius: 12px !important;
  border: 1px solid rgba(0,240,255,.46) !important;
  background: linear-gradient(135deg, rgba(0,173,255,.36), rgba(0,240,255,.18)) !important;
  color: #eafcff !important;
  box-shadow: inset 0 0 16px rgba(0,240,255,.12), 0 0 12px rgba(0,240,255,.08) !important;
}

.home-card[aria-label="Mes Bétaillères favorites"]{
  margin-top: 2px;
}
.home-fav-preview{
  gap: 9px !important;
}
.home-fav-row{
  position:relative;
  padding: 10px 12px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(97,237,255,.14) !important;
  background: linear-gradient(180deg, rgba(10,22,35,.82), rgba(8,16,26,.70)) !important;
  box-shadow: inset 0 0 10px rgba(0,240,255,.05) !important;
}
.home-fav-row::after{
  content:"";
  position:absolute;
  inset: auto 12px 0 12px;
  height:1px;
  background: linear-gradient(90deg, rgba(0,240,255,0), rgba(0,240,255,.34), rgba(0,240,255,0));
}
.home-fav-train{
  font-size: .92rem !important;
  letter-spacing: .03em !important;
}
.home-fav-meta{
  color: #a6d9e7 !important;
}
.home-fav-badge .fav-state-badge,
.home-fav-pill{
  border-radius: 999px !important;
  box-shadow: 0 0 12px rgba(0,0,0,.14);
}

.bottom-nav{
  background:
    linear-gradient(180deg, rgba(8,16,28,.90), rgba(6,14,24,.98)),
    linear-gradient(0deg, rgba(0,240,255,.08), transparent 56%) !important;
  border-top: 1px solid rgba(97,237,255,.30) !important;
  box-shadow: 0 -8px 24px rgba(0,0,0,.34), 0 0 18px rgba(0,240,255,.10) !important;
}
.bottom-nav__item{
  position:relative;
  border-radius: 14px;
  padding: 6px 4px 7px !important;
  transition: transform .14s ease, color .16s ease, filter .16s ease, background .16s ease !important;
}
.bottom-nav__item:active{
  transform: scale(.96);
}
.bottom-nav__item.active,
.bottom-nav__item[aria-current="page"],
.bottom-nav__item.is-active{
  background: linear-gradient(180deg, rgba(0,240,255,.14), rgba(0,240,255,.04)) !important;
}
.bottom-nav__item.active::before,
.bottom-nav__item[aria-current="page"]::before,
.bottom-nav__item.is-active::before{
  content:"";
  position:absolute;
  top:-2px;
  left:18%;
  right:18%;
  height:3px;
  border-radius:999px;
  background: linear-gradient(90deg, rgba(0,240,255,0), rgba(0,240,255,.92), rgba(0,240,255,0));
  box-shadow: 0 0 14px rgba(0,240,255,.52);
}
.bottom-nav__label{
  font-size: .7rem;
}

@media (max-width: 700px){
  .home-dashboard{
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) !important;
    gap: 10px !important;
  }
  .home-card,
  .live-wall-card{
    border-radius: 18px !important;
    padding: 10px 10px !important;
  }
  #homeWelcomeLine,
  .home-welcome-line{
    font-size: .88rem !important;
    margin-bottom: 4px !important;
  }
  .home-card[aria-label="Info trafic"] h2,
  .home-card[aria-label="Météo sur votre ligne"] h2,
  .home-punct-card h2,
  .live-wall-title{
    margin-bottom: 8px !important;
    font-size: .98rem !important;
    text-align:center !important;
  }
  .traffic-split-row{
    min-height: 52px;
    padding: 8px 9px !important;
    border-radius: 14px !important;
  }
  .traffic-split-row::before{
    width: 40px;
  }
  .traffic-split-line{
    font-size: .82rem !important;
  }
  .traffic-pill{
    min-width: 74px;
    max-width: 74px !important;
    font-size: .54rem !important;
    padding: 5px 7px !important;
  }
  .wx-station{
    min-height: 42px;
    padding: 2px 3px !important;
    background: transparent !important;
    border: none !important;
    box-shadow:none !important;
  }
  .wx-now{
    font-size: .96rem !important;
    gap: 6px !important;
  }
  .wx-now .wx-icon{
    font-size: 1.15rem !important;
  }
  .wx-now .wx-temp{
    font-size: 1.08rem !important;
  }
  .wx-title{
    font-size: .65rem !important;
  }
  .home-punct-chart-wrap{
    width: 78px !important;
    height: 78px !important;
  }
  .live-wall-feed--home{
    max-height: 154px !important;
  }
  .live-wall-item--home .live-wall-item-text{
    font-size: .75rem !important;
  }
  .live-wall-form input{
    min-height: 38px;
  }
  .live-wall-form .auth-button{
    min-width: 94px !important;
    min-height: 38px;
  }
  .home-fav-row{
    padding: 8px 9px !important;
  }
}

@media (max-width: 420px){
  .bottom-nav__icon{ font-size: 1.82rem !important; }
  .bottom-nav__icon-img{ width: 30px !important; height: 30px !important; }
  .bottom-nav__label{ font-size: .64rem !important; }
}

/* ===== Source historique : home-favorites-badge-hotfix ===== */
@media (min-width: 1025px){
  #homeFavSlot .home-fav-badge,
  #homeFavSlot .home-fav-row .fav-state-badge{
    font-size: .58rem !important;
    letter-spacing: 0 !important;
    line-height: 1 !important;
    padding: 3px 7px !important;
    white-space: nowrap !important;
    max-width: none !important;
    min-width: 0 !important;
  }
  #homeFavSlot .home-fav-row .fav-state-live,
  #homeFavSlot .home-fav-row .fav-state-running{
    font-size: .60rem !important;
    padding: 3px 8px !important;
  }
  #homeFavSlot .home-fav-row .fav-state-live::before,
  #homeFavSlot .home-fav-row .fav-state-running::before{
    width: 7px !important;
    height: 7px !important;
    margin-right: 5px !important;
  }
  #homeFavSlot .home-fav-head{
    grid-template-columns: minmax(0, 1fr) auto !important;
  }
}

/* ===== Source historique : lb-traffic-premium-safe ===== */
/* ===== La Bétaillère — Info trafic premium animé (safe, sans toucher à la logique) ===== */
.home-card.home-traffic-premium,
.home-card[aria-label="Info trafic"]{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  border-color:rgba(0,240,255,.30) !important;
  background:
    radial-gradient(circle at 20% 0%, rgba(0,240,255,.16), transparent 38%),
    linear-gradient(180deg, rgba(9,38,58,.84), rgba(4,18,32,.88)) !important;
  box-shadow:
    inset 0 0 0 1px rgba(126,247,255,.08),
    inset 0 0 24px rgba(0,240,255,.10),
    0 10px 26px rgba(0,0,0,.26) !important;
}
.home-card.home-traffic-premium::after,
.home-card[aria-label="Info trafic"]::after{
  content:"";
  position:absolute;
  inset:-40% auto -40% -70%;
  width:55%;
  background:linear-gradient(90deg, transparent, rgba(126,247,255,.16), transparent);
  transform:skewX(-18deg);
  animation:lbTrafficScanner 5.8s ease-in-out infinite;
  pointer-events:none;
  z-index:-1;
}
@keyframes lbTrafficScanner{
  0%, 18%{ left:-75%; opacity:0; }
  32%{ opacity:1; }
  58%{ left:118%; opacity:.75; }
  70%, 100%{ left:118%; opacity:0; }
}
.home-card[aria-label="Info trafic"] h2{
  margin-bottom:2px !important;
  text-align:center;
  letter-spacing:.03em;
  text-shadow:0 0 10px rgba(0,240,255,.55);
}
.traffic-subline{
  text-align:center;
  margin:-1px 0 8px;
  font-size:.58rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(204,248,255,.70);
}
.home-card[aria-label="Info trafic"] .traffic-split{
  display:grid !important;
  gap:8px !important;
}
.home-card[aria-label="Info trafic"] .traffic-split-row{
  position:relative;
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  min-height:48px;
  padding:9px 10px !important;
  border-radius:16px !important;
  overflow:hidden;
  border:1px solid rgba(126,247,255,.22) !important;
  background:
    linear-gradient(180deg, rgba(5,21,35,.86), rgba(2,12,24,.78)) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.025), 0 0 14px rgba(0,240,255,.07) !important;
  transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.home-card[aria-label="Info trafic"] .traffic-split-row:hover{
  transform:translateY(-1px);
  border-color:rgba(126,247,255,.40) !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04), 0 0 18px rgba(0,240,255,.12) !important;
}
.home-card[aria-label="Info trafic"] .traffic-split-row::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.55;
  background:radial-gradient(circle at 10% 50%, var(--traffic-glow, rgba(0,240,255,.18)), transparent 54%);
  pointer-events:none;
}
.home-card[aria-label="Info trafic"] .traffic-split-row::after{
  content:"";
  position:absolute;
  left:10px;
  right:10px;
  bottom:5px;
  height:1px;
  background:linear-gradient(90deg, transparent, var(--traffic-line, rgba(126,247,255,.45)), transparent);
  opacity:.65;
  pointer-events:none;
}
.home-card[aria-label="Info trafic"] .traffic-split-line{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  color:#eaffff !important;
  font-size:.78rem !important;
  font-weight:900 !important;
  text-shadow:0 0 8px rgba(0,240,255,.22);
}
.home-card[aria-label="Info trafic"] .traffic-split-line::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--traffic-dot, #7ef7ff);
  box-shadow:0 0 10px var(--traffic-dot, #7ef7ff), 0 0 16px var(--traffic-dot, #7ef7ff);
  flex:0 0 auto;
}
.home-card[aria-label="Info trafic"] .traffic-pill{
  position:relative;
  z-index:1;
  max-width:88px !important;
  min-width:76px;
  justify-content:center;
  padding:5px 8px !important;
  border-radius:999px !important;
  color:#06131d !important;
  font-size:.54rem !important;
  line-height:1.05 !important;
  letter-spacing:.02em;
  white-space:normal !important;
  text-align:center;
  text-shadow:none !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.32), 0 0 12px var(--traffic-pill-glow, rgba(0,240,255,.20)) !important;
}
.traffic-row--green,
.home-card[aria-label="Info trafic"] .traffic-split-row:has(.traffic-pill--green){
  --traffic-dot:#35f58a;
  --traffic-glow:rgba(35,245,138,.24);
  --traffic-line:rgba(35,245,138,.58);
  --traffic-pill-glow:rgba(35,245,138,.26);
}
.traffic-row--yellow,
.home-card[aria-label="Info trafic"] .traffic-split-row:has(.traffic-pill--yellow){
  --traffic-dot:#ffd45c;
  --traffic-glow:rgba(255,212,92,.25);
  --traffic-line:rgba(255,212,92,.62);
  --traffic-pill-glow:rgba(255,212,92,.30);
}
.traffic-row--orange,
.home-card[aria-label="Info trafic"] .traffic-split-row:has(.traffic-pill--orange){
  --traffic-dot:#ff9a2e;
  --traffic-glow:rgba(255,154,46,.27);
  --traffic-line:rgba(255,154,46,.64);
  --traffic-pill-glow:rgba(255,154,46,.32);
}
.traffic-row--red,
.home-card[aria-label="Info trafic"] .traffic-split-row:has(.traffic-pill--red){
  --traffic-dot:#ff4d6d;
  --traffic-glow:rgba(255,77,109,.27);
  --traffic-line:rgba(255,77,109,.68);
  --traffic-pill-glow:rgba(255,77,109,.34);
}
.traffic-row--loading,
.home-card[aria-label="Info trafic"] .traffic-split-row:has(.traffic-pill--loading){
  --traffic-dot:#7ef7ff;
  --traffic-glow:rgba(0,240,255,.18);
  --traffic-line:rgba(126,247,255,.48);
  --traffic-pill-glow:rgba(0,240,255,.20);
}
.home-card[aria-label="Info trafic"] .traffic-pill--green{ background:linear-gradient(180deg,#7dffb0,#21d46d) !important; border-color:rgba(125,255,176,.72) !important; }
.home-card[aria-label="Info trafic"] .traffic-pill--yellow{ background:linear-gradient(180deg,#ffe78e,#ffc94a) !important; border-color:rgba(255,231,142,.75) !important; }
.home-card[aria-label="Info trafic"] .traffic-pill--orange{ background:linear-gradient(180deg,#ffbd72,#ff8a1a) !important; border-color:rgba(255,189,114,.75) !important; }
.home-card[aria-label="Info trafic"] .traffic-pill--red{ background:linear-gradient(180deg,#ff8aa0,#ff3f61) !important; border-color:rgba(255,138,160,.75) !important; color:#fff !important; text-shadow:0 0 6px rgba(0,0,0,.22) !important; }
.home-card[aria-label="Info trafic"] .traffic-pill--loading{ background:linear-gradient(180deg,#9ffcff,#34d8f3) !important; border-color:rgba(159,252,255,.75) !important; }

/* Voix du Bétail — lignes moins tableur, plus premium */
.live-wall-feed--home{
  gap:4px !important;
}
.live-wall-item--home{
  border-radius:9px !important;
  border:1px solid rgba(126,247,255,.10) !important;
  background:linear-gradient(90deg, rgba(0,240,255,.055), rgba(0,12,22,.16)) !important;
}
.live-wall-item--home .live-wall-meta{
  opacity:.82;
}
.live-wall-item--home .live-wall-item-text{
  color:#e9fbff;
}
.fav-comment-btn{
  font-size:.78rem !important;
  margin-left:5px !important;
  filter:drop-shadow(0 0 5px rgba(255,77,109,.45));
}

/* Tableau dynamique — boutons plus cohérents */
.home-card[aria-label="Tableau dynamique"] .home-action,
.home-card[aria-label="Tableau dynamique"] button{
  border-radius:999px !important;
  border-color:rgba(126,247,255,.38) !important;
  background:linear-gradient(180deg, rgba(7,35,55,.78), rgba(3,18,32,.78)) !important;
  color:#dffcff !important;
  box-shadow:inset 0 0 0 1px rgba(0,240,255,.08), 0 0 10px rgba(0,240,255,.10) !important;
}
.home-card[aria-label="Tableau dynamique"] .home-action:hover,
.home-card[aria-label="Tableau dynamique"] button:hover{
  border-color:rgba(126,247,255,.70) !important;
  box-shadow:inset 0 0 0 1px rgba(0,240,255,.12), 0 0 15px rgba(0,240,255,.22) !important;
}

/* Accessibilité : animation calme si demandé par l'utilisateur */
@media (prefers-reduced-motion: reduce){
  .home-card.home-traffic-premium::after,
  .home-card[aria-label="Info trafic"]::after{ animation:none !important; }
}
@media (max-width:700px){
  .traffic-subline{ display:none; }
  .home-card[aria-label="Info trafic"] .traffic-split{ gap:7px !important; }
  .home-card[aria-label="Info trafic"] .traffic-split-row{ min-height:54px; padding:9px 8px !important; }
  .home-card[aria-label="Info trafic"] .traffic-split-line{ font-size:.72rem !important; }
  .home-card[aria-label="Info trafic"] .traffic-pill{ min-width:66px; max-width:76px !important; font-size:.50rem !important; padding:5px 6px !important; }
}

/* ===== Source historique : lb-final-legend-aff-clean ===== */
/* === Ajustements propres légende + fiche train affluence === */
.table-legend-modal .legend-row--wide{ align-items:center; }
.table-legend-modal .legend-affline{ display:inline-flex; align-items:center; gap:4px; white-space:nowrap; flex:0 0 auto; }
.table-legend-modal .legend-affline i{ width:12px; height:12px; border-radius:999px; display:inline-block; border:1px solid rgba(255,255,255,.18); }
.table-legend-modal .legend-affline span{ font-size:.58rem; opacity:.92; }
.table-legend-modal .legend-cell .new-start{ color:#39a8ff; font-weight:900; text-shadow:0 0 6px rgba(57,168,255,.55); }
.table-legend-modal .legend-cell .added-stop{ color:#00ffa6; font-weight:900; text-shadow:0 0 6px rgba(0,255,166,.45); }
.train-detail-aff-summary{ display:none !important; }

/* ===== Source historique : lb-fix-live-names-gare-v17 ===== */
/* FIX LIVE : plus d'emoji/compo collé au nom + nom limité proprement */
.lb-live-card-top > div:first-child{
  min-width:0 !important;
  flex:1 1 auto !important;
}
.lb-live-train-row{
  min-width:0 !important;
  display:block !important;
}
.lb-live-train{
  display:block !important;
  max-width:100% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  padding-right:4px !important;
}
/* V25: la composition doit rester visible dans le LIVE (séparée du nom, jamais collée au titre) */
.lb-live-card .lb-live-compo-top{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:2px !important;
  opacity:1 !important;
  visibility:visible !important;
  z-index:3 !important;
  pointer-events:auto !important;
  filter: drop-shadow(0 0 5px rgba(126,247,255,.72));
}
.lb-live-card .lb-live-compo-top .lb-compo-icon{
  height:17px !important;
  width:auto !important;
  opacity:1 !important;
  filter: brightness(1.22) saturate(1.18) drop-shadow(0 0 4px rgba(126,247,255,.58));
}
.lb-live-card .lb-live-compo-top .lb-compo-icon--us5{ height:25px !important; }
body.monde-betaillere .lb-live-card .lb-live-compo-top{
  filter: drop-shadow(0 0 5px rgba(255,214,112,.62));
}
body.monde-betaillere .lb-live-card .lb-live-compo-top .lb-compo-icon{
  filter: brightness(1.18) saturate(1.12) drop-shadow(0 0 4px rgba(255,214,112,.52));
}
/* FIX Tableau : liens de gares en mode Bétaillère, plus de bleu Tron */
body.monde-betaillere #trainInfo a.gare-link{
  color:#f4d36f !important;
  text-shadow:0 0 6px rgba(244,211,111,.32) !important;
  border-bottom-color:transparent !important;
}
body.monde-betaillere #trainInfo a.gare-link:hover,
body.monde-betaillere #trainInfo a.gare-link:focus-visible{
  color:#fff0b8 !important;
  border-bottom-color:rgba(244,211,111,.55) !important;
  text-shadow:0 0 8px rgba(244,211,111,.48) !important;
}

/* ===== Source historique : lb-v25-compositions-visible-everywhere ===== */
/* V25 — Compositions visibles en LIVE, accueil favoris et page Mes bêtes, en mode Tron comme en mode Bétaillère */
.lb-compo-inline{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:2px !important;
  line-height:1 !important;
  vertical-align:middle !important;
  white-space:nowrap !important;
}
.lb-compo-icon{
  display:block !important;
  height:17px !important;
  width:auto !important;
  opacity:1 !important;
  filter: brightness(1.25) saturate(1.18) drop-shadow(0 0 4px rgba(126,247,255,.62));
}
.lb-compo-icon--us5{ height:25px !important; }
.fav-type-compo,
#favTrainsWidget .fav-type-compo,
#homeFavSlot .fav-type-compo{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex:0 0 auto !important;
  opacity:1 !important;
  visibility:visible !important;
  min-width:auto !important;
  padding:0 !important;
  margin:0 4px 0 0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
#homeFavSlot .home-fav-badge{
  gap:4px !important;
  max-width:58% !important;
  overflow:visible !important;
}
#homeFavSlot .home-fav-badge .fav-type-wrap{
  display:inline-flex !important;
  align-items:center !important;
  flex:0 0 auto !important;
  gap:2px !important;
}
#homeFavSlot .home-fav-badge .lb-compo-icon{ height:14px !important; }
#homeFavSlot .home-fav-badge .lb-compo-icon--us5{ height:21px !important; }
body.monde-betaillere .lb-compo-icon{
  filter: brightness(1.18) saturate(1.10) drop-shadow(0 0 4px rgba(255,214,112,.58));
}
body.monde-betaillere #homeFavSlot .home-fav-badge .fav-state-badge{
  flex:0 1 auto !important;
}
/* Dans LIVE, la compo est centrée entre le nom et le statut sans manger le titre. */
.lb-live-card-top{ position:relative !important; }
.lb-live-card .lb-live-compo-top{
  position:absolute !important;
  left:50% !important;
  top:0 !important;
  transform:translateX(-50%) !important;
  max-width:86px !important;
  overflow:visible !important;
}
.lb-live-card .lb-live-train{ padding-right:78px !important; }
@media (max-width:600px){
  .lb-live-card .lb-live-compo-top{ max-width:74px !important; top:1px !important; }
  .lb-live-card .lb-live-compo-top .lb-compo-icon{ height:15px !important; }
  .lb-live-card .lb-live-compo-top .lb-compo-icon--us5{ height:22px !important; }
  .lb-live-card .lb-live-train{ padding-right:70px !important; }
}

/* ===== Source historique : lb-alertes-betaillere-css ===== */
/* ===== Mes préférences : navigation par rubriques ===== */
.lb-prefs-tabs{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:8px;
  margin:10px 0 12px;
}
.lb-prefs-tab{
  min-width:0 !important;
  max-width:none !important;
  width:100% !important;
  margin:0 !important;
  padding:9px 10px !important;
  border-radius:13px !important;
  border:1px solid rgba(0,240,255,.28) !important;
  background:linear-gradient(180deg, rgba(7,33,52,.88), rgba(5,22,36,.94)) !important;
  color:#dffbff !important;
  font-family:'Orbitron', sans-serif !important;
  font-size:.78rem !important;
  font-weight:900 !important;
  line-height:1.12 !important;
  box-shadow:inset 0 0 12px rgba(0,240,255,.10), 0 0 10px rgba(0,240,255,.08) !important;
}
.lb-prefs-tab.is-active{
  border-color:rgba(0,240,255,.75) !important;
  color:#ffffff !important;
  background:linear-gradient(180deg, rgba(7,69,101,.96), rgba(4,42,67,.96)) !important;
  box-shadow:inset 0 0 16px rgba(0,240,255,.20), 0 0 16px rgba(0,240,255,.22) !important;
}
.lb-prefs-panel{ display:none; }
.lb-prefs-panel.is-active{ display:block; }
.lb-prefs-panel-note{
  margin:0 0 10px;
  color:rgba(223,251,255,.76);
  font-size:.76rem;
  line-height:1.35;
}
.lb-alerts-box--prefs{
  display:block;
  margin-top:0;
}
.lb-alerts-box--prefs:not(.is-visible){
  display:block;
}
@media (max-width:600px){
  .lb-prefs-tabs{ grid-template-columns:1fr; gap:7px; }
  .lb-prefs-tab{ font-size:.74rem !important; padding:8px 9px !important; }
}

/* ===== Alertes Bétaillère : bloc compte propre ===== */
.lb-alerts-box{
  display:none;
  margin:10px 0 8px;
  padding:12px 12px 10px;
  border-radius:16px;
  border:1px solid rgba(0,240,255,.30);
  background:linear-gradient(180deg, rgba(4,20,34,.82), rgba(4,12,24,.70));
  box-shadow:inset 0 0 16px rgba(0,240,255,.10), 0 0 14px rgba(0,240,255,.08);
  color:#dffbff;
}
.lb-alerts-box.is-visible{ display:block; }
.lb-alerts-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:8px;
}
.lb-alerts-title{
  font-weight:900;
  color:#9ffcff;
  letter-spacing:.04em;
  font-size:.92rem;
}
.lb-alerts-state{
  flex:0 0 auto;
  font-size:.62rem;
  font-weight:900;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(0,240,255,.28);
  background:rgba(0,12,22,.45);
  color:#aef8ff;
}
.lb-alerts-state.is-on{
  color:#86efac;
  border-color:rgba(34,197,94,.50);
  background:rgba(34,197,94,.10);
}
.lb-alerts-state.is-off{
  color:#ffd1d1;
  border-color:rgba(255,77,109,.45);
  background:rgba(255,77,109,.10);
}
.lb-alerts-desc{
  margin:0 0 9px;
  font-size:.74rem;
  line-height:1.34;
  color:rgba(223,251,255,.78);
}

.lb-alerts-beta-note{
  margin:8px 0 10px;
  padding:8px 10px;
  border-radius:12px;
  border:1px solid rgba(255,214,102,.38);
  background:rgba(255,214,102,.10);
  color:#ffe7a3;
  font-size:.72rem;
  line-height:1.32;
  font-weight:700;
}
.lb-alerts-state.is-on{
  color:#ffe7a3;
  border-color:rgba(255,214,102,.55);
  background:rgba(255,214,102,.12);
}

.lb-alerts-options{
  display:grid;
  gap:7px;
  margin:8px 0 10px;
}
.lb-alerts-option{
  display:flex;
  align-items:flex-start;
  gap:8px;
  padding:7px 8px;
  border-radius:12px;
  border:1px solid rgba(0,240,255,.14);
  background:rgba(0,10,18,.34);
  font-size:.72rem;
  line-height:1.28;
  color:rgba(223,251,255,.86);
}
.lb-alerts-option input{
  width:16px;
  height:16px;
  flex:0 0 auto;
  margin:1px 0 0;
  accent-color:#00d9ff;
}
.lb-alerts-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.lb-alerts-actions .auth-button{
  min-width:0 !important;
  max-width:none !important;
  width:100% !important;
  margin:0 !important;
  padding:8px 10px !important;
  font-size:.78rem !important;
  line-height:1.12 !important;
}
.lb-alerts-actions .lb-alerts-test{
  grid-column:1 / -1;
  opacity:.88;
}
.lb-alerts-msg{
  margin-top:8px;
  min-height:18px;
  font-size:.70rem;
  line-height:1.25;
  color:#9ffcff;
}
.lb-alerts-msg.is-error{ color:#ff9b9b; }
.lb-alerts-prompt{
  display:none;
  margin:8px 0 0;
  padding:9px 10px;
  border-radius:13px;
  border:1px solid rgba(255,214,102,.34);
  background:rgba(255,214,102,.10);
  color:#fff2be;
  font-size:.72rem;
  line-height:1.28;
}
.lb-alerts-prompt.is-visible{ display:block; }
.lb-alerts-prompt button{
  margin:8px 0 0 !important;
  min-width:0 !important;
  max-width:none !important;
  width:100% !important;
  padding:8px 10px !important;
  font-size:.76rem !important;
}
@media (max-width:600px){
  .lb-alerts-box{ padding:10px 10px 9px; }
  .lb-alerts-title{ font-size:.86rem; }
  .lb-alerts-actions{ grid-template-columns:1fr; }
}

/* ===== Source historique : inline-12 ===== */
.tron-svg text{
                font-family:'Orbitron',sans-serif;
                font-weight:800;                 /* titre plus épais */
                letter-spacing:.08em;
                font-size:160px;                 /* titre plus grand */
                dominant-baseline:middle;
                shape-rendering:geometricPrecision;
              }
              .stroke{
                fill:none; stroke:#9af7ff; stroke-width:3.4;
                stroke-linejoin:round; stroke-linecap:round;
              }
              .glow{
                fill:none; stroke:#00eaff; stroke-width:3.4;
                filter:url(#glow); opacity:.55;
              }
              @media (max-width:600px){
                .tron-svg text{ font-size:118px; }
                .stroke,.glow{ stroke-width:2.2; }
              }

/* Favoris: arrêt supprimé (suppression partielle) */
.fav-stop.deleted, .fav-time.deleted {
  color: #ff6b6b;
}
.fav-time.deleted.is-strike {
  text-decoration: line-through;
  opacity: 0.9;
}
.fav-delay-pill.canceled {
  border-color: rgba(239,68,68,0.6);
  color: #ff6b6b;
}

/* === Favoris: times before stop, voie on the right === */
.fav-next-row{display:flex;align-items:center;gap:10px;}
.fav-timecell{min-width:6.2ch;text-align:left;font-variant-numeric:tabular-nums;}
.fav-stopwrap{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.fav-voiecell{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;}
.fav-voiecell .voie-badge{margin-left:0 !important;}
.fav-stops-expanded .fav-timecell{display:flex;flex-direction:column;gap:2px;}
.fav-stops-expanded .fav-timecell .fav-time{display:block;line-height:1.05;}


/* Mobile: keep compact next row on one line */
@media (max-width: 520px){
  .fav-next-row.is-compact{align-items:flex-start;flex-wrap:wrap;}
  .fav-next-row.is-compact .fav-timecell{min-width:5.2ch;font-size:.9rem;}
  .fav-next-row.is-compact .fav-stop{font-size:.92rem;line-height:1.2;}
  .fav-stops-title-text{font-size:.95rem;}
  .fav-stopwrap{white-space:normal;overflow:visible;text-overflow:clip;}
  .fav-times{font-size:clamp(.78rem, 3.8vw, .98rem);}
  .fav-stops-expanded .fav-stop{font-size:.82rem;}
  .fav-stops-expanded .fav-timecell{font-size:.78rem;}
  .fav-stops-expanded .voie-badge{font-size:.68rem;padding:2px 6px;}
}

/* ===== Source historique : inline-13 ===== */
.affluence-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-left:6px;vertical-align:middle;border:1px solid rgba(255,255,255,.7);box-shadow:0 0 8px rgba(0,0,0,.35)}
    .aff-shell{background:#f6f8fb;border:1px solid rgba(15,25,35,.12);border-radius:16px;padding:10px;color:#0f1923}
    .aff-row{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}.aff-row>*{flex:1;min-width:180px}

    .aff-row-main{ align-items: flex-end; }
    .aff-main-date{ min-width: 220px; }
    .aff-status{
      font-size:12px;
      color: rgba(15,25,35,.70);
      padding: 8px 10px;
      border: 1px dashed rgba(15,25,35,.18);
      border-radius: 12px;
      background: rgba(255,255,255,.65);
    }
    .aff-adv{
      margin-top: 10px;
      border: 1px solid rgba(15,25,35,.12);
      border-radius: 14px;
      background: rgba(255,255,255,.55);
      overflow: hidden;
    }
    .aff-adv > summary{
      cursor: pointer;
      list-style: none;
      padding: 10px 12px;
      font-weight: 800;
      color: rgba(15,25,35,.82);
      user-select: none;
    }
    .aff-adv > summary::-webkit-details-marker{ display:none; }
    .aff-adv > summary:after{
      content: "▾";
      float: right;
      opacity: .65;
      transform: translateY(1px);
    }
    .aff-adv[open] > summary:after{ content:"▴"; }
    .aff-adv-body{ padding: 0 10px 10px 10px; }
    .aff-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.aff-list{border:1px solid rgba(15,25,35,.12);border-radius:12px;max-height:40vh;overflow:auto;background:#fff}
    .aff-hdr{display:flex;justify-content:space-between;padding:8px 10px;border-bottom:1px solid rgba(15,25,35,.12);font-size:12px;color:rgba(15,25,35,.7)}
    .aff-item{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border-bottom:1px solid rgba(15,25,35,.08);cursor:pointer}
    .aff-item.active{background:rgba(32,201,151,.10)}
	.aff-pct{font-weight:700;text-align:right}
    .aff-wagons{display:inline-flex;align-items:center;gap:3px;margin-top:4px}
    .aff-wagon{width:10px;height:10px;border-radius:2px;border:1px solid rgba(15,25,35,.25)}
    .aff-arrow{font-size:10px;color:#5f6f80;margin-left:2px}

    /* Schéma rame (style affluence_lab) — version compacte pour index5 */
    .affls-rame{
      display:inline-flex;
      align-items:center;
      gap:6px;
      margin-left:6px;
      padding-top:14px; /* place pour les % au-dessus des points */
      vertical-align:middle;
      max-width:100%;
      overflow-x:auto;
      overflow-y:visible;
      -webkit-overflow-scrolling:touch;
    }
    .affls-rame::-webkit-scrollbar{height:6px;}
    .affls-rame::-webkit-scrollbar-thumb{background:rgba(0,0,0,.18);border-radius:999px;}
    .affls-rame::-webkit-scrollbar-track{background:transparent;}
    .affls-unit{
      width:calc(var(--seg-count, 3) * 44px);
      height:22px;
      border:2px solid #111;
      border-radius:10px;
      display:grid;
      grid-template-columns: repeat(var(--seg-count, 3), minmax(0, 1fr));
      overflow:visible;
      background:#fff;
      flex:0 0 auto;
    }
    .affls-unit > span{
      border-right:2px solid #111;
      position:relative;
      display:flex;
      align-items:center;
      justify-content:center;
      overflow:hidden;
    }
    .affls-unit > span:last-child{ border-right:none; }
    .affls-car{
      position:absolute;
      inset:0;
      background:#bbb;
      opacity:.95;
    }
    .affls-pct{
      position:relative;
      z-index:1;
      font-size:10px;
      font-weight:800;
      color:#fff;
      text-shadow:0 1px 1px rgba(0,0,0,.55);
      padding:0 2px;
      line-height:1.2;
      white-space:nowrap;
      pointer-events:none;
    }
    .affls-unk .affls-unit{
      border-style:dashed;
      background:#f7f7f7;
    }
    .affls-unk .affls-unit > span{ border-right-style:dashed; }

    .aff-evo{margin-top:10px;border:1px solid rgba(15,25,35,.12);border-radius:12px;background:#fff;padding:10px}
    @media(max-width:980px){.aff-grid{grid-template-columns:1fr}}

    .aff-chart{
      background:rgba(7, 15, 30, .75);
      border:1px solid rgba(0,255,255,.22);
      border-radius:14px;
      padding:10px 12px;
      box-shadow:0 0 18px rgba(0,255,255,.10), inset 0 0 0 1px rgba(0,255,255,.10);
    }
	.aff-evo .aff-chart{ min-height:170px; }
    .aff-evo #affEvolutionChart{ height:170px !important; }


/* === LB FIX: prevent horizontal overflow on mobile (v2) === */
html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
*, *::before, *::after {
  box-sizing: border-box;
}
/* Some components were using 100vw + negative margins -> causes right overflow on mobile */
.full-bleed, .fullwidth, .fullWidth, .bleed {
  width: 100%;
  max-width: 100%;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
/* Bottom nav must not be wider than viewport */
.bottom-nav, .bottomNav, #bottomNav {
  left: 0;
  right: 0;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}
.bottom-nav__items {
  width: 100%;
  max-width: 100%;
}
/* Safety: any fixed full-screen modal */
#betaModal {
  left: 0;
  right: 0;
  width: 100% !important;
}

/* ===== HOME ultra-fit v12 (mobile) ===== */
@media (max-width: 480px){
  /* 1) Welcome line: remove frame */
  .home-welcome-line{
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 2px !important;
    margin: 2px 2px 6px 2px !important;
    border-radius: 0 !important;
    font-size: .92rem !important;
    line-height: 1.15 !important;
    color: #dff7ff !important;
    letter-spacing: .01em !important;
  }

  /* 2) Reduce spacing between cards */
  .home-dashboard{ gap: 10px !important; }
  .home-card{ padding: 10px 12px !important; }

  /* 3) Harmonize titles/subtitles (traffic/weather/stats/favs) */
  .traffic-title{ font-size: 1.05rem !important; letter-spacing: .02em !important; }
  .traffic-sub{ font-size: .90rem !important; }
  .home-traffic-card .traffic-quote{ font-size: .78rem !important; margin-top: 6px !important; line-height: 1.12 !important; }
  .home-traffic-card .traffic-hash{ font-size: .90rem !important; margin-top: 6px !important; }

  .home-card[aria-label="Météo sur votre ligne"] h2{ font-size: 1.02rem !important; margin-bottom: 6px !important; }
  .wx-station{ padding: 7px 7px !important; }
  .wx-temp{ font-size: 1.05rem !important; }
  .wx-city{ font-size: .78rem !important; }
  .wx-icon{ width: 26px !important; height: 26px !important; }

  .home-stats-panel{ padding: 10px 12px !important; }
  .home-stats-item{ padding: 8px 10px !important; }
  .home-stats-item .label{ font-size: .98rem !important; }
  .home-stats-item .value{ font-size: 1.05rem !important; }

  .home-fav-wrap{ padding: 10px 12px !important; }
  .home-fav-wrap h2, .home-fav-wrap h3{ font-size: 1.02rem !important; margin: 0 0 8px 0 !important; }
  .home-fav-row{ padding: 8px 10px !important; }
  .home-fav-train{ font-size: .98rem !important; }
  .home-fav-meta{ font-size: .80rem !important; }
  .home-fav-pill{ font-size: .76rem !important; padding: 6px 10px !important; min-width: 78px !important; }

  /* ensure left side can shrink so pill stays inside */
  .home-fav-left{ min-width: 0 !important; }
  .home-fav-row{ gap: 10px !important; }
}




:root{
  --home-gap: 7px;
  --home-card-pad: 10px;
}

/* Home: make spacing consistent & a bit tighter so everything fits */
.home-section{
  margin: 18px 0 18px !important;
  gap: var(--home-gap) !important;
}
.home-grid{
  gap: var(--home-gap) !important;
}
.home-card{
  padding: var(--home-card-pad) !important;
}

/* Welcome line: align with cards, no extra container */
 .home-welcome, .welcome-line, .home-welcome-line{
  margin: 0 0 var(--home-gap) 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

/* ===== v19 Mobile fit: swap button + time range ===== */
.bottom-nav__label{
  font-size: 11px;
}

/* éviter que certains emojis soient “rapetissés” par héritage */
.bottom-nav__item{
  -webkit-tap-highlight-color: transparent;
  transition: transform 120ms ease, filter 120ms ease;
}

.bottom-nav__icon{
  transition: transform 120ms ease;
}

.bottom-nav__item:active,
.bottom-nav__item.is-pressed{
  transform: translateY(1px) scale(0.96);
  filter: brightness(1.18);
}

.bottom-nav__item:active .bottom-nav__icon,
.bottom-nav__item.is-pressed .bottom-nav__icon{
  transform: scale(0.92);
}

/* Swap button (inverser sens) : garder petit et centré */
.swap-btn{
  width: 34px;
  height: 34px;
  min-width: 34px;
  min-height: 34px;
  padding: 0 !important;
  border-radius: 999px;
  line-height: 34px;
  font-size: 16px;
}
.swap-btn.swap-btn--center{
  padding: 0 !important;
}

/* Mode compact mobile : plus petit, jamais “ovale” géant */
@media (max-width: 520px){
  .manual-compact .swap-btn{
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    padding: 0 !important;
    line-height: 30px !important;
    font-size: 15px !important;
  }
  .manual-compact .swap-btn svg{
    width: 16px !important;
    height: 16px !important;
  }

  /* Plage horaire : tout doit rester dans l'écran */
  .time-grid{ gap: 10px !important; }
  .time-col{ min-width: 0 !important; }
  .time-values{
    gap: 8px !important;
    flex-wrap: wrap;
    justify-content: center;
  }
  .time-values span{
    font-size: 13px !important;
    white-space: nowrap;
  }
}

/* Empêcher tout débordement horizontal */
html, body{
  overflow-x: hidden;
}
.main, .app, .container, .card, .panel{
  max-width: 100%;
}


/* ===== v21 ultra-compact tableau mobile fixes (no outer scroll container) ===== */
.command-console{
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 0 14px !important;
}

.command-console .console-header{ margin-bottom: 8px !important; }
.command-console .console-title{
  font-size: clamp(18px, 4.6vw, 22px) !important;
  line-height: 1.15 !important;
  letter-spacing: .02em !important;
}
.command-console .console-divider{ margin: 8px 0 10px !important; opacity:.6; }

.command-console .console-section{
  padding: 12px 12px !important;
  margin-bottom: 12px !important;
  border-radius: 18px !important;
}

/* Shortcuts: keep 2x2, reduce height */
.manual-compact .shortcuts-grid{
  grid-template-columns: 1fr 1fr !important;
  gap: 10px 10px !important;
}
.manual-compact .shortcut-btn{
  padding: 10px 10px !important;
  min-height: 44px !important;
}

/* Station swap: move button to the right + vertically centered */
.manual-compact .station-swap{
  padding: 10px 12px !important;
  min-height: 96px !important;
  position: relative !important;
}
.manual-compact .station-fields{
  padding-right: 74px !important; /* room for swap btn */
}
.manual-compact .swap-btn--center{
  left: auto !important;
  right: 14px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 46px !important;
  height: 46px !important;
  border-radius: 50% !important;
}
.manual-compact .swap-btn--center::before{ font-size: 18px !important; }

/* Time range: prevent overflow on small screens */
.manual-compact .time-slider{
  width: 100% !important;
  max-width: 100% !important;
  margin-top: 8px !important;
}
.manual-compact .time-slider .noUi-handle{
  width: 22px !important;
  height: 22px !important;
  right: -11px !important;
  top: -9px !important;
}
.manual-compact .time-slider .noUi-touch-area{
  width: 22px !important;
  height: 22px !important;
}
.manual-compact .time-values{
  margin-top: 6px !important;
  font-size: 13px !important;
  letter-spacing: .02em !important;
}
.manual-compact .time-values .arrow{ margin: 0 8px !important; opacity:.9; }

/* Make the whole tableau page fit better (reduce global paddings) */
@media (max-width: 520px){
  .tab-content, .page, .page-content, .content{
    padding-left: 14px !important;
    padding-right: 14px !important;
  }
  .command-console .console-section{ padding: 11px 11px !important; }
}

/* Top logo +20% */
.top-bar__logo-icon{ height: 48px !important; }
.top-bar__logo-text{ height: 30px !important; max-width: min(44vw, 290px) !important; }
@media (max-width: 600px){
  .top-bar__logo-icon{ height: 38px !important; }
  .top-bar__logo-text{ height: 24px !important; max-width: 44vw !important; }
  .bottom-nav__icon-img{ width: 30px !important; height: 30px !important; }
}

/* v23: ultra-compact Tableau console so everything fits on one mobile screen without scrolling */
@media (max-width: 520px){
  /* reduce global vertical spacing a bit more */
  .command-console{ padding: 10px !important; }
  .command-console .console-section{ padding: 10px !important; margin-bottom: 10px !important; }
  .console-title{ font-size: 1.05rem !important; line-height: 1.15 !important; margin: 0 0 8px !important; }
  .console-sep{ margin: 8px 0 10px !important; }

  /* reduce height of station block */
  .station-search{ padding: 10px !important; margin-top: 10px !important; }
  .station-search .row{ padding: 10px !important; }
  .station-search input{ height: 34px !important; }

  /* time range: smaller handles + bar */
  .manual-compact .time-slider .noUi-handle{
    width: 20px !important;
    height: 20px !important;
    right: -10px !important;
    top: -8px !important;
  }
  .noUi-horizontal{ height: 12px !important; }

  /* ensure the search button stays visible */
  .actions-main{ margin-top: 10px !important; }
}

/* v23: bottom nav — make ALL emoji icons scale equally (account included) */
.bottom-nav__icon{
  font-size: 3.25rem !important;
  line-height: 1 !important;
  display: block !important;
  transform: none !important;
}
.bottom-nav__item{
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}


/* === v24 mobile ultra-fit: options in one row + less vertical spacing + slider fix === */
@media (max-width: 520px){
  /* Global tighter vertical rhythm on Tableau console */
  .command-console{ padding-top: 10px !important; padding-bottom: 84px !important; }
  .console-title{ margin: 8px 0 6px !important; }
  .console-subtitle, .console-divider{ margin: 6px 0 !important; }
  .console-card{ padding: 12px 12px !important; }
  .console-card + .console-card{ margin-top: 10px !important; }
  .console-card h3{ margin: 0 0 8px !important; }
  .shortcuts-grid{ gap: 10px 12px !important; }
  .shortcut-btn{ padding: 10px 12px !important; }
  .fromto-card{ padding: 12px !important; }
  .fromto-row{ gap: 10px !important; }
  .fromto-field{ padding: 10px 12px !important; min-height: 38px !important; }
  .swap-btn{ width: 38px !important; height: 38px !important; right: 14px !important; top: 50% !important; transform: translateY(-50%) !important; }
  .date-row{ margin-top: 10px !important; }
  .date-pill{ padding: 10px 12px !important; min-height: 44px !important; }
  .time-row{ margin-top: 10px !important; gap: 8px !important; }
  .time-label{ margin-bottom: 6px !important; }
  .time-values{ margin-top: 6px !important; }

  /* Legacy options layout disabled (conflict with recherche par trajet) */
  .filters-options--legacy-disabled{ display:block; }

  /* Bring the main action button up */
  .actions-main{ margin-top: 12px !important; padding-bottom: 0 !important; }
  .primary-btn{ padding: 12px 18px !important; min-height: 44px !important; }

  /* noUi slider: smaller and cleaner */
  #timeSlider.noUi-target{ height: 14px !important; border-radius: 999px !important; overflow: visible !important; }
  #timeSlider .noUi-connect{ border-radius: 999px !important; }
  #timeSlider .noUi-handle{
    width: 18px !important; height: 18px !important;
    top: -3px !important;
    border-radius: 999px !important;
    box-shadow: 0 0 0 2px rgba(0,255,255,.25), 0 6px 16px rgba(0,0,0,.45) !important;
  }
  #timeSlider .noUi-handle:before, #timeSlider .noUi-handle:after{ display:none !important; }
}

/* Even tighter for short screens (common on Android with browser UI + bottom bar) */
@media (max-width: 520px) and (max-height: 760px){
  .console-card{ padding: 10px 10px !important; }
  .shortcut-btn{ padding: 9px 10px !important; }
  .fromto-card{ padding: 10px !important; }
  .fromto-field{ min-height: 44px !important; }
  .date-pill{ min-height: 38px !important; }
  .actions-main{ margin-top: 10px !important; }
}


/* ===== v26: Tableau mobile – bouton Rechercher FIXE + typo plus petite ===== */
@media (max-width: 480px){
  :root{ --bottomNavH: 92px; }

  /* Typo compacte (sans baisser les inputs sous 16px pour éviter le zoom iOS) */
  #search .section-summary{ font-size: 13px !important; }
  #search .section-title{ font-size: 14px !important; }
  #search .section-subtitle{ font-size: 11px !important; }
  #search .station-label{ font-size: 10px !important; }
  #search .station-input{ font-size: 16px !important; }
  #search .field-caption{ font-size: 9px !important; }
  #search .option-toggle--legacy{ font-size: 11px !important; }

  /* Réduire encore la hauteur des blocs */
  #search .fromto-field{ padding: 10px 12px !important; }
  #search .station-row{ padding: 6px 10px !important; gap: 8px !important; }
  #search #swapDirectionBtn{ width: 44px !important; height: 44px !important; }

  /* Retirer les contours autour des options (checkboxes) */
  #search .options-row{ gap: 10px !important; margin-top: 6px !important; }
  #search .option-toggle{ background: transparent !important; border: none !important; box-shadow: none !important; padding: 6px 6px !important; }

  /* Bouton Rechercher intégré à la console (non flottant) */
  #search .actions-main{
    position: static !important;
    margin-top: 10px !important;
    padding: 0 !important;
    height: auto !important;
    overflow: visible !important;
  }
  #search #btnProposer{
    position: static !important;
    width: min(340px, calc(100vw - 36px)) !important;
    margin: 0 auto !important;
    transform: none !important;
    left: auto !important;
    bottom: auto !important;
    z-index: auto !important;
  }
}


/* ===== v27: Tableau mobile compact — réduire la typo et densifier l'écran ===== */
@media (max-width: 520px){
  #search .command-console{ margin-bottom: 8px !important; }
  #search .command-console .console-header{ margin-bottom: 6px !important; }
  #search .command-console .console-title{
    font-size: clamp(15px, 3.8vw, 17px) !important;
    line-height: 1.1 !important;
    letter-spacing: .01em !important;
  }

  #search .command-console .console-section,
  #search .command-console .console-card{
    padding: 9px 10px !important;
    margin-bottom: 8px !important;
    border-radius: 14px !important;
  }

  #search .manual-compact .compact-presets{ padding: 8px !important; gap: 6px !important; }
  #search .manual-compact .preset-stack,
  #search .manual-compact .shortcuts-grid{ gap: 6px !important; }
  #search .manual-compact .shortcut-btn,
  #search .manual-compact .compact-presets .preset-btn{
    min-height: 34px !important;
    padding: 6px 8px !important;
    font-size: 13px !important;
    line-height: 1.05 !important;
  }

  #search .manual-compact .station-swap{ padding: 8px 10px !important; min-height: 84px !important; }
  #search .manual-compact .station-fields{ padding-right: 58px !important; }
  #search .manual-compact .station-row{ padding: 3px 0 !important; }
  #search .manual-compact .station-label{ font-size: 11px !important; }
  #search .manual-compact .station-search,
  #search .manual-compact .station-input{
    height: 32px !important;
    padding: 6px 9px !important;
    font-size: 16px !important;
  }
  #search .manual-compact .swap-btn--center{
    width: 34px !important;
    height: 34px !important;
    right: 10px !important;
  }

  #search .manual-compact .date-picker-wrap,
  #search .manual-compact .filters-date-time{ gap: 6px !important; }
  #search .manual-compact .time-range label,
  #search .manual-compact .field-caption{ font-size: 11px !important; }

  #search .manual-compact .time-slider{ margin-top: 6px !important; }
  #search .manual-compact .time-values{ margin-top: 4px !important; font-size: 12px !important; }
  #search .manual-compact .filters-options{ gap: 6px !important; }
  #search .manual-compact .option-toggle{
    padding: 6px 8px !important;
    min-height: 30px !important;
  }
  #search .manual-compact .option-toggle--legacy{ font-size: 11px !important; }

  #search .manual-compact .actions-main{ margin-top: 8px !important; }
  #search .manual-compact .proposer-btn,
  #search #btnProposer{ min-height: 36px !important; padding: 8px 10px !important; font-size: 13px !important; }
}


@media (max-width: 768px){
  #trainInfo .table-scroll{
    height: calc(100dvh - var(--top-bar-height, 72px) - var(--bottom-bar-height, 84px) - var(--tableau-viewbar-h, 0px) - 10px) !important;
    max-height: calc(100dvh - var(--top-bar-height, 72px) - var(--bottom-bar-height, 84px) - var(--tableau-viewbar-h, 0px) - 10px) !important;
    overflow-y: auto !important;
  }

  .command-console{
    padding: 16px;
    border-radius: 16px;
  }

  .console-header{
    font-size: 1rem;
    margin-bottom: 8px;
    letter-spacing: 0.02em;
  }

  .filters-selection{
    border-top: 1px dashed rgba(0, 240, 255, 0.28);
    margin-top: 10px;
    padding-top: 10px;
  }

  #selectionInline{
    background: linear-gradient(145deg, rgba(0, 30, 48, 0.88), rgba(0, 16, 30, 0.82));
    border: 1px solid rgba(0, 240, 255, 0.28);
    border-radius: 14px;
    padding: 10px 12px;
  }
}

/* Sous-barre Tableau (onglets) FIXE au-dessus de la barre du bas */
:root{ --tableau-viewbar-h: 0px; --loisirs-viewbar-h: 0px; }
#tableauViewNav,
#tableauViewNav[hidden]{ display:none !important; }
#tableauViewNav.is-visible{
  display:flex !important;
  position: fixed;
  left: 8px;
  right: 8px;
  bottom: calc(var(--bottom-bar-height, 84px) + env(safe-area-inset-bottom, 0px) + 4px);
  z-index: 1290;
  padding: 6px;
  border-radius: 16px;
  border: 1px solid rgba(0, 240, 255, 0.35);
  background: linear-gradient(135deg, rgba(7, 15, 30, 0.98), rgba(12, 24, 44, 0.96));
  box-shadow: 0 8px 24px rgba(0, 240, 255, 0.16);
  backdrop-filter: blur(10px);
  gap: 6px;
}
#tableauViewNav .tableau-view-tab,
#loisirsViewNav .tableau-view-tab{
  flex:1 1 0;
  min-width:0;
  margin:0 !important;
  padding: 8px 7px !important;
  border-radius: 12px;
  border: 1px solid rgba(90, 235, 255, 0.34);
  background: linear-gradient(160deg, rgba(6,24,38,.86), rgba(4,16,30,.8));
  color:#dffbff;
  font-size: .72rem !important;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1.08;
  text-align:center;
  max-width:none !important;
  box-shadow: inset 0 1px 0 rgba(170,245,255,.12), inset 0 -10px 22px rgba(0,180,220,.10), 0 2px 10px rgba(0,0,0,.25);
  transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
#tableauViewNav .tableau-view-tab:hover,
#loisirsViewNav .tableau-view-tab:hover{
  border-color: rgba(120, 245, 255, 0.55);
  transform: translateY(-1px);
}
#tableauViewNav .tableau-view-tab.is-active,
#loisirsViewNav .tableau-view-tab.is-active{
  border-color: rgba(0, 240, 255, 0.85);
  background: linear-gradient(135deg, rgba(0,255,255,.94), rgba(0,190,255,.90));
  color:#00111a;
  box-shadow: 0 0 0 1px rgba(170,255,255,.38) inset, 0 0 16px rgba(0,240,255,.45), inset 0 0 12px rgba(0,220,255,.28);
}
#tableauViewNav .tableau-view-tab--search{ font-weight: 800; letter-spacing: .03em; }
@media (max-width: 768px){
  body.tableau-view-nav-visible{ --tableau-viewbar-h: 64px; }
  #tableauViewNav.is-visible{
    left: 0;
    right: 0;
    bottom: calc(var(--bottom-bar-height, 84px) + env(safe-area-inset-bottom, 0px));
    border-left: 0;
    border-right: 0;
    border-radius: 14px 14px 0 0;
    padding-left: max(8px, env(safe-area-inset-left, 0px));
    padding-right: max(8px, env(safe-area-inset-right, 0px));
  }
}

@media (max-width: 768px){
  body.loisirs-view-nav-visible{ --loisirs-viewbar-h: 64px; }
}

#loisirsViewNav,
#loisirsViewNav[hidden]{ display:none !important; }
#loisirsViewNav.is-visible{
  display:flex !important;
  position: fixed;
  left: 8px;
  right: 8px;
  bottom: calc(var(--bottom-bar-height, 84px) + env(safe-area-inset-bottom, 0px) + 4px);
  z-index: 1290;
  padding: 6px;
  border-radius: 16px;
  border: 1px solid rgba(0, 240, 255, 0.35);
  background: linear-gradient(135deg, rgba(7, 15, 30, 0.98), rgba(12, 24, 44, 0.96));
  box-shadow: 0 8px 24px rgba(0, 240, 255, 0.16);
  backdrop-filter: blur(10px);
  gap: 6px;
}
@media (max-width: 768px){
  #loisirsViewNav.is-visible{
    left: 0;
    right: 0;
    bottom: calc(var(--bottom-bar-height, 84px) + env(safe-area-inset-bottom, 0px));
    border-left: 0;
    border-right: 0;
    border-radius: 14px 14px 0 0;
    padding-left: max(8px, env(safe-area-inset-left, 0px));
    padding-right: max(8px, env(safe-area-inset-right, 0px));
  }
}


#search .search-card--filters .filters-date-time{
  display:grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
  align-items: stretch !important;
}
#search .search-card--filters .date-field,
#search .search-card--filters .time-range{
  border: 1px solid rgba(0,240,255,.24);
  border-radius: 12px;
  background: rgba(2,20,34,.45);
  padding: 10px 12px;
}
#search .search-card--filters .date-field input[type="date"]{
  width: 100%;
  min-height: 38px;
}
#search .search-card--filters .time-values{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:8px;
  margin-top: 8px;
  font-weight: 700;
}
#search .search-card--filters .filters-options{ margin-top: 8px !important; }
#search .search-card--filters .search-options-row{
  display:flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 8px !important;
}
#search .search-card--filters .option-toggle{
  background: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  border-radius: 0 !important;
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height: 0 !important;
}
#search .search-card--filters .option-toggle span{
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  font-size: 0.95rem !important;
}
#search .search-card--filters .option-toggle input[type="checkbox"]{
  appearance: auto;
  -webkit-appearance: checkbox;
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: #00eaff;
}

#search .search-card--trajet .station-row:last-child{ border-bottom: none !important; }
#search .search-card--trajet .station-row .station-search{
  border: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}

@media (max-width: 680px){
  #search .search-card--filters .filters-date-time{
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
  #search .search-card--filters .date-field,
  #search .search-card--filters .time-range{
    padding: 9px 10px !important;
  }
  #search .search-card--filters .time-values{
    font-size: 0.95rem !important;
    margin-top: 6px !important;
  }
  #search .search-card--filters .search-options-row{
    justify-content: flex-start;
    row-gap: 8px;
    column-gap: 10px;
  }
  #search .search-card--filters .option-toggle span{
    font-size: 0.92rem !important;
  }
}


#search .search-card--filters .filters-options{ display:block !important; }
#search .search-card--filters .search-options-row{
  width: 100% !important;
  min-width: 0 !important;
  flex: 0 0 auto !important;
}
#search .search-card--filters .search-options-row .option-toggle{
  width: 100% !important;
  display: grid !important;
  grid-template-columns: 18px 1fr;
  align-items: center;
  column-gap: 10px;
  line-height: 1.25;
  min-height: 22px !important;
  padding: 0 !important;
}
#search .search-card--filters .search-options-row .option-toggle span{
  display:block !important;
  position: static !important;
  transform: none !important;
  font-size: 1rem !important;
  letter-spacing: 0 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
}
@media (max-width: 680px){
  #search .search-card--filters .search-options-row .option-toggle span{
    font-size: .98rem !important;
  }
}

@media (min-width: 1024px){
  #search .search-card--filters .filters-options{
    display:grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items:end;
    gap:12px;
  }
  #search .search-card--filters .search-options-row{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    flex-wrap:wrap;
    gap:12px !important;
  }
  #search .search-card--filters .search-options-row .option-toggle{
    width:auto !important;
    grid-template-columns: 18px auto;
  }
  #search .search-card--filters .actions-main{
    margin-top:0 !important;
    align-self:end;
    justify-content:flex-end !important;
  }
  #search .search-card--filters #btnProposer{
    min-width:210px;
  }
}


.bottom-nav__items{
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
}
.bottom-nav__item{
  min-width: 0 !important;
}
.bottom-nav__label{
  white-space: nowrap !important;
  overflow: visible !important;
  text-overflow: clip !important;
  font-size: 0.72rem !important;
  letter-spacing: 0 !important;
}
#bottomAccountBtn{ order: 7 !important; justify-self: stretch; }
@media (max-width: 520px){
  .bottom-nav__items{ grid-template-columns: repeat(7, minmax(0, 1fr)) !important; gap: 3px !important; }
  .bottom-nav__label{ font-size: 0.66rem !important; }
}

/* Hover: grossir toutes les icônes sans clic */
.bottom-nav__item:hover .bottom-nav__icon,
.bottom-nav__item:focus-visible .bottom-nav__icon,
.bottom-nav__item:hover .bottom-nav__icon-img,
.bottom-nav__item:focus-visible .bottom-nav__icon-img{
  transform: scale(1.12) !important;
  filter: drop-shadow(0 0 10px rgba(0,255,255,.85)) !important;
}


#bottomAccountBtn{
  -webkit-appearance: none !important;
  appearance: none !important;
  margin: 0 !important;
  font: inherit !important;
  color: inherit !important;
  line-height: inherit !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
}
#bottomAccountBtn .bottom-nav__icon,
#bottomAccountBtn .bottom-nav__icon-img{
  margin: 0 auto !important;
}
#bottomAccountBtn:focus,
#bottomAccountBtn:focus-visible,
#bottomAccountBtn:active{
  outline: none !important;
  box-shadow: none !important;
}


.bottom-nav__item,
.bottom-nav__icon,
.bottom-nav__icon-img{
  transition: transform .14s ease, filter .16s ease, opacity .16s ease !important;
}

.bottom-nav__item:hover .bottom-nav__icon,
.bottom-nav__item:focus-visible .bottom-nav__icon,
.bottom-nav__item:hover .bottom-nav__icon-img,
.bottom-nav__item:focus-visible .bottom-nav__icon-img{
  transform: scale(1.05) !important;
  filter: drop-shadow(0 0 6px rgba(0,255,255,.40)) !important;
}

.bottom-nav__item.active .bottom-nav__icon,
.bottom-nav__item[aria-current="page"] .bottom-nav__icon,
.bottom-nav__item.is-active .bottom-nav__icon,
.bottom-nav__item.active .bottom-nav__icon-img,
.bottom-nav__item[aria-current="page"] .bottom-nav__icon-img,
.bottom-nav__item.is-active .bottom-nav__icon-img{
  transform: scale(1.04) !important;
  filter:
    drop-shadow(0 0 5px rgba(0, 255, 255, 0.55))
    drop-shadow(0 0 10px rgba(0, 214, 255, 0.34)) !important;
}


@media (max-width: 720px){
  #selectionModal .selection-modal__body{
    padding-bottom: 14px !important;
  }

  #selectionModal #selectionFooter{
    position: static !important;
    bottom: auto !important;
    z-index: auto !important;
    margin-top: 12px !important;
    padding: 10px 0 0 !important;
    background: transparent !important;
    border-top: 0 !important;
    backdrop-filter: none !important;
  }

  #selectionModal #selectionFooter .lb-sticky-actions{
    position: static !important;
    margin-top: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
  }
}


/* === HOME MOBILE FIXES V9 === */
@media (max-width: 768px){
  #homeWelcomeLine,
  .home-welcome-line{
    text-align:center !important;
    justify-content:center !important;
    display:block !important;
    font-size:.78rem !important;
    line-height:1.15 !important;
    padding:4px 8px !important;
    margin:0 0 6px 0 !important;
    white-space:nowrap !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }

  .home-dashboard{
    row-gap:8px !important;
    column-gap:8px !important;
  }

  .home-card[aria-label="Info trafic"],
  .home-card[aria-label="Météo sur votre ligne"]{
    min-height:auto !important;
    padding:12px 12px 10px !important;
  }

  .home-card[aria-label="Info trafic"] h2,
  .home-card[aria-label="Météo sur votre ligne"] h2{
    margin:0 0 8px 0 !important;
  }

  .home-card[aria-label="Info trafic"] .traffic-split{
    gap:8px !important;
  }

  .home-card[aria-label="Info trafic"] .traffic-split-row{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:2px !important;
    padding:4px 0 !important;
    border:none !important;
    background:transparent !important;
    box-shadow:none !important;
  }

  .home-card[aria-label="Info trafic"] .traffic-split-line{
    font-size:.95rem !important;
    line-height:1.08 !important;
    margin:0 !important;
  }

  .home-card[aria-label="Info trafic"] .traffic-pill{
    margin:0 !important;
    padding:4px 12px !important;
    font-size:.72rem !important;
    min-height:auto !important;
  }

  .home-card[aria-label="Météo sur votre ligne"] .wx-stations{
    gap:8px !important;
  }

  .home-card[aria-label="Météo sur votre ligne"] .wx-title{
    text-align:center !important;
    font-size:.72rem !important;
    line-height:1.05 !important;
    word-break:break-word !important;
  }

  .home-card[aria-label="Mur de commentaires"]{
    padding:12px 12px 10px !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-head{
    margin-bottom:4px !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-title{
    margin:0 !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-badge{
    min-width:22px !important;
    width:22px !important;
    height:22px !important;
    padding:0 !important;
    font-size:.70rem !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-feed--home{
    max-height:150px !important;
    padding-right:0 !important;
    margin-top:0 !important;
    gap:2px !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-item,
  .home-card[aria-label="Mur de commentaires"] .live-wall-item--home,
  .home-card[aria-label="Mur de commentaires"] .live-wall-item--compact{
    border:none !important;
    background:transparent !important;
    border-radius:0 !important;
    padding:0 !important;
    margin:0 0 4px 0 !important;
    font-size:.88rem !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-item-text{
    display:block !important;
    overflow:visible !important;
    -webkit-line-clamp:unset !important;
    white-space:normal !important;
    line-height:1.3 !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-form{
    margin-top:6px !important;
    gap:6px !important;
    align-items:center !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-form input{
    flex:1 1 auto !important;
    height:34px !important;
    min-height:34px !important;
    padding:6px 10px !important;
    font-size:.80rem !important;
    border-radius:12px !important;
    transition:all .18s ease !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-form input:focus{
    height:42px !important;
    min-height:42px !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-form .auth-button,
  .home-card[aria-label="Mur de commentaires"] .live-wall-form button{
    width:auto !important;
    min-width:98px !important;
    height:34px !important;
    min-height:34px !important;
    padding:0 14px !important;
    border-radius:14px !important;
    font-size:.82rem !important;
    flex:0 0 auto !important;
  }
}


@media (max-width: 768px){
  .home-dashboard{
    gap:10px !important;
    margin-bottom:10px !important;
  }

  #homeWelcomeLine,
  .home-welcome-line{
    margin:0 0 8px 0 !important;
  }

  .home-card{
    margin:0 !important;
  }

  .home-card[aria-label="Info trafic"],
  .home-card[aria-label="Météo sur votre ligne"],
  .home-card[aria-label="Mur de commentaires"],
  .home-card[aria-label="Mes bétaillères favorites"]{
    padding-top:12px !important;
    padding-bottom:12px !important;
  }

  .home-card[aria-label="Info trafic"] .traffic-split{
    gap:10px !important;
    margin-top:2px !important;
  }

  .home-card[aria-label="Info trafic"] .traffic-split-row{
    padding:2px 0 2px 6px !important;
    gap:1px !important;
  }

  .home-card[aria-label="Info trafic"] .traffic-split-line{
    display:block !important;
    padding-left:2px !important;
  }

  .home-card[aria-label="Météo sur votre ligne"] .wx-stations{
    gap:10px !important;
    margin-top:2px !important;
  }

  .home-card[aria-label="Météo sur votre ligne"] .wx-station{
    padding:2px 0 !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-head{
    margin-bottom:6px !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-feed--home{
    max-height:122px !important;
    overflow-y:auto !important;
    margin-top:0 !important;
    padding-right:4px !important;
    gap:0 !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-item,
  .home-card[aria-label="Mur de commentaires"] .live-wall-item--home,
  .home-card[aria-label="Mur de commentaires"] .live-wall-item--compact{
    margin:0 0 2px 0 !important;
    line-height:1.2 !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-item-text{
    font-size:.82rem !important;
    line-height:1.22 !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-inline-meta{
    display:inline-block !important;
    margin-left:6px !important;
    margin-right:2px !important;
    font-size:.63rem !important;
    opacity:.72 !important;
    letter-spacing:.02em !important;
    vertical-align:baseline !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-form{
    margin-top:2px !important;
    gap:6px !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-form input{
    height:32px !important;
    min-height:32px !important;
    padding:5px 10px !important;
  }

  .home-card[aria-label="Mur de commentaires"] .live-wall-form .auth-button,
  .home-card[aria-label="Mur de commentaires"] .live-wall-form button{
    height:32px !important;
    min-height:32px !important;
    min-width:92px !important;
    padding:0 12px !important;
  }
}

/* ===== Source historique : stats-v2-styles ===== */
/* =========================================================
   STATS V2 — cockpit de fiabilité
   ========================================================= */
#statsConsole[open] > .section-summary{ margin-bottom:0; }
#statsConsole > .section-content{ overflow:visible; }
.stats-shell.stats-v2-enabled > .stats-express,
.stats-shell.stats-v2-enabled > .stats-details{ display:none !important; }

.stats-v2{
  --sv2-cyan:#5ee7f2;
  --sv2-cyan-strong:#00e5ff;
  --sv2-ok:#25d873;
  --sv2-delay:#ffd43b;
  --sv2-late:#ff9f43;
  --sv2-partial:#ff7a21;
  --sv2-cancel:#ff4d61;
  --sv2-ink:#eafcff;
  --sv2-muted:#7fa7b2;
  --sv2-card:rgba(6,20,31,.91);
  --sv2-line:rgba(94,231,242,.18);
  position:relative;
  display:grid;
  gap:14px;
  color:var(--sv2-ink);
  min-width:0;
}
.stats-v2 *,
.stats-v2 *::before,
.stats-v2 *::after{ box-sizing:border-box; }
.stats-v2 button,
.stats-v2 input,
.stats-v2 select{ font:inherit; }
.stats-v2 button:focus-visible,
.stats-v2 input:focus-visible,
.stats-v2 select:focus-visible{
  outline:2px solid var(--sv2-cyan);
  outline-offset:2px;
}
.stats-v2[aria-busy="true"] .stats-v2__content{
  opacity:.48;
  pointer-events:none;
}
.stats-v2[aria-busy="true"]::after{
  content:"";
  position:fixed;
  z-index:4800;
  left:50%;
  top:50%;
  width:42px;
  height:42px;
  margin:-21px;
  border:3px solid rgba(94,231,242,.2);
  border-top-color:var(--sv2-cyan);
  border-radius:50%;
  animation:stats-v2-spin .75s linear infinite;
}
@keyframes stats-v2-spin{ to{ transform:rotate(360deg); } }

.stats-v2__hero{
  position:relative;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  padding:18px;
  border:1px solid rgba(94,231,242,.26);
  border-radius:20px;
  background:
    radial-gradient(circle at 10% 0,rgba(0,229,255,.16),transparent 42%),
    linear-gradient(140deg,rgba(8,34,47,.96),rgba(4,15,26,.97));
  box-shadow:inset 0 0 28px rgba(0,229,255,.055),0 12px 28px rgba(0,0,0,.2);
}
.stats-v2__hero::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.11;
  background:repeating-linear-gradient(90deg,transparent 0 39px,rgba(94,231,242,.18) 40px);
}
.stats-v2__hero-copy,
.stats-v2__hero-actions{ position:relative; z-index:1; }
.stats-v2__eyebrow{
  margin:0 0 5px;
  color:var(--sv2-cyan);
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.15em;
  text-transform:uppercase;
}
.stats-v2 h2{
  margin:0;
  color:#f2feff;
  font-size:clamp(1.18rem,2.2vw,1.75rem);
  line-height:1.12;
  letter-spacing:.025em;
}
.stats-v2__subtitle{
  max-width:760px;
  margin:7px 0 0;
  color:#9fc5cf;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.86rem;
  line-height:1.45;
}
.stats-v2__live{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-top:10px;
  color:#8fb5bf;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.72rem;
}
.stats-v2__live-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--sv2-ok);
  box-shadow:0 0 10px rgba(37,216,115,.8);
}
.stats-v2__live-dot.is-error{
  background:var(--sv2-cancel);
  box-shadow:0 0 10px rgba(255,77,97,.8);
}
.stats-v2__hero-actions{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:8px;
}
.stats-v2__button{
  min-height:38px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:8px 13px;
  border:1px solid rgba(94,231,242,.35);
  border-radius:12px;
  background:rgba(3,16,25,.78);
  color:#cfffff;
  font-size:.72rem;
  font-weight:900;
  letter-spacing:.035em;
  cursor:pointer;
  transition:transform .16s ease,border-color .16s ease,background .16s ease;
}
.stats-v2__button:hover{
  transform:translateY(-1px);
  border-color:rgba(94,231,242,.72);
  background:rgba(10,39,51,.86);
}
.stats-v2__button--primary{
  border-color:rgba(0,229,255,.65);
  background:linear-gradient(135deg,#61eff5,#18bed1);
  color:#03212a;
  box-shadow:0 0 16px rgba(0,229,255,.2);
}
.stats-v2__button--danger{
  border-color:rgba(255,77,97,.42);
  color:#ff9eaa;
}
.stats-v2__button[disabled]{ opacity:.48; cursor:not-allowed; transform:none; }

.stats-v2__controls{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:9px;
  border:1px solid var(--sv2-line);
  border-radius:16px;
  background:rgba(3,13,22,.78);
}
.stats-v2__segments{
  min-width:0;
  display:flex;
  gap:5px;
  overflow-x:auto;
  scrollbar-width:none;
}
.stats-v2__segments::-webkit-scrollbar{ display:none; }
.stats-v2__segment{
  min-width:max-content;
  min-height:36px;
  padding:7px 12px;
  border:1px solid transparent;
  border-radius:10px;
  background:transparent;
  color:#82aab4;
  font-size:.69rem;
  font-weight:900;
  cursor:pointer;
}
.stats-v2__segment.is-active{
  border-color:rgba(94,231,242,.4);
  background:rgba(94,231,242,.12);
  color:#e9feff;
  box-shadow:inset 0 0 10px rgba(94,231,242,.08);
}
.stats-v2__range-label{
  padding:0 8px;
  color:#83b9c5;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.72rem;
  white-space:nowrap;
}
.stats-v2__custom-range{
  display:grid;
  grid-template-columns:repeat(2,minmax(130px,1fr)) auto;
  gap:9px;
  padding:12px;
  border:1px solid var(--sv2-line);
  border-radius:14px;
  background:rgba(5,18,28,.84);
}
.stats-v2__custom-range[hidden]{ display:none; }
.stats-v2__field{
  min-width:0;
  display:grid;
  gap:5px;
}
.stats-v2__field label{
  color:#80b7c2;
  font-size:.61rem;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}
.stats-v2__input,
.stats-v2__select{
  width:100%;
  min-width:0;
  min-height:39px;
  padding:8px 10px;
  border:1px solid rgba(94,231,242,.25);
  border-radius:10px;
  background:#06131d;
  color:#eaffff;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.82rem;
}
.stats-v2__input::placeholder{ color:#557681; }

.stats-v2__tabs{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:7px;
  padding:5px;
  border:1px solid var(--sv2-line);
  border-radius:14px;
  background:rgba(3,13,22,.78);
}
.stats-v2__tab{
  min-height:39px;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#779da8;
  font-size:.72rem;
  font-weight:900;
  cursor:pointer;
}
.stats-v2__tab.is-active{
  background:linear-gradient(135deg,rgba(0,229,255,.18),rgba(37,216,115,.1));
  color:#efffff;
  box-shadow:inset 0 0 0 1px rgba(94,231,242,.3),0 0 13px rgba(0,229,255,.08);
}
.stats-v2__panel[hidden]{ display:none !important; }
.stats-v2__content{ display:grid; gap:12px; transition:opacity .18s ease; }

.stats-v2__notice{
  padding:11px 13px;
  border:1px solid rgba(255,212,59,.28);
  border-radius:13px;
  background:rgba(255,212,59,.055);
  color:#d9c98b;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.76rem;
  line-height:1.4;
}
.stats-v2__notice[hidden]{ display:none; }
.stats-v2__notice.is-error{
  border-color:rgba(255,77,97,.4);
  background:rgba(255,77,97,.07);
  color:#ffb1bb;
}

.stats-v2__overview-grid{
  display:grid;
  grid-template-columns:minmax(250px,.85fr) minmax(0,1.4fr);
  gap:12px;
}
.stats-v2__card{
  min-width:0;
  overflow:hidden;
  padding:14px;
  border:1px solid var(--sv2-line);
  border-radius:17px;
  background:
    linear-gradient(145deg,rgba(7,24,35,.94),rgba(4,15,25,.96));
  box-shadow:inset 0 0 22px rgba(94,231,242,.035);
}
.stats-v2__card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}
.stats-v2__card-title{
  margin:0;
  color:#eafdff;
  font-size:.78rem;
  font-weight:900;
  letter-spacing:.025em;
}
.stats-v2__card-meta{
  color:#678e99;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.66rem;
  text-align:right;
}
.stats-v2__punctuality-card{
  display:grid;
  grid-template-columns:144px minmax(0,1fr);
  align-items:center;
  gap:12px;
  min-height:208px;
}
.stats-v2__ring{
  --stats-v2-ring:0;
  --stats-v2-ring-color:var(--sv2-ok);
  width:136px;
  aspect-ratio:1;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:conic-gradient(var(--stats-v2-ring-color) calc(var(--stats-v2-ring) * 1%),rgba(75,116,127,.23) 0);
  box-shadow:0 0 22px color-mix(in srgb,var(--stats-v2-ring-color) 22%,transparent);
}
.stats-v2__ring::before{
  content:"";
  grid-area:1/1;
  width:99px;
  aspect-ratio:1;
  border-radius:50%;
  background:#071823;
  box-shadow:inset 0 0 15px rgba(0,0,0,.4);
}
.stats-v2__ring-value{
  z-index:1;
  grid-area:1/1;
  display:grid;
  gap:2px;
  text-align:center;
}
.stats-v2__ring-value strong{
  color:#f2feff;
  font-size:1.65rem;
  letter-spacing:-.04em;
}
.stats-v2__ring-value span{
  color:#6f9ca7;
  font-size:.54rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.stats-v2__punct-copy{ min-width:0; }
.stats-v2__trend{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 8px;
  border:1px solid rgba(94,231,242,.18);
  border-radius:9px;
  background:rgba(0,0,0,.14);
  color:#8daeb7;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.69rem;
}
.stats-v2__trend strong{ color:#e9fcff; font-family:'Orbitron',sans-serif; }
.stats-v2__trend.is-up strong{ color:var(--sv2-ok); }
.stats-v2__trend.is-down strong{ color:var(--sv2-cancel); }
.stats-v2__punct-copy p{
  margin:10px 0 0;
  color:#799da7;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.72rem;
  line-height:1.4;
}

.stats-v2__kpis{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.stats-v2__kpi{
  position:relative;
  min-width:0;
  min-height:92px;
  display:grid;
  align-content:center;
  gap:4px;
  padding:12px 13px 12px 16px;
  overflow:hidden;
  border:1px solid var(--sv2-line);
  border-radius:14px;
  background:rgba(4,16,26,.7);
}
.stats-v2__kpi::before{
  content:"";
  position:absolute;
  inset:10px auto 10px 0;
  width:3px;
  border-radius:0 4px 4px 0;
  background:var(--kpi-color,var(--sv2-cyan));
  box-shadow:0 0 10px var(--kpi-color,var(--sv2-cyan));
}
.stats-v2__kpi span{
  overflow:hidden;
  color:#6f949e;
  font-size:.57rem;
  font-weight:900;
  letter-spacing:.07em;
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
}
.stats-v2__kpi strong{
  color:#effeff;
  font-size:1.3rem;
  font-variant-numeric:tabular-nums;
}
.stats-v2__kpi small{
  color:#6e9099;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.64rem;
}
.stats-v2__kpi--delay{ --kpi-color:var(--sv2-delay); }
.stats-v2__kpi--partial{ --kpi-color:var(--sv2-partial); }
.stats-v2__kpi--cancel{ --kpi-color:var(--sv2-cancel); }

.stats-v2__status-wrap{ display:grid; gap:9px; }
.stats-v2__status-bar{
  height:18px;
  display:flex;
  overflow:hidden;
  border-radius:999px;
  background:#142c36;
  box-shadow:inset 0 0 8px rgba(0,0,0,.34);
}
.stats-v2__status-segment{
  min-width:0;
  width:0;
  transition:width .38s ease;
}
.stats-v2__status-segment--ok{ background:var(--sv2-ok); }
.stats-v2__status-segment--delay{ background:var(--sv2-delay); }
.stats-v2__status-segment--partial{ background:var(--sv2-partial); }
.stats-v2__status-segment--cancel{ background:var(--sv2-cancel); }
.stats-v2__legend{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:7px;
}
.stats-v2__legend-item{
  min-width:0;
  display:grid;
  grid-template-columns:8px minmax(0,1fr);
  align-items:center;
  gap:6px;
  color:#789da6;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.65rem;
}
.stats-v2__legend-item i{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--legend-color);
}
.stats-v2__legend-item strong{
  display:block;
  color:#dff9fb;
  font-family:'Orbitron',sans-serif;
  font-size:.67rem;
}

.stats-v2__main-grid{
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);
  gap:12px;
}
.stats-v2__canvas{
  position:relative;
  width:100%;
  height:260px;
}
.stats-v2__canvas--short{ height:220px; }
.stats-v2__chart-tools{
  display:flex;
  flex-wrap:wrap;
  justify-content:flex-end;
  gap:4px;
}
.stats-v2__chart-tool{
  padding:5px 7px;
  border:1px solid rgba(94,231,242,.16);
  border-radius:8px;
  background:transparent;
  color:#6f929c;
  font-size:.57rem;
  font-weight:900;
  cursor:pointer;
}
.stats-v2__chart-tool.is-active{
  border-color:rgba(94,231,242,.4);
  background:rgba(94,231,242,.11);
  color:#dbfbff;
}
.stats-v2__insights{
  display:grid;
  gap:8px;
}
.stats-v2__insight{
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  align-items:center;
  gap:9px;
  padding:10px;
  border:1px solid rgba(94,231,242,.12);
  border-radius:12px;
  background:rgba(2,12,20,.44);
}
.stats-v2__insight-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:10px;
  background:rgba(94,231,242,.09);
  font-size:1rem;
}
.stats-v2__insight span{
  display:block;
  color:#688e98;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.61rem;
}
.stats-v2__insight strong{
  display:block;
  overflow:hidden;
  margin-top:2px;
  color:#e7fbfd;
  font-size:.72rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.stats-v2__bottom-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
}
.stats-v2__cause-list,
.stats-v2__train-list{ display:grid; gap:7px; }
.stats-v2__cause-row{
  display:grid;
  grid-template-columns:minmax(100px,.8fr) minmax(100px,1.2fr) auto;
  align-items:center;
  gap:8px;
}
.stats-v2__cause-label{
  overflow:hidden;
  color:#a8c7ce;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.68rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.stats-v2__cause-track{
  height:7px;
  overflow:hidden;
  border-radius:99px;
  background:rgba(92,130,140,.16);
}
.stats-v2__cause-track i{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--sv2-delay),var(--sv2-late));
}
.stats-v2__cause-count{
  color:#ffd671;
  font-size:.63rem;
  font-weight:900;
}
.stats-v2__train-row{
  width:100%;
  min-width:0;
  display:grid;
  grid-template-columns:28px minmax(76px,.65fr) minmax(0,1.35fr) auto;
  align-items:center;
  gap:8px;
  padding:8px 9px;
  border:1px solid rgba(94,231,242,.12);
  border-radius:11px;
  background:rgba(2,12,20,.42);
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.stats-v2__train-row:hover{ border-color:rgba(94,231,242,.36); }
.stats-v2__rank{
  color:#557b86;
  font-size:.61rem;
  font-weight:900;
  text-align:center;
}
.stats-v2__train-number{
  color:#effeff;
  font-size:.71rem;
  font-weight:900;
}
.stats-v2__train-stats{
  min-width:0;
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
.stats-v2__chip{
  padding:3px 5px;
  border:1px solid color-mix(in srgb,var(--chip-color) 42%,transparent);
  border-radius:6px;
  background:color-mix(in srgb,var(--chip-color) 8%,transparent);
  color:var(--chip-color);
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.57rem;
  font-weight:800;
}
.stats-v2__train-rate{
  color:#95bdc6;
  font-size:.62rem;
  font-weight:900;
  white-space:nowrap;
}

.stats-v2__search{
  display:grid;
  grid-template-columns:minmax(130px,1fr) minmax(150px,1fr) auto;
  align-items:end;
  gap:9px;
  padding:13px;
  border:1px solid var(--sv2-line);
  border-radius:15px;
  background:rgba(4,17,27,.8);
}
.stats-v2__detail-kpis{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}
.stats-v2__detail-kpi{
  min-width:0;
  display:grid;
  gap:3px;
  padding:10px 11px;
  border:1px solid rgba(94,231,242,.14);
  border-radius:12px;
  background:rgba(3,14,23,.62);
}
.stats-v2__detail-kpi span{
  overflow:hidden;
  color:#668b95;
  font-size:.55rem;
  font-weight:900;
  text-overflow:ellipsis;
  text-transform:uppercase;
  white-space:nowrap;
}
.stats-v2__detail-kpi strong{
  color:#eafeff;
  font-size:1rem;
  font-variant-numeric:tabular-nums;
}
.stats-v2__runs{
  min-height:24px;
  display:flex;
  align-items:center;
  gap:3px;
  overflow-x:auto;
  padding:4px 0 7px;
}
.stats-v2__run{
  min-width:7px;
  height:18px;
  flex:1 0 7px;
  border:0;
  border-radius:3px;
  background:var(--run-color,#4e6972);
  box-shadow:0 0 5px color-mix(in srgb,var(--run-color) 35%,transparent);
  cursor:help;
}
.stats-v2__table-wrap{
  max-height:340px;
  overflow:auto;
  border:1px solid rgba(94,231,242,.12);
  border-radius:12px;
}
.stats-v2__table{
  width:100%;
  table-layout:fixed;
  border-collapse:collapse;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.7rem;
}
.stats-v2__table .stats-v2__col-date{ width:25%; }
.stats-v2__table .stats-v2__col-status{ width:27%; }
.stats-v2__table .stats-v2__col-delay{ width:16%; }
.stats-v2__table .stats-v2__col-cause{ width:32%; }
.stats-v2__table th{
  position:sticky;
  z-index:1;
  top:0;
  padding:8px;
  background:#081d28;
  color:#78a8b3;
  font-family:'Orbitron',sans-serif;
  font-size:.55rem;
  letter-spacing:.04em;
  text-align:left;
  text-transform:uppercase;
}
.stats-v2__table td{
  padding:8px;
  border-top:1px solid rgba(94,231,242,.09);
  color:#bdd4d9;
  vertical-align:middle;
}
.stats-v2__table .is-num{ text-align:right; font-variant-numeric:tabular-nums; }
.stats-v2__table-cause{
  color:#91b2ba !important;
  font-size:.64rem;
  line-height:1.25;
  overflow-wrap:anywhere;
  word-break:normal;
}
.stats-v2__table-cause.is-empty{
  color:#4f727c !important;
  text-align:center;
}
.stats-v2__status-label{
  display:inline-flex;
  align-items:center;
  gap:5px;
  color:var(--status-color);
  font-weight:800;
}
.stats-v2__status-label::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--status-color);
}
@media (max-width:520px){
  .stats-v2__table-wrap{
    overflow-x:hidden;
  }
  .stats-v2__table{
    font-size:.62rem;
  }
  .stats-v2__table .stats-v2__col-date{ width:24%; }
  .stats-v2__table .stats-v2__col-status{ width:27%; }
  .stats-v2__table .stats-v2__col-delay{ width:15%; }
  .stats-v2__table .stats-v2__col-cause{ width:34%; }
  .stats-v2__table th{
    padding:7px 4px;
    font-size:.47rem;
    letter-spacing:0;
  }
  .stats-v2__table td{
    padding:8px 4px;
  }
  .stats-v2__status-label{
    gap:3px;
    line-height:1.1;
  }
  .stats-v2__status-label::before{
    width:5px;
    height:5px;
    flex:0 0 5px;
  }
  .stats-v2__table-cause{
    font-size:.57rem;
    line-height:1.18;
  }
}
.stats-v2__empty{
  padding:24px 12px;
  color:#658894;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.77rem;
  text-align:center;
}
.stats-v2__method{
  margin:2px 2px 0;
  color:#5f818b;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.65rem;
  line-height:1.4;
  text-align:center;
}

.stats-v2__settings{
  display:grid;
  gap:12px;
  padding:14px;
  border:1px solid rgba(0,229,255,.32);
  border-radius:17px;
  background:
    radial-gradient(circle at 100% 0,rgba(0,229,255,.11),transparent 38%),
    #061923;
  box-shadow:0 12px 30px rgba(0,0,0,.22);
}
.stats-v2__settings[hidden]{ display:none; }
.stats-v2__settings-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
}
.stats-v2__settings-head h3{
  margin:0;
  color:#eafeff;
  font-size:.86rem;
}
.stats-v2__settings-head p{
  margin:4px 0 0;
  color:#789da7;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.69rem;
}
.stats-v2__settings-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:9px;
}
.stats-v2__toggles{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}
.stats-v2__toggle{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:7px 9px;
  border:1px solid rgba(94,231,242,.15);
  border-radius:9px;
  color:#98b7be;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.7rem;
}
.stats-v2__toggle input{ accent-color:var(--sv2-cyan-strong); }
.stats-v2__settings-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
.stats-v2__settings-status{
  margin-right:auto;
  color:#789da7;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.67rem;
}
.stats-v2.is-compact .stats-v2__card{ padding:11px; }
.stats-v2.is-compact .stats-v2__canvas{ height:220px; }

@media (min-width:721px){
  body.page-stats #statsConsole > .section-summary{ display:none; }
  body.page-stats #statsConsole > .section-content{ padding-top:0; }
}
@media (max-width:900px){
  .stats-v2__overview-grid,
  .stats-v2__main-grid{ grid-template-columns:1fr; }
  .stats-v2__bottom-grid{ grid-template-columns:1fr; }
  .stats-v2__settings-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:720px){
  #stats.command-console{ padding:0; border:0; background:transparent; box-shadow:none; }
  #stats .console-header{ display:none; }
  #statsConsole{
    display:block !important;
    border:0;
    background:transparent;
    box-shadow:none;
  }
  #statsConsole > .section-summary{ display:none; }
  #statsConsole > .section-content{ padding:0; }
  .stats-v2{ gap:10px; }
  .stats-v2__hero{
    grid-template-columns:1fr;
    gap:12px;
    padding:14px;
    border-radius:17px;
  }
  .stats-v2__hero-actions{ justify-content:flex-start; }
  .stats-v2__hero-actions .stats-v2__button{ flex:1 1 140px; }
  .stats-v2__controls{ grid-template-columns:1fr; padding:7px; }
  .stats-v2__range-label{ padding:2px 6px 4px; }
  .stats-v2__custom-range{ grid-template-columns:1fr 1fr; }
  .stats-v2__custom-range .stats-v2__button{ grid-column:1/-1; }
  .stats-v2__tab{ font-size:.65rem; }
  .stats-v2__punctuality-card{
    grid-template-columns:118px minmax(0,1fr);
    min-height:172px;
    padding:11px;
  }
  .stats-v2__ring{ width:112px; }
  .stats-v2__ring::before{ width:80px; }
  .stats-v2__ring-value strong{ font-size:1.35rem; }
  .stats-v2__kpi{ min-height:78px; padding:9px 10px 9px 13px; }
  .stats-v2__kpi strong{ font-size:1.05rem; }
  .stats-v2__legend{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stats-v2__canvas{ height:225px; }
  .stats-v2__search{ grid-template-columns:1fr 1fr; }
  .stats-v2__search .stats-v2__button{ width:100%; grid-column:1/-1; }
  .stats-v2__detail-kpis{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .stats-v2__settings-grid{ grid-template-columns:1fr 1fr; }
  .stats-v2__settings-actions{ flex-wrap:wrap; }
  .stats-v2__settings-status{ flex-basis:100%; }
}
@media (max-width:430px){
  .stats-v2__segments{ margin-right:-2px; }
  .stats-v2__segment{ padding:7px 9px; font-size:.62rem; }
  .stats-v2__tabs{ gap:4px; }
  .stats-v2__tab{ padding:6px 4px; font-size:.6rem; }
  .stats-v2__punctuality-card{ grid-template-columns:104px minmax(0,1fr); }
  .stats-v2__ring{ width:100px; }
  .stats-v2__ring::before{ width:72px; }
  .stats-v2__trend{ align-items:flex-start; flex-direction:column; }
  .stats-v2__search,
  .stats-v2__settings-grid{ grid-template-columns:1fr; }
  .stats-v2__cause-row{ grid-template-columns:minmax(90px,.9fr) minmax(70px,1fr) auto; }
  .stats-v2__train-row{ grid-template-columns:22px 68px minmax(0,1fr); }
  .stats-v2__train-rate{ grid-column:2/-1; }
}
@media (prefers-reduced-motion:reduce){
  .stats-v2 *,
  .stats-v2 *::before,
  .stats-v2 *::after{ animation:none !important; transition:none !important; }
}

/* ===== Source historique : home-comments-scroll-final ===== */
.home-card[aria-label="Mur de commentaires"]{
  min-height: 0 !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-feed--home{
  display:block !important;
  height:auto !important;
  max-height: calc((2.9em * 4) + (8px * 3) + 8px) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior-y: contain !important;
  touch-action: pan-y !important;
  padding-right: 4px !important;
  margin-top: 0 !important;
  scroll-behavior: smooth !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-item,
.home-card[aria-label="Mur de commentaires"] .live-wall-item--home,
.home-card[aria-label="Mur de commentaires"] .live-wall-item--compact{
  display:block !important;
  border:none !important;
  background:transparent !important;
  border-radius:0 !important;
  padding:0 !important;
  margin:0 0 8px 0 !important;
  min-height:0 !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-item:last-child,
.home-card[aria-label="Mur de commentaires"] .live-wall-item--home:last-child,
.home-card[aria-label="Mur de commentaires"] .live-wall-item--compact:last-child{
  margin-bottom:0 !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-item-text{
  display:block !important;
  overflow:visible !important;
  -webkit-line-clamp:unset !important;
  -webkit-box-orient:unset !important;
  white-space:normal !important;
  line-height:1.45 !important;
}
@media (max-width: 768px){
  .home-card[aria-label="Mur de commentaires"] .live-wall-feed--home{
    max-height: calc((2.75em * 4) + (6px * 3) + 6px) !important;
    padding-right: 3px !important;
  }
  .home-card[aria-label="Mur de commentaires"] .live-wall-item,
  .home-card[aria-label="Mur de commentaires"] .live-wall-item--home,
  .home-card[aria-label="Mur de commentaires"] .live-wall-item--compact{
    margin:0 0 6px 0 !important;
  }
  .home-card[aria-label="Mur de commentaires"] .live-wall-item-text{
    line-height:1.35 !important;
  }
}

/* ===== Source historique : home-comments-4-visible-final ===== */
.home-card[aria-label="Mur de commentaires"] .live-wall-feed--home{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior-y:contain !important;
  touch-action:pan-y !important;
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  padding-right:4px !important;
  box-sizing:border-box !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-item,
.home-card[aria-label="Mur de commentaires"] .live-wall-item--home,
.home-card[aria-label="Mur de commentaires"] .live-wall-item--compact{
  display:block !important;
}

/* ===== Source historique : home-comments-ultimate-fix ===== */
.home-card[aria-label="Mur de commentaires"] .live-wall-feed--home{
  display:block !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior-y:contain !important;
  touch-action:pan-y !important;
  min-height:0 !important;
  height:auto !important;
  box-sizing:border-box !important;
  padding-right:4px !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-item,
.home-card[aria-label="Mur de commentaires"] .live-wall-item--home,
.home-card[aria-label="Mur de commentaires"] .live-wall-item--compact{
  display:block !important;
  margin:0 0 6px 0 !important;
  padding:0 !important;
  border:none !important;
  background:transparent !important;
  border-radius:0 !important;
  min-height:0 !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-item:last-child,
.home-card[aria-label="Mur de commentaires"] .live-wall-item--home:last-child,
.home-card[aria-label="Mur de commentaires"] .live-wall-item--compact:last-child{
  margin-bottom:0 !important;
}

/* ===== Source historique : home-comments-hard-final-fix ===== */
.home-card[aria-label="Mur de commentaires"] .live-wall-feed--home{
  overflow-y:auto !important;
  overflow-x:hidden !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior-y:contain !important;
  touch-action:pan-y !important;
  padding-right:4px !important;
  min-height:0 !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-item,
.home-card[aria-label="Mur de commentaires"] .live-wall-item--home,
.home-card[aria-label="Mur de commentaires"] .live-wall-item--compact{
  margin:0 0 2px 0 !important;
  padding:0 !important;
  border:none !important;
  background:transparent !important;
  min-height:0 !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-item-text{
  display:block !important;
  line-height:1.16 !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-inline-meta{
  font-size:.63rem !important;
  opacity:.72 !important;
  margin-left:6px !important;
  margin-right:2px !important;
}
@media (max-width:768px){
  .home-card[aria-label="Mur de commentaires"] .live-wall-item-text{
    font-size:.82rem !important;
    line-height:1.14 !important;
  }
}

/* ===== Source historique : home-punctuality-visual-fix ===== */
.home-punct-card{
  padding-top: 9px !important;
  padding-bottom: 10px !important;
}
.home-punct-card #homePunctCardTitle{
  text-align:center;
  font-size:.9rem !important;
  margin:0 0 4px 0 !important;
}
.home-card[aria-label="Météo sur votre ligne"] .wx-stations{
  grid-template-columns: 1fr 1fr !important;
  gap: 10px !important;
}
.home-card[aria-label="Météo sur votre ligne"] .wx-station{
  min-height: 0 !important;
}
.home-punct-card{
  align-self: start;
}
.home-punct-card #homePunctCardTitle{
  margin-bottom: 6px !important;
}
#homePunctualityChartHost.home-punct-chart-host{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap: 8px !important;
  min-height: 96px !important;
  margin-top: 0 !important;
}
.home-punct-chart-wrap{
  position: relative;
  width: 50px;
  height: 50px;
  margin: 0 auto;
}
.home-punct-mini-label{
  position:absolute;
  bottom:-16px;
  left:50%;
  transform:translateX(-50%);
  font-size:.56rem;
  font-weight:800;
  color:#bff8ff;
  letter-spacing:.04em;
  opacity:.9;
  white-space:nowrap;
  pointer-events:none;
}
@media (max-width: 768px){
  .home-punct-chart-wrap{
    width: 47px;
    height: 47px;
  }
}
@media (max-width: 700px){
  .home-punct-card{
    align-self: start !important;
    min-height: 92px;
    padding: 9px 9px 8px !important;
  }
  .home-punct-card #homePunctCardTitle{
    font-size: .86rem !important;
    line-height: 1.05 !important;
    margin-bottom: 2px !important;
  }
  #homePunctualityChartHost.home-punct-chart-host{
    min-height: 72px !important;
    gap: 10px !important;
  }
  .home-punct-chart-wrap{
    width: 46px;
    height: 46px;
  }
}

/* ===== Source historique : home-cards-center-fix-v15 ===== */
/* Centrage harmonisé accueil + resserrage bienvenue */
#homeWelcomeLine,
.home-welcome-line{
  width:100% !important;
  text-align:center !important;
  margin:0 0 4px 0 !important;
  padding:0 !important;
  line-height:1.08 !important;
}

.home-card[aria-label="Info trafic"],
.home-card[aria-label="Météo sur votre ligne"]{
  display:flex !important;
  flex-direction:column !important;
}
.home-card[aria-label="Info trafic"] h2,
.home-card[aria-label="Météo sur votre ligne"] h2{
  width:100% !important;
  text-align:center !important;
  margin:0 0 12px 0 !important;
}

/* Trafic : même esprit que météo, bien centré */
.home-card[aria-label="Info trafic"] .traffic-split{
  width:100% !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  gap:14px !important;
  flex:1 1 auto !important;
}
.home-card[aria-label="Info trafic"] .traffic-split-row{
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  gap:10px !important;
  padding:0 !important;
  border:none !important;
  background:transparent !important;
}
.home-card[aria-label="Info trafic"] .traffic-split-line{
  width:100% !important;
  text-align:center !important;
  font-size:1.02rem !important;
  line-height:1.1 !important;
}
.home-card[aria-label="Info trafic"] .traffic-pill{
  min-width:170px !important;
  justify-content:center !important;
}

/* Météo : ponctualité un peu plus basse sans agrandir la carte */
.home-card[aria-label="Météo sur votre ligne"] .wx-stations{
  align-items:start !important;
  row-gap:4px !important;
  flex:1 1 auto !important;
}
.home-card[aria-label="Météo sur votre ligne"] .wx-station--punctuality{
  min-height:72px !important;
  padding:8px 6px 0 !important;
  justify-content:flex-start !important;
}
.home-card[aria-label="Météo sur votre ligne"] .wx-station--punctuality .wx-title,
.home-card[aria-label="Météo sur votre ligne"] #homeWxPunctualityTitle{
  margin:10px 0 8px 0 !important;
  font-size:1.02rem !important;
  line-height:1.05 !important;
}
.home-card[aria-label="Météo sur votre ligne"] .wx-station--punctuality .wx-now,
.home-card[aria-label="Météo sur votre ligne"] #homeWxPunctuality{
  margin:6px 0 0 0 !important;
  font-size:1.9rem !important;
  line-height:.92 !important;
}

@media (max-width: 768px){
  #homeWelcomeLine,
  .home-welcome-line{
    margin:0 0 2px 0 !important;
    line-height:1.04 !important;
    padding:0 !important;
  }
  .home-card[aria-label="Info trafic"] h2,
  .home-card[aria-label="Météo sur votre ligne"] h2{
    margin-bottom:10px !important;
  }
  .home-card[aria-label="Info trafic"] .traffic-split{
    gap:12px !important;
  }
  .home-card[aria-label="Info trafic"] .traffic-split-line{
    font-size:.95rem !important;
  }
  .home-card[aria-label="Info trafic"] .traffic-pill{
    min-width:150px !important;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-stations{
    row-gap:4px !important;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-station--punctuality{
    min-height:64px !important;
    padding:6px 4px 0 !important;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-station--punctuality .wx-title,
  .home-card[aria-label="Météo sur votre ligne"] #homeWxPunctualityTitle{
    margin:8px 0 6px 0 !important;
    font-size:.98rem !important;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-station--punctuality .wx-now,
  .home-card[aria-label="Météo sur votre ligne"] #homeWxPunctuality{
    margin:4px 0 0 0 !important;
    font-size:1.8rem !important;
  }
}

/* ===== Source historique : home-premium-harmonisation-final ===== */
:root{
  --home-premium-font-base: clamp(0.95rem, 0.28vw + 0.88rem, 1.05rem);
  --home-premium-font-small: clamp(0.78rem, 0.18vw + 0.74rem, 0.9rem);
  --home-premium-font-title: clamp(1.02rem, 0.4vw + 0.94rem, 1.16rem);
  --home-premium-font-display: clamp(1.55rem, 1.1vw + 1.2rem, 2.15rem);
  --home-premium-radius: 20px;
  --home-premium-ease: cubic-bezier(.22,.61,.36,1);
  --home-premium-shadow: inset 0 0 18px rgba(0,240,255,.10), 0 18px 34px rgba(0,0,0,.26);
  --bottom-bar-height: 58px !important;
  --lb-bottomnav-h: 58px !important;
}

#homeWelcomeLine,
.home-welcome-line,
.home-card,
.home-card p,
.home-card .subtle,
.home-card .home-action,
.traffic-split-line,
.traffic-pill,
.wx-title,
.wx-mini,
.wx-badge,
.live-wall-item-text,
.live-wall-meta,
.live-wall-inline-meta,
.live-wall-empty,
.live-wall-cta,
.home-fav-train,
.home-fav-meta,
.home-fav-pill,
.home-stats-item .title,
.home-stats-item .meta,
.ber-line1,
.ber-context,
.ber-metric,
.ber-metric .value{ letter-spacing:.01em; }

.live-wall-item-text,
.live-wall-form input,
.train-comments-item,
#homeLiveWallInput,
#trainDetailCommentsInput{
  font-family: 'Orbitron', 'Apple Color Emoji', 'Segoe UI Emoji', 'Noto Color Emoji', sans-serif !important;
}

.top-bar__social-link svg{
  width: 19px !important;
  height: 19px !important;
}

#favTrainsWidget{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 8px auto 10px auto !important;
}
#favTrainsWidget .fav-title{
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin: 0 0 6px 2px !important;
  padding: 6px 11px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(126,247,255,.35) !important;
  background:
    linear-gradient(180deg, rgba(126,247,255,.14), rgba(126,247,255,.02) 74%),
    linear-gradient(135deg, rgba(9,22,38,.96), rgba(7,15,28,.92)) !important;
  box-shadow:
    inset 0 1px 0 rgba(240,255,255,.10),
    0 8px 16px rgba(0,0,0,.22) !important;
  font-size: .98rem !important;
  letter-spacing: .015em !important;
}
#favTrainsWidget .fav-grid{
  gap: 5px !important;
}
#favTrainsWidget .fav-card{
  position: relative;
  overflow: hidden;
  padding: 8px 9px !important;
  border-radius: 15px !important;
  border: 1px solid rgba(126,247,255,.26) !important;
  background:
    linear-gradient(180deg, rgba(126,247,255,.09), rgba(126,247,255,0) 38%),
    linear-gradient(135deg, rgba(8,20,36,.96), rgba(5,12,24,.94)) !important;
  box-shadow:
    inset 0 1px 0 rgba(240,255,255,.09),
    inset 0 0 18px rgba(0,240,255,.055),
    0 12px 24px rgba(0,0,0,.22) !important;
}
#favTrainsWidget .fav-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background: linear-gradient(180deg, rgba(255,255,255,.06), rgba(255,255,255,0) 44%);
}
#favTrainsWidget .fav-card-head{ gap: 6px !important; }
#favTrainsWidget .fav-tag{
  font-size: .62rem !important;
  padding: 2px 6px !important;
}
#favTrainsWidget .fav-train{
  font-size: .84rem !important;
  line-height: 1.05 !important;
}
#favTrainsWidget .fav-meta{
  margin-top: 2px !important;
  font-size: .72rem !important;
  line-height: 1.04 !important;
}
#favTrainsWidget .fav-line{
  margin-top: 2px !important;
  font-size: .72rem !important;
  line-height: 1.04 !important;
}
#favTrainsWidget .fav-times{
  margin-top: 2px !important;
  gap: 2px !important;
  font-size: clamp(.74rem, .18vw + .72rem, .86rem) !important;
  line-height: 1 !important;
}
#favTrainsWidget .fav-cause,
#favTrainsWidget .fav-cause-inline{
  margin: 2px 0 3px 0 !important;
  padding: 3px 5px !important;
  font-size: .64rem !important;
}
#favTrainsWidget .fav-details{
  margin-top: 3px !important;
  border-radius: 8px !important;
}
#favTrainsWidget .fav-details-summary{
  padding: 3px 6px !important;
  font-size: .65rem !important;
}
#favTrainsWidget .fav-box-head,
#favTrainsWidget .fav-box-body{
  padding: 4px 5px !important;
}
#favTrainsWidget .fav-box-body{
  font-size: .74rem !important;
  line-height: 1.08 !important;
}
#favTrainsWidget .fav-aff-summary{
  gap: 3px !important;
}
#favTrainsWidget .fav-aff-top{
  gap: 2px !important;
}
#favTrainsWidget .fav-aff-title{
  font-size: .68rem !important;
}
#favTrainsWidget .fav-aff-meta{
  font-size: .66rem !important;
  gap: 4px !important;
  line-height: 1.02 !important;
}
#favTrainsWidget .fav-aff-max{
  font-size: .6rem !important;
}
#favTrainsWidget .fav-aff-schema{
  gap: 4px !important;
  min-height: 16px !important;
}
#favTrainsWidget .fav-aff-toggleline{
  font-size: .72rem !important;
  min-height: 0 !important;
}
#favTrainsWidget .fav-aff-body{
  gap: 4px !important;
}
#favTrainsWidget .fav-aff-stops{
  gap: 3px !important;
}
#favTrainsWidget .fav-aff-stop{
  padding: 4px 5px !important;
  border-radius: 10px !important;
  gap: 1px !important;
}
#favTrainsWidget .fav-aff-stop-head{
  gap: 4px !important;
}
#favTrainsWidget .fav-aff-stop-title{
  gap: 1px !important;
}
#favTrainsWidget .fav-aff-stop-name{
  font-size: .68rem !important;
}
#favTrainsWidget .fav-aff-stop-time{
  font-size: .62rem !important;
}
#favTrainsWidget .fav-aff-stop-pct{
  min-width: 28px !important;
  font-size: .7rem !important;
}
#favTrainsWidget .fav-aff-stop-schema{
  margin-top: 0 !important;
}
#favTrainsWidget .fav-aff-stop-schema .affls-rame{
  display:flex !important;
  justify-content:flex-end !important;
  width:100% !important;
  max-width:100% !important;
  margin-left:0 !important;
  padding-top:2px !important;
  gap:3px !important;
  overflow:hidden !important;
}
#favTrainsWidget .fav-aff-stop-schema .affls-unit{
  width:calc(var(--seg-count, 3) * 29px) !important;
  height:14px !important;
  border-width:2px !important;
}
#favTrainsWidget .fav-aff-stop-schema .affls-unit > span{
  border-right-width:2px !important;
}
#favTrainsWidget .fav-aff-stop-schema .affls-dot{
  width:6px !important;
  height:6px !important;
  border-width:2px !important;
}
#favTrainsWidget .fav-aff-stop-schema .affls-pct{
  top:-11px !important;
  font-size:6px !important;
  padding:0 3px !important;
}
#favTrainsWidget .fav-aff-stop-schema .aff-arrow{
  font-size:8px !important;
}
#favTrainsWidget .fav-aff-schema .affls-rame,
#favTrainsWidget .fav-aff-schema .affls-train,
#favTrainsWidget .fav-aff-stop-schema .affls-rame,
#favTrainsWidget .fav-aff-stop-schema .affls-train{
  transform-origin: right center !important;
}
#favTrainsWidget .fav-aff-empty{
  padding: 6px 7px !important;
  font-size: .66rem !important;
}

#homeWelcomeLine,
.home-welcome-line{
  font-size: clamp(1.08rem, 0.56vw + 0.96rem, 1.34rem) !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;
  color: #eafcff !important;
  text-wrap: balance;
  margin: -8px 0 2px !important;
  padding-top: 0 !important;
}
.home-dashboard{ gap: 18px; margin-top: -4px !important; }
.top-bar__logo-icon{ height: 55px !important; }
.top-bar__logo-text{ height: 34.5px !important; max-width: min(50vw, 334px) !important; }
body{ padding-bottom: calc(var(--bottom-bar-height, 58px) + 10px) !important; }

.home-card{
  position: relative;
  overflow: clip;
  border-radius: var(--home-premium-radius) !important;
  padding: 16px !important;
  box-shadow: var(--home-premium-shadow) !important;
  transition: transform .22s var(--home-premium-ease), border-color .22s var(--home-premium-ease), box-shadow .22s var(--home-premium-ease), background-color .22s var(--home-premium-ease);
  will-change: transform;
}
.home-card::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background: linear-gradient(180deg, rgba(126,247,255,.09), rgba(126,247,255,0) 34%);
  opacity:.65;
}
.home-card:hover,
.home-card:focus-within{
  transform: translateY(-2px);
  border-color: rgba(126,247,255,.42);
  box-shadow: inset 0 0 18px rgba(0,240,255,.12), 0 22px 38px rgba(0,0,0,.30);
}
.home-card h2,
.live-wall-title{
  font-size: var(--home-premium-font-title) !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  letter-spacing: .03em !important;
  margin-bottom: 10px !important;
}
.home-card p,
.home-card .subtle,
.home-fav-meta,
.ber-context,
.live-wall-item,
.live-wall-empty,
.live-wall-cta,
.home-stats-item .meta,
.wx-mini,
.wx-badge,
.live-wall-form input,
.live-wall-form button,
.home-card .home-action{
  font-size: var(--home-premium-font-base) !important;
  line-height: 1.42 !important;
}
.home-fav-train,
.traffic-split-line,
.ber-line1,
.ber-metric,
.home-stats-item .value{
  font-size: clamp(0.97rem, 0.24vw + 0.91rem, 1.08rem) !important;
  line-height: 1.25 !important;
}
.traffic-pill,
.home-fav-pill,
.live-wall-badge,
.wx-title,
.home-stats-item .title,
.live-wall-meta,
.live-wall-inline-meta{
  font-size: var(--home-premium-font-small) !important;
  line-height: 1.18 !important;
  font-weight: 800 !important;
}
.wx-title,
.home-stats-item .title,
.live-wall-badge,
.traffic-pill,
.home-fav-pill{ text-transform: uppercase; }
.wx-now .wx-temp,
.home-card[aria-label="Météo sur votre ligne"] #homeWxPunctuality,
.home-card[aria-label="Météo sur votre ligne"] .wx-station--punctuality .wx-now,
.home-card[forwarding="ber"] #homeBerPunctuality,
.home-card[forwarding="ber"] .ber-metric .value{
  font-size: var(--home-premium-font-display) !important;
  line-height: .96 !important;
  letter-spacing: 0 !important;
}
.wx-now .wx-icon{ font-size: clamp(1.35rem, 0.75vw + 1.1rem, 1.95rem) !important; }
.traffic-split,
.wx-stations,
.home-fav-preview,
.live-wall-feed,
.home-stats-panel,
.ber-lines{ gap: 10px !important; }
.home-quick-presets{
  margin-top: 2px !important;
  padding: 1px 2px !important;
  border-radius: 10px !important;
  border: 1px solid transparent !important;
  background: rgba(4,20,34,.62) !important;
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 3px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  align-items: center !important;
  box-shadow: none !important;
}
.home-quick-presets__label{
  grid-column: 1 / -1;
  font-size: .48rem !important;
  letter-spacing: .08em !important;
  text-transform: uppercase;
  color: rgba(174,245,255,.9) !important;
  margin: 0 !important;
  line-height: 1 !important;
  text-align: center !important;
}
.home-quick-presets__btn{
  min-height: 22px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  display: block !important;
  border-radius: 999px !important;
  border: 1px solid rgba(0,240,255,.46) !important;
  background: linear-gradient(135deg, rgba(0,173,255,.36), rgba(0,240,255,.18)) !important;
  color: #dffbff !important;
  font-family: 'Orbitron', sans-serif !important;
  font-size: .67rem !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  padding: 1px 1px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  text-align: center !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
  transform: none !important;
  letter-spacing: 0 !important;
}
.home-quick-presets__btn:hover,
.home-quick-presets__btn:focus-visible,
.home-quick-presets__btn:active{
  box-shadow: none !important;
  transform: none !important;
  filter: brightness(1.02);
}
.home-card[aria-label="Info trafic"]{
  padding: 10px 10px 8px !important;
}
.home-card[aria-label="Info trafic"] h2{
  margin-bottom: 6px !important;
}
.home-card[aria-label="Info trafic"] .traffic-split{
  gap: 6px !important;
}
.home-card[aria-label="Info trafic"] .traffic-split-row{
  padding: 5px 7px !important;
  border-radius: 10px !important;
  gap: 6px !important;
}
.home-card[aria-label="Info trafic"] .traffic-split-line{
  font-size: .84rem !important;
  line-height: 1.02 !important;
}
.home-card[aria-label="Info trafic"] .traffic-pill{
  min-width: 0 !important;
  font-size: .6rem !important;
  padding: 2px 7px !important;
}
.traffic-split-row,
.wx-station,
.home-fav-row,
.home-stats-item,
.ber-context,
.ber-metric,
.live-wall-item{ border-radius: 16px !important; }
.traffic-split-row,
.wx-station,
.home-fav-row,
.home-stats-item,
.ber-context,
.ber-metric,
.live-wall-item,
.live-wall-form input,
.live-wall-form button,
.home-card .home-action,
.bottom-nav__item,
.bottom-nav__icon,
.bottom-nav__icon-img{
  transition: transform .18s var(--home-premium-ease), box-shadow .18s var(--home-premium-ease), border-color .18s var(--home-premium-ease), background-color .18s var(--home-premium-ease), opacity .18s var(--home-premium-ease), filter .18s var(--home-premium-ease) !important;
}
.live-wall-item,
.home-fav-row,
.wx-station,
.traffic-split-row,
.ber-metric,
.ber-context,
.home-stats-item{ backface-visibility:hidden; transform:translateZ(0); }

.home-fav-row{
  position: relative;
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(126,247,255,.10), rgba(126,247,255,0) 42%),
    linear-gradient(135deg, rgba(10,24,42,.94), rgba(7,16,30,.92)) !important;
  border: 1px solid rgba(126,247,255,.24) !important;
  box-shadow:
    inset 0 1px 0 rgba(220,255,255,.10),
    inset 0 0 18px rgba(0,240,255,.05),
    0 10px 22px rgba(0,0,0,.22) !important;
}
.home-fav-row::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,0) 45%);
  opacity: .85;
}
.home-fav-row:hover,
.home-fav-row:focus-visible{
  transform: translateY(-1px) scale(1.01) !important;
  border-color: rgba(126,247,255,.42) !important;
  box-shadow:
    inset 0 1px 0 rgba(235,255,255,.14),
    inset 0 0 20px rgba(0,240,255,.08),
    0 14px 28px rgba(0,0,0,.28),
    0 0 0 1px rgba(126,247,255,.08) !important;
}
.home-fav-row:active{
  transform: translateY(1px) scale(.985) !important;
  box-shadow:
    inset 0 2px 12px rgba(0,0,0,.30),
    inset 0 0 16px rgba(0,240,255,.06),
    0 6px 14px rgba(0,0,0,.20) !important;
}
.home-fav-row .fav-state-badge{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 0 14px rgba(0,240,255,.10);
}

.bottom-nav{
  height: auto !important;
  min-height: 0 !important;
  padding: 3px calc(env(safe-area-inset-right, 0px) + 10px) 1px calc(env(safe-area-inset-left, 0px) + 10px) !important;
}
.bottom-nav__items{
  height:auto !important;
  align-items:stretch !important;
  gap:1px !important;
  display:grid !important;
  grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
}
.bottom-nav__item{
  position: relative;
  min-height: 48px;
  min-width:0 !important;
  overflow:hidden !important;
  gap: 2px !important;
  padding: 4px 3px 2px !important;
  border-radius: 14px;
  text-align: center !important;
  align-self: stretch;
  -webkit-tap-highlight-color: transparent;
}
.bottom-nav__item::before{
  content:"";
  position:absolute;
  inset:2px;
  border-radius:12px;
  background: linear-gradient(180deg, rgba(126,247,255,.14), rgba(126,247,255,0));
  opacity:0;
  transform:scale(.94);
  transition: opacity .16s var(--home-premium-ease), transform .16s var(--home-premium-ease);
  pointer-events:none;
}
.bottom-nav__label{
  display:block;
  width:100%;
  margin:0 auto;
  line-height:1.08 !important;
  text-align:center !important;
  text-wrap:balance;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transform:translateX(0) !important;
}
.bottom-nav__item--search .bottom-nav__label{
  font-size: .46rem !important;
  letter-spacing: -.01em !important;
}
.bottom-nav__item--search{
  padding-left:1px !important;
  padding-right:1px !important;
}
.bottom-nav__item:hover,
.bottom-nav__item:focus-visible{
  transform: translateY(-1px);
  background: rgba(126,247,255,.05) !important;
  box-shadow: inset 0 0 0 1px rgba(126,247,255,.14), 0 8px 18px rgba(0,0,0,.22);
}
.bottom-nav__item:hover::before,
.bottom-nav__item:focus-visible::before,
.bottom-nav__item:active::before,
.bottom-nav__item.is-pressed::before{
  opacity:1;
  transform:scale(1);
}
.bottom-nav__item:active,
.bottom-nav__item.is-pressed{
  transform: translateY(1px) scale(.97) !important;
  background: rgba(0,240,255,.10) !important;
  box-shadow: inset 0 0 0 1px rgba(126,247,255,.20), 0 4px 12px rgba(0,0,0,.20) !important;
}
.bottom-nav__item:active .bottom-nav__icon,
.bottom-nav__item.is-pressed .bottom-nav__icon,
.bottom-nav__item:active .bottom-nav__icon-img,
.bottom-nav__item.is-pressed .bottom-nav__icon-img{
  transform:scale(.94);
  filter: drop-shadow(0 0 10px rgba(0,240,255,.75));
}
.bottom-nav__item.active,
.bottom-nav__item[aria-current="page"],
.bottom-nav__item.is-active{
  background: rgba(126,247,255,.06) !important;
  box-shadow: inset 0 0 0 1px rgba(126,247,255,.16) !important;
}

[data-home-animated].is-updating{ animation: homePremiumPulse .32s var(--home-premium-ease); }
[data-home-animated].is-state-changed{ animation: homePremiumState .44s var(--home-premium-ease); }
.home-card .traffic-pill.is-severity-up,
.home-card .home-fav-pill.is-severity-up,
.home-card .live-wall-badge.is-severity-up{ box-shadow: 0 0 0 1px rgba(255,255,255,.08), 0 0 18px rgba(255,149,0,.16); }

@keyframes homePremiumPulse{
  0%{ transform: translateZ(0) scale(1); opacity:.88; }
  45%{ transform: translateZ(0) scale(1.018); opacity:1; }
  100%{ transform: translateZ(0) scale(1); opacity:1; }
}
@keyframes homePremiumState{
  0%{ transform: translateZ(0) translateY(0); filter:saturate(.92); }
  35%{ transform: translateZ(0) translateY(-1px); filter:saturate(1.06); }
  100%{ transform: translateZ(0) translateY(0); filter:none; }
}

@media (max-width: 700px){
  :root{ --bottom-bar-height: 54px !important; --lb-bottomnav-h: 54px !important; }
  .home-dashboard{ gap:10px !important; margin-top:-3px !important; }
  .home-card{ padding:13px !important; }
  #homeWelcomeLine,
  .home-welcome-line{
    font-size: .90rem !important;
    line-height: 1.2 !important;
  }
  .top-bar__logo-icon{ height:43.7px !important; }
  .top-bar__logo-text{ height:27.6px !important; max-width:48vw !important; }
  .top-bar__social-link svg{ width: 17px !important; height: 17px !important; }
  .home-quick-presets{
    margin-top: 3px !important;
    padding: 1px 1px !important;
    gap: 2px !important;
    border-radius: 9px !important;
  }
  .home-quick-presets__label{
    font-size: .44rem !important;
    letter-spacing: .07em !important;
  }
  .home-quick-presets__btn{
    min-height: 20px !important;
    font-size: .60rem !important;
    padding: 1px 1px !important;
  }
  .home-card[aria-label="Info trafic"]{
    padding: 8px 8px 6px !important;
    align-self: stretch !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
  }
  .home-card[aria-label="Info trafic"] h2{
    margin-bottom: 5px !important;
  }
  .home-card[aria-label="Info trafic"] .traffic-split{
    gap: 4px !important;
  }
  .home-card[aria-label="Info trafic"] .traffic-split-row{
    padding: 4px 6px !important;
    gap: 5px !important;
  }
  .home-card[aria-label="Info trafic"] .traffic-split-line{
    font-size: .78rem !important;
  }
  .home-card[aria-label="Info trafic"] .traffic-pill{
    font-size: .56rem !important;
    padding: 2px 6px !important;
  }
  .bottom-nav__item--search .bottom-nav__label{
    font-size: .42rem !important;
  }
  #favTrainsWidget{ padding: 0 !important; margin: 6px auto 8px auto !important; }
  #favTrainsWidget .fav-title{
    font-size: .82rem !important;
    margin: 0 0 5px 1px !important;
    padding: 4px 9px !important;
  }
  #favTrainsWidget .fav-grid{ gap: 3px !important; }
  #favTrainsWidget .fav-card{ padding: 7px 8px !important; border-radius: 12px !important; }
  #favTrainsWidget .fav-tag{ font-size: .58rem !important; padding: 2px 5px !important; }
  #favTrainsWidget .fav-train{ font-size: .78rem !important; }
  #favTrainsWidget .fav-meta,
  #favTrainsWidget .fav-line{ font-size: .68rem !important; line-height: 1.02 !important; }
  #favTrainsWidget .fav-times{ font-size: .74rem !important; gap: 1px !important; }
  #favTrainsWidget .fav-details-summary{ padding: 3px 6px !important; font-size: .62rem !important; }
  #favTrainsWidget .fav-box-head,
  #favTrainsWidget .fav-box-body{ padding: 4px 5px !important; }
  #favTrainsWidget .fav-aff-title{ font-size: .64rem !important; }
  #favTrainsWidget .fav-aff-meta{ font-size: .62rem !important; gap: 3px !important; }
  #favTrainsWidget .fav-aff-max{ font-size: .58rem !important; }
  #favTrainsWidget .fav-aff-body{ gap: 3px !important; }
  #favTrainsWidget .fav-aff-stops{ gap: 2px !important; }
  #favTrainsWidget .fav-aff-stop{ padding: 3px 4px !important; gap: 1px !important; }
  #favTrainsWidget .fav-aff-stop-name{ font-size: .64rem !important; }
  #favTrainsWidget .fav-aff-stop-time{ font-size: .58rem !important; }
  #favTrainsWidget .fav-aff-stop-pct{ min-width: 24px !important; font-size: .64rem !important; }
  #favTrainsWidget .fav-aff-stop-schema .affls-rame{ padding-top: 8px !important; gap: 2px !important; }
  #favTrainsWidget .fav-aff-stop-schema .affls-unit{ width: calc(var(--seg-count, 3) * 26px) !important; height: 12px !important; }
  #favTrainsWidget .fav-aff-stop-schema .affls-dot{ width: 5px !important; height: 5px !important; }
  #favTrainsWidget .fav-aff-stop-schema .affls-pct{ top: -10px !important; font-size: 6px !important; }
  #favTrainsWidget .fav-aff-empty{ padding: 5px 6px !important; font-size: .62rem !important; }
  body.page-favoris #favTrainsWidget{ margin: 4px auto 6px auto !important; }
  body.page-favoris #favTrainsWidget .fav-title{
    margin-bottom: 3px !important;
    padding: 3px 8px !important;
    font-size: .76rem !important;
  }
  body{ padding-bottom: calc(var(--bottom-bar-height, 54px) + 8px) !important; }
  .bottom-nav{ padding:2px calc(env(safe-area-inset-right, 0px) + 8px) 0 calc(env(safe-area-inset-left, 0px) + 8px) !important; }
  .bottom-nav__items{ gap:2px !important; }
  .bottom-nav__items{
    gap:1px !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  }
  .bottom-nav__item{ min-height:44px; padding:3px 2px 1px !important; gap:1px !important; }
  .bottom-nav__icon-img{ width:28px !important; height:28px !important; }
  .bottom-nav__label{ font-size:0.56rem !important; line-height:1.02 !important; }
  .traffic-pill,
  .home-fav-pill,
  .live-wall-badge,
  .wx-title,
  .home-stats-item .title,
  .live-wall-meta,
  .live-wall-inline-meta{ font-size: clamp(.68rem, .18vw + .66rem, .76rem) !important; }
  .home-card p,
  .home-card .subtle,
  .home-fav-meta,
  .ber-context,
  .live-wall-item,
  .live-wall-empty,
  .live-wall-cta,
  .home-stats-item .meta,
  .wx-mini,
  .wx-badge,
  .live-wall-form input,
  .live-wall-form button,
  .home-card .home-action{ font-size: clamp(.82rem, .22vw + .78rem, .9rem) !important; }

  .home-fav-row{
    gap: 7px !important;
    padding: 7px 8px !important;
  }
  .home-fav-train{
    font-size: clamp(.74rem, .18vw + .7rem, .82rem) !important;
    letter-spacing: .02em !important;
  }
  .home-fav-meta{
    font-size: clamp(.66rem, .14vw + .64rem, .74rem) !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.25 !important;
  }
  .home-fav-badge,
  .home-fav-row .fav-state-badge,
  .home-fav-pill{
    font-size: clamp(.58rem, .12vw + .56rem, .66rem) !important;
    padding: 4px 7px !important;
    letter-spacing: .03em !important;
  }
}

@media (prefers-reduced-motion: reduce){
  .home-card,
  .traffic-split-row,
  .wx-station,
  .home-fav-row,
  .home-stats-item,
  .ber-context,
  .ber-metric,
  .live-wall-item,
  .live-wall-form input,
  .live-wall-form button,
  .home-card .home-action,
  .bottom-nav__item,
  .bottom-nav__icon,
  .bottom-nav__icon-img,
  [data-home-animated]{
    transition:none !important;
    animation:none !important;
  }
}

/* ===== Source historique : home-desktop-symmetry-v2 ===== */
@media (min-width: 1025px){
  #home.home-section > .home-dashboard{
    display:grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "welcome welcome"
      "favorites traffic"
      "comments weather"
      "comments punct" !important;
    align-items: stretch !important;
    gap: 14px !important;
  }
  #homeWelcomeLine{
    grid-area: welcome !important;
    justify-self: center !important;
    width: fit-content !important;
    max-width: min(760px, 92vw) !important;
    margin: 0 auto 2px !important;
    text-align: center !important;
  }
  .home-card[aria-label="Mes Bétaillères favorites"]{ grid-area: favorites !important; min-height: 210px !important; }
  .home-card[aria-label="Info trafic"]{ grid-area: traffic !important; min-height: 210px !important; }
  .home-card[aria-label="Mur de commentaires"]{ grid-area: comments !important; min-height: 250px !important; }
  .home-card[aria-label="Météo sur votre ligne"]{ grid-area: weather !important; min-height: 170px !important; }
  .home-punct-card{ grid-area: punct !important; min-height: 130px !important; }
  .home-card[aria-label="Mes Bétaillères favorites"] .home-fav-meta{
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    line-height: 1.2 !important;
  }
}

/* ===== Source historique : home-mobile-schema-force ===== */
@media (max-width: 700px){
  .home-dashboard{
    display:grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
    grid-template-areas:
      "welcome welcome"
      "favorites favorites"
      "traffic weather"
      "traffic punct"
      "comments comments" !important;
    column-gap: 10px !important;
    row-gap: 10px !important;
    align-items: start !important;
  }
  #home.home-section > .home-dashboard > *{
    margin: 0 !important;
  }
  #homeWelcomeLine{
    grid-area: welcome !important;
  }
  .home-card[aria-label="Mes Bétaillères favorites"]{
    grid-area: favorites !important;
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    width: 100% !important;
    max-width: 100% !important;
    justify-self: stretch !important;
    margin: 0 !important;
  }
  .home-card[aria-label="Info trafic"]{
    grid-area: traffic !important;
    grid-column: 1 !important;
    grid-row: 3 / 5 !important;
    align-self: stretch !important;
  }
  .home-card[aria-label="Météo sur votre ligne"]{
    grid-area: weather !important;
    grid-column: 2 !important;
    grid-row: 3 !important;
    align-self: stretch !important;
    min-height: 78px !important;
    padding-top: 7px !important;
    padding-bottom: 4px !important;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-now{
    font-size: .82rem !important;
    line-height: .92 !important;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-now .wx-temp{
    font-size: .84rem !important;
    line-height: .9 !important;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-now .wx-icon{
    font-size: 1.10rem !important;
    line-height: .75 !important;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-stations{
    row-gap: 2px !important;
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-row{
    gap: 3px !important;
  }
  .home-card[aria-label="Météo sur votre ligne"] .wx-title{
    font-size: clamp(.68rem, 2.55vw, .78rem) !important;
    letter-spacing: -0.015em !important;
    line-height: 1 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    width: 100% !important;
    margin: 0 !important;
  }
  .home-punct-card{
    grid-area: punct !important;
    grid-column: 2 !important;
    grid-row: 4 !important;
    align-self: stretch !important;
    min-height: 78px !important;
    height: 100% !important;
    padding-top: 7px !important;
    padding-bottom: 4px !important;
  }
  .home-punct-card h2{
    margin-bottom: 4px !important;
  }
  #homePunctualityChartHost.home-punct-chart-host{
    min-height: 56px !important;
  }
  .home-punct-chart-wrap{
    width: 58px !important;
    height: 58px !important;
  }
  .live-wall-card--home,
  .home-card[aria-label="Mur de commentaires"]{
    grid-area: comments !important;
    grid-column: 1 / -1 !important;
    grid-row: 5 !important;
    width: 100% !important;
    max-width: 100% !important;
    justify-self: stretch !important;
    align-self: start !important;
    margin: 0 !important;
    padding-bottom: 4px !important;
  }
  .home-card[aria-label="Mur de commentaires"] .live-wall-feed--home{
    max-height: 96px !important;
    margin-bottom: 2px !important;
  }
  .home-card[aria-label="Mur de commentaires"] .live-wall-form{
    margin: 0 !important;
    gap: 5px !important;
  }
  .home-card[aria-label="Mur de commentaires"] .lb-community-actions{
    margin: 0 !important;
    gap: 5px !important;
  }
  .home-card[aria-label="Mur de commentaires"] .live-wall-form + .lb-community-actions{
    margin-top: 2px !important;
  }
  .home-card[aria-label="Mur de commentaires"] .lb-community-status{
    margin-top: 0 !important;
    line-height: 1.08 !important;
  }
  .home-card[aria-label="Mur de commentaires"] .live-wall-form input,
  .home-card[aria-label="Mur de commentaires"] .live-wall-form button{
    height: 30px !important;
    min-height: 30px !important;
  }
  .home-card[aria-label="Mes Bétaillères favorites"]{
    padding-top: 9px !important;
    padding-bottom: 8px !important;
  }
  .home-card[aria-label="Mes Bétaillères favorites"] h2{
    margin-bottom: 5px !important;
  }
  .home-fav-preview{
    gap: 5px !important;
    margin-top: 4px !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  #homeFavSlot.home-fav-preview{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }
  #homeFavSlot .home-fav-row{
    padding: 7px 8px !important;
    border-radius: 12px !important;
    gap: 4px !important;
    display: flex !important;
    flex-direction: column !important;
    min-width: 0 !important;
  }
  #homeFavSlot .home-fav-head{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    grid-template-areas: "train badge" !important;
    align-items:center !important;
    column-gap:6px !important;
    row-gap:0 !important;
    min-width:0 !important;
  }
  #homeFavSlot .home-fav-trainline{
    grid-area: train !important;
    display:flex !important;
    align-items:center !important;
    gap:5px !important;
    min-width:0 !important;
  }
  #homeFavSlot .home-fav-train{
    display:inline-flex !important;
    align-items:baseline !important;
    gap:3px !important;
    font-size: .76rem !important;
    font-weight: 900 !important;
    letter-spacing: .03em !important;
    white-space: nowrap !important;
    min-width: 0 !important;
    flex: 0 0 auto !important;
  }
  #homeFavSlot .home-fav-train-no{
    font-size: .80rem !important;
    font-weight: 900 !important;
    letter-spacing: .04em !important;
    white-space: nowrap !important;
    flex: 0 0 auto !important;
  }
  #homeFavSlot .home-fav-train-compo{
    font-size: .62rem !important;
    font-weight: 800 !important;
    opacity: .86 !important;
    letter-spacing: .03em !important;
    white-space: nowrap !important;
  }
  #homeFavSlot .home-fav-route{
    font-size:.68rem !important;
    color:#d6efff !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height:1.12 !important;
  }
  #homeFavSlot .home-fav-time{
    font-size:.68rem !important;
    font-weight:800 !important;
    color:#ffffff !important;
    letter-spacing:.02em !important;
    line-height:1.1 !important;
    font-variant-numeric: tabular-nums !important;
    display:flex !important;
    align-items:flex-start !important;
    flex-wrap:wrap !important;
    gap:4px !important;
    min-width:0 !important;
    white-space:normal !important;
    overflow:hidden !important;
  }
  #homeFavSlot .home-fav-time .home-fav-time-part{
    display:inline-flex !important;
    flex-direction:row !important;
    align-items:baseline !important;
    gap:4px !important;
    line-height:1.02 !important;
    min-width:0 !important;
  }
  #homeFavSlot .home-fav-time .home-fav-time-planned{
    color:#ffffff !important;
    white-space:nowrap !important;
  }
  #homeFavSlot .home-fav-time .home-fav-time-planned.is-strike{
    text-decoration: line-through !important;
    opacity:.62 !important;
  }
  #homeFavSlot .home-fav-time .home-fav-time-live{
    color:#ff9a3c !important;
    font-weight:900 !important;
    margin-left:0px !important;
    white-space:nowrap !important;
  }
  #homeFavSlot .home-fav-row .fav-state-live{
    border-color: rgba(34,197,94,.55) !important;
    background: rgba(34,197,94,.14) !important;
    color:#86efac !important;
  }
  #homeFavSlot .home-fav-time .home-fav-time-sep{
    margin:0 2px !important;
    color:#ffffff !important;
    opacity:.8 !important;
    white-space:nowrap !important;
  }
  #homeFavSlot .home-fav-badge,
  #homeFavSlot .home-fav-row .fav-state-badge,
  #homeFavSlot .home-fav-pill{
	grid-area: badge !important;
    align-self:center !important;
    justify-self:end !important;
    margin-right: 2px !important;
    font-size: .52rem !important;
    padding: 2px 6px !important;
    white-space: nowrap !important;
    flex: 0 0 auto !important;
  }
  #homeFavSlot .home-fav-trainline{
    padding-right: 6px !important;
  }
  .home-card[forwarding="ber"]{
    display: none !important;
  }
}


#favTrainsWidget .fav-card-head{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
}
#favTrainsWidget .fav-train-block{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:10px !important;
  width:100% !important;
}
#favTrainsWidget .fav-train{
  font-size:1.04rem !important;
  font-weight:900 !important;
  line-height:1.06 !important;
  letter-spacing:.03em !important;
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
#favTrainsWidget .fav-train-badge{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:6px !important;
  flex-wrap:nowrap !important;
  white-space:nowrap !important;
  width:auto !important;
  max-width:none !important;
}
#favTrainsWidget .fav-train-badge .fav-type-wrap{
  display:inline-flex !important;
  margin-left:0 !important;
  gap:6px !important;
}
#favTrainsWidget .fav-train-badge .fav-state-badge,
#favTrainsWidget .fav-train-badge .fav-type-badge,
#favTrainsWidget .fav-train-badge .fav-type-compo{
  margin:0 !important;
  font-size:.64rem !important;
  padding:3px 8px !important;
}
#favTrainsWidget .fav-meta{ margin-top:10px !important; }
#favTrainsWidget .fav-primary-route{
  font-size:1rem !important;
  font-weight:900 !important;
  line-height:1.16 !important;
}
#favTrainsWidget .fav-primary-times{
  margin-top:5px !important;
  font-size:1rem !important;
  font-weight:900 !important;
  line-height:1.08 !important;
  font-variant-numeric:tabular-nums !important;
}
#favTrainsWidget .fav-cause-inline{
  margin:6px 0 8px !important;
  padding:4px 8px !important;
  border-radius:9px !important;
  font-size:.76rem !important;
  font-weight:700 !important;
  opacity:.9 !important;
}
#favTrainsWidget .fav-aff{
  margin-top:6px !important;
}
#favTrainsWidget .fav-aff .fav-aff-summary{
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:1px !important;
  min-height:0 !important;
}
#favTrainsWidget .fav-aff .fav-aff-title{
  font-size:.78rem !important;
  font-weight:800 !important;
  white-space:nowrap !important;
}
#favTrainsWidget .fav-aff .fav-aff-meta{
  display:none !important;
}
#favTrainsWidget .fav-aff .fav-aff-schema{
  justify-content:flex-start !important;
  align-items:center !important;
  min-height:18px !important;
  margin:-2px 0 0 0 !important;
  width:100% !important;
  max-width:100% !important;
  overflow:visible !important;
  padding-left:4px !important;

}
#favTrainsWidget .fav-aff .fav-aff-schema .affls-train{
  transform:none !important;
  max-width:100% !important;
}
#favTrainsWidget .fav-aff .fav-aff-schema--compact .affls-rame{
  justify-content:flex-end !important;
  width:100% !important;
  max-width:100% !important;
  overflow:visible !important;
  padding-top:8px !important;
  padding-left:0 !important;
  padding-right:4px !important;
}
#favTrainsWidget .fav-aff .fav-aff-schema--compact .affls-unit{
  width:calc(var(--seg-count, 3) * 32px) !important;
  height:16px !important;
  border-color: rgba(120, 240, 255, .72) !important;
  background: rgba(4, 14, 24, .86) !important;
  box-shadow: 0 0 0 1px rgba(0,240,255,.16), inset 0 0 10px rgba(0,0,0,.22) !important;
}
#favTrainsWidget .fav-aff .fav-aff-schema--compact .affls-unit > span{
  border-right-color: rgba(120, 240, 255, .52) !important;
}
#favTrainsWidget .fav-aff .fav-aff-schema--compact .affls-dot{
  width:7px !important;
  height:7px !important;
}
#favTrainsWidget .fav-aff .fav-aff-schema--compact .aff-arrow{
  margin-left:4px !important;
  font-size:9px !important;
  opacity:.95 !important;
}
#favTrainsWidget .fav-aff .fav-aff-top{
  margin:0 !important;
}
#favTrainsWidget .fav-aff .fav-aff-toggleline{
  display:none !important;
}
#favTrainsWidget .fav-aff summary{
  padding:5px 7px !important;
}
#favTrainsWidget .fav-box,
#favTrainsWidget .fav-details{
  border-width:1px !important;
  box-shadow:none !important;
}
#favTrainsWidget .fav-aff .fav-box-body{
  padding:5px 8px !important;
}
#favTrainsWidget .fav-aff .fav-aff-body{
  gap:4px !important;
}
#favTrainsWidget .fav-train-badge .fav-type-compo{
  padding:0 !important;
  border:none !important;
  background:transparent !important;
  border-radius:0 !important;
  box-shadow:none !important;
}
#favTrainsWidget .fav-details[open] > .fav-details-body{
  max-height:none !important;
  overflow:visible !important;
  padding-top:4px !important;
  padding-bottom:4px !important;
}
@media (max-width: 520px){
  #favTrainsWidget .fav-details[open] > .fav-details-body{
    padding-bottom:6px !important;
  }
  /* Le tiroir Conseil #BER ne doit pas hériter du grand padding universel des <details> mobiles */
  #favTrainsWidget details[open] > :not(summary){
    max-height: none !important;
    overflow: visible !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}


.top-bar{
  border-bottom: 1px solid rgba(0, 240, 255, 0.62) !important;
  box-shadow:
    0 10px 28px rgba(0, 0, 0, 0.34),
    0 0 18px rgba(0, 240, 255, 0.20),
    0 1px 0 rgba(130, 250, 255, 0.55) inset,
    0 -1px 0 rgba(0,0,0,.15) inset !important;
}
.top-bar::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:-1px;
  height:3px;
  background: linear-gradient(90deg,
    rgba(0,240,255,0) 0%,
    rgba(70,245,255,.88) 12%,
    rgba(170,255,255,.98) 50%,
    rgba(70,245,255,.88) 88%,
    rgba(0,240,255,0) 100%);
  box-shadow:
    0 0 10px rgba(0,240,255,.75),
    0 0 22px rgba(0,240,255,.42),
    0 0 34px rgba(80,250,255,.24);
  pointer-events:none;
}

.bottom-nav{
  border-top: 1px solid rgba(120, 245, 255, 0.58) !important;
  box-shadow:
    0 -10px 24px rgba(0,0,0,.40),
    0 0 18px rgba(0,240,255,.12),
    0 -1px 0 rgba(160,250,255,.38) inset !important;
}
.bottom-nav::before{
  content:"";
  position:absolute;
  top:-2px;
  left:0;
  right:0;
  height:4px;
  background: linear-gradient(90deg,
    rgba(0,240,255,0) 0%,
    rgba(60,240,255,.86) 10%,
    rgba(180,255,255,1) 50%,
    rgba(60,240,255,.86) 90%,
    rgba(0,240,255,0) 100%);
  box-shadow:
    0 0 12px rgba(0,240,255,.82),
    0 0 26px rgba(0,240,255,.48),
    0 0 40px rgba(80,250,255,.22);
  pointer-events:none;
}

.home-card[aria-label="Info trafic"] .traffic-split,
.home-card[aria-label="Info trafic"] .traffic-split-row{
  width:100%;
  box-sizing:border-box;
}
.home-card[aria-label="Info trafic"] .traffic-split-row{
  min-width:0;
  overflow:visible;
}
.home-card[aria-label="Info trafic"] .traffic-split-line{
  min-width:0;
  white-space:normal;
}
.home-card[aria-label="Info trafic"] .traffic-pill{
  flex:0 0 auto;
  min-width:88px;
  justify-content:center;
}

@media (max-width: 700px){
  .home-card[aria-label="Info trafic"]{
    padding-left: 10px !important;
    padding-right: 10px !important;
  }
  .home-card[aria-label="Info trafic"] .traffic-split{
    gap: 7px !important;
  }
  .home-card[aria-label="Info trafic"] .traffic-split-row{
    grid-template-columns: minmax(92px, 1fr) auto !important;
    gap: 8px !important;
    padding: 8px 10px !important;
    border-radius: 13px !important;
  }
  .home-card[aria-label="Info trafic"] .traffic-split-line{
    font-size: .82rem !important;
    line-height: 1.12 !important;
  }
  .home-card[aria-label="Info trafic"] .traffic-pill{
    max-width: none !important;
    min-width: 92px !important;
    font-size: .57rem !important;
    padding: 4px 8px !important;
  }
}


/* ===== Premium trafic rows: relief + couleur par état ===== */
.home-card[aria-label="Info trafic"] .traffic-split-row{
  position: relative;
  isolation: isolate;
  border: 1px solid rgba(90, 235, 255, .16) !important;
  border-radius: 15px !important;
  background:
    linear-gradient(180deg, rgba(255,255,255,.028), rgba(255,255,255,0) 34%),
    linear-gradient(135deg, rgba(7,22,34,.92), rgba(4,12,22,.82)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 0 18px rgba(0,240,255,.035),
    0 10px 22px rgba(0,0,0,.16),
    0 0 0 1px rgba(0,240,255,.035) !important;
  overflow: hidden;
  backdrop-filter: blur(4px);
}

.home-card[aria-label="Info trafic"] .traffic-split-row::before{
  content:"";
  position:absolute;
  left: 12px;
  right: 12px;
  top: 0;
  height: 1px;
  background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,.22), rgba(255,255,255,0));
  opacity: .7;
  pointer-events:none;
}

.home-card[aria-label="Info trafic"] .traffic-split-row::after{
  content:"";
  position:absolute;
  inset: 1px;
  border-radius: inherit;
  background: radial-gradient(circle at 18% 50%, rgba(255,255,255,.055), transparent 34%);
  opacity: .75;
  pointer-events:none;
}

/* Couleur pilotée par l'état réel du trafic */
.home-card[aria-label="Info trafic"] .traffic-split-row:has(.traffic-pill--green){
  border-color: rgba(66, 214, 138, .34) !important;
  background:
    linear-gradient(180deg, rgba(110,255,185,.055), rgba(110,255,185,0) 34%),
    linear-gradient(135deg, rgba(7,26,24,.95), rgba(5,16,17,.86)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 0 20px rgba(55, 255, 165, .05),
    0 10px 22px rgba(0,0,0,.16),
    0 0 16px rgba(55, 255, 165, .08) !important;
}
.home-card[aria-label="Info trafic"] .traffic-split-row:has(.traffic-pill--yellow){
  border-color: rgba(255, 214, 102, .34) !important;
  background:
    linear-gradient(180deg, rgba(255,214,102,.05), rgba(255,214,102,0) 34%),
    linear-gradient(135deg, rgba(30,22,8,.95), rgba(17,13,8,.86)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 0 20px rgba(255, 214, 102, .045),
    0 10px 22px rgba(0,0,0,.16),
    0 0 16px rgba(255, 214, 102, .08) !important;
}
.home-card[aria-label="Info trafic"] .traffic-split-row:has(.traffic-pill--orange){
  border-color: rgba(255, 155, 77, .34) !important;
  background:
    linear-gradient(180deg, rgba(255,155,77,.055), rgba(255,155,77,0) 34%),
    linear-gradient(135deg, rgba(34,18,8,.95), rgba(19,11,8,.86)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 0 20px rgba(255, 145, 77, .05),
    0 10px 22px rgba(0,0,0,.16),
    0 0 16px rgba(255, 145, 77, .09) !important;
}
.home-card[aria-label="Info trafic"] .traffic-split-row:has(.traffic-pill--red){
  border-color: rgba(255, 97, 97, .34) !important;
  background:
    linear-gradient(180deg, rgba(255,97,97,.06), rgba(255,97,97,0) 34%),
    linear-gradient(135deg, rgba(34,10,14,.95), rgba(19,8,12,.86)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 0 20px rgba(255, 77, 109, .055),
    0 10px 22px rgba(0,0,0,.16),
    0 0 16px rgba(255, 77, 109, .10) !important;
}
.home-card[aria-label="Info trafic"] .traffic-split-row:has(.traffic-pill--loading){
  border-color: rgba(98, 235, 255, .28) !important;
}

.home-card[aria-label="Info trafic"] .traffic-split-line{
  text-shadow: 0 0 10px rgba(255,255,255,.06);
}

.home-card[aria-label="Info trafic"] .traffic-pill{
  position: relative;
  overflow: hidden;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.14),
    inset 0 -8px 14px rgba(0,0,0,.14),
    0 8px 16px rgba(0,0,0,.14) !important;
  text-shadow: 0 0 8px rgba(255,255,255,.08);
}
.home-card[aria-label="Info trafic"] .traffic-pill::before{
  content:"";
  position:absolute;
  left: 10px;
  right: 10px;
  top: 1px;
  height: 42%;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,255,255,.18), rgba(255,255,255,0));
  opacity: .58;
  pointer-events:none;
}
.home-card[aria-label="Info trafic"] .traffic-pill::after{
  content:"";
  position:absolute;
  inset: auto 16px 3px 16px;
  height: 28%;
  border-radius: 999px;
  background: radial-gradient(circle, rgba(255,255,255,.08), rgba(255,255,255,0) 72%);
  opacity: .7;
  pointer-events:none;
}

.home-card[aria-label="Info trafic"] .traffic-pill--green{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.14),
    inset 0 -8px 14px rgba(0,0,0,.14),
    0 0 0 1px rgba(36,194,90,.08),
    0 10px 18px rgba(34,197,94,.12) !important;
}
.home-card[aria-label="Info trafic"] .traffic-pill--yellow{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.14),
    inset 0 -8px 14px rgba(0,0,0,.14),
    0 0 0 1px rgba(255,209,102,.08),
    0 10px 18px rgba(255,209,102,.11) !important;
}
.home-card[aria-label="Info trafic"] .traffic-pill--orange{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.14),
    inset 0 -8px 14px rgba(0,0,0,.14),
    0 0 0 1px rgba(255,138,26,.08),
    0 10px 18px rgba(255,138,26,.12) !important;
}
.home-card[aria-label="Info trafic"] .traffic-pill--red{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.14),
    inset 0 -8px 14px rgba(0,0,0,.14),
    0 0 0 1px rgba(255,77,109,.08),
    0 10px 18px rgba(255,77,109,.14) !important;
}

@media (max-width: 700px){
  .home-card[aria-label="Info trafic"] .traffic-split-row{
    border-radius: 14px !important;
    padding: 9px 10px !important;
  }
  .home-card[aria-label="Info trafic"] .traffic-pill{
    min-width: 96px !important;
  }
  .home-card[aria-label="Info trafic"] .traffic-pill::before{
    left: 8px;
    right: 8px;
  }
}

/* ===== Source historique : home-comments-head-tight-fix ===== */
/* Fix final: réduire l'espace entre "Commentaires" et les boutons Signaler/LIVE */
.home-card[aria-label="Mur de commentaires"].live-wall-card--home{
  gap: 0 !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-head{
  margin-bottom: -2px !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-head + .lb-community-actions{
  margin-top: -2px !important;
}
@media (max-width: 700px){
  .home-card[aria-label="Mur de commentaires"].live-wall-card--home{
    gap: 0 !important;
  }
  .home-card[aria-label="Mur de commentaires"] .live-wall-head{
    margin-bottom: -2px !important;
  }
  .home-card[aria-label="Mur de commentaires"] .live-wall-head + .lb-community-actions{
    margin-top: -2px !important;
  }
}

/* ===== Source historique : home-parent-cards-soft-fill ===== */
/* Home: faire ressortir les conteneurs parents avec un fond léger (sans contours ajoutés) */
#home .home-card[aria-label="Mes Bétaillères favorites"],
#home .home-card[aria-label="Info trafic"],
#home .home-card[aria-label="Tableau rapide"],
#home .home-card[aria-label="Ponctualité sur 7 jours"],
#home .home-card[aria-label="Mur de commentaires"]{
  background-color: rgba(18, 88, 126, .18) !important;
  background-image: linear-gradient(180deg, rgba(130, 235, 255, .08), rgba(130, 235, 255, 0) 45%) !important;
}

/* Harmonisation typo des titres des conteneurs parents */
#home .home-card[aria-label="Mes Bétaillères favorites"] h2,
#home .home-card[aria-label="Info trafic"] h2,
#home .home-card[aria-label="Tableau rapide"] h2,
#home .home-card[aria-label="Ponctualité sur 7 jours"] h2,
#home .home-card[aria-label="Mur de commentaires"] .live-wall-title{
  font-size: clamp(.83rem, .21vw + .77rem, .94rem) !important;
  line-height: 1.15 !important;
  font-weight: 800 !important;
  letter-spacing: .02em !important;
  color: #35d9ff !important;
  text-shadow: 0 0 10px rgba(0, 240, 255, .24) !important;
  margin: 0 0 10px !important;
  text-align: center !important;
}

#home .home-card[aria-label="Mes Bétaillères favorites"] :is(p, .home-fav-meta, .home-fav-train),
#home .home-card[aria-label="Info trafic"] :is(.traffic-split-line),
#home .home-card[aria-label="Tableau rapide"] :is(.home-quick-presets__btn),
#home .home-card[aria-label="Ponctualité sur 7 jours"] :is(.home-punct-label, .home-punct-value),
#home .home-card[aria-label="Mur de commentaires"] :is(.live-wall-item-text, .live-wall-empty, .live-wall-cta){
  font-size: clamp(.69rem, .14vw + .66rem, .77rem) !important;
  line-height: 1.3 !important;
  font-weight: 700 !important;
}

#home .home-card[aria-label="Tableau rapide"] h2{
  white-space: nowrap !important;
}

/* Alignement visuel harmonisé des titres */
#home .home-card[aria-label="Mur de commentaires"] .live-wall-head{
  position: relative !important;
  justify-content: center !important;
  align-items: center !important;
  margin-bottom: 8px !important;
}
#home .home-card[aria-label="Mur de commentaires"] .live-wall-title{
  margin: 0 auto 10px !important;
}
#home .home-card[aria-label="Mur de commentaires"] .live-wall-badge{
  position: absolute !important;
  right: 0 !important;
  top: 50% !important;
  transform: translateY(-58%) !important;
}

/* ===== Source historique : home-dashboard-targeted-refresh ===== */
/* Cible accueil uniquement: remplace météo par tableau rapide, sans casser le reste */
.home-card[aria-label="Tableau rapide"]{
  grid-area: weather !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:flex-start !important;
  align-items:stretch !important;
  text-align:left !important;
  min-height: 132px;
}
.home-card[aria-label="Tableau rapide"] h2{
  margin: 0 0 8px !important;
  line-height: 1.15 !important;
}
.home-card[aria-label="Tableau rapide"] .home-quick-presets{
  margin-top: 0 !important;
  width: 100% !important;
  gap: 6px !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
.home-card[aria-label="Tableau rapide"] .home-quick-presets__btn{
  border: 1px solid rgba(32,231,255,.55) !important;
  border-radius: 999px !important;
  min-height: 26px !important;
  padding: 5px 12px !important;
  background: linear-gradient(180deg, rgba(7,43,68,.92), rgba(4,22,38,.92)) !important;
  color: #c9f8ff !important;
  font-size: .70rem !important;
  font-weight: 800 !important;
  letter-spacing: .01em !important;
  box-shadow: inset 0 0 8px rgba(0,220,255,.16), 0 0 8px rgba(0,220,255,.08) !important;
}
.home-card[aria-label="Tableau rapide"] .home-quick-presets__btn:hover,
.home-card[aria-label="Tableau rapide"] .home-quick-presets__btn:focus-visible{
  background: linear-gradient(180deg, rgba(0,218,255,.8), rgba(0,162,219,.72)) !important;
  color: #04344b !important;
  border-color: rgba(114,245,255,.95) !important;
  box-shadow: 0 0 10px rgba(0,240,255,.25) !important;
}
.home-card[aria-label="Info trafic"] .home-quick-presets{ display:none !important; }

/* Commentaires: meilleure lisibilité sans augmenter la hauteur du bloc */
.home-card[aria-label="Mur de commentaires"] .live-wall-feed--home{
  max-height: 96px !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-item-text{
  font-size: .80rem !important;
  line-height: 1.24 !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-form input{
  background: rgba(2,18,30,.86) !important;
  border:1px solid rgba(126,247,255,.34) !important;
  color:#ecfbff !important;
}
.home-card[aria-label="Mur de commentaires"] .live-wall-form .auth-button{
  background: linear-gradient(135deg, rgba(0,198,255,.30), rgba(0,240,255,.18)) !important;
  border-color: rgba(126,247,255,.5) !important;
  color:#f3feff !important;
  font-weight:800 !important;
}
.home-card[aria-label="Mur de commentaires"] .lb-community-actions{
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap:6px !important;
}

@media (max-width: 700px){
  .home-card[aria-label="Tableau rapide"]{
    min-height: 96px !important;
    padding: 10px 10px 8px !important;
  }
  .home-card[aria-label="Tableau rapide"] h2{
    font-size: .9rem !important;
    margin-bottom: 6px !important;
  }
  .home-card[aria-label="Tableau rapide"] .home-quick-presets{
    width:100% !important;
    gap:4px !important;
  }
}

/* ===== Source historique : selection-modal-compact-mobile-fix ===== */
/* Compactage ciblé de la modale "Sélection des bétaillères" sur mobile */
@media (max-width: 720px){
  #selectionModal .selection-modal__panel{
    padding: 12px 10px 10px !important;
    gap: 6px !important;
    border-radius: 14px !important;
  }
  #selectionModal .selection-modal__header h2{
    font-size: 1.05rem !important;
    margin-bottom: 2px !important;
  }
  #selectionModal .selection-modal__close{
    z-index: 4 !important;
    pointer-events: auto !important;
  }
  #selectionModal .selection-modal__subtitle{
    margin-top: 2px !important;
    font-size: .78rem !important;
    line-height: 1.15 !important;
  }
  #selectionModal .selection-modal__body{
    padding-right: 0 !important;
    padding-bottom: 6px !important;
  }
  #selectionModal .selection-date{
    margin-bottom: 8px !important;
    gap: 6px !important;
  }
  #selectionModal .selection-date__controls{
    gap: 6px !important;
  }
  #selectionModal .selection-date .quick-button-group{
    margin-top: 2px !important;
  }
  #selectionModal .selection-date .quick-btn{
    padding: 5px 8px !important;
    min-height: 28px !important;
    font-size: .78rem !important;
  }
  #selectionModal #selectionBlock.chips-panel{
    margin-top: 2px !important;
  }
  #selectionModal #selectionChips{
    margin-top: 4px !important;
    padding: 4px 6px !important;
    gap: 6px !important;
  }
  #selectionModal #selectionChips .chip-tag{
    min-height: 24px !important;
    padding: 3px 6px !important;
    border-radius: 8px !important;
  }
  #selectionModal #selectionChips .chip-tag .t-num{
    font-size: .8rem !important;
  }
  #selectionModal #selectionBlock .selection-manual-card{
    margin: 5px 0 6px !important;
    padding: 7px 8px !important;
    border-radius: 10px !important;
  }
  #selectionModal #selectionBlock .selection-manual-card__title{
    margin-bottom: 4px !important;
    font-size: .76rem !important;
    letter-spacing: .04em !important;
  }
  #selectionModal #selectionBlock .chips-manual{
    gap: 5px !important;
    margin-top: 2px !important;
  }
  #selectionModal #selectionBlock .chips-manual input{
    padding: 6px 8px !important;
    font-size: .82rem !important;
  }
  #selectionModal #selectionBlock .btn.btn-compact{
    padding: 5px 8px !important;
    font-size: .82rem !important;
  }
  #selectionModal #selectionFooter{
    margin-top: 6px !important;
    padding-top: 6px !important;
  }
  #selectionModal #loadTrains{
    padding: 9px 12px !important;
    font-size: .92rem !important;
  }
}

/* ===== Source historique : lb-stabilisation-ui ===== */
/* ===== Fiche train : composition prévue + croix cohérente ===== */
#trainDetailClose.tron-close-button{
  flex:0 0 auto;
  margin:0 !important;
}
#trainDetailClose.tron-close-button::before,
#trainDetailClose.tron-close-button::after{
  pointer-events:none;
}
.train-detail-compo-wrap{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.train-detail-compo-wrap .lb-compo-inline{
  display:inline-flex;
  align-items:center;
  gap:3px;
}
.train-detail-compo-wrap .lb-compo-icon{
  height:22px;
  width:auto;
  display:block;
}
.train-detail-compo-wrap .lb-compo-icon--us5{
  height:34px;
}
.train-detail-compo-label{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:3px 9px;
  border-radius:999px;
  border:1px solid rgba(126,247,255,.24);
  background:rgba(0,16,28,.42);
  color:#dffbff;
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.04em;
  white-space:nowrap;
}
.train-detail-compo-label.is-us5{
  border-color:rgba(255,210,74,.42);
  background:rgba(255,210,74,.10);
  color:#ffe79b;
  text-shadow:0 0 7px rgba(255,210,74,.35);
}
.train-detail-compo-label.is-us,
.train-detail-compo-label.is-um,
.train-detail-compo-label.is-um3{
  border-color:rgba(0,240,255,.28);
}


/* ===== Correctif safe : voie sous l'heure retardée (taille normale, une seule fois) ===== */
#trainInfo .delay-stack .delay-voie{
  display:block;
  line-height:1;
  margin-top:2px;
}
#trainInfo .delay-stack .delay-voie .voie-badge{
  margin-left:0 !important;
  line-height:1.1;
}
@media (max-width: 768px){
  #trainInfo .delay-stack{ gap:0 !important; line-height:.98 !important; }
  #trainInfo .delay-stack .delay-strike,
  #trainInfo .delay-stack .delayed,
  #trainInfo .delay-stack .new-start{ line-height:.98 !important; }
}

/* ===== Légende du tableau dynamique — bouton discret dans l'en-tête Gare ===== */
#trainInfo th.gare-head{
  position:sticky;
  left:0;
}
#trainInfo th.gare-head > span{
  display:inline-flex;
  align-items:center;
  vertical-align:middle;
}
.table-legend-btn{
  appearance:none !important;
  -webkit-appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:18px !important; height:18px !important;
  min-width:18px !important; min-height:18px !important; max-width:18px !important;
  margin:0 0 0 6px !important; padding:0 !important;
  border-radius:999px !important;
  border:1px solid rgba(126,247,255,.55) !important;
  background:linear-gradient(180deg, rgba(8,35,54,.94), rgba(4,18,30,.96)) !important;
  color:#9ffcff !important;
  font-family:'Orbitron', sans-serif !important; font-size:.70rem !important; font-weight:900 !important; line-height:1 !important;
  cursor:pointer !important;
  box-shadow:inset 0 0 0 1px rgba(0,240,255,.10), 0 0 8px rgba(0,240,255,.18) !important;
  transform:none !important;
}
.table-legend-btn:hover,.table-legend-btn:focus-visible{
  border-color:rgba(126,247,255,.9) !important; color:#ffffff !important;
  box-shadow:inset 0 0 0 1px rgba(0,240,255,.18), 0 0 12px rgba(0,240,255,.34) !important; outline:none !important;
}
.table-legend-modal-content{ display:grid; gap:10px; }
.table-legend-section{ border:1px solid rgba(0,234,255,.42); background:rgba(0,20,40,.34); border-radius:13px; padding:10px 11px; }
.table-legend-section h4{ margin:0 0 8px; color:#00eaff; font-size:.84rem; letter-spacing:.04em; }
.legend-row{ display:grid; grid-template-columns:74px minmax(0,1fr); align-items:center; gap:9px; padding:5px 0; border-top:1px solid rgba(126,247,255,.10); color:#d4e6f4; font-size:.76rem; line-height:1.25; }
.legend-row:first-of-type{ border-top:none; padding-top:0; }
.legend-sample,.legend-icon,.legend-cell{ display:inline-flex; align-items:center; justify-content:center; min-height:20px; border-radius:8px; background:rgba(0,12,22,.58); border:1px solid rgba(126,247,255,.18); padding:2px 6px; font-weight:900; white-space:nowrap; }
.legend-sample--us{ color:#bf00ff; text-shadow:0 0 5px #bf00ff, 0 0 10px #8000ff; }
.legend-sample--us5{ color:#ffd24a; text-shadow:0 0 5px #ffd24a, 0 0 12px rgba(255,210,74,.65); }
.legend-sample--um{ color:#00f0ff; text-shadow:0 0 5px rgba(0,240,255,.75); }
.legend-sample--um3{ color:#00ffa6; text-shadow:0 0 5px #00ffa6, 0 0 10px rgba(0,255,166,.5); }
.legend-sample--unknown{ color:#fff; }

.legend-row--wide{ grid-template-columns:minmax(0,1fr) !important; gap:4px !important; }
.legend-affline{
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:nowrap;
  min-width:0;
  padding:4px 6px;
  border-radius:999px;
  border:1px solid rgba(126,247,255,.18);
  background:rgba(0,12,22,.58);
  overflow-x:auto;
  white-space:nowrap;
  scrollbar-width:none;
}
.legend-affline::-webkit-scrollbar{ display:none; }
.legend-affline i{
  width:12px;
  height:12px;
  min-width:12px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.7);
  box-shadow:0 0 8px rgba(0,0,0,.35);
  display:inline-block;
}
.legend-affline span{ font-size:.64rem; color:#d4e6f4; font-weight:800; }
.legend-icon--delay{ color:#ff8a1a; text-shadow:0 0 7px rgba(255,138,26,.65); }
.table-legend-container{ width:min(560px, calc(100vw - 40px)) !important; }
@media (max-width:600px){ .table-legend-container{ width:min(340px, calc(100vw - 24px)) !important; } .legend-row{ grid-template-columns:64px minmax(0,1fr); gap:7px; font-size:.68rem; } .table-legend-section{ padding:9px 10px; } }
/* ===== La Bétaillère — stabilisation UI centralisée =====
   Logique JS, API, LIVE et Signaler inchangées.
*/
#homeLiveWallCount,
.live-wall-head-actions .live-wall-badge,
.voice-count{ display:none !important; }
.live-wall-head-actions{ display:flex !important; align-items:center !important; justify-content:flex-end !important; gap:6px !important; flex:0 0 auto !important; }
#faqBtn.faq-btn{ appearance:none !important; -webkit-appearance:none !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; gap:5px !important; margin:0 !important; min-width:0 !important; width:auto !important; min-height:24px !important; height:24px !important; padding:3px 9px 3px 8px !important; border-radius:999px !important; border:1px solid rgba(126,247,255,.58) !important; background:linear-gradient(180deg, rgba(8,35,54,.96), rgba(4,18,30,.98)) !important; color:#dffcff !important; font-family:'Orbitron', sans-serif !important; font-size:.64rem !important; font-weight:900 !important; letter-spacing:.04em !important; line-height:1 !important; white-space:nowrap !important; cursor:pointer !important; opacity:.96 !important; box-shadow:inset 0 0 0 1px rgba(0,240,255,.10), 0 0 10px rgba(0,240,255,.16) !important; }
#faqBtn.faq-btn::before{ content:'?' !important; display:inline-flex !important; align-items:center !important; justify-content:center !important; width:15px !important; height:15px !important; border-radius:50% !important; border:1px solid rgba(126,247,255,.50) !important; color:#8ef8ff !important; font-size:.62rem !important; font-weight:900 !important; box-shadow:0 0 8px rgba(0,240,255,.20) inset !important; }
#faqModal.faq-modal{ position:fixed !important; inset:0 !important; width:100vw !important; height:100dvh !important; max-width:none !important; max-height:none !important; margin:0 !important; border:none !important; background:rgba(4,12,20,.78) !important; padding:20px !important; box-sizing:border-box !important; overflow:hidden !important; z-index:3600 !important; }
#faqModal.faq-modal[open]{ display:flex !important; align-items:center !important; justify-content:center !important; }
#faqModal.faq-modal::backdrop{ background:rgba(2,8,14,.72) !important; }
#faqModal .faq-container{ width:min(760px, calc(100vw - 40px)) !important; max-width:100% !important; max-height:calc(100dvh - var(--top-bar-height, 72px) - var(--bottom-bar-height, 84px) - 28px) !important; margin:0 auto !important; padding:14px 14px 12px !important; color:white !important; overflow-y:auto !important; overflow-x:hidden !important; box-sizing:border-box !important; border-radius:18px !important; border:1px solid rgba(0,240,255,.44) !important; background:radial-gradient(circle at top, rgba(12,34,54,.88), rgba(6,14,24,.96)) !important; box-shadow:0 18px 40px rgba(0,0,0,.45), 0 0 30px rgba(0,220,255,.18), inset 0 0 18px rgba(0,220,255,.20) !important; backdrop-filter:blur(6px) !important; }
@media (max-width:600px){ #faqModal.faq-modal{ padding:12px !important; } #faqModal .faq-container{ width:min(340px, calc(100vw - 24px)) !important; max-height:calc(100dvh - var(--top-bar-height, 64px) - var(--bottom-bar-height, 84px) - 24px) !important; border-radius:16px !important; padding:12px 12px 10px !important; } }
#favTrainsWidget .fav-aff-stop-schema .affls-unit{ border-color:rgba(120,240,255,.72) !important; background:rgba(4,14,24,.86) !important; box-shadow:0 0 0 1px rgba(0,240,255,.16), inset 0 0 10px rgba(0,0,0,.22) !important; }
#favTrainsWidget .fav-aff-stop-schema .affls-unit > span{ border-right-color:rgba(120,240,255,.52) !important; }
#favTrainsWidget .fav-aff-stop-schema .affls-unit > span:last-child{ border-right:none !important; }
#favTrainsWidget .fav-aff-stop-schema .affls-unk .affls-unit{ border-color:rgba(120,240,255,.52) !important; background:rgba(4,14,24,.64) !important; }
#favTrainsWidget .fav-aff-stop-schema .aff-arrow{ color:rgba(126,247,255,.78) !important; text-shadow:0 0 6px rgba(0,240,255,.35) !important; }


/* Favoris : cartes premium distinctes, sans bandeau cyan ajouté */
#favTrainsWidget{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 8px auto 14px !important;
}
#favTrainsWidget .fav-head{
  margin: 0 0 10px !important;
  padding: 0 !important;
  border: 0 !important;
}
#favTrainsWidget .fav-title{
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  width: max-content !important;
  max-width: 100% !important;
  margin: 0 0 4px 2px !important;
  padding: 6px 12px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(126,247,255,.36) !important;
  background: linear-gradient(180deg, rgba(10,42,58,.88), rgba(5,20,34,.92)) !important;
  color: #8ef8ff !important;
  font-size: .94rem !important;
  font-weight: 900 !important;
  letter-spacing: .02em !important;
  text-shadow: 0 0 10px rgba(0,240,255,.42) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.045), 0 0 14px rgba(0,240,255,.12) !important;
}
#favTrainsWidget .fav-grid{
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 13px !important;
}
#favTrainsWidget .fav-card{
  position: relative !important;
  overflow: hidden !important;
  isolation: isolate !important;
  padding: 13px 13px 12px !important;
  border-radius: 18px !important;
  border: 1px solid rgba(126,247,255,.30) !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(126,247,255,.12), transparent 32%),
    linear-gradient(180deg, rgba(11,32,51,.96), rgba(4,13,26,.98)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.075),
    inset 0 0 22px rgba(0,240,255,.055),
    0 12px 26px rgba(0,0,0,.36) !important;
  outline: 1px solid rgba(0,0,0,.34) !important;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease !important;
}
#favTrainsWidget .fav-card::before,
#favTrainsWidget .fav-card::after{
  content: none !important;
  display: none !important;
}
#favTrainsWidget .fav-card:hover,
#favTrainsWidget .fav-card:focus-within{
  transform: translateY(-1px) !important;
  border-color: rgba(126,247,255,.48) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.09),
    inset 0 0 26px rgba(0,240,255,.075),
    0 15px 32px rgba(0,0,0,.42),
    0 0 16px rgba(0,240,255,.10) !important;
}
#favTrainsWidget .fav-card:nth-child(2n){
  background:
    radial-gradient(circle at 0% 0%, rgba(110,185,255,.11), transparent 32%),
    linear-gradient(180deg, rgba(12,29,49,.96), rgba(4,13,27,.98)) !important;
  border-color: rgba(111,190,255,.28) !important;
}
#favTrainsWidget .fav-card.is-delayed{
  border-color: rgba(255,168,74,.56) !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(255,168,74,.16), transparent 34%),
    linear-gradient(180deg, rgba(45,30,17,.96), rgba(14,13,20,.98)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    0 12px 26px rgba(0,0,0,.36),
    0 0 14px rgba(255,138,26,.12) !important;
}
#favTrainsWidget .fav-card.is-canceled{
  border-color: rgba(255,77,109,.62) !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(255,77,109,.18), transparent 34%),
    linear-gradient(180deg, rgba(48,15,28,.96), rgba(15,11,19,.98)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.07),
    0 12px 26px rgba(0,0,0,.38),
    0 0 16px rgba(255,77,109,.14) !important;
}
#favTrainsWidget .fav-card-head{
  align-items: flex-start !important;
  gap: 10px !important;
}
#favTrainsWidget .fav-train{
  color: #f2fdff !important;
  font-size: 1.03rem !important;
  line-height: 1.08 !important;
  letter-spacing: .05em !important;
  text-shadow: 0 0 8px rgba(126,247,255,.22) !important;
}
#favTrainsWidget .fav-state-badge,
#favTrainsWidget .fav-tag{
  border-radius: 999px !important;
  box-shadow: inset 0 0 8px rgba(255,255,255,.05), 0 0 10px rgba(0,0,0,.16) !important;
}
#favTrainsWidget .fav-state-after{
  border-color: rgba(148,163,184,.42) !important;
  background: linear-gradient(180deg, rgba(148,163,184,.20), rgba(55,65,81,.28)) !important;
  color: #e5eef7 !important;
}
#favTrainsWidget .fav-state-before{
  border-color: rgba(96,165,250,.50) !important;
  background: linear-gradient(180deg, rgba(59,130,246,.24), rgba(20,42,78,.34)) !important;
  color: #bfdbfe !important;
}
#favTrainsWidget .fav-primary-route,
#favTrainsWidget .fav-line{
  margin-top: 9px !important;
  color: #edfaff !important;
  font-size: 1rem !important;
  line-height: 1.18 !important;
  letter-spacing: .005em !important;
}
#favTrainsWidget .fav-primary-times,
#favTrainsWidget .fav-times{
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin-top: 7px !important;
  color: #8af7ff !important;
  font-size: 1.02rem !important;
  line-height: 1.05 !important;
  text-shadow: 0 0 8px rgba(0,240,255,.34) !important;
}
#favTrainsWidget .fav-primary-times::after,
#favTrainsWidget .fav-times::after{
  content: none !important;
  display: none !important;
}
#favTrainsWidget .fav-meta{
  margin-top: 8px !important;
  padding-top: 7px !important;
  border-top: 1px solid rgba(126,247,255,.13) !important;
  color: rgba(225,246,255,.88) !important;
  font-size: .86rem !important;
  line-height: 1.18 !important;
}
#favTrainsWidget .fav-aff,
#favTrainsWidget .fav-details,
#favTrainsWidget .fav-box{
  margin-top: 10px !important;
  border-radius: 13px !important;
  border: 1px solid rgba(126,247,255,.20) !important;
  background: rgba(0,8,18,.42) !important;
  box-shadow: inset 0 0 12px rgba(0,240,255,.045) !important;
}
#favTrainsWidget .fav-aff-summary,
#favTrainsWidget .fav-details-summary{
  padding: 8px 10px !important;
}
#favTrainsWidget .fav-aff-title{
  color: #d8fcff !important;
  font-size: .82rem !important;
}
#favTrainsWidget .fav-aff-meta{
  color: rgba(225,246,255,.82) !important;
  font-size: .78rem !important;
}
#favTrainsWidget .fav-aff-schema{
  padding: 2px 0 !important;
}
#favTrainsWidget .fav-aff-stop{
  border-color: rgba(126,247,255,.18) !important;
  background: rgba(0,10,22,.36) !important;
}
@media (max-width: 600px){
  #favTrainsWidget{
    margin: 8px auto 12px !important;
  }
  #favTrainsWidget .fav-grid{
    gap: 12px !important;
  }
  #favTrainsWidget .fav-card{
    padding: 12px 11px !important;
    border-radius: 17px !important;
  }
  #favTrainsWidget .fav-title{
    font-size: .90rem !important;
    margin-left: 0 !important;
  }
  #favTrainsWidget .fav-train{
    font-size: .98rem !important;
  }
  #favTrainsWidget .fav-primary-route,
  #favTrainsWidget .fav-line{
    font-size: .95rem !important;
  }
  #favTrainsWidget .fav-primary-times,
  #favTrainsWidget .fav-times{
    font-size: .98rem !important;
  }
}


/* ===== Favoris: compact premium mobile (densite restauree, sans patch visuel agressif) ===== */
#favTrainsWidget{
  margin: 6px auto 10px !important;
}
#favTrainsWidget .fav-head{
  margin-bottom: 7px !important;
}
#favTrainsWidget .fav-title{
  padding: 4px 10px !important;
  font-size: .82rem !important;
  line-height: 1 !important;
}
#favTrainsWidget .fav-grid{
  gap: 8px !important;
}
#favTrainsWidget .fav-card{
  padding: 8px 9px 7px !important;
  border-radius: 14px !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.065),
    inset 0 0 16px rgba(0,240,255,.045),
    0 8px 18px rgba(0,0,0,.30) !important;
}
#favTrainsWidget .fav-card:hover,
#favTrainsWidget .fav-card:focus-within{
  transform: none !important;
}
#favTrainsWidget .fav-card-head{
  gap: 7px !important;
  align-items: center !important;
}
#favTrainsWidget .fav-train-block{
  gap: 7px !important;
}
#favTrainsWidget .fav-train{
  font-size: .98rem !important;
  line-height: 1.02 !important;
  letter-spacing: .04em !important;
}
#favTrainsWidget .fav-train-badge{
  gap: 4px !important;
}
#favTrainsWidget .fav-train-badge .fav-state-badge,
#favTrainsWidget .fav-state-badge,
#favTrainsWidget .fav-tag{
  padding: 3px 7px !important;
  font-size: .62rem !important;
  line-height: 1 !important;
}
#favTrainsWidget .fav-primary-route,
#favTrainsWidget .fav-line{
  margin-top: 6px !important;
  font-size: .92rem !important;
  line-height: 1.12 !important;
}
#favTrainsWidget .fav-primary-times,
#favTrainsWidget .fav-times{
  margin-top: 4px !important;
  font-size: .96rem !important;
  line-height: 1.02 !important;
  gap: 4px !important;
}
#favTrainsWidget .fav-meta{
  margin-top: 5px !important;
  padding-top: 5px !important;
  font-size: .76rem !important;
  line-height: 1.1 !important;
}
#favTrainsWidget .fav-cause-inline,
#favTrainsWidget .fav-cause{
  margin: 4px 0 5px !important;
  padding: 3px 7px !important;
  font-size: .70rem !important;
  line-height: 1.15 !important;
}
#favTrainsWidget .fav-next-train{
  margin: 5px 0 1px !important;
  font-size: .74rem !important;
  line-height: 1.1 !important;
}
#favTrainsWidget .fav-aff,
#favTrainsWidget .fav-details,
#favTrainsWidget .fav-box{
  margin-top: 6px !important;
  border-radius: 11px !important;
}
#favTrainsWidget .fav-aff summary,
#favTrainsWidget .fav-aff-summary,
#favTrainsWidget .fav-details-summary{
  padding: 5px 8px !important;
  min-height: 34px !important;
}
#favTrainsWidget .fav-aff .fav-aff-summary{
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 8px !important;
}
#favTrainsWidget .fav-aff .fav-aff-title{
  font-size: .74rem !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}
#favTrainsWidget .fav-aff .fav-aff-meta{
  display: none !important;
}
#favTrainsWidget .fav-aff .fav-aff-schema{
  margin: 0 !important;
  padding: 0 !important;
  min-height: 16px !important;
  justify-content: flex-end !important;
  align-items: center !important;
}
#favTrainsWidget .fav-aff .fav-aff-schema--compact .affls-rame{
  padding: 0 !important;
  justify-content: flex-end !important;
}
#favTrainsWidget .fav-aff .fav-aff-schema--compact .affls-unit,
#favTrainsWidget .fav-aff-stop-schema .affls-unit{
  width: calc(var(--seg-count, 3) * 26px) !important;
  height: 12px !important;
}
#favTrainsWidget .fav-aff .fav-aff-schema--compact .affls-dot{
  width: 6px !important;
  height: 6px !important;
}
#favTrainsWidget .fav-aff .fav-aff-schema--compact .aff-arrow,
#favTrainsWidget .fav-aff-stop-schema .aff-arrow{
  margin-left: 3px !important;
  font-size: 8px !important;
}
#favTrainsWidget .fav-aff .fav-box-body,
#favTrainsWidget .fav-aff .fav-aff-body,
#favTrainsWidget .fav-details-body{
  padding: 5px 8px !important;
  font-size: .72rem !important;
  line-height: 1.18 !important;
}
#favTrainsWidget .fav-details-summary{
  font-size: .72rem !important;
}
#favTrainsWidget .fav-stats{
  margin-top: 2px !important;
  font-size: .70rem !important;
}
#favTrainsWidget .fav-box-title{
  margin-bottom: 2px !important;
  font-size: .74rem !important;
}
#favTrainsWidget .fav-box-body{
  font-size: .78rem !important;
  line-height: 1.18 !important;
}
@media (max-width: 600px){
  #favTrainsWidget{
    margin: 5px auto 8px !important;
  }
  #favTrainsWidget .fav-grid{
    gap: 7px !important;
  }
  #favTrainsWidget .fav-card{
    padding: 8px 8px 7px !important;
    border-radius: 13px !important;
  }
  #favTrainsWidget .fav-title{
    font-size: .78rem !important;
    padding: 4px 9px !important;
  }
  #favTrainsWidget .fav-train{
    font-size: .94rem !important;
  }
  #favTrainsWidget .fav-primary-route,
  #favTrainsWidget .fav-line{
    font-size: .88rem !important;
  }
  #favTrainsWidget .fav-primary-times,
  #favTrainsWidget .fav-times{
    font-size: .92rem !important;
  }
  #favTrainsWidget .fav-aff .fav-aff-summary{
    gap: 6px !important;
  }
  #favTrainsWidget .fav-aff .fav-aff-title{
    font-size: .70rem !important;
  }
  #favTrainsWidget .fav-aff .fav-aff-schema--compact .affls-unit,
  #favTrainsWidget .fav-aff-stop-schema .affls-unit{
    width: calc(var(--seg-count, 3) * 24px) !important;
    height: 11px !important;
  }
}


/* ===== Correctif modal tableau + fiche train (safe) ===== */
.faq-modal.is-open,
.table-legend-modal.is-open{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  position:fixed !important;
  inset:0 !important;
  z-index:5000 !important;
}
.table-legend-modal[open],
.faq-modal[open]{ z-index:5000 !important; }
.table-legend-container,
.faq-container{ position:relative !important; z-index:5001 !important; }
#tableLegendBtn{ position:relative !important; z-index:20 !important; pointer-events:auto !important; }
body.page-search #trainDetailPanel,
body.page-stats #trainDetailPanel{
  position:fixed !important;
  top:calc(var(--top-bar-height, 64px) + 12px) !important;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  width:min(640px, calc(100vw - 24px)) !important;
  max-height:calc(100dvh - var(--top-bar-height, 64px) - var(--bottom-bar-height, 84px) - 28px) !important;
  overflow:auto !important;
  margin:0 !important;
  z-index:4900 !important;
  border-radius:20px !important;
  border:1px solid rgba(0,240,255,.42) !important;
  background:radial-gradient(circle at top, rgba(12,34,54,.94), rgba(6,14,24,.98)) !important;
  box-shadow:0 22px 52px rgba(0,0,0,.58), 0 0 34px rgba(0,220,255,.22), inset 0 0 18px rgba(0,220,255,.16) !important;
  backdrop-filter:blur(8px) !important;
  overscroll-behavior:contain !important;
}
body.page-search #trainDetailPanel[hidden],
body.page-stats #trainDetailPanel[hidden]{ display:none !important; }
body.lb-train-detail-open{
  overflow:hidden;
  overscroll-behavior:none;
}
body.lb-train-detail-open::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:4890;
  background:rgba(2,8,14,.64);
  backdrop-filter:blur(3px);
  pointer-events:none;
}
#trainDetailClose.tron-close-button{
  position:relative !important;
  z-index:2 !important;
  width:24px !important;
  height:24px !important;
  min-width:24px !important;
  min-height:24px !important;
  max-width:24px !important;
  padding:0 !important;
  background:linear-gradient(135deg, rgba(4,22,34,.94), rgba(0,34,52,.78)) !important;
  color:transparent !important;
}

/* ===== Source historique : lb-fiche-train-clean-affluence-legend-fix ===== */
#trainDetailStops .train-detail-stop--route-only{ justify-content:flex-start !important; }
#trainDetailStops .train-detail-stop--route-only .right,
#trainDetailStops .train-detail-stop--route-only .fav-aff-stop-schema,
#trainDetailStops .train-detail-stop--route-only .affls-rame{ display:none !important; }
#tableLegendModal,#tableLegendModal.faq-modal,#tableLegendModal.table-legend-modal{ z-index:6000 !important; }
#tableLegendModal[open],#tableLegendModal.is-open{ display:flex !important; align-items:center !important; justify-content:center !important; position:fixed !important; inset:0 !important; }
#tableLegendModal .table-legend-container,#tableLegendModal .faq-container{ z-index:6001 !important; position:relative !important; }
#tableLegendBtn,.table-legend-btn{ pointer-events:auto !important; touch-action:manipulation !important; position:relative !important; z-index:30 !important; }

/* ===== Source historique : lb-fix-fav-badges-right-visible-final ===== */
/* Ne touche pas à l'API/cache/quota : affichage uniquement */
@media (max-width: 700px){
  #homeFavSlot .home-fav-row{
    display: block !important;
    position: relative !important;
    overflow: hidden !important;
    padding: 7px 8px !important;
  }

  #homeFavSlot .home-fav-head{
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) max-content !important;
    align-items: center !important;
    width: 100% !important;
    min-width: 0 !important;
    column-gap: 4px !important;
  }

  #homeFavSlot .home-fav-trainline{
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
    padding-right: 0 !important;
  }

  #homeFavSlot .home-fav-badge{
    display: flex !important;
    justify-content: flex-end !important;
    justify-self: end !important;
    align-self: center !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 -1px 0 0 !important; /* colle visuellement au bord droit interne */
    padding: 0 !important;
    position: static !important;
    transform: none !important;
  }

  #homeFavSlot .home-fav-badge .fav-state-badge,
  #homeFavSlot .home-fav-row .fav-state-badge{
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    align-items: center !important;
    justify-content: center !important;
    white-space: nowrap !important;
    width: auto !important;
    max-width: 58px !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    font-size: .50rem !important;
    line-height: 1 !important;
    padding: 3px 6px !important;
    letter-spacing: .015em !important;
  }

  #homeFavSlot .home-fav-train,
  #homeFavSlot .home-fav-train-no{
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  #homeFavSlot .home-fav-route,
  #homeFavSlot .home-fav-time{
    max-width: 100% !important;
    padding-right: 0 !important;
  }
}

/* LIVE : cause SNCF en version compacte, jamais hors carte */
.lb-live-card{ overflow: hidden !important; }
.lb-live-sncf-cause{
  box-sizing: border-box !important;
  max-width: 100% !important;
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}
.lb-live-sncf-cause.lb-live-sncf-cause--full{
  display:block !important;
  clear:both !important;
  margin:5px 0 0 !important;
}
@media (max-width: 600px){
  .lb-live-sncf-cause{
    font-size:.56rem !important;
    line-height:1.08 !important;
    padding:4px 6px !important;
  }
}

/* ===== Source historique : lb-fix-fav-6digits-no-overlap-final ===== */
/* Affichage uniquement : ne touche pas aux appels API / cache / quota */
@media (max-width: 700px){
  #homeFavSlot.home-fav-preview{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }

  #homeFavSlot .home-fav-row{
    box-sizing: border-box !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
    min-width: 0 !important;
    overflow: hidden !important;
    padding: 7px 7px !important;
  }

  #homeFavSlot .home-fav-head{
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 3px !important;
    width: 100% !important;
    min-width: 0 !important;
  }

  #homeFavSlot .home-fav-trainline{
    flex: 1 1 auto !important;
    min-width: 0 !important;
    max-width: calc(100% - 49px) !important; /* place réservée au badge */
    overflow: visible !important;
    padding-right: 0 !important;
  }

  #homeFavSlot .home-fav-train,
  #homeFavSlot .home-fav-train-no{
    display: inline-flex !important;
    align-items: baseline !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
  }

  #homeFavSlot .home-fav-train{
    font-size: clamp(.66rem, 2.38vw, .73rem) !important;
    line-height: 1.02 !important;
    letter-spacing: 0 !important;
    gap: 2px !important;
  }

  #homeFavSlot .home-fav-train-no{
    font-size: inherit !important;
    font-weight: 900 !important;
    letter-spacing: 0 !important;
  }

  #homeFavSlot .home-fav-train-compo{
    font-size: .54rem !important;
    letter-spacing: 0 !important;
    opacity: .82 !important;
  }

  #homeFavSlot .home-fav-badge{
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    justify-self: end !important;
    margin-left: auto !important;
    margin-right: 0 !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 49px !important;
    padding: 0 !important;
    position: static !important;
    transform: none !important;
  }

  #homeFavSlot .home-fav-badge .fav-state-badge,
  #homeFavSlot .home-fav-row .fav-state-badge{
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    visibility: visible !important;
    opacity: 1 !important;
    white-space: nowrap !important;
    width: auto !important;
    max-width: 49px !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    font-size: clamp(.39rem, 1.42vw, .47rem) !important;
    line-height: 1 !important;
    padding: 2px 4px !important;
    letter-spacing: 0 !important;
  }

  #homeFavSlot .home-fav-route{
    margin-top: 2px !important;
    font-size: clamp(.63rem, 2.08vw, .70rem) !important;
    line-height: 1.08 !important;
  }

  #homeFavSlot .home-fav-time{
    font-size: clamp(.63rem, 2.08vw, .70rem) !important;
    line-height: 1.08 !important;
  }
}

/* Très petits écrans / navigateurs intégrés : on réduit un cran, mais on ne tronque pas le numéro */
@media (max-width: 380px){
  #homeFavSlot .home-fav-row{ padding-left:6px !important; padding-right:6px !important; }
  #homeFavSlot .home-fav-train{ font-size: .64rem !important; }
  #homeFavSlot .home-fav-badge{ max-width:46px !important; }
  #homeFavSlot .home-fav-trainline{ max-width: calc(100% - 46px) !important; }
  #homeFavSlot .home-fav-badge .fav-state-badge,
  #homeFavSlot .home-fav-row .fav-state-badge{
    max-width:46px !important;
    font-size:.38rem !important;
    padding:2px 3px !important;
  }
}

/* ===== Source historique : lb-fix-home-fav-badges-plus20 ===== */
@media (max-width: 700px){
  #homeFavSlot .home-fav-trainline{
    max-width: calc(100% - 59px) !important;
  }
  #homeFavSlot .home-fav-badge{
    max-width: 59px !important;
  }
  #homeFavSlot .home-fav-badge .fav-state-badge,
  #homeFavSlot .home-fav-row .fav-state-badge{
    max-width: 59px !important;
    font-size: clamp(.47rem, 1.70vw, .56rem) !important;
    padding: 3px 5px !important;
    line-height: 1.05 !important;
  }
}
@media (max-width: 380px){
  #homeFavSlot .home-fav-trainline{
    max-width: calc(100% - 55px) !important;
  }
  #homeFavSlot .home-fav-badge{
    max-width: 55px !important;
  }
  #homeFavSlot .home-fav-badge .fav-state-badge,
  #homeFavSlot .home-fav-row .fav-state-badge{
    max-width: 55px !important;
    font-size: .46rem !important;
    padding: 3px 4px !important;
  }
}

/* ===== Source historique : monde-betaillere-v3-style ===== */
/* Bouton stratégique : intégré dans la top-bar si possible */
#monde-betaillere-btn{
  appearance:none;
  -webkit-appearance:none;
  border:1px solid rgba(232,190,92,.78);
  background:
    linear-gradient(180deg, rgba(95,62,24,.96), rgba(47,28,12,.96));
  color:#ffe9a8;
  border-radius:999px;
  min-width:0 !important;
  width:auto !important;
  max-width:none !important;
  height:38px;
  padding:7px 12px;
  margin:0 !important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  font-family:'Orbitron', sans-serif;
  font-size:.70rem;
  font-weight:900;
  line-height:1;
  letter-spacing:.03em;
  white-space:nowrap;
  cursor:pointer;
  box-shadow:
    inset 0 0 0 1px rgba(255,245,196,.12),
    0 0 12px rgba(255,198,74,.22),
    0 5px 13px rgba(0,0,0,.25);
  text-shadow:0 0 7px rgba(255,210,88,.35);
  transition:transform .16s ease, box-shadow .16s ease, border-color .16s ease, filter .16s ease;
}
#monde-betaillere-btn:hover,
#monde-betaillere-btn:focus-visible{
  transform:translateY(-1px);
  border-color:rgba(177,255,90,.78);
  box-shadow:
    inset 0 0 0 1px rgba(255,245,196,.18),
    0 0 16px rgba(177,255,90,.25),
    0 6px 16px rgba(0,0,0,.30);
  outline:none;
}
body.monde-betaillere #monde-betaillere-btn{
  background:
    linear-gradient(180deg, rgba(90,118,30,.96), rgba(55,38,13,.96));
  color:#f3ffc2;
  border-color:rgba(177,255,90,.78);
}
body.monde-betaillere #monde-betaillere-btn .mb-label-on{ display:inline; }
body.monde-betaillere #monde-betaillere-btn .mb-label-off{ display:none; }
#monde-betaillere-btn .mb-label-on{ display:none; }

/* Fallback si la top-bar n'existe pas */
#monde-betaillere-btn.mb-floating{
  position:fixed;
  top:calc(var(--top-bar-height, 72px) + 10px);
  right:12px;
  z-index:3400;
}

/* Ambiance globale : ferme sombre + néon discret */
body.monde-betaillere{
  --farm-bg:#07120b;
  --farm-bg2:#10200d;
  --farm-panel:#102611;
  --farm-panel2:#1b3214;
  --farm-child:#0c1b10;
  --farm-wood:#5a3518;
  --farm-wood2:#7a4b20;
  --farm-hay:#f2c65a;
  --farm-hay2:#b8f05d;
  --farm-cream:#fff0c1;
  --farm-border:rgba(193, 255, 92, .32);
  --farm-border-wood:rgba(255, 196, 83, .38);
  color:#f3f6d8;
  background:#061007 !important;
}
body.monde-betaillere::before{
  background:
    radial-gradient(circle at 12% 12%, rgba(177,255,90,.13), transparent 28%),
    radial-gradient(circle at 90% 8%, rgba(255,201,78,.12), transparent 24%),
    linear-gradient(180deg, rgba(6,16,8,.88), rgba(10,22,7,.92)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.025) 0 1px, transparent 1px 14px),
    url("pattern/Fond site paysage.png") !important;
  background-size:cover, cover, cover, auto, cover !important;
  background-position:center !important;
  opacity:1 !important;
  filter:saturate(.9) hue-rotate(42deg) brightness(.72) contrast(1.10);
}
body.monde-betaillere::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:998;
  background:
    linear-gradient(90deg, rgba(80,52,24,.12), transparent 22%, transparent 78%, rgba(80,52,24,.12)),
    radial-gradient(circle at 50% 100%, rgba(177,255,90,.08), transparent 35%);
  mix-blend-mode:screen;
}

/* Top et bottom bars : bois/vert au lieu du pur Tron */
body.monde-betaillere .top-bar,
body.monde-betaillere .bottom-nav{
  background:
    linear-gradient(180deg, rgba(101,63,27,.22), rgba(14,31,12,.08)),
    linear-gradient(135deg, rgba(8,23,13,.98), rgba(24,41,14,.97)) !important;
  border-color:rgba(232,190,92,.42) !important;
  box-shadow:0 8px 24px rgba(177,255,90,.10), 0 0 18px rgba(232,190,92,.10) !important;
}
body.monde-betaillere .top-bar__title,
body.monde-betaillere .top-bar__route-pill,
body.monde-betaillere .bottom-nav__label,
body.monde-betaillere .bottom-nav__item{
  color:#f0ffc1 !important;
  text-shadow:0 0 8px rgba(177,255,90,.35) !important;
}
body.monde-betaillere .top-bar__logo-icon,
body.monde-betaillere .top-bar__logo-text,
body.monde-betaillere .bottom-nav__icon,
body.monde-betaillere .bottom-nav__icon-img{
  filter:drop-shadow(0 0 9px rgba(177,255,90,.45)) sepia(.25) saturate(1.08) !important;
}

/* Parents : grosses cartes / sections */
body.monde-betaillere .home-card,
body.monde-betaillere .command-console,
body.monde-betaillere .console-section,
body.monde-betaillere .media-section,
body.monde-betaillere #disruptionsSummary,
body.monde-betaillere .train-detail-panel,
body.monde-betaillere .lb-community-panel,
body.monde-betaillere .selection-modal__panel,
body.monde-betaillere .selection-flyout-panel,
body.monde-betaillere .table-modal-content{
  background:
    linear-gradient(180deg, rgba(29,55,18,.88), rgba(9,24,13,.90)),
    repeating-linear-gradient(90deg, rgba(255,255,255,.025) 0 1px, transparent 1px 9px) !important;
  border-color:var(--farm-border) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,225,145,.06),
    inset 0 0 22px rgba(177,255,90,.07),
    0 10px 26px rgba(0,0,0,.34),
    0 0 18px rgba(177,255,90,.09) !important;
}

/* Enfants : sous-cartes / lignes */
body.monde-betaillere .home-fav-row,
body.monde-betaillere .traffic-split-row,
body.monde-betaillere .wx-station,
body.monde-betaillere .ber-metric,
body.monde-betaillere .home-stats-item,
body.monde-betaillere .live-wall-item,
body.monde-betaillere .lb-live-card,
body.monde-betaillere .lb-live-list,
body.monde-betaillere .lb-live-side,
body.monde-betaillere .lb-signal-form,
body.monde-betaillere .train-detail-card,
body.monde-betaillere .train-detail-route,
body.monde-betaillere .train-comments,
body.monde-betaillere .chips-panel,
body.monde-betaillere .selection-inline,
body.monde-betaillere .station-stack,
body.monde-betaillere .compact-presets,
body.monde-betaillere .search-card,
body.monde-betaillere .disruption-box,
body.monde-betaillere .alerte-box{
  background:
    linear-gradient(180deg, rgba(18,35,14,.88), rgba(8,19,11,.86)) !important;
  border-color:rgba(232,190,92,.25) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,232,165,.05),
    0 0 12px rgba(177,255,90,.07) !important;
}

/* Bandeaux/titres style pancarte */
body.monde-betaillere h1,
body.monde-betaillere h2,
body.monde-betaillere h3,
body.monde-betaillere .home-card h2,
body.monde-betaillere .live-wall-title,
body.monde-betaillere .console-header,
body.monde-betaillere .disruption-header,
body.monde-betaillere .selection-modal__header h2,
body.monde-betaillere .lb-community-panel h3,
body.monde-betaillere .proposal-section__title,
body.monde-betaillere .chips-header,
body.monde-betaillere .field-caption,
body.monde-betaillere .compact-fields__title,
body.monde-betaillere .compact-presets__title{
  color:#ffe39a !important;
  text-shadow:
    0 0 8px rgba(255,205,90,.40),
    0 0 15px rgba(177,255,90,.16) !important;
}
body.monde-betaillere .home-card h2::before,
body.monde-betaillere .live-wall-title::before,
body.monde-betaillere .console-header::before{
  content:"🌾 ";
  font-size:.85em;
}

/* Boutons plus fermiers */
body.monde-betaillere button,
body.monde-betaillere .mini-btn,
body.monde-betaillere .btn,
body.monde-betaillere .home-action,
body.monde-betaillere .lb-community-btn,
body.monde-betaillere .lb-signal-submit,
body.monde-betaillere .top-bar__support,
body.monde-betaillere .refresh-btn{
  border-color:rgba(232,190,92,.48) !important;
  background:
    linear-gradient(180deg, rgba(128,86,34,.92), rgba(70,42,16,.92)) !important;
  color:#fff1b6 !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,238,180,.08),
    0 0 12px rgba(255,205,90,.14) !important;
}
body.monde-betaillere .traffic-pill--green,
body.monde-betaillere .lb-live-status--ok,
body.monde-betaillere .home-fav-pill.arrive,
body.monde-betaillere .home-fav-pill.live{
  background:linear-gradient(180deg, rgba(117,220,92,.90), rgba(34,122,54,.86)) !important;
  color:#07230d !important;
  border-color:rgba(177,255,90,.68) !important;
}
body.monde-betaillere .traffic-pill--yellow,
body.monde-betaillere .traffic-pill--orange,
body.monde-betaillere .lb-live-status--delay,
body.monde-betaillere .disruption-box.orange{
  background:linear-gradient(180deg, rgba(255,196,76,.92), rgba(169,93,27,.88)) !important;
  color:#261301 !important;
  border-color:rgba(255,213,99,.70) !important;
}
body.monde-betaillere .traffic-pill--red,
body.monde-betaillere .lb-live-status--cancel,
body.monde-betaillere .disruption-box.red{
  background:linear-gradient(180deg, rgba(155,52,35,.88), rgba(75,18,14,.92)) !important;
  color:#ffe0cf !important;
  border-color:rgba(255,126,94,.62) !important;
}

/* Tableau : garder lisible, mais plus prairie/bois */
body.monde-betaillere table,
body.monde-betaillere #trainInfo table{
  background:#07140c !important;
  border-color:rgba(232,190,92,.32) !important;
  box-shadow:0 0 16px rgba(177,255,90,.10), 0 0 16px rgba(232,190,92,.08) !important;
}
body.monde-betaillere thead th,
body.monde-betaillere #trainInfo table thead th,
body.monde-betaillere #trainInfo table th:first-child,
body.monde-betaillere #trainInfo table td:first-child{
  background:
    linear-gradient(180deg, rgba(66,43,20,.98), rgba(20,45,15,.98)) !important;
  color:#ffe6a3 !important;
  border-color:rgba(232,190,92,.22) !important;
  text-shadow:0 0 7px rgba(255,205,90,.35) !important;
}
body.monde-betaillere tbody tr:nth-child(odd){ background-color:rgba(13,34,16,.78) !important; }
body.monde-betaillere tbody tr:nth-child(even){ background-color:rgba(9,25,14,.82) !important; }

/* Formulaires */
body.monde-betaillere input,
body.monde-betaillere select,
body.monde-betaillere textarea{
  background:rgba(7,20,10,.92) !important;
  color:#fff4ca !important;
  border-color:rgba(232,190,92,.30) !important;
  box-shadow:inset 0 0 10px rgba(177,255,90,.08) !important;
}
body.monde-betaillere input::placeholder,
body.monde-betaillere textarea::placeholder{ color:rgba(255,236,180,.62) !important; }

/* Petites touches décoratives légères */
body.monde-betaillere .home-card,
body.monde-betaillere .command-console,
body.monde-betaillere .lb-community-panel{
  position:relative;
}
body.monde-betaillere .home-card::after,
body.monde-betaillere .command-console::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:
    linear-gradient(135deg, rgba(255,220,110,.06), transparent 35%, rgba(177,255,90,.04));
  opacity:.9;
}

@media (max-width:700px){
  #monde-betaillere-btn{
    height:32px;
    padding:6px 8px;
    font-size:.62rem;
    gap:4px;
  }
  #monde-betaillere-btn .mb-text-long{ display:none; }
  #monde-betaillere-btn.mb-floating{
    top:calc(var(--top-bar-height, 64px) + 6px);
    right:8px;
  }
}

/* ===== Source historique : lb-mode-portal-transition-style ===== */
/* Transition instantanée entre mode normal et mode Bétaillère, sans rechargement */
body.lb-mode-portal-on::selection,
body.lb-mode-portal-off::selection{ background:rgba(255,230,120,.45); }
body.lb-mode-portal-on::after,
body.lb-mode-portal-off::after{
  content:"" !important;
  position:fixed !important;
  inset:-18vmax !important;
  z-index:9000 !important;
  pointer-events:none !important;
  display:block !important;
  opacity:0;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,248,190,.98) 0 6%, rgba(156,255,130,.72) 10%, rgba(255,190,73,.42) 17%, rgba(0,0,0,0) 34%),
    conic-gradient(from 0deg, rgba(255,232,130,0), rgba(255,232,130,.9), rgba(79,255,168,.7), rgba(0,240,255,.55), rgba(255,232,130,0));
  mix-blend-mode:screen;
  animation:lbModePortalFlash .72s ease-out both;
  transform-origin:center;
}
body.lb-mode-portal-off::after{
  background:
    radial-gradient(circle at 50% 50%, rgba(230,255,255,.95) 0 6%, rgba(0,240,255,.70) 12%, rgba(255,255,255,.38) 20%, rgba(0,0,0,0) 36%),
    conic-gradient(from 180deg, rgba(0,240,255,0), rgba(0,240,255,.85), rgba(255,255,255,.6), rgba(255,210,90,.55), rgba(0,240,255,0));
}
@keyframes lbModePortalFlash{
  0%{ opacity:0; transform:scale(.12) rotate(0deg); filter:blur(12px) brightness(1); }
  24%{ opacity:1; transform:scale(.72) rotate(120deg); filter:blur(5px) brightness(1.6); }
  48%{ opacity:.92; transform:scale(1.18) rotate(245deg); filter:blur(1px) brightness(1.35); }
  100%{ opacity:0; transform:scale(1.9) rotate(360deg); filter:blur(16px) brightness(1); }
}
@media (prefers-reduced-motion: reduce){
  body.lb-mode-portal-on::after,
  body.lb-mode-portal-off::after{ animation:none !important; opacity:0 !important; }
}

/* ===== Source historique : monde-betaillere-v4-ferme-strong-style ===== */
/* Bouton flottant déplaçable : ne décale plus la top-bar */
#monde-betaillere-btn,
#monde-betaillere-btn.mb-floating,
body.monde-betaillere #monde-betaillere-btn{
  position:fixed !important;
  left:auto;
  top:auto;
  right:14px;
  bottom:calc(var(--bottom-bar-height, 84px) + 16px);
  z-index:5200 !important;
  width:74px !important;
  height:74px !important;
  min-width:74px !important;
  max-width:74px !important;
  padding:6px !important;
  margin:0 !important;
  border-radius:50% !important;
  border:2px solid rgba(255,211,94,.92) !important;
  background:
    radial-gradient(circle at 36% 26%, rgba(255,244,176,.98), rgba(221,164,45,.96) 42%, rgba(99,57,16,.98) 100%) !important;
  color:#2b1705 !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:1px !important;
  font-size:.56rem !important;
  line-height:.95 !important;
  font-weight:1000 !important;
  letter-spacing:.015em !important;
  text-align:center !important;
  white-space:normal !important;
  box-shadow:
    0 0 0 3px rgba(59,35,10,.88),
    0 0 0 5px rgba(255,211,94,.28),
    0 14px 26px rgba(0,0,0,.45),
    inset 0 3px 10px rgba(255,255,210,.55),
    inset 0 -8px 14px rgba(66,35,9,.42) !important;
  text-shadow:none !important;
  touch-action:none !important;
  user-select:none !important;
  -webkit-user-select:none !important;
  cursor:grab !important;
}
#monde-betaillere-btn:active{ cursor:grabbing !important; }
#monde-betaillere-btn:hover,
#monde-betaillere-btn:focus-visible{
  transform:none !important;
  filter:brightness(1.06) saturate(1.06) !important;
  outline:none !important;
}
body.monde-betaillere #monde-betaillere-btn{
  background:
    radial-gradient(circle at 36% 26%, rgba(255,244,176,.98), rgba(186,221,60,.96) 38%, rgba(57,94,23,.96) 100%) !important;
  border-color:rgba(190,255,87,.95) !important;
}
#monde-betaillere-btn span:first-child{
  font-size:1.35rem !important;
  line-height:1 !important;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.35));
}
#monde-betaillere-btn .mb-label-off,
#monde-betaillere-btn .mb-label-on{
  display:block !important;
  max-width:62px !important;
  color:inherit !important;
}
#monde-betaillere-btn .mb-text-long{ display:none !important; }
#monde-betaillere-btn::after{
  content:'↕';
  position:absolute;
  right:-4px;
  bottom:-3px;
  width:20px;
  height:20px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#2b1a08;
  color:#ffe39a;
  border:1px solid rgba(255,211,94,.78);
  font-size:.74rem;
  box-shadow:0 3px 8px rgba(0,0,0,.38);
}

/* Palette ferme beaucoup plus marquée : on éteint le bleu TRON en mode bétail */
body.monde-betaillere{
  --farm-bg:#050b05;
  --farm-dark:#071207;
  --farm-green:#14270e;
  --farm-green-2:#213b13;
  --farm-green-3:#31561d;
  --farm-wood:#4a2b13;
  --farm-wood-2:#72431c;
  --farm-wood-3:#9a6127;
  --farm-hay:#f0c34f;
  --farm-hay-2:#ffe08a;
  --farm-lime:#b4df4a;
  --farm-cream:#fff1c6;
  --farm-border:rgba(236,191,73,.54);
  --farm-border-green:rgba(166,218,74,.42);
  color:var(--farm-cream) !important;
  background:#050b05 !important;
}
body.monde-betaillere::before{
  background:
    radial-gradient(circle at 18% 2%, rgba(255,196,73,.16), transparent 30%),
    radial-gradient(circle at 86% 7%, rgba(180,223,74,.12), transparent 26%),
    linear-gradient(180deg, rgba(5,10,5,.92), rgba(12,22,7,.95)),
    repeating-linear-gradient(90deg, rgba(255,216,120,.035) 0 2px, transparent 2px 16px),
    url("pattern/Fond site paysage.png") !important;
  filter:saturate(.75) hue-rotate(54deg) brightness(.52) contrast(1.25) !important;
}

/* Header/bottom nav plus bois et prairie */
body.monde-betaillere .top-bar,
body.monde-betaillere .bottom-nav{
  background:
    linear-gradient(180deg, rgba(93,54,21,.58), rgba(18,32,10,.92)),
    repeating-linear-gradient(90deg, rgba(255,230,160,.055) 0 2px, transparent 2px 18px) !important;
  border-color:rgba(236,191,73,.72) !important;
  box-shadow:0 0 0 1px rgba(40,22,8,.75), 0 0 22px rgba(240,195,79,.20) !important;
}
body.monde-betaillere .bottom-nav__item.active,
body.monde-betaillere .bottom-nav__item[aria-current="page"],
body.monde-betaillere .bottom-nav__item.is-active{
  background:linear-gradient(180deg, rgba(69,116,28,.70), rgba(22,52,15,.72)) !important;
  border-radius:12px !important;
  box-shadow:inset 0 0 0 1px rgba(236,191,73,.38), 0 0 13px rgba(180,223,74,.22) !important;
}

/* Parents : planches vert ferme */
body.monde-betaillere .home-card,
body.monde-betaillere .command-console,
body.monde-betaillere .console-section,
body.monde-betaillere .media-section,
body.monde-betaillere #disruptionsSummary,
body.monde-betaillere .train-detail-panel,
body.monde-betaillere .lb-community-panel,
body.monde-betaillere .selection-modal__panel,
body.monde-betaillere .selection-flyout-panel,
body.monde-betaillere .table-modal-content,
body.monde-betaillere .live-wall-card{
  background:
    linear-gradient(180deg, rgba(29,58,17,.96), rgba(9,22,8,.97)),
    repeating-linear-gradient(0deg, rgba(255,230,160,.035) 0 1px, transparent 1px 15px) !important;
  border:1px solid var(--farm-border-green) !important;
  border-radius:18px !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,224,138,.08),
    inset 0 0 28px rgba(0,0,0,.36),
    0 10px 24px rgba(0,0,0,.42),
    0 0 15px rgba(180,223,74,.10) !important;
}

/* Enfants : bois sombre */
body.monde-betaillere .home-fav-row,
body.monde-betaillere .traffic-split-row,
body.monde-betaillere .wx-station,
body.monde-betaillere .ber-metric,
body.monde-betaillere .home-stats-item,
body.monde-betaillere .live-wall-item,
body.monde-betaillere .lb-live-card,
body.monde-betaillere .lb-live-list,
body.monde-betaillere .lb-live-side,
body.monde-betaillere .lb-signal-form,
body.monde-betaillere .train-detail-card,
body.monde-betaillere .train-detail-route,
body.monde-betaillere .train-comments,
body.monde-betaillere .chips-panel,
body.monde-betaillere .selection-inline,
body.monde-betaillere .station-stack,
body.monde-betaillere .compact-presets,
body.monde-betaillere .search-card,
body.monde-betaillere .disruption-box,
body.monde-betaillere .alerte-box,
body.monde-betaillere .lb-train-stop-item{
  background:
    linear-gradient(180deg, rgba(65,39,17,.88), rgba(21,16,9,.90)),
    repeating-linear-gradient(90deg, rgba(255,230,160,.040) 0 1px, transparent 1px 12px) !important;
  border-color:rgba(236,191,73,.42) !important;
  box-shadow:inset 0 0 0 1px rgba(255,235,170,.07), 0 0 12px rgba(0,0,0,.20) !important;
}

/* Titres : jaune paille / blanc chaud, plus de cyan */
body.monde-betaillere h1,
body.monde-betaillere h2,
body.monde-betaillere h3,
body.monde-betaillere .home-card h2,
body.monde-betaillere .live-wall-title,
body.monde-betaillere .console-header,
body.monde-betaillere .disruption-header,
body.monde-betaillere .selection-modal__header h2,
body.monde-betaillere .lb-community-panel h3,
body.monde-betaillere .proposal-section__title,
body.monde-betaillere .chips-header,
body.monde-betaillere .field-caption,
body.monde-betaillere .compact-fields__title,
body.monde-betaillere .compact-presets__title,
body.monde-betaillere .home-fav-train,
body.monde-betaillere .lb-live-train,
body.monde-betaillere .wx-title,
body.monde-betaillere .ber-line1,
body.monde-betaillere .top-bar__title,
body.monde-betaillere .bottom-nav__item,
body.monde-betaillere .bottom-nav__label{
  color:var(--farm-hay-2) !important;
  text-shadow:0 1px 0 rgba(44,22,4,.95), 0 0 8px rgba(240,195,79,.28) !important;
}
body.monde-betaillere .subtle,
body.monde-betaillere p,
body.monde-betaillere .home-fav-meta,
body.monde-betaillere .home-fav-route,
body.monde-betaillere .home-fav-time,
body.monde-betaillere .live-wall-item-text,
body.monde-betaillere .lb-live-route,
body.monde-betaillere .lb-community-panel-sub{
  color:#f7e7bd !important;
}

/* Boutons du tableau des bétaillères + tous boutons principaux : bois/vert, contours dorés */
body.monde-betaillere .home-card[aria-label*="Tableau"] button,
body.monde-betaillere .home-card[aria-label*="Tableau"] .home-action,
body.monde-betaillere .manual-compact .preset-btn,
body.monde-betaillere .preset-btn,
body.monde-betaillere .quick-btn,
body.monde-betaillere .mini-btn,
body.monde-betaillere .btn,
body.monde-betaillere button:not(#monde-betaillere-btn),
body.monde-betaillere .lb-community-btn,
body.monde-betaillere .lb-live-card-actions button,
body.monde-betaillere .lb-live-presence-btn,
body.monde-betaillere .lb-signal-submit,
body.monde-betaillere .home-action{
  background:
    linear-gradient(180deg, rgba(50,91,25,.94), rgba(17,43,13,.96)) !important;
  color:#fff0bb !important;
  border:1px solid rgba(236,191,73,.58) !important;
  border-radius:12px !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,235,170,.10),
    inset 0 -8px 12px rgba(0,0,0,.18),
    0 0 10px rgba(240,195,79,.13) !important;
  text-shadow:0 1px 0 rgba(0,0,0,.50) !important;
}
body.monde-betaillere .home-card[aria-label*="Tableau"] button:hover,
body.monde-betaillere .preset-btn:hover,
body.monde-betaillere .mini-btn:hover,
body.monde-betaillere .btn:hover,
body.monde-betaillere button:not(#monde-betaillere-btn):hover{
  border-color:rgba(255,221,105,.86) !important;
  box-shadow:inset 0 0 0 1px rgba(255,235,170,.16), 0 0 14px rgba(240,195,79,.22) !important;
}
body.monde-betaillere .preset-btn.is-active,
body.monde-betaillere .quick-btn.is-active,
body.monde-betaillere .bottom-nav__item.active{
  background:linear-gradient(180deg, rgba(230,166,42,.96), rgba(114,66,21,.96)) !important;
  color:#2a1603 !important;
  border-color:rgba(255,224,120,.94) !important;
}

/* Badges trafic/statuts */
body.monde-betaillere .traffic-pill--green,
body.monde-betaillere .lb-live-status--ok,
body.monde-betaillere .home-fav-pill.arrive,
body.monde-betaillere .home-fav-pill.live{
  background:linear-gradient(180deg, #bde85a, #4f9e31) !important;
  color:#071d08 !important;
  border-color:rgba(205,255,112,.82) !important;
}
body.monde-betaillere .traffic-pill--yellow,
body.monde-betaillere .traffic-pill--orange,
body.monde-betaillere .lb-live-status--delay,
body.monde-betaillere .home-fav-pill.avenir{
  background:linear-gradient(180deg, #ffd35c, #b8691c) !important;
  color:#2a1603 !important;
  border-color:rgba(255,224,120,.88) !important;
}
body.monde-betaillere .traffic-pill--red,
body.monde-betaillere .lb-live-status--cancel{
  background:linear-gradient(180deg, #b95130, #5b1d12) !important;
  color:#ffe3c8 !important;
  border-color:rgba(255,137,88,.78) !important;
}

/* Tableau : entêtes bois, cellules prairie, contours dorés */
body.monde-betaillere table,
body.monde-betaillere #trainInfo table{
  background:#071207 !important;
  border:2px solid rgba(236,191,73,.45) !important;
  box-shadow:0 0 0 1px rgba(52,29,9,.88), 0 0 16px rgba(240,195,79,.13) !important;
}
body.monde-betaillere table::before{ display:none !important; }
body.monde-betaillere thead th,
body.monde-betaillere #trainInfo table thead th,
body.monde-betaillere #trainInfo table th:first-child,
body.monde-betaillere #trainInfo table td:first-child{
  background:
    linear-gradient(180deg, rgba(90,53,20,.99), rgba(43,31,13,.99)) !important;
  color:#ffe7a3 !important;
  border-color:rgba(236,191,73,.26) !important;
  box-shadow:inset 0 0 0 1px rgba(255,236,170,.06) !important;
}
body.monde-betaillere #trainInfo table td,
body.monde-betaillere #trainInfo table th{
  border-bottom-color:rgba(236,191,73,.12) !important;
}
body.monde-betaillere tbody tr:nth-child(odd){ background-color:rgba(14,34,13,.86) !important; }
body.monde-betaillere tbody tr:nth-child(even){ background-color:rgba(8,23,10,.88) !important; }

/* Champs et scrollbars plus ferme */
body.monde-betaillere input,
body.monde-betaillere select,
body.monde-betaillere textarea{
  background:rgba(18,26,11,.96) !important;
  color:#fff1c6 !important;
  border-color:rgba(236,191,73,.42) !important;
}
body.monde-betaillere *::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg, #d89b32, #6e421b) !important;
  border-radius:999px !important;
}

@media (max-width:700px){
  #monde-betaillere-btn,
  #monde-betaillere-btn.mb-floating,
  body.monde-betaillere #monde-betaillere-btn{
    width:64px !important;
    height:64px !important;
    min-width:64px !important;
    max-width:64px !important;
    right:10px;
    bottom:calc(var(--bottom-bar-height, 84px) + 10px);
    font-size:.50rem !important;
  }
  #monde-betaillere-btn span:first-child{ font-size:1.18rem !important; }
}

/* ===== Source historique : lb-v18-scoped-betaillere-fix ===== */
/* Sécurité: aucune règle ci-dessous ne s'applique hors mode Bétaillère */
body.monde-betaillere #home{
  background:
    radial-gradient(circle at 12% 0%, rgba(117,166,62,.16), transparent 32%),
    radial-gradient(circle at 92% 16%, rgba(145,92,34,.15), transparent 36%),
    linear-gradient(180deg, rgba(7,23,13,.72), rgba(5,14,8,.90)) !important;
}

/* Cartes accueil en mode Bétaillère uniquement */
body.monde-betaillere #home .home-card[aria-label="Mes Bétaillères favorites"],
body.monde-betaillere #home .home-card[aria-label="Mes bétaillères favorites"],
body.monde-betaillere #home .home-card[aria-label="Info trafic"],
body.monde-betaillere #home .home-card[aria-label="Tableau rapide"],
body.monde-betaillere #home .home-card[aria-label="Ponctualité sur 7 jours"],
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"],
body.monde-betaillere #home .live-wall-card--home{
  background:
    radial-gradient(circle at 18% 0%, rgba(255,216,118,.08), transparent 35%),
    linear-gradient(180deg, rgba(22,54,25,.94), rgba(7,22,11,.98)) !important;
  border:1px solid rgba(188,153,73,.42) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,236,176,.08),
    inset 0 0 18px rgba(84,128,42,.12),
    0 10px 24px rgba(0,0,0,.34) !important;
  color:#f2e8c8 !important;
}

/* Titres de conteneurs: style ferme, plus de bleu Tron, pas de débordement */
body.monde-betaillere #home .home-card h2,
body.monde-betaillere #home .live-wall-title{
  display:block !important;
  box-sizing:border-box !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  margin:0 0 8px !important;
  padding:4px 8px 5px !important;
  border-radius:999px !important;
  background:linear-gradient(180deg, rgba(104,66,30,.92), rgba(54,34,16,.94)) !important;
  border:1px solid rgba(215,180,93,.38) !important;
  color:#f2e8c8 !important;
  text-shadow:0 1px 0 rgba(0,0,0,.75), 0 0 6px rgba(255,210,122,.18) !important;
  font-size:clamp(.66rem, 2.12vw, .84rem) !important;
  line-height:1.12 !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
  text-align:center !important;
  white-space:normal !important;
  overflow:hidden !important;
  text-overflow:clip !important;
  overflow-wrap:break-word !important;
  word-break:normal !important;
}

/* Cartes étroites: le titre se cale sans déborder */
body.monde-betaillere #home .home-card[aria-label="Tableau rapide"] h2,
body.monde-betaillere #home .home-card[aria-label="Info trafic"] h2{
  font-size:clamp(.58rem, 1.88vw, .76rem) !important;
  padding-left:5px !important;
  padding-right:5px !important;
}

/* Supprime les emojis/pictos décoratifs devant les titres en mode Bétaillère */
body.monde-betaillere #home .home-card h2::before,
body.monde-betaillere #home .home-card h2::after,
body.monde-betaillere #home .live-wall-title::before,
body.monde-betaillere #home .live-wall-title::after{
  content:none !important;
  display:none !important;
}

/* Mur de commentaires: badge FAQ à droite sans pousser le titre */
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-head{
  position:relative !important;
  justify-content:center !important;
  align-items:center !important;
  padding-right:54px !important;
  gap:6px !important;
}
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-title{
  margin:0 auto 8px !important;
}
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-head-actions,
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .faq-btn{
  position:absolute !important;
  right:0 !important;
  top:50% !important;
  transform:translateY(-56%) !important;
}

/* Boutons accueil en mode Bétaillère */
body.monde-betaillere #home .home-card button,
body.monde-betaillere #home .home-card .home-action,
body.monde-betaillere #home .home-card .home-quick-presets__btn,
body.monde-betaillere #home .lb-community-btn{
  background:linear-gradient(180deg, rgba(70,103,28,.96), rgba(33,64,18,.96)) !important;
  border:1px solid rgba(215,180,93,.42) !important;
  color:#fff1c9 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 3px 9px rgba(0,0,0,.30) !important;
  text-shadow:0 1px 0 rgba(0,0,0,.55) !important;
}

/* Fonds enfants en mode Bétaillère: plus proche de l'exemple, mais sans toucher au mode normal */
body.monde-betaillere #home .home-fav-row,
body.monde-betaillere #home .traffic-split-row,
body.monde-betaillere #home .home-punct-card,
body.monde-betaillere #home .live-wall-item{
  background:linear-gradient(180deg, rgba(18,35,14,.88), rgba(8,19,11,.86)) !important;
  border-color:rgba(232,190,92,.25) !important;
  box-shadow:inset 0 0 0 1px rgba(255,232,165,.05), 0 0 12px rgba(177,255,90,.07) !important;
}

/* Lisibilité mobile des titres */
@media (max-width:430px){
  body.monde-betaillere #home .home-card h2,
  body.monde-betaillere #home .live-wall-title{
    font-size:.66rem !important;
    line-height:1.10 !important;
    padding:4px 5px !important;
  }
  body.monde-betaillere #home .home-card[aria-label="Tableau rapide"] h2,
  body.monde-betaillere #home .home-card[aria-label="Info trafic"] h2{
    font-size:.60rem !important;
  }
}

/* ===== Source historique : lb-v19-betaillere-theme-ok ===== */
/* Palette ferme scoped */
body.monde-betaillere{
  --ber-wood-1: rgba(112, 70, 30, .96);
  --ber-wood-2: rgba(55, 34, 15, .98);
  --ber-green-1: rgba(31, 68, 25, .96);
  --ber-green-2: rgba(8, 24, 12, .98);
  --ber-panel-1: rgba(24, 54, 24, .94);
  --ber-panel-2: rgba(6, 19, 10, .98);
  --ber-border: rgba(219, 180, 88, .42);
  --ber-border-soft: rgba(219, 180, 88, .24);
  --ber-text: #f5ebca;
  --ber-muted: rgba(242, 226, 185, .82);
  --ber-green-glow: rgba(146, 210, 70, .16);
  --ber-wood-glow: rgba(255, 194, 94, .12);
}

/* Titres enfants / barres de titre : même rendu que les autres cartes */
body.monde-betaillere #home .live-wall-head,
body.monde-betaillere #home .voice-header{
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
body.monde-betaillere #home .live-wall-title,
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-title{
  color: var(--ber-text) !important;
  background: linear-gradient(180deg, var(--ber-wood-1), var(--ber-wood-2)) !important;
  border: 1px solid var(--ber-border) !important;
  box-shadow: inset 0 1px 0 rgba(255,235,170,.12), 0 2px 7px rgba(0,0,0,.28) !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.82) !important;
  font-size: clamp(.66rem, 1.95vw, .82rem) !important;
  line-height: 1.08 !important;
  padding: 4px 8px 5px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* Le badge FAQ reste compact sans pousser la barre */
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-head{
  padding-right: 50px !important;
}
body.monde-betaillere #home .faq-btn{
  color: #f8eabd !important;
  border-color: rgba(220,180,88,.46) !important;
  background: linear-gradient(180deg, rgba(48,82,31,.96), rgba(24,49,17,.98)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 2px 8px rgba(0,0,0,.25) !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.55) !important;
}
body.monde-betaillere #home .faq-btn::before{
  color:#f8eabd !important;
  border-color: rgba(220,180,88,.50) !important;
  box-shadow:none !important;
}

/* Champ "Partager une info rapide" : style ferme, plus de bleu */
body.monde-betaillere #home .live-wall-form,
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-form{
  display:flex !important;
  gap:7px !important;
  margin-top: 5px !important;
  margin-bottom: 3px !important;
}
body.monde-betaillere #home .live-wall-form input,
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-form input,
body.monde-betaillere #home input[placeholder*="Partager"]{
  min-width:0 !important;
  color: var(--ber-text) !important;
  background: linear-gradient(180deg, rgba(18,35,14,.92), rgba(7,18,10,.98)) !important;
  border: 1px solid var(--ber-border-soft) !important;
  border-radius: 12px !important;
  box-shadow: inset 0 1px 0 rgba(255,230,160,.06), inset 0 0 12px rgba(130,180,70,.08) !important;
  text-shadow: none !important;
}
body.monde-betaillere #home .live-wall-form input::placeholder,
body.monde-betaillere #home input[placeholder*="Partager"]::placeholder{
  color: rgba(242,226,185,.62) !important;
}
body.monde-betaillere #home .live-wall-feed--home{
  background: rgba(7,18,10,.28) !important;
  border-radius: 12px !important;
}
body.monde-betaillere #home .live-wall-item,
body.monde-betaillere #home .live-wall-item--home{
  color: var(--ber-text) !important;
  background: linear-gradient(180deg, rgba(16,31,13,.80), rgba(6,16,9,.88)) !important;
  border-color: rgba(220,180,88,.18) !important;
}
body.monde-betaillere #home .live-wall-meta{
  color: var(--ber-muted) !important;
}

/* Pages internes : fond général ferme au lieu du bleu profond */
body.monde-betaillere .app-page,
body.monde-betaillere #search,
body.monde-betaillere #stats,
body.monde-betaillere #favTrainsWidget,
body.monde-betaillere #disruptionsSummary{
  background:
    radial-gradient(circle at 15% 0%, rgba(151,199,72,.10), transparent 32%),
    linear-gradient(180deg, rgba(11,33,14,.95), rgba(4,14,7,.99)) !important;
  border-color: rgba(134,170,55,.42) !important;
  box-shadow: inset 0 0 0 1px rgba(220,180,88,.10), 0 12px 30px rgba(0,0,0,.34) !important;
  color: var(--ber-text) !important;
}

/* Console/tableau/stats : retirer les fonds cyan/bleu des panneaux enfants */
body.monde-betaillere .command-console,
body.monde-betaillere .command-console .console-section,
body.monde-betaillere .command-console .section-content,
body.monde-betaillere .command-console .console-card,
body.monde-betaillere .manual-compact .search-card,
body.monde-betaillere .manual-compact .compact-presets,
body.monde-betaillere .manual-compact .station-stack,
body.monde-betaillere .selection-inline,
body.monde-betaillere .chips-panel,
body.monde-betaillere .selection-modal__panel,
body.monde-betaillere .lb-live-list,
body.monde-betaillere .lb-live-side,
body.monde-betaillere .lb-signal-form{
  background:
    radial-gradient(circle at 20% 0%, rgba(255,210,110,.07), transparent 34%),
    linear-gradient(180deg, var(--ber-panel-1), var(--ber-panel-2)) !important;
  border-color: var(--ber-border-soft) !important;
  box-shadow: inset 0 1px 0 rgba(255,230,160,.06), inset 0 0 18px rgba(116,160,62,.08), 0 8px 20px rgba(0,0,0,.26) !important;
  color: var(--ber-text) !important;
}

/* En-têtes console : bois doré */
body.monde-betaillere .console-header,
body.monde-betaillere .console-title,
body.monde-betaillere .command-console h2,
body.monde-betaillere .command-console h3,
body.monde-betaillere .command-console h4,
body.monde-betaillere .field-caption,
body.monde-betaillere .compact-presets__title,
body.monde-betaillere .selection-inline__title,
body.monde-betaillere .fav-widget h2,
body.monde-betaillere #favTrainsWidget h2{
  color: #f2d787 !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.8), 0 0 8px rgba(255,198,88,.18) !important;
  border-color: rgba(220,180,88,.28) !important;
}
body.monde-betaillere .console-header,
body.monde-betaillere .console-title{
  border-bottom-color: rgba(220,180,88,.30) !important;
}

/* Inputs/selects pages internes : thème ferme */
body.monde-betaillere .command-console input,
body.monde-betaillere .command-console select,
body.monde-betaillere .station-search,
body.monde-betaillere .tableau-mode-switch__select,
body.monde-betaillere .lb-signal-form select,
body.monde-betaillere .lb-signal-form textarea{
  background: linear-gradient(180deg, rgba(13,28,12,.96), rgba(5,16,8,.98)) !important;
  color: var(--ber-text) !important;
  border: 1px solid rgba(220,180,88,.34) !important;
  box-shadow: inset 0 0 10px rgba(123,170,65,.10) !important;
  text-shadow: none !important;
}
body.monde-betaillere .command-console input::placeholder,
body.monde-betaillere .station-search::placeholder{
  color: rgba(242,226,185,.62) !important;
}

/* Boutons tableau/console : verts ferme */
body.monde-betaillere .command-console button,
body.monde-betaillere .mini-btn,
body.monde-betaillere .btn,
body.monde-betaillere .preset-btn,
body.monde-betaillere .quick-btn,
body.monde-betaillere .lb-community-btn,
body.monde-betaillere .lb-signal-submit,
body.monde-betaillere .home-action{
  background: linear-gradient(180deg, rgba(71,105,30,.97), rgba(31,63,17,.98)) !important;
  color: #fff1c9 !important;
  border: 1px solid rgba(220,180,88,.42) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.10), 0 3px 9px rgba(0,0,0,.30) !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.55) !important;
}
body.monde-betaillere .preset-btn.is-active,
body.monde-betaillere .quick-btn.is-active,
body.monde-betaillere .btn.primary{
  background: linear-gradient(180deg, rgba(163,132,48,.98), rgba(83,55,20,.98)) !important;
  color: #fff4ce !important;
  border-color: rgba(255,218,112,.55) !important;
}

/* Mes bêtes préférées : cartes plus ferme, plus cyan */
body.monde-betaillere #favTrainsWidget .fav-card,
body.monde-betaillere .fav-widget,
body.monde-betaillere .fav-card,
body.monde-betaillere .favorites-widget,
body.monde-betaillere .favorites-card{
  background:
    radial-gradient(circle at 10% 0%, rgba(255,210,110,.06), transparent 35%),
    linear-gradient(180deg, rgba(18,39,17,.96), rgba(5,18,8,.98)) !important;
  border-color: rgba(220,180,88,.28) !important;
  color: var(--ber-text) !important;
  box-shadow: inset 0 1px 0 rgba(255,230,160,.06), 0 8px 20px rgba(0,0,0,.28) !important;
}
body.monde-betaillere #favTrainsWidget .fav-card::before,
body.monde-betaillere #favTrainsWidget .fav-card::after{
  opacity: .18 !important;
  filter: sepia(.7) hue-rotate(12deg) saturate(.8) !important;
}
body.monde-betaillere #favTrainsWidget .fav-train,
body.monde-betaillere #favTrainsWidget .fav-route,
body.monde-betaillere #favTrainsWidget .fav-time,
body.monde-betaillere #favTrainsWidget .fav-next-train{
  color: var(--ber-text) !important;
  text-shadow: 0 1px 0 rgba(0,0,0,.6) !important;
}
body.monde-betaillere #favTrainsWidget .fav-tag,
body.monde-betaillere #favTrainsWidget .fav-state-badge,
body.monde-betaillere .fav-tag{
  background: linear-gradient(180deg, rgba(80,61,34,.92), rgba(35,26,15,.96)) !important;
  color: #f5e7bd !important;
  border-color: rgba(220,180,88,.35) !important;
}

/* Stats : blocs et cartes charts sans bleu */
body.monde-betaillere #stats canvas,
body.monde-betaillere #stats .stat-card,
body.monde-betaillere #stats .stats-card,
body.monde-betaillere #stats .chart-card,
body.monde-betaillere #stats .home-card,
body.monde-betaillere #stats .traffic-split-row{
  background: linear-gradient(180deg, rgba(18,39,17,.92), rgba(6,18,9,.96)) !important;
  border-color: rgba(220,180,88,.24) !important;
  color: var(--ber-text) !important;
}

/* Quelques restes Tron très fréquents */
body.monde-betaillere .tableau-mode-switch,
body.monde-betaillere .time-slider,
body.monde-betaillere #timeSlider.noUi-target,
body.monde-betaillere .selection-date__controls input[type="date"]{
  background: linear-gradient(180deg, rgba(13,28,12,.96), rgba(5,16,8,.98)) !important;
  border-color: rgba(220,180,88,.34) !important;
  box-shadow: inset 0 0 10px rgba(123,170,65,.10), 0 2px 10px rgba(0,0,0,.20) !important;
}
body.monde-betaillere #timeSlider .noUi-connect{
  background: linear-gradient(90deg, #d7ba63, #6c9b35) !important;
  box-shadow: 0 0 10px rgba(214,186,99,.30) !important;
}
body.monde-betaillere #timeSlider .noUi-handle{
  background: #d6bd63 !important;
  border-color: rgba(255,232,150,.75) !important;
  box-shadow: 0 0 10px rgba(214,189,99,.36) !important;
}

/* Mobile : garder lisible sans déborder */
@media (max-width: 430px){
  body.monde-betaillere #home .live-wall-title,
  body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-title{
    font-size:.63rem !important;
    padding-left:6px !important;
    padding-right:6px !important;
  }
  body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-head{
    padding-right: 46px !important;
  }
  body.monde-betaillere #home .live-wall-form input,
  body.monde-betaillere #home .live-wall-form button{
    min-height: 28px !important;
    font-size: .62rem !important;
  }
}

/* ===== Source historique : lb-v20-betaillere-affinage ===== */
body.monde-betaillere{
  --ber-cream:#f6ebc8;
  --ber-cream-soft:rgba(246,235,200,.82);
  --ber-gold:#d7b760;
  --ber-gold-soft:rgba(215,183,96,.42);
  --ber-wood-a:#835026;
  --ber-wood-b:#4b2c13;
  --ber-wood-c:#241409;
  --ber-green-a:#214c1f;
  --ber-green-b:#0c260e;
  --ber-green-c:#041006;
  --ber-dark:#061006;
}

/* ---------- ACCUEIL : barres titres enfants ---------- */
body.monde-betaillere #home .home-card h2,
body.monde-betaillere #home .live-wall-title,
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-title{
  min-height:20px !important;
  box-sizing:border-box !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:5px 10px 6px !important;
  border-radius:999px !important;
  background:
    linear-gradient(180deg, rgba(135,82,36,.98), rgba(72,43,18,.98) 58%, rgba(42,24,10,.99)) !important;
  border:1px solid rgba(224,184,88,.48) !important;
  color:var(--ber-cream) !important;
  text-shadow:0 1px 0 rgba(0,0,0,.85), 0 0 7px rgba(255,207,104,.18) !important;
  box-shadow:inset 0 1px 0 rgba(255,238,170,.14), inset 0 -1px 0 rgba(0,0,0,.30), 0 2px 7px rgba(0,0,0,.28) !important;
  font-size:clamp(.70rem, 2.05vw, .86rem) !important;
  line-height:1.05 !important;
  font-weight:900 !important;
  letter-spacing:.01em !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  margin:0 0 8px !important;
}

/* Les titres plus longs restent lisibles sans exploser la carte */
body.monde-betaillere #home .home-card[aria-label="Info trafic"] h2,
body.monde-betaillere #home .home-card[aria-label="Tableau rapide"] h2{
  font-size:clamp(.64rem, 1.85vw, .80rem) !important;
  padding-left:8px !important;
  padding-right:8px !important;
}

/* La Voix du Bétail : la FAQ ne doit plus pousser/recouvrir le titre */
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-head{
  position:relative !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:0 !important;
  padding:0 54px 0 0 !important;
  margin:0 0 8px !important;
  min-height:24px !important;
}
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-title{
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  flex:1 1 auto !important;
}
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-head-actions{
  position:absolute !important;
  right:0 !important;
  top:50% !important;
  transform:translateY(-50%) !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  width:48px !important;
  z-index:2 !important;
}
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .faq-btn{
  height:22px !important;
  min-height:22px !important;
  padding:3px 8px !important;
  font-size:.58rem !important;
  margin:0 !important;
}
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .faq-btn::before{
  width:13px !important;
  height:13px !important;
  font-size:.55rem !important;
}

/* Champ partager : style panneau ferme, pas bleu, plus intégré */
body.monde-betaillere #home .live-wall-form{
  align-items:center !important;
}
body.monde-betaillere #home .live-wall-form input,
body.monde-betaillere #home input[placeholder*="Partager"]{
  height:31px !important;
  min-height:31px !important;
  border-radius:12px !important;
  background:
    linear-gradient(180deg, rgba(28,31,17,.96), rgba(11,17,9,.98)) !important;
  border:1px solid rgba(204,166,80,.36) !important;
  color:var(--ber-cream) !important;
  box-shadow:inset 0 1px 0 rgba(255,230,160,.07), inset 0 0 12px rgba(0,0,0,.22) !important;
  padding:0 11px !important;
}
body.monde-betaillere #home .live-wall-form button{
  height:31px !important;
  min-height:31px !important;
  border-radius:12px !important;
}

/* ---------- PAGE TABLEAU / CONSOLE : plus proche bois + prairie ---------- */
body.monde-betaillere #search .command-console,
body.monde-betaillere #search .console-section{
  background:
    radial-gradient(circle at 15% 0%, rgba(173,132,58,.15), transparent 34%),
    linear-gradient(180deg, rgba(25,61,22,.96), rgba(7,23,9,.99)) !important;
  border:1px solid rgba(146,169,57,.46) !important;
  border-radius:18px !important;
  box-shadow:inset 0 0 0 1px rgba(235,190,92,.10), inset 0 0 24px rgba(71,119,32,.12), 0 12px 28px rgba(0,0,0,.36) !important;
}
body.monde-betaillere #search .console-header,
body.monde-betaillere #search .console-title,
body.monde-betaillere #search .command-console h2{
  background:transparent !important;
  color:#dfc46c !important;
  text-shadow:0 1px 0 rgba(0,0,0,.85), 0 0 8px rgba(255,210,98,.20) !important;
  border-bottom:1px dashed rgba(215,183,96,.38) !important;
}
body.monde-betaillere #search .manual-compact .search-card,
body.monde-betaillere #search .manual-compact .compact-presets,
body.monde-betaillere #search .tableau-mode-switch,
body.monde-betaillere #search .manual-compact .station-stack,
body.monde-betaillere #search .selection-inline,
body.monde-betaillere #search .chips-panel,
body.monde-betaillere #search .section-content{
  background:
    linear-gradient(180deg, rgba(27,54,22,.92), rgba(8,25,10,.98)) !important;
  border:1px solid rgba(213,177,85,.34) !important;
  box-shadow:inset 0 1px 0 rgba(255,235,170,.08), inset 0 0 18px rgba(0,0,0,.16), 0 4px 12px rgba(0,0,0,.24) !important;
}
body.monde-betaillere #search .compact-presets__title,
body.monde-betaillere #search .field-caption,
body.monde-betaillere #search .tableau-mode-switch__label,
body.monde-betaillere #search .selection-inline__title{
  color:#dfc46c !important;
  text-shadow:0 1px 0 rgba(0,0,0,.8) !important;
}
body.monde-betaillere #search .command-console select,
body.monde-betaillere #search .command-console input,
body.monde-betaillere #search .station-search{
  background:linear-gradient(180deg, rgba(25,30,15,.98), rgba(8,16,8,.99)) !important;
  border-color:rgba(219,180,88,.46) !important;
  color:var(--ber-cream) !important;
}
body.monde-betaillere #search .command-console button,
body.monde-betaillere #search .mini-btn,
body.monde-betaillere #search .btn,
body.monde-betaillere #search .preset-btn,
body.monde-betaillere #search .quick-btn{
  border-radius:12px !important;
  background:linear-gradient(180deg, rgba(76,111,34,.98), rgba(35,68,18,.99)) !important;
  border:1px solid rgba(220,180,88,.46) !important;
  color:#fff0c6 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), inset 0 -1px 0 rgba(0,0,0,.22), 0 3px 9px rgba(0,0,0,.28) !important;
}
body.monde-betaillere #search .preset-btn.is-active,
body.monde-betaillere #search .quick-btn.is-active,
body.monde-betaillere #search .btn.primary{
  background:linear-gradient(180deg, rgba(151,105,42,.98), rgba(77,45,18,.99)) !important;
  border-color:rgba(248,211,111,.58) !important;
}

/* ---------- MES BÊTES : plus de brun et titre propre ---------- */
body.monde-betaillere #favTrainsWidget,
body.monde-betaillere .fav-widget{
  background:
    radial-gradient(circle at 8% 0%, rgba(151,99,44,.18), transparent 30%),
    linear-gradient(180deg, rgba(15,43,17,.96), rgba(5,16,7,.99)) !important;
  border:1px solid rgba(142,169,58,.42) !important;
}
body.monde-betaillere #favTrainsWidget h2,
body.monde-betaillere .fav-widget h2{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  min-height:26px !important;
  padding:5px 12px !important;
  border-radius:999px !important;
  color:#f6ebc8 !important;
  background:linear-gradient(180deg, rgba(136,82,36,.98), rgba(70,40,17,.99)) !important;
  border:1px solid rgba(224,184,88,.48) !important;
  text-shadow:0 1px 0 rgba(0,0,0,.88) !important;
  box-shadow:inset 0 1px 0 rgba(255,238,170,.12), 0 2px 8px rgba(0,0,0,.28) !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
body.monde-betaillere #favTrainsWidget .fav-card,
body.monde-betaillere .fav-card{
  background:
    radial-gradient(circle at 0% 0%, rgba(145,86,36,.16), transparent 35%),
    linear-gradient(180deg, rgba(24,44,18,.98), rgba(7,21,9,.99)) !important;
  border:1px solid rgba(220,180,88,.33) !important;
  box-shadow:inset 0 1px 0 rgba(255,230,160,.06), 0 7px 18px rgba(0,0,0,.30) !important;
}
body.monde-betaillere #favTrainsWidget .fav-card:nth-child(odd),
body.monde-betaillere .fav-card:nth-child(odd){
  background:
    radial-gradient(circle at 0% 0%, rgba(158,94,39,.22), transparent 36%),
    linear-gradient(180deg, rgba(31,49,20,.98), rgba(8,22,9,.99)) !important;
}
body.monde-betaillere #favTrainsWidget .fav-train,
body.monde-betaillere .fav-train{
  color:#f6d98d !important;
  text-shadow:0 1px 0 rgba(0,0,0,.8) !important;
}
body.monde-betaillere #favTrainsWidget .fav-details,
body.monde-betaillere .fav-details,
body.monde-betaillere #favTrainsWidget .fav-aff-card,
body.monde-betaillere .fav-aff-card{
  background:linear-gradient(180deg, rgba(12,29,12,.88), rgba(5,15,7,.94)) !important;
  border-color:rgba(220,180,88,.24) !important;
}

@media (max-width:430px){
  body.monde-betaillere #home .home-card h2,
  body.monde-betaillere #home .live-wall-title,
  body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-title{
    min-height:19px !important;
    font-size:.66rem !important;
    padding:4px 7px 5px !important;
  }
  body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-head{
    padding-right:48px !important;
  }
  body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .faq-btn{
    font-size:.54rem !important;
    padding-left:7px !important;
    padding-right:7px !important;
  }
  body.monde-betaillere #search .command-console,
  body.monde-betaillere #search .console-section{
    border-radius:16px !important;
  }
}

/* ===== Source historique : lb-v21-betaillere-selection-compte ===== */
/* ===== TABLEAU / SÉLECTION DES BÉTAILLÈRES ===== */
body.monde-betaillere #search .selection-modal__panel,
body.monde-betaillere #search .selection-modal__body,
body.monde-betaillere #search .selection-date,
body.monde-betaillere #search #selectionBlock,
body.monde-betaillere #search .selection-manual-card,
body.monde-betaillere #search .chips-panel,
body.monde-betaillere #search .proposal-section,
body.monde-betaillere #search .selection-inline,
body.monde-betaillere #search .selection-date__controls,
body.monde-betaillere #search .selection-flyout-panel{
  background:
    radial-gradient(circle at 12% 0%, rgba(143,94,39,.16), transparent 32%),
    linear-gradient(180deg, rgba(27,58,22,.96), rgba(7,24,10,.99)) !important;
  border-color: rgba(217,178,86,.38) !important;
  box-shadow: inset 0 1px 0 rgba(255,235,170,.08), inset 0 0 20px rgba(49,88,28,.14), 0 8px 20px rgba(0,0,0,.28) !important;
  color:#f6ebc8 !important;
}
body.monde-betaillere #search .selection-modal__header h2,
body.monde-betaillere #search .proposal-section__title,
body.monde-betaillere #search .selection-date__label,
body.monde-betaillere #search .selection-manual-card__title,
body.monde-betaillere #search .chips-header,
body.monde-betaillere #search .chips-count,
body.monde-betaillere #search .selection-inline__title{
  color:#e5c76d !important;
  text-shadow:0 1px 0 rgba(0,0,0,.86), 0 0 7px rgba(255,210,98,.18) !important;
  border-color:rgba(217,178,86,.32) !important;
}

/* Chips sélectionnées : compactes, premier nom uniquement via JS, pas de débordement */
body.monde-betaillere #selectionChips{
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap:5px 6px !important;
  padding:5px 6px !important;
  max-height:112px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  scrollbar-width:thin !important;
}
body.monde-betaillere #selectionChips .chip-tag{
  min-width:0 !important;
  min-height:24px !important;
  height:24px !important;
  padding:3px 6px !important;
  gap:0 !important;
  justify-content:center !important;
  border-radius:8px !important;
  background:linear-gradient(180deg, rgba(34,75,30,.96), rgba(12,42,16,.98)) !important;
  border:1px solid rgba(218,181,85,.40) !important;
  color:#f6ebc8 !important;
  box-shadow:inset 0 1px 0 rgba(255,240,180,.08), 0 2px 7px rgba(0,0,0,.24) !important;
  text-shadow:0 1px 0 rgba(0,0,0,.65) !important;
  overflow:hidden !important;
  white-space:nowrap !important;
}
body.monde-betaillere #selectionChips .chip-tag .t-num,
body.monde-betaillere #selectionChips .chip-tag .train-label,
body.monde-betaillere #selectionChips .chip-tag span:not(.close){
  display:block !important;
  min-width:0 !important;
  max-width:100% !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  font-size:.62rem !important;
  line-height:1 !important;
  letter-spacing:-.01em !important;
  color:#f6ebc8 !important;
}
body.monde-betaillere #selectionChips .chip-tag::before,
body.monde-betaillere #selectionChips .chip-tag::after,
body.monde-betaillere #selectionChips .chip-tag .close{
  display:none !important;
  content:none !important;
}
@media (max-width:430px){
  body.monde-betaillere #selectionChips{
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    max-height:98px !important;
  }
  body.monde-betaillere #selectionChips .chip-tag{
    height:22px !important;
    min-height:22px !important;
    padding:2px 4px !important;
  }
  body.monde-betaillere #selectionChips .chip-tag .t-num,
  body.monde-betaillere #selectionChips .chip-tag span:not(.close){
    font-size:.56rem !important;
  }
}

/* Ajout manuel : on retire le bleu Tron */
body.monde-betaillere #selectionBlock .selection-manual-card,
body.monde-betaillere #search .selection-manual-card{
  border-radius:14px !important;
  background:
    radial-gradient(circle at 10% 0%, rgba(151,92,38,.18), transparent 35%),
    linear-gradient(180deg, rgba(31,59,22,.96), rgba(9,25,10,.99)) !important;
  border:1px solid rgba(218,181,85,.42) !important;
  box-shadow:inset 0 1px 0 rgba(255,235,170,.08), 0 5px 14px rgba(0,0,0,.25) !important;
}
body.monde-betaillere #selectionBlock .selection-manual-card__title{
  color:#f0cf79 !important;
  text-shadow:0 1px 0 rgba(0,0,0,.85) !important;
}
body.monde-betaillere #selectionBlock .chips-manual input,
body.monde-betaillere #search .chips-manual input,
body.monde-betaillere #selectionBlock input#manualTrainNumber{
  background:linear-gradient(180deg, rgba(39,31,14,.98), rgba(12,18,8,.99)) !important;
  border:1px solid rgba(220,180,88,.48) !important;
  color:#f6ebc8 !important;
  box-shadow:inset 0 1px 0 rgba(255,230,160,.06), inset 0 0 12px rgba(0,0,0,.30) !important;
}
body.monde-betaillere #selectionBlock .btn.btn-compact,
body.monde-betaillere #selectionBlock .btn.btn-compact.ghost,
body.monde-betaillere #search .chips-manual .btn{
  background:linear-gradient(180deg, rgba(79,111,34,.98), rgba(35,67,18,.99)) !important;
  border:1px solid rgba(220,180,88,.48) !important;
  color:#fff0c6 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 3px 9px rgba(0,0,0,.28) !important;
}
body.monde-betaillere #selectionBlock .btn.btn-compact.ghost{
  background:linear-gradient(180deg, rgba(124,78,34,.98), rgba(67,39,17,.99)) !important;
}

/* ===== MON COMPTE : thème ferme, uniquement monde Bétaillère ===== */
body.monde-betaillere #lbAuthModal .lb-auth-card{
  background:
    radial-gradient(circle at 50% -6%, rgba(151,99,44,.18), transparent 34%),
    radial-gradient(circle at 10% 0%, rgba(130,168,70,.14), transparent 30%),
    linear-gradient(180deg, rgba(25,58,22,.97), rgba(6,21,8,.99)) !important;
  border:1px solid rgba(218,181,85,.42) !important;
  box-shadow:0 18px 40px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,235,170,.09), inset 0 0 28px rgba(67,111,35,.12) !important;
  color:#f6ebc8 !important;
}
body.monde-betaillere #lbAuthModal .lb-auth-card h3{
  color:#f3d57d !important;
  text-shadow:0 1px 0 rgba(0,0,0,.86), 0 0 8px rgba(255,210,98,.18) !important;
}
body.monde-betaillere #lbAuthModal .lb-auth-msg{
  background:linear-gradient(180deg, rgba(23,48,18,.90), rgba(8,23,9,.96)) !important;
  border:1px solid rgba(220,180,88,.24) !important;
  color:#eadcab !important;
}
body.monde-betaillere #lbAuthModal .lb-profile-card,
body.monde-betaillere #lbAuthModal .lb-grade-inline,
body.monde-betaillere #lbAuthModal .lb-account-box,
body.monde-betaillere #lbAuthModal .lb-profile-chip,
body.monde-betaillere #lbAuthModal .lb-ranking-row,
body.monde-betaillere #lbAuthModal .lb-ranking-podium-item .podium-caption{
  background:
    radial-gradient(circle at 16% 0%, rgba(142,83,35,.16), transparent 36%),
    linear-gradient(180deg, rgba(27,53,20,.96), rgba(7,22,9,.98)) !important;
  border-color:rgba(218,181,85,.32) !important;
  box-shadow:inset 0 1px 0 rgba(255,235,170,.07), 0 5px 14px rgba(0,0,0,.24) !important;
  color:#f6ebc8 !important;
}
body.monde-betaillere #lbAuthModal .lb-profile-title,
body.monde-betaillere #lbAuthModal .lb-grade-label,
body.monde-betaillere #lbAuthModal .lb-grade-pseudo,
body.monde-betaillere #lbAuthModal .lb-ranking-head,
body.monde-betaillere #lbAuthModal .lb-account-box h4{
  color:#e5c76d !important;
  text-shadow:0 1px 0 rgba(0,0,0,.85) !important;
}
body.monde-betaillere #lbAuthModal .lb-grade-inline .lb-grade-avatar-wrap,
body.monde-betaillere #lbAuthModal .lb-grade-card img{
  background:linear-gradient(180deg, rgba(41,64,24,.96), rgba(13,25,10,.99)) !important;
  border-color:rgba(218,181,85,.45) !important;
  box-shadow:0 0 0 5px rgba(218,181,85,.10), 0 0 22px rgba(155,210,80,.14) !important;
}
body.monde-betaillere #lbAuthModal .lb-grade-title-row .lb-grade-name,
body.monde-betaillere #lbAuthModal .lb-grade-name{
  background:linear-gradient(180deg, rgba(116,72,31,.98), rgba(57,34,15,.99)) !important;
  border:1px solid rgba(220,180,88,.48) !important;
  color:#f6ebc8 !important;
  border-radius:999px !important;
  padding:5px 10px !important;
  text-shadow:0 1px 0 rgba(0,0,0,.78) !important;
}
body.monde-betaillere #lbAuthModal .lb-grade-points,
body.monde-betaillere #lbAuthModal .lb-grade-next,
body.monde-betaillere #lbAuthModal .lb-profile-chip b,
body.monde-betaillere #lbAuthModal .lb-profile-chip span,
body.monde-betaillere #lbAuthModal .lb-auth-switch span{
  color:#e8dcae !important;
}
body.monde-betaillere #lbAuthModal .lb-grade-progress-track{
  background:linear-gradient(180deg, rgba(26,31,14,.98), rgba(10,18,8,.99)) !important;
  border-color:rgba(220,180,88,.34) !important;
}
body.monde-betaillere #lbAuthModal .lb-grade-progress-fill{
  background:linear-gradient(90deg, #7fbf3a, #d6b85f) !important;
  box-shadow:0 0 12px rgba(214,184,95,.35) !important;
}
body.monde-betaillere #lbAuthModal .auth-button,
body.monde-betaillere #lbAuthModal .lb-auth-switch button,
body.monde-betaillere #lbAuthModal button:not(.lb-auth-close):not(.tron-close-button){
  background:linear-gradient(180deg, rgba(83,116,36,.98), rgba(37,70,19,.99)) !important;
  border:1px solid rgba(220,180,88,.46) !important;
  color:#fff0c6 !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10), 0 3px 9px rgba(0,0,0,.28) !important;
  text-shadow:0 1px 0 rgba(0,0,0,.62) !important;
}
body.monde-betaillere #lbAuthModal #lbBtnLogout,
body.monde-betaillere #lbAuthModal .delete-button{
  background:linear-gradient(180deg, rgba(130,76,35,.98), rgba(72,39,17,.99)) !important;
}
body.monde-betaillere #lbAuthModal input,
body.monde-betaillere #lbAuthModal select{
  background:linear-gradient(180deg, rgba(37,31,15,.98), rgba(12,18,8,.99)) !important;
  border:1px solid rgba(220,180,88,.44) !important;
  color:#f6ebc8 !important;
  box-shadow:inset 0 1px 0 rgba(255,230,160,.06), inset 0 0 12px rgba(0,0,0,.28) !important;
}
body.monde-betaillere #lbAuthModal .lb-auth-links a,
body.monde-betaillere #lbAuthModal #lbDeleteLinkWrap .lb-auth-link-safe{
  color:#f0cf79 !important;
}
body.monde-betaillere #lbAuthModal .lb-auth-links--danger a{
  color:#ffb083 !important;
}

/* Petites harmonisations hors accueil mais uniquement mode Bétaillère */
body.monde-betaillere .lb-auth-modal,
body.monde-betaillere .selection-modal__backdrop{
  background:rgba(6,15,6,.78) !important;
}

/* ===== Source historique : lb-v22-betaillere-perturbations-flash ===== */
/* =====================================================================
   V22 — Couleurs perturbations plus lisibles, partout, uniquement mode Bétaillère
   Orange pétant = retards / perturbations / infos importantes
   Rouge pétant = suppressions / annulations / danger fort
   ===================================================================== */
body.monde-betaillere{
  --lb-alert-orange:#ff9f1c;
  --lb-alert-orange-2:#ff6a00;
  --lb-alert-orange-bg:rgba(255,122,0,.22);
  --lb-alert-orange-bg2:rgba(94,42,0,.72);
  --lb-alert-red:#ff2d3d;
  --lb-alert-red-2:#ff004c;
  --lb-alert-red-bg:rgba(255,0,55,.24);
  --lb-alert-red-bg2:rgba(96,0,24,.74);
  --lb-alert-yellow:#ffe65c;
}

/* ---------------- LIVE / Radio Prairie ---------------- */
body.monde-betaillere .lb-live-card--delay,
body.monde-betaillere .lb-live-card:has(.lb-live-status--delay),
body.monde-betaillere .lb-live-card:has(.lb-live-sncf-cause),
body.monde-betaillere .lb-live-card:has(.lb-stop-chip--retard),
body.monde-betaillere .lb-live-card:has(.retard),
body.monde-betaillere .lb-live-card:has(.delayed){
  border-color:rgba(255,159,28,.98) !important;
  background:
    radial-gradient(circle at 12% 12%, rgba(255,176,38,.24), transparent 36%),
    linear-gradient(180deg, rgba(82,42,4,.94), rgba(32,17,2,.98)) !important;
  box-shadow:
    0 0 0 1px rgba(255,195,80,.44) inset,
    0 0 18px rgba(255,126,0,.58),
    0 8px 22px rgba(0,0,0,.34) !important;
}
body.monde-betaillere .lb-live-card--cancel,
body.monde-betaillere .lb-live-card:has(.lb-live-status--cancel),
body.monde-betaillere .lb-live-card:has(.lb-stop-chip--suppression),
body.monde-betaillere .lb-live-card:has(.supprimé),
body.monde-betaillere .lb-live-card:has(.deleted),
body.monde-betaillere .lb-live-card:has(.blink-red),
body.monde-betaillere .lb-live-card:has(.new-end){
  border-color:rgba(255,45,61,1) !important;
  background:
    radial-gradient(circle at 12% 12%, rgba(255,45,61,.32), transparent 38%),
    linear-gradient(180deg, rgba(92,0,24,.96), rgba(30,0,8,.98)) !important;
  box-shadow:
    0 0 0 1px rgba(255,120,130,.54) inset,
    0 0 22px rgba(255,0,55,.68),
    0 8px 22px rgba(0,0,0,.36) !important;
}

body.monde-betaillere .lb-live-status--delay,
body.monde-betaillere .lb-live-user-alert,
body.monde-betaillere .lb-stop-chip--retard,
body.monde-betaillere .traffic-pill--orange,
body.monde-betaillere .disruption-box.orange .disruption-train-pill{
  color:#2a1200 !important;
  background:linear-gradient(180deg, #ffc04d, #ff7a00) !important;
  border-color:#ffe49a !important;
  box-shadow:0 0 12px rgba(255,122,0,.9), inset 0 1px 0 rgba(255,255,255,.35) !important;
  text-shadow:none !important;
}
body.monde-betaillere .lb-live-status--cancel,
body.monde-betaillere .lb-live-user-alert--cancel,
body.monde-betaillere .lb-stop-chip--suppression,
body.monde-betaillere .traffic-pill--red,
body.monde-betaillere .disruption-box.red .disruption-train-pill{
  color:#fff4f5 !important;
  background:linear-gradient(180deg, #ff5a68, #ff003c) !important;
  border-color:#ffb3bd !important;
  box-shadow:0 0 14px rgba(255,0,60,.95), inset 0 1px 0 rgba(255,255,255,.28) !important;
  text-shadow:0 1px 0 rgba(0,0,0,.34) !important;
}

body.monde-betaillere .lb-live-sncf-cause,
body.monde-betaillere .lb-train-detail-cause,
body.monde-betaillere .fav-cause{
  color:#fff0ba !important;
  border-color:rgba(255,159,28,.98) !important;
  background:linear-gradient(180deg, rgba(122,58,0,.88), rgba(70,31,0,.88)) !important;
  box-shadow:0 0 12px rgba(255,122,0,.55), inset 0 0 0 1px rgba(255,220,120,.22) !important;
}

/* ---------------- Info trafic accueil + page perturbations ---------------- */
body.monde-betaillere .traffic-split-row:has(.traffic-pill--orange),
body.monde-betaillere .traffic-split-row:has(.traffic-pill--yellow),
body.monde-betaillere .disruption-box.orange,
body.monde-betaillere .alerte-box.orange{
  border-color:rgba(255,159,28,.95) !important;
  background:
    radial-gradient(circle at left, rgba(255,159,28,.22), transparent 48%),
    linear-gradient(180deg, rgba(79,42,6,.88), rgba(23,15,5,.95)) !important;
  box-shadow:0 0 16px rgba(255,122,0,.55), inset 0 0 0 1px rgba(255,215,100,.22) !important;
}
body.monde-betaillere .traffic-split-row:has(.traffic-pill--red),
body.monde-betaillere .disruption-box.red,
body.monde-betaillere .alerte-box.red{
  border-color:rgba(255,45,61,1) !important;
  background:
    radial-gradient(circle at left, rgba(255,45,61,.28), transparent 48%),
    linear-gradient(180deg, rgba(86,0,22,.9), rgba(24,0,8,.96)) !important;
  box-shadow:0 0 20px rgba(255,0,55,.65), inset 0 0 0 1px rgba(255,130,145,.25) !important;
}
body.monde-betaillere .traffic-pill--yellow,
body.monde-betaillere .traffic-pill--orange{
  color:#2c1500 !important;
  background:linear-gradient(180deg, #ffe36c, #ff8a00) !important;
  border-color:#fff0a8 !important;
  box-shadow:0 0 14px rgba(255,145,0,.85) !important;
  text-shadow:none !important;
}
body.monde-betaillere .traffic-pill--red{
  color:#fff !important;
  background:linear-gradient(180deg, #ff5f6f, #ff0037) !important;
  border-color:#ffc0c8 !important;
  box-shadow:0 0 16px rgba(255,0,55,.92) !important;
}

/* ---------------- Tableau dynamique / cellules / gares ---------------- */
body.monde-betaillere #trainInfo .delayed,
body.monde-betaillere #trainInfo .retard,
body.monde-betaillere #trainInfo .gtfs-retard-new,
body.monde-betaillere #trainInfo .delay-voie,
body.monde-betaillere .lb-orange{
  color:#ff9f1c !important;
  text-shadow:0 0 7px rgba(255,126,0,.9), 0 0 14px rgba(255,126,0,.45) !important;
  font-weight:900 !important;
}
body.monde-betaillere #trainInfo .supprimé,
body.monde-betaillere #trainInfo .deleted,
body.monde-betaillere #trainInfo .blink-red,
body.monde-betaillere #trainInfo .blink-red-icon,
body.monde-betaillere #trainInfo .new-end,
body.monde-betaillere .lb-red{
  color:#ff3045 !important;
  text-shadow:0 0 8px rgba(255,0,55,.9), 0 0 16px rgba(255,0,55,.55) !important;
  font-weight:900 !important;
}
body.monde-betaillere #trainInfo td:has(.delayed),
body.monde-betaillere #trainInfo td:has(.retard),
body.monde-betaillere #trainInfo td:has(.gtfs-retard-new),
body.monde-betaillere #trainInfo td:has(.lb-orange){
  background:linear-gradient(180deg, rgba(255,126,0,.20), rgba(255,126,0,.08)) !important;
  box-shadow:inset 0 0 0 1px rgba(255,159,28,.42), inset 0 0 14px rgba(255,126,0,.24) !important;
}
body.monde-betaillere #trainInfo td:has(.deleted),
body.monde-betaillere #trainInfo td:has(.supprimé),
body.monde-betaillere #trainInfo td:has(.blink-red),
body.monde-betaillere #trainInfo td:has(.new-end),
body.monde-betaillere #trainInfo td:has(.lb-red){
  background:linear-gradient(180deg, rgba(255,0,55,.22), rgba(255,0,55,.09)) !important;
  box-shadow:inset 0 0 0 1px rgba(255,45,61,.52), inset 0 0 16px rgba(255,0,55,.28) !important;
}

/* ---------------- Fiches favoris / Mes bêtes / détails train ---------------- */
body.monde-betaillere .fav-card:has(.fav-cause),
body.monde-betaillere .train-detail-card:has(.lb-train-detail-cause),
body.monde-betaillere .train-detail-panel:has(.lb-train-detail-cause){
  border-color:rgba(255,159,28,.80) !important;
  box-shadow:0 0 14px rgba(255,126,0,.34), inset 0 0 0 1px rgba(255,200,90,.18) !important;
}
body.monde-betaillere .fav-card:has(.deleted),
body.monde-betaillere .fav-card:has(.supprimé),
body.monde-betaillere .train-detail-card:has(.lb-stop-chip--suppression),
body.monde-betaillere .train-detail-stop:has(.lb-stop-chip--suppression){
  border-color:rgba(255,45,61,.86) !important;
  box-shadow:0 0 16px rgba(255,0,55,.42), inset 0 0 0 1px rgba(255,120,130,.20) !important;
}

/* ---------------- Signalements / chips partout ---------------- */
body.monde-betaillere .lb-signal-type.is-selected,
body.monde-betaillere .lb-info-quick-btn.is-selected{
  border-color:rgba(255,203,90,.85) !important;
  background:linear-gradient(180deg, rgba(98,68,15,.92), rgba(40,31,8,.98)) !important;
  box-shadow:0 0 13px rgba(255,185,54,.46), inset 0 0 0 1px rgba(255,230,150,.22) !important;
}
body.monde-betaillere .lb-signal-type[data-type*="retard"].is-selected,
body.monde-betaillere .lb-signal-type[data-signal*="retard"].is-selected{
  border-color:rgba(255,159,28,1) !important;
  box-shadow:0 0 16px rgba(255,122,0,.72), inset 0 0 0 1px rgba(255,220,120,.25) !important;
}
body.monde-betaillere .lb-signal-type[data-type*="supp"].is-selected,
body.monde-betaillere .lb-signal-type[data-signal*="supp"].is-selected{
  border-color:rgba(255,45,61,1) !important;
  box-shadow:0 0 18px rgba(255,0,55,.76), inset 0 0 0 1px rgba(255,150,160,.25) !important;
}

/* Petites icônes d'alerte plus visibles */
body.monde-betaillere .disruption-icon,
body.monde-betaillere .train-alert-icon,
body.monde-betaillere .icon-blink{
  color:#ffe65c !important;
  text-shadow:0 0 8px rgba(255,230,92,.9), 0 0 15px rgba(255,126,0,.65) !important;
  filter:drop-shadow(0 0 5px rgba(255,126,0,.75)) !important;
}
body.monde-betaillere .blink-red-icon,
body.monde-betaillere .deleted .train-alert-icon{
  color:#ff3045 !important;
  text-shadow:0 0 9px rgba(255,0,55,.95), 0 0 18px rgba(255,0,55,.68) !important;
  filter:drop-shadow(0 0 6px rgba(255,0,55,.85)) !important;
}

@media (max-width:600px){
  body.monde-betaillere .lb-live-card--delay,
  body.monde-betaillere .lb-live-card:has(.lb-live-status--delay),
  body.monde-betaillere .lb-live-card:has(.lb-live-sncf-cause){
    box-shadow:0 0 0 1px rgba(255,195,80,.38) inset, 0 0 12px rgba(255,126,0,.54) !important;
  }
  body.monde-betaillere .lb-live-card--cancel,
  body.monde-betaillere .lb-live-card:has(.lb-live-status--cancel),
  body.monde-betaillere .lb-live-card:has(.lb-stop-chip--suppression){
    box-shadow:0 0 0 1px rgba(255,120,130,.46) inset, 0 0 15px rgba(255,0,55,.62) !important;
  }
}

/* ===== Source historique : lb-v23-betaillere-prefs-compte-stats ===== */
/* =========================================================
   V23 — Thème Bétaillère étendu : préférences / compte / stats
   Scope strict: uniquement quand body.monde-betaillere est actif.
   ========================================================= */
body.monde-betaillere{
  --farm-cream:#f7e6b4;
  --farm-cream-2:#fff3c9;
  --farm-gold:#e9bd52;
  --farm-brown:#7a421f;
  --farm-brown-2:#3a210f;
  --farm-green:#173d17;
  --farm-green-2:#091b0b;
  --farm-border:rgba(220,174,84,.72);
  --farm-border-soft:rgba(220,174,84,.34);
  --farm-shadow:rgba(0,0,0,.38);
  --farm-blue-kill:#f7e6b4;
}

/* ---------- Gabarit général des panneaux hors accueil ---------- */
body.monde-betaillere .command-console,
body.monde-betaillere .console-section,
body.monde-betaillere .selection-modal__panel,
body.monde-betaillere #lbPrefsModal .lb-auth-card,
body.monde-betaillere #lbAuthModal .lb-auth-card,
body.monde-betaillere .stats-shell,
body.monde-betaillere .media-section,
body.monde-betaillere .fav-widget{
  background:
    radial-gradient(circle at 14% 0%, rgba(255,222,126,.10), transparent 34%),
    linear-gradient(180deg, rgba(30,70,24,.94), rgba(8,24,10,.985)) !important;
  border-color:var(--farm-border-soft) !important;
  box-shadow:
    inset 0 0 0 1px rgba(255,226,150,.07),
    inset 0 0 24px rgba(124,85,30,.18),
    0 12px 28px var(--farm-shadow) !important;
  color:var(--farm-cream) !important;
}

body.monde-betaillere .console-section .section-content,
body.monde-betaillere .selection-modal__body,
body.monde-betaillere #lbPrefsModal .lb-prefs-section,
body.monde-betaillere #lbAuthModal .lb-profile-card,
body.monde-betaillere #lbAuthModal .lb-account-box,
body.monde-betaillere .stats-card,
body.monde-betaillere .stats-listbox,
body.monde-betaillere .stats-table,
body.monde-betaillere .stats-express-card,
body.monde-betaillere .stats-trend,
body.monde-betaillere .stats-trend-fact,
body.monde-betaillere .stats-kpi{
  background:
    radial-gradient(circle at 18% 0%, rgba(255,205,110,.10), transparent 38%),
    linear-gradient(180deg, rgba(20,52,18,.92), rgba(7,20,8,.96)) !important;
  border:1px solid rgba(208,164,72,.38) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,240,190,.08),
    0 6px 18px rgba(0,0,0,.22) !important;
  color:var(--farm-cream) !important;
}

/* Titres : bois/brun, plus de Tron bleu */
body.monde-betaillere .console-header,
body.monde-betaillere .console-section > summary,
body.monde-betaillere .selection-modal__header h2,
body.monde-betaillere #lbPrefsModal #lbPrefsTitle,
body.monde-betaillere #lbAuthModal .lb-auth-card h3,
body.monde-betaillere #lbAuthModal .lb-profile-title,
body.monde-betaillere .stats-header h2,
body.monde-betaillere .stats-express-card .head h3,
body.monde-betaillere .stats-card .title,
body.monde-betaillere .stats-listbox .name,
body.monde-betaillere .lb-prefs-section-title{
  color:var(--farm-cream-2) !important;
  text-shadow:0 1px 0 rgba(0,0,0,.7), 0 0 8px rgba(255,193,80,.28) !important;
  background:linear-gradient(180deg, rgba(126,72,31,.96), rgba(83,45,18,.98)) !important;
  border:1px solid rgba(231,179,84,.48) !important;
  border-radius:999px !important;
  padding:6px 12px !important;
  box-shadow:inset 0 1px 0 rgba(255,231,175,.12), 0 2px 9px rgba(0,0,0,.28) !important;
  line-height:1.15 !important;
}

/* Sous-textes et libellés */
body.monde-betaillere .selection-modal__subtitle,
body.monde-betaillere .lb-prefs-note,
body.monde-betaillere #lbPrefsModal .lb-prefs-section small,
body.monde-betaillere #lbAuthModal .lb-auth-msg,
body.monde-betaillere .stats-header p,
body.monde-betaillere .stats-card .meta,
body.monde-betaillere .stats-listbox .count,
body.monde-betaillere .stats-mini,
body.monde-betaillere .stats-express-card .meta,
body.monde-betaillere .stats-trend-text .sub,
body.monde-betaillere .stats-trend-fact .s{
  color:#d8c894 !important;
  text-shadow:none !important;
}

/* Inputs/selects : supprimer le bleu Tron restant */
body.monde-betaillere input,
body.monde-betaillere select,
body.monde-betaillere textarea,
body.monde-betaillere .stats-input,
body.monde-betaillere .stats-select,
body.monde-betaillere #lbPrefsModal input,
body.monde-betaillere #lbPrefsModal select,
body.monde-betaillere #lbAuthModal input,
body.monde-betaillere #lbAuthModal select{
  background:linear-gradient(180deg, rgba(25,39,11,.95), rgba(8,17,7,.98)) !important;
  color:var(--farm-cream-2) !important;
  border:1px solid rgba(211,174,72,.54) !important;
  box-shadow:inset 0 0 10px rgba(0,0,0,.42), 0 0 8px rgba(218,174,72,.12) !important;
  text-shadow:none !important;
}
body.monde-betaillere input::placeholder,
body.monde-betaillere textarea::placeholder{
  color:rgba(241,221,166,.62) !important;
}

/* Boutons communs */
body.monde-betaillere button:not(.bottom-nav__item):not(.top-bar__iconbtn):not(.tron-close-button):not(.selection-modal__close):not(.lb-auth-close),
body.monde-betaillere .btn,
body.monde-betaillere .mini-btn,
body.monde-betaillere .stats-button,
body.monde-betaillere #lbAuthModal .auth-button,
body.monde-betaillere #lbPrefsModal .auth-button{
  background:linear-gradient(180deg, rgba(96,125,30,.96), rgba(44,75,16,.98)) !important;
  color:var(--farm-cream-2) !important;
  border:1px solid rgba(227,187,82,.58) !important;
  box-shadow:inset 0 1px 0 rgba(255,245,190,.12), 0 0 12px rgba(190,148,48,.26) !important;
  text-shadow:0 1px 0 rgba(0,0,0,.65) !important;
}
body.monde-betaillere button:not(.bottom-nav__item):hover,
body.monde-betaillere .btn:hover,
body.monde-betaillere .mini-btn:hover,
body.monde-betaillere .stats-button:hover{
  border-color:rgba(255,219,116,.92) !important;
  filter:brightness(1.08) !important;
}
body.monde-betaillere #lbBtnLogout,
body.monde-betaillere .delete-button,
body.monde-betaillere #lbAuthModal #lbBtnLogout{
  background:linear-gradient(180deg, rgba(142,78,34,.98), rgba(94,45,17,.98)) !important;
  border-color:rgba(238,167,91,.64) !important;
}

/* ---------- Sélection des bétaillères : chips plus lisibles et compactes ---------- */
body.monde-betaillere #selectionChips{
  grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
  gap:6px !important;
  padding:6px !important;
  overflow:hidden !important;
}
body.monde-betaillere #selectionChips .chip-tag,
body.monde-betaillere .selection-flyout-chips .chip-tag{
  min-width:0 !important;
  max-width:100% !important;
  padding:5px 7px !important;
  min-height:25px !important;
  border-radius:9px !important;
  justify-content:center !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  background:linear-gradient(180deg, rgba(27,91,70,.88), rgba(9,45,36,.96)) !important;
  color:#eff0c5 !important;
  border-color:rgba(103,218,170,.52) !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08), 0 0 8px rgba(30,190,130,.18) !important;
  font-size:.68rem !important;
  line-height:1 !important;
}
body.monde-betaillere #selectionChips .chip-tag .t-num,
body.monde-betaillere .selection-flyout-chips .chip-tag .t-num{
  display:block !important;
  min-width:0 !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  max-width:100% !important;
  font-size:.68rem !important;
}
body.monde-betaillere #selectionBlock .selection-manual-card,
body.monde-betaillere .lb-prefs-build,
body.monde-betaillere .lb-prefs-utility{
  background:linear-gradient(180deg, rgba(38,63,17,.86), rgba(11,29,9,.96)) !important;
  border-color:rgba(211,174,72,.38) !important;
  box-shadow:inset 0 0 16px rgba(107,75,25,.18) !important;
}
body.monde-betaillere #selectionBlock .selection-manual-card__title,
body.monde-betaillere #selectionBlock .compact-fields__title,
body.monde-betaillere #selectionBlock .compact-presets__title{
  color:#f2d98d !important;
  text-shadow:0 1px 0 rgba(0,0,0,.7), 0 0 6px rgba(255,188,80,.25) !important;
}

/* ---------- Mon compte : plus brun/ferme ---------- */
body.monde-betaillere #lbAuthModal .lb-profile-card{
  background:
    radial-gradient(circle at top, rgba(146,95,42,.24), transparent 44%),
    linear-gradient(180deg, rgba(32,72,18,.96), rgba(12,30,8,.98)) !important;
  border-color:rgba(209,157,70,.55) !important;
}
body.monde-betaillere #lbAuthModal .lb-grade-inline{
  background:linear-gradient(180deg, rgba(34,62,17,.94), rgba(9,24,8,.98)) !important;
  border-color:rgba(202,160,74,.42) !important;
  box-shadow:inset 0 0 18px rgba(0,0,0,.22), 0 0 12px rgba(185,139,47,.15) !important;
}
body.monde-betaillere #lbAuthModal .lb-grade-inline .lb-grade-name,
body.monde-betaillere #lbAuthModal .lb-grade-inline .lb-grade-pseudo,
body.monde-betaillere #lbAuthModal .lb-grade-inline .lb-grade-points{
  color:#f4d982 !important;
  text-shadow:0 1px 0 #000, 0 0 7px rgba(255,190,70,.32) !important;
}
body.monde-betaillere #lbAuthModal .lb-profile-chip--rank,
body.monde-betaillere #lbAuthModal .lb-grade-rank-badge{
  background:linear-gradient(180deg, rgba(126,72,31,.95), rgba(69,37,14,.98)) !important;
  color:#fff1bf !important;
  border-color:rgba(230,174,80,.70) !important;
  box-shadow:0 0 14px rgba(195,126,42,.28), inset 0 1px 0 rgba(255,235,190,.14) !important;
}
body.monde-betaillere #lbAuthModal .lb-grade-progress-track{
  background:rgba(36,29,10,.88) !important;
  border-color:rgba(216,170,74,.42) !important;
}
body.monde-betaillere #lbAuthModal .lb-grade-progress-fill{
  background:linear-gradient(90deg, #87c842, #e4c65a, #a86932) !important;
  box-shadow:0 0 12px rgba(226,195,80,.5) !important;
}

/* ---------- Mes préférences : cartes brunes et champs courts ---------- */
body.monde-betaillere #lbPrefsModal .lb-prefs-grid{
  gap:10px !important;
}
body.monde-betaillere #lbPrefsModal .lb-prefs-section{
  border-radius:14px !important;
}
body.monde-betaillere #lbPrefsModal .lb-prefs-section label{
  color:#f0d991 !important;
  text-shadow:0 1px 0 rgba(0,0,0,.65) !important;
}
body.monde-betaillere #lbPrefsModal .lb-prefs-section input{
  font-size:.82rem !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
body.monde-betaillere #lbPrefsModal .lb-prefs-add,
body.monde-betaillere #lbPrefsModal .lb-prefs-reset{
  background:linear-gradient(180deg, rgba(99,126,33,.96), rgba(42,73,16,.98)) !important;
  color:#fff0bb !important;
}

/* ---------- Stats : virer le bleu des cartes et garder les couleurs statut lisibles ---------- */
body.monde-betaillere .stats-express-canvas,
body.monde-betaillere .stats-canvas{
  background:linear-gradient(180deg, rgba(9,25,10,.9), rgba(4,12,5,.96)) !important;
  border-color:rgba(210,166,72,.34) !important;
}
body.monde-betaillere .stats-range button,
body.monde-betaillere .stats-tabbtn,
body.monde-betaillere .stats-pill{
  background:linear-gradient(180deg, rgba(28,68,22,.92), rgba(9,26,9,.98)) !important;
  color:#f5e3a8 !important;
  border-color:rgba(209,166,72,.38) !important;
}
body.monde-betaillere .stats-range button.active,
body.monde-betaillere .stats-tabbtn.active{
  background:linear-gradient(180deg, rgba(120,74,28,.96), rgba(75,42,17,.98)) !important;
  color:#fff4c7 !important;
  border-color:rgba(241,190,82,.78) !important;
  box-shadow:0 0 16px rgba(218,149,44,.36), inset 0 1px 0 rgba(255,238,190,.15) !important;
}
body.monde-betaillere .stats-trend.is-up .stats-trend-delta .v,
body.monde-betaillere .stats-trend.is-up .stats-trend-text .state{
  color:#55ff91 !important;
  text-shadow:0 0 10px rgba(52,255,123,.45) !important;
}
body.monde-betaillere .stats-trend.is-down .stats-trend-delta .v,
body.monde-betaillere .stats-trend.is-down .stats-trend-text .state{
  color:#ff4f5f !important;
  text-shadow:0 0 10px rgba(255,0,55,.55) !important;
}
body.monde-betaillere .stats-express-legend{
  color:#f1ddb0 !important;
}

/* ---------- Couleurs perturbations encore plus pétantes partout ---------- */
body.monde-betaillere .lb-live-card--delay,
body.monde-betaillere .lb-live-card:has(.lb-live-status--delay),
body.monde-betaillere .lb-live-card:has(.lb-live-sncf-cause),
body.monde-betaillere .traffic-split-row:has(.traffic-pill--orange),
body.monde-betaillere .traffic-split-row:has(.traffic-pill--yellow),
body.monde-betaillere .stats-listbox:has(#statsL59),
body.monde-betaillere .stats-listbox:has(#statsL1019),
body.monde-betaillere .stats-listbox:has(#statsL2039),
body.monde-betaillere .stats-listbox:has(#statsLge40){
  border-color:rgba(255,146,20,1) !important;
  box-shadow:0 0 0 1px rgba(255,188,67,.42) inset, 0 0 18px rgba(255,126,0,.62) !important;
}
body.monde-betaillere .lb-live-card--cancel,
body.monde-betaillere .lb-live-card:has(.lb-live-status--cancel),
body.monde-betaillere .traffic-split-row:has(.traffic-pill--red),
body.monde-betaillere .stats-listbox:has(#statsLcancel),
body.monde-betaillere .stats-listbox:has(#statsLpartial){
  border-color:rgba(255,35,55,1) !important;
  box-shadow:0 0 0 1px rgba(255,90,105,.5) inset, 0 0 20px rgba(255,0,55,.72) !important;
}
body.monde-betaillere .lb-live-status--delay,
body.monde-betaillere .traffic-pill--orange,
body.monde-betaillere .traffic-pill--yellow{
  background:linear-gradient(180deg, #ffcf44, #ff8300) !important;
  color:#2b1200 !important;
  border-color:#ffd66a !important;
  box-shadow:0 0 13px rgba(255,126,0,.82) !important;
}
body.monde-betaillere .lb-live-status--cancel,
body.monde-betaillere .traffic-pill--red{
  background:linear-gradient(180deg, #ff6170, #ff1235) !important;
  color:#fff !important;
  border-color:#ff8793 !important;
  box-shadow:0 0 15px rgba(255,0,55,.9) !important;
}

@media (max-width:600px){
  body.monde-betaillere #selectionChips{ grid-template-columns:repeat(3, minmax(0,1fr)) !important; }
  body.monde-betaillere #selectionChips .chip-tag,
  body.monde-betaillere #selectionChips .chip-tag .t-num{ font-size:.64rem !important; }
  body.monde-betaillere .console-header,
  body.monde-betaillere .selection-modal__header h2,
  body.monde-betaillere #lbPrefsModal #lbPrefsTitle,
  body.monde-betaillere #lbAuthModal .lb-auth-card h3,
  body.monde-betaillere .stats-header h2{
    font-size:.96rem !important;
  }
}

/* ===== Source historique : lb-v24-betaillere-final-tuning ===== */
/* Patch 100% scopé : ne touche pas le mode Tron normal */
body.monde-betaillere{
  --farm-title-bg: linear-gradient(180deg, rgba(129,76,33,.98), rgba(82,45,19,.99));
  --farm-title-border: rgba(236,184,90,.68);
  --farm-title-text: #ffe8a8;
  --farm-green-bg: linear-gradient(180deg, rgba(42,82,21,.96), rgba(12,34,10,.99));
  --farm-panel-bg: radial-gradient(circle at 14% 0%, rgba(255,210,112,.11), transparent 38%), linear-gradient(180deg, rgba(22,61,17,.96), rgba(6,22,7,.99));
  --farm-border: rgba(198,164,72,.52);
}

/* ACCUEIL — titres enfants : même hauteur, plus lisibles, pas de débordement */
body.monde-betaillere #home .home-card h2,
body.monde-betaillere #home .live-wall-title{
  min-height: 26px !important;
  height: auto !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding: 4px 12px !important;
  margin: 0 auto 10px !important;
  max-width: calc(100% - 10px) !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  border-radius:999px !important;
  background: var(--farm-title-bg) !important;
  border:1px solid var(--farm-title-border) !important;
  color:var(--farm-title-text) !important;
  text-shadow:0 1px 0 rgba(0,0,0,.75), 0 0 8px rgba(255,200,95,.30) !important;
  box-shadow: inset 0 1px 0 rgba(255,235,185,.14), 0 2px 10px rgba(0,0,0,.30) !important;
  font-size: clamp(.69rem, 2.5vw, .83rem) !important;
  line-height: 1.05 !important;
  letter-spacing: 0 !important;
}

/* Supprime vraiment l'emoji préfixe des titres d'accueil si le texte l'a gardé */
body.monde-betaillere #home .home-card h2 .section-icon,
body.monde-betaillere #home .home-card h2 .emoji,
body.monde-betaillere #home .live-wall-title .section-icon,
body.monde-betaillere #home .live-wall-title .emoji{
  display:none !important;
}

/* Titre très long : autorise 2 lignes seulement sur la carte Info trafic */
body.monde-betaillere #home .home-card[aria-label="Info trafic"] h2{
  white-space:normal !important;
  min-height:30px !important;
  max-height:34px !important;
  padding-top:3px !important;
  padding-bottom:3px !important;
  font-size: clamp(.60rem, 2.25vw, .74rem) !important;
  line-height:1.05 !important;
}

/* Tableau rapide : rentre proprement dans la colonne */
body.monde-betaillere #home .home-card[aria-label="Tableau rapide"] h2{
  font-size: clamp(.60rem, 2.15vw, .74rem) !important;
  padding-left:8px !important;
  padding-right:8px !important;
}

/* La Voix du Bétail : empêche le chevauchement avec FAQ */
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-head{
  display:grid !important;
  grid-template-columns: minmax(0,1fr) auto !important;
  align-items:center !important;
  gap:6px !important;
  margin-bottom:8px !important;
}
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .live-wall-title{
  width:100% !important;
  max-width:100% !important;
  margin:0 !important;
  padding-left:10px !important;
  padding-right:10px !important;
}
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .faq-btn{
  position:static !important;
  transform:none !important;
  height:24px !important;
  min-height:24px !important;
  padding:3px 8px !important;
  font-size:.58rem !important;
  border-color:rgba(221,177,80,.70) !important;
  background:linear-gradient(180deg, rgba(66,92,28,.98), rgba(30,56,14,.99)) !important;
  color:#ffe7a5 !important;
  box-shadow:0 0 8px rgba(190,150,50,.28), inset 0 1px 0 rgba(255,240,180,.11) !important;
}
body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .faq-btn::before{
  border-color:rgba(255,222,130,.65) !important;
  color:#ffe8a8 !important;
  box-shadow:none !important;
}

/* Pastilles favorites : le badge ne doit plus être tronqué */
body.monde-betaillere #home .home-fav-pill,
body.monde-betaillere #home .fav-state-badge{
  max-width: 58px !important;
  min-width: 42px !important;
  padding:3px 5px !important;
  font-size:.48rem !important;
  letter-spacing:0 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:clip !important;
  border-color:rgba(207,175,86,.68) !important;
  box-shadow:0 0 8px rgba(205,160,48,.26) !important;
}
body.monde-betaillere #home .home-fav-head{
  grid-template-columns:minmax(0, 1fr) auto !important;
  gap:5px !important;
}
body.monde-betaillere #home .home-fav-train,
body.monde-betaillere #home .home-fav-route,
body.monde-betaillere #home .home-fav-time{
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

/* Barre partager une info rapide : style ferme, pas Tron */
body.monde-betaillere #home .live-wall-form input,
body.monde-betaillere #home .live-wall-form textarea,
body.monde-betaillere #home input[placeholder*="info rapide" i]{
  background:linear-gradient(180deg, rgba(28,40,14,.96), rgba(9,20,8,.99)) !important;
  border:1px solid rgba(202,164,72,.50) !important;
  color:#f8e8b6 !important;
  border-radius:12px !important;
  box-shadow:inset 0 0 10px rgba(0,0,0,.45), 0 0 8px rgba(183,139,45,.13) !important;
}
body.monde-betaillere #home .live-wall-form input::placeholder,
body.monde-betaillere #home .live-wall-form textarea::placeholder{
  color:rgba(246,221,160,.66) !important;
}

/* MON COMPTE — boutons Mes préférences / Classement en mode Bétaillère */
body.monde-betaillere #lbAuthModal .lb-auth-actions #lbBtnPrefs,
body.monde-betaillere #lbAuthModal .lb-auth-actions #lbBtnRanking,
body.monde-betaillere #lbAuthModal .lb-auth-actions .auth-button--ghost{
  background:linear-gradient(180deg, rgba(109,73,34,.98), rgba(62,37,17,.99)) !important;
  border:1px solid rgba(231,180,86,.70) !important;
  color:#ffe9ad !important;
  border-radius:14px !important;
  box-shadow:inset 0 1px 0 rgba(255,236,190,.13), 0 0 13px rgba(186,126,43,.28) !important;
  text-shadow:0 1px 0 rgba(0,0,0,.75), 0 0 6px rgba(255,200,90,.20) !important;
}
body.monde-betaillere #lbAuthModal .lb-auth-actions #lbBtnPrefs:hover,
body.monde-betaillere #lbAuthModal .lb-auth-actions #lbBtnRanking:hover{
  filter:brightness(1.10) !important;
  border-color:rgba(255,216,120,.95) !important;
}

/* MON COMPTE — liens bas de carte moins cyan */
body.monde-betaillere #lbAuthModal a,
body.monde-betaillere #lbAuthModal .lb-link{
  color:#e9c77f !important;
  text-shadow:none !important;
  text-decoration-color:rgba(233,199,127,.55) !important;
}

/* Sélection / console : les anciennes zones bleues deviennent ferme */
body.monde-betaillere .console-section,
body.monde-betaillere .selection-modal__panel,
body.monde-betaillere #selectionBlock,
body.monde-betaillere .selection-manual-card,
body.monde-betaillere .compact-presets,
body.monde-betaillere .search-card,
body.monde-betaillere .station-stack{
  background:var(--farm-panel-bg) !important;
  border-color:var(--farm-border) !important;
  box-shadow:inset 0 1px 0 rgba(255,235,180,.08), 0 10px 24px rgba(0,0,0,.30) !important;
}

/* Couleurs perturbations : applique les mêmes codes à tous les onglets et éléments */
body.monde-betaillere :is(.traffic-pill--orange,.traffic-pill--yellow,.lb-live-status--delay,.lb-stop-chip--retard,.disruption-box.orange,.retard,.lb-orange){
  background:linear-gradient(180deg,#ffd35a,#ff8a00) !important;
  color:#351500 !important;
  border-color:#ffe086 !important;
  text-shadow:none !important;
  box-shadow:0 0 14px rgba(255,133,0,.85), inset 0 1px 0 rgba(255,255,255,.32) !important;
}
body.monde-betaillere :is(.traffic-pill--red,.lb-live-status--cancel,.lb-stop-chip--suppression,.disruption-box.red,.supprimé,.deleted,.new-end,.lb-red){
  background:linear-gradient(180deg,#ff6b78,#ff1436) !important;
  color:#fff !important;
  border-color:#ff9aa4 !important;
  text-shadow:0 1px 0 rgba(0,0,0,.45) !important;
  box-shadow:0 0 16px rgba(255,0,55,.88), inset 0 1px 0 rgba(255,255,255,.22) !important;
}
body.monde-betaillere :is(.lb-live-card--delay,.lb-live-card:has(.lb-live-status--delay),.lb-live-card:has(.lb-live-sncf-cause),.traffic-split-row:has(.traffic-pill--orange),.traffic-split-row:has(.traffic-pill--yellow),.disruption-box.orange){
  border-color:#ff9500 !important;
  box-shadow:0 0 0 1px rgba(255,196,70,.45) inset, 0 0 18px rgba(255,132,0,.60) !important;
}
body.monde-betaillere :is(.lb-live-card--cancel,.lb-live-card:has(.lb-live-status--cancel),.traffic-split-row:has(.traffic-pill--red),.disruption-box.red){
  border-color:#ff1739 !important;
  box-shadow:0 0 0 1px rgba(255,90,105,.55) inset, 0 0 20px rgba(255,0,55,.72) !important;
}

@media (max-width:600px){
  body.monde-betaillere #home .home-card h2,
  body.monde-betaillere #home .live-wall-title{
    min-height:24px !important;
    font-size:.66rem !important;
    padding:4px 8px !important;
  }
  body.monde-betaillere #home .home-card[aria-label="Info trafic"] h2{
    font-size:.56rem !important;
    min-height:30px !important;
  }
  body.monde-betaillere #home .home-card[aria-label="Tableau rapide"] h2{
    font-size:.56rem !important;
  }
  body.monde-betaillere #home .home-card[aria-label="Mur de commentaires"] .faq-btn{
    min-width:34px !important;
    padding:2px 6px !important;
  }
}

/* ===== Source historique : lb-v36-home-stable-no-animation ===== */
/* Accueil uniquement : plus de scintillement visuel, dans les deux modes */
body.page-home #home,
body.page-home #home *,
body.page-home #home *::before,
body.page-home #home *::after{
  animation: none !important;
  transition: none !important;
  scroll-behavior: auto !important;
}

/* Les classes ajoutées par le script premium ne doivent plus déclencher de pulse */
body.page-home #home [data-home-animated],
body.page-home #home .is-updating,
body.page-home #home .is-state-changed,
body.page-home #home .is-severity-up{
  animation: none !important;
  transition: none !important;
  transform: none !important;
  filter: none !important;
}

/* Suppression des effets scanner/voile qui donnaient un clignotement sur Info trafic et les conteneurs */
body.page-home #home .home-card::before,
body.page-home #home .home-card::after,
body.page-home #home .home-traffic-card::before,
body.page-home #home .home-traffic-card::after,
body.page-home #home .home-card[aria-label="Info trafic"]::before,
body.page-home #home .home-card[aria-label="Info trafic"]::after,
body.page-home #home .traffic-split-row::before,
body.page-home #home .traffic-split-row::after,
body.page-home #home .home-fav-row::before,
body.page-home #home .home-fav-row::after,
body.page-home #home .home-quick-presets::before,
body.page-home #home .home-quick-presets::after,
body.page-home #home .ber-context::before,
body.page-home #home .ber-context::after,
body.page-home #home .live-wall-item::before,
body.page-home #home .live-wall-item::after{
  animation: none !important;
  transition: none !important;
}

/* En mode Bétaillère : on garde le style ferme, mais sans voile mouvant ni effet de fond dynamique sur l'accueil */
body.page-home.monde-betaillere #home .home-card::after,
body.page-home.monde-betaillere #home .command-console::after,
body.page-home.monde-betaillere #home .lb-community-panel::after{
  content: none !important;
  display: none !important;
}

/* Badges trafic et favoris : état stable, pas de grossissement ni surbrillance temporaire */
body.page-home #home .traffic-pill,
body.page-home #home .home-fav-pill,
body.page-home #home .fav-state-badge,
body.page-home #home .live-wall-badge,
body.page-home #home .home-quick-presets__btn{
  animation: none !important;
  transition: none !important;
  transform: none !important;
}

/* Neutralise le hover zoom sur accueil pour éviter les flashs sur mobile/navigateur Samsung */
body.page-home #home .home-card:hover,
body.page-home #home .home-fav-row:hover,
body.page-home #home .traffic-split-row:hover,
body.page-home #home .home-action:hover,
body.page-home #home button:hover{
  transform: none !important;
}

/* ===== Source historique : lb-v46-fix-horaires-supprimes-betail ===== */
/* =========================================================
   V46 — FIX Tableau mode Bétaillère
   Problème: le thème ferme appliquait le style "badge rouge"
   directement aux spans .deleted du tableau. Résultat: gros pavés
   rouges à la place des horaires supprimés.
   Ici on limite la correction au #trainInfo en mode Bétaillère:
   les horaires supprimés redeviennent du texte rouge barré, lisible,
   comme en mode normal. Le reste du thème reste inchangé.
   ========================================================= */
body.monde-betaillere #trainInfo :is(.deleted,.blink-red,.new-end){
  display:inline !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  border:0 !important;
  border-radius:0 !important;
  padding:0 !important;
  margin:0 !important;
  color:#ff3045 !important;
  text-decoration:line-through !important;
  text-decoration-thickness:2px !important;
  text-decoration-color:#ff3045 !important;
  text-shadow:0 0 8px rgba(255,0,55,.82), 0 0 14px rgba(255,0,55,.42) !important;
  font-weight:900 !important;
  animation:none !important;
  opacity:1 !important;
}

body.monde-betaillere #trainInfo td:has(.deleted),
body.monde-betaillere #trainInfo td:has(.blink-red),
body.monde-betaillere #trainInfo td:has(.new-end){
  background:linear-gradient(180deg, rgba(255,0,55,.14), rgba(255,0,55,.045)) !important;
  box-shadow:inset 0 0 0 1px rgba(255,45,61,.34), inset 0 0 10px rgba(255,0,55,.16) !important;
}

/* Si une voie est ajoutée dans une case supprimée, elle reste propre et ne se barre pas. */
body.monde-betaillere #trainInfo :is(.deleted,.blink-red,.new-end) .voie-badge{
  text-decoration:none !important;
  color:#ffe2a3 !important;
  border-color:rgba(233,189,82,.72) !important;
  background:rgba(60,34,15,.55) !important;
  box-shadow:0 0 6px rgba(233,189,82,.22) inset !important;
}

/* ===== Source historique : lb-v47-fix-nouveau-terminus-betail ===== */
/* V47 — en mode Bétaillère, la nouvelle gare de départ/arrivée reste bleue.
   Ex: suppression partielle 88501, Thionville 07:28 doit ressortir comme nouveau terminus. */
body.monde-betaillere #trainInfo .new-start{
  display:inline !important;
  color:#39a8ff !important;
  text-decoration:none !important;
  text-shadow:0 0 8px rgba(57,168,255,.85), 0 0 15px rgba(57,168,255,.48) !important;
  font-weight:900 !important;
  background:transparent !important;
  box-shadow:none !important;
  border:0 !important;
  padding:0 !important;
}
body.monde-betaillere #trainInfo td:has(.new-start){
  background:linear-gradient(180deg, rgba(57,168,255,.16), rgba(57,168,255,.045)) !important;
  box-shadow:inset 0 0 0 1px rgba(57,168,255,.35), inset 0 0 10px rgba(57,168,255,.16) !important;
}

/* ===== Source historique : lb-fix-terminal-arrival-newstart-v63 ===== */
/* FIX V63 — suppression partielle SNCF avec arrivée conservée + départ supprimé.
   Exemple 88501 à Thionville : afficher l'arrivée 07:27 comme nouveau terminus,
   avec le style bleu normal .new-start, et empêcher les styles "deleted/new-end" de l'écraser. */
#trainInfo .terminal-arrival-cell,
#trainInfo td[data-terminal-arrival="1"]{
  background:transparent !important;
  box-shadow:none !important;
}

#trainInfo .terminal-arrival-cell .new-start,
#trainInfo td[data-terminal-arrival="1"] .new-start,
#trainInfo .terminal-arrival-time{
  display:inline !important;
  color:#39a8ff !important;
  font-weight:900 !important;
  text-decoration:none !important;
  animation:none !important;
  opacity:1 !important;
  text-shadow:0 0 8px rgba(57,168,255,.72), 0 0 14px rgba(57,168,255,.34) !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}

/* Même en mode Bétaillère : ce cas reste une nouvelle arrivée, pas une cellule supprimée. */
body.monde-betaillere #trainInfo .terminal-arrival-cell,
body.monde-betaillere #trainInfo td[data-terminal-arrival="1"]{
  background:linear-gradient(180deg, rgba(57,168,255,.16), rgba(57,168,255,.045)) !important;
  box-shadow:inset 0 0 0 1px rgba(57,168,255,.35), inset 0 0 10px rgba(57,168,255,.16) !important;
}

body.monde-betaillere #trainInfo .terminal-arrival-cell .new-start,
body.monde-betaillere #trainInfo td[data-terminal-arrival="1"] .new-start,
body.monde-betaillere #trainInfo .terminal-arrival-time{
  color:#39a8ff !important;
  text-decoration:none !important;
  animation:none !important;
  opacity:1 !important;
}

/* ===== Source historique : lb-hard-fix-newstart-blue-normal-v64 ===== */
/* HARD FIX V64 : en mode normal aussi, la nouvelle gare de départ/arrivée doit être le TEXTE BLEU de la légende, sans carré. */
#trainInfo .new-start,
#trainInfo .terminal-arrival-time,
#trainInfo td[data-terminal-arrival="1"] .new-start{
  color:#39a8ff !important;
  font-weight:900 !important;
  text-decoration:none !important;
  animation:none !important;
  opacity:1 !important;
  text-shadow:0 0 8px rgba(57,168,255,.72), 0 0 14px rgba(57,168,255,.34) !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
}
#trainInfo td.terminal-arrival-cell,
#trainInfo td[data-terminal-arrival="1"]{
  background:transparent !important;
  box-shadow:none !important;
  outline:0 !important;
  border-left:0 !important;
  border-right:0 !important;
}
body.monde-betaillere #trainInfo td.terminal-arrival-cell,
body.monde-betaillere #trainInfo td[data-terminal-arrival="1"]{
  background:linear-gradient(180deg, rgba(57,168,255,.16), rgba(57,168,255,.045)) !important;
  box-shadow:inset 0 0 0 1px rgba(57,168,255,.35), inset 0 0 10px rgba(57,168,255,.16) !important;
}

/* Verrou final: en mode normal comme en mode Bétaillère, une cellule terminal-arrival reste bleu texte. */
#trainInfo td[data-terminal-arrival="1"],
#trainInfo td.terminal-arrival-cell{
  color:#39a8ff !important;
}
#trainInfo td[data-terminal-arrival="1"] *,
#trainInfo td.terminal-arrival-cell *,
#trainInfo td[data-terminal-start="1"] *,
#trainInfo td.terminal-start-cell *{
  color:#39a8ff !important;
  text-decoration:none !important;
  text-shadow:0 0 8px rgba(57,168,255,.72), 0 0 14px rgba(57,168,255,.34) !important;
}
#trainInfo td[data-terminal-start="1"],
#trainInfo td.terminal-start-cell{
  color:#39a8ff !important;
  background:transparent !important;
}

/* ===== Source historique : lb-train-profile-v1 ===== */
/* =========================================================
   Fiche Bétaillère unifiée — recherche + détail train
   S'appuie uniquement sur les sources déjà utilisées par le site.
   ========================================================= */
#stats > .lb-train-finder{
  display:none !important;
}
.lb-train-finder{
  position:relative;
  overflow:visible;
  margin-bottom:18px;
  padding:18px;
  border:1px solid rgba(0,240,255,.28);
  border-radius:18px;
  background:
    radial-gradient(circle at 82% 0%, rgba(0,240,255,.14), transparent 34%),
    linear-gradient(145deg, rgba(10,35,52,.96), rgba(4,17,29,.98));
  box-shadow:inset 0 0 24px rgba(0,240,255,.07), 0 14px 34px rgba(0,0,0,.26);
}
.lb-train-finder::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:
    linear-gradient(90deg, transparent 0 49.8%, rgba(0,240,255,.035) 50%, transparent 50.2%),
    linear-gradient(rgba(0,240,255,.025) 1px, transparent 1px);
  background-size:100% 100%, 100% 22px;
  opacity:.5;
}
.lb-train-finder > *{ position:relative; z-index:1; }
.lb-train-finder__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:14px;
}
.lb-train-finder__eyebrow,
.lb-train-profile__eyebrow{
  display:block;
  margin-bottom:4px;
  color:#73f7ff;
  font-family:'Orbitron',sans-serif;
  font-size:.65rem;
  font-weight:900;
  letter-spacing:.16em;
}
.lb-train-finder h2{
  margin:0;
  color:#edfdff;
  font-family:'Orbitron',sans-serif;
  font-size:clamp(1.2rem, 2.4vw, 1.65rem);
  letter-spacing:.025em;
  text-transform:uppercase;
  text-shadow:0 0 12px rgba(0,240,255,.25);
}
.lb-train-finder__head p{
  margin:6px 0 0;
  color:#a8d2df;
  font-size:.82rem;
}
.lb-train-finder__live{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:8px 10px;
  border:1px solid rgba(45,236,188,.34);
  border-radius:999px;
  background:rgba(45,236,188,.08);
  color:#7fffd4;
  font-size:.62rem;
  font-weight:900;
  letter-spacing:.1em;
  white-space:nowrap;
}
.lb-train-finder__live i,
.lb-train-profile__source i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:currentColor;
  box-shadow:0 0 10px currentColor;
}
.lb-train-finder__form label{
  display:block;
  margin:0 0 7px;
  color:#91b9c7;
  font-size:.68rem;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
}
.lb-train-finder__row{
  min-height:50px;
  display:grid;
  grid-template-columns:42px minmax(120px,1fr) minmax(132px,168px) minmax(118px,155px);
  overflow:hidden;
  border:1px solid rgba(111,238,255,.36);
  border-radius:12px;
  background:rgba(2,13,23,.86);
  box-shadow:inset 0 0 16px rgba(0,240,255,.05);
}
.lb-train-finder__row > span{
  display:grid;
  place-items:center;
  color:#70f5ff;
  font-size:1.55rem;
}
.lb-train-finder__row input{
  min-width:0;
  border:0;
  border-left:1px solid rgba(0,240,255,.10);
  outline:0;
  background:transparent;
  color:#f3feff;
}
#lbTrainFinderInput{
  padding:0 12px;
  font-family:'Orbitron',sans-serif;
  font-size:1.16rem;
  font-weight:900;
  letter-spacing:.08em;
}
#lbTrainFinderDate{
  padding:0 10px;
  border-left:1px solid rgba(0,240,255,.20);
  color-scheme:dark;
  font-size:.78rem;
}
.lb-train-finder__row button{
  border:0;
  background:linear-gradient(135deg,#79f8ff,#20cfe3);
  color:#03141e;
  font-family:'Orbitron',sans-serif;
  font-size:.68rem;
  font-weight:950;
  letter-spacing:.06em;
}
.lb-train-finder__row button:hover,
.lb-train-finder__row button:focus-visible{
  filter:brightness(1.08);
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.35),0 0 18px rgba(0,240,255,.28);
}
.lb-train-finder__row button:disabled{ opacity:.62; cursor:wait; }
.lb-train-finder__footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:30px;
  padding-top:9px;
}
.lb-train-finder__recent{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  overflow-x:auto;
  scrollbar-width:none;
}
.lb-train-finder__recent::-webkit-scrollbar{ display:none; }
.lb-train-finder__recent::before{
  content:"RÉCENTS";
  color:#688e9c;
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.1em;
}
.lb-train-finder__recent:empty::before{ content:""; }
.lb-train-finder__recent button{
  flex:0 0 auto;
  padding:5px 9px;
  border:1px solid rgba(0,240,255,.14);
  border-radius:999px;
  background:rgba(18,55,72,.62);
  color:#cdebf2;
  font-size:.66rem;
  font-weight:800;
}
.lb-train-finder__recent button:hover{
  border-color:rgba(0,240,255,.55);
  color:#73f7ff;
}
.lb-train-finder__status{
  color:#86aebb;
  font-size:.68rem;
  text-align:right;
}
.lb-train-finder__status.is-error{ color:#ff778d; }
.lb-train-finder__status.is-loading{ color:#ffd166; }
.lb-train-finder__status.is-success{ color:#59efa4; }

body.page-search #trainDetailPanel.lb-train-profile,
body.page-stats #trainDetailPanel.lb-train-profile{
  width:min(980px, calc(100vw - 24px)) !important;
  max-height:calc(100dvh - var(--top-bar-height,64px) - var(--bottom-bar-height,84px) - 28px) !important;
  padding:18px !important;
  border-radius:22px !important;
  scrollbar-color:rgba(0,240,255,.4) rgba(3,14,23,.65);
}
.lb-train-profile{
  color:#eafcff;
  font-family:'Rajdhani',system-ui,sans-serif;
}
.lb-train-profile[aria-busy="true"]{
  cursor:progress;
}
.lb-train-profile__top{
  align-items:center;
  margin-bottom:8px;
}
.lb-train-profile__identity{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.lb-train-profile__ter{
  flex:0 0 auto;
  padding:6px 8px;
  border-radius:3px;
  background:#73f7ff;
  color:#041722;
  font-family:'Orbitron',sans-serif;
  font-size:.64rem;
  font-weight:950;
  box-shadow:0 0 14px rgba(0,240,255,.26);
}
.lb-train-profile__identity h3{
  overflow:hidden;
  margin:0;
  color:#f2feff;
  font-family:'Orbitron',sans-serif;
  font-size:clamp(1.15rem, 3vw, 1.65rem);
  line-height:1.05;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.lb-train-profile__top-actions{
  display:flex;
  align-items:center;
  gap:8px;
}
.lb-train-profile__favorite{
  flex:0 0 30px !important;
  width:30px !important;
  min-width:30px !important;
  height:28px !important;
  min-height:28px !important;
  display:grid;
  place-items:center;
  margin:0 !important;
  padding:0 !important;
  border:1px solid rgba(0,240,255,.24);
  border-radius:7px;
  background:rgba(5,25,38,.82);
  color:#73f7ff;
  font-size:1rem;
  line-height:1;
  box-shadow:0 0 9px rgba(0,240,255,.12);
}
.lb-train-profile__favorite:hover,
.lb-train-profile__favorite:focus-visible{
  border-color:rgba(0,240,255,.52);
  box-shadow:0 0 12px rgba(0,240,255,.2);
}
.lb-train-profile__favorite:disabled{
  opacity:.58;
  cursor:wait;
}
.lb-train-profile__favorite.is-selected{
  border-color:rgba(255,209,102,.62);
  color:#ffd166;
  box-shadow:0 0 11px rgba(255,209,102,.18);
}
.lb-train-profile__source-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 0 10px;
  color:#799eab;
  font-size:.65rem;
  letter-spacing:.05em;
}
.lb-train-profile__source{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#72f7b5;
  font-weight:900;
  letter-spacing:.1em;
}
.lb-train-profile__source.is-loading{ color:#ffd166; }
.lb-train-profile__source.is-upcoming{ color:#7cf7ff; }
.lb-train-profile__source.is-static{ color:#94b8c4; }
.lb-train-profile__source.is-error{ color:#ff778d; }
.lb-train-profile__source.is-arrived{ color:#4ade80; }
.lb-train-profile__hero{
  position:relative;
  overflow:hidden;
  margin-bottom:12px;
  border:1px solid rgba(0,240,255,.22);
  border-radius:16px;
  background:
    radial-gradient(circle at 75% -10%, rgba(0,240,255,.12), transparent 34%),
    linear-gradient(145deg,rgba(9,35,51,.92),rgba(4,18,30,.96));
}
.lb-train-profile__journey{
  display:grid;
  grid-template-columns:minmax(90px,1fr) minmax(120px,1.5fr) minmax(90px,1fr);
  align-items:end;
  gap:18px;
  padding:16px 18px 13px;
}
.lb-train-profile__journey > div:last-child{ text-align:right; }
.lb-train-profile__journey strong{
  display:block;
  min-width:0;
  color:#f2feff;
  font-family:'Orbitron',sans-serif;
  font-size:1.45rem;
  letter-spacing:.025em;
  line-height:1;
  white-space:nowrap;
}
.lb-train-profile__journey strong.is-delay{ color:#ffab52; }
.lb-train-profile__journey strong.is-cancel{
  color:#ff5364;
  text-decoration:line-through;
  text-decoration-thickness:1.5px;
}
.lb-train-profile__hero-planned{
  display:block;
  overflow:hidden;
  margin-bottom:2px;
  color:#5d7d87 !important;
  font-family:'Rajdhani',system-ui,sans-serif;
  font-size:.64rem;
  font-weight:700;
  line-height:1;
  text-decoration-line:line-through;
  text-decoration-color:#5d7d87 !important;
  text-decoration-thickness:1px;
  text-overflow:ellipsis;
}
.lb-train-profile__hero-actual{
  display:block;
  overflow:hidden;
  color:#ff9f43 !important;
  line-height:1;
  text-overflow:ellipsis;
}
.lb-train-profile__journey span{
  display:block;
  overflow:hidden;
  color:#aed5df;
  font-size:.82rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.lb-train-profile__journey-line{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:7px;
  padding-bottom:8px;
}
.lb-train-profile__journey-line i{
  height:1px;
  background:linear-gradient(90deg,#73f7ff,rgba(115,247,255,.18));
}
.lb-train-profile__journey-line i:last-child{
  background:linear-gradient(90deg,rgba(115,247,255,.18),#73f7ff);
}
.lb-train-profile__journey-line small{
  color:#759ba8;
  font-size:.66rem;
  white-space:nowrap;
}
.lb-train-profile__statusbar{
  min-height:42px;
  display:flex;
  align-items:center;
  gap:14px;
  padding:0 18px;
  border-top:1px solid rgba(0,240,255,.13);
  background:rgba(1,12,20,.55);
}
.lb-train-profile__status{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#9bb8c1;
  font-size:.65rem;
  font-weight:950;
  letter-spacing:.08em;
}
.lb-train-profile__status i{
  width:7px;
  height:7px;
  border-radius:50%;
  background:currentColor;
  box-shadow:0 0 9px currentColor;
}
.lb-train-profile__status.is-ok{ color:#4ade80; }
.lb-train-profile__status.is-delay{ color:#ff9f43; }
.lb-train-profile__status.is-cancel{ color:#ff5364; }
.lb-train-profile__status.is-partial{ color:#ff9f43; }
.lb-train-profile__platform{
  padding-left:14px;
  border-left:1px solid rgba(0,240,255,.18);
  color:#b4d4dd;
  font-size:.72rem;
}
.lb-train-profile__statusbar button{
  flex:0 0 30px !important;
  width:30px !important;
  min-width:30px !important;
  height:28px !important;
  min-height:28px !important;
  margin:0 0 0 auto !important;
  padding:0 !important;
  border:1px solid rgba(0,240,255,.2);
  border-radius:7px;
  background:rgba(5,25,38,.52);
  color:#76dbe7;
  font-size:.94rem;
  line-height:1;
  box-shadow:0 0 9px rgba(0,240,255,.1);
}
.lb-train-profile__statusbar button:hover,
.lb-train-profile__statusbar button:focus-visible{
  border-color:rgba(0,240,255,.5);
  background:rgba(7,36,50,.72);
  box-shadow:0 0 12px rgba(0,240,255,.18);
}
.lb-train-profile__statusbar button.is-spinning{ animation:lbTrainProfileSpin .7s linear infinite; }
@keyframes lbTrainProfileSpin{ to{ transform:rotate(360deg); } }
.lb-train-profile__next{
  min-height:26px;
  padding:6px 18px;
  border-top:1px solid rgba(0,240,255,.08);
  color:#83aeb9;
  font-size:.7rem;
}
.lb-train-profile__disruption{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  margin:0 14px 12px;
  padding:10px 12px;
  border:1px solid rgba(255,159,67,.58);
  border-radius:10px;
  background:rgba(255,159,67,.075);
  color:#ffae61;
  box-shadow:inset 0 0 18px rgba(255,159,67,.035);
}
.lb-train-profile__disruption[hidden]{ display:none !important; }
.lb-train-profile__disruption.is-cancel{
  border-color:rgba(255,83,100,.62);
  background:rgba(255,83,100,.08);
  color:#ff7382;
}
.lb-train-profile__disruption.is-partial{
  border-color:rgba(255,159,67,.68);
  background:linear-gradient(90deg,rgba(255,83,100,.075),rgba(255,159,67,.075));
}
.lb-train-profile__disruption-icon{
  padding-top:1px;
  font-size:1rem;
  line-height:1;
}
.lb-train-profile__disruption-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  flex-wrap:wrap;
}
.lb-train-profile__disruption-head strong{
  font-size:.72rem;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.lb-train-profile__disruption-head span{
  flex:0 0 auto;
  color:#7ca5af;
  font-size:.55rem;
  font-weight:700;
  text-transform:uppercase;
}
.lb-train-profile__disruption p{
  margin:4px 0 0;
  color:#ffd0a5;
  font-size:.68rem;
  font-style:italic;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.lb-train-profile__disruption.is-cancel p{ color:#ffc1c8; }
.lb-train-profile__grid{
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr);
  gap:12px;
}
.lb-train-profile__main,
.lb-train-profile__side{
  display:grid;
  align-content:start;
  gap:12px;
  min-width:0;
}
.lb-train-profile__card{
  margin:0 !important;
  padding:15px !important;
  border-radius:15px !important;
  border-color:rgba(0,240,255,.19) !important;
  background:linear-gradient(145deg,rgba(8,31,45,.89),rgba(4,17,29,.94)) !important;
  box-shadow:inset 0 0 18px rgba(0,240,255,.045);
}
.lb-train-profile__card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:11px;
}
.lb-train-profile__card .k{
  display:block;
  margin-bottom:3px;
  color:#70dfe9 !important;
  font-family:'Orbitron',sans-serif;
  font-size:.57rem !important;
  font-weight:900;
  letter-spacing:.12em !important;
}
.lb-train-profile__card .v{
  margin:0 !important;
  color:#effeff !important;
  font-size:.96rem;
  font-weight:800;
}
.lb-train-profile__confidence,
.lb-train-profile__route-mode,
.lb-train-profile__sample{
  flex:0 0 auto;
  padding:5px 7px;
  border:1px solid rgba(90,239,165,.28);
  border-radius:999px;
  background:rgba(90,239,165,.07);
  color:#72f7b5;
  font-size:.53rem;
  font-weight:900;
  letter-spacing:.08em;
}
.lb-train-profile__confidence.is-estimated{
  border-color:rgba(255,209,102,.3);
  background:rgba(255,209,102,.07);
  color:#ffd166;
}
.lb-train-profile__route-mode,
.lb-train-profile__sample{
  border-color:rgba(0,240,255,.2);
  background:rgba(0,240,255,.06);
  color:#8eeef5;
}
.lb-train-profile__composition-card #trainDetailCompo .train-detail-compo-wrap{
  display:flex;
  align-items:center;
  gap:10px;
}
.lb-train-profile__composition-card .lb-compo-inline{
  display:inline-flex;
  align-items:center;
  gap:2px;
}
.lb-train-profile__composition-card .lb-compo-icon{
  width:auto !important;
  height:30px !important;
  max-width:92px;
  object-fit:contain;
}
.lb-train-profile__drawing{
  --car-count:3;
  width:100%;
  min-width:0;
  height:66px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  padding:16px 1px 8px;
  border-bottom:1px solid rgba(0,240,255,.16);
}
.lb-train-profile__drawing.is-loading{
  opacity:.48;
}
.lb-train-profile__drawing.is-unknown{
  align-items:center;
  justify-content:center;
}
.lb-train-profile__drawing-empty{
  color:#719aa7;
  font-size:.67rem;
}
.lb-train-profile__car{
  position:relative;
  min-width:0;
  height:35px;
  flex:1 1 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:clamp(2px,.45vw,6px);
  overflow:hidden;
  border:2px solid #72c8d0;
  border-left:0;
  background:
    linear-gradient(to bottom,
      #e9faf7 0 25%,
      #67b8c3 26% 35%,
      #effaf7 36% 71%,
      #0d3440 72% 100%);
  box-shadow:inset 0 -4px #194955;
}
.lb-train-profile__car:first-child{
  border-left:2px solid #72c8d0;
}
.lb-train-profile__car.is-front{
  border-radius:20px 0 0 7px;
}
.lb-train-profile__car.is-rear{
  border-radius:0 20px 7px 0;
}
.lb-train-profile__car.is-unit-start:not(:first-child){
  border-left:2px solid #72c8d0;
}
.lb-train-profile__car.is-unit-end:not(.is-rear){
  margin-right:clamp(2px,.45vw,5px);
}
.lb-train-profile__car i{
  width:clamp(3px,.7vw,8px);
  height:11px;
  flex:0 1 8px;
  background:#083442;
}
.lb-train-profile__compo-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  padding:10px 0;
  border-bottom:1px solid rgba(0,240,255,.1);
}
.lb-train-profile__compo-stats span{
  min-width:0;
  padding:0 6px;
  border-right:1px solid rgba(0,240,255,.12);
  color:#789faa;
  font-size:.55rem;
  letter-spacing:.045em;
  text-align:center;
}
.lb-train-profile__compo-stats span:last-child{
  border-right:0;
}
.lb-train-profile__compo-stats b{
  display:block;
  overflow:hidden;
  margin-bottom:2px;
  color:#f1feff;
  font-family:'Orbitron',sans-serif;
  font-size:.78rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.lb-train-profile__compo-meta{
  min-height:34px;
  display:flex;
  align-items:center;
  padding:8px 10px;
  border-top:1px solid rgba(0,240,255,.1);
  border-bottom:1px solid rgba(0,240,255,.1);
  color:#8fb6c1;
  font-size:.68rem;
}
.lb-train-profile__crowding{
  display:grid;
  grid-template-columns:minmax(132px,auto) minmax(70px,1fr) 38px;
  align-items:center;
  gap:10px;
  margin-top:11px;
}
.lb-train-profile__crowding span{
  display:block;
  color:#89aeba;
  font-size:.65rem;
}
.lb-train-profile__crowding strong{
  color:#dfedf0;
  font-size:.68rem;
  letter-spacing:.04em;
}
.lb-train-profile__crowding-bar{
  height:7px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(126,160,171,.18);
}
.lb-train-profile__crowding-bar i{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:#43df89;
  box-shadow:0 0 8px currentColor;
  transition:width .28s ease;
}
.lb-train-profile__crowding-bar i.is-green{
  color:#43df89;
  background:#43df89;
}
.lb-train-profile__crowding-bar i.is-yellow{
  color:#ffd166;
  background:#ffd166;
}
.lb-train-profile__crowding-bar i.is-orange{
  color:#ff8a1a;
  background:#ff8a1a;
}
.lb-train-profile__crowding-bar i.is-red{
  color:#ff5364;
  background:#ff5364;
}
.lb-train-profile__crowding-bar i.is-black{
  color:#000;
  background:#000;
  box-shadow:0 0 0 1px rgba(255,255,255,.34),0 0 8px rgba(0,0,0,.9);
}
.lb-train-profile__crowding > b{
  color:#43df89;
  font-size:.72rem;
  text-align:right;
}
.lb-train-profile__crowding > b.is-green{ color:#43df89; }
.lb-train-profile__crowding > b.is-yellow{ color:#ffd166; }
.lb-train-profile__crowding > b.is-orange{ color:#ff8a1a; }
.lb-train-profile__crowding > b.is-red{ color:#ff5364; }
.lb-train-profile__crowding > b.is-black{
  color:#000;
  -webkit-text-stroke:.3px rgba(255,255,255,.62);
  text-shadow:0 0 2px rgba(255,255,255,.5);
}
.lb-train-profile__timeline{
  display:grid;
  gap:0;
}
.lb-train-profile__stop{
  position:relative;
  min-height:53px;
  display:grid;
  grid-template-columns:68px 17px minmax(0,1fr) auto;
  align-items:start;
  gap:7px;
}
.lb-train-profile__stop::after{
  content:"";
  position:absolute;
  top:16px;
  bottom:-2px;
  left:75px;
  width:1px;
  background:rgba(88,192,207,.42);
}
.lb-train-profile__stop:last-child::after{ display:none; }
.lb-train-profile__times{
  display:flex;
  flex-direction:column;
  padding-top:1px;
  font-variant-numeric:tabular-nums;
}
.lb-train-profile__times s{
  color:#5d7d87;
  font-size:.65rem;
}
.lb-train-profile__times b{
  color:#bcebf2;
  font-size:.74rem;
}
.lb-train-profile__stop.is-delay .lb-train-profile__times b{ color:#ff9f43; }
.lb-train-profile__stop.is-cancel .lb-train-profile__times b{
  color:#ff5364;
  text-decoration:line-through;
}
.lb-train-profile__dot{
  z-index:1;
  width:9px;
  height:9px;
  margin-top:4px;
  border:2px solid #5c9daa;
  border-radius:50%;
  background:#0d2a35;
  box-shadow:0 0 0 4px #09202b;
}
.lb-train-profile__stop.is-passed .lb-train-profile__dot{
  border-color:#4ade80;
  background:#4ade80;
}
.lb-train-profile__stop.is-current .lb-train-profile__dot{
  width:13px;
  height:13px;
  margin-top:2px;
  margin-left:-2px;
  border-color:#ff9f43;
  background:#ff9f43;
  box-shadow:0 0 0 4px #09202b,0 0 12px #ff9f43;
}
.lb-train-profile__stop.is-effective-endpoint .lb-train-profile__dot{
  border-color:#39a8ff;
  background:#39a8ff;
  box-shadow:0 0 0 4px #09202b,0 0 11px rgba(57,168,255,.8);
}
.lb-train-profile__stop.is-effective-endpoint .lb-train-profile__delay{
  color:#63baff;
}
.lb-train-profile__stop-name{
  min-width:0;
}
.lb-train-profile__stop-name strong{
  display:block;
  overflow:hidden;
  color:#eafcff;
  font-size:.78rem;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.lb-train-profile__stop-name span{
  display:block;
  color:#719aa7;
  font-size:.62rem;
}
.lb-train-profile__delay{
  padding-top:2px;
  color:#ff9f43;
  font-size:.6rem;
  font-weight:900;
  white-space:nowrap;
}
.lb-train-profile__delay.is-ok{ color:#4ade80; }
.lb-train-profile__empty{
  padding:14px 4px;
  color:#7395a1;
  font-size:.72rem;
  text-align:center;
}
.lb-train-profile__affluence-details summary{
  cursor:pointer;
  color:#9aeef5;
  font-size:.75rem;
  font-weight:800;
}
.lb-train-profile__affluence-details[open] summary{ margin-bottom:10px; }
.lb-train-profile__reliability{
  display:grid;
  grid-template-columns:118px minmax(0,1fr);
  align-items:center;
  gap:10px;
}
.lb-train-profile__donut{
  --lb-reliability-color:#7cf7ff;
  width:108px;
  height:108px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:conic-gradient(#7cf7ff 0deg,#173743 0deg);
  box-shadow:0 0 20px rgba(0,240,255,.09);
}
.lb-train-profile__donut > div{
  width:77px;
  height:77px;
  display:grid;
  place-content:center;
  border-radius:50%;
  background:#09202b;
  text-align:center;
  box-shadow:inset 0 0 12px rgba(0,0,0,.35);
}
.lb-train-profile__donut strong{
  color:var(--lb-reliability-color,#f1feff);
  font-family:'Orbitron',sans-serif;
  font-size:1.16rem;
}
.lb-train-profile__donut span{
  color:#7598a3;
  font-size:.48rem;
  font-weight:900;
  letter-spacing:.08em;
}
.lb-train-profile__reliability-details{
  display:grid;
  gap:5px;
  color:#8cb1bc;
  font-size:.67rem;
}
.lb-train-profile__reliability-row{
  display:flex;
  justify-content:space-between;
  gap:8px;
  padding-bottom:4px;
  border-bottom:1px solid rgba(0,240,255,.08);
}
.lb-train-profile__reliability-row b{ color:#eafcff; }
.lb-train-profile__runs{
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid rgba(0,240,255,.1);
}
.lb-train-profile__runs > span{
  color:#7196a2;
  font-size:.58rem;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.lb-train-profile__runs > div{
  margin-top:7px;
}
.lb-train-profile__runs-track{
  display:flex;
  gap:clamp(1px,.55vw,3px);
  width:100%;
  min-height:22px;
  align-items:center;
  touch-action:pan-y;
  user-select:none;
  -webkit-user-select:none;
}
.lb-train-profile__run{
  appearance:none;
  -webkit-appearance:none;
  height:16px;
  min-width:2px !important;
  width:auto !important;
  max-width:none !important;
  flex:1 1 0% !important;
  display:block !important;
  margin:0 !important;
  padding:0 !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:2px;
  background:linear-gradient(180deg,#7dffb0,#21d46d) !important;
  box-shadow:0 0 5px rgba(33,212,109,.3) !important;
  opacity:1 !important;
  cursor:crosshair;
  box-sizing:border-box;
  transition:height .12s ease,transform .12s ease,box-shadow .12s ease,opacity .12s ease;
}
.lb-train-profile__run.is-on-time{
  background:linear-gradient(180deg,#7dffb0,#21d46d) !important;
  border-color:rgba(125,255,176,.55) !important;
}
.lb-train-profile__run.is-delay{
  background:linear-gradient(180deg,#ffd166,#ff8a1a) !important;
  border-color:rgba(255,209,102,.62) !important;
  box-shadow:0 0 5px rgba(255,138,26,.32) !important;
}
.lb-train-profile__run.is-cancel{
  background:linear-gradient(180deg,#ff8091,#ff2948) !important;
  border-color:rgba(255,128,145,.65) !important;
  box-shadow:0 0 5px rgba(255,41,72,.34) !important;
}
.lb-train-profile__run.is-partial{
  background:linear-gradient(90deg,#ff2948 0 50%,#ff9f43 50% 100%) !important;
  border-color:rgba(255,128,100,.65) !important;
  box-shadow:0 0 5px rgba(255,83,100,.3) !important;
}
.lb-train-profile__run.is-not-running{
  background:linear-gradient(180deg,#84949c,#53636b) !important;
  border-color:rgba(164,181,190,.4) !important;
  box-shadow:none !important;
  opacity:.72 !important;
}
.lb-train-profile__run.is-no-data{
  background:linear-gradient(180deg,#415863,#253a44) !important;
  border-color:rgba(104,134,147,.35) !important;
  box-shadow:none !important;
  opacity:.52 !important;
}
.lb-train-profile__run:hover,
.lb-train-profile__run.is-active,
.lb-train-profile__run:focus-visible{
  height:21px;
  opacity:1 !important;
  transform:translateY(-1px);
  outline:none;
  box-shadow:0 0 0 1px #bafaff,0 0 9px rgba(124,247,255,.55) !important;
}
.lb-train-profile__runs-readout{
  display:flex;
  min-height:18px;
  align-items:center;
  justify-content:center;
  gap:6px;
  margin-top:2px;
  color:#7697a2;
  font-size:.56rem;
  line-height:1.2;
  text-align:center;
}
.lb-train-profile__runs-readout b{
  color:#dffcff;
  font-weight:900;
}
.lb-train-profile__runs-readout span{
  color:#91b5bf;
}
.lb-train-profile__community{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:9px;
  background:
    radial-gradient(circle at 0 0,rgba(0,240,255,.16),transparent 50%),
    linear-gradient(145deg,rgba(9,36,48,.92),rgba(4,17,29,.96)) !important;
}
.lb-train-profile__cow{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(0,240,255,.1);
  font-size:1.3rem;
}
.lb-train-profile__community p{
  margin:3px 0 0;
  color:#86a9b4;
  font-size:.66rem;
}
.lb-train-profile__community .lb-community-btn--signal{
  grid-column:1/-1;
  justify-self:center;
  width:min(180px,100%);
  min-width:0;
  min-height:28px;
  height:28px;
  padding:4px 9px;
  border:1px solid rgba(255,201,82,.36);
  border-radius:999px;
  background:
    radial-gradient(circle at 20% 0%,rgba(255,198,58,.20),transparent 48%),
    linear-gradient(180deg,rgba(52,41,15,.66),rgba(5,21,32,.94));
  color:#ffd36a;
  font-size:.70rem;
  line-height:1;
  letter-spacing:.03em;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.035),0 0 10px rgba(255,194,40,.08);
}
.lb-train-profile__community .lb-community-btn--signal:disabled{
  opacity:.45;
  cursor:not-allowed;
}
.lb-train-profile__actions{
  margin:0 !important;
}
.lb-train-profile__actions .train-detail-btn{
  width:100%;
  justify-content:center;
  text-align:center;
}
.lb-train-profile__message{
  min-height:0;
  margin:8px 0 0;
  color:#86abb7;
  font-size:.66rem;
  text-align:center;
}
.lb-train-profile__message:empty{ display:none; }
.lb-train-profile__message.is-error{ color:#ff778d; }

/* Ouverture depuis la carte : la fiche passe au-dessus du voile sans flou.
   Le tiroir reste à droite et ses cartes s'empilent pour ne jamais se chevaucher. */
body.page-carte.lb-train-detail-from-map #trainDetailPanel.lb-train-profile{
  z-index:4900 !important;
}
body.page-carte.lb-train-detail-from-map::after{
  background:rgba(2,8,14,.38);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
@media (min-width:761px){
  body.page-carte.lb-train-detail-from-map #trainDetailPanel.lb-train-profile .lb-train-profile__grid{
    grid-template-columns:minmax(0,1fr);
  }
}

@media (max-width:760px){
  .lb-train-finder{ padding:13px; border-radius:16px; }
  .lb-train-finder__head{ gap:8px; margin-bottom:11px; }
  .lb-train-finder__head p{ font-size:.7rem; }
  .lb-train-finder__live{ display:none; }
  .lb-train-finder__row{
    grid-template-columns:34px minmax(90px,1fr) 96px;
    min-height:46px;
  }
  #lbTrainFinderInput{ padding:0 7px; font-size:.95rem; }
  #lbTrainFinderDate{ padding:0 5px; font-size:.68rem; }
  .lb-train-finder__row button{
    grid-column:1/-1;
    min-height:38px;
    border-top:1px solid rgba(0,240,255,.18);
  }
  .lb-train-finder__footer{
    align-items:flex-start;
    flex-direction:column;
  }
  .lb-train-finder__status{ text-align:left; }

  body.page-search #trainDetailPanel.lb-train-profile,
  body.page-stats #trainDetailPanel.lb-train-profile{
    top:calc(var(--top-bar-height,64px) + 7px) !important;
    width:calc(100vw - 12px) !important;
    max-height:calc(100dvh - var(--top-bar-height,64px) - var(--bottom-bar-height,84px) - 14px) !important;
    padding:12px !important;
    border-radius:17px !important;
  }
  .lb-train-profile__identity h3{ font-size:1rem; }
  .lb-train-profile__eyebrow{ font-size:.52rem; }
  .lb-train-profile__ter{ padding:5px 6px; font-size:.54rem; }
  .lb-train-profile__journey{
    grid-template-columns:minmax(72px,1fr) minmax(80px,1fr) minmax(72px,1fr);
    gap:8px;
    padding:13px 12px 10px;
  }
  .lb-train-profile__journey strong{ font-size:1.12rem; }
  .lb-train-profile__hero-planned{ font-size:.58rem; }
  .lb-train-profile__journey span{ font-size:.69rem; }
  .lb-train-profile__journey-line{ gap:4px; }
  .lb-train-profile__statusbar{ gap:8px; padding:0 12px; }
  .lb-train-profile__platform{ padding-left:8px; font-size:.62rem; }
  .lb-train-profile__next{ padding:6px 12px; }
  .lb-train-profile__grid{ grid-template-columns:1fr; }
  .lb-train-profile__composition-card{ order:1; }
  .lb-train-profile__reliability-card{ order:2; }
  .lb-train-profile__route-card{ order:3; }
  .lb-train-profile__affluence-details{ order:4; }
  .lb-train-profile__community{ order:5; }
  .lb-train-profile__main,
  .lb-train-profile__side{ display:contents; }
  .lb-train-profile__card{ padding:12px !important; }
  .lb-train-profile__drawing{
    height:58px;
    padding-top:13px;
  }
  .lb-train-profile__car{
    height:31px;
    gap:2px;
  }
  .lb-train-profile__car i{
    width:clamp(2px,1vw,5px);
    height:9px;
  }
  .lb-train-profile__compo-stats span{
    padding:0 3px;
    font-size:.49rem;
    letter-spacing:.025em;
  }
  .lb-train-profile__compo-stats b{ font-size:.68rem; }
  .lb-train-profile__crowding{ grid-template-columns:minmax(112px,auto) 1fr 34px; }
  .lb-train-profile__stop{ grid-template-columns:58px 17px minmax(0,1fr) auto; }
  .lb-train-profile__stop::after{ left:65px; }
}

@media (max-width:390px){
  .lb-train-profile__source-row{ font-size:.56rem; }
  .lb-train-profile__status{ font-size:.57rem; letter-spacing:.04em; }
  .lb-train-profile__platform{ max-width:80px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .lb-train-profile__reliability{ grid-template-columns:104px minmax(0,1fr); }
  .lb-train-profile__donut{ width:96px; height:96px; }
  .lb-train-profile__donut > div{ width:68px; height:68px; }
}

@media (prefers-reduced-motion:reduce){
  .lb-train-profile__crowding-bar i{ transition:none; }
  .lb-train-profile__statusbar button.is-spinning{ animation:none; }
}

/* STATS V2 — correctif plein écran mobile 2026-07-28 */
.stats-v2__navigation{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(420px,1.2fr);align-items:center;gap:12px;padding:7px;border:1px solid var(--sv2-line);border-radius:15px;background:rgba(3,13,22,.78)}
.stats-v2__navigation .stats-v2__tabs{padding:0;border:0;background:transparent}
.stats-v2__period-control{min-width:0;display:grid;grid-template-columns:auto minmax(150px,220px) minmax(0,1fr);align-items:center;gap:9px}
.stats-v2__period-control label{color:#719ba6;font-size:.61rem;font-weight:900;letter-spacing:.07em;text-transform:uppercase}
.stats-v2__period-select{width:100%;min-width:0;min-height:39px;padding:7px 32px 7px 11px;border:1px solid rgba(94,231,242,.3);border-radius:10px;background:#061923;color:#eaffff;font-size:.7rem;font-weight:900;cursor:pointer}
.stats-v2__navigation .stats-v2__range-label{text-align:right;overflow:hidden;text-overflow:ellipsis}
.stats-v2__train-row{grid-template-columns:32px minmax(130px,.8fr) minmax(105px,.55fr) minmax(260px,1.4fr);min-height:64px;padding:9px 12px}
.stats-v2__rank{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:rgba(94,231,242,.08);color:#83b6c1;font-size:.66rem}
.stats-v2__train-number{font-size:.78rem;white-space:nowrap}
.stats-v2__train-impact{min-width:0;display:grid;gap:1px}
.stats-v2__train-impact strong{display:block;color:#eaffff;font-size:.82rem;line-height:1;white-space:nowrap}
.stats-v2__train-impact small{color:#7299a3;font-family:system-ui,-apple-system,sans-serif;font-size:.59rem;white-space:nowrap}
.stats-v2__train-stats{display:grid;grid-template-columns:repeat(3,minmax(68px,1fr));gap:6px}
.stats-v2__chip{min-width:0;display:flex;align-items:baseline;justify-content:center;gap:4px;padding:6px 7px;text-align:center;white-space:nowrap}
.stats-v2__chip strong{font-size:.7rem}
.stats-v2__chip small{font-size:.54rem}
.stats-v2__train-rate{display:none}
.stats-v2__main-grid--simple{grid-template-columns:1fr}
.stats-v2__secondary-insights{display:none}
.stats-v2__weekday-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.stats-v2__weekday-card{display:grid;gap:4px;padding:13px;border:1px solid var(--sv2-line);border-radius:14px;background:rgba(4,16,26,.72)}
.stats-v2__weekday-card span{color:#6f949e;font-size:.58rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}
.stats-v2__weekday-card strong{color:#effeff;font-size:1rem;text-transform:capitalize}
.stats-v2__weekday-card small{color:#789da7;font-family:system-ui,-apple-system,sans-serif;font-size:.66rem}
.stats-v2__weekday-card--best{border-left:3px solid var(--sv2-ok)}
.stats-v2__weekday-card--worst{border-left:3px solid var(--sv2-cancel)}
.stats-v2__calendar{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.stats-v2__calendar-month{padding:10px;border:1px solid rgba(94,231,242,.12);border-radius:12px;background:rgba(2,12,20,.38)}
.stats-v2__calendar-month h4{margin:0 0 8px;color:#dffbff;font-size:.7rem;text-transform:capitalize}
.stats-v2__calendar-weekdays,.stats-v2__calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.stats-v2__calendar-weekdays{margin-bottom:4px;color:#668b95;font-size:.54rem;text-align:center}
.stats-v2__calendar-day{aspect-ratio:1;border:1px solid color-mix(in srgb,var(--day-color) 55%,transparent);border-radius:6px;background:color-mix(in srgb,var(--day-color) 18%,#06131d);color:#eaffff;font-size:.58rem;cursor:help}
.stats-v2__calendar-day::after{content:"";display:block;width:5px;height:5px;margin:2px auto 0;border-radius:50%;background:var(--day-color);box-shadow:0 0 5px var(--day-color)}
.stats-v2__calendar-blank{aspect-ratio:1}
.stats-v2__train-identity{min-width:0;display:grid;gap:6px}
.stats-v2__train-meter{display:block;height:3px;overflow:hidden;border-radius:99px;background:rgba(113,154,164,.16)}
.stats-v2__train-meter i{display:block;width:var(--impact,0%);height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--sv2-delay),var(--sv2-cancel));box-shadow:0 0 7px rgba(255,89,104,.38)}

/* Calendrier compact : aucun mois ne peut pousser ou recouvrir son voisin. */
.stats-v2__calendar{
  grid-template-columns:repeat(auto-fill,minmax(184px,1fr));
  align-items:start;
  gap:9px;
}
.stats-v2__calendar-month{
  min-width:0;
  padding:9px;
  overflow:visible;
  box-shadow:none;
}
.stats-v2__calendar-month h4{margin-bottom:6px;font-size:.64rem}
.stats-v2__calendar-weekdays,.stats-v2__calendar-days{gap:2px}
.stats-v2__calendar-day,.stats-v2__calendar-blank{
  width:100%;
  min-width:0;
  max-width:28px;
  aspect-ratio:1;
  justify-self:center;
}
.stats-v2__calendar-day{
  position:relative;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid color-mix(in srgb,var(--day-color) 82%,#dfffff);
  border-radius:5px;
  background:color-mix(in srgb,var(--day-color) 68%,#07131b);
  color:#fff;
  font-size:.56rem;
  font-weight:900;
  line-height:1;
  text-shadow:0 1px 2px rgba(0,0,0,.78);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -1px 0 rgba(0,0,0,.2);
  isolation:isolate;
  opacity:.96;
  transition:transform .12s ease,filter .12s ease,box-shadow .12s ease;
}
.stats-v2__calendar-day::after{
  content:none;
  display:none;
}
.stats-v2__calendar-day::before{
  content:attr(data-tooltip);
  position:absolute;
  left:50%;
  bottom:calc(100% + 7px);
  z-index:40;
  width:max-content;
  max-width:220px;
  padding:7px 9px;
  border:1px solid rgba(94,231,242,.35);
  border-radius:8px;
  background:#071923;
  color:#edfeff;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.65rem;
  font-weight:700;
  line-height:1.3;
  text-align:left;
  white-space:normal;
  box-shadow:0 8px 24px rgba(0,0,0,.5);
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,4px);
  transition:opacity .12s ease,transform .12s ease;
}
.stats-v2__calendar-day:hover,.stats-v2__calendar-day:focus-visible{
  z-index:30;
  outline:1px solid #e9ffff;
  outline-offset:1px;
  filter:brightness(1.24) saturate(1.12);
  transform:translateY(-1px) scale(1.05);
  box-shadow:0 0 9px color-mix(in srgb,var(--day-color) 62%,transparent);
}
.stats-v2__calendar-day:hover::before,.stats-v2__calendar-day:focus-visible::before{opacity:1;transform:translate(-50%,0)}

/* La bande de carrés sous l'historique du train doublonne le calendrier. */
#statsV2TrainRunsStrip,
.stats-v2__runs-strip{
  display:none!important;
}

/* Comparateur unique : un seul chemin, trois types de comparaison. */
.stats-v2__compare{display:grid;gap:12px}
.stats-v2__compare-step{display:grid;grid-template-columns:minmax(210px,.34fr) minmax(0,1fr);align-items:center;gap:14px;padding:11px;border:1px solid rgba(73,219,235,.16);border-radius:14px;background:rgba(2,17,27,.62)}
.stats-v2__compare-step-head{display:flex;align-items:center;gap:10px;min-width:0}
.stats-v2__compare-step-head>span{display:grid;place-items:center;flex:0 0 28px;height:28px;border:1px solid rgba(57,224,240,.5);border-radius:50%;background:rgba(16,191,212,.12);color:#78f5ff;font-size:.72rem;font-weight:1000;box-shadow:0 0 13px rgba(0,223,245,.12)}
.stats-v2__compare-step-head div{display:grid;min-width:0}
.stats-v2__compare-step-head strong{color:#eaffff;font-size:.72rem;line-height:1.2}
.stats-v2__compare-step-head small{margin-top:2px;color:#6e929c;font-family:system-ui,-apple-system,sans-serif;font-size:.59rem}
.stats-v2__triple{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border:1px solid rgba(55,218,234,.22);border-radius:12px;background:#04121c}
.stats-v2__triple-button{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;min-height:42px;padding:8px 10px;border:1px solid transparent;border-radius:9px;background:transparent;color:#6f98a3;font:800 .7rem Orbitron,system-ui,sans-serif;cursor:pointer;transition:.15s ease}
.stats-v2__triple-button:hover{color:#d9fcff;background:rgba(35,184,203,.08)}
.stats-v2__triple-button.is-active{border-color:#25dced;background:linear-gradient(135deg,rgba(8,192,214,.34),rgba(20,104,137,.23));color:#f1ffff;box-shadow:inset 0 0 14px rgba(0,224,246,.12),0 0 12px rgba(0,219,242,.18)}
.stats-v2__triple-button.is-active::after{content:"✓";color:#7dffbe;font-family:system-ui,sans-serif;font-size:.72rem;font-weight:1000}
.stats-v2__compare-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:9px}
.stats-v2__compare-inputs{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:8px}
.stats-v2__compare-select{appearance:auto;cursor:pointer}
.stats-v2__compare-vs{display:grid;place-items:center;min-height:39px;color:#6feefa;font-size:.66rem;font-weight:1000}
.stats-v2__compare-hint{margin:0;color:#7198a3;font-family:system-ui,-apple-system,sans-serif;font-size:.66rem}
.stats-v2__compare-results{display:grid;gap:12px}
.stats-v2__compare-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;gap:9px}
.stats-v2__compare-card{display:grid;place-content:center;min-height:112px;padding:13px;border:1px solid var(--sv2-line);border-radius:15px;background:linear-gradient(145deg,rgba(8,31,42,.94),rgba(3,14,23,.96));text-align:center}
.stats-v2__compare-card span{overflow:hidden;color:#a5c7ce;font-size:.7rem;font-weight:900;text-overflow:ellipsis;text-transform:capitalize;white-space:nowrap}
.stats-v2__compare-card strong{margin:5px 0 2px;color:#eaffff;font-size:1.5rem}
.stats-v2__compare-card small{color:#70949e;font-family:system-ui,-apple-system,sans-serif;font-size:.62rem}
.stats-v2__compare-incidents{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:9px}
.stats-v2__compare-incidents em{display:grid;gap:1px;padding:5px 2px;border:1px solid color-mix(in srgb,var(--incident) 42%,transparent);border-radius:7px;color:var(--incident);font-family:system-ui,-apple-system,sans-serif;font-size:.52rem;font-style:normal;white-space:nowrap}
.stats-v2__compare-incidents b{font-size:.66rem}
.stats-v2__compare-winner{align-self:center;padding:7px 9px;border:1px solid rgba(94,231,242,.2);border-radius:999px;color:#71edf7;font-size:.59rem;font-weight:900;text-align:center}
@media (max-width:760px){
  body.page-stats{max-width:none!important;padding-left:0!important;padding-right:0!important;overflow-x:hidden}
  body.page-stats #stats.command-console{width:100%!important;max-width:none!important;margin:0 0 20px!important;padding:0!important;gap:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
  body.page-stats #stats>.console-header{display:none!important}
  body.page-stats #statsConsole.console-section{width:100%!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;overflow:visible!important}
  body.page-stats #statsConsole>.section-content{width:100%!important;max-height:none!important;padding:10px 8px calc(18px + env(safe-area-inset-bottom,0px))!important;border:0!important;background:transparent!important;overflow:visible!important}
  body.page-stats #stats-section,body.page-stats #statsV2Dashboard{width:100%!important;max-width:none!important;min-width:0!important}
  body.page-stats .stats-v2{gap:9px}
  body.page-stats .stats-v2__hero{grid-template-columns:1fr!important;gap:10px!important;padding:13px 12px!important;border-radius:14px!important}
  body.page-stats .stats-v2__eyebrow{margin-bottom:4px;font-size:.58rem;letter-spacing:.11em}
  body.page-stats .stats-v2 h2{font-size:1.22rem;line-height:1.1}
  body.page-stats .stats-v2__subtitle{margin-top:5px;font-size:.76rem;line-height:1.35}
  body.page-stats .stats-v2__live{margin-top:7px;font-size:.66rem}
  body.page-stats .stats-v2__hero-actions{display:grid!important;grid-template-columns:42px minmax(0,1fr);gap:7px}
  body.page-stats .stats-v2__hero-actions .stats-v2__button{width:100%;min-width:0;min-height:38px;padding:7px 8px;border-radius:10px;font-size:.68rem;white-space:nowrap}
  body.page-stats .stats-v2__navigation{grid-template-columns:1fr;gap:7px;padding:6px;border-radius:13px}
  body.page-stats .stats-v2__period-control{grid-template-columns:auto minmax(0,1fr);gap:7px;padding:1px 3px 3px}
  body.page-stats .stats-v2__period-control .stats-v2__range-label{grid-column:1/-1;text-align:left;padding:2px 1px 0}
  body.page-stats .stats-v2__period-select{min-height:38px;font-size:.65rem}
  body.page-stats .stats-v2__range-label{padding:1px 5px 2px;font-size:.68rem;white-space:normal}
  body.page-stats .stats-v2__tabs{gap:5px;padding:5px;border-radius:13px}
  body.page-stats .stats-v2__tab{min-width:0;min-height:42px;padding:6px 3px!important;font-size:.59rem!important;line-height:1.2;white-space:normal;overflow-wrap:anywhere;touch-action:manipulation}
  body.page-stats .stats-v2__button,body.page-stats .stats-v2__segment,body.page-stats .stats-v2__tab{-webkit-tap-highlight-color:transparent}
  body.page-stats .stats-v2__button:active,body.page-stats .stats-v2__segment:active,body.page-stats .stats-v2__tab:active{transform:scale(.98)}
  body.page-stats .stats-v2__content,body.page-stats .stats-v2__panel{min-width:0}
  body.page-stats .stats-v2__card{border-radius:14px}
  body.page-stats .stats-v2__weekday-grid{grid-template-columns:1fr}
  body.page-stats .stats-v2__calendar{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  body.page-stats .stats-v2__calendar-month{padding:7px 5px}
  body.page-stats .stats-v2__calendar-day,body.page-stats .stats-v2__calendar-blank{max-width:25px}
  body.page-stats .stats-v2__compare-step{grid-template-columns:1fr;gap:8px;padding:9px}
  body.page-stats .stats-v2__compare-step-head>span{flex-basis:25px;height:25px}
  body.page-stats .stats-v2__triple-button{min-height:40px;padding:6px 3px;gap:4px;font-size:.59rem}
  body.page-stats .stats-v2__compare-form{grid-template-columns:1fr}
  body.page-stats .stats-v2__compare-inputs{grid-template-columns:1fr 1fr}
  body.page-stats .stats-v2__compare-form .stats-v2__button{grid-column:1/-1;width:100%}
  body.page-stats .stats-v2__compare-cards{grid-template-columns:1fr 1fr}
  body.page-stats .stats-v2__compare-winner{grid-column:1/-1;grid-row:2}
  /* Classement mobile : une vraie carte pleine largeur par bétaillère.
     Les données et le clic restent inchangés, seule leur disposition évolue. */
  body.page-stats #statsV2RankingCard{
    padding:12px 10px!important;
    overflow:hidden;
  }
  body.page-stats #statsV2RankingCard .stats-v2__card-head{
    margin-bottom:10px;
    padding:0 2px;
  }
  body.page-stats #statsV2RankingCard .stats-v2__card-title{
    font-size:.86rem;
    line-height:1.2;
  }
  body.page-stats #statsV2RankingCard .stats-v2__card-meta{
    margin-top:3px;
    font-size:.59rem;
    line-height:1.3;
  }
  body.page-stats #statsV2TrainList{
    width:100%;
    gap:8px;
  }
  body.page-stats .stats-v2__train-row{
    position:relative;
    width:100%!important;
    min-height:88px;
    grid-template-columns:30px minmax(0,1fr) auto;
    grid-template-areas:
      "rank identity impact"
      "stats stats stats";
    align-items:center;
    column-gap:8px;
    row-gap:9px;
    padding:10px;
    overflow:hidden;
    border-color:rgba(94,231,242,.2);
    border-radius:13px;
    background:
      linear-gradient(90deg,rgba(0,225,245,.065),transparent 34%),
      rgba(2,12,20,.74);
    box-shadow:
      inset 3px 0 0 rgba(34,224,239,.72),
      inset 0 1px 0 rgba(255,255,255,.025);
    touch-action:manipulation;
  }
  body.page-stats .stats-v2__train-row::after{
    content:"›";
    position:absolute;
    top:8px;
    right:9px;
    color:rgba(103,234,245,.46);
    font-family:system-ui,-apple-system,sans-serif;
    font-size:.82rem;
    line-height:1;
    pointer-events:none;
  }
  body.page-stats .stats-v2__train-row:active{
    border-color:rgba(94,231,242,.55);
    background:
      linear-gradient(90deg,rgba(0,225,245,.12),transparent 42%),
      rgba(3,20,31,.9);
    transform:scale(.992);
  }
  body.page-stats .stats-v2__rank{
    grid-area:rank;
    width:28px;
    height:28px;
    align-self:start;
    border:1px solid rgba(94,231,242,.15);
    background:rgba(94,231,242,.09);
    color:#8eb7c0;
    font-size:.65rem;
  }
  body.page-stats .stats-v2__train-identity{
    grid-area:identity;
    width:100%;
    gap:7px;
    align-self:start;
    padding-top:2px;
  }
  body.page-stats .stats-v2__train-number{
    overflow:hidden;
    font-size:.78rem;
    line-height:1.1;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  body.page-stats .stats-v2__train-meter{
    width:min(112px,100%);
    height:4px;
  }
  body.page-stats .stats-v2__train-impact{
    grid-area:impact;
    align-self:start;
    min-width:76px;
    padding:1px 14px 0 3px;
    text-align:right;
  }
  body.page-stats .stats-v2__train-impact strong{
    font-size:.9rem;
    line-height:1;
  }
  body.page-stats .stats-v2__train-impact small{
    display:block;
    margin-top:3px;
    font-size:.56rem;
    line-height:1.1;
  }
  body.page-stats .stats-v2__train-stats{
    grid-area:stats;
    width:100%;
    min-width:0;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:5px;
  }
  body.page-stats .stats-v2__chip{
    min-width:0;
    min-height:29px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:4px;
    padding:5px 4px;
    border-radius:7px;
    line-height:1;
  }
  body.page-stats .stats-v2__chip strong{font-size:.68rem}
  body.page-stats .stats-v2__chip small{
    overflow:hidden;
    font-size:.52rem;
    text-overflow:ellipsis;
  }
}
@media (max-width:380px){
  body.page-stats #statsConsole>.section-content{padding-left:6px!important;padding-right:6px!important}
  body.page-stats .stats-v2__tab{font-size:.55rem!important}
  body.page-stats .stats-v2__train-row{
    grid-template-columns:28px minmax(0,1fr) auto;
    column-gap:6px;
    padding:9px 8px;
  }
  body.page-stats .stats-v2__train-number{font-size:.72rem}
  body.page-stats .stats-v2__train-impact{min-width:70px;padding-right:12px}
  body.page-stats .stats-v2__train-impact strong{font-size:.82rem}
  body.page-stats .stats-v2__chip{display:grid;gap:2px;padding:5px 2px}
  body.page-stats .stats-v2__chip strong{font-size:.65rem}
  body.page-stats .stats-v2__chip small{font-size:.49rem}
  body.page-stats .stats-v2__calendar{grid-template-columns:1fr}
}

/* STATS V2 — classement mobile réellement pleine largeur.
   Bloc volontairement autonome : il reste actif même si la classe
   body.page-stats est ajoutée après le premier rendu sur mobile. */
@media (max-width:760px){
  #statsV2RankingCard{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    box-sizing:border-box!important;
    padding:12px 10px!important;
    overflow:visible!important;
  }
  #statsV2TrainList{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    align-items:stretch!important;
    justify-items:stretch!important;
    gap:8px!important;
  }
  #statsV2TrainList > .stats-v2__train-row{
    position:relative!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:88px!important;
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:30px minmax(0,1fr) minmax(76px,auto)!important;
    grid-template-areas:
      "rank identity impact"
      "stats stats stats"!important;
    align-items:center!important;
    justify-self:stretch!important;
    column-gap:8px!important;
    row-gap:9px!important;
    margin:0!important;
    padding:10px!important;
    overflow:hidden!important;
  }
  #statsV2TrainList > .stats-v2__train-row > .stats-v2__rank{
    grid-area:rank!important;
  }
  #statsV2TrainList > .stats-v2__train-row > .stats-v2__train-identity{
    grid-area:identity!important;
    min-width:0!important;
  }
  #statsV2TrainList > .stats-v2__train-row > .stats-v2__train-impact{
    grid-area:impact!important;
    min-width:76px!important;
  }
  #statsV2TrainList > .stats-v2__train-row > .stats-v2__train-stats{
    grid-area:stats!important;
    width:100%!important;
    min-width:0!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}

@media (max-width:380px){
  #statsV2TrainList > .stats-v2__train-row{
    grid-template-columns:28px minmax(0,1fr) minmax(70px,auto)!important;
    column-gap:6px!important;
    padding:9px 8px!important;
  }
  #statsV2TrainList > .stats-v2__train-row > .stats-v2__train-impact{
    min-width:70px!important;
  }
}

/* ===== Source historique : home-punctuality-labels-visible-final ===== */
/* Accueil — les libellés J-30 et J-1 restent dans la carte sur PC et mobile. */
.home-punct-chart-wrap{
  height:64px!important;
  overflow:visible!important;
}
.home-punct-chart-wrap > canvas{
  position:absolute!important;
  inset:0 0 auto 0!important;
  width:100%!important;
  height:50px!important;
}
.home-punct-chart-wrap > .home-punct-mini-label{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  top:auto!important;
  right:auto!important;
  bottom:0!important;
  left:50%!important;
  transform:translateX(-50%)!important;
  line-height:12px!important;
  color:#dffbff!important;
  text-shadow:0 0 8px rgba(0,240,255,.55)!important;
}

@media (max-width:700px){
  .home-punct-card{
    min-height:96px!important;
    overflow:visible!important;
    padding-bottom:6px!important;
  }
  #homePunctualityChartHost.home-punct-chart-host{
    min-height:72px!important;
    align-items:flex-start!important;
    overflow:visible!important;
  }
  .home-punct-chart-wrap{
    width:58px!important;
    height:72px!important;
  }
  .home-punct-chart-wrap > canvas{
    height:58px!important;
  }
}

/* ===== Source historique : home-desktop-content-scale-final ===== */
/* Accueil PC : exploiter réellement les grandes cartes.
   Cette couche ne s'applique jamais au mobile ni aux tablettes étroites. */
@media (min-width:1025px){
  body.page-home #home.home-section > .home-dashboard{
    column-gap:clamp(18px,1.4vw,26px)!important;
    row-gap:clamp(16px,1.2vw,22px)!important;
  }

  body.page-home #home .home-card{
    padding:clamp(18px,1.25vw,24px)!important;
  }

  body.page-home #homeWelcomeLine{
    font-size:clamp(1.16rem,.45vw + 1rem,1.42rem)!important;
    margin-bottom:4px!important;
  }

  body.page-home #home .home-card h2,
  body.page-home #home .live-wall-title{
    font-size:clamp(1.08rem,.38vw + .98rem,1.28rem)!important;
    line-height:1.18!important;
    margin-bottom:12px!important;
  }

  /* Info trafic : lignes, statuts et respiration adaptés à la largeur PC. */
  body.page-home #home .home-card[aria-label="Info trafic"]{
    min-height:230px!important;
    padding:clamp(18px,1.25vw,24px)!important;
  }
  body.page-home #home .home-card[aria-label="Info trafic"] h2{
    font-size:clamp(1.12rem,.42vw + 1rem,1.34rem)!important;
    margin-bottom:3px!important;
  }
  body.page-home #home .traffic-subline{
    margin:0 0 13px!important;
    font-size:clamp(.68rem,.18vw + .63rem,.78rem)!important;
    letter-spacing:.10em!important;
  }
  body.page-home #home .home-card[aria-label="Info trafic"] .traffic-split{
    display:grid!important;
    flex:1 1 auto!important;
    gap:12px!important;
    align-content:center!important;
  }
  body.page-home #home .home-card[aria-label="Info trafic"] .traffic-split-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    min-height:62px!important;
    gap:18px!important;
    padding:12px 16px!important;
    border-radius:16px!important;
    text-align:left!important;
  }
  body.page-home #home .home-card[aria-label="Info trafic"] .traffic-split-line{
    width:auto!important;
    font-size:clamp(.94rem,.26vw + .88rem,1.08rem)!important;
    line-height:1.16!important;
    text-align:left!important;
  }
  body.page-home #home .home-card[aria-label="Info trafic"] .traffic-pill{
    width:auto!important;
    min-width:124px!important;
    max-width:none!important;
    padding:8px 15px!important;
    font-size:clamp(.67rem,.14vw + .63rem,.76rem)!important;
    line-height:1.08!important;
    white-space:nowrap!important;
  }

  /* Tableau dynamique : les raccourcis ne flottent plus minuscules. */
  body.page-home #home .home-card[aria-label="Tableau rapide"]{
    min-height:150px!important;
    justify-content:flex-start!important;
  }
  body.page-home #home .home-card[aria-label="Tableau rapide"] h2{
    margin-bottom:14px!important;
  }
  body.page-home #home .home-card[aria-label="Tableau rapide"] .home-quick-presets{
    flex:1 1 auto!important;
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    align-content:center!important;
    gap:10px!important;
  }
  body.page-home #home .home-card[aria-label="Tableau rapide"] .home-quick-presets__btn{
    min-height:39px!important;
    padding:8px 16px!important;
    font-size:clamp(.78rem,.17vw + .73rem,.88rem)!important;
    line-height:1.1!important;
  }

  /* Ponctualité : anneaux, pourcentages et libellés dimensionnés pour le PC. */
  body.page-home #home .home-punct-card{
    min-height:166px!important;
    padding:18px 22px 14px!important;
    overflow:visible!important;
  }
  body.page-home #home .home-punct-card #homePunctCardTitle{
    font-size:clamp(1.08rem,.38vw + .98rem,1.28rem)!important;
    margin:0 0 7px!important;
  }
  body.page-home #home #homePunctualityChartHost.home-punct-chart-host{
    min-height:116px!important;
    justify-content:space-evenly!important;
    gap:clamp(70px,9vw,150px)!important;
    overflow:visible!important;
  }
  body.page-home #home .home-punct-chart-wrap{
    width:92px!important;
    height:112px!important;
    margin:0!important;
  }
  body.page-home #home .home-punct-chart-wrap > canvas{
    inset:0 0 auto 0!important;
    width:92px!important;
    height:92px!important;
  }
  body.page-home #home .home-punct-chart-wrap > .home-punct-mini-label{
    bottom:2px!important;
    font-size:.70rem!important;
    line-height:14px!important;
    letter-spacing:.06em!important;
  }

  /* Favoris et mur communautaire : même niveau de lisibilité que la colonne droite. */
  body.page-home #home .home-card[aria-label="Mes Bétaillères favorites"]{
    min-height:230px!important;
  }
  body.page-home #home #homeFavSlot.home-fav-preview{
    gap:12px!important;
  }
  body.page-home #home #homeFavSlot .home-fav-row{
    min-height:116px!important;
    padding:14px 16px!important;
    gap:8px!important;
  }
  body.page-home #home #homeFavSlot .home-fav-train{
    font-size:clamp(.94rem,.22vw + .89rem,1.06rem)!important;
  }
  body.page-home #home #homeFavSlot :is(.home-fav-route,.home-fav-time,.home-fav-meta){
    font-size:clamp(.82rem,.16vw + .78rem,.91rem)!important;
    line-height:1.24!important;
  }
  body.page-home #home #homeFavSlot .home-fav-badge,
  body.page-home #home #homeFavSlot .home-fav-row .fav-state-badge{
    font-size:.68rem!important;
    padding:6px 10px!important;
  }
  body.page-home #home .home-card[aria-label="Mur de commentaires"]{
    padding:clamp(18px,1.25vw,24px)!important;
  }
  body.page-home #home .home-card[aria-label="Mur de commentaires"] .lb-community-btn{
    min-height:40px!important;
    font-size:.82rem!important;
  }
  body.page-home #home .home-card[aria-label="Mur de commentaires"] .live-wall-item-text{
    font-size:.84rem!important;
    line-height:1.32!important;
  }

  /* Le thème Bétaillère garde ses couleurs, avec la même échelle de bureau. */
  body.page-home.monde-betaillere #home .home-card h2,
  body.page-home.monde-betaillere #home .live-wall-title{
    font-size:clamp(.94rem,.28vw + .88rem,1.08rem)!important;
    padding:7px 12px!important;
  }
}

/* ===== Source historique : stats-entry-redesign-final ===== */
/* STATS — choix immédiat par chips, sans cartes explicatives. */
.stats-v2__sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}
.stats-v2__launch{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-areas:
    "copy"
    "status";
  align-items:center;
  gap:6px 14px;
  padding:11px 13px 10px;
  border:1px solid rgba(94,231,242,.2);
  border-radius:14px;
  background:linear-gradient(105deg,rgba(0,229,255,.07),transparent 46%),rgba(4,17,27,.9);
}
.stats-v2__launch::before{
  content:"";
  position:absolute;
  inset:8px auto 8px 0;
  width:3px;
  border-radius:0 3px 3px 0;
  background:#45eaf4;
  box-shadow:0 0 12px rgba(0,229,255,.7);
}
.stats-v2__launch-copy{
  grid-area:copy;
  min-width:0;
  display:flex;
  align-items:center;
  gap:9px;
  padding-left:2px;
}
.stats-v2 .stats-v2__launch h2{
  margin:0;
  color:#effeff;
  font-size:clamp(1rem,1.6vw,1.22rem);
  line-height:1.15;
}
.stats-v2__choice-count{
  display:inline-flex;
  align-items:center;
  min-height:22px;
  padding:3px 8px;
  border:1px solid rgba(94,231,242,.25);
  border-radius:999px;
  background:rgba(0,229,255,.07);
  color:#7fdce5;
  font:800 .64rem system-ui,-apple-system,sans-serif;
  white-space:nowrap;
}
.stats-v2__launch-actions{
  grid-area:actions;
  display:grid;
  grid-template-columns:repeat(2,max-content);
  gap:7px;
}
.stats-v2__launch-button{
  min-height:38px!important;
  padding:7px 11px!important;
  border-color:rgba(94,231,242,.25)!important;
  background:rgba(2,13,22,.68)!important;
  color:#d8fbff!important;
  font-size:.72rem!important;
  white-space:nowrap;
}
.stats-v2__launch-button--primary{
  border-color:rgba(0,229,255,.48)!important;
  background:rgba(0,229,255,.09)!important;
  color:#91f7ff!important;
}
.stats-v2__launch-button>span{font-size:.9rem}
.stats-v2__launch-status{
  grid-area:status;
  min-width:0;
  margin:0!important;
  padding-left:2px;
  color:#7199a3!important;
  font-size:.67rem!important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.stats-v2__entry-shell{
  position:relative;
  display:grid;
  grid-template-columns:minmax(520px,1fr) minmax(360px,470px);
  align-items:start;
  column-gap:14px;
  row-gap:9px;
  padding:10px;
  overflow:visible;
  border:1px solid rgba(94,231,242,.17);
  border-radius:15px;
  background:rgba(3,14,23,.76);
}
.stats-v2__entry{
  grid-column:1;
  grid-row:1;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  max-width:none;
  margin:0;
  overflow:visible;
}
.stats-v2__entry-item{
  position:relative;
  min-width:0;
  display:grid;
  grid-template-columns:minmax(0,1fr) 27px;
  gap:5px;
}
.stats-v2__entry-chip{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  min-width:0;
  min-height:49px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:8px 11px;
  border:1px solid rgba(94,231,242,.14);
  border-radius:13px;
  background:linear-gradient(145deg,rgba(6,22,32,.58),rgba(2,12,20,.72));
  color:#70969f;
  box-shadow:none;
  font:900 .82rem/1.15 "Orbitron",system-ui,sans-serif;
  text-align:center;
  cursor:pointer;
  transition:border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease;
}
.stats-v2__entry-chip:hover,
.stats-v2__entry-chip:focus-visible{
  border-color:rgba(94,231,242,.38);
  background:linear-gradient(145deg,rgba(7,32,44,.78),rgba(3,17,26,.88));
  color:#c9edf1;
  transform:translateY(-1px);
  outline:none;
}
.stats-v2__entry-chip.is-active{
  border-color:rgba(73,236,247,.94);
  background:linear-gradient(180deg,rgba(7,83,113,.98),rgba(4,45,68,.98));
  color:#fff;
  box-shadow:inset 0 0 17px rgba(0,240,255,.18),0 0 18px rgba(0,229,255,.25);
}
.stats-v2__entry-icon{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  color:#6499a2;
  font:900 1.05rem system-ui,-apple-system,sans-serif;
  transition:color .16s ease,text-shadow .16s ease;
}
.stats-v2__entry-chip:hover .stats-v2__entry-icon,
.stats-v2__entry-chip:focus-visible .stats-v2__entry-icon{color:#91e9ef}
.stats-v2__entry-chip.is-active .stats-v2__entry-icon{
  color:#c9fcff;
  text-shadow:0 0 9px rgba(94,231,242,.72);
}
.stats-v2__entry-info{
  align-self:center;
  width:25px!important;
  min-width:25px!important;
  max-width:25px!important;
  height:25px!important;
  min-height:25px!important;
  max-height:25px!important;
  display:grid;
  place-items:center;
  margin:0!important;
  padding:0!important;
  border:1px solid rgba(94,231,242,.25);
  border-radius:50%;
  background:rgba(0,229,255,.055);
  color:#77cbd3;
  font:900 .7rem/1 system-ui,-apple-system,sans-serif;
  cursor:pointer;
}
.stats-v2__entry-info:hover,
.stats-v2__entry-info:focus-visible,
.stats-v2__entry-item.is-info-open .stats-v2__entry-info{
  border-color:#57e9f2;
  background:rgba(0,229,255,.16);
  color:#f2feff;
  outline:none;
}
.stats-v2__entry-tooltip{
  position:absolute;
  z-index:40;
  top:calc(100% + 8px);
  left:0;
  width:min(250px,calc(100vw - 54px));
  display:none;
  padding:9px 11px;
  border:1px solid rgba(94,231,242,.43);
  border-radius:10px;
  background:#061722;
  color:#dffbff;
  box-shadow:0 10px 28px rgba(0,0,0,.38),0 0 14px rgba(0,229,255,.08);
  font:600 .75rem/1.4 system-ui,-apple-system,sans-serif;
}
.stats-v2__entry-item:nth-child(2) .stats-v2__entry-tooltip{
  left:50%;
  transform:translateX(-50%);
}
.stats-v2__entry-item:last-child .stats-v2__entry-tooltip{
  right:0;
  left:auto;
}
.stats-v2__entry-info:hover~.stats-v2__entry-tooltip,
.stats-v2__entry-info:focus-visible~.stats-v2__entry-tooltip,
.stats-v2__entry-item.is-info-open .stats-v2__entry-tooltip{
  display:block;
}
.stats-v2__entry-subchoices{
  grid-column:1;
  grid-row:2;
  max-width:460px;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
  margin:0 auto;
  padding-top:9px;
  border-top:1px solid rgba(94,231,242,.12);
}
.stats-v2__entry-subchoices[hidden]{display:none!important}
.stats-v2__entry-subchoice{
  min-width:0;
  min-height:43px;
  padding:8px 10px;
  border:1px solid rgba(94,231,242,.14);
  border-radius:999px;
  background:rgba(2,13,22,.46);
  color:#7197a0;
  box-shadow:none;
  font:900 .78rem "Orbitron",system-ui,sans-serif;
  cursor:pointer;
  transition:border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease;
}
.stats-v2__entry-subchoice:hover,
.stats-v2__entry-subchoice:focus-visible{
  border-color:rgba(94,231,242,.38);
  background:rgba(7,38,50,.76);
  color:#c9edf1;
  outline:none;
}
.stats-v2__entry-subchoice.is-active{
  border-color:rgba(73,236,247,.94);
  background:linear-gradient(180deg,rgba(7,83,113,.98),rgba(4,45,68,.98));
  color:#fff;
  box-shadow:inset 0 0 15px rgba(0,240,255,.17),0 0 16px rgba(0,229,255,.23);
}

/* Même langage visuel pour tous les choix à état de l'onglet STATS. */
.stats-v2 .stats-v2__triple-button,
.stats-v2 .stats-v2__chart-tool,
.stats-v2 .stats-v2__segment,
.stats-v2 .stats-v2__tab{
  border-color:rgba(94,231,242,.1);
  background:rgba(2,13,22,.34);
  color:#7197a0;
  box-shadow:none;
}
.stats-v2 .stats-v2__triple-button:hover,
.stats-v2 .stats-v2__triple-button:focus-visible,
.stats-v2 .stats-v2__chart-tool:hover,
.stats-v2 .stats-v2__chart-tool:focus-visible,
.stats-v2 .stats-v2__segment:hover,
.stats-v2 .stats-v2__segment:focus-visible,
.stats-v2 .stats-v2__tab:hover,
.stats-v2 .stats-v2__tab:focus-visible{
  border-color:rgba(94,231,242,.38);
  background:rgba(7,38,50,.72);
  color:#c9edf1;
  outline:none;
}
.stats-v2 .stats-v2__triple-button.is-active,
.stats-v2 .stats-v2__chart-tool.is-active,
.stats-v2 .stats-v2__segment.is-active,
.stats-v2 .stats-v2__tab.is-active{
  border-color:rgba(73,236,247,.9);
  background:linear-gradient(180deg,rgba(7,83,113,.96),rgba(4,45,68,.96));
  color:#fff;
  box-shadow:inset 0 0 14px rgba(0,240,255,.16),0 0 14px rgba(0,229,255,.2);
}

.stats-v2__period-bar{
  grid-column:2;
  grid-row:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(155px,210px);
  align-items:center;
  gap:7px 10px;
  min-height:58px;
  padding:3px 4px 3px 14px;
  border:0;
  border-left:1px solid rgba(94,231,242,.18);
  border-radius:0;
  background:linear-gradient(90deg,rgba(0,229,255,.035),transparent 72%);
}
.stats-v2__period-heading{
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  color:#91dbe2;
}
.stats-v2__period-heading span{
  color:#5ee8f1;
  font:900 1rem system-ui,-apple-system,sans-serif;
}
.stats-v2__period-heading strong{
  color:#dffcff;
  font-size:.76rem;
  line-height:1.2;
}
.stats-v2__period-bar .stats-v2__period-control{
  display:block!important;
  width:100%!important;
  min-width:0;
}
.stats-v2__period-bar .stats-v2__period-select,
body.page-stats .stats-v2__period-bar .stats-v2__period-select{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  min-height:42px;
  border-color:rgba(73,236,247,.54);
  background:#073047;
  box-shadow:inset 0 0 12px rgba(0,229,255,.1),0 0 10px rgba(0,229,255,.08);
  color:#f2feff;
  font-size:.78rem;
}
.stats-v2__period-bar>.stats-v2__range-label{
  grid-column:1/-1;
  min-width:0;
  padding:0 2px;
  color:#82aab3;
  font-size:.68rem;
  line-height:1.3;
  text-align:right;
  white-space:normal;
}
.stats-v2__entry-shell>.stats-v2__custom-range{
  grid-column:2;
  grid-row:2;
  margin:0;
  padding:9px;
  border-color:rgba(94,231,242,.15);
  background:rgba(3,18,28,.66);
}

@media (max-width:720px){
  .stats-v2__launch{
    grid-template-columns:1fr;
    grid-template-areas:
      "copy"
      "status";
    gap:8px;
    padding:11px 11px 10px;
  }
  .stats-v2 .stats-v2__launch h2{font-size:1.05rem}
  .stats-v2__launch-actions{
    grid-template-columns:repeat(2,minmax(0,1fr));
    width:100%;
  }
  .stats-v2__launch-button{
    width:100%;
    min-width:0;
    min-height:40px!important;
    padding:7px 6px!important;
    font-size:.72rem!important;
  }
  .stats-v2__launch-status{font-size:.65rem!important}
  .stats-v2__entry-shell{
    grid-template-columns:minmax(0,1fr);
    column-gap:0;
    row-gap:0;
    padding:8px;
  }
  .stats-v2__entry{
    grid-column:1;
    grid-row:1;
    max-width:none;
    gap:5px;
  }
  .stats-v2__entry-item{
    grid-template-columns:minmax(0,1fr);
    gap:0;
  }
  .stats-v2__entry-chip{
    min-height:58px;
    flex-direction:column;
    gap:4px;
    padding:7px 4px;
    font-size:.73rem;
    line-height:1.14;
  }
  .stats-v2__entry-icon{font-size:1rem}
  .stats-v2__entry-info{
    position:absolute;
    top:4px;
    right:4px;
    width:21px!important;
    min-width:21px!important;
    max-width:21px!important;
    height:21px!important;
    min-height:21px!important;
    max-height:21px!important;
    font-size:.62rem;
    background:rgba(3,20,29,.88);
  }
  .stats-v2__entry-tooltip{
    top:calc(100% + 6px);
    width:min(230px,calc(100vw - 48px));
    font-size:.73rem;
  }
  .stats-v2__entry-subchoices{
    grid-column:1;
    grid-row:2;
    max-width:none;
    margin-top:8px;
    padding-top:8px;
  }
  .stats-v2__entry-subchoice{
    min-height:42px;
    font-size:.75rem;
  }
  .stats-v2__period-bar{
    grid-column:1;
    grid-row:3;
    grid-template-columns:minmax(0,1fr) minmax(135px,155px);
    gap:6px 8px;
    min-height:0;
    margin-top:8px;
    padding:9px 2px 1px;
    border-left:0;
    border-top:1px solid rgba(94,231,242,.16);
    background:linear-gradient(180deg,rgba(0,229,255,.028),transparent 75%);
  }
  .stats-v2__period-heading strong{font-size:.73rem}
  .stats-v2__period-bar .stats-v2__period-select{
    min-height:40px;
    font-size:.75rem;
  }
  .stats-v2__period-bar>.stats-v2__range-label{
    padding-top:1px;
    font-size:.66rem;
    text-align:left;
  }
  .stats-v2__entry-shell>.stats-v2__custom-range{
    grid-column:1;
    grid-row:4;
    margin-top:8px;
    padding:8px;
  }
}
@media (min-width:721px) and (max-width:1080px){
  .stats-v2__entry-shell{
    grid-template-columns:minmax(0,1fr);
    row-gap:8px;
  }
  .stats-v2__entry,
  .stats-v2__entry-subchoices,
  .stats-v2__period-bar,
  .stats-v2__entry-shell>.stats-v2__custom-range{
    grid-column:1;
  }
  .stats-v2__entry{grid-row:1}
  .stats-v2__entry-subchoices{grid-row:2}
  .stats-v2__period-bar{
    grid-row:3;
    grid-template-columns:auto minmax(180px,240px) minmax(0,1fr);
    min-height:0;
    padding:9px 4px 2px;
    border-left:0;
    border-top:1px solid rgba(94,231,242,.16);
    background:linear-gradient(180deg,rgba(0,229,255,.028),transparent 75%);
  }
  .stats-v2__period-bar>.stats-v2__range-label{
    grid-column:auto;
    text-align:right;
  }
  .stats-v2__entry-shell>.stats-v2__custom-range{grid-row:4}
}
@media (max-width:370px){
  .stats-v2__entry-chip{
    min-height:61px;
    font-size:.68rem;
  }
  .stats-v2__entry-icon{font-size:.94rem}
  .stats-v2__entry-info{right:3px}
  .stats-v2__launch-button{font-size:.69rem!important}
}
@media (prefers-reduced-motion:reduce){
  .stats-v2__entry-chip,
  .stats-v2__entry-subchoice{transition:none!important}
}

/* ===== Source historique : stats-punctuality-evolution-summary-final ===== */
/* STATS — aperçu de l'évolution intégré au taux global. */
.stats-v2__punct-evolution{
  min-width:0;
  display:grid;
  grid-template-rows:auto;
  gap:0;
  align-self:center;
}
.stats-v2__punct-evolution.is-open{
  grid-template-rows:auto auto;
  gap:5px;
  align-self:stretch;
}
.stats-v2__punct-evolution-head{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.stats-v2__punct-evolution-head>div{
  min-width:0;
  display:grid;
  gap:2px;
}
.stats-v2__punct-evolution-head strong{
  color:#e8fcff;
  font-size:.74rem;
  line-height:1.1;
}
.stats-v2__punct-evolution-head span{
  color:#6f9ca7;
  font:700 .62rem/1.15 system-ui,-apple-system,sans-serif;
}
.stats-v2__punct-evolution:not(.is-open) .stats-v2__punct-evolution-head span{
  display:none;
}
.stats-v2__expand-button{
  width:auto!important;
  min-width:78px!important;
  max-width:none!important;
  height:31px!important;
  min-height:31px!important;
  max-height:31px!important;
  display:grid;
  place-items:center;
  margin:0!important;
  padding:0 10px!important;
  border:1px solid rgba(73,236,247,.68);
  border-radius:999px;
  background:linear-gradient(180deg,rgba(7,83,113,.94),rgba(4,45,68,.94));
  color:#f4ffff;
  box-shadow:inset 0 0 10px rgba(0,240,255,.13),0 0 12px rgba(0,229,255,.18);
  font:800 .64rem/1 system-ui,-apple-system,sans-serif;
  letter-spacing:.025em;
  white-space:nowrap;
  cursor:pointer;
  transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
}
.stats-v2__expand-button:hover,
.stats-v2__expand-button:focus-visible{
  background:linear-gradient(180deg,rgba(8,105,137,.98),rgba(4,56,80,.98));
  box-shadow:inset 0 0 12px rgba(0,240,255,.18),0 0 16px rgba(0,229,255,.3);
  transform:translateY(-1px);
  outline:none;
}
.stats-v2__mini-canvas{
  position:relative;
  min-width:0;
  width:100%;
  height:82px;
}
.stats-v2__evolution-summary{
  min-width:0;
  display:grid;
  grid-template-rows:minmax(74px,1fr) auto;
  gap:5px;
  animation:statsEvolutionOpen .18s ease-out;
}
.stats-v2__evolution-summary[hidden]{display:none!important}
.stats-v2__punct-evolution #statsV2PunctualityCopy{
  margin:0;
  color:#789da7;
  font-family:system-ui,-apple-system,sans-serif;
  font-size:.64rem;
  line-height:1.28;
}
.stats-v2__evolution-detail[hidden]{display:none!important}
.stats-v2__evolution-detail{
  animation:statsEvolutionOpen .18s ease-out;
}

/* L'anneau reste strictement carré, même quand la carte mobile s'étire. */
.stats-v2__ring{
  width:136px!important;
  height:136px!important;
  min-width:136px!important;
  min-height:136px!important;
  max-width:136px!important;
  max-height:136px!important;
  aspect-ratio:1/1!important;
  align-self:center!important;
  justify-self:center!important;
  overflow:hidden;
}
.stats-v2__ring::before{
  width:99px!important;
  height:99px!important;
  min-width:99px!important;
  min-height:99px!important;
  aspect-ratio:1/1!important;
}
.stats-v2__ring-value{
  width:75%;
  max-width:75%;
  justify-items:center;
}
.stats-v2__ring-value strong{
  display:block;
  max-width:100%;
  font-size:1.35rem!important;
  line-height:1!important;
  letter-spacing:-.075em!important;
  white-space:nowrap;
}
@keyframes statsEvolutionOpen{
  from{opacity:0;transform:translateY(-5px)}
  to{opacity:1;transform:translateY(0)}
}

@media (max-width:720px){
  .stats-v2__punctuality-card{
    align-items:stretch;
  }
  .stats-v2__punct-evolution{
    grid-template-rows:auto;
  }
  .stats-v2__punct-evolution.is-open{
    grid-template-rows:auto auto;
  }
  .stats-v2__evolution-summary{grid-template-rows:70px auto}
  .stats-v2__mini-canvas{height:70px}
  .stats-v2__punct-evolution-head strong{font-size:.7rem}
  .stats-v2__punct-evolution-head span{font-size:.58rem}
  .stats-v2__expand-button{
    width:auto!important;
    min-width:72px!important;
    max-width:none!important;
    height:28px!important;
    min-height:28px!important;
    max-height:28px!important;
    padding:0 8px!important;
    font-size:.6rem!important;
  }
  .stats-v2__ring{
    width:112px!important;
    height:112px!important;
    min-width:112px!important;
    min-height:112px!important;
    max-width:112px!important;
    max-height:112px!important;
  }
  .stats-v2__ring::before{
    width:80px!important;
    height:80px!important;
    min-width:80px!important;
    min-height:80px!important;
  }
  .stats-v2__ring-value strong{
    font-size:1.05rem!important;
  }
  .stats-v2__punct-evolution #statsV2PunctualityCopy{
    font-size:.6rem;
  }
}
@media (max-width:430px){
  .stats-v2__punctuality-card{
    gap:9px;
  }
  .stats-v2__punct-evolution{
    grid-template-rows:auto;
    gap:0;
  }
  .stats-v2__punct-evolution.is-open{
    grid-template-rows:auto auto;
    gap:3px;
  }
  .stats-v2__evolution-summary{grid-template-rows:64px auto;gap:3px}
  .stats-v2__ring{
    width:96px!important;
    height:96px!important;
    min-width:96px!important;
    min-height:96px!important;
    max-width:96px!important;
    max-height:96px!important;
  }
  .stats-v2__ring::before{
    width:69px!important;
    height:69px!important;
    min-width:69px!important;
    min-height:69px!important;
  }
  .stats-v2__ring-value strong{
    font-size:.9rem!important;
    letter-spacing:-.09em!important;
  }
  .stats-v2__ring-value span{
    font-size:.43rem!important;
    letter-spacing:.065em!important;
  }
  .stats-v2__mini-canvas{height:64px}
  .stats-v2__punct-evolution #statsV2PunctualityCopy{
    display:-webkit-box;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
}
@media (prefers-reduced-motion:reduce){
  .stats-v2__evolution-summary,
  .stats-v2__evolution-detail{animation:none}
}
