/* CityZenZen v156 — modes motorisés Bercy et rayon mobilité progressif */

.fuel-fieldset{border-color:#d8c8aa;background:linear-gradient(145deg,#fffdf9,#fff8eb)}
.fuel-fieldset legend>svg{color:#a46f22}
.fuel-fieldset-intro,.fuel-fieldset-note{margin:0;color:var(--muted);font-size:14.5px;line-height:1.55}
.fuel-fieldset-note{margin-top:11px}
.fuel-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:13px}
.fuel-grid label{min-width:0;font-size:14.5px;line-height:1.35}
.fuel-grid select,.fuel-grid input{min-height:43px;font-size:15px}
.fuel-grid .input-unit i{right:10px;font-size:13.5px}
.fuel-grid input{padding-right:52px}

.result-mobility-summary{margin-top:12px}
.mobility-summary-loading,.fuel-loading{display:flex;min-height:54px;align-items:center;gap:11px;padding:13px 14px;border:1px solid #dfd4c0;border-radius:11px;background:#fbf8f1;color:#52635c;font-size:14.5px;line-height:1.45}
.mobility-summary-loading i,.fuel-loading i{width:20px;height:20px;flex:0 0 auto;border:3px solid #e0d2b7;border-top-color:#a46f22;border-radius:50%;animation:fuel-spin .8s linear infinite}
.mobility-summary-error,.fuel-error{margin:0;padding:13px 14px;border-radius:10px;background:#fff0ed;color:#923c34;font-size:14.5px;line-height:1.55}
@keyframes fuel-spin{to{transform:rotate(360deg)}}

.mobility-summary-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:11px;margin:3px 0 13px}
.mobility-summary-grid.is-compact{grid-template-columns:repeat(2,minmax(0,1fr));margin:0;container-type:inline-size}
.mobility-mode-card{min-width:0;padding:15px;border:1px solid #d9e3de;border-radius:12px;background:#fff}
.mobility-mode-card.is-car{border-color:#e4cfaa;background:#fff9ee}
.mobility-mode-card.is-transit{border-color:#c8dcd3;background:#eef6f2}
.mobility-mode-card header{display:flex;align-items:center;gap:10px}
.mobility-mode-card header div{min-width:0}
.mobility-mode-card header small,.mobility-mode-card header b{display:block}
.mobility-mode-card header small{color:#7e6b49;font-size:13.5px;font-weight:900;letter-spacing:.08em}
.mobility-mode-card header b{margin-top:2px;color:#18392f;font-size:16px;line-height:1.3;overflow-wrap:normal;word-break:normal}
.mobility-mode-icon{display:grid;width:35px;height:35px;flex:0 0 auto;place-items:center;border-radius:10px;background:#fff1d6;font-size:22px}
.mobility-mode-icon.navigo{background:#153d79;color:#fff;font-family:Arial,sans-serif;font-size:22px;font-weight:950}
.mobility-mode-card>strong{display:block;margin-top:10px;color:#17352d;font-size:28px;line-height:1.05;white-space:nowrap}
.mobility-mode-card>strong i{margin-left:3px;font-size:14px;font-style:normal}
.mobility-mode-card>p{margin:8px 0 0;color:#344d43;font-size:14.5px;font-weight:750;line-height:1.45}
.mobility-mode-card>small{display:block;margin-top:5px;color:#66776f;font-size:14px;line-height:1.5}
.mobility-summary-grid.is-compact .mobility-difference{grid-column:1/-1}
.mobility-difference{display:flex;min-width:0;flex-direction:column;justify-content:center;padding:13px;border:1px dashed #cbb37e;border-radius:12px;background:#fbf7ed}
.mobility-difference b{color:#72501f;font-size:14px;text-transform:uppercase;letter-spacing:.07em}
.mobility-difference span{margin-top:6px;color:#18392f;font-size:15px;font-weight:850;line-height:1.35}
.mobility-difference small{margin-top:4px;color:#5f6f68;font-size:14px;line-height:1.4}

.sector-fuel{margin-top:11px;border:1px solid #dfc99f;border-radius:12px;background:#fff9ef}
.sector-fuel>summary{position:relative;padding:14px 42px 14px 14px;cursor:pointer;list-style:none}
.sector-fuel>summary::-webkit-details-marker{display:none}
.sector-fuel>summary::after{position:absolute;right:15px;top:50%;content:"+";color:#9c6b21;font-size:25px;font-weight:500;transform:translateY(-50%)}
.sector-fuel[open]>summary::after{content:"−"}
.sector-fuel>summary span,.sector-fuel>summary b,.sector-fuel>summary small{display:block}
.sector-fuel>summary b{color:var(--utility-ink);font-size:16px;line-height:1.3}
.sector-fuel>summary small{margin-top:4px;color:var(--utility-muted);font-size:14px;line-height:1.5}
.fuel-content{padding:0 14px 14px}

.fuel-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:0 0 12px}
.fuel-detail-grid article{padding:14px;border:1px solid #dce5e0;border-radius:11px;background:#fff}
.fuel-detail-grid article>small{display:block;color:#7c6237;font-size:13.5px;font-weight:900;letter-spacing:.07em}
.fuel-detail-grid dl{margin:9px 0 0}
.fuel-detail-grid dl>div{display:flex;justify-content:space-between;gap:14px;padding:6px 0;border-bottom:1px solid #edf0ee;font-size:14px;line-height:1.4}
.fuel-detail-grid dl>div:last-child{border-bottom:0}
.fuel-detail-grid dt{color:#68766f}
.fuel-detail-grid dd{margin:0;color:#1f3b32;font-weight:800;text-align:right}

.fuel-overview{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:3px}
.fuel-overview article{min-width:0;padding:14px;border:1px solid #eadbbf;border-radius:11px;background:#fff}
.fuel-overview article:last-child{background:#edf5f0;border-color:#cddfd4}
.fuel-overview small,.fuel-overview b,.fuel-overview span,.fuel-overview em{display:block}
.fuel-overview small{color:#8a6936;font-size:13.5px;font-weight:900;letter-spacing:.06em}
.fuel-overview b{margin-top:6px;color:#17352d;font-size:25px;line-height:1.1}
.fuel-overview b i{font-size:14px;font-style:normal}
.fuel-overview span{margin-top:5px;color:#405249;font-size:14.5px;font-weight:750;line-height:1.45}
.fuel-overview em{margin-top:4px;color:#7d8983;font-size:14px;font-style:normal;line-height:1.45}

.fuel-stations{margin-top:11px;overflow:hidden;border:1px solid #e5d8c0;border-radius:11px;background:#fff}
.fuel-stations header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 13px;background:#f8f0df}
.fuel-stations header b{font-size:15px}
.fuel-stations header small{color:#7b6c51;font-size:14px;font-weight:750}
.fuel-stations ol{margin:0;padding:0;list-style:none}
.fuel-stations li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 13px;border-top:1px solid #eee6d7}
.fuel-stations li>i{display:grid;width:32px;height:32px;place-items:center;border-radius:9px;background:#fff3dc;color:#9c6b21;font-size:19px;font-style:normal;font-weight:900}
.fuel-stations li div{min-width:0}
.fuel-stations li div b,.fuel-stations li div span,.fuel-stations li div small{display:block}
.fuel-stations li div b{overflow:hidden;color:#263d34;font-size:14.5px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}
.fuel-stations li div span{margin-top:3px;color:#68766f;font-size:14px}
.fuel-stations li div small{margin-top:3px;color:#8c9691;font-size:13.5px}
.fuel-stations li>strong{color:#8d5e19;font-size:16px;white-space:nowrap}
.fuel-stations li>strong small{font-size:13px}
.fuel-empty{padding:14px!important;color:#68766f;font-size:14.5px}

.fuel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:11px}
.fuel-map-button{min-height:38px;padding:8px 12px;border:1px solid #d6b876;border-radius:9px;background:#fff7e5;color:#6f4d19;font-family:inherit;font-size:14.5px;font-weight:850;cursor:pointer}
.fuel-source{flex:1 1 280px;margin:0;color:#6d7c75;font-size:13.5px;line-height:1.5}

.fuel-map-marker{display:flex;min-width:74px;height:38px;align-items:center;justify-content:center;gap:5px;padding:0 8px;border:3px solid #fff;border-radius:12px;background:#d9902f;color:#fff;box-shadow:0 5px 15px rgba(61,42,12,.35)}
.fuel-pump-icon{font-size:22px;line-height:1}
.fuel-map-price{font-size:14px;font-weight:950;white-space:nowrap}
.rail-map-marker{display:flex;min-width:118px;max-width:210px;min-height:44px;align-items:center;justify-content:flex-start;gap:7px;padding:5px 9px;border:3px solid #fff;border-radius:12px;background:#173f77;color:#fff;font-size:13.5px;font-weight:900;box-shadow:0 5px 15px rgba(13,39,78,.34)}
.rail-map-icon{display:grid;width:34px;height:27px;flex:0 0 auto;place-items:center;border-radius:7px;background:#fff;color:#173f77;font-size:12.5px;font-weight:950}.rail-map-copy{display:block;min-width:0;text-align:left}.rail-map-copy b,.rail-map-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-map-copy b{font-size:14px;line-height:1.2}.rail-map-copy small{margin-top:2px;max-width:145px;color:#dfe9f5;font-size:13px;font-weight:700}
.fuel-popup b,.fuel-popup strong,.fuel-popup small,.rail-popup b,.rail-popup strong,.rail-popup small{display:block}
.fuel-popup b,.rail-popup b{font-size:15px;line-height:1.35}
.fuel-popup strong,.rail-popup strong{margin-top:6px;color:#9c6b21;font-size:19px}
.rail-popup strong{color:#173f77}
.fuel-popup small,.rail-popup small{margin-top:4px;color:#68766f;font-size:14px;line-height:1.45}

.result-facts .fuel-distance-fact{background:#fff6e6}
.result-facts .fuel-distance-fact b{color:#8a5c18}
.compare-table th,.compare-table td{font-size:14px;line-height:1.45}
.compare-table td b{font-size:14.5px}
.compare-table td small{font-size:13.5px;line-height:1.45}

@media(max-width:1180px){
  .fuel-grid{grid-template-columns:1fr 1fr}
  .mobility-summary-grid.is-compact{grid-template-columns:1fr 1fr}
  .mobility-summary-grid.is-compact .mobility-difference{grid-column:1/-1}
}
@media(max-width:720px){
  .fuel-grid,.fuel-overview,.fuel-detail-grid,.mobility-summary-grid,.mobility-summary-grid.is-compact{grid-template-columns:1fr}
  .mobility-summary-grid.is-compact .mobility-difference{grid-column:auto}
  .fuel-stations li{grid-template-columns:32px minmax(0,1fr) auto}
  .fuel-stations li div b{white-space:normal}
}

/* Harmonisation de la lisibilité des résultats */
.live-results-head small{font-size:13.5px}
.live-results-head p{font-size:14.5px;line-height:1.55}
.residential-result{line-height:1.45}
.result-head small{font-size:13px}
.result-head h3 em{font-size:14px}
.result-head p{font-size:14px;line-height:1.5}
.result-facts small,.result-priorities small{font-size:13px;line-height:1.35}
.result-facts b,.result-priorities b{font-size:14.5px;line-height:1.35}
.result-actions button,.compare-toggle{font-size:15px;line-height:1.3}
.sector-schools>summary b,.sector-amenities>summary b{font-size:15px}
.sector-schools>summary small,.sector-amenities>summary small{font-size:14px;line-height:1.45}
.amenity-list b,.transit-stop-head b{font-size:14.5px}
.amenity-list small,.transit-lines li small,.amenity-method{font-size:13.5px;line-height:1.45}


/* Le résumé est placé dans une colonne étroite : deux cartes, puis l'écart sur toute la largeur. */
@container (max-width:340px){
  .mobility-summary-grid.is-compact{grid-template-columns:1fr}
  .mobility-summary-grid.is-compact .mobility-difference{grid-column:auto}
}
.rail-stations{border-color:#c9d8e8}
.rail-stations header{background:#eef4fa}
.rail-stations li>i{background:#e8f0fa;color:#173f77}
.rail-stations li>strong{max-width:115px;color:#173f77;font-size:14px;text-align:right;white-space:normal}


/* V149 — synthèse réellement compacte dans la colonne de résultats */
.result-mobility-summary{container-type:inline-size}
.mobility-summary-grid.is-compact{
  grid-template-columns:minmax(0,1fr);
  gap:8px;
  align-items:start;
  margin:0;
}
.mobility-summary-grid.is-compact .mobility-mode-card{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:
    "heading amount"
    "detail detail"
    "meta meta";
  min-height:0;
  align-self:start;
  align-items:center;
  gap:0 10px;
  padding:11px 12px;
}
.mobility-summary-grid.is-compact .mobility-mode-card header{
  grid-area:heading;
  min-width:0;
  gap:8px;
}
.mobility-summary-grid.is-compact .mobility-mode-card header b{
  font-size:14.5px;
  line-height:1.25;
}
.mobility-summary-grid.is-compact .mobility-mode-icon{
  width:32px;
  height:32px;
  border-radius:9px;
  font-size:19px;
}
.mobility-summary-grid.is-compact .mobility-mode-icon.navigo{font-size:19px}
.mobility-summary-grid.is-compact .mobility-mode-card>strong{
  grid-area:amount;
  margin:0;
  align-self:center;
  color:#17352d;
  font-size:25px;
  line-height:1;
  text-align:right;
  white-space:nowrap;
}
.mobility-summary-grid.is-compact .mobility-mode-card>strong i{font-size:13.5px}
.mobility-summary-grid.is-compact .mobility-mode-card>p{
  grid-area:detail;
  margin:7px 0 0;
  font-size:14px;
  line-height:1.35;
}
.mobility-summary-grid.is-compact .mobility-mode-card>small{
  grid-area:meta;
  margin-top:3px;
  font-size:13.5px;
  line-height:1.35;
}
.mobility-summary-grid.is-compact .mobility-difference{
  grid-column:auto;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:
    "label saving"
    "label time";
  align-items:center;
  gap:2px 10px;
  min-height:0;
  padding:10px 12px;
}
.mobility-summary-grid.is-compact .mobility-difference b{
  grid-area:label;
  align-self:center;
  white-space:nowrap;
}
.mobility-summary-grid.is-compact .mobility-difference span{
  grid-area:saving;
  margin:0;
  font-size:14.5px;
  line-height:1.25;
}
.mobility-summary-grid.is-compact .mobility-difference small{
  grid-area:time;
  margin:0;
  font-size:13.5px;
  line-height:1.3;
}
@container (max-width:285px){
  .mobility-summary-grid.is-compact .mobility-mode-card{
    grid-template-columns:1fr;
    grid-template-areas:"heading" "amount" "detail" "meta";
  }
  .mobility-summary-grid.is-compact .mobility-mode-card>strong{
    margin-top:8px;
    text-align:left;
  }
  .mobility-summary-grid.is-compact .mobility-difference{
    grid-template-columns:1fr;
    grid-template-areas:"label" "saving" "time";
  }
}


/* V151 — survol fluide, popups interactives et terminus ferroviaires */
.fuel-map-marker,.rail-map-marker,.result-map-marker{
  cursor:pointer;
  transition:transform .16s ease,filter .16s ease,box-shadow .16s ease;
  transform-origin:center bottom;
}
.fuel-map-marker:hover,.fuel-map-marker:focus-visible,
.rail-map-marker:hover,.rail-map-marker:focus-visible,
.result-map-marker:hover,.result-map-marker:focus-visible{
  z-index:8;
  filter:brightness(1.04);
  transform:translateY(-2px) scale(1.04);
  outline:3px solid rgba(255,255,255,.88);
  outline-offset:2px;
}
.interactive-map-popup{pointer-events:auto}
.interactive-map-popup .maplibregl-popup-content{max-height:min(72vh,540px);overflow:auto}
.interactive-map-popup .market-popup-hover{pointer-events:auto;min-width:255px}
.rail-popup-lines{display:grid;gap:7px;margin:10px 0 0;padding:0;list-style:none}
.rail-popup-lines li{padding:7px 8px;border-radius:8px;background:#eef4fa}
.rail-popup-lines b,.rail-popup-lines span{display:block}
.rail-popup-lines b{color:#173f77;font-size:14px}
.rail-popup-lines span{margin-top:2px;color:#536a7e;font-size:13.5px;line-height:1.4}
.rail-line-detail{display:grid!important;gap:5px;margin-top:6px!important}
.rail-line-detail>span{display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:7px;align-items:start;padding:5px 6px;border-radius:7px;background:#f2f6fb;color:#617486!important;line-height:1.35}
.rail-line-detail>span>b{color:#173f77!important;font-size:13.5px!important;white-space:nowrap}
.rail-line-detail>span>em{font-size:13px;font-style:normal;overflow-wrap:anywhere}
@media (hover:none){
  .fuel-map-marker:hover,.rail-map-marker:hover,.result-map-marker:hover{transform:none;outline:0}
}

/* V151 — véhicules indépendants par personne */
.vehicle-fieldset{display:grid;gap:14px}
.vehicle-config{padding:14px;border:1px solid #ddcfb5;border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(74,56,25,.06)}
.vehicle-config[hidden]{display:none!important}
.vehicle-config>header{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.vehicle-config>header>span{display:grid;width:38px;height:38px;place-items:center;border-radius:11px;background:#fff5df;font-size:22px}
.vehicle-config>header small{display:block;color:#a46f22;font-size:13.5px;font-weight:900;letter-spacing:.08em}
.vehicle-config>header h3{margin:2px 0 0;color:var(--ink);font-size:19px;line-height:1.25}
.vehicle-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.vehicle-grid label{min-width:0;font-size:15px;line-height:1.35}
.vehicle-grid select,.vehicle-grid input{min-height:44px;font-size:16px}
.vehicle-grid .input-unit i{font-size:13.5px}
.vehicle-trip-breakdown{display:grid;gap:9px;margin:12px 0}
.vehicle-trip-card{padding:12px 13px;border:1px solid #ded5c4;border-radius:12px;background:#fff}
.vehicle-trip-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.vehicle-trip-card header b{display:block;font-size:16px;line-height:1.25}
.vehicle-trip-card header small{display:block;margin-top:2px;color:var(--muted);font-size:14px}
.vehicle-trip-card>strong{display:block;margin-top:8px;color:var(--ink);font-size:25px;line-height:1}
.vehicle-trip-card>strong i{font-size:14px;font-style:normal}
.vehicle-trip-card p{margin:7px 0 0;color:var(--muted);font-size:14.5px;line-height:1.5}
.charging-stations .charging-power{color:#23589a}
.charging-map-marker{display:flex;min-width:82px;min-height:39px;align-items:center;justify-content:center;gap:5px;padding:5px 8px;border:3px solid #fff;border-radius:12px;background:#2766a7;color:#fff;font-size:14px;font-weight:900;box-shadow:0 5px 15px rgba(18,55,94,.34);cursor:pointer}
.charging-map-marker:hover,.charging-map-marker:focus-visible{transform:translateY(-2px);outline:3px solid rgba(39,102,167,.22)}
@media(max-width:620px){.vehicle-grid{grid-template-columns:1fr}.vehicle-config{padding:12px}}

/* V151 — une fiche réellement distincte par personne et par véhicule */
.vehicle-trip-card.is-transit-trip {
  background: #eef6f3;
  border-color: rgba(30, 100, 78, .22);
}
.vehicle-trip-card.is-transit-trip > strong { color: var(--czz-fuel-brand, #183c34); }

/* V153 — saisie électrique simplifiée */
.vehicle-config.is-electric [data-consumption-field]{display:none!important}
.electric-simple-note{margin:11px 0 0;padding:10px 11px;border:1px solid #c9ded7;border-radius:11px;background:#f1f8f5;color:#31574c;font-size:14.5px;line-height:1.5}
.electric-simple-note[hidden]{display:none!important}
.electric-simple-note b{color:#173d33}
.vehicle-config.is-electric .vehicle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:620px){.vehicle-config.is-electric .vehicle-grid{grid-template-columns:1fr}}

/* V155 — modes choisis et traitement fiscal du vélo */
.mobility-mode-card.is-bike { background:#f0f8f3; border-color:#b9d8c4; }
.mobility-mode-card.is-bike strong { color:#176b4d; }
.mobility-mode-card.is-walk { background:#f7f7f3; border-color:#d7d8cf; }
.vehicle-trip-card.is-bike-trip { background:#f0f8f3; border-color:#b9d8c4; }
.vehicle-trip-card.is-walk-trip { background:#f7f7f3; border-color:#d7d8cf; }
.mobility-summary-grid.is-compact > .mobility-mode-card { min-height:0; height:auto; align-self:start; }


/* V156 — moto, scooter, cyclomoteur et rayon progressif 1 km → 5 km */
.vehicle-config.is-two-wheel{
  border-color:#c9d9d1;
  background:linear-gradient(145deg,#ffffff,#f3f8f5);
}
.vehicle-config.is-two-wheel>header>span{
  background:#eaf4ef;
}
.vehicle-config [data-fiscal-field][hidden],
.vehicle-config [data-consumption-field][hidden]{
  display:none!important;
}
.fuel-expand-button{
  min-height:38px;
  padding:8px 13px;
  border:1px solid #8ab19f;
  border-radius:9px;
  background:#edf6f1;
  color:#245846;
  font-family:inherit;
  font-size:14.5px;
  font-weight:850;
  cursor:pointer;
}
.fuel-expand-button:hover,
.fuel-expand-button:focus-visible{
  background:#dfeee7;
  border-color:#5d927c;
}
.fuel-expand-button:disabled{
  cursor:wait;
  opacity:.7;
}
.mobility-mode-card.is-car .mobility-mode-icon{
  min-width:35px;
  width:auto;
  padding:0 7px;
}
@media(max-width:620px){
  .fuel-actions .fuel-map-button,
  .fuel-actions .fuel-expand-button{
    width:100%;
  }
}


/* V158 — survol cartographique contextuel et priorité aux pictogrammes */
.map-popup-kind{
  display:block!important;
  margin:0 0 5px!important;
  color:#6a7a73!important;
  font-size:12.5px!important;
  font-weight:950!important;
  letter-spacing:.11em;
  line-height:1.2!important;
}
.feature-map-popup{z-index:25}
.commune-hover-popup{z-index:15;transition:opacity .12s ease}
.has-feature-map-popup .commune-hover-popup{opacity:0!important;pointer-events:none!important}
.feature-map-popup .maplibregl-popup-content{border-top:4px solid #315d4b}
.fuel-feature-popup .maplibregl-popup-content{border-top-color:#d9902f}
.charging-feature-popup .maplibregl-popup-content{border-top-color:#2766a7}
.rail-feature-popup .maplibregl-popup-content{border-top-color:#173f77}
.sector-feature-popup .maplibregl-popup-content{border-top-color:#315d4b}
.rail-popup-network{margin-top:11px}
.rail-popup-network h4{margin:0 0 7px;color:#173f77;font-size:14.5px;line-height:1.25}
.rail-popup-lines li{display:grid;gap:7px;padding:9px 10px}
.rail-popup-lines li header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.rail-popup-lines li header>span{color:#6d8091;font-size:12.5px;font-weight:900;letter-spacing:.08em}
.rail-popup-lines li header>b{color:#173f77;font-size:15px;white-space:nowrap}
.rail-popup-lines li p{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start;margin:0;padding-top:7px;border-top:1px solid #dce7f1}
.rail-popup-lines li p>span{color:#6d8091;font-size:12.5px;font-weight:900;letter-spacing:.08em}
.rail-popup-lines li p>strong{margin:0;color:#405a70;font-size:13.5px;line-height:1.45;font-weight:750;overflow-wrap:anywhere}
@media(max-width:520px){
  .rail-popup-lines li header{align-items:flex-start;flex-direction:column;gap:3px}
  .rail-popup-lines li p{grid-template-columns:1fr;gap:3px}
}

/* V159 - trottinette électrique et combinaison avec les transports */
.mobility-mode-card.is-electric-scooter{background:#f1f7fb;border-color:#bdd7e5}
.mobility-mode-card.is-electric-scooter strong{color:#14566e}
.vehicle-trip-card.is-electric-scooter-trip{background:#f1f7fb;border-color:#bdd7e5}
.vehicle-trip-card.is-electric-scooter-trip>strong{color:#14566e}


/* V161 - libellés ferroviaires lisibles : ligne, gare et terminus */
.rail-map-copy {
  min-width: 96px;
  max-width: 225px;
}
.rail-map-copy em {
  display: block;
  max-width: 215px;
  margin-top: 2px;
  overflow: hidden;
  color: #344f47;
  font-size: .62rem;
  font-style: normal;
  font-weight: 650;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rail-map-marker:hover .rail-map-copy em,
.rail-map-marker:focus-within .rail-map-copy em {
  overflow: visible;
  white-space: normal;
}


/* V164 — provenance d'un prix carburant de substitution */
.fuel-reference-note {
  display: inline-block;
  margin-top: 4px;
  color: #6a6257;
  font-size: .72rem;
  font-weight: 650;
  line-height: 1.35;
}


/* V166 - abonnement mensuel de parking par véhicule */
.vehicle-parking-cost[hidden]{display:none!important}
.vehicle-parking-cost small{
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:13.5px;
  font-weight:600;
  line-height:1.35
}
.vehicle-parking-cost .input-unit i{right:9px}


/* V167 — harmonisation des saisies véhicules avec la colonne de recherche */
.vehicle-fieldset {
  gap: 11px;
}
.vehicle-fieldset .fuel-fieldset-intro {
  font-family: Inter, system-ui, sans-serif;
  font-size: 8px;
  line-height: 1.5;
}
.vehicle-config {
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fdfbf7;
  box-shadow: none;
  font-family: Inter, system-ui, sans-serif;
}
.vehicle-config > header {
  gap: 8px;
  margin-bottom: 10px;
}
.vehicle-config > header > span {
  width: 32px;
  height: 32px;
  border-radius: 9px;
  background: var(--sage);
  font-size: 16px;
}
.vehicle-config > header small {
  color: var(--gold-dark);
  font-family: Inter, system-ui, sans-serif;
  font-size: 5.5px;
  font-weight: 900;
  letter-spacing: .12em;
  line-height: 1.2;
  text-transform: uppercase;
}
.vehicle-config > header h3 {
  margin-top: 2px;
  color: var(--ink);
  font-family: Inter, system-ui, sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0;
  line-height: 1.3;
  text-transform: none;
}
.vehicle-grid {
  gap: 9px;
}
.vehicle-grid label {
  min-width: 0;
  color: #405249;
  font-family: Inter, system-ui, sans-serif;
  font-size: 6.5px;
  font-weight: 850;
  letter-spacing: .055em;
  line-height: normal;
  text-transform: uppercase;
}
.vehicle-grid input,
.vehicle-grid select {
  width: 100%;
  height: 38px;
  min-height: 38px;
  margin-top: 5px;
  padding: 0 9px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fcfbf8;
  color: var(--ink);
  font-family: Inter, system-ui, sans-serif;
  font-size: 9px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: normal;
  text-transform: none;
}
.vehicle-grid input:focus,
.vehicle-grid select:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(200,150,69,.12);
}
.vehicle-grid .input-unit i {
  right: 9px;
  bottom: 11px;
  color: var(--muted);
  font-family: Inter, system-ui, sans-serif;
  font-size: 8px;
  font-style: normal;
  font-weight: 400;
  letter-spacing: 0;
  text-transform: none;
}
.electric-simple-note {
  margin-top: 10px;
  padding: 9px 10px;
  border-radius: 9px;
  font-family: Inter, system-ui, sans-serif;
  font-size: 7px;
  line-height: 1.45;
}

/* Le parking intégré reprend exactement l'échelle des autres champs Trajet. */
.workplace .workplace-parking {
  font-family: Inter, system-ui, sans-serif;
}
.workplace .workplace-parking label {
  color: #405249;
  font-family: Inter, system-ui, sans-serif;
  font-size: 6.5px;
  font-weight: 850;
  letter-spacing: .055em;
  line-height: normal;
  text-transform: uppercase;
}
.workplace .workplace-parking input,
.workplace .workplace-parking select {
  height: 38px;
  min-height: 38px;
  margin-top: 5px;
  padding: 0 9px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fcfbf8;
  color: var(--ink);
  font-family: Inter, system-ui, sans-serif;
  font-size: 14px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: normal;
  text-transform: none;
}
.workplace .workplace-parking .input-unit i {
  right: 9px;
  bottom: 11px;
  color: var(--muted);
  font-family: Inter, system-ui, sans-serif;
  font-size: 8px;
  font-style: normal;
  font-weight: 400;
}
.workplace .workplace-parking .vehicle-parking-cost small {
  margin-top: 5px;
  color: var(--muted);
  font-family: Inter, system-ui, sans-serif;
  font-size: 6.5px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 1.4;
  text-transform: none;
}

@media (max-width: 620px) {
  .vehicle-config {
    padding: 12px;
  }
  .vehicle-grid {
    gap: 9px;
  }
}
@media (max-width: 380px) {
  .vehicle-grid label,
  .workplace .workplace-parking label {
    font-size: 7.5px;
    letter-spacing: .035em;
  }
  .vehicle-grid input,
  .vehicle-grid select,
  .workplace .workplace-parking input,
  .workplace .workplace-parking select {
    height: 42px;
    min-height: 42px;
    padding-left: 9px;
    padding-right: 9px;
    font-size: 12px;
  }
  .vehicle-grid .input-unit i,
  .workplace .workplace-parking .input-unit i {
    bottom: 13px;
    font-size: 9px;
  }
}

/* V276 — accessibilité ferroviaire vers Châtelet dans les infobulles */
.rail-popup-network.is-pending p{margin:0;padding:9px 10px;border-radius:9px;background:#fff7e8;color:#76551d;font-size:13px;line-height:1.4}
.rail-chatelet{display:grid;gap:7px;margin-top:11px;padding:11px 12px;border:1px solid #d7e4ef;border-radius:11px;background:#f7fbff}
.rail-chatelet>span,.rail-chatelet header>span{color:#65798a;font-size:11.5px;font-weight:900;letter-spacing:.075em}
.rail-chatelet>b,.rail-chatelet header>b{color:#173f77;font-size:18px;line-height:1.15}
.rail-chatelet header{display:flex;align-items:center;justify-content:space-between;gap:12px}
.rail-chatelet p{margin:0;color:#405a70;font-size:13px;font-weight:750}
.rail-chatelet small{color:#667d8f;font-size:11.5px;line-height:1.4}
.rail-chatelet ol{display:grid;gap:5px;margin:2px 0 0;padding:0;list-style:none}
.rail-chatelet li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;align-items:center;padding:6px 7px;border-radius:7px;background:#fff}
.rail-chatelet li b{color:#173f77;font-size:12.5px}.rail-chatelet li span{color:#536a7e;font-size:11.5px;line-height:1.3}.rail-chatelet li strong{color:#173f77;font-size:11.5px;white-space:nowrap}
.rail-chatelet.is-loading b{font-size:14px}.rail-chatelet.is-error{background:#fff7f2;border-color:#f0d5c7}.rail-chatelet.is-error b{font-size:14px;color:#8a402e}.rail-chatelet.is-error span{color:#704f46;font-size:12.5px}
@media(max-width:620px){.rail-chatelet header{align-items:flex-start;flex-direction:column;gap:3px}.rail-chatelet li{grid-template-columns:auto 1fr}.rail-chatelet li strong{grid-column:2}}

/* V284 — pictogrammes de lignes ferrées et lisibilité après recherche */
.rail-map-icons{display:flex;flex:0 0 auto;gap:3px;align-items:center;max-width:92px;flex-wrap:wrap}
.rail-line-picto{display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:4px;min-width:48px;padding:4px 6px;border-radius:8px;background:var(--line-bg);color:var(--line-fg);box-shadow:0 1px 4px rgba(15,37,54,.18);line-height:1}
.rail-line-picto small{margin:0!important;color:inherit!important;font-size:7px!important;font-weight:900;letter-spacing:.05em}
.rail-line-picto b{margin:0!important;color:inherit!important;font-size:13px!important;font-weight:950}
.rail-line-picto.is-compact{min-width:34px;padding:3px 5px;border-radius:7px;grid-template-columns:1fr;gap:1px;text-align:center}
.rail-line-picto.is-compact small{font-size:6px!important}.rail-line-picto.is-compact b{font-size:12px!important}
.rail-list-pictos{display:flex!important;gap:4px;align-items:center;justify-content:flex-end}
.rail-popup-lines li header{flex-direction:row!important;align-items:center!important;justify-content:flex-start!important}
.rail-popup-lines li header>b{white-space:normal}

/* V303 — même charte graphique pour RER, SNCF/Transilien et métro */
.line-identity-badge{
  display:inline-grid;
  grid-template-rows:auto auto;
  place-items:center;
  min-width:32px;
  height:34px;
  padding:3px 6px 4px;
  border:2px solid rgba(255,255,255,.96);
  border-radius:9px;
  background:var(--line-bg);
  color:var(--line-fg);
  box-shadow:0 2px 8px rgba(24,49,40,.22),0 0 0 1px rgba(24,49,40,.10);
  font-weight:950;
  line-height:1;
  vertical-align:middle;
}
.line-identity-badge small{display:block!important;margin:0!important;color:inherit!important;font-size:5.5px!important;font-weight:950!important;letter-spacing:.045em;line-height:1;text-transform:uppercase}
.line-identity-badge b{margin:1px 0 0!important;color:inherit!important;font-size:14px!important;font-weight:950!important;line-height:1}
.line-identity-badge.is-compact{min-width:29px;height:30px;padding:3px 5px;border-radius:8px}
.line-identity-badge.is-compact small{font-size:5px!important}
.line-identity-badge.is-compact b{font-size:12px!important}
.line-identity-badge.is-sncf small{font-size:4.7px!important;letter-spacing:.015em}
