@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@700;800;900&family=Inter:wght@400;500;600;700&display=swap');

/* ─── TOKENS ─── */
:root{
  --ink:#0d0d14;
  --ink2:#13131e;
  --ink3:#1c1c2c;
  --ink4:#252538;
  --lime:#b6f542;
  --lime2:#8ed42f;
  --limedim:rgba(182,245,66,.12);
  --limeborder:rgba(182,245,66,.28);
  --amber:#fbbf24;
  --amberdim:rgba(251,191,36,.12);
  --red:#f43f5e;
  --reddim:rgba(244,63,94,.12);
  --blue:#60a5fa;
  --bluedim:rgba(96,165,250,.12);
  --purple:#a78bfa;
  --purpledim:rgba(167,139,250,.12);
  --text:#eef2ff;
  --muted:#6b7a99;
  --muted2:#9aa5be;
  --r:20px;
  --shadow:0 8px 32px rgba(0,0,0,.45);
}

/* ─── RESET ─── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
html,body{background:var(--ink);color:var(--text);font-family:'Inter',sans-serif;font-size:15px;line-height:1.55;min-height:100vh;overflow-x:hidden;max-width:100%;}
body{padding:0;margin:0;}
a{color:var(--lime);text-decoration:none;}
a:hover{color:#fff;}
img{max-width:100%;}

/* ─── LAYOUT ─── */
.site-shell{display:flex;flex-direction:column;min-height:100vh;padding-bottom:calc(72px + env(safe-area-inset-bottom));max-width:100%;overflow-x:hidden;}

/* ─── TOPBAR ─── */
.topbar{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:env(safe-area-inset-top) max(18px, env(safe-area-inset-right)) 0 max(18px, env(safe-area-inset-left));height:calc(56px + env(safe-area-inset-top));
  background:rgba(13,13,20,.92);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(255,255,255,.07);
}
.brand a{
  font-family:'Nunito',sans-serif;
  font-size:20px;font-weight:900;letter-spacing:-.3px;color:#fff;
}
.brand .fuel{color:var(--lime);}
.topnav{display:none;}
.topnav-actions{display:flex;align-items:center;gap:8px;}
.avatar-btn{
  width:34px;height:34px;border-radius:50%;
  background:linear-gradient(135deg,var(--purple),#6d28d9);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:900;color:#fff;cursor:pointer;border:none;
}

/* ─── BOTTOM NAV (mobile) ─── */
.bottom-nav{
  position:fixed;bottom:0;left:0;right:0;z-index:200;
  height:calc(68px + env(safe-area-inset-bottom));
  padding-bottom:env(safe-area-inset-bottom);
  background:rgba(13,13,20,.97);
  backdrop-filter:blur(20px);
  border-top:1px solid rgba(255,255,255,.08);
  display:flex;align-items:stretch;
}
.bnav-item{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:3px;
  cursor:pointer;color:var(--muted);
  padding-bottom:4px;border:none;background:none;
  text-decoration:none;transition:color .15s;
  font-family:'Inter',sans-serif;
}
.bnav-item.active,
.bnav-item:hover{color:var(--lime);}
.bnav-ico{font-size:20px;line-height:1;}
.bnav-lbl{font-size:9px;font-weight:700;letter-spacing:.03em;}

/* ─── FLASH ─── */
.flash{
  display:flex;align-items:center;gap:10px;
  padding:12px 18px;font-size:13px;font-weight:600;
  border-bottom:1px solid transparent;
}
.flash-success{background:rgba(182,245,66,.08);border-color:var(--limeborder);color:#b6f542;}
.flash-error{background:rgba(244,63,94,.09);border-color:rgba(244,63,94,.25);color:#fca5a5;}
.flash::before{content:'';width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.flash-success::before{background:var(--lime);box-shadow:0 0 6px var(--lime);}
.flash-error::before{background:var(--red);}

/* ─── CONTAINER ─── */
.container{width:min(100%, 600px);max-width:600px;margin:0 auto;padding:16px max(14px, env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left));overflow-x:hidden;}

/* ─── CARDS ─── */
.card{
  background:var(--ink2);
  border:1px solid rgba(255,255,255,.07);
  border-radius:var(--r);
  padding:16px;
  position:relative;overflow:hidden;
}
.card+.card{margin-top:12px;}
.card-bordered-lime{border-color:var(--limeborder);}
.card-bordered-purple{border-color:rgba(167,139,250,.25);}

/* ─── HERO SECTION ─── */
.hero-block{
  background:linear-gradient(150deg,#14142a,#0e0e1c);
  border:1px solid rgba(182,245,66,.2);
  border-radius:var(--r);padding:16px;
  position:relative;overflow:hidden;
  margin-bottom:12px;
}
.hero-block::before{
  content:'';position:absolute;top:-50px;right:-50px;
  width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle,rgba(182,245,66,.13),transparent 65%);
  pointer-events:none;
}
.hero-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;}
.streak-badge{background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.28);border-radius:999px;padding:3px 11px;font-size:11px;font-weight:800;color:var(--amber);}
.level-badge{background:rgba(167,139,250,.14);border:1px solid rgba(167,139,250,.28);border-radius:999px;padding:3px 11px;font-size:11px;font-weight:800;color:var(--purple);}
.hero-saving{font-family:'Nunito',sans-serif;font-size:54px;font-weight:900;color:var(--lime);letter-spacing:-3px;line-height:1;}
.hero-saving sup{font-size:20px;vertical-align:super;letter-spacing:0;}
.hero-sub{font-size:11px;color:var(--muted2);margin-top:2px;}
.xp-row{display:flex;align-items:center;gap:8px;margin-top:10px;}
.xp-label{font-size:10px;font-weight:700;color:var(--muted);white-space:nowrap;}
.xp-track{flex:1;height:6px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden;}
.xp-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--lime2),var(--lime));}

/* ─── TRIP BUTTON ─── */
.trip-btn{
  width:100%;height:68px;border-radius:22px;
  display:flex;align-items:center;justify-content:space-between;
  padding:0 18px;cursor:pointer;
  position:relative;overflow:hidden;border:none;
  text-align:left;margin-bottom:10px;
  transition:transform .15s;
}
.trip-btn:active{transform:scale(.98);}
.trip-btn.tb-off{background:linear-gradient(135deg,var(--ink3),var(--ink2));border:2px dashed rgba(255,255,255,.14);}
.trip-btn.tb-on{background:linear-gradient(135deg,#1a2e0e,#0f1c08);border:2px solid rgba(182,245,66,.5);}
.trip-btn.tb-on::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 80% 50%,rgba(182,245,66,.1),transparent 60%);pointer-events:none;}
.tb-left{display:flex;flex-direction:column;gap:3px;}
.tb-label{font-family:'Nunito',sans-serif;font-size:18px;font-weight:900;}
.tb-off .tb-label{color:var(--muted2);}
.tb-on .tb-label{color:var(--lime);}
.tb-sub{font-size:11px;font-weight:600;}
.tb-off .tb-sub{color:var(--muted);}
.tb-on .tb-sub{color:rgba(182,245,66,.55);}
.tb-right{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.tb-pulse{width:9px;height:9px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 4px rgba(182,245,66,.2);animation:pulse 2s infinite;}
.toggle-sw{width:52px;height:30px;border-radius:999px;position:relative;transition:background .22s;flex-shrink:0;}
.tb-off .toggle-sw{background:rgba(255,255,255,.12);}
.tb-on .toggle-sw{background:var(--lime);}
.toggle-knob{position:absolute;top:3px;width:24px;height:24px;border-radius:50%;background:#fff;transition:left .22s cubic-bezier(.34,1.4,.64,1);}
.tb-off .toggle-knob{left:3px;}
.tb-on .toggle-knob{left:25px;}

/* ─── ALERT CARD ─── */
.alert-card{
  background:linear-gradient(135deg,#141e0c,#0c1608);
  border:1.5px solid rgba(182,245,66,.4);
  border-radius:var(--r);padding:13px 15px;
  display:flex;gap:11px;align-items:center;
  cursor:pointer;transition:transform .12s;margin-bottom:10px;
}
.alert-card:active{transform:scale(.98);}
.pulse-dot{
  width:42px;height:42px;border-radius:50%;
  background:var(--lime);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:19px;color:#052010;
  box-shadow:0 0 0 8px rgba(182,245,66,.13),0 0 0 16px rgba(182,245,66,.04);
  animation:pulse 2s infinite;
}
.alert-body{flex:1;}
.alert-title{font-family:'Nunito',sans-serif;font-size:14px;font-weight:900;color:#c8f060;}
.alert-sub{font-size:10px;color:rgba(200,240,96,.5);margin-top:2px;}
.alert-gain{font-family:'Nunito',sans-serif;font-size:22px;font-weight:900;color:var(--lime);}
.alert-glbl{font-size:9px;color:var(--muted);}

/* ─── MISSED ALERT ─── */
.missed-alert{
  background:rgba(107,122,153,.07);border:1px dashed rgba(107,122,153,.22);
  border-radius:16px;padding:11px 14px;
  display:flex;align-items:center;gap:10px;
  cursor:pointer;margin-bottom:10px;
}
.ma-ico{font-size:18px;opacity:.45;}
.ma-body{flex:1;}
.ma-title{font-size:12px;font-weight:700;color:var(--muted2);}
.ma-sub{font-size:10px;color:var(--muted);margin-top:1px;}
.ma-cta{font-size:11px;font-weight:800;color:var(--lime);}

/* ─── CALC CARD ─── */
.calc-card{margin-bottom:10px;}
.calc-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.calc-name{font-size:12px;font-weight:700;color:var(--muted2);}
.mm-row{display:flex;gap:6px;}
.mm{flex:1;background:rgba(255,255,255,.04);border-radius:10px;padding:8px 6px;text-align:center;}
.mm-val{font-family:'Nunito',sans-serif;font-size:14px;font-weight:900;}
.mm-lbl{font-size:9px;color:var(--muted);margin-top:1px;}
.mm-val.lime{color:var(--lime);}
.mm-val.amber{color:var(--amber);}
.calc-pills{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}
.cp{padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);font-size:10px;font-weight:600;color:var(--muted2);}
.calc-btns{display:flex;gap:7px;margin-top:10px;}

/* ─── STAT STRIP ─── */
.stat-strip{display:flex;gap:8px;margin-bottom:10px;}
.sc{flex:1;background:var(--ink2);border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:10px 11px;}
.sc-val{font-family:'Nunito',sans-serif;font-size:18px;font-weight:900;}
.sc-val.lime{color:var(--lime);}
.sc-val.blue{color:var(--blue);}
.sc-val.amber{color:var(--amber);}
.sc-lbl{font-size:9px;font-weight:600;color:var(--muted);margin-top:1px;}

/* ─── SECTION TITLE ─── */
.sec-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.sec-title{font-family:'Nunito',sans-serif;font-size:16px;font-weight:900;}
.sec-more{font-size:11px;font-weight:700;color:var(--lime);opacity:.75;cursor:pointer;text-decoration:none;}

/* ─── PILLS / BADGES ─── */
.pill{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:999px;font-size:11px;font-weight:800;}
.pill-green{background:rgba(182,245,66,.1);color:var(--lime2);border:1px solid rgba(182,245,66,.2);}
.pill-orange{background:rgba(251,191,36,.1);color:var(--amber);border:1px solid rgba(251,191,36,.2);}
.pill-red{background:rgba(244,63,94,.1);color:var(--red);border:1px solid rgba(244,63,94,.2);}
.pill-blue{background:rgba(96,165,250,.1);color:var(--blue);border:1px solid rgba(96,165,250,.2);}
.pill-purple{background:rgba(167,139,250,.1);color:var(--purple);border:1px solid rgba(167,139,250,.2);}
.pill-muted{background:rgba(255,255,255,.05);color:var(--muted);border:1px solid rgba(255,255,255,.1);}

/* ─── BUTTONS ─── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  padding:11px 18px;border-radius:13px;border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.06);color:var(--text);
  font-family:'Inter',sans-serif;font-size:14px;font-weight:700;
  cursor:pointer;text-decoration:none;
  transition:transform .12s,background .12s;white-space:nowrap;
}
.btn:hover{background:rgba(255,255,255,.1);}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--lime);border-color:transparent;color:#052010;font-weight:900;}
.btn-primary:hover{background:#c6ff5a;}
.btn-ghost{background:transparent;border-color:rgba(255,255,255,.12);}
.btn-danger{background:var(--reddim);border-color:rgba(244,63,94,.28);color:var(--red);}
.btn-blue{background:var(--bluedim);border-color:rgba(96,165,250,.28);color:var(--blue);}
/* BUGFIX: btn-success manquait */
.btn-success{background:linear-gradient(135deg,#22c55e,#16a34a);border-color:rgba(34,197,94,.3);color:#052010;font-weight:900;}
.btn-sm{padding:7px 13px;font-size:12px;border-radius:10px;}
.btn-full{width:100%;justify-content:center;}
.form-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px;}

/* ─── QUESTS ─── */
.quest-scroll{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;margin-bottom:12px;padding-bottom:2px;}
.quest-scroll::-webkit-scrollbar{display:none;}
.qc{
  flex-shrink:0;width:148px;
  background:var(--ink2);border:1px solid rgba(255,255,255,.06);
  border-radius:16px;padding:12px;
}
.qc-ico{font-size:22px;margin-bottom:7px;}
.qc-title{font-size:11px;font-weight:700;margin-bottom:2px;}
.qc-desc{font-size:10px;color:var(--muted);margin-bottom:8px;line-height:1.35;}
.qc-bar{height:4px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden;margin-bottom:4px;}
.qc-prog{height:100%;border-radius:999px;}
.qc-count{font-size:10px;font-weight:700;color:var(--muted);}
.qc-xp{display:inline-flex;margin-top:6px;padding:2px 7px;border-radius:999px;font-size:9px;font-weight:800;}

/* ─── HISTORY LIST ─── */
.hist-list{display:flex;flex-direction:column;gap:6px;}
.hist-row{
  display:flex;align-items:center;gap:9px;
  padding:10px 12px;border-radius:13px;
  background:var(--ink2);border:1px solid rgba(255,255,255,.05);
}
.hist-ico{width:34px;height:34px;border-radius:10px;background:var(--limedim);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.hist-body{flex:1;}
.hist-name{font-size:12px;font-weight:700;}
.hist-det{font-size:10px;color:var(--muted);margin-top:1px;}
.hist-gain{font-family:'Nunito',sans-serif;font-size:14px;font-weight:900;color:var(--lime);}
.hist-gain.neg{color:var(--muted);}

/* ─── MAP PAGE ─── */
.map-header{display:flex;align-items:center;gap:7px;padding:8px 14px 8px;flex-shrink:0;}
.map-search{flex:1;height:40px;background:var(--ink3);border:1px solid rgba(255,255,255,.09);border-radius:11px;display:flex;align-items:center;gap:7px;padding:0 12px;}
.map-search-txt{font-size:13px;color:var(--muted2);}
.map-btn{width:40px;height:40px;border-radius:11px;background:var(--ink3);border:1px solid rgba(255,255,255,.09);display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;flex-shrink:0;color:var(--text);}
.map-filters{display:flex;gap:6px;padding:0 14px 8px;overflow-x:auto;scrollbar-width:none;flex-shrink:0;}
.map-filters::-webkit-scrollbar{display:none;}
.fchip{flex-shrink:0;padding:5px 11px;border-radius:999px;font-size:11px;font-weight:700;border:1px solid rgba(255,255,255,.1);background:var(--ink3);color:var(--muted2);cursor:pointer;transition:all .12s;}
.fchip.on{background:var(--lime);color:#052010;border-color:transparent;}
#map{width:100%;height:calc(100vh - 56px - 68px - 56px - 40px);min-height:360px;border-radius:0;}

/* ─── MAP MARKERS ─── */
.custom-price-marker-wrapper{}
.custom-price-marker{
  display:flex;align-items:center;justify-content:center;
  min-width:54px;height:28px;padding:0 7px;
  border-radius:999px;font-family:'Nunito',sans-serif;
  font-size:12px;font-weight:900;
  border:2px solid rgba(255,255,255,.2);
  box-shadow:0 4px 16px rgba(0,0,0,.45);
}
.marker-lime{background:#1a2a0e;border-color:var(--lime);color:var(--lime);}
.marker-green{background:#10b981;color:#fff;border-color:transparent;}
.marker-orange{background:#f59e0b;color:#fff;border-color:transparent;}
.marker-red{background:#ef4444;color:#fff;border-color:transparent;}
.marker-blue{background:#3b82f6;color:#fff;border-color:transparent;}
.map-trip-chip{
  position:absolute;top:10px;right:10px;
  border-radius:999px;padding:6px 14px;
  font-family:'Nunito',sans-serif;font-size:12px;font-weight:900;
  cursor:pointer;z-index:20;display:flex;align-items:center;gap:5px;
  transition:all .2s;
}

/* ─── STATION POPUP (Leaflet) ─── */
.station-popup{font-size:13px;line-height:1.45;min-width:180px;}
.station-popup .sp-name{font-family:'Nunito',sans-serif;font-weight:900;font-size:15px;margin-bottom:4px;}
.station-popup .sp-row{display:flex;justify-content:space-between;gap:8px;margin-bottom:3px;font-size:12px;}
.station-popup .sp-gain{font-family:'Nunito',sans-serif;font-size:18px;font-weight:900;color:#22c55e;margin:6px 0 3px;}
.station-popup .sp-gain.neg{color:#888;}
.station-popup a{display:block;margin-top:7px;padding:7px;background:#22c55e;color:#052010;border-radius:8px;text-align:center;font-weight:800;font-size:12px;text-decoration:none;}

/* ─── STATION SHEET (bottom) ─── */
.ssheet{
  position:fixed;bottom:68px;left:0;right:0;max-width:600px;margin:0 auto;
  background:var(--ink2);
  border-radius:22px 22px 0 0;border-top:1px solid rgba(255,255,255,.1);
  padding:13px 16px 18px;z-index:150;
  transform:translateY(100%);transition:transform .26s cubic-bezier(.34,1.1,.64,1);
}
.ssheet.open{transform:translateY(0);}
.sh-handle{width:32px;height:4px;border-radius:999px;background:rgba(255,255,255,.13);margin:0 auto 13px;}
.sh-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:7px;}
.sh-name{font-family:'Nunito',sans-serif;font-size:16px;font-weight:900;}
.sh-brand{font-size:11px;color:var(--muted2);margin-top:2px;}
.sh-close{font-size:18px;color:var(--muted);cursor:pointer;padding:0 4px;background:none;border:none;color:var(--muted);}
.sh-gain{font-family:'Nunito',sans-serif;font-size:30px;font-weight:900;color:var(--lime);}
.sh-gain.neg{color:var(--muted);}
.sh-pills{display:flex;flex-wrap:wrap;gap:5px;margin:7px 0;}
.shp{padding:4px 9px;border-radius:999px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08);font-size:10px;font-weight:600;color:var(--muted2);}
.sh-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px;}
.smb{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:8px 9px;}
.smv{font-family:'Nunito',sans-serif;font-size:14px;font-weight:900;}
.smv.g{color:var(--lime);}
.smv.o{color:var(--amber);}
.smv.b{color:var(--blue);}
.sml{font-size:9px;font-weight:600;color:var(--muted);margin-top:1px;text-transform:uppercase;letter-spacing:.04em;}
.sh-btns{display:flex;gap:7px;}
.shbtn{flex:1;height:42px;border-radius:12px;border:none;font-family:'Nunito',sans-serif;font-size:13px;font-weight:900;cursor:pointer;transition:transform .1s;}
.shbtn:active{transform:scale(.97);}
.shbtn-gps{background:var(--lime);color:#052010;}
.shbtn-val{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);color:var(--text);}

/* ─── TRAJET SCREEN ─── */
.ts-hero{border-radius:var(--r);padding:14px 16px;position:relative;overflow:hidden;margin-bottom:10px;transition:background .3s,border .3s;}
.ts-hero.on{background:linear-gradient(150deg,#141e0c,#0d1609);border:1.5px solid rgba(182,245,66,.38);}
.ts-hero.off{background:linear-gradient(150deg,var(--ink3),var(--ink2));border:1.5px dashed rgba(255,255,255,.14);}
.ts-hero::before{content:'';position:absolute;top:-40px;right:-40px;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle,rgba(182,245,66,.12),transparent 65%);pointer-events:none;}
.ts-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;}
.ts-title{font-family:'Nunito',sans-serif;font-size:20px;font-weight:900;transition:color .3s;}
.ts-sub{font-size:11px;font-weight:600;margin-top:2px;transition:color .3s;}
.ts-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.big-toggle{width:60px;height:34px;border-radius:999px;position:relative;cursor:pointer;flex-shrink:0;transition:background .25s;border:none;}
.big-toggle.on{background:var(--lime);}
.big-toggle.off{background:rgba(255,255,255,.12);}
.bt-knob{position:absolute;top:3px;width:28px;height:28px;border-radius:50%;background:#fff;transition:left .22s cubic-bezier(.34,1.4,.64,1);}
.big-toggle.on .bt-knob{left:29px;}
.big-toggle.off .bt-knob{left:3px;}

/* missed panel */
.missed-panel{background:rgba(107,122,153,.07);border:1px dashed rgba(107,122,153,.2);border-radius:var(--r);padding:14px 16px;text-align:center;margin-bottom:10px;}
.mp-ico{font-size:30px;opacity:.3;margin-bottom:8px;}
.mp-title{font-size:14px;font-weight:700;color:var(--muted2);margin-bottom:4px;}
.mp-sub{font-size:11px;color:var(--muted);line-height:1.5;}
.mp-highlight{color:var(--amber);font-weight:700;}

/* geo button */
.geo-btn{
  width:100%;height:46px;border-radius:14px;
  background:rgba(96,165,250,.1);border:1px solid rgba(96,165,250,.25);
  color:var(--blue);font-family:'Nunito',sans-serif;font-size:14px;font-weight:900;
  cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px;
  margin-bottom:12px;
}

/* params */
.param-card{margin-bottom:12px;}
.param-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05);}
.param-item:last-child{border-bottom:none;}
.param-left{flex:1;}
.param-name{font-size:13px;font-weight:700;}
.param-hint{font-size:10px;color:var(--muted);margin-top:2px;}
.param-val{font-family:'Nunito',sans-serif;font-size:13px;font-weight:900;color:var(--lime);cursor:pointer;padding:4px 10px;background:rgba(182,245,66,.1);border-radius:8px;white-space:nowrap;}

/* analyse */
.analysis-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.04);}
.analysis-row:last-child{border-bottom:none;}
.ar-label{font-size:11px;color:var(--muted2);}
.ar-val{font-size:12px;font-weight:700;}
.ar-val.ok{color:var(--lime);}
.ar-val.warn{color:var(--amber);}
.ar-val.bad{color:var(--red);}

/* ─── RANKING ─── */
.rank-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.rank-title{font-family:'Nunito',sans-serif;font-size:20px;font-weight:900;}
.tab-pills{display:flex;gap:5px;background:var(--ink3);border-radius:12px;padding:4px;margin-bottom:12px;}
.tab-pill{flex:1;padding:7px;border-radius:9px;text-align:center;font-size:11px;font-weight:700;color:var(--muted);cursor:pointer;transition:all .15s;border:none;background:none;}
.tab-pill.on{background:var(--ink4);color:var(--text);}
.podium{display:flex;align-items:flex-end;justify-content:center;gap:7px;padding:6px 0 16px;}
.pod{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;}
.pod-av{border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:17px;border:2px solid rgba(255,255,255,.14);}
.p1 .pod-av{width:54px;height:54px;background:linear-gradient(135deg,#fbbf24,#f59e0b);border-color:var(--amber);}
.p2 .pod-av{width:46px;height:46px;background:linear-gradient(135deg,#94a3b8,#64748b);}
.p3 .pod-av{width:42px;height:42px;background:linear-gradient(135deg,#cd7c4a,#a05c32);}
.pod-name{font-size:11px;font-weight:700;text-align:center;}
.pod-sav{font-family:'Nunito',sans-serif;font-size:12px;font-weight:900;color:var(--lime);}
.pod-bar{border-radius:7px 7px 0 0;width:100%;}
.p1 .pod-bar{height:54px;background:rgba(251,191,36,.16);border-top:2px solid var(--amber);}
.p2 .pod-bar{height:38px;background:rgba(148,163,184,.13);border-top:2px solid #94a3b8;}
.p3 .pod-bar{height:26px;background:rgba(205,124,74,.13);border-top:2px solid #cd7c4a;}
.rank-list{display:flex;flex-direction:column;gap:6px;}
.rank-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:13px;background:var(--ink2);border:1px solid rgba(255,255,255,.06);}
.rank-row.me{border-color:rgba(182,245,66,.3);background:rgba(182,245,66,.05);}
.r-pos{font-family:'Nunito',sans-serif;font-size:14px;font-weight:900;color:var(--muted);width:18px;text-align:center;flex-shrink:0;}
.r-av{width:34px;height:34px;border-radius:50%;background:var(--ink4);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;}
.r-info{flex:1;}
.r-name{font-size:12px;font-weight:700;}
.r-det{font-size:10px;color:var(--muted);margin-top:1px;}
.r-sav{font-family:'Nunito',sans-serif;font-size:14px;font-weight:900;color:var(--lime);}

/* ─── PROFILE ─── */
.prof-hero{background:linear-gradient(150deg,#14142a,#0e0e1c);border:1px solid rgba(167,139,250,.2);border-radius:var(--r);padding:14px;display:flex;gap:12px;align-items:center;margin-bottom:12px;}
.prof-av{width:56px;height:56px;border-radius:50%;flex-shrink:0;background:linear-gradient(135deg,var(--purple),#6d28d9);display:flex;align-items:center;justify-content:center;font-size:22px;border:2px solid rgba(167,139,250,.4);}
.prof-name{font-family:'Nunito',sans-serif;font-size:18px;font-weight:900;}
.prof-lvl{font-size:11px;color:var(--purple);font-weight:700;margin-top:2px;}
.prof-stats{display:flex;gap:14px;margin-top:7px;}
.ps-val{font-family:'Nunito',sans-serif;font-size:15px;font-weight:900;}
.ps-lbl{font-size:9px;color:var(--muted);}

/* vehicle */
.veh-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:10px;}
.vgi{background:rgba(255,255,255,.04);border-radius:10px;padding:8px 9px;}
.vgi-v{font-family:'Nunito',sans-serif;font-size:13px;font-weight:900;}
.vgi-l{font-size:9px;color:var(--muted);margin-top:1px;}
.tank-wrap{height:7px;background:rgba(255,255,255,.07);border-radius:999px;overflow:hidden;}
.tank-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--lime2),var(--lime));transition:width .6s cubic-bezier(.34,1.56,.64,1);}
.tank-lbl{font-size:10px;color:var(--muted2);margin-top:4px;display:flex;justify-content:space-between;}

/* badges */
.badge-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;}
.badge-item{background:var(--ink2);border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:10px 6px;text-align:center;}
.badge-item.locked{opacity:.28;}
.bi-ico{font-size:20px;margin-bottom:4px;}
.bi-name{font-size:9px;font-weight:700;color:var(--muted2);line-height:1.2;}

/* referral */
.ref-card{background:linear-gradient(135deg,#1a1030,#0e0820);border:1px solid rgba(167,139,250,.2);border-radius:var(--r);padding:14px;}
.ref-code-box{font-family:'Nunito',sans-serif;font-size:26px;font-weight:900;color:var(--purple);letter-spacing:2px;text-align:center;padding:9px;background:rgba(255,255,255,.04);border-radius:11px;margin:7px 0;cursor:pointer;}
.ref-stats{display:flex;gap:8px;margin-top:8px;}
.rs{flex:1;text-align:center;}
.rs-val{font-family:'Nunito',sans-serif;font-size:16px;font-weight:900;color:var(--purple);}
.rs-lbl{font-size:9px;color:var(--muted);margin-top:1px;}

/* ─── FORM ELEMENTS ─── */
label{display:block;margin-bottom:6px;font-size:11px;font-weight:700;color:var(--muted2);text-transform:uppercase;letter-spacing:.06em;}
input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{
  width:100%;padding:12px 14px;border-radius:13px;
  border:1px solid rgba(255,255,255,.1);
  background:rgba(255,255,255,.04);color:var(--text);
  font-family:'Inter',sans-serif;font-size:14px;
  outline:none;transition:border-color .15s;
}
input:focus,select:focus,textarea:focus{border-color:rgba(182,245,66,.4);box-shadow:0 0 0 3px rgba(182,245,66,.08);}
select option{background:var(--ink2);}
input[type=checkbox]{accent-color:var(--lime);width:17px;height:17px;cursor:pointer;}
.checkbox-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid rgba(255,255,255,.05);font-size:13px;cursor:pointer;}
.form-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:14px;}
.form-section{margin-bottom:16px;}
.form-section-title{font-family:'Nunito',sans-serif;font-size:14px;font-weight:900;margin-bottom:10px;color:var(--muted2);}

/* ─── STATIONS LIST ─── */
.station-row{
  display:flex;align-items:center;gap:10px;
  padding:11px 13px;border-radius:13px;
  background:var(--ink2);border:1px solid rgba(255,255,255,.05);
  margin-bottom:6px;transition:border-color .15s;
}
.station-row:hover{border-color:rgba(255,255,255,.12);}
.station-row.best{border-color:rgba(182,245,66,.3);background:rgba(182,245,66,.04);}
.station-rank{width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:900;flex-shrink:0;}
.station-rank.gold{background:rgba(251,191,36,.2);color:var(--amber);}
.station-info{flex:1;}
.station-name{font-size:13px;font-weight:700;}
.station-city{font-size:10px;color:var(--muted);margin-top:1px;}
.station-price{font-family:'Nunito',sans-serif;font-size:16px;font-weight:900;}
.station-net{font-family:'Nunito',sans-serif;font-size:14px;font-weight:900;}
.station-net.positive{color:var(--lime);}
.station-net.negative{color:var(--muted);}

/* ─── VALIDATION MODAL ─── */
.modal-overlay{
  position:fixed;inset:0;z-index:300;
  background:rgba(4,4,10,.85);
  display:flex;align-items:flex-end;
  opacity:0;pointer-events:none;transition:opacity .2s;
}
.modal-overlay.open{opacity:1;pointer-events:all;}
.modal-box{
  background:var(--ink2);border-radius:26px 26px 0 0;
  border-top:1px solid rgba(255,255,255,.1);
  padding:16px 18px 24px;width:100%;max-width:600px;margin:0 auto;
  transform:translateY(100%);transition:transform .28s cubic-bezier(.34,1.1,.64,1);
}
.modal-overlay.open .modal-box{transform:translateY(0);}
.modal-handle{width:36px;height:4px;border-radius:999px;background:rgba(255,255,255,.14);margin:0 auto 16px;}
.modal-title{font-family:'Nunito',sans-serif;font-size:19px;font-weight:900;margin-bottom:4px;}
.modal-sub{font-size:12px;color:var(--muted2);margin-bottom:14px;}

/* range slider */
input[type=range]{width:100%;height:6px;border-radius:999px;background:rgba(255,255,255,.1);outline:none;cursor:pointer;-webkit-appearance:none;appearance:none;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--lime);cursor:pointer;border:2px solid #052010;}
input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--lime);cursor:pointer;border:2px solid #052010;}
.slider-wrap{margin:12px 0;}
.slider-label{display:flex;justify-content:space-between;margin-bottom:7px;}
.sl-name{font-size:12px;font-weight:700;color:var(--muted2);}
.sl-val{font-family:'Nunito',sans-serif;font-size:14px;font-weight:900;color:var(--lime);}

/* val summary */
.val-summary{background:rgba(182,245,66,.07);border:1px solid rgba(182,245,66,.2);border-radius:13px;padding:11px 13px;margin:10px 0;}
.vs-row{display:flex;justify-content:space-between;margin-bottom:4px;font-size:12px;}
.vs-row:last-child{margin-bottom:0;}
.vs-l{color:var(--muted2);}
.vs-v{font-weight:700;}

/* xp animation */
.xp-anim{text-align:center;padding:14px 0;}
.xp-big{font-family:'Nunito',sans-serif;font-size:48px;font-weight:900;color:var(--lime);}
.xp-sub{font-size:13px;color:var(--muted2);margin-top:4px;}

/* ─── GPS MODAL ─── */
.gps-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;}
.gps-hint{font-size:10px;color:var(--muted);margin-top:6px;text-align:center;}

/* ─── EMPTY STATE ─── */
.empty-state{text-align:center;padding:32px;color:var(--muted);}
.empty-ico{font-size:36px;margin-bottom:12px;opacity:.4;}

/* ─── TABLE ─── */
.table-wrap{overflow:auto;}
table{width:100%;border-collapse:collapse;font-size:13px;}
th{padding:8px 10px;text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1px solid rgba(255,255,255,.07);}
td{padding:11px 10px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle;}
td:last-child{text-align:right;}
.td-muted{font-size:10px;color:var(--muted);margin-top:2px;}

/* ─── UTILITY ─── */
.muted{color:var(--muted);}
.small{font-size:11px;}
.center{text-align:center;}
.green{color:var(--lime);}
.amber{color:var(--amber);}
.red{color:var(--red);}
.divider{height:1px;background:rgba(255,255,255,.06);margin:12px 0;}
.spacer{height:12px;}

/* ─── ANIMATIONS ─── */
@keyframes pulse{
  0%,100%{box-shadow:0 0 0 4px rgba(182,245,66,.2),0 0 0 8px rgba(182,245,66,.06);}
  50%{box-shadow:0 0 0 8px rgba(182,245,66,.16),0 0 0 16px rgba(182,245,66,.03);}
}
@keyframes slideUp{from{transform:translateY(20px);opacity:0;}to{transform:translateY(0);opacity:1;}}
.slide-up{animation:slideUp .3s ease both;}

/* ─── RESPONSIVE desktop ─── */
@media(min-width:768px){
  .topnav{display:flex;gap:2px;}
  .topnav a{padding:7px 12px;border-radius:10px;color:var(--muted2);font-size:13px;font-weight:700;transition:color .15s,background .15s;}
  .topnav a:hover,.topnav a.active{color:var(--text);background:rgba(255,255,255,.06);}
  .bottom-nav{display:none;}
  .site-shell{padding-bottom:0;}
  .container{max-width:900px;padding:22px 24px 32px;}
  #map{height:calc(100vh - 56px - 56px - 40px);min-height:500px;}
  .ssheet{position:fixed;bottom:0;}
}
@media(min-width:1100px){
  .container{max-width:1200px;}
}


/* ─── HOME MAP ─── */
.home-map-card{padding:12px;overflow:hidden;}
.home-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;}
.home-map-meta{font-size:12px;color:var(--muted2);line-height:1.35;min-width:0;}
.home-map-meta strong{display:block;color:#fff;font-size:13px;}
.home-map{height:250px;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:#111827;cursor:pointer;}
.home-map-caption{margin-top:8px;font-size:12px;color:var(--muted);}
.home-price-marker-wrap,.custom-price-marker-wrapper{background:transparent;border:none;}
.home-price-marker{display:inline-flex;align-items:center;justify-content:center;min-width:54px;height:24px;padding:0 8px;border-radius:999px;background:rgba(13,13,20,.95);border:1px solid rgba(182,245,66,.35);color:var(--lime);font:800 12px/1 'Nunito',sans-serif;box-shadow:0 6px 16px rgba(0,0,0,.35);}
.hm-user-dot{width:16px;height:16px;border-radius:50%;background:#60a5fa;border:2px solid #fff;box-shadow:0 0 0 8px rgba(96,165,250,.18);}
.leaflet-container img.leaflet-tile,.leaflet-container .leaflet-marker-icon,.leaflet-container .leaflet-marker-shadow{max-width:none!important;}

/* ─── MOBILE SAFETY / OVERFLOW ─── */
.card,.prof-hero,.hist-row,.ref-card,.badge-item,.vgi,.mm,.cp,.sec-head,.form-actions{min-width:0;}
.prof-stats{display:flex;flex-wrap:wrap;gap:6px 10px;}
.prof-stats .ps-val,.prof-stats .ps-lbl{display:inline;}
.veh-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.badge-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
.form-actions{display:flex;flex-wrap:wrap;gap:10px;}
.hist-row{gap:10px;}
.hist-body{min-width:0;}
.hist-name,.hist-det{word-break:break-word;}
input[type="range"]{width:100%;min-width:0;}

@media (max-width:420px){
  .hero-saving{font-size:48px;}
  .home-map{height:220px;}
  .badge-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .home-map-toolbar{align-items:flex-start;flex-direction:column;}
  .home-map-toolbar .btn{width:100%;}
}
