:root{--bg:#eceeec;--surface:#fff;--surface-2:#f6f7f5;--ink:#15191c;--muted:#5a6367;--line:#d3d8d5;--sign:#f2c200;--sign-ink:#111316;--route:#2350c4;--car:#8a9397;--good:#1d7a4b;--good-bg:#e3f2e9;--warn:#a85a07;--warn-bg:#fbefdc;--bad:#b42318;--bad-bg:#fbe5e2;--focus:#2350c4;--font-display:"Overpass","Arial Narrow",Arial;--font-mono:"Overpass Mono",ui-monospace,Menlo;--font-body:"Public Sans",system-ui;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#111416;--surface:#1a1f22;--surface-2:#20262a;--ink:#e7ebeb;--muted:#9ba5a9;--line:#2d3539;--route:#7fa3ff;--car:#6c777b;--good:#4fc684;--good-bg:#16301f;--warn:#f0a447;--warn-bg:#352612;--bad:#f2786a;--bad-bg:#3a1d19;--focus:#7fa3ff;color-scheme:dark}}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body),system-ui,-apple-system,"Segoe UI",sans-serif;font-size:15px;line-height:1.5;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:calc(20px + env(safe-area-inset-top, 0px)) calc(40px + env(safe-area-inset-bottom, 0px))}button,input,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.wrap{max-width:1120px;margin:0 auto;display:flex;flex-direction:column;gap:20px}.brand{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px}.sign{background:var(--sign);color:var(--sign-ink);border-radius:8px;padding:4px;flex:none}.sign-inner{border:2.5px solid var(--sign-ink);border-radius:5px;padding:4px 14px 2px;font-family:var(--font-display),Arial,sans-serif;font-weight:800;font-size:30px;line-height:1.1}.brand-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 280px}.brand-copy h1{margin:0;font-family:var(--font-display),Arial,sans-serif;font-weight:800;font-size:clamp(22px,3vw,28px);line-height:1.15;text-wrap:balance}.brand-copy p{margin:0;color:var(--muted)}.badge{font-family:var(--font-mono),ui-monospace,monospace;font-size:12px;letter-spacing:.06em;text-transform:uppercase;border:1px dashed var(--muted);color:var(--muted);border-radius:999px;padding:4px 10px;flex:none}.badge.live{border-style:solid;border-color:var(--good);color:var(--good)}.grid{display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);grid-gap:20px;gap:20px;align-items:start}@media (max-width:880px){.grid{grid-template-columns:minmax(0,1fr)}}.pane{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:18px;min-width:0}.eyebrow{font-family:var(--font-mono),ui-monospace,monospace;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0}.field{display:flex;flex-direction:column;gap:6px}.field label{font-weight:600;font-size:14px}.field input,.field select{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:10px 12px;width:100%}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{border:1px solid var(--line);background:var(--surface-2);border-radius:999px;padding:5px 11px;font-size:13px;cursor:pointer}.chip:hover{border-color:var(--muted)}.group{display:flex;flex-direction:column;gap:10px}.group-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.group-head h2{margin:0;font-family:var(--font-display),Arial,sans-serif;font-size:17px;font-weight:800}.group-head span{font-size:12px;color:var(--muted)}.equip{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.equip,.equip li{display:flex;flex-direction:column}.equip li{gap:8px;padding:10px 12px;border-top:1px solid var(--line)}.equip li:first-child{border-top:0}.eq-row{display:flex;align-items:flex-start;gap:10px}.eq-row input[type=checkbox]{width:18px;height:18px;margin-top:2px;accent-color:var(--ink);flex:none}.eq-text{flex:1 1;min-width:0;display:flex;flex-direction:column;cursor:pointer}.eq-name{font-weight:600;font-size:14px}.eq-spec{font-family:var(--font-mono),ui-monospace,monospace;font-size:12px;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.linkbtn{background:none;border:0;padding:2px 0;color:var(--route);font-size:13px;cursor:pointer;text-decoration:underline;text-underline-offset:2px;flex:none}.edit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px;padding-left:28px}.edit label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.edit input{border:1px solid var(--line);background:var(--surface-2);border-radius:6px;padding:6px 8px;width:100%;font-family:var(--font-mono),ui-monospace,monospace;font-size:13px}.limit-note{font-size:12.5px;color:var(--muted);margin:0}.cta{background:var(--sign);color:var(--sign-ink);border:2px solid var(--sign-ink);border-radius:10px;padding:12px 16px;font-family:var(--font-display),Arial,sans-serif;font-weight:800;font-size:17px;cursor:pointer}.cta:disabled{opacity:.6;cursor:progress}.res-head{display:flex;flex-direction:column;gap:6px}.trip{font-family:var(--font-display),Arial,sans-serif;font-weight:800;font-size:clamp(18px,2.4vw,22px);line-height:1.25;margin:0;text-wrap:balance;overflow-wrap:anywhere}.trip .arrow{color:var(--muted);font-weight:400;padding:0 4px}.summary{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:14px;color:var(--muted)}.note-warn{font-size:13px;color:var(--warn);margin:0}.error{border:1px solid var(--bad);background:var(--bad-bg);color:var(--bad);border-radius:10px;padding:12px 14px;font-size:14px}.results{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.result{border:1px solid var(--line);border-radius:10px;background:var(--surface);display:grid;grid-template-columns:6px minmax(0,1fr);overflow:hidden;cursor:pointer;text-align:left;width:100%;padding:0}.result[aria-pressed=true]{border-color:var(--ink)}.stripe{background:var(--line)}.result.fit .stripe{background:var(--good)}.result.detour .stripe{background:var(--warn)}.result.no .stripe{background:var(--bad)}.r-body{padding:12px 14px;display:flex;flex-direction:column;gap:6px;min-width:0}.r-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.pill,.r-name{font-weight:600}.pill{font-family:var(--font-mono),ui-monospace,monospace;font-size:12px;border-radius:999px;padding:3px 10px;white-space:nowrap}.pill.fit{background:var(--good-bg);color:var(--good)}.pill.detour{background:var(--warn-bg);color:var(--warn)}.pill.no{background:var(--bad-bg);color:var(--bad)}.r-stats{display:flex;flex-wrap:wrap;gap:4px 18px;font-family:var(--font-mono),ui-monospace,monospace;font-size:13px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.r-stats b{font-weight:600}.r-note,.r-stats span{color:var(--muted)}.r-note{font-size:13px;margin:0}.mapcard{border:1px solid var(--line);border-radius:10px;background:var(--surface-2);padding:14px;display:flex;flex-direction:column;gap:10px}.map-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:baseline}.map-head h3{margin:0;font-family:var(--font-display),Arial,sans-serif;font-size:16px;font-weight:800}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--muted)}.legend i{display:inline-block;width:22px;height:0;vertical-align:middle;margin-right:6px}.lg-truck{border-top:4px solid var(--route)}.lg-car{border-top:2px dashed var(--car)}.gmap{width:100%;height:340px;border-radius:8px;overflow:hidden;background:var(--surface)}.svgbox{overflow-x:auto}.svgbox svg{display:block;width:100%;min-width:520px;height:auto}.map-cap{font-size:12px;color:var(--muted);margin:0}.s-label{fill:var(--ink);font-size:12px;font-weight:600}.s-sub{fill:var(--muted);font-size:11px}.s-sign{fill:var(--sign-ink);font-weight:800;font-size:11px}.actions{display:flex;flex-wrap:wrap;gap:10px}.btn{border:1px solid var(--ink);background:transparent;border-radius:8px;padding:9px 14px;font-weight:600;font-size:14px;cursor:pointer}.btn:hover{background:var(--surface-2)}.feedback{border-top:1px solid var(--line);padding-top:16px;display:flex;flex-direction:column;gap:10px}.feedback p{margin:0;font-weight:600}.fb-thanks{font-size:14px;color:var(--good);font-weight:500}.fine{font-size:12.5px;color:var(--muted);max-width:75ch;margin:0}.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom, 0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;z-index:20}@media (prefers-reduced-motion:no-preference){.result{transition:border-color .15s}}