:root{--bg: #f1f0ea;--surface: #ffffff;--surface-2: #faf9f5;--ink: #15211c;--ink-2: #57625b;--ink-3: #68736c;--line: #e6e4da;--line-2: #efede5;--brand: #0c6b4f;--brand-600: #0a5b43;--brand-700: #084a37;--brand-bg: #e4f0ea;--brand-tint: #f0f6f3;--gold: #80540d;--gold-strong: #b5821f;--gold-bg: #f8efd9;--cheap: #0b7a4b;--cheap-bg: #e3f3ea;--mid: #a9690e;--mid-bg: #f8efd9;--exp: #ad3a2c;--exp-bg: #f8e7e3;--radius-sm: 10px;--radius: 14px;--radius-lg: 20px;--radius-xl: 26px;--shadow-sm: 0 1px 2px rgba(18, 32, 26, .05), 0 2px 6px rgba(18, 32, 26, .06);--shadow-md: 0 6px 22px rgba(18, 32, 26, .1);--shadow-lg: 0 18px 50px rgba(18, 32, 26, .18);--sheet-w: 416px;--ease: cubic-bezier(.4, 0, .2, 1);--spring: cubic-bezier(.34, 1.32, .54, 1)}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Hanken Grotesk,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden;touch-action:manipulation}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}button{font-family:inherit}:where(button,[role=button],[role=tab],input,select,textarea,a[href]):focus-visible{outline:3px solid #2b8f70;outline-offset:2px}.mono{font-family:Spline Sans Mono,ui-monospace,monospace}.tnum{font-variant-numeric:tabular-nums}.app{height:100%;position:relative;overflow:hidden}.map-wrap{position:fixed;top:0;right:0;bottom:0;left:0}.brand-head{display:flex;align-items:center;gap:10px}.brand-mark{width:34px;height:34px;border-radius:10px;background:var(--brand);color:#fff;display:grid;place-items:center;flex:none;box-shadow:0 2px 8px #0c6b4f59}.brand-name{font-weight:800;font-size:17px;letter-spacing:-.02em;line-height:1;white-space:nowrap}.brand-sub{font-size:11.5px;color:var(--ink-3);font-weight:600;margin-top:3px;letter-spacing:.01em}.segmented{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;background:var(--surface-2);border:1px solid var(--line);border-radius:13px;padding:4px}.seg-btn{display:flex;align-items:center;justify-content:center;gap:7px;border:none;background:transparent;cursor:pointer;padding:9px 4px;border-radius:9px;font-weight:700;font-size:13.5px;color:var(--ink-2);transition:color .15s,background .2s,box-shadow .2s;min-height:44px}.seg-btn svg{width:17px;height:17px}.seg-btn:hover{color:var(--ink)}.seg-btn.active{background:var(--surface);color:var(--brand);box-shadow:var(--shadow-sm)}.field{display:flex;flex-direction:column;gap:6px;position:relative}.field-label{font-size:11.5px;font-weight:700;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.input,.select{font:inherit;font-size:16px;font-weight:500;padding:13px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);width:100%;transition:border-color .15s,box-shadow .15s}.input::placeholder{color:var(--ink-3);font-weight:500}.input:focus,.select:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3.5px var(--brand-tint)}.addr-row{display:flex;align-items:stretch;gap:10px}.addr-dot{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;align-self:center;font-weight:800;font-size:12px;color:#fff}.addr-dot.a{background:var(--ink)}.addr-dot.b{background:var(--brand)}.addr-dot.w{background:var(--ink-3);width:22px;height:22px;font-size:11px}.addr-field{flex:1;min-width:0;position:relative}.addr-field .input{padding-right:58px}.addr-icon-btn{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:var(--surface-2);color:var(--ink-2);width:44px;height:44px;border-radius:10px;cursor:pointer;display:grid;place-items:center;transition:background .15s,color .15s}.addr-icon-btn:hover{background:var(--brand-bg);color:var(--brand)}.addr-icon-btn svg{width:16px;height:16px}.addr-spin{position:absolute;right:14px;top:50%;transform:translateY(-50%);width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .7s linear infinite;pointer-events:none}.addr-spin.static{position:static;transform:none;right:auto;top:auto}.addr-suggestions{list-style:none;margin:6px 0 0;padding:5px;position:absolute;top:100%;left:0;right:0;z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-md);max-height:264px;overflow-y:auto}.addr-suggestions li{display:flex;align-items:center;gap:11px;padding:11px;border-radius:10px;cursor:pointer}.addr-suggestions li:hover,.addr-suggestions li.active{background:var(--brand-tint)}.addr-suggestions .sug-ic{color:var(--ink-3);display:grid;place-items:center;flex:none}.addr-suggestions .sug-ic svg{width:18px;height:18px}.addr-suggestions .sug-main{font-weight:600;font-size:14.5px;line-height:1.35}.addr-suggestions .geocode-attribution{display:block;padding:7px 11px 5px;color:var(--ink-3);cursor:default;font-size:10.5px;font-weight:600;border-top:1px solid var(--line-2)}.addr-suggestions .geocode-attribution:hover{background:transparent}.addr-stack{display:flex;flex-direction:column;gap:9px}.route-point-row{display:flex;align-items:center;gap:4px;border-radius:13px;transition:background .15s,box-shadow .15s,transform .15s}.route-point-input{flex:1;min-width:0}.route-drag-handle{width:44px;height:44px;flex:none;display:grid;place-items:center;border:none;border-radius:11px;background:transparent;color:var(--ink-3);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.route-drag-handle:hover{color:var(--brand);background:var(--brand-tint)}.route-drag-handle:focus-visible{outline:3px solid var(--brand-tint);color:var(--brand)}.route-drag-handle:active,.route-point-row.dragging .route-drag-handle{cursor:grabbing}.route-point-row.dragging{background:var(--brand-tint);box-shadow:0 5px 16px #0c6b4f24;transform:scale(1.01);z-index:3}.route-address-list.reordering{-webkit-user-select:none;user-select:none}.route-order-hint{margin:-10px 0 0 36px;color:var(--ink-3);font-size:11.5px;font-weight:600}.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}.ghost-row{display:flex;gap:8px;flex-wrap:wrap}.ghost-btn{display:inline-flex;align-items:center;gap:6px;border:1.5px dashed var(--line);background:transparent;color:var(--ink-2);font-weight:700;font-size:13px;padding:9px 13px;border-radius:11px;cursor:pointer;transition:border-color .15s,color .15s,background .15s;min-height:44px}.ghost-btn:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-tint)}.ghost-btn:disabled{opacity:.55;cursor:not-allowed;border-color:var(--line);color:var(--ink-3)}.ghost-btn svg{width:15px;height:15px}.link-import{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:12px}.link-import .input{flex:1 1 180px;font-size:14px;padding:11px 12px}.link-import .act.primary{flex:none}.link-import .muted.small{flex-basis:100%;margin:0}.fuel-scroll{display:flex;gap:8px;flex-wrap:wrap}.fuel-pill{flex:none;border:1.5px solid var(--line);background:var(--surface);color:var(--ink-2);font-weight:700;font-size:13.5px;padding:9px 15px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:all .15s;min-height:44px}.fuel-pill:hover{border-color:var(--brand);color:var(--brand)}.fuel-pill.active{background:var(--brand);color:#fff;border-color:var(--brand)}.fuel-pill{display:inline-flex;align-items:center;gap:6px}.fuel-pill svg{width:14px;height:14px}.fuel-pill.electric:hover{border-color:#6d28d9;color:#6d28d9}.fuel-pill.electric.active{background:#6d28d9;border-color:#6d28d9;color:#fff}.disclosure{border:1.5px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}.disclosure-head{display:flex;align-items:center;gap:11px;width:100%;border:none;background:transparent;cursor:pointer;padding:13px 15px;text-align:left;min-height:48px}.disclosure-head .d-ic{color:var(--ink-2);display:grid;place-items:center;flex:none}.disclosure-head .d-ic svg{width:18px;height:18px}.disclosure-title{font-weight:700;font-size:14px;flex:1}.disclosure-meta{font-size:12.5px;color:var(--ink-3);font-weight:600}.disclosure-chev{color:var(--ink-3);transition:transform .2s var(--ease);display:grid;place-items:center}.disclosure-chev svg{width:17px;height:17px}.disclosure.open .disclosure-chev{transform:rotate(180deg)}.disclosure-body{padding:4px 15px 16px;display:flex;flex-direction:column;gap:16px;border-top:1px solid var(--line-2)}.range-block{display:flex;flex-direction:column;gap:9px}.range-top{display:flex;align-items:baseline;justify-content:space-between}.range-top .r-label{font-size:13px;font-weight:700;color:var(--ink-2)}.range-top .r-value{font-size:13.5px;font-weight:800;color:var(--brand)}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:6px;background:var(--line);border-radius:999px;outline:none;padding:0;margin:0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--surface);border:2.5px solid var(--brand);cursor:pointer;box-shadow:var(--shadow-sm);transition:transform .1s}input[type=range]::-webkit-slider-thumb:active{transform:scale(1.12)}input[type=range]::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--surface);border:2.5px solid var(--brand);cursor:pointer}.range-ends{display:flex;justify-content:space-between;font-size:11.5px;color:var(--ink-3);font-weight:600}.num-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.num-field{display:flex;flex-direction:column;gap:6px}.num-field label{font-size:12px;font-weight:700;color:var(--ink-2)}.num-field input{font:inherit;font-weight:600;font-size:15px;padding:11px 12px;border:1.5px solid var(--line);border-radius:11px;background:var(--surface);width:100%}.num-field input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.tank-gauge{display:flex;flex-direction:column;gap:8px}.tank-track{height:12px;border-radius:999px;background:var(--line);overflow:hidden;position:relative}.tank-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--brand-600),var(--brand));transition:width .25s var(--ease)}.btn-primary{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;border:none;cursor:pointer;background:var(--brand);color:#fff;font-weight:800;font-size:16px;letter-spacing:-.01em;padding:16px;border-radius:15px;white-space:nowrap;box-shadow:0 6px 18px #0c6b4f52;transition:background .15s,transform .08s,box-shadow .15s}.btn-primary:hover{background:var(--brand-600)}.btn-primary:active{transform:translateY(1px)}.btn-primary:disabled{background:#aab8b1;box-shadow:none;cursor:not-allowed}.btn-primary svg{width:19px;height:19px}.zone-actions{display:flex;gap:8px;align-items:stretch}.zone-actions .btn-primary{flex:1;width:auto}.zone-hint{line-height:1.5;margin:0}.route-summary{border:1.5px solid var(--line);border-radius:16px;background:var(--surface);padding:14px 15px;position:relative}.rs-line{display:flex;align-items:center;gap:11px}.rs-line+.rs-line{margin-top:11px}.rs-rail{position:relative}.rs-rail:before{content:"";position:absolute;left:12.5px;top:26px;bottom:26px;width:2px;background:repeating-linear-gradient(var(--line) 0 3px,transparent 3px 7px)}.rs-text{font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rs-rail .rs-line:first-child .rs-text{padding-right:76px}.rs-edit{position:absolute;top:12px;right:12px;display:inline-flex;align-items:center;gap:5px;border:1.5px solid var(--line);background:var(--surface);color:var(--brand);font-weight:700;font-size:12.5px;padding:6px 11px;border-radius:10px;cursor:pointer}.rs-edit:hover{background:var(--brand-tint);border-color:var(--brand)}.rs-edit svg{width:13px;height:13px}.hero{border-radius:20px;padding:2px;background:linear-gradient(150deg,var(--gold-strong),var(--gold) 55%,#caa24a);box-shadow:0 10px 30px #9a6a1238}.hero-inner{background:var(--surface);border-radius:18px;padding:16px 17px}.hero-tag{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;background:var(--gold-bg);color:var(--gold);font-weight:800;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;padding:5px 11px;border-radius:999px;margin-bottom:12px}.hero-tag svg{width:13px;height:13px}.hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.hero-brand{font-weight:800;font-size:19px;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-town{font-size:13.5px;color:var(--ink-2);font-weight:600;margin-top:2px}.hero-price{text-align:right;flex:none}.hero-price .p{font-weight:800;font-size:24px;letter-spacing:-.02em;line-height:1}.hero-price .u{font-size:12px;color:var(--ink-3);font-weight:700;margin-top:3px;white-space:nowrap}.hero-savings{display:flex;align-items:center;gap:12px;margin:14px 0;padding:13px 15px;background:var(--cheap-bg);border-radius:14px}.hero-savings .big{font-weight:800;font-size:26px;letter-spacing:-.02em;color:var(--cheap);line-height:1;white-space:nowrap}.hero-savings .lbl{font-size:13px;color:var(--ink-2);font-weight:600;line-height:1.3}.hero-why{display:flex;flex-wrap:wrap;gap:7px 9px;margin-bottom:15px}.why-chip{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);font-weight:600;font-size:12.5px;padding:6px 11px;border-radius:999px}.why-chip svg{width:14px;height:14px;color:var(--ink-3)}.why-chip.open{color:var(--cheap);background:var(--cheap-bg);border-color:transparent}.why-chip.open svg{color:var(--cheap)}.hero-actions{display:flex;gap:9px}.act{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1.5px solid var(--line);background:var(--surface);color:var(--ink);font-weight:700;font-size:13.5px;padding:11px 12px;border-radius:12px;cursor:pointer;transition:all .15s;white-space:nowrap;min-height:44px}.act:hover{border-color:var(--brand);color:var(--brand)}.act svg{width:16px;height:16px}.act.primary{flex:1;background:var(--brand);color:#fff;border-color:var(--brand);box-shadow:0 4px 12px #0c6b4f40}.act.primary:hover{background:var(--brand-600);color:#fff}.act.icon-only{flex:none;width:44px;padding:11px 0}.act.fav.on{color:#d8456b;border-color:#f0bacb;background:#fdf1f5}.act.fav.on svg{fill:#d8456b}.act:disabled{opacity:.5;cursor:not-allowed}.results-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 0 2px}.results-count{font-weight:700;font-size:14px}.results-count b{color:var(--ink)}.results-ref{font-size:12px;color:var(--ink-3);font-weight:600}.head-right{display:flex;align-items:center;gap:8px}.share-btn{display:inline-flex;align-items:center;gap:5px;border:1.5px solid var(--line);background:var(--surface);color:var(--brand);font-weight:700;font-size:12px;padding:6px 10px;border-radius:10px;cursor:pointer;white-space:nowrap;min-height:44px}.share-btn:hover{border-color:var(--brand);background:var(--brand-tint)}.share-btn svg{width:14px;height:14px}.toolbar{display:flex;gap:8px;align-items:flex-start}.chip-scroll{display:flex;gap:7px;flex:1;min-width:0;flex-wrap:wrap}.sort-chip{flex:none;border:1.5px solid var(--line);background:var(--surface);color:var(--ink-2);font-weight:700;font-size:12.5px;padding:7px 13px;border-radius:999px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;min-height:44px}.sort-chip svg{width:14px;height:14px}.sort-chip.active{background:var(--ink);color:#fff;border-color:var(--ink)}.filter-toggle{flex:none;width:44px;height:44px;border-radius:11px;border:1.5px solid var(--line);background:var(--surface);display:grid;place-items:center;cursor:pointer;color:var(--ink-2);position:relative}.filter-toggle:hover{border-color:var(--brand);color:var(--brand)}.filter-toggle.on{background:var(--ink);color:#fff;border-color:var(--ink)}.filter-toggle svg{width:17px;height:17px}.filter-toggle .dot{position:absolute;top:-4px;right:-4px;width:16px;height:16px;background:var(--gold);color:#fff;border-radius:50%;border:2px solid var(--surface);font-size:9px;font-weight:800;display:grid;place-items:center}.filter-panel{display:flex;gap:10px;padding:12px;margin-top:2px;background:var(--surface-2);border:1px solid var(--line);border-radius:14px}.filter-panel .select{font-size:13.5px;padding:10px 11px}.filter-panel input[type=number]{width:104px;flex:none;font:inherit;font-weight:600;font-size:13.5px;padding:10px 11px;border:1.5px solid var(--line);border-radius:11px;background:var(--surface)}.filter-panel input[type=number]:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-tint)}.filter-clear,.show-more{min-height:44px;border:1.5px solid var(--line);border-radius:11px;background:var(--surface);color:var(--brand);font:inherit;font-size:13px;font-weight:800;padding:8px 12px;cursor:pointer}.vehicle-toggle{width:100%;min-height:52px;padding:8px 0;border:none;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:14px;color:var(--ink);text-align:left;cursor:pointer}.vehicle-toggle-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.vehicle-toggle-copy strong{font-size:13.5px}.vehicle-toggle-copy small{color:var(--ink-3);font-size:11.5px;line-height:1.35}.switch-track{width:48px;height:28px;padding:3px;border-radius:999px;flex:none;background:var(--line);transition:background .18s;display:flex;align-items:center}.switch-thumb{width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #12201a47;transition:transform .18s var(--spring)}.vehicle-toggle[aria-checked=true] .switch-track{background:var(--brand)}.vehicle-toggle[aria-checked=true] .switch-thumb{transform:translate(20px)}.vehicle-toggle:focus-visible{outline:3px solid var(--brand-tint);outline-offset:2px;border-radius:10px}.vehicle-disabled-note{margin:0;padding:12px;border-radius:11px;background:var(--surface-2);color:var(--ink-2);font-size:12.5px;line-height:1.45}.filter-clear:hover,.show-more:hover{border-color:var(--brand);background:var(--brand-tint)}.show-more{width:100%}.station-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.st-card{border:1.5px solid var(--line);border-radius:16px;background:var(--surface);cursor:pointer;transition:border-color .12s,box-shadow .12s,transform .08s;overflow:hidden}.st-card:hover{border-color:#cdd4cf;box-shadow:var(--shadow-sm)}.st-card{position:relative}.st-card-select{display:block;width:100%;color:inherit;background:transparent;cursor:pointer;border-radius:14px 14px 0 0}.st-card.sel{border-color:var(--brand);background:var(--brand-tint);box-shadow:0 0 0 3px var(--brand-bg),var(--shadow-sm)}.st-card.sel:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:4px;background:var(--brand);border-radius:0 4px 4px 0}.st-card.cheapest{border-color:var(--gold-strong);box-shadow:0 0 0 3px var(--gold-bg)}.st-card.cheapest.sel{box-shadow:0 0 0 3px var(--brand-bg),var(--shadow-sm)}.st-card.unreachable{opacity:.6}.st-body{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:13px 14px}.st-main{min-width:0;display:flex;flex-direction:column;gap:3px}.st-brand-row{display:flex;align-items:center;gap:8px}.st-logo{width:26px;height:26px;border-radius:7px;flex:none;display:grid;place-items:center;font-weight:800;font-size:12px;color:#fff}.st-brand{font-weight:800;font-size:15.5px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.st-meta{font-size:12.5px;color:var(--ink-2);font-weight:500}.st-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}.tag{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-size:11.5px;font-weight:700;padding:3px 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}.tag svg{width:12px;height:12px}.tag.gold{background:var(--gold-bg);color:var(--gold)}.tag.open{background:var(--cheap-bg);color:var(--cheap)}.tag.closed{background:var(--exp-bg);color:var(--exp)}.st-price{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:4px}.st-price .p{font-weight:800;font-size:19px;letter-spacing:-.02em;line-height:1}.st-price .save{font-size:12px;font-weight:800}.st-price .save.pos{color:var(--cheap)}.st-price .save.neg{color:var(--ink-3)}.st-actions{display:flex;gap:8px;padding:0 14px 13px}.tier-dot{width:9px;height:9px;border-radius:50%;flex:none}.tier-dot.cheap{background:var(--cheap)}.tier-dot.mid{background:var(--mid)}.tier-dot.exp{background:var(--exp)}.autonomy{display:flex;align-items:center;gap:11px;padding:12px 14px;border-radius:14px;font-size:13.5px;font-weight:600;line-height:1.35}.autonomy svg{width:20px;height:20px;flex:none}.autonomy.ok{background:var(--cheap-bg);color:var(--brand-700)}.autonomy.warn{background:#fbf0d8;color:#8a5a00}.autonomy b{font-weight:800}.state{text-align:center;color:var(--ink-2);padding:40px 20px;display:flex;flex-direction:column;align-items:center;gap:14px}.state .state-ic{width:56px;height:56px;border-radius:16px;background:var(--surface-2);display:grid;place-items:center;color:var(--ink-3)}.state .state-ic svg{width:26px;height:26px}.state h4{margin:0;font-size:16px;font-weight:800;color:var(--ink)}.state p{margin:0;font-size:14px;max-width:280px;line-height:1.5}.state.err .state-ic{background:var(--exp-bg);color:var(--exp)}.refresh-warning{margin:0;padding:10px 12px;border-radius:10px;background:var(--exp-bg);color:var(--exp);font-size:13px;font-weight:700}.spinner{width:30px;height:30px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--brand);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.freshness{display:flex;align-items:center;justify-content:center;gap:7px;font-size:11.5px;color:var(--ink-3);font-weight:600;margin-top:16px;padding-top:14px;border-top:1px solid var(--line-2)}.freshness svg{width:14px;height:14px}.panel-content,.panel-section{display:flex;flex-direction:column;gap:16px}@media(min-width:900px){.sheet{position:fixed;top:calc(var(--topbar-h, 104px) + 28px);left:16px;bottom:16px;width:var(--sheet-w);background:var(--surface);border-radius:22px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;z-index:20;border:1px solid var(--line)}.sheet-handle{display:none}.sheet-scroll{flex:1;overflow-y:auto;padding:14px 20px 22px}}@media(max-width:899px){.sheet{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-radius:24px 24px 0 0;box-shadow:0 -10px 40px #12201a29;display:flex;flex-direction:column;height:52dvh;transition:height .34s var(--spring)}.sheet.collapsed{height:152px}.sheet.half{height:52dvh}.sheet.full{height:calc(100dvh - var(--topbar-h, 108px) - 20px);min-height:280px}.sheet-handle{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-height:44px;padding:10px 0 6px;border:none;background:transparent;cursor:grab;flex:none;touch-action:none;position:relative}.sheet-handle:before{content:"";position:absolute;top:-10px;right:0;bottom:-6px;left:0}.sheet-handle .grip{width:44px;height:5px;border-radius:999px;background:#cfd4cd}.sheet-scroll{flex:1;overflow-y:auto;padding:4px 16px calc(20px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}.fuel-scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -16px;padding:2px 16px 6px;-webkit-overflow-scrolling:touch}.fuel-scroll::-webkit-scrollbar{display:none}.panel-section>.btn-primary{position:sticky;bottom:calc(2px + env(safe-area-inset-bottom));z-index:5;box-shadow:0 6px 22px #0c6b4f73}.chip-scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}.chip-scroll::-webkit-scrollbar{display:none}}.sheet-count{display:inline-flex;align-items:center;gap:6px;background:var(--brand-bg);color:var(--brand-700);font-size:12px;font-weight:800;padding:5px 11px;border-radius:999px;white-space:nowrap}.map{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#e9ebe4}.price-pin{font-family:Spline Sans Mono,monospace;font-weight:600;font-size:13px;line-height:1;white-space:nowrap;position:relative;background:var(--surface);color:var(--ink);border:1.5px solid;border-radius:999px;padding:8px 12px;box-shadow:0 2px 6px #12201a38;display:inline-flex;align-items:center;transition:transform .12s var(--spring),background .12s,color .12s}.price-pin:after{content:"";position:absolute;left:50%;bottom:-6px;transform:translate(-50%);border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid;border-top-color:inherit}.price-pin.cheap{border-color:var(--cheap);color:var(--cheap)}.price-pin.mid{border-color:var(--mid);color:var(--mid)}.price-pin.exp{border-color:var(--exp);color:var(--exp)}.gr-marker{min-width:44px;min-height:44px;background:none;border:none;padding:0;cursor:pointer;font:inherit;line-height:0;display:grid;place-items:center}.gr-marker.sel{z-index:9;position:relative}.gr-marker.sel .price-pin{transform:scale(1.22);box-shadow:0 6px 18px #12201a59;font-weight:700}.gr-marker.sel .price-pin,.gr-marker.sel .price-pin.mid{background:var(--ink);border-color:var(--ink);color:#fff}.gr-marker.sel .price-pin.cheap{background:var(--cheap);border-color:var(--cheap);color:#fff}.gr-marker.sel .price-pin.exp{background:var(--exp);border-color:var(--exp);color:#fff}.gr-marker.sel .price-pin:after{border-top-color:inherit}.gr-marker.rec{z-index:8}.gr-marker.rec .price-pin{background:var(--gold);color:#fff;border-color:var(--gold-strong);box-shadow:0 4px 12px #9a6a1266}.gr-marker.rec .price-pin:after{border-top-color:var(--gold)}.gr-marker.rec.sel .price-pin{background:var(--gold-strong);border-color:var(--gold-strong);box-shadow:0 6px 18px #9a6a1280}.gr-marker.dim .price-pin{opacity:.5}.gr-marker.far .price-pin{opacity:.45}.gr-marker.sel .price-pin{opacity:1}.endpoint-mk{display:flex;flex-direction:column;align-items:center}.endpoint-mk .ep-dot{width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);display:grid;place-items:center;box-shadow:0 3px 8px #12201a59;border:2.5px solid #fff}.endpoint-mk .ep-dot span{transform:rotate(45deg);color:#fff;font-weight:800;font-size:13px}.endpoint-mk.a .ep-dot{background:var(--ink)}.endpoint-mk.b .ep-dot{background:var(--brand)}.endpoint-mk.w .ep-dot{background:#5b4bb7}.charger-pin{display:inline-flex;align-items:center;gap:4px;font-family:Spline Sans Mono,monospace;font-weight:600;font-size:13px;line-height:1;background:#4f46a5;color:#fff;border:1.5px solid #fff;border-radius:999px;padding:7px 11px;cursor:pointer;box-shadow:0 2px 6px #12201a4d;min-width:44px;min-height:44px}.charger-pin.fast{background:#6d28d9}.charger-pin svg{width:13px;height:13px}.charger-pin.sel{transform:scale(1.2);z-index:9;position:relative;background:#2a1f6e;box-shadow:0 6px 18px #2d1b6980}.st-logo.charger-logo{background:#6d28d9}.map-brand{position:absolute;top:14px;left:14px;z-index:12}@media(min-width:900px){.map-brand{display:none}}.map-brand .brand-pill{display:flex;align-items:center;gap:9px;background:#fffffff0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:999px;padding:7px 14px 7px 8px;box-shadow:var(--shadow-sm)}.map-brand .brand-mark{width:28px;height:28px;border-radius:8px}.map-brand .brand-mark svg{width:17px;height:17px}.map-brand .brand-name{font-size:14.5px}.maplibregl-ctrl-group{border-radius:13px!important;box-shadow:var(--shadow-md)!important;border:1px solid var(--line)!important;overflow:hidden}.maplibregl-ctrl-group button{width:44px!important;height:44px!important}.maplibregl-ctrl-group button+button{border-top:1px solid var(--line-2)!important}@media(max-width:899px){.maplibregl-ctrl-top-right{top:calc(var(--topbar-h, 108px) + env(safe-area-inset-top) + 16px)}}.maplibregl-popup-content{border-radius:14px;box-shadow:var(--shadow-md);padding:13px 15px;font-family:Hanken Grotesk,system-ui,sans-serif;border:1px solid var(--line)}.maplibregl-popup-close-button{font-size:18px;line-height:1;color:var(--ink-3);top:6px;right:8px}.maplibregl-popup-close-button:hover{color:var(--ink);background:none}.map-popup-title{font-weight:800;font-size:14.5px;padding-right:18px}.map-popup-sub{font-size:12px;color:var(--ink-2);margin:3px 0 10px;line-height:1.4;max-width:240px}.map-popup-actions{display:flex;gap:7px}.map-popup-actions .act.primary{flex:1}.detail-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#12201a6b;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center}@media(min-width:900px){.detail-backdrop{align-items:center}}.detail{background:var(--surface);width:100%;max-width:480px;border-radius:24px 24px 0 0;box-shadow:var(--shadow-lg);max-height:88vh;overflow-y:auto}@media(min-width:900px){.detail{border-radius:24px;max-height:84vh}}.detail-hero{padding:20px 20px 18px;color:#fff;position:relative;background:linear-gradient(150deg,var(--brand-600),var(--brand))}.detail-hero.gold{background:linear-gradient(150deg,var(--gold),var(--gold-strong))}.detail-close{position:absolute;top:12px;right:12px;width:44px;height:44px;border-radius:50%;border:none;background:#fff3;color:#fff;cursor:pointer;display:grid;place-items:center}.detail-close:hover{background:#ffffff52}.detail-close svg{width:18px;height:18px}.detail-brand{font-weight:800;font-size:23px;letter-spacing:-.02em;margin:0;padding-right:46px}.detail-addr{font-size:13.5px;opacity:.9;font-weight:500;margin-top:4px;line-height:1.4}.detail-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px}.detail-chip{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;background:#ffffff29;color:#fff;font-weight:700;font-size:12px;padding:5px 10px;border-radius:999px}.detail-chip svg{width:13px;height:13px}.detail-body{padding:18px 20px 22px;display:flex;flex-direction:column;gap:18px}.fuel-table{display:flex;flex-direction:column;gap:2px}.fuel-table h5{margin:0 0 8px;font-size:12px;font-weight:800;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.fuel-row{display:flex;align-items:center;justify-content:space-between;padding:11px 4px;border-bottom:1px solid var(--line-2)}.fuel-row:last-child{border-bottom:none}.fuel-row .fr-name{font-weight:600;font-size:14.5px;display:flex;align-items:center;gap:9px;white-space:nowrap}.fuel-row.active .fr-name{font-weight:800;color:var(--brand)}.fuel-row .fr-price{font-family:Spline Sans Mono,monospace;font-weight:600;font-size:15px}.fuel-row .fr-dot{width:8px;height:8px;border-radius:50%;background:var(--line)}.fuel-row.active .fr-dot{background:var(--brand)}.detail-actions{display:flex;gap:9px}.muted{color:var(--ink-2)}.small{font-size:12.5px}.divider{height:1px;background:var(--line-2);border:none;margin:0}.hidden{display:none!important}.topbar{position:fixed;z-index:25;display:flex;flex-direction:column;gap:8px}.topbar-row1{display:flex;gap:8px;align-items:stretch}.topbar-tabs{display:flex;gap:8px;align-items:center}.topbar-tabs .segmented{flex:1;min-width:0;box-shadow:var(--shadow-md);background:var(--surface)}.topbar-search{position:relative;flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:48px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-md);padding:0 8px 0 12px}.topbar-search .ts-ic{color:var(--ink-3);display:grid;place-items:center;flex:none}.topbar-search .ts-input{flex:1;min-width:0;border:none;outline:none;background:transparent;font:inherit;font-size:16px;font-weight:500;color:var(--ink)}.topbar-search .ts-input::placeholder{color:var(--ink-3);font-weight:500}.topbar-search .ts-clear{border:none;background:var(--surface-2);color:var(--ink-2);width:44px;height:44px;border-radius:10px;flex:none;cursor:pointer;display:grid;place-items:center}.topbar-search .ts-clear:hover{background:var(--brand-bg);color:var(--brand)}.topbar-search .addr-spin.static{flex:none}.topbar-search .addr-suggestions{top:calc(100% + 6px)}.route-summary-bar{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-md);padding:7px 8px 7px 13px;cursor:pointer;text-align:left}.route-summary-bar:hover{border-color:#cdd4cf}.rsb-points{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;position:relative}.rsb-points:before{content:"";position:absolute;left:4px;top:12px;bottom:12px;width:1.5px;background:repeating-linear-gradient(var(--line) 0 2px,transparent 2px 5px)}.rsb-line{display:flex;align-items:center;gap:10px;min-width:0}.rsb-dot{width:9px;height:9px;border-radius:50%;flex:none}.rsb-dot.a{background:var(--ink)}.rsb-dot.b{background:var(--brand)}.rsb-text{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rsb-edit{flex:none;width:44px;height:44px;border-radius:10px;background:var(--surface-2);color:var(--brand);display:grid;place-items:center}.fuel-chip-wrap{position:relative;flex:none}.fuel-chip{display:inline-flex;align-items:center;gap:6px;height:48px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-md);border-radius:14px;padding:0 10px 0 12px;cursor:pointer;font-weight:700;font-size:13.5px;color:var(--ink);white-space:nowrap}.fuel-chip .fc-label{max-width:110px;overflow:hidden;text-overflow:ellipsis}.fuel-chip>svg:first-child{color:var(--brand)}.fuel-chip>svg:last-child{color:var(--ink-3)}.fuel-chip.electric>svg:first-child{color:#6d28d9}.fuel-chip:hover{border-color:var(--brand)}.fuel-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;min-width:216px;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-md);padding:6px;max-height:62vh;overflow-y:auto}.fuel-menu-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:none;background:transparent;cursor:pointer;text-align:left;padding:11px 12px;border-radius:10px;font:inherit;font-weight:600;font-size:14.5px;color:var(--ink);min-height:44px}.fuel-menu-item:hover{background:var(--brand-tint)}.fuel-menu-item.active{color:var(--brand);font-weight:800}.fuel-menu-item>svg{color:var(--brand);flex:none}.fuel-menu-item.electric.active{color:#6d28d9}.fuel-menu-item.electric.active>svg{color:#6d28d9}@media(max-width:899px){.topbar{top:calc(env(safe-area-inset-top) + 8px);left:8px;right:8px}.topbar-tabs .fuel-chip-wrap{flex:0 1 140px;min-width:0}.topbar-tabs .fuel-chip{width:100%;max-width:140px}.topbar-tabs .fuel-chip .fc-label{min-width:0}.filter-panel{flex-wrap:wrap}.filter-panel .select{flex:1 1 170px;width:auto}.filter-clear{flex:1 1 100%}}@media(max-width:430px){.topbar-tabs .seg-btn svg{display:none}}@media(min-width:900px){.topbar{top:16px;left:16px;width:var(--sheet-w)}}.map-fabs{position:fixed;z-index:22;display:flex;flex-direction:column;gap:10px}.fab{width:48px;height:48px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--brand);box-shadow:var(--shadow-md);display:grid;place-items:center;cursor:pointer;transition:background .15s,transform .08s}.fab:hover{background:var(--brand-tint)}.fab:active{transform:translateY(1px)}.fab .addr-spin.static{width:20px;height:20px}@media(min-width:900px){.map-fabs{right:16px;bottom:16px}}@media(max-width:899px){.map-fabs{right:12px;transition:bottom .34s var(--spring),opacity .2s}.app.sheet-collapsed .map-fabs{bottom:calc(166px + env(safe-area-inset-bottom))}.app.sheet-half .map-fabs{bottom:calc(52dvh + 14px)}.app.sheet-full .map-fabs{opacity:0;visibility:hidden;pointer-events:none;bottom:calc(52dvh + 14px)}.app.sheet-collapsed .maplibregl-ctrl-bottom-right{bottom:calc(152px + env(safe-area-inset-bottom))}.app.sheet-half .maplibregl-ctrl-bottom-right{bottom:52dvh}}.sheet-summary{display:flex;align-items:center;gap:12px;width:100%;flex:none;border:none;background:transparent;cursor:pointer;text-align:left}.sheet-summary .ss-ic{width:38px;height:38px;border-radius:11px;flex:none;background:var(--brand-tint);color:var(--brand);display:grid;place-items:center}.ss-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.ss-title{font-weight:800;font-size:16px;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ss-meta{font-size:12.5px;color:var(--ink-2);font-weight:600}.ss-chev{color:var(--ink-3);flex:none;transition:transform .25s var(--ease)}@media(min-width:900px){.sheet-summary{padding:16px 20px 14px;border-bottom:1px solid var(--line-2);cursor:default}.sheet-summary .ss-chev{display:none}}@media(max-width:899px){.sheet-summary{padding:2px 16px 8px}.app.sheet-full .ss-chev{transform:rotate(180deg)}}
