:root{color-scheme:dark;--bg: #030b17;--bg-deep: #010510;--panel: rgba(5, 17, 32, .82);--panel-strong: rgba(7, 25, 45, .92);--line: rgba(78, 194, 255, .28);--line-soft: rgba(146, 198, 222, .14);--text: #edf8ff;--muted: rgba(213, 232, 244, .68);--subtle: rgba(213, 232, 244, .48);--cyan: #43dcff;--green: #4be0b3;--gold: #f2bd61;--orange: #ff925c;--danger: #ff6d6d;--shadow: 0 18px 48px rgba(0, 0, 0, .46)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:var(--bg-deep);color:var(--text);font-family:Inter,Microsoft YaHei,PingFang SC,Segoe UI,Arial,sans-serif;letter-spacing:0}button,input{font:inherit}button{color:inherit}.app-shell{position:relative;isolation:isolate;min-height:100vh;padding:10px 14px 14px;background:radial-gradient(circle at 16% 14%,rgba(25,95,148,.22),transparent 28%),radial-gradient(circle at 78% 18%,rgba(20,84,126,.14),transparent 30%),linear-gradient(90deg,rgba(61,178,240,.038) 1px,transparent 1px),linear-gradient(180deg,rgba(61,178,240,.034) 1px,transparent 1px),linear-gradient(140deg,#020918,#020713 48%,#031018);background-size:cover,cover,48px 48px,48px 48px,cover;overflow-x:hidden}.app-shell:before,.app-shell:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:-1}.app-shell:before{background:radial-gradient(circle,rgba(141,221,255,.2) 0 .7px,transparent 1px),radial-gradient(circle,rgba(255,255,255,.12) 0 .55px,transparent 1px);background-position:0 0,17px 23px;background-size:33px 33px,47px 47px;opacity:.45}.app-shell:after{background:linear-gradient(115deg,transparent 0 18%,rgba(42,178,255,.07) 18.2%,transparent 18.6% 64%,rgba(42,178,255,.045) 64.2%,transparent 64.6%),radial-gradient(circle at 50% 52%,transparent 0 35%,rgba(0,0,0,.42) 100%);opacity:.82}.page{width:100%}.section-eyebrow{display:inline-flex;align-items:center;color:var(--gold);font-size:13px}.app-header{position:relative;z-index:2;height:70px;display:grid;grid-template-columns:minmax(260px,340px) minmax(420px,1fr) minmax(430px,600px) minmax(82px,118px);align-items:center;gap:12px;padding:0 14px;border:1px solid rgba(99,207,255,.16);border-radius:8px;background:linear-gradient(180deg,#081e37eb,#020a16eb),linear-gradient(90deg,rgba(58,201,255,.16),transparent 34%,rgba(242,189,97,.07));box-shadow:var(--shadow);overflow:hidden}.header-frame{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,transparent 0 21%,rgba(67,220,255,.38) 21% 22%,transparent 22% 78%,rgba(67,220,255,.36) 78% 79%,transparent 79%),linear-gradient(180deg,rgba(67,220,255,.24),transparent 28%,transparent 72%,rgba(67,220,255,.16));opacity:.52}.brand-title{position:relative;justify-self:center;min-width:420px;height:48px;display:inline-flex;align-items:center;justify-content:center;gap:12px;border:0;border-radius:6px;color:#f5fbff;background:linear-gradient(90deg,transparent,rgba(62,203,255,.12),transparent),#030d1b47;text-shadow:0 0 18px rgba(70,216,255,.36);font-size:25px;font-weight:700;cursor:pointer}.header-status{position:relative;display:flex;align-items:center;gap:12px;min-width:0;color:var(--muted);font-size:13px}.header-status span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.header-status svg,.main-nav svg,.brand-title svg{color:var(--cyan)}.main-nav{position:relative;display:flex;justify-content:flex-end;gap:8px}.main-nav button,.ghost-action,.secondary-action,.primary-action,.icon-action{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(116,210,249,.18);border-radius:6px;background:#0715269e;color:#ebf8ffdb;cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease}.main-nav button{height:36px;padding:0 12px;font-size:13px}.main-nav button:hover,.ghost-action:hover,.secondary-action:hover,.primary-action:hover,.icon-action:hover{border-color:#4fdcff85;transform:translateY(-1px)}.main-nav button.active{color:#fff;border-color:#43dcff94;background:linear-gradient(180deg,#26a7e15c,#071b31c7);box-shadow:0 0 22px #34beff2b inset}.panel{position:relative;min-width:0;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,#07192ed1,#020915d6),linear-gradient(135deg,rgba(67,220,255,.075),transparent 38%,rgba(242,189,97,.032));box-shadow:var(--shadow),inset 0 1px #ffffff0b;overflow:hidden}.panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,rgba(67,220,255,.12) 1px,transparent 1px),linear-gradient(180deg,rgba(67,220,255,.08) 1px,transparent 1px),radial-gradient(circle,rgba(150,225,255,.14) 0 .6px,transparent 1px);background-size:22px 22px,22px 22px,19px 19px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.55),transparent 86%);mask-image:linear-gradient(180deg,rgba(0,0,0,.55),transparent 86%)}.panel-clickable{cursor:pointer}.panel-clickable:hover,.metric-card:hover{border-color:#4be0ff80;box-shadow:var(--shadow),0 0 26px #43dcff14}.panel-head{position:relative;z-index:1;height:38px;padding:0 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(116,210,249,.13)}.panel-head h2{margin:0;color:#e7f7ff;font-size:15px;font-weight:600}.panel-action{color:var(--muted);font-size:12px}.panel-badge{display:inline-flex;align-items:center;gap:6px;color:#e9f9ffc2}.metric-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:10px 0}.metric-card{position:relative;min-height:76px;padding:12px 14px;display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:13px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(180deg,#08233fc2,#030c1bc7),linear-gradient(110deg,rgba(67,220,255,.09),transparent 42%);box-shadow:var(--shadow),inset 0 1px #ffffff0d;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease;overflow:hidden}.metric-card:after{content:"";position:absolute;right:0;top:0;width:38%;height:2px;background:linear-gradient(90deg,transparent,var(--cyan));opacity:.7}.metric-card:hover{transform:translateY(-1px)}.metric-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:8px;color:var(--cyan);background:#43dcff1a;border:1px solid rgba(67,220,255,.24)}.metric-green .metric-icon{color:var(--green);background:#4be0b31a;border-color:#4be0b33d}.metric-gold .metric-icon{color:var(--gold);background:#f2bd611f;border-color:#f2bd6147}.metric-label{color:var(--muted);font-size:12px}.metric-value{display:flex;align-items:baseline;gap:6px;margin-top:5px;min-width:0}.metric-value span{color:#fff;font-size:24px;font-weight:750;line-height:1;text-shadow:0 0 18px rgba(67,220,255,.22)}.metric-value em{color:var(--muted);font-size:13px;font-style:normal}.page-overview{height:calc(100vh - 92px);min-height:720px;display:grid;grid-template-rows:auto minmax(0,1fr) 138px;gap:10px}.overview-layout{min-height:0;display:grid;grid-template-columns:minmax(260px,292px) minmax(0,1fr) minmax(312px,348px);gap:10px}.overview-side{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 142px;gap:10px}.progress-panel{padding-bottom:8px}.progress-summary{position:relative;z-index:1;display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:12px;padding:12px 12px 8px}.progress-ring{--progress: 0deg;position:relative;width:96px;height:96px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,rgba(7,21,39,.98) 0 58%,transparent 59%),conic-gradient(var(--cyan) 0deg,var(--gold) var(--progress),rgba(136,183,211,.15) var(--progress) 360deg);box-shadow:inset 0 0 20px #43dcff26,0 0 26px #43dcff14}.progress-ring span{font-size:23px;font-weight:750;line-height:1}.progress-ring em{margin-top:28px;position:absolute;color:var(--subtle);font-size:12px;font-style:normal}.progress-copy span,.detail-fields span,.summary-stack span,.device-focus span{display:block;color:var(--subtle);font-size:12px}.progress-copy strong{display:block;margin-top:7px;color:#fff;font-size:19px}.progress-copy p{margin:6px 0 0;color:var(--muted);font-size:12px;line-height:1.45}.stage-list{position:relative;z-index:1;padding:2px 12px 0}.stage-list>div{height:27px;display:grid;grid-template-columns:18px 1fr;align-items:center;gap:8px;color:var(--subtle);font-size:13px}.stage-list i{width:10px;height:10px;border-radius:50%;background:#a9cce047;box-shadow:0 0 0 4px #a9cce00a}.stage-list .done{color:#edf8ffdb}.stage-list .done i{background:var(--green);box-shadow:0 0 0 4px #4be0b31f}.stage-list .active{color:var(--gold)}.stage-list .active i{background:var(--gold);box-shadow:0 0 0 4px #f2bd6124}.tip-list{position:relative;z-index:1;padding:8px 10px 10px;display:grid;gap:6px}.alarm-summary-list .tip-row{grid-template-columns:18px 76px minmax(0,1fr)}.empty-inline{position:relative;z-index:1;min-height:34px;display:grid;place-items:center;color:var(--subtle);font-size:13px}.tip-row{min-height:30px;display:grid;grid-template-columns:18px 72px minmax(0,1fr);align-items:center;gap:8px;color:var(--muted);font-size:12px;border-bottom:1px solid rgba(132,185,217,.1)}.tip-row svg{color:var(--gold)}.tip-row strong{color:#edf8ffd6;font-weight:500;text-align:right;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.tip-row.warn strong{color:var(--gold)}.map-panel{min-height:0;display:flex;flex-direction:column}.map-panel .campus-map,.task-map-panel .campus-map{flex:1;min-height:0}.campus-map{position:relative;z-index:1;min-height:460px;padding:2px 4px 28px}.campus-map svg{width:100%;height:100%;min-height:430px;display:block}.custom-map-raster-frame{fill:#030f1b6b;stroke:#4dcff238;stroke-width:1;vector-effect:non-scaling-stroke}.custom-map-raster{opacity:.92;filter:drop-shadow(0 0 9px rgba(53,202,242,.2));image-rendering:pixelated;pointer-events:none}.map-coordinate-labels text{fill:#84ccef52;font-family:Consolas,monospace;font-size:9px;letter-spacing:0}.planned-route,.planned-route-flow,.actual-route{fill:none;stroke-linecap:round;stroke-linejoin:round}.heatmap-point{pointer-events:none;mix-blend-mode:screen;filter:blur(.2px)}.planned-route{stroke:#32ccff57;stroke-width:9}.planned-route-flow{stroke:url(#routeGradient);stroke-width:4;stroke-dasharray:18 16;filter:url(#softGlow);animation:routeFlow 3.8s linear infinite}.actual-route{stroke:#f2bd61eb;stroke-width:4.5;stroke-dasharray:8 7}.route-node circle:first-of-type{fill:#ebf8fff0;stroke:var(--cyan);stroke-width:4;filter:url(#softGlow)}.route-node circle:nth-of-type(2){fill:none;stroke:#43dcff3d;stroke-width:2}.node-start circle:first-of-type{stroke:var(--green)}.node-end circle:first-of-type{stroke:var(--gold)}.route-node text,.device-point text{fill:#edf8ffe6;font-size:14px;font-weight:600;text-anchor:middle;paint-order:stroke;stroke:#030a14eb;stroke-width:5px;stroke-linejoin:round}.alarm-marker circle{fill:#ff7a5921;stroke:#ffb15b6b;stroke-width:2;animation:focusPulse 2.8s ease-out infinite}.alarm-marker path{fill:#ff925cf0;stroke:#fff1dee0;stroke-width:1.5;filter:url(#softGlow)}.alarm-marker.level-重要 path{fill:#ff6060f2}.alarm-marker text{fill:#ffebd6f2;font-size:12px;font-weight:600;text-anchor:middle;paint-order:stroke;stroke:#030a14eb;stroke-width:4px}.device-point{cursor:pointer}.device-pulse{fill:#43dcff1f;stroke:#43dcff57;animation:pulse 2.4s ease-out infinite}.device-core{fill:#42d9ff;stroke:#edf8fff5;stroke-width:3;filter:url(#softGlow)}.device-point.offline .device-pulse{fill:#93a0ac14;stroke:#93a0ac3d;animation:none}.device-point.offline .device-core{fill:#7e8b96;stroke:#cdd8e18f;filter:none}.dog-mark rect{fill:#eaf8fff2;stroke:#0e3d59e0;stroke-width:1.3}.dog-mark path{fill:none;stroke:#eaf8fff2;stroke-width:4;stroke-linecap:round}.dog-mark circle{fill:var(--cyan)}.current-focus{pointer-events:none}.current-focus circle{fill:none;stroke:#43dcff21;stroke-width:2;animation:focusPulse 3s ease-out infinite}.current-focus circle:nth-child(2){animation-delay:1.2s}.map-legend{position:absolute;left:12px;right:12px;bottom:6px;z-index:2;min-height:24px;display:flex;align-items:center;justify-content:center;gap:14px;color:var(--muted);font-size:12px;background:#010711ad;border:1px solid rgba(126,202,238,.12);border-radius:6px}.map-legend span{display:inline-flex;align-items:center;gap:6px}.map-legend i{width:16px;height:3px;border-radius:2px}.map-provider-badge{position:absolute;top:10px;left:16px;z-index:7;height:26px;display:inline-flex;align-items:center;gap:7px;padding:0 9px;border:1px solid rgba(67,220,255,.22);border-radius:4px;background:#020c18c7;box-shadow:0 5px 18px #00071247;color:#ebf8ffdb;font-size:11px;pointer-events:none}.map-provider-badge>i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 9px #4be0b39e}.map-provider-badge em{padding-left:7px;border-left:1px solid rgba(132,185,217,.16);color:var(--subtle);font-style:normal}.map-provider-badge.provider-amap>i{background:var(--cyan);box-shadow:0 0 9px #43dcff9e}.map-compass{position:absolute;top:12px;right:17px;z-index:5;width:30px;height:42px;display:grid;justify-items:center;color:#dff5ffb8;font-size:10px;pointer-events:none}.map-compass b{line-height:14px}.map-compass i{width:0;height:0;border-right:6px solid transparent;border-bottom:20px solid rgba(67,220,255,.72);border-left:6px solid transparent;filter:drop-shadow(0 0 5px rgba(67,220,255,.38))}.map-scale{position:absolute;left:19px;bottom:37px;z-index:5;display:flex;align-items:flex-end;gap:6px;color:#cce8f69e;font-size:9px;pointer-events:none}.map-scale i{width:44px;height:5px;border-right:1px solid rgba(204,232,246,.58);border-bottom:1px solid rgba(204,232,246,.58);border-left:1px solid rgba(204,232,246,.58)}.legend-plan{background:var(--cyan)}.legend-actual{background:var(--gold)}.legend-device{background:var(--green)}.legend-alarm{background:var(--orange)}.map-panel .amap-campus-map,.task-map-panel .amap-campus-map{flex:1;min-height:0}.amap-campus-map{position:relative;z-index:1;min-height:460px;padding:0 4px 28px;overflow:hidden}.amap-map-canvas{position:absolute;top:0;right:4px;bottom:28px;left:4px;overflow:hidden;border:1px solid rgba(93,206,255,.28);background:#071426}.amap-fallback-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;background:#061326}.amap-fallback-layer .campus-map{height:100%}.amap-fallback-status{position:absolute;top:10px;right:58px;z-index:9;height:26px;display:inline-flex;align-items:center;gap:7px;padding:0 9px;border:1px solid rgba(242,189,97,.25);border-radius:4px;background:#020c18d6;color:#f0f6fad1;font-size:10px;pointer-events:none}.amap-fallback-status>i{width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 7px #f2bd6173}.amap-fallback-status em{padding-left:7px;border-left:1px solid rgba(132,185,217,.16);color:var(--subtle);font-style:normal}.amap-fallback-status.status-loading>i{background:var(--cyan);animation:pulse 1.4s ease-out infinite}.amap-route-marker,.amap-device-marker,.amap-alarm-marker{position:relative;width:1px;height:1px;color:#eefaff;font-family:Microsoft YaHei,PingFang SC,sans-serif;pointer-events:auto}.amap-route-marker>i{position:absolute;left:-8px;bottom:-8px;width:16px;height:16px;border:3px solid #43dcff;border-radius:50%;background:#edfaff;box-shadow:0 0 0 7px #43dcff21,0 0 13px #43dcff99}.amap-route-marker.route-start>i{border-color:var(--green)}.amap-route-marker.route-end>i{border-color:var(--gold)}.amap-route-marker>span{position:absolute;top:14px;left:50%;width:max-content;transform:translate(-50%);color:#eff9fff0;font-size:12px;font-weight:600;text-shadow:0 1px 4px #020814,0 0 3px #020814}.amap-device-marker{cursor:pointer}.amap-device-marker>i{position:absolute;left:-9px;bottom:-9px;width:18px;height:18px;border:3px solid rgba(236,250,255,.92);border-radius:50%;background:#43dcff;box-shadow:0 0 0 8px #43dcff1f,0 0 16px #43dcffb8}.amap-device-marker.active>i{left:-13px;bottom:-13px;width:26px;height:26px}.amap-device-marker>i b{position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1px solid rgba(2,22,38,.65);border-radius:3px}.amap-device-marker.offline>i{border-color:#d2dee7a3;background:#7e8b96;box-shadow:0 0 0 7px #7e8b961a}.amap-device-marker>strong{position:absolute;left:50%;bottom:18px;width:max-content;transform:translate(-50%);color:#fff;font-size:12px;text-shadow:0 1px 4px #020814,0 0 3px #020814}.amap-device-marker.active>strong{bottom:24px;font-size:13px}.amap-alarm-marker>i{position:absolute;left:-10px;bottom:-9px;width:0;height:0;border-right:10px solid transparent;border-bottom:18px solid #ff9a63;border-left:10px solid transparent;filter:drop-shadow(0 0 7px rgba(255,126,91,.75))}.amap-alarm-marker.level-重要>i{border-bottom-color:#ff6868}.amap-alarm-marker>span{position:absolute;left:50%;bottom:16px;width:max-content;transform:translate(-50%);color:#ffe9da;font-size:11px;font-weight:600;text-shadow:0 1px 4px #020814,0 0 3px #020814}.map-layer-control{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}.map-mode-control{display:inline-flex;align-items:center;gap:5px;padding-right:9px;border-right:1px solid rgba(132,185,217,.16);color:var(--muted)}.map-mode-control button{position:relative;height:26px;padding:0 9px;border:1px solid rgba(116,210,249,.16);border-radius:5px;background:#020c1852;color:#ebf8ffb8;font-size:12px;cursor:pointer}.map-mode-control button.active{border-color:#43dcff75;background:#43dcff21;color:#fff}.map-mode-control button>i{position:absolute;top:4px;right:4px;width:4px;height:4px;border-radius:50%}.map-mode-control .provider-ready{background:var(--green);box-shadow:0 0 5px #4be0b38f}.map-mode-control .provider-pending{background:var(--gold)}.map-layer-control button{height:26px;padding:0 8px;border:1px solid rgba(116,210,249,.16);border-radius:5px;background:#020c1852;color:#ebf8ffb8;font-size:12px;cursor:pointer}.map-layer-control button.active{border-color:#43dcff75;color:#fff;background:#43dcff21}.map-layer-control.compact button{height:24px;padding:0 7px}.device-table{position:relative;z-index:1;padding:5px 8px 8px}.device-row{width:100%;min-height:35px;display:grid;grid-template-columns:1.05fr .6fr .82fr .48fr .68fr .8fr;align-items:center;gap:6px;padding:0 6px;border:0;border-bottom:1px solid rgba(132,185,217,.1);background:transparent;color:#e8f6ffd1;text-align:left;font-size:12px;cursor:pointer}.device-row:not(.table-head):hover{background:#43dcff12}.table-head{min-height:28px;color:var(--subtle);cursor:default}.state-online{color:var(--green)}.state-offline{color:#b1becac2}.state-error{color:var(--danger)}.state-warn{color:var(--gold)}.device-focus{position:relative;z-index:1;padding:9px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.device-focus>div{min-height:37px;display:flex;align-items:center;gap:6px;padding:7px;border:1px solid rgba(132,185,217,.12);border-radius:6px;background:#020c1852;color:#edf8ffe0;font-size:12px}.device-focus>div:first-child{grid-column:1 / -1;display:block}.device-focus strong{display:block;margin-top:4px;color:#fff;font-size:16px}.device-focus>div:not(:first-child) strong{display:inline;margin-top:0;font-size:13px}.device-focus svg,.summary-stack svg{color:var(--cyan);flex:0 0 auto}.chart-strip{min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.chart-panel{min-height:0}.chart-canvas{position:relative;z-index:1;width:100%;height:100%;min-height:118px}.login-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) 430px;align-items:center;gap:42px;padding:52px min(7vw,104px);background:linear-gradient(90deg,rgba(72,199,255,.07) 1px,transparent 1px),linear-gradient(180deg,rgba(72,199,255,.06) 1px,transparent 1px),linear-gradient(135deg,#071526,#040b16 54%,#081c21);background-size:58px 58px,58px 58px,cover}.login-visual{position:relative;min-height:520px;border:1px solid rgba(96,206,255,.18);border-radius:8px;background:linear-gradient(135deg,rgba(31,105,149,.22),transparent 46%),linear-gradient(180deg,#0d2b469e,#040e1cc7);box-shadow:var(--shadow);overflow:hidden}.login-visual:before,.login-visual:after{content:"";position:absolute;left:9%;right:9%;height:1px;background:linear-gradient(90deg,transparent,rgba(67,220,255,.62),transparent)}.login-visual:before{top:24%}.login-visual:after{bottom:26%}.login-grid{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(115deg,transparent 0 43%,rgba(67,220,255,.13) 43% 44%,transparent 44%),linear-gradient(65deg,transparent 0 56%,rgba(242,189,97,.12) 56% 57%,transparent 57%),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(180deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:cover,cover,44px 44px,44px 44px;opacity:.9}.login-frame{position:absolute;left:52px;bottom:54px;max-width:720px}.login-kicker{display:inline-flex;margin-bottom:18px;padding:7px 10px;border:1px solid rgba(242,189,97,.32);border-radius:4px;color:var(--gold);background:#f2bd6114;font-size:13px}.login-frame h1{margin:0;font-size:46px;line-height:1.16;color:#f6fbff;text-shadow:0 0 26px rgba(67,220,255,.26)}.login-frame p{margin:16px 0 0;color:var(--muted);font-size:17px}.login-card{min-height:440px;padding:32px;display:grid;gap:20px;border:1px solid rgba(110,215,255,.22);border-radius:8px;background:linear-gradient(180deg,#0f2a42cc,#051020e0);box-shadow:var(--shadow)}.login-card h2{margin:8px 0 0;font-size:25px}.login-card label{display:grid;gap:8px;color:var(--muted);font-size:13px}.login-input{height:48px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid rgba(130,213,249,.2);border-radius:6px;background:#020c1973}.login-input svg{color:var(--cyan)}.login-input input{width:100%;border:0;outline:0;background:transparent;color:#f4fbff}.login-error{color:var(--danger);font-size:13px}.primary-action{min-height:44px;padding:0 18px;border-color:#43dcff80;background:linear-gradient(180deg,#29b0e6d6,#0a4a74e6);color:#fff;box-shadow:0 0 24px #43dcff26}.secondary-action,.ghost-action{min-height:42px;padding:0 16px}.secondary-action.danger{border-color:#ff6d6d57;color:#ffd7d7}button:disabled{cursor:not-allowed;opacity:.48;transform:none}.detail-page{min-height:calc(100vh - 100px);display:grid;grid-template-rows:auto auto auto minmax(260px,1fr);gap:12px;margin-top:12px}.detail-hero{min-height:96px;display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border:1px solid rgba(99,207,255,.16);border-radius:8px;background:linear-gradient(90deg,rgba(67,220,255,.13),transparent 45%,rgba(242,189,97,.07)),#071424b8;box-shadow:var(--shadow)}.detail-hero h1{margin:5px 0 4px;font-size:34px}.detail-hero p{margin:0;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.75fr) minmax(300px,.9fr);gap:12px}.detail-panel,.detail-grid .panel{min-height:260px}.detail-fields{position:relative;z-index:1;padding:16px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.detail-fields>div{min-height:78px;padding:14px;border:1px solid rgba(132,185,217,.12);border-radius:6px;background:#020c1852}.detail-fields strong{display:block;margin-top:9px;color:#fff;font-size:17px;overflow-wrap:anywhere}.peripheral-status-heading{position:relative;z-index:1;margin:0 16px 8px;padding-top:10px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(132,185,217,.12)}.peripheral-status-heading span{color:#ebf9ffe6;font-size:12px;font-weight:600}.peripheral-status-heading em{color:var(--subtle);font-size:9px;font-style:normal}.peripheral-status-list{position:relative;z-index:1;padding:0 16px 16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.peripheral-status-item{position:relative;min-width:0;min-height:64px;padding:9px 22px 9px 36px;display:flex;align-items:center;border:1px solid rgba(132,185,217,.12);border-radius:5px;background:#020c184d}.peripheral-status-icon{position:absolute;left:10px;color:var(--subtle)}.peripheral-status-item>div{min-width:0}.peripheral-status-item span,.peripheral-status-item strong,.peripheral-status-item small{display:block}.peripheral-status-item span{color:var(--subtle);font-size:9px}.peripheral-status-item strong{margin-top:2px;color:#f0f9ffeb;font-size:12px}.peripheral-status-item small{margin-top:3px;overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.peripheral-status-item>i{position:absolute;top:10px;right:9px;width:7px;height:7px;border-radius:50%;background:var(--subtle)}.peripheral-status-item.module-ok{border-color:#4be0b333}.peripheral-status-item.module-ok .peripheral-status-icon,.peripheral-status-item.module-ok strong{color:var(--green)}.peripheral-status-item.module-ok>i{background:var(--green);box-shadow:0 0 8px #4be0b37a}.peripheral-status-item.module-warn{border-color:#f2bd6147;background:#593e1221}.peripheral-status-item.module-warn .peripheral-status-icon,.peripheral-status-item.module-warn strong{color:var(--gold)}.peripheral-status-item.module-warn>i{background:var(--gold);box-shadow:0 0 8px #f2bd616b}.peripheral-status-item.module-error{border-color:#ff66664d;background:#5f1b1f29}.peripheral-status-item.module-error .peripheral-status-icon,.peripheral-status-item.module-error strong{color:#ff8f8f}.peripheral-status-item.module-error>i{background:#ff7676;box-shadow:0 0 8px #ff66666b}.peripheral-status-item.module-disabled{opacity:.68}.module-inline-alert{min-height:30px;margin-top:11px;padding:6px 8px;display:flex;align-items:center;gap:6px;border:1px solid rgba(255,126,86,.27);border-radius:5px;background:#681f172e;color:#ffb296;font-size:10px}.control-stack{position:relative;z-index:1;padding:18px;display:grid;gap:12px}.payload-card,.environment-card{position:relative;z-index:1;padding:18px}.payload-topline,.env-headline{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--cyan)}.payload-number{margin-top:22px;display:flex;align-items:baseline;gap:8px}.payload-number strong{color:#fff;font-size:36px;line-height:1}.payload-number span,.payload-meta{color:var(--muted);font-size:13px}.payload-bar{height:9px;margin:18px 0 10px;border-radius:999px;background:#84b9d929;overflow:hidden}.payload-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--cyan))}.payload-bar i.warn{background:linear-gradient(90deg,var(--gold),var(--orange))}.payload-bar i.danger{background:linear-gradient(90deg,var(--orange),var(--danger))}.payload-meta{display:flex;justify-content:space-between}.env-grid{margin-top:16px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.env-grid>div{min-height:54px;padding:8px;border:1px solid rgba(132,185,217,.12);border-radius:6px;background:#020c1847}.env-grid span,.env-grid em{display:block;color:var(--subtle);font-size:11px;font-style:normal}.env-grid strong{display:inline-block;margin:4px 5px 0 0;color:#fff;font-size:18px}.env-grid .metric-alert{border-color:#ff925c57;background:#ff925c14}.env-grid .metric-alert strong{color:var(--gold)}.detail-vision-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.8fr);gap:12px}.camera-frame{position:relative;z-index:1;padding:14px}.camera-scene{position:relative;min-height:330px;border:1px solid rgba(132,185,217,.16);border-radius:6px;background:linear-gradient(180deg,#0d2a3fc7,#040e1af0),linear-gradient(90deg,rgba(67,220,255,.08) 1px,transparent 1px),linear-gradient(180deg,rgba(67,220,255,.06) 1px,transparent 1px);background-size:cover,48px 48px,48px 48px;overflow:hidden}.camera-scene:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(180deg,rgba(255,255,255,.035) 0 1px,transparent 1px 5px);opacity:.34}.camera-hud{position:absolute;z-index:3;display:flex;align-items:center;gap:12px;color:#edf8ffdb;font-size:12px}.hud-top{top:12px;left:14px;right:14px;justify-content:space-between}.hud-bottom{left:14px;right:14px;bottom:12px;justify-content:flex-end}.camera-empty-state{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:grid;place-content:center;justify-items:center;gap:7px;color:#84b0c7b8;text-align:center}.camera-empty-state:before{position:absolute;top:50%;left:50%;width:min(320px,58%);height:min(180px,56%);border:1px solid rgba(67,220,255,.1);background:radial-gradient(circle,rgba(29,103,135,.12),transparent 68%);content:"";transform:translate(-50%,-50%)}.camera-empty-state>*{position:relative;z-index:1}.camera-empty-state strong{color:#dfeff7d1;font-size:13px}.camera-empty-state span{color:var(--subtle);font-size:10px}.camera-hud strong{color:#fff}.camera-hud em{color:var(--cyan);font-style:normal}.detection-box{position:absolute;z-index:2;border:1.5px solid var(--cyan);box-shadow:0 0 18px #43dcff2e}.detection-box span{position:absolute;left:-1px;top:-24px;height:20px;display:inline-flex;align-items:center;padding:0 6px;background:#030d1adb;color:#fff;font-size:11px;white-space:nowrap}.detection-裂缝{border-color:var(--gold)}.detection-白蚁{border-color:var(--orange)}.detection-行人{border-color:var(--green)}.device-alarm-list{position:relative;z-index:1;padding:12px;display:grid;gap:10px}.device-alarm-row{min-height:76px;display:grid;grid-template-columns:24px minmax(0,1fr) 48px;grid-template-rows:auto auto;align-items:center;gap:4px 10px;padding:12px;border:1px solid rgba(132,185,217,.12);border-radius:6px;background:#020c1847}.device-alarm-row svg{grid-row:1 / 3;color:var(--gold)}.device-alarm-row strong{color:#fff;font-size:14px}.device-alarm-row span{display:block;margin-top:4px;color:var(--muted);font-size:12px;line-height:1.45}.device-alarm-row em{justify-self:end;color:var(--gold);font-size:12px;font-style:normal}.device-alarm-row small{grid-column:2 / 4;color:var(--subtle);font-size:11px}.device-alarm-row.level-重要{border-color:#ff6d6d38}.muted-note{color:var(--subtle);font-size:13px;text-align:center}.summary-stack{position:relative;z-index:1;padding:14px;display:grid;gap:10px}.summary-stack>div{min-height:42px;display:grid;grid-template-columns:22px 80px minmax(0,1fr);align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid rgba(132,185,217,.1)}.summary-stack strong{color:#fff;font-size:14px;text-align:right;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.detail-chart-grid{min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detail-chart .chart-canvas{min-height:260px}.task-page{height:calc(100vh - 100px);min-height:780px;margin-top:12px}.task-layout{height:100%;display:grid;grid-template-rows:284px minmax(0,1fr);gap:12px}.task-list-panel,.task-map-panel{min-height:0}.task-table{position:relative;z-index:1;padding:10px 12px 14px;min-width:920px}.task-list-panel{overflow-x:auto}.task-row{width:100%;min-height:48px;display:grid;grid-template-columns:1.8fr .7fr .65fr .65fr .55fr .9fr .65fr .65fr;align-items:center;gap:12px;padding:0 10px;border:0;border-bottom:1px solid rgba(132,185,217,.1);background:transparent;color:#e8f6ffd1;text-align:left;font-size:13px;cursor:pointer}.task-head{min-height:38px;color:var(--subtle);cursor:default}.task-row:not(.task-head):hover,.task-row.selected{background:#43dcff12}.task-row.selected{box-shadow:inset 3px 0 0 var(--cyan)}.task-status{color:#fff}.task-status.running{color:var(--green)}.task-status.finished{color:var(--cyan)}.task-status.pending,.task-status.paused{color:var(--gold)}.task-status.failed{color:var(--danger)}.mini-progress{display:inline-flex;width:74px;height:5px;margin-right:7px;border-radius:4px;background:#9fd0e829;vertical-align:middle;overflow:hidden}.mini-progress b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--gold))}.task-map-panel{display:flex;flex-direction:column}.playback-bar{position:relative;z-index:1;min-height:58px;display:grid;grid-template-columns:40px 40px minmax(0,1fr) 54px;align-items:center;gap:10px;padding:10px 14px 14px;border-top:1px solid rgba(132,185,217,.12)}.icon-action{width:36px;height:36px;padding:0}.playback-bar input[type=range]{width:100%;accent-color:var(--cyan)}.playback-bar strong{color:#fff;font-size:14px;text-align:right}.algorithm-page{min-height:calc(100vh - 100px);margin-top:12px;display:grid;gap:12px}.management-hero{min-height:104px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 24px;border:1px solid rgba(99,207,255,.16);border-radius:8px;background:linear-gradient(90deg,rgba(67,220,255,.1),transparent 45%,rgba(242,189,97,.06)),#071424b8;box-shadow:var(--shadow)}.management-hero h1{margin:6px 0 5px;font-size:30px}.management-hero p{margin:0;color:var(--muted)}.management-summary{display:grid;grid-template-columns:repeat(3,minmax(112px,120px));gap:10px}.management-hero-actions{display:flex;align-items:stretch;gap:10px}.edge-console-link{min-width:146px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(67,220,255,.28);border-radius:6px;color:#ebf8ffd6;background:#041220ad;text-decoration:none;font-size:12px}.edge-console-link:hover{color:#fff;border-color:#43dcff94;background:#43dcff14}.management-summary>div{min-height:62px;padding:11px 12px;border:1px solid rgba(132,185,217,.14);border-radius:6px;background:#020c1857}.management-summary span{display:block;color:var(--subtle);font-size:12px}.management-summary strong{display:block;margin-top:5px;color:#fff;font-size:24px}.management-summary .summary-attention{color:var(--gold)}.panel-source-label{display:inline-flex;align-items:center;gap:6px;color:#97d7efc7;white-space:nowrap}.panel-source-label svg{color:var(--cyan)}.algorithm-top-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(360px,.78fr);gap:12px}.algorithm-middle-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(380px,.75fr);gap:12px}.algorithm-version-panel,.device-algorithm-panel,.audit-log-panel{overflow-x:auto}.admin-table{position:relative;z-index:1;padding:10px 12px 14px;min-width:900px}.admin-row{min-height:46px;display:grid;align-items:center;gap:12px;padding:0 10px;border-bottom:1px solid rgba(132,185,217,.1);color:#e8f6ffd1;font-size:13px}.admin-row:not(.admin-head):hover{background:#43dcff0e}.admin-head{min-height:38px;color:var(--subtle);font-size:12px}.admin-empty-state{min-height:92px;display:flex;align-items:center;justify-content:center;gap:9px;color:var(--subtle);font-size:13px}.admin-empty-state svg{color:#43dcffb8}.algorithm-version-table .admin-row{grid-template-columns:1.15fr .58fr .92fr .92fr .95fr .7fr 1fr}.device-algorithm-table{min-width:1180px}.device-algorithm-table .admin-row{grid-template-columns:.75fr .56fr .82fr .9fr .9fr 1fr .68fr .84fr 1.25fr}.audit-log-table{min-width:1180px}.audit-log-table .admin-row{grid-template-columns:.95fr .52fr .7fr .9fr .86fr .55fr .72fr .52fr 1.35fr}.module-code{color:var(--cyan);font-family:Cascadia Mono,Consolas,monospace}.status-tag{display:inline-flex;width:fit-content;min-width:56px;height:24px;align-items:center;justify-content:center;padding:0 8px;border-radius:999px;border:1px solid rgba(132,185,217,.18);background:#020c1847;font-size:12px;white-space:nowrap}.tag-success{color:var(--green);border-color:#4be0b347;background:#4be0b314}.tag-warn{color:var(--gold);border-color:#f2bd6147;background:#f2bd6114}.tag-danger{color:#ffd1d1;border-color:#ff6d6d4d;background:#ff6d6d14}.tag-working{color:var(--cyan);border-color:#43dcff4d;background:#43dcff14}.tag-muted{color:#c4d0dac2;border-color:#c4d0da2e;background:#c4d0da0f}.deploy-form{position:relative;z-index:1;padding:16px 16px 12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.deploy-form label{display:grid;gap:7px;color:var(--muted);font-size:12px}.deploy-form select,.deploy-form input{width:100%;height:38px;border:1px solid rgba(130,213,249,.2);border-radius:6px;background:#020c1994;color:#f4fbff;outline:0;padding:0 10px}.direct-endpoint-field{grid-column:1 / -1}.delivery-channel-switch{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:14px 16px 0}.delivery-channel-switch button{min-width:0;height:56px;display:flex;align-items:center;gap:9px;padding:0 10px;border:1px solid rgba(132,185,217,.15);border-radius:6px;color:#d1e7f2ad;background:#020c1859;text-align:left;cursor:pointer}.delivery-channel-switch button.active{color:var(--cyan);border-color:#43dcff70;background:#43dcff14}.delivery-channel-switch button>span{min-width:0;display:flex;flex-direction:column;gap:2px}.delivery-channel-switch strong,.delivery-channel-switch small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.delivery-channel-switch strong{color:currentColor;font-size:12px}.delivery-channel-switch small{color:var(--subtle);font-size:10px}.progress-title>div small{color:var(--subtle);font-size:10px}.deploy-actions{position:relative;z-index:1;padding:4px 16px 10px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.deploy-note{position:relative;z-index:1;margin:0 16px 16px;padding:9px 10px;border:1px solid rgba(132,185,217,.12);border-radius:6px;background:#020c1847;color:var(--muted);font-size:12px}.deploy-note.warn{color:var(--gold);border-color:#f2bd6133}.algorithm-progress{position:relative;z-index:1;padding:16px}.progress-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.progress-title span:first-child{display:block;color:var(--subtle);font-size:12px}.progress-title strong{display:block;margin-top:6px;color:#fff;font-size:16px}.deploy-progress-bar{height:8px;margin:18px 0 16px;border-radius:999px;background:#84b9d924;overflow:hidden}.deploy-progress-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--green),var(--gold));box-shadow:0 0 16px #43dcff38;transition:width .26s ease}.deploy-step-list{display:grid;gap:9px}.deploy-step-list>div{min-height:34px;display:flex;align-items:center;gap:9px;padding:0 10px;border:1px solid rgba(132,185,217,.1);border-radius:6px;color:var(--subtle);background:#020c1838;font-size:13px}.deploy-step-list .active{color:var(--cyan);border-color:#43dcff47;background:#43dcff14}.deploy-step-list .done{color:var(--green)}.empty-progress{position:relative;z-index:1;min-height:248px;display:grid;place-items:center;align-content:center;gap:10px;padding:28px;color:var(--subtle);text-align:center}.empty-progress svg{color:var(--cyan)}.empty-progress strong{color:#fff;font-size:17px}.empty-progress span{max-width:300px;line-height:1.6;font-size:13px}@keyframes routeFlow{to{stroke-dashoffset:-170}}@keyframes pulse{0%{opacity:.82;transform:scale(.72)}80%,to{opacity:0;transform:scale(1.35)}}@keyframes focusPulse{0%{opacity:.65;transform:scale(.82)}to{opacity:0;transform:scale(1.18)}}@media(max-width:1480px){.app-header{height:auto;grid-template-columns:1fr;padding:12px}.brand-title{min-width:0;width:100%;font-size:23px}.header-status,.main-nav{justify-content:center;flex-wrap:wrap}.page-overview,.task-page{height:auto;min-height:0}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.overview-layout{grid-template-columns:1fr}.overview-side{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}.campus-map{min-height:520px}.detail-grid,.algorithm-top-grid,.algorithm-middle-grid,.detail-vision-grid{grid-template-columns:1fr}}@media(max-width:1080px){.app-shell{padding:10px}.metric-grid,.chart-strip,.detail-chart-grid,.overview-side{grid-template-columns:1fr}.map-layer-control{flex-wrap:wrap;justify-content:flex-end}.detail-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.login-page{grid-template-columns:1fr;padding:24px}.login-visual{min-height:360px}.task-layout{grid-template-rows:auto 620px}.management-hero{align-items:flex-start;flex-direction:column}.management-hero-actions{width:100%}.deploy-form{grid-template-columns:1fr}.management-summary{width:100%;grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:680px){.management-hero-actions{align-items:stretch;flex-direction:column}.edge-console-link{min-height:42px}.management-summary{grid-template-columns:1fr}.brand-title{height:auto;min-height:52px;padding:10px;font-size:20px}.main-nav button span{display:none}.detail-fields,.progress-summary{grid-template-columns:1fr}.login-frame{left:24px;right:24px}.login-frame h1{font-size:34px}}html,body,#root{height:100%}.app-shell{min-height:100dvh;padding:clamp(8px,.72vw,14px)}.app-header{height:clamp(60px,6.5vh,70px);grid-template-columns:minmax(230px,.76fr) minmax(360px,1.1fr) minmax(470px,1.48fr) minmax(72px,.28fr);gap:clamp(6px,.62vw,12px);padding:0 clamp(10px,.72vw,14px)}.brand-title{min-width:0;width:100%;height:clamp(42px,4.5vh,48px);font-size:clamp(20px,1.32vw,25px)}.main-nav{min-width:0;gap:clamp(5px,.46vw,8px)}.main-nav button{height:clamp(31px,3.35vh,36px);padding:0 clamp(8px,.62vw,12px);font-size:clamp(12px,.7vw,13px);white-space:nowrap}.header-status{gap:clamp(7px,.62vw,12px);font-size:clamp(12px,.72vw,13px)}.page-overview{height:calc(100dvh - clamp(78px,8.5vh,92px));min-height:0;grid-template-rows:clamp(66px,7.4vh,76px) minmax(0,1fr) clamp(108px,12.8vh,138px);gap:clamp(8px,.62vw,10px)}.metric-grid{gap:clamp(8px,.58vw,10px);margin:clamp(7px,.65vh,10px) 0}.metric-card{min-height:clamp(64px,7.1vh,76px);padding:clamp(9px,.68vw,12px) clamp(10px,.78vw,14px);grid-template-columns:clamp(34px,2.2vw,40px) minmax(0,1fr);gap:clamp(9px,.68vw,13px)}.metric-icon{width:clamp(34px,2.2vw,40px);height:clamp(34px,2.2vw,40px)}.metric-value span{font-size:clamp(21px,1.45vw,24px)}.overview-layout{grid-template-columns:minmax(242px,15.3vw) minmax(0,1fr) minmax(286px,18.2vw);gap:clamp(8px,.62vw,10px)}.overview-side{grid-template-rows:minmax(0,1fr) clamp(126px,14.2vh,142px);gap:clamp(8px,.62vw,10px)}.panel-head{height:clamp(34px,3.65vh,38px);padding:0 clamp(10px,.68vw,12px)}.campus-map{flex:1 1 auto;min-height:0;padding:0 4px 28px}.campus-map svg{height:100%;min-height:0}.chart-strip{gap:clamp(8px,.62vw,10px)}.chart-canvas{min-height:clamp(92px,10.8vh,118px)}.task-page{height:calc(100dvh - clamp(78px,8.5vh,100px));min-height:0}.task-layout{grid-template-rows:clamp(188px,26vh,284px) minmax(0,1fr)}@media(max-width:1480px)and (min-width:1181px){.app-header{height:clamp(58px,6.8vh,66px);grid-template-columns:minmax(214px,.7fr) minmax(330px,1fr) minmax(420px,1.45fr) minmax(64px,.22fr);padding:0 10px}.brand-title{font-size:clamp(20px,1.52vw,22px)}.main-nav{justify-content:flex-end;flex-wrap:nowrap}.main-nav button{padding:0 8px;gap:6px}.header-status{justify-content:flex-start;flex-wrap:nowrap}.header-status-right{justify-content:flex-end}.page-overview,.task-page{height:calc(100dvh - clamp(74px,8.2vh,84px));min-height:0}.page-overview{grid-template-rows:clamp(62px,7.2vh,70px) minmax(0,1fr) clamp(98px,12vh,122px)}.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.overview-layout{grid-template-columns:minmax(226px,18vw) minmax(0,1fr) minmax(270px,21vw)}.overview-side{grid-template-columns:none;grid-template-rows:minmax(0,1fr) clamp(116px,14.5vh,134px)}.progress-summary{grid-template-columns:82px minmax(0,1fr);gap:9px;padding:10px 10px 6px}.progress-ring{width:82px;height:82px}.stage-list{padding:0 10px}.stage-list>div{height:24px}.tip-list{padding:6px 9px 8px}.tip-row{min-height:27px}.device-table{padding:4px 7px 7px}.device-row{min-height:32px;grid-template-columns:1.05fr .55fr .78fr .45fr .62fr .72fr;gap:5px;padding:0 5px;font-size:11.5px}.device-focus{padding:8px;gap:6px}.device-focus>div{min-height:32px;padding:6px}.map-layer-control{gap:5px}.map-layer-control button{height:24px;padding:0 7px}.chart-canvas{min-height:92px}.task-layout{grid-template-rows:clamp(174px,25vh,232px) minmax(0,1fr)}}@media(max-height:820px)and (min-width:1181px){.app-shell{padding-top:8px;padding-bottom:8px}.app-header{height:58px}.brand-title{height:40px}.main-nav button{height:30px}.page-overview{height:calc(100dvh - 74px);grid-template-rows:60px minmax(0,1fr) 96px;gap:8px}.metric-grid{margin:7px 0}.metric-card{min-height:60px;padding:8px 9px}.metric-icon{width:32px;height:32px}.metric-label{font-size:11px}.metric-value span{font-size:20px}.panel-head{height:32px}.panel-head h2{font-size:14px}.progress-summary{grid-template-columns:76px minmax(0,1fr);padding:8px 9px 5px}.progress-ring{width:76px;height:76px}.progress-ring span{font-size:20px}.progress-copy strong{font-size:17px}.progress-copy p{margin-top:4px}.stage-list>div{height:22px;font-size:12px}.overview-side{grid-template-rows:minmax(0,1fr) 108px}.alarm-summary-list .tip-row{grid-template-columns:18px 66px minmax(0,1fr)}.tip-row{min-height:26px}.device-row{min-height:30px}.device-focus>div{min-height:30px}.chart-canvas{min-height:82px}}@media(max-width:1180px){.app-header{height:auto;grid-template-columns:1fr;padding:12px}.brand-title{width:100%}.header-status,.main-nav{justify-content:center;flex-wrap:wrap}.page-overview,.task-page{height:auto;min-height:0}.overview-layout{grid-template-columns:1fr}.overview-side{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto}.campus-map{min-height:520px}.campus-map svg{min-height:490px}.chart-strip{grid-template-columns:1fr}.task-layout{grid-template-rows:auto 620px}}.central-overview{height:calc(100dvh - clamp(88px,9.25vh,100px));min-height:720px;display:grid;grid-template-rows:clamp(66px,7.4vh,76px) minmax(0,1fr);gap:clamp(8px,.62vw,10px)}.central-metric-grid{margin:clamp(7px,.65vh,10px) 0 0}.command-layout{min-height:0;display:grid;grid-template-columns:minmax(250px,15.7vw) minmax(0,1fr) minmax(300px,18.6vw);gap:clamp(8px,.62vw,10px)}.command-side,.command-center{min-width:0;min-height:0;display:grid;gap:clamp(8px,.62vw,10px)}.command-side-left{grid-template-rows:clamp(150px,18vh,188px) clamp(190px,22vh,224px) minmax(220px,1fr)}.command-side-right{grid-template-rows:clamp(280px,32vh,344px) clamp(142px,17vh,176px) minmax(180px,1fr)}.command-center{grid-template-rows:minmax(0,1fr) clamp(116px,14vh,148px)}.central-map-panel .campus-map{min-height:0;padding-bottom:26px}.central-map-panel .amap-campus-map{min-height:0}.central-map-panel .campus-map svg{min-height:0}.map-toolbar{display:flex;align-items:center;gap:10px;min-width:0}.map-selected-device,.panel-count,.live-device-name{display:inline-flex;align-items:center;gap:6px;color:#e1f4ffc2;font-size:11px}.map-selected-device{padding-right:10px;border-right:1px solid rgba(132,185,217,.16)}.map-selected-device svg{color:var(--cyan)}.fleet-summary{position:relative;z-index:1;height:calc(100% - 38px);padding:10px 12px;display:grid;grid-template-columns:104px minmax(0,1fr);align-items:center;gap:10px}.fleet-ring{--fleet-progress: 0deg;position:relative;width:96px;height:96px;display:grid;place-content:center;text-align:center;border-radius:50%;background:radial-gradient(circle,rgba(4,15,30,.98) 0 55%,transparent 56%),conic-gradient(var(--cyan) 0 var(--fleet-progress),rgba(117,168,197,.13) var(--fleet-progress) 360deg);box-shadow:inset 0 0 24px #43dcff29,0 0 28px #43dcff14}.fleet-ring:after{content:"";position:absolute;top:8px;right:8px;bottom:8px;left:8px;border:1px solid rgba(67,220,255,.16);border-radius:50%}.fleet-ring strong{position:relative;z-index:1;color:#fff;font-size:28px;line-height:1}.fleet-ring span{position:relative;z-index:1;margin-top:5px;color:var(--subtle);font-size:11px}.fleet-legend{display:grid;gap:8px}.fleet-legend>div{display:grid;grid-template-columns:8px minmax(42px,1fr) 22px 34px;align-items:center;gap:6px;color:var(--muted);font-size:11px}.fleet-legend i{width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px currentColor}.fleet-legend i.idle{background:var(--green)}.fleet-legend i.offline{background:#b1beca9e}.fleet-legend strong{color:#fff;text-align:right}.fleet-legend em{color:var(--subtle);font-style:normal;text-align:right}.device-select-panel{display:flex;flex-direction:column}.central-device-list{position:relative;z-index:1;flex:1;padding:5px 8px 0;overflow:auto}.central-device-row{width:100%;min-height:54px;display:grid;grid-template-columns:20px minmax(0,1fr) 34px 34px;align-items:center;gap:7px;padding:7px 8px;border:1px solid transparent;border-bottom-color:#84b9d91a;border-radius:4px;background:transparent;color:var(--muted);text-align:left;font-size:11px;cursor:pointer}.central-device-row:hover,.central-device-row.selected{border-color:#43dcff3d;background:linear-gradient(90deg,#43dcff1c,#43dcff06)}.device-radio{width:16px;height:16px;display:grid;place-items:center;border:1px solid rgba(132,185,217,.35);border-radius:50%}.central-device-row.selected .device-radio{border-color:var(--cyan);box-shadow:0 0 10px #43dcff38}.central-device-row.selected .device-radio i{width:8px;height:8px;border-radius:50%;background:var(--cyan)}.device-name{min-width:0}.device-name strong,.device-name em{display:block}.device-name strong{color:#f5fbff;font-size:13px}.device-name em{margin-top:3px;overflow:hidden;color:var(--subtle);font-style:normal;text-overflow:ellipsis;white-space:nowrap}.selected-device-link{position:relative;z-index:1;height:34px;margin:5px 8px 8px;display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(67,220,255,.24);border-radius:5px;background:#43dcff12;color:#ebf9ffe6;font-size:12px;cursor:pointer}.selected-device-link:hover{border-color:#43dcff80;background:#43dcff1f}.task-brief-head{position:relative;z-index:1;padding:11px 12px 7px;display:grid;grid-template-columns:76px minmax(0,1fr);align-items:center;gap:12px}.mini-progress{--progress: 0deg;width:72px;height:72px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,rgba(4,15,30,.98) 0 57%,transparent 58%),conic-gradient(var(--gold) 0 var(--progress),rgba(132,185,217,.13) var(--progress) 360deg)}.mini-progress strong{color:#fff;font-size:18px}.task-brief-head>div:last-child span,.task-brief-head>div:last-child strong,.task-brief-head>div:last-child em{display:block}.task-brief-head>div:last-child span{color:var(--green);font-size:11px}.task-brief-head>div:last-child strong{margin-top:4px;color:#fff;font-size:17px}.task-brief-head>div:last-child em{margin-top:5px;overflow:hidden;color:var(--muted);font-size:11px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.stage-list-horizontal{display:grid;grid-template-columns:repeat(auto-fit,minmax(48px,1fr));padding:4px 10px 10px}.stage-list-horizontal>div{position:relative;height:auto;display:grid;grid-template-columns:1fr;justify-items:center;gap:5px;text-align:center;font-size:10px}.stage-list-horizontal>div:not(:last-child):after{content:"";position:absolute;right:-50%;left:50%;height:1px;margin:5px 8px 0;background:#84b9d92b}.stage-list-horizontal>.task-route-empty{grid-column:1 / -1;color:var(--subtle);font-size:10px}.command-trends{min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(8px,.62vw,10px)}.command-trends .chart-canvas{min-height:0}.overview-camera-panel{display:flex;flex-direction:column}.live-device-name i{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 10px #4be0b3b3;animation:pointPulse 1.8s ease-in-out infinite}.camera-frame-compact{flex:1;min-height:0;padding:8px 8px 5px}.camera-frame-compact .camera-scene{height:100%;min-height:176px}.camera-media{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;background:#01070d;opacity:0;transition:opacity .18s ease}.camera-media.is-visible{opacity:1}.camera-scanline{position:absolute;z-index:4;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(67,220,255,.78),transparent);box-shadow:0 0 8px #43dcff6b;animation:cameraScan 5s linear infinite}.live-indicator{color:#dffef3}.live-indicator svg{color:var(--green)}.live-indicator.inactive{color:var(--subtle)}.live-indicator.inactive svg{color:#99b2c0a8}.camera-network-weak{padding:3px 7px;border:1px solid rgba(255,199,102,.32);border-radius:3px;color:#ffd27d;background:#ffb8431a}.map-reference-axis{fill:none;stroke:#6fc9e514;stroke-dasharray:5 9}.map-data-empty text{fill:#8cb1c69e;font-size:14px;text-anchor:middle}.camera-status-strip{position:relative;z-index:1;min-height:34px;padding:0 9px 6px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.camera-status-strip>span{min-width:0;display:flex;align-items:center;justify-content:center;gap:4px;padding:5px;border:1px solid rgba(132,185,217,.1);border-radius:4px;background:#020c1847;color:var(--subtle);font-size:10px;white-space:nowrap}.camera-status-strip svg{flex:0 0 auto;color:var(--cyan)}.camera-status-strip strong{overflow:hidden;color:#f1faffe0;font-weight:600;text-overflow:ellipsis}.overview-env-grid{position:relative;z-index:1;height:calc(100% - 38px);padding:8px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.overview-env-grid>div{min-width:0;display:grid;place-content:center;text-align:center;border:1px solid rgba(132,185,217,.12);border-radius:5px;background:#020c1847}.overview-env-grid span,.overview-env-grid em{color:var(--subtle);font-size:10px;font-style:normal}.overview-env-grid strong{margin:5px 0 2px;color:#fff;font-size:16px}.overview-env-grid .metric-alert{border-color:#f2bd6157;background:#f2bd6114}.overview-env-grid .metric-alert strong{color:var(--gold)}.command-alarm-list{position:relative;z-index:1;padding:6px 9px 9px}.command-alarm-row{min-height:48px;display:grid;grid-template-columns:20px minmax(0,1fr) 50px;align-items:center;gap:7px;border-bottom:1px solid rgba(132,185,217,.1);color:var(--gold)}.command-alarm-row.important{color:var(--orange)}.command-alarm-row div{min-width:0}.command-alarm-row strong,.command-alarm-row span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-alarm-row strong{color:#f4faffe6;font-size:12px}.command-alarm-row span,.command-alarm-row em{color:var(--subtle);font-size:10px;font-style:normal}.command-alarm-row em{text-align:right}.payload-distribution{position:relative;z-index:1;padding:12px 14px 11px}.payload-summary-line,.payload-analysis-title,.payload-status-group,.payload-updated{display:flex;align-items:center}.payload-summary-line{justify-content:space-between;gap:12px}.payload-analysis-title{min-width:0;gap:8px;color:var(--cyan)}.payload-analysis-title>div{min-width:0}.payload-analysis-title span,.payload-analysis-title strong{display:block}.payload-analysis-title span{color:var(--muted);font-size:10px}.payload-analysis-title strong{margin-top:3px;font-size:14px}.payload-status-group{align-items:flex-end;flex-direction:column;gap:5px}.payload-status-group .payload-updated{gap:4px;color:var(--subtle);font-size:9px}.payload-communication-alert{min-height:28px;margin:8px 0 7px;padding:5px 8px;display:flex;align-items:center;gap:6px;border:1px solid rgba(255,126,86,.28);border-radius:5px;background:#681f1733;color:#ffb296;font-size:10px}.load-platform{position:relative;height:226px;margin-top:9px;overflow:hidden;border:1px solid rgba(67,220,255,.24);border-radius:6px;background:linear-gradient(rgba(67,220,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(67,220,255,.035) 1px,transparent 1px),radial-gradient(circle at 50% 48%,#154a6747,#020c18d6 68%);background-size:18px 18px,18px 18px,auto;box-shadow:inset 0 0 32px #43dcff0f}.platform-direction{position:absolute;top:8px;right:12px;left:12px;z-index:8;display:flex;align-items:center;justify-content:space-between;color:var(--subtle);font-size:9px}.platform-direction strong{display:inline-flex;align-items:center;gap:3px;color:var(--cyan);font-weight:500}.platform-side{position:absolute;left:10px;z-index:8;color:#98b9cfb3;font-size:8px;pointer-events:none;writing-mode:vertical-rl}.platform-side-left{top:50px}.platform-side-right{bottom:31px}.load-deck-outline{position:absolute;top:29px;right:8%;bottom:17px;left:8%;z-index:1;border:1px solid rgba(86,201,232,.28);background:linear-gradient(90deg,transparent 49.85%,rgba(102,207,235,.13) 50%,transparent 50.15%),linear-gradient(180deg,transparent 49.8%,rgba(102,207,235,.13) 50%,transparent 50.2%),#0a273b47;clip-path:polygon(0 8%,94% 8%,100% 22%,100% 78%,94% 92%,0 92%);box-shadow:inset 0 0 28px #30b7e214}.load-deck-outline:after{position:absolute;top:9px;right:13px;bottom:9px;left:13px;border:1px dashed rgba(100,190,218,.14);content:""}.load-reference-axis{position:absolute;z-index:2;pointer-events:none}.load-axis-longitudinal{top:50%;right:8%;left:8%;border-top:1px dashed rgba(161,210,225,.12)}.load-axis-lateral{top:29px;bottom:17px;left:50%;border-left:1px dashed rgba(161,210,225,.12)}.load-zone{position:absolute;top:var(--sensor-y);left:var(--sensor-x);z-index:4;width:88px;height:58px;pointer-events:auto;transform:translate(-50%,-50%)}.load-heat-field{position:absolute;top:50%;left:50%;width:126px;height:96px;border-radius:50%;background:radial-gradient(ellipse,rgba(var(--heat-rgb),var(--heat-alpha)),rgba(var(--heat-rgb),.2) 42%,rgba(var(--heat-rgb),0) 73%);filter:blur(2px);transform:translate(-50%,-50%) scale(var(--heat-scale))}.load-sensor-point{position:absolute;top:50%;left:50%;z-index:2;width:11px;height:11px;border:2px solid rgba(var(--heat-rgb),.95);border-radius:50%;background:#020d19e6;box-shadow:0 0 0 4px rgba(var(--heat-rgb),.12),0 0 12px rgba(var(--heat-rgb),.52);transform:translate(-50%,-50%)}.load-zone strong,.load-zone small{position:absolute;left:50%;z-index:3;width:max-content;max-width:92px;text-align:center;transform:translate(-50%)}.load-zone strong{top:calc(50% + 11px);color:#eef8fceb;font-size:9px}.load-zone small{top:calc(50% + 24px);color:rgba(var(--heat-rgb),.92);font-size:8px}.load-resultant{position:absolute;z-index:7;width:28px;height:28px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:#04121ebd;color:#fff;box-shadow:0 0 0 5px #ffffff12,0 0 16px #50dcff47;pointer-events:none;transform:translate(-50%,-50%)}.load-resultant span{position:absolute;top:31px;left:50%;width:max-content;color:#eff9ffdb;font-size:8px;transform:translate(-50%)}.load-platform.is-unavailable .load-deck-outline,.load-platform.is-unavailable .load-reference-axis{opacity:.45}.load-platform.is-unavailable .load-zone strong,.load-platform.is-unavailable .load-zone small{color:#7c92a094}.load-unavailable-copy{position:absolute;top:50%;left:50%;z-index:8;padding:7px 12px;border:1px solid rgba(153,175,189,.18);border-radius:4px;background:#020c18c7;color:var(--subtle);font-size:10px;transform:translate(-50%,-50%)}.load-legend{margin-top:8px;display:grid;gap:4px;color:var(--subtle);font-size:8px}.load-legend i{height:5px;border-radius:4px;background:linear-gradient(90deg,#34b7ef,#41dca5 42%,#ffb443 72%,#ff4c43);box-shadow:0 0 8px #41dca529}.load-legend>div{display:flex;justify-content:space-between;gap:8px}.load-legend span:last-child{color:#ff847d}.load-engineering-summary{margin-top:8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.load-engineering-summary>div{min-width:0;padding:7px;border:1px solid rgba(132,185,217,.11);border-radius:5px;background:#020c184d}.load-engineering-summary span,.load-engineering-summary strong{display:block}.load-engineering-summary span{color:var(--subtle);font-size:9px}.load-engineering-summary strong{margin-top:4px;color:#f0f9ffe6;font-size:11px;line-height:1.25}.load-method-note{margin:7px 0 0;color:#84a3b79e;font-size:8px;text-align:right}.centralized-detail-hero{display:grid;grid-template-columns:minmax(260px,1fr) minmax(360px,1.15fr) auto;gap:20px}.detail-device-switch{min-width:0;justify-self:stretch}.detail-device-switch>span{display:flex;align-items:center;gap:6px;color:var(--subtle);font-size:11px}.detail-device-switch>div{margin-top:8px;display:flex;gap:7px}.detail-device-switch button{min-width:116px;height:34px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid rgba(132,185,217,.15);border-radius:5px;background:#020c1857;color:var(--muted);cursor:pointer}.detail-device-switch button.active{border-color:#43dcff7a;background:#43dcff1a;color:#fff}.detail-device-switch button i{width:7px;height:7px;border-radius:50%;background:#b1beca9e}.detail-device-switch button i.online{background:var(--green);box-shadow:0 0 8px #4be0b380}.centralized-detail-grid{grid-template-columns:minmax(0,1.15fr) minmax(360px,1fr) minmax(290px,.78fr)}.centralized-detail-grid .panel{min-height:360px}.centralized-detail-grid .power-channel-panel{min-height:0;grid-column:1 / -1}.power-channel-content{position:relative;z-index:1;padding:12px 14px 10px}.power-channel-content>.module-inline-alert{margin:0 0 9px}.power-channel-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.power-channel-item{position:relative;min-width:0;min-height:78px;padding:9px 11px;border:1px solid rgba(132,185,217,.13);border-radius:5px;background:#020c184d}.power-channel-item:before{position:absolute;top:9px;right:9px;width:5px;height:5px;border-radius:50%;background:var(--green);box-shadow:0 0 7px #4be0b373;content:""}.power-channel-item>span,.power-channel-item>small,.power-channel-item>i{display:block;color:var(--subtle);font-size:9px;font-style:normal}.power-channel-item>strong{display:block;margin-top:5px;color:#f4fbfff5;font-size:18px}.power-channel-item>strong em{color:var(--muted);font-size:10px;font-style:normal;font-weight:500}.power-channel-item>small{margin-top:3px}.power-channel-item>i{margin-top:5px;color:var(--green)}.power-channel-item.is-abnormal{border-color:#ff706547;background:#5c1a1f24}.power-channel-item.is-abnormal:before{background:var(--danger);box-shadow:0 0 7px #ff66666b}.power-channel-item.is-abnormal>i{color:#ff8f8f}.power-threshold-note{margin-top:7px;display:flex;justify-content:flex-end;gap:10px;color:#84a3b7a8;font-size:8px}.power-threshold-note em{font-style:normal}.centralized-detail-grid .detail-fields{grid-template-columns:repeat(3,minmax(0,1fr))}@keyframes cameraScan{0%{top:4%;opacity:0}10%{opacity:.8}90%{opacity:.8}to{top:96%;opacity:0}}@media(max-width:1480px)and (min-width:1181px){.command-layout{grid-template-columns:minmax(226px,18vw) minmax(0,1fr) minmax(274px,21vw)}.command-side-left{grid-template-rows:150px 184px minmax(190px,1fr)}.command-side-right{grid-template-rows:270px 138px minmax(170px,1fr)}.fleet-summary{grid-template-columns:82px minmax(0,1fr);padding:7px 9px}.fleet-ring{width:78px;height:78px}.central-device-row{min-height:47px;padding:5px}.task-brief-head{grid-template-columns:64px minmax(0,1fr);padding:8px 9px 5px}.mini-progress{width:60px;height:60px}.map-toolbar{gap:6px}.map-selected-device{display:none}.camera-status-strip>span{font-size:9px}.centralized-detail-grid{grid-template-columns:minmax(0,1fr) minmax(350px,.95fr)}.centralized-detail-grid>.panel:nth-child(3),.centralized-detail-grid>.power-channel-panel{grid-column:1 / -1}.power-channel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-height:820px)and (min-width:1181px){.central-overview{height:calc(100dvh - 80px);min-height:0;grid-template-rows:60px minmax(0,1fr);gap:8px}.command-side-left{grid-template-rows:132px 168px minmax(170px,1fr)}.command-side-right{grid-template-rows:238px 124px minmax(150px,1fr)}.command-center{grid-template-rows:minmax(0,1fr) 94px}.fleet-ring{width:70px;height:70px}.fleet-summary{grid-template-columns:74px minmax(0,1fr);padding:5px 8px}.central-device-row{min-height:42px}.selected-device-link{height:29px}.task-brief-head{grid-template-columns:56px minmax(0,1fr);padding:6px 8px 3px}.mini-progress{width:52px;height:52px}.stage-list-horizontal{padding-bottom:6px}.camera-frame-compact .camera-scene{min-height:148px}.overview-env-grid{padding:5px 7px}.command-alarm-row{min-height:38px}}@media(max-width:1180px){.central-overview{height:auto;min-height:0}.central-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.command-layout{grid-template-columns:1fr}.command-side-left,.command-side-right,.command-center{grid-template-rows:auto}.command-side-left,.command-side-right{grid-template-columns:repeat(2,minmax(0,1fr))}.task-brief-panel,.overview-alarm-panel{grid-column:1 / -1}.central-map-panel .campus-map,.central-map-panel .amap-campus-map{min-height:520px}.central-map-panel .campus-map svg{min-height:490px}.command-trends{min-height:150px}.centralized-detail-hero,.centralized-detail-grid{grid-template-columns:1fr}.power-channel-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:680px){.central-metric-grid,.command-side-left,.command-side-right,.command-trends,.load-engineering-summary,.peripheral-status-list{grid-template-columns:1fr}.env-grid,.power-channel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.payload-summary-line{align-items:flex-start;flex-direction:column}.payload-status-group{align-items:flex-start}.load-zone strong{font-size:8px}.task-brief-panel,.overview-alarm-panel{grid-column:auto}.map-toolbar{align-items:flex-end;flex-direction:column}.map-mode-control,.map-layer-control{flex-wrap:wrap;justify-content:flex-end}.map-mode-control{padding-right:0;border-right:0}.amap-fallback-status em{display:none}.central-map-panel .panel-head{height:auto;min-height:54px}.detail-device-switch>div{flex-wrap:wrap}}@media(min-width:1181px){.task-brief-panel{display:flex;flex-direction:column}.task-brief-head{width:100%;grid-template-columns:98px minmax(0,1fr);gap:15px;margin-top:auto;padding:18px 16px 12px}.mini-progress{width:92px;height:92px}.mini-progress strong{font-size:23px}.task-brief-head>div:last-child span{font-size:13px}.task-brief-head>div:last-child strong{margin-top:6px;font-size:22px}.task-brief-head>div:last-child em{margin-top:7px;font-size:12px}.stage-list-horizontal{width:100%;margin-bottom:auto;padding:8px 12px 20px}.stage-list-horizontal>div{gap:8px;font-size:12px}.stage-list-horizontal i{width:12px;height:12px}}@media(max-height:820px)and (min-width:1181px){.task-brief-head{grid-template-columns:80px minmax(0,1fr);gap:12px;padding:12px 12px 8px}.mini-progress{width:76px;height:76px}.mini-progress strong{font-size:20px}.task-brief-head>div:last-child strong{font-size:19px}.stage-list-horizontal{padding:6px 10px 12px}.stage-list-horizontal>div{gap:6px;font-size:11px}}
