:root{--font-ui: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Barlow Condensed", "Arial Narrow", system-ui, -apple-system, sans-serif;--fs-11: 11px;--fs-12: 12px;--fs-13: 13px;--fs-14: 14px;--fs-16: 16px;--fs-20: 20px;--fs-24: 24px;--fs-32: 32px;--fs-56: 56px;--lh-tight: 1.15;--lh: 1.45;--lh-loose: 1.6;--tr-ui: -.006em;--tr-ui-l: -.012em;--tr-caps: .06em;--tr-caps-s: .09em;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--surface: rgba(16, 22, 31, .8);--surface-hud: rgba(16, 22, 31, .74);--surface-solid: #141c27;--raised: rgba(255, 255, 255, .05);--raised-2: rgba(255, 255, 255, .09);--raised-3: rgba(255, 255, 255, .14);--sunken: rgba(0, 0, 0, .24);--hairline: rgba(255, 255, 255, .08);--hairline-2: rgba(255, 255, 255, .14);--blur: blur(16px) saturate(140%);--text: #eef2f7;--text-2: #a9b4c3;--text-3: #8490a2;--accent: #ffb020;--accent-2: #ffc95c;--accent-ink: #1b1405;--accent-soft: rgba(255, 176, 32, .16);--rail: #5aa9ff;--road: #ff8a3d;--tram: #c084fc;--station: #3ccb7f;--terrain: #c49a6c;--demolish: #ff5a5f;--pos: #4ade80;--neg: #ff6b6b;--warn: #ffc857;--err: #ff6b6b;--info: #8fc3ff;--r-s: 6px;--r: 10px;--r-l: 14px;--shadow: 0 12px 34px rgba(0, 0, 0, .38);--shadow-s: 0 4px 14px rgba(0, 0, 0, .3);--ease: cubic-bezier(.2, .7, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--t-fast: .12s;--t: .17s}#app{position:fixed;inset:0;overflow:hidden;color:var(--text);font:450 var(--fs-14)/var(--lh) var(--font-ui);letter-spacing:var(--tr-ui);font-feature-settings:"cv11","ss01","ss03";font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;user-select:none;-webkit-user-select:none}#app canvas.gl{display:block;width:100%;height:100%}#app button,#app input,#app select{font:inherit;color:inherit;letter-spacing:inherit}#app button{cursor:pointer;-webkit-tap-highlight-color:transparent}#app button:disabled{cursor:not-allowed}#app :focus{outline:none}#app :focus-visible{outline:2px solid var(--accent);outline-offset:2px}#app b,#app strong{font-weight:600}.ic{display:block;flex:none}.disp{font-family:var(--font-display);font-weight:700;letter-spacing:var(--tr-caps);text-transform:uppercase}.glass{background:var(--surface);border:1px solid var(--hairline);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}.card{background:var(--surface);border:1px solid var(--hairline);box-shadow:var(--shadow-s)}.chrome{background:#10161fe0;border:1px solid var(--hairline);box-shadow:var(--shadow-s)}#app.solid .glass,#app.solid .card,#app.solid .chrome,#app.solid .win,#app.solid .tooltip,#app.solid .uitip,#app.solid .hovercard{background:var(--surface-solid);-webkit-backdrop-filter:none;backdrop-filter:none}.hud{position:absolute;top:10px;z-index:50;display:flex;align-items:center;gap:var(--sp-2)}.hud-tl{left:10px}.hud-tc{left:50%;transform:translate(-50%);flex-direction:column;gap:0;pointer-events:none}.hud-tc>.clock{pointer-events:auto}.hud-tr{right:10px}.plate{display:flex;align-items:center;gap:10px;height:52px;padding:0 14px 0 8px;border-radius:var(--r-l);text-align:left;transition:border-color var(--t-fast),transform var(--t-fast)}.plate:hover{border-color:var(--hairline-2)}.plate:active{transform:translateY(1px)}.plate-chip{width:6px;align-self:stretch;margin:8px 0;border-radius:3px;background:var(--c, var(--accent));box-shadow:0 0 12px var(--c, var(--accent))}.plate-txt{display:flex;flex-direction:column;line-height:1;gap:4px;min-width:0}.plate-name{font:600 var(--fs-11)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.plate-money{font:600 27px/1 var(--font-display);letter-spacing:.01em;color:var(--text);white-space:nowrap}.plate-money.neg{color:var(--neg)}.plate-delta{font:600 var(--fs-13)/1 var(--font-display);letter-spacing:.02em;padding:4px 7px;border-radius:6px;opacity:0;transform:translateY(4px);transition:opacity var(--t) var(--ease),transform var(--t) var(--ease);white-space:nowrap}.plate-delta.show{opacity:1;transform:none}.plate-delta.pos{color:var(--pos);background:#4ade801f}.plate-delta.neg{color:var(--neg);background:#ff6b6b1f}.clock{display:flex;align-items:center;gap:10px;height:42px;padding:0 5px 0 15px;border-radius:999px}.clock-date{font:600 17px/1 var(--font-display);letter-spacing:var(--tr-caps);text-transform:uppercase;min-width:108px;text-align:center}.speed{display:flex;gap:2px;padding:3px;border-radius:999px;background:var(--sunken)}.spd{display:flex;align-items:center;justify-content:center;min-width:34px;height:30px;padding:0 8px;border:0;border-radius:999px;background:none;color:var(--text-2);font:700 var(--fs-13)/1 var(--font-display);letter-spacing:.02em;transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)}.spd:hover{color:var(--text);background:var(--raised-2)}.spd:active{transform:scale(.94)}.spd.on{background:var(--accent);color:var(--accent-ink)}.spd.paused{background:var(--neg);color:#1b0606}.hbtn{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;color:var(--text-2);transition:color var(--t-fast),border-color var(--t-fast),transform var(--t-fast)}.hbtn:hover{color:var(--text);border-color:var(--hairline-2)}.hbtn:active{transform:scale(.95)}.hbtn.on{color:var(--accent);border-color:#ffb02073}.badge{position:absolute;top:-5px;right:-5px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font:700 var(--fs-11)/18px var(--font-display);text-align:center;box-shadow:0 0 0 2px #10161fe6}.fps{font:600 var(--fs-11)/1 var(--font-display);color:var(--text-3);letter-spacing:var(--tr-caps-s);margin-right:2px;min-width:44px;text-align:right;pointer-events:none}.vol{position:relative;display:flex;align-items:center;height:40px;border-radius:12px;padding:0;transition:border-color var(--t-fast)}.vol .hbtn{border:0;background:none;box-shadow:none}.vol-slider{width:0;opacity:0;overflow:hidden;transition:width var(--t) var(--ease),opacity var(--t) var(--ease),padding var(--t) var(--ease);display:flex;align-items:center}.vol:hover .vol-slider,.vol:focus-within .vol-slider{width:96px;opacity:1;padding-right:12px}.vol-slider input{width:84px;accent-color:var(--accent)}.vol.muted .hbtn{color:var(--neg)}.dockwrap{position:absolute;left:50%;bottom:12px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);z-index:50;max-width:calc(100vw - 20px);pointer-events:none}.dockwrap>*{pointer-events:auto}.dock{display:flex;gap:2px;padding:5px;border-radius:18px;max-width:100%;overflow-x:auto;scrollbar-width:none}.dock::-webkit-scrollbar{display:none}.cat{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:74px;height:60px;border:0;border-radius:13px;background:none;color:var(--text-2);flex:none;transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)}.cat:hover{background:var(--raised);color:var(--text)}.cat:active{transform:translateY(1px) scale(.97)}.cat-l{font:600 var(--fs-11)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase}.cat.on{background:var(--raised-2);color:var(--text)}.cat.on:after{content:"";position:absolute;left:24px;right:24px;bottom:4px;height:3px;border-radius:2px;background:var(--c, var(--accent));box-shadow:0 0 10px var(--c, var(--accent))}.cat.on .ic{color:var(--c, var(--accent))}.dock-sep{width:1px;margin:12px 4px;background:var(--hairline);flex:none}.tray{display:flex;gap:var(--sp-1);padding:5px;border-radius:14px;max-width:100%;overflow-x:auto;scrollbar-width:none;animation:rise var(--t) var(--ease);transition:opacity var(--t-fast) var(--ease-in),transform var(--t-fast) var(--ease-in)}.tray>*{animation:rise var(--t) var(--ease) both}.tray>:nth-child(2){animation-delay:25ms}.tray>:nth-child(3){animation-delay:50ms}.tray.leaving{opacity:0;transform:translateY(6px)}.toolb{display:flex;align-items:center;gap:var(--sp-2);height:40px;padding:0 12px 0 10px;border:1px solid transparent;border-radius:10px;background:none;color:var(--text-2);white-space:nowrap;flex:none;font-weight:600;font-size:var(--fs-13);transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)}.toolb:hover{background:var(--raised);color:var(--text)}.toolb:active{transform:scale(.97)}.toolb.key:not(.on){border-color:var(--hairline-2)}.toolb.on{background:var(--raised-2);color:var(--text);border-color:var(--hairline-2)}.toolb.on .ic{color:var(--c, var(--accent))}.toolb kbd{margin-left:2px}.toolcard{position:absolute;right:10px;bottom:90px;z-index:50;width:356px;max-width:calc(100vw - 20px);padding:8px 8px 10px 12px;border-radius:var(--r-l);animation:rise var(--t) var(--ease)}.tc-head{display:flex;align-items:center;gap:6px}.tc-dot{width:8px;height:8px;border-radius:50%;background:var(--c, var(--accent));box-shadow:0 0 10px var(--c, var(--accent));flex:none}.tc-title{font:700 15px/1 var(--font-display);letter-spacing:var(--tr-caps);text-transform:uppercase;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tc-head .ibtn.sm{width:30px;height:30px}.tc-head .ibtn.on{color:var(--accent)}.tc-head .tc-details-toggle,.tc-compact-note{display:none}.tc-desc{color:var(--text-2);font-size:var(--fs-13);margin:2px 0 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tc-help{margin-top:var(--sp-1)}.tc-help p{margin:0;color:var(--text-2);font-size:var(--fs-13);font-weight:400;line-height:var(--lh)}.tc-opts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-2) var(--sp-3);margin-top:var(--sp-2)}.toolcard .segb{height:30px;padding:0 9px}.toolcard .stp{width:30px;height:30px}.toolcard .stp-v{min-width:50px;font-size:var(--fs-13)}.toolcard .switch{padding:2px 0}.toolcard .range{min-width:110px}.opt{display:flex;align-items:center;gap:var(--sp-2)}.opt-l{font:600 var(--fs-11)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;color:var(--text-3)}.tc-keys{display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);margin-top:6px;padding-top:6px;border-top:1px solid var(--hairline);color:var(--text-3);font-size:var(--fs-12)}.tc-keys span{display:inline-flex;align-items:center;gap:var(--sp-1)}kbd{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:5px;background:var(--raised-2);border:1px solid var(--hairline-2);border-bottom-width:2px;color:var(--text);font:600 var(--fs-11)/1 var(--font-ui);letter-spacing:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:0 14px;border-radius:9px;border:1px solid var(--hairline-2);background:var(--raised);color:var(--text);font-weight:600;font-size:var(--fs-13);white-space:nowrap;transition:background var(--t-fast),border-color var(--t-fast),filter var(--t-fast),transform var(--t-fast)}.btn:hover{background:var(--raised-2)}.btn:active{transform:translateY(1px);background:var(--raised-3)}.btn.primary{background:var(--accent);border-color:transparent;color:var(--accent-ink)}.btn.primary:hover{filter:brightness(1.08)}.btn.primary:active{filter:brightness(.95)}.btn.danger{color:#ffd0d1;border-color:#ff5a5f73;background:#ff5a5f1f}.btn.danger:hover{background:#ff5a5f3d}.btn.ghost{border-color:transparent;background:none;color:var(--text-2)}.btn.ghost:hover{color:var(--text);background:var(--raised)}.btn.on{border-color:#ffb02099;background:var(--accent-soft);color:var(--accent-2)}.btn.sm{min-height:30px;padding:0 10px;font-size:var(--fs-12)}.btn.lg{min-height:46px;padding:0 22px;font:700 var(--fs-16)/1 var(--font-display);letter-spacing:var(--tr-caps);text-transform:uppercase}.btn:disabled,.btn:disabled:hover{opacity:.45;filter:none;transform:none;background:var(--raised)}.btn.primary:disabled{background:var(--accent)}.ibtn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:8px;border:1px solid transparent;background:none;color:var(--text-2);flex:none;transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)}.ibtn:hover{color:var(--text);background:var(--raised-2)}.ibtn:active{transform:scale(.93);background:var(--raised-3)}.ibtn:disabled{opacity:.4;background:none;transform:none}.ibtn.sm{width:32px;height:32px;border-radius:8px}.seg{display:inline-flex;gap:2px;padding:2px;border-radius:10px;background:var(--sunken);border:1px solid var(--hairline)}.segb{display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 11px;border:0;border-radius:8px;background:none;color:var(--text-2);font-weight:600;font-size:var(--fs-13);white-space:nowrap;transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)}.segb:hover{color:var(--text);background:var(--raised)}.segb:active{transform:scale(.96)}.segb.on{background:var(--accent);color:var(--accent-ink)}.segb small{font-weight:500;opacity:.75}.stepper{display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:10px;background:var(--sunken);border:1px solid var(--hairline)}.stp{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:0;border-radius:8px;background:none;color:var(--text-2);transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)}.stp:hover{background:var(--raised-2);color:var(--text)}.stp:active{transform:scale(.92)}.stp-v{min-width:60px;text-align:center;font:600 var(--fs-14)/1 var(--font-display);letter-spacing:.03em}.select,.input{height:34px;background:var(--sunken);color:var(--text);border:1px solid var(--hairline-2);border-radius:9px;padding:0 10px;font:inherit;transition:border-color var(--t-fast)}.select:hover,.input:hover{border-color:#ffffff3d}.select:disabled,.input:disabled{opacity:.5}.input{min-width:0}.input:focus,.select:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}.range{flex:1;min-width:90px;accent-color:var(--accent);cursor:pointer}.switch{display:flex;align-items:center;gap:var(--sp-3);padding:7px 0;cursor:pointer}.sw-in{position:absolute;opacity:0;pointer-events:none}.sw{position:relative;width:36px;height:21px;border-radius:11px;background:var(--raised-3);flex:none;transition:background var(--t-fast)}.sw:after{content:"";position:absolute;top:3px;left:3px;width:15px;height:15px;border-radius:50%;background:#dfe5ee;transition:transform var(--t-fast) var(--ease);box-shadow:0 1px 3px #0000004d}.switch:hover .sw{background:#ffffff38}.sw-in:checked+.sw{background:var(--accent)}.sw-in:checked+.sw:after{transform:translate(15px);background:var(--accent-ink)}.sw-in:focus-visible+.sw{outline:2px solid var(--accent);outline-offset:2px}.sw-in:disabled+.sw{opacity:.45}.sw-l{display:flex;flex-direction:column;font-weight:500;line-height:1.3}.sw-l small{color:var(--text-3);font-size:var(--fs-12);font-weight:450}.field{display:grid;grid-template-columns:116px 1fr;align-items:center;gap:var(--sp-1) var(--sp-3);padding:6px 0}.field-l{font:600 var(--fs-11)/1.25 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;color:var(--text-3)}.field-c{display:flex;align-items:center;gap:var(--sp-2);min-width:0;flex-wrap:wrap}.field-h{grid-column:2;color:var(--text-3);font-size:var(--fs-12)}.inline{display:flex;align-items:center;gap:var(--sp-2)}.inline.wrap{flex-wrap:wrap}.spacer{flex:1}.win{position:absolute;display:flex;flex-direction:column;max-height:calc(100vh - 170px);border-radius:var(--r-l);background:var(--surface);border:1px solid var(--hairline);box-shadow:var(--shadow);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);animation:winIn var(--t) var(--ease);max-width:calc(100vw - 16px);transform-origin:50% 30%}.win.closing{animation:winOut var(--t-fast) var(--ease-in) forwards;pointer-events:none}@keyframes winIn{0%{opacity:0;transform:scale(.98) translateY(4px)}}@keyframes winOut{to{opacity:0;transform:scale(.98) translateY(3px)}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}@keyframes fadeIn{0%{opacity:0}}.win-head{display:flex;align-items:center;gap:10px;padding:10px 8px 10px 14px;cursor:grab;border-bottom:1px solid var(--hairline)}.win-head:active{cursor:grabbing}.win-ic{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:color-mix(in srgb,var(--c, var(--accent)) 18%,transparent);color:var(--c, var(--accent));flex:none}.win-tt{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.1}.win-title{font:700 17px/1.1 var(--font-display);letter-spacing:var(--tr-caps);text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.win-sub{color:var(--text-3);font-size:var(--fs-12);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px;letter-spacing:0}.win-sub:empty{display:none}.win-x{width:32px;height:32px}.win-tabs{display:flex;gap:2px;padding:6px 10px 0;border-bottom:1px solid var(--hairline)}.tab{position:relative;height:34px;padding:0 12px;border:0;background:none;color:var(--text-2);font:600 var(--fs-13)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;transition:color var(--t-fast)}.tab:hover{color:var(--text)}.tab:active{color:var(--text-2)}.tab.on{color:var(--text)}.tab:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;border-radius:2px;background:var(--accent);transform:scaleX(0);transition:transform var(--t) var(--ease)}.tab.on:after{transform:scaleX(1)}.win-body{padding:var(--sp-3) 14px 14px;overflow-y:auto;user-select:text;-webkit-user-select:text;overscroll-behavior:contain}.win-body::-webkit-scrollbar{width:8px}.win-body::-webkit-scrollbar-thumb{background:var(--raised-3);border-radius:4px}.sub{color:var(--text-2);margin-bottom:10px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(max(72px,calc(25% - 4.5px)),1fr));gap:6px;margin:2px 0 var(--sp-3)}.tile{padding:10px 11px 9px;border-radius:var(--r);background:var(--raised);border:1px solid var(--hairline);min-width:0;container-type:inline-size}.tile-v{font:600 25px/1 var(--font-display);font-size:clamp(18px,30cqi,25px);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile-k{margin-top:5px;font:600 var(--fs-11)/1.2 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;color:var(--text-3)}.tile.pos .tile-v{color:var(--pos)}.tile.neg .tile-v{color:var(--neg)}.tile.warn .tile-v{color:var(--warn)}.tile .bar{margin-top:8px}.section{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin:var(--sp-4) 0 var(--sp-2);font:700 var(--fs-13)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;color:var(--text-2)}.section:before{content:"";width:3px;height:13px;border-radius:2px;background:var(--accent);margin-right:-2px}.section>span:first-child{flex:1}.section-r{color:var(--text-3);font:500 var(--fs-12)/1 var(--font-ui);letter-spacing:0;text-transform:none}.kv{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);padding:7px 0;border-bottom:1px solid var(--hairline)}.kv:last-child{border-bottom:0}.kv .k{color:var(--text-2);white-space:nowrap}.kv .v{text-align:right;display:flex;align-items:center;justify-content:flex-end;gap:6px;font-weight:600;min-width:0}.kv .v.grow{flex:1;max-width:62%}.muted{color:var(--text-3)}.pad{padding:10px 2px;line-height:var(--lh);color:var(--text-2)}.pos{color:var(--pos)}.neg{color:var(--neg)}.warn-t{color:var(--warn)}.bar{flex:1;height:6px;background:var(--raised-2);border-radius:3px;overflow:hidden;min-width:50px}.bar-fill{height:100%;border-radius:3px;transition:width .3s var(--ease)}.list .row{display:flex;align-items:center;gap:var(--sp-2);min-height:36px;padding:4px 8px;border-radius:8px;transition:background var(--t-fast)}.list .row:nth-child(odd){background:#ffffff06}.list .row:hover{background:var(--raised-2)}.list .row.link:active{background:var(--raised-3)}.list .row>:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list .num{color:var(--text-2);font-weight:600}.ldots{display:inline-flex;gap:3px;flex:none}.ldots i{width:8px;height:8px;border-radius:2px;background:var(--c)}.loopic{display:inline-flex;margin-left:4px;color:var(--text-2);vertical-align:-2px}.walkchip{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 3px;border-radius:4px;background:var(--raised-2);color:var(--text-2);flex:none}.list.stops .row>a{flex:1}.stopn{flex:0 0 auto!important;width:22px;height:22px;border-radius:50%;display:inline-flex!important;align-items:center;justify-content:center;font:700 var(--fs-13)/1 var(--font-display);color:#0e131a}.rowbtns{display:flex;gap:2px}.link,a.link{color:var(--info);cursor:pointer;text-decoration:none;font-weight:600;border-radius:3px}.link:hover{text-decoration:underline;text-underline-offset:2px}.row.link{color:inherit;cursor:pointer}.btns{display:flex;gap:6px;margin-top:var(--sp-3);flex-wrap:wrap;align-items:center}.btns.right{justify-content:flex-end}.stop-opts{display:flex;flex-wrap:wrap;gap:4px 14px;padding:0 8px 6px 44px}.stop-opt{display:inline-flex;align-items:center;gap:8px;color:var(--text-3);font-size:var(--fs-12)}.stop-opt .input{height:28px;padding:0 6px;font-size:var(--fs-12)}.win-body .buybar{position:sticky;bottom:-14px;z-index:2;margin:var(--sp-3) -14px -14px;padding:10px 14px;flex-wrap:nowrap;background:var(--surface-solid);border-top:1px solid var(--hairline);border-radius:0 0 var(--r-l) var(--r-l)}.buybar-sum{flex:1;min-width:0;color:var(--text-2);font-size:var(--fs-13);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.buybar-sum.neg{color:var(--neg)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px 0 9px;border-radius:14px;background:var(--raised);border:1px solid var(--hairline);font-weight:600;font-size:var(--fs-13);cursor:pointer;white-space:nowrap;transition:background var(--t-fast),transform var(--t-fast)}.chip:before{content:"";width:9px;height:9px;border-radius:3px;background:var(--c)}.chip:hover{background:var(--raised-2)}.chip:active{transform:scale(.97)}.owner{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px 0 6px;border-radius:6px;background:var(--raised);font:600 var(--fs-12)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;color:var(--text);white-space:nowrap}.owner i{width:8px;height:8px;border-radius:2px;background:var(--c)}.swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:7px;vertical-align:-1px;flex:none}.swatch.big{width:24px;height:24px;border-radius:7px;cursor:pointer;margin:0;transition:transform var(--t-fast)}.swatch.big:hover{transform:scale(1.08)}.linehead{display:flex;align-items:center;gap:10px;margin-bottom:var(--sp-1)}.linehead .renamable{cursor:text;border-radius:6px;padding:2px 4px;margin:-2px -4px;transition:background var(--t-fast)}.linehead .renamable:hover{background:var(--raised-2)}.autobadge{padding:2px 6px;border-radius:5px;background:var(--raised-2);color:var(--text-3);font:600 var(--fs-11)/1.2 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase}.palette{display:grid;grid-template-columns:repeat(auto-fill,minmax(28px,1fr));gap:6px;padding:10px;margin:6px 0 10px;border-radius:var(--r);background:var(--sunken);border:1px solid var(--hairline);animation:rise var(--t) var(--ease)}.pal{height:28px;border-radius:7px;border:2px solid transparent;background:var(--c);cursor:pointer;transition:transform var(--t-fast)}.pal:hover{transform:scale(1.08)}.pal:active{transform:scale(.95)}.pal.on{border-color:#fff;box-shadow:0 0 0 2px #0006}.pal.auto{background:conic-gradient(#e6194b,#ffe119,#3cb44b,#46f0f0,#4363d8,#f032e6,#e6194b);color:#0d1219;font:700 var(--fs-13)/1 var(--font-display);text-shadow:0 0 3px #fff}.chip:has(>.ic):before{display:none}.slider{display:flex;align-items:center;gap:var(--sp-2);flex:1}.slider span{color:var(--text-3);font-size:var(--fs-11);font-weight:500;white-space:nowrap;min-width:46px}.slider .sl-hi{text-align:right}.inline-pal{grid-template-columns:repeat(6,28px);padding:6px;margin:0}.pal:disabled{opacity:.25;cursor:not-allowed;transform:none}.pal.custom{position:relative;display:grid;place-items:center;background:var(--raised-2);border:2px dashed var(--hairline-2);color:var(--text-2);overflow:hidden}.pal.custom.on{border-style:solid;border-color:#fff}.pal.custom input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;padding:0}.slider .sl-v{min-width:118px;text-align:right;color:var(--text-2);font-size:var(--fs-12);font-variant-numeric:tabular-nums}.presets{display:flex;flex-wrap:wrap;gap:4px}.presets .segb{height:28px;padding:0 10px;background:var(--raised);border:1px solid var(--hairline)}.presets .segb.on{background:var(--accent);color:var(--accent-ink);border-color:transparent}.presets+.field-h{margin-top:5px}.acc{display:flex;align-items:center;gap:var(--sp-3);padding:6px 0;border-bottom:1px solid var(--hairline)}.acc:last-of-type{border-bottom:0}.acc-l{flex:1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}.acc-s{color:var(--text-3);font-size:var(--fs-12);line-height:1.35}.acc-t{display:flex;align-items:center;gap:6px}.mult{display:inline-flex;align-items:center;height:20px;padding:0 6px;border-radius:6px;background:var(--sunken);border:1px solid var(--hairline);font:600 var(--fs-12)/1 var(--font-display);letter-spacing:.03em;color:var(--text-2)}.explain{margin:0 0 var(--sp-2);padding:10px 12px;border-radius:var(--r);background:var(--sunken);border:1px solid var(--hairline);color:var(--text-2);font-size:var(--fs-13);line-height:1.45}.explain p{margin:0}.explain b{color:var(--text)}.explain .ex{display:flex;gap:7px;align-items:flex-start;margin-top:7px;color:var(--text);font-weight:500}.explain .ex .ic{color:var(--accent);flex:none;margin-top:1px}.slider.wide .sl-v{min-width:176px}.blockgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.blockgrid .switch{padding:5px 0;min-width:0}.blockgrid .sw-l{flex-direction:row;align-items:center;flex-wrap:wrap;gap:0 6px;min-width:0}.blockgrid .sw-l small{color:var(--neg)}.codot{width:8px;height:8px;border-radius:2px;background:var(--c);flex:none}.flag{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:5px;font:600 var(--fs-11)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase}.flag.warn{background:#ffc85724;color:var(--warn)}.acc.req{margin:4px 0;padding:8px 10px;border-radius:var(--r);background:#ffc8570f;border:1px solid rgba(255,200,87,.25)}.toast-act{margin-left:auto;padding-left:10px;color:var(--accent);font-weight:700;white-space:nowrap}.toast .toast-btn{margin-left:auto;flex:none}.btn .cnt{min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--warn);color:#0d1219;font:700 var(--fs-11)/18px var(--font-display);text-align:center}.acc .switch{flex:none;padding:0}.switch:has(.sw-in:disabled){cursor:not-allowed}.tbl tr.after td{color:var(--text-3)}.linechip{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:2px 8px 2px 6px;border-radius:6px;background:color-mix(in srgb,var(--c) 18%,transparent);border-left:3px solid var(--c);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.linechip .ic{color:var(--c)}.chip .ic{color:var(--c);margin-left:-2px}.linehead b{flex:1;font:700 var(--fs-20)/1.1 var(--font-display);letter-spacing:.03em}.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-13)}.tbl th{text-align:left;padding:7px 8px;font:600 var(--fs-11)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;color:var(--text-3);border-bottom:1px solid var(--hairline-2);white-space:nowrap}.tbl td{padding:8px;white-space:nowrap}.tbl tr:nth-child(2n) td{background:#ffffff08}.tbl td.ellip{max-width:180px;overflow:hidden;text-overflow:ellipsis}.tbl tr.clickable{cursor:pointer}.tbl tr.clickable:hover td{background:var(--raised-2)}.tbl tr.clickable:active td{background:var(--raised-3)}.tbl.fin td:not(:first-child),.tbl.fin th:not(:first-child),.tbl td.r,.tbl th.r{text-align:right}.tbl tr.total td{font-weight:700;border-top:1px solid var(--hairline-2);background:none}.chart{display:block;width:100%;height:150px;border-radius:var(--r);background:var(--sunken);border:1px solid var(--hairline)}.legend{display:flex;flex-wrap:wrap;gap:var(--sp-1) 14px;margin-top:var(--sp-2);color:var(--text-2);font-size:var(--fs-12)}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:12px;height:3px;border-radius:2px;background:var(--c)}.model{padding:9px 11px;border-radius:var(--r);border:1px solid var(--hairline);background:var(--raised);cursor:pointer;margin:5px 0;transition:border-color var(--t-fast),background var(--t-fast),transform var(--t-fast)}.model:hover{background:var(--raised-2)}.model:active{transform:scale(.99)}.model.sel{border-color:#ffb020b3;background:var(--accent-soft)}.mname{display:flex;justify-content:space-between;gap:var(--sp-2);font-weight:600}.mcost{font:600 var(--fs-16)/1.2 var(--font-display);letter-spacing:.02em;color:var(--accent-2)}.mstats{display:flex;flex-wrap:wrap;gap:2px 12px;color:var(--text-3);font-size:var(--fs-12);margin-top:var(--sp-1)}.mstats span{display:inline-flex;align-items:center;gap:var(--sp-1)}.consist{display:flex;gap:2px;height:16px;margin:2px 0 var(--sp-2);padding:3px;border-radius:7px;background:var(--sunken);border:1px solid var(--hairline)}.consist .car{min-width:5px;border-radius:3px;background:var(--c);box-shadow:inset 0 -3px #00000047,inset 0 1px #ffffff40}.consist .car.loco{border-radius:7px 3px 3px 7px}.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:6px;margin-top:var(--sp-3)}.warn{margin-top:var(--sp-2);padding:9px 11px;border-radius:var(--r);background:#ffc8571a;border:1px solid rgba(255,200,87,.35);color:var(--warn);font-size:var(--fs-13);font-weight:500;display:flex;gap:var(--sp-2);align-items:flex-start;line-height:1.4}.menu-item{display:flex;align-items:center;gap:var(--sp-3);width:100%;height:40px;padding:0 10px;border:0;border-radius:9px;background:none;color:var(--text);font-weight:500;text-align:left;transition:background var(--t-fast)}.menu-item:hover{background:var(--raised-2)}.menu-item:active{background:var(--raised-3)}.menu-item .ic{color:var(--text-2)}.slot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r);background:var(--raised);border:1px solid var(--hairline);margin-top:6px}.slot b{font:700 var(--fs-16)/1.2 var(--font-display);letter-spacing:.03em}.slot .muted{font-size:var(--fs-12)}.help h4{margin:var(--sp-4) 0 6px;font:700 var(--fs-13)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;color:var(--accent)}.help h4:first-child{margin-top:var(--sp-1)}.help p,.help li{line-height:var(--lh-loose);color:var(--text-2);font-weight:400}.help li+li{margin-top:2px}.help b{color:var(--text);font-weight:600}.help ol,.help ul{padding-left:20px;margin:var(--sp-1) 0}.help kbd{margin:0 1px}.tooltip{position:fixed;left:0;top:0;z-index:9999;pointer-events:none;display:none;min-width:160px;max-width:300px;padding:10px 12px;border-radius:12px;background:#0d121aeb;border:1px solid var(--hairline-2);box-shadow:var(--shadow);font-size:var(--fs-13);line-height:1.35;color:var(--text-2);will-change:transform}.tooltip.ok{border-color:#4ade8066}.tooltip.err{border-color:#ff6b6b73}.tt-cost{font:600 26px/1 var(--font-display);color:var(--text);letter-spacing:.01em;margin-bottom:var(--sp-1)}.tooltip.err .tt-cost{color:#ffc4c4}.tt-title{font:700 var(--fs-14)/1.15 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;color:var(--text);margin-bottom:var(--sp-1)}.tt-rows{display:grid;gap:3px;margin-top:var(--sp-1)}.tt-row{display:flex;align-items:center;gap:var(--sp-2);color:var(--text-2);font-weight:500}.tt-row .ic{color:var(--text-3)}.tt-row b{color:var(--text);font-weight:600}.tt-hot{color:var(--warn);font-weight:600}.tt-pills{display:flex;flex-wrap:wrap;gap:var(--sp-1);margin-top:var(--sp-2)}.pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px 3px 7px;border-radius:999px;font-weight:600;font-size:var(--fs-12);line-height:1.3}.pill.err{background:#ff6b6b29;color:#ffb3b3;border:1px solid rgba(255,107,107,.4)}.pill.warn{background:#ffc85721;color:var(--warn);border:1px solid rgba(255,200,87,.35)}.pill.ok{background:#4ade801f;color:var(--pos);border:1px solid rgba(74,222,128,.32)}.pill.info{background:var(--raised-2);color:var(--text-2);border:1px solid var(--hairline-2)}.tt-hint{margin-top:6px;color:var(--text-3);font-size:var(--fs-12)}.uitip{position:fixed;left:0;top:0;z-index:10000;pointer-events:none;display:flex;align-items:center;gap:var(--sp-2);padding:6px 9px 6px 11px;border-radius:9px;background:#0d121af0;border:1px solid var(--hairline-2);box-shadow:var(--shadow-s);font-size:var(--fs-13);font-weight:600;line-height:1.35;color:var(--text);white-space:normal;width:max-content;max-width:300px;opacity:0;transform:translateY(3px);transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.uitip.show{opacity:1;transform:none}.uitip small{color:var(--text-3);font-weight:500;font-size:var(--fs-12)}.hovercard{position:absolute;left:0;top:0;z-index:30;pointer-events:none;min-width:170px;max-width:260px;padding:9px 11px 10px;border-radius:12px;background:#0d121ae6;border:1px solid var(--hairline-2);border-left:3px solid var(--c, var(--accent));box-shadow:var(--shadow);will-change:transform;opacity:0;transition:opacity var(--t-fast) var(--ease)}.hovercard.show{opacity:1}.hovercard:after{content:"";position:absolute;left:50%;bottom:-6px;width:10px;height:10px;margin-left:-5px;background:inherit;border-right:1px solid var(--hairline-2);border-bottom:1px solid var(--hairline-2);transform:rotate(45deg)}.hc-title{display:flex;align-items:center;gap:7px;font:700 var(--fs-16)/1.1 var(--font-display);letter-spacing:var(--tr-caps);text-transform:uppercase;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hc-title .ic{color:var(--c, var(--accent))}.hc-sub{margin-top:2px;color:var(--text-3);font-size:var(--fs-12);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hc-stats{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:7px}.hc-stat{display:inline-flex;align-items:center;gap:5px;color:var(--text-2);font-size:var(--fs-13);font-weight:500}.hc-stat b{color:var(--text);font-weight:650}.hc-stat .ic{color:var(--text-3)}.hc-hint{margin-top:6px;color:var(--text-3);font-size:var(--fs-11);font-weight:500;letter-spacing:.01em}.toasts{position:absolute;top:60px;right:10px;display:flex;flex-direction:column;gap:6px;align-items:flex-end;z-index:75;pointer-events:none;width:min(420px,calc(100vw - 20px))}.toast{display:flex;align-items:center;gap:10px;max-width:100%;padding:10px 15px 10px 12px;border-radius:12px;background:#10161fed;border:1px solid var(--hairline-2);box-shadow:var(--shadow-s);font-weight:550;font-size:var(--fs-14);pointer-events:auto;animation:rise var(--t) var(--ease);transition:opacity .4s,transform .4s}.toast .ic{color:var(--text-2)}.toast.bad{border-color:#ff6b6b80;color:#ffd2d2}.toast.bad .ic{color:var(--neg)}.toast.good{border-color:#4ade8073;color:#d4f8de}.toast.good .ic{color:var(--pos)}.toast.news{border-left:3px solid var(--info);cursor:default;font-weight:500}.toast.news.good{border-left-color:var(--pos)}.toast.news.bad{border-left-color:var(--neg)}.toast.news.vehicle{border-left-color:var(--accent)}.toast.news.ai{border-left-color:#b38cff}.toast.news.link{cursor:pointer}.toast.news.link:hover{border-color:var(--hairline-2);background:#161e2af2}.toast.out{opacity:0;transform:translateY(-6px)}.finance-toast{flex-wrap:wrap}.finance-toast>span{flex:1;min-width:160px}.finance-actions{gap:6px}.finance-toast>.finance-actions{margin-left:auto}.tooltip .finance-actions{pointer-events:auto;margin-top:8px}.news-date{font:600 var(--fs-11)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;color:var(--text-3);white-space:nowrap}.drawer{position:absolute;top:64px;right:10px;bottom:var(--dock-clearance, 92px);width:min(390px,calc(100vw - 20px));z-index:70;display:flex;flex-direction:column;border-radius:var(--r-l);animation:rise var(--t) var(--ease)}.drawer-head{display:flex;align-items:center;gap:var(--sp-2);padding:10px 8px 10px 14px;border-bottom:1px solid var(--hairline);font:700 17px/1 var(--font-display);letter-spacing:var(--tr-caps);text-transform:uppercase}.drawer-head span{flex:1}.drawer-body{overflow-y:auto;padding:6px 8px 10px}.news-row{display:grid;grid-template-columns:4px 1fr;gap:10px;padding:10px 6px;border-bottom:1px solid var(--hairline);line-height:1.45;font-size:var(--fs-13)}.news-row i{border-radius:2px;background:var(--info)}.news-row.good i{background:var(--pos)}.news-row.bad i{background:var(--neg)}.news-row.vehicle i{background:var(--accent)}.news-row.ai i{background:#b38cff}.news-row.link{cursor:pointer;border-radius:8px;transition:background var(--t-fast)}.news-row.link:hover{background:var(--raised)}.news-row .news-date{display:block;margin-bottom:var(--sp-1)}.floats{position:absolute;inset:0;pointer-events:none;z-index:20;overflow:hidden}.float{position:absolute;left:0;top:0;font:700 var(--fs-16)/1 var(--font-display);letter-spacing:.03em;white-space:nowrap;will-change:transform,opacity;text-shadow:0 1px 2px rgba(0,0,0,.9),0 0 8px rgba(0,0,0,.55)}.float.income{color:var(--pos);font-size:18px}.float.cost{color:#ff9b9b}.checklist{position:absolute;left:10px;top:72px;z-index:45;width:286px;max-width:calc(100vw - 20px);border-radius:var(--r-l);animation:rise var(--t) var(--ease);overflow:hidden}.cl-head{display:flex;align-items:center;gap:var(--sp-2);padding:8px 6px 8px 12px}.cl-head .ic{color:var(--accent)}.cl-title{flex:1;font:700 var(--fs-14)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase}.cl-prog{font:700 var(--fs-13)/1 var(--font-display);color:var(--text-2);letter-spacing:.04em}.cl-bar{height:3px;margin:0 12px;border-radius:2px;background:var(--raised-2);overflow:hidden}.cl-bar i{display:block;height:100%;background:var(--accent);border-radius:2px;transition:width .4s var(--ease)}.cl-steps{padding:6px 8px 10px}.cl-step{display:grid;grid-template-columns:22px 1fr;gap:2px 8px;align-items:start;padding:6px 4px;border-radius:8px}.cl-step .ic{margin-top:1px;color:var(--text-3)}.cl-step.done .ic{color:var(--pos)}.cl-step.done .cl-t{color:var(--text-3);text-decoration:line-through;text-decoration-color:#8490a299}.cl-step.cur{background:var(--raised)}.cl-step.cur .ic{color:var(--accent)}.cl-t{font-weight:600;font-size:var(--fs-13);line-height:1.35}.cl-h{grid-column:2;color:var(--text-2);font-size:var(--fs-12);line-height:1.4;white-space:pre-line}.cl-step .btn{grid-column:2;justify-self:start;margin-top:5px}.checklist.collapsed .cl-steps{display:none}.checklist.done .cl-head .ic{color:var(--pos)}.mapcard{position:absolute;left:10px;bottom:284px;z-index:46;width:232px;max-height:calc(100vh - 380px);display:flex;flex-direction:column;border-radius:var(--r-l);animation:rise var(--t) var(--ease)}.mc-head{display:flex;align-items:center;gap:var(--sp-2);padding:8px 6px 8px 12px}.mc-head>.ic{color:var(--accent)}.mc-title{flex:1;font:700 var(--fs-14)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase}.mc-sub{font:600 var(--fs-12)/1 var(--font-display);color:var(--text-2);letter-spacing:.04em}.mc-body{min-height:0;padding:0 10px 10px;overflow:hidden auto}.mc-list{display:grid;grid-template-columns:minmax(0,1fr);gap:2px;margin-top:6px}.mc-row{display:flex;align-items:center;gap:var(--sp-2);min-width:0;min-height:30px;padding:3px 6px;border-radius:7px;cursor:pointer;font-size:var(--fs-13);font-weight:500;transition:background var(--t-fast)}.mc-row .ic,.mc-num{flex:none}.mc-row:hover,.mc-row.on{background:var(--raised-2)}.mc-row:active{background:var(--raised-3)}.mc-row>i{width:14px;height:4px;border-radius:2px;flex:none}.mc-row>i.mc-ring{width:12px;height:12px;border-radius:50%;background:color-mix(in srgb,var(--c) 22%,transparent);border:2px solid var(--c)}.mc-row>span:not(.mc-own):not(.mc-num):not(.lsym):not(.lcolor){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mc-row .ic{color:var(--text-3)}.mc-own{width:8px;height:8px;border-radius:2px;background:var(--c);flex:none}.mc-num{font:600 var(--fs-12)/1 var(--font-display);color:var(--text-2);letter-spacing:.03em}.mc-note{margin-top:6px;color:var(--text-3);font-size:var(--fs-12);line-height:1.4}.mc-sec{margin:10px 0 2px;font:700 var(--fs-11)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;color:var(--text-3)}.mc-empty{color:var(--text-3);font-size:var(--fs-13);padding:6px 0}.mc-grad{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-12);color:var(--text-2)}.mc-grad i{flex:1;height:6px;border-radius:3px;background:linear-gradient(90deg,#ff5a5f,#ffb020,#4ade80)}.mc-stats{display:grid;gap:3px;margin-top:8px}.mc-stats>div{display:flex;align-items:baseline;gap:7px;font-size:var(--fs-12);color:var(--text-2)}.mc-stats b{font:600 var(--fs-16)/1 var(--font-display);color:var(--text);letter-spacing:.02em;min-width:44px;text-align:right;font-variant-numeric:tabular-nums}.minimap{position:absolute;left:10px;bottom:12px;z-index:45;border-radius:var(--r-l);overflow:hidden;width:232px;transition:width var(--t) var(--ease)}.mm-head{display:flex;align-items:center;gap:2px;height:36px;padding:0 4px 0 12px}.mm-title{flex:1;font:700 var(--fs-12)/1 var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--text-2)}.mm-view{position:relative;width:216px;height:216px;margin:0 8px 8px;border-radius:9px;overflow:hidden;background:#0c1118}.mm-view canvas{position:absolute;left:0;top:0;width:100%;height:100%}.mm-view .mm-over{cursor:crosshair}.mm-layer.on{color:var(--accent)}.minimap.collapsed{width:180px}.minimap.collapsed .mm-view,.minimap.collapsed .mm-layer{display:none}.labels{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:5}.lbl{position:absolute;left:0;top:0;display:flex;align-items:center;gap:5px;pointer-events:auto;cursor:pointer;white-space:nowrap;transform-origin:50% 100%;will-change:transform;contain:layout style}.lbl.town{flex-direction:column;gap:3px}.lbl-name{font:700 15px/1 var(--font-display);letter-spacing:.07em;text-transform:uppercase;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.75),0 0 10px rgba(0,0,0,.45)}.lbl.town.big .lbl-name{font-size:19px}.lbl-pop{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:999px;background:#10161fbd;border:1px solid rgba(255,255,255,.12);font:600 12px/1.15 var(--font-display);letter-spacing:.04em;color:#dbe3ec}.lbl-pop .up{color:var(--pos)}.lbl.stn{gap:0;padding:2px;border-radius:8px;background:var(--c, #3ccb7f);box-shadow:0 2px 8px #00000073;color:var(--ink, #0d1219)}.lbl.stn .lbl-ico{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:6px;background:#0000002e}.lbl.stn .lbl-name{padding:0 6px 0 5px;font-size:13px;letter-spacing:.05em;color:inherit;text-shadow:none}.lbl.stn .lbl-wait{padding:0 6px;height:20px;display:flex;align-items:center;border-radius:6px;background:#0d121ad9;color:#eef2f7;font:600 12px/1 var(--font-display);letter-spacing:.03em}.lbl.stn .lbl-mark{margin-right:3px;padding:0 6px;height:20px;display:flex;align-items:center;border-radius:6px;color:#0d1219;font:700 12px/1 var(--font-display);box-shadow:inset 0 0 0 1.5px #fff9}.lbl.stn.dim{filter:saturate(.25) brightness(.85);opacity:.85}.lbl.stn.hl{box-shadow:0 0 0 2px #fff,0 4px 14px #00000080}.lbl.stn.noroad:after{content:"!";position:absolute;top:-7px;right:-7px;width:16px;height:16px;border-radius:50%;background:var(--neg);color:#fff;font:800 11px/16px var(--font-display);text-align:center;box-shadow:0 0 0 2px #0d121ae6}.lbl:hover{filter:brightness(1.12)}.lbl.tag{max-width:170px;padding:3px 8px;border-radius:7px;background:var(--c);color:var(--ink, #fff);border:1px solid rgba(0,0,0,.45);box-shadow:0 2px 6px #00000073;overflow:hidden}.lbl.tag .lbl-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;font:700 11px/1.1 var(--font-display);letter-spacing:.04em;text-transform:none;color:inherit;text-shadow:none}.lbl.tag.hl{box-shadow:0 0 0 2px #fff,0 3px 10px #0000008c}.title{position:absolute;inset:0;z-index:90000;display:flex;padding:var(--sp-6);overflow:auto;pointer-events:auto;background:radial-gradient(ellipse at 30% 40%,#0a0e1459,#080b10d1);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.title *{pointer-events:auto}.title-row{margin:auto;display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:28px;width:100%;max-width:100%}.title-main{display:flex;flex-direction:column;gap:22px;flex:0 0 420px;min-width:min(280px,100%);max-width:420px;animation:fadeIn .3s var(--ease)}.wordmark{font:700 clamp(56px,9vw,104px)/.86 var(--font-display);letter-spacing:.035em;color:#fff;text-shadow:0 4px 30px rgba(0,0,0,.5)}.wordmark span{color:var(--accent)}.motif{display:block;width:100%;max-width:380px;height:auto;margin-top:-6px}.tagline{color:var(--text-2);font-size:var(--fs-16);font-weight:450;line-height:var(--lh);letter-spacing:var(--tr-ui-l);margin-top:-8px;max-width:360px}.title-menu{display:flex;flex-direction:column;gap:6px}.tm-btn{display:flex;align-items:center;gap:var(--sp-3);height:52px;padding:0 16px;border-radius:12px;border:1px solid var(--hairline-2);background:var(--surface);color:var(--text);text-align:left;font:700 var(--fs-20)/1 var(--font-display);letter-spacing:var(--tr-caps);text-transform:uppercase;transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-fast)}.tm-btn small{margin-left:auto;font:500 var(--fs-12)/1 var(--font-ui);letter-spacing:0;text-transform:none;color:var(--text-3)}.tm-btn:hover{border-color:#ffb0208c;background:#181f2aeb}.tm-btn:active{transform:scale(.99)}.tm-btn.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}.tm-btn.primary:hover{filter:brightness(1.06)}.tm-btn.primary small{color:#1b1405b3}.tm-btn .ic{color:inherit}.savechip{display:inline-flex;align-items:center;gap:4px;align-self:center;padding:2px 8px 2px 6px;border-radius:999px;background:#0d121ab8;border:1px solid var(--hairline);color:var(--text-3);font:600 var(--fs-11)/1.3 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;opacity:0;transform:translateY(-3px);transition:opacity var(--t) var(--ease),transform var(--t) var(--ease);pointer-events:none}.savechip.show{opacity:1;transform:none}.savechip.saved .ic{color:var(--pos)}.savechip.error,.savechip.memory{color:var(--warn)}.storage-banner{position:absolute;z-index:95000;top:60px;right:12px;display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100vw - 24px);padding:10px 12px;border:1px solid var(--warn);border-radius:var(--r-m);background:var(--surface-solid);color:var(--text);box-shadow:var(--shadow);pointer-events:auto;font-size:var(--fs-13)}.storage-banner>.ic{color:var(--warn);flex-shrink:0}.storage-banner>span{flex:1}.storage-banner button{flex-shrink:0}@media(max-width:640px){.storage-banner{top:100px;flex-wrap:wrap;width:calc(100vw - 24px)}.storage-banner>span{min-width:190px}}.ng-card{flex:0 0 auto;width:min(470px,100%);padding:var(--sp-4) 18px 18px;border-radius:18px;animation:rise var(--t) var(--ease)}@media(max-width:1040px){.title-main{flex:0 1 420px}}@media(max-width:760px){.title-row{flex-wrap:wrap}.title-main{flex:1 1 100%}}.ng-title{font:700 var(--fs-24)/1 var(--font-display);letter-spacing:var(--tr-caps);text-transform:uppercase;margin-bottom:var(--sp-2)}.ai-chips{display:flex;gap:5px;flex-wrap:wrap}.ai-chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px 0 7px;border-radius:6px;background:var(--raised);font:600 var(--fs-12)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase}.ai-chip i{width:9px;height:9px;border-radius:3px;background:var(--c)}.title-foot{color:var(--text-3);font-size:var(--fs-12)}.title-ver{position:absolute;left:max(14px,env(safe-area-inset-left));bottom:max(10px,env(safe-area-inset-bottom));color:var(--text-3);font:600 var(--fs-12)/1 var(--font-display);letter-spacing:var(--tr-caps-s)}@media(max-width:920px){.title.card-open .title-main{display:none}}.leftcol{display:contents}@media(min-width:721px){.leftcol{position:absolute;left:10px;top:72px;bottom:12px;z-index:45;width:286px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;pointer-events:none}.leftcol.below-debug{top:214px}.leftcol>*{pointer-events:auto}.leftcol>.checklist,.leftcol>.mapcard,.leftcol>.minimap{position:relative;inset:auto;z-index:auto;flex:none}.leftcol>.mapcard{flex:0 1 auto;min-height:96px;max-height:none}.leftcol>.checklist{flex:0 1 auto;min-height:46px;display:flex;flex-direction:column}.leftcol>.checklist>*{flex:none}.leftcol>.checklist>.cl-steps{flex:0 1 auto;min-height:0;overflow-y:auto}.leftcol>.minimap{margin-top:auto}}@media(min-width:721px)and (max-width:1100px){.leftcol{bottom:96px}}#app>div[style*=monospace]{left:10px!important;top:70px!important;bottom:auto!important;z-index:49!important}@media(max-width:1100px){.minimap{bottom:96px}.cat{width:64px}.fps,.vol-slider{display:none}#app.debug-ui .fps{display:block;position:absolute;right:0;top:44px}}@media(max-width:1279px){.dockwrap{width:calc(100vw - 20px)}.dock,.tray{min-width:0;box-sizing:border-box;overflow-x:auto;touch-action:pan-x;overscroll-behavior-x:contain}.vol-slider{display:none}.toolcard{width:calc(288px * var(--uis, 1));box-sizing:border-box;max-height:min(42vh,calc(100dvh - var(--dock-clearance, 90px) - 116px * var(--uis, 1)));overflow-y:auto}.toolcard .tc-details-toggle{display:inline-flex}.toolcard:not(.expanded) .tc-secondary{display:none}.toolcard .tc-compact-note{display:block;margin-top:4px;color:var(--text-2);font-size:var(--fs-12);overflow-wrap:anywhere}.toolcard .tc-opts{gap:6px 8px}.toolcard .opt{flex-wrap:wrap;min-width:0;max-width:100%}.toolcard .seg{max-width:100%;flex-wrap:wrap}.toolcard .segb{padding:0 7px}.leftcol{bottom:var(--dock-clearance, 90px)}.win{top:auto!important;bottom:var(--dock-clearance, 90px);max-height:calc(100dvh - var(--dock-clearance, 90px) - 78px)}.drawer{bottom:var(--dock-clearance, 90px)}}@media(min-width:721px)and (max-width:1279px)and (max-height:768px){.has-tool-card .leftcol,.has-tool-card .checklist{width:250px}}@media(max-width:720px){.hud{top:6px}.hud-tl{left:6px}.hud-tr{right:6px;gap:var(--sp-1)}.hud-tc{top:60px;left:6px;right:6px;transform:none;align-items:center}.hud-tl{max-width:calc(100vw - 186px)}.hud-tl .plate{min-width:0;max-width:100%;box-sizing:border-box}.hud-tr .vol,.hud-tr .hbtn[data-key=C],.hud-tr .hbtn[data-key=K]{display:none}.plate{height:46px;padding:0 10px 0 6px}.plate-name{max-width:120px}.plate-money{font-size:22px}.plate-delta,.fps,.vol-slider{display:none}.hbtn{width:38px;height:38px}.clock{height:38px;width:100%;max-width:390px;box-sizing:border-box;justify-content:space-between}.clock-date{min-width:90px;font-size:15px}.spd{min-width:32px;height:28px;padding:0 6px}.toasts{top:108px}.dockwrap{bottom:6px;width:calc(100vw - 12px);max-width:calc(100vw - 12px)}.cat{width:60px;height:54px}.tc-desc{display:none}.toolcard{left:6px;right:6px;width:auto;max-width:none}.leftcol{position:absolute;display:flex;flex-direction:column;align-items:flex-start;gap:6px;left:6px;right:6px;top:112px;bottom:var(--dock-clearance, 80px);width:auto;z-index:45;pointer-events:none}.leftcol.below-debug{top:252px}.leftcol>*{pointer-events:auto}.leftcol>.checklist,.leftcol>.minimap,.leftcol>.mapcard{position:relative;inset:auto;flex:none;max-width:100%}.leftcol>.checklist{width:min(286px,100%);align-self:flex-end;flex:0 1 auto;min-height:46px;display:flex;flex-direction:column}.leftcol>.checklist>*{flex:none}.leftcol>.checklist>.cl-steps{flex:0 1 auto;min-height:0;overflow-y:auto}.leftcol>.minimap{width:180px;margin-top:auto}.mm-view{width:164px;height:164px}.mm-head{flex-wrap:wrap;height:auto;min-height:36px;padding:3px 4px 3px 8px}.leftcol>.mapcard{width:100%;max-height:30vh;flex:0 1 auto;min-height:46px}.hovercard{display:none}.win{position:fixed;left:6px!important;right:6px;top:auto!important;bottom:var(--dock-clearance, 80px);width:auto!important;max-width:none;max-height:min(62vh,calc(100dvh - var(--dock-clearance, 80px) - 112px));border-radius:18px;animation:sheetIn var(--t) var(--ease)}.win.closing{animation:sheetOut var(--t-fast) var(--ease-in) forwards}.win-head{cursor:default}.drawer{top:108px;bottom:var(--dock-clearance, 80px);right:6px}.title{padding:var(--sp-4)}.title-row{gap:var(--sp-4)}.field{grid-template-columns:96px 1fr}.blockgrid{grid-template-columns:1fr}.slider .sl-v{min-width:92px}#app>div[style*=monospace]{left:auto!important;right:6px!important;top:108px!important}}@keyframes sheetIn{0%{transform:translateY(24px);opacity:0}}@keyframes sheetOut{to{transform:translateY(24px);opacity:0}}@media(pointer:coarse){.segb{height:36px}.stp{width:36px;height:36px}.btn{min-height:38px}.ibtn{width:38px;height:38px}.uitip{display:none}}@media(prefers-reduced-motion:reduce){#app *,#app *:before,#app *:after{animation:none!important;transition:none!important}}@media(max-width:1360px){.hud-tr .hbtn[data-key=M],.hud-tr .hbtn[data-key=P],.hud-tr .hbtn[data-key=O]{display:none}}@media(max-width:1100px){.hud-tc{top:60px}.leftcol{top:112px}}:root{--coach: #e0b04a}.lsym{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:20px;padding:0 4px;border-radius:5px;background:var(--c);color:var(--ink, #fff);font:700 12px/1 var(--font-display);letter-spacing:.04em;flex:none;box-shadow:inset 0 0 0 1px #0000002e;white-space:nowrap}.lsym.sm{min-width:22px;height:17px;padding:0 3px;font-size:11px;border-radius:4px}.lsym.lg{min-width:38px;height:30px;padding:0 6px;font-size:17px;border-radius:7px}.ltag{display:inline-flex;align-items:center;gap:6px;min-width:0;max-width:100%;vertical-align:middle}.ltag-n{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.ltag.link{cursor:pointer}.ltag.link:hover .ltag-n{text-decoration:underline;text-underline-offset:2px}.snum{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:27px;height:27px;border:2.5px solid var(--c);border-radius:6px;background:#fff;color:#10161f;flex:none;line-height:1;box-sizing:border-box;gap:1px;vertical-align:middle}.snum i{font:700 9px/1 var(--font-display);font-style:normal;letter-spacing:.03em}.snum b{font:700 12px/1 var(--font-display);letter-spacing:.01em;color:#10161f}.snum.sm{width:21px;height:21px;border-width:2px;border-radius:5px;gap:0}.snum.sm i{font-size:7.5px}.snum.sm b{font-size:10px}.snum.lg{width:36px;height:36px;border-width:3px;border-radius:8px}.snum.lg i{font-size:11px}.snum.lg b{font-size:15px}.snums{display:inline-flex;gap:3px;align-items:center;flex:none}.snum-more{font:700 11px/1 var(--font-display);color:var(--text-2);margin-left:1px}.filterbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:2px 0 8px}.fchips{display:flex;flex-wrap:wrap;gap:4px;flex:1 1 auto;min-width:0}.fchip{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 9px 0 7px;border-radius:14px;border:1px solid var(--hairline-2);background:none;color:var(--text-3);font-weight:600;font-size:var(--fs-12);transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast)}.fchip .ic{color:var(--text-3)}.fchip:hover{color:var(--text);background:var(--raised)}.fchip.on{background:color-mix(in srgb,var(--c) 16%,transparent);border-color:color-mix(in srgb,var(--c) 55%,transparent);color:var(--text)}.fchip.on .ic{color:var(--c)}.fchip small{font:700 11px/1 var(--font-display);color:var(--text-3);letter-spacing:.02em}.fchip.none:not(.on){opacity:.5}.filterbar.compact{margin:4px 0 6px;gap:4px}.filterbar.compact .fchips{gap:3px}.filterbar.compact .fchip{height:26px;padding:0 6px;gap:3px}.fsel{height:28px;font-size:var(--fs-12);padding:0 6px;max-width:160px}.fsel.sm{height:26px;max-width:100%;flex:1 1 100%}.mc-modes{display:flex;gap:6px;align-items:center;margin-top:2px}.mc-modes .seg{flex:1}.mc-modes .segb{flex:1;justify-content:center;height:28px;padding:0 8px;font-size:var(--fs-12)}.mapcard .mc-demand-toggle{margin-bottom:8px}.mapcard .mc-demand-toggle .segb{min-width:0}.mapcard .mc-mail .mc-stats b{min-width:54px}.mapcard .mc-mail .mc-stats>div{align-items:flex-start}.mapcard .mc-mail .mc-stats>div>span{min-width:0;line-height:1.35}.mapcard .mc-mail .mc-num{font-variant-numeric:tabular-nums}.mc-row .lsym{margin-right:-2px}.mc-stn{display:flex;align-items:center;gap:6px;min-height:30px;padding:3px 6px;border-radius:7px;cursor:pointer;font-size:var(--fs-13)}.mc-stn:hover{background:var(--raised-2)}.mc-stn>span:first-of-type{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.typepick{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:2px;border-radius:10px;background:var(--sunken);border:1px solid var(--hairline);width:100%}.tpb{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;padding:5px 2px;border:0;border-radius:8px;background:none;color:var(--text-2);transition:background var(--t-fast),color var(--t-fast)}.tpb i{width:16px;height:3px;border-radius:2px;background:var(--c)}.tpb b{font:700 13px/1 var(--font-display);letter-spacing:.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.tpb small{font:600 11px/1 var(--font-display);color:var(--text-3);letter-spacing:.02em;white-space:nowrap}.tpb:hover{background:var(--raised);color:var(--text)}.tpb.on{background:var(--accent);color:var(--accent-ink)}.tpb.on small{color:#1b1405b8}.tpb.on i{background:var(--accent-ink)}.tc-spec{display:flex;flex-wrap:wrap;align-items:center;gap:2px 10px;width:100%;color:var(--text-3);font-size:var(--fs-12);line-height:1.35}.tc-spec b{color:var(--text-2);font-weight:600}.tc-spec .hot{color:var(--warn);font-weight:600}.tc-spec .ic{display:inline-block;vertical-align:-2px}.stychips{display:flex;flex-wrap:wrap;gap:3px}.styb{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 8px;border-radius:8px;border:1px solid var(--hairline);background:var(--raised);color:var(--text-2);font-weight:600;font-size:var(--fs-12);white-space:nowrap;transition:background var(--t-fast),color var(--t-fast)}.styb:hover{background:var(--raised-2);color:var(--text)}.styb small{font:700 11px/1 var(--font-display);color:var(--pos);letter-spacing:.02em}.styb.on{background:var(--accent);color:var(--accent-ink);border-color:transparent}.styb.on small{color:#1b1405bf}.opt.wide{flex:1 1 100%;flex-wrap:wrap}.opt.wide>.opt-l{min-width:44px}.pk{display:inline-flex;align-items:center;height:18px;padding:0 6px;border-radius:4px;font:700 11px/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;color:#fff;background:var(--pkc, #6b7686);flex:none;white-space:nowrap}.pk.local,.svb.local,.pdots i.local,.svh.local{--pkc: #7c8797}.pk.rapid,.svb.rapid,.pdots i.rapid,.svh.rapid{--pkc: #e8772e}.pk.express,.svb.express,.pdots i.express,.svh.express{--pkc: #d6334a}.pk.limited,.svb.limited,.pdots i.limited,.svh.limited{--pkc: #9b59b6}.svc-wrap{overflow-x:auto;margin:4px -4px 0;padding:0 4px}.svc{border-collapse:separate;border-spacing:0;font-size:var(--fs-13);min-width:100%}.svc th{padding:4px 2px 6px;vertical-align:bottom;font-weight:600}.svc th.st{text-align:left;padding-left:4px;color:var(--text-3);font:600 var(--fs-11)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase}.svc td{padding:1px 2px;text-align:center;border-top:1px solid var(--hairline)}.svc td.st{text-align:left;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:3px 4px}.svc td.st .snum{margin-right:6px}.svc tr:hover td{background:#ffffff06}.svh{display:inline-flex;flex-direction:column;align-items:center;gap:4px;min-width:52px}.svh .pk{cursor:pointer}.svh small{color:var(--text-3);font-size:var(--fs-11);font-weight:500;white-space:nowrap}.svb{display:inline-flex;align-items:center;justify-content:center;width:40px;height:26px;border:0;border-radius:6px;background:none}.svb i{width:12px;height:12px;border-radius:50%;background:var(--pkc);box-shadow:0 0 0 2px #ffffffd9}.svb.pass i{width:3px;height:18px;border-radius:2px;box-shadow:none;opacity:.5}.svb.out i{width:3px;height:18px;border-radius:2px;box-shadow:none;opacity:.12}.svb:hover:not(:disabled){background:var(--raised-2)}.svb:disabled{cursor:default;opacity:1}.pdots{display:inline-flex;gap:3px;flex:none}.pdots i{width:8px;height:8px;border-radius:50%;background:var(--pkc)}.pdots i.pass{background:none;box-shadow:inset 0 0 0 1.5px var(--pkc);opacity:.55}.patcard{display:flex;align-items:center;gap:8px;padding:6px 4px;border-bottom:1px solid var(--hairline);flex-wrap:wrap}.patcard:last-child{border-bottom:0}.patcard .pc-n{flex:1;min-width:120px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.patcard .muted{font-size:var(--fs-12)}.opbar{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--raised-2);margin:4px 0 6px;gap:2px}.opbar i{height:100%;background:var(--c);min-width:3px}.flag.thru{background:#5aa9ff29;color:var(--rail)}.flag.shared{background:#c084fc29;color:var(--tram)}.flag.bad{background:#ff6b6b29;color:var(--neg)}.flag.ok{background:#4ade8024;color:var(--pos)}.ttype{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px 0 6px;border-radius:6px;background:var(--raised);font-size:var(--fs-12);font-weight:600;white-space:nowrap}.ttype i{width:10px;height:3px;border-radius:2px;background:var(--c)}.ttypes{display:flex;flex-wrap:wrap;gap:4px}.alert{margin-top:var(--sp-2);padding:9px 11px;border-radius:var(--r);background:#ff6b6b1a;border:1px solid rgba(255,107,107,.4);color:#ffd2d2;display:flex;gap:var(--sp-2);align-items:flex-start;font-size:var(--fs-13);font-weight:500;line-height:1.4}.alert>.ic{color:var(--neg);margin-top:1px}.alert.warn{background:#ffc8571a;border-color:#ffc85759;color:var(--warn)}.alert.warn>.ic{color:var(--warn)}.alert.info{background:#8fc3ff14;border-color:#8fc3ff4d;color:var(--text-2)}.alert.info>.ic{color:var(--info)}.alert-b{flex:1;min-width:0}.alert-b b{color:var(--text)}.alert .btns{margin-top:7px}.cap{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px 10px;margin:2px 0 4px;font-size:var(--fs-13)}.cap .k{color:var(--text-2)}.cap .v{font-weight:600;text-align:right}.parts{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 var(--sp-2)}.parts .chip.on{border-color:#ffb02099;background:var(--accent-soft)}.stnhead{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-2px 0 var(--sp-2)}.stnhead .snums{flex-wrap:wrap}.model .mtags{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.mtag{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 6px;border-radius:5px;background:var(--raised-2);color:var(--text-2);font:600 var(--fs-11)/1 var(--font-display);letter-spacing:var(--tr-caps-s);text-transform:uppercase;white-space:nowrap}.mtag i{width:8px;height:3px;border-radius:2px;background:var(--c)}.mtag.bad{background:#ff6b6b29;color:var(--neg)}.mtag.ok{background:#4ade8024;color:var(--pos)}.costgrid{display:grid;grid-template-columns:1fr auto;gap:3px 12px;font-size:var(--fs-13);margin:4px 0}.costgrid span:nth-child(odd){color:var(--text-2)}.costgrid span:nth-child(2n){text-align:right;font-weight:600}.hbars{display:grid;grid-template-columns:minmax(110px,auto) 1fr auto;align-items:center;gap:5px 10px;font-size:var(--fs-13);margin-top:4px}.hbars .hb{height:8px;border-radius:4px;background:var(--c);min-width:2px}.hbars .k{color:var(--text-2);white-space:nowrap}.hbars .v{text-align:right;font-weight:600;white-space:nowrap}.lbl.stn .lbl-badges{display:none;gap:2px;padding:0 2px;align-items:center}.lbl.stn.badged .lbl-badges{display:flex}.lbl.stn .lbl-badges .snum{box-shadow:0 0 0 1px #00000040}.lbl.stn.pin{padding:3px 3px 15px;background:none;box-shadow:none;color:#eef2f7}.lbl.stn.pin:before{content:"";position:absolute;inset:0 0 12px;z-index:-1;border-radius:8px;background:#0d121ae0;border:1px solid rgba(255,255,255,.16);box-shadow:0 2px 8px #00000073}.lbl.stn.pin:after{content:"";position:absolute;inset:auto auto -5px 50%;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:#fff;border:2.5px solid #10161f;box-shadow:0 1px 4px #0009;font:inherit}.lbl.stn.pin .lbl-ico,.lbl.stn.pin .lbl-mark{display:none}.lbl.stn.pin .lbl-wait{background:none;color:var(--text-3);padding:0 4px 0 2px}.lbl.stn.pin .lbl-name{color:#eef2f7;padding:0 4px 0 5px}.lbl.stn.pin.dim{filter:none;opacity:.75}.lbl.tag .lsym{margin:-1px 5px -1px -4px;box-shadow:0 0 0 1.5px #ffffffd9}.lbl.tag{display:flex;align-items:center}.lbl.tag.below{transform-origin:50% 0}.lbl.mk{gap:0;transform-origin:50% 50%}.lbl.mk .mk-b,.lbl.mk .mk-x{display:inline-flex;align-items:center;gap:2px}.lbl.mk .mk-x{margin-left:2px}.lbl.mk .mk-x:empty{display:none}.lbl.mk .mk-x>.snum:nth-child(n+3){display:none}.lbl.mk .snum{box-shadow:0 0 0 1px #0d121ae6,0 2px 6px #00000080}.lbl.mk .mk-more{margin-left:3px;padding:0 4px;height:16px;border-radius:8px;background:#0d121ae6;color:#eef2f7;font:700 11px/16px var(--font-display);letter-spacing:.02em;box-shadow:0 0 0 1px #fff6}.lbl.mk .mk-more:before{content:attr(data-row)}.lbl.mk .mk-more[data-row=""]{display:none}.lbl.mk.far .mk-x{position:absolute;left:100%;top:0;display:none}.lbl.mk.far:hover .mk-x:not(:empty),.lbl.mk.far:hover .mk-x>.snum,.lbl.mk.far.open .mk-x:not(:empty),.lbl.mk.far.open .mk-x>.snum{display:inline-flex}.lbl.mk.far .mk-more{position:absolute;top:-7px;right:-10px;margin:0;display:block}.lbl.mk.far .mk-more:before{content:attr(data-far)}.lbl.mk.far .mk-more[data-far=""],.lbl.mk.far:hover .mk-more,.lbl.mk.far.open .mk-more{display:none}.lbl.mk.open{z-index:240000!important}.lbl.mk .mk-dot{display:none;width:10px;height:10px;border-radius:50%;background:#fff;border:3px solid var(--c);box-shadow:0 0 0 1px #0d121ae6,0 1px 4px #00000080}.lbl.mk.dot .mk-dot{display:block}.lbl.mk .lbl-name{display:none;position:absolute;left:100%;top:50%;margin:-9px 0 0 5px;padding:0 6px;height:18px;border-radius:5px;background:#0d121ad1;color:#eef2f7;font:600 12px/18px var(--font-display);letter-spacing:.04em;text-transform:none;text-shadow:none}.lbl.mk.named .lbl-name{display:block}.lbl.mk.dim>*{opacity:.4}.lbl.mk.hl .snum,.lbl.mk.hl .mk-dot{box-shadow:0 0 0 2px #fff,0 2px 8px #0000008c}.lbl.mk:hover{z-index:240000!important}#app button.mc-row{width:100%;margin:0;border:0;background:transparent;text-align:left;font-size:var(--fs-13);font-weight:500}#app button.mc-row:hover,#app button.mc-row.on{background:var(--raised-2)}#app button.mc-row:active{background:var(--raised-3)}#app button.mc-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;background:var(--raised-2)}.svh button.pk{border:0;cursor:pointer;transition:filter var(--t-fast),transform var(--t-fast)}.svh button.pk:hover{filter:brightness(1.15)}.svh button.pk:active{transform:scale(.95)}.lsymbtn{display:inline-flex;padding:0;border:0;background:none;border-radius:8px;flex:none;transition:transform var(--t-fast)}.lsymbtn:not(:disabled):hover{transform:scale(1.06)}.lsymbtn:disabled{cursor:default;opacity:1}.lineflags{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 var(--sp-2)}.list.stops .row>.snum{flex:0 0 auto!important}.list .row>.pdots{margin-left:2px}.station-info .kv .v{flex-wrap:wrap;overflow-wrap:anywhere}.station-info .kv .select{width:100%;min-width:0}.station-info .station-lines .row{flex-wrap:wrap}.station-info .station-lines .row>.snum{flex:none}.station-info .station-lines .ltag{flex:1;min-width:100px}.station-advice{font-size:var(--fs-12);line-height:1.4;margin-top:4px}.merge-choice,.complex-part,.stopshare-company{padding:7px 8px;border-radius:var(--r);overflow-wrap:anywhere}.merge-choice:nth-child(odd),.complex-part:nth-child(odd){background:var(--raised)}.merge-choice>.muted,.merge-choice>.neg,.complex-part>.muted{margin-top:4px;font-size:var(--fs-12);line-height:1.4}.merge-choice .btns{margin-top:6px}.complex-part .snums{flex-wrap:wrap}.station-restyle .field-c>.select{width:100%;min-width:0}.station-restyle .section-r{max-width:68%;white-space:normal;text-align:right}.stopshare-company{padding-bottom:8px;border-bottom:1px solid var(--hairline)}.stopshare-company:last-child{border-bottom:0}.stopshare-company .kv{padding:4px 0;border:0}.share-lines{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.share-lines .ltag{max-width:100%}.purchase-info .kv .k{flex:none}.purchase-info .kv .v{flex:1;max-width:72%;flex-wrap:wrap;overflow-wrap:anywhere}.purchase-info .kv .select{width:100%;min-width:0}.purchase-info .consist .car.unit{border-left:2px solid var(--surface-solid);border-right:2px solid var(--surface-solid)}.purchase-info .model:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.vehicle-info .kv .v{flex:1;max-width:68%;flex-wrap:wrap;overflow-wrap:anywhere}.vehicle-info .kv .select{width:100%;min-width:0}.vehicle-service{display:flex;align-items:center;gap:6px;width:100%;min-width:0}.vehicle-service .select{flex:1;min-width:0;width:0}:root{--mail: #f8fafc}.tile-mail{display:flex;align-items:center;gap:4px;margin-top:6px;min-width:0;color:var(--text-2);font-size:var(--fs-12);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile-mail .ic,.mstat-mail .ic,.svh-mail .ic{color:var(--text-3)}.mail-panel .tiles{margin-top:2px}.consist .car.van{background:repeating-linear-gradient(135deg,var(--c) 0 4px,color-mix(in srgb,var(--c) 50%,var(--mail)) 4px 6px)}.composer-steps{gap:8px 16px}.legend .lg-dash i{background:repeating-linear-gradient(90deg,var(--c) 0 5px,transparent 5px 8px)}.tbl td .loadmix{white-space:normal}.svh .svh-mail{display:inline-flex;align-items:center;gap:3px;color:var(--text-2);white-space:nowrap}.finance-table{max-width:100%;overflow-x:auto;overscroll-behavior:contain}.finances-info .tbl.fin td:first-child{min-width:140px;white-space:normal}.finance-note{font-size:var(--fs-12);line-height:1.4;margin-top:7px}.hc-badges{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin:5px 0 4px}.tc-warnings{display:grid;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--hairline)}.tc-warning{display:flex;align-items:flex-start;gap:6px;padding:7px 8px;border:1px solid rgba(255,200,87,.35);border-radius:8px;background:#ffc85721;color:var(--warn);font-size:var(--fs-12);line-height:1.4;overflow-wrap:anywhere}.tc-warning>.ic,.tooltip .tt-row>.ic,.tooltip .pill>.ic{flex:none;margin-top:1px}.tc-warning>span,.tooltip .tt-row>span{min-width:0;overflow-wrap:anywhere}.tooltip .tt-row,.tooltip .pill{align-items:flex-start}.tooltip .pill{max-width:100%;border-radius:8px;white-space:normal;overflow-wrap:anywhere}.companies-scroll{max-width:100%;overflow-x:auto;overscroll-behavior:contain}.companies-table .company-ownership{min-width:145px;max-width:210px;white-space:normal;text-align:left;font-size:var(--fs-12);line-height:1.4}.share-stake-bar{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:3px;height:16px;margin:7px 0}.share-stake-bar i{display:block;border-radius:3px}.share-free{background:var(--raised-2);box-shadow:inset 0 0 0 1px var(--hairline)}.share-owners{display:flex;flex-wrap:wrap;gap:5px 12px;font-size:var(--fs-12);line-height:1.4;margin-bottom:10px}.share-owners>span{display:inline-flex;align-items:center;gap:5px;overflow-wrap:anywhere}.share-owners i{width:10px;height:10px;border-radius:2px;flex:none}.share-trades{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.share-trade{padding:8px;border-radius:var(--r);background:var(--raised)}.share-trade .btn{width:100%;min-width:0;height:auto;min-height:34px;padding:7px;white-space:normal}.share-note{font-size:var(--fs-12);line-height:1.45;margin-top:5px;overflow-wrap:anywhere}.share-control{margin-top:12px;padding:0 10px 10px;border:1px solid var(--accent);border-radius:var(--r);background:var(--accent-soft)}.company-invest-info .kv .v{flex-wrap:wrap;overflow-wrap:anywhere}@media(min-width:721px){.company-invest-info{max-height:min(580px,calc(100vh - 220px))}}@media(max-width:420px){.share-trades{grid-template-columns:1fr}}.lbl.stn.compact{width:28px;height:28px;padding:4px;box-sizing:border-box;border-radius:8px}.lbl.stn.compact .lbl-ico{flex:none;background:none}.lbl.stn.compact .lbl-ico .ic{width:18px;height:18px}.lbl.stn.compact .lbl-name,.lbl.stn.compact .lbl-wait,.lbl.stn.compact .lbl-mark,.lbl.stn.compact .lbl-badges{display:none}.lbl.stn.compact.minor{border-radius:6px;box-shadow:0 1px 4px #0006}.lbl.stn.compact.minor .lbl-ico{width:14px;height:14px}.lbl.stn.compact.minor .lbl-ico .ic{width:12px;height:12px}.lbl.stn.compact.minor:hover{z-index:240000}.lbl.stn.compact.minor:hover .lbl-name{display:inline;font-size:12px}.linejoin-note{margin:8px 0;font-size:var(--fs-12);line-height:1.5;overflow-wrap:anywhere}.linejoin-choices{display:grid;gap:6px}.linejoin-choice{display:flex;align-items:center;gap:8px;width:100%;min-width:0;padding:10px;border:1px solid var(--hairline);border-radius:var(--r);background:var(--raised);color:inherit;text-align:left;cursor:pointer}.linejoin-choice:hover,.linejoin-choice.on{border-color:var(--accent);background:var(--accent-soft)}.linejoin-choice-text{display:grid;gap:3px;flex:1;min-width:0;overflow-wrap:anywhere}.linejoin-choice-text>.muted{font-size:var(--fs-12)}.linejoin-route{margin:8px 0 12px 18px;padding-left:20px;border-left:3px solid var(--linejoin-color)}.linejoin-route li{padding:6px 4px;overflow-wrap:anywhere}.linejoin-route li>.flag{margin-left:8px}.linejoin-route .junction{font-weight:600}.linejoin-reason{display:grid;gap:4px;padding:8px 10px;font-size:var(--fs-12);line-height:1.4;overflow-wrap:anywhere}.linejoin-info .btns .btn{height:auto;min-height:34px;white-space:normal}@media(min-width:721px){.linejoin-info{max-height:min(620px,calc(100vh - 200px))}}.lcolor{display:inline-block;width:14px;height:20px;border-radius:4px;background:var(--c);flex:none;vertical-align:middle;box-shadow:inset 0 0 0 1px #0000002e}.lcolor.sm{width:10px;height:17px;border-radius:3px}.lcolor.lg{width:28px;height:30px;border-radius:7px}.lbl.tag .lcolor{margin:-1px 5px -1px -4px;box-shadow:0 0 0 1.5px #ffffffd9}.lbl.stn .lbl-mark.lcolor{width:10px;height:17px;padding:0;flex:none}.list.stops .row>.lcolor{flex:none!important}:root{--uis: 1}#app .hud,#app .dockwrap,#app .leftcol,#app .toasts,#app .drawer,#app .title{zoom:var(--uis)}#app .dockwrap{max-width:calc((100vw - 20px) / var(--uis))}#app .toasts{width:min(420px,calc((100vw - 20px) / var(--uis)))}#app .drawer{width:min(390px,calc((100vw - 20px) / var(--uis)))}#app .win>*,#app .toolcard>*,#app .tooltip>*,#app .uitip>*,#app .hovercard>*,#app .labels .lbl>*{zoom:var(--uis)}#app .toolcard{padding:calc(8px * var(--uis)) calc(8px * var(--uis)) calc(10px * var(--uis)) calc(12px * var(--uis));overflow-y:auto;overscroll-behavior:contain}@media(min-width:1280px){#app .toolcard{width:calc(356px * var(--uis));max-height:calc(100dvh - var(--dock-clearance, 90px) - 116px * var(--uis))}}@media(min-width:1280px){#app .toolcard{z-index:5000}}#app .tooltip{min-width:calc(160px * var(--uis));max-width:calc(300px * var(--uis));padding:calc(10px * var(--uis)) calc(12px * var(--uis))}#app .uitip{gap:calc(8px * var(--uis));padding:calc(6px * var(--uis)) calc(9px * var(--uis)) calc(6px * var(--uis)) calc(11px * var(--uis));font-size:calc(var(--fs-13) * var(--uis));max-width:calc(300px * var(--uis))}#app .hovercard{min-width:calc(170px * var(--uis));max-width:calc(260px * var(--uis));padding:calc(9px * var(--uis)) calc(11px * var(--uis)) calc(10px * var(--uis))}#app .lbl.tag{max-width:calc(170px * var(--uis))}#app .lbl.stn.compact{width:calc(28px * var(--uis));height:calc(28px * var(--uis));padding:calc(4px * var(--uis))}#app .lbl.stn.compact.minor{width:calc(20px * var(--uis));height:calc(20px * var(--uis));padding:calc(3px * var(--uis))}#app .lbl.stn.compact.minor:hover{width:auto}#app .float{font-size:calc(var(--fs-16) * var(--uis))}#app .float.income{font-size:calc(18px * var(--uis))}@media(max-width:1560px){:root[data-uis="115"] .hud-tr .hbtn[data-key=M],:root[data-uis="115"] .hud-tr .hbtn[data-key=P],:root[data-uis="115"] .hud-tr .hbtn[data-key=O]{display:none}}@media(max-width:1770px){:root[data-uis="130"] .hud-tr .hbtn[data-key=M],:root[data-uis="130"] .hud-tr .hbtn[data-key=P],:root[data-uis="130"] .hud-tr .hbtn[data-key=O]{display:none}}@media(max-width:1280px){:root[data-uis="115"] .hud-tc{top:64px}:root[data-uis="115"] .toasts,:root[data-uis="115"] .leftcol:not(.below-debug){top:112px}}@media(max-width:1445px){:root[data-uis="130"] .hud-tc{top:64px}:root[data-uis="130"] .toasts,:root[data-uis="130"] .leftcol:not(.below-debug){top:112px}}@media(max-width:1196px){:root[data-uis="115"] .title-main{flex:0 1 420px}}@media(max-width:1352px){:root[data-uis="130"] .title-main{flex:0 1 420px}}@media(max-width:1058px){:root[data-uis="115"] .title.card-open .title-main{display:none}}@media(max-width:1196px){:root[data-uis="130"] .title.card-open .title-main{display:none}}@media(max-width:874px){:root[data-uis="115"] .title-row{flex-wrap:wrap}:root[data-uis="115"] .title-main{flex:1 1 100%}}@media(max-width:988px){:root[data-uis="130"] .title-row{flex-wrap:wrap}:root[data-uis="130"] .title-main{flex:1 1 100%}}.seg.uiscale{display:flex;width:100%}.seg.uiscale .segb{flex:1;justify-content:center;padding:0 4px}.snum{width:29px;height:29px}.snum i{font-size:10px}.snum.sm{width:25px;height:25px}.snum.sm i{font-size:10px}.snum.sm b{font-size:11px}#app .win:focus-visible{outline:2px solid rgba(255,176,32,.55);outline-offset:1px}#app .title:focus,#app .title:focus-visible{outline:none}:root{--tram: #b25ec5}.flag.shared{background:#b25ec52e;color:color-mix(in srgb,var(--tram) 62%,#fff)}.mc-row>i.mc-thin{height:3px}.mc-row>i.mc-wide{height:7px;border-radius:3px}.mc-row>i.mc-dash{height:5px;background:repeating-linear-gradient(90deg,var(--c) 0 5px,rgba(11,15,20,.7) 5px 8px)!important}.mc-row>i.mc-dot{width:8px;height:8px;margin:0 3px;border-radius:50%}.mc-row>i.mc-dot.big{width:11px;height:11px;margin:0 1.5px}.mc-row>i.mc-diamond{width:9px;height:9px;margin:0 2px;border-radius:1px;transform:rotate(45deg)}.mc-row>i.mc-arrow{width:0;height:0;margin:0 1px;border-radius:0;background:none!important;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:10px solid var(--c)}.mc-row>i.mc-ring.tram{border-style:dotted}.mc-grad i{height:7px;background:linear-gradient(90deg,#ff7a2f,#ffe08a,#5ea8ff);-webkit-mask-image:linear-gradient(90deg,transparent 50%,#000 78%),repeating-linear-gradient(90deg,#000 0 5px,transparent 5px 8px);mask-image:linear-gradient(90deg,transparent 50%,#000 78%),repeating-linear-gradient(90deg,#000 0 5px,transparent 5px 8px);-webkit-mask-composite:source-over;mask-composite:add}
