html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}:root{font-family:Inter,Segoe UI,Microsoft YaHei,Arial,sans-serif;color:#1b2925;background:#f4f6f5;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #1b2925;--muted: #6d7975;--line: #dce3e0;--soft-line: #e9eeec;--surface: #ffffff;--canvas: #f4f6f5;--green: #13866f;--green-strong: #0e6f5d;--blue: #2f6fed;--amber: #d58a16;--red: #d94c4c;--charcoal: #17211e;--scrollbar-size: 10px;--scrollbar-track: #e8eeeb;--scrollbar-thumb: #91aaa0;--scrollbar-thumb-hover: #648c7d;--scrollbar-thumb-active: #357764;--slider-rail: #d9e5e1;--slider-track: #13866f;--slider-track-hover: #0e735f;--slider-focus: rgb(19 134 111 / 22%);letter-spacing:0}*{box-sizing:border-box;letter-spacing:0;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin}*::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}*::-webkit-scrollbar-track{background:var(--scrollbar-track)}*::-webkit-scrollbar-thumb{min-width:36px;min-height:36px;background:var(--scrollbar-thumb);border:2px solid var(--scrollbar-track);border-radius:999px}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}*::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb-active)}*::-webkit-scrollbar-corner{background:var(--scrollbar-track)}*::-webkit-scrollbar-button{width:0;height:0}html,body,#app{min-width:320px;min-height:100%;margin:0}body{min-height:100vh;background:var(--canvas)}button,input,textarea,select{font:inherit}button{letter-spacing:0}h1,h2,h3,p{margin-top:0}code{font-family:Cascadia Code,Consolas,monospace;font-size:12px;color:#286b5c}.admin-shell{min-height:100vh}.admin-shell>.ant-layout{min-width:0}.admin-sider{position:sticky!important;top:0;height:100vh;overflow:hidden;background:#17211e!important}.admin-sider .ant-layout-sider-children{display:flex;flex-direction:column}.brand-lockup{height:74px;display:flex;align-items:center;gap:11px;padding:0 19px;color:#fff;border-bottom:1px solid #2a3532;overflow:hidden}.brand-lockup.compact{padding:0 16px}.brand-mark{width:36px;height:36px;display:grid;place-items:center;flex:0 0 auto;color:#dff7ef;background:#137461;border-radius:6px}.brand-lockup strong,.brand-lockup span{display:block;white-space:nowrap}.brand-lockup strong{font-size:16px;line-height:1.4}.brand-lockup span{color:#8fa09a;font-size:10px;text-transform:uppercase}.admin-sider .ant-menu{flex:1;padding:14px 9px;background:transparent!important;border:0}.admin-sider .ant-menu-item{height:42px;margin:4px 0;padding-inline:15px!important;color:#aab7b3;border-radius:5px}.admin-sider .ant-menu-item:hover{color:#fff!important;background:#23312d!important}.admin-sider .ant-menu-item-selected{color:#fff!important;background:#126d5b!important}.admin-sider .ant-menu-item .ant-menu-title-content{font-size:13px}.collapse-button{height:48px;display:grid;place-items:center;color:#8fa09a;background:transparent;border:0;border-top:1px solid #2a3532;cursor:pointer}.collapse-button:hover{color:#fff;background:#202c29}.admin-header{height:64px!important;line-height:normal!important;display:flex;align-items:center;justify-content:space-between;padding:0 26px!important;background:#fff!important;border-bottom:1px solid var(--line)}.header-actions,.header-actions .ant-btn,.user-button{display:flex;align-items:center;gap:8px}.admin-content.without-admin-header{min-height:100vh}.admin-header>.header-actions{margin-left:auto}.header-actions .ant-btn{color:#52605b}.user-button{padding:4px 0 4px 10px;color:#33423d;background:transparent;border:0;cursor:pointer}.avatar{width:30px;height:30px;display:grid;place-items:center;color:#fff;background:#278b76;border-radius:5px;font-size:12px}.admin-content{width:100%;min-width:0;min-height:calc(100vh - 64px);padding:24px 26px 34px;background:var(--canvas)}.admin-shell.screen-shell>.ant-layout{margin-left:0!important}.admin-content.screen-content-host{min-height:100vh;padding:0;background:#091526}.admin-content.screen-content-host:before{display:none}.page-stack{width:100%;min-height:100%;margin:0}.page-header{min-height:54px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}.page-header h1{margin-bottom:4px;color:var(--ink);font-size:22px;line-height:1.35;font-weight:650}.page-header p{margin:0;color:var(--muted);font-size:13px}.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.school-scope-select{width:240px;max-width:100%;text-align:left}.page-actions .ant-btn,.row-actions,.row-actions .ant-btn,.course-footer .ant-btn,.alarm-surface .ant-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}.ant-btn{border-radius:5px;box-shadow:none}.ant-btn-primary{background:var(--green)}.ant-btn-primary:hover{background:var(--green-strong)!important}.ant-input,.ant-select-selector,.ant-input-number,.ant-segmented{border-radius:5px!important}.ant-slider .ant-slider-rail{height:5px;background:var(--slider-rail)}.ant-slider .ant-slider-track{height:5px;background:var(--slider-track)}.ant-slider:hover .ant-slider-rail{background:#cbdad5}.ant-slider:hover .ant-slider-track{background:var(--slider-track-hover)}.ant-slider .ant-slider-handle:after{background:#fff;box-shadow:0 0 0 2px var(--slider-track)}.ant-slider .ant-slider-handle:hover:after,.ant-slider .ant-slider-handle:focus:after,.ant-slider .ant-slider-handle:active:after{box-shadow:0 0 0 3px var(--slider-track-hover),0 0 0 7px var(--slider-focus)}.ant-slider-disabled .ant-slider-rail{background:#e6ebe9!important}.ant-slider-disabled .ant-slider-track{background:#aebdb7!important}.ant-slider-disabled .ant-slider-handle:after{box-shadow:0 0 0 2px #aebdb7!important}.status-tag{min-height:23px;display:inline-flex;align-items:center;gap:6px;width:fit-content;padding:2px 7px;color:#55615d;background:#f0f2f1;border:1px solid #e2e6e4;border-radius:3px;font-size:11px;line-height:17px;white-space:nowrap}.status-tag i{width:6px;height:6px;flex:0 0 auto;background:currentColor;border-radius:50%}.status-running,.status-active,.status-passed,.status-success,.status-completed{color:#13735f;background:#e9f7f2;border-color:#cdebe1}.status-online,.status-ready{color:#2f6fed;background:#edf3ff;border-color:#d8e4ff}.status-paused,.status-waiting,.status-warning{color:#a6670d;background:#fff5e5;border-color:#f6dfb8}.status-fault,.status-fault_stopped,.status-safety_stopped,.status-failed,.status-critical,.status-open{color:#be3f3f;background:#fff0f0;border-color:#f4d3d3}.status-offline,.status-disabled,.status-left,.status-ended,.status-acknowledged,.status-graduated,.status-expired,.status-closed{color:#68736f;background:#f0f2f1;border-color:#e0e5e3}.status-locked{color:#be3f3f;background:#fff0f0;border-color:#f4d3d3}.status-maintenance,.status-suspended,.status-info{color:#7756b8;background:#f3effb;border-color:#e2d9f5}.connection-state{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;color:#8b6b2e;background:#fff7e8;border:1px solid #f2dfbc;border-radius:4px;font-size:12px}.connection-state.active{color:#176c59;background:#ebf7f3;border-color:#cee9df}.metric-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px;margin-bottom:14px}.metric-tile{min-height:91px;display:flex;align-items:center;gap:14px;padding:15px;background:var(--surface);border:1px solid var(--line);border-radius:6px}.metric-icon{width:38px;height:38px;display:grid;place-items:center;flex:0 0 auto;color:#53615c;background:#eef2f0;border-radius:5px}.metric-label{display:block;margin-bottom:4px;color:var(--muted);font-size:12px;white-space:nowrap}.metric-tile strong{display:block;color:var(--ink);font-size:24px;line-height:1.15;font-weight:650}.metric-tile small{margin-left:5px;color:#7e8985;font-size:11px;font-weight:400}.metric-green .metric-icon{color:#137d68;background:#e9f7f2}.metric-blue .metric-icon{color:#2f6fed;background:#edf3ff}.metric-amber .metric-icon{color:#b87713;background:#fff5e5}.metric-red .metric-icon{color:#c84444;background:#fff0f0}.surface{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:6px}.section-heading{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--soft-line)}.section-heading h2{margin:0 0 2px;color:#26332f;font-size:14px;line-height:1.4;font-weight:650}.section-heading span{display:block;color:#87928e;font-size:11px}.dashboard-main-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(260px,.8fr);gap:14px;margin-bottom:14px}.map-surface .site-map{margin:12px}.vehicle-focus{min-width:0}.vehicle-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:18px 16px 14px}.vehicle-title strong,.vehicle-title span{display:block}.vehicle-title strong{margin-bottom:3px;font-size:19px}.vehicle-title span{color:var(--muted);font-size:11px}.vehicle-kpis{display:grid;grid-template-columns:1fr 1fr;margin:0 16px;border:1px solid var(--soft-line);border-radius:5px;overflow:hidden}.vehicle-kpis div{min-height:76px;padding:13px;border-right:1px solid var(--soft-line);border-bottom:1px solid var(--soft-line)}.vehicle-kpis div:nth-child(2n){border-right:0}.vehicle-kpis div:nth-last-child(-n+2){border-bottom:0}.vehicle-kpis dt{color:#7a8681;font-size:11px}.vehicle-kpis dd{margin:7px 0 0;color:#26332f;font-size:15px;font-weight:600;overflow-wrap:anywhere}.vehicle-kpis dd small{color:#87928e;font-size:10px;font-weight:400}.version-strip{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:14px 16px;padding:9px 11px;background:#f5f7f6;border-radius:4px;font-size:11px}.version-strip span{color:#7a8681}.vehicle-focus>.ant-btn{width:calc(100% - 32px);margin:0 16px 16px}.dashboard-lower-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);gap:14px}.trend-chart{width:100%;height:230px}.chart-surface .trend-chart{padding:8px 14px 12px}.compact-list{padding:4px 14px 10px}.compact-list button{width:100%;min-height:44px;display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 2px;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--soft-line);cursor:pointer}.compact-list button:last-child{border-bottom:0}.compact-list button:hover strong{color:var(--green)}.compact-list button>span:nth-child(2){min-width:0}.compact-list strong,.compact-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.compact-list strong{color:#2b3934;font-size:12px}.compact-list small{color:#8a9591;font-size:10px}.alarm-level{width:7px;height:7px;display:inline-block;flex:0 0 auto;border-radius:50%}.level-critical{background:var(--red);box-shadow:0 0 0 3px #d94c4c1f}.level-warning{background:var(--amber);box-shadow:0 0 0 3px #d58a161f}.level-info{background:var(--blue);box-shadow:0 0 0 3px #2f6fed1f}.site-map{position:relative;min-height:310px;aspect-ratio:16 / 8.7;overflow:hidden;background-color:#e7ece9;border:1px solid #d4dcd8;border-radius:4px}.site-map:before{position:absolute;top:16%;right:8%;bottom:12%;left:8%;content:"";border:1px solid #b8c4bf}.road{position:absolute;z-index:1;background:#cbd4d0;border:1px solid #b3c0bb}.road:after{position:absolute;content:"";border-color:#f5f7f6;border-style:dashed;opacity:.9}.road-horizontal{top:48%;left:8%;width:84%;height:22%}.road-horizontal:after{top:50%;left:0;width:100%;border-width:1px 0 0}.road-vertical{top:16%;left:15%;width:14%;height:72%}.road-vertical:after{top:0;left:50%;height:100%;border-width:0 0 0 1px}.parking-bay{position:absolute;z-index:2;top:25%;width:6%;height:23%;border:2px solid #f7faf8;border-bottom:0}.parking-bay span{position:absolute;top:4px;left:5px;color:#87938e;font-size:9px}.vehicle-marker{position:absolute;z-index:6;width:31px;height:31px;display:grid;place-items:center;padding:0;color:#fff;background:#51605b;border:2px solid rgba(255,255,255,.95);border-radius:5px;box-shadow:0 2px 7px #101b1740;cursor:pointer;transition:left .7s linear,top .7s linear,box-shadow .2s}.vehicle-marker span{position:absolute;top:32px;min-width:36px;padding:2px 4px;color:#31403a;background:#ffffffeb;border-radius:2px;font-size:8px;white-space:nowrap}.vehicle-marker.selected{z-index:8;box-shadow:0 0 0 4px #13866f3d,0 3px 9px #101b174d}.marker-running{background:#13866f}.marker-online{background:#2f6fed}.marker-paused{background:#d58a16}.marker-fault{background:#d94c4c}.marker-offline{background:#7c8783}.map-scale{position:absolute;z-index:4;right:12px;bottom:10px;width:52px;padding-top:4px;color:#66726e;border-top:2px solid #65716d;text-align:center;font-size:9px}.track-layer{position:absolute;z-index:5;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.site-map-dark{background-color:#101b18;border-color:#29403a}.site-map-dark:before{border-color:#39534b}.site-map-dark .road{background:#253832;border-color:#3b514a}.site-map-dark .road:after{border-color:#63756f}.site-map-dark .parking-bay{border-color:#63766f}.site-map-dark .parking-bay span{color:#758881}.site-map-dark .map-scale{border-color:#82948e}.site-map-dark .vehicle-marker span{color:#dce9e5;background:#0c1814eb}.filter-bar{min-height:58px;display:flex;align-items:center;gap:10px;padding:11px 13px;background:#fff;border:1px solid var(--line);border-bottom:0;border-radius:6px 6px 0 0}.search-input{width:min(340px,100%)}.filter-count{margin-left:auto;color:#7b8782;font-size:12px;white-space:nowrap}.table-surface{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:0 0 6px 6px}.table-surface>.ant-table-wrapper{margin:-1px}.ant-table-wrapper .ant-table{color:#34413d;font-size:12px}.ant-table-wrapper .ant-table-thead>tr>th{color:#68746f;background:#f6f8f7;font-size:11px;font-weight:600}.ant-table-wrapper .ant-table-tbody>tr>td{border-color:#edf0ef}.primary-cell strong,.primary-cell span{display:block}.primary-cell strong{color:#283631;font-weight:600}.primary-cell span{max-width:280px;margin-top:2px;color:#86918d;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.battery-cell{display:flex;align-items:center;gap:8px}.battery-cell .ant-progress{width:78px;margin:0}.battery-cell span{color:#66726e;font-size:11px}.row-actions{gap:2px}.row-actions .ant-btn{width:30px;height:30px;padding:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.modal-form .ant-form-item{margin-bottom:15px}.person-cell{display:flex;align-items:center;gap:10px}.person-cell>span{width:32px;height:32px;display:grid;place-items:center;color:#fff;background:#558176;border-radius:5px;font-size:12px}.project-cell{display:flex;align-items:center;gap:10px;min-width:0}.project-cell>span{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;color:#176f5e;background:#e9f5f1;border:1px solid #d2e9e1;border-radius:5px}.project-cell>div{min-width:0}.project-cell strong,.project-cell small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-cell strong{color:#283631;font-size:12px;font-weight:600}.project-cell small{margin-top:2px;color:#86918d;font-size:10px}.form-section-title{margin:2px 0 13px;padding-bottom:7px;color:#385048;border-bottom:1px solid var(--soft-line);font-size:12px;font-weight:650}.password-warning{color:#a6670d}.person-cell strong,.person-cell small{display:block}.person-cell strong{font-weight:600}.person-cell small{color:#87928e;font-size:10px}.training-duration-total{color:#203149;font-family:var(--font-data);font-size:12px;white-space:nowrap}.training-duration-empty{color:#87928e;font-size:12px}.bound-coach strong,.bound-coach small{display:block}.bound-coach strong{color:#26374c;font-size:12px;font-weight:600}.bound-coach small{margin-top:2px;color:#8793a2;font-family:var(--font-data);font-size:10px}.project-duration-list{display:flex;align-items:center;flex-wrap:wrap;gap:5px}.project-duration-list span{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:2px 7px;color:#44546a;background:#f3f6fa;border:1px solid #e1e7ef;border-radius:4px;font-family:var(--font-data);font-size:11px;white-space:nowrap}.project-duration-list b{color:#246bfe;font-family:inherit;font-weight:600}.inline-summary{min-height:50px;display:flex;align-items:center;gap:18px;margin-bottom:12px;padding:10px 15px;color:#6d7975;background:#fff;border:1px solid var(--line);border-radius:6px;font-size:12px}.inline-summary i{width:1px;height:18px;background:var(--line)}.inline-summary strong{margin-left:5px;color:#23312d;font-size:16px}.inline-summary code{margin-left:5px}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.course-card{min-width:0;padding:17px;background:#fff;border:1px solid var(--line);border-top:3px solid #2c8c78;border-radius:6px}.course-card-top,.course-meta,.course-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.course-code{color:#76827d;font-family:Cascadia Code,Consolas,monospace;font-size:10px}.course-mode{color:#19725f;font-size:12px;font-weight:600}.course-card h2{margin:15px 0 6px;color:#24322d;font-size:16px}.course-card p{min-height:38px;margin-bottom:14px;color:#74807c;font-size:12px;line-height:1.6}.course-meta{justify-content:flex-start;flex-wrap:wrap}.course-meta span{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;color:#64706c;background:#f2f5f4;border-radius:3px;font-size:10px}.course-footer{margin-top:17px;padding-top:12px;border-top:1px solid var(--soft-line)}.course-footer .ant-btn{width:30px;height:30px;padding:0}.score-text{color:#146f5d;font-size:15px}.negative{color:var(--red)}.muted{color:#919b97;font-size:11px}.method-code{display:inline-block;min-width:38px;margin-right:5px;padding:2px 4px;color:#176f5e;background:#eaf7f3;border-radius:2px;text-align:center}.alarm-metrics{display:grid;grid-template-columns:repeat(3,minmax(130px,220px));gap:10px;margin-bottom:12px}.alarm-metrics>div{min-height:52px;display:flex;align-items:center;gap:9px;padding:10px 13px;background:#fff;border:1px solid var(--line);border-radius:5px}.alarm-metrics span:not(.alarm-level){color:#707c77;font-size:12px}.alarm-metrics strong{margin-left:auto;color:#26342f;font-size:19px}.fact-hero{min-height:96px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px;padding:16px 18px;background:#fff;border:1px solid var(--line);border-radius:6px}.fact-identity{display:flex;align-items:center;gap:12px;min-width:0}.person-avatar{width:45px;height:45px;display:grid;place-items:center;flex:0 0 auto;color:#fff;background:#2b8070;border-radius:6px;font-size:17px}.fact-identity h2{margin-bottom:4px;font-size:18px}.fact-identity p{margin:0;color:#77837e;font-size:11px;overflow-wrap:anywhere}.fact-stats{display:flex;align-items:stretch}.fact-stats>div{min-width:100px;padding:2px 17px;border-left:1px solid var(--soft-line)}.fact-stats span{display:block;margin-bottom:7px;color:#7c8783;font-size:10px}.fact-stats strong{color:#2b3934;font-size:14px}.fact-stats .large-score{color:#14725f;font-size:22px;line-height:1}.facts-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,.75fr);gap:14px;margin-bottom:14px}.track-surface .site-map{margin:12px;min-height:290px}.version-list{margin:5px 16px 14px}.version-list div{padding:10px 0;border-bottom:1px solid var(--soft-line)}.version-list div:last-child{border-bottom:0}.version-list dt{color:#87928e;font-size:10px}.version-list dd{margin:3px 0 0;color:#2c3a35;font-family:Cascadia Code,Consolas,monospace;font-size:11px;overflow-wrap:anywhere}.fact-tabs{padding:3px 16px 14px}.fact-tabs .ant-tabs-nav{margin-bottom:16px}.event-timeline{max-width:900px;margin:8px 6px}.timeline-entry{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.timeline-entry strong,.timeline-entry span{display:block}.timeline-entry strong{color:#2b3934;font-size:12px}.timeline-entry span,.timeline-entry time{color:#84908b;font-size:10px}.event-timeline p{margin:5px 0 0;color:#68746f;font-size:11px}.safety-list article{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px;padding:13px;background:#fff4f4;border:1px solid #f2d6d6;border-radius:5px}.safety-list article>svg{color:#c84444;flex:0 0 auto}.safety-list article>div{flex:1;min-width:0}.safety-list strong,.safety-list p{display:block}.safety-list p{margin:3px 0 5px;color:#765f5f;font-size:11px}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(390px,.55fr);background:#f3f6f5}.login-scene{position:relative;min-height:100vh;overflow:hidden;color:#fff;background-color:#13201c}.login-brand{position:absolute;z-index:3;top:32px;left:40px;display:flex;align-items:center;gap:10px}.login-brand strong{font-size:17px}.scene-copy{position:absolute;z-index:4;left:8%;bottom:11%;max-width:620px}.scene-copy>span{color:#61c9ae;font-size:11px;font-weight:700}.scene-copy h1{margin:15px 0 16px;font-size:40px;line-height:1.25;font-weight:650}.scene-copy p{max-width:540px;color:#a8bbb5;font-size:14px;line-height:1.7}.login-panel{min-height:100vh;display:grid;place-items:center;padding:40px 9%;background:linear-gradient(145deg,#f9fbff,#edf7f6 43%,#f3f6fc 72%,#fff8f2)}.login-form{position:relative;z-index:2;width:min(100%,370px)}.login-color-accents{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.login-color-accents i{position:absolute;border-radius:50%}.login-color-accents i:nth-child(1){top:-82px;right:-76px;width:230px;height:230px;background:#5b91eb1c}.login-color-accents i:nth-child(2){top:9%;left:-78px;width:176px;height:176px;background:#2dc4ae1a}.login-color-accents i:nth-child(3){right:-48px;bottom:12%;width:148px;height:148px;background:#faa65c1a}.login-color-accents i:nth-child(4){bottom:-62px;left:18%;width:132px;height:132px;background:#7d69dc14}.login-color-accents i:nth-child(5){top:13%;right:27%;width:16px;height:16px;background:#31baa238}.login-color-accents i:nth-child(6){top:24%;right:9%;width:9px;height:9px;background:#5287e140}.login-color-accents i:nth-child(7){bottom:26%;left:11%;width:13px;height:13px;background:#f4994b38}.login-color-accents i:nth-child(8){right:22%;bottom:8%;width:8px;height:8px;background:#6f5ecd3d}.login-color-accents i:nth-child(9){top:6%;left:37%;width:7px;height:7px;background:#e5658438}.mobile-brand{display:none}.login-form h2{margin-bottom:30px;color:#1d2925;font-size:27px}.login-form label{display:block;margin-bottom:17px}.login-form label>span{display:block;margin-bottom:7px;color:#45534e;font-size:12px;font-weight:600}.input-shell{min-height:44px;display:flex;align-items:center;gap:9px;padding:0 12px;color:#7d8984;background:#fff;border:1px solid #cfd8d4;border-radius:5px}.input-shell:focus-within{border-color:#168870;box-shadow:0 0 0 3px #16887017}.input-shell input{flex:1;min-width:0;padding:10px 0;color:#26342f;background:transparent;border:0;outline:0}.input-shell button{width:28px;height:28px;display:grid;place-items:center;color:#77837f;background:transparent;border:0;cursor:pointer}.primary-login{width:100%;min-height:44px;margin-top:5px;color:#fff;background:#137a66;border:0;border-radius:5px;font-weight:600;cursor:pointer}.primary-login:hover{background:#0f6958}.primary-login:disabled{opacity:.65;cursor:wait}.login-note{display:block;margin-top:13px;color:#98a19e;font-size:10px;text-align:center}.screen-page{height:100vh;min-height:0;display:flex;flex-direction:column;overflow:hidden;color:#dce8e4;background:#09120f}.screen-header{height:74px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 22px;background:#0d1915;border-bottom:1px solid #294039}.screen-title{display:flex;align-items:center;gap:11px}.screen-logo{width:39px;height:39px;display:grid;place-items:center;color:#dcfff4;background:#137661;border-radius:5px}.screen-title h1{margin:0 0 2px;font-size:18px;font-weight:650}.screen-title p{margin:0;color:#7f948d;font-size:9px}.screen-clock{text-align:center}.screen-clock strong,.screen-clock span{display:block}.screen-clock strong{font-family:Cascadia Code,Consolas,monospace;font-size:22px}.screen-clock span{color:#788d86;font-size:9px}.screen-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px}.screen-actions button{width:34px;height:34px;display:grid;place-items:center;color:#a4b6b0;background:#14231e;border:1px solid #2a4039;border-radius:4px;cursor:pointer}.screen-actions button:hover{color:#fff;border-color:#3f5d54}.screen-live{display:inline-flex;align-items:center;gap:6px;margin-right:6px;color:#c9903d;font-size:10px;white-space:nowrap}.screen-live.online{color:#48c5a3}.screen-live small{color:#829a91;font-size:9px}.screen-loading{margin:auto}.screen-content{flex:1 1 0;height:0;min-height:0;display:grid;grid-template-columns:minmax(230px,20%) minmax(420px,1fr) minmax(250px,22%);gap:10px;padding:10px;overflow:hidden}.screen-column{min-width:0;min-height:0;display:grid;gap:10px}.screen-column-left{grid-template-rows:auto auto minmax(190px,1fr)}.screen-column-right{grid-template-rows:minmax(230px,1fr)}.screen-panel{min-width:0;overflow:hidden;background:#0d1915;border:1px solid #243a33;border-radius:4px}.screen-panel-title{min-height:43px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;border-bottom:1px solid #20342e}.screen-panel-title h2{margin:0;color:#dce8e4;font-size:12px}.screen-panel-title>span{color:#71877f;font-size:9px}.screen-metrics{display:grid;grid-template-columns:1fr 1fr}.screen-metrics>div{min-height:78px;display:grid;grid-template-columns:28px 1fr auto;grid-template-rows:auto auto;align-items:center;column-gap:6px;padding:11px;border-right:1px solid #20342e;border-bottom:1px solid #20342e}.screen-metrics>div:nth-child(2n){border-right:0}.screen-metrics>div:nth-last-child(-n+2){border-bottom:0}.screen-metrics svg{grid-row:1 / 3;color:#36ae8e}.screen-metrics span{color:#849890;font-size:9px}.screen-metrics strong{align-self:end;font-size:20px}.screen-metrics small{align-self:end;margin-left:3px;color:#70857e;font-size:8px}.status-bars{padding:10px 12px}.status-bars>div{display:grid;grid-template-columns:54px minmax(50px,1fr) 20px;align-items:center;gap:8px;min-height:24px}.status-bars span{color:#8da099;font-size:9px}.status-bars strong{font-size:10px;text-align:right}.status-bars>div>div{height:5px;overflow:hidden;background:#1b2c27;border-radius:1px}.status-bars i{height:100%;display:block;min-width:2px}.bar-running{background:#2fc09a}.bar-online{background:#4c80e8}.bar-paused{background:#dca044}.bar-fault{background:#dc5b5b}.bar-offline{background:#71807b}.screen-trend-panel .trend-chart{height:calc(100% - 43px);min-height:180px;padding:7px}.screen-map-zone{position:relative;min-width:0;min-height:480px}.screen-map-zone .published-map-stage{height:100%!important;min-height:0}.screen-map-zone .site-map{width:100%;height:100%;min-height:480px;aspect-ratio:auto}.screen-vehicle-camera-controls{position:absolute;z-index:14;top:14px;right:14px;display:flex;align-items:center;gap:4px;padding:4px;color:#dce8e4;background:#07121deb;border:1px solid #31516a;border-radius:4px;box-shadow:0 6px 18px #0000003d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.screen-vehicle-camera-controls strong{max-width:120px;padding:0 8px;overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.screen-vehicle-camera-controls button{width:32px;height:32px;display:grid;place-items:center;padding:0;color:#91a9b7;background:#10243a;border:1px solid #29465d;border-radius:3px;cursor:pointer}.screen-vehicle-camera-controls button:hover,.screen-vehicle-camera-controls button.active{color:#e9fffa;background:#176b61;border-color:#5eead4}.screen-map-legend{position:absolute;z-index:10;left:14px;bottom:14px;display:flex;gap:13px;padding:7px 10px;background:#07100ddb;border:1px solid #294139;border-radius:3px}.screen-map-legend span{display:flex;align-items:center;gap:5px;color:#9aaca5;font-size:8px}.screen-map-legend i{width:6px;height:6px;border-radius:50%}.legend-running{background:#2fc09a}.legend-online{background:#4c80e8}.legend-paused{background:#dca044}.legend-fault{background:#dc5b5b}.legend-offline{background:#71807b}.screen-map-note{position:absolute;z-index:10;right:14px;bottom:14px;color:#70837c;font-size:8px}.alarm-number{display:inline-flex!important;align-items:center;gap:4px;color:#df6565!important}.screen-alarm-list article{display:grid;grid-template-columns:8px minmax(0,1fr);gap:8px;margin:0 11px;padding:9px 0;border-bottom:1px solid #1e312b}.screen-alarm-list article:last-child{border-bottom:0}.screen-alarm-list article .alarm-level{margin-top:5px}.screen-alarm-list strong,.screen-alarm-list p,.screen-alarm-list time{display:block}.screen-alarm-list strong{color:#cbd8d3;font-size:9px}.screen-alarm-list p{max-width:100%;margin:2px 0;color:#778b84;font-size:8px;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.screen-alarm-list time{color:#62766f;font-size:8px}.screen-footer{min-height:31px;display:flex;align-items:center;justify-content:center;gap:24px;padding:5px 12px;color:#667a73;background:#0c1713;border-top:1px solid #21352f;font-size:8px}.screen-footer span{display:flex;align-items:center;gap:5px}.screen-footer i{width:5px;height:5px;background:#37b995;border-radius:50%}@media (max-width: 1180px){.metric-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}.dashboard-main-grid{grid-template-columns:minmax(0,1.7fr) minmax(260px,.8fr)}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.screen-content{grid-template-columns:220px minmax(360px,1fr) 235px}.screen-title h1{font-size:15px}}@media (max-width: 900px){.admin-sider{position:fixed!important;z-index:50}.admin-sider:not(.ant-layout-sider-collapsed){box-shadow:6px 0 20px #131d1933}.admin-shell>.ant-layout{margin-left:72px}.admin-header{padding:0 15px!important}.admin-content{padding:18px 14px 28px}.metric-grid{grid-template-columns:repeat(2,minmax(130px,1fr))}.dashboard-main-grid,.dashboard-lower-grid,.facts-grid{grid-template-columns:1fr}.fact-hero{align-items:flex-start;flex-direction:column}.fact-stats{width:100%;overflow-x:auto}.fact-stats>div:first-child{border-left:0;padding-left:0}.login-page{grid-template-columns:1fr}.login-scene{display:none}.mobile-brand{display:flex;align-items:center;gap:8px;margin-bottom:34px;color:#176f5d}.login-panel{padding:30px 22px}.screen-page{height:auto;min-height:100vh;overflow:auto}.screen-header{grid-template-columns:1fr auto}.screen-clock{display:none}.screen-content{height:auto;grid-template-columns:1fr;min-height:auto;overflow:visible}.screen-column{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}.screen-trend-panel,.screen-alarm-list{grid-column:1 / -1}.screen-map-zone{order:-1;min-height:500px}}@media (max-width: 640px){.admin-shell>.ant-layout{margin-left:0}.admin-sider{display:none}.admin-header{height:56px!important}.header-actions .ant-btn span{display:none}.user-button>span:not(.avatar){display:none}.page-header{align-items:stretch;flex-direction:column;gap:10px}.page-actions{justify-content:flex-start}.metric-grid{grid-template-columns:1fr 1fr;gap:8px}.metric-tile{min-height:80px;padding:11px}.metric-icon{width:32px;height:32px}.metric-tile strong{font-size:20px}.filter-bar{align-items:stretch;flex-direction:column}.search-input,.filter-bar .ant-select{width:100%!important}.filter-count{margin-left:0}.form-grid,.course-grid,.alarm-metrics{grid-template-columns:1fr}.inline-summary{align-items:flex-start;flex-direction:column;gap:8px}.inline-summary i{display:none}.site-map{min-height:260px}.fact-stats>div{min-width:90px;padding:2px 10px}.screen-header{height:auto;min-height:68px;padding:10px 12px}.screen-title h1{font-size:12px}.screen-live{display:none}.screen-column{grid-template-columns:1fr}.screen-trend-panel,.screen-alarm-list{grid-column:auto}.screen-map-note{display:none}.screen-map-legend{right:10px;left:10px;justify-content:space-between;gap:4px}.screen-footer{flex-wrap:wrap;gap:8px 16px}}button:focus-visible,a:focus-visible,input:focus-visible,[role=button]:focus-visible{outline:2px solid rgba(47,111,237,.22);outline-offset:2px}.admin-sider{box-shadow:2px 0 10px #11201b14}.brand-lockup{border-bottom-color:#2d3a36}.brand-mark{border:1px solid #2e927c}.admin-sider .ant-menu{padding:15px 10px}.admin-sider .ant-menu-item{padding-inline:14px!important;border:1px solid transparent;border-radius:6px;transition:color .18s ease,background-color .18s ease,border-color .18s ease}.admin-sider .ant-menu-item:hover{border-color:#2d3e39}.admin-sider .ant-menu-item-selected{border-color:#2b8c77;box-shadow:inset 3px 0 #b7f1df}.collapse-button{border-top-color:#2d3a36;transition:color .18s ease,background-color .18s ease}.admin-header{padding-inline:28px!important;background:#fffffff5!important;box-shadow:0 1px #16241f05}.header-actions .ant-btn{min-height:34px}.header-actions .ant-btn:hover{color:var(--green)!important;background:#eff7f4!important}.user-button{padding:4px 7px 4px 10px;border:1px solid transparent;border-radius:6px;transition:background-color .18s ease,border-color .18s ease}.user-button:hover{background:#f4f7f6;border-color:#e3e9e6}.admin-content{padding:26px 28px 36px}.admin-content.map-detail-content{padding-bottom:10px}.page-stack{max-width:none}.page-header{min-height:58px;margin-bottom:20px}.page-header h1{margin-bottom:5px;font-size:23px}.page-actions{justify-content:flex-end}.ant-btn{transition:color .18s ease,background-color .18s ease,border-color .18s ease,box-shadow .18s ease}.ant-btn-default:hover{color:var(--green)!important;border-color:#55a592!important;background:#fbfefd!important}.ant-btn-primary:hover{box-shadow:0 3px 8px #13866f2e!important}.ant-input:hover,.ant-select:not(.ant-select-disabled):hover .ant-select-selector,.ant-input-number:hover{border-color:#79b7a8!important}.metric-grid{gap:13px;margin-bottom:16px}.metric-tile{position:relative;min-height:94px;overflow:hidden;box-shadow:0 1px 2px #16241f06;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.metric-tile:before{position:absolute;top:0;right:0;left:0;height:2px;content:" ";background:#b7c5bf}.metric-tile:hover{border-color:#bdccc5;box-shadow:0 8px 16px #16241f12;transform:translateY(-1px)}.metric-green:before{background:#2b9c83}.metric-blue:before{background:#5a88ef}.metric-amber:before{background:#e0a13c}.metric-red:before{background:#df6a6a}.surface{box-shadow:0 1px 2px #16241f06}.section-heading{min-height:58px;padding:13px 17px}.dashboard-main-grid{grid-template-columns:minmax(0,2.2fr) minmax(270px,.8fr);gap:16px;margin-bottom:16px}.map-surface .site-map{margin:14px}.dashboard-lower-grid{gap:16px}.site-map{box-shadow:inset 0 0 0 1px #ffffff73}.filter-bar{min-height:62px;padding:11px 14px;box-shadow:0 1px 2px #16241f06}.table-surface{box-shadow:0 1px 2px #16241f06}.ant-table-wrapper .ant-table-thead>tr>th{background:#f5f8f6}.ant-table-wrapper .ant-table-tbody>tr{transition:background-color .16s ease}.ant-table-wrapper .ant-table-tbody>tr:hover>td{background:#f7fbf9!important}.row-actions .ant-btn:hover{color:var(--green)!important;background:#eef8f4!important}@media (max-width: 900px){.admin-content{padding:20px 16px 30px}.page-actions{justify-content:flex-start}}@media (max-width: 640px){.page-header h1{font-size:21px}.metric-grid{gap:9px}.metric-tile{min-height:82px}.metric-tile:hover{transform:none}.form-grid{grid-template-columns:1fr;gap:0}.inline-summary{align-items:flex-start;flex-direction:column;gap:7px}.inline-summary i{display:none}}.screen-page{background:#07110e}.screen-header{height:78px;padding-inline:26px;border-bottom-color:#254239;box-shadow:0 3px 14px #0000002e}.screen-logo{width:42px;height:42px;border:1px solid #2f9d83;box-shadow:0 0 0 4px #1b836a1f}.screen-title h1{font-size:17px;letter-spacing:0}.screen-title p{color:#789088}.screen-live{min-height:29px;padding:0 10px;border:1px solid #29463c;border-radius:4px;background:#0b1b16}.screen-actions button{border-color:#29463c;background:#0b1b16;transition:color .18s ease,border-color .18s ease,background-color .18s ease}.screen-actions button:hover{color:#d7fff1;border-color:#3b8d78;background:#112a22}.screen-content{gap:12px;padding:12px}.screen-column{gap:12px}.screen-panel{border-color:#27453a;box-shadow:inset 0 1px #ffffff06,0 8px 18px #0000001f}.screen-panel-title{min-height:45px;padding:10px 13px;border-bottom-color:#254137}.screen-panel-title h2{display:flex;align-items:center;gap:7px;color:#e0eee9;letter-spacing:0}.screen-panel-title h2:before{width:3px;height:12px;content:" ";background:#37b995;border-radius:1px}.screen-metrics>div{background:#0b1713;border-color:#223c32}.screen-metrics strong{color:#effcf6}.screen-metrics svg{color:#53d0ad}.status-bars>div>div{background:#162a23}.screen-trend-panel .trend-chart{padding:8px 9px 9px}.screen-map-zone{border:1px solid #2c5144;border-radius:5px;box-shadow:0 10px 28px #0000002e;overflow:hidden}.screen-map-zone,.screen-map-zone>.published-map-overview,.screen-map-zone .map-3d-preview.map-3d-overview{background:#091526}.screen-map-zone>.published-map-overview{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;min-height:0}.screen-map-zone .published-map-stage{height:100%}.screen-map-zone .published-map-selector{top:82px}.screen-map-zone .site-map{border:0;border-radius:4px;box-shadow:inset 0 0 0 1px #9ddec614}.screen-map-toolbar{position:absolute;z-index:11;top:14px;right:14px;left:14px;min-height:54px;display:flex;align-items:stretch;justify-content:flex-end;overflow:hidden;background:#07120eeb;border:1px solid #2b5547;border-radius:4px;box-shadow:0 6px 18px #0003}.map-toolbar-primary{min-width:190px;display:flex;align-items:center;gap:9px;padding:9px 13px;margin-right:auto;border-right:1px solid #29483d}.map-toolbar-primary>span,.map-toolbar-stat>span{display:block;color:#719288;font-size:8px;line-height:1.3;letter-spacing:0}.map-toolbar-primary>strong{color:#e6f6ef;font-size:17px;line-height:1}.screen-map-toolbar .status-tag{min-height:20px;padding:1px 6px;background:#102a21;border-color:#315d4e;font-size:9px}.map-toolbar-stat{min-width:110px;display:flex;flex-direction:column;justify-content:center;padding:7px 13px;border-left:1px solid #29483d}.map-toolbar-stat strong{margin-top:3px;color:#d9f8ee;font-size:18px;line-height:1}.map-toolbar-stat .map-toolbar-alert{color:#ff8585}.screen-map-legend{left:13px;bottom:13px;padding:8px 11px;border-color:#2d5849;background:#07120ee6}.screen-alarm-list article{transition:background-color .18s ease}.screen-alarm-list article:hover{background:#112119}.screen-footer{min-height:34px;border-top-color:#254239;background:#09130f;color:#71877f}@media (max-width: 900px){.screen-content{gap:10px;padding:10px}.screen-map-toolbar{top:12px;right:12px;left:12px}}@media (max-width: 640px){.screen-header{height:auto;min-height:68px;padding:10px 12px}.screen-map-toolbar{min-height:46px;top:10px;right:10px;left:10px}.map-toolbar-primary{min-width:0;gap:6px;padding:7px 9px}.map-toolbar-primary>strong{font-size:14px}.screen-map-toolbar .status-tag{display:none}.map-toolbar-stat{min-width:72px;padding:6px 8px}.map-toolbar-stat strong{font-size:15px}.screen-map-legend{right:9px;bottom:10px;left:9px}}.dashboard-command-band{min-height:112px;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;overflow:hidden;margin-bottom:16px;color:#dfeee8;background:#14261f;border:1px solid #294a3d;border-radius:6px;box-shadow:0 10px 22px #1727201c}.command-band-intro{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:0;padding:19px 24px}.command-band-intro:before{position:absolute;top:19px;bottom:19px;left:0;width:3px;content:" ";background:#43c49e}.command-band-intro>span,.command-band-stats span{color:#82a398;font-size:10px;line-height:1.35;letter-spacing:0}.command-band-intro>strong{margin:5px 0 4px;color:#f0faf6;font-size:22px;line-height:1.25;font-weight:650}.command-band-intro>small{color:#a3b9b0;font-size:11px}.command-band-stats{display:grid;grid-template-columns:repeat(3,minmax(112px,1fr))}.command-band-stats>div{display:flex;flex-direction:column;justify-content:center;min-width:112px;padding:18px 20px;border-left:1px solid #2a4b3f}.command-band-stats strong{margin-top:5px;color:#e5f7f0;font-size:28px;line-height:1;font-weight:650}.command-band-stats .command-alert strong{color:#ff9b9b}.dashboard-main-grid>.map-surface{border-top:3px solid #2b9c83}.dashboard-main-grid>.vehicle-focus{border-top:3px solid #5a88ef}.map-surface .section-heading,.vehicle-focus .section-heading{background:#fbfdfc}.vehicle-focus{box-shadow:0 10px 22px #16241f0f}.vehicle-title{padding-top:20px}.vehicle-focus>.ant-btn{min-height:38px}@media (max-width: 900px){.dashboard-command-band{grid-template-columns:1fr}.command-band-stats{border-top:1px solid #2a4b3f}.command-band-stats>div:first-child{border-left:0}}@media (max-width: 640px){.dashboard-command-band{min-height:0;margin-bottom:12px}.command-band-intro{padding:16px 17px 15px 19px}.command-band-intro>strong{font-size:18px}.command-band-intro>small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-band-stats{grid-template-columns:repeat(3,1fr)}.command-band-stats>div{min-width:0;padding:12px 10px}.command-band-stats strong{font-size:23px}}:root{--ink: #18231f;--muted: #66736e;--line: #dce4e0;--soft-line: #e9eeec;--surface: #fff;--canvas: #f2f5f3;--green: #087a63;--green-strong: #056650;--blue: #376bd6;--amber: #c27a0a;--red: #cf4545;--shadow-sm: 0 1px 2px rgba(16,35,28,.04), 0 4px 12px rgba(16,35,28,.035);--shadow-md: 0 12px 30px rgba(16,35,28,.08)}body{background:var(--canvas);color:var(--ink)}::selection{color:#fff;background:#167d69}.admin-sider{z-index:20;background:#111d19!important;border-right:1px solid #26352f;box-shadow:8px 0 26px #0b181314}.brand-lockup{height:72px;padding-inline:18px;border-bottom-color:#2a3933}.brand-mark{width:38px;height:38px;color:#e7fff7;background:linear-gradient(145deg,#14967b,#09624f);border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 18px #0003}.brand-lockup strong{font-size:15px;font-weight:650}.brand-lockup span{margin-top:2px;color:#748b82;font-size:9px}.admin-sider .ant-menu{padding:16px 10px}.admin-sider .ant-menu-item{height:44px;margin:3px 0;padding-inline:14px!important;color:#9aaca5;border:1px solid transparent;border-radius:6px}.admin-sider .ant-menu-item:hover{color:#eaf7f2!important;background:#1c2b25!important;border-color:#2b3b35}.admin-sider .ant-menu-item-selected{color:#fff!important;background:#0c705b!important;border-color:#238e76;box-shadow:inset 3px 0 #a9efda,0 5px 14px #00000021}.collapse-button{height:52px;border-top-color:#293832}.admin-header{height:72px!important;padding:0 30px!important;background:#fffffff0!important;border-bottom-color:#dfe6e2;box-shadow:0 1px 8px #12221c09;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.header-context{display:flex;align-items:center;gap:10px;min-width:0}.header-context>span{color:#87928e;font-size:11px}.header-context>strong{color:#26332e;font-size:13px;font-weight:650}.header-context>i{width:1px;height:14px;background:var(--line)}.header-context>time{color:#98a19e;font-size:10px;font-variant-numeric:tabular-nums}.user-button{min-height:40px;padding:4px 6px 4px 10px;border-radius:6px}.user-button:hover{background:#f1f5f3}.avatar{width:32px;height:32px;background:#176f5e;border:1px solid #0e5f4e;box-shadow:0 3px 8px #0e5f4e2e}.admin-content{min-height:calc(100vh - 72px);padding:28px 30px 40px;background-color:var(--canvas);background-image:linear-gradient(rgba(15,74,59,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(15,74,59,.022) 1px,transparent 1px);background-size:32px 32px}.page-stack{max-width:1680px}.page-header{min-height:62px;margin-bottom:20px}.page-header h1{margin-bottom:6px;font-size:24px;line-height:1.25;font-weight:680}.page-header h1:before{display:inline-block;width:3px;height:18px;margin-right:10px;content:"";vertical-align:-2px;background:var(--green);border-radius:2px}.page-header p{padding-left:13px;color:#78847f}.page-actions{min-height:36px}.surface,.metric-tile,.filter-bar,.table-surface,.inline-summary,.fact-hero,.course-card,.alarm-metrics>div{border-color:var(--line);box-shadow:var(--shadow-sm)}.surface{border-radius:7px}.section-heading{min-height:60px;padding:14px 18px;background:#fbfcfb}.section-heading h2{font-size:14px}.section-heading span{margin-top:2px}.metric-grid{gap:14px;margin-bottom:16px}.metric-tile{position:relative;min-height:104px;padding:18px;overflow:hidden;border-radius:7px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.metric-tile:after{position:absolute;right:0;bottom:0;width:48px;height:3px;content:"";background:#9eaaa5}.metric-tile:hover{z-index:1;transform:translateY(-2px);border-color:#c7d4ce;box-shadow:var(--shadow-md)}.metric-icon{width:42px;height:42px;border-radius:6px}.metric-label{margin-bottom:6px}.metric-tile strong{font-size:27px}.metric-green:after{background:var(--green)}.metric-blue:after{background:var(--blue)}.metric-amber:after{background:var(--amber)}.metric-red:after{background:var(--red)}.filter-bar{min-height:66px;padding:13px 15px;border-radius:7px 7px 0 0}.table-surface{border-radius:0 0 7px 7px}.ant-table-wrapper .ant-table-thead>tr>th{height:46px;color:#596660;background:#f3f6f4;border-bottom:1px solid #dce4e0}.ant-table-wrapper .ant-table-tbody>tr>td{padding-top:13px;padding-bottom:13px}.ant-table-wrapper .ant-table-tbody>tr:hover>td{background:#f5faf8!important}.ant-pagination .ant-pagination-item-active{border-color:var(--green);background:#edf7f3}.ant-pagination .ant-pagination-item-active a{color:var(--green)}.ant-btn{min-height:34px;border-radius:5px;font-weight:550}.ant-btn-primary{border-color:var(--green);box-shadow:0 4px 10px #087a632b}.ant-input,.ant-input-affix-wrapper,.ant-select-selector,.ant-picker,.ant-input-number{min-height:36px}.row-actions .ant-btn{min-height:30px}.status-tag{font-weight:550}.course-card{border-top-width:3px;transition:transform .2s ease,box-shadow .2s ease}.course-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.login-page{background:#eef3f0}.login-scene{background-color:#0d1a16}.login-scene:after{position:absolute;top:0;right:0;bottom:0;left:0;content:"";background:linear-gradient(100deg,#07120e1a,#07120e2e 56%,#07120eb8);pointer-events:none}.login-brand,.scene-copy{z-index:4}.login-panel{position:relative;z-index:5;background:linear-gradient(155deg,#fffffff5 0,#fffffff5 34%,#edf8f7eb 62%,#f0f5fdf2),linear-gradient(120deg,#f8fbff,#eaf7f4 50%,#eef3fb 76%,#fff5ed);box-shadow:-20px 0 60px #05140e26}.login-form h2{font-size:29px;font-weight:680}.input-shell{min-height:48px;border-color:#d6dfdb;background:#fff;box-shadow:0 1px 2px #10231c08}.input-shell:focus-within{border-color:var(--green);box-shadow:0 0 0 3px #087a631a}.primary-login{min-height:48px;background:#087a63;box-shadow:0 8px 18px #087a6333}.primary-login:hover{background:#056650;transform:translateY(-1px)}@media (max-width: 900px){.admin-header{padding-inline:20px!important}.header-context>span,.header-context>i,.header-context>time{display:none}.admin-content{padding:22px 20px 32px}.metric-tile{min-height:94px}}@media (max-width: 640px){.admin-sider{position:fixed!important;left:0;width:64px!important;min-width:64px!important;max-width:64px!important}.admin-shell>.ant-layout{margin-left:64px}.brand-lockup{height:62px;padding:0 13px}.brand-mark{width:36px;height:36px}.admin-sider .ant-menu{padding:10px 7px}.admin-sider .ant-menu-item{padding-inline:14px!important}.admin-header{height:62px!important;padding-inline:14px!important}.header-actions .ant-btn{width:36px;padding-inline:0;overflow:hidden;font-size:0}.user-button>span:not(.avatar){display:none}.admin-content{min-height:calc(100vh - 62px);padding:18px 12px 28px;background-size:24px 24px}.page-header{min-height:0;align-items:flex-start;margin-bottom:16px}.page-header h1{font-size:20px}.page-header p{display:none}.metric-tile{min-height:88px;padding:14px}.metric-tile strong{font-size:23px}.filter-bar{align-items:stretch}.table-surface{overflow-x:auto}.course-card:hover,.metric-tile:hover{transform:none}}:root{--asphalt-950: #0b1411;--asphalt-900: #111d19;--asphalt-800: #1d2b26;--signal-600: #087a63;--signal-500: #10977a;--instrument-600: #315fbd;--safety-600: #c96810;--danger-600: #c93f45;--paper-0: #ffffff;--paper-50: #f7f9f8;--paper-100: #f0f4f2;--paper-200: #e3e9e6;--text-900: #17221e;--text-700: #40504a;--text-500: #68766f;--font-ui: Inter, "Segoe UI", "Microsoft YaHei UI", "Microsoft YaHei", sans-serif;--font-data: "Cascadia Code", "SFMono-Regular", Consolas, monospace;--radius-control: 5px;--radius-surface: 7px;--ease-ui: .18s ease;--z-nav: 20;--z-header: 10;--z-overlay: 1000}html{scroll-behavior:smooth}body{min-height:100dvh;font-family:var(--font-ui);color:var(--text-900);background:var(--paper-100)}a,button,[role=button],.ant-select,.ant-segmented-item{touch-action:manipulation}button:not(:disabled),a,[role=button],.ant-select:not(.ant-select-disabled),.ant-segmented-item{cursor:pointer}:focus-visible{outline:2px solid var(--instrument-600);outline-offset:2px}.admin-content:focus{outline:none}.skip-link{position:fixed;z-index:calc(var(--z-overlay) + 1);top:8px;left:12px;padding:9px 13px;color:#fff;background:var(--instrument-600);border-radius:var(--radius-control);transform:translateY(-150%);transition:transform var(--ease-ui)}.skip-link:focus{transform:translateY(0)}.admin-sider{z-index:var(--z-nav)}.admin-sider:after{position:absolute;top:92px;right:-1px;width:2px;height:56px;content:"";background:var(--signal-500);box-shadow:0 74px #10977a3d,0 148px #10977a1f}.brand-lockup{position:relative}.brand-lockup:after{position:absolute;right:18px;bottom:-1px;left:18px;height:1px;content:"";background:repeating-linear-gradient(90deg,#668179 0 8px,transparent 8px 14px);opacity:.45}.admin-sider .ant-menu-item{min-height:44px;transition:color var(--ease-ui),background-color var(--ease-ui),border-color var(--ease-ui),box-shadow var(--ease-ui)}.admin-sider .ant-menu-item-selected:after{position:absolute;right:10px;width:5px;height:5px;content:"";background:#b7f2df;border-radius:50%;box-shadow:0 0 0 4px #b7f2df1a}.admin-header{position:sticky;z-index:var(--z-header);top:0}.header-context>strong{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-actions .ant-btn,.user-button{transition:color var(--ease-ui),background-color var(--ease-ui),border-color var(--ease-ui)}.admin-content{position:relative}.admin-content:before{position:absolute;top:0;left:30px;width:72px;height:2px;content:"";background:var(--signal-600);box-shadow:78px 0 0 var(--instrument-600),156px 0 0 var(--safety-600)}.page-kicker{display:block;margin-bottom:7px;color:var(--signal-600);font-family:var(--font-data);font-size:10px;font-weight:700;line-height:1}.page-header h1{margin:0 0 6px}.page-header h1:before{display:none}.page-header p{max-width:680px;padding-left:0;color:var(--text-500);line-height:1.55}.page-actions{align-self:center}.dashboard-command-band{border-radius:var(--radius-surface)}.command-band-intro:after{position:absolute;right:24px;bottom:18px;width:108px;height:2px;content:"";background:repeating-linear-gradient(90deg,#8fb1a6 0 14px,transparent 14px 22px);opacity:.35}.command-band-stats strong{font-family:var(--font-data);font-variant-numeric:tabular-nums}.command-band-stats .command-status{color:#6fe0be;font-family:var(--font-ui);font-size:20px}.metric-tile,.surface,.filter-bar,.table-surface,.inline-summary,.fact-hero,.course-card,.alarm-metrics>div{background:var(--paper-0);border-color:#dce4e0;box-shadow:0 1px 2px #0c1e1709,0 7px 20px #0c1e1706}.metric-tile{border-top:2px solid #ced8d3}.metric-tile:after{width:38%;height:2px;opacity:.8}.metric-tile:hover,.course-card:hover{transform:none;border-color:#bfcfc8;box-shadow:0 8px 24px #0c1e1713}.metric-tile strong,.alarm-metrics strong,.inline-summary strong,.fact-stats strong,.score-text{font-variant-numeric:tabular-nums}.metric-icon{border:1px solid rgba(55,86,75,.08)}.section-heading{border-bottom-color:var(--paper-200)}.section-heading h2{color:var(--text-900)}.section-heading h2:before{display:inline-block;width:12px;height:2px;margin-right:8px;content:"";vertical-align:4px;background:var(--signal-500)}.filter-bar{position:relative;flex-wrap:wrap;border-bottom:1px solid var(--paper-200)}.filter-bar:before{position:absolute;top:0;left:15px;width:40px;height:2px;content:"";background:var(--instrument-600)}.search-input{min-width:220px;flex:0 1 360px}.filter-count{padding:5px 9px;color:var(--text-500);background:var(--paper-100);border:1px solid var(--paper-200);border-radius:3px;font-family:var(--font-data)}.inline-summary{flex-wrap:wrap;border-left:3px solid var(--signal-600)}.inline-summary strong{font-family:var(--font-data)}.table-surface{border-radius:0 0 var(--radius-surface) var(--radius-surface)}.ant-table-wrapper .ant-table{font-size:13px}.ant-table-wrapper .ant-table-thead>tr>th{color:#50605a;font-size:11px;text-transform:none}.ant-table-wrapper .ant-table-tbody>tr>td{color:#34423d}.ant-table-wrapper .ant-table-tbody>tr:focus-within>td{background:#f2f8f5!important}.primary-cell strong,.project-cell strong,.person-cell strong{font-size:13px}.primary-cell span,.project-cell small,.person-cell small{font-family:var(--font-data);font-size:10px}.row-actions{min-width:max-content}.row-actions .ant-btn{width:36px;height:36px}.ant-btn{transition:color var(--ease-ui),background-color var(--ease-ui),border-color var(--ease-ui),box-shadow var(--ease-ui),opacity var(--ease-ui)}.ant-btn:active{box-shadow:none}.ant-btn-primary{background:var(--signal-600);border-color:var(--signal-600)}.ant-btn-primary:hover{background:#066a55!important;border-color:#066a55!important}.ant-btn-dangerous{color:var(--danger-600)}.ant-input-affix-wrapper:focus,.ant-input-affix-wrapper-focused,.ant-select-focused .ant-select-selector,.ant-picker-focused{border-color:var(--instrument-600)!important;box-shadow:0 0 0 3px #315fbd1c!important}.ant-segmented{padding:3px;background:var(--paper-100)}.ant-segmented-item{min-height:30px}.ant-segmented-item-selected{color:var(--text-900);box-shadow:0 1px 3px #0c1e171a}.ant-modal-mask{background:#08120e94!important;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.ant-modal-content{border:1px solid #dbe4df;border-radius:8px!important;box-shadow:0 24px 70px #05140e33!important}.ant-modal-title{font-size:17px!important}.modal-form .ant-form-item-label>label{color:#43514c;font-weight:600}.form-section-title{color:var(--text-900);border-bottom-color:var(--paper-200)}.ant-empty{padding:28px 16px}.ant-tabs .ant-tabs-tab{min-height:44px}.ant-tabs .ant-tabs-tab-active .ant-tabs-tab-btn,.ant-tabs .ant-tabs-tab:hover{color:var(--signal-600)}.ant-tabs .ant-tabs-ink-bar{background:var(--signal-600)}.ant-pagination-item,.ant-pagination-prev,.ant-pagination-next{min-width:34px;min-height:34px}.status-tag{min-height:24px;padding-inline:8px;font-weight:600}.status-tag i{box-shadow:0 0 0 3px color-mix(in srgb,currentColor 12%,transparent)}.course-card{position:relative;min-height:210px;border-top-color:var(--instrument-600)}.course-card:after{position:absolute;right:16px;bottom:0;width:62px;height:2px;content:"";background:repeating-linear-gradient(90deg,#8ea39b 0 8px,transparent 8px 13px)}.fact-hero{border-left:3px solid var(--instrument-600)}.fact-stats>div{min-width:112px}.alarm-metrics>div{border-top:2px solid var(--paper-200)}.alarm-metrics>div:first-child{border-top-color:var(--danger-600)}.alarm-metrics>div:nth-child(2){border-top-color:var(--safety-600)}.alarm-metrics>div:nth-child(3){border-top-color:var(--instrument-600)}.login-scene{isolation:isolate;background:#0b1713}.login-scene:before{opacity:.78}.login-brand{padding-bottom:12px;border-bottom:1px solid rgba(211,239,229,.22)}.scene-copy{max-width:670px}.scene-copy>span{font-family:var(--font-data)}.scene-copy h1{max-width:620px;font-size:clamp(38px,4.2vw,68px);line-height:1.07;font-weight:650}.scene-copy p{max-width:560px;font-size:14px;line-height:1.8}.login-panel:before{position:absolute;top:0;left:0;width:3px;height:100%;content:"";background:linear-gradient(var(--signal-500) 0 38%,var(--instrument-600) 38% 72%,var(--safety-600) 72% 100%)}.login-form h2{letter-spacing:0}.login-form label>span{font-size:13px}.input-shell{border-radius:6px;transition:border-color var(--ease-ui),box-shadow var(--ease-ui)}.primary-login{border-radius:6px;transition:background-color var(--ease-ui),box-shadow var(--ease-ui),opacity var(--ease-ui)}.primary-login:hover{transform:none}.screen-page{min-height:100dvh}.screen-panel{border-radius:5px}.screen-panel-title{border-bottom-color:#29483d}.screen-panel-title h2:before{display:inline-block;width:10px;height:2px;margin-right:7px;content:"";vertical-align:4px;background:#53c7a5}.screen-metrics strong,.screen-gauges strong,.screen-clock strong,.map-toolbar-stat strong{font-family:var(--font-data);font-variant-numeric:tabular-nums}@media (max-width: 1023px){.admin-content:before{left:20px}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid>:first-child{grid-column:span 2}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fact-hero{align-items:flex-start;flex-direction:column}.fact-stats{width:100%;overflow-x:auto}}@media (max-width: 640px){body{font-size:14px}.admin-shell>.ant-layout{margin-left:72px}.admin-sider{width:72px!important;min-width:72px!important;max-width:72px!important}.admin-content:before{left:12px}.header-context{display:none}.page-header{flex-direction:column;gap:12px}.page-kicker{margin-bottom:6px;font-size:9px}.page-actions{width:100%}.page-actions>*,.page-actions .ant-btn{flex:1 1 auto}.metric-grid{grid-template-columns:1fr 1fr;gap:8px}.metric-grid>:first-child{grid-column:span 2}.metric-tile{min-width:0;gap:9px}.metric-icon{width:36px;height:36px}.metric-label{white-space:normal}.dashboard-command-band{grid-template-columns:1fr}.command-band-intro:after{display:none}.filter-bar{gap:8px}.filter-bar>.ant-select,.filter-bar>.ant-segmented,.search-input,.school-scope-select{width:100%!important;flex:1 1 100%}.filter-count{width:100%;margin-left:0;text-align:center}.inline-summary{gap:10px}.inline-summary i{display:none}.inline-summary span{flex:1 1 calc(50% - 8px)}.course-grid{grid-template-columns:1fr}.alarm-metrics{grid-template-columns:repeat(3,1fr)}.alarm-metrics>div{min-width:0;padding-inline:9px}.alarm-metrics span:not(.alarm-level){display:none}.fact-stats>div{min-width:104px;padding-inline:12px}.form-grid{grid-template-columns:1fr;gap:0}.ant-modal{max-width:calc(100vw - 24px);margin:12px auto;padding-bottom:12px}.ant-modal-content{max-height:calc(100dvh - 24px);overflow-y:auto}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (max-width: 640px){.site-map{width:100%;min-height:220px;aspect-ratio:auto}.map-surface .site-map,.track-surface .site-map{width:calc(100% - 16px);margin:8px}}:root{--ink: #182538;--muted: #66758a;--line: #d7e0ea;--soft-line: #e7edf3;--surface: #ffffff;--canvas: #e9eef3;--green: #0d9488;--green-strong: #0f766e;--blue: #246bfe;--amber: #e17822;--red: #e0525c;--charcoal: #162338;--shadow-sm: 0 2px 4px rgba(32,49,74,.04), 0 10px 24px rgba(32,49,74,.055);--shadow-md: 0 18px 40px rgba(32,49,74,.13)}body{color:#182538;background:#e9eef3}.admin-sider{background:#162338!important;border-right:0;box-shadow:10px 0 32px #1322361f}.admin-sider:after{background:#5eead4;box-shadow:0 74px #60a5fa59,0 148px #fb923c40}.brand-lockup{height:78px;border-bottom-color:#ffffff17}.brand-lockup:after{background:repeating-linear-gradient(90deg,#7dd3fc 0 8px,transparent 8px 14px)}.brand-mark{color:#0f2b35;background:#5eead4;border:0;box-shadow:0 8px 18px #010c1847}.brand-lockup span{color:#8091aa}.admin-sider .ant-menu{padding-top:20px}.admin-sider .ant-menu-item{height:46px;color:#9eacc0;border:0}.admin-sider .ant-menu-item:hover{color:#fff!important;background:#ffffff13!important;border-color:transparent}.admin-sider .ant-menu-item-selected{color:#fff!important;background:#246bfe!important;border-color:transparent;box-shadow:0 8px 22px #246bfe4d}.admin-sider .ant-menu-item-selected:after{background:#fff;box-shadow:0 0 0 4px #ffffff24}.collapse-button{color:#7f8fa5;border-top-color:#ffffff17}.collapse-button:hover{background:#ffffff0f}.admin-header{height:68px!important;background:#ffffffeb!important;border-bottom:0;box-shadow:0 4px 16px #283a540f}.header-context>span,.header-context>time{color:#8190a3}.header-context>strong{color:#203149}.avatar{background:#246bfe;border-color:#1e5fdf;box-shadow:0 5px 14px #246bfe3d}.admin-content{min-height:calc(100vh - 68px);padding:0 30px 42px;background:#e9eef3;background-image:none}.admin-content:before{display:none}.page-stack{max-width:1720px}.page-stack:not(.map-detail-page)>.page-header{min-height:128px;align-items:center;margin:0 -30px 26px;padding:26px 30px;color:#fff;background:#203149}.page-stack:not(.map-detail-page)>.page-header:after{position:absolute;right:30px;bottom:0;width:210px;height:4px;content:"";background:linear-gradient(90deg,#5eead4 0,#5eead4 34%,#60a5fa 34%,#60a5fa 68%,#fb923c 68%)}.page-stack:not(.map-detail-page)>.page-header h1{color:#fff;font-size:28px}.page-stack:not(.map-detail-page)>.page-header p{color:#aebdd0;font-size:14px}.page-stack:not(.map-detail-page)>.page-header .page-kicker{color:#5eead4}.page-stack:not(.map-detail-page)>.page-header .connection-state{color:#b9f6e8;background:#0d948829;border-color:#5eead459}.page-stack:not(.map-detail-page)>.page-header .ant-btn:not(.ant-btn-primary){color:#fff;background:#ffffff14;border-color:#ffffff2e}.page-stack:not(.map-detail-page)>.page-header .ant-btn:not(.ant-btn-primary):hover{color:#fff;background:#ffffff26}.page-header{position:relative}.page-kicker{color:#246bfe}.dashboard-command-band{min-height:126px;color:#203149;background:#fff;border:0;box-shadow:var(--shadow-sm)}.command-band-intro{padding:22px 26px}.command-band-intro:before{top:22px;bottom:22px;width:4px;background:#0d9488}.command-band-intro>span,.command-band-stats span{color:#748399}.command-band-intro>strong{color:#203149;font-size:24px}.command-band-intro>small{color:#66758a}.command-band-intro:after{background:repeating-linear-gradient(90deg,#94a3b8 0 14px,transparent 14px 22px)}.command-band-stats{gap:1px;background:#e4ebf2}.command-band-stats>div{min-width:126px;border-left:0;background:#f7f9fc}.command-band-stats strong{color:#203149}.command-band-stats .command-status{color:#0d9488}.command-band-stats .command-alert{background:#fff5f3}.command-band-stats .command-alert strong{color:#e0525c}.metric-grid{gap:16px;margin-bottom:18px}.metric-tile{min-height:118px;padding:20px;background:#fff;border:0;border-top:0;border-radius:8px;box-shadow:var(--shadow-sm)}.metric-tile:before{position:absolute;top:0;right:18px;left:18px;height:3px;content:"";background:#a7b4c4;border-radius:0 0 3px 3px}.metric-tile:after{display:none}.metric-tile:hover{border-color:transparent;box-shadow:var(--shadow-md)}.metric-icon{width:48px;height:48px;color:#53657b;background:#eef2f6;border:0;border-radius:8px}.metric-label{color:#718096;font-size:13px}.metric-tile strong{color:#17263b;font-size:31px}.metric-green:before{background:#0d9488}.metric-blue:before{background:#246bfe}.metric-amber:before{background:#e17822}.metric-red:before{background:#e0525c}.metric-green .metric-icon{color:#0f766e;background:#e6f7f4}.metric-blue .metric-icon{color:#246bfe;background:#eaf1ff}.metric-amber .metric-icon{color:#d76b16;background:#fff1e5}.metric-red .metric-icon{color:#d83f4a;background:#ffecee}.surface,.filter-bar,.table-surface,.inline-summary,.fact-hero,.course-card,.alarm-metrics>div{border:0;box-shadow:var(--shadow-sm)}.surface{border-radius:8px}.section-heading{min-height:66px;padding:16px 20px;background:#fff;border-bottom-color:#e5ebf1}.section-heading h2{color:#203149;font-size:15px}.section-heading h2:before{width:4px;height:16px;margin-right:9px;vertical-align:-3px;background:#246bfe;border-radius:2px}.section-heading span{color:#7d8b9e}.dashboard-main-grid,.dashboard-lower-grid{gap:18px;margin-bottom:18px}.dashboard-map-grid{grid-template-columns:minmax(0,1fr)}.map-surface>.published-map-overview{min-height:0}.dashboard-main-grid>.vehicle-focus{border-top:0}.map-surface .section-heading,.vehicle-focus .section-heading{background:#fff}.site-map{background-color:#dfe7ec;border:0;border-radius:6px}.vehicle-focus{box-shadow:var(--shadow-sm)}.vehicle-kpis{border-color:#e2e9ef}.version-strip{background:#eef3f7}.filter-bar{min-height:72px;margin-top:0;padding:15px 18px;background:#fff;border-bottom:1px solid #e5ebf1;border-radius:8px 8px 0 0}.filter-count{color:#65758a;background:#edf2f6;border:0;border-radius:4px}.inline-summary{min-height:64px;padding:13px 18px;background:#fff;border-left:4px solid #246bfe;border-radius:8px}.inline-summary strong{color:#203149}.table-surface{border-radius:0 0 8px 8px}.ant-table-wrapper .ant-table-thead>tr>th{height:50px;color:#52637a;background:#edf2f6;border-bottom:0}.ant-table-wrapper .ant-table-tbody>tr>td{padding-top:15px;padding-bottom:15px;border-color:#edf1f5}.ant-table-wrapper .ant-table-tbody>tr:hover>td{background:#f1f6fb!important}.primary-cell strong,.project-cell strong,.person-cell strong{color:#203149}.person-cell>span,.project-cell>span{color:#fff;background:#246bfe;border:0;border-radius:7px}.project-cell>span{color:#246bfe;background:#e8f0ff}.ant-btn{min-height:38px;border-radius:6px}.ant-btn-primary{background:#246bfe;border-color:#246bfe;box-shadow:0 6px 14px #246bfe33}.ant-btn-primary:hover{background:#1e5fdf!important;border-color:#1e5fdf!important}.ant-input,.ant-input-affix-wrapper,.ant-select-selector,.ant-picker,.ant-input-number{min-height:40px;border-color:#d7e0ea;border-radius:6px!important}.ant-segmented{background:#edf2f6;border-radius:6px!important}.ant-modal-content{border:0;border-radius:8px!important}.status-running,.status-active,.status-passed,.status-success,.status-completed{color:#087f74;background:#e5f7f4;border-color:#bce9e2}.status-online,.status-ready{color:#245fc7;background:#eaf1ff;border-color:#cddcff}.status-paused,.status-waiting,.status-warning{color:#b75e19;background:#fff0e4;border-color:#ffd6b6}.status-fault,.status-fault_stopped,.status-safety_stopped,.status-failed,.status-critical,.status-open{color:#c63d47;background:#ffecee;border-color:#ffcbd0}.course-grid{gap:18px}.course-card{min-height:230px;padding:20px;border-top:0;border-left:4px solid #246bfe;border-radius:8px}.course-card:after{background:repeating-linear-gradient(90deg,#60a5fa 0 8px,transparent 8px 13px)}.course-meta span{background:#edf2f6}.fact-hero{min-height:116px;border-left-color:#246bfe}.person-avatar{background:#246bfe}.fact-stats .large-score,.score-text{color:#0d9488}.alarm-metrics>div{min-height:66px;border-radius:8px}.login-page{background:#e9eef3}.login-scene{isolation:isolate;background:#0d2229}.login-scene:before{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;content:"";opacity:1;background:linear-gradient(155deg,#173b45,#0d2933 46%,#071921)}.login-scene:after{z-index:5;background:linear-gradient(180deg,#0311170f 28%,#03111733,#031117d6,#031117fa)}.scene-atmosphere{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;opacity:.12;background-image:linear-gradient(rgba(145,210,207,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(145,210,207,.14) 1px,transparent 1px);background-size:72px 72px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 68%);mask-image:linear-gradient(to bottom,black,transparent 68%)}.campus-stage{position:absolute;z-index:2;top:0;right:0;bottom:0;left:0;overflow:hidden}.campus-ground{position:absolute;top:-6%;left:-18%;width:136%;height:96%;overflow:hidden;background-color:#416050;background-image:linear-gradient(#244638ad,#1f3a30b3),url(/assets/map/materials/grass/Grass01_1K_BaseColor.png);background-size:auto,220px;box-shadow:inset 0 -80px 110px #04151857;transform:perspective(1100px) rotateX(48deg) rotate(-4deg) scale(1.06);transform-origin:center 42%}.campus-ground:before{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;content:"";opacity:.2;background-image:linear-gradient(112deg,transparent 48%,rgba(207,220,205,.18) 49%,transparent 50%);background-size:210px 210px}.campus-ground:after{position:absolute;z-index:1;top:5%;right:5%;bottom:5%;left:5%;content:"";pointer-events:none;border:1px solid rgba(217,232,218,.22)}.campus-track{position:absolute;z-index:2;top:14%;right:8%;bottom:14%;left:8%;background-color:#343c3d;background-image:linear-gradient(#273031c2,#273031c2),url(/assets/map/materials/asphalt-03/Asphalt03_1K_BaseColor.jpg);background-size:auto,300px;border:3px solid rgba(198,210,206,.72);border-radius:20% 25% 18% 22%;box-shadow:inset 0 0 0 35px #313e3cf5,inset 0 0 0 38px #cdd9d38a,0 10px 20px #0e1e1b38}.campus-track:before{position:absolute;top:19px;right:19px;bottom:19px;left:19px;content:"";border:2px dashed rgba(238,244,238,.68);border-radius:inherit}.campus-track:after{position:absolute;top:9px;right:12px;bottom:13px;left:16px;content:"";opacity:.34;border:2px solid rgba(12,18,19,.74);border-radius:inherit;filter:blur(1px)}.campus-road-arrows{position:absolute;z-index:4;top:0;right:0;bottom:0;left:0;pointer-events:none}.campus-road-arrows i{position:absolute;width:27px;height:13px;opacity:.58;background:linear-gradient(90deg,#e5ebe240,#f2f5ebcc);clip-path:polygon(0 38%,62% 38%,62% 0,100% 50%,62% 100%,62% 62%,0 62%);filter:drop-shadow(0 1px 0 rgba(14,22,22,.38))}.campus-road-arrows i:nth-child(1){top:18%;left:47%;transform:rotate(3deg)}.campus-road-arrows i:nth-child(2){top:45%;right:25.5%;transform:rotate(93deg)}.campus-road-arrows i:nth-child(3){bottom:18%;left:48%;transform:rotate(183deg)}.campus-road-arrows i:nth-child(4){top:45%;left:23.5%;transform:rotate(273deg)}.campus-sensor-nodes{position:absolute;z-index:5;top:0;right:0;bottom:0;left:0;pointer-events:none}.campus-sensor-nodes i{position:absolute;width:5px;height:5px;background:#8ff5d4;border:1px solid rgba(226,255,246,.88);border-radius:50%;box-shadow:0 0 0 3px #5be2be2e,0 0 10px #5be2bea6}.campus-sensor-nodes i:before,.campus-sensor-nodes i:after{position:absolute;top:50%;left:50%;content:"";border:1px solid rgba(104,235,202,.45);border-radius:50%;transform:translate(-50%,-50%);animation:campus-sensor-scan 3.2s ease-out infinite}.campus-sensor-nodes i:before{width:18px;height:18px}.campus-sensor-nodes i:after{width:30px;height:30px;animation-delay:1.1s}.campus-sensor-nodes i:nth-child(1){top:15%;left:25%}.campus-sensor-nodes i:nth-child(2){top:29%;right:8%}.campus-sensor-nodes i:nth-child(3){right:22%;bottom:15%}.campus-sensor-nodes i:nth-child(4){bottom:27%;left:8%}.campus-field{position:absolute;z-index:3;top:29%;right:22%;bottom:27%;left:22%;overflow:hidden;background-color:#444e4e;background-image:linear-gradient(108deg,rgba(255,255,255,.035) 0 1px,transparent 1px 48px),linear-gradient(#374343b8,#374343b8),url(/assets/map/materials/asphalt-03/Asphalt03_1K_BaseColor.jpg);background-size:48px 100%,auto,220px;border:1px solid rgba(190,205,201,.28);border-radius:6px;box-shadow:inset 0 0 35px #101d1d4d,0 4px 12px #0f1b1b2e}.campus-field:before{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;content:"";opacity:.34;background:radial-gradient(ellipse at 74% 24%,rgba(16,22,22,.48),transparent 22%),radial-gradient(ellipse at 42% 78%,rgba(18,25,24,.42),transparent 26%);mix-blend-mode:multiply}.campus-curve{position:absolute;top:13%;left:7%;width:38%;height:73%}.campus-curve:before,.campus-curve:after{position:absolute;width:68%;height:51%;content:"";border:3px solid rgba(235,238,224,.76)}.campus-curve:before{top:0;right:0;border-bottom:0;border-left:0;border-radius:0 80% 0 0;transform:skew(-13deg)}.campus-curve:after{bottom:0;left:0;border-top:0;border-right:0;border-radius:0 0 0 80%;transform:skew(-13deg)}.campus-reverse-bays{position:absolute;top:13%;right:10%;width:26%;height:36%;display:grid;grid-template-columns:repeat(2,1fr);gap:12%;border-bottom:3px solid rgba(235,238,224,.72)}.campus-reverse-bays:before{position:absolute;right:-13%;bottom:-3px;width:126%;content:"";border-bottom:2px dashed rgba(235,238,224,.5);transform:translateY(15px)}.campus-reverse-bays i{border:3px solid rgba(235,238,224,.74);border-bottom:0}.campus-side-bay{position:absolute;right:9%;bottom:12%;width:27%;height:22%;border:3px solid rgba(235,238,224,.72)}.campus-side-bay:before,.campus-side-bay:after{position:absolute;top:-3px;bottom:-3px;width:10px;content:"";border-block:3px solid rgba(235,238,224,.72)}.campus-side-bay:before{left:-16px}.campus-side-bay:after{right:-16px}.campus-slalom{position:absolute;z-index:3;right:40%;bottom:15%;display:flex;gap:12px;transform:rotate(-5deg)}.campus-slalom i{position:relative;width:10px;height:14px;filter:drop-shadow(1px 2px 1px rgba(20,25,22,.52))}.campus-slalom i:before{position:absolute;top:0;left:1px;width:8px;height:11px;content:"";background:linear-gradient(90deg,#bf511f,#ffb35d 45%,#e46b26 78%,#a94119);clip-path:polygon(50% 0,100% 100%,0 100%)}.campus-slalom i:after{position:absolute;right:0;bottom:0;left:0;height:3px;content:"";background:linear-gradient(90deg,#9d3d17,#ff9b46 46%,#a84418);border-radius:1px}.campus-slalom i:nth-child(2n){transform:translateY(-14px)}.campus-tire-marks{position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;pointer-events:none}.campus-tire-marks i{position:absolute;opacity:.4}.campus-tire-marks i:nth-child(1){top:54%;left:44%;width:28%;height:2px;background:linear-gradient(90deg,transparent,rgba(12,18,18,.7) 18% 82%,transparent);box-shadow:0 7px #0c12127a;filter:blur(.4px);transform:rotate(-2deg)}.campus-tire-marks i:nth-child(2){top:25%;left:-3%;width:23%;height:48%;border:2px solid rgba(10,16,16,.52);border-right-color:transparent;border-bottom-color:transparent;border-radius:50%;transform:rotate(-7deg)}.campus-tire-marks i:nth-child(3){right:-3%;bottom:-9%;width:27%;height:40%;border:2px solid rgba(10,16,16,.5);border-top-color:transparent;border-left-color:transparent;border-radius:50%;transform:rotate(8deg)}.campus-crossing{position:absolute;z-index:4;right:7%;bottom:31%;width:16%;height:12px;background:repeating-linear-gradient(90deg,#edf1e8 0 9px,transparent 9px 15px);transform:rotate(88deg)}.campus-track-anchor,.campus-course-anchor{position:absolute;z-index:-1;width:1px;height:1px;pointer-events:none;opacity:0}.campus-course-anchor-start{top:50%;left:50%}.campus-course-anchor-end{top:50%;left:76%}.campus-vehicle-run{position:absolute;z-index:6;top:0;left:0;width:68px;height:39px;opacity:0;pointer-events:none;offset-anchor:center;transition:opacity .2s ease}.campus-vehicle-run.ready{opacity:1}.campus-vehicle-run:after{position:absolute;z-index:0;right:13px;bottom:2px;left:13px;height:5px;content:"";background:#030a0b66;border-radius:50%;filter:blur(3px)}.campus-vehicle-run-track:before{position:absolute;z-index:0;top:18px;right:52px;width:34px;height:2px;content:"";opacity:.7;background:linear-gradient(90deg,transparent,rgba(92,238,201,.12) 25%,rgba(92,238,201,.72));filter:blur(.2px)}.campus-vehicle-run-course:before{position:absolute;z-index:0;top:10px;left:-7px;width:17px;height:20px;content:"";opacity:.72;border-left:1px solid rgba(255,182,87,.7);border-radius:50%;filter:drop-shadow(-3px 0 4px rgba(255,154,72,.32));animation:campus-reverse-sensor 1.4s ease-in-out infinite}.login-jetta-canvas{position:relative;z-index:1;width:68px;height:39px;display:block;filter:drop-shadow(0 1px 1px rgba(6,13,14,.38));transform:scaleY(1.14);transform-origin:center}.login-jetta-source-hidden{display:none}.campus-vehicle-run-track{offset-rotate:auto 0deg;animation:campus-drive-track 28s linear infinite}.campus-vehicle-run-course{offset-rotate:auto 0deg;animation:campus-drive-course 10s ease-in-out infinite}.campus-location{position:absolute;z-index:7;top:84px;left:40px;display:flex;align-items:center;gap:7px;color:#e0f8f2;font-size:12px;font-weight:600;text-shadow:0 2px 8px rgba(0,10,15,.7)}.campus-location>i{width:6px;height:6px;margin-left:2px;background:#50e3b4;border-radius:50%;box-shadow:0 0 0 4px #50e3b426;animation:campus-status-pulse 2.4s ease-out infinite}.login-brand{z-index:7;top:30px;left:38px;padding:0;border-bottom:0}.login-brand:after{width:34px;height:2px;margin-left:6px;content:"";background:#51dfb2}.scene-copy{z-index:7;left:7%;bottom:8%}.scene-copy>span{color:#60e5bb}.scene-copy h1{margin-bottom:0;font-size:clamp(36px,4vw,62px);line-height:1.1;text-shadow:0 6px 24px rgba(0,10,16,.35)}@keyframes campus-drive-track{0%{offset-distance:0%}to{offset-distance:100%}}@keyframes campus-drive-course{0%,14%,to{offset-distance:0%}46%,62%{offset-distance:100%}}@keyframes campus-status-pulse{0%{box-shadow:0 0 #50e3b46b}72%,to{box-shadow:0 0 0 8px #50e3b400}}@keyframes campus-sensor-scan{0%{opacity:.85;transform:translate(-50%,-50%) scale(.45)}70%,to{opacity:0;transform:translate(-50%,-50%) scale(1)}}@keyframes campus-reverse-sensor{0%,to{opacity:.34;transform:scaleX(.7)}50%{opacity:.85;transform:scaleX(1)}}.login-panel{background:linear-gradient(155deg,#fffffff7 0,#fffffff7 32%,#ebf8f6f0 61%,#eef4fdf5),linear-gradient(120deg,#f8fbff,#e8f7f3 48%,#edf3fc 76%,#fff4eb);box-shadow:-28px 0 70px #08182d38}.login-panel:before{background:linear-gradient(#5eead4 0,#5eead4 38%,#60a5fa 38%,#60a5fa 72%,#fb923c 72%)}.input-shell{background:#fff;border-color:#d4dfeb}.input-shell:focus-within{border-color:#246bfe;box-shadow:0 0 0 3px #246bfe1f}.primary-login{background:#246bfe;box-shadow:0 9px 20px #246bfe3d}.primary-login:hover{background:#1e5fdf}.screen-page{background:#091526}.screen-header{background:#101f35;border-bottom-color:#29415f}.screen-panel{background:#101f35;border-color:#29415f}.screen-panel-title{border-bottom-color:#29415f}.screen-panel-title h2:before{background:#5eead4}.screen-content{background:#091526}.screen-footer{background:#0c192b;border-top-color:#29415f}@media (max-width: 1023px){.admin-content{padding-inline:20px}.page-stack:not(.map-detail-page)>.page-header{margin-inline:-20px;padding-inline:20px}}@media (max-width: 640px){.admin-content{padding:0 12px 30px}.page-stack:not(.map-detail-page)>.page-header{min-height:108px;margin:0 -12px 18px;padding:18px 14px}.page-stack:not(.map-detail-page)>.page-header:after{right:14px;width:120px}.page-stack:not(.map-detail-page)>.page-header h1{font-size:23px}.metric-grid{gap:10px}.metric-tile{min-height:104px;padding:15px}.metric-icon{width:40px;height:40px}.metric-tile strong{font-size:25px}.dashboard-main-grid,.dashboard-lower-grid{gap:12px}.filter-bar{min-height:0;padding:12px}.inline-summary{min-height:58px}}.admin-sider{background:#172033!important;box-shadow:8px 0 28px #1620331f}.admin-sider:after{display:none}.brand-lockup{height:76px;gap:12px;padding-inline:18px;border-bottom:1px solid rgba(255,255,255,.08)}.brand-lockup:after{display:none}.brand-mark{width:38px;height:38px;color:#d9fff7;background:#147d72;border:1px solid rgba(255,255,255,.12);box-shadow:none}.brand-mark img{width:100%;height:100%;display:block;object-fit:cover;border-radius:inherit}.brand-copy{min-width:0}.brand-lockup .brand-copy strong{overflow:hidden;color:#f7fafc;font-size:15px;line-height:1.35;text-overflow:ellipsis}.brand-lockup .brand-copy span{margin-top:3px;color:#8fa0b8;font-size:11px;line-height:1.3}.admin-sider .ant-menu{min-height:0;padding:12px 10px 18px;overflow-x:hidden;overflow-y:auto}.admin-sider .ant-menu-item-group-title{padding:14px 12px 6px;color:#93a1b5;font-size:11px;line-height:1}.admin-sider .ant-menu-item-group:first-child .ant-menu-item-group-title{padding-top:7px}.admin-sider .ant-menu-item{height:44px;margin:3px 0;padding-inline:13px!important;color:#aab6c8;border:0;border-radius:6px}.admin-sider .ant-menu-item:hover{color:#f8fafc!important;background:#fff1!important}.admin-sider .ant-menu-item-selected{color:#f3fffc!important;background:#147d7247!important;box-shadow:inset 3px 0 #4fd1bd}.admin-sider .ant-menu-item-selected:after{display:none}.admin-sider .ant-menu-item .ant-menu-title-content{font-size:13px;font-weight:500}.admin-sider .ant-menu-inline-collapsed .ant-menu-item-group-title{display:none}.admin-sider .ant-menu-inline-collapsed .ant-menu-item-group-list{margin:0}.collapse-button{height:52px;display:flex;align-items:center;justify-content:center;gap:9px;color:#8998ad;border-top-color:#ffffff14;font-size:12px}.collapse-button:hover{color:#f8fafc;background:#ffffff0e}.admin-header{height:68px!important;padding:0 28px!important;background:#fffffff5!important;border-bottom:1px solid #e5eaf0;box-shadow:none;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-context{min-width:0}.header-context>span{color:#8a96a6;font-size:12px}.header-context>strong{color:#26364d;font-size:14px;font-weight:650}.header-context>i{background:#dce2e9}.header-actions .ant-btn{min-height:40px;color:#526278;border-radius:6px}.header-actions .ant-btn:hover{color:#0f766e!important;background:#edf8f6!important}.user-button{min-height:42px;padding:4px 7px 4px 9px;color:#35465d;border:1px solid transparent}.user-button:hover{background:#f5f7fa;border-color:#e3e8ee}.avatar{background:#147d72;border:0;box-shadow:none}.mobile-nav-toggle,.mobile-nav-scrim{display:none}.admin-content{padding:0 28px 40px;background:#f4f6f8;background-image:none}.dashboard-page{max-width:1600px;margin-inline:auto}.page-stack.dashboard-page>.page-header{min-height:112px;align-items:center;margin:0;padding:24px 0 22px;color:inherit;background:transparent}.page-stack.dashboard-page>.page-header:after{display:none}.page-stack.dashboard-page>.page-header h1{color:#203149;font-size:26px;line-height:1.25}.page-stack.dashboard-page>.page-header p{color:#6e7c8f;font-size:13px}.dashboard-scope-control{display:flex;align-items:center;gap:10px}.dashboard-scope-control>span{color:#6e7c8f;font-size:12px;white-space:nowrap}.dashboard-scope-control .school-scope-select{width:220px}.dashboard-skeleton{padding:22px;background:#fff;border-radius:8px}.dashboard-page .metric-grid{gap:12px;margin-bottom:16px}.dashboard-page .metric-tile{min-height:106px;gap:16px;padding:18px;border:1px solid #e3e8ee;border-radius:8px;box-shadow:0 1px 2px #20314909}.dashboard-page .metric-tile:before{top:18px;right:auto;bottom:18px;left:0;width:3px;height:auto;border-radius:0 2px 2px 0}.dashboard-page .metric-tile:hover{box-shadow:0 8px 22px #20314913}.dashboard-page .metric-icon{width:44px;height:44px;border-radius:7px}.dashboard-page .metric-label{margin-bottom:5px;color:#718096;font-size:12px}.dashboard-page .metric-tile strong{color:#1d2c41;font-size:28px}.dashboard-page .dashboard-lower-grid{grid-template-columns:minmax(0,1.35fr) minmax(360px,.85fr);gap:16px;margin-bottom:0}.dashboard-page .surface{overflow:hidden;border:1px solid #e3e8ee;border-radius:8px;box-shadow:0 1px 2px #20314909}.dashboard-page .section-heading{min-height:64px;padding:14px 18px;background:#fff}.dashboard-page .section-heading h2{color:#26364d;font-size:15px}.dashboard-page .section-heading h2:before{background:#147d72}.dashboard-page .section-heading span{color:#8490a0;font-size:11px}.dashboard-page .section-heading .ant-btn{min-height:36px;padding-inline:8px;color:#246bfe}.dashboard-page .chart-surface .trend-chart{height:292px;padding:12px 16px 16px}.dashboard-page .compact-list{padding:4px 16px 10px}.dashboard-page .compact-list button{min-height:58px;padding:9px 4px;border-bottom-color:#edf0f4;border-radius:0}.dashboard-page .compact-list button:hover{background:#f8fafb}.dashboard-page .compact-list strong{color:#34445a;font-size:12px;font-weight:600}.dashboard-page .compact-list small{margin-top:4px;color:#8b96a6;font-size:10px}.dashboard-page .ant-empty{padding-block:70px}@media (max-width: 1023px){.dashboard-page .dashboard-lower-grid{grid-template-columns:1fr}}@media (max-width: 900px) and (min-width: 641px){.admin-shell>.ant-layout{margin-left:76px}}@media (max-width: 640px){.admin-shell>.ant-layout{margin-left:0}.admin-sider{display:block;width:244px!important;min-width:244px!important;max-width:244px!important;transform:translate(-100%);transition:transform .2s ease}.admin-sider.mobile-nav-open{transform:translate(0)}.admin-sider.mobile-nav-open.ant-layout-sider-collapsed{width:244px!important;min-width:244px!important;max-width:244px!important}.admin-sider.mobile-nav-open .ant-menu-inline-collapsed{width:244px}.admin-sider.mobile-nav-open .ant-menu-inline-collapsed .ant-menu-item-group-title{display:block}.admin-sider.mobile-nav-open .ant-menu-inline-collapsed .ant-menu-title-content,.admin-sider.mobile-nav-open .brand-copy,.admin-sider.mobile-nav-open .collapse-button span{display:block;opacity:1}.admin-sider.mobile-nav-open .ant-menu-inline-collapsed .ant-menu-item{padding-inline:13px!important}.admin-sider .collapse-button{display:none}.mobile-nav-scrim{position:fixed;z-index:19;top:0;right:0;bottom:0;left:0;display:block;background:#0f172a75;border:0}.mobile-nav-toggle{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;padding:0;color:#405168;background:#f4f6f8;border:1px solid #e1e6ec;border-radius:6px}.admin-header{height:60px!important;padding-inline:12px!important}.header-context>span,.header-context>i{display:none}.header-context{display:flex;gap:9px}.header-context>strong{max-width:110px;font-size:13px}.header-actions{gap:4px}.header-actions .ant-btn{width:44px;height:44px}.user-button{min-height:44px;padding-left:4px}.admin-content{min-height:calc(100dvh - 60px);padding:0 12px 28px}.page-stack.dashboard-page>.page-header{min-height:0;align-items:stretch;flex-direction:column;gap:14px;padding:20px 0 18px}.page-stack.dashboard-page>.page-header h1{font-size:22px}.page-stack.dashboard-page>.page-header p{display:block;font-size:12px}.dashboard-page .page-actions{justify-content:flex-start}.dashboard-scope-control{width:100%;align-items:stretch;flex-direction:column;gap:6px}.dashboard-scope-control .school-scope-select{width:100%}.dashboard-page .metric-grid{gap:8px}.dashboard-page .metric-tile{min-height:88px;gap:10px;padding:12px}.dashboard-page .metric-icon{width:36px;height:36px}.dashboard-page .metric-tile strong{font-size:22px}.dashboard-page .section-heading{min-height:60px;padding:12px 14px}.dashboard-page .section-heading .ant-btn{min-height:44px}.dashboard-page .chart-surface .trend-chart{height:250px;padding-inline:8px}.dashboard-page .compact-list{padding-inline:12px}}@media (prefers-reduced-motion: reduce){.admin-sider{transition:none}}.site-map:not(.site-map-dark){background-color:#d9e3e9}.site-map:not(.site-map-dark):before{border-color:#9fb0ba}.site-map:not(.site-map-dark) .road{background:#b7c5cc;border-color:#9eafb7}.site-map:not(.site-map-dark) .road:after{border-color:#f8fbfc}.site-map:not(.site-map-dark) .parking-bay{border-color:#f8fbfc}:root{--control-height: 40px}.ant-input:not(textarea),.ant-input-affix-wrapper,.ant-select-single,.ant-select-single .ant-select-selector,.ant-picker,.ant-input-number:not(.ant-input-number-sm),.ant-segmented{height:var(--control-height);min-height:var(--control-height)}.ant-input-affix-wrapper{display:inline-flex;align-items:center;padding-block:0}.ant-input-affix-wrapper>input.ant-input{height:auto;min-height:0;padding-block:0;line-height:calc(var(--control-height) - 2px)}.ant-input-affix-wrapper .ant-input-prefix,.ant-input-affix-wrapper .ant-input-suffix{display:inline-flex;align-items:center;align-self:stretch}.ant-select-single .ant-select-selector{display:flex;align-items:center;padding-block:0!important}.ant-select-single .ant-select-selector .ant-select-selection-wrap,.ant-select-single .ant-select-selector .ant-select-selection-search,.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{height:calc(var(--control-height) - 2px);min-height:0;line-height:calc(var(--control-height) - 2px)!important}.ant-select-single .ant-select-selector .ant-select-selection-wrap,.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{display:flex;align-items:center}.ant-select-single .ant-select-arrow,.ant-select-single .ant-select-clear{top:50%;margin-top:0;transform:translateY(-50%)}.ant-picker{padding-block:0}.ant-picker .ant-picker-input{align-items:center}.ant-picker .ant-picker-input>input{height:calc(var(--control-height) - 2px)}.ant-input-number:not(.ant-input-number-sm) .ant-input-number-input-wrap,.ant-input-number:not(.ant-input-number-sm) .ant-input-number-input{height:calc(var(--control-height) - 2px)}.ant-input-number:not(.ant-input-number-sm) .ant-input-number-input{line-height:calc(var(--control-height) - 2px)}.ant-segmented{display:inline-flex;align-items:center;padding:3px}.ant-segmented .ant-segmented-group{width:100%;height:100%}.ant-segmented .ant-segmented-item{display:flex;align-items:center;justify-content:center;min-height:0}.ant-segmented .ant-segmented-item-label{display:flex;align-items:center;min-height:0;line-height:1}.admin-shell>.ant-layout{width:0;min-width:0;flex:1 1 0}.admin-shell.screen-shell>.ant-layout{width:100%;min-width:0;flex:1 1 auto;margin-left:0!important}.admin-shell.screen-shell .admin-content.screen-content-host{width:100%;min-width:0;height:100dvh;min-height:100dvh;padding:0;overflow:hidden}.admin-content{container-name:workspace;container-type:inline-size;overflow-x:clip}.admin-content>.page-stack,.dashboard-page{width:100%;max-width:1680px;margin-inline:auto}.dashboard-page .metric-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.course-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.page-stack:not(.map-detail-page)>.page-header,.page-stack.dashboard-page>.page-header{min-height:104px;align-items:center;margin:0;padding:22px 0 20px;color:inherit;background:transparent}.page-stack:not(.map-detail-page)>.page-header:after{display:none}.page-stack:not(.map-detail-page)>.page-header h1,.page-stack.dashboard-page>.page-header h1{margin:0 0 6px;color:#203149;font-size:25px;line-height:1.25}.page-stack:not(.map-detail-page)>.page-header p,.page-stack.dashboard-page>.page-header p{margin:0;color:#6e7c8f;font-size:13px;line-height:1.5}.page-stack:not(.map-detail-page)>.page-header .ant-btn:not(.ant-btn-primary){color:#405168;background:#fff;border-color:#d7dfe8}.page-stack:not(.map-detail-page)>.page-header .ant-btn:not(.ant-btn-primary):hover{color:#0f766e;background:#f7fbfa;border-color:#79b8ac}.page-header-copy{min-width:0}.page-actions{flex:0 0 auto;min-width:0}.page-actions .ant-btn{min-height:42px}.inline-summary{min-height:60px;gap:0;margin-bottom:12px;padding:12px 18px;color:#647287;background:#fff;border:1px solid #dfe5ec;border-left:3px solid #147d72;border-radius:8px;box-shadow:0 1px 2px #20314908}.inline-summary>span{min-width:130px;flex:1 1 0;padding-inline:14px;white-space:nowrap}.inline-summary>span:first-child{padding-left:0}.inline-summary>span:last-child{padding-right:0}.inline-summary strong{color:#203149;font-family:var(--font-ui);font-size:17px}.inline-summary i{width:1px;height:24px;flex:0 0 auto;background:#e2e7ed}.filter-bar,.training-filter-bar{min-height:64px;gap:10px;padding:11px 16px;background:#fff;border:1px solid #dfe5ec;border-bottom-color:#e7ebf0;border-radius:8px 8px 0 0;box-shadow:none}.filter-bar .search-input,.training-filter-bar .search-input{width:min(520px,100%);max-width:520px;flex:1 1 360px}.filter-bar:before{display:none}.filter-count{margin-left:auto;padding:5px 9px;color:#647287;background:#f1f4f7;border:0;border-radius:4px;font-family:var(--font-ui);font-size:11px}.table-surface{min-width:0;border:1px solid #dfe5ec;border-top:0;border-radius:0 0 8px 8px;box-shadow:0 6px 20px #2031490b}.table-surface .ant-empty{padding:64px 16px}.table-surface .ant-table-container{min-width:0}.ant-table-wrapper .ant-table-thead>tr>th{height:48px;padding-block:12px;color:#56667b;background:#f2f5f8;border-bottom:1px solid #e2e7ed;font-size:11px;font-weight:650}.ant-table-wrapper .ant-table-tbody>tr>td{min-height:58px;padding-top:13px;padding-bottom:13px;border-color:#edf0f4}.ant-table-wrapper .ant-table-tbody>tr:hover>td{background:#f7faf9!important}.ant-table-wrapper .ant-table-cell-fix-right{box-shadow:-1px 0 #edf0f4}.row-actions{gap:4px}.row-actions .ant-btn{width:36px;min-width:36px;height:36px;min-height:36px;color:#526278;border-radius:6px}.row-actions .ant-btn:hover{color:#0f766e!important;background:#edf8f6!important}.ant-btn-primary{background:#147d72;border-color:#147d72;box-shadow:0 5px 12px #147d7229}.ant-btn-primary:hover{background:#0f6e64!important;border-color:#0f6e64!important}.ant-modal{top:24px;padding-bottom:0}.ant-modal .ant-modal-content{max-height:calc(100dvh - 48px);padding:0!important;overflow:hidden;background:#fff;border:1px solid #dce3ea;border-radius:8px!important;box-shadow:0 24px 70px #0f1e3238!important}.ant-modal .ant-modal-header{margin:0;padding:20px 24px 16px;background:#fff;border-bottom:1px solid #e7ebf0}.ant-modal .ant-modal-title{color:#203149;font-size:17px!important;font-weight:650}.ant-modal .ant-modal-close{top:10px;right:12px;width:44px;height:44px;color:#718096;border-radius:6px}.ant-modal .ant-modal-close:hover{color:#26364d;background:#f1f4f7}.ant-modal .ant-modal-body{max-height:calc(100dvh - 188px);padding:20px 24px 8px;overflow-x:hidden;overflow-y:auto;scrollbar-gutter:stable}.ant-modal .ant-modal-footer{margin:0;padding:14px 24px;background:#fff;border-top:1px solid #e7ebf0}.ant-modal .ant-modal-footer .ant-btn{min-width:80px;min-height:40px}.ant-modal .ant-form-vertical .ant-form-item{margin-bottom:16px}.ant-modal .ant-form-vertical .ant-form-item-label{padding-bottom:7px}.ant-modal .ant-form-vertical .ant-form-item-label>label{height:auto;color:#3d4d62;font-size:13px;font-weight:600;line-height:1.35}.ant-modal .form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.ant-modal .form-section-title{margin:4px 0 14px;padding:0 0 10px;color:#26364d;border-bottom:1px solid #e3e8ee;font-size:13px;font-weight:650;line-height:1.4}.ant-modal .modal-form>.form-section-title:first-child{margin-top:0}.ant-modal .ant-input:not(textarea),.ant-modal .ant-input-affix-wrapper,.ant-modal .ant-select-single,.ant-modal .ant-select-single .ant-select-selector,.ant-modal .ant-picker,.ant-modal .ant-input-number:not(.ant-input-number-sm){height:42px;min-height:42px;color:#27374d;background:#fff;border-color:#cfd8e3;border-radius:6px!important;box-shadow:0 1px 1px #20314906}.ant-modal textarea.ant-input{min-height:84px;padding:10px 12px;color:#27374d;background:#fff;border-color:#cfd8e3;border-radius:6px;resize:vertical}.ant-modal .ant-input:hover,.ant-modal .ant-input-affix-wrapper:hover,.ant-modal .ant-select:not(.ant-select-disabled):hover .ant-select-selector,.ant-modal .ant-picker:hover,.ant-modal .ant-input-number:hover{border-color:#88aaa5!important}.ant-modal .ant-input:focus,.ant-modal .ant-input-focused,.ant-modal .ant-input-affix-wrapper-focused,.ant-modal .ant-select-focused .ant-select-selector,.ant-modal .ant-picker-focused,.ant-modal .ant-input-number-focused{border-color:#147d72!important;box-shadow:0 0 0 3px #147d721c!important}.ant-modal .ant-input[disabled],.ant-modal .ant-input-affix-wrapper-disabled,.ant-modal .ant-select-disabled .ant-select-selector,.ant-modal .ant-input-number-disabled{color:#68778a;background:#f1f4f7;border-color:#dce2e9;box-shadow:none}@container workspace (max-width: 980px){.dashboard-page .metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-page .dashboard-lower-grid,.dashboard-main-grid,.facts-grid{grid-template-columns:1fr}.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@container workspace (max-width: 720px){.filter-bar,.training-filter-bar{align-items:stretch}.filter-bar>.ant-select,.filter-bar>.ant-segmented,.training-filter-bar>.ant-select,.search-input,.school-scope-select{width:100%!important;flex:1 1 100%}.filter-count{width:100%;margin-left:0;text-align:center}.dashboard-page .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-page .metric-grid>:first-child{grid-column:span 2}.course-grid{grid-template-columns:1fr}}@media (max-width: 640px){.page-stack:not(.map-detail-page)>.page-header,.page-stack.dashboard-page>.page-header{min-height:0;align-items:stretch;gap:14px;margin:0;padding:20px 0 18px}.page-stack:not(.map-detail-page)>.page-header h1,.page-stack.dashboard-page>.page-header h1{font-size:22px}.page-stack:not(.map-detail-page)>.page-header p,.page-stack.dashboard-page>.page-header p{display:block;font-size:12px}.inline-summary{gap:10px;padding:12px 14px}.ant-modal{top:0;width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px);margin:12px auto}.ant-modal .ant-modal-content{max-height:calc(100dvh - 24px)}.ant-modal .ant-modal-header{padding:17px 18px 14px}.ant-modal .ant-modal-body{max-height:calc(100dvh - 170px);padding:18px 18px 4px}.ant-modal .ant-modal-footer{padding:12px 18px}.ant-modal .form-grid{grid-template-columns:1fr;gap:0}.ant-modal .ant-input:not(textarea),.ant-modal .ant-input-affix-wrapper,.ant-modal .ant-select-single,.ant-modal .ant-select-single .ant-select-selector,.ant-modal .ant-picker,.ant-modal .ant-input-number:not(.ant-input-number-sm){height:44px;min-height:44px}}.dashboard-page .metric-grid{gap:1px;overflow:hidden;padding:0;border:1px solid var(--border-strong);border-radius:var(--radius-lg);background:var(--border-strong);box-shadow:var(--shadow-sm)}.dashboard-page .metric-tile,.dashboard-page .metric-tile:hover{min-height:104px;margin:0;border:0;border-radius:0;background:var(--surface);box-shadow:none;transform:none}.dashboard-page .metric-tile:before,.dashboard-page .metric-tile:after{display:none}.workspace-form-drawer{--control-height: 42px}.workspace-form-drawer .ant-drawer-content-wrapper{max-width:calc(100vw - 24px);box-shadow:-16px 0 40px #0f172a29!important}.workspace-form-drawer .ant-drawer-header{min-height:68px;padding:16px 24px;border-bottom:1px solid var(--border)}.workspace-form-drawer .ant-drawer-title{color:var(--text);font-size:17px;font-weight:700}.workspace-form-drawer .ant-drawer-close{width:40px;height:40px;margin-inline-end:8px;color:var(--text-muted)}.workspace-form-drawer .ant-drawer-body{padding:22px 24px 28px;background:#fbfcfd}.workspace-form-drawer .ant-drawer-footer{min-height:72px;padding:14px 24px;border-top:1px solid var(--border);background:var(--surface)}.workspace-form-drawer .drawer-footer-actions{display:flex;justify-content:flex-end;gap:10px}.workspace-form-drawer .drawer-footer-actions .ant-btn{min-width:88px}.workspace-form-drawer .form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.workspace-form-drawer .ant-form-item{margin-bottom:18px}.workspace-form-drawer .ant-form-item-label{padding-bottom:7px}.workspace-form-drawer .ant-form-item-label>label{height:auto;color:var(--text-secondary);font-size:13px;font-weight:650}.workspace-form-drawer .form-section-title{margin:4px 0 16px;padding-bottom:10px;color:var(--text);border-bottom:1px solid var(--border);font-size:13px;font-weight:700}.workspace-form-drawer .project-form>.form-section-title:first-child{margin-top:0}.workspace-form-drawer :is(.ant-input,.ant-input-affix-wrapper,.ant-picker,.ant-select-selector,.ant-input-number){border-color:#cfd8e3!important;background:var(--surface)!important}.workspace-form-drawer :is(.ant-input,.ant-input-affix-wrapper,.ant-picker,.ant-select,.ant-input-number):focus-within{border-color:var(--brand)!important;box-shadow:0 0 0 3px #147d721c!important}@media (max-width: 640px){.workspace-form-drawer{--control-height: 44px}.workspace-form-drawer .ant-drawer-content-wrapper{max-width:100vw}.workspace-form-drawer .ant-drawer-header{min-height:60px;padding:10px 16px}.workspace-form-drawer .ant-drawer-body{padding:18px 16px 24px}.workspace-form-drawer .ant-drawer-footer{min-height:68px;padding:12px 16px}.workspace-form-drawer .form-grid{grid-template-columns:1fr;gap:0}}@media (prefers-reduced-motion: reduce){.workspace-form-drawer .ant-drawer-content-wrapper,.workspace-form-drawer .ant-drawer-mask,.dashboard-page .metric-tile{transition:none!important}}@media (max-width: 640px){.filter-bar>.ant-input,.filter-bar>.ant-input-affix-wrapper,.filter-bar>.ant-select,.filter-bar>.ant-segmented,.training-filter-bar>.ant-input,.training-filter-bar>.ant-input-affix-wrapper,.training-filter-bar>.ant-select,.training-filter-bar>.ant-segmented,.filter-bar .search-input,.training-filter-bar .search-input{flex:0 0 auto;height:44px;min-height:44px}.inline-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:8px 10px}.inline-summary>span{min-width:0;padding:6px 8px;overflow:hidden;text-align:center;text-overflow:ellipsis}.inline-summary>span:first-child,.inline-summary>span:last-child{padding-inline:8px}.inline-summary i{display:none}.inline-summary strong{display:block;margin:3px 0 0}}.page-stack:not(.dashboard-page)>.page-header p{display:none}.page-stack:not(.dashboard-page)>.page-header{min-height:86px;padding-block:18px}.inline-summary{display:flex;align-items:stretch}.inline-summary>div{min-width:130px;flex:1 1 0;display:flex;align-items:center;gap:10px;padding-inline:14px;white-space:nowrap}.inline-summary>div:first-child{padding-left:0}.inline-summary>div:last-child{padding-right:0}.inline-summary>div+div{border-left:1px solid #e2e7ed}.summary-icon{width:30px;height:30px;display:grid;flex:0 0 30px;place-items:center;color:#147d72;background:#eaf7f4;border:1px solid #cceae4;border-radius:8px}.inline-summary>div:nth-child(2) .summary-icon{color:#246bfe;background:#edf3ff;border-color:#d8e5ff}.inline-summary>div:nth-child(3) .summary-icon{color:#b7791f;background:#fff7e8;border-color:#f5e2ba}.summary-copy{min-width:0;display:flex;align-items:baseline;gap:9px}.inline-summary dt{color:#647287;font-size:12px}.inline-summary dd{margin:0;color:#203149;font-family:var(--font-data);font-size:20px;font-weight:700;line-height:1}@media (max-width: 640px){.page-stack:not(.dashboard-page)>.page-header{min-height:76px;padding-block:16px}.inline-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch}.inline-summary>div{min-width:0;padding-inline:8px;display:flex;flex-direction:column;gap:4px;text-align:center}.inline-summary>div:first-child,.inline-summary>div:last-child{padding-inline:8px}.inline-summary>div+div{border-left:0}.summary-icon{width:26px;height:26px;flex-basis:26px;border-radius:7px}.summary-copy{width:100%;display:grid;gap:3px;justify-items:center}.inline-summary dt{max-width:100%;overflow:hidden;text-overflow:ellipsis}.inline-summary dd{font-size:18px}}.admin-shell:not(.screen-shell){--green: #43c9ef;--green-strong: #199fc4;--slider-track: #43c9ef;--slider-track-hover: #199fc4;--slider-focus: rgba(67, 201, 239, .22);--workspace-bg: #f6f7f9;--workspace-panel: #ffffff;--workspace-text: #18181b;--workspace-muted: #71717a;--workspace-border: #e4e4e7;--workspace-border-strong: #d4d4d8;--workspace-hover: #fafafa;--workspace-primary: #18181b}.admin-shell:not(.screen-shell) .admin-content:not(.map-detail-content):not(.training-replay-content):not(.simulator-content){padding:0 18px 32px;color:var(--workspace-text);background:var(--workspace-bg);background-image:none}.admin-shell:not(.screen-shell) .admin-content:not(.map-detail-content):not(.training-replay-content):not(.simulator-content)>.page-stack,.admin-shell:not(.screen-shell) .admin-content:not(.map-detail-content):not(.training-replay-content):not(.simulator-content)>.dashboard-page{max-width:1760px}.admin-shell:not(.screen-shell) .page-stack:not(.map-detail-page)>.page-header,.admin-shell:not(.screen-shell) .page-stack.dashboard-page>.page-header{min-height:80px;margin:0;padding:18px 2px 14px;border:0}.admin-shell:not(.screen-shell) .page-stack:not(.map-detail-page)>.page-header:after,.admin-shell:not(.screen-shell) .page-stack.dashboard-page>.page-header:after{display:none}.admin-shell:not(.screen-shell) .page-stack:not(.map-detail-page)>.page-header h1,.admin-shell:not(.screen-shell) .page-stack.dashboard-page>.page-header h1{margin:0;color:var(--workspace-text);font-size:24px;font-weight:650;line-height:1.3}.admin-shell:not(.screen-shell) .page-stack>.page-header p{display:none}.admin-shell:not(.screen-shell) .page-actions .ant-btn{min-height:40px}.admin-shell:not(.screen-shell) .inline-summary{min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 12px;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none}.admin-shell:not(.screen-shell) .inline-summary>div{min-width:0;min-height:88px;display:flex;align-items:flex-start;justify-content:space-between;flex-direction:column;gap:9px;padding:14px 16px;background:var(--workspace-panel);border:1px solid var(--workspace-border);border-radius:8px;white-space:normal}.admin-shell:not(.screen-shell) .inline-summary>div:first-child,.admin-shell:not(.screen-shell) .inline-summary>div:last-child{padding-inline:16px}.admin-shell:not(.screen-shell) .inline-summary>div+div{border-left:1px solid var(--workspace-border)}.admin-shell:not(.screen-shell) .inline-summary dt{color:var(--workspace-muted);font-size:12px;font-weight:500;line-height:1.3}.admin-shell:not(.screen-shell) .inline-summary dd{margin:0;color:var(--workspace-text);font-family:var(--font-data);font-size:26px;font-weight:650;line-height:1}.admin-shell:not(.screen-shell) .filter-bar,.admin-shell:not(.screen-shell) .training-filter-bar{min-height:60px;gap:10px;margin:0;padding:10px 12px;background:var(--workspace-panel);border:1px solid var(--workspace-border);border-bottom-color:#ededf0;border-radius:8px 8px 0 0;box-shadow:none}.admin-shell:not(.screen-shell) .filter-bar:before{display:none}.admin-shell:not(.screen-shell) .filter-count,.admin-shell:not(.screen-shell) .training-result-count,.admin-shell:not(.screen-shell) .calls-result-count{color:#52525b;background:#f4f4f5;border:0;border-radius:5px;font-size:11px}.admin-shell:not(.screen-shell) .filter-bar .ant-input-affix-wrapper,.admin-shell:not(.screen-shell) .filter-bar .ant-select-selector,.admin-shell:not(.screen-shell) .training-filter-bar .ant-input-affix-wrapper,.admin-shell:not(.screen-shell) .training-filter-bar .ant-select-selector{background:#fff;border-color:var(--workspace-border-strong);box-shadow:none}.admin-shell:not(.screen-shell) .filter-bar .ant-input-affix-wrapper:focus-within,.admin-shell:not(.screen-shell) .training-filter-bar .ant-input-affix-wrapper:focus-within{border-color:#a1a1aa;box-shadow:0 0 0 3px #18181b0f}.admin-shell:not(.screen-shell) .table-surface,.admin-shell:not(.screen-shell) .training-table{min-width:0;overflow:hidden;background:var(--workspace-panel);border:1px solid var(--workspace-border);border-top:0;border-radius:0 0 8px 8px;box-shadow:none}.admin-shell:not(.screen-shell) .ant-table-wrapper .ant-table-thead>tr>th{height:46px!important;padding-block:10px;color:#71717a!important;background:#fafafa!important;border-bottom:1px solid var(--workspace-border)!important;font-size:11px!important;font-weight:600}.admin-shell:not(.screen-shell) .ant-table-wrapper .ant-table-tbody>tr>td{min-height:56px;padding-top:10px;padding-bottom:10px;color:#3f3f46;border-color:#eeeeef}.admin-shell:not(.screen-shell) .ant-table-wrapper .ant-table-tbody>tr:hover>td{background:var(--workspace-hover)!important}.admin-shell:not(.screen-shell) .ant-table-wrapper .ant-table-cell-fix-right{background:#fff;box-shadow:-1px 0 #eeeeef}.admin-shell:not(.screen-shell) .primary-cell strong,.admin-shell:not(.screen-shell) .project-cell strong,.admin-shell:not(.screen-shell) .person-cell strong,.admin-shell:not(.screen-shell) .device-cell strong,.admin-shell:not(.screen-shell) .map-name-cell strong{color:#27272a}.admin-shell:not(.screen-shell) .primary-cell span,.admin-shell:not(.screen-shell) .project-cell small,.admin-shell:not(.screen-shell) .device-cell small,.admin-shell:not(.screen-shell) .map-name-cell small{color:#8a8a93}.admin-shell:not(.screen-shell) .project-cell>span,.admin-shell:not(.screen-shell) .device-cell>span,.admin-shell:not(.screen-shell) .person-cell>span{color:#3f3f46;background:#f4f4f5;border:1px solid #e4e4e7;border-radius:6px}.admin-shell:not(.screen-shell) .row-actions .ant-btn{color:#52525b}.admin-shell:not(.screen-shell) .row-actions .ant-btn:hover{color:#18181b!important;background:#f4f4f5!important}.admin-shell:not(.screen-shell) .ant-btn-primary{color:#fff;background:var(--workspace-primary);border-color:var(--workspace-primary);box-shadow:none}.admin-shell:not(.screen-shell) .ant-btn-primary:hover{color:#fff!important;background:#303036!important;border-color:#303036!important}.admin-shell:not(.screen-shell) .course-grid{gap:10px}.admin-shell:not(.screen-shell) .course-card{min-height:188px;padding:16px;background:var(--workspace-panel);border:1px solid var(--workspace-border);border-left:1px solid var(--workspace-border);border-radius:8px;box-shadow:none}.admin-shell:not(.screen-shell) .course-card:after{display:none}.admin-shell:not(.screen-shell) .course-card:hover{transform:none;border-color:#c7c7cc;box-shadow:0 8px 24px #18181b0f}.admin-shell:not(.screen-shell) .course-card h2{color:#27272a}.admin-shell:not(.screen-shell) .course-card p{min-height:36px;color:#71717a}.admin-shell:not(.screen-shell) .course-mode{color:#52525b}.admin-shell:not(.screen-shell) .course-meta span{color:#52525b;background:#f4f4f5}.admin-shell:not(.screen-shell) .alarm-metrics{gap:10px}.admin-shell:not(.screen-shell) .alarm-metrics>div{min-height:76px;background:var(--workspace-panel);border:1px solid var(--workspace-border);border-radius:8px;box-shadow:none}.admin-shell:not(.screen-shell) .dashboard-page .metric-grid{gap:10px;margin-bottom:12px}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile{min-height:84px;padding:12px 16px;background:var(--workspace-panel);border:0;border-right:1px solid var(--workspace-border);border-radius:0;box-shadow:none}.admin-shell:not(.screen-shell) .dashboard-page .metric-grid{gap:0;overflow:hidden;border:1px solid var(--workspace-border);border-radius:8px;background:var(--workspace-panel)}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile:last-child{border-right:0}.admin-shell:not(.screen-shell) .dashboard-page .metric-icon{width:34px;height:34px}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile strong{font-size:24px}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile:before{display:none}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile:hover{box-shadow:0 8px 24px #18181b0f}.admin-shell:not(.screen-shell) .dashboard-page .metric-icon{width:38px;height:38px;color:#52525b;background:#f4f4f5;border:1px solid #e4e4e7;border-radius:7px}.admin-shell:not(.screen-shell) .dashboard-page .metric-label{color:#71717a}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile strong{color:#27272a;font-size:27px}.admin-shell:not(.screen-shell) .dashboard-page .surface{border:1px solid var(--workspace-border);border-radius:8px;box-shadow:none}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-lower-grid{align-items:start}.admin-shell:not(.screen-shell) .dashboard-page .section-heading{min-height:60px;padding:13px 16px;border-bottom-color:var(--workspace-border)}.admin-shell:not(.screen-shell) .dashboard-page .section-heading h2{color:#27272a}.admin-shell:not(.screen-shell) .dashboard-page .section-heading h2:before{display:none}.admin-shell:not(.screen-shell) .dashboard-page .chart-surface .trend-chart{height:270px;padding:10px 16px 14px}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-trend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-trend-grid-single{grid-template-columns:minmax(0,1fr)}.admin-shell:not(.screen-shell) .dashboard-page .student-trend-chart,.admin-shell:not(.screen-shell) .dashboard-page .project-trend-chart{width:100%;height:278px;padding:8px 14px 14px;box-sizing:border-box}.admin-shell:not(.screen-shell) .dashboard-page .project-trend-surface .section-heading .ant-segmented{color:#667781;background:#f3f8fa}.admin-shell:not(.screen-shell) .dashboard-page .project-trend-surface .section-heading .ant-segmented-item-selected{color:#1686a4;background:#fff;box-shadow:0 1px 3px #1e64781f}.admin-shell:not(.screen-shell) .metric-green .metric-icon{color:#1686a4;background:#e7f8fc;border-color:#c4edf5}.admin-shell:not(.screen-shell) .brand-mark{background:#123247;border-color:#69d3f261}.login-brand img,.mobile-brand img{width:34px;height:34px;flex:0 0 34px;object-fit:contain;border-radius:7px;background:#123247;border:1px solid rgba(105,211,242,.48)}.mobile-brand img{width:32px;height:32px;flex-basis:32px}.admin-shell:not(.screen-shell) .admin-sider .ant-menu-item-selected{background:#43c9ef2b!important;box-shadow:inset 3px 0 #43c9ef}.admin-shell:not(.screen-shell) .status-running,.admin-shell:not(.screen-shell) .status-active,.admin-shell:not(.screen-shell) .status-passed,.admin-shell:not(.screen-shell) .status-success,.admin-shell:not(.screen-shell) .status-completed{color:#1686a4;background:#e7f8fc;border-color:#c4edf5}.admin-shell:not(.screen-shell) .header-actions .ant-btn:hover,.admin-shell:not(.screen-shell) .ant-btn-default:hover{color:#1686a4!important;border-color:#8ed9e9!important;background:#f2fcfe!important}.admin-shell:not(.screen-shell) .compact-list button:hover strong{color:#1686a4}.admin-shell:not(.screen-shell) .avatar{background:#1686a4}.admin-shell:not(.screen-shell) .page-header h1:before,.admin-shell:not(.screen-shell) .metric-green:before,.admin-shell:not(.screen-shell) .metric-green:after,.admin-shell:not(.screen-shell) .dashboard-main-grid>.map-surface{background-color:#43c9ef}.admin-shell:not(.screen-shell) .dashboard-main-grid>.map-surface{border-top-color:#43c9ef}.admin-shell:not(.screen-shell) .ant-pagination .ant-pagination-item-active{border-color:#43c9ef;background:#e7f8fc}.admin-shell:not(.screen-shell) .ant-pagination .ant-pagination-item-active a{color:#1686a4}.admin-shell:not(.screen-shell) .command-band-intro:before{background:#43c9ef}.admin-shell:not(.screen-shell) .command-band-stats .command-status,.admin-shell:not(.screen-shell) .fact-stats .large-score,.admin-shell:not(.screen-shell) .score-text,.admin-shell:not(.screen-shell) .training-score{color:#1686a4}.admin-shell:not(.screen-shell) .ant-tag-green{color:#1686a4;background:#e7f8fc;border-color:#c4edf5}.admin-shell:not(.screen-shell) .call-party.target>span{color:#1686a4;background:#e7f8fc}.admin-shell:not(.screen-shell) .marker-running{background:#2bb4d1}.admin-shell:not(.screen-shell) .vehicle-marker.selected{box-shadow:0 0 0 4px #43c9ef3d,0 3px 9px #101b174d}@container workspace (max-width: 720px){.admin-shell:not(.screen-shell) .inline-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-trend-grid{grid-template-columns:1fr}}@media (max-width: 640px){.admin-shell:not(.screen-shell) .admin-content:not(.map-detail-content):not(.training-replay-content):not(.simulator-content){padding:0 10px 24px}.admin-shell:not(.screen-shell) .page-stack:not(.map-detail-page)>.page-header,.admin-shell:not(.screen-shell) .page-stack.dashboard-page>.page-header{min-height:76px;padding:17px 0 14px}.admin-shell:not(.screen-shell) .page-stack:not(.map-detail-page)>.page-header h1,.admin-shell:not(.screen-shell) .page-stack.dashboard-page>.page-header h1{font-size:22px}.admin-shell:not(.screen-shell) .inline-summary{gap:8px;margin-bottom:10px;padding:0}.admin-shell:not(.screen-shell) .inline-summary>div,.admin-shell:not(.screen-shell) .inline-summary>div:first-child,.admin-shell:not(.screen-shell) .inline-summary>div:last-child{min-height:78px;gap:8px;padding:11px;text-align:left}.admin-shell:not(.screen-shell) .inline-summary dt{overflow:visible;text-overflow:clip}.admin-shell:not(.screen-shell) .inline-summary dd{font-size:22px}.admin-shell:not(.screen-shell) .filter-bar,.admin-shell:not(.screen-shell) .training-filter-bar{padding:10px}.admin-shell:not(.screen-shell) .course-card{min-height:178px;padding:15px}.admin-shell:not(.screen-shell) .dashboard-page .metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile{min-height:82px;border-right:1px solid var(--workspace-border);border-bottom:1px solid var(--workspace-border)}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile:nth-child(2n){border-right:0}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile:nth-last-child(-n+2){border-bottom:0}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile:first-child{grid-column:span 2}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-trend-grid{gap:8px;margin-top:8px}.admin-shell:not(.screen-shell) .dashboard-page .student-trend-chart,.admin-shell:not(.screen-shell) .dashboard-page .project-trend-chart{height:250px;padding-inline:8px}}.ant-modal-root .ant-modal-content,.workspace-form-drawer .ant-drawer-content{color:#27272a;background:#fff;border:1px solid #e4e4e7;box-shadow:0 24px 64px #18181b29}.ant-modal-root .ant-modal-header,.workspace-form-drawer .ant-drawer-header{background:#fff;border-bottom-color:#e4e4e7}.ant-modal-root .ant-modal-title,.workspace-form-drawer .ant-drawer-title{color:#27272a;font-weight:650}.ant-modal-root .ant-modal-footer,.workspace-form-drawer .ant-drawer-footer{background:#fff;border-top-color:#e4e4e7}.ant-modal-root .ant-btn-primary,.workspace-form-drawer .ant-btn-primary{color:#fff;background:#18181b;border-color:#18181b;box-shadow:none}.ant-modal-root .ant-btn-primary:hover,.workspace-form-drawer .ant-btn-primary:hover{color:#fff!important;background:#303036!important;border-color:#303036!important}.ant-modal-root .ant-form-item-label>label,.workspace-form-drawer .ant-form-item-label>label{color:#3f3f46}.ant-modal-root .form-section-title,.workspace-form-drawer .form-section-title{color:#27272a;border-bottom-color:#e4e4e7}.ant-modal-root :is(.ant-input,.ant-input-affix-wrapper,.ant-picker,.ant-select-selector,.ant-input-number),.workspace-form-drawer :is(.ant-input,.ant-input-affix-wrapper,.ant-picker,.ant-select-selector,.ant-input-number){background:#fff!important;border-color:#d4d4d8!important;box-shadow:none}.ant-modal-root :is(.ant-input,.ant-input-affix-wrapper,.ant-picker,.ant-select,.ant-input-number):focus-within,.workspace-form-drawer :is(.ant-input,.ant-input-affix-wrapper,.ant-picker,.ant-select,.ant-input-number):focus-within{border-color:#a1a1aa!important;box-shadow:0 0 0 3px #18181b0f!important}.ant-modal-centered .ant-modal{top:0;margin-block:0}.ant-modal .ant-input-affix-wrapper>input.ant-input,.workspace-form-drawer .ant-input-affix-wrapper>input.ant-input{height:100%;min-height:0;padding-block:0;line-height:normal;background:transparent!important;box-shadow:none!important;outline:none}.admin-shell:not(.screen-shell) .admin-sider .brand-lockup{position:relative;display:flex;align-items:center}.admin-shell:not(.screen-shell) .admin-sider>.collapse-button{display:none}.admin-shell:not(.screen-shell) .admin-sider .brand-lockup.compact{gap:0;padding-inline:18px;justify-content:center}.admin-shell:not(.screen-shell) .admin-sider .brand-mark{border:0}.admin-shell:not(.screen-shell) .admin-sider .brand-mark{background:transparent;box-shadow:none}.admin-shell:not(.screen-shell) .admin-sider .brand-mark img{object-fit:contain}.admin-shell:not(.screen-shell) .dashboard-page .metric-grid{gap:10px;overflow:visible;border:0;background:transparent;box-shadow:none}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile,.admin-shell:not(.screen-shell) .dashboard-page .metric-tile:hover{min-height:88px;display:flex;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--workspace-border);border-radius:8px;background:var(--workspace-panel);box-shadow:0 1px 2px #18181b09;transform:none}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile:hover{border-color:#c8d1da;box-shadow:0 7px 18px #18181b12}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile:last-child{border-right:1px solid var(--workspace-border)}.admin-shell:not(.screen-shell) .dashboard-page .metric-icon{width:38px;height:38px;flex:0 0 38px}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile:not(.metric-green):not(.metric-blue):not(.metric-amber):not(.metric-red) .metric-icon{color:#52646d;background:#f4f6f8;border-color:#dfe5ea}.admin-shell:not(.screen-shell) .dashboard-page .metric-blue .metric-icon{color:#2563eb;background:#eff6ff;border-color:#cfe0ff}.admin-shell:not(.screen-shell) .dashboard-page .metric-amber .metric-icon{color:#d97706;background:#fff7ed;border-color:#fed7aa}.admin-shell:not(.screen-shell) .dashboard-page .metric-red .metric-icon{color:#dc2626;background:#fef2f2;border-color:#fecaca}.admin-shell:not(.screen-shell) .dashboard-page .metric-green .metric-icon{color:#1686a4;background:#e7f8fc;border-color:#c4edf5}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-lower-grid{align-items:stretch}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-lower-grid>.surface{height:350px;min-height:350px;display:flex;flex-direction:column}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-lower-grid>.surface .section-heading{flex:0 0 60px}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-lower-grid>.chart-surface .trend-chart{flex:1 1 auto;min-height:0}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-lower-grid>.alarm-surface .compact-list{flex:1 1 auto;min-height:0;overflow-y:auto}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-lower-grid>.alarm-surface .ant-empty{flex:1 1 auto;display:grid;place-items:center;margin:0;padding:0}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-lower-grid>.alarm-surface .alarm-empty{flex:1 1 auto;display:grid;place-items:center;color:#a0acb6;font-size:12px}.sidebar-collapse-button{width:100%;height:56px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 56px;margin:0;padding:0;color:#8fa0b8;background:#ffffff05;border:0;border-top:1px solid rgba(255,255,255,.08);cursor:pointer;transition:color .18s ease,background-color .18s ease}.admin-shell:not(.screen-shell) .admin-header .header-context{display:flex;align-items:center;min-height:36px;line-height:1}.admin-shell:not(.screen-shell) .admin-header .header-context>span,.admin-shell:not(.screen-shell) .admin-header .header-context>strong{line-height:1.4}.sidebar-collapse-button:hover{color:#f8fafc;background:#fff1}.sidebar-collapse-button:focus-visible{outline:2px solid #54c8df;outline-offset:-4px}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-trend-grid .section-heading{min-height:54px;height:54px;padding-block:10px}@media (max-width: 640px){.sidebar-collapse-button{display:none}.admin-shell:not(.screen-shell) .dashboard-page .metric-grid{gap:8px}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile,.admin-shell:not(.screen-shell) .dashboard-page .metric-tile:hover{min-height:82px;border-right:1px solid var(--workspace-border);border-bottom:1px solid var(--workspace-border)}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile:nth-child(2n){border-right:1px solid var(--workspace-border)}.admin-shell:not(.screen-shell) .dashboard-page .metric-tile:first-child{grid-column:span 2}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-lower-grid>.surface{height:334px;min-height:334px}.admin-shell:not(.screen-shell) .dashboard-page .dashboard-lower-grid>.surface .section-heading{flex-basis:60px}}.map-3d-preview[data-v-e0bc5431]{position:relative;width:100%;height:clamp(430px,62vh,690px);min-height:430px;overflow:hidden;background:#dce5e1;outline:none}.map-3d-preview.map-3d-overview[data-v-e0bc5431]{height:100%;min-height:0;cursor:default;background:#091526}.map-3d-overview .map-3d-host[data-v-e0bc5431] canvas{pointer-events:none}.map-3d-preview.map-3d-overview-interactive[data-v-e0bc5431],.map-3d-preview.map-3d-overview-interactive[data-v-e0bc5431]:active{cursor:default}.map-3d-overview-interactive .map-3d-host[data-v-e0bc5431] canvas{pointer-events:auto;touch-action:none}.map-3d-preview[data-v-e0bc5431]:fullscreen{width:100vw;height:100vh;min-height:0}.map-3d-host[data-v-e0bc5431]{position:relative;width:100%;height:100%}.map-3d-host[data-v-e0bc5431] canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;outline:none;touch-action:none}.map-3d-host[data-v-e0bc5431] .map-3d-vehicle-layer{z-index:1;pointer-events:none!important}.map-3d-tools[data-v-e0bc5431]{position:absolute;top:12px;right:12px;display:flex;gap:3px;padding:3px;background:#070a0994;border:1px solid rgb(255 255 255 / 14%);border-radius:5px;box-shadow:0 5px 16px #0003;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ground-region-actions[data-v-e0bc5431]{position:absolute;z-index:3;display:flex;gap:4px;padding:3px;background:#070a09b8;border-radius:5px;box-shadow:0 4px 12px #0000003d}.ground-region-actions .ant-btn[data-v-e0bc5431]{display:grid;place-items:center;width:32px;height:32px;padding:0}.ground-region-actions .ant-btn-primary[data-v-e0bc5431]:hover:not(:disabled){background:#20a183!important}.map-3d-tools .ant-btn[data-v-e0bc5431]{width:32px;height:32px;padding:0;color:#ffffffe0;background:#00000029}.map-3d-tools .ant-btn[data-v-e0bc5431]:hover{color:#fff!important;background:#ffffff24!important}.building-move-handle[data-v-e0bc5431]{position:absolute;z-index:8;width:36px;height:36px;display:grid;place-items:center;padding:0;color:#153a33;background:#f8fcfaf0;border:2px solid #20a183;border-radius:50%;box-shadow:0 4px 12px #0e2f263d;cursor:move;touch-action:none;transform:translate(-50%,-50%)}.building-move-handle[data-v-e0bc5431]:hover,.building-move-handle.dragging[data-v-e0bc5431]{color:#fff;background:#167b67}.asset-rotation-handle[data-v-e0bc5431]{position:absolute;z-index:8;width:36px;height:36px;display:grid;place-items:center;padding:0;color:#fff;background:#167b67;border:2px solid rgb(255 255 255 / 92%);border-radius:50%;box-shadow:0 4px 12px #0e2f2647;cursor:grab;touch-action:none;transform:translate(-50%,-50%)}.asset-rotation-handle[data-v-e0bc5431]:hover{background:#116b59}.asset-rotation-handle.dragging[data-v-e0bc5431]{cursor:grabbing;background:#0d5c4c;box-shadow:0 5px 15px #0e2f2661}.asset-placement-hint[data-v-e0bc5431]{position:absolute;left:50%;bottom:14px;z-index:2;padding:7px 11px;color:#fff;background:#0e2d1fc7;border:1px solid rgb(255 255 255 / 18%);border-radius:4px;font-size:11px;pointer-events:none;transform:translate(-50%);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.map-move-hint[data-v-e0bc5431]{position:absolute;left:12px;bottom:12px;display:grid;justify-items:center;gap:3px;padding:6px;pointer-events:none;background:#070a0985;border:1px solid rgb(255 255 255 / 14%);border-radius:5px;box-shadow:0 4px 14px #0000002e;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.map-move-hint>span[data-v-e0bc5431]{display:flex;align-items:center;gap:5px}.map-move-hint em[data-v-e0bc5431]{color:#ffffffad;font-size:9px;font-style:normal;white-space:nowrap}.map-move-hint kbd[data-v-e0bc5431]{min-width:34px;height:21px;padding:0 4px;display:grid;place-items:center;color:#ffffffe5;background:#ffffff1a;border:1px solid rgb(255 255 255 / 18%);border-radius:3px;font-family:inherit;font-size:9px;line-height:1}.map-3d-state[data-v-e0bc5431]{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#576961;background:#dce5e1;font-size:12px}.map-3d-error[data-v-e0bc5431]{padding:24px;text-align:center}@media (max-width: 640px){.map-3d-preview[data-v-e0bc5431]{height:430px;min-height:430px}.map-3d-tools[data-v-e0bc5431]{top:8px;right:8px}.asset-placement-hint[data-v-e0bc5431]{position:absolute;left:50%;bottom:14px;z-index:2;padding:7px 11px;color:#fff;background:#0e2d1fc7;border:1px solid rgb(255 255 255 / 18%);border-radius:4px;font-size:11px;pointer-events:none;transform:translate(-50%);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.map-move-hint[data-v-e0bc5431]{left:8px;bottom:8px}}.shared-map-fallback[data-v-e471f0fd]{position:fixed;width:1px;height:1px;overflow:hidden;pointer-events:none;visibility:hidden}.shared-map-renderer,.shared-map-renderer .map-3d-host{width:100%;height:100%;min-height:0}
