:root{--bg: rgba(255, 255, 255, .9);--bg-solid: #f7fafb;--ink: #1c2b36;--ink-soft: #435663;--muted: #7c8e9a;--line: rgba(28, 60, 82, .13);--line-strong: rgba(28, 60, 82, .24);--accent: #1d7ae0;--accent-soft: #e6f1fd;--green: #2fa968;--green-soft: #e5f5eb;--red: #dd5348;--red-soft: #fdebe9;--amber: #df9b30;--amber-soft: #fdf3e2;--purple: #8a72d8;--shadow: 0 8px 30px rgba(25, 55, 80, .14);--radius: 12px;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:#a9cfe8}button,input{font-family:inherit}button{cursor:pointer}#renderCanvas{position:absolute;inset:0;width:100%;height:100%;display:block;outline:none;touch-action:none}#hud{position:absolute;inset:0;pointer-events:none;font-size:13px;user-select:none}#hud>*{pointer-events:auto}.glass{background:var(--bg);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border:1px solid var(--line);box-shadow:var(--shadow)}.topbar{position:absolute;top:12px;left:12px;right:12px;height:62px;border-radius:var(--radius);display:flex;align-items:center;gap:14px;padding:0 14px;z-index:20}.brand{display:flex;align-items:center;gap:10px;min-width:168px}.brand-mark{width:34px;height:34px;border-radius:9px;background:linear-gradient(140deg,#1d7ae0,#47b3e6);color:#fff;display:grid;place-items:center;font-size:19px;box-shadow:0 4px 12px #1d7ae059}.brand b{display:block;font-size:16px;letter-spacing:.5px;line-height:1.1}.brand small{display:block;font-size:9px;color:var(--muted);letter-spacing:1.2px;margin-top:2px}.stat-strip{display:flex;align-items:center;gap:4px;flex:1;min-width:0}.stat{display:flex;align-items:center;gap:8px;padding:5px 12px;border-radius:9px;border-right:1px solid var(--line);min-width:106px}.stat:last-child{border-right:none}.stat svg{color:var(--accent);flex:none}.stat small{display:block;font-size:10px;color:var(--muted);line-height:1.2}.stat b{display:block;font-size:15px;font-weight:650;font-variant-numeric:tabular-nums;white-space:nowrap}.stat.money b{color:#167a4a}.stat.negative b{color:var(--red)}.stat.balance b{font-size:13px}.stat.balance.pos b{color:var(--green)}.stat.balance.neg b{color:var(--red)}.speed-controls,.top-actions{display:flex;align-items:center;gap:4px}.speed-controls{background:#1e46640f;padding:4px;border-radius:10px}.icon-btn{width:32px;height:32px;border:0;border-radius:8px;background:transparent;color:var(--ink-soft);display:grid;place-items:center;transition:.14s}.icon-btn:hover{background:#1d7ae01f;color:var(--accent)}.icon-btn.active{background:var(--accent);color:#fff;box-shadow:0 3px 9px #1d7ae052}.icon-btn.danger:hover{background:var(--red-soft);color:var(--red)}.top-actions .icon-btn{border:1px solid var(--line);background:#fff9}.crisis-banner{position:absolute;top:74px;left:50%;transform:translate(-50%);z-index:22;max-width:min(760px,calc(100vw - 540px));padding:7px 16px;border-radius:0 0 10px 10px;font-size:11.5px;line-height:1.45;text-align:center;box-shadow:var(--shadow);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.crisis-banner.hidden{display:none}.crisis-banner.deficit{background:#e6a337f7;color:#3b2700;border:1px solid rgba(160,100,0,.3)}.crisis-banner.bankrupt{background:#be342cf7;color:#fff;border:1px solid rgba(120,20,15,.4);font-size:12px}.crisis-banner b{font-weight:700}.road-mode{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:1px 2px 10px;padding-bottom:9px;border-bottom:1px solid var(--line)}.rm-label{width:100%;font-size:10px;font-weight:700;letter-spacing:1.2px;color:var(--muted)}.rm-btn{flex:1;padding:5px 4px;font-size:10.5px;border:1px solid var(--line);border-radius:7px;background:#ffffffa6;color:var(--ink-soft);transition:.14s}.rm-btn:hover{border-color:var(--accent);background:#fff}.rm-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.toolbar{position:absolute;top:86px;left:12px;width:214px;max-height:calc(100vh - 168px);overflow-y:auto;overflow-x:hidden;border-radius:var(--radius);padding:10px;z-index:15;scrollbar-width:thin;scrollbar-color:rgba(30,70,100,.22) transparent}.toolbar::-webkit-scrollbar{width:6px}.toolbar::-webkit-scrollbar-thumb{background:#1e466433;border-radius:3px}.group-title{font-size:10px;font-weight:700;letter-spacing:1.3px;color:var(--muted);text-transform:uppercase;margin:8px 4px 7px;display:flex;align-items:center;gap:6px}.group-title:after{content:"";flex:1;height:1px;background:var(--line)}.tool-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:6px}.tool-grid.single{grid-template-columns:1fr}.tool-btn{display:flex;align-items:center;gap:7px;min-height:42px;padding:5px 7px;border:1px solid var(--line);border-radius:9px;background:#ffffffa6;color:var(--ink);text-align:left;transition:.14s;position:relative}.tool-btn:hover{border-color:var(--accent);background:#fff;transform:translateY(-1px)}.tool-btn.active{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}.tool-btn.active .tb-icon{background:var(--accent);color:#fff}.tb-icon{width:26px;height:26px;flex:none;border-radius:7px;background:#1e466412;color:var(--ink-soft);display:grid;place-items:center;transition:.14s}.tb-text{min-width:0}.tb-text b{display:block;font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tb-text small{display:block;font-size:9.5px;color:var(--muted);margin-top:1px}.tool-btn.res.active{background:#e9f6ea;border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.tool-btn.res.active .tb-icon{background:var(--green)}.tool-btn.com.active{background:#e8f2fd;border-color:#3585d6;box-shadow:inset 0 0 0 1px #3585d6}.tool-btn.com.active .tb-icon{background:#3585d6}.tool-btn.ind.active{background:#fdf4e5;border-color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber)}.tool-btn.ind.active .tb-icon{background:var(--amber)}.tool-btn.off.active{background:#f0ecfb;border-color:var(--purple);box-shadow:inset 0 0 0 1px var(--purple)}.tool-btn.off.active .tb-icon{background:var(--purple)}.sidepanel{position:absolute;top:86px;right:12px;width:288px;max-height:calc(100vh - 168px);overflow-y:auto;border-radius:var(--radius);z-index:15;display:flex;flex-direction:column;gap:9px;padding:0;background:transparent;box-shadow:none;border:none;scrollbar-width:thin;scrollbar-color:rgba(30,70,100,.22) transparent}.sidepanel::-webkit-scrollbar{width:6px}.sidepanel::-webkit-scrollbar-thumb{background:#1e466433;border-radius:3px}.panel-card{background:var(--bg);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:var(--radius);padding:11px 13px 12px}.panel-card h3{margin:0 0 10px;font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:space-between;letter-spacing:.3px}.panel-card h3 small{font-size:9px;color:var(--muted);font-weight:600;letter-spacing:1px}.rci-row{display:flex;align-items:center;gap:8px;margin-bottom:8px}.rci-row:last-child{margin-bottom:0}.rci-label{width:30px;font-size:11px;font-weight:600;color:var(--ink-soft);flex:none}.rci-track{flex:1;height:9px;border-radius:5px;background:#1e466417;overflow:hidden;position:relative}.rci-track:after{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:#fffc}.rci-fill{height:100%;border-radius:5px;transition:width .35s ease}.rci-val{width:46px;text-align:right;font-size:10.5px;font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap}.rci-val .up{color:#e06b3a}.rci-val .down{color:#2f8f9c}.svc-load{font-size:10px;color:var(--muted);margin:-4px 0 10px;display:flex;justify-content:space-between;align-items:center;padding:4px 7px;border-radius:6px;background:#1e5a8c0f;font-variant-numeric:tabular-nums}.svc-load b{color:var(--accent);font-weight:700}.svc-row{margin-bottom:9px}.svc-row:last-child{margin-bottom:0}.svc-head{display:flex;justify-content:space-between;font-size:11px;margin-bottom:4px}.svc-head span:first-child{color:var(--ink-soft)}.svc-head span:last-child{font-variant-numeric:tabular-nums;color:var(--muted)}.svc-track{height:6px;background:#1e466417;border-radius:4px;overflow:hidden}.svc-fill{height:100%;border-radius:4px;transition:width .35s ease}.kv-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 10px}.kv{display:flex;justify-content:space-between;font-size:11px;border-bottom:1px dashed var(--line);padding-bottom:4px}.kv span{color:var(--muted)}.kv b{font-weight:600;font-variant-numeric:tabular-nums}.chart-wrap{position:relative;margin:2px 0 8px}#chart{width:100%;height:62px;display:block;border-radius:6px;background:#1e466409}.chart-legend{display:flex;gap:12px;font-size:10px;color:var(--muted);margin-top:5px}.chart-legend i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:4px}.tax-row{display:flex;align-items:center;gap:9px;margin-top:10px}.tax-row label{font-size:11px;color:var(--ink-soft);white-space:nowrap}.tax-row input[type=range]{flex:1;accent-color:var(--accent);height:4px}.tax-row b{font-size:12px;width:32px;text-align:right;font-variant-numeric:tabular-nums}.sel-empty{font-size:11px;color:var(--muted);line-height:1.6}.sel-title{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;margin-bottom:8px}.sel-title .dot{width:9px;height:9px;border-radius:3px}.sel-sub{font-size:10.5px;color:var(--muted);margin-bottom:9px}.alert-list{display:flex;flex-direction:column;gap:6px}.alert-item{display:flex;align-items:flex-start;gap:7px;font-size:10.8px;line-height:1.45;padding:7px 8px;border-radius:7px;background:var(--amber-soft);color:#8a5c13}.alert-item svg{flex:none;margin-top:1px}.alert-item.ok{background:var(--green-soft);color:#21724b}.bottombar{position:absolute;bottom:12px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--radius);z-index:15;max-width:calc(100vw - 24px)}.seg{display:flex;align-items:center;gap:3px}.seg-label{font-size:10px;color:var(--muted);margin-right:4px;letter-spacing:.5px}.seg-btn{min-width:30px;height:30px;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:#fff9;color:var(--ink-soft);font-size:11px;display:grid;place-items:center;transition:.14s}.seg-btn:hover{border-color:var(--accent);color:var(--accent)}.seg-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.seg-divider{width:1px;height:24px;background:var(--line);margin:0 3px}.hint{font-size:11px;color:var(--ink-soft);max-width:320px;line-height:1.35;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hint b{color:var(--accent)}.toast-stack{position:absolute;top:86px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:7px;z-index:40;pointer-events:none!important;width:min(520px,90vw)}.toast{background:#1c2b36eb;color:#fff;border:1px solid rgba(255,255,255,.14);padding:9px 15px;border-radius:9px;font-size:12px;box-shadow:0 8px 24px #0003;animation:toastIn .28s ease both;display:flex;align-items:center;gap:8px;max-width:100%}.toast.warn{background:#964a14f0}.toast.good{background:#1c6e48f0}.toast.hide{animation:toastOut .3s ease both}@keyframes toastIn{0%{opacity:0;transform:translateY(-10px) scale(.96)}to{opacity:1;transform:none}}@keyframes toastOut{to{opacity:0;transform:translateY(-8px)}}.modal-wrap{position:absolute;inset:0;z-index:60;background:#1022307a;backdrop-filter:blur(5px);display:grid;place-items:center;padding:20px}.modal-wrap.hidden{display:none}.modal{width:min(660px,94vw);max-height:88vh;overflow-y:auto;background:#fff;border-radius:18px;box-shadow:0 24px 80px #0a1e3259;padding:26px 30px 24px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:6px}.modal h1{margin:0;font-size:25px;letter-spacing:-.5px}.modal .kicker{font-size:10px;letter-spacing:2px;color:var(--accent);font-weight:800;text-transform:uppercase;margin-bottom:6px}.modal .lead{color:var(--ink-soft);font-size:13px;line-height:1.7;margin:8px 0 18px}.modal h2{font-size:13px;margin:20px 0 9px;display:flex;align-items:center;gap:7px}.modal h2 svg{color:var(--accent)}.steps{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.step{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fbfdfe;display:flex;gap:10px;align-items:flex-start}.step-num{width:22px;height:22px;border-radius:6px;flex:none;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:800;display:grid;place-items:center}.step b{font-size:12px;display:block;margin-bottom:3px}.step small{font-size:10.5px;color:var(--muted);line-height:1.5;display:block}.keys{display:grid;grid-template-columns:repeat(2,1fr);gap:7px 16px}.key-row{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--ink-soft)}kbd{background:#eef3f6;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:5px;padding:2px 7px;font-size:10.5px;font-family:inherit;font-weight:700;min-width:26px;text-align:center;color:var(--ink)}.modal-actions{display:flex;gap:9px;margin-top:22px;justify-content:flex-end}.btn{border:0;border-radius:9px;padding:10px 20px;font-size:13px;font-weight:650;transition:.15s}.btn.primary{background:var(--accent);color:#fff;box-shadow:0 5px 16px #1d7ae04d}.btn.primary:hover{background:#1668c4}.btn.ghost{background:#eef3f6;color:var(--ink-soft)}.btn.ghost:hover{background:#e2eaef}.modal-note{font-size:10.5px;color:var(--muted);margin-top:14px;line-height:1.6;border-top:1px solid var(--line);padding-top:12px}@media(max-width:1180px){.sidepanel{width:244px}.hint{max-width:180px}.stat{min-width:92px;padding:5px 8px}.brand{min-width:140px}}@media(max-width:900px){.sidepanel,.brand small{display:none}.stat-strip .stat:nth-child(4){display:none}}
