:root{--bg-primary: #08090B;--bg-secondary: #101318;--bg-card: #14171C;--bg-card-hover: #1A1E24;--bg-disabled: #1E2228;--text-primary: #E9ECEF;--text-secondary: #8A9099;--text-muted: #6B727B;--text-disabled: #444A52;--accent-blue: #0071e3;--accent-blue-hover: #0077ed;--accent-green: #34c759;--accent-orange: #ff9500;--accent-red: #ff3b30;--accent-purple: #af52de;--status-success: #34c759;--status-warning: #ff9500;--status-error: #ff3b30;--status-info: #0071e3;--border-color: rgba(255, 255, 255, .14);--border-light: rgba(255, 255, 255, .09);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: .75rem;--spacing-lg: 1rem;--spacing-xl: 1.5rem;--spacing-2xl: 2rem;--spacing-3xl: 2.5rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-full: 9999px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-normal: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);color-scheme:dark}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;touch-action:manipulation}body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}button,a,[role=button],.clickable{-webkit-tap-highlight-color:transparent;touch-action:manipulation;min-height:44px;min-width:44px}button.small-btn,.icon-btn{min-height:unset;min-width:unset;position:relative}button.small-btn:before,.icon-btn:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;min-width:44px;min-height:44px}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;min-height:100vh}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:600;letter-spacing:-.01em;line-height:1.2;color:var(--text-primary)}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}h4{font-size:1rem}a{color:var(--accent-blue);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-blue-hover)}button{font-family:inherit;cursor:pointer;border:none;outline:none;background:none}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}::selection{background:var(--accent-blue);color:#fff}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.boot-screen{position:fixed;inset:0;display:grid;place-content:center;justify-items:center;gap:16px;background:#0e0e0e;color:#7f7f7f;font-size:14px;letter-spacing:.06em}.boot-screen p{margin:0}.boot-screen .bar{width:168px;height:2px;border-radius:2px;background:#ffffff0d;overflow:hidden}.boot-screen .bar:after{content:"";display:block;width:38%;height:100%;border-radius:2px;background:#fff6;animation:boot-sweep 1.5s ease-in-out infinite}.boot-screen button{padding:8px 18px;border:0;border-radius:30px;background:#ffffff0d;color:inherit;font:inherit;cursor:pointer}@keyframes boot-sweep{0%{transform:translate(-110%)}to{transform:translate(330%)}}@media(prefers-reduced-motion:reduce){.boot-screen .bar:after{animation:none;width:100%}}.glass-ui{--ink: #E9ECEF;--muted: #8A9099;--dim: #565C65;--accent: #4FA3E3;--accent-soft: rgba(79, 163, 227, .32);--ok: #35C759;--warn: #F0A23C;--crit: #F04438;--glass-fill: rgba(24, 27, 32, .6);--glass-line: rgba(255, 255, 255, .085);--glass-drop: rgba(0, 0, 0, .66);--chip-fill: rgba(255, 255, 255, .065);--rule: rgba(255, 255, 255, .085);--bg-base: #08090B;--g1: rgba(38, 66, 120, .3);--g2: rgba(20, 78, 86, .24);--g3: rgba(96, 60, 32, .18);--g4: rgba(58, 40, 92, .22);color:var(--ink);font:15px/1.55 PingFang SC,Hiragino Sans GB,Microsoft YaHei,system-ui,sans-serif;-webkit-font-smoothing:antialiased;color-scheme:dark}.glass-ui h1,.glass-ui h2,.glass-ui h3,.glass-ui h4{color:inherit}.glass-ui button{min-width:0;min-height:0;color:inherit;font:inherit}.glass-ui .mono{font-family:IBM Plex Mono,ui-monospace,Menlo,monospace}.glass-ui .num{font-family:Sora,PingFang SC,system-ui,sans-serif;font-variant-numeric:tabular-nums}.glass-ui .lg-card,.glass-ui .lg-bar,.glass-ui .lg-lens{background:var(--glass-fill);backdrop-filter:var(--hyalite, blur(22px) saturate(1.5));-webkit-backdrop-filter:var(--hyalite, blur(22px) saturate(1.5));box-shadow:var(--hyalite-edge, inset 0 0 0 1px var(--glass-line)),0 28px 60px -30px var(--glass-drop)}.glass-ui .lg-card{border-radius:26px;padding:20px}.glass-ui .lg-card.lg-paused{backdrop-filter:blur(6px) saturate(1.2);-webkit-backdrop-filter:blur(6px) saturate(1.2)}.glass-ui .lg-bar{border-radius:22px}.glass-ui .lg-lens{border-radius:50%}.glass-nav{position:fixed;z-index:1100;top:16px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:6px;border-radius:999px!important;max-width:calc(100% - 32px)}.glass-nav .brand{padding:0 14px 0 12px;font:600 14px/1 Sora,system-ui,sans-serif;letter-spacing:-.01em;white-space:nowrap}.glass-nav a,.glass-nav button{min-height:0;min-width:0;padding:7px 15px;border-radius:999px;color:var(--muted);font-size:14px;line-height:22px;white-space:nowrap;transition:color .2s,background-color .2s}.glass-nav a:hover,.glass-nav button:hover{color:var(--ink)}.glass-nav a.on{color:var(--ink);background:var(--chip-fill)}.glass-nav button.icon{display:grid;place-items:center;width:32px;height:32px;padding:0}.glass-nav button.icon svg{width:16px;height:16px}.glass-ui a:focus-visible,.glass-ui button:focus-visible,.glass-ui select:focus-visible,.glass-ui input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.glass-ui .dot{width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none}.glass-ui .dot.warn{background:var(--warn)}.glass-ui .dot.crit{background:var(--crit)}.glass-ui .dot.idle{background:var(--dim)}.glass-ui .eyebrow{font:500 11px/1 IBM Plex Mono,ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.glass-ui .chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;font-size:12px;line-height:1;color:var(--muted);background:var(--chip-fill);white-space:nowrap}.glass-ui .chip.warn{color:var(--warn);background:color-mix(in srgb,var(--warn) 15%,transparent)}.glass-ui .chip.ok{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}.glass-ui .chip.crit{color:var(--crit);background:color-mix(in srgb,var(--crit) 14%,transparent)}.glass-ui .chip.accent{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}.glass-ui .card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.glass-ui .hint{margin:0;font-size:12px;color:var(--muted)}.glass-ui .hint b{color:var(--ink);font-weight:500}.glass-ui svg text.ax{fill:var(--muted);font:11px IBM Plex Mono,ui-monospace,monospace}.glass-ui svg text.ax-cn{fill:var(--muted);font:12px PingFang SC,system-ui,sans-serif}.glass-ui svg text.val{fill:var(--ink);font:500 12px Sora,system-ui,sans-serif}.glass-ui svg .gridline{stroke:var(--rule);stroke-width:1}.glass-ui{--map-ground: #0B0D10;--route-casing: #07080A}.glass-ui .maplibregl-map{background:var(--map-ground);font:inherit}.stage-status{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:14px;padding:16px 20px;font-size:14px;color:var(--muted)}.stage-status button{padding:8px 14px;border-radius:999px;background:var(--chip-fill);color:var(--ink)}.glass-ui .page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;margin-bottom:20px;padding-inline:4px}.glass-ui .page-head h1{margin:0;font-size:34px;font-weight:600;letter-spacing:-.02em;line-height:1.1}.glass-ui .page-head p{margin:6px 0 0;font-size:12px;color:var(--muted)}.glass-ui .kpi-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));padding:0}.glass-ui .kpi-bar>div{padding:16px 20px;display:flex;flex-direction:column;gap:4px;min-width:0}.glass-ui .kpi-bar>div+div{border-left:1px solid var(--rule)}.glass-ui .kpi-bar small{font-size:12px;color:var(--muted);white-space:nowrap}.glass-ui .kpi-bar strong{font:300 28px/1.1 Sora,system-ui,sans-serif;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}.glass-ui .kpi-bar strong em{font-style:normal;font-size:13px;color:var(--muted);margin-left:4px;letter-spacing:0}.glass-ui .seg{display:inline-flex;gap:2px;padding:4px;border-radius:999px;background:var(--chip-fill)}.glass-ui .seg button{padding:7px 14px;border-radius:999px;font-size:13px;color:var(--muted);white-space:nowrap}.glass-ui .seg button:hover{color:var(--ink)}.glass-ui .seg button.on{background:var(--glass-fill);color:var(--ink);box-shadow:0 1px 4px #00000014,inset 0 0 0 1px var(--glass-line)}.glass-ui .switch{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);cursor:pointer}.glass-ui .switch input{accent-color:var(--accent);width:16px;height:16px;margin:0}.glass-ui .empty{padding:32px 16px;text-align:center;font-size:13px;color:var(--muted)}.glass-ui .more{display:block;margin:16px auto 0;padding:10px 20px;border-radius:999px;background:var(--chip-fill);font-size:13px}.glass-ui .more:hover{color:var(--accent)}.glass-ui .more:disabled{opacity:.6;cursor:default}.glass-page{position:relative;min-height:100vh;background:var(--bg-base)}.glass-page:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(60% 70% at 12% 8%,var(--g1),transparent 70%),radial-gradient(55% 65% at 92% 18%,var(--g2),transparent 70%),radial-gradient(60% 60% at 78% 96%,var(--g3),transparent 70%),radial-gradient(55% 60% at 8% 92%,var(--g4),transparent 70%)}.glass-page>main{position:relative;max-width:1240px;margin:0 auto;padding-inline:24px;padding-block:96px 64px}@media(max-width:640px){.glass-nav{top:auto;bottom:calc(14px + env(safe-area-inset-bottom))}.glass-nav .brand{display:none}.glass-nav a{padding:11px 16px}.glass-page>main{padding-inline:16px;padding-block:24px 120px}.glass-ui .page-head h1{font-size:28px}.glass-ui .kpi-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.glass-ui .kpi-bar>div+div{border-left:0}.glass-ui .kpi-bar strong{font-size:22px}}@keyframes glass-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes glass-fade{0%{opacity:0}to{opacity:1}}.glass-nav{animation:glass-fade .5s ease .1s backwards}.glass-page>main>*{animation:glass-rise .55s cubic-bezier(.22,.7,.3,1) backwards}.glass-page>main>*:nth-child(2){animation-delay:.08s}.glass-page>main>*:nth-child(3){animation-delay:.16s}.glass-page>main>*:nth-child(n+4){animation-delay:.24s}@media(prefers-reduced-motion:reduce){.glass-nav,.glass-page>main>*{animation:none}}
