@font-face{font-family:"DM Sans";font-style:normal;font-weight:400 700;font-display:swap;src:url(fonts/dm-sans.woff2)format("woff2")}
@font-face{font-family:"Manrope";font-style:normal;font-weight:200 800;font-display:swap;src:url(fonts/manrope.woff2)format("woff2")}
:root{--ink:#182622;--muted:#6f7c77;--cream:#f6f3eb;--paper:#fffdf8;--green:#b9e244;--dark:#23322d;--line:#dcded4;--orange:#e2673e;--red:#a63a22}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif}.topbar{height:78px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dde0d6;background:rgba(246,243,235,.94);position:sticky;top:0;z-index:1000}.brand{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none;font:800 14px/1 Manrope;letter-spacing:.16em}.brand-mark{display:block;width:34px;height:34px;border-radius:50%}.topbar nav{display:flex;gap:38px}.topbar nav a{color:#68736f;text-decoration:none;font-size:13px;font-weight:600}.topbar nav a.active{color:var(--ink)}
.hero{padding:72px 7vw 42px;max-width:1440px;margin:auto;background:radial-gradient(circle at 75% 30%,rgba(185,226,68,.12),transparent 23%)}.eyebrow,.summary-kicker{font:700 11px Manrope;letter-spacing:.2em;color:#6a766f}.eyebrow span{display:inline-block;width:28px;height:2px;background:var(--green);vertical-align:middle;margin-right:10px}.hero h1{font:800 clamp(50px,7.2vw,104px)/.92 Manrope;margin:22px 0;color:var(--dark);letter-spacing:-.065em}.hero h1 em{color:var(--orange);font-style:normal}.hero p{font-size:17px;line-height:1.6;color:var(--muted);max-width:590px}
.planner-shell{display:grid;grid-template-columns:minmax(360px,470px) 1fr;max-width:1320px;margin:8px auto 100px;min-height:710px;background:var(--paper);box-shadow:0 24px 70px rgba(28,45,39,.12)}.route-panel{padding:38px 42px}.panel-heading>div{display:flex;align-items:center;gap:15px}.panel-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.step-num{font:700 11px Manrope;border-bottom:2px solid var(--green);padding-bottom:4px}.panel-heading h2{font:700 20px Manrope;margin:0}.continental{font-size:9px;letter-spacing:.15em;color:#82908a}.location-stack{position:relative;padding-left:24px}.location-stack label,.location-stack .field,.vehicle-fields>label,.picker-grid label{display:flex;flex-direction:column;gap:7px;font-size:10px;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:#7c8883;margin-bottom:13px}.location-stack select,.vehicle-fields select{width:100%;border:1px solid var(--line);background:#fff;padding:14px 15px;color:var(--ink);font:600 14px "DM Sans";outline:none}.route-rail{position:absolute;left:3px;top:37px;height:72px;border-left:1px dashed #aeb6b0}.route-rail i{position:absolute;left:-5px;width:9px;height:9px;border:2px solid var(--dark);background:white;border-radius:50%}.route-rail i:last-child{bottom:0;background:var(--green);border-color:var(--green)}.swap-btn{position:absolute;right:9px;top:67px;z-index:2;border:1px solid var(--line);background:white;width:28px;height:28px;border-radius:50%;cursor:pointer;color:var(--muted)}.section-rule{height:1px;background:var(--line);margin:28px 0}.panel-heading.compact{margin-bottom:16px}.vehicle-card{display:grid;grid-template-columns:55px 1fr auto;align-items:center;gap:12px;background:#edf0e8;padding:14px;margin:12px 0 20px}.car-art{font-size:40px;line-height:1;color:var(--dark);transform:rotate(180deg)}.vehicle-card strong{display:block;font-size:13px}.vehicle-card span{display:block;font-size:10px;color:var(--muted);margin-top:4px}.range{text-align:right}.range b{font:800 20px Manrope;display:block}.range small{font-size:8px;letter-spacing:.1em;color:var(--muted)}.slider-row{margin:18px 0}.slider-row>div{display:flex;justify-content:space-between;font-size:11px;text-transform:uppercase;letter-spacing:.09em;font-weight:700;color:#68736f}.slider-row output{color:var(--ink)}input[type=range]{width:100%;accent-color:var(--dark);margin-top:10px}.plan-button{border:0;background:var(--dark);color:white;width:100%;height:58px;margin-top:15px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;font:700 13px Manrope;letter-spacing:.06em;cursor:pointer;transition:.2s}.plan-button:hover{background:#34483f}.plan-button b{color:var(--green);font-size:22px}.plan-button:disabled{opacity:.6;cursor:wait}.fineprint{font-size:10px;color:#8a928e;text-align:center}.assent{font-size:11.5px;line-height:1.55;color:var(--dark);margin:16px 0 0}.assent a{color:var(--ink);font-weight:700;text-decoration:underline}
.map-panel{position:relative;min-height:710px;overflow:hidden;background:#dbe2dc}#map{position:absolute;inset:0;z-index:1;filter:saturate(.72)}.map-status{position:absolute;z-index:5;right:18px;top:18px;background:var(--paper);padding:9px 12px;font:700 9px Manrope;letter-spacing:.14em;box-shadow:0 5px 20px #24342a22}.trip-summary{position:absolute;z-index:10;left:18px;bottom:18px;width:min(390px,calc(100% - 36px));max-height:calc(100% - 36px);overflow:auto;background:var(--paper);padding:26px;box-shadow:0 16px 40px #1c2b2670;transition:.3s}.trip-summary.hidden{transform:translateY(120%);opacity:0;pointer-events:none}.close-summary{position:absolute;right:16px;top:12px;border:0;background:none;font-size:24px;color:#7d8783;cursor:pointer}.trip-summary h2{font:700 23px/1.2 Manrope;margin:8px 0 20px}.summary-stats{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line);padding:14px 0;margin-bottom:14px}.summary-stats div{border-right:1px solid var(--line);padding-left:10px}.summary-stats div:first-child{padding-left:0}.summary-stats div:last-child{border:0}.summary-stats b{font:700 17px Manrope;display:block}.summary-stats span{font-size:8px;letter-spacing:.12em;color:#77827d}.stop{display:grid;grid-template-columns:23px 1fr auto;gap:10px;padding:12px 0;border-bottom:1px solid #e4e5dd;align-items:start}.stop-dot{width:12px;height:12px;border:3px solid var(--paper);outline:2px solid var(--orange);border-radius:50%;margin-top:3px}.stop-dot.tier-ultra{background:var(--green);outline-color:var(--green)}.stop-dot.tier-fast{background:var(--orange)}.stop-dot.tier-base{background:var(--dark);outline-color:var(--dark)}.stop.linkable{cursor:pointer;transition:background .15s}.stop.hot,.stop.flash{background:#e6ebe0}.stop h4{font-size:12px;margin:0 0 3px}.stop p{font-size:10px;color:var(--muted);margin:0}.stop b{font:700 11px Manrope;color:var(--orange)}.estimate-note{font-size:9px;line-height:1.5;color:#8b938f;margin:14px 0 0}
.how{max-width:1160px;margin:0 auto;padding:30px 40px 110px}.how>h2{font:700 clamp(30px,4vw,50px)/1.1 Manrope;max-width:650px;letter-spacing:-.035em}.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:50px}.how-grid article{border-top:1px solid #cfd4ca;padding-top:20px}.how-grid article>b{font-size:11px;color:var(--orange)}.how-grid h3{font:700 17px Manrope}.how-grid p{font-size:13px;line-height:1.6;color:var(--muted)}
@media(max-width:850px){.topbar nav{display:none}.hero{padding-top:48px}.planner-shell{grid-template-columns:minmax(0,1fr);margin:0 16px 70px}.route-panel{min-width:0}.map-panel{min-height:620px;grid-row:1}.route-panel{grid-row:2}.how-grid{grid-template-columns:1fr}.hero h1{font-size:56px}}@media(max-width:500px){.route-panel{padding:28px 22px}.hero{padding-inline:24px}.hero h1{font-size:47px}.map-panel{min-height:540px}.continental{display:none}}
.autocomplete-host{width:100%;min-height:48px;border:1px solid var(--line);background:#fff}.autocomplete-host mapbox-search-box{display:block;width:100%;min-width:0;max-width:100%}.charge-pin{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:white;font:700 11px Manrope;box-shadow:0 2px 10px #0005;background:var(--dark);border:3px solid white;cursor:pointer;transition:width .15s,height .15s,font-size .15s,box-shadow .15s}.charge-pin.tier-ultra{background:var(--green);color:var(--dark)}.charge-pin.tier-fast{background:var(--orange)}.charge-pin.tier-base{background:var(--dark)}.charge-pin.approx{background:#f6f3ebd9;color:var(--dark);border:2px dashed #68736f;box-shadow:none;font-size:13px}.charge-pin.hot{width:38px;height:38px;font-size:15px;box-shadow:0 0 0 6px #2663524d,0 3px 14px #0006;z-index:6}
.map-legend{position:absolute;z-index:5;left:18px;top:18px;background:var(--paper);padding:10px 13px;box-shadow:0 5px 20px #24342a22;display:flex;flex-direction:column;gap:5px}.map-legend.hidden{display:none}.map-legend b{font:700 8px Manrope;letter-spacing:.13em;color:#77827d}.map-legend span{display:flex;align-items:center;gap:7px;font:600 10px "DM Sans";color:var(--ink)}.map-legend .dot{width:11px;height:11px;border-radius:50%;border:2px solid white;box-shadow:0 1px 4px #0003}.map-legend .dot.ultra{background:var(--green)}.map-legend .dot.fast{background:var(--orange)}.map-legend .dot.base{background:var(--dark)}.map-legend .dot.miss{background:transparent;border:2px dashed #68736f;box-shadow:none}.point-pin{width:20px;height:20px;border-radius:50%;background:var(--dark);border:4px solid var(--green);box-shadow:0 2px 10px #0004}
.waypoint-block{margin:6px 0 0;padding-left:24px}.waypoint-row{display:grid;grid-template-columns:1fr 26px;gap:6px 8px;align-items:center;margin-bottom:14px}.waypoint-row .autocomplete-host{grid-column:1/-1}.waypoint-row select{border:1px solid var(--line);background:#fff;padding:0 6px;height:30px;color:var(--ink);font:600 11px "DM Sans"}.remove-stop{border:1px solid var(--line);background:#fff;width:26px;height:26px;border-radius:50%;cursor:pointer;color:var(--muted);font-size:14px;line-height:1}.add-stop{border:1px dashed #aeb6b0;background:transparent;width:100%;padding:10px;font:700 11px Manrope;letter-spacing:.08em;color:#68736f;cursor:pointer}.add-stop:hover{border-color:var(--dark);color:var(--dark)}.add-stop:disabled{opacity:.45;cursor:default}.waypoint-block .pref-hint{margin-top:8px}.via-pin{cursor:pointer}.stay-pin{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;color:#f6f3eb;font:700 12px Manrope;box-shadow:0 2px 10px #0005;background:var(--dark);border:3px solid var(--green);cursor:pointer}
.picker-grid{display:grid;grid-template-columns:110px 1fr;gap:0 10px}
.legal{max-width:760px;margin:46px auto 90px;padding:0 24px}.legal h1{font:800 clamp(30px,4.5vw,44px) Manrope;letter-spacing:-.03em;color:var(--dark);margin-bottom:6px}.legal h2{font:700 18px Manrope;margin:36px 0 10px}.legal p,.legal li{font-size:14px;line-height:1.75;color:#3d4a45}.legal a{color:var(--ink)}.legal .updated{font:700 10px Manrope;letter-spacing:.14em;text-transform:uppercase;color:#8a928e;margin-bottom:28px}
.site-footer{border-top:1px solid var(--line);background:var(--paper);padding:30px 5vw 38px;text-align:center}.site-footer nav{display:flex;gap:26px;justify-content:center;margin-bottom:12px;flex-wrap:wrap}.site-footer nav a{color:#68736f;text-decoration:none;font:600 12px "DM Sans"}.site-footer nav a:hover{color:var(--ink)}.site-footer p{font-size:10px;line-height:1.6;color:#8a928e;max-width:640px;margin:0 auto}.site-footer p a{color:#68736f}
@media(min-width:1500px){.planner-shell{max-width:min(2600px,95vw)}.map-panel{display:grid;grid-template-columns:1fr}.map-panel:has(.trip-summary:not(.hidden)){grid-template-columns:1fr minmax(350px,410px)}#map{position:relative;inset:auto;grid-area:1/1;height:100%}.map-status{position:static;grid-area:1/1;justify-self:end;align-self:start;margin:18px;z-index:5}.trip-summary{position:static;transform:none;width:auto;max-height:none;grid-column:2;grid-row:1;border-left:1px solid var(--line);box-shadow:none;transition:none}.trip-summary.hidden{display:none}}
.recent-trips{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}.recent-trips:empty{display:none}.recent-label{font:700 9px Manrope;letter-spacing:.14em;color:#82908a;text-transform:uppercase;width:100%}.recent-chip{border:1px solid var(--line);border-left:3px solid var(--green);background:#edf0e8;padding:9px 14px;font:700 12.5px "DM Sans";color:var(--dark);cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:.15s}.recent-chip:hover{border-color:var(--dark);border-left-color:var(--green);background:#fff}
.reset-button{border:1px solid var(--line);background:transparent;width:100%;margin-top:10px;padding:10px;font:700 11px Manrope;letter-spacing:.08em;color:#68736f;cursor:pointer}.reset-button:hover{border-color:var(--dark);color:var(--dark)}
.pref-hint{font-size:10px;line-height:1.5;color:#8a928e;margin:-4px 0 0}.route-note{font-size:10px;line-height:1.5;letter-spacing:.04em;color:#68736f;margin:-12px 0 16px}.offnet{color:var(--orange);font-weight:700;text-transform:uppercase;font-size:9px;letter-spacing:.06em}
.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:26px}.guide-grid a{display:block;border:1px solid #cfd4ca;border-top:3px solid var(--dark);padding:18px 20px;text-decoration:none;background:#fff;transition:.15s}.guide-grid a:hover{border-color:var(--orange)}.guide-grid h3{font:700 16px Manrope;color:var(--dark);margin-bottom:6px}.guide-grid p{font-size:13px;line-height:1.55;color:var(--muted)}.guide-cta{margin-top:34px}.guide-cta a{font:700 15px Manrope;color:var(--ink)}@media(max-width:640px){.guide-grid{grid-template-columns:1fr}}
