/* ============ 设备管理 ============ */
#tab-dashboard { flex-direction:column; overflow:auto; background:#050b16; }
.dashboard-shell { min-width:1260px; min-height:760px; height:100%; padding:12px 14px 14px; display:flex; flex-direction:column; gap:10px; background:radial-gradient(circle at 50% 38%,rgba(14,77,123,.22),transparent 38%),linear-gradient(180deg,#07101f,#030812); }
.dashboard-topbar { min-height:54px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; border:1px solid rgba(56,189,248,.3); border-radius:8px; padding:7px 14px; background:linear-gradient(90deg,rgba(7,20,38,.95),rgba(12,39,66,.9),rgba(7,20,38,.95)); box-shadow:0 0 24px rgba(14,165,233,.08) inset; }
.dashboard-title { font-size:calc(21px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight:800; color:#dff7ff; letter-spacing:3px; text-shadow:0 0 15px rgba(56,189,248,.55); }
.dashboard-region { justify-self:center; color:#67e8f9; font-size:calc(12px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); letter-spacing:2px; }
.dashboard-clock { justify-self:end; display:flex; align-items:center; gap:12px; color:#a5f3fc; font-family:monospace; font-size:calc(13px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); }
.dashboard-action { padding:5px 9px; border:1px solid #1d4ed8; border-radius:5px; background:#0b2444; color:#bfdbfe; cursor:pointer; }
.dashboard-kpis { display:grid; grid-template-columns:repeat(8,minmax(105px,1fr)); gap:8px; }
.dashboard-kpi { position:relative; overflow:hidden; min-height:76px; padding:10px 11px; border:1px solid rgba(34,211,238,.26); border-radius:7px; background:linear-gradient(145deg,rgba(10,31,55,.95),rgba(6,18,34,.94)); }
.dashboard-kpi::after { content:""; position:absolute; right:-18px; bottom:-22px; width:70px; height:70px; border:1px solid rgba(34,211,238,.13); transform:rotate(45deg); }
.dashboard-kpi.warn { border-color:rgba(251,191,36,.42); }.dashboard-kpi.danger { border-color:rgba(248,113,113,.5); }
.dashboard-kpi-label { color:#7dd3fc; font-size:calc(10px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); white-space:nowrap; }
.dashboard-kpi-value { margin-top:4px; color:#f0f9ff; font-size:calc(25px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight:800; line-height:1; font-family:Arial,sans-serif; }
.dashboard-kpi-unit { margin-left:3px; color:#64748b; font-size:calc(10px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight:400; }
.dashboard-kpi-sub { margin-top:6px; color:#64748b; font-size:calc(9px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); }
.dashboard-main { flex:1; min-height:0; display:grid; grid-template-columns:250px minmax(520px,1fr) 280px; grid-template-rows:minmax(360px,1fr) 178px; gap:10px; }
.dash-card { position:relative; min-height:0; overflow:hidden; border:1px solid rgba(56,189,248,.24); border-radius:7px; background:linear-gradient(155deg,rgba(8,24,43,.96),rgba(4,13,26,.97)); box-shadow:0 0 20px rgba(2,132,199,.05) inset; }
.dash-card-title { height:33px; display:flex; align-items:center; justify-content:space-between; padding:0 10px; border-bottom:1px solid rgba(56,189,248,.16); color:#bae6fd; font-size:calc(12px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight:700; letter-spacing:1px; }
.dash-card-title::before { content:""; width:3px; height:13px; margin-right:7px; background:#22d3ee; box-shadow:0 0 8px #22d3ee; }
.dash-card-title span:first-child { display:flex; align-items:center; }
.dash-muted { color:#52667e; font-size:calc(9px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight:400; letter-spacing:0; }
.dashboard-left,.dashboard-right { min-height:0; display:grid; gap:10px; }
.dashboard-left { grid-template-rows:1.05fr .95fr; }.dashboard-right { grid-template-rows:.8fr 1.2fr; }
.dashboard-map-card { position:relative; min-height:0; overflow:hidden; border:1px solid rgba(34,211,238,.35); border-radius:7px; background:#07111f; }
#dashboard-map { width:100%; height:100%; min-height:360px; }
.dashboard-map-head { position:absolute; z-index:20; left:10px; top:10px; right:10px; display:flex; justify-content:space-between; pointer-events:none; }
.dashboard-map-label,.dashboard-map-legend { padding:6px 9px; border:1px solid rgba(56,189,248,.28); border-radius:5px; background:rgba(3,12,24,.82); color:#bae6fd; font-size:calc(10px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); backdrop-filter:blur(5px); }
.dashboard-map-legend { display:flex; gap:9px; }.dashboard-map-legend i { width:7px; height:7px; display:inline-block; margin-right:4px; border-radius:50%; }
.dash-panel-body { height:calc(100% - 33px); padding:9px 10px; min-height:0; }
#dashboard-trend-svg { display:block; width:100%; height:calc(100% - 25px); overflow:hidden; }
.dash-chart-legend { display:flex; gap:12px; color:#64748b; font-size:calc(9px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); }.dash-chart-legend i { display:inline-block; width:10px; height:2px; margin-right:4px; vertical-align:middle; }
.dashboard-identity { display:grid; grid-template-columns:100px 1fr; height:100%; align-items:center; gap:12px; }
.dashboard-donut { width:92px; height:92px; border-radius:50%; display:grid; place-items:center; background:conic-gradient(#22c55e 0 0%,#f59e0b 0 100%); box-shadow:0 0 20px rgba(34,197,94,.13); }
.dashboard-donut::after { content:""; width:61px; height:61px; border-radius:50%; background:#081626; }
.dashboard-donut-text { position:absolute; text-align:center; color:#e0f2fe; font-size:calc(17px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight:800; }
.dashboard-donut-text small { display:block; margin-top:2px; color:#64748b; font-size:calc(8px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight:400; }
.identity-lines { display:grid; gap:8px; }.identity-line { display:flex; justify-content:space-between; color:#7f91a8; font-size:calc(10px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); }.identity-line b { color:#e2e8f0; }
.dash-bars { display:grid; gap:7px; }.dash-bar-row { display:grid; grid-template-columns:86px 1fr 30px; align-items:center; gap:7px; font-size:calc(9px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); color:#8ba0b8; }.dash-bar-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.dash-bar-track { height:6px; overflow:hidden; border-radius:3px; background:#142337; }.dash-bar-fill { height:100%; border-radius:3px; background:linear-gradient(90deg,#0369a1,#22d3ee); box-shadow:0 0 8px rgba(34,211,238,.4); }.dash-bar-value { text-align:right; color:#bae6fd; }
.dashboard-alarm-list { height:100%; overflow:hidden; display:grid; align-content:start; gap:6px; }.dashboard-alarm-item { display:grid; grid-template-columns:38px 1fr auto; gap:7px; align-items:center; padding:6px 7px; border-left:2px solid #f59e0b; background:rgba(15,35,56,.78); font-size:calc(9px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); }.dashboard-alarm-item.l4,.dashboard-alarm-item.l5 { border-color:#ef4444; background:rgba(80,20,25,.3); }.dashboard-alarm-level { color:#fbbf24; font-weight:800; }.dashboard-alarm-item.l4 .dashboard-alarm-level,.dashboard-alarm-item.l5 .dashboard-alarm-level { color:#f87171; }.dashboard-alarm-main { min-width:0; color:#cbd5e1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.dashboard-alarm-time { color:#52667e; }
.dashboard-bottom { grid-column:1/-1; display:grid; grid-template-columns:1.2fr 1fr 1fr 1.1fr; gap:10px; min-height:0; }
.dash-metric-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:8px; height:100%; }.dash-mini-metric { display:flex; flex-direction:column; justify-content:center; padding:7px 9px; border:1px solid rgba(56,189,248,.12); border-radius:5px; background:rgba(7,22,39,.7); }.dash-mini-metric strong { color:#67e8f9; font-size:calc(18px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); }.dash-mini-metric span { margin-top:3px; color:#64748b; font-size:calc(9px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); }
.dashboard-system { display:grid; gap:7px; }.dashboard-system-row { display:flex; justify-content:space-between; align-items:center; padding:6px 7px; color:#8092a9; font-size:calc(9px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); border-bottom:1px solid rgba(51,65,85,.35); }.dashboard-system-row b { color:#dbeafe; }.dashboard-dot { width:7px; height:7px; display:inline-block; margin-right:5px; border-radius:50%; background:#22c55e; box-shadow:0 0 7px #22c55e; }
.dashboard-uav-icon { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:rgba(3,15,30,.64); border:1px solid #22d3ee; box-shadow:0 0 11px rgba(34,211,238,.7); }.dashboard-uav-icon.unverified { border-color:#f59e0b; box-shadow:0 0 11px rgba(245,158,11,.75); }.dashboard-uav-icon img { width:31px; height:31px; object-fit:contain; }
@media(max-width:1450px){.dashboard-main{grid-template-columns:225px minmax(480px,1fr) 250px}.dashboard-shell{padding:9px;gap:8px}.dashboard-kpi-value{font-size:calc(21px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px))}.dashboard-main,.dashboard-left,.dashboard-right,.dashboard-bottom{gap:8px}}

