/* Pump Map — the map, LED price-sign pins, price board, totem and list. */
.pm-mapwrap{position:relative;height:calc(100svh - var(--head));min-height:460px;background:#111316;overflow:hidden}
.admin-bar .pm-mapwrap{height:calc(100svh - var(--head) - 32px)}
#pm-map{position:absolute;inset:0;background:#15171b}
.leaflet-container{font-family:Inter,system-ui,sans-serif}
.leaflet-control-attribution{font-size:10px;background:rgba(0,0,0,.55)!important;color:#bbb!important}
.leaflet-control-attribution a{color:#ddd!important}
.leaflet-bar a{background:#1a1c21!important;color:#eee!important;border-color:#2c2f36!important}
.pm-style-light .leaflet-control-attribution{background:rgba(255,255,255,.8)!important;color:#444!important}
.pm-style-light .leaflet-control-attribution a{color:#222!important}

/* ---- LED digits ---- */
.pm-led{position:relative;display:inline-block;font-family:"DSEG7",monospace;font-weight:700;color:var(--led);line-height:1;letter-spacing:.04em;white-space:nowrap;
  text-shadow:0 0 1px var(--led-g1,rgba(255,42,28,.5)),0 0 5px var(--led-g2,rgba(255,42,28,.22))}
.pm-led i{position:absolute;left:0;top:0;font-style:normal;color:var(--led);opacity:.09;text-shadow:none}
.pm-led b{position:relative;font-weight:inherit}
.pm-noghost .pm-led i{display:none}
.pm-stale .pm-led{opacity:.45;text-shadow:none}

/* ---- Pins ---- */
.pm-pin-icon{background:none!important;border:0!important}
.pm-pin{position:absolute;left:0;top:0;transform:translate(-50%,calc(-100% - 7px));cursor:pointer;transition:transform .12s;filter:drop-shadow(0 3px 5px rgba(0,0,0,.55))}
.pm-pin:hover,.pm-pin.pm-hot{transform:translate(-50%,calc(-100% - 7px)) scale(1.14);z-index:2}
.pm-sign{position:relative;background:var(--sign);border:1.5px solid #34363c;border-radius:5px;padding:2px 6px 4px;text-align:center;
  box-shadow:inset 0 0 0 1px #000,inset 0 8px 10px -8px rgba(255,255,255,.18)}
.pm-sign::after{content:"";position:absolute;left:50%;bottom:-8px;margin-left:-6px;border:6px solid transparent;border-top:7px solid #34363c;border-bottom:0}
.pm-sign::before{content:"";position:absolute;left:50%;bottom:-5px;margin-left:-4px;border:4px solid transparent;border-top:5px solid var(--sign);border-bottom:0;z-index:1}
.pm-brand{display:block;max-width:86px;margin:0 auto 1px;font:600 9px/1.25 "Barlow Condensed",sans-serif;letter-spacing:.09em;color:#d7dae0;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-row{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:1px 0}
.pm-row+.pm-row{border-top:1px solid #1d1f24;margin-top:1px;padding-top:2px}
.pm-row small{font:700 8.5px/1 "Barlow Condensed",sans-serif;letter-spacing:.08em;color:#8d929c;width:30px;text-align:left}
.pm-row.on small{color:#fff}
.pm-row.na .pm-led b{opacity:.25}
.pm-row.na .pm-led{text-shadow:none}
.pm-pin .pm-led{font-size:15px}
.pm-cheap .pm-sign{border-color:var(--accent)}
.pm-cheap .pm-sign::after{border-top-color:var(--accent)}
.pm-cheap .pm-brand{color:var(--accent)}
.pm-closed .pm-led b{opacity:.35}
.pm-pin.pm-pulse .pm-sign{animation:pmPulse 1s ease-in-out 2}
@keyframes pmPulse{50%{box-shadow:0 0 0 6px var(--accent),inset 0 0 0 1px #000}}

/* ---- Clusters ---- */
.pm-cluster-icon{background:none!important;border:0!important}
.pm-cluster{position:absolute;left:0;top:0;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:stretch;justify-content:center;
  min-width:96px;padding:5px 10px 6px;border-radius:12px;background:var(--sign);border:1.5px solid #3a3d44;box-shadow:0 0 0 4px rgba(0,0,0,.28),0 4px 10px rgba(0,0,0,.5);cursor:pointer}
.pm-cluster>small{font:600 8.5px/1 "Barlow Condensed",sans-serif;letter-spacing:.12em;color:#9ea3ad;text-transform:uppercase;margin-bottom:3px;text-align:center}
.pm-cluster .pm-led{font-size:13px}
.pm-cluster em{position:absolute;right:-6px;top:-7px;min-width:20px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:#111;font:700 10px/18px Inter,sans-serif;font-style:normal;text-align:center}

/* ---- Controls ---- */
.pm-controls{position:absolute;z-index:500;left:14px;top:14px;display:flex;flex-direction:column;gap:10px;max-width:calc(100% - 28px)}
.pm-fuels{display:flex;background:rgba(14,15,18,.92);border:1px solid #2c2f36;border-radius:10px;padding:4px;gap:3px;backdrop-filter:blur(6px);box-shadow:0 6px 20px rgba(0,0,0,.35)}
.pm-fuels button{flex:1;display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px 12px;border:0;border-radius:7px;background:none;color:#aeb3bc;cursor:pointer;white-space:nowrap}
.pm-fuels b{font:700 15px/1 "Barlow Condensed",sans-serif;letter-spacing:.05em}
.pm-fuels span{font-size:11px;font-weight:500}
.pm-fuels button:hover{color:#fff;background:#22252b}
.pm-fuels button[aria-selected=true]{background:var(--accent);color:#111}
.pm-search{display:flex;background:rgba(14,15,18,.92);border:1px solid #2c2f36;border-radius:10px;overflow:hidden;box-shadow:0 6px 20px rgba(0,0,0,.35);max-width:340px}
.pm-search input{flex:1;min-width:0;background:none;border:0;color:#fff;font:500 15px Inter,sans-serif;padding:11px 14px;outline:none;text-transform:uppercase}
.pm-search input::placeholder{color:#7d838e;text-transform:none}
.pm-search button{border:0;background:none;color:#cfd3da;padding:0 12px;cursor:pointer}
.pm-search button:hover{color:var(--accent)}
.pm-search .pm-locate{border-left:1px solid #2c2f36}
.pm-msg{position:absolute;z-index:600;left:50%;top:84px;transform:translateX(-50%);background:#1b1d22;color:#fff;border:1px solid #3a3d44;border-radius:8px;padding:9px 16px;font-size:.88rem;box-shadow:0 8px 24px rgba(0,0,0,.4)}

/* ---- Totem (UK average) ---- */
.pm-totem{position:absolute;z-index:500;right:14px;top:14px;width:208px;background:var(--sign);border:2px solid #34363c;border-radius:10px;overflow:hidden;box-shadow:0 10px 30px rgba(0,0,0,.5)}
.pm-totem-head{background:var(--accent);color:#111;font:700 15px/1 "Barlow Condensed",sans-serif;letter-spacing:.2em;text-align:center;padding:9px 0 7px}
.pm-totem-rows{padding:8px 12px 4px}
.pm-trow{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid #1f2126;cursor:pointer}
.pm-trow:last-child{border-bottom:0}
.pm-trow>span:first-child{font:600 13px/1.05 "Barlow Condensed",sans-serif;letter-spacing:.08em;color:#e6e8ec;text-transform:uppercase}
.pm-trow>span:first-child small{display:block;font-size:10px;color:#868b95;letter-spacing:.05em}
.pm-trow .pm-led{font-size:20px}
.pm-trow.on>span:first-child{color:var(--accent)}
.pm-totem-foot{font-size:10px;color:#868b95;text-align:center;padding:2px 10px 9px}

/* ---- Cheapest list ---- */
.pm-list{position:absolute;z-index:500;left:14px;bottom:24px;width:300px;max-height:calc(100% - 190px);display:flex;flex-direction:column;background:rgba(14,15,18,.95);border:1px solid #2c2f36;border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.45);overflow:hidden}
.pm-list-head{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:11px 14px;background:none;border:0;border-bottom:1px solid #24272d;color:#fff;cursor:pointer;font:700 15px "Barlow Condensed",sans-serif;letter-spacing:.08em;text-transform:uppercase;text-align:left}
.pm-list-head em{font:500 11px Inter,sans-serif;font-style:normal;color:#8d929c;letter-spacing:0;text-transform:none}
.pm-list ol{list-style:none;overflow-y:auto;overscroll-behavior:contain}
.pm-list li{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid #1d1f24;cursor:pointer;color:#e6e8ec}
.pm-list li:hover{background:#1c1f24}
.pm-list li>b{flex:none;width:18px;font:700 12px "Barlow Condensed",sans-serif;color:#7d838e}
.pm-list li div{flex:1;min-width:0;line-height:1.25}
.pm-list li strong{display:block;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pm-list li small{font-size:11px;color:#8d929c}
.pm-list li .pm-led{flex:none;font-size:15px;background:var(--sign);padding:5px 6px 4px;border-radius:4px;border:1px solid #2c2f36}
.pm-list .pm-empty{padding:14px;color:#8d929c;font-size:13px;cursor:default}
.pm-list.shut ol{display:none}

/* ---- Price board popup ---- */
.pm-popup .leaflet-popup-content-wrapper{background:#111214;color:#e9ebef;border:1.5px solid #34363c;border-radius:12px;padding:0;box-shadow:0 14px 40px rgba(0,0,0,.6)}
.pm-popup .leaflet-popup-tip{background:#111214;border:1.5px solid #34363c}
.pm-popup .leaflet-popup-content{margin:0;width:268px!important}
.pm-popup a.leaflet-popup-close-button{color:#9ea3ad!important;top:6px!important;right:6px!important;font-size:22px!important}
.pm-board-head{padding:14px 34px 10px 16px;border-bottom:1px solid #23252b}
.pm-board-head small{display:block;font:700 12px "Barlow Condensed",sans-serif;letter-spacing:.14em;color:var(--accent);text-transform:uppercase}
.pm-board-head strong{display:block;font-size:15px;line-height:1.25;margin:2px 0 3px}
.pm-board-head span{display:block;font-size:12px;color:#9ea3ad;line-height:1.35}
.pm-board{background:var(--sign);margin:12px 14px;border:1.5px solid #2c2f36;border-radius:8px;padding:4px 12px}
.pm-brow{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #1c1e22}
.pm-brow:last-child{border-bottom:0}
.pm-brow>span:first-child{font:600 14px "Barlow Condensed",sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#e6e8ec}
.pm-brow .pm-led{font-size:22px}
.pm-brow.na .pm-led{opacity:.2;text-shadow:none}
.pm-brow.on>span:first-child{color:var(--accent)}
.pm-tags{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 6px}
.pm-tags>span{font-size:10.5px;font-weight:600;background:#22252b;color:#c9ccd2;border-radius:99px;padding:3px 9px}
.pm-tags .warn{background:#5a1a14;color:#ffcbc4}
.pm-board-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 14px 14px;font-size:11px;color:#8d929c}
.pm-board-foot .pm-btn{padding:.55em 1em;font-size:13px;border-radius:7px}

/* ---- Overlays ---- */
.pm-demo .short{display:none}
.pm-demo{position:absolute;z-index:550;left:50%;bottom:24px;transform:translateX(-50%);background:var(--accent);color:#111;font:700 12px Inter,sans-serif;padding:7px 14px;border-radius:99px;white-space:nowrap;box-shadow:0 6px 18px rgba(0,0,0,.4)}
.pm-loading{position:absolute;inset:0;z-index:700;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#111316;transition:opacity .4s}
.pm-loading.done{opacity:0;pointer-events:none}
.pm-led-txt{font-family:"DSEG7",monospace;font-size:44px;color:var(--led);text-shadow:0 0 8px var(--led-g2,rgba(255,42,28,.22));animation:pmBlink 1s steps(2) infinite}
.pm-loading small{color:#8d929c;font-size:13px}
@keyframes pmBlink{50%{opacity:.35}}

/* ---- Camper places: LPG (green) and launderettes (blue) ---- */
.pm-extras{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pm-extras>span{font:700 12px "Barlow Condensed",sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#cfd3da;background:rgba(14,15,18,.92);border:1px solid #2c2f36;border-radius:8px;padding:6px 9px}
.pm-extras button{display:inline-flex;align-items:center;gap:6px;background:rgba(14,15,18,.92);color:#cfd3da;border:1px solid #2c2f36;border-radius:8px;padding:6px 11px;font:600 13px Inter,sans-serif;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.3)}
.pm-extras button:hover{color:#fff}
.pm-extras button[hidden]{display:none}
.pm-extras button[aria-pressed=true]{color:#111}
.pm-extras button[data-layer=lpg][aria-pressed=true]{background:#46e07a;border-color:#46e07a}
.pm-extras button[data-layer=laundry][aria-pressed=true]{background:#5ab4ff;border-color:#5ab4ff}
.pm-dot{width:9px;height:9px;border-radius:50%;display:inline-block}
.pm-dot-lpg{background:#46e07a}.pm-dot-wash{background:#5ab4ff}
.pm-extras button[aria-pressed=true] .pm-dot{background:#111}
.pm-p-on{display:block;font:700 13px/1.05 "Barlow Condensed",sans-serif;letter-spacing:.08em;padding-top:2px;white-space:nowrap}
.pm-p-q{display:block;font:600 9px/1.2 "Barlow Condensed",sans-serif;letter-spacing:.1em;color:#9ea3ad;text-transform:uppercase;padding-bottom:1px;white-space:nowrap}
.pm-lpg .pm-p-on{color:#46e07a;text-shadow:0 0 5px rgba(70,224,122,.35)}
.pm-wash .pm-p-on{color:#5ab4ff;text-shadow:0 0 5px rgba(90,180,255,.35)}
.pm-pin.pm-lpg .pm-sign{border-color:#2f6b45}.pm-pin.pm-lpg .pm-sign::after{border-top-color:#2f6b45}
.pm-pin.pm-wash .pm-sign{border-color:#2d5a80}.pm-pin.pm-wash .pm-sign::after{border-top-color:#2d5a80}
.pm-cluster.pm-pc{min-width:74px;align-items:center}
.pm-cluster.pm-pc b{font:700 16px/1 "Barlow Condensed",sans-serif;letter-spacing:.04em}
.pm-cluster.pm-lpg{border-color:#2f6b45}.pm-cluster.pm-lpg b{color:#46e07a}
.pm-cluster.pm-wash{border-color:#2d5a80}.pm-cluster.pm-wash b{color:#5ab4ff}
.pm-p-board{text-align:center;padding:14px 12px}
.pm-p-board .pm-p-on{font-size:26px}
.pm-p-board .pm-p-q{font-size:12px;margin-top:4px;white-space:normal;text-transform:none;letter-spacing:.02em}
.pm-tags>span.lpg{background:#163d26;color:#9ff0bd}
.pm-tags>span.wash{background:#14324d;color:#a9d6ff}
.pm-board-foot a:not(.pm-btn){color:#9ff0bd}

/* ---- LPG / LAUNDRY tags on top of a fuel sign ---- */
.pm-badges{display:flex;justify-content:center;gap:3px;position:relative;z-index:1;margin-bottom:-1px}
.pm-badges b{font:700 10px/1 "Barlow Condensed",sans-serif;letter-spacing:.1em;padding:3px 6px 2px;border-radius:4px 4px 0 0;color:#0b0b0c;white-space:nowrap}
.pm-badges b.lpg{background:#46e07a}
.pm-badges b.wash{background:#5ab4ff}
.pm-cbadges{position:absolute;left:50%;top:-16px;transform:translateX(-50%);margin:0}
.pm-cbadges b{border-radius:4px}

.pm-badges b.shower{background:#c792ff}
.pm-dot-shower{background:#c792ff}
.pm-extras button[data-layer=shower][aria-pressed=true]{background:#c792ff;border-color:#c792ff}
.pm-tags>span.shower{background:#33204d;color:#e2c9ff}

/* ---- Phones ---- */
@media(max-width:760px){
  .pm-controls{left:8px;right:8px;top:8px;max-width:none}
  .pm-fuels button{padding:6px 4px}
  .pm-fuels span{font-size:10px;white-space:nowrap}
  .pm-fuels b{font-size:15px}
  .pm-search{max-width:none}
  .pm-extras button{padding:5px 9px;font-size:12px}
  .pm-extras>span{display:none}
  .pm-totem{display:none}
  .pm-list{left:8px;right:8px;bottom:22px;width:auto;max-height:42%}
  .pm-list.shut{max-height:none}
  .pm-demo{bottom:auto;top:118px;font-size:11px;padding:5px 12px}
  .pm-demo .full{display:none}
  .pm-demo .short{display:inline}
  .leaflet-control-zoom{display:none}
  .pm-msg{top:160px}
}
