:root{--bg:#e9edf1;--surface:#fff;--surface-2:#f3f5f8;--ink:#1b2129;--ink-2:#4a5563;--muted:#7b8694;--line:#dde3ea;--on-fill:#fff;--shadow:#141e2d24;--you:#2a78d6;--informal:#e0a400;--informal-light:#f8e08a;--informal-ink:#9a7a00;--home:#a3abb5;--goods:#8a5a2b;--goods-ink:#6b4520;--rail:#3f4852;--good:#2b8a3e;--bad:#c92a2a;--bad-bg:#fff0f0;--warn:#c77700;--strike:#f08c00;--strike-ink:#9a4f00;--flood:#2a6f97;--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#6250d6;--s5:#e34948;--map-ground:#f4f6f3;--map-water:#b7d4e8;--map-hill:#6e786e;--road-free:#c3cbd4;--road-busy:#e8742c;--label-font:ui-monospace, SFMono-Regular, Menlo, monospace;--letter-font:Georgia, "Times New Roman", serif;--label-tracking:.12em;--radius:16px;--top:92px;--left:240px;--right:360px}html,body{background:var(--bg);height:100%;color:var(--ink);margin:0;font:14px/1.4 system-ui,sans-serif;overflow:hidden}#map{display:block;position:fixed;inset:0}.production{gap:6px;margin:6px 0 10px;display:grid}.production .prow{grid-template-columns:1fr auto;gap:0 8px;font-size:12px;display:grid}.production .prow.main{font-size:13px;font-weight:600}.production .prow .bar{grid-column:1/-1;height:6px;margin:2px 0 0}.production .num{font-variant-numeric:tabular-nums;color:var(--muted)}.production .held{color:var(--bad);font-weight:600}.bar{background:var(--line);border-radius:5px;height:10px;margin:3px 0 2px;display:flex;overflow:hidden}.bar i{height:100%;transition:width .3s;display:block}.legend{font-size:12px}.danfo-text{color:var(--informal-ink)}.panel-body h2{margin:0;font-size:14px}.panel-body h2.section{border-top:1px solid var(--line);margin-top:14px;padding-top:10px}.panel-body .hint,.panel-body .empty{color:var(--muted);margin:2px 0 8px;font-size:12px}.panel-body .muted{color:var(--muted);font-weight:400}.panel-body .results{margin:0 0 12px;padding:0;font-size:12px;line-height:1.4;list-style:none}.panel-body .results li{background:var(--surface-2);border-radius:6px;margin-bottom:4px;padding:6px 8px}.panel-body .results li.good{border-left:3px solid var(--good)}.panel-body .results li.bad{border-left:3px solid var(--bad)}.panel-body .results li.pending{color:var(--muted);font-style:italic}.panel-body .moves{margin:0 0 12px;padding:0;font-size:12px;line-height:1.35;list-style:none}.panel-body .moves li{background:var(--surface-2);border-radius:6px;grid-template-columns:1fr auto;align-items:center;gap:8px;margin-bottom:4px;padding:6px 8px;display:grid}.panel-body .moves li.good{border-left:3px solid var(--good)}.panel-body .moves li.bad{border-left:3px solid var(--bad)}.panel-body .moves li span{font-weight:600}.panel-body .moves small{color:var(--muted);font-weight:400;display:block}.panel-body .moves button{border:1px solid var(--line);background:var(--surface);cursor:pointer;font:inherit;border-radius:6px;padding:4px 10px}.panel-body .moves button:hover:not([disabled]){border-color:var(--ink)}.panel-body .moves button[disabled]{opacity:.45;cursor:default}.panel-body .results small{color:var(--muted);margin-right:4px}.panel-body .callout{background:var(--bad-bg);color:var(--bad);border-radius:8px;margin:0 0 10px;padding:8px 10px;font-size:12px;line-height:1.4}.panel-body .callout .k{color:inherit;margin-bottom:2px;display:block}.panel-body .callout.hook{background:color-mix(in srgb, var(--informal) 14%, transparent);color:var(--ink);border-left:3px solid var(--informal)}.town-card .title{margin:2px 0 6px;font-size:22px;font-weight:650}.town-card ul{margin:0 0 8px;padding-left:16px;font-size:12px}.town-card li{margin:0 0 3px}.trip.cut .bar{background:repeating-linear-gradient(90deg, var(--home) 0 4px, transparent 4px 7px)}.pager{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;margin-top:10px;font-size:11px;display:flex}.pager button{font:inherit;border:1px solid var(--line);color:var(--ink);cursor:pointer;white-space:nowrap;background:0 0;border-radius:999px;flex:none;padding:2px 8px}.pager .count{font-variant-numeric:tabular-nums;white-space:nowrap}.route-card{border:1px solid var(--line);border-radius:calc(var(--radius) * .8);background:var(--surface-2);margin:0 0 8px;padding:9px 11px}.route-card .top{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.route-card .net{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;font-weight:650}.route-card .name{align-items:center;gap:6px;margin:2px 0;font-size:14px;font-weight:650;display:flex}.route-card .swatch{border-radius:3px;flex:none;width:10px;height:10px}.namerow{flex-wrap:wrap;align-items:center;gap:5px;margin:4px 0 10px;display:flex}.namerow .sw{cursor:pointer;border:2px solid #0000;border-radius:50%;width:18px;min-width:0;height:18px;padding:0}.namerow .sw.on{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--ink)}.namein{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;width:14em;padding:4px 8px;font:600 14px system-ui,sans-serif}.route-card .buttons{gap:4px;margin-left:auto;display:flex}.route-card button{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:24px;height:24px;color:var(--ink);border-radius:6px;font-size:15px;line-height:1}.route-card button:hover{border-color:var(--ink)}.route-card .verdict{font-size:12px}.route-card .verdict.why-healthy{color:var(--good)}.route-card .bar{height:6px;margin:5px 0 0}.route-card small{color:var(--muted);margin-top:3px;font-size:11px;display:block}.strike-badge{font:600 11px var(--label-font);letter-spacing:.04em;border-radius:6px;margin:4px 0;padding:3px 8px}.strike-badge.on{background:var(--bad);color:var(--on-fill)}.strike-badge.called{background:color-mix(in srgb, var(--strike) 18%, transparent);color:var(--strike-ink);border:1px solid var(--strike)}.panel-body .callout .actions{gap:6px;margin-top:6px;display:flex}.panel-body .callout .project-bar{height:6px;margin:6px 0 0}.panel-body .callout button{font:600 11px var(--label-font);border:1px solid var(--you);background:var(--surface);color:var(--you);cursor:pointer;border-radius:6px;padding:2px 8px}.panel-body .callout button:hover{background:var(--you);color:var(--on-fill)}.panel-body .production button{font:600 11px var(--label-font);border:1px solid var(--you);background:var(--surface);color:var(--you);cursor:pointer;border-radius:6px;padding:3px 8px}.panel-body .production button:hover:not([disabled]){background:var(--you);color:var(--on-fill)}.panel-body .production button[disabled]{opacity:.5;cursor:default}.strike-badge .actions{gap:6px;margin-top:4px;display:flex}.strike-badge button{font:600 11px var(--label-font);border:1px solid var(--strike);background:var(--surface);color:var(--strike-ink);cursor:pointer;border-radius:6px;padding:2px 8px}.strike-badge button:hover{background:var(--strike);color:var(--on-fill)}.strike-badge.past{background:color-mix(in srgb, var(--bad) 8%, transparent);color:var(--bad)}.corridor{margin:0 0 8px;font-size:12px}.corridor .top{justify-content:space-between;gap:8px;display:flex}.corridor .name{font-weight:650}.corridor .taken{font:600 11px var(--label-font);color:var(--on-fill);background:var(--you);border-radius:999px;padding:0 7px}.corridor .bar{height:6px;margin:4px 0 2px}.panel-body .corridor .hint{margin:0}.corridor .noseat{color:var(--ink);margin-top:2px}.corridor .wear{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:2px;display:flex}.corridor .wear .actions{gap:6px;display:inline-flex}.corridor button{font:600 11px var(--label-font);border:1px solid var(--you);background:var(--surface);color:var(--you);cursor:pointer;border-radius:6px;padding:1px 7px}.corridor button:hover{background:var(--you);color:var(--on-fill)}.budget{grid-template-columns:1fr auto;gap:2px 10px;font-size:12px;display:grid}.budget .num{font-variant-numeric:tabular-nums;text-align:right}.budget .total{border-top:1px solid var(--line);padding-top:3px;font-weight:650}.panel-body .budget+.hint,.panel-body .budget+.callout{margin-top:8px}.panel-body .budget+.callout+.hint{margin-top:0}.share-bar{height:8px;margin:2px 0 4px}.panel-body .callout kbd{font:11px ui-monospace,monospace}.panel-body .townshare{margin:0 0 6px;font-size:12px}.panel-body .inside{border:1px dashed var(--line);color:var(--muted);border-radius:8px;margin:8px 0 10px;padding:8px 10px;font-size:12px;line-height:1.4}.panel-body .inside b{color:var(--ink)}.trip{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:2px 8px;padding:5px 0;font-size:13px;display:grid}.trip .name{font-weight:600}.trip .num{font-variant-numeric:tabular-nums;color:var(--muted)}.trip .bar{grid-column:1/-1;height:6px;margin:0}.route{border-top:1px solid var(--line);grid-template-columns:10px 1fr auto auto auto;align-items:center;gap:6px;padding:6px 0;display:grid}.route .detail{grid-column:2/-1}.route .detail .bar{height:6px;margin:4px 0}.route .why{font-size:12px;line-height:1.35}.route .why-healthy{color:var(--good)}.route .why-thin,.route .why-overcapacity,.route .why-long{color:var(--bad)}.route .swatch{border-radius:3px;width:10px;height:10px}.route .name{font-size:13px;font-weight:600}.route small{color:var(--muted);font-size:11px;font-weight:400;display:block}.route .net{font-variant-numeric:tabular-nums;font-size:13px;font-weight:650}.route button{border:1px solid var(--line);background:var(--surface);cursor:pointer;width:24px;height:24px;color:var(--ink);border-radius:6px;font-size:15px;line-height:1}.route button:hover{border-color:var(--ink)}.chain{border-left:3px solid var(--line);margin:0 0 6px;padding-left:8px;font-size:12px}.chain.bad{border-color:var(--bad)}.chain.warn{border-color:var(--informal)}.chain.good{border-color:var(--good)}.onway{color:var(--ink-2);margin:0 0 10px;font-size:12px;line-height:1.45}#overlays{left:calc(var(--left) + 12px);top:calc(var(--top) + 12px);z-index:4;background:var(--surface);box-shadow:0 2px 10px var(--shadow);border-radius:10px;gap:4px;padding:5px;display:flex;position:fixed}#overlays button{border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:7px;padding:4px 9px;font:600 12px system-ui,sans-serif}#overlays button.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}#zoom-control{right:calc(var(--right) + 12px);top:calc(var(--top) + 12px);z-index:4;gap:4px;display:flex;position:fixed}#zoom-control button{border:1px solid var(--line);background:var(--surface);min-width:30px;color:var(--ink);cursor:pointer;border-radius:8px;padding:4px 9px;font:600 13px system-ui,sans-serif}#zoom-control button:hover{border-color:var(--muted)}body.in3d #overlays,body.in3d #overlay-caption,body.in3d #hint,body.in3d #key{display:none!important}#overlay-caption{left:calc(var(--left) + 12px);top:calc(var(--top) + 54px);z-index:4;background:var(--surface);max-width:520px;box-shadow:0 2px 10px var(--shadow);color:var(--ink);border-radius:8px;padding:6px 10px;font-size:12px;line-height:1.4;position:fixed}#overlay-caption[hidden]{display:none}.label3d{pointer-events:auto;cursor:pointer;color:var(--ink);white-space:nowrap;background:#ffffffd1;border-radius:6px;padding:1px 6px;font:600 12px system-ui,sans-serif}.label3d.city{font-size:14px}.label3d.village{opacity:.85;font-size:11px;font-weight:500}.label3d.site{color:var(--goods-ink);font-size:11px;font-weight:500}#toolbar{right:calc(var(--right) + 16px);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:var(--radius);background:#ffffffc7;align-items:flex-end;gap:4px;padding:4px;display:flex;position:fixed;bottom:16px}#toolbar button{font:inherit;cursor:pointer;color:var(--ink);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;padding:6px 8px}#toolbar button.active{background:var(--ink);color:var(--surface)}#toolbar kbd{opacity:.6;margin-left:4px;font:11px ui-monospace,monospace}#toolbar .group{border-radius:8px;flex-direction:column;align-items:center;gap:1px;padding:3px 4px 4px;display:flex}#toolbar .cap{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;font-size:9px}#toolbar .row{align-items:center;gap:2px;display:flex}#toolbar .group.road{background:#96a0af38}#toolbar .group.rail{background:#1e28371a}#toolbar .group.build{border:1px dashed var(--line)}#toolbar .group.time{margin-left:4px}#toolbar .switch{border:1px solid var(--line);border-radius:7px;align-items:center;padding:1px;display:flex}#toolbar .switch button{border-radius:6px;padding:4px 8px}#toolbar .switch button.on{background:var(--ink);color:var(--surface)}#toolbar .switch kbd{margin:0 4px}#controls a{color:inherit}#controls{text-align:right;max-width:230px;color:var(--muted);z-index:3;font-size:11px;line-height:1.45;position:fixed;top:9px;right:20px}body:not([data-dev=true]) #toolbar{right:auto;left:calc(var(--left) + (100vw - var(--left) - var(--right)) / 2);transform:translate(-50%)}#hint{left:calc(var(--left) + 12px);top:calc(var(--top) + 60px);background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--you);border-radius:var(--radius);align-items:flex-start;gap:8px;max-width:320px;padding:8px 10px 8px 12px;font-size:13px;line-height:1.35;display:flex;position:fixed;box-shadow:0 6px 20px #141e2d2e}#hint.anchored{top:auto;bottom:auto;transform:none}#overlay-caption:not([hidden])~#hint:not(.anchored){top:calc(var(--top) + 118px)}#hint[hidden]{display:none}#hint button{border:1px solid var(--line);cursor:pointer;font:11px var(--label-font);color:var(--muted);background:0 0;border-radius:6px;flex:none;padding:1px 6px}#hint button:hover{color:var(--ink);border-color:var(--ink)}#toast{left:calc(var(--left) + (100vw - var(--left) - var(--right)) / 2);z-index:7;background:var(--ink);color:var(--surface);opacity:0;pointer-events:none;border-radius:8px;max-width:calc(100% - 32px);padding:8px 14px;font-size:13px;transition:opacity .4s;position:fixed;bottom:90px;transform:translate(-50%)}#toast[data-bad=true]{background:var(--bad)}#key{left:calc(var(--left) + 12px);box-sizing:border-box;background:var(--surface);border:1px solid var(--line);max-width:470px;color:var(--muted);border-radius:10px;padding:8px 12px;font-size:11px;position:fixed;bottom:16px}#key b{vertical-align:-1px;border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}#key i.fam{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin:0 3px 0 4px;display:inline-block}#key summary{cursor:pointer;color:var(--ink);margin-bottom:2px;font-weight:600}#key:not([open]){padding:6px 12px}@media (width<=1100px){#key{display:none}}.num{font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.up{color:var(--good)}.down{color:var(--bad)}#strip button,#log button,#panel>.tabs button,#panel .pane>.back,.problem button,.tile button,#revenue .top button,#overlays button{color:var(--ink);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:7px;padding:4px 10px;font:13px/1.4 system-ui,sans-serif}#strip button:hover,#log button:hover,#panel button:hover,#revenue button:hover{border-color:var(--ink-2)}#log button.on,#panel>.tabs button.on,#revenue button.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}.tile button{padding:0 7px;font-size:13px}#strip{z-index:5;background:var(--surface);border-bottom:1px solid var(--line);align-items:stretch;gap:8px;padding:10px 14px;font-size:13px;display:flex;position:fixed;top:0;left:0;right:0;overflow-x:auto}.stat{border-right:1px solid var(--line);min-width:132px;padding:2px 12px 2px 0}.stat:last-of-type{border-right:0}.stat .k{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.stat .v{font-size:20px;font-weight:650}.stat .d{font-size:11px}.stat .d a{color:inherit}.stat.term{min-width:300px;max-width:360px}.pledge{align-items:center;gap:6px;font-size:11.5px;line-height:1.5;display:flex}.pledge .t{white-space:nowrap;text-overflow:ellipsis;color:var(--ink-2);flex:auto;overflow:hidden}.pledge.on .t{color:var(--ink);font-weight:600}.pledge.kept .t{color:var(--good)}.pledge .bar{background:var(--surface-2);border-radius:3px;flex:none;width:48px;height:5px;overflow:hidden}.pledge .bar b{background:var(--you);height:100%;display:block}.pledge.kept .bar b{background:var(--good)}#strip .pledge button{flex:none;padding:0 6px;font-size:11px;line-height:18px}.stat svg{margin-top:2px;display:block}#strip .spacer{flex:1}#strip .actions{align-items:center;gap:6px;display:flex}#log,#panel{top:var(--top);background:var(--surface);z-index:5;font-size:13px;position:fixed;bottom:0;overflow-y:auto}#log{width:var(--left);border-right:1px solid var(--line);box-sizing:border-box;padding:10px 12px;left:0}#panel{width:var(--right);border-left:1px solid var(--line);box-sizing:border-box;right:0}#tip{pointer-events:none;background:var(--ink);color:var(--surface);z-index:20;border-radius:6px;max-width:280px;padding:6px 8px;font-size:12px;display:none;position:fixed}#log h2,#panel .pane>h2,#panel .pane>.chart+h2,#panel .pane h2:not(.panel-body h2){text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:14px 0 6px;font-size:11px;font-weight:600}#log h2:first-child{margin-top:0}.event{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:34px 1fr;gap:6px;padding:4px 0;display:grid}.event:hover{background:var(--surface-2)}.event .day{color:var(--muted);font-variant-numeric:tabular-nums}.event.bad .what{color:var(--bad)}.event.good .what{color:var(--good)}#logfilter{flex-wrap:wrap;gap:4px;margin-bottom:8px;display:flex}#logfilter button{padding:2px 7px;font-size:11px}.tabs{gap:4px;padding:10px 12px 0;display:flex}.pane{padding:10px 12px 16px}#panel table,#revenue table{border-collapse:collapse;width:100%;font-size:12px}#panel th,#revenue th{text-align:right;color:var(--muted);cursor:pointer;white-space:nowrap;border-bottom:1px solid var(--line);padding:4px;font-weight:600}#panel th:first-child,#panel td:first-child,#revenue th:first-child,#revenue td:first-child{text-align:left}#panel th.sorted,#revenue th.sorted{color:var(--ink)}#panel td,#revenue td{text-align:right;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums;padding:5px 4px}tr.row{cursor:pointer}tr.row:hover td{background:var(--surface-2)}.swatch{vertical-align:1px;border-radius:2px;width:8px;height:8px;margin-right:6px;display:inline-block}.head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.head .title{font-size:17px;font-weight:650}.kicker{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.tiles{grid-template-columns:1fr 1fr;gap:8px;margin:10px 0;display:grid}.tile{background:var(--surface-2);border-radius:9px;padding:8px 10px}.tile .k{color:var(--muted);font-size:11px}.tile .v{font-size:17px;font-weight:650}.problem{background:color-mix(in srgb, var(--warn) 12%, var(--surface));border-left:3px solid var(--warn);border-radius:9px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:10px 0;padding:9px 10px;display:flex}.problem>span{flex:180px}.problem button{flex:none;max-width:100%}.problem.none{background:var(--surface-2);border-left-color:var(--good)}.seethrough{background:var(--surface-2);border-radius:10px;margin:8px 0 10px;padding:6px 6px 8px}.seethrough svg{width:100%;height:auto;display:block}.seethrough .t{fill:var(--ink-2);font:10px system-ui,sans-serif}.seethrough .t.muted{fill:var(--muted)}.seethrough .t.warn{fill:var(--warn);font-weight:600}.seethrough .t.bad{fill:var(--bad);font-weight:600}.seethrough .t.small{font-size:9px}.seethrough figcaption{padding:4px 6px 0;font-size:12px}.seethrough figcaption.warn{color:var(--ink);font-weight:600}.seethrough .flow{animation:linear infinite flowdash}.seethrough .smoke{transform-box:fill-box;transform-origin:50%;animation:2.4s ease-out infinite smoke}@keyframes flowdash{to{stroke-dashoffset:-28px}}@keyframes smoke{0%{opacity:.7;transform:translateY(0)scale(.6)}to{opacity:0;transform:translateY(-14px)scale(1.4)}}.waiting{border-bottom:1px solid var(--line);margin-bottom:8px;padding-bottom:4px}.waiting .problem{margin:6px 0}.back{margin-bottom:8px}.bar3{background:var(--surface);border-radius:4px;gap:2px;height:8px;display:flex;overflow:hidden}.bar3 i{height:100%;display:block}.chart{margin:6px 0 12px}.chart .t{color:var(--muted);justify-content:space-between;font-size:11px;display:flex}.chart-empty{padding:10px 0;font-size:12px}details.more{border-top:1px solid var(--line);margin:14px 0 0;padding-top:8px}details.more>summary{cursor:pointer;color:var(--ink-2);font-size:12px;font-weight:600}details.more>.panel-body{padding-top:8px}.panel-body .k{font-family:var(--label-font);text-transform:uppercase;letter-spacing:var(--label-tracking);color:var(--muted);font-size:10px}@media (width<=1100px){:root{--left:0px}#log{display:none}}#strip .stat.opens{cursor:pointer;border-radius:6px}#strip .stat.opens:hover{background:var(--surface-2)}#strip .stat.opens .k:after{content:" ›"}.problem .age{color:var(--muted);white-space:nowrap}#revenue{background:var(--bg);z-index:10;padding:18px 22px 40px;font-size:13px;display:none;position:fixed;inset:0;overflow-y:auto}#revenue.open{display:block}#verdict{background:var(--bg);z-index:11;padding:18px 22px 40px;font-size:13px;display:none;position:fixed;inset:0;overflow-y:auto}#verdict.open{display:block}#verdict .top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}#verdict .top .title{font-size:20px;font-weight:700}#verdict .lede{max-width:760px;margin:0 0 14px;font-size:14px}#verdict ul.pledges{margin:0 0 16px;padding:0;list-style:none}#verdict ul.pledges li{border-bottom:1px solid var(--line);padding:6px 0}#verdict ul.pledges li .move{margin-top:2px;font-size:12px}#verdict ul.pledges li .move .bad{color:var(--bad)}#verdict ul.pledges li .move .good{color:var(--good)}#verdict ul.pledges li.kept:before{content:"✓ ";color:var(--good);font-weight:700}#verdict ul.pledges li.missed:before{content:"✗ ";color:var(--bad);font-weight:700}#verdict table{border-collapse:collapse;min-width:560px}#verdict td,#verdict th{text-align:left;border-bottom:1px solid var(--line);padding:6px 12px 6px 0}#verdict button{font:inherit;border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:8px;padding:4px 12px}#verdict button.primary{background:var(--ink);color:var(--surface);border-color:var(--ink)}#verdict ul.pledges.choose li{font-size:14px}#verdict ul.pledges.choose li .line{justify-content:space-between;align-items:center;gap:12px;display:flex}#revenue .top{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}#revenue .top .title{font-size:20px;font-weight:700}.heroes{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px;display:grid}.hero{background:var(--surface);border-radius:12px;padding:12px 14px}.hero .k{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.hero .v{font-size:26px;font-weight:700}.cards{grid-template-columns:1fr 1fr;gap:14px;display:grid}.card{background:var(--surface);border-radius:12px;min-width:0;padding:12px 14px}.card h3{margin:0 0 2px;font-size:14px}.card .sub{color:var(--muted);margin-bottom:8px;font-size:12px}.card.wide{grid-column:1/-1}.keyrow{color:var(--ink-2);flex-wrap:wrap;gap:12px;margin-bottom:4px;font-size:12px;display:flex}.keyrow span{align-items:center;gap:5px;display:inline-flex}.keyrow i{border-radius:2px;width:10px;height:10px;display:inline-block}.ranges{gap:4px;display:flex}.card.treasury .tab{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.card.treasury .tab .more{display:none}.card.treasury .tgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 18px;display:grid}.card.treasury .tcol h3{font:600 10px var(--label-font);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:6px 0 4px}@media (width<=1100px){.card.treasury .tgrid{grid-template-columns:1fr 1fr}}@media (width<=900px){:root{--right:300px}.heroes,.cards{grid-template-columns:1fr}}#loading{z-index:50;background:var(--bg);place-items:center;display:grid;position:fixed;inset:0}#loading .box{background:var(--surface);width:min(420px,100% - 32px);box-shadow:0 6px 24px var(--shadow);border-radius:14px;padding:22px 24px}#loading .title{font-size:22px;font-weight:700}#loading .map{margin-bottom:8px;font-size:13px}#loading p{color:var(--ink-2);margin:0 0 14px;font-size:13px;line-height:1.45}#loading .bar{background:var(--road-free);border-radius:4px;height:8px;margin:22px 0 0;position:relative}#loading .bar.rail{background:repeating-linear-gradient(90deg, var(--rail) 0 2px, transparent 2px 7px), linear-gradient(var(--rail), var(--rail)) 0 50% / 100% 1.5px no-repeat;border-radius:0;height:4px}#loading .bar i{background:var(--you);border-radius:4px;width:0;height:100%;transition:width .15s linear;display:block}#loading .bar.rail i{height:2px;margin-top:1px}#loading .bar .vehicle{filter:drop-shadow(0 1px 2px #141e2d40);line-height:0;transition:left .15s linear;position:absolute;top:50%;left:0;transform:translate(-92%,-50%)}#loading .bar{margin-left:10px;margin-right:10px;display:block;overflow:visible}#loading .progress{font-variant-numeric:tabular-nums;margin-top:6px;font-size:12px}.letter{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--ink-2);max-width:62ch;font-family:var(--letter-font);color:var(--ink);border-radius:6px;margin:6px 0 18px;padding:18px 22px;font-size:15px;line-height:1.6}.letter p{margin:0 0 10px}.letter .sig{margin:14px 0 0;font-style:italic}.letter .sig span{font-style:normal;font-family:var(--label-font);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-top:2px;font-size:11px;display:block}.letterwith{flex-wrap:wrap;align-items:flex-start;gap:18px;display:flex}.letterwith .letter{flex:340px;margin-top:6px}.thenandnow{flex:none;margin:6px 0 18px}.thenandnow svg{max-width:100%;height:auto;display:block}.thenandnow .tn-land{fill:var(--map-land,var(--surface));stroke:var(--line)}.thenandnow .tn-water{fill:none;stroke:var(--map-water);stroke-linecap:round;stroke-linejoin:round;opacity:.8}.thenandnow .tn-then{fill:none;stroke:var(--muted);stroke-width:1px;opacity:.45;stroke-dasharray:2 2}.thenandnow .tn-then-rail{fill:none;stroke:var(--muted);stroke-width:1px;opacity:.45;stroke-dasharray:1 3}.thenandnow .tn-built{fill:none;stroke:var(--ink-2);stroke-width:1.6px;stroke-linecap:round}.thenandnow .tn-paved{fill:none;stroke:var(--ink);stroke-width:2.4px;stroke-linecap:round}.thenandnow .tn-rail{fill:none;stroke:var(--you);stroke-width:2.2px;stroke-dasharray:5 2}.thenandnow .tn-was{fill:none;stroke:var(--surface);stroke-width:1.2px}.thenandnow .tn-was.tn-shrank{stroke:var(--bad);stroke-dasharray:1.5 1.5}.thenandnow .tn-town{fill:var(--ink-2);opacity:.85}.thenandnow .tn-town.tn-new{fill:var(--good)}.thenandnow .tn-pin circle{fill:none;stroke:var(--warn);stroke-width:2px}.thenandnow .tn-pin text{fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:3px;font:600 11px system-ui,sans-serif}.thenandnow figcaption{color:var(--muted);margin-top:6px;font-size:11px}.thenandnow .tn-key{border-top:2px solid var(--ink-2);vertical-align:middle;width:16px;height:0;margin:0 4px 0 8px;display:inline-block}.thenandnow .tn-key:first-child{margin-left:0}.thenandnow .tn-key.then{border-top:1px dashed var(--muted)}.thenandnow .tn-key.paved{border-top-width:3px;border-color:var(--ink)}.thenandnow .tn-key.rail{border-top:2px dashed var(--you)}
