*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{touch-action:manipulation;-webkit-font-smoothing:antialiased;background:#e8e8e8;min-height:100dvh;font-family:Noto Sans SC,system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.5}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit}h1,h2,h3,h4,h5,h6,p{overflow-wrap:break-word}a{color:inherit;text-decoration:none}ul,ol{list-style:none}.config-panel[data-v-6ff188a7]{padding:16px}h2[data-v-6ff188a7]{margin:0 0 12px;font-size:16px}.fields[data-v-6ff188a7]{gap:12px;display:grid}.field-row[data-v-6ff188a7]{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field label[data-v-6ff188a7],.field .field-label[data-v-6ff188a7]{color:#555;margin-bottom:4px;font-size:13px;display:block}.controls[data-v-6ff188a7]{gap:8px;display:flex}.controls button[data-v-6ff188a7]{font:inherit;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #ccc;border-radius:4px;padding:6px 14px}.controls button[data-v-6ff188a7]:disabled{color:#999;cursor:not-allowed;background:#f5f5f5}.controls select[data-v-6ff188a7]{font:inherit;background:#fff;border:1px solid #ccc;border-radius:4px;padding:6px 8px}.oos-note[data-v-6ff188a7]{color:#b45309;margin-top:8px;font-size:12px}.status[data-v-6ff188a7]{background:#f7f7f7;border-radius:4px;grid-template-columns:92px 1fr;gap:3px 10px;margin:0;padding:10px 12px;font-size:12px;line-height:1.4;display:grid}.status dt[data-v-6ff188a7]{color:#888}.status dd[data-v-6ff188a7]{color:#222;overflow-wrap:anywhere;margin:0;font-family:Consolas,Courier New,Noto Sans SC,monospace}.field select[data-v-6ff188a7]{width:100%;font:inherit;background:#fff;border:1px solid #ccc;border-radius:4px;padding:6px 8px}.field .controls select[data-v-6ff188a7]{flex:none;width:auto}.field select[data-v-6ff188a7]:disabled{color:#999;background:#f5f5f5}.marquee-viewport[data-v-1f5dd3d8]{flex:auto;min-width:0;overflow:hidden}.marquee-track[data-v-1f5dd3d8]{width:max-content;display:flex}.marquee-track.scrolling[data-v-1f5dd3d8]{animation:12s linear infinite lcd-marquee-1f5dd3d8}.marquee-copy[data-v-1f5dd3d8]{white-space:nowrap;align-items:center;gap:1.8cqw;padding:0 1cqw;display:flex}@keyframes lcd-marquee-1f5dd3d8{0%{transform:translate(0)}to{transform:translate(-50%)}}.car-indicator[data-v-400226e1]{align-items:stretch;height:3.6cqw;display:flex;position:absolute;bottom:0;left:0}.car-label[data-v-400226e1]{white-space:nowrap;flex-direction:column;justify-content:center;align-items:flex-start;gap:.15cqw;padding:0 .4cqw 0 .9cqw;line-height:1.1;display:flex}.label-zh[data-v-400226e1]{color:#333;font-size:1.5cqw;font-weight:700}.label-en[data-v-400226e1]{color:#555;font-size:1.05cqw}.car-track[data-v-400226e1]{clip-path:polygon(1.8cqw 0,calc(100% - 1.8cqw) 0,100% 100%,0 100%);gap:.35cqw;width:34cqw;height:100%;display:flex}.car-track.flipped[data-v-400226e1]{flex-direction:row-reverse}.car[data-v-400226e1]{color:#666;background:#d8d8d8;flex:1 1 0;justify-content:center;align-items:center;min-width:0;font-size:2.5cqw;font-weight:700;display:inline-flex}.car-track:not(.flipped) .car[data-v-400226e1]:first-child{padding-left:1.2cqw}.car-track:not(.flipped) .car[data-v-400226e1]:last-child,.car-track.flipped .car[data-v-400226e1]:first-child{padding-right:1.2cqw}.car-track.flipped .car[data-v-400226e1]:last-child{padding-left:1.2cqw}.loop-map[data-v-b2b9e427]{pointer-events:none;position:absolute;inset:0}.loop-map svg[data-v-b2b9e427]{width:100%;height:100%;display:block}.track[data-v-b2b9e427]{fill:none;stroke:var(--line-color);stroke-width:12px}.track-passed[data-v-b2b9e427]{fill:none;stroke:#d8d8d8;stroke-width:12px}.dir-arrow[data-v-b2b9e427]{fill:none;stroke:var(--f80c8daa);stroke-width:4.5px;stroke-linecap:round;stroke-linejoin:round}.dir-arrow.dim[data-v-b2b9e427]{stroke:#fff;opacity:.7}.node[data-v-b2b9e427]{fill:#fff;stroke:var(--line-color);stroke-width:3px}.node.interchange[data-v-b2b9e427]{stroke-width:4px}.node.passed[data-v-b2b9e427]{stroke:#aaa}.node.dwelling[data-v-b2b9e427]{fill:var(--line-color)}.node-pulse[data-v-b2b9e427]{fill:none;stroke:var(--line-color);stroke-width:2px;transform-box:fill-box;transform-origin:50%;animation:1.2s ease-in-out infinite node-pulse-b2b9e427}@keyframes node-pulse-b2b9e427{0%{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2)}}.badge-text[data-v-b2b9e427]{font-size:9.5px}.name-zh[data-v-b2b9e427]{fill:#000;font-size:16px}.name-en[data-v-b2b9e427]{fill:#666;font-size:8px}.name-zh.corner[data-v-b2b9e427]{font-size:16px}.name-en.corner[data-v-b2b9e427]{font-size:7.5px}.train-cursor rect[data-v-b2b9e427]{fill:#fff;stroke:var(--line-color);stroke-width:2.2px}.train-cursor.arriving rect[data-v-b2b9e427]{animation:.8s step-end infinite cursor-blink-b2b9e427}@keyframes cursor-blink-b2b9e427{0%,to{fill:#fff}50%{fill:var(--line-color)}}.route-map[data-v-0e353853]{align-items:center;display:flex;position:absolute;inset:7cqw 0 6.6cqw;transform:translateY(-10%)}.map-body[data-v-0e353853]{width:calc(100% - 5cqw);height:9.88cqw;margin:0 2.5cqw;position:relative}.train-cursor[data-v-0e353853]{border:.16cqw solid var(--line-color);z-index:1;background:#fff;border-radius:.55cqw;width:1.6cqw;height:1.1cqw;position:absolute;top:2.31cqw;transform:translate(-50%);box-shadow:0 0 .25cqw #0000004d}.train-cursor.arriving[data-v-0e353853]{animation:.8s step-end infinite cursor-blink-0e353853}@keyframes cursor-blink-0e353853{0%,to{background:#fff}50%{background:var(--line-color)}}.band[data-v-0e353853]{background:var(--line-color);height:1.06cqw;position:absolute;top:2.33cqw;left:0;right:0}.band-passed[data-v-0e353853]{background:#d8d8d8;position:absolute;top:0;bottom:0;left:0}.band-passed.mirrored[data-v-0e353853]{left:auto;right:0}.band-beyond[data-v-0e353853]{background:#d8d8d8;position:absolute;top:0;bottom:0;right:0}.band-beyond.mirrored[data-v-0e353853]{left:0;right:auto}.band-arrows[data-v-0e353853]{color:var(--v7f4b7b2c);position:absolute;inset:0;overflow:hidden}.arrow[data-v-0e353853]{width:.9cqw;height:.8cqw;position:absolute;top:50%;transform:translate(-50%,-50%)}.arrow.dim[data-v-0e353853]{color:#fff;opacity:.7}.band-arrows:not(.mirrored) .arrow[data-v-0e353853]{transform:translate(-50%,-50%)scaleX(-1)}.arrow path[data-v-0e353853]{fill:none;stroke:currentColor;stroke-width:4.5px;stroke-linecap:round;stroke-linejoin:round}.band-active[data-v-0e353853]{position:absolute;top:0;bottom:0;right:0}.node[data-v-0e353853]{border:.2cqw solid var(--line-color);background:#fff;border-radius:50%;width:1.05cqw;height:1.05cqw;position:absolute;top:50%;transform:translate(-50%,-50%)}.node.interchange[data-v-0e353853]{border-width:.3cqw;width:1.7cqw;height:1.7cqw}.node.passed[data-v-0e353853]{border-color:#aaa}.node.dwelling[data-v-0e353853],.node.next[data-v-0e353853]{animation:1.2s ease-in-out infinite node-pulse-0e353853}.node.dwelling[data-v-0e353853]{background:var(--line-color)}@keyframes node-pulse-0e353853{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, var(--line-color) 45%, transparent)}50%{box-shadow:0 0 0 .9cqw color-mix(in srgb, var(--line-color) 0%, transparent)}}.badges[data-v-0e353853]{position:absolute;bottom:8cqw;left:0;right:0}.badge-slot[data-v-0e353853]{white-space:nowrap;flex-direction:column;align-items:center;gap:.12cqw;display:flex;position:absolute;bottom:0;transform:translate(-50%)}.badge[data-v-0e353853]{height:var(--badge-h);min-width:calc(var(--badge-h) * 1.19);border-radius:calc(var(--badge-h) * .19);font-size:calc(var(--badge-h) * .714);justify-content:center;align-items:center;padding:0 .15cqw .08cqw;display:inline-flex}.badge.fixed[data-v-0e353853]{width:calc(var(--badge-h) * 1.19)}.badge-slot.grid[data-v-0e353853]{grid-template-columns:repeat(2,min-content);justify-content:center;display:grid}.badge-slot.grid .badge[data-v-0e353853]:last-child:nth-child(odd){grid-column:1/-1;justify-self:center}.labels[data-v-0e353853]{position:absolute;top:3.75cqw;left:0;right:0}.label-slot[data-v-0e353853]{align-items:flex-start;gap:0;display:flex;position:absolute;top:0;transform:translate(-50%)}.name-zh[data-v-0e353853],.name-en[data-v-0e353853]{height:calc(var(--v7311857a) * 1cqw);writing-mode:vertical-rl;white-space:nowrap;overflow:hidden}.name-zh[data-v-0e353853]{text-orientation:upright;color:#000;font-size:1.26cqw}.name-en[data-v-0e353853]{color:#666;margin-left:-.25cqw;font-size:.75cqw}.v-track[data-v-0e353853]{flex-direction:row;height:max-content;display:flex}.v-track.rolling>span[data-v-0e353853]{padding-bottom:.3cqw}.v-track.rolling[data-v-0e353853]{animation:8s linear infinite v-marquee-0e353853}@keyframes v-marquee-0e353853{0%{transform:translateY(0)}to{transform:translateY(-50%)}}.focus[data-v-68f449f1]{align-items:center;gap:2cqw;padding:0 3cqw;display:flex;position:absolute;top:4.1cqw;left:0;right:0}.focus-main[data-v-68f449f1]{flex-direction:column;flex:auto;justify-content:center;min-width:0;display:flex}.focus-line[data-v-68f449f1]{align-items:center;gap:1.8cqw;width:100%;min-width:0;display:flex;overflow:hidden}.focus-label[data-v-68f449f1]{color:#333;align-items:baseline;gap:1cqw;display:flex}.label-zh[data-v-68f449f1]{font-size:3cqw}.label-en[data-v-68f449f1]{font-size:2.3cqw}.focus-zh[data-v-68f449f1]{white-space:nowrap;flex-shrink:0;font-size:6cqw;font-weight:700;line-height:1.2}.focus-en[data-v-68f449f1]{color:#333;white-space:nowrap;font-size:2.7cqw}.focus-en-2col[data-v-68f449f1]{flex-direction:column;align-items:flex-end;line-height:1.15;display:flex}.focus-line.arriving[data-v-68f449f1]{animation:.8s step-end infinite focus-blink-68f449f1}@keyframes focus-blink-68f449f1{0%,to{opacity:1}50%{opacity:.4}}.probe[data-v-68f449f1]{visibility:hidden;white-space:nowrap;pointer-events:none;position:absolute}.probe-zh[data-v-68f449f1]{font-size:6cqw;font-weight:700}.probe-en[data-v-68f449f1]{font-size:3.2cqw}.focus-transfer[data-v-68f449f1]{flex-direction:column;flex-shrink:0;align-items:center;gap:.4cqw;display:flex}.transfer-label[data-v-68f449f1]{color:#333;white-space:nowrap;flex-direction:column;align-items:center;line-height:1.15;display:flex}.tl-zh[data-v-68f449f1]{font-size:3cqw}.tl-en[data-v-68f449f1]{font-size:2.2cqw}.focus-badges[data-v-68f449f1]{flex-shrink:0;align-items:center;gap:.7cqw;display:flex}.badge[data-v-68f449f1]{border-radius:.9cqw;justify-content:center;align-items:center;min-width:5.5cqw;height:4.6cqw;padding:0 .5cqw .26cqw;font-size:3cqw;font-weight:700;display:inline-flex}.seq[data-v-a4f0f49e]{align-items:center;padding:0 2.5cqw;display:flex;position:absolute;top:5cqw;left:0;right:0}.seq-col[data-v-a4f0f49e]{flex-direction:column;flex:1 1 0;align-items:center;min-width:0;display:flex}.seq-chip[data-v-a4f0f49e]{background:color-mix(in srgb, var(--line-color) 22%, #fff);color:#000;border-radius:.6cqw;flex-direction:column;justify-content:center;align-items:center;gap:.2cqw;width:100%;min-width:0;height:9cqw;padding:0 1cqw;display:flex}.seq-chip.passed[data-v-a4f0f49e]{color:gray;background:#d8d8d8}.seq-chip.target[data-v-a4f0f49e]{background:var(--line-color);color:var(--v7aabb6a5);animation:.8s step-end infinite seq-blink-a4f0f49e}@keyframes seq-blink-a4f0f49e{0%,to{opacity:1}50%{opacity:.7}}.seq-link[data-v-a4f0f49e]{background:color-mix(in srgb, var(--line-color) 22%, #fff);flex:0 0 2.2cqw;height:1.2cqw;margin-top:2.3cqw;position:relative}.seq-link.target[data-v-a4f0f49e]{background:var(--line-color)}.seq-link.passed[data-v-a4f0f49e]{background:#d8d8d8}.seq-arrow[data-v-a4f0f49e]{width:.9cqw;height:.8cqw;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.seq-arrow[data-v-a4f0f49e]:not(.mirrored){transform:translate(-50%,-50%)scaleX(-1)}.seq-arrow path[data-v-a4f0f49e]{fill:none;stroke:currentColor;stroke-width:4.5px;stroke-linecap:round;stroke-linejoin:round}.seq-arrow.dim[data-v-a4f0f49e]{opacity:.7}.seq-name-mq[data-v-a4f0f49e],.seq-name-en-mq[data-v-a4f0f49e]{flex:none;align-self:stretch;min-width:0}.seq-name-mq[data-v-a4f0f49e] .marquee-track,.seq-name-en-mq[data-v-a4f0f49e] .marquee-track{margin:0 auto}.seq-name-mq[data-v-a4f0f49e] .marquee-copy,.seq-name-en-mq[data-v-a4f0f49e] .marquee-copy{padding:0}.seq-name-mq[data-v-a4f0f49e] .marquee-track.scrolling .marquee-copy,.seq-name-en-mq[data-v-a4f0f49e] .marquee-track.scrolling .marquee-copy{padding:0 1.6cqw}.seq-name[data-v-a4f0f49e]{font-size:3cqw;font-weight:700;line-height:1.05}.seq-name-en[data-v-a4f0f49e]{opacity:.85;font-size:1.5cqw;line-height:1.5}.seq-badges[data-v-a4f0f49e]{justify-content:center;align-items:center;gap:.3cqw;height:1.9cqw;margin-bottom:.4cqw;display:flex}.mini-badge[data-v-a4f0f49e]{border-radius:.38cqw;justify-content:center;align-items:center;min-width:2.3cqw;height:1.9cqw;padding:0 .25cqw;font-size:1.35cqw;display:inline-flex}.screen[data-v-ad6b8efc]{aspect-ratio:13/3;background:#fff;border:1px solid #000;position:relative;container-type:inline-size}.top-bar[data-v-ad6b8efc]{align-items:flex-start;height:4cqw;display:flex;position:absolute;top:0;left:0;right:0}.line-no[data-v-ad6b8efc]{background:var(--line-color);width:6.5cqw;height:100%;color:var(--line-no-color);clip-path:polygon(0 0,100% 0,calc(100% - 2cqw) 100%,0 100%);flex-shrink:0;justify-content:center;align-items:center;padding:0 1.5cqw .6cqw 0;font-size:3.1cqw;font-weight:700;display:flex}.line-no.adaptive[data-v-ad6b8efc]{width:auto;padding:0 2.3cqw .4cqw .7cqw}.line-no-full[data-v-ad6b8efc]{white-space:nowrap;flex-direction:column;justify-content:center;align-items:center;line-height:1.15;display:flex}.line-no-zh[data-v-ad6b8efc]{font-size:2cqw;font-weight:700}.line-no-en[data-v-ad6b8efc]{font-size:1.2cqw}.next-bar[data-v-ad6b8efc]{background:color-mix(in srgb, var(--line-color) 30%, #fff);clip-path:polygon(1.6cqw 0,100% 0,calc(100% - 1.6cqw) 100%,0 100%);color:#000;flex:auto;align-items:center;gap:1.8cqw;min-width:0;height:3.2cqw;margin-left:-1.6cqw;padding:0 2cqw 0 2.05cqw;line-height:1.05;display:flex}.bound-bar[data-v-ad6b8efc]{background:color-mix(in srgb, var(--line-color) 30%, #fff);color:#000;clip-path:polygon(1.6cqw 0,100% 0,100% 100%,0 100%);flex-shrink:0;align-items:center;gap:1.8cqw;min-width:0;max-width:42cqw;height:3.2cqw;margin-left:-.6cqw;padding:0 .5cqw 0 2.3cqw;line-height:1.05;display:flex}.bar-label[data-v-ad6b8efc]{white-space:nowrap;flex-shrink:0;align-items:center;gap:1cqw;display:flex}.label-zh[data-v-ad6b8efc]{height:2.2cqw;font-size:1.8cqw}.label-en[data-v-ad6b8efc]{height:1.6cqw;font-size:1.4cqw}.bar-value[data-v-ad6b8efc]{flex:auto;min-width:0;height:2.6cqw}.value-zh[data-v-ad6b8efc]{white-space:nowrap;font-size:2.3cqw;font-weight:700}.value-en[data-v-ad6b8efc]{white-space:nowrap;font-size:1.8cqw}.bar-value.arriving[data-v-ad6b8efc]{animation:.8s step-end infinite value-blink-ad6b8efc}@keyframes value-blink-ad6b8efc{0%,to{opacity:1}50%{opacity:.4}}.bottom-right[data-v-ad6b8efc]{align-items:stretch;height:4.5cqw;display:flex;position:absolute;bottom:0;right:0}.bottom-right.enlarged[data-v-ad6b8efc]{zoom:1.5}.door-text[data-v-ad6b8efc]{background:var(--line-color);height:100%;color:var(--line-no-color);clip-path:polygon(2.25cqw 0,100% 0,calc(100% - 2.25cqw) 100%,0 100%);white-space:nowrap;flex-direction:column;justify-content:center;align-items:center;padding:0 2.75cqw 0 2.45cqw;line-height:1.1;display:flex}.door-text .zh[data-v-ad6b8efc]{font-size:2.5cqw}.door-text .en[data-v-ad6b8efc]{font-size:1.2cqw}.door-block[data-v-ad6b8efc]{background:color-mix(in srgb, var(--line-color) 45%, #000);clip-path:polygon(2.25cqw 0,100% 0,100% 100%,0 100%);justify-content:center;align-items:center;width:8.8cqw;margin-left:-2.3cqw;padding-top:.05cqw;display:flex}.door-icon[data-v-ad6b8efc]{--door-open:0;gap:.4cqw;margin-left:2.35cqw;display:flex;position:relative}.door-panel+.door-panel[data-v-ad6b8efc]{transform:translateX(calc(var(--door-open) * .5cqw))}.door-panel[data-v-ad6b8efc]{width:2.25cqw;height:3.8cqw;transform:translateX(calc(var(--door-open) * -.5cqw));background:#fff;border-radius:.375cqw;justify-content:center;display:flex;position:relative}.door-window[data-v-ad6b8efc]{background:color-mix(in srgb, var(--line-color) 45%, #000);border-radius:.2cqw;width:60%;height:32%;margin-top:.45cqw}.door-icon.closed .door-panel[data-v-ad6b8efc]{background:#f0f0f0}.no-entry[data-v-ad6b8efc]{width:3.7cqw;height:3.7cqw;position:absolute;top:50.5%;left:50%;transform:translate(-50%,-50%)}.door-chev[data-v-ad6b8efc]{width:1cqw;height:1.5cqw;position:absolute;bottom:.4cqw;left:50%;transform:translate(-50%)}.door-chev path[data-v-ad6b8efc]{stroke:color-mix(in srgb, var(--line-color) 75%, #000)}.door-panel:first-child .door-chev[data-v-ad6b8efc]{transform:translate(-50%)scaleX(-1)}.door-icon.arrow-inward .door-panel:first-child .door-chev[data-v-ad6b8efc]{transform:translate(-50%)}.door-icon.arrow-inward .door-panel+.door-panel .door-chev[data-v-ad6b8efc]{transform:translate(-50%)scaleX(-1)}.door-arrow[data-v-ad6b8efc]{width:1.1cqw;height:2cqw;position:absolute;top:50.5%;left:50%;transform:translate(-50%,-50%)}.screens[data-v-a971de00]{flex-direction:column;gap:10px;width:min(1920px,100%);display:flex}.screen-item[data-v-a971de00]{flex-direction:column;display:flex}.tag[data-v-a971de00]{color:#bbb;-webkit-user-select:none;user-select:none;margin-bottom:2px;font-size:12px}.app[data-v-fcd89d62]{background:#e8e8e8;flex-direction:column;min-height:100dvh;display:flex}.stage[data-v-fcd89d62]{flex:1;justify-content:center;align-items:center;min-width:0;padding:24px;display:flex;position:relative}.view-switch[data-v-fcd89d62]{z-index:10;background:#fff;border:1px solid #c8c8c8;border-radius:6px;display:flex;position:absolute;top:16px;left:16px;overflow:hidden}.view-switch button[data-v-fcd89d62]{color:#333;cursor:pointer;background:0 0;border:none;padding:6px 12px;font-size:13px;transition:background .2s,color .2s}.view-switch button+button[data-v-fcd89d62]{border-left:1px solid #c8c8c8}.view-switch button[data-v-fcd89d62]:hover{background:#f0f0f0}.view-switch button.active[data-v-fcd89d62]{color:#fff;background:#333}.panel-toggle[data-v-fcd89d62]{z-index:10;color:#333;cursor:pointer;background:#fff;border:1px solid #c8c8c8;border-radius:6px;padding:6px 14px;font-size:13px;transition:background .2s;position:absolute;top:16px;right:16px}.panel-toggle[data-v-fcd89d62]:hover{background:#f0f0f0}.panel[data-v-fcd89d62]{overscroll-behavior:contain;background:#fff;flex-shrink:0;width:100%;height:min(500px,48dvh);overflow-y:auto}@media (width>=1024px){.app[data-v-fcd89d62]{flex-direction:row}.panel[data-v-fcd89d62]{width:340px;height:100dvh}}
