/* Pages de gares (composants/gare.html) : mêmes jetons que theme.css (papier, encre, sienne, eau, forêt). */
.gare-direct { margin: 1em 0 1.4em; border: 1.5px solid var(--encre); background: var(--blanc); padding: 10px 10px 4px; }
.gare-onglets { display: flex; gap: 6px; flex-wrap: wrap; }
.gare-onglets button { font: 600 13px/1.2 var(--mono); text-transform: uppercase; letter-spacing: .06em; padding: 10px 14px; min-height: 44px; background: var(--papier); color: var(--encre); border: 1.5px solid var(--encre); cursor: pointer; }
.gare-onglets button[aria-selected="true"] { background: var(--encre); color: #fff; }
.gare-etat { margin: 10px 2px 0; font: 13px/1.5 var(--mono); color: var(--doux); }
.gare-etat .badge { display: inline-block; margin-right: 6px; padding: 1px 7px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; border: 1.5px solid currentColor; }
.gare-etat .badge-prevu { color: var(--eau); }
.gare-etat .badge-direct { color: var(--foret); }
.gare-etat .badge-perime { color: var(--retard); }
.gare-tableau { margin: 8px 0 4px; }
.gare-tableau td { vertical-align: top; }
.gare-tableau .heure { font: 700 16px/1.3 var(--mono); }
.gare-tableau .heure s { display: block; font-weight: 400; font-size: 12px; color: var(--doux); }
.gare-tableau .train { font: 13px/1.3 var(--mono); }
.gare-tableau .train b { display: block; font-family: var(--texte); font-size: 14px; }
.gare-tableau .lieu { white-space: normal; min-width: 9em; font-weight: 600; }
.gare-tableau .voie { font: 700 16px/1.3 var(--mono); text-align: center; }
.gare-tableau .etat-retard { color: var(--retard); font-weight: 700; }
.gare-tableau .etat-supprime { color: var(--retard); font-weight: 700; text-transform: uppercase; }
.gare-tableau .etat-ok { color: var(--foret); }
.gare-tableau tr.supprime .heure, .gare-tableau tr.supprime .lieu { text-decoration: line-through; }
.gare-tableau .vide { white-space: normal; color: var(--doux); }
.gare-note, .gare-direct .donnee-note { font: 12px/1.55 var(--mono); color: var(--doux); margin: 6px 2px 8px; max-width: none; }
.texte p.donnee-note, .texte figcaption.donnee-note { font: 13px/1.55 var(--mono); color: var(--doux); }

.gare-frise td { white-space: normal; vertical-align: top; }
.gare-frise .gare-frise-date { white-space: nowrap; font: 700 14px/1.4 var(--mono); color: var(--sienne-texte); }
.gare-frise td:last-child { font: 12px/1.4 var(--mono); }
.gare-dessertes td:last-child { white-space: normal; font-size: 14px; color: var(--doux); }
.gare-nuits { list-style: none; padding: 0; margin: 1em 0 .4em; }
.gare-nuits li { padding: 6px 0; border-bottom: 1px dotted var(--courbe); }
.gare-heure { display: inline-block; min-width: 4.6em; font: 700 15px/1.3 var(--mono); color: var(--sienne-texte); }

.gare-freq { margin: 1em 0 .4em; background: var(--blanc); border: 1.5px solid var(--encre); padding: 10px 10px 6px; }
.gare-freq svg { display: block; width: 100%; height: auto; }
.gare-freq-barre { fill: var(--courbe); }
.gare-freq-der { fill: var(--sienne); }
.gare-freq-an { font: 11px var(--mono); fill: var(--doux); }
.gare-freq-val { font: 600 11px var(--mono); fill: var(--encre); }
@media (max-width: 599px) { .gare-freq-an, .gare-freq-val { font-size: 13px; } }
.gare-details { margin: .4em 0 1em; }
.gare-details summary { cursor: pointer; font: 600 13px/1.6 var(--mono); color: var(--eau); }

.gare-services { padding-left: 1.2em; }
.gare-services li { margin: .45em 0; }
.gare-src { font: 12px/1.4 var(--mono); color: var(--doux); }
.gare-sources li { font-size: 15px; }

.gare-carte { margin: 1em 0; }
.gare-carte-duo { display: grid; grid-template-columns: 1fr; gap: 10px; }
@media (min-width: 640px) { .gare-carte-duo { grid-template-columns: 2fr 3fr; align-items: center; } }
.gare-carte-duo svg { display: block; width: 100%; height: auto; background: var(--blanc); border: 1.5px solid var(--encre); }
.gare-carte-point { fill: var(--sienne); stroke: #fff; }
.gare-carte-france .gare-carte-point { stroke-width: 3; }
.gare-carte-halo { fill: var(--sienne); opacity: .22; }
.gare-carte-rayon { fill: none; stroke: var(--courbe); stroke-dasharray: 2 1.5; vector-effect: non-scaling-stroke; }
.gare-carte-km, .gare-carte-nord { font-family: var(--mono); font-size: .85em; fill: var(--doux); }
.gare-carte-voisine { fill: var(--eau); fill-opacity: .55; }
.gare-carte-voisine.a-page { fill: var(--sienne-texte); fill-opacity: .9; }
.gare-carte-nom { font-family: var(--texte); fill: var(--encre); paint-order: stroke; stroke: var(--blanc); }
.gare-carte-ici { font-family: var(--texte); font-weight: 700; font-size: 1.2em; fill: var(--sienne-texte); paint-order: stroke; stroke: var(--blanc); }
.gare-3d[hidden] { display: none; }

/* Page « Toutes les gares de France » */
.gare-france { margin: 1em 0; }
.gare-france-svg { display: block; width: 100%; height: auto; background: var(--blanc); border: 1.5px solid var(--encre); }
.gare-france-page { fill: none; stroke: var(--encre); stroke-width: 3; }
.gare-france svg a:hover .gare-france-page, .gare-france svg a:focus .gare-france-page { stroke: var(--sienne); stroke-width: 5; }
.gare-france-choix circle { fill: none; stroke: var(--sienne); stroke-width: 4; }
.gare-legende { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 8px 2px; font: 12px/1.5 var(--mono); color: var(--doux); }
.gare-legende .cle { display: inline-block; width: 11px; height: 11px; border-radius: 50%; margin-right: 6px; vertical-align: -1px; }
.cle-a { background: #a8481d; } .cle-b { background: #2b6c8f; } .cle-c { background: #7d8a80; }
.cle-page { border: 2.5px solid var(--encre); }
.gare-recherche { margin: 12px 0; }
.gare-recherche label { display: block; font: 600 13px/1.6 var(--mono); text-transform: uppercase; letter-spacing: .06em; }
.gare-recherche input { width: 100%; max-width: 30em; font: 17px var(--texte); padding: 10px 12px; border: 1.5px solid var(--encre); background: var(--blanc); }
.gare-resultats { list-style: none; padding: 0; margin: 8px 0 0; max-width: 40em; }
.gare-resultats li { padding: 8px 0; border-bottom: 1px dotted var(--courbe); }
.gare-resultats .infos { display: block; font: 13px/1.5 var(--mono); color: var(--doux); }
.gare-resultats button { font: inherit; font-weight: 700; color: var(--eau); background: none; border: 0; padding: 0; cursor: pointer; text-decoration: underline; text-align: left; }
.gare-pages { margin: .6em 0 1em; }
.texte .gare-pages-region { margin: .3em 0; }
.gare-classement td:nth-child(3) { text-align: right; }
/* Horaire prévu : ni voie ni état connus, colonnes masquées (le badge le dit) */
.gare-direct.mode-prevu th:nth-child(n+4), .gare-direct.mode-prevu td:nth-child(n+4) { display: none; }
@media (max-width: 599px) {
  .gare-tableau th, .gare-tableau td { padding: 8px 6px; }
  .gare-tableau .lieu { min-width: 6em; }
  .gare-onglets button { flex: 1 1 auto; padding: 10px 8px; }
}
@media (max-width: 599px) {
  .gare-frise thead { display: none; }
  .gare-frise tr, .gare-frise td { display: block; border: 0; padding: 0; }
  .gare-frise tr { padding: 10px 0; border-bottom: 1px solid var(--courbe); }
  .gare-frise td:last-child { margin-top: 2px; }
}
.gare-freq { max-width: 760px; }
