:root{--navy:#071b33;--navy-2:#0d2948;--blue:#1167ee;--blue-dark:#0753c9;--cyan:#37c8f2;--bg:#f2f5f8;--card:#fff;--ink:#10243a;--muted:#657689;--line:#dce4ec;--green:#11875d;--green-bg:#e7f7f0;--red:#d24c4c;--red-bg:#fff0ef;--amber:#b87408;--amber-bg:#fff5dd;--shadow-sm:0 5px 18px rgba(18,40,64,.08);--shadow:0 18px 55px rgba(10,32,56,.13);--r-sm:12px;--r:18px;--r-lg:26px;--topbar:72px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 Manrope,Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:var(--blue);text-decoration:none}img{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}
:focus-visible{outline:3px solid rgba(17,103,238,.35);outline-offset:3px}.surface{background:rgba(255,255,255,.97);border:1px solid rgba(218,228,237,.95);box-shadow:var(--shadow-sm);border-radius:var(--r)}
.topbar{height:var(--topbar);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 max(20px,calc((100vw - 1320px)/2));background:#fff;border-bottom:1px solid var(--line);position:relative;z-index:1100}.brand{display:flex;align-items:center;gap:10px;color:var(--navy);justify-self:start}.brand span{display:flex;align-items:baseline;gap:4px;font-size:17px;letter-spacing:-.02em}.brand b{font-weight:800}.brand small{font-size:13px;color:var(--blue);font-weight:800;text-transform:uppercase;letter-spacing:.08em}.topbar nav{display:flex;align-items:center;gap:8px}.topbar nav a{color:#526579;font-weight:700;padding:10px 16px;border-radius:999px}.topbar nav a:hover,.topbar nav a[aria-current=page]{color:var(--navy);background:#edf3f9}.top-cta{justify-self:end;color:#fff;background:var(--navy);padding:11px 18px;border-radius:999px;font-weight:800}.top-cta:hover{background:var(--navy-2)}
.status-banner{padding:10px 20px;text-align:center;background:#e8f3ff;color:#235071;font-size:13px;font-weight:700;position:relative;z-index:1000}.status-banner.warn{background:var(--amber-bg);color:#704a0b}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--green);margin-right:8px;box-shadow:0 0 0 4px rgba(17,135,93,.12)}.warn .status-dot,.freshness-pill.stale span{background:var(--amber);box-shadow:0 0 0 4px rgba(184,116,8,.14)}
main{max-width:1320px;margin:auto;padding:38px 24px 72px}footer{max-width:1320px;margin:auto;border-top:1px solid var(--line);padding:24px;display:flex;justify-content:space-between;color:var(--muted);font-size:12px}footer span:first-child{color:var(--navy);font-weight:800}.eyebrow{margin:0 0 8px!important;text-transform:uppercase;letter-spacing:.14em;font-size:11px!important;font-weight:850;color:var(--blue)!important}.muted{color:var(--muted)}
.button{appearance:none;border:1px solid var(--line);background:#fff;border-radius:var(--r-sm);min-height:46px;padding:11px 17px;color:var(--ink);font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:transform .15s,background .15s,border-color .15s}.button:hover{transform:translateY(-1px);border-color:#bccbda}.button:disabled{opacity:.55;cursor:not-allowed;transform:none}.button.primary{color:#fff;border-color:var(--blue);background:var(--blue);box-shadow:0 10px 24px rgba(17,103,238,.22)}.button.primary:hover{background:var(--blue-dark)}.button.ghost{background:#f7f9fb}.button.full{width:100%}.button-row{display:flex;gap:8px;flex-wrap:wrap}.icon-button{border:0;background:transparent;cursor:pointer;color:var(--muted)}
label{color:#53677b;font-size:12px;font-weight:800;display:grid;gap:7px}select,input{width:100%;min-height:46px;border:1px solid #ccd8e3;border-radius:var(--r-sm);padding:10px 13px;background:#fff;color:var(--ink)}select:hover,input:hover{border-color:#aebfd0}select:focus,input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(17,103,238,.12);outline:0}
/* Map dashboard */
.map-page main{max-width:none;padding:0}.map-page footer{display:none}.map-dashboard{height:calc(100vh - var(--topbar));min-height:650px;position:relative;overflow:hidden;background:#dce7eb}.status-banner+.map-page .map-dashboard{height:calc(100vh - var(--topbar) - 40px)}.map-stage,.map-stage>.map{position:absolute;inset:0}.map{border:0;z-index:1}.leaflet-control-zoom{border:0!important;box-shadow:var(--shadow-sm)!important}.leaflet-control-zoom a{color:var(--navy)!important}.leaflet-popup-content-wrapper{border-radius:16px;box-shadow:var(--shadow)}.leaflet-popup-content{margin:16px;min-width:220px}.leaflet-popup-tip-container{display:none}
.map-heading{position:absolute;z-index:500;top:24px;left:326px;padding:18px 22px}.map-heading h1{font-size:32px;line-height:1;margin:0 0 8px;letter-spacing:-.045em}.map-heading p:last-child{margin:0;color:var(--muted);font-size:12px}.filter-panel{position:absolute;z-index:600;top:24px;left:24px;width:278px;padding:22px;display:grid;gap:15px;box-shadow:var(--shadow)}.filter-panel h2{font-size:20px;line-height:1.15;margin:0}.panel-title{display:flex;justify-content:space-between}.panel-close,.panel-handle{display:none}.panel-summary{border-top:1px solid var(--line);padding-top:14px;display:grid;gap:3px}.panel-summary strong{font-size:16px}.panel-summary span{font-size:11px;color:var(--muted)}.notification-card{margin:2px -8px -8px;padding:13px;display:flex;gap:11px;align-items:center;background:var(--navy);color:#fff;border-radius:14px}.notification-card>span:last-child{display:grid}.notification-card small{color:#aebed0;font-size:10px}.notification-icon{display:grid;place-items:center;width:34px;height:34px;background:rgba(55,200,242,.18);color:var(--cyan);border-radius:10px;font-weight:900}
.map-metrics{position:absolute;z-index:500;left:326px;bottom:24px;display:flex;gap:8px}.map-metrics article{background:#fff;border:1px solid var(--line);border-radius:14px;padding:11px 14px;box-shadow:var(--shadow-sm);display:grid;grid-template-columns:auto 1fr;column-gap:7px;align-items:center}.map-metrics span{color:var(--muted);font-size:10px;font-weight:700}.map-metrics strong{font-size:19px;grid-column:1/-1}.metric-dot{width:7px;height:7px;border-radius:50%}.metric-dot.available{background:var(--green)}.metric-dot.unavailable{background:var(--red)}.mobile-filter-button{display:none}
.station-drawer{position:absolute;z-index:650;right:24px;top:24px;width:350px;max-height:calc(100% - 48px);overflow:auto;padding:22px;box-shadow:var(--shadow)}.drawer-close{float:right;font-size:24px}.drawer-location{color:var(--muted);font-size:12px}.drawer-fuels{display:grid;gap:7px;margin:16px 0}.drawer-fuel{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.drawer-fuel i,.fuel-status i{width:7px;height:7px;border-radius:50%;background:var(--amber)}.drawer-fuel.available i,.available .fuel-status i{background:var(--green)}.drawer-fuel.unavailable i,.unavailable .fuel-status i{background:var(--red)}.drawer-fuel.not_offered{opacity:.52}.drawer-fuel small{color:var(--muted)}.region-shape{transition:fill-opacity .2s,opacity .2s}.region-dim{opacity:.25}.marker-dim{opacity:.25!important}
/* Alerts */
.alerts-page{--bg:var(--tg-theme-secondary-bg-color,#f2f5f8);--card:var(--tg-theme-bg-color,#fff);--ink:var(--tg-theme-text-color,#10243a);--muted:var(--tg-theme-hint-color,#657689);--blue:var(--tg-theme-button-color,#1167ee);--line:var(--tg-theme-section-separator-color,#dce4ec)}.alerts-page .surface,.alerts-page .choice-card{background:var(--card)}
.product-hero{display:grid;grid-template-columns:1fr auto;gap:40px;align-items:end;padding:30px 0 42px}.product-hero h1,.station-hero h1,.admin-head h1{font-size:clamp(38px,6vw,68px);line-height:.99;letter-spacing:-.055em;margin:0 0 18px;max-width:920px}.product-hero p:last-child,.admin-head p{font-size:17px;color:var(--muted);margin:0;max-width:720px}.hero-proof{width:150px;height:150px;background:var(--navy);color:#fff;border-radius:40px;padding:24px;display:flex;flex-direction:column;justify-content:end;transform:rotate(3deg)}.hero-proof strong{font-size:33px}.hero-proof span{color:#b5c5d7;font-size:11px}.builder-grid{display:grid;grid-template-columns:minmax(0,640px) 1fr;gap:20px;align-items:start}.builder-card{padding:30px}.step{display:flex;gap:14px;margin-bottom:18px}.step-number{display:grid;place-items:center;flex:0 0 32px;height:32px;border-radius:10px;background:#eaf2ff;color:var(--blue);font-weight:900}.step h2{margin:0;font-size:21px}.step p{margin:3px 0 0;color:var(--muted);font-size:12px}.builder-card fieldset{border:0;padding:0;margin:0 0 34px}.fuel-choices{display:grid;grid-template-columns:1fr 1fr;gap:9px}.choice-card{position:relative;display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:10px;border:1px solid var(--line);border-radius:14px;padding:12px;cursor:pointer;background:#fff}.choice-card input,.region-grid input,.chips input,.segmented input{position:absolute;opacity:0;pointer-events:none}.choice-card:has(input:checked){border-color:var(--blue);background:#f3f7ff;box-shadow:0 0 0 2px rgba(17,103,238,.1)}.fuel-octane{height:42px;display:grid;place-items:center;background:var(--navy);color:#fff;border-radius:11px;font-size:12px;font-weight:900}.choice-card>span:nth-child(3){display:grid}.choice-card b{color:var(--ink);font-size:13px}.choice-card small{color:var(--muted);font-size:10px}.choice-check{width:21px;height:21px;display:grid;place-items:center;border:1px solid var(--line);border-radius:7px;color:transparent}.choice-card input:checked~.choice-check{background:var(--blue);color:#fff;border-color:var(--blue)}
.segmented{display:grid;grid-template-columns:1fr 1fr;background:#eef2f6;border-radius:12px;padding:4px;margin-bottom:15px}.segmented.three{grid-template-columns:repeat(3,1fr)}.segmented span{display:block;padding:9px;text-align:center;border-radius:9px;cursor:pointer;color:var(--muted)}.segmented input:checked+span{background:#fff;color:var(--navy);box-shadow:0 3px 9px rgba(20,42,65,.09)}.region-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.region-grid label{position:relative;display:flex;justify-content:space-between;align-items:center;padding:12px;border:1px solid var(--line);border-radius:13px;cursor:pointer}.region-grid label:has(input:checked){border-color:var(--blue);background:#f3f7ff}.region-grid span{display:grid}.region-grid b{font-size:12px;color:var(--ink)}.region-grid small{font-size:9px;color:var(--muted)}.region-grid i{font-style:normal;color:transparent}.region-grid input:checked~i{color:var(--blue)}.mode-panel{padding:16px;border:1px solid var(--line);border-radius:14px}.mode-panel>p{margin-top:0;color:var(--muted)}.chips{display:flex;gap:7px;flex-wrap:wrap}.chips label span{display:block;padding:8px 12px;border:1px solid var(--line);border-radius:999px;cursor:pointer}.chips input:checked+span{background:var(--blue);border-color:var(--blue);color:#fff}.station-choices{max-height:260px;overflow:auto;display:grid;gap:6px;margin-top:10px}.station-choice{display:flex;gap:8px;align-items:center;padding:8px;border-bottom:1px solid var(--line)}.station-choice input{width:auto;min-height:0}.submit-button{font-size:15px;justify-content:space-between;padding-inline:18px}.submit-button i{font-style:normal;font-size:20px}.result{margin-top:14px;padding:14px 16px;border-radius:13px;background:#eaf3ff;color:#244a70;font-weight:700}.result.error-box{background:var(--red-bg);color:#8b2e2e}.result.success{background:var(--green-bg);color:#176b4e}.builder-map{position:sticky;top:20px}.alert-map{height:720px;border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.map-note{position:absolute;z-index:500;top:16px;left:16px;padding:12px 14px;display:flex;gap:8px;align-items:center}.map-note>span:last-child{display:grid}.map-note b{font-size:11px}.map-note small{font-size:9px;color:var(--muted)}.subscriptions-panel{padding:22px;margin-bottom:20px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:16px}.section-title h2{margin:0;font-size:24px;letter-spacing:-.025em}.soft-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#edf2f6;color:#52667a;font-size:10px;font-weight:850}.soft-badge.success{background:var(--green-bg);color:var(--green)}.subscription-list{display:grid;gap:8px;margin-top:15px}.subscription-item{display:grid;grid-template-columns:1fr auto;gap:12px;padding:13px;border:1px solid var(--line);border-radius:13px}.subscription-item p{margin:0;font-size:12px}.subscription-actions{display:flex;gap:5px}.subscription-actions button{border:0;background:#eef3f7;border-radius:9px;padding:7px;cursor:pointer}.skeleton-line{height:14px;border-radius:7px;background:linear-gradient(90deg,#edf1f4,#f8fafb,#edf1f4);background-size:200% 100%;animation:shimmer 1.4s infinite}.skeleton-line.short{width:55%}
/* Station */
.station-hero{display:flex;justify-content:space-between;gap:30px;align-items:end;padding:24px 0 40px;border-bottom:1px solid var(--line)}.station-hero h1{font-size:clamp(36px,6vw,64px)}.back-link{display:inline-block;margin-bottom:26px;font-weight:750;font-size:12px}.station-address{color:var(--muted);font-size:16px}.freshness-pill{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;background:var(--green-bg);color:var(--green);border-radius:999px;font-size:10px;font-weight:800}.freshness-pill span{width:7px;height:7px;border-radius:50%;background:var(--green)}.freshness-pill.stale{background:var(--amber-bg);color:var(--amber)}.route-button{background:var(--navy);color:#fff;border-color:var(--navy)}main>.section-title{margin:34px 0 16px}.fuel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:11px}.fuel-card{padding:18px;box-shadow:none}.fuel-card-top{display:flex;justify-content:space-between;align-items:center}.fuel-name{font-weight:900;background:var(--navy);color:#fff;border-radius:9px;padding:6px 8px}.fuel-status{display:flex;align-items:center;gap:6px;font-size:10px;font-weight:800}.fuel-card>strong{font-size:30px;display:block;margin:20px 0 3px;letter-spacing:-.04em}.fuel-card>strong small{font-size:11px;color:var(--muted)}.fuel-card p,.fuel-card time{margin:0;color:var(--muted);font-size:10px}.fuel-card time{display:block;margin-top:12px}.fuel-card.not_offered{opacity:.62}.analytics-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px;margin-top:28px}.chart-card,.timeline-card{padding:24px;min-width:0}.chart-card canvas{margin-top:20px;max-height:380px}.timeline{display:grid;gap:0;margin-top:16px;max-height:390px;overflow:auto}.timeline-row{display:grid;grid-template-columns:105px 1fr auto;gap:8px;padding:10px 0;border-bottom:1px solid var(--line);font-size:10px}.timeline-row time{color:var(--muted)}.event-status{display:flex;align-items:center;gap:5px}.event-status i{width:6px;height:6px;border-radius:50%;background:var(--amber)}.event-status.available i{background:var(--green)}.event-status.unavailable i{background:var(--red)}
/* Admin */
.admin-head{display:flex;justify-content:space-between;align-items:end;padding:20px 0 34px}.admin-head h1{font-size:clamp(38px,5vw,58px)}.ops-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.ops-card{padding:18px;display:flex;gap:13px;align-items:flex-start}.ops-icon{width:38px;height:38px;border-radius:11px;background:#eaf2ff;color:var(--blue);display:grid;place-items:center;font-weight:900}.ops-card div{display:grid}.ops-card small,.ops-card p{font-size:10px;color:var(--muted);margin:0}.ops-card strong{font-size:21px}.admin-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:16px}.admin-card,.table-card{padding:24px}.admin-card .section-title{margin-bottom:18px}.stack{display:grid;gap:12px}.kv{display:grid;grid-template-columns:130px 1fr;gap:7px;font-size:11px;margin-top:18px}.kv dt{color:var(--muted)}.kv dd{margin:0;overflow-wrap:anywhere}.delivery-list{display:grid;gap:8px}.delivery-list>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;border-bottom:1px solid var(--line);padding:9px}.delivery-list .status-dot{margin:0}.table-card{margin-top:16px}.table-wrap{overflow:auto;margin:8px -8px -8px}table{border-collapse:collapse;width:100%;font-size:11px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:11px 8px;vertical-align:top}th{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.pill{display:inline-block;padding:4px 8px;border-radius:999px;background:#edf2f6}.pill.success{background:var(--green-bg);color:var(--green)}.pill.error,.pill.rejected{background:var(--red-bg);color:var(--red)}code{overflow-wrap:anywhere}.error{color:var(--red)}.admin-message{margin-bottom:16px}
.login-body{min-height:100vh;background:var(--navy);display:grid;place-items:center;padding:24px}.login-shell{width:min(900px,100%);display:grid;grid-template-columns:1fr 390px;gap:70px;align-items:center}.login-copy{color:#fff}.login-copy img{margin-bottom:22px}.login-copy h1{font-size:58px;line-height:.95;letter-spacing:-.055em;margin:0 0 18px}.login-copy p:last-child{color:#aebed0}.login-card{padding:30px}.login-card h2{font-size:24px;margin:18px 0}.login-card .button{margin-top:14px}
@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;transition:none!important}}
@media(max-width:960px){.topbar{grid-template-columns:1fr auto}.topbar nav{display:none}.top-cta{display:block}.map-heading{left:24px;top:24px}.filter-panel{top:auto;bottom:20px;left:20px;width:310px}.map-metrics{left:auto;right:20px}.builder-grid,.analytics-grid,.admin-grid{grid-template-columns:1fr}.builder-map{position:relative;top:auto;order:-1}.alert-map{height:430px}.ops-grid{grid-template-columns:1fr 1fr}.hero-proof{display:none}.login-shell{grid-template-columns:1fr}.login-copy{display:none}}
@media(max-width:620px){:root{--topbar:60px}.topbar{padding:0 14px}.brand img{width:32px;height:32px}.top-cta{font-size:11px;padding:9px 12px}.status-banner{font-size:10px;padding:8px 12px}main{padding:22px 14px 50px}footer{display:grid;gap:4px;padding:20px 14px}.map-dashboard{height:calc(100dvh - var(--topbar));min-height:520px}.map-heading{top:12px;left:12px;padding:13px 15px}.map-heading h1{font-size:24px}.map-heading .eyebrow{display:none}.map-metrics{left:12px;right:12px;bottom:76px;overflow:auto}.map-metrics article{min-width:105px}.mobile-filter-button{display:block;position:absolute;z-index:550;right:12px;top:12px;border:0;background:var(--navy);color:#fff;border-radius:12px;padding:11px 15px;font-weight:800}.filter-panel{position:fixed;z-index:1300;left:0;right:0;bottom:0;top:auto;width:auto;border-radius:24px 24px 0 0;padding:12px 18px calc(18px + env(safe-area-inset-bottom));transform:translateY(110%);transition:transform .24s}.filter-panel.open{transform:none}.panel-handle{display:block;width:40px;height:4px;background:#d3dce4;border-radius:5px;margin:0 auto 9px}.panel-close{display:block;font-size:23px}.station-drawer{position:fixed;z-index:1250;left:0;right:0;bottom:0;top:auto;width:auto;max-height:70dvh;border-radius:24px 24px 0 0;padding-bottom:calc(22px + env(safe-area-inset-bottom))}.product-hero{grid-template-columns:1fr;padding:16px 0 28px}.product-hero h1,.station-hero h1,.admin-head h1{font-size:38px}.product-hero p:last-child{font-size:14px}.builder-card{padding:18px;margin:0 -4px}.fuel-choices,.region-grid{grid-template-columns:1fr}.builder-map{margin:0 -14px}.alert-map{height:300px;border-radius:0}.map-note{left:12px}.step h2{font-size:18px}.subscriptions-panel{padding:17px}.station-hero,.admin-head{align-items:flex-start;flex-direction:column}.route-button{width:100%}.fuel-grid{grid-template-columns:1fr 1fr}.fuel-card{padding:13px}.fuel-card>strong{font-size:24px}.analytics-grid{margin-top:18px}.chart-card,.timeline-card{padding:16px}.ops-grid{grid-template-columns:1fr}.admin-card,.table-card{padding:17px}.login-shell{display:block}.login-card{padding:24px}.timeline-row{grid-template-columns:1fr auto}.timeline-row time{grid-column:1/-1}.alerts-page{background:var(--tg-theme-secondary-bg-color,var(--bg));color:var(--tg-theme-text-color,var(--ink))}.telegram-miniapp .topbar,.telegram-miniapp footer{display:none}.telegram-miniapp main{padding-top:calc(16px + var(--tg-safe-area-inset-top,0px));padding-bottom:calc(36px + var(--tg-safe-area-inset-bottom,0px))}}
