LOADING STATIONS…
ปั้มไหนมี
เขมราฐ · นาตาล · ตระการ · โพธิ์ไทร
0
ปั๊มทั้งหมด
0
มีน้ำมัน
0
หมดแล้ว
0
วันนี้
☕ สนับสนุนผู้พัฒนา
🔐
ADMIN LOGIN
ใส่รหัสผ่านเพื่อเข้าสู่ระบบ
🔧 ADMIN PANEL
📋 รายการปั๊มทั้งหมด
.pl{border:1px solid var(--border2);cursor:pointer;padding:5px 12px;border-radius:20px; font-family:'IBM Plex Sans Thai',sans-serif;font-size:11px;font-weight:600;color:var(--text2); background:rgba(26,26,39,.85);backdrop-filter:blur(8px); transition:all .18s;white-space:nowrap;flex-shrink:0} .pl.on{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 12px rgba(124,106,247,.4)} /* ── STATS BAR ── */ #sbar{background:var(--surface);border-top:1px solid var(--border); display:grid;grid-template-columns:repeat(4,1fr);flex-shrink:0;position:relative;z-index:10} .sc{padding:9px 4px;text-align:center;border-right:1px solid var(--border)} .sc:last-child{border-right:none} .sn{font-family:'Space Mono',monospace;font-size:17px;font-weight:700;line-height:1} .sl{font-size:9px;color:var(--text2);margin-top:3px;font-weight:500;letter-spacing:.3px;text-transform:uppercase} /* ── BOTTOM NAV — always visible above home indicator ── */ #bnav{ background:var(--surface); border-top:1px solid var(--border); display:flex;align-items:stretch;flex-shrink:0; /* height = nav content + safe area so content stays in --bnav-h zone */ min-height:calc(var(--bnav-h) + env(safe-area-inset-bottom,0px)); padding-bottom:env(safe-area-inset-bottom,0px); position:relative;z-index:20; } .ni{ flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center; gap:2px;cursor:pointer;border:none;background:none; font-family:'IBM Plex Sans Thai',sans-serif;color:var(--text3); transition:color .15s;padding:0 2px;min-width:0; /* anchor to top so safe-area padding below doesn't push icons down */ align-self:flex-start;height:var(--bnav-h); } .ni.on{color:var(--accent)} .ni span{font-size:20px;line-height:1;display:block} .ni p{font-size:8px;font-weight:600;letter-spacing:.2px;text-transform:uppercase; white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%} #brep{ flex:1.4;display:flex;align-items:center;justify-content:center; border:none;background:none;cursor:pointer;padding:0 4px; align-self:flex-start;height:var(--bnav-h); } .brep-i{ background:linear-gradient(135deg,var(--accent),#4a3fc0); border-radius:18px;padding:7px 10px;display:flex;align-items:center;gap:4px; font-family:'IBM Plex Sans Thai',sans-serif;font-weight:700;font-size:11px;color:white; box-shadow:0 4px 16px rgba(124,106,247,.45); /* lifted effect: margin-top instead of negative position so it doesn't clip */ margin-top:-10px; border:1px solid rgba(255,255,255,.12);white-space:nowrap; } /* ── OVERLAYS ── */ .ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:600; align-items:flex-end;backdrop-filter:blur(2px)} .ov.on{display:flex} .sh{background:var(--surface);border-radius:22px 22px 0 0; border:1px solid var(--border);border-bottom:none; width:100%;max-height:90vh;overflow-y:auto;padding:12px 16px 34px} .hdl{width:32px;height:3px;background:var(--border2);border-radius:2px;margin:0 auto 16px} .sht{font-family:'Space Mono',monospace;font-size:14px;font-weight:700;color:var(--text);margin-bottom:16px} .leaflet-popup-content-wrapper{border-radius:16px!important; box-shadow:0 8px 32px rgba(0,0,0,.5)!important;padding:0!important;overflow:hidden; background:var(--surface2)!important;border:1px solid var(--border2)!important} .leaflet-popup-content{margin:0!important;width:268px!important} .leaflet-popup-tip-container{display:none} .pp{padding:14px} .pp-hd{display:flex;align-items:center;gap:10px;margin-bottom:12px} .pp-logo{width:44px;height:44px;border-radius:12px;border:1.5px solid var(--border2); background:var(--surface);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0} .pp-logo img{width:40px;height:40px;object-fit:contain;border-radius:8px} .pp-name{font-weight:700;font-size:13px;color:var(--text);line-height:1.3} .pp-dist{font-size:11px;color:var(--text2);margin-top:2px} .pp-fuels{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:10px} .pp-row{display:flex;justify-content:space-between;align-items:center; padding:7px 9px;border-radius:9px;border:1px solid transparent} .pp-fn{font-weight:600;font-size:11px;color:var(--text2)} .pp-bd{font-size:11px;font-weight:700;padding:2px 7px;border-radius:5px} .pp-note{font-size:11px;color:var(--text2);background:var(--surface); border:1px solid var(--border);border-radius:9px;padding:7px 10px;margin-bottom:10px;line-height:1.5} .pp-ft{display:flex;align-items:center;gap:6px} .pp-time{font-size:10px;color:var(--text3);flex:1;font-family:'Space Mono',monospace} .pp-btn{padding:6px 11px;border-radius:8px;font-size:11px;font-weight:700; border:none;cursor:pointer;font-family:'IBM Plex Sans Thai',sans-serif; text-decoration:none;display:inline-block;transition:.15s} .ig{margin-bottom:13px} .il{font-size:11px;color:var(--text2);display:block;margin-bottom:5px; font-weight:600;letter-spacing:.3px;text-transform:uppercase} .inp{width:100%;padding:10px 13px;background:var(--bg);border:1px solid var(--border2); border-radius:10px;color:var(--text);font-family:'IBM Plex Sans Thai',sans-serif; font-size:14px;outline:none;transition:border-color .15s} .inp:focus{border-color:var(--accent)} select.inp option{background:var(--surface2)} .btn{background:linear-gradient(135deg,var(--accent),#4a3fc0);color:white;border:none; cursor:pointer;padding:12px;border-radius:10px; font-family:'IBM Plex Sans Thai',sans-serif;font-size:14px;font-weight:700; width:100%;transition:.15s;box-shadow:0 4px 14px rgba(124,106,247,.3)} .btn:hover{opacity:.9} .btn:disabled{opacity:.4;cursor:not-allowed} .fp{display:flex;gap:6px;flex-wrap:wrap} .fpl{border:1px solid var(--border2);cursor:pointer;padding:6px 12px;border-radius:20px; font-family:'IBM Plex Sans Thai',sans-serif;font-size:12px;font-weight:600; background:var(--bg);color:var(--text2);transition:.15s} .fpl.on{background:var(--accent);color:#fff;border-color:var(--accent)} .sgrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px} .sbtn{padding:12px 4px;border-radius:10px;border:1.5px solid var(--border2); background:var(--bg);cursor:pointer;text-align:center;transition:.2s} #toast{position:fixed;bottom:calc(var(--bnav-h) + env(safe-area-inset-bottom,0px) + 22px);left:50%;transform:translateX(-50%) translateY(16px); background:var(--surface2);color:var(--text);padding:10px 20px;border-radius:30px; font-size:13px;font-weight:600;z-index:9000;opacity:0;transition:.3s; pointer-events:none;white-space:nowrap;border:1px solid var(--border2); box-shadow:0 4px 24px rgba(0,0,0,.5)} #toast.show{opacity:1;transform:translateX(-50%) translateY(0)} .tbr{border-bottom:1px solid var(--border);margin-bottom:13px;display:flex;overflow-x:auto;scrollbar-width:none} .tbr::-webkit-scrollbar{display:none} .tb{background:none;border:none;cursor:pointer;padding:9px 11px; font-family:'IBM Plex Sans Thai',sans-serif;font-size:11px;font-weight:600; border-bottom:2px solid transparent;color:var(--text2);transition:.15s;white-space:nowrap} .tb.on{color:var(--accent);border-bottom-color:var(--accent)} .rc{background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:12px;margin-bottom:8px} .stag{padding:3px 10px;border-radius:20px;font-size:10px;font-weight:700; letter-spacing:.3px;text-transform:uppercase;flex-shrink:0} /* donate */ .donate-qr-box{width:200px;height:200px;border-radius:18px;background:white; display:flex;align-items:center;justify-content:center; margin:0 auto 16px;overflow:hidden;border:3px solid var(--border2); box-shadow:0 4px 20px rgba(0,0,0,.3)} .donate-qr-box img{width:194px;height:194px;object-fit:contain} .donate-name{font-family:'Space Mono',monospace;font-size:18px;font-weight:700; color:var(--yellow);text-align:center;margin-bottom:4px} .donate-bank{font-size:13px;color:var(--text2);text-align:center;margin-bottom:16px} .donate-msg{background:var(--surface2);border:1px solid var(--border2);border-radius:12px; padding:14px;font-size:13px;color:var(--text2);line-height:1.7;margin-bottom:16px;white-space:pre-wrap} .spin-s{display:inline-block;width:13px;height:13px; border:2px solid rgba(255,255,255,.3);border-top-color:#fff; border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;margin-right:5px} @keyframes spin{to{transform:rotate(360deg)}} #errBar{display:none;position:fixed;top:0;left:0;right:0;z-index:9999; background:#3a0d0d;color:#fca5a5;font-size:12px;font-weight:600; padding:7px 14px;text-align:center;font-family:'IBM Plex Sans Thai',sans-serif; border-bottom:1px solid #7f1d1d} #ldg{position:absolute;inset:0;z-index:450;background:var(--bg); display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px} .ldg-ring{width:48px;height:48px;border-radius:50%; border:3px solid var(--border2);border-top-color:var(--accent);animation:spin .8s linear infinite} .ldg-txt{font-family:'Space Mono',monospace;font-size:12px;color:var(--text2);letter-spacing:.5px} .lcard{background:var(--bg);border:1px solid var(--border);border-radius:12px; padding:12px;margin-bottom:7px;display:flex;align-items:center;gap:11px; cursor:pointer;transition:.15s} .lcard:hover{border-color:var(--border2);background:var(--surface2)} .lbrand{width:42px;height:42px;border-radius:11px;border:1.5px solid var(--border2); background:var(--surface);overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0} .lbrand img{width:38px;height:38px;object-fit:contain;border-radius:7px} .leaflet-control-zoom{border:1px solid var(--border)!important;border-radius:10px!important;overflow:hidden} .leaflet-control-zoom a{background:var(--surface2)!important;color:var(--text)!important;border-bottom:1px solid var(--border)!important} .leaflet-control-zoom a:hover{background:var(--border2)!important} #locBtn{position:absolute;bottom:calc(var(--bnav-h) + env(safe-area-inset-bottom,0px) + 80px);right:12px;z-index:500; width:40px;height:40px;border-radius:50%;background:var(--surface2);border:1px solid var(--border2); display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px; box-shadow:0 3px 12px rgba(0,0,0,.4);transition:.15s} #locBtn:hover{background:var(--border2)} #locBtn.locating{border-color:var(--accent);box-shadow:0 0 14px rgba(124,106,247,.4)} .user-dot{width:18px;height:18px;border-radius:50%;background:var(--accent); border:3px solid #fff;box-shadow:0 0 0 4px rgba(124,106,247,.3),0 3px 10px rgba(0,0,0,.5); animation:pulse 2s ease-in-out infinite} @keyframes pulse{0%,100%{box-shadow:0 0 0 4px rgba(124,106,247,.3),0 3px 10px rgba(0,0,0,.5)} 50%{box-shadow:0 0 0 8px rgba(124,106,247,.1),0 3px 10px rgba(0,0,0,.5)}} @media(min-width:768px){ .ov{align-items:center;justify-content:flex-end;padding:20px} .sh{max-width:400px;border-radius:18px;max-height:84vh;border:1px solid var(--border2)} .hdl{display:none} .leaflet-popup-content{width:285px!important} } ::-webkit-scrollbar{width:4px} ::-webkit-scrollbar-thumb{background:var(--border2);border-radius:2px}
LOADING STATIONS…
ปั้มไหนมี
เขมราฐ · นาตาล · ตระการ · โพธิ์ไทร
0
ปั๊มทั้งหมด
0
มีน้ำมัน
0
หมดแล้ว
0
วันนี้
☕ สนับสนุนผู้พัฒนา
🔐
ADMIN LOGIN
ใส่รหัสผ่านเพื่อเข้าสู่ระบบ
🔧 ADMIN PANEL
📋 รายการปั๊มทั้งหมด