@font-face{font-family:Inter;src:local("Arial");font-display:swap}
:root{--fuel-ink:#17352d;--fuel-green:#2f6e5e;--fuel-gold:#c89645;--fuel-paper:#fffdf8;--fuel-cream:#f5f0e6;--fuel-line:#ded7cc;--fuel-muted:#63736b;--fuel-blue:#2876a8}
*{box-sizing:border-box}
body.fuel-map-page{overflow:hidden;background:var(--fuel-cream);color:var(--fuel-ink)}
.svg-defs{position:absolute;width:0;height:0;overflow:hidden}
.fuel-map-topbar{z-index:30}.fuel-map-tool-switcher{display:flex;align-items:center;gap:9px}.fuel-map-tool-switcher .is-current{border-color:var(--fuel-green);box-shadow:0 0 0 3px rgba(47,110,94,.09)}
.fuel-map-shell{display:grid;height:calc(100svh - 72px);grid-template-columns:380px minmax(0,1fr)}
.fuel-map-panel{position:relative;z-index:5;overflow-y:auto;padding:22px 20px 28px;border-right:1px solid var(--fuel-line);background:rgba(255,253,248,.98);box-shadow:7px 0 24px rgba(23,53,45,.08);scrollbar-width:thin}
.fuel-map-eyebrow{color:#9b6c27;font-size:8px;font-weight:900;letter-spacing:.14em}.fuel-map-intro h1{margin:7px 0 0;font-size:31px;letter-spacing:-.045em;line-height:1}.fuel-map-intro p{margin:12px 0 0;color:var(--fuel-muted);font-size:10.5px;line-height:1.55}
.fuel-context-banner{margin-top:13px;padding:10px 12px;border:1px solid #a9c9bb;border-radius:10px;background:#edf6f1}.fuel-context-banner b,.fuel-context-banner span{display:block}.fuel-context-banner b{font-size:9px}.fuel-context-banner span{margin-top:3px;color:var(--fuel-muted);font-size:7.5px;line-height:1.4}
#fuel-route-form{display:grid;gap:10px;margin-top:15px}#fuel-route-form fieldset{padding:13px;border:1px solid var(--fuel-line);border-radius:12px;background:#fff}#fuel-route-form legend{display:flex;align-items:center;gap:7px;padding:0 6px;font-size:8px;font-weight:900;letter-spacing:.07em;text-transform:uppercase}#fuel-route-form legend svg{width:23px;height:23px;padding:5px;border-radius:7px;background:#e7eee9}
.fuel-route-addresses{display:grid;gap:8px}.fuel-address-field{position:relative;display:block;color:#405249;font-size:7px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.fuel-address-field input{height:42px;margin-top:5px;background:#fcfbf8;font-size:10px;text-transform:none}.fuel-address-suggestions{position:absolute;z-index:60;top:calc(100% + 3px);right:0;left:0;overflow:hidden;border:1px solid var(--fuel-line);border-radius:9px;background:#fff;box-shadow:0 14px 35px rgba(18,42,34,.18)}.fuel-address-suggestions[hidden]{display:none}.fuel-address-suggestions button{display:block;width:100%;padding:9px 10px;border:0;border-bottom:1px solid #ece7de;background:#fff;color:var(--fuel-ink);font:500 8px Inter,system-ui,sans-serif;text-align:left;cursor:pointer}.fuel-address-suggestions button:last-child{border-bottom:0}.fuel-address-suggestions button:hover,.fuel-address-suggestions button:focus-visible{background:#edf6f1;outline:0}.fuel-address-suggestions b,.fuel-address-suggestions small{display:block}.fuel-address-suggestions small{margin-top:2px;color:var(--fuel-muted);font-size:7px}
.fuel-swap{justify-self:center;padding:5px 12px;border:1px solid var(--fuel-line);border-radius:999px;background:#faf7f0;color:var(--fuel-green);font:800 7px Inter,system-ui,sans-serif;cursor:pointer}
.fuel-search-zones{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.fuel-search-zones legend{grid-column:1/-1}.fuel-search-zones>label{display:flex;align-items:center;gap:6px;padding:8px;border:1px solid var(--fuel-line);border-radius:8px;background:#faf8f3;color:var(--fuel-ink);font-size:7px;font-weight:750;text-transform:none}.fuel-search-zones>label input{width:14px;height:14px;margin:0}.fuel-distance-settings{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:3px}.fuel-distance-settings label,.fuel-type-field{color:#405249;font-size:6.5px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.fuel-distance-settings select,.fuel-type-field select{height:38px;margin-top:5px;background:#fcfbf8;font-size:9px;text-transform:none}
.fuel-energy-fields{display:grid;gap:9px}.fuel-layer-choices{display:grid;grid-template-columns:1fr 1fr;gap:7px}.layer-choice{display:block;cursor:pointer}.layer-choice input{position:absolute;opacity:0;pointer-events:none}.layer-choice>span{display:grid;grid-template-columns:30px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:8px;padding:8px;border:1px solid var(--fuel-line);border-radius:9px;background:#faf8f3;transition:.18s}.layer-choice svg{grid-row:1/3;width:30px;height:30px;padding:7px;border-radius:8px;background:#e7eee9;color:var(--fuel-green);fill:none;stroke:currentColor;stroke-width:1.8}.layer-choice b,.layer-choice small{display:block}.layer-choice b{font-size:8px}.layer-choice small{margin-top:2px;color:var(--fuel-muted);font-size:6.5px;line-height:1.25}.layer-choice input:checked+span{border-color:#82ae9e;background:#edf6f1;box-shadow:0 0 0 2px rgba(47,110,94,.08)}.layer-choice-electric input:checked+span{border-color:#80acd0;background:#eef6fb}.layer-choice-electric svg{background:#e5f0f8;color:var(--fuel-blue)}
.fuel-search-submit{display:flex;min-height:50px;align-items:center;justify-content:center;gap:10px;border:0;border-radius:11px;background:var(--fuel-ink);color:#fff;cursor:pointer;font-family:Inter,system-ui,sans-serif}.fuel-search-submit:hover{background:#244d40}.fuel-search-submit svg{width:23px;height:23px;fill:none;stroke:var(--fuel-gold);stroke-width:2}.fuel-search-submit b,.fuel-search-submit small{display:block;text-align:left}.fuel-search-submit b{font-size:10px}.fuel-search-submit small{margin-top:2px;color:#cddbd5;font-size:7px}
.fuel-trip-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:13px}.fuel-trip-summary[hidden]{display:none}.fuel-trip-summary article{min-width:0;padding:10px;border:1px solid var(--fuel-line);border-radius:9px;background:#fff}.fuel-trip-summary small,.fuel-trip-summary strong{display:block}.fuel-trip-summary small{color:#8a6a32;font-size:5.5px;font-weight:900;letter-spacing:.08em}.fuel-trip-summary strong{margin-top:4px;font-size:14px}
.fuel-price-legend{margin-top:11px;padding:12px;border:1px solid var(--fuel-line);border-radius:11px;background:#fff}.fuel-price-legend[hidden]{display:none}.fuel-price-legend header b,.fuel-price-legend header small{display:block}.fuel-price-legend header b{font-size:9px}.fuel-price-legend header small{margin-top:2px;color:var(--fuel-muted);font-size:6.5px}.fuel-gradient{height:9px;margin-top:9px;border-radius:999px;background:linear-gradient(90deg,#16784d,#5fae55,#ced13f,#efb13c,#e66d38,#b92f3c)}.fuel-legend-values{display:flex;justify-content:space-between;margin-top:4px;color:var(--fuel-muted);font-size:6.5px;font-weight:750}.fuel-price-legend p{display:flex;align-items:center;gap:5px;margin:8px 0 0;color:var(--fuel-muted);font-size:6.5px}.legend-dot{display:inline-block;width:8px;height:8px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(23,53,45,.25)}.fuel-dot{background:#d99531}.electric-dot{margin-left:7px;background:#2876a8}
.fuel-map-status{min-height:34px;margin:11px 0 0;padding:9px 10px;border-left:3px solid var(--fuel-gold);background:#fbf5e8;color:var(--fuel-muted);font-size:8px;line-height:1.45}.fuel-map-status.is-error{border-color:#b44242;background:#fff0ee;color:#8b3737}.fuel-map-status.is-success{border-color:var(--fuel-green);background:#edf6f1}
.fuel-best-results{margin-top:14px}.fuel-best-results[hidden]{display:none}.fuel-best-results header small{color:#9b6c27;font-size:6px;font-weight:900;letter-spacing:.1em}.fuel-best-results h2{margin:3px 0 8px;font-size:17px}.fuel-result-card{display:grid;grid-template-columns:34px 1fr auto;gap:8px;align-items:start;margin-top:6px;padding:9px;border:1px solid var(--fuel-line);border-radius:9px;background:#fff;cursor:pointer}.fuel-result-card:hover{border-color:#9ebaae;background:#fbfdfc}.fuel-result-card>i{display:grid;width:34px;height:34px;place-items:center;border-radius:8px;background:#edf6f1;font-size:16px;font-style:normal}.fuel-result-card.is-electric>i{background:#e8f2f8}.fuel-result-card b,.fuel-result-card small{display:block}.fuel-result-card b{font-size:8.5px}.fuel-result-card small{margin-top:2px;color:var(--fuel-muted);font-size:6.5px;line-height:1.35}.fuel-result-card strong{font-size:10px;white-space:nowrap}.fuel-result-card em{display:block;margin-top:3px;color:#9b6c27;font-size:6px;font-style:normal;text-align:right}
.fuel-residential-cta{display:flex;align-items:center;gap:9px;margin-top:15px;padding:11px;border-radius:10px;background:var(--fuel-ink);color:#fff;text-decoration:none}.fuel-residential-cta svg{width:29px;height:29px;padding:6px;border-radius:8px;background:rgba(255,255,255,.1);fill:none;stroke:var(--fuel-gold);stroke-width:1.8}.fuel-residential-cta b,.fuel-residential-cta small{display:block}.fuel-residential-cta b{font-size:8.5px}.fuel-residential-cta small{margin-top:2px;color:#cddbd5;font-size:6.5px;line-height:1.3}
.fuel-map-sources{margin-top:15px;padding-top:12px;border-top:1px solid var(--fuel-line);color:var(--fuel-muted);font-size:6.5px;line-height:1.5}.fuel-map-sources p{margin:4px 0}
.fuel-map-stage{position:relative;min-width:0;overflow:hidden;background:#dce3df}#fuel-map{position:absolute;inset:0}.fuel-map-loading{position:absolute;z-index:10;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(242,239,230,.82);backdrop-filter:blur(4px)}.fuel-map-loading[hidden]{display:none}.fuel-map-loading span{width:43px;height:43px;border:4px solid #d6ddd8;border-top-color:var(--fuel-green);border-radius:50%;animation:fuel-map-spin .8s linear infinite}.fuel-map-loading b{margin-top:13px;font-size:13px}.fuel-map-loading small{margin-top:5px;color:var(--fuel-muted);font-size:8.5px}.fuel-map-hint{position:absolute;z-index:4;right:14px;bottom:28px;padding:8px 11px;border:1px solid rgba(255,255,255,.8);border-radius:999px;background:rgba(23,53,45,.88);color:#fff;font-size:8px;box-shadow:0 8px 24px rgba(0,0,0,.18);pointer-events:none}
/* V205 — indicateur de recherche en arrière-plan nettement plus visible :
   bannière large et colorée en haut de la carte, avec icône éclair animée
   et vraie barre de progression, plutôt qu'un petit badge discret en coin
   qui passait inaperçu pour l'internaute. */
.fuel-map-background-loading{position:absolute;z-index:6;left:50%;top:16px;transform:translateX(-50%);display:flex;align-items:center;gap:10px;min-width:280px;max-width:min(92%,440px);padding:13px 20px;border:2px solid rgba(255,255,255,.65);border-radius:16px;background:linear-gradient(135deg,#1676d2,#0f5fa8);color:#fff;font-size:12px;font-weight:800;box-shadow:0 12px 32px rgba(15,95,168,.4),0 0 0 4px rgba(22,118,210,.14);pointer-events:none}
.fuel-map-background-loading[hidden]{display:none}
.fuel-map-background-loading>i{flex:0 0 auto;font-size:21px;line-height:1;filter:drop-shadow(0 0 6px rgba(255,255,255,.65));animation:fuel-bg-bolt 1s ease-in-out infinite}
.fuel-map-background-loading>span{flex:1;min-width:0}
.fuel-map-background-loading-bar{position:absolute;left:16px;right:16px;bottom:7px;display:block;height:4px;border-radius:999px;background:rgba(255,255,255,.28);overflow:hidden}
.fuel-map-background-loading-bar>i{display:block;height:100%;width:8%;border-radius:inherit;background:#ffe27a;box-shadow:0 0 8px rgba(255,226,122,.85);transition:width .4s ease}
@media(max-width:820px){.fuel-map-background-loading{top:10px;padding:11px 16px 15px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.fuel-map-background-loading>i{animation:none}}
.maplibregl-popup.fuel-station-popup{z-index:20}.fuel-station-popup .maplibregl-popup-content{min-width:245px;padding:0;border-radius:13px;background:#fffdf8;box-shadow:0 16px 45px rgba(14,34,27,.24)}.fuel-station-popup .maplibregl-popup-tip{border-top-color:#fffdf8}.station-hover-card{overflow:hidden;border-radius:13px}.station-hover-head{display:flex;align-items:center;gap:9px;padding:11px 12px;background:var(--fuel-ink);color:#fff}.station-hover-head i{display:grid;width:31px;height:31px;place-items:center;border-radius:9px;background:var(--fuel-gold);font-size:16px;font-style:normal}.station-hover-head small,.station-hover-head b{display:block}.station-hover-head small{color:#dbe7e1;font-size:6px;font-weight:900;letter-spacing:.1em}.station-hover-head b{margin-top:2px;font-size:11px}.station-hover-price{padding:11px 12px;border-bottom:1px solid var(--fuel-line)}.station-hover-price strong{font-size:22px;letter-spacing:-.04em}.station-hover-price span{margin-left:4px;color:var(--fuel-muted);font-size:8px}.station-hover-body{padding:10px 12px;color:var(--fuel-muted);font-size:8px;line-height:1.48}.station-hover-body p{margin:3px 0}.station-hover-body b{color:var(--fuel-ink)}.station-hover-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.station-hover-tags span{padding:3px 6px;border-radius:999px;background:#e9f0ec;color:var(--fuel-ink);font-size:6.5px;font-weight:750}
@keyframes fuel-map-spin{to{transform:rotate(360deg)}}
@keyframes fuel-bg-bolt{0%,100%{transform:scale(1) rotate(0deg)}50%{transform:scale(1.22) rotate(-6deg)}}
@media(max-width:1050px){.fuel-map-agent span{display:none}.fuel-map-agent{margin-left:auto}.fuel-map-shell{grid-template-columns:350px minmax(0,1fr)}}
@media(max-width:820px){body.fuel-map-page{overflow:auto}.fuel-map-shell{height:auto;min-height:calc(100svh - 72px);grid-template-columns:1fr;grid-template-rows:auto 62svh}.fuel-map-panel{overflow:visible;padding:18px}.fuel-map-intro h1{font-size:27px}.fuel-map-stage{min-height:480px}.fuel-map-tool-switcher{gap:5px}.fuel-map-agent{display:none}}
@media(max-width:520px){.fuel-map-topbar .brand-copy{display:none}.fuel-map-topbar{height:64px}.fuel-map-shell{min-height:calc(100svh - 64px)}.fuel-map-tool-switcher{margin-left:auto}.fuel-map-tool-switcher .topbar-title{max-width:128px}.fuel-search-zones{grid-template-columns:1fr}.fuel-search-zones legend,.fuel-distance-settings{grid-column:1}.fuel-distance-settings,.fuel-layer-choices{grid-template-columns:1fr}.fuel-trip-summary{grid-template-columns:1fr 1fr}.fuel-map-hint{display:none}}
@media(prefers-reduced-motion:reduce){.fuel-map-loading span{animation:none}}

.ban-address-note{
  margin:1px 0 0;
  padding:7px 9px;
  border-left:3px solid #2f6e5e;
  background:#edf6f1;
  color:#63736b;
  font-size:6.8px;
  line-height:1.4;
}


/* V173 — fond cartographique visible dès l'ouverture */
.fuel-map-stage{
  min-height:420px;
  background:#dfe7e2;
}
#fuel-map{
  width:100%;
  height:100%;
  min-height:420px;
  background:#dfe7e2;
}
#fuel-map .maplibregl-canvas-container,
#fuel-map .maplibregl-canvas{
  width:100%!important;
  height:100%!important;
}


/* V174 — carte de France locale et fond détaillé progressif */
.france-map-fallback{
  position:absolute;
  z-index:0;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:#dce9e4;
  opacity:1;
  transition:opacity .4s ease;
}
.france-map-fallback img{
  width:100%;
  height:100%;
  object-fit:cover;
}
.france-map-fallback.is-detailed-map-visible{
  opacity:0;
}
#fuel-map{
  z-index:1;
  background:transparent;
}
#fuel-map .maplibregl-canvas{
  background:transparent;
}


/* V175 — lisibilité renforcée de la colonne et des infobulles */
.fuel-map-shell{
  grid-template-columns:440px minmax(0,1fr);
}
.fuel-map-panel{
  padding:26px 24px 34px;
}
.fuel-map-eyebrow{
  font-size:11px;
}
.fuel-map-intro h1{
  font-size:38px;
}
.fuel-map-intro p{
  font-size:14px;
  line-height:1.6;
}
.fuel-context-banner b{
  font-size:13px;
}
.fuel-context-banner span{
  font-size:11px;
}
#fuel-route-form{
  gap:14px;
}
#fuel-route-form fieldset{
  padding:16px;
}
#fuel-route-form legend{
  font-size:12px;
}
#fuel-route-form legend svg{
  width:29px;
  height:29px;
}
.fuel-route-addresses{
  gap:11px;
}
.fuel-address-field{
  font-size:12px;
}
.fuel-address-field input{
  height:48px;
  font-size:14px;
}
.fuel-address-suggestions button{
  padding:12px;
  font-size:13px;
}
.fuel-address-suggestions small{
  font-size:11px;
}
.fuel-swap{
  padding:8px 16px;
  font-size:11px;
}
.ban-address-note{
  padding:10px 12px;
  font-size:11px;
}
.fuel-search-zones{
  gap:9px;
}
.fuel-search-zones>label{
  padding:11px;
  font-size:11px;
}
.fuel-search-zones>label input{
  width:18px;
  height:18px;
}
.fuel-distance-settings label,
.fuel-type-field{
  font-size:11px;
}
.fuel-distance-settings select,
.fuel-type-field select{
  height:44px;
  font-size:13px;
}
.fuel-toll-option{
  grid-column:1/-1;
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding:12px!important;
  border:1px solid #d4b36e!important;
  background:#fff8e9!important;
}
.fuel-toll-option input{
  width:20px!important;
  height:20px!important;
  flex:0 0 auto;
}
.fuel-toll-option span,
.fuel-toll-option b,
.fuel-toll-option small{
  display:block;
}
.fuel-toll-option b{
  font-size:13px;
}
.fuel-toll-option small{
  margin-top:3px;
  color:var(--fuel-muted);
  font-size:11px;
  line-height:1.35;
}
.layer-choice>span{
  grid-template-columns:38px 1fr;
  padding:11px;
}
.layer-choice svg{
  width:38px;
  height:38px;
}
.layer-choice b{
  font-size:12px;
}
.layer-choice small{
  font-size:10px;
  line-height:1.35;
}
.fuel-search-submit{
  min-height:58px;
}
.fuel-search-submit svg{
  width:28px;
  height:28px;
}
.fuel-search-submit b{
  font-size:14px;
}
.fuel-search-submit small{
  font-size:11px;
}
.fuel-trip-summary small{
  font-size:9px;
}
.fuel-trip-summary strong{
  font-size:18px;
}
.fuel-price-legend header b{
  font-size:13px;
}
.fuel-price-legend header small,
.fuel-legend-values,
.fuel-price-legend p{
  font-size:10px;
}
.fuel-map-status{
  font-size:12px;
  line-height:1.5;
}
.fuel-best-results header small{
  font-size:9px;
}
.fuel-best-results h2{
  font-size:21px;
}
.fuel-result-card{
  grid-template-columns:42px 1fr auto;
  padding:12px;
}
.fuel-result-card>i{
  width:42px;
  height:42px;
  font-size:20px;
}
.fuel-result-card b{
  font-size:12px;
}
.fuel-result-card small{
  font-size:10px;
}
.fuel-result-card strong{
  font-size:13px;
}
.fuel-result-card em{
  font-size:9px;
}
.fuel-residential-cta b{
  font-size:12px;
}
.fuel-residential-cta small{
  font-size:10px;
}
.fuel-map-sources{
  font-size:10px;
}
.fuel-map-hint{
  font-size:11px;
}
.fuel-map-loading b{
  font-size:16px;
}
.fuel-map-loading small{
  font-size:12px;
}

/* Infobulles */
.fuel-station-popup .maplibregl-popup-content{
  min-width:310px;
  max-width:390px;
  border-radius:15px;
}
.station-hover-head{
  gap:12px;
  padding:14px 16px;
}
.station-hover-head i{
  width:40px;
  height:40px;
  font-size:20px;
}
.station-hover-head small{
  font-size:10px;
}
.station-hover-head b{
  font-size:15px;
  line-height:1.25;
}
.station-hover-price{
  padding:14px 16px;
}
.station-hover-price strong{
  font-size:29px;
}
.station-hover-price span{
  font-size:12px;
}
.station-hover-body{
  padding:14px 16px;
  font-size:12px;
  line-height:1.55;
}
.station-hover-body p{
  margin:6px 0;
}
.station-hover-tags{
  gap:6px;
  margin-top:10px;
}
.station-hover-tags span{
  padding:5px 8px;
  font-size:10px;
}

@media(max-width:1180px){
  .fuel-map-shell{
    grid-template-columns:410px minmax(0,1fr);
  }
}
@media(max-width:1050px){
  .fuel-map-shell{
    grid-template-columns:390px minmax(0,1fr);
  }
}
@media(max-width:820px){
  .fuel-map-intro p{font-size:13px}
  .fuel-address-field input{font-size:16px}
  .station-hover-body{font-size:13px}
}


/* V176 — compteurs distincts et visibilité des bornes */
.fuel-trip-summary{
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.fuel-trip-summary article{
  padding:11px 8px;
}
.fuel-trip-summary strong{
  font-size:17px;
}
@media(max-width:520px){
  .fuel-trip-summary{
    grid-template-columns:1fr 1fr;
  }
}


/* V177 — classement explicite du moins cher au plus cher */
.fuel-best-results>header p{
  margin:4px 0 12px;
  color:var(--fuel-muted);
  font-size:11px;
  line-height:1.45;
}
.fuel-ranking-group{
  margin-top:14px;
}
.fuel-ranking-group>header{
  display:flex;
  align-items:center;
  gap:10px;
  padding:11px 12px;
  border-radius:10px;
  background:#17352d;
  color:#fff;
}
.fuel-ranking-electric>header{
  background:#245f82;
}
.fuel-ranking-icon{
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  border-radius:9px;
  background:rgba(255,255,255,.13);
  font-size:18px;
}
.fuel-ranking-group>header b,
.fuel-ranking-group>header small{
  display:block;
}
.fuel-ranking-group>header b{
  font-size:13px;
}
.fuel-ranking-group>header small{
  margin-top:3px;
  color:#d6e2dc;
  font-size:10px;
  line-height:1.35;
}
.fuel-result-card{
  grid-template-columns:32px 42px minmax(0,1fr) auto;
  align-items:center;
}
.fuel-result-rank{
  display:grid;
  width:30px;
  height:30px;
  place-items:center;
  border-radius:50%;
  background:#17352d;
  color:#fff;
  font-size:12px;
  font-weight:900;
}
.fuel-result-card.is-electric .fuel-result-rank{
  background:#2876a8;
}
.fuel-result-rank.is-unranked{
  background:#a8afa9;
}
.fuel-result-main{
  min-width:0;
}
.fuel-result-price{
  min-width:104px;
  text-align:right;
}
.fuel-result-price strong,
.fuel-result-price em{
  display:block;
}
.fuel-result-card.is-unranked{
  opacity:.82;
  background:#f6f5f1;
}
@media(max-width:520px){
  .fuel-result-card{
    grid-template-columns:30px 38px minmax(0,1fr);
  }
  .fuel-result-price{
    grid-column:3;
    min-width:0;
    text-align:left;
  }
}


/* V180 — fiches complètes des stations */
.fuel-map-sources a,
.station-detail-section a{
  color:#2f6e5e;
  font-weight:800;
  text-decoration:underline;
  text-underline-offset:2px;
}
.fuel-station-popup .maplibregl-popup-content{
  width:min(480px,calc(100vw - 28px));
  max-width:480px;
  max-height:76vh;
  overflow:auto;
}
.station-complete-card{
  min-width:0;
}
.station-hover-price small{
  display:block;
  margin-top:5px;
  color:var(--fuel-muted);
  font-size:11px;
}
.station-detail-section{
  padding:11px 0;
  border-bottom:1px solid #e5dfd5;
}
.station-detail-section:last-of-type{
  border-bottom:0;
}
.station-detail-section h3{
  margin:0 0 8px;
  color:#8a6429;
  font-size:12px;
  letter-spacing:.05em;
  text-transform:uppercase;
}
.station-detail-section dl{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 14px;
  margin:0;
}
.station-detail-row{
  display:grid;
  grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr);
  gap:8px;
  padding:5px 0;
  border-bottom:1px dashed #ece7df;
}
.station-detail-row.is-full{
  grid-column:1/-1;
}
.station-detail-row dt{
  color:#52685f;
  font-size:11px;
  font-weight:800;
}
.station-detail-row dd{
  min-width:0;
  margin:0;
  color:#17352d;
  font-size:11px;
  line-height:1.45;
  overflow-wrap:anywhere;
}
.station-price-table{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:7px;
}
.station-price-table>div{
  padding:8px;
  border:1px solid #ded7cc;
  border-radius:8px;
  background:#faf8f3;
}
.station-price-table b,
.station-price-table strong,
.station-price-table small{
  display:block;
}
.station-price-table b{
  font-size:11px;
}
.station-price-table strong{
  margin-top:3px;
  font-size:15px;
}
.station-price-table small{
  margin-top:3px;
  color:#63736b;
  font-size:9px;
  line-height:1.35;
}
.station-pin-note{
  margin:11px 0 0;
  padding:9px 10px;
  border-radius:8px;
  background:#edf6f1;
  color:#405249;
  font-size:10px;
  line-height:1.45;
}
.maplibregl-popup-close-button{
  z-index:5;
  width:32px;
  height:32px;
  border-radius:50%;
  background:#fff!important;
  color:#17352d;
  font-size:22px;
  line-height:28px;
  box-shadow:0 3px 10px rgba(0,0,0,.18);
}
@media(max-width:560px){
  .fuel-station-popup .maplibregl-popup-content{
    max-height:68vh;
  }
  .station-detail-section dl,
  .station-price-table{
    grid-template-columns:1fr;
  }
  .station-detail-row{
    grid-template-columns:1fr;
    gap:2px;
  }
}


/* V181 — informations essentielles au survol */
.station-essential-card{
  width:min(390px,calc(100vw - 28px));
}
.station-essential-card .station-hover-body{
  padding:13px 15px;
}
.station-essential-grid{
  display:grid;
  grid-template-columns:128px minmax(0,1fr);
  gap:7px 11px;
}
.station-essential-grid b{
  color:#52685f;
  font-size:11px;
}
.station-essential-grid span{
  min-width:0;
  color:#17352d;
  font-size:12px;
  line-height:1.4;
  overflow-wrap:anywhere;
}
.station-essential-card .station-hover-tags{
  margin-top:12px;
}
@media(max-width:520px){
  .station-essential-grid{
    grid-template-columns:1fr;
    gap:2px;
  }
  .station-essential-grid span{
    margin-bottom:7px;
  }
}


/* V182 — provenance de l'enseigne et complément OpenStreetMap */
.station-essential-grid span{
  white-space:normal;
}
.station-hover-card a{
  overflow-wrap:anywhere;
}


/* V183 — rendu progressif et enrichissement différé */
.fuel-map-status.is-success{
  min-height:34px;
}
.station-essential-grid span{
  text-wrap:pretty;
}


/* V184 — provenance officielle des enseignes */
.station-essential-grid span{
  text-wrap:pretty;
}


/* V185 — bornes électriques visibles sans clustering */
.layer-choice-electric>span{
  border-color:#9bc4ec;
  background:#f2f8fe;
}
.legend-dot.electric-dot{
  width:12px;
  height:12px;
  background:#1676d2;
  box-shadow:0 0 0 3px #fff,0 0 0 4px #1676d2;
}


/* V186 — visibilité renforcée du sondage électrique direct */
.layer-choice-electric input:checked+span{
  border-color:#1676d2;
  box-shadow:0 0 0 2px rgba(22,118,210,.18);
}


/* V188 — clustering distinct des bornes électriques */
.maplibregl-canvas-container.maplibregl-interactive{cursor:grab}

/* V192 — pictogrammes d’enseignes des stations-service */
.fuel-brand-badge{
  display:grid;
  flex:0 0 auto;
  width:34px;
  height:34px;
  place-items:center;
  border:3px solid #fff;
  border-radius:50%;
  background:var(--brand-bg,#c89645);
  color:var(--brand-fg,#fff);
  box-shadow:0 2px 8px rgba(12,34,28,.24);
  font-size:9px;
  font-style:normal;
  font-weight:950;
  letter-spacing:-.04em;
  line-height:1;
}
.fuel-brand-badge.is-compact{
  width:34px;
  height:34px;
  border-width:2px;
  border-radius:9px;
  box-shadow:none;
}
.fuel-brand-badge.is-neutral{
  border-color:#edf6f1;
  background:#edf6f1;
  color:#17352d;
  font-size:16px;
}
.fuel-brand-badge.is-generic{
  color:#ffffff;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
}
.fuel-brand-badge.is-generic.is-compact{font-size:10px}
.station-hover-head>.fuel-brand-badge{width:31px;height:31px;border-width:2px}

/* v193 — logos réels et géolocalisation mobile */
.fuel-brand-badge.is-logo{background:#fff;border:1px solid rgba(23,53,45,.16);display:inline-grid;place-items:center;overflow:hidden;padding:3px}
.fuel-brand-badge.is-logo img{display:block;width:100%;height:100%;object-fit:contain}
.fuel-brand-badge.is-logo>span{display:none;font-size:8px;font-weight:900;line-height:1;text-align:center;color:#17352d}
.fuel-brand-badge.is-logo.is-logo-error>span{display:block}
.fuel-near-me{display:none;width:100%;margin-top:10px;border:1px solid #2775a8;background:#edf7ff;color:#174e73;border-radius:16px;padding:12px 14px;align-items:center;justify-content:center;gap:10px;font:inherit;cursor:pointer}
.fuel-near-me>span:first-child{font-size:25px;line-height:1}.fuel-near-me b,.fuel-near-me small{display:block}.fuel-near-me small{font-size:11px;font-weight:600;opacity:.78}
@media(max-width:820px),(pointer:coarse){.fuel-near-me{display:flex}.fuel-map-intro p{margin-bottom:8px}}


/* V195 — sélecteur exclusif, logos officiels en couleurs et bornes directes */
.fuel-layer-choices{grid-template-columns:1fr 1fr;gap:8px;padding:4px;border:1px solid var(--fuel-line);border-radius:14px;background:var(--fuel-cream)}
.layer-choice>span{min-height:58px;border:0;border-radius:10px;background:transparent;box-shadow:none}
.layer-choice input:checked+span{border:0;background:var(--fuel-ink);color:#fff;box-shadow:0 3px 10px rgba(23,53,45,.18)}
.layer-choice input:checked+span small{color:#d7e3de}
.layer-choice input:checked+span svg{background:rgba(255,255,255,.10);color:var(--fuel-gold)}
.layer-choice-electric input:checked+span{border:0;background:var(--fuel-ink);box-shadow:0 3px 10px rgba(23,53,45,.18)}
.layer-choice-electric input:checked+span svg{background:rgba(255,255,255,.10);color:var(--fuel-gold)}
.fuel-brand-badge.is-logo.is-charter{padding:5px;border:2px solid var(--fuel-green);border-radius:10px;background:var(--fuel-paper);box-shadow:0 2px 7px rgba(23,53,45,.16)}
.fuel-brand-badge.is-logo.is-charter img{filter:none;width:100%;height:100%;object-fit:contain}
.station-hover-head>.fuel-brand-badge.is-charter{border-color:var(--fuel-gold);background:var(--fuel-paper)}
@media(max-width:520px){.fuel-layer-choices{grid-template-columns:1fr 1fr}.layer-choice>span{grid-template-columns:26px 1fr;min-height:54px;padding:8px}.layer-choice svg{width:26px;height:26px}.layer-choice small{display:none}}


/* V196 — classement Économie / Proximité / Compromis */
.fuel-ranking-tabs{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:6px;
  margin-top:12px;
  padding:4px;
  border:1px solid var(--fuel-line);
  border-radius:12px;
  background:#f3f5f2;
}
.fuel-ranking-tabs label{cursor:pointer;min-width:0}
.fuel-ranking-tabs input{position:absolute;opacity:0;pointer-events:none}
.fuel-ranking-tabs span{
  display:grid;
  min-height:38px;
  place-items:center;
  padding:7px 6px;
  border-radius:9px;
  color:#52635d;
  font-size:11px;
  font-weight:850;
  text-align:center;
  transition:background .16s ease,color .16s ease,box-shadow .16s ease;
}
.fuel-ranking-tabs input:checked+span{
  background:#183128;
  color:#fff;
  box-shadow:0 5px 14px rgba(24,49,40,.18);
}
.fuel-ranking-tabs input:focus-visible+span{outline:3px solid rgba(184,132,50,.35);outline-offset:2px}
@media(max-width:420px){
  .fuel-ranking-tabs span{font-size:10px;padding-inline:3px}
}

/* V212 — coût du trajet : détention du véhicule vs carburant consommé */
.fuel-vehicle-cost-fields{display:grid;gap:9px;margin-top:14px;padding-top:14px;border-top:1px solid var(--fuel-line)}
.fuel-vehicle-cost-intro{margin:0;color:var(--fuel-muted);font-size:7px;line-height:1.4}
.fuel-vehicle-cost-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.fuel-vehicle-cost-grid label:last-child{grid-column:1/-1}
.fuel-vehicle-cost-grid label{color:#405249;font-size:6.5px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.fuel-vehicle-cost-grid select,.fuel-vehicle-cost-grid input{height:38px;margin-top:5px;width:100%;border:1px solid var(--fuel-line);border-radius:8px;background:#fcfbf8;font-size:9px;padding:0 9px;text-transform:none}
.fuel-vehicle-cost-grid .input-unit{position:relative;display:block}
.fuel-vehicle-cost-grid .input-unit i{position:absolute;right:9px;top:50%;transform:translateY(15%);color:var(--fuel-muted);font-size:7px;font-style:normal;pointer-events:none}
.fuel-vehicle-cost-grid small{display:block;margin-top:4px;color:var(--fuel-muted);font-size:6px;font-weight:600;letter-spacing:0;text-transform:none;line-height:1.35}

.fuel-trip-cost{margin-top:10px;padding:12px;border:1px solid var(--fuel-line);border-radius:11px;background:#fff}
.fuel-trip-cost[hidden]{display:none}
.fuel-trip-cost header{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.fuel-trip-cost header small{color:#8a6a32;font-size:5.5px;font-weight:900;letter-spacing:.08em}
.fuel-trip-cost header b{font-size:16px;white-space:nowrap}
.fuel-trip-cost-rows{margin-top:8px;display:grid;gap:5px}
.fuel-trip-cost-rows p{display:flex;align-items:center;justify-content:space-between;margin:0;font-size:8.5px}
.fuel-trip-cost-rows span{color:var(--fuel-muted)}
.fuel-trip-cost-rows b{font-weight:800}
.fuel-trip-cost-note{margin:8px 0 0;color:var(--fuel-muted);font-size:6.5px;line-height:1.4}


/* V216 — choix GPS visible et fiable sur iPhone / Android */
.station-navigation-actions{display:none}
@media(max-width:820px),(pointer:coarse){
  .station-navigation-actions{
    display:block;
    margin:0 0 13px;
    padding:12px;
    border:1px solid #d8e0dc;
    border-radius:12px;
    background:#f4f8f6;
  }
  .station-navigation-copy b,
  .station-navigation-copy small{display:block}
  .station-navigation-copy b{color:#17352d;font-size:13px}
  .station-navigation-copy small{margin-top:2px;color:#61736b;font-size:10px}
  .station-navigation-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
  .station-navigation-button{
    display:flex;
    min-height:47px;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:9px 10px;
    border:1px solid #cfd9d4;
    border-radius:10px;
    background:#fff;
    color:#17352d!important;
    font-size:11px;
    font-weight:850;
    text-decoration:none!important;
    box-shadow:0 3px 9px rgba(23,53,45,.08);
  }
  .station-navigation-button span{
    display:grid;
    width:25px;
    height:25px;
    flex:0 0 25px;
    place-items:center;
    border-radius:7px;
    color:#fff;
    font-size:13px;
    font-weight:950;
  }
  .station-navigation-button.is-google span{background:#4285f4}
  .station-navigation-button.is-waze span{background:#18a8e0}
  .station-navigation-button:active{transform:translateY(1px)}
}
@media(max-width:360px){
  .station-navigation-buttons{grid-template-columns:1fr}
}


/* V217 — feuille de choix GPS ergonomique et mieux présentée */
.mobile-navigation-sheet{display:none}
@media(max-width:820px),(pointer:coarse){
  body.mobile-navigation-open{overflow:hidden}
  .mobile-navigation-sheet{
    position:fixed;
    inset:0;
    z-index:10000;
    display:block;
    pointer-events:none;
  }
  .mobile-navigation-sheet[hidden]{display:none!important}
  .mobile-navigation-backdrop{
    position:absolute;
    inset:0;
    border:0;
    background:rgba(7,22,17,.52);
    opacity:0;
    pointer-events:auto;
    transition:opacity .18s ease;
    -webkit-tap-highlight-color:transparent;
  }
  .mobile-navigation-dialog{
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    max-height:min(82vh,680px);
    padding:10px 18px calc(18px + env(safe-area-inset-bottom));
    overflow:auto;
    border-radius:28px 28px 0 0;
    background:linear-gradient(180deg,#fffefb 0%,#f6faf7 100%);
    box-shadow:0 -20px 56px rgba(7,22,17,.26);
    transform:translateY(105%);
    transition:transform .22s ease;
    pointer-events:auto;
    -webkit-overflow-scrolling:touch;
  }
  .mobile-navigation-sheet.is-open .mobile-navigation-backdrop{opacity:1}
  .mobile-navigation-sheet.is-open .mobile-navigation-dialog{transform:translateY(0)}
  .mobile-navigation-handle{
    width:46px;
    height:5px;
    margin:0 auto 14px;
    border-radius:999px;
    background:#d6dfda;
  }
  .mobile-navigation-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
  }
  .mobile-navigation-header small,
  .mobile-navigation-header b{display:block}
  .mobile-navigation-header small{
    color:#91703b;
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
  }
  .mobile-navigation-header b{
    margin-top:4px;
    color:#17352d;
    font-size:22px;
    line-height:1.15;
  }
  .mobile-navigation-close{
    flex:0 0 40px;
    width:40px;
    height:40px;
    border:1px solid #dce5df;
    border-radius:50%;
    background:#fff;
    color:#17352d;
    font-size:28px;
    line-height:34px;
    box-shadow:0 8px 20px rgba(19,53,43,.08);
  }
  .mobile-navigation-summary{
    margin-top:16px;
    padding:14px 14px 13px;
    border:1px solid #dce7df;
    border-radius:18px;
    background:#ffffff;
    box-shadow:0 10px 24px rgba(19,53,43,.07);
  }
  .mobile-navigation-type{
    display:inline-flex;
    align-items:center;
    margin:0;
    padding:5px 10px;
    border-radius:999px;
    background:#edf5ef;
    color:#315748;
    font-size:11px;
    font-weight:800;
    letter-spacing:.02em;
  }
  .mobile-navigation-station{
    margin:10px 0 0;
    color:#17352d;
    font-size:17px;
    font-weight:900;
    line-height:1.28;
  }
  .mobile-navigation-address{
    margin:6px 0 0;
    color:#5f7269;
    font-size:13px;
    line-height:1.45;
  }
  .mobile-navigation-coordinates{
    margin:8px 0 0;
    color:#8b9b94;
    font-size:11px;
    line-height:1.35;
  }
  .mobile-navigation-helper{
    margin:16px 2px 0;
    color:#446257;
    font-size:13px;
    font-weight:700;
    line-height:1.35;
  }
  .mobile-navigation-options{
    display:grid;
    grid-template-columns:1fr;
    gap:11px;
    margin-top:12px;
  }
  .mobile-navigation-option{
    display:grid;
    grid-template-columns:46px minmax(0,1fr) auto;
    grid-template-rows:auto auto;
    column-gap:12px;
    align-items:center;
    min-height:82px;
    padding:13px 14px;
    border:1px solid #dbe5df;
    border-radius:18px;
    background:#fff;
    color:#17352d;
    text-decoration:none;
    box-shadow:0 10px 24px rgba(19,53,43,.08);
    -webkit-tap-highlight-color:transparent;
    touch-action:manipulation;
  }
  .mobile-navigation-option > span{
    grid-row:1/3;
    display:grid;
    width:46px;
    height:46px;
    place-items:center;
    border-radius:14px;
    color:#fff;
    font-size:19px;
    font-weight:950;
  }
  .mobile-navigation-option.is-google > span{background:#4285f4}
  .mobile-navigation-option.is-waze > span{background:#18a8e0}
  .mobile-navigation-option strong{
    font-size:15px;
    line-height:1.2;
  }
  .mobile-navigation-option small{
    color:#687b72;
    font-size:11px;
    line-height:1.3;
  }
  .mobile-navigation-option em{
    grid-row:1/3;
    align-self:center;
    color:#8aa095;
    font-style:normal;
    font-size:28px;
    line-height:1;
  }
  .mobile-navigation-option:active{transform:translateY(1px)}
  .mobile-navigation-note{
    margin:14px 4px 0;
    color:#6a7a73;
    font-size:10px;
    line-height:1.45;
    text-align:center;
  }
  .mobile-navigation-cancel{
    width:100%;
    margin-top:14px;
    padding:14px 16px;
    border:1px solid #d9e3dd;
    border-radius:16px;
    background:#ffffff;
    color:#17352d;
    font-size:15px;
    font-weight:800;
    box-shadow:0 8px 20px rgba(19,53,43,.06);
    -webkit-tap-highlight-color:transparent;
  }
}

/* V284 — logos TotalEnergies / AVIA strictement contenus dans le liseré */
.fuel-brand-badge.is-logo,.fuel-brand-badge.is-logo.is-charter{box-sizing:border-box;overflow:hidden;isolation:isolate}
.fuel-brand-badge.is-logo img,.fuel-brand-badge.is-logo.is-charter img{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center;transform:none!important}
.fuel-brand-badge[data-brand="totalenergies"],.fuel-brand-badge[data-brand="avia"]{padding:6px!important}
.fuel-brand-badge[data-brand="totalenergies"] img,.fuel-brand-badge[data-brand="avia"] img{max-width:88%;max-height:88%}
