/* =========================================================
 *  SPRINT 8 — Autour de moi / Trajet / Comparaison locale
 *  External CSS module — no regressions on existing code
 * ========================================================= */
@media(max-width:820px){

/* ========== MODES BAR (fixed above tabs, replaces v11-optbar) ========== */
.s8-modes-bar{
  pointer-events:auto;position:absolute;bottom:56px;left:0;right:0;z-index:640;
  display:flex;gap:7px;padding:5px 14px;
  justify-content:center;align-items:center;
  background:linear-gradient(180deg,rgb(0 7 42 / 98%) 0%,rgb(0 7 69 / 99%) 100%);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-top:1px solid rgba(77,184,255,0.08);
  box-shadow:0 -3px 16px rgba(0,0,0,0.4);
  overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.s8-modes-bar::-webkit-scrollbar{display:none;}
@supports(bottom:env(safe-area-inset-bottom)){
  .s8-modes-bar{bottom:calc(58px + env(safe-area-inset-bottom));}
}

/* ========== MODE SELECTOR (sticky menu — legacy, kept for sub-bar anchoring) ========== */
.s8-modes{
  position:sticky;top:0;z-index:5;
  display:flex;gap:7px;padding:6px 14px;overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;flex-shrink:0;justify-content:center;align-items:center;
  margin:0 -10px 0;
  background:linear-gradient(180deg,rgba(6,11,36,0.99) 0%,rgba(3,7,22,0.99) 100%);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(77,184,255,0.1);
  box-shadow:0 3px 20px rgba(0,0,0,0.55),inset 0 1px 0 rgba(255,255,255,0.04);
}
.s8-modes::-webkit-scrollbar{display:none;}

.s8-mode-btn{
  flex-shrink:0;display:inline-flex;align-items:center;gap:5px;
  padding:5px 13px;border-radius:999px;font-size:11px;font-weight:700;letter-spacing:.01em;
  background:linear-gradient(135deg,rgba(255,255,255,0.07) 0%,rgba(255,255,255,0.02) 100%);
  border:1px solid rgba(255,255,255,0.1);
  color:rgba(255,255,255,0.52);cursor:pointer;white-space:nowrap;
  transition:all .2s cubic-bezier(.25,.8,.25,1);-webkit-tap-highlight-color:transparent;
  min-height:30px;
}
.s8-mode-btn:active{transform:scale(0.92);}

/* Active — Autour de moi (vert) */
.s8-mode-btn[data-mode="autour"].active{
  background:linear-gradient(135deg,rgba(74,222,128,0.22) 0%,rgba(15,140,67,0.14) 100%);
  border-color:rgba(74,222,128,0.52);color:#80eaaa;
  box-shadow:0 0 14px rgba(74,222,128,0.18),inset 0 0 10px rgba(74,222,128,0.05);
}
/* Active — Trajet (bleu) */
.s8-mode-btn[data-mode="trajet"].active{
  background:linear-gradient(135deg,rgba(17,120,195,0.52) 0%,rgba(77,184,255,0.18) 100%);
  border-color:#4db8ff;color:#fff;
  box-shadow:0 0 14px rgba(77,184,255,0.22),inset 0 0 10px rgba(77,184,255,0.07);
}
/* Active — Comparer (orange) */
.s8-mode-btn[data-mode="compare"].active{
  background:linear-gradient(135deg,rgba(255,140,40,0.26) 0%,rgba(255,165,0,0.10) 100%);
  border-color:rgba(255,165,0,0.58);color:#ffcc80;
  box-shadow:0 0 14px rgba(255,165,0,0.18),inset 0 0 10px rgba(255,165,0,0.05);
}

.s8-mode-btn .s8-mi{font-size:13px;line-height:1;}

/* ========== AUTOUR DE MOI — Radius filter bar (sticky sub-menu) ========== */
@keyframes s8FadeIn{from{opacity:0;transform:translateY(-5px);}to{opacity:1;transform:translateY(0);}}

.s8-radius-bar{
  position:sticky;top:0;z-index:4;
  display:flex;align-items:center;gap:6px;padding:5px 12px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  justify-content:safe center;
  margin:0 -10px;
  background:linear-gradient(180deg,rgba(4,18,8,0.99) 0%,rgba(2,10,4,0.99) 100%);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(74,222,128,0.15);
  box-shadow:0 2px 12px rgba(0,0,0,0.4),inset 0 1px 0 rgba(74,222,128,0.04);
  animation:s8FadeIn .2s ease;
}
.s8-radius-bar::-webkit-scrollbar{display:none;}

.s8-radius-label{
  flex-shrink:0;font-size:9.5px;font-weight:900;
  color:rgba(74,222,128,0.65);text-transform:uppercase;letter-spacing:.08em;
  white-space:nowrap;padding-right:2px;
}

.s8-radius-pill{
  flex-shrink:0;padding:4px 11px;border-radius:999px;font-size:11px;font-weight:700;
  background:rgba(74,222,128,0.06);border:1px solid rgba(74,222,128,0.18);
  color:rgba(255,255,255,0.58);cursor:pointer;white-space:nowrap;
  transition:all .15s;-webkit-tap-highlight-color:transparent;
  min-height:26px;
}
.s8-radius-pill:active{transform:scale(0.92);}
.s8-radius-pill.active{
  background:rgba(74,222,128,0.18);border-color:rgba(74,222,128,0.55);
  color:#80eaaa;box-shadow:0 0 8px rgba(74,222,128,0.15);
}

.s8-cheapest-btn{
  flex-shrink:0;margin-left:auto;padding:4px 12px;border-radius:999px;
  font-size:11px;font-weight:800;
  background:linear-gradient(135deg,#0f8c43,#1cc070);color:#fff;
  border:none;cursor:pointer;white-space:nowrap;
  box-shadow:0 2px 6px rgba(15,140,67,0.3);
  transition:all .15s;-webkit-tap-highlight-color:transparent;
  min-height:26px;
}
.s8-cheapest-btn:active{transform:scale(0.93);}

/* Radius circle overlay on map */
.s8-radius-circle{
  fill:rgba(77,184,255,0.06);stroke:rgba(77,184,255,0.35);stroke-width:2;
}

/* ========== TRAJET MODE ========== */
.s8-trajet-panel{
  padding:12px;animation:s8FadeIn .25s ease;
}
.s8-trajet-row{
  display:flex;align-items:center;gap:9px;margin-bottom:9px;
}
.s8-trajet-icon{
  flex-shrink:0;width:30px;height:30px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;font-weight:700;
  background:rgba(77,184,255,0.14);border:1px solid rgba(77,184,255,0.22);
  color:#4db8ff;
}
.s8-trajet-icon.end{
  background:rgba(74,222,128,0.14);border-color:rgba(74,222,128,0.28);
  color:#80eaaa;
}
.s8-trajet-input{
  flex:1;padding:11px 13px;border-radius:12px;font-size:.86em;font-weight:600;
  background:rgba(255,255,255,0.07);border:1.5px solid rgba(100,180,255,0.18);
  color:#fff;outline:none;box-sizing:border-box;
  transition:border-color .2s;
}
.s8-trajet-input::placeholder{color:rgba(255,255,255,0.35);}
.s8-trajet-input:focus{border-color:rgba(77,184,255,0.5);background:rgba(255,255,255,0.09);}

.s8-trajet-btn-myloc{
  flex-shrink:0;width:40px;height:40px;border-radius:50%;
  background:rgba(74,222,128,0.1);border:1px solid rgba(74,222,128,0.28);
  color:#80eaaa;font-size:16px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .15s;-webkit-tap-highlight-color:transparent;padding:0;
}
.s8-trajet-btn-myloc:active{transform:scale(0.9);}
.s8-trajet-btn-myloc.active{
  background:rgba(74,222,128,0.22);border-color:rgba(74,222,128,0.55);
}

.s8-trajet-actions{
  display:flex;gap:8px;margin-top:6px;
}
.s8-trajet-go{
  flex:1;padding:13px;border-radius:14px;font-weight:800;font-size:.86em;
  background:linear-gradient(135deg,#1178c3,#4db8ff);color:#fff;
  border:none;cursor:pointer;text-align:center;
  transition:transform .1s, opacity .15s;-webkit-tap-highlight-color:transparent;
  box-shadow:0 3px 12px rgba(17,120,195,0.35);
}
.s8-trajet-go:active{transform:scale(0.96);}
.s8-trajet-go:disabled{opacity:.38;pointer-events:none;}

.s8-trajet-swap{
  flex-shrink:0;width:44px;height:44px;border-radius:12px;
  background:rgba(255,255,255,0.07);border:1px solid rgba(100,180,255,0.16);
  color:rgba(255,255,255,0.60);font-size:18px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all .18s;-webkit-tap-highlight-color:transparent;padding:0;
}
.s8-trajet-swap:active{transform:scale(0.9) rotate(180deg);}

.s8-trajet-corridor{
  font-size:11.5px;font-weight:600;color:rgba(255,255,255,0.55);
  text-align:center;padding:5px 0 2px;
}

.s8-trajet-results{margin-top:8px;}
.s8-autour-results{padding-top:8px;}
.s8-compare-results{padding-top:8px;}

/* Coût estimé par station dans les résultats trajet */
.s8-trajet-cost{
  font-size:.68em;color:rgba(180,210,255,0.58);font-weight:600;
  padding:2px 0 2px;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}

/* Ligne consommation dans le panel trajet */
.s8-trajet-conso-row{
  display:flex;align-items:center;gap:7px;padding:6px 0 4px;flex-wrap:wrap;
}
.s8-trajet-conso-label{
  flex-shrink:0;font-size:.8em;font-weight:700;color:rgba(255,255,255,0.65);
}
.s8-trajet-conso-input{
  width:52px;padding:4px 6px;border-radius:8px;
  background:rgba(255,255,255,0.08);border:1px solid rgba(100,180,255,0.22);
  color:#fff;font-size:.85em;font-weight:700;text-align:center;outline:none;
  -moz-appearance:textfield;
}
.s8-trajet-conso-input::-webkit-inner-spin-button,.s8-trajet-conso-input::-webkit-outer-spin-button{opacity:.5;}
.s8-trajet-conso-unit{
  flex-shrink:0;font-size:.75em;color:rgba(255,255,255,0.45);
}
.s8-trajet-conso-optional{
  font-size:.78em;font-weight:500;color:rgba(255,255,255,0.28);font-style:italic;
}

/* Route polyline on map */
.s8-route-line{
  stroke:#4db8ff;stroke-width:4;fill:none;stroke-linecap:round;
  stroke-dasharray:8 6;
}

/* Autocomplete dropdown */
.s8-autocomplete{
  position:absolute;left:0;right:0;top:100%;z-index:30;
  background:rgba(8,14,46,0.97);border:1px solid rgba(77,184,255,0.22);
  border-radius:12px;padding:4px 0;max-height:180px;overflow-y:auto;
  box-shadow:0 8px 32px rgba(0,0,0,0.5);backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);display:none;
  margin-top:4px;
}
.s8-autocomplete.open{display:block;animation:s8FadeIn .18s ease;}
.s8-autocomplete-item{
  padding:11px 14px;font-size:12.5px;font-weight:600;
  color:rgba(255,255,255,0.72);cursor:pointer;
  display:flex;align-items:center;gap:8px;
  transition:background .1s;
}
.s8-autocomplete-item:active{background:rgba(77,184,255,0.12);}
.s8-autocomplete-item .s8-ac-cp{
  font-size:10.5px;color:rgba(255,255,255,0.45);
  margin-left:auto;flex-shrink:0;
}

/* ========== COMPARAISON LOCALE (sticky sub-menu) ========== */
.s8-compare-bar{
  position:sticky;top:0;z-index:4;
  display:flex;align-items:center;justify-content:center;gap:6px;padding:5px 12px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  margin:0 -10px;
  background:linear-gradient(180deg,rgba(22,12,3,0.99) 0%,rgba(14,7,2,0.99) 100%);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,165,0,0.15);
  box-shadow:0 2px 12px rgba(0,0,0,0.4),inset 0 1px 0 rgba(255,165,0,0.04);
  animation:s8FadeIn .2s ease;
}
.s8-compare-bar::-webkit-scrollbar{display:none;}

.s8-compare-label{
  flex-shrink:0;font-size:9.5px;font-weight:900;
  color:rgba(255,165,0,0.65);text-transform:uppercase;letter-spacing:.08em;
  white-space:nowrap;padding-right:2px;
}

.s8-compare-pill{
  flex-shrink:0;padding:4px 11px;border-radius:999px;font-size:11px;font-weight:700;
  background:rgba(255,165,0,0.06);border:1px solid rgba(255,165,0,0.18);
  color:rgba(255,255,255,0.58);cursor:pointer;white-space:nowrap;
  transition:all .15s;-webkit-tap-highlight-color:transparent;
  min-height:26px;
}
.s8-compare-pill:active{transform:scale(0.92);}
.s8-compare-pill.active{
  background:rgba(255,165,0,0.18);border-color:rgba(255,165,0,0.55);
  color:#ffcc80;box-shadow:0 0 8px rgba(255,165,0,0.15);
}
.s8-compare-pill.disabled{opacity:.35;pointer-events:none;}

/* Rank badge overlay on cards */
.s8-rank-badge{
  position:absolute;top:8px;left:8px;z-index:2;
  width:24px;height:24px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:900;color:#fff;
  box-shadow:0 2px 8px rgba(0,0,0,0.3);
}
.s8-rank-badge.rank-1{background:linear-gradient(135deg,#ffd700,#ffb300);}
.s8-rank-badge.rank-2{background:linear-gradient(135deg,#c0c0c0,#a0a0a0);}
.s8-rank-badge.rank-3{background:linear-gradient(135deg,#cd7f32,#b06020);}
.s8-rank-badge.rank-4,.s8-rank-badge.rank-5{background:rgba(77,184,255,0.35);}

/* Per-fuel comparison cards */
.s8-fuel-group{margin-bottom:12px;}
.s8-fuel-group-label{
  font-size:12px;font-weight:800;color:rgba(255,255,255,0.65);
  text-transform:uppercase;letter-spacing:.06em;padding:4px 4px 7px;
  border-bottom:1px solid rgba(100,180,255,0.10);margin-bottom:8px;
  display:flex;align-items:center;gap:6px;
}
.s8-fuel-dot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
}
.s8-fuel-dot[data-fuel="Gazole"]{background:#c8a84e;}
.s8-fuel-dot[data-fuel="E10"]{background:#7bc47b;}
.s8-fuel-dot[data-fuel="SP95"]{background:#2e7d32;}
.s8-fuel-dot[data-fuel="SP98"]{background:#1b5e20;}
.s8-fuel-dot[data-fuel="E85"]{background:#64b5f6;}
.s8-fuel-dot[data-fuel="GPLc"]{background:#607d8b;}

/* Compact card for comparison (smaller than v3-card) */
.s8-compact-card{
  background:linear-gradient(145deg,rgba(12,18,52,0.92),rgba(20,50,100,0.55));
  border:1px solid rgba(100,180,255,0.10);border-radius:12px;padding:10px 12px;
  margin-bottom:6px;color:#fff;position:relative;
  display:flex;align-items:center;gap:12px;
  transition:transform .1s, box-shadow .1s;-webkit-tap-highlight-color:transparent;
}
.s8-compact-card:active{transform:scale(0.98);box-shadow:0 2px 8px rgba(0,0,0,0.2);}
.s8-compact-rank{
  flex-shrink:0;width:24px;height:24px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:900;color:#fff;
}
.s8-compact-rank.r1{background:linear-gradient(135deg,#ffd700,#ffb300);}
.s8-compact-rank.r2{background:linear-gradient(135deg,#c0c0c0,#a0a0a0);}
.s8-compact-rank.r3{background:linear-gradient(135deg,#cd7f32,#b06020);}
.s8-compact-rank.r4,.s8-compact-rank.r5{background:rgba(77,184,255,0.3);}
.s8-compact-info{flex:1;min-width:0;}
.s8-compact-name{font-weight:700;font-size:.85em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.s8-compact-meta{font-size:.70em;color:rgba(180,210,255,0.62);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}
.s8-compact-price{
  flex-shrink:0;font-weight:900;font-size:1em;
  font-family:'SF Mono','Cascadia Code','Fira Code',monospace;
}
.s8-compact-price .s8-eur{font-size:.7em;opacity:.5;margin-left:1px;}
.s8-compact-dist{flex-shrink:0;font-size:.72em;color:rgba(180,210,255,0.58);font-weight:600;min-width:42px;text-align:right;}

/* ========== NO-GEO warning ========== */
.s8-nogeo{
  text-align:center;padding:32px 20px;color:rgba(255,255,255,0.55);
  font-size:.86em;line-height:1.6;
}
.s8-nogeo-icon{font-size:2.2em;margin-bottom:10px;display:block;}
.s8-nogeo-btn{
  margin-top:14px;padding:11px 26px;border-radius:999px;
  font-size:13px;font-weight:700;
  background:rgba(74,222,128,0.13);border:1.5px solid rgba(74,222,128,0.38);
  color:#80eaaa;cursor:pointer;
  transition:all .2s;-webkit-tap-highlight-color:transparent;
}
.s8-nogeo-btn:active{transform:scale(0.95);}

/* ========== ITINÉRAIRES ALTERNATIFS ========== */
.s8-route-pills{
  display:flex;gap:6px;padding:6px 4px 2px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
  justify-content:safe center;
}
.s8-route-pills::-webkit-scrollbar{display:none;}
.s8-route-pill{
  flex-shrink:0;padding:5px 12px;border-radius:999px;font-size:10.5px;font-weight:700;
  background:rgba(77,184,255,0.07);border:1px solid rgba(77,184,255,0.2);
  color:rgba(255,255,255,0.55);cursor:pointer;white-space:nowrap;
  transition:all .15s;-webkit-tap-highlight-color:transparent;
}
.s8-route-pill:active{transform:scale(0.93);}
.s8-route-pill.active{
  background:rgba(77,184,255,0.2);border-color:#4db8ff;
  color:#fff;box-shadow:0 0 8px rgba(77,184,255,0.2);
}

/* ========== TOAST OVERRIDE (avoid conflict) ========== */
.s8-toast{
  position:fixed;top:62px;left:50%;transform:translateX(-50%);z-index:9999;
  background:rgba(6,10,36,0.95);color:#a0d4ff;padding:9px 22px;
  border-radius:999px;font-size:12px;font-weight:700;
  box-shadow:0 4px 16px rgba(0,0,0,0.3);border:1px solid rgba(77,184,255,0.22);
  backdrop-filter:blur(8px);animation:s8FadeIn .25s ease;pointer-events:none;
  white-space:nowrap;
}

/* ========== SEPARATORS — blue gradient fade lines ========== */
.s8-sep{
  height:1px;margin:2px 16px 6px;
  background:linear-gradient(90deg,transparent 0%,rgba(77,184,255,0.28) 30%,rgba(77,184,255,0.28) 70%,transparent 100%);
}
.s8-sep-bottom{
  height:1px;margin:10px 16px 8px;
  background:linear-gradient(90deg,transparent 0%,rgba(77,184,255,0.16) 25%,rgba(77,184,255,0.16) 75%,transparent 100%);
}

}/* end @media max-width 820px */
