/* ============ Tab 4: 空域预警 ============ */
#tab-alarms {
  flex-direction: column; background: #0f172a; overflow-y: auto;
}
#tab-alarms::-webkit-scrollbar { width: 4px; }
#tab-alarms::-webkit-scrollbar-thumb { background: #374151; border-radius: 2px; }

.alarm-stats-bar {
  display: flex; gap: 12px; padding: 16px 20px; background: #111827;
  border-bottom: 1px solid #1f2937; flex-shrink: 0; flex-wrap: wrap;
}
.alarm-stat-card {
  flex: 1; min-width: 100px; text-align: center;
  padding: 14px 10px; border-radius: 8px; border: 1px solid #1f2937;
  background: #1a2332;
}
.alarm-stat-card.alarm-rule-disabled { opacity:.58; filter:saturate(.55); }
.alarm-switch-line { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:8px; }
.alarm-switch-title { color:#dbe4f0; font-size:calc(13px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight:650; text-align:left; white-space:nowrap; }
.alarm-switch { position:relative; display:inline-flex; width:38px; height:21px; flex:0 0 38px; }
.alarm-switch input { position:absolute; opacity:0; pointer-events:none; }
.alarm-switch-slider { width:100%; height:100%; border-radius:12px; background:#3b4657; cursor:pointer; transition:.2s; box-shadow:inset 0 0 0 1px rgba(148,163,184,.18); }
.alarm-switch-slider::after { content:""; display:block; width:17px; height:17px; margin:2px; border-radius:50%; background:#d6deea; transition:.2s; box-shadow:0 1px 4px rgba(0,0,0,.45); }
.alarm-switch input:checked + .alarm-switch-slider { background:#1677ff; box-shadow:0 0 10px rgba(22,119,255,.42); }
.alarm-switch input:checked + .alarm-switch-slider::after { transform:translateX(17px); background:#fff; }
.alarm-switch input:disabled + .alarm-switch-slider { cursor:wait; }
.alarm-switch-state { margin-top:5px; color:#6f8299; font-size:calc(10px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); }
.alarm-stat-card .alarm-stat-value {
  font-size:calc(28px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight: 700;
}
.alarm-stat-card .alarm-stat-label {
  font-size:calc(11px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); margin-top: 4px; color: #9ca3af;
}
.alarm-stat-card.l1 { border-left: 3px solid #6b7280; }
.alarm-stat-card.l1 .alarm-stat-value { color: #9ca3af; }
.alarm-stat-card.l2 { border-left: 3px solid #3b82f6; }
.alarm-stat-card.l2 .alarm-stat-value { color: #60a5fa; }
.alarm-stat-card.l3 { border-left: 3px solid #eab308; }
.alarm-stat-card.l3 .alarm-stat-value { color: #facc15; }
.alarm-stat-card.l4 { border-left: 3px solid #f97316; }
.alarm-stat-card.l4 .alarm-stat-value { color: #fb923c; }
.alarm-stat-card.l5 { border-left: 3px solid #ef4444; }
.alarm-stat-card.l5 .alarm-stat-value { color: #f87171; }

.alarm-content-area {
  flex: 1; overflow-y: auto; padding: 16px 20px;
}
.alarm-content-area::-webkit-scrollbar { width: 4px; }
.alarm-content-area::-webkit-scrollbar-thumb { background: #374151; border-radius: 2px; }

.alarm-level-badge {
  display: inline-block; padding: 2px 10px; border-radius: 10px;
  font-size:calc(11px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight: 700; text-align: center; min-width: 36px;
}
.alarm-level-badge.l1 { background: #374151; color: #9ca3af; }
.alarm-level-badge.l2 { background: #1e3a5f; color: #60a5fa; }
.alarm-level-badge.l3 { background: #422006; color: #facc15; }
.alarm-level-badge.l4 { background: #431407; color: #fb923c; }
.alarm-level-badge.l5 { background: #450a0a; color: #f87171; }
.alarm-level-badges { display:flex; flex-wrap:wrap; gap:4px; }

.alarm-detail-row { display: none; }
.alarm-detail-row.show { display: table-row; }
.alarm-detail-row td {
  background: #0f172a; padding: 14px 18px;
  font-size:calc(12px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); color: #9ca3af; border-bottom: 1px solid #1f2937;
}
.alarm-detail-panel { display:grid; gap:13px; }
.alarm-detail-summary { padding:10px 12px; border-left:3px solid #ef4444; border-radius:4px; background:#141e2d; color:#e3eaf4; font-size:calc(13px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); line-height:1.65; }
.alarm-detail-title { color:#7dd3fc; font-size:calc(12px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight:700; letter-spacing:.04em; }
.alarm-timeline { display:grid; gap:0; margin-top:7px; }
.alarm-time-item { position:relative; display:grid; grid-template-columns:105px 170px 1fr; gap:12px; align-items:start; padding:8px 8px 8px 18px; border-left:1px solid #334155; }
.alarm-time-item::before { content:""; position:absolute; left:-4px; top:13px; width:7px; height:7px; border-radius:50%; background:#38bdf8; box-shadow:0 0 7px rgba(56,189,248,.7); }
.alarm-time-label { color:#dbeafe; font-weight:650; }.alarm-time-value { color:#f8fafc; font-family:monospace; }.alarm-time-note { color:#71849d; }
.alarm-rule-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:7px; margin-top:7px; }
.alarm-rule-item { display:flex; justify-content:space-between; gap:10px; padding:8px 10px; border:1px solid #263548; border-radius:5px; background:#111b29; }
.alarm-rule-item span { color:#70839b; }.alarm-rule-item b { color:#dbe7f5; font-weight:550; text-align:right; word-break:break-all; }
.alarm-event-block { padding:10px; border:1px solid #263548; border-radius:6px; background:rgba(17,27,41,.72); }
.alarm-event-block + .alarm-event-block { margin-top:8px; }
.alarm-event-head { display:flex; align-items:center; gap:8px; margin-bottom:8px; color:#dbeafe; font-size:calc(12px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight:700; }
.alarm-analysis-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:7px; margin-top:7px; }
.alarm-analysis-item { padding:9px 10px; border:1px solid #28405a; border-radius:5px; background:#111d2c; }
.alarm-analysis-item span { display:block; color:#6f849e; font-size:calc(11px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); }.alarm-analysis-item b { display:block; margin-top:4px; color:#eef6ff; font-size:calc(13px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight:600; word-break:break-word; }
.alarm-analysis-item.wide { grid-column:1/-1; }
.alarm-analysis-item.alarm-session-item { grid-column:span 2; width:min(100%,540px); }
.alarm-analysis-item.alarm-location-item { grid-column:span 2; width:min(100%,620px); }
.alarm-session-action,.alarm-location-action { display:flex; align-items:center; justify-content:flex-start; gap:10px; margin-top:5px; }
.alarm-session-action b { margin-top:0; flex:0 1 auto; min-width:0; font-family:Consolas,monospace; }
.alarm-location-action b { margin-top:0; flex:0 1 auto; min-width:0; }
.alarm-session-action .btn { flex:0 0 auto; white-space:nowrap; }
.alarm-location-action .btn { flex:0 0 auto; white-space:nowrap; }
.address-retry-btn { margin-left:8px; padding:2px 8px; border:1px solid #38bdf8; border-radius:4px; background:rgba(14,165,233,.12); color:#7dd3fc; font:inherit; cursor:pointer; }
.address-retry-btn:hover { background:rgba(14,165,233,.24); color:#e0f2fe; }
.alarm-detail-loading { padding:20px; color:#7dd3fc; text-align:center; }
.alarm-analysis-note { margin-top:8px; color:#526981; font-size:calc(10px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); text-align:right; }
.alarm-pilot-map-modal { z-index:13000; }
.alarm-pilot-map-card { width:min(920px,94vw); max-height:92vh; }
.alarm-pilot-map-meta { display:flex; flex-wrap:wrap; gap:8px 20px; margin:-4px 0 12px; color:#94a3b8; font-size:calc(12px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); }
#alarm-pilot-map { width:100%; height:min(66vh,620px); min-height:430px; border:1px solid #334155; border-radius:9px; overflow:hidden; background:#0b1220; }
.alarm-pilot-map-tip { margin-top:9px; color:#64748b; font-size:calc(11px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); text-align:center; }
@media (max-width:720px) {
  .alarm-analysis-item.alarm-session-item,.alarm-analysis-item.alarm-location-item { grid-column:1/-1; width:100%; }
  .alarm-session-action,.alarm-location-action { align-items:flex-start; flex-wrap:wrap; }
  #alarm-pilot-map { min-height:360px; }
}
.alarm-row-clickable { cursor: pointer; }
.alarm-row-clickable:hover td { background: #1e293b; }

.alarm-expand-icon {
  display: inline-block; transition: transform 0.2s; font-size:calc(12px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px));
  margin-right: 4px;
}
.alarm-expand-icon.open { transform: rotate(90deg); }

#tab-alarms .panel-header {
  padding: 16px 20px; background: #1a2332;
  border-bottom: 2px solid #ef4444; display: flex; align-items: center; gap: 10px;
  flex-shrink: 0;
}
#tab-alarms .panel-header h2 { font-size:calc(18px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); font-weight: 600; color: #f3f4f6; }
#tab-alarms .panel-footer {
  padding: 10px 20px; background: #1a2332; border-top: 1px solid #1f2937;
  font-size:calc(11px + var(--utm-text-delta, 0px) + var(--utm-area-text-delta, 0px)); color: #6b7280; text-align: center; flex-shrink: 0;
}

