:root{--bg:#f4f1ea;--surface:#fffdf8;--ink:#1f2328;--muted:#6b6f76;--line:#e2ddd2;--accent:#c9571a;--accent-ink:#fff;--neg:#b3261e;--pos:#1f7a4d;--warn:#b7791f;--field:#f4f1ea;--shadow:0 6px 24px #1414141f;--hud-top:76px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#15171a;--surface:#1e2125;--ink:#eceae4;--muted:#a0a4ab;--line:#2f3338;--accent:#ee8440;--accent-ink:#1a1a1a;--neg:#ff8a80;--pos:#6fd39b;--warn:#f0b95a;--field:#15171a;--shadow:0 6px 24px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font:14px/1.4 Barlow,system-ui,sans-serif}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.app{height:100%;position:relative;overflow:hidden}.map{touch-action:none;position:absolute;inset:0}.map canvas{display:block}.topbar{z-index:6;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;align-items:center;gap:16px;padding:8px 12px;display:flex;position:absolute;top:12px;left:12px;right:12px}.seed{align-items:baseline;gap:8px;min-width:0;margin-right:auto;display:flex}.seed-code{color:var(--accent);font:500 13px IBM Plex Mono,monospace}.seed-name{letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;font:700 20px Barlow Condensed,sans-serif;overflow:hidden}.status-chip,.speeds,.options,.kpis{flex:none}.clock,.cash{white-space:nowrap;font:500 14px IBM Plex Mono,monospace}.cash.neg{color:var(--neg)}.speeds{border:1px solid var(--line);border-radius:8px;display:flex;overflow:hidden}.speeds button{background:0 0;border:0;min-width:40px;padding:4px 10px}.speeds button.on{background:var(--accent);color:var(--accent-ink)}.attribution{background:var(--surface);color:var(--muted);border-radius:6px;padding:2px 8px;font-size:11px;position:absolute;bottom:10px;left:12px}.splash{height:100%;color:var(--muted);place-items:center;font:600 18px Barlow Condensed,sans-serif;display:grid}.kpis{gap:14px;display:flex}.kpi{white-space:nowrap;flex-direction:column;font:500 14px/1.15 IBM Plex Mono,monospace;display:flex}.kpi span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font:600 11px Barlow,sans-serif}.kpi.neg{color:var(--neg)}.kpi.warn{color:var(--warn)}.weather{color:var(--muted)}.weather.on{color:var(--warn)}.panel{top:var(--hud-top);background:var(--surface);border:1px solid var(--line);width:360px;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;display:flex;position:absolute;bottom:40px;right:12px;overflow:hidden}.tabs{border-bottom:1px solid var(--line);flex:none;display:flex}.tabs button{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;flex:1;padding:10px 4px 9px;font:600 14px Barlow Condensed,sans-serif}.tabs button.on{color:var(--ink);border-bottom-color:var(--accent)}.badge{background:var(--accent);min-width:18px;color:var(--accent-ink);border-radius:9px;margin-left:5px;padding:0 5px;font-size:11px;line-height:18px;display:inline-block}.panel-body{padding:4px 14px 14px;overflow:auto}.section{border-bottom:1px solid var(--line);padding:12px 0 6px}.section:last-child{border-bottom:0}.section h3{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);justify-content:space-between;align-items:baseline;margin:0 0 8px;font:600 13px Barlow Condensed,sans-serif;display:flex}.section h4{margin:0 0 4px;font:600 14px Barlow Condensed,sans-serif}.muted{color:var(--muted)}.neg{color:var(--neg)}.pos{color:var(--pos)}.warn{color:var(--warn)}.hint{color:var(--muted);margin:6px 0;font-size:12.5px}.hint.neg{color:var(--neg)}.hint.warn{color:var(--warn)}.row{justify-content:space-between;gap:12px;padding:2px 0;font-size:13px;display:flex}.row-label{color:var(--muted)}.row-value{text-align:right;font-variant-numeric:tabular-nums}.bar{background:var(--line);border-radius:3px;height:6px;margin:2px 0 8px;position:relative;overflow:hidden}.bar-fill{background:var(--pos);border-radius:3px;height:100%}.bar.warn .bar-fill{background:var(--warn)}.bar.bad .bar-fill{background:var(--neg)}.bar-mark{background:var(--muted);opacity:.6;width:1px;position:absolute;top:0;bottom:0}.system{border-top:1px solid var(--line);padding:8px 0}.system:first-of-type{border-top:0}.system-head{justify-content:space-between;align-items:baseline;display:flex}.system-name{font:600 16px Barlow Condensed,sans-serif}.system-level{color:var(--accent);font:500 12px IBM Plex Mono,monospace}.system-current{margin-bottom:6px;font-size:13px}button.primary,button.secondary,.build{border:1px solid var(--accent);border-radius:8px;padding:6px 12px;font-weight:600}button.primary{background:var(--accent);color:var(--accent-ink)}button.secondary{color:var(--ink);border-color:var(--line);background:0 0}button.secondary:not(:disabled):hover{border-color:var(--accent)}button.link{color:var(--accent);background:0 0;border:0;padding:2px 0;font-size:13px;font-weight:600}button.link.danger{color:var(--neg)}.buttons{flex-wrap:wrap;gap:6px;margin:6px 0;display:flex}.buttons button{flex:auto;font-size:13px}.build{text-align:left;background:0 0;justify-content:space-between;gap:8px;width:100%;font-weight:500;display:flex}.build:not(:disabled):hover{background:var(--accent);color:var(--accent-ink)}.build-cost{white-space:nowrap;font:500 12px IBM Plex Mono,monospace}.progress{background:var(--line);border-radius:8px;height:30px;font-size:13px;position:relative;overflow:hidden}.progress-bar{background:var(--accent);opacity:.35;position:absolute;inset:0 auto 0 0}.progress span{padding:5px 10px;display:block;position:relative}.slider{margin:6px 0;font-size:13px;display:block}.slider input{width:100%;accent-color:var(--accent)}.field{margin:8px 0;font-size:13px;display:block}.field>span{color:var(--muted);margin-bottom:4px;display:block}.field input,.field select{border:1px solid var(--line);background:var(--field);width:100%;color:var(--ink);font:inherit;border-radius:8px;padding:7px 9px}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:0 0;border-radius:16px;padding:3px 10px;font-size:12.5px}.chip.on{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 18%, transparent)}.dest-info{margin:6px 0}.card{border-top:1px solid var(--line);padding:10px 0;font-size:13px}.card:first-of-type{border-top:0}.card-head{justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.card-head strong{font:600 16px Barlow Condensed,sans-serif}.card-stats{font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:4px 12px;margin-bottom:6px;display:flex}.stepper-row{flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0;display:flex}.stepper{border:1px solid var(--line);border-radius:8px;align-items:center;gap:6px;padding:2px;font-size:13px;display:inline-flex}.stepper button{background:var(--field);border:0;border-radius:6px;width:26px;height:26px;font-weight:700}.plain{margin:4px 0;padding-left:18px}.dot{border-radius:50%;width:9px;height:9px;margin-right:2px;display:inline-block}.fleet-row{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:0 8px;padding:5px 0;font-size:13px;display:grid}.fleet-row>.muted{grid-column:1}.fleet-row>button{grid-area:1/2/span 2;align-self:center}.catalog{margin-top:8px}.catalog-item{border-top:1px dashed var(--line);padding:8px 0;font-size:13px}.objectives{margin:0;padding:0;font-size:13px;list-style:none}.objectives li{justify-content:space-between;gap:8px;padding:4px 0;display:flex}.objectives li .muted{white-space:nowrap}.objectives li.done{color:var(--pos)}.chart{align-items:flex-end;gap:2px;height:70px;margin:8px 0 2px;display:flex}.chart-bar{background:var(--line);border-radius:2px 2px 0 0;flex:1;align-items:flex-end;min-height:1px;display:flex;position:relative}.chart-own{opacity:.85;border-radius:2px 2px 0 0;width:100%}.pl{grid-template-columns:1fr 1fr;gap:12px;display:grid}.impact{background:var(--field);border-radius:8px;margin:6px 0 8px;padding:6px 10px}.impact .hint{margin:4px 0 0}.laffer{margin:10px 0 4px}.laffer figcaption{color:var(--muted);justify-content:space-between;gap:8px;font-size:12.5px;display:flex}.laffer-read{color:var(--ink);white-space:nowrap;font:500 12px IBM Plex Mono,monospace}.laffer svg{cursor:crosshair;touch-action:none;width:100%;height:auto;display:block;overflow:visible}.laffer-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.laffer-zero{stroke:var(--line);stroke-width:1px}.laffer-ref,.laffer-cross{stroke:var(--muted);stroke-width:1px;opacity:.5}.laffer-ref{stroke-dasharray:3 3}.laffer-tick{fill:var(--muted);font:500 10px IBM Plex Mono,monospace}.laffer-now{fill:var(--surface);stroke:var(--muted);stroke-width:2px}.laffer-next{fill:var(--accent);stroke:var(--surface);stroke-width:2px}.laffer-key{vertical-align:-1px;border-radius:50%;width:9px;height:9px;display:inline-block}.laffer-key.now{border:2px solid var(--muted)}.laffer-key.next{background:var(--accent)}.ledger{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12.5px}.ledger th{color:var(--muted);text-align:right;padding:2px 0 4px 6px;font-weight:500}.ledger td{text-align:right;white-space:nowrap;padding:2px 0 2px 6px}.ledger td:first-child{text-align:left;color:var(--muted);white-space:normal;padding-left:0}.ledger tr.total td{border-top:1px solid var(--line);padding-top:4px;font-weight:600}.ledger tr.total td:first-child{color:var(--ink)}.payers{font-size:12.5px}.nowrap{white-space:nowrap}.section .hint+h4{margin-top:12px}.feed{margin:0;padding:0;font-size:12.5px;list-style:none}.feed li{border-top:1px solid var(--line);color:var(--muted);padding:4px 0}.feed li strong{color:var(--ink);font-weight:600}.feed li.good strong{color:var(--pos)}.feed li.bad strong{color:var(--neg)}.toast{background:var(--ink);max-width:min(480px,90vw);color:var(--bg);box-shadow:var(--shadow);pointer-events:none;border-radius:8px;padding:8px 14px;font-size:13.5px;animation:4s forwards toast;position:absolute;bottom:48px;left:50%;transform:translate(-50%)}@keyframes toast{0%,85%{opacity:1}to{opacity:0;visibility:hidden}}.modal-backdrop{z-index:10;background:#0a0e1273;place-items:center;padding:16px;display:grid;position:absolute;inset:0}.modal{background:var(--surface);border:1px solid var(--line);width:min(460px,100%);box-shadow:var(--shadow);border-radius:14px;padding:20px 22px}.modal h2{margin:2px 0 8px;font:700 26px Barlow Condensed,sans-serif}.modal p{margin:0 0 14px}.modal-kicker{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font:600 12px Barlow Condensed,sans-serif}.choices{flex-direction:column;gap:8px;display:flex}.choices button{text-align:left;padding:9px 12px}.modal-foot{color:var(--muted);margin-top:12px;font-size:12px}.modal.end{text-align:center}.modal.end h2{font-size:40px}.stars{letter-spacing:6px;color:var(--line);margin-bottom:10px;font-size:30px}.stars .on{color:#e8a317}.end-grid{grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 12px;display:grid}.end-grid span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;display:block}.end-grid strong{font:600 20px IBM Plex Mono,monospace}.modal.end .objectives{text-align:left;margin-bottom:10px}.compare{font-size:14px}.start{background:linear-gradient(160deg,#cfdcac,#79bfd3);place-items:center;min-height:100%;padding:16px;display:grid}.start-card{background:var(--surface);width:min(460px,100%);box-shadow:var(--shadow);border-radius:16px;padding:24px}.start-card h1{margin:4px 0 8px;font:700 40px Barlow Condensed,sans-serif}.start-card p{color:var(--muted);margin:0 0 12px}.start-seed{font:600 15px Barlow Condensed,sans-serif}.swatches{gap:8px;display:flex}.swatches button{border:3px solid #0000;border-radius:50%;outline:2px solid #0000;width:30px;height:30px}.swatches button.on{border-color:var(--surface);outline-color:var(--ink)}.start-card .primary{width:100%;margin-top:10px;padding:10px;font-size:16px}@media (width<=1180px){.topbar{flex-wrap:wrap;gap:6px 14px}.kpis{order:3;justify-content:space-between;width:100%}:root{--hud-top:122px}}@media (width<=720px){.topbar{flex-wrap:wrap;gap:6px 12px;top:8px;left:8px;right:8px}.seed-name{font-size:17px}.kpis{order:3;justify-content:space-between;width:100%}.panel{width:auto;height:46%;inset:auto 8px 30px}.attribution{bottom:6px;left:8px}.toast{bottom:calc(46% + 40px)}}.status-chip{letter-spacing:.05em;text-transform:uppercase;background:color-mix(in srgb, var(--accent) 16%, transparent);color:var(--accent);border-radius:10px;align-self:center;margin-left:4px;padding:1px 8px;font:600 12px Barlow Condensed,sans-serif}.modal-backdrop.soft{background:#0a0e1233;align-items:end;padding-bottom:7vh}.modal.milestone{width:min(520px,100%);animation:.35s ease-out rise}@keyframes rise{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}.unlocks{margin:4px 0 12px;padding:0;list-style:none}.unlocks li{border-top:1px solid var(--line);gap:10px;padding:6px 0;font-size:14px;display:flex}.unlocks li:first-child{border-top:0}.unlock-icon{background:color-mix(in srgb, var(--accent) 18%, transparent);width:22px;height:22px;color:var(--accent);border-radius:50%;flex:none;place-items:center;font-size:12px;display:grid}.next{color:var(--muted);margin:0 0 10px;font-size:13px}.status-banner{text-align:center;color:#fff;background:linear-gradient(135deg,#e8a317,#e0572b);border-radius:14px 14px 0 0;margin:-20px -22px 14px;padding:14px 22px}.status-banner span{letter-spacing:.12em;text-transform:uppercase;opacity:.85;font:600 12px Barlow Condensed,sans-serif;display:block}.status-banner strong{font:700 28px Barlow Condensed,sans-serif}@media (width<=720px){.modal-backdrop.soft{align-items:center;padding-bottom:16px}}.view-switch{top:var(--hud-top);background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;display:flex;position:absolute;left:12px;overflow:hidden}.view-switch button{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);background:0 0;border:0;padding:7px 14px;font:600 14px Barlow Condensed,sans-serif}.view-switch button.on{background:var(--accent);color:var(--accent-ink)}.dest-card{background:var(--surface);border:1px solid var(--line);width:340px;max-height:calc(100% - 180px);box-shadow:var(--shadow);border-radius:12px;padding:12px 14px;font-size:13px;position:absolute;bottom:40px;left:12px;overflow:auto}.dest-card.legend{width:300px}.dest-title{font:700 20px Barlow Condensed,sans-serif}.tags{flex-wrap:wrap;gap:4px;margin:2px 0 8px;display:flex}.tags span{background:var(--field);color:var(--muted);border-radius:9px;padding:1px 7px;font-size:12px}.spark{align-items:flex-end;gap:2px;height:34px;margin:4px 0 8px;display:flex}.spark div{background:var(--line);border-radius:2px 2px 0 0;flex:1;min-height:2px}.spark div.on{background:var(--accent)}.access{flex-direction:column;gap:2px;margin:8px 0;display:flex}.access-row{text-align:left;background:0 0;border:0;border-radius:6px;grid-template-columns:16px auto 1fr;align-items:baseline;gap:6px;padding:3px 4px;font-size:12.5px;display:grid}.access-row.ok>span:first-child{color:var(--pos)}.access-row.no>span:first-child{color:var(--neg)}.access-row.no{color:var(--muted)}.access-row .muted{font-size:11.5px}.access-row.on{background:#7a55d029}.rivals{margin:6px 0}.new-route{margin-top:6px}button.wide{width:100%;margin-top:6px}button.link.title{color:var(--ink);padding:0;font:600 16px Barlow Condensed,sans-serif}.legend-row{color:var(--muted);align-items:center;gap:6px;margin-top:4px;font-size:12px;display:flex}.legend-dot{background:var(--ink);border-radius:50%;width:10px;height:10px;display:inline-block}.legend-dot.locked{background:#9aa1a7}.legend-line{border-radius:2px;width:22px;height:4px;display:inline-block}@media (width<=720px){.view-switch{top:auto;bottom:calc(46% + 40px);left:8px}.dest-card{width:auto;max-height:30%;bottom:calc(46% + 84px);left:8px;right:8px}.dest-card.legend{display:none}}.access-head{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;font-size:11.5px}.tuto-layer{pointer-events:none;z-index:30;position:absolute;inset:0}.tuto-ring{border:3px solid #7a55d0;border-radius:10px;animation:1.4s ease-in-out infinite tuto-pulse;position:fixed;box-shadow:0 0 0 4px #7a55d040}@keyframes tuto-pulse{50%{box-shadow:0 0 0 10px #7a55d014}}.tuto-bubble{pointer-events:auto;color:#f4f0ff;box-shadow:var(--shadow);background:#2b1f4a;border-radius:12px;padding:14px 16px;font-size:14px;animation:.3s ease-out rise;position:fixed}.tuto-bubble.tip{background:var(--surface);color:var(--ink);border:2px solid #7a55d0}.tuto-bubble strong{margin:2px 0 4px;font:700 20px Barlow Condensed,sans-serif;display:block}.tuto-bubble p{margin:0 0 10px;line-height:1.45}.tuto-kicker{letter-spacing:.12em;text-transform:uppercase;color:#b9a6f0;font:600 11px Barlow Condensed,sans-serif}.tuto-bubble.tip .tuto-kicker{color:#7a55d0}.tuto-actions{justify-content:space-between;align-items:center;gap:10px;display:flex}.tuto-bubble .link{color:#b9a6f0;font-weight:500}.tuto-bubble.tip .link{color:var(--muted)}.tuto-bubble .primary{color:#fff;background:#7a55d0;border-color:#7a55d0}.start-card .check{align-items:center;gap:8px;margin:10px 0 2px;font-size:14px;display:flex}.start-card .check input{width:18px;height:18px;accent-color:var(--accent)}.chart-bar.empty{border-bottom:1px dashed var(--line);background:0 0}.start-card button[type=submit]{width:100%;margin-top:10px;padding:10px;font-size:16px}.resume{border:1px solid var(--line);background:var(--field);border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin:4px 0 14px;padding:10px 12px;display:flex}.resume>div{flex-direction:column;font-size:13px;display:flex}.resume strong{font:700 18px Barlow Condensed,sans-serif}.resume .primary{width:auto;margin:0;padding:8px 16px}.clock .hour{color:var(--accent)}.options{position:relative}.options-toggle{border:1px solid var(--line);background:0 0;border-radius:8px;width:32px;height:32px;font-size:16px;line-height:1}.options-menu{z-index:20;background:var(--surface);border:1px solid var(--line);width:280px;box-shadow:var(--shadow);border-radius:12px;padding:12px 14px;font-size:13px;position:absolute;top:calc(100% + 8px);right:0}.options-menu .check{align-items:flex-start;gap:8px;display:flex}.options-menu .check input{accent-color:var(--accent);margin-top:2px}.kpi.delay.ok{color:var(--pos)}.segmented{border:1px solid var(--line);border-radius:8px;margin:4px 0;display:flex;overflow:hidden}.segmented button{background:0 0;border:0;flex:1;padding:6px 8px;font-size:13px}.segmented button+button{border-left:1px solid var(--line)}.segmented button.on{background:var(--accent);color:var(--accent-ink);font-weight:600}.grade-chip{letter-spacing:.05em;text-transform:uppercase;color:#7a55d0;background:#7a55d029;border-radius:10px;padding:1px 8px;font:600 12px Barlow Condensed,sans-serif}.next-grade{border:1px dashed var(--line);border-radius:10px;margin:6px 0;padding:8px 10px;font-size:13px}.status-banner.grade{background:linear-gradient(135deg,#7a55d0,#2f63b0)}.counter{border:1px dashed var(--line);border-radius:10px;margin:6px 0;padding:8px 10px}.prospects{flex-direction:column;gap:2px;display:flex}.prospect-row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding:6px 0;font-size:13px;display:flex}.prospect-row:first-child{border-top:0}.prospect-row .muted{font-size:12px}.prospect-row button{flex:none;font-size:13px}.attract{border-top:1px solid var(--line);margin-top:10px;padding-top:6px}.attract summary{cursor:pointer;color:var(--accent);font-size:13px;font-weight:600}
