:root{--railway-color-bg-panel:#f2f7fdcc;--railway-color-bg-panel-header:#c7dcf2cc;--railway-panel-header-gradient:linear-gradient(90deg, #d8ebff 0%, #f8fcff 52%, #e6f2ff 100%);--railway-panel-backdrop-blur:16px;--railway-color-bg-canvas:#f4f7fb;--railway-color-bg-map:#e8eef5;--railway-color-bg-dialog:#f4f8fe;--railway-color-bg-panel-elevated:#f8fbfff2;--railway-color-bg-table-header:#c7dcf2;--railway-color-bg-scrim:#00000052;--railway-color-border-default:#b7c9da;--railway-color-border-subtle:#d5e1ec;--railway-color-control-selected:#0758b8;--railway-color-text-primary:#15263a;--railway-color-text-secondary:#38536b;--railway-color-text-tertiary:#60768b;--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:#e7eef7;--railway-color-chip-gray-text:#38536b;--railway-color-chip-green-bg:#eaf8ef;--railway-color-chip-green-text:#147e50;--railway-color-shadow-base:#000;--railway-color-accent:#0758b8;--railway-color-dashboard-blue:#0879ff;--railway-color-accent-soft:#d0e3ff;--railway-color-accent-hover:#043f89;--railway-color-on-accent:#fff;--railway-color-video-bg:#0d1722;--railway-color-video-text:#edf6ff;--railway-color-video-overlay:#0d1722cc;--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,.monitor-panel{--railway-color-bg-panel:#f4f9fffa;--railway-color-bg-panel-elevated:#fffc;--railway-color-accent:#0879ff;--railway-color-control-selected:#0879ff;--railway-color-text-primary:#09285f;--railway-color-text-secondary:#5477a7;--railway-color-text-tertiary:#8caace;--railway-color-border-default:#bcd9fb;--railway-color-border-subtle:#bcd9fb;--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:#e5f0fc;--railway-color-chip-red-bg:#ffe9eb;--railway-color-chip-red-text:#f53345;--railway-panel-heading-gradient:linear-gradient(90deg, #cde5ff, #f4f9ff);--railway-color-donut-track:#bee8e4;--railway-radius-panel:14px}.monitor-analysis-stats{--railway-color-text-primary:#15263a;--railway-color-text-secondary:#38536b;--railway-color-text-tertiary:#60768b;--railway-color-status-success:#168653;--railway-color-bg-panel:#f2f7fdcc}@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}.railway-skeleton{--skeleton-width:100%;--skeleton-height:1em;--skeleton-radius:var(--railway-radius-04);box-sizing:border-box;width:var(--skeleton-width);height:var(--skeleton-height);border-radius:var(--skeleton-radius);background:linear-gradient(100deg, var(--railway-color-skeleton-base) 0%, var(--railway-color-skeleton-highlight) 50%, var(--railway-color-skeleton-base) 100%);animation:railway-skeleton-shimmer var(--railway-motion-skeleton-duration) linear infinite;background-size:220% 100%;flex:none;display:block;position:relative;overflow:hidden}.railway-skeleton:after{content:"";pointer-events:none;border:1px solid var(--railway-color-border-subtle);border-radius:inherit;opacity:.45;position:absolute;inset:0}.railway-skeleton-text-lines{gap:var(--railway-spacing-06);flex-direction:column;width:100%;display:flex}.railway-skeleton-text-lines .railway-skeleton{height:var(--skeleton-height,var(--railway-font-size-body))}.railway-skeleton-circle{border-radius:50%}.railway-skeleton-media{width:var(--skeleton-width,100%);min-height:var(--skeleton-height,0);aspect-ratio:var(--skeleton-aspect-ratio,auto)}.stream-video-skeleton{z-index:1;pointer-events:none;display:block;position:absolute;inset:0}.stream-video-skeleton .railway-skeleton{border-radius:inherit;width:100%;height:100%}.video-error-tip{z-index:2;max-width:calc(100% - var(--railway-spacing-24));padding:var(--railway-spacing-06) var(--railway-spacing-08);color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);font-size:var(--railway-font-size-annotation);text-align:center;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.monitor-device-summary-skeleton{pointer-events:none}.monitor-async-region{width:100%;min-width:0;min-height:0;position:relative}.monitor-camera-panel .monitor-async-region{flex-direction:column;height:100%;display:flex}.monitor-camera-panel .monitor-async-region>.monitor-device-summary-skeleton,.monitor-camera-panel .monitor-async-region>.monitor-device-summary,.monitor-camera-panel .monitor-async-region>.monitor-camera-rate{flex:none}.monitor-camera-panel .monitor-async-region>.monitor-camera-rate,.monitor-camera-panel .monitor-async-region>.monitor-camera-rate-skeleton{flex:auto}.monitor-panel-state{min-height:100%;padding:var(--railway-spacing-16);place-items:center;margin:0;display:grid}.monitor-route-loading{flex-direction:column;height:100%;display:flex}.monitor-camera-panel .railway-loading-region-content{flex-direction:column;flex:1;min-height:0;display:flex}.monitor-camera-panel .railway-loading-region-content>.monitor-camera-rate{flex:1}video[data-stream-status=ready]{animation:railway-content-enter var(--railway-motion-content-duration) var(--railway-motion-content-ease) both}@media (prefers-reduced-motion:reduce){video[data-stream-status=ready]{animation:none}}.monitor-alert-list>.monitor-async-region,.monitor-video-grid>.monitor-async-region{height:100%}.monitor-video-grid>.monitor-async-region{grid-column:1/-1;display:block}.monitor-device-donut-skeleton{background:0 0;place-items:center;display:grid;position:relative;overflow:visible}.monitor-device-donut-skeleton>.railway-skeleton{position:absolute;inset:0}.monitor-device-donut-skeleton .monitor-device-donut-hole{z-index:1;gap:var(--railway-spacing-06);position:relative}.monitor-device-donut-skeleton .monitor-device-donut-hole .railway-skeleton{flex:none}.monitor-device-legend-row .railway-skeleton:first-child{flex:0 0 10px}.monitor-device-legend-row .railway-skeleton:last-child{margin-left:auto}.monitor-camera-rate-skeleton{pointer-events:none}.monitor-camera-rate-skeleton .monitor-camera-rate-header{gap:var(--railway-spacing-08)}.monitor-camera-rate-skeleton .monitor-camera-rate-segments{gap:var(--railway-spacing-04)}.monitor-route-skeleton{flex-direction:column;flex:6 1 0;min-height:0;display:flex}.monitor-route-skeleton .monitor-route-row{pointer-events:none;flex:1 1 0}.monitor-route-skeleton .monitor-route-row .railway-skeleton{justify-self:center}.railway-alarm-cards-skeleton{gap:var(--railway-spacing-12);display:grid}.railway-alarm-card-skeleton{pointer-events:none}.railway-alarm-card-skeleton .railway-alarm-card-body{gap:var(--railway-spacing-04)}.railway-alarm-card-skeleton .railway-alarm-card-head{justify-content:space-between}.railway-alarm-card-skeleton>.railway-skeleton:last-child{align-self:center}.key-part-popup-loading{gap:var(--railway-spacing-08);display:grid}.key-part-popup-loading .railway-detail-list-skeleton>div{min-height:32px;padding:var(--railway-spacing-06) 0}.warning-stat-skeleton{align-content:center;gap:var(--railway-spacing-04);min-width:0;padding:0 var(--railway-spacing-08);display:grid}.video-overview-skeleton{grid-column:1/-1;grid-auto-rows:auto;width:100%}.video-overview-skeleton .monitor-video-card{gap:var(--railway-spacing-06);grid-template-rows:minmax(0,1fr) 32px;min-width:0;display:grid}.video-overview-skeleton .monitor-video-preview{aspect-ratio:1.48;height:auto;min-height:96px}.video-overview-skeleton .monitor-video-card>.railway-skeleton{width:76%;height:16px;margin:0 var(--railway-spacing-08)}.railway-video-cards-skeleton{gap:var(--railway-spacing-08);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:144px;min-height:0;display:grid}.railway-video-cards-skeleton .monitor-video-card{gap:var(--railway-spacing-06);pointer-events:none;grid-template-rows:112px 20px;min-width:0;display:grid}.railway-video-cards-skeleton .monitor-video-preview{width:100%;height:112px}.railway-video-cards-skeleton .monitor-video-preview .railway-skeleton{width:100%;height:100%}.railway-warning-trend-skeleton{flex-direction:column;min-height:0;display:flex}.railway-warning-trend-skeleton .monitor-analysis-stats>div,.railway-warning-trend-stats-skeleton>div{position:relative}.railway-warning-trend-skeleton .monitor-analysis-stats>div .railway-skeleton:nth-child(2),.railway-warning-trend-skeleton .monitor-analysis-stats>div .railway-skeleton:nth-child(4),.railway-warning-trend-stats-skeleton>div .railway-skeleton:nth-child(2),.railway-warning-trend-stats-skeleton>div .railway-skeleton:nth-child(4){grid-column:2;justify-self:end}.railway-warning-trend-stats-skeleton>div .railway-skeleton:nth-child(-n+2){grid-row:1}.railway-warning-trend-stats-skeleton>div .railway-skeleton:nth-child(n+3){grid-row:2}.monitor-trend-panel .monitor-trend-summary-state{flex:0 0 66px;height:66px;min-height:66px}.monitor-alert-list .railway-alarm-card-skeleton{margin-bottom:0}.railway-trend-chart-skeleton{padding:var(--railway-spacing-24) var(--railway-spacing-16);justify-content:space-around;align-items:flex-end;display:flex;position:relative}.railway-trend-bars{justify-content:space-around;align-items:flex-end;gap:var(--railway-spacing-08);width:100%;height:100%;display:flex}.railway-trend-bars .railway-skeleton{transform-origin:bottom;max-height:100%}.railway-detail-list-skeleton>div{align-items:center}.railway-kpi-skeleton{align-content:center;gap:var(--railway-spacing-06);min-width:0;padding:var(--railway-spacing-12) var(--railway-spacing-16);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-06);background:var(--railway-color-control-surface);display:grid}.railway-text-rows-skeleton{gap:var(--railway-spacing-08);display:grid}.railway-text-rows-skeleton>div{justify-content:space-between;align-items:center;gap:var(--railway-spacing-08);display:flex}.railway-skeleton-table-row{width:100%}.railway-skeleton-table-row>td{min-width:0;height:inherit;padding:var(--railway-spacing-08);vertical-align:middle}.railway-skeleton-table-row .railway-skeleton{height:var(--railway-spacing-12)}.railway-loading-region{min-width:0;position:relative}.railway-loading-region-status,.stream-video-status{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.railway-loading-region-content{min-width:0;animation:railway-content-enter var(--railway-motion-content-duration) var(--railway-motion-content-ease) both}.railway-content-enter,.device-list-grid[aria-busy=false]>button,.prototype-route-map-layout>aside[aria-busy=false]>button,.prototype-video-wall>aside[aria-busy=false]>button,.patrol-task-card,.prototype-modal-body .railway-alarm-card:not(.railway-alarm-card-skeleton){animation:railway-content-enter var(--railway-motion-content-duration) var(--railway-motion-content-ease) both}@keyframes railway-skeleton-shimmer{0%{background-position:220% 0}to{background-position:-220% 0}}@keyframes railway-content-enter{0%{opacity:0;transform:translateY(var(--railway-motion-content-offset))}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.device-list-grid[aria-busy=false]>button,.prototype-route-map-layout>aside[aria-busy=false]>button,.prototype-video-wall>aside[aria-busy=false]>button,.patrol-task-card,.prototype-modal-body .railway-alarm-card:not(.railway-alarm-card-skeleton){animation:none}.railway-skeleton{background-position:50% 0;animation:none}.railway-loading-region-content,.railway-content-enter{animation:none;transform:none}}.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-dialog);border:1px solid var(--railway-color-border-default);width:780px;box-shadow:0 26px 70px var(--railway-color-shadow)}.admin-modal-head{height:56px;color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel-elevated);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-modal-actions{justify-content:flex-end;gap:12px;padding:0 26px 24px;display:flex}.admin-page{width:100vw;min-height:100vh;color:var(--railway-color-text-secondary);background:var(--railway-color-bg-canvas);font-family:var(--font-cn)}.admin-login-page{width:100vw;min-height:100vh;padding:var(--railway-spacing-24);color:var(--railway-color-text-primary);font-family:var(--railway-font-family-cn);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{gap:var(--railway-spacing-16);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-08);background:var(--railway-color-bg-dialog);width:min(520px,100vw - 48px);box-shadow:0 10px 30px var(--railway-color-shadow);flex-direction:column;padding:28px;display:flex}.admin-login-card h1{color:var(--railway-color-text-primary);font-size:24px;font-weight:var(--railway-font-weight-semibold);text-align:center;margin:0;line-height:1.33333}.admin-login-card p{color:var(--railway-color-text-secondary);margin:0}.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-form-grid label,.admin-filters label{color:var(--railway-color-text-secondary);gap:8px;font-weight:600;display:grid}.admin-login-field{gap:var(--railway-spacing-06);color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);display:grid}.admin-login-field 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-login-field input{width:100%;height:38px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);font:inherit;font-size:var(--railway-font-size-body);outline:none;padding:0 12px}.admin-login-field input::placeholder{color:var(--railway-color-text-tertiary)}.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-field 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 0;font-style:normal;display:block}.admin-panel-head button,.admin-filters button,.admin-modal-actions button,.admin-pagination button,.admin-topbar button{height:42px;color:var(--railway-color-on-accent);background:var(--railway-color-accent);cursor:pointer;border:0;border-radius:4px;padding:0 24px;font-weight:600}.admin-login-actions{justify-content:space-between;align-items:center;gap:var(--railway-spacing-16);display:flex}.admin-login-remember{align-items:center;gap:var(--railway-spacing-08);min-height:36px;color:var(--railway-color-text-primary);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium);cursor:pointer;display:inline-flex}.admin-login-remember input{width:18px;height:18px;accent-color:var(--railway-color-control-selected);margin:0}.admin-login-actions button{width:auto;min-width:88px;height:32px;color:var(--railway-color-on-accent);border:1px solid var(--railway-color-accent);background:var(--railway-color-accent);cursor:pointer;font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium);border-radius:999px;padding:0 14px}.admin-login-actions button:hover{background:var(--railway-color-accent-hover)}.admin-login-actions button:focus-visible{outline:2px solid var(--railway-color-accent);outline-offset:2px}.admin-login-actions 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 button{text-align:left;width:100%;padding:14px 16px;display:block}.admin-menu b{color:var(--railway-color-text-primary)}.admin-menu button{color:inherit;cursor:pointer;background:0 0;border:0;border-left:4px solid #0000;border-radius:0}.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-panel-head button{background:var(--railway-color-bg-panel-elevated)}.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-wrap.risk-point-table-wrap{overflow-x:hidden}.admin-table{border-collapse:collapse;table-layout:fixed;width:100%;min-width:1360px}.admin-table.user-table{min-width:1180px}.admin-table.device-table{min-width:1800px}.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}.station-admin-modal,.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}.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-canvas);width:100vw;height:100vh;min-height:0;position:relative;overflow:hidden}.header{z-index:5;width:100vw;height:71px;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;justify-content:space-between;align-items:center;padding:0 28px;display:flex;position:absolute;top:0;left:0;overflow:hidden;transform:none}.header:after{content:"";background:var(--railway-color-border-subtle);height:1px;box-shadow:none;position:absolute;bottom:0;left:0;right:0}.header h1{z-index:2;text-align:left;letter-spacing:1px;min-width:0;font-size:28px;font-weight:700;line-height:72px;font-family:var(--font-cn);text-shadow:none;clip-path:none;background:0 0;margin:0;padding:0;position:relative}.header-actions{z-index:2;color:var(--railway-color-text-primary);align-items:center;gap:18px;font-size:13px;display:flex;position:relative;right:auto}.header-actions span{background:0 0;border:0;padding:0}.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{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));position:relative}.left-side{z-index:14;border-right:1px solid var(--railway-color-border-default);transform-origin:0 0}.right-side{border-left:1px solid var(--railway-color-border-default);transform-origin:100% 0;justify-self:end}.panel{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{maxheight:260px;height:auto}.left-side .panel.overview-panel{height:300px}.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);color:var(--railway-color-accent);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:6px}.key-part-popup-body::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);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-item:hover{border-color:var(--railway-color-accent);background:var(--railway-color-accent-soft)}.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)}.summary-row{grid-template-columns:1fr 1fr;gap:8px;padding:10px 12px 8px;display:grid}.summary-card,.need-card{background:var(--railway-color-bg-panel);border:1px solid var(--railway-color-border-default);box-shadow:none}.summary-card{text-align:center;min-height:94px;padding:0 10px 8px;overflow:hidden}.summary-card h3{height:26px;color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel);white-space:nowrap;justify-content:center;align-items:center;margin:0 -10px 8px;font-size:16px;line-height:26px;display:flex}.summary-card h3:before,.summary-card h3:after{content:"";display:none}.summary-card span,.need-card span{color:var(--railway-color-text-primary);font-size:12px}.summary-card b,.need-card b{color:var(--railway-color-accent);font-family:var(--font-number);font-size:16px}.summary-card-content{flex-direction:column;justify-content:center;gap:6px;display:flex}.summary-card-police .summary-card-content{min-height:48px}.summary-card-police span{font-size:14px}.summary-card-police b{font-size:20px}.summary-card-lines{gap:4px}.summary-card-lines div{justify-content:space-between;align-items:center;gap:8px;display:flex}.summary-card-lines span,.summary-card-lines b{white-space:nowrap}.need-card{text-align:center;grid-template-rows:26px repeat(2,1fr);grid-template-columns:repeat(3,1fr);gap:2px 8px;height:112px;margin:0 12px;padding:0 10px 8px;display:grid}.need-card h3{height:26px;color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel);grid-column:1/-1;justify-content:center;align-items:center;margin:0 -10px;font-size:16px;line-height:26px;display:flex}.need-card h3:before,.need-card h3:after{content:"";display:none}.need-card-item{flex-direction:column;justify-content:center;gap:4px;display:flex}.need-card-item-0{grid-column:1}.need-card-item-1{grid-column:3}.need-card-item-2{grid-column:1}.need-card-item-3{grid-column:2}.need-card-item-4{grid-column:3}.need-card-item span{line-height:16px}.need-card-item b{font-size:15px}.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-status-danger-soft);box-shadow:none;padding-left:58px;overflow:hidden}.alert-panel .panel-title:before{content:none}.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 span{color:var(--railway-color-text-primary);font-size:13px}.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:6px}.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+.alert-card{margin-top:8px}.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) 70px;align-items:center;gap:8px;display:grid}.alert-row b{font-family:var(--font-number);color:var(--railway-color-text-primary);letter-spacing:.3px;text-align:right;font-size:14px}.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{color:var(--railway-color-status-success);background:var(--railway-color-status-success-soft)}.alert-card>strong.handled span{background:var(--railway-color-status-success-soft)}.alert-empty{height:120px;color:var(--railway-color-text-tertiary);background:var(--railway-color-bg-panel);place-items:center;margin:0;display:grid}.map-area{background:var(--railway-color-bg-map);position:relative;overflow:hidden}.top-metrics{z-index:6;width:948px;transform:translateX(-50%) scale(var(--dashboard-width-scale));transform-origin:top;grid-template-columns:repeat(4,219px);justify-content:space-between;gap:0;display:grid;position:absolute;top:32px;left:50%}.top-metrics div{width:219px;height:50px;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: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}.top-metrics .gold b{color:var(--railway-color-status-warning)}.top-metrics .red b{color:var(--railway-color-status-danger)}.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{content:"";z-index:3;pointer-events:none;background:0 0;position:absolute;inset:0}.cesium-point-overlay-layer{z-index:5;pointer-events:none;position:absolute;inset:0;overflow:hidden}.map-focus-highlight{z-index:10;border:4px solid var(--railway-color-border-default);width:40px;height:40px;box-shadow:0 0 10px 3px var(--railway-color-shadow);pointer-events:none;background:0 0;border-radius:9px;position:absolute;top:0;left:0}.map-focus-highlight[hidden]{display:none}.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-item.cluster-member-expanded{z-index:7}.cesium-point-overlay-item.focus-member{z-index:9;filter:drop-shadow(0 0 5px var(--railway-color-shadow)) drop-shadow(0 0 9px var(--railway-color-shadow));outline:3px solid var(--railway-color-border-default);outline-offset:3px;border-radius:8px}.cesium-point-cluster-links{z-index:5;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.cesium-point-cluster-links line{stroke:var(--railway-color-accent);stroke-width:1.8px;filter:drop-shadow(0 1px 2px var(--railway-color-shadow))}.cesium-point-cluster{z-index:8;width:38px;height:38px;color:var(--railway-color-on-accent);border:2px solid var(--railway-color-border-default);background:var(--railway-color-accent);box-shadow:0 0 0 5px var(--railway-color-shadow), 0 5px 14px var(--railway-color-shadow);cursor:pointer;pointer-events:auto;border-radius:50%;padding:0;font-size:15px;font-weight:800;position:absolute;top:0;left:0}.cesium-point-cluster.expanded{color:var(--railway-color-accent);border-color:var(--railway-color-accent);background:var(--railway-color-accent-soft);box-shadow:0 0 0 5px var(--railway-color-shadow), 0 5px 14px var(--railway-color-shadow)}.cesium-point-overlay-icon{width:var(--point-size);height:var(--point-size);object-fit:contain;transform:scale(var(--point-scale));transform-origin:50%;filter:drop-shadow(0 3px 5px var(--railway-color-shadow));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}.map-bottom-controls{--map-controls-scale:1;z-index:50;width:min(520px,100vw - 64px);transform:translateX(-50%) scale(var(--map-controls-scale));transform-origin:bottom;color:var(--railway-color-text-primary);grid-template-columns:1.18fr repeat(3,.9fr);gap:8px;display:grid;position:fixed;bottom:36px;left:50%}.map-device-control{min-width:0;position:relative}.map-control-trigger,.map-segmented-control{border:1px solid var(--railway-color-border-default);background:var(--railway-color-control-surface);height:30px;box-shadow:none;border-radius:6px}.map-control-trigger{width:100%;color:var(--railway-color-text-primary);background:var(--railway-color-control-surface);cursor:pointer;letter-spacing:1px;text-shadow:none;border-radius:6px;justify-content:center;align-items:center;gap:12px;padding:0 9px;font-size:11px;display:flex}.map-control-trigger>i{border-bottom:0;border-left:5px solid #0000;border-right:5px solid #0000;border-top:6px solid var(--railway-color-border-default);width:0;height:0;transition:transform .16s}.map-control-trigger>i.open{transform:rotate(180deg)}.map-device-popover{border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-dialog);min-width:210px;box-shadow:none;padding:18px 20px 16px;position:absolute;bottom:calc(100% + 10px);left:0;right:0}.map-device-popover strong{color:var(--railway-color-accent);letter-spacing:1px;margin:0 0 14px;font-size:17px;font-weight:500;display:block}.map-device-option{justify-content:space-between;align-items:center;gap:16px;height:43px;font-size:17px;display:flex}.map-device-option>button{border:1px solid var(--railway-color-border-default);background:var(--railway-color-control-surface);width:54px;height:28px;box-shadow:none;cursor:pointer;border-radius:16px;flex:none;padding:0;transition:background .16s;position:relative}.map-device-option>button i{background:var(--railway-color-accent);width:20px;height:20px;box-shadow:0 1px 5px var(--railway-color-shadow);border-radius:50%;transition:left .16s,background .16s;position:absolute;top:3px;left:4px}.map-device-option>button.active{border-color:var(--railway-color-accent);background:var(--railway-color-accent-soft)}.map-device-option>button.active i{background:var(--railway-color-accent-soft);left:28px}.map-segmented-control{grid-template-columns:1fr 1fr;min-width:0;display:grid;overflow:hidden}.map-segmented-control button{min-width:0;color:var(--railway-color-text-primary);background:var(--railway-color-control-surface);cursor:pointer;text-shadow:none;border:0;padding:0 6px;font-size:11px}.map-segmented-control button+button{border-left:1px solid var(--railway-color-border-default)}.map-segmented-control button.active{color:var(--railway-color-accent);background:var(--railway-color-accent-soft);box-shadow:none}.map-control-trigger:focus-visible,.map-segmented-control button:focus-visible,.map-device-option>button:focus-visible{outline:2px solid var(--railway-color-accent);outline-offset:2px}.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:82px;right:20px}.alert-area-visibility-switch>span{color:var(--railway-color-text-secondary);white-space:nowrap;align-items:center;padding:0 9px;font-size:11px;display:flex}.alert-area-visibility-switch button{width:48px;height:28px;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}.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:46;width:min(320px,100% - 32px);max-height:calc(100% - 32px);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-dialog);box-shadow:none;padding:14px 16px 16px;position:absolute;overflow:hidden auto}.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:4px 0;display:grid}.map-detail-list b{color:var(--railway-color-text-primary);word-break:break-all;font-size:13px;font-weight:500}.map-detail-list .route-list{align-items:start}.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-device-video{border:1px solid var(--railway-color-border-default);background:var(--railway-color-video-bg);margin-top:12px;overflow:hidden}.map-detail-device-video>div{height:30px;color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel);justify-content:space-between;align-items:center;gap:8px;padding:0 8px;font-size:11px;display:flex}.map-detail-device-video>div b{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.map-detail-device-video>div span{color:var(--railway-color-status-success);background:var(--railway-color-bg-panel);border-radius:2px;flex:none;padding:3px 7px}.map-detail-device-video>div button{color:var(--railway-color-on-accent);background:var(--railway-color-accent);cursor:pointer;border:0;border-radius:2px;flex:none;padding:3px 7px}.map-detail-device-video video{background:var(--railway-color-video-bg);object-fit:contain;width:100%;height:158px;display:block}.map-detail-device-video:fullscreen{background:var(--railway-color-video-bg);padding:18px}.map-detail-device-video:fullscreen video{height:calc(100vh - 90px)}.map-warning-judgement{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px;display:grid}.map-warning-judgement button{height:30px;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;font-size:12px}.map-warning-judgement button.active{color:var(--railway-color-accent);border-color:var(--railway-color-accent);background:var(--railway-color-accent-soft)}.map-detail-loading,.map-detail-error{color:var(--railway-color-text-secondary);margin:0;padding:10px 0 2px}.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}.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:6px}.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-panel-elevated);justify-content:flex-start;padding:0 58px 0 22px;overflow:hidden}.video-overview-panel .panel-title h2{text-align:left}.video-overview-grid{flex:auto;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:12px;min-height:0;padding:14px 16px 16px;display:grid}.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:1.48;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:4px;padding:8px 6px 0;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}.monitor-left-side,.monitor-right-side{box-sizing:border-box;background:var(--railway-color-bg-panel);box-shadow:0 0 30px var(--railway-color-shadow);gap:12px;padding:12px;overflow:hidden}.monitor-panel{min-height:0;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);box-shadow:0 16px 34px var(--railway-color-shadow);border-radius:10px;position:relative;overflow:hidden}.monitor-panel-title{background:var(--railway-color-bg-panel-elevated);border-bottom:1px solid var(--railway-color-border-default);align-items:center;height:60px;min-height:60px;padding:0 18px;display:flex;position:relative}.monitor-panel-title h2{color:var(--railway-color-text-primary);letter-spacing:1px;text-shadow:none;margin:0;font-size:18px;font-weight:600}.monitor-panel-title>button{color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel-elevated);cursor:pointer;border-radius:4px;margin-left:auto;padding:5px 10px;font-size:13px}.monitor-camera-panel .monitor-panel-title{background:var(--railway-color-bg-panel-elevated);justify-content:flex-start;height:60px;min-height:60px;padding:0 18px}.monitor-camera-panel .monitor-panel-title h2{letter-spacing:1px;font-size:20px;font-weight:700}.monitor-camera-panel .monitor-panel-title>button{height:48px;color:var(--railway-color-text-primary);border-color:var(--railway-color-border-default);background:var(--railway-color-bg-panel-elevated);border-radius:5px;margin-left:auto;padding:0 18px;font-size:16px}.monitor-camera-stats{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:108px;gap:12px;padding:14px 14px 8px;display:grid}.monitor-camera-stats>div{border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);height:108px;box-shadow:none;border-radius:9px;flex-direction:column;justify-content:center;align-items:flex-start;gap:10px;padding:12px 14px;display:flex;position:relative;overflow:hidden}.monitor-camera-stats>div:after{content:"";background:var(--railway-color-border-subtle);pointer-events:none;border-radius:50%;width:92px;height:92px;position:absolute;top:-30px;right:-22px}.monitor-camera-stats img{display:none}.monitor-camera-stats>div.total{grid-column:auto;width:auto}.monitor-camera-stats>div.online{border-color:var(--railway-color-status-success)}.monitor-camera-stats span{z-index:1;color:var(--railway-color-text-secondary);font-size:13px;font-weight:600;position:relative}.monitor-camera-stats b{z-index:1;color:var(--railway-color-text-primary);font-family:var(--font-number);margin-left:0;font-size:31px;line-height:1;position:relative}.monitor-camera-stats .online b{color:var(--railway-color-status-success)}.monitor-camera-stats .fault{border-color:var(--railway-color-status-danger)}.monitor-camera-stats .fault b{color:var(--railway-color-status-danger)}.monitor-camera-stats .offline b{color:var(--railway-color-status-warning)}.monitor-city-table{border-collapse:separate;border-spacing:0 8px;table-layout:fixed;text-align:center;width:100%;font-size:14px}.monitor-city-table th{z-index:1;height:56px;color:var(--railway-color-text-primary);background:var(--railway-color-bg-table-header);font-size:15px;font-weight:700;position:sticky;top:0}.monitor-city-table th:first-child{border-radius:10px 0 0 10px}.monitor-city-table th:last-child{border-radius:0 10px 10px 0}.monitor-city-table td{height:56px;color:var(--railway-color-text-secondary);background:var(--railway-color-bg-panel);text-overflow:ellipsis;white-space:nowrap;border-top:1px solid #0000;border-bottom:1px solid #0000;padding:0 4px;overflow:hidden}.monitor-city-table tbody tr{cursor:pointer;outline:none}.monitor-city-table tbody td:first-child{border-left:1px solid var(--railway-color-border-default);border-radius:10px 0 0 10px}.monitor-city-table tbody td:last-child{border-right:1px solid var(--railway-color-border-default);border-radius:0 10px 10px 0}.monitor-city-table tbody td{border-top-color:var(--railway-color-border-default);border-bottom-color:var(--railway-color-border-default)}.monitor-city-table tbody tr:hover td{color:var(--railway-color-accent);border-top-color:var(--railway-color-accent);border-bottom-color:var(--railway-color-accent);background:var(--railway-color-accent-soft)}.monitor-city-table tbody tr:hover td:first-child{border-left-color:var(--railway-color-accent)}.monitor-city-table tbody tr:hover td:last-child{border-right-color:var(--railway-color-accent)}.monitor-city-table tbody tr.active td{color:var(--railway-color-accent);border-top-color:var(--railway-color-accent);border-bottom-color:var(--railway-color-accent);background:var(--railway-color-accent-soft)}.monitor-city-table tbody tr.active td:first-child{border-left-color:var(--railway-color-accent);box-shadow:none}.monitor-city-table tbody tr.active td:last-child{border-right-color:var(--railway-color-accent)}.monitor-alert-panel{flex-direction:column;flex:auto;padding-top:0;display:flex}.monitor-alert-panel .monitor-panel-title{text-align:left;justify-content:flex-start;gap:10px;padding-left:18px}.monitor-alert-panel .monitor-panel-title>button{flex:none;margin-left:auto}.monitor-warning-stats{flex:none;grid-template-columns:repeat(4,1fr);gap:9px;padding:12px 12px 10px;display:grid}.monitor-warning-stats>div{border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);height:60px;box-shadow:none;flex-direction:column;justify-content:center;align-items:center;display:flex}.monitor-warning-stats>div.gold{background:var(--railway-color-status-warning-soft)}.monitor-warning-stats>div.green{background:var(--railway-color-status-success-soft)}.monitor-warning-stats>div.red{background:var(--railway-color-status-danger-soft)}.monitor-warning-stats span{color:var(--railway-color-text-primary);font-size:12px}.monitor-warning-stats b{color:var(--railway-color-text-primary);font-family:var(--font-number);margin-top:4px;font-size:18px}.monitor-alert-list{box-sizing:border-box;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--railway-color-text-tertiary) var(--railway-color-border-subtle);scrollbar-gutter:auto;flex:1 1 0;height:0;min-height:0;padding:10px 12px;overflow:hidden auto}.monitor-alert-filters{box-sizing:border-box;flex:0 0 46px;align-items:center;gap:8px;padding:6px 12px 2px;display:flex}.monitor-alert-filters button{height:32px;color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-control-surface);cursor:pointer;font-size:var(--railway-font-size-body);border-radius:4px;padding:0 14px;line-height:1.57143}.monitor-alert-filters button.active{color:var(--railway-color-accent);background:var(--railway-color-accent-soft);border-color:#0000;font-weight:600}.monitor-panel-title>button,.monitor-camera-panel .monitor-panel-title>button,.monitor-city-panel .monitor-panel-title>button,.monitor-trend-panel .monitor-panel-title>button{width:76px;min-width:76px;height:32px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel-elevated);white-space:nowrap;border-radius:4px;flex:0 0 76px;margin-left:auto;padding:0;font-size:12px;line-height:30px}.monitor-alert-card{width:100%;height:160px;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;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:12px 10px;display:grid}.monitor-alert-card>strong{min-width:58px;color:var(--railway-color-status-severe);background:var(--railway-color-bg-panel);text-align:center;border-radius:14px;align-self:start;padding:5px 8px;font-size:11px}.monitor-alert-card>strong.handled{color:var(--railway-color-status-success);background:var(--railway-color-status-success-soft)}.monitor-alert-route{gap:5px;margin-top:2px;display:flex;overflow:hidden}.monitor-alert-route span{color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-control-surface);border-radius:3px;padding:2px 5px;font-size:10px}.monitor-alert-card+.monitor-alert-card{margin-top:8px}.monitor-alert-icon{border:2px solid var(--railway-color-status-danger);background:var(--railway-color-status-danger-soft);width:22px;height:22px;box-shadow:0 0 8px var(--railway-color-shadow);border-radius:50%;margin-top:1px}.monitor-alert-info{flex-direction:column;gap:3px;min-width:0;display:flex}.monitor-alert-info b,.monitor-alert-info time,.monitor-alert-info span,.monitor-alert-info em{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.monitor-alert-info time,.monitor-alert-info span,.monitor-alert-info em{color:var(--railway-color-text-tertiary);font-size:11px;font-style:normal}.monitor-alert-info p{max-height:47px;color:var(--railway-color-text-secondary);margin:2px 0 0;font-size:11px;line-height:16px;overflow:hidden}.monitor-alert-media{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.monitor-alert-media strong{min-width:70px;color:var(--railway-color-status-severe);background:var(--railway-color-bg-panel);text-align:center;border-radius:14px;padding:5px 10px;font-size:12px}.monitor-alert-media strong.handled{color:var(--railway-color-status-success);background:var(--railway-color-status-success-soft)}.monitor-alert-media>div{width:158px;height:100px;color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);flex:0 0 100px;place-items:center;font-size:13px;display:grid}.monitor-alert-media>div.has-video{justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.monitor-alert-video-player{object-fit:contain;background:var(--railway-color-video-bg);width:100%;height:100%;display:block}.monitor-empty{color:var(--railway-color-accent);text-align:center;grid-column:1/-1;margin:0;padding:30px 0}.monitor-video-panel{flex-direction:column;flex:0 0 470px;display:flex}.monitor-video-panel .monitor-panel-title,.monitor-trend-panel .monitor-panel-title{text-align:left;justify-content:flex-start;padding-left:18px}.monitor-video-grid{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--railway-color-text-tertiary) var(--railway-color-border-subtle);grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:156px;align-content:start;gap:10px 12px;height:355px;padding:18px 16px 14px;display:grid;overflow:hidden auto}.monitor-video-pager{height:46px;color:var(--railway-color-text-secondary);justify-content:center;align-items:center;gap:14px;font-size:12px;display:flex}.monitor-video-pager button{color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-control-surface);cursor:pointer;padding:5px 12px}.monitor-trend-panel{background:var(--railway-color-bg-panel);border-left:1px solid var(--railway-color-border-default);flex-direction:column;flex:auto;min-height:0;padding-top:8px;display:flex}.monitor-trend-panel .monitor-panel-title{background:var(--railway-color-bg-panel-elevated);border-bottom:1px solid var(--railway-color-border-default);height:60px;min-height:60px;padding:0 18px}.monitor-trend-panel .monitor-panel-title h2{font-size:18px;font-weight:700}.monitor-trend-tabs{flex:none;justify-content:flex-start;gap:5px;padding:8px 10px 0;display:flex}.monitor-trend-tabs button{width:auto;min-width:0;height:30px;color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-control-surface);cursor:pointer;font-size:var(--railway-font-size-body);border-radius:4px;padding:0 8px;line-height:1.57143}.monitor-chart-title{min-height:34px;color:var(--railway-color-text-secondary);justify-content:space-between;align-items:center;gap:8px;margin:8px 14px 0;padding:0 8px;font-size:12px;font-weight:500;display:flex}.monitor-chart-title b{font-weight:600}.monitor-chart-title strong{color:var(--railway-color-status-warning);flex:none;font-size:12px}.monitor-trend-tabs button.active{color:var(--railway-color-accent);border-color:var(--railway-color-accent);background:var(--railway-color-accent-soft);box-shadow:0 0 12px var(--railway-color-shadow)}.monitor-alert-detail-modal{z-index:120;background:var(--railway-color-bg-scrim);place-items:center;display:grid;position:fixed;inset:0}.monitor-alert-detail-modal>section{width:min(760px,100vw - 40px);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-dialog);box-shadow:0 26px 80px var(--railway-color-shadow);border-radius:10px;overflow:hidden}.monitor-alert-detail-modal header{border-bottom:1px solid var(--railway-color-border-default);justify-content:space-between;align-items:center;min-height:66px;padding:0 20px;display:flex}.monitor-alert-detail-modal header h2{margin:0 0 5px;font-size:19px}.monitor-alert-detail-modal header span{color:var(--railway-color-text-secondary);font-size:12px}.monitor-alert-detail-modal header button{color:var(--railway-color-text-primary);cursor:pointer;background:0 0;border:0;font-size:28px}.monitor-alert-detail-body{grid-template-columns:1.15fr 1fr;gap:18px;padding:20px;display:grid}.monitor-alert-detail-video{min-height:260px;color:var(--railway-color-video-text);border:1px solid var(--railway-color-border-default);background:var(--railway-color-video-bg);border-radius:7px;place-items:center;display:grid;overflow:hidden}.monitor-alert-detail-video video{object-fit:cover;width:100%;height:100%}.monitor-alert-detail-body dl{margin:0}.monitor-alert-detail-body dl>div{border-bottom:1px solid var(--railway-color-border-default);padding:10px 0}.monitor-alert-detail-body dt{color:var(--railway-color-text-secondary);margin-bottom:5px;font-size:12px}.monitor-alert-detail-body dd{color:var(--railway-color-text-primary);margin:0;font-size:14px;line-height:1.5}.monitor-alert-judgement{border-top:1px solid var(--railway-color-border-default);align-items:center;gap:8px;min-height:58px;padding:10px 20px;display:flex}.monitor-alert-judgement b{color:var(--railway-color-text-primary);margin-right:6px;font-size:13px}.monitor-alert-judgement button{height:32px;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;padding:0 14px}.monitor-alert-judgement button.active{color:var(--railway-color-accent);border-color:var(--railway-color-accent);background:var(--railway-color-accent-soft)}.monitor-alert-judgement span{color:var(--railway-color-text-secondary);margin-left:auto;font-size:12px}.monitor-trend-chart{border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);border-radius:8px;width:calc(100% - 20px);height:300px;margin:10px;overflow:hidden}.monitor-trend-foot{color:var(--railway-color-text-secondary);grid-template-columns:1fr 1fr 1.35fr;gap:7px;padding:8px 10px 10px;font-size:11px;display:grid}.monitor-trend-foot>*{border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);text-align:center;white-space:nowrap;border-radius:6px;min-width:0;padding:7px 8px}.monitor-trend-foot span:before{content:"";background:var(--railway-color-border-subtle);border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.dashboard-bottom-actions{justify-content:center;align-items:center;display:flex}.map-bottom-controls.embedded{width:auto;color:var(--railway-color-text-primary);flex:none;gap:6px;display:flex;position:static;transform:none}.map-bottom-controls.embedded .map-device-popover{width:360px;min-width:360px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-dialog);box-shadow:0 12px 26px var(--railway-color-shadow);border-radius:9px;padding:11px;bottom:calc(100% + 12px);left:0;right:auto}.map-bottom-controls.embedded .map-device-popover>div:first-child{align-items:baseline;gap:12px;margin-bottom:9px;display:flex}.map-bottom-controls.embedded .map-device-popover strong{color:var(--railway-color-text-primary);margin:0;font-size:14px}.map-bottom-controls.embedded .map-device-popover span{color:var(--railway-color-text-secondary);font-size:11px}.map-device-options{flex-wrap:wrap;gap:7px;display:flex}.map-device-options button{min-width:74px;height:29px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-control-surface);cursor:pointer;border-radius:18px;padding:0 13px}.map-device-options button.active{color:var(--railway-color-accent);border-color:var(--railway-color-accent);background:var(--railway-color-accent-soft)}.monitor-alert-card{background:var(--railway-color-bg-panel);grid-template-columns:minmax(0,1fr) 80px;height:76px;padding:9px 10px}.monitor-alert-icon{border:2px solid var(--railway-color-status-danger);background:var(--railway-color-status-danger-soft);box-shadow:none;border-radius:5px}.monitor-alert-info{justify-content:center;gap:2px}.monitor-alert-info b{font-size:14px}.monitor-alert-info time,.monitor-alert-info span{font-size:10px}.monitor-alert-actions{justify-content:flex-end;align-items:center;gap:7px;display:flex}.monitor-alert-actions button{min-width:55px;height:25px;color:var(--railway-color-text-primary);background:var(--railway-color-control-surface);cursor:pointer;border:0;border-radius:14px;padding:0 9px;font-size:10px}.monitor-alert-actions button.level-1,.monitor-alert-actions button.level-2,.monitor-alert-actions button.level-3{background:var(--railway-color-status-success-soft)}.monitor-alert-actions button.mark-1{color:var(--railway-color-status-success);background:var(--railway-color-status-success-soft)}.monitor-alert-actions button.mark-2,.monitor-alert-actions button.mark-3,.monitor-alert-actions button.mark-4{color:var(--railway-color-status-warning);background:var(--railway-color-status-warning-soft)}body>.map-bottom-controls{gap:5px;width:380px;bottom:24px;left:auto;right:310px;transform:none}body>.map-bottom-controls .map-control-trigger,body>.map-bottom-controls .map-segmented-control{border:1px solid var(--railway-color-border-default);background:var(--railway-color-control-surface);height:34px;box-shadow:none;border-radius:4px}body>.map-bottom-controls .map-control-trigger,body>.map-bottom-controls .map-segmented-control button{color:var(--railway-color-text-primary);background:var(--railway-color-control-surface);font-size:12px;font-weight:600}body>.map-bottom-controls .map-segmented-control button+button{border-left-color:var(--railway-color-border-default)}body>.map-bottom-controls .map-segmented-control button.active{color:var(--railway-color-accent);background:var(--railway-color-accent-soft)}.map-control-trigger.active{color:var(--railway-color-accent);border-color:var(--railway-color-accent);background:var(--railway-color-accent-soft)}.app-icon{color:currentColor;vertical-align:middle;flex:none;display:inline-block}.monitor-panel-title h2{align-items:center;gap:6px;display:inline-flex}.panel-title,.alert-panel .panel-title,.video-overview-panel .panel-title,.monitor-panel-title,.monitor-camera-panel .monitor-panel-title,.monitor-city-panel .monitor-panel-title,.monitor-alert-panel .monitor-panel-title,.monitor-video-panel .monitor-panel-title,.monitor-trend-panel .monitor-panel-title{background:var(--railway-color-bg-table-header)}.panel-title h2,.monitor-panel-title h2,.monitor-camera-panel .monitor-panel-title h2,.monitor-city-panel .monitor-panel-title h2,.monitor-alert-panel .monitor-panel-title h2,.monitor-video-panel .monitor-panel-title h2,.monitor-trend-panel .monitor-panel-title h2,.monitor-panel-title h2 .app-icon{color:var(--railway-color-accent)}.dashboard-bottom-actions .map-device-popover{border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-dialog);box-shadow:0 12px 26px var(--railway-color-shadow);border-radius:9px;padding:9px 11px}.dashboard-bottom-actions .map-device-popover>div:first-child{align-items:baseline;gap:14px;margin-bottom:7px;display:flex}.dashboard-bottom-actions .map-device-popover>div:first-child strong{color:var(--railway-color-text-primary);font-size:14px;line-height:20px}.dashboard-bottom-actions .map-device-popover>div:first-child span{color:var(--railway-color-text-secondary);font-size:11px}.dashboard-bottom-actions .map-device-options{flex-wrap:wrap;gap:7px;display:flex}.dashboard-bottom-actions .map-device-options button{width:auto;min-width:66px;height:24px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-control-surface);box-shadow:none;letter-spacing:0;border-radius:18px;padding:0 13px;font-size:11px;font-weight:400}.dashboard-bottom-actions .map-device-options button.active{color:var(--railway-color-accent);border-color:var(--railway-color-accent);background:var(--railway-color-accent-soft)}.dashboard-quick-modal{z-index:100;background:var(--railway-color-bg-scrim);place-items:center;display:grid;position:fixed;inset:0}.dashboard-quick-modal>section{width:min(720px,100vw - 40px);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-dialog);box-shadow:0 24px 70px var(--railway-color-shadow)}.dashboard-quick-modal header{border-bottom:1px solid var(--railway-color-border-default);justify-content:space-between;align-items:center;height:54px;padding:0 18px;display:flex}.dashboard-quick-modal h2{margin:0;font-size:19px}.dashboard-quick-modal header button{color:var(--railway-color-text-primary);cursor:pointer;background:0 0;border:0;font-size:28px}.quick-video-grid,.quick-analysis-summary{grid-template-columns:repeat(2,1fr);gap:12px;padding:18px;display:grid}.quick-video-grid>div,.quick-analysis-summary>div{text-align:center;background:var(--railway-color-bg-panel);border:1px solid var(--railway-color-border-default);place-content:center;gap:8px;min-height:92px;display:grid}.quick-video-grid b{color:var(--railway-color-accent);font-size:13px}.quick-analysis-summary b{color:var(--railway-color-accent);font-family:var(--font-number);font-size:30px}@media (width<=1180px){.dashboard-bottom-nav{width:min(620px,100vw - 420px)}.dashboard-selector-drawer span{display:none}}.cesium-svgPath-svg{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.cesium-button{color:#edffff;fill:#edffff;cursor:pointer;-webkit-user-select:none;user-select:none;background:#303336;border:1px solid #444;border-radius:4px;margin:2px 3px;padding:5px 12px;display:inline-block;position:relative;overflow:hidden}.cesium-button:focus{color:#fff;fill:#fff;border-color:#ea4;outline:none}.cesium-button:hover{color:#fff;fill:#fff;background:#48b;border-color:#aef;box-shadow:0 0 8px #fff}.cesium-button:active{color:#000;fill:#000;background:#adf;border-color:#fff;box-shadow:0 0 8px #fff}.cesium-button:disabled,.cesium-button-disabled,.cesium-button-disabled:focus,.cesium-button-disabled:hover,.cesium-button-disabled:active{color:#646464;fill:#646464;box-shadow:none;cursor:default;background:#303336;border-color:#444}.cesium-button option{color:#eee;background-color:#000}.cesium-button option:disabled{color:#777}.cesium-button input,.cesium-button label{cursor:pointer}.cesium-button input{vertical-align:sub}.cesium-toolbar-button{box-sizing:border-box;vertical-align:middle;z-index:0;border-radius:14%;width:32px;height:32px;padding:0}.cesium-performanceDisplay-defaultContainer{text-align:right;position:absolute;top:50px;right:10px}.cesium-performanceDisplay{background-color:#282828b3;border:1px solid #444;border-radius:5px;padding:7px;font:700 12px sans-serif}.cesium-performanceDisplay-fps{color:#e52}.cesium-performanceDisplay-throttled{color:#a42}.cesium-performanceDisplay-ms{color:#de3}.cesium-animation-theme{visibility:hidden;z-index:-100;display:block;position:absolute}.cesium-animation-themeNormal{color:#222}.cesium-animation-themeHover{color:#4488b0}.cesium-animation-themeSelect{color:#242}.cesium-animation-themeDisabled{color:#333}.cesium-animation-themeKnob{color:#222}.cesium-animation-themePointer{color:#2e2}.cesium-animation-themeSwoosh{color:#8ac}.cesium-animation-themeSwooshHover{color:#aef}.cesium-animation-svgText{fill:#edffff;text-anchor:middle;font-family:sans-serif;font-size:15px}.cesium-animation-blank{fill:#000;fill-opacity:.01;stroke:none}.cesium-animation-rectButton{cursor:pointer;-webkit-user-select:none;user-select:none}.cesium-animation-rectButton .cesium-animation-buttonGlow{fill:#fff;stroke:none;display:none}.cesium-animation-rectButton:hover .cesium-animation-buttonGlow{display:block}.cesium-animation-rectButton .cesium-animation-buttonPath{fill:#edffff}.cesium-animation-rectButton .cesium-animation-buttonMain{stroke:#444;stroke-width:1.2px}.cesium-animation-rectButton:hover .cesium-animation-buttonMain{stroke:#aef}.cesium-animation-rectButton:active .cesium-animation-buttonMain{fill:#abd6ff}.cesium-animation-buttonDisabled{-webkit-user-select:none;user-select:none}.cesium-animation-buttonDisabled .cesium-animation-buttonMain{stroke:#555}.cesium-animation-buttonDisabled .cesium-animation-buttonPath{fill:#818181}.cesium-animation-buttonDisabled .cesium-animation-buttonGlow{display:none}.cesium-animation-buttonToggled .cesium-animation-buttonGlow{fill:#2e2;display:block}.cesium-animation-buttonToggled .cesium-animation-buttonMain{stroke:#2e2}.cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow{fill:#fff}.cesium-animation-buttonToggled:hover .cesium-animation-buttonMain{stroke:#2e2}.cesium-animation-shuttleRingG,.cesium-animation-shuttleRingPointer,.cesium-animation-shuttleRingPausePointer{cursor:pointer}.cesium-animation-shuttleRingBack{fill:#181818;fill-opacity:.8;stroke:#333;stroke-width:1.2px}.cesium-animation-shuttleRingSwoosh line{stroke:#8ac;stroke-width:3px;stroke-opacity:.2;stroke-linecap:round}.cesium-animation-knobOuter{cursor:pointer;stroke:#444;stroke-width:1.2px}.cesium-animation-knobInner{cursor:pointer}.cesium-baseLayerPicker-selected{border:none;width:100%;height:100%;position:absolute;top:0;left:0}.cesium-baseLayerPicker-dropDown{box-sizing:content-box;-webkit-user-select:none;user-select:none;visibility:hidden;opacity:0;background-color:#262626bf;border:1px solid #444;border-radius:10px;width:320px;max-height:500px;margin-top:5px;padding:6px;transition:visibility 0s .2s,opacity .2s ease-in,transform .2s ease-in;display:block;position:absolute;top:auto;right:0;overflow:auto;transform:translateY(-20%)}.cesium-baseLayerPicker-dropDown-visible{visibility:visible;opacity:1;transition:opacity .2s ease-out,transform .2s ease-out;transform:translate(0)}.cesium-baseLayerPicker-sectionTitle{text-align:left;color:#edffff;margin-bottom:4px;font-family:sans-serif;font-size:16pt;display:block}.cesium-baseLayerPicker-choices{margin-bottom:5px}.cesium-baseLayerPicker-categoryTitle{color:#edffff;font-size:11pt}.cesium-baseLayerPicker-choices{border:1px solid #888;border-radius:5px;padding:5px 0;display:block}.cesium-baseLayerPicker-item{vertical-align:top;text-align:center;cursor:pointer;width:64px;margin:2px 5px;display:inline-block}.cesium-baseLayerPicker-itemLabel{text-align:center;vertical-align:middle;color:#edffff;cursor:pointer;word-wrap:break-word;font-family:sans-serif;font-size:8pt;display:block}.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel,.cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel{text-decoration:underline}.cesium-baseLayerPicker-itemIcon{width:inherit;color:#edffff;cursor:pointer;box-sizing:border-box;background-size:100% 100%;border:1px solid #444;border-radius:9px;height:auto;margin:0;padding:0;display:inline-block;position:relative}.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon{border-color:#fff;box-shadow:0 0 8px #fff,0 0 8px #fff}.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel{color:#bdecf8}.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon{border:4px double #bdecf8}.cesium-widget{width:100%;height:100%;font-family:sans-serif;font-size:16px;display:block;position:relative;top:0;left:0;overflow:hidden}.cesium-widget,.cesium-widget canvas{touch-action:none;width:100%;height:100%}.cesium-widget-credits{color:#fff;text-shadow:0 0 2px #000;padding-right:5px;font-size:10px;display:block;position:absolute;bottom:0;left:0}.cesium-widget-errorPanel{text-align:center;z-index:99999;background:#000000b3;position:absolute;inset:0}.cesium-widget-errorPanel:before{vertical-align:middle;content:"";height:100%;display:inline-block}.cesium-widget-errorPanel-content{text-align:left;vertical-align:middle;color:#510c00;background-color:#f0d9d5;border:1px solid #510c00;border-radius:7px;width:75%;max-width:500px;font-size:14px;display:inline-block}.cesium-widget-errorPanel-content.expanded{max-width:75%}.cesium-widget-errorPanel-header{background:#d69d93;border-bottom:2px solid #510c00;border-radius:3px 3px 0 0;padding:15px;font-family:Open Sans,Verdana,Geneva,sans-serif;font-size:18px}.cesium-widget-errorPanel-scroll{white-space:pre-wrap;margin:10px 0 20px;padding:0 15px;font-family:Open Sans,Verdana,Geneva,sans-serif;overflow:auto}.cesium-widget-errorPanel-buttonPanel{text-align:right;margin:10px 0 20px;padding:0 15px}.cesium-widget-errorPanel-buttonPanel button{color:#202020;background:#d69d93;border-color:#510c00;margin:0}.cesium-widget-errorPanel-buttonPanel button:focus,.cesium-widget-errorPanel-buttonPanel button:hover{color:#510c00;background:#f0d9d5;border-color:#510c00}.cesium-widget-errorPanel-buttonPanel button:active{color:#510c00;background:#b17b72;border-color:#510c00}.cesium-widget-errorPanel-more-details{cursor:pointer;text-decoration:underline}.cesium-widget-errorPanel-more-details:hover{color:#2b0700}.cesium-cesiumInspector{color:#edffff;-webkit-user-select:none;user-select:none;background:#303336cc;border:1px solid #444;border-radius:5px;padding:4px 12px;transition:width .25s ease-in-out;display:inline-block;position:relative;overflow:hidden}.cesium-cesiumInspector-button{text-align:center;font-size:11pt}.cesium-cesiumInspector-visible .cesium-cesiumInspector-button{border-bottom:1px solid #aaa;padding-bottom:3px}.cesium-cesiumInspector input:enabled,.cesium-cesiumInspector-button{cursor:pointer}.cesium-cesiumInspector-visible{width:185px;height:auto}.cesium-cesiumInspector-hidden{width:122px;height:17px}.cesium-cesiumInspector-sectionContent{max-height:600px}.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionContent{max-height:0;overflow:hidden;padding:0!important}.cesium-cesiumInspector-dropDown{width:185px;margin:5px 0;font-family:sans-serif;font-size:10pt}.cesium-cesiumInspector-frustumStatistics{background-color:#505050bf;padding:5px}.cesium-cesiumInspector-pickButton{color:#edffff;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#0000004d;border:1px solid #444;border-radius:5px;margin:0 auto;padding:3px 7px}.cesium-cesiumInspector-pickButton:focus{outline:none}.cesium-cesiumInspector-pickButton:active,.cesium-cesiumInspector-pickButtonHighlight{color:#000;background:#adf;border-color:#fff;box-shadow:0 0 8px #fff}.cesium-cesiumInspector-center{text-align:center}.cesium-cesiumInspector-sectionHeader{cursor:pointer;margin:0;font-size:10pt;font-weight:700}.cesium-cesiumInspector-pickSection{border:1px solid #aaa;border-radius:5px;margin-bottom:5px;padding:3px}.cesium-cesiumInspector-sectionContent{margin-bottom:10px;transition:max-height .25s}.cesium-cesiumInspector-tileText{border-bottom:1px solid #aaa;padding-bottom:10px}.cesium-cesiumInspector-relativeText{padding-top:10px}.cesium-cesiumInspector-sectionHeader:before{content:"-";width:1ch;margin-right:5px;display:inline-block}.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionHeader:before{content:"+"}ul.cesium-cesiumInspector-statistics{margin:0;padding-top:3px;padding-bottom:3px}ul.cesium-cesiumInspector-statistics+ul.cesium-cesiumInspector-statistics{border-top:1px solid #aaa}.cesium-cesiumInspector-slider{margin-top:5px}.cesium-cesiumInspector-slider input[type=number]{text-align:left;color:#edffff;cursor:auto;background-color:#222;border:1px solid #444;border-radius:3px;outline:none;width:100px;margin-left:10px;padding:1px}.cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cesium-cesiumInspector-slider input[type=range]{vertical-align:middle;margin-left:5px}.cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor{display:none}.cesium-cesiumInspector-styleEditor{background:#303336cc;border:1px solid #444;border-radius:5px;padding:10px}.cesium-cesiumInspector-styleEditor textarea{color:#edffff;white-space:pre;overflow-wrap:normal;background:0 0;border:none;width:100%;height:300px;padding:0;overflow-x:auto}.cesium-3DTilesInspector{pointer-events:all;width:300px}.cesium-3DTilesInspector-statistics{font-size:11px}.cesium-3DTilesInspector-disabledElementsInfo{color:#eed202;margin:5px 0 0;padding:0 0 0 20px}.cesium-3DTilesInspector div,.cesium-3DTilesInspector input[type=range]{box-sizing:border-box;width:100%}.cesium-cesiumInspector-error{color:#ff9e9e;overflow:auto}.cesium-3DTilesInspector .cesium-cesiumInspector-section{margin-top:3px}.cesium-3DTilesInspector .cesium-cesiumInspector-sectionHeader+.cesium-cesiumInspector-show{border-top:1px solid #fff}input.cesium-cesiumInspector-url{white-space:nowrap;color:#fff;background-color:#0000;border:none;outline:none;width:100%;height:1em;overflow:scroll hidden}.cesium-cesiumInspector .field-group{display:table}.cesium-cesiumInspector .field-group>label{font-weight:700;display:table-cell}.cesium-cesiumInspector .field-group>.field{width:100%;display:table-cell}.cesium-VoxelInspector{pointer-events:all;width:300px}.cesium-VoxelInspector div,.cesium-VoxelInspector input[type=range]{box-sizing:border-box;width:100%}.cesium-VoxelInspector .cesium-cesiumInspector-section{margin-top:3px}.cesium-VoxelInspector .cesium-cesiumInspector-sectionHeader+.cesium-cesiumInspector-show{border-top:1px solid #fff}.cesium-button.cesium-fullscreenButton,.cesium-button.cesium-vrButton{border-radius:0;width:100%;height:100%;margin:0;display:block}.cesium-viewer-geocoderContainer .cesium-geocoder-input{color:#fff;vertical-align:middle;box-sizing:border-box;-webkit-appearance:none;background-color:#282828b3;border:1px solid #444;border-radius:0;width:0;height:32px;margin:0;padding:0 32px 0 0;transition:width .25s ease-in-out,background-color .2s ease-in-out;display:inline-block}.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input{border-color:#aef;box-shadow:0 0 8px #fff}.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus{box-shadow:none;background-color:#0f0f0fe6;border-color:#ea4;outline:none}.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input,.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus,.cesium-viewer-geocoderContainer .cesium-geocoder-input-wide{width:250px;padding-left:4px}.cesium-viewer-geocoderContainer .search-results{color:#eee;opacity:.8;background-color:#000;width:100%;position:absolute;overflow-y:auto}.cesium-viewer-geocoderContainer .search-results ul{margin:0;padding:0;list-style-type:none}.cesium-viewer-geocoderContainer .search-results ul li{padding:3px 10px;font-size:14px}.cesium-viewer-geocoderContainer .search-results ul li:hover{cursor:pointer}.cesium-viewer-geocoderContainer .search-results ul li.active{background:#48b}.cesium-geocoder-searchButton{cursor:pointer;vertical-align:middle;fill:#edffff;background-color:#303336;width:32px;height:30px;display:inline-block;position:absolute;top:1px;right:1px}.cesium-geocoder-searchButton:hover{background-color:#48b}.cesium-infoBox{color:#edffff;visibility:hidden;opacity:0;background:#262626f2;border:1px solid #444;border-right:none;border-top-left-radius:7px;border-bottom-left-radius:7px;width:40%;max-width:480px;transition:visibility 0s .2s,opacity .2s ease-in,transform .2s ease-in;display:block;position:absolute;top:50px;right:0;transform:translate(100%);box-shadow:0 0 10px 1px #000}.cesium-infoBox-visible{visibility:visible;opacity:1;transition:opacity .2s ease-out,transform .2s ease-out;transform:translate(0)}.cesium-infoBox-title{text-align:center;text-overflow:ellipsis;white-space:nowrap;box-sizing:content-box;background:#545454;border-top-left-radius:7px;height:20px;padding:5px 30px 5px 25px;display:block;overflow:hidden}.cesium-infoBox-bodyless .cesium-infoBox-title{border-bottom-left-radius:7px}button.cesium-infoBox-camera{background:0 0;border-color:#0000;border-radius:3px;width:22px;height:22px;margin:0;padding:0 5px;display:block;position:absolute;top:4px;left:4px}button.cesium-infoBox-close{color:#edffff;background:0 0;border:none;border-radius:2px;height:20px;margin:0;padding:0 5px;font-size:16px;font-weight:700;display:block;position:absolute;top:5px;right:5px}button.cesium-infoBox-close:focus{background:#ee880070;outline:none}button.cesium-infoBox-close:hover{color:#000;background:#888}button.cesium-infoBox-close:active{color:#000;background:#a00}.cesium-infoBox-bodyless .cesium-infoBox-iframe{display:none}.cesium-infoBox-iframe{border:none;width:calc(100% - 2px)}span.cesium-sceneModePicker-wrapper{margin:0 3px;display:inline-block;position:relative}.cesium-sceneModePicker-visible{visibility:visible;opacity:1;transition:opacity .25s linear}.cesium-sceneModePicker-hidden{visibility:hidden;opacity:0;transition:visibility 0s .25s,opacity .25s linear}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none{display:none}.cesium-sceneModePicker-slide-svg{transition:left 2s;top:0;left:0}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon{box-sizing:border-box;margin:3px 0;padding:0}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D,.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView,.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D{margin:0 0 3px}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D{left:100%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView{left:200%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D{left:-200%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D,.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D{left:-100%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView{left:100%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected{border-color:#2e2;box-shadow:0 0 8px #fff,0 0 8px #fff}span.cesium-projectionPicker-wrapper{margin:0 3px;display:inline-block;position:relative}.cesium-projectionPicker-visible{visibility:visible;opacity:1;transition:opacity .25s linear}.cesium-projectionPicker-hidden{visibility:hidden;opacity:0;transition:visibility 0s .25s,opacity .25s linear}.cesium-projectionPicker-wrapper .cesium-projectionPicker-none{display:none}.cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon{box-sizing:border-box;margin:3px 0;padding:0}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective,.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic{margin:0 0 3px}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic{left:100%}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective{left:-100%}.cesium-projectionPicker-wrapper .cesium-projectionPicker-selected{border-color:#2e2;box-shadow:0 0 8px #fff,0 0 8px #fff}.cesium-performance-watchdog-message-area{color:#000;background-color:#ff0;padding:10px;position:relative}.cesium-performance-watchdog-message{margin-right:30px}.cesium-performance-watchdog-message-dismiss{margin:0 10px 0 0;position:absolute;right:0}.cesium-navigationHelpButton-wrapper{display:inline-block;position:relative}.cesium-navigation-help{visibility:hidden;transform-origin:234px -10px;border-radius:10px;width:250px;transition:visibility 0s .25s,transform .25s ease-in;position:absolute;top:38px;right:2px;transform:scale(.01)}.cesium-navigation-help-visible{visibility:visible;transition:transform .25s ease-out;transform:scale(1)}.cesium-navigation-help-instructions{background-color:#262626bf;border:1px solid #444;border-radius:0 0 10px 10px;padding-bottom:5px}.cesium-click-navigation-help{display:none}.cesium-touch-navigation-help{padding-top:5px;display:none}.cesium-click-navigation-help-visible,.cesium-touch-navigation-help-visible{display:block}.cesium-navigation-help-pan{color:#6cf;font-weight:700}.cesium-navigation-help-zoom{color:#65fd00;font-weight:700}.cesium-navigation-help-rotate{color:#ffd800;font-weight:700}.cesium-navigation-help-tilt{color:#d800d8;font-weight:700}.cesium-navigation-help-details{color:#fff}.cesium-navigation-button{color:#fff;cursor:pointer;background-color:#0000;border-top:1px solid #444;border-bottom:none;border-right:1px solid #444;width:50%;margin:0}.cesium-navigation-button-icon{vertical-align:middle;padding:5px 1px}.cesium-navigation-button:focus{outline:none}.cesium-navigation-button-left{border-left:1px solid #444;border-radius:10px 0 0}.cesium-navigation-button-right{border-left:none;border-radius:0 10px 0 0}.cesium-navigation-button-selected{background-color:#262626bf}.cesium-navigation-button-unselected{background-color:#000000bf}.cesium-navigation-button-unselected:hover{background-color:#4c4c4cbf}.cesium-selection-wrapper{pointer-events:none;visibility:hidden;opacity:0;width:160px;height:160px;transition:visibility 0s .2s,opacity .2s ease-in;position:absolute}.cesium-selection-wrapper-visible{visibility:visible;opacity:1;transition:opacity .2s ease-out}.cesium-selection-wrapper svg{fill:#2e2;stroke:#000;stroke-width:1.1px}.cesium-timeline-main{-webkit-user-select:none;user-select:none;border:1px solid #888;position:relative;bottom:0;left:0;overflow:hidden}.cesium-timeline-trackContainer{border-top:1px solid #888;width:100%;position:relative;top:0;left:0;overflow:auto}.cesium-timeline-tracks{width:100%;position:absolute;top:0;left:0}.cesium-timeline-needle{background:red;width:1px;position:absolute;top:1.7em;bottom:0;left:0}.cesium-timeline-bar{cursor:pointer;background:linear-gradient(#747577cc 0%,#3a4452cc 11%,#2e3238cc 46%,#353535cc 81% 100%);width:100%;height:1.7em;position:relative;top:0;left:0;overflow:hidden}.cesium-timeline-ruler{visibility:hidden;white-space:nowrap;z-index:-200;font-size:80%}.cesium-timeline-highlight{background:#08f;position:absolute;bottom:0;left:0}.cesium-timeline-ticLabel{white-space:nowrap;color:#eee;font-size:80%;position:absolute;top:0;left:0}.cesium-timeline-ticMain{background:#eee;width:1px;height:50%;position:absolute;bottom:0;left:0}.cesium-timeline-ticSub{background:#aaa;width:1px;height:33%;position:absolute;bottom:0;left:0}.cesium-timeline-ticTiny{background:#888;width:1px;height:25%;position:absolute;bottom:0;left:0}.cesium-timeline-icon16{background-image:url(data:text/plain;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sIDBITKIVzLEMAAAKNSURBVEjHxdXNSxRhHAfw7zzrqhuoWJnSkrippUVSEKsHI9BTUYdAJA/RoYMREV26rAdn6tAfUARi16hQqkOBQRgUEYFWEC3OwczMjdZd92VmdWfmeelgTjO7q7gb0VzmmZnn85vvPPPMM8B/3qTcE2PPpuTZKB1eWuUQACgXYACYwVFbCTTVeZXB/i55o4LFelcAZfStYD4vpAoPGAGo4GBcQEgSOAUMQyAezwK6iQfDPXnhS/FkHZ+/8VLMWxxqWkfH3gbMRNOYi2roavbja0zHQmoFPYf8ED4Ko4aivm9MOG/u9I8mwrafeK7a/tVrNc/bARYN5noadeq7q0342vXw9CIMU6BmW8rVP9cPBPe52uu+v3O/y9sB4gkTWs6Qsk0mj5ExXMelejvA8WafYmkmGPHanTijdtvif8rx5RiCjdWKs2Cp3jWRDl96KhrbqlBeJqBOLyLQXg0IgbkZDS0dO8EZxZfPSTA9jvDDK3mT0OmP1FXh3XwEEAKdTX5MRWLgjCK4pwH3xt/YnjgLHAv4lHTCAKMMu/wV+KZGob6PoKyMQ0+sgBpZVJZn0NterxQaVqef/DRn+/EXYds/mZx2eVeAW9d65dhCEsaKCb7K8HH0gqTevyh9GDkn0VULRiaLzJKGBu9swfdaiie5RVo9ESURN8E8BE0n7ggACJy8KzghSCzp6DmwWxkaCm24EBXr8wI8Hrkq06QBiRC0t24HALS11IBTCyJl4vb1AXmzpbVYTwoVOXN0h7L8Mwtm8bXPybIQ/5FCX3dA2cr6XowvGCA02CvztAnz9+JiZk1AMxG6fEreSoBiPNmoyNnuWiWVzAIAtISO08E6pZi/3N96AIDn4E3h3P8L/wshP+txtEs4JAAAAABJRU5ErkJggg==);background-repeat:no-repeat;width:16px;height:16px;display:block;position:absolute}.cesium-viewer{width:100%;height:100%;font-family:sans-serif;font-size:16px;display:block;position:relative;top:0;left:0;overflow:hidden}.cesium-viewer-cesiumWidgetContainer{width:100%;height:100%}.cesium-viewer-bottom{padding-right:5px;display:block;position:absolute;bottom:0;left:0}.cesium-viewer .cesium-widget-credits{color:#fff;text-shadow:0 0 2px #000;padding-right:0;font-size:10px;display:inline;position:static;bottom:auto;left:auto}.cesium-viewer-timelineContainer{height:27px;margin:0;padding:0;font-size:14px;position:absolute;bottom:0;left:169px;right:29px;overflow:hidden}.cesium-viewer-animationContainer{width:169px;height:112px;padding:0;position:absolute;bottom:0;left:0}.cesium-viewer-fullscreenContainer,.cesium-viewer-vrContainer{width:29px;height:29px;padding:0;position:absolute;bottom:0;right:0;overflow:hidden}.cesium-viewer-toolbar{display:block;position:absolute;top:5px;right:5px}.cesium-viewer-cesiumInspectorContainer{display:block;position:absolute;top:50px;right:10px}.cesium-viewer-geocoderContainer{margin:0 3px;display:inline-block;position:relative}.cesium-viewer-cesium3DTilesInspectorContainer,.cesium-viewer-voxelInspectorContainer{box-sizing:border-box;max-height:calc(100% - 120px);display:block;position:absolute;top:50px;right:10px;overflow:hidden auto}.cesium-viewer-i3s-explorer ul{list-style-type:none}.cesium-viewer-i3s-explorer .layersList{padding:0}.cesium-viewer-i3s-explorer input{margin:0 3px 0 0}.cesium-viewer-i3s-explorer .expandItem{cursor:pointer;-webkit-user-select:none;user-select:none;width:20px}.cesium-viewer-i3s-explorer .nested,.cesium-viewer-i3s-explorer #bsl-wrapper{display:none}.cesium-viewer-i3s-explorer .active{display:block}.cesium-viewer-i3s-explorer .li-wrapper{flex-direction:row;align-content:center;display:flex}.map-detail-popup{z-index:24;width:344px;max-height:min(680px,100vh - 96px);padding:var(--railway-spacing-16);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);box-shadow:0 12px 30px var(--railway-color-shadow);overflow:auto}.map-detail-popup:before{display:none}.map-detail-popup h3{margin:0 36px var(--railway-spacing-12) 0;color:var(--railway-color-text-primary);font-size:16px;font-weight:var(--railway-font-weight-medium)}.map-detail-loading-region{gap:var(--railway-spacing-08);display:grid}.map-detail-loading-region .railway-detail-list-skeleton{width:100%}.map-detail-media-skeleton{width:100%;height:180px;margin-top:var(--railway-spacing-12);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);overflow:hidden}.map-detail-media-skeleton .railway-skeleton{width:100%;height:100%}.map-detail-close{top:var(--railway-spacing-08);right:var(--railway-spacing-08);width:32px;height:32px;color:var(--railway-color-text-secondary);border-radius:var(--railway-radius-04);background:0 0;border:0}.map-detail-close:hover{color:var(--railway-color-text-primary);background:var(--railway-color-control-hover-bg)}.map-detail-list div{align-items:start;gap:var(--railway-spacing-08);min-height:34px;padding:var(--railway-spacing-08) 0;border:0;grid-template-columns:88px minmax(0,1fr);display:grid}.map-detail-list span{color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation)}.map-detail-list b{color:var(--railway-color-text-primary);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);line-height:1.5}.map-detail-device-video,.map-detail-warning-evidence{margin-top:var(--railway-spacing-12);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-canvas);position:relative;overflow:hidden}.map-detail-device-video>div,.map-detail-warning-evidence>div{justify-content:space-between;align-items:center;gap:var(--railway-spacing-08);height:36px;padding:0 var(--railway-spacing-12);color:var(--railway-color-text-primary);border-bottom:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-table-header);display:flex}.map-detail-device-video>div b,.map-detail-warning-evidence>div b{color:var(--railway-color-text-primary);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium)}.map-detail-device-video>div button{height:26px;padding:0 var(--railway-spacing-08);color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-control-surface)}.map-detail-device-video video,.map-detail-warning-evidence video{object-fit:cover;background:var(--railway-color-bg-canvas);width:100%;height:180px;display:block}.map-detail-video-empty,.map-detail-warning-evidence>p{min-height:112px;padding:var(--railway-spacing-16);color:var(--railway-color-text-tertiary);font-size:var(--railway-font-size-annotation);text-align:center;place-items:center;margin:0;display:grid}.map-warning-judgement{gap:var(--railway-spacing-06);margin-top:var(--railway-spacing-12);padding-top:var(--railway-spacing-12);border-top:1px solid var(--railway-color-border-subtle);flex-wrap:wrap;display:flex}.cesium-surface-skeleton,.cesium-surface-error{z-index:4;pointer-events:none;position:absolute;inset:0}.cesium-warning-target-error{z-index:5;top:var(--railway-spacing-08);max-width:calc(100% - var(--railway-spacing-24));padding:var(--railway-spacing-04) var(--railway-spacing-08);color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);font-size:var(--railway-font-size-annotation);pointer-events:none;text-align:center;position:absolute;left:50%;transform:translate(-50%)}.cesium-surface-skeleton-fill{background:var(--railway-color-skeleton-base);opacity:.72;display:block;position:absolute;inset:0}.cesium-surface-skeleton-fill:after{content:"";background:linear-gradient(100deg, var(--railway-color-skeleton-base) 0%, var(--railway-color-skeleton-highlight) 50%, var(--railway-color-skeleton-base) 100%);animation:railway-skeleton-shimmer var(--railway-motion-skeleton-duration) linear infinite;background-size:220% 100%;display:block;position:absolute;inset:0}.cesium-surface-error{padding:var(--railway-spacing-24);color:var(--railway-color-text-secondary);background:var(--railway-color-bg-panel);font-size:var(--railway-font-size-body);text-align:center;place-items:center;display:grid}@media (prefers-reduced-motion:reduce){.cesium-surface-skeleton-fill:after{background-position:50% 0;animation:none}}.map-warning-judgement button{min-height:30px;padding:0 var(--railway-spacing-08);color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-control-surface)}.map-warning-judgement button:hover,.map-warning-judgement button.active{color:var(--railway-color-on-accent);border-color:var(--railway-color-control-selected);background:var(--railway-color-control-selected)}.map-warning-judgement button.replay{color:var(--railway-color-chip-red-text);border-color:var(--railway-color-status-warning);background:var(--railway-color-status-warning)}.map-detail-loading,.map-detail-error{color:var(--railway-color-text-tertiary)}.map-detail-error{color:var(--railway-color-status-danger)}.map-replay-modal{z-index:30;padding:var(--railway-spacing-16);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-08);background:var(--railway-color-bg-panel-elevated);box-shadow:0 24px 70px var(--railway-color-shadow);position:fixed;inset:8% 12%}.map-replay-modal button{float:right;color:var(--railway-color-text-secondary);background:0 0;border:0}.map-replay-modal video{width:100%;max-height:75vh;margin-top:var(--railway-spacing-16);background:var(--railway-color-bg-canvas);display:block}.cesium-point-cluster{color:var(--railway-color-on-accent);border:2px solid var(--railway-color-text-primary);background:var(--railway-color-control-selected);box-shadow:0 6px 18px var(--railway-color-shadow)}.cesium-point-cluster.expanded{color:var(--railway-color-text-primary);border-color:var(--railway-color-status-warning);background:var(--railway-color-bg-panel-elevated)}.cesium-point-cluster-links line{stroke:var(--railway-color-text-secondary)}.cesium-point-overlay-item.focus-member{filter:drop-shadow(0 0 8px var(--railway-color-status-warning))}.map-focus-highlight{border-color:var(--railway-color-status-warning);box-shadow:0 0 0 4px color-mix(in srgb, var(--railway-color-status-warning) 20%, transparent)}.drone-response-panel{margin-top:var(--railway-spacing-12);border-top:1px solid var(--railway-color-border-default)}.drone-response-panel h4{padding:var(--railway-spacing-12) 0;font-size:var(--railway-font-size-body);margin:0}.drone-pilot-info dl{margin:0}.drone-pilot-info dl>div{gap:var(--railway-spacing-08);padding:var(--railway-spacing-04) 0;grid-template-columns:58px minmax(0,1fr);display:grid}.drone-pilot-info dt{color:var(--railway-color-text-secondary)}.drone-pilot-info dd{overflow-wrap:anywhere;margin:0}.drone-response-status>div{gap:var(--railway-spacing-08);display:grid}.drone-response-status article{padding:var(--railway-spacing-12);color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-control-surface)}.drone-response-status article b{align-items:center;gap:var(--railway-spacing-08);display:flex}.drone-response-status article p{margin:var(--railway-spacing-08) 0 0;font-size:var(--railway-font-size-annotation);line-height:1.6}.drone-response-status .level-1{--zone-color:var(--railway-color-control-selected)}.drone-response-status .level-2{--zone-color:var(--railway-color-status-warning)}.drone-response-status .level-3{--zone-color:var(--railway-color-status-severe)}.drone-response-status .level-4{--zone-color:var(--railway-color-status-danger)}.drone-response-status article.current{color:var(--railway-color-text-primary);border-color:var(--zone-color);background:color-mix(in srgb, var(--zone-color) 16%, var(--railway-color-bg-panel-elevated));box-shadow:0 0 0 1px var(--zone-color);border-left-width:4px}.drone-current-zone{color:var(--railway-color-on-accent);border-radius:var(--railway-radius-04);background:var(--zone-color);font-size:var(--railway-font-size-annotation);white-space:nowrap;margin-left:auto;padding:2px 6px}.map-utilities{z-index:20;pointer-events:none;flex-direction:column-reverse;align-items:flex-end;gap:12px;display:flex;position:fixed;bottom:76px;right:16px}.map-measurement-tools{pointer-events:auto;border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);box-shadow:0 6px 18px var(--railway-color-shadow);flex-direction:column;gap:6px;padding:6px;display:flex}.map-measurement-icon{cursor:pointer;border-radius:var(--railway-radius-04);background:var(--railway-color-control-surface);border:1px solid #0000;place-items:center;width:36px;height:36px;padding:0;display:grid}.map-measurement-icon img{width:26px;height:26px}.map-measurement-icon:hover,.map-measurement-icon.active{border-color:var(--railway-color-control-selected);background:var(--railway-color-accent-soft)}.map-measurement-icon:focus-visible{outline:2px solid var(--railway-color-control-selected);outline-offset:2px}.map-click-coordinates{color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);font-variant-numeric:tabular-nums;pointer-events:none;box-shadow:0 6px 18px var(--railway-color-shadow);gap:12px;padding:6px 10px;font-size:12px;display:flex}.map-measurement-cursor-tip{z-index:100;border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-04);color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel-elevated);pointer-events:none;white-space:nowrap;padding:6px 10px;font-size:12px;position:fixed}.video-modal-mask{z-index:140;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-default);background:var(--railway-color-bg-dialog);width:min(84vw,1580px);height:min(76vh,760px);box-shadow:none;border-radius:10px;grid-template-rows:64px minmax(0,1fr);display:grid;position:relative;overflow:hidden}.video-modal-head{border-bottom:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel-elevated);justify-content:space-between;align-items:center;padding:0 20px;display:flex}.video-modal-head h2{color:var(--railway-color-text-primary);margin:0;font-size:20px}.video-modal-body{grid-template-columns:390px minmax(0,1fr);gap:16px;min-height:0;padding:18px;display:grid}.video-device-detail{align-content:start;gap:10px;min-height:0;display:grid;overflow-y:auto}.video-device-detail>div{min-height:48px;color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);grid-template-columns:140px minmax(0,1fr);align-items:center;padding:0 14px;display:grid}.video-device-detail b{color:var(--railway-color-text-primary);font-size:14px}.video-device-detail span{text-overflow:ellipsis;overflow:hidden}.video-device-detail p{color:var(--railway-color-text-secondary);border-left:3px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);margin:4px 0 0;padding:14px}.video-detail-stage{border:1px solid var(--railway-color-border-default);background:var(--railway-color-video-bg);min-width:0;min-height:0;position:relative;overflow:hidden}.video-detail-title{z-index:2;max-width:calc(100% - 100px);color:var(--railway-color-video-text);background:var(--railway-color-video-overlay);text-overflow:ellipsis;white-space:nowrap;border-radius:3px;padding:6px 10px;position:absolute;top:10px;left:10px;overflow:hidden}.video-detail-fullscreen{z-index:2;height:36px;color:var(--railway-color-on-accent);background:var(--railway-color-accent);cursor:pointer;border:0;border-radius:4px;padding:0 14px;position:absolute;top:12px;right:12px}.video-modal-close{width:36px;height:36px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);cursor:pointer;place-items:center;padding:0;font-size:24px;line-height:1;display:grid}.video-modal-player{object-fit:contain;background:var(--railway-color-video-bg);width:100%;height:100%;display:block}.railway-alarm-card{align-items:center;gap:var(--railway-spacing-08);width:100%;min-height:76px;padding:var(--railway-spacing-06) var(--railway-spacing-08);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);text-align:left;grid-template-columns:16px minmax(0,1fr) auto;display:grid}button.railway-alarm-card{cursor:pointer}.railway-alarm-card:hover,.railway-alarm-card.active{color:var(--railway-color-text-primary);border-color:var(--railway-color-status-danger);background:var(--railway-color-bg-panel-elevated)}.railway-alarm-card:focus-visible{outline:2px solid var(--railway-color-status-warning);outline-offset:2px}.railway-alarm-source-icon{width:16px;height:16px;color:var(--railway-color-status-danger);place-items:center;display:grid}.railway-alarm-card-body{flex-direction:column;min-width:0;display:flex}.railway-alarm-card-head{align-items:center;gap:var(--railway-spacing-08);min-width:0;display:flex}.railway-alarm-card-head b,.railway-alarm-time,.railway-alarm-meta{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.railway-alarm-card-head b{color:var(--railway-color-text-primary);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-semibold);line-height:22px}.railway-alarm-severity{font-style:normal;font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-semibold);flex:none;line-height:22px}.railway-alarm-severity.danger{color:var(--railway-color-status-danger)}.railway-alarm-severity.severe{color:var(--railway-color-status-severe)}.railway-alarm-severity.normal{color:var(--railway-color-status-warning)}.railway-alarm-time,.railway-alarm-meta{color:var(--railway-color-text-tertiary);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-regular);line-height:18px}.railway-alarm-time{font-family:var(--railway-font-family-number);font-variant-numeric:tabular-nums;font-weight:var(--railway-font-weight-medium)}.railway-alarm-status-chip{min-width:30px;height:16px;padding:0 var(--railway-spacing-04);font-size:10px;font-weight:var(--railway-font-weight-medium);text-align:center;white-space:nowrap;border:0;border-radius:999px;line-height:16px}.railway-alarm-status-chip.red{color:var(--railway-color-chip-red-text);background:var(--railway-color-chip-red-bg)}.railway-alarm-status-chip.purple{color:var(--railway-color-chip-purple-text);background:var(--railway-color-chip-purple-bg)}.railway-alarm-status-chip.gray{color:var(--railway-color-chip-gray-text);background:var(--railway-color-chip-gray-bg)}.railway-alarm-status-chip.green{color:var(--railway-color-chip-green-text);background:var(--railway-color-chip-green-bg)}.prototype-modal.alarm .alarm-location-list>.railway-alarm-card{gap:var(--railway-spacing-08);padding:var(--railway-spacing-06) var(--railway-spacing-08);color:var(--railway-color-text-primary);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);box-shadow:inset 0 0 0 1px var(--railway-color-border-subtle);border:0}.prototype-modal.alarm .alarm-location-list>.railway-alarm-card.active,.prototype-modal.alarm .alarm-location-list>.railway-alarm-card:hover,.prototype-modal.alarm .alarm-location-list>.railway-alarm-card:focus-visible{background:var(--railway-color-accent-soft);box-shadow:inset 0 0 0 1px var(--railway-color-accent)}.prototype-modal.alarm .alarm-location-list>.railway-alarm-card:focus-visible{outline-color:var(--railway-color-accent)}.prototype-modal-root{z-index:130;background:var(--railway-color-bg-scrim);justify-content:center;align-items:center;padding:28px;display:flex;position:fixed;inset:0}.prototype-modal{width:min(1460px,96vw);height:min(820px,90vh);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-08);background:var(--railway-color-bg-panel);-webkit-backdrop-filter:blur(var(--railway-panel-backdrop-blur));box-shadow:0 24px 70px var(--railway-color-shadow);grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.prototype-modal-head{min-height:58px;padding:0 var(--railway-spacing-16);border-bottom:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel-elevated);justify-content:space-between;align-items:center;display:flex}.prototype-modal-head h2{margin:0;font-size:18px}.prototype-modal-head>button{width:34px;height:34px;color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);cursor:pointer;background:0 0;place-items:center;padding:0;display:grid}.prototype-modal-body{min-height:0;padding:var(--railway-spacing-16);overflow:auto}.prototype-map{min-height:0;padding:0;position:relative;overflow:hidden}.prototype-device-map-tip{z-index:8;gap:var(--railway-spacing-04);pointer-events:none;display:grid;position:absolute}.prototype-modal .map-utilities{flex-direction:column;gap:8px;position:absolute;bottom:16px!important;right:16px!important}.prototype-modal-root.alarm{padding:var(--railway-spacing-16);background:var(--railway-color-bg-scrim)}.prototype-modal.alarm{width:min(1700px,100vw - 32px);height:min(860px,100vh - 32px);color:var(--railway-color-text-primary);border-radius:var(--railway-radius-08);background:var(--railway-color-bg-canvas);box-shadow:none;outline:1px solid var(--railway-color-border-subtle);font-family:var(--railway-font-family-cn);border:0;grid-template-rows:48px minmax(0,1fr)}.prototype-modal.alarm .prototype-modal-head{min-height:48px;padding:0 var(--railway-spacing-16);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel-elevated)}.prototype-modal.alarm .prototype-modal-head h2{font-size:22px;font-weight:var(--railway-font-weight-medium);line-height:30px}.prototype-modal.alarm .prototype-modal-head>button{width:24px;height:24px;color:var(--railway-color-text-secondary);background:0 0;border:0;border-radius:0}.prototype-modal.alarm .prototype-modal-head>button:hover{color:var(--railway-color-text-primary);background:var(--railway-color-border-subtle)}.prototype-modal.alarm .prototype-modal-body{gap:var(--railway-spacing-12);min-height:0;padding:var(--railway-spacing-16);flex-direction:column;display:flex;overflow:hidden}.prototype-modal.alarm .alarm-location-toolbar{align-items:center;gap:var(--railway-spacing-12);flex:0 0 44px;width:100%;height:44px;min-height:44px;margin:0;display:flex}.prototype-modal.alarm .alarm-location-toolbar input{width:360px;min-width:360px;height:36px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-body);outline:none;padding:0 12px}.prototype-modal.alarm .alarm-location-toolbar input::placeholder{color:var(--railway-color-text-tertiary)}.prototype-modal.alarm .alarm-location-toolbar input:focus-visible{border-color:var(--railway-color-status-danger);outline:2px solid var(--railway-color-border-default);outline-offset:2px}.prototype-modal.alarm .alarm-location-toolbar button{width:112px;height:24px;color:var(--railway-color-text-secondary);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0}.prototype-modal.alarm .alarm-location-toolbar button:first-of-type{width:86px}.prototype-modal.alarm .alarm-location-toolbar button:hover,.prototype-modal.alarm .alarm-location-toolbar button.active{color:var(--railway-color-text-primary);background:var(--railway-color-bg-table-header)}.prototype-modal.alarm .prototype-alarm-map-layout{gap:var(--railway-spacing-12);flex:auto;grid-template-columns:440px minmax(0,1fr);height:auto;min-height:0;display:grid}.prototype-modal.alarm .alarm-location-list{align-content:normal;gap:var(--railway-spacing-08);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel);scrollbar-color:var(--railway-color-text-tertiary) var(--railway-color-border-subtle);scrollbar-width:thin;border:0;flex-direction:column;min-height:0;padding:0;display:flex;overflow:hidden auto}.prototype-modal.alarm .alarm-location-list::-webkit-scrollbar{width:6px}.prototype-modal.alarm .alarm-location-list::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.prototype-modal.alarm .alarm-location-list::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.prototype-modal.alarm .alarm-location-list>p{padding:var(--railway-spacing-16);color:var(--railway-color-text-tertiary);text-align:center;margin:0}.prototype-modal.alarm .prototype-alarm-pager{align-items:center;gap:var(--railway-spacing-08);width:100%;height:36px;min-height:36px;padding:6px var(--railway-spacing-08);background:0 0;flex:0 0 36px;grid-template-columns:64px minmax(0,1fr) 64px;display:grid;position:static}.prototype-modal.alarm .prototype-alarm-pager button{width:64px;height:24px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-status-danger);background:var(--railway-color-bg-panel-elevated);font-size:var(--railway-font-size-annotation);cursor:pointer;border-radius:999px;padding:0}.prototype-modal.alarm .alarm-location-skeleton-group{gap:var(--railway-spacing-08);display:grid}.prototype-modal.alarm .alarm-location-skeleton-card{align-items:center;gap:var(--railway-spacing-08);min-height:76px;padding:var(--railway-spacing-06) var(--railway-spacing-08);pointer-events:none;grid-template-columns:16px minmax(0,1fr) auto;display:grid}.prototype-modal.alarm .alarm-location-skeleton-card .railway-alarm-card-body{gap:var(--railway-spacing-04);min-width:0;display:grid}.prototype-modal.alarm .alarm-location-skeleton-card .railway-alarm-card-head{justify-content:space-between;display:flex}.prototype-modal.alarm .prototype-alarm-pager button:disabled{color:var(--railway-color-text-tertiary);border-color:var(--railway-color-border-subtle);opacity:.45}.prototype-modal.alarm .prototype-alarm-pager span{color:var(--railway-color-text-secondary);font-family:var(--railway-font-family-number);font-size:var(--railway-font-size-annotation);font-variant-numeric:tabular-nums;text-align:center}.prototype-modal.alarm .prototype-device-map{border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel);min-width:0;min-height:0}.prototype-modal.alarm .prototype-device-map-tip{box-shadow:none;background:0 0;border:0;padding:0;top:18px;left:18px}.prototype-modal.alarm .prototype-device-map-tip b{color:var(--railway-color-text-primary);font-size:18px;font-weight:var(--railway-font-weight-medium);line-height:26px}.prototype-modal.alarm .prototype-device-map-tip span{color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation)}.prototype-modal.alarm .prototype-device-map-tip span:empty{display:none}@media (width<=1180px){.prototype-modal.alarm .prototype-alarm-map-layout{grid-template-columns:minmax(0,1fr);overflow:auto}.prototype-modal.alarm .alarm-location-list{min-height:724px}.prototype-modal.alarm .prototype-device-map{min-height:560px}}.prototype-modal-root.alarmAnalysis{padding:var(--railway-spacing-16);background:var(--railway-color-bg-scrim)}.prototype-modal.alarmAnalysis{width:min(1700px,100vw - 32px);height:min(860px,100vh - 32px);color:var(--railway-color-text-primary);border-radius:var(--railway-radius-08);background:var(--railway-color-bg-canvas);box-shadow:none;outline:1px solid var(--railway-color-border-subtle);font-family:var(--railway-font-family-cn);border:0;grid-template-rows:48px minmax(0,1fr)}.prototype-modal.alarmAnalysis .prototype-modal-head{min-height:48px;padding:0 var(--railway-spacing-16);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel-elevated)}.prototype-modal.alarmAnalysis .prototype-modal-head h2{font-size:22px;font-weight:var(--railway-font-weight-medium);line-height:30px}.prototype-modal.alarmAnalysis .prototype-modal-head>button{width:24px;height:24px;color:var(--railway-color-text-secondary);background:0 0;border:0;border-radius:0}.prototype-modal.alarmAnalysis .prototype-modal-body{padding:var(--railway-spacing-16);overflow:hidden}.alarm-statistics-body{gap:var(--railway-spacing-12);flex-direction:column;height:100%;min-height:0;display:flex}.prototype-modal.alarmAnalysis .alarm-statistics-filters{align-items:center;gap:var(--railway-spacing-12);flex-wrap:nowrap;flex:0 0 44px;width:100%;height:44px;min-height:44px;padding:0;display:flex}.prototype-modal.alarmAnalysis .alarm-statistics-filters input{width:420px;min-width:420px;height:36px;padding:0 var(--railway-spacing-12);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-body);outline:none}.prototype-modal.alarmAnalysis .alarm-statistics-filters input::placeholder{color:var(--railway-color-text-tertiary)}.prototype-modal.alarmAnalysis .alarm-statistics-filters select{width:130px;height:36px;padding:0 var(--railway-spacing-12);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-body)}.prototype-modal.alarmAnalysis .alarm-statistics-filters>button{width:64px;height:24px;color:var(--railway-color-text-secondary);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-body);line-height:1.57143;font-weight:var(--railway-font-weight-medium);background:0 0;border:0;border-radius:999px;padding:0}.prototype-modal.alarmAnalysis .alarm-statistics-filters>button:nth-of-type(3),.prototype-modal.alarmAnalysis .alarm-statistics-filters>button:nth-of-type(4){width:72px}.prototype-modal.alarmAnalysis .alarm-statistics-filters>button:hover,.prototype-modal.alarmAnalysis .alarm-statistics-filters>button.active{color:var(--railway-color-text-primary);background:var(--railway-color-bg-table-header)}.prototype-modal.alarmAnalysis .alarm-statistics-shell{gap:var(--railway-spacing-12);flex:auto;grid-template-columns:460px 500px minmax(0,1fr);width:100%;height:724px;min-height:0;display:grid}.prototype-modal.alarmAnalysis .alarm-statistics-list,.prototype-modal.alarmAnalysis .alarm-statistics-center,.prototype-modal.alarmAnalysis .alarm-statistics-map{border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel);border:0;min-width:0;min-height:0}.prototype-modal.alarmAnalysis .alarm-statistics-list{gap:var(--railway-spacing-08);grid-template-rows:104px minmax(0,1fr);display:grid}.prototype-modal.alarmAnalysis .alarm-statistics-kpis{gap:var(--railway-spacing-08);grid-template-columns:repeat(3,minmax(0,1fr));min-height:104px;display:grid}.prototype-modal.alarmAnalysis .alarm-statistics-kpis>div{width:auto;min-height:104px;padding:0 var(--railway-spacing-08);color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-body);background:0 0;border:0;border-radius:0;grid-template-rows:28px 22px;grid-template-columns:minmax(0,1fr) auto;align-content:center;gap:0;margin:0;display:grid}.prototype-modal.alarmAnalysis .alarm-statistics-kpis .railway-kpi-skeleton{min-height:104px;padding:0 var(--railway-spacing-08);background:0 0;border:0;border-radius:0}.prototype-modal.alarmAnalysis .alarm-statistics-kpi-error{padding:0 var(--railway-spacing-08);grid-column:1/-1;align-self:center;margin:0}.prototype-modal.alarmAnalysis .alarm-statistics-kpis>div>span{grid-area:1/1;align-self:center}.prototype-modal.alarmAnalysis .alarm-statistics-kpis b{color:var(--railway-color-text-primary);font-family:var(--railway-font-family-number);font-variant-numeric:tabular-nums;grid-area:1/2;align-self:center;font-size:24px;line-height:30px}.prototype-modal.alarmAnalysis .alarm-statistics-kpis small{text-align:right;color:var(--railway-color-status-success);font-family:var(--railway-font-family-number);font-size:18px;font-weight:var(--railway-font-weight-medium);grid-area:2/2;align-self:center}.prototype-modal.alarmAnalysis .alarm-statistics-kpis em{color:var(--railway-color-text-tertiary);font-size:var(--railway-font-size-annotation);grid-area:2/1;align-self:center;font-style:normal}.prototype-modal.alarmAnalysis .alarm-statistics-table-head,.prototype-modal.alarmAnalysis .alarm-statistics-table-body>button{grid-template-columns:152px 214px 78px;align-items:center;gap:0;display:grid}.prototype-modal.alarmAnalysis .alarm-statistics-table-head{height:40px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04) var(--railway-radius-04) 0 0;background:var(--railway-color-bg-table-header);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-semibold);padding:0}.prototype-modal.alarmAnalysis .alarm-statistics-table-head span,.prototype-modal.alarmAnalysis .alarm-statistics-table-body>button>span{min-width:0;padding:0 var(--railway-spacing-08)}.prototype-modal.alarmAnalysis .alarm-statistics-table-body{height:572px;min-height:0;overflow:hidden auto}.prototype-modal.alarmAnalysis .alarm-statistics-skeleton-group{gap:0;display:grid}.prototype-modal.alarmAnalysis .alarm-statistics-skeleton-row{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel-elevated);grid-template-columns:152px 214px 78px;align-items:center;width:100%;height:66px;min-height:66px;display:grid}.prototype-modal.alarmAnalysis .alarm-statistics-skeleton-row .railway-skeleton{max-width:calc(100% - var(--railway-spacing-16));margin-left:var(--railway-spacing-08);justify-self:start}.prototype-modal.alarmAnalysis .alarm-statistics-table-body>button{width:100%;min-height:66px;color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel-elevated);text-align:left;border-radius:0;padding:0}.prototype-modal.alarmAnalysis .alarm-statistics-table-body>button:hover,.prototype-modal.alarmAnalysis .alarm-statistics-table-body>button.active{color:var(--railway-color-text-primary);border-color:var(--railway-color-status-danger);background:var(--railway-color-bg-panel-elevated);box-shadow:none}.prototype-modal.alarmAnalysis .alarm-statistics-table-body>button>span{gap:var(--railway-spacing-02);color:inherit;font-size:var(--railway-font-size-annotation);text-overflow:ellipsis;white-space:nowrap;flex-direction:column;display:flex;overflow:hidden}.prototype-modal.alarmAnalysis .alarm-statistics-table-body>button>span>span{color:var(--railway-color-text-tertiary);padding:0}.prototype-modal.alarmAnalysis .alarm-statistics-table-body .railway-alarm-status-chip{justify-self:start}.prototype-modal.alarmAnalysis .alarm-statistics-center{padding:0}.prototype-modal.alarmAnalysis .alarm-statistics-chart{border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);grid-template-rows:64px minmax(0,1fr);width:500px;height:350px;min-height:350px;padding:0;display:grid}.prototype-modal.alarmAnalysis .alarm-statistics-chart>header{justify-content:space-between;align-items:center;gap:var(--railway-spacing-08);padding:var(--railway-spacing-12);display:flex}.prototype-modal.alarmAnalysis .alarm-statistics-chart h3{color:var(--railway-color-text-primary);font-size:18px;font-weight:var(--railway-font-weight-medium);margin:0;line-height:26px}.prototype-modal.alarmAnalysis .alarm-statistics-chart header>div{gap:var(--railway-spacing-02);display:flex}.prototype-modal.alarmAnalysis .alarm-statistics-chart header button{min-width:40px;height:24px;padding:0 var(--railway-spacing-06);color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation);background:0 0;border:0;border-radius:999px}.prototype-modal.alarmAnalysis .alarm-statistics-chart header button.active{color:var(--railway-color-text-primary);background:var(--railway-color-bg-table-header)}.prototype-modal.alarmAnalysis .alarm-statistics-chart .analysis-combo-chart{min-height:0;padding:0 var(--railway-spacing-08) var(--railway-spacing-08)}.prototype-modal.alarmAnalysis .alarm-statistics-chart-skeleton{height:100%;min-height:0;padding:var(--railway-spacing-08);position:relative}.prototype-modal.alarmAnalysis .alarm-statistics-chart-skeleton>div{border-radius:var(--railway-radius-04);width:100%;height:100%}.prototype-modal.alarmAnalysis .alarm-statistics-chart-skeleton>div>.railway-skeleton{width:100%;height:100%}.prototype-modal.alarmAnalysis .alarm-statistics-chart-skeleton>.railway-loading-region-status{position:absolute}.prototype-modal.alarmAnalysis .analysis-combo-chart line{stroke:var(--railway-color-border-default)}.prototype-modal.alarmAnalysis .analysis-combo-chart rect{fill:var(--railway-color-text-tertiary)}.prototype-modal.alarmAnalysis .analysis-combo-chart polygon{fill:color-mix(in srgb, var(--railway-color-status-warning) 12%, transparent)}.prototype-modal.alarmAnalysis .analysis-combo-chart path{fill:none;stroke:var(--railway-color-status-warning);stroke-width:3px}.prototype-modal.alarmAnalysis .analysis-combo-chart circle{fill:var(--railway-color-status-warning);stroke:var(--railway-color-bg-panel-elevated)}.prototype-modal.alarmAnalysis .analysis-combo-chart text{fill:var(--railway-color-text-primary);font-family:var(--railway-font-family-number);font-size:var(--railway-font-size-annotation)}.prototype-modal.alarmAnalysis .analysis-combo-chart text.axis{fill:var(--railway-color-text-tertiary)}.prototype-modal.alarmAnalysis .alarm-type-records{height:354px;margin:var(--railway-spacing-12) 0 0;border-color:var(--railway-color-border-subtle);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated)}.prototype-modal.alarmAnalysis .alarm-type-records>div{gap:var(--railway-spacing-06);height:310px;padding:var(--railway-spacing-06);display:grid;overflow-y:auto}.prototype-modal.alarmAnalysis .alarm-type-records .railway-alarm-card{min-height:76px;padding:var(--railway-spacing-06) var(--railway-spacing-08);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);margin:0}.prototype-modal.alarmAnalysis .alarm-statistics-map{grid-template-rows:minmax(0,1fr) auto;display:grid}.prototype-modal.alarmAnalysis .alarm-statistics-map>.prototype-map{border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel);min-height:0}.prototype-modal.alarmAnalysis .prototype-device-map-tip{width:280px;min-height:72px;padding:var(--railway-spacing-12);background:var(--railway-color-bg-panel-elevated);box-shadow:none;border:0;top:16px;left:16px}.prototype-modal.alarmAnalysis .prototype-device-map-tip b{color:var(--railway-color-text-primary);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium)}.prototype-modal.alarmAnalysis .prototype-device-map-tip span{color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation)}@media (width<=1180px){.prototype-modal.alarmAnalysis .alarm-statistics-shell{grid-template-columns:minmax(0,1fr);overflow:auto}}.prototype-modal.analysisDetail{width:min(1720px,100vw - 64px);height:min(920px,100vh - 64px);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-08);background:var(--railway-color-bg-panel-elevated);box-shadow:0 24px 70px var(--railway-color-shadow);grid-template-rows:48px minmax(0,1fr);display:grid;overflow:hidden}.prototype-modal.analysisDetail .prototype-modal-head{height:48px;padding:0 var(--railway-spacing-16);border-bottom:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel)}.prototype-modal.analysisDetail .prototype-modal-head h2{color:var(--railway-color-text-primary);font-size:16px;font-weight:var(--railway-font-weight-medium)}.prototype-modal.analysisDetail .prototype-modal-head button{width:32px;height:32px;color:var(--railway-color-text-secondary);border-radius:var(--railway-radius-04);background:0 0;border:0}.prototype-modal.analysisDetail .prototype-modal-body{min-height:0;padding:var(--railway-spacing-16);background:var(--railway-color-bg-panel-elevated);overflow:hidden}.prototype-modal.analysisDetail .analysis-combo-chart .axis,.prototype-modal.analysisDetail .analysis-combo-chart text{font-size:15px}.prototype-modal.analysisDetail .analysis-control-panel{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);min-height:0;padding:12px;overflow:hidden}.prototype-modal.analysisDetail .analysis-info-row{color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);gap:6px;margin-bottom:9px;padding:10px;font-size:12px;display:grid}.prototype-modal.analysisDetail .analysis-info-row b{color:var(--railway-color-text-primary)}.prototype-modal.analysisDetail .analysis-side-tabs{gap:8px;margin-top:12px;display:grid}.prototype-modal.analysisDetail .analysis-side-tabs button{min-height:34px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);border-radius:5px}.prototype-modal.analysisDetail .analysis-side-tabs button.active{color:var(--railway-color-text-primary);border-color:var(--railway-color-border-subtle);background:var(--railway-color-accent-soft)}.prototype-modal.analysisDetail .analysis-main-panel{grid-template-rows:42px 92px minmax(210px,.92fr) auto minmax(245px,.84fr);gap:10px;min-width:0;height:100%;min-height:0;display:grid;overflow:hidden}.prototype-modal.analysisDetail .analysis-main-panel>*{box-sizing:border-box;min-height:0}.prototype-modal.analysisDetail .analysis-filter-row{grid-template-columns:minmax(160px,1fr) 170px 170px auto;gap:10px;display:grid}.prototype-modal.analysisDetail .analysis-filter-row select,.prototype-modal.analysisDetail .analysis-filter-row input,.prototype-modal.analysisDetail .analysis-filter-row button{min-width:0;height:36px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);border-radius:5px;padding:0 11px}.prototype-modal.analysisDetail .analysis-filter-row button{color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel);font-weight:700}.prototype-modal.analysisDetail .analysis-kpi-row{grid-template-columns:repeat(3,1fr);gap:12px;min-height:0;display:grid}.prototype-modal.analysisDetail .analysis-kpi{box-sizing:border-box;border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);align-content:center;min-width:0;height:100%;min-height:0;padding:12px 16px;display:grid}.prototype-modal.analysisDetail .analysis-kpi.warn,.prototype-modal.analysisDetail .analysis-kpi.blue{background:var(--railway-color-bg-panel)}.prototype-modal.analysisDetail .analysis-kpi span,.prototype-modal.analysisDetail .analysis-kpi small{color:var(--railway-color-text-primary)}.prototype-modal.analysisDetail .analysis-kpi b{color:var(--railway-color-text-primary);font-size:30px}.prototype-modal.analysisDetail .analysis-detail-chart{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);height:280px;min-height:0;padding:10px}.prototype-modal.analysisDetail .analysis-combo-chart{width:100%;height:100%;position:relative}.prototype-modal.analysisDetail .analysis-combo-chart>b{font-size:13px;position:absolute;top:4px;left:8px}.prototype-modal.analysisDetail .analysis-combo-chart>strong{color:var(--railway-color-text-primary);font-size:12px;position:absolute;top:4px;right:8px}.prototype-modal.analysisDetail .analysis-combo-chart svg{object-fit:fill;width:100%;height:100%;display:block;overflow:visible}.prototype-modal.analysisDetail .analysis-combo-chart line{stroke:var(--railway-color-border-default)}.prototype-modal.analysisDetail .analysis-combo-chart rect{fill:url(#analysisBarGradient)}.prototype-modal.analysisDetail .analysis-combo-chart polygon{fill:var(--railway-color-text-primary)}.prototype-modal.analysisDetail .analysis-combo-chart path{fill:none;stroke:var(--railway-color-border-default);stroke-width:3px}.prototype-modal.analysisDetail .analysis-combo-chart circle{fill:var(--railway-color-text-primary);stroke:var(--railway-color-border-default);stroke-width:2px}.prototype-modal.analysisDetail .analysis-combo-chart text{fill:var(--railway-color-text-primary);text-anchor:middle;font-size:11px}.prototype-modal.analysisDetail .analysis-combo-chart text.axis{fill:var(--railway-color-text-primary)}.prototype-modal.analysisDetail .analysis-route-filter{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);align-items:center;gap:7px;min-height:46px;padding:8px 10px;display:flex}.prototype-modal.analysisDetail .analysis-route-filter>span{color:var(--railway-color-text-primary);font-weight:700}.prototype-modal.analysisDetail .analysis-route-filter button{min-height:30px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);border-radius:7px;align-items:center;gap:7px;padding:5px 9px;display:flex}.prototype-modal.analysisDetail .analysis-route-filter button.active{border-color:var(--railway-color-border-subtle);background:var(--railway-color-accent-soft)}.prototype-modal.analysisDetail .analysis-route-filter em{min-width:23px;color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel);border-radius:20px;padding:2px 6px;font-style:normal}.prototype-modal.analysisDetail .analysis-bottom-split{grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr);gap:12px;min-height:0;display:grid;overflow:hidden}.prototype-modal.analysisDetail .analysis-detail-table,.prototype-modal.analysisDetail .analysis-risk-log{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);height:100%;min-height:0;overflow:auto}.prototype-modal.analysisDetail .analysis-detail-table table{border-collapse:collapse;width:100%;color:var(--railway-color-text-primary);font-size:12px}.prototype-modal.analysisDetail .analysis-detail-table th,.prototype-modal.analysisDetail .analysis-detail-table td{border-bottom:1px solid var(--railway-color-border-subtle);text-align:left;padding:9px 10px}.prototype-modal.analysisDetail .analysis-detail-table th{color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel);position:sticky;top:0}.prototype-modal.analysisDetail .analysis-risk-log{padding:12px}.prototype-modal.analysisDetail .analysis-risk-log h3{margin:0 0 10px;font-size:15px}.prototype-modal.analysisDetail .risk-log-summary{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px;display:grid}.prototype-modal.analysisDetail .risk-log-summary span{color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);padding:8px}.prototype-modal.analysisDetail .risk-log-summary b{color:var(--railway-color-text-primary);font-size:18px;display:block}.prototype-modal.analysisDetail .risk-log-list{gap:8px;display:grid}.prototype-modal.analysisDetail .risk-log-item{color:var(--railway-color-text-primary);border-left:3px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);padding:9px 10px;line-height:1.45}.prototype-modal.analysisDetail .risk-log-item.is-urgent{border-left-color:var(--railway-color-border-subtle);background:var(--railway-color-bg-panel)}.prototype-modal.analysisDetail .risk-log-item b{color:var(--railway-color-text-primary);margin-bottom:3px;display:block}.prototype-modal.analysisDetail .analysis-control-panel .chip{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);min-height:34px;color:var(--railway-color-text-primary);cursor:pointer;border-radius:4px;justify-content:center;padding:8px 10px;font-size:13px}.prototype-modal.analysisDetail .analysis-control-panel .chip.is-active{color:var(--railway-color-text-primary);background:var(--railway-color-accent-soft);border-color:#0000;font-weight:700}.prototype-modal.analysisDetail .analysis-time-filter{gap:8px;margin-top:12px;display:grid}.prototype-modal.analysisDetail .time-filter-label{color:var(--railway-color-text-primary);letter-spacing:.5px;font-size:12px}.prototype-modal.analysisDetail .time-range-custom{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);border-radius:8px;grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:6px;padding:7px 9px;display:grid}.prototype-modal.analysisDetail .time-range-custom .cal-icon{width:15px;height:15px;color:var(--railway-color-text-primary);flex:none;display:block}.prototype-modal.analysisDetail .time-range-custom .date-input{width:100%;min-width:0;color:var(--railway-color-text-primary);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;text-align:center;background:0 0;border:none;outline:none;padding:0;font-size:11px}.prototype-modal.analysisDetail .time-range-custom .date-input::-webkit-calendar-picker-indicator{opacity:.75;cursor:pointer;filter:invert(.85)sepia()saturate(3)hue-rotate(130deg);width:10px;height:10px;margin:0}.prototype-modal.analysisDetail .time-range-custom .date-input::-webkit-datetime-edit{padding:0}.prototype-modal.analysisDetail .time-range-custom .date-input::-webkit-datetime-edit-fields-wrapper{padding:0}.prototype-modal.analysisDetail .time-range-custom .date-sep{color:var(--railway-color-text-primary);font-size:13px}.prototype-modal.analysisDetail .time-quick-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.prototype-modal.analysisDetail .time-quick-grid .chip{border-radius:6px;justify-content:center;min-height:30px;padding:6px 4px;font-size:12.5px}.prototype-modal.analysisDetail .analysis-side-tabs-sub{border-top:1px dashed var(--railway-color-border-subtle);padding-top:12px}.prototype-modal.analysisDetail .analysis-main-panel.is-module .analysis-module-panel.is-open{flex:auto;min-height:0}.prototype-modal.analysisDetail .analysis-main-panel.is-module .analysis-kpi-row,.prototype-modal.analysisDetail .analysis-main-panel.is-module .analysis-detail-chart,.prototype-modal.analysisDetail .analysis-main-panel.is-module .analysis-route-filter,.prototype-modal.analysisDetail .analysis-main-panel.is-module .analysis-bottom-split,.prototype-modal.analysisDetail .analysis-filter-row.is-hidden{display:none}.prototype-modal.analysisDetail .analysis-module-panel{min-height:0;display:none;overflow:auto}.prototype-modal.analysisDetail .analysis-module-panel.is-open{display:block}.prototype-modal.analysisDetail .stats-kpi-row{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.prototype-modal.analysisDetail .stats-kpi-row .analysis-kpi{min-height:82px;padding:12px 16px}.prototype-modal.analysisDetail .stats-cols{grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:12px;margin-top:12px;display:grid}.prototype-modal.analysisDetail .stats-card{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);padding:12px 14px}.prototype-modal.analysisDetail .stats-card h3{color:var(--railway-color-text-primary);letter-spacing:.5px;margin:0 0 10px;font-size:13px;font-weight:600}.prototype-modal.analysisDetail .stats-card h3 small{float:right;color:var(--railway-color-text-primary);font-size:11px;font-weight:400}.prototype-modal.analysisDetail .stat-pie-wrap{grid-template-columns:178px minmax(0,1fr);align-items:center;gap:16px;display:grid}.prototype-modal.analysisDetail .stat-pie-svg{width:100%;max-width:200px;display:block}.prototype-modal.analysisDetail .stat-pie-legend{gap:4px;max-height:210px;display:grid;overflow:hidden}.prototype-modal.analysisDetail .stat-pie-legend .row{color:var(--railway-color-text-primary);white-space:nowrap;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:6px;font-size:12px;display:grid;overflow:hidden}.prototype-modal.analysisDetail .stat-pie-legend .row i{border-radius:2px;width:8px;height:8px;display:inline-block}.prototype-modal.analysisDetail .stat-pie-legend .row em{text-overflow:ellipsis;font-style:normal;overflow:hidden}.prototype-modal.analysisDetail .stat-pie-legend .row b{color:var(--railway-color-text-primary);font-weight:600}.prototype-modal.analysisDetail .stat-pie-page{color:var(--railway-color-text-primary);justify-content:flex-end;align-items:center;gap:6px;margin-top:8px;font-size:12px;display:flex}.prototype-modal.analysisDetail .stat-pie-page button{background:var(--railway-color-bg-panel);border:1px solid var(--railway-color-border-subtle);color:var(--railway-color-text-primary);cursor:pointer;border-radius:4px;width:22px;height:22px;padding:0;font-size:14px;line-height:1}.prototype-modal.analysisDetail .stat-pie-page button:hover{background:var(--railway-color-bg-panel)}.prototype-modal.analysisDetail .stat-pie-page button:disabled{opacity:.35;cursor:default}.prototype-modal.analysisDetail .stats-card:last-child{min-width:0}.prototype-modal.analysisDetail .stat-chart{width:100%;height:100%;min-height:0;position:relative}.prototype-modal.analysisDetail .stat-chart svg{width:100%;height:100%;display:block}.prototype-modal.analysisDetail .stat-chart .grid-line{stroke:var(--railway-color-border-default);stroke-width:1px}.prototype-modal.analysisDetail .stat-chart .grid-label,.prototype-modal.analysisDetail .stat-chart .axis-label{fill:var(--railway-color-text-primary);font-size:11px}.prototype-modal.analysisDetail .stat-chart .bar{fill:url(#statBarGrad)}.prototype-modal.analysisDetail .stat-chart .bar:hover{filter:brightness(1.25)}.prototype-modal.analysisDetail .heat-wrap{grid-template-rows:auto minmax(0,1fr) auto;gap:10px;height:100%;min-height:0;display:grid}.prototype-modal.analysisDetail .heat-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.prototype-modal.analysisDetail .heat-title{color:var(--railway-color-text-primary);letter-spacing:.5px;font-size:14px;font-weight:600}.prototype-modal.analysisDetail .heat-title small{color:var(--railway-color-text-primary);margin-left:10px;font-size:12px;font-weight:400}.prototype-modal.analysisDetail .heat-legend{color:var(--railway-color-text-primary);align-items:center;gap:6px;font-size:12px;display:inline-flex}.prototype-modal.analysisDetail .heat-legend i{border-radius:4px;width:18px;height:8px;display:inline-block}.prototype-modal.analysisDetail .heat-legend .lg1,.prototype-modal.analysisDetail .heat-legend .lg2,.prototype-modal.analysisDetail .heat-legend .lg3,.prototype-modal.analysisDetail .heat-legend.warn .lg1,.prototype-modal.analysisDetail .heat-legend.warn .lg2,.prototype-modal.analysisDetail .heat-legend.warn .lg3{background:var(--railway-color-bg-panel)}.prototype-modal.analysisDetail .heat-map,.prototype-modal.analysisDetail .heat-map-cesium{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);min-height:0;position:relative;overflow:hidden}.prototype-modal.analysisDetail .heat-map-cesium .cesium-map-wrap{background:var(--railway-color-bg-panel)}.prototype-modal.analysisDetail .heat-map svg{width:100%;height:100%;position:absolute;inset:0}.prototype-modal.analysisDetail .heat-map .static-boundary,.prototype-modal.analysisDetail .heat-map .static-city-boundary{fill:none;stroke:var(--railway-color-border-default);stroke-width:1.2px}.prototype-modal.analysisDetail .heat-map .static-road{fill:none;stroke:var(--railway-color-border-default);stroke-width:1px}.prototype-modal.analysisDetail .heat-map .static-road.primary,.prototype-modal.analysisDetail .heat-map .static-road.secondary,.prototype-modal.analysisDetail .heat-map .static-road.water{stroke:var(--railway-color-border-default)}.prototype-modal.analysisDetail .heat-map .heat-rail{fill:none;stroke:var(--railway-color-border-default);stroke-width:1.6px;stroke-dasharray:1 4;filter:drop-shadow(0 0 3px var(--railway-color-border-subtle))}.prototype-modal.analysisDetail .heat-map .heat-rail-glow{fill:none;stroke:var(--railway-color-border-default);stroke-width:10px}.prototype-modal.analysisDetail .heat-blob{pointer-events:none;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.prototype-modal.analysisDetail .heat-blob.is-drone,.prototype-modal.analysisDetail .heat-blob.is-pilot{background:var(--railway-color-bg-panel)}.prototype-modal.analysisDetail .heat-map-label{color:var(--railway-color-text-primary);text-shadow:0 0 6px var(--railway-color-border-subtle);white-space:nowrap;pointer-events:none;font-size:11px;position:absolute;transform:translate(-50%,-50%)}.prototype-modal.analysisDetail .heat-map-label b{color:var(--railway-color-text-primary);font-weight:600}.prototype-modal.analysisDetail .heat-stats{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.prototype-modal.analysisDetail .heat-stat{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);gap:4px;padding:10px 12px;display:grid}.prototype-modal.analysisDetail .heat-stat span{color:var(--railway-color-text-primary);font-size:12px}.prototype-modal.analysisDetail .heat-stat b{color:var(--railway-color-text-primary);font-size:22px}.prototype-modal.analysisDetail .heat-stat.warn b{color:var(--railway-color-text-primary)}.prototype-modal.analysisDetail .analysis-route-filter button.is-active{border-color:var(--railway-color-border-subtle);background:var(--railway-color-accent-soft);color:var(--railway-color-text-primary)}.prototype-modal.analysisDetail .combo-chart{border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);border-radius:8px;height:100%;min-height:218px;position:relative;overflow:hidden}.prototype-modal.analysisDetail .combo-chart svg{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.prototype-modal.analysisDetail .combo-title{z-index:2;color:var(--railway-color-text-primary);font-size:12px;position:absolute;top:8px;left:10px}.prototype-modal.analysisDetail .combo-total{z-index:2;color:var(--railway-color-text-primary);font-size:12px;position:absolute;top:8px;right:10px}.prototype-modal.analysisDetail .combo-dot{fill:var(--railway-color-text-primary);stroke:var(--railway-color-border-default);stroke-width:2px}.prototype-modal.analysisDetail .combo-axis-label{fill:var(--railway-color-text-primary);font-size:10px}.prototype-modal.analysisDetail .combo-value-label{fill:var(--railway-color-text-primary);font-size:11px}.prototype-modal.analysisDetail .combo-bar{fill:url(#comboBarGradient);stroke:var(--railway-color-border-default);stroke-width:1px}.prototype-modal.analysisDetail .combo-line{fill:none;stroke:var(--railway-color-border-default);stroke-width:4px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 8px var(--railway-color-border-subtle))}.prototype-modal.analysisDetail .analysis-toast{z-index:200;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);box-shadow:0 10px 30px var(--railway-color-border-subtle);pointer-events:none;border-radius:8px;padding:9px 18px;font-size:13px;animation:.18s analysis-toast-in;position:fixed;top:110px;left:50%;transform:translate(-50%)}.prototype-modal.analysisDetail .analysis-detail-shell{grid-template-columns:260px minmax(0,1fr);gap:12px;height:100%;min-height:0;display:grid}.prototype-modal.analysisDetail .analysis-control-panel{border:1px solid var(--railway-color-border-default);background:var(--railway-color-bg-panel);padding:12px;overflow:auto}.prototype-modal.analysisDetail .info-row{border:1px solid var(--railway-color-border-subtle);grid-template-columns:1fr 1fr;gap:12px;padding:12px;display:grid}.prototype-modal.analysisDetail .analysis-data-source{color:var(--railway-color-text-tertiary);margin-top:8px;display:block}.prototype-modal.analysisDetail .analysis-side-tabs{grid-template-columns:1fr;gap:8px;display:grid}.prototype-modal.analysisDetail .chip{cursor:pointer;min-height:36px;color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-default);background:var(--railway-color-control-surface);border-radius:4px}.prototype-modal.analysisDetail .chip.is-active{color:var(--railway-color-on-accent);background:var(--railway-color-control-selected);border-color:var(--railway-color-control-selected)}.prototype-modal.analysisDetail .date-input{color:var(--railway-color-text-primary);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;min-width:0}.prototype-modal.analysisDetail .heat-map-cesium{min-height:360px;position:relative;overflow:hidden}.prototype-modal.analysisDetail .heat-map-cesium .railway-map-wrap{width:100%;height:100%;position:absolute;inset:0}.prototype-modal.analysisDetail .analysis-module-panel{padding:12px}.prototype-modal.analysisDetail .analysis-main-panel.is-module{flex-direction:column;display:flex}.prototype-modal.analysisDetail .analysis-filter-row.is-hidden{display:none}.prototype-modal.analysisDetail .stat-chart{height:300px}.prototype-modal.analysisDetail .heat-legend .lg1{background:var(--railway-color-status-warning)}.prototype-modal.analysisDetail .heat-legend .lg2{background:var(--railway-color-status-severe)}.prototype-modal.analysisDetail .heat-legend .lg3{background:var(--railway-color-status-danger)}.prototype-modal-root.device{padding:var(--railway-spacing-16);background:var(--railway-color-bg-scrim)}.prototype-modal.device{width:min(1600px,100vw - 32px);height:min(860px,100vh - 32px);color:var(--railway-color-text-primary);border-radius:var(--railway-radius-08);background:var(--railway-color-bg-canvas);outline:1px solid var(--railway-color-border-subtle);box-shadow:none;font-family:var(--railway-font-family-cn);border:0;grid-template-rows:48px minmax(0,1fr)}.prototype-modal.device .prototype-modal-head{min-height:48px;padding:0 var(--railway-spacing-16);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel-elevated)}.prototype-modal.device .prototype-modal-head h2{font-size:22px;font-weight:var(--railway-font-weight-medium);line-height:30px}.prototype-modal.device .prototype-modal-head>button{width:24px;height:24px;color:var(--railway-color-text-secondary);background:0 0;border:0;border-radius:0}.prototype-modal.device .prototype-modal-head>button:hover{color:var(--railway-color-text-primary);background:var(--railway-color-border-subtle)}.prototype-modal.device .prototype-modal-body{gap:var(--railway-spacing-12);min-height:0;padding:var(--railway-spacing-16);flex-direction:column;display:flex;overflow:hidden}.device-list-search-field{gap:var(--railway-spacing-06);flex-direction:column;flex:none;width:560px;max-width:100%;display:flex}.device-list-search-field label{color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);line-height:18px}.device-list-search-field input{width:100%;height:36px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-body);outline:none;padding:0 12px;line-height:22px}.device-list-search-field input::placeholder{color:var(--railway-color-text-tertiary)}.device-list-search-field input:focus-visible{border-color:var(--railway-color-control-selected);outline:2px solid var(--railway-color-border-default);outline-offset:2px}.device-list-filters{align-items:center;gap:var(--railway-spacing-08);flex:0 0 24px;height:24px;display:flex}.device-list-filters button{width:56px;height:24px;color:var(--railway-color-text-secondary);cursor:pointer;font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium);background:0 0;border:0;border-radius:999px;padding:0;line-height:22px}.device-list-filters button:hover,.device-list-filters button.active{color:var(--railway-color-text-primary);background:var(--railway-color-bg-table-header)}.prototype-modal.device .device-list-layout{gap:var(--railway-spacing-12);flex:auto;grid-template-columns:minmax(0,996px) minmax(0,560px);height:auto;min-height:0;display:grid}.prototype-modal.device .device-list-grid{border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel);min-width:0;overflow:hidden auto}.prototype-modal.device .device-list-grid .head,.prototype-modal.device .device-list-grid>button,.prototype-modal.device .device-list-grid .device-list-skeleton-row{grid-template-columns:200px 160px 220px 96px 70px 70px minmax(178px,1fr);align-items:center;padding:0;display:grid}.prototype-modal.device .device-list-skeleton-group{position:relative}.prototype-modal.device .device-list-skeleton-row{width:100%;min-height:48px;color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel)}.prototype-modal.device .device-list-skeleton-row>span{min-width:0;padding:0 var(--railway-spacing-08)}.prototype-modal.device .device-list-skeleton-row .railway-skeleton{max-width:100%}.prototype-modal.device .device-list-grid .head{z-index:1;height:42px;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-table-header);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-semibold);line-height:22px;position:sticky;top:0}.prototype-modal.device .device-list-grid>button{width:100%;min-height:48px;color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium);text-align:left;line-height:22px}.prototype-modal.device .device-list-grid .head>span,.prototype-modal.device .device-list-grid>button>span{min-width:0;padding:0 var(--railway-spacing-08);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.prototype-modal.device .device-list-grid>button>span:nth-child(4),.prototype-modal.device .device-list-grid>button>span:nth-child(7){font-family:var(--railway-font-family-number);font-variant-numeric:tabular-nums;letter-spacing:-.2px}.prototype-modal.device .device-list-grid>button:hover{color:var(--railway-color-text-secondary);background:var(--railway-color-bg-table-header)}.prototype-modal.device .device-list-grid>button.active{color:var(--railway-color-text-primary);background:var(--railway-color-accent-soft);box-shadow:none}.prototype-modal.device .device-list-grid .device-status-online,.prototype-modal.device .device-list-grid .device-fault-normal{color:var(--railway-color-status-success)}.prototype-modal.device .device-list-grid .device-status-offline,.prototype-modal.device .device-list-grid .device-fault-alarm{color:var(--railway-color-status-danger)}.prototype-modal.device .device-list-grid .device-fault-warning{color:var(--railway-color-status-warning)}.prototype-modal.device .device-list-grid>p{padding:var(--railway-spacing-16);color:var(--railway-color-text-tertiary);font-size:var(--railway-font-size-body);margin:0}.prototype-modal.device .device-list-map{border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel);min-width:0;min-height:0}.prototype-modal.device .device-list-map-tip{z-index:8;top:var(--railway-spacing-12);left:var(--railway-spacing-12);gap:var(--railway-spacing-04);padding:var(--railway-spacing-08) var(--railway-spacing-12);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);pointer-events:none;display:grid;position:absolute}.prototype-modal.device .device-list-map-tip b{font-size:var(--railway-font-size-body)}.prototype-modal.device .device-list-map-tip span{color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation)}@media (width<=1500px){.prototype-modal.device .device-list-layout{grid-template-rows:minmax(260px,auto) minmax(480px,1fr);grid-template-columns:minmax(0,1fr);overflow:auto}.prototype-modal.device .device-list-grid{min-height:260px}.prototype-modal.device .device-list-map{min-height:480px}}.prototype-modal-root.route{padding:var(--railway-spacing-16);background:var(--railway-color-bg-scrim)}.prototype-modal.route{width:min(1700px,100vw - 32px);height:min(860px,100vh - 32px);color:var(--railway-color-text-primary);border-radius:var(--railway-radius-08);background:var(--railway-color-bg-canvas);box-shadow:none;outline:1px solid var(--railway-color-border-subtle);font-family:var(--railway-font-family-cn);border:0;grid-template-rows:48px minmax(0,1fr)}.prototype-modal.route .prototype-modal-head{min-height:48px;padding:0 var(--railway-spacing-16);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel-elevated)}.prototype-modal.route .prototype-modal-head h2{font-size:22px;font-weight:var(--railway-font-weight-medium);line-height:30px}.prototype-modal.route .prototype-modal-head>button{width:24px;height:24px;color:var(--railway-color-text-secondary);background:0 0;border:0;border-radius:0}.prototype-modal.route .prototype-modal-body{gap:var(--railway-spacing-12);min-height:0;padding:var(--railway-spacing-16);grid-template-rows:96px minmax(0,1fr);display:grid;overflow:hidden}.prototype-modal.route .prototype-route-filter-area{gap:var(--railway-spacing-12);border:0;grid-template-rows:44px 40px;height:96px;padding:0;display:grid}.prototype-modal.route .prototype-route-filter-area .prototype-toolbar{align-items:center;gap:var(--railway-spacing-12);flex-wrap:nowrap;min-width:0;height:44px;margin:0;display:flex}.prototype-modal.route .prototype-route-filter-area .prototype-toolbar input{width:300px;min-width:300px;height:36px;margin:0 var(--railway-spacing-12) 0 0;padding:0 var(--railway-spacing-12);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-body);outline:none;flex:0 0 300px}.prototype-modal.route .prototype-route-filter-area .prototype-toolbar input::placeholder{color:var(--railway-color-text-tertiary)}.prototype-modal.route .prototype-route-filter-area .prototype-toolbar button{width:86px;min-width:86px;height:24px;color:var(--railway-color-text-secondary);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0}.prototype-modal.route .prototype-route-filter-area .prototype-toolbar button:hover,.prototype-modal.route .prototype-route-filter-area .prototype-toolbar button.active{color:var(--railway-color-text-primary);background:var(--railway-color-bg-table-header)}.prototype-modal.route .prototype-route-stations{align-items:center;gap:var(--railway-spacing-08);scrollbar-color:var(--railway-color-text-tertiary) var(--railway-color-border-subtle);scrollbar-width:thin;min-width:0;height:40px;display:flex;overflow-x:auto}.prototype-modal.route .prototype-route-stations::-webkit-scrollbar{height:6px}.prototype-modal.route .prototype-route-stations::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.prototype-modal.route .prototype-route-stations::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.prototype-modal.route .prototype-route-stations button{width:auto;min-width:56px;height:24px;padding:0 var(--railway-spacing-08);color:var(--railway-color-text-secondary);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:999px}.prototype-modal.route .prototype-route-stations button:hover,.prototype-modal.route .prototype-route-stations button.active{color:var(--railway-color-text-primary);background:var(--railway-color-bg-table-header);border:0}.prototype-modal.route .prototype-route-map-layout{gap:var(--railway-spacing-12);grid-template-columns:360px minmax(0,1fr);height:672px;min-height:0;margin:0;display:grid}.prototype-modal.route .prototype-route-map-layout>aside{gap:var(--railway-spacing-08);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel);border:0;flex-direction:column;min-height:0;padding:10px;display:flex;overflow:hidden auto}.prototype-filter-skeleton{align-items:center;gap:var(--railway-spacing-06);min-width:0;display:inline-flex}.prototype-filter-skeleton .railway-skeleton{flex:none}.prototype-station-filter-skeleton{flex:none;overflow:hidden}.prototype-modal.route .prototype-route-map-layout>aside .route-device-table-head{width:100%;height:40px;min-height:40px;padding:0 0 0 var(--railway-spacing-16);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04) var(--railway-radius-04) 0 0;background:var(--railway-color-bg-table-header);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-semibold);flex:0 0 40px;grid-template-columns:146px 54px 54px 54px;align-items:center;display:grid}.prototype-modal.route .prototype-route-map-layout>aside .route-device-table-head span{text-align:center;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.prototype-modal.route .prototype-route-map-layout>aside .route-device-table-head span:first-child{text-align:left}.prototype-modal.route .prototype-route-map-layout>aside>button{width:100%;height:52px;min-height:52px;padding:0 0 0 var(--railway-spacing-16);color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);text-align:left;cursor:pointer;flex:0 0 52px;grid-template-columns:146px 54px 54px 54px;align-items:center;display:grid}.prototype-modal.route .prototype-route-map-layout>aside .route-device-skeleton-group{gap:var(--railway-spacing-08);flex-direction:column;min-height:0;display:flex}.prototype-modal.route .prototype-route-map-layout>aside .route-device-skeleton-row{width:100%;height:52px;min-height:52px;padding:0 0 0 var(--railway-spacing-16);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);flex:0 0 52px;grid-template-columns:146px 54px 54px 54px;align-items:center;display:grid}.prototype-modal.route .route-device-skeleton-row .railway-skeleton{max-width:calc(100% - var(--railway-spacing-08));justify-self:center}.prototype-modal.route .route-device-skeleton-row .railway-skeleton:first-child{justify-self:start}.prototype-modal.route .prototype-route-map-layout>aside>button:hover,.prototype-modal.route .prototype-route-map-layout>aside>button.active{color:var(--railway-color-text-primary);border-color:var(--railway-color-status-danger);background:var(--railway-color-bg-panel-elevated)}.prototype-modal.route .prototype-route-map-layout>aside>button span{min-width:0;font-family:var(--railway-font-family-number);font-size:var(--railway-font-size-body);font-variant-numeric:tabular-nums;font-weight:var(--railway-font-weight-medium);text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.prototype-modal.route .prototype-route-map-layout .route-device-name{font-family:var(--railway-font-family-cn);text-align:left}.prototype-modal.route .prototype-route-map-layout .route-device-online{color:var(--railway-color-status-success)}.prototype-modal.route .prototype-route-map-layout .route-device-abnormal{color:var(--railway-color-status-danger)}.prototype-modal.route .prototype-route-map-layout>aside>p{padding:var(--railway-spacing-16);color:var(--railway-color-text-tertiary);text-align:center;margin:0}.prototype-modal.route .prototype-route-map-layout .prototype-device-map{border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel);min-width:0;min-height:0}.prototype-modal.route .prototype-device-map-tip{box-shadow:none;background:0 0;border:0;padding:0;top:18px;left:18px}.prototype-modal.route .prototype-device-map-tip b{color:var(--railway-color-text-primary);font-size:18px;font-weight:var(--railway-font-weight-medium);line-height:26px}@media (width<=1180px){.prototype-modal.route .prototype-route-map-layout{grid-template-columns:minmax(0,1fr);overflow:auto}}.prototype-modal-root.patrol{padding:var(--railway-spacing-16);background:var(--railway-color-bg-scrim)}.prototype-modal.patrol{width:min(1700px,100vw - 32px);height:min(860px,100vh - 32px);color:var(--railway-color-text-primary);border-radius:var(--railway-radius-08);background:var(--railway-color-bg-panel);box-shadow:none;outline:1px solid var(--railway-color-border-subtle);font-family:var(--railway-font-family-cn);border:0;grid-template-rows:48px minmax(0,1fr)}.prototype-modal.patrol .prototype-modal-head{min-height:48px;padding:0 var(--railway-spacing-16);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel-elevated)}.prototype-modal.patrol .prototype-modal-head h2{font-size:22px;font-weight:var(--railway-font-weight-medium);line-height:30px}.prototype-modal.patrol .prototype-modal-head>button{width:24px;height:24px;color:var(--railway-color-text-secondary);background:0 0;border:0;border-radius:0}.prototype-modal.patrol .prototype-modal-body{min-height:0;padding:var(--railway-spacing-16);overflow:hidden}.prototype-modal.patrol .prototype-patrol{gap:var(--railway-spacing-12);grid-template-columns:650px minmax(0,1fr);width:100%;height:780px;display:grid}.prototype-modal.patrol .prototype-patrol>aside{height:780px;min-height:0;padding:var(--railway-spacing-12);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel);border:0;flex-direction:column;gap:10px;display:flex;overflow:hidden}.prototype-modal.patrol .patrol-route-select{width:100%;height:26px;color:var(--railway-color-text-primary);font-family:var(--railway-font-family-cn);font-size:18px;font-weight:var(--railway-font-weight-medium);background:0 0;border:0;outline:none;flex:0 0 26px;padding:0 28px 0 0;line-height:26px}.prototype-modal.patrol .patrol-route-select option{color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel-elevated)}.prototype-modal.patrol .patrol-control-row{gap:var(--railway-spacing-08);flex:0 0 32px;height:32px;display:flex}.prototype-modal.patrol .patrol-control-row button{width:88px;height:32px;color:var(--railway-color-accent);border:1px solid var(--railway-color-accent);background:var(--railway-color-bg-panel-elevated);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium);border-radius:999px;padding:0 10px}.prototype-modal.patrol .patrol-control-row button.primary{color:var(--railway-color-on-accent);background:var(--railway-color-accent)}.prototype-modal.patrol .patrol-progress-card{gap:var(--railway-spacing-08);width:100%;height:96px;padding:var(--railway-spacing-12);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel);flex-direction:column;flex:0 0 96px;display:flex}.prototype-modal.patrol .patrol-progress-card>div:first-child{justify-content:space-between;align-items:center;height:20px;display:flex}.prototype-modal.patrol .patrol-progress-card span{color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation);line-height:18px}.prototype-modal.patrol .patrol-progress-card strong{color:var(--railway-color-accent);font-family:var(--railway-font-family-number);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium)}.prototype-modal.patrol .patrol-progress{background:var(--railway-color-bg-panel-elevated);border-radius:999px;flex:0 0 8px;width:100%;height:8px;margin:0;overflow:hidden}.prototype-modal.patrol .patrol-progress i{background:var(--railway-color-control-selected);border-radius:999px;height:8px;transition:width .3s;display:block}.prototype-modal.patrol .patrol-progress-card small{width:100%;color:var(--railway-color-text-tertiary);font-size:var(--railway-font-size-annotation);text-overflow:ellipsis;white-space:nowrap;line-height:18px;display:block;overflow:hidden}.prototype-modal.patrol .patrol-task-list{gap:var(--railway-spacing-08);flex-direction:column;flex:1;min-height:0;max-height:none;margin:0;padding:0;display:flex;overflow-y:auto}.prototype-modal.patrol .patrol-task-card{gap:var(--railway-spacing-06);width:100%;height:104px;min-height:104px;padding:var(--railway-spacing-12);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-text-tertiary);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel);text-align:left;flex-direction:column;flex:0 0 104px;margin:0;display:flex}.prototype-modal.patrol .patrol-task-card.is-active{color:var(--railway-color-text-primary);border-color:var(--railway-color-status-success);background:var(--railway-color-bg-panel)}.prototype-modal.patrol .patrol-task-card.is-done{border-color:var(--railway-color-control-selected)}.prototype-modal.patrol .patrol-task-card b{width:100%;font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium);text-overflow:ellipsis;white-space:nowrap;line-height:22px;overflow:hidden}.prototype-modal.patrol .patrol-task-card small{width:100%;color:var(--railway-color-text-secondary);font-family:var(--railway-font-family-number);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.prototype-modal.patrol .patrol-task-card span{color:var(--railway-color-text-tertiary);font-size:var(--railway-font-size-annotation);line-height:18px}.prototype-modal.patrol .patrol-task-card.is-active span{color:var(--railway-color-status-success);font-weight:var(--railway-font-weight-medium)}.prototype-modal.patrol .prototype-patrol>section{flex-direction:column;align-items:stretch;gap:10px;min-width:0;height:780px;min-height:0;display:flex;overflow:hidden}.prototype-modal.patrol .patrol-main{border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);flex-direction:column;flex:none;width:100%;height:auto;display:flex;position:relative;overflow:hidden}.prototype-modal.patrol .patrol-video-surface{aspect-ratio:16/9;background:var(--railway-color-bg-canvas);flex:none;width:100%;height:auto;position:relative}.prototype-modal.patrol .patrol-media-skeleton{z-index:1;pointer-events:none;position:absolute;inset:0}.prototype-modal.patrol .patrol-media-skeleton .railway-skeleton{width:100%;height:100%}.prototype-modal.patrol .patrol-progress-card>.patrol-progress-skeleton:first-child{align-items:center;gap:var(--railway-spacing-08);grid-template-columns:minmax(0,1fr) auto;height:auto;min-height:0;display:grid}.prototype-modal.patrol .patrol-progress-skeleton .railway-skeleton:nth-child(3),.prototype-modal.patrol .patrol-progress-skeleton .railway-skeleton:nth-child(4){grid-column:1/-1}.prototype-modal.patrol .patrol-task-skeleton-group{gap:var(--railway-spacing-08);display:grid}.prototype-modal.patrol .patrol-task-skeleton{align-content:center;gap:var(--railway-spacing-06);height:104px;min-height:104px;padding:var(--railway-spacing-12);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);display:grid}.prototype-modal.patrol .patrol-mini-skeleton{gap:var(--railway-spacing-06);min-width:0;min-height:0;padding:0 var(--railway-spacing-08) var(--railway-spacing-06);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);grid-template-rows:minmax(0,1fr) 32px;display:grid;position:relative;overflow:hidden}.prototype-modal.patrol .patrol-mini-skeleton>.railway-skeleton-media{width:calc(100% + var(--railway-spacing-16));aspect-ratio:16/9;height:auto;margin:0 calc(var(--railway-spacing-08) * -1)}.prototype-modal.patrol .patrol-video-surface video,.prototype-modal.patrol .patrol-mini-video-surface video{object-fit:cover;background:var(--railway-color-bg-canvas);width:100%;height:100%;display:block}.prototype-modal.patrol .patrol-video-metadata{justify-content:space-between;align-items:center;gap:var(--railway-spacing-06);width:100%;height:32px;padding:0 var(--railway-spacing-08);background:var(--railway-color-bg-panel-elevated);flex:0 0 32px;display:flex}.prototype-modal.patrol .patrol-video-metadata b{min-width:0;color:var(--railway-color-text-primary);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium);text-overflow:ellipsis;white-space:nowrap;flex:1;line-height:22px;overflow:hidden}.prototype-modal.patrol .patrol-video-metadata span:not(.railway-skeleton){min-width:34px;height:20px;color:var(--railway-color-chip-green-text);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-chip-green-bg);font-size:10px;font-weight:var(--railway-font-weight-medium);border-radius:999px;place-items:center;padding:0 5px;display:grid}.prototype-modal.patrol .patrol-video-metadata span.offline{color:var(--railway-color-chip-red-text);background:var(--railway-color-chip-red-bg)}.prototype-modal.patrol .patrol-minis{gap:var(--railway-spacing-08);flex:none;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;height:auto;display:grid;overflow:hidden}.prototype-modal.patrol .patrol-minis>button{min-width:0;height:auto;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);text-align:left;flex-direction:column;padding:0;display:flex;position:relative;overflow:hidden}.prototype-modal.patrol .patrol-minis>button.active{border-color:var(--railway-color-control-selected);box-shadow:none}.prototype-modal.patrol .patrol-mini-video-surface{aspect-ratio:16/9;background:var(--railway-color-bg-canvas);flex:none;width:100%;height:auto}@media (width<=1280px){.prototype-modal.patrol .prototype-patrol{grid-template-columns:420px minmax(0,1fr)}.prototype-modal.patrol .patrol-main{width:100%}}.prototype-modal-root.videoWall{padding:var(--railway-spacing-16);background:var(--railway-color-bg-scrim)}.video-modal-mask{background:var(--railway-color-bg-scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.video-modal{border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-08);background:var(--railway-color-bg-panel);width:min(1500px,100vw - 64px);height:min(760px,100vh - 64px);box-shadow:0 24px 70px var(--railway-color-shadow);grid-template-rows:48px minmax(0,1fr)}.video-modal-head{min-height:48px;padding:0 var(--railway-spacing-16);border-bottom:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel-elevated)}.video-modal-head h2{color:var(--railway-color-text-primary);font-size:22px;line-height:30px;font-weight:var(--railway-font-weight-medium);margin:0}.video-modal-body{gap:var(--railway-spacing-12);padding:var(--railway-spacing-16);grid-template-columns:360px minmax(0,1fr)}.video-device-detail>div{min-height:40px;padding:0 var(--railway-spacing-12);color:var(--railway-color-text-secondary);border:0;border-bottom:1px solid var(--railway-color-border-subtle);background:0 0}.video-device-detail b{color:var(--railway-color-text-primary)}.video-device-detail span{color:var(--railway-color-text-secondary)}.video-device-detail p{color:var(--railway-color-text-secondary);border-left:2px solid var(--railway-color-control-selected);background:0 0}.video-detail-stage{border-color:var(--railway-color-border-subtle);background:var(--railway-color-bg-canvas)}.video-detail-title{color:var(--railway-color-text-primary);background:var(--railway-color-bg-panel-elevated)}.video-detail-fullscreen{height:28px;color:var(--railway-color-on-accent);border:1px solid var(--railway-color-control-selected);background:var(--railway-color-control-selected);border-radius:999px}.video-modal-close{width:32px;height:32px;color:var(--railway-color-text-secondary);background:0 0;border:0}.video-modal-player{background:var(--railway-color-bg-canvas)}.prototype-modal.videoWall{width:min(1700px,100vw - 32px);height:min(860px,100vh - 32px);color:var(--railway-color-text-primary);border-radius:var(--railway-radius-08);background:var(--railway-color-bg-panel);box-shadow:none;outline:1px solid var(--railway-color-border-subtle);font-family:var(--railway-font-family-cn);border:0;grid-template-rows:48px minmax(0,1fr)}.prototype-modal.videoWall .prototype-modal-head{min-height:48px;padding:0 var(--railway-spacing-16);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-bg-panel-elevated)}.prototype-modal.videoWall .prototype-modal-head h2{font-size:22px;font-weight:var(--railway-font-weight-medium);line-height:30px}.prototype-modal.videoWall .prototype-modal-head>button{width:24px;height:24px;color:var(--railway-color-text-secondary);background:0 0;border:0;border-radius:0}.prototype-modal.videoWall .prototype-modal-body{min-height:0;padding:var(--railway-spacing-16);overflow:hidden}.prototype-modal.videoWall .prototype-video-wall{gap:var(--railway-spacing-12);grid-template-rows:minmax(0,1fr);grid-template-columns:300px minmax(0,1fr);width:100%;height:780px;display:grid}.prototype-modal.videoWall .prototype-video-wall>aside{align-content:initial;gap:var(--railway-spacing-08);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel);scrollbar-color:var(--railway-color-text-tertiary) var(--railway-color-border-subtle);scrollbar-width:thin;border:0;flex-direction:column;grid-area:1/1;height:780px;min-height:0;padding:10px;display:flex;overflow:hidden auto}.prototype-modal.videoWall .prototype-video-wall>aside::-webkit-scrollbar{width:6px;height:6px}.prototype-modal.videoWall .prototype-wall-grid::-webkit-scrollbar{width:6px;height:6px}.prototype-modal.videoWall .prototype-video-wall>aside::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.prototype-modal.videoWall .prototype-wall-grid::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.prototype-modal.videoWall .prototype-video-wall>aside::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.prototype-modal.videoWall .prototype-wall-grid::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.prototype-modal.videoWall .prototype-video-wall-search{gap:var(--railway-spacing-06);width:100%;color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);flex-direction:column;flex:0 0 60px;line-height:18px;display:flex}.prototype-modal.videoWall .prototype-video-wall-search>span{color:var(--railway-color-text-secondary)}.prototype-modal.videoWall .video-wall-device-skeleton-group{gap:var(--railway-spacing-08);display:grid}.prototype-modal.videoWall .video-wall-device-skeleton-row{align-content:center;gap:var(--railway-spacing-04);min-height:52px;padding:var(--railway-spacing-06) var(--railway-spacing-08);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);flex:0 0 52px;display:grid}.prototype-modal.videoWall .video-wall-device-skeleton-row .railway-skeleton{max-width:100%}.prototype-modal.videoWall .prototype-wall-slot-skeleton,.prototype-modal.videoWall .prototype-wall-slot-error{place-items:center;gap:var(--railway-spacing-08);min-width:0;min-height:0;padding:var(--railway-spacing-12);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-canvas);display:grid;position:relative;overflow:hidden}.prototype-modal.videoWall .prototype-wall-slot-skeleton>.railway-skeleton-media,.prototype-modal.videoWall .prototype-wall-slot-skeleton>.railway-skeleton{width:100%;height:100%}.prototype-modal.videoWall .prototype-wall-slot-skeleton>.railway-skeleton-media{position:absolute;inset:0}.prototype-modal.videoWall .prototype-wall-slot-skeleton>.railway-skeleton:not(.railway-skeleton-media){right:var(--railway-spacing-08);bottom:var(--railway-spacing-08);left:var(--railway-spacing-08);z-index:1;width:auto;height:var(--railway-spacing-12);position:absolute}.prototype-modal.videoWall .prototype-wall-slot-error .feedback-state{margin:0}.prototype-modal.videoWall .prototype-video-wall-search input{width:100%;min-width:0;height:36px;padding:0 var(--railway-spacing-12);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-body);outline:none}.prototype-modal.videoWall .prototype-video-wall-search input::placeholder{color:var(--railway-color-text-tertiary)}.prototype-modal.videoWall .prototype-video-wall>aside>button{justify-content:center;gap:var(--railway-spacing-04);width:100%;height:52px;min-height:52px;padding:var(--railway-spacing-04) var(--railway-spacing-08);color:var(--railway-color-text-primary);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);text-align:left;border:0;flex-direction:column;flex:0 0 52px;display:flex}.prototype-modal.videoWall .prototype-video-wall>aside>button.active{color:var(--railway-color-text-primary);background:var(--railway-color-accent-soft);box-shadow:inset 0 0 0 1px var(--railway-color-accent);border:0}.prototype-modal.videoWall .prototype-video-wall>aside>button b{width:100%;font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-semibold);text-overflow:ellipsis;white-space:nowrap;line-height:22px;overflow:hidden}.prototype-modal.videoWall .prototype-video-wall>aside>button span{width:100%;color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);text-overflow:ellipsis;white-space:nowrap;line-height:18px;overflow:hidden}.prototype-modal.videoWall .prototype-video-wall>section{flex-direction:column;grid-area:1/2;gap:10px;min-width:0;height:780px;min-height:0;display:flex;overflow:hidden}.prototype-modal.videoWall .prototype-video-wall>section>.prototype-toolbar{gap:var(--railway-spacing-08);width:460px;height:44px;min-height:44px;padding:var(--railway-spacing-06);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);flex:0 0 44px;grid-template-columns:repeat(4,1fr);margin:0;display:grid}.prototype-modal.videoWall .prototype-video-wall>section>.prototype-toolbar button{width:100%;min-width:0;height:32px;color:var(--railway-color-text-primary);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);cursor:pointer;border:0;padding:0}.prototype-modal.videoWall .prototype-video-wall>section>.prototype-toolbar button.active{color:var(--railway-color-text-primary);background:var(--railway-color-accent-soft);box-shadow:inset 0 0 0 1px var(--railway-color-accent);border:0}.prototype-modal.videoWall .prototype-video-wall>section>.prototype-toolbar button:disabled{color:var(--railway-color-text-tertiary);cursor:default}.prototype-modal.videoWall .prototype-wall-grid{gap:var(--railway-spacing-08);flex:0 0 510.5px;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));width:100%;height:510.5px;min-height:0;display:grid}.prototype-modal.videoWall .prototype-wall-grid.layout-12{grid-template-rows:repeat(3,minmax(0,1fr));grid-template-columns:repeat(4,minmax(0,1fr))}.prototype-modal.videoWall .prototype-wall-grid>div{border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-canvas);min-width:0;min-height:0;position:relative;overflow:hidden}.prototype-modal.videoWall .prototype-wall-grid>div.selected{border:2px solid var(--railway-color-accent);box-shadow:0 0 0 2px color-mix(in srgb, var(--railway-color-accent) 30%, transparent)}.prototype-modal.videoWall .prototype-wall-grid>div.alert{border-color:var(--railway-color-status-danger)}.prototype-modal.videoWall .prototype-wall-grid>div>div{height:100%;color:var(--railway-color-text-tertiary);background:var(--railway-color-bg-canvas);place-items:center;display:grid;position:absolute;inset:0}.prototype-modal.videoWall .prototype-wall-player{object-fit:cover;background:var(--railway-color-bg-canvas);width:100%;height:100%;display:block}.prototype-modal.videoWall .prototype-wall-grid>div>b{z-index:2;padding:var(--railway-spacing-12) var(--railway-spacing-08) var(--railway-spacing-06);color:var(--railway-color-text-primary);background:linear-gradient(180deg, transparent, var(--railway-color-bg-canvas));font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);text-align:left;text-overflow:ellipsis;white-space:nowrap;line-height:18px;display:block;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.prototype-modal.videoWall .prototype-wall-grid>div.alert>b,.prototype-modal.videoWall .prototype-wall-grid>div.selected>b{color:var(--railway-color-text-primary)}.prototype-modal.videoWall .prototype-wall-grid>.prototype-wall-slot-empty{border-color:var(--railway-color-text-tertiary);place-items:center;display:grid}.prototype-modal.videoWall .prototype-wall-grid>.prototype-wall-slot-empty>b{color:var(--railway-color-text-tertiary);background:0 0;padding:0;position:static;transform:none}.prototype-modal.videoWall .video-wall-fullscreen-button{top:var(--railway-spacing-08);right:var(--railway-spacing-08);z-index:3;height:24px;color:var(--railway-color-accent);border:1px solid var(--railway-color-accent);background:var(--railway-color-bg-panel-elevated);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-annotation);cursor:pointer;border-radius:999px;padding:0 10px;position:absolute}.prototype-modal.videoWall .prototype-wall-grid>div:fullscreen{padding:var(--railway-spacing-24);background:var(--railway-color-bg-canvas)}.prototype-modal.videoWall .prototype-wall-grid>div:fullscreen .video-wall-fullscreen-button{top:var(--railway-spacing-16);right:var(--railway-spacing-16)}.prototype-modal.videoWall .prototype-video-wall-page{color:var(--railway-color-text-secondary);font-family:var(--railway-font-family-number);font-size:var(--railway-font-size-annotation);font-style:normal;font-weight:var(--railway-font-weight-medium);line-height:18px}@media (width<=1180px){.prototype-modal.videoWall .prototype-video-wall{grid-template-columns:260px minmax(0,1fr)}}.screen{--dashboard-header-height:56px;--dashboard-side-design-height:1024px;--dashboard-side-width:464px;color:var(--railway-color-text-primary);background:var(--railway-color-bg-canvas)}.header{height:56px;padding:0 var(--railway-spacing-16);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);background-image:url(/assets/dashboard-header-bg-vfnjn_kv.png), var(--railway-panel-header-gradient);box-shadow:none;background-position:50%,50%;background-repeat:no-repeat;background-size:cover,100% 100%;justify-content:flex-end}.header:after{display:none}.header h1{font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-product-title);font-weight:var(--railway-font-weight-medium);letter-spacing:2px;text-shadow:none;line-height:56px;position:absolute;left:50%;transform:translate(-50%)}.header-actions{gap:var(--railway-spacing-16);color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation)}.header-actions time{color:var(--railway-color-text-tertiary);font-family:var(--railway-font-family-number);letter-spacing:0}.header-actions .header-user{align-items:center;gap:var(--railway-spacing-04);height:30px;padding:var(--railway-spacing-04) var(--railway-spacing-08);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-control-surface);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium);border-radius:999px;display:inline-flex}.header-actions .header-user .app-icon{width:16px;height:16px}.dashboard{grid-template-columns:var(--dashboard-side-width) minmax(0, 1fr) var(--dashboard-side-width);position:absolute}.monitor-left-side{grid-column:1}.monitor-right-side{grid-column:3}.dashboard>.map-area{z-index:0;background:var(--railway-color-bg-canvas);width:100%;height:100%;position:absolute;inset:0}.dashboard>.map-area:after{content:"";z-index:5;pointer-events:none;background:linear-gradient(90deg, color-mix(in srgb, var(--railway-color-shadow-base) 55%, transparent), color-mix(in srgb, var(--railway-color-shadow-base) 32%, transparent) 18%, transparent 34%, transparent 66%, color-mix(in srgb, var(--railway-color-shadow-base) 32%, transparent) 82%, color-mix(in srgb, var(--railway-color-shadow-base) 55%, transparent)), linear-gradient(180deg, color-mix(in srgb, var(--railway-color-shadow-base) 24%, transparent), transparent 18%, transparent 82%, color-mix(in srgb, var(--railway-color-shadow-base) 24%, transparent));position:absolute;inset:0}.side,.monitor-left-side,.monitor-right-side{width:464px;height:var(--dashboard-side-design-height);padding:var(--railway-spacing-16);box-shadow:none;z-index:2;background:0 0;border:0}.monitor-left-side,.monitor-right-side{gap:var(--railway-spacing-12);flex-direction:column;display:flex}.monitor-right-side{width:462px}.monitor-panel{min-height:0;color:var(--railway-color-text-primary);border-radius:var(--railway-radius-06);box-shadow:none;outline:1px solid var(--railway-color-border-default);background:0 0;border:0;margin:0;padding:0;overflow:visible}.monitor-camera-panel,.monitor-city-panel{flex:0 0 300px}.monitor-alert-panel{flex:0 0 368px}.monitor-video-panel{flex:0 0 432px}.monitor-trend-panel{background:0 0;border:0;flex:0 0 548px;padding:0}.monitor-panel-title,.monitor-camera-panel .monitor-panel-title,.monitor-city-panel .monitor-panel-title,.monitor-alert-panel .monitor-panel-title,.monitor-video-panel .monitor-panel-title,.monitor-trend-panel .monitor-panel-title{width:100%;height:52px;min-height:52px;padding:var(--railway-spacing-08);border-radius:var(--railway-radius-06) var(--railway-radius-06) 0 0;background:var(--railway-panel-heading-gradient);-webkit-backdrop-filter:none;text-align:left;border:0;justify-content:space-between;align-items:center;display:flex}.monitor-panel-title h2,.monitor-camera-panel .monitor-panel-title h2,.monitor-city-panel .monitor-panel-title h2,.monitor-alert-panel .monitor-panel-title h2,.monitor-video-panel .monitor-panel-title h2,.monitor-trend-panel .monitor-panel-title h2{align-items:center;gap:var(--railway-spacing-12);color:var(--railway-color-accent);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-panel-header-title);font-weight:var(--railway-font-weight-medium);line-height:var(--railway-line-height-panel-header-title);letter-spacing:normal;text-shadow:none;margin:0;display:inline-flex}.monitor-panel-title h2 .app-icon{width:24px;height:24px;color:var(--railway-color-accent)}.monitor-panel-title>button,.monitor-camera-panel .monitor-panel-title>button,.monitor-city-panel .monitor-panel-title>button,.monitor-trend-panel .monitor-panel-title>button{justify-content:center;align-items:center;gap:var(--railway-spacing-02);width:72px;min-width:72px;height:24px;padding:0 var(--railway-spacing-08);color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-subtle);background:var(--railway-color-control-surface);box-shadow:none;line-height:24px;font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);border-radius:999px;display:inline-flex}.monitor-panel-title>button .app-icon{width:16px;height:16px}.monitor-panel-body{border-radius:0 0 var(--railway-radius-06) var(--railway-radius-06);background:var(--railway-color-bg-panel);width:100%;height:calc(100% - 52px);box-shadow:none;-webkit-backdrop-filter:none;border:0;overflow:hidden}.monitor-panel-title>button:hover{color:var(--railway-color-text-primary);border-color:var(--railway-color-control-selected);background:var(--railway-color-control-hover-bg)}.monitor-device-summary{align-items:center;gap:var(--railway-spacing-16);background:0 0;height:160px;padding:0;display:flex}.monitor-camera-panel .monitor-panel-body{padding:var(--railway-spacing-24);flex-direction:column;display:flex}.monitor-device-donut{border-radius:50%;flex:0 0 160px;place-items:center;width:160px;height:160px;display:grid}.monitor-device-donut-hole{background:var(--railway-color-bg-panel-elevated);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:115px;height:115px;display:flex}.monitor-device-donut-hole b{color:var(--railway-color-text-primary);font-family:var(--railway-font-family-number);font-size:var(--railway-font-size-number-xl);font-weight:var(--railway-font-weight-medium);line-height:40px}.monitor-device-donut-hole span{color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation);line-height:18px}.monitor-device-legend{gap:var(--railway-spacing-08);flex-direction:column;width:132px;display:flex}.monitor-device-legend-row{height:34px;color:var(--railway-color-text-primary);justify-content:space-between;align-items:center;display:flex}.monitor-device-legend-label{align-items:center;gap:var(--railway-spacing-08);color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium);display:inline-flex}.monitor-device-legend-label i{background:var(--railway-color-status-success);border-radius:50%;width:10px;height:10px}.monitor-device-legend-label i.offline{background:var(--railway-color-status-warning)}.monitor-device-legend-label i.fault{background:var(--railway-color-status-danger)}.monitor-device-legend-row b{font-family:var(--railway-font-family-number);font-size:var(--railway-font-size-number-l);font-weight:var(--railway-font-weight-medium)}.monitor-camera-rate{align-items:center;column-gap:var(--railway-spacing-08);width:376px;min-width:376px;min-height:0;color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium);flex:auto;grid-template-rows:44px;grid-template-columns:160px 208px;padding:0;display:grid}.monitor-camera-rate>.monitor-camera-rate-header{background:0 0;grid-area:1/1;justify-content:space-between;align-items:center;width:160px;min-width:160px;height:44px;display:flex}.monitor-camera-rate-header>b{color:var(--railway-color-text-primary);font-family:var(--railway-font-family-number);font-size:36px;line-height:44px;font-weight:var(--railway-font-weight-medium)}.monitor-camera-rate>.monitor-camera-rate-segments{background:0 0;grid-area:1/2;align-items:center;gap:3px;width:208px;min-width:208px;height:27px;display:flex}.monitor-camera-rate>.monitor-camera-rate-segments i{border-radius:var(--railway-radius-02);background:0 0;flex:0 0 3px;width:3px;min-width:3px;height:20px}.monitor-camera-rate-segments i.filled{background:var(--railway-color-status-success)}.monitor-city-table-scroll{width:100%;height:100%;margin:0;padding:0;overflow:auto}.monitor-route-list{height:100%;min-height:0;color:var(--railway-color-text-secondary);flex-direction:column;display:flex}.monitor-route-head,.monitor-route-row{text-align:center;grid-template-columns:minmax(0,1.35fr) repeat(3,.72fr);align-items:center;display:grid}.monitor-route-head{height:auto;min-height:0;color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);background-color:var(--railway-color-bg-table-header);background-image:none;border-radius:0;flex:1 1 0}.monitor-route-head b{color:var(--railway-color-text-primary);font-size:var(--railway-font-size-table);font-weight:var(--railway-font-weight-medium)}.monitor-route-body{flex-direction:column;flex:6 1 0;gap:0;min-height:0;margin-top:0;padding:0;display:flex}.monitor-route-row{height:auto;min-height:0;color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-subtle);font-size:var(--railway-font-size-table);box-shadow:none;background:0 0;border-radius:0;flex:1 1 0}.monitor-route-row:hover,.monitor-route-row.active{color:var(--railway-color-text-primary);background:var(--railway-color-control-hover-bg)}.monitor-route-row.active{border-color:var(--railway-color-accent);box-shadow:inset 0 0 0 1px var(--railway-color-accent);background:var(--railway-color-control-surface)}.monitor-route-empty,.monitor-empty{color:var(--railway-color-text-tertiary);font-size:var(--railway-font-size-body);margin:0}.monitor-route-empty{flex:auto;place-items:center;display:grid}.monitor-alert-filters,.monitor-trend-tabs{justify-content:flex-start;align-items:center;gap:var(--railway-spacing-04);height:44px;padding:var(--railway-spacing-08) var(--railway-spacing-16);display:flex}.monitor-alert-panel .monitor-panel-body{flex-direction:column;display:flex}.monitor-alert-filters button,.monitor-trend-tabs button{width:auto;min-width:40px;height:24px;padding:0 var(--railway-spacing-08);color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-body);background:0 0;border:0;border-radius:999px;line-height:1.57143}.monitor-alert-filters button.active,.monitor-trend-tabs button.active{color:var(--railway-color-on-accent);border-color:var(--railway-color-control-selected);background:var(--railway-color-control-selected);box-shadow:none}.monitor-alert-list{min-height:0;padding:0 var(--railway-spacing-12) var(--railway-spacing-12);flex:auto;overflow:auto}.monitor-alert-list .railway-alarm-card{min-height:0;margin-bottom:var(--railway-spacing-12)}.monitor-video-panel .monitor-panel-body{gap:var(--railway-spacing-12);padding:var(--railway-spacing-12);flex-direction:column;display:flex}.monitor-video-grid{gap:var(--railway-spacing-08);scrollbar-color:var(--railway-color-text-tertiary) var(--railway-color-border-subtle);flex:0 0 296px;grid-auto-rows:144px;height:296px;padding:0}.monitor-video-preview{height:112px;color:var(--railway-color-text-tertiary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-canvas);font-size:var(--railway-font-size-annotation);place-items:center;display:grid;position:relative;overflow:hidden}.monitor-video-player{object-fit:cover;width:100%;height:100%;display:block}.monitor-video-card{min-width:0;color:var(--railway-color-text-primary);cursor:pointer;background:0 0;border:0;padding:0}.monitor-video-card>b{height:32px;padding:var(--railway-spacing-06) var(--railway-spacing-08) 0;color:var(--railway-color-text-primary);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium);text-align:left;text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.monitor-video-pager{gap:var(--railway-spacing-08);height:22px;color:var(--railway-color-text-primary);border:0;flex:0 0 22px}.monitor-video-pager button{width:16px;height:16px;color:var(--railway-color-text-primary);background:0 0;border:0;place-items:center;padding:0;display:inline-grid}.monitor-video-pager button .app-icon{width:16px;height:16px}.monitor-video-page-dots{align-items:center;gap:var(--railway-spacing-04);display:inline-flex}.monitor-video-page-dots i{background:var(--railway-color-text-secondary);opacity:.45;border-radius:50%;width:6px;height:6px}.monitor-video-page-dots i.active{background:var(--railway-color-text-primary);opacity:1}.monitor-analysis-stats{gap:var(--railway-spacing-16);width:100%;height:66px;padding:var(--railway-spacing-08) var(--railway-spacing-12);background:0 0;border:0;border-radius:0;flex:0 0 66px;grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.monitor-analysis-stats>div{background:0 0;border:0;grid-template-rows:24px 24px;grid-template-columns:minmax(0,1fr) auto;align-items:center;height:48px;padding:0;display:grid}.monitor-analysis-stats span{color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-regular);grid-column:1}.monitor-analysis-stats b{color:var(--railway-color-text-primary);font-family:var(--railway-font-family-number);font-size:24px;font-weight:var(--railway-font-weight-medium);grid-area:1/2;align-self:center}.monitor-route-row .is-online{color:var(--railway-color-status-success)}.monitor-route-row .is-exception{color:var(--railway-color-status-danger)}.monitor-analysis-stats em{color:var(--railway-color-text-tertiary);font-size:var(--railway-font-size-annotation);font-style:normal;font-weight:var(--railway-font-weight-regular);grid-area:2/1;align-self:center}.monitor-analysis-stats small{color:var(--railway-color-status-success);font-family:var(--railway-font-family-number);font-size:20px;font-weight:var(--railway-font-weight-medium);text-align:right;grid-area:2/2;align-self:center}.monitor-trend-chart{width:100%;height:0;min-height:0;color:var(--railway-color-text-secondary);background:0 0;border:0;border-radius:0;flex:1 1 0;margin:0}.monitor-trend-panel .monitor-panel-body{border-radius:0 0 var(--railway-radius-06) var(--railway-radius-06);background:var(--railway-color-bg-panel);border:0;flex-direction:column;gap:0;display:flex;overflow:hidden}.monitor-trend-panel .monitor-trend-tabs{border:0;border-top:1px solid var(--railway-color-border-default);background:0 0;border-radius:0;flex:0 0 44px;width:100%;height:44px;margin-top:0}.monitor-trend-chart .grid-line{stroke:var(--railway-color-border-subtle)}.monitor-trend-chart .axis-line{stroke:var(--railway-color-border-default)}.monitor-trend-chart .trend-line{fill:none;stroke:var(--railway-color-status-warning);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.monitor-trend-chart .trend-bar{fill:url(#monitor-trend-bar-gradient);stroke:#0000}.monitor-trend-chart circle{fill:var(--railway-color-status-warning);stroke:var(--railway-color-bg-panel-elevated)}.monitor-trend-chart text{fill:var(--railway-color-text-tertiary)}.monitor-trend-chart .trend-value{fill:var(--railway-color-text-primary);font-size:10px}.monitor-trend-chart .trend-label{fill:var(--railway-color-text-secondary);font-size:var(--railway-font-size-chip);font-weight:var(--railway-font-weight-medium)}.dashboard-alarm-notices{z-index:25;top:var(--railway-spacing-16);right:calc(var(--dashboard-side-width) + var(--railway-spacing-16));gap:var(--railway-spacing-08);width:360px;transform:scale(var(--dashboard-side-scale));transform-origin:100% 0;display:grid;position:absolute}.dashboard-alarm-notice{align-items:center;gap:var(--railway-spacing-12);animation:.42s cubic-bezier(.2,.78,.28,1) both dashboard-alarm-item-in;animation-delay:calc(var(--notice-index) * .52s);grid-template-columns:30px minmax(0,1fr) 66px;display:grid;position:relative}@keyframes dashboard-alarm-item-in{0%{opacity:0;transform:translate(70px)}to{opacity:1;transform:translate(0)}}.dashboard-alarm-notice-icon{color:var(--railway-color-status-danger);place-items:center;display:grid}.dashboard-alarm-notice>div{gap:var(--railway-spacing-04);min-width:0;display:grid}.dashboard-alarm-notice dl{gap:var(--railway-spacing-04);min-width:0;margin:0;display:grid}.dashboard-alarm-notice dl>div{grid-template-columns:66px minmax(0,1fr);gap:2px;min-width:0;display:grid}.dashboard-alarm-notice dd{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.dashboard-alarm-notice,.dashboard-alarm-notice.primary{min-height:104px;padding:var(--railway-spacing-12);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);box-shadow:0 8px 22px var(--railway-color-shadow)}.dashboard-alarm-notice.primary{border-color:var(--railway-color-status-danger)}.dashboard-alarm-notice b,.dashboard-alarm-notice dt,.dashboard-alarm-notice dd,.dashboard-alarm-notice.primary dd{color:var(--railway-color-text-primary)}.dashboard-alarm-notice dt,.dashboard-alarm-notice dd{font-size:var(--railway-font-size-annotation)}.dashboard-alarm-notice dt{color:var(--railway-color-text-tertiary)}.dashboard-alarm-notice .dashboard-alarm-notice-view{cursor:pointer;height:38px;color:var(--railway-color-on-accent);border:1px solid var(--railway-color-control-selected);border-radius:var(--railway-radius-04);background:var(--railway-color-control-selected);font-weight:var(--railway-font-weight-medium);margin-top:35px}.dashboard-alarm-notice .dashboard-alarm-notice-view:hover,.dashboard-alarm-notice .dashboard-alarm-notice-close:hover{color:var(--railway-color-text-primary);background:var(--railway-color-control-hover-bg)}.dashboard-alarm-notice .dashboard-alarm-notice-close{width:24px;height:24px;color:var(--railway-color-text-secondary);cursor:pointer;background:0 0;border:0;padding:0;font-size:20px;line-height:24px;position:absolute;top:7px;right:8px}.monitor-city-table-scroll,.monitor-alert-list,.monitor-video-grid{scrollbar-color:var(--railway-color-text-tertiary) var(--railway-color-border-subtle)}.monitor-city-table-scroll::-webkit-scrollbar-track{background:var(--railway-color-border-subtle)}.monitor-alert-list::-webkit-scrollbar-track{background:var(--railway-color-border-subtle)}.monitor-video-grid::-webkit-scrollbar-track{background:var(--railway-color-border-subtle)}.monitor-city-table-scroll::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary)}.monitor-alert-list::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary)}.monitor-video-grid::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary)}.dashboard .monitor-city-table-scroll,.dashboard .monitor-alert-list,.dashboard .monitor-video-grid,.prototype-modal .prototype-video-wall>aside,.prototype-modal .alarm-location-list,.prototype-modal .alarm-statistics-table-body,.prototype-modal .alarm-type-records>div,.prototype-modal .prototype-route-map-layout>aside,.prototype-modal .prototype-route-stations,.prototype-modal .prototype-patrol aside{scrollbar-width:thin;scrollbar-color:var(--railway-color-text-tertiary) var(--railway-color-border-subtle)}.dashboard .monitor-city-table-scroll::-webkit-scrollbar{width:6px;height:6px}.dashboard .monitor-alert-list::-webkit-scrollbar{width:6px;height:6px}.dashboard .monitor-video-grid::-webkit-scrollbar{width:6px;height:6px}.prototype-modal .prototype-video-wall>aside::-webkit-scrollbar{width:6px;height:6px}.prototype-modal .alarm-location-list::-webkit-scrollbar{width:6px;height:6px}.prototype-modal .alarm-statistics-table-body::-webkit-scrollbar{width:6px;height:6px}.prototype-modal .alarm-type-records>div::-webkit-scrollbar{width:6px;height:6px}.prototype-modal .prototype-route-map-layout>aside::-webkit-scrollbar{width:6px;height:6px}.prototype-modal .prototype-route-stations::-webkit-scrollbar{width:6px;height:6px}.prototype-modal .prototype-patrol aside::-webkit-scrollbar{width:6px;height:6px}.dashboard .monitor-city-table-scroll::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.dashboard .monitor-alert-list::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.dashboard .monitor-video-grid::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.prototype-modal .prototype-video-wall>aside::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.prototype-modal .alarm-location-list::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.prototype-modal .alarm-statistics-table-body::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.prototype-modal .alarm-type-records>div::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.prototype-modal .prototype-route-map-layout>aside::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.prototype-modal .prototype-route-stations::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.prototype-modal .prototype-patrol aside::-webkit-scrollbar-track{background:var(--railway-color-border-subtle);border-radius:999px}.dashboard .monitor-city-table-scroll::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.dashboard .monitor-alert-list::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.dashboard .monitor-video-grid::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.prototype-modal .prototype-video-wall>aside::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.prototype-modal .alarm-location-list::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.prototype-modal .alarm-statistics-table-body::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.prototype-modal .alarm-type-records>div::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.prototype-modal .prototype-route-map-layout>aside::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.prototype-modal .prototype-route-stations::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.prototype-modal .prototype-patrol aside::-webkit-scrollbar-thumb{background:var(--railway-color-text-tertiary);border-radius:999px}.top-metric-skeleton{justify-content:center;align-items:center;gap:var(--railway-spacing-08);width:219px;height:50px;padding:0 var(--railway-spacing-12);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-bg-panel-elevated);display:flex}.top-metric-skeleton .railway-skeleton{flex:none}.top-metrics-error{grid-column:1/-1;justify-self:center;margin:0}.header h1{white-space:nowrap;font-weight:700}.header-actions{gap:22px}.header-actions time{color:var(--railway-color-text-primary);align-items:center;gap:8px;font-size:14px;display:flex}.header-actions time .app-icon{width:20px;height:20px}.header-actions .header-user{gap:10px;height:36px;padding:3px 10px 3px 3px}.header-actions .header-user-avatar{background:var(--railway-color-accent);width:30px;height:30px;color:var(--railway-color-on-accent);border-radius:50%;place-items:center;display:grid}.header-actions .header-user-avatar .app-icon{width:21px;height:21px}.monitor-panel{background:var(--railway-color-bg-panel);border-radius:var(--railway-radius-panel);overflow:hidden}.monitor-panel .monitor-panel-title{border-radius:var(--railway-radius-panel) var(--railway-radius-panel) 0 0;padding:8px 14px}.monitor-panel .monitor-panel-title h2{gap:8px;font-weight:700}.monitor-panel-title h2>.monitor-heading-icon{background:var(--railway-panel-heading-gradient);border-radius:50%;place-items:center;width:36px;height:36px;display:grid}.monitor-panel .monitor-panel-title>button{width:auto;min-width:78px;height:30px;padding:4px 10px}.monitor-panel .monitor-panel-body{background:0 0;border-radius:0}.monitor-camera-panel .monitor-panel-body{padding:16px 22px 12px}.monitor-device-summary{gap:20px;height:172px}.monitor-device-donut{outline:6px solid var(--railway-color-donut-track);flex-basis:160px;width:160px;height:160px;margin:6px}.monitor-device-donut-hole{background:var(--railway-color-bg-panel)}.monitor-device-legend{flex:1}.monitor-device-legend-label{font-size:16px}.monitor-camera-rate{grid-template-columns:192px minmax(0,1fr);width:100%;min-width:0;margin-top:10px}.monitor-camera-rate>.monitor-camera-rate-header{width:192px}.monitor-camera-rate-header>b{font-size:32px}.monitor-camera-rate>.monitor-camera-rate-segments{gap:3px;width:100%;min-width:0}.monitor-camera-rate>.monitor-camera-rate-segments i{flex:1;min-width:0}.monitor-city-panel .monitor-panel-body{padding:8px 16px 12px}.monitor-route-head,.monitor-route-row{border-width:0 0 1px;grid-template-columns:minmax(0,1fr) repeat(3,64px);padding:0 8px}.monitor-route-head{border-radius:6px}.monitor-route-head b{color:var(--railway-color-accent)}.monitor-route-head>:first-child{text-align:left}.monitor-route-row>span:first-child{text-align:left;white-space:nowrap;align-items:center;gap:10px;display:flex}.monitor-route-row>span:first-child .app-icon{flex-shrink:0;width:18px;height:18px}.monitor-alert-filters{gap:6px;padding:8px 12px 4px}.monitor-alert-filters button{background:var(--railway-color-bg-table-header);border-radius:12px;height:30px;padding:0 16px;font-weight:600}.monitor-alert-list .railway-alarm-card{border-radius:8px;grid-template-columns:24px minmax(0,1fr) auto;gap:12px;min-height:58px;margin-bottom:6px;padding:7px 10px}.monitor-alert-list .railway-alarm-source-icon,.monitor-alert-list .railway-alarm-source-icon .app-icon{width:24px;height:24px}.monitor-alert-list .railway-alarm-card-head b{font-size:16px}.monitor-alert-list .railway-alarm-status-chip{height:28px;padding:4px 8px;font-size:12px;line-height:20px}.monitor-video-panel .monitor-panel-body{gap:10px;padding:12px 16px 8px}.monitor-video-grid{flex-basis:322px;grid-auto-rows:154px;gap:14px;height:322px}.monitor-video-preview{background:var(--railway-color-bg-table-header);border:0;border-radius:6px;height:118px}.monitor-video-unavailable{color:var(--railway-color-text-secondary);flex-direction:column;align-items:center;gap:8px;font-size:14px;display:flex}.monitor-video-unavailable .app-icon{width:34px;height:34px;color:var(--railway-color-text-tertiary)}.monitor-video-details{align-items:center;gap:4px;height:36px;font-size:12px;display:flex}.monitor-video-details b{text-overflow:ellipsis;white-space:nowrap;text-align:left;flex:1;min-width:0;font-weight:500;overflow:hidden}.monitor-video-status{color:var(--railway-color-text-secondary);flex-shrink:0;align-items:center;gap:3px;display:inline-flex}.monitor-video-status i{background:currentColor;border-radius:50%;width:5px;height:5px}.monitor-video-status.is-online{color:var(--railway-color-status-success)}.monitor-video-status.is-offline{color:var(--railway-color-status-danger)}.monitor-video-page-dots i.active{background:var(--railway-color-accent)}.monitor-video-pager button:disabled{opacity:.4;cursor:default}.monitor-trend-panel .monitor-trend-tabs{background:var(--railway-color-bg-table-header);border-top:0;border-radius:10px;flex-basis:32px;gap:2px;width:calc(100% - 32px);height:32px;margin:16px 16px 0;padding:0}.monitor-trend-tabs button{border-radius:8px;flex:1;height:32px;padding:0 4px}.monitor-trend-chart{padding:0 16px 16px}.monitor-trend-legend{height:20px;color:var(--railway-color-text-secondary);font-size:var(--railway-font-size-annotation);justify-content:flex-end;align-items:center;gap:14px;padding:0 16px;display:flex}.monitor-trend-legend span{align-items:center;gap:6px;display:inline-flex}.monitor-trend-legend i{width:8px;height:8px;display:inline-block}.monitor-trend-legend i.bar{background:var(--railway-color-accent)}.monitor-trend-legend i.line{background:var(--railway-color-status-severe);border-radius:50%}.monitor-trend-chart .axis-label{fill:var(--railway-color-text-secondary);font-size:10px}.monitor-trend-chart .trend-line{stroke:var(--railway-color-status-severe)}.monitor-trend-chart circle{fill:var(--railway-color-status-severe)}.monitor-trend-chart .trend-area{fill:none}.dashboard-bottom-nav{--railway-color-accent:var(--railway-color-dashboard-blue);--railway-color-control-selected:var(--railway-color-dashboard-blue)}.dashboard-bottom-actions{box-sizing:border-box;justify-content:center;align-items:center;gap:var(--railway-spacing-06);width:984px;height:44px;padding:var(--railway-spacing-06);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel);box-shadow:0 8px 22px var(--railway-color-shadow);display:flex}.dashboard-bottom-nav{z-index:45;width:984px;max-width:calc(100vw - 32px);position:fixed;bottom:14px;left:50%;transform:translate(-50%)}.dashboard-route-focus{z-index:44;height:26px;padding:var(--railway-spacing-06) var(--railway-spacing-12);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-control-selected);border-radius:var(--railway-radius-04);background:color-mix(in srgb, var(--railway-color-bg-panel) 90%, transparent);font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-chip);font-weight:var(--railway-font-weight-medium);align-items:center;line-height:14px;display:inline-flex;position:fixed;top:76px;left:50%;transform:translate(-50%)}.dashboard-selector-drawer,.dashboard-bottom-actions .map-device-popover,.map-bottom-controls.embedded .map-device-popover{right:auto;bottom:calc(100% + var(--railway-spacing-12));width:100%;min-width:360px;margin-bottom:var(--railway-spacing-08);padding:var(--railway-spacing-12);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-default);border-radius:var(--railway-radius-06);background:var(--railway-color-bg-panel-elevated);box-shadow:0 8px 22px var(--railway-color-shadow);left:0}.dashboard-selector-drawer>div:first-child,.dashboard-bottom-actions .map-device-popover>div:first-child,.map-bottom-controls.embedded .map-device-popover>div:first-child{align-items:baseline;gap:var(--railway-spacing-12);margin-bottom:var(--railway-spacing-08);display:flex}.dashboard-selector-drawer b,.dashboard-bottom-actions .map-device-popover strong,.map-bottom-controls.embedded .map-device-popover strong{color:var(--railway-color-text-primary);font-size:var(--railway-font-size-body);font-weight:var(--railway-font-weight-medium)}.dashboard-selector-drawer span,.dashboard-bottom-actions .map-device-popover span,.map-bottom-controls.embedded .map-device-popover span{color:var(--railway-color-text-tertiary);font-size:var(--railway-font-size-annotation)}.dashboard-selector-options,.dashboard-bottom-actions .map-device-options,.map-bottom-controls.embedded .map-device-options{gap:var(--railway-spacing-06);flex-wrap:wrap;display:flex}.dashboard-selector-empty{width:100%;padding:var(--railway-spacing-08) 0;color:var(--railway-color-text-tertiary);font-size:var(--railway-font-size-annotation);text-align:center;margin:0}.dashboard-selector-options button,.dashboard-bottom-actions .map-device-options button,.map-bottom-controls.embedded .map-device-options button{width:auto;min-width:72px;height:28px;padding:0 var(--railway-spacing-08);color:var(--railway-color-text-secondary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-control-surface);box-shadow:none;font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-regular);cursor:pointer}.dashboard-selector-skeleton{gap:var(--railway-spacing-06);width:100%;display:grid}.dashboard-selector-skeleton-row{width:100%;min-height:28px;padding:var(--railway-spacing-06) var(--railway-spacing-08);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-control-surface);align-items:center;display:flex}.dashboard-selector-skeleton-row .railway-skeleton{max-width:100%}.dashboard-selector-options button:hover,.dashboard-bottom-actions .map-device-options button:hover,.map-bottom-controls.embedded .map-device-options button:hover{color:var(--railway-color-text-primary);border-color:var(--railway-color-control-selected);background:var(--railway-color-control-hover-bg)}.dashboard-selector-options button.active,.dashboard-bottom-actions .map-device-options button.active,.map-bottom-controls.embedded .map-device-options button.active{color:var(--railway-color-on-accent);border-color:var(--railway-color-control-selected);background:var(--railway-color-control-selected)}.dashboard-map-controls-slot{display:contents}.map-bottom-controls.embedded{gap:var(--railway-spacing-06);width:auto;color:var(--railway-color-text-primary);flex:none;display:flex;position:static;transform:none}.map-bottom-controls.embedded .map-device-control{width:116px}.dashboard-range-switch:not(.active){background:var(--railway-color-border-default)}.dashboard-bottom-actions button{cursor:pointer}.dashboard-bottom-actions>button,.dashboard-bottom-action{justify-content:center;align-items:center;gap:var(--railway-spacing-08);width:116px;height:32px;padding:0 var(--railway-spacing-08);color:var(--railway-color-text-primary);border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-control-surface);box-shadow:none;font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);letter-spacing:0;flex:0 0 116px;display:inline-flex}.dashboard-bottom-actions>button>span,.dashboard-bottom-action>span{white-space:nowrap;flex:none}.dashboard-bottom-actions>button:hover,.dashboard-bottom-action:hover{border-color:var(--railway-color-control-selected);background:var(--railway-color-control-hover-bg)}.dashboard-bottom-actions>button.active,.dashboard-bottom-action.active,.dashboard-bottom-actions .dashboard-bottom-action.active{color:var(--railway-color-on-accent);border-color:var(--railway-color-accent);background:var(--railway-color-control-selected)}.dashboard-mode-toggle,.dashboard-range-toggle{box-sizing:border-box;border:1px solid var(--railway-color-border-subtle);border-radius:var(--railway-radius-04);background:var(--railway-color-control-surface);flex:0 0 116px;width:116px;height:32px}.dashboard-mode-toggle{align-items:center;gap:var(--railway-spacing-02);padding:var(--railway-spacing-02);display:flex}.dashboard-mode-toggle>button{min-width:0;height:26px;color:var(--railway-color-text-secondary);border-radius:var(--railway-radius-02);box-shadow:none;font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-regular);background:0 0;border:0;flex:1 1 0;padding:0}.dashboard-mode-toggle>button:hover{color:var(--railway-color-text-primary);background:var(--railway-color-border-subtle)}.dashboard-mode-toggle>button.active{color:var(--railway-color-on-accent);background:var(--railway-color-control-selected);font-weight:var(--railway-font-weight-medium)}.dashboard-range-toggle{justify-content:space-between;align-items:center;gap:var(--railway-spacing-06);padding:0 var(--railway-spacing-08);color:var(--railway-color-text-primary);cursor:pointer;font-family:var(--railway-font-family-cn);font-size:var(--railway-font-size-annotation);font-weight:var(--railway-font-weight-medium);display:flex}.dashboard-range-toggle:hover{border-color:var(--railway-color-control-selected);background:var(--railway-color-border-subtle)}.dashboard-range-switch{background:var(--railway-color-control-selected);border-radius:999px;flex:0 0 34px;width:34px;height:18px;transition:background .16s;position:relative}.dashboard-range-switch>span{top:var(--railway-spacing-02);left:var(--railway-spacing-02);background:var(--railway-color-switch-thumb);border-radius:50%;width:14px;height:14px;transition:transform .16s;position:absolute}.dashboard-range-switch.active{background:var(--railway-color-accent)}.dashboard-range-switch.active>span{transform:translate(16px)}
