:root{--bg: #f4f6f9;--surface: #ffffff;--ink: #142033;--muted: #5d6b80;--line: #d9dfe8;--accent: #1f6feb;--accent-ink: #ffffff;--pos: #13795b;--neg: #b42318;--warn: #a15c00;--notice: #fff6e5;--bad: #fdecea;--ok: #e9f7f1;--chosen: #eaf2ff;--route0: #1f6feb;--route1: #a15c00;--local: #5d6b80;--sea: #e6eef8;--landfill: #fbfcfe;color-scheme:light}@media(prefers-color-scheme:dark){:root{--bg: #0f1b2d;--surface: #16253b;--ink: #e8eef7;--muted: #9aa8bc;--line: #2a3b55;--accent: #4c8dff;--accent-ink: #0b1424;--pos: #46c69a;--neg: #ff7a6e;--warn: #f0b252;--notice: #2d2714;--bad: #3a1c1c;--ok: #12302a;--chosen: #1b2f50;--route0: #4c8dff;--route1: #f0b252;--local: #9aa8bc;--sea: #0c1626;--landfill: #1d2f4a;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink)}body{font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%}.page{max-width:560px;margin:0 auto;padding:12px 16px 96px}h1{font-size:28px;margin:24px 0 8px}h2{font-size:18px;margin:20px 0 8px}h3{font-size:15px;margin:14px 0 6px}p{margin:8px 0}.lead,.muted{color:var(--muted)}.small{font-size:13px}.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--warn)}.error{color:var(--neg);background:var(--bad);padding:8px 10px;border-radius:8px}.notice{background:var(--notice);padding:8px 10px;border-radius:8px}.feedback{background:var(--ok);padding:8px 10px;border-radius:8px}button{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px 12px;min-height:40px;cursor:pointer}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.big{width:100%;min-height:48px;margin:12px 0}button.link{border:0;background:none;color:var(--accent);padding:4px 0;min-height:0}button.on{background:var(--chosen);border-color:var(--accent)}input[type=number],select{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:8px;min-height:40px}input[type=number]{width:96px;text-align:right}.top{display:flex;justify-content:space-between;align-items:baseline;gap:8px;flex-wrap:wrap}.position{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:8px 0;position:sticky;top:0;z-index:5}.position .liq{min-width:0}.liq-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.liq-head span,.res>span{font-size:11px;color:var(--muted)}.liq-head b,.res b{font-size:15px;white-space:nowrap}.meter{position:relative;height:10px;border-radius:5px;background:var(--line);overflow:hidden;margin:4px 0 3px}.meter span{position:absolute;top:0;bottom:0;left:0}.meter .m-cash{background:var(--pos)}.meter .m-credit{background:var(--accent);opacity:.45}.meter.low .m-cash,.meter.low .m-credit{background:var(--neg);opacity:1}.meter .m-red{background:repeating-linear-gradient(135deg,var(--neg) 0 2px,transparent 2px 4px);opacity:.7;border-right:2px solid var(--neg)}.liq-legend{display:flex;flex-wrap:wrap;gap:0 10px;font-size:11px;color:var(--muted)}.liq-legend span{white-space:nowrap}.liq-legend .warn{color:var(--warn)}.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:3px;vertical-align:0}.dot.cash{background:var(--pos)}.dot.credit{background:var(--accent);opacity:.6}.res{display:flex;flex-direction:column;align-items:flex-end;text-align:right}.trend-wrap{display:flex;flex-direction:column;align-items:flex-end}.trend{width:104px;height:30px;margin-top:2px}.trend path{fill:none;stroke-width:1.5}.trend path.cash{stroke:var(--pos)}.trend path.result{stroke:var(--route1)}.trend circle.cash{fill:var(--pos)}.trend circle.result{fill:var(--route1)}.trend .zero{stroke:var(--line);stroke-width:1}.trend-legend{font-size:10px;color:var(--muted);white-space:nowrap}.trend-legend .dot{width:6px;height:6px;margin-left:4px}.dot.result{background:var(--route1)}.trend-empty{font-size:10px;color:var(--muted);margin-top:4px}.tiny{font-size:11px}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.tabs{display:flex;gap:6px;margin:8px 0}.tabs button{flex:1}.map{width:100%;height:auto;background:var(--surface);border:1px solid var(--line);border-radius:10px;margin:4px 0 8px}.route{fill:none;stroke-width:1.2}.route-0{stroke:var(--route0)}.route-1{stroke:var(--route1);stroke-dasharray:2 1.2}.route.local{stroke:var(--local);stroke-dasharray:.6 1}.route-label{font-size:3px;fill:var(--muted)}.cargo{font-size:3px;fill:var(--ink);font-weight:600}.hub{stroke:var(--surface);stroke-width:.8;fill:var(--ink)}.hub-warehouse{fill:var(--accent)}.hub-label{font-size:3.6px;font-weight:700;fill:var(--ink)}.waiting{font-size:3px;fill:var(--pos)}.waiting.late{fill:var(--neg);font-weight:700}.card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:8px 0}.card.chosen{border-color:var(--accent);background:var(--chosen)}.card header{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-bottom:4px}.card summary{cursor:pointer;font-weight:600}.option{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-top:1px solid var(--line)}.option input{margin-top:4px;width:18px;height:18px;flex:none}.gross{font-size:13px}.buy{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--line)}.buy>div:first-child{min-width:0}.priority{padding-left:20px}.priority li{display:flex;align-items:center;gap:6px;margin:4px 0}.priority li span{flex:1}.forecast{border-radius:10px;padding:8px 12px;margin:12px 0;border:1px solid var(--line)}.forecast.ok{background:var(--ok)}.forecast.caution{background:var(--notice)}.forecast.bad{background:var(--bad)}.forecast h2{margin-top:4px}.kv{display:grid;grid-template-columns:auto 1fr;gap:2px 12px}.kv span:nth-child(odd){color:var(--muted)}.dock-space{height:96px}.dock{position:fixed;left:0;right:0;bottom:0;z-index:10;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.dock-inner{max-width:560px;margin:0 auto}.fstrip{display:flex;width:100%;justify-content:space-between;align-items:center;gap:8px;min-height:0;padding:6px 16px;border:0;border-radius:0;font-size:13px;text-align:left;background:var(--ok)}.fstrip.caution{background:var(--notice)}.fstrip.bad{background:var(--bad)}.fstrip.stale{opacity:.7}.fstrip-tail{flex:none}.steps{display:grid;grid-auto-flow:column;grid-auto-columns:1fr}.steps button{position:relative;display:flex;flex-direction:column;align-items:center;gap:0;min-height:52px;padding:5px 2px;border:0;border-radius:0;background:none;font-size:11px;color:var(--muted);min-width:0}.steps button.on{background:none;color:var(--accent);font-weight:600;box-shadow:inset 0 3px 0 var(--accent)}.steps .ico{font-size:19px;line-height:1.25}.steps .badge{position:absolute;top:3px;left:calc(50% + 7px);min-width:16px;padding:0 4px;border-radius:8px;background:var(--accent);color:var(--accent-ink);font-size:10px;line-height:16px;font-weight:700}.steps .badge.warnb{background:var(--warn)}.card.offer{padding:0;overflow:hidden}.offer-row{display:flex;align-items:center}.offer-sum{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:10px 6px 10px 12px;border:0;border-radius:0;background:none;text-align:left}.offer-icon{font-size:24px;flex:none;line-height:1}.offer-main{flex:1;min-width:0;display:flex;flex-direction:column}.offer-line{display:flex;align-items:center;gap:6px;min-width:0}.offer-line .rating{flex:none}.chev{flex:none;color:var(--muted)}.take{flex:none;min-width:78px;margin-right:10px}.take.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}.offer-detail{padding:0 12px 8px}.plan ul.plain li{font-size:14px}.feedback.badnews{background:var(--notice);border-left:4px solid var(--warn)}.stepper{display:flex;align-items:stretch;flex:none}.stepper button{min-width:36px;padding:0;font-size:18px;line-height:1}.stepper button:first-child{border-radius:8px 0 0 8px}.stepper button:last-child{border-radius:0 8px 8px 0}.stepper input[type=number]{width:68px;border-radius:0;border-left:0;border-right:0;-moz-appearance:textfield}.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.sheet{position:fixed;inset:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:20}.sheet-body{background:var(--surface);width:100%;max-width:560px;max-height:88vh;overflow:auto;border-radius:14px 14px 0 0;padding:12px 16px calc(16px + env(safe-area-inset-bottom))}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.row button{flex:1}.rows{width:100%;border-collapse:collapse;font-size:14px}.rows td,.rows th{padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:top;text-align:left}.rows td:last-child,.rows th:last-child{text-align:right;white-space:nowrap}.rows td:first-child{white-space:nowrap;color:var(--muted)}.rows .total td{font-weight:700}.rows tr.clickable{cursor:pointer}.rows tr.hl td{background:var(--chosen)}.timeline td:nth-child(2){word-break:break-word}.standing td:first-child{color:var(--muted);white-space:normal}.standing td{text-align:right}.split{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:8px 0}.tile{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 10px;display:flex;flex-direction:column}.tile span{font-size:12px;color:var(--muted)}.seg{display:flex;gap:6px;margin:8px 0}.seg button{flex:1}.detail{background:var(--surface);border:1px solid var(--accent);border-radius:10px;padding:4px 10px;margin:8px 0}.weeks{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.weeks button{min-width:44px}ul.plain{list-style:none;padding:0;margin:6px 0}ul.plain li{padding:3px 0}details{margin:10px 0}.map text{paint-order:stroke;stroke:var(--surface);stroke-width:.9px;stroke-linejoin:round}.forecast.stale{opacity:.55}.guide{background:var(--chosen);border:1px solid var(--accent);border-radius:10px;padding:8px 12px;margin:8px 0}.guide-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.guide ol,.guide ul{padding-left:20px;margin:6px 0}.guide li{margin:3px 0}.guide>button.primary{margin:6px 0 0}.guide-show{display:block;margin:4px 0}.map.world{background:var(--sea)}.ocean{fill:var(--sea)}.land{fill:var(--landfill);stroke:var(--line);stroke-width:.3}.route.mode-sea{stroke:var(--route0);stroke-width:.7;opacity:.35}.route.mode-rail{stroke:var(--route1);stroke-width:.7;stroke-dasharray:2 1;opacity:.35}.route.mode-air{stroke:var(--muted);stroke-width:.5;stroke-dasharray:.6 1.4;opacity:.35}.route.busy{opacity:1;stroke-width:1.1}.ship{fill:var(--surface);stroke:var(--accent);stroke-width:.6}.ship.delayed{stroke:var(--neg);stroke-width:.9}.ship-icon,.map.world .cargo{font-size:3.6px}.map.world .cargo.planned{fill:var(--accent)}.map.world .hub-label{font-size:4.6px}.map.world .waiting,.map.world .stocked{font-size:3.6px}.stocked{fill:var(--muted)}.hub-market{fill:var(--warn)}.hub-customers{fill:var(--accent)}.market h3{margin:10px 0 2px}.dest summary{cursor:pointer;padding:6px 0;border-top:1px solid var(--line)}.dest[open] summary{font-weight:600}.routes li{font-size:13px;padding:1px 0}.routes li.late{opacity:.55}.levels{margin:8px 0}.join{margin:16px 0 8px}.join label{display:block;font-weight:600;margin-bottom:4px}.join input{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:8px;min-height:40px;flex:2;min-width:0;text-transform:uppercase;letter-spacing:.05em}.world-badge{display:flex;gap:8px;align-items:baseline;margin:2px 0 6px}.world-badge code{font-size:14px;font-weight:600;letter-spacing:.05em}.economy{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--muted);border-radius:10px;padding:8px 12px;margin:8px 0}.economy.phase-boom{border-left-color:var(--pos)}.economy.phase-expansion{border-left-color:var(--accent)}.economy.phase-slowdown{border-left-color:var(--warn)}.economy.phase-recession{border-left-color:var(--neg)}.econ-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.econ-head .phase{display:block;font-size:17px}.econ-rates{display:flex;gap:16px;flex-wrap:wrap;font-size:14px;margin-top:4px}.econ-rates em{font-style:normal;font-size:13px}.spark{width:120px;height:32px;flex:none}.spark path{fill:none;stroke:var(--accent);stroke-width:1.5}.spark circle{fill:var(--accent)}.spark .zero{stroke:var(--line);stroke-width:1}.news{margin:8px 0 0;padding-left:18px;font-size:14px}.news li{margin:3px 0}.suppliers{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.5rem;margin:.25rem 0 .75rem}.supplier{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;text-align:left;padding:.5rem .65rem;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:inherit;font:inherit;cursor:pointer}.supplier.on{background:var(--chosen);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.rating{display:inline-block;min-width:1.3em;padding:0 .3em;border-radius:.3em;font-size:.8em;font-weight:700;text-align:center}.rating.r-A{background:#d9f2e3;color:#11643a}.rating.r-B{background:#fdf0c8;color:#7a5a00}.rating.r-C{background:#fbe0dd;color:#8f2318}.insure{display:flex;gap:.4rem;align-items:center;margin-top:.2rem}.map .loss .wreck{fill:var(--neg);stroke:var(--surface);stroke-width:.6}.map .cargo.lost{fill:var(--neg);font-weight:700}@media(prefers-color-scheme:dark){.rating.r-A{background:#144d2e;color:#c9f0d8}.rating.r-B{background:#4d3d0b;color:#fbe7a6}.rating.r-C{background:#5a1a14;color:#f6c9c3}}.regions{list-style:none;margin:.5rem 0 0;padding:0;display:grid;gap:.25rem}.regions li{display:grid;grid-template-columns:minmax(8rem,1fr) 5rem auto;gap:.5rem;align-items:center;font-size:13px}.tension{display:block;height:6px;border-radius:3px;background:var(--line);overflow:hidden}.tension span{display:block;height:100%}.tension .low{background:var(--pos)}.tension .mid{background:var(--warn)}.tension .high{background:var(--neg)}.route.tense{stroke:var(--warn);opacity:.9}.route.closed{stroke:var(--neg);stroke-dasharray:1 1;opacity:1;stroke-width:1}.dock-action{padding:0 16px}.dock-action button.big{margin:8px 0}
