/*
 * La Bétaillère — mobile v7 (fichier conservé pour une mise à jour sûre)
 * Couche mobile unique pour index1.html.
 * Elle neutralise les anciens correctifs téléphone sans modifier le rendu PC.
 */

@media (max-width: 720px), (hover: none) and (pointer: coarse) and (max-width: 900px) {
  :root {
    --top-bar-height: 64px !important;
    --lb-topbar-h: 64px !important;
    --bottom-bar-height: 66px !important;
    --lb-bottomnav-h: 66px !important;
    --tableau-viewbar-h: 0px;
    --lb-secondary-bar-height: 0px;
    --lb-mobile-gutter: 10px;
    --lb-mobile-radius: 17px;
  }

  html {
    width: 100%;
    min-width: 0;
    overflow-x: clip !important;
    scroll-padding-top: calc(var(--top-bar-height) + env(safe-area-inset-top, 0px) + 10px);
    scroll-padding-bottom: calc(var(--bottom-bar-height) + env(safe-area-inset-bottom, 0px) + 12px);
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }

  body.lb-v3 {
    width: 100% !important;
    min-width: 0 !important;
    min-height: var(--lb-visual-height, 100dvh);
    margin: 0 !important;
    padding:
      calc(var(--top-bar-height) + env(safe-area-inset-top, 0px) + 9px)
      max(var(--lb-mobile-gutter), env(safe-area-inset-right, 0px))
      calc(var(--bottom-bar-height) + env(safe-area-inset-bottom, 0px) + 16px)
      max(var(--lb-mobile-gutter), env(safe-area-inset-left, 0px)) !important;
    overflow-x: clip !important;
    font-size: 16px !important;
    line-height: 1.42;
  }

  body.lb-v3 *,
  body.lb-v3 *::before,
  body.lb-v3 *::after {
    box-sizing: border-box;
  }

  body.lb-v3 :where(
    .app-page,
    .command-console,
    .console-section,
    .section-content,
    .home-dashboard,
    .home-card,
    .search-card,
    .stats-v2,
    .stats-v2__card,
    .fav-grid,
    .fav-card,
    .media-section,
    .map-embed-shell,
    .lb-page-intro
  ) {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  /*
   * En-tête mobile : disposition historique validée sur index.
   * Grand logo, réseaux en grille 2 × 2 et bouton Soutenir complet.
   */
  body.lb-v3 .top-bar {
    top: 0 !important;
    height: calc(var(--top-bar-height) + env(safe-area-inset-top, 0px)) !important;
    min-height: 0 !important;
    padding: env(safe-area-inset-top, 0px) 0 0 !important;
  }

  body.lb-v3 .top-bar__inner {
    width: 100% !important;
    height: var(--top-bar-height) !important;
    min-height: 0 !important;
    padding: 0 max(10px, env(safe-area-inset-right, 0px)) 0 max(10px, env(safe-area-inset-left, 0px)) !important;
    gap: 7px !important;
  }

  body.lb-v3 .top-bar__brand {
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }

  body.lb-v3 .top-bar__brand-logos {
    min-width: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
  }

  body.lb-v3 .top-bar__logo-icon {
    width: auto !important;
    height: 40px !important;
    flex: 0 0 auto;
  }

  body.lb-v3 .top-bar__logo-text {
    display: block !important;
    width: auto !important;
    height: 23px !important;
    max-width: min(34vw, 132px) !important;
    object-fit: contain;
  }

  body.lb-v3 .top-bar__actions {
    min-width: 0 !important;
    flex: 0 0 auto;
    display: flex !important;
    align-items: center !important;
    gap: 7px !important;
  }

  body.lb-v3 .lb-header-status {
    display: none !important;
  }

  /*
   * Les réseaux sociaux restent directement accessibles dans la barre fixe.
   * Les quatre liens réutilisent exactement les URL et SVG de la version PC.
   */
  body.lb-v3 .top-bar__socials {
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, 22px) !important;
    align-items: center !important;
    justify-items: center !important;
    gap: 2px 4px !important;
  }

  body.lb-v3 .top-bar__social-link {
    width: 22px !important;
    min-width: 22px !important;
    height: 20px !important;
    min-height: 20px !important;
    padding: 2px !important;
    display: inline-grid !important;
    place-items: center !important;
    border: 0 !important;
    border-radius: 8px !important;
    color: rgba(225, 250, 255, 0.86) !important;
  }

  body.lb-v3 .top-bar__social-link svg {
    width: 16px !important;
    height: 16px !important;
    fill: currentColor !important;
  }

  body.lb-v3 .top-bar__social-link:active,
  body.lb-v3 .top-bar__social-link:focus-visible {
    color: #ffffff !important;
    background: rgba(49, 231, 242, 0.12) !important;
    box-shadow: 0 0 12px rgba(49, 231, 242, 0.16) !important;
  }

  body.lb-v3 .top-bar__support {
    width: auto !important;
    min-width: 62px !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 5px 9px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0 !important;
    border-radius: 999px !important;
  }

  body.lb-v3 .top-bar__support .euro {
    display: none !important;
  }

  body.lb-v3 .top-bar__support .label {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  body.lb-v3 .top-bar__support .line1 {
    font-size: 0.64rem !important;
    font-weight: 900 !important;
  }

  body.lb-v3 .top-bar__support .line2 {
    display: block !important;
    margin-top: 1px !important;
    font-size: 0.54rem !important;
    font-weight: 800 !important;
  }

  body.lb-v3 .lb-header-account {
    display: none !important;
  }

  /* Les sept destinations restent directement accessibles. */
  body.lb-v3 .bottom-nav {
    inset: auto 0 0 !important;
    width: 100% !important;
    height: calc(var(--bottom-bar-height) + env(safe-area-inset-bottom, 0px)) !important;
    min-height: 0 !important;
    padding:
      5px max(2px, env(safe-area-inset-right, 0px))
      max(5px, env(safe-area-inset-bottom, 0px))
      max(2px, env(safe-area-inset-left, 0px)) !important;
    overflow: hidden !important;
  }

  body.lb-v3 .bottom-nav__items {
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    gap: 1px !important;
  }

  body.lb-v3 .bottom-nav__item,
  body.lb-v3 .bottom-nav__item[href="#stats"],
  body.lb-v3 .bottom-nav__item[href="#loisirs"],
  body.lb-v3 #bottomAccountBtn {
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 4px 1px 3px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 2px !important;
    overflow: hidden !important;
    border: 0 !important;
    border-radius: 11px !important;
  }

  body.lb-v3 #lbMoreNavButton,
  body.lb-v3 #lbMoreSheet {
    display: none !important;
  }

  body.lb-v3 .bottom-nav__icon,
  body.lb-v3 .bottom-nav__icon-img {
    width: 22px !important;
    height: 22px !important;
    max-width: 22px !important;
    max-height: 22px !important;
    flex: 0 0 22px !important;
  }

  body.lb-v3 .bottom-nav__label,
  body.lb-v3 .bottom-nav__item--search .bottom-nav__label {
    width: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
    font-size: 0.66rem !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: -0.015em !important;
    text-align: center !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
  }

  body.lb-v3 .bottom-nav__item.active,
  body.lb-v3 .bottom-nav__item.is-active,
  body.lb-v3 .bottom-nav__item[aria-current="page"] {
    border: 1px solid rgba(60, 230, 245, 0.45) !important;
    background: linear-gradient(180deg, rgba(13, 164, 192, 0.26), rgba(7, 64, 91, 0.18)) !important;
    box-shadow: inset 0 0 15px rgba(0, 225, 242, 0.12), 0 0 12px rgba(0, 219, 238, 0.09) !important;
  }

  body.lb-v3.lb-keyboard-open .bottom-nav {
    transform: translateY(110%);
    pointer-events: none;
  }

  /* Titres de pages : une barre de contexte, pas une grande carte. */
  body.lb-v3 .lb-page-intro {
    min-height: 48px !important;
    margin: 0 0 9px !important;
    padding: 8px 10px !important;
    display: flex !important;
    gap: 8px !important;
    border-radius: 14px !important;
  }

  body.lb-v3 .lb-page-intro__eyebrow,
  body.lb-v3 .lb-page-intro p {
    display: none !important;
  }

  body.lb-v3 .lb-page-intro h1 {
    width: 100% !important;
    margin: 0 !important;
    font-size: 1rem !important;
    line-height: 1.15 !important;
    overflow-wrap: anywhere !important;
    white-space: normal !important;
  }

  body.lb-v3 .lb-page-intro__actions {
    display: none !important;
  }

  body.lb-v3 .lb-page-intro__copy {
    width: 100% !important;
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }

  /*
   * Accueil compact inspiré de l'index historique.
   * La hauteur reste libre afin qu'un contenu exceptionnel puisse toujours défiler.
   */
  body.lb-v3 #home {
    width: 100% !important;
    margin: 0 auto !important;
  }

  body.lb-v3.page-home {
    padding-top: calc(var(--top-bar-height) + env(safe-area-inset-top, 0px) + 6px) !important;
    padding-bottom: calc(var(--bottom-bar-height) + env(safe-area-inset-bottom, 0px) + 8px) !important;
  }

  body.lb-v3 #home .home-dashboard {
    width: 100% !important;
    margin: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-template-areas:
      "welcome welcome"
      "favorites favorites"
      "traffic quick"
      "traffic punct"
      "voice voice" !important;
    grid-auto-flow: row !important;
    align-items: stretch !important;
    column-gap: 8px !important;
    row-gap: 8px !important;
  }

  body.lb-v3 #home .home-welcome-line {
    grid-area: welcome !important;
    width: 100% !important;
    min-height: 24px !important;
    margin: 0 !important;
    padding: 1px 4px 2px !important;
    display: block !important;
    overflow: visible !important;
    color: var(--lb-text) !important;
    font-size: clamp(0.82rem, 3.5vw, 0.98rem) !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }

  body.lb-v3 #home .home-card {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 9px !important;
    align-self: stretch !important;
    border-radius: 16px !important;
    overflow: hidden !important;
    transform: none !important;
  }

  body.lb-v3 #home .home-card[aria-label="Mes Bétaillères favorites"] {
    grid-area: favorites !important;
  }

  body.lb-v3 #home .home-card[aria-label="Info trafic"] {
    grid-area: traffic !important;
  }

  body.lb-v3 #home .live-wall-card--home {
    grid-area: voice !important;
  }

  body.lb-v3 #home .home-quick-card {
    grid-area: quick !important;
  }

  body.lb-v3 #home .home-punct-card {
    grid-area: punct !important;
  }

  body.lb-v3.page-home:not(.monde-betaillere) #home .home-dashboard > .home-card > h2,
  body.lb-v3.page-home:not(.monde-betaillere) #home .home-dashboard > .home-card .live-wall-title {
    margin: 0 0 6px !important;
    min-height: 1.16em !important;
    color: var(--lb-cyan) !important;
    font-family: var(--lb-font-display) !important;
    font-size: clamp(13px, 3.55vw, 14px) !important;
    font-weight: 800 !important;
    line-height: 1.16 !important;
    letter-spacing: 0.02em !important;
    text-align: center !important;
    text-shadow: 0 0 10px rgba(49, 231, 242, 0.2) !important;
  }

  body.lb-v3 #home .home-card[aria-label="Info trafic"] {
    min-height: 0 !important;
    display: flex !important;
    flex-direction: column !important;
  }

  body.lb-v3 #home .traffic-subline {
    display: none !important;
  }

  body.lb-v3 #home .traffic-split {
    width: 100% !important;
    min-height: 0 !important;
    flex: 1 1 auto !important;
    display: grid !important;
    grid-template-rows: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }

  body.lb-v3 #home .traffic-split-row {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 6px 5px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 5px !important;
    position: relative !important;
    isolation: isolate !important;
    border: 1px solid var(--traffic-line, rgba(126, 247, 255, 0.45)) !important;
    border-radius: 12px !important;
    background:
      radial-gradient(circle at 50% 12%, var(--traffic-glow, rgba(0, 240, 255, 0.17)), transparent 62%),
      linear-gradient(180deg, rgba(8, 32, 48, 0.9), rgba(2, 15, 27, 0.86)) !important;
    box-shadow:
      inset 0 0 0 1px rgba(255, 255, 255, 0.025),
      0 0 13px var(--traffic-glow, rgba(0, 240, 255, 0.17)) !important;
    text-align: center !important;
  }

  body.lb-v3 #home .traffic-split-row::before {
    z-index: -1 !important;
    opacity: 0.62 !important;
    background:
      radial-gradient(circle at 50% 20%, var(--traffic-glow, rgba(0, 240, 255, 0.18)), transparent 64%) !important;
  }

  body.lb-v3 #home .traffic-split-row::after {
    left: 10px !important;
    right: 10px !important;
    bottom: 4px !important;
    z-index: 0 !important;
    background:
      linear-gradient(90deg, transparent, var(--traffic-line, rgba(126, 247, 255, 0.45)), transparent) !important;
    opacity: 0.72 !important;
  }

  body.lb-v3 #home .traffic-split-line {
    width: 100% !important;
    min-width: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    position: relative !important;
    z-index: 1 !important;
    font-size: clamp(11.5px, 3.15vw, 12.5px) !important;
    font-weight: 900 !important;
    line-height: 1.12 !important;
    text-align: center !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  body.lb-v3 #home .traffic-pill {
    width: auto !important;
    min-width: min(104px, 86%) !important;
    max-width: 100% !important;
    min-height: 25px !important;
    margin: 0 !important;
    padding: 4px 7px !important;
    flex: 0 0 auto;
    overflow: hidden !important;
    position: relative !important;
    z-index: 1 !important;
    font-size: clamp(9px, 2.5vw, 10px) !important;
    line-height: 1.08 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  body.lb-v3 #home .home-quick-presets {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-content: center !important;
    gap: 4px !important;
    border: 0 !important;
    background: transparent !important;
  }

  body.lb-v3 #home .home-quick-presets__label {
    grid-column: 1 / -1;
    font-size: 0.72rem !important;
  }

  body.lb-v3 #home .home-quick-presets__btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 25px !important;
    padding: 4px 3px !important;
    overflow: hidden !important;
    font-size: clamp(10px, 2.75vw, 11px) !important;
    line-height: 1.08 !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
  }

  body.lb-v3 #home .home-punct-card {
    height: auto !important;
    min-height: 94px !important;
    padding: 8px 7px 5px !important;
    overflow: hidden !important;
  }

  body.lb-v3 #home #homePunctCardTitle {
    margin: 0 0 2px !important;
    font-size: clamp(13px, 3.55vw, 14px) !important;
  }

  body.lb-v3 #home #homePunctualityChartHost.home-punct-chart-host {
    width: 100% !important;
    height: 66px !important;
    min-height: 66px !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-evenly !important;
    gap: 4px !important;
    overflow: hidden !important;
  }

  body.lb-v3 #home .home-punct-chart-wrap {
    width: 56px !important;
    height: 64px !important;
    margin: 0 !important;
    flex: 0 0 56px !important;
    overflow: visible !important;
  }

  body.lb-v3 #home .home-punct-chart-wrap > canvas {
    width: 56px !important;
    height: 56px !important;
  }

  body.lb-v3 #home .home-punct-mini-label {
    bottom: 0 !important;
    font-size: 0.58rem !important;
  }

  body.lb-v3 #home .live-wall-card--home {
    display: block !important;
    min-height: 0 !important;
    padding: 9px 10px 8px !important;
  }

  body.lb-v3 #home .live-wall-head {
    margin: 0 0 5px !important;
  }

  body.lb-v3 #home .lb-community-actions {
    width: 100% !important;
    margin: 0 0 5px !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }

  body.lb-v3 #home .lb-community-btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 32px !important;
    padding: 5px 7px !important;
    font-size: 0.7rem !important;
  }

  body.lb-v3 #home .live-wall-feed--home {
    max-height: 54px !important;
    margin: 0 !important;
    padding: 0 3px 0 0 !important;
    overflow-y: auto !important;
  }

  body.lb-v3 #home .live-wall-item,
  body.lb-v3 #home .live-wall-item--home,
  body.lb-v3 #home .live-wall-item-text,
  body.lb-v3 #home .live-wall-empty {
    font-size: clamp(0.67rem, 2.75vw, 0.78rem) !important;
    line-height: 1.18 !important;
  }

  body.lb-v3 #home .live-wall-meta,
  body.lb-v3 #home .live-wall-inline-meta {
    font-size: 0.7rem !important;
  }

  body.lb-v3 #home .live-wall-form {
    width: 100% !important;
    margin: 5px 0 0 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 5px !important;
  }

  body.lb-v3 #home .live-wall-form input {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 34px !important;
    height: 34px !important;
    padding: 5px 8px !important;
    font-size: 16px !important;
  }

  body.lb-v3 #home .live-wall-form button {
    width: auto !important;
    min-width: 72px !important;
    min-height: 34px !important;
    height: 34px !important;
    padding: 5px 8px !important;
    font-size: 0.7rem !important;
  }

  body.lb-v3 #home .home-fav-preview {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }

  body.lb-v3 #home .home-fav-row {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 66px !important;
    padding: 7px !important;
    gap: 4px !important;
    overflow: hidden !important;
  }

  body.lb-v3 #home .home-fav-train {
    font-size: clamp(12px, 3.1vw, 13px) !important;
    line-height: 1.12 !important;
  }

  body.lb-v3 #home #homeFavSlot .home-fav-train-no {
    font-size: clamp(12px, 3.15vw, 13px) !important;
    line-height: 1.12 !important;
  }

  body.lb-v3 #home #homeFavSlot :is(.home-fav-route, .home-fav-time, .home-fav-meta) {
    font-size: clamp(11.5px, 3vw, 12.5px) !important;
    line-height: 1.18 !important;
  }

  body.lb-v3 #home .home-fav-pill,
  body.lb-v3 #home .fav-state-badge,
  body.lb-v3 #home .home-fav-badge {
    max-width: 66px !important;
    padding: 3px 5px !important;
    font-size: clamp(8.5px, 2.25vw, 9.5px) !important;
    line-height: 1.05 !important;
  }

  /* Recherche : cartes fluides, contrôles tactiles et aucun débordement. */
  body.lb-v3 #search.command-console {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.lb-v3 #search > details.console-section,
  body.lb-v3 #search .section-content {
    width: 100% !important;
    margin: 0 !important;
  }

  body.lb-v3 #search .section-content {
    padding: 12px !important;
  }

  body.lb-v3 #search .lb-search-modes {
    width: 100% !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 6px !important;
  }

  body.lb-v3 #search .lb-search-mode {
    min-width: 0 !important;
    min-height: 52px !important;
    padding: 7px 4px !important;
    gap: 4px !important;
    font-size: 0.78rem !important;
    line-height: 1.08 !important;
    white-space: normal !important;
  }

  body.lb-v3 #search .lb-search-mode > span:first-child {
    display: none !important;
  }

  body.lb-v3 #search > details.console-section {
    overflow: visible !important;
  }

  body.lb-v3 #search :where(.manual-compact-grid, .compact-fields, .tableau-train-search__fields) {
    width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
  }

  body.lb-v3 #search :where(input, select, textarea, button) {
    max-width: 100% !important;
  }

  body.lb-v3 #search :where(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
    font-size: 16px !important;
  }

  body.lb-v3 #search select.tableau-mode-switch__select.lb-mode-select-enhanced {
    position: absolute !important;
    inset: auto auto auto 0 !important;
    width: 1px !important;
    min-width: 1px !important;
    max-width: 1px !important;
    height: 1px !important;
    min-height: 1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
  }

  body.lb-v3 #search :where(input, label, select).visually-hidden {
    position: absolute !important;
    inset: auto auto auto 0 !important;
    width: 1px !important;
    min-width: 1px !important;
    max-width: 1px !important;
    height: 1px !important;
    min-height: 1px !important;
    max-height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
    contain: size layout paint !important;
  }

  body.lb-v3 #search :where(.search-card, .compact-presets, .compact-train-search, .compact-fields) {
    width: 100% !important;
    min-width: 0 !important;
    padding: 12px !important;
  }

  body.lb-v3 #search :where(.preset-btn, .proposer-btn, #tableauTrainSearchSubmit, #loadTrains) {
    min-height: 46px !important;
    font-size: 0.9rem !important;
  }

  /* Tableau principal : priorité à la lecture, avec défilement assumé. */
  body.lb-v3 #trainInfo {
    --lb-row-h: 36px !important;
    --lb-cell-pad-y: 7px !important;
    --lb-row-font-size: 13px !important;
    width: 100vw !important;
    max-width: 100vw !important;
    margin: 0 calc(50% - 50vw) calc(var(--bottom-bar-height) + 18px) !important;
    overflow: visible !important;
  }

  body.lb-v3 #trainInfo .lb-table-swipe-hint {
    width: 100% !important;
    min-height: 27px !important;
    padding: 5px 10px !important;
    display: block !important;
    color: #b9dce5 !important;
    background: rgba(4, 19, 31, 0.94) !important;
    border-block: 1px solid rgba(58, 221, 238, 0.2) !important;
    font-size: 0.76rem !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-align: center !important;
  }

  body.lb-v3 #trainInfo .table-scroll {
    width: 100vw !important;
    max-width: 100vw !important;
    height: calc(var(--lb-visual-height, 100dvh) - var(--top-bar-height) - var(--bottom-bar-height) - var(--tableau-viewbar-h, 0px) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 38px) !important;
    min-height: 280px !important;
    max-height: none !important;
    overflow: auto !important;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scroll-snap-type: none !important;
    -webkit-overflow-scrolling: touch;
  }

  body.lb-v3 #trainInfo table {
    width: max-content !important;
    min-width: 100% !important;
    height: auto !important;
    table-layout: fixed !important;
    font-size: 13px !important;
    line-height: 1.16 !important;
  }

  body.lb-v3 #trainInfo table tbody tr {
    height: 36px !important;
    min-height: 36px !important;
  }

  body.lb-v3 #trainInfo table th,
  body.lb-v3 #trainInfo table td {
    height: 36px !important;
    padding: 6px 5px !important;
    font-size: 13px !important;
    line-height: 1.16 !important;
    vertical-align: middle !important;
  }

  body.lb-v3 #trainInfo table thead th {
    min-height: 48px !important;
    height: 48px !important;
    font-size: 13px !important;
  }

  body.lb-v3 #trainInfo table th:first-child,
  body.lb-v3 #trainInfo table td:first-child {
    width: 128px !important;
    min-width: 128px !important;
    max-width: 128px !important;
    padding-inline: 7px 4px !important;
    font-size: 12px !important;
  }

  body.lb-v3 #trainInfo table th:not(:first-child),
  body.lb-v3 #trainInfo table td:not(:first-child) {
    width: 72px !important;
    min-width: 72px !important;
    max-width: 72px !important;
  }

  body.lb-v3 #trainInfo table td:first-child .gare-label {
    max-width: 83px !important;
    font-size: 12px !important;
  }

  body.lb-v3 #trainInfo table td:first-child .wx,
  body.lb-v3 #trainInfo table td:first-child .wx .wx-t {
    max-width: 32px !important;
    font-size: 10px !important;
  }

  body.lb-v3 #trainInfo :where(.delay-strike, .delayed, .deleted, .new-start, .added-stop, .retard) {
    font-size: 12px !important;
    line-height: 1.08 !important;
  }

  body.lb-v3 #trainInfo .voie-badge {
    padding: 2px 4px !important;
    font-size: 10px !important;
  }

  body.lb-v3 #tableauViewNav.is-visible,
  body.lb-v3 #loisirsViewNav.is-visible {
    left: 6px !important;
    right: 6px !important;
    bottom: calc(var(--bottom-bar-height) + env(safe-area-inset-bottom, 0px) + 5px) !important;
    min-height: 52px !important;
    padding: 5px !important;
    gap: 5px !important;
    border-radius: 14px !important;
  }

  body.lb-v3 #tableauViewNav .tableau-view-tab,
  body.lb-v3 #loisirsViewNav .tableau-view-tab {
    min-width: 0 !important;
    min-height: 40px !important;
    padding: 6px 4px !important;
    font-size: 0.72rem !important;
    line-height: 1.08 !important;
  }

  /* Favoris et fiches : on annule les variantes ultra-compactes historiques. */
  body.lb-v3 #favTrainsWidget {
    width: 100% !important;
    margin: 0 auto !important;
    padding: 10px !important;
  }

  body.lb-v3 #favTrainsWidget .fav-title {
    margin: 0 0 10px !important;
    padding: 7px 10px !important;
    font-size: 0.96rem !important;
  }

  body.lb-v3 #favTrainsWidget .fav-grid {
    width: 100% !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
  }

  body.lb-v3 #favTrainsWidget .fav-card {
    width: 100% !important;
    padding: 13px !important;
    border-radius: 16px !important;
  }

  body.lb-v3 #favTrainsWidget .fav-train {
    font-size: 1rem !important;
  }

  body.lb-v3 #favTrainsWidget :where(.fav-meta, .fav-line, .fav-times, .fav-box-body) {
    font-size: 0.84rem !important;
    line-height: 1.25 !important;
  }

  body.lb-v3 #favTrainsWidget :where(.fav-tag, .fav-details-summary, .fav-cause, .fav-cause-inline) {
    font-size: 0.74rem !important;
  }

  /* Stats : les tableaux défilent, les textes ne rétrécissent plus. */
  body.lb-v3 #stats,
  body.lb-v3 #statsConsole,
  body.lb-v3 #statsConsole > .section-content,
  body.lb-v3 .stats-v2 {
    width: 100% !important;
    min-width: 0 !important;
  }

  body.lb-v3 .stats-v2 {
    padding: 0 !important;
    font-size: 0.9rem !important;
  }

  body.lb-v3 .stats-v2__card {
    width: 100% !important;
    padding: 12px !important;
    overflow: hidden !important;
  }

  body.lb-v3 :where(.stats-v2__entry, .stats-v2__entry-controls, .stats-v2__periods, .stats-v2__choices) {
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.lb-v3 :where(
    .stats-v2__entry-chip,
    .stats-v2__entry-subchoice,
    .stats-v2__choice,
    .stats-v2__period-chip
  ) {
    min-height: 44px !important;
    font-size: 0.8rem !important;
    line-height: 1.14 !important;
  }

  body.lb-v3 :where(.stats-v2__table-wrap, .stats-table) {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  body.lb-v3 :where(.stats-v2__table, .stats-table table) {
    width: max-content !important;
    min-width: 100% !important;
    font-size: 0.82rem !important;
  }

  body.lb-v3 :where(.stats-v2__table, .stats-table table) th,
  body.lb-v3 :where(.stats-v2__table, .stats-table table) td {
    min-width: 78px;
    padding: 8px 7px !important;
    font-size: 0.82rem !important;
    line-height: 1.2 !important;
    white-space: nowrap;
  }

  /* Carte, loisirs et jeu intégré : hauteur utile réelle, sans passer sous les barres. */
  body.lb-v3 #carte.media-section,
  body.lb-v3 #multimedia.media-section,
  body.lb-v3 #divertissement.media-section,
  body.lb-v3 #jeuContainer.media-section {
    width: 100% !important;
    margin: 0 !important;
    padding: 9px !important;
    overflow: hidden !important;
  }

  body.lb-v3 #carte .map-embed-shell,
  body.lb-v3 #jeuContainer .map-embed-shell {
    width: 100% !important;
    min-height: calc(var(--lb-visual-height, 100dvh) - var(--top-bar-height) - var(--bottom-bar-height) - var(--loisirs-viewbar-h, 0px) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 92px) !important;
    max-height: none !important;
  }

  body.lb-v3 #carte iframe,
  body.lb-v3 #jeuContainer iframe {
    width: 100% !important;
    min-width: 0 !important;
    min-height: inherit !important;
    border: 0 !important;
  }

  /* Dialogues réellement utilisables avec Safari/Chrome mobile et le clavier. */
  body.lb-v3 :where(
    .lb-auth-modal,
    .selection-modal,
    .faq-modal,
    #betaModal,
    .table-modal
  ) {
    width: 100vw !important;
    max-width: 100vw !important;
    height: var(--lb-visual-height, 100dvh) !important;
    max-height: var(--lb-visual-height, 100dvh) !important;
    padding:
      calc(env(safe-area-inset-top, 0px) + 8px)
      max(8px, env(safe-area-inset-right, 0px))
      calc(env(safe-area-inset-bottom, 0px) + 8px)
      max(8px, env(safe-area-inset-left, 0px)) !important;
    overflow: hidden !important;
  }

  body.lb-v3 :where(
    .lb-auth-card,
    .selection-modal__panel,
    .faq-container,
    #betaModal > div,
    .table-modal-content
  ) {
    width: 100% !important;
    max-width: 100% !important;
    max-height: calc(var(--lb-visual-height, 100dvh) - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 16px) !important;
    margin: auto !important;
    padding: 14px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    border-radius: 18px !important;
  }

  body.lb-v3 :where(.lb-auth-card, .selection-modal__panel, .faq-container) :where(input, select, textarea) {
    max-width: 100% !important;
    font-size: 16px !important;
  }

  body.lb-v3 #cookieBanner.cookie-banner {
    left: max(8px, env(safe-area-inset-left, 0px)) !important;
    right: max(8px, env(safe-area-inset-right, 0px)) !important;
    bottom: calc(var(--bottom-bar-height) + env(safe-area-inset-bottom, 0px) + 8px) !important;
    width: auto !important;
    max-width: none !important;
  }

  /* Le bouton Mode Bétail ne masque plus les actions du tableau. */
  body.lb-v3 #monde-betaillere-btn {
    right: max(8px, env(safe-area-inset-right, 0px)) !important;
    bottom: calc(
      var(--bottom-bar-height) +
      var(--lb-secondary-bar-height, 0px) +
      env(safe-area-inset-bottom, 0px) +
      10px
    ) !important;
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
  }
}

/* Téléphones courts et Safari avec barre d'adresse visible : même contenu, plus serré. */
@media (max-width: 720px) and (max-height: 740px) {
  body.lb-v3 #home .home-dashboard {
    column-gap: 6px !important;
    row-gap: 6px !important;
  }

  body.lb-v3 #home .home-welcome-line {
    min-height: 20px !important;
    padding-block: 0 !important;
    font-size: clamp(0.78rem, 3.25vw, 0.9rem) !important;
  }

  body.lb-v3 #home .home-card {
    padding: 8px !important;
  }

  body.lb-v3 #home .home-fav-row {
    min-height: 60px !important;
    padding: 6px !important;
  }

  body.lb-v3 #home .home-quick-presets__btn,
  body.lb-v3 #home .traffic-pill {
    min-height: 23px !important;
  }

  body.lb-v3 #home .home-punct-card {
    min-height: 88px !important;
    padding-bottom: 3px !important;
  }

  body.lb-v3 #home #homePunctualityChartHost.home-punct-chart-host {
    height: 61px !important;
    min-height: 61px !important;
  }

  body.lb-v3 #home .home-punct-chart-wrap {
    width: 52px !important;
    height: 60px !important;
    flex-basis: 52px !important;
  }

  body.lb-v3 #home .home-punct-chart-wrap > canvas {
    width: 52px !important;
    height: 52px !important;
  }

  body.lb-v3 #home .live-wall-card--home {
    padding: 8px !important;
  }

  body.lb-v3 #home .lb-community-btn {
    min-height: 30px !important;
  }

  body.lb-v3 #home .live-wall-feed--home {
    max-height: 46px !important;
  }

  body.lb-v3 #home .live-wall-form input,
  body.lb-v3 #home .live-wall-form button {
    height: 32px !important;
    min-height: 32px !important;
  }
}

@media (max-width: 350px) {
  body.lb-v3 .top-bar__inner {
    padding-inline: max(7px, env(safe-area-inset-left, 0px)) max(7px, env(safe-area-inset-right, 0px)) !important;
    gap: 4px !important;
  }

  body.lb-v3 .top-bar__logo-icon {
    height: 36px !important;
  }

  body.lb-v3 .top-bar__logo-text {
    display: block !important;
    height: 21px !important;
    max-width: 33vw !important;
  }

  body.lb-v3 .top-bar__actions {
    gap: 4px !important;
  }

  body.lb-v3 .top-bar__socials {
    grid-template-columns: repeat(2, 20px) !important;
    gap: 2px !important;
  }

  body.lb-v3 .top-bar__social-link {
    width: 20px !important;
    min-width: 20px !important;
    padding-inline: 2px !important;
  }

  body.lb-v3 .top-bar__support {
    min-width: 58px !important;
    height: 36px !important;
    min-height: 36px !important;
    padding-inline: 7px !important;
  }

  body.lb-v3 .bottom-nav__label,
  body.lb-v3 .bottom-nav__item--search .bottom-nav__label {
    font-size: 0.6rem !important;
  }

  body.lb-v3 .bottom-nav__icon,
  body.lb-v3 .bottom-nav__icon-img {
    width: 20px !important;
    height: 20px !important;
    max-width: 20px !important;
    max-height: 20px !important;
    flex-basis: 20px !important;
  }

  body.lb-v3 #home .traffic-pill {
    min-width: 88px !important;
    font-size: 0.59rem !important;
  }

  body.lb-v3 #search .lb-search-mode {
    font-size: 0.7rem !important;
  }
}

@media (hover: none) and (pointer: coarse) and (orientation: landscape) and (max-height: 520px) {
  :root {
    --top-bar-height: 52px !important;
    --lb-topbar-h: 52px !important;
    --bottom-bar-height: 58px !important;
    --lb-bottomnav-h: 58px !important;
  }

  body.lb-v3 .top-bar__logo-icon {
    height: 28px !important;
  }

  body.lb-v3 .top-bar__logo-text {
    height: 16px !important;
  }

  body.lb-v3 .bottom-nav__icon,
  body.lb-v3 .bottom-nav__icon-img {
    width: 19px !important;
    height: 19px !important;
    max-width: 19px !important;
    max-height: 19px !important;
    flex-basis: 19px !important;
  }

  body.lb-v3 #carte .map-embed-shell,
  body.lb-v3 #jeuContainer .map-embed-shell {
    min-height: calc(var(--lb-visual-height, 100dvh) - var(--top-bar-height) - var(--bottom-bar-height) - 40px) !important;
  }
}

/* =========================================================
   Recherche mobile v8 — dense, tactile et sans cartes empilées
   ========================================================= */
@media (max-width: 720px) {
  body.lb-v3 #search .section-content {
    padding: 10px !important;
  }

  body.lb-v3 #search .tableau-mode-switch {
    margin-bottom: 9px !important;
  }

  body.lb-v3 #search .tableau-mode-switch__label {
    margin-bottom: 6px !important;
    font-size: 0.78rem !important;
  }

  body.lb-v3 #search .lb-search-modes {
    gap: 6px !important;
  }

  body.lb-v3 #search .lb-search-mode {
    min-height: 48px !important;
    padding: 7px 5px !important;
    border-radius: 11px !important;
    font-size: clamp(0.74rem, 3vw, 0.82rem) !important;
    line-height: 1.08 !important;
  }

  body.lb-v3 #search .lb-search-mode > span:first-child {
    display: none !important;
  }

  body.lb-v3 #search .lb-mode-panel {
    padding: 10px !important;
    gap: 7px !important;
    border-radius: 14px !important;
  }

  body.lb-v3 #search .lb-mode-panel__title {
    margin: 0 0 7px !important;
    font-size: 0.82rem !important;
    line-height: 1.15 !important;
  }

  body.lb-v3 #search .lb-mode-panel .search-card h4 {
    margin-bottom: 5px !important;
    font-size: 0.72rem !important;
  }

  body.lb-v3 #search .compact-presets .preset-stack {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }

  body.lb-v3 #search .compact-presets .preset-btn {
    min-height: 42px !important;
    padding: 7px 8px !important;
    font-size: 0.86rem !important;
  }

  body.lb-v3 #search .tableau-train-search__fields {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(120px, 0.82fr) !important;
    gap: 7px !important;
  }

  body.lb-v3 #search .tableau-train-search__field {
    gap: 4px !important;
  }

  body.lb-v3 #search .tableau-train-search__field label {
    font-size: 0.7rem !important;
  }

  body.lb-v3 #search .tableau-train-search__field input {
    min-height: 42px !important;
  }

  body.lb-v3 #search .tableau-train-search__submit {
    grid-column: 1 / -1;
    width: 100% !important;
    min-height: 40px !important;
    margin: 0 !important;
  }

  body.lb-v3 #search .tableau-train-search__status {
    min-height: 0 !important;
    margin: 6px 0 0 !important;
    font-size: 0.72rem !important;
  }

  body.lb-v3 #search .station-date-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 8px !important;
  }

  body.lb-v3 #search .search-card--trajet h4,
  body.lb-v3 #search .search-card--filters > h4 {
    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;
    clip-path: inset(50%) !important;
  }

  body.lb-v3 #search .station-stack {
    min-height: 82px !important;
    padding: 4px 42px 4px 8px !important;
    border-radius: 12px !important;
  }

  body.lb-v3 #search .station-row {
    min-height: 37px !important;
    grid-template-columns: 25px minmax(0, 1fr) !important;
    gap: 5px !important;
    padding: 2px 3px !important;
  }

  body.lb-v3 #search .station-label {
    font-size: 0.72rem !important;
  }

  body.lb-v3 #search .station-stack .station-search {
    height: 36px !important;
    min-height: 36px !important;
    margin: 0 !important;
    padding: 5px 7px !important;
    font-size: 16px !important;
    line-height: 1.1 !important;
  }

  body.lb-v3 #search .swap-btn--center {
    top: 50% !important;
    right: 6px !important;
    left: auto !important;
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    padding: 0 !important;
    transform: translateY(-50%) !important;
  }

  body.lb-v3 #search .search-card--filters {
    padding: 8px 0 0 !important;
    border-top: 1px solid rgba(94, 233, 244, 0.18) !important;
  }

  body.lb-v3 #search .search-card--filters .date-time-stack {
    gap: 7px !important;
  }

  body.lb-v3 #search .search-card--filters .filters-date-time {
    display: grid !important;
    grid-template-columns: minmax(128px, 0.9fr) minmax(0, 1.1fr) !important;
    gap: 7px !important;
    margin: 0 !important;
  }

  body.lb-v3 #search .search-card--filters .date-field,
  body.lb-v3 #search .search-card--filters .time-range {
    min-height: 64px !important;
    padding: 7px 8px !important;
    border-radius: 10px !important;
  }

  body.lb-v3 #search .search-card--filters .date-field {
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
  }

  body.lb-v3 #search .search-card--filters .field-caption {
    display: none !important;
  }

  body.lb-v3 #search .search-card--filters .date-picker-wrap {
    width: 100% !important;
    min-width: 0 !important;
  }

  body.lb-v3 #search .search-card--filters input#trainDate {
    width: 100% !important;
    min-width: 0 !important;
    height: 38px !important;
    min-height: 38px !important;
    padding: 5px 6px !important;
    font-size: clamp(12px, 3.4vw, 14px) !important;
  }

  body.lb-v3 #search .search-card--filters .time-range > label {
    margin: 0 0 2px !important;
    font-size: 0.68rem !important;
    line-height: 1 !important;
  }

  body.lb-v3 #search .search-card--filters .time-slider {
    margin: 6px 7px 4px !important;
  }

  body.lb-v3 #search .search-card--filters .time-values {
    gap: 5px !important;
    margin-top: 3px !important;
    font-size: clamp(0.7rem, 3.1vw, 0.82rem) !important;
    line-height: 1 !important;
  }

  body.lb-v3 #search .search-card--filters .filters-options {
    margin: 0 !important;
  }

  body.lb-v3 #search .search-card--filters .search-options-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }

  body.lb-v3 #search .search-card--filters .search-options-row .option-toggle {
    width: 100% !important;
    min-height: 34px !important;
    padding: 6px 7px !important;
    display: flex !important;
    align-items: center !important;
    border: 1px solid var(--lb-line) !important;
    border-radius: 9px !important;
    background: rgba(1, 18, 30, 0.58) !important;
  }

  body.lb-v3 #search .search-card--filters .search-options-row .option-toggle span {
    min-width: 0 !important;
    font-size: clamp(0.7rem, 3vw, 0.82rem) !important;
    line-height: 1.08 !important;
    white-space: normal !important;
  }

  body.lb-v3 #search .search-card--filters .actions-main {
    margin-top: 0 !important;
  }

  body.lb-v3 #search #btnProposer {
    width: 100% !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 8px 12px !important;
    font-size: 0.84rem !important;
  }

  body.lb-v3 #favTrainsWidget > .lb-page-intro {
    margin-bottom: 9px !important;
  }
}

@media (max-width: 350px) {
  body.lb-v3 #search .lb-search-mode {
    min-height: 46px !important;
    padding-inline: 3px !important;
    font-size: 0.7rem !important;
  }

  body.lb-v3 #search .tableau-train-search__fields {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.lb-v3 #search .search-card--filters .filters-date-time {
    grid-template-columns: minmax(118px, 0.95fr) minmax(0, 1.05fr) !important;
  }

  body.lb-v3 #search .search-card--filters .search-options-row .option-toggle {
    padding-inline: 5px !important;
  }
}


/* LB mobile: bouton Générer le tableau réellement centré dans la modale */
@media (max-width: 720px), (hover: none) and (pointer: coarse) and (max-width: 900px) {
  body.lb-v3 #selectionModal #selectionFooter,
  body.lb-v3 #selectionFooter.chips-footer.centered {
    width: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.lb-v3 #selectionModal #selectionFooter .lb-sticky-actions,
  body.lb-v3 #selectionFooter .lb-sticky-actions {
    position: static !important;
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 auto !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
  }

  body.lb-v3 #selectionModal #loadTrains,
  body.lb-v3 #selectionFooter #loadTrains {
    flex: 0 0 auto !important;
    width: 180px !important;
    max-width: 100% !important;
    min-height: 44px !important;
    margin: 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    line-height: 1.1 !important;
  }
}
