:root {
  --dash-jade: #146960;
  --dash-jade-dark: #0d4f49;
  --dash-jade-deep: #093d38;
  --dash-mint: #dceee9;
  --dash-canvas: #f2f6f4;
  --dash-paper: #ffffff;
  --dash-ink: #182320;
  --dash-muted: #65716e;
  --dash-line: #cdd9d5;
  --dash-warm: #e3b660;
}

body:has(.global-header) {
  background: var(--dash-canvas);
  color: var(--dash-ink);
  font-family: Montserrat, "Segoe UI", sans-serif;
}

body:has(.global-header) .shell {
  display: block;
  width: 100%;
  padding: 0;
}

/* Hero: full-width editorial cover, followed by the dashboard. */
body:has(.global-header) .sidebar {
  position: relative;
  top: auto;
  width: 100%;
  min-height: 680px;
  display: grid;
  grid-template-columns: minmax(0, 51%) minmax(0, 49%);
  grid-template-rows: 1fr auto;
  align-items: stretch;
  gap: 0;
  padding: 0;
  overflow: hidden;
  background: var(--dash-jade-deep);
  color: #fff;
}

body:has(.global-header) .sidebar .hero-media,
body:has(.global-header) .sidebar .hero-scrim {
  position: absolute;
  inset: 0 0 0 51%;
}

body:has(.global-header) .sidebar .hero-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 58% 48%;
}

body:has(.global-header) .sidebar .hero-scrim {
  left: 46%;
  pointer-events: none;
  background: linear-gradient(90deg, var(--dash-jade-deep) 0%, rgba(9, 61, 56, 0.74) 14%, rgba(9, 61, 56, 0.08) 40%, transparent 65%);
}

body:has(.global-header) .sidebar .hero-content {
  position: relative;
  z-index: 1;
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  max-width: none;
  padding: 70px 64px 62px max(48px, calc((100vw - 1344px) / 2));
}

body:has(.global-header) .sidebar .eyebrow {
  margin: 0 0 26px;
  color: #b9ddd5;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
}

body:has(.global-header) .sidebar h1 {
  max-width: 11ch;
  color: #fff;
  font-size: clamp(54px, 5.5vw, 78px);
  font-weight: 800;
  line-height: 0.92;
}

body:has(.global-header) .sidebar h1 > span:first-child { display: block; }

body:has(.global-header) .sidebar .ai-title-line {
  display: block;
  max-width: 18ch;
  margin-top: 16px;
  font-size: 0.57em;
  line-height: 1.06;
}

body:has(.global-header) .sidebar .ai-title-line b {
  display: inline;
  font-weight: 700;
}

body:has(.global-header) .sidebar .hero-subtitle {
  margin-top: 24px;
  color: #c8e0db;
  font-size: 17px;
  font-weight: 700;
  text-transform: uppercase;
}

body:has(.global-header) .sidebar .intro {
  max-width: 52ch;
  margin-top: 18px;
  color: rgba(255, 255, 255, 0.82);
  font-size: 16px;
  line-height: 1.65;
}

body:has(.global-header) .sidebar .ai-credit {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 26px;
  color: #d9e9e5;
  font-size: 13px;
  font-weight: 600;
}

body:has(.global-header) .sidebar .ai-credit::before {
  content: "";
  width: 30px;
  height: 2px;
  flex: 0 0 auto;
  background: #83c0b5;
}

body:has(.global-header) .sidebar .metrics {
  position: relative;
  z-index: 1;
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: end;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 51%;
  gap: 0;
  margin: 0;
  padding: 0 0 0 max(48px, calc((100vw - 1344px) / 2));
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.24);
  background: rgba(6, 48, 44, 0.96);
}

@keyframes hero-copy-enter {
  from { opacity: 0; transform: translateY(18px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes hero-photo-enter {
  from { opacity: 0.72; transform: scale(1.035); }
  to { opacity: 1; transform: scale(1); }
}

body:has(.global-header) .sidebar .hero-content > * {
  animation: hero-copy-enter 620ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

body:has(.global-header) .sidebar .hero-content > *:nth-child(2) { animation-delay: 70ms; }
body:has(.global-header) .sidebar .hero-content > *:nth-child(3) { animation-delay: 120ms; }
body:has(.global-header) .sidebar .hero-content > *:nth-child(4) { animation-delay: 170ms; }
body:has(.global-header) .sidebar .hero-content > *:nth-child(5) { animation-delay: 220ms; }

body:has(.global-header) .sidebar .hero-media img {
  animation: hero-photo-enter 900ms cubic-bezier(0.16, 1, 0.3, 1) both;
}

body:has(.global-header) .sidebar .metrics > div {
  min-height: 118px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 22px 28px;
  border-right: 1px solid rgba(255, 255, 255, 0.22);
  border-bottom: 0;
}

body:has(.global-header) .sidebar .metrics > div:last-child { border-right: 0; }

body:has(.global-header) .sidebar .metric-value {
  color: #fff;
  font-family: Montserrat, "Segoe UI", sans-serif;
  font-size: clamp(38px, 4.2vw, 58px);
  font-weight: 800;
  line-height: 1;
}

body:has(.global-header) .sidebar .metric-label {
  margin-top: 10px;
  color: #bdd8d2;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
}

body:has(.global-header) .sidebar .source-list { display: none; }

body:has(.global-header) .hero-source {
  position: absolute;
  right: max(48px, calc((100vw - 1344px) / 2));
  bottom: 138px;
  z-index: 1;
  max-width: 72ch;
  margin: 0;
  color: rgba(255, 255, 255, 0.72);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.45;
  text-align: right;
}

/* Editorial analytics: hierarchy by scale, color and rules instead of cards. */
body:has(.global-header) #observatorio-feed {
  width: min(1344px, calc(100% - 64px));
  margin: 0 auto;
}

body:has(.global-header) .analytics {
  margin: 0;
  padding: 88px 0 42px;
  border: 0;
  border-radius: 0;
  background: transparent;
}

body:has(.global-header) .analytics > .section-heading {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
  align-items: end;
  gap: 64px;
  padding: 0 0 34px;
  border-bottom: 1px solid var(--dash-ink);
}

body:has(.global-header) .analytics > .section-heading h2 {
  max-width: 15ch;
  margin: 8px 0 0;
  font-size: clamp(38px, 4.3vw, 64px);
  font-weight: 800;
  line-height: 1;
}

body:has(.global-header) .section-kicker {
  color: var(--dash-jade);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

body:has(.global-header) .snapshot-badge {
  justify-self: end;
  width: 100%;
  padding: 0 0 4px 24px;
  border: 0;
  border-left: 4px solid var(--dash-jade);
  background: transparent;
}

body:has(.global-header) .situation-deck {
  display: grid;
  grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(210px, 0.75fr));
  grid-template-areas:
    "lead kpi1 kpi2"
    "lead kpi3 kpi4"
    "quality quality quality";
  gap: 0;
  margin-top: 46px;
  border: 0;
  border-top: 1px solid var(--dash-line);
  border-bottom: 1px solid var(--dash-line);
  background: transparent;
}

body:has(.global-header) .deck-lead {
  grid-area: lead;
  min-height: 380px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 44px;
  background: var(--dash-jade-deep);
  color: #fff;
}

body:has(.global-header) .deck-lead-value {
  max-width: 12ch;
  font-size: clamp(42px, 5vw, 68px);
  font-weight: 800;
  line-height: 0.98;
}

body:has(.global-header) .deck-kpi {
  min-height: 190px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 30px;
  border: 0;
  border-right: 1px solid var(--dash-line);
  border-bottom: 1px solid var(--dash-line);
  background: var(--dash-paper);
  color: var(--dash-ink);
  transition: background-color 240ms cubic-bezier(0.16, 1, 0.3, 1), transform 240ms cubic-bezier(0.16, 1, 0.3, 1);
}

body:has(.global-header) .deck-kpi:nth-of-type(2) { grid-area: kpi1; }
body:has(.global-header) .deck-kpi:nth-of-type(3) { grid-area: kpi2; border-right: 0; }
body:has(.global-header) .deck-kpi:nth-of-type(4) { grid-area: kpi3; border-bottom: 0; }
body:has(.global-header) .deck-kpi:nth-of-type(5) { grid-area: kpi4; border-right: 0; border-bottom: 0; }
body:has(.global-header) .deck-kpi:hover { background: #e8f1ee; transform: translateY(-2px); }
body:has(.global-header) .deck-kpi:active { transform: translateY(1px); }

body:has(.global-header) .deck-index,
body:has(.global-header) .deck-caption {
  color: var(--dash-muted);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
}

body:has(.global-header) .deck-lead .deck-index,
body:has(.global-header) .deck-lead .deck-caption { color: #c2ddd7; }

body:has(.global-header) .deck-lead .deck-index {
  font-size: clamp(16px, 1.4vw, 19px);
  line-height: 1.25;
  text-transform: none;
}

body:has(.global-header) .deck-lead-detail {
  color: #fff;
  font-size: clamp(22px, 2vw, 28px);
  font-weight: 700;
  line-height: 1.2;
}

body:has(.global-header) .deck-lead .deck-caption {
  font-size: 14px;
  line-height: 1.35;
}

body:has(.global-header) .deck-kpi-value {
  color: var(--dash-ink);
  font-size: clamp(36px, 4vw, 54px);
  font-weight: 800;
  line-height: 1;
}

body:has(.global-header) .quality-rail {
  grid-area: quality;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  padding: 0;
  border: 0;
  background: var(--dash-mint);
}

body:has(.global-header) .quality-rail > div {
  min-height: 98px;
  padding: 24px;
  border-right: 1px solid #b9d0ca;
}

body:has(.global-header) .quality-rail > div:last-child { border-right: 0; }
body:has(.global-header) .quality-rail strong { color: var(--dash-jade-deep); font-size: 26px; }

body:has(.global-header) .analytics .stat-tabs {
  display: flex;
  gap: 34px;
  margin: 72px 0 0;
  padding: 0;
  overflow-x: auto;
  border: 0;
  border-bottom: 1px solid var(--dash-line);
  background: transparent;
  scrollbar-width: none;
}

body:has(.global-header) .analytics .stat-tabs::-webkit-scrollbar { display: none; }

body:has(.global-header) .analytics .stat-tab {
  flex: 0 0 auto;
  min-width: 0;
  min-height: 58px;
  padding: 0 2px;
  border: 0;
  background: transparent;
  color: var(--dash-muted);
  font-size: 13px;
  font-weight: 700;
  transition: color 200ms ease, box-shadow 200ms ease, transform 200ms ease;
}

body:has(.global-header) .analytics .stat-tab svg { display: none; }
body:has(.global-header) .analytics .stat-tab:hover { background: transparent; color: var(--dash-jade); }
body:has(.global-header) .analytics .stat-tab:active { transform: translateY(1px); }
body:has(.global-header) .analytics .stat-tab[aria-selected="true"] {
  background: transparent;
  color: var(--dash-jade-deep);
  box-shadow: inset 0 -4px 0 var(--dash-jade);
}

body:has(.global-header) .analytics .stat-panel {
  padding: 52px 0 76px;
  border: 0;
  background: transparent;
  box-shadow: none;
}

body:has(.global-header) .analytics .analysis-grid {
  grid-template-columns: minmax(0, 1.35fr) minmax(300px, 0.65fr);
  gap: 0;
  border: 0;
  border-top: 1px solid var(--dash-line);
  border-bottom: 1px solid var(--dash-line);
  background: transparent;
}

body:has(.global-header) .analytics .analysis-grid > div {
  padding: 38px 46px 42px 0;
  background: transparent;
}

body:has(.global-header) .analytics .analysis-grid > div + div {
  padding: 38px 0 42px 46px;
  border-left: 1px solid var(--dash-line);
}

body:has(.global-header) .analysis-title { font-size: 18px; }
body:has(.global-header) .bar-row strong { font-size: 21px; }

body:has(.global-header) .signal-strip {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin-top: 42px;
  border-top: 1px solid var(--dash-line);
}

body:has(.global-header) .analytics .signal,
body:has(.global-header) .analytics .signal:not(:first-child) {
  min-height: 120px;
  padding: 28px 36px 28px 0;
  border: 0;
  border-bottom: 1px solid var(--dash-line);
  background: transparent;
}

body:has(.global-header) .analytics .signal:nth-child(even) {
  padding-left: 36px;
  border-left: 1px solid var(--dash-line);
}

body:has(.global-header) .analytics .signal::before { display: none; }
body:has(.global-header) .analytics .signal strong { color: var(--dash-jade-deep); font-size: 17px; }

body:has(.global-header) .word-list {
  margin-top: 40px;
  padding: 22px 0;
  border-top: 1px solid var(--dash-line);
  border-bottom: 1px solid var(--dash-line);
}

body:has(.global-header) .forecast-grid {
  grid-template-columns: minmax(0, 1.22fr) minmax(320px, 0.78fr);
  gap: 0;
  margin-top: 44px;
  border: 0;
  border-top: 1px solid var(--dash-ink);
  border-bottom: 1px solid var(--dash-ink);
  background: transparent;
}

body:has(.global-header) .forecast-panel {
  min-height: 340px;
  padding: 42px;
  border: 0;
  border-radius: 0;
  background: var(--dash-paper);
  color: var(--dash-ink);
}

body:has(.global-header) .forecast-panel-primary { background: var(--dash-mint); color: var(--dash-ink); }
body:has(.global-header) .forecast-panel + .forecast-panel { border-left: 1px solid var(--dash-line); }
body:has(.global-header) .forecast-index { display: none; }
body:has(.global-header) .forecast-panel-primary .forecast-heading p,
body:has(.global-header) .forecast-panel-primary .projection-row { color: var(--dash-muted); }
body:has(.global-header) .forecast-panel-primary .projection-row strong { color: var(--dash-jade-deep); }

/* Secondary intelligence tools are grouped as working surfaces, not cards. */
body:has(.global-header) .intelligence-block,
body:has(.global-header) .topic-summary,
body:has(.global-header) .intelligence-split {
  padding: 38px 0;
  border: 0;
  border-top: 1px solid var(--dash-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

body:has(.global-header) .intelligence-block + .intelligence-block { margin-top: 0; }

body:has(.global-header) .actor-topic-filters {
  padding: 14px 0 22px;
  border-bottom: 1px solid var(--dash-line);
}

body:has(.global-header) .actor-topic-filter {
  border-radius: 2px;
  box-shadow: none;
}

body:has(.global-header) .actor-network-wide,
body:has(.global-header) .actor-profile-section,
body:has(.global-header) .actor-cases-wide {
  border-radius: 0;
  box-shadow: none;
}

/* Search and feed become an editorial news desk. */
body:has(.global-header) .toolbar {
  margin-top: 58px;
  padding: 22px 0;
  border: 0;
  border-top: 1px solid var(--dash-ink);
  border-bottom: 1px solid var(--dash-line);
  background: transparent;
}

body:has(.global-header) .control {
  min-height: 50px;
  border-radius: 2px;
  background: var(--dash-paper);
}

body:has(.global-header) .result-line {
  padding: 22px 0;
  border: 0;
  border-bottom: 1px solid var(--dash-line);
  background: transparent;
}

body:has(.global-header) .feed {
  padding: 0;
  border: 0;
  background: transparent;
}

body:has(.global-header) .news-item,
body:has(.global-header) .news-item.has-image {
  grid-template-columns: 72px 250px minmax(0, 1fr) 136px;
  gap: 28px;
  padding: 38px 0;
  border-bottom: 1px solid var(--dash-line);
  background: transparent;
  transition: background-color 220ms ease, transform 220ms cubic-bezier(0.16, 1, 0.3, 1);
}

body:has(.global-header) .news-item:not(.has-image) { grid-template-columns: 72px minmax(0, 1fr) 136px; }
body:has(.global-header) .news-item:hover { background: rgba(255, 255, 255, 0.62); transform: translateX(4px); }

body:has(.global-header) .news-index {
  color: #8a9a95;
  font-family: Montserrat, "Segoe UI", sans-serif;
  font-size: 30px;
  font-weight: 800;
}

body:has(.global-header) .news-media {
  min-height: 154px;
  border-radius: 0;
}

body:has(.global-header) .news-title {
  font-size: clamp(20px, 2.1vw, 28px);
  font-weight: 750;
  line-height: 1.18;
}

body:has(.global-header) .news-item:hover .news-media img { transform: scale(1.03); }

@media (max-width: 980px) {
  body:has(.global-header) .sidebar {
    min-height: 0;
    grid-template-columns: 1fr;
    grid-template-rows: auto 280px auto;
    padding: 0;
  }

  body:has(.global-header) .sidebar .hero-content {
    grid-column: 1;
    grid-row: 1;
    padding: 58px 32px 48px;
  }

  body:has(.global-header) .sidebar .hero-media {
    position: relative;
    inset: auto;
    grid-column: 1;
    grid-row: 2;
    min-height: 280px;
  }

  body:has(.global-header) .sidebar .hero-scrim { display: none; }

  body:has(.global-header) .sidebar .metrics {
    grid-column: 1;
    grid-row: 3;
    width: 100%;
    margin: 0;
    padding-inline: 32px;
  }

  body:has(.global-header) .hero-source { right: 32px; bottom: 136px; }
  body:has(.global-header) #observatorio-feed { width: min(100% - 40px, 860px); }

  body:has(.global-header) .situation-deck {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: "lead lead" "kpi1 kpi2" "kpi3 kpi4" "quality quality";
  }

  body:has(.global-header) .deck-lead { min-height: 300px; }
  body:has(.global-header) .quality-rail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body:has(.global-header) .quality-rail > div:nth-child(3) { border-right: 0; }
  body:has(.global-header) .quality-rail > div:nth-child(-n + 3) { border-bottom: 1px solid #b9d0ca; }
  body:has(.global-header) .analytics .analysis-grid { grid-template-columns: 1fr; }
  body:has(.global-header) .analytics .analysis-grid > div,
  body:has(.global-header) .analytics .analysis-grid > div + div { padding: 34px 0; border-left: 0; }
  body:has(.global-header) .analytics .analysis-grid > div + div { border-top: 1px solid var(--dash-line); }
  body:has(.global-header) .forecast-grid { grid-template-columns: 1fr; }
  body:has(.global-header) .forecast-panel + .forecast-panel { border-top: 1px solid var(--dash-line); border-left: 0; }
  body:has(.global-header) .news-item.has-image { grid-template-columns: 56px 190px minmax(0, 1fr); }
  body:has(.global-header) .news-item:not(.has-image) { grid-template-columns: 56px minmax(0, 1fr); }
  body:has(.global-header) .news-meta { grid-column: auto; }
}

@media (max-width: 700px) {
  body:has(.global-header) .sidebar {
    min-height: 0;
    grid-template-rows: auto 230px auto;
    padding: 0;
  }

  body:has(.global-header) .sidebar .hero-content {
    padding: 46px 20px 40px;
  }

  body:has(.global-header) .sidebar .hero-media { min-height: 230px; }
  body:has(.global-header) .sidebar h1 { font-size: clamp(42px, 12vw, 50px); }
  body:has(.global-header) .sidebar .ai-title-line { font-size: 0.58em; }
  body:has(.global-header) .sidebar .metrics { padding-inline: 0; }
  body:has(.global-header) .sidebar .metrics > div { min-height: 108px; padding: 18px 12px; }
  body:has(.global-header) .sidebar .metric-value { font-size: 34px; }
  body:has(.global-header) .sidebar .metric-label { font-size: 11px; }
  body:has(.global-header) .hero-source { right: 20px; left: 20px; bottom: 124px; font-size: 10px; text-align: left; }
  body:has(.global-header) #observatorio-feed { width: calc(100% - 32px); }
  body:has(.global-header) .analytics { padding-top: 58px; }

  body:has(.global-header) .analytics > .section-heading {
    grid-template-columns: 1fr;
    gap: 26px;
  }

  body:has(.global-header) .analytics > .section-heading h2 { font-size: 38px; }
  body:has(.global-header) .snapshot-badge { justify-self: start; padding-left: 16px; }
  body:has(.global-header) .situation-deck { grid-template-columns: 1fr; grid-template-areas: "lead" "kpi1" "kpi2" "kpi3" "kpi4" "quality"; }
  body:has(.global-header) .deck-lead { min-height: 300px; padding: 28px 24px; }
  body:has(.global-header) .deck-lead .deck-index { font-size: 16px; }
  body:has(.global-header) .deck-lead-value { font-size: 40px; }
  body:has(.global-header) .deck-lead-detail { font-size: 22px; }
  body:has(.global-header) .deck-kpi { min-height: 138px; padding: 22px; border-right: 0; border-bottom: 1px solid var(--dash-line); }
  body:has(.global-header) .quality-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  body:has(.global-header) .quality-rail > div,
  body:has(.global-header) .quality-rail > div:nth-child(3) { border-right: 1px solid #b9d0ca; border-bottom: 1px solid #b9d0ca; }
  body:has(.global-header) .quality-rail > div:nth-child(2n) { border-right: 0; }
  body:has(.global-header) .quality-rail > div:last-child { border-bottom: 0; }
  body:has(.global-header) .analytics .stat-tabs { gap: 26px; margin-top: 54px; }
  body:has(.global-header) .analytics .stat-tab { flex-basis: auto; min-height: 54px; }
  body:has(.global-header) .analytics .stat-panel { padding: 40px 0 58px; }
  body:has(.global-header) .analytics .signal-strip { grid-template-columns: 1fr; }
  body:has(.global-header) .analytics .signal,
  body:has(.global-header) .analytics .signal:not(:first-child),
  body:has(.global-header) .analytics .signal:nth-child(even) { padding: 24px 0; border-left: 0; }
  body:has(.global-header) .forecast-panel { min-height: 0; padding: 30px 22px; }
  body:has(.global-header) .toolbar { grid-template-columns: 1fr; }
  body:has(.global-header) .news-item,
  body:has(.global-header) .news-item.has-image,
  body:has(.global-header) .news-item:not(.has-image) {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 30px 0;
  }

  body:has(.global-header) .news-index { font-size: 24px; }
  body:has(.global-header) .news-media { min-height: 220px; }
  body:has(.global-header) .news-meta { grid-column: 1; }
}

@media (prefers-reduced-motion: reduce) {
  body:has(.global-header) .sidebar .hero-content > *,
  body:has(.global-header) .sidebar .hero-media img,
  body:has(.global-header) .deck-kpi,
  body:has(.global-header) .news-item,
  body:has(.global-header) .news-media img { animation: none; transition: none; }
}
