:root{--railway-color-bg-panel:#f2f9fdcc;--railway-color-bg-panel-header:#c7e2f2cc;--railway-panel-header-gradient:linear-gradient(90deg, #d8f1ff 0%, #f8fcff 52%, #e6f6ff 100%);--railway-panel-backdrop-blur:16px;--railway-color-bg-canvas:#f4f8fb;--railway-color-bg-page:#fff;--railway-color-bg-map:#e8f0f5;--railway-color-bg-dialog:#f4fafe;--railway-color-bg-panel-elevated:#f8fcfff2;--railway-color-bg-table-header:#c7e2f2;--railway-color-bg-scrim:#00000052;--railway-color-border-default:#b7cdda;--railway-color-border-subtle:#d5e4ec;--railway-color-control-selected:#0777b8;--railway-color-text-primary:#152c3a;--railway-color-text-secondary:#38586b;--railway-color-text-tertiary:#607b8b;--railway-color-status-success:#168653;--railway-color-status-warning:#a97412;--railway-color-status-severe:#b84b16;--railway-color-status-danger:#b4232e;--railway-color-action-danger:#9f1d2b;--railway-color-status-danger-deep:#fdecec;--railway-color-chip-red-bg:#fdecec;--railway-color-chip-red-text:#9f1d2b;--railway-color-chip-purple-bg:#f1eeff;--railway-color-chip-purple-text:#5a49b5;--railway-color-chip-gray-bg:#e7f1f7;--railway-color-chip-gray-text:#38586b;--railway-color-chip-green-bg:#eaf8ef;--railway-color-chip-green-text:#147e50;--railway-color-shadow-base:#000;--railway-color-accent:#0777b8;--railway-color-dashboard-blue:#08a4ff;--railway-color-panel-heading-divider:#91cdea;--railway-panel-title-text-gradient:linear-gradient(180deg, #045889 0%, #08a4ff 100%);--railway-color-accent-soft:#d0eeff;--railway-color-accent-hover:#045889;--railway-color-on-accent:#fff;--railway-color-video-bg:#0d1a22;--railway-color-video-text:#edf8ff;--railway-color-video-overlay:#0d1a22cc;--railway-color-debug-surface:#0a2436f2;--railway-color-debug-text:#e8f8ff;--railway-color-debug-muted:#9dc4d9;--railway-color-debug-accent:#6fd3ff;--railway-color-status-success-soft:#eaf8ef;--railway-color-status-warning-soft:#fff8e6;--railway-color-status-danger-soft:#fdecec;--railway-color-status-severe-soft:#fff1e8;--railway-color-control-hover-bg:color-mix(in srgb, var(--railway-color-border-subtle) 92%, transparent);--railway-color-control-surface:var(--railway-color-bg-panel-elevated);--railway-color-switch-thumb:var(--railway-color-on-accent);--railway-color-shadow:color-mix(in srgb, var(--railway-color-shadow-base) 28%, transparent);--railway-color-skeleton-base:color-mix(in srgb, var(--railway-color-bg-table-header) 45%, var(--railway-color-bg-canvas));--railway-color-skeleton-highlight:color-mix(in srgb, var(--railway-color-bg-table-header) 85%, var(--railway-color-bg-canvas));--railway-motion-skeleton-duration:1.4s;--railway-motion-content-duration:.22s;--railway-motion-content-offset:4px;--railway-motion-content-ease:cubic-bezier(.22, 1, .36, 1);--railway-motion-skeleton-shimmer-duration:var(--railway-motion-skeleton-duration);--railway-motion-content-enter-duration:var(--railway-motion-content-duration);--railway-motion-content-enter-ease:var(--railway-motion-content-ease);--railway-font-family-cn:"Noto Sans SC", var(--font-cn);--railway-font-family-number:"Barlow", var(--font-number);--railway-font-size-annotation:12px;--railway-font-size-chip:10px;--railway-font-size-body:14px;--railway-font-size-table:16px;--railway-font-size-panel-title:28px;--railway-font-size-panel-header-title:24px;--railway-line-height-panel-header-title:1.36364;--railway-shadow-panel-header-title:0 2px 8px color-mix(in srgb, var(--railway-color-shadow-base) 30%, transparent);--railway-font-size-product-title:36px;--railway-font-size-number-l:24px;--railway-font-size-number-xl:36px;--railway-font-weight-regular:400;--railway-font-weight-medium:500;--railway-font-weight-semibold:600;--railway-spacing-02:2px;--railway-spacing-04:4px;--railway-spacing-06:6px;--railway-spacing-08:8px;--railway-spacing-10:10px;--railway-spacing-12:12px;--railway-spacing-16:16px;--railway-spacing-24:24px;--railway-radius-02:2px;--railway-radius-04:4px;--railway-radius-06:6px;--railway-radius-08:8px}.header,.side{--railway-color-bg-panel:#f4fbfffa;--railway-color-bg-panel-elevated:#fffc;--railway-color-accent:#08a4ff;--railway-color-control-selected:#08a4ff;--railway-color-text-primary:#093f5f;--railway-color-text-secondary:#5489a7;--railway-color-text-tertiary:#8cb6ce;--railway-color-border-default:#bce4fb;--railway-color-border-subtle:#bce4fb;--railway-color-status-success:#16b778;--railway-color-status-warning:#e9a111;--railway-color-status-danger:#f53345;--railway-color-status-severe:#ff9100;--railway-color-bg-table-header:#e5f4fc;--railway-color-chip-red-bg:#ffe9eb;--railway-color-chip-red-text:#f53345;--railway-panel-heading-gradient:linear-gradient(90deg, #cdedff, #f4fbff);--railway-color-donut-track:#bee8e4;--railway-radius-panel:14px}:root{--railway-color-text-secondary:#38586b;--railway-color-text-tertiary:#607b8b;--railway-color-accent:#0777b8;--railway-color-action-blue:#08a4ff;--railway-action-gradient:linear-gradient(135deg, #08a4ff, #0777b8);--railway-login-gradient:radial-gradient(ellipse at 22% 18%, #cdedff, transparent 55%), linear-gradient(135deg, #e8f7ff, #f8fcff 60%, #dcf2ff);--railway-color-focus:#0777b8;--railway-color-focus-soft:#d0eeff;--railway-shadow-panel:0 4px 18px #164a6812;--railway-shadow-dialog:0 24px 70px #164a6833;--railway-motion-fast:.16s;--railway-radius-panel:12px;--railway-panel-heading-gradient:linear-gradient(90deg, #cdedff, #f4fbff);--railway-map-danger:#c9342e;--railway-map-warning:#ffd25c;--railway-map-primary:#0c7fa8;--railway-map-rail-light:#a9b8c4;--railway-map-rail-normal:#4b5f70;--cyan:var(--railway-color-accent);--deep:var(--railway-color-text-primary);--panel:var(--railway-color-bg-panel);--panel-dark:var(--railway-color-bg-panel-elevated);--gold:var(--railway-color-status-warning);--red:var(--railway-color-status-danger);--green:var(--railway-color-status-success);--muted:var(--railway-color-text-tertiary)}.side{--railway-panel-heading-gradient:linear-gradient(90deg, #045889, #0777b8);--railway-color-bg-panel:#e6f5fdfa;--railway-panel-title-text-gradient:linear-gradient(180deg, #03466d 0%, #0777b8 100%);--railway-color-text-secondary:#386b89;--railway-color-text-tertiary:#517a91;--railway-color-status-success:#147e50;--railway-color-status-warning:#93620a;--railway-color-status-danger:#b4232e;--railway-color-status-severe:#b84b16}.header,.side{--railway-color-accent:#0777b8}:root{--railway-glass-surface:#f2f9fec7;--railway-glass-surface-strong:#f5fbffeb;--railway-glass-header:linear-gradient(180deg, #f8fcffeb 0%, #e9f6fde0 100%);--railway-glass-inset:#fff9;--railway-glass-inset-hover:#e1f3fde6;--railway-glass-inset-selected:#d6eefcf2;--railway-glass-border:#ffffffc2;--railway-glass-edge:#8fc6e652;--railway-glass-divider:#0777b81f;--railway-glass-track:#0777b814;--railway-glass-highlight:inset 0 1px 0 #ffffffe6;--railway-glass-shadow:0 0 0 1px var(--railway-glass-edge), 0 14px 36px #0a4a7021, 0 2px 6px #0a4a7012;--railway-glass-shadow-raised:0 0 0 1px var(--railway-glass-edge), 0 22px 56px #0a4a702e, 0 4px 12px #0a4a7017;--railway-glass-control-shadow:0 1px 3px #0a4a7024;--railway-glass-filter:blur(22px) saturate(1.6);--railway-glass-title:#03466d;--railway-glass-marker:linear-gradient(180deg, #08a4ff 0%, #045889 100%);--railway-glass-scrim:#0a2a3d52;--railway-color-map-side-shade:#00000029;--railway-color-map-side-shade-soft:#0000000f;--railway-color-map-stem:#12c8ec;--railway-color-map-icon-shadow:#0a2a3d61;--railway-color-map-label-text:#fff;--railway-color-map-label-outline:#102838;--railway-color-map-label-outline-station:#0777b8;--railway-color-map-label-outline-warning:#c9342e;--railway-glass-radius:18px;--railway-glass-radius-inner:10px;--railway-glass-radius-control:8px}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){:root{--railway-glass-surface:#f2f9fef7;--railway-glass-surface-strong:#f5fbfffc}}@media (prefers-reduced-transparency:reduce){:root{--railway-glass-surface:#f2f9fefa;--railway-glass-surface-strong:#f5fbfffd;--railway-glass-filter:none}}@font-face{font-family:BarlowSemiBold;src:url(/assets/Barlow-SemiBold-DrfcEYX2.ttf)format("truetype");font-weight:600;font-style:normal;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--railway-color-text-primary);background:var(--railway-color-bg-canvas);--font-cn:"PingFangSC", "PingFang SC", "Microsoft YaHei", sans-serif;--font-number:"BarlowSemiBold", "Barlow", "DIN Alternate", "Arial Narrow", sans-serif;font-family:PingFangSC,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--railway-color-text-tertiary) var(--railway-color-border-subtle)}html,body,#root{width:100%;height:100%;overflow:hidden}body{background:var(--railway-color-bg-canvas);min-width:0;margin:0}button{font:inherit}a{color:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px;min-height:28px}::-webkit-scrollbar-thumb:hover{background:var(--railway-color-text-secondary)}::-webkit-scrollbar-corner{background:0 0}.screen{--dashboard-width-scale:1;--dashboard-header-height:72px;--dashboard-side-scale:1;--dashboard-side-design-height:1128px;--dashboard-side-width:380px;background:var(--railway-color-bg-page);width:100vw;height:100vh;min-height:0;position:relative;overflow:hidden}.header{z-index:5;width:100%;height:72px;color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel-elevated);border-bottom:1px solid var(--railway-color-border-default);box-shadow:none;transform:scale(var(--dashboard-width-scale));transform-origin:0 0;justify-content:center;align-items:center;display:flex;position:absolute;top:0;left:0;overflow:hidden}.header:after{content:"";background:var(--railway-color-border-subtle);height:2px;box-shadow:none;position:absolute;bottom:0;left:0;right:0}.header h1{z-index:2;text-align:center;letter-spacing:4px;min-width:520px;font-size:34px;font-weight:700;line-height:72px;font-family:var(--font-cn);text-shadow:none;clip-path:none;background:0 0;margin:-7px 28px 0;padding:0 38px;position:relative}.admin-entry{z-index:3;min-width:86px;height:34px;color:var(--railway-color-on-accent);letter-spacing:1px;background:var(--railway-color-accent);border:1px solid var(--railway-color-border-default);box-shadow:none;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex;position:absolute;top:18px;right:30px}.admin-entry:before{content:"";background:var(--railway-color-border-subtle);width:7px;height:7px;box-shadow:0 0 8px var(--railway-color-shadow)}.admin-entry:hover,.admin-entry:focus-visible{color:var(--railway-color-accent);border-color:var(--railway-color-accent);box-shadow:none;outline:none}.train-line,.train-right{display:none}.dashboard{top:var(--dashboard-header-height);grid-template-columns:var(--dashboard-side-width) minmax(0, 1fr) var(--dashboard-side-width);height:auto;min-height:0;display:grid;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.side{pointer-events:none;z-index:2;width:380px;height:var(--dashboard-side-design-height);background:var(--railway-color-bg-panel);box-shadow:0 0 32px var(--railway-color-shadow);transform:scale(var(--dashboard-side-scale));grid-row:1;position:relative}.left-side{z-index:14;border-right:1px solid var(--railway-color-border-default);transform-origin:0 0;grid-column:1}.right-side{border-left:1px solid var(--railway-color-border-default);transform-origin:100% 0;grid-column:3;justify-self:end}.panel{pointer-events:auto;box-sizing:border-box;background:var(--railway-color-bg-panel);position:relative}.panel+.panel{margin-top:0}.left-side{height:var(--dashboard-side-design-height);flex-direction:column;min-height:0;display:flex;overflow:visible}.left-side .panel+.panel{padding-top:8px}.left-side .panel:first-child{height:180px}.left-side .panel:nth-child(2){height:252px}.left-side .panel:nth-child(3){height:248px}.left-side .panel:nth-child(4){flex-direction:column;flex:1;height:auto;min-height:0;display:flex}.left-side .panel.key-parts-panel{z-index:12}.left-side .panel.control-panel,.left-side .panel.overview-panel{height:auto}.panel-title{background:var(--railway-color-bg-table-header);height:44px;min-height:44px;box-shadow:none;justify-content:flex-start;align-items:center;gap:0;padding:0 22px;display:flex;position:relative}.left-side .panel-title{justify-content:flex-end;gap:0;padding:0 22px}.title-rail{display:none}.panel-title h2{z-index:1;letter-spacing:1px;font-size:18px;font-family:var(--font-cn);text-align:right;margin:0;font-weight:600;position:relative}.panel-title button{z-index:1;color:var(--railway-color-text-primary);cursor:pointer;background:0 0;border:0;margin-left:8px;position:relative}.places-grid{grid-template-columns:1fr 1fr;gap:10px 12px;padding:16px 14px 0;display:grid}.place-item{border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);height:32px;min-height:32px;box-shadow:none;grid-template-columns:24px 1fr auto;align-items:center;gap:10px;padding:0 12px;font-size:15px;display:grid}.place-item b{color:var(--railway-color-text-primary)}.place-item strong{color:var(--railway-color-accent);font-family:var(--font-number);letter-spacing:.5px;font-size:17px}.place-item-button{width:100%;color:inherit;cursor:pointer;text-align:left;transition:transform .18s,border-color .18s,box-shadow .18s}.place-item-button:hover,.place-item-button.active{border-color:var(--railway-color-accent);box-shadow:none;transform:translateY(-1px)}.place-item .round-icon{width:24px;height:24px;box-shadow:none;border:0;border-radius:0;background:0 0!important}.place-item .round-icon img{width:24px;height:24px}.round-icon{width:24px;height:24px;color:var(--railway-color-on-accent);border:2px solid var(--railway-color-border-default);border-radius:50%;place-items:center;font-size:13px;display:grid;box-shadow:0 0 12px}.round-icon.small{width:24px;height:24px;font-size:12px}.round-icon img{object-fit:contain;width:28px;height:28px;display:block}.round-icon.small img{width:24px;height:24px}.violet{background:var(--railway-color-chip-purple-bg);color:var(--railway-color-chip-purple-text)}.cyan{background:var(--railway-color-accent-soft);color:var(--railway-color-accent)}.green,.lime{background:var(--railway-color-status-success-soft);color:var(--railway-color-status-success)}.orange{background:var(--railway-color-status-severe-soft);color:var(--railway-color-status-severe)}.red{background:var(--railway-color-status-danger-soft);color:var(--railway-color-status-danger)}.key-part-popup{z-index:20;border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-dialog);width:300px;box-shadow:none;padding:10px 12px 12px;position:absolute;top:58px;left:calc(100% + 14px)}.key-part-popup-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.key-part-popup-head b{color:var(--railway-color-text-primary);font-size:18px;font-weight:700}.key-part-popup-close{width:28px;height:28px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);cursor:pointer;font-size:20px;line-height:24px}.key-part-popup-body{scrollbar-width:thin;scrollbar-color:var(--railway-color-text-tertiary) var(--railway-color-border-subtle);gap:8px;max-height:270px;padding-right:4px;display:grid;overflow-y:auto}.key-part-popup-body::-webkit-scrollbar{width:10px}.key-part-popup-body::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);box-shadow:inset 0 0 0 1px var(--railway-color-shadow);border-radius:999px}.key-part-popup-body::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border:0;border-radius:999px}.key-part-popup-body::-webkit-scrollbar-thumb:hover{background:var(--railway-color-text-secondary)}.key-part-popup-body::-webkit-scrollbar-corner{background:0 0}.key-part-popup-item{width:100%;min-height:34px;color:var(--railway-color-text-primary);text-align:left;border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;padding:0 12px;overflow:hidden}.key-part-popup-empty{color:var(--railway-color-accent);text-align:center;background:var(--railway-color-bg-panel);margin:0;padding:24px 12px}.control-panel-body{gap:6px;padding:10px 12px 10px 16px;display:grid}.control-panel p,.control-row{color:var(--railway-color-text-secondary);align-items:flex-start;gap:0;min-width:0;margin:0;padding:0;font-size:13px;line-height:22px;display:flex}.control-panel-body>:last-child{border-bottom:0;padding-bottom:0}.control-panel p span,.control-label{color:var(--railway-color-text-primary);flex:0 0 78px;font-weight:600}.control-value{min-width:0;color:var(--railway-color-text-primary);text-align:left;flex:auto;font-weight:500;display:block}.control-row-multiline .control-value{white-space:normal;text-overflow:clip;line-height:22px;overflow:visible}.legend-row,.pager{display:none}.legend{width:16px;height:16px;box-shadow:none;border-radius:4px;display:inline-block}.legend-img{object-fit:contain;vertical-align:middle;flex:0 0 16px;width:16px;height:16px}.legend.cyan{background:var(--railway-color-accent)}.legend.orange{background:var(--railway-color-status-severe-soft)}.legend.red{background:var(--railway-color-status-danger-soft)}.pager{gap:6px;padding-top:9px;padding-left:26px;display:flex}.pager span,.pager b{width:22px;height:20px;font-family:var(--font-number);color:var(--railway-color-accent);background:var(--railway-color-bg-panel);place-items:center;font-size:12px;display:grid}.pager b{color:var(--railway-color-on-accent);background:var(--railway-color-accent)}.alert-panel{background:var(--railway-color-status-danger-soft);flex-direction:column;flex:1 1 0;min-height:0;display:flex;overflow:hidden}.alert-panel .panel-title{background:var(--railway-color-bg-table-header);box-shadow:none;padding-left:58px;overflow:hidden}.alert-panel .panel-title:before{content:"";background:var(--railway-panel-header-gradient);position:absolute;inset:0;transform:scaleX(-1)}.alert-panel .panel-title h2,.alert-panel .panel-title button{z-index:1;position:relative}.alert-panel .title-rail{background:var(--railway-color-status-danger-soft);box-shadow:-12px 0 0 var(--railway-color-shadow), -24px 0 0 var(--railway-color-shadow)}.warning-stats{flex:none;grid-template-columns:repeat(4,1fr);gap:11px;padding:24px 12px 8px;display:grid}.warning-stats button{cursor:pointer;height:54px;box-shadow:none;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;padding:0;display:flex}.warning-stats button.active{border-color:var(--railway-color-accent);box-shadow:none}.warning-stats b{font-family:var(--font-number);letter-spacing:.4px;margin-top:3px;font-size:18px}.warning-stats .blue{background:var(--railway-color-bg-panel)}.warning-stats .gold{background:var(--railway-color-status-warning-soft);color:var(--railway-color-status-warning)}.warning-stats .green{background:var(--railway-color-status-success-soft);color:var(--railway-color-status-success)}.warning-stats .red{background:var(--railway-color-status-danger-soft);color:var(--railway-color-status-danger)}.danger-line{background:var(--railway-color-status-danger-soft);border-top:1px solid var(--railway-color-status-danger);flex:none;height:12px;margin:0 12px}.alert-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--railway-color-text-tertiary) var(--railway-color-border-subtle);flex:1;height:0;min-height:0;padding:10px 12px 14px;overflow:hidden auto}.alert-scroll::-webkit-scrollbar{width:8px}.alert-scroll::-webkit-scrollbar-track{background:var(--railway-color-border-subtle)}.alert-scroll::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.alert-card{width:100%;height:68px;color:inherit;text-align:left;border:1px solid var(--railway-color-border-default);border-left:3px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);cursor:pointer;grid-template-columns:34px minmax(0,1fr) 76px;align-items:center;gap:10px;padding:7px 10px;transition:background .16s,box-shadow .16s;display:grid}.alert-card.is-handled{border-color:var(--railway-color-status-success);border-left-color:var(--railway-color-status-success);background:var(--railway-color-status-success-soft)}.alert-card:hover,.alert-card:focus-visible{background:var(--railway-color-accent-soft);box-shadow:none;outline:0}.alert-card.is-handled:hover,.alert-card.is-handled:focus-visible{background:var(--railway-color-status-success-soft);box-shadow:none}.alert-card i{background:var(--railway-color-accent);width:32px;height:32px;box-shadow:0 0 12px var(--railway-color-shadow);border-radius:50%}.alert-card.is-handled i{filter:saturate(.72);opacity:.82}.alert-main{flex-direction:column;gap:6px;min-width:0;display:flex}.alert-row{grid-template-columns:minmax(0,1fr) 76px;align-items:center;gap:8px;display:grid}.alert-row b{font-family:var(--font-number);color:var(--railway-color-text-primary);letter-spacing:0;text-align:right;white-space:nowrap;font-size:11px}.alert-row span{color:var(--railway-color-text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.alert-row em{font-family:var(--font-number);color:var(--railway-color-status-danger);letter-spacing:.2px;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-style:normal;overflow:hidden}.alert-row small{color:var(--railway-color-status-danger);text-align:right;font-size:12px}.alert-card>strong{min-width:68px;color:var(--railway-color-status-danger);background:var(--railway-color-bg-panel);border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:5px 7px;font-size:13px;font-weight:700;display:inline-flex}.alert-card>strong span{background:var(--railway-color-bg-panel);width:6px;height:6px;box-shadow:0 0 8px var(--railway-color-shadow);border-radius:50%}.alert-card>strong.handled span{background:var(--railway-color-status-success-soft)}.alert-empty{height:100%;color:var(--railway-color-text-tertiary);background:var(--railway-color-bg-panel);place-items:center;display:grid}.map-area{z-index:0;background:var(--railway-color-bg-map);position:absolute;inset:0;overflow:hidden}.top-metrics{z-index:6;width:744px;transform:translateX(-50%) scale(var(--dashboard-width-scale));transform-origin:top;grid-template-columns:repeat(3,232px);justify-content:space-between;gap:0;display:grid;position:absolute;top:32px;left:50%}.top-metrics div{width:232px;height:64px;color:var(--railway-color-text-primary);--kpi-card-bg:none;background:var(--railway-color-bg-panel);box-shadow:none;justify-content:center;align-items:center;gap:8px;font-size:16px;display:flex;position:relative;overflow:hidden}.top-metrics div>img{object-fit:contain;width:42px;height:42px;filter:drop-shadow(0 0 7px var(--railway-color-shadow))}.top-metrics div>span{white-space:nowrap;font-size:16px;font-weight:600}.top-metrics div:before,.top-metrics div:after{content:"";display:none}.top-metrics div:before{left:0}.top-metrics div:after{right:0}.top-metrics div:nth-child(4){--kpi-card-bg:none}.top-metrics div.gold{--kpi-card-bg:none;background-color:var(--railway-color-status-warning-soft)}.top-metrics div.red{--kpi-card-bg:none;background-color:var(--railway-color-status-danger-soft)}.top-metrics b{font-family:var(--font-number);color:var(--railway-color-accent);letter-spacing:.5px;font-size:35px;line-height:1}.alert-panel-compact .alert-scroll{height:auto;padding-top:8px}.alert-panel-compact .alert-card{min-height:58px}.warning-overview-panel,.warning-trend-panel{background:linear-gradient(180deg, var(--railway-color-bg-panel), var(--railway-color-bg-panel));flex-direction:column;min-height:0;display:flex}.warning-overview-panel .panel-title,.warning-trend-panel .panel-title{background:var(--railway-panel-header-gradient)}.warning-overview-body{flex:1;grid-template-columns:148px 1fr;align-items:center;gap:24px;min-height:0;padding:14px 16px 18px;display:grid}.warning-level-chart{width:126px;height:126px;box-shadow:0 0 22px var(--railway-color-shadow);border-radius:50%;place-items:center;margin:0 auto;display:grid;position:relative}.warning-level-chart>svg{z-index:0;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.warning-ring-segment,.warning-ring-empty{fill:none;stroke-width:18px;transform-origin:63px 63px;transform:rotate(-90deg)}.warning-ring-segment{cursor:pointer;transition:transform .16s,filter .16s}.warning-ring-segment:hover{filter:brightness(1.08) drop-shadow(0 2px 3px var(--railway-color-shadow));transform:rotate(-90deg)scale(1.035)}.warning-level-chart:after{content:"";border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);box-shadow:inset 0 0 12px var(--railway-color-shadow);border-radius:50%;position:absolute;inset:20px}.warning-pie-label{z-index:2;color:var(--railway-color-text-primary);white-space:nowrap;text-shadow:0 1px 3px var(--railway-color-shadow);pointer-events:none;flex-direction:column;font-size:9px;line-height:12px;display:flex;position:absolute}.warning-pie-label em{color:var(--railway-color-text-primary);font-size:10px;font-style:normal}.warning-pie-label.label-1{align-items:flex-start;top:9px;left:-25px}.warning-pie-label.label-2{align-items:flex-end;top:-9px;right:-15px}.warning-pie-label.label-3{align-items:center;bottom:-26px;right:34px}.warning-pie-popover{z-index:4;min-width:108px;height:27px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);box-shadow:0 5px 12px var(--railway-color-shadow);white-space:nowrap;pointer-events:none;border-radius:2px;align-items:center;gap:5px;padding:0 8px;font-size:10px;display:flex;position:absolute;top:54%;left:62%}.warning-pie-popover i{flex:0 0 7px;width:7px;height:7px}.warning-pie-popover b{color:var(--railway-color-text-primary);margin-left:auto;font-size:11px}.warning-overview-detail>p{color:var(--railway-color-text-primary);text-align:center;margin:0 0 18px;font-size:15px}.warning-overview-detail>p b{color:var(--railway-color-text-secondary);font-family:var(--font-number);font-size:22px}.warning-overview-detail>div{border-bottom:1px solid var(--railway-color-border-subtle);min-height:34px;color:var(--railway-color-text-primary);grid-template-columns:8px 1fr 36px 36px;align-items:center;gap:7px;font-size:12px;display:grid}.warning-overview-detail i{width:7px;height:7px}.warning-overview-detail em{color:var(--railway-color-text-secondary);font-style:normal}.warning-trend-toolbar{justify-content:space-between;align-items:center;padding:12px 14px 6px;display:flex}.warning-trend-legend{gap:10px;display:flex}.warning-trend-legend span{color:var(--railway-color-text-primary);align-items:center;gap:4px;font-size:11px;display:flex}.warning-trend-legend i{width:12px;height:2px}.warning-trend-legend .level-one,.warning-trend-legend .level-two,.warning-trend-legend .level-three{background:var(--railway-color-bg-panel)}.warning-trend-periods{gap:4px;display:flex}.warning-trend-periods button{border:1px solid var(--railway-color-border-subtle);height:22px;color:var(--railway-color-text-secondary);background:var(--railway-color-bg-panel);cursor:pointer;padding:0 7px;font-size:11px}.warning-trend-periods button.active{border-color:var(--railway-color-border-subtle);color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel)}.warning-trend-chart{flex:1;grid-template-columns:28px minmax(0,1fr);min-height:0;margin:6px 14px 16px;display:grid}.warning-trend-y-axis{color:var(--railway-color-text-secondary);text-align:right;flex-direction:column;justify-content:space-between;padding:0 5px 22px 0;font-size:10px;display:flex}.warning-trend-plot{border-left:1px solid var(--railway-color-border-subtle);border-bottom:1px solid var(--railway-color-border-subtle);background-image:repeating-linear-gradient(to bottom, var(--railway-color-bg-panel) 0 1px, transparent 1px 42px);min-width:0;min-height:0;position:relative}.warning-trend-plot svg{width:calc(100% - 12px);height:calc(100% - 32px);position:absolute;inset:8px 6px 24px;overflow:visible}.warning-trend-chart polyline{fill:none;stroke-width:1.5px;vector-effect:non-scaling-stroke}.warning-trend-hit-area{cursor:pointer;pointer-events:all}.warning-trend-single-point{z-index:2;pointer-events:none;border-radius:50%;width:4px;height:4px;position:absolute;transform:translate(-50%,-50%)}.warning-trend-popover{z-index:3;border:1px solid var(--railway-color-border-subtle);min-width:92px;color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel);box-shadow:0 6px 16px var(--railway-color-shadow);pointer-events:none;white-space:nowrap;border-radius:3px;padding:6px 8px;font-size:10px;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.warning-trend-popover:after{content:"";border-right:1px solid var(--railway-color-border-subtle);border-bottom:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);width:8px;height:8px;position:absolute;bottom:-5px;left:50%;transform:translate(-50%)rotate(45deg)}.warning-trend-popover>span{color:var(--railway-color-text-secondary)}.warning-trend-popover p{align-items:center;gap:5px;margin:4px 0 0;display:flex}.warning-trend-popover i{border-radius:50%;width:7px;height:7px}.warning-trend-popover b{color:var(--railway-color-text-primary);margin-left:auto}.warning-trend-labels{position:absolute;bottom:3px;left:6px;right:6px}.warning-trend-labels span{color:var(--railway-color-text-secondary);white-space:nowrap;font-size:10px;position:absolute;bottom:0;transform:translate(-50%)}.tile-map{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;overscroll-behavior:contain;background:var(--railway-color-bg-map);position:absolute;inset:0;overflow:hidden}.cesium-map{background:var(--railway-color-bg-map);position:absolute;inset:0;overflow:hidden}.cesium-map-wrap{background:var(--railway-color-bg-map);position:absolute;inset:0}.railway-map-wrap:after{--map-side-shade-reach:calc(var(--dashboard-side-width,420px) + 160px);content:"";z-index:3;pointer-events:none;background:linear-gradient(90deg, var(--railway-color-map-side-shade) 0, var(--railway-color-map-side-shade-soft) calc(var(--dashboard-side-width,420px) * .75), transparent var(--map-side-shade-reach)), linear-gradient(270deg, var(--railway-color-map-side-shade) 0, var(--railway-color-map-side-shade-soft) calc(var(--dashboard-side-width,420px) * .75), transparent var(--map-side-shade-reach));position:absolute;inset:0}.cesium-point-overlay-layer{z-index:5;pointer-events:none;position:absolute;inset:0;overflow:hidden}.cesium-point-overlay-item{--point-size:28px;--point-scale:1;width:var(--point-size);height:var(--point-size);cursor:pointer;pointer-events:auto;contain:layout style;background:0 0;border:0;margin:0;padding:0;position:absolute;top:0;left:0;transform:translate(-9999px,-9999px)}.cesium-point-overlay-item:disabled{cursor:default;pointer-events:none}.cesium-point-overlay-item.warning-target{z-index:2}.cesium-point-overlay-item.countermeasure-device{z-index:1}.cesium-point-overlay-icon{width:var(--point-size);height:var(--point-size);object-fit:contain;transform:scale(var(--point-scale));transform-origin:50%;filter:none;pointer-events:none;display:block}.cesium-point-overlay-dot{width:12px;height:12px;margin:calc((var(--point-size) - 12px) / 2);border:2px solid var(--railway-color-border-default);box-shadow:0 2px 5px var(--railway-color-shadow);transform:scale(var(--point-scale));transform-origin:50%;pointer-events:none;border-radius:50%;display:block}.cesium-point-overlay-icon[hidden],.cesium-point-overlay-dot[hidden]{display:none}.cesium-point-overlay-item.has-dot-form .cesium-point-overlay-icon,.cesium-point-overlay-item.has-dot-form .cesium-point-overlay-dot{transition:opacity var(--railway-motion-content-duration) var(--railway-motion-content-ease), scale var(--railway-motion-content-duration) var(--railway-motion-content-ease);margin:auto;position:absolute;inset:0}.cesium-point-overlay-item.has-dot-form .cesium-point-overlay-dot{border-color:var(--railway-color-on-accent);box-shadow:0 1px 4px var(--railway-color-shadow);opacity:0;scale:.4}.cesium-point-overlay-item.has-dot-form.is-compact .cesium-point-overlay-dot{opacity:1;scale:1}.cesium-point-overlay-item.has-dot-form.is-compact .cesium-point-overlay-icon{opacity:0;scale:.6}.cesium-point-overlay-item.is-lifted{--point-stem:calc(16px * var(--point-scale));--point-lift:calc(var(--point-size) / 2 * var(--point-scale) + var(--point-stem));pointer-events:none}.cesium-point-overlay-item.is-lifted .cesium-point-overlay-icon{translate:0 calc(-1 * var(--point-lift));filter:drop-shadow(0 4px 6px var(--railway-color-map-icon-shadow));pointer-events:auto;cursor:pointer}.cesium-point-overlay-item.is-lifted.is-compact .cesium-point-overlay-icon{pointer-events:none}.cesium-point-overlay-item.is-lifted.is-compact .cesium-point-overlay-dot{pointer-events:auto;cursor:pointer}.cesium-point-overlay-item.is-lifted:before{content:"";pointer-events:none;transition:opacity var(--railway-motion-content-duration) var(--railway-motion-content-ease);width:2px;height:var(--point-stem);background:var(--railway-color-map-stem);box-shadow:0 0 2px var(--railway-color-map-icon-shadow);border-radius:1px;position:absolute;top:50%;left:50%;translate:-50% -100%}.cesium-point-overlay-item.is-lifted.is-compact:before{opacity:0}.cesium-point-overlay-item.is-lifted:focus-visible{outline:none}.cesium-point-label{--label-outline:var(--railway-color-map-label-outline);z-index:100000;color:var(--railway-color-map-label-text);font-family:var(--railway-font-family-cn);white-space:pre;text-align:center;text-shadow:-1.5px -1.5px 0 var(--label-outline), 0 -1.5px 0 var(--label-outline), 1.5px -1.5px 0 var(--label-outline), 1.5px 0 0 var(--label-outline), 1.5px 1.5px 0 var(--label-outline), 0 1.5px 0 var(--label-outline), -1.5px 1.5px 0 var(--label-outline), -1.5px 0 0 var(--label-outline), 0 1px 4px var(--railway-color-map-icon-shadow);pointer-events:none;transition:opacity var(--railway-motion-fast) ease;will-change:transform;font-size:14px;font-weight:600;line-height:1.25;position:absolute;top:0;left:0}.cesium-point-label[data-kind=station]{--label-outline:var(--railway-color-map-label-outline-station)}.cesium-point-label[data-kind=station]:after{content:"";width:2px;height:var(--map-label-gap,4px);background:var(--railway-color-map-label-outline-station);border-radius:1px;position:absolute;top:100%;left:50%;translate:-50%}.cesium-point-label[data-kind=warning-target]{--label-outline:var(--railway-color-map-label-outline-warning);font-family:var(--railway-font-family-number)}.cesium-point-label.is-hidden{opacity:0}.cesium-point-overlay-item.is-lifted:focus-visible .cesium-point-overlay-icon{outline:2px solid var(--railway-color-focus);outline-offset:2px;border-radius:6px}.alert-area-visibility-switch{z-index:6;border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);box-shadow:none;border-radius:16px;padding:2px;display:flex;position:absolute;bottom:66px;right:20px}.alert-area-visibility-switch button{width:58px;height:32px;color:var(--railway-color-text-primary);background:var(--railway-color-control-surface);cursor:pointer;border:0;padding:0}.alert-area-visibility-switch button+button{border-left:1px solid var(--railway-color-border-default)}.alert-area-visibility-switch button.active{color:var(--railway-color-accent);background:var(--railway-color-accent-soft);box-shadow:none}.map-bottom-controls{right:calc(var(--dashboard-side-width,380px) + 20px);z-index:15;align-items:flex-end;gap:6px;display:flex;position:fixed;bottom:20px}.map-label-visibility-button,.map-device-filter-trigger{height:28px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);background:linear-gradient(180deg, var(--railway-color-bg-panel), var(--railway-color-bg-panel));box-shadow:inset 0 0 8px var(--railway-color-shadow), 0 2px 8px var(--railway-color-shadow);cursor:pointer;border-radius:2px;padding:0 8px;font-size:12px}.map-device-filter-trigger{align-items:center;gap:5px;display:inline-flex}.map-device-filter-trigger:before{content:"";border:4px solid #0000;border-top:5px solid;border-bottom:0;width:0;height:0;transition:transform .16s}.map-device-filter-trigger.active:before{transform:rotate(180deg)}.map-label-visibility-button.active,.map-device-filter-trigger.active{color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel)}.map-device-filter{position:relative}.map-device-filter-panel{border:1px solid var(--railway-color-border-subtle);width:150px;color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel);box-shadow:inset 0 0 18px var(--railway-color-shadow), 0 8px 20px var(--railway-color-shadow);border-radius:3px;position:absolute;bottom:calc(100% + 7px);right:0;overflow:hidden}.map-filter-group+.map-filter-group{border-top:1px solid var(--railway-color-border-subtle)}.map-filter-group-title,.map-filter-items button{width:100%;color:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;display:flex}.map-filter-group-title{height:34px;color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel);padding:0 12px;font-size:13px;font-weight:600}.map-filter-items{padding:4px 0 6px}.map-filter-items button{height:28px;color:var(--railway-color-text-primary);padding:0 12px 0 28px;font-size:12px}.map-filter-group-title:hover,.map-filter-items button:hover{color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel)}.map-filter-check{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);border-radius:50%;flex:0 0 14px;width:14px;height:14px;position:relative}.map-filter-check.checked,.map-filter-check.mixed{border-color:var(--railway-color-border-subtle);background:var(--railway-color-bg-panel)}.map-filter-check.checked:after{content:"";border-right:1.5px solid var(--railway-color-border-subtle);border-bottom:1.5px solid var(--railway-color-border-subtle);width:2px;height:6px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.map-filter-check.mixed:after{content:"";background:var(--railway-color-bg-panel);height:2px;position:absolute;top:6px;left:3px;right:3px}.cesium-notice{z-index:6;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);box-shadow:0 8px 20px var(--railway-color-shadow);pointer-events:none;border-radius:4px;padding:8px 14px;font-size:13px;position:absolute;bottom:34px;left:50%;transform:translate(-50%)}.map-detail-popup{z-index:8;width:320px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel-elevated);box-shadow:0 12px 30px var(--railway-color-shadow);padding:14px 16px 16px;position:absolute}.map-detail-popup:before{content:"";background:var(--railway-color-border-subtle);height:3px;position:absolute;top:-1px;left:-1px;right:-1px}.map-detail-popup h3{color:var(--railway-color-text-primary);letter-spacing:1px;margin:0 28px 12px 0;font-size:17px}.map-detail-close{width:24px;height:24px;color:var(--railway-color-text-secondary);cursor:pointer;background:0 0;border:0;font-size:22px;line-height:22px;position:absolute;top:8px;right:10px}.map-detail-list div{border-top:1px solid var(--railway-color-border-default);grid-template-columns:86px 1fr;gap:10px;padding:8px 0;display:grid}.map-detail-list b{color:var(--railway-color-text-primary);word-break:break-all;font-weight:500}.map-detail-list .route-list{align-items:start}.map-detail-video{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-video-bg);height:170px;margin-bottom:12px;overflow:hidden}.map-detail-video iframe{border:0;width:100%;height:100%}.map-detail-countermeasure{width:100%;height:36px;color:var(--railway-color-on-accent);border:1px solid var(--railway-color-border-default);background:var(--railway-color-accent);box-shadow:none;cursor:pointer;letter-spacing:2px;margin-top:12px;font-weight:600}.map-detail-loading,.map-detail-error{color:var(--railway-color-text-tertiary);margin:0;padding:10px 0 2px}.map-detail-error{color:var(--railway-color-status-danger)}.cesium-map .cesium-viewer,.cesium-map .cesium-viewer-cesiumWidgetContainer,.cesium-map .cesium-widget,.cesium-map canvas{width:100%;height:100%}.cesium-map .cesium-viewer-toolbar,.cesium-map .cesium-viewer-animationContainer,.cesium-map .cesium-viewer-timelineContainer,.cesium-map .cesium-viewer-bottom,.cesium-map .cesium-widget-errorPanel{display:none!important}.tile-map:active{cursor:grabbing}.tile-map:active .map-tile,.tile-map:active .route-layer polyline,.tile-map:active .map-point{transition:none}.tile-layer{position:absolute;inset:0}.map-tile{-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:256px;height:256px;transition:left .12s linear,top .12s linear,width .12s linear,height .12s linear;position:absolute}.route-layer{z-index:1;pointer-events:none;position:absolute;inset:0}.route-layer .route-line{fill:none;stroke:var(--railway-color-accent);stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 2px var(--railway-color-shadow));transition:all .12s linear}.route-layer .route-corridor{fill:none;stroke:var(--railway-color-accent);stroke-width:40px;stroke-linecap:butt;stroke-linejoin:round;transition:all .12s linear}.map-vignette{z-index:2;pointer-events:none;background:0 0;position:absolute;inset:0}.map-controls{z-index:5;gap:6px;display:grid;position:absolute;top:115px;right:20px}.map-controls button{width:34px;height:34px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-control-surface);cursor:pointer;border-radius:4px}.map-tip{z-index:5;color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel);border-radius:4px;padding:6px 10px;font-size:12px;position:absolute;bottom:16px;left:18px}.map-point{z-index:4;flex-direction:column-reverse;align-items:center;gap:2px;transition:left .12s linear,top .12s linear;display:flex;position:absolute;transform:translate(-50%,-50%)}.map-point-overlay{z-index:4;pointer-events:none;position:absolute;inset:0}.map-point-overlay .point-0{top:47%;left:47%}.map-point-overlay .point-1{top:52%;left:41%}.map-point-overlay .point-2{top:52%;left:53%}.map-point-overlay .point-3{top:64%;left:48%}.map-point-overlay .point-4{top:63%;left:40%}.map-point-overlay .point-5{top:42%;left:68%}.map-point em{color:var(--railway-color-text-secondary);text-shadow:none;font-style:normal;font-weight:700}.right-side{min-height:0;height:var(--dashboard-side-design-height);flex-direction:column;padding-bottom:0;display:flex;overflow:hidden}.video-panel{background:0 0;flex:none}.video-panel .panel-title{background:0 0;height:44px;overflow:hidden}.video-panel .panel-title:before{content:"";background:var(--railway-color-border-subtle);transform-origin:50%;position:absolute;inset:0}.video-box{background:var(--railway-color-video-bg);cursor:pointer;border:0;border-radius:0;width:348px;height:160px;margin:12px 16px 8px;position:relative;overflow:hidden}.video-gridline{background-image:none;background-size:32px 32px;position:absolute;inset:0}.live-video{object-fit:contain;background:var(--railway-color-video-bg);width:100%;height:100%;display:block}.video-error-tip{z-index:2;color:var(--railway-color-video-text);white-space:nowrap;background:var(--railway-color-video-overlay);border:1px solid var(--railway-color-border-default);pointer-events:none;padding:6px 10px;font-size:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.video-zoom-tip{color:var(--railway-color-video-text);background:var(--railway-color-video-overlay);border:1px solid var(--railway-color-border-default);opacity:0;pointer-events:none;padding:4px 9px;font-size:12px;transition:opacity .18s;position:absolute;bottom:10px;right:10px}.video-box:hover .video-zoom-tip{opacity:1}.video-modal-mask{z-index:30;background:var(--railway-color-bg-scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);place-items:center;display:grid;position:fixed;inset:0}.video-modal{border:1px solid var(--railway-color-border-subtle);background:linear-gradient(180deg, var(--railway-color-bg-panel), var(--railway-color-bg-panel));width:min(78vw,1180px);height:min(72vh,720px);box-shadow:0 28px 80px var(--railway-color-shadow), inset 0 0 32px var(--railway-color-shadow);padding:18px;position:relative}.video-modal-close{width:32px;height:32px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);cursor:pointer;font-size:24px;line-height:28px;position:absolute;top:-38px;right:0}.video-modal-player{object-fit:contain;background:var(--railway-color-bg-panel);width:100%;height:100%;display:block}.dashboard-warning-modal-mask{z-index:40;color:var(--railway-color-text-primary);background:var(--railway-color-bg-scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);place-items:center;padding:36px;display:grid;position:fixed;inset:0}.dashboard-warning-modal{border:1px solid var(--railway-color-border-subtle);background:linear-gradient(180deg, var(--railway-color-bg-panel), var(--railway-color-bg-panel));width:min(92vw,1480px);max-height:88vh;box-shadow:0 28px 80px var(--railway-color-shadow), inset 0 0 32px var(--railway-color-shadow);flex-direction:column;display:flex}.dashboard-warning-modal-head{border-bottom:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);justify-content:space-between;align-items:center;min-height:56px;padding:0 22px;display:flex}.dashboard-warning-modal-head h2,.dashboard-warning-modal-head h3{color:var(--railway-color-text-primary);letter-spacing:2px;margin:0;font-size:20px}.dashboard-warning-modal-head button{color:var(--railway-color-text-primary);cursor:pointer;background:0 0;border:0;padding:0;font-size:28px}.dashboard-warning-filters{border-bottom:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);align-items:end;gap:16px;padding:18px 22px;display:flex}.dashboard-warning-filters label{min-width:210px;color:var(--railway-color-text-secondary);gap:7px;font-size:13px;display:grid}.dashboard-warning-filters input{box-sizing:border-box;height:34px;color:var(--railway-color-text-primary);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);outline:0;padding:0 10px}.dashboard-warning-filters button,.dashboard-warning-pagination button{height:34px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);cursor:pointer;padding:0 17px}.dashboard-warning-filters button.ghost{color:var(--railway-color-text-secondary);background:var(--railway-color-bg-panel)}.dashboard-warning-table-wrap{flex:1;min-height:0;overflow:auto}.dashboard-warning-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:1320px}.dashboard-warning-table th,.dashboard-warning-table td{border:1px solid var(--railway-color-border-subtle);height:48px;color:var(--railway-color-text-primary);text-align:center;padding:8px 10px;font-size:13px}.dashboard-warning-table th{z-index:1;color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel);position:sticky;top:0}.dashboard-warning-table th:first-child,.dashboard-warning-table td:first-child{overflow-wrap:anywhere;word-break:break-all;white-space:normal}.dashboard-warning-table tbody tr:nth-child(2n){background:var(--railway-color-bg-panel)}.dashboard-warning-table td em{border-radius:13px;justify-content:center;align-items:center;min-width:58px;height:25px;font-style:normal;display:inline-flex}.dashboard-warning-table td em.handled{color:var(--railway-color-status-success);border:1px solid var(--railway-color-border-subtle)}.dashboard-warning-table td em.pending{color:var(--railway-color-status-warning);border:1px solid var(--railway-color-border-subtle)}.dashboard-warning-table td button{color:var(--railway-color-text-secondary);cursor:pointer;background:0 0;border:0;padding:0}.dashboard-warning-pagination{min-height:58px;color:var(--railway-color-text-secondary);border-top:1px solid var(--railway-color-border-subtle);justify-content:flex-end;align-items:center;gap:12px;padding:0 22px;display:flex}.dashboard-warning-pagination button:disabled{opacity:.42;cursor:not-allowed}.dashboard-warning-detail-mask{z-index:1;background:var(--railway-color-bg-scrim);place-items:center;display:grid;position:absolute;inset:0}.dashboard-warning-detail{border:1px solid var(--railway-color-border-subtle);background:linear-gradient(180deg, var(--railway-color-bg-panel), var(--railway-color-bg-panel));width:min(820px,86vw);max-height:86vh;box-shadow:0 24px 70px var(--railway-color-shadow);overflow-y:auto}.dashboard-warning-detail-fields{grid-template-columns:1fr 1fr;gap:12px 18px;padding:20px 22px;display:grid}.dashboard-warning-detail-fields>div{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);grid-template-columns:132px minmax(0,1fr);align-items:center;min-width:0;min-height:36px;display:grid}.dashboard-warning-detail-fields span{color:var(--railway-color-text-secondary);background:var(--railway-color-bg-panel);align-self:stretch;align-items:center;padding:0 10px;display:flex}.dashboard-warning-detail-fields strong{overflow-wrap:anywhere;min-width:0;padding:0 10px;font-weight:500}.dashboard-warning-route-section{padding:0 22px 22px}.dashboard-warning-route-section h4{color:var(--railway-color-text-primary);margin:0 0 10px;font-size:15px}.dashboard-warning-route-section .warning-route-map,.dashboard-warning-route-section .warning-route-map-empty{border-color:var(--railway-color-border-subtle)}.drone-info{border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);border-radius:3px;margin:0 16px;padding:9px 10px;display:none}.drone-info b{color:var(--railway-color-text-primary);font-size:13px;display:block}.drone-info span{color:var(--railway-color-text-secondary);font-family:var(--font-number);letter-spacing:.2px;font-size:12px}.telemetry-panel{flex:none;margin-top:0;padding:0 16px}.telemetry-panel .sub-head{display:none}.sub-head{justify-content:space-between;margin-bottom:14px;display:flex}.sub-head b{color:var(--railway-color-text-primary)}.sub-head span{color:var(--railway-color-accent);font-size:13px}.telemetry-grid{grid-template-columns:170px 170px;gap:4px 9px;display:grid}.telemetry-card{width:170px;height:48px;min-height:48px;box-shadow:none;background:0 0;border:0;border-radius:0;padding:5px 12px;position:relative;overflow:visible}.telemetry-card:nth-child(odd):before{content:"";z-index:0;background:var(--railway-color-border-subtle);pointer-events:none;width:calc(200% + 9px);height:48px;position:absolute;top:0;left:0}.telemetry-card span{z-index:1;color:var(--railway-color-accent);font-size:12px;display:block;position:relative}.telemetry-card b{z-index:1;color:var(--railway-color-text-primary);font-family:var(--font-number);letter-spacing:.3px;font-size:15px;position:relative}.telemetry-card small{color:var(--railway-color-text-tertiary);font-family:var(--font-cn);margin-left:3px;font-size:11px}.storage-card{border:1px solid var(--railway-color-border-default);border-radius:3px;margin-top:12px;padding:12px 10px 22px;display:none}.storage-card div{justify-content:space-between;font-size:12px;display:flex}.storage-card b{color:var(--railway-color-text-primary);font-family:var(--font-number)}.storage-card i{background:var(--railway-color-accent);height:8px;margin-top:12px;display:block}.storage-card em{background:var(--railway-color-accent);width:40%;height:100%;display:block}.task-panel{background:0 0;flex-direction:column;flex:none;height:calc(100vh - 612px);min-height:0;max-height:calc(100vh - 612px);margin-top:8px;display:flex;overflow:hidden}.task-panel .panel-title,.task-tabs{flex:none}.task-tabs{grid-template-columns:repeat(3,1fr);gap:10px;padding:10px 16px 8px;display:grid}.task-tabs button{height:36px;color:var(--railway-color-accent);border:1px solid var(--railway-color-border-default);background:var(--railway-color-control-surface);cursor:pointer;font-weight:600}.task-tabs button.active{color:var(--railway-color-accent);background:var(--railway-color-accent-soft);box-shadow:none}.task-tabs b{font-family:var(--font-number);margin-left:5px}.task-list{scrollbar-width:thin;scrollbar-color:var(--railway-color-text-tertiary) var(--railway-color-border-subtle);flex:1 1 0;align-content:start;gap:8px;height:0;min-height:0;padding:0 16px 12px;display:grid;overflow:hidden auto}.task-list::-webkit-scrollbar{width:8px}.task-list::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border:0}.task-list::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);box-shadow:none;border-radius:8px}.task-list::-webkit-scrollbar-thumb:hover{background:var(--railway-color-text-secondary)}.task-list p{color:var(--railway-color-accent);text-align:center;margin:0;padding:18px 0}.task-card{background:var(--railway-color-control-surface);border:1px solid var(--railway-color-border-default);cursor:pointer;grid-template-columns:1fr 1fr auto;align-items:center;gap:4px;min-height:66px;padding:8px 8px 8px 12px;transition:background .18s,border-color .18s,box-shadow .18s;display:grid}.task-card:hover{background:var(--railway-color-accent-soft);border-color:var(--railway-color-accent);box-shadow:none}.task-card div{gap:5px;min-width:0;display:grid}.task-card span{color:var(--railway-color-accent);white-space:nowrap;text-overflow:ellipsis;font-size:13px;overflow:hidden}.task-card em{border-radius:15px;justify-content:center;align-items:center;min-width:68px;height:24px;font-style:normal;font-weight:700;display:inline-flex}.task-card em:before{content:"";background:var(--railway-color-border-subtle);border-radius:50%;width:7px;height:7px;margin-right:6px}.task-card .pending{color:var(--railway-color-status-danger);background:var(--railway-color-status-danger-soft);font-size:12px}.task-card .done{color:var(--railway-color-status-success);background:var(--railway-color-status-success-soft);font-size:12px}.task-card .pending:before{background:var(--railway-color-status-danger-soft)}.video-overview-panel{background:0 0;flex-direction:column;flex:auto;height:auto;min-height:0;max-height:none;margin-top:8px;display:flex;overflow:hidden}.video-overview-panel .panel-title{background:var(--railway-color-bg-table-header);justify-content:flex-end;padding:0 22px;overflow:hidden}.video-overview-panel .panel-title h2{text-align:right}.video-overview-grid{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--railway-color-border-subtle) var(--railway-color-border-subtle);flex:auto;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:max-content;align-content:start;gap:8px 12px;min-height:0;padding:10px 16px 12px;display:grid;overflow:hidden auto}.video-overview-grid::-webkit-scrollbar{width:7px}.video-overview-grid::-webkit-scrollbar-track{background:var(--railway-color-bg-panel)}.video-overview-grid::-webkit-scrollbar-thumb{background:var(--railway-color-bg-panel);border-radius:4px}.video-overview-empty{color:var(--railway-color-accent);text-align:center;grid-column:1/-1;margin:0;padding:28px 0}.video-device-card{border:1px solid var(--railway-color-border-default);cursor:pointer;text-align:left;background:0 0;padding:0;transition:border-color .18s,transform .18s,box-shadow .18s}.video-device-card:hover,.video-device-card.active{border-color:var(--railway-color-accent);box-shadow:none;transform:translateY(-1px)}.video-device-preview{aspect-ratio:16/9;background:var(--railway-color-video-bg);background-size:28px 28px,28px 28px,auto;position:relative;overflow:hidden}.video-device-preview.has-video{background:var(--railway-color-video-bg)}.video-device-preview:before,.video-device-preview:after{content:"";background:var(--railway-color-border-subtle);transform-origin:50%;height:1px;position:absolute;top:50%;left:14%;right:14%}.video-device-preview:before{transform:rotate(24deg)}.video-device-preview:after{transform:rotate(-24deg)}.video-device-preview.has-video:before,.video-device-preview.has-video:after{display:none}.video-device-player{object-fit:cover;background:var(--railway-color-video-bg);width:100%;height:100%;display:block;position:absolute;inset:0}.video-device-index,.video-device-action{z-index:1;font-family:var(--font-number);position:absolute}.video-device-index{color:var(--railway-color-text-tertiary);letter-spacing:1px;font-size:11px;top:8px;left:10px}.video-device-action{color:var(--railway-color-video-text);background:var(--railway-color-video-overlay);padding:2px 6px;font-size:11px;bottom:8px;right:10px}.video-device-meta{justify-items:center;gap:2px;padding:5px 6px 2px;display:grid}.video-device-meta b,.video-device-meta span{text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;overflow:hidden}.video-device-meta b{color:var(--railway-color-text-primary);font-size:12px;font-weight:600}.video-device-meta span{color:var(--railway-color-accent);font-size:12px}.header{background:var(--railway-panel-header-gradient);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);box-shadow:none}.header:before{content:"";opacity:.5;pointer-events:none;background:url(/assets/dashboard-header-bg-C4v3Et53.png) 50%/100% 100% no-repeat;position:absolute;inset:0}.header:after,.admin-entry:before{display:none}.header h1{letter-spacing:2px;text-shadow:none;background:var(--railway-panel-title-text-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0;font-size:40px;font-weight:600}.admin-entry{background:var(--railway-color-bg-panel-elevated);color:var(--railway-color-accent);box-shadow:none;border-radius:6px}.side{box-shadow:none;background:0 0;border:0;gap:12px;padding:12px}.panel,.warning-overview-panel,.warning-trend-panel,.alert-panel,.video-overview-panel{color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-panel);background:var(--railway-color-bg-panel);box-shadow:var(--railway-shadow-panel)}.left-side .panel+.panel{margin-top:0;padding-top:0}.left-side .panel.key-parts-panel{flex-shrink:0;height:164px}.left-side .panel.control-panel{flex-shrink:0}.left-side .panel.overview-panel{flex-shrink:0;height:auto}.right-side .alert-panel-compact{flex:400px;min-height:340px}.warning-overview-panel{flex:0 0 240px}.warning-trend-panel{flex:0 0 300px}.panel .panel-title,.left-side .panel-title,.right-side .panel-title{border:0;border-bottom:1px solid var(--railway-color-panel-heading-divider);background:var(--railway-panel-heading-gradient);border-radius:11px 11px 0 0;justify-content:space-between;gap:8px;height:32px;min-height:32px;padding:0 14px}.panel-title:before,.video-panel .panel-title:before,.alert-panel .panel-title:before{display:none}.panel .panel-title h2{color:var(--railway-color-accent);letter-spacing:0;text-align:left;font-size:22px;font-weight:600}.panel-title button{color:var(--railway-color-on-accent);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:16px;margin-left:auto;padding:4px 10px;font-size:13px}.panel-title button:hover{box-shadow:none;text-underline-offset:3px;text-decoration:underline}.panel-title button:focus-visible{outline-color:var(--railway-color-on-accent)}.places-grid{gap:6px 8px;padding:8px 12px}.place-item{background:var(--railway-color-bg-panel-elevated);height:34px;box-shadow:none;border-radius:6px;grid-template-columns:22px 1fr auto;gap:6px;padding:0 8px;font-size:14px}.place-item b{color:var(--railway-color-text-primary);font-weight:500}.place-item strong{color:var(--railway-color-accent)}.place-item-button:hover,.place-item-button.active{background:var(--railway-color-accent-soft);border-color:var(--railway-color-accent);box-shadow:none;transform:none}.control-panel p,.control-value{color:var(--railway-color-text-primary);font-size:14px}.control-panel p span,.control-label{color:var(--railway-color-text-secondary);font-weight:400}.warning-stats{gap:6px;padding:12px}.warning-stats button{background:var(--railway-color-bg-panel-elevated);border:1px solid var(--railway-color-border-default);box-shadow:none;border-radius:6px}.warning-stats .blue,.warning-stats .gold,.warning-stats .green,.warning-stats .red{background:var(--railway-color-bg-panel-elevated)}.warning-stats span{color:var(--railway-color-text-secondary);font-size:12px}.warning-stats b{color:var(--railway-color-accent);font-size:24px}.warning-stats .gold b{color:var(--railway-color-status-warning)}.warning-stats .green b{color:var(--railway-color-status-success)}.warning-stats .red b{color:var(--railway-color-status-danger)}.warning-stats button.active{border-color:var(--railway-color-accent);background:var(--railway-color-accent-soft);box-shadow:none}.danger-line{display:none}.alert-scroll{padding:0 12px 12px}.alert-card,.alert-card.is-handled{border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel-elevated);border-radius:6px}.alert-card:hover,.alert-card:focus-visible,.alert-card.is-handled:hover,.alert-card.is-handled:focus-visible{background:var(--railway-color-accent-soft);box-shadow:none}.alert-row b,.alert-row span{color:var(--railway-color-text-primary)}.alert-row em,.alert-row small{color:var(--railway-color-text-tertiary)}.alert-card>strong{min-width:60px;color:var(--railway-color-status-danger);background:var(--railway-color-status-danger-soft);border-radius:4px;padding:4px;font-size:12px}.alert-card>strong.handled{color:var(--railway-color-status-success);background:var(--railway-color-status-success-soft)}.alert-card>strong span{display:none}.alert-empty{color:var(--railway-color-text-tertiary);background:var(--railway-color-bg-panel-elevated);border-radius:6px}.top-metrics{border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel-elevated);width:720px;box-shadow:var(--railway-shadow-panel);border-radius:8px;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;top:20px;overflow:hidden}.top-metrics div,.top-metrics div.gold,.top-metrics div.red{width:auto;height:68px;color:var(--railway-color-text-primary);box-shadow:none;background:0 0;border:0;border-radius:0}.top-metrics div+div:before{background:var(--railway-color-border-subtle);width:1px;display:block;position:absolute;top:18px;bottom:18px;left:0}.top-metrics div>img{filter:none;width:34px;height:34px}.top-metrics b{color:var(--railway-color-accent)}.top-metrics .red b{color:var(--railway-color-status-danger)}.top-metrics .gold b{color:var(--railway-color-status-warning)}.warning-level-chart,.warning-level-chart:after{box-shadow:none}.warning-level-chart:after{background:var(--railway-color-bg-panel)}.warning-pie-label{color:var(--railway-color-text-primary);text-shadow:none}.warning-pie-label em{color:var(--railway-color-text-secondary)}.warning-overview-detail>div{border:0;gap:5px;font-size:12px}.warning-overview-detail>p{margin-bottom:12px}.warning-trend-toolbar{flex-wrap:wrap;gap:10px;padding:12px}.warning-trend-legend span{font-size:12px}.warning-trend-periods button{min-width:32px;height:28px;color:var(--railway-color-text-secondary);background:var(--railway-color-bg-panel-elevated);border-radius:4px;font-size:12px}.warning-trend-periods button.active{color:var(--railway-color-on-accent);background:var(--railway-color-accent);border-color:var(--railway-color-accent)}.warning-pie-popover,.warning-trend-popover{color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-dialog);box-shadow:var(--railway-shadow-panel);border-radius:6px}.warning-pie-popover b,.warning-trend-popover b{color:var(--railway-color-text-primary)}.warning-trend-y-axis,.warning-trend-labels span{color:var(--railway-color-text-tertiary);font-size:12px}.video-device-card{background:var(--railway-color-bg-panel-elevated);border-radius:6px;overflow:hidden}.video-device-card:hover,.video-device-card.active{box-shadow:none;border-color:var(--railway-color-accent);transform:none}.video-device-meta{gap:1px;padding:3px 6px;line-height:14px}.video-device-meta b{color:var(--railway-color-text-primary)}.video-device-meta span{color:var(--railway-color-text-secondary)}.video-device-player{object-fit:contain}.video-device-action,.video-error-tip,.video-zoom-tip{color:var(--railway-color-video-text);background:var(--railway-color-video-overlay)}.video-modal-mask,.dashboard-warning-modal-mask{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--railway-color-bg-scrim)}.video-modal,.dashboard-warning-modal,.dashboard-warning-detail{background:var(--railway-color-bg-dialog);box-shadow:var(--railway-shadow-dialog);border-radius:10px}.dashboard-warning-modal-head{background:var(--railway-panel-heading-gradient);border:0;border-radius:9px 9px 0 0}.dashboard-warning-modal-head h2,.dashboard-warning-modal-head h3{color:var(--railway-color-accent);letter-spacing:0}.dashboard-warning-filters{background:var(--railway-color-bg-panel-elevated);border:0;flex-wrap:wrap}.dashboard-warning-table th,.dashboard-warning-table td{font-size:16px}.dashboard-warning-table th{background:var(--railway-color-bg-table-header);color:var(--railway-color-text-primary)}.dashboard-warning-table td{color:var(--railway-color-text-primary)}.dashboard-warning-table td em{background:0 0;border:0;border-radius:0;font-weight:600}.dashboard-warning-detail-fields>div{background:var(--railway-color-bg-panel-elevated);border-radius:4px}.dashboard-warning-detail-fields span{background:var(--railway-color-bg-table-header)}.key-part-popup,.map-detail-popup,.map-device-filter-panel{background:var(--railway-color-bg-dialog);box-shadow:var(--railway-shadow-dialog);border-radius:8px}.key-part-popup-item{background:var(--railway-color-bg-panel-elevated);border-radius:4px}.key-part-popup-item:hover{background:var(--railway-color-accent-soft)}.map-detail-popup:before{display:none}.map-detail-list div{border:0}.map-detail-list span{color:var(--railway-color-text-secondary)}.map-detail-list b{color:var(--railway-color-text-primary)}.map-bottom-controls{gap:8px}.map-label-visibility-button,.map-device-filter-trigger{height:34px;color:var(--railway-color-text-secondary);background:var(--railway-color-bg-dialog);box-shadow:var(--railway-shadow-panel);border-radius:6px;padding:0 12px}.map-label-visibility-button.active,.map-device-filter-trigger.active{background:var(--railway-color-accent-soft);color:var(--railway-color-accent);border-color:var(--railway-color-accent)}.map-filter-group-title{background:var(--railway-panel-heading-gradient);color:var(--railway-color-text-primary)}.map-filter-items button{color:var(--railway-color-text-secondary);height:32px}.map-filter-check.checked,.map-filter-check.mixed{background:var(--railway-color-accent);border-color:var(--railway-color-accent)}.map-filter-check.checked:after{border-color:var(--railway-color-on-accent)}.map-filter-check.mixed:after{background:var(--railway-color-on-accent)}.map-detail-countermeasure{color:var(--railway-color-on-accent);background:var(--railway-color-status-severe);box-shadow:none;border-radius:4px}.side{width:420px}.warning-pie-label.label-1{top:-18px;left:0}.warning-pie-label.label-2{top:-18px;right:0}.warning-ring-empty{stroke:var(--railway-color-border-subtle)}.warning-overview-detail>div{grid-template-columns:8px 1fr 32px 46px}.video-overview-empty{color:var(--railway-color-text-tertiary)}.left-side .panel.overview-panel{height:auto}.alert-card i{box-shadow:none;background:url(/assets/warning-drone-red-X8hVwHuH.png) 50%/contain no-repeat;border-radius:0}.warning-level-chart:after{pointer-events:none}.dashboard-warning-table td em.pending{color:var(--railway-color-status-danger);background:0 0;border:0}.dashboard-warning-table td em.handled{color:var(--railway-color-status-success);background:0 0;border:0}.dashboard-warning-table td button{color:var(--railway-color-accent)}.dashboard-warning-filters button:not(.ghost){color:var(--railway-color-on-accent);background:var(--railway-color-accent);border-radius:4px}.dashboard-warning-pagination button,.dashboard-warning-filters button.ghost{color:var(--railway-color-accent);background:var(--railway-color-bg-panel-elevated);border-radius:4px}.dashboard-warning-filters input{border-radius:4px}.panel .panel-title h2{color:var(--railway-color-on-accent);-webkit-text-fill-color:currentColor;background:0 0}@media (forced-colors:active){.header h1,.panel .panel-title h2{-webkit-text-fill-color:currentColor;background:0 0}}.warning-overview-panel,.warning-trend-panel{--warning-detail-font-size:max(16px, calc(12px / var(--dashboard-side-scale)))}.warning-pie-label,.warning-pie-label em,.warning-pie-popover,.warning-pie-popover b,.warning-overview-detail>div,.warning-trend-legend span,.warning-trend-periods button,.warning-trend-y-axis,.warning-trend-labels span,.warning-trend-popover{font-size:var(--warning-detail-font-size);line-height:1.35}.warning-overview-detail>p{margin-bottom:8px;font-size:22px;line-height:1.25}.warning-overview-detail>p b{font-size:28px}.warning-overview-detail>div{grid-template-columns:8px minmax(0,1fr) auto auto;gap:6px;min-height:36px}.warning-overview-detail>div>span{white-space:nowrap}.warning-overview-detail>div>b,.warning-overview-detail>div>em{text-align:right}.warning-pie-label.label-1,.warning-pie-label.label-2{top:-24px}.warning-pie-label.label-3{bottom:-24px}.warning-trend-toolbar{gap:8px;padding:10px 12px 4px}.warning-trend-legend{justify-content:space-between;width:100%}.warning-trend-periods{margin-left:auto}.warning-trend-chart{grid-template-columns:36px minmax(0,1fr);margin:6px 30px 12px 12px}.warning-trend-plot svg{height:calc(100% - 36px);bottom:28px}.header{background:var(--railway-glass-header);border:0;border-bottom:1px solid var(--railway-glass-edge);box-shadow:var(--railway-glass-highlight)}.header:before{opacity:.32}.header h1{letter-spacing:6px;text-indent:6px;font-size:36px}.admin-entry{height:34px;color:var(--railway-color-accent);border:1px solid var(--railway-glass-border);background:var(--railway-glass-inset);box-shadow:var(--railway-glass-highlight), 0 0 0 1px var(--railway-glass-edge);letter-spacing:2px;border-radius:999px;padding:0 18px;top:19px;right:28px}.admin-entry:hover,.admin-entry:focus-visible{color:var(--railway-color-accent-hover);border-color:var(--railway-glass-border);background:var(--railway-glass-inset-hover)}.admin-entry:focus-visible{outline:2px solid var(--railway-color-focus);outline-offset:3px}.side{gap:10px;padding:12px 14px}.side .panel{border:1px solid var(--railway-glass-border);border-radius:var(--railway-glass-radius);background:var(--railway-glass-surface);box-shadow:var(--railway-glass-highlight), var(--railway-glass-shadow);-webkit-backdrop-filter:var(--railway-glass-filter)}.side .panel .panel-title{border-radius:var(--railway-glass-radius) var(--railway-glass-radius) 0 0;background:0 0;border:0;justify-content:flex-start;gap:10px;height:38px;min-height:38px;padding:2px 16px 0}.side .panel .panel-title:after{content:"";background:var(--railway-glass-divider);height:1px;position:absolute;bottom:0;left:16px;right:16px}.side .panel .title-rail{background:var(--railway-glass-marker);width:4px;height:16px;box-shadow:none;border-radius:2px;flex:0 0 4px;display:block}.side .panel .panel-title h2{color:var(--railway-glass-title);letter-spacing:1px;-webkit-text-fill-color:currentColor;font-size:20px;font-weight:600;line-height:1}.side .panel .panel-title button{height:28px;color:var(--railway-color-accent);border-radius:var(--railway-glass-radius-control);border:0;margin-right:-10px;padding:0 10px;font-size:14px}.side .panel .panel-title button:hover{background:var(--railway-glass-track);text-decoration:none}.side .panel .panel-title button:focus-visible{outline-color:var(--railway-color-focus);outline-offset:0}.left-side .panel.key-parts-panel{height:auto}.video-overview-panel{margin-top:0}.places-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;padding:10px 12px 12px}.place-item{border:1px solid var(--railway-glass-border);border-radius:var(--railway-glass-radius-inner);background:var(--railway-glass-inset);height:auto;min-height:0;box-shadow:var(--railway-glass-control-shadow);grid-template-rows:20px 24px 16px;grid-template-columns:minmax(0,1fr);justify-items:center;gap:2px;padding:8px 4px;font-size:13px}.place-item .round-icon,.place-item .round-icon img{width:20px;height:20px}.place-item .round-icon{grid-row:1}.place-item strong{font-variant-numeric:tabular-nums;white-space:nowrap;grid-row:2;font-size:22px;line-height:24px}.place-item b{max-width:100%;color:var(--railway-color-text-secondary);text-overflow:ellipsis;white-space:nowrap;grid-row:3;font-weight:500;line-height:16px;overflow:hidden}.place-item-button{text-align:center}.place-item-button:hover{border-color:var(--railway-glass-border);background:var(--railway-glass-inset-hover)}.place-item-button.active{border-color:var(--railway-color-accent);background:var(--railway-glass-inset-selected);box-shadow:0 0 0 1px var(--railway-color-accent)}.place-item-button.active b{color:var(--railway-color-accent-hover)}.control-panel-body{gap:6px;padding:10px 16px 12px}.control-row-multiline .control-value{line-height:21px}.control-panel p span,.control-label{flex-basis:80px}.overview-table{border-collapse:collapse;table-layout:fixed;width:calc(100% - 12px);margin:4px 6px 8px}.overview-col-group{width:45px}.overview-col-label:nth-of-type(2){width:91px}.overview-col-label:nth-of-type(4){width:68px}.overview-table tbody+tbody{border-top:1px solid var(--railway-glass-divider)}.overview-table th{color:var(--railway-glass-title);text-align:left;vertical-align:middle;white-space:nowrap;padding:0 0 0 2px;font-size:14px;font-weight:600}.overview-table td{text-overflow:ellipsis;white-space:nowrap;height:22px;padding:0 0 0 6px;overflow:hidden}.overview-label{color:var(--railway-color-text-secondary);font-size:12px}.overview-value{color:var(--railway-color-accent);font-family:var(--font-number);font-size:16px}.video-overview-grid{gap:8px;padding:10px 12px}.video-device-card{border:1px solid var(--railway-glass-border);border-radius:var(--railway-glass-radius-inner);background:var(--railway-glass-inset);box-shadow:var(--railway-glass-control-shadow)}.video-device-card:hover{border-color:var(--railway-glass-border);background:var(--railway-glass-inset-hover)}.video-device-card.active{border-color:var(--railway-color-accent);box-shadow:0 0 0 1px var(--railway-color-accent)}.video-device-index{color:var(--railway-color-video-text);opacity:.6}.video-device-action{border-radius:999px;padding:2px 8px}.video-device-meta{justify-items:start;gap:0;padding:4px 8px 5px;line-height:15px}.video-device-meta b,.video-device-meta span{text-align:left}.right-side .alert-panel-compact .panel-title{padding-left:16px}.alert-panel-compact .alert-scroll{padding:10px 12px 12px}.alert-card,.alert-card.is-handled{border:1px solid var(--railway-glass-border);border-radius:var(--railway-glass-radius-inner);background:var(--railway-glass-inset);height:64px;box-shadow:var(--railway-glass-control-shadow);grid-template-columns:32px minmax(0,1fr) 64px;gap:12px;padding:0 12px}.alert-card+.alert-card{margin-top:6px}.alert-card:hover,.alert-card:focus-visible,.alert-card.is-handled:hover,.alert-card.is-handled:focus-visible{background:var(--railway-glass-inset-hover)}.alert-card:focus-visible{outline:2px solid var(--railway-color-focus);outline-offset:1px}.alert-card i{width:30px;height:30px}.alert-main{gap:4px}.alert-row span{font-size:14px;font-weight:500}.alert-row b{color:var(--railway-color-text-secondary);font-size:12px}.alert-card>strong{border-radius:999px;min-width:0;padding:4px 0}.alert-empty{background:0 0}.warning-overview-body{grid-template-columns:132px minmax(0,1fr);gap:20px;padding:20px 16px 18px 20px}.warning-level-chart:after{border-color:var(--railway-glass-divider);background:var(--railway-glass-inset);box-shadow:none}.warning-overview-detail>div{border-bottom:1px solid var(--railway-glass-divider)}.warning-overview-detail>div:last-child{border-bottom:0}.warning-overview-detail i{border-radius:50%}.warning-trend-panel .warning-trend-periods{z-index:2;border-radius:var(--railway-glass-radius-control);background:var(--railway-glass-track);gap:2px;margin:0;padding:3px;position:absolute;top:4px;right:12px}.warning-trend-periods button{min-width:48px;height:26px;color:var(--railway-color-text-secondary);background:0 0;border:0;border-radius:6px;padding:0 10px}.warning-trend-periods button.active{color:var(--railway-color-accent);background:var(--railway-glass-surface-strong);box-shadow:var(--railway-glass-control-shadow);border:0;font-weight:600}.warning-trend-periods button:hover{color:var(--railway-color-accent);box-shadow:none}.warning-trend-periods button.active:hover{box-shadow:var(--railway-glass-control-shadow)}.warning-trend-toolbar{padding:12px 16px 0}.warning-trend-legend{justify-content:flex-start;gap:20px}.warning-trend-legend i{border-radius:2px;width:14px;height:3px}.warning-trend-chart{margin:10px 22px 12px 12px}.warning-trend-plot{border-bottom-color:var(--railway-glass-divider);background-image:repeating-linear-gradient(to bottom, var(--railway-glass-divider) 0 1px, transparent 1px 42px);border-left:0}.warning-pie-popover,.warning-trend-popover{border-color:var(--railway-glass-border);border-radius:var(--railway-glass-radius-control);background:var(--railway-glass-surface-strong);box-shadow:var(--railway-glass-shadow-raised)}.warning-trend-popover:after{border-color:var(--railway-glass-border);background:var(--railway-glass-surface-strong)}.top-metrics{border:1px solid var(--railway-glass-border);border-radius:var(--railway-glass-radius);background:var(--railway-glass-surface);box-shadow:var(--railway-glass-highlight), var(--railway-glass-shadow);-webkit-backdrop-filter:var(--railway-glass-filter);top:18px}.top-metrics div,.top-metrics div.gold,.top-metrics div.red{gap:10px;height:64px}.top-metrics div+div:before{background:var(--railway-glass-divider);top:20px;bottom:20px}.top-metrics div>img{width:32px;height:32px}.top-metrics div>span{color:var(--railway-color-text-secondary);font-weight:500}.top-metrics b{font-size:34px}.map-label-visibility-button,.map-device-filter-trigger{height:36px;color:var(--railway-color-text-secondary);border:1px solid var(--railway-glass-border);background:var(--railway-glass-surface);box-shadow:var(--railway-glass-highlight), var(--railway-glass-shadow);-webkit-backdrop-filter:var(--railway-glass-filter);border-radius:999px;padding:0 16px;font-size:14px}.map-label-visibility-button.active,.map-device-filter-trigger.active{color:var(--railway-color-accent);border-color:var(--railway-glass-border);background:var(--railway-glass-inset-selected)}.map-device-filter-panel{width:168px;padding:4px 0;bottom:calc(100% + 10px)}.map-filter-group-title{color:var(--railway-glass-title);background:0 0}.map-filter-group-title:hover,.map-filter-items button:hover{background:var(--railway-glass-inset-hover)}.map-filter-group+.map-filter-group{border-top-color:var(--railway-glass-divider)}.key-part-popup,.map-detail-popup,.map-device-filter-panel,.cesium-notice{border:1px solid var(--railway-glass-border);background:var(--railway-glass-surface-strong);box-shadow:var(--railway-glass-highlight), var(--railway-glass-shadow-raised);-webkit-backdrop-filter:var(--railway-glass-filter);border-radius:14px}.key-part-popup{padding:12px 14px 14px;top:84px;left:calc(100% + 12px)}.key-part-popup-head b{color:var(--railway-glass-title)}.key-part-popup-close,.map-detail-close{border-radius:var(--railway-glass-radius-control);color:var(--railway-color-text-secondary);background:0 0;border:0}.key-part-popup-close:hover,.map-detail-close:hover{background:var(--railway-glass-track)}.key-part-popup-item{border:1px solid var(--railway-glass-border);border-radius:var(--railway-glass-radius-control);background:var(--railway-glass-inset)}.key-part-popup-item:hover{border-color:var(--railway-glass-border);background:var(--railway-glass-inset-hover)}.key-part-popup-empty{border-radius:var(--railway-glass-radius-control);background:var(--railway-glass-inset)}.video-modal-mask,.dashboard-warning-modal-mask{background:var(--railway-glass-scrim);-webkit-backdrop-filter:blur(6px)}.video-modal,.dashboard-warning-modal,.dashboard-warning-detail{border:1px solid var(--railway-glass-border);background:var(--railway-glass-surface-strong);box-shadow:var(--railway-glass-highlight), var(--railway-glass-shadow-raised);border-radius:20px}.video-modal{padding:16px}.video-modal-player{background:var(--railway-color-video-bg);border-radius:12px}.video-modal-close{border:1px solid var(--railway-glass-border);background:var(--railway-glass-surface-strong);border-radius:999px}.dashboard-warning-modal-head{border-bottom:1px solid var(--railway-glass-divider);background:0 0;border-radius:20px 20px 0 0}.dashboard-warning-modal-head h2,.dashboard-warning-modal-head h3{color:var(--railway-glass-title)}.dashboard-warning-filters{background:0 0}.admin-login-page,.admin-page{width:100vw;min-height:100vh;color:var(--railway-color-text-primary);background:radial-gradient(circle at 50% 48%, var(--railway-color-bg-dialog) 0, var(--railway-color-bg-map) 38%, var(--railway-color-bg-canvas) 100%), var(--railway-color-bg-map);font-family:var(--font-cn)}.admin-login-page{background:radial-gradient(circle at 50% 48%, var(--railway-color-bg-dialog) 0, var(--railway-color-bg-map) 38%, var(--railway-color-bg-canvas) 100%), var(--railway-color-bg-map);place-items:center;display:grid}.admin-login-card{border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-08);background:var(--railway-color-bg-dialog);width:420px;box-shadow:0 10px 30px var(--railway-color-shadow);padding:38px 40px 34px}.admin-login-card h1{color:var(--railway-color-text-primary);margin:0;font-size:28px}.admin-login-card p{color:var(--railway-color-text-secondary);margin:10px 0 28px}.admin-login-loading{text-align:center;justify-items:center;display:grid}.admin-login-spinner{border:4px solid var(--railway-color-border-default);border-top-color:var(--railway-color-accent);border-radius:50%;width:46px;height:46px;margin-bottom:18px;animation:.8s linear infinite admin-login-spin}@keyframes admin-login-spin{to{transform:rotate(360deg)}}.admin-login-card label,.admin-form-grid label,.admin-filters label{color:var(--railway-color-text-secondary);gap:8px;font-weight:600;display:grid}.admin-login-card label{margin-bottom:18px}.admin-login-card input,.admin-form-grid input,.admin-form-grid select,.admin-filters input,.admin-filters select{height:42px;color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-control-surface);font:inherit;border-radius:4px;outline:none;padding:0 14px}.admin-form-grid select,.admin-filters select{appearance:none;background-image:none;background-position:calc(100% - 18px) calc(50% - 1px),calc(100% - 12px) calc(50% - 1px);background-repeat:no-repeat;background-size:6px 6px,6px 6px;padding-right:44px}.admin-form-grid select::-ms-expand{display:none}.admin-filters select::-ms-expand{display:none}.admin-login-card input:focus,.admin-form-grid input:focus,.admin-form-grid select:focus,.admin-filters input:focus,.admin-filters select:focus{border-color:var(--railway-color-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--railway-color-accent) 24%, transparent)}.admin-login-card em{color:var(--railway-color-status-danger);margin:-4px 0 14px;font-style:normal;display:block}.admin-login-card button,.admin-panel-head button,.admin-filters button,.admin-modal-actions button,.admin-pagination button,.personnel-management-toolbar button,.admin-topbar button{height:42px;color:var(--railway-color-on-accent);background:var(--railway-color-bg-panel-elevated);cursor:pointer;border:0;border-radius:4px;padding:0 24px;font-weight:600}.admin-login-card button{width:100%;margin-top:6px}.admin-login-card button:disabled,.admin-pagination button:disabled{cursor:not-allowed;opacity:.5}.admin-topbar{height:64px;color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel-elevated);box-shadow:0 8px 20px var(--railway-color-shadow);justify-content:space-between;align-items:center;padding:0 30px;display:flex}.admin-topbar h1{letter-spacing:1px;margin:0;font-size:22px}.admin-topbar div{align-items:center;gap:16px;display:flex}.admin-topbar button{background:var(--railway-color-bg-panel-elevated);height:34px;padding:0 16px}.admin-layout{grid-template-columns:220px 1fr;height:calc(100vh - 64px);min-height:0;display:grid}.admin-menu{background:var(--railway-color-bg-panel);border-right:1px solid var(--railway-color-border-default);padding:24px 16px}.admin-menu b,.admin-menu span{padding:14px 16px;display:block}.admin-menu b{color:var(--railway-color-text-primary)}.admin-menu span{cursor:pointer}.admin-menu .active{color:var(--railway-color-accent);border-left:4px solid var(--railway-color-accent);background:var(--railway-color-accent-soft);font-weight:700}.admin-panel{padding:28px 34px;overflow:auto}.admin-panel-head{height:64px;color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel-elevated);border-radius:4px 4px 0 0;justify-content:space-between;align-items:center;padding:0 22px 0 34px;display:flex}.admin-panel-head h2{margin:0;font-size:22px}.admin-filters{background:var(--railway-color-control-surface);border:1px solid var(--railway-color-border-default);border-top:0;align-items:end;gap:24px;padding:26px 34px 24px;display:flex}.admin-filters label{grid-template-columns:auto 200px;align-items:center;gap:12px}.admin-filters .ghost,.admin-modal-actions .ghost{color:var(--railway-color-accent);background:var(--railway-color-control-surface);border:1px solid var(--railway-color-border-default)}.admin-table-wrap{background:var(--railway-color-bg-panel);border:1px solid var(--railway-color-border-default);border-top:0;overflow:auto}.admin-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:1360px}.admin-table.user-table{min-width:1180px}.admin-table.station-table th{white-space:nowrap}.admin-table.station-table th:nth-child(3),.admin-table.station-table td:nth-child(3){width:80px}.admin-table.station-table th:nth-child(6),.admin-table.station-table td:nth-child(6){white-space:nowrap;width:104px}.admin-table.station-table th:nth-child(7),.admin-table.station-table td:nth-child(7),.admin-table.station-table th:nth-child(8),.admin-table.station-table td:nth-child(8){width:82px}.admin-table.station-table th:nth-child(n+9):nth-child(-n+12),.admin-table.station-table td:nth-child(n+9):nth-child(-n+12){width:72px}.admin-table.station-table th:last-child,.admin-table.station-table td:last-child{white-space:nowrap;width:196px}.admin-table.station-table td:last-child button{white-space:nowrap;margin:0 5px;display:inline-block}.admin-table.drone-nest-table th,.admin-table.drone-table th{white-space:nowrap}.admin-table.drone-nest-table th,.admin-table.drone-nest-table td,.admin-table.drone-table th,.admin-table.drone-table td{padding:8px 6px;font-size:13px}.admin-table.drone-table th:first-child,.admin-table.drone-table td:first-child,.admin-table.drone-table th:nth-child(3),.admin-table.drone-table td:nth-child(3),.admin-table.drone-table th:nth-child(4),.admin-table.drone-table td:nth-child(4),.admin-table.drone-table th:nth-child(5),.admin-table.drone-table td:nth-child(5),.admin-table.drone-table th:nth-child(6),.admin-table.drone-table td:nth-child(6){width:94px}.admin-table.drone-table th:nth-child(2),.admin-table.drone-table td:nth-child(2){width:106px}.admin-table.drone-table td:first-child,.admin-table.drone-table td:nth-child(2),.admin-table.drone-table td:nth-child(3),.admin-table.drone-table td:nth-child(4),.admin-table.drone-table td:nth-child(5),.admin-table.drone-table td:nth-child(6){white-space:normal;overflow-wrap:anywhere;word-break:break-all}.admin-table.drone-table th:nth-child(7),.admin-table.drone-table td:nth-child(7),.admin-table.drone-table th:nth-child(8),.admin-table.drone-table td:nth-child(8),.admin-table.drone-table th:nth-child(9),.admin-table.drone-table td:nth-child(9),.admin-table.drone-table th:nth-child(10),.admin-table.drone-table td:nth-child(10){width:72px}.admin-table.drone-table th:nth-child(11),.admin-table.drone-table td:nth-child(11),.admin-table.drone-table th:nth-child(12),.admin-table.drone-table td:nth-child(12){width:80px}.admin-table.drone-table th:nth-child(13),.admin-table.drone-table td:nth-child(13){white-space:normal;overflow-wrap:anywhere;width:112px}.admin-table.drone-nest-table th:first-child,.admin-table.drone-nest-table td:first-child{width:96px}.admin-table.drone-nest-table th:nth-child(2),.admin-table.drone-nest-table td:nth-child(2){width:92px}.admin-table.drone-nest-table td:nth-child(2){white-space:normal;overflow-wrap:anywhere;word-break:break-all}.admin-table.drone-nest-table th:nth-child(3),.admin-table.drone-nest-table td:nth-child(3),.admin-table.drone-nest-table th:nth-child(4),.admin-table.drone-nest-table td:nth-child(4){width:108px}.admin-table.drone-nest-table th:nth-child(5),.admin-table.drone-nest-table td:nth-child(5),.admin-table.drone-nest-table th:nth-child(6),.admin-table.drone-nest-table td:nth-child(6){white-space:normal;overflow-wrap:anywhere;word-break:break-all;width:92px}.admin-table.drone-nest-table th:nth-child(7),.admin-table.drone-nest-table td:nth-child(7){width:92px}.admin-table.drone-nest-table th:nth-child(8),.admin-table.drone-nest-table td:nth-child(8){white-space:nowrap;width:94px}.admin-table.drone-nest-table th:nth-child(9),.admin-table.drone-nest-table td:nth-child(9){width:68px}.admin-table.drone-nest-table th:nth-child(10),.admin-table.drone-nest-table td:nth-child(10),.admin-table.drone-nest-table th:nth-child(12),.admin-table.drone-nest-table td:nth-child(12){width:70px}.admin-table.drone-nest-table th:nth-child(11),.admin-table.drone-nest-table td:nth-child(11){width:104px}.admin-table.drone-nest-table th:last-child,.admin-table.drone-nest-table td:last-child,.admin-table.drone-table th:last-child,.admin-table.drone-table td:last-child{white-space:nowrap;width:250px}.admin-table.drone-nest-table th:last-child,.admin-table.drone-nest-table td:last-child{z-index:2;width:148px;box-shadow:-8px 0 12px var(--railway-color-shadow);position:sticky;right:0}.admin-table.drone-nest-table th:last-child{z-index:3;background:var(--railway-color-bg-panel)}.admin-table.drone-nest-table td:last-child{background:var(--railway-color-bg-panel)}.admin-table.drone-table th:last-child,.admin-table.drone-table td:last-child{z-index:2;width:224px;box-shadow:-8px 0 12px var(--railway-color-shadow);position:sticky;right:0}.admin-table.drone-table th:last-child{z-index:3;background:var(--railway-color-bg-panel)}.admin-table.drone-table td:last-child{background:var(--railway-color-bg-panel)}.admin-table.risk-point-table{width:100%;min-width:0}.admin-table.warning-history-table th:first-child,.admin-table.warning-history-table td:first-child{overflow-wrap:anywhere;word-break:break-all;white-space:normal}.admin-table.risk-point-table th:first-child,.admin-table.risk-point-table td:first-child{width:46px}.admin-table.risk-point-table th,.admin-table.risk-point-table td{text-overflow:ellipsis;padding:8px 6px;font-size:13px;overflow:hidden}.admin-table.risk-point-table th:nth-child(9),.admin-table.risk-point-table td:nth-child(9){width:78px}.admin-table.risk-point-table th:nth-child(10),.admin-table.risk-point-table td:nth-child(10){width:112px}.admin-table.risk-point-table th:last-child,.admin-table.risk-point-table td:last-child{white-space:nowrap;width:126px;overflow:visible}.admin-table.risk-point-table td:last-child button{margin:0 4px;padding:0;font-size:13px}.admin-table th,.admin-table td{border:1px solid var(--railway-color-border-default);text-align:center;height:48px;color:var(--railway-color-text-secondary);padding:8px 10px;font-size:14px}.admin-table th{color:var(--railway-color-text-secondary);background:var(--railway-color-bg-table-header);font-weight:700}.admin-table td button{color:var(--railway-color-accent);cursor:pointer;background:0 0;border:0;margin:0 4px}.admin-table em{border-radius:13px;justify-content:center;align-items:center;min-width:58px;height:26px;font-style:normal;font-weight:700;display:inline-flex}.admin-table .enabled{color:var(--railway-color-status-success);border:1px solid var(--railway-color-status-success);background:var(--railway-color-status-success-soft)}.admin-table .disabled{color:var(--railway-color-status-danger);border:1px solid var(--railway-color-status-danger);background:var(--railway-color-status-danger-soft)}.admin-pagination{color:var(--railway-color-text-secondary);justify-content:flex-end;align-items:center;gap:12px;padding:18px 0;display:flex}.admin-pagination button{height:34px;padding:0 14px}.admin-modal-mask{z-index:20;background:var(--railway-color-bg-scrim);place-items:center;display:grid;position:fixed;inset:0}.admin-modal{background:var(--railway-color-bg-panel);border:1px solid var(--railway-color-border-subtle);width:780px;box-shadow:0 26px 70px var(--railway-color-shadow)}.admin-modal-head{height:56px;color:var(--railway-color-text-primary);background:linear-gradient(180deg, var(--railway-color-bg-panel), var(--railway-color-bg-panel));justify-content:space-between;align-items:center;padding:0 20px 0 26px;display:flex}.admin-modal-head h3{margin:0}.admin-modal-head button{color:var(--railway-color-text-primary);cursor:pointer;background:0 0;border:0;font-size:26px}.admin-form-grid{grid-template-columns:1fr 1fr;gap:18px 22px;padding:26px;display:grid}.admin-form-grid .admin-form-wide{grid-column:1/-1}.admin-form-grid textarea{border:1px solid var(--railway-color-border-subtle);resize:vertical;min-height:84px;font:inherit;border-radius:4px;padding:10px 12px}.drone-binding-modal{width:min(720px,100vw - 48px)}.drone-binding-list{gap:8px;max-height:420px;padding:22px 26px;display:grid;overflow:auto}.drone-binding-list>p{color:var(--railway-color-text-secondary);text-align:center}.drone-binding-list label{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);border-radius:4px;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;display:grid}.drone-binding-list small{color:var(--railway-color-text-secondary)}.station-admin-modal{max-height:calc(100vh - 48px);overflow-y:auto}.personnel-management-modal{flex-direction:column;width:min(92vw,1280px);max-height:calc(100vh - 64px);display:flex}.personnel-management-toolbar{border-bottom:1px solid var(--railway-color-border-subtle);justify-content:flex-end;padding:18px 22px;display:flex}.personnel-management-toolbar .personnel-add-button{background:var(--railway-color-bg-panel)}.personnel-management-table-wrap{min-height:0;overflow:auto}.personnel-management-table-wrap .user-table{min-width:1100px}.personnel-management-pagination{flex:none}.personnel-editor-mask{z-index:22}.personnel-editor-modal{border-radius:4px;overflow:hidden}.admin-form-grid select:disabled{color:var(--railway-color-text-primary);border-color:var(--railway-color-border-subtle);background-color:var(--railway-color-bg-panel);cursor:not-allowed}.warning-detail-modal{max-height:calc(100vh - 48px);overflow-y:auto}.warning-route-section{grid-column:1/-1;gap:10px;display:grid}.warning-route-section h4{color:var(--railway-color-text-primary);margin:0;font-size:15px}.warning-route-map,.warning-route-map-empty{border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-map);border-radius:4px;width:100%;height:300px;overflow:hidden}.warning-route-map-empty{height:120px;color:var(--railway-color-text-tertiary);place-items:center;display:grid}.admin-mileage-section{grid-column:1/-1;gap:14px;padding-top:4px;display:grid}.admin-mileage-section-head,.admin-mileage-card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.admin-mileage-section-head span,.admin-mileage-card-head strong{color:var(--railway-color-text-primary);font-size:15px}.admin-mileage-section button,.admin-mileage-card button{color:var(--railway-color-on-accent);background:var(--railway-color-accent);box-shadow:0 6px 14px var(--railway-color-shadow);cursor:pointer;font:inherit;border:0;border-radius:4px;font-weight:600}.admin-mileage-section .ghost,.admin-mileage-card .ghost{height:34px;color:var(--railway-color-accent);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);box-shadow:none;padding:0 16px}.admin-mileage-list{gap:14px;display:grid}.admin-mileage-card{border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);border-radius:6px;gap:14px;padding:16px;display:grid}.admin-mileage-route-row{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.admin-mileage-route-row select{padding-right:44px}.admin-mileage-route-row button,.admin-mileage-range-row button{height:42px;padding:0 18px}.admin-mileage-section button:hover,.admin-mileage-card button:hover{filter:brightness(1.04)}.admin-mileage-section .ghost:hover,.admin-mileage-card .ghost:hover{background:var(--railway-color-accent-soft);filter:none}.admin-mileage-ranges{gap:12px;display:grid}.admin-mileage-range-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:12px;display:grid}.admin-mileage-empty{color:var(--railway-color-text-tertiary);margin:0;font-size:13px}.admin-modal-actions{justify-content:flex-end;gap:12px;padding:0 26px 24px;display:flex}.admin-login-page{background:var(--railway-login-gradient);height:100vh;padding:24px;overflow:auto}.admin-login-card{width:min(460px,100%);box-shadow:var(--railway-shadow-dialog);background:var(--railway-color-bg-dialog);border-radius:12px;padding:36px}.admin-login-card h1{color:var(--railway-color-accent)}.admin-login-card input{width:100%}.admin-login-card button{background:var(--railway-action-gradient)}.admin-topbar{background:var(--railway-panel-header-gradient);border:1px solid var(--railway-color-border-subtle);color:var(--railway-color-text-primary);box-shadow:var(--railway-shadow-panel)}.admin-topbar button{background:var(--railway-color-bg-panel-elevated);border:1px solid var(--railway-color-border-default);color:var(--railway-color-accent)}.admin-layout{grid-template-columns:220px minmax(0,1fr)}.admin-menu{background:var(--railway-color-bg-panel);border:0;overflow-y:auto}.admin-menu b{color:var(--railway-color-text-tertiary);font-size:13px}.admin-menu>button{text-align:left;width:100%;color:var(--railway-color-text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;margin-bottom:6px;padding:14px 16px;display:block}.admin-menu>button.active{color:var(--railway-color-accent);border:1px solid var(--railway-color-border-default);background:var(--railway-color-accent-soft);font-weight:600}.admin-panel{padding:24px}.admin-panel-head{border:1px solid var(--railway-color-border-default);background:var(--railway-panel-heading-gradient);color:var(--railway-color-accent);border-radius:10px 10px 0 0;padding:0 24px}.admin-panel-head button{background:var(--railway-action-gradient)}.admin-filters{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel-elevated);flex-wrap:wrap;gap:16px 24px;padding:22px 24px}.admin-filters label{grid-template-columns:auto minmax(120px,200px)}.admin-table-wrap{border:1px solid var(--railway-color-border-subtle);border-radius:0 0 8px 8px}.admin-table th,.admin-table td{color:var(--railway-color-text-primary);font-size:16px;font-weight:500}.admin-table th{background:var(--railway-color-bg-table-header);font-weight:600}.admin-table.drone-nest-table th,.admin-table.drone-nest-table td,.admin-table.drone-table th,.admin-table.drone-table td,.admin-table.risk-point-table th,.admin-table.risk-point-table td{font-size:16px}.admin-table.device-table{min-width:2000px}.admin-table.drone-table{min-width:1700px}.admin-table.drone-nest-table{min-width:1600px}.admin-table.risk-point-table{min-width:1480px}.admin-table-wrap.risk-point-table-wrap{overflow-x:auto}.admin-table em.enabled,.admin-table em.disabled{background:0 0;border:0;border-radius:0}.admin-table em.enabled{color:var(--railway-color-status-success)}.admin-table em.disabled{color:var(--railway-color-status-danger)}.admin-table td button{border-radius:4px;padding:4px 2px}.admin-modal-mask{background:var(--railway-color-bg-scrim);padding:24px}.admin-modal{background:var(--railway-color-bg-dialog);width:min(780px,100%);max-height:calc(100dvh - 48px);box-shadow:var(--railway-shadow-dialog);border-radius:10px;overflow-y:auto}.personnel-management-modal{width:min(1280px,100%)}.admin-modal-head{z-index:3;background:var(--railway-panel-heading-gradient);color:var(--railway-color-accent);position:sticky;top:0}.admin-modal-head button{color:var(--railway-color-text-secondary);border-radius:4px}.admin-form-grid{gap:18px 24px;padding:24px}.admin-form-grid label{min-width:0}.admin-form-grid :is(input,select,textarea){background-color:var(--railway-color-bg-panel-elevated);width:100%;min-width:0;color:var(--railway-color-text-primary)}.admin-mileage-card{background:var(--railway-color-bg-panel-elevated)}.admin-mileage-section button,.admin-mileage-card button{box-shadow:none}.admin-modal-actions{padding:0 24px 24px}@media (width<=1100px){.admin-layout{grid-template-columns:176px minmax(0,1fr)}.admin-panel{padding:16px}.admin-menu{padding:16px 8px}.admin-filters label{grid-template-columns:auto minmax(110px,180px)}}@media (width<=700px){.admin-layout{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.admin-menu{gap:6px;padding:8px;display:flex;overflow-x:auto}.admin-menu b{display:none}.admin-menu>button{flex-shrink:0;width:auto;margin:0;padding:8px 12px}.admin-topbar{padding:0 14px}.admin-topbar h1{font-size:18px}.admin-topbar div{gap:8px}.admin-topbar div>span{display:none}.admin-form-grid,.admin-mileage-range-row{grid-template-columns:1fr}.admin-panel-head{padding:0 12px}.admin-panel-head h2{font-size:20px}.admin-filters{padding:16px}.admin-filters label{flex:160px;grid-template-columns:1fr}}.admin-filters button:not(.ghost),.admin-modal-actions button:not(.ghost),.admin-pagination button,.personnel-management-toolbar button{background:var(--railway-color-accent);color:var(--railway-color-on-accent)}.admin-form-grid :is(input,select,textarea):disabled{color:var(--railway-color-text-secondary);background:var(--railway-color-bg-canvas);opacity:1;cursor:default}.admin-form-grid select,.admin-filters select{background-image:linear-gradient(45deg, transparent 50%, var(--railway-color-text-secondary) 50%), linear-gradient(135deg, var(--railway-color-text-secondary) 50%, transparent 50%)}:where(button,a,input,select,textarea){transition:background-color .16s,border-color .16s,box-shadow .16s,color .16s}button:focus-visible,a[href]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--railway-color-focus);outline-offset:3px}input,select,textarea{accent-color:var(--railway-color-accent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}input::placeholder,textarea::placeholder{color:var(--railway-color-text-tertiary);opacity:1}button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}:is(.admin-page,.admin-modal,.admin-login-card,.dashboard-warning-modal) button:not(:disabled):hover{box-shadow:0 0 0 2px var(--railway-color-focus-soft);filter:brightness(.96)}.admin-menu>button:not(.active):hover{background:var(--railway-color-control-hover-bg)}:is(.panel-title button,.map-filter-items button,.map-filter-group-title,.map-label-visibility-button,.map-device-filter-trigger,.warning-trend-periods button):hover{box-shadow:0 0 0 2px var(--railway-color-focus-soft)}:is(.admin-table,.dashboard-warning-table) tbody tr:hover td,:is(.admin-table,.dashboard-warning-table) tbody tr:focus-within td{background:var(--railway-color-accent-soft)}:is(.admin-table,.dashboard-warning-table) td button:hover{text-underline-offset:3px;text-decoration:underline}:is(.admin-login-card,.admin-form-grid,.admin-filters,.dashboard-warning-filters) :is(input,select,textarea):focus{border-color:var(--railway-color-focus);box-shadow:0 0 0 3px var(--railway-color-focus-soft)}:is(.admin-modal,.dashboard-warning-modal,.dashboard-warning-detail,.video-modal,.key-part-popup,.map-device-filter-panel){animation:.18s ease-out surface-enter}@keyframes surface-enter{0%{opacity:0}to{opacity:1}}:is(.admin-table,.dashboard-warning-table,.top-metrics,.overview-table,.warning-stats,.warning-overview-detail){font-variant-numeric:tabular-nums}:where(.alert-scroll,.key-part-popup-body,.video-overview-grid,.task-list,.admin-panel,.admin-table-wrap,.admin-modal,.dashboard-warning-table-wrap){scrollbar-width:thin;scrollbar-color:var(--railway-color-text-tertiary) var(--railway-color-border-subtle)}:where(.alert-scroll,.key-part-popup-body,.video-overview-grid,.task-list)::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);box-shadow:none;border:0}:where(.alert-scroll,.key-part-popup-body,.video-overview-grid,.task-list)::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);box-shadow:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.debug-scale{top:var(--railway-spacing-12);left:var(--railway-spacing-12);z-index:9999;gap:var(--railway-spacing-02);min-width:196px;padding:var(--railway-spacing-10) var(--railway-spacing-12);border:1px solid color-mix(in srgb, var(--railway-color-debug-text) 24%, transparent);border-radius:var(--railway-radius-06);background:var(--railway-color-debug-surface);box-shadow:0 10px 28px color-mix(in srgb, var(--railway-color-shadow-base) 38%, transparent);color:var(--railway-color-debug-text);font-family:var(--railway-font-family-cn);font-variant-numeric:tabular-nums;letter-spacing:.02em;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:13px;line-height:1.5;display:grid;position:fixed}.debug-scale__title{color:var(--railway-color-debug-accent);letter-spacing:.18em;font-size:12px;font-weight:600}.debug-scale__row{justify-content:space-between;align-items:baseline;gap:var(--railway-spacing-16);display:flex}.debug-scale__label{color:var(--railway-color-debug-muted)}.debug-scale__value{font-weight:600}.debug-scale__hint{margin-top:var(--railway-spacing-04);color:var(--railway-color-debug-muted);font-size:12px}
