/* ════════════════════════════════════════════════════════════
   MADA-PRISM v3.0 — Multi-Page Layer CSS
   Page-router nav + Incident, CTI, Intel, Crisis page styles
   Glassmorphism, Palantir-sovereign aesthetic.
   ════════════════════════════════════════════════════════════ */

:root {
  --p-cyan: #00E5D4;
  --p-amber: #FFB000;
  --p-red: #FF3B30;
  --p-purple: #AF52DE;
  --p-blue: #5DADE2;
  --p-green: #2ECC71;
  --p-orange: #FF6B35;
  --p-text: #C9D1D9;
  --p-text-dim: rgba(201, 209, 217, 0.55);
  --p-glass-bg: rgba(0, 229, 212, 0.04);
  --p-glass-border: rgba(0, 229, 212, 0.18);
  --p-glass-blur: blur(18px) saturate(140%);
}

/* ============ Page nav (top HUD) ============ */
.page-nav {
  position: fixed;
  top: 32px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 0;
  padding: 3px;
  z-index: 945;
  border-radius: 0;
}
.page-nav-btn {
  display: flex; align-items: center; gap: 6px;
  padding: 4px 12px;
  background: transparent;
  border: 1px solid transparent;
  border-right: 1px solid rgba(0,229,212,0.10);
  color: var(--p-text-dim);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.15em;
  cursor: pointer;
  transition: all 0.18s;
}
.page-nav-btn:last-child { border-right: none; }
.page-nav-btn:hover {
  background: rgba(0,229,212,0.06);
  color: var(--p-text);
}
.page-nav-btn.active {
  background: var(--accent, var(--p-cyan));
  background: color-mix(in srgb, var(--accent, var(--p-cyan)) 18%, transparent);
  color: var(--accent, var(--p-cyan));
  border-color: color-mix(in srgb, var(--accent, var(--p-cyan)) 60%, transparent);
  box-shadow: inset 0 0 8px color-mix(in srgb, var(--accent, var(--p-cyan)) 25%, transparent);
}
.page-nav-icon { font-size: 14px; }

/* Hide center HUD badges when not on Baseera, so page nav is clean */
body.page-overlay .hud-center { display: none; }
/* Move shard nav left when page nav is at center */
body.page-overlay .shard-nav { left: 200px; }

/* ============ Page root container ============ */
#pageRoot { pointer-events: none; }
.prism-page {
  position: fixed;
  top: 78px;
  bottom: 188px;
  left: 0;
  right: 0;
  overflow-y: auto;
  z-index: 880;
  pointer-events: auto;
  background: radial-gradient(ellipse at center top,
    rgba(10, 14, 23, 0.45) 0%,
    rgba(10, 14, 23, 0.75) 100%);
  backdrop-filter: blur(8px);
}
.prism-page-inner {
  max-width: 1800px;
  margin: 0 auto;
  padding: 24px 32px 32px;
}

/* When overlay page active, hide Cesium-specific UI but keep top/bottom HUD */
body.page-overlay #cesiumContainer { filter: blur(4px) saturate(0.5); opacity: 0.35; }
body.page-overlay .left-panel,
body.page-overlay .audit-monitor,
body.page-overlay .intent-box,
body.page-overlay .right-panel,
body.page-overlay .basemap-switcher,
body.page-overlay #timeScrubber.time-scrubber,
body.page-overlay .playback-panel { display: none !important; }

/* ============ Common glass panel ============ */
.glass {
  background: var(--p-glass-bg);
  backdrop-filter: var(--p-glass-blur);
  -webkit-backdrop-filter: var(--p-glass-blur);
  border: 1px solid var(--p-glass-border);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,0.04),
    0 8px 32px rgba(0,0,0,0.35);
}

.panel { padding: 0; overflow: hidden; }
.panel-header-row {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px;
  background: rgba(255, 176, 0, 0.06);
  border-bottom: 1px solid rgba(255, 176, 0, 0.22);
  color: var(--p-amber);
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
}
.panel-label { color: var(--p-text-dim); font-size: 10px; letter-spacing: 0.12em; }
.panel-label.live { color: var(--p-cyan); }
.panel-link { color: var(--p-cyan); text-decoration: none; font-size: 10px; }
.panel-link:hover { text-decoration: underline; }

/* ============ Common page header ============ */
.page-header, .incident-header {
  padding: 18px 22px;
  margin-bottom: 20px;
}
.page-eyebrow, .incident-classification {
  color: var(--p-cyan);
  font-family: 'JetBrains Mono', monospace;
  font-size: 10px;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  margin-bottom: 6px;
  opacity: 0.7;
}
.page-title, .incident-title {
  font-family: 'JetBrains Mono', monospace;
  font-size: 26px;
  font-weight: 600;
  color: #fff;
  letter-spacing: 0.05em;
  margin: 0 0 12px 0;
  text-shadow: 0 0 18px rgba(0, 229, 212, 0.35);
}
.page-meta, .incident-meta {
  display: flex; flex-wrap: wrap; gap: 24px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 11px;
  color: var(--p-text-dim);
}
.page-meta b, .incident-meta b { color: var(--p-text); margin-right: 4px; }
.status-active { color: var(--p-red); animation: pulse 1.6s infinite; }
@keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.55; } }

/* ============ INCIDENT page ============ */
.incident-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  grid-template-rows: auto auto auto;
  gap: 16px;
}
.incident-grid > .panel:nth-child(1) { grid-column: 1; grid-row: 1; }
.incident-grid > .panel:nth-child(2) { grid-column: 2; grid-row: 1 / 3; }
.incident-grid > .panel:nth-child(3) { grid-column: 1; grid-row: 2; }
.incident-grid > .panel:nth-child(4) { grid-column: 1 / 3; grid-row: 3; }
.incident-grid > .panel:nth-child(5) { grid-column: 1 / 3; grid-row: 4; }

.assessment-content { display: grid; grid-template-columns: 220px 1fr; gap: 18px; padding: 18px; }
.confidence-gauge { display: flex; align-items: center; justify-content: center; }
.gauge-svg { width: 100%; height: auto; max-width: 200px; }
.gauge-track { fill: none; stroke: rgba(0,229,212,0.12); stroke-width: 10; stroke-linecap: round; }
.gauge-fill { fill: none; stroke: var(--p-cyan); stroke-width: 10; stroke-linecap: round;
  filter: drop-shadow(0 0 8px rgba(0,229,212,0.5)); transition: stroke-dashoffset 1.5s ease-out; }
.gauge-value { fill: var(--p-cyan); font-family: 'JetBrains Mono', monospace; font-size: 22px; font-weight: 700; text-anchor: middle; }
.gauge-label { fill: var(--p-text-dim); font-family: 'JetBrains Mono', monospace; font-size: 8px; letter-spacing: 0.18em; text-anchor: middle; }

.assessment-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.assessment-cell {
  padding: 10px 12px;
  border: 1px solid rgba(0,229,212,0.10);
  border-radius: 0;
  background: rgba(0,229,212,0.02);
}
.cell-label { color: var(--p-text-dim); font-size: 9px; letter-spacing: 0.18em; font-family: 'JetBrains Mono', monospace; }
.cell-value { color: var(--p-text); font-size: 13px; font-weight: 600; margin: 4px 0 4px; font-family: 'JetBrains Mono', monospace; }
.cell-value.risk-high { color: var(--p-orange); }
.cell-detail { color: var(--p-text-dim); font-size: 10px; line-height: 1.4; }
.risk-bar { height: 4px; background: rgba(255,107,53,0.15); border-radius: 0; overflow: hidden; margin-top: 4px; }
.risk-bar-fill { height: 100%; background: linear-gradient(90deg, var(--p-amber), var(--p-orange)); }

.incident-map { position: relative; height: 100%; min-height: 360px; }
.map-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 50% 60%, rgba(0,229,212,0.18) 0%, transparent 60%),
    linear-gradient(180deg, rgba(10,14,23,0.4), rgba(10,14,23,0.85)),
    url('https://upload.wikimedia.org/wikipedia/commons/thumb/9/9c/Strait_of_hormuz_full.jpg/1280px-Strait_of_hormuz_full.jpg') center/cover;
}
.map-overlay-info {
  position: absolute; bottom: 14px; left: 14px;
  padding: 10px 14px;
  background: rgba(10,14,23,0.65);
  backdrop-filter: blur(10px);
  border: 1px solid var(--p-glass-border);
  color: var(--p-cyan);
  font-family: 'JetBrains Mono', monospace; font-size: 10px;
  letter-spacing: 0.1em;
}
.map-coords { color: var(--p-amber); margin-top: 3px; }
.map-ais { color: var(--p-text-dim); margin-top: 3px; }
.live-dot {
  display: inline-block; width: 7px; height: 7px;
  background: var(--p-red); border-radius: 50%;
  margin-right: 5px; box-shadow: 0 0 8px var(--p-red);
  animation: pulse 1.4s infinite;
}

.incident-timeline { list-style: none; padding: 14px 18px; margin: 0; }
.incident-timeline li { display: grid; grid-template-columns: 80px 1fr; gap: 12px; padding: 8px 0;
  border-bottom: 1px dotted rgba(0,229,212,0.10); font-family: 'JetBrains Mono', monospace; font-size: 11px; }
.incident-timeline .t { color: var(--p-amber); font-weight: 600; }
.incident-timeline .e { color: var(--p-text); line-height: 1.5; }
.incident-timeline .current { color: var(--p-red); }

.comms-content { padding: 12px 16px; font-family: 'JetBrains Mono', monospace; font-size: 11px; }
.channel { display: grid; grid-template-columns: 1fr auto 16px; align-items: center; gap: 12px; padding: 6px 0;
  border-bottom: 1px dotted rgba(0,229,212,0.08); }
.channel-name { color: var(--p-text); }
.channel-state { color: var(--p-text-dim); font-size: 10px; }
.channel-status { width: 10px; height: 10px; border-radius: 50%; }
.channel-status.active { background: var(--p-green); box-shadow: 0 0 6px var(--p-green); animation: pulse 1.5s infinite; }
.channel-status.quiet { background: var(--p-text-dim); }
.channel-status.jammed { background: var(--p-red); box-shadow: 0 0 6px var(--p-red); animation: pulse 0.8s infinite; }
.comms-msg { margin-top: 12px; padding: 10px 12px; background: rgba(255,59,48,0.04); border-left: 2px solid var(--p-red); }
.msg-sender { color: var(--p-red); font-weight: 600; font-size: 10px; letter-spacing: 0.15em; }
.msg-text { color: var(--p-text); margin: 6px 0; line-height: 1.5; font-style: italic; }
.msg-meta { color: var(--p-text-dim); font-size: 10px; }

.action-grid { padding: 12px 16px; }
.action-row { display: grid; grid-template-columns: 50px 1fr auto; align-items: center; gap: 14px;
  padding: 8px 0; border-bottom: 1px dotted rgba(0,229,212,0.08); font-family: 'JetBrains Mono', monospace; font-size: 11px; }
.action-priority { padding: 2px 6px; border-radius: 0; text-align: center; font-weight: 700; font-size: 10px; }
.action-priority.p1 { background: rgba(255,59,48,0.18); color: var(--p-red); border: 1px solid rgba(255,59,48,0.4); }
.action-priority.p2 { background: rgba(255,176,0,0.15); color: var(--p-amber); border: 1px solid rgba(255,176,0,0.4); }
.action-priority.p3 { background: rgba(93,173,226,0.15); color: var(--p-blue); border: 1px solid rgba(93,173,226,0.4); }
.action-label { color: var(--p-text); }
.action-value { color: var(--p-cyan); font-weight: 600; }

/* ============ CTI page ============ */
.cti-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 16px; }
.cti-mitre { grid-column: 1 / 3; }
.cti-iocs { grid-column: 1; }

.mitre-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
  padding: 16px;
}
.mitre-cell {
  padding: 10px 12px;
  border: 1px solid;
  border-radius: 0;
  font-family: 'JetBrains Mono', monospace;
  min-height: 76px;
  display: flex; flex-direction: column; justify-content: space-between;
  transition: transform 0.15s;
}
.mitre-cell:hover { transform: translateY(-2px); }
.mitre-id { font-size: 9px; color: var(--p-text-dim); letter-spacing: 0.12em; }
.mitre-name { font-size: 10px; color: var(--p-text); font-weight: 600; line-height: 1.2; }
.mitre-count { font-size: 18px; color: #fff; font-weight: 700; text-align: right; }

.actor-list { padding: 12px; display: flex; flex-direction: column; gap: 8px; }
.actor-card {
  padding: 10px 12px;
  background: rgba(0,229,212,0.03);
  border-left: 3px solid var(--p-text-dim);
  font-family: 'JetBrains Mono', monospace;
}
.actor-card.threat-critical { border-left-color: var(--p-red); background: rgba(255,59,48,0.05); }
.actor-card.threat-high { border-left-color: var(--p-orange); background: rgba(255,107,53,0.05); }
.actor-card.threat-medium { border-left-color: var(--p-amber); background: rgba(255,176,0,0.05); }
.actor-top { display: flex; justify-content: space-between; align-items: center; }
.actor-code { color: var(--p-text); font-weight: 700; font-size: 12px; }
.actor-threat { font-size: 9px; padding: 1px 6px; border: 1px solid; letter-spacing: 0.12em; }
.actor-card.threat-critical .actor-threat { color: var(--p-red); border-color: var(--p-red); }
.actor-card.threat-high .actor-threat { color: var(--p-orange); border-color: var(--p-orange); }
.actor-card.threat-medium .actor-threat { color: var(--p-amber); border-color: var(--p-amber); }
.actor-meta { display: flex; gap: 14px; margin-top: 5px; font-size: 10px; color: var(--p-text-dim); }
.actor-meta b { color: var(--p-cyan); margin-right: 3px; }
.actor-targets { color: var(--p-text-dim); font-size: 10px; margin-top: 4px; }

.ioc-table { padding: 8px 14px; font-family: 'JetBrains Mono', monospace; }
.ioc-row {
  display: grid;
  grid-template-columns: 70px 70px 1fr 110px 50px;
  align-items: center;
  gap: 10px;
  padding: 6px 0;
  border-bottom: 1px dotted rgba(0,229,212,0.08);
  font-size: 11px;
  color: var(--p-text);
}
.ioc-row.ioc-head { color: var(--p-amber); font-size: 9px; letter-spacing: 0.15em; border-bottom: 1px solid rgba(255,176,0,0.3); }
.ioc-ts { color: var(--p-text-dim); font-size: 10px; }
.ioc-type { padding: 1px 5px; text-align: center; font-size: 9px; letter-spacing: 0.1em; border: 1px solid; }
.type-ip { color: var(--p-blue); border-color: rgba(93,173,226,0.4); background: rgba(93,173,226,0.08); }
.type-domain { color: var(--p-purple); border-color: rgba(175,82,222,0.4); background: rgba(175,82,222,0.08); }
.type-hash { color: var(--p-amber); border-color: rgba(255,176,0,0.4); background: rgba(255,176,0,0.08); }
.type-email { color: var(--p-orange); border-color: rgba(255,107,53,0.4); background: rgba(255,107,53,0.08); }
.ioc-value { color: #fff; font-weight: 500; }
.ioc-actor { color: var(--p-cyan); font-size: 10px; }
.ioc-conf { color: var(--p-green); font-size: 10px; text-align: right; }

.cve-list { padding: 8px 14px; font-family: 'JetBrains Mono', monospace; }
.cve-row {
  display: grid; grid-template-columns: 130px 40px 1fr 100px;
  align-items: center; gap: 10px;
  padding: 6px 0; border-bottom: 1px dotted rgba(0,229,212,0.08);
  font-size: 11px; color: var(--p-text);
}
.cve-id { color: var(--p-cyan); font-weight: 600; }
.cve-score { color: var(--p-red); font-weight: 700; text-align: right; }
.cve-product { color: var(--p-text); }
.cve-exploited { color: var(--p-red); font-size: 9px; letter-spacing: 0.1em; text-align: right; }

/* ============ INTEL & DEFENCE page ============ */
.intel-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.intel-grid > section:nth-child(3) { grid-column: 1 / 3; }
.intel-grid > section:nth-child(4) { grid-column: 1 / 3; }

.prism-bars { padding: 14px 18px; }
.prism-row { padding: 10px 0; border-bottom: 1px dotted rgba(0,229,212,0.10); font-family: 'JetBrains Mono', monospace; }
.prism-row:last-child { border-bottom: none; }
.prism-row-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 5px; }
.prism-name { font-size: 12px; font-weight: 700; letter-spacing: 0.12em; }
.prism-score { color: #fff; font-size: 16px; font-weight: 700; }
.prism-delta { color: var(--p-green); font-size: 10px; margin-left: 4px; }
.prism-bar { position: relative; height: 8px; background: rgba(0,229,212,0.06); border: 1px solid var(--p-glass-border); }
.prism-fill { height: 100%; transition: width 1.2s ease-out; }
.prism-baseline { position: absolute; top: -3px; bottom: -3px; width: 2px; background: var(--p-text-dim); }
.prism-indicator { color: var(--p-text-dim); font-size: 10px; margin-top: 5px; }
.prism-indicator i { color: var(--p-cyan); font-style: normal; }

.qarc-table, .ria-table, .port-table { padding: 8px 16px; font-family: 'JetBrains Mono', monospace; font-size: 11px; }
.qarc-row {
  display: grid; grid-template-columns: 1.8fr 60px 1.2fr 1.2fr 80px;
  align-items: center; gap: 10px;
  padding: 7px 0; border-bottom: 1px dotted rgba(0,229,212,0.08);
}
.qarc-row.qarc-head { color: var(--p-amber); font-size: 9px; letter-spacing: 0.15em; border-bottom: 1px solid rgba(255,176,0,0.3); }
.qarc-shard { color: var(--p-cyan); font-weight: 600; }
.qarc-mcu { color: var(--p-text-dim); font-size: 10px; }
.qarc-domain { color: var(--p-text); font-size: 10px; }
.qarc-alloc { display: flex; align-items: center; gap: 8px; color: var(--p-text); }
.qarc-alloc-bar { flex: 1; height: 6px; background: rgba(255,176,0,0.10); }
.qarc-alloc-fill { height: 100%; background: linear-gradient(90deg, var(--p-amber), var(--p-orange)); }
.qarc-pri { font-size: 9px; letter-spacing: 0.12em; padding: 2px 6px; text-align: center; border: 1px solid; }
.pri-critical { color: var(--p-red); border-color: var(--p-red); background: rgba(255,59,48,0.12); }
.pri-high { color: var(--p-amber); border-color: var(--p-amber); background: rgba(255,176,0,0.10); }

.ria-row {
  display: grid; grid-template-columns: 60px repeat(6, 1fr) 70px;
  align-items: center; gap: 6px;
  padding: 6px 0; border-bottom: 1px dotted rgba(0,229,212,0.08);
}
.ria-row.ria-head { color: var(--p-amber); font-size: 9px; letter-spacing: 0.15em; border-bottom: 1px solid rgba(255,176,0,0.3); }
.ria-state { color: var(--p-cyan); font-weight: 700; }
.ria-cell { padding: 4px 8px; text-align: center; font-weight: 600; border: 1px solid currentColor; opacity: 0.85; }
.ria-composite { color: #fff; font-weight: 700; text-align: right; }

.port-table { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; padding: 14px 18px; }
.port-row { padding: 10px 12px; background: rgba(0,229,212,0.03); border: 1px solid var(--p-glass-border); }
.port-head { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.port-name { color: var(--p-text); font-weight: 700; font-size: 12px; }
.port-country { color: var(--p-text-dim); font-size: 10px; }
.port-tl { padding: 1px 6px; font-size: 9px; letter-spacing: 0.12em; border: 1px solid; margin-left: auto; }
.port-status { color: var(--p-amber); font-size: 10px; letter-spacing: 0.1em; }
.port-action { color: var(--p-text); font-size: 10px; margin-top: 3px; }
.port-cap { color: var(--p-text-dim); font-size: 9px; margin-top: 3px; }

/* ============ CRISIS page ============ */
.crisis-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.crisis-grid > section:nth-child(3),
.crisis-grid > section:nth-child(4) { grid-column: 1 / 3; }

.quake-list, .gdacs-list { padding: 8px 16px; font-family: 'JetBrains Mono', monospace; max-height: 360px; overflow-y: auto; }
.loading { color: var(--p-text-dim); padding: 14px; font-style: italic; }
.quake-row {
  display: grid; grid-template-columns: 60px 1fr 60px 130px;
  align-items: center; gap: 10px;
  padding: 6px 0; border-bottom: 1px dotted rgba(0,229,212,0.08);
  font-size: 11px;
}
.quake-mag { padding: 2px 6px; text-align: center; border: 1px solid; font-weight: 700; }
.quake-place { color: var(--p-text); }
.quake-depth { color: var(--p-text-dim); font-size: 10px; text-align: right; }
.quake-time { color: var(--p-amber); font-size: 10px; text-align: right; }

.gdacs-row { padding: 8px 0; border-bottom: 1px dotted rgba(0,229,212,0.08); font-family: 'JetBrains Mono', monospace; }
.gdacs-title { color: var(--p-cyan); font-size: 11px; font-weight: 600; }
.gdacs-desc { color: var(--p-text); font-size: 10px; line-height: 1.5; margin-top: 3px; }
.gdacs-date { color: var(--p-text-dim); font-size: 9px; margin-top: 2px; }

.wx-frame-wrap { padding: 8px; }
.wx-frame { width: 100%; height: 480px; border: none; background: #000; }

.posture-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px;
  padding: 14px 18px;
}
.posture-card { padding: 12px 14px; background: rgba(0,229,212,0.03); border: 1px solid var(--p-glass-border); font-family: 'JetBrains Mono', monospace; }
.posture-label { color: var(--p-text-dim); font-size: 9px; letter-spacing: 0.18em; }
.posture-value { font-size: 14px; font-weight: 700; margin: 5px 0; letter-spacing: 0.05em; }
.posture-sub { color: var(--p-text-dim); font-size: 10px; }

/* ============ Responsive ============ */
@media (max-width: 1500px) {
  .incident-grid { grid-template-columns: 1fr; }
  .incident-grid > .panel { grid-column: 1 !important; grid-row: auto !important; }
  .cti-grid { grid-template-columns: 1fr; }
  .cti-mitre, .cti-iocs { grid-column: 1; }
  .mitre-grid { grid-template-columns: repeat(4, 1fr); }
  .intel-grid { grid-template-columns: 1fr; }
  .intel-grid > section { grid-column: 1 !important; }
  .crisis-grid { grid-template-columns: 1fr; }
  .crisis-grid > section { grid-column: 1 !important; }
  .port-table { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .mitre-grid { grid-template-columns: repeat(2, 1fr); }
  .posture-grid { grid-template-columns: 1fr 1fr; }
  .port-table { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════════
   B1 · REAL-DATA STATE BADGES + PROVENANCE FOOTERS (additive)
   Scoped to .mada-* / .prov-* selectors. No global token changes;
   reuses existing --p-* palette + canonical tier-chip colors only.
   Honesty doctrine: each widget shows a state badge driven by the
   feed client (LIVE/CACHED/STALE/DERIVED/SNAPSHOT/AWAITING/ERROR).
   ════════════════════════════════════════════════════════════ */

/* State badge — sits in the panel header beside the static label */
.mada-state {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 1px 7px;
  font-family: 'JetBrains Mono', monospace;
  font-size: 9px; letter-spacing: 0.14em; font-weight: 600;
  border: 1px solid currentColor; border-radius: 0;
  text-transform: uppercase; white-space: nowrap;
  background: rgba(201,209,217,0.04);
  color: var(--p-text-dim);
}
.mada-state .mada-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: currentColor; flex: 0 0 auto;
}
/* honest per-state coloring (cyan reserved for genuinely-live) */
.mada-state[data-state="LIVE"]     { color: var(--p-cyan);  }
.mada-state[data-state="LIVE"] .mada-dot { box-shadow: 0 0 6px var(--p-cyan); animation: pulse 1.4s infinite; }
.mada-state[data-state="CACHED"]   { color: var(--p-blue);  }
.mada-state[data-state="STALE"]    { color: var(--p-amber); }
.mada-state[data-state="DERIVED"]  { color: var(--p-purple); }
.mada-state[data-state="SNAPSHOT"] { color: var(--p-amber); }
.mada-state[data-state="SNAPSHOT"] .mada-dot { animation: none; }
.mada-state[data-state="AWAITING_CREDENTIAL"] { color: var(--p-orange); }
.mada-state[data-state="ERROR"]    { color: var(--p-red);  }
.mada-state[data-state="UNKNOWN"]  { color: var(--p-text-dim); }
.mada-state[data-state="LOADING"]  { color: var(--p-text-dim); }
.mada-state[data-state="LOADING"] .mada-dot { animation: pulse 1s infinite; }

/* Provenance footer strip beneath each wired panel */
.mada-prov-foot {
  display: flex; align-items: center; flex-wrap: wrap; gap: 8px;
  padding: 7px 14px;
  border-top: 1px dotted rgba(0,229,212,0.12);
  background: rgba(10,14,23,0.35);
}
.mada-prov-foot .prov-row { display: inline-flex; align-items: center; gap: 7px; }
.mada-prov-foot .prov-chip {
  display: inline-flex; align-items: center;
  padding: 1px 6px; font-family: 'JetBrains Mono', monospace;
  font-size: 8.5px; letter-spacing: 0.1em; font-weight: 700;
  border: 1px solid var(--prov-accent, #00C853);
  color: var(--prov-accent, #00C853);
  background: color-mix(in srgb, var(--prov-accent, #00C853) 12%, transparent);
}
.mada-prov-foot .prov-meta {
  color: var(--p-text-dim); font-family: 'JetBrains Mono', monospace;
  font-size: 9px; letter-spacing: 0.06em;
}

/* Honest fallback / awaiting note inside a panel body */
.mada-note {
  padding: 12px 16px; font-family: 'JetBrains Mono', monospace;
  font-size: 10px; line-height: 1.5; letter-spacing: 0.04em;
  color: var(--p-text-dim);
}
.mada-note b { color: var(--p-orange); }
.mada-fallback-tag {
  display: inline-block; margin-left: 8px; padding: 0 6px;
  font-size: 8.5px; letter-spacing: 0.12em; font-weight: 600;
  border: 1px solid var(--p-orange); color: var(--p-orange);
  background: rgba(255,107,53,0.08);
}
/* Hormuz status block (incident) */
.hormuz-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; padding: 14px 18px; }
.hormuz-card { padding: 11px 13px; background: rgba(0,229,212,0.03); border: 1px solid var(--p-glass-border); font-family: 'JetBrains Mono', monospace; }
.hormuz-label { color: var(--p-text-dim); font-size: 9px; letter-spacing: 0.16em; }
.hormuz-value { font-size: 15px; font-weight: 700; margin: 5px 0 2px; color: var(--p-text); }
.hormuz-sub { color: var(--p-text-dim); font-size: 9px; }
@media (max-width: 1100px) { .hormuz-grid { grid-template-columns: 1fr 1fr; } }
