:root{font-family:Inter,Geist,system-ui,-apple-system,Segoe UI,sans-serif;color-scheme:light;--bg:#f5f6f1;--panel:#fff;--text:#192b26;--muted:#5a6a63;--border:#dce4db;--border-strong:#b7c9bd;--accent:#267658;--accent-text:#1f664b;--wash:#edf5eb;--nav:#17382f;--nav-text:#d5e3d8;--lime:#cce997;--shadow:0 2px 4px #1f3b2d08;--warning:#805719;--warning-bg:#fff5df;--warning-border:#ebd3a1;--radius:17px;background:var(--bg);color:var(--text)}:root[data-theme=dark]{color-scheme:dark;--bg:#131e1a;--panel:#1b2b25;--text:#ebf5eb;--muted:#adc0b5;--border:#34473e;--border-strong:#577168;--accent:#88cfa9;--accent-text:#a2dcb9;--wash:#223f32;--nav:#10251e;--shadow:none;--warning:#f7d78c;--warning-bg:#392f1d;--warning-border:#63512e}@media(prefers-color-scheme:dark){:root[data-theme=system]{color-scheme:dark;--bg:#131e1a;--panel:#1b2b25;--text:#ebf5eb;--muted:#adc0b5;--border:#34473e;--border-strong:#577168;--accent:#88cfa9;--accent-text:#a2dcb9;--wash:#223f32;--nav:#10251e;--shadow:none;--warning:#f7d78c;--warning-bg:#392f1d;--warning-border:#63512e}}*{box-sizing:border-box}body{margin:0;min-width:300px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}svg{flex-shrink:0}h1,h2,h3,p{margin:0}h2{font-size:18px;letter-spacing:-.025em;display:flex;align-items:center;gap:9px}h3{font-size:15px;letter-spacing:-.015em}h2 svg{color:var(--accent)}p{line-height:1.58}small{font-size:12px;line-height:1.4}ul{margin-block:8px;padding-left:20px}.app-shell{min-height:100vh;display:grid;grid-template-columns:240px minmax(0,1fr)}.sidebar{background:var(--nav);color:var(--nav-text);height:100dvh;position:sticky;top:0;padding:29px 18px 20px;display:flex;flex-direction:column;z-index:12}.brand{display:flex;align-items:center;gap:11px;color:#f3f8ef;padding:0 8px 37px;font-size:23px;font-weight:740;line-height:1.04;letter-spacing:-.055em;width:max-content}.brand:hover{text-decoration:none}.brand>span:last-child>span{display:block;font-size:12px;color:#b9cfc2;margin-top:5px;letter-spacing:.015em;font-weight:540}.brand-mark{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:#cce997;color:#244c37}.sidebar-label{margin:0 10px 11px;font-size:10px;color:#a7c2b3;letter-spacing:.13em;font-weight:700;text-transform:uppercase}.sidebar nav{display:grid;gap:5px}.sidebar nav a{display:flex;min-height:45px;align-items:center;gap:11px;padding:0 11px;color:var(--nav-text);border-radius:9px;font-size:13px;font-weight:590;white-space:nowrap}.sidebar nav a:hover,.sidebar nav a[aria-current]{background:#ffffff16;text-decoration:none;color:#f8fff5}.sidebar nav a[aria-current] svg{color:var(--lime)}.live-dot,.local-note i,.connection i,.source i{width:7px;height:7px;border-radius:50%;display:inline-block;background:#83c294;flex:none}.live-dot{margin-left:auto}.sidebar-footer{margin-top:auto}.vehicle-chip{border:1px solid #ffffff23;border-radius:11px;padding:12px 10px;display:flex;gap:9px;align-items:center;color:#edf8ed;font-size:12px;font-weight:650}.vehicle-chip svg{color:#bfdcaa}.vehicle-chip small{display:block;color:#b3cabb;margin-top:3px;font-weight:400}.local-note{display:flex;gap:7px;align-items:center;margin:13px 4px 0;font-size:10px;color:#b8cabe}.workspace{min-width:0}.topbar{min-height:62px;padding:0 35px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--panel);color:var(--muted);font-size:13px;font-weight:610}.topbar>div{display:flex;gap:13px;align-items:center}.topbar>div:first-child>svg{color:var(--accent)}.topbar .icon-button{border:0}.connection{display:flex;gap:7px;align-items:center;font-size:12px}.connection.offline i{background:#d4a259}.mobile-toggle,.nav-backdrop{display:none!important}.main{max-width:1470px;margin:0 auto;padding:30px 34px 0;display:grid;gap:19px;min-width:0}.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin:1px 0 4px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-weight:750;font-size:10px;color:var(--accent-text);margin-bottom:9px}.page-title h1{font-size:clamp(31px,4.1vw,46px);font-weight:740;letter-spacing:-.065em;line-height:1.05}.page-title p{font-size:14px;color:var(--muted);margin-top:10px}.title-action{white-space:nowrap}.count,.pill{padding:3px 8px;border-radius:999px;background:var(--wash);color:var(--accent-text);font-size:11px;font-weight:700}.hero{position:relative;min-height:310px;border-radius:21px;overflow:hidden;background:#15382e;color:#f8fcf4;display:grid;grid-template-columns:1fr 1fr;isolation:isolate}.hero-content{z-index:2;position:relative;padding:34px 38px 39px;min-width:0}.hero-visual{position:absolute;inset:0 0 0 28%;z-index:0}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:60% 56%;display:block}.hero-visual:after{position:absolute;inset:0;content:"";background:linear-gradient(90deg,#15382e 0%,#15382edb 13%,#15382e2b 46%,transparent 68%),linear-gradient(0deg,#122f2390,transparent 43%)}.hero-kicker{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:650;color:#cfeba9}.hero h2{display:block;font-size:clamp(37px,5.3vw,64px);letter-spacing:-.067em;line-height:1.02;margin:15px 0 12px}.hero p{max-width:350px;font-size:14px;color:#d9e9dd}.hero .actions{margin-top:22px;gap:15px}.hero .primary{background:var(--lime);color:#213c29}.hero-link{padding:10px 0;color:#f0f7eb;background:none;border:0;font-size:12px;font-weight:650;text-decoration:underline;text-underline-offset:4px}.panel,.tile{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0}.panel{padding:20px}.stack{display:grid;gap:15px;align-content:start;min-width:0}.split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.planner-layout{display:grid;grid-template-columns:minmax(320px,.87fr) minmax(0,1.4fr);gap:18px;align-items:start}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:10px;min-width:0}.section-heading>.field{max-width:180px}.metric-grid,.mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tile{display:grid;align-content:start;gap:8px;padding:17px 16px;min-height:98px}.tile.emphasis{background:var(--wash);border-color:var(--border-strong)}.tile>span{color:var(--muted);font-size:12px;font-weight:650}.tile strong{font-size:clamp(17px,2.25vw,28px);letter-spacing:-.045em;line-height:1.09;overflow-wrap:anywhere}.tile small{color:var(--muted)}.mini-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.mini-grid .tile{min-height:78px;box-shadow:none;padding:12px}.mini-grid .tile strong{font-size:18px}.muted{font-size:13px;color:var(--muted)}.actions,.inline-links{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.inline-links{gap:12px;font-size:12px;font-weight:650;color:var(--muted)}.primary,.secondary,.icon-button,.text-button{display:inline-flex;justify-content:center;align-items:center;gap:7px;font-size:13px;font-weight:700;border-radius:9px;line-height:1.25;max-width:100%}.primary,.secondary{min-height:40px;padding:9px 12px}.primary{background:#226449;color:#fff;border:1px solid transparent}.primary:hover{background:#174b35}.secondary,.icon-button{background:var(--panel);border:1px solid var(--border);color:var(--text)}.secondary:hover,.icon-button:hover{background:var(--wash)}.text-button{padding:3px 1px;border:0;background:transparent;color:var(--accent-text);text-align:left;justify-content:flex-start}.text-button:hover{text-decoration:underline}.text-button[aria-pressed=true]{font-weight:800;text-decoration:underline;text-underline-offset:4px}.icon-button{width:35px;height:35px;flex:none;padding:5px}.full{width:100%}.add-stop{justify-self:start}.shortcut{width:100%;text-align:left;display:grid;grid-template-columns:30px 1fr 18px;align-items:center;gap:10px;padding:13px 11px;border:1px solid var(--border);border-radius:10px;background:var(--bg);color:var(--text)}.shortcut:hover{background:var(--wash)}.shortcut svg{color:var(--accent)}.shortcut strong,.shortcut small{display:block}.shortcut strong{font-size:13px}.shortcut small{color:var(--muted);margin-top:3px}.empty{display:grid;place-items:center;text-align:center;gap:8px;padding:27px 14px;color:var(--muted);font-size:13px}.empty h3{color:var(--text)}.empty .secondary{margin-top:4px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:grid;align-content:start;gap:6px;min-width:0;font-size:12px;font-weight:650;color:var(--text)}.field small{color:var(--muted);font-weight:420}.field input,.field select,.field textarea,table input{width:100%;min-height:40px;min-width:0;color:var(--text);background:var(--bg);border:1px solid var(--border-strong);border-radius:8px;padding:8px 9px;font-weight:450;font-size:13px}.field input::placeholder{color:var(--muted);opacity:.83}.field textarea{resize:vertical}.field input[type=datetime-local]{min-height:40px}.input-icon{display:flex;align-items:center;position:relative;min-width:0}.input-icon>svg{position:absolute;left:10px;color:var(--accent);pointer-events:none}.input-icon input{padding-left:32px}.place-field,.search-results{display:grid;gap:5px}.search-results button{justify-content:flex-start}.check{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted);min-height:28px}.check input{accent-color:var(--accent);width:16px;height:16px;flex:none}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px;border:1px solid var(--border);border-radius:9px;padding:4px;background:var(--bg)}.segmented button{border:1px solid transparent;border-radius:6px;padding:8px 4px;background:none;color:var(--muted);font-size:12px;font-weight:690}.segmented button[aria-pressed=true]{background:var(--panel);border-color:var(--border);color:var(--accent-text);box-shadow:var(--shadow)}.stop-block{gap:10px;border-left:2px solid var(--border);padding-left:11px}.stop-heading{display:flex;gap:7px;align-items:center;color:var(--muted);font-size:11px;font-weight:720}.stop-heading svg{color:var(--accent)}.stop-heading .icon-button{margin-left:auto;width:27px;height:27px;border:0}details{border-top:1px solid var(--border);padding-top:10px}summary{cursor:pointer;font-weight:650;font-size:12px;color:var(--text)}.details-content{margin-top:12px}details>p{font-size:12px;margin:8px 0}.message{display:flex;align-items:flex-start;gap:9px;border:1px solid var(--warning-border);border-radius:10px;background:var(--warning-bg);color:var(--warning);padding:11px 12px;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.message svg{margin-top:1px}.message.good{background:var(--wash);color:var(--accent-text);border-color:var(--border-strong)}.warn-text{color:var(--warning)}.confirm-actions{margin-top:9px}.map-card{display:grid;gap:12px}.map-panel{position:relative;min-height:275px;background:var(--wash);border:1px solid var(--border);border-radius:13px;overflow:hidden;isolation:isolate}.mapbox{width:100%;height:310px}.map-blank{display:grid;place-items:center;align-content:center;gap:10px;min-height:275px;padding:28px;text-align:center;color:var(--text);position:relative}.map-grid{position:absolute;inset:-50%;background:repeating-linear-gradient(0deg,transparent 0 44px,var(--border) 44px 45px),repeating-linear-gradient(90deg,transparent 0 44px,var(--border) 44px 45px);transform:rotate(-25deg);z-index:-1;opacity:.8}.map-blank p{font-size:13px;color:var(--muted);max-width:250px}.map-icon{display:grid;place-items:center;width:49px;height:49px;border-radius:14px;background:var(--panel);color:var(--accent);border:1px solid var(--border-strong);box-shadow:var(--shadow)}.map-error,.map-picker{position:absolute;left:10px;right:54px;top:10px;background:var(--panel);color:var(--text);padding:8px;border:1px solid var(--border);border-radius:8px;font-size:12px}.map-error+.map-picker{top:55px}.empty-preview{display:grid;gap:4px}.preview-labels{grid-template-columns:repeat(3,minmax(0,1fr))}.leg-tabs,.source-tags,.conditions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.leg-tabs .secondary[aria-pressed=true]{background:var(--wash);border-color:var(--border-strong);color:var(--accent-text)}.battery{padding:12px 13px;border-radius:10px;background:var(--bg);display:grid;gap:7px;font-size:12px;color:var(--muted)}.battery>div:first-child{display:flex;justify-content:space-between;gap:8px}.battery strong{color:var(--text)}.battery-track,.track{background:var(--border);position:relative;height:9px;border-radius:10px}.battery-track i,.track i{position:absolute;height:100%;left:0;top:0;background:var(--accent);border-radius:10px}.battery-track b{position:absolute;height:16px;top:-3px;border-left:2px solid var(--warning)}.source{display:inline-flex;gap:5px;align-items:center;background:var(--bg);border:1px solid var(--border);border-radius:999px;padding:4px 8px;font-size:11px;line-height:1.3;color:var(--muted)}.source.cached i,.source.manual i{background:#7698b3}.source.fallback i{background:#ca9a54}.conditions{gap:10px;color:var(--muted);font-size:12px}.energy-bars{display:grid;gap:9px}.energy-bars>div{display:grid;grid-template-columns:minmax(95px,1fr) minmax(30px,1.8fr) 72px;align-items:center;gap:9px;font-size:12px}.energy-bars strong{text-align:right}.elevation{display:grid;gap:7px;color:var(--muted);font-size:12px}.elevation div{display:flex;justify-content:space-between}.elevation svg{width:100%;height:72px}.route-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#27a174}.route-dot.dot-1{background:#7456bd}.route-dot.dot-2{background:#e59b36}.table-wrap{overflow:auto;max-width:100%}table{border-collapse:collapse;width:100%;font-size:12px;text-align:left}th,td{padding:10px 8px;border-bottom:1px solid var(--border);vertical-align:middle}th{font-size:11px;font-weight:700;color:var(--muted)}td small,.saved-list small{display:block;color:var(--muted);margin-top:3px}td input{min-width:62px}.saved-list{display:grid;gap:6px}.saved-list>div{display:flex;align-items:center;justify-content:space-between;gap:7px;border-bottom:1px solid var(--border);padding:6px 1px;font-size:13px}.upload{position:relative;cursor:pointer;overflow:hidden}.upload input{opacity:0;position:absolute;inset:0;width:100%;cursor:pointer}.upload:focus-within{outline:2px solid var(--accent);outline-offset:3px}.proposal{border-color:var(--border-strong);background:var(--wash)}.live-leg h2{flex-wrap:wrap;font-size:22px}.chart svg{width:100%;max-height:250px}.coefficient-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 22px;margin-top:13px}.coefficient-list>div{display:flex;justify-content:space-between;gap:8px;font-size:12px;color:var(--muted)}.footer{display:flex;justify-content:space-between;gap:8px;align-items:center;padding:18px 0 23px;border-top:1px solid var(--border);color:var(--muted);font-size:11px;margin-top:9px}@media(max-width:1180px){.app-shell{grid-template-columns:216px minmax(0,1fr)}.main{padding-inline:23px}.topbar{padding-inline:24px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:1.3fr 1fr}.hero-content{padding-inline:28px}.panel{padding:16px}}@media(max-width:920px){.planner-layout{grid-template-columns:1fr}.sidebar{padding-inline:12px}.app-shell{grid-template-columns:195px minmax(0,1fr)}.hero-content{grid-column:1/-1}.hero-visual{inset:0 0 0 25%}.hero-visual:after{background:linear-gradient(90deg,#15382e 0%,#15382ee6 22%,#15382e40 60%,transparent)}}@media(max-width:690px){.app-shell{display:block}.sidebar{position:fixed;top:0;left:0;bottom:0;width:min(82vw,260px);transform:translate(-105%);transition:transform .16s ease;padding-inline:18px}.sidebar.is-open{transform:translate(0)}.nav-backdrop{display:block!important;position:fixed;inset:0;background:#15272199;border:0;z-index:11;width:100%}.mobile-toggle{display:inline-flex!important}.topbar{padding-inline:12px;min-height:54px}.topbar>div{gap:7px}.topbar>div:first-child>svg{display:none}.main{padding:20px 12px 0;gap:13px}.split{grid-template-columns:1fr;gap:13px}.page-title{align-items:flex-start;flex-direction:column;margin-bottom:3px}.page-title p{font-size:13px;margin-top:7px}.hero{min-height:336px}.hero-content{padding:22px 18px;align-self:end}.hero h2{font-size:39px;margin-block:8px}.hero-visual{inset:0}.hero-visual img{object-position:70% 38%}.hero-visual:after{background:linear-gradient(0deg,#14362d,#14362de8 34%,#14362d23 79%),linear-gradient(90deg,#15382e9e,transparent)}.hero .actions{margin-top:14px;gap:9px}.hero p{font-size:12px}.form-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{padding:13px}.tile{padding:12px;min-height:83px}.tile strong{font-size:20px}.metric-grid,.mini-grid,.planner-layout{gap:8px}.mapbox,.map-blank,.map-panel{min-height:210px}.mapbox{height:245px}.preview-labels .tile{padding:8px}.footer{font-size:10px}.section-heading h2{font-size:16px}.live-leg{align-items:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:0s!important}}
