:root {
  --bg1: #dcfce7;
  --bg2: #bbf7d0;
  --bg3: #f0fdf4;
  --card: #f8fafc;
  --soft: #e2e8f0;
  --text: #0f172a;
  --muted: #475569;
  --border: #059669;
  --accent: #22c55e;
  --accent-dark: #14532d;
  --blue: #2563eb;
  --red: #dc2626;
}
* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; font-family: Inter, system-ui, Arial, sans-serif; font-size: 15px; color: var(--text); background: radial-gradient(circle at top, var(--bg1) 0%, var(--bg2) 26%, var(--bg3) 58%, #ecfdf5 100%); }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
.page { min-height: 100vh; }
.topbar {
  position: sticky; top: 0; z-index: 40; background: rgba(248,250,252,.92); backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(5,150,105,.35);
}
.topbar-inner {
  max-width: 1280px; margin: 0 auto; padding: 12px 22px; display: flex; align-items: center; justify-content: space-between; gap: 14px;
}
.brand { display: flex; align-items: center; gap: 12px; }
.brand-badge { width: 44px; height: 44px; border-radius: 16px; background: linear-gradient(135deg,#16a34a 0%,#22c55e 60%,#86efac 100%); display:flex; align-items:center; justify-content:center; font-weight:800; }
.brand-title { font-size: 18px; font-weight: 800; }
.brand-sub { font-size: 11px; color: var(--muted); }
.nav, .nav-right { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.btn {
  border: 1px solid rgba(5,150,105,.35); background: var(--card); color: var(--text); padding: 9px 14px; border-radius: 14px; font-weight: 600;
}
.btn-primary { background: var(--accent); border-color: transparent; color: #052e16; }
.btn-blue { background: var(--blue); border-color: transparent; color: #fff; }
.btn-red { background: var(--red); border-color: transparent; color: #fff; }
.btn-ghost { background: var(--soft); }
.btn-small { padding: 7px 10px; border-radius: 12px; font-size: 12px; }
.layout { max-width: 1280px; margin: 0 auto; padding: 18px; }
.hero {
  border: 1px solid rgba(5,150,105,.35); border-radius: 26px; padding: 20px; color: white;
  background: linear-gradient(135deg,#14532d 0%,#166534 38%,#22c55e 100%);
  display:flex; justify-content:space-between; gap:20px; align-items:flex-end; flex-wrap:wrap;
}
.hero h1 { margin: 0; font-size: 30px; line-height: 1.1; }
.hero p { margin: 6px 0 0; color: #dcfce7; font-size: 14px; }
.search-card, .panel, .card {
  background: var(--card); border: 1px solid rgba(5,150,105,.35); border-radius: 28px; box-shadow: 0 12px 24px rgba(0,0,0,.08);
}
.search-card { padding: 14px; margin-top: 18px; }
.search-row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.input-wrap { display:flex; align-items:center; gap:8px; background: #e2e8f0; border:1px solid rgba(5,150,105,.35); padding: 12px 14px; border-radius: 14px; flex:1; }
.input-wrap input, .input-wrap select, textarea { border:none; background:transparent; outline:none; width:100%; color:var(--text); }
.grid-home { display:grid; gap:18px; margin-top: 18px; grid-template-columns: 1.12fr .88fr; }
.map-box { padding: 14px; }
.fake-map { position:relative; min-height: 640px; border-radius:24px; overflow:hidden; border:1px solid rgba(5,150,105,.35); background: radial-gradient(circle at top,#bbf7d0 0%,#dcfce7 84%); }
.pin { position:absolute; display:flex; align-items:center; gap:8px; background: #fff; padding:6px 8px; border-radius:999px; box-shadow:0 8px 18px rgba(0,0,0,.12); }
.pin.partner { background: #eff6ff; border:1px solid #2563eb; }
.pin-dot { width:36px; height:36px; border-radius:14px; display:flex; align-items:center; justify-content:center; background: linear-gradient(135deg,#16a34a 0%,#22c55e 60%,#86efac 100%); }
.pin.partner .pin-dot { background: var(--blue); color: #fff; }
.pin-pill { background: var(--accent); color:#052e16; padding: 6px 10px; border-radius:999px; font-size:12px; font-weight:700; }
.pin.partner .pin-pill { background: var(--blue); color:#fff; }
.list-box { padding: 14px; }
.scroll { overflow:auto; }
.station-card { padding: 14px; border-radius: 20px; border:1px solid rgba(5,150,105,.35); background: var(--card); margin-bottom: 12px; }
.station-card.partner { border-color: #2563eb; background: linear-gradient(135deg,#eff6ff 0%,#dbeafe 58%,#bfdbfe 100%); }
.meta { font-size: 13px; color: #166534; }
.meta.partner { color: #1d4ed8; }
.title { font-size: 18px; font-weight: 700; margin-top: 4px; line-height: 1.2; }
.muted { color: var(--muted); }
.badge { display:inline-flex; align-items:center; padding: 5px 10px; border-radius:999px; font-size:12px; font-weight:700; }
.badge.partner { background: var(--blue); color: #fff; }
.price-pill { background: var(--accent); color:#052e16; padding: 10px 14px; border-radius: 14px; font-weight: 700; font-size: 14px; }
.price-pill.partner { background: var(--blue); color:#fff; }
.actions { display:flex; gap:8px; flex-wrap:wrap; margin-top: 12px; }
.two-col { display:grid; grid-template-columns: .95fr 1.05fr; gap:18px; }
.compare-left { padding: 18px; color:#fff; background: linear-gradient(135deg,#14532d 0%,#166534 48%,#22c55e 100%); border-radius:24px; border:1px solid rgba(5,150,105,.35); }
.compare-right { padding: 16px; }
.form-note { background: rgba(248,250,252,.92); color: var(--text); border:1px solid rgba(5,150,105,.35); border-radius: 14px; padding: 10px 12px; font-size: 13px; }
.compare-results .station-card { background: linear-gradient(135deg,#f0fdf4 0%,#dcfce7 55%,#bbf7d0 100%); }
.compare-results .station-card.partner { background: linear-gradient(135deg,#eff6ff 0%,#dbeafe 58%,#bfdbfe 100%); }
.metrics { display:grid; grid-template-columns: repeat(4,1fr); gap:10px; margin-top:14px; }
.metric { padding: 10px; border:1px solid rgba(5,150,105,.35); border-radius: 14px; background:#fff; font-size: 13px; }
.home-result-metrics { grid-template-columns: repeat(4,minmax(0,1fr)); }
.home-result-metric { min-width: 0; }
.home-result-metric strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.home-list-compare-head { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; align-items:flex-start; }
.home-list-compare-card .metrics { display:grid; }
.operator-card { border:1px solid rgba(5,150,105,.35); border-radius: 14px; padding: 12px; background:#fff; margin-top:10px; }
.operator-card.partner { border-color: #2563eb; background:#eff6ff; }
.page-grid { display:grid; gap:18px; grid-template-columns: .9fr 1.1fr; }
.section-title { font-size: 16px; font-weight: 700; margin: 0 0 10px; line-height: 1.2; }
.chips { display:flex; gap:8px; flex-wrap:wrap; }
.chip { padding:5px 9px; border-radius:999px; border:1px solid rgba(5,150,105,.35); background:#dcfce7; font-size:11px; font-weight:700; }
.account-grid, .stats-grid, .admin-grid, .grid-3, .grid-4 { display:grid; gap:12px; }
.account-grid { grid-template-columns: repeat(2,1fr); }
.stats-grid { grid-template-columns: repeat(3,1fr); }
.grid-3 { grid-template-columns: repeat(3,1fr); }
.grid-4 { grid-template-columns: repeat(4,1fr); }
.info-card { padding: 14px; border-radius: 16px; border:1px solid rgba(5,150,105,.35); background:#e2e8f0; font-size: 14px; }
.admin-shell { display:grid; grid-template-columns: 280px 1fr; min-height: calc(100vh - 74px); }
.sidebar { background:#f8fafc; border-right:1px solid rgba(5,150,105,.35); padding:20px; }
.sidebar .nav-btn { width:100%; justify-content:flex-start; display:flex; gap:10px; align-items:center; margin-bottom:8px; }
.main-admin { padding: 18px; display:grid; gap:18px; }
.stat-vertical { text-align:center; padding: 14px; border-radius:20px; border:1px solid rgba(5,150,105,.35); background:#f8fafc; }
.big-number { font-size: 28px; font-weight: 800; }
.modal {
  position: fixed; inset:0; background: rgba(2,6,23,.45); display:flex; align-items:center; justify-content:center; padding:16px; z-index:100;
}
.modal-card { width:min(820px,100%); background:#f8fafc; border:1px solid rgba(5,150,105,.35); border-radius:24px; padding:18px; }
.hidden { display:none !important; }
.tabs { display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
.small { font-size:11px; }
.pre { white-space: pre-wrap; word-break: break-word; background:#fff; border-radius:14px; border:1px solid rgba(5,150,105,.35); padding:12px; font-size: 13px; }
@media (max-width: 1100px) {
  .grid-home, .two-col, .page-grid, .admin-shell { grid-template-columns: 1fr; }
  .metrics, .grid-4, .stats-grid, .grid-3, .account-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .layout, .main-admin { padding: 14px; }
  .topbar-inner { padding: 10px 14px; }
  .hero h1 { font-size: 24px; }
  .metrics, .grid-4, .stats-grid, .grid-3, .account-grid { grid-template-columns: 1fr; }
}

.compare-fab {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 95;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  border: none;
  border-radius: 999px;
  padding: 14px 16px;
  background: linear-gradient(135deg,#14532d 0%,#166534 48%,#22c55e 100%);
  color: #fff;
  box-shadow: 0 14px 30px rgba(0,0,0,.18);
}
.compare-fab-icon { font-size: 18px; }
.compare-fab-text { font-weight: 700; }
.compare-fab-count {
  min-width: 26px;
  height: 26px;
  padding: 0 8px;
  border-radius: 999px;
  background: #fff;
  color: #14532d;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 800;
}
@media (max-width: 720px) {
  .compare-results .metrics,
  .itinerary-mobile-metrics {
    display: flex;
    flex-wrap: nowrap;
    gap: 10px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 4px;
    margin-right: -2px;
    scrollbar-width: thin;
  }
  .compare-results .metrics .metric,
  .itinerary-mobile-metrics .metric {
    flex: 0 0 min(42vw, 160px);
    min-width: 120px;
  }
  .compare-results .metrics .metric .small,
  .itinerary-mobile-metrics .metric .small {
    white-space: nowrap;
  }
  .home-result-metrics {
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 8px;
  }
  .home-result-metric {
    padding: 10px 8px;
    font-size: 12px;
  }
  .home-result-metric .small {
    font-size: 10px;
  }
  .home-list-compare-card .metrics { display: grid !important; }
  .home-list-compare-head { display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; align-items:flex-start; }
  .home-result-metrics { display:grid !important; }
  .itinerary-results-scroll {
    max-height: none !important;
    overflow: visible;
  }
  .itinerary-station-card {
    padding: 12px;
    margin-bottom: 10px;
  }
  .itinerary-station-card .title {
    font-size: 16px;
  }
  .itinerary-station-card .meta {
    font-size: 12px;
  }
  .itinerary-station-head {
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 10px;
  }
  .itinerary-station-main {
    flex: 1 1 auto;
    min-width: 0;
  }
  .itinerary-station-side {
    flex: 0 0 auto;
    margin-left: auto;
  }
  .itinerary-station-side .price-pill {
    padding: 8px 10px;
    font-size: 12px;
  }
  .itinerary-station-actions {
    flex-wrap: nowrap;
    align-items: stretch;
  }
  .itinerary-station-actions .btn {
    flex: 1 1 0;
    min-width: 0;
    justify-content: center;
    padding: 8px 10px;
    font-size: 12px;
  }
  .itinerary-operator-card {
    padding: 10px;
  }
  .itinerary-operator-card .chip {
    padding: 4px 8px;
    font-size: 10px;
  }

  .itinerary-results-panel {
    order: 1;
    display: grid;
    gap: 14px;
  }
  .itinerary-form-panel {
    order: 2;
    position: static !important;
    top: auto !important;
  }
  .itinerary-summary-card { order: 1; }
  .itinerary-route-list-card { order: 2; }
  .itinerary-map-card { order: 3; }
  .itinerary-stops-card { order: 4; }
}

@media (max-width: 720px) {
  .compare-fab {
    right: 16px;
    bottom: 16px;
    padding: 12px 14px;
  }
  .compare-fab-text { display: none; }
}

/* Restore OpenStreetMap / Leaflet home map styles */
.home-search-grid { display:grid; grid-template-columns: minmax(360px, 1fr) auto auto; gap:12px; align-items:flex-start; }
.home-location-shell, .home-merged-shell { min-width: 0; }
.home-map-card { overflow: hidden; }
.osm-map {
  min-height: 640px;
  height: 640px;
  border-radius: 24px;
  overflow: hidden;
  border: 1px solid rgba(5,150,105,.35);
  background: #d8f3dc;
  margin-top: 14px;
}
.home-list-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; margin-bottom:16px; flex-wrap:wrap; }
.station-card.is-highlighted { border-color: #f59e0b; box-shadow: 0 0 0 3px rgba(245,158,11,.22), 0 12px 24px rgba(0,0,0,.08); }
.leaflet-container { font: inherit; background: #d8f3dc; }
.leaflet-tile-pane, .leaflet-marker-pane, .leaflet-shadow-pane, .leaflet-overlay-pane, .leaflet-popup-pane { z-index: auto; }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { box-shadow: 0 10px 24px rgba(0,0,0,.12); }
.home-logo-marker-wrap, .home-logo-cluster-wrap { background: transparent; border: none; }
.home-logo-marker {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg,#16a34a 0%,#22c55e 60%,#86efac 100%);
  color: #052e16;
  border: 2px solid #ffffff;
  box-shadow: 0 10px 18px rgba(0,0,0,.18);
  font-weight: 800;
}
.home-logo-marker.is-partner {
  background: linear-gradient(135deg,#1d4ed8 0%,#3b82f6 60%,#93c5fd 100%);
  color: #fff;
}
.home-logo-marker.is-highlighted {
  transform: scale(1.08);
  box-shadow: 0 0 0 4px rgba(245,158,11,.25), 0 10px 18px rgba(0,0,0,.2);
}
.home-logo-marker-brand {
  font-size: 16px;
  line-height: 1;
}
.home-logo-cluster {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg,#14532d 0%,#166534 40%,#22c55e 100%);
  color: #fff;
  border: 2px solid #fff;
  box-shadow: 0 12px 20px rgba(0,0,0,.2);
  position: relative;
}
.home-logo-cluster-brand {
  font-size: 18px;
  font-weight: 800;
}
.home-logo-cluster-count {
  position: absolute;
  right: -6px;
  top: -6px;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  border-radius: 999px;
  background: #fff;
  color: #14532d;
  font-size: 12px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.map-popup-card { line-height: 1.5; }
.map-popup-link {
  display: inline-flex;
  align-items: center;
  margin-top: 8px;
  font-weight: 700;
  color: #166534;
}

@media (max-width: 900px) {
  .home-search-grid { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .osm-map { min-height: 420px; height: 420px; }
}


.search-card label,
.search-card .small,
.search-card .section-title,
.compare-main-block label,
.compare-main-block .small,
#batteryRangeLabel,
#targetRangeLabel {
  color: #0f172a;
}

#batteryRangeLabel,
#targetRangeLabel {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
}

/* Admin dashboard enhanced stats */
.sidebar .nav-btn-icon {
  width: 30px;
  height: 30px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg,#16a34a 0%,#22c55e 60%,#86efac 100%);
  color: #052e16;
  flex: 0 0 30px;
}
.stat-vertical {
  text-align: left;
  padding: 16px;
  border-radius: 22px;
  border: 1px solid rgba(5,150,105,.35);
  background: linear-gradient(180deg,#f0fdf4 0%,#ffffff 100%);
  min-height: 170px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.stat-vertical-icon {
  width: 46px;
  height: 46px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg,#16a34a 0%,#22c55e 60%,#86efac 100%);
  color: #052e16;
  font-size: 20px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.5);
}
.stat-vertical-label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #166534;
}
.stat-vertical-hint {
  margin-top: auto;
}
.trend-grid {
  display: grid;
  grid-template-columns: repeat(3,1fr);
  gap: 12px;
}
.trend-card {
  border: 1px solid rgba(5,150,105,.35);
  border-radius: 22px;
  background: linear-gradient(180deg,#f8fafc 0%,#ffffff 100%);
  padding: 16px;
  overflow: hidden;
}
.trend-head {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 14px;
}
.trend-head-icon {
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg,#16a34a 0%,#22c55e 60%,#86efac 100%);
  color: #052e16;
  font-size: 18px;
  flex: 0 0 42px;
}
.trend-title {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.25;
}
.trend-total {
  margin-left: auto;
  min-width: 44px;
  height: 44px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #dcfce7;
  color: #166534;
  font-weight: 800;
}
.trend-bars {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(24px, 1fr);
  gap: 8px;
  align-items: end;
  min-height: 220px;
  overflow-x: auto;
  padding-bottom: 4px;
}
.trend-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  min-width: 24px;
}
.trend-value {
  font-size: 11px;
  font-weight: 700;
  color: #166534;
}
.trend-bar-shell {
  width: 100%;
  height: 148px;
  display: flex;
  align-items: flex-end;
  border-radius: 999px;
  background: rgba(34,197,94,.08);
  border: 1px solid rgba(5,150,105,.15);
  overflow: hidden;
}
.trend-bar-fill {
  width: 100%;
  min-height: 6px;
  border-radius: 999px;
  background: linear-gradient(180deg,#22c55e 0%,#16a34a 100%);
}
.trend-label {
  font-size: 10px;
  color: var(--muted);
  text-align: center;
  white-space: nowrap;
}
@media (max-width: 1100px) {
  .trend-grid { grid-template-columns: 1fr; }
}

/* Reduced text sizing for front + admin without changing the existing layout logic */
html, body {
  font-size: 14px;
}

body,
input,
textarea,
select,
button {
  font-size: 14px;
}

.brand-title { font-size: 17px; }
.brand-sub { font-size: 10px; }
.btn { font-size: 13px; }
.btn-small,
.badge,
.chip,
.small,
.meta,
.price-pill,
.compare-fab-count,
.trend-value,
.trend-label,
.pre { font-size: 11px; }

.hero h1 { font-size: 26px; }
.hero p,
.metric,
.info-card,
.station-card,
.operator-card,
.form-note,
.modal-card,
.sidebar,
.main-admin,
.stat-vertical { font-size: 13px; }

.title { font-size: 16px; }
.section-title { font-size: 15px; }
.big-number { font-size: 24px; }
.trend-title { font-size: 14px; }

/* Front sections that currently inject larger inline text sizes */
.section-title[style*="font-size:22px"] { font-size: 18px !important; }
.title[style*="font-size:20px"] { font-size: 17px !important; }
.title[style*="font-size:22px"] { font-size: 18px !important; }
div[style*="font-size:18px"][style*="font-weight:700"] { font-size: 15px !important; }
span[style*="font-size:12px"] { font-size: 11px !important; }

/* Admin account rows and dashboard blocks stay compact */
.sidebar .nav-btn,
.account-compact-row,
.account-summary-row,
.account-detail-card,
.admin-account-line,
.admin-account-detail,
.kpi-card,
.trend-card,
.metric {
  font-size: 13px;
}

@media (max-width: 720px) {
  html, body,
  body,
  input,
  textarea,
  select,
  button {
    font-size: 13px;
  }

  .hero h1 { font-size: 22px; }
  .brand-title { font-size: 16px; }
  .section-title { font-size: 14px; }
  .title { font-size: 15px; }
  .big-number { font-size: 22px; }
}

/* Heading scale reduced globally without changing layout logic */
h1, .h1 {
  font-size: 28px;
  line-height: 1.15;
}

h2, .h2 {
  font-size: 22px;
  line-height: 1.2;
}

h3, .h3 {
  font-size: 18px;
  line-height: 1.25;
}

h4, .h4 {
  font-size: 16px;
  line-height: 1.3;
}

h5, .h5 {
  font-size: 14px;
  line-height: 1.35;
}

h6, .h6 {
  font-size: 13px;
  line-height: 1.35;
}

.hero h1 { font-size: 24px; }
.section-title[style*="font-size:22px"] { font-size: 16px !important; }
.title[style*="font-size:20px"] { font-size: 15px !important; }
.title[style*="font-size:22px"] { font-size: 16px !important; }

@media (max-width: 720px) {
  h1, .h1 { font-size: 24px; }
  h2, .h2 { font-size: 20px; }
  h3, .h3 { font-size: 17px; }
  h4, .h4 { font-size: 15px; }
  .hero h1 { font-size: 21px; }
}


/* Footer public */
.footer-shell {
  margin-top: 26px;
  padding: 0 0 28px;
}
.footer-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.footer-card {
  background: var(--card);
  border: 1px solid rgba(5,150,105,.35);
  border-radius: 24px;
  padding: 18px;
  box-shadow: 0 10px 24px rgba(0,0,0,.06);
}
.footer-links {
  display: grid;
  gap: 8px;
  margin-top: 12px;
}
.footer-link {
  justify-content: flex-start;
  width: 100%;
}
.footer-copy {
  font-size: 13px;
  line-height: 1.6;
}
@media (max-width: 900px) {
  .footer-grid { grid-template-columns: 1fr; }
}


/* --- Safe mobile-friendly refinements restored --- */
.topbar { overflow: visible; }
.topbar-inner { position: relative; }
.brand {
  border: none;
  background: transparent;
  padding: 0;
  cursor: pointer;
}
.brand-minimal {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  border-radius: 20px;
  background: linear-gradient(135deg,#166534 0%,#16a34a 58%,#4ade80 100%);
  color: #fff;
  box-shadow: 0 14px 26px rgba(22,101,52,.18);
}
.brand-minimal .brand-title { color: #fff; }
.brand-badge-soft {
  background: rgba(255,255,255,.18);
  color: #fff;
  box-shadow: none;
}
.site-nav-desktop,
.site-account-desktop {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
.site-nav-desktop {
  margin-left: auto;
  flex-wrap: wrap;
}
.site-account-desktop {
  margin-left: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.site-nav-link,
.site-account-btn {
  min-height: 42px;
}
.site-menu-wrap {
  display: none;
  position: relative;
  margin-left: auto;
}
.site-menu-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 118px;
}
.site-menu-icon {
  font-size: 16px;
  line-height: 1;
}
.site-menu-panel {
  position: absolute;
  right: 0;
  top: calc(100% + 10px);
  width: min(320px, calc(100vw - 40px));
  padding: 14px;
  border-radius: 24px;
  z-index: 150;
}
.site-menu-section { display: grid; gap: 8px; }
.site-menu-section + .site-menu-section {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid rgba(5,150,105,.16);
}
.site-menu-label {
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #166534;
}
.site-menu-link {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
}
.site-menu-panel a.btn { display: inline-flex; }
.compare-layout { align-items: start; }
.station-inline-tools {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.operator-card-top {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  align-items: flex-start;
}
.operator-card-side {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-end;
}
.operator-card-primary-actions {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.operator-website-btn { align-self: flex-end; }
.station-card-quick-actions,
.station-card-compare-actions,
.compare-station-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 12px;
}
.compare-station-actions .btn { min-width: 0; }
.compare-mobile-toggle,
.station-mobile-detail-toggle { display: none; }

@media (max-width: 1100px) {
  .topbar-inner.topbar-mobile-friendly { gap: 12px; }
  .site-nav-desktop { gap: 8px; }
  .site-nav-link,
  .site-account-btn {
    padding-left: 12px;
    padding-right: 12px;
  }
}

@media (max-width: 860px) {
  .topbar-inner,
  .topbar-inner.topbar-mobile-friendly { padding: 10px 14px; }
  .brand-title { font-size: 18px; }
  .site-nav-desktop,
  .site-account-desktop { display: none; }
  .site-menu-wrap {
    display: block;
    margin-left: auto;
    position: static;
  }
  .site-menu-panel {
    left: 14px;
    right: 14px;
    width: auto;
    top: calc(100% + 8px);
  }
  .brand-minimal { padding: 9px 14px; }
}

@media (max-width: 720px) {
  .layout,
  .main-admin { padding: 12px; }
  .hero,
  .search-card,
  .panel,
  .card,
  .compare-left { border-radius: 22px; }
  .compare-layout {
    display: flex;
    flex-direction: column;
    gap: 14px;
  }
  .compare-layout .compare-right {
    order: 1;
    width: 100%;
  }
  .compare-layout .compare-left {
    order: 2;
    width: 100%;
  }
  .compare-results .scroll { max-height: none !important; }
  .actions .btn,
  .compare-center-actions .btn,
  .compare-form-actions .btn,
  .search-row .btn,
  .home-search-grid > .btn { width: 100%; justify-content: center; }
  .search-row,
  .actions,
  .home-list-head,
  .tabs { gap: 10px; }
  .input-wrap { padding: 11px 12px; }
  .compare-page-title,
  .hero h1 { font-size: 22px; line-height: 1.15; }
  .home-search-grid,
  .contact-form-grid,
  .grid-home,
  .page-grid,
  .account-grid,
  .stats-grid,
  .grid-3,
  .grid-4 { grid-template-columns: 1fr !important; }
  .home-search-grid > *,
  .home-list-head > *,
  .search-row > * { width: 100%; }
  .topbar-inner.topbar-mobile-friendly { gap: 10px; }
  .site-menu-toggle {
    min-width: 0;
    padding-left: 12px;
    padding-right: 12px;
  }
  .compare-fab {
    right: 14px;
    bottom: 14px;
    max-width: calc(100vw - 28px);
    padding: 12px 14px;
  }
  .compare-fab-text { display: inline !important; }
  .compare-fab-count {
    min-width: 24px;
    height: 24px;
  }
  .compare-mobile-toggle,
  .station-mobile-detail-toggle {
    display: inline-flex;
    width: 100%;
    justify-content: center;
  }
  .compare-results .station-card .station-card-summary { gap: 12px; }
  .compare-results .station-card .station-card-summary > div:first-child,
  .compare-results .station-card .station-card-summary > div:last-child {
    width: 100%;
  }
  .compare-results .station-card .price-pill {
    width: auto;
    text-align: center;
  }
  .station-list-summary > div:first-child {
    flex: 1 1 55%;
    min-width: 0;
  }
  .station-inline-tools {
    flex: 0 0 auto;
    margin-left: auto;
    max-width: 44%;
  }
  .station-inline-tools .price-pill,
  .station-inline-tools .station-inline-report {
    min-height: 34px;
  }
  .station-inline-tools .price-pill {
    padding: 8px 10px;
    font-size: 12px;
  }
  .station-inline-report {
    padding-left: 10px;
    padding-right: 10px;
  }
  .station-card-quick-actions,
  .compare-station-actions {
    flex-wrap: nowrap;
    align-items: stretch;
  }
  .station-card-quick-actions .btn,
  .compare-station-actions .btn {
    flex: 1 1 0;
    width: auto;
    justify-content: center;
    min-width: 0;
    padding: 8px 10px;
    font-size: 12px;
  }
  .station-card-compare-actions .btn {
    padding: 10px 12px;
    font-size: 13px;
  }
  .operator-card-top {
    flex-wrap: nowrap;
    align-items: flex-start;
  }
  .operator-card-top > div:first-child {
    flex: 1 1 auto;
    min-width: 0;
  }
  .operator-card-side {
    flex: 0 0 auto;
    margin-left: auto;
    align-items: flex-end;
  }
  .operator-card-primary-actions {
    flex-wrap: nowrap;
    justify-content: flex-end;
  }
  .operator-card-primary-actions .price-pill {
    padding: 8px 10px;
    font-size: 12px;
  }
  .operator-card-primary-actions .btn {
    padding: 8px 10px;
    font-size: 12px;
  }
  .operator-website-btn {
    width: 100%;
    justify-content: center;
  }
}


.password-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
}
.password-input-wrap {
  width: 100%;
}
.password-toggle {
  min-width: 92px;
  white-space: nowrap;
}
.payment-methods-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
.payment-option {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
}
.payment-option input {
  margin: 0;
}
.contact-page-shell {
  max-width: 760px;
  margin: 0 auto;
}
.contact-page-card {
  padding: 24px;
  border-radius: 26px;
  box-shadow: 0 16px 36px rgba(5, 24, 17, 0.08);
}
.contact-page-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.contact-page-badge {
  padding: 10px 14px;
  border-radius: 999px;
  background: rgba(22, 163, 74, 0.12);
  border: 1px solid rgba(22, 163, 74, 0.22);
  color: #166534;
  font-size: 12px;
  font-weight: 700;
}
.contact-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
.contact-form-full {
  grid-column: 1 / -1;
}
.footer-shell {
  margin-top: 34px;
  padding: 0 0 34px;
}
.footer-pretty {
  display: grid;
  gap: 18px;
}
.footer-brand-card {
  background: linear-gradient(135deg, rgba(22, 101, 52, 0.96), rgba(34, 197, 94, 0.78));
  border-radius: 28px;
  padding: 24px;
  color: #fff;
  box-shadow: 0 20px 36px rgba(5, 24, 17, 0.16);
}
.footer-brand-row {
  display: flex;
  gap: 16px;
  align-items: flex-start;
}
.footer-brand-badge {
  width: 52px;
  height: 52px;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 20px;
  background: rgba(255,255,255,0.92);
  color: #166534;
  flex: 0 0 auto;
}
.footer-brand-title,
.footer-section-title {
  margin-bottom: 10px;
}
.footer-cta-row {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.footer-grid {
  gap: 14px;
}
.footer-card {
  border-radius: 22px;
  padding: 18px;
}
.footer-copy {
  max-width: 760px;
}
@media (max-width: 900px) {
  .payment-methods-grid,
  .contact-form-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 720px) {
  .password-field {
    grid-template-columns: 1fr;
  }
  .password-toggle {
    width: 100%;
  }
  .contact-page-card,
  .footer-brand-card {
    padding: 18px;
  }
  .footer-brand-row {
    align-items: center;
  }
}

.footer-stations-card {
  min-width: 0;
}
.footer-station-summary {
  margin-top: 10px;
  font-size: 13px;
  color: var(--muted);
}
.footer-station-list {
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.footer-station-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 12px;
  border: 1px solid rgba(59, 130, 246, 0.25);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.55);
}
.footer-station-meta {
  min-width: 0;
}
.footer-station-name {
  font-weight: 800;
  line-height: 1.35;
}
.footer-station-address {
  margin-top: 4px;
  font-size: 13px;
  color: var(--muted);
  line-height: 1.45;
}
.footer-station-open {
  white-space: nowrap;
}
.footer-station-pager {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 14px;
  flex-wrap: wrap;
}
@media (max-width: 720px) {
  .footer-station-item {
    grid-template-columns: 1fr;
  }
  .footer-station-open {
    width: 100%;
  }
}

/* --- ChargeCheck home premium visual refresh (cumulative) --- */
body {
  background:
    radial-gradient(circle at 14% 18%, rgba(34,197,94,.22) 0 17%, transparent 33%),
    radial-gradient(circle at 88% 16%, rgba(132,204,22,.30) 0 13%, transparent 34%),
    linear-gradient(135deg,#f7fff9 0%,#e6faed 34%,#d7f7df 68%,#f6fff8 100%);
}
.topbar { background: rgba(255,255,255,.88); box-shadow: 0 14px 38px rgba(20,83,45,.10); }
.topbar-inner { max-width: 1460px; padding: 18px 26px; }
.site-nav-link,
.site-account-btn {
  border: 0 !important;
  color: #fff !important;
  background: linear-gradient(135deg,#0b7a36 0%,#16a34a 58%,#4ade80 100%) !important;
  border-radius: 18px !important;
  box-shadow: 0 12px 22px rgba(21,128,61,.22), inset 0 1px 0 rgba(255,255,255,.22);
  padding: 12px 18px !important;
  transform: translateY(0);
  transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}
.site-nav-link:hover,
.site-account-btn:hover { transform: translateY(-2px); filter: saturate(1.15); box-shadow: 0 18px 28px rgba(21,128,61,.28); }
.brand-minimal { background: transparent; color: #047857; box-shadow: none; padding-left: 0; }
.brand-minimal .brand-title { color:#047857; font-size: 24px; }
.brand-badge-soft { background: linear-gradient(135deg,#047857,#22c55e); color:#fff; box-shadow: 0 12px 24px rgba(4,120,87,.24); }
.home-premium-layout { max-width: 1480px; padding: 22px 24px 30px; }
.home-premium-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 22px;
  border-radius: 24px;
  border: 1px solid rgba(5,150,105,.22);
  background: linear-gradient(115deg,rgba(255,255,255,.96) 0%,rgba(240,253,244,.94) 48%,rgba(220,252,231,.90) 100%);
  box-shadow: 0 18px 40px rgba(20,83,45,.12);
}
.home-premium-titleline { display:flex; align-items:center; gap:18px; min-width:0; flex-wrap:wrap; }
.home-premium-titleline h1 {
  margin: 0;
  font-size: clamp(21px, 1.65vw, 28px);
  line-height: 1.08;
  letter-spacing: -.04em;
  white-space: nowrap;
  color: #0f172a;
}
.home-premium-titleline h1::first-letter { color:#0f172a; }
.home-saving-pill {
  display:inline-flex; align-items:center; gap:8px;
  color:#047857; font-weight:800; white-space:nowrap;
  padding: 9px 12px; border-radius:999px;
  background: rgba(187,247,208,.55); border:1px solid rgba(34,197,94,.22);
}
.home-premium-tabs { margin:0; gap:12px; flex-wrap:nowrap; }
.home-premium-tabs .btn,
.home-premium-hero .btn {
  border-radius: 999px;
  padding: 14px 20px;
  background: rgba(255,255,255,.90);
  border:1px solid rgba(5,150,105,.18);
  box-shadow: 0 12px 22px rgba(20,83,45,.10);
  color:#0f172a;
}
.home-premium-tabs .btn-primary,
.home-premium-hero .btn-primary {
  color:#fff;
  border:0;
  background: linear-gradient(135deg,#047857 0%,#16a34a 62%,#65d928 100%);
  box-shadow: 0 16px 30px rgba(22,163,74,.28);
}
.home-premium-grid { gap:18px; align-items:stretch; margin-top: 18px; }
.home-premium-map-card,
.home-premium-list-box {
  margin-top:0;
  padding: 10px;
  border-radius: 28px;
  background: rgba(255,255,255,.84);
  border:1px solid rgba(5,150,105,.20);
  box-shadow: 0 22px 48px rgba(20,83,45,.14);
}
.home-premium-map-card { position:relative; min-width:0; }
.home-premium-map-card .osm-map {
  height: 790px;
  min-height: 790px;
  margin-top:0;
  border-radius: 24px;
  border: 0;
  background:#c9efd3;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.70);
  filter: saturate(1.22) contrast(1.04);
}
.home-map-search-bar {
  position:absolute;
  z-index:20;
  left:24px;
  top:24px;
  display:flex;
  gap:10px;
  width:min(570px, calc(100% - 48px));
  padding:0;
}
.home-map-search-bar .input-wrap {
  min-height:58px;
  border-radius: 18px;
  background: rgba(255,255,255,.96);
  border: 1px solid rgba(5,150,105,.16);
  box-shadow: 0 18px 34px rgba(15,23,42,.16);
}
.home-map-search-button {
  width:58px;
  min-width:58px;
  min-height:58px;
  border-radius:18px !important;
  color:#fff !important;
  font-size:24px;
}
.home-map-clear-btn { min-height:58px; border-radius:18px !important; background:rgba(255,255,255,.88); }
.home-map-benefits {
  position:absolute;
  left:26px;
  right:26px;
  bottom:26px;
  z-index:18;
  display:grid;
  grid-template-columns: repeat(3, minmax(0,1fr));
  gap:0;
  overflow:hidden;
  border-radius: 24px;
  background: linear-gradient(135deg,rgba(255,255,255,.93),rgba(236,253,245,.96));
  border:1px solid rgba(5,150,105,.20);
  box-shadow: 0 20px 44px rgba(20,83,45,.20);
  backdrop-filter: blur(12px);
}
.home-map-benefit { display:grid; grid-template-columns:54px 1fr; gap:10px; align-items:center; padding:18px 20px; border-right:1px solid rgba(5,150,105,.18); }
.home-map-benefit:last-child { border-right:0; }
.home-map-benefit-icon { grid-row:1 / span 2; width:48px; height:48px; display:flex; align-items:center; justify-content:center; border-radius:18px; background:linear-gradient(135deg,#dcfce7,#86efac); box-shadow: 0 10px 18px rgba(21,128,61,.18); font-size:25px; }
.home-map-benefit strong { font-size:16px; line-height:1.15; }
.home-map-benefit small { color:#475569; line-height:1.25; }
.home-premium-list-box {
  padding:20px;
  background: linear-gradient(150deg,rgba(236,253,245,.98) 0%,rgba(220,252,231,.92) 48%,rgba(187,247,208,.76) 100%);
}
.home-premium-list-box .home-list-head .section-title { font-size:22px; letter-spacing:-.03em; }
.home-premium-list-box .home-list-head .section-title::after { content:' à proximité'; }
.home-premium-list-box .scroll { padding: 2px 2px 0; }
.home-premium-list-box .station-card {
  margin-bottom:16px;
  padding:22px;
  border-radius:22px;
  border:1px solid rgba(22,163,74,.24);
  background: linear-gradient(135deg,rgba(255,255,255,.78) 0%,rgba(240,253,244,.90) 52%,rgba(209,250,229,.76) 100%);
  box-shadow: 0 14px 28px rgba(20,83,45,.08), inset 0 1px 0 rgba(255,255,255,.75);
}
.home-premium-list-box .station-card:hover { border-color:rgba(5,150,105,.48); box-shadow:0 18px 34px rgba(20,83,45,.13); }
.home-premium-list-box .title { font-size:18px; letter-spacing:-.02em; }
.home-premium-list-box .metric {
  background: rgba(255,255,255,.50);
  border-color: rgba(22,163,74,.18);
  border-radius:0;
  border-width:0 0 0 1px;
}
.home-premium-list-box .price-pill {
  background: rgba(187,247,208,.78);
  color:#047857;
  border-radius:999px;
}
.home-premium-list-box .actions .btn,
.home-premium-list-box .station-card .btn[data-open-station] {
  background: linear-gradient(135deg,#047857,#16a34a) !important;
  color:#fff !important;
  border:0 !important;
  border-radius:14px;
  box-shadow: 0 12px 20px rgba(21,128,61,.20);
}
.home-premium-list-box > .scroll + div,
.home-premium-list-box .btn[onclick*="SetHomeListPage"] { border-radius:999px; }
.home-logo-marker,
.home-logo-cluster {
  background: linear-gradient(135deg,#047857 0%,#16a34a 60%,#43d927 100%);
  color:#fff;
  border: 4px solid #fff;
  box-shadow: 0 12px 20px rgba(5,150,105,.32), 0 0 0 5px rgba(34,197,94,.16);
}
.home-logo-marker-brand { font-size:18px; color:#fff; }
.home-logo-cluster-count { display:none; }
.home-logo-cluster-brand { font-size:20px; color:#fff; }
@media (max-width: 1180px) {
  .home-premium-grid { grid-template-columns:1fr !important; }
  .home-premium-map-card .osm-map { height: 650px; min-height:650px; }
  .home-premium-titleline h1 { white-space: normal; }
  .home-premium-tabs { flex-wrap:wrap; }
}
@media (max-width: 720px) {
  .home-premium-layout { padding:12px; }
  .home-premium-hero { align-items:flex-start; flex-direction:column; }
  .home-premium-tabs { width:100%; }
  .home-premium-tabs .btn { flex:1 1 100%; }
  .home-map-benefits { position:relative; left:auto; right:auto; bottom:auto; margin:10px 0 0; grid-template-columns:1fr; }
  .home-map-benefit { border-right:0; border-bottom:1px solid rgba(5,150,105,.14); }
  .home-premium-map-card .osm-map { height: 560px; min-height:560px; }
  .home-map-search-bar { left:14px; top:14px; width:calc(100% - 28px); }
}

/* === ChargeCheck home premium corrective patch === */
.home-premium-layout{max-width:1500px;padding:18px 24px 30px;background:radial-gradient(circle at 15% 20%,rgba(187,247,208,.52),transparent 28%),radial-gradient(circle at 80% 18%,rgba(132,204,22,.20),transparent 30%)}
.home-premium-hero{padding:16px 20px;border-radius:24px;background:linear-gradient(120deg,rgba(255,255,255,.96),rgba(236,253,245,.95),rgba(220,252,231,.9));box-shadow:0 18px 44px rgba(20,83,45,.14);border:1px solid rgba(5,150,105,.22)}
.home-premium-titleline{flex:1 1 auto;min-width:420px;gap:18px;flex-wrap:nowrap}
.home-premium-titleline h1{font-size:clamp(19px,1.45vw,24px);white-space:nowrap;line-height:1.05}
.home-premium-tabs .btn{display:inline-flex;align-items:center;gap:10px;min-height:54px;padding:0 24px;border-radius:999px;font-weight:900;background:linear-gradient(180deg,#fff,rgba(240,253,244,.96));box-shadow:0 14px 28px rgba(20,83,45,.12);transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}
.home-premium-tabs .btn:hover{transform:translateY(-3px) scale(1.015);box-shadow:0 20px 34px rgba(20,83,45,.18)}
.home-premium-tabs .btn-primary{background:linear-gradient(135deg,#047857 0%,#16a34a 58%,#84cc16 100%) !important;color:#fff !important;border:0 !important;box-shadow:0 18px 34px rgba(22,163,74,.34) !important}
.home-premium-grid{grid-template-columns:1.2fr 1fr;gap:18px;align-items:stretch}
.home-premium-map-card{overflow:hidden;padding:10px;border-radius:30px;background:linear-gradient(135deg,rgba(220,252,231,.75),rgba(255,255,255,.92));border:1px solid rgba(5,150,105,.25);box-shadow:0 26px 56px rgba(20,83,45,.16)}
.home-premium-map-card .osm-map{height:790px;min-height:790px;border-radius:24px;filter:saturate(1.28) contrast(1.05);background:#c9efd3;margin:0}
.home-premium-map-card .leaflet-top.leaflet-left{top:96px !important;left:16px !important;z-index:40 !important}
.home-map-search-bar{left:22px;top:22px;right:auto;width:min(560px,calc(100% - 44px));z-index:60;align-items:center}
.home-map-search-bar .input-wrap{height:58px;min-height:58px;border-radius:20px;background:rgba(255,255,255,.97);box-shadow:0 18px 36px rgba(15,23,42,.18);border:1px solid rgba(5,150,105,.20)}
.home-map-search-button{width:58px;min-width:58px;height:58px;min-height:58px;border-radius:18px !important;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#047857,#16a34a,#4ade80) !important;box-shadow:0 16px 30px rgba(22,163,74,.32) !important;font-size:0 !important}
.home-map-search-button::before{content:'🔎';font-size:22px;line-height:1}
.home-map-geolocate-btn{height:58px;min-height:58px;border-radius:18px !important;background:rgba(255,255,255,.96) !important;border:1px solid rgba(5,150,105,.24) !important;color:#065f46 !important;font-weight:900;box-shadow:0 12px 24px rgba(20,83,45,.14);white-space:nowrap}
.home-map-benefits{bottom:18px;left:18px;right:18px;border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(236,253,245,.95),rgba(187,247,208,.84));border:1px solid rgba(5,150,105,.22);box-shadow:0 22px 48px rgba(20,83,45,.20)}
.home-premium-list-box{background:linear-gradient(145deg,rgba(209,250,229,.95),rgba(187,247,208,.78),rgba(134,239,172,.52));border:1px solid rgba(5,150,105,.24);box-shadow:0 24px 52px rgba(20,83,45,.15);padding:20px;border-radius:30px}
.home-list-filter{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.home-list-filter .btn{border-radius:14px;background:rgba(255,255,255,.76);border-color:rgba(5,150,105,.20);font-weight:800}
.home-premium-list-box .station-card{background:linear-gradient(135deg,rgba(240,253,244,.90),rgba(220,252,231,.82),rgba(187,247,208,.68));border:1px solid rgba(22,163,74,.34);box-shadow:0 16px 34px rgba(20,83,45,.12),inset 0 1px 0 rgba(255,255,255,.78)}
.home-station-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:14px;padding-top:12px;border-top:1px solid rgba(5,150,105,.16)}
.home-station-metrics div{padding:0 12px;border-left:1px solid rgba(5,150,105,.16)}.home-station-metrics div:first-child{border-left:0;padding-left:0}.home-station-metrics strong{display:block;color:#0f172a;font-size:14px}.home-station-metrics span{display:block;color:#64748b;font-size:11px;margin-top:4px}
.home-all-stations-btn{width:100%;min-height:70px;margin-top:10px;border-radius:20px !important;font-size:18px;background:linear-gradient(135deg,#047857,#16a34a 58%,#a3e635) !important;box-shadow:0 18px 38px rgba(22,163,74,.28) !important}
.home-logo-marker-brand{font-size:22px;font-weight:950;color:#fff;letter-spacing:-.04em}.home-logo-cluster-brand{display:none !important}.home-logo-cluster-count{display:inline-flex !important;align-items:center;justify-content:center;font-size:18px;font-weight:950;color:#fff;line-height:1}.home-logo-cluster{min-width:54px;min-height:54px;display:flex;align-items:center;justify-content:center;border-radius:999px}
@media (max-width:1180px){.home-premium-grid{grid-template-columns:1fr !important}.home-premium-titleline{min-width:0;flex-wrap:wrap}.home-premium-titleline h1{white-space:normal}.home-premium-map-card .osm-map{height:650px;min-height:650px}}
@media (max-width:760px){.home-map-search-bar{left:12px;top:12px;width:calc(100% - 24px);display:grid;grid-template-columns:1fr 58px}.home-map-geolocate-btn{grid-column:1 / -1}.home-premium-map-card .leaflet-top.leaflet-left{top:150px !important}.home-map-benefits{position:relative;left:auto;right:auto;bottom:auto;margin:10px 0 0;grid-template-columns:1fr}.home-station-metrics{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}}

/* Corrections home premium - clusters lisibles, reset recherche, liste verte */
.home-premium-grid{grid-template-columns:1.2fr 1fr !important;}
.home-map-search-bar{width:min(760px,calc(100% - 44px)) !important;gap:10px !important;align-items:center !important;}
.home-map-search-bar .home-location-shell{flex:1 1 320px !important;min-width:260px !important;}
.home-map-search-button{flex:0 0 58px !important;}
.home-map-geolocate-btn,.home-map-clear-btn{flex:0 0 auto !important;height:58px;min-height:58px;border-radius:18px !important;white-space:nowrap;font-weight:900;}
.home-map-clear-btn{background:linear-gradient(135deg,#ecfdf5,#dcfce7) !important;border:1px solid rgba(5,150,105,.26) !important;color:#047857 !important;box-shadow:0 12px 22px rgba(20,83,45,.10) !important;}
.home-premium-map-card .leaflet-top.leaflet-left{top:112px !important;left:16px !important;z-index:35 !important;}
.home-map-benefits,.home-map-origin-note{display:none !important;}
.home-logo-cluster{width:58px !important;height:58px !important;min-width:58px !important;min-height:58px !important;background:linear-gradient(135deg,#047857 0%,#16a34a 58%,#22c55e 100%) !important;border:5px solid #fff !important;box-shadow:0 18px 34px rgba(5,150,105,.34),0 0 0 5px rgba(34,197,94,.16) !important;}
.home-logo-cluster::before,.home-logo-cluster::after{display:none !important;content:none !important;}
.home-logo-cluster-brand{display:none !important;}
.home-logo-cluster-count{position:static !important;display:flex !important;align-items:center !important;justify-content:center !important;min-width:auto !important;height:auto !important;padding:0 !important;background:transparent !important;color:#fff !important;font-size:20px !important;font-weight:950 !important;line-height:1 !important;text-shadow:0 2px 6px rgba(0,0,0,.22) !important;}
.home-logo-marker{width:44px !important;height:44px !important;border:5px solid #fff !important;box-shadow:0 16px 28px rgba(5,150,105,.32),0 0 0 5px rgba(34,197,94,.14) !important;}
.home-logo-marker-brand{font-size:22px !important;font-weight:950 !important;color:#fff !important;}
.home-premium-list-box{background:linear-gradient(145deg,#bbf7d0 0%,#86efac 44%,#4ade80 100%) !important;border-color:rgba(5,150,105,.36) !important;}
.home-premium-list-box .station-card{background:linear-gradient(135deg,rgba(240,253,244,.96),rgba(220,252,231,.90),rgba(187,247,208,.82)) !important;border:1px solid rgba(5,150,105,.38) !important;}
@media (max-width:1180px){.home-premium-grid{grid-template-columns:1fr !important}.home-map-search-bar{width:calc(100% - 44px) !important;}.home-premium-map-card .leaflet-top.leaflet-left{top:176px !important}}
@media (max-width:760px){.home-map-search-bar{grid-template-columns:1fr 58px !important;width:calc(100% - 24px) !important}.home-map-geolocate-btn,.home-map-clear-btn{grid-column:1 / -1}.home-premium-map-card .leaflet-top.leaflet-left{top:220px !important}}

/* === ChargeCheck UX patch: recherche compacte automatique + pictos menu === */
.home-premium-grid{grid-template-columns:1.2fr 1fr !important;}
.home-compact-search-card{position:relative;overflow:hidden;}
.home-compact-search{position:absolute;left:22px;top:22px;z-index:140;width:178px;max-width:calc(100% - 44px);transition:width .22s ease;}
.home-compact-search.is-open{width:min(760px,calc(100% - 44px));}
.home-compact-search-trigger{width:100%;height:62px;border:1px solid rgba(5,150,105,.25);border-radius:24px;background:rgba(255,255,255,.96);box-shadow:0 18px 36px rgba(15,23,42,.18);font-weight:950;font-size:18px;color:#0f172a;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;}
.home-compact-search.is-open .home-compact-search-trigger{display:none;}
.home-compact-search-panel{display:none;grid-template-columns:minmax(260px,1fr) auto auto;gap:10px;align-items:start;padding:8px;border-radius:26px;background:rgba(255,255,255,.96);box-shadow:0 22px 44px rgba(15,23,42,.20);border:1px solid rgba(5,150,105,.26);backdrop-filter:blur(12px);}
.home-compact-search.is-open .home-compact-search-panel{display:grid;}
.home-compact-search .input-wrap{height:58px;min-height:58px;border-radius:20px;background:#fff;border:1px solid rgba(5,150,105,.18);box-shadow:none;}
.home-compact-search .location-suggestions{position:absolute;top:calc(100% + 10px);left:0;right:0;z-index:200;display:flex;flex-direction:column;background:#fff;border:1px solid rgba(5,150,105,.30);border-radius:18px;box-shadow:0 16px 34px rgba(15,23,42,.18);overflow:hidden;}
.home-compact-search .location-suggestion-item{width:100%;border:0;border-bottom:1px solid rgba(5,150,105,.14);background:#fff;padding:12px 14px;text-align:left;display:flex;flex-direction:column;gap:4px;cursor:pointer;}
.home-compact-search .location-suggestion-item:hover{background:#ecfdf5;}
.home-compact-search .location-suggestion-item span{color:#475569;font-size:12px;}
.home-compact-search .home-map-geolocate-btn,.home-compact-search .home-map-clear-btn{height:58px;min-height:58px;border-radius:20px !important;white-space:nowrap;font-weight:950;}
.home-compact-search .home-map-geolocate-btn{background:linear-gradient(135deg,#ecfdf5,#bbf7d0) !important;color:#065f46 !important;border:1px solid rgba(5,150,105,.28) !important;}
.home-compact-search .home-map-clear-btn{background:#fff7ed !important;color:#9a3412 !important;border:1px solid rgba(251,146,60,.45) !important;}
.home-premium-map-card .leaflet-top.leaflet-left{top:104px !important;left:18px !important;z-index:45 !important;}
.home-premium-list-box{background:linear-gradient(145deg,#a7f3d0 0%,#86efac 45%,#4ade80 100%) !important;}
.home-premium-list-box .station-card{background:linear-gradient(135deg,rgba(236,253,245,.98),rgba(209,250,229,.94),rgba(187,247,208,.88)) !important;border-color:rgba(5,150,105,.42) !important;}
.site-nav-link,.site-account-btn{gap:9px !important;}
.nav-picto{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:rgba(255,255,255,.20);font-weight:950;line-height:1;}
@media (max-width:1180px){.home-premium-grid{grid-template-columns:1fr !important;}.home-compact-search{width:178px}.home-compact-search.is-open{width:calc(100% - 44px);}}
@media (max-width:760px){.home-compact-search{left:12px;top:12px;width:160px;max-width:calc(100% - 24px)}.home-compact-search.is-open{width:calc(100% - 24px)}.home-compact-search-panel{grid-template-columns:1fr}.home-premium-map-card .leaflet-top.leaflet-left{top:92px !important}}

/* === Corrections finales home : clusters lisibles + bouton suivant + recherche compacte === */
.home-logo-cluster-wrap{background:transparent !important;border:0 !important;}
.home-logo-cluster{
  width:62px !important;height:62px !important;min-width:62px !important;min-height:62px !important;
  display:flex !important;align-items:center !important;justify-content:center !important;
  border-radius:999px !important;background:linear-gradient(135deg,#064e3b 0%,#059669 48%,#22c55e 100%) !important;
  border:6px solid #fff !important;box-shadow:0 20px 38px rgba(4,120,87,.42),0 0 0 6px rgba(34,197,94,.18) !important;
}
.home-logo-cluster-count{
  display:flex !important;position:static !important;align-items:center !important;justify-content:center !important;
  width:100% !important;height:100% !important;padding:0 !important;margin:0 !important;background:transparent !important;
  color:#fff !important;font-size:24px !important;font-weight:1000 !important;line-height:1 !important;
  text-shadow:0 3px 7px rgba(0,0,0,.35) !important;letter-spacing:-.04em !important;
}
.home-logo-cluster-brand{display:none !important;}
.home-premium-list-box .station-inline-report,.home-premium-list-box [data-report]{display:none !important;}
.home-next-stations-btn{
  width:100%;min-height:70px;margin-top:10px;border-radius:20px !important;font-size:18px;font-weight:950 !important;
  background:linear-gradient(135deg,#047857 0%,#16a34a 58%,#a3e635 100%) !important;
  color:#052e16 !important;border:1px solid rgba(255,255,255,.38) !important;box-shadow:0 18px 38px rgba(22,163,74,.28) !important;
}
.home-next-stations-btn:hover{transform:translateY(-2px);filter:saturate(1.08);}
.home-compact-search-panel{grid-template-columns:minmax(280px,1fr) auto auto !important;}
.home-compact-search-trigger{background:linear-gradient(135deg,#ffffff 0%,#ecfdf5 100%) !important;color:#064e3b !important;}
.home-premium-list-box{background:linear-gradient(145deg,#86efac 0%,#4ade80 52%,#22c55e 100%) !important;}
.home-premium-list-box .station-card{background:linear-gradient(135deg,rgba(240,253,244,.98),rgba(220,252,231,.94),rgba(187,247,208,.90)) !important;}
.home-station-metrics strong{font-weight:950 !important;}
@media (max-width:760px){.home-compact-search-panel{grid-template-columns:1fr !important}.home-next-stations-btn{min-height:62px;font-size:16px}}

/* === ChargeCheck accueil : tailles des titres alignées sur les menus === */
.home-premium-hero h1,
.home-premium-titleline h1,
.home-premium-list-box .home-list-head .section-title,
.home-premium-list-box .section-title,
.home-premium-list-box .station-card .title,
.home-premium-list-box .title,
.home-map-card .section-title,
.home-search-card .section-title,
.grid-home .section-title {
  font-size: 13px !important;
  line-height: 1.25 !important;
}
.home-premium-titleline h1 {
  letter-spacing: 0 !important;
}
@media (max-width: 760px) {
  .home-premium-hero h1,
  .home-premium-titleline h1,
  .home-premium-list-box .home-list-head .section-title,
  .home-premium-list-box .section-title,
  .home-premium-list-box .station-card .title,
  .home-premium-list-box .title,
  .home-map-card .section-title,
  .home-search-card .section-title,
  .grid-home .section-title {
    font-size: 13px !important;
  }
}

/* === ChargeCheck accueil : tailles carte et recherche alignées sur les menus === */
.home-logo-cluster-count,
.home-compact-search-trigger,
.home-compact-search .home-map-geolocate-btn,
.home-compact-search .home-map-clear-btn,
.home-map-search-bar input,
.home-map-search-bar .input,
.home-map-search-bar .location-input,
.home-map-search-bar .home-map-geolocate-btn,
.home-map-search-bar .home-map-clear-btn,
.home-map-search-button {
  font-size: 13px !important;
  line-height: 1.25 !important;
}
.home-logo-cluster-count {
  letter-spacing: 0 !important;
  font-weight: 900 !important;
}
.home-compact-search-trigger {
  font-weight: 900 !important;
}
.home-compact-search-trigger .icon,
.home-compact-search-trigger svg {
  font-size: 13px !important;
  width: 18px !important;
  height: 18px !important;
}
.home-map-search-button::before {
  font-size: 13px !important;
}
@media (max-width: 760px) {
  .home-logo-cluster-count,
  .home-compact-search-trigger,
  .home-compact-search .home-map-geolocate-btn,
  .home-compact-search .home-map-clear-btn,
  .home-map-search-bar input,
  .home-map-search-bar .input,
  .home-map-search-bar .location-input,
  .home-map-search-bar .home-map-geolocate-btn,
  .home-map-search-bar .home-map-clear-btn,
  .home-map-search-button {
    font-size: 13px !important;
  }
}

/* === ChargeCheck detail : toutes les écritures alignées sur la taille des menus === */
.cc-detail-page,
.cc-detail-page *,
.cc-detail-shell,
.cc-detail-shell *,
.cc-detail-selected-card,
.cc-detail-selected-card *,
.cc-detail-secondary-grid,
.cc-detail-secondary-grid *,
.cc-detail-page .btn,
.cc-detail-page a,
.cc-detail-page button,
.cc-detail-page span,
.cc-detail-page div,
.cc-detail-page strong,
.cc-detail-page small,
.cc-detail-page h1,
.cc-detail-page h2,
.cc-detail-page h3,
.cc-detail-page h4,
.cc-detail-page h5,
.cc-detail-page h6 {
  font-size: 13px !important;
  line-height: 1.25 !important;
}

.cc-detail-page .cc-detail-selected-station-name,
.cc-detail-page .cc-detail-selected-station-address,
.cc-detail-page .cc-detail-selected-offer-name,
.cc-detail-page .cc-detail-price-value,
.cc-detail-page .cc-detail-price-label,
.cc-detail-page .cc-detail-connector-picker-title,
.cc-detail-page .section-title,
.cc-detail-page .info-card,
.cc-detail-page .chip,
.cc-detail-page .badge,
.cc-detail-page .small,
.cc-detail-page .muted,
.cc-detail-page .price-pill,
.cc-detail-page .cc-detail-mini-pill,
.cc-detail-page .cc-detail-connector-chip-name,
.cc-detail-page .cc-detail-connector-chip-power,
.cc-detail-page .cc-detail-selected-note,
.cc-detail-page .cc-detail-payment-chip,
.cc-detail-page .cc-detail-partner-badge {
  font-size: 13px !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
}

.cc-detail-page .cc-detail-selected-logo span {
  font-size: 13px !important;
  line-height: 1 !important;
}

@media (max-width: 640px) {
  .cc-detail-page,
  .cc-detail-page *,
  .cc-detail-shell,
  .cc-detail-shell * {
    font-size: 13px !important;
    line-height: 1.25 !important;
  }
}

/* === ChargeCheck mobile menu overlay fix ===
   Le menu mobile doit toujours passer au-dessus du bouton Rechercher/carte. */
@media (max-width: 860px) {
  .topbar,
  .topbar-inner,
  .topbar-inner.topbar-mobile-friendly,
  .site-menu-wrap,
  .site-menu-wrap.is-open {
    overflow: visible !important;
  }

  .topbar {
    position: relative !important;
    z-index: 10000 !important;
  }

  .site-menu-wrap.is-open {
    position: static !important;
    z-index: 10002 !important;
  }

  .site-menu-wrap.is-open .site-menu-panel,
  .site-menu-panel {
    position: absolute !important;
    z-index: 10003 !important;
  }

  .home-compact-search,
  .home-map-search-overlay,
  .home-map-search-tab,
  .home-map-search-button,
  .home-compact-search-trigger,
  .home-compact-search-panel {
    z-index: 120 !important;
  }

  .site-menu-wrap.is-open ~ .home-compact-search,
  .site-menu-wrap.is-open .home-compact-search {
    z-index: 1 !important;
  }
}
