@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/overpass-cyrillic-ext-400-normal-AKUz2ZI5.woff2)format("woff2"),url(/assets/overpass-cyrillic-ext-400-normal-C2ZjKngx.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/overpass-cyrillic-400-normal-tXDxWGRy.woff2)format("woff2"),url(/assets/overpass-cyrillic-400-normal-CZsFKZCk.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/overpass-vietnamese-400-normal-BKRCEiXy.woff2)format("woff2"),url(/assets/overpass-vietnamese-400-normal-CCWAWVG7.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/overpass-latin-ext-400-normal-BIkXRwl6.woff2)format("woff2"),url(/assets/overpass-latin-ext-400-normal-DUq_h-_z.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/overpass-latin-400-normal-BpeLJ0bs.woff2)format("woff2"),url(/assets/overpass-latin-400-normal-c_C8zulu.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/overpass-cyrillic-ext-600-normal-CW4Fknsm.woff2)format("woff2"),url(/assets/overpass-cyrillic-ext-600-normal-Zx-mtRSD.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/overpass-cyrillic-600-normal-B-hc8bdn.woff2)format("woff2"),url(/assets/overpass-cyrillic-600-normal-CXB2Mrig.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/overpass-vietnamese-600-normal-CjS-4vQf.woff2)format("woff2"),url(/assets/overpass-vietnamese-600-normal-DlMMlPfM.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/overpass-latin-ext-600-normal-Cyj4Nio0.woff2)format("woff2"),url(/assets/overpass-latin-ext-600-normal-DQKKMGzp.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/overpass-latin-600-normal-25RhTNCi.woff2)format("woff2"),url(/assets/overpass-latin-600-normal-DhYQrzaY.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/overpass-cyrillic-ext-800-normal-CIth-cA7.woff2)format("woff2"),url(/assets/overpass-cyrillic-ext-800-normal-hx3cL3ZN.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/overpass-cyrillic-800-normal-CP6RWG8X.woff2)format("woff2"),url(/assets/overpass-cyrillic-800-normal-PJW4A9xW.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/overpass-vietnamese-800-normal-BB8K9-Vo.woff2)format("woff2"),url(/assets/overpass-vietnamese-800-normal-DZUygvj_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/overpass-latin-ext-800-normal-DZ60AB77.woff2)format("woff2"),url(/assets/overpass-latin-ext-800-normal-D6WKWGNs.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Overpass;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/overpass-latin-800-normal-Bzx_XP5l.woff2)format("woff2"),url(/assets/overpass-latin-800-normal-D6-q4f0l.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Overpass Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/overpass-mono-cyrillic-ext-400-normal-Dgejvo4A.woff2)format("woff2"),url(/assets/overpass-mono-cyrillic-ext-400-normal-DgxwtUZy.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Overpass Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/overpass-mono-cyrillic-400-normal-B144qALP.woff2)format("woff2"),url(/assets/overpass-mono-cyrillic-400-normal-XK9_jwT8.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Overpass Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/overpass-mono-vietnamese-400-normal-jmOeL0rj.woff2)format("woff2"),url(/assets/overpass-mono-vietnamese-400-normal-DrLp_cHj.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Overpass Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/overpass-mono-latin-ext-400-normal-DBdJzBs_.woff2)format("woff2"),url(/assets/overpass-mono-latin-ext-400-normal-5YIw-E8g.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Overpass Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/overpass-mono-latin-400-normal-VINZG6Js.woff2)format("woff2"),url(/assets/overpass-mono-latin-400-normal-DqAOLzCO.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Overpass Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/overpass-mono-cyrillic-ext-600-normal-Bh_4P40x.woff2)format("woff2"),url(/assets/overpass-mono-cyrillic-ext-600-normal-UFW49wI4.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Overpass Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/overpass-mono-cyrillic-600-normal-JW4VG2Dr.woff2)format("woff2"),url(/assets/overpass-mono-cyrillic-600-normal-BKbqme25.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Overpass Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/overpass-mono-vietnamese-600-normal-BobdPw6V.woff2)format("woff2"),url(/assets/overpass-mono-vietnamese-600-normal-Bo9tXo9f.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Overpass Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/overpass-mono-latin-ext-600-normal-rnoLi9UA.woff2)format("woff2"),url(/assets/overpass-mono-latin-ext-600-normal-gyxvOplJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Overpass Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/overpass-mono-latin-600-normal-DBP6720Q.woff2)format("woff2"),url(/assets/overpass-mono-latin-600-normal-gGkmhJLl.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg:#16181b;--panel:#1d2025;--panel-2:#24282e;--line:#2f343b;--text:#edeae3;--muted:#939ba4;--yellow:#f7c948;--yellow-dim:#c9a227;--blue:#5b8dd9;--route-gray:#7a828c;--danger:#e5645a;--radius-panel:10px;--radius-control:6px;--shadow-panel:0 8px 32px #00000073;--font-ui:"Overpass", system-ui, -apple-system, sans-serif;--font-mono:"Overpass Mono", ui-monospace, "SF Mono", Menlo, monospace}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.45}:focus-visible{outline:2px solid var(--yellow);outline-offset:2px}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0;font-size:12px;font-weight:600}.app{position:fixed;inset:0;overflow:hidden}.map{position:absolute;inset:0}.panel{z-index:5;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-panel);width:372px;box-shadow:var(--shadow-panel);flex-direction:column;gap:20px;padding:24px 20px;display:flex;position:absolute;inset:16px auto 16px 16px;overflow-y:auto}@media (width<=840px){.panel{width:auto;max-height:52vh;inset:auto 12px 12px}}.wordmark{letter-spacing:-.01em;text-transform:lowercase;margin:0;font-size:27px;font-weight:800;line-height:1.1}.strike{color:var(--blue);display:inline-block;position:relative}.strike:after{content:"";background:var(--yellow);pointer-events:none;border-radius:2px;height:3px;position:absolute;top:calc(50% + 1px);left:-2px;right:-2px;transform:rotate(-2deg)}.tagline{color:var(--muted);margin:5px 0 0;font-size:15px}.plan-form{flex-direction:column;gap:16px;display:flex}.field{flex-direction:column;gap:6px;display:flex}.field-head{justify-content:space-between;align-items:baseline;display:flex}.text-input{background:var(--panel-2);width:100%;color:var(--text);border:1px solid var(--line);border-radius:var(--radius-control);font:inherit;padding:10px 12px;font-size:15px}.text-input::placeholder{color:var(--muted)}.text-input:focus-visible{outline:2px solid var(--yellow);outline-offset:0;border-color:#0000}.combobox{position:relative}.listbox{z-index:20;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-control);max-height:244px;box-shadow:var(--shadow-panel);margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.option{cursor:pointer;border-radius:4px;padding:8px 10px;font-size:14px}.option:hover{background:var(--line)}.option[aria-selected=true]{background:var(--line);box-shadow:inset 2px 0 0 var(--yellow)}.slider-value{font-family:var(--font-mono);color:var(--yellow);font-size:13px;font-weight:600}.slider{appearance:none;cursor:pointer;background:0 0;width:100%;height:20px;margin:0}.slider::-webkit-slider-runnable-track{background:var(--line);border-radius:2px;height:4px}.slider::-webkit-slider-thumb{appearance:none;background:var(--yellow);border:2px solid var(--bg);width:16px;height:16px;box-shadow:0 0 0 1px var(--yellow);border-radius:50%;margin-top:-6px}.slider::-moz-range-track{background:var(--line);border-radius:2px;height:4px}.slider::-moz-range-thumb{background:var(--yellow);border:2px solid var(--bg);width:12px;height:12px;box-shadow:0 0 0 1px var(--yellow);border-radius:50%}.btn-primary{border-radius:var(--radius-control);background:var(--yellow);color:#16181b;width:100%;font:inherit;cursor:pointer;border:none;padding:12px 16px;font-size:15px;font-weight:600}.btn-primary:hover:not(:disabled){background:#ffd75e}.btn-primary:active:not(:disabled){background:var(--yellow-dim)}.btn-primary:disabled{background:var(--panel-2);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);cursor:not-allowed}.results{flex-direction:column;gap:16px;display:flex}.empty-line{color:var(--muted);margin:0}.error-card{background:var(--panel-2);border:1px solid var(--line);border-left:3px solid var(--danger);border-radius:var(--radius-control);padding:10px 12px;font-size:14px}.trade-panel{border-top:1px solid var(--line);flex-direction:column;gap:20px;padding-top:20px;display:flex}.trade{gap:28px;animation:.32s ease-out fade-in;display:flex}.trade-cell{flex-direction:column;gap:4px;display:flex}.trade-num{font-family:var(--font-mono);letter-spacing:-.02em;margin:0;font-size:40px;font-weight:600;line-height:1}.trade-pay{color:var(--yellow)}.trade-shed{color:var(--blue)}.trade-unit{letter-spacing:0;font-size:14px}@keyframes fade-in{0%{opacity:0}}.ribbon{flex-direction:column;gap:14px;display:flex}.ribbon-row{flex-direction:column;gap:5px;display:flex}.ribbon-bar{border-radius:7px;height:14px;display:flex;overflow:hidden}.ribbon-seg{height:100%;animation:.32s ease-out seg-grow}@keyframes seg-grow{0%{width:0}}.seg-highway{background:var(--blue)}.seg-detour{background:var(--yellow)}.seg-kept{background:var(--yellow-dim)}.seg-rest{background:var(--route-gray)}.ribbon-meta{font-family:var(--font-mono);color:var(--muted);justify-content:space-between;font-size:13px;display:flex}.legend{font-family:var(--font-mono);color:var(--muted);gap:16px;font-size:12px;display:flex}.legend-item{align-items:center;gap:6px;display:inline-flex}.dot{border-radius:50%;width:8px;height:8px;display:inline-block}.dot-highway{background:var(--blue)}.dot-detour{background:var(--yellow)}.dot-kept{background:var(--yellow-dim)}.detour-block{flex-direction:column;gap:8px;display:flex}.detour-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.detour-row{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius-control);font-family:var(--font-mono);padding:10px 12px;font-size:13px}.detour-sep{color:var(--muted)}.detour-pay{color:var(--yellow)}.detour-shed{color:var(--blue)}.note{color:var(--muted);margin:0;font-size:14px}.marker{transform:translateY(50%)}.marker-start{background:var(--yellow);border:2px solid #16181b;border-radius:50%;width:12px;height:12px;box-shadow:0 0 0 1px #0006}.marker-end{border:3px solid var(--yellow);background:#16181b;border-radius:50%;width:12px;height:12px;box-shadow:0 0 0 1px #0006}.marker-node{background:var(--yellow);border:1px solid #16181b;border-radius:50%;width:8px;height:8px}.setup-screen{place-items:center;min-height:100%;padding:24px;display:grid}.setup-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-panel);max-width:560px;box-shadow:var(--shadow-panel);flex-direction:column;gap:14px;padding:32px 28px;display:flex}.setup-card h1{margin:0;font-size:28px;font-weight:800}.setup-card p{margin:0}.setup-steps{flex-direction:column;gap:12px;margin:0;padding-left:20px;display:flex}.setup-steps li::marker{font-family:var(--font-mono);color:var(--muted)}.kv{font-family:var(--font-mono);background:var(--panel-2);border:1px solid var(--line);white-space:nowrap;border-radius:4px;padding:2px 6px;font-size:13px}.setup-muted{color:var(--muted);font-size:14px}@media (prefers-reduced-motion:reduce){.trade,.ribbon-seg{animation:none}}.btn-secondary{border-radius:var(--radius-control);background:var(--panel-2);width:100%;box-shadow:inset 0 0 0 1px var(--line);color:var(--text);text-align:center;margin-top:14px;padding:11px 16px;font-size:14px;font-weight:600;text-decoration:none;display:block}.btn-secondary:hover{box-shadow:inset 0 0 0 1px var(--yellow)}.attribution{letter-spacing:.04em;color:var(--muted);margin-top:auto;padding-top:14px;font-family:Overpass Mono,monospace;font-size:10.5px}
