:root{
  --bg:#f4f0e8;
  --sf:#fffef9;
  --sf2:#eee8de;
  --bd:#ddd3c0;
  --txt:#1a1814;
  --mut:#6b6560;
  --fnt:#b0a89c;
  --brnd:#0c6a67;
  --brnd-d:#08504e;
  --acc:#c67b23;
  --ok:#287a4a;
  --wn:#9a7000;
  --er:#b04545;
  --sh:0 4px 20px rgba(20,16,8,.12);
  --sh2:0 12px 40px rgba(20,16,8,.18);
  --r:16px;--rs:10px;
  --hh:58px;--th:66px;
  --blur:14px;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{height:100%;-webkit-text-size-adjust:100%;}
body{
  height:100dvh;
  font-family:"Satoshi",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:15px;line-height:1.5;
  color:var(--txt);background:var(--bg);overflow:hidden;
}
button{cursor:pointer;font:inherit;border:none;background:none;color:inherit;transition:opacity .15s ease,transform .1s ease;}
button:active{transform:scale(0.98);}
button:disabled{opacity:.45;cursor:not-allowed;transform:none!important;}
input,select,textarea{font:inherit;}
img,svg{display:block;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* ── SHELL ── */
#app{position:fixed;inset:0;display:grid;grid-template-rows:var(--hh) 1fr var(--th);overflow:hidden;height:100dvh;}

/* ── HEADER ── */
#hdr{
  display:flex;align-items:center;gap:12px;
  padding:0 16px;
  background:var(--sf);border-bottom:1px solid var(--bd);
  z-index:900;
}
.brand{display:flex;align-items:center;gap:8px;flex:0 0 auto;}
.brand-mark{
  width:34px;height:34px;border-radius:9px;flex:0 0 auto;
  background:linear-gradient(135deg,var(--brnd) 0%,#1a9e9a 100%);
  display:grid;place-items:center;color:#fff;
}
.brand strong{font-size:.95rem;font-weight:800;letter-spacing:-.03em;line-height:1.1;}
.brand span{font-size:.7rem;color:var(--mut);}
.srch{
  flex:1;display:flex;align-items:center;gap:8px;
  min-height:40px;padding:0 14px;
  background:var(--bg);border:1px solid var(--bd);border-radius:999px;
}
.srch svg{flex:0 0 auto;color:var(--fnt);}
.srch input{flex:1;border:0;background:transparent;outline:0;color:var(--txt);}
.icon-btn{
  width:40px;height:40px;display:grid;place-items:center;
  border:1px solid var(--bd);border-radius:10px;
  background:var(--sf);flex:0 0 auto;
}
.icon-btn:hover{background:var(--sf2);}

/* ── MAP STAGE ── */
#stage{position:relative;overflow:hidden;}
#map{position:absolute;inset:0;z-index:1;}

/* ── MAP FILTERS ── */
#fuelTypeControl{
  position:absolute;top:10px;left:10px;z-index:500;
  display:none;align-items:center;gap:8px;
  padding:8px 10px;border-radius:14px;
  background:color-mix(in srgb,var(--sf) 94%,transparent);
  border:1px solid rgba(255,255,255,.55);
  box-shadow:var(--sh);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));
}
#fuelTypeControl.visible{display:flex;}
#fuelTypeControl label{font-size:.72rem;font-weight:900;color:var(--mut);text-transform:uppercase;letter-spacing:.06em;}
#fuelTypeControl select{
  height:32px;border:1px solid var(--bd);border-radius:10px;background:var(--sf);
  color:var(--txt);font-size:.84rem;font-weight:900;padding:0 28px 0 10px;outline:0;
}
#layersWrap{position:absolute;bottom:14px;left:10px;z-index:500;}
#layersBtn{
  display:flex;align-items:center;gap:7px;
  min-height:44px;padding:0 16px;
  background:var(--sf);
  border:1px solid var(--bd);
  border-radius:999px;box-shadow:var(--sh);
  font-size:.84rem;font-weight:800;color:var(--txt);
  white-space:nowrap;
}
#layersBtn .l-badge{
  min-width:24px;height:20px;border-radius:99px;padding:0 7px;
  background:var(--brnd);color:#fff;font-size:.68rem;font-weight:900;
  display:grid;place-items:center;
}
#layersPanel{
  position:absolute;bottom:calc(44px + 10px);left:0;
  width:min(360px,calc(100vw - 20px));
  max-height:min(64dvh,560px);
  background:var(--sf);
  border:1px solid var(--bd);
  border-radius:var(--r);box-shadow:var(--sh2);
  overflow:hidden;display:grid;grid-template-rows:auto auto 1fr;
  opacity:0;pointer-events:none;
  transform:translateY(8px) scale(.97);
  transform-origin:bottom left;
  transition:opacity .18s ease,transform .18s ease;
}
#layersPanel.open{opacity:1;pointer-events:auto;transform:translateY(0) scale(1);}
.lp-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 14px 10px;border-bottom:1px solid var(--bd);}
.lp-head strong{font-size:.88rem;font-weight:800;}
.lp-sub{display:block;margin-top:2px;font-size:.75rem;color:var(--mut);font-weight:500;}
.lp-actions{display:flex;gap:6px;align-items:center;flex:0 0 auto;}
.lp-actions button{
  font-size:.78rem;font-weight:700;color:var(--brnd);
  padding:3px 8px;border-radius:6px;
  border:1px solid color-mix(in srgb,var(--brnd) 30%,var(--bd));
}
.lp-quick{display:flex;gap:7px;padding:10px 10px 6px;overflow-x:auto;border-bottom:1px solid color-mix(in srgb,var(--bd) 55%,transparent);}
.lp-chip{
  min-height:34px;padding:0 11px;border-radius:999px;border:1px solid var(--bd);
  background:var(--sf2);font-size:.78rem;font-weight:800;white-space:nowrap;
}
.lp-chip.on{background:var(--txt);border-color:var(--txt);color:#fff;}
.lp-list{padding:8px 10px 12px;display:grid;gap:10px;overflow-y:auto;}
.lp-group{display:grid;gap:4px;}
.lp-group-title{font-size:.7rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);padding:4px 4px 2px;}
.lp-row{
  width:100%;display:flex;align-items:center;gap:10px;text-align:left;
  padding:9px 10px;border-radius:11px;
  cursor:pointer;user-select:none;
  border:1px solid transparent;
  transition:background .12s;
}
.lp-row:hover{background:var(--sf2);}
.lp-row.active{background:var(--sf2);border-color:var(--bd);}
.lp-dot{width:11px;height:11px;border-radius:50%;flex:0 0 auto;}
.lp-copy{flex:1;min-width:0;}
.lp-label{display:block;font-size:.86rem;font-weight:800;line-height:1.15;}
.lp-hint{display:block;margin-top:2px;font-size:.72rem;color:var(--mut);line-height:1.2;}
.lp-check{
  width:20px;height:20px;border-radius:6px;flex:0 0 auto;
  border:2px solid var(--bd);background:#fff;
  display:grid;place-items:center;
  transition:background .12s,border-color .12s;
}
.lp-row.active .lp-check{background:var(--brnd);border-color:var(--brnd);}
.lp-check svg{display:none;}
.lp-row.active .lp-check svg{display:block;}

/* ── STATION PANEL ── */
#station-panel{
  position:absolute;bottom:70px;left:10px;right:10px;
  z-index:600;background:var(--sf);
  border:1px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh2);
  padding:14px;max-height:72dvh;overflow-y:auto;
  display:none;
}
#station-panel.visible{display:block;}

.station-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px;}
.station-head h3{font-size:1rem;font-weight:900;letter-spacing:-.02em;line-height:1.15;}
.station-head p{font-size:.8rem;color:var(--mut);margin-top:2px;}
.station-close{width:34px;height:34px;border:1px solid var(--bd);border-radius:10px;background:var(--sf2);font-size:1.1rem;color:var(--mut);display:grid;place-items:center;flex:0 0 auto;}
.fuel-price-list{display:grid;gap:6px;margin-bottom:12px;}
.fuel-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--bd);border-radius:10px;background:var(--sf2);}
.fuel-row span{font-size:.82rem;color:var(--mut);font-weight:700;}
.fuel-row strong{font-size:.92rem;font-weight:900;color:var(--brnd);}
.fuel-empty{font-size:.84rem;color:var(--mut);padding:10px;border-radius:10px;background:var(--sf2);border:1px solid var(--bd);margin-bottom:12px;}
.fuel-submit{border:1px solid color-mix(in srgb,var(--brnd) 22%,var(--bd));border-radius:12px;background:color-mix(in srgb,var(--brnd) 5%,var(--sf));padding:10px;margin-top:4px;}
.fuel-submit summary{cursor:pointer;color:var(--brnd);font-size:.88rem;font-weight:900;padding:2px 0 8px;}
.fuel-submit[open] summary{margin-bottom:2px;}
.fuel-input-row{display:flex;align-items:center;gap:8px;margin-bottom:8px;}
.fuel-input-row label{width:104px;flex:0 0 auto;font-size:.76rem;color:var(--mut);font-weight:800;}
.fuel-input{flex:1;min-width:0;min-height:40px;padding:9px 11px;border:1px solid var(--bd);border-radius:10px;background:#fff;color:var(--txt);outline:0;}
.fuel-input:focus{border-color:var(--brnd);box-shadow:0 0 0 2px color-mix(in srgb,var(--brnd) 15%,transparent);}
.fuel-msg{font-size:.78rem;text-align:center;min-height:1rem;margin-top:8px;color:var(--mut);}
.fuel-msg.ok{color:var(--ok);}
.fuel-msg.err{color:var(--er);}

/* ── NOTICES PILL ── */
#noticesPill{position:absolute;top:10px;right:10px;z-index:500;}
#noticesBtn{
  display:flex;align-items:center;gap:7px;
  height:38px;padding:0 13px;
  background:color-mix(in srgb,var(--sf) 94%,transparent);
  backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));
  border:1px solid rgba(255,255,255,.5);
  border-radius:999px;box-shadow:var(--sh);
  font-size:.82rem;font-weight:800;color:var(--txt);
}
#noticesBtn .nbadge{
  min-width:18px;height:18px;border-radius:99px;padding:0 5px;
  background:var(--er);color:#fff;font-size:.68rem;font-weight:900;
  display:grid;place-items:center;
}
#noticesBtn .chevron{font-size:.7rem;color:var(--mut);transition:transform .2s;}
#noticesPill.open #noticesBtn .chevron{transform:rotate(180deg);}
#noticesPanel{
  position:absolute;top:calc(38px + 8px);right:0;
  width:min(300px,calc(100vw - 20px));
  background:color-mix(in srgb,var(--sf) 96%,transparent);
  backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));
  border:1px solid rgba(255,255,255,.55);
  border-radius:var(--r);box-shadow:var(--sh2);
  overflow:hidden;
  opacity:0;pointer-events:none;
  transform:translateY(-6px) scale(.97);
  transform-origin:top right;
  transition:opacity .18s ease,transform .18s ease;
}
#noticesPill.open #noticesPanel{opacity:1;pointer-events:auto;transform:translateY(0) scale(1);}
.notices-head{padding:12px 14px 8px;display:flex;align-items:center;justify-content:space-between;}
.notices-head strong{font-size:.88rem;font-weight:800;}
.notices-list{padding:0 10px 12px;display:grid;gap:6px;}
.notice-row{
  display:flex;align-items:flex-start;gap:9px;
  padding:9px 10px;
  background:var(--sf);border:1px solid var(--bd);border-radius:12px;
}
.ndot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;margin-top:5px;}
.notice-row strong{display:block;font-size:.84rem;font-weight:700;line-height:1.2;}
.notice-row span{font-size:.75rem;color:var(--mut);}

/* ── RIGHT-SIDE MAP CONTROLS ── */
.map-controls{
  position:absolute;right:10px;bottom:14px;
  z-index:500;display:flex;flex-direction:column;gap:8px;align-items:flex-end;
}
.mc-btn{
  width:44px;height:44px;
  border:1px solid var(--bd);border-radius:12px;
  background:color-mix(in srgb,var(--sf) 92%,transparent);
  backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));
  display:grid;place-items:center;
  box-shadow:var(--sh);color:var(--txt);
}
.mc-btn:hover{background:var(--sf2);}

/* ── FAB ── */
#fab{position:absolute;left:50%;transform:translateX(-50%);bottom:14px;z-index:500;}
.fab-btn{
  display:flex;align-items:center;gap:8px;
  min-height:42px;padding:0 22px;border-radius:999px;
  background:var(--brnd);color:#fff;
  font-weight:800;font-size:.9rem;
  box-shadow:var(--sh2);white-space:nowrap;
}
.fab-btn:hover{background:var(--brnd-d);}
#traceHud{
  position:absolute;left:50%;bottom:66px;transform:translate(-50%,10px);
  z-index:650;display:flex;align-items:center;gap:14px;justify-content:space-between;
  min-width:min(420px,calc(100vw - 20px));padding:11px 12px 11px 14px;
  background:var(--txt);color:#fff;border-radius:16px;box-shadow:var(--sh2);
  opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;
}
#traceHud.visible{opacity:1;pointer-events:auto;transform:translate(-50%,0);}
#traceHud strong{display:block;font-size:.86rem;font-weight:900;}
#traceHud span{display:block;font-size:.75rem;color:rgba(255,255,255,.72);margin-top:1px;}
.trace-actions{display:flex;gap:7px;flex:0 0 auto;}
.trace-actions button{min-height:34px;padding:0 10px;border-radius:10px;background:rgba(255,255,255,.12);color:#fff;font-size:.78rem;font-weight:800;}
.trace-actions button:last-child{background:var(--brnd);}

/* ── BOTTOM SHEET ── */
#sheet{
  position:fixed;left:0;right:0;bottom:var(--th);
  max-height:75dvh;background:var(--sf);
  border-top-left-radius:20px;border-top-right-radius:20px;
  border-top:1px solid var(--bd);
  box-shadow:0 -6px 28px rgba(20,16,8,.13);
  transform:translateY(105%);
  transition:transform .24s cubic-bezier(0.16, 1, 0.3, 1);
  z-index:800;display:grid;grid-template-rows:auto 1fr;overflow:hidden;
}
#sheet.open{transform:translateY(0);}
#sheet-head{padding:12px 16px;border-bottom:1px solid var(--bd);background:var(--sf);}
.grabber{width:42px;height:5px;border-radius:99px;background:var(--bd);margin:0 auto 12px;}
.sh-row{display:flex;align-items:center;gap:10px;}
#sheet-title{font-weight:800;font-size:1.1rem;flex:1;}
.sh-close{
  width:32px;height:32px;border-radius:9px;
  border:1px solid var(--bd);background:var(--sf2);
  display:grid;place-items:center;font-size:1.2rem;color:var(--mut);
}
#sheet-close:hover{background:var(--bd);}
#sheet-body{overflow-y:auto;padding:16px;display:grid;gap:14px;align-content:start;}

/* ── TAB BAR ── */
#tabs{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:8px;padding:10px 12px;
  background:color-mix(in srgb,var(--sf) 96%,transparent);
  backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));
  border-top:1px solid var(--bd);z-index:900;
}
.tab{
  display:grid;place-items:center;gap:3px;padding:8px 4px;
  border:1px solid var(--bd);border-radius:12px;
  background:var(--sf);color:var(--mut);
  font-size:.72rem;font-weight:800;
}
.tab svg{width:20px;height:20px;}
.tab:hover{background:var(--sf2);}
.tab.on{background:var(--txt);color:#fff;border-color:var(--txt);}

/* ── INNER CARD ARCHITECTURE ── */
.card{background:var(--sf);border:1px solid var(--bd);border-radius:var(--r);padding:14px;}
.card h3{font-size:.97rem;font-weight:800;margin-bottom:6px;}
.card p{font-size:.87rem;color:var(--mut);line-height:1.45;}
.drow{display:flex;align-items:center;gap:8px;}
.drow.between{justify-content:space-between;}
.badge{
  display:inline-flex;align-items:center;
  padding:3px 9px;border-radius:999px;
  font-size:.73rem;font-weight:800;
  border:1px solid var(--bd);background:var(--sf2);
}
.badge.live{background:color-mix(in srgb,var(--ok) 12%,#fff);color:var(--ok);border-color:transparent;}
.badge.warn{background:color-mix(in srgb,var(--wn) 12%,#fff);color:var(--wn);border-color:transparent;}
.badge.err{background:color-mix(in srgb,var(--er) 12%,#fff);color:var(--er);border-color:transparent;}
.badge.cat-local_deals{background:#f4e3ce;color:#9b5b13;border-color:transparent;}
.badge.cat-garage_sale{background:#dce8f5;color:#326292;border-color:transparent;}
.badge.cat-freebie{background:#efdfd4;color:#80451e;border-color:transparent;}
.badge.cat-community{background:#e7def5;color:#55328d;border-color:transparent;}
.badge.cat-markets{background:#e2ecd6;color:#456e1c;border-color:transparent;}
.badge.cat-lost_found{background:#f0dce8;color:#81305d;border-color:transparent;}
.badge.cat-hazard{background:#f2dddd;color:#923535;border-color:transparent;}
.badge.cat-road_closures{background:#e0e4e8;color:#364552;border-color:transparent;}
.badge.cat-road_works{background:#eee3cc;color:#704800;border-color:transparent;}
.lbl{font-size:.78rem;color:var(--mut);}
.sep{height:1px;background:var(--bd);margin:10px 0;}
.detail-head{margin-bottom:10px;}
.detail-desc{margin-top:5px;}
.detail-row{margin-top:7px;}
.detail-value{font-size:.87rem;}
.feed-foot{margin-top:8px;gap:8px;}
.pet-photo{width:100%;max-height:210px;object-fit:cover;border-radius:12px;border:1px solid var(--bd);margin-top:10px;background:var(--sf2);}
.pet-desc{margin-top:9px;padding:10px;border-radius:11px;background:#f7edf3;border:1px solid #ead0df;color:#6d284e;font-size:.84rem;}
.feed{display:grid;gap:10px;}
.fi{background:var(--sf);border:1px solid var(--bd);border-radius:var(--rs);padding:12px;cursor:pointer;}
.fi:hover{background:var(--sf2);}
.fi h4{font-size:.9rem;font-weight:700;margin:6px 0 3px;}
.fi p{font-size:.82rem;color:var(--mut);}
.field{display:grid;gap:5px;}
.field label{font-size:.74rem;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.07em;}
.field input,.field select,.field textarea{
  width:100%;min-height:44px;padding:11px 13px;
  border:1px solid var(--bd);border-radius:10px;
  background:#fff;color:var(--txt);outline:none;
}
.field textarea{min-height:90px;resize:vertical;}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brnd);box-shadow:0 0 0 2px color-mix(in srgb, var(--brnd) 15%, transparent);}
.field .help{font-size:.76rem;color:var(--fnt);line-height:1.35;}
.hidden{display:none!important;}
.stack{display:grid;gap:12px;}
.stack-tight{display:grid;gap:10px;}
.section-title{margin-bottom:12px;}
.compact-title{margin-bottom:8px;}
.muted-inline{font-weight:400;color:var(--fnt);}
.mini-muted{font-size:.78rem;color:var(--mut);}
.fineprint{font-size:.76rem;color:var(--fnt);margin-top:2px;}
.card-offset{margin-top:4px;}
.small-strong{font-size:.84rem;font-weight:700;}
.nick-display{font-size:.88rem;color:var(--brnd);font-weight:800;}
.small-faint{font-size:.78rem;color:var(--fnt);margin-top:4px;}
.small-muted{font-size:.84rem;color:var(--mut);}
.list-stack{display:grid;gap:6px;}
.btn.compact{min-height:38px;font-size:.84rem;}
.btn.full-width{width:100%;}
.spaced-top{margin-top:8px;}
.spaced-bottom{margin-bottom:10px;}
.location-actions{margin-top:10px;}
.location-actions.single{grid-template-columns:1fr;}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.btn{
  display:flex;align-items:center;justify-content:center;gap:7px;
  min-height:44px;padding:0 16px;border-radius:12px;
  font-weight:700;font-size:.9rem;
  border:1px solid var(--bd);background:var(--sf2);color:var(--txt);
}
.btn:hover{background:var(--bd);}
.btn.p{background:var(--brnd);color:#fff;border-color:var(--brnd);}
.btn.p:hover{background:var(--brnd-d);}
.btn.d{background:var(--er);color:#fff;border-color:var(--er);}
.brow{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.hint{font-size:.79rem;color:var(--fnt);line-height:1.4;}
.form-msg{font-size:.82rem;min-height:1.2em;color:var(--mut);text-align:center;}
.form-msg.err{color:var(--er);}
.form-msg.ok{color:var(--ok);}
.cat-note{display:flex;align-items:flex-start;gap:9px;padding:10px 11px;border-radius:11px;background:color-mix(in srgb,var(--brnd) 7%,var(--sf));border:1px solid color-mix(in srgb,var(--brnd) 18%,var(--bd));font-size:.8rem;color:var(--mut);line-height:1.35;}
.cat-note strong{display:block;color:var(--txt);font-size:.82rem;margin-bottom:1px;}
.ts{
  padding:10px 13px;border-radius:10px;font-size:.87rem;font-weight:700;
  background:var(--sf2);color:var(--fnt);border:1px solid var(--bd);
}
.ts.active{
  background:color-mix(in srgb,var(--er) 10%,#fff);
  color:var(--er);border-color:color-mix(in srgb,var(--er) 25%,var(--bd));
}
.empty{text-align:center;padding:30px 14px;color:var(--fnt);font-size:.9rem;}

/* ── CONTRIBUTOR BLOCK ── */
.contrib-block{
  background:color-mix(in srgb,var(--brnd) 6%,var(--sf));
  border:1px solid color-mix(in srgb,var(--brnd) 20%,var(--bd));
  border-radius:12px;padding:12px 13px;
  display:grid;gap:8px;
}
.contrib-title{
  font-size:.78rem;font-weight:800;color:var(--brnd);
  text-transform:uppercase;letter-spacing:.06em;
}
.contrib-hint{font-size:.78rem;color:var(--mut);line-height:1.4;}
.contrib-set{display:flex;gap:8px;align-items:center;}
.contrib-set input{
  flex:1;min-height:40px;padding:9px 12px;
  border:1px solid var(--bd);border-radius:10px;
  background:#fff;color:var(--txt);outline:none;font-size:.88rem;
}
.contrib-set input:focus{border-color:var(--brnd);}
.contrib-set .btn-sm{
  height:40px;padding:0 14px;border-radius:10px;
  background:var(--brnd);color:#fff;font-weight:700;font-size:.84rem;
  white-space:nowrap;flex:0 0 auto;
}
.contrib-create{
  margin-top:2px;
  background:var(--sf2);border:1px solid var(--bd);
  border-radius:10px;padding:10px 12px;
  display:grid;gap:7px;
}
.contrib-create.hidden{display:none;}
.contrib-msg{font-size:.78rem;min-height:1.1em;}
.contrib-msg.ok{color:var(--ok);}
.contrib-msg.err{color:var(--er);}
.contrib-saved{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.contrib-saved strong{font-size:.88rem;font-weight:800;color:var(--brnd);}
.contrib-saved button{font-size:.76rem;color:var(--mut);text-decoration:underline;}

/* ── LEADERBOARD ── */
.lb-row{
  display:flex;align-items:center;gap:10px;
  padding:9px 10px;
  background:var(--sf);border:1px solid var(--bd);border-radius:12px;
}
.lb-rank{
  width:24px;height:24px;border-radius:7px;
  display:grid;place-items:center;
  font-size:.75rem;font-weight:900;flex:0 0 auto;
  background:var(--sf2);color:var(--mut);
}
.lb-row.r1 .lb-rank{background:color-mix(in srgb,#f0b429 20%,#fff);color:#8a6200;}
.lb-row.r2 .lb-rank{background:color-mix(in srgb,#a0a0a0 20%,#fff);color:#555;}
.lb-row.r3 .lb-rank{background:color-mix(in srgb,#c47a3a 18%,#fff);color:#7a3a10;}
.lb-name{flex:1;font-size:.88rem;font-weight:700;}
.lb-score{font-size:1.1rem;font-weight:900;color:var(--brnd);}
.lb-label{font-size:.72rem;color:var(--mut);margin-left:2px;}

/* ── LEAFLET OVERRIDES ── */
.leaflet-control-zoom{border:none!important;box-shadow:var(--sh)!important;}
.leaflet-control-zoom a{
  width:36px!important;height:36px!important;line-height:36px!important;
  background:var(--sf)!important;color:var(--txt)!important;
  border:1px solid var(--bd)!important;
}
.leaflet-control-zoom a:first-child{border-radius:10px 10px 0 0!important;}
.leaflet-control-zoom a:last-child{border-radius:0 0 10px 10px!important;}
.leaflet-top.leaflet-left{display:none!important;}
.leaflet-popup-content-wrapper{border-radius:8px!important;box-shadow:var(--sh2)!important;border:1px solid var(--bd)!important;padding:0!important;overflow:hidden;}
.leaflet-popup-content{margin:0!important;padding:0!important;min-width:190px!important;}
.pop-t{font-weight:800;font-size:.93rem;margin-bottom:4px;}
.pop-s{font-size:.81rem;color:var(--mut);}
.pop-b{margin-top:8px;}
.lm{width:20px;height:20px;border-radius:50%;border:2.5px solid rgba(255,255,255,.95);box-shadow:0 3px 10px rgba(0,0,0,.2);}
.pin-mk{
  position:relative;width:36px;height:36px;border-radius:50%;
  background:var(--pin);border:2px solid #fff;box-shadow:0 6px 18px rgba(20,16,8,.28);
  display:grid;place-items:center;
}
.pin-mk:after{
  content:"";position:absolute;left:50%;bottom:-7px;transform:translateX(-50%);
  border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid var(--pin);
}
.pin-mk span{
  color:#fff;font-size:16px;font-weight:900;line-height:1;
  max-width:28px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.fuel-pin{position:relative;width:58px;height:54px;}
.fuel-can{
  position:absolute;left:15px;top:0;width:29px;height:34px;color:#0c6a67;
  filter:drop-shadow(0 4px 8px rgba(20,16,8,.28));
}
.fuel-can svg{width:100%;height:100%;overflow:visible;}
.fuel-under{position:absolute;left:50%;top:34px;transform:translateX(-50%);min-width:46px;text-align:center;font-size:.58rem;font-weight:900;text-transform:uppercase;color:#0c6a67;background:#fff;border:1px solid color-mix(in srgb,var(--brnd) 35%,var(--bd));border-radius:999px;padding:2px 5px;box-shadow:0 2px 7px rgba(20,16,8,.18);font-variant-numeric:tabular-nums;z-index:3;}
.fuel-add{position:absolute;right:8px;top:-3px;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#0c6a67;border:1px solid color-mix(in srgb,var(--brnd) 45%,var(--bd));font-size:14px;font-weight:900;box-shadow:0 2px 7px rgba(20,16,8,.18);}
.fuel-pop-price{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:9px;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--ok) 10%,var(--sf));border:1px solid color-mix(in srgb,var(--ok) 22%,var(--bd));}
.fuel-pop-price strong{font-size:1rem;font-weight:900;color:var(--ok);font-variant-numeric:tabular-nums;}
.fuel-pop-price span{font-size:.75rem;color:var(--mut);font-weight:800;}
.fuel-pop-price.add{background:var(--sf2);border-color:var(--bd);}
.fuel-pop-price.add strong{color:var(--brnd);}
.fuel-pop{display:grid;background:var(--sf);width:260px;max-width:calc(100vw - 60px);}
.fuel-pop-head{padding:11px 12px 9px;background:var(--sf);}
.fuel-pop-prices{display:grid;background:color-mix(in srgb,var(--brnd) 8%,#fff);border-top:1px solid color-mix(in srgb,var(--brnd) 18%,var(--bd));border-bottom:1px solid color-mix(in srgb,var(--brnd) 18%,var(--bd));padding:9px 12px;}
.fuel-pop-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 9px;border-radius:9px;background:color-mix(in srgb,var(--ok) 9%,var(--sf));border:1px solid color-mix(in srgb,var(--ok) 22%,var(--bd));}
.fuel-pop-row span{font-size:.76rem;color:var(--mut);font-weight:800;}
.fuel-pop-row strong{font-size:.92rem;color:var(--ok);font-weight:900;font-variant-numeric:tabular-nums;}
.fuel-pop-empty{padding:9px;border-radius:9px;background:var(--sf2);border:1px solid var(--bd);font-size:.8rem;color:var(--mut);font-weight:700;}
.fuel-pop-primary{display:flex;align-items:baseline;gap:3px;flex-wrap:wrap;}
.fuel-pop-primary span{font-size:.82rem;color:var(--mut);font-weight:900;margin-right:2px;}
.fuel-pop-primary strong{font-size:1.22rem;line-height:1;color:var(--brnd);font-weight:900;font-variant-numeric:tabular-nums;}
.fuel-pop-primary em{font-style:normal;font-size:.7rem;color:var(--mut);}
.fuel-pop-secondary{display:flex;gap:4px 8px;flex-wrap:wrap;margin-top:3px;font-size:.72rem;color:var(--mut);line-height:1.25;}
.fuel-pop-secondary strong{color:var(--brnd);font-weight:900;}
.fuel-pop-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 12px;background:var(--sf);}
.fuel-pop-submit-btn,.fuel-pop-nav-btn{min-height:42px;border-radius:11px;background:var(--brnd);color:#fff;font-size:.86rem;font-weight:900;}
.fuel-pop-nav-btn{background:var(--txt);}
.fuel-pop-submit-btn:hover{background:var(--brnd-d);}
.fuel-pop-nav-btn:hover{background:#000;}
.fuel-submit-panel{position:fixed;inset:0;z-index:2000;background:var(--bg);color:var(--txt);display:grid;grid-template-rows:64px 1fr;font-family:"Satoshi",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;}
.fuel-submit-head{display:grid;grid-template-columns:58px 1fr 94px;align-items:center;background:var(--sf);color:var(--txt);border-bottom:1px solid var(--bd);box-shadow:var(--sh);}
.fuel-submit-head strong{font-size:1rem;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.02em;}
.fuel-submit-back{height:42px;margin:10px 8px;border-radius:12px;background:var(--txt);color:#fff;font-size:1.8rem;line-height:1;}
.fuel-submit-top{height:42px;margin:10px 10px 10px 4px;border-radius:12px;background:var(--brnd);color:#fff;font-size:.9rem;font-weight:900;}
.fuel-submit-body{padding:16px;overflow:auto;}
.fuel-submit-help{font-size:.88rem;line-height:1.4;margin-bottom:12px;color:var(--mut);max-width:520px;}
.fuel-submit-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;max-width:560px;background:var(--sf);border:1px solid var(--bd);border-radius:16px;padding:14px;box-shadow:var(--sh);}
.fuel-submit-field{display:grid;grid-template-columns:92px 1fr;align-items:center;gap:8px;}
.fuel-submit-field span{font-size:.88rem;font-weight:900;color:var(--txt);line-height:1.08;}
.fuel-submit-field input{width:100%;height:40px;border:1px solid var(--bd);border-radius:11px;background:#fff;padding:8px 10px;font-size:.92rem;outline:0;}
.fuel-submit-field input:focus{border-color:var(--brnd);box-shadow:0 0 0 2px color-mix(in srgb,var(--brnd) 16%,transparent);background:#fff;}
#fuel-submit-panel .fuel-msg{text-align:left;margin-top:12px;}
@media (max-width:560px){
  .fuel-submit-grid{grid-template-columns:1fr;gap:10px;}
  .fuel-submit-field{grid-template-columns:110px 1fr;}
  .fuel-submit-field input{width:100%;}
}
@media (max-width:560px){
  #hdr{gap:8px;padding:0 10px;}
  .brand strong{font-size:.86rem;}
  .brand span{display:none;}
  .srch{padding:0 10px;min-width:0;}
  #layersWrap{left:8px;bottom:12px;}
  #layersPanel{width:calc(100vw - 16px);max-height:60dvh;}
  .lp-head{padding:12px;}
  .lp-actions button{font-size:.74rem;padding-inline:7px;}
  .map-controls{right:8px;bottom:12px;}
  #fab{bottom:12px;}
  .fab-btn{padding:0 16px;}
  #traceHud{bottom:64px;align-items:flex-start;}
  .g2,.brow{grid-template-columns:1fr;}
  #sheet{max-height:78dvh;}
}
