:root {
  --sie-bg: #fafafa;
  --sie-surface: #ffffff;
  --sie-line: #e5e5e5;
  --sie-text: #171717;
  --sie-muted: #737373;
  --sie-nav: #ffffff;
  --sie-nav-active: #fff1ec;
  --sie-primary: #e66239;
  --sie-primary-ink: #a94024;
  --sie-primary-soft: #fff1ec;
  --sie-primary-line: rgba(230, 98, 57, 0.25);
  --sie-green: #00a846;
  --sie-green-ink: #08783b;
  --sie-green-soft: #e8fff0;
  --sie-yellow: #b7791f;
  --sie-yellow-ink: #7a4b00;
  --sie-yellow-soft: #fff7e6;
  --sie-orange: #e66239;
  --sie-orange-soft: #fff1ec;
  --sie-cyan: #008aa8;
  --sie-cyan-ink: #006b80;
  --sie-cyan-soft: #e7f8fb;
  --sie-red: #d21f2b;
  --sie-red-ink: #a41320;
  --sie-red-soft: #fff0f1;
  --sie-gray: #737373;
  --sie-shadow: 0 1px 2px rgba(15, 23, 42, 0.05);
  --sie-shadow-lg: 0 18px 45px rgba(15, 23, 42, 0.11);
  --sie-page-zoom: 0.9;
}

/* Timeline social: feed colaborativo que incorpora o Diário de Campo. */
.timeline-social-page {
  width: 100%;
  max-width: none;
  margin-inline: auto;
  color: #20384a;
}

.timeline-social-topbar {
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
  padding: 13px 16px;
  border: 1px solid #dce5eb;
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.96);
}

.timeline-social-topbar h1 { margin: 0; color: #17344b; font-size: 1.4rem; }
.timeline-social-topbar p { margin: 2px 0 0; color: #6b7b88; font-size: .78rem; }
.timeline-social-scope { display: inline-flex; gap: 6px; align-items: center; max-width: 480px; color: #547084; font-size: .7rem; line-height: 1.35; text-align: right; }
.timeline-social-scope .ui-icon-glyph { width: 16px; height: 16px; flex: 0 0 16px; color: #2e7da9; }

.timeline-social-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
  gap: 18px;
  justify-content: stretch;
  align-items: start;
}

.timeline-social-main { min-width: 0; overflow: hidden; border: 1px solid #dce5eb; border-radius: 16px; background: #fff; box-shadow: 0 8px 28px rgba(24, 49, 68, .06); }
.timeline-composer { display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 12px; padding: 17px 18px 13px; border-bottom: 1px solid #dce5eb; }
.timeline-avatar { --topic-accent: #236f98; position: relative; display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 42px; border-radius: 50%; background: #e8f3f9; color: var(--topic-accent); font-size: .75rem; font-weight: 850; }
.timeline-avatar .ui-icon-glyph { width: 20px; height: 20px; }
.timeline-avatar.is-person { background: linear-gradient(145deg, #e86535, #d34728); color: #fff; }
.timeline-avatar.is-ai { background: #efe9fb; color: #6944ae; }
.timeline-avatar.is-history { background: #edf1f4; color: #65737e; }
.timeline-feed-card > .timeline-avatar { box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--feed-accent); }
.timeline-avatar.topic-power { --topic-accent: #a35a00; }
.timeline-avatar.topic-rain,.timeline-avatar.topic-weather-alert { --topic-accent: #1177aa; }
.timeline-avatar.topic-waves { --topic-accent: #087f8c; }
.timeline-avatar.topic-road { --topic-accent: #9a5315; }
.timeline-avatar.topic-hospital { --topic-accent: #b42f50; }
.timeline-avatar.topic-risk { --topic-accent: #b52c24; }
.timeline-feed-card:not(.is-person) > .timeline-avatar { background: color-mix(in srgb, var(--topic-accent) 12%, white); color: var(--topic-accent); }
.timeline-avatar-topic { position: absolute; right: -5px; bottom: -4px; display: grid; place-items: center; width: 20px; height: 20px; border: 2px solid #fff; border-radius: 50%; background: #fff; color: var(--topic-accent); box-shadow: 0 1px 5px rgba(25, 48, 64, .24); font-size: .7rem; line-height: 1; }
.timeline-avatar-topic .ui-icon-glyph { width: 12px; height: 12px; }

.timeline-composer form { min-width: 0; }
.timeline-composer form > label:first-of-type { display: block; margin: 0 0 5px; color: #183b52; font-size: .78rem; font-weight: 800; }
.timeline-composer textarea { display: block; width: 100%; min-height: 86px; padding: 7px 0; overflow: hidden; border: 0; background: transparent; color: #1f3444; font: inherit; font-size: 1.02rem; line-height: 1.55; resize: none; }
.timeline-composer textarea::placeholder { color: #8796a1; }
.timeline-composer textarea:focus { outline: 0; }
.timeline-composer-actions { display: flex; gap: 12px; align-items: center; justify-content: space-between; padding-top: 11px; border-top: 1px solid #e7edf1; }
.timeline-composer-actions > div { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.timeline-composer-actions small { color: #81909a; font-size: .65rem; }
.timeline-file-input { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.timeline-attach-button { display: inline-flex; gap: 6px; align-items: center; padding: 7px 9px; border-radius: 999px; color: #18739e; font-size: .72rem; font-weight: 800; cursor: pointer; }
.timeline-attach-button:hover { background: #edf7fb; }
.timeline-attach-button .ui-icon-glyph,.timeline-composer-help .ui-icon-glyph { width: 16px; height: 16px; }
.timeline-composer-help { display: inline-flex; gap: 5px; align-items: center; color: #6e7e8a; font-size: .67rem; }
.timeline-selected-files { display: flex; flex-wrap: wrap; gap: 6px; margin: 5px 0 10px; }
.timeline-selected-files[hidden] { display: none; }
.timeline-selected-files > span { display: grid; max-width: 230px; padding: 6px 9px; overflow: hidden; border: 1px solid #cce0e9; border-radius: 9px; background: #f3f9fb; color: #28546c; font-size: .68rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.timeline-selected-files small { color: #78909e; font-size: .58rem; font-weight: 500; }
.timeline-composer-unavailable { margin: 9px 0 0; color: #9b5e21; font-size: .7rem; }

.timeline-filter-drawer { border-bottom: 1px solid #dce5eb; background: #fbfcfd; }
.timeline-filter-drawer > summary { display: grid; grid-template-columns: 18px auto 1fr; gap: 7px; align-items: center; padding: 10px 18px; color: #35566d; cursor: pointer; list-style: none; }
.timeline-filter-drawer > summary::-webkit-details-marker { display: none; }
.timeline-filter-drawer > summary .ui-icon-glyph { width: 16px; height: 16px; }
.timeline-filter-drawer > summary span { font-size: .72rem; font-weight: 800; }
.timeline-filter-drawer > summary small { color: #82909a; font-size: .64rem; text-align: right; }
.timeline-social-filters { display: grid; grid-template-columns: 1.5fr repeat(3, 1fr); gap: 9px; padding: 4px 18px 14px; }
.timeline-social-filters label { display: grid; gap: 4px; min-width: 0; }
.timeline-social-filters label > span { color: #667985; font-size: .61rem; font-weight: 800; text-transform: uppercase; }
.timeline-social-filters :is(input, select) { width: 100%; min-height: 36px; padding: 6px 8px; border: 1px solid #cedae2; border-radius: 8px; background: #fff; color: #294255; font: inherit; font-size: .72rem; }
.timeline-filter-actions { display: flex; grid-column: 1 / -1; gap: 10px; align-items: center; justify-content: flex-end; }
.timeline-filter-actions > a { color: #657985; font-size: .68rem; font-weight: 700; }

.timeline-feed-heading { display: flex; align-items: center; justify-content: space-between; padding: 11px 18px; border-bottom: 1px solid #dce5eb; }
.timeline-feed-heading > div { display: grid; gap: 1px; }
.timeline-feed-heading strong { color: #18394f; font-size: .78rem; }
.timeline-feed-heading span { color: #82909a; font-size: .63rem; }
.timeline-feed-heading button { display: inline-flex; gap: 5px; align-items: center; padding: 5px 7px; border: 0; border-radius: 8px; background: transparent; color: #23779f; font: inherit; font-size: .66rem; font-weight: 750; cursor: pointer; }
.timeline-feed-heading button:hover { background: #edf7fb; }
.timeline-feed-heading .ui-icon-glyph { width: 14px; height: 14px; }

.timeline-stream { display: grid; }
.timeline-feed-card { --feed-accent: #4384aa; display: grid; grid-template-columns: 46px minmax(0, 1fr); gap: 12px; min-width: 0; padding: 16px 18px; border-bottom: 1px solid #dfe7ec; background: #fff; transition: background .15s ease; }
.timeline-feed-card:last-child { border-bottom: 0; }
.timeline-feed-card:hover { background: #fcfdfe; }
.timeline-feed-card.severity-critical { --feed-accent: #c5382f; }
.timeline-feed-card.severity-high { --feed-accent: #d96620; }
.timeline-feed-card.severity-attention { --feed-accent: #b98608; }
.timeline-feed-card.is-ai { background: linear-gradient(90deg, #fff 0%, #fcfaff 100%); }
.timeline-feed-content { min-width: 0; }
.timeline-post-header { display: flex; gap: 12px; align-items: center; justify-content: space-between; }
.timeline-post-header > div { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; min-width: 0; }
.timeline-post-header strong { overflow: hidden; color: #19374d; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.timeline-post-header span { padding: 2px 6px; border-radius: 999px; background: #edf3f6; color: #637584; font-size: .57rem; font-weight: 750; }
.timeline-feed-card.is-person .timeline-post-header span { background: #fff0e9; color: #a64a26; }
.timeline-feed-card.is-ai .timeline-post-header span { background: #f0eafb; color: #6741ab; }
.timeline-post-header time { flex: 0 0 auto; color: #80909b; font-size: .63rem; }
.timeline-post-header-side { justify-content: flex-end; margin-left: auto; }
.timeline-post-owner-actions { display: inline-flex; gap: 3px; align-items: center; }
.timeline-post-owner-actions form { margin: 0; }
.timeline-post-owner-actions button { padding: 3px 6px; border: 0; border-radius: 6px; background: transparent; color: #277394; font: inherit; font-size: .61rem; font-weight: 750; cursor: pointer; }
.timeline-post-owner-actions button:hover { background: #edf6fa; }
.timeline-post-owner-actions button.is-danger { color: #aa3d35; }
.timeline-post-owner-actions button.is-danger:hover { background: #fceeed; }
.timeline-post-author-context { display: flex; flex-wrap: wrap; gap: 5px 14px; align-items: center; margin-top: 6px; color: #536c7c; }
.timeline-post-author-context > span { display: inline-flex; gap: 4px; align-items: center; min-width: 0; font-size: .68rem; line-height: 1.35; }
.timeline-post-author-context .ui-icon-glyph { width: 14px; height: 14px; flex: 0 0 14px; color: #d35d36; }
.timeline-post-author-context b { color: #6f818d; font-size: .6rem; text-transform: uppercase; }
.timeline-post-author-context strong { overflow: hidden; color: #294a60; text-overflow: ellipsis; white-space: nowrap; }
.timeline-post-place { display: flex; gap: 6px; align-items: center; width: fit-content; max-width: 100%; margin-top: 7px; padding: 5px 9px; border: 1px solid #b8d9e9; border-radius: 8px; background: #edf8fc; color: #12688f; }
.timeline-post-place .ui-icon-glyph,.timeline-post-place > span { width: 15px; height: 15px; flex: 0 0 15px; }
.timeline-post-place strong { overflow: hidden; font-size: .71rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.timeline-feed-card h2 { margin: 6px 0 4px; color: #18354a; font-size: .9rem; line-height: 1.35; }
.timeline-post-text { margin-top: 6px; color: #2d4658; font-size: .82rem; line-height: 1.6; overflow-wrap: anywhere; }
.timeline-feed-card.is-person .timeline-post-text { color: #223b4c; font-size: .88rem; }
.timeline-post-edit-form { display: grid; gap: 8px; margin-top: 9px; padding: 11px; border: 1px solid #bed6e2; border-radius: 10px; background: #f7fbfd; }
.timeline-post-edit-form[hidden] { display: none; }
.timeline-post-edit-form label { color: #294e64; font-size: .67rem; font-weight: 800; }
.timeline-post-edit-form textarea { width: 100%; min-height: 105px; padding: 9px 10px; border: 1px solid #cbdbe3; border-radius: 8px; background: #fff; color: #263f50; font: inherit; font-size: .82rem; line-height: 1.5; resize: vertical; }
.timeline-post-edit-form textarea:focus { border-color: #478dad; outline: 2px solid rgba(71,141,173,.15); }
.timeline-post-edit-form footer { display: flex; gap: 7px; justify-content: flex-end; }
.timeline-post-edit-form footer button { min-height: 30px; padding: 5px 9px; border: 1px solid #cad8df; border-radius: 7px; background: #fff; color: #496273; font: inherit; font-size: .64rem; font-weight: 750; cursor: pointer; }
.timeline-feed-card.is-editing .timeline-post-text { display: none; }
.timeline-post-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }
.timeline-post-tags span { padding: 3px 7px; border-radius: 999px; background: #eff5f8; color: #42657b; font-size: .61rem; font-weight: 650; }

.timeline-post-attachments { display: grid; gap: 7px; margin-top: 12px; }
.timeline-post-file { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 7px; align-items: center; overflow: hidden; border: 1px solid #d4e1e8; border-left: 3px solid #c28b19; border-radius: 10px; background: #f8fbfc; }
.timeline-post-file.is-ready { border-left-color: #25865b; }
.timeline-post-file.is-error { border-left-color: #bd3830; }
.timeline-post-file > a { display: flex; gap: 9px; align-items: center; min-width: 0; padding: 9px 10px; color: #28566f; text-decoration: none; }
.timeline-post-file > a > .ui-icon-glyph,.timeline-file-symbol { width: 19px; height: 19px; flex: 0 0 19px; color: #3780a4; }
.timeline-post-file > a > span { display: grid; min-width: 0; }
.timeline-post-file strong { overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.timeline-post-file small { color: #758894; font-size: .59rem; }
.timeline-post-file form { margin-right: 7px; }
.timeline-post-file form button { padding: 3px 5px; border: 0; background: transparent; color: #39728f; font: inherit; font-size: .58rem; font-weight: 750; cursor: pointer; }
.timeline-post-file form button.is-danger { color: #ae3b35; }
.timeline-post-file > details { grid-column: 1 / -1; border-top: 1px solid #dce6eb; }
.timeline-post-file > details summary { padding: 7px 10px; color: #367491; font-size: .62rem; font-weight: 750; cursor: pointer; }
.timeline-post-file > details > div { display: grid; gap: 6px; padding: 0 10px 9px; }
.timeline-post-file > details p { max-height: 130px; margin: 0; overflow: auto; color: #566e7d; font-size: .64rem; line-height: 1.45; white-space: pre-line; }

.timeline-post-footer { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; margin-top: 11px; padding-top: 9px; border-top: 1px solid #edf1f4; }
.timeline-severity { display: inline-flex; padding: 3px 7px; border-radius: 999px; background: #eaf4f8; color: #276f94; font-size: .59rem; font-weight: 800; }
.timeline-severity.is-critical { background: #fde7e4; color: #aa3028; }
.timeline-severity.is-high { background: #ffeadb; color: #ad4f17; }
.timeline-severity.is-attention { background: #fff3c7; color: #816000; }
.timeline-ai-reading,.timeline-system-detail { position: relative; }
.timeline-ai-reading > summary,.timeline-system-detail > summary { display: inline-flex; gap: 4px; align-items: center; color: #347698; font-size: .63rem; font-weight: 750; cursor: pointer; list-style: none; }
.timeline-ai-reading > summary::-webkit-details-marker,.timeline-system-detail > summary::-webkit-details-marker { display: none; }
.timeline-ai-reading > summary .ui-icon-glyph { width: 13px; height: 13px; }
.timeline-ai-reading > div,.timeline-system-detail > div { display: grid; gap: 7px; flex-basis: 100%; margin-top: 8px; padding: 9px 10px; border: 1px solid #d5e4eb; border-radius: 9px; background: #f4f9fb; }
.timeline-ai-reading[open],.timeline-system-detail[open] { flex-basis: 100%; }
.timeline-ai-reading p,.timeline-system-detail p { margin: 0; color: #456274; font-size: .68rem; line-height: 1.5; }
.timeline-ai-reading span { color: #6f8290; font-size: .62rem; }
.timeline-system-detail nav { display: flex; flex-wrap: wrap; gap: 10px; }
.timeline-system-detail a { color: #216f9a; font-size: .66rem; font-weight: 750; }
.timeline-post-date { margin-left: auto; color: #8b989f; font-size: .58rem; }
.timeline-social-main > .pagination-bar { margin: 12px; }

.timeline-social-sidebar { position: sticky; top: 10px; display: grid; gap: 12px; min-width: 0; }
.timeline-now-card,.timeline-about-card,.timeline-quality-compact { overflow: hidden; border: 1px solid #dce5eb; border-radius: 15px; background: #fff; box-shadow: 0 7px 22px rgba(24, 49, 68, .05); }
.timeline-now-card > header { display: flex; align-items: center; justify-content: space-between; padding: 13px 14px 9px; }
.timeline-now-card > header > div { display: flex; gap: 9px; align-items: center; }
.timeline-now-card h2,.timeline-about-card h2 { margin: 0; color: #19384e; font-size: .87rem; }
.timeline-now-card > header small { color: #86939c; font-size: .61rem; }
.timeline-now-summary { margin: 0; padding: 0 14px 10px; color: #647987; font-size: .68rem; }
.timeline-now-summary strong { color: #1d4b64; font-size: .9rem; }
.timeline-now-list { display: grid; }
.timeline-now-item { --now-accent: #4384aa; display: grid; gap: 2px; padding: 10px 14px; border-top: 1px solid #e5ebef; border-left: 3px solid var(--now-accent); color: inherit; text-decoration: none; }
.timeline-now-item:hover { background: #f8fbfc; }
.timeline-now-item.is-critical { --now-accent: #c5382f; }
.timeline-now-item.is-high { --now-accent: #d96620; }
.timeline-now-item.is-attention { --now-accent: #b98608; }
.timeline-now-item span { display: inline-flex; gap: 5px; align-items: center; color: var(--now-accent); font-size: .56rem; font-weight: 850; text-transform: uppercase; }
.timeline-now-item span .ui-icon-glyph,.timeline-now-item span .timeline-topic-symbol { width: 13px; height: 13px; }
.timeline-now-item strong { color: #29465a; font-size: .69rem; line-height: 1.35; }
.timeline-now-item small { overflow: hidden; color: #0b678d; font-size: .61rem; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.timeline-now-empty { margin: 0; padding: 16px 14px; border-top: 1px solid #e5ebef; color: #648072; font-size: .68rem; }
.timeline-now-card > footer { display: flex; gap: 8px; justify-content: space-between; padding: 10px 14px; border-top: 1px solid #e5ebef; }
.timeline-now-card > footer :is(a,button) { padding: 0; border: 0; background: transparent; color: #24759e; font: inherit; font-size: .62rem; font-weight: 750; cursor: pointer; text-decoration: none; }
.timeline-about-card { padding: 14px; }
.timeline-about-card p { margin: 7px 0 10px; color: #617684; font-size: .7rem; line-height: 1.5; }
.timeline-about-card span { display: flex; gap: 6px; align-items: center; color: #587181; font-size: .62rem; }
.timeline-about-card .ui-icon-glyph { width: 14px; height: 14px; color: #27805a; }
.timeline-quality-compact > summary { padding: 12px 14px; color: #3c5a6e; font-size: .7rem; font-weight: 800; cursor: pointer; }
.timeline-quality-compact > div { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid #e5ebef; }
.timeline-quality-compact span { display: grid; gap: 2px; padding: 9px 5px; color: #768792; font-size: .55rem; text-align: center; }
.timeline-quality-compact b { color: #294b61; font-size: .8rem; }
.timeline-updated { padding-inline: 4px; color: #89959d; font-size: .58rem; }

@media (max-width: 980px) {
  .timeline-social-layout { grid-template-columns: minmax(0, 1fr); }
  .timeline-social-sidebar { position: static; grid-row: auto; grid-template-columns: minmax(0, 1fr) minmax(220px, .55fr); }
  .timeline-quality-compact,.timeline-updated { grid-column: 1 / -1; }
}

@media (max-width: 700px) {
  .timeline-social-topbar { align-items: flex-start; flex-direction: column; }
  .timeline-social-scope { text-align: left; }
  .timeline-social-main { border-radius: 12px; }
  .timeline-composer,.timeline-feed-card { grid-template-columns: 38px minmax(0, 1fr); gap: 9px; padding-inline: 12px; }
  .timeline-avatar { width: 36px; height: 36px; flex-basis: 36px; }
  .timeline-composer-help { display: none; }
  .timeline-social-filters { grid-template-columns: 1fr 1fr; padding-inline: 12px; }
  .timeline-social-search { grid-column: 1 / -1; }
  .timeline-social-sidebar { grid-template-columns: 1fr; }
  .timeline-quality-compact,.timeline-updated { grid-column: auto; }
  .timeline-post-date { display: none; }
  .timeline-post-header { align-items: flex-start; }
  .timeline-post-header-side { align-items: flex-end !important; flex-direction: column; }
}

@media (max-width: 430px) {
  .timeline-social-filters { grid-template-columns: 1fr; }
  .timeline-social-search { grid-column: auto; }
  .timeline-post-file { grid-template-columns: minmax(0, 1fr); }
  .timeline-post-file form { margin: 0 8px 5px; }
}

/* Captura tecnica usada nos e-mails: preserva a composicao real do Leaflet,
   mas limita a imagem ao mapa e aos elementos que ficam sobre ele. */
.real-time-page.is-map-capture {
  position: fixed;
  inset: 0;
  z-index: 2147480000;
  width: 100vw;
  height: 100vh;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #e8eef2;
}

body.real-time-map-capture-body {
  --sie-page-zoom: 1;
  zoom: 1 !important;
  overflow: hidden;
}

.real-time-page.is-map-capture > *:not(.real-time-shell),
.real-time-page.is-map-capture .real-time-shell-head,
.real-time-page.is-map-capture .real-time-layer-panel,
.real-time-page.is-map-capture .real-time-layer-drawer-toggle,
.real-time-page.is-map-capture .real-time-clean-map-exit,
.real-time-page.is-map-capture .real-time-alert-toast,
.real-time-page.is-map-capture .real-time-decision-panel {
  display: none !important;
}

.real-time-page.is-map-capture .panel.real-time-shell,
.real-time-page.is-map-capture .real-time-map-layout,
.real-time-page.is-map-capture .real-time-map-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-height: 100%;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

.real-time-page.is-map-capture .real-time-map-layout {
  display: block;
}

/* Linguagem visual compartilhada pelos relatórios operacionais. */
.report-reading-guide {
  display: grid;
  gap: 8px;
  padding: 11px 12px;
  border: 1px solid #dbe5ec;
  border-radius: 11px;
  background: #fff;
}

.report-reading-guide > header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.report-reading-guide > header strong {
  color: #173b53;
  font-size: .78rem;
}

.report-reading-guide > header span {
  color: #607584;
  font-size: .64rem;
  line-height: 1.35;
  text-align: right;
}

.report-reading-guide-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
}

.report-reading-guide-grid article {
  min-width: 0;
  padding: 8px 9px;
  border-top: 3px solid #78909c;
  border-radius: 8px;
  background: #f7fafb;
}

.report-reading-guide-grid article.is-fact { border-top-color: #137b57; background: #f2fbf7; }
.report-reading-guide-grid article.is-forecast { border-top-color: #087ca7; background: #f1f9fc; }
.report-reading-guide-grid article.is-impact { border-top-color: #7a4fc2; background: #f7f4fc; }
.report-reading-guide-grid article.is-guidance { border-top-color: #c65a28; background: #fff7f2; }

.report-reading-guide-grid b,
.report-reading-guide-grid span {
  display: block;
}

.report-reading-guide-grid b {
  color: #173b53;
  font-size: .67rem;
}

.report-reading-guide-grid span {
  margin-top: 2px;
  color: #526874;
  font-size: .59rem;
  line-height: 1.35;
}

.emergency-ai-report > .report-reading-guide {
  margin-top: 12px;
}

.emergency-ai-governance {
  display: block;
}

.emergency-ai-governance-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 2px;
  color: #174d70;
  cursor: pointer;
  list-style: none;
}

.emergency-ai-governance-summary::-webkit-details-marker { display: none; }
.emergency-ai-governance-summary::after { content: '+'; font-size: 1rem; font-weight: 800; }
.emergency-ai-governance[open] > .emergency-ai-governance-summary::after { content: '−'; }
.emergency-ai-governance-summary span,
.emergency-ai-governance-summary small { display: block; }
.emergency-ai-governance-summary span { font-size: .74rem; font-weight: 850; }
.emergency-ai-governance-summary small { margin-left: auto; color: #607584; font-size: .61rem; font-weight: 500; }
.emergency-ai-governance[open] > .emergency-ai-section-heading { margin-top: 12px; }

.emergency-ai-priority-heading > .is-location {
  background: #e0f2fe;
  color: #075985;
  letter-spacing: .02em;
  text-transform: none;
}

@media (max-width: 760px) {
  .report-reading-guide > header {
    align-items: flex-start;
    flex-direction: column;
    gap: 3px;
  }

  .report-reading-guide > header span { text-align: left; }
  .report-reading-guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .emergency-ai-governance-summary small { display: none; }
}

@media (max-width: 440px) {
  .report-reading-guide-grid { grid-template-columns: 1fr; }
}

@media print {
  .report-reading-guide,
  .report-reading-guide-grid article {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .report-reading-guide-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.chat-audit-table {
    min-width: 1180px;
}

.chat-audit-table th:nth-child(1),
.chat-audit-table td:nth-child(1) {
    width: 145px;
}

.chat-audit-table th:nth-child(2),
.chat-audit-table td:nth-child(2) {
    width: 210px;
}

.chat-audit-table th:nth-child(5),
.chat-audit-table td:nth-child(5) {
    width: 115px;
}

.chat-audit-table th:nth-child(6),
.chat-audit-table td:nth-child(6) {
    width: 130px;
}

.chat-audit-table td {
    vertical-align: top;
}

.chat-audit-table td > small,
.chat-audit-date small,
.chat-audit-tokens small {
    display: block;
    margin-top: 0.35rem;
    color: var(--sie-muted);
}

.chat-audit-message summary {
    color: var(--sie-text);
    cursor: pointer;
    line-height: 1.45;
}

.chat-audit-message[open] summary {
    margin-bottom: 0.6rem;
    font-weight: 700;
}

.chat-audit-message pre {
    max-width: 520px;
    max-height: 320px;
    margin: 0;
    padding: 0.75rem;
    overflow: auto;
    border: 1px solid var(--sie-line);
    border-radius: 0.6rem;
    background: var(--sie-bg);
    color: var(--sie-text);
    font: inherit;
    line-height: 1.5;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
}

/* Chat integrado */
.page-mode-full {
  --full-page-viewport-height: 111.112vh;
  overflow: hidden;
}

.page-mode-full .app-shell {
  height: var(--full-page-viewport-height);
  min-height: 0;
}

.page-mode-full .sidebar {
  height: var(--full-page-viewport-height);
  overflow-x: hidden;
  overflow-y: auto;
}

.page-mode-full .app-main {
  display: flex;
  height: var(--full-page-viewport-height);
  min-height: 0;
  overflow: hidden;
  flex-direction: column;
}

.page-mode-full .topbar,
.page-mode-full .system-alert-bar,
.page-mode-full .system-operational-bar,
.page-mode-full .admin-pending-notice {
  flex: 0 0 auto;
}

.page-mode-full .page-full {
  min-height: 0;
  padding: 0;
  overflow: hidden;
  flex: 1 1 auto;
}

.chat-page {
  --chat-blue: #315efb;
  --chat-ink: #172033;
  --chat-muted: #667085;
  display: grid;
  gap: 34px;
  max-width: 1320px;
  margin: 0 auto;
  padding: 16px 0 48px;
}

.page-mode-full .chat-page {
  width: 100%;
  height: 100%;
  max-width: none;
  padding: 0 28px 28px;
  overflow-x: hidden;
  overflow-y: auto;
}

.chat-hero {
  display: grid;
  gap: 20px;
  justify-items: center;
  padding: clamp(28px, 6vw, 76px) 20px 8px;
  text-align: center;
}

.chat-hero-copy {
  max-width: 790px;
}

.chat-hero h1 {
  margin: 8px 0 10px;
  color: var(--chat-ink);
  font-size: clamp(2rem, 4.2vw, 3.6rem);
  font-weight: 650;
  letter-spacing: -0.045em;
}

.chat-hero-copy p {
  margin: 0 auto;
  max-width: 720px;
  color: var(--chat-muted);
  font-size: 1rem;
  line-height: 1.65;
}

.chat-hero > .alert {
  width: min(100%, 960px);
  margin: 0;
  text-align: left;
}

.chat-workspace {
  display: grid;
  width: min(100%, 960px);
  min-height: 0;
  gap: 14px;
}

.chat-transcript[hidden] {
  display: none;
}

.chat-page.has-conversation {
  gap: 0;
  padding-top: 0;
}

.page-mode-full .chat-page.has-conversation {
  padding: 0;
  overflow: hidden;
}

.chat-page.has-conversation .chat-hero {
  gap: 0;
  padding-top: 0;
}

.page-mode-full .chat-page.has-conversation .chat-hero {
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
}

.chat-page.has-conversation .chat-hero-copy,
.chat-page.has-conversation .chat-suggestions {
  display: none;
}

.chat-page.has-conversation .chat-workspace {
  grid-template-rows: minmax(0, 1fr) auto;
  height: min(760px, calc(100vh - 155px));
  min-height: 520px;
}

.page-mode-full .chat-page.has-conversation .chat-workspace {
  width: 100%;
  height: 100%;
  min-height: 0;
}

.chat-transcript {
  display: flex;
  min-height: 0;
  padding: 24px 12px 34px;
  overflow-x: hidden;
  overflow-y: auto;
  flex-direction: column;
  gap: 32px;
  overscroll-behavior: contain;
  scroll-behavior: smooth;
  scrollbar-color: #c6ceda transparent;
  scrollbar-width: thin;
  text-align: left;
}

.page-mode-full .chat-transcript {
  width: 100%;
  padding: 32px clamp(24px, 4vw, 72px) 38px;
}

.chat-transcript::-webkit-scrollbar {
  width: 8px;
}

.chat-transcript::-webkit-scrollbar-track {
  background: transparent;
}

.chat-transcript::-webkit-scrollbar-thumb {
  border: 2px solid transparent;
  border-radius: 999px;
  background: #c6ceda;
  background-clip: padding-box;
}

.chat-turn {
  display: grid;
  gap: 20px;
  width: 100%;
}

.page-mode-full .chat-turn {
  width: 100%;
}

.chat-turn-user {
  justify-self: end;
  max-width: min(76%, 680px);
  padding: 11px 16px;
  border-radius: 20px 20px 5px 20px;
  background: #e9f2ff;
  color: #172033;
  font-size: 0.92rem;
  line-height: 1.55;
  overflow-wrap: anywhere;
}

.chat-turn-assistant.risk-assistant-output {
  justify-self: stretch;
  min-height: 0;
  padding: 0 8px;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.chat-turn-assistant.risk-assistant-output.is-loading {
  min-height: 64px;
  padding: 14px 16px;
  border-radius: 14px;
  background: linear-gradient(90deg, rgba(49, 94, 251, 0.025), rgba(49, 94, 251, 0.09), rgba(49, 94, 251, 0.025));
  background-size: 220% 100%;
}

.chat-turn-assistant.risk-assistant-output.is-error {
  padding: 14px 16px;
  border: 1px solid rgba(210, 31, 43, 0.2);
  border-radius: 14px;
  background: var(--sie-red-soft);
}

.chat-turn-assistant .risk-assistant-answer {
  color: #202939;
  font-size: 0.9rem;
  line-height: 1.7;
}

.chat-composer {
  width: 100%;
  padding: 10px 12px 9px;
  border: 1px solid #dfe4ec;
  border-radius: 25px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(28, 39, 64, 0.12), 0 2px 8px rgba(28, 39, 64, 0.06);
  text-align: left;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.page-mode-full .chat-page.has-conversation .chat-composer {
  width: auto;
  margin: 0 clamp(18px, 3vw, 52px) 22px;
}

.chat-composer:focus-within {
  border-color: rgba(49, 94, 251, 0.55);
  box-shadow: 0 20px 50px rgba(28, 39, 64, 0.14), 0 0 0 4px rgba(49, 94, 251, 0.08);
}

.chat-composer-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: end;
  gap: 10px;
}

.chat-composer textarea {
  width: 100%;
  min-height: 42px;
  max-height: 180px;
  padding: 9px 4px 7px;
  resize: none;
  overflow-y: auto;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--chat-ink);
  font: inherit;
  font-size: 1rem;
  line-height: 1.45;
}

.chat-composer textarea::placeholder {
  color: #8b93a3;
}

.chat-attachment-button,
.chat-send-button {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.65rem;
  line-height: 1;
  transition: transform 150ms ease, background 150ms ease;
}

.chat-attachment-button {
  border: 1px solid #d8dee8;
  background: #fff;
  color: #20293a;
}

.chat-attachment-button:hover {
  background: #f3f6fb;
  transform: translateY(-1px);
}

.chat-send-button {
  border: 0;
  background: var(--chat-blue);
  color: #fff;
  font-size: 1.4rem;
  font-weight: 700;
}

.chat-send-button:hover:not(:disabled) {
  background: #244bd4;
  transform: translateY(-1px);
}

.chat-send-button:disabled,
.chat-attachment-button:has(+ textarea:disabled) {
  cursor: not-allowed;
  opacity: 0.48;
}

.chat-send-button.is-busy {
  cursor: wait;
}

.chat-send-button.is-busy::after {
  width: 18px;
  height: 18px;
  border: 2px solid rgba(255, 255, 255, 0.42);
  border-top-color: #fff;
  border-radius: 50%;
  content: "";
  animation: chat-loading-spin 700ms linear infinite;
}

@keyframes chat-loading-spin {
  to {
    transform: rotate(360deg);
  }
}

.chat-composer-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 5px 0 52px;
  color: var(--chat-muted);
  font-size: 0.74rem;
}

.chat-attachment-list {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.chat-attachment-chip {
  display: inline-flex;
  max-width: 280px;
  padding: 5px 9px;
  overflow: hidden;
  border-radius: 999px;
  background: #edf2ff;
  color: #2848b8;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.chat-attachment-clear {
  padding: 3px 6px;
  border: 0;
  background: transparent;
  color: #b42318;
  font: inherit;
  cursor: pointer;
  text-decoration: underline;
}

.chat-quota {
  flex: 0 0 auto;
  font-weight: 600;
  white-space: nowrap;
}

.chat-quota.is-empty {
  color: #b42318;
}

.chat-suggestions {
  display: grid;
  gap: 18px;
}

.chat-section-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 24px;
}

.chat-section-heading h2 {
  margin: 4px 0 0;
  color: var(--chat-ink);
  font-size: clamp(1.25rem, 2vw, 1.7rem);
}

.chat-section-heading > p {
  max-width: 480px;
  margin: 0;
  color: var(--chat-muted);
  font-size: 0.86rem;
  text-align: right;
}

.chat-suggestion-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.chat-suggestion-card {
  position: relative;
  display: grid;
  min-height: 190px;
  padding: 18px;
  overflow: hidden;
  border: 1px solid #e1e6ee;
  border-radius: 18px;
  background: linear-gradient(145deg, #fff 55%, #f7f9fc 100%);
  color: var(--chat-ink);
  cursor: pointer;
  text-align: left;
  transition: transform 170ms ease, border-color 170ms ease, box-shadow 170ms ease;
}

.chat-suggestion-card:hover:not(:disabled) {
  transform: translateY(-3px);
  border-color: rgba(49, 94, 251, 0.4);
  box-shadow: 0 13px 28px rgba(28, 39, 64, 0.1);
}

.chat-suggestion-card:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

.chat-suggestion-card > span {
  align-self: start;
  justify-self: start;
  padding: 4px 8px;
  border-radius: 999px;
  background: #edf2ff;
  color: #3153c7;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.chat-suggestion-card strong {
  align-self: end;
  margin-top: 24px;
  font-size: 0.98rem;
  line-height: 1.35;
}

.chat-suggestion-card small {
  display: -webkit-box;
  margin-top: 7px;
  overflow: hidden;
  color: var(--chat-muted);
  font-size: 0.76rem;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.chat-suggestion-card b {
  position: absolute;
  top: 17px;
  right: 18px;
  color: #315efb;
  font-size: 1.1rem;
}

.chat-spatial-results {
  display: grid;
  gap: 18px;
  padding: clamp(18px, 3vw, 28px);
  border: 1px solid #dfe5ed;
  border-radius: 20px;
  background: #fff;
}

.chat-spatial-layout {
  display: grid;
  grid-template-columns: minmax(360px, 1.08fr) minmax(420px, 0.92fr);
  gap: 18px;
  align-items: stretch;
}

.chat-area-map {
  min-height: 500px;
  overflow: hidden;
  border: 1px solid #dce2ea;
  border-radius: 16px;
  background: #eef2f6;
}

.chat-spatial-table-wrap {
  max-height: 500px;
  overflow: auto;
  border: 1px solid #e1e6ed;
  border-radius: 16px;
}

.chat-spatial-table-wrap table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
}

.chat-spatial-table-wrap th,
.chat-spatial-table-wrap td {
  padding: 10px 11px;
  border-bottom: 1px solid #edf0f4;
  vertical-align: top;
  text-align: left;
}

.chat-spatial-table-wrap th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #f7f9fc;
  color: #475467;
  font-size: 0.7rem;
  text-transform: uppercase;
}

.chat-table-notice {
  padding: 10px 12px;
  margin: 0;
}

.system-setting-card.system-setting-card-number {
  align-items: center;
}

.system-setting-number {
  display: grid;
  justify-items: end;
  gap: 4px;
}

.system-setting-number input {
  width: 92px;
  padding: 8px 10px;
  border: 1px solid #ccd4df;
  border-radius: 9px;
  background: #fff;
  color: #182230;
  font: inherit;
  font-weight: 700;
  text-align: right;
}

.system-setting-number small {
  color: #667085;
  font-size: 0.68rem;
  white-space: nowrap;
}

@media (max-width: 1120px) {
  .chat-suggestion-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .chat-spatial-layout {
    grid-template-columns: 1fr;
  }

  .chat-area-map {
    min-height: 420px;
  }
}

@media (max-width: 680px) {
  .page-mode-full .chat-page {
    padding: 0 12px 16px;
  }

  .chat-page {
    gap: 26px;
    padding-top: 0;
  }

  .chat-hero {
    padding: 24px 0 0;
  }

  .chat-page.has-conversation .chat-hero {
    padding: 0;
  }

  .chat-page.has-conversation .chat-workspace {
    height: calc(100svh - 125px);
    min-height: 460px;
  }

  .page-mode-full .chat-page.has-conversation .chat-workspace {
    height: 100%;
    min-height: 0;
  }

  .chat-transcript {
    padding: 16px 2px 24px;
  }

  .page-mode-full .chat-transcript {
    padding: 16px 12px 24px;
  }

  .page-mode-full .chat-page.has-conversation .chat-composer {
    margin: 0 10px 10px;
  }

  .chat-turn-user {
    max-width: 88%;
  }

  .chat-composer {
    border-radius: 20px;
  }

  .chat-composer-meta,
  .chat-section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .chat-composer-meta {
    padding-left: 4px;
  }

  .chat-section-heading > p {
    text-align: left;
  }

  .chat-suggestion-grid {
    grid-template-columns: 1fr;
  }

  .chat-suggestion-card {
    min-height: 160px;
  }

  .chat-area-map {
    min-height: 340px;
  }
}

/* Ocorrencias: documentos protegidos de apoio */
.occurrence-attachments-heading {
  align-items: flex-start;
  gap: 16px;
}
.occurrence-attachments-heading h2 { margin: 3px 0 5px; }
.occurrence-attachment-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 14px;
  margin-top: 16px;
  padding: 16px;
  border: 1px solid var(--sie-line);
  border-radius: 10px;
  background: #f8fafc;
}
.occurrence-attachment-form .field { margin: 0; }
.occurrence-attachment-form input[type="file"] {
  width: 100%;
  padding: 9px;
  border: 1px dashed #94a3b8;
  border-radius: 8px;
  background: #fff;
}
.occurrence-attachment-list {
  display: grid;
  gap: 9px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}
.occurrence-attachment-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 14px;
  border: 1px solid var(--sie-line);
  border-radius: 9px;
  background: #fff;
}
.occurrence-attachment-list a { color: var(--sie-primary); text-decoration: none; }
.occurrence-attachment-list a:hover { text-decoration: underline; }
.occurrence-attachment-list small { display: block; margin-top: 3px; color: var(--sie-muted); }
.occurrence-attachments-empty { min-height: 110px; margin-top: 16px; }

/* Emergencia IA: ocorrencias manuais nunca ficam escondidas na narrativa do modelo. */
.emergency-ai-open-occurrences {
  margin-top: 16px;
  padding: 16px;
  border: 2px solid #ef4444;
  border-radius: 12px;
  background: linear-gradient(135deg, #fff7f7, #fff);
  box-shadow: 0 10px 28px rgba(185, 28, 28, .08);
}
.emergency-ai-open-occurrences > header,
.emergency-ai-open-occurrence-list article > header,
.emergency-ai-open-occurrence-list article > footer {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.emergency-ai-open-occurrences > header h3 { margin: 3px 0 4px; color: #7f1d1d; font-size: 18px; }
.emergency-ai-open-occurrences > header p { margin: 0; color: #7f1d1d; font-size: 11px; }
.emergency-ai-open-occurrences > header > span,
.emergency-ai-open-occurrence-list article > header > span {
  flex: none;
  padding: 5px 9px;
  border-radius: 999px;
  background: #fee2e2;
  color: #991b1b;
  font-size: 10px;
  font-weight: 800;
}
.emergency-ai-open-occurrence-list { display: grid; gap: 10px; margin-top: 14px; }
.emergency-ai-open-occurrence-list article {
  padding: 13px 14px;
  border: 1px solid #fecaca;
  border-left: 4px solid #dc2626;
  border-radius: 9px;
  background: #fff;
}
.emergency-ai-open-occurrence-list article.is-futura { border-left-color: #7c3aed; }
.emergency-ai-open-occurrence-list article.is-futura > header > span { background: #ede9fe; color: #6d28d9; }
.emergency-ai-open-occurrence-list article > header strong { display: block; color: #1e293b; font-size: 14px; }
.emergency-ai-open-occurrence-list article > header small { display: block; margin-top: 3px; color: var(--sie-muted); }
.emergency-ai-open-occurrence-list dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 11px 0 0; }
.emergency-ai-open-occurrence-list dl > div { padding: 8px 9px; border-radius: 7px; background: #f8fafc; }
.emergency-ai-open-occurrence-list dt { color: #64748b; font-size: 9px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.emergency-ai-open-occurrence-list dd { margin: 3px 0 0; color: #334155; font-size: 11px; font-weight: 700; }
.emergency-ai-open-occurrence-list article > p { margin: 10px 0 0; color: #475569; font-size: 11px; line-height: 1.55; }
.emergency-ai-open-occurrence-list article > footer { align-items: center; margin-top: 10px; padding-top: 9px; border-top: 1px solid #fee2e2; }
.emergency-ai-open-occurrence-list article > footer span { color: #64748b; font-size: 10px; }
.emergency-ai-open-occurrence-list article > footer a { color: #b91c1c; font-size: 11px; font-weight: 800; text-decoration: none; }
.emergency-ai-open-occurrences-note { margin: 12px 0 0; color: #7f1d1d; font-size: 10px; line-height: 1.55; }

@media (max-width: 720px) {
  .occurrence-attachment-form { grid-template-columns: 1fr; }
  .occurrence-attachment-list li,
  .emergency-ai-open-occurrences > header,
  .emergency-ai-open-occurrence-list article > header,
  .emergency-ai-open-occurrence-list article > footer { align-items: stretch; flex-direction: column; }
  .emergency-ai-open-occurrence-list dl { grid-template-columns: 1fr; }
}

/* Tempo real */
.real-time-page {
    --rt-ink: #123238;
    --rt-muted: #5a7276;
    --rt-border: #d7e4e3;
    --rt-soft: #f2f8f7;
    display: grid;
    gap: 1rem;
}

.real-time-hero {
    align-items: flex-end;
    background: linear-gradient(125deg, #083c47 0%, #0b6670 58%, #16818b 100%);
    border: 0;
    border-radius: 18px;
    color: #fff;
    display: flex;
    justify-content: space-between;
    overflow: hidden;
    padding: 1.55rem 1.7rem;
    position: relative;
}

.real-time-hero::after {
    background: radial-gradient(circle, rgba(255,255,255,.2) 0 2px, transparent 3px);
    background-size: 24px 24px;
    content: "";
    inset: 0 0 0 62%;
    opacity: .28;
    pointer-events: none;
    position: absolute;
}

.real-time-hero .eyebrow,
.real-time-hero h1,
.real-time-hero p {
    color: inherit;
    margin-bottom: .25rem;
}

.real-time-hero h1 {
    font-size: clamp(1.85rem, 3vw, 2.7rem);
}

.real-time-hero > div {
    position: relative;
    z-index: 1;
}

.real-time-refresh {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    gap: .55rem;
    min-width: 190px;
}

.real-time-refresh span {
    color: rgba(255,255,255,.8);
    font-size: .78rem;
}

.real-time-refresh .btn-primary {
    background: #fff;
    border-color: #fff;
    color: #07505a;
}

.real-time-boundary {
    align-items: center;
    background: #edf7f6;
    border: 1px solid #c8e2df;
    border-left: 4px solid #0f7880;
    border-radius: 10px;
    color: var(--rt-ink);
    display: flex;
    gap: .75rem;
    padding: .78rem 1rem;
}

.real-time-boundary span {
    color: var(--rt-muted);
    font-size: .85rem;
}

.real-time-command-bar {
    align-items: stretch;
    background: linear-gradient(115deg, #092f38, #0a5b65);
    border-radius: 14px;
    color: #fff;
    display: grid;
    gap: .8rem;
    grid-template-columns: minmax(220px, 1.15fr) minmax(560px, 2.85fr);
    padding: .85rem 1rem;
    position: sticky;
    top: .5rem;
    z-index: 45;
}

.real-time-command-bar-fullscreen { display: none; }

.real-time-command-status {
    align-content: center;
    display: grid;
    gap: .18rem;
}

.real-time-command-status > strong { font-size: .96rem; line-height: 1.25; }
.real-time-command-status > small { color: rgba(255,255,255,.72); font-size: .7rem; }
.real-time-live-indicator { align-items: center; color: #a7f3d0; display: inline-flex; font-size: .65rem; font-weight: 850; gap: .35rem; letter-spacing: .055em; text-transform: uppercase; }
.real-time-live-indicator i { animation: rt-live-pulse 1.8s infinite; background: #34d399; border-radius: 50%; box-shadow: 0 0 0 4px rgba(52,211,153,.15); height: 7px; width: 7px; }

@keyframes rt-live-pulse {
    50% { box-shadow: 0 0 0 7px rgba(52,211,153,0); opacity: .72; }
}

.real-time-command-metrics {
    display: grid;
    gap: .45rem;
    grid-template-columns: repeat(8, minmax(62px, 1fr));
}

.real-time-command-metrics article {
    background: rgba(255,255,255,.09);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 9px;
    display: grid;
    gap: .05rem;
    min-width: 0;
    padding: .48rem .5rem;
}

.real-time-command-metrics article.is-critical { background: rgba(220,38,38,.26); border-color: rgba(254,202,202,.32); }
.real-time-command-metrics article.is-source { background: rgba(217,119,6,.2); }
.real-time-command-metrics span { color: rgba(255,255,255,.7); font-size: .57rem; font-weight: 750; line-height: 1.15; text-transform: uppercase; }
.real-time-command-metrics strong { color: #fff; font-size: 1.08rem; }

.real-time-operation-controls {
    align-items: center;
    background: #fff;
    border: 1px solid var(--rt-border);
    border-radius: 12px;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: .65rem .8rem;
}

.real-time-operation-controls > div:first-child { align-items: center; display: flex; gap: .65rem; }
.real-time-operation-controls > div:first-child > strong { color: var(--rt-ink); font-size: .72rem; text-transform: uppercase; }
.real-time-mode-switch { background: #edf5f4; border-radius: 9px; display: inline-flex; gap: .15rem; padding: .2rem; }
.real-time-mode-switch button,
.real-time-alert-filters button {
    background: transparent;
    border: 0;
    border-radius: 7px;
    color: #45666a;
    cursor: pointer;
    font-size: .68rem;
    font-weight: 800;
    padding: .38rem .55rem;
}
.real-time-mode-switch button.is-active,
.real-time-alert-filters button.is-active { background: #08717a; color: #fff; box-shadow: 0 1px 4px rgba(8,113,122,.2); }
.real-time-operation-options { align-items: center; display: flex; flex-wrap: wrap; gap: .35rem .75rem; justify-content: flex-end; }
.real-time-operation-options label { align-items: center; color: #355d62; display: inline-flex; font-size: .68rem; font-weight: 750; gap: .3rem; }
.real-time-operation-options input { accent-color: #08717a; }
.real-time-operation-options select { background: #fff; border: 1px solid #cbdcda; border-radius: 6px; color: #355d62; font: inherit; padding: .2rem .3rem; }
.real-time-operation-options > span { color: var(--rt-muted); flex-basis: 100%; font-size: .62rem; text-align: right; }

.real-time-auto-briefing {
    align-items: center;
    background: linear-gradient(120deg, #eef8f7, #f7fbfb);
    border: 1px solid #bedddb;
    border-left: 5px solid #08717a;
    border-radius: 12px;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: .75rem .9rem;
}
.real-time-auto-briefing > div:first-child { display: grid; gap: .18rem; }
.real-time-auto-briefing span { color: #0b6871; font-size: .66rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.real-time-auto-briefing strong { color: #173b40; font-size: .86rem; line-height: 1.4; }
.real-time-auto-briefing small { color: #61777a; font-size: .64rem; }
.real-time-auto-briefing > div:last-child { align-items: flex-end; display: grid; flex: 0 0 auto; gap: .35rem; }
.real-time-auto-briefing time { color: #597276; font-size: .63rem; font-weight: 750; }


.real-time-kpis,
.real-time-rain-strip {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.real-time-kpis article,
.real-time-rain-strip article {
    background: #fff;
    border: 1px solid var(--rt-border);
    border-radius: 12px;
    display: grid;
    gap: .15rem;
    padding: .85rem 1rem;
}

.real-time-kpis article {
    border-top: 3px solid #458a91;
}

.real-time-kpis article.is-critical { border-top-color: #b42318; }
.real-time-kpis article.is-risk { border-top-color: #d97706; }
.real-time-kpis span,
.real-time-rain-strip span {
    color: var(--rt-muted);
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.real-time-kpis strong,
.real-time-rain-strip strong {
    color: var(--rt-ink);
    font-size: 1.45rem;
}

.real-time-kpis strong.is-date,
.real-time-rain-strip article:last-child strong {
    font-size: 1rem;
}

.real-time-kpis small,
.real-time-rain-strip small {
    color: var(--rt-muted);
    font-size: .72rem;
}

.real-time-rain-strip article {
    background: linear-gradient(145deg, #f8fbfb, #edf6f5);
}

.real-time-shell {
    overflow: hidden;
    padding: 0;
}

.real-time-heading {
    align-items: center;
    border-bottom: 1px solid var(--rt-border);
    display: flex;
    justify-content: space-between;
    margin: 0;
    padding: 1rem 1.15rem;
}

.real-time-heading h2,
.real-time-heading p {
    margin-bottom: .2rem;
}

.real-time-map-actions {
    display: flex;
    gap: .5rem;
}

.real-time-map-layout {
    display: grid;
    grid-template-columns: 270px minmax(380px, 1fr) 310px;
    min-height: 650px;
    position: relative;
}

@media (min-width: 1251px) {
    .real-time-map-layout > .real-time-layer-panel { grid-column: 1; }
    .real-time-map-layout > .real-time-map-canvas { grid-column: 2; }
    .real-time-map-layout > .real-time-decision-panel { grid-column: 3; }
}


.real-time-layer-panel,
.real-time-decision-panel {
    background: #f8fbfb;
    max-height: 650px;
    overflow: auto;
    padding: .9rem;
}

.real-time-layer-panel { border-right: 1px solid var(--rt-border); }
.real-time-decision-panel { border-left: 1px solid var(--rt-border); }

.real-time-layer-panel-head {
    align-items: flex-start;
    display: flex;
    gap: .5rem;
    justify-content: space-between;
    margin-bottom: .6rem;
}
.real-time-layer-panel-head > div { display: grid; gap: .12rem; }
.real-time-layer-panel-head strong { color: var(--rt-ink); font-size: .92rem; }
.real-time-layer-panel-head small { color: var(--rt-muted); font-size: .63rem; line-height: 1.3; }
.real-time-layer-panel-head button {
    background: #fff;
    border: 1px solid #cadcda;
    border-radius: 999px;
    color: #315e63;
    cursor: pointer;
    font-size: .6rem;
    font-weight: 850;
    padding: .26rem .48rem;
}

.real-time-layer-presets {
    display: grid;
    gap: .25rem;
    grid-template-columns: 1fr 1fr;
    margin-bottom: .7rem;
}
.real-time-layer-presets button {
    background: #fff;
    border: 1px solid #d1e0df;
    border-radius: 7px;
    color: #45656a;
    cursor: pointer;
    font-size: .62rem;
    font-weight: 800;
    padding: .35rem .3rem;
}
.real-time-layer-presets button:hover,
.real-time-layer-presets button.is-active { background: #e3f3f1; border-color: #70b5ad; color: #086b70; }

.real-time-layer-group + .real-time-layer-group {
    border-top: 1px solid var(--rt-border);
    margin-top: .8rem;
    padding-top: .8rem;
}

.real-time-layer-group > summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: .4rem;
    justify-content: space-between;
    list-style: none;
    padding: .15rem 0 .45rem;
}
.real-time-layer-group > summary::-webkit-details-marker { display: none; }
.real-time-layer-group > summary::before { color: #648085; content: "▸"; font-size: .72rem; transition: transform .16s ease; }
.real-time-layer-group[open] > summary::before { transform: rotate(90deg); }
.real-time-layer-group > summary > strong { color: var(--rt-muted); flex: 1; font-size: .7rem; letter-spacing: .05em; text-transform: uppercase; }
.real-time-layer-group > summary > b { background: #e8f2f1; border-radius: 999px; color: #416c70; font-size: .56rem; padding: .16rem .36rem; }
.real-time-layer-group-content { display: grid; }

.real-time-layer-group h3 {
    color: var(--rt-muted);
    font-size: .72rem;
    letter-spacing: .055em;
    margin: 0 0 .45rem;
    text-transform: uppercase;
}

.real-time-layer-toggle {
    align-items: center;
    background: #fff;
    border: 1px solid transparent;
    border-radius: 9px;
    cursor: pointer;
    display: grid;
    gap: .55rem;
    grid-template-columns: auto auto 1fr auto;
    margin-bottom: .35rem;
    padding: .65rem .7rem;
}

.real-time-layer-toggle:hover,
.real-time-layer-toggle.is-active,
.real-time-layer-toggle:has(input:checked) {
    border-color: #9bc9c7;
    box-shadow: 0 2px 10px rgba(10, 79, 86, .07);
}
.real-time-layer-toggle.is-active,
.real-time-layer-toggle:has(input:checked) { border-left: 4px solid #08717a; padding-left: .48rem; }

.real-time-layer-toggle input { accent-color: #08717a; }
.real-time-layer-toggle > span { display: grid; gap: .08rem; min-width: 0; }
.real-time-layer-toggle strong { color: var(--rt-ink); font-size: .83rem; }
.real-time-layer-toggle small { color: var(--rt-muted); font-size: .66rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.real-time-layer-toggle small[data-layer-source] { display: none; white-space: normal; }
.real-time-layer-entry.is-settings-open .real-time-layer-toggle small[data-layer-source] { display: block; }
.real-time-layer-toggle b { background: #e8f2f1; border-radius: 999px; color: #35676c; font-size: .7rem; padding: .18rem .42rem; }

.real-time-layer-entry {
    min-width: 0;
    position: relative;
}

.real-time-layer-kind-icon {
    align-items: center;
    background: #edf5f4;
    border: 2px solid #55767a;
    box-sizing: border-box;
    color: #264c51;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: .57rem;
    font-style: normal;
    font-weight: 950;
    height: 1.25rem;
    justify-content: center;
    line-height: 1;
    width: 1.25rem;
}
.real-time-layer-kind-icon.is-hospital { border-color: #c2410c; border-radius: 3px; color: #c2410c; }
.real-time-layer-kind-icon.is-hospital::before { content: "H"; }
.real-time-layer-kind-icon.is-rainfall { background: #dff5ff; border-color: #0284c7; border-radius: 50% 50% 50% 8%; transform: rotate(-45deg); }
.real-time-layer-kind-icon.is-rainfall::before { content: ""; }
.real-time-layer-kind-icon.is-hydro_route { background: transparent; border: 0; border-bottom: 4px solid #087f8c; height: .8rem; transform: skewY(-14deg); }
.real-time-layer-kind-icon.is-hydro_impact { border-color: #f97316; border-radius: 3px; color: #c2410c; }
.real-time-layer-kind-icon.is-hydro_impact::before { content: "%"; }
.real-time-layer-kind-icon.is-wind { background: transparent; border: 0; color: #334155; font-size: 1.15rem; }
.real-time-layer-kind-icon.is-wind::before { content: "↗"; }
.real-time-layer-kind-icon.is-power_interruption { border-color: #b45309; border-radius: 50%; color: #b45309; }
.real-time-layer-kind-icon.is-power_interruption::before { content: "ϟ"; }
.real-time-layer-kind-icon.is-camera { background: #e0f2fe; border-color: #0369a1; border-radius: 3px; color: #0369a1; }
.real-time-layer-kind-icon.is-camera::before { content: "●"; font-size: .55rem; }
.real-time-layer-kind-icon.is-road { background: transparent; border: 0; border-bottom: 4px double #b42318; height: .72rem; }
.real-time-layer-kind-icon.is-weather_alert,
.real-time-layer-kind-icon.is-weather_forecast { border-color: #7c3aed; border-radius: 2px; transform: rotate(45deg); }
.real-time-layer-kind-icon.is-weather_alert::before,
.real-time-layer-kind-icon.is-weather_forecast::before { content: "!"; transform: rotate(-45deg); }
.real-time-layer-kind-icon.is-satellite { background: linear-gradient(135deg,#1d4ed8,#dbeafe); border-color: #1d4ed8; border-radius: 2px; }

.real-time-layer-pin {
    background: #fff;
    border: 1px solid #cbdcda;
    border-radius: 999px;
    color: #587579;
    cursor: pointer;
    font-size: .58rem;
    font-weight: 800;
    margin: -.2rem .25rem .42rem auto;
    padding: .18rem .42rem;
}

.real-time-layer-settings-toggle {
    background: transparent;
    border: 0;
    color: #557277;
    cursor: pointer;
    font-size: .58rem;
    font-weight: 800;
    margin: -.2rem .2rem .42rem 0;
    padding: .18rem .3rem;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.real-time-layer-entry.is-settings-open .real-time-layer-settings-toggle { color: #08717a; }
.real-time-layer-entry:not(.is-settings-open) .real-time-rain-controls,
.real-time-layer-entry:not(.is-settings-open) .real-time-radar-controls,
.real-time-layer-entry:not(.is-settings-open) .power-interruption-legend { display: none !important; }

.real-time-layer-pin.is-pinned { background: #dff5f1; border-color: #62a99f; color: #096c62; }

.real-time-rain-controls {
    background: #f8fbfb;
    border: 1px solid #d6e5e5;
    border-radius: 9px;
    display: grid;
    gap: .6rem;
    margin: -.1rem .2rem .65rem;
    padding: .58rem .62rem;
}

.real-time-layer-toggle:not(.is-active) ~ .real-time-rain-controls {
    display: none;
}

.real-time-rain-legend {
    display: grid;
    gap: .3rem .5rem;
    grid-template-columns: 1fr 1fr;
}

.real-time-rain-legend > strong,
.real-time-rain-legend > small {
    grid-column: 1 / -1;
}

.real-time-rain-legend > strong {
    color: var(--rt-ink);
    font-size: .67rem;
}

.real-time-rain-legend > span {
    align-items: center;
    color: #475467;
    display: flex;
    font-size: .61rem;
    gap: .3rem;
    line-height: 1.2;
}

.real-time-rain-legend i {
    border: 1px solid rgba(15, 23, 42, .28);
    border-radius: 50%;
    display: inline-block;
    flex: 0 0 auto;
    height: .62rem;
    width: .62rem;
}

.real-time-rain-legend i.is-blue { background: #0284c7; }
.real-time-rain-legend i.is-green { background: #16a34a; }
.real-time-rain-legend i.is-yellow { background: #eab308; }
.real-time-rain-legend i.is-orange { background: #ea580c; }
.real-time-rain-legend i.is-red { background: #dc2626; }

.real-time-rain-legend > small {
    color: var(--rt-muted);
    font-size: .59rem;
    line-height: 1.3;
}

.real-time-layer-opacity {
    border-top: 1px solid #d6e5e5;
    padding-top: .5rem;
}

.real-time-radar-controls {
    align-items: center;
    background: #eef6f8;
    border: 1px solid #c8dfe4;
    border-radius: 9px;
    display: grid;
    gap: .38rem .55rem;
    grid-template-columns: auto minmax(0, 1fr);
    margin: -.1rem .2rem .65rem;
    padding: .55rem .6rem;
}

.real-time-layer-panel .real-time-layer-toggle:not(.is-active) ~ .real-time-radar-controls {
    display: none;
}

.real-time-radar-controls button {
    font-size: .65rem;
    min-width: 5.5rem;
    padding: .28rem .45rem;
}

.real-time-radar-controls input[type="range"] {
    accent-color: #08717a;
    min-width: 0;
    width: 100%;
}

.real-time-radar-controls time {
    color: #294a58;
    font-size: .64rem;
    font-weight: 700;
}

.real-time-radar-controls small {
    color: var(--rt-muted);
    font-size: .6rem;
    grid-column: 1 / -1;
    line-height: 1.3;
}

.real-time-radar-controls :disabled {
    cursor: not-allowed;
    opacity: .58;
}

.real-time-layer-panel .power-interruption-layer-status,
.real-time-layer-panel .real-time-layer-status {
    font-size: .63rem;
    line-height: 1.3;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
}

.real-time-layer-panel .power-interruption-layer-status.is-loading,
.real-time-layer-panel .real-time-layer-status.is-loading { color: #175cd3; }
.real-time-layer-panel .power-interruption-layer-status.is-success,
.real-time-layer-panel .real-time-layer-status.is-success { color: #067647; }
.real-time-layer-panel .power-interruption-layer-status.is-warning,
.real-time-layer-panel .real-time-layer-status.is-warning { color: #b54708; }
.real-time-layer-panel .power-interruption-layer-status.is-error,
.real-time-layer-panel .real-time-layer-status.is-error { color: #b42318; }

.real-time-layer-toggle.is-unavailable {
    background: #fff7f6;
    border-color: #f4c7c3;
}

.real-time-layer-toggle:has(input:disabled) {
    cursor: not-allowed;
}

.real-time-layer-panel .power-interruption-legend {
    background: #fff;
    border: 1px solid #d8e3e3;
    border-radius: 8px;
    display: grid;
    gap: .28rem .55rem;
    grid-template-columns: 1fr 1fr;
    margin: -.1rem .2rem .65rem;
    padding: .55rem .6rem;
}

.real-time-layer-panel .real-time-layer-toggle:not(.is-active) ~ .power-interruption-legend {
    display: none;
}

.real-time-layer-panel .power-interruption-legend > strong,
.real-time-layer-panel .power-interruption-legend > small {
    grid-column: 1 / -1;
}

.real-time-layer-panel .power-interruption-legend > strong {
    color: var(--rt-ink);
    font-size: .67rem;
}

.real-time-layer-panel .power-interruption-legend > span {
    align-items: center;
    color: #475467;
    display: flex;
    font-size: .61rem;
    gap: .3rem;
    line-height: 1.2;
}

.real-time-layer-panel .power-interruption-legend i {
    clip-path: polygon(57% 0, 15% 54%, 43% 54%, 31% 100%, 85% 42%, 57% 42%, 78% 0);
    display: inline-block;
    flex: 0 0 auto;
    height: .78rem;
    width: .58rem;
}

.real-time-layer-panel .power-interruption-legend i.is-green { background: #16a34a; transform: scale(.78); }
.real-time-layer-panel .power-interruption-legend i.is-yellow { background: #facc15; transform: scale(.9); }
.real-time-layer-panel .power-interruption-legend i.is-red { background: #d92d20; }
.real-time-layer-panel .power-interruption-legend i.is-context {
    background: #98a2b3;
    opacity: .72;
}

.real-time-layer-panel .power-interruption-legend > small {
    color: var(--rt-muted);
    font-size: .59rem;
    line-height: 1.3;
}

@media (max-width: 460px) {
    .real-time-shell.integrated-map-shell-fullscreen .real-time-layer-panel .power-interruption-legend {
        grid-template-columns: 1fr;
    }
}

.real-time-cartography-note {
    background: #fff8e8;
    border: 1px solid #ead7a5;
    border-radius: 10px;
    color: #654e18;
    display: grid;
    font-size: .7rem;
    gap: .2rem;
    line-height: 1.4;
    margin-top: 1rem;
    padding: .7rem .75rem;
}
.real-time-cartography-note > summary,
.real-time-source-note > summary {
    color: #315d63;
    cursor: pointer;
    font-size: .68rem;
    font-weight: 850;
    list-style: none;
}
.real-time-cartography-note > summary::-webkit-details-marker,
.real-time-source-note > summary::-webkit-details-marker { display: none; }
.real-time-cartography-note > summary::before,
.real-time-source-note > summary::before { content: "▸"; display: inline-block; margin-right: .3rem; transition: transform .15s ease; }
.real-time-cartography-note[open] > summary::before,
.real-time-source-note[open] > summary::before { transform: rotate(90deg); }
.real-time-cartography-note:not([open]),
.real-time-source-note:not([open]) { padding: .55rem .65rem; }

.real-time-symbol-guide {
    display: grid;
    gap: .38rem .55rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: .35rem 0 .45rem;
}

.real-time-symbol-guide > span {
    align-items: center;
    color: #3f3a2a;
    display: flex;
    font-size: .68rem;
    font-weight: 750;
    gap: .38rem;
}

.real-time-symbol-guide i {
    align-items: center;
    background: #fff;
    border: 2px solid #fff;
    box-shadow: 0 0 0 2px #64748b;
    box-sizing: border-box;
    color: #fff;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: .58rem;
    font-style: normal;
    font-weight: 900;
    height: 16px;
    justify-content: center;
    line-height: 1;
    width: 16px;
}

.real-time-symbol-guide .is-hospital { background: #7c3aed; border-radius: 2px; box-shadow: 0 0 0 2px #5b21b6; }
.real-time-symbol-guide .is-health-report { background: #b91c1c; border-radius: 50%; box-shadow: 0 0 0 2px #7f1d1d; }
.real-time-symbol-guide .is-vulnerable {
    background: #fff;
    border-color: #0f766e;
    border-radius: 50% 50% 28% 28% / 40% 40% 22% 22%;
    box-shadow: 0 0 0 1px #fff;
    color: #0f172a;
    font-size: .5rem;
    height: 18px;
}
.real-time-symbol-guide .is-rain {
    background: #16a34a;
    border-color: #fff;
    border-radius: 8px;
    box-shadow: 0 0 0 3px #b91c1c;
    height: 10px;
    margin-top: 4px;
    position: relative;
    width: 19px;
}
.real-time-symbol-guide .is-rain::before,
.real-time-symbol-guide .is-rain::after {
    background: inherit;
    border-radius: 50%;
    content: "";
    position: absolute;
}
.real-time-symbol-guide .is-rain::before { height: 9px; left: 2px; top: -5px; width: 9px; }
.real-time-symbol-guide .is-rain::after { height: 12px; right: 1px; top: -8px; width: 12px; }
.real-time-symbol-guide .is-river { background: transparent; border: 0; border-top: 4px solid #2563eb; box-shadow: none; height: 4px; width: 19px; }
.real-time-symbol-guide .is-wind { color: #b91c1c; border: 0; box-shadow: none; background: transparent; font-size: 1rem; }
.real-time-symbol-guide .is-energy { background: transparent; border: 0; box-shadow: none; color: #d92d20; font-size: 1rem; }
.real-time-symbol-guide .is-impact { background: #ea580c; border-radius: 3px; box-shadow: 0 0 0 2px #9a3412; }
.real-time-symbol-guide .is-area { background: rgba(251,146,60,.25); border: 2px dashed #c2410c; border-radius: 3px; box-shadow: none; }

.real-time-rain-trend-key {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .65rem;
    margin-top: .35rem;
}

.real-time-rain-trend-key span {
    align-items: center;
    display: inline-flex;
    gap: .25rem;
}

.real-time-rain-trend-key i {
    background: #fff;
    border: 3px solid #b91c1c;
    border-radius: 50%;
    display: inline-block;
    height: .7rem;
    width: .7rem;
}

.real-time-rain-trend-key i.is-reducing { border-color: #15803d; }

.real-time-river-status-key {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: .3rem .65rem;
    margin: .2rem 0 .35rem;
}

.real-time-river-status-key span {
    align-items: center;
    display: inline-flex;
    gap: .25rem;
}

.real-time-river-status-key i {
    border-top: 4px solid #0891b2;
    display: inline-block;
    height: 0;
    width: 1.2rem;
}

.real-time-river-status-key i.is-falling { border-color: #16a34a; }
.real-time-river-status-key i.is-rising { border-color: #2563eb; }
.real-time-river-status-key i.is-attention { border-color: #eab308; }
.real-time-river-status-key i.is-alert { border-color: #f97316; }
.real-time-river-status-key i.is-flood { border-color: #dc2626; }

.real-time-source-note {
    background: #e8f1f5;
    border-radius: 10px;
    color: #294a58;
    display: grid;
    font-size: .73rem;
    gap: .25rem;
    margin-top: 1rem;
    padding: .75rem;
}

.real-time-source-note a { color: #086c75; font-weight: 700; }

.real-time-radar-note {
    border: 1px solid #b9d6dd;
}

.real-time-map-canvas {
    border: 0;
    border-radius: 0;
    height: 650px;
    min-height: 650px;
}

.real-time-map-canvas .leaflet-tile-pane { filter: grayscale(.32) saturate(.62) brightness(1.07) contrast(.9); }

.power-interruption-bolt-marker {
    background: transparent;
    border: 0;
    filter: drop-shadow(0 1px 1px rgba(15, 23, 42, .42));
}

.power-interruption-bolt-marker svg {
    display: block;
    height: 100%;
    overflow: visible;
    width: 100%;
}

.power-interruption-bolt-marker text {
    font-family: Arial, Helvetica, sans-serif;
    paint-order: stroke;
    pointer-events: none;
    stroke: rgba(255, 255, 255, .28);
    stroke-width: .45px;
}

.power-interruption-bolt-marker.is-yellow text { stroke: rgba(255, 255, 255, .72); }
.power-interruption-bolt-marker.is-context { opacity: .72; }

.real-time-layer-drawer-toggle {
    align-items: center;
    background: rgba(9,78,87,.94);
    border: 1px solid rgba(255,255,255,.75);
    border-radius: 8px;
    box-shadow: 0 3px 12px rgba(15,23,42,.2);
    color: #fff;
    cursor: pointer;
    display: none;
    font-size: .68rem;
    font-weight: 900;
    gap: .35rem;
    left: 44px;
    padding: .5rem .65rem;
    position: absolute;
    right: auto;
    top: .7rem;
    z-index: 900;
}
.real-time-layer-drawer-toggle::before { content: "☰"; font-size: .85rem; }
.real-time-shell.is-layer-panel-collapsed:not(.integrated-map-clean-view) .real-time-layer-drawer-toggle,
.real-time-shell.integrated-map-clean-view .real-time-layer-drawer-toggle { display: inline-flex; }

.real-time-map-floating-controls {
    align-items: center;
    border-left: 1px solid #cbdcda;
    display: none;
    gap: .45rem;
    padding-left: .55rem;
}
.real-time-map-floating-controls > strong {
    color: #174e55;
    font-size: .6rem;
    letter-spacing: .04em;
    white-space: nowrap;
    text-transform: uppercase;
}
.real-time-map-floating-controls label {
    align-items: center;
    color: #52666a;
    display: flex;
    font-size: .58rem;
    font-weight: 800;
    gap: .25rem;
    white-space: nowrap;
}
.real-time-map-reload-floating {
    align-self: center;
    min-height: 34px;
    padding: .4rem .65rem;
    border: 1px solid #aebfbd;
    border-radius: .4rem;
    background: #fff;
    color: #24413e;
    cursor: pointer;
    font: inherit;
    font-size: .7rem;
    font-weight: 700;
    white-space: nowrap;
}
.real-time-map-reload-floating:hover,
.real-time-map-reload-floating:focus-visible {
    border-color: var(--sie-primary);
    color: var(--sie-primary-ink);
    outline: none;
}
[data-integrated-map-reload-layers][aria-busy="true"] {
    cursor: wait;
    opacity: .72;
}
.real-time-map-floating-controls select {
    background: #fff;
    border: 1px solid #b9cfcd;
    border-radius: 7px;
    color: #173f45;
    font: inherit;
    font-size: .64rem;
    min-width: 0;
    padding: .27rem .38rem;
}
.real-time-shell.integrated-map-shell-fullscreen .real-time-map-floating-controls { display: flex; }

.real-time-map-quick-filters {
    align-items: center;
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    background: rgba(255,255,255,.94);
    border: 1px solid rgba(71,104,108,.3);
    border-radius: 9px;
    box-shadow: 0 4px 16px rgba(15,23,42,.18);
    display: flex;
    gap: .3rem;
    padding: .3rem .4rem;
    position: absolute;
    right: 12px;
    top: 12px;
    z-index: 850;
}
.real-time-map-filter-options {
    align-items: center;
    display: flex;
    gap: .3rem;
    min-width: 0;
}
.real-time-map-quick-filters strong { color: #52666a; font-size: .6rem; text-transform: uppercase; }
.real-time-map-quick-filters button {
    background: #fff;
    border: 1px solid #b9cfcd;
    border-radius: 999px;
    color: #35585d;
    cursor: pointer;
    font-size: .61rem;
    font-weight: 850;
    padding: .27rem .45rem;
    white-space: nowrap;
}
.real-time-map-quick-filters button.is-active { background: #0b6973; border-color: #0b6973; color: #fff; }
.real-time-map-quick-filters button.is-grouping {
    border-radius: 7px;
    margin-left: .18rem;
}

.real-time-municipality-cluster {
    background: linear-gradient(145deg, #0b6973, #164e63);
    border-color: rgba(255,255,255,.94);
}
.real-time-municipality-cluster.has-critical {
    border-color: #fecaca;
    box-shadow: 0 0 0 4px rgba(185,28,28,.34), 0 5px 14px rgba(15,23,42,.3);
}
.real-time-critical-occurrence-marker {
    filter: drop-shadow(0 0 5px rgba(127,29,29,.75));
}

.real-time-municipality-summary {
    color: #253f44;
    display: grid;
    gap: .55rem;
    min-width: 270px;
}
.real-time-municipality-summary > header {
    border-bottom: 1px solid #d8e5e5;
    display: grid;
    gap: .08rem;
    padding-bottom: .42rem;
}
.real-time-municipality-summary > header span {
    color: #607579;
    font-size: .62rem;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.real-time-municipality-summary > header strong { color: #0b5962; font-size: 1rem; }
.real-time-municipality-summary ul { display: grid; gap: .32rem; list-style: none; margin: 0; padding: 0; }
.real-time-municipality-summary li { align-items: flex-start; display: grid; gap: .42rem; grid-template-columns: 1.2rem 1fr; }
.real-time-municipality-summary li > i { font-style: normal; text-align: center; }
.real-time-municipality-summary li > span { display: grid; gap: .05rem; }
.real-time-municipality-summary li b { color: #334e52; font-size: .66rem; }
.real-time-municipality-summary li small { color: #5d7074; font-size: .68rem; line-height: 1.3; }
.real-time-municipality-summary > div { display: flex; flex-wrap: wrap; gap: .4rem; }
.real-time-municipality-summary button {
    background: #0b6973;
    border: 1px solid #0b6973;
    border-radius: 7px;
    color: #fff;
    cursor: pointer;
    font-size: .68rem;
    font-weight: 850;
    padding: .4rem .58rem;
}
.real-time-municipality-summary button + button { background: #fff; color: #0b6973; }
.real-time-municipality-summary > small { color: #6b7d80; font-size: .61rem; line-height: 1.3; }

.real-time-fixed-map-legend { border-right: 1px solid #cbdcda; padding-right: .5rem; }
.real-time-fixed-map-legend b { color: #204f55; }

.real-time-context-legend {
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    background: rgba(255,255,255,.82);
    border: 1px solid rgba(71,104,108,.24);
    border-radius: 9px;
    bottom: 22px;
    box-shadow: 0 3px 12px rgba(15,23,42,.16);
    display: grid;
    gap: .35rem;
    left: 12px;
    max-width: min(680px, calc(100% - 24px));
    padding: .42rem .52rem;
    pointer-events: auto;
    position: absolute;
    z-index: 730;
}
.real-time-context-legend-toggle {
    align-items: center;
    background: transparent;
    border: 0;
    color: #204f55;
    cursor: pointer;
    display: inline-flex;
    font-size: .63rem;
    gap: .35rem;
    justify-self: start;
    padding: 0;
}
.real-time-context-legend-toggle > span {
    align-items: center;
    background: #0b6973;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-family: Georgia, serif;
    font-size: .58rem;
    font-weight: 900;
    height: 1rem;
    justify-content: center;
    width: 1rem;
}
.real-time-context-legend-toggle::after { content: "▾"; font-size: .72rem; }
.real-time-context-legend.is-collapsed .real-time-context-legend-toggle::after { content: "▴"; }
.real-time-context-legend-content {
    display: flex;
    flex-wrap: wrap;
    gap: .35rem .55rem;
}
.real-time-context-legend.is-collapsed { max-width: max-content; }
.real-time-context-legend-content[hidden] { display: none; }
.real-time-context-legend-content > span { align-items: center; color: #405d62; display: inline-flex; font-size: .59rem; font-weight: 750; gap: .25rem; }
.real-time-context-legend .real-time-layer-kind-icon { height: .9rem; width: .9rem; }
.real-time-context-legend .real-time-severity-key { border-right: 1px solid #cbdcda; margin-right: .1rem; padding-right: .45rem; }
.real-time-severity-key > i { background: #64748b; border-radius: 50%; display: inline-block; height: .48rem; margin-left: .14rem; width: .48rem; }
.real-time-severity-key > i.is-critical { background: #b42318; }
.real-time-severity-key > i.is-risk { background: #ea580c; }
.real-time-severity-key > i.is-attention { background: #d99a00; }
.real-time-severity-key > i.is-improving { background: #078f73; }

.leaflet-tooltip.real-time-feature-location-tooltip {
    background: rgba(255,255,255,.96);
    border: 1px solid #8eb6b8;
    border-radius: 6px;
    box-shadow: 0 3px 10px rgba(15,23,42,.18);
    color: #274b50;
    font-size: .68rem;
    padding: .3rem .42rem;
}
.real-time-feature-location-tooltip__municipality { display: block; white-space: nowrap; }
.leaflet-tooltip.real-time-feature-location-tooltip--permanent { pointer-events: auto; }
.real-time-feature-location-tooltip--permanent .real-time-feature-location-tooltip__municipality { display: none; }
.real-time-feature-location-tooltip--permanent:hover .real-time-feature-location-tooltip__municipality { display: block; }
.integrated-wind-speed-label .real-time-feature-location-tooltip__municipality {
    border-top: 1px solid #cbdcda;
    margin-top: .3rem;
    padding-top: .24rem;
}

.real-time-shell.is-layer-panel-collapsed .real-time-layer-panel { display: none; }
@media (min-width: 1251px) {
    .real-time-shell:not(.integrated-map-shell-fullscreen).is-layer-panel-collapsed .real-time-map-layout { grid-template-columns: minmax(380px,1fr) 310px; }
    .real-time-shell:not(.integrated-map-shell-fullscreen).is-layer-panel-collapsed .real-time-map-canvas { grid-column: 1; }
    .real-time-shell:not(.integrated-map-shell-fullscreen).is-layer-panel-collapsed .real-time-decision-panel { grid-column: 2; }
}

.real-time-selected-context {
    background: #fff;
    border: 1px solid #9bc9c7;
    border-left: 5px solid #08717a;
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(15,23,42,.1);
    display: grid;
    gap: .55rem;
    padding: .7rem;
}
.real-time-selected-context[hidden] { display: none; }
.real-time-selected-context > header { align-items: flex-start; display: flex; gap: .5rem; justify-content: space-between; }
.real-time-selected-context > header div { display: grid; gap: .12rem; }
.real-time-selected-context > header span { color: #08717a; font-size: .59rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.real-time-selected-context > header h3 { color: #17383e; font-size: .95rem; line-height: 1.2; margin: 0; }
.real-time-selected-context > header button { background: transparent; border: 0; color: #667d81; cursor: pointer; font-size: 1.1rem; }
.real-time-selected-context > p { color: #52696e; font-size: .69rem; line-height: 1.4; margin: 0; }
.real-time-selected-summary { display: grid; gap: .3rem; grid-template-columns: repeat(2,minmax(0,1fr)); }
.real-time-selected-summary span { background: #edf6f5; border-radius: 7px; color: #49656a; display: grid; font-size: .57rem; padding: .35rem .4rem; }
.real-time-selected-summary strong { color: #17383e; font-size: .82rem; }
.real-time-selected-evidence,
.real-time-selected-action,
.real-time-selected-related { display: grid; gap: .3rem; }
.real-time-selected-evidence > strong,
.real-time-selected-action > strong,
.real-time-selected-related > strong { color: #315d63; font-size: .61rem; letter-spacing: .04em; text-transform: uppercase; }
.real-time-selected-evidence ul,
.real-time-selected-action ul { color: #4d6469; font-size: .65rem; line-height: 1.4; margin: 0; padding-left: 1rem; }
.real-time-selected-action { background: #fff8e8; border-left: 3px solid #d99a00; border-radius: 7px; padding: .48rem .52rem; }
.real-time-selected-related button { background: #f5f9f9; border: 1px solid #d5e4e3; border-radius: 6px; color: #315d63; cursor: pointer; font-size: .62rem; font-weight: 750; padding: .35rem .4rem; text-align: left; }

.rt-map-muted { filter: grayscale(.45) saturate(.45); opacity: .32 !important; transition: opacity .2s ease; }
.rt-map-new-alert { animation: rt-map-alert-pulse 1.15s ease-in-out 3; filter: drop-shadow(0 0 4px #fff); }
@keyframes rt-map-alert-pulse { 0%,100% { opacity: 1; } 50% { opacity: .36; filter: drop-shadow(0 0 10px #dc2626); } }

.real-time-alert-pulse-marker { background: transparent; border: 0; }
.real-time-alert-pulse-marker > span {
    animation: rt-map-ring-pulse 1.25s ease-out 4;
    border: 4px solid #d99a00;
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(255,255,255,.88);
    display: block;
    height: 38px;
    margin: 4px;
    width: 38px;
}
.real-time-alert-pulse-marker.is-risk > span { border-color: #ea580c; }
.real-time-alert-pulse-marker.is-critical > span { border-color: #b42318; }
@keyframes rt-map-ring-pulse {
    0% { opacity: .95; transform: scale(.55); }
    70% { opacity: .4; transform: scale(1.35); }
    100% { opacity: 0; transform: scale(1.55); }
}

@media (prefers-reduced-motion: reduce) {
    .rt-map-new-alert,
    .real-time-alert-pulse-marker > span { animation: none !important; }
}

.real-time-decision-panel {
    display: grid;
    gap: 1.15rem;
}

.real-time-alert-queue-section {
    border-bottom: 1px solid var(--rt-border);
    padding-bottom: 1rem;
}

.real-time-alert-queue-title h3 { align-items: center; display: flex; justify-content: space-between; }
.real-time-alert-queue-title h3 b { background: #dceceb; border-radius: 999px; color: #0b6269; font-size: .65rem; padding: .18rem .43rem; }
.real-time-alert-filters { display: flex; flex-wrap: wrap; gap: .18rem; margin-bottom: .55rem; }
.real-time-alert-filters button { background: #eaf2f1; font-size: .59rem; padding: .3rem .4rem; }
.real-time-alert-queue { display: grid; gap: .55rem; }

.real-time-alert-card {
    background: #fff;
    border: 1px solid #d9e4e3;
    border-left: 5px solid #d99a00;
    border-radius: 9px;
    box-shadow: 0 1px 3px rgba(15,23,42,.04);
    display: grid;
    gap: .45rem;
    padding: .65rem;
}

.real-time-alert-card.is-risk { border-left-color: #ea580c; }
.real-time-alert-card.is-critical { border-left-color: #b42318; }
.real-time-alert-card.has-change { animation: rt-card-attention 1.2s ease-out 2; }
@keyframes rt-card-attention { 50% { box-shadow: 0 0 0 4px rgba(180,35,24,.14); } }
.real-time-alert-card header { display: grid; gap: .28rem; }
.real-time-alert-card header > div { display: flex; flex-wrap: wrap; gap: .25rem; }
.real-time-alert-card header span { background: #f4e8cf; border-radius: 999px; color: #7a4b00; font-size: .53rem; font-weight: 850; padding: .16rem .35rem; text-transform: uppercase; }
.real-time-alert-card.is-risk header .is-severity { background: #ffedd5; color: #9a3412; }
.real-time-alert-card.is-critical header .is-severity { background: #fee2e2; color: #991b1b; }
.real-time-alert-card header .is-change { background: #fef3c7; color: #92400e; }
.real-time-alert-card header > strong { color: var(--rt-ink); font-size: .76rem; line-height: 1.3; }
.real-time-alert-card > p { color: #4e686c; font-size: .66rem; line-height: 1.4; margin: 0; }
.real-time-alert-facts { background: #f6f9f9; border-radius: 7px; display: grid; gap: .3rem; padding: .45rem; }
.real-time-alert-facts span { color: #4e676b; font-size: .61rem; line-height: 1.3; }
.real-time-alert-facts b { color: #123e43; display: block; font-size: .53rem; letter-spacing: .04em; text-transform: uppercase; }
.real-time-alert-guidance { background: #fff7e6; border-left: 3px solid #d99a00; border-radius: 5px; display: grid; gap: .12rem; padding: .42rem .5rem; }
.real-time-alert-guidance b { color: #7a4b00; font-size: .55rem; text-transform: uppercase; }
.real-time-alert-guidance span { color: #624917; font-size: .63rem; line-height: 1.35; }
.real-time-alert-card footer { display: flex; flex-wrap: wrap; gap: .24rem; }
.real-time-alert-card footer button { background: #fff; border: 1px solid #cbdcda; border-radius: 6px; color: #285d63; cursor: pointer; font-size: .56rem; font-weight: 800; padding: .28rem .36rem; }
.real-time-alert-card footer button:first-child { background: #0b727a; border-color: #0b727a; color: #fff; }
.real-time-alert-empty { color: #60777a; display: grid; font-size: .65rem; gap: .15rem; padding: .8rem .35rem; text-align: center; }

.real-time-alert-toast {
    animation: rt-toast-in .28s ease-out;
    background: #fff;
    border: 2px solid #ea580c;
    border-left-width: 7px;
    border-radius: 12px;
    box-shadow: 0 18px 45px rgba(15,23,42,.28);
    display: grid;
    gap: .35rem;
    max-width: min(440px, calc(100% - 32px));
    padding: .85rem 1rem;
    position: absolute;
    right: 330px;
    top: 14px;
    z-index: 1100;
}
.real-time-alert-toast[hidden] { display: none; }
.real-time-alert-toast.is-critical { border-color: #b42318; }
.real-time-alert-toast > span { color: #b42318; font-size: .6rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.real-time-alert-toast > strong { color: #202f33; font-size: .9rem; padding-right: 1rem; }
.real-time-alert-toast > p { color: #52666a; font-size: .7rem; line-height: 1.4; margin: 0; }
.real-time-alert-toast > div { display: flex; gap: .4rem; }
.real-time-alert-toast-close { background: transparent; border: 0; color: #64748b; cursor: pointer; font-size: 1.2rem; position: absolute; right: .45rem; top: .3rem; }
@keyframes rt-toast-in { from { opacity: 0; transform: translateY(-14px); } }

.real-time-clean-map-exit {
    align-items: center;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(15,23,42,.24);
    border-radius: 8px;
    box-shadow: 0 3px 12px rgba(15,23,42,.2);
    color: #174e55;
    cursor: pointer;
    display: none;
    font-size: .72rem;
    font-weight: 850;
    gap: .3rem;
    padding: .55rem .75rem;
    left: auto;
    position: absolute;
    right: .75rem;
    top: .75rem;
    z-index: 1200;
}

.real-time-clean-map-exit::before { content: "☰"; font-size: .9rem; }

.real-time-shell.integrated-map-clean-view .real-time-map-quick-filters {
    right: 170px;
}

@media (max-width: 1200px) {
    .real-time-shell.integrated-map-shell-fullscreen .real-time-map-quick-filters,
    .real-time-shell.integrated-map-clean-view .real-time-map-quick-filters {
        align-items: stretch;
        flex-direction: column;
        left: 12px;
        max-width: none;
        right: 12px;
        top: 62px;
    }
    .real-time-map-filter-options,
    .real-time-map-floating-controls {
        min-width: 0;
        overflow-x: auto;
        scrollbar-width: thin;
    }
    .real-time-map-filter-options { padding-bottom: .12rem; }
    .real-time-map-filter-options > *,
    .real-time-map-floating-controls > * { flex: 0 0 auto; }
    .real-time-map-floating-controls {
        border-left: 0;
        border-top: 1px solid #cbdcda;
        flex-wrap: nowrap;
        padding: .35rem 0 0;
    }
}

@media (max-width: 680px) {
    .real-time-map-quick-filters {
        align-items: stretch;
        left: 48px;
        max-height: none;
        max-width: none;
        overflow: visible;
        right: 12px;
        top: 60px;
    }
    .real-time-shell.integrated-map-clean-view .real-time-map-quick-filters { left: 12px; right: 12px; top: 64px; }
    .real-time-map-filter-options { flex-wrap: nowrap; overflow-x: auto; }
    .real-time-map-filter-options > strong { flex: 0 0 auto; }
    .real-time-map-floating-controls { align-items: center; flex-wrap: nowrap; overflow-x: auto; padding: .35rem 0 0; }
    .real-time-map-floating-controls > strong { flex: 0 0 auto; }
    .real-time-map-floating-controls label { flex: 0 0 auto; }
    .real-time-map-floating-controls select { max-width: 150px; }
    .real-time-context-legend { max-height: 28vh; max-width: calc(100% - 24px); }
    .real-time-context-legend:not(.is-ready) .real-time-context-legend-content { display: none; }
    .real-time-context-legend-content { max-height: calc(28vh - 28px); overflow: auto; }
}

.leaflet-popup.real-time-presentation-popup .leaflet-popup-content-wrapper {
    border-radius: 12px;
    box-shadow: 0 14px 36px rgba(15,23,42,.3);
    box-sizing: border-box;
    padding: 0;
    width: 100%;
}

.leaflet-popup.real-time-presentation-popup {
    box-sizing: border-box;
    min-width: 340px !important;
    width: clamp(340px, 32vw, 430px) !important;
}

.leaflet-popup.real-time-presentation-popup .leaflet-popup-content {
    box-sizing: border-box;
    margin: 0;
    max-width: none !important;
    min-width: 0 !important;
    width: 100% !important;
}

.real-time-presentation-explanation {
    color: #334155;
    display: grid;
    font-family: inherit;
    gap: 0;
    min-width: 0;
    overflow: hidden;
    overflow-wrap: normal;
    word-break: normal;
}

.real-time-presentation-explanation strong,
.real-time-presentation-explanation span,
.real-time-presentation-explanation b { word-break: normal; }

@media (max-width: 520px) {
    .leaflet-popup.real-time-presentation-popup {
        min-width: 0 !important;
        width: min(360px, calc(100vw - 42px)) !important;
    }
}

/* Informativo confirmado do novo formulario Vigidesastres */
.vigidesastres-informe-page { max-width: 1700px; margin: 0 auto; }
.vigidesastres-informe-builder { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.vigidesastres-informe-builder h1 { margin: 3px 0 5px; }
.vigidesastres-informe-builder p { max-width: 850px; margin: 0; color: var(--text-muted); }
.vigidesastres-informe-builder-status { min-width: 150px; padding: 12px 16px; border: 1px solid #bbdfc9; border-radius: 12px; background: #effbf3; color: #17683b; text-align: center; }
.vigidesastres-informe-builder-status strong, .vigidesastres-informe-builder-status span { display: block; }
.vigidesastres-informe-builder-status strong { font-size: 26px; line-height: 1; }
.vigidesastres-informe-builder-status span { margin-top: 4px; font-size: 12px; font-weight: 750; }
.vigidesastres-informe-filter-form { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; align-items: end; }
.vigidesastres-informe-headline-field small { color: var(--text-muted); }
.vigidesastres-informe-control-actions { grid-column: 1 / -1; justify-content: flex-end; }

.vigidesastres-informe-document { --informe-blue: #568bc4; --informe-blue-dark: #2f659b; --informe-grid: #4e5459; position: relative; overflow: hidden; padding: 28px 30px 24px; border: 1px solid #d6dade; border-radius: 10px; background: #fff; box-shadow: 0 10px 28px rgba(31, 45, 57, .11); color: #111; font-family: Arial, Helvetica, sans-serif; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.vigidesastres-informe-document::after { content: ""; position: absolute; right: 0; bottom: 0; width: 22px; height: 92px; background: linear-gradient(to bottom, #16864c 0 34%, #b01621 34% 67%, #f7c218 67% 100%); }
.vigidesastres-informe-document-header { display: flex; align-items: center; justify-content: space-between; gap: 30px; margin-bottom: 12px; padding-bottom: 11px; border-bottom: 6px solid #676b6e; }
.vigidesastres-informe-document-title h2 { margin: 0; color: #5d6062; font-size: clamp(22px, 2.1vw, 38px); line-height: 1.05; letter-spacing: -.5px; }
.vigidesastres-informe-document-title p { margin: 5px 0 0; color: #4f5254; font-size: clamp(17px, 1.55vw, 29px); font-weight: 700; line-height: 1.12; }
.vigidesastres-informe-document-title .vigidesastres-informe-notice { font-size: clamp(12px, 1vw, 18px); font-weight: 600; }
.vigidesastres-informe-document-title p span { white-space: nowrap; }
.vigidesastres-informe-brands { display: flex; align-items: center; gap: 24px; flex: 0 0 auto; color: #45484a; }
.vigidesastres-informe-brands > div { display: flex; align-items: center; gap: 8px; }
.vigidesastres-informe-brands > div:first-child strong { color: #d7272b; font-size: 40px; letter-spacing: -3px; }
.vigidesastres-informe-brands span { font-size: 9px; line-height: 1.05; text-transform: uppercase; }
.vigidesastres-informe-rs-mark img { width: 48px; height: 58px; object-fit: contain; }
.vigidesastres-informe-rs-mark strong { font-size: 11px; line-height: 1.05; text-transform: uppercase; }
.vigidesastres-informe-document-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(210px, 27%); gap: 18px; align-items: start; }
.vigidesastres-informe-main-column, .vigidesastres-informe-side-column { display: grid; gap: 25px; min-width: 0; }
.vigidesastres-informe-establishments { margin-top: 25px; }
.vigidesastres-informe-block h3 { margin: 0 0 5px; color: #141414; font-size: 16px; line-height: 1.1; }
.vigidesastres-informe-table-wrap { overflow-x: auto; }
.vigidesastres-informe-sheet-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 11px; line-height: 1.22; }
.vigidesastres-informe-sheet-table th, .vigidesastres-informe-sheet-table td { padding: 5px 6px; border: 1px solid var(--informe-grid); vertical-align: middle; }
.vigidesastres-informe-sheet-table thead th { background: var(--informe-blue); color: #101820; font-size: inherit; font-weight: 800; text-align: center; overflow-wrap: normal; word-break: normal; }
.vigidesastres-informe-sheet-table tbody tr:nth-child(even) td { background: #f1f1f1; }
.vigidesastres-informe-sheet-table tfoot th { background: #bfc1c2; font-weight: 900; text-align: center; }
.vigidesastres-informe-sheet-table td:first-child { text-align: center; font-weight: 700; }
.vigidesastres-informe-damage-table th:nth-child(1) { width: 7%; }
.vigidesastres-informe-damage-table th:nth-child(2) { width: 21%; }
.vigidesastres-informe-damage-table th:nth-child(3) { width: 20%; }
.vigidesastres-informe-damage-table th:nth-child(4) { width: 52%; }
.vigidesastres-informe-damage-table td { vertical-align: top; overflow-wrap: anywhere; }
.vigidesastres-informe-damage-table td:nth-child(3) { text-align: center; font-weight: 700; }
.vigidesastres-informe-damage-table td:nth-child(4) { text-align: left; font-weight: 400; line-height: 1.45; }
.vigidesastres-informe-footnote { margin: 7px 0 0; font-size: 9px; line-height: 1.25; }
.vigidesastres-informe-establishment-detail-table { font-size: 9px; }
.vigidesastres-informe-establishment-detail-table th:nth-child(1) { width: 5%; }
.vigidesastres-informe-establishment-detail-table th:nth-child(2) { width: 11%; }
.vigidesastres-informe-establishment-detail-table th:nth-child(3) { width: 16%; }
.vigidesastres-informe-establishment-detail-table th:nth-child(4) { width: 10%; }
.vigidesastres-informe-establishment-detail-table th:nth-child(5) { width: 24%; }
.vigidesastres-informe-establishment-detail-table th:nth-child(n+6) { width: 8.5%; }
.vigidesastres-informe-establishment-detail-table td:nth-child(2),
.vigidesastres-informe-establishment-detail-table td:nth-child(3),
.vigidesastres-informe-establishment-detail-table td:nth-child(5) { text-align: left; font-weight: 400; overflow-wrap: anywhere; }
.vigidesastres-informe-establishment-detail-table td:nth-child(4),
.vigidesastres-informe-establishment-detail-table td:nth-child(n+6) { text-align: center; font-weight: 700; }
.vigidesastres-informe-negative-block > p { margin: 0 0 5px; font-size: 15px; line-height: 1.12; text-align: center; }
.vigidesastres-informe-negative-block > p strong { text-decoration: underline; }
.vigidesastres-informe-negative-table th:first-child { width: 24%; }
.vigidesastres-informe-negative-table td:last-child { font-weight: 400; text-align: left; }
.vigidesastres-informe-sheet-empty { padding: 15px !important; color: #666; font-style: italic; text-align: center !important; }
.vigidesastres-informe-summary-list { display: grid; grid-template-columns: 1fr; gap: 7px; margin: 0; }
.vigidesastres-informe-summary-list > div { padding: 8px 9px; border-left: 4px solid var(--informe-blue-dark); background: #eef4fa; }
.vigidesastres-informe-summary-list dt { font-size: 9px; font-weight: 750; text-transform: uppercase; }
.vigidesastres-informe-summary-list dd { margin: 2px 0 0; font-size: 19px; font-weight: 900; }
.vigidesastres-informe-source { margin: 0; padding: 7px 9px; border: 2px solid #1e1e1e; font-size: 9px; line-height: 1.18; }
.vigidesastres-informe-source p { margin: 0; }
.vigidesastres-informe-empty { display: flex; gap: 8px; align-items: center; margin-bottom: 14px; padding: 10px 12px; border: 1px solid #e5b864; background: #fff8e8; font-size: 12px; }

@media (max-width: 1150px) {
  .vigidesastres-informe-filter-form { grid-template-columns: 1fr 1fr; }
  .vigidesastres-informe-document-grid { grid-template-columns: 1fr; }
  .vigidesastres-informe-brands { display: none; }
}

@media (max-width: 680px) {
  .vigidesastres-informe-builder { align-items: flex-start; flex-direction: column; }
  .vigidesastres-informe-filter-form { grid-template-columns: 1fr; }
  .vigidesastres-informe-document { padding: 18px 14px 22px; }
  .vigidesastres-informe-document-title p span { display: block; margin-top: 3px; }
  .vigidesastres-informe-sheet-table { min-width: 760px; }
}

@media print {
  .vigidesastres-informe-page { display: block; max-width: none; }
  .vigidesastres-informe-document { display: block; overflow: visible; padding: 0 8px 0 0; border: 0; border-radius: 0; box-shadow: none; break-before: auto; page-break-before: auto; }
  .vigidesastres-informe-document-header { margin-bottom: 7px; padding-bottom: 6px; border-bottom-width: 4px; }
  .vigidesastres-informe-document-title h2 { font-size: 23px; }
  .vigidesastres-informe-document-title p { font-size: 18px; }
  .vigidesastres-informe-brands { display: flex; gap: 15px; }
  .vigidesastres-informe-brands > div:first-child strong { font-size: 30px; }
  .vigidesastres-informe-document-grid { display: grid; grid-template-columns: minmax(0, 1fr) 27%; gap: 12px; }
  .vigidesastres-informe-main-column,
  .vigidesastres-informe-side-column { display: block; }
  .vigidesastres-informe-main-column > *, .vigidesastres-informe-side-column > * { margin-bottom: 10px; }
  .vigidesastres-informe-block { break-inside: auto; page-break-inside: auto; }
  .vigidesastres-informe-summary-list, .vigidesastres-informe-source { break-inside: avoid; page-break-inside: avoid; }
  .vigidesastres-informe-block h3 { font-size: 11px; }
  .vigidesastres-informe-table-wrap { overflow: visible; }
  .vigidesastres-informe-sheet-table { min-width: 0; font-size: 7px; }
  .vigidesastres-informe-damage-table { font-size: 9px; }
  .vigidesastres-informe-sheet-table thead { display: table-header-group; }
  .vigidesastres-informe-sheet-table tfoot { display: table-row-group; }
  .vigidesastres-informe-sheet-table tr { break-inside: avoid; page-break-inside: avoid; }
  .vigidesastres-informe-damage-table tbody tr { break-inside: auto; page-break-inside: auto; }
  .vigidesastres-informe-sheet-table th, .vigidesastres-informe-sheet-table td { padding: 2px 3px; }
  .vigidesastres-informe-negative-block > p { font-size: 9px; }
  .vigidesastres-informe-footnote { margin-top: 4px; font-size: 6.5px; }
  .vigidesastres-informe-summary-list { gap: 4px; }
  .vigidesastres-informe-summary-list > div { padding: 5px 7px; border-left-width: 3px; }
  .vigidesastres-informe-summary-list dt { font-size: 8px; }
  .vigidesastres-informe-summary-list dd { font-size: 16px; }
  .vigidesastres-informe-source { margin: 7px 0 0; padding: 4px 6px; font-size: 7.5px; }
  .vigidesastres-informe-document::after { width: 12px; height: 70px; }
}

.vigidesastres-informative-tabs {
  display: flex;
  gap: 6px;
  padding: 6px;
  overflow-x: auto;
  border: 1px solid var(--sie-line);
  border-radius: 10px;
  background: #fff;
}

.vigidesastres-informative-tabs .panel-tab {
  flex: 1 0 180px;
  padding: 10px 14px;
  border-radius: 7px;
  color: var(--sie-muted);
  font-weight: 750;
  text-align: center;
  text-decoration: none;
}

.vigidesastres-informative-tabs .panel-tab:hover {
  background: #f2f7f5;
  color: var(--sie-primary);
}

.vigidesastres-informative-tabs .panel-tab.is-active {
  background: var(--sie-primary);
  color: #fff;
}

.vigidesastres-executive-page {
  max-width: 1700px;
  margin: 0 auto;
}

.vigidesastres-executive-filter-form {
  display: grid;
  gap: 16px;
}

.vigidesastres-executive-filter-form .filter-actions {
  justify-content: flex-end;
}

.vigidesastres-executive-form-section {
  min-width: 0;
  margin: 0;
  padding: 16px;
  border: 1px solid var(--sie-line);
  border-radius: 10px;
  background: #fbfcfd;
}

.vigidesastres-executive-form-section legend {
  display: grid;
  grid-template-columns: 28px auto 1fr;
  align-items: center;
  gap: 8px;
  width: auto;
  margin: 0 0 13px;
  padding: 0 6px;
}

.vigidesastres-executive-form-section legend > span {
  display: inline-grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border-radius: 50%;
  background: var(--sie-primary);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}

.vigidesastres-executive-form-section legend strong {
  color: var(--sie-text);
  font-size: 14px;
}

.vigidesastres-executive-form-section legend small {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 500;
}

.vigidesastres-executive-form-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  align-items: start;
}

.vigidesastres-executive-form-grid.is-header-grid {
  grid-template-columns: minmax(280px, 2fr) minmax(220px, 1fr);
}

.vigidesastres-executive-manual-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.vigidesastres-executive-manual-grid textarea {
  min-height: 92px;
  resize: vertical;
}

.vigidesastres-executive-manual-grid .field small {
  color: var(--sie-muted);
  font-size: 10px;
}

.vigidesastres-executive-occurrence-field {
  grid-column: span 2;
}

.vigidesastres-executive-custom-notice,
.vigidesastres-executive-event-field {
  grid-column: span 2;
}

.vigidesastres-executive-form-grid .field small {
  color: var(--sie-muted);
  font-size: 10px;
}

.vigidesastres-executive-recorte-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  align-self: end;
  grid-column: 3 / -1;
  gap: 10px;
  min-height: 34px;
  color: var(--sie-muted);
  font-size: 10px;
}

.vigidesastres-executive-form-section.is-stale {
  border-color: #e7ba63;
  background: #fffaf0;
}

.vigidesastres-executive-form-section.is-stale .vigidesastres-executive-record-list,
.vigidesastres-executive-form-section.is-stale .vigidesastres-executive-record-tools,
.vigidesastres-executive-form-section.is-stale .vigidesastres-executive-record-pagination {
  opacity: .55;
  pointer-events: none;
}

.vigidesastres-executive-record-tools {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(170px, .45fr) auto;
  gap: 10px;
  align-items: end;
}

.vigidesastres-executive-selection-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding-bottom: 1px;
}

.vigidesastres-executive-record-summary,
.vigidesastres-executive-form-summary,
.vigidesastres-executive-record-pagination {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px 16px;
}

.vigidesastres-executive-record-summary {
  margin: 12px 0 7px;
  color: var(--sie-muted);
  font-size: 11px;
}

.vigidesastres-executive-record-summary [data-executive-selection-count] {
  color: var(--sie-primary);
  font-weight: 800;
}

.vigidesastres-executive-record-list {
  max-height: 390px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.vigidesastres-executive-record-list table {
  min-width: 780px;
}

.vigidesastres-executive-record-list th,
.vigidesastres-executive-record-list td {
  padding: 8px 9px;
  font-size: 11px;
  vertical-align: middle;
}

.vigidesastres-executive-record-list tr[hidden] {
  display: none;
}

.vigidesastres-executive-record-check {
  width: 38px;
  text-align: center;
}

.vigidesastres-executive-record-check input {
  width: 16px;
  height: 16px;
  accent-color: var(--sie-primary);
}

.vigidesastres-executive-record-pagination {
  justify-content: center;
  margin-top: 10px;
  font-size: 11px;
}

.vigidesastres-executive-form-summary {
  padding: 10px 13px;
  border: 1px solid #b9ddd8;
  border-radius: 8px;
  background: #eff8f7;
  color: #315d59;
  font-size: 11px;
}

.vigidesastres-executive-form-actions {
  position: sticky;
  bottom: 8px;
  z-index: 4;
  padding: 10px;
  border: 1px solid var(--sie-line);
  border-radius: 9px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 8px 24px rgba(23, 43, 56, .12);
}

.vigidesastres-executive-document {
  --executive-orange: #e86829;
  --executive-orange-dark: #c94e16;
  --executive-line: #60656a;
  box-sizing: border-box;
  width: min(100%, 180mm);
  min-height: 320mm;
  margin: 0 auto;
  padding: 8mm 8mm 6mm;
  border: 1px solid #d9dde0;
  background: #fff;
  box-shadow: 0 12px 34px rgba(31, 45, 57, .13);
  color: #202326;
  font-family: Arial, Helvetica, sans-serif;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

.vigidesastres-executive-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding-top: 3mm;
  border-top: 4px solid var(--executive-orange);
}

.vigidesastres-executive-header span {
  color: #777;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.vigidesastres-executive-header h2 {
  margin: 5px 0 7px;
  color: #555b5f;
  font-size: 25px;
  line-height: 1;
}

.vigidesastres-executive-header p {
  margin: 2px 0;
  font-size: 11px;
}

.vigidesastres-executive-brand {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #40464a;
  font-size: 9px;
  line-height: 1.08;
  text-transform: uppercase;
}

.vigidesastres-executive-brand img {
  width: 34px;
  height: 42px;
  object-fit: contain;
}

.vigidesastres-executive-counters {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 7mm 0 4mm;
}

.vigidesastres-executive-counters > div {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 7px;
  min-height: 46px;
  padding: 7px 9px;
  border: 1.5px solid var(--executive-orange);
  border-radius: 5px;
}

.vigidesastres-executive-counters strong {
  color: var(--executive-orange-dark);
  font-size: 25px;
  line-height: 1;
}

.vigidesastres-executive-counters span {
  font-size: 8px;
  font-weight: 700;
  line-height: 1.22;
}

.vigidesastres-executive-map-section {
  break-inside: avoid;
  margin-bottom: 4mm;
}

.vigidesastres-executive-section-title {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 2mm;
}

.vigidesastres-executive-section-title h3,
.vigidesastres-executive-section > h3 {
  margin: 0;
  color: #33383b;
  font-size: 11px;
  letter-spacing: .025em;
  text-transform: uppercase;
}

.vigidesastres-executive-section-title span {
  color: #777;
  font-size: 8px;
}

.vigidesastres-executive-map {
  position: relative;
  width: 100%;
  height: 69mm;
  overflow: hidden;
  border: 1px solid #cad0d4;
  border-radius: 4px;
  background:
    radial-gradient(circle at 25% 20%, rgba(255,255,255,.75), transparent 35%),
    linear-gradient(145deg, #dbe4e2, #aebfbc);
}

.vigidesastres-executive-map svg {
  width: 100%;
  height: 100%;
}

.vigidesastres-executive-map .map-area {
  stroke: rgba(59, 66, 70, .58);
  stroke-width: .55;
  vector-effect: non-scaling-stroke;
}

.vigidesastres-executive-map .map-area-unreported { fill: #f3f1e9; }
.vigidesastres-executive-map .map-area-health-damage { fill: #6c4bb7; }
.vigidesastres-executive-map .map-area-event-no-health-damage { fill: #b8d447; }
.vigidesastres-executive-map .map-area-negative { fill: #ed856e; }

.vigidesastres-executive-map .map-reference-outline {
  fill: rgba(243, 241, 233, .92);
  stroke: #5d6868;
  stroke-width: 2;
}

.vigidesastres-executive-map .map-point {
  stroke-width: 1.5;
  vector-effect: non-scaling-stroke;
}

.vigidesastres-executive-map .map-point-unreported { fill: #afb7b4; stroke: rgba(255, 255, 255, .38); }
.vigidesastres-executive-map .map-point-health-damage { fill: #6c4bb7; stroke: #fff; }
.vigidesastres-executive-map .map-point-event-no-health-damage { fill: #b8d447; stroke: #fff; }
.vigidesastres-executive-map .map-point-negative { fill: #ed856e; stroke: #fff; }

.vigidesastres-executive-map-empty {
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  padding: 5px 8px;
  border-radius: 4px;
  background: rgba(255,255,255,.88);
  font-size: 9px;
}

.vigidesastres-executive-map-mode {
  position: absolute;
  right: 7px;
  bottom: 7px;
  padding: 3px 5px;
  border-radius: 3px;
  background: rgba(255, 255, 255, .84);
  color: #5c6667;
  font-size: 6px;
}

.vigidesastres-executive-map-legend {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 4px 12px;
  margin-top: 2mm;
  font-size: 7px;
}

.vigidesastres-executive-map-legend span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.vigidesastres-executive-map-legend i {
  width: 10px;
  height: 7px;
  border: 1px solid #666;
}

.vigidesastres-executive-map-legend .is-health-damage { background: #6c4bb7; }
.vigidesastres-executive-map-legend .is-event-no-health-damage { background: #b8d447; }
.vigidesastres-executive-map-legend .is-negative { background: #ed856e; }
.vigidesastres-executive-map-legend .is-unreported { background: #f3f1e9; }

.vigidesastres-executive-section {
  margin-top: 4mm;
  break-inside: avoid;
}

.vigidesastres-executive-section > h3 {
  padding: 5px 7px;
  background: var(--executive-orange);
  color: #fff;
}

.vigidesastres-executive-table-wrap {
  overflow-x: auto;
}

.vigidesastres-executive-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 6.4px;
  line-height: 1.15;
}

.vigidesastres-executive-table th,
.vigidesastres-executive-table td {
  padding: 3px 3px;
  border: 1px solid var(--executive-line);
  text-align: center;
  vertical-align: middle;
}

.vigidesastres-executive-table td { overflow-wrap: anywhere; }

.vigidesastres-executive-table thead th {
  background: #f08a54;
  font-size: 5.1px;
  font-weight: 800;
  hyphens: none;
  line-height: 1.05;
  overflow-wrap: normal;
  padding: 2px;
  word-break: normal;
}

.vigidesastres-executive-damage-table thead th {
  font-size: 4.4px;
  letter-spacing: -.01em;
  line-height: 1;
  padding: 2px 1px;
}

.vigidesastres-executive-table tbody tr:nth-child(even) td { background: #f5f5f3; }
.vigidesastres-executive-table tfoot th { background: #d7d7d4; }
.vigidesastres-executive-damage-table th:nth-child(1) { width: 6%; }
.vigidesastres-executive-damage-table th:nth-child(2) { width: 14%; }
.vigidesastres-executive-damage-table th:nth-child(3) { width: 11%; }
.vigidesastres-executive-damage-table th:nth-child(4) { width: 25%; }
.vigidesastres-executive-damage-table th:nth-child(n+5) { width: 11%; }
.vigidesastres-executive-damage-table td:nth-child(2),
.vigidesastres-executive-damage-table td:nth-child(4) { text-align: left; }
.vigidesastres-executive-negative-table th:first-child { width: 10%; }
.vigidesastres-executive-negative-table th:nth-child(2) { width: 24%; }
.vigidesastres-executive-negative-table th:nth-child(3) { width: 12%; }
.vigidesastres-executive-negative-table th:nth-child(4) { width: 54%; }
.vigidesastres-executive-negative-table td:nth-child(3) { font-weight: 700; }
.vigidesastres-executive-negative-table td:nth-child(2),
.vigidesastres-executive-negative-table td:last-child { text-align: left; }
.vigidesastres-executive-negative-table td:last-child { white-space: pre-line; }
.vigidesastres-executive-empty { padding: 8px !important; color: #666; font-style: italic; text-align: center !important; }
.vigidesastres-executive-manual-content {
  padding: 6px !important;
  text-align: left !important;
  white-space: pre-line;
}

.vigidesastres-executive-note {
  margin: 3px 0 0;
  color: #555;
  font-size: 6.5px;
}

.vigidesastres-executive-community-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4mm;
}

.vigidesastres-executive-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  margin-top: 5mm;
  padding-top: 2mm;
  border-top: 2px solid var(--executive-orange);
  color: #555;
  font-size: 7px;
}

.vigidesastres-executive-footer-brands {
  display: flex;
  align-items: center;
  gap: 7px;
}

.vigidesastres-executive-footer-brands img {
  width: 65px;
  height: auto;
}

@media (max-width: 800px) {
  .vigidesastres-executive-form-grid,
  .vigidesastres-executive-form-grid.is-header-grid,
  .vigidesastres-executive-manual-grid,
  .vigidesastres-executive-record-tools { grid-template-columns: 1fr; }
  .vigidesastres-executive-occurrence-field { grid-column: auto; }
  .vigidesastres-executive-custom-notice,
  .vigidesastres-executive-event-field,
  .vigidesastres-executive-recorte-actions { grid-column: auto; }
  .vigidesastres-executive-form-section legend { grid-template-columns: 28px 1fr; }
  .vigidesastres-executive-form-section legend small { grid-column: 2; }
  .vigidesastres-executive-counters { grid-template-columns: 1fr; }
  .vigidesastres-executive-document { width: 100%; min-height: 0; padding: 18px 12px; }
  .vigidesastres-executive-map { height: 54vw; min-height: 250px; }
  .vigidesastres-executive-community-grid { grid-template-columns: 1fr; }
  .vigidesastres-executive-table { min-width: 900px; }
}

@media print {
  .vigidesastres-executive-page {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
  }

  .vigidesastres-executive-document {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    min-height: 0;
    margin: 0;
    padding: 7mm 7mm 5mm;
    border: 0;
    box-shadow: none;
    break-after: avoid;
    page-break-after: avoid;
  }

  /* A largura de impressao ativa o breakpoint movel em alguns navegadores.
     Reaplica a composicao do documento para usar toda a folha. */
  .vigidesastres-executive-counters {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .vigidesastres-executive-map {
    height: 63mm;
    min-height: 0;
  }

  .vigidesastres-executive-community-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vigidesastres-executive-table {
    min-width: 0;
  }

  .vigidesastres-executive-table-wrap { overflow: visible; }

  /* Em informes extensos, as tabelas continuam nas paginas seguintes sem
     cortar uma linha; cabecalhos sao repetidos automaticamente. */
  .vigidesastres-executive-section { break-inside: auto; }
  .vigidesastres-executive-table thead { display: table-header-group; }
  .vigidesastres-executive-table tfoot { display: table-row-group; }
  .vigidesastres-executive-table tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .vigidesastres-executive-header,
  .vigidesastres-executive-counters,
  .vigidesastres-executive-map-section,
  .vigidesastres-executive-community-grid,
  .vigidesastres-executive-community-grid .vigidesastres-executive-section,
  .vigidesastres-executive-footer {
    break-inside: avoid;
    page-break-inside: avoid;
  }
}

.real-time-presentation-explanation > header {
    background: #f8fafc;
    border-top: 6px solid #ea580c;
    display: grid;
    gap: .18rem;
    padding: .8rem .9rem .65rem;
}

.real-time-presentation-explanation > header span {
    color: #9a3412;
    font-size: .62rem;
    font-weight: 900;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.real-time-presentation-explanation > header strong {
    color: #172f34;
    font-size: 1rem;
    line-height: 1.25;
}

.real-time-presentation-explanation > div {
    display: grid;
    gap: 0;
    padding: .15rem .9rem .55rem;
}

.real-time-presentation-explanation section {
    border-bottom: 1px solid #e5eeee;
    display: grid;
    gap: .08rem;
    padding: .48rem 0;
}

.real-time-presentation-explanation section:last-child { border-bottom: 0; }
.real-time-presentation-explanation section b { color: #0f6670; font-size: .62rem; letter-spacing: .04em; text-transform: uppercase; }
.real-time-presentation-explanation section span { color: #3f555a; font-size: .76rem; line-height: 1.4; }
.real-time-presentation-explanation section:last-child { background: #fff8e8; border-left: 3px solid #d99a00; border-radius: 6px; margin-top: .2rem; padding: .5rem .55rem; }
.real-time-presentation-explanation > footer { background: #eef6f5; color: #587175; font-size: .61rem; line-height: 1.35; padding: .5rem .9rem; }

.leaflet-tooltip.real-time-presentation-multi-tooltip {
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
    background: rgba(255,255,255,.62);
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 12px;
    box-shadow: 0 12px 30px rgba(15,23,42,.28);
    box-sizing: border-box;
    max-width: 310px;
    min-width: 235px;
    padding: 0;
    white-space: normal;
}

.leaflet-tooltip.real-time-presentation-multi-tooltip::after {
    background: rgba(12,93,104,.86);
    box-shadow: 0 1px 2px rgba(255,255,255,.85);
    content: "";
    display: block;
    pointer-events: none;
    position: absolute;
}

.leaflet-tooltip-top.real-time-presentation-multi-tooltip::after,
.leaflet-tooltip-bottom.real-time-presentation-multi-tooltip::after {
    height: 62px;
    left: calc(50% - 1px);
    width: 2px;
}
.leaflet-tooltip-left.real-time-presentation-multi-tooltip::after,
.leaflet-tooltip-right.real-time-presentation-multi-tooltip::after {
    height: 2px;
    top: calc(50% - 1px);
    width: 62px;
}
.leaflet-tooltip-top.real-time-presentation-multi-tooltip::after { top: 100%; }
.leaflet-tooltip-bottom.real-time-presentation-multi-tooltip::after { bottom: 100%; }
.leaflet-tooltip-left.real-time-presentation-multi-tooltip::after { left: 100%; }
.leaflet-tooltip-right.real-time-presentation-multi-tooltip::after { right: 100%; }

.leaflet-tooltip-top.real-time-presentation-multi-tooltip::before {
    border-left-color: transparent;
    border-right-color: transparent;
    border-top-color: rgba(12,93,104,.92);
    bottom: auto;
    left: calc(50% - 6px);
    top: calc(100% + 56px);
}
.leaflet-tooltip-bottom.real-time-presentation-multi-tooltip::before {
    border-bottom-color: rgba(12,93,104,.92);
    border-left-color: transparent;
    border-right-color: transparent;
    bottom: calc(100% + 56px);
    left: calc(50% - 6px);
    top: auto;
}
.leaflet-tooltip-left.real-time-presentation-multi-tooltip::before {
    border-bottom-color: transparent;
    border-left-color: rgba(12,93,104,.92);
    border-top-color: transparent;
    left: calc(100% + 56px);
    right: auto;
    top: calc(50% - 6px);
}
.leaflet-tooltip-right.real-time-presentation-multi-tooltip::before {
    border-bottom-color: transparent;
    border-right-color: rgba(12,93,104,.92);
    border-top-color: transparent;
    left: auto;
    right: calc(100% + 56px);
    top: calc(50% - 6px);
}

.leaflet-tooltip-top.real-time-presentation-multi-tooltip.has-long-connector::after,
.leaflet-tooltip-bottom.real-time-presentation-multi-tooltip.has-long-connector::after { height: 154px; }
.leaflet-tooltip-left.real-time-presentation-multi-tooltip.has-long-connector::after,
.leaflet-tooltip-right.real-time-presentation-multi-tooltip.has-long-connector::after { width: 154px; }
.leaflet-tooltip-top.real-time-presentation-multi-tooltip.has-long-connector::before { top: calc(100% + 148px); }
.leaflet-tooltip-bottom.real-time-presentation-multi-tooltip.has-long-connector::before { bottom: calc(100% + 148px); }
.leaflet-tooltip-left.real-time-presentation-multi-tooltip.has-long-connector::before { left: calc(100% + 148px); }
.leaflet-tooltip-right.real-time-presentation-multi-tooltip.has-long-connector::before { right: calc(100% + 148px); }

.leaflet-tooltip.real-time-presentation-multi-tooltip.is-attention { border-top: 5px solid #d99a00; }
.leaflet-tooltip.real-time-presentation-multi-tooltip.is-risk { border-top: 5px solid #ea580c; }
.leaflet-tooltip.real-time-presentation-multi-tooltip.is-critical { border-top: 5px solid #b42318; }
.leaflet-tooltip.real-time-presentation-multi-tooltip.is-normal { border-top: 5px solid #078f73; }
.leaflet-tooltip.real-time-presentation-multi-tooltip.is-dense { max-width: 265px; min-width: 205px; }
.leaflet-tooltip.real-time-presentation-multi-tooltip.is-dense .real-time-presentation-tooltip-card > p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.real-time-presentation-tooltip-card {
    color: #334155;
    display: grid;
    font-family: inherit;
    gap: .28rem;
    line-height: 1.3;
    padding: .68rem .75rem .72rem;
}

.real-time-presentation-tooltip-card > span {
    font-size: .66rem;
    font-weight: 900;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.real-time-presentation-tooltip-card > strong { color: #17363c; font-size: .93rem; line-height: 1.2; }
.real-time-presentation-tooltip-card > p { color: #42575c; font-size: .74rem; line-height: 1.38; margin: 0; }
.real-time-presentation-tooltip-card > small { color: #64777b; font-size: .65rem; }
.real-time-presentation-tooltip-card > b {
    background: rgba(238,247,246,.52);
    border-radius: 6px;
    color: #0b6670;
    font-size: .68rem;
    font-weight: 800;
    line-height: 1.35;
    margin-top: .12rem;
    padding: .38rem .45rem;
}

.real-time-presentation-card-rails {
    inset: 18px 20px 82px;
    pointer-events: none;
    position: absolute;
    z-index: 760;
}

.real-time-presentation-card-rail {
    display: flex;
    flex-direction: column;
    gap: 14px;
    justify-content: center;
    max-height: 100%;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: clamp(235px, 21vw, 330px);
}

.real-time-presentation-card-rail.is-left { left: 0; }
.real-time-presentation-card-rail.is-right { right: 0; }

.real-time-presentation-rail-card {
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
    background: rgba(255,255,255,.62);
    border: 1px solid rgba(255,255,255,.78);
    border-radius: 12px;
    box-shadow: 0 10px 28px rgba(15,23,42,.23);
    overflow: hidden;
    pointer-events: auto;
}

.real-time-presentation-rail-card.is-attention { border-top: 5px solid #d99a00; }
.real-time-presentation-rail-card.is-forecast { border-top: 5px solid #64748b; }
.real-time-presentation-rail-card.is-risk { border-top: 5px solid #ea580c; }
.real-time-presentation-rail-card.is-critical { border-top: 5px solid #b42318; }
.real-time-presentation-rail-card.is-normal { border-top: 5px solid #078f73; }

.real-time-presentation-card-rails.is-dense .real-time-presentation-card-rail { gap: 8px; }
.real-time-presentation-card-rails.is-dense .real-time-presentation-tooltip-card { gap: .18rem; padding: .48rem .58rem .52rem; }
.real-time-presentation-card-rails.is-dense .real-time-presentation-tooltip-card > p {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}
.real-time-presentation-card-rails.is-dense .real-time-presentation-tooltip-card > b { padding: .28rem .35rem; }

.real-time-presentation-connectors {
    height: 100%;
    inset: 0;
    overflow: visible;
    pointer-events: none;
    position: absolute;
    width: 100%;
    z-index: 750;
}

.real-time-presentation-connector {
    fill: none;
    filter: drop-shadow(0 1px 1px rgba(255,255,255,.95));
    stroke: #64748b;
    stroke-linecap: round;
    stroke-width: 3;
}
.real-time-presentation-connector.is-attention { stroke: #d99a00; }
.real-time-presentation-connector.is-risk { stroke: #ea580c; }
.real-time-presentation-connector.is-critical { stroke: #b42318; }
.real-time-presentation-connector.is-normal { stroke: #078f73; }

.real-time-presentation-countdown {
    background: rgba(10,44,50,.94);
    border: 1px solid rgba(255,255,255,.42);
    border-radius: 10px;
    box-shadow: 0 8px 22px rgba(15,23,42,.28);
    color: #fff;
    display: grid;
    gap: .1rem;
    min-width: 240px;
    padding: .62rem .75rem;
}

.real-time-presentation-countdown > span { color: #9ce8df; font-size: .6rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.real-time-presentation-countdown > strong { font-size: .8rem; line-height: 1.25; }
.real-time-presentation-countdown > b { color: #fff2a8; font-size: .72rem; }

@media (max-width: 760px) {
    .leaflet-tooltip.real-time-presentation-multi-tooltip { max-width: 220px; min-width: 190px; }
    .real-time-presentation-tooltip-card > p,
    .real-time-presentation-tooltip-card > b { display: none; }
    .real-time-presentation-countdown { min-width: 190px; }
    .real-time-presentation-card-rails { inset: 10px 8px 72px; }
    .real-time-presentation-card-rail { width: min(38vw, 220px); }
    .real-time-presentation-card-rails .real-time-presentation-tooltip-card > p,
    .real-time-presentation-card-rails .real-time-presentation-tooltip-card > b { display: none; }
}

.real-time-page[data-rt-current-mode="analyst"] .real-time-live-indicator { color: #bae6fd; }
.real-time-page[data-rt-current-mode="silent"] .real-time-alert-card:not(.is-critical) { display: none; }
.real-time-page[data-rt-current-mode="presentation"] .real-time-operation-controls { border-color: #0b727a; box-shadow: 0 0 0 2px rgba(11,114,122,.12); }

.real-time-panel-title span {
    color: #0b727a;
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.real-time-panel-title h3 {
    color: var(--rt-ink);
    font-size: 1.05rem;
    margin: .1rem 0 .55rem;
}

.real-time-change-status {
    color: #526b70;
    display: block;
    font-size: .66rem;
    line-height: 1.35;
    margin: -.35rem 0 .6rem;
}

.real-time-signal-list,
.real-time-action-list {
    display: grid;
    gap: .5rem;
    margin: 0;
    padding: 0;
}

.real-time-signal-list article,
.real-time-action-list li {
    background: #fff;
    border: 1px solid var(--rt-border);
    border-left: 4px solid #5f8588;
    border-radius: 8px;
    display: grid;
    gap: .2rem;
    padding: .65rem .7rem;
}

.real-time-signal-list article.is-critical { border-left-color: #b42318; }
.real-time-signal-list article.is-risk { border-left-color: #ea580c; }
.real-time-signal-list article.is-attention { border-left-color: #d49b0b; }
.real-time-signal-list article.is-forecast { border-left-color: #635bce; }
.real-time-signal-list article.is-normal { border-left-color: #37866b; }
.real-time-action-list li.is-immediate { border-left-color: #b42318; }
.real-time-action-list li.is-next { border-left-color: #d97706; }

.real-time-signal-list strong,
.real-time-action-list strong { color: var(--rt-ink); font-size: .8rem; }
.real-time-signal-list span,
.real-time-action-list span { color: var(--rt-muted); font-size: .72rem; line-height: 1.4; }
.real-time-action-list { counter-reset: rt-action; list-style: none; }
.real-time-action-list li { counter-increment: rt-action; grid-template-columns: 22px 1fr; }
.real-time-action-list li::before { color: #0b727a; content: counter(rt-action); font-size: .72rem; font-weight: 800; grid-row: 1 / span 2; }

.real-time-action-list > li > strong,
.real-time-action-list > li > span,
.real-time-action-list > li > .real-time-change-badge,
.real-time-action-list > li > .real-time-entity-list,
.real-time-action-list > li > .real-time-entity-more {
    grid-column: 2;
}

.real-time-change-badge {
    border-radius: 999px;
    display: inline-flex;
    font-size: .6rem;
    font-style: normal;
    font-weight: 800;
    justify-self: start;
    line-height: 1.2;
    padding: .18rem .4rem;
}

.real-time-change-badge.is-worse {
    background: #fee4e2;
    color: #b42318;
}

.real-time-change-badge.is-new {
    background: #fff2cc;
    color: #854a0e;
}

.real-time-entity-list {
    display: grid;
    gap: .35rem;
    list-style: none;
    margin: .25rem 0 0;
    padding: 0;
}

.real-time-entity-list > li {
    background: #f7faf9;
    border: 1px solid #d9e5e3;
    border-radius: 7px;
    display: grid;
    gap: .12rem;
    grid-template-columns: 1fr;
    padding: .42rem .48rem;
}

.real-time-action-list .real-time-entity-list > li {
    counter-increment: none;
}

.real-time-action-list .real-time-entity-list > li::before {
    content: none;
}

.real-time-entity-heading {
    align-items: flex-start;
    display: flex;
    flex-wrap: wrap;
    gap: .25rem;
    justify-content: space-between;
}

.real-time-entity-heading a,
.real-time-entity-heading strong {
    color: #133e43;
    font-size: .7rem;
    font-weight: 800;
    line-height: 1.3;
}

.real-time-entity-heading a:hover {
    color: #08717a;
    text-decoration: underline;
}

.real-time-entity-location,
.real-time-entity-list small {
    color: #526b70;
    font-size: .64rem;
    line-height: 1.35;
}

.real-time-entity-time {
    color: #667b7f !important;
}

.real-time-entity-more {
    margin-top: .3rem;
}

.real-time-entity-more > summary {
    color: #08717a;
    cursor: pointer;
    font-size: .66rem;
    font-weight: 800;
    min-height: 28px;
    padding: .3rem 0;
}

.real-time-method-note {
    background: #edf4f3;
    border-radius: 8px;
    color: var(--rt-muted);
    font-size: .7rem;
    line-height: 1.45;
    margin: 0;
    padding: .65rem;
}

.real-time-wind-marker {
    align-items: center;
    background: rgba(255,255,255,.92);
    border: 1px solid #7ba4aa;
    border-radius: 999px;
    color: #0a5d68;
    display: flex;
    font-size: 14px;
    font-weight: 800;
    height: 30px;
    justify-content: center;
    line-height: 1;
    width: 30px;
}

.integrated-hydro-impact-percentage {
    background: transparent;
    border: 0;
}

.integrated-hydro-impact-percentage > span {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    box-sizing: border-box;
    color: #9a3412;
    cursor: pointer;
    display: flex;
    font-size: .78rem;
    font-weight: 900;
    height: 100%;
    justify-content: center;
    line-height: 1;
    text-shadow: -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff, 1px 1px 0 #fff, 0 2px 4px rgba(255,255,255,.9);
    white-space: nowrap;
    width: 100%;
}

.integrated-hydro-impact-percentage.is-flood > span {
    color: #b91c1c;
}

.integrated-hydro-impact-percentage.is-near-flood > span {
    color: #8a6900;
}

.integrated-hydro-impact-percentage.is-severe-flood > span {
    color: #7f1d1d;
}

.integrated-hydro-impact-percentage.is-falling > span {
    color: #15803d;
}

.real-time-map-canvas.is-hydro-impact-overview .integrated-hydro-impact-hospital-icon {
    display: none !important;
}

.integrated-hydro-impact-hospital-icon {
    background: transparent;
    border: 0;
}

.integrated-hydro-impact-hospital-icon > span {
    align-items: center;
    background: #7c3aed;
    border: 2px solid #fff;
    border-radius: 3px;
    box-shadow: 0 0 0 2px #7c3aed, 0 3px 8px rgba(76, 29, 149, .42);
    box-sizing: border-box;
    color: #fff;
    display: flex;
    font-size: .62rem;
    font-weight: 900;
    height: 100%;
    justify-content: center;
    line-height: 1;
    width: 100%;
}

.integrated-hydro-impact-hospital-icon.is-approximate > span {
    background: #c2410c;
    box-shadow: 0 0 0 2px #c2410c, 0 3px 8px rgba(124, 45, 18, .42);
}

body.has-integrated-hydro-chart-modal {
    overflow: hidden;
}

.integrated-hydro-chart-modal {
    align-items: center;
    background: rgba(8, 28, 34, .76);
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 24px;
    position: fixed;
    z-index: 10080;
}

.integrated-hydro-chart-modal > div {
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 24px 70px rgba(0, 0, 0, .35);
    max-height: calc(100vh - 48px);
    max-width: 1280px;
    overflow: auto;
    padding: 24px;
    position: relative;
    width: 100%;
}

.integrated-hydro-chart-modal .is-close {
    background: transparent;
    border: 0;
    color: #61757d;
    cursor: pointer;
    font-size: 28px;
    line-height: 1;
    padding: 5px;
    position: absolute;
    right: 12px;
    top: 9px;
    z-index: 1;
}

.integrated-hydro-chart-modal header {
    color: #263f48;
    padding-right: 30px;
    text-align: center;
}

.integrated-hydro-chart-modal header h2 {
    color: #142f38;
    font-size: 25px;
    margin: 0 0 5px;
}

.integrated-hydro-chart-modal header p,
.integrated-hydro-chart-modal header small {
    display: block;
    font-size: 13px;
    margin: 3px 0;
}

.integrated-hydro-chart-context {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 16px 0 8px;
}

.integrated-hydro-chart-context > div {
    background: #f2f8f8;
    border: 1px solid #d6e6e5;
    border-radius: 8px;
    display: grid;
    gap: 3px;
    min-width: 0;
    padding: 9px 11px;
}

.integrated-hydro-chart-context > div:last-child {
    grid-column: span 2;
}

.integrated-hydro-chart-context span {
    color: #577176;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.integrated-hydro-chart-context strong {
    color: #173d43;
    font-size: 12px;
    line-height: 1.35;
}

.integrated-hydro-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    justify-content: center;
    margin: 20px 0 7px;
}

.integrated-hydro-chart-legend span {
    align-items: center;
    color: #61757d;
    display: inline-flex;
    font-size: 11px;
    gap: 5px;
}

.integrated-hydro-chart-legend span::before {
    background: #64748b;
    content: "";
    height: 8px;
    width: 25px;
}

.integrated-hydro-chart-legend .is-attention::before { background: #e5d51b; }
.integrated-hydro-chart-legend .is-alert::before { background: #ff922b; }
.integrated-hydro-chart-legend .is-flood::before { background: #f0183e; }
.integrated-hydro-chart-legend .is-level::before { background: #3498db; }
.integrated-hydro-chart-legend .is-rain::before { background: #5f6368; }

.integrated-hydro-chart-svg {
    background: linear-gradient(#fff, #fbfdfe);
    border: 1px solid #dbe5e8;
    border-radius: 9px;
    overflow: hidden;
}

.integrated-hydro-chart-svg svg {
    display: block;
    height: auto;
    width: 100%;
}

.integrated-hydro-chart-svg .axis {
    stroke: #a7b5ba;
    stroke-width: 1;
}

.integrated-hydro-chart-svg text {
    fill: #536b74;
    font-size: 12px;
    font-weight: 650;
}

.integrated-hydro-chart-modal footer {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    padding-top: 14px;
}

.integrated-hydro-chart-modal footer a {
    background: #fff;
    border: 1px solid #3498db;
    border-radius: 6px;
    color: #1878b5;
    font-size: 13px;
    font-weight: 800;
    padding: 9px 12px;
    text-decoration: none;
}

.integrated-hydro-chart-loading,
.integrated-hydro-chart-empty {
    color: #4e6870;
    display: grid;
    gap: .35rem;
    min-height: 250px;
    place-content: center;
    text-align: center;
}

@media (max-width: 1250px) {
    .real-time-command-bar { grid-template-columns: 1fr; }
    .real-time-command-metrics { grid-template-columns: repeat(8, minmax(72px, 1fr)); overflow-x: auto; }
    .real-time-map-layout { grid-template-columns: 250px 1fr; }
    .real-time-decision-panel { border-left: 0; border-top: 1px solid var(--rt-border); grid-column: 1 / -1; grid-template-columns: repeat(2, 1fr); max-height: none; }
    .real-time-alert-queue-section { grid-column: 1 / -1; }
    .real-time-alert-toast { right: 14px; }
    .real-time-method-note { grid-column: 1 / -1; }
    .real-time-shell:not(.integrated-map-shell-fullscreen).is-layer-panel-collapsed .real-time-map-layout { grid-template-columns: minmax(0, 1fr); }
    .real-time-shell:not(.integrated-map-shell-fullscreen).is-layer-panel-collapsed .real-time-map-canvas { grid-column: 1; }
    .real-time-shell:not(.integrated-map-shell-fullscreen).is-layer-panel-collapsed .real-time-decision-panel { grid-column: 1; }
}

@media (max-width: 840px) {
    .real-time-hero,
    .real-time-boundary,
    .real-time-heading { align-items: flex-start; flex-direction: column; }
    .real-time-operation-controls,
    .real-time-operation-controls > div:first-child { align-items: flex-start; flex-direction: column; }
    .real-time-operation-options { justify-content: flex-start; }
    .real-time-operation-options > span { text-align: left; }
    .real-time-mode-switch { flex-wrap: wrap; }
    .real-time-command-metrics { grid-template-columns: repeat(4, minmax(92px, 1fr)); }
    .real-time-refresh { align-items: flex-start; min-width: 0; }
    .real-time-kpis,
    .real-time-rain-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .real-time-map-layout { display: block; }
    .real-time-layer-panel,
    .real-time-decision-panel { border: 0; max-height: none; }
    .real-time-map-canvas { height: 560px; min-height: 560px; }
    .real-time-decision-panel { display: grid; grid-template-columns: 1fr; }
    .real-time-alert-toast { left: 14px; right: 14px; top: 14px; }
    .integrated-hydro-chart-context { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
    .real-time-kpis,
    .real-time-rain-strip { grid-template-columns: 1fr; }
    .real-time-command-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); overflow: visible; }
    .real-time-operation-controls > div:first-child { width: 100%; }
    .real-time-mode-switch { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
    .real-time-map-canvas { height: 480px; min-height: 480px; }
    .integrated-hydro-chart-modal { padding: 8px; }
    .integrated-hydro-chart-modal > div { max-height: calc(100vh - 16px); padding: 17px 10px; }
    .integrated-hydro-chart-context { grid-template-columns: 1fr; }
    .integrated-hydro-chart-context > div:last-child { grid-column: auto; }
}

/* Relatório Situacional Diário · painel executivo denso (2026-08). */
.daily-situation-page {
  gap: 10px;
}

.daily-situation-page .panel {
  border-color: #dfe5e8;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .035);
}

.daily-situation-hero {
  display: grid;
  grid-template-columns: auto minmax(240px, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
}

.daily-situation-hero-visual,
.daily-situation-tile-icon,
.daily-situation-indicator-group-header > span,
.daily-situation-mini-card header > span,
.daily-situation-system-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
}

.daily-situation-hero-visual {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  color: var(--sie-primary-ink);
  background: var(--sie-primary-soft);
}

.daily-situation-hero-visual .ui-icon-glyph {
  width: 23px;
  height: 23px;
}

.daily-situation-hero-copy h2 {
  margin: 1px 0 2px;
  font-size: 1.18rem;
  line-height: 1.15;
}

.daily-situation-reference {
  margin: 0;
  font-size: .75rem;
}

.daily-situation-hero-state {
  display: inline-flex;
  margin-top: 6px;
  border-radius: 999px;
  padding: 3px 8px;
  background: #eef2f4;
  color: #4b5b63;
  font-size: .63rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.daily-situation-hero-state.is-critical,
.daily-situation-hero-state.is-alert {
  background: var(--sie-red-soft);
  color: var(--sie-red-ink);
}

.daily-situation-hero-state.is-warning,
.daily-situation-hero-state.is-attention {
  background: var(--sie-yellow-soft);
  color: var(--sie-yellow-ink);
}

.daily-situation-hero-state.is-normal {
  background: var(--sie-green-soft);
  color: var(--sie-green-ink);
}

.daily-situation-reference-form {
  align-items: end;
  gap: 6px;
}

.daily-situation-reference-form label > span {
  font-size: .64rem;
}

.daily-situation-reference-form input,
.daily-situation-reference-form .btn {
  min-height: 34px;
  padding-top: 6px;
  padding-bottom: 6px;
  font-size: .72rem;
}

.daily-situation-briefing-board {
  padding: 11px;
}

.daily-situation-board-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
}

.daily-situation-board-heading .eyebrow {
  margin: 0 0 1px;
  font-size: .61rem;
}

.daily-situation-board-heading h2 {
  margin: 0;
  font-size: .98rem;
}

.daily-situation-board-count {
  color: var(--sie-muted);
  font-size: .68rem;
  font-weight: 800;
}

.daily-situation-briefing-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
}

.daily-situation-briefing-tile {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-content: start;
  gap: 5px 7px;
  min-width: 0;
  min-height: 98px;
  border: 1px solid #dde5e8;
  border-top: 3px solid #90a4ae;
  border-radius: 9px;
  padding: 8px;
  background: #fff;
}

.daily-situation-briefing-tile.is-critical { border-top-color: var(--sie-red); background: linear-gradient(180deg, var(--sie-red-soft), #fff 54%); }
.daily-situation-briefing-tile.is-warning,
.daily-situation-briefing-tile.is-worsened { border-top-color: var(--sie-yellow); background: linear-gradient(180deg, var(--sie-yellow-soft), #fff 54%); }
.daily-situation-briefing-tile.is-normal,
.daily-situation-briefing-tile.is-improved,
.daily-situation-briefing-tile.is-stable { border-top-color: var(--sie-green); background: linear-gradient(180deg, var(--sie-green-soft), #fff 54%); }
.daily-situation-briefing-tile.is-info { border-top-color: var(--sie-cyan); background: linear-gradient(180deg, var(--sie-cyan-soft), #fff 54%); }

.daily-situation-tile-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  color: #4f6570;
  background: rgba(255, 255, 255, .8);
}

.daily-situation-tile-icon .ui-icon-glyph {
  width: 16px;
  height: 16px;
}

.daily-situation-tile-copy {
  min-width: 0;
}

.daily-situation-tile-label {
  display: block;
  color: #52636b;
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.daily-situation-tile-copy strong {
  display: block;
  overflow: hidden;
  color: var(--sie-text);
  font-size: 1.35rem;
  line-height: 1.05;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.daily-situation-tile-copy strong.is-text {
  margin-top: 2px;
  font-size: .84rem;
  line-height: 1.18;
}

.daily-situation-tile-copy small,
.daily-situation-briefing-tile > p {
  color: var(--sie-muted);
  font-size: .61rem;
  line-height: 1.25;
}

.daily-situation-briefing-tile > p {
  display: -webkit-box;
  grid-column: 1 / -1;
  margin: 0;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.daily-situation-information-board {
  padding: 12px;
}

.daily-situation-information-board .daily-situation-board-heading .muted {
  max-width: 820px;
  margin: 3px 0 0;
  font-size: .68rem;
}

.daily-situation-information-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.daily-situation-information-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #dbe4e8;
  border-top: 4px solid #607d8b;
  border-radius: 10px;
  background: #fff;
}

.daily-situation-information-card.is-fact { border-top-color: #137b57; }
.daily-situation-information-card.is-forecast { border-top-color: #087ca7; }
.daily-situation-information-card.is-predictive { border-top-color: #7a4fc2; }

.daily-situation-information-card > header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 10px 7px;
  border-bottom: 1px solid #e6ecef;
  background: #f9fbfc;
}

.daily-situation-information-icon {
  display: inline-grid;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  place-items: center;
  border-radius: 9px;
  color: #fff;
  background: #607d8b;
}

.daily-situation-information-card.is-fact .daily-situation-information-icon { background: #137b57; }
.daily-situation-information-card.is-forecast .daily-situation-information-icon { background: #087ca7; }
.daily-situation-information-card.is-predictive .daily-situation-information-icon { background: #7a4fc2; }

.daily-situation-information-icon .ui-icon-glyph {
  width: 17px;
  height: 17px;
}

.daily-situation-information-card > header span:not(.daily-situation-information-icon) {
  display: block;
  color: var(--sie-muted);
  font-size: .57rem;
  font-weight: 900;
  letter-spacing: .06em;
}

.daily-situation-information-card h3 {
  margin: 1px 0 0;
  font-size: .91rem;
}

.daily-situation-information-definition {
  min-height: 51px;
  margin: 0;
  padding: 8px 10px;
  color: #4f6169;
  font-size: .66rem;
  line-height: 1.35;
}

.daily-situation-information-card ul {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.daily-situation-information-card li {
  position: relative;
  padding: 8px 10px 8px 22px;
  border-top: 1px solid #edf1f3;
  font-size: .69rem;
  line-height: 1.35;
}

.daily-situation-information-card li::before {
  position: absolute;
  top: 12px;
  left: 10px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #78909c;
  content: '';
}

.daily-situation-information-card li.is-critical::before { background: var(--sie-red); }
.daily-situation-information-card li.is-warning::before { background: #d88a00; }
.daily-situation-information-card li.is-info::before { background: var(--sie-cyan); }

.daily-situation-information-card li strong {
  display: block;
  font-weight: 700;
}

.daily-situation-information-card li small {
  display: block;
  margin-top: 2px;
  color: var(--sie-muted);
  font-size: .59rem;
}

.daily-situation-information-reason {
  margin: 6px 0 0;
  padding: 6px 7px;
  border-radius: 6px;
  background: #f4f7f9;
  color: #4b606f;
  font-size: .62rem;
  line-height: 1.4;
}

.daily-situation-information-reason span {
  display: block;
  margin-bottom: 2px;
  color: #27475d;
  font-size: .54rem;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.daily-situation-information-empty {
  margin: 0;
  padding: 10px;
  border-top: 1px solid #edf1f3;
  color: var(--sie-muted);
  font-size: .68rem;
}

.daily-situation-information-rule {
  margin: 9px 0 0;
  padding: 8px 10px;
  border-radius: 8px;
  color: #43545c;
  background: #eef4f7;
  font-size: .66rem;
  line-height: 1.35;
}

.daily-situation-page .decision-briefing.is-compact {
  padding: 8px 10px;
  border-left-width: 3px;
}

.daily-situation-page .decision-briefing.is-compact .decision-briefing-header {
  align-items: center;
  gap: 10px;
}

.daily-situation-page .decision-briefing.is-compact .ops-kicker,
.daily-situation-page .decision-briefing.is-compact .decision-briefing-header p {
  display: none;
}

.daily-situation-page .decision-briefing.is-compact .decision-briefing-header h2 {
  margin: 0;
  font-size: .82rem;
}

.daily-situation-page .decision-briefing.is-compact .decision-briefing-actions {
  gap: 5px;
}

.daily-situation-page .decision-briefing.is-compact .btn {
  min-height: 30px;
  padding: 5px 9px;
  font-size: .67rem;
}

.daily-situation-page .decision-briefing.is-compact .decision-briefing-preview {
  margin-top: 6px;
  padding-top: 6px;
  font-size: .67rem;
}

.daily-situation-page .decision-briefing.is-compact .decision-briefing-feedback {
  min-height: 0;
  margin: 2px 0 0;
  font-size: .66rem;
}

.daily-situation-page .decision-briefing.is-compact .decision-briefing-feedback:empty {
  display: none;
}

.daily-situation-page .daily-situation-hospital-share {
  padding: 14px 16px;
  border-left-color: var(--sie-red, #c62828);
  background: linear-gradient(135deg, #fff8f6 0%, #fff 72%);
}

.daily-situation-page .daily-situation-hospital-share .ops-kicker,
.daily-situation-page .daily-situation-hospital-share .decision-briefing-header p {
  display: block;
}

.daily-situation-page .daily-situation-hospital-share .decision-briefing-header h2 {
  margin: 2px 0 4px;
  font-size: 1rem;
}

.daily-situation-page .daily-situation-hospital-share .decision-briefing-header p {
  max-width: 780px;
  font-size: .72rem;
  line-height: 1.45;
}

.daily-situation-hospital-share-text {
  margin-top: 10px;
  border-top: 1px solid #f0d8d1;
  padding-top: 10px;
}

.daily-situation-hospital-share-text pre {
  max-height: 430px;
  margin: 0;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  border: 1px solid #eaded9;
  border-radius: 8px;
  padding: 12px 14px;
  background: #fff;
  color: #263840;
  font: inherit;
  font-size: .72rem;
  line-height: 1.55;
}

.daily-situation-hospital-matrix-block {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  padding-top: 11px;
  border-top: 1px solid #f0d8d1;
}

.daily-situation-hospital-matrix-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 12px;
}

.daily-situation-hospital-matrix-heading h3,
.daily-situation-hospital-matrix-heading p {
  margin: 0;
}

.daily-situation-hospital-matrix-heading h3 {
  color: #173b53;
  font-size: .86rem;
}

.daily-situation-hospital-matrix-heading p {
  margin-top: 2px;
  color: #607584;
  font-size: .69rem;
  line-height: 1.4;
}

.daily-situation-hospital-matrix-heading > span {
  flex: 0 0 auto;
  color: #7b3730;
  font-size: .66rem;
  font-weight: 800;
}

.daily-situation-hospital-matrix-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.daily-situation-hospital-matrix-legend > span {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 7px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: .59rem;
  font-weight: 800;
}

.daily-situation-hospital-matrix-scroll {
  max-height: 520px;
  overflow: auto;
  border: 1px solid #eaded9;
  border-radius: 9px;
  background: #fff;
}

.daily-situation-hospital-matrix {
  width: 100%;
  min-width: 1080px;
  border-collapse: separate;
  border-spacing: 0;
}

.daily-situation-hospital-matrix th,
.daily-situation-hospital-matrix td {
  padding: 7px 6px;
  border-right: 1px solid #edf1f3;
  border-bottom: 1px solid #e5ebef;
  font-size: .68rem;
  line-height: 1.25;
  text-align: center;
  vertical-align: middle;
}

.daily-situation-hospital-matrix thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #eef4f7;
  color: #29475a;
  font-size: .61rem;
  font-weight: 850;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.daily-situation-hospital-matrix th:first-child {
  position: sticky;
  left: 0;
  z-index: 1;
  width: 30%;
  min-width: 250px;
  text-align: left;
}

.daily-situation-hospital-matrix thead th:first-child {
  z-index: 3;
}

.daily-situation-hospital-matrix tbody th {
  background: #fff;
}

.daily-situation-hospital-matrix tbody tr.is-critical th:first-child {
  box-shadow: inset 3px 0 0 #c62828;
}

.daily-situation-hospital-matrix tbody tr.is-warning th:first-child {
  box-shadow: inset 3px 0 0 #d97706;
}

.daily-situation-hospital-matrix tbody th strong,
.daily-situation-hospital-matrix tbody th small {
  display: block;
}

.daily-situation-hospital-matrix tbody th strong {
  color: #173b53;
  font-size: .7rem;
}

.daily-situation-hospital-matrix tbody th small {
  margin-top: 2px;
  color: #6b7f8c;
  font-size: .59rem;
  font-weight: 600;
}

.daily-situation-hospital-level .status-chip {
  min-width: 70px;
  justify-content: center;
  padding: 3px 6px;
  font-size: .58rem;
}

.daily-situation-hospital-level .status-chip.is-critical {
  border-color: #efb5b0;
  background: #fee7e5;
  color: #a72820;
}

.daily-situation-hospital-level .status-chip.is-warning {
  border-color: #efd28d;
  background: #fff5d8;
  color: #8a5b00;
}

.daily-situation-hospital-matrix-cell > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  place-items: center;
  width: 100%;
  min-height: 28px;
  padding: 4px 6px;
  border-radius: 6px;
  font-size: .61rem;
  font-weight: 800;
  line-height: 1.22;
  overflow-wrap: anywhere;
}

.daily-situation-hospital-matrix-cell.is-normal > span,
.daily-situation-hospital-matrix-legend > span.is-normal {
  border-color: #a9d6b8;
  background: #e8f7ed;
  color: #17663a;
}

.daily-situation-hospital-matrix-cell.is-warning > span,
.daily-situation-hospital-matrix-legend > span.is-warning {
  border-color: #efd28d;
  background: #fff5d8;
  color: #805500;
}

.daily-situation-hospital-matrix-cell.is-high > span,
.daily-situation-hospital-matrix-legend > span.is-high {
  border-color: #efb081;
  background: #fff0e5;
  color: #a8440f;
}

.daily-situation-hospital-matrix-cell.is-critical > span,
.daily-situation-hospital-matrix-legend > span.is-critical {
  border-color: #f3b8b2;
  background: #fee7e5;
  color: #b42318;
}

.daily-situation-hospital-matrix-cell.is-neutral > span,
.daily-situation-hospital-matrix-legend > span.is-neutral {
  border-color: #dce3e8;
  background: #f3f6f8;
  color: #667985;
}

.daily-situation-hospital-matrix tr:last-child th,
.daily-situation-hospital-matrix tr:last-child td {
  border-bottom: 0;
}

.daily-situation-hospital-matrix th:last-child,
.daily-situation-hospital-matrix td:last-child {
  border-right: 0;
}

@media (max-width: 640px) {
  .daily-situation-hospital-matrix-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .daily-situation-hospital-matrix {
    min-width: 980px;
  }

  .daily-situation-hospital-matrix th:first-child {
    min-width: 210px;
  }
}

@media print {
  .daily-situation-hospital-matrix-block,
  .daily-situation-hospital-matrix tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .daily-situation-hospital-matrix-scroll {
    max-height: none;
    overflow: visible;
  }

  .daily-situation-hospital-matrix {
    min-width: 0;
    table-layout: fixed;
  }

  .daily-situation-hospital-matrix th,
  .daily-situation-hospital-matrix td {
    padding: 3px 2px;
    font-size: 6pt;
  }

  .daily-situation-hospital-matrix th:first-child {
    position: static;
    width: 27%;
    min-width: 0;
  }

  .daily-situation-hospital-matrix thead th {
    position: static;
    font-size: 5.4pt;
  }

  .daily-situation-hospital-matrix tbody th strong {
    font-size: 6.2pt;
  }

  .daily-situation-hospital-matrix tbody th small,
  .daily-situation-hospital-level .status-chip {
    font-size: 5.2pt;
  }

  .daily-situation-hospital-level .status-chip {
    min-width: 0;
    padding: 2px;
  }

  .daily-situation-hospital-matrix-cell > span {
    min-height: 0;
    padding: 2px;
    border-radius: 4px;
    font-size: 5.2pt;
  }

  .daily-situation-hospital-matrix-legend > span {
    min-height: 0;
    padding: 2px 5px;
    font-size: 5.2pt;
  }
}

.daily-situation-indicator-board {
  display: grid;
  gap: 8px;
}

.daily-situation-indicator-board > .daily-situation-board-heading {
  margin: 0 2px;
  cursor: pointer;
  list-style: none;
}

.daily-situation-indicator-board > .daily-situation-board-heading::-webkit-details-marker {
  display: none;
}

.daily-situation-indicator-board > .daily-situation-board-heading::after {
  content: '+';
  margin-left: 8px;
  color: #174d70;
  font-size: 1rem;
  font-weight: 850;
}

.daily-situation-board-title {
  display: grid;
  gap: 1px;
}

.daily-situation-board-title > strong {
  color: #173b53;
  font-size: .98rem;
}

.daily-situation-indicator-board[open] > .daily-situation-board-heading::after {
  content: '−';
}

.daily-situation-indicator-groups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.daily-situation-indicator-group {
  min-width: 0;
  padding: 9px;
}

.daily-situation-indicator-group-header {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 7px;
}

.daily-situation-indicator-group-header > span {
  width: 25px;
  height: 25px;
  border-radius: 7px;
  color: var(--sie-primary-ink);
  background: var(--sie-primary-soft);
}

.daily-situation-indicator-group-header .ui-icon-glyph {
  width: 15px;
  height: 15px;
}

.daily-situation-indicator-group-header h3 {
  margin: 0;
  font-size: .78rem;
}

.daily-situation-mini-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
}

.daily-situation-mini-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 105px;
  border: 1px solid #e2e7e9;
  border-left: 3px solid #90a4ae;
  border-radius: 7px;
  padding: 6px;
  background: #fff;
}

.daily-situation-mini-card.is-critical { border-left-color: var(--sie-red); background: #fffafb; }
.daily-situation-mini-card.is-warning { border-left-color: var(--sie-yellow); background: #fffdf8; }
.daily-situation-mini-card.is-normal { border-left-color: var(--sie-green); background: #fbfffc; }
.daily-situation-mini-card.is-info { border-left-color: var(--sie-cyan); background: #faffff; }

.daily-situation-mini-card header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 3px;
  min-height: 17px;
}

.daily-situation-mini-card header > span {
  color: #526973;
}

.daily-situation-mini-card header .ui-icon-glyph {
  width: 14px;
  height: 14px;
}

.daily-situation-mini-card header b {
  overflow: hidden;
  max-width: calc(100% - 18px);
  color: #687981;
  font-size: .49rem;
  letter-spacing: .035em;
  text-align: right;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.daily-situation-mini-label {
  display: -webkit-box;
  min-height: 24px;
  margin-top: 4px;
  overflow: hidden;
  color: #384950;
  font-size: .62rem;
  font-weight: 800;
  line-height: 1.18;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.daily-situation-mini-card > strong {
  display: block;
  margin: auto 0 1px;
  overflow: hidden;
  color: var(--sie-text);
  font-size: 1.18rem;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.daily-situation-mini-card > small {
  display: -webkit-box;
  min-height: 22px;
  overflow: hidden;
  color: var(--sie-muted);
  font-size: .54rem;
  line-height: 1.18;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.daily-situation-focus-grid {
  gap: 8px;
}

.daily-situation-priorities,
.daily-situation-action-panel {
  padding: 11px;
}

.daily-situation-priorities .section-heading,
.daily-situation-action-panel .section-heading {
  margin-bottom: 7px;
}

.daily-situation-priorities .section-heading .muted,
.daily-situation-action-panel .section-heading .muted {
  display: none;
}

.daily-situation-priority-list,
.daily-situation-action-list {
  gap: 5px;
}

.daily-situation-priority-list li {
  padding: 7px 8px;
}

.daily-situation-priority-main > p,
.daily-situation-priority-main > span,
.daily-situation-priority-list li > small,
.daily-situation-action-list li,
.daily-situation-priority-remaining {
  font-size: .65rem;
}

.daily-situation-priority-source {
  font-size: .52rem !important;
}

.daily-situation-collapsible {
  padding: 0;
  overflow: clip;
}

.daily-situation-collapsible > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 48px;
  padding: 9px 12px;
  cursor: pointer;
  list-style: none;
}

.daily-situation-collapsible > summary::-webkit-details-marker {
  display: none;
}

.daily-situation-collapsible > summary::after {
  content: "+";
  flex: 0 0 auto;
  color: var(--sie-primary-ink);
  font-size: 1rem;
  font-weight: 900;
}

.daily-situation-collapsible[open] > summary::after {
  content: "−";
}

.daily-situation-collapsible > summary > span:first-child {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.daily-situation-collapsible > summary small {
  color: var(--sie-muted);
  font-size: .56rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.daily-situation-collapsible > summary strong {
  font-size: .78rem;
}

.daily-situation-collapsible > summary > span:not(:first-child) {
  margin-left: auto;
  color: var(--sie-muted);
  font-size: .62rem;
}

.daily-situation-collapsible[open] > summary {
  border-bottom: 1px solid #e5eaec;
  background: #fbfcfc;
}

.daily-situation-changes > :not(summary),
.daily-situation-system-section > :not(summary),
.daily-situation-requested-data > :not(summary),
.daily-situation-weather-detail > :not(summary) {
  margin-right: 12px;
  margin-left: 12px;
}

.daily-situation-changes > :last-child,
.daily-situation-system-section > :last-child,
.daily-situation-requested-data > :last-child,
.daily-situation-weather-detail > :last-child {
  margin-bottom: 12px;
}

.daily-situation-details-intro {
  margin-top: 9px;
  font-size: .68rem;
}

.daily-situation-system-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
  margin-top: 10px;
}

.daily-situation-system-card {
  min-height: 185px;
  padding: 9px;
}

.daily-situation-system-icon .ui-icon-glyph {
  width: 19px;
  height: 19px;
}

@media (max-width: 1279px) {
  .daily-situation-indicator-groups {
    grid-template-columns: 1fr;
  }

  .daily-situation-system-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.public-form-config-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 22px;
  border-left: 4px solid var(--sie-primary);
}

.public-form-config-hero h2,
.public-form-config-hero p {
  margin: 0;
}

.public-form-config-hero p {
  max-width: 820px;
  margin-top: 8px;
  color: var(--sie-muted);
}

.public-form-config-form {
  display: grid;
  gap: 18px;
}

.public-form-config-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.public-form-config-card {
  min-height: 150px;
  padding: 18px;
  background: #f8fafc;
}

.public-form-config-card .status-badge {
  width: max-content;
}

.public-form-config-card .system-setting-copy strong {
  font-size: 15px;
}

@media (max-width: 760px) {
  .public-form-config-hero {
    align-items: stretch;
    flex-direction: column;
  }

  .public-form-config-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  .daily-situation-hero {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .daily-situation-reference-form {
    grid-column: 1 / -1;
  }

  .daily-situation-briefing-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .daily-situation-information-grid {
    grid-template-columns: 1fr;
  }

  .daily-situation-information-definition {
    min-height: 0;
  }

  .daily-situation-page .decision-briefing.is-compact .decision-briefing-header {
    align-items: flex-start;
  }
}

@media (max-width: 700px) {
  .daily-situation-briefing-grid,
  .daily-situation-mini-grid,
  .daily-situation-system-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .daily-situation-page .decision-briefing.is-compact .decision-briefing-header {
    display: grid;
  }

  .daily-situation-page .decision-briefing.is-compact .decision-briefing-actions {
    justify-content: flex-start;
  }

  .daily-situation-collapsible > summary {
    align-items: flex-start;
  }
}

@media (max-width: 420px) {
  .daily-situation-hero {
    grid-template-columns: 1fr;
  }

  .daily-situation-hero-visual {
    display: none;
  }

  .daily-situation-briefing-grid {
    grid-template-columns: 1fr;
  }

  .daily-situation-mini-card {
    min-height: 100px;
  }

  .daily-situation-collapsible > summary > span:not(:first-child) {
    display: none;
  }
}

@media print {
  .daily-situation-page {
    gap: 6px;
  }

  .daily-situation-collapsible,
  .daily-situation-bulletin-context,
  .daily-situation-provenance,
  .daily-situation-footer {
    display: none !important;
  }

  .daily-situation-hero,
  .daily-situation-briefing-board,
  .daily-situation-information-board,
  .daily-situation-indicator-group,
  .daily-situation-priorities,
  .daily-situation-action-panel {
    break-inside: avoid;
    padding: 7px;
  }

  .daily-situation-hero {
    grid-template-columns: auto 1fr;
  }

  .daily-situation-briefing-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 4px;
  }

  .daily-situation-information-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
  }

  .daily-situation-information-card > header,
  .daily-situation-information-card li,
  .daily-situation-information-definition {
    padding: 5px;
  }

  .daily-situation-information-card li {
    padding-left: 14px;
    font-size: 7px;
  }

  .daily-situation-information-card li::before {
    top: 9px;
    left: 5px;
  }

  .daily-situation-briefing-tile {
    min-height: 78px;
    padding: 5px;
  }

  .daily-situation-indicator-groups {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
  }

  .daily-situation-mini-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 3px;
  }

  .daily-situation-mini-card {
    min-height: 78px;
    padding: 4px;
  }

  .daily-situation-mini-card > strong {
    font-size: 12px;
  }

  .daily-situation-mini-label,
  .daily-situation-mini-card > small {
    min-height: 0;
    font-size: 7px;
  }

  .daily-situation-focus-grid {
    grid-template-columns: 1.35fr .65fr;
    gap: 5px;
  }
}

.hospital-approval-form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 12px;
}

.hospital-approval-form-card {
  display: grid;
  gap: 5px;
  padding: 16px;
  color: inherit;
  text-decoration: none;
  border: 1px solid #dbe5ec;
  border-radius: 14px;
  background: #f8fafc;
}

.hospital-approval-form-card.is-active {
  border-color: #0b6fa4;
  box-shadow: 0 0 0 2px rgb(11 111 164 / 12%);
  background: #eff8fc;
}

.hospital-approval-form-card span,
.hospital-approval-form-card small {
  color: #64748b;
}

.hospital-approval-form-card b {
  color: #0b5f8a;
  font-size: 0.84rem;
}

.hospital-approval-preview {
  display: grid;
  gap: 5px;
  margin: 14px 0;
  padding: 13px 15px;
  border-left: 4px solid #be185d;
  border-radius: 10px;
  background: #fdf2f8;
}

.hospital-approval-preview > span,
.hospital-approval-preview > em {
  color: #9d174d;
  font-size: 0.78rem;
}

.hospital-approval-list {
  display: grid;
  gap: 1rem;
}

.hospital-approval-card,
.hospital-approval-card form {
  display: grid;
  gap: 1rem;
}

.hospital-approval-card {
  scroll-margin-top: 1rem;
}

.hospital-approval-card.is-focused,
.hospital-approval-card:target {
  border-color: #e85d3c;
  box-shadow: 0 0 0 3px rgba(232, 93, 60, 0.16), var(--shadow-sm);
}

.hospital-approval-card-header,
.hospital-approval-summary,
.hospital-approval-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  align-items: start;
}

.hospital-approval-card-header {
  grid-template-columns: minmax(0, 1fr) auto;
}

.hospital-approval-card-header h2,
.hospital-approval-card-header p {
  margin-bottom: .25rem;
}

.hospital-approval-summary > div {
  display: grid;
  gap: .25rem;
  padding: .9rem;
  border: 1px solid var(--border-color, #dbe2ea);
  border-radius: .75rem;
}

.hospital-approval-summary span,
.hospital-approval-summary small {
  color: var(--text-muted, #667085);
}

.hospital-approval-details summary {
  cursor: pointer;
  font-weight: 700;
}

.hospital-approval-details .detail-grid {
  margin-top: 1rem;
}

@media (max-width: 720px) {
  .hospital-approval-card-header,
  .hospital-approval-summary,
  .hospital-approval-actions {
    grid-template-columns: 1fr;
  }

  .hospital-approval-card-header .status-badge {
    justify-self: start;
  }

  .hospital-approval-filters .btn,
  .hospital-approval-actions .btn {
    width: 100%;
  }
}

/* Evidências e referências */
.evidence-page {
  --evidence-ink: #17333a;
  --evidence-muted: #5f7479;
  --evidence-line: #d8e5e4;
  --evidence-soft: #f2f8f7;
  display: grid;
  gap: 1.2rem;
}

.evidence-page [id] {
  scroll-margin-top: 1.25rem;
}

.evidence-hero {
  align-items: stretch;
  background: linear-gradient(125deg, #063d49 0%, #08727b 64%, #19929a 100%);
  border-radius: 18px;
  color: #fff;
  display: grid;
  gap: 1.5rem;
  grid-template-columns: minmax(0, 1fr) minmax(235px, 310px);
  overflow: hidden;
  padding: clamp(1.35rem, 3vw, 2rem);
  position: relative;
}

.evidence-hero::after {
  background-image: radial-gradient(rgba(255, 255, 255, .22) 1.5px, transparent 1.5px);
  background-size: 21px 21px;
  content: "";
  inset: 0 0 0 55%;
  opacity: .35;
  pointer-events: none;
  position: absolute;
}

.evidence-hero-copy,
.evidence-review-card {
  position: relative;
  z-index: 1;
}

.evidence-eyebrow,
.evidence-section-heading span {
  color: #79e1df;
  display: block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .11em;
  margin-bottom: .42rem;
}

.evidence-hero h1 {
  color: inherit;
  font-size: clamp(1.75rem, 3vw, 2.65rem);
  line-height: 1.12;
  margin: 0 0 .55rem;
}

.evidence-hero-copy > p {
  color: rgba(255, 255, 255, .86);
  font-size: .98rem;
  line-height: 1.65;
  margin: 0;
  max-width: 760px;
}

.evidence-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: 1.05rem;
}

.evidence-hero-actions a {
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .35);
  border-radius: 999px;
  color: #fff;
  font-size: .78rem;
  font-weight: 600;
  padding: .48rem .78rem;
  text-decoration: none;
}

.evidence-hero-actions a:hover,
.evidence-hero-actions a:focus-visible {
  background: #fff;
  color: #075b65;
}

.evidence-review-card {
  align-content: center;
  align-self: stretch;
  background: rgba(255, 255, 255, .11);
  border: 1px solid rgba(255, 255, 255, .26);
  border-radius: 14px;
  display: grid;
  padding: 1rem 1.1rem;
}

.evidence-review-card span,
.evidence-review-card small {
  color: rgba(255, 255, 255, .72);
  font-size: .72rem;
}

.evidence-review-card strong {
  font-size: 1.08rem;
  margin-top: .18rem;
}

.evidence-review-card p {
  color: rgba(255, 255, 255, .88);
  font-size: .78rem;
  line-height: 1.5;
  margin: .45rem 0 .65rem;
}

.evidence-summary {
  display: grid;
  gap: .75rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.evidence-summary article {
  background: #fff;
  border: 1px solid var(--evidence-line);
  border-radius: 12px;
  box-shadow: var(--sie-shadow);
  display: grid;
  gap: .1rem;
  padding: .95rem 1rem;
}

.evidence-summary strong {
  color: #08727b;
  font-size: 1.55rem;
  line-height: 1;
}

.evidence-summary span {
  color: var(--evidence-muted);
  font-size: .76rem;
}

.evidence-scope-note {
  background: #fff9e9;
  border: 1px solid #eedda4;
  border-left: 4px solid #c88a12;
  border-radius: 10px;
  color: #654c17;
  padding: .85rem 1rem;
}

.evidence-scope-note strong {
  display: block;
  font-size: .78rem;
  margin-bottom: .15rem;
  text-transform: uppercase;
}

.evidence-scope-note p {
  font-size: .8rem;
  line-height: 1.55;
  margin: 0;
}

.evidence-section {
  background: #fff;
  border: 1px solid var(--evidence-line);
  border-radius: 15px;
  box-shadow: var(--sie-shadow);
  padding: clamp(1rem, 2.4vw, 1.45rem);
}

.evidence-section-heading {
  align-items: end;
  border-bottom: 1px solid var(--evidence-line);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 1rem;
  padding-bottom: .9rem;
}

.evidence-section-heading span {
  color: #08727b;
}

.evidence-section-heading h2 {
  color: var(--evidence-ink);
  font-size: 1.22rem;
  margin: 0;
}

.evidence-section-heading > p {
  color: var(--evidence-muted);
  font-size: .77rem;
  line-height: 1.5;
  margin: 0;
  max-width: 430px;
  text-align: right;
}

.evidence-action-grid {
  display: grid;
  gap: .8rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.evidence-action-card {
  background: #fbfdfd;
  border: 1px solid var(--evidence-line);
  border-radius: 12px;
  display: grid;
  gap: .85rem;
  grid-template-columns: 34px minmax(0, 1fr);
  padding: 1rem;
}

.evidence-action-number {
  align-items: center;
  background: #dff3f2;
  border-radius: 9px;
  color: #08727b;
  display: flex;
  font-size: .73rem;
  font-weight: 700;
  height: 34px;
  justify-content: center;
}

.evidence-status {
  color: #16804d;
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .08em;
}

.evidence-action-card h3,
.evidence-recommendation-card h3,
.evidence-reference-card h3 {
  color: var(--evidence-ink);
  font-size: .94rem;
  line-height: 1.4;
  margin: .18rem 0 .42rem;
}

.evidence-action-card p,
.evidence-recommendation-card p,
.evidence-reference-card p {
  color: var(--evidence-muted);
  font-size: .76rem;
  line-height: 1.55;
  margin: 0 0 .42rem;
}

.evidence-action-card .evidence-system {
  color: #3b555b;
}

.evidence-dashboard-section {
  background: linear-gradient(145deg, #f8fcfb 0%, #ffffff 70%);
}

.evidence-dashboard-nav {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.evidence-dashboard-nav a {
  align-items: center;
  background: #fff;
  border: 1px solid var(--evidence-line);
  border-radius: 11px;
  color: var(--evidence-ink);
  display: grid;
  font-size: .73rem;
  font-weight: 700;
  gap: .55rem;
  grid-template-columns: 30px minmax(0, 1fr);
  line-height: 1.3;
  min-height: 62px;
  padding: .65rem .72rem;
  text-decoration: none;
  transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.evidence-dashboard-nav a:hover,
.evidence-dashboard-nav a:focus-visible {
  border-color: #45aaa8;
  box-shadow: 0 10px 24px rgba(8, 77, 84, .09);
  transform: translateY(-1px);
}

.evidence-dashboard-nav a > span {
  align-items: center;
  background: #e2f3f1;
  border-radius: 8px;
  color: #08727b;
  display: flex;
  font-size: .68rem;
  height: 30px;
  justify-content: center;
}

.evidence-dashboard-block {
  background: #fff;
  border: 1px solid var(--evidence-line);
  border-radius: 16px;
  box-shadow: var(--sie-shadow);
  display: grid;
  gap: 1rem;
  min-height: max(760px, calc(100vh - 2.5rem));
  padding: clamp(1rem, 2.2vw, 1.45rem);
}

.evidence-dashboard-block:target {
  border-color: #279897;
  box-shadow: 0 0 0 3px rgba(39, 152, 151, .12), var(--sie-shadow);
}

.evidence-dashboard-header {
  align-items: center;
  border-bottom: 1px solid var(--evidence-line);
  display: grid;
  gap: .9rem;
  grid-template-columns: 54px minmax(0, 1fr) auto;
  padding-bottom: .85rem;
}

.evidence-dashboard-number {
  align-items: center;
  background: linear-gradient(145deg, #075a65, #0d8a8c);
  border-radius: 13px;
  color: #fff;
  display: flex;
  font-size: 1.05rem;
  font-weight: 800;
  height: 54px;
  justify-content: center;
}

.evidence-dashboard-header > div:nth-child(2) > span,
.evidence-dashboard-synthesis > span {
  color: #08727b;
  display: block;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.evidence-dashboard-header h2 {
  color: var(--evidence-ink);
  font-size: clamp(1.25rem, 2vw, 1.62rem);
  line-height: 1.2;
  margin: .15rem 0 0;
}

.evidence-dashboard-indicators {
  display: flex;
  gap: .45rem;
}

.evidence-dashboard-indicators span {
  background: #f1f7f6;
  border: 1px solid #d8e8e5;
  border-radius: 9px;
  color: var(--evidence-muted);
  display: grid;
  font-size: .62rem;
  min-width: 64px;
  padding: .42rem .5rem;
  text-align: center;
}

.evidence-dashboard-indicators strong {
  color: #08727b;
  font-size: .92rem;
}

.evidence-dashboard-synthesis {
  background: linear-gradient(120deg, #eff8f6 0%, #f9fcfb 100%);
  border: 1px solid #d6e9e4;
  border-left: 5px solid #08727b;
  border-radius: 11px;
  padding: .85rem 1rem;
}

.evidence-dashboard-synthesis p {
  color: #36575a;
  font-size: .82rem;
  line-height: 1.62;
  margin: .35rem 0 0;
}

.evidence-dashboard-core,
.evidence-dashboard-validation {
  display: grid;
  gap: .85rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.evidence-dashboard-panel,
.evidence-dashboard-validation > section,
.evidence-implementation-panel {
  border: 1px solid var(--evidence-line);
  border-radius: 12px;
  padding: .9rem 1rem;
}

.evidence-dashboard-panel.is-insight {
  background: #fbfdfd;
}

.evidence-dashboard-panel.is-question {
  background: #fffaf0;
  border-color: #eadfbf;
}

.evidence-dashboard-panel-title {
  align-items: center;
  display: flex;
  gap: .55rem;
  margin-bottom: .6rem;
}

.evidence-dashboard-panel-title > span {
  align-items: center;
  background: #e1f2f0;
  border-radius: 7px;
  color: #08727b;
  display: flex;
  flex: 0 0 28px;
  font-size: .65rem;
  font-weight: 800;
  height: 28px;
  justify-content: center;
}

.is-question .evidence-dashboard-panel-title > span {
  background: #f7e7b7;
  color: #8b6510;
}

.evidence-dashboard-panel-title h3 {
  color: var(--evidence-ink);
  font-size: .86rem;
  margin: 0;
}

.evidence-dashboard-panel-title p {
  color: var(--evidence-muted);
  font-size: .68rem;
  margin: .14rem 0 0;
}

.evidence-dashboard-panel ul,
.evidence-dashboard-panel ol,
.evidence-dashboard-validation ul {
  display: grid;
  gap: .46rem;
  margin: 0;
  padding-left: 1.12rem;
}

.evidence-dashboard-panel li,
.evidence-dashboard-validation li {
  color: #486368;
  font-size: .74rem;
  line-height: 1.48;
  padding-left: .15rem;
}

.evidence-implementation-panel {
  background: #f8fbfb;
}

.evidence-implementation-grid {
  display: grid;
  gap: .65rem;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.evidence-implementation-grid article {
  background: #fff;
  border: 1px solid var(--evidence-line);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  min-height: 175px;
  padding: .75rem;
}

.evidence-implementation-status {
  align-self: flex-start;
  border-radius: 999px;
  font-size: .58rem;
  font-weight: 800;
  letter-spacing: .04em;
  padding: .24rem .42rem;
}

.evidence-implementation-status.is-done {
  background: #e5f5ea;
  color: #167046;
}

.evidence-implementation-status.is-partial {
  background: #fff0dc;
  color: #9a5a0d;
}

.evidence-implementation-status.is-next {
  background: #edf2f7;
  color: #526579;
}

.evidence-implementation-grid h4 {
  color: var(--evidence-ink);
  font-size: .8rem;
  line-height: 1.35;
  margin: .52rem 0 .35rem;
}

.evidence-implementation-grid p {
  color: var(--evidence-muted);
  font-size: .69rem;
  line-height: 1.45;
  margin: 0 0 .6rem;
}

.evidence-implementation-grid a {
  color: #08727b;
  font-size: .65rem;
  font-weight: 700;
  margin-top: auto;
  text-decoration: none;
}

.evidence-dashboard-validation > section {
  background: #fff;
}

.evidence-validation-label {
  display: block;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .07em;
  margin-bottom: .55rem;
}

.evidence-validation-label.is-positive {
  color: #167046;
}

.evidence-validation-label.is-caution {
  color: #a8640f;
}

.evidence-dashboard-footer {
  align-items: end;
  border-top: 1px solid var(--evidence-line);
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  padding-top: .75rem;
}

.evidence-dashboard-footer strong {
  color: var(--evidence-muted);
  font-size: .68rem;
  text-transform: uppercase;
}

.evidence-dashboard-footer .evidence-citations {
  margin-top: .35rem;
}

.evidence-dashboard-footer > a {
  color: #08727b;
  font-size: .66rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.evidence-citations {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .7rem;
}

.evidence-citation {
  background: #edf7f7;
  border: 1px solid #cee6e4;
  border-radius: 999px;
  color: #086873;
  font-size: .66rem;
  font-weight: 600;
  padding: .28rem .48rem;
  text-decoration: none;
}

.evidence-citation:hover,
.evidence-citation:focus-visible {
  background: #08727b;
  border-color: #08727b;
  color: #fff;
}

.evidence-recommendation-section {
  background: #f8fbfb;
}

.evidence-recommendation-list {
  display: grid;
  gap: .7rem;
}

.evidence-recommendation-card {
  background: #fff;
  border: 1px solid var(--evidence-line);
  border-radius: 12px;
  display: grid;
  grid-template-columns: 118px minmax(0, 1fr);
  overflow: hidden;
}

.evidence-priority {
  align-content: center;
  background: #eaf5f4;
  display: grid;
  justify-items: center;
  padding: 1rem .65rem;
  text-align: center;
}

.evidence-priority-p1 {
  background: #fff0ec;
  color: #a94024;
}

.evidence-priority-p2 {
  background: #eaf5f4;
  color: #08727b;
}

.evidence-priority strong {
  font-size: 1.15rem;
}

.evidence-priority span {
  font-size: .62rem;
  font-weight: 600;
  text-transform: uppercase;
}

.evidence-recommendation-body {
  padding: .9rem 1rem;
}

.evidence-library-grid {
  display: grid;
  gap: .8rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.evidence-reference-card {
  border: 1px solid var(--evidence-line);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  min-height: 270px;
  padding: .95rem;
}

.evidence-reference-card:target {
  border-color: #08727b;
  box-shadow: 0 0 0 3px rgba(8, 114, 123, .14);
}

.evidence-reference-meta,
.evidence-reference-footer {
  align-items: center;
  display: flex;
  gap: .5rem;
  justify-content: space-between;
}

.evidence-reference-meta > span:last-child {
  color: var(--evidence-muted);
  font-size: .7rem;
  font-weight: 600;
}

.evidence-reference-type {
  border-radius: 999px;
  font-size: .63rem;
  font-weight: 700;
  padding: .27rem .48rem;
}

.evidence-reference-type.is-article {
  background: #e8f5ed;
  color: #14683e;
}

.evidence-reference-type.is-institutional {
  background: #e9f3fb;
  color: #24618b;
}

.evidence-reference-card .evidence-authors {
  color: #3e585e;
  font-weight: 600;
}

.evidence-reference-card .evidence-relation {
  background: var(--evidence-soft);
  border-radius: 8px;
  color: #3e585e;
  margin-top: .35rem;
  padding: .55rem .62rem;
}

.evidence-reference-footer {
  border-top: 1px solid var(--evidence-line);
  margin-top: auto;
  padding-top: .72rem;
}

.evidence-reference-footer > span {
  color: #16804d;
  font-size: .64rem;
  font-weight: 600;
}

.evidence-reference-footer a {
  color: #08727b;
  font-size: .68rem;
  font-weight: 700;
  text-align: right;
  text-decoration: none;
}

.evidence-reference-footer a:hover,
.evidence-reference-footer a:focus-visible {
  text-decoration: underline;
}

.evidence-method-note {
  background: #eef6f5;
  border-radius: 12px;
  color: #365158;
  padding: .85rem 1rem;
}

.evidence-method-note strong {
  display: block;
  font-size: .75rem;
  margin-bottom: .16rem;
  text-transform: uppercase;
}

.evidence-method-note p {
  font-size: .76rem;
  line-height: 1.55;
  margin: 0;
}

@media (max-width: 1180px) {
  .evidence-library-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .evidence-dashboard-nav,
  .evidence-implementation-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .evidence-hero,
  .evidence-action-grid {
    grid-template-columns: 1fr;
  }

  .evidence-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .evidence-dashboard-header {
    grid-template-columns: 48px minmax(0, 1fr);
  }

  .evidence-dashboard-indicators {
    grid-column: 1 / -1;
  }

  .evidence-dashboard-core,
  .evidence-dashboard-validation {
    grid-template-columns: 1fr;
  }

  .evidence-section-heading {
    align-items: start;
    flex-direction: column;
  }

  .evidence-section-heading > p {
    text-align: left;
  }
}

@media (max-width: 580px) {
  .evidence-summary,
  .evidence-library-grid,
  .evidence-dashboard-nav,
  .evidence-implementation-grid {
    grid-template-columns: 1fr;
  }

  .evidence-dashboard-block {
    min-height: 0;
  }

  .evidence-dashboard-indicators {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .evidence-dashboard-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .evidence-recommendation-card {
    grid-template-columns: 1fr;
  }

  .evidence-priority {
    align-items: center;
    display: flex;
    gap: .45rem;
    justify-content: flex-start;
    padding: .55rem .8rem;
  }

  .evidence-reference-card {
    min-height: 0;
  }

  .evidence-reference-footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .evidence-reference-footer a {
    text-align: left;
  }
}

@media print {
  .evidence-hero-actions {
    display: none;
  }

  .evidence-hero {
    background: #fff;
    border: 1px solid #999;
    color: #111;
  }

  .evidence-hero-copy > p,
  .evidence-review-card p,
  .evidence-review-card span,
  .evidence-review-card small {
    color: #333;
  }

  .evidence-action-grid,
  .evidence-library-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .evidence-dashboard-block {
    break-before: page;
    min-height: 0;
  }
}

/* Rota dos rios --------------------------------------------------------- */
.river-route-page {
  --rr-blue: #075f70;
  --rr-cyan: #0c8592;
  --rr-line: #d8e4e8;
  --rr-soft: #f2f8f9;
  display: grid;
  gap: 16px;
}

.river-route-hero {
  align-items: center;
  background: linear-gradient(120deg, #063f4d, #087f8c 64%, #46a9ad);
  border-radius: 14px;
  color: #fff;
  display: flex;
  justify-content: space-between;
  overflow: hidden;
  padding: 22px 26px;
  position: relative;
}

.river-route-hero::after {
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 50%;
  content: "";
  height: 190px;
  position: absolute;
  right: -42px;
  top: -82px;
  width: 190px;
}

.river-route-hero h1 { color: #fff; margin: 2px 0 5px; }
.river-route-hero p { margin: 0; max-width: 760px; }
.river-route-hero .eyebrow { color: #bff2f2; }

.river-route-model-badge {
  background: rgba(255,255,255,.15);
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 850;
  padding: 7px 11px;
  position: relative;
  text-transform: uppercase;
  z-index: 1;
}

.river-route-boundary {
  background: #fff8e8;
  border: 1px solid #ead7a5;
  border-left: 5px solid #b7791f;
  border-radius: 9px;
  display: grid;
  font-size: 12px;
  gap: 2px;
  line-height: 1.45;
  padding: 10px 13px;
}

.river-route-operational .section-heading { align-items: flex-start; }
.river-route-decision-board {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 10px;
}
.river-route-decision-card {
  background: #f8fbfc;
  border: 1px solid var(--rr-line);
  border-top: 5px solid #94a3b8;
  border-radius: 11px;
  display: grid;
  gap: 10px;
  grid-template-columns: 31px minmax(0, 1fr);
  min-height: 180px;
  padding: 13px;
}
.river-route-decision-card.is-critical { background: #fff5f5; border-top-color: #dc2626; }
.river-route-decision-card.is-warning { background: #fff9ee; border-top-color: #ea7b19; }
.river-route-decision-card.is-ok { background: #f1fbf5; border-top-color: #16804d; }
.river-route-decision-card.is-forecast { background: #edf8fb; border-top-color: #087f8c; }
.river-route-decision-card.is-unavailable { background: #f7f8f9; border-top-color: #94a3b8; }
.river-route-decision-step {
  align-items: center;
  background: #e5eef0;
  border-radius: 50%;
  color: #36555e;
  display: flex;
  font-size: 12px;
  font-weight: 900;
  height: 31px;
  justify-content: center;
  width: 31px;
}
.river-route-decision-card.is-critical .river-route-decision-step { background: #fee2e2; color: #991b1b; }
.river-route-decision-card.is-warning .river-route-decision-step { background: #ffedd5; color: #9a4b08; }
.river-route-decision-card.is-ok .river-route-decision-step { background: #dcfce7; color: #166534; }
.river-route-decision-label {
  color: #647781;
  display: block;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .08em;
  margin-bottom: 2px;
}
.river-route-decision-card h3 { color: #173f4b; font-size: 13px; line-height: 1.35; margin: 0 0 8px; }
.river-route-decision-card [data-river-route-decision-answer] { color: #254b56; display: block; font-size: 16px; line-height: 1.25; }
.river-route-decision-card.is-critical [data-river-route-decision-answer] { color: #a41320; }
.river-route-decision-card.is-warning [data-river-route-decision-answer] { color: #9a4b08; }
.river-route-decision-card.is-ok [data-river-route-decision-answer] { color: #166534; }
.river-route-decision-card p { color: #526c74; font-size: 10px; line-height: 1.5; margin: 7px 0; }
.river-route-decision-card small { border-top: 1px solid rgba(100,119,129,.18); color: #647781; display: block; font-size: 8px; line-height: 1.45; padding-top: 7px; }
.river-route-decision-explainer {
  align-items: center;
  background: #f4f8f9;
  border: 1px solid var(--rr-line);
  border-radius: 8px;
  display: flex;
  flex-wrap: wrap;
  font-size: 9px;
  gap: 8px 15px;
  margin-bottom: 10px;
  padding: 8px 10px;
}
.river-route-decision-explainer > strong { color: #284d57; }
.river-route-decision-explainer > span { align-items: center; color: #607680; display: flex; gap: 5px; }
.river-route-decision-explainer b { background: #94a3b8; border-radius: 50%; display: inline-block; height: 8px; width: 8px; }
.river-route-decision-explainer b.is-red { background: #dc2626; }
.river-route-decision-explainer b.is-orange { background: #ea7b19; }
.river-route-decision-explainer b.is-blue { background: #087f8c; }
.river-route-decision-explainer b.is-yellow { background: #d6a514; }
.river-route-calibration-summary { background: #edf8fb; border: 1px solid #c7e4e8; border-left: 4px solid #087f8c; border-radius: 8px; display: grid; font-size: 9px; gap: 2px; margin-bottom: 10px; padding: 8px 10px; }
.river-route-calibration-summary strong { color: #174b57; }
.river-route-calibration-summary span { color: #57717a; line-height: 1.45; }
.river-route-calibration-summary small { border-top:1px solid #c7e4e8; color:#527078; font-size:8px; line-height:1.45; margin-top:4px; padding-top:4px; }
.river-route-critical-stations {
  background: #fff6f5;
  border: 1px solid #f2c8c3;
  border-radius: 9px;
  margin-bottom: 10px;
  padding: 10px;
}
.river-route-critical-stations > strong { color: #92251d; display: block; font-size: 11px; margin-bottom: 7px; }
.river-route-critical-stations > div { display: grid; gap: 6px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.river-route-critical-stations button {
  align-items: center;
  background: #fff;
  border: 1px solid #efd4d0;
  border-radius: 7px;
  color: #284d57;
  display: flex;
  font: inherit;
  justify-content: space-between;
  padding: 7px 8px;
  text-align: left;
}
.river-route-critical-stations button > span { display: grid; }
.river-route-critical-stations button small { color: #6b7f88; font-size: 8px; }
.river-route-critical-stations button em { color: #a41320; display:grid; font-size: 9px; font-style: normal; font-weight: 800; gap:3px; min-width:245px; text-align:right; }
.river-route-critical-stations button em > b { font:inherit; }
.river-route-critical-stations button .river-route-flood-percentage { color:#6b7f88; display:grid; font-size:8px; gap:3px; justify-items:stretch; min-width:245px; white-space:nowrap; }
.river-route-cota-gauge { border:1px solid rgba(30,41,59,.18); border-radius:999px; box-shadow:inset 0 1px 2px rgba(15,23,42,.14); display:block; height:12px; overflow:visible; position:relative; width:100%; }
.river-route-cota-gauge > b { background:#fff; border-left:1px solid currentColor; border-right:1px solid currentColor; display:block; height:16px; margin-left:-1px; position:absolute; top:-3px; width:2px; z-index:2; }
.river-route-cota-gauge > b.is-attention { color:#a98c00; }
.river-route-cota-gauge > b.is-alert { color:#c55b08; }
.river-route-cota-gauge > b.is-flood { color:#dc1638; margin-left:-3px; width:4px; }
.river-route-cota-gauge > i.is-current { background:#71858d; border:2px solid #fff; border-radius:50%; box-shadow:0 0 0 2px #71858d; display:block; height:10px; margin-left:-5px; position:absolute; top:0; width:10px; z-index:3; }
.river-route-flood-percentage.is-rising .river-route-cota-gauge > i.is-current { background:#dc2626; box-shadow:0 0 0 2px #dc2626; }
.river-route-flood-percentage.is-falling .river-route-cota-gauge > i.is-current { background:#16a34a; box-shadow:0 0 0 2px #16a34a; }
.river-route-cota-current { color:#60747c; display:block; text-align:right; }
.river-route-cota-current > b { color:#173f4b; font-size:9px; }
.river-route-cota-legend { align-items:center; color:#687d85; display:flex; font-size:7px; gap:3px; justify-content:flex-end; }
.river-route-cota-legend > i { border-radius:50%; display:inline-block; height:5px; margin-left:4px; width:5px; }
.river-route-cota-legend > i.is-attention { background:#eab308; }
.river-route-cota-legend > i.is-alert { background:#f97316; }
.river-route-cota-legend > i.is-flood { background:#dc1638; }
.river-route-critical-stations > strong:not(:first-child) { border-top: 1px solid #efd4d0; margin-top: 10px; padding-top: 9px; }
.river-route-critical-stations button.is-watch { border-color: #ead7a5; }
.river-route-critical-stations button.is-watch em { color: #9a5a08; }
.river-route-critical-stations button.is-above-flood { border-color:#111827; box-shadow:inset 4px 0 #111827; }
.river-route-critical-stations button.is-above-flood em { color:#111827; }
.river-route-critical-stations button.is-stale-reading .is-reading-status { color:#9a5a08; font-weight:800; }
.river-route-flood-percentage.is-above-flood .river-route-cota-gauge > i.is-current { background:#111827; box-shadow:0 0 0 2px #111827; }
.river-route-flood-percentage.is-above-flood .river-route-cota-current > b { color:#111827; }
.river-route-critical-stations button.is-forecast { background: #effafa; border-color: #9ed6db; }
.river-route-critical-stations button.is-forecast em { color: #08717c; }
.river-route-critical-stations button.is-forecast .is-current-cota { color:#173f4b; font-weight:850; }
.river-route-technical-details { border-top: 1px solid var(--rr-line); margin-top: 3px; padding-top: 4px; }
.river-route-technical-details > summary { color: var(--rr-blue); cursor: pointer; font-size: 10px; font-weight: 850; padding: 8px 2px; }
.river-route-technical-details[open] > summary { margin-bottom: 8px; }
.river-route-status.is-monitoramento_hibrido,
.river-route-status.is-previsao_quantitativa_parcial { background: #fff3cd; color: #854d0e; }
.river-route-operational-kpis {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 10px;
}
.river-route-operational-kpis article {
  background: #f7fbfc;
  border: 1px solid var(--rr-line);
  border-radius: 9px;
  display: grid;
  gap: 2px;
  padding: 10px 12px;
}
.river-route-operational-kpis span { color: #647781; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.river-route-operational-kpis strong { color: var(--rr-blue); font-size: 20px; }
.river-route-operational-kpis small { color: #6b7f88; font-size: 9px; }
.river-route-operational-note {
  background: #eef7f8;
  border: 1px solid #c9e1e4;
  border-left: 4px solid var(--rr-cyan);
  border-radius: 8px;
  display: grid;
  font-size: 11px;
  gap: 2px;
  line-height: 1.4;
  margin-bottom: 12px;
  padding: 9px 11px;
}
.river-route-operational-note strong { color: #184a57; }
.river-route-source-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.river-route-source-card {
  border: 1px solid var(--rr-line);
  border-left: 4px solid #94a3b8;
  border-radius: 10px;
  display: grid;
  gap: 9px;
  min-width: 0;
  padding: 12px;
}
.river-route-source-card.is-calculavel { border-left-color: #15803d; }
.river-route-source-card.is-rota_sem_parametros { border-left-color: #d97706; }
.river-route-source-card header,
.river-route-source-card footer { align-items: center; display: flex; gap: 9px; justify-content: space-between; }
.river-route-source-card header > span { display: grid; min-width: 0; }
.river-route-source-card header small { color: #6b7f88; font-size: 9px; text-transform: uppercase; }
.river-route-source-card header strong { color: #173f4b; font-size: 14px; }
.river-route-source-card header > em {
  background: #eef2f3;
  border-radius: 999px;
  color: #536b74;
  flex: 0 0 auto;
  font-size: 8px;
  font-style: normal;
  font-weight: 900;
  padding: 4px 7px;
}
.river-route-source-card header > em.is-aumentando { background: #fee2e2; color: #991b1b; }
.river-route-source-card header > em.is-reduzindo { background: #dcfce7; color: #166534; }
.river-route-source-metrics { display: grid; gap: 6px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.river-route-source-metrics > span { background: #f5f9fa; border-radius: 6px; display: grid; gap: 1px; padding: 6px 7px; }
.river-route-source-metrics small { color: #6b7f88; font-size: 8px; text-transform: uppercase; }
.river-route-source-metrics strong { color: #24444f; font-size: 11px; }
.river-route-source-card > p { color: #607680; font-size: 10px; line-height: 1.4; margin: 0; }
.river-route-source-card ul { display: grid; gap: 5px; list-style: none; margin: 0; padding: 0; }
.river-route-source-card li { align-items: center; background: #fff8e8; border-radius: 6px; display: flex; font-size: 9px; gap: 8px; justify-content: space-between; padding: 6px 7px; }
.river-route-source-card li span { display: grid; }
.river-route-source-card li small { color: #7a6a43; }
.river-route-source-card li em { color: #854d0e; font-size: 8px; font-style: normal; text-align: right; }
.river-route-no-evidence { color: #72858c; font-size: 9px; }
.river-route-source-card footer { border-top: 1px solid #e3ebed; padding-top: 8px; }
.river-route-source-card footer > span { color: #657a83; font-size: 9px; }
.river-route-source-card footer .btn { min-height: 30px; padding: 4px 8px; }
.river-route-status.is-monitoramento_hibrido,
.river-route-status.is-previsao_quantitativa_parcial { background: #dcfce7; color: #166534; }
.river-route-status.is-sem_topologia,
.river-route-status.is-sem_vinculos_confiaveis,
.river-route-status.is-indisponivel { background: #fee2e2; color: #991b1b; }

.river-route-advanced { display: grid; gap: 12px; }
.river-route-advanced > summary {
  align-items: center;
  background: #fff;
  border: 1px solid var(--rr-line);
  border-radius: 10px;
  color: #173f4b;
  cursor: pointer;
  display: flex;
  font-size: 12px;
  font-weight: 850;
  justify-content: space-between;
  padding: 12px 14px;
}
.river-route-advanced > summary > span { display: grid; gap: 2px; }
.river-route-advanced > summary small { color: #6b7f88; font-size: 9px; font-weight: 500; }
.river-route-advanced[open] > summary { margin-bottom: 12px; }
.river-route-advanced > .panel,
.river-route-advanced > .river-route-workspace { margin-bottom: 12px; }

.river-route-kpis {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.river-route-kpis article {
  background: #fff;
  border: 1px solid var(--rr-line);
  border-radius: 10px;
  display: grid;
  gap: 1px;
  padding: 12px 14px;
}

.river-route-kpis article.is-ok { border-top: 4px solid #15803d; }
.river-route-kpis article.is-blocked { border-top: 4px solid #b91c1c; }
.river-route-kpis span { color: #647781; font-size: 10px; font-weight: 800; text-transform: uppercase; }
.river-route-kpis strong { color: #163d49; font-size: 21px; }
.river-route-kpis small { color: #6b7f88; font-size: 10px; }

.river-route-network .section-heading,
.river-route-timeline-panel .section-heading,
.river-route-scenario-form .section-heading,
.river-route-scenario-list .section-heading,
.river-route-methodology .section-heading { align-items: flex-start; }

.river-route-map-legend {
  display: flex;
  flex-wrap: wrap;
  font-size: 10px;
  gap: 7px 11px;
  justify-content: flex-end;
  max-width: 430px;
}

.river-route-map-legend span { align-items: center; display: inline-flex; gap: 4px; }
.river-route-map-legend i { background: #fff; border: 3px solid #087f8c; border-radius: 50%; height: 12px; width: 12px; }
.river-route-map-legend i.is-reservoir { background: #7c3aed; border-radius: 2px; }
.river-route-map-legend i.is-confluence { background: #b45309; transform: rotate(45deg); }
.river-route-map-legend i.is-critical-buffer { background: rgba(234,179,8,.28); border: 2px solid #eab308; height: 18px; width: 18px; }
.river-route-map-legend i.is-critical-buffer-alert { background:rgba(249,115,22,.27); border:2px solid #f97316; height:18px; width:18px; }
.river-route-map-legend i.is-critical-buffer-flood { background:rgba(220,38,38,.27); border:2px solid #dc2626; height:18px; width:18px; }
.river-route-map-legend i.is-impact-area { background:rgba(185,28,28,.2); border:2px solid #b91c1c; border-radius:2px; height:14px; transform:rotate(8deg); width:18px; }
.river-route-map-legend i.is-impact-context { background:rgba(183,121,31,.06); border:2px dashed #b7791f; border-radius:2px; height:14px; width:18px; }
.river-route-map-legend i.is-critical-buffer-rising { background:rgba(224,169,0,.13); border:4px solid #dc2626; height:16px; width:16px; }
.river-route-map-legend i.is-critical-buffer-falling { background:rgba(224,169,0,.13); border:3px solid #16a34a; height:16px; width:16px; }
.river-route-map-legend b { border-top: 4px solid #087f8c; display: inline-block; width: 20px; }
.river-route-map-legend b.is-pending { border-color: #94a3b8; border-top-style: dashed; }
.river-route-map-legend b.is-river-network { border-color: #2563eb; border-top-width: 2px; }
.river-route-impact-summary { align-items:center; background:#fffaf0; border:1px solid #f2cf85; border-left:4px solid #b7791f; border-radius:8px; color:#6f4c13; display:flex; font-size:9px; gap:10px; justify-content:space-between; margin:0 0 9px; padding:8px 10px; }
.river-route-impact-summary strong { color:#5f3f0d; font-size:10px; white-space:nowrap; }

.river-route-map-grid {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) 300px;
}

.river-route-map {
  background: #e7f0f2;
  border: 1px solid var(--rr-line);
  border-radius: 10px;
  height: 610px;
  overflow: hidden;
}

.river-route-node-detail {
  background: var(--rr-soft);
  border: 1px solid var(--rr-line);
  border-radius: 10px;
  max-height: 610px;
  overflow: auto;
  padding: 15px;
}

.river-route-node-detail h3 { color: var(--rr-blue); margin: 3px 0 8px; }
.river-route-node-detail > p { font-size: 11px; line-height: 1.45; }
.river-route-node-detail dl { display: grid; gap: 5px; margin: 12px 0; }
.river-route-node-detail dl div { background: #fff; border: 1px solid #e0eaed; border-radius: 6px; display: grid; gap: 1px; padding: 6px 8px; }
.river-route-node-detail dt { color: #687d87; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.river-route-node-detail dd { color: #24444f; font-size: 12px; font-weight: 750; margin: 0; }
.river-route-node-detail section { border-top: 1px solid #d7e4e7; display: grid; font-size: 10px; gap: 3px; margin-top: 10px; padding-top: 10px; }
.river-route-node-detail section h4 { margin: 0 0 3px; }
.river-route-node-detail .river-route-level-section { display: block; }
.river-route-level-section > header { align-items: start; display: flex; gap: 8px; justify-content: space-between; }
.river-route-level-section > header > div { display: grid; gap: 1px; }
.river-route-level-section > header a { color: var(--rr-blue); font-size: 8px; font-weight: 800; text-align: right; }
.river-route-level-chart { background: #fff; border: 1px solid #dce7ea; border-radius: 7px; color: #687d87; margin-top: 8px; min-height: 120px; overflow: hidden; padding: 6px; }
.river-route-level-chart.is-loading { align-items: center; display: flex; justify-content: center; }
.river-route-level-chart svg { display: block; height: auto; width: 100%; }
.river-route-level-chart svg .axis { stroke: #a8b8be; stroke-width: 1; }
.river-route-level-chart svg text { font-size: 9px; font-weight: 700; }
.river-route-level-summary { display: grid; gap: 4px; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 5px; }
.river-route-level-summary span { background: #f3f8f9; border-radius: 5px; display: grid; gap: 1px; padding: 5px; }
.river-route-level-summary small { color: #6a7e86; font-size: 7px; text-transform: uppercase; }
.river-route-level-summary strong { color: #24444f; font-size: 9px; }
.river-route-level-legend { display: flex; flex-wrap: wrap; font-size: 7px; gap: 4px 8px; padding: 2px 3px; }
.river-route-level-legend span { align-items: center; display: inline-flex; gap: 3px; }
.river-route-level-legend i { background: #2489c5; border-radius: 2px; height: 6px; width: 10px; }
.river-route-level-legend i.is-rain { background: #64748b; }
.river-route-node-badges { display: flex; flex-wrap: wrap; gap: 5px; }
.river-route-node-badges span,
.river-route-status { background: #e3edf0; border-radius: 999px; color: #415d67; font-size: 9px; font-style: normal; font-weight: 850; padding: 3px 7px; }
.river-route-node-badges .is-atual { background: #dcfce7; color: #166534; }
.river-route-node-badges .is-desatualizado,
.river-route-status.is-parcial { background: #fff3cd; color: #854d0e; }
.river-route-node-badges .is-indisponivel,
.river-route-status.is-bloqueado,
.river-route-status.is-erro { background: #fee2e2; color: #991b1b; }
.river-route-status.is-concluido { background: #dcfce7; color: #166534; }
.river-route-topology-status { border-top: 1px solid #d7e4e7; padding-top: 9px; }

.river-route-node-icon { background: transparent; border: 0; }
.river-route-node-icon span { background: #087f8c; border: 3px solid #fff; border-radius: 50%; box-shadow: 0 1px 5px rgba(15,23,42,.55); display: block; height: 100%; width: 100%; }
.river-route-node-icon.is-reservoir span { background: #7c3aed; border-radius: 3px; }
.river-route-node-icon.is-confluence span { background: #b45309; border-radius: 2px; transform: rotate(45deg) scale(.82); }
.river-route-node-icon.is-desatualizado span { border-color: #fbbf24; }
.river-route-node-icon.is-indisponivel span,
.river-route-node-icon.is-fonte_com_falha span { border-color: #ef4444; }
.river-route-node-icon.threshold-normal.is-station span { background: #22c55e; }
.river-route-node-icon.threshold-attention.is-station span { background: #eab308; border-color: #fff; box-shadow: 0 0 0 3px rgba(234,179,8,.28), 0 1px 5px rgba(15,23,42,.55); }
.river-route-node-icon.threshold-alert.is-station span { background: #f97316; border-color: #fff; box-shadow: 0 0 0 3px rgba(249,115,22,.3), 0 1px 5px rgba(15,23,42,.55); }
.river-route-node-icon.threshold-flood span,
.river-route-node-icon.threshold-severe_flood span { background: #dc2626; border-color: #fff; box-shadow: 0 0 0 4px rgba(220,38,38,.32), 0 1px 5px rgba(15,23,42,.55); }

.river-route-direction-arrow { background: transparent; border: 0; }
.river-route-direction-arrow span { color: #075f70; display: block; font-size: 18px; line-height: 22px; text-align: center; text-shadow: 0 0 2px #fff, 0 0 4px #fff; }
.river-route-direction-arrow.is-pending span { color: #64748b; }

.river-route-popup { display: grid; font-size: 11px; gap: 4px; min-width: 230px; }
.river-route-popup > strong { color: var(--rr-blue); font-size: 14px; }
.river-route-popup > small { color: #647781; margin-bottom: 3px; }
.river-route-popup > span { border-top: 1px solid #e4ebed; display: grid; gap: 1px; padding-top: 4px; }
.river-route-popup b { color: #607680; font-size: 8px; text-transform: uppercase; }
.river-route-popup em { background: #fff1f2; border-radius: 5px; color: #9f1239; font-size: 10px; font-style: normal; padding: 6px; }

.river-route-scenario-summary {
  display: grid;
  gap: 7px;
  grid-template-columns: 1.5fr repeat(3, 1fr);
  margin-bottom: 10px;
}
.river-route-scenario-summary > span { background: var(--rr-soft); border: 1px solid var(--rr-line); border-radius: 7px; display: grid; gap: 2px; padding: 7px 9px; }
.river-route-scenario-summary small { color: #687d87; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.river-route-scenario-summary strong { font-size: 11px; }

.river-route-warnings { background: #fff8e8; border: 1px solid #ead7a5; border-radius: 7px; font-size: 10px; margin-bottom: 10px; padding: 7px 10px; }
.river-route-warnings summary { cursor: pointer; font-weight: 850; }
.river-route-warnings ul { margin: 6px 0 0; padding-left: 19px; }

.river-route-time-control { align-items: center; background: #f7fafb; border: 1px solid var(--rr-line); border-radius: 8px; display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) auto; margin: 10px 0; padding: 8px 10px; }
.river-route-time-control label { display: grid; gap: 3px; margin: 0; }
.river-route-time-control span { color: #607680; font-size: 9px; font-weight: 800; text-transform: uppercase; }
.river-route-time-control output { color: var(--rr-blue); font-size: 11px; font-weight: 850; }

.river-route-chart { border: 1px solid var(--rr-line); border-radius: 8px; margin: 10px 0; overflow: hidden; padding: 7px; }
.river-route-chart svg { display: block; height: 250px; width: 100%; }
.river-route-chart svg .axis { stroke: #9aabb2; stroke-width: 1; }
.river-route-chart svg text { fill: #667b84; font-size: 10px; }
.river-route-chart-legend { display: flex; flex-wrap: wrap; font-size: 9px; gap: 4px 9px; padding: 4px 8px; }
.river-route-chart-legend span { align-items: center; display: inline-flex; gap: 3px; }
.river-route-chart-legend i { border-radius: 50%; height: 7px; width: 7px; }

.river-route-timeline-table { min-width: 1050px; }
.river-route-timeline-table td { font-size: 10px; vertical-align: top; }
.river-route-timeline-table td small { display: block; }
.river-route-timeline-table tr.is-bloqueada { background: #fff5f5; color: #7f1d1d; }
.river-route-flow-label { background: rgba(255,255,255,.94); border: 1px solid #cddde1; box-shadow: none; color: #24444f; font-size: 9px; padding: 2px 4px; }

.river-route-workspace {
  align-items: start;
  display: grid;
  gap: 16px;
  grid-template-columns: minmax(0, 2.15fr) minmax(300px, .85fr);
}

.river-route-form {
  display: grid;
  gap: 14px;
}

.river-route-form-steps {
  align-items: center;
  display: grid;
  grid-template-columns: auto minmax(16px, 1fr) auto minmax(16px, 1fr) auto;
  margin: 1px 3px 2px;
}

.river-route-form-steps span {
  align-items: center;
  color: #506a74;
  display: inline-flex;
  font-size: 11px;
  font-weight: 800;
  gap: 6px;
  white-space: nowrap;
}

.river-route-form-steps b,
.river-route-form-section > legend > b {
  align-items: center;
  background: var(--rr-blue);
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 11px;
  height: 26px;
  justify-content: center;
  width: 26px;
}

.river-route-form-steps i {
  border-top: 1px dashed #b8cbd1;
  display: block;
  margin: 0 9px;
}

.river-route-form-section {
  background: #f8fbfc;
  border: 1px solid var(--rr-line);
  border-radius: 11px;
  margin: 0;
  min-width: 0;
  padding: 14px;
}

.river-route-form-section > legend {
  align-items: center;
  display: flex;
  gap: 9px;
  max-width: calc(100% - 8px);
  padding: 0 7px;
}

.river-route-form-section > legend > span {
  display: grid;
  gap: 1px;
}

.river-route-form-section > legend strong {
  color: #173f4b;
  font-size: 13px;
  line-height: 1.25;
}

.river-route-form-section > legend small {
  color: #6a7f88;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.3;
}

.river-route-form-grid {
  display: grid;
  gap: 13px;
  grid-template-columns: 1.25fr .72fr .72fr;
  padding-top: 5px;
}

.river-route-form-grid .is-wide { grid-column: 1 / -1; }

.river-route-field {
  align-content: start;
  min-width: 0;
}

.river-route-field > span:first-child {
  color: #334f59;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .01em;
}

.river-route-form .river-route-field input,
.river-route-form .river-route-field select,
.river-route-form .river-route-field textarea {
  border-color: #c7d8dd;
  border-radius: 8px;
  font-size: 13px;
  min-height: 42px;
  padding: 9px 11px;
}

.river-route-form .river-route-field input:hover,
.river-route-form .river-route-field select:hover,
.river-route-form .river-route-field textarea:hover {
  border-color: #87adb5;
}

.river-route-form .river-route-field input:focus,
.river-route-form .river-route-field select:focus,
.river-route-form .river-route-field textarea:focus {
  border-color: var(--rr-cyan);
  box-shadow: 0 0 0 3px rgba(12, 133, 146, .13);
}

.river-route-field > small {
  color: #70848c;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.35;
}

.river-route-input-unit {
  align-items: stretch;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
}

.river-route-form .river-route-input-unit input {
  border-radius: 8px 0 0 8px;
  min-width: 0;
}

.river-route-input-unit > b {
  align-items: center;
  background: #edf5f6;
  border: 1px solid #c7d8dd;
  border-left: 0;
  border-radius: 0 8px 8px 0;
  color: #58717a;
  display: flex;
  font-size: 10px;
  justify-content: center;
  min-width: 53px;
  padding: 0 9px;
}

.river-route-selected-node,
.river-route-method-help {
  align-items: flex-start;
  background: #eef7f8;
  border: 1px solid #cfe3e6;
  border-radius: 8px;
  color: #4e6973;
  display: flex;
  font-size: 10px;
  gap: 8px;
  line-height: 1.45;
  padding: 9px 11px;
}

.river-route-selected-node::before,
.river-route-method-help::before {
  align-items: center;
  background: #d9eef0;
  border-radius: 50%;
  color: var(--rr-blue);
  content: "i";
  display: inline-flex;
  flex: 0 0 auto;
  font-size: 10px;
  font-weight: 900;
  height: 18px;
  justify-content: center;
  width: 18px;
}

.river-route-selected-node strong { color: #173f4b; }

.river-route-method-fields {
  background: #fff;
  border: 1px solid #bcd4d9;
  border-left: 4px solid var(--rr-cyan);
  border-radius: 9px;
  display: grid;
  gap: 13px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 13px;
}
.river-route-method-fields[hidden] { display: none; }

.river-route-series-section { background: #f5fafb; }

.river-route-series-heading {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: space-between;
  margin: 3px 0 11px;
}

.river-route-series-actions,
.river-route-series-meta {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.river-route-series-actions .btn {
  min-height: 36px;
}

.river-route-series-meta span,
.river-route-list-count {
  background: #e7f0f2;
  border-radius: 999px;
  color: #506a74;
  font-size: 9px;
  font-weight: 850;
  padding: 5px 8px;
  text-transform: uppercase;
}

.river-route-series-meta span.is-observed {
  background: #dcfce7;
  color: #166534;
}

.river-route-series-meta span.is-informed {
  background: #e0f2fe;
  color: #075985;
}

.river-route-form-grid textarea,
.river-route-series-section textarea {
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  line-height: 1.55;
  min-height: 220px;
  resize: vertical;
}

.river-route-series-feedback {
  background: #fff;
  border: 1px dashed #b9ccd2;
  border-radius: 7px;
  color: #5f7780;
  font-size: 10px;
  line-height: 1.4;
  margin-top: 8px;
  min-height: 34px;
  padding: 8px 10px;
}

.river-route-series-feedback.is-success {
  background: #f0fdf4;
  border-color: #86c99c;
  color: #166534;
}

.river-route-series-feedback.is-warning {
  background: #fff8e8;
  border-color: #dab968;
  color: #854d0e;
}

.river-route-form-actions {
  align-items: center;
  background: #eef7f8;
  border: 1px solid #cce1e4;
  border-radius: 10px;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  padding: 12px 14px;
}

.river-route-form-actions > div {
  display: grid;
  gap: 2px;
}

.river-route-form-actions strong {
  color: #173f4b;
  font-size: 12px;
}

.river-route-form-actions span {
  color: #607680;
  font-size: 10px;
}

.river-route-form-actions .btn-primary {
  flex: 0 0 auto;
  min-height: 42px;
  padding-left: 18px;
  padding-right: 18px;
}

.river-route-scenario-list {
  position: sticky;
  top: 12px;
}

.river-route-scenario-list .section-heading p:last-child {
  color: #6a7f88;
  font-size: 10px;
  margin: 4px 0 0;
}

.river-route-scenario-items { display: grid; gap: 6px; max-height: 550px; overflow: auto; }
.river-route-scenario-items a { align-items: center; border: 1px solid var(--rr-line); border-radius: 7px; color: #24444f; display: flex; gap: 8px; justify-content: space-between; padding: 8px 9px; text-decoration: none; }
.river-route-scenario-items a:hover,
.river-route-scenario-items a.is-selected { background: #eaf7f8; border-color: #6bb9be; }
.river-route-scenario-items a > span { display: grid; gap: 2px; min-width: 0; }
.river-route-scenario-items strong,
.river-route-scenario-items small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.river-route-scenario-items strong { font-size: 11px; }
.river-route-scenario-items small { color: #6a7f88; font-size: 9px; }
.river-route-scenario-items em { background: #e4ecef; border-radius: 999px; flex: 0 0 auto; font-size: 8px; font-style: normal; font-weight: 850; padding: 3px 5px; }
.river-route-scenario-items em.is-concluido { background: #dcfce7; color: #166534; }
.river-route-scenario-items em.is-parcial { background: #fef3c7; color: #92400e; }
.river-route-scenario-items em.is-bloqueado,
.river-route-scenario-items em.is-erro { background: #fee2e2; color: #991b1b; }

.river-route-scenario-empty {
  align-content: center;
  display: grid;
  gap: 5px;
  min-height: 180px;
  padding: 20px;
  text-align: center;
}

.river-route-scenario-empty strong { color: #35535d; font-size: 12px; }
.river-route-scenario-empty span { color: #73878f; font-size: 10px; line-height: 1.45; }

.river-route-methodology > div:last-child { display: grid; gap: 8px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.river-route-methodology article { background: var(--rr-soft); border: 1px solid var(--rr-line); border-radius: 8px; display: grid; font-size: 10px; gap: 3px; line-height: 1.4; padding: 9px; }
.river-route-methodology article strong { color: var(--rr-blue); }

.river-route-view-tabs {
  background: #eef5f6;
  border: 1px solid var(--rr-line);
  border-radius: 12px;
  display: grid;
  gap: 5px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 5px;
}

.river-route-view-tabs button {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 9px;
  color: #526b74;
  cursor: pointer;
  display: flex;
  font: inherit;
  gap: 10px;
  min-width: 0;
  padding: 10px 13px;
  text-align: left;
}

.river-route-view-tabs button:hover { background: rgba(255,255,255,.65); }
.river-route-view-tabs button.is-active { background: #fff; border-color: #a9cfd3; box-shadow: 0 2px 8px rgba(15,76,87,.08); color: var(--rr-blue); }
.river-route-view-tabs button b { align-items: center; background: #dce9eb; border-radius: 50%; display: flex; flex: 0 0 auto; font-size: 10px; height: 25px; justify-content: center; width: 25px; }
.river-route-view-tabs button.is-active b { background: var(--rr-blue); color: #fff; }
.river-route-view-tabs button span { display: grid; font-size: 12px; font-weight: 850; gap: 1px; min-width: 0; }
.river-route-view-tabs button small { color: #70838a; font-size: 9px; font-weight: 500; }

.river-route-page.is-charts-view > :not(.river-route-hero):not(.river-route-view-tabs):not(.river-route-station-charts) { display: none !important; }
.river-route-station-charts[hidden] { display: none; }
.river-route-station-charts { display: grid; gap: 12px; }
.river-route-station-charts .section-heading { align-items: flex-start; }

.river-route-chart-filters {
  align-items: end;
  background: #f5f9fa;
  border: 1px solid var(--rr-line);
  border-radius: 9px;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(190px, 1.15fr) repeat(4, minmax(145px, .8fr)) auto auto;
  padding: 10px;
}

.river-route-chart-filters label { display: grid; gap: 4px; margin: 0; }
.river-route-chart-filters label > span { color: #526b74; font-size: 9px; font-weight: 850; text-transform: uppercase; }
.river-route-chart-filters input[type="search"],
.river-route-chart-filters select { background: #fff; border: 1px solid #cbdadd; border-radius: 7px; color: #24444f; font: inherit; height: 36px; padding: 0 10px; width: 100%; }
.river-route-chart-filters .is-check { align-items: center; background: #fff; border: 1px solid #cbdadd; border-radius: 7px; display: flex; gap: 7px; height: 36px; padding: 0 11px; }
.river-route-chart-filters .is-check input { accent-color: var(--rr-blue); }
.river-route-chart-filters .is-check span { color: #425d66; font-size: 10px; text-transform: none; white-space: nowrap; }
.river-route-chart-clear { align-self:end; background:#fff; border:1px solid #aacbd0; border-radius:7px; color:var(--rr-blue); cursor:pointer; font:inherit; font-size:10px; font-weight:800; height:36px; padding:0 12px; white-space:nowrap; }
.river-route-chart-clear:hover { background:#edf8f9; }

.river-route-chart-order-note { align-items: center; background: #edf7f8; border: 1px solid #c9e1e4; border-radius: 8px; color: #58717a; display: flex; font-size: 9px; gap: 8px; line-height: 1.45; padding: 8px 10px; }
.river-route-chart-order-note strong { color: #174b57; flex: 0 0 auto; }

.river-route-station-chart-grid { display: grid; gap: 12px; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.river-route-station-chart-grid > .empty-state { grid-column: 1 / -1; }
.river-route-station-chart-card { background: #fff; border: 1px solid var(--rr-line); border-left: 5px solid #94a3b8; border-radius: 11px; display: grid; gap: 8px; min-width: 0; overflow: hidden; padding: 12px; }
.river-route-station-chart-card.is-atencao { border-left-color: #d6b900; }
.river-route-station-chart-card.is-alerta { border-left-color: #f47c20; }
.river-route-station-chart-card.is-inundacao { background: #fffafa; border-left-color: #ed163d; }
.river-route-station-chart-card.is-inundacao_severa { background: #fff5f5; border-left-color: #7f1d1d; }
.river-route-station-chart-card.is-normal { border-left-color: #16804d; }
.river-route-station-chart-card.has-rapid-rise { background:#fff0f0; border-color:#f3aaaa; border-left-color:#dc2626; box-shadow:0 0 0 1px rgba(220,38,38,.08); }
.river-route-station-chart-card.has-rapid-rise .river-route-station-chart-svg { background:linear-gradient(#fff7f7, #fffafa); border-color:#f1c3c3; }
.river-route-station-chart-card > header { align-items: flex-start; display: flex; gap: 10px; justify-content: space-between; }
.river-route-station-chart-card > header > div { min-width: 0; }
.river-route-station-chart-card > header small { color: #70838a; display: block; font-size: 8px; overflow: hidden; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.river-route-station-chart-card h3 { color: #173f4b; font-size: 14px; line-height: 1.3; margin: 2px 0 0; }
.river-route-station-chart-badges { align-items:flex-end; display:grid; flex:0 0 auto; gap:4px; justify-items:end; }
.river-route-station-chart-badges > span { background: #edf1f2; border-radius: 999px; color: #526b74; font-size: 8px; font-weight: 900; padding: 4px 7px; text-transform: uppercase; }
.river-route-station-chart-badges > b { background:#fee2e2; border:1px solid #f5b5b5; border-radius:999px; color:#b91c1c; font-size:8px; padding:4px 7px; white-space:nowrap; }
.river-route-station-chart-card.is-atencao .river-route-station-chart-badges > span { background: #fff7cc; color: #6f5e00; }
.river-route-station-chart-card.is-alerta .river-route-station-chart-badges > span { background: #ffedd5; color: #9a4b08; }
.river-route-station-chart-card.is-inundacao .river-route-station-chart-badges > span,
.river-route-station-chart-card.is-inundacao_severa .river-route-station-chart-badges > span { background: #fee2e2; color: #991b1b; }
.river-route-station-chart-card.is-normal .river-route-station-chart-badges > span { background: #dcfce7; color: #166534; }

.river-route-station-chart-current { align-items: baseline; display: grid; gap: 1px 10px; grid-template-columns: auto minmax(0, 1fr); }
.river-route-station-chart-current > strong { color: var(--rr-blue); font-size: 23px; grid-row: 1 / 3; line-height: 1; }
.river-route-station-chart-current > span { color: #334f59; font-size: 10px; font-weight: 800; }
.river-route-station-chart-current > small { color: #6c8088; font-size: 9px; }
.river-route-station-chart-card.is-inundacao .river-route-station-chart-current > strong,
.river-route-station-chart-card.is-inundacao_severa .river-route-station-chart-current > strong { color: #b4162c; }

.river-route-station-chart-svg { background: linear-gradient(#fff, #fbfdfe); border: 1px solid #e0e8ea; border-radius: 8px; overflow: hidden; }
.river-route-station-chart-svg svg { display: block; height: auto; width: 100%; }
.river-route-station-chart-svg svg .axis { stroke: #a7b5ba; stroke-width: 1; }
.river-route-station-chart-svg svg text { fill: #647781; font-size: 9px; font-weight: 650; }
.river-route-chart-impact { background:#f3f8f9; border:1px solid #d7e6e9; border-radius:8px; display:grid; gap:7px; margin-top:10px; padding:9px 11px; }
.river-route-chart-impact > header { align-items:center; display:flex; flex-wrap:wrap; gap:5px 9px; justify-content:space-between; }
.river-route-chart-impact > header strong { color:#173f4b; font-size:10px; }
.river-route-chart-impact > header span { background:#e1eef0; border-radius:999px; color:#4c6c75; font-size:8px; font-weight:800; padding:3px 6px; }
.river-route-chart-impact > div { display:grid; gap:2px; grid-template-columns:minmax(125px, auto) 1fr; }
.river-route-chart-impact > div strong { color:#355660; font-size:9px; }
.river-route-chart-impact > div span { color:#607780; font-size:9px; line-height:1.35; min-width:0; }
.river-route-chart-impact > small { border-top:1px solid #dbe8ea; color:#6b7f86; font-size:8px; line-height:1.4; padding-top:6px; }
.river-route-chart-impact.is-compact { gap:4px; margin-top:0; padding:7px 8px; }
.river-route-chart-impact.is-compact > header span { display:none; }
.river-route-chart-impact.is-compact > div { display:block; min-width:0; }
.river-route-chart-impact.is-compact > div strong,
.river-route-chart-impact.is-compact > div span { display:block; }
.river-route-chart-impact.is-compact > div span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.river-route-station-chart-card > footer { align-items: center; border-top: 1px solid #e4ebed; display: flex; gap: 10px; justify-content: space-between; padding-top: 8px; }
.river-route-station-chart-card > footer span { color: #6c8088; display: grid; font-size: 8px; }
.river-route-station-chart-card > footer b { color: #3d5861; font-size: 9px; }
.river-route-station-chart-card > footer button { background: #fff; border: 1px solid #aacbd0; border-radius: 6px; color: var(--rr-blue); cursor: pointer; font: inherit; font-size: 9px; font-weight: 850; padding: 6px 8px; }
.river-route-station-chart-card > footer button:hover { background: #edf8f9; }

body.has-river-chart-modal { overflow: hidden; }
.river-route-chart-modal { align-items: center; background: rgba(8,28,34,.72); display: flex; inset: 0; justify-content: center; padding: 24px; position: fixed; z-index: 10050; }
.river-route-chart-modal > div { background: #fff; border-radius: 13px; box-shadow: 0 24px 70px rgba(0,0,0,.35); max-height: calc(100vh - 48px); max-width: 1280px; overflow: auto; padding: 24px; position: relative; width: 100%; }
.river-route-chart-modal .is-close { background: transparent; border: 0; color: #61757d; cursor: pointer; font-size: 27px; line-height: 1; padding: 5px; position: absolute; right: 12px; top: 9px; }
.river-route-chart-modal > div > header { color: #263f48; padding-right: 30px; text-align: center; }
.river-route-chart-modal > div > header h2 { color: #142f38; font-size: 25px; margin: 0 0 4px; }
.river-route-chart-modal > div > header p { font-size: 13px; margin: 3px 0; }
.river-route-chart-modal-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; justify-content: center; margin: 20px 0 7px; }
.river-route-chart-modal-legend span { align-items: center; color: #61757d; display: inline-flex; font-size: 10px; gap: 5px; }
.river-route-chart-modal-legend span::before { background: #64748b; content: ""; height: 8px; width: 25px; }
.river-route-chart-modal-legend .is-attention::before { background: #e5d51b; }
.river-route-chart-modal-legend .is-alert::before { background: #ff922b; }
.river-route-chart-modal-legend .is-flood::before { background: #f0183e; }
.river-route-chart-modal-legend .is-level::before { background: #3498db; }
.river-route-chart-modal-legend .is-rain::before { background: #5f6368; }
.river-route-chart-modal .river-route-station-chart-svg { border: 0; }
.river-route-chart-modal .river-route-station-chart-svg.is-large svg text { font-size:12px; }
.river-route-chart-modal .river-route-chart-impact { gap:10px; margin-top:14px; padding:13px 15px; }
.river-route-chart-modal .river-route-chart-impact > header strong { font-size:14px; }
.river-route-chart-modal .river-route-chart-impact > header span { font-size:11px; padding:5px 8px; }
.river-route-chart-modal .river-route-chart-impact > div { gap:5px; grid-template-columns:minmax(175px, auto) 1fr; }
.river-route-chart-modal .river-route-chart-impact > div strong { font-size:13px; }
.river-route-chart-modal .river-route-chart-impact > div span { font-size:13px; line-height:1.5; }
.river-route-chart-modal .river-route-chart-impact > small { font-size:11px; line-height:1.5; padding-top:8px; }
.river-route-chart-modal > div > footer { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; padding-top: 14px; }
.river-route-chart-modal > div > footer a,
.river-route-chart-modal > div > footer button { background:#fff; border: 1px solid #3498db; border-radius: 6px; color: #1878b5; cursor:pointer; font-family:inherit; font-size: 13px; font-weight: 800; padding: 9px 12px; text-decoration: none; }
.river-route-chart-modal > div > footer button.is-go-map { background:#1878b5; color:#fff; }

body.has-river-map-modal { overflow: hidden; }
.river-route-map-modal { align-items: center; background: rgba(8,28,34,.72); display: flex; inset: 0; justify-content: center; padding: 24px; position: fixed; z-index: 10050; }
.river-route-map-modal > div { background: #fff; border-radius: 13px; box-shadow: 0 24px 70px rgba(0,0,0,.35); display: grid; gap: 10px; max-height: calc(100vh - 48px); max-width: 1120px; overflow: auto; padding: 18px; width: 100%; }
.river-route-map-modal > div > header { align-items: flex-start; display: flex; gap: 16px; justify-content: space-between; }
.river-route-map-modal > div > header h2 { color: #173f4b; font-size: 20px; margin: 2px 0 3px; }
.river-route-map-modal > div > header p { color: #607680; font-size: 10px; margin: 0; }
.river-route-map-modal > div > header .eyebrow { color: var(--rr-cyan, #0c8592); font-size: 8px; font-weight: 900; text-transform: uppercase; }
.river-route-map-modal .is-close { background: transparent; border: 0; color: #61757d; cursor: pointer; font-size: 27px; line-height: 1; padding: 2px 5px; }
.river-route-map-modal-canvas { background: #e7f0f2; border: 1px solid var(--rr-line, #d8e4e8); border-radius: 9px; height: min(570px, 62vh); overflow: hidden; width: 100%; }
.river-route-map-modal-legend { display: flex; flex-wrap: wrap; gap: 6px 13px; }
.river-route-map-modal-legend span { align-items: center; color: #526b74; display: inline-flex; font-size: 9px; gap: 5px; }
.river-route-map-modal-legend span::before { background: rgba(214,183,0,.18); border: 2px solid #d6b700; border-radius: 50%; content: ""; height: 15px; width: 15px; }
.river-route-map-modal-legend .is-flood::before { background: rgba(220,38,56,.22); border-color: #dc2638; }
.river-route-map-modal-legend .is-alert::before { background: rgba(249,115,22,.19); border-color: #f97316; }
.river-route-map-modal-legend .is-near::before { background: rgba(224,169,0,.16); border-color: #e0a900; }
.river-route-map-modal-note { align-items: center; background: #fff8e8; border: 1px solid #ead7a5; border-radius: 7px; color: #6c603f; display: flex; font-size: 9px; gap: 8px; line-height: 1.4; padding: 7px 9px; }
.river-route-map-modal-note strong { color: #795515; flex: 0 0 auto; }
.river-route-map-modal > div > footer { align-items: center; display: flex; gap: 12px; justify-content: space-between; }
.river-route-map-modal > div > footer > span { color: #607680; font-size: 9px; }
.river-route-map-modal > div > footer > div { display: flex; gap: 7px; }
.river-route-buffer-warning { background: #fff8e8; color: #795515; display: block; margin-top: 6px; padding: 5px; }
.river-route-critical-buffer { cursor: pointer; }

/* Escala tipográfica para leitura operacional da Rota dos rios. */
.river-route-view-tabs button small { font-size: 10px; }
.river-route-decision-label { font-size: 10px; }
.river-route-decision-card p { font-size: 11px; }
.river-route-decision-card small { font-size: 10px; }
.river-route-decision-explainer { font-size: 10px; }
.river-route-calibration-summary { font-size: 11px; }
.river-route-calibration-summary small { font-size: 10px; }
.river-route-critical-stations > strong { font-size: 12px; }
.river-route-critical-stations button small { font-size: 10px; }
.river-route-critical-stations button em { font-size: 11px; }
.river-route-critical-stations button .river-route-flood-percentage { font-size: 10px; }
.river-route-cota-current > b { font-size: 11px; }
.river-route-cota-legend { font-size: 9px; }
.river-route-technical-details > summary { font-size: 11px; }
.river-route-status { font-size: 10px; }
.river-route-operational-kpis span,
.river-route-operational-kpis small { font-size: 10px; }
.river-route-source-card header small,
.river-route-source-metrics small,
.river-route-source-card li em,
.river-route-no-evidence,
.river-route-source-card footer > span { font-size: 10px; }
.river-route-kpis span,
.river-route-kpis small { font-size: 10px; }
.river-route-map-legend,
.river-route-impact-summary { font-size: 10px; }
.river-route-node-detail dt { font-size: 10px; }
.river-route-chart-filters label > span,
.river-route-chart-order-note { font-size: 10px; }
.river-route-chart-filters .is-check span,
.river-route-chart-clear { font-size: 11px; }
.river-route-station-chart-card > header small,
.river-route-station-chart-badges > span,
.river-route-station-chart-badges > b { font-size: 10px; }
.river-route-station-chart-current > small,
.river-route-station-chart-card > footer span,
.river-route-station-chart-card > footer b,
.river-route-station-chart-card > footer button { font-size: 10px; }
.river-route-station-chart-svg svg text { font-size: 10px; }
.river-route-chart-impact > header strong,
.river-route-chart-impact > div strong { font-size: 11px; }
.river-route-chart-impact > header span,
.river-route-chart-impact > div span { font-size: 10px; }
.river-route-chart-impact > small { font-size: 10px; }

@media (max-width: 1050px) {
  .river-route-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .river-route-map-grid { grid-template-columns: 1fr; }
  .river-route-node-detail { max-height: none; }
  .river-route-workspace { grid-template-columns: 1fr; }
  .river-route-scenario-list { position: static; }
  .river-route-methodology > div:last-child { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .river-route-chart-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .river-route-station-chart-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1350px) and (min-width: 1051px) {
  .river-route-chart-filters { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .river-route-station-chart-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
  .river-route-hero { align-items: flex-start; flex-direction: column; gap: 12px; padding: 18px; }
  .river-route-kpis,
  .river-route-method-fields,
  .river-route-scenario-summary,
  .river-route-methodology > div:last-child { grid-template-columns: 1fr; }
  .river-route-map { height: 500px; }
  .river-route-map-legend { justify-content: flex-start; }
  .river-route-form-grid { grid-template-columns: 1fr; }
  .river-route-form-grid .is-date,
  .river-route-form-grid .is-wide { grid-column: auto; }
  .river-route-form-steps { display: none; }
  .river-route-form-section { padding: 11px; }
  .river-route-form-section > legend small { display: none; }
  .river-route-series-heading,
  .river-route-form-actions { align-items: stretch; flex-direction: column; }
  .river-route-series-actions { display: grid; grid-template-columns: 1fr; }
  .river-route-series-actions .btn,
  .river-route-form-actions .btn-primary { width: 100%; }
  .river-route-view-tabs { grid-template-columns: 1fr; }
  .river-route-chart-filters { grid-template-columns: 1fr; }
  .river-route-chart-filters .is-check span { white-space: normal; }
  .river-route-chart-order-note { align-items: flex-start; flex-direction: column; }
  .river-route-station-chart-grid { grid-template-columns: 1fr; }
  .river-route-chart-modal { padding: 8px; }
  .river-route-chart-modal > div { max-height: calc(100vh - 16px); padding: 17px 10px; }
  .river-route-station-chart-current { grid-template-columns: 1fr; }
  .river-route-station-chart-current > strong { grid-row: auto; }
  .river-route-map-modal { padding: 8px; }
  .river-route-map-modal > div { max-height: calc(100vh - 16px); padding: 12px; }
  .river-route-map-modal-canvas { height: 58vh; }
  .river-route-map-modal-note,
  .river-route-map-modal > div > footer { align-items: stretch; flex-direction: column; }
  .river-route-map-modal > div > footer > div { display: grid; grid-template-columns: 1fr 1fr; }
}

/* Previsao probabilistica / WeatherNext */
.probabilistic-forecast-page {
  display: grid;
  gap: 18px;
}

.probabilistic-forecast-hero {
  align-items: center;
  background: linear-gradient(135deg, #eff8ff 0%, #f5f3ff 100%);
  border: 1px solid #c7dded;
  border-radius: 14px;
  display: flex;
  justify-content: space-between;
  padding: 22px;
}

.probabilistic-forecast-hero h1,
.probabilistic-forecast-toolbar h2,
.probabilistic-forecast-legend h3 {
  margin: 0;
}

.probabilistic-forecast-hero p:last-child,
.probabilistic-forecast-toolbar p,
.probabilistic-forecast-legend p {
  color: #526675;
  margin: 6px 0 0;
}

.probabilistic-forecast-badge {
  background: #fff7ed;
  border: 1px solid #fdba74;
  border-radius: 999px;
  color: #9a3412;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .06em;
  padding: 8px 13px;
  text-transform: uppercase;
}

.probabilistic-forecast-boundary {
  align-items: flex-start;
  background: #fffbea;
  border: 1px solid #f3d27b;
  border-radius: 10px;
  color: #624a0a;
  display: flex;
  gap: 12px;
  padding: 12px 14px;
}

.probabilistic-forecast-boundary strong {
  flex: 0 0 auto;
}

.probabilistic-forecast-kpis {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.probabilistic-forecast-kpis article {
  background: #fff;
  border: 1px solid #dce6ed;
  border-radius: 10px;
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 14px;
}

.probabilistic-forecast-kpis span,
.probabilistic-forecast-kpis small {
  color: #647784;
}

.probabilistic-forecast-kpis strong {
  color: #102a3a;
  font-size: 19px;
  overflow-wrap: anywhere;
}

.probabilistic-forecast-panel,
.probabilistic-forecast-ranking,
.probabilistic-forecast-matrix {
  padding: 18px;
}

.probabilistic-forecast-matrix .section-heading {
  align-items: flex-start;
  display: flex;
  gap: 20px;
  justify-content: space-between;
}

.probabilistic-forecast-matrix h2 {
  color: #102a3a;
  margin: 3px 0 0;
}

.probabilistic-forecast-matrix .section-heading p:last-child {
  color: #526675;
  line-height: 1.5;
  margin: 6px 0 0;
  max-width: 780px;
}

.probabilistic-matrix-scale {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  gap: 7px 11px;
  justify-content: flex-end;
  max-width: 360px;
}

.probabilistic-matrix-scale span {
  align-items: center;
  color: #526675;
  display: inline-flex;
  font-size: 11px;
  gap: 5px;
}

.probabilistic-matrix-scale i {
  border: 1px solid rgba(15, 23, 42, .12);
  border-radius: 4px;
  display: inline-block;
  height: 14px;
  width: 20px;
}

.probabilistic-matrix-note {
  background: #f1f7fa;
  border-left: 3px solid #2787a8;
  color: #36586b;
  font-size: 12px;
  line-height: 1.5;
  margin-top: 14px;
  padding: 9px 11px;
}

.probabilistic-matrix-wrap {
  border: 1px solid #d7e2e8;
  border-radius: 10px;
  margin-top: 14px;
  overflow-x: auto;
}

.probabilistic-matrix-table {
  border-collapse: separate;
  border-spacing: 0;
  min-width: 1420px;
  width: 100%;
}

.probabilistic-matrix-table th,
.probabilistic-matrix-table td {
  border-bottom: 1px solid #e2e9ee;
  border-right: 1px solid #e2e9ee;
  padding: 0;
  text-align: left;
  vertical-align: middle;
}

.probabilistic-matrix-table thead th {
  background: #edf4f7;
  color: #29485a;
  font-size: 11px;
  font-weight: 800;
  padding: 10px;
  position: sticky;
  top: 0;
  z-index: 4;
}

.probabilistic-matrix-table thead th.is-convergence {
  background: #e7eefc;
  color: #324a83;
}

.probabilistic-matrix-table th:first-child,
.probabilistic-matrix-table td:first-child {
  left: 0;
  position: sticky;
  z-index: 2;
}

.probabilistic-matrix-table thead th:first-child {
  z-index: 6;
}

.probabilistic-matrix-table tbody th:first-child,
.probabilistic-matrix-table tbody td:first-child {
  background: #f8fafc;
}

.probabilistic-matrix-table tr.is-current > th:first-child,
.probabilistic-matrix-table tr.is-current > td:nth-child(2) {
  box-shadow: inset 3px 0 0 #2563eb;
}

.probabilistic-matrix-time,
.probabilistic-matrix-cell button {
  appearance: none;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  display: grid;
  font: inherit;
  gap: 3px;
  height: 100%;
  min-height: 57px;
  padding: 9px 10px;
  text-align: left;
  width: 100%;
}

.probabilistic-matrix-time {
  align-content: center;
  color: #17394e;
  font-weight: 750;
  white-space: nowrap;
}

.probabilistic-matrix-cell {
  min-width: 145px;
  transition: filter .15s ease, box-shadow .15s ease;
}

.probabilistic-matrix-cell.is-convergence {
  min-width: 175px;
}

.probabilistic-matrix-cell strong {
  color: #172f40;
  font-size: 12px;
}

.probabilistic-matrix-cell small {
  color: #526675;
  font-size: 10px;
  line-height: 1.35;
}

.probabilistic-matrix-cell:hover {
  filter: brightness(.96);
}

.probabilistic-matrix-cell.is-selected {
  box-shadow: inset 0 0 0 3px #1d4ed8;
  position: relative;
  z-index: 1;
}

.probabilistic-matrix-time:focus-visible,
.probabilistic-matrix-cell button:focus-visible {
  outline: 3px solid #2563eb;
  outline-offset: -3px;
}

.probabilistic-matrix-cell.is-level-0 { background: #f8fafc; }
.probabilistic-matrix-cell.is-level-1,
.probabilistic-matrix-scale i.is-level-1 { background: #e0f2fe; }
.probabilistic-matrix-cell.is-level-2,
.probabilistic-matrix-scale i.is-level-2 { background: #fef3c7; }
.probabilistic-matrix-cell.is-level-3,
.probabilistic-matrix-scale i.is-level-3 { background: #fed7aa; }
.probabilistic-matrix-cell.is-level-4,
.probabilistic-matrix-scale i.is-level-4 { background: #fecaca; }

.probabilistic-forecast-toolbar {
  align-items: end;
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.probabilistic-forecast-controls {
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(210px, 1fr) minmax(220px, 1fr);
  min-width: min(100%, 520px);
}

.probabilistic-forecast-controls label {
  display: grid;
  gap: 5px;
}

.probabilistic-forecast-controls label > span {
  color: #526675;
  font-size: 12px;
  font-weight: 750;
}

.probabilistic-forecast-status {
  background: #eef7fb;
  border-radius: 8px;
  color: #24536d;
  margin-top: 14px;
  padding: 9px 12px;
}

.probabilistic-forecast-status.is-error,
.probabilistic-forecast-status.is-stale {
  background: #fff4e8;
  color: #8f3f12;
}

.probabilistic-forecast-status.is-ok {
  background: #ecfdf5;
  color: #075c43;
}

.probabilistic-forecast-map-layout {
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(0, 1fr) 220px;
  margin-top: 14px;
}

.probabilistic-forecast-map {
  background: #e8eff4;
  border: 1px solid #cbd8e1;
  border-radius: 10px;
  height: 610px;
  min-height: 420px;
  overflow: hidden;
}

.probabilistic-forecast-legend {
  align-self: start;
  background: #f8fafc;
  border: 1px solid #dce6ed;
  border-radius: 10px;
  padding: 14px;
}

.probabilistic-forecast-legend h3 {
  color: #17394e;
  font-size: 15px;
}

.probabilistic-forecast-legend [data-wn-legend] {
  display: grid;
  gap: 7px;
  margin-top: 12px;
}

.probabilistic-forecast-legend [data-wn-legend] > div {
  align-items: center;
  display: flex;
  gap: 8px;
}

.probabilistic-forecast-legend i {
  background: var(--wn-color);
  border: 1px solid rgba(15, 23, 42, .18);
  border-radius: 4px;
  display: inline-block;
  height: 18px;
  width: 28px;
}

.probabilistic-forecast-legend p {
  font-size: 12px;
  line-height: 1.5;
  margin-top: 14px;
}

.probabilistic-forecast-ranking .section-heading {
  align-items: center;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  margin-bottom: 14px;
}

.probabilistic-forecast-summary-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.probabilistic-forecast-summary-pills span {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  color: #1e4e8c;
  padding: 6px 10px;
}

.probabilistic-forecast-ranking table {
  min-width: 850px;
}

.probabilistic-forecast-ranking td small {
  color: #71808c;
}

.probabilistic-forecast-source {
  color: #60717d;
  font-size: 12px;
  line-height: 1.55;
  padding: 0 4px 10px;
}

@media (max-width: 1050px) {
  .probabilistic-forecast-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .probabilistic-forecast-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .probabilistic-forecast-controls {
    min-width: 0;
  }

  .probabilistic-forecast-map-layout {
    grid-template-columns: 1fr;
  }

  .probabilistic-forecast-legend {
    align-items: start;
    display: grid;
    gap: 10px;
    grid-template-columns: 180px 1fr 240px;
  }

  .probabilistic-forecast-legend [data-wn-legend],
  .probabilistic-forecast-legend p {
    margin-top: 0;
  }
}

@media (max-width: 680px) {
  .probabilistic-forecast-hero,
  .probabilistic-forecast-boundary,
  .probabilistic-forecast-ranking .section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .probabilistic-forecast-kpis,
  .probabilistic-forecast-controls {
    grid-template-columns: 1fr;
  }

  .probabilistic-forecast-map {
    height: 480px;
  }

  .probabilistic-forecast-legend {
    display: block;
  }

  .probabilistic-forecast-legend [data-wn-legend] {
    margin-top: 12px;
  }

  .probabilistic-forecast-legend p {
    margin-top: 14px;
  }

  .probabilistic-forecast-matrix .section-heading {
    display: block;
  }

  .probabilistic-matrix-scale {
    justify-content: flex-start;
    margin-top: 12px;
    max-width: none;
  }
}

/* Shared decision briefing: one concise hierarchy for screen and WhatsApp. */
.decision-briefing {
  border: 1px solid #d7e3e8;
  border-left: 4px solid var(--sie-cyan, #1788a3);
  background: linear-gradient(135deg, #f8fcfd 0%, #fff 72%);
}

.decision-briefing-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
}

.decision-briefing-header h2 {
  margin: 3px 0 5px;
  font-size: 1.18rem;
}

.decision-briefing-header p {
  margin: 0;
  color: var(--muted, #5f6f78);
}

.decision-briefing-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.decision-briefing-preview {
  margin-top: 16px;
  border-top: 1px solid #dfe8ec;
  padding-top: 12px;
}

.decision-briefing-preview summary {
  cursor: pointer;
  color: #195f70;
  font-weight: 700;
}

.decision-briefing-preview-tabs {
  display: inline-flex;
  gap: 4px;
  margin-top: 12px;
  padding: 3px;
  border: 1px solid #d8e4e8;
  border-radius: 8px;
  background: #eef5f7;
}

.decision-briefing-preview-tabs button {
  border: 0;
  border-radius: 6px;
  padding: 6px 12px;
  background: transparent;
  color: #49616b;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.decision-briefing-preview-tabs button.is-active {
  background: #fff;
  color: #195f70;
  box-shadow: 0 1px 4px rgba(35, 65, 76, .14);
}

.decision-briefing-preview pre {
  margin: 12px 0 0;
  max-height: 420px;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  border: 1px solid #dce5e9;
  border-radius: 8px;
  padding: 14px;
  background: #fff;
  color: #263840;
  font: inherit;
  line-height: 1.55;
}

.decision-briefing-feedback {
  min-height: 1.25rem;
  margin: 8px 0 0;
  color: #236c45;
  font-size: .86rem;
  font-weight: 700;
}

@media (max-width: 760px) {
  .decision-briefing-header {
    flex-direction: column;
  }

  .decision-briefing-actions,
  .decision-briefing-actions .btn {
    width: 100%;
  }
}

@media print {
  .decision-briefing {
    display: none !important;
  }
}

/* Emergência IA */
.emergency-ai-page { --eia-indigo: #4338ca; --eia-blue: #2563eb; --eia-ink: #172033; --eia-soft: #f5f7fb; }
.emergency-ai-hero { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px; background: linear-gradient(120deg, #fff 0%, #f6f8ff 60%, #eef5ff 100%); border-left: 3px solid var(--eia-indigo); }
.emergency-ai-hero h1 { margin: 5px 0 7px; color: var(--eia-ink); }
.emergency-ai-hero p { max-width: 760px; margin: 0; color: var(--sie-muted); }
.emergency-ai-system-state { display: flex; align-items: flex-start; gap: 10px; min-width: 300px; padding: 13px 15px; border: 1px solid #dfe4f2; border-radius: 12px; background: rgba(255,255,255,.86); }
.emergency-ai-system-state strong, .emergency-ai-system-state small { display: block; }
.emergency-ai-system-state strong { color: var(--eia-ink); font-size: 13px; }
.emergency-ai-system-state small { margin-top: 3px; color: var(--sie-muted); font-size: 10px; line-height: 1.4; }
.emergency-ai-pulse { width: 10px; height: 10px; flex: 0 0 10px; margin-top: 4px; border-radius: 50%; background: #94a3b8; box-shadow: 0 0 0 4px #e2e8f0; }
.emergency-ai-pulse.is-online { background: #16a34a; box-shadow: 0 0 0 4px #dcfce7; }
.emergency-ai-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.emergency-ai-kpis article { min-width: 0; padding: 15px 17px; border: 1px solid var(--sie-line); border-radius: 12px; background: #fff; box-shadow: 0 5px 18px rgba(31,41,55,.035); }
.emergency-ai-kpis span, .emergency-ai-kpis small { display: block; }
.emergency-ai-kpis > article > span:first-child { color: var(--sie-muted); font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.emergency-ai-kpis strong { display: block; margin: 5px 0 3px; color: var(--eia-ink); font-size: 22px; }
.emergency-ai-kpis small { color: var(--sie-muted); font-size: 10px; }
.emergency-ai-situation.is-critical { color: #b91c1c; }.emergency-ai-situation.is-high { color: #c2410c; }.emergency-ai-situation.is-attention { color: #a16207; }.emergency-ai-situation.is-monitoring { color: #0369a1; }.emergency-ai-situation.is-routine, .emergency-ai-situation.is-stable { color: #15803d; }
.emergency-ai-workspace { display: grid; grid-template-columns: minmax(245px, 300px) minmax(0, 1fr); align-items: start; gap: 14px; }
.emergency-ai-history { position: sticky; top: 14px; padding: 0; overflow: hidden; }
.emergency-ai-history > header { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px 16px 10px; }
.emergency-ai-history h2, .emergency-ai-report h2, .emergency-ai-chat h2 { margin: 3px 0 0; color: var(--eia-ink); font-size: 17px; }
.emergency-ai-helper { margin: 0; padding: 0 16px 13px; color: var(--sie-muted); font-size: 10px; line-height: 1.45; }
.emergency-ai-history-list { display: grid; max-height: 590px; overflow-y: auto; border-top: 1px solid var(--sie-line); }
.emergency-ai-history-item { display: grid; gap: 3px; padding: 12px 15px; border-bottom: 1px solid var(--sie-line); color: var(--eia-ink); text-decoration: none; transition: background .15s ease, border-color .15s ease; }
.emergency-ai-history-item:hover { background: #f8faff; }
.emergency-ai-history-item.is-active { border-left: 3px solid var(--eia-indigo); background: #f2f4ff; padding-left: 12px; }
.emergency-ai-history-item > span:not(.emergency-ai-history-top), .emergency-ai-history-item small { color: var(--sie-muted); font-size: 10px; }
.emergency-ai-history-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 11px; }
.emergency-ai-status { display: inline-flex; align-items: center; width: fit-content; padding: 3px 7px; border-radius: 999px; background: #eef2f7; color: #475569; font-size: 9px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; }
.emergency-ai-status.is-success { background: #dcfce7; color: #166534; }.emergency-ai-status.is-failed { background: #fee2e2; color: #991b1b; }.emergency-ai-status.is-processing { background: #dbeafe; color: #1d4ed8; }.emergency-ai-status.is-pending { background: #fef3c7; color: #92400e; }
.emergency-ai-history .pagination-bar {
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  margin-top: 0;
  padding: 12px 15px 15px;
}
.emergency-ai-history .pagination-summary {
  min-width: 0;
  line-height: 1.4;
  overflow-wrap: normal;
  word-break: normal;
}
.emergency-ai-history .pagination-controls {
  width: 100%;
  justify-content: flex-start;
}
.emergency-ai-history .pagination-controls .btn {
  flex: 0 0 auto;
  white-space: nowrap;
}
.emergency-ai-history .pagination-size {
  width: 100%;
}
.emergency-ai-history .pagination-size > span {
  flex: 0 0 100%;
}
.emergency-ai-main { display: grid; min-width: 0; gap: 14px; }
.emergency-ai-report, .emergency-ai-chat { padding: 18px; }
.emergency-ai-report-header, .emergency-ai-chat > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.emergency-ai-report-header p, .emergency-ai-chat > header p { margin: 5px 0 0; color: var(--sie-muted); font-size: 10px; }
.emergency-ai-executive-summary { margin-top: 16px; padding: 16px 18px; border-left: 3px solid var(--eia-indigo); border-radius: 0 10px 10px 0; background: linear-gradient(90deg, #f5f3ff, #f8fbff); }
.emergency-ai-executive-summary span { color: var(--eia-indigo); font-size: 9px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.emergency-ai-executive-summary p { margin: 7px 0 0; color: #27324a; font-size: 12px; line-height: 1.65; }
.emergency-ai-timeline-grid { display: block; margin-top: 15px; }
.emergency-ai-timeline-grid article { min-width: 0; padding: 12px; border: 1px solid #e1e6ef; border-top: 3px solid #64748b; border-radius: 9px; background: #fff; }
.emergency-ai-timeline-grid article.is-forecast { border-top-color: var(--eia-blue); background: #f8fbff; }
.emergency-ai-timeline-grid article > span { color: #64748b; font-size: 8px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.emergency-ai-timeline-grid h3 { margin: 4px 0 7px; color: var(--eia-ink); font-size: 12px; }
.emergency-ai-timeline-grid p { margin: 0 0 7px; color: #42506a; font-size: 10px; line-height: 1.45; }
.emergency-ai-timeline-grid ul { margin: 0; padding-left: 16px; }
.emergency-ai-timeline-grid li { margin-top: 4px; color: #42506a; font-size: 10px; line-height: 1.45; }
.emergency-ai-management-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 15px; }
.emergency-ai-management-grid article { padding: 14px; border: 1px solid var(--sie-line); border-radius: 10px; background: var(--eia-soft); }
.emergency-ai-management-grid h3 { margin: 0; color: var(--eia-ink); font-size: 12px; }
.emergency-ai-management-grid p { margin: 3px 0 8px; color: var(--sie-muted); font-size: 9px; }
.emergency-ai-management-grid ol { display: grid; gap: 5px; margin: 0; padding-left: 18px; }
.emergency-ai-management-grid li { color: #42506a; font-size: 10px; line-height: 1.45; }
.emergency-ai-full-report { margin-top: 15px; border: 1px solid var(--sie-line); border-radius: 10px; overflow: hidden; }
.emergency-ai-full-report > summary { padding: 12px 14px; cursor: pointer; color: var(--eia-indigo); font-size: 11px; font-weight: 700; }
.emergency-ai-full-report[open] > summary { border-bottom: 1px solid var(--sie-line); background: #f8fafc; }
.emergency-ai-full-report > div { padding: 15px; }
.emergency-ai-governance { background:#f8fbff; border:1px solid #cbddeb; border-radius:11px; display:block; margin-top:15px; padding:15px; }
.emergency-ai-governance > * + * { margin-top:10px; }
.emergency-ai-governance .emergency-ai-section-heading { align-items:flex-start; display:flex; gap:14px; justify-content:space-between; }
.emergency-ai-governance .emergency-ai-section-heading h3 { color:var(--eia-ink); font-size:15px; margin:3px 0; }
.emergency-ai-governance .emergency-ai-section-heading p { color:var(--sie-muted); font-size:12px; line-height:1.5; margin:0; }
.emergency-ai-validation-badge { background:#fef3c7; border:1px solid #facc15; border-radius:999px; color:#854d0e; flex:0 0 auto; font-size:11px; font-weight:800; padding:6px 9px; }
.emergency-ai-governance-kpis { display:grid; gap:8px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.emergency-ai-governance-kpis article { background:#fff; border:1px solid #dbe7ef; border-radius:8px; display:grid; gap:2px; padding:10px; }
.emergency-ai-governance-kpis span,.emergency-ai-governance-kpis small { color:#64748b; font-size:10px; }
.emergency-ai-governance-kpis strong { color:#17324d; font-size:14px; overflow-wrap:anywhere; }
.emergency-ai-governance-details { background:#fff; border:1px solid #dbe7ef; border-radius:8px; overflow:hidden; }
.emergency-ai-governance-details > summary { color:#1e4d66; cursor:pointer; font-size:12px; font-weight:800; padding:11px 12px; }
.emergency-ai-governance-details[open] > summary { background:#edf6fa; border-bottom:1px solid #dbe7ef; }
.emergency-ai-governance-table-wrap { overflow:auto; }
.emergency-ai-governance-table-wrap table { border-collapse:collapse; min-width:850px; width:100%; }
.emergency-ai-governance-table-wrap th,.emergency-ai-governance-table-wrap td { border-bottom:1px solid #edf2f5; color:#475569; font-size:11px; line-height:1.45; padding:9px; text-align:left; vertical-align:top; }
.emergency-ai-governance-table-wrap td strong,.emergency-ai-governance-table-wrap td small { display:block; }
.emergency-ai-source-state { border-radius:999px; display:inline-block; font-size:10px; font-weight:800; padding:4px 7px; white-space:nowrap; }
.emergency-ai-source-state.is-available { background:#dcfce7; color:#166534; }.emergency-ai-source-state.is-missing { background:#fee2e2; color:#991b1b; }
.emergency-ai-governance-note { color:#64748b; font-size:11px; line-height:1.55; margin:0; padding:10px 12px; }
.emergency-ai-change-summary { border-bottom:1px solid #e2e8f0; padding:12px; }
.emergency-ai-change-summary-public { background:#fff; border:1px solid #dbe7ef; border-radius:14px; margin-top:14px; padding:16px; }
.emergency-ai-change-summary-public .emergency-ai-section-heading { margin-bottom:10px; }
.emergency-ai-change-summary-public .emergency-ai-section-heading h3 { margin:2px 0; }
.emergency-ai-change-summary-public .emergency-ai-section-heading p { margin:0; }
.emergency-ai-change-summary > h4 { color:#17324d; font-size:14px; margin:0 0 3px; }
.emergency-ai-change-summary > p { color:#64748b; font-size:11px; line-height:1.5; margin:0 0 9px; }
.emergency-ai-change-list { display:grid; gap:7px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.emergency-ai-change-list article { background:#f8fafc; border:1px solid #dbe7ef; border-left:4px solid #2563eb; border-radius:8px; display:grid; gap:3px; padding:9px 10px; }
.emergency-ai-change-list article.is-worsened { background:#fff7f7; border-left-color:#dc2626; }
.emergency-ai-change-list article.is-reopened,.emergency-ai-change-list article.is-material-change { background:#fffbeb; border-left-color:#d97706; }
.emergency-ai-change-list article.is-improved { background:#f0fdf4; border-left-color:#16a34a; }
.emergency-ai-change-list header { align-items:center; display:flex; flex-wrap:wrap; gap:6px; }
.emergency-ai-change-list header span { color:#0369a1; font-size:9px; font-weight:900; letter-spacing:.45px; text-transform:uppercase; }
.emergency-ai-change-list article.is-worsened header span { color:#b91c1c; }.emergency-ai-change-list article.is-improved header span { color:#15803d; }
.emergency-ai-change-list header strong { color:#17324d; font-size:12px; }.emergency-ai-change-list p { color:#334155; font-size:11px; line-height:1.45; margin:2px 0; }.emergency-ai-change-list small { color:#64748b; font-size:10px; }
.emergency-ai-change-empty { background:#f0fdf4; border-radius:7px; color:#166534; font-size:11px; padding:9px 10px; }
.emergency-ai-difference-grid { display:grid; gap:7px; grid-template-columns:repeat(3,minmax(0,1fr)); padding:10px; }
.emergency-ai-difference-grid article { background:#f8fafc; border-radius:7px; display:grid; gap:2px; padding:8px; }.emergency-ai-difference-grid span,.emergency-ai-difference-grid small { color:#64748b; font-size:10px; }.emergency-ai-difference-grid strong { color:#334155; font-size:13px; }
.emergency-ai-vulnerability-list,.emergency-ai-claim-list { display:grid; gap:8px; padding:10px; }
.emergency-ai-vulnerability-list article,.emergency-ai-claim-list article { border:1px solid #e2e8f0; border-radius:7px; padding:9px; }
.emergency-ai-vulnerability-list article > header { display:flex; gap:8px; justify-content:space-between; }.emergency-ai-vulnerability-list header strong { color:#17324d; font-size:13px; }.emergency-ai-vulnerability-list header span { color:#1d4ed8; font-size:12px; font-weight:800; }
.emergency-ai-vulnerability-list article > small,.emergency-ai-claim-list small { color:#64748b; font-size:10px; }.emergency-ai-vulnerability-list article > div { display:flex; flex-wrap:wrap; gap:5px; margin-top:6px; }.emergency-ai-vulnerability-list article > div span { background:#ecfdf5; border-radius:5px; color:#166534; display:grid; font-size:10px; gap:1px; padding:5px 7px; }.emergency-ai-vulnerability-list article > div span.is-missing { background:#f1f5f9; color:#64748b; }.emergency-ai-vulnerability-list article > div b { text-transform:capitalize; }
.emergency-ai-claim-list article strong { color:#1e4d66; font-size:11px; }.emergency-ai-claim-list article p { color:#334155; font-size:11px; line-height:1.5; margin:4px 0; }
.emergency-ai-claim-evidence { display:flex; flex-wrap:wrap; gap:5px; margin:7px 0; }
.emergency-ai-claim-evidence span { padding:4px 7px; border:1px solid #bae6fd; border-radius:999px; background:#f0f9ff; color:#075985; font-size:10px; font-weight:700; }
.emergency-ai-claim-evidence .is-unresolved { border-color:#fed7aa; background:#fff7ed; color:#9a3412; }
.emergency-ai-markdown { color: #344158; font-size: 11px; line-height: 1.6; overflow-wrap: anywhere; }
.emergency-ai-markdown h2, .emergency-ai-markdown h3, .emergency-ai-markdown h4 { margin: 15px 0 6px; color: var(--eia-ink); }.emergency-ai-markdown h2 { font-size: 15px; }.emergency-ai-markdown h3 { font-size: 13px; }.emergency-ai-markdown h4 { font-size: 12px; }
.emergency-ai-markdown p { margin: 6px 0; }.emergency-ai-markdown ul { margin: 6px 0; padding-left: 18px; }.emergency-ai-markdown li { margin: 3px 0; }
.emergency-ai-chat > header { padding-bottom: 13px; border-bottom: 1px solid var(--sie-line); }
.emergency-ai-conversations { display: flex; gap: 7px; padding: 11px 0; overflow-x: auto; }
.emergency-ai-conversations a { flex: 0 0 auto; padding: 6px 9px; border: 1px solid #dce2ed; border-radius: 999px; color: #475569; font-size: 9px; font-weight: 600; text-decoration: none; }
.emergency-ai-conversations a.is-active { border-color: #a5b4fc; background: #eef2ff; color: #3730a3; }
.emergency-ai-conversations span { display: inline-flex; align-items: center; justify-content: center; min-width: 16px; height: 16px; margin-left: 4px; border-radius: 50%; background: #e2e8f0; }
.emergency-ai-chat-feed { display: grid; gap: 10px; max-height: 560px; padding: 14px 2px; overflow-y: auto; }
.emergency-ai-chat-intro { display: flex; align-items: center; gap: 11px; margin: 12px auto; max-width: 570px; padding: 15px; border: 1px dashed #cbd5e1; border-radius: 12px; background: #f8fafc; }
.emergency-ai-chat-intro > span, .emergency-ai-empty-icon { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; flex: 0 0 34px; border-radius: 10px; background: #e0e7ff; color: #3730a3; font-size: 10px; font-weight: 700; }
.emergency-ai-chat-intro strong { color: var(--eia-ink); font-size: 11px; }.emergency-ai-chat-intro p { margin: 3px 0 0; color: var(--sie-muted); font-size: 10px; }
.emergency-ai-message { width: min(86%, 780px); padding: 11px 13px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc; }
.emergency-ai-message.is-user { justify-self: end; border-color: #c7d2fe; background: #eef2ff; }.emergency-ai-message.is-assistant { justify-self: start; background: #fff; }.emergency-ai-message.is-system { justify-self: center; width: 94%; border-color: #fde68a; background: #fffbeb; }
.emergency-ai-message-meta { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 5px; color: var(--sie-muted); font-size: 8px; }.emergency-ai-message-meta strong { color: #334155; font-size: 9px; }
.emergency-ai-evidence { margin-top: 8px; padding-top: 7px; border-top: 1px solid #e2e8f0; }.emergency-ai-evidence summary { cursor: pointer; color: var(--eia-indigo); font-size: 9px; font-weight: 700; }.emergency-ai-evidence ul { margin: 7px 0 0; padding-left: 16px; }.emergency-ai-evidence li { margin-top: 3px; color: var(--sie-muted); font-size: 8px; }
.emergency-ai-question-form { display: grid; gap: 7px; padding-top: 13px; border-top: 1px solid var(--sie-line); }.emergency-ai-question-form label { color: var(--eia-ink); font-size: 10px; font-weight: 700; }.emergency-ai-question-form textarea { width: 100%; min-height: 76px; padding: 11px 12px; resize: vertical; border: 1px solid #cfd7e5; border-radius: 10px; color: var(--eia-ink); font: inherit; font-size: 11px; line-height: 1.5; }.emergency-ai-question-form textarea:focus { outline: 2px solid #c7d2fe; border-color: #818cf8; }.emergency-ai-question-form > div { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.emergency-ai-question-form small { color: var(--sie-muted); font-size: 9px; }
.emergency-ai-empty { min-height: 150px; padding: 24px; }.emergency-ai-report-empty { min-height: 330px; }.emergency-ai-empty strong, .emergency-ai-empty span { display: block; }.emergency-ai-empty strong { margin-top: 7px; color: var(--eia-ink); }.emergency-ai-empty span:last-child { max-width: 420px; margin-top: 4px; color: var(--sie-muted); font-size: 10px; text-align: center; }

@media (max-width: 1180px) {
  .emergency-ai-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .emergency-ai-hero { align-items: stretch; flex-direction: column; }
  .emergency-ai-system-state { min-width: 0; }
  .emergency-ai-workspace { grid-template-columns: 1fr; }
  .emergency-ai-history { position: static; }
  .emergency-ai-history-list { max-height: 330px; }
}
@media (max-width: 620px) {
  .emergency-ai-kpis, .emergency-ai-management-grid { grid-template-columns: 1fr; }
  .emergency-ai-report-header, .emergency-ai-chat > header { align-items: stretch; flex-direction: column; }
  .emergency-ai-message { width: 95%; }
  .emergency-ai-question-form > div { align-items: stretch; flex-direction: column; }
  .emergency-ai-question-form button { width: 100%; }
  .emergency-ai-governance .emergency-ai-section-heading { display:grid; }.emergency-ai-validation-badge { width:fit-content; }
  .emergency-ai-governance-kpis,.emergency-ai-difference-grid,.emergency-ai-change-list { grid-template-columns:1fr; }
}

/* Disparos manuais por dia da ocorrência */
.occurrence-daily-dispatch-panel {
  display: grid;
  gap: 14px;
}

.occurrence-daily-dispatch-wrap {
  max-height: none;
}

.occurrence-daily-dispatch-table {
  min-width: 920px;
}

.occurrence-daily-dispatch-table th:first-child {
  width: 150px;
}

.occurrence-daily-dispatch-table th:nth-child(2) {
  width: 170px;
}

.occurrence-daily-dispatch-table th:last-child {
  width: 150px;
}

.occurrence-daily-dispatch-table tr.is-today td {
  background: #fff8f3;
}

.occurrence-daily-dispatch-table td {
  vertical-align: top;
}

.occurrence-daily-dispatch-table td:first-child strong,
.occurrence-dispatch-outside {
  display: block;
}

.occurrence-dispatch-outside {
  max-width: 170px;
  margin-top: 4px;
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.35;
}

.occurrence-dispatch-history-list {
  display: grid;
  gap: 8px;
}

.occurrence-dispatch-history-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 7px;
  background: #fff;
}

.occurrence-dispatch-history-item > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.occurrence-dispatch-history-item strong {
  overflow-wrap: anywhere;
  font-size: 13px;
}

.occurrence-dispatch-history-item span {
  color: var(--sie-muted);
  font-size: 11px;
}

.occurrence-dispatch-modal-panel {
  width: min(1180px, 96vw);
  max-width: 1180px;
}

.occurrence-dispatch-modal-body {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(360px, 0.95fr);
  gap: 18px;
  align-items: start;
}

.occurrence-dispatch-page,
.occurrence-dispatch-page-form {
  gap: 16px;
}

.occurrence-dispatch-page-header {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.occurrence-dispatch-page-header h2,
.occurrence-dispatch-page-header p {
  margin-bottom: 0;
}

.occurrence-dispatch-page-layout {
  display: grid;
  gap: 16px;
}

.occurrence-dispatch-page-layout.has-preview {
  align-items: start;
  grid-template-columns: 1fr;
}

.occurrence-dispatch-page .occurrence-dispatch-preview {
  position: static;
}

.occurrence-dispatch-all-users {
  align-items: flex-start;
  border: 1px solid var(--sie-primary-line);
  border-radius: 8px;
  padding: 12px;
  background: var(--sie-primary-soft);
}

.occurrence-dispatch-all-users span {
  display: grid;
  gap: 3px;
}

.occurrence-dispatch-all-users small {
  color: var(--sie-muted);
  font-weight: 400;
}

.occurrence-dispatch-block-heading {
  align-items: flex-start;
  display: flex;
  gap: 8px;
  justify-content: space-between;
}

.occurrence-dispatch-block-heading .check-line {
  flex: 1 1 auto;
}

.occurrence-dispatch-block-heading .btn {
  flex: 0 0 auto;
  white-space: nowrap;
}

.occurrence-dispatch-block.is-all {
  border-color: rgba(0, 138, 168, 0.38);
  background: var(--sie-cyan-soft);
  opacity: 1;
}

.occurrence-dispatch-block.is-disabled {
  opacity: 0.48;
}

.occurrence-dispatch-page-actions {
  align-items: center;
  display: flex;
  gap: 12px;
  justify-content: space-between;
}

.occurrence-dispatch-page-actions > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.occurrence-dispatch-compose,
.occurrence-dispatch-preview {
  display: grid;
  gap: 14px;
}

.occurrence-dispatch-blocks {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.occurrence-dispatch-block {
  display: grid;
  gap: 9px;
  padding: 11px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: var(--sie-surface);
  opacity: 0.72;
}

.occurrence-dispatch-block.is-active {
  border-color: rgba(232, 93, 60, 0.45);
  background: #fff8f3;
  opacity: 1;
}

.occurrence-dispatch-block .check-line span {
  display: grid;
  gap: 2px;
}

.occurrence-dispatch-block .check-line small {
  color: var(--sie-muted);
  font-weight: 400;
  line-height: 1.35;
}

.occurrence-dispatch-block .field {
  margin: 0;
}

.occurrence-dispatch-block select {
  min-height: 132px;
}

.occurrence-dispatch-preview {
  position: sticky;
  top: 0;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: var(--sie-surface);
}

.occurrence-dispatch-preview[hidden],
[data-occurrence-dispatch-feedback][hidden],
[data-occurrence-preview-remaining][hidden],
[data-occurrence-recipients-error][hidden] {
  display: none !important;
}

.occurrence-dispatch-preview-summary dl {
  display: grid;
  gap: 8px;
  margin: 10px 0;
}

.occurrence-dispatch-preview-summary dl > div {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 8px;
}

.occurrence-dispatch-preview-summary dt {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.occurrence-dispatch-preview-summary dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.occurrence-dispatch-preview-summary ul {
  max-height: 110px;
  margin: 8px 0;
  padding-left: 20px;
  overflow: auto;
  color: var(--sie-muted);
  font-size: 12px;
}

.occurrence-dispatch-preview-frame {
  display: grid;
  gap: 6px;
}

.occurrence-dispatch-preview-frame > span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.occurrence-dispatch-preview-frame iframe {
  width: 100%;
  min-height: 390px;
  border: 1px solid var(--sie-line);
  border-radius: 7px;
  background: #fff;
}

.occurrence-dispatch-confirm {
  padding: 10px;
  border: 1px solid rgba(0, 168, 70, 0.25);
  border-radius: 7px;
  background: var(--sie-green-soft);
}

.occurrence-dispatch-recipients-panel {
  width: min(860px, 94vw);
  max-width: 860px;
}

.occurrence-dispatch-record[hidden] {
  display: none !important;
}

.occurrence-dispatch-record-message {
  white-space: pre-wrap;
}

@media (max-width: 980px) {
  .page-mode-full {
    --full-page-viewport-height: 100vh;
  }

  .occurrence-dispatch-modal-body {
    grid-template-columns: 1fr;
  }

  .occurrence-dispatch-blocks {
    grid-template-columns: 1fr;
  }

  .occurrence-dispatch-preview {
    position: static;
  }

  .occurrence-dispatch-page-layout.has-preview {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .occurrence-dispatch-history-item {
    align-items: flex-start;
    flex-direction: column;
  }

  .occurrence-dispatch-page-header,
  .occurrence-dispatch-page-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .occurrence-dispatch-page-actions > div,
  .occurrence-dispatch-page-actions .btn {
    justify-content: stretch;
    width: 100%;
  }
}

/* Monitoramento hospitalar por fotografias históricas */
.hospital-monitoring-intro,
.hospital-detail-header,
.hospital-unified-map-header {
  align-items: center;
  border-left: 4px solid var(--primary, #ef5b32);
  display: flex;
  gap: 24px;
  justify-content: space-between;
}

.hospital-unified-map-header h2 { margin: 4px 0; }
.hospital-unified-map-header p { margin: 0; }

.hospital-monitoring-intro h2,
.hospital-detail-header h2,
.hospital-form-context h2,
.hospital-tab-panel h2 {
  margin: 4px 0 6px;
}

.hospital-monitoring-intro p,
.hospital-detail-header p,
.hospital-form-context p,
.hospital-tab-panel .section-heading p {
  margin: 0;
}

.hospital-monitoring-coverage,
.hospital-current-state {
  background: #f7f9fc;
  border: 1px solid #e3e8ef;
  border-radius: 10px;
  display: grid;
  flex: 0 0 auto;
  gap: 3px;
  min-width: 190px;
  padding: 14px 18px;
}

.hospital-monitoring-coverage strong {
  color: #172033;
  font-size: 1.45rem;
}

.hospital-monitoring-coverage span,
.hospital-current-state > span,
.hospital-current-state small {
  color: #687386;
  font-size: .78rem;
}

.hospital-monitoring-kpis {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.hospital-reporting-kpis {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.hospital-reporting-day-kpis {
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.reporting-metric {
  border-top: 4px solid #64748b;
  display: grid;
  gap: 5px;
  min-height: 112px;
}

.reporting-metric span,
.reporting-metric small {
  color: inherit;
}

.reporting-metric span {
  font-size: .75rem;
  font-weight: 700;
}

.reporting-metric strong {
  font-size: 1.65rem;
  line-height: 1;
}

.reporting-metric small {
  font-size: .7rem;
  opacity: .82;
}

.reporting-metric-current { background: #eaf8ef; border-color: #26894d; color: #145c32; }
.reporting-metric-overdue { background: #ffebe9; border-color: #c9362b; color: #84251f; }
.reporting-metric-age-1 { background: #fff8df; border-color: #d39a19; color: #71510b; }
.reporting-metric-age-3 { background: #fff1d5; border-color: #d47b16; color: #75420a; }
.reporting-metric-age-7 { background: #ffeadc; border-color: #c95624; color: #7b3214; }
.reporting-metric-age-30 { background: #fbe3e4; border-color: #b52d38; color: #792029; }
.reporting-metric-never { background: #eceff3; border-color: #596675; color: #35414d; }

.hospital-reporting-rule {
  border-left: 4px solid #147f96;
}

.hospital-monitoring-kpis .metric {
  border-top: 4px solid currentColor;
  box-shadow: 0 2px 8px rgba(15, 23, 42, .06);
  min-height: 122px;
}

.hospital-monitoring-kpis .metric-info {
  background: #e9f7fb;
  border-color: #147f96;
  color: #07556a;
}

.hospital-monitoring-kpis .metric-success {
  background: #eaf8ef;
  border-color: #26894d;
  color: #145c32;
}

.hospital-monitoring-kpis .metric-warning {
  background: #fff5d8;
  border-color: #b9750b;
  color: #704907;
}

.hospital-monitoring-kpis .hospital-kpi-alert {
  background: #fff0e8;
  border-color: #c84f21;
  color: #7c2d12;
}

.hospital-monitoring-kpis .hospital-kpi-evacuation-risk {
  background: #ffebe9;
  border-color: #c9362b;
  color: #84251f;
}

.hospital-monitoring-kpis .hospital-kpi-evacuated {
  background: #7f1d1d;
  border-color: #5e1414;
  color: #fff;
}

.hospital-monitoring-kpis .metric-label,
.hospital-monitoring-kpis .metric-value,
.hospital-monitoring-kpis .metric .muted {
  color: inherit;
}

.hospital-monitoring-kpis .metric .muted {
  opacity: .82;
}

.hospital-monitoring-kpis .metric::after {
  background: currentColor;
  opacity: .28;
}

.hospital-monitoring-kpis .hospital-kpi-filter {
  display: block;
  cursor: pointer;
  text-decoration: none;
  transition: transform .16s ease, box-shadow .16s ease, outline-color .16s ease;
}

.hospital-monitoring-kpis .hospital-kpi-filter:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 18px rgba(15, 23, 42, .12);
}

.hospital-monitoring-kpis .hospital-kpi-filter:focus-visible {
  outline: 3px solid rgba(20, 127, 150, .3);
  outline-offset: 2px;
}

.hospital-monitoring-kpis .hospital-kpi-filter.is-active {
  outline: 3px solid currentColor;
  outline-offset: -3px;
  box-shadow: 0 8px 18px rgba(15, 23, 42, .14);
}

.hospital-kpi-filter-action {
  display: inline-flex;
  align-items: center;
  margin-top: 9px;
  font-size: .67rem;
  font-weight: 800;
}

.hospital-kpi-filter-action::after {
  content: ' →';
  margin-left: 3px;
}

.hospital-kpi-filter.is-active .hospital-kpi-filter-action::after {
  content: ' ✓';
}

.hospital-network-panels {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hospital-network-panel {
  min-width: 0;
}

.hospital-network-panel h2 {
  font-size: 1rem;
  margin: 3px 0 0;
}

.hospital-network-numbers {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 14px;
}

.hospital-network-numbers > div {
  background: #f7f9fc;
  border: 1px solid #e7ebf0;
  border-radius: 8px;
  display: grid;
  gap: 2px;
  padding: 10px;
}

.hospital-network-numbers strong {
  color: #172033;
  font-size: 1.15rem;
}

.hospital-network-numbers span {
  color: #6c7687;
  font-size: .7rem;
}

.hospital-network-signals {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 14px;
}

.hospital-network-signals span {
  background: #fff4ef;
  border: 1px solid #f1d0c5;
  border-radius: 999px;
  color: #7d4939;
  font-size: .71rem;
  padding: 6px 9px;
}

.hospital-network-signals strong {
  color: #b83f1f;
  margin-right: 3px;
}

.hospital-critical-panel {
  border-color: #f3c5bb;
  background: #fffaf8;
}

.hospital-critical-list {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 12px;
}

.hospital-critical-list a {
  align-items: center;
  background: #fff;
  border: 1px solid #efd8d2;
  border-radius: 8px;
  color: inherit;
  display: grid;
  gap: 2px 10px;
  grid-template-columns: auto 1fr auto;
  padding: 12px;
  text-decoration: none;
}

.hospital-critical-list a:hover {
  border-color: #ef7658;
  box-shadow: 0 5px 18px rgba(91, 39, 26, .08);
}

.hospital-critical-list strong {
  color: #172033;
}

.hospital-critical-list > a > span:not(.hospital-state) {
  color: #687386;
  font-size: .78rem;
}

.hospital-critical-list small {
  color: #5b6472;
  grid-column: 2 / -1;
}

.hospital-critical-list .hospital-critical-signals {
  color: #a34327;
  font-weight: 600;
}

.filter-bar.hospital-monitoring-filters {
  grid-template-columns: repeat(4, minmax(155px, 1fr));
}

.hospital-monitoring-filters .hospital-filter-search {
  grid-column: span 2;
}

.hospital-monitoring-filters .filter-actions {
  justify-content: flex-end;
}

.hospital-monitoring-table td > strong,
.hospital-monitoring-table td > small,
.hospital-history-panel td > small {
  display: block;
}

.hospital-monitoring-table td > small,
.hospital-history-panel td > small {
  color: #788293;
  font-size: .72rem;
  margin-top: 3px;
}

.hospital-contact-email,
.detail-item .hospital-contact-email {
  display: block;
  margin-top: 3px;
  color: #526c7c;
  font-size: .72rem;
  font-weight: 600;
  overflow-wrap: anywhere;
}

.hospital-contact-email a {
  color: #0b6aa2;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.hospital-contact-email a:hover,
.hospital-contact-email a:focus-visible {
  color: #084b72;
}

.hospital-state {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 999px;
  display: inline-flex;
  font-size: .72rem;
  font-weight: 700;
  line-height: 1.2;
  padding: 5px 9px;
  white-space: nowrap;
}

.report-status {
  align-items: center;
  border: 1px solid transparent;
  border-radius: 999px;
  display: inline-flex;
  font-size: .69rem;
  font-weight: 700;
  line-height: 1.2;
  padding: 5px 8px;
  white-space: nowrap;
}

.report-informado { background: #eaf8ef; border-color: #bde5ca; color: #19733b; }
.report-nao_informado { background: #ffe9e7; border-color: #efaaa5; color: #a2231a; }

.hospital-monitoring-table .report-status,
.hospital-current-state .report-status {
  justify-self: start;
  margin-top: 4px;
}

.state-sem_informacao { background: #f2f4f7; border-color: #dce1e8; color: #657082; }
.state-sem_impacto { background: #eaf8ef; border-color: #bde5ca; color: #19733b; }
.state-atencao { background: #fff7dc; border-color: #f2d77b; color: #805e00; }
.state-alerta { background: #fff0e8; border-color: #f3b697; color: #a43c13; }
.state-risco_evacuacao { background: #ffe9e7; border-color: #efaaa5; color: #a2231a; }
.state-evacuado { background: #7f1d1d; border-color: #7f1d1d; color: #fff; }

.hospital-back-link {
  color: #697386;
  display: block;
  font-size: .78rem;
  margin-bottom: 10px;
  text-decoration: none;
}

.hospital-back-link:hover { color: var(--primary, #ef5b32); }

.hospital-current-state strong {
  justify-self: start;
  margin: 4px 0;
}

.hospital-questionnaire {
  display: grid;
  gap: 12px;
}

.hospital-client-validation-alert {
  scroll-margin-top: 12px;
}

[data-session-guard-alert] {
  scroll-margin-top: 12px;
}

[data-session-guard-alert] p {
  margin: 5px 0 10px;
}

.hospital-client-validation-alert p {
  margin: 5px 0 0;
}

.hospital-client-validation-alert .alert-list {
  margin-top: 6px;
}

.hospital-questionnaire .field.has-validation-error input,
.hospital-questionnaire .field.has-validation-error select,
.hospital-questionnaire .field.has-validation-error textarea {
  border-color: #c9362b;
  box-shadow: 0 0 0 2px rgba(201, 54, 43, .14);
}

.hospital-questionnaire .hospital-classification-ack.has-validation-error {
  background: #fff0ee;
  border-color: #c9362b;
  box-shadow: 0 0 0 2px rgba(201, 54, 43, .12);
}

.hospital-form-context .form-grid {
  margin-top: 16px;
}

.hospital-form-tabs {
  background: #fff;
  border: 1px solid #dfe4eb;
  border-radius: 10px;
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  padding: 6px;
}

.hospital-form-tabs button {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 7px;
  color: #667185;
  cursor: pointer;
  display: flex;
  font: inherit;
  font-size: .75rem;
  font-weight: 700;
  gap: 6px;
  justify-content: center;
  min-height: 38px;
  padding: 7px 6px;
}

.hospital-form-tabs button span {
  align-items: center;
  background: #eef1f5;
  border-radius: 50%;
  display: inline-flex;
  flex: 0 0 21px;
  height: 21px;
  justify-content: center;
}

.hospital-form-tabs button:hover { background: #fff5f1; color: #b84424; }
.hospital-form-tabs button.is-active { background: #fff0eb; color: #b83f1f; }
.hospital-form-tabs button.is-active span { background: #ef5b32; color: #fff; }

.hospital-questionnaire-fields {
  border: 0;
  margin: 0;
  min-width: 0;
  padding: 0;
}

.hospital-tab-panel {
  scroll-margin-top: 12px;
}

.hospital-tab-panel[hidden] { display: none; }

[data-hospital-conditional][hidden] { display: none !important; }

.hospital-step {
  color: #e95631;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.hospital-normal-confirmation {
  align-items: flex-start;
  background: #f4faf6;
  border: 1px solid #b9dfc5;
  border-radius: 9px;
  cursor: pointer;
  display: flex;
  gap: 11px;
  margin: 16px 0;
  padding: 13px 15px;
}

.hospital-normal-confirmation input {
  accent-color: #178b49;
  flex: 0 0 auto;
  height: 18px;
  margin: 1px 0 0;
  width: 18px;
}

.hospital-normal-confirmation span {
  display: grid;
  gap: 3px;
}

.hospital-normal-confirmation strong { color: #185e35; font-size: .88rem; }
.hospital-normal-confirmation small { color: #52705e; font-size: .75rem; }
.hospital-tab-panel.is-confirmed-normal .hospital-normal-confirmation { background: #e7f7ec; border-color: #58b677; box-shadow: inset 3px 0 #218f4d; }

.hospital-auto-classification,
.hospital-overall-classification {
  border: 1px solid #d7dde5;
  border-left-width: 4px;
  border-radius: 9px;
  display: grid;
  gap: 2px;
  margin: 16px 0;
  padding: 12px 15px 12px 45px;
  position: relative;
  transition: background-color .18s ease, border-color .18s ease;
}

.hospital-overall-classification {
  margin: 0;
}

.hospital-auto-classification::before,
.hospital-overall-classification::before {
  align-items: center;
  border-radius: 50%;
  content: "?";
  display: flex;
  font-size: .75rem;
  font-weight: 800;
  height: 22px;
  justify-content: center;
  left: 14px;
  position: absolute;
  top: 15px;
  width: 22px;
}

.hospital-auto-classification > span,
.hospital-overall-classification > span {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.hospital-auto-classification strong,
.hospital-overall-classification strong {
  font-size: .92rem;
}

.hospital-auto-classification small,
.hospital-overall-classification small {
  font-size: .74rem;
}

.hospital-auto-classification.classification-pending,
.hospital-overall-classification.classification-pending {
  background: #f7f8fa;
  border-color: #cfd5dd;
  color: #657082;
}

.hospital-auto-classification.classification-pending::before,
.hospital-overall-classification.classification-pending::before { background: #e5e9ef; color: #687386; }

.hospital-auto-classification.classification-normal,
.hospital-overall-classification.classification-normal {
  background: #e9f8ee;
  border-color: #42ad68;
  color: #176c38;
}

.hospital-auto-classification.classification-normal::before,
.hospital-overall-classification.classification-normal::before { background: #238d4b; color: #fff; content: "✓"; }

.hospital-auto-classification.classification-attention,
.hospital-overall-classification.classification-attention {
  background: #fff8df;
  border-color: #dbac25;
  color: #765800;
}

.hospital-auto-classification.classification-attention::before,
.hospital-overall-classification.classification-attention::before { background: #d39b00; color: #fff; content: "!"; }

.hospital-auto-classification.classification-danger,
.hospital-overall-classification.classification-danger {
  background: #fff0ee;
  border-color: #d94b40;
  color: #92291f;
}

.hospital-auto-classification.classification-danger::before,
.hospital-overall-classification.classification-danger::before { background: #c9362b; color: #fff; content: "!"; }

.hospital-form-tabs button.classification-normal:not(.is-active) { box-shadow: inset 0 -3px #36a660; }
.hospital-form-tabs button.classification-attention:not(.is-active) { box-shadow: inset 0 -3px #d4a114; }
.hospital-form-tabs button.classification-danger:not(.is-active) { box-shadow: inset 0 -3px #d2453a; }

.hospital-classification-ack {
  align-items: flex-start;
  background: #f8fafc;
  border: 1px solid #ccd4df;
  border-radius: 9px;
  cursor: pointer;
  display: flex;
  gap: 11px;
  margin-top: 20px;
  padding: 13px 15px;
}

.hospital-classification-ack input {
  accent-color: #e15a34;
  height: 18px;
  margin: 1px 0 0;
  width: 18px;
}

.hospital-classification-ack span {
  display: grid;
  gap: 3px;
}

.hospital-classification-ack strong { color: #293345; font-size: .84rem; }
.hospital-classification-ack small { color: #687386; font-size: .73rem; }

.hospital-tab-panel .form-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hospital-numeric-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.hospital-tab-panel .field small,
.hospital-form-context .field small {
  color: #788293;
  font-size: .7rem;
  font-weight: 400;
}

.hospital-tab-actions {
  align-items: center;
  border-top: 1px solid #e8ebf0;
  display: flex;
  justify-content: space-between;
  margin-top: 20px;
  padding-top: 14px;
}

.hospital-actions-step .hospital-actions-guidance {
  margin: 14px 0;
}

.hospital-actions-empty {
  align-items: center;
  background: #eef9f2;
  border: 1px solid #a9d9b8;
  border-radius: 10px;
  color: #185f35;
  display: grid;
  gap: 4px;
  justify-items: center;
  min-height: 110px;
  padding: 20px;
  text-align: center;
}

.hospital-actions-empty span {
  color: #49705a;
  font-size: .78rem;
}

.hospital-actions-empty.is-pending {
  background: #f5f7fa;
  border-color: #cbd4df;
  color: #344054;
}

.hospital-actions-empty.is-pending span { color: #667085; }

.hospital-inline-plans {
  display: grid;
  gap: 14px;
}

.hospital-inline-plan {
  background: #fffaf0;
  border: 1px solid #e3bd55;
  border-left: 5px solid #c68d00;
  border-radius: 10px;
  color: #493600;
  padding: 16px;
}

.hospital-inline-plan[hidden] { display: none; }

.hospital-inline-plan.classification-danger {
  background: #fff4f2;
  border-color: #e1a29d;
  border-left-color: #c9362b;
  color: #6f211b;
}

.hospital-inline-plan > header {
  align-items: flex-start;
  display: flex;
  gap: 12px;
  justify-content: space-between;
  margin-bottom: 5px;
}

.hospital-inline-plan > header div { display: grid; gap: 2px; }
.hospital-inline-plan > header span { font-size: .68rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.hospital-inline-plan > header h3 { color: inherit; font-size: 1rem; margin: 0; }
.hospital-inline-plan > header > strong { background: rgba(255, 255, 255, .76); border: 1px solid currentColor; border-radius: 999px; font-size: .7rem; padding: 5px 9px; }
.hospital-inline-plan > p { color: inherit; font-size: .78rem; margin: 0 0 14px; opacity: .88; }
.hospital-inline-plan .form-grid { margin-top: 0; }
.hospital-inline-plan .field > span { color: #202938; }

.hospital-history-panel .history-current {
  color: #19733b;
  font-weight: 700;
}

.hospital-history-panel .history-legacy {
  background: #fafbfc;
}

@media (max-width: 1180px) {
  .hospital-monitoring-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hospital-reporting-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hospital-reporting-day-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hospital-network-panels { grid-template-columns: 1fr; }
  .hospital-form-tabs { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hospital-monitoring-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hospital-monitoring-filters .filter-actions { grid-column: 1 / -1; }
}

@media (max-width: 760px) {
  .hospital-monitoring-intro,
  .hospital-detail-header { align-items: stretch; flex-direction: column; }
  .hospital-monitoring-kpis,
  .hospital-reporting-kpis,
  .hospital-network-panels,
  .hospital-critical-list,
  .hospital-monitoring-filters,
  .hospital-tab-panel .form-grid,
  .hospital-numeric-grid { grid-template-columns: 1fr !important; }
  .hospital-form-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hospital-tab-panel .span-2 { grid-column: auto; }
  .hospital-tab-actions { align-items: stretch; flex-direction: column; gap: 8px; }
  .hospital-tab-actions .btn { width: 100%; }
  .hospital-critical-list a { grid-template-columns: auto 1fr; }
  .hospital-critical-list > a > span:not(.hospital-state) { grid-column: 2; }
  .hospital-monitoring-filters .filter-actions { grid-column: auto; }
  .hospital-reporting-day-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 520px) {
  .hospital-reporting-day-kpis { grid-template-columns: 1fr !important; }
}

/* Matriz de acessos por perfil */
.access-matrix-page {
  --matrix-border: #dde3e8;
  --matrix-soft: #f7f9fa;
}

.access-matrix-hero {
  border-left: 4px solid var(--sie-primary);
}

.access-matrix-hero .eyebrow {
  color: var(--sie-primary);
  display: block;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-bottom: 0.3rem;
}

.access-matrix-notes {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 1rem;
}

.access-matrix-notes > div {
  background: #f7faf9;
  border: 1px solid #dcebe5;
  border-radius: 8px;
  display: grid;
  gap: 0.15rem;
  padding: 0.8rem 0.9rem;
}

.access-matrix-notes strong {
  color: #174d38;
  font-size: 0.82rem;
}

.access-matrix-notes span {
  color: var(--sie-muted);
  font-size: 0.75rem;
  line-height: 1.45;
}

.access-matrix-toolbar {
  align-items: end;
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  margin-bottom: 0.75rem;
}

.access-matrix-filters {
  display: grid;
  flex: 1;
  gap: 0.75rem;
  grid-template-columns: minmax(260px, 1fr) minmax(190px, 0.35fr);
}

.access-matrix-toolbar-actions,
.access-matrix-footer {
  align-items: center;
  display: flex;
  gap: 0.5rem;
}

.access-matrix-panel {
  overflow: hidden;
  padding: 0;
}

.access-matrix-scroll {
  overflow-x: auto;
}

.access-matrix-table {
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.76rem;
  min-width: 1060px;
  width: 100%;
}

.access-matrix-table th,
.access-matrix-table td {
  background: #fff;
  border-bottom: 1px solid var(--matrix-border);
  border-right: 1px solid var(--matrix-border);
  padding: 0.7rem 0.75rem;
  vertical-align: middle;
}

.access-matrix-table thead th {
  background: #f4f6f7;
  color: #34424b;
  position: sticky;
  text-align: center;
  top: 0;
  z-index: 5;
}

.access-matrix-table thead th:first-child,
.access-matrix-page-cell {
  left: 0;
  position: sticky;
  z-index: 3;
}

.access-matrix-table thead th:nth-child(2),
.access-matrix-action-cell {
  left: 270px;
  position: sticky;
  z-index: 3;
}

.access-matrix-table thead th:first-child,
.access-matrix-table thead th:nth-child(2) {
  z-index: 7;
}

.access-matrix-page-column,
.access-matrix-page-cell {
  min-width: 270px;
  width: 270px;
}

.access-matrix-action-column,
.access-matrix-action-cell {
  min-width: 255px;
  width: 255px;
}

.access-matrix-profile-column {
  min-width: 155px;
}

.access-matrix-profile-column > span:first-child,
.access-matrix-profile-column small {
  display: block;
}

.access-matrix-profile-column small {
  color: var(--sie-muted);
  font-size: 0.62rem;
  font-weight: 500;
  margin-top: 0.15rem;
}

.access-matrix-profile-tools {
  display: flex;
  gap: 0.25rem;
  justify-content: center;
  margin-top: 0.45rem;
}

.access-matrix-profile-tools button {
  background: #fff;
  border: 1px solid #cfd7dc;
  border-radius: 4px;
  color: #53616a;
  font-size: 0.61rem;
  padding: 0.15rem 0.35rem;
}

.access-matrix-group-row th {
  background: #eef4f1;
  color: #245a43;
  font-size: 0.72rem;
  letter-spacing: 0.045em;
  padding: 0.52rem 0.75rem;
  position: relative;
  text-align: left;
  text-transform: uppercase;
  z-index: 2;
}

.access-matrix-group-config {
  align-items: end;
  display: flex;
  gap: 0.65rem;
}

.access-matrix-group-config label,
.access-matrix-page-order {
  display: grid;
  gap: 0.2rem;
}

.access-matrix-group-config label:first-child {
  min-width: 250px;
}

.access-matrix-group-config span,
.access-matrix-page-order span {
  color: #527060;
  font-size: 0.6rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
}

.access-matrix-group-config input,
.access-matrix-page-order input {
  background: #fff;
  border: 1px solid #cbd9d1;
  border-radius: 5px;
  color: var(--sie-text);
  font-size: 0.7rem;
  min-height: 30px;
  padding: 0.3rem 0.45rem;
}

.access-matrix-group-config label:first-child input {
  width: 290px;
}

.access-matrix-order-field input,
.access-matrix-page-order input {
  width: 78px;
}

.access-matrix-page-order {
  margin-top: 0.55rem;
}

.access-matrix-page-cell {
  box-shadow: 1px 0 0 var(--matrix-border);
  vertical-align: top !important;
}

.access-matrix-page-cell strong,
.access-matrix-action-cell strong,
.access-matrix-page-cell span,
.access-matrix-action-cell span {
  display: block;
}

.access-matrix-page-cell strong {
  color: #202b32;
  font-size: 0.82rem;
  margin-bottom: 0.25rem;
}

.access-matrix-page-cell span,
.access-matrix-action-cell span {
  color: var(--sie-muted);
  font-size: 0.69rem;
  line-height: 1.45;
}

.access-matrix-page-cell a {
  color: var(--sie-primary);
  display: inline-block;
  font-size: 0.68rem;
  font-weight: 600;
  margin-top: 0.45rem;
  text-decoration: none;
}

.access-matrix-action-cell {
  box-shadow: 1px 0 0 var(--matrix-border);
}

.access-matrix-check-cell {
  text-align: center;
}

.access-switch {
  align-items: center;
  cursor: pointer;
  display: inline-flex;
  flex-direction: column;
  gap: 0.2rem;
}

.access-switch input {
  height: 1px;
  opacity: 0;
  position: absolute;
  width: 1px;
}

.access-switch > span {
  background: #c7cfd4;
  border-radius: 999px;
  height: 20px;
  position: relative;
  transition: background 0.15s ease;
  width: 36px;
}

.access-switch > span::after {
  background: #fff;
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(20, 30, 35, 0.24);
  content: '';
  height: 16px;
  left: 2px;
  position: absolute;
  top: 2px;
  transition: transform 0.15s ease;
  width: 16px;
}

.access-switch input:checked + span {
  background: #138a52;
}

.access-switch input:checked + span::after {
  transform: translateX(16px);
}

.access-switch input:focus-visible + span {
  box-shadow: 0 0 0 3px rgba(239, 94, 55, 0.2);
  outline: 2px solid var(--sie-primary);
}

.access-switch em {
  color: #66737b;
  font-size: 0.61rem;
  font-style: normal;
}

.access-switch.is-locked {
  cursor: not-allowed;
  opacity: 0.68;
}

.access-matrix-unavailable {
  color: #9da7ad;
}

.access-matrix-footer {
  border-top: 1px solid var(--matrix-border);
  justify-content: space-between;
  padding: 0.75rem 1rem;
}

.access-matrix-footer > span {
  color: var(--sie-muted);
  font-size: 0.73rem;
}

@media (max-width: 980px) {
  .access-matrix-notes {
    grid-template-columns: 1fr;
  }

  .access-matrix-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .access-matrix-toolbar-actions {
    flex-wrap: wrap;
  }
}

@media (max-width: 640px) {
  .access-matrix-filters {
    grid-template-columns: 1fr;
  }

  .access-matrix-table thead th:nth-child(2),
  .access-matrix-action-cell {
    left: 220px;
  }

  .access-matrix-page-column,
  .access-matrix-page-cell {
    min-width: 220px;
    width: 220px;
  }
}

/* Agravos prioritários */
.priority-diseases-intro {
  border-left: 4px solid #e85b3d;
}

.priority-diseases-intro .eyebrow {
  color: #b73b23;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  margin: 0 0 4px;
  text-transform: uppercase;
}

.priority-diseases-source-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.priority-source-status {
  align-items: center;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  display: inline-flex;
  font-size: 0.78rem;
  font-weight: 800;
  min-height: 30px;
  padding: 4px 10px;
}

.priority-source-status.is-success {
  background: #ecfdf3;
  border-color: #a7e6bd;
  color: #17643a;
}

.priority-source-status.is-warning {
  background: #fff8e7;
  border-color: #f2cf7f;
  color: #855b08;
}

.priority-source-status.is-danger {
  background: #fff0ed;
  border-color: #f2b7ab;
  color: #a8321d;
}

.priority-source-status.is-neutral {
  background: #f4f7fb;
  color: #526173;
}

.priority-source-note {
  color: #64748b;
  font-size: 0.82rem;
  margin: 12px 0 0;
}

.priority-source-error {
  display: block;
  font-size: 0.82rem;
  margin-top: 6px;
}

.priority-diseases-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.priority-diseases-metrics .metric {
  border: 1px solid #dbe4ee;
  border-top: 4px solid var(--priority-metric-accent);
  box-shadow: 0 3px 10px rgba(15, 23, 42, 0.07);
  color: #334155;
}

.priority-diseases-metrics .metric-label,
.priority-diseases-metrics .metric-value,
.priority-diseases-metrics .metric .muted {
  color: inherit;
}

.priority-diseases-metrics .metric .muted {
  opacity: 0.84;
}

.priority-diseases-metrics .metric::after {
  background: var(--priority-metric-accent);
  opacity: 0.25;
}

.priority-diseases-metrics .priority-metric-records {
  --priority-metric-accent: #df5638;
  background: #fff1ed;
  color: #96351f;
}

.priority-diseases-metrics .priority-metric-municipalities {
  --priority-metric-accent: #347eb5;
  background: #edf6ff;
  color: #1d567e;
}

.priority-diseases-metrics .priority-metric-diseases {
  --priority-metric-accent: #7959bd;
  background: #f5f0ff;
  color: #51388b;
}

.priority-diseases-metrics .priority-metric-people {
  --priority-metric-accent: #318856;
  background: #ecf8f0;
  color: #1b603b;
}

.priority-diseases-metrics .priority-metric-disaster {
  --priority-metric-accent: #bd7815;
  background: #fff7df;
  color: #714807;
}

.priority-diseases-metrics .priority-metric-hospitalized {
  --priority-metric-accent: #21879a;
  background: #eaf8fa;
  color: #125866;
}

.priority-diseases-metrics .priority-metric-outbreaks {
  --priority-metric-accent: #c94b4b;
  background: #fff0f0;
  color: #882d2d;
}

.priority-diseases-filters {
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(260px, 1.5fr) repeat(3, minmax(170px, 1fr)) auto;
}

.priority-diseases-filters label {
  min-width: 0;
}

.priority-diseases-filters .filter-actions {
  align-items: flex-end;
}

.priority-diseases-table {
  min-width: 1320px;
}

.priority-diseases-table th:nth-child(1) {
  min-width: 145px;
}

.priority-diseases-table th:nth-child(2),
.priority-diseases-table th:nth-child(3),
.priority-diseases-table th:nth-child(5) {
  min-width: 190px;
}

.priority-diseases-table th:nth-child(6) {
  min-width: 160px;
}

.priority-diseases-table th:nth-child(4) {
  min-width: 110px;
  text-align: right;
}

.priority-diseases-table td:nth-child(4) {
  font-variant-numeric: tabular-nums;
  text-align: right;
}

.priority-table-secondary {
  color: #64748b;
  display: block;
  font-size: 0.78rem;
  margin-top: 3px;
}

.priority-diseases-empty {
  color: #64748b;
  padding: 28px 16px !important;
  text-align: center;
}

@media (max-width: 1180px) {
  .priority-diseases-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .priority-diseases-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .priority-diseases-search,
  .priority-diseases-filters .filter-actions {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .priority-diseases-intro .section-heading,
  .priority-diseases-source-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .priority-diseases-source-actions .btn {
    justify-content: center;
    width: 100%;
  }

  .priority-diseases-metrics,
  .priority-diseases-filters {
    grid-template-columns: 1fr;
  }

  .priority-diseases-search,
  .priority-diseases-filters .filter-actions {
    grid-column: auto;
  }
}

.integrated-map-workspace {
  display: grid;
  grid-template-columns: minmax(230px, 300px) minmax(0, 1fr);
  min-height: calc(100vh - 148px);
  border: 1px solid #e5e7eb;
  background: #fff;
}

.integrated-map-layout {
  display: grid;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
  min-height: 520px;
  border: 1px solid #e5e7eb;
  background: #fff;
}

.operational-risk-map-layout {
  min-height: 560px;
}

.operational-risk-map-layout.is-hospital-only {
  grid-template-columns: minmax(0, 1fr);
}

.map-subfilter {
  display: flex;
  align-items: flex-end;
  gap: 10px;
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  background: #fafafa;
}

.map-subfilter .field {
  min-width: min(360px, 100%);
  margin: 0;
}

.integrated-map-shell-fullscreen {
  position: fixed;
  inset: 10px;
  z-index: 3000;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 14px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.28);
}

.integrated-map-shell-fullscreen .integrated-map-layout {
  flex: 1 1 auto;
  min-height: 0;
  height: 100%;
}

.integrated-map-shell-fullscreen .integrated-map {
  min-height: 0;
  height: 100%;
}

.integrated-map-shell-fullscreen .integrated-map-panel {
  max-height: none;
}

html.integrated-map-fullscreen-open,
body.integrated-map-fullscreen-open {
  overflow: hidden;
  overscroll-behavior: none;
}

body.integrated-map-fullscreen-open {
  /* The desktop body zoom also scales fixed descendants, leaving part of the
     application visible outside a nominal 100vw/100vh fullscreen shell. */
  --sie-page-zoom: 1;
  zoom: 1;
}

.integrated-map {
  position: relative;
  min-height: 520px;
  width: 100%;
  background: #f3f4f6;
}

.integrated-map-tools {
  position: absolute;
  z-index: 860;
  top: 12px;
  left: 54px;
  right: 12px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  pointer-events: auto;
}

/* O Tempo real usa o painel lateral próprio; a barra genérica sobre o mapa
   duplicava filtros de outros painéis e encobria a leitura operacional. */
.real-time-map-canvas > .integrated-map-tools {
  display: none;
}

.integrated-map-tools button {
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid rgba(15, 23, 42, 0.16);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
  color: #1f2937;
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.integrated-map-tools button:hover,
.integrated-map-tools button.is-active {
  border-color: var(--sie-primary);
  background: var(--sie-primary);
  color: #fff;
}

.integrated-map-impact-panel {
  position: absolute;
  z-index: 870;
  top: 54px;
  right: 12px;
  display: none;
  width: min(390px, calc(100% - 24px));
  max-height: calc(100% - 72px);
  overflow: auto;
  padding: 12px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.97);
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.18);
  gap: 12px;
}

.integrated-map-impact-panel.is-open {
  display: grid;
}

.impact-panel-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
}

.impact-panel-header h3 {
  margin: 0;
  font-size: 15px;
  line-height: 1.25;
}

.impact-panel-header p {
  margin: 4px 0 0;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.35;
}

.impact-panel-header button {
  min-height: 28px;
  padding: 4px 8px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.impact-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
}

.impact-summary-grid span {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 8px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #f8fafc;
}

.impact-summary-grid strong {
  font-size: 16px;
  line-height: 1;
}

.impact-summary-grid small {
  overflow: hidden;
  color: var(--sie-muted);
  font-size: 10px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.impact-section {
  display: grid;
  gap: 7px;
  padding-top: 10px;
  border-top: 1px solid var(--sie-line);
}

.impact-section h4 {
  margin: 0;
  color: #374151;
  font-size: 12px;
  text-transform: uppercase;
}

.impact-section ul {
  display: grid;
  gap: 5px;
  margin: 0;
  padding-left: 18px;
  color: var(--sie-text);
  font-size: 12px;
  line-height: 1.4;
}

.impact-score-list {
  display: grid;
  gap: 7px;
}

.impact-score-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 8px;
  align-items: start;
  padding: 8px;
  border: 1px solid rgba(230, 98, 57, 0.24);
  border-radius: 6px;
  background: #fff7f3;
}

.impact-score-item strong {
  min-width: 0;
  font-size: 12px;
  line-height: 1.25;
}

.impact-score-item span {
  color: var(--sie-primary);
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.impact-score-item small {
  grid-column: 1 / -1;
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.35;
}

.impact-score-item.is-context-only {
  border-color: rgba(100, 116, 139, 0.24);
  background: #f8fafc;
}

.impact-score-item.is-context-only span {
  color: var(--sie-muted);
}

.impact-item {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 8px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
}

.impact-item strong {
  overflow: hidden;
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.impact-item small,
.impact-item em {
  color: var(--sie-muted);
  font-size: 11px;
  font-style: normal;
  line-height: 1.35;
}

.sie-map-muted {
  opacity: 0.16 !important;
}

.sie-map-filter-hidden {
  display: none !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.integrated-map-full {
  min-height: calc(100vh - 148px);
}

.integrated-map-panel {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px;
  border-right: 1px solid #e5e7eb;
  background: #fafafa;
  overflow: auto;
}

.integrated-map-panel-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.integrated-map-panel-heading h2 {
  margin: 0;
  font-size: 1rem;
}

.map-layer-toggle {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 7px 8px;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #fff;
  font-size: 0.84rem;
}

.map-layer-toggle input {
  width: 16px;
  height: 16px;
  margin: 0;
}

.map-layer-toggle span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.map-layer-toggle strong {
  min-width: 30px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #f3f4f6;
  color: #374151;
  font-size: 0.74rem;
  text-align: center;
}

.map-layer-node {
  display: grid;
  gap: 6px;
}

.map-layer-node.has-children .map-layer-toggle {
  cursor: pointer;
}

.map-layer-subfilters {
  display: none;
  margin: -2px 0 4px 26px;
  padding: 8px;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #fff;
}

.map-layer-node.is-open .map-layer-subfilters {
  display: grid;
  gap: 8px;
}

.map-layer-subfilters-head,
.map-layer-subfilter-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.map-layer-subfilters-head span {
  color: #374151;
  font-size: 0.78rem;
  font-weight: 700;
}

.map-layer-subfilters-head small {
  color: var(--sie-muted);
  font-size: 0.72rem;
}

.map-layer-subfilter-list {
  display: grid;
  gap: 5px;
  max-height: 210px;
  overflow: auto;
  padding-right: 2px;
}

.map-layer-subfilter-list label {
  display: grid;
  grid-template-columns: 15px minmax(0, 1fr);
  align-items: start;
  gap: 6px;
  color: #374151;
  font-size: 0.78rem;
  line-height: 1.25;
}

.map-layer-subfilter-list input {
  width: 14px;
  height: 14px;
  margin: 1px 0 0;
}

.map-layer-subfilter-actions {
  justify-content: flex-start;
}

.integrated-map-legend {
  display: grid;
  gap: 7px;
  padding-top: 8px;
  border-top: 1px solid #e5e7eb;
  font-size: 0.8rem;
  color: #4b5563;
}

.integrated-map-legend span {
  display: flex;
  align-items: center;
  gap: 7px;
}

.legend-dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
  display: inline-block;
}

.legend-line {
  width: 18px;
  height: 3px;
  border-radius: 999px;
  display: inline-block;
}

.legend-area {
  width: 18px;
  height: 12px;
  border: 2px dashed currentColor;
  border-radius: 3px;
  display: inline-block;
  background: rgba(220, 38, 38, 0.22);
}

.legend-critical {
  background: #b91c1c;
}

.legend-high {
  background: #e66239;
}

.legend-hydro {
  background: #0369a1;
}

.legend-road {
  background: #b91c1c;
}

.legend-risk-polygon {
  color: #dc2626;
}

.integrated-patient-marker {
  background: transparent !important;
  border: 0 !important;
  overflow: visible;
}

.integrated-vulnerable-people-symbol {
  display: block;
  height: 100%;
  position: relative;
  width: 100%;
}

.integrated-vulnerable-people-symbol svg {
  display: block;
  filter: drop-shadow(0 4px 5px rgba(15, 23, 42, .32));
  height: 100%;
  overflow: visible;
  width: 100%;
}

.integrated-vulnerable-people-person-halo,
.integrated-vulnerable-people-person {
  stroke-linecap: round;
  stroke-linejoin: round;
}

.integrated-vulnerable-people-person-halo {
  fill: #fff;
  stroke: #fff;
  stroke-width: 7px;
}

.integrated-vulnerable-people-person {
  fill: rgba(255, 255, 255, .94);
  stroke: var(--vulnerable-marker-color, #0f766e);
  stroke-width: 4px;
}

.integrated-vulnerable-people-count {
  dominant-baseline: middle;
  fill: #0f172a;
  font-size: 12px;
  font-weight: 900;
  paint-order: stroke;
  stroke: #fff;
  stroke-width: 2px;
  text-anchor: middle;
}

.integrated-vulnerable-people-count.is-compact {
  font-size: 8.5px;
}

.integrated-hospital-square-icon {
  background: transparent;
  border: 0;
}

.integrated-hospital-square-icon > span {
  align-items: center;
  background: var(--hospital-marker-color, #14815c);
  border: 2px solid #fff;
  border-radius: 2px;
  box-shadow: 0 1px 4px rgba(15, 23, 42, .5);
  box-sizing: border-box;
  color: #fff;
  display: flex;
  font-size: clamp(8px, .68rem, 12px);
  font-weight: 900;
  height: 100%;
  justify-content: center;
  line-height: 1;
  text-shadow: 0 1px 2px rgba(15, 23, 42, .7);
  width: 100%;
}

.integrated-hospital-square-icon.is-near-risk > span {
  border-color: #7f1d1d;
  border-width: 3px;
  box-shadow: 0 0 0 1px #fff, 0 2px 5px rgba(127, 29, 29, .55);
}

.integrated-hospital-square-icon.is-operational-risk,
.integrated-hospital-square-icon.is-operational-risk > span {
  overflow: visible;
}

.integrated-hospital-square-icon.is-operational-risk > span {
  position: relative;
}

.integrated-hospital-square-icon.is-operational-risk.is-at-risk > span {
  box-shadow: 0 0 0 2px rgba(255, 255, 255, .92), 0 3px 8px rgba(15, 23, 42, .55);
}

.integrated-hospital-square-icon.is-operational-risk em {
  position: absolute;
  top: -10px;
  left: calc(100% - 3px);
  display: grid;
  place-items: center;
  min-width: 30px;
  height: 20px;
  padding: 0 5px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: var(--hospital-marker-color, #b91c1c);
  box-shadow: 0 2px 6px rgba(15, 23, 42, .4);
  color: #fff;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

.integrated-patient-marker.is-critical {
  --vulnerable-marker-color: #b91c1c;
}

.integrated-patient-marker.is-risk {
  --vulnerable-marker-color: #e66239;
}

.integrated-patient-marker.is-attention {
  --vulnerable-marker-color: #d99a00;
}

.integrated-patient-marker.is-stable {
  --vulnerable-marker-color: #0f766e;
}

.integrated-vigidesastres-marker,
.operational-evidence-vigidesastres-marker {
  position: relative;
  display: grid;
  place-items: center;
}

.integrated-vigidesastres-core,
.operational-evidence-vigidesastres-core {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 2px solid #fff;
  border-radius: 8px;
  background: #6d28d9;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.28);
  color: #fff;
  font-size: 16px;
  font-weight: 900;
  line-height: 1;
  transform: rotate(45deg);
}

.integrated-vigidesastres-core.has-attention,
.operational-evidence-vigidesastres-core.has-attention {
  background: #7c2d12;
}

.integrated-vigidesastres-core span,
.operational-evidence-vigidesastres-core span {
  transform: rotate(-45deg);
}

.integrated-vigidesastres-marker strong,
.operational-evidence-vigidesastres-marker strong {
  position: absolute;
  right: -6px;
  bottom: -5px;
  display: grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #111827;
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}

.operational-risk-map-panel .section-heading {
  align-items: flex-start;
}

@media (max-width: 980px) {
  .integrated-map-workspace,
  .integrated-map-layout {
    grid-template-columns: 1fr;
  }

  .integrated-map-shell-fullscreen .integrated-map-layout {
    grid-template-columns: minmax(210px, 260px) minmax(0, 1fr);
  }

  .integrated-map-shell-fullscreen .operational-risk-map-layout.is-hospital-only {
    grid-template-columns: minmax(0, 1fr);
  }

  .integrated-map-panel {
    max-height: none;
    border-right: 0;
    border-bottom: 1px solid #e5e7eb;
  }

  .integrated-map,
  .integrated-map-full {
    min-height: 62vh;
  }

  .integrated-map-tools {
    left: 12px;
    top: 12px;
  }

  .integrated-map-impact-panel {
    top: auto;
    right: 10px;
    bottom: 10px;
    left: 10px;
    width: auto;
    max-height: 48vh;
  }

  .map-subfilter {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (max-width: 620px) {
  .integrated-map-panel-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .integrated-map-shell-fullscreen {
    inset: 0;
    padding: 10px;
  }

  .integrated-map-shell-fullscreen .integrated-map-layout {
    grid-template-columns: 1fr;
  }
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-height: 100vh;
  background: var(--sie-bg);
  color: var(--sie-text);
  font-family: "Poppins", Arial, Helvetica, sans-serif;
  font-size: 12px;
  letter-spacing: 0;
  zoom: var(--sie-page-zoom);
}

.btn-primary {
  --bs-btn-bg: var(--sie-primary);
  --bs-btn-border-color: var(--sie-primary);
  --bs-btn-hover-bg: #cf5732;
  --bs-btn-hover-border-color: #cf5732;
  --bs-btn-active-bg: #b94d2c;
  --bs-btn-active-border-color: #b94d2c;
}

.btn-success {
  --bs-btn-bg: var(--sie-green);
  --bs-btn-border-color: var(--sie-green);
  --bs-btn-hover-bg: #008f3b;
  --bs-btn-hover-border-color: #008f3b;
}

.btn-outline-primary {
  --bs-btn-color: var(--sie-primary);
  --bs-btn-border-color: var(--sie-primary);
  --bs-btn-hover-bg: var(--sie-primary);
  --bs-btn-hover-border-color: var(--sie-primary);
}

.btn {
  font-size: 0.9rem;
}

.app-shell {
  display: grid;
  grid-template-columns: 258px minmax(0, 1fr);
  min-height: 100vh;
}

.app-shell.sidebar-collapsed {
  grid-template-columns: minmax(0, 1fr);
}

.app-shell.sidebar-collapsed .sidebar {
  display: none;
}

.sidebar {
  background: var(--sie-nav);
  color: var(--sie-text);
  padding: 20px 16px;
  border-right: 1px solid var(--sie-line);
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  margin-bottom: 20px;
  font-weight: 700;
}

.brand-mark {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--sie-primary-line);
  border-radius: 8px;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  font-size: 12px;
  font-weight: 700;
}

.brand-text {
  font-size: 15px;
  letter-spacing: 0;
}

.sidebar-context {
  display: grid;
  gap: 3px;
  margin: -8px 0 18px;
  padding: 10px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fcfcfc;
}

.sidebar-context span {
  color: var(--sie-primary);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
}

.sidebar-context strong {
  color: var(--sie-text);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.25;
}

.sidebar-account-button {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  width: 100%;
  margin: -10px 0 18px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  color: var(--sie-text);
  cursor: pointer;
  text-align: left;
  transition: background-color .16s ease, border-color .16s ease, color .16s ease;
}

.sidebar-account-button:hover,
.sidebar-account-button:focus-visible,
.sidebar-account-button[aria-expanded="true"] {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  outline: none;
}

.sidebar-account-button > span:nth-child(2) {
  display: grid;
  min-width: 0;
  gap: 1px;
}

.sidebar-account-button strong,
.sidebar-account-button small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sidebar-account-button strong {
  font-size: 12px;
  font-weight: 700;
}

.sidebar-account-button small {
  color: var(--sie-muted);
  font-size: 10px;
}

.sidebar-account-icon {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--sie-primary-line);
  color: var(--sie-primary);
  font-size: 9px;
  font-weight: 800;
}

.sidebar-account-arrow {
  color: var(--sie-muted);
  font-size: 20px;
  line-height: 1;
}

.nav-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.nav-section {
  margin: 18px 8px 6px;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
}

.nav-subsection {
  min-width: 0;
  margin: 2px 0 4px;
  list-style: none;
}

.nav-subsection > details > summary {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 8px 8px 5px;
  color: var(--sie-muted);
  cursor: pointer;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .035em;
  line-height: 1.35;
  list-style: none;
  text-transform: uppercase;
}

.nav-subsection > details > summary::-webkit-details-marker {
  display: none;
}

.nav-subsection > details > summary::before {
  content: "\25b8";
  flex: 0 0 auto;
  color: var(--sie-primary);
  font-size: 10px;
  transition: transform .16s ease;
}

.nav-subsection > details[open] > summary::before {
  transform: rotate(90deg);
}

.nav-subsection-list {
  margin: 0;
  padding: 0 0 2px 11px;
  list-style: none;
}

.nav-subsection-list > li + li {
  margin-top: 4px;
}

.nav-subsection-list .nav-link {
  min-height: 36px;
  padding: 7px 10px;
}

.nav-link {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 40px;
  padding: 8px 12px;
  border-radius: 8px;
  color: var(--sie-muted);
  text-decoration: none;
  font-weight: 500;
}

.nav-link:hover,
.nav-link.is-active {
  background: var(--sie-nav-active);
  color: var(--sie-primary);
}

.nav-link-label {
  min-width: 0;
}

.nav-pending-badge {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  margin-left: auto;
  padding: 0 6px;
  border: 1px solid #fdba74;
  border-radius: 999px;
  background: #fff7ed;
  color: #c2410c;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}

.nav-link:hover .nav-pending-badge,
.nav-link.is-active .nav-pending-badge {
  border-color: #fb923c;
  background: #ffedd5;
}

.nav-pending-badge.is-danger {
  border-color: #fca5a5;
  background: #fee2e2;
  color: #b91c1c;
}

.nav-link:hover .nav-pending-badge.is-danger,
.nav-link.is-active .nav-pending-badge.is-danger {
  border-color: #ef4444;
  background: #fecaca;
  color: #991b1b;
}

.nav-icon {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 6px;
  background: #f5f5f5;
  color: var(--sie-muted);
  font-size: 12px;
}

.nav-link.is-active .nav-icon,
.nav-link:hover .nav-icon {
  background: var(--sie-primary);
  color: #fff;
}

.app-main {
  min-width: 0;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 60px;
  padding: 10px 26px;
  background: var(--sie-surface);
  border-bottom: 1px solid var(--sie-line);
  position: sticky;
  top: 0;
  z-index: 10;
}

.system-alert-bar {
  display: grid;
  grid-template-columns: 178px minmax(180px, 0.9fr) minmax(120px, 0.55fr) minmax(240px, 1.25fr) minmax(200px, 0.8fr);
  align-items: stretch;
  gap: 0;
  min-height: 50px;
  margin: 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.24);
  background: #c9142f;
  color: #fff;
  box-shadow: var(--sie-shadow);
}

button.system-alert-bar {
  width: 100%;
  padding: 0;
  border-top: 0;
  border-right: 0;
  border-left: 0;
  border-radius: 0;
  appearance: none;
  color: #fff;
  font: inherit;
  text-align: left;
  cursor: pointer;
  transition: filter 0.16s ease, box-shadow 0.16s ease;
}

button.system-alert-bar:hover {
  filter: brightness(1.04);
}

button.system-alert-bar:focus-visible {
  z-index: 2;
  outline: 3px solid #fff;
  outline-offset: -4px;
  box-shadow: inset 0 0 0 6px rgba(15, 23, 42, 0.42);
}

.system-alert-bar > div {
  display: grid;
  align-content: center;
  gap: 2px;
  padding: 7px 14px;
  border-right: 1px solid rgba(255, 255, 255, 0.16);
  background: rgba(120, 0, 20, 0.12);
}

.system-alert-bar > div:nth-child(even) {
  background: rgba(255, 255, 255, 0.04);
}

.system-alert-bar strong {
  font-size: 11px;
  font-weight: 800;
  line-height: 1.1;
  text-transform: uppercase;
}

.system-alert-bar span {
  font-size: 13px;
  font-weight: 500;
  line-height: 1.2;
}

.system-alert-local {
  min-width: 0;
}

.system-alert-local span {
  white-space: normal;
  overflow-wrap: anywhere;
}

.system-alert-title {
  display: flex !important;
  align-items: center;
  gap: 10px;
  background: #f57c32 !important;
}

.system-alert-title span {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 2px solid rgba(255, 255, 255, 0.9);
  border-radius: 999px;
  font-size: 20px;
  font-weight: 800;
  line-height: 1;
}

.system-alert-title strong {
  font-size: 17px;
  line-height: 1.05;
  letter-spacing: 0;
}

.system-alert-title-copy {
  display: grid;
  gap: 2px;
}

.system-alert-title-copy small {
  color: rgba(255, 255, 255, 0.88);
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  text-transform: none;
}

.system-alert-attention {
  background: #b7791f;
}

.system-alert-high {
  background: #c9142f;
}

.system-alert-critical {
  background: #9f1239;
}

.system-alert-modal {
  inset: 0;
  width: 100vw;
  height: 100vh;
  z-index: 3400;
  padding: 28px;
  background: rgba(15, 23, 42, 0.62);
  backdrop-filter: blur(3px);
}

.system-alert-modal .system-alert-modal-panel {
  width: min(100%, 1160px);
  max-height: min(92vh, 860px);
  border: 0;
  border-top: 5px solid #b7791f;
  border-radius: 12px;
}

.system-alert-modal .system-alert-modal-high {
  border-top-color: #c9142f;
}

.system-alert-modal .system-alert-modal-critical {
  border-top-color: #9f1239;
}

.system-alert-modal .system-alert-modal-header {
  align-items: center;
  padding: 20px 24px 18px;
}

.system-alert-modal-header h2 {
  margin-top: 5px;
  font-size: clamp(19px, 2vw, 25px);
}

.system-alert-modal-kicker {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #9a6700;
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.system-alert-modal-high .system-alert-modal-kicker,
.system-alert-modal-critical .system-alert-modal-kicker {
  color: #b4233c;
}

.system-alert-modal-kicker .ui-icon-glyph {
  width: 17px;
  height: 17px;
}

.system-alert-modal .system-alert-modal-body {
  gap: 0;
  max-height: calc(92vh - 155px);
  padding: 0 24px 22px;
  scroll-behavior: auto;
}

.system-alert-modal-details {
  display: grid;
  gap: 9px;
  padding-top: 2px;
}

.system-alert-modal-details > h3 {
  margin: 0;
  color: var(--sie-text);
  font-size: 14px;
}

.system-alert-modal-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0 0 4px;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 9px;
  background: var(--sie-line);
}

.system-alert-modal-summary > div {
  display: grid;
  align-content: start;
  gap: 5px;
  min-height: 80px;
  padding: 14px 16px;
  background: #fff;
}

.system-alert-modal-summary dt {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.system-alert-modal-summary dd {
  margin: 0;
  color: var(--sie-text);
  font-size: 13px;
  font-weight: 750;
  line-height: 1.35;
}

.system-alert-modal-summary .system-alert-modal-locations dd {
  overflow-wrap: anywhere;
  white-space: normal;
}

.system-alert-modal-summary .system-alert-modal-period {
  grid-column: 1 / -1;
  min-height: 68px;
}

.system-alert-modal-text {
  padding: 17px 0;
  border-bottom: 1px solid var(--sie-line);
}

.system-alert-modal-text h3,
.system-alert-modal-section-heading h3 {
  margin: 0;
  color: var(--sie-text);
  font-size: 13px;
}

.system-alert-modal-text p {
  margin: 7px 0 0;
  color: var(--sie-text);
  font-size: 13px;
  line-height: 1.55;
}

.system-alert-modal-documents {
  display: grid;
  gap: 12px;
  margin-top: 18px;
  padding: 16px;
  border: 1px solid #dbe4ea;
  border-radius: 9px;
  background: #f8fafc;
}

.system-alert-modal-section-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.system-alert-modal-section-heading .ops-kicker {
  margin-bottom: 3px;
}

.system-alert-pdf-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.system-alert-pdf-list li {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 7px;
  background: #fff;
}

.system-alert-pdf-list li > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.system-alert-pdf-list a {
  color: var(--sie-primary);
  text-decoration: none;
  overflow-wrap: anywhere;
}

.system-alert-pdf-list a:hover,
.system-alert-pdf-list a:focus-visible {
  text-decoration: underline;
}

.system-alert-pdf-list small,
.system-alert-modal-empty {
  color: var(--sie-muted);
  font-size: 11px;
}

.system-alert-modal-empty {
  margin: 0;
}

.system-alert-pdf-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: #fff0f2;
  color: #b4233c;
}

.system-alert-pdf-icon .ui-icon-glyph {
  width: 20px;
  height: 20px;
}

.system-alert-critical {
  background: #9f1025;
}

.system-operational-bar {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 42px;
  padding: 10px 26px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.22);
  background: #17834d;
  color: #fff;
  box-shadow: var(--sie-shadow);
}

.system-operational-bar strong {
  font-size: 13px;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.system-operational-bar span {
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
}

.system-operational-bar strong::after {
  content: " -";
}

.admin-pending-notice {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 26px;
  border-bottom: 1px solid #fdba74;
  background: #fff7ed;
  color: #7c2d12;
  box-shadow: 0 4px 14px rgba(124, 45, 18, .08);
}

.admin-pending-notice-copy {
  display: flex;
  align-items: center;
  gap: 10px;
}

.admin-pending-notice-copy > span:last-child {
  display: grid;
  gap: 2px;
}

.admin-pending-notice-copy strong {
  font-size: 13px;
}

.admin-pending-notice-copy small {
  color: #9a3412;
  font-size: 11px;
}

.admin-pending-notice-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  background: #ea580c;
  color: #fff;
}

.admin-pending-notice nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.admin-pending-notice nav a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 9px;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  background: #fff;
  color: #7c2d12;
  font-size: 11px;
  font-weight: 600;
  text-decoration: none;
}

.admin-pending-notice nav a:hover {
  border-color: #fb923c;
  color: #c2410c;
}

.admin-pending-notice nav a strong {
  display: inline-grid;
  place-items: center;
  min-width: 21px;
  height: 21px;
  padding: 0 5px;
  border-radius: 999px;
  background: #ea580c;
  color: #fff;
  font-size: 11px;
}

@media (max-width: 900px) {
  .admin-pending-notice {
    align-items: stretch;
    flex-direction: column;
    padding: 12px 16px;
  }

  .admin-pending-notice nav {
    justify-content: flex-start;
  }
}

.topbar-title {
  display: grid;
  gap: 2px;
  margin-right: auto;
}

.topbar-title strong {
  font-size: 13px;
  font-weight: 600;
}

.topbar-title span {
  color: var(--sie-muted);
  font-size: 12px;
}

.logout-form {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0;
}

.user-chip {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 999px;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
}

.sidebar-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  background: #f7f7f7;
  color: var(--sie-text);
  cursor: pointer;
}

.page {
  padding: 22px 26px 30px;
}

.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
  color: var(--sie-muted);
  font-size: 13px;
}

.page-title {
  margin: 0 0 18px;
  font-size: 23px;
  font-weight: 600;
  line-height: 1.25;
}

.panel {
  background: var(--sie-surface);
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  padding: 20px;
  box-shadow: var(--sie-shadow);
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
}

.metric {
  position: relative;
  min-height: 126px;
  overflow: hidden;
}

.metric::after {
  content: "";
  position: absolute;
  inset: auto 18px 0 auto;
  width: 62px;
  height: 4px;
  border-radius: 999px 999px 0 0;
  background: var(--sie-primary);
  opacity: 0.35;
}

.metric-label {
  margin: 0 0 8px;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
}

.metric-value {
  margin: 0;
  font-size: 23px;
  font-weight: 700;
}

.metric-icon {
  display: inline-grid;
  place-items: center;
  width: 42px;
  height: 42px;
  margin-bottom: 14px;
  border-radius: 8px;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
}

.metric-primary {
  background: var(--sie-primary);
}

.metric-success {
  background: var(--sie-green);
}

.metric-info {
  background: var(--sie-cyan);
}

.metric-warning {
  background: var(--sie-yellow);
}

.metric-danger {
  background: var(--sie-red);
}

.status-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.status-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: var(--sie-surface);
  font-size: 13px;
  box-shadow: var(--sie-shadow);
}

.dot {
  width: 10px;
  height: 10px;
  border-radius: 999px;
}

.dot.green {
  background: var(--sie-green);
}

.dot.yellow {
  background: var(--sie-yellow);
}

.dot.orange {
  background: var(--sie-orange);
}

.dot.red {
  background: var(--sie-red);
}

.dot.blue {
  background: #2563eb;
}

.dot.purple {
  background: #7c3aed;
}

.dot.weather {
  background: #f59e0b;
}

.dot.gray {
  background: var(--sie-gray);
}

.table-wrap {
  overflow-x: auto;
}

.image-export-source {
  position: absolute;
  top: auto;
  left: -99999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.pagination-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--sie-line);
}

.pagination-summary,
.pagination-size {
  color: var(--sie-muted);
  font-size: 12px;
}

.pagination-controls,
.pagination-size {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.pagination-size a {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 3px 8px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  color: var(--sie-text);
  font-weight: 700;
  text-decoration: none;
}

.pagination-size a.is-active {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.pagination-controls .is-disabled {
  pointer-events: none;
  opacity: 0.45;
}

.dashboard-card-pagination {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
  margin-top: 10px;
  color: var(--sie-muted);
  font-size: 12px;
}

.dashboard-card-pagination-summary {
  min-width: 72px;
  text-align: center;
  font-weight: 800;
}

.dashboard-card-pagination .btn {
  min-height: 28px;
}

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
  line-height: 1.32;
}

th,
td {
  padding: 9px 9px;
  border-bottom: 1px solid var(--sie-line);
  text-align: left;
  vertical-align: top;
}

th {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
}

td strong {
  font-size: 12px;
}

td .muted,
td small {
  font-size: 11px;
}

td .status-badge {
  min-height: 22px;
  padding: 2px 7px;
  font-size: 11px;
}

td .btn-sm {
  min-height: 28px;
  padding: 4px 8px;
  font-size: 11px;
}

tbody tr:hover {
  background: #fcfcfc;
}

.row-alert {
  background: #fff8f8;
}

.stack {
  display: grid;
  gap: 14px;
}

.dashboard-stack {
  display: grid;
  gap: 18px;
}

.dashboard-stack .panel {
  padding: 16px;
}

.dashboard-stack > .welcome-panel,
.dashboard-legacy-metrics {
  display: none;
}

.operations-panel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, auto);
  gap: 18px;
  align-items: center;
  padding: 20px;
  border: 1px solid var(--sie-line);
  border-left: 4px solid var(--sie-primary);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--sie-shadow);
}

.operations-panel h2 {
  margin: 4px 0;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
}

.operations-panel p {
  margin: 0;
}

.ops-kicker {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.operations-state {
  display: grid;
  justify-items: end;
  gap: 6px;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 600;
}

.incident-command-page {
  gap: 18px;
}

.incident-command-hero {
  align-items: center;
}

.incident-command-chart {
  display: grid;
  gap: 12px;
  overflow-x: auto;
  padding: 18px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--sie-shadow);
}

.incident-command-row {
  display: grid;
  gap: 14px;
  align-items: stretch;
  min-width: 980px;
}

.incident-command-row-command {
  grid-template-columns: minmax(280px, 380px);
  justify-content: center;
}

.incident-command-row-staff {
  grid-template-columns: repeat(3, minmax(250px, 1fr));
}

.incident-command-row-sections {
  grid-template-columns: repeat(4, minmax(220px, 1fr));
}

.incident-command-connector {
  position: relative;
  min-width: 980px;
  height: 26px;
}

.incident-command-connector::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  border-left: 2px solid #cbd5e1;
}

.incident-command-connector::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 10%;
  right: 10%;
  border-top: 2px solid #cbd5e1;
}

.incident-command-connector-main::after {
  left: 18%;
  right: 18%;
}

.incident-command-node {
  display: grid;
  grid-template-rows: auto minmax(82px, 1fr) auto;
  gap: 12px;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-top: 4px solid var(--sie-cyan);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--sie-shadow);
}

.incident-command-row-command .incident-command-node {
  border-top-color: var(--sie-primary);
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
}

.incident-command-node header {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.incident-command-node header span {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 28px;
  flex: 0 0 auto;
  border-radius: 8px;
  background: var(--sie-cyan-soft);
  color: var(--sie-cyan);
  font-size: 11px;
  font-weight: 800;
}

.incident-command-row-command .incident-command-node header span {
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.incident-command-node header strong {
  min-width: 0;
  color: var(--sie-text);
  font-size: 14px;
  line-height: 1.2;
}

.incident-command-users {
  display: grid;
  align-content: start;
  gap: 8px;
}

.incident-command-users > .muted {
  margin: 0;
  padding: 10px;
  border: 1px dashed var(--sie-line);
  border-radius: 8px;
  background: #fafafa;
}

.incident-command-user {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
  padding: 10px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fafafa;
}

.incident-command-user strong,
.incident-command-user span,
.incident-command-user small {
  display: block;
  overflow-wrap: anywhere;
}

.incident-command-user strong {
  font-size: 12px;
  line-height: 1.25;
}

.incident-command-user span,
.incident-command-user small {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 600;
  line-height: 1.35;
}

.incident-command-user form {
  margin: 0;
}

.incident-command-form {
  display: grid;
  gap: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--sie-line);
}

.incident-command-form label {
  display: grid;
  gap: 4px;
  min-width: 0;
  color: var(--sie-text);
  font-size: 11px;
  font-weight: 700;
}

.incident-command-form select,
.incident-command-form input {
  width: 100%;
  min-height: 36px;
  min-width: 0;
  padding: 7px 9px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  font: inherit;
  font-weight: 600;
}

.incident-command-form button {
  justify-self: start;
}

@media (max-width: 1100px) {
  .river-route-decision-board { grid-template-columns: 1fr; }
  .river-route-decision-card { min-height: 0; }
  .river-route-source-grid { grid-template-columns: 1fr; }
  .incident-command-chart {
    overflow-x: visible;
  }

  .incident-command-row,
  .incident-command-connector {
    min-width: 0;
  }

  .incident-command-row-command,
  .incident-command-row-staff,
  .incident-command-row-sections {
    grid-template-columns: 1fr;
  }

  .incident-command-connector {
    display: none;
  }
}

.state-report-tag-picker,
.state-report-tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.state-report-tag-option {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 32px;
  padding: 5px 9px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  background: #fff;
  color: var(--sie-text);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.state-report-tag-option:has(input:checked) {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.state-report-tag-option input {
  width: 14px;
  height: 14px;
  margin: 0;
  accent-color: var(--sie-primary);
}

.state-report-tag {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border: 1px solid rgba(0, 138, 168, 0.2);
  border-radius: 999px;
  background: var(--sie-cyan-soft);
  color: var(--sie-cyan);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
}

.state-report-other-tag {
  display: grid;
  gap: 5px;
  margin-top: 8px;
}

.state-report-occurrence-group {
  display: grid;
  gap: 12px;
}

.state-report-occurrence-heading {
  margin-bottom: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--sie-line);
}

.monitoring-refresh-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 26px;
  padding: 4px 9px;
  border: 1px solid rgba(0, 138, 168, 0.22);
  border-radius: 999px;
  background: var(--sie-cyan-soft);
  color: var(--sie-cyan);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.15;
  white-space: nowrap;
}

.monitoring-refresh-chip strong {
  margin-left: 4px;
  color: inherit;
  font-size: 12px;
}

.primary-pending-action {
  min-height: 40px;
  padding-left: 16px;
  padding-right: 16px;
  font-weight: 700;
}

.pending-fill-alert {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 16px 18px;
  border: 1px solid #f6c96b;
  border-left: 4px solid var(--sie-yellow);
  border-radius: 8px;
  background: #fff9ed;
  box-shadow: var(--sie-shadow);
}

.pending-fill-alert h2 {
  margin: 6px 0 4px;
  font-size: 18px;
  line-height: 1.25;
}

.pending-fill-alert p {
  margin: 0;
}

.helper-panel {
  display: grid;
  gap: 6px;
  padding: 14px;
  border: 1px solid rgba(230, 98, 57, 0.22);
  border-left: 4px solid var(--sie-primary);
  border-radius: 8px;
  background: var(--sie-primary-soft);
}

.helper-panel h2 {
  margin: 6px 0 4px;
  font-size: 17px;
  line-height: 1.25;
}

.helper-panel p {
  margin: 0;
  color: var(--sie-muted);
  font-weight: 500;
}

.required-note {
  width: fit-content;
  margin-top: 8px !important;
  padding: 5px 8px;
  border: 1px solid rgba(210, 31, 43, 0.18);
  border-radius: 6px;
  background: #fff;
  color: var(--sie-red) !important;
  font-size: 11px;
  font-weight: 700 !important;
}

.routine-panel {
  border-left: 4px solid var(--sie-primary);
}

.routine-grid,
.pending-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
}

.municipal-guide {
  display: grid;
  gap: 14px;
  border-left: 4px solid var(--sie-green);
}

.profile-municipal .pending-hero {
  order: -30;
}

.profile-municipal .municipal-action-panel {
  order: -20;
}

.profile-municipal .municipal-scope-panel {
  order: -25;
}

.profile-municipal .municipal-guide {
  order: -10;
}

.profile-establishment .establishment-scope-panel {
  order: -25;
}

.profile-establishment .municipal-action-panel {
  order: -20;
}

.profile-establishment .municipal-guide {
  order: -10;
}

.municipal-action-panel {
  display: grid;
  gap: 12px;
  border-left: 4px solid var(--sie-primary);
}

.municipal-action-list {
  display: grid;
  gap: 8px;
}

.municipal-action-card {
  display: grid;
  grid-template-columns: 138px minmax(0, 1fr) 54px 112px;
  gap: 12px;
  align-items: center;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-decoration: none;
}

.municipal-action-card:hover {
  border-color: var(--sie-primary-line);
  background: #fffaf7;
  color: var(--sie-text);
}

.municipal-action-card div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.municipal-action-card strong {
  color: var(--sie-text);
  font-size: 14px;
  line-height: 1.25;
}

.municipal-action-card small {
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.35;
}

.municipal-action-priority,
.municipal-action-card em {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
  text-align: center;
}

.municipal-action-priority {
  background: #f3f4f6;
  color: #475569;
  text-transform: uppercase;
}

.municipal-action-priority.priority-agora {
  background: var(--sie-red-soft);
  color: var(--sie-red);
}

.municipal-action-priority.priority-hoje {
  background: var(--sie-yellow-soft);
  color: var(--sie-yellow);
}

.municipal-action-priority.priority-acompanhar {
  background: var(--sie-cyan-soft);
  color: var(--sie-cyan);
}

.municipal-action-priority.priority-manter-atualizado {
  background: #f3f4f6;
  color: #475569;
}

.municipal-action-priority.priority-em-dia {
  background: var(--sie-green-soft);
  color: var(--sie-green);
}

.municipal-action-count {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  background: #fbfcfe;
  color: var(--sie-text);
  font-size: 18px;
  font-weight: 800;
}

.municipal-action-card em {
  border: 1px solid var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.establishment-scope-panel,
.municipal-scope-panel {
  display: grid;
  gap: 12px;
  border-left: 4px solid var(--sie-cyan);
}

.profile-scope-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.8fr);
  gap: 12px;
  align-items: stretch;
}

.profile-scope-summary {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fbfcfe;
}

.profile-scope-summary strong {
  color: var(--sie-text);
  font-size: 16px;
  line-height: 1.25;
}

.profile-scope-summary span {
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 600;
}

.profile-scope-metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.profile-scope-metrics-wide {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.profile-scope-metrics span {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.profile-scope-metrics strong {
  color: var(--sie-text);
  font-size: 20px;
  line-height: 1;
  text-transform: none;
}

.profile-scope-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.municipal-help-overlay {
  position: fixed;
  inset: 0;
  z-index: 4300;
  display: none;
  place-items: center;
  padding: 18px;
  background: rgba(15, 23, 42, 0.42);
}

.municipal-help-overlay:target {
  display: grid;
}

.municipal-help-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  width: min(720px, 100%);
  max-height: min(680px, calc(100vh - 36px));
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--sie-shadow-lg);
}

.municipal-help-body {
  display: grid;
  gap: 10px;
  overflow: auto;
  padding: 16px 18px 18px;
}

.municipal-help-body article {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fbfcfe;
}

.municipal-help-body strong {
  color: var(--sie-text);
  font-size: 14px;
}

.municipal-help-body span {
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.45;
}

.municipal-guide .section-heading {
  margin-bottom: 0;
}

.municipal-guide-flow {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
}

.municipal-guide-card {
  position: relative;
  display: grid;
  gap: 8px;
  min-height: 164px;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-decoration: none;
}

.municipal-guide-card:hover {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-text);
}

.guide-step-number {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  background: var(--sie-green);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
}

.municipal-guide-card strong {
  font-size: 14px;
  line-height: 1.25;
}

.municipal-guide-card small {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.45;
}

.municipal-guide-card em {
  align-self: end;
  width: fit-content;
  min-height: 24px;
  padding: 4px 8px;
  border-radius: 999px;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  font-size: 11px;
  font-style: normal;
  font-weight: 700;
}

.municipal-guide-notes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.municipal-guide-notes div {
  display: grid;
  gap: 4px;
  min-height: 72px;
  padding: 12px;
  border: 1px solid rgba(0, 168, 70, 0.22);
  border-radius: 8px;
  background: var(--sie-green-soft);
}

.municipal-guide-notes strong {
  font-size: 12px;
  font-weight: 700;
}

.municipal-guide-notes span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.45;
}

.routine-card {
  display: grid;
  gap: 6px;
  min-height: 108px;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-decoration: none;
}

.routine-card:hover {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-text);
}

.routine-card span,
.routine-card small {
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 600;
}

.routine-card span {
  text-transform: uppercase;
}

.routine-card strong {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.25;
}

.routine-card-warning {
  border-color: rgba(183, 121, 31, 0.35);
  background: var(--sie-yellow-soft);
}

.routine-card-info {
  border-color: rgba(0, 138, 168, 0.24);
  background: var(--sie-cyan-soft);
}

.dashboard-workbench {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.38fr);
  gap: 14px;
  align-items: start;
}

.signal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
}

.dashboard-workbench .signal-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-overview-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.65fr);
  gap: 14px;
  align-items: start;
}

.home-overview-grid .signal-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-content-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  align-items: start;
}

.home-content-grid .panel {
  min-height: 252px;
}

.home-content-grid > .panel:only-child,
.home-content-grid > .panel:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.home-content-grid .compact-list {
  max-height: 336px;
  overflow-y: auto;
  padding-right: 4px;
  scrollbar-gutter: stable;
}

.home-content-grid .compact-item {
  min-height: 56px;
}

.home-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.65fr);
  gap: 14px;
  align-items: start;
}

.home-quick-actions {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-profile-panel .status-row {
  margin-top: 0;
}

.signal-card {
  display: grid;
  gap: 6px;
  min-height: 92px;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-decoration: none;
}

.signal-card:hover {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-text);
}

.signal-card span,
.signal-card small {
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 600;
}

.signal-card strong {
  font-size: 23px;
  line-height: 1;
}

.attention-inline-list {
  display: grid;
  gap: 10px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--sie-line);
}

.attention-inline-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.attention-inline-heading strong {
  font-size: 13px;
  font-weight: 700;
}

.attention-inline-heading span {
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 600;
}

.attention-inline-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.attention-inline-item,
.attention-inline-empty {
  display: grid;
  gap: 4px;
  min-height: 76px;
  padding: 10px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-decoration: none;
}

.attention-inline-item:hover {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-text);
}

.attention-inline-item div {
  display: grid;
  gap: 3px;
}

.attention-inline-item span,
.attention-inline-item small,
.attention-inline-empty span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 600;
}

.attention-inline-item span {
  text-transform: uppercase;
}

.attention-inline-item strong,
.attention-inline-empty strong {
  font-size: 13px;
  font-weight: 700;
  line-height: 1.25;
}

.attention-inline-danger {
  border-color: rgba(210, 31, 43, 0.28);
  background: var(--sie-red-soft);
}

.attention-inline-warning {
  border-color: rgba(183, 121, 31, 0.35);
  background: var(--sie-yellow-soft);
}

.attention-inline-info {
  border-color: rgba(0, 138, 168, 0.24);
  background: var(--sie-cyan-soft);
}

.signal-card-danger {
  border-color: rgba(210, 31, 43, 0.28);
}

.signal-card-warning {
  border-color: rgba(183, 121, 31, 0.35);
}

.signal-card-info {
  border-color: rgba(0, 138, 168, 0.24);
}

.recent-hospital-response-panel {
  display: grid;
  gap: 12px;
  border-left: 4px solid var(--sie-cyan);
}

.recent-hospital-response-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 10px;
}

.recent-hospital-card {
  display: grid;
  align-content: start;
  gap: 7px;
  min-height: 170px;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-decoration: none;
}

.recent-hospital-card:hover {
  border-color: var(--sie-primary-line);
  background: #fffaf7;
  color: var(--sie-text);
}

.recent-hospital-card-danger {
  border-color: rgba(210, 31, 43, 0.28);
  background: var(--sie-red-soft);
}

.recent-hospital-card-warning {
  border-color: rgba(183, 121, 31, 0.34);
  background: var(--sie-yellow-soft);
}

.recent-hospital-card-info {
  border-color: rgba(0, 138, 168, 0.24);
  background: var(--sie-cyan-soft);
}

.recent-hospital-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.recent-hospital-card-head time {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.recent-hospital-card strong {
  font-size: 14px;
  line-height: 1.25;
}

.recent-hospital-card span:not(.status-badge),
.recent-hospital-card small {
  color: #475569;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.35;
}

.recent-hospital-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 2px;
}

.recent-hospital-tags em {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 7px;
  border: 1px solid rgba(100, 116, 139, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.74);
  color: #334155;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  line-height: 1.1;
}

.state-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.state-section {
  display: grid;
  gap: 12px;
}

.state-occurrence-list {
  display: grid;
  gap: 12px;
}

.state-occurrence-card {
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.state-occurrence-card[open] {
  border-color: rgba(183, 121, 31, 0.34);
  box-shadow: 0 10px 20px rgba(15, 23, 42, 0.05);
}

.state-occurrence-card summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 14px;
  cursor: pointer;
  list-style: none;
}

.state-occurrence-card summary::-webkit-details-marker {
  display: none;
}

.state-occurrence-card summary > div:first-child {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.state-occurrence-card summary strong {
  font-size: 14px;
  font-weight: 700;
}

.state-occurrence-card summary span {
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 600;
}

.state-occurrence-numbers {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.state-occurrence-numbers span {
  display: grid;
  justify-items: end;
  min-width: 98px;
  padding: 8px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}

.state-occurrence-numbers span strong {
  color: var(--sie-text);
  font-size: 18px;
  line-height: 1;
}

.state-occurrence-numbers .is-warning {
  border-color: rgba(183, 121, 31, 0.35);
  background: var(--sie-yellow-soft);
}

.state-progress {
  height: 8px;
  margin: 0 14px 12px;
  overflow: hidden;
  border-radius: 999px;
  background: #eef2f7;
}

.state-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--sie-green);
}

.state-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0 14px 12px;
}

.state-empty-compact {
  min-height: 74px;
  margin: 0 14px 14px;
}

.state-detail-grid {
  align-items: start;
}

.state-counter-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.state-counter-row span {
  display: grid;
  gap: 2px;
  min-height: 58px;
  padding: 10px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.state-counter-row strong {
  color: var(--sie-text);
  font-size: 20px;
  line-height: 1;
}

.hospital-state-counters {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.hospital-state-counters .is-success { background: #eaf8ef; border-color: #bde5ca; }
.hospital-state-counters .is-warning { background: #fff7dc; border-color: #f2d77b; }
.hospital-state-counters .is-danger { background: #ffe9e7; border-color: #efaaa5; }

.state-pending-grid {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
}

.hospital-state-follow-up-table {
  min-width: 1080px;
}

.state-hospital-date-form {
  align-items: flex-end;
  display: flex;
  gap: 8px;
}

.state-hospital-date-form label {
  display: grid;
  gap: 3px;
}

.state-hospital-date-form label span {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 700;
}

.state-hospital-date-form input {
  min-height: 32px;
}

.state-table-scroll {
  max-height: 380px;
  overflow: auto;
}

.state-table-tall {
  max-height: 520px;
}

.state-detail-table {
  min-width: 720px;
}

.state-detail-table th,
.state-detail-table td {
  font-size: 12px;
  vertical-align: top;
}

.state-detail-table td strong,
.state-detail-table td span:not(.status-badge):not(.hospital-state):not(.report-status) {
  display: block;
}

.state-detail-table td span:not(.status-badge):not(.hospital-state):not(.report-status) {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 600;
}

.next-action-list {
  display: grid;
  gap: 8px;
}

.next-action {
  display: grid;
  gap: 3px;
  min-height: 58px;
  padding: 10px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-decoration: none;
}

.next-action:hover {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-text);
}

.next-action span {
  color: var(--sie-muted);
  font-size: 12px;
}

.next-action-danger {
  border-color: rgba(210, 31, 43, 0.28);
  background: var(--sie-red-soft);
}

.next-action-warning {
  border-color: rgba(183, 121, 31, 0.35);
  background: var(--sie-yellow-soft);
}

.next-action-info {
  border-color: rgba(0, 138, 168, 0.24);
  background: var(--sie-cyan-soft);
}

.welcome-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 138px;
  padding: 24px;
  border: 1px solid var(--sie-primary-line);
  border-radius: 8px;
  background: linear-gradient(135deg, var(--sie-primary) 0%, #f1825e 100%);
  color: #fff;
  box-shadow: var(--sie-shadow);
}

.welcome-panel h2 {
  margin: 4px 0 4px;
  font-size: 25px;
  font-weight: 700;
}

.welcome-panel p {
  margin: 0;
  color: rgba(255, 255, 255, 0.78);
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.welcome-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: flex-end;
}

.welcome-stats span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.12);
  font-size: 12px;
  font-weight: 600;
}

.attention-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.attention-card {
  display: grid;
  gap: 8px;
  min-height: 118px;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-decoration: none;
  box-shadow: var(--sie-shadow);
}

.attention-card:hover {
  border-color: var(--sie-primary-line);
  color: var(--sie-text);
  transform: translateY(-1px);
}

.attention-card strong {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.25;
}

.attention-card p {
  margin: 0;
  color: var(--sie-muted);
}

.attention-tag {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  background: #f5f5f5;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.attention-card-danger {
  border-color: rgba(210, 31, 43, 0.28);
  background: var(--sie-red-soft);
}

.attention-card-danger .attention-tag {
  background: #fff;
  color: var(--sie-red);
}

.attention-card-warning {
  border-color: rgba(183, 121, 31, 0.35);
  background: var(--sie-yellow-soft);
}

.attention-card-warning .attention-tag {
  background: #fff;
  color: var(--sie-yellow);
}

.attention-card-info {
  border-color: rgba(0, 138, 168, 0.24);
  background: var(--sie-cyan-soft);
}

.attention-card-info .attention-tag {
  background: #fff;
  color: var(--sie-cyan);
}

.attention-card-neutral {
  grid-column: 1 / -1;
}

.dashboard-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(280px, 0.55fr);
  gap: 18px;
  align-items: start;
}

.state-detail-grid {
  grid-template-columns: minmax(0, 1fr);
}

.pending-hero .btn {
  justify-self: end;
}

.pending-work-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
}

.pending-page .pending-work-grid > .panel {
  height: 100%;
}

.pending-page .pending-work-grid > .panel:only-child,
.pending-page .pending-work-grid > .panel:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.compact-list-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.operational-pending-mini-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}

.operational-pending-mini-grid span {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fbfcfe;
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.operational-pending-mini-grid strong {
  color: var(--sie-text);
  font-size: 20px;
  line-height: 1;
}

.section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 14px;
}

.section-heading h2 {
  margin: 0;
  font-size: 16px;
  font-weight: 600;
}

.section-heading p {
  margin: 4px 0 0;
}

.empty-state {
  display: grid;
  gap: 6px;
  min-height: 126px;
  align-content: center;
  justify-items: center;
  border: 1px dashed var(--sie-line);
  border-radius: 8px;
  background: #fcfcfc;
  color: var(--sie-muted);
  text-align: center;
}

.empty-state strong {
  color: var(--sie-text);
}

.compact-list {
  display: grid;
  gap: 8px;
}

.territory-tree {
  display: grid;
  gap: 10px;
}

.territory-node {
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.territory-node summary,
.territory-state {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  cursor: pointer;
}

.territory-state {
  cursor: default;
  background: var(--sie-primary-soft);
}

.territory-node summary strong,
.territory-state strong {
  font-size: 13px;
}

.territory-node summary span,
.territory-state span {
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 600;
}

.territory-child {
  margin: 8px 10px;
}

.territory-child .compact-list {
  padding: 0 10px 10px;
}

.compact-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 58px;
  padding: 10px 0;
  border-bottom: 1px solid var(--sie-line);
}

.compact-item:last-child {
  border-bottom: 0;
}

a.compact-item {
  color: var(--sie-text);
  text-decoration: none;
}

.compact-item-link {
  padding-left: 10px;
  padding-right: 10px;
  border-radius: 8px;
}

.compact-item-link:hover {
  background: var(--sie-primary-soft);
}

.compact-item div {
  display: grid;
  gap: 3px;
}

.compact-item strong {
  font-size: 13px;
  font-weight: 600;
}

.compact-item span:not(.status-badge) {
  color: var(--sie-muted);
  font-size: 12px;
}

.action-list {
  display: grid;
  gap: 10px;
}

.action-link {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 10px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  color: var(--sie-text);
  text-decoration: none;
}

.action-link:hover {
  border-color: var(--sie-primary-line);
  color: var(--sie-primary);
  background: var(--sie-primary-soft);
}

.action-link span {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  font-size: 11px;
  font-weight: 700;
}

.action-link strong {
  font-size: 13px;
  font-weight: 600;
}

.muted {
  color: var(--sie-muted);
}

.alert-list {
  margin: 0;
  padding-left: 20px;
}

.filter-bar {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr auto;
  gap: 14px;
  align-items: end;
}

.filter-bar-wide {
  grid-template-columns: 1.3fr 1.3fr 1fr auto;
}

.filter-bar-report {
  grid-template-columns: 1.2fr 1.2fr 0.9fr 0.75fr 0.75fr auto;
}

.filter-bar-plans {
  grid-template-columns: 1.15fr 1.15fr 0.85fr 0.75fr 0.85fr 0.8fr auto;
}

.filter-bar-patients {
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 10px;
}

.filter-bar-patients > label {
  grid-column: span 2;
}

.filter-bar-patients .patient-filter-search,
.filter-bar-patients .patient-filter-vulnerability {
  grid-column: span 3;
}

.filter-bar-patients .filter-actions {
  grid-column: span 2;
  justify-content: flex-end;
}

.filter-bar-patient-report {
  grid-template-columns: 1fr 1fr 0.85fr 1fr 0.75fr auto;
}

.filter-bar-report-ubs {
  grid-template-columns: minmax(170px, 1.2fr) minmax(130px, 0.85fr) minmax(150px, 1fr) minmax(150px, 1fr) minmax(130px, 0.85fr) minmax(95px, 0.55fr) auto;
}

.filter-bar-report-matrix {
  grid-template-columns: minmax(150px, 1fr) minmax(170px, 1.15fr) minmax(180px, 1.2fr) minmax(140px, 0.85fr) minmax(120px, 0.75fr) auto;
}

.filter-bar-vigidesastres {
  grid-template-columns: minmax(190px, 1.2fr) minmax(140px, 0.8fr) minmax(140px, 0.8fr) auto;
}

.filter-bar-vigidesastres-informe {
  grid-template-columns: minmax(260px, 1fr) auto;
}

.filter-bar-hospitals {
  grid-template-columns: 1.35fr 1fr 1fr 0.85fr 0.9fr 0.75fr auto;
}

.filter-bar-basic-units {
  grid-template-columns: minmax(180px, 1.3fr) minmax(105px, 0.65fr) minmax(150px, 1fr) minmax(145px, 1.05fr) minmax(110px, 0.7fr) minmax(135px, 0.85fr) auto;
}

.filter-bar-map {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.filter-bar-operational-risk {
  grid-template-columns: minmax(180px, 1.35fr) minmax(120px, 0.7fr) minmax(150px, 0.9fr) minmax(150px, 0.95fr) minmax(170px, 1fr) minmax(130px, 0.75fr) auto;
}

.filter-bar-map .filter-actions,
.filter-bar-basic-units .filter-actions {
  justify-content: flex-end;
}

.filter-bar-map .patient-map-vulnerability-filter {
  grid-column: span 2;
  min-width: 300px;
}

.filter-bar-map .patient-map-vulnerability-filter small {
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.35;
}

.report-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.report-tabs a {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 7px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  font-weight: 700;
  text-decoration: none;
}

.report-tabs a:hover {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.report-tabs a.is-active {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.report-decision-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.report-decision-card {
  position: relative;
  display: grid;
  gap: 8px;
  min-height: 148px;
  padding: 16px;
  border: 1px solid rgba(15, 23, 42, 0.08);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-decoration: none;
  box-shadow: var(--sie-shadow);
  overflow: hidden;
}

.report-decision-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: var(--sie-line);
}

.report-decision-card:hover {
  transform: translateY(-1px);
  border-color: var(--sie-primary-line);
  color: var(--sie-text);
}

.report-decision-card span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
}

.report-decision-card strong {
  font-size: 17px;
  line-height: 1.25;
}

.report-decision-card em {
  font-style: normal;
  color: var(--sie-primary);
  font-size: 13px;
  font-weight: 800;
}

.report-decision-card small {
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.45;
}

.report-decision-danger::before {
  background: var(--sie-red);
}

.report-decision-warning::before {
  background: #f59e0b;
}

.report-decision-info::before {
  background: #2563eb;
}

.report-decision-neutral::before {
  background: var(--sie-green);
}

.health-matrix-table {
  min-width: 1180px;
}

.health-matrix-table th,
.health-matrix-table td {
  vertical-align: middle;
}

.matrix-hospital {
  min-width: 220px;
}

.check-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 24px;
  padding: 3px 8px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}

.check-symbol {
  display: inline-grid;
  place-items: center;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  color: #fff;
  font-size: 10px;
  line-height: 1;
}

.check-ok {
  border-color: rgba(0, 168, 70, 0.25);
  background: var(--sie-green-soft);
  color: var(--sie-green);
}

.check-ok .check-symbol {
  background: var(--sie-green);
}

.check-bad {
  border-color: rgba(210, 31, 43, 0.3);
  background: var(--sie-red-soft);
  color: var(--sie-red);
}

.check-bad .check-symbol {
  background: var(--sie-red);
}

.check-empty {
  border-color: rgba(113, 128, 150, 0.28);
  background: #f7f7f7;
  color: var(--sie-gray);
}

.check-empty .check-symbol {
  background: var(--sie-gray);
}

.check-symbol-only {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
}

.check-symbol-only.check-ok {
  border-color: rgba(0, 168, 70, 0.25);
  background: var(--sie-green-soft);
  color: var(--sie-green);
}

.check-symbol-only.check-bad {
  border-color: rgba(210, 31, 43, 0.3);
  background: var(--sie-red-soft);
  color: var(--sie-red);
}

.check-symbol-only.check-empty {
  border-color: rgba(113, 128, 150, 0.28);
  background: #f7f7f7;
  color: var(--sie-gray);
}

.report-tabs-main {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: transparent;
}

.report-tabs-main a {
  position: relative;
  flex: initial;
  justify-content: flex-start;
  min-height: 58px;
  padding: 14px 16px 14px 18px;
  border-color: rgba(15, 23, 42, 0.08);
  background: #fff;
  color: var(--sie-muted);
  box-shadow: var(--sie-shadow);
}

.report-tabs-main a::before {
  content: "";
  width: 8px;
  height: 8px;
  margin-right: 10px;
  border-radius: 999px;
  background: var(--sie-line);
}

.report-tabs-main a:hover {
  transform: translateY(-1px);
}

.report-tabs-main a.is-active {
  border-color: var(--sie-primary);
  background: var(--sie-primary);
  color: #fff;
  box-shadow: 0 10px 24px rgba(230, 98, 57, 0.18);
}

.report-tabs-main a.is-active::before {
  background: #fff;
}

.report-active-scope {
  display: grid;
  gap: 9px;
  padding: 13px 15px;
  border: 1px solid #bfdbfe;
  border-left: 4px solid #2563eb;
  border-radius: 8px;
  background: #eff6ff;
}

.report-active-scope-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.report-active-scope-heading > div {
  display: grid;
  gap: 2px;
}

.report-active-scope-heading span {
  color: #1d4ed8;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.report-active-scope-heading strong {
  color: #172554;
  font-size: 14px;
}

.report-active-scope-heading a {
  color: #1d4ed8;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.report-active-scope-heading a:hover {
  text-decoration: underline;
}

.report-active-scope-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.report-active-scope-chips span {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 9px;
  border: 1px solid #bfdbfe;
  border-radius: 999px;
  background: #fff;
  color: #1e3a8a;
  font-size: 11px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.report-active-scope p {
  margin: 0;
  color: #475569;
  font-size: 11px;
  line-height: 1.4;
}

.report-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.report-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 600;
}

.reports-visual-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.vigidesastres-hero {
  align-items: center;
  background: linear-gradient(135deg, #fff 0%, #fff8f5 100%);
}

.vigidesastres-kpi-grid {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 12px;
}

.vigidesastres-kpi-grid .metric {
  min-height: 116px;
  padding: 18px;
}

.vigidesastres-period-panel {
  padding: 14px 16px;
}

.vigidesastres-period-panel-legacy {
  display: none;
}

.vigidesastres-operational-filter .filter-bar-vigidesastres {
  display: grid;
  grid-template-columns: repeat(6, minmax(150px, 1fr));
  gap: 12px;
  align-items: end;
}

.vigidesastres-operational-filter .field-grow {
  grid-column: span 2;
}

.vigidesastres-quick-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.metric-priority-p1 {
  border-color: rgba(200, 30, 30, 0.25);
  background: rgba(200, 30, 30, 0.045);
}

.metric-priority-p2 {
  border-color: rgba(234, 88, 12, 0.25);
  background: rgba(234, 88, 12, 0.05);
}

.vigidesastres-period-panel .field {
  gap: 4px;
}

.vigidesastres-period-panel .muted {
  margin: 10px 0 0;
  padding: 8px 10px;
  border: 1px solid rgba(15, 23, 42, 0.06);
  border-radius: 8px;
  background: #fcfcfc;
}

.vigidesastres-page .map-summary-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.vigidesastres-page .map-summary-strip span {
  min-height: 54px;
  padding: 10px 12px;
  border-color: rgba(15, 23, 42, 0.08);
  border-radius: 8px;
  box-shadow: var(--sie-shadow);
}

.vigidesastres-page .map-summary-strip strong {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  height: 30px;
  margin-right: 8px;
  border-radius: 8px;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  font-size: 17px;
  line-height: 1;
}

.vigidesastres-signal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
  gap: 10px;
}

.vigidesastres-signal {
  display: grid;
  gap: 6px;
  min-height: 88px;
  padding: 14px 16px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.vigidesastres-signal span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.vigidesastres-signal strong {
  font-size: 22px;
  line-height: 1;
}

.vigidesastres-signal.status-atencao {
  border-color: rgba(230, 98, 57, 0.3);
  background: var(--sie-orange-soft);
}

.vigidesastres-signal.status-normal {
  border-color: rgba(0, 168, 70, 0.18);
  background: var(--sie-green-soft);
}

.vigidesastres-informe {
  display: grid;
  gap: 16px;
}

.vigidesastres-informe-filter .filter-actions {
  justify-content: flex-end;
}

.vigidesastres-informe-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 20px;
  border: 1px solid rgba(230, 98, 57, 0.18);
  border-radius: 8px;
  background: linear-gradient(135deg, #fff7f3 0%, #ffffff 72%);
}

.vigidesastres-informe-header h2 {
  margin: 4px 0 4px;
  font-size: 26px;
}

.vigidesastres-informe-stamp {
  display: grid;
  place-items: center;
  min-width: 112px;
  min-height: 82px;
  padding: 12px;
  border: 1px solid var(--sie-primary-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-primary);
  text-align: center;
}

.vigidesastres-informe-stamp strong {
  font-size: 30px;
  line-height: 1;
}

.vigidesastres-informe-stamp span {
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 700;
}

.vigidesastres-informe-summary {
  padding: 16px 18px;
  border: 1px solid var(--sie-primary-line);
  border-left: 5px solid var(--sie-primary);
  border-radius: 8px;
  background: #fffaf7;
  color: var(--sie-text);
  font-weight: 600;
  line-height: 1.55;
}

.vigidesastres-informe-summary p {
  margin: 0;
}

.vigidesastres-informe-kpis {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
}

.vigidesastres-informe-kpis .metric {
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  padding: 16px;
  min-height: 108px;
}

.vigidesastres-informe-tables {
  align-items: start;
}

.vigidesastres-informe-purpose-grid {
  grid-template-columns: minmax(0, 1fr);
}

.vigidesastres-informe-table {
  min-width: 520px;
}

.vigidesastres-informe-table.vigidesastres-informe-table-compact {
  width: 100%;
  min-width: 0;
}

.vigidesastres-informe-crs-card .table-wrap {
  overflow-x: visible;
}

.vigidesastres-crs-card .table-wrap {
  overflow-x: visible;
}

.vigidesastres-crs-card .vigidesastres-crs-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

.vigidesastres-crs-card .vigidesastres-crs-table th,
.vigidesastres-crs-card .vigidesastres-crs-table td {
  width: 50%;
  white-space: normal;
}

.vigidesastres-crs-card .vigidesastres-crs-table th:last-child,
.vigidesastres-crs-card .vigidesastres-crs-table td:last-child {
  text-align: right;
}

.vigidesastres-informe-attention-full {
  grid-column: 1 / -1;
}

.vigidesastres-informe-table.vigidesastres-informe-attention-table {
  width: 100%;
  min-width: 0;
  table-layout: fixed;
}

.vigidesastres-informe-attention-table th:nth-child(1),
.vigidesastres-informe-attention-table td:nth-child(1) {
  width: 140px;
}

.vigidesastres-informe-attention-table th:nth-child(2),
.vigidesastres-informe-attention-table td:nth-child(2) {
  width: 160px;
}

.vigidesastres-informe-attention-table th:nth-child(3),
.vigidesastres-informe-attention-table td:nth-child(3) {
  width: 260px;
}

.vigidesastres-informe-attention-table td:nth-child(4) {
  white-space: normal;
}

.vigidesastres-comment-cell {
  max-width: 620px;
  white-space: normal;
  line-height: 1.45;
}

.vigidesastres-comment-more {
  display: inline;
  margin-left: 4px;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--sie-primary);
  font: inherit;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
}

.vigidesastres-comment-more:hover {
  color: #b94d2c;
  text-decoration: underline;
}

.vigidesastres-comment-modal .modal-body {
  max-height: min(520px, calc(100vh - 220px));
  overflow: auto;
}

.vigidesastres-comment-full {
  margin: 0;
  color: var(--sie-text);
  font-size: 13px;
  line-height: 1.65;
  white-space: pre-wrap;
}

.vigidesastres-informe-records {
  min-width: 1180px;
}

.report-dense-table {
  min-width: 980px;
}

.operational-risk-table {
  min-width: 1380px;
}

.operational-risk-page .metric-value {
  font-variant-numeric: tabular-nums;
}

.operational-risk-page.is-ajax-loading {
  position: relative;
  opacity: 0.72;
  pointer-events: none;
}

.operational-risk-page.is-ajax-loading::after {
  content: "Atualizando dados...";
  position: fixed;
  top: 84px;
  right: 24px;
  z-index: 3100;
  padding: 10px 14px;
  border: 1px solid rgba(230, 98, 57, 0.28);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--sie-shadow-lg);
  color: var(--sie-primary);
  font-size: 12px;
  font-weight: 900;
}

.operational-section-nav {
  position: sticky;
  top: 10px;
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
  padding: 8px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: var(--sie-shadow);
  backdrop-filter: blur(10px);
}

.operational-section-nav a {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 900;
  text-decoration: none;
  text-transform: uppercase;
}

.operational-section-nav a:hover,
.operational-section-nav a:focus-visible {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  outline: none;
}

.operational-decision-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 10px;
}

.operational-decision-card {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-width: 0;
  min-height: 98px;
  padding: 12px 14px;
  border: 1px solid var(--sie-line);
  border-left: 0;
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--sie-shadow);
}

.operational-decision-card.is-critical {
  border-color: rgba(185, 28, 28, 0.18);
  background: linear-gradient(90deg, rgba(255, 241, 242, 0.92), #fff 62%);
}

.operational-decision-card.is-high {
  border-color: rgba(230, 98, 57, 0.18);
  background: linear-gradient(90deg, rgba(255, 247, 243, 0.94), #fff 62%);
}

.operational-decision-card.is-municipality {
  border-color: rgba(3, 105, 161, 0.18);
  background: linear-gradient(90deg, rgba(239, 246, 255, 0.94), #fff 62%);
}

.operational-decision-card.is-monitoring {
  border-color: rgba(217, 154, 0, 0.18);
  background: linear-gradient(90deg, rgba(255, 251, 235, 0.94), #fff 62%);
}

.priority-medallion {
  display: grid;
  place-items: center;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  box-shadow: inset 0 -8px 18px rgba(15, 23, 42, 0.12), 0 8px 18px rgba(15, 23, 42, 0.08);
  color: #fff;
  font-size: 15px;
  font-weight: 950;
  letter-spacing: 0;
  line-height: 1;
}

.priority-medallion-p1 {
  background: linear-gradient(135deg, #b91c1c, #ef4444);
}

.priority-medallion-p2 {
  background: linear-gradient(135deg, #e66239, #fb923c);
}

.priority-medallion-p3 {
  background: linear-gradient(135deg, #d99a00, #facc15);
  color: #4a3000;
}

.priority-medallion-city {
  background: linear-gradient(135deg, #0369a1, #38bdf8);
}

.operational-decision-body {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.operational-decision-body > span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.operational-decision-body > strong {
  color: var(--sie-text);
  font-size: 30px;
  line-height: 1;
}

.operational-decision-body > small {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.35;
}

.priority-mini {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  padding: 2px 6px;
  border-radius: 999px;
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}

.priority-mini-p1 {
  background: #b91c1c;
}

.priority-mini-p2 {
  background: #e66239;
}

.operational-priority-card {
  display: grid;
  gap: 6px;
  min-height: 124px;
  border-left-width: 4px;
}

.operational-priority-card span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.operational-priority-card strong {
  font-size: 28px;
  line-height: 1;
}

.operational-priority-card small {
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.35;
}

.operational-priority-p1 {
  border-left-color: #b91c1c;
}

.operational-priority-p2 {
  border-left-color: #e66239;
}

.operational-priority-p3 {
  border-left-color: #d99a00;
}

.operational-priority-obs {
  border-left-color: #64748b;
}

.operational-insight-grid {
  display: grid;
  grid-template-columns: minmax(280px, 0.78fr) minmax(0, 1.22fr);
  gap: 14px;
  align-items: start;
}

.operational-confidence-panel,
.operational-score-drivers {
  display: grid;
  gap: 12px;
}

.operational-confidence-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.operational-confidence-card {
  display: grid;
  gap: 3px;
  min-height: 74px;
  padding: 10px;
  border: 1px solid var(--sie-line);
  border-left-width: 4px;
  border-radius: 8px;
  background: #fbfcfe;
}

.operational-confidence-card strong {
  color: var(--sie-text);
  font-size: 24px;
  line-height: 1;
}

.operational-confidence-card small {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.confidence-alta {
  border-color: rgba(22, 163, 74, 0.32);
  border-left-color: #16a34a;
  background: #f0fdf4;
  color: #166534;
}

.confidence-media {
  border-color: rgba(217, 154, 0, 0.32);
  border-left-color: #d99a00;
  background: #fffbeb;
  color: #92400e;
}

.confidence-baixa {
  border-color: rgba(220, 38, 38, 0.25);
  border-left-color: #dc2626;
  background: #fff7f7;
  color: #991b1b;
}

.operational-score-driver-list,
.operational-evidence-breakdown-list {
  display: grid;
  gap: 8px;
}

.score-driver {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 10px;
  align-items: center;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fbfcfe;
}

.score-driver em {
  overflow: hidden;
  color: #374151;
  font-size: 12px;
  font-style: normal;
  font-weight: 900;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.score-driver strong {
  color: var(--sie-text);
  font-size: 12px;
  white-space: nowrap;
}

.score-driver i {
  position: relative;
  display: block;
  grid-column: 1 / -1;
  height: 7px;
  min-width: 7px;
  border-radius: 999px;
  background: #64748b;
}

.score-driver small {
  grid-column: 1 / -1;
  color: var(--sie-muted);
  font-size: 11px;
}

.score-driver-meteo i {
  background: #9333ea;
}

.score-driver-hidro i {
  background: #0369a1;
}

.score-driver-risco i {
  background: #dc2626;
}

.score-driver-acesso i {
  background: #ea580c;
}

.score-driver-mancha i {
  background: #0f766e;
}

.score-driver-cadastro i {
  background: #64748b;
}

.operational-score-criteria {
  display: grid;
  gap: 14px;
}

.operational-collapse {
  scroll-margin-top: 72px;
}

.operational-collapse-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: -6px -6px 0;
  padding: 8px;
  border-radius: 8px;
  cursor: pointer;
  list-style: none;
}

.operational-collapse-summary::-webkit-details-marker {
  display: none;
}

.operational-collapse-summary::after {
  content: "+";
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  width: 28px;
  height: 28px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  background: #fff;
  color: var(--sie-primary);
  font-size: 16px;
  font-weight: 900;
}

.operational-collapse[open] .operational-collapse-summary::after {
  content: "-";
}

.operational-collapse-summary:hover,
.operational-collapse-summary:focus-visible {
  background: #fbfcfe;
  outline: none;
}

.operational-collapse-summary + * {
  margin-top: 10px;
}

.score-rule-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 10px;
}

.score-rule-card {
  display: grid;
  gap: 6px;
  min-height: 132px;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-left-width: 4px;
  border-radius: 8px;
  background: #fff;
}

.score-rule-card strong {
  font-size: 13px;
  text-transform: uppercase;
}

.score-rule-card span,
.score-rule-card small {
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.4;
}

.score-rule-critico {
  border-left-color: #b91c1c;
}

.score-rule-risco {
  border-left-color: #e66239;
}

.score-rule-atencao {
  border-left-color: #d99a00;
}

.score-rule-normal {
  border-left-color: #16a34a;
}

.score-weight-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
}

.score-weight-grid article {
  display: grid;
  gap: 5px;
  min-height: 104px;
  padding: 11px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fbfcfe;
}

.score-weight-grid span {
  width: fit-content;
  padding: 3px 7px;
  border-radius: 999px;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  font-size: 10px;
  font-weight: 900;
}

.score-weight-grid strong {
  font-size: 13px;
}

.score-weight-grid em,
.score-weight-grid small {
  color: var(--sie-muted);
  font-size: 11px;
  font-style: normal;
  line-height: 1.4;
}

.score-note-list {
  display: grid;
  gap: 5px;
  margin: 0;
  padding-left: 18px;
  color: var(--sie-muted);
  font-size: 12px;
}

.tier-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}

.tier-p1 {
  background: #b91c1c;
}

.tier-p2 {
  background: #e66239;
}

.tier-p3 {
  background: #d99a00;
}

.tier-obs {
  background: #64748b;
}

.operational-workbench {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(320px, 0.9fr);
  gap: 14px;
  align-items: start;
}

.operational-action-list,
.operational-municipality-list {
  display: grid;
  gap: 8px;
}

.operational-action-item,
.operational-municipality-item {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-decoration: none;
}

.operational-action-item {
  grid-template-columns: auto minmax(0, 1fr);
}

.operational-action-item:hover {
  border-color: var(--sie-primary-line);
  background: #fffaf7;
  color: var(--sie-text);
}

.operational-action-item div,
.operational-municipality-item div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.operational-action-item strong,
.operational-municipality-item strong {
  overflow: hidden;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.operational-action-item small,
.operational-municipality-item small,
.operational-action-item em {
  color: var(--sie-muted);
  font-size: 11px;
  font-style: normal;
}

.operational-action-item p,
.operational-municipality-item p {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--sie-text);
  font-size: 12px;
  line-height: 1.45;
}

.operational-action-meta {
  grid-column: 1 / -1;
  display: flex !important;
  flex-wrap: wrap;
  gap: 6px !important;
}

.operational-municipality-item {
  grid-template-columns: auto minmax(0, 1fr);
}

.operational-mini-signals {
  grid-column: 1 / -1;
  display: flex !important;
  flex-wrap: wrap;
  gap: 6px !important;
}

.operational-mini-signals span {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #f3f4f6;
  color: #374151;
  font-size: 11px;
  font-weight: 700;
}

.operational-risk-overview {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  gap: 8px;
}

.overview-chip,
.operational-risk-source-grid span {
  display: grid;
  gap: 4px;
  min-width: 0;
  padding: 9px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fbfcfe;
}

.overview-chip {
  border-left: 4px solid #94a3b8;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 850;
}

.overview-chip strong {
  color: var(--sie-text);
  font-size: 20px;
  line-height: 1;
}

.overview-chip-critical {
  border-left-color: #b91c1c;
  background: #fff1f2;
}

.overview-chip-high {
  border-left-color: #e66239;
  background: #fff7f3;
}

.overview-chip-attention {
  border-left-color: #d99a00;
  background: #fffbeb;
}

.overview-chip-neutral {
  border-left-color: #64748b;
}

.operational-quick-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 12px;
}

.operational-quick-filters a {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  background: #fff;
  color: var(--sie-text);
  font-size: 11px;
  font-weight: 850;
  text-decoration: none;
}

.operational-quick-filters a:hover,
.operational-quick-filters a.is-active {
  border-color: var(--sie-primary);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.map-actions .btn.is-active {
  border-color: var(--sie-primary);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.operational-risk-source-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.operational-risk-source-grid em {
  justify-self: start;
  font-style: normal;
}

.operational-risk-assistant-panel {
  display: grid;
  gap: 12px;
  border-left: 4px solid #2563eb;
}

.operational-risk-assistant-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}

.operational-risk-assistant-form .field {
  margin: 0;
}

.operational-risk-assistant-form textarea {
  min-height: 88px;
  resize: vertical;
}

.operational-risk-assistant-actions {
  display: flex;
  justify-content: flex-end;
}

.risk-assistant-prompts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.risk-assistant-prompts button {
  min-height: 30px;
  padding: 5px 9px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  background: #fff;
  color: var(--sie-text);
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.risk-assistant-prompts button:hover {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.risk-assistant-output {
  display: grid;
  gap: 10px;
  min-height: 92px;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}

.risk-assistant-output.is-error {
  border-color: rgba(210, 31, 43, 0.28);
  background: var(--sie-red-soft);
}

.risk-assistant-output.is-loading {
  border-color: rgba(37, 99, 235, 0.2);
  background:
    linear-gradient(90deg, rgba(37, 99, 235, 0.04), rgba(37, 99, 235, 0.09), rgba(37, 99, 235, 0.04)),
    #f8fafc;
  background-size: 220% 100%;
  animation: risk-assistant-pulse 1.5s ease-in-out infinite;
}

@keyframes risk-assistant-pulse {
  0% {
    background-position: 0% 0;
  }

  100% {
    background-position: 220% 0;
  }
}

.risk-assistant-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.risk-assistant-validation-note {
  margin-right: auto;
  max-width: 620px;
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.45;
}

.risk-assistant-toolbar button {
  min-height: 28px;
  padding: 4px 9px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
  color: #374151;
  font-size: 11px;
  font-weight: 850;
  cursor: pointer;
}

.risk-assistant-toolbar button:hover {
  border-color: var(--sie-primary-line);
  color: var(--sie-primary);
}

.risk-assistant-answer {
  display: grid;
  gap: 10px;
  color: var(--sie-text);
  font-size: 13px;
  line-height: 1.6;
}

.risk-assistant-answer h3,
.risk-assistant-answer h4 {
  margin: 4px 0 0;
  color: var(--sie-text);
  font-size: 14px;
  line-height: 1.3;
}

.risk-assistant-answer h4 {
  font-size: 13px;
}

.risk-assistant-answer p {
  margin: 0;
}

.risk-assistant-answer ul,
.risk-assistant-answer ol {
  display: grid;
  gap: 5px;
  margin: 0;
  padding-left: 18px;
}

.risk-assistant-answer li {
  padding-left: 2px;
}

.risk-assistant-answer code {
  padding: 1px 4px;
  border-radius: 4px;
  background: #eef2f7;
  color: #374151;
  font-size: 12px;
}

.risk-assistant-table-wrap {
  overflow-x: auto;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.risk-assistant-answer table {
  width: 100%;
  min-width: 640px;
  border-collapse: collapse;
  font-size: 12px;
}

.risk-assistant-answer th,
.risk-assistant-answer td {
  padding: 8px 10px;
  border-bottom: 1px solid var(--sie-line);
  text-align: left;
  vertical-align: top;
}

.risk-assistant-answer th {
  background: #f3f4f6;
  color: #374151;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.risk-assistant-answer tr:last-child td {
  border-bottom: 0;
}

.risk-assistant-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.risk-assistant-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  background: #fff;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
}

.risk-assistant-map-filter {
  margin-top: 10px;
  padding: 8px 10px;
  border: 1px solid #bfdbfe;
  border-radius: 6px;
  background: #eff6ff;
  color: #1e3a8a;
  font-size: 0.82rem;
}

.operational-table-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}

.segmented-control {
  display: inline-flex;
  min-height: 32px;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.segmented-control button {
  min-width: 76px;
  padding: 5px 10px;
  border: 0;
  border-right: 1px solid var(--sie-line);
  background: transparent;
  color: var(--sie-muted);
  font: inherit;
  font-size: 11px;
  font-weight: 900;
  cursor: pointer;
}

.segmented-control button:last-child {
  border-right: 0;
}

.segmented-control button:hover,
.segmented-control button:focus-visible {
  background: #fbfcfe;
  color: var(--sie-text);
  outline: none;
}

.segmented-control button.is-active {
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.operational-risk-score {
  display: block;
  margin-top: 6px;
  font-size: 18px;
  line-height: 1;
}

.operational-risk-row td {
  padding-top: 10px;
  padding-bottom: 10px;
}

.operational-risk-table-panel {
  overflow: hidden;
}

.operational-risk-table-panel .table-wrap {
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.operational-risk-table-panel .operational-risk-table {
  border-collapse: separate;
  border-spacing: 0;
}

.operational-risk-table th,
.operational-risk-table td {
  background: #fff;
}

.operational-risk-table tbody tr:hover td {
  background: #fffaf7;
}

.operational-risk-table tbody tr.is-row-focused td {
  background: #eff6ff;
  box-shadow: inset 0 0 0 9999px rgba(37, 99, 235, 0.035);
}

.operational-risk-table .sticky-col {
  position: sticky;
  z-index: 4;
  background: #fff;
}

.operational-risk-table thead .sticky-col {
  z-index: 6;
}

.operational-risk-table .sticky-score {
  left: 0;
  width: 248px;
  min-width: 248px;
  box-shadow: 1px 0 0 var(--sie-line);
}

.operational-risk-table .sticky-name {
  left: 248px;
  width: 290px;
  min-width: 290px;
  box-shadow: 1px 0 0 var(--sie-line);
}

.operational-risk-table .sticky-name strong {
  display: block;
  max-width: 250px;
  overflow-wrap: anywhere;
}

.operational-risk-table .sticky-name small {
  display: block;
  margin-top: 2px;
  color: var(--sie-muted);
}

.operational-risk-table .operational-group-row td {
  position: sticky;
  left: 0;
  z-index: 5;
  padding: 7px 10px;
  border-top: 1px solid var(--sie-line);
  border-bottom: 1px solid var(--sie-line);
  background: #f8fafc;
  box-shadow: none;
}

.operational-group-row span {
  margin-right: 8px;
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.operational-group-row strong {
  color: var(--sie-text);
  font-size: 12px;
}

.operational-group-row small {
  margin-left: 8px;
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 800;
}

.operational-risk-page.is-table-compact .operational-risk-table {
  min-width: 1060px;
}

.operational-risk-page.is-table-compact .optional-evidence,
.operational-risk-page.is-table-compact .optional-updated {
  display: none;
}

.operational-risk-page.is-table-compact .operational-risk-action-note {
  max-width: 420px;
}

.operational-risk-page.is-table-detail .operational-risk-action-note strong {
  -webkit-line-clamp: unset;
}

.operational-risk-page.is-table-detail .operational-risk-action-note small {
  overflow: visible;
  text-overflow: clip;
  white-space: normal;
}

.operational-risk-score-cell {
  display: grid;
  gap: 7px;
  align-items: start;
  min-width: 156px;
}

.operational-score-primary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}

.operational-score-current {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.operational-score-dual {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
  min-width: 0;
}

.operational-score-metric {
  display: grid;
  gap: 1px;
  min-width: 0;
  padding: 5px 6px;
  border: 1px solid #dbe3ea;
  border-radius: 7px;
  background: #f8fafc;
}

.operational-score-metric.is-fact {
  border-color: #fecdd3;
  background: #fff7f7;
}

.operational-score-metric.is-predictive {
  border-color: #fed7aa;
  background: #fffaf3;
}

.operational-score-metric small {
  overflow: hidden;
  font-size: 8px;
  font-weight: 900;
  line-height: 1.1;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.operational-score-metric strong {
  color: #17324d;
  font-size: 16px;
  line-height: 1;
}

.operational-score-metric em {
  overflow: hidden;
  color: #64748b;
  font-size: 8px;
  font-style: normal;
  line-height: 1.1;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.operational-risk-score-cell .operational-risk-score {
  display: block;
  margin: 0;
  font-size: 20px;
  line-height: 1;
}

.operational-risk-score-cell small,
.operational-score-chip small {
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.1;
}

.operational-risk-score-cell .operational-tier-trigger {
  color: #334155;
  font-weight: 700;
  line-height: 1.25;
}

.operational-score-support {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}

.operational-score-predictive-strip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  overflow: hidden;
  border: 1px solid #dbeafe;
  border-radius: 6px;
  background: #f8fafc;
  color: #334155;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}

.operational-score-chip {
  display: inline-grid;
  gap: 1px;
  min-height: 32px;
  min-width: 0;
  padding: 5px 7px;
  border: 1px solid var(--sie-line);
  border-radius: 7px;
  background: #fff;
  color: var(--sie-text);
  font: inherit;
  line-height: 1.1;
  text-align: left;
  white-space: normal;
}

.operational-score-chip strong {
  color: inherit;
  font-size: 11px;
  font-weight: 900;
}

.operational-score-chip em {
  color: #64748b;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
}

.score-chip-forecast {
  border-color: #fed7aa;
  background: #fff7ed;
  color: #9a3412;
}

.operational-score-predictive-strip i {
  color: #94a3b8;
  font-style: normal;
  font-weight: 700;
}

.operational-score-predictive-value {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 28px;
  min-height: 20px;
  padding: 3px 5px;
}

.score-chip-forecast-rise {
  border-color: #fdba74;
  background: #fff7ed;
  color: #9a3412;
}

.score-chip-forecast-fall {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: #1d4ed8;
}

.score-chip-forecast-stable {
  border-color: #e5e7eb;
  background: #f8fafc;
  color: #475569;
}

.operational-risk-info-chip {
  border: 1px solid rgba(22, 163, 74, 0.24);
  background: #f0fdf4;
  color: #166534;
  cursor: help;
}

.operational-risk-info-chip.confidence-media {
  border-color: rgba(217, 154, 0, 0.26);
  background: #fffbeb;
  color: #92400e;
}

.operational-risk-info-chip.confidence-baixa {
  border-color: rgba(220, 38, 38, 0.22);
  background: #fff7f7;
  color: #991b1b;
}

.operational-risk-info-chip:hover,
.operational-risk-info-chip:focus-visible {
  border-color: #16a34a;
  outline: none;
}

.operational-score-summary-text {
  margin: 0;
  color: #334155;
  font-size: 12px;
  line-height: 1.45;
}

.confidence-badge,
.action-stage-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  min-height: 22px;
  padding: 2px 7px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.15;
  white-space: nowrap;
}

.confidence-badge {
  margin-top: 6px;
}

.confidence-badge.confidence-alta {
  border-color: rgba(22, 163, 74, 0.26);
  background: #f0fdf4;
  color: #166534;
}

.confidence-badge.confidence-media {
  border-color: rgba(217, 154, 0, 0.26);
  background: #fffbeb;
  color: #92400e;
}

.confidence-badge.confidence-baixa {
  border-color: rgba(220, 38, 38, 0.22);
  background: #fff7f7;
  color: #991b1b;
}

.action-stage-badge {
  margin: 0 0 2px;
}

.action-stage-coordenar {
  border-color: rgba(230, 98, 57, 0.3);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.action-stage-validar {
  border-color: rgba(217, 154, 0, 0.3);
  background: #fffbeb;
  color: #92400e;
}

.action-stage-monitorar {
  border-color: rgba(3, 105, 161, 0.24);
  background: #eff6ff;
  color: #075985;
}

.action-stage-cadastro,
.action-stage-observar {
  border-color: rgba(100, 116, 139, 0.24);
  background: #f8fafc;
  color: #475569;
}

.score-breakdown-mini {
  display: grid;
  gap: 5px;
  width: 128px;
  margin-top: 8px;
}

.score-breakdown-mini-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 6px;
  min-width: 0;
}

.score-breakdown-mini-row em {
  overflow: hidden;
  color: var(--sie-muted);
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.score-breakdown-mini-row strong {
  color: #374151;
  font-size: 9px;
}

.score-breakdown-mini-row i {
  display: block;
  grid-column: 1 / -1;
  height: 4px;
  min-width: 5px;
  border-radius: 999px;
  background: #64748b;
}

.operational-risk-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  max-width: 260px;
}

.operational-risk-reasons {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 18px;
}

.operational-risk-action-cell {
  max-width: 360px;
}

.operational-risk-action-note {
  display: grid;
  gap: 4px;
  min-width: 230px;
  max-width: 340px;
  line-height: 1.35;
}

.operational-risk-action-note strong,
.operational-risk-action-note small {
  display: block;
  white-space: normal;
  overflow-wrap: anywhere;
}

.operational-risk-action-note strong {
  color: var(--sie-text);
  font-size: 12px;
  display: -webkit-box;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.operational-risk-action-note small {
  color: var(--sie-muted);
  font-size: 11px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.operational-risk-evidence summary {
  color: var(--sie-primary);
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.operational-risk-evidence[open] summary {
  margin-bottom: 6px;
}

.operational-risk-evidence-preview {
  display: grid;
  gap: 7px;
  min-width: 190px;
  max-width: 280px;
}

.operational-risk-evidence-button {
  display: inline-flex;
  width: max-content;
  max-width: 100%;
  align-items: center;
  gap: 5px;
  min-height: 30px;
  padding: 4px 9px;
  border: 1px solid var(--sie-primary-line);
  border-radius: 999px;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  font: inherit;
  font-size: 12px;
  font-weight: 800;
  cursor: pointer;
}

.operational-risk-evidence-button strong {
  color: inherit;
  font-size: 13px;
}

.operational-risk-evidence-button span {
  white-space: nowrap;
}

.operational-risk-evidence-button small {
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
}

.operational-risk-evidence-button:hover,
.operational-risk-evidence-button:focus-visible {
  border-color: var(--sie-primary);
  background: #fff7f3;
  outline: none;
}

.operational-risk-evidence-preview ul {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.operational-risk-evidence-preview li {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fbfcfe;
  color: #374151;
  font-size: 11px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.operational-risk-evidence-preview li span {
  width: max-content;
  max-width: 100%;
  padding: 1px 6px;
  border-radius: 999px;
  background: #eef2ff;
  color: #4338ca;
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
}

.operational-risk-evidence-compact {
  display: grid;
  gap: 6px;
  min-width: 150px;
}

.operational-risk-evidence-compact .operational-risk-evidence-button {
  min-height: 26px;
  padding: 3px 8px;
  font-size: 11px;
}

.operational-risk-evidence-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  max-width: 190px;
}

.operational-risk-evidence-tags span {
  max-width: 92px;
  overflow: hidden;
  padding: 1px 6px;
  border-radius: 999px;
  background: #eef2ff;
  color: #4338ca;
  font-size: 9px;
  font-weight: 900;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.operational-risk-row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 150px;
}

.operational-risk-floating-tooltip {
  position: fixed;
  z-index: 4200;
  width: min(760px, calc(100vw - 32px));
  max-height: calc(100vh - 32px);
  overflow: auto;
  padding: 14px;
  border: 1px solid #d8dee9;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.16);
}

.operational-risk-floating-tooltip[hidden],
.operational-risk-tooltip-template {
  display: none !important;
}

.operational-risk-tooltip-card {
  display: grid;
  gap: 10px;
  color: #374151;
  font-size: 13px;
  line-height: 1.45;
}

.operational-risk-tooltip-card > strong {
  color: var(--sie-text);
  font-size: 13px;
}

.operational-risk-report-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.operational-risk-report-actions .btn {
  padding: 5px 9px;
  font-size: 11px;
}

.operational-risk-tooltip-card p {
  margin: 0;
  color: #4b5563;
}

.operational-risk-tooltip-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.operational-risk-tooltip-grid span {
  display: grid;
  gap: 2px;
  padding: 7px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fafafa;
}

.operational-risk-tooltip-grid small {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.operational-risk-tooltip-grid b {
  color: var(--sie-text);
  font-size: 13px;
}

.operational-risk-tooltip-bars {
  display: grid;
  gap: 6px;
}

.operational-risk-tooltip-bars span {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 34px;
  gap: 3px 8px;
  align-items: center;
}

.operational-risk-tooltip-bars em {
  overflow: hidden;
  color: #475569;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  text-overflow: ellipsis;
  text-transform: uppercase;
  white-space: nowrap;
}

.operational-risk-tooltip-bars strong {
  color: #334155;
  font-size: 10px;
  text-align: right;
}

.operational-risk-tooltip-bars i {
  grid-column: 1 / -1;
  height: 5px;
  overflow: hidden;
  border-radius: 999px;
  background: #eef2f7;
}

.operational-risk-tooltip-bars b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: currentColor;
}

.operational-risk-tooltip-list,
.operational-risk-tooltip-evidence-list {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.operational-risk-tooltip-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(170px, auto);
  align-items: start;
  gap: 10px;
  padding: 5px 0;
  border-top: 1px solid #eef2f7;
}

.operational-risk-tooltip-list li span {
  min-width: 0;
  overflow: visible;
  color: #374151;
  font-size: 11px;
  font-weight: 800;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
}

.operational-risk-tooltip-list li strong {
  color: var(--sie-primary);
  font-size: 11px;
  text-align: right;
  white-space: normal;
}

.operational-risk-tooltip-evidence-list li {
  display: grid;
  gap: 3px;
  padding: 6px 7px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fbfcfe;
}

.operational-risk-tooltip-evidence-list li span {
  width: max-content;
  max-width: 100%;
  padding: 1px 6px;
  border-radius: 999px;
  background: #eef2ff;
  color: #4338ca;
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
}

.operational-risk-tooltip-evidence-list li p {
  color: #374151;
  font-size: 11px;
}

.operational-risk-predictive-evidence-list li span {
  background: #ecfdf5;
  color: #047857;
}

.operational-risk-predictive-evidence-list li p strong {
  color: var(--sie-text);
}

.operational-risk-table thead th {
  position: sticky;
  z-index: 3;
  top: 0;
  background: #fff;
  box-shadow: 0 1px 0 var(--sie-line);
}

.system-jobs-section {
  display: grid;
  gap: 14px;
}

.system-job-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
}

.system-job-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  min-height: 112px;
}

.system-job-card > div {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.system-job-card strong,
.system-integration-status-table strong {
  display: block;
}

.system-job-card span,
.system-integration-status-table small {
  color: var(--sie-muted);
  font-size: 12px;
}

.system-job-card small {
  line-height: 1.35;
}

.system-job-card form {
  display: flex;
  justify-content: flex-end;
}

.system-integration-result {
  border-left: 4px solid var(--sie-primary);
}

.integration-summary-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 18px;
}

.integration-summary-list .integration-summary-list {
  margin-top: 6px;
}

.integration-summary-list li {
  line-height: 1.45;
}

.integration-summary-list span {
  margin-left: 8px;
  color: var(--sie-muted);
}

.system-integration-status-table {
  min-width: 1480px;
}

.system-source-usage {
  min-width: 220px;
  max-width: 320px;
}

.system-source-job {
  min-width: 160px;
  color: var(--sie-muted);
}

.system-config-page {
  --system-soft: #f7f9fc;
  --system-ink: #172033;
}

.system-config-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 22px 24px;
  border-top: 4px solid var(--sie-primary);
  background: linear-gradient(135deg, #fff 0%, #fff8f5 100%);
}

.system-config-hero > div {
  display: grid;
  gap: 5px;
}

.system-config-hero h2,
.system-config-hero p {
  margin: 0;
}

.system-config-hero p {
  max-width: 760px;
  color: var(--sie-muted);
}

.system-config-tabs {
  position: sticky;
  z-index: 8;
  top: 0;
  display: flex;
  gap: 4px;
  overflow-x: auto;
  padding: 5px;
  border: 1px solid var(--sie-line);
  border-radius: 10px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 5px 18px rgba(15, 23, 42, .05);
}

.system-config-tabs a {
  flex: 0 0 auto;
  padding: 9px 14px;
  border-radius: 7px;
  color: #475569;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.system-config-tabs a:hover,
.system-config-tabs a:focus {
  background: #fff1eb;
  color: var(--sie-primary);
}

.system-config-section {
  scroll-margin-top: 68px;
}

.system-job-overview {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.system-job-overview article {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 16px;
  border: 1px solid var(--sie-line);
  border-radius: 9px;
  background: #fff;
}

.system-job-overview span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
}

.system-job-overview strong {
  color: var(--system-ink);
  font-size: 22px;
}

.system-job-overview .is-success {
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.system-job-overview .is-danger {
  border-color: #fecaca;
  background: #fff7f7;
}

.system-setting-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}

.system-setting-card {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  min-height: 118px;
  padding: 15px;
  border: 1px solid var(--sie-line);
  border-radius: 9px;
  background: var(--system-soft);
  cursor: pointer;
}

.system-setting-copy {
  display: grid;
  gap: 7px;
}

.system-setting-copy strong {
  color: var(--system-ink);
  font-size: 13px;
}

.system-setting-copy small {
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.5;
}

.system-switch {
  position: relative;
  flex: 0 0 38px;
  width: 38px;
  height: 22px;
}

.system-switch input {
  position: absolute;
  opacity: 0;
}

.system-switch span {
  position: absolute;
  inset: 0;
  border-radius: 999px;
  background: #cbd5e1;
  transition: background .15s ease;
}

.system-switch span::after {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, .25);
  content: "";
  transition: transform .15s ease;
}

.system-switch input:checked + span {
  background: var(--sie-primary);
}

.system-switch input:checked + span::after {
  transform: translateX(16px);
}

.system-switch input:focus-visible + span {
  outline: 3px solid rgba(234, 88, 52, .2);
  outline-offset: 2px;
}

.system-schedule-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
}

.system-schedule-card {
  display: grid;
  gap: 12px;
  padding: 16px;
}

.system-schedule-card header,
.system-last-result > summary,
.system-reference-diagnostic > summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.system-schedule-card header > div,
.system-last-result > summary > span:first-child,
.system-reference-diagnostic > summary > span:first-child {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.system-schedule-card code,
.system-manual-job code,
.system-source-identity code {
  overflow-wrap: anywhere;
  color: #64748b;
  font-size: 10px;
}

.system-schedule-time {
  margin: 0;
  color: var(--system-ink);
  font-size: 12px;
  font-weight: 800;
}

.system-schedule-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.system-schedule-meta span {
  display: grid;
  gap: 3px;
  color: var(--sie-muted);
  font-size: 10px;
}

.system-schedule-meta strong {
  color: #334155;
  font-size: 11px;
}

.system-schedule-card details,
.system-source-details,
.system-execution-details {
  border-top: 1px solid var(--sie-line);
  padding-top: 9px;
}

.system-schedule-card summary,
.system-source-details summary,
.system-execution-details summary {
  color: var(--sie-primary);
  font-size: 11px;
  font-weight: 800;
  cursor: pointer;
}

.system-schedule-card details ul {
  display: grid;
  gap: 6px;
  margin: 9px 0 0;
  padding-left: 20px;
}

.system-manual-jobs,
.system-source-list,
.system-execution-list {
  display: grid;
  gap: 8px;
}

.system-manual-job {
  display: grid;
  grid-template-columns: minmax(280px, 1.5fr) minmax(110px, .5fr) minmax(150px, .7fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 12px 0;
  border-top: 1px solid var(--sie-line);
}

.system-manual-job:first-child {
  border-top: 0;
}

.system-manual-job-title,
.system-manual-job > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.system-manual-job > p {
  grid-column: 1 / -1;
  margin: -5px 0 0;
  color: var(--sie-muted);
  font-size: 10px;
}

.system-manual-job .muted {
  font-size: 10px;
}

.system-source-row {
  display: grid;
  grid-template-columns: minmax(210px, 1.1fr) 100px minmax(165px, .8fr) minmax(140px, .65fr) minmax(240px, 1.2fr) 74px;
  gap: 13px;
  align-items: center;
  padding: 13px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.system-source-row.is-overdue {
  border-left: 4px solid #f59e0b;
}

.system-source-identity,
.system-source-row > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.system-source-row small,
.system-source-row .muted {
  color: var(--sie-muted);
  font-size: 10px;
}

.system-source-health small {
  color: #b45309;
  font-weight: 800;
}

.system-source-purpose p {
  margin: 0;
  color: #475569;
  font-size: 11px;
  line-height: 1.45;
}

.system-source-details[open] {
  grid-column: 1 / -1;
}

.system-source-details dl,
.system-execution-details dl {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px;
  margin: 10px 0 0;
}

.system-source-details dl > div,
.system-execution-details dl > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.system-source-details dt,
.system-execution-details dt {
  color: var(--sie-muted);
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}

.system-source-details dd,
.system-execution-details dd {
  margin: 0;
  overflow-wrap: anywhere;
  font-size: 11px;
}

.system-reference-diagnostic {
  padding: 15px;
}

.system-reference-diagnostic > summary {
  cursor: pointer;
}

.system-reference-diagnostic > summary small {
  color: var(--sie-muted);
}

.system-reference-diagnostic[open] > summary {
  margin-bottom: 14px;
}

.system-last-result {
  margin-bottom: 14px;
  padding: 12px;
  border: 1px solid #fed7c8;
  border-radius: 8px;
  background: #fff9f6;
}

.system-last-result > summary {
  cursor: pointer;
}

.system-last-result small {
  color: var(--sie-muted);
}

.system-job-filters {
  display: grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 10px;
  align-items: end;
  margin-bottom: 14px;
  padding: 12px;
  border-radius: 8px;
  background: var(--system-soft);
}

.system-job-filters label {
  display: grid;
  gap: 5px;
}

.system-job-filters label > span {
  color: #475569;
  font-size: 10px;
  font-weight: 800;
}

.system-job-filters select {
  width: 100%;
  min-height: 36px;
}

.system-job-filters > div {
  grid-column: 1 / -1;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.system-execution-row {
  display: grid;
  grid-template-columns: 155px minmax(230px, 1.2fr) 100px minmax(300px, 1fr);
  gap: 13px;
  align-items: center;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.system-execution-time,
.system-execution-name,
.system-execution-row > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.system-execution-time small,
.system-execution-name small,
.system-trigger-label {
  color: var(--sie-muted);
  font-size: 10px;
}

.system-execution-name strong {
  overflow-wrap: anywhere;
}

.system-execution-type {
  width: max-content;
  padding: 2px 5px;
  border-radius: 4px;
  background: #eef2ff;
  color: #4338ca;
  font-size: 8px;
  font-weight: 900;
}

.system-execution-metrics {
  grid-template-columns: repeat(4, minmax(62px, 1fr));
  gap: 6px !important;
}

.system-execution-metrics span {
  display: grid;
  gap: 2px;
  color: var(--sie-muted);
  font-size: 9px;
}

.system-execution-metrics strong {
  color: #334155;
  font-size: 13px;
}

.system-execution-details {
  grid-column: 1 / -1;
}

.system-execution-details h4 {
  margin: 14px 0 8px;
}

.job-audit-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 6px;
  margin: 8px 0 0;
}

.job-audit-summary > div {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 7px;
  border-radius: 5px;
  background: #f8fafc;
}

.job-audit-summary dt {
  color: var(--sie-muted);
  font-size: 9px;
  font-weight: 800;
  text-transform: capitalize;
}

.job-audit-summary dd {
  margin: 0;
  overflow-wrap: anywhere;
  font-size: 11px;
}

@media (max-width: 1200px) {
  .system-setting-grid {
    grid-template-columns: 1fr;
  }

  .system-source-row {
    grid-template-columns: minmax(210px, 1fr) 100px minmax(165px, .8fr);
  }

  .system-source-purpose,
  .system-source-details[open] {
    grid-column: 1 / -1;
  }

  .system-job-filters {
    grid-template-columns: repeat(3, minmax(140px, 1fr));
  }
}

@media (max-width: 820px) {
  .system-config-hero {
    align-items: stretch;
    flex-direction: column;
  }

  .system-job-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .system-manual-job,
  .system-source-row,
  .system-execution-row {
    grid-template-columns: 1fr;
  }

  .system-manual-job form,
  .system-manual-job form .btn {
    width: 100%;
  }

  .system-source-purpose,
  .system-source-details[open],
  .system-execution-details {
    grid-column: 1;
  }

  .system-job-filters {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 520px) {
  .system-job-overview,
  .system-job-filters,
  .system-schedule-meta,
  .system-execution-metrics {
    grid-template-columns: 1fr;
  }
}

.data-quality-overview {
  display: grid;
  gap: 12px;
}

.data-quality-meter-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: 10px;
}

.data-quality-meter-card {
  display: grid;
  gap: 9px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fbfcfe;
}

.data-quality-meter-card header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}

.data-quality-meter-card header strong {
  color: var(--sie-text);
  font-size: 14px;
}

.data-quality-meter-card header span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
}

.data-quality-meter-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 8px;
  min-width: 0;
}

.data-quality-meter-row span {
  color: #475569;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.data-quality-meter-row strong {
  color: var(--sie-text);
  font-size: 11px;
}

.data-quality-meter-row i {
  display: block;
  grid-column: 1 / -1;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #e5e7eb;
}

.data-quality-meter-row b {
  display: block;
  height: 100%;
  min-width: 4px;
  border-radius: inherit;
  background: #14815c;
}

.data-quality-meter-row small {
  grid-column: 1 / -1;
  color: var(--sie-muted);
  font-size: 11px;
}

.data-quality-meter-critico b {
  background: var(--sie-red);
}

.data-quality-meter-atencao b {
  background: var(--sie-yellow);
}

.data-quality-meter-inativo b {
  background: var(--sie-gray);
}

.report-dense-table th,
.report-dense-table td {
  padding: 8px 10px;
  vertical-align: middle;
}

.operational-risk-page {
  gap: 10px;
}

.operational-risk-page .panel {
  padding: 14px;
}

.operational-risk-page .section-heading {
  gap: 10px;
  margin-bottom: 10px;
}

.operational-risk-page .section-heading h2 {
  font-size: 15px;
}

.operational-risk-page .section-heading p,
.operational-risk-page .muted {
  font-size: 11px;
}

.operational-risk-page .operational-risk-hero {
  grid-template-columns: 1fr;
  align-items: start;
  gap: 12px;
  padding: 14px 16px;
}

.operational-risk-page .operational-risk-hero h2 {
  font-size: 18px;
}

.operational-risk-page .operational-risk-hero .operations-state {
  display: flex;
  flex-wrap: wrap;
  grid-column: 1 / -1;
  align-items: center;
  justify-content: flex-start;
  gap: 8px;
  padding-top: 10px;
  border-top: 1px solid var(--sie-line);
}

.operational-risk-page .operational-risk-hero .operations-state .btn {
  min-height: 32px;
  padding: 5px 10px;
}

.operational-risk-page .operational-section-nav {
  padding: 6px;
}

.operational-risk-page .operational-section-nav a {
  min-height: 26px;
  padding: 3px 8px;
}

.operational-risk-page .operational-decision-strip {
  gap: 8px;
}

.operational-risk-page .operational-decision-card {
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 9px;
  min-height: 76px;
  padding: 9px 10px;
}

.operational-risk-page .priority-medallion {
  width: 38px;
  height: 38px;
  border-radius: 11px;
  font-size: 13px;
}

.operational-risk-page .operational-decision-body {
  gap: 2px;
}

.operational-risk-page .operational-decision-body > strong {
  font-size: 24px;
}

.operational-risk-page .operational-decision-body > small {
  font-size: 11px;
}

.operational-risk-page .operational-insight-grid,
.operational-risk-page .operational-workbench {
  grid-template-columns: 1fr;
  gap: 10px;
}

.operational-risk-page .operational-confidence-panel,
.operational-risk-page .operational-score-drivers {
  gap: 9px;
}

.operational-risk-page .operational-confidence-card {
  align-content: start;
  min-height: 58px;
  padding: 8px 9px;
}

.operational-risk-page .operational-confidence-card strong {
  font-size: 20px;
}

.operational-confidence-reasons {
  display: grid;
  gap: 3px;
  margin-top: 3px;
}

.operational-confidence-reasons em {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-width: 0;
  padding-top: 3px;
  border-top: 1px solid rgba(15, 23, 42, 0.08);
  color: #475569;
  font-size: 10px;
  font-style: normal;
  font-weight: 750;
  line-height: 1.25;
}

.operational-confidence-reasons b {
  flex: 0 0 auto;
  color: var(--sie-text);
  font-size: 10px;
}

.operational-confidence-reasons .is-positive {
  color: #166534;
}

.operational-confidence-reasons .is-negative {
  color: #991b1b;
}

.operational-confidence-note {
  margin: 0;
  padding: 8px 10px;
  border: 1px solid #d8eef8;
  border-left: 4px solid #0369a1;
  border-radius: 8px;
  background: #f0f9ff;
  color: #164e63;
  font-size: 11px;
  line-height: 1.45;
}

.operational-risk-page .operational-score-driver-list {
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 6px;
}

.operational-risk-page .score-driver {
  gap: 4px 8px;
  padding: 7px 8px;
}

.operational-risk-page .score-driver i {
  height: 5px;
}

.operational-risk-page .operational-collapse-summary {
  margin: -4px -4px 0;
  padding: 6px;
}

.operational-risk-page .operational-score-block-title {
  margin: 12px 0 7px;
  color: #334155;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.operational-risk-page .score-rule-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.operational-risk-page .score-weight-grid {
  grid-template-columns: 1fr;
  gap: 6px;
}

.operational-risk-page .score-rule-card {
  position: relative;
  grid-template-columns: 1fr;
  gap: 6px;
  align-items: start;
  min-height: 112px;
  padding: 10px 11px;
  border-left-width: 1px;
  border-top: 4px solid currentColor;
  background: linear-gradient(180deg, #ffffff 0%, #fbfcfe 100%);
}

.operational-risk-page .score-rule-card strong {
  color: var(--sie-text);
  font-size: 13px;
}

.operational-risk-page .score-rule-card span {
  color: #334155;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.35;
}

.operational-risk-page .score-rule-card small {
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.35;
}

.operational-risk-page .score-rule-critico {
  color: #b91c1c;
}

.operational-risk-page .score-rule-risco {
  color: #e66239;
}

.operational-risk-page .score-rule-atencao {
  color: #b7791f;
}

.operational-risk-page .score-rule-normal {
  color: #0f7a4b;
}

.operational-risk-page .score-method-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.operational-risk-page .score-method-card {
  display: grid;
  gap: 6px;
  min-height: 118px;
  padding: 12px;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  background: #f8fafc;
}

.operational-risk-page .score-method-card strong {
  color: #0f5132;
  font-size: 12px;
  font-weight: 900;
}

.operational-risk-page .score-method-card p {
  margin: 0;
  color: #475569;
  font-size: 11px;
  line-height: 1.45;
}

.operational-risk-page .score-formula-panel {
  display: grid;
  grid-template-columns: minmax(260px, 0.7fr) minmax(0, 1.3fr);
  gap: 12px;
  align-items: stretch;
  padding: 14px;
  border: 1px solid #cfe2d7;
  border-radius: 8px;
  background: linear-gradient(180deg, #f3fbf6 0%, #ffffff 100%);
}

.operational-risk-page .score-formula-panel h3,
.operational-risk-page .score-governance-panel h3 {
  margin: 0 0 6px;
  color: #0f5132;
  font-size: 15px;
}

.operational-risk-page .score-formula-panel p {
  margin: 0;
  color: #334155;
  font-size: 12px;
  line-height: 1.5;
}

.operational-risk-page .score-formula-list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.operational-risk-page .score-formula-list span {
  display: grid;
  gap: 3px;
  min-height: 70px;
  padding: 8px 9px;
  border: 1px solid #dbe4ee;
  border-radius: 8px;
  background: #fff;
}

.operational-risk-page .score-formula-list strong {
  color: #e66239;
  font-size: 17px;
  line-height: 1;
}

.operational-risk-page .score-formula-list em {
  color: #0f172a;
  font-size: 11px;
  font-style: normal;
  font-weight: 900;
  line-height: 1.15;
}

.operational-risk-page .score-formula-list small {
  color: #64748b;
  font-size: 10px;
  line-height: 1.25;
}

.operational-risk-page .score-rule-level {
  width: fit-content;
  padding: 3px 7px;
  border-radius: 999px;
  background: currentColor;
  color: #fff !important;
  font-size: 10px !important;
  font-weight: 900;
  text-transform: uppercase;
}

.operational-risk-page .score-weight-grid article {
  position: relative;
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  gap: 10px 14px;
  align-items: start;
  min-height: 0;
  padding: 12px 14px 12px 18px;
  overflow: hidden;
  background: #fff;
}

.operational-risk-page .score-weight-grid article::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: #e66239;
}

.operational-risk-page .score-weight-head {
  display: grid;
  gap: 6px;
}

.operational-risk-page .score-weight-grid span {
  justify-self: start;
  max-width: 100%;
  white-space: normal;
  line-height: 1.2;
}

.operational-risk-page .score-weight-grid strong {
  color: #0f172a;
  font-size: 13px;
  line-height: 1.35;
}

.operational-risk-page .score-weight-grid dl {
  display: grid;
  grid-template-columns: minmax(150px, 0.85fr) minmax(150px, 0.8fr) minmax(260px, 1.35fr);
  gap: 8px;
  margin: 0;
}

.operational-risk-page .score-weight-grid dl div {
  display: grid;
  gap: 3px;
  min-height: 76px;
  padding: 8px 10px;
  border: 1px solid #e5eaf0;
  border-radius: 8px;
  background: #f8fafc;
}

.operational-risk-page .score-weight-grid dt {
  color: #64748b;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0;
  text-transform: uppercase;
}

.operational-risk-page .score-weight-grid dd {
  margin: 0;
  color: #334155;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
}

.operational-risk-page .score-weight-grid p {
  grid-column: 2;
  margin: -2px 0 0;
  color: #64748b;
  font-size: 11px;
  line-height: 1.35;
}

.operational-risk-page .score-governance-panel {
  padding: 13px 14px;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  background: #fff7ed;
}

.operational-risk-page .score-governance-panel .score-note-list {
  padding-left: 18px;
  color: #7c2d12;
}

.operational-risk-page .score-governance-panel .score-note-list li {
  margin: 4px 0;
  line-height: 1.45;
}

.operational-risk-page .operational-action-list,
.operational-risk-page .operational-municipality-list {
  gap: 6px;
}

.operational-risk-page .operational-action-item,
.operational-risk-page .operational-municipality-item {
  grid-template-columns: auto minmax(220px, 1fr) minmax(220px, 0.82fr);
  gap: 5px 10px;
  align-items: center;
  padding: 8px 10px;
}

.operational-risk-page .operational-action-item p,
.operational-risk-page .operational-municipality-item p {
  grid-column: 3;
  font-size: 11px;
  line-height: 1.35;
}

.operational-risk-page .operational-action-meta,
.operational-risk-page .operational-mini-signals {
  grid-column: 2 / -1;
  gap: 4px !important;
}

.operational-workbench-table-wrap {
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.operational-workbench-table {
  min-width: 960px;
  width: 100%;
  border-collapse: collapse;
}

.operational-workbench-table th {
  background: #f8fafc;
  color: #475569;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  white-space: nowrap;
}

.operational-workbench-table td {
  color: #374151;
  font-size: 11px;
  line-height: 1.35;
  vertical-align: top;
}

.operational-workbench-table tbody tr:hover td {
  background: #fffaf7;
}

.operational-workbench-table td > strong,
.operational-workbench-table td > small,
.operational-workbench-table td > a,
.operational-workbench-table td > span {
  display: block;
}

.operational-workbench-table td > small {
  margin-top: 2px;
  color: var(--sie-muted);
  font-size: 10px;
}

.operational-workbench-main-link {
  color: var(--sie-text);
  font-weight: 900;
  text-decoration: none;
}

.operational-workbench-main-link:hover {
  color: var(--sie-primary);
  text-decoration: underline;
}

.operational-workbench-priority {
  width: 84px;
}

.operational-workbench-priority strong {
  margin-top: 4px;
  color: var(--sie-text);
  font-size: 16px;
  line-height: 1;
}

.operational-workbench-mini-list {
  display: grid;
  gap: 3px;
  margin: 5px 0 0;
  padding-left: 14px;
  color: var(--sie-muted);
  font-size: 10px;
}

.operational-workbench-table .operational-mini-signals {
  display: flex !important;
  grid-column: auto;
  gap: 4px !important;
  max-width: 330px;
}

.operational-workbench-table .operational-mini-signals span {
  min-height: 19px;
  padding: 2px 6px;
  font-size: 10px;
}

.operational-municipality-table {
  min-width: 900px;
}

.link-button {
  display: inline;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--sie-primary);
  font: inherit;
  font-weight: 900;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
}

.link-button:hover,
.link-button:focus-visible {
  color: #b94d2c;
  text-decoration: underline;
}

.hospital-reference-modal .modal-panel {
  max-width: min(1320px, calc(100vw - 24px));
  max-height: calc(100vh - 24px);
  margin: auto;
}

.hospital-reference-modal-body {
  gap: 12px;
}

.hospital-reference-modal-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.hospital-reference-modal-summary span {
  display: grid;
  gap: 3px;
  padding: 9px 10px;
  border: 1px solid var(--sie-line);
  border-left: 4px solid var(--sie-primary);
  border-radius: 8px;
  background: #fbfcfe;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 850;
}

.hospital-reference-modal-summary strong {
  color: var(--sie-text);
  font-size: 18px;
  line-height: 1;
}

.hospital-reference-modal-layout {
  display: grid;
  grid-template-columns: minmax(360px, 0.95fr) minmax(420px, 1.05fr);
  gap: 14px;
  min-height: 0;
}

.hospital-reference-map-panel,
.hospital-reference-route-panel {
  min-width: 0;
}

.hospital-reference-map {
  position: relative;
  height: min(58vh, 520px);
  min-height: 360px;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}

.hospital-reference-map-panel .muted {
  margin: 7px 0 0;
  font-size: 11px;
}

.hospital-reference-map-panel .muted + .muted {
  display: none;
}

.hospital-reference-route-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 8px;
}

.hospital-reference-route-panel h3 {
  margin: 0;
  font-size: 14px;
}

.hospital-reference-route-list {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 0;
  max-height: min(58vh, 520px);
  overflow: auto;
  padding-right: 4px;
}

.hospital-reference-route-card {
  display: grid;
  gap: 5px;
  width: 100%;
  padding: 10px 11px;
  border: 1px solid var(--sie-line);
  border-left: 4px solid #94a3b8;
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-align: left;
  cursor: pointer;
}

.hospital-reference-route-card:hover,
.hospital-reference-route-card.is-active {
  border-left-color: var(--sie-primary);
  background: #fffaf7;
}

.hospital-reference-route-card.route-risk-high {
  border-left-color: #dc2626;
}

.hospital-reference-route-card.route-risk-medium {
  border-left-color: #f59e0b;
}

.hospital-reference-route-card.route-risk-low {
  border-left-color: #d97706;
}

.hospital-reference-route-card.route-risk-high.is-active {
  background: #fff7f7;
}

.hospital-reference-route-card.route-risk-medium.is-active,
.hospital-reference-route-card.route-risk-low.is-active {
  background: #fff9ed;
}

.hospital-reference-route-card span,
.hospital-reference-route-card small {
  display: block;
  min-width: 0;
}

.hospital-reference-route-card .hospital-reference-route-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.hospital-reference-route-card .hospital-reference-route-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.hospital-reference-route-card strong {
  display: block;
  font-size: 12px;
}

.hospital-reference-route-card em,
.hospital-reference-route-card small {
  color: var(--sie-muted);
  font-size: 11px;
  font-style: normal;
  line-height: 1.35;
}

.reference-impact-list {
  display: grid;
  gap: 7px;
  max-width: 720px;
}

.reference-impact-entry {
  display: grid;
  gap: 3px;
  padding-bottom: 7px;
  border-bottom: 1px solid #eef2f7;
}

.reference-impact-entry:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

.reference-impact-list small {
  white-space: normal;
  word-break: break-word;
}

.hospital-reference-impact-more {
  margin-top: 6px;
}

.hospital-reference-impact-modal {
  place-items: center;
}

.hospital-reference-impact-panel {
  width: min(980px, calc(100vw - 24px));
  height: auto;
  max-height: calc(100vh - 24px);
}

.hospital-reference-impact-modal-body {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}

.hospital-reference-impact-detail-section {
  display: grid;
  gap: 10px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.hospital-reference-impact-detail-section h3 {
  margin: 0;
  color: var(--sie-text);
  font-size: 14px;
}

.hospital-reference-impact-detail-list {
  display: grid;
  gap: 6px;
  max-height: min(52vh, 520px);
  margin: 0;
  padding: 0;
  overflow: auto;
  list-style: none;
}

.hospital-reference-impact-detail-list li {
  padding: 7px 8px;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #f8fafc;
  color: #1f2937;
  font-size: 12px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

@media (max-width: 760px) {
  .hospital-reference-impact-modal-body {
    grid-template-columns: 1fr;
  }
}

.route-risk-pill,
.route-chip {
  display: inline-flex;
  align-items: center;
  min-height: 20px;
  max-width: 100%;
  padding: 2px 7px;
  border: 1px solid #dbe3ef;
  border-radius: 999px;
  background: #f8fafc;
  color: #334155;
  font-size: 10px;
  font-style: normal;
  font-weight: 850;
  line-height: 1.2;
  white-space: nowrap;
}

.route-chip-road {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
}

.route-risk-pill.route-risk-high {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.route-risk-pill.route-risk-medium {
  border-color: #fed7aa;
  background: #fff7ed;
  color: #9a3412;
}

.route-risk-pill.route-risk-low {
  border-color: #fde68a;
  background: #fffbeb;
  color: #92400e;
}

.hospital-reference-map-legend {
  display: grid;
  gap: 5px;
  padding: 8px 9px;
  border: 1px solid rgba(148, 163, 184, 0.5);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.94);
  color: #334155;
  box-shadow: 0 8px 22px rgba(15, 23, 42, 0.14);
  font-size: 11px;
  font-weight: 750;
}

.hospital-reference-map-legend span {
  display: flex;
  align-items: center;
  gap: 7px;
  white-space: nowrap;
}

.legend-line {
  display: inline-block;
  width: 28px;
  height: 0;
  border-top: 4px solid;
  border-radius: 99px;
}

.legend-line-block {
  border-color: #dc2626;
}

.legend-line-alt {
  border-color: #1d4ed8;
}

.legend-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border: 2px solid #fff;
  border-radius: 999px;
  box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.2);
}

.legend-dot-point {
  background: #111827;
}

.legend-dot-block {
  background: #dc2626;
}

.hospital-reference-map-label {
  padding: 2px 6px;
  border: 1px solid rgba(15, 23, 42, 0.14);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.96);
  color: #111827;
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.16);
  font-size: 10px;
  font-weight: 850;
}

@media (max-width: 980px) {
  .hospital-reference-modal-layout,
  .hospital-reference-modal-summary {
    grid-template-columns: 1fr;
  }

  .hospital-reference-map {
    height: 360px;
    min-height: 300px;
  }

  .hospital-reference-route-list {
    max-height: none;
  }
}

.operational-risk-page .operational-risk-overview {
  grid-template-columns: repeat(auto-fit, minmax(104px, 1fr));
  gap: 6px;
}

.operational-risk-page .overview-chip {
  padding: 7px 8px;
}

.operational-risk-page .overview-chip strong {
  font-size: 17px;
}

.operational-risk-page .operational-quick-filters {
  gap: 6px;
  margin-bottom: 9px;
}

.operational-risk-page .filter-bar-operational-risk {
  gap: 8px;
}

.operational-risk-page .filter-bar input,
.operational-risk-page .filter-bar select {
  min-height: 34px;
  padding: 6px 8px;
  font-size: 12px;
}

.operational-risk-page .operational-risk-source-grid {
  grid-template-columns: 1fr;
  gap: 6px;
}

.operational-risk-page .operational-risk-source-grid span {
  grid-template-columns: minmax(190px, 0.8fr) auto minmax(120px, 0.4fr);
  align-items: center;
  gap: 8px;
  padding: 7px 9px;
}

.operational-risk-page .operational-risk-map-panel,
.operational-risk-page .operational-risk-assistant-panel,
.operational-risk-page .operational-risk-table-panel {
  padding: 12px;
}

.operational-risk-page .map-actions {
  gap: 6px;
}

.operational-risk-page .risk-assistant-prompts {
  gap: 6px;
}

.operational-risk-page .risk-assistant-prompts button {
  min-height: 26px;
  padding: 4px 8px;
}

.operational-risk-page .operational-risk-assistant-form textarea {
  min-height: 70px;
}

.operational-risk-page .operational-table-tools {
  gap: 6px;
}

.operational-risk-page .segmented-control {
  min-height: 28px;
}

.operational-risk-page .segmented-control button {
  min-width: 66px;
  padding: 4px 8px;
  font-size: 10px;
}

.operational-risk-page .report-dense-table th,
.operational-risk-page .report-dense-table td {
  padding: 6px 8px;
  font-size: 11px;
}

.operational-risk-page .operational-risk-row td {
  padding-top: 6px;
  padding-bottom: 6px;
}

.operational-risk-page.is-table-compact .operational-risk-table {
  min-width: 1040px;
}

.operational-risk-page .operational-risk-table .sticky-score {
  width: 248px;
  min-width: 248px;
}

.operational-risk-page .operational-risk-table .sticky-name {
  left: 248px;
  width: 258px;
  min-width: 258px;
}

.operational-risk-page .operational-risk-table .sticky-name strong {
  max-width: 224px;
  font-size: 11px;
  line-height: 1.25;
}

.operational-risk-page .operational-risk-score-cell {
  min-width: 232px;
  gap: 7px;
}

.operational-risk-page .tier-badge,
.operational-risk-page .status-badge {
  min-height: 20px;
  padding: 2px 6px;
  font-size: 10px;
}

.operational-risk-page .operational-risk-score-cell .operational-risk-score {
  font-size: 19px;
}

.operational-risk-page .operational-risk-score-cell small {
  font-size: 10px;
}

.operational-risk-page .operational-score-chip {
  min-height: 31px;
  padding: 4px 7px;
  font-size: 10px;
}

.operational-risk-page .operational-score-predictive-strip {
  margin-top: -1px;
}

.operational-risk-page .operational-score-predictive-value {
  min-width: 26px;
  min-height: 18px;
  padding: 3px 5px;
}

.operational-risk-page .confidence-badge,
.operational-risk-page .action-stage-badge {
  min-height: 19px;
  padding: 2px 6px;
  font-size: 9px;
}

.operational-risk-page .operational-risk-badges {
  gap: 4px;
  max-width: 200px;
}

.operational-risk-page .operational-risk-action-cell {
  max-width: 460px;
}

.operational-risk-page .operational-risk-action-note {
  gap: 2px;
  min-width: 220px;
  max-width: 450px;
  line-height: 1.28;
}

.operational-risk-page .operational-risk-action-note strong {
  font-size: 11px;
}

.operational-risk-page .operational-risk-action-note small {
  font-size: 10px;
}

.operational-risk-page .operational-risk-row-actions {
  gap: 4px;
  min-width: 132px;
}

.operational-risk-page .operational-risk-row-actions .btn {
  min-height: 26px;
  padding: 3px 7px;
  font-size: 10px;
}

@media (max-width: 1120px) {
  .operational-risk-page .score-method-grid,
  .operational-risk-page .score-formula-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .operational-risk-page .score-formula-panel {
    grid-template-columns: 1fr;
  }

  .operational-risk-page .score-rule-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .operational-risk-page .score-rule-card,
  .operational-risk-page .score-weight-grid article,
  .operational-risk-page .operational-action-item,
  .operational-risk-page .operational-municipality-item,
  .operational-risk-page .operational-risk-source-grid span {
    grid-template-columns: 1fr;
  }

  .operational-risk-page .score-weight-grid article {
    gap: 5px;
  }

  .operational-risk-page .score-weight-grid dl {
    grid-template-columns: 1fr;
  }

  .operational-risk-page .score-weight-grid p {
    grid-column: auto;
  }

  .operational-risk-page .operational-action-item p,
  .operational-risk-page .operational-municipality-item p,
  .operational-risk-page .operational-action-meta,
  .operational-risk-page .operational-mini-signals {
    grid-column: 1 / -1;
  }
}

.report-municipality-matrix {
  min-width: 1120px;
}

.report-municipality-matrix th {
  white-space: nowrap;
}

.vigidesastres-table {
  min-width: 1120px;
}

.vigidesastres-table th {
  min-width: 130px;
  max-width: 230px;
  white-space: normal;
  vertical-align: top;
}

.vigidesastres-table td {
  max-width: 260px;
  vertical-align: top;
}

.vigidesastres-table .row-attention td {
  background: rgba(230, 98, 57, 0.045);
}

.vigidesastres-attention-table {
  min-width: 980px;
}

.vigidesastres-attention-table .status-badge {
  margin: 0 4px 4px 0;
}

.vigidesastres-operational-table {
  min-width: 1180px;
}

.vigidesastres-operational-table th,
.vigidesastres-operational-table td {
  vertical-align: middle;
}

.vigidesastres-operational-table td {
  white-space: normal;
}

.vigidesastres-operational-table td strong,
.vigidesastres-operational-table td .muted {
  display: block;
}

.vigidesastres-row-priority-p1 td {
  background: rgba(200, 30, 30, 0.045);
}

.vigidesastres-row-priority-p2 td {
  background: rgba(234, 88, 12, 0.04);
}

.vigidesastres-events-table tr.vigidesastres-row-validation-validado td {
  background: rgba(22, 128, 79, 0.075);
}

.vigidesastres-events-table tr.vigidesastres-row-validation-pendente td {
  background: rgba(217, 119, 6, 0.055);
}

.vigidesastres-events-table tr.vigidesastres-row-validation-rejeitado td {
  background: rgba(100, 116, 139, 0.11);
  color: #475569;
}

.vigidesastres-events-table tr.vigidesastres-row-validation-validado td:first-child { box-shadow: inset 5px 0 #16804f; }
.vigidesastres-events-table tr.vigidesastres-row-validation-pendente td:first-child { box-shadow: inset 5px 0 #d97706; }
.vigidesastres-events-table tr.vigidesastres-row-validation-rejeitado td:first-child { box-shadow: inset 5px 0 #991b1b; }

.priority-pill,
.score-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 24px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
}

.priority-pill {
  margin-right: 6px;
  color: #fff;
}

.priority-p1 {
  background: #c81e1e;
}

.priority-p2 {
  background: #ea580c;
}

.priority-p3 {
  background: #0f766e;
}

.event-dot.priority-p1 {
  background: #c81e1e;
}

.event-dot.priority-p2 {
  background: #ea580c;
}

.event-dot.priority-p3 {
  background: #0f766e;
}

.score-chip {
  margin-top: 6px;
  border: 1px solid rgba(15, 23, 42, 0.12);
  background: #fff;
  color: var(--sie-muted);
}

.vigidesastres-signal-cell {
  max-width: none;
}

.vigidesastres-events-table {
  min-width: 1080px;
  table-layout: fixed;
}

.vigidesastres-events-table .vigidesastres-col-priority { width: 8%; }
.vigidesastres-events-table .vigidesastres-col-event { width: 19%; }
.vigidesastres-events-table .vigidesastres-col-territory { width: 12%; }
.vigidesastres-events-table .vigidesastres-col-owner { width: 14%; }
.vigidesastres-events-table .vigidesastres-col-signals { width: 18%; }
.vigidesastres-events-table .vigidesastres-col-origin { width: 8%; }
.vigidesastres-events-table .vigidesastres-col-status { width: 10%; }
.vigidesastres-events-table .vigidesastres-col-record { width: 11%; }

.vigidesastres-events-table th,
.vigidesastres-events-table td {
  overflow-wrap: normal;
  word-break: normal;
}

.vigidesastres-events-table td {
  padding: 13px 11px;
  vertical-align: top;
}

.vigidesastres-priority-cell .priority-pill {
  margin: 0;
}

.vigidesastres-priority-cell > strong,
.vigidesastres-event-cell > strong,
.vigidesastres-territory-cell > strong,
.vigidesastres-owner-cell > strong {
  display: block;
  margin-top: 5px;
  line-height: 1.35;
}

.vigidesastres-event-cell > strong,
.vigidesastres-territory-cell > strong,
.vigidesastres-owner-cell > strong {
  margin-top: 0;
  margin-bottom: 5px;
}

.vigidesastres-territory-cell .vigidesastres-cell-meta + .vigidesastres-cell-meta,
.vigidesastres-record-cell .vigidesastres-cell-meta {
  margin-top: 4px;
}

.vigidesastres-cell-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.4;
}

.vigidesastres-cell-meta b {
  color: var(--sie-text);
  font-size: inherit;
}

.vigidesastres-signal-cell .status-badge {
  display: flex;
  width: fit-content;
  max-width: 100%;
  min-height: 0;
  padding: 4px 7px;
  line-height: 1.25;
  overflow-wrap: break-word;
}

.vigidesastres-signal-cell > * + * {
  margin-top: 5px;
}

.vigidesastres-signal-cell > strong.vigidesastres-cell-meta {
  color: var(--sie-text);
  font-size: 12px;
  line-height: 1.35;
}

.vigidesastres-more-signals {
  display: block;
  color: var(--sie-primary);
  font-size: 11px;
  font-weight: 800;
}

.vigidesastres-status-item {
  display: grid;
  justify-items: start;
  gap: 3px;
}

.vigidesastres-status-item + .vigidesastres-status-item {
  margin-top: 9px;
}

.vigidesastres-status-item small {
  color: var(--sie-muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.vigidesastres-status-item .status-badge {
  white-space: nowrap;
}

.vigidesastres-validation-badge {
  min-height: 25px;
  padding: 5px 9px;
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}

.vigidesastres-status-cell .vigidesastres-cell-meta {
  display: -webkit-box;
  margin-top: 6px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.vigidesastres-validation-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.vigidesastres-validation-tab {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 48px;
  padding: 10px 13px;
  border: 1px solid var(--sie-line);
  border-left: 5px solid #64748b;
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.vigidesastres-validation-tab strong {
  display: grid;
  min-width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 999px;
  background: #eef2f6;
  font-size: 12px;
}

.vigidesastres-validation-tab.is-validado { border-left-color: #16804f; }
.vigidesastres-validation-tab.is-pendente { border-left-color: #d97706; }
.vigidesastres-validation-tab.is-rejeitado { border-left-color: #991b1b; }
.vigidesastres-validation-tab:hover,
.vigidesastres-validation-tab.is-active { border-color: var(--sie-primary); background: var(--sie-primary-soft); }
.vigidesastres-validation-tab.is-validado.is-active { border-color: #16804f; background: #ecfdf3; }
.vigidesastres-validation-tab.is-pendente.is-active { border-color: #d97706; background: #fffbeb; }
.vigidesastres-validation-tab.is-rejeitado.is-active { border-color: #991b1b; background: #fff1f2; }

.vigidesastres-validation-rule { margin-top: -2px; }
.vigidesastres-bar i.is-rejected { background: #991b1b; }

.vigidesastres-record-cell > strong {
  display: block;
  font-variant-numeric: tabular-nums;
  line-height: 1.4;
}

.vigidesastres-record-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 6px;
}

.vigidesastres-record-actions form {
  margin: 0;
}

.vigidesastres-record-actions .btn {
  display: inline-flex;
  white-space: nowrap;
}

.vigidesastres-establishment-detail {
  padding: 16px;
  border: 1px solid var(--sie-line);
  border-radius: 10px;
  background: #fff;
}

.vigidesastres-report-detail-map {
  height: clamp(300px, 42vh, 420px);
  min-height: 300px;
}

.vigidesastres-report-detail-page > [id] {
  scroll-margin-top: 76px;
}

.vigidesastres-detail-hero {
  align-items: center;
  padding: 20px 22px;
  border-left: 5px solid #e66239;
  background: linear-gradient(110deg, #fff 0%, #fff 62%, #fff8f4 100%);
}

.vigidesastres-detail-hero-copy {
  display: grid;
  gap: 6px;
}

.vigidesastres-detail-hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}

.vigidesastres-detail-hero-meta .metric-label {
  margin: 0;
}

.vigidesastres-detail-hero h1 {
  margin: 0;
  font-size: clamp(22px, 2.3vw, 30px);
  line-height: 1.15;
}

.vigidesastres-detail-hero-copy > p:last-child {
  margin: 0;
  color: var(--sie-muted);
}

.vigidesastres-detail-nav {
  position: sticky;
  z-index: 20;
  top: 8px;
  display: flex;
  gap: 4px;
  align-items: center;
  padding: 7px;
  overflow-x: auto;
  border: 1px solid var(--sie-line);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 4px 18px rgba(15, 23, 42, 0.08);
  scrollbar-width: thin;
}

.vigidesastres-detail-nav a {
  flex: 0 0 auto;
  padding: 7px 10px;
  border-radius: 7px;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}

.vigidesastres-detail-nav a:hover,
.vigidesastres-detail-nav a:focus-visible {
  background: #f1f5f9;
  color: var(--sie-text);
}

.vigidesastres-detail-nav a.is-decision {
  margin-left: auto;
  background: #fff3ed;
  color: #b5411e;
}

.vigidesastres-detail-metrics .metric {
  min-height: 126px;
  border-top: 3px solid #e8edf3;
}

.vigidesastres-detail-metrics .metric:first-child {
  border-top-color: #e66239;
}

.vigidesastres-map-legend-polygon {
  width: 16px;
  height: 12px;
  border: 2px solid #e66239;
  border-radius: 2px;
  background: rgba(249, 115, 22, 0.12);
}

.vigidesastres-detail-unit-marker {
  display: grid !important;
  place-items: center;
  border: 3px solid #fff;
  border-radius: 50%;
  background: #0f766e;
  box-shadow: 0 3px 8px rgba(15, 23, 42, 0.3);
  color: #fff;
}

.vigidesastres-detail-unit-marker.has-attention {
  background: #e66239;
}

.vigidesastres-detail-unit-marker span {
  color: inherit;
  font-size: 19px;
  font-weight: 900;
  line-height: 1;
}

.vigidesastres-detail-unit-popup,
.vigidesastres-detail-unit-popup > * {
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.vigidesastres-detail-unit-popup > strong,
.vigidesastres-detail-unit-popup > span,
.vigidesastres-detail-unit-popup > small {
  display: block;
}

.vigidesastres-detail-unit-popup > span,
.vigidesastres-detail-unit-popup > small {
  margin-top: 3px;
  color: var(--sie-muted);
}

.vigidesastres-detail-map-note {
  max-width: 260px;
  padding: 7px 9px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.94);
  box-shadow: 0 2px 8px rgba(15, 23, 42, 0.14);
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 700;
}

.vigidesastres-establishment-detail .section-heading {
  margin-bottom: 14px;
}

.vigidesastres-follow-up-list {
  gap: 12px;
}

.vigidesastres-follow-up-card {
  padding: 15px;
  border: 1px solid #f1c8a9;
  border-left: 4px solid #e85d32;
  border-radius: 9px;
  background: #fffaf7;
}

.vigidesastres-follow-up-card.is-resolved {
  border-color: #b9dfcf;
  border-left-color: #16835c;
  background: #f7fcf9;
}

.vigidesastres-follow-up-card h3 {
  margin: 0 0 3px;
  font-size: 15px;
}

.vigidesastres-follow-up-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: flex-start;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--sie-line);
}

.vigidesastres-follow-up-editor {
  flex: 1 1 100%;
}

.vigidesastres-follow-up-editor > summary {
  display: inline-flex;
  list-style: none;
  cursor: pointer;
}

.vigidesastres-follow-up-editor > summary::-webkit-details-marker {
  display: none;
}

.vigidesastres-follow-up-editor[open] > summary {
  margin-bottom: 12px;
}

.vigidesastres-follow-up-editor .basic-unit-event-form {
  display: grid;
  gap: 13px;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.vigidesastres-municipal-qualification-editor {
  margin-top: 18px;
}

.vigidesastres-municipal-qualification-editor > summary {
  gap: 7px;
  align-items: center;
}

.vigidesastres-municipal-qualification-editor > summary::after {
  content: '▾';
  font-size: 11px;
  transition: transform 0.18s ease;
}

.vigidesastres-municipal-qualification-editor[open] > summary::after {
  transform: rotate(180deg);
}

.vigidesastres-municipal-finalize {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
}

.vigidesastres-audit-timeline {
  display: grid;
  gap: 0;
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
}

.vigidesastres-audit-timeline > li {
  position: relative;
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 12px;
  padding-bottom: 18px;
}

.vigidesastres-audit-timeline > li:not(:last-child)::before {
  position: absolute;
  top: 18px;
  bottom: 0;
  left: 9px;
  width: 2px;
  background: #dbe3ec;
  content: '';
}

.vigidesastres-audit-dot {
  position: relative;
  z-index: 1;
  width: 20px;
  height: 20px;
  border: 4px solid #e7eef5;
  border-radius: 999px;
  background: #64748b;
}

.vigidesastres-audit-timeline > li.is-created .vigidesastres-audit-dot { background: #2563eb; }
.vigidesastres-audit-timeline > li.is-completed .vigidesastres-audit-dot { background: #16804f; }
.vigidesastres-audit-timeline > li.is-updated .vigidesastres-audit-dot { background: #d97706; }

.vigidesastres-audit-timeline article {
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  background: #fff;
}

.vigidesastres-audit-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.vigidesastres-audit-heading > div {
  display: grid;
  gap: 3px;
}

.vigidesastres-audit-heading strong { color: #172033; }
.vigidesastres-audit-heading span,
.vigidesastres-audit-heading time,
.vigidesastres-audit-actor { color: var(--sie-muted); font-size: 12px; }
.vigidesastres-audit-heading time { flex: 0 0 auto; }

.vigidesastres-audit-actor {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 9px 0 0;
}

.vigidesastres-audit-actor strong { color: #334155; }
.vigidesastres-audit-actor span::before { margin-right: 6px; content: '·'; }

.vigidesastres-audit-timeline article > ul {
  display: grid;
  gap: 4px;
  margin: 10px 0 0;
  padding-left: 18px;
  color: #475569;
  font-size: 12px;
}

@media (max-width: 720px) {
  .vigidesastres-audit-heading { display: grid; gap: 6px; }
}

/* Gerador de imagens operacionais do Vigidesastres. */
.vigidesastres-alert-generator-page {
  --vigi-alert-red: #c71932;
}

.vigidesastres-alert-generator-hero {
  border-left-color: var(--vigi-alert-red);
}

.vigidesastres-alert-generator-layout {
  display: grid;
  grid-template-columns: minmax(420px, 0.86fr) minmax(460px, 1.14fr);
  gap: 16px;
  align-items: start;
}

.vigidesastres-alert-editor {
  display: grid;
  gap: 15px;
  min-width: 0;
}

.vigidesastres-alert-fieldset {
  display: grid;
  gap: 12px;
  min-width: 0;
  margin: 0;
  padding: 13px;
  border: 1px solid var(--sie-line);
  border-radius: 9px;
  background: #fbfcfe;
}

.vigidesastres-alert-fieldset legend {
  width: auto;
  margin: 0;
  padding: 0 7px;
  color: var(--sie-text);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.vigidesastres-alert-fieldset .form-grid {
  gap: 11px;
}

.vigidesastres-alert-fieldset .field {
  min-width: 0;
  margin: 0;
}

.vigidesastres-alert-fieldset textarea {
  min-height: 0;
  line-height: 1.5;
  resize: vertical;
}

.vigidesastres-alert-fieldset .field > small {
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.4;
}

.vigidesastres-alert-wide-field {
  grid-column: 1 / -1;
}

.vigidesastres-template-action {
  justify-content: end;
}

.vigidesastres-template-action .btn {
  min-height: 40px;
}

.vigidesastres-alert-upload {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 12px;
  align-items: end;
}

.vigidesastres-alert-upload > .muted {
  grid-column: 1 / -1;
  font-size: 10px;
}

.vigidesastres-alert-editor-actions,
.vigidesastres-alert-preview-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.vigidesastres-alert-editor-actions > span,
.vigidesastres-alert-preview-actions > span {
  min-height: 18px;
  color: #08734b;
  font-size: 10px;
  font-weight: 750;
}

.vigidesastres-alert-preview-column {
  position: sticky;
  top: 10px;
  display: grid;
  gap: 12px;
  min-width: 0;
}

.vigidesastres-alert-preview-panel {
  min-width: 0;
  overflow: hidden;
}

.vigidesastres-alert-canvas-wrap {
  width: 100%;
  max-height: calc(100vh - 250px);
  overflow: auto;
  border: 1px solid #d9dee7;
  border-radius: 8px;
  background:
    linear-gradient(45deg, #eef1f4 25%, transparent 25%),
    linear-gradient(-45deg, #eef1f4 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, #eef1f4 75%),
    linear-gradient(-45deg, transparent 75%, #eef1f4 75%);
  background-position: 0 0, 0 8px, 8px -8px, -8px 0;
  background-size: 16px 16px;
}

.vigidesastres-alert-canvas-wrap canvas {
  display: block;
  width: 100%;
  height: auto;
  background: #fff;
  box-shadow: 0 4px 20px rgba(15, 23, 42, 0.14);
}

.vigidesastres-alert-preview-actions {
  margin-top: 12px;
}

@media (max-width: 1180px) {
  .vigidesastres-alert-generator-layout {
    grid-template-columns: minmax(360px, 0.92fr) minmax(400px, 1.08fr);
  }
}

@media (max-width: 960px) {
  .vigidesastres-alert-generator-layout {
    grid-template-columns: 1fr;
  }

  .vigidesastres-alert-preview-column {
    position: static;
    grid-row: 1;
  }

  .vigidesastres-alert-canvas-wrap {
    max-height: 72vh;
  }
}

/* Episódio operacional e confirmação humana */
.operational-episode-page { --episode-accent:#3f7da3; max-width:1440px; margin-inline:auto; }
.episode-back-row { display:flex; justify-content:flex-start; }
.episode-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,360px); gap:22px; align-items:center; padding:22px 24px; border-left:5px solid var(--episode-accent); background:linear-gradient(130deg,#fff 0%,#f4f9fc 72%,#eef6fa 100%); }
.episode-hero.is-critical { --episode-accent:#c5382f; }
.episode-hero.is-high { --episode-accent:#dd6c23; }
.episode-hero.is-attention { --episode-accent:#d3a01c; }
.episode-hero.is-information { --episode-accent:#4c85a8; }
.episode-hero-main { min-width:0; }
.episode-kickers { display:flex; flex-wrap:wrap; gap:6px; align-items:center; color:#607384; font-size:.72rem; font-weight:700; text-transform:uppercase; }
.episode-kickers > span:not(.timeline-table-severity) { padding:3px 7px; border-radius:999px; background:#edf3f6; }
.episode-hero h1 { margin:9px 0 5px; color:#17344b; font-size:clamp(1.35rem,2.7vw,2.15rem); line-height:1.17; }
.episode-hero-main > p { margin:0; color:#617588; }
.episode-current-meta { display:grid; gap:7px; margin:0; padding:12px; border:1px solid #d5e2ea; border-radius:12px; background:rgba(255,255,255,.84); }
.episode-current-meta div { display:flex; justify-content:space-between; gap:14px; }
.episode-current-meta dt { color:#6c7d8b; font-size:.68rem; font-weight:700; text-transform:uppercase; }
.episode-current-meta dd { margin:0; color:#233f54; font-size:.75rem; font-weight:700; text-align:right; }
.episode-human-state { display:grid; grid-template-columns:auto minmax(0,1fr); gap:12px; padding:14px 16px; border:1px solid #a9d8c1; border-left:4px solid #23915d; border-radius:12px; background:#eef9f3; color:#22583f; }
.episode-human-state.needs-review { border-color:#efcc82; border-left-color:#d49312; background:#fff9e9; color:#76540c; }
.episode-human-state-icon { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:#fff; }
.episode-human-state p { margin:4px 0; color:#365a49; font-size:.82rem; line-height:1.5; }
.episode-human-state small { display:block; color:#638073; font-size:.68rem; }
.episode-human-state .needs-review-note { margin-top:5px; color:#8a5d05; font-weight:800; }
.episode-information-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(330px,.65fr); gap:14px; align-items:start; }
.episode-information-grid > .panel,.episode-history-panel { padding:18px; }
.episode-information-grid h2,.episode-history-panel h2 { margin:0 0 12px; color:#17344b; font-size:1.12rem; }
.episode-fact-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.episode-fact-grid article { min-width:0; padding:13px; border:1px solid #dce5eb; border-radius:10px; background:#f9fbfc; }
.episode-fact-grid article.is-action { border-color:#efd2bd; background:#fff8f2; }
.episode-fact-grid strong { display:block; margin-bottom:5px; color:#486175; font-size:.69rem; letter-spacing:.025em; text-transform:uppercase; }
.episode-fact-grid p { margin:0; color:#2f485b; font-size:.82rem; line-height:1.55; }
.episode-fact-grid a { display:inline-block; margin-top:8px; color:#176d9f; font-size:.75rem; font-weight:750; }
.episode-evolution { display:flex; gap:8px; align-items:flex-start; margin-top:10px; padding:10px 12px; border-radius:9px; background:#edf5fa; color:#34586e; font-size:.76rem; }
.episode-assessment-panel > p { margin:-5px 0 14px; color:#647789; font-size:.78rem; line-height:1.5; }
.episode-assessment-form { display:grid; gap:13px; }
.episode-assessment-form fieldset { display:grid; gap:6px; margin:0; padding:0; border:0; }
.episode-assessment-form legend,.episode-justification > span { margin-bottom:5px; color:#344f63; font-size:.72rem; font-weight:800; }
.episode-assessment-form fieldset label { display:grid; grid-template-columns:auto minmax(0,1fr); gap:8px; align-items:start; padding:8px 10px; border:1px solid #dbe4ea; border-radius:9px; cursor:pointer; }
.episode-assessment-form fieldset label:has(input:checked) { border-color:#4a8caf; background:#eff8fc; }
.episode-assessment-form input[type=radio] { margin-top:3px; accent-color:#287ca9; }
.episode-assessment-form fieldset span { display:grid; gap:1px; }
.episode-assessment-form fieldset strong { color:#27455a; font-size:.76rem; }
.episode-assessment-form fieldset small,.episode-justification small { color:#748493; font-size:.66rem; line-height:1.35; }
.episode-justification { display:grid; gap:5px; }
.episode-justification b { color:#c23b2f; }
.episode-justification textarea { min-height:120px; resize:vertical; }
.episode-assessment-form .btn { justify-self:start; }
.episode-section-heading { display:flex; justify-content:space-between; gap:15px; align-items:end; }
.episode-section-heading h2 { margin:2px 0 0; }
.episode-section-heading > small { color:#718291; }
.episode-history-list { display:grid; gap:0; margin:8px 0 0; padding:0; list-style:none; }
.episode-history-list > li { position:relative; display:grid; grid-template-columns:32px minmax(0,1fr); gap:10px; padding:8px 0; }
.episode-history-list > li:not(:last-child)::before { position:absolute; top:37px; bottom:-6px; left:15px; width:2px; background:#dce6ec; content:""; }
.episode-history-marker { position:relative; z-index:1; display:grid; place-items:center; width:32px; height:32px; border:2px solid #bdd3df; border-radius:50%; background:#fff; color:#397a9e; font-size:.78rem; font-weight:850; }
.episode-history-list .is-human .episode-history-marker { border-color:#69bd92; color:#238557; }
.episode-history-list > li > div { min-width:0; padding:10px 12px; border:1px solid #dce5eb; border-radius:10px; background:#fafcfd; }
.episode-history-list > .is-human > div { border-color:#bfe1cf; background:#f2faf6; }
.episode-history-list header { display:flex; justify-content:space-between; gap:12px; align-items:start; }
.episode-history-list header strong { color:#29475c; font-size:.8rem; }
.episode-history-list time,.episode-history-list small { color:#738492; font-size:.66rem; }
.episode-history-list p { margin:5px 0; color:#3d5668; font-size:.76rem; line-height:1.5; }

@media (max-width: 960px) {
  .episode-hero,.episode-information-grid { grid-template-columns:1fr; }
  .episode-current-meta { max-width:none; }
}
@media (max-width: 640px) {
  .episode-hero { padding:17px; }
  .episode-fact-grid { grid-template-columns:1fr; }
  .episode-current-meta div,.episode-section-heading,.episode-history-list header { align-items:flex-start; flex-direction:column; }
  .episode-current-meta dd { text-align:left; }
}

@media (max-width: 620px) {
  .vigidesastres-alert-fieldset .form-grid-2,
  .vigidesastres-alert-upload {
    grid-template-columns: 1fr;
  }

  .vigidesastres-alert-wide-field,
  .vigidesastres-alert-upload > .muted {
    grid-column: auto;
  }

  .vigidesastres-alert-editor-actions .btn,
  .vigidesastres-alert-preview-actions .btn {
    flex: 1 1 100%;
  }
}

.vigidesastres-establishment-detail h3 {
  margin: 0 0 4px;
  font-size: 15px;
}

.vigidesastres-report-filters {
  grid-template-columns: repeat(4, minmax(145px, 1fr));
  align-items: end;
}

.vigidesastres-report-filters .vigidesastres-filter-search,
.vigidesastres-report-filters .vigidesastres-filter-municipality {
  grid-column: span 2;
}

.vigidesastres-report-filters .filter-actions {
  grid-column: 1 / -1;
  justify-content: flex-end;
  flex-wrap: nowrap;
}

.vigidesastres-dashboard-metrics {
  grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
}

.vigidesastres-filter-card,
.vigidesastres-dashboard-filter {
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease, background-color 160ms ease;
}

.vigidesastres-filter-card:hover,
.vigidesastres-filter-card:focus-visible,
.vigidesastres-dashboard-filter:hover,
.vigidesastres-dashboard-filter:focus-visible {
  border-color: var(--sie-orange);
  box-shadow: 0 7px 20px rgba(18, 38, 63, 0.1);
  outline: none;
  transform: translateY(-1px);
}

.vigidesastres-filter-card.is-filter-active,
.vigidesastres-dashboard-filter.is-filter-active {
  border-color: var(--sie-orange);
  background: #fff7f2;
  box-shadow: 0 0 0 2px rgba(235, 91, 52, 0.16);
}

.vigidesastres-purpose-metric {
  position: relative;
  overflow: hidden;
}

.vigidesastres-purpose-metric::after {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 4px;
  content: '';
}

.vigidesastres-purpose-metric.is-negative::after { background: #0f766e; }
.vigidesastres-purpose-metric.is-damage::after { background: #ea580c; }

.vigidesastres-purpose-overlap {
  margin-top: -4px;
}

.vigidesastres-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.vigidesastres-dashboard-card {
  min-width: 0;
}

.vigidesastres-criticality-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.vigidesastres-criticality-grid > div,
.vigidesastres-criticality-grid > a {
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 4px 8px;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fafafa;
}

.vigidesastres-criticality-grid strong {
  font-size: 24px;
}

.vigidesastres-criticality-grid small {
  grid-column: 1 / -1;
  color: var(--sie-muted);
}

.vigidesastres-validation-summary,
.vigidesastres-ranking-list {
  display: grid;
  gap: 12px;
}

.vigidesastres-validation-summary > div,
.vigidesastres-validation-summary > a,
.vigidesastres-ranking-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 5px 12px;
  align-items: center;
}

.vigidesastres-validation-summary strong,
.vigidesastres-ranking-row strong {
  font-size: 16px;
}

.vigidesastres-ranking-row span {
  min-width: 0;
  font-weight: 650;
}

.vigidesastres-ranking-row span small {
  display: block;
  margin-top: 2px;
  color: var(--sie-muted);
  font-weight: 400;
}

.vigidesastres-dashboard-filter {
  padding: 7px;
  border: 1px solid transparent;
  border-radius: 8px;
}

.vigidesastres-results-panel {
  scroll-margin-top: 16px;
}

.vigidesastres-active-filters {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
  margin: 0 0 14px;
  padding: 10px 12px;
  border-left: 4px solid var(--sie-orange);
  border-radius: 7px;
  background: #fff7f2;
  color: var(--sie-text);
  font-size: 13px;
}

.vigidesastres-active-filters span {
  padding: 3px 8px;
  border: 1px solid #f2c2af;
  border-radius: 999px;
  background: #fff;
  font-weight: 700;
}

.vigidesastres-bar {
  grid-column: 1 / -1;
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #eef1f4;
}

.vigidesastres-bar i {
  display: block;
  min-width: 3px;
  height: 100%;
  border-radius: inherit;
  background: var(--sie-orange);
}

.vigidesastres-bar i.is-valid { background: var(--sie-green); }
.vigidesastres-bar i.is-pending { background: var(--sie-yellow); }

.vigidesastres-municipality-ranking {
  max-height: 330px;
  padding-right: 6px;
  overflow-y: auto;
}

.vigidesastres-report-marker {
  display: grid !important;
  place-items: center;
  filter: drop-shadow(0 2px 3px rgba(15, 23, 42, 0.25));
  opacity: 1;
  transition: filter 0.18s ease, opacity 0.18s ease;
}

.vigidesastres-report-marker.is-unvalidated {
  filter: grayscale(0.82) saturate(0.35) drop-shadow(0 1px 2px rgba(15, 23, 42, 0.16));
  opacity: 0.35;
}

.vigidesastres-report-marker.is-validated span {
  box-shadow: 0 0 0 3px rgba(22, 128, 79, 0.3), inset 0 0 0 1px rgba(15, 23, 42, 0.7);
}

.vigidesastres-report-marker.is-rejected {
  filter: grayscale(1) drop-shadow(0 1px 2px rgba(127, 29, 29, 0.24));
  opacity: 0.62;
}

.vigidesastres-report-marker.is-rejected span {
  display: grid;
  place-items: center;
  border-color: #991b1b;
  background: #64748b !important;
  color: #fff;
}

.vigidesastres-report-marker.is-rejected b { font-size: 14px; line-height: 1; }

.vigidesastres-report-marker span {
  display: block;
  box-sizing: border-box;
  width: 20px;
  height: 20px;
  border: 2px solid #fff;
  border-radius: 999px !important;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, 0.7);
}

.vigidesastres-report-marker span.priority-p1 { background: #ef2020; }
.vigidesastres-report-marker span.priority-p2 { background: #f7df1e; }
.vigidesastres-report-marker span.priority-p3 { background: #28b84a; }

.vigidesastres-report-cluster {
  display: block !important;
  border: 0;
  background: transparent;
  filter: drop-shadow(0 3px 5px rgba(15, 23, 42, 0.3));
}

.vigidesastres-traffic-signal {
  box-sizing: border-box;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 0;
  width: 50px;
  height: 22px;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
}

.vigidesastres-traffic-signal .signal-light {
  box-sizing: border-box;
  display: grid;
  flex: 0 0 18px;
  place-items: center;
  width: 18px;
  height: 18px;
  border: 2px solid #111827;
  margin-left: -1px;
  border-radius: 999px !important;
  background: #d1d5db;
  box-shadow: 0 1px 3px rgba(15, 23, 42, 0.35), inset 0 1px 2px rgba(255, 255, 255, 0.28);
}

.vigidesastres-traffic-signal .signal-light:first-child {
  margin-left: 0;
}

.vigidesastres-traffic-signal .signal-light.is-red { background: #ef2020; }
.vigidesastres-traffic-signal .signal-light.is-yellow { background: #f7df1e; }
.vigidesastres-traffic-signal .signal-light.is-green { background: #28b84a; }

.vigidesastres-traffic-signal .signal-light.is-unvalidated {
  filter: grayscale(0.82) saturate(0.35);
  opacity: 0.35;
}

.vigidesastres-traffic-signal .signal-light.is-partially-validated {
  filter: grayscale(0.45) saturate(0.65);
  opacity: 0.68;
}

.vigidesastres-traffic-signal .signal-light.is-rejected {
  border-color: #991b1b;
  filter: grayscale(1);
  opacity: 0.62;
}

.vigidesastres-traffic-signal .signal-light b {
  color: #fff;
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.8);
  font-variant-numeric: tabular-nums;
}

.vigidesastres-traffic-signal .signal-light.is-yellow b {
  color: #111827;
  text-shadow: none;
}

[data-vigidesastres-reports-map-cluster].is-active {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.vigidesastres-area-swatch {
  display: inline-block;
  width: 14px;
  height: 11px;
  border: 2px solid currentColor;
  border-radius: 2px;
  background: currentColor;
  opacity: 0.55;
}

.vigidesastres-area-swatch.is-one { color: #16a34a; }
.vigidesastres-area-swatch.is-low { color: #d99a00; }
.vigidesastres-area-swatch.is-medium { color: #ea580c; }
.vigidesastres-area-swatch.is-high { color: #dc2626; }
.vigidesastres-area-swatch.is-negative { color: #0f766e; }
.vigidesastres-area-swatch.is-damage { color: #ea580c; }
.vigidesastres-area-swatch.is-both { color: #7c3aed; }

.vigidesastres-validation-legend {
  display: inline-block;
  width: 12px;
  height: 12px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: var(--sie-green);
  box-shadow: 0 0 0 1px rgba(15, 23, 42, 0.45);
}

.vigidesastres-validation-legend.is-unvalidated {
  filter: grayscale(0.82) saturate(0.35);
  opacity: 0.35;
}

.vigidesastres-validation-legend.is-rejected {
  border-color: #991b1b;
  background: #64748b;
  filter: grayscale(1);
  opacity: 0.62;
}

.vigidesastres-decision-panel {
  border: 1px solid #f0c78d;
  border-left: 5px solid #d97706;
  background: #fffcf7;
}

.vigidesastres-decision-panel.is-validado {
  border-color: #b8dfcd;
  border-left-color: #16804f;
  background: #f7fcf9;
}

.vigidesastres-decision-panel.is-rejeitado {
  border-color: #efc1c1;
  border-left-color: #991b1b;
  background: #fffafa;
}

.vigidesastres-decision-panel > .section-heading {
  align-items: flex-start;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(148, 163, 184, 0.3);
}

.vigidesastres-decision-panel .section-heading .metric-label {
  margin-bottom: 4px;
  color: #9a3412;
}

.vigidesastres-validation-decision {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
  margin-top: 18px;
}

.vigidesastres-validation-decision.is-validated { grid-template-columns: 1fr; }

.vigidesastres-decision-option {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--sie-line);
  border-radius: 10px;
  background: #fff;
}

.vigidesastres-decision-option.is-approve {
  border-color: #acd8c2;
  background: #f3fbf7;
}

.vigidesastres-decision-option.is-reject {
  border-color: #efcaca;
  background: #fffafa;
}

.vigidesastres-validation-approve-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: flex-start;
  justify-content: space-between;
}

.vigidesastres-validation-approve-form > div,
.vigidesastres-decision-option-copy {
  display: grid;
  gap: 4px;
}

.vigidesastres-validation-approve-form strong,
.vigidesastres-decision-option-copy strong {
  font-size: 15px;
}

.vigidesastres-validation-approve-form span,
.vigidesastres-decision-option-copy span {
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.45;
}

.vigidesastres-rejection-form {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}

.vigidesastres-rejection-form textarea {
  min-height: 76px;
  resize: vertical;
}

.vigidesastres-decision-submit {
  display: flex;
  justify-content: flex-end;
}

.vigidesastres-decision-permission-note {
  margin-top: 16px;
}

.vigidesastres-audit-timeline > li.is-rejected .vigidesastres-audit-dot { background: #991b1b; }

.vigidesastres-map-legend-group,
.vigidesastres-map-view-switch {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 5px;
  align-items: center;
}

.vigidesastres-map-legend-group[hidden] {
  display: none;
}

[data-vigidesastres-map-mode].is-active {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.vigidesastres-area-tooltip,
.vigidesastres-area-tooltip * {
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.leaflet-popup.vigidesastres-report-map-popup {
  box-sizing: border-box;
  width: min(340px, calc(100vw - 56px)) !important;
  min-width: min(280px, calc(100vw - 56px)) !important;
}

.leaflet-popup.vigidesastres-report-map-popup .leaflet-popup-content-wrapper {
  box-sizing: border-box;
  width: 100% !important;
  min-width: 0 !important;
  border-radius: 10px;
}

.leaflet-popup.vigidesastres-report-map-popup .leaflet-popup-content {
  box-sizing: border-box;
  width: calc(100% - 32px) !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 14px 16px;
}

.vigidesastres-report-popup {
  width: 100%;
  min-width: 0;
  color: var(--sie-text);
  overflow-wrap: normal !important;
  word-break: normal !important;
  white-space: normal !important;
}

.vigidesastres-report-popup *,
.vigidesastres-report-popup > strong,
.vigidesastres-report-popup > span {
  overflow-wrap: normal !important;
  word-break: normal !important;
  white-space: normal !important;
}

.vigidesastres-report-popup > strong,
.vigidesastres-report-popup > span {
  display: block;
}

.vigidesastres-report-popup > strong { font-size: 14px; }
.vigidesastres-report-popup > span { margin: 2px 0 8px; color: #667085; }
.vigidesastres-report-popup dl { display: grid; grid-template-columns: minmax(78px, 96px) minmax(0, 1fr); gap: 5px 9px; margin: 0 0 10px; }
.vigidesastres-report-popup dt,
.vigidesastres-report-popup dd { min-width: 0; line-height: 1.35; overflow-wrap: break-word; word-break: normal; }
.vigidesastres-report-popup dt { color: #667085; font-size: 11px; font-weight: 700; }
.vigidesastres-report-popup dd { margin: 0; font-size: 11px; overflow-wrap: break-word !important; }

@media (max-width: 420px) {
  .leaflet-popup.vigidesastres-report-map-popup {
    width: calc(100vw - 48px) !important;
    min-width: 0 !important;
  }

  .leaflet-popup.vigidesastres-report-map-popup .leaflet-popup-content {
    width: calc(100% - 26px) !important;
    margin: 12px 13px;
  }

  .vigidesastres-report-popup dl {
    grid-template-columns: minmax(72px, 84px) minmax(0, 1fr);
    gap: 5px 7px;
  }
}

@media (max-width: 1180px) {
  .vigidesastres-dashboard-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .vigidesastres-report-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .vigidesastres-dashboard-metrics,
  .vigidesastres-dashboard-grid,
  .vigidesastres-report-filters { grid-template-columns: 1fr; }
  .vigidesastres-criticality-grid { grid-template-columns: 1fr; }
  .vigidesastres-report-filters .vigidesastres-filter-search,
  .vigidesastres-report-filters .vigidesastres-filter-municipality,
  .vigidesastres-report-filters .filter-actions { grid-column: auto; }
  .vigidesastres-report-filters .filter-actions { justify-content: stretch; }
  .vigidesastres-validation-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vigidesastres-validation-decision { grid-template-columns: 1fr; }
  .vigidesastres-rejection-form { grid-template-columns: 1fr; }
  .vigidesastres-detail-hero { align-items: flex-start; padding: 17px; }
  .vigidesastres-detail-hero .filter-actions { width: 100%; }
  .vigidesastres-detail-hero .filter-actions .btn { width: 100%; }
  .vigidesastres-detail-nav { top: 4px; }
  .vigidesastres-detail-nav a.is-decision { margin-left: 0; }
  .vigidesastres-report-detail-map { height: 280px; min-height: 280px; }
  .vigidesastres-decision-option { padding: 14px; }
  .vigidesastres-validation-approve-form .btn,
  .vigidesastres-decision-submit,
  .vigidesastres-decision-submit .btn { width: 100%; }
}

@media (max-width: 900px) {
  .vigidesastres-events-table-wrap {
    overflow: visible;
  }

  .vigidesastres-events-table,
  .vigidesastres-events-table tbody {
    display: block;
    min-width: 0;
  }

  .vigidesastres-events-table colgroup,
  .vigidesastres-events-table thead {
    display: none;
  }

  .vigidesastres-events-table tbody {
    display: grid;
    gap: 10px;
  }

  .vigidesastres-events-table tbody tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 14px;
    overflow: hidden;
    border: 1px solid var(--sie-line);
    border-left: 4px solid #0f766e;
    border-radius: 9px;
  }

  .vigidesastres-events-table tbody tr.vigidesastres-row-priority-p1 { border-left-color: #c81e1e; }
  .vigidesastres-events-table tbody tr.vigidesastres-row-priority-p2 { border-left-color: #ea580c; }

  .vigidesastres-events-table tbody td {
    display: flex;
    flex-direction: column;
    padding: 11px 12px;
    border: 0;
    background: transparent;
  }

  .vigidesastres-events-table tbody td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 2px;
    color: var(--sie-muted);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  .vigidesastres-events-table .vigidesastres-event-cell,
  .vigidesastres-events-table .vigidesastres-signal-cell,
  .vigidesastres-events-table .vigidesastres-record-cell {
    grid-column: 1 / -1;
  }

  .vigidesastres-events-table .vigidesastres-event-cell {
    order: -2;
    padding-bottom: 8px;
  }

  .vigidesastres-events-table .vigidesastres-priority-cell {
    order: -1;
  }

  .vigidesastres-events-table .vigidesastres-record-cell {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px 10px;
    border-top: 1px solid var(--sie-line);
  }

  .vigidesastres-events-table .vigidesastres-record-cell::before {
    flex-basis: 100%;
  }

  .vigidesastres-record-actions {
    margin: 0 0 0 auto;
  }
}

@media (max-width: 520px) {
  .vigidesastres-events-table tbody tr {
    grid-template-columns: 1fr;
  }

  .vigidesastres-events-table .vigidesastres-event-cell,
  .vigidesastres-events-table .vigidesastres-signal-cell,
  .vigidesastres-events-table .vigidesastres-record-cell {
    grid-column: auto;
  }
}

.vigidesastres-summary-cell {
  max-width: 420px;
  line-height: 1.45;
}

.vigidesastres-record-modal-body {
  display: grid;
  gap: 16px;
}

.modal-backdrop.vigidesastres-comment-modal {
  width: 100vw;
  height: 100vh;
  place-items: center;
  padding: 24px;
  overflow: hidden;
}

.vigidesastres-comment-modal .modal-panel {
  width: min(1120px, calc(100vw - 48px));
  height: auto;
  max-height: calc(100vh - 48px);
}

.vigidesastres-comment-modal .modal-header,
.vigidesastres-comment-modal .modal-actions {
  padding: 14px 18px;
}

.vigidesastres-comment-modal .modal-body {
  max-height: none;
  overflow: auto;
  padding: 16px 18px;
}

.vigidesastres-comment-modal .modal-header h2 {
  max-width: 820px;
  line-height: 1.2;
}

.vigidesastres-record-summary {
  padding: 14px 16px;
  border: 1px solid var(--sie-primary-line);
  border-left: 5px solid var(--sie-primary);
  border-radius: 8px;
  background: #fffaf7;
  font-weight: 700;
  line-height: 1.5;
}

.vigidesastres-record-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.vigidesastres-record-grid section,
.vigidesastres-record-modal-body > section {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.vigidesastres-record-modal-body h3 {
  margin: 0 0 10px;
  font-size: 14px;
}

.vigidesastres-record-signals {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.vigidesastres-raw-wrap {
  max-height: 320px;
  overflow: auto;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
}

.vigidesastres-raw-table {
  min-width: 760px;
}

.vigidesastres-raw-table th {
  width: 220px;
  color: var(--sie-muted);
  white-space: normal;
}

.vigidesastres-raw-table td {
  white-space: normal;
  word-break: break-word;
}

.executive-report .operations-panel {
  border-left-color: var(--sie-cyan);
}

.executive-table th,
.executive-table td {
  vertical-align: middle;
}

.executive-table td:first-child,
.executive-table th:first-child {
  min-width: 130px;
}

.operational-report-page .two-columns {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.operational-report-page .report-dense-table small {
  display: block;
  margin-top: 2px;
  color: var(--sie-muted);
  line-height: 1.35;
}

.print-section {
  break-inside: avoid;
}

.numeric-cell {
  width: 56px;
  text-align: center;
  font-weight: 800;
}

.numeric-cell.has-value {
  color: var(--sie-green);
}

.numeric-cell.has-alert {
  color: var(--sie-red);
}

.numeric-cell.is-zero {
  color: var(--sie-muted);
  font-weight: 600;
}

.flood-map-panel {
  overflow: hidden;
}

.flood-map {
  position: relative;
  min-height: 620px;
  width: 100%;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  overflow: hidden;
  background: #eef5f6;
}

.hospital-map {
  min-height: 650px;
}

.patient-map {
  min-height: 650px;
}

.basic-unit-map {
  min-height: 650px;
}

.basic-unit-marker-size-control {
  display: inline-grid;
  grid-template-columns: auto minmax(100px, 150px) 42px;
  gap: 7px;
  align-items: center;
  min-height: 30px;
  padding: 4px 9px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
  color: var(--sie-text);
  font-size: 11px;
  font-weight: 700;
}

.basic-unit-marker-size-control input[type="range"] {
  width: 100%;
  accent-color: var(--sie-orange);
}

.basic-unit-marker-size-control output {
  color: var(--sie-orange);
  text-align: right;
}

.basic-unit-record-counts {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.hydro-map-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 380px);
  gap: 14px;
  align-items: stretch;
}

.hydro-map {
  min-height: 620px;
}

.hydro-rain-map {
  min-height: 640px;
}

.hydro-rain-symbol-controls {
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
  margin: 10px 0 12px;
  padding: 10px 12px;
  border: 1px solid #d8e4ec;
  border-radius: 9px;
  background: #f8fbfd;
}

.hydro-rain-size-reference {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  align-items: center;
}

.hydro-rain-size-reference > strong {
  font-size: 12px;
}

.hydro-rain-size-reference > span {
  display: inline-flex;
  gap: 7px;
  align-items: center;
  color: #334155;
  font-size: 11px;
  font-weight: 700;
}

.hydro-rain-size-reference i {
  display: inline-block;
  flex: 0 0 auto;
  box-sizing: border-box;
  border: 2px solid #0284c7;
  border-radius: 50%;
  background: rgba(14, 165, 233, 0.35);
}

.hydro-rain-size-reference i.is-small {
  width: 9px;
  height: 9px;
}

.hydro-rain-size-reference i.is-large {
  width: 48px;
  height: 48px;
}

.hydro-rain-size-reference small {
  flex-basis: 100%;
  color: var(--sie-muted);
  font-size: 10px;
}

.hydro-rain-size-slider {
  display: grid;
  grid-template-columns: minmax(110px, 160px) 42px;
  gap: 3px 8px;
  align-items: center;
  flex: 0 0 auto;
}

.hydro-rain-size-slider > span {
  grid-column: 1 / -1;
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.hydro-rain-size-slider input {
  width: 100%;
  accent-color: #0284c7;
}

.hydro-rain-size-slider output {
  color: #075985;
  font-size: 11px;
  font-weight: 800;
  text-align: right;
}

@media (max-width: 760px) {
  .hydro-rain-symbol-controls {
    align-items: stretch;
    flex-direction: column;
  }

  .hydro-rain-size-slider {
    grid-template-columns: minmax(0, 1fr) 42px;
  }
}

.hydro-period-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.hydro-period-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 76px;
  padding: 8px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: inherit;
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
}

.hydro-period-tab:hover,
.hydro-period-tab.is-active {
  border-color: rgba(14, 165, 233, 0.42);
  background: rgba(14, 165, 233, 0.08);
  color: var(--sie-blue);
}

.hydro-map .leaflet-control-layers {
  max-width: 260px;
  border: 1px solid rgba(148, 163, 184, 0.36);
  border-radius: 8px;
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.12);
  font-size: 12px;
}

.hydro-map .leaflet-control-layers label {
  margin: 0;
  line-height: 1.35;
}

.hydro-command-panel {
  display: grid;
  gap: 14px;
}

.hydro-refresh-note {
  display: grid;
  gap: 2px;
  min-width: 180px;
  padding: 10px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fbfcfd;
  text-align: right;
}

.hydro-refresh-note span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.hydro-refresh-note strong {
  font-size: 13px;
}

.hydro-command-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.hydro-command-card {
  display: grid;
  gap: 4px;
  min-height: 102px;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-left: 4px solid var(--sie-cyan);
  border-radius: 8px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.hydro-command-card:hover,
.hydro-command-card.is-active {
  border-color: rgba(14, 165, 233, 0.38);
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
  transform: translateY(-1px);
}

.hydro-command-card:nth-child(1) {
  border-left-color: var(--sie-red);
}

.hydro-command-card:nth-child(2) {
  border-left-color: var(--sie-blue);
}

.hydro-command-card:nth-child(3) {
  border-left-color: var(--sie-orange);
}

.hydro-command-card:nth-child(4) {
  border-left-color: var(--sie-slate);
}

.hydro-command-card span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.hydro-command-card strong {
  font-size: 24px;
  line-height: 1.1;
}

.hydro-command-card small {
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.35;
}

.hydro-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.hydro-quality-panel {
  display: grid;
  gap: 12px;
  border-left: 4px solid var(--sie-blue);
}

.hydro-quality-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.hydro-quality-card {
  display: grid;
  gap: 6px;
  min-height: 118px;
  padding: 12px;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 8px;
  background: #fbfcfd;
}

.hydro-quality-card span {
  width: fit-content;
  padding: 3px 7px;
  border-radius: 999px;
  background: var(--sie-orange-soft);
  color: var(--sie-orange);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.hydro-quality-card strong {
  font-size: 13px;
  line-height: 1.25;
}

.hydro-quality-card p {
  margin: 0;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.45;
}

.hydro-source-tabs {
  display: grid;
  gap: 10px;
  margin: 10px 0 14px;
}

.hydro-source-tab-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.hydro-source-tab {
  display: grid;
  gap: 2px;
  min-width: 142px;
  padding: 9px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.hydro-source-tab:hover,
.hydro-source-tab.is-active {
  border-color: rgba(230, 98, 57, 0.42);
  background: var(--sie-orange-soft);
}

.hydro-source-tab strong {
  font-size: 12px;
  line-height: 1.25;
}

.hydro-source-tab small {
  color: var(--sie-muted);
  font-size: 11px;
}

.hydro-source-profile {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.hydro-source-profile[hidden] {
  display: none;
}

.hydro-source-profile article {
  display: grid;
  align-content: start;
  gap: 5px;
  min-height: 112px;
  padding: 11px;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 8px;
  background: #fbfcfd;
}

.hydro-source-profile span {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.hydro-source-profile strong {
  font-size: 13px;
  line-height: 1.25;
}

.hydro-source-profile p {
  margin: 0;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.4;
}

.hydro-source-stats {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.hydro-source-stats > span {
  grid-column: 1 / -1;
}

.hydro-source-stats div {
  display: grid;
  gap: 1px;
}

.hydro-source-stats div strong {
  font-size: 14px;
}

.hydro-source-stats div small {
  color: var(--sie-muted);
  font-size: 10px;
}

.hydro-highlight-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.hydro-highlight-card {
  display: grid;
  align-content: start;
  gap: 8px;
  min-height: 170px;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fbfcfd;
}

.hydro-highlight-card h3 {
  margin: 0;
  font-size: 13px;
}

.hydro-highlight-item {
  display: grid;
  gap: 3px;
  width: 100%;
  padding: 9px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.hydro-highlight-item:hover {
  border-color: rgba(230, 98, 57, 0.35);
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.07);
}

.hydro-highlight-item strong {
  font-size: 12px;
  line-height: 1.25;
}

.hydro-highlight-item small {
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.35;
}

.hydro-status-pill {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  padding: 3px 7px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  color: var(--sie-muted);
  background: #fff;
  font-size: 10px;
  font-weight: 900;
  line-height: 1.2;
  text-transform: uppercase;
}

.hydro-status-pill.is-critical {
  border-color: rgba(210, 31, 43, 0.34);
  color: var(--sie-red);
  background: var(--sie-red-soft);
}

.hydro-status-pill.is-warning {
  border-color: rgba(230, 98, 57, 0.34);
  color: var(--sie-orange);
  background: var(--sie-orange-soft);
}

.hydro-status-pill.is-watch {
  border-color: rgba(14, 165, 233, 0.34);
  color: var(--sie-blue);
  background: #eef8ff;
}

.hydro-status-pill.is-data {
  border-color: rgba(100, 116, 139, 0.28);
  color: var(--sie-slate);
  background: #f8fafc;
}

.hydro-status-pill.is-normal {
  border-color: rgba(22, 163, 74, 0.28);
  color: var(--sie-green);
  background: var(--sie-green-soft);
}

.hydro-detail-panel {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 620px;
  max-height: 620px;
  overflow-y: auto;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  padding: 16px;
  background: #fff;
}

.hydro-detail-panel h3 {
  margin: 0;
  font-size: 17px;
  line-height: 1.25;
}

.hydro-detail-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.hydro-selected-status {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border: 1px solid var(--sie-line);
  border-left: 4px solid var(--sie-green);
  border-radius: 8px;
  background: #fbfcfd;
}

.hydro-selected-status strong {
  font-size: 13px;
}

.hydro-selected-status small {
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.35;
}

.hydro-selected-status.is-critical {
  border-left-color: var(--sie-red);
  background: var(--sie-red-soft);
}

.hydro-selected-status.is-warning {
  border-left-color: var(--sie-orange);
  background: var(--sie-orange-soft);
}

.hydro-selected-status.is-watch {
  border-left-color: var(--sie-blue);
  background: #eef8ff;
}

.hydro-selected-status.is-data {
  border-left-color: var(--sie-slate);
}

.hydro-detail-list {
  display: grid;
  gap: 8px;
  margin: 0;
}

.hydro-detail-list div {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--sie-line);
}

.hydro-detail-list dt {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.hydro-detail-list dd {
  margin: 0;
  font-size: 12px;
  font-weight: 600;
  word-break: break-word;
}

.hydro-sensor-grid {
  display: grid;
  gap: 10px;
}

.hydro-sensor-card {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fbfcfd;
}

.hydro-sensor-card h4 {
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.hydro-sensor-card div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
}

.hydro-sensor-card span {
  color: var(--sie-muted);
}

.hydro-sensor-card strong {
  text-align: right;
}

.hydro-forecast-card,
.hydro-context-card {
  display: grid;
  gap: 9px;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fbfcfd;
}

.hydro-forecast-card h4,
.hydro-context-card h4 {
  margin: 0;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.hydro-forecast-card div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
}

.hydro-forecast-card span,
.hydro-context-card p,
.hydro-context-card small {
  color: var(--sie-muted);
}

.hydro-forecast-card strong {
  text-align: right;
}

.hydro-forecast-card p,
.hydro-context-card p {
  margin: 0;
  font-size: 12px;
  line-height: 1.4;
}

.hydro-forecast-card.is-critical {
  border-color: rgba(210, 31, 43, 0.32);
  background: var(--sie-red-soft);
}

.hydro-forecast-card.is-warning,
.hydro-forecast-card.is-watch {
  border-color: rgba(230, 98, 57, 0.32);
  background: var(--sie-orange-soft);
}

.hydro-context-summary {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(92px, 1fr));
  gap: 6px;
}

.hydro-context-summary span {
  display: grid;
  gap: 2px;
  padding: 8px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
}

.hydro-context-summary strong {
  font-size: 16px;
}

.hydro-context-summary small {
  font-size: 10px;
}

.hydro-context-list {
  display: grid;
  gap: 6px;
}

.hydro-context-list > strong {
  font-size: 12px;
}

.hydro-context-list span {
  display: grid;
  gap: 2px;
  padding: 8px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
  font-size: 12px;
  font-weight: 700;
}

.hydro-context-list a {
  width: fit-content;
  color: var(--sie-primary);
  font-size: 11px;
  font-weight: 800;
  text-decoration: none;
}

.hydro-payload {
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fbfcfd;
}

.hydro-payload summary {
  padding: 10px 12px;
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
}

.hydro-payload pre {
  max-height: 260px;
  margin: 0;
  overflow: auto;
  padding: 12px;
  border-top: 1px solid var(--sie-line);
  color: #1f2937;
  font-size: 11px;
  white-space: pre-wrap;
}

.hydro-table {
  min-width: 1840px;
}

.hydro-table th,
.hydro-table td {
  vertical-align: top;
}

.hydro-table-toolbar {
  display: flex;
  align-items: end;
  justify-content: flex-end;
  gap: 10px;
  min-width: 260px;
}

.hydro-table-toolbar label {
  display: grid;
  gap: 5px;
  min-width: 220px;
}

.hydro-table-toolbar span {
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.hydro-table-toolbar select {
  min-height: 36px;
}

.hydro-row.is-critical td {
  background: rgba(210, 31, 43, 0.1);
}

.hydro-row.is-warning td {
  background: rgba(230, 98, 57, 0.1);
}

.hydro-row.is-watch td {
  background: rgba(14, 165, 233, 0.09);
}

.hydro-row.is-data td {
  background: rgba(100, 116, 139, 0.075);
}

.hydro-row.is-critical td:first-child {
  border-left: 5px solid var(--sie-red);
}

.hydro-row.is-warning td:first-child {
  border-left: 5px solid var(--sie-orange);
}

.hydro-row.is-watch td:first-child {
  border-left: 5px solid var(--sie-blue);
}

.hydro-row.is-data td:first-child {
  border-left: 5px solid var(--sie-slate);
}

.hydro-table td strong,
.hydro-table td small {
  display: block;
}

.hydro-table td small {
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.45;
}

.hydro-table td small.hydro-context-names {
  color: var(--sie-text);
  font-weight: 700;
}

.hydro-table td:nth-child(2) > small:not(.hydro-compact-line),
.hydro-table td:nth-child(6) > small:not(.hydro-compact-line),
.hydro-table td:nth-child(8) > small:not(.hydro-compact-line) {
  display: none;
}

.hydro-table td:nth-child(5) > small:nth-of-type(n+2) {
  display: none;
}

.hydro-tooltip-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 20px;
  margin-top: 4px;
  padding: 2px 7px;
  border: 1px solid rgba(14, 165, 233, 0.24);
  border-radius: 999px;
  background: rgba(14, 165, 233, 0.08);
  color: var(--sie-blue);
  cursor: help;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  white-space: nowrap;
}

.hydro-compact-line {
  color: var(--sie-muted);
  font-size: 11px;
}

.hydro-rain-trend-mini {
  display: grid;
  width: min(190px, 100%);
  gap: 4px;
  margin-top: 6px;
  padding: 7px;
  border: 1px solid rgba(148, 163, 184, 0.28);
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.72);
  cursor: help;
}

.hydro-rain-trend-mini > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--sie-text);
  font-size: 10px;
  line-height: 1;
}

.hydro-rain-trend-mini > div strong,
.hydro-rain-trend-mini > div span {
  display: inline-flex;
  font-size: 10px;
  white-space: nowrap;
}

.hydro-rain-trend-mini > div span {
  color: var(--sie-muted);
  font-weight: 900;
}

.hydro-rain-trend-mini > span {
  display: grid;
  grid-template-columns: 28px minmax(46px, 1fr);
  align-items: center;
  gap: 6px;
}

.hydro-rain-trend-mini em {
  color: var(--sie-muted);
  font-size: 9px;
  font-style: normal;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}

.hydro-rain-trend-mini i {
  display: block;
  min-width: 2px;
  height: 6px;
  border-radius: 999px;
  background: var(--sie-blue);
}

.hydro-rain-trend-mini.is-up {
  border-color: rgba(220, 38, 38, 0.3);
  background: rgba(254, 226, 226, 0.62);
}

.hydro-rain-trend-mini.is-up i {
  background: var(--sie-red);
}

.hydro-rain-trend-mini.is-down {
  border-color: rgba(22, 163, 74, 0.28);
  background: rgba(220, 252, 231, 0.56);
}

.hydro-rain-trend-mini.is-down i {
  background: #16a34a;
}

.hydro-rain-trend-mini.is-stable i {
  background: var(--sie-orange);
}

.hydro-rain-trend-mini.is-empty i {
  background: var(--sie-slate);
}

.hydro-rain-page tbody tr.is-context-only {
  color: #64748b;
  background: #f8fafc;
}

.hydro-rain-page tbody tr.is-context-only strong {
  color: #64748b;
}

.hydro-criticality-cell {
  min-width: 190px;
}

.hydro-forecast-mini {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  max-width: 100%;
  margin: 4px 0;
  padding: 3px 7px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  background: #fff;
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 900;
  line-height: 1.2;
  text-transform: uppercase;
}

.hydro-forecast-mini.is-critical {
  border-color: rgba(210, 31, 43, 0.34);
  color: var(--sie-red);
  background: var(--sie-red-soft);
}

.hydro-forecast-mini.is-warning {
  border-color: rgba(230, 98, 57, 0.34);
  color: var(--sie-orange);
  background: var(--sie-orange-soft);
}

.hydro-forecast-mini.is-watch {
  border-color: rgba(14, 165, 233, 0.34);
  color: var(--sie-blue);
  background: #eef8ff;
}

.hydro-station-marker {
  display: grid;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.22);
}

.hydro-station-marker span {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 999px;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
}

.hydro-station-marker.is-level span {
  background: #2563eb;
}

.hydro-station-marker.is-alert span {
  background: #b91c1c;
}

.hydro-station-marker.is-watch span {
  background: #0ea5e9;
}

.hydro-station-marker.is-rain span {
  background: #008f6b;
}

.hydro-station-marker.is-weather span {
  background: #7c3aed;
}

.hydro-station-marker.is-stale span {
  background: #d97706;
}

.hydro-station-marker.is-empty span {
  background: #6b7280;
}

.hydro-station-marker.is-default span {
  background: #334155;
}

.hydro-wind-marker {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  color: #5b21b6;
  font-size: 9px;
  font-weight: 900;
  white-space: nowrap;
}

.hydro-wind-marker span {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border: 1px solid rgba(91, 33, 182, 0.55);
  border-radius: 999px;
  background: rgba(245, 243, 255, 0.92);
  color: #5b21b6;
  box-shadow: 0 3px 8px rgba(15, 23, 42, 0.18);
  font-size: 15px;
  line-height: 1;
  transform-origin: center;
}

.hydro-wind-marker strong {
  display: inline-flex;
  align-items: center;
  min-height: 16px;
  padding: 1px 4px;
  border: 1px solid rgba(91, 33, 182, 0.24);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  color: #312e81;
  font-size: 9px;
  line-height: 1;
  transform: translateX(-3px);
}

.hydro-wind-marker.is-moderate span {
  border-color: rgba(180, 83, 9, 0.55);
  background: rgba(254, 243, 199, 0.94);
  color: #b45309;
}

.hydro-wind-marker.is-strong span {
  border-color: rgba(185, 28, 28, 0.55);
  background: rgba(254, 226, 226, 0.94);
  color: var(--sie-red);
}

.weather-ranking-table {
  min-width: 2600px;
}

.weather-ranking-table th,
.weather-ranking-table td {
  vertical-align: top;
}

.weather-ranking-rank {
  width: 38px;
}

.weather-ranking-city {
  min-width: 190px;
}

.weather-ranking-period-col {
  min-width: 110px;
}

.weather-ranking-worst {
  min-width: 180px;
}

.weather-ranking-date,
.weather-ranking-turno {
  text-align: center;
}

.weather-ranking-date {
  background: #fffafa;
  border-left: 1px solid var(--sie-line);
}

.weather-ranking-turno {
  font-size: 9px;
}

.weather-ranking-cell {
  display: grid;
  gap: 5px;
  min-width: 126px;
}

.weather-ranking-cell strong {
  font-size: 11px;
  line-height: 1.35;
}

.weather-ranking-period {
  display: grid;
  gap: 4px;
}

.weather-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.weather-map-card {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.weather-map-card.weather-critical-red {
  border-color: rgba(210, 31, 43, 0.34);
  background: rgba(210, 31, 43, 0.14);
}

.weather-map-card.weather-critical-orange {
  border-color: rgba(230, 98, 57, 0.34);
  background: rgba(230, 98, 57, 0.13);
}

.weather-map-card.weather-critical-yellow {
  border-color: rgba(183, 121, 31, 0.34);
  background: rgba(183, 121, 31, 0.13);
}

.weather-map-card-head {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  justify-content: space-between;
}

.weather-map-card h3 {
  margin: 2px 0 0;
  font-size: 15px;
  line-height: 1.2;
}

.weather-card-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.weather-expand-button {
  white-space: nowrap;
}

.weather-critical-badge {
  border-color: rgba(210, 31, 43, 0.22);
  background: #fff;
  color: var(--sie-red);
}

.weather-card-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.weather-card-summary span,
.weather-legend span {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  min-height: 24px;
  padding: 2px 7px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
}

.weather-card-summary img,
.weather-legend img,
.weather-icon-cell img,
.weather-worst-period img {
  width: 22px;
  height: 22px;
  flex: 0 0 auto;
}

.weather-card-condition {
  min-height: 30px;
  margin: 0;
  color: var(--sie-text);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
}

.weather-mini-map {
  position: relative;
  min-height: 220px;
  width: 100%;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  overflow: hidden;
  background: #eef5f6;
}

body.modal-open {
  overflow: hidden;
}

.map-fullscreen-modal {
  width: 100vw;
  height: 100vh;
  padding: 8px;
  z-index: 2600;
}

.modal-panel-fullscreen {
  width: 100%;
  height: 100%;
}

.weather-map-modal-body {
  display: block;
  min-height: 0;
  overflow: hidden;
  padding: 10px;
}

.weather-expanded-map {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  overflow: hidden;
  background: #eef5f6;
}

.weather-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.weather-heading-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  align-items: center;
}

.weather-forecast-layer-legend span {
  padding-right: 8px;
}

.weather-forecast-swatch {
  width: 14px;
  height: 12px;
  flex: 0 0 14px;
  border: 1px solid rgba(51, 65, 85, 0.62);
  border-radius: 3px;
}

.weather-forecast-swatch.status-normal {
  background: #008466;
}

.weather-forecast-swatch.status-atencao {
  background: #0284c7;
}

.weather-forecast-swatch.status-risco {
  background: #ea580c;
}

.weather-forecast-swatch.status-critico {
  background: #be185d;
}

.weather-matrix-wrap {
  max-width: 100%;
}

.weather-matrix-table {
  width: 100%;
  min-width: 1120px;
  table-layout: fixed;
}

.weather-matrix-table th:first-child,
.weather-matrix-table td:first-child {
  width: 200px;
}

.weather-matrix-table th:nth-child(2),
.weather-matrix-table td:nth-child(2) {
  width: 74px;
  text-align: center;
}

.weather-matrix-table th:nth-child(3),
.weather-matrix-table td:nth-child(3) {
  width: 66px;
  text-align: center;
}

.weather-matrix-table th:nth-child(4),
.weather-matrix-table td:nth-child(4) {
  width: 86px;
  text-align: center;
}

.weather-matrix-table th:nth-child(5),
.weather-matrix-table td:nth-child(5) {
  width: 142px;
}

.weather-matrix-table th:not(:first-child):not(:nth-child(2)):not(:nth-child(3)):not(:nth-child(4)):not(:nth-child(5)),
.weather-matrix-table td:not(:first-child):not(:nth-child(2)):not(:nth-child(3)):not(:nth-child(4)):not(:nth-child(5)) {
  width: 58px;
  text-align: center;
}

.weather-matrix-table th span,
.weather-matrix-table th small {
  display: block;
  line-height: 1.2;
}

.weather-matrix-table th small {
  margin-top: 2px;
  color: var(--sie-text);
  font-size: 10px;
  font-weight: 800;
  text-transform: none;
}

.weather-icon-cell {
  background-color: var(--weather-cell-color, transparent);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.36);
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
}

.weather-icon-cell img {
  filter: drop-shadow(0 1px 1px rgba(255, 255, 255, 0.74)) drop-shadow(0 0 1px rgba(15, 23, 42, 0.35));
}

.weather-icon-cell img + img {
  margin-left: 4px;
}

.weather-hail-icon {
  border-radius: 5px;
  background: rgba(255, 255, 255, 0.58);
}

.weather-score-cell {
  text-align: center;
  vertical-align: middle;
}

.weather-score-button {
  display: inline-grid;
  min-width: 58px;
  min-height: 34px;
  place-items: center;
  padding: 4px 7px;
  border: 1px solid rgba(210, 31, 43, 0.26);
  border-radius: 7px;
  background: #fff8f8;
  color: var(--sie-text);
  cursor: pointer;
  font: inherit;
}

.weather-score-button:hover,
.weather-score-button:focus-visible {
  border-color: rgba(210, 31, 43, 0.52);
  background: #fff0f1;
  outline: 2px solid rgba(210, 31, 43, 0.18);
  outline-offset: 1px;
}

.weather-score-button strong {
  font-size: 14px;
  line-height: 1;
}

.weather-score-button small {
  color: var(--sie-muted);
  font-size: 9px;
  font-weight: 800;
  line-height: 1.15;
  text-transform: uppercase;
}

.weather-score-modal {
  z-index: 2700;
}

.weather-score-panel {
  max-width: 1180px;
  max-height: min(760px, calc(100vh - 36px));
}

.weather-score-body {
  display: grid;
  gap: 12px;
  min-height: 0;
  overflow: hidden;
}

.weather-score-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.weather-score-summary span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 28px;
  padding: 5px 8px;
  border: 1px solid var(--sie-line);
  border-radius: 7px;
  background: #ffffff;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 700;
}

.weather-score-summary strong {
  color: var(--sie-text);
  font-size: 15px;
}

.weather-score-table-wrap {
  max-height: 560px;
  overflow: auto;
}

.weather-score-table {
  min-width: 1080px;
}

.weather-score-table th,
.weather-score-table td {
  vertical-align: top;
}

.weather-score-table td {
  font-size: 11px;
}

.weather-score-swatch {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-right: 5px;
  border: 1px solid rgba(15, 23, 42, 0.18);
  border-radius: 3px;
  background: var(--weather-score-color, transparent);
  vertical-align: -2px;
}

.weather-score-total-row td {
  background: #f8fafc;
  font-weight: 800;
}

.weather-hospital-count {
  color: var(--sie-text);
  font-weight: 800;
  text-align: center;
  vertical-align: middle;
}

.weather-resource-count {
  display: inline-grid;
  place-items: center;
  min-width: 34px;
  min-height: 26px;
  padding: 3px 7px;
  border-radius: 7px;
  font-weight: 800;
}

.weather-worst-period {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 6px;
  align-items: center;
}

.weather-worst-period span {
  min-width: 0;
  color: var(--sie-text);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.25;
}

.flood-map .leaflet-tile,
.flood-map .leaflet-marker-icon,
.flood-map .leaflet-marker-shadow,
.weather-mini-map .leaflet-tile,
.weather-mini-map .leaflet-marker-icon,
.weather-mini-map .leaflet-marker-shadow {
  max-width: none !important;
}

.hospital-cluster {
  display: grid;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 999px;
  background: rgba(0, 168, 70, 0.88);
  color: #fff;
  font-weight: 800;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.2);
}

.hospital-cluster.has-flood {
  background: rgba(210, 31, 43, 0.9);
}

.patient-marker,
.patient-cluster {
  display: grid;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 999px;
  color: #fff;
  font-weight: 800;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.22);
}

.patient-marker span,
.patient-cluster span {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1;
}

.patient-marker.is-critical,
.patient-cluster.is-critical {
  background: rgba(210, 31, 43, 0.94);
}

.patient-marker.is-risk,
.patient-cluster.is-risk {
  background: rgba(230, 98, 57, 0.94);
}

.patient-marker.is-attention,
.patient-cluster.is-attention {
  background: rgba(183, 121, 31, 0.94);
}

.patient-marker.is-stable,
.patient-cluster.is-stable {
  background: rgba(0, 168, 70, 0.9);
}

.patient-marker.is-impact,
.patient-cluster.is-impact {
  background: rgba(210, 31, 43, 0.94);
}

.patient-marker.is-normal,
.patient-cluster.is-normal {
  background: rgba(0, 132, 61, 0.92);
}

.patient-marker.is-unknown,
.patient-cluster.is-unknown {
  border-style: dashed;
  background: rgba(100, 116, 139, 0.94);
}

.vigidesastres-event-map {
  min-height: 560px;
}

.inmet-alerts-page {
  gap: 16px;
}

.inmet-alert-card {
  display: grid;
  gap: 16px;
  border-top: 4px solid var(--inmet-color, var(--sie-primary));
}

.inmet-alert-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(180px, auto);
  gap: 16px;
  align-items: start;
}

.inmet-alert-card-head h2 {
  margin: 4px 0 6px;
  font-size: 21px;
  line-height: 1.2;
}

.inmet-alert-card-head p {
  margin: 0;
  color: var(--sie-muted);
  font-weight: 600;
}

.inmet-alert-id {
  color: var(--sie-primary);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.inmet-alert-card-state {
  display: grid;
  justify-items: end;
  gap: 5px;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 700;
}

.inmet-alert-card-state strong {
  color: var(--sie-text);
  font-size: 28px;
  line-height: 1;
}

.inmet-severity-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 9px;
  border: 1px solid var(--inmet-color, var(--sie-line));
  border-radius: 6px;
  background: var(--inmet-color-soft, var(--sie-primary-soft));
  color: var(--sie-text);
  font-size: 12px;
  font-weight: 800;
}

.inmet-alert-layout {
  display: grid;
  grid-template-columns: minmax(320px, 0.95fr) minmax(0, 1.05fr);
  gap: 16px;
  align-items: stretch;
}

.inmet-alert-map {
  position: relative;
  min-height: 390px;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #eef5f6;
}

.inmet-map-caption {
  margin: 8px 0 0;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 700;
}

.inmet-alert-text {
  display: grid;
  gap: 12px;
  align-content: start;
}

.inmet-alert-text section {
  padding: 13px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.inmet-alert-text h3,
.inmet-municipality-panel h3 {
  margin: 0 0 8px;
  font-size: 15px;
  line-height: 1.25;
}

.inmet-alert-text p,
.inmet-alert-text ul {
  margin: 0;
}

.inmet-alert-text ul {
  padding-left: 18px;
}

.inmet-alert-text li + li {
  margin-top: 4px;
}

.inmet-municipality-panel {
  display: grid;
  gap: 12px;
}

.inmet-municipality-panel .section-heading {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: space-between;
}

.inmet-municipality-panel .section-heading p {
  margin: 0;
  color: var(--sie-muted);
  font-weight: 500;
}

.inmet-municipality-table th:nth-child(2),
.inmet-municipality-table td:nth-child(2),
.inmet-municipality-table th:nth-child(3),
.inmet-municipality-table td:nth-child(3) {
  width: 120px;
}

.vigidesastres-event-legend .status-chip {
  background: #fff;
}

.event-dot {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}

.map-summary-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
}

.map-summary-strip span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 700;
}

.map-summary-strip strong {
  margin-right: 4px;
  color: var(--sie-text);
}

.vigidesastres-event-marker {
  position: relative;
  display: grid;
  place-items: center;
}

.event-marker-core {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 2px solid #fff;
  border-radius: 8px;
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  line-height: 1;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.24);
  transform: rotate(45deg);
}

.event-marker-label {
  transform: rotate(-45deg);
}

.event-marker-count {
  position: absolute;
  right: -5px;
  bottom: -4px;
  display: grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: var(--sie-text);
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
}

.patient-popup-total {
  display: inline-block;
  margin: 4px 0;
  font-weight: 800;
}

.patient-popup-vulnerabilities,
.patient-popup-list,
.patient-popup-priorities {
  display: grid;
  gap: 3px;
  margin: 8px 0;
}

.patient-popup-vulnerabilities span,
.patient-popup-list span,
.patient-popup-priorities span {
  display: block;
  line-height: 1.25;
}

.patient-popup-vulnerabilities,
.patient-popup-priorities {
  background: #f8fafc;
  border: 1px solid var(--sie-border);
  border-radius: 7px;
  padding: 7px 9px;
}

.patient-popup-vulnerabilities small,
.patient-popup-geocode small {
  color: #64748b;
  line-height: 1.25;
}

.patient-popup-priorities {
  background: #fff7ed;
  border-color: #fed7aa;
}

.patient-popup-review {
  color: #166534;
  display: inline-block;
  font-weight: 750;
  margin: 2px 0 7px;
}

.patient-popup-review.has-pending {
  color: #b45309;
}

.patient-popup-geocode {
  display: grid;
  gap: 4px;
  margin: 7px 0;
  padding: 7px 9px;
  border: 1px solid var(--sie-border);
  border-radius: 7px;
  background: #f8fafc;
}

.patient-geocode-status {
  display: flex;
  align-items: center;
  gap: 6px;
  line-height: 1.25;
}

.patient-geocode-status i {
  flex: 0 0 9px;
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: #dc2626;
  box-shadow: 0 0 0 2px rgba(220, 38, 38, 0.14);
}

.patient-geocode-status.is-found i {
  background: #16a34a;
  box-shadow: 0 0 0 2px rgba(22, 163, 74, 0.14);
}

.patient-geocode-status.is-unknown i {
  background: #64748b;
  box-shadow: 0 0 0 2px rgba(100, 116, 139, 0.14);
}

.basic-unit-cluster {
  display: grid;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 999px;
  background: rgba(0, 168, 70, 0.9);
  color: #fff;
  font-weight: 800;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.2);
}

.basic-unit-cluster.has-event {
  background: var(--sie-primary);
}

.basic-unit-cluster span {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 999px;
  font-size: 13px;
  line-height: 1;
}

.hospital-cluster span {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  border-radius: 999px;
  font-size: 13px;
  line-height: 1;
}

.mini-map,
.coordinate-picker-map {
  min-height: 360px;
}

.coordinate-correction-map {
  min-height: 520px;
}

.coordinate-editor-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.42fr);
  gap: 14px;
  align-items: start;
}

.coordinate-editor-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  align-items: end;
  margin-top: 14px;
}

.coordinate-current {
  display: grid;
  gap: 4px;
  padding: 10px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: var(--sie-soft);
}

.coordinate-current span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.coordinate-current strong {
  color: var(--sie-text);
  font-size: 13px;
  overflow-wrap: anywhere;
}

.map-loading {
  position: absolute;
  inset: 0;
  z-index: 500;
  display: grid;
  place-items: center;
  background: linear-gradient(180deg, rgba(238, 245, 246, 0.96), rgba(238, 245, 246, 0.82));
  color: var(--sie-muted);
  font-weight: 700;
}

.map-loading.is-error {
  background: rgba(248, 250, 252, 0.9);
  color: #8f3f12;
}

.map-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  justify-content: flex-end;
}

.operational-risk-map-panel .map-actions {
  gap: 6px;
  max-width: 920px;
}

.operational-risk-map-panel .map-actions .status-chip {
  min-height: 26px;
  padding: 3px 7px;
  font-size: 10px;
  font-weight: 850;
}

.operational-risk-map-panel .map-actions .btn {
  min-height: 28px;
  padding: 4px 8px;
  font-size: 11px;
  font-weight: 850;
}

.map-actions label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 700;
}

.map-actions .map-toggle {
  min-height: 30px;
  padding: 4px 9px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
  color: var(--sie-text);
}

.map-actions .map-toggle input {
  width: 14px;
  height: 14px;
  accent-color: var(--sie-primary);
}

.map-actions input[type="range"] {
  width: 128px;
}

.leaflet-popup-content a {
  display: inline-flex;
  margin-top: 8px;
  padding: 5px 9px;
  border: 1px solid var(--sie-primary);
  border-radius: 6px;
  color: var(--sie-primary);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

.integrated-rainfall-leaflet-popup .leaflet-popup-content {
  margin: 12px 14px;
  width: auto !important;
}

.integrated-operational-rainfall-cloud-icon {
  background: transparent;
  border: 0;
  cursor: pointer;
  filter: drop-shadow(0 2px 2px rgba(15,23,42,.28));
}

.integrated-operational-rainfall-cloud-icon svg {
  display: block;
  height: 100%;
  overflow: visible;
  width: 100%;
}

.integrated-operational-rainfall-cloud-icon text {
  fill: #fff;
  font-family: inherit;
  font-size: 11px;
  font-weight: 900;
  paint-order: stroke;
  pointer-events: none;
  stroke: rgba(15,23,42,.82);
  stroke-width: 2px;
}

.integrated-operational-rainfall-cloud-icon text.is-unit {
  font-size: 5.5px;
  letter-spacing: -.02em;
  stroke-width: 1.3px;
}

.integrated-rainfall-popup {
  color: #243746;
  display: grid;
  font-size: 12px;
  gap: 9px;
  min-width: 332px;
}

.integrated-rainfall-popup__header {
  background: linear-gradient(135deg, #e9f7fa, #f7fbfc);
  border: 1px solid #bcdde3;
  border-radius: 8px;
  display: grid;
  gap: 1px;
  padding: 9px 11px;
}

.integrated-rainfall-popup__header span,
.integrated-rainfall-popup__facts span {
  color: #55707c;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .025em;
  text-transform: uppercase;
}

.integrated-rainfall-popup__header strong {
  color: #075f70;
  font-size: 22px;
  line-height: 1.1;
}

.integrated-rainfall-popup__header small,
.integrated-rainfall-popup__trend small,
.integrated-rainfall-popup__facts small {
  display: block;
  line-height: 1.35;
}

.integrated-rainfall-popup__location {
  color: #526572;
  font-size: 11px;
}

.power-interruption-consumer-unit-alert {
  background: #fff3cd;
  border: 1px solid #e5b52e;
  border-left: 4px solid #d97706;
  border-radius: 7px;
  display: grid;
  gap: 3px;
  margin: 7px 0;
  padding: 7px 9px;
}

.power-interruption-consumer-unit-alert strong { color: #7c2d12; }
.power-interruption-consumer-unit-alert small { color: #684d20; line-height: 1.3; }

.integrated-rainfall-popup__error {
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 6px;
  color: #9a3412;
  padding: 7px 8px;
}

.integrated-rainfall-popup__trend {
  border-left: 4px solid #94a3b8;
  border-radius: 5px;
  display: grid;
  gap: 1px;
  padding: 5px 8px;
}

.integrated-rainfall-popup__trend.is-intensifying {
  background: #fef2f2;
  border-color: #b91c1c;
  color: #991b1b;
}

.integrated-rainfall-popup__trend.is-reducing {
  background: #f0fdf4;
  border-color: #15803d;
  color: #166534;
}

.integrated-rainfall-popup__table-wrap {
  border: 1px solid #dce6ea;
  border-radius: 7px;
  max-height: 224px;
  overflow: auto;
}

.integrated-rainfall-popup__table {
  border-collapse: collapse;
  font-size: 11px;
  width: 100%;
}

.integrated-rainfall-popup__table caption {
  background: #f6f9fa;
  color: #38515e;
  font-weight: 850;
  padding: 6px 8px;
  text-align: left;
}

.integrated-rainfall-popup__table th,
.integrated-rainfall-popup__table td {
  border-top: 1px solid #e5ecef;
  padding: 5px 8px;
  text-align: left;
}

.integrated-rainfall-popup__table td { text-align: right; }

.integrated-rainfall-popup__table thead th {
  color: #667985;
  font-size: 9px;
  text-transform: uppercase;
}

.integrated-rainfall-popup__table tr.is-selected {
  background: #eaf7fa;
  color: #075f70;
}

.integrated-rainfall-popup__table tr span {
  background: #cae9ee;
  border-radius: 999px;
  font-size: 8px;
  margin-left: 3px;
  padding: 1px 4px;
  text-transform: uppercase;
}

.integrated-rainfall-popup__facts {
  display: grid;
  gap: 7px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.integrated-rainfall-popup__facts section {
  background: #f8fafb;
  border: 1px solid #e1e8eb;
  border-radius: 7px;
  display: grid;
  gap: 2px;
  padding: 7px 8px;
}

.integrated-rainfall-popup__relations {
  border-top: 1px solid #dce6ea;
  padding-top: 8px;
}

.integrated-rainfall-popup__relations h4 {
  font-size: 11px;
  margin: 0 0 5px;
}

.integrated-rainfall-popup__relations > div {
  display: grid;
  gap: 5px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.integrated-rainfall-popup__relations > div > span {
  align-items: center;
  background: #f5f8f9;
  border-radius: 5px;
  display: flex;
  flex-direction: column;
  padding: 5px 3px;
  text-align: center;
}

.integrated-rainfall-popup__relations strong { font-size: 15px; }
.integrated-rainfall-popup__relations small { color: #607480; font-size: 9px; }

.integrated-rainfall-popup__relations p,
.integrated-rainfall-popup footer {
  color: #667985;
  font-size: 9px;
  line-height: 1.35;
  margin: 5px 0 0;
}

.integrated-rainfall-popup footer a {
  margin-left: 6px;
  margin-top: 0;
}

@media (max-width: 520px) {
  .integrated-rainfall-popup { min-width: 260px; }
  .integrated-rainfall-popup__facts { grid-template-columns: 1fr; }
}

.external-map-frame {
  position: relative;
  width: 100%;
  min-height: 360px;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: var(--sie-soft);
  aspect-ratio: 16 / 9;
}

.external-map-frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.roads-map-frame {
  min-height: 520px;
}

.blocked-roads-summary {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.blocked-roads-summary .metric {
  min-height: 118px;
}

.blocked-roads-page > section,
.blocked-roads-page > nav {
  scroll-margin-top: 76px;
}

.blocked-roads-section-nav {
  position: sticky;
  top: 8px;
  z-index: 900;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  width: fit-content;
  max-width: 100%;
  padding: 5px;
  border: 1px solid var(--sie-line);
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 5px 16px rgba(15, 23, 42, 0.09);
  backdrop-filter: blur(8px);
}

.blocked-roads-section-nav a {
  padding: 6px 10px;
  border-radius: 6px;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 750;
  text-decoration: none;
  white-space: nowrap;
}

.blocked-roads-section-nav a:hover,
.blocked-roads-section-nav a:focus-visible {
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  outline: none;
}

.blocked-roads-page .decision-briefing.is-compact {
  padding: 14px 16px;
}

.blocked-roads-page .decision-briefing.is-compact .decision-briefing-header {
  align-items: center;
}

.blocked-roads-page .decision-briefing.is-compact .decision-briefing-header h2 {
  margin: 2px 0;
  font-size: 15px;
}

.blocked-roads-page .decision-briefing.is-compact .decision-briefing-header p,
.blocked-roads-page .decision-briefing.is-compact .ops-kicker {
  font-size: 10px;
}

.blocked-roads-page .decision-briefing.is-compact .decision-briefing-actions .btn {
  min-height: 32px;
  padding: 5px 10px;
  font-size: 11px;
}

.blocked-roads-page .decision-briefing.is-compact .decision-briefing-preview {
  margin-top: 10px;
  padding-top: 8px;
  font-size: 11px;
}

.blocked-roads-page .decision-briefing.is-compact .decision-briefing-feedback:empty {
  display: none;
}

.blocked-roads-metric-all::after { background: #2563eb; opacity: 0.8; }
.blocked-roads-metric-total::after { background: #c9362b; opacity: 0.9; }
.blocked-roads-metric-partial::after { background: #d88716; opacity: 0.9; }
.blocked-roads-metric-sources::after { background: #25825b; opacity: 0.85; }
.blocked-roads-metric-routes::after { background: #16865b; opacity: 0.9; }

.blocked-roads-metric-sources .metric-value {
  font-size: 20px;
  white-space: nowrap;
}

.blocked-roads-metric-sources .metric-value small {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.blocked-roads-filter-panel {
  display: grid;
  gap: 12px;
  margin-bottom: 12px;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-left: 4px solid #cbd5e1;
  border-radius: 9px;
  background: #f8fafc;
  transition: border-color 0.15s ease, background-color 0.15s ease;
}

.blocked-roads-filter-panel.has-active-filters {
  border-left-color: var(--sie-primary);
  background: #fffaf7;
}

.blocked-roads-filter-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.blocked-roads-filter-heading h3,
.blocked-roads-filter-heading p {
  margin: 0;
}

.blocked-roads-filter-heading h3 {
  font-size: 13px;
}

.blocked-roads-filter-heading p {
  margin-top: 2px;
  color: var(--sie-muted);
  font-size: 11px;
}

.blocked-roads-active-filter-count {
  flex: 0 0 auto;
  padding: 4px 8px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  background: #fff;
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 750;
  white-space: nowrap;
}

.blocked-roads-filter-panel.has-active-filters .blocked-roads-active-filter-count {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.blocked-roads-quick-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.blocked-roads-quick-filters button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 30px;
  padding: 4px 9px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  background: #fff;
  color: var(--sie-muted);
  font: inherit;
  font-size: 10px;
  font-weight: 750;
  cursor: pointer;
}

.blocked-roads-quick-filters button strong {
  display: grid;
  min-width: 20px;
  height: 20px;
  place-items: center;
  padding: 0 5px;
  border-radius: 999px;
  background: #eef2f6;
  color: var(--sie-text);
  font-size: 9px;
}

.blocked-roads-quick-filters button:hover,
.blocked-roads-quick-filters button:focus-visible,
.blocked-roads-quick-filters button.is-active {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  outline: none;
}

.blocked-roads-quick-filters button.is-active strong {
  background: #fff;
  color: var(--sie-primary);
}

.blocked-roads-filters {
  display: grid;
  grid-template-columns: minmax(300px, 1.7fr) minmax(180px, 0.75fr) minmax(190px, 0.75fr) auto;
  gap: 12px;
  align-items: end;
}

.blocked-roads-filters label {
  display: grid;
  gap: 6px;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 600;
}

.blocked-roads-filters input,
.blocked-roads-filters select {
  width: 100%;
  min-height: 38px;
}

.blocked-roads-filters .filter-actions {
  flex-wrap: nowrap;
}

.blocked-roads-filters .filter-actions .btn {
  min-height: 38px;
}

.blocked-roads-filters .filter-actions .btn:disabled {
  cursor: default;
  opacity: 0.48;
}

.blocked-roads-method-note,
.blocked-roads-route-analysis,
.blocked-roads-source-details {
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.blocked-roads-method-note {
  margin-bottom: 12px;
  background: #fbfcfe;
}

.blocked-roads-method-note summary,
.blocked-roads-route-analysis summary,
.blocked-roads-source-details summary {
  padding: 9px 12px;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 750;
  cursor: pointer;
}

.blocked-roads-method-note p {
  margin: 0;
  padding: 0 12px 11px;
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.5;
}

.blocked-roads-map {
  width: 100%;
  height: clamp(460px, 62vh, 650px);
  min-height: 0;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: var(--sie-soft);
}

.blocked-roads-map-unavailable {
  min-height: 540px;
  display: grid;
  place-items: center;
  padding: 32px;
  color: var(--sie-muted);
  font-weight: 700;
  text-align: center;
}

.blocked-roads-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 10px;
  color: var(--sie-muted);
  font-size: 12px;
}

.blocked-roads-map-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.blocked-roads-map-legend i {
  display: inline-block;
  width: 11px;
  height: 11px;
  border-radius: 999px;
  border: 2px solid #922f2a;
  background: #dc4439;
}

.blocked-roads-map-legend i.is-partial {
  border-color: #a75d08;
  background: #f59e0b;
}

.blocked-roads-map-legend i.is-network,
.blocked-roads-map-legend i.is-affected-route,
.blocked-roads-map-legend i.is-alternative-route {
  width: 24px;
  height: 4px;
  border: 0;
  border-radius: 999px;
}

.blocked-roads-map-legend i.is-network { background: #64748b; opacity: 0.65; }
.blocked-roads-map-legend i.is-affected-route { background: #b42318; }
.blocked-roads-map-legend i.is-alternative-route { background: #16865b; }

.blocked-roads-route-status {
  margin: 14px 0 0;
}

.blocked-roads-route-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0;
  padding: 12px;
}

.blocked-roads-route-analysis {
  margin-top: 10px;
}

.blocked-roads-route-analysis summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  color: var(--sie-text);
}

.blocked-roads-route-analysis summary small {
  color: var(--sie-muted);
  font-weight: 500;
}

.blocked-roads-route-analysis[open] summary,
.blocked-roads-source-details[open] summary,
.blocked-roads-method-note[open] summary {
  border-bottom: 1px solid var(--sie-line);
  background: #f8fafc;
}

.road-route-card {
  display: grid;
  align-content: start;
  gap: 7px;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-left: 4px solid #64748b;
  border-radius: 8px;
  background: #fff;
}

.road-route-card > div:first-child {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.road-route-card h3,
.road-route-card p {
  margin: 0;
}

.road-route-card h3 {
  font-size: 14px;
}

.road-route-card p {
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.45;
}

.road-route-card .road-route-warning,
.road-route-unavailable {
  color: #9a3412;
}

.road-route-access,
.road-route-access-detail {
  border-radius: 8px;
  font-weight: 700;
}

.road-route-access {
  display: inline-flex;
  margin-top: 4px;
  padding: 4px 7px;
  font-size: 0.76rem;
}

.road-route-access-detail {
  margin: 10px 0;
  padding: 9px 10px;
  font-size: 0.82rem;
  line-height: 1.45;
}

.road-route-access-detail small {
  display: block;
  margin-top: 4px;
  font-weight: 500;
}

.road-route-access.is-closed,
.road-route-access-detail.is-closed {
  color: #991b1b;
  background: #fef2f2;
  border: 1px solid #fecaca;
}

.road-route-access.is-degraded,
.road-route-access-detail.is-degraded {
  color: #92400e;
  background: #fffbeb;
  border: 1px solid #fde68a;
}

.road-route-access.is-unknown,
.road-route-access-detail.is-unknown {
  color: #475569;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.hospital-reference-access-loss {
  margin-top: 6px;
  padding: 6px 7px;
  border-left: 3px solid #d97706;
  border-radius: 5px;
  background: #fffbeb;
  color: #78350f;
}

.road-route-available,
.road-route-partial,
.road-route-unavailable {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  font-weight: 700;
}

.road-route-available { color: #08734b; }
.road-route-partial { color: #8a5708; }

[data-road-route-impact] small {
  display: block;
  max-width: 260px;
  margin-top: 3px;
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.35;
}

[data-road-route-impact] .btn {
  margin-top: 7px;
}

.road-route-popup.is-alternative .road-block-popup-status {
  color: #08734b;
}

.blocked-roads-source-note {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 11px 12px;
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.45;
}

.blocked-roads-source-note a {
  color: var(--sie-primary);
  font-weight: 700;
}

.blocked-roads-source-details {
  margin-top: 10px;
}

.blocked-roads-table {
  min-width: 1240px;
}

.blocked-roads-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: #f8fafc;
  box-shadow: 0 1px 0 var(--sie-line);
}

.blocked-roads-table th:nth-child(1) { width: 135px; }
.blocked-roads-table th:nth-child(2) { width: 205px; }
.blocked-roads-table th:nth-child(4) { width: 130px; }
.blocked-roads-table th:nth-child(5) { width: 105px; }
.blocked-roads-table th:nth-child(6) { width: 280px; }
.blocked-roads-table th:nth-child(7) { width: 118px; }

.blocked-roads-table tbody tr[data-road-block-row] {
  transition: background-color 0.15s ease;
}

.blocked-roads-table tbody tr[data-road-block-row]:hover {
  background: #f8fafc;
}

.road-block-status {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 4px 8px;
  border: 1px solid #e2a5a0;
  border-radius: 999px;
  background: #fff0ef;
  color: #8c2923;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

.road-block-status.is-partial {
  border-color: #e9c991;
  background: #fff7e7;
  color: #865108;
}

.road-block-no-coordinate {
  color: var(--sie-muted);
  font-size: 11px;
  white-space: nowrap;
}

.blocked-roads-date {
  white-space: nowrap;
}

.road-block-popup {
  display: grid;
  gap: 5px;
  min-width: 230px;
  line-height: 1.4;
}

.road-block-popup strong {
  font-size: 14px;
}

.road-block-popup p {
  margin: 4px 0;
}

.road-block-popup-status {
  color: #9d2f28;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

@media (max-width: 1120px) {
  .blocked-roads-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .blocked-roads-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .blocked-roads-filter-search {
    grid-column: 1 / -1;
  }

  .blocked-roads-filters .filter-actions {
    justify-content: flex-end;
  }

  .blocked-roads-route-list {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 680px) {
  .blocked-roads-summary,
  .blocked-roads-filters {
    grid-template-columns: 1fr;
  }

  .blocked-roads-map {
    height: min(62vh, 430px);
    min-height: 360px;
  }

  .blocked-roads-map-unavailable {
    min-height: 430px;
  }

  .blocked-roads-filters .filter-actions,
  .blocked-roads-filters .filter-actions .btn {
    width: 100%;
  }

  .blocked-roads-filter-search {
    grid-column: auto;
  }

  .blocked-roads-filter-heading,
  .blocked-roads-route-analysis summary {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }

  .blocked-roads-section-nav {
    position: static;
    width: 100%;
    overflow-x: auto;
    flex-wrap: nowrap;
  }

  .blocked-roads-page .decision-briefing.is-compact .decision-briefing-header {
    align-items: stretch;
  }

  .blocked-roads-table-wrap {
    overflow: visible;
  }

  .blocked-roads-table,
  .blocked-roads-table tbody {
    display: block;
    min-width: 0;
  }

  .blocked-roads-table thead {
    display: none;
  }

  .blocked-roads-table tbody {
    display: grid;
    gap: 10px;
  }

  .blocked-roads-table tbody tr[data-road-block-row] {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 12px;
    padding: 10px 11px;
    border: 1px solid var(--sie-line);
    border-left: 4px solid #d88716;
    border-radius: 8px;
    background: #fff;
  }

  .blocked-roads-table tbody tr[data-road-block-type="TOTAL"] {
    border-left-color: #c9362b;
  }

  .blocked-roads-table tbody tr[hidden] {
    display: none !important;
  }

  .blocked-roads-table tbody td {
    display: block;
    padding: 8px 4px;
    border: 0;
    overflow-wrap: break-word;
  }

  .blocked-roads-table tbody td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 4px;
    color: var(--sie-muted);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

  .blocked-roads-table tbody td:nth-child(2),
  .blocked-roads-table tbody td:nth-child(3),
  .blocked-roads-table tbody td:nth-child(6) {
    grid-column: 1 / -1;
  }

  .blocked-roads-table tbody tr[data-road-block-no-results],
  .blocked-roads-table tbody tr:not([data-road-block-row]) {
    display: table-row;
  }
}

@media (max-width: 430px) {
  .blocked-roads-table tbody tr[data-road-block-row] {
    grid-template-columns: 1fr;
  }

  .blocked-roads-table tbody td:nth-child(2),
  .blocked-roads-table tbody td:nth-child(3),
  .blocked-roads-table tbody td:nth-child(6) {
    grid-column: auto;
  }
}

.power-outages-frame {
  min-height: 720px;
  aspect-ratio: auto;
  background: #f8fafc;
}

.temporary-shelter-module-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding: 6px;
  border: 1px solid #dfe4eb;
  border-radius: 10px;
  background: #fff;
}

.temporary-shelter-module-tabs a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 8px 14px;
  border-radius: 7px;
  color: #667185;
  font-size: 13px;
  font-weight: 800;
  text-align: center;
  text-decoration: none;
}

.temporary-shelter-module-tabs a:hover {
  color: #b84424;
  background: #fff5f1;
}

.temporary-shelter-module-tabs a.is-active {
  color: #b83f1f;
  background: #fff0eb;
  box-shadow: inset 0 -3px #ef5b32;
}

.temporary-shelters-collection-status {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 10px 13px;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  background: #f0fdf4;
  color: #166534;
  font-size: 12px;
}

.temporary-shelters-live-dot {
  width: 9px;
  height: 9px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #16a34a;
  box-shadow: 0 0 0 4px rgba(22, 163, 74, 0.13);
}

.temporary-shelters-collection-alert span {
  display: block;
  margin-top: 4px;
  font-size: 11px;
}

.temporary-shelters-metrics {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.temporary-shelter-metric-card,
.temporary-shelter-detail-metric {
  isolation: isolate;
  overflow: hidden;
  border-width: 1px;
  border-style: solid;
  box-shadow: 0 5px 15px rgba(15, 23, 42, 0.07);
}

.temporary-shelter-metric-card::after,
.temporary-shelter-detail-metric::after {
  width: 46px;
  height: 4px;
  right: 14px;
  bottom: 0;
  border-radius: 4px 4px 0 0;
  background: currentColor;
  opacity: 0.48;
}

.temporary-shelter-metric-card .metric-label,
.temporary-shelter-detail-metric .metric-label {
  color: inherit;
  font-weight: 800;
  opacity: 0.84;
}

.temporary-shelter-metric-card .metric-value,
.temporary-shelter-detail-metric .metric-value {
  color: inherit;
  font-weight: 800;
}

.temporary-shelter-metric-card .muted,
.temporary-shelter-detail-metric .muted {
  color: inherit;
  font-weight: 500;
  opacity: 0.76;
}

.temporary-shelter-metric-total {
  border-color: #67e8f9;
  background: #ecfeff;
  color: #164e63;
}

.temporary-shelter-metric-people {
  border-color: #fdba74;
  background: #fff7ed;
  color: #9a3412;
}

.temporary-shelter-metric-municipality {
  border-color: #c4b5fd;
  background: #f5f3ff;
  color: #5b21b6;
}

.temporary-shelter-metric-located {
  border-color: #86efac;
  background: #f0fdf4;
  color: #166534;
}

.temporary-shelter-metric-reference {
  border-color: #93c5fd;
  background: #eff6ff;
  color: #1e40af;
}

.temporary-shelters-filters {
  grid-template-columns: minmax(260px, 1.5fr) minmax(200px, 1fr) minmax(220px, 1fr) auto;
  align-items: end;
}

.temporary-shelters-filters label {
  min-width: 0;
}

.temporary-shelters-filters input,
.temporary-shelters-filters select {
  width: 100%;
}

.temporary-shelters-map {
  min-height: 500px;
}

.temporary-shelters-map-actions,
.temporary-shelters-legend {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.temporary-shelters-legend {
  color: var(--sie-muted);
  font-size: 12px;
}

.temporary-shelters-legend i {
  display: inline-block;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #fff, 0 0 0 3px rgba(15, 23, 42, 0.12);
}

.temporary-shelter-status-located { background: #15803d; }
.temporary-shelter-status-center { background: #2563eb; }

.temporary-shelter-people-count {
  color: #9a3412;
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}

.temporary-shelter-location {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.3;
}

.temporary-shelter-location-localizado {
  color: #166534;
  background: #dcfce7;
}

.temporary-shelter-location-centro_municipio {
  color: #1e40af;
  background: #dbeafe;
}

.temporary-shelter-location-pendente,
.temporary-shelter-location-nao_localizado,
.temporary-shelter-location-fora_municipio,
.temporary-shelter-location-malha_ausente,
.temporary-shelter-location-municipio_nao_encontrado,
.temporary-shelter-location-erro {
  color: #92400e;
  background: #fef3c7;
}

.temporary-shelter-popup {
  min-width: 260px;
}

.temporary-shelter-popup-center,
.temporary-shelter-popup-located {
  margin: 10px 0;
  padding: 8px 10px;
  border-radius: 7px;
  font-size: 12px;
}

.temporary-shelter-popup-center {
  border-left: 4px solid #2563eb;
  background: #eff6ff;
  color: #1e3a8a;
}

.temporary-shelter-popup-located {
  border-left: 4px solid #15803d;
  background: #f0fdf4;
  color: #14532d;
}

.temporary-shelter-popup dl {
  display: grid;
  grid-template-columns: 82px 1fr;
  gap: 5px 8px;
  margin: 8px 0 0;
}

.temporary-shelter-popup dt {
  color: #64748b;
  font-weight: 600;
}

.temporary-shelter-popup dd {
  margin: 0;
}

.temporary-shelter-popup-action {
  margin-top: 10px;
}

.temporary-shelters-source-bar .section-heading {
  margin-bottom: 0;
}

.temporary-shelter-detail-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.temporary-shelter-detail-metric-source {
  border-color: #fdba74;
  background: #fff7ed;
  color: #9a3412;
}

.temporary-shelter-detail-metric-people {
  border-color: #86efac;
  background: #f0fdf4;
  color: #166534;
}

.temporary-shelter-detail-metric-professionals {
  border-color: #a5b4fc;
  background: #eef2ff;
  color: #3730a3;
}

.temporary-shelter-detail-metric-location {
  border-color: #93c5fd;
  background: #eff6ff;
  color: #1e3a8a;
}

.temporary-shelter-detail-location {
  font-size: 18px;
}

.temporary-shelter-detail-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 20px;
  padding: 5px;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  background: #f8fafc;
}

.temporary-shelter-detail-tabs a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 44px;
  padding: 9px 14px;
  border-radius: 7px;
  color: #475569;
  font-size: 13px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
}

.temporary-shelter-detail-tabs a:hover {
  color: #b84424;
  background: #fff7f3;
}

.temporary-shelter-detail-tabs a.is-active {
  color: #b83f1f;
  background: #fff;
  box-shadow: 0 1px 4px rgba(15, 23, 42, 0.12);
}

.temporary-shelter-detail-tabs span {
  display: inline-grid;
  min-width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 999px;
  background: #e2e8f0;
  color: #334155;
  font-size: 11px;
}

.temporary-shelter-detail-tabs a.is-active span {
  background: #ef5b32;
  color: #fff;
}

.temporary-shelter-tab-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.temporary-shelter-tab-intro h2,
.temporary-shelter-tab-intro p {
  margin: 0;
}

.temporary-shelter-tab-intro p {
  margin-top: 4px;
}

.temporary-shelter-guidance-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 24px;
  overflow: hidden;
  border-color: #d7e4f2;
  background: linear-gradient(135deg, #f8fbff 0%, #fff 60%, #fff5ef 100%);
}

.temporary-shelter-guidance-hero h2,
.temporary-shelter-guidance-hero p {
  margin: 0;
}

.temporary-shelter-guidance-hero h2 {
  margin-top: 4px;
  color: #172033;
  font-size: 1.35rem;
}

.temporary-shelter-guidance-hero p {
  max-width: 820px;
  margin-top: 7px;
}

.temporary-shelter-guidance-hero-actions {
  flex: 0 0 auto;
}

.temporary-shelter-guidance-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.temporary-shelter-guidance-summary article {
  display: flex;
  align-items: baseline;
  gap: 9px;
  padding: 14px 17px;
}

.temporary-shelter-guidance-summary strong {
  color: #b83f1f;
  font-size: 1.45rem;
}

.temporary-shelter-guidance-summary span {
  color: #667185;
  font-size: .78rem;
  font-weight: 700;
}

.temporary-shelter-guidance-priorities {
  border-left: 4px solid #c9362b;
  background: #fff9f7;
}

.temporary-shelter-guidance-priorities .section-heading {
  margin-bottom: 12px;
}

.temporary-shelter-guidance-priorities ul {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 20px;
  margin: 0;
  padding-left: 20px;
}

.temporary-shelter-guidance-priorities li {
  color: #5f2e26;
  font-size: .8rem;
  line-height: 1.45;
}

.temporary-shelter-guidance-layout {
  display: grid;
  grid-template-columns: minmax(230px, 270px) minmax(0, 1fr);
  align-items: start;
  gap: 14px;
}

.temporary-shelter-guidance-index {
  position: sticky;
  top: 12px;
  display: grid;
  gap: 7px;
  padding: 12px;
}

.temporary-shelter-guidance-index > .ops-kicker {
  padding: 2px 5px 5px;
}

.temporary-shelter-guidance-index a {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 2px 8px;
  padding: 10px;
  border: 1px solid #e5e9ef;
  border-radius: 8px;
  color: #354052;
  text-decoration: none;
}

.temporary-shelter-guidance-index a:hover {
  border-color: #f1b8a8;
  background: #fff8f5;
}

.temporary-shelter-guidance-index a > span {
  display: grid;
  grid-row: 1 / 3;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #eef2f6;
  color: #586477;
  font-size: .72rem;
  font-weight: 800;
}

.temporary-shelter-guidance-index strong {
  font-size: .78rem;
}

.temporary-shelter-guidance-index small {
  color: #7a8494;
  font-size: .68rem;
  line-height: 1.35;
}

.temporary-shelter-guidance-content {
  min-width: 0;
}

.temporary-shelter-guidance-section {
  --guidance-accent: #d39b00;
  --guidance-soft: #fff9df;
  scroll-margin-top: 14px;
  overflow: hidden;
  border-top: 4px solid var(--guidance-accent);
}

.temporary-shelter-guidance-section.guidance-tone-people {
  --guidance-accent: #dd7656;
  --guidance-soft: #fff2ec;
}

.temporary-shelter-guidance-section.guidance-tone-animals {
  --guidance-accent: #31915c;
  --guidance-soft: #eef9f2;
}

.temporary-shelter-guidance-section > header {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  margin-bottom: 18px;
}

.temporary-shelter-guidance-section > header h2,
.temporary-shelter-guidance-section > header p {
  margin: 0;
}

.temporary-shelter-guidance-section > header h2 {
  margin-top: 3px;
  font-size: 1.12rem;
}

.temporary-shelter-guidance-section > header p {
  margin-top: 5px;
  color: #6b7586;
  font-size: .78rem;
}

.temporary-shelter-guidance-section-number {
  display: grid;
  flex: 0 0 34px;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 50%;
  background: var(--guidance-accent);
  color: #fff;
  font-size: .82rem;
  font-weight: 900;
}

.temporary-shelter-guidance-checklist {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: shelter-guidance-item;
}

.temporary-shelter-guidance-item {
  position: relative;
  display: grid;
  grid-template-columns: minmax(235px, .9fr) minmax(0, 1.35fr);
  overflow: hidden;
  border: 1px solid #e0e5ec;
  border-radius: 9px;
  background: #fff;
  counter-increment: shelter-guidance-item;
}

.temporary-shelter-guidance-item::before {
  content: counter(shelter-guidance-item);
  position: absolute;
  top: 16px;
  left: 14px;
  display: grid;
  width: 27px;
  height: 27px;
  place-items: center;
  border-radius: 50%;
  background: var(--guidance-accent);
  color: #fff;
  font-size: .72rem;
  font-weight: 900;
}

.temporary-shelter-guidance-question {
  padding: 15px 16px 15px 53px;
}

.temporary-shelter-guidance-question > span,
.temporary-shelter-guidance-advice > strong {
  color: #788293;
  font-size: .64rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.temporary-shelter-guidance-question h3 {
  margin: 4px 0 0;
  color: #243044;
  font-size: .82rem;
  line-height: 1.42;
}

.temporary-shelter-guidance-advice {
  padding: 15px 17px;
  border-left: 1px solid #e1e6ec;
  background: var(--guidance-soft);
}

.temporary-shelter-guidance-advice > strong {
  color: var(--guidance-accent);
}

.temporary-shelter-guidance-advice p {
  margin: 5px 0 0;
  color: #465165;
  font-size: .76rem;
  line-height: 1.52;
}

.temporary-shelter-guidance-print-note {
  display: none;
}

.temporary-shelter-guidance-source {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-color: #dce3ec;
  background: #f8fafc;
}

.temporary-shelter-guidance-source h2,
.temporary-shelter-guidance-source p {
  margin: 0;
}

.temporary-shelter-guidance-source h2 {
  margin-top: 3px;
  font-size: 1rem;
}

.temporary-shelter-guidance-source p,
.temporary-shelter-guidance-source address {
  margin-top: 4px;
  color: #687386;
  font-size: .75rem;
}

.temporary-shelter-guidance-source address {
  flex: 0 0 auto;
  font-style: normal;
  line-height: 1.55;
  text-align: right;
}

.temporary-shelter-registration-form {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) auto;
  align-items: end;
  gap: 12px;
  margin-bottom: 18px;
  padding: 14px;
  border: 1px solid #fed7c8;
  border-radius: 9px;
  background: #fff8f5;
}

.temporary-shelter-professional-form {
  grid-template-columns: minmax(220px, 0.8fr) minmax(260px, 1fr) minmax(260px, 1fr) auto;
}

.temporary-shelter-registration-form .field {
  margin: 0;
}

.temporary-shelter-registration-form input {
  width: 100%;
}

.temporary-shelter-register-table td {
  vertical-align: top;
}

.temporary-shelter-register-table form {
  margin: 0;
}

.coordinate-reason-field {
  display: grid;
  gap: 6px;
  margin-top: 14px;
}

.coordinate-reason-field textarea {
  width: 100%;
  min-height: 82px;
  padding: 9px 11px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
  color: var(--sie-text);
  resize: vertical;
}

.coordinate-reason-field textarea:focus {
  border-color: var(--sie-primary);
  box-shadow: 0 0 0 3px var(--sie-primary-soft);
  outline: 0;
}

.coordinate-validation-notice {
  margin-top: 14px;
}

/* Planos de ação vinculados ao hospital */
.hospital-action-plans {
  scroll-margin-top: 18px;
  border-top: 3px solid #2563eb;
}

.hospital-plan-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.hospital-plan-summary span {
  display: flex;
  align-items: baseline;
  gap: 7px;
  padding: 10px 12px;
  border: 1px solid #dbe3ee;
  border-radius: 8px;
  background: #f8fafc;
  color: #475569;
  font-size: 12px;
}

.hospital-plan-summary strong {
  color: #0f172a;
  font-size: 18px;
}

.hospital-plan-summary .is-critical {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.hospital-plans-table td small {
  display: block;
  margin-top: 3px;
  color: var(--sie-muted);
}

.hospital-plan-overdue {
  color: #b91c1c !important;
  font-weight: 700;
}

.action-plan-hospital-context {
  display: grid;
  gap: 3px;
  padding: 12px 14px;
  border: 1px solid #bfdbfe;
  border-left: 4px solid #2563eb;
  border-radius: 8px;
  background: #eff6ff;
}

.action-plan-hospital-context span,
.action-plan-hospital-context small {
  color: #475569;
  font-size: 11px;
}

.action-plan-hospital-context strong {
  color: #1e3a8a;
  font-size: 16px;
}

.action-plan-hospital-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  border-left: 4px solid #2563eb;
}

.action-plan-hospital-hero h2,
.action-plan-hospital-hero p {
  margin-bottom: 0;
}

@media (max-width: 900px) {
  .hospital-plan-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .hospital-plan-summary {
    grid-template-columns: 1fr;
  }

  .action-plan-hospital-hero {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (max-width: 1280px) {
  .temporary-shelters-metrics {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .temporary-shelters-filters {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
  }

  .temporary-shelter-detail-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .temporary-shelter-professional-form {
    grid-template-columns: repeat(2, minmax(220px, 1fr));
  }

  .temporary-shelter-guidance-layout {
    grid-template-columns: 1fr;
  }

  .temporary-shelter-guidance-index {
    position: static;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .temporary-shelter-guidance-index > .ops-kicker {
    grid-column: 1 / -1;
  }
}

@media (max-width: 760px) {
  .temporary-shelters-metrics,
  .temporary-shelters-filters {
    grid-template-columns: 1fr;
  }

  .temporary-shelters-map {
    min-height: 420px;
  }

  .temporary-shelter-detail-metrics,
  .temporary-shelter-detail-tabs,
  .temporary-shelter-registration-form,
  .temporary-shelter-professional-form {
    grid-template-columns: 1fr;
  }

  .temporary-shelter-registration-form .filter-actions,
  .temporary-shelter-registration-form .btn {
    width: 100%;
  }

  .temporary-shelter-guidance-hero,
  .temporary-shelter-guidance-source {
    align-items: stretch;
    flex-direction: column;
  }

  .temporary-shelter-guidance-hero-actions .btn {
    width: 100%;
  }

  .temporary-shelter-guidance-summary,
  .temporary-shelter-guidance-priorities ul,
  .temporary-shelter-guidance-index,
  .temporary-shelter-guidance-item {
    grid-template-columns: 1fr;
  }

  .temporary-shelter-guidance-advice {
    border-top: 1px solid #e1e6ec;
    border-left: 0;
  }

  .temporary-shelter-guidance-source address {
    text-align: left;
  }
}

@media (max-width: 480px) {
  .temporary-shelter-module-tabs {
    grid-template-columns: 1fr;
  }
}

.power-outages-frame > iframe {
  background: #fff;
}

.power-outages-loading {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 24px;
  color: var(--sie-muted);
  text-align: center;
}

.power-outages-loading strong {
  color: var(--sie-text);
  font-size: 15px;
}

.power-outages-spinner {
  width: 30px;
  height: 30px;
  border: 3px solid rgba(234, 88, 12, 0.18);
  border-top-color: var(--sie-primary);
  border-radius: 50%;
  animation: power-outages-spin 0.8s linear infinite;
}

.power-outages-frame.is-loaded .power-outages-loading {
  display: none;
}

.power-outages-source-note {
  margin: 10px 2px 0;
  font-size: 11px;
}

.power-outages-notice {
  margin-bottom: 12px;
}

@keyframes power-outages-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 760px) {
  .power-outages-frame {
    min-height: 620px;
  }

}

.samu-map {
  min-height: 580px;
}

.samu-filter-bar {
  grid-template-columns: minmax(250px, 1.5fr) minmax(180px, 0.8fr) minmax(240px, 1.2fr) auto;
}

.samu-map-actions {
  align-items: center;
}

.samu-legend,
.samu-classification {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.samu-legend {
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.samu-legend i,
.samu-classification i {
  display: inline-block;
  width: 11px;
  height: 11px;
  flex: 0 0 11px;
  border-radius: 50%;
  background: #475569;
}

.samu-class-001 { background: #64748b !important; }
.samu-class-002 { background: #2563eb !important; }
.samu-class-003 { background: #dc2626 !important; }
.samu-class-006 { background: #ea580c !important; }
.samu-class-007 { background: #7c3aed !important; }
.samu-class-008 { background: #d97706 !important; }
.samu-class-010 { background: #16a34a !important; }
.samu-class-012 { background: #6d28d9 !important; }
.samu-class-other { background: #475569 !important; }

.samu-popup {
  min-width: 250px;
}

.samu-popup-classification {
  display: block;
  margin: 9px 0;
  padding: 6px 8px;
  border-left: 4px solid #475569;
  border-radius: 4px;
  background: var(--sie-soft);
  font-weight: 700;
}

.samu-popup dl {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 9px;
  margin: 8px 0 0;
}

.samu-popup dt {
  color: var(--sie-muted);
  font-weight: 700;
}

.samu-popup dd {
  margin: 0;
}

.blood-donation-summary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.blood-donation-source-value {
  font-size: clamp(22px, 3vw, 32px);
}

.blood-donation-filters {
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) minmax(220px, 1fr) auto;
  gap: 10px 14px;
  align-items: end;
  margin-bottom: 16px;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}

.blood-donation-filters label {
  display: grid;
  gap: 6px;
  margin: 0;
}

.blood-donation-filters label > span {
  color: var(--sie-text);
  font-size: 11px;
  font-weight: 700;
}

.blood-donation-filters input,
.blood-donation-filters select {
  width: 100%;
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  background: #fff;
  color: var(--sie-text);
  font: inherit;
  font-size: 13px;
  line-height: 1.3;
  transition: border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}

.blood-donation-filters input::placeholder {
  color: #94a3b8;
}

.blood-donation-filters input:hover,
.blood-donation-filters select:hover {
  border-color: #94a3b8;
}

.blood-donation-filters input:focus,
.blood-donation-filters select:focus {
  border-color: var(--sie-primary);
  box-shadow: 0 0 0 3px var(--sie-primary-soft);
  outline: 0;
}

.blood-donation-filters .filter-actions {
  gap: 8px;
  margin: 0;
}

.blood-donation-filters .btn {
  min-height: 42px;
  white-space: nowrap;
}

.blood-donation-map {
  min-height: 590px;
}

.blood-donation-marker {
  display: grid;
  place-items: center;
  box-sizing: border-box;
  border: 0;
  background: transparent;
  filter: drop-shadow(0 4px 4px rgb(15 23 42 / 35%));
}

.blood-donation-marker span {
  display: grid;
  place-items: center;
  width: 38px;
  height: 46px;
}

.blood-donation-marker svg {
  display: block;
  width: 38px;
  height: 46px;
  overflow: visible;
}

.blood-marker-pin {
  fill: #b91c1c;
  stroke: #fff;
  stroke-width: 2.4px;
}

.blood-marker-drop {
  fill: #fff;
}

.blood-marker-cross {
  fill: #b91c1c;
}

.blood-donation-marker:hover {
  z-index: 1000 !important;
  filter: drop-shadow(0 5px 6px rgb(15 23 42 / 45%));
}

.blood-donation-marker:hover .blood-marker-pin {
  fill: #991b1b;
}

.blood-donation-popup strong {
  display: inline-block;
  margin-bottom: 5px;
  color: #991b1b;
}

.blood-donation-popup a {
  display: inline-block;
  margin-top: 7px;
  font-weight: 700;
}

.blood-donation-source-note {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 12px;
  margin-top: 12px;
  padding: 10px 12px;
  border-left: 4px solid #b91c1c;
  border-radius: 5px;
  background: #fff7f7;
  color: var(--sie-muted);
  font-size: 13px;
}

[data-blood-donation-row] {
  cursor: pointer;
}

@media (max-width: 900px) {
  .blood-donation-summary,
  .blood-donation-filters {
    grid-template-columns: 1fr;
  }

  .blood-donation-map {
    min-height: 480px;
  }
}

.filter-bar label,
.field {
  display: grid;
  gap: 6px;
  margin: 0;
  font-weight: 700;
}

.field.is-required > span:first-child::after,
.field:has(input[required]) > span:first-child::after,
.field:has(select[required]) > span:first-child::after,
.field:has(textarea[required]) > span:first-child::after {
  content: " *";
  color: var(--sie-red);
  font-weight: 800;
}

.filter-bar input,
.filter-bar select,
.field input,
.field select,
.field textarea {
  min-height: 38px;
  width: 100%;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  padding: 7px 10px;
  background: #fff;
  color: var(--sie-text);
  font-size: 0.95rem;
  font-weight: 400;
}

.filter-bar input:focus,
.filter-bar select:focus,
.field input:focus,
.field select:focus,
.field textarea:focus,
.login-form input:focus {
  border-color: var(--sie-primary);
  box-shadow: 0 0 0 3px var(--sie-primary-soft);
  outline: 0;
}

.field textarea {
  min-height: 96px;
  resize: vertical;
}

.inline-note {
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: var(--sie-primary-soft);
  color: var(--sie-text);
  font-size: 12px;
  font-weight: 600;
}

.readonly-field {
  display: grid;
  gap: 3px;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #f8fafc;
  color: var(--sie-text);
  font-weight: 600;
}

.readonly-field small {
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 500;
}

.field select[multiple] {
  min-height: 150px;
  padding: 6px;
}

.field select[multiple] option {
  padding: 5px 7px;
}

.municipality-search {
  position: relative;
  width: 100%;
  min-width: 0;
  font-weight: 400;
}

.municipality-search-input {
  width: 100%;
  min-height: 38px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  padding: 7px 34px 7px 10px;
  background: #fff;
  color: var(--sie-text);
  font: inherit;
}

.municipality-search-input:focus {
  border-color: var(--sie-primary);
  box-shadow: 0 0 0 3px var(--sie-primary-soft);
  outline: 0;
}

.municipality-search::after {
  position: absolute;
  top: 11px;
  right: 11px;
  color: var(--sie-muted);
  content: "⌕";
  font-size: 17px;
  line-height: 1;
  pointer-events: none;
}

.municipality-search-panel {
  position: absolute;
  z-index: 1200;
  top: calc(100% + 4px);
  right: 0;
  left: 0;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(23, 43, 56, .18);
}

.municipality-search-panel[hidden] { display: none; }

.municipality-search-results {
  max-height: 260px;
  overflow-y: auto;
  padding: 4px;
}

.municipality-search-option {
  display: block;
  width: 100%;
  padding: 8px 9px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: var(--sie-text);
  cursor: pointer;
  font-size: 13px;
  line-height: 1.3;
  text-align: left;
}

.municipality-search-option:hover,
.municipality-search-option.is-active {
  background: var(--sie-primary-soft);
  color: var(--sie-primary-dark);
}

.municipality-search-status {
  display: block;
  padding: 6px 10px;
  border-top: 1px solid var(--sie-line);
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 500;
}

.municipality-search-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.public-vigidesastres-page {
  width: 100%;
  max-width: none;
}

.public-form-topbar {
  display: flex;
  justify-content: flex-end;
}

.vigidesastres-form {
  width: 100%;
  max-width: none;
  padding: 22px;
}

.vigidesastres-form .helper-panel {
  padding: 18px;
}

.vigidesastres-form .helper-panel h1 {
  margin: 6px 0 4px;
  font-size: 22px;
  line-height: 1.2;
}

.vigidesastres-intro {
  display: grid;
  gap: 9px;
  margin-top: 10px;
  max-width: 1180px;
}

.vigidesastres-intro p {
  margin: 0;
  color: var(--sie-ink);
  font-size: 13px;
  font-weight: 500;
  line-height: 1.55;
}

.vigidesastres-intro a {
  color: var(--sie-primary);
  font-weight: 700;
  text-decoration: none;
}

.vigidesastres-intro a:hover {
  text-decoration: underline;
}

.vigidesastres-contact-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  align-items: center;
}

.vigidesastres-form .form-section {
  padding: 18px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.vigidesastres-form .form-section:last-of-type {
  padding-bottom: 18px;
  border-bottom: 1px solid var(--sie-line);
}

.vigidesastres-form .form-grid {
  grid-template-columns: repeat(4, minmax(220px, 1fr));
}

.vigidesastres-form .span-2 {
  grid-column: span 2;
}

.vigidesastres-form textarea {
  min-height: 112px;
  resize: vertical;
}

.vigidesastres-event-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: 8px;
}

.choice-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  min-height: 38px;
  padding: 8px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
  color: var(--sie-ink);
  font-size: 13px;
  font-weight: 600;
}

.choice-row input {
  width: 16px;
  height: 16px;
  min-height: 0;
  margin: 1px 0 0;
  flex: 0 0 auto;
}

.unified-report-form {
  max-width: 1120px;
  margin: 0 auto;
}

.unified-report-header {
  padding: 4px 2px 10px;
}

.unified-report-header h1 {
  margin: 5px 0 4px;
  font-size: clamp(26px, 4vw, 38px);
  line-height: 1.1;
}

.unified-report-header p {
  max-width: 760px;
  margin: 0;
  color: var(--sie-muted);
  font-size: 15px;
  line-height: 1.5;
}

.unified-identity-summary {
  margin: 0;
}

.unified-report-form > [data-damage-sections] {
  display: grid;
  gap: 16px;
}

.unified-report-form > [data-damage-sections][hidden] {
  display: none;
}

.unified-report-form .section-heading > div {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  column-gap: 8px;
}

.unified-report-form .section-heading h2,
.unified-report-form .section-heading p {
  grid-column: 2;
}

.unified-section-number {
  display: grid;
  grid-row: 1 / span 2;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--sie-primary);
  color: #fff;
  font-size: 12px;
  font-weight: 800;
}

.unified-fieldset {
  min-width: 0;
  margin: 15px 0 0;
  padding: 0;
  border: 0;
}

.unified-fieldset > legend {
  margin-bottom: 8px;
  color: var(--sie-ink);
  font-size: 13px;
  font-weight: 750;
}

.unified-purpose-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.unified-choice-card {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
}

.unified-choice-card:has(input:checked) {
  border-color: var(--sie-primary);
  box-shadow: inset 3px 0 0 var(--sie-primary);
}

.unified-choice-card input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  min-height: 0;
  margin-top: 1px;
}

.unified-choice-card > span {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.unified-choice-card small,
.unified-picker-heading small {
  color: var(--sie-muted);
  font-weight: 500;
  line-height: 1.4;
}

.unified-short-field {
  max-width: 520px;
}

.unified-establishment-selector {
  display: grid;
  gap: 10px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--sie-line);
}

.unified-establishment-selector[hidden],
.unified-establishment-details[hidden],
.unified-shelter-details[hidden],
.unified-other-damage[hidden] {
  display: none;
}

.unified-picker-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 360px);
  gap: 16px;
  align-items: end;
}

.unified-picker-heading > div {
  display: grid;
  gap: 4px;
}

.unified-establishment-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  max-height: 310px;
  overflow: auto;
}

.unified-establishment-option {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-width: 0;
  padding: 11px;
  border: 1px solid var(--sie-line);
  border-radius: 7px;
  background: #fff;
  cursor: pointer;
}

.unified-establishment-option:has(input:checked) {
  border-color: var(--sie-primary);
}

.unified-establishment-option input {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  min-height: 0;
  margin: 2px 0 0;
}

.unified-establishment-option > span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.unified-establishment-option strong {
  overflow-wrap: anywhere;
  font-size: 13px;
}

.unified-establishment-option small,
.unified-selected-count {
  color: var(--sie-muted);
  font-size: 11px;
}

.unified-selected-count {
  margin: 0;
  font-weight: 700;
}

.unified-establishment-details {
  display: grid;
  gap: 14px;
  margin-top: 16px;
}

.unified-establishment-card {
  display: grid;
  gap: 15px;
  padding: 16px;
  border: 1px solid var(--sie-line-strong, #cbd5df);
  border-radius: 9px;
  background: #fff;
}

.unified-establishment-card-heading {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
}

.unified-establishment-card-heading small {
  color: var(--sie-primary);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.unified-establishment-card-heading h3 {
  margin: 3px 0 2px;
  font-size: 17px;
  line-height: 1.25;
}

.unified-establishment-card-heading p {
  margin: 0;
  color: var(--sie-muted);
  font-size: 12px;
}

.unified-damage-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.unified-loss-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

.vigidesastres-inline-form {
  display: grid;
  gap: 16px;
  margin-top: 18px;
}

.vigidesastres-inline-form .unified-fieldset {
  margin-top: 0;
}

.unified-form-actions {
  position: sticky;
  bottom: 0;
  z-index: 5;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 -5px 20px rgba(33, 45, 59, .06);
}

.public-unified-report-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 16px;
  align-items: center;
  margin-bottom: 14px;
  padding: 18px;
  border-color: var(--sie-primary);
  color: var(--sie-ink);
  text-decoration: none;
}

.public-unified-report-action strong,
.public-unified-report-action small {
  grid-column: 1;
}

.public-unified-report-action small {
  color: var(--sie-muted);
  line-height: 1.45;
}

.public-unified-report-action > span {
  grid-column: 2;
  grid-row: 1 / span 2;
  color: var(--sie-primary);
  font-size: 24px;
}

.basic-unit-problem-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.basic-unit-problem-fieldset > legend {
  width: 100%;
  margin: 0 0 6px;
  padding: 0;
  color: var(--sie-ink);
  font-size: 13px;
  font-weight: 700;
}

.basic-unit-problem-fieldset[aria-required="true"] > legend::after {
  content: " *";
  color: var(--sie-red);
}

.basic-unit-problem-fieldset .field-hint {
  margin: 0 0 10px;
}

.basic-unit-problem-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(200px, 1fr));
  gap: 8px;
}

.basic-unit-problem-grid .choice-row {
  cursor: pointer;
}

.basic-unit-problem-grid .choice-row:has(input:checked) {
  border-color: var(--sie-primary);
  background: #fdf3ef;
}

.basic-unit-problem-grid .choice-row {
  min-height: 84px;
  padding: 11px 12px;
}

.choice-row-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.choice-row-copy strong {
  color: var(--sie-ink);
  font-size: 13px;
  line-height: 1.3;
}

.choice-row-copy small {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.4;
}

.basic-unit-severity-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.basic-unit-severity-fieldset > legend {
  width: 100%;
  margin: 0 0 6px;
  padding: 0;
  color: var(--sie-ink);
  font-size: 13px;
  font-weight: 700;
}

.basic-unit-severity-fieldset[aria-required="true"] > legend::after {
  content: " *";
  color: var(--sie-red);
}

.basic-unit-severity-fieldset .field-hint {
  margin: 0 0 10px;
}

.basic-unit-severity-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.basic-unit-severity-option {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-width: 0;
  min-height: 82px;
  padding: 11px 12px;
  border: 1px solid var(--sie-line);
  border-left: 4px solid #8792a2;
  border-radius: 7px;
  background: #fff;
  cursor: pointer;
}

.basic-unit-severity-option input {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  min-height: 0;
  margin: 2px 0 0;
}

.basic-unit-severity-option > span {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.basic-unit-severity-option strong {
  color: var(--sie-ink);
  font-size: 13px;
  line-height: 1.3;
}

.basic-unit-severity-option small {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.4;
}

.basic-unit-severity-option.severity-media { border-left-color: #cf9700; }
.basic-unit-severity-option.severity-alta { border-left-color: #dc6b20; }
.basic-unit-severity-option.severity-critica { border-left-color: #c9362b; }

.basic-unit-severity-option:has(input:checked) {
  border-color: var(--sie-primary);
  border-left-color: var(--sie-primary);
  background: #fdf3ef;
}

.basic-unit-severity-option:focus-within {
  outline: 3px solid rgba(229, 83, 45, .2);
  outline-offset: 1px;
}

.basic-unit-problem-list {
  display: grid;
  gap: 4px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.basic-unit-problem-list li {
  position: relative;
  padding-left: 12px;
}

.basic-unit-problem-list li::before {
  content: "";
  position: absolute;
  top: .55em;
  left: 0;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--sie-primary);
}

.basic-unit-event-form,
.basic-unit-event-form > *,
.basic-unit-event-form .field,
.basic-unit-event-form .public-form-identity,
.basic-unit-event-form .public-form-identity-fields,
.basic-unit-event-form input,
.basic-unit-event-form select,
.basic-unit-event-form textarea {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 1180px) {
  .basic-unit-problem-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .river-route-critical-stations > div { grid-template-columns: 1fr; }
  .river-route-operational-kpis,
  .river-route-source-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .basic-unit-event-form {
    grid-template-columns: minmax(0, 1fr);
  }

  .basic-unit-event-form > .span-2,
  .basic-unit-event-form > .span-3,
  .basic-unit-event-form > .form-actions {
    grid-column: 1 / -1;
  }

  .basic-unit-problem-grid {
    grid-template-columns: 1fr;
  }

  .basic-unit-severity-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1180px) {
  .vigidesastres-form .form-grid,
  .vigidesastres-event-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .public-vigidesastres-page {
    width: 100%;
  }

  .auth-shell:has(.public-vigidesastres-page) {
    align-items: stretch;
    justify-items: stretch;
    padding: 10px;
  }

  .vigidesastres-form {
    gap: 14px;
    padding: 12px;
  }

  .vigidesastres-form .helper-panel,
  .vigidesastres-form .form-section {
    padding: 14px;
  }

  .vigidesastres-form .form-grid,
  .vigidesastres-event-grid {
    grid-template-columns: 1fr;
  }

  .vigidesastres-form .span-2 {
    grid-column: span 1;
  }

  .vigidesastres-form .form-actions {
    align-items: stretch;
    flex-direction: column-reverse;
    gap: 8px;
  }

  .vigidesastres-form .form-actions .btn {
    width: 100%;
  }

  .unified-report-form {
    padding: 10px;
  }

  .unified-purpose-options,
  .unified-establishment-list,
  .unified-picker-heading,
  .unified-damage-grid,
  .unified-loss-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .vigidesastres-inline-form .form-actions .btn {
    width: 100%;
  }

  .unified-establishment-card {
    padding: 13px;
  }

  .unified-establishment-card-heading {
    align-items: flex-start;
  }

  .unified-identity-summary {
    align-items: flex-start;
    flex-direction: column;
  }
}

.check-line {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 38px;
  padding: 7px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
  font-weight: 600;
}

.check-line input {
  width: auto;
  min-height: 0;
  margin: 0;
}

.user-notification-group {
  display: grid;
  gap: 8px;
  margin: 10px 0 0;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: var(--sie-surface-soft, #f8fafc);
}

.user-notification-group legend {
  padding: 0 6px;
  color: var(--sie-text);
  font-size: 13px;
  font-weight: 800;
}

.user-form-responsibility-group > .field-hint {
  margin: 0 0 4px;
}

.user-form-responsibility-table {
  display: grid;
  gap: 1px;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: var(--sie-line);
}

.user-form-responsibility-header,
.user-form-responsibility-row {
  display: grid;
  grid-template-columns: minmax(260px, 1fr) minmax(145px, 180px) minmax(125px, 160px);
  align-items: stretch;
  background: #fff;
}

.user-form-responsibility-header {
  background: var(--sie-surface-soft, #f8fafc);
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.user-form-responsibility-header > span,
.user-form-responsibility-name,
.user-form-responsibility-option {
  display: flex;
  min-height: 46px;
  padding: 10px 12px;
  align-items: center;
  border-right: 1px solid var(--sie-line);
}

.user-form-responsibility-header > span:last-child,
.user-form-responsibility-option:last-child {
  border-right: 0;
}

.user-form-responsibility-name {
  align-items: flex-start;
  flex-direction: column;
  justify-content: center;
}

.user-form-responsibility-name small {
  margin-top: 2px;
}

.user-form-responsibility-option {
  gap: 8px;
  justify-content: center;
  color: var(--sie-text);
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.user-form-responsibility-option input {
  width: auto;
  min-height: 0;
  margin: 0;
}

@media (max-width: 760px) {
  .user-form-responsibility-header {
    display: none;
  }

  .user-form-responsibility-row {
    grid-template-columns: 1fr 1fr;
  }

  .user-form-responsibility-name {
    grid-column: 1 / -1;
    border-right: 0;
    border-bottom: 1px solid var(--sie-line);
  }

  .user-form-responsibility-option:last-child {
    border-left: 1px solid var(--sie-line);
  }
}

.field-hint {
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 500;
}

.lookup-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}

.lookup-row .btn {
  min-height: 36px;
  white-space: nowrap;
}

.password-generator-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
}

.password-generator-row .btn {
  min-height: 36px;
  white-space: nowrap;
}

.lookup-feedback {
  color: var(--sie-green);
  font-size: 12px;
  font-weight: 600;
}

.lookup-feedback-error {
  color: var(--sie-red);
}

.inline-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}

.coordinate-picker-field {
  gap: 8px;
}

.filter-actions,
.form-actions,
.row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.row-actions form {
  margin: 0;
}

.registration-denial-form {
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  align-items: center;
}

.registration-denial-form input {
  width: min(220px, 34vw);
  min-height: 28px;
  padding: 4px 8px;
  font-size: 11px;
}

.registration-request-meta,
.registration-status-detail,
.registration-request-result,
.registration-user-link {
  display: block;
  margin-top: 4px;
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.35;
}

.registration-request-result {
  max-width: 360px;
}

.registration-denial-reason {
  display: grid;
  gap: 4px;
  max-width: 420px;
  padding: 9px 10px;
  border: 1px solid #fecaca;
  border-left: 4px solid #dc2626;
  border-radius: 8px;
  background: #fff7f7;
  color: #7f1d1d;
  font-size: 11px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.registration-denial-reason strong {
  font-size: 10px;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.registration-validation-flags {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
}

.registration-validation-flags span {
  min-height: 20px;
  padding: 3px 7px;
  border-radius: 999px;
  background: #ecfdf3;
  color: #027a48;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.2;
}

.registration-diagnostics {
  display: grid;
  gap: 6px;
  margin-top: 8px;
  max-width: 520px;
}

.registration-diagnostic {
  display: grid;
  gap: 3px;
  padding: 8px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fafafa;
  font-size: 11px;
  line-height: 1.35;
}

.registration-diagnostic strong {
  color: var(--sie-text);
  font-size: 11px;
}

.registration-diagnostic span,
.registration-diagnostic small {
  color: var(--sie-muted);
}

.registration-diagnostic-ok {
  border-color: rgba(0, 168, 70, 0.24);
  background: var(--sie-green-soft);
}

.registration-diagnostic-warning,
.registration-diagnostic-pending {
  border-color: rgba(183, 121, 31, 0.28);
  background: var(--sie-yellow-soft);
}

.registration-diagnostic-error {
  border-color: rgba(210, 31, 43, 0.26);
  background: var(--sie-red-soft);
}

.registration-cnes-json {
  margin-top: 8px;
  max-width: 520px;
  font-size: 11px;
}

.registration-cnes-json summary {
  cursor: pointer;
  color: var(--sie-primary);
  font-weight: 800;
}

.registration-cnes-json pre {
  max-height: 260px;
  overflow: auto;
  margin: 6px 0 0;
  padding: 10px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #111827;
  color: #e5e7eb;
  font-size: 10px;
  line-height: 1.4;
  white-space: pre-wrap;
}

.registration-user-link {
  color: var(--sie-primary);
  font-weight: 800;
  text-decoration: none;
}

.registration-user-link:hover,
.registration-user-link:focus {
  text-decoration: underline;
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  width: 111.112vw;
  height: 111.112vh;
  z-index: 2000;
  display: grid;
  place-items: stretch;
  padding: 12px;
  background: rgba(15, 23, 42, 0.42);
}

.modal-backdrop[hidden] {
  display: none;
}

.modal-panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.25);
}

.modal-panel-wide {
  width: 100%;
}

.modal-backdrop-compact {
  place-items: center;
  padding: 24px;
}

.modal-backdrop-compact .modal-panel {
  width: min(100%, 1040px);
  height: auto;
  max-height: min(86vh, 760px);
}

.modal-backdrop-compact .modal-body {
  flex: 0 1 auto;
  max-height: calc(86vh - 150px);
}

.cadsus-modal-panel {
  max-width: 920px;
}

.lookup-modal-panel {
  max-width: 1180px;
}

.access-recertification-modal {
  z-index: 2200;
}

.access-recertification-modal-panel {
  width: min(100%, 680px) !important;
  max-height: min(90vh, 760px) !important;
}

.account-modal {
  z-index: 2250;
}

.account-modal-panel {
  width: min(100%, 720px) !important;
  max-height: min(90vh, 780px) !important;
}

.account-modal-body {
  gap: 16px;
}

.account-identity {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 13px;
  border: 1px solid var(--sie-line);
  border-radius: 9px;
  background: #f8fafc;
}

.account-identity > span:last-child {
  display: grid;
  min-width: 0;
  gap: 2px;
}

.account-identity strong,
.account-identity small {
  overflow-wrap: anywhere;
}

.account-identity strong {
  color: var(--sie-text);
  font-size: 13px;
}

.account-identity small {
  color: var(--sie-muted);
  font-size: 11px;
}

.account-identity-avatar {
  display: inline-grid !important;
  place-items: center;
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: var(--sie-primary);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
}

.account-tabs {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  padding: 4px;
  border: 1px solid var(--sie-line);
  border-radius: 9px;
  background: #f8fafc;
}

.account-tab {
  min-height: 38px;
  padding: 8px 12px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: var(--sie-muted);
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
}

.account-tab:hover,
.account-tab:focus-visible {
  color: var(--sie-primary);
  outline: none;
}

.account-tab.is-active {
  background: #fff;
  box-shadow: 0 1px 3px rgba(15, 23, 42, .12);
  color: var(--sie-primary);
}

.account-panel[hidden] {
  display: none;
}

.account-panel form,
.account-panel label > span,
.account-password-grid {
  display: grid;
}

.account-panel form {
  gap: 13px;
}

.account-panel label {
  display: grid;
  gap: 6px;
  margin: 0;
}

.account-panel label > span {
  gap: 2px;
  color: var(--sie-text);
  font-size: 11px;
  font-weight: 700;
}

.account-panel input[type="password"] {
  width: 100%;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid var(--sie-line-strong, #cbd5e1);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  font: inherit;
}

.account-panel input[type="password"]:focus {
  border-color: var(--sie-primary);
  box-shadow: 0 0 0 3px var(--sie-primary-soft);
  outline: none;
}

.account-password-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.account-form-help,
.account-notifications-intro,
.account-loading,
.account-notification-empty {
  margin: 0;
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.55;
}

.account-form-actions {
  display: flex;
  justify-content: flex-end;
  padding-top: 2px;
}

.account-feedback {
  padding: 9px 11px;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 11px;
  line-height: 1.5;
}

.account-feedback.is-success {
  border-color: #a7f3d0;
  background: #ecfdf5;
  color: #047857;
}

.account-feedback.is-error {
  border-color: #fecaca;
  background: #fef2f2;
  color: #b91c1c;
}

.account-notification-list {
  display: grid;
  gap: 13px;
}

.account-notification-list fieldset {
  display: grid;
  gap: 7px;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.account-notification-list legend {
  width: 100%;
  margin: 0 0 1px;
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.account-notification-option {
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: start;
  gap: 10px !important;
  padding: 10px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
}

.account-notification-option:hover {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
}

.account-notification-option input {
  width: 17px;
  height: 17px;
  margin-top: 2px;
  accent-color: var(--sie-primary);
}

.account-notification-option strong {
  font-size: 12px;
}

.account-notification-option small {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 400;
  line-height: 1.45;
}

@media (max-width: 620px) {
  .account-password-grid,
  .account-tabs {
    grid-template-columns: 1fr;
  }

  .account-modal-header {
    flex-direction: row;
  }
}

.access-recertification-modal-body {
  display: grid;
  gap: 14px;
  overflow-y: auto;
}

.access-recertification-modal-body > p {
  margin: 0;
  color: var(--sie-muted);
  line-height: 1.65;
}

.access-recertification-modal-summary,
.access-recertification-details {
  display: grid;
  gap: 8px;
}

.access-recertification-modal-summary > div,
.access-recertification-details > div {
  display: grid;
  gap: 3px;
  padding: 10px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}

.access-recertification-modal-summary span,
.access-recertification-details span {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
}

.access-recertification-responsibility {
  padding: 13px 15px;
  border-left: 4px solid var(--sie-primary);
  border-radius: 8px;
  background: var(--sie-primary-soft);
}

.access-recertification-responsibility ul {
  margin: 8px 0 0;
  padding-left: 18px;
}

.access-recertification-responsibility li + li {
  margin-top: 5px;
}

.access-recertification-page .login-content {
  overflow-y: auto;
}

.access-recertification-details {
  margin-bottom: 18px;
}

.access-recertification-acknowledgement {
  display: grid !important;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  padding: 13px;
  border: 1px solid var(--sie-primary-line);
  border-radius: 8px;
  background: var(--sie-primary-soft);
  line-height: 1.55;
}

.access-recertification-acknowledgement input {
  width: 18px !important;
  height: 18px;
  margin-top: 2px;
}

.user-access-recertification {
  padding: 16px;
  border: 1px solid var(--sie-line);
  border-radius: 10px;
  background: #fbfcfd;
}

.user-access-recertification .section-heading {
  margin-bottom: 14px;
}

.user-access-recertification-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 0 0 14px;
}

.user-access-recertification-summary > div {
  padding: 11px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.user-access-recertification-summary dt {
  color: var(--sie-muted);
  font-size: 10px;
  text-transform: uppercase;
}

.user-access-recertification-summary dd {
  margin: 5px 0 0;
  font-weight: 700;
}

.access-recertification-status-current {
  background: #ecfdf5;
  color: #047857;
}

.access-recertification-status-warning {
  background: #fff7ed;
  color: #c2410c;
}

.access-recertification-status-expired {
  background: #fef2f2;
  color: #b91c1c;
}

.user-account-audit {
  display: grid;
  gap: 16px;
}

.user-account-audit-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  margin: 0;
}

.user-account-audit-summary > div {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}

.user-account-audit-summary dt {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.user-account-audit-summary dd {
  margin: 5px 0 0;
  color: var(--sie-text);
  font-size: 13px;
  font-weight: 700;
}

.user-account-audit-table-wrap {
  margin: 0;
}

.user-account-audit-table {
  min-width: 900px;
}

.user-account-audit-table td {
  vertical-align: top;
}

.user-account-audit-table td > strong,
.user-account-audit-table td > small {
  display: block;
}

.user-account-audit-table td > small {
  margin-top: 3px;
  color: var(--sie-muted);
}

.user-account-audit-table .user-account-audit-actor-label {
  margin: 0 0 3px;
  color: #526778;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.user-account-audit-kind {
  display: inline-flex;
  margin-bottom: 5px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #e8f2fb;
  color: #12658e;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.user-account-audit-row.is-acesso .user-account-audit-kind {
  background: #fef3c7;
  color: #92400e;
}

.user-account-audit-row.is-aprovacao .user-account-audit-kind {
  background: #ecfdf5;
  color: #047857;
}

.user-account-audit-changes {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.user-account-audit-changes li {
  line-height: 1.45;
}

.user-account-audit-changes .audit-before {
  color: #8b5e68;
  text-decoration: line-through;
}

.user-account-audit-changes .audit-after {
  color: #17643b;
  font-weight: 700;
}

.user-account-audit-footnote {
  margin: 0;
}

@media (max-width: 720px) {
  .user-access-recertification-summary {
    grid-template-columns: 1fr;
  }

  .user-account-audit-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .user-account-audit-table {
    min-width: 760px;
  }
}

.modal-header,
.modal-actions {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  flex: 0 0 auto;
  padding: 18px 20px;
  border-bottom: 1px solid var(--sie-line);
}

.modal-header h2 {
  margin: 0;
  font-size: 18px;
}

.modal-header p {
  margin: 4px 0 0;
  color: var(--sie-muted);
  font-size: 13px;
}

.modal-body {
  display: grid;
  gap: 14px;
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 18px 20px;
}

.modal-actions {
  flex: 0 0 auto;
  justify-content: flex-end;
  border-top: 1px solid var(--sie-line);
  border-bottom: 0;
}

.operational-evidence-modal {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: auto;
  height: auto;
  z-index: 3200;
  padding: 14px;
}

.operational-evidence-panel {
  max-width: none;
  max-height: none;
}

.operational-evidence-body {
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}

.operational-action-modal {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  width: auto;
  height: auto;
  z-index: 3300;
  padding: 18px;
  place-items: center;
}

.operational-action-panel {
  width: min(1280px, calc(100vw - 36px));
  height: min(880px, calc(100vh - 36px));
  max-width: none;
}

.operational-action-body {
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
}

.operational-action-layout {
  display: grid;
  grid-template-columns: minmax(420px, 1fr) minmax(340px, 0.78fr);
  gap: 14px;
  min-height: 0;
}

.operational-action-main,
.operational-action-context {
  display: grid;
  align-content: start;
  gap: 12px;
  min-width: 0;
  overflow: auto;
  padding-right: 4px;
}

.operational-action-highlight,
.operational-action-checklist,
.operational-action-context > div {
  display: grid;
  gap: 9px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.operational-action-highlight {
  border-left: 4px solid var(--sie-primary);
  background: #fffaf7;
}

.operational-action-highlight strong {
  color: var(--sie-text);
  font-size: 16px;
  line-height: 1.25;
}

.operational-action-highlight p,
.operational-action-highlight small,
.operational-action-checklist p,
.operational-action-context p,
.operational-action-projection-list small {
  margin: 0;
  color: #374151;
  font-size: 12px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.operational-action-highlight small,
.operational-action-projection-list small {
  color: var(--sie-muted);
}

.operational-action-checklist h3,
.operational-action-context h3,
.operational-action-context h4 {
  margin: 0;
  color: var(--sie-text);
  font-size: 14px;
}

.operational-action-checklist .operational-action-list {
  margin: 0;
  padding-left: 20px;
}

.operational-action-checklist .operational-action-list li {
  padding: 8px 0;
  border-top: 1px solid #eef2f7;
}

.operational-action-checklist .operational-action-list li:first-child {
  border-top: 0;
}

.operational-action-checklist .operational-action-list strong,
.operational-action-projection-list strong {
  display: block;
  color: var(--sie-text);
  font-size: 13px;
}

.operational-action-context-list {
  display: grid;
  grid-template-columns: minmax(130px, auto) minmax(0, 1fr);
  gap: 7px 10px;
  margin: 0;
}

.operational-action-context-list dt {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.operational-action-context-list dd {
  margin: 0;
  color: var(--sie-text);
  font-size: 12px;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.operational-action-evidence-list,
.operational-action-projection-list {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.operational-action-alternative-list {
  display: grid;
  gap: 7px;
}

.operational-action-evidence-list li,
.operational-action-projection-list li {
  min-width: 0;
  padding: 9px;
  border: 1px solid var(--sie-line);
  border-radius: 7px;
  background: #fbfcfe;
}

.operational-evidence-summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(110px, 1fr));
  gap: 10px;
}

.operational-evidence-score-summary {
  grid-template-columns: repeat(4, minmax(130px, 1fr));
}

.operational-evidence-score-summary span:first-child {
  border-color: rgba(230, 98, 57, 0.34);
  border-left: 4px solid var(--sie-primary);
  background: #fffaf7;
}

.operational-evidence-summary span,
.operational-evidence-context-grid span {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--sie-line);
  border-radius: 7px;
  background: #fbfcfe;
}

.operational-evidence-summary strong,
.operational-evidence-context-grid strong {
  color: var(--sie-text);
  font-size: 17px;
  line-height: 1.1;
  overflow-wrap: anywhere;
}

.operational-evidence-summary small,
.operational-evidence-context-grid small {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.operational-evidence-layout {
  display: grid;
  grid-template-columns: minmax(360px, 0.84fr) minmax(520px, 1.16fr);
  gap: 14px;
  min-height: 0;
}

.operational-evidence-map-panel,
.operational-evidence-detail-panel {
  min-width: 0;
  min-height: 0;
}

.operational-evidence-map {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 560px;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #eef2f7;
}

.operational-evidence-map-empty {
  display: grid;
  height: 100%;
  min-height: 280px;
  place-items: center;
  padding: 24px;
  color: var(--sie-muted);
  text-align: center;
  font-size: 13px;
  font-weight: 800;
}

.operational-evidence-detail-panel {
  display: grid;
  align-content: start;
  gap: 12px;
  overflow: auto;
  padding-right: 4px;
}

.operational-evidence-note,
.operational-evidence-breakdown,
.operational-evidence-timeline,
.operational-evidence-list,
.operational-evidence-context {
  display: grid;
  gap: 9px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.operational-evidence-note {
  border-left: 4px solid var(--sie-primary);
  background: #fffaf7;
}

.operational-evidence-note h3,
.operational-evidence-breakdown h3,
.operational-evidence-timeline h3,
.operational-evidence-list h3,
.operational-evidence-context h3 {
  margin: 0;
  color: var(--sie-text);
  font-size: 14px;
}

.operational-evidence-note-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.operational-evidence-note p {
  margin: 0;
  color: var(--sie-text);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.operational-evidence-note small {
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.operational-evidence-primary-reason {
  padding-top: 8px;
  border-top: 1px solid rgba(230, 98, 57, 0.18);
  color: #475569 !important;
  font-size: 12px !important;
  font-weight: 500 !important;
}

.operational-score-intro {
  margin: 0;
  color: #475569;
  font-size: 12px;
  line-height: 1.45;
}

.operational-score-equation {
  padding: 11px 12px;
  border: 1px solid #bfdbfe;
  border-radius: 8px;
  background: #eff6ff;
  color: #0f3f6c;
  font-size: 15px;
  font-weight: 900;
  line-height: 1.35;
  text-align: center;
}

.operational-evidence-breakdown .score-driver {
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 5px 8px;
  padding: 9px;
}

.operational-evidence-breakdown .score-driver em {
  overflow: visible;
  white-space: normal;
  text-overflow: clip;
}

.operational-evidence-breakdown .score-driver strong {
  color: #047857;
}

.operational-evidence-breakdown .score-driver small {
  grid-column: 2 / -1;
}

.operational-score-counted-badge,
.operational-evidence-card-header .operational-evidence-score-state {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 22px;
  padding: 2px 7px;
  border-radius: 999px;
  background: #dcfce7;
  color: #047857;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: 0.03em;
  white-space: nowrap;
}

.operational-evidence-driver-list {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 18px;
  color: #475569;
  font-size: 11px;
  line-height: 1.35;
}

.operational-evidence-timeline-list {
  display: grid;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.operational-evidence-timeline-list li {
  position: relative;
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 0 0 12px 18px;
  border-left: 2px solid #e5e7eb;
}

.operational-evidence-timeline-list li::before {
  content: "";
  position: absolute;
  top: 2px;
  left: -5px;
  width: 8px;
  height: 8px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: var(--sie-primary);
  box-shadow: 0 0 0 1px var(--sie-primary-line);
}

.operational-evidence-timeline-list li:last-child {
  padding-bottom: 0;
  border-left-color: transparent;
}

.operational-evidence-timeline-list strong {
  color: var(--sie-text);
  font-size: 12px;
}

.operational-evidence-timeline-list p {
  margin: 0;
  color: #374151;
  font-size: 11px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.operational-evidence-timeline-list small {
  color: var(--sie-muted);
  font-size: 10px;
  overflow-wrap: anywhere;
}

.operational-evidence-card {
  display: grid;
  gap: 7px;
  min-width: 0;
  padding: 10px;
  border: 1px solid #e5e7eb;
  border-radius: 7px;
  background: #fbfcfe;
}

.operational-evidence-card.is-scoring {
  border-color: #86efac;
  border-left: 4px solid #16a34a;
  background: #f7fef9;
}

.operational-evidence-card.is-context {
  border-color: #dbe3ec;
  background: #f8fafc;
}

.operational-evidence-card.is-context .operational-evidence-score-state {
  background: #e2e8f0;
  color: #475569;
}

.operational-evidence-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.operational-evidence-card-header span {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.operational-evidence-card-header strong {
  color: #334155;
  font-size: 11px;
  text-align: right;
}

.operational-evidence-card p {
  margin: 0;
  color: #1f2937;
  font-size: 12px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.operational-evidence-card small {
  color: var(--sie-muted);
  font-size: 11px;
  overflow-wrap: anywhere;
}

.operational-evidence-card .operational-evidence-score-note {
  padding: 7px 8px;
  border-radius: 6px;
  background: #ecfdf5;
  color: #166534;
  font-weight: 800;
  line-height: 1.4;
}

.operational-evidence-card.is-context .operational-evidence-score-note {
  background: #eef2f7;
  color: #475569;
}

.operational-evidence-source {
  line-height: 1.35;
}

.operational-evidence-no-score {
  margin: 0;
  padding: 10px;
  border: 1px solid #cbd5e1;
  border-radius: 7px;
  background: #f8fafc;
  color: #475569;
  font-size: 12px;
}

.operational-evidence-disclosure {
  min-width: 0;
}

.operational-evidence-disclosure > summary {
  cursor: pointer;
  color: #0f4c75;
  font-size: 12px;
  font-weight: 900;
  line-height: 1.4;
}

.operational-evidence-timeline .operational-evidence-disclosure > summary,
.operational-evidence-explainability .operational-evidence-disclosure > summary {
  font-size: 13px;
}

.operational-evidence-disclosure > summary::marker {
  color: var(--sie-primary);
}

.operational-evidence-disclosure[open] > summary {
  margin-bottom: 10px;
}

.operational-evidence-disclosure-list {
  display: grid;
  gap: 8px;
}

.operational-evidence-context-disclosure,
.operational-evidence-predictive-disclosure {
  padding-top: 9px;
  border-top: 1px solid #e2e8f0;
}

.operational-vigidesastres-detail-list {
  display: grid;
  gap: 7px;
  margin: 2px 0 0;
  padding: 0;
  list-style: none;
}

.operational-vigidesastres-detail-list li {
  display: grid;
  gap: 3px;
  padding: 8px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #fff;
}

.operational-vigidesastres-detail-list strong {
  color: #0f172a;
  font-size: 11px;
}

.operational-vigidesastres-detail-list p {
  color: #334155;
  font-size: 11px;
}

.operational-evidence-explainability {
  display: grid;
  gap: 10px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.operational-score-rule-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 10px;
}

.operational-score-rule-grid article {
  display: grid;
  gap: 4px;
  padding: 9px;
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  background: #f8fafc;
}

.operational-score-rule-grid strong {
  color: var(--sie-text);
  font-size: 11px;
}

.operational-evidence-explainability h3,
.operational-evidence-explainability h4 {
  margin: 0;
  color: var(--sie-text);
}

.operational-evidence-explainability h3 {
  font-size: 14px;
}

.operational-evidence-explainability h4 {
  font-size: 12px;
}

.operational-evidence-explainability p {
  margin: 0;
  color: #374151;
  font-size: 12px;
  line-height: 1.45;
}

.operational-explainability-grid {
  display: grid;
  gap: 8px;
}

.operational-explainability-card {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 9px;
  border: 1px solid #e5e7eb;
  border-radius: 7px;
  background: #fbfcfe;
}

.operational-explainability-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.operational-explainability-card-header strong {
  color: var(--sie-text);
  font-size: 12px;
}

.operational-explainability-card-header span {
  flex: 0 0 auto;
  color: var(--sie-primary);
  font-size: 11px;
  font-weight: 900;
}

.operational-explainability-card small,
.operational-explainability-notes {
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.4;
}

.operational-score-movement {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.operational-score-movement-card {
  display: grid;
  align-content: start;
  gap: 7px;
  min-width: 0;
}

.operational-explainability-notes {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 18px;
}

.operational-evidence-card-predictive {
  border-color: #bbf7d0;
  background: #f7fef9;
}

.operational-evidence-card-predictive .operational-evidence-card-header span {
  background: #dcfce7;
  color: #047857;
}

.operational-evidence-card-probability-alta {
  border-color: #fdba74;
  background: #fff7ed;
}

.operational-evidence-card-probability-alta .operational-evidence-card-header span {
  background: #fed7aa;
  color: #9a3412;
}

.operational-evidence-card-probability-media {
  border-color: #fde68a;
  background: #fffbeb;
}

.operational-evidence-card-probability-media .operational-evidence-card-header span {
  background: #fef3c7;
  color: #92400e;
}

.operational-evidence-card-probability-baixa {
  border-color: #bfdbfe;
  background: #eff6ff;
}

.operational-evidence-card-probability-baixa .operational-evidence-card-header span {
  background: #dbeafe;
  color: #1d4ed8;
}

.operational-actions-table td {
  vertical-align: top;
}

.operational-actions-page .filter-bar-operational-risk {
  align-items: end;
}

.operational-structural-filter {
  min-width: 250px;
}

.operational-check-control {
  display: flex;
  gap: 8px;
  align-items: center;
  min-height: 36px;
  color: var(--sie-text);
  font-weight: 700;
}

.operational-check-control input {
  width: 16px;
  height: 16px;
  margin: 0;
}

.operational-structural-filter small {
  max-width: 320px;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 400;
  line-height: 1.35;
}

.operational-snapshot-panel {
  display: grid;
  gap: 14px;
}

.operational-snapshot-panel h2 {
  margin: 2px 0 0;
}

.operational-snapshot-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.operational-snapshot-grid > div {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}

.operational-snapshot-grid dt {
  margin-bottom: 3px;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

.operational-snapshot-grid dd {
  margin: 0;
  color: var(--sie-text);
  font-size: 13px;
  font-weight: 750;
  overflow-wrap: anywhere;
}

.operational-coverage-line {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 12px;
  align-items: center;
  padding: 9px 11px;
  border-left: 4px solid #2563eb;
  border-radius: 6px;
  background: #eff6ff;
  color: #1e3a8a;
  font-size: 12px;
}

.operational-coverage-line.has-warning {
  border-left-color: #d97706;
  background: #fffbeb;
  color: #78350f;
}

.operational-queue-tabs {
  display: grid;
  grid-template-columns: repeat(6, minmax(150px, 1fr));
  gap: 8px;
}

.operational-queue-tab {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 3px 8px;
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid var(--sie-line);
  border-top: 4px solid #94a3b8;
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-decoration: none;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.operational-queue-tab:hover {
  border-color: #94a3b8;
  box-shadow: 0 4px 12px rgb(15 23 42 / 8%);
  transform: translateY(-1px);
}

.operational-queue-tab.is-active {
  border-color: var(--sie-primary);
  box-shadow: 0 0 0 2px var(--sie-primary-soft);
}

.operational-queue-tab span {
  min-width: 0;
  font-size: 13px;
  font-weight: 800;
}

.operational-queue-tab strong {
  color: inherit;
  font-size: 18px;
  line-height: 1;
}

.operational-queue-tab small {
  grid-column: 1 / -1;
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.3;
}

.operational-queue-tab-critical {
  border-top-color: #b91c1c;
}

.operational-queue-tab-high,
.operational-queue-tab-warning {
  border-top-color: #ea580c;
}

.operational-queue-tab-attention,
.operational-queue-tab-info {
  border-top-color: #d97706;
}

.operational-queue-tab-preparedness {
  border-top-color: #7c3aed;
}

.operational-queue-tab-future,
.operational-queue-tab-neutral,
.operational-queue-tab-all {
  border-top-color: #475569;
}

.operational-actions-worklist .section-heading {
  align-items: start;
}

.operational-actions-table {
  min-width: 1120px;
  table-layout: fixed;
}

.operational-actions-table th:nth-child(1) {
  width: 18%;
}

.operational-actions-table th:nth-child(2) {
  width: 19%;
}

.operational-actions-table th:nth-child(3) {
  width: 22%;
}

.operational-actions-table th:nth-child(4) {
  width: 20%;
}

.operational-actions-table th:nth-child(5) {
  width: 21%;
}

.operational-actions-table td strong,
.operational-actions-table td small {
  display: block;
}

.operational-actions-table td p {
  margin: 0 0 6px;
  color: #1f2937;
  font-size: 12px;
  line-height: 1.45;
}

.operational-action-hospital {
  color: #0f172a;
  font-size: 13px;
  line-height: 1.35;
}

.operational-queue-badge {
  display: inline-flex;
  width: fit-content;
  margin: 0 4px 5px 0;
  padding: 3px 7px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #334155;
  font-size: 10px;
  font-weight: 850;
  line-height: 1.25;
  text-transform: uppercase;
}

.operational-queue-badge-critical {
  background: #fee2e2;
  color: #991b1b;
}

.operational-queue-badge-high,
.operational-queue-badge-warning {
  background: #ffedd5;
  color: #9a3412;
}

.operational-queue-badge-attention,
.operational-queue-badge-info {
  background: #fef3c7;
  color: #92400e;
}

.operational-queue-badge-preparedness {
  background: #ede9fe;
  color: #5b21b6;
}

.operational-queue-badge-future,
.operational-queue-badge-neutral {
  background: #e2e8f0;
  color: #334155;
}

.operational-risk-value {
  display: flex;
  gap: 7px;
  align-items: baseline;
  margin: 7px 0 4px;
}

.operational-risk-value strong {
  color: #0f172a;
  font-size: 20px;
}

.operational-risk-value span {
  color: var(--sie-muted);
  font-size: 11px;
}

.operational-future-note {
  margin-top: 5px;
  padding: 5px 7px;
  border-radius: 5px;
  background: #f1f5f9;
}

.operational-dependency-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
  margin: 7px 0;
}

.operational-dependency-metrics span {
  display: flex;
  gap: 4px;
  align-items: baseline;
  padding: 5px 6px;
  border: 1px solid #e2e8f0;
  border-radius: 5px;
  background: #f8fafc;
  color: #64748b;
  font-size: 10px;
}

.operational-dependency-metrics strong {
  color: #1e293b;
  font-size: 13px;
}

.operational-dependency-driver {
  color: #475569;
}

.operational-alternative-count {
  margin-bottom: 5px;
  color: #1e293b;
  font-size: 12px;
}

.operational-alternative-unknown {
  color: #92400e;
}

.operational-next-step {
  padding-left: 9px;
  border-left: 3px solid var(--sie-primary);
  font-weight: 650;
}

.operational-dgae-more {
  margin-top: 6px;
}

.operational-dgae-modal {
  place-items: center;
}

.operational-dgae-panel {
  width: min(980px, calc(100vw - 24px));
  height: auto;
  max-height: calc(100vh - 24px);
}

.operational-dgae-modal-body {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}

.operational-dgae-state {
  grid-column: 1 / -1;
  padding: 18px;
  border: 1px dashed #94a3b8;
  border-radius: 8px;
  background: #f8fafc;
  color: #475569;
  text-align: center;
}

.operational-dgae-state.is-error {
  border-color: #fca5a5;
  background: #fef2f2;
  color: #991b1b;
}

.operational-dgae-detail-section {
  display: grid;
  gap: 10px;
  min-width: 0;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.operational-dgae-detail-section h3 {
  margin: 0;
  color: var(--sie-text);
  font-size: 14px;
}

.operational-dgae-detail-list {
  display: grid;
  gap: 6px;
  max-height: min(52vh, 520px);
  margin: 0;
  padding: 0;
  overflow: auto;
  list-style: none;
}

.operational-dgae-detail-list li {
  padding: 7px 8px;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #f8fafc;
  color: #1f2937;
  font-size: 12px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.operational-dgae-detail-list li strong,
.operational-dgae-detail-list li small {
  display: block;
}

.operational-dgae-detail-list li small {
  margin-top: 3px;
  color: #64748b;
}

.operational-dgae-detail-list li ul {
  display: grid;
  gap: 4px;
  margin: 6px 0 0;
  padding-left: 14px;
}

.operational-dgae-progress,
.operational-dgae-notice,
.operational-dgae-load-more {
  grid-column: 1 / -1;
}

.operational-dgae-progress,
.operational-dgae-notice {
  margin: 0;
}

.operational-dgae-load-more {
  justify-self: start;
}

@media (max-width: 1280px) {
  .operational-queue-tabs {
    grid-template-columns: repeat(3, minmax(180px, 1fr));
  }
}

@media (max-width: 980px) {
  .operational-snapshot-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .operational-actions-page .operational-workbench-table-wrap {
    overflow: visible;
  }

  .operational-actions-table,
  .operational-actions-table tbody,
  .operational-actions-table tr,
  .operational-actions-table td {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .operational-actions-table {
    border: 0;
  }

  .operational-actions-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
  }

  .operational-actions-table tbody {
    display: grid;
    gap: 12px;
  }

  .operational-actions-table tr {
    overflow: hidden;
    border: 1px solid var(--sie-line);
    border-radius: 9px;
    background: #fff;
    box-shadow: 0 3px 10px rgb(15 23 42 / 5%);
  }

  .operational-actions-table td {
    padding: 11px 12px;
    border: 0;
  }

  .operational-actions-table td + td {
    border-top: 1px solid #e2e8f0;
  }

  .operational-actions-table td::before {
    display: block;
    margin-bottom: 6px;
    color: #64748b;
    content: attr(data-label);
    font-size: 10px;
    font-weight: 850;
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }
}

@media (max-width: 760px) {
  .operational-queue-tabs {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .operational-dgae-modal-body {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 540px) {
  .operational-snapshot-grid,
  .operational-queue-tabs {
    grid-template-columns: 1fr;
  }

  .operational-queue-tab small {
    display: none;
  }
}

.operational-alternative-list {
  display: grid;
  gap: 6px;
}

.operational-alternative-item {
  display: grid;
  gap: 2px;
  padding: 7px 8px;
  border: 1px solid #e5e7eb;
  border-radius: 6px;
  background: #f8fafc;
}

.operational-alternative-item strong {
  color: #111827;
  font-size: 12px;
}

.operational-alternative-item small {
  color: #64748b;
  font-size: 11px;
}

.operational-evidence-context-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(105px, 1fr));
  gap: 8px;
}

.data-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.data-list > div {
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: var(--sie-surface);
}

.data-list span,
.data-list strong {
  display: block;
}

.data-list span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.data-list strong {
  margin-top: 4px;
  overflow-wrap: anywhere;
  font-size: 13px;
}

.cadsus-modal-panel .modal-header,
.cadsus-modal-panel .modal-actions {
  padding: 14px 16px;
}

.cadsus-modal-panel .modal-body {
  gap: 10px;
  padding: 14px 16px;
}

.cadsus-modal-panel .data-list {
  grid-template-columns: repeat(2, minmax(220px, 1fr));
  gap: 8px;
}

.cadsus-modal-panel .data-list > div {
  padding: 8px 10px;
}

.cadsus-modal-panel .inline-note {
  min-height: 0;
}

.lookup-tabs {
  display: grid;
  gap: 12px;
}

.lookup-tab-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--sie-line);
}

.lookup-tab-button {
  min-height: 34px;
  padding: 7px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
  color: var(--sie-muted);
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}

.lookup-tab-button.is-active {
  border-color: var(--sie-primary);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.lookup-tab-panel {
  min-width: 0;
}

.json-tree {
  display: grid;
  gap: 8px;
  min-width: 0;
}

.json-tree details {
  min-width: 0;
  padding: 8px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
}

.json-tree summary {
  cursor: pointer;
  color: var(--sie-ink);
  font-size: 12px;
  font-weight: 700;
}

.json-row {
  display: grid;
  grid-template-columns: minmax(140px, 0.4fr) minmax(0, 1fr);
  gap: 8px;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: var(--sie-surface);
}

.json-row span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.json-row strong {
  min-width: 0;
  overflow-wrap: anywhere;
  font-size: 13px;
}

.json-empty {
  padding: 10px;
  border: 1px dashed var(--sie-line);
  border-radius: 6px;
  color: var(--sie-muted);
  font-size: 13px;
  font-weight: 600;
}

.lookup-data-table {
  display: grid;
  gap: 10px;
  min-width: 0;
}

.lookup-data-table-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
}

.lookup-data-table-search {
  flex: 1 1 300px;
  margin: 0;
}

.lookup-data-table-search input {
  min-height: 34px;
}

.lookup-data-table-total {
  flex: 0 0 auto;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 700;
  white-space: nowrap;
}

.lookup-data-table-wrap {
  max-height: 420px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
}

.lookup-data-table-wrap table {
  min-width: 720px;
}

.lookup-data-table-wrap th,
.lookup-data-table-wrap td {
  padding: 8px 10px;
  vertical-align: top;
  font-size: 11px;
}

.lookup-data-table-wrap th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #fff;
}

.lookup-data-table-wrap td {
  max-width: 280px;
  overflow-wrap: anywhere;
}

.lookup-nested-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
}

.lookup-nested-table {
  width: max-content;
  min-width: min(100%, 420px);
  margin: 0;
  border-collapse: collapse;
  font-size: 10px;
}

.lookup-nested-table th,
.lookup-nested-table td {
  max-width: 190px;
  padding: 6px 8px;
  border-bottom: 1px solid var(--sie-line);
  border-right: 1px solid var(--sie-line);
  vertical-align: top;
  overflow-wrap: anywhere;
}

.lookup-nested-table th {
  background: #fafafa;
  color: var(--sie-muted);
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}

.lookup-nested-table tr:last-child > th,
.lookup-nested-table tr:last-child > td {
  border-bottom: 0;
}

.lookup-nested-table th:last-child,
.lookup-nested-table td:last-child {
  border-right: 0;
}

.lookup-nested-key-value {
  min-width: min(100%, 320px);
}

.lookup-nested-key-value th {
  width: 130px;
}

.lookup-nested-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.lookup-nested-list span,
.lookup-nested-empty {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 7px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  background: #fafafa;
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 700;
}

.lookup-data-table-pagination {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

@media (max-width: 700px) {
  .lookup-data-table-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .lookup-data-table-total {
    white-space: normal;
  }

  .lookup-data-table-pagination {
    justify-content: space-between;
  }
}

/* CEMADEN - alertas e briefing com recorte para o Rio Grande do Sul */
.cemaden-page {
  --cemaden-navy: #12324a;
  --cemaden-blue: #176b87;
  --cemaden-blue-soft: #eef8fb;
  --cemaden-slate: #475569;
  gap: 14px;
}

.cemaden-hero {
  border-left-color: var(--cemaden-blue);
  background: linear-gradient(118deg, #ffffff 0%, #f7fbfc 66%, #eaf6f9 100%);
}

.cemaden-hero h1 {
  margin: 4px 0 6px;
  color: var(--cemaden-navy);
  font-size: clamp(24px, 3vw, 32px);
  line-height: 1.15;
}

.cemaden-hero p {
  max-width: 760px;
  color: var(--sie-muted);
  line-height: 1.55;
}

.cemaden-hero-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.cemaden-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.cemaden-summary .metric {
  min-width: 0;
  min-height: 120px;
  padding: 17px 18px;
}

.cemaden-summary .metric::after {
  background: var(--cemaden-blue);
}

.cemaden-summary .metric-value {
  margin-bottom: 5px;
  color: var(--cemaden-navy);
  font-size: 27px;
}

.cemaden-summary .muted {
  margin: 0;
  font-size: 11px;
  line-height: 1.45;
}

.cemaden-metric-level.metric::after {
  background: #ea580c;
}

.cemaden-metric-briefing.metric::after {
  background: #16a34a;
}

.cemaden-briefing-status {
  font-size: 21px !important;
}

.cemaden-map-panel,
.cemaden-alerts-panel,
.cemaden-briefing-panel,
.cemaden-bulletins-panel {
  padding: 18px;
}

.cemaden-section-heading {
  align-items: center;
}

.cemaden-page .section-heading h2 {
  margin-top: 2px;
  color: var(--cemaden-navy);
  font-size: 19px;
  line-height: 1.25;
}

.cemaden-page .section-heading p {
  max-width: 830px;
  line-height: 1.5;
}

.cemaden-bulletins-panel > p {
  margin: 12px 0;
  padding: 10px 12px;
  border-left: 3px solid #d97706;
  border-radius: 6px;
  background: #fffbeb;
  color: #7c4a03;
  font-size: 11px;
}

.cemaden-bulletin-list {
  gap: 9px;
}

.cemaden-bulletin-item {
  overflow: hidden;
  border: 1px solid #dce7eb;
  border-radius: 9px;
  background: #fff;
}

.cemaden-bulletin-item > summary {
  padding: 12px 14px;
  cursor: pointer;
  background: #f8fbfc;
  color: var(--cemaden-navy);
  font-size: 12px;
  line-height: 1.45;
}

.cemaden-bulletin-item[open] > summary {
  border-bottom: 1px solid #e4ecef;
}

.cemaden-bulletin-item > p,
.cemaden-bulletin-facts {
  margin: 12px 14px;
}

.cemaden-bulletin-item > p:not(.muted) {
  color: #344a5a;
  font-size: 11px;
  line-height: 1.6;
}

.cemaden-bulletin-metadata {
  overflow-wrap: anywhere;
  font-size: 10px;
  line-height: 1.55;
}

.cemaden-bulletin-metadata a {
  color: #0b6685;
  font-weight: 700;
  text-underline-offset: 2px;
}

.cemaden-bulletin-facts {
  padding: 10px 12px;
  border-radius: 7px;
  background: #f8fafc;
}

.cemaden-bulletin-facts h3 {
  margin: 0 0 7px;
  color: #334155;
  font-size: 11px;
}

.cemaden-bulletin-facts ul {
  margin: 0;
  padding-left: 18px;
}

.cemaden-bulletin-facts li {
  margin: 5px 0;
  color: #3d5260;
  font-size: 11px;
  line-height: 1.55;
}

.cemaden-bulletin-facts small {
  display: block;
  margin-top: 2px;
  font-size: 9px;
}

.cemaden-filters {
  display: grid;
  grid-template-columns: minmax(230px, 1.7fr) minmax(150px, .7fr) minmax(175px, .8fr) auto;
  gap: 10px;
  align-items: end;
  margin: 16px 0 12px;
  padding: 13px;
  border: 1px solid #dce7eb;
  border-radius: 10px;
  background: #f8fbfc;
}

.cemaden-filters label {
  display: grid;
  min-width: 0;
  gap: 6px;
  color: #344a5a;
  font-size: 10px;
  font-weight: 700;
}

.cemaden-filters input,
.cemaden-filters select {
  width: 100%;
  min-width: 0;
  min-height: 40px;
  padding: 8px 10px;
  border: 1px solid #cedbe1;
  border-radius: 7px;
  background: #fff;
  color: var(--sie-text);
  font: inherit;
  font-size: 12px;
  font-weight: 400;
}

.cemaden-filters input:focus,
.cemaden-filters select:focus {
  border-color: var(--cemaden-blue);
  outline: 3px solid rgba(23, 107, 135, .13);
}

.cemaden-filters .filter-actions {
  flex-wrap: nowrap;
  justify-content: flex-end;
}

.cemaden-filters .btn {
  min-height: 40px;
  white-space: nowrap;
}

.cemaden-map {
  position: relative;
  width: 100%;
  min-height: 510px;
  overflow: hidden;
  border: 1px solid #cbd8de;
  border-radius: 11px;
  background: #e9f1f4;
  z-index: 0;
}

.cemaden-map .leaflet-control-container {
  font-size: 11px;
}

.cemaden-map .leaflet-popup-content-wrapper {
  border-radius: 9px;
}

.cemaden-map .leaflet-popup-content {
  min-width: 200px;
  margin: 14px 16px;
}

.cemaden-map-popup {
  display: grid;
  gap: 7px;
  color: #263b49;
  line-height: 1.4;
}

.cemaden-map-popup > strong {
  color: var(--cemaden-navy);
  font-size: 14px;
}

.cemaden-map-popup > small {
  color: var(--sie-muted);
}

.cemaden-map-popup > a {
  color: #0b6685;
  font-weight: 700;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.cemaden-map-popup .cemaden-level {
  width: fit-content;
}

.cemaden-map-error,
.cemaden-map .map-loading {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  color: var(--cemaden-slate);
  font-weight: 700;
  text-align: center;
}

.cemaden-map-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 10px;
  color: var(--cemaden-slate);
  font-size: 10px;
  font-weight: 700;
}

.cemaden-map-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.cemaden-map-legend i {
  width: 11px;
  height: 11px;
  border: 2px solid transparent;
  border-radius: 3px;
}

.cemaden-map-legend .is-very-high {
  border-color: #991b1b;
  background: rgba(220, 38, 38, .5);
}

.cemaden-map-legend .is-high {
  border-color: #b45309;
  background: rgba(249, 115, 22, .5);
}

.cemaden-map-legend .is-moderate {
  border-color: #a16207;
  background: rgba(250, 204, 21, .55);
}

.cemaden-source-note,
.cemaden-briefing-source {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 12px;
  margin: 10px 0 0;
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.5;
}

.cemaden-source-note a,
.cemaden-briefing-source a {
  color: #0b6685;
  font-weight: 700;
  text-underline-offset: 2px;
}

.cemaden-table-wrap {
  border: 1px solid #e0e7eb;
  border-radius: 9px;
}

.cemaden-alert-table {
  width: 100%;
  min-width: 760px;
  border-collapse: collapse;
  table-layout: fixed;
}

.cemaden-alert-table caption.visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  border: 0 !important;
  white-space: nowrap !important;
}

.cemaden-alert-table th,
.cemaden-alert-table td {
  padding: 11px 12px;
  border-bottom: 1px solid #e7ecef;
  text-align: left;
  vertical-align: top;
}

.cemaden-alert-table th {
  background: #f6f9fa;
  color: #526671;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.cemaden-alert-table th:nth-child(1) { width: 12%; }
.cemaden-alert-table th:nth-child(2) { width: 20%; }
.cemaden-alert-table th:nth-child(3) { width: 34%; }
.cemaden-alert-table th:nth-child(4) { width: 17%; }
.cemaden-alert-table th:nth-child(5) { width: 17%; }

.cemaden-alert-table tbody tr:last-child td {
  border-bottom: 0;
}

.cemaden-alert-table tbody tr:hover:not([data-cemaden-no-results]) {
  background: #fbfdfe;
}

.cemaden-alert-table td {
  color: #364b58;
  font-size: 11px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.cemaden-alert-table td strong,
.cemaden-alert-table td small {
  display: block;
}

.cemaden-alert-table td strong {
  color: #203847;
}

.cemaden-alert-table td small {
  margin-top: 4px;
  color: var(--sie-muted);
  font-size: 9px;
  line-height: 1.45;
}

.cemaden-level {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border: 1px solid #cbd5e1;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 9px;
  font-weight: 800;
  line-height: 1;
  white-space: nowrap;
}

.cemaden-level-very-high {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.cemaden-level-high {
  border-color: #fed7aa;
  background: #fff7ed;
  color: #9a3412;
}

.cemaden-level-moderate {
  border-color: #fde68a;
  background: #fffbeb;
  color: #854d0e;
}

.cemaden-table-actions {
  white-space: normal;
}

.cemaden-table-actions .btn {
  display: inline-flex;
  margin: 0 4px 4px 0;
  white-space: nowrap;
}

.cemaden-briefing-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 11px;
}

.cemaden-briefing-section {
  min-width: 0;
  padding: 15px 16px;
  border: 1px solid #dce7eb;
  border-top: 3px solid var(--cemaden-blue);
  border-radius: 9px;
  background: linear-gradient(180deg, #fbfefe, #fff);
}

.cemaden-briefing-section h3 {
  margin: 0 0 8px;
  color: var(--cemaden-navy);
  font-size: 13px;
  line-height: 1.35;
}

.cemaden-briefing-section p {
  margin: 0;
  color: #415664;
  font-size: 11px;
  line-height: 1.65;
  white-space: pre-line;
}

.cemaden-briefing-empty {
  background: #f8fafb;
  text-align: center;
}

@media (max-width: 1000px) {
  .cemaden-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cemaden-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cemaden-briefing-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 700px) {
  .cemaden-hero,
  .cemaden-section-heading {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .cemaden-section-heading {
    display: grid;
  }

  .cemaden-hero-actions,
  .cemaden-section-heading > .btn {
    width: 100%;
  }

  .cemaden-hero-actions .btn,
  .cemaden-section-heading > .btn {
    flex: 1 1 180px;
    justify-content: center;
  }

  .cemaden-summary,
  .cemaden-filters {
    grid-template-columns: 1fr;
  }

  .cemaden-filters input,
  .cemaden-filters select,
  .cemaden-filters .btn {
    min-height: 44px;
    font-size: 16px;
  }

  .cemaden-filters .filter-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .cemaden-map {
    min-height: 430px;
  }

  .cemaden-table-wrap {
    overflow: visible;
    border: 0;
  }

  .cemaden-alert-table {
    min-width: 0;
  }

  .cemaden-alert-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .cemaden-alert-table,
  .cemaden-alert-table tbody,
  .cemaden-alert-table tr,
  .cemaden-alert-table td {
    display: block;
    width: 100%;
  }

  .cemaden-alert-table tr {
    margin-bottom: 10px;
    overflow: hidden;
    border: 1px solid #dde6ea;
    border-radius: 9px;
    background: #fff;
  }

  .cemaden-alert-table td {
    display: grid;
    grid-template-columns: minmax(82px, 28%) minmax(0, 1fr);
    gap: 10px;
    padding: 10px 12px;
  }

  .cemaden-alert-table td::before {
    content: attr(data-label);
    color: #657681;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .03em;
    text-transform: uppercase;
  }

  .cemaden-alert-table td[colspan]::before {
    content: none;
  }

  .cemaden-table-actions {
    display: grid !important;
    grid-template-columns: minmax(82px, 28%) minmax(0, 1fr) !important;
  }

  .cemaden-table-actions .btn {
    grid-column: 2;
    width: 100%;
    min-height: 40px;
    justify-content: center;
  }
}

@media (max-width: 420px) {
  .cemaden-filters .filter-actions {
    grid-template-columns: 1fr;
  }

  .cemaden-map {
    min-height: 380px;
  }
}

.check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.check-option {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  font-weight: 600;
}

.check-option.is-disabled {
  background: #f8fafc;
}

.check-option.is-disabled [data-vulnerability-note] {
  color: var(--sie-muted);
}

.check-option span,
.check-inline {
  display: flex;
  align-items: center;
  gap: 8px;
}

.check-option input[type="checkbox"],
.check-inline input[type="checkbox"] {
  min-height: 0;
  width: auto;
}

.vulnerability-category-list {
  display: grid;
  gap: 14px;
}

[data-gestational-age-field][hidden] {
  display: none !important;
}

.vulnerability-category {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fafafa;
}

.vulnerability-category legend {
  padding: 0 6px;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
}

.vulnerability-check-grid {
  gap: 10px;
}

.vulnerability-code {
  flex: 0 0 auto;
  padding: 2px 6px;
  border-radius: 999px;
  background: #f1f5f9;
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.2;
}

.operational-priority-summary {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  background: #fff7ed;
}

.operational-priority-summary span {
  color: #9a3412;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.operational-priority-summary strong {
  color: #7c2d12;
}

.tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.patient-tag {
  font-size: 11px;
}

.patients-page {
  gap: 16px;
}

.patient-filter-panel {
  display: grid;
  gap: 12px;
}

.patient-filter-heading {
  margin-bottom: 0;
}

.patient-page-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  justify-content: flex-end;
}

.patient-page-actions .btn {
  min-height: 34px;
  white-space: nowrap;
}

.patient-privacy-toggle {
  display: inline-flex;
  gap: 7px;
  align-items: center;
}

.patient-privacy-toggle svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 1.8;
}

.patient-privacy-toggle.is-revealed {
  border-color: #b45309;
  background: #fff8e8;
  color: #92400e;
}

.patient-privacy-toggle.is-revealed .patient-privacy-toggle-slash {
  display: none;
}

.patient-privacy-status {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 11px 13px;
  border: 1px solid #bfdbfe;
  border-left: 4px solid #2563eb;
  border-radius: 8px;
  background: #eff6ff;
  color: #1e3a5f;
}

.patient-privacy-status-icon {
  margin-top: 4px;
  color: #2563eb;
  font-size: 9px;
}

.patient-privacy-status > div {
  display: grid;
  gap: 2px;
}

.patient-privacy-status strong,
.patient-privacy-status span {
  line-height: 1.4;
}

.patient-privacy-status span {
  font-size: 11px;
}

.patient-privacy-status.is-revealed {
  border-color: #f0c78d;
  border-left-color: #d97706;
  background: #fffbeb;
  color: #78350f;
}

.patient-privacy-status.is-revealed .patient-privacy-status-icon {
  color: #d97706;
}

.patient-private-field {
  display: inline;
}

.patient-private-mask {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 2px 8px;
  border: 1px solid #cbd5e1;
  border-radius: 5px;
  background: repeating-linear-gradient(135deg, #e2e8f0 0, #e2e8f0 5px, #edf2f7 5px, #edf2f7 10px);
  color: #475569;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.02em;
}

.patient-privacy-confirm[hidden] {
  display: none;
}

.patient-privacy-confirm {
  position: fixed;
  z-index: 1100;
  inset: 0;
  display: grid;
  place-items: center;
  padding: 20px;
}

.patient-privacy-confirm-backdrop {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  background: rgba(15, 23, 42, 0.64);
  cursor: default;
}

.patient-privacy-confirm > section {
  position: relative;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 14px;
  width: min(100%, 520px);
  padding: 22px;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 24px 70px rgba(15, 23, 42, 0.35);
  color: var(--sie-text);
  text-align: left;
  white-space: normal;
}

.patient-privacy-confirm-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: #fee2e2;
  color: #b91c1c;
  font-size: 21px;
  font-weight: 900;
}

.patient-privacy-confirm h2,
.patient-privacy-confirm p {
  margin: 0;
}

.patient-privacy-confirm h2 {
  font-size: 18px;
}

.patient-privacy-confirm p {
  margin-top: 7px;
  font-size: 14px;
  line-height: 1.5;
}

.patient-privacy-confirm small {
  display: block;
  margin-top: 7px;
  color: var(--sie-muted);
  line-height: 1.45;
}

.patient-privacy-confirm footer {
  display: flex;
  grid-column: 1 / -1;
  gap: 8px;
  justify-content: flex-end;
  margin-top: 4px;
}

body.has-patient-privacy-confirm {
  overflow: hidden;
}

.patients-table {
  min-width: 1280px;
  table-layout: fixed;
}

.patients-table th,
.patients-table td {
  vertical-align: top;
}

.patients-table th:nth-child(1),
.patients-table td:nth-child(1) {
  width: 220px;
}

.patients-table th:nth-child(2),
.patients-table td:nth-child(2) {
  width: 180px;
}

.patients-table th:nth-child(3),
.patients-table td:nth-child(3) {
  width: 240px;
}

.patients-table th:nth-child(4),
.patients-table td:nth-child(4) {
  width: 230px;
}

.patients-table th:nth-child(5),
.patients-table td:nth-child(5) {
  width: 110px;
}

.patients-table th:nth-child(6),
.patients-table td:nth-child(6) {
  width: 112px;
}

.patients-table th:nth-child(7),
.patients-table td:nth-child(7) {
  width: 190px;
}

.patients-table th:nth-child(8),
.patients-table td:nth-child(8) {
  width: 164px;
}

.patients-table td:nth-child(5),
.patients-table td:nth-child(6) {
  white-space: nowrap;
}

.patients-table .tag-list {
  align-items: flex-start;
}

.patients-table .patient-tag {
  max-width: 100%;
  height: auto;
  min-height: 22px;
  text-align: left;
  white-space: normal;
}

.patients-table .patient-actions-cell {
  vertical-align: middle;
}

.patients-table .patient-icon-actions {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px;
  min-width: 0;
  white-space: nowrap;
}

.patients-table .patient-icon-actions form {
  display: inline-flex;
  flex: 0 0 auto;
  width: auto;
  margin: 0;
}

.patients-table .patient-action-icon {
  display: inline-flex;
  flex: 0 0 28px;
  align-items: center;
  justify-content: center;
  width: 28px;
  min-width: 28px;
  height: 28px;
  min-height: 28px;
  padding: 0;
  border-radius: 6px;
}

.patients-table .patient-action-icon svg {
  width: 15px;
  height: 15px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}

.form-sections {
  display: grid;
  gap: 22px;
}

.form-section {
  display: grid;
  gap: 12px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--sie-line);
}

.hospital-response-form {
  padding: 18px;
}

.hospital-response-form .form-section {
  padding: 16px;
  border: 1px solid var(--sie-line);
  border-left: 4px solid var(--sie-primary);
  border-radius: 8px;
  background: #fff;
}

.hospital-response-form .form-section:last-of-type {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--sie-line);
}

.hospital-response-form .section-heading {
  margin-bottom: 0;
}

.hospital-response-form .section-heading h2 {
  font-size: 17px;
  font-weight: 700;
}

.form-section:last-of-type {
  padding-bottom: 0;
  border-bottom: 0;
}

.form-section-heading h2 {
  margin: 0;
  font-size: 14px;
  font-weight: 700;
}

.form-section-heading p {
  margin: 4px 0 0;
}

.occurrence-form {
  gap: 16px;
  padding: 18px;
}

.occurrence-form .helper-panel {
  padding: 16px 18px;
}

.occurrence-section {
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--sie-line);
  border-left: 4px solid var(--sie-primary);
  border-radius: 8px;
  background: #fff;
}

.occurrence-section:last-of-type {
  padding-bottom: 16px;
  border-bottom: 1px solid var(--sie-line);
}

.occurrence-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 14px;
  align-items: start;
}

.occurrence-grid-main {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.occurrence-grid-main .span-2,
.occurrence-scope-grid .span-2 {
  grid-column: span 2;
}

.occurrence-scope-grid {
  grid-template-columns: minmax(240px, 0.7fr) minmax(0, 1.3fr);
}

.occurrence-scope-grid [data-scope-panel] {
  grid-column: 2;
}

.occurrence-scope-grid [data-scope-panel="HOSPITAL"] {
  grid-column: 1 / -1;
}

.occurrence-state-note {
  align-self: end;
}

.occurrence-form .form-actions {
  justify-content: flex-end;
  padding-top: 4px;
}

.span-2 {
  grid-column: span 2;
}

.span-3 {
  grid-column: span 3;
}

.detail-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.detail-header h2 {
  margin: 0 0 6px;
  font-size: 21px;
  font-weight: 700;
  line-height: 1.25;
}

.detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px 18px;
  margin: 0;
}

.detail-grid-compact {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.detail-item {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.detail-item dt,
.detail-text strong {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.detail-item dd {
  margin: 0;
  overflow-wrap: anywhere;
  font-weight: 600;
}

.detail-text {
  display: grid;
  gap: 6px;
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid var(--sie-line);
}

.detail-text p {
  margin: 0;
  white-space: normal;
}

.hospital-detail-layout {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(340px, 1.05fr);
  gap: 14px;
}

.hospital-status-grid .metric-value,
.metric-coordinate {
  overflow-wrap: anywhere;
}

.quick-actions {
  display: grid;
  gap: 14px;
}

.quick-action {
  display: grid;
  grid-template-columns: minmax(150px, 0.45fr) minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
  padding-top: 14px;
  border-top: 1px solid var(--sie-line);
}

.quick-action:first-child {
  padding-top: 0;
  border-top: 0;
}

.quick-action h3 {
  align-self: center;
  margin: 0;
  font-size: 14px;
  font-weight: 700;
}

.quick-action .field {
  min-width: 0;
  margin: 0;
}

.quick-action .field:only-of-type {
  grid-column: 2 / span 2;
}

.quick-action textarea {
  min-height: 78px;
}

.quick-action .btn {
  min-height: 40px;
  justify-self: end;
  white-space: nowrap;
}

.quick-action-start {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
}

.status-badge {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 3px 8px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #f8fafc;
  font-size: 12px;
  font-weight: 700;
}

.status-ativo {
  background: var(--sie-green-soft);
  border-color: rgba(0, 168, 70, 0.22);
  color: var(--sie-green);
}

.status-bloqueado {
  background: var(--sie-yellow-soft);
  border-color: rgba(183, 121, 31, 0.4);
  color: var(--sie-yellow);
}

.status-inativo {
  background: #f5f5f5;
  border-color: rgba(113, 128, 150, 0.4);
  color: var(--sie-gray);
}

.status-planejada {
  background: #f5f5f5;
  border-color: rgba(100, 116, 139, 0.35);
  color: var(--sie-muted);
}

.status-ativa {
  background: var(--sie-green-soft);
  border-color: rgba(0, 168, 70, 0.22);
  color: var(--sie-green);
}

.status-suspensa {
  background: var(--sie-yellow-soft);
  border-color: rgba(183, 121, 31, 0.4);
  color: var(--sie-yellow);
}

.status-encerrada {
  background: #f5f5f5;
  border-color: rgba(113, 128, 150, 0.4);
  color: var(--sie-gray);
}

.status-concluida {
  background: #eef1f4;
  border-color: rgba(52, 64, 84, 0.35);
  color: #344054;
}

.status-normal {
  background: var(--sie-green-soft);
  border-color: rgba(0, 168, 70, 0.22);
  color: var(--sie-green);
}

.status-atencao {
  background: var(--sie-yellow-soft);
  border-color: rgba(183, 121, 31, 0.4);
  color: var(--sie-yellow);
}

.status-pendente {
  background: var(--sie-cyan-soft);
  border-color: rgba(0, 138, 168, 0.24);
  color: var(--sie-cyan);
}

.status-risco {
  background: var(--sie-orange-soft);
  border-color: rgba(230, 98, 57, 0.35);
  color: var(--sie-orange);
}

.status-critico {
  background: var(--sie-red-soft);
  border-color: rgba(210, 31, 43, 0.35);
  color: var(--sie-red);
}

.status-sem_informacao {
  background: #f5f5f5;
  border-color: rgba(113, 128, 150, 0.4);
  color: var(--sie-gray);
}

.health-matrix-table tr.row-stale > td {
  background: #fffaf0;
}

.health-matrix-table tr.row-stale > td:first-child {
  box-shadow: inset 3px 0 0 rgba(183, 121, 31, 0.55);
}

.status-informacao {
  background: var(--sie-cyan-soft);
  border-color: rgba(0, 138, 168, 0.25);
  color: var(--sie-cyan);
}

.priority-baixa,
.status-plan-concluido {
  background: var(--sie-green-soft);
  border-color: rgba(0, 168, 70, 0.22);
  color: var(--sie-green);
}

.priority-media,
.status-plan-pendente {
  background: var(--sie-yellow-soft);
  border-color: rgba(183, 121, 31, 0.4);
  color: var(--sie-yellow);
}

.priority-alta,
.status-plan-em_andamento,
.status-plan-reaberto {
  background: var(--sie-orange-soft);
  border-color: rgba(230, 98, 57, 0.35);
  color: var(--sie-orange);
}

.priority-critica {
  background: var(--sie-red-soft);
  border-color: rgba(210, 31, 43, 0.35);
  color: var(--sie-red);
}

.status-plan-cancelado {
  background: #f5f5f5;
  border-color: rgba(113, 128, 150, 0.4);
  color: var(--sie-gray);
}

.status-patient-ativo {
  background: var(--sie-green-soft);
  border-color: rgba(0, 168, 70, 0.22);
  color: var(--sie-green);
}

.status-patient-revisao_pendente {
  background: var(--sie-yellow-soft);
  border-color: rgba(183, 121, 31, 0.4);
  color: var(--sie-yellow);
}

.status-patient-inativo {
  background: #f5f5f5;
  border-color: rgba(113, 128, 150, 0.4);
  color: var(--sie-gray);
}

.hospital-timeline-panel {
  overflow: hidden;
}

.timeline-list {
  position: relative;
  display: grid;
  gap: 0;
  margin-top: 4px;
}

.timeline-list::before {
  content: "";
  position: absolute;
  top: 10px;
  bottom: 10px;
  left: 10px;
  width: 2px;
  background: var(--sie-line);
}

.timeline-item {
  position: relative;
  display: grid;
  grid-template-columns: 24px minmax(0, 1fr);
  gap: 12px;
  padding: 8px 0 8px;
}

.timeline-marker {
  position: relative;
  z-index: 1;
  width: 22px;
  height: 22px;
  margin-top: 3px;
  border: 4px solid #fff;
  border-radius: 999px;
  background: var(--sie-gray);
  box-shadow: 0 0 0 1px var(--sie-line);
}

.timeline-tone-normal .timeline-marker {
  background: var(--sie-green);
}

.timeline-tone-atencao .timeline-marker {
  background: var(--sie-yellow);
}

.timeline-tone-risco .timeline-marker {
  background: var(--sie-orange);
}

.timeline-tone-critico .timeline-marker {
  background: var(--sie-red);
}

.timeline-tone-informacao .timeline-marker {
  background: var(--sie-cyan);
}

.timeline-content {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.timeline-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
}

.timeline-content h3 {
  margin: 0;
  font-size: 13px;
}

.timeline-content p {
  margin: 4px 0 0;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.4;
}

.timeline-meta {
  display: grid;
  gap: 4px;
  justify-items: end;
  white-space: nowrap;
}

.timeline-link {
  display: inline-flex;
  margin-top: 8px;
  color: var(--sie-primary);
  font-size: 12px;
  font-weight: 700;
  text-decoration: none;
}

.timeline-link:hover {
  text-decoration: underline;
}

.user-report-tabs {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.filter-bar-user-activity {
  grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
}

.filter-bar-user-activity .user-activity-search {
  grid-column: span 2;
}

.filter-bar-user-activity .filter-actions {
  align-self: end;
}

.user-activity-timeline {
  margin-top: 12px;
}

.user-activity-heading,
.user-activity-context {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 9px;
}

.user-activity-heading h3 {
  margin-right: 4px;
}

.user-activity-context {
  margin-top: 8px;
  color: var(--sie-muted);
  font-size: 11px;
}

.user-activity-context span:not(:last-child)::after {
  content: "·";
  margin-left: 9px;
}

.user-activity-detail {
  margin-top: 9px;
  color: var(--sie-muted);
  font-size: 11px;
}

.user-activity-detail summary {
  cursor: pointer;
  font-weight: 700;
}

.user-activity-detail pre {
  max-height: 180px;
  margin: 7px 0 0;
  padding: 9px;
  overflow: auto;
  border-radius: 6px;
  background: #f8fafc;
  font: 10px/1.45 ui-monospace, SFMono-Regular, Consolas, monospace;
  white-space: pre-wrap;
  word-break: break-word;
}

@media (max-width: 700px) {
  .user-report-tabs,
  .filter-bar-user-activity {
    grid-template-columns: 1fr;
  }

  .filter-bar-user-activity .user-activity-search {
    grid-column: auto;
  }

  .user-activity-timeline .timeline-row {
    grid-template-columns: 1fr;
  }

  .user-activity-timeline .timeline-meta {
    justify-items: start;
    white-space: normal;
  }
}

.shortcut-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.shortcut {
  display: grid;
  gap: 6px;
  min-height: 94px;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  color: var(--sie-text);
  text-decoration: none;
  background: #fff;
  box-shadow: var(--sie-shadow);
}

.shortcut:hover {
  border-color: var(--sie-nav-active);
  color: var(--sie-text);
}

.shortcut span {
  color: var(--sie-muted);
}

.auth-body {
  min-height: 100vh;
  min-height: 100dvh;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 12% 12%, rgba(230, 98, 57, 0.14), transparent 30%),
    radial-gradient(circle at 88% 82%, rgba(0, 138, 168, 0.1), transparent 28%),
    linear-gradient(135deg, #fff7f4 0%, #ffffff 48%, #f3f4f6 100%);
  background-repeat: no-repeat;
  background-size: cover;
  background-attachment: fixed;
  zoom: 1;
}

.auth-shell {
  display: grid;
  place-items: center;
  min-height: 100vh;
  min-height: 100dvh;
  padding: 24px;
}

.login-panel {
  display: grid;
  grid-template-columns: minmax(340px, 0.92fr) minmax(380px, 1.08fr);
  width: min(100%, 980px);
  min-height: 560px;
  padding: 0;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--sie-shadow-lg);
  overflow: hidden;
}

.login-aside {
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  gap: 24px;
  padding: 36px;
  background:
    linear-gradient(180deg, rgba(23, 23, 23, 0.08), transparent 42%),
    linear-gradient(135deg, #c94828 0%, var(--sie-primary) 52%, #f1825e 100%);
  color: #fff;
}

.login-institution {
  display: flex;
  align-items: center;
  gap: 12px;
}

.institution-crest {
  display: block;
  width: 52px;
  height: 52px;
  padding: 5px;
  border: 1px solid rgba(255, 255, 255, 0.36);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.95);
  object-fit: contain;
  box-shadow: 0 10px 24px rgba(87, 41, 24, 0.14);
}

.login-institution span {
  display: block;
  color: rgba(255, 255, 255, 0.78);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.login-institution strong {
  display: block;
  margin-top: 2px;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
}

.login-aside .brand-mark {
  border-color: rgba(255, 255, 255, 0.25);
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
}

.login-summary {
  display: grid;
  align-content: center;
  gap: 12px;
  padding: 28px 0;
}

.login-summary strong {
  max-width: 420px;
  font-size: 30px;
  line-height: 1.18;
}

.login-summary span,
.login-meta {
  color: rgba(255, 255, 255, 0.78);
}

.login-summary span {
  max-width: 390px;
  line-height: 1.55;
}

.login-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.login-meta span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 9px;
  border: 1px solid rgba(255, 255, 255, 0.24);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  font-size: 11px;
  font-weight: 700;
}

.login-content {
  display: grid;
  align-content: center;
  gap: 18px;
  padding: 42px;
}

.login-content-header {
  display: grid;
  gap: 6px;
}

.login-content-header .eyebrow {
  width: fit-content;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.login-content h2 {
  margin: 0;
  font-size: 28px;
  font-weight: 600;
}

.login-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
}

.login-brand .brand-mark {
  border-color: rgba(255, 255, 255, 0.25);
  color: #fff;
}

.login-brand h1 {
  margin: 0;
  font-size: 22px;
  line-height: 1.15;
}

.login-brand p {
  margin: 3px 0 0;
  color: rgba(255, 255, 255, 0.78);
}

.login-form {
  display: grid;
  gap: 10px;
}

.login-form label {
  font-weight: 700;
}

.login-label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.login-label-row label {
  margin: 0;
}

.login-label-row a {
  color: var(--sie-primary);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.login-label-row a:hover {
  text-decoration: underline;
}

.login-forgot-password {
  display: flex;
  justify-content: flex-end;
  margin-top: -4px;
}

.login-forgot-password a {
  color: var(--sie-primary);
  font-size: 12px;
  font-weight: 800;
  text-decoration: none;
}

.login-forgot-password a:hover,
.login-forgot-password a:focus {
  text-decoration: underline;
}

.login-form input,
.login-form select {
  min-height: 42px;
  width: 100%;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  padding: 8px 10px;
}

.password-visibility-field {
  position: relative;
}

.password-visibility-field input {
  padding-right: 44px;
}

.password-visibility-toggle {
  position: absolute;
  top: 50%;
  right: 6px;
  display: grid;
  place-items: center;
  z-index: 2;
  width: 30px;
  min-height: 28px;
  margin: 0;
  transform: translateY(-50%);
  border: 1px solid rgba(230, 98, 57, 0.38);
  border-radius: 5px;
  background: #fff7f3;
  color: var(--sie-primary);
  cursor: pointer;
  line-height: 1;
}

.password-visibility-icon {
  position: relative;
  display: block;
  width: 14px;
  height: 9px;
  border: 1.5px solid currentColor;
  border-radius: 50% / 70%;
  pointer-events: none;
}

.password-visibility-icon::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 4px;
  height: 4px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: currentColor;
}

.password-visibility-toggle:hover,
.password-visibility-toggle:focus {
  border-color: var(--sie-primary);
  background: #fff1e9;
}

.login-form .password-visibility-toggle {
  min-height: 28px;
  margin-top: 0;
}

.login-form button {
  min-height: 42px;
  margin-top: 8px;
}

.login-vigidesastres-callout {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(230, 98, 57, 0.34);
  border-left: 5px solid var(--sie-primary);
  border-radius: 8px;
  background:
    linear-gradient(135deg, rgba(230, 98, 57, 0.12), rgba(255, 255, 255, 0.96) 52%),
    #fff;
  box-shadow: 0 16px 34px rgba(88, 47, 28, 0.12);
}

.login-vigidesastres-callout strong {
  display: block;
  color: var(--sie-ink);
  font-size: 15px;
  font-weight: 800;
}

.login-vigidesastres-callout p {
  margin: 4px 0 0;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.45;
}

.login-vigidesastres-callout .btn {
  min-height: 40px;
  width: 100%;
  justify-content: center;
  font-weight: 800;
}

.login-vigidesastres-badge {
  width: fit-content;
  padding: 4px 8px;
  border: 1px solid rgba(230, 98, 57, 0.28);
  border-radius: 999px;
  background: #fff;
  color: var(--sie-primary);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.login-secondary-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.login-secondary-actions .btn {
  width: 100%;
}

.password-reset-panel {
  min-height: 560px;
}

.password-reset-note,
.password-reset-user {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}

.password-reset-note strong,
.password-reset-user strong {
  color: var(--sie-text);
}

.password-reset-note span,
.password-reset-user span,
.password-reset-user small {
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.45;
}

.password-policy-list {
  display: grid;
  gap: 4px;
  margin: 0;
  padding-left: 18px;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.45;
}

.register-panel {
  grid-template-columns: minmax(380px, 0.9fr) minmax(560px, 1.25fr);
  width: min(100%, 1280px);
  min-height: 720px;
}

.register-content {
  align-content: start;
  grid-auto-rows: max-content;
  padding: 48px 54px;
  max-height: calc(100vh - 48px);
  overflow: auto;
}

.register-error-alert {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  align-self: start;
  min-width: 0;
  margin: 0;
  padding: 14px 16px;
  border: 1px solid rgba(164, 19, 32, 0.28);
  border-left: 4px solid var(--sie-red-ink);
  border-radius: 8px;
  background: var(--sie-red-soft);
  color: var(--sie-text);
  box-shadow: var(--sie-shadow);
}

.register-error-icon {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  margin-top: 1px;
  border: 1px solid var(--sie-red);
  border-radius: 999px;
  background: #fff;
  color: var(--sie-red-ink);
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
}

.register-error-content {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.register-error-title {
  display: block;
  min-width: 0;
  margin: 0;
  color: var(--sie-red-ink);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.4;
}

.register-error-messages {
  display: grid;
  gap: 4px;
  min-width: 0;
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
}

.register-error-messages p {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.register-error-messages p + p {
  padding-top: 5px;
  border-top: 1px solid rgba(164, 19, 32, 0.14);
}

.registration-sections {
  display: grid;
  gap: 16px;
}

.registration-type-question {
  display: grid;
  gap: 12px;
  padding: 16px;
  border: 1px solid rgba(230, 98, 57, 0.22);
  border-radius: 8px;
  background: #fffaf8;
}

.registration-type-question h3 {
  margin: 0;
  font-size: 16px;
  line-height: 1.25;
}

.registration-choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.registration-choice-button {
  display: grid;
  gap: 5px;
  align-content: start;
  min-height: 130px;
  padding: 16px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-align: left;
  cursor: pointer;
}

.registration-choice-button:hover,
.registration-choice-button:focus-visible,
.registration-choice-button.is-selected {
  border-color: var(--sie-primary-line);
  box-shadow: inset 4px 0 0 var(--sie-primary), var(--sie-shadow);
}

.registration-choice-button span {
  width: fit-content;
  color: var(--sie-primary);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.registration-choice-button strong {
  font-size: 17px;
  line-height: 1.2;
}

.registration-choice-button small {
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.45;
}

.registration-sections.is-choice-pending .registration-option-panel,
.registration-sections.has-choice .registration-option-panel {
  display: none;
}

.registration-sections.is-choice-pending {
  display: none;
}

.registration-sections.has-choice .registration-option-panel.is-selected {
  display: grid;
}

.registration-option-panel {
  gap: 11px;
  padding: 16px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.registration-option-panel.is-selected {
  border-color: var(--sie-primary-line);
  box-shadow: inset 4px 0 0 var(--sie-primary);
}

.registration-option-heading {
  display: grid;
  gap: 4px;
  margin-bottom: 2px;
}

.registration-option-heading h3 {
  margin: 0;
  font-size: 18px;
  line-height: 1.25;
}

.registration-option-heading p {
  margin: 0;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.45;
}

.registration-option-kicker {
  width: fit-content;
  color: var(--sie-primary);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.registration-fields-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.registration-fields-grid > div {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.register-validation-note,
.registration-disabled-note {
  display: grid;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid rgba(0, 138, 168, 0.18);
  border-radius: 6px;
  background: var(--sie-cyan-soft);
  color: #0f5f70;
  font-size: 12px;
  line-height: 1.45;
}

.register-validation-note p {
  margin: 0;
}

.registration-flow-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}

.registration-flow-steps span {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  min-width: 0;
  padding: 7px 8px;
  border: 1px solid rgba(0, 138, 168, 0.16);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.68);
  color: #0f5f70;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
}

.registration-flow-steps strong {
  display: inline-flex;
  flex: 0 0 20px;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 999px;
  background: #0f8aa8;
  color: #fff;
  font-size: 11px;
}

.registration-disabled-note {
  border-color: rgba(210, 31, 43, 0.18);
  background: var(--sie-red-soft);
  color: #9f1822;
}

.municipal-email-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
}

.municipal-email-field.is-disabled {
  opacity: 0.58;
}

.municipal-email-field input {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.municipal-email-field span {
  display: inline-flex;
  align-items: center;
  max-width: 280px;
  min-height: 42px;
  padding: 8px 11px;
  border: 1px solid var(--sie-line);
  border-left: 0;
  border-top-right-radius: 6px;
  border-bottom-right-radius: 6px;
  background: #f8fafc;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 800;
  overflow-wrap: anywhere;
}

.municipal-email-exception {
  margin-top: -2px;
}

.municipal-full-email-field {
  display: grid;
  gap: 6px;
}

.field-help {
  margin: -4px 0 4px;
  color: var(--sie-muted);
  font-size: 12px;
}

.privacy-policy-box {
  display: grid;
  gap: 8px;
  max-height: 190px;
  overflow: auto;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
  color: var(--sie-text);
  font-size: 12px;
  line-height: 1.45;
}

.privacy-policy-box strong {
  font-size: 13px;
}

.privacy-policy-box p {
  margin: 0;
}

.checkbox-line {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  color: var(--sie-text);
  font-size: 12px;
  line-height: 1.45;
}

.login-form .checkbox-line input {
  min-height: auto;
  margin-top: 2px;
}

.app-footer {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--sie-line);
  color: var(--sie-muted);
  font-size: 12px;
}

@media (max-width: 980px) {
  .app-shell {
    grid-template-columns: 1fr;
  }

  .sidebar {
    display: none;
  }

  .app-shell.sidebar-open .sidebar {
    display: block;
    min-height: 100vh;
  }

  .profile-municipal .sidebar {
    padding-bottom: 28px;
  }

  .profile-municipal .nav-link {
    min-height: 46px;
    font-size: 13px;
  }

  .profile-municipal .nav-icon {
    width: 28px;
    height: 28px;
  }

  .grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .filter-bar,
  .form-grid,
  .check-grid,
  .detail-grid,
  .attention-grid,
  .attention-inline-grid,
  .routine-grid,
  .operational-insight-grid,
  .operational-decision-strip,
  .score-rule-grid,
  .municipal-guide-flow,
  .municipal-guide-notes,
  .municipal-action-list,
  .profile-scope-layout,
  .profile-scope-metrics,
  .profile-scope-metrics-wide,
  .pending-card-grid,
  .operational-pending-mini-grid,
  .data-quality-meter-grid,
  .quick-action,
  .quick-action-start,
  .shortcut-grid,
  .dashboard-grid,
  .dashboard-workbench,
  .home-overview-grid,
  .home-content-grid,
  .home-footer-grid,
  .state-summary-grid,
  .state-pending-grid,
  .state-detail-grid,
  .report-decision-grid,
  .weather-dashboard-grid,
  .compact-list-columns,
  .hospital-detail-layout,
  .reports-visual-grid,
  .operational-report-page .two-columns,
  .coordinate-editor-layout,
  .coordinate-editor-fields {
    grid-template-columns: 1fr;
  }

  .municipal-action-card {
    grid-template-columns: 88px minmax(0, 1fr) auto;
  }

  .municipal-action-card em {
    grid-column: 2 / -1;
    justify-self: start;
  }

  .profile-scope-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .profile-scope-actions .btn {
    width: 100%;
  }

  .operational-workbench {
    grid-template-columns: 1fr;
  }

  .operational-decision-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .score-rule-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .operations-panel,
  .pending-fill-alert {
    grid-template-columns: 1fr;
  }

  .weather-map-page .weather-dashboard-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hydro-command-grid,
  .hydro-quality-grid,
  .hydro-source-profile,
  .hydro-highlight-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .system-alert-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .system-alert-title {
    grid-column: 1 / -1;
  }

  .lookup-row,
  .password-generator-row {
    grid-template-columns: 1fr;
  }

  .lookup-row .btn,
  .password-generator-row .btn {
    justify-self: start;
  }

  .pending-fill-alert .btn {
    justify-self: start;
  }

  .operations-state {
    justify-items: start;
  }

  .signal-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-content-grid .panel {
    min-height: auto;
  }

  .form-sections {
    gap: 14px;
  }

  .form-section {
    gap: 10px;
    padding-bottom: 16px;
  }

  .helper-panel {
    padding: 12px;
  }

  .quick-action .field:only-of-type {
    grid-column: auto;
  }

  .quick-action .btn {
    justify-self: start;
  }

  .occurrence-grid-main,
  .occurrence-grid-reminders,
  .occurrence-scope-grid {
    grid-template-columns: 1fr 1fr;
  }

  .occurrence-grid-reminders,
  .occurrence-scope-grid {
    grid-template-columns: 1fr;
  }

  .occurrence-grid-main .span-2,
  .occurrence-scope-grid .span-2,
  .occurrence-scope-grid [data-scope-panel],
  .occurrence-scope-grid [data-scope-panel="HOSPITAL"] {
    grid-column: 1 / -1;
  }

  .span-2 {
    grid-column: span 1;
  }

  .span-3 {
    grid-column: span 1;
  }
}

@media (max-width: 620px) {
  .topbar,
  .page {
    padding-left: 16px;
    padding-right: 16px;
  }

  .system-alert-bar {
    grid-template-columns: 1fr;
  }

  .system-operational-bar {
    align-items: flex-start;
    flex-direction: column;
    gap: 2px;
    padding-left: 16px;
    padding-right: 16px;
  }

  .system-operational-bar strong::after {
    content: "";
  }

  .system-alert-bar > div {
    min-height: 48px;
    border-right: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.14);
  }

  .system-alert-title strong {
    font-size: 17px;
  }

  .grid {
    grid-template-columns: 1fr;
  }

  .hydro-command-grid,
  .hydro-quality-grid,
  .hydro-source-profile,
  .hydro-highlight-grid {
    grid-template-columns: 1fr;
  }

  .hydro-refresh-note {
    width: 100%;
    text-align: left;
  }

  .signal-grid {
    grid-template-columns: 1fr;
  }

  .routine-grid,
  .municipal-guide-flow,
  .municipal-guide-notes,
  .municipal-action-list,
  .profile-scope-layout,
  .profile-scope-metrics,
  .profile-scope-metrics-wide,
  .pending-card-grid,
  .operational-pending-mini-grid,
  .data-quality-meter-grid,
  .home-overview-grid .signal-grid,
  .home-quick-actions {
    grid-template-columns: 1fr;
  }

  .municipal-action-card {
    grid-template-columns: 1fr auto;
  }

  .municipal-action-priority {
    justify-self: start;
  }

  .municipal-action-card div,
  .municipal-action-card em {
    grid-column: 1 / -1;
  }

  .form-actions {
    position: sticky;
    bottom: 0;
    z-index: 20;
    margin-left: -16px;
    margin-right: -16px;
    padding: 10px 16px;
    border-top: 1px solid var(--sie-line);
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.08);
  }

  .form-actions .btn {
    flex: 1 1 140px;
  }

  .vigidesastres-form .form-actions {
    align-items: stretch;
    flex-direction: column-reverse;
    gap: 8px;
    margin-left: -12px;
    margin-right: -12px;
    padding: 10px 12px;
  }

  .vigidesastres-form .form-actions .btn {
    flex: none;
    width: 100%;
  }

  .hospital-response-form {
    padding: 12px;
  }

  .hospital-response-form .form-section {
    padding: 14px;
  }

  .occurrence-form {
    padding: 12px;
  }

  .occurrence-section {
    padding: 14px;
  }

  .occurrence-grid,
  .occurrence-grid-main,
  .occurrence-grid-reminders,
  .occurrence-scope-grid {
    grid-template-columns: 1fr;
  }

  .occurrence-grid-main .span-2,
  .occurrence-scope-grid .span-2,
  .occurrence-scope-grid [data-scope-panel],
  .occurrence-scope-grid [data-scope-panel="HOSPITAL"] {
    grid-column: 1;
  }

  .hospital-response-form .field input,
  .hospital-response-form .field select,
  .hospital-response-form .field textarea {
    min-height: 44px;
    font-size: 15px;
  }

  .hospital-response-form .form-actions .btn {
    min-height: 44px;
    font-size: 14px;
    font-weight: 700;
  }

  .inline-actions .btn {
    flex: 1 1 130px;
  }

  .weather-matrix-table {
    min-width: 980px;
  }

  .weather-matrix-table th:first-child,
  .weather-matrix-table td:first-child {
    width: 150px;
  }

  .weather-matrix-table th:nth-child(2),
  .weather-matrix-table td:nth-child(2) {
    width: 64px;
  }

  .weather-matrix-table th:nth-child(3),
  .weather-matrix-table td:nth-child(3) {
    width: 58px;
  }

  .weather-matrix-table th:nth-child(4),
  .weather-matrix-table td:nth-child(4) {
    width: 78px;
  }

  .weather-matrix-table th:nth-child(5),
  .weather-matrix-table td:nth-child(5) {
    width: 110px;
  }

  .hydro-map-layout {
    grid-template-columns: 1fr;
  }

  .hydro-map,
  .hydro-detail-panel {
    min-height: 520px;
  }

  .hydro-detail-panel {
    max-height: none;
  }

  .modal-backdrop {
    align-items: stretch;
    justify-items: stretch;
    width: 100vw;
    height: 100vh;
    padding: 12px;
  }

  .modal-backdrop-compact {
    align-items: center;
    justify-items: center;
    padding: 10px;
  }

  .modal-backdrop-compact .modal-panel {
    width: 100%;
    max-height: calc(100vh - 20px);
  }

  .modal-backdrop-compact .modal-body {
    max-height: calc(100vh - 170px);
  }

  .modal-header,
  .modal-actions {
    flex-direction: column;
  }

  .map-fullscreen-modal {
    padding: 0;
  }

  .modal-panel-fullscreen {
    border-radius: 0;
  }

  .weather-map-modal-body {
    padding: 0;
  }

  .weather-expanded-map {
    border-right: 0;
    border-left: 0;
    border-radius: 0;
  }

  .modal-actions .btn {
    width: 100%;
  }

  .data-list {
    grid-template-columns: 1fr;
  }

  .lookup-tab-list {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 10px;
  }

  .lookup-tab-button {
    flex: 0 0 auto;
  }

  .json-row {
    grid-template-columns: 1fr;
  }

  .attention-inline-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .login-panel {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .login-aside,
  .login-content {
    padding: 28px;
  }

  .registration-choice-grid {
    grid-template-columns: 1fr;
  }

  .registration-fields-grid {
    grid-template-columns: 1fr;
  }

  .registration-flow-steps {
    grid-template-columns: 1fr;
  }

  .municipal-email-field {
    grid-template-columns: 1fr;
  }

  .municipal-email-field input {
    border-top-right-radius: 6px;
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
  }

  .municipal-email-field span {
    max-width: none;
    border-top: 0;
    border-left: 1px solid var(--sie-line);
    border-top-right-radius: 0;
    border-bottom-left-radius: 6px;
  }

  .app-footer,
  .topbar,
  .welcome-panel,
  .detail-header,
  .section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .welcome-stats {
    justify-content: flex-start;
  }

  .flood-map {
    min-height: 420px;
  }

  .hospital-map {
    min-height: 480px;
  }

  .patient-map {
    min-height: 480px;
  }

  .basic-unit-map {
    min-height: 480px;
  }

  .mini-map,
  .coordinate-picker-map,
  .coordinate-correction-map {
    min-height: 320px;
  }

  .quick-action .btn {
    width: 100%;
  }

  .form-grid input,
  .form-grid select,
  .form-grid textarea,
  .filter-bar input,
  .filter-bar select,
  .filter-bar textarea,
  .check-grid input,
  .check-grid select,
  .check-grid textarea {
    min-height: 44px;
    font-size: 14px;
  }

  .btn {
    min-height: 44px;
    justify-content: center;
  }

  .filter-actions,
  .row-actions {
    width: 100%;
  }

  .filter-actions .btn,
  .row-actions .btn {
    flex: 1 1 140px;
  }

  .timeline-row {
    grid-template-columns: 1fr;
  }

  .timeline-meta {
    justify-items: start;
    white-space: normal;
  }

  .timeline-content {
    padding: 12px;
  }

  .timeline-link {
    min-height: 36px;
    align-items: center;
  }

  .pagination-bar {
    grid-template-columns: 1fr;
  }

  .pagination-controls .btn {
    flex: 1 1 88px;
  }

  .pagination-size a {
    min-height: 36px;
  }
}

/* Responsive containment: keeps wide tables and Leaflet maps inside the viewport. */
html,
body {
  max-width: 100%;
  overflow-x: hidden;
}

img,
svg,
canvas,
video {
  max-width: 100%;
}

.app-main,
.page,
.stack,
.dashboard-stack,
.panel,
.grid,
.dashboard-grid,
.dashboard-workbench,
.home-overview-grid,
.home-content-grid,
.home-footer-grid,
  .weather-dashboard-grid,
  .operations-panel,
  .recent-hospital-response-grid,
  .pending-fill-alert,
.section-heading,
.detail-header,
.hospital-detail-layout,
.coordinate-editor-layout,
.filter-bar,
.form-grid,
.check-grid,
.detail-grid,
.table-wrap {
  min-width: 0;
  max-width: 100%;
}

.panel {
  overflow-wrap: anywhere;
}

.table-wrap {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.table-wrap table {
  margin: 0;
}

th,
td {
  overflow-wrap: anywhere;
}

.row-actions,
.filter-actions,
.map-actions,
.pagination-controls,
.pagination-size {
  min-width: 0;
}

.row-actions .btn,
.filter-actions .btn,
.map-actions .btn,
.map-actions .map-toggle {
  white-space: nowrap;
}

.leaflet-container,
.flood-map,
.weather-mini-map,
.inmet-alert-map,
.mini-map,
.coordinate-picker-map,
.coordinate-correction-map,
.external-map-frame {
  max-width: 100%;
  min-width: 0;
}

.leaflet-container img,
.leaflet-container .leaflet-tile,
.leaflet-container .leaflet-marker-icon,
.leaflet-container .leaflet-marker-shadow,
.leaflet-container canvas,
.leaflet-container svg {
  max-width: none !important;
  max-height: none !important;
}

.flood-map {
  height: clamp(420px, 62vh, 650px);
  min-height: 0;
}

.hospital-map,
.patient-map,
.basic-unit-map {
  height: clamp(460px, 70vh, 660px);
}

.weather-dashboard-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.weather-mini-map {
  height: clamp(180px, 28vh, 240px);
  min-height: 0;
}

.mini-map,
.coordinate-picker-map {
  height: clamp(300px, 45vh, 380px);
  min-height: 0;
}

.coordinate-correction-map {
  height: clamp(340px, 60vh, 540px);
  min-height: 0;
}

@media (max-width: 980px) {
  :root {
    --sie-page-zoom: 1;
  }

  body {
    zoom: 1;
  }

  .page {
    padding: 18px 18px 28px;
  }

  .panel {
    padding: 16px;
  }

  .filter-bar,
  .filter-bar-wide,
  .filter-bar-report,
  .filter-bar-plans,
  .filter-bar-patients,
  .filter-bar-patient-report,
  .filter-bar-report-ubs,
  .filter-bar-report-matrix,
  .filter-bar-vigidesastres,
  .filter-bar-vigidesastres-informe,
  .filter-bar-hospitals,
  .filter-bar-basic-units,
  .filter-bar-operational-risk,
  .filter-bar-map {
    grid-template-columns: 1fr !important;
  }

  .filter-bar-patients > label,
  .filter-bar-patients .patient-filter-search,
  .filter-bar-patients .patient-filter-vulnerability,
  .filter-bar-patients .filter-actions {
    grid-column: auto;
  }

  .filter-bar-map .patient-map-vulnerability-filter {
    grid-column: auto;
    min-width: 0;
  }

  .patient-page-actions {
    justify-content: flex-start;
    width: 100%;
  }

  .vigidesastres-kpi-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vigidesastres-operational-filter .field-grow,
  .vigidesastres-record-grid {
    grid-column: auto;
  }

  .vigidesastres-record-grid {
    grid-template-columns: 1fr;
  }

  .filter-actions,
  .map-actions {
    justify-content: flex-start !important;
    width: 100%;
  }

  .filter-actions .btn,
  .map-actions .btn,
  .map-actions .map-toggle {
    flex: 1 1 140px;
    justify-content: center;
  }

  .row-actions form {
    flex: 1 1 130px;
  }

  .row-actions form .btn {
    width: 100%;
  }

  .map-actions .status-chip {
    flex: 1 1 160px;
    min-width: 0;
  }

  .section-heading {
    gap: 12px;
  }

  .state-occurrence-card summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .state-occurrence-numbers,
  .state-action-row {
    justify-content: flex-start;
    width: 100%;
  }

  .state-occurrence-numbers span {
    justify-items: start;
    flex: 1 1 120px;
  }

  .state-counter-row {
    grid-template-columns: 1fr;
  }

  .table-wrap {
    border: 1px solid var(--sie-line);
    border-radius: 8px;
  }

  .table-wrap table {
    width: max-content;
    min-width: 100%;
  }

  .weather-ranking-table {
    min-width: 1500px;
  }

  .report-dense-table,
  .weather-matrix-table,
  .health-matrix-table,
  .operational-risk-table {
    min-width: 940px;
  }

  .operational-section-nav {
    position: static;
  }

  .operational-table-tools {
    justify-content: flex-start;
    width: 100%;
  }

  .segmented-control {
    flex: 1 1 220px;
  }

  .segmented-control button {
    flex: 1 1 0;
  }

  .operational-risk-table .sticky-score {
    width: 228px;
    min-width: 228px;
  }

  .operational-risk-table .sticky-name {
    left: 228px;
    width: 230px;
    min-width: 230px;
  }

  .operational-risk-table .sticky-name strong {
    max-width: 200px;
  }

  .operational-risk-page.is-table-compact .operational-risk-table {
    min-width: 1060px;
  }

  .operational-risk-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .operational-decision-strip {
    grid-template-columns: 1fr;
  }

  .operational-insight-grid {
    grid-template-columns: 1fr;
  }

  .operational-confidence-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .score-rule-grid {
    grid-template-columns: 1fr;
  }

  .operational-risk-page .score-rule-grid {
    grid-template-columns: 1fr;
  }

  .operational-risk-assistant-form {
    grid-template-columns: 1fr;
  }

  .operational-risk-assistant-actions {
    justify-content: flex-start;
  }

  .operational-evidence-summary {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .operational-evidence-layout {
    grid-template-columns: 1fr;
  }

  .operational-action-panel {
    width: min(100%, calc(100vw - 28px));
    height: min(900px, calc(100vh - 28px));
  }

  .operational-action-layout {
    grid-template-columns: 1fr;
  }

  .operational-score-movement {
    grid-template-columns: 1fr;
  }

  .operational-evidence-map {
    height: min(58vh, 520px);
    min-height: 380px;
  }

  .operational-evidence-detail-panel {
    overflow: visible;
    padding-right: 0;
  }

  .system-job-card {
    grid-template-columns: 1fr;
  }

  .system-job-card form,
  .system-job-card .btn {
    width: 100%;
  }

  .vigidesastres-table {
    min-width: 1040px;
  }

  .vigidesastres-informe-header {
    flex-direction: column;
  }

  .report-tabs-main,
  .report-decision-grid,
  .vigidesastres-kpi-grid,
  .vigidesastres-page .map-summary-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vigidesastres-informe-kpis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .vigidesastres-informe-table {
    min-width: 420px;
  }

  .vigidesastres-informe-records {
    min-width: 980px;
  }

  .report-municipality-matrix {
    min-width: 940px;
  }

  .flood-map {
    height: min(64vh, 520px);
  }

  .hospital-map,
  .patient-map,
  .basic-unit-map {
    height: min(68vh, 540px);
  }

  .weather-mini-map {
    height: 220px;
  }

  .inmet-alert-card-head,
  .inmet-alert-layout {
    grid-template-columns: 1fr;
  }

  .inmet-alert-card-state {
    justify-items: start;
  }

  .inmet-alert-map {
    height: min(64vh, 500px);
    min-height: 340px;
  }

  .roads-map-frame {
    min-height: 420px;
    aspect-ratio: 3 / 4;
  }
}

@media (max-width: 620px) {
  .page {
    padding: 14px 10px 24px;
  }

  .weather-map-page .weather-dashboard-grid {
    grid-template-columns: 1fr;
  }

  .operational-evidence-modal {
    padding: 8px;
  }

  .operational-evidence-body {
    padding: 12px;
    overflow: auto;
  }

  .operational-action-modal {
    padding: 8px;
  }

  .operational-action-body {
    padding: 12px;
    overflow: auto;
  }

  .operational-action-panel {
    width: calc(100vw - 16px);
    height: calc(100vh - 16px);
  }

  .operational-evidence-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .operational-score-rule-grid {
    grid-template-columns: 1fr;
  }

  .operational-evidence-breakdown .score-driver {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .operational-evidence-breakdown .score-driver strong,
  .operational-evidence-breakdown .score-driver small {
    grid-column: 2;
  }

  .operational-evidence-breakdown .score-driver strong {
    justify-self: start;
  }

  .operational-action-context-list {
    grid-template-columns: 1fr;
  }

  .operational-confidence-grid {
    grid-template-columns: 1fr;
  }

  .operational-risk-page .score-method-grid,
  .operational-risk-page .score-formula-list,
  .operational-risk-page .score-rule-grid {
    grid-template-columns: 1fr;
  }

  .operational-risk-page .score-method-card,
  .operational-risk-page .score-rule-card {
    min-height: 0;
  }

  .operational-risk-page .score-formula-panel {
    padding: 12px;
  }

  .operational-evidence-map {
    height: 360px;
    min-height: 320px;
  }

  .operational-risk-action-note {
    min-width: 220px;
  }

  .operational-section-nav a {
    flex: 1 1 calc(50% - 6px);
    justify-content: center;
  }

  .operational-risk-table .sticky-col {
    position: static;
    box-shadow: none;
  }

  .operational-risk-table .sticky-score,
  .operational-risk-table .sticky-name {
    width: auto;
    min-width: 0;
  }

  .operational-risk-page.is-table-compact .operational-risk-table {
    min-width: 820px;
  }

  .operational-risk-evidence-preview {
    min-width: 170px;
  }

  .topbar {
    flex-direction: row;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    padding: 8px 10px;
  }

  .topbar-title {
    min-width: 0;
    flex: 1 1 170px;
  }

  .topbar-title strong,
  .topbar-title span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .logout-form {
    margin-left: auto;
  }

  .logout-form > .muted {
    display: none;
  }

  .sidebar-toggle {
    width: 38px;
    height: 38px;
  }

  .system-alert-bar > div {
    padding: 8px 12px;
  }

  .system-alert-title strong {
    font-size: 16px;
  }

  .system-alert-bar span {
    font-size: 12px;
  }

  .system-operational-bar {
    padding: 8px 10px;
  }

  .page-title {
    margin-bottom: 12px;
    font-size: 20px;
  }

  .panel {
    padding: 12px;
    border-radius: 8px;
  }

  .metric {
    min-height: 104px;
  }

  .metric-value {
    font-size: 20px;
  }

  .vigidesastres-informe-kpis {
    grid-template-columns: 1fr;
  }

  .report-tabs-main,
  .vigidesastres-kpi-grid,
  .vigidesastres-page .map-summary-strip {
    grid-template-columns: 1fr;
  }

  .report-tabs-main a {
    min-height: 48px;
    padding: 11px 13px;
  }

  .report-active-scope-heading {
    flex-direction: column;
    gap: 8px;
  }

  .table-wrap {
    margin-right: -2px;
    margin-left: -2px;
    padding-bottom: 4px;
  }

  table {
    font-size: 11px;
  }

  th,
  td {
    padding: 7px 8px;
  }

  th {
    font-size: 9px;
  }

  td strong {
    font-size: 11px;
  }

  td .muted,
  td small {
    font-size: 10px;
  }

  .status-badge,
  .status-chip {
    min-height: 24px;
    padding: 3px 7px;
    font-size: 11px;
  }

  .map-actions {
    gap: 6px;
  }

  .map-actions .status-chip {
    flex: 1 1 calc(50% - 6px);
  }

  .map-actions .btn,
  .map-actions .map-toggle {
    min-height: 38px;
    flex: 1 1 calc(50% - 6px);
    padding: 6px 8px;
  }

  .flood-map {
    height: min(62vh, 390px);
  }

  .hospital-map,
  .patient-map,
  .basic-unit-map {
    height: min(66vh, 420px);
  }

  .weather-mini-map {
    height: 190px;
  }

  .mini-map,
  .coordinate-picker-map,
  .coordinate-correction-map {
    height: min(58vh, 340px);
  }

  .weather-ranking-table {
    min-width: 1180px;
  }

  .report-dense-table,
  .weather-matrix-table,
  .health-matrix-table {
    min-width: 900px;
  }

  .report-municipality-matrix {
    min-width: 820px;
  }

  .pagination-bar {
    gap: 8px;
  }
}

@media print {
  body {
    zoom: 1;
    background: #fff;
    color: #000;
  }

  .sidebar,
  .topbar,
  .system-alert-bar,
  .system-operational-bar,
  .app-footer,
  .breadcrumbs,
  .no-print {
    display: none !important;
  }

  .app-shell {
    display: block;
    min-height: auto;
  }

  .page {
    padding: 0;
  }

  .panel,
  .operations-panel {
    box-shadow: none;
    break-inside: avoid;
  }

  .temporary-shelter-guidance-summary {
    display: none;
  }

  .temporary-shelter-guidance-layout {
    display: block;
  }

  .temporary-shelter-guidance-section {
    overflow: visible;
    break-inside: auto;
    page-break-before: always;
  }

  .temporary-shelter-guidance-item {
    grid-template-columns: 42% 58%;
    break-inside: avoid;
  }

  .temporary-shelter-guidance-print-note {
    display: block;
    grid-column: 1 / -1;
    min-height: 36px;
    padding: 8px 12px;
    border-top: 1px solid #cbd5e1;
    color: #475569;
    font-size: 10px;
  }

  .temporary-shelter-guidance-source {
    break-inside: avoid;
  }

  .operations-panel {
    border-left-width: 2px;
  }

  .operational-report-page .two-columns {
    grid-template-columns: 1fr;
  }

  .table-wrap {
    overflow: visible;
  }

  table {
    min-width: 0 !important;
    font-size: 10px;
  }

  th,
  td {
    padding: 5px 6px;
  }
}

/* Gestão integrada da resposta */
.response-management-page {
  --response-strategic: #6431a8;
  --response-tactical: #1769a7;
  --response-operational: #16805b;
  font-size: 13px;
}

.response-hero {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px;
}

.response-hero h1 {
  margin: 4px 0 6px;
  font-size: clamp(25px, 3vw, 36px);
}

.response-occurrence-picker {
  display: grid;
  grid-template-columns: minmax(240px, 1.35fr) minmax(210px, 1fr);
  gap: 10px;
  width: min(720px, 100%);
}

.response-occurrence-picker label,
.response-occurrence-picker span {
  display: block;
}

.response-occurrence-picker span {
  margin-bottom: 5px;
  color: var(--muted, #64748b);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
}

.response-occurrence-picker select {
  width: 100%;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  background: #fff;
}

.response-occurrence-header {
  border-left: 5px solid var(--response-strategic);
}

.response-command-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr);
  gap: 16px;
}

.response-mode-card,
.response-period-card {
  min-height: 220px;
}

.response-mode-card blockquote {
  margin: 14px 0 0;
  padding: 12px 14px;
  border-left: 3px solid #94a3b8;
  border-radius: 0 8px 8px 0;
  background: #f8fafc;
  color: #334155;
}

.response-inline-details {
  margin-top: 16px;
  border-top: 1px solid #e2e8f0;
  padding-top: 12px;
}

.response-inline-details summary {
  cursor: pointer;
  color: #175cd3;
  font-weight: 700;
}

.response-mode-form {
  margin-top: 15px;
}

.response-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.response-plan-panel > .section-header {
  align-items: flex-start;
}

.response-tree {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.response-node {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  margin-left: calc(var(--response-depth, 0) * 24px);
  padding: 16px;
  border: 1px solid #dbe3ed;
  border-left: 5px solid var(--response-operational);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 12px rgba(15, 23, 42, .04);
}

.response-node-estrategico { border-left-color: var(--response-strategic); background: #fcfaff; }
.response-node-tatico { border-left-color: var(--response-tactical); background: #fafdff; }
.response-node-operacional { border-left-color: var(--response-operational); }

.response-node-heading,
.response-node-meta,
.response-node-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.response-node h3 {
  margin: 7px 0;
  font-size: 17px;
}

.response-node h3 a {
  color: #172033;
  text-decoration: none;
}

.response-node h3 a:hover { color: #175cd3; }

.response-level {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 3px 9px;
  border-radius: 999px;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.response-level-estrategico { background: var(--response-strategic); }
.response-level-tatico { background: var(--response-tactical); }
.response-level-operacional { background: var(--response-operational); }

.response-node-meta {
  color: #64748b;
  font-size: 12px;
}

.response-node-meta span:not(:last-child)::after {
  content: "·";
  margin-left: 8px;
}

.response-progress {
  width: min(520px, 100%);
  height: 8px;
  margin: 12px 0 4px;
  overflow: hidden;
  border-radius: 999px;
  background: #e5eaf1;
}

.response-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #2675dd, #12a274);
}

.response-node-actions {
  align-content: flex-start;
  justify-content: flex-end;
  max-width: 320px;
}

.response-node-actions form,
.detail-header .filter-actions form {
  margin: 0;
}

.response-children {
  display: grid;
  gap: 10px;
  position: relative;
}

.response-children::before {
  content: "";
  position: absolute;
  top: -12px;
  bottom: 14px;
  left: 10px;
  border-left: 2px solid #dbe3ed;
}

.response-mode-history,
.response-timeline {
  display: grid;
  gap: 12px;
}

.response-mode-history article,
.response-timeline article {
  position: relative;
  padding: 12px 14px;
  border-left: 3px solid #94a3b8;
  border-radius: 0 8px 8px 0;
  background: #f8fafc;
}

.response-mode-history article > span,
.response-timeline article > span {
  display: block;
  margin: 3px 0 7px;
  color: #64748b;
  font-size: 12px;
}

.response-mode-history p,
.response-timeline p { margin: 5px 0 0; }

.response-item-form {
  display: grid;
  gap: 24px;
}

.response-form-section {
  display: grid;
  grid-template-columns: minmax(190px, .35fr) minmax(0, 1fr);
  gap: 24px;
  padding-bottom: 24px;
  border-bottom: 1px solid #e2e8f0;
}

.response-form-section > div:first-child > span {
  display: inline-grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: #e8f0ff;
  color: #175cd3;
  font-weight: 800;
}

.response-form-section h3 { margin: 9px 0 4px; font-size: 17px; }
.response-form-section p { margin: 0; color: #64748b; font-size: 13px; }
.response-optional-fields {
  padding: 10px 12px;
  border: 1px dashed var(--sie-line);
  border-radius: 8px;
  background: #fafbfc;
}
.response-optional-fields summary { cursor: pointer; color: var(--sie-primary); font-size: 12px; font-weight: 700; }
.response-optional-fields[open] summary { margin-bottom: 12px; }
.response-default-note {
  padding: 10px 12px;
  border-left: 4px solid var(--sie-cyan);
  border-radius: 7px;
  background: var(--sie-cyan-soft);
  color: var(--sie-muted);
  font-size: 12px;
}
.response-form-submit { align-items: center; }
.response-form-submit > span { margin-right: auto; color: var(--sie-muted); font-size: 11px; }
.response-metric-date { font-size: 17px; }
.response-detail-grid { align-items: start; }

@media (max-width: 980px) {
  .response-command-grid,
  .response-form-section {
    grid-template-columns: 1fr;
  }

  .response-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .response-node { grid-template-columns: 1fr; margin-left: calc(var(--response-depth, 0) * 12px); }
  .response-node-actions { justify-content: flex-start; max-width: none; }
}

@media (max-width: 640px) {
  .response-hero { align-items: stretch; flex-direction: column; }
  .response-summary { grid-template-columns: 1fr; }
  .response-node { margin-left: 0; padding: 13px; }
  .response-children::before { display: none; }
}

/* Abastecimento de água */
.water-supply-filters {
  grid-template-columns: minmax(250px, 1.5fr) repeat(5, minmax(150px, 1fr)) auto;
  align-items: end;
}

.water-supply-filters label {
  min-width: 0;
}

.water-supply-filters input,
.water-supply-filters select {
  width: 100%;
}

.water-supply-map {
  min-height: 520px;
}

.water-map-actions,
.water-legend {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.water-legend {
  font-size: 12px;
  color: var(--sie-muted);
}

.water-legend i {
  display: inline-block;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #fff, 0 0 0 3px rgba(15, 23, 42, 0.12);
}

.water-status-inside { background: #15803d; }
.water-status-outside { background: #dc2626; }
.water-status-center { background: #2563eb; }
.water-status-pending { background: #d97706; }

.water-metric-inside { border-bottom: 3px solid #15803d; }
.water-metric-outside { border-bottom: 3px solid #dc2626; }
.water-metric-center { border-bottom: 3px solid #2563eb; }
.water-metric-pending { border-bottom: 3px solid #d97706; }

.water-validation {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.3;
}

.water-validation-dentro {
  color: #166534;
  background: #dcfce7;
}

.water-validation-fora {
  color: #991b1b;
  background: #fee2e2;
}

.water-validation-centro_municipio {
  color: #1e40af;
  background: #dbeafe;
}

.water-validation-sem_coordenada,
.water-validation-coordenada_invalida,
.water-validation-municipio_nao_encontrado,
.water-validation-malha_ausente {
  color: #92400e;
  background: #fef3c7;
}

.water-row-fora td {
  background: rgba(254, 226, 226, 0.32);
}

.water-coordinate {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.water-coordinate-history {
  color: #991b1b;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.water-table-limit {
  margin-bottom: 12px;
}

.water-popup {
  min-width: 260px;
}

.water-popup-alert,
.water-popup-center,
.water-popup-ok {
  margin: 10px 0;
  padding: 8px 10px;
  border-radius: 7px;
  font-size: 12px;
}

.water-popup-center {
  border-left: 4px solid #2563eb;
  background: #eff6ff;
  color: #1e3a8a;
}

.water-popup-alert {
  border-left: 4px solid #dc2626;
  background: #fef2f2;
  color: #7f1d1d;
}

.water-popup-ok {
  border-left: 4px solid #15803d;
  background: #f0fdf4;
  color: #14532d;
}

.water-popup dl {
  display: grid;
  grid-template-columns: 115px 1fr;
  gap: 4px 8px;
  margin: 8px 0 0;
}

.water-popup dt {
  color: #64748b;
  font-weight: 600;
}

.water-popup dd {
  margin: 0;
}

@media (max-width: 1280px) {
  .water-supply-filters {
    grid-template-columns: repeat(3, minmax(180px, 1fr));
  }
}

@media (max-width: 760px) {
  .water-supply-filters {
    grid-template-columns: 1fr;
  }

  .water-supply-map {
    min-height: 430px;
  }
}

/* Central de ajuda e protocolos */
.help-opening-panel {
  width: min(100%, 1040px);
}

.help-opening-content {
  align-content: start;
}

.help-opening-form textarea {
  width: 100%;
  min-height: 138px;
  padding: 10px 12px;
  border: 1px solid var(--sie-line);
  border-radius: 6px;
  background: #fff;
  color: var(--sie-text);
  resize: vertical;
}

.help-opening-form textarea:focus {
  border-color: var(--sie-primary);
  box-shadow: 0 0 0 3px var(--sie-primary-soft);
  outline: 0;
}

.help-field-grid {
  display: grid;
  gap: 8px;
}

.help-field-grid small {
  margin-top: -3px;
}

.help-channel-note,
.help-conclusion-meta {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border-left: 4px solid var(--sie-primary);
  border-radius: 4px;
  background: var(--sie-primary-soft);
  color: #7c2d12;
  font-size: 12px;
  line-height: 1.5;
}

.help-success-mark {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  border-radius: 999px;
  background: var(--sie-green-soft);
  color: var(--sie-green);
  font-size: 28px;
  font-weight: 800;
}

.help-protocol-number {
  display: grid;
  gap: 5px;
  padding: 16px;
  border: 1px solid var(--sie-primary-line);
  border-radius: 8px;
  background: var(--sie-primary-soft);
}

.help-protocol-number span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

.help-protocol-number strong {
  color: var(--sie-primary-dark);
  font-size: clamp(20px, 3vw, 28px);
  letter-spacing: .03em;
}

.auth-shell:has(.help-public-page) {
  align-items: start;
  justify-items: stretch;
}

.help-public-page {
  width: min(100%, 1240px);
  margin: 0 auto;
}

.help-public-page [hidden] {
  display: none !important;
}

.help-public-header,
.help-public-brand,
.help-close-panel {
  display: flex;
  gap: 12px;
  align-items: center;
}

.help-public-header {
  justify-content: space-between;
  margin-bottom: 16px;
}

.help-public-brand {
  color: var(--sie-text);
  text-decoration: none;
}

.help-public-brand span {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 7px;
  background: var(--sie-primary);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
}

.help-public-layout,
.help-admin-detail-grid {
  display: grid;
  grid-template-columns: minmax(250px, .34fr) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.help-public-summary,
.help-requester-card {
  position: sticky;
  top: 16px;
}

.help-public-summary h1 {
  margin: 5px 0 12px;
  font-size: 24px;
}

.help-public-summary dl,
.help-requester-card dl {
  display: grid;
  gap: 0;
  margin: 16px 0;
}

.help-public-summary dl div,
.help-requester-card dl div {
  display: grid;
  gap: 3px;
  padding: 9px 0;
  border-bottom: 1px solid var(--sie-line);
}

.help-public-summary dt,
.help-requester-card dt {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
}

.help-public-summary dd,
.help-requester-card dd {
  margin: 0;
  overflow-wrap: anywhere;
  font-size: 13px;
  font-weight: 600;
}

.help-requester-account {
  display: grid;
  gap: 12px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 2px solid var(--sie-line);
}

.help-requester-account-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.help-requester-account-heading h3 {
  margin: 3px 0 0;
  font-size: 15px;
}

.help-requester-account dl {
  margin: 0;
}

.help-requester-email-warning {
  margin: 0;
  padding: 9px 10px;
  font-size: 11px;
}

.help-requester-account-link {
  width: 100%;
}

.help-conversation-column,
.help-thread {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.help-thread {
  max-height: min(58vh, 680px);
  overflow-x: hidden;
  overflow-y: auto;
  padding: 2px 5px 4px 2px;
  scroll-behavior: smooth;
  scrollbar-color: #cbd5e1 transparent;
  scrollbar-width: thin;
}

.help-thread-panel {
  overflow: hidden;
}

.help-message {
  display: grid;
  gap: 8px;
  max-width: 88%;
  padding: 12px 14px;
  border: 1px solid var(--sie-line);
  border-radius: 10px;
  background: #fff;
}

.help-message-solicitante {
  justify-self: end;
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
}

.help-message-admin_ses {
  justify-self: start;
  border-color: rgba(20, 184, 166, .24);
  background: #f0fdfa;
}

.help-message-sistema {
  justify-self: center;
  max-width: 100%;
  border-style: dashed;
  background: #f8fafc;
}

.help-message-assistente {
  justify-self: start;
  max-width: 94%;
  border-color: #bae6fd;
  background: #f0f9ff;
  box-shadow: inset 3px 0 0 #0284c7;
}

.help-message header {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  align-items: baseline;
}

.help-message header span,
.help-message header time {
  color: var(--sie-muted);
  font-size: 10px;
}

.help-message header time {
  margin-left: auto;
}

.help-message p {
  margin: 0;
  color: #334155;
  font-size: 13px;
  line-height: 1.6;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.help-message-typing {
  min-width: 180px;
}

.help-typing-dots {
  display: inline-flex;
  gap: 5px;
  align-items: center;
  min-height: 14px;
}

.help-typing-dots i {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: #0284c7;
  animation: help-typing-pulse 1s ease-in-out infinite;
}

.help-typing-dots i:nth-child(2) {
  animation-delay: .15s;
}

.help-typing-dots i:nth-child(3) {
  animation-delay: .3s;
}

@keyframes help-typing-pulse {
  0%, 60%, 100% { opacity: .35; transform: translateY(0); }
  30% { opacity: 1; transform: translateY(-3px); }
}

.help-reply-panel textarea {
  min-height: 130px;
}

.help-assistant-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.help-assistant-heading h2 {
  margin: 4px 0 0;
}

.help-assistant-counter {
  flex: 0 0 auto;
  padding: 5px 9px;
  border: 1px solid #bae6fd;
  border-radius: 999px;
  background: #f0f9ff;
  color: #0369a1;
  font-size: 11px;
  font-weight: 700;
}

.help-human-escalation {
  display: flex;
  justify-content: flex-end;
}

.help-escalation-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.help-close-panel {
  justify-content: space-between;
}

.help-close-panel h2,
.help-requester-card h2 {
  margin: 0 0 4px;
  font-size: 16px;
}

.help-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.help-admin-page {
  gap: 16px;
}

.help-admin-page .operations-panel {
  position: relative;
  overflow: hidden;
  min-height: 116px;
  background: linear-gradient(135deg, #fff 0%, #fff 72%, #fff7f3 100%);
}

.help-admin-page .operations-panel::after {
  position: absolute;
  right: -36px;
  bottom: -62px;
  width: 170px;
  height: 170px;
  border: 24px solid rgb(234 88 48 / 7%);
  border-radius: 999px;
  content: "";
  pointer-events: none;
}

.help-admin-page .operations-panel > * {
  position: relative;
  z-index: 1;
}

.help-admin-page .overview-chip {
  display: inline-flex;
  gap: 6px;
  align-items: center;
  min-height: 38px;
  padding: 7px 12px;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  background: #fff7ed;
  color: #9a3412;
  white-space: nowrap;
}

.help-admin-page .overview-chip strong {
  font-size: 20px;
  line-height: 1;
}

.help-admin-page .overview-card {
  position: relative;
  display: grid;
  gap: 4px;
  min-width: 0;
  min-height: 112px;
  padding: 15px 16px;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-top: 3px solid #64748b;
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--sie-shadow);
}

.help-admin-page .overview-card:nth-child(2) {
  border-top-color: #dc2626;
}

.help-admin-page .overview-card:nth-child(3) {
  border-top-color: #d97706;
}

.help-admin-page .overview-card:nth-child(4) {
  border-top-color: #15803d;
}

.help-admin-page .overview-card > span {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.help-admin-page .overview-card > strong {
  color: var(--sie-text);
  font-size: clamp(24px, 2.5vw, 32px);
  line-height: 1.05;
}

.help-admin-page .overview-card > small {
  align-self: end;
  color: var(--sie-muted);
  font-size: 11px;
}

.help-admin-filter-panel,
.help-admin-queue-panel {
  padding: 18px;
}

.help-admin-page .section-heading {
  margin-bottom: 14px;
}

.help-protocol-filter {
  grid-template-columns: minmax(280px, 1.6fr) minmax(220px, .8fr) auto;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}

.help-protocol-filter label > span {
  color: #475569;
  font-size: 11px;
  font-weight: 700;
}

.help-protocol-filter input,
.help-protocol-filter select {
  min-height: 42px;
  border-color: #cbd5e1;
  background: #fff;
  font-size: 13px;
}

.help-protocol-filter .filter-actions {
  align-self: end;
  flex-wrap: nowrap;
}

.help-protocol-filter .btn {
  min-height: 42px;
}

.help-protocol-table {
  width: 100%;
  min-width: 820px;
}

.help-protocol-table th {
  padding: 10px 12px;
  background: #f8fafc;
  color: #64748b;
  font-size: 10px;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.help-protocol-table td {
  padding: 12px;
  vertical-align: middle;
}

.help-protocol-table .empty-state {
  height: 118px;
  padding: 32px;
  background: #fff;
  color: var(--sie-muted);
  text-align: center;
}

.help-invalid-link {
  width: min(100%, 640px);
  margin: 80px auto;
  text-align: center;
}

@media (max-width: 900px) {
  .help-public-layout,
  .help-admin-detail-grid,
  .help-summary-grid {
    grid-template-columns: 1fr;
  }

  .help-public-summary,
  .help-requester-card {
    position: static;
  }

  .help-protocol-filter {
    grid-template-columns: 1fr;
  }

  .help-protocol-filter .filter-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .help-public-header,
  .help-close-panel {
    align-items: stretch;
    flex-direction: column;
  }

  .help-message {
    max-width: 100%;
  }

  .help-assistant-heading,
  .help-escalation-panel,
  .help-human-escalation {
    align-items: stretch;
    flex-direction: column;
  }

  .help-human-escalation .btn {
    width: 100%;
  }

  .help-admin-page .operations-panel {
    grid-template-columns: 1fr;
  }

  .help-admin-page .operations-state {
    justify-items: start;
  }

  .help-protocol-filter .filter-actions,
  .help-protocol-filter .btn {
    width: 100%;
  }
}

/* Importação assistida de pessoas vulneráveis */
.patient-import-page {
  gap: 16px;
}

.patient-import-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-top: 3px solid var(--sie-orange);
}

.patient-import-hero h2,
.patient-import-confirmation h2 {
  margin: 4px 0 6px;
}

.patient-import-hero p,
.patient-import-confirmation p {
  max-width: 760px;
  margin: 0;
  color: var(--sie-muted);
}

.patient-import-flow {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 10px;
  background: var(--sie-line);
  list-style: none;
}

.patient-import-flow li {
  display: grid;
  grid-template-columns: 34px 1fr;
  align-items: center;
  column-gap: 10px;
  min-height: 78px;
  padding: 14px 16px;
  background: #fff;
}

.patient-import-flow li > span {
  display: grid;
  grid-row: 1 / 3;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--sie-line);
  border-radius: 50%;
  background: #f7f8fa;
  color: var(--sie-muted);
  font-weight: 800;
}

.patient-import-flow li strong,
.patient-import-flow li small {
  min-width: 0;
}

.patient-import-flow li small {
  color: var(--sie-muted);
}

.patient-import-flow .is-complete > span {
  border-color: #bbdfc8;
  background: #eaf7ef;
  color: #16723a;
}

.patient-import-flow .is-current {
  background: #fff6f1;
}

.patient-import-flow .is-current > span {
  border-color: var(--sie-orange);
  background: var(--sie-orange);
  color: #fff;
}

.patient-import-privacy {
  border-left: 4px solid #2d6da3;
}

.patient-import-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.patient-import-metrics .metric {
  min-width: 0;
}

.patient-import-metric-ready {
  border-bottom: 3px solid #27864b;
}

.patient-import-metric-review {
  border-bottom: 3px solid #d58a1f;
}

.patient-import-rules,
.patient-import-preview {
  display: grid;
  gap: 14px;
}

.patient-import-rule-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.patient-import-rule-grid > div {
  display: grid;
  gap: 4px;
  padding: 13px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fafbfc;
}

.patient-import-rule-grid span {
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.5;
}

.patient-import-rules details {
  border-top: 1px solid var(--sie-line);
  padding-top: 12px;
}

.patient-import-rules summary {
  width: fit-content;
  color: var(--sie-blue);
  cursor: pointer;
  font-weight: 700;
}

.patient-import-mapping {
  min-width: 760px;
  margin-top: 12px;
}

.patient-import-preview-heading {
  align-items: flex-end;
}

.patient-import-filter {
  min-width: 220px;
}

.patient-import-filter label {
  display: grid;
  gap: 5px;
}

.patient-import-status-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.import-status {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 24px;
  padding: 3px 8px;
  border: 1px solid transparent;
  border-radius: 999px;
  background: #f1f3f5;
  color: #44505c;
  font-size: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.import-status-criar {
  border-color: #b9ddc6;
  background: #eaf7ef;
  color: #176f39;
}

.import-status-atualizar,
.import-status-vincular {
  border-color: #b9d3ed;
  background: #edf5fc;
  color: #215f92;
}

.import-status-bloqueado,
.import-status-erro {
  border-color: #edc1bd;
  background: #fff0ee;
  color: #a3352d;
}

.import-status-sem_alteracao {
  border-color: #d8dce0;
  background: #f5f6f7;
  color: #59636d;
}

.patient-import-table {
  min-width: 1050px;
  table-layout: fixed;
}

.patient-import-table th:nth-child(1) { width: 145px; }
.patient-import-table th:nth-child(2) { width: 220px; }
.patient-import-table th:nth-child(3) { width: 230px; }
.patient-import-table th:nth-child(4) { width: 190px; }
.patient-import-table th:nth-child(5) { width: 265px; }

.patient-import-table td {
  vertical-align: top;
}

.patient-import-table td small {
  display: block;
  margin-top: 3px;
  color: var(--sie-muted);
}

.patient-import-table .import-message {
  margin-top: 7px;
  line-height: 1.4;
}

.patient-import-table .import-message-error {
  color: #9c3028;
}

.patient-import-table .import-message-warning {
  color: #8a5a12;
}

.patient-import-limit {
  margin: 0;
}

.patient-import-confirmation {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, 0.8fr);
  gap: 24px;
  border: 1px solid #f1c7b8;
  background: #fffaf7;
}

.patient-import-confirmation-form {
  display: grid;
  align-content: start;
  gap: 12px;
  padding: 16px;
  border: 1px solid #efd8cd;
  border-radius: 9px;
  background: #fff;
}

.patient-import-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.45;
}

.patient-import-check input {
  flex: 0 0 auto;
  margin-top: 3px;
}

.patient-import-progress {
  grid-column: 1 / -1;
  padding-top: 16px;
  border-top: 1px solid #efd8cd;
}

.patient-import-progress-track {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: #e6e9ec;
}

.patient-import-progress-track span {
  display: block;
  width: 0;
  height: 100%;
  border-radius: inherit;
  background: #27864b;
  transition: width 180ms ease;
}

.patient-import-progress p {
  margin: 8px 0;
}

@media (max-width: 980px) {
  .patient-import-hero,
  .patient-import-preview-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .patient-import-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .patient-import-confirmation {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .patient-import-flow,
  .patient-import-metrics,
  .patient-import-rule-grid {
    grid-template-columns: 1fr;
  }

  .patient-import-hero .patient-page-actions,
  .patient-import-hero .btn,
  .patient-import-filter {
    width: 100%;
  }

  .patient-import-hero .btn {
    justify-content: center;
  }

  .patient-import-confirmation {
    padding: 15px;
  }
}

/* Consulta completa da pessoa vulnerável */
.patient-show-page {
  gap: 16px;
}

.patient-show-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-top: 3px solid var(--sie-blue);
}

.patient-show-title-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 4px 0 5px;
}

.patient-show-title-row h2,
.patient-show-identity p {
  margin: 0;
}

.patient-show-identity p {
  color: var(--sie-muted);
}

.patient-show-privacy {
  border-left: 4px solid #2d6da3;
}

.patient-show-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.patient-show-span {
  grid-column: 1 / -1;
}

.patient-show-section {
  display: grid;
  align-content: start;
  gap: 14px;
  min-width: 0;
}

.patient-show-section .section-heading {
  margin-bottom: 0;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--sie-line);
}

.patient-show-section .section-heading h2 {
  margin-top: 3px;
}

.patient-detail-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
}

.patient-detail-list > div {
  min-width: 0;
  padding: 10px 12px;
  border-bottom: 1px solid #eef0f2;
}

.patient-detail-list > div:nth-last-child(-n + 2) {
  border-bottom: 0;
}

.patient-detail-list dt {
  margin-bottom: 4px;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.patient-detail-list dd {
  margin: 0;
  overflow-wrap: anywhere;
  font-weight: 650;
  line-height: 1.45;
}

.patient-detail-list .patient-detail-full {
  grid-column: 1 / -1;
  border-bottom: 1px solid #eef0f2;
}

.patient-detail-list-wide {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.patient-vulnerability-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.patient-vulnerability-cards article {
  display: grid;
  align-content: start;
  gap: 7px;
  min-width: 0;
  padding: 13px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fafbfc;
}

.patient-vulnerability-cards article strong,
.patient-vulnerability-cards article p {
  overflow-wrap: anywhere;
}

.patient-vulnerability-cards article p {
  margin: 0;
  color: var(--sie-muted);
  line-height: 1.45;
}

.patient-show-observation {
  min-height: 70px;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fafbfc;
  line-height: 1.55;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.patient-history-table {
  min-width: 1040px;
}

.patient-history-table td {
  vertical-align: top;
}

@media (max-width: 980px) {
  .patient-show-hero {
    align-items: stretch;
    flex-direction: column;
  }

  .patient-detail-list-wide,
  .patient-vulnerability-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .patient-show-grid,
  .patient-detail-list,
  .patient-detail-list-wide,
  .patient-vulnerability-cards {
    grid-template-columns: 1fr;
  }

  .patient-show-span,
  .patient-detail-list .patient-detail-full {
    grid-column: auto;
  }

  .patient-detail-list > div {
    border-bottom: 1px solid #eef0f2 !important;
  }

  .patient-show-hero .patient-page-actions,
  .patient-show-hero .btn {
    width: 100%;
  }

  .patient-show-hero .btn {
    justify-content: center;
  }

  .patient-privacy-confirm > section {
    grid-template-columns: 1fr;
    padding: 18px;
  }

  .patient-privacy-confirm footer {
    grid-column: auto;
    flex-direction: column-reverse;
  }

  .patient-privacy-confirm footer .btn {
    width: 100%;
  }
}

/* Fluxo integrado da rotina de gestão estadual */
.response-workspace {
  display: grid;
  gap: 18px;
  padding: 0;
  overflow: hidden;
}

.response-workspace-context {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto auto;
  align-items: center;
  gap: 18px;
  padding: 16px 18px 0;
}

.response-workspace-context h2,
.response-workspace-context p { margin: 3px 0 0; }
.response-workspace-context p { color: var(--sie-muted); font-size: 12px; }

.response-context-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.response-context-badges > span {
  display: grid;
  gap: 2px;
  min-width: 105px;
  padding: 7px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}
.response-context-badges small { color: var(--sie-muted); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.response-context-badges strong { font-size: 11px; }
.response-context-badges .is-ready { border-color: rgba(18, 162, 116, .3); background: rgba(18, 162, 116, .07); }
.response-context-badges .is-pending { border-color: rgba(183, 121, 31, .32); background: var(--sie-yellow-soft); }

.response-journey {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0 18px;
  padding: 0;
  list-style: none;
}

.response-journey li {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 7px 10px 7px 0;
  border-bottom: 3px solid #dbe3ed;
  color: var(--sie-muted);
}

.response-journey li > span {
  display: inline-grid;
  place-items: center;
  width: 25px;
  height: 25px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #e8edf3;
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
}
.response-journey strong,
.response-journey small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.response-journey strong { font-size: 11px; }
.response-journey small { margin-top: 2px; font-size: 9px; }
.response-journey li.is-done { border-color: var(--sie-green); color: var(--sie-text); }
.response-journey li.is-done > span { background: var(--sie-green); color: #fff; }
.response-journey li.is-current { border-color: var(--sie-primary); color: var(--sie-text); }
.response-journey li.is-current > span { background: var(--sie-primary); color: #fff; }

.response-next-action {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 18px;
  border-top: 1px solid var(--sie-primary-line);
  border-bottom: 1px solid var(--sie-primary-line);
  background: linear-gradient(90deg, var(--sie-primary-soft), #fff 75%);
}
.response-next-number {
  display: inline-grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--sie-primary);
  color: #fff;
  font-size: 17px;
  font-weight: 800;
}
.response-next-action h2 { margin: 3px 0; font-size: 18px; }
.response-next-action p { margin: 0; color: var(--sie-muted); font-size: 12px; }
.response-waiting { padding: 8px 11px; border-radius: 8px; background: #eef2f7; color: var(--sie-muted); font-size: 11px; font-weight: 700; }

.response-other-actions { padding: 0 18px 14px; }
.response-other-actions summary { cursor: pointer; color: var(--sie-primary); font-size: 11px; font-weight: 700; }
.response-other-actions > div { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.response-other-actions a { padding: 6px 9px; border: 1px solid var(--sie-line); border-radius: 7px; color: var(--sie-text); font-size: 11px; text-decoration: none; }
.response-other-actions a:hover { border-color: var(--sie-primary-line); background: var(--sie-primary-soft); }

.response-filling-guide {
  padding: 0;
  overflow: hidden;
  border-color: rgba(23, 105, 167, .24);
}

.response-filling-guide > summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 11px;
  align-items: center;
  padding: 14px 16px;
  cursor: pointer;
  list-style: none;
  background: linear-gradient(90deg, rgba(23, 105, 167, .07), rgba(255, 255, 255, .96));
}

.response-filling-guide > summary::-webkit-details-marker {
  display: none;
}

.response-guide-summary-icon {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--response-tactical);
  color: #fff;
  font-size: 14px;
  font-weight: 800;
}

.response-filling-guide > summary > span:nth-child(2) {
  display: grid;
  gap: 2px;
}

.response-filling-guide > summary strong {
  color: var(--sie-text);
  font-size: 13px;
}

.response-filling-guide > summary small {
  color: var(--sie-muted);
  font-size: 10px;
}

.response-guide-toggle {
  color: var(--sie-primary);
  font-size: 0;
  font-weight: 700;
}

.response-guide-toggle::before {
  content: "Ocultar orientações";
  font-size: 10px;
}

.response-filling-guide:not([open]) .response-guide-toggle::before {
  content: "Mostrar orientações";
}

.response-filling-guide[open] > summary {
  border-bottom: 1px solid rgba(23, 105, 167, .2);
}

.response-guide-content {
  display: grid;
  gap: 18px;
  padding: 18px;
}

.response-guide-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
  gap: 18px;
  align-items: center;
}

.response-guide-intro h2 {
  margin: 6px 0 4px;
  font-size: 18px;
}

.response-guide-intro p {
  max-width: 900px;
  margin: 0;
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.55;
}

.response-guide-rule {
  display: grid;
  gap: 4px;
  padding: 12px 14px;
  border: 1px solid rgba(100, 49, 168, .22);
  border-left: 4px solid var(--response-strategic);
  border-radius: 8px;
  background: #fcfaff;
}

.response-guide-rule strong {
  color: var(--response-strategic);
  font-size: 10px;
  text-transform: uppercase;
}

.response-guide-rule span {
  color: var(--sie-text);
  font-size: 11px;
  line-height: 1.5;
}

.response-guide-flow {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.response-guide-flow li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 9px;
  align-content: start;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-top: 3px solid var(--response-tactical);
  border-radius: 8px;
  background: #fff;
}

.response-guide-flow li > span {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #eaf3fb;
  color: var(--response-tactical);
  font-size: 10px;
  font-weight: 800;
}

.response-guide-flow li > div {
  min-width: 0;
}

.response-guide-flow strong {
  display: block;
  margin: 3px 0 7px;
  color: var(--sie-text);
  font-size: 11px;
  line-height: 1.3;
}

.response-guide-flow p {
  margin: 0 0 6px;
  color: var(--sie-muted);
  font-size: 9px;
  line-height: 1.5;
}

.response-guide-flow p:last-child {
  margin-bottom: 0;
}

.response-guide-flow p b {
  color: var(--sie-text);
}

.response-guide-reference {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(290px, .7fr);
  gap: 14px;
  padding-top: 16px;
  border-top: 1px solid var(--sie-line);
}

.response-guide-reference-heading h3,
.response-field-guide h3 {
  margin: 0 0 3px;
  font-size: 13px;
}

.response-guide-reference-heading p {
  margin: 0 0 10px;
  color: var(--sie-muted);
  font-size: 10px;
}

.response-level-guide-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.response-level-guide-grid article {
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 11px 12px;
  border: 1px solid var(--sie-line);
  border-left: 4px solid var(--response-operational);
  border-radius: 8px;
  background: #fff;
}

.response-level-guide-grid article.is-strategic {
  border-left-color: var(--response-strategic);
  background: #fcfaff;
}

.response-level-guide-grid article.is-tactical {
  border-left-color: var(--response-tactical);
  background: #fafdff;
}

.response-level-guide-grid article.is-operational {
  border-left-color: var(--response-operational);
  background: #fafffd;
}

.response-level-guide-grid article > span {
  color: var(--sie-muted);
  font-size: 8px;
  font-weight: 800;
  text-transform: uppercase;
}

.response-level-guide-grid article > strong {
  font-size: 10px;
  line-height: 1.4;
}

.response-level-guide-grid article p,
.response-level-guide-grid article small {
  margin: 0;
  color: var(--sie-muted);
  font-size: 9px;
  line-height: 1.45;
}

.response-level-guide-grid article small {
  padding-top: 6px;
  border-top: 1px dashed var(--sie-line);
  color: var(--sie-text);
  font-style: italic;
}

.response-field-guide {
  padding: 12px 14px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}

.response-field-guide dl {
  display: grid;
  gap: 0;
  margin: 7px 0 0;
}

.response-field-guide dl > div {
  display: grid;
  gap: 2px;
  padding: 7px 0;
  border-bottom: 1px solid var(--sie-line);
}

.response-field-guide dl > div:last-child {
  border-bottom: 0;
}

.response-field-guide dt {
  color: var(--sie-text);
  font-size: 9px;
  font-weight: 800;
}

.response-field-guide dd {
  margin: 0;
  color: var(--sie-muted);
  font-size: 9px;
  line-height: 1.45;
}

.response-action-hub {
  display: grid;
  gap: 12px;
  padding: 16px 18px 18px;
  border-top: 1px solid var(--sie-line);
  background: #f8fafc;
}

.response-action-hub-heading h2 {
  margin: 5px 0 2px;
  font-size: 14px;
}

.response-action-hub-heading p {
  margin: 0;
  color: var(--sie-muted);
  font-size: 10px;
}

.response-action-hub-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.response-action-hub-grid > a {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  min-height: 78px;
  padding: 11px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  text-decoration: none;
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

.response-action-hub-grid > a:hover,
.response-action-hub-grid > a:focus-visible {
  border-color: var(--sie-primary-line);
  box-shadow: 0 5px 14px rgba(15, 23, 42, .08);
  transform: translateY(-1px);
  outline: 0;
}

.response-action-hub-grid > a > span {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  font-size: 9px;
  font-weight: 800;
}

.response-action-hub-grid > a > div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.response-action-hub-grid strong {
  font-size: 10px;
}

.response-action-hub-grid small {
  color: var(--sie-muted);
  font-size: 8px;
  line-height: 1.4;
}

.response-action-hub-grid b {
  color: var(--sie-primary);
  font-size: 15px;
}

.response-context-details,
.response-history-details { padding: 0; overflow: hidden; }
.response-context-details > summary,
.response-history-details > summary,
.state-management-flow-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 16px;
  cursor: pointer;
  list-style: none;
}
.response-context-details > summary::-webkit-details-marker,
.response-history-details > summary::-webkit-details-marker,
.state-management-flow-summary::-webkit-details-marker { display: none; }
.response-context-details > summary strong,
.response-context-details > summary small,
.response-history-details > summary strong,
.response-history-details > summary small,
.state-management-flow-summary strong,
.state-management-flow-summary small { display: block; }
.response-context-details > summary small,
.response-history-details > summary small,
.state-management-flow-summary small { margin-top: 2px; color: var(--sie-muted); font-size: 10px; }
.response-context-details > summary > span:last-child,
.response-history-details > summary > span:last-child,
.state-management-flow-summary > span:last-child { color: var(--sie-primary); font-size: 11px; font-weight: 700; }
.response-context-details[open] > summary,
.response-history-details[open] > summary,
.state-management-flow[open] > summary { border-bottom: 1px solid var(--sie-line); background: #f8fafc; }
.response-context-details .response-command-grid { padding: 16px; }
.response-history-details .table-wrap,
.response-history-details .response-mode-history { margin: 0 16px 16px; }

.state-management-nav {
  padding: 0 14px;
  overflow-x: auto;
}

.state-management-nav.is-embedded {
  border: 0;
  border-top: 1px solid var(--sie-line);
  border-radius: 0;
  box-shadow: none;
}

.state-management-nav-tabs {
  display: flex;
  align-items: stretch;
  gap: 2px;
  min-width: max-content;
  margin: 0;
  padding: 0;
  list-style: none;
}

.state-management-nav-tabs > li { min-width: 132px; }

.state-management-nav-tab {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 46px;
  padding: 9px 14px 7px;
  border: 0;
  border-bottom: 3px solid transparent;
  background: transparent;
  color: var(--sie-text);
  text-decoration: none;
  white-space: nowrap;
}

.state-management-nav-index {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
}

.state-management-nav-tab strong { font-size: 12px; line-height: 1.25; }

.state-management-nav-tab:hover,
.state-management-nav-tab.is-active {
  border-bottom-color: var(--sie-primary);
  background: rgba(239, 91, 57, .06);
  color: var(--sie-primary);
}

.state-management-nav-tab.is-active .state-management-nav-index { color: var(--sie-primary); }
.state-management-nav-tab.is-disabled { opacity: .45; cursor: not-allowed; }

.response-period-context {
  display: grid;
  gap: 3px;
  min-height: 72px;
  padding: 10px 12px;
  border: 1px solid rgba(23, 105, 167, .28);
  border-radius: 8px;
  background: rgba(23, 105, 167, .06);
}

.response-period-context > span {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.response-period-context > strong { font-size: 14px; }
.response-period-context > small { color: var(--sie-muted); font-size: 11px; }

.response-stage-panel,
.response-anchor,
#contexto-periodo,
#objetivos-departamentos,
#acoes-execucao {
  scroll-margin-top: 18px;
}

.response-anchor {
  display: block;
  height: 0;
}

.response-department-board {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.response-department-group {
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 10px;
  background: #fff;
}

.response-department-group > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 14px;
  border-bottom: 1px solid var(--sie-line);
  background: #f7fbff;
}

.response-department-group > header span {
  color: var(--sie-muted);
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}

.response-department-group > header h3 { margin: 2px 0 0; font-size: 15px; }
.response-department-group > header > strong { color: var(--response-tactical); font-size: 11px; }
.response-department-group .table-wrap { margin: 0; }
.response-objectives-table { min-width: 860px; }
.response-objectives-table td > small { display: block; margin-top: 4px; color: var(--sie-muted); line-height: 1.4; }

.response-department-filter {
  display: flex;
  align-items: end;
  gap: 8px;
  margin: 14px 18px 0;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 9px;
  background: #fff;
}

.response-department-filter label {
  display: grid;
  gap: 5px;
  min-width: min(340px, 100%);
  margin-right: auto;
}

.response-department-filter label > span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
}

.response-objective-actions-link {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  white-space: nowrap;
}

.response-objective-actions .section-header > div:first-child p {
  margin: 4px 0 0;
}

.response-objective-actions-empty {
  min-height: 150px;
  border: 1px dashed var(--sie-line);
  border-radius: 9px;
  background: #fff;
}

.response-objective-actions-table {
  min-width: 1080px;
}

.response-objective-actions-table td:first-child small,
.response-objective-actions-table td:first-child strong,
.response-objective-actions-table td:nth-child(6) small {
  display: block;
}

.response-objective-actions-table td:first-child small,
.response-objective-actions-table td:nth-child(6) small {
  margin-bottom: 4px;
  color: var(--sie-muted);
}

.state-execution-departments,
.state-execution-objectives {
  display: grid;
  gap: 14px;
}

.state-execution-department {
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 10px;
  background: #f8fafc;
}

.state-execution-department > header,
.state-execution-objective > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.state-execution-department > header {
  padding: 13px 15px;
  border-bottom: 1px solid var(--sie-line);
  background: #f1f7fd;
}

.state-execution-department > header span,
.state-execution-objective > header span {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.state-execution-department > header h3,
.state-execution-objective > header h4 {
  margin: 3px 0 0;
}

.state-execution-department > header h3 { font-size: 16px; }
.state-execution-department > header > strong { color: var(--response-tactical); font-size: 12px; }
.state-execution-objectives { padding: 14px; }

.state-execution-objective {
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-left: 4px solid var(--response-tactical);
  border-radius: 9px;
  background: #fff;
}

.state-execution-objective > header {
  padding: 12px 14px;
  border-bottom: 1px solid var(--sie-line);
}

.state-execution-objective > header h4 {
  font-size: 14px;
  line-height: 1.35;
}

.state-execution-objective-actions {
  display: flex;
  align-items: center;
  gap: 10px;
}

.state-execution-objective .table-wrap { margin: 0; }
.state-execution-table { min-width: 980px; }
.state-execution-table td:first-child strong,
.state-execution-table td:first-child small,
.state-execution-table td:nth-child(2) strong,
.state-execution-table td:nth-child(2) small,
.state-execution-table td:nth-child(4) strong,
.state-execution-table td:nth-child(4) small { display: block; }
.state-execution-table td:first-child > small:last-child,
.state-execution-table td:nth-child(2) small,
.state-execution-table td:nth-child(4) small { margin-top: 4px; color: var(--sie-muted); }

/* Detalhe do planejamento e execução: hierarquia, leitura e tabelas responsivas. */
.status-planejado {
  border-color: rgba(100, 116, 139, .35);
  background: #f5f7fa;
  color: #475467;
}

.status-andamento {
  border-color: rgba(23, 92, 211, .24);
  background: #edf4ff;
  color: #1753a6;
}

.response-item-detail-page .status-normal,
.state-report-page .status-normal { color: #067337; }
.response-item-detail-page .status-atencao,
.state-report-page .status-atencao { color: #80540d; }
.response-item-detail-page .status-risco,
.state-report-page .status-risco { color: #a63f15; }
.response-item-detail-page .status-informacao,
.state-report-page .status-informacao { color: #176b83; }
.response-item-detail-page .status-inativo,
.state-report-page .status-inativo { color: #475467; }

.response-item-detail-page .btn-primary,
.state-report-page .btn-primary {
  --bs-btn-bg: #c94f2b;
  --bs-btn-border-color: #c94f2b;
  --bs-btn-hover-bg: #a94024;
  --bs-btn-hover-border-color: #a94024;
}

.response-item-detail-page .btn-success,
.state-report-page .btn-success {
  --bs-btn-bg: #087f3c;
  --bs-btn-border-color: #087f3c;
  --bs-btn-hover-bg: #05662f;
  --bs-btn-hover-border-color: #05662f;
}

.workflow-record-link,
.workflow-record-link:visited {
  color: #175cd3;
  font-weight: 750;
  line-height: 1.45;
  text-decoration: none;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  overflow-wrap: break-word;
  word-break: normal;
}

.workflow-record-link:hover {
  color: #104aab;
  text-decoration: underline;
  text-decoration-thickness: 2px;
}

.workflow-record-link:focus-visible {
  border-radius: 4px;
  outline: 2px solid #175cd3;
  outline-offset: 3px;
  text-decoration: underline;
}

.response-item-detail-page {
  gap: 16px;
  color: #172033;
}

.response-detail-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 24px;
  padding: 22px 24px;
  border-top: 4px solid var(--response-operational);
  box-shadow: 0 8px 24px rgba(15, 23, 42, .055);
}

.response-detail-hero-estrategico { border-top-color: var(--response-strategic); }
.response-detail-hero-tatico { border-top-color: var(--response-tactical); }
.response-detail-hero-operacional { border-top-color: var(--response-operational); }
.response-detail-identity { min-width: 0; }
.response-detail-eyebrow,
.response-detail-actions,
.response-detail-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.response-detail-identity h1 {
  max-width: 980px;
  margin: 11px 0 12px;
  font-size: clamp(21px, 2vw, 28px);
  font-weight: 750;
  line-height: 1.28;
  letter-spacing: -.015em;
  overflow-wrap: break-word;
  word-break: normal;
  text-wrap: balance;
}

.response-detail-meta { gap: 8px 18px; }
.response-detail-meta > span {
  display: inline-flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 5px;
  color: #334155;
  font-size: 12px;
}

.response-detail-meta b {
  color: #64748b;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .025em;
  text-transform: uppercase;
}

.response-detail-actions {
  justify-content: flex-end;
  max-width: 430px;
}

.response-detail-actions form { margin: 0; }
.response-detail-actions .btn {
  min-height: 36px;
  padding-inline: 13px;
  font-weight: 650;
}

.response-detail-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.response-overview-card {
  display: grid;
  align-content: start;
  gap: 6px;
  min-height: 124px;
  padding: 16px 18px;
  border-top: 3px solid #dbe3ed;
  box-shadow: 0 5px 16px rgba(15, 23, 42, .035);
}

.response-overview-card > span {
  color: #64748b;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.response-overview-card > strong {
  margin-top: 2px;
  font-size: 18px;
  line-height: 1.35;
  overflow-wrap: break-word;
  word-break: normal;
}

.response-overview-card > small {
  color: #64748b;
  font-size: 11px;
  line-height: 1.4;
}

.response-overview-status { border-top-color: var(--response-tactical); }
.response-overview-status .response-progress {
  width: 100%;
  height: 7px;
  margin: 8px 0 1px;
}

.response-detail-workspace {
  display: grid;
  grid-template-columns: minmax(0, 1.22fr) minmax(350px, .78fr);
  gap: 14px;
  align-items: start;
}

.response-detail-workspace.is-readonly { grid-template-columns: 1fr; }
.response-definition-card,
.response-progress-card { padding: 0; overflow: hidden; }

.response-card-heading,
.response-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.response-card-heading {
  padding: 17px 19px 14px;
  border-bottom: 1px solid #e2e8f0;
  background: #fbfcfe;
}

.response-card-heading > div,
.response-section-heading > div { min-width: 0; }
.response-card-heading span,
.response-section-heading > div > span,
.state-report-section-kicker {
  display: block;
  margin-bottom: 3px;
  color: #64748b;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .065em;
  text-transform: uppercase;
}

.response-card-heading h2,
.response-section-heading h2 {
  margin: 0;
  font-size: 18px;
  line-height: 1.3;
}

.response-card-heading > small {
  max-width: 230px;
  color: #64748b;
  font-size: 10px;
  line-height: 1.45;
  text-align: right;
}

.response-definition-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 3px 19px 16px;
}

.response-definition-item {
  min-width: 0;
  padding: 14px 14px 14px 0;
  border-bottom: 1px solid #edf0f4;
}

.response-definition-item:nth-last-child(-n + 2) { border-bottom: 0; }
.response-definition-item-wide {
  grid-column: 1 / -1;
  padding-right: 0;
}

.response-definition-item dt {
  margin: 0 0 6px;
  color: #64748b;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .025em;
  text-transform: uppercase;
}

.response-definition-item dd {
  margin: 0;
  color: #263247;
  font-size: 12px;
  line-height: 1.65;
  overflow-wrap: break-word;
  word-break: normal;
  white-space: normal;
}

.response-definition-update {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid #dce9f8;
  border-radius: 8px;
  background: #f5f9ff;
}

.response-progress-form {
  gap: 14px 12px;
  padding: 18px 19px 19px;
}

.response-progress-form .field > span:first-child,
.state-report-filter-form label > span,
.state-report-advanced-grid .field > span {
  color: #344054;
  font-size: 10px;
  font-weight: 750;
}

.response-progress-form .field input,
.response-progress-form .field select,
.response-progress-form .field textarea,
.state-report-filter-form .filter-bar input,
.state-report-filter-form .filter-bar select,
.state-report-advanced-grid .field input,
.state-report-advanced-grid .field select {
  min-height: 44px;
  border-color: #cbd5e1;
  border-radius: 9px;
  padding: 9px 11px;
  background-color: #fff;
  color: #172033;
  font-size: 12px;
  line-height: 1.4;
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}

.response-progress-form .field textarea {
  min-height: 132px;
  line-height: 1.55;
}

.response-progress-form .field input:hover,
.response-progress-form .field select:hover,
.response-progress-form .field textarea:hover,
.state-report-filter-form .filter-bar input:hover,
.state-report-filter-form .filter-bar select:hover,
.state-report-advanced-grid .field input:hover,
.state-report-advanced-grid .field select:hover { border-color: #94a3b8; }

.response-progress-form .field input:focus,
.response-progress-form .field select:focus,
.response-progress-form .field textarea:focus,
.state-report-filter-form .filter-bar input:focus,
.state-report-filter-form .filter-bar select:focus,
.state-report-advanced-grid .field input:focus,
.state-report-advanced-grid .field select:focus {
  border-color: var(--sie-primary);
  box-shadow: 0 0 0 3px var(--sie-primary-soft);
  outline: 0;
}

.response-progress-input {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 38px;
  align-items: stretch;
}

.response-progress-input input {
  border-top-right-radius: 0 !important;
  border-bottom-right-radius: 0 !important;
}

.response-progress-input b {
  display: grid;
  place-items: center;
  border: 1px solid #cbd5e1;
  border-left: 0;
  border-radius: 0 9px 9px 0;
  background: #f8fafc;
  color: #64748b;
  font-size: 12px;
}

.response-progress-form .field-help {
  margin: 0;
  color: #64748b;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.4;
}

.response-progress-submit {
  justify-content: flex-end;
  padding-top: 2px;
}

.response-progress-submit .btn {
  min-width: 150px;
  min-height: 40px;
  font-weight: 700;
}

.response-related-section,
.response-history-section { padding: 0; overflow: hidden; }
.response-section-heading {
  padding: 17px 19px;
  border-bottom: 1px solid #e2e8f0;
}

.response-section-heading p {
  margin: 4px 0 0;
  color: #64748b;
  font-size: 11px;
  line-height: 1.45;
}

.response-section-heading .row-actions { justify-content: flex-end; }
.response-objective-actions-empty { margin: 18px; }
.response-data-table-wrap { margin: 0; }
.response-objective-actions-table,
.response-linked-items-table {
  min-width: 960px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 12px;
}

.response-objective-actions-table .col-action { width: 25%; }
.response-objective-actions-table .col-owner { width: 12%; }
.response-objective-actions-table .col-status { width: 10%; }
.response-objective-actions-table .col-progress { width: 10%; }
.response-objective-actions-table .col-deadline { width: 11%; }
.response-objective-actions-table .col-execution { width: 14%; }
.response-objective-actions-table .col-actions { width: 18%; }
.response-linked-items-table .col-objective { width: 31%; }
.response-linked-items-table .col-department { width: 12%; }
.response-linked-items-table .col-owner { width: 13%; }
.response-linked-items-table .col-status { width: 10%; }
.response-linked-items-table .col-progress { width: 11%; }
.response-linked-items-table .col-deadline { width: 13%; }
.response-linked-items-table .col-actions { width: 10%; }

.response-objective-actions-table thead th,
.response-linked-items-table thead th,
.state-execution-table thead th {
  padding: 10px 12px;
  border-bottom: 1px solid #dbe3ed;
  background: #f7f9fc;
  color: #667085;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .045em;
}

.response-objective-actions-table tbody td,
.response-linked-items-table tbody td {
  padding: 13px 12px;
  color: #344054;
  line-height: 1.45;
  overflow-wrap: break-word;
  word-break: normal;
}

.response-objective-actions-table tbody tr:nth-child(even),
.response-linked-items-table tbody tr:nth-child(even),
.state-execution-table tbody tr:nth-child(even) { background: #fcfdff; }
.response-objective-actions-table tbody tr:hover,
.response-linked-items-table tbody tr:hover,
.state-execution-table tbody tr:hover { background: #f7fbff; }
.response-table-kicker,
.state-report-plan-link {
  display: block;
  margin: 0 0 4px;
  color: var(--sie-primary);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.response-table-progress {
  display: grid;
  grid-template-columns: minmax(54px, 1fr) auto;
  align-items: center;
  gap: 7px;
}

.response-table-progress .response-progress {
  width: 100%;
  height: 6px;
  margin: 0;
}

.response-table-progress b { color: #344054; font-size: 10px; }
.response-objective-actions-table td:nth-child(6) strong,
.response-objective-actions-table td:nth-child(6) small { display: block; }
.response-objective-actions-table td:nth-child(6) small { margin-top: 4px; color: #64748b; }
.response-table-actions { align-items: stretch; justify-content: flex-end; }
.response-table-actions .btn { flex: 1 1 auto; }

.response-history-section .response-timeline { padding: 18px 19px; }
.response-history-section .response-timeline article {
  padding: 13px 15px;
  border-left-color: #7aa7df;
  background: #f8fafc;
}

.response-history-section .response-timeline time {
  display: block;
  margin-bottom: 5px;
  color: #64748b;
  font-size: 10px;
}

.response-history-section .response-timeline article > strong { font-size: 11px; }
.response-history-section .response-timeline p {
  color: #475467;
  font-size: 11px;
  line-height: 1.5;
  overflow-wrap: break-word;
  word-break: normal;
}

.response-history-change span { color: #98a2b3; }
.response-history-empty { margin: 0; padding: 18px 19px; }

.state-report-page {
  --response-strategic: #6431a8;
  --response-tactical: #1769a7;
  --response-operational: #16805b;
  gap: 16px;
}
.state-report-stage-panel {
  border-left: 4px solid var(--sie-green);
  box-shadow: 0 6px 20px rgba(15, 23, 42, .045);
}

.state-report-stage-panel .section-heading h2 { font-size: 19px; }
.state-report-stage-panel .section-heading p { margin-top: 4px; line-height: 1.45; }
.state-report-summary-chips .status-chip {
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid #dbe3ed;
  background: #f8fafc;
}

.state-report-filter-primary { padding: 0; overflow: hidden; }
.state-report-filter-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px 0;
}

.state-report-filter-heading h2 { margin: 0; font-size: 14px; }
.state-report-filter-heading p {
  margin: 3px 0 0;
  color: #64748b;
  font-size: 10px;
}

.state-report-filter-grid {
  grid-template-columns: minmax(270px, 1.45fr) minmax(155px, .7fr) minmax(220px, 1fr) auto;
  gap: 10px;
  padding: 13px 16px 16px;
}

.state-report-filter-form .filter-bar label { gap: 6px; }
.state-report-filter-form .filter-bar input::placeholder { color: #667085; opacity: 1; }
.state-report-filter-form .filter-actions { gap: 7px; }
.state-report-filter-form .filter-actions .btn {
  min-height: 44px;
  padding-inline: 13px;
  font-weight: 650;
}

.state-report-advanced-filters > summary { position: relative; }
.state-report-advanced-filters > summary > span:last-child {
  display: inline-flex;
  align-items: center;
  gap: 7px;
}

.state-report-advanced-filters > summary > span:last-child::after {
  content: "⌄";
  display: inline-grid;
  place-items: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  font-size: 13px;
  transition: transform .15s ease;
}

.state-report-advanced-filters[open] > summary > span:last-child::after { transform: rotate(180deg); }
.state-report-advanced-filters > summary:focus-visible {
  outline: 3px solid var(--sie-primary-soft);
  outline-offset: -3px;
}

.state-report-advanced-grid {
  grid-template-columns: minmax(190px, 1fr) minmax(150px, .7fr) minmax(150px, .7fr) auto;
  align-items: end;
  gap: 12px;
  padding: 16px;
}

.state-report-advanced-grid .form-actions { padding: 0; }
.state-report-advanced-grid .btn { min-height: 44px; }
.state-report-empty { min-height: 190px; }
.state-report-empty .btn { margin-top: 6px; }
.state-report-occurrence-group { padding: 16px; }
.state-execution-departments,
.state-execution-objectives { gap: 12px; }
.state-execution-department {
  border-color: #d9e2ec;
  border-radius: 12px;
  background: #f7fafd;
  box-shadow: 0 4px 14px rgba(15, 23, 42, .025);
}

.state-execution-department > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 62px;
  padding: 13px 16px;
  border-bottom: 1px solid transparent;
  background: #eef5fc;
  cursor: pointer;
  list-style: none;
}

.state-execution-department > summary::-webkit-details-marker { display: none; }
.state-execution-department[open] > summary { border-bottom-color: #d9e2ec; }
.state-execution-department > summary:focus-visible {
  outline: 3px solid rgba(23, 92, 211, .15);
  outline-offset: -3px;
}

.state-execution-department > summary > div:first-child,
.state-execution-objective > header > div:first-child { min-width: 0; }
.state-execution-department > summary > div:first-child > span,
.state-execution-objective > header > div:first-child > span {
  color: #64748b;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.state-execution-department > summary h3 {
  margin: 3px 0 0;
  color: #17324d;
  font-size: 17px;
  line-height: 1.3;
}

.state-execution-department-counts {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.state-execution-department-counts strong,
.state-execution-objective-actions > span {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 3px 8px;
  border: 1px solid rgba(23, 92, 211, .16);
  border-radius: 999px;
  background: #fff;
  color: #315777;
  font-size: 9px;
  font-weight: 750;
  white-space: nowrap;
}

.state-execution-collapse-label {
  color: #175cd3;
  font-size: 9px;
  font-weight: 750;
}

.state-execution-department:not([open]) .state-execution-collapse-label { font-size: 0; }
.state-execution-department:not([open]) .state-execution-collapse-label::before { content: "Expandir"; font-size: 9px; }
.state-execution-objectives { padding: 12px; }
.state-execution-objective {
  border-color: #dfe5ec;
  border-left-color: var(--response-tactical);
  border-left-width: 3px;
  border-radius: 10px;
  box-shadow: 0 3px 12px rgba(15, 23, 42, .025);
}

.state-execution-objective > header {
  gap: 18px;
  padding: 13px 15px;
  background: #fff;
}

.state-execution-objective > header h4 {
  max-width: 950px;
  margin: 4px 0 0;
  font-size: 14px;
  line-height: 1.45;
  overflow-wrap: break-word;
  word-break: normal;
  text-wrap: balance;
}

.state-execution-objective-actions {
  flex: 0 0 auto;
  justify-content: flex-end;
}

.state-execution-objective-actions .btn { font-weight: 650; }
.state-execution-table-wrap { margin: 0; }
.state-execution-table {
  min-width: 860px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 12px;
}

.state-execution-table .col-update { width: 39%; }
.state-execution-table .col-owner { width: 18%; }
.state-execution-table .col-status { width: 12%; }
.state-execution-table .col-reference { width: 17%; }
.state-execution-table .col-actions { width: 14%; }
.state-execution-table td {
  padding: 13px 12px;
  color: #344054;
  line-height: 1.45;
  overflow-wrap: break-word;
  word-break: normal;
}

.state-execution-table td:first-child > strong,
.state-execution-owner,
.state-execution-reference { display: grid; gap: 3px; }
.state-execution-action-link { font-size: 12px; }
.state-execution-detail {
  display: block;
  margin-top: 5px;
  color: #667085;
  font-size: 10px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.state-execution-owner strong,
.state-execution-reference strong { font-size: 11px; }
.state-execution-owner small,
.state-execution-reference small { color: #667085; font-size: 9px; line-height: 1.4; }
.state-execution-table td:nth-child(3),
.state-execution-table td:nth-child(4) { white-space: normal; }
.state-execution-row-actions {
  align-items: stretch;
  justify-content: flex-end;
  gap: 5px;
}

.state-execution-row-actions form { margin: 0; }
.state-execution-row-actions .btn { min-width: 48px; }

@media (max-width: 1120px) {
  .response-detail-workspace { grid-template-columns: 1fr; }
  .state-report-filter-grid { grid-template-columns: minmax(240px, 1.3fr) minmax(150px, .7fr); }
  .state-report-filter-grid .filter-actions { justify-content: flex-start; }
  .state-report-advanced-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .state-report-advanced-grid .form-actions { grid-column: 1 / -1; justify-content: flex-end; }
}

@media (max-width: 800px) {
  .response-detail-hero { grid-template-columns: 1fr; }
  .response-detail-actions { justify-content: flex-start; max-width: none; }
  .response-detail-overview { grid-template-columns: 1fr; }
  .response-overview-card { min-height: 0; }
  .response-card-heading,
  .response-section-heading,
  .state-execution-department > summary,
  .state-execution-objective > header { align-items: stretch; flex-direction: column; }
  .response-card-heading > small { max-width: none; text-align: left; }
  .response-section-heading .row-actions,
  .state-execution-objective-actions,
  .state-execution-department-counts { justify-content: flex-start; }
  .state-report-filter-grid,
  .state-report-advanced-grid { grid-template-columns: 1fr; }
  .state-report-advanced-grid .form-actions { grid-column: auto; }
}

@media (max-width: 900px) {
  .response-item-detail-page,
  .state-report-page { gap: 12px; }
  .response-detail-hero { padding: 18px 16px; }
  .response-detail-identity h1 { font-size: 21px; }
  .response-detail-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .response-detail-actions .btn,
  .response-detail-actions form,
  .response-detail-actions form .btn { width: 100%; }
  .response-definition-list { grid-template-columns: 1fr; padding-inline: 16px; }
  .response-definition-item,
  .response-definition-item-wide { grid-column: auto; padding-right: 0; }
  .response-definition-item:nth-last-child(-n + 2) { border-bottom: 1px solid #edf0f4; }
  .response-definition-item:last-child { border-bottom: 0; }
  .response-progress-form { grid-template-columns: 1fr; padding-inline: 16px; }
  .response-progress-form .span-2 { grid-column: auto; }
  .response-progress-submit { position: static; margin: 0; padding: 2px 0 0; box-shadow: none; }
  .response-progress-submit .btn { width: 100%; }
  .response-section-heading { padding: 16px; }
  .response-section-heading .row-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .response-section-heading .row-actions .btn { width: 100%; }
  .response-objective-actions-empty { margin: 14px; }
  .state-report-occurrence-group { padding: 10px; }
  .state-execution-objectives { padding: 8px; }
  .state-report-filter-grid { padding-inline: 13px; }
  .state-report-filter-form .filter-actions { display: grid; grid-template-columns: 1fr 1fr; width: 100%; }
  .state-report-filter-form .filter-actions .btn { width: 100%; }
  .state-report-advanced-grid { padding: 13px; }
  .state-execution-department-counts strong { white-space: normal; }

  .response-objective-actions-table,
  .response-linked-items-table,
  .state-execution-table {
    display: block;
    min-width: 0;
    width: 100%;
  }

  .response-objective-actions-table colgroup,
  .response-linked-items-table colgroup,
  .state-execution-table colgroup { display: none; }

  .response-objective-actions-table thead,
  .response-linked-items-table thead,
  .state-execution-table thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
  }

  .response-objective-actions-table tbody,
  .response-linked-items-table tbody,
  .state-execution-table tbody {
    display: grid;
    gap: 10px;
    padding: 10px;
    background: #f7f9fc;
  }

  .response-objective-actions-table tbody tr,
  .response-linked-items-table tbody tr,
  .state-execution-table tbody tr {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    border: 1px solid #dbe3ed;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 3px 10px rgba(15, 23, 42, .035);
  }

  .response-objective-actions-table tbody td,
  .response-linked-items-table tbody td,
  .state-execution-table tbody td {
    display: grid;
    align-content: start;
    gap: 5px;
    min-width: 0;
    padding: 11px 12px;
    border: 0;
    border-bottom: 1px solid #edf0f4;
    background: transparent;
  }

  .response-objective-actions-table tbody td::before,
  .response-linked-items-table tbody td::before,
  .state-execution-table tbody td::before {
    content: attr(data-label);
    color: #667085;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
  }

  .response-objective-actions-table tbody td:first-child,
  .response-linked-items-table tbody td:first-child,
  .state-execution-table tbody td:first-child,
  .response-objective-actions-table tbody td:last-child,
  .response-linked-items-table tbody td:last-child,
  .state-execution-table tbody td:last-child { grid-column: 1 / -1; }

  .response-objective-actions-table tbody td:last-child,
  .response-linked-items-table tbody td:last-child,
  .state-execution-table tbody td:last-child { border-bottom: 0; }
  .state-execution-table tbody td:nth-child(2) { grid-column: 1 / -1; }
  .response-table-actions,
  .state-execution-row-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .response-data-table-wrap td .btn-sm,
  .state-execution-table-wrap td .btn-sm { min-height: 42px; width: 100%; }
  .state-execution-row-actions form,
  .state-execution-row-actions form .btn { width: 100%; }
}

@media (max-width: 460px) {
  .response-detail-actions,
  .state-report-filter-form .filter-actions,
  .response-table-actions,
  .state-execution-row-actions { grid-template-columns: 1fr; }
  .response-objective-actions-table tbody tr,
  .response-linked-items-table tbody tr,
  .state-execution-table tbody tr { grid-template-columns: 1fr; }
  .response-objective-actions-table tbody td,
  .response-linked-items-table tbody td,
  .state-execution-table tbody td { grid-column: 1 !important; }
}

.state-management-flow {
  padding: 0;
  overflow: hidden;
  border-top: 4px solid var(--sie-primary);
}

.state-management-flow-body { display: grid; gap: 18px; padding: 16px; }

.state-management-flow-header {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 18px;
}

.state-management-flow-header h2 { margin: 5px 0; }

.state-management-flow-steps {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.state-management-flow-step a {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 68px;
  padding: 10px;
  border: 1px solid var(--sie-line);
  border-radius: 9px;
  background: #f8fafc;
  color: var(--sie-text);
  text-decoration: none;
}

.state-management-flow-step a:hover,
.state-management-flow-step.is-current a {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
}

.state-management-flow-number {
  display: inline-grid;
  place-items: center;
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: #dbe4f0;
  color: #334155;
  font-weight: 800;
}

.state-management-flow-step.is-current .state-management-flow-number {
  background: var(--sie-primary);
  color: #fff;
}

.state-management-flow-step strong,
.state-management-flow-step small { display: block; }
.state-management-flow-step strong { font-size: 12px; line-height: 1.25; }
.state-management-flow-step small { margin-top: 3px; color: var(--sie-muted); font-size: 10px; }

.state-management-flow-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.state-management-flow-details article {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 10px;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
}

.state-management-flow-details article > span {
  display: inline-grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  font-weight: 800;
}

.state-management-flow-details h3,
.state-management-flow-details p { margin: 0 0 5px; }
.state-management-flow-details h3 { font-size: 14px; }
.state-management-flow-details p,
.state-management-flow-details small { color: var(--sie-muted); font-size: 12px; line-height: 1.45; }

.state-management-flow-details aside {
  grid-column: 1 / -1;
  padding: 12px 14px;
  border-left: 4px solid var(--sie-cyan);
  border-radius: 7px;
  background: var(--sie-cyan-soft);
}
.state-management-flow-details aside p { margin: 4px 0 0; }

.incident-command-context .form-grid { align-items: end; }
.incident-command-node header > div { min-width: 0; }
.incident-command-node header small { display: block; margin-top: 3px; color: var(--sie-muted); font-size: 11px; line-height: 1.35; }
.incident-command-meta { margin-top: 5px; color: var(--sie-primary) !important; }

.incident-command-designation {
  padding-top: 10px;
  border-top: 1px solid var(--sie-line);
}
.incident-command-designation summary { cursor: pointer; color: var(--sie-primary); font-size: 12px; font-weight: 800; }
.incident-command-designation[open] summary { margin-bottom: 9px; }
.incident-command-form { padding-top: 0; border-top: 0; }
.incident-command-form textarea {
  width: 100%;
  min-width: 0;
  padding: 7px 9px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  font: inherit;
  resize: vertical;
}
.incident-command-form label small { color: var(--sie-muted); font-size: 10px; font-weight: 500; }
.incident-command-fill-guide .response-form-steps { margin-bottom: 0; }

.state-report-rule-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.state-report-rule-grid article {
  display: grid;
  gap: 5px;
  padding: 12px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}
.state-report-rule-grid article b { font-size: 13px; }
.state-report-rule-grid article span { color: var(--sie-muted); font-size: 12px; line-height: 1.4; }

.state-report-guided-form .response-form-section {
  padding-bottom: 18px;
  border-bottom: 0;
}
.response-form-section-heading h2 { margin: 9px 0 4px; font-size: 17px; }
.state-report-guided-form .form-grid { align-content: start; }
.state-report-period-source {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  border: 0;
  clip: rect(0 0 0 0);
  overflow: hidden;
  white-space: nowrap;
}
.state-report-submit { display: flex; align-items: center; gap: 10px; }
.state-report-submit > div { margin-right: auto; color: var(--sie-muted); font-size: 12px; }
.state-report-plan-link { display: block; margin: 6px 0 4px; color: var(--sie-primary); font-weight: 700; }
.state-report-narrative .detail-text + .detail-text { margin-top: 18px; }
.state-report-item-field { display: grid; gap: 7px; margin-top: 16px; }
.state-report-selection-preview {
  display: grid;
  gap: 12px;
  margin-top: 14px;
  padding: 16px;
  border: 1px solid #dbe5ef;
  border-left: 4px solid var(--sie-primary);
  border-radius: 9px;
  background: #f8fafc;
}
.state-report-selection-preview[hidden] { display: none; }
.state-report-selection-preview > div { display: grid; gap: 4px; }
.state-report-selection-preview > div > span:first-child {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.state-report-selection-preview strong { font-size: 14px; line-height: 1.4; }
.state-report-selection-meta {
  display: flex !important;
  flex-wrap: wrap;
  gap: 8px 22px !important;
  padding-top: 10px;
  border-top: 1px solid #dbe5ef;
  color: var(--sie-muted);
  font-size: 12px;
}
.state-report-locked-context {
  margin: 14px 0 0;
  color: var(--sie-muted);
  font-size: 12px;
}
.state-report-locked-context span {
  display: inline-block;
  margin-right: 6px;
  padding: 3px 7px;
  border-radius: 999px;
  background: #e8f3ff;
  color: var(--sie-primary);
  font-weight: 700;
}

/* Legibilidade da Gestao da Resposta em telas desktop. */
.response-management-page .ops-kicker {
  font-size: 12px;
}

.response-management-page :is(
  .response-context-badges small,
  .response-journey small,
  .response-filling-guide > summary small,
  .response-guide-toggle::before,
  .response-guide-rule strong,
  .response-guide-flow p,
  .response-guide-reference-heading p,
  .response-level-guide-grid article > span,
  .response-level-guide-grid article p,
  .response-level-guide-grid article small,
  .response-field-guide dt,
  .response-field-guide dd,
  .response-action-hub-heading p,
  .response-action-hub-grid > a > span,
  .response-action-hub-grid small,
  .response-context-details > summary small,
  .response-history-details > summary small,
  .state-management-flow-summary small,
  .state-management-nav-tab small,
  .state-management-flow-step small
) {
  font-size: 11px;
}

.response-management-page :is(
  .response-context-badges strong,
  .response-journey strong,
  .response-guide-intro p,
  .response-guide-rule span,
  .response-guide-flow strong,
  .response-level-guide-grid article > strong,
  .response-action-hub-grid strong
) {
  font-size: 12px;
}

@media (max-width: 980px) {
  .response-workspace-context { grid-template-columns: 1fr auto; }
  .response-context-badges { grid-column: 1 / -1; grid-row: 2; justify-content: flex-start; }
  .response-journey { grid-template-columns: 1fr; }
  .response-journey li { border-bottom: 0; border-left: 3px solid #dbe3ed; padding-left: 10px; }
  .response-guide-intro,
  .response-guide-reference { grid-template-columns: 1fr; }
  .response-guide-flow { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .response-action-hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .state-management-nav { align-items: stretch; flex-direction: column; }
  .state-management-nav-tabs { justify-content: flex-start; width: 100%; overflow-x: auto; }
  .state-management-flow-steps { grid-template-columns: 1fr 1fr; }
  .state-management-flow-details { grid-template-columns: 1fr; }
  .state-management-flow-details aside { grid-column: auto; }
  .state-report-rule-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  .response-workspace-context { grid-template-columns: 1fr; }
  .response-occurrence-picker { grid-template-columns: 1fr; }
  .response-workspace-context > .btn { justify-self: start; }
  .response-context-badges { grid-column: auto; grid-row: auto; display: grid; justify-content: stretch; }
  .response-next-action { grid-template-columns: auto 1fr; }
  .response-next-action .btn,
  .response-next-action .response-waiting { grid-column: 1 / -1; }
  .response-filling-guide > summary { grid-template-columns: auto minmax(0, 1fr); }
  .response-guide-toggle { grid-column: 2; }
  .response-guide-content { padding: 13px; }
  .response-guide-flow,
  .response-level-guide-grid,
  .response-action-hub-grid { grid-template-columns: 1fr; }
  .state-management-nav-tabs { display: grid; grid-template-columns: 1fr; overflow: visible; }
  .state-management-nav-tab { min-width: 0; }
  .response-department-group > header { align-items: flex-start; flex-direction: column; }
  .response-department-filter,
  .state-execution-department > header,
  .state-execution-objective > header { align-items: stretch; flex-direction: column; }
  .response-department-filter label { min-width: 0; width: 100%; }
  .response-department-filter .btn { width: 100%; }
  .state-execution-objective-actions { justify-content: space-between; }
  .state-management-flow-header,
  .state-report-submit { align-items: stretch; flex-direction: column; }
  .state-management-flow-steps { grid-template-columns: 1fr; }
}

/* Fluxo simplificado da Gestão da Resposta. */
.response-management-simple {
  gap: 14px;
}

.response-simple-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

.response-simple-hero h1 {
  margin: 4px 0;
}

.response-simple-hero p {
  max-width: 720px;
  margin: 0;
}

.response-occurrence-switcher {
  min-width: 300px;
}

.response-occurrence-switcher label,
.response-occurrence-switcher label > span {
  display: block;
}

.response-occurrence-switcher label > span {
  margin-bottom: 5px;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
}

.response-occurrence-switcher select {
  width: 100%;
}

.response-auto-context {
  display: grid;
  grid-template-columns: minmax(260px, 1.4fr) minmax(270px, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 16px 18px;
  border-left: 4px solid var(--sie-green);
}

.response-auto-context.is-historical {
  border-left-color: var(--sie-yellow);
  background: #fffdf5;
}

.response-auto-context-main {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.response-auto-context-main h2,
.response-auto-context-main p {
  margin: 2px 0 0;
}

.response-auto-context-main h2 {
  font-size: 18px;
}

.response-auto-context-main p {
  color: var(--sie-muted);
  font-size: 12px;
}

.response-auto-mark {
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
  border-radius: 50%;
  background: var(--sie-green-soft);
  color: var(--sie-green);
  font-size: 9px;
  font-weight: 900;
}

.response-auto-period {
  display: grid;
  gap: 3px;
  padding: 11px 13px;
  border: 1px solid rgba(0, 137, 72, .22);
  border-radius: 9px;
  background: var(--sie-green-soft);
}

.response-auto-period > span,
.response-auto-period > small {
  color: var(--sie-muted);
  font-size: 11px;
}

.response-auto-period > strong {
  font-size: 14px;
}

.response-auto-period.is-missing {
  border-color: rgba(210, 31, 43, .22);
  background: var(--sie-red-soft);
}

.response-context-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.response-primary-action {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 16px 18px;
  border-left: 4px solid var(--sie-primary);
  background: linear-gradient(90deg, var(--sie-primary-soft), #fff 52%);
}

.response-primary-action h2,
.response-primary-action p {
  margin: 3px 0 0;
}

.response-primary-action h2 {
  font-size: 17px;
}

.response-primary-action p {
  color: var(--sie-muted);
  font-size: 12px;
}

.response-primary-step,
.response-focus-number {
  display: inline-grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--sie-primary);
  color: #fff;
  font-size: 14px;
  font-weight: 900;
}

.response-focus-panel {
  display: grid;
  gap: 16px;
  padding: 0;
  overflow: hidden;
}

.response-focus-heading {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 13px;
  align-items: center;
  padding: 18px;
  border-bottom: 1px solid var(--sie-line);
  background: #f8fafc;
}

.response-focus-heading h2,
.response-focus-heading p {
  margin: 3px 0 0;
}

.response-focus-heading h2 {
  font-size: 18px;
}

.response-focus-heading p {
  color: var(--sie-muted);
  font-size: 12px;
}

.response-focus-panel > .response-tree,
.response-focus-panel > .response-department-board,
.response-focus-panel > .alert,
.response-focus-panel > .empty-state {
  margin: 0 18px;
}

.response-focus-panel > :last-child {
  margin-bottom: 18px;
}

.response-empty-guided {
  min-height: 180px;
  border: 1px dashed var(--sie-line);
  border-radius: 9px;
  background: #fff;
}

.response-stage-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0 18px 18px;
  padding-top: 14px;
  border-top: 1px solid var(--sie-line);
}

.response-stage-footer > span {
  color: var(--sie-muted);
  font-size: 12px;
}

.state-management-flow-help {
  padding: 14px 16px;
}

.state-management-flow-help p {
  max-width: 780px;
  margin: 0;
  color: var(--sie-muted);
  line-height: 1.55;
}

.response-advanced-context {
  display: grid;
  grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr);
  gap: 18px;
  padding: 16px;
}

.response-advanced-context h3,
.response-advanced-context p {
  margin: 4px 0 0;
}

.incident-command-context-simple {
  padding: 16px 18px;
}

.incident-command-auto-context {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) auto;
  gap: 16px;
  align-items: center;
}

.incident-command-auto-context h2,
.incident-command-auto-context p {
  margin: 3px 0 0;
}

.incident-command-auto-context > details > summary {
  color: var(--sie-primary);
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
}

.incident-command-switcher {
  min-width: 240px;
  margin-top: 7px;
}

.incident-command-switcher select {
  width: 100%;
}

.incident-command-catalog-page {
  gap: 16px;
}

.incident-command-catalog-intro {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 20px;
  border: 1px solid #cddde5;
  border-radius: 10px;
  background: linear-gradient(135deg, #f4fafc 0%, #fff 70%);
  box-shadow: var(--sie-shadow);
}

.incident-command-catalog-intro h2,
.incident-command-catalog-intro p {
  margin: 4px 0 0;
}

.incident-command-catalog-intro h2 {
  color: #17324d;
  font-size: clamp(19px, 2vw, 24px);
}

.incident-command-catalog-intro p {
  max-width: 76ch;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.5;
}

.incident-command-catalog-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(82px, 1fr));
  gap: 7px;
  min-width: min(440px, 45vw);
  margin: 0;
}

.incident-command-catalog-summary > div {
  display: grid;
  align-content: center;
  min-height: 68px;
  padding: 9px;
  border: 1px solid #d8e4ea;
  border-radius: 8px;
  background: rgb(255 255 255 / 90%);
  text-align: center;
}

.incident-command-catalog-summary dt {
  color: var(--sie-muted);
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}

.incident-command-catalog-summary dd {
  margin: 3px 0 0;
  color: #17324d;
  font-size: 19px;
  font-weight: 850;
}

.incident-command-catalog-panel {
  padding: 0;
  overflow: hidden;
}

.incident-command-catalog-heading {
  margin: 0;
  padding: 15px 17px;
  border-bottom: 1px solid var(--sie-line);
}

.incident-command-catalog-heading h2,
.incident-command-catalog-heading p {
  margin: 0;
}

.incident-command-catalog-filters {
  display: grid;
  grid-template-columns: minmax(240px, 1fr) minmax(180px, .35fr) auto;
  gap: 10px;
  align-items: end;
  padding: 13px 17px;
  border-bottom: 1px solid var(--sie-line);
  background: #f8fafc;
}

.incident-command-catalog-filters label {
  display: grid;
  gap: 5px;
}

.incident-command-catalog-filters label > span {
  color: #3f5262;
  font-size: 10px;
  font-weight: 800;
}

.incident-command-catalog-filter-actions,
.incident-command-occurrence-actions,
.incident-command-occurrence-progress {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 7px;
}

.incident-command-occurrence-list {
  display: grid;
  gap: 10px;
  padding: 14px 17px 17px;
}

.incident-command-occurrence-card {
  display: grid;
  gap: 13px;
  padding: 15px;
  border: 1px solid #d8e1e8;
  border-left: 4px solid #97afbc;
  border-radius: 8px;
  background: #fff;
}

.incident-command-occurrence-card.is-active {
  border-left-color: var(--sie-success);
}

.incident-command-occurrence-card > header,
.incident-command-occurrence-card > footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.incident-command-occurrence-card h3 {
  margin: 2px 0 0;
  color: #1f3344;
  font-size: 15px;
  line-height: 1.3;
}

.incident-command-occurrence-type {
  color: var(--sie-primary);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.incident-command-occurrence-data {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 7px;
  margin: 0;
}

.incident-command-occurrence-data > div {
  min-width: 0;
  padding: 8px 10px;
  border-radius: 6px;
  background: #f7f9fb;
}

.incident-command-occurrence-data dt {
  color: var(--sie-muted);
  font-size: 8px;
  font-weight: 800;
  text-transform: uppercase;
}

.incident-command-occurrence-data dd {
  overflow: hidden;
  margin: 3px 0 0;
  color: #293f50;
  font-size: 11px;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.incident-command-occurrence-card > footer {
  padding-top: 11px;
  border-top: 1px solid #e4eaee;
}

.incident-command-occurrence-progress > span:not(.status-badge) {
  color: var(--sie-muted);
  font-size: 10px;
}

.incident-command-catalog-empty {
  min-height: 180px;
  border: 0;
  border-radius: 0;
}

@media (max-width: 980px) {
  .incident-command-catalog-intro {
    align-items: stretch;
    flex-direction: column;
  }

  .incident-command-catalog-summary {
    min-width: 0;
    width: 100%;
  }

  .incident-command-occurrence-data {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .incident-command-catalog-summary,
  .incident-command-catalog-filters,
  .incident-command-occurrence-data {
    grid-template-columns: 1fr;
  }

  .incident-command-occurrence-card > header,
  .incident-command-occurrence-card > footer {
    align-items: flex-start;
    flex-direction: column;
  }

  .incident-command-occurrence-actions,
  .incident-command-occurrence-actions .btn,
  .incident-command-catalog-filter-actions,
  .incident-command-catalog-filter-actions .btn {
    width: 100%;
  }

  .incident-command-occurrence-actions .btn,
  .incident-command-catalog-filter-actions .btn {
    justify-content: center;
  }
}

/* Cabeçalho e etapas compartilhadas do fluxo de resposta. */
.state-management-shell {
  padding: 0;
  overflow: hidden;
}

.state-management-context {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 70px;
  padding: 13px 16px;
}

.state-management-context-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.state-management-context-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.state-management-context-title > strong {
  overflow: hidden;
  font-size: 15px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.state-management-context-copy > small {
  color: var(--sie-muted);
  font-size: 11px;
}

.state-management-context-actions,
.workflow-stage-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}

.state-management-switcher label {
  display: flex;
  align-items: center;
  gap: 8px;
}

.state-management-switcher label > span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
}

.state-management-switcher select {
  width: min(320px, 34vw);
  min-height: 34px;
  padding-block: 5px;
}

.state-management-context-hint {
  margin: 0;
  padding: 10px 16px;
  border-top: 1px solid var(--sie-line);
  color: var(--sie-muted);
  font-size: 11px;
}

.workflow-stage-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 3px 2px;
}

.workflow-stage-toolbar h2,
.workflow-stage-toolbar p {
  margin: 0;
}

.workflow-stage-toolbar h2 { font-size: 18px; }
.workflow-stage-toolbar p {
  max-width: 720px;
  margin-top: 4px;
  color: var(--sie-muted);
  font-size: 12px;
}

.incident-command-optional {
  padding: 0;
  overflow: hidden;
}

.incident-command-optional > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 16px;
  cursor: pointer;
  list-style: none;
}

.incident-command-optional > summary::-webkit-details-marker { display: none; }
.incident-command-optional > summary > span:first-child { display: grid; gap: 2px; }
.incident-command-optional > summary strong { font-size: 13px; }
.incident-command-optional > summary small,
.incident-command-optional > summary > span:last-child {
  color: var(--sie-muted);
  font-size: 11px;
}

.incident-command-optional > summary > span:last-child { white-space: nowrap; }
.incident-command-optional[open] > summary {
  border-bottom: 1px solid var(--sie-line);
  background: #f8fafc;
}

.incident-command-optional-chart { padding: 0 14px 14px; }

.response-focus-heading {
  grid-template-columns: minmax(0, 1fr) auto;
}

.state-report-stage-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 16px;
}

.state-report-stage-panel .section-heading {
  flex: 1;
  margin: 0;
}

.state-report-stage-panel .section-heading h2 { margin-top: 0; }

.state-report-summary-chips {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
}

.state-report-summary-chips .status-chip strong { margin-right: 3px; }
.state-report-filter-form { gap: 8px; }
.state-report-filter-primary { padding: 12px 14px; }
.state-report-filter-primary .filter-bar { align-items: end; }
.state-report-fill-rules .state-report-rule-grid { padding: 14px 16px 16px; }

@media (max-width: 980px) {
  .response-simple-hero {
    align-items: stretch;
    flex-direction: column;
  }
  .response-occurrence-switcher {
    min-width: 0;
  }
  .response-auto-context {
    grid-template-columns: 1fr 1fr;
  }
  .response-context-actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
  .response-advanced-context {
    grid-template-columns: 1fr;
  }
  .incident-command-auto-context {
    grid-template-columns: 1fr 1fr;
  }
  .incident-command-auto-context > details {
    grid-column: 1 / -1;
  }
  .state-management-context,
  .workflow-stage-toolbar,
  .state-report-stage-panel {
    align-items: flex-start;
    flex-direction: column;
  }
  .state-management-context-actions,
  .workflow-stage-actions,
  .state-report-summary-chips {
    justify-content: flex-start;
    width: 100%;
  }
  .state-management-switcher {
    flex: 1;
  }
  .state-management-switcher select {
    width: min(420px, 60vw);
  }
}

@media (max-width: 640px) {
  .response-auto-context,
  .response-primary-action,
  .response-focus-heading {
    grid-template-columns: 1fr;
  }
  .response-primary-step,
  .response-focus-number {
    width: 32px;
    height: 32px;
  }
  .response-primary-action .btn,
  .response-focus-heading .btn {
    width: 100%;
  }
  .response-stage-footer {
    align-items: stretch;
    flex-direction: column;
  }
  .incident-command-auto-context {
    grid-template-columns: 1fr;
  }
  .incident-command-auto-context > details {
    grid-column: auto;
  }
  .state-management-context-actions,
  .state-management-switcher,
  .state-management-switcher label,
  .state-management-switcher select,
  .workflow-stage-actions .btn {
    width: 100%;
  }
  .state-management-switcher label {
    align-items: stretch;
    flex-direction: column;
    gap: 4px;
  }
  .state-management-nav {
    padding-inline: 8px;
  }
  .state-management-nav-tabs {
    display: flex;
    grid-template-columns: none;
    overflow: visible;
  }
  .state-management-nav-tabs > li { min-width: 108px; }
  .state-management-nav-tab {
    min-width: 0;
    min-height: 43px;
    padding-inline: 9px;
  }
  .response-focus-heading {
    grid-template-columns: 1fr;
  }
}

/* Disparo manual de e-mails */
body.modal-open {
  overflow: hidden;
}

.email-dispatch-page {
  gap: 16px;
}

.email-dispatch-hero {
  border-left-color: var(--sie-primary);
}

.email-suggestion-panel {
  display: grid;
  gap: 14px;
  border-color: #cbdceb;
  background: linear-gradient(135deg, #f8fbfe 0%, #fff 68%);
}

.email-suggestion-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.email-suggestion-heading h2 {
  margin: 4px 0 4px;
  font-size: 18px;
}

.email-suggestion-heading p {
  max-width: 760px;
  margin: 0;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.5;
}

.email-suggestion-safety {
  display: grid;
  gap: 2px;
  min-width: 250px;
  padding: 11px 13px;
  border: 1px solid #b8dfcf;
  border-radius: 8px;
  background: #eefaf5;
}

.email-suggestion-safety strong {
  color: #12694d;
  font-size: 12px;
}

.email-suggestion-safety span {
  color: #42665a;
  font-size: 10px;
  line-height: 1.4;
}

.email-suggestion-reference {
  color: var(--sie-muted);
  font-size: 10px;
}

.email-suggestion-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.email-suggestion-card {
  display: grid;
  gap: 10px;
  align-content: start;
  padding: 15px;
  border: 1px solid #d7e1ea;
  border-left: 4px solid #3182a8;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 5px 18px rgba(25, 50, 75, 0.045);
}

.email-suggestion-card.is-critical {
  border-left-color: #dc5b3f;
}

.email-suggestion-card-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.email-suggestion-kind,
.email-suggestion-scope {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 3px 8px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 800;
}

.email-suggestion-kind {
  background: #e7f4fb;
  color: #176a8c;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.email-suggestion-card.is-critical .email-suggestion-kind {
  background: #fff0eb;
  color: #ad3e27;
}

.email-suggestion-scope {
  background: #f3f5f7;
  color: #4b5966;
}

.email-suggestion-card h3 {
  margin: 0;
  color: var(--sie-text);
  font-size: 14px;
  line-height: 1.35;
}

.email-suggestion-card > p {
  margin: 0;
  color: #4b5e70;
  font-size: 11px;
  line-height: 1.5;
}

.email-suggestion-municipalities {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.email-suggestion-municipalities span {
  padding: 3px 7px;
  border: 1px solid #d7e1ea;
  border-radius: 999px;
  background: #f8fafc;
  color: #34495b;
  font-size: 9px;
  font-weight: 700;
}

.email-suggestion-meta {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-top: 2px;
}

.email-suggestion-meta > div {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  gap: 8px;
  align-items: baseline;
}

.email-suggestion-meta dt {
  color: var(--sie-muted);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.email-suggestion-meta dd {
  margin: 0;
  color: var(--sie-text);
  font-size: 10px;
  font-weight: 700;
}

.email-suggestion-card .btn {
  justify-self: start;
  margin-top: auto;
}

.email-suggestion-empty {
  padding: 12px 14px;
  border: 1px dashed #cbd5df;
  border-radius: 8px;
  background: #fff;
  color: var(--sie-muted);
  font-size: 11px;
}

.email-suggestion-feedback {
  margin: 0;
}

.email-dispatch-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.email-dispatch-steps li {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 11px 13px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-muted);
}

.email-dispatch-steps li > span,
.email-compose-section-heading > span {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 999px;
  background: #eef2f6;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 800;
}

.email-dispatch-steps li.is-active {
  border-color: var(--sie-primary-line);
  background: var(--sie-primary-soft);
  color: var(--sie-text);
}

.email-dispatch-steps li.is-active > span,
.email-compose-section-heading > span {
  background: var(--sie-primary);
  color: #fff;
}

.email-dispatch-steps li div {
  display: grid;
  gap: 1px;
  min-width: 0;
}

.email-dispatch-steps strong {
  color: var(--sie-text);
  font-size: 12px;
}

.email-dispatch-steps small {
  font-size: 10px;
}

.email-compose-panel {
  display: grid;
  gap: 18px;
}

.email-dispatch-form {
  gap: 18px;
}

.email-compose-section {
  display: grid;
  gap: 16px;
  padding: 18px;
  border: 1px solid var(--sie-line);
  border-radius: 9px;
  background: #fff;
}

.email-compose-section-heading {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}

.email-compose-section-heading h3 {
  margin: 1px 0 2px;
  font-size: 15px;
  line-height: 1.3;
}

.email-compose-section-heading p {
  margin: 0;
  color: var(--sie-muted);
  font-size: 11px;
}

.email-destination-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(260px, 330px);
  gap: 16px;
  align-items: stretch;
}

.email-destination-fields {
  align-content: start;
}

.email-recipient-meter {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px;
  align-items: center;
  min-height: 104px;
  padding: 16px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}

.email-recipient-meter-icon {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #475569;
  font-size: 17px;
  font-weight: 800;
}

.email-recipient-meter > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.email-recipient-meter strong {
  color: var(--sie-text);
  font-size: 26px;
  line-height: 1;
}

.email-recipient-meter span:not(.email-recipient-meter-icon) {
  color: var(--sie-text);
  font-size: 12px;
  font-weight: 700;
}

.email-recipient-meter small {
  margin-top: 3px;
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.4;
}

.email-recipient-meter.is-ready {
  border-color: rgba(0, 168, 70, 0.28);
  background: var(--sie-green-soft);
}

.email-recipient-meter.is-ready .email-recipient-meter-icon {
  background: #fff;
  color: var(--sie-green);
}

.email-recipient-meter.is-error {
  border-color: rgba(210, 31, 43, 0.28);
  background: var(--sie-red-soft);
}

.email-recipient-meter.is-loading .email-recipient-meter-icon {
  animation: email-meter-pulse 1s ease-in-out infinite alternate;
}

@keyframes email-meter-pulse {
  from { opacity: 0.45; }
  to { opacity: 1; }
}

.email-message-field {
  gap: 0;
}

.email-request-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.email-request-action {
  display: grid;
  align-content: start;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.email-request-action.is-selected {
  border-color: var(--sie-primary);
  background: var(--sie-primary-soft);
  box-shadow: 0 0 0 2px rgba(232, 93, 60, 0.08);
}

.email-request-action-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  padding: 13px;
  cursor: pointer;
}

.email-request-action-main input {
  width: 18px;
  height: 18px;
  margin-top: 1px;
  accent-color: var(--sie-primary);
}

.email-request-action-main > span {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.email-request-action-main strong {
  color: var(--sie-text);
  font-size: 13px;
  line-height: 1.35;
}

.email-request-action-main small {
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.45;
}

.email-request-action-main em {
  width: fit-content;
  padding: 3px 6px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 9px;
  font-style: normal;
  font-weight: 700;
}

.email-request-deadline {
  display: grid;
  gap: 7px;
  padding: 11px 13px 13px 41px;
  border-top: 1px solid var(--sie-primary-line);
  background: rgba(255, 255, 255, 0.72);
}

.email-request-deadline[hidden] {
  display: none;
}

.email-request-deadline > span {
  color: var(--sie-text);
  font-size: 10px;
  font-weight: 800;
}

.email-request-deadline > span small,
.email-request-deadline > small {
  color: var(--sie-muted);
  font-size: 9px;
  font-weight: 500;
}

.email-request-deadline > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(110px, 0.55fr);
  gap: 8px;
}

.email-request-deadline .field {
  gap: 3px;
}

.email-request-deadline .field > span {
  font-size: 9px;
}

.email-request-deadline input {
  min-height: 36px;
  padding: 7px 9px;
  background: #fff;
}

.email-request-actions-hint {
  margin: -5px 0 0;
  color: var(--sie-muted);
  font-size: 10px;
}

.email-message-field > span:first-child {
  margin-bottom: 6px;
}

.email-editor-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding: 7px;
  border: 1px solid var(--sie-line);
  border-bottom: 0;
  border-radius: 7px 7px 0 0;
  background: #f8fafc;
}

.email-editor-toolbar .btn {
  min-height: 30px;
  padding: 4px 9px;
}

.email-rich-editor {
  min-height: 220px;
  max-height: 520px;
  overflow: auto;
  padding: 14px;
  border: 1px solid var(--sie-line);
  border-radius: 0 0 7px 7px;
  background: #fff;
  color: var(--sie-text);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.6;
  outline: 0;
}

.email-rich-editor:focus {
  border-color: var(--sie-primary);
  box-shadow: 0 0 0 3px var(--sie-primary-soft);
}

.email-rich-editor[aria-invalid="true"] {
  border-color: var(--sie-red);
  box-shadow: 0 0 0 3px var(--sie-red-soft);
}

.email-rich-editor:empty::before {
  content: attr(data-placeholder);
  color: #94a3b8;
  pointer-events: none;
}

.email-rich-editor p:first-child {
  margin-top: 0;
}

.email-field-error {
  margin-top: 5px;
  color: var(--sie-red);
  font-size: 11px;
  font-weight: 700;
}

.email-review-callout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 15px 16px;
  border: 1px solid var(--sie-primary-line);
  border-radius: 8px;
  background: var(--sie-primary-soft);
}

.email-review-callout > div {
  display: grid;
  gap: 3px;
}

.email-review-callout strong {
  font-size: 12px;
}

.email-review-callout span {
  color: var(--sie-muted);
  font-size: 11px;
}

.email-review-callout .btn {
  min-width: 160px;
  min-height: 38px;
}

.email-preview-feedback {
  margin: 0;
}

.email-dispatch-history-table {
  min-width: 940px;
}

.email-history-date {
  width: 132px;
  white-space: nowrap;
}

.email-destination-chip {
  display: inline-flex;
  max-width: 270px;
  padding: 4px 8px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 10px;
  font-weight: 700;
}

.email-delivery-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.email-history-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 6px;
}

.email-history-actions span {
  padding: 3px 6px;
  border-radius: 999px;
  background: var(--sie-primary-soft);
  color: #9a3412;
  font-size: 9px;
  font-weight: 700;
}

.email-delivery-summary span {
  display: inline-flex;
  padding: 3px 7px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
}

.email-delivery-sent {
  background: var(--sie-green-soft);
  color: var(--sie-green);
}

.email-delivery-failed {
  background: var(--sie-red-soft);
  color: var(--sie-red);
}

.email-preview-panel {
  width: min(1180px, 100%) !important;
  height: min(88vh, 820px) !important;
  max-height: 88vh !important;
}

.email-preview-body {
  grid-template-columns: minmax(260px, 330px) minmax(0, 1fr);
  align-items: stretch;
  overflow: hidden;
}

.email-preview-summary {
  min-height: 0;
  overflow: auto;
  padding-right: 4px;
}

.email-preview-summary dl {
  display: grid;
  gap: 8px;
  margin: 14px 0;
}

.email-preview-summary dl > div {
  display: grid;
  gap: 3px;
  padding: 10px;
  border: 1px solid var(--sie-line);
  border-radius: 7px;
  background: #f8fafc;
}

.email-preview-summary dt {
  color: var(--sie-muted);
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}

.email-preview-summary dd {
  margin: 0;
  color: var(--sie-text);
  font-size: 12px;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.email-preview-summary dd strong {
  color: var(--sie-primary);
  font-size: 20px;
}

.email-preview-recipient-sample {
  display: grid;
  gap: 8px;
}

.email-preview-requested-actions {
  display: grid;
  gap: 8px;
  margin: 0 0 14px;
  padding: 10px;
  border: 1px solid var(--sie-primary-line);
  border-radius: 7px;
  background: var(--sie-primary-soft);
}

.email-preview-requested-actions[hidden] {
  display: none;
}

.email-preview-requested-actions > strong {
  font-size: 11px;
}

.email-preview-requested-actions ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.email-preview-requested-actions li {
  display: grid;
  gap: 2px;
  font-size: 10px;
}

.email-preview-requested-actions li span {
  color: var(--sie-muted);
}

.email-preview-recipient-sample > strong {
  font-size: 11px;
}

.email-preview-recipient-sample ul {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.email-preview-recipient-sample li {
  display: grid;
  gap: 1px;
  padding-bottom: 5px;
  border-bottom: 1px solid var(--sie-line);
  font-size: 10px;
}

.email-preview-recipient-sample li span,
.email-preview-recipient-sample small {
  color: var(--sie-muted);
  overflow-wrap: anywhere;
}

.email-preview-frame-wrap {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f4f6f8;
}

.email-preview-frame-label {
  padding: 8px 11px;
  border-bottom: 1px solid var(--sie-line);
  background: #fff;
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}

.email-preview-frame-wrap iframe {
  width: 100%;
  height: 100%;
  min-height: 430px;
  border: 0;
  background: #f4f6f8;
}

.email-preview-actions {
  align-items: center;
  justify-content: space-between;
}

.email-preview-actions > div {
  display: flex;
  gap: 8px;
}

.email-confirm-check {
  max-width: 620px;
  border: 0;
  padding: 0;
  background: transparent;
  font-size: 11px;
}

.email-recipients-panel {
  width: min(980px, 100%) !important;
  height: min(82vh, 720px) !important;
  max-height: 82vh !important;
}

.email-recipient-list-tools {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}

.email-recipient-list-tools .field {
  width: min(360px, 100%);
}

.email-recipient-list-wrap {
  min-height: 0;
  overflow-y: auto;
}

.email-recipient-list-wrap table {
  min-width: 620px;
}

.email-recipient-list-wrap thead {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #fff;
}

.status-active {
  border-color: rgba(0, 168, 70, 0.22);
  background: var(--sie-green-soft);
  color: var(--sie-green);
}

.status-critical {
  border-color: rgba(210, 31, 43, 0.24);
  background: var(--sie-red-soft);
  color: var(--sie-red);
}

@media (max-width: 900px) {
  .email-suggestion-heading {
    flex-direction: column;
  }

  .email-suggestion-safety {
    width: 100%;
    min-width: 0;
  }

  .email-suggestion-grid {
    grid-template-columns: 1fr;
  }

  .email-destination-layout,
  .email-preview-body {
    grid-template-columns: 1fr;
  }

  .email-request-actions {
    grid-template-columns: 1fr;
  }

  .email-preview-body {
    overflow: auto;
  }

  .email-preview-summary {
    overflow: visible;
  }

  .email-preview-frame-wrap iframe {
    min-height: 520px;
  }

  .email-preview-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .email-preview-actions > div {
    justify-content: flex-end;
  }
}

@media (max-width: 640px) {
  .email-dispatch-steps {
    grid-template-columns: 1fr;
  }

  .email-compose-section {
    padding: 13px;
  }

  .email-destination-fields {
    grid-template-columns: 1fr;
  }

  .email-request-deadline {
    padding-left: 13px;
  }

  .email-request-deadline > div {
    grid-template-columns: 1fr;
  }

  .email-review-callout,
  .email-recipient-list-tools {
    align-items: stretch;
    flex-direction: column;
  }

  .email-review-callout .btn,
  .email-recipient-list-tools .field {
    width: 100%;
  }

  .email-preview-modal,
  .email-recipients-modal {
    padding: 8px;
  }

  .email-preview-panel,
  .email-recipients-panel {
    height: 94vh !important;
    max-height: 94vh !important;
  }

  .email-preview-actions > div {
    display: grid;
    grid-template-columns: 1fr;
  }
}

/* Relatório Situacional Diário */
.daily-situation-page {
  --daily-navy: #17324d;
  --daily-blue: #255f92;
  --daily-soft-blue: #eef6fc;
  gap: clamp(20px, 2vw, 28px);
  font-size: 15px;
}

.daily-situation-page .eyebrow {
  border: 1px solid #cfe0ed;
  background: var(--daily-soft-blue);
  color: var(--daily-blue);
}

.daily-situation-page .section-heading h2 {
  color: var(--daily-navy);
}

.daily-situation-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(24px, 3vw, 40px);
  padding: 28px 30px;
  border-color: #dbe7f0;
  background:
    radial-gradient(circle at 95% 10%, rgba(37, 95, 146, 0.11), transparent 34%),
    linear-gradient(135deg, #fff 0%, #f8fbfe 100%);
}

.daily-situation-hero-copy {
  display: grid;
  gap: 8px;
  justify-items: start;
}

.daily-situation-hero-copy > .eyebrow {
  margin: 0;
}

.daily-situation-hero-copy h2 {
  margin: 0;
  color: var(--daily-navy);
  font-size: clamp(25px, 2.3vw, 34px);
  letter-spacing: -0.025em;
}

.daily-situation-reference {
  margin: 0 0 2px;
  color: var(--sie-primary);
  font-size: 18px;
  font-weight: 800;
}

.daily-situation-reference-form {
  display: flex;
  align-items: flex-end;
  gap: 12px;
  flex-wrap: wrap;
}

.daily-situation-reference-form label {
  display: grid;
  gap: 7px;
  min-width: 160px;
  color: var(--daily-navy);
  font-size: 12px;
  font-weight: 800;
}

.daily-situation-reference-form input {
  min-height: 42px;
  border: 1px solid #cdd9e3;
  border-radius: 7px;
  background: #fff;
  color: var(--sie-text);
  font: inherit;
  padding: 7px 10px;
}

.daily-situation-reference-form .btn {
  min-height: 42px;
}

.daily-situation-overview {
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(280px, 0.65fr);
  gap: 16px;
  align-items: stretch;
}

.daily-situation-brief,
.daily-situation-coverage,
.daily-situation-section,
.daily-situation-context-card,
.daily-situation-decisions,
.daily-situation-detail-grid > .panel {
  padding: 20px;
}

.daily-situation-brief pre {
  min-height: 360px;
  max-height: 560px;
  margin: 14px 0 0;
  padding: 20px;
  overflow: auto;
  border: 1px solid #dce6ee;
  border-left: 4px solid var(--sie-primary);
  border-radius: 9px;
  background: #fbfdff;
  color: #182b3d;
  font-family: inherit;
  font-size: 15px;
  font-weight: 550;
  line-height: 1.68;
  white-space: pre-wrap;
  word-break: break-word;
}

.daily-situation-copy-feedback {
  min-height: 20px;
  margin: 7px 0 -7px;
  color: var(--sie-green);
  font-size: 13px;
  font-weight: 800;
  text-align: right;
}

.daily-situation-coverage {
  display: flex;
  flex-direction: column;
  gap: 14px;
  background: linear-gradient(155deg, var(--daily-navy), #214e74);
  color: #fff;
}

.daily-situation-coverage .eyebrow {
  color: #b9dbf3;
}

.daily-situation-coverage-value {
  display: grid;
  gap: 5px;
}

.daily-situation-coverage-value strong {
  font-size: clamp(42px, 5vw, 66px);
  line-height: 1;
  letter-spacing: -0.05em;
}

.daily-situation-coverage-value span {
  color: #d9e8f4;
  line-height: 1.4;
}

.daily-situation-progress {
  height: 10px;
  overflow: hidden;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
}

.daily-situation-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #59d28a;
}

.daily-situation-coverage-list {
  display: grid;
  gap: 0;
  margin: auto 0 0;
}

.daily-situation-coverage-list > div {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.daily-situation-coverage-list dt {
  color: #d9e8f4;
  font-size: 13px;
}

.daily-situation-coverage-list dd {
  margin: 0;
  font-weight: 850;
  text-align: right;
}

.daily-situation-section .section-heading,
.daily-situation-decisions .section-heading {
  align-items: flex-start;
}

.daily-source-chip {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  padding: 5px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.daily-source-chip.is-current {
  border-color: rgba(0, 168, 70, 0.24);
  background: var(--sie-green-soft);
  color: #087336;
}

.daily-source-chip.is-unavailable {
  border-color: rgba(210, 31, 43, 0.22);
  background: var(--sie-red-soft);
  color: var(--sie-red);
}

.daily-situation-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 11px;
  margin-top: 16px;
}

.daily-situation-metric {
  position: relative;
  display: grid;
  align-content: start;
  gap: 4px;
  min-height: 145px;
  padding: 17px;
  overflow: hidden;
  border: 1px solid #e0e7ed;
  border-radius: 10px;
  background: #fff;
}

.daily-situation-metric::after {
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: #7d9bb2;
  content: '';
}

.daily-situation-metric.is-warning::after { background: #d99a2b; }
.daily-situation-metric.is-danger::after { background: var(--sie-red); }
.daily-situation-metric.is-info::after { background: var(--sie-cyan); }

.daily-situation-metric-icon {
  position: absolute;
  top: 13px;
  right: 14px;
  font-size: 18px;
}

.daily-situation-metric strong {
  color: var(--daily-navy);
  font-size: 31px;
  line-height: 1;
}

.daily-situation-metric > span:not(.daily-situation-metric-icon) {
  max-width: 85%;
  color: #3c5368;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.35;
}

.daily-situation-metric small {
  margin-top: auto;
  color: var(--sie-muted);
  font-size: 11px;
}

.daily-situation-method-note {
  margin: 14px 0 0;
  padding: 10px 12px;
  border-left: 3px solid #e9a37f;
  background: #fff8f4;
  color: #725447;
  font-size: 12px;
  line-height: 1.5;
}

.daily-situation-context-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.daily-situation-context-card {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-height: 255px;
}

.daily-current-badge {
  align-self: flex-start;
  margin-top: -8px;
  padding: 4px 8px;
  border: 1px solid #cdddea;
  border-radius: 999px;
  background: var(--daily-soft-blue);
  color: var(--daily-blue);
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.daily-situation-context-heading {
  display: flex;
  align-items: center;
  gap: 12px;
}

.daily-situation-context-heading > span {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  flex: 0 0 42px;
  border-radius: 10px;
  background: var(--daily-soft-blue);
  font-size: 21px;
}

.daily-situation-context-heading h2 {
  margin: 2px 0 0;
  font-size: 17px;
}

.daily-situation-context-values {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.daily-situation-context-values > div {
  display: grid;
  align-content: start;
  gap: 6px;
  padding: 12px;
  border-radius: 8px;
  background: #f6f9fb;
}

.daily-situation-context-values strong,
.daily-situation-large-value {
  color: var(--daily-navy);
  font-size: 25px;
  line-height: 1;
}

.daily-situation-context-values span {
  color: #596b7b;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.35;
}

.daily-situation-breakdown {
  margin: -5px 0 0;
  color: #53697b;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.5;
}

.daily-situation-large-value {
  font-size: 48px;
}

.daily-situation-empty-source {
  display: grid;
  place-items: center;
  min-height: 100px;
  padding: 18px;
  border: 1px dashed #ccd8e1;
  border-radius: 8px;
  background: #f8fafb;
  color: #657685;
  line-height: 1.5;
  text-align: center;
}

.daily-situation-compact-list {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 20px;
  color: #3d5365;
  font-size: 13px;
}

.daily-situation-decision-counts {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.daily-situation-inline-alert {
  margin: 14px 0 0;
  font-size: 12px;
}

.daily-situation-decision-counts span {
  min-width: 98px;
  padding: 8px 10px;
  border: 1px solid #e1e7ec;
  border-radius: 8px;
  background: #f8fafb;
  color: #647483;
  font-size: 11px;
  text-align: center;
}

.daily-situation-decision-counts strong {
  display: block;
  color: var(--daily-navy);
  font-size: 21px;
}

.daily-situation-decision-list {
  display: grid;
  gap: 0;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
  counter-reset: decisions;
}

.daily-situation-decision-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  padding: 15px 4px 15px 44px;
  border-top: 1px solid #e8edf1;
  counter-increment: decisions;
  position: relative;
}

.daily-situation-decision-list li::before {
  position: absolute;
  top: 14px;
  left: 3px;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  content: counter(decisions);
  font-size: 12px;
  font-weight: 900;
}

.daily-situation-decision-main {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.daily-situation-decision-main strong {
  color: #1a3044;
  line-height: 1.42;
}

.daily-situation-decision-main span,
.daily-situation-decision-main small {
  color: var(--sie-muted);
  font-size: 12px;
}

.daily-situation-decision-meta {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  flex-wrap: wrap;
  max-width: 340px;
}

.daily-priority,
.daily-status,
.daily-overdue {
  display: inline-flex;
  padding: 4px 7px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.daily-priority.is-critica,
.daily-overdue,
.daily-status.is-bloqueado {
  background: var(--sie-red-soft);
  color: var(--sie-red);
}

.daily-priority.is-alta,
.daily-status.is-em_atencao {
  background: var(--sie-yellow-soft);
  color: #9a6411;
}

.daily-priority.is-media,
.daily-priority.is-baixa,
.daily-status {
  background: #eef2f5;
  color: #5d6c78;
}

.daily-situation-decision-meta small {
  width: 100%;
  color: var(--sie-muted);
  font-size: 11px;
  text-align: right;
}

.daily-situation-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.daily-situation-hospital-list {
  display: grid;
  gap: 0;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

.daily-situation-hospital-list li {
  display: grid;
  grid-template-columns: minmax(180px, 0.7fr) minmax(0, 1.3fr);
  gap: 14px;
  padding: 12px 0;
  border-top: 1px solid #e9edf0;
}

.daily-situation-hospital-list li > div {
  display: grid;
  gap: 2px;
}

.daily-situation-hospital-list strong {
  color: var(--daily-navy);
}

.daily-situation-hospital-list span {
  color: var(--sie-muted);
  font-size: 11px;
}

.daily-situation-hospital-list p {
  margin: 0;
  color: var(--sie-red);
  font-size: 12px;
  font-weight: 750;
  line-height: 1.45;
}

.daily-situation-hospital-list.is-stale p {
  color: #8b671c;
}

.daily-situation-footer {
  display: flex;
  justify-content: space-between;
  gap: 28px;
  padding: 2px 4px 10px;
  color: var(--sie-muted);
  font-size: 11px;
  line-height: 1.55;
}

.daily-situation-footer p {
  margin: 0;
}

@media (max-width: 1180px) {
  .daily-situation-hero {
    align-items: stretch;
    flex-direction: column;
  }

  .daily-situation-overview {
    grid-template-columns: 1fr;
  }

  .daily-situation-metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .daily-situation-context-grid {
    grid-template-columns: 1fr;
  }

  .daily-situation-context-card {
    min-height: auto;
  }
}

@media (max-width: 780px) {
  .daily-situation-page {
    gap: 18px;
    font-size: 14px;
  }

  .daily-situation-reference-form,
  .daily-situation-reference-form label,
  .daily-situation-reference-form .btn {
    width: 100%;
  }

  .daily-situation-metric-grid,
  .daily-situation-detail-grid {
    grid-template-columns: 1fr;
  }

  .daily-situation-context-values {
    grid-template-columns: 1fr;
  }

  .daily-situation-decision-list li,
  .daily-situation-hospital-list li {
    grid-template-columns: 1fr;
  }

  .daily-situation-decision-meta {
    justify-content: flex-start;
    max-width: none;
  }

  .daily-situation-decision-meta small {
    text-align: left;
  }

  .daily-situation-footer {
    flex-direction: column;
  }
}

@media print {
  .daily-situation-page {
    font-size: 11px;
  }

  .daily-situation-page .panel {
    break-inside: avoid;
    box-shadow: none;
  }

  .daily-situation-hero {
    padding: 14px;
  }

  .daily-situation-brief pre {
    min-height: 0;
    max-height: none;
    overflow: visible;
    font-size: 11px;
  }

  .daily-situation-overview,
  .daily-situation-context-grid,
  .daily-situation-detail-grid {
    grid-template-columns: 1fr;
  }

  .daily-situation-metric-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

/* Visão consolidada do Relatório Situacional Diário */
.daily-situation-status-line {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  color: #52697c;
  font-size: 13px;
  font-weight: 750;
}

.daily-situation-level {
  display: inline-flex;
  align-items: center;
  min-height: 29px;
  padding: 5px 10px;
  border: 1px solid #cbd8e2;
  border-radius: 999px;
  background: #edf3f7;
  color: #42586a;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.daily-situation-level.is-critical {
  border-color: rgba(210, 31, 43, 0.24);
  background: var(--sie-red-soft);
  color: var(--sie-red);
}

.daily-situation-level.is-warning {
  border-color: rgba(217, 154, 43, 0.28);
  background: #fff6df;
  color: #96610a;
}

.daily-situation-level.is-normal {
  border-color: rgba(0, 137, 68, 0.23);
  background: var(--sie-green-soft);
  color: #087336;
}

.daily-situation-executive {
  display: grid;
  grid-template-columns: minmax(230px, 0.42fr) minmax(0, 1.58fr);
  gap: 30px;
  align-items: center;
  padding: 24px 28px;
  border-left: 5px solid var(--sie-primary);
  background: linear-gradient(105deg, #fff9f6 0%, #fff 45%, #f7fbfe 100%);
}

.daily-situation-executive .eyebrow {
  margin: 0;
}

.daily-situation-executive h2 {
  margin: 2px 0 0;
  color: var(--daily-navy);
  font-size: 22px;
}

.daily-situation-executive > p {
  margin: 0;
  color: #344d60;
  font-size: 16px;
  line-height: 1.65;
}

.daily-situation-classification-note {
  display: block;
  margin-top: 8px;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.5;
}

.daily-situation-system-section > .section-heading {
  align-items: flex-end;
  margin-bottom: 18px;
}

.daily-situation-page .section-heading .eyebrow {
  margin: 0 0 5px;
}

.daily-situation-page .section-heading .muted {
  margin-top: 7px;
  line-height: 1.5;
}

.daily-situation-system-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}

.daily-situation-system-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: 0;
  padding: 21px;
  overflow: hidden;
  border-color: #dce6ed;
}

.daily-situation-system-card::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: linear-gradient(180deg, var(--sie-primary), var(--daily-blue));
  content: '';
}

.daily-situation-system-card.is-unavailable::before {
  background: #aab6bf;
}

.daily-situation-system-card.is-partial::before {
  background: #d99720;
}

.daily-situation-system-card > header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
}

.daily-situation-system-card > header .eyebrow {
  margin: 0;
}

.daily-situation-system-card > header .daily-current-badge {
  margin: 0;
  white-space: nowrap;
}

.daily-situation-system-card h3 {
  margin: 2px 0 0;
  color: var(--daily-navy);
  font-size: 16px;
  line-height: 1.25;
}

.daily-situation-system-icon {
  display: grid;
  place-items: center;
  width: 39px;
  height: 39px;
  border-radius: 10px;
  background: var(--daily-soft-blue);
  font-size: 20px;
}

.daily-situation-system-value {
  display: grid;
  gap: 7px;
  padding: 3px 2px 14px;
  border-bottom: 1px solid #e8edf1;
}

.daily-situation-system-value strong {
  color: var(--daily-navy);
  font-size: clamp(28px, 3vw, 40px);
  line-height: 1;
  letter-spacing: -0.035em;
}

.daily-situation-system-value span {
  color: #53697b;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.4;
}

.daily-situation-partial-source {
  margin: -3px 0 0;
  padding: 8px 10px;
  border: 1px solid #f0d59c;
  border-radius: 7px;
  background: #fff8e8;
  color: #7b5814;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.4;
}

.daily-situation-system-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.daily-situation-system-details span {
  padding: 9px 10px;
  border-radius: 7px;
  background: #f4f7f9;
  color: #40596c;
  font-size: 12px;
  font-weight: 750;
  line-height: 1.35;
}

.daily-situation-system-note {
  margin: 0;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.55;
}

.daily-situation-system-card .daily-situation-empty-source {
  flex: 1;
}

.daily-situation-priorities {
  padding: 26px 28px;
}

.daily-situation-priority-list {
  display: grid;
  gap: 0;
  margin: 20px 0 0;
  padding: 0;
  list-style: none;
  counter-reset: daily-priority;
}

.daily-situation-priority-list > li {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 22px;
  align-items: center;
  min-height: 90px;
  padding: 17px 4px 17px 50px;
  border-top: 1px solid #e6ebef;
  counter-increment: daily-priority;
}

.daily-situation-priority-list > li::before {
  position: absolute;
  top: 20px;
  left: 4px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #fff0e8;
  color: var(--sie-primary);
  content: counter(daily-priority);
  font-size: 12px;
  font-weight: 900;
}

.daily-situation-priority-list > li.is-critical::before {
  background: var(--sie-red-soft);
  color: var(--sie-red);
}

.daily-situation-priority-main {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.daily-situation-priority-source {
  color: var(--sie-primary);
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.daily-situation-priority-main strong {
  color: #183146;
  font-size: 15px;
  line-height: 1.35;
}

.daily-situation-priority-main > span:not(.daily-situation-priority-source),
.daily-situation-priority-main p,
.daily-situation-priority-list > li > small {
  margin: 0;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.45;
}

.daily-situation-priority-list > li > small {
  white-space: nowrap;
}

.daily-situation-priority-remaining {
  margin: 12px 0 0;
  color: #77601e;
  font-size: 12px;
  font-weight: 800;
  text-align: right;
}

.daily-situation-share-panel {
  padding: 0;
  overflow: hidden;
}

.daily-situation-share-panel > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 24px;
  cursor: pointer;
  list-style: none;
}

.daily-situation-share-panel > summary::-webkit-details-marker {
  display: none;
}

.daily-situation-share-panel > summary::after {
  color: var(--sie-primary);
  content: '+';
  font-size: 22px;
  font-weight: 800;
}

.daily-situation-share-panel[open] > summary::after {
  content: '−';
}

.daily-situation-share-panel > summary span {
  display: grid;
  gap: 3px;
}

.daily-situation-share-panel > summary strong {
  color: var(--daily-navy);
}

.daily-situation-share-panel > summary small {
  color: var(--sie-muted);
}

.daily-situation-share-content {
  padding: 0 24px 24px;
  border-top: 1px solid #e7edf1;
}

.daily-situation-share-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 0 0;
}

.daily-situation-share-content pre {
  min-height: 0;
  max-height: 560px;
  margin: 16px 0 0;
  padding: 18px;
  overflow: auto;
  border: 1px solid #dce6ee;
  border-left: 4px solid var(--sie-primary);
  border-radius: 9px;
  background: #fbfdff;
  color: #182b3d;
  font-family: inherit;
  font-size: 14px;
  line-height: 1.62;
  white-space: pre-wrap;
  word-break: break-word;
}

@media (max-width: 1180px) {
  .daily-situation-system-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .daily-situation-executive {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

@media (max-width: 720px) {
  .daily-situation-system-grid {
    grid-template-columns: 1fr;
  }

  .daily-situation-system-card {
    min-height: 0;
  }

  .daily-situation-system-card > header {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .daily-situation-system-card > header .daily-current-badge {
    grid-column: 1 / -1;
  }

  .daily-situation-priority-list > li {
    grid-template-columns: 1fr;
  }

  .daily-situation-priority-list > li > small {
    white-space: normal;
  }

  .daily-situation-share-actions,
  .daily-situation-footer,
  .daily-situation-page .section-heading {
    align-items: stretch;
    flex-direction: column;
  }
}

@media (max-width: 480px) {
  .daily-situation-page {
    gap: 16px;
  }

  .daily-situation-hero,
  .daily-situation-executive,
  .daily-situation-priorities {
    padding: 17px;
  }

  .daily-situation-system-grid {
    gap: 14px;
  }

  .daily-situation-system-card {
    padding: 17px;
  }

  .daily-situation-system-details {
    grid-template-columns: 1fr;
  }
}

@media print {
  .daily-situation-indicator-board:not([open]) > .daily-situation-indicator-groups {
    display: grid !important;
  }

  .daily-situation-indicator-board > .daily-situation-board-heading::after {
    display: none;
  }

  @page daily-situation-report {
    size: A4 portrait;
    margin: 12mm;
  }

  .daily-situation-page {
    page: daily-situation-report;
    gap: 8px;
  }

  .daily-situation-system-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .daily-situation-system-card {
    min-height: 0;
    padding: 11px;
    break-inside: avoid;
  }

  .daily-situation-system-card h3 {
    font-size: 13px;
  }

  .daily-situation-system-value strong {
    font-size: 23px;
  }

  .daily-situation-system-note {
    font-size: 9px;
  }

  .daily-situation-priority-list > li {
    break-inside: avoid;
  }

  .daily-situation-share-panel {
    display: none !important;
  }
}

/* Leitura executiva, comparação e proveniência do relatório diário */
.daily-situation-print-header {
  display: none;
}

.daily-situation-report-context {
  display: grid;
  grid-template-columns: minmax(250px, 0.55fr) minmax(0, 1.45fr);
  gap: 24px;
  align-items: center;
  padding: 20px 24px;
}

.daily-situation-context-intro {
  display: grid;
  gap: 4px;
}

.daily-situation-context-intro .eyebrow,
.daily-situation-summary-heading .eyebrow {
  margin: 0;
}

.daily-situation-context-intro h2,
.daily-situation-summary-heading h2,
.daily-situation-coverage h2 {
  margin: 0;
  font-size: 20px;
}

.daily-situation-context-intro h2,
.daily-situation-summary-heading h2 {
  color: var(--daily-navy);
}

.daily-situation-context-intro > p:last-child {
  margin: 2px 0 0;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.5;
}

.daily-situation-context-list,
.daily-situation-document-metadata {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.daily-situation-context-list > div,
.daily-situation-document-metadata > div {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid #e1e9ef;
  border-radius: 8px;
  background: #f8fafc;
}

.daily-situation-context-list dt,
.daily-situation-document-metadata dt {
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.daily-situation-context-list dd,
.daily-situation-document-metadata dd {
  margin: 0;
  overflow-wrap: anywhere;
  color: #243e53;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.4;
}

.daily-situation-condition {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 24px 28px;
  border-left: 5px solid #8aa0b2;
  background: linear-gradient(115deg, #fff 0%, #f8fbfd 100%);
}

.daily-situation-condition.is-critical { border-left-color: var(--sie-red); }
.daily-situation-condition.is-warning { border-left-color: #d99a2b; }
.daily-situation-condition.is-normal { border-left-color: var(--sie-green); }

.daily-situation-summary-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.daily-situation-summary-heading > div {
  display: grid;
  gap: 5px;
}

.daily-situation-condition-text {
  margin: 0;
  color: #344d60;
  font-size: 16px;
  line-height: 1.65;
}

.daily-situation-coverage h2 {
  margin-top: 5px;
  color: #fff;
}

.daily-situation-trend,
.daily-situation-card-trend {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 27px;
  padding: 4px 9px;
  border: 1px solid #cedae3;
  border-radius: 999px;
  background: #f0f4f7;
  color: #4e6374;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.025em;
  text-transform: uppercase;
}

.daily-situation-trend.is-improved,
.daily-situation-card-trend.is-improved {
  border-color: rgba(0, 137, 68, 0.24);
  background: var(--sie-green-soft);
  color: #087336;
}

.daily-situation-trend.is-worsened,
.daily-situation-card-trend.is-worsened {
  border-color: rgba(210, 31, 43, 0.22);
  background: var(--sie-red-soft);
  color: var(--sie-red);
}

.daily-situation-trend.is-stable,
.daily-situation-card-trend.is-neutral {
  border-color: #cbddeb;
  background: var(--daily-soft-blue);
  color: var(--daily-blue);
}

.daily-situation-coverage .daily-situation-trend {
  border-color: rgba(255, 255, 255, 0.25);
}

.daily-situation-changes,
.daily-situation-decision-brief,
.daily-situation-provenance {
  padding: 24px 28px;
}

.daily-situation-change-list {
  display: grid;
  gap: 0;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.daily-situation-change-list > li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
  min-height: 66px;
  padding: 12px 12px 12px 17px;
  border-top: 1px solid #e5ebef;
  border-left: 4px solid #8ca1b2;
}

.daily-situation-change-list > li.is-improved { border-left-color: var(--sie-green); }
.daily-situation-change-list > li.is-worsened { border-left-color: var(--sie-red); }
.daily-situation-change-list > li.is-neutral { border-left-color: var(--daily-blue); }

.daily-situation-change-list > li > div {
  display: grid;
  gap: 3px;
}

.daily-situation-change-list strong {
  color: var(--daily-navy);
}

.daily-situation-change-list span {
  color: var(--sie-muted);
  font-size: 12px;
}

.daily-situation-change-values {
  display: flex;
  align-items: center;
  gap: 10px;
  white-space: nowrap;
}

.daily-situation-change-values b {
  min-width: 62px;
  padding: 6px 8px;
  border-radius: 7px;
  background: #f1f5f7;
  color: #2e485d;
  text-align: center;
}

.daily-situation-decision-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 18px;
}

.daily-situation-decision-grid > article {
  padding: 17px 18px;
  border: 1px solid #e0e8ee;
  border-radius: 9px;
  background: #fafcfd;
}

.daily-situation-decision-grid h3 {
  margin: 0 0 10px;
  color: var(--daily-navy);
  font-size: 14px;
}

.daily-situation-decision-grid ul {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 18px;
  color: #40586b;
  font-size: 12px;
  line-height: 1.5;
}

.daily-situation-card-footer {
  display: grid;
  gap: 12px;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid #e6edf2;
}

.daily-situation-card-timestamps {
  display: grid;
  gap: 5px;
  margin: 0;
}

.daily-situation-card-timestamps > div {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.35;
}

.daily-situation-card-timestamps dt {
  font-weight: 850;
}

.daily-situation-card-timestamps dd {
  margin: 0;
  text-align: right;
}

.daily-situation-card-links {
  display: flex;
  gap: 7px 12px;
  flex-wrap: wrap;
}

.daily-situation-card-links a {
  color: var(--sie-primary);
  font-size: 11px;
  font-weight: 850;
  text-decoration: none;
}

.daily-situation-card-links a:hover {
  text-decoration: underline;
}

.daily-situation-document-metadata {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 17px;
}

.daily-situation-source-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.daily-situation-source-grid > div {
  display: grid;
  gap: 3px;
  padding: 10px 11px;
  border: 1px solid #e0e7ed;
  border-left: 3px solid var(--sie-green);
  border-radius: 7px;
  background: #fbfcfd;
}

.daily-situation-source-grid > div.is-partial { border-left-color: #d99a2b; }
.daily-situation-source-grid > div.is-stale { border-left-color: #b7791f; }
.daily-situation-source-grid > div.is-unavailable { border-left-color: #aab6bf; }

.daily-situation-source-grid span {
  color: #294359;
  font-size: 11px;
  font-weight: 850;
}

.daily-situation-source-grid strong,
.daily-situation-source-grid small {
  color: var(--sie-muted);
  font-size: 9px;
  line-height: 1.35;
}

@media (max-width: 1180px) {
  .daily-situation-report-context {
    grid-template-columns: 1fr;
  }

  .daily-situation-context-list {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .daily-situation-source-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 780px) {
  .daily-situation-context-list,
  .daily-situation-document-metadata,
  .daily-situation-source-grid,
  .daily-situation-decision-grid {
    grid-template-columns: 1fr;
  }

  .daily-situation-summary-heading,
  .daily-situation-change-list > li {
    align-items: flex-start;
    grid-template-columns: 1fr;
  }

  .daily-situation-summary-heading {
    flex-direction: column;
  }

  .daily-situation-change-values {
    white-space: normal;
  }
}

@media print {
  .daily-situation-page {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .daily-situation-print-header {
    display: grid;
    gap: 6px;
    padding: 0 0 8px;
    border-bottom: 2px solid var(--daily-navy);
  }

  .daily-situation-print-header > div {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: var(--daily-navy);
  }

  .daily-situation-print-header dl {
    display: grid;
    grid-template-columns: 1.4fr repeat(4, 1fr);
    gap: 6px;
    margin: 0;
  }

  .daily-situation-print-header dl > div {
    min-width: 0;
  }

  .daily-situation-print-header dt {
    color: #647483;
    font-size: 7px;
    font-weight: 850;
    text-transform: uppercase;
  }

  .daily-situation-print-header dd {
    margin: 1px 0 0;
    overflow-wrap: anywhere;
    font-size: 8px;
    font-weight: 750;
  }

  .daily-situation-report-context,
  .daily-situation-changes,
  .daily-situation-decision-brief,
  .daily-situation-provenance {
    padding: 10px 12px;
  }

  .daily-situation-report-context {
    grid-template-columns: 0.7fr 1.3fr;
    gap: 10px;
  }

  .daily-situation-context-list {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 4px;
  }

  .daily-situation-context-list > div,
  .daily-situation-document-metadata > div {
    padding: 6px;
  }

  .daily-situation-overview {
    grid-template-columns: minmax(0, 1.45fr) minmax(210px, 0.55fr);
    gap: 8px;
  }

  .daily-situation-condition,
  .daily-situation-coverage {
    padding: 11px 12px;
  }

  .daily-situation-condition-text {
    font-size: 11px;
  }

  .daily-situation-decision-grid,
  .daily-situation-source-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
  }

  .daily-situation-decision-grid > article {
    padding: 8px;
  }

  .daily-situation-card-footer {
    padding-top: 6px;
  }

  .daily-situation-card-links {
    display: none !important;
  }

  .daily-situation-priorities {
    break-inside: auto !important;
  }

  .daily-situation-provenance {
    break-before: page;
  }
}

/* Detalhamento meteorológico do relatório situacional */
.daily-situation-weather-detail {
  padding: 24px 28px;
}

.daily-situation-weather-links {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.daily-situation-weather-detail-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
  margin-top: 18px;
}

.daily-situation-weather-block {
  min-width: 0;
  padding: 18px;
  border: 1px solid #dfe8ee;
  border-radius: 10px;
  background: #fbfdfe;
}

.daily-situation-weather-block > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 15px;
}

.daily-situation-weather-block > header > div {
  display: grid;
  gap: 3px;
}

.daily-situation-weather-block > header span {
  color: var(--sie-primary);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.045em;
  text-transform: uppercase;
}

.daily-situation-weather-block h3,
.daily-situation-weather-block h4 {
  margin: 0;
  color: var(--daily-navy);
}

.daily-situation-weather-block h3 {
  font-size: 16px;
}

.daily-situation-weather-block h4 {
  margin-top: 18px;
  font-size: 13px;
}

.daily-situation-weather-block > header small {
  max-width: 220px;
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.4;
  text-align: right;
}

.daily-situation-weather-table,
.daily-situation-rain-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 11px;
}

.daily-situation-weather-table th,
.daily-situation-weather-table td,
.daily-situation-rain-table th,
.daily-situation-rain-table td {
  padding: 9px 8px;
  border-bottom: 1px solid #e4eaee;
  color: #42596c;
  text-align: center;
  white-space: nowrap;
}

.daily-situation-weather-table th:first-child,
.daily-situation-rain-table th:nth-child(2) {
  color: #203a50;
  text-align: left;
}

.daily-weather-count {
  display: inline-flex;
  justify-content: center;
  min-width: 30px;
  padding: 4px 6px;
  border-radius: 6px;
  background: #eef3f6;
  font-weight: 900;
}

.daily-weather-count.is-critical { background: var(--sie-red-soft); color: var(--sie-red); }
.daily-weather-count.is-risk { background: #fff0e4; color: #b25a13; }
.daily-weather-count.is-attention { background: var(--sie-yellow-soft); color: #8b6417; }
.daily-weather-count.is-normal { background: var(--sie-green-soft); color: #087336; }

.daily-situation-rain-periods {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.daily-situation-rain-periods > div {
  display: grid;
  gap: 5px;
  padding: 12px;
  border: 1px solid #dbe7ef;
  border-radius: 8px;
  background: #f3f8fc;
}

.daily-situation-rain-periods span {
  color: var(--daily-blue);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.daily-situation-rain-periods strong {
  color: var(--daily-navy);
  font-size: 21px;
  line-height: 1;
}

.daily-situation-rain-periods small,
.daily-situation-weather-note {
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.45;
}

.daily-situation-weather-note {
  margin: 12px 0 0;
}

@media (max-width: 980px) {
  .daily-situation-weather-detail-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .daily-situation-weather-detail {
    padding: 17px;
  }

  .daily-situation-weather-block > header {
    flex-direction: column;
  }

  .daily-situation-weather-block > header small {
    max-width: none;
    text-align: left;
  }

  .daily-situation-rain-periods {
    grid-template-columns: 1fr;
  }
}

@media print {
  .daily-situation-weather-detail {
    padding: 10px 12px;
  }

  .daily-situation-weather-detail-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    margin-top: 8px;
  }

  .daily-situation-weather-block {
    padding: 8px;
    break-inside: avoid;
  }

  .daily-situation-weather-table th,
  .daily-situation-weather-table td,
  .daily-situation-rain-table th,
  .daily-situation-rain-table td {
    padding: 4px;
    font-size: 8px;
  }

  .daily-situation-rain-periods > div {
    padding: 6px;
  }

  .daily-situation-rain-periods strong {
    font-size: 14px;
  }
}

/* Dashboard compacto do relatório situacional */
.daily-situation-page {
  gap: 14px;
  font-size: 14px;
}

.daily-situation-hero {
  min-height: 0;
  padding: 17px 20px;
}

.daily-situation-hero-copy {
  gap: 4px;
}

.daily-situation-hero-copy h2 {
  font-size: clamp(22px, 2vw, 28px);
}

.daily-situation-reference {
  color: #5b7081;
  font-size: 12px;
  font-weight: 750;
}

.daily-situation-reference-form {
  gap: 8px;
}

.daily-situation-reference-form label {
  gap: 4px;
  min-width: 135px;
  font-size: 10px;
}

.daily-situation-reference-form input,
.daily-situation-reference-form .btn {
  min-height: 36px;
}

.daily-situation-kpi-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
}

.daily-situation-kpi {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  min-height: 132px;
  padding: 15px 16px;
  overflow: hidden;
  border-color: #dce6ed;
}

.daily-situation-kpi::before {
  position: absolute;
  inset: 0 0 auto;
  height: 4px;
  background: #91a5b4;
  content: '';
}

.daily-situation-kpi.is-normal::before { background: var(--sie-green); }
.daily-situation-kpi.is-warning::before { background: #d99720; }
.daily-situation-kpi.is-critical::before { background: var(--sie-red); }

.daily-situation-kpi header {
  display: flex;
  align-items: center;
  gap: 7px;
}

.daily-situation-kpi header > span {
  font-size: 17px;
}

.daily-situation-kpi header p {
  margin: 0;
  color: #617687;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.daily-situation-kpi > strong {
  overflow: hidden;
  color: var(--daily-navy);
  font-size: clamp(23px, 2.4vw, 32px);
  line-height: 1.05;
  letter-spacing: -.035em;
  text-overflow: ellipsis;
}

.daily-situation-kpi > small {
  display: -webkit-box;
  margin-top: auto;
  overflow: hidden;
  color: #607587;
  font-size: 10px;
  line-height: 1.4;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.daily-situation-focus-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.75fr) minmax(270px, .75fr);
  gap: 10px;
  align-items: stretch;
}

.daily-situation-priorities,
.daily-situation-action-panel,
.daily-situation-changes,
.daily-situation-weather-detail {
  padding: 18px 20px;
}

.daily-situation-priority-list {
  margin-top: 10px;
}

.daily-situation-priority-list > li {
  min-height: 62px;
  gap: 12px;
  padding: 10px 2px 10px 40px;
}

.daily-situation-priority-list > li::before {
  top: 13px;
  width: 25px;
  height: 25px;
}

.daily-situation-priority-main {
  gap: 2px;
}

.daily-situation-priorities .section-heading .muted {
  display: block;
  max-width: 760px;
  margin-top: 4px;
  font-size: 11px;
  line-height: 1.45;
}

.daily-situation-priority-main strong {
  font-size: 13px;
}

.daily-situation-priority-main .daily-situation-priority-place {
  color: #38566d;
  font-weight: 750;
}

.daily-situation-priority-main .daily-situation-priority-detail,
.daily-situation-priority-main .daily-situation-priority-reason {
  margin-top: 4px;
  font-size: 11px;
  line-height: 1.45;
}

.daily-situation-priority-main .daily-situation-priority-reason {
  padding: 7px 9px;
  border-radius: 7px;
  background: #f3f7f9;
  color: #334e62;
}

.daily-situation-priority-main .daily-situation-priority-detail b,
.daily-situation-priority-main .daily-situation-priority-reason b {
  color: #183146;
}

.daily-situation-priority-source,
.daily-situation-priority-main > span:not(.daily-situation-priority-source),
.daily-situation-priority-main p,
.daily-situation-priority-list > li > small {
  font-size: 10px;
}

.daily-situation-action-panel {
  display: flex;
  flex-direction: column;
}

.daily-situation-action-list {
  display: grid;
  gap: 0;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}

.daily-situation-action-list li {
  position: relative;
  padding: 10px 0 10px 24px;
  border-top: 1px solid #e6edf2;
  color: #314b60;
  font-size: 12px;
  line-height: 1.4;
}

.daily-situation-action-list li::before {
  position: absolute;
  top: 10px;
  left: 1px;
  color: var(--sie-green);
  content: '✓';
  font-weight: 950;
}

.daily-situation-territories {
  display: grid;
  gap: 6px;
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid #e6edf2;
}

.daily-situation-territories strong {
  color: #607587;
  font-size: 10px;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.daily-situation-territories span {
  color: #40596c;
  font-size: 10px;
  line-height: 1.35;
}

.daily-situation-change-list {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.daily-situation-change-list > li {
  grid-template-columns: 1fr;
  gap: 7px;
  min-height: 0;
  padding: 10px 11px;
  border: 1px solid #e2e9ee;
  border-left-width: 4px;
  border-radius: 7px;
}

.daily-situation-change-list span {
  font-size: 10px;
}

.daily-situation-change-values {
  justify-content: space-between;
}

.daily-situation-system-section > .section-heading {
  margin-bottom: 10px;
}

.daily-situation-system-grid {
  gap: 10px;
}

.daily-situation-system-card {
  gap: 9px;
  padding: 15px 16px;
}

.daily-situation-system-card > header {
  gap: 8px;
}

.daily-situation-system-icon {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  font-size: 16px;
}

.daily-situation-system-card h3 {
  font-size: 14px;
}

.daily-situation-system-card > header .eyebrow,
.daily-situation-system-card > header .daily-current-badge,
.daily-situation-card-trend {
  font-size: 8px;
}

.daily-situation-system-value {
  gap: 4px;
  padding: 0 2px 9px;
}

.daily-situation-system-value strong {
  font-size: clamp(24px, 2.5vw, 32px);
}

.daily-situation-system-value span {
  font-size: 11px;
}

.daily-situation-system-details {
  gap: 6px;
}

.daily-situation-system-details span {
  padding: 7px 8px;
  font-size: 10px;
}

.daily-situation-card-footer {
  margin-top: 0;
  padding-top: 7px;
}

.daily-situation-card-links {
  gap: 8px 12px;
}

.daily-situation-card-links a {
  font-size: 9px;
}

.daily-situation-weather-detail-grid {
  gap: 10px;
  margin-top: 12px;
}

.daily-situation-weather-block {
  padding: 13px;
}

.daily-situation-weather-block > header {
  margin-bottom: 10px;
}

.daily-situation-share-panel > summary {
  padding: 14px 18px;
}

.daily-situation-footer {
  justify-content: center;
  padding: 2px 4px;
  font-size: 9px;
  text-align: center;
}

.daily-weather-count.is-unknown {
  background: #edf1f4;
  color: #687b89;
}

@media (max-width: 1280px) {
  .daily-situation-kpi-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .daily-situation-kpi-grid,
  .daily-situation-change-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .daily-situation-focus-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .daily-situation-hero {
    align-items: stretch;
    flex-direction: column;
  }

  .daily-situation-reference-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .daily-situation-reference-form .btn {
    width: 100%;
  }

  .daily-situation-kpi-grid,
  .daily-situation-change-list {
    grid-template-columns: 1fr;
  }

  .daily-situation-kpi {
    min-height: 112px;
  }
}

@media print {
  .daily-situation-page {
    gap: 6px;
  }

  .daily-situation-hero {
    display: none;
  }

  .daily-situation-kpi-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 5px;
  }

  .daily-situation-kpi {
    min-height: 78px;
    padding: 8px;
  }

  .daily-situation-kpi header p,
  .daily-situation-kpi > small {
    font-size: 7px;
  }

  .daily-situation-kpi > strong {
    font-size: 16px;
  }

  .daily-situation-focus-grid {
    grid-template-columns: minmax(0, 1.6fr) minmax(0, .8fr);
    gap: 5px;
  }

  .daily-situation-priorities,
  .daily-situation-action-panel,
  .daily-situation-changes,
  .daily-situation-weather-detail {
    padding: 8px;
  }

  .daily-situation-priority-list > li {
    min-height: 0;
    padding-top: 6px;
    padding-bottom: 6px;
  }

  .daily-situation-change-list,
  .daily-situation-system-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 5px;
  }

  .daily-situation-system-card {
    padding: 8px;
  }

  .daily-situation-system-details span {
    padding: 4px;
    font-size: 7px;
  }
}

/* Diário de Campo */
.field-diary-page {
  gap: 18px;
}

.field-diary-hero {
  border-left-color: var(--sie-cyan);
}

.field-diary-hero h1 {
  margin: 4px 0;
  font-size: 24px;
  line-height: 1.2;
}

.field-diary-hero-note {
  display: flex;
  gap: 10px;
  align-items: center;
  max-width: 390px;
  padding: 11px 13px;
  border: 1px solid #ccebf1;
  border-radius: 8px;
  background: var(--sie-cyan-soft);
}

.field-diary-hero-note-icon,
.field-diary-analysis-icon {
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
  border-radius: 7px;
  background: var(--sie-cyan);
  color: #fff;
  font-size: 10px;
  font-weight: 800;
}

.field-diary-hero-note-icon {
  width: 34px;
  height: 34px;
}

.field-diary-hero-note strong,
.field-diary-hero-note small {
  display: block;
}

.field-diary-hero-note strong {
  color: #164e63;
  font-size: 12px;
}

.field-diary-hero-note small {
  margin-top: 3px;
  color: #517080;
  font-size: 10px;
  line-height: 1.35;
}

.field-diary-composer {
  padding: 0;
  overflow: hidden;
  border-top: 4px solid var(--sie-primary);
}

.field-diary-composer-header,
.field-diary-feed-header {
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
}

.field-diary-composer-header {
  padding: 18px 20px 14px;
}

.field-diary-composer-header h2,
.field-diary-feed-header h2 {
  margin: 5px 0 3px;
  color: var(--sie-text);
  font-size: 17px;
  line-height: 1.25;
}

.field-diary-composer-header p,
.field-diary-feed-header p {
  margin: 0;
  color: var(--sie-muted);
  font-size: 12px;
}

.field-diary-author-pill {
  display: flex;
  gap: 9px;
  align-items: center;
  min-width: 210px;
  padding: 8px 11px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
}

.field-diary-author-pill > span {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
  font-size: 13px;
  font-weight: 800;
}

.field-diary-author-pill strong,
.field-diary-author-pill small {
  display: block;
}

.field-diary-author-pill strong {
  font-size: 12px;
}

.field-diary-author-pill small {
  margin-top: 2px;
  color: var(--sie-muted);
  font-size: 10px;
}

.field-diary-form {
  display: grid;
  gap: 0;
  padding: 0 20px 18px;
}

.field-diary-text-field {
  display: block;
}

.field-diary-text-field textarea {
  width: 100%;
  min-height: 176px;
  max-height: 520px;
  padding: 15px 16px;
  resize: vertical;
  border: 1px solid #ccd7e0;
  border-radius: 9px 9px 0 0;
  background: #fff;
  color: #243746;
  font: inherit;
  font-size: 13px;
  line-height: 1.65;
  transition: border-color .15s ease, box-shadow .15s ease;
}

.field-diary-text-field textarea:focus {
  outline: none;
  border-color: var(--sie-primary);
  box-shadow: 0 0 0 3px var(--sie-primary-line);
}

.field-diary-text-field textarea:disabled {
  background: #f3f4f6;
  cursor: not-allowed;
}

.field-diary-upload-field {
  display: grid;
  gap: 7px;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid #ccd7e0;
  border-top: 0;
  background: #fff;
}

.field-diary-upload-field label {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  color: #334155;
  font-size: 11px;
}

.field-diary-upload-field label span {
  padding: 2px 7px;
  border: 1px solid #dbe3ea;
  border-radius: 999px;
  background: #f8fafc;
  color: var(--sie-muted);
  font-size: 9px;
  font-weight: 700;
}

.field-diary-upload-field input[type="file"] {
  display: block;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  padding: 7px;
  border: 1px dashed #b9c8d3;
  border-radius: 7px;
  background: #f8fafc;
  color: #435466;
  font: inherit;
  font-size: 11px;
}

.field-diary-upload-field input[type="file"]::file-selector-button {
  margin-right: 9px;
  padding: 6px 10px;
  border: 0;
  border-radius: 6px;
  background: var(--sie-cyan-soft);
  color: #076d82;
  font: inherit;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}

.field-diary-upload-field small {
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.45;
}

.field-diary-form-footer {
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
  padding: 10px 11px;
  border: 1px solid #ccd7e0;
  border-top: 0;
  border-radius: 0 0 9px 9px;
  background: #f8fafc;
}

.field-diary-form-hints {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
  color: var(--sie-muted);
  font-size: 10px;
}

.field-diary-form-hints strong {
  color: #334155;
}

.field-diary-feed {
  padding: 20px;
}

.field-diary-feed-header {
  margin-bottom: 18px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--sie-line);
}

.field-diary-entry-count {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 9px;
  border: 1px solid var(--sie-line);
  border-radius: 999px;
  background: #f8fafc;
  color: var(--sie-muted);
  font-size: 10px;
  font-weight: 700;
  white-space: nowrap;
}

.field-diary-empty-state {
  min-height: 220px;
  padding: 28px;
}

.field-diary-empty-icon {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: 3px;
  border-radius: 50%;
  background: var(--sie-cyan-soft);
  color: var(--sie-cyan);
  font-size: 11px;
  font-weight: 900;
}

.field-diary-empty-state > span:last-child {
  max-width: 520px;
  font-size: 12px;
}

.field-diary-timeline {
  position: relative;
  display: grid;
  gap: 16px;
}

.field-diary-timeline::before {
  position: absolute;
  top: 21px;
  bottom: 21px;
  left: 20px;
  width: 2px;
  border-radius: 999px;
  background: #dce5ec;
  content: '';
}

.field-diary-entry {
  --field-diary-risk-color: #94a3b8;
  position: relative;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 12px;
}

.field-diary-entry.field-diary-risk-critical { --field-diary-risk-color: var(--sie-red); }
.field-diary-entry.field-diary-risk-high { --field-diary-risk-color: var(--sie-orange); }
.field-diary-entry.field-diary-risk-attention { --field-diary-risk-color: var(--sie-yellow); }
.field-diary-entry.field-diary-risk-low { --field-diary-risk-color: var(--sie-green); }
.field-diary-entry.field-diary-risk-information { --field-diary-risk-color: var(--sie-cyan); }
.field-diary-entry.field-diary-situation-closed { --field-diary-risk-color: var(--sie-green); }

.field-diary-timeline-marker {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: center;
  padding-top: 10px;
}

.field-diary-timeline-marker span {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--field-diary-risk-color);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  box-shadow: 0 0 0 1px #dce5ec;
}

.field-diary-bubble {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-left: 4px solid var(--field-diary-risk-color);
  border-radius: 10px;
  background: #fff;
  box-shadow: var(--sie-shadow);
}

.field-diary-entry.is-own .field-diary-bubble {
  background: #fffdfc;
}

.field-diary-entry-header {
  display: flex;
  gap: 14px;
  align-items: center;
  justify-content: space-between;
  padding: 11px 14px;
  border-bottom: 1px solid #edf1f4;
  background: #f8fafc;
}

.field-diary-entry.is-own .field-diary-entry-header {
  background: #fff8f5;
}

.field-diary-entry-header > div {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 9px;
  align-items: baseline;
}

.field-diary-entry-header strong {
  color: #243746;
  font-size: 12px;
}

.field-diary-entry-header span,
.field-diary-entry-header time {
  color: var(--sie-muted);
  font-size: 10px;
}

.field-diary-entry-header time {
  flex: 0 0 auto;
  font-weight: 600;
}

.field-diary-report-text {
  padding: 16px 17px;
  color: #30485a;
  font-size: 13px;
  line-height: 1.65;
  overflow-wrap: anywhere;
}

.field-diary-attachments {
  margin: 0 17px 14px;
  padding: 11px 12px;
  border: 1px solid #dce6ed;
  border-radius: 8px;
  background: #f8fafc;
}

.field-diary-attachments h3 {
  display: flex;
  gap: 7px;
  align-items: center;
  margin: 0 0 9px;
  color: #435466;
  font-size: 10px;
  letter-spacing: .025em;
  text-transform: uppercase;
}

.field-diary-attachments h3 .ui-icon-glyph {
  width: 15px;
  height: 15px;
  flex: 0 0 15px;
}

.field-diary-attachments ul {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.field-diary-attachment {
  position: relative;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  justify-content: space-between;
  min-width: 0;
  padding: 9px 10px 9px 13px;
  overflow: hidden;
  border: 1px solid #dce5ec;
  border-radius: 7px;
  background: #fff;
}

.field-diary-attachment::before {
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: #94a3b8;
  content: '';
}

.field-diary-attachment.is-concluido::before { background: var(--sie-green); }
.field-diary-attachment.is-processando::before { background: var(--sie-cyan); }
.field-diary-attachment.is-pendente::before { background: var(--sie-yellow); }
.field-diary-attachment.is-sem_texto::before { background: #94a3b8; }
.field-diary-attachment.is-erro::before { background: var(--sie-red); }

.field-diary-attachment > div {
  flex: 1 1 auto;
  min-width: 0;
}

.field-diary-attachment a {
  color: #176b82;
  text-decoration: none;
}

.field-diary-attachment a:hover,
.field-diary-attachment a:focus-visible {
  text-decoration: underline;
}

.field-diary-attachment a strong {
  overflow-wrap: anywhere;
}

.field-diary-attachment small {
  display: block;
  margin-top: 3px;
  color: var(--sie-muted);
  font-size: 9px;
  line-height: 1.4;
}

.field-diary-attachment form {
  flex: 0 0 auto;
}

.field-diary-attachment-terms {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 7px;
}

.field-diary-attachment-analysis {
  margin-top: 9px;
  overflow: hidden;
  border: 1px solid #d7e5ec;
  border-radius: 8px;
  background: #fbfdfe;
}

.field-diary-attachment-analysis > summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 8px;
  align-items: center;
  padding: 8px 9px;
  cursor: pointer;
  list-style: none;
}

.field-diary-attachment-analysis > summary::-webkit-details-marker { display: none; }

.field-diary-attachment-analysis-icon {
  display: inline-grid;
  place-items: center;
  width: 25px;
  height: 25px;
  border-radius: 7px;
  background: var(--sie-cyan-soft);
  color: #087086;
}

.field-diary-attachment-analysis-icon .ui-icon-glyph {
  width: 14px;
  height: 14px;
}

.field-diary-attachment-analysis > summary strong,
.field-diary-attachment-analysis > summary small { display: block; }

.field-diary-attachment-analysis > summary strong {
  color: #29475b;
  font-size: 10px;
}

.field-diary-attachment-analysis > summary small {
  margin-top: 1px;
  font-size: 9px;
}

.field-diary-attachment-analysis-toggle {
  color: #176b82;
  font-size: 9px;
  font-weight: 800;
  white-space: nowrap;
}

.field-diary-attachment-analysis[open] .field-diary-attachment-analysis-toggle { font-size: 0; }
.field-diary-attachment-analysis[open] .field-diary-attachment-analysis-toggle::after { content: 'Ocultar'; font-size: 9px; }

.field-diary-attachment-analysis-body {
  display: grid;
  gap: 9px;
  padding: 0 9px 9px;
  border-top: 1px solid #e5edf2;
}

.field-diary-attachment-analysis-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  padding-top: 9px;
}

.field-diary-attachment-excerpt,
.field-diary-attachment-plain-reading,
.field-diary-attachment-findings > section,
.field-diary-attachment-evidence {
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid #e1e8ed;
  border-radius: 7px;
  background: #fff;
}

.field-diary-attachment-plain-reading {
  border-color: #cce3eb;
  background: #f2fafc;
}

.field-diary-attachment-analysis h4 {
  margin: 0 0 5px;
  color: #42596b;
  font-size: 9px;
  letter-spacing: .025em;
  text-transform: uppercase;
}

.field-diary-attachment-excerpt p,
.field-diary-attachment-plain-reading p,
.field-diary-attachment-evidence ul {
  margin: 0;
  color: #344e60;
  font-size: 10px;
  line-height: 1.5;
}

.field-diary-attachment-excerpt small,
.field-diary-attachment-evidence small {
  margin-top: 5px;
}

.field-diary-attachment-findings {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.field-diary-attachment-evidence ul { padding-left: 17px; }

.field-diary-attachment-analysis-body > footer {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  color: var(--sie-muted);
  font-size: 8px;
  line-height: 1.4;
}

.field-diary-attachment-message {
  margin: 8px 0 0;
  padding: 7px 8px;
  border-radius: 6px;
  background: #f1f5f9;
  color: #5c6c79;
  font-size: 9px;
  line-height: 1.45;
}

.field-diary-attachment-message.is-error {
  background: var(--sie-red-soft);
  color: #9f2932;
}

.field-diary-attachments > p {
  margin: 9px 0 0;
  color: var(--sie-muted);
  font-size: 9px;
  line-height: 1.45;
}

.field-diary-entry-summary,
.field-diary-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}

.field-diary-entry-summary {
  padding: 0 17px 14px;
}

.field-diary-risk-badge,
.field-diary-situation-badge,
.field-diary-tone-badge,
.field-diary-chip {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 3px 8px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1.25;
}

.field-diary-situation-badge {
  gap: 5px;
  border-color: #bce8cb;
  background: var(--sie-green-soft);
  color: #087334;
}

.field-diary-situation-badge .ui-icon-glyph {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  stroke-width: 2.5;
}

.field-diary-tone-badge {
  gap: 5px;
}

.field-diary-tone-badge .ui-icon-glyph {
  width: 13px;
  height: 13px;
  flex: 0 0 13px;
}

.field-diary-tone-badge-worsening { border-color: #fecdd3; background: var(--sie-red-soft); color: #a10f1d; }
.field-diary-tone-badge-attention { border-color: #fde3ad; background: var(--sie-yellow-soft); color: #8c5b16; }
.field-diary-tone-badge-stable { border-color: #bfe5ec; background: var(--sie-cyan-soft); color: #076d82; }
.field-diary-tone-badge-improving,
.field-diary-tone-badge-closed { border-color: #bce8cb; background: var(--sie-green-soft); color: #087334; }
.field-diary-tone-badge-mixed { border-color: #ddd6fe; background: #f5f3ff; color: #6d28d9; }
.field-diary-tone-badge-inconclusive { border-color: #dbe2e8; background: #f1f5f9; color: #64748b; }

.field-diary-risk-badge-critical { border-color: #fecdd3; background: var(--sie-red-soft); color: #a10f1d; }
.field-diary-risk-badge-high { border-color: var(--sie-primary-line); background: var(--sie-orange-soft); color: #b63d18; }
.field-diary-risk-badge-attention { border-color: #fde3ad; background: var(--sie-yellow-soft); color: #8c5b16; }
.field-diary-risk-badge-low { border-color: #bce8cb; background: var(--sie-green-soft); color: #087334; }
.field-diary-risk-badge-information { border-color: #bfe5ec; background: var(--sie-cyan-soft); color: #076d82; }
.field-diary-risk-badge-unknown { border-color: #dbe2e8; background: #f1f5f9; color: #64748b; }

.field-diary-chip-municipality { border-color: #bfe5ec; background: var(--sie-cyan-soft); color: #076d82; }
.field-diary-chip-location { border-color: #d7e0e8; background: #f1f5f9; color: #475569; }
.field-diary-chip-time { border-color: #ddd6fe; background: #f5f3ff; color: #6d28d9; }
.field-diary-chip-category { border-color: #bce8cb; background: var(--sie-green-soft); color: #087334; }
.field-diary-chip-keyword { border-color: #e2e8f0; background: #fff; color: #526477; font-weight: 600; }

.field-diary-analysis {
  border-top: 1px solid #edf1f4;
  background: #fbfdfe;
}

.field-diary-analysis > summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 10px;
  align-items: center;
  padding: 11px 14px;
  cursor: pointer;
  list-style: none;
}

.field-diary-analysis > summary::-webkit-details-marker {
  display: none;
}

.field-diary-analysis-icon {
  width: 28px;
  height: 28px;
}

.field-diary-analysis > summary strong,
.field-diary-analysis > summary small {
  display: block;
}

.field-diary-analysis > summary strong {
  color: #334155;
  font-size: 11px;
}

.field-diary-analysis > summary small {
  margin-top: 2px;
  color: var(--sie-muted);
  font-size: 10px;
}

.field-diary-analysis-toggle {
  color: var(--sie-cyan);
  font-size: 10px;
  font-weight: 800;
}

.field-diary-analysis[open] .field-diary-analysis-toggle {
  font-size: 0;
}

.field-diary-analysis[open] .field-diary-analysis-toggle::after {
  content: 'Ocultar análise';
  font-size: 10px;
}

.field-diary-analysis-body {
  display: grid;
  gap: 14px;
  padding: 15px 17px 16px;
  border-top: 1px solid #e7edf2;
}

.field-diary-analysis-notice {
  margin: 0;
  padding: 9px 11px;
  border-left: 3px solid var(--sie-cyan);
  border-radius: 4px;
  background: var(--sie-cyan-soft);
  color: #45697a;
  font-size: 10px;
  line-height: 1.45;
}

.field-diary-tone-summary {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  padding: 10px 12px;
  border: 1px solid #dbe3ea;
  border-radius: 7px;
  background: #f8fafc;
  color: #526477;
}

.field-diary-tone-summary-icon {
  display: inline-grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: 0 0 28px;
  border-radius: 50%;
  background: #fff;
}

.field-diary-tone-summary-icon .ui-icon-glyph {
  width: 16px;
  height: 16px;
}

.field-diary-tone-summary > div > span,
.field-diary-tone-summary strong,
.field-diary-tone-summary small {
  display: block;
}

.field-diary-tone-summary > div > span {
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.field-diary-tone-summary strong {
  margin-top: 2px;
  color: #334155;
  font-size: 12px;
}

.field-diary-tone-summary small {
  margin-top: 2px;
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.4;
}

.field-diary-tone-summary-worsening { border-color: #fecdd3; background: var(--sie-red-soft); color: #a10f1d; }
.field-diary-tone-summary-attention { border-color: #fde3ad; background: var(--sie-yellow-soft); color: #8c5b16; }
.field-diary-tone-summary-stable { border-color: #bfe5ec; background: var(--sie-cyan-soft); color: #076d82; }
.field-diary-tone-summary-improving,
.field-diary-tone-summary-closed { border-color: #bce8cb; background: var(--sie-green-soft); color: #087334; }
.field-diary-tone-summary-mixed { border-color: #ddd6fe; background: #f5f3ff; color: #6d28d9; }

.field-diary-tone-summary-worsening strong,
.field-diary-tone-summary-attention strong,
.field-diary-tone-summary-stable strong,
.field-diary-tone-summary-improving strong,
.field-diary-tone-summary-closed strong,
.field-diary-tone-summary-mixed strong {
  color: inherit;
}

.field-diary-analysis-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 13px 18px;
}

.field-diary-analysis-grid section,
.field-diary-evidence {
  min-width: 0;
}

.field-diary-analysis-grid h3,
.field-diary-evidence h3 {
  margin: 0 0 7px;
  color: #526477;
  font-size: 9px;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.field-diary-analysis-wide {
  grid-column: 1 / -1;
}

.field-diary-none {
  color: #94a3b8;
  font-size: 10px;
  font-style: italic;
}

.field-diary-evidence {
  padding: 11px 12px;
  border: 1px solid #f4d7bb;
  border-radius: 7px;
  background: #fffaf5;
}

.field-diary-evidence ul {
  display: grid;
  gap: 5px;
  margin: 0;
  padding-left: 18px;
  color: #5d4938;
  font-size: 11px;
  line-height: 1.45;
}

.field-diary-evidence-closed {
  border-color: #bce8cb;
  background: var(--sie-green-soft);
}

.field-diary-evidence-closed h3,
.field-diary-evidence-closed ul {
  color: #087334;
}

.field-diary-evidence-tone-stable { border-color: #bfe5ec; background: var(--sie-cyan-soft); }
.field-diary-evidence-tone-improving { border-color: #bce8cb; background: var(--sie-green-soft); }
.field-diary-evidence-tone-worsening { border-color: #fecdd3; background: var(--sie-red-soft); }
.field-diary-evidence-tone-mixed { border-color: #ddd6fe; background: #f5f3ff; }

.field-diary-analysis-audit {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 16px;
  padding-top: 10px;
  border-top: 1px dashed #dbe3ea;
  color: #7b8c99;
  font-size: 9px;
}

@media (max-width: 900px) {
  .field-diary-hero {
    grid-template-columns: 1fr;
  }

  .field-diary-hero-note {
    max-width: none;
  }
}

@media (max-width: 640px) {
  .field-diary-composer-header,
  .field-diary-feed-header,
  .field-diary-form-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .field-diary-author-pill {
    min-width: 0;
  }

  .field-diary-form {
    padding: 0 13px 14px;
  }

  .field-diary-composer-header,
  .field-diary-feed {
    padding: 14px;
  }

  .field-diary-form-footer .btn {
    width: 100%;
  }

  .field-diary-timeline::before {
    left: 15px;
  }

  .field-diary-entry {
    grid-template-columns: 32px minmax(0, 1fr);
    gap: 8px;
  }

  .field-diary-timeline-marker span {
    width: 28px;
    height: 28px;
    font-size: 10px;
  }

  .field-diary-entry-header {
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .field-diary-report-text {
    padding: 13px;
  }

  .field-diary-upload-field {
    padding: 11px;
  }

  .field-diary-attachments {
    margin: 0 13px 12px;
    padding: 9px;
  }

  .field-diary-attachment {
    align-items: stretch;
    flex-direction: column;
  }

  .field-diary-attachment form,
  .field-diary-attachment form .btn {
    width: 100%;
  }

  .field-diary-attachment-analysis > summary {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .field-diary-attachment-analysis-toggle {
    grid-column: 2;
  }

  .field-diary-attachment-findings {
    grid-template-columns: 1fr;
  }

  .field-diary-entry-summary {
    padding: 0 13px 12px;
  }

  .field-diary-analysis > summary {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .field-diary-analysis-toggle {
    grid-column: 2;
  }

  .field-diary-analysis-grid {
    grid-template-columns: 1fr;
  }

  .field-diary-analysis-wide {
    grid-column: auto;
  }
}

/* Keep module-specific spacing after the shared panel rules. */
.emergency-ai-page .emergency-ai-hero { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 24px; border-left: 3px solid var(--eia-indigo); background: linear-gradient(120deg, #fff 0%, #f6f8ff 60%, #eef5ff 100%); }
.emergency-ai-page .emergency-ai-history { padding: 0; }
.emergency-ai-page .emergency-ai-report,
.emergency-ai-page .emergency-ai-chat { padding: 18px; }
.emergency-ai-page .emergency-ai-advisory { margin: 0; font-size: 13px; line-height: 1.55; }
.emergency-ai-page .emergency-ai-report-header p,
.emergency-ai-page .emergency-ai-chat > header p { font-size: 12px; line-height: 1.45; }
.emergency-ai-page .emergency-ai-timeline-grid article > span { font-size: 10px; }
.emergency-ai-page .emergency-ai-timeline-grid h3 { font-size: 14px; }
.emergency-ai-page .emergency-ai-timeline-grid p,
.emergency-ai-page .emergency-ai-timeline-grid li { font-size: 12px; line-height: 1.5; }
.emergency-ai-page .emergency-ai-management-grid h3 { font-size: 14px; }
.emergency-ai-page .emergency-ai-management-grid p { font-size: 12px; line-height: 1.45; }
.emergency-ai-page .emergency-ai-management-grid li { font-size: 12px; line-height: 1.5; }
.emergency-ai-priorities { display: grid; gap: 10px; margin-top: 16px; }
.emergency-ai-priorities > header h3 { margin: 0; color: var(--eia-ink); font-size: 15px; }
.emergency-ai-priorities > header p { margin: 4px 0 0; color: var(--sie-muted); font-size: 12px; }
.emergency-ai-preventive-table-wrap { overflow-x: auto; border: 1px solid #fde68a; border-radius: 9px; background: #fff; }
.emergency-ai-preventive-table-wrap table { width: 100%; border-collapse: collapse; }
.emergency-ai-preventive-table-wrap th,
.emergency-ai-preventive-table-wrap td { padding: 9px 10px; border-bottom: 1px solid #edf2f5; color: #475569; font-size: 12px; line-height: 1.45; text-align: left; vertical-align: top; }
.emergency-ai-preventive-table-wrap th { background: #fef3c7; color: #78350f; font-size: 10px; text-transform: uppercase; }
.emergency-ai-preventive-table-wrap td strong,
.emergency-ai-preventive-table-wrap td small,
.emergency-ai-preventive-table-wrap td span { display: block; }
.emergency-ai-preventive-table-wrap td small { margin-top: 2px; color: var(--sie-muted); }
.emergency-ai-preventive-table-wrap tr:last-child td { border-bottom: 0; }
.emergency-ai-priority-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.emergency-ai-priority-list > article { min-width: 0; padding: 14px; border: 1px solid #dbe5f1; border-left: 4px solid var(--eia-indigo); border-radius: 9px; background: #f8fbff; }
.emergency-ai-priority-heading { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 6px; }
.emergency-ai-priority-heading > span { width: fit-content; max-width: 100%; padding: 3px 7px; border-radius: 999px; background: #e0e7ff; color: #3730a3; font-size: 10px; font-weight: 700; overflow-wrap: anywhere; }
.emergency-ai-priority-heading strong,
.emergency-ai-priority-heading small { display: block; overflow-wrap: anywhere; }
.emergency-ai-priority-heading strong { color: var(--eia-ink); font-size: 13px; }
.emergency-ai-priority-heading small { margin-top: 2px; color: var(--sie-muted); font-size: 11px; }
.emergency-ai-priority-list p { margin: 9px 0 0; color: #334155; font-size: 12px; line-height: 1.5; overflow-wrap: anywhere; }
.emergency-ai-page .emergency-ai-evidence summary,
.emergency-ai-report-evidence summary { cursor: pointer; color: var(--eia-indigo); font-size: 11px; font-weight: 700; }
.emergency-ai-page .emergency-ai-evidence li,
.emergency-ai-report-evidence li { margin-top: 4px; color: var(--sie-muted); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.emergency-ai-report-evidence { margin-top: 14px; padding: 12px; border: 1px solid var(--sie-line); border-radius: 8px; background: #fff; }
.emergency-ai-report-evidence ul { margin: 8px 0 0; padding-left: 18px; }
@media (max-width: 900px) {
  .emergency-ai-page .emergency-ai-hero { align-items: stretch; flex-direction: column; }
  .emergency-ai-priority-list { grid-template-columns: 1fr; }
}

/* Emergência IA: leitura progressiva, tipografia legível e melhor uso da largura. */
.emergency-ai-page {
  gap: 14px;
}

.emergency-ai-page > .alert {
  margin: 0;
}

.emergency-ai-page .alert.alert-info.emergency-ai-advisory {
  margin: 0;
}

.emergency-ai-page .decision-briefing.panel {
  margin-top: 16px;
  padding: 16px;
  border: 1px solid #d7e3e8;
  border-left: 4px solid var(--sie-cyan);
  background: linear-gradient(135deg, #f8fcfd 0%, #fff 72%);
}

.emergency-ai-page .decision-briefing-feedback:empty {
  display: none;
}

.emergency-ai-page .emergency-ai-hero {
  gap: 20px;
  padding: 20px 22px;
}

.emergency-ai-page .emergency-ai-hero h1 {
  font-size: 24px;
  line-height: 1.2;
}

.emergency-ai-page .emergency-ai-hero p {
  font-size: 13px;
  line-height: 1.55;
}

.emergency-ai-page .emergency-ai-system-state {
  min-width: 270px;
  padding: 12px 14px;
}

.emergency-ai-page .emergency-ai-system-state strong {
  font-size: 14px;
}

.emergency-ai-page .emergency-ai-system-state small {
  font-size: 11px;
  line-height: 1.45;
}

.emergency-ai-page .emergency-ai-kpis {
  gap: 10px;
}

.emergency-ai-page .emergency-ai-kpis article {
  display: grid;
  align-content: start;
  gap: 4px;
  min-height: 104px;
  padding: 13px 15px;
}

.emergency-ai-page .emergency-ai-kpis > article > span:first-child {
  font-size: 11px;
}

.emergency-ai-page .emergency-ai-kpis strong {
  margin: 3px 0 1px;
  font-size: 23px;
  line-height: 1.25;
}

.emergency-ai-page .emergency-ai-kpis small {
  font-size: 11px;
  line-height: 1.4;
}

.emergency-ai-page .emergency-ai-workspace {
  grid-template-columns: minmax(210px, 240px) minmax(0, 1fr);
  gap: 16px;
}

.emergency-ai-page .emergency-ai-history h2,
.emergency-ai-page .emergency-ai-report h2,
.emergency-ai-page .emergency-ai-chat h2 {
  font-size: 18px;
  line-height: 1.3;
}

.emergency-ai-page .emergency-ai-history {
  top: 74px;
}

.emergency-ai-page .emergency-ai-helper,
.emergency-ai-page .emergency-ai-history-item > span:not(.emergency-ai-history-top),
.emergency-ai-page .emergency-ai-history-item small {
  font-size: 11px;
  line-height: 1.45;
}

.emergency-ai-page .emergency-ai-history-top {
  font-size: 12px;
}

.emergency-ai-page .emergency-ai-report,
.emergency-ai-page .emergency-ai-chat {
  padding: 22px;
}

.emergency-ai-page .emergency-ai-report-header p,
.emergency-ai-page .emergency-ai-chat > header p {
  font-size: 12px;
  line-height: 1.55;
}

.emergency-ai-page .emergency-ai-executive-summary {
  margin-top: 14px;
  padding: 15px 17px;
}

.emergency-ai-page .emergency-ai-executive-summary > span,
.emergency-ai-page .emergency-ai-executive-summary > summary > span:first-child {
  color: var(--eia-indigo);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.emergency-ai-page .emergency-ai-executive-summary p {
  margin: 7px 0 0;
  color: #27324a;
  font-size: 14px;
  line-height: 1.65;
}

.emergency-ai-page .emergency-ai-summary-scope-note {
  margin: 9px 2px 0;
  color: #526079;
  font-size: 11px;
  line-height: 1.5;
}

.emergency-ai-executive-summary.is-collapsible > summary {
  display: block;
  cursor: pointer;
  list-style: none;
}

.emergency-ai-executive-summary.is-collapsible > summary::-webkit-details-marker {
  display: none;
}

.emergency-ai-executive-summary.is-collapsible .emergency-ai-summary-toggle,
.emergency-ai-executive-summary.is-collapsible .emergency-ai-summary-toggle span {
  display: inline-block;
  margin-top: 9px;
  color: var(--eia-indigo);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}

.emergency-ai-executive-summary.is-collapsible .emergency-ai-summary-toggle span:last-child,
.emergency-ai-executive-summary.is-collapsible[open] .emergency-ai-summary-preview,
.emergency-ai-executive-summary.is-collapsible[open] .emergency-ai-summary-toggle span:first-child {
  display: none;
}

.emergency-ai-executive-summary.is-collapsible[open] .emergency-ai-summary-toggle span:last-child {
  display: inline-block;
}

.emergency-ai-summary-full {
  margin-top: 12px;
  padding-top: 5px;
  border-top: 1px solid #dddff5;
}

.emergency-ai-section-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}

.emergency-ai-section-heading h3 {
  margin: 3px 0 0;
  color: var(--eia-ink);
  font-size: 17px;
  line-height: 1.3;
}

.emergency-ai-section-heading p {
  margin: 4px 0 0;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.5;
}

.emergency-ai-page .emergency-ai-timeline-grid {
  display: block;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--sie-line);
}

.emergency-ai-timeline-tabs {
  display: none;
  gap: 6px;
  margin-top: 13px;
  padding: 0 0 5px;
  overflow-x: auto;
  scrollbar-width: thin;
}

.emergency-ai-timeline-grid.is-enhanced .emergency-ai-timeline-tabs {
  display: flex;
}

.emergency-ai-timeline-tabs button {
  display: grid;
  flex: 1 0 108px;
  gap: 1px;
  min-width: 108px;
  padding: 8px 10px;
  border: 1px solid #dce2ed;
  border-radius: 8px;
  background: #fff;
  color: #475569;
  font: inherit;
  text-align: left;
  cursor: pointer;
}

.emergency-ai-timeline-tabs button span {
  font-size: 11px;
  font-weight: 700;
  line-height: 1.3;
}

.emergency-ai-timeline-tabs button small {
  color: var(--sie-muted);
  font-size: 9px;
  line-height: 1.3;
}

.emergency-ai-timeline-tabs button:hover {
  border-color: #a5b4fc;
  background: #f8faff;
}

.emergency-ai-timeline-tabs button:focus-visible {
  outline: 3px solid #c7d2fe;
  outline-offset: 1px;
}

.emergency-ai-timeline-tabs button.is-active {
  border-color: #818cf8;
  background: #eef2ff;
  color: #3730a3;
  box-shadow: 0 2px 8px rgba(67, 56, 202, .1);
}

.emergency-ai-timeline-tabs button.is-active small {
  color: #4f46e5;
}

.emergency-ai-timeline-panels {
  margin-top: 7px;
}

.emergency-ai-page .emergency-ai-timeline-panel {
  min-width: 0;
  padding: 17px 19px;
  border: 1px solid #dfe5ef;
  border-top: 3px solid #64748b;
  border-radius: 10px;
  background: #fff;
}

.emergency-ai-page .emergency-ai-timeline-panel + .emergency-ai-timeline-panel {
  margin-top: 10px;
}

.emergency-ai-page .emergency-ai-timeline-grid.is-enhanced .emergency-ai-timeline-panel {
  margin-top: 0;
}

.emergency-ai-page .emergency-ai-timeline-panel[hidden] {
  display: none !important;
}

.emergency-ai-page .emergency-ai-timeline-panel.is-forecast {
  border-top-color: var(--eia-blue);
  background: #f8fbff;
}

.emergency-ai-timeline-panel > header > span {
  color: #64748b;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
}

.emergency-ai-timeline-panel > header h3 {
  margin: 3px 0 0;
  color: var(--eia-ink);
  font-size: 18px;
  line-height: 1.3;
}

.emergency-ai-page .emergency-ai-timeline-summary {
  max-width: 100ch;
  margin: 10px 0 0;
  color: #334155;
  font-size: 14px;
  line-height: 1.65;
}

.emergency-ai-page .emergency-ai-timeline-highlights {
  columns: 2 320px;
  column-gap: 32px;
  margin: 13px 0 0;
  padding-left: 19px;
}

.emergency-ai-page .emergency-ai-timeline-highlights li {
  break-inside: avoid;
  margin: 0 0 9px;
  padding-right: 8px;
  color: #334155;
  font-size: 14px;
  line-height: 1.58;
}

.emergency-ai-page .emergency-ai-evidence summary,
.emergency-ai-page .emergency-ai-report-evidence summary {
  font-size: 12px;
}

.emergency-ai-page .emergency-ai-evidence li,
.emergency-ai-page .emergency-ai-report-evidence li {
  font-size: 12px;
  line-height: 1.55;
}

.emergency-ai-page .emergency-ai-priorities,
.emergency-ai-page .emergency-ai-management {
  gap: 12px;
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid var(--sie-line);
}

.emergency-ai-page .emergency-ai-priorities > header h3 {
  font-size: 17px;
}

.emergency-ai-page .emergency-ai-priorities > header p {
  font-size: 12px;
  line-height: 1.5;
}

.emergency-ai-page .emergency-ai-priority-list {
  align-items: start;
  gap: 11px;
}

.emergency-ai-page .emergency-ai-priority-list > article {
  align-self: start;
  padding: 14px 15px;
}

.emergency-ai-page .emergency-ai-priority-heading strong {
  font-size: 14px;
  line-height: 1.4;
}

.emergency-ai-page .emergency-ai-priority-heading small,
.emergency-ai-page .emergency-ai-priority-list p {
  font-size: 13px;
  line-height: 1.55;
}

.emergency-ai-page .emergency-ai-priority-action {
  margin-top: 9px;
}

.emergency-ai-page .emergency-ai-cemaden-highlight {
  padding: 18px;
  border: 2px solid #eab308;
  border-radius: 12px;
  background: linear-gradient(180deg, #fffbeb 0, #fff 72%);
}

.emergency-ai-page .emergency-ai-cemaden-highlight > header h3 {
  margin-top: 4px;
  color: #713f12;
}

.emergency-ai-source-kicker {
  color: #a16207;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.emergency-ai-cemaden-map {
  margin: 2px 0 14px;
  padding: 9px;
  border: 1px solid #d6b45c;
  border-radius: 10px;
  background: #fff;
}

.emergency-ai-cemaden-map img {
  display: block;
  width: 100%;
  max-width: 760px;
  height: auto;
  margin: 0 auto;
  border-radius: 7px;
}

.emergency-ai-cemaden-map figcaption,
.emergency-ai-cemaden-more {
  margin: 7px 0 0;
  color: #64748b;
  font-size: 11px;
  line-height: 1.45;
  text-align: center;
}

.emergency-ai-cemaden-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.emergency-ai-cemaden-grid > article {
  padding: 10px 11px;
  border: 1px solid #cbd5e1;
  border-left: 4px solid #64748b;
  border-radius: 8px;
  background: #fff;
}

.emergency-ai-cemaden-grid > article.is-moderate { border-left-color: #eab308; }
.emergency-ai-cemaden-grid > article.is-high { border-left-color: #f97316; }
.emergency-ai-cemaden-grid > article.is-very-high { border-left-color: #dc2626; }

.emergency-ai-cemaden-grid > article > div {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.emergency-ai-cemaden-grid strong {
  color: #17324d;
  font-size: 13px;
}

.emergency-ai-cemaden-grid span {
  flex: 0 0 auto;
  padding: 2px 6px;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 9px;
  font-weight: 800;
}

.emergency-ai-cemaden-grid .is-moderate span { background: #fef9c3; color: #854d0e; }
.emergency-ai-cemaden-grid .is-high span { background: #ffedd5; color: #9a3412; }
.emergency-ai-cemaden-grid .is-very-high span { background: #fee2e2; color: #991b1b; }

.emergency-ai-cemaden-grid p {
  margin: 5px 0 0;
  color: #475569;
  font-size: 12px;
  line-height: 1.4;
}

.emergency-ai-cemaden-grid small {
  display: block;
  margin-top: 5px;
  color: #64748b;
  font-size: 10px;
}

.emergency-ai-priority-details {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid #dbe5f1;
}

.emergency-ai-priority-details > summary {
  cursor: pointer;
  color: var(--eia-indigo);
  font-size: 11px;
  font-weight: 700;
}

.emergency-ai-priority-details > div {
  padding-top: 2px;
}

.emergency-ai-page .emergency-ai-management {
  display: grid;
}

.emergency-ai-page .emergency-ai-management-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: 0;
}

.emergency-ai-management-grid > details {
  overflow: hidden;
  border: 1px solid var(--sie-line);
  border-radius: 9px;
  background: var(--eia-soft);
}

.emergency-ai-management-grid > details > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 12px 14px;
  cursor: pointer;
  list-style: none;
}

.emergency-ai-management-grid > details > summary::-webkit-details-marker {
  display: none;
}

.emergency-ai-management-grid > details > summary span,
.emergency-ai-management-grid > details > summary strong,
.emergency-ai-management-grid > details > summary small {
  display: block;
}

.emergency-ai-management-grid > details > summary strong {
  color: var(--eia-ink);
  font-size: 13px;
}

.emergency-ai-management-grid > details > summary small {
  margin-top: 2px;
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.4;
}

.emergency-ai-management-grid > details > summary b {
  flex: 0 0 auto;
  padding: 4px 8px;
  border-radius: 999px;
  background: #e2e8f0;
  color: #475569;
  font-size: 10px;
}

.emergency-ai-management-grid > details[open] > summary {
  border-bottom: 1px solid var(--sie-line);
  background: #fff;
}

.emergency-ai-management-grid > details > ol {
  columns: 2 320px;
  column-gap: 32px;
  margin: 0;
  padding: 13px 24px 15px 36px;
}

.emergency-ai-management-grid > details > ol li {
  break-inside: avoid;
  margin: 0 0 8px;
  padding-right: 8px;
  color: #42506a;
  font-size: 13px;
  line-height: 1.55;
}

.emergency-ai-page .emergency-ai-report-evidence,
.emergency-ai-page .emergency-ai-full-report {
  margin-top: 12px;
}

.emergency-ai-page .emergency-ai-full-report > summary {
  font-size: 12px;
}

.emergency-ai-page .emergency-ai-markdown {
  font-size: 13px;
  line-height: 1.65;
}

.emergency-ai-page .emergency-ai-status {
  font-size: 10px;
}

.emergency-ai-page .emergency-ai-conversations a {
  font-size: 11px;
}

.emergency-ai-page .emergency-ai-message-meta {
  font-size: 10px;
}

.emergency-ai-page .emergency-ai-message-meta strong {
  font-size: 11px;
}

.emergency-ai-page .emergency-ai-question-form label,
.emergency-ai-page .emergency-ai-question-form textarea {
  font-size: 12px;
}

.emergency-ai-page .emergency-ai-question-form small {
  font-size: 10px;
}

@media (max-width: 1440px) {
  .emergency-ai-page .emergency-ai-workspace {
    grid-template-columns: minmax(0, 1fr);
  }

  .emergency-ai-page .emergency-ai-history {
    position: static;
  }

  .emergency-ai-page .emergency-ai-history-list {
    display: flex;
    max-height: none;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: thin;
  }

  .emergency-ai-page .emergency-ai-history-item {
    flex: 1 0 225px;
    border-right: 1px solid var(--sie-line);
    border-bottom: 0;
  }

  .emergency-ai-page .emergency-ai-history .pagination-bar {
    grid-template-columns: minmax(150px, 1fr) auto auto;
    align-items: center;
  }

  .emergency-ai-page .emergency-ai-history .pagination-controls,
  .emergency-ai-page .emergency-ai-history .pagination-size {
    width: auto;
  }

  .emergency-ai-page .emergency-ai-history .pagination-size > span {
    flex: 0 0 auto;
  }
}

@media (max-width: 980px) {
  .emergency-ai-page .emergency-ai-timeline-highlights,
  .emergency-ai-management-grid > details > ol {
    columns: 1;
  }

  .emergency-ai-page .emergency-ai-priority-list {
    grid-template-columns: 1fr;
  }

  .emergency-ai-page .emergency-ai-cemaden-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .emergency-ai-page .emergency-ai-hero,
  .emergency-ai-page .emergency-ai-report,
  .emergency-ai-page .emergency-ai-chat {
    padding: 16px;
  }

  .emergency-ai-page .emergency-ai-kpis article {
    min-height: 0;
  }

  .emergency-ai-page .emergency-ai-history > header {
    align-items: stretch;
    flex-direction: column;
  }

  .emergency-ai-page .emergency-ai-history > header .btn {
    align-self: flex-start;
  }

  .emergency-ai-page .emergency-ai-timeline-panel {
    padding: 15px;
  }

  .emergency-ai-preventive-table-wrap {
    overflow: visible;
    border: 0;
    background: transparent;
  }

  .emergency-ai-preventive-table-wrap thead {
    display: none;
  }

  .emergency-ai-preventive-table-wrap table,
  .emergency-ai-preventive-table-wrap tbody,
  .emergency-ai-preventive-table-wrap tr,
  .emergency-ai-preventive-table-wrap td {
    display: block;
    width: 100%;
  }

  .emergency-ai-preventive-table-wrap tr {
    margin-bottom: 9px;
    border: 1px solid #fde68a;
    border-radius: 9px;
    background: #fff;
    overflow: hidden;
  }

  .emergency-ai-preventive-table-wrap td {
    display: grid;
    grid-template-columns: 104px minmax(0, 1fr);
    gap: 8px;
    padding: 8px 10px;
  }

  .emergency-ai-preventive-table-wrap td::before {
    content: attr(data-label);
    color: #78350f;
    font-size: 9px;
    font-weight: 800;
    text-transform: uppercase;
  }

  .emergency-ai-timeline-tabs button {
    flex-basis: 118px;
  }

  .emergency-ai-management-grid > details > summary {
    align-items: flex-start;
  }

  .emergency-ai-page .emergency-ai-history .pagination-bar {
    grid-template-columns: minmax(0, 1fr);
  }

  .emergency-ai-page .emergency-ai-history .pagination-controls,
  .emergency-ai-page .emergency-ai-history .pagination-size {
    width: 100%;
  }

  .emergency-ai-page .emergency-ai-history .pagination-size > span {
    flex: 0 0 100%;
  }
}

@media print {
  .emergency-ai-page .emergency-ai-history,
  .emergency-ai-page .emergency-ai-kpis,
  .emergency-ai-page .emergency-ai-chat,
  .emergency-ai-page .emergency-ai-timeline-tabs,
  .emergency-ai-page .emergency-ai-advisory,
  .emergency-ai-page .decision-briefing {
    display: none !important;
  }

  .emergency-ai-page .emergency-ai-workspace,
  .emergency-ai-page .emergency-ai-main {
    display: block !important;
  }

  .emergency-ai-page .emergency-ai-report {
    padding: 0;
    border: 0;
    box-shadow: none;
  }

  .emergency-ai-page .emergency-ai-timeline-panel,
  .emergency-ai-page .emergency-ai-timeline-panel[hidden] {
    display: block !important;
    margin: 0 0 12px;
    break-inside: auto;
  }

  .emergency-ai-page details:not([open]) > :not(summary) {
    display: block !important;
  }

  .emergency-ai-page .emergency-ai-executive-summary.is-collapsible > summary .emergency-ai-summary-preview,
  .emergency-ai-page .emergency-ai-executive-summary.is-collapsible > summary .emergency-ai-summary-toggle {
    display: none !important;
  }
}

/* Ajustes finais de cascata para o fluxo da resposta. */
.state-report-page .state-report-filter-primary {
  padding: 0;
}

.response-item-detail-page .response-definition-list .response-definition-update {
  border: 1px solid #dce9f8;
}

.response-item-detail-page .btn-outline-primary,
.state-report-page .btn-outline-primary {
  --bs-btn-color: #a94024;
  --bs-btn-border-color: #a94024;
  --bs-btn-hover-bg: #a94024;
  --bs-btn-hover-border-color: #a94024;
}

/* Leitura executiva e natureza das evidências da Emergência IA. */
.emergency-ai-executive-summary > h3 {
  margin: 5px 0 10px;
  color: var(--eia-ink);
  font-size: 18px;
}

.emergency-ai-executive-points {
  display: grid;
  gap: 8px;
}

.emergency-ai-executive-points > article {
  padding: 10px 12px;
  border: 1px solid #dbeafe;
  border-radius: 9px;
  background: rgba(255, 255, 255, .76);
}

.emergency-ai-executive-points > article > strong {
  display: block;
  margin-top: 5px;
  color: #17324d;
  font-size: 13px;
  line-height: 1.45;
}

.emergency-ai-executive-points > article p,
.emergency-ai-executive-points > article small {
  display: block;
  margin: 4px 0 0;
  color: #475569;
  font-size: 11px;
  line-height: 1.5;
}

.emergency-ai-nature-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 7px;
}

.emergency-ai-nature-badges > span {
  padding: 3px 7px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.emergency-ai-nature-badges > .is-fact { background: #dcfce7; color: #166534; }
.emergency-ai-nature-badges > .is-unvalidated { background: #fef3c7; color: #92400e; }
.emergency-ai-nature-badges > .is-forecast { background: #e0f2fe; color: #075985; }
.emergency-ai-nature-badges > .is-predictive { background: #f3e8ff; color: #6b21a8; }
.emergency-ai-nature-badges > .is-urgency { background: #e2e8f0; color: #334155; }

.emergency-ai-validity-line {
  display: flex;
  flex-wrap: wrap;
  gap: 5px 12px;
  margin-top: 7px !important;
  color: #64748b !important;
  font-size: 10px !important;
}

.emergency-ai-summary-context {
  margin-top: 10px;
  border-top: 1px solid #dbeafe;
  padding-top: 8px;
}

.emergency-ai-summary-context > summary {
  cursor: pointer;
  color: #0369a1;
  font-size: 11px;
  font-weight: 700;
}

.emergency-ai-summary-context > summary span:last-child,
.emergency-ai-summary-context[open] > summary span:first-child { display: none; }
.emergency-ai-summary-context[open] > summary span:last-child { display: inline; }

@media (max-width: 720px) {
  .emergency-ai-executive-points > article { padding: 9px 10px; }
  .emergency-ai-validity-line { display: grid; gap: 3px; }
}

.response-item-detail-page .response-table-kicker,
.state-report-page .state-report-plan-link {
  color: #a94024;
  font-weight: 800;
  margin: 0 0 4px;
}

@media (min-width: 801px) and (max-width: 1120px) {
  .state-report-page .state-report-filter-grid {
    grid-template-columns: minmax(240px, 1.25fr) minmax(150px, .75fr) !important;
  }
}

@media (max-width: 900px) {
  .response-item-detail-page .response-data-table-wrap.table-wrap table.response-objective-actions-table,
  .response-item-detail-page .response-data-table-wrap.table-wrap table.response-linked-items-table,
  .state-report-page .state-execution-table-wrap.table-wrap table.state-execution-table {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 700px) {
  .response-item-detail-page .response-detail-actions {
    grid-template-columns: 1fr;
  }

  .response-item-detail-page .response-detail-meta > span {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .response-item-detail-page .response-detail-actions .btn,
  .response-item-detail-page .response-progress-submit .btn,
  .state-report-page .state-report-filter-form .btn,
  .response-item-detail-page .response-data-table-wrap td .btn-sm,
  .state-report-page .state-execution-table-wrap td .btn-sm {
    min-height: 44px;
  }

  .response-item-detail-page .response-progress-form .field input,
  .response-item-detail-page .response-progress-form .field select,
  .response-item-detail-page .response-progress-form .field textarea,
  .state-report-page .state-report-filter-form .filter-bar input,
  .state-report-page .state-report-filter-form .filter-bar select,
  .state-report-page .state-report-advanced-grid .field input,
  .state-report-page .state-report-advanced-grid .field select {
    min-height: 44px;
    font-size: 16px;
  }

  .response-item-detail-page .response-progress-submit.form-actions,
  .state-report-page .state-report-advanced-grid .form-actions {
    position: static;
    inset: auto;
    z-index: auto;
    margin: 0;
    padding: 2px 0 0;
    border-top: 0;
    background: transparent;
    box-shadow: none;
  }

  .response-item-detail-page .response-data-table-wrap.table-wrap table.response-objective-actions-table,
  .response-item-detail-page .response-data-table-wrap.table-wrap table.response-linked-items-table,
  .state-report-page .state-execution-table-wrap.table-wrap table.state-execution-table {
    width: 100%;
    min-width: 0;
  }

  .state-report-page .state-management-context-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .state-report-page .state-management-context-actions > .btn,
  .state-report-page .state-management-switcher,
  .state-report-page .state-management-switcher label,
  .state-report-page .state-management-switcher select {
    width: 100%;
  }
}

/* Shared semantic UI primitives.
 * Status symbols supplement visible copy; color is never the only visual cue. */
.ui-icon-glyph {
  display: block;
  width: 1em;
  height: 1em;
  flex: 0 0 1em;
  color: currentColor;
  overflow: visible;
}

.ui-icon {
  --ui-icon-size: 36px;
  --ui-icon-background: #f5f5f5;
  --ui-icon-border: var(--sie-line);
  --ui-icon-color: var(--sie-text);
  display: inline-grid;
  place-items: center;
  width: var(--ui-icon-size);
  height: var(--ui-icon-size);
  flex: 0 0 var(--ui-icon-size);
  overflow: hidden;
  border: 1px solid var(--ui-icon-border);
  border-radius: 8px;
  background: var(--ui-icon-background);
  color: var(--ui-icon-color);
  font-size: calc(var(--ui-icon-size) * 0.42);
  font-weight: 800;
  line-height: 1;
  text-align: center;
  vertical-align: middle;
}

.ui-icon > svg,
.ui-icon > img {
  display: block;
  width: 1em;
  height: 1em;
}

.ui-icon > svg {
  color: currentColor;
}

.ui-icon--sm,
.ui-icon-sm {
  --ui-icon-size: 28px;
  border-radius: 7px;
}

.ui-icon--lg,
.ui-icon-lg {
  --ui-icon-size: 44px;
  border-radius: 10px;
}

.ui-icon--bare,
.ui-icon-bare {
  --ui-icon-background: transparent;
  --ui-icon-border: transparent;
}

.ui-icon--primary,
.ui-icon-primary {
  --ui-icon-background: var(--sie-primary-soft);
  --ui-icon-border: rgba(169, 64, 36, 0.28);
  --ui-icon-color: var(--sie-primary-ink);
}

.ui-icon--success,
.ui-icon-success {
  --ui-icon-background: var(--sie-green-soft);
  --ui-icon-border: rgba(8, 120, 59, 0.28);
  --ui-icon-color: var(--sie-green-ink);
}

.ui-icon--info,
.ui-icon-info {
  --ui-icon-background: var(--sie-cyan-soft);
  --ui-icon-border: rgba(0, 107, 128, 0.28);
  --ui-icon-color: var(--sie-cyan-ink);
}

.ui-icon--warning,
.ui-icon-warning {
  --ui-icon-background: var(--sie-yellow-soft);
  --ui-icon-border: rgba(122, 75, 0, 0.3);
  --ui-icon-color: var(--sie-yellow-ink);
}

.ui-icon--danger,
.ui-icon-danger {
  --ui-icon-background: var(--sie-red-soft);
  --ui-icon-border: rgba(164, 19, 32, 0.28);
  --ui-icon-color: var(--sie-red-ink);
}

.ui-icon--neutral,
.ui-icon-neutral {
  --ui-icon-background: #f3f4f6;
  --ui-icon-border: #cbd5e1;
  --ui-icon-color: #475569;
}

.heading-with-icon {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.heading-with-icon > .ui-icon,
.heading-with-icon > .icon-tile {
  flex: 0 0 auto;
}

.heading-with-icon__content {
  min-width: 0;
}

.heading-with-icon__content > :first-child,
.heading-with-icon > :is(h1, h2, h3, h4, h5, h6) {
  margin-top: 0;
}

.heading-with-icon__content > :last-child,
.heading-with-icon > :is(h1, h2, h3, h4, h5, h6) {
  margin-bottom: 0;
}

.heading-with-icon__subtitle {
  display: block;
  margin-top: 3px;
  color: var(--sie-muted);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.4;
}

.icon-tile {
  --icon-tile-size: 38px;
  --icon-tile-background: var(--sie-primary-soft);
  --icon-tile-border: rgba(169, 64, 36, 0.28);
  --icon-tile-color: var(--sie-primary-ink);
  display: inline-grid;
  place-items: center;
  width: var(--icon-tile-size);
  height: var(--icon-tile-size);
  flex: 0 0 var(--icon-tile-size);
  overflow: hidden;
  border: 1px solid var(--icon-tile-border);
  border-radius: 9px;
  background: var(--icon-tile-background);
  color: var(--icon-tile-color);
  font-size: calc(var(--icon-tile-size) * 0.4);
  font-weight: 800;
  line-height: 1;
  text-align: center;
}

.icon-tile > svg,
.icon-tile > img {
  display: block;
  width: 1em;
  height: 1em;
}

.icon-tile--sm,
.icon-tile-sm {
  --icon-tile-size: 30px;
  border-radius: 7px;
}

.icon-tile--lg,
.icon-tile-lg {
  --icon-tile-size: 46px;
  border-radius: 10px;
}

.icon-tile--primary,
.icon-tile-primary {
  --icon-tile-background: var(--sie-primary-soft);
  --icon-tile-border: rgba(169, 64, 36, 0.28);
  --icon-tile-color: var(--sie-primary-ink);
}

.icon-tile--success,
.icon-tile-success {
  --icon-tile-background: var(--sie-green-soft);
  --icon-tile-border: rgba(8, 120, 59, 0.28);
  --icon-tile-color: var(--sie-green-ink);
}

.icon-tile--info,
.icon-tile-info {
  --icon-tile-background: var(--sie-cyan-soft);
  --icon-tile-border: rgba(0, 107, 128, 0.28);
  --icon-tile-color: var(--sie-cyan-ink);
}

.icon-tile--warning,
.icon-tile-warning {
  --icon-tile-background: var(--sie-yellow-soft);
  --icon-tile-border: rgba(122, 75, 0, 0.3);
  --icon-tile-color: var(--sie-yellow-ink);
}

.icon-tile--danger,
.icon-tile-danger {
  --icon-tile-background: var(--sie-red-soft);
  --icon-tile-border: rgba(164, 19, 32, 0.28);
  --icon-tile-color: var(--sie-red-ink);
}

.icon-tile--neutral,
.icon-tile-neutral {
  --icon-tile-background: #f3f4f6;
  --icon-tile-border: #cbd5e1;
  --icon-tile-color: #475569;
}

.accent-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}

.accent-card {
  --accent-card-accent: var(--sie-primary-ink);
  --accent-card-background: #fff;
  --accent-card-line: var(--sie-line);
  display: grid;
  gap: 12px;
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--accent-card-line);
  border-left: 4px solid var(--accent-card-accent);
  border-inline-start: 4px solid var(--accent-card-accent);
  border-radius: 8px;
  background: var(--accent-card-background);
  color: var(--sie-text);
  box-shadow: var(--sie-shadow);
  overflow-wrap: anywhere;
}

.accent-card:is(a, button) {
  width: 100%;
  color: var(--sie-text);
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.accent-card:is(a, button):hover {
  border-color: var(--accent-card-accent);
  color: var(--sie-text);
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.1);
  transform: translateY(-1px);
}

.accent-card:is(a, button):focus-visible {
  outline: 3px solid var(--accent-card-accent);
  outline-offset: 3px;
}

.accent-card__header {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
}

.accent-card__content {
  min-width: 0;
}

.accent-card__title {
  margin: 0;
  color: var(--sie-text);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.3;
}

.accent-card__text {
  margin: 4px 0 0;
  color: var(--sie-muted);
  line-height: 1.5;
}

.accent-card__label {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 24px;
  padding: 3px 8px;
  border: 1px solid var(--accent-card-line);
  border-radius: 999px;
  background: #fff;
  color: var(--accent-card-accent);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
  text-transform: uppercase;
}

.accent-card__icon.ui-icon {
  --ui-icon-background: #fff;
  --ui-icon-border: var(--accent-card-line);
  --ui-icon-color: var(--accent-card-accent);
}

.accent-card__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: auto;
}

.accent-card--primary,
.accent-card-primary {
  --accent-card-accent: var(--sie-primary-ink);
  --accent-card-background: var(--sie-primary-soft);
  --accent-card-line: rgba(169, 64, 36, 0.28);
}

.accent-card--success,
.accent-card-success {
  --accent-card-accent: var(--sie-green-ink);
  --accent-card-background: var(--sie-green-soft);
  --accent-card-line: rgba(8, 120, 59, 0.28);
}

.accent-card--info,
.accent-card-info {
  --accent-card-accent: var(--sie-cyan-ink);
  --accent-card-background: var(--sie-cyan-soft);
  --accent-card-line: rgba(0, 107, 128, 0.28);
}

.accent-card--warning,
.accent-card-warning {
  --accent-card-accent: var(--sie-yellow-ink);
  --accent-card-background: var(--sie-yellow-soft);
  --accent-card-line: rgba(122, 75, 0, 0.3);
}

.accent-card--danger,
.accent-card-danger {
  --accent-card-accent: var(--sie-red-ink);
  --accent-card-background: var(--sie-red-soft);
  --accent-card-line: rgba(164, 19, 32, 0.28);
}

.accent-card--neutral,
.accent-card-neutral {
  --accent-card-accent: #475569;
  --accent-card-background: #f8fafc;
  --accent-card-line: #cbd5e1;
}

.app-alert,
.alert.alert-success,
.alert.alert-info,
.alert.alert-warning,
.alert.alert-danger {
  --app-alert-accent: var(--sie-cyan-ink);
  --app-alert-background: var(--sie-cyan-soft);
  --app-alert-line: rgba(0, 107, 128, 0.3);
  --app-alert-symbol: "i";
  position: relative;
  min-height: 48px;
  margin: 0 0 14px;
  padding-block: 13px;
  padding-inline-start: 48px;
  padding-inline-end: 16px;
  border: 1px solid var(--app-alert-line);
  border-left: 4px solid var(--app-alert-accent);
  border-inline-start: 4px solid var(--app-alert-accent);
  border-radius: 8px;
  background: var(--app-alert-background);
  color: var(--sie-text);
  line-height: 1.5;
  overflow-wrap: anywhere;
  box-shadow: var(--sie-shadow);
}

.app-alert::before,
.alert.alert-success::before,
.alert.alert-info::before,
.alert.alert-warning::before,
.alert.alert-danger::before {
  content: var(--app-alert-symbol);
  content: var(--app-alert-symbol) / "";
  position: absolute;
  top: 12px;
  left: 12px;
  inset-inline-start: 12px;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border: 1px solid var(--app-alert-accent);
  border-radius: 999px;
  background: #fff;
  color: var(--app-alert-accent);
  font-size: 14px;
  font-weight: 900;
  line-height: 1;
}

.app-alert--success,
.app-alert.alert-success,
.alert.alert-success {
  --app-alert-accent: var(--sie-green-ink);
  --app-alert-background: var(--sie-green-soft);
  --app-alert-line: rgba(8, 120, 59, 0.3);
  --app-alert-symbol: "\2713";
}

.app-alert--info,
.app-alert.alert-info,
.alert.alert-info {
  --app-alert-accent: var(--sie-cyan-ink);
  --app-alert-background: var(--sie-cyan-soft);
  --app-alert-line: rgba(0, 107, 128, 0.3);
  --app-alert-symbol: "i";
}

.app-alert--warning,
.app-alert.alert-warning,
.alert.alert-warning {
  --app-alert-accent: var(--sie-yellow-ink);
  --app-alert-background: var(--sie-yellow-soft);
  --app-alert-line: rgba(122, 75, 0, 0.32);
  --app-alert-symbol: "!";
}

.app-alert--danger,
.app-alert.alert-danger,
.alert.alert-danger {
  --app-alert-accent: var(--sie-red-ink);
  --app-alert-background: var(--sie-red-soft);
  --app-alert-line: rgba(164, 19, 32, 0.3);
  --app-alert-symbol: "\00d7";
}

.app-alert--compact {
  min-height: 40px;
  padding-block: 9px;
}

.app-alert--compact::before {
  top: 8px;
}

.app-alert__title,
.app-alert .alert-heading,
.alert.alert-success .alert-heading,
.alert.alert-info .alert-heading,
.alert.alert-warning .alert-heading,
.alert.alert-danger .alert-heading {
  margin: 0 0 3px;
  color: var(--sie-text);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}

.app-alert p:last-child,
.alert.alert-success p:last-child,
.alert.alert-info p:last-child,
.alert.alert-warning p:last-child,
.alert.alert-danger p:last-child {
  margin-bottom: 0;
}

.app-alert a,
.alert.alert-success a,
.alert.alert-info a,
.alert.alert-warning a,
.alert.alert-danger a {
  color: inherit;
  font-weight: 700;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.alert.alert-dismissible {
  padding-inline-end: 48px;
}

.attention-point-list {
  display: grid;
  gap: 10px;
}

.attention-point {
  --attention-point-accent: var(--sie-primary-ink);
  --attention-point-background: #fff;
  --attention-point-line: rgba(169, 64, 36, 0.28);
  --attention-point-symbol: "\2022";
  position: relative;
  display: block;
  min-width: 0;
  min-height: 50px;
  padding: 12px 14px;
  padding-inline-start: 48px;
  border: 1px solid var(--attention-point-line);
  border-left: 4px solid var(--attention-point-accent);
  border-inline-start: 4px solid var(--attention-point-accent);
  border-radius: 8px;
  background: var(--attention-point-background);
  color: var(--sie-text);
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.attention-point::before {
  content: var(--attention-point-symbol);
  content: var(--attention-point-symbol) / "";
  position: absolute;
  top: 11px;
  left: 12px;
  inset-inline-start: 12px;
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  border: 1px solid var(--attention-point-accent);
  border-radius: 7px;
  background: #fff;
  color: var(--attention-point-accent);
  font-size: 14px;
  font-weight: 900;
  line-height: 1;
}

.attention-point:is(a, button) {
  width: 100%;
  color: var(--sie-text);
  font: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.attention-point:is(a, button):hover {
  border-color: var(--attention-point-accent);
  color: var(--sie-text);
  box-shadow: var(--sie-shadow);
  transform: translateY(-1px);
}

.attention-point:is(a, button):focus-visible {
  outline: 3px solid var(--attention-point-accent);
  outline-offset: 3px;
}

.attention-point__title {
  display: block;
  margin: 0;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.35;
}

.attention-point__text,
.attention-point__meta {
  display: block;
  margin-top: 3px;
  color: var(--sie-muted);
}

.attention-point__meta {
  font-size: 11px;
  font-weight: 600;
}

.attention-point--with-icon {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px;
  padding-inline-start: 14px;
}

.attention-point--with-icon::before {
  content: none;
}

.attention-point__icon.ui-icon {
  --ui-icon-background: #fff;
  --ui-icon-border: var(--attention-point-line);
  --ui-icon-color: var(--attention-point-accent);
}

.attention-point--primary,
.attention-point-primary {
  --attention-point-accent: var(--sie-primary-ink);
  --attention-point-background: var(--sie-primary-soft);
  --attention-point-line: rgba(169, 64, 36, 0.28);
  --attention-point-symbol: "\2022";
}

.attention-point--success,
.attention-point-success {
  --attention-point-accent: var(--sie-green-ink);
  --attention-point-background: var(--sie-green-soft);
  --attention-point-line: rgba(8, 120, 59, 0.28);
  --attention-point-symbol: "\2713";
}

.attention-point--info,
.attention-point-info {
  --attention-point-accent: var(--sie-cyan-ink);
  --attention-point-background: var(--sie-cyan-soft);
  --attention-point-line: rgba(0, 107, 128, 0.28);
  --attention-point-symbol: "i";
}

.attention-point--warning,
.attention-point-warning {
  --attention-point-accent: var(--sie-yellow-ink);
  --attention-point-background: var(--sie-yellow-soft);
  --attention-point-line: rgba(122, 75, 0, 0.3);
  --attention-point-symbol: "!";
}

.attention-point--danger,
.attention-point-danger {
  --attention-point-accent: var(--sie-red-ink);
  --attention-point-background: var(--sie-red-soft);
  --attention-point-line: rgba(164, 19, 32, 0.28);
  --attention-point-symbol: "\00d7";
}

.attention-point--neutral,
.attention-point-neutral {
  --attention-point-accent: #475569;
  --attention-point-background: #f8fafc;
  --attention-point-line: #cbd5e1;
  --attention-point-symbol: "\2014";
}

@media (max-width: 620px) {
  .accent-card-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .accent-card {
    padding: 14px;
  }

  .accent-card__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .accent-card__actions > .btn,
  .accent-card__actions > a,
  .accent-card__actions > button {
    width: 100%;
  }

  .app-alert,
  .alert.alert-success,
  .alert.alert-info,
  .alert.alert-warning,
  .alert.alert-danger,
  .attention-point {
    padding-inline-end: 12px;
  }
}

@media (prefers-contrast: more) {
  .ui-icon,
  .icon-tile,
  .accent-card,
  .app-alert,
  .alert.alert-success,
  .alert.alert-info,
  .alert.alert-warning,
  .alert.alert-danger,
  .attention-point,
  .accent-card__label {
    border-width: 2px;
  }

  .accent-card,
  .app-alert,
  .alert.alert-success,
  .alert.alert-info,
  .alert.alert-warning,
  .alert.alert-danger,
  .attention-point {
    border-left-width: 6px;
    border-inline-start-width: 6px;
    box-shadow: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .accent-card:is(a, button),
  .attention-point:is(a, button) {
    transition: none;
  }

  .accent-card:is(a, button):hover,
  .attention-point:is(a, button):hover,
  .attention-card:hover {
    transform: none;
  }
}

@media (forced-colors: active) {
  .ui-icon,
  .icon-tile,
  .accent-card,
  .app-alert,
  .alert.alert-success,
  .alert.alert-info,
  .alert.alert-warning,
  .alert.alert-danger,
  .attention-point,
  .accent-card__label,
  .app-alert::before,
  .alert.alert-success::before,
  .alert.alert-info::before,
  .alert.alert-warning::before,
  .alert.alert-danger::before,
  .attention-point::before {
    border-color: CanvasText;
    background: Canvas;
    color: CanvasText;
    box-shadow: none;
  }

  .accent-card,
  .app-alert,
  .alert.alert-success,
  .alert.alert-info,
  .alert.alert-warning,
  .alert.alert-danger,
  .attention-point {
    border-left-width: 6px;
    border-inline-start-width: 6px;
  }

  .accent-card:is(a, button):focus-visible,
  .attention-point:is(a, button):focus-visible {
    outline-color: Highlight;
  }
}

/* Small integrations for the first screens using the shared primitives. */
.nav-icon .ui-icon-glyph {
  width: 15px;
  height: 15px;
}

.system-alert-title .ui-icon-glyph,
.system-operational-icon .ui-icon-glyph {
  width: 17px;
  height: 17px;
}

.system-operational-icon {
  display: inline-grid;
  place-items: center;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 999px;
}

.report-decision-card-top {
  display: flex;
  align-items: center;
  gap: 9px;
}

.report-decision-card .report-decision-card-top > span:last-child {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

.report-decision-card .report-decision-card-top .icon-tile {
  width: 32px;
  height: 32px;
  flex-basis: 32px;
  color: var(--icon-tile-color);
  font-size: 15px;
}

.technical-details {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--sie-line);
}

.technical-details summary {
  cursor: pointer;
  font-weight: 700;
}

.technical-details pre {
  max-height: 360px;
  margin: 12px 0 0;
  padding: 12px;
  overflow: auto;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #111827;
  color: #f8fafc;
  font: 12px/1.5 Consolas, "Courier New", monospace;
  white-space: pre-wrap;
}

/* Public hospital and health-establishment submissions. */
.login-public-forms-callout {
  display: grid;
  gap: 10px;
  padding: 14px;
  border: 1px solid rgba(25, 115, 59, 0.28);
  border-left: 5px solid #198754;
  border-radius: 8px;
  background: linear-gradient(135deg, rgba(25, 135, 84, 0.1), #fff 55%);
  box-shadow: 0 14px 30px rgba(25, 80, 52, 0.1);
}

.login-public-forms-callout strong {
  display: block;
  color: var(--sie-ink);
  font-size: 15px;
  font-weight: 800;
}

.login-public-forms-callout p {
  margin: 4px 0 0;
  color: var(--sie-muted);
  font-size: 12px;
  line-height: 1.45;
}

.login-public-forms-callout .btn {
  width: 100%;
  min-height: 40px;
  justify-content: center;
  font-weight: 800;
}

.public-submission-body {
  --sie-line: #cfd6df;
  --sie-muted: #4b5563;
  min-height: 100vh;
  margin: 0;
  background: #f5f7fa;
  color: var(--sie-ink);
  font-size: 14px;
  zoom: 1;
}

.public-submission-body .field,
.public-submission-body fieldset.field legend {
  color: #1f2937;
}

.public-submission-body .field > span:first-child,
.public-submission-body fieldset.field legend {
  font-weight: 700;
}

.public-submission-body .field small,
.public-submission-body .field-hint {
  color: #4b5563;
  font-size: 0.78rem;
  font-weight: 500;
  line-height: 1.5;
}

.public-submission-body input::placeholder,
.public-submission-body textarea::placeholder {
  color: #667085;
  opacity: 1;
}

.public-submission-body .field input,
.public-submission-body .field select,
.public-submission-body .field textarea {
  min-height: 46px;
}

.public-submission-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 14px clamp(18px, 4vw, 56px);
  border-bottom: 1px solid var(--sie-line);
  background: #fff;
  box-shadow: 0 4px 18px rgba(15, 23, 42, 0.05);
}

.public-submission-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--sie-ink);
  text-decoration: none;
}

.public-submission-brand > span:last-child {
  display: grid;
  line-height: 1.15;
}

.public-submission-brand small {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 600;
}

.public-submission-shell {
  width: min(100%, 1320px);
  margin: 0 auto;
  padding: 28px clamp(16px, 4vw, 48px) 48px;
}

.public-submission-footer {
  padding: 18px;
  color: var(--sie-muted);
  font-size: 12px;
  text-align: center;
}

.public-submission-page {
  gap: 18px;
}

.public-submission-hero {
  max-width: 820px;
}

.public-submission-hero h1,
.public-form-establishment-header h1 {
  margin: 5px 0 8px;
  color: var(--sie-ink);
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  line-height: 1.12;
}

.public-submission-hero p {
  margin: 0;
  color: var(--sie-muted);
  line-height: 1.6;
}

.public-identity-panel {
  max-width: 1060px;
}

.public-identity-form {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-identity-confirmed {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  border-left: 5px solid #198754;
}

.public-identity-confirmed h2 {
  margin: 10px 0 3px;
}

.public-identity-confirmed p {
  margin: 0;
}

.public-form-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.public-form-choice-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 235px;
}

.public-form-choice-card h3 {
  margin: 7px 0;
}

.public-form-choice-card p {
  flex: 1;
  color: var(--sie-muted);
  line-height: 1.55;
}

.public-form-choice-card .btn,
.public-form-choice-card .inline-note {
  margin-top: 12px;
}

.public-establishment-selection {
  max-width: 1060px;
}

.public-establishment-form {
  display: grid;
  gap: 14px;
}

.public-flow-choice-form {
  display: grid;
  gap: 20px;
}

.public-form-type-fieldset {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.public-form-type-fieldset > legend {
  margin-bottom: 10px;
  color: var(--sie-ink);
  font-weight: 800;
}

.public-no-hospital-note {
  display: grid;
  gap: 2px;
  margin-bottom: 12px;
  padding: 11px 13px;
  border: 1px solid #edc8ba;
  border-radius: 8px;
  background: #fff5f1;
  color: #75331f;
  font-size: 0.8rem;
  line-height: 1.45;
}

.public-form-type-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.public-form-type-option {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  min-width: 0;
  min-height: 112px;
  padding: 14px;
  border: 1px solid #d9dee7;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
}

.public-form-type-option:has(input:checked) {
  border-color: var(--sie-primary);
  background: var(--sie-primary-soft);
  box-shadow: inset 3px 0 0 var(--sie-primary);
}

.public-form-type-option.is-disabled {
  border-style: dashed;
  background: #f4f5f7;
  color: #697586;
  cursor: not-allowed;
  opacity: 0.82;
}

.public-form-type-option.is-disabled em {
  color: #8a3b25;
  font-size: 0.76rem;
  font-style: normal;
  font-weight: 700;
  line-height: 1.4;
}

.public-form-type-option input {
  flex: 0 0 auto;
  width: 17px;
  height: 17px;
  margin-top: 2px;
}

.public-form-type-option > span {
  display: grid;
  gap: 5px;
  min-width: 0;
}

.public-form-type-option small {
  color: var(--sie-muted);
  font-weight: 500;
  line-height: 1.45;
}

.public-selection-grid.is-two-options {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-selection-option {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  border: 1px solid #d9dee7;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
}

.public-selection-option input {
  margin-top: 4px;
}

.public-selection-option span {
  display: grid;
  gap: 3px;
}

.public-selection-option small,
.public-cnes-list-field small {
  color: var(--sie-muted);
}

.public-cnes-list-field {
  margin-left: 30px;
}

.public-results-heading {
  align-items: flex-end;
}

.public-establishment-results {
  display: grid;
  gap: 16px;
}

.public-establishment-card {
  display: grid;
  gap: 18px;
}

.public-establishment-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.public-establishment-card h3 {
  margin: 7px 0 4px;
}

.public-establishment-card p {
  margin: 0;
}

.public-establishment-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.public-form-identity {
  grid-column: 1 / -1;
  padding: 14px;
  border: 1px solid #b9dfc5;
  border-radius: 9px;
  background: #f4faf6;
}

.public-form-identity-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-bottom: 12px;
}

.public-form-identity-heading > div {
  display: grid;
  gap: 7px;
}

.public-form-identity-heading a {
  font-size: 12px;
  font-weight: 700;
}

.public-form-identity-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.public-form-identity input[readonly] {
  background: #fff;
  color: #475569;
}

.public-form-trap {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.public-form-establishment-header {
  border-left: 5px solid var(--sie-primary);
}

.public-form-privacy-state {
  max-width: 330px;
}

@media (max-width: 840px) {
  .public-identity-form,
  .public-form-choice-grid,
  .public-form-type-grid,
  .public-selection-grid.is-two-options,
  .public-form-identity-fields {
    grid-template-columns: 1fr;
  }

  .public-identity-form .span-3,
  .public-form-identity-fields > *,
  .public-form-identity {
    grid-column: 1 / -1;
  }

  .public-identity-confirmed,
  .public-form-identity-heading,
  .public-results-heading,
  .public-establishment-card-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .public-cnes-list-field {
    margin-left: 0;
  }
}

@media (max-width: 560px) {
  .public-submission-header {
    align-items: flex-start;
    flex-direction: column;
  }

  .public-submission-header > .btn {
    width: 100%;
    justify-content: center;
  }

  .public-submission-shell {
    padding-top: 20px;
  }
}

/* Fluxo público simples e mobile-first */
.public-submission-page {
  width: min(100%, 960px);
  margin: 0 auto;
  gap: 20px;
}

.public-submission-page.public-submission-page--entry {
  width: min(100%, 760px);
}

.hospital-detail-page.is-public-submission {
  width: min(100%, 960px);
  margin: 0 auto;
}

.hospital-detail-page.is-public-submission .hospital-overall-classification,
.hospital-detail-page.is-public-submission .hospital-auto-classification {
  display: none;
}

.public-submission-hero {
  max-width: 720px;
}

.public-submission-hero h1 {
  margin: 5px 0 6px;
  font-size: clamp(1.75rem, 5vw, 2.35rem);
}

.public-submission-hero p {
  max-width: 620px;
  color: #465466;
  font-size: 0.98rem;
  font-weight: 400;
}

.public-stepper {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 620px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.public-stepper li {
  position: relative;
  display: flex;
  align-items: center;
  gap: 8px;
  color: #566477;
  font-size: 0.8rem;
}

.public-stepper li > strong {
  position: relative;
  z-index: 1;
  padding: 1px 5px;
  background: #f5f7fa;
  font-weight: 700;
}

.public-stepper li:not(:last-child)::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 15px;
  right: 8px;
  left: 38px;
  height: 2px;
  background: #dce2ea;
}

.public-stepper li > span {
  position: relative;
  z-index: 1;
  display: inline-grid;
  flex: 0 0 32px;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 2px solid #d4dae4;
  border-radius: 50%;
  background: #f5f7fa;
  font-weight: 800;
}

.public-stepper li.is-current,
.public-stepper li.is-complete {
  color: var(--sie-ink);
}

.public-stepper li.is-current > span {
  border-color: var(--sie-primary);
  background: var(--sie-primary);
  color: #fff;
}

.public-stepper li.is-complete > span {
  border-color: #198754;
  background: #e9f8ef;
  color: #14733e;
}

.public-stepper li.is-complete::after {
  background: #7cc99b;
}

.public-flow-panel {
  width: min(100%, 760px);
  padding: clamp(20px, 4vw, 32px);
  justify-self: center;
}

.public-flow-heading {
  margin-bottom: 22px;
}

.public-flow-heading h2 {
  margin: 6px 0 5px;
  font-size: clamp(1.35rem, 4vw, 1.75rem);
}

.public-flow-heading p {
  max-width: 640px;
  margin: 0;
  color: #465466;
  font-size: 0.88rem;
  line-height: 1.55;
}

.public-identity-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

.public-identity-form .field input,
.public-identity-form .field select,
.public-cnes-entry .field input,
.public-cnes-entry .field textarea {
  min-height: 50px;
  border-radius: 9px;
  padding: 11px 13px;
  font-size: 1rem;
}

.public-primary-action {
  min-height: 50px;
  padding-right: 22px;
  padding-left: 22px;
  border-radius: 9px;
  font-size: 0.98rem;
  font-weight: 700;
}

.public-identity-form .public-primary-action {
  grid-column: 1 / -1;
  justify-self: start;
  min-width: 180px;
}

.public-privacy-note {
  margin: 18px 0 0;
  color: #465466;
  font-size: 0.82rem;
  line-height: 1.5;
}

.public-identity-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: min(100%, 760px);
  padding: 12px 15px;
  border: 1px solid #b9dfc5;
  border-radius: 10px;
  background: #f1fbf5;
}

.public-identity-summary > div,
.public-identity-summary > div > span:last-child {
  display: flex;
  align-items: center;
  gap: 10px;
}

.public-identity-summary > div > span:last-child {
  align-items: flex-start;
  flex-direction: column;
  gap: 1px;
}

.public-identity-summary small {
  color: #557061;
  font-size: 0.76rem;
}

.public-success-mark {
  display: inline-grid;
  flex: 0 0 30px;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #198754;
  color: #fff;
  font-weight: 900;
}

.public-text-action {
  border: 0;
  background: transparent;
  color: var(--sie-primary);
  font: inherit;
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

.public-selection-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.public-selection-option {
  position: relative;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  align-items: center;
  gap: 10px;
  min-height: 86px;
  padding: 14px;
  border: 2px solid #dce2ea;
  border-radius: 12px;
  background: #fff;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.public-selection-option:hover {
  border-color: #aab5c5;
}

.public-selection-option.is-selected,
.public-selection-option:has(input:checked) {
  border-color: var(--sie-primary);
  background: var(--sie-primary-soft);
  box-shadow: 0 0 0 1px var(--sie-primary);
}

.public-selection-option input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.public-selection-icon {
  display: inline-grid;
  place-items: center;
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: #eef2f7;
  color: #4b596d;
  font-size: 1rem;
  font-weight: 900;
}

.public-selection-option.is-selected .public-selection-icon,
.public-selection-option:has(input:checked) .public-selection-icon {
  background: var(--sie-primary);
  color: #fff;
}

.public-selection-option > span:last-child {
  display: grid;
  gap: 3px;
}

.public-selection-option strong {
  font-size: 0.86rem;
  line-height: 1.25;
}

.public-selection-option small {
  color: var(--sie-muted);
  font-size: 0.72rem;
  line-height: 1.35;
}

.public-cnes-entry,
.public-no-establishment-note {
  margin-top: 16px;
  padding: 16px;
  border-radius: 10px;
  background: #f7f9fc;
}

.public-cnes-entry[hidden],
.public-no-establishment-note[hidden] {
  display: none !important;
}

.public-cnes-entry .field,
.public-cnes-entry .field small {
  max-width: 520px;
}

.public-no-establishment-note {
  display: grid;
  gap: 4px;
  color: #344154;
  font-size: 0.86rem;
  line-height: 1.5;
}

.public-location-panel {
  margin-top: 16px;
  padding: 16px;
  border-radius: 10px;
  background: #f7f9fc;
}

.public-location-panel[hidden],
.public-establishment-picker[hidden],
.public-establishment-option[hidden] {
  display: none !important;
}

.public-municipality-field {
  max-width: 520px;
}

.public-municipality-field select,
.public-establishment-search input {
  min-height: 50px;
  border-radius: 9px;
  padding: 11px 13px;
  background: #fff;
  font-size: 1rem;
}

.public-establishment-picker {
  display: grid;
  gap: 10px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid #dce2ea;
}

.public-establishment-search {
  max-width: 520px;
}

.public-picker-status {
  min-height: 20px;
  margin: 0;
  color: #536174;
  font-size: 0.78rem;
  font-weight: 650;
}

.public-establishment-checklist {
  display: grid;
  gap: 8px;
  max-height: 390px;
  overflow-y: auto;
  padding: 2px 5px 2px 2px;
  overscroll-behavior: contain;
}

.public-establishment-option {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: center;
  gap: 11px;
  min-height: 64px;
  padding: 11px 13px;
  border: 1px solid #d6dde7;
  border-radius: 9px;
  background: #fff;
  cursor: pointer;
}

.public-establishment-option:hover {
  border-color: #aab6c6;
}

.public-establishment-option.is-selected,
.public-establishment-option:has(input:checked) {
  border-color: var(--sie-primary);
  background: var(--sie-primary-soft);
  box-shadow: 0 0 0 1px var(--sie-primary);
}

.public-establishment-option input {
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--sie-primary);
}

.public-establishment-option > span {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.public-establishment-option strong {
  overflow-wrap: anywhere;
  font-size: 0.86rem;
  line-height: 1.3;
}

.public-establishment-option small {
  color: var(--sie-muted);
  font-size: 0.7rem;
  line-height: 1.35;
}

.public-picker-empty {
  margin: 0;
  padding: 16px;
  border: 1px dashed #c8d0db;
  border-radius: 9px;
  color: var(--sie-muted);
  text-align: center;
}

.public-inline-cnes {
  margin-top: 16px;
  border: 1px solid #cfd7e2;
  border-radius: 10px;
  background: #fff;
}

.public-inline-cnes summary {
  padding: 14px 16px;
  color: #253247;
  font-size: 0.86rem;
  font-weight: 750;
  cursor: pointer;
}

.public-inline-cnes summary::marker {
  color: var(--sie-primary);
}

.public-inline-cnes[open] summary {
  border-bottom: 1px solid #d9e0e8;
}

.public-inline-cnes-fields {
  display: grid;
  gap: 8px;
  padding: 15px 16px 16px;
}

.public-inline-cnes-fields .field {
  max-width: 520px;
}

.public-inline-cnes-fields textarea {
  min-height: 82px;
  border-radius: 9px;
  padding: 11px 13px;
  font-size: 1rem;
}

.public-inline-cnes-fields p {
  margin: 0;
  color: #4b586a;
  font-size: 0.76rem;
  line-height: 1.5;
}

.establishment-report-fields {
  margin-top: 18px;
}

.establishment-medicine-section {
  margin-top: 8px;
  padding: clamp(16px, 3vw, 22px);
  border: 1px solid #d8e1eb;
  border-radius: 12px;
  background: #f8fafc;
}

.establishment-medicine-section > .section-heading {
  margin-bottom: 14px;
}

.establishment-medicine-section h3 {
  margin: 3px 0 4px;
  font-size: 1.1rem;
}

.establishment-medicine-section p {
  margin: 0;
  color: var(--sie-muted);
  font-size: 0.82rem;
}

.public-binary-choice {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 160px));
  gap: 10px;
}

.public-binary-choice label {
  position: relative;
  cursor: pointer;
}

.public-binary-choice input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.public-binary-choice span {
  display: grid;
  min-height: 48px;
  place-items: center;
  border: 2px solid #d6dde7;
  border-radius: 9px;
  background: #fff;
  font-weight: 750;
}

.public-binary-choice input:checked + span {
  border-color: var(--sie-primary);
  background: var(--sie-primary-soft);
  color: var(--sie-primary);
}

.establishment-medicine-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid #d8e1eb;
}

.establishment-medicine-details[hidden] {
  display: none !important;
}

.medicine-issue-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.public-establishment-form > .public-primary-action {
  margin-top: 18px;
}

.public-results-section {
  width: min(100%, 900px);
}

.public-establishment-results {
  gap: 14px;
}

.public-establishment-card {
  gap: 16px;
  padding: clamp(18px, 3vw, 24px);
}

.public-establishment-card-heading {
  align-items: center;
}

.public-establishment-card h3 {
  margin: 5px 0 4px;
  font-size: 1.15rem;
}

.public-establishment-card p {
  color: var(--sie-muted);
  font-size: 0.8rem;
}

.public-location-number {
  color: var(--sie-primary);
  font-size: 0.7rem;
  font-weight: 800;
  text-transform: uppercase;
}

.public-found-badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
  color: #14733e;
  font-size: 0.72rem;
  font-weight: 700;
}

.public-establishment-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.public-establishment-actions.is-hospital {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-establishment-actions > :only-child {
  grid-column: 1 / -1;
  max-width: 440px;
}

.public-action-card {
  position: relative;
  display: grid;
  gap: 4px;
  min-height: 86px;
  padding: 15px 42px 15px 16px;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
  color: var(--sie-ink);
  text-decoration: none;
}

.public-action-card:hover {
  border-color: var(--sie-primary);
  background: var(--sie-primary-soft);
  color: var(--sie-ink);
}

.public-action-card strong {
  font-size: 0.92rem;
  line-height: 1.35;
}

.public-action-card small {
  color: #4b586a;
  font-size: 0.75rem;
  line-height: 1.5;
}

.public-action-card > span {
  position: absolute;
  top: 50%;
  right: 16px;
  color: var(--sie-primary);
  font-size: 1.6rem;
  transform: translateY(-50%);
}

.public-change-location {
  margin-top: 18px;
}

.public-vigidesastres-choice > form {
  margin-top: 14px;
}

.public-feedback {
  width: min(100%, 760px);
}

.public-medicine-page {
  width: min(100%, 820px);
}

.public-medicine-form-panel {
  padding: clamp(18px, 4vw, 30px);
}

.public-medicine-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.public-medicine-form > .public-form-identity,
.public-medicine-form > .public-form-trap,
.public-medicine-form > .span-2 {
  grid-column: 1 / -1;
}

.public-medicine-issues {
  padding: 0;
  border: 0;
}

.public-medicine-issues legend {
  margin-bottom: 4px;
}

.public-medicine-form .form-actions {
  margin-top: 4px;
}

/* Identificação compacta dentro dos questionários */
.public-form-identity {
  padding: 12px 14px;
}

.public-form-identity-heading {
  margin: 0;
}

.public-form-identity-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
}

.public-form-identity-fields.is-hidden-fields {
  display: none;
}

@media (max-width: 720px) {
  .public-submission-header {
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
  }

  .public-submission-brand small {
    display: none;
  }

  .public-submission-header > .btn {
    width: auto;
    min-height: 40px;
    padding: 7px 11px;
    font-size: 0.75rem;
  }

  .public-submission-shell {
    padding: 20px 12px 36px;
  }

  .public-submission-page {
    gap: 16px;
  }

  .public-submission-hero p {
    font-size: 0.88rem;
  }

  .public-stepper li {
    justify-content: center;
    font-size: 0.68rem;
  }

  .public-stepper li:not(:last-child)::after {
    right: -2px;
    left: calc(50% + 20px);
  }

  .public-stepper li > span {
    flex-basis: 28px;
    width: 28px;
    height: 28px;
  }

  .public-stepper li strong {
    display: none;
  }

  .public-flow-panel {
    padding: 19px 15px;
    border-radius: 11px;
  }

  .public-flow-heading {
    margin-bottom: 18px;
  }

  .public-identity-form,
  .public-selection-grid,
  .public-establishment-actions,
  .public-medicine-form {
    grid-template-columns: 1fr;
  }

  .public-establishment-actions.is-hospital {
    grid-template-columns: 1fr;
  }

  .public-identity-form .public-primary-action,
  .public-establishment-form > .public-primary-action,
  .public-vigidesastres-choice > .public-primary-action,
  .public-establishment-actions > :only-child {
    width: 100%;
    max-width: none;
  }

  .public-selection-option {
    grid-template-columns: 38px minmax(0, 1fr);
    min-height: 76px;
    padding: 12px;
  }

  .public-location-panel {
    padding: 14px 12px;
  }

  .public-establishment-checklist {
    max-height: 52vh;
  }

  .public-establishment-option {
    min-height: 68px;
    padding: 12px 10px;
  }

  .public-binary-choice,
  .establishment-medicine-details,
  .medicine-issue-grid {
    grid-template-columns: 1fr;
  }

  .public-binary-choice {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .public-identity-summary {
    align-items: flex-start;
  }

  .public-identity-summary > div {
    min-width: 0;
  }

  .public-identity-summary form {
    margin-left: 40px;
  }

  .public-establishment-card-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }

  .public-action-card {
    min-height: 80px;
  }
}

@media (max-width: 390px) {
  .public-submission-brand .brand-mark {
    width: 34px;
    height: 34px;
  }

  .public-submission-brand strong {
    font-size: 0.88rem;
  }

  .public-identity-summary {
    flex-direction: column;
  }

  .public-identity-summary form {
    margin-left: 40px;
  }
}

/* Monitoramento público de agravos por hospital */
.pandemic-monitoring-page {
  width: min(100%, 1080px);
}

.pandemic-monitoring-visually-hidden {
  position: absolute !important;
  overflow: hidden !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  border: 0 !important;
  clip: rect(0 0 0 0) !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

.pandemic-monitoring-panel {
  padding: clamp(18px, 3vw, 30px);
}

.pandemic-monitoring-intro {
  display: grid;
  gap: 7px;
  margin-bottom: 20px;
}

.pandemic-monitoring-intro h2,
.pandemic-monitoring-intro p {
  margin: 0;
}

.pandemic-monitoring-intro p {
  max-width: 760px;
  color: #465466;
  line-height: 1.55;
}

.pandemic-monitoring-guidance {
  display: grid;
  gap: 3px;
  margin-top: 7px;
  padding: 12px 14px;
  border-left: 4px solid #2563a7;
  border-radius: 7px;
  background: #eef5fc;
  color: #26394f;
  font-size: 0.82rem;
  line-height: 1.5;
}

.pandemic-monitoring-form {
  display: grid;
  gap: 18px;
}

.pandemic-monitoring-table-wrap {
  overflow-x: auto;
  border: 1px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
}

.pandemic-monitoring-table {
  width: 100%;
  min-width: 850px;
  border-collapse: collapse;
  table-layout: fixed;
}

.pandemic-monitoring-table th,
.pandemic-monitoring-table td {
  padding: 10px;
  border-right: 1px solid #d7dee7;
  border-bottom: 1px solid #d7dee7;
  text-align: center;
  vertical-align: middle;
}

.pandemic-monitoring-table tr > :last-child {
  border-right: 0;
}

.pandemic-monitoring-table tbody tr:last-child > * {
  border-bottom: 0;
}

.pandemic-monitoring-table thead th {
  background: #f5f7fa;
  color: #263549;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.pandemic-monitoring-table thead th:first-child,
.pandemic-monitoring-table tbody th {
  width: 29%;
}

.pandemic-monitoring-table .pandemic-monitoring-coverage th {
  color: #526174;
  font-size: 0.64rem;
}

.pandemic-monitoring-table tbody th {
  background: #fff;
  text-align: left;
}

.pandemic-monitoring-table tbody th strong,
.pandemic-monitoring-table tbody th small {
  display: block;
}

.pandemic-monitoring-table tbody th strong {
  font-size: 0.78rem;
  line-height: 1.4;
}

.pandemic-monitoring-table tbody th small {
  margin-top: 3px;
  color: #667487;
  font-size: 0.67rem;
  font-weight: 400;
  line-height: 1.4;
}

.pandemic-monitoring-table td.is-applicable {
  background: #fff;
}

.pandemic-monitoring-table td.is-not-applicable {
  background: #fff;
  color: #929cab;
}

.pandemic-monitoring-table input {
  width: 76px;
  min-height: 42px;
  padding: 7px 5px;
  border: 1px solid #9ca9b9;
  border-radius: 7px;
  background: #fff;
  color: #172235;
  font-size: 0.95rem;
  font-weight: 650;
  text-align: center;
}

.pandemic-monitoring-table input:focus {
  border-color: var(--sie-primary);
  box-shadow: 0 0 0 3px rgba(235, 90, 49, 0.18);
  outline: 0;
}

.pandemic-monitoring-actions {
  margin-top: 0;
}

@media (max-width: 720px) {
  .pandemic-monitoring-panel {
    padding: 17px 13px;
  }

  .pandemic-monitoring-table-wrap {
    overflow: visible;
    border: 0;
    background: transparent;
  }

  .pandemic-monitoring-table,
  .pandemic-monitoring-table tbody,
  .pandemic-monitoring-table tr,
  .pandemic-monitoring-table th,
  .pandemic-monitoring-table td {
    display: block;
    width: 100%;
    min-width: 0;
  }

  .pandemic-monitoring-table thead {
    display: none;
  }

  .pandemic-monitoring-table tbody {
    display: grid;
    gap: 12px;
  }

  .pandemic-monitoring-table tbody tr {
    overflow: hidden;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    background: #fff;
  }

  .pandemic-monitoring-table tbody th {
    padding: 13px;
    border: 0;
    border-bottom: 1px solid #d7dee7;
  }

  .pandemic-monitoring-table tbody th strong {
    font-size: 0.86rem;
  }

  .pandemic-monitoring-table td.is-applicable {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 84px;
    align-items: center;
    gap: 12px;
    min-height: 58px;
    padding: 8px 12px;
    border: 0;
    border-bottom: 1px solid #e1e6ed;
    text-align: left;
  }

  .pandemic-monitoring-table td.is-applicable:last-child {
    border-bottom: 0;
  }

  .pandemic-monitoring-table td.is-applicable::before {
    content: attr(data-profile-label);
    color: #344258;
    font-size: 0.76rem;
    font-weight: 700;
  }

  .pandemic-monitoring-table td.is-not-applicable {
    display: none;
  }

  .pandemic-monitoring-table input {
    width: 84px;
    min-height: 44px;
    font-size: 1rem;
  }

  .pandemic-monitoring-actions,
  .pandemic-monitoring-actions .btn {
    width: 100%;
  }
}

/* Detalhamento solicitado no Relatório Situacional Diário */
.daily-situation-requested-data {
  display: grid;
  gap: 18px;
}

.daily-situation-requested-data > .section-heading {
  margin-bottom: 0;
}

.daily-situation-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.daily-situation-detail-card {
  min-width: 0;
  padding: 22px;
  border-color: #dce6ed;
}

.daily-situation-detail-card.is-wide {
  grid-column: 1 / -1;
}

.daily-situation-detail-card > .section-heading {
  margin-bottom: 16px;
}

.daily-situation-detail-card h3 {
  margin: 2px 0 0;
  color: var(--daily-navy);
  font-size: 18px;
}

.daily-situation-category-grid,
.daily-situation-inline-metrics,
.daily-situation-shelter-health-grid {
  display: grid;
  gap: 10px;
}

.daily-situation-category-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.daily-situation-inline-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 15px;
}

.daily-situation-shelter-health-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.daily-situation-category-grid > div,
.daily-situation-inline-metrics > div,
.daily-situation-shelter-health-grid > div {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 12px;
  border: 1px solid #dfe7ed;
  border-radius: 9px;
  background: #f7fafc;
}

.daily-situation-category-grid > div.is-normal {
  border-color: #bde5ca;
  background: #f0faf3;
}

.daily-situation-category-grid > div.is-warning {
  border-color: #f0d59c;
  background: #fff8e8;
}

.daily-situation-category-grid > div.is-critical {
  border-color: #efc2c0;
  background: #fff1f0;
}

.daily-situation-category-grid span,
.daily-situation-inline-metrics span,
.daily-situation-shelter-health-grid span {
  color: var(--sie-muted);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.3;
}

.daily-situation-category-grid strong,
.daily-situation-inline-metrics strong,
.daily-situation-shelter-health-grid strong {
  color: var(--daily-navy);
  font-size: 24px;
  line-height: 1;
}

.daily-situation-detail-table {
  margin: 0;
}

.daily-situation-detail-table table {
  min-width: 680px;
}

.daily-situation-detail-table th,
.daily-situation-detail-table td {
  padding: 10px 11px;
  font-size: 12px;
  vertical-align: top;
}

.daily-situation-detail-table td strong,
.daily-situation-detail-table td small {
  display: block;
}

.daily-situation-detail-table td small {
  margin-top: 3px;
  color: var(--sie-muted);
  font-size: 10px;
  line-height: 1.35;
}

.daily-situation-requested-data .daily-situation-method-note {
  margin: 12px 0 0;
}

@media (max-width: 1100px) {
  .daily-situation-category-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 820px) {
  .daily-situation-detail-grid {
    grid-template-columns: 1fr;
  }

  .daily-situation-detail-card.is-wide {
    grid-column: auto;
  }

  .daily-situation-inline-metrics,
  .daily-situation-shelter-health-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 520px) {
  .daily-situation-category-grid,
  .daily-situation-inline-metrics,
  .daily-situation-shelter-health-grid {
    grid-template-columns: 1fr 1fr;
  }

  .daily-situation-detail-card {
    padding: 17px;
  }
}

@media print {
  .daily-situation-requested-data,
  .daily-situation-detail-card {
    break-inside: auto;
  }

  .daily-situation-detail-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .daily-situation-detail-card.is-wide {
    grid-column: auto;
  }

  .daily-situation-detail-card {
    padding: 10px;
  }

  .daily-situation-category-grid,
  .daily-situation-inline-metrics,
  .daily-situation-shelter-health-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 5px;
  }

  .daily-situation-category-grid > div,
  .daily-situation-inline-metrics > div,
  .daily-situation-shelter-health-grid > div {
    padding: 6px;
  }

  .daily-situation-category-grid strong,
  .daily-situation-inline-metrics strong,
  .daily-situation-shelter-health-grid strong {
    font-size: 16px;
  }

  .daily-situation-detail-table table {
    min-width: 0;
  }

  .daily-situation-detail-table th,
  .daily-situation-detail-table td {
    padding: 5px;
    font-size: 8px;
  }
}

/* Precedência final do painel executivo sobre os estilos históricos do RSD. */
.daily-situation-page {
  gap: 10px;
  font-size: 13px;
}

.daily-situation-page .daily-situation-hero {
  display: grid;
  grid-template-columns: auto minmax(240px, 1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 0;
  padding: 12px 14px;
}

.daily-situation-page .daily-situation-hero-copy h2 {
  font-size: 1.18rem;
}

.daily-situation-page .daily-situation-reference-form {
  gap: 6px;
}

.daily-situation-page .daily-situation-reference-form input,
.daily-situation-page .daily-situation-reference-form .btn {
  min-height: 34px;
}

.daily-situation-page .daily-situation-priorities,
.daily-situation-page .daily-situation-action-panel {
  padding: 11px;
}

.daily-situation-page .daily-situation-changes,
.daily-situation-page .daily-situation-weather-detail,
.daily-situation-page .daily-situation-requested-data,
.daily-situation-page .daily-situation-system-section {
  padding: 0;
}

.daily-situation-page .daily-situation-system-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
}

.daily-situation-page .daily-situation-system-card {
  min-height: 185px;
  padding: 9px;
}

@media (max-width: 1279px) {
  .daily-situation-page .daily-situation-system-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .daily-situation-page .daily-situation-hero {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .daily-situation-page .daily-situation-reference-form {
    grid-column: 1 / -1;
  }
}

@media (max-width: 700px) {
  .daily-situation-page .daily-situation-system-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 420px) {
  .daily-situation-page .daily-situation-hero {
    grid-template-columns: 1fr;
  }
}

/* Mapa geral: leitura integrada e controles visuais das camadas. */
.general-map-page {
  display: grid;
  gap: 16px;
}

.general-map-hero,
.general-map-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.general-map-hero h1,
.general-map-heading h2 {
  margin-bottom: 4px;
}

.general-map-hero .eyebrow {
  margin: 0 0 8px;
  background: #e4f1f3;
  color: #0f6976;
}

.general-map-hero h1 {
  margin-top: 0;
}

.general-map-hero > div > p:last-child {
  margin: 0;
  color: var(--sie-muted);
}

.general-map-heading-actions,
.general-map-layer-actions,
.general-map-map-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.general-map-heading-actions {
  justify-content: flex-end;
}

.general-map-map-actions {
  padding-left: 8px;
  border-left: 1px solid var(--sie-line);
}

.general-map-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.general-map-summary article {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 12px 14px;
  border: 1px solid var(--sie-line);
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 4px 14px rgba(15, 23, 42, 0.05);
}

.general-map-summary span,
.general-map-summary small {
  color: var(--sie-muted);
  font-size: 0.75rem;
}

.general-map-summary strong {
  color: #0f3f49;
  font-size: 1.6rem;
  line-height: 1.1;
}

.general-map-lazy-notice {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 0;
}

.general-map-lazy-notice > span {
  margin-left: auto;
  white-space: nowrap;
}

.general-map-layer-search {
  display: block;
  margin-top: 9px;
}

.general-map-layer-search input {
  width: 100%;
  min-height: 34px;
  padding: 7px 10px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #fff;
  color: var(--sie-text);
  font: inherit;
  font-size: 0.75rem;
}

.general-map-layer-search input:focus {
  border-color: #0f6976;
  outline: 2px solid rgba(15, 105, 118, 0.13);
}

.general-map-weather {
  display: grid;
  gap: 12px;
  overflow: hidden;
  border-color: #cfe1e4;
  background: linear-gradient(135deg, #f4fafb 0%, #fff 58%);
}

.general-map-weather-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

.general-map-weather-heading > div:first-child {
  min-width: 0;
}

.general-map-weather-kicker {
  display: inline-flex;
  margin-bottom: 5px;
  color: #0f6976;
  font-size: 0.67rem;
  font-weight: 850;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.general-map-weather-heading h2 {
  margin: 0;
  color: #143f48;
  font-size: 1.05rem;
}

.general-map-weather-heading p {
  margin: 4px 0 0;
  color: var(--sie-muted);
  font-size: 0.75rem;
}

.general-map-weather-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.general-map-weather-actions small {
  color: var(--sie-muted);
  font-size: 0.68rem;
}

.general-map-weather-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 9px;
}

.general-map-weather-card {
  display: grid;
  align-content: start;
  gap: 8px;
  min-width: 0;
  padding: 11px;
  border: 1px solid #dce7e9;
  border-top: 3px solid #0f6976;
  border-radius: 9px;
  background: rgba(255, 255, 255, 0.94);
}

.general-map-weather-card.is-stale {
  border-top-color: #b7791f;
}

.general-map-weather-card header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
}

.general-map-weather-card header > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.general-map-weather-card header strong {
  color: #173f48;
  font-size: 0.78rem;
}

.general-map-weather-card header span,
.general-map-weather-card header b {
  color: var(--sie-muted);
  font-size: 0.67rem;
}

.general-map-weather-card header b {
  flex: 0 0 auto;
  color: #0f6976;
  font-variant-numeric: tabular-nums;
}

.general-map-weather-card > p {
  min-height: 2.6em;
  margin: 0;
  color: #334155;
  font-size: 0.69rem;
  line-height: 1.3;
}

.general-map-weather-counts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 5px;
}

.general-map-weather-counts span {
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  padding: 4px 5px;
  border-radius: 6px;
  font-size: 0.61rem;
  line-height: 1.15;
}

.general-map-weather-counts strong {
  font-size: 0.7rem;
  font-variant-numeric: tabular-nums;
}

.general-map-weather-counts .is-critical { background: #fce7f3; color: #9d174d; }
.general-map-weather-counts .is-risk { background: #ffedd5; color: #9a3412; }
.general-map-weather-counts .is-attention { background: #e0f2fe; color: #075985; }
.general-map-weather-counts .is-normal { background: #dcfce7; color: #166534; }

.general-map-weather-note {
  margin: 0;
  color: var(--sie-muted);
  font-size: 0.67rem;
}

.general-map-weather-empty {
  display: grid;
  gap: 3px;
  padding: 12px;
  border: 1px dashed #b9d1d5;
  border-radius: 8px;
  color: var(--sie-muted);
  font-size: 0.72rem;
}

.general-map-weather-empty strong {
  color: #334155;
}

.general-map-shell {
  display: grid;
  gap: 12px;
}

.general-map-heading {
  min-width: 0;
  margin: 0;
}

.general-map-layout,
.general-map-canvas {
  min-height: 690px;
  min-width: 0;
}

.general-map-layout {
  grid-template-columns: minmax(300px, 350px) minmax(420px, 1fr) minmax(280px, 330px);
  overflow: hidden;
  border-radius: 9px;
}

.general-map-layer-panel {
  gap: 10px;
  max-height: 690px;
  min-width: 0;
  padding: 12px;
  overscroll-behavior: contain;
}

.general-map-selection-panel {
  gap: 10px;
  max-height: 690px;
  min-width: 0;
  padding: 12px;
  border-right: 0;
  border-left: 1px solid #e5e7eb;
  background: #f8fafb;
  overscroll-behavior: contain;
}

.general-map-layer-panel-heading {
  position: sticky;
  z-index: 2;
  top: -12px;
  flex: 0 0 auto;
  display: grid;
  gap: 3px;
  margin: -12px -12px 0;
  padding: 12px;
  border-bottom: 1px solid #dce5e7;
  background: rgba(247, 250, 251, 0.97);
  backdrop-filter: blur(7px);
}

.general-map-selection-heading {
  position: sticky;
  z-index: 2;
  top: -12px;
  flex: 0 0 auto;
  display: grid;
  gap: 3px;
  margin: -12px -12px 0;
  padding: 12px;
  border-bottom: 1px solid #dce5e7;
  background: rgba(247, 250, 251, 0.97);
  backdrop-filter: blur(7px);
}

.general-map-selection-heading > div {
  display: grid;
  gap: 3px;
}

.general-map-selection-heading strong {
  color: #173f48;
  font-size: 0.86rem;
}

.general-map-selection-heading span {
  color: var(--sie-muted);
  font-size: 0.7rem;
  line-height: 1.35;
}

.general-map-draw-tools {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.general-map-draw-tools button {
  min-width: 0;
  min-height: 36px;
  padding: 7px 8px;
  border: 1px solid #b8ced2;
  border-radius: 7px;
  background: #fff;
  color: #234852;
  font-size: 0.69rem;
  font-weight: 800;
  cursor: pointer;
}

.general-map-draw-tools button:hover,
.general-map-draw-tools button.is-active {
  border-color: #0f6976;
  background: #e8f4f5;
  color: #0f6976;
}

.general-map-draw-tools button.is-clear {
  grid-column: 1 / -1;
  border-color: #e4c9c9;
  color: #9f3030;
}

.general-map-draw-tools button:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}

.general-map-selection-hint {
  margin: 0;
  padding: 8px;
  border-radius: 7px;
  background: #edf5f6;
  color: #49646c;
  font-size: 0.67rem;
  line-height: 1.35;
}

.general-map-selection-hint.is-error {
  background: #fff1f2;
  color: #9f1239;
}

.general-map-selection-summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: 2px 8px;
  padding: 10px;
  border: 1px solid #c9dfe2;
  border-radius: 8px;
  background: #fff;
}

.general-map-selection-summary[hidden] {
  display: none;
}

.general-map-selection-summary span,
.general-map-selection-summary small {
  color: var(--sie-muted);
  font-size: 0.65rem;
}

.general-map-selection-summary strong {
  grid-row: 1 / 3;
  grid-column: 2;
  color: #0f6976;
  font-size: 1.45rem;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}

.general-map-selection-results {
  display: grid;
  flex: 0 0 auto;
  gap: 8px;
  min-width: 0;
}

.general-map-selection-empty {
  display: grid;
  gap: 4px;
  padding: 15px 10px;
  border: 1px dashed #cad8db;
  border-radius: 8px;
  color: var(--sie-muted);
  font-size: 0.68rem;
  line-height: 1.35;
  text-align: center;
}

.general-map-selection-empty strong {
  color: #425d65;
  font-size: 0.74rem;
}

.general-map-selection-group {
  flex: 0 0 auto;
  overflow: hidden;
  border: 1px solid #dce5e7;
  border-radius: 8px;
  background: #fff;
}

.general-map-selection-group > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 9px;
  background: #eef5f6;
  color: #173f48;
  font-size: 0.7rem;
  font-weight: 850;
  cursor: pointer;
}

.general-map-selection-group > summary span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.general-map-selection-group > summary strong {
  flex: 0 0 auto;
  min-width: 24px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #d5e8ea;
  font-size: 0.63rem;
  text-align: center;
}

.general-map-selection-list {
  display: grid;
  gap: 5px;
  padding: 6px;
}

.general-map-selection-item {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 7px;
  min-width: 0;
  padding: 7px;
  border: 1px solid #edf1f2;
  border-radius: 6px;
  background: #fff;
  color: inherit;
  text-align: left;
  cursor: pointer;
}

.general-map-selection-item:hover {
  border-color: #86bbc1;
  background: #f5fbfb;
}

.general-map-selection-item strong,
.general-map-selection-item span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.general-map-selection-item strong {
  color: #253f47;
  font-size: 0.69rem;
}

.general-map-selection-item span {
  grid-column: 1;
  color: var(--sie-muted);
  font-size: 0.62rem;
}

.general-map-selection-item small {
  grid-row: 1 / 3;
  grid-column: 2;
  align-self: center;
  color: #0f6976;
  font-size: 0.6rem;
  font-weight: 800;
}

.general-map-selection-remainder {
  margin: 0;
  padding: 7px;
  color: var(--sie-muted);
  font-size: 0.62rem;
  line-height: 1.35;
  text-align: center;
}

.general-map-side-section {
  flex: 0 0 auto;
  overflow: hidden;
  border: 1px solid #dce5e7;
  border-radius: 8px;
  background: #fff;
}

.general-map-side-section > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 9px;
  color: #254a54;
  font-size: 0.69rem;
  font-weight: 850;
  cursor: pointer;
}

.general-map-side-section > summary span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.general-map-side-section > summary strong {
  flex: 0 0 auto;
  min-width: 24px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #e3eff1;
  font-size: 0.62rem;
  text-align: center;
}

.general-map-side-section[open] > summary {
  border-bottom: 1px solid #e5ecee;
  background: #f3f8f9;
}

.general-map-side-links,
.general-map-side-sources {
  display: grid;
  gap: 6px;
  padding: 7px;
}

.general-map-side-links a,
.general-map-side-sources > span {
  display: grid;
  gap: 3px;
  min-width: 0;
  padding: 8px;
  border: 1px solid #edf1f2;
  border-radius: 6px;
  background: #fbfcfc;
  color: inherit;
  text-decoration: none;
}

.general-map-side-links a:hover {
  border-color: #86bbc1;
  background: #f3fafa;
}

.general-map-side-links strong,
.general-map-side-sources strong {
  overflow-wrap: anywhere;
  color: #29464e;
  font-size: 0.67rem;
}

.general-map-side-links span,
.general-map-side-sources small {
  overflow-wrap: anywhere;
  color: var(--sie-muted);
  font-size: 0.61rem;
  line-height: 1.3;
}

.general-map-layer-panel-heading > div {
  display: grid;
  gap: 3px;
}

.general-map-layer-panel-heading strong {
  color: #173f48;
  font-size: 0.86rem;
}

.general-map-layer-panel-heading span {
  color: var(--sie-muted);
  font-size: 0.7rem;
  line-height: 1.35;
}

.general-map-layer-group {
  flex: 0 0 auto;
  border: 1px solid #dce5e7;
  border-radius: 8px;
  background: #fff;
  overflow: hidden;
}

.general-map-layer-group > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 9px 10px;
  background: #f3f7f8;
  color: #173f48;
  font-size: 0.78rem;
  font-weight: 800;
  cursor: pointer;
}

.general-map-layer-group > summary span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.general-map-layer-group > summary strong {
  min-width: 24px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #dcebed;
  font-size: 0.68rem;
  text-align: center;
}

.general-map-layer-group > div {
  display: grid;
  gap: 8px;
  padding: 7px;
}

.general-map-layer-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: #fff;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.general-map-layer-card.is-active {
  border-color: #8bc3c9;
  box-shadow: 0 0 0 1px rgba(15, 105, 118, 0.06);
}

.general-map-layer-toggle {
  border: 0;
  border-radius: 0;
  background: transparent;
}

.general-map-layer-toggle span {
  display: grid;
  min-width: 0;
  overflow: visible;
  overflow-wrap: anywhere;
  text-overflow: clip;
  white-space: normal;
  line-height: 1.25;
}

.general-map-layer-toggle span small {
  color: #9a6700;
  font-size: 0.64rem;
}

.general-map-forecast-periods {
  margin: 0 8px 8px;
  border-color: #dce8ea;
  background: #f8fbfb;
}

.general-map-forecast-period-list {
  max-height: 265px;
}

.general-map-forecast-period-list label {
  grid-template-columns: 15px minmax(0, 1fr) auto;
  align-items: center;
  min-height: 36px;
  padding: 5px 6px;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  background: #fff;
}

.general-map-forecast-period-list label:has(input:checked) {
  border-color: #87bcc3;
  background: #edf7f8;
}

.general-map-forecast-period-list label.is-unavailable {
  opacity: 0.58;
}

.general-map-forecast-period-list label > span {
  display: grid;
  min-width: 0;
  gap: 1px;
}

.general-map-forecast-period-list label > span strong {
  overflow-wrap: anywhere;
  color: #243b45;
  font-size: 0.72rem;
}

.general-map-forecast-period-list label > span small {
  color: var(--sie-muted);
  font-size: 0.65rem;
}

.general-map-forecast-period-list label > em {
  color: #0f6976;
  font-size: 0.64rem;
  font-style: normal;
  font-variant-numeric: tabular-nums;
  font-weight: 800;
}

.general-map-forecast-periods > p {
  margin: 0;
  color: var(--sie-muted);
  font-size: 0.64rem;
  line-height: 1.35;
}

.general-map-layer-settings {
  border-top: 1px solid #edf1f2;
}

.general-map-layer-settings > summary {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 8px;
  padding: 7px 9px;
  color: #46616a;
  font-size: 0.69rem;
  font-weight: 800;
  cursor: pointer;
  list-style: none;
}

.general-map-layer-settings > summary::-webkit-details-marker {
  display: none;
}

.general-map-layer-settings > summary::after {
  content: "+";
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: #e8f2f3;
  color: #0f6976;
  font-size: 0.82rem;
  line-height: 1;
}

.general-map-layer-settings[open] > summary {
  background: #f5f9fa;
  color: #0f6976;
}

.general-map-layer-settings[open] > summary::after {
  content: "−";
}

.general-map-layer-settings > summary small {
  color: var(--sie-muted);
  font-size: 0.62rem;
  font-weight: 600;
}

.general-map-layer-settings-body {
  display: grid;
  gap: 10px;
  padding: 10px;
  border-top: 1px solid #e5ecee;
  background: #f8fbfb;
}

.general-map-layer-switches {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
}

.general-map-layer-switch {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  min-height: 34px;
  padding: 6px 7px;
  border: 1px solid #d9e4e6;
  border-radius: 7px;
  background: #fff;
  color: #334155;
  font-size: 0.67rem;
  font-weight: 700;
  line-height: 1.2;
}

.general-map-layer-switch input {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  margin: 0;
  accent-color: #0f6976;
}

.general-map-layer-range {
  display: grid;
  gap: 5px;
  min-width: 0;
  color: #334155;
  font-size: 0.69rem;
  font-weight: 750;
}

.general-map-layer-range > span {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.general-map-layer-range output {
  color: #0f6976;
  font-variant-numeric: tabular-nums;
}

.general-map-layer-range input[type="range"] {
  width: 100%;
  min-width: 0;
  margin: 0;
  accent-color: #0f6976;
}

.general-map-icon-size-range {
  margin: 0 8px 8px;
  padding: 7px 8px;
  border: 1px solid #dce8ea;
  border-radius: 7px;
  background: #f8fbfb;
}

.general-map-layer-card [data-layer-load-status],
.general-map-layer-card [data-power-interruption-status] {
  display: block;
  margin-top: 2px;
  color: var(--sie-muted);
  font-size: 0.6rem;
  font-weight: 600;
  line-height: 1.25;
}

.general-map-layer-card [data-layer-load-status].is-error,
.general-map-layer-card [data-power-interruption-status].is-error {
  color: #b42318;
}

.general-map-method-note {
  margin: 0;
  color: var(--sie-muted);
  font-size: 0.72rem;
}

.general-map-cluster-marker {
  display: grid;
  place-items: center;
  border: 4px solid rgba(255, 255, 255, 0.88);
  border-radius: 999px;
  background: linear-gradient(145deg, #0f6976, #164e63);
  box-shadow: 0 5px 14px rgba(15, 23, 42, 0.3);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 900;
}

.general-map-cluster-marker span {
  display: flex;
  flex-direction: column;
  gap: 0;
  place-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

.general-map-cluster-marker span i { font-size: .54rem; font-style: normal; line-height: .8; opacity: .88; }
.general-map-cluster-marker span b { font-size: .72rem; line-height: 1; }
.general-map-cluster-marker.is-hospital { background: #c2410c; border-radius: 9px; }
.general-map-cluster-marker.is-rainfall { background: #0369a1; }
.general-map-cluster-marker.is-wind { background: #475569; }
.general-map-cluster-marker.is-power_interruption { background: #b45309; }
.general-map-cluster-marker.is-weather_alert,
.general-map-cluster-marker.is-vigidesastres { background: #7c3aed; border-radius: 9px; }

.general-map-cluster-hidden {
  pointer-events: none !important;
}

.general-map-page .integrated-patient-marker,
.general-map-page .integrated-vigidesastres-marker {
  transform-origin: var(--sie-general-point-anchor-x, 50%) var(--sie-general-point-anchor-y, 50%);
}

.general-map-page .leaflet-marker-icon {
  transform-origin: var(--sie-general-point-anchor-x, 50%) var(--sie-general-point-anchor-y, 50%);
  filter: brightness(var(--sie-general-layer-brightness, 1));
}

.general-map-page .general-map-canvas .integrated-map-tools {
  left: 54px;
}

.general-map-heat-spot {
  filter: blur(9px) brightness(var(--sie-general-layer-brightness, 1));
  mix-blend-mode: multiply;
}

.general-map-popup-list {
  display: grid;
  gap: 2px;
  margin: 5px 0;
  padding: 5px 0;
  border-top: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
}

.general-map-external-grid,
.general-map-source-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.general-map-external-grid a,
.general-map-source-grid > span {
  display: grid;
  gap: 4px;
  padding: 11px;
  border: 1px solid var(--sie-line);
  border-radius: 8px;
  background: #f8fafc;
  color: inherit;
  text-decoration: none;
}

.general-map-external-grid a:hover {
  border-color: #70aeb6;
  background: #f0fafa;
}

.general-map-external-grid span,
.general-map-source-grid small {
  color: var(--sie-muted);
  font-size: 0.72rem;
  line-height: 1.35;
}

.general-map-sources > summary {
  font-weight: 800;
  cursor: pointer;
}

.general-map-sources[open] > summary {
  margin-bottom: 12px;
}

.general-map-shell.integrated-map-shell-fullscreen {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  gap: 10px;
}

.general-map-shell.integrated-map-shell-fullscreen .general-map-layout {
  height: auto;
  min-height: 0;
}

.general-map-shell.integrated-map-shell-fullscreen .general-map-canvas {
  height: 100%;
  min-height: 0;
}

.general-map-shell.integrated-map-shell-fullscreen .general-map-layer-panel {
  max-height: none;
}

.general-map-shell.integrated-map-shell-fullscreen .general-map-selection-panel {
  max-height: none;
}

@media (max-width: 1080px) {
  .general-map-layout {
    grid-template-columns: 1fr;
  }

  .general-map-layer-panel {
    max-height: 340px;
    border-right: 0;
    border-bottom: 1px solid #e5e7eb;
  }

  .general-map-selection-panel {
    max-height: 420px;
    border-top: 1px solid #e5e7eb;
    border-left: 0;
  }

  .general-map-canvas {
    min-height: 580px;
  }

  .general-map-shell.integrated-map-shell-fullscreen .general-map-layout {
    grid-template-columns: 1fr;
    grid-template-rows: minmax(120px, 26%) minmax(0, 1fr) minmax(140px, 28%);
  }

  .general-map-shell.integrated-map-shell-fullscreen .general-map-layer-panel,
  .general-map-shell.integrated-map-shell-fullscreen .general-map-canvas,
  .general-map-shell.integrated-map-shell-fullscreen .general-map-selection-panel {
    max-height: none;
    min-height: 0;
  }

  .general-map-weather-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 850px) {
  .general-map-summary,
  .general-map-external-grid,
  .general-map-source-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 620px) {
  .general-map-hero,
  .general-map-heading {
    display: grid;
  }

  .general-map-summary,
  .general-map-external-grid,
  .general-map-source-grid {
    grid-template-columns: 1fr;
  }

  .general-map-weather-heading {
    display: grid;
  }

  .general-map-weather-actions {
    justify-content: flex-start;
  }

  .general-map-weather-grid {
    grid-template-columns: 1fr;
  }

  .general-map-heading-actions,
  .general-map-layer-actions,
  .general-map-map-actions {
    width: 100%;
  }

  .general-map-heading-actions,
  .general-map-layer-actions,
  .general-map-map-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .general-map-heading-actions {
    grid-template-columns: 1fr;
  }

  .general-map-layer-actions .btn:last-child {
    grid-column: 1 / -1;
  }

  .general-map-map-actions {
    padding-top: 8px;
    padding-left: 0;
    border-top: 1px solid var(--sie-line);
    border-left: 0;
  }

  .general-map-heading-actions .btn {
    width: 100%;
    min-width: 0;
    white-space: normal;
  }

  .general-map-layer-switches {
    grid-template-columns: 1fr;
  }
}

@media (max-height: 620px) {
  .general-map-shell.integrated-map-shell-fullscreen {
    inset: 4px;
    gap: 6px;
    padding: 8px;
  }

  .general-map-shell.integrated-map-shell-fullscreen .general-map-heading p,
  .general-map-shell.integrated-map-shell-fullscreen .general-map-method-note {
    display: none;
  }
}
.emergency-ai-email-form-panel form {
  display: grid;
  gap: 16px;
}

.emergency-ai-email-form-panel textarea {
  min-height: 180px;
  font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace;
  line-height: 1.55;
}

.emergency-ai-email-admin .table-wrap td:last-child {
  max-width: 360px;
  overflow-wrap: anywhere;
}
/* PAI e Reporte Estadual */
.pai-section-nav {
  display: flex;
  gap: 8px;
  padding: 6px;
  border: 1px solid #d9e2ec;
  border-radius: 12px;
  background: #f7f9fc;
}
.pai-section-nav a {
  flex: 1;
  padding: 10px 14px;
  border-radius: 9px;
  color: #344054;
  font-size: 13px;
  font-weight: 750;
  text-align: center;
  text-decoration: none;
}
.pai-section-nav a:hover,
.pai-section-nav a.is-active { background: #fff; color: var(--sie-primary); box-shadow: 0 1px 4px rgb(16 24 40 / 10%); }
.pai-guidance { display: grid; gap: 22px; }
.pai-guidance-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.pai-guidance-hero h2 { margin: 5px 0 6px; }
.pai-guidance-hero p { max-width: 850px; margin: 0; color: var(--sie-muted); line-height: 1.55; }
.pai-guidance-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 8px; }
.pai-guidance-context { display: flex; align-items: flex-start; gap: 8px 12px; padding: 12px 14px; border: 1px solid #cfe0ef; border-radius: 11px; background: #f6faff; color: #475467; font-size: 13px; line-height: 1.5; }
.pai-guidance-context strong { flex: 0 0 auto; color: #1f3d5a; }
.pai-guidance-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.pai-guidance-grid article {
  display: flex;
  gap: 13px;
  padding: 16px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  background: #fbfcfe;
}
.pai-guidance-grid article > span {
  display: grid;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  place-items: center;
  border-radius: 50%;
  background: #e8f0fe;
  color: var(--sie-primary);
  font-weight: 800;
}
.pai-guidance h3 { margin: 0 0 5px; font-size: 15px; }
.pai-guidance-grid p,
.pai-guidance-report-types p,
.pai-guidance-report-types li { margin: 0; color: #475467; font-size: 13px; line-height: 1.5; }
.pai-guidance-report-types { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.pai-guidance-report-types article { padding: 18px; border: 1px solid #d9e2ec; border-radius: 13px; }
.pai-guidance-report-types article.is-segesp { border-color: #8cb8d0; background: #f0f8fc; }
.pai-guidance-report-types article > span { color: var(--sie-primary); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.pai-guidance-report-types ul { margin: 10px 0 0; padding-left: 18px; }
.pai-guidance-current-forms { display: grid; gap: 12px; }
.pai-guidance-current-forms > header h3 { margin-bottom: 3px; }
.pai-guidance-current-forms > header p { margin: 0; color: #667085; font-size: 13px; }
.pai-guidance-form-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.pai-guidance-form-cards > article { padding: 18px; border: 1px solid #d9e2ec; border-radius: 13px; background: #fff; }
.pai-guidance-form-cards > article.is-pai { border-top: 4px solid var(--sie-primary); }
.pai-guidance-form-cards > article.is-report { border-top: 4px solid #31915c; }
.pai-guidance-form-cards > article > span { color: var(--sie-primary); font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.pai-guidance-form-cards h4 { margin: 4px 0 12px; font-size: 16px; }
.pai-guidance-field-list { display: grid; gap: 9px; margin: 0; padding-left: 24px; }
.pai-guidance-field-list li { padding-left: 3px; color: #344054; font-size: 13px; }
.pai-guidance-field-list strong,
.pai-guidance-field-list small { display: block; }
.pai-guidance-field-list small { margin-top: 2px; color: #667085; line-height: 1.45; }
.pai-guidance-form-note { margin: 12px 0 0; padding-top: 10px; border-top: 1px solid #e2e8f0; color: #475467; font-size: 12px; line-height: 1.5; }
.pai-guidance-report-updates { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 18px; padding: 18px; border: 1px solid #d9e2ec; border-radius: 13px; background: #fbfcfe; }
.pai-guidance-report-updates p,
.pai-guidance-report-updates li { color: #475467; font-size: 13px; line-height: 1.5; }
.pai-guidance-report-updates p { margin: 0; }
.pai-guidance-report-updates ul { display: grid; gap: 6px; margin: 0; padding-left: 19px; }
.pai-status-guide { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px 9px; padding-top: 18px; border-top: 1px solid #e2e8f0; }
.pai-status-guide h3 { grid-column: 1 / -1; }
.pai-status-guide h4 { grid-column: 1 / -1; margin: 3px 0 0; color: #344054; font-size: 13px; }
.pai-status-guide > div { display: grid; align-content: start; gap: 7px; }
.pai-status-guide-badges { display: flex; flex-wrap: wrap; gap: 5px; }
.pai-status-guide p { margin: 0; color: #667085; font-size: 12px; }
.pai-guidance .status-normal { color: #067337; }
.pai-guidance .status-atencao { color: #80540d; }
.pai-guidance .status-risco { color: #a63f15; }
.pai-guidance .status-informacao { color: #176b83; }
.pai-guidance .status-inativo { color: #475467; }
.pai-guidance .status-critico { color: #991b1b; }
.response-actor-tags { display: flex; flex-wrap: wrap; gap: 5px; }
.response-actor-tags > span {
  padding: 3px 8px;
  border: 1px solid #cbd8e6;
  border-radius: 999px;
  background: #f5f8fb;
  color: #344054;
  font-size: 11px;
  font-weight: 700;
}
.response-node-actors { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 7px; color: #475467; font-size: 12px; }

@media (max-width: 800px) {
  .pai-guidance-grid,
  .pai-guidance-report-types,
  .pai-guidance-form-cards,
  .pai-guidance-report-updates { grid-template-columns: 1fr; }
  .pai-status-guide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pai-guidance-hero { flex-direction: column; }
  .pai-guidance-context { display: grid; }
}
@media (max-width: 520px) {
  .pai-section-nav { flex-direction: column; }
  .pai-status-guide { grid-template-columns: 1fr; }
  .pai-guidance-actions,
  .pai-guidance-actions .btn { width: 100%; }
}
.state-report-segesp-option {
  padding: 14px;
  border: 1px solid #82b4cc;
  border-radius: 11px;
  background: #f0f8fc;
}
@media (min-width: 1100px) {
  .state-report-filter-grid { grid-template-columns: minmax(230px, 1fr) minmax(300px, 1.35fr) minmax(170px, .7fr) auto; }
}
.state-report-segesp-option > label { display: flex; align-items: flex-start; gap: 11px; cursor: pointer; }
.state-report-segesp-option input[type="checkbox"] { width: 18px; height: 18px; margin-top: 2px; accent-color: var(--sie-primary); }
.state-report-segesp-option label > span { display: grid; gap: 3px; }
.state-report-segesp-option small { color: #475467; line-height: 1.45; }
.state-report-segesp-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  margin-top: 6px;
  padding: 3px 8px;
  border-radius: 999px;
  background: #d8eef7;
  color: #075c7b;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .03em;
  text-transform: uppercase;
}
.state-report-segesp-chip { border-color: #9bc7db !important; background: #eff9fd !important; color: #075c7b !important; }
.state-execution-department[data-segesp="true"] { border-color: #8ebed4; box-shadow: inset 3px 0 0 #3b91b8; }
.state-execution-department[data-segesp="true"] > summary { background: #f2f9fc; }
.state-report-department-tabs { align-items: stretch; gap: 9px; }
.state-report-department-tabs > a {
  gap: 10px;
  min-height: 46px;
  padding: 6px 7px 6px 12px;
}
.state-report-tab-name {
  color: inherit;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .01em;
}
.state-report-tab-totals {
  display: inline-flex;
  align-items: stretch;
  gap: 3px;
}
.state-report-tab-totals > span {
  display: inline-flex;
  align-items: baseline;
  gap: 3px;
  min-width: 42px;
  padding: 4px 6px;
  border: 1px solid #d8e0e8;
  border-radius: 5px;
  background: #f7f9fc;
  color: #475467;
  line-height: 1;
}
.state-report-tab-totals strong { color: #17324d; font-size: 13px; font-variant-numeric: tabular-nums; }
.state-report-tab-totals small { font-size: 10px; font-weight: 750; }
.state-report-department-tabs > a.is-active .state-report-tab-totals > span {
  border-color: var(--sie-primary-line);
  background: #fff;
}
.state-report-sheet { padding: 0; overflow: hidden; }
.state-report-sheet-wrap { margin: 0; overflow: auto; }
.state-report-sheet-wrap:focus-visible { outline: 3px solid rgb(18 101 142 / 22%); outline-offset: -3px; }
.state-report-sheet-table { width: 100%; min-width: 1040px; }
.state-report-sheet-table .col-level { width: 8%; }
.state-report-sheet-table .col-update { width: 32%; }
.state-report-sheet-table .col-owner { width: 16%; }
.state-report-sheet-table .col-status { width: 11%; }
.state-report-sheet-table .col-reference { width: 21%; }
.state-report-sheet-table .col-actions { width: 12%; }
.state-report-sheet-table .state-report-department-row:hover { background: transparent; }
.state-report-department-row > th {
  padding: 0;
  border-top: 2px solid #9db4ca;
  border-bottom: 1px solid #b9cad9;
  background: #dfeaf5;
  color: #17324d;
  text-align: left;
}
.state-report-department-group:first-of-type .state-report-department-row > th { border-top: 0; }
.state-report-department-group[data-segesp="true"] .state-report-department-row > th {
  box-shadow: inset 4px 0 0 #287fa6;
  background: #dceff7;
}
.state-report-department-cell {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  min-height: 68px;
  padding: 10px 14px;
}
.state-report-department-identity {
  display: grid;
  flex: 0 0 min(220px, 28%);
  gap: 2px;
  min-width: 130px;
}
.state-report-department-identity > span {
  color: #52677b;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .055em;
  text-transform: uppercase;
}
.state-report-department-identity > strong { font-size: 16px; line-height: 1.25; overflow-wrap: anywhere; }
.state-report-department-totals {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
}
.state-report-department-total,
.state-report-status-total {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  min-height: 25px;
  padding: 3px 7px;
  border: 1px solid #c2cfdb;
  border-radius: 5px;
  background: #fff;
  color: #475467;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}
.state-report-department-total strong,
.state-report-status-total strong { color: currentColor; font-size: 12px; font-weight: 850; }
.state-report-status-total { box-shadow: none; }
.state-report-sheet-table .state-report-objective-row:hover { background: transparent; }
.state-report-objective-row > td,
.state-report-objective-row > th {
  padding: 11px 10px;
  border-top: 1px solid #cbd9e7;
  border-bottom: 1px solid #d9e2ec;
  background: #eef5fc;
  color: #17324d;
  text-align: left;
  vertical-align: middle;
}
.state-report-objective-row > * + * { border-left: 1px solid #d9e2ec; }
.state-report-objective-group:first-of-type .state-report-objective-row > td,
.state-report-objective-group:first-of-type .state-report-objective-row > th { border-top: 0; }
.state-report-objective-group[data-segesp="true"] .state-report-objective-row > *:first-child {
  box-shadow: inset 4px 0 0 #3b91b8;
}
.state-report-title-cell { font-weight: 400; text-align: left; }
.state-report-objective-copy { display: grid; gap: 3px; min-width: 0; }
.state-report-objective-copy > strong { font-size: 14px; line-height: 1.4; }
.state-report-objective-copy > strong a { color: #17324d; text-decoration: none; }
.state-report-objective-copy > strong a:hover { color: var(--sie-primary); text-decoration: underline; }
.state-report-objective-copy > small { color: #5e7184; font-size: 10px; font-weight: 500; line-height: 1.45; }
.state-report-objective-actions { flex: 0 0 auto; justify-content: flex-end; }
.state-report-level-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-width: 58px;
  padding: 4px 7px;
  border: 1px solid #c7d5e2;
  border-radius: 4px;
  background: #fff;
  color: #496175;
  font-size: 9px;
  font-weight: 850;
  letter-spacing: .035em;
  line-height: 1.1;
  text-transform: uppercase;
}
.state-report-level-chip.is-objective { border-color: #99b7d0; background: #e4f0f8; color: #174f72; }
.state-report-level-chip.is-action { border-color: #cbd5df; background: #f8fafc; color: #526579; }
.state-report-objective-count {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 4px 7px;
  border: 1px solid #c7d5e2;
  border-radius: 5px;
  background: #fff;
  color: #475467;
  font-size: 10px;
  white-space: nowrap;
}
.state-report-objective-count strong { color: #17324d; font-size: 12px; }
.state-report-action-row > td,
.state-report-action-row > th { padding: 13px 12px; border-bottom: 1px solid #e1e7ee; vertical-align: middle; }
.state-report-action-row > * + * { border-left: 1px solid #edf1f5; }
.state-report-action-empty td { color: var(--sie-muted); font-style: italic; }

@media (max-width: 900px) {
  .state-report-department-tabs { flex-wrap: nowrap; padding-bottom: 3px; overflow-x: auto; }
  .state-report-department-tabs > a { flex: 0 0 auto; }
  .state-report-sheet-table { min-width: 0; }
  .state-report-sheet-table .state-report-department-group { gap: 0; padding-bottom: 0; }
  .state-report-sheet-table .state-report-department-row {
    display: block;
    overflow: visible;
    border: 0;
    border-radius: 10px;
    box-shadow: none;
  }
  .state-report-sheet-table .state-report-department-row > th { display: block; border: 0; border-radius: 10px; }
  .state-report-department-cell { align-items: stretch; flex-direction: column; gap: 10px; min-height: 0; padding: 13px; }
  .state-report-department-identity { flex: none; min-width: 0; }
  .state-report-department-totals { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; }
  .state-report-department-total,
  .state-report-status-total { justify-content: space-between; white-space: normal; }
  .state-report-sheet-table .state-report-objective-group { gap: 8px; }
  .state-report-sheet-table .state-report-objective-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "level total"
      "title title"
      "owner reference"
      "commands commands";
    overflow: hidden;
    border: 1px solid #cbd9e7;
    border-radius: 10px;
    background: #eef5fc;
  }
  .state-report-sheet-table .state-report-objective-row > td,
  .state-report-sheet-table .state-report-objective-row > th { display: grid; align-content: start; gap: 5px; min-width: 0; border-top: 0; }
  .state-report-sheet-table .state-report-objective-row > :nth-child(1) { grid-area: level; }
  .state-report-sheet-table .state-report-objective-row > :nth-child(2) { grid-area: title; }
  .state-report-sheet-table .state-report-objective-row > :nth-child(3) { grid-area: owner; }
  .state-report-sheet-table .state-report-objective-row > :nth-child(4) { grid-area: total; }
  .state-report-sheet-table .state-report-objective-row > :nth-child(5) { grid-area: reference; }
  .state-report-sheet-table .state-report-objective-row > :nth-child(6) { grid-area: commands; }
  .state-report-sheet-table .state-report-action-row {
    grid-template-areas:
      "level status"
      "title title"
      "owner reference"
      "commands commands";
  }
  .state-report-sheet-table .state-report-action-row > td,
  .state-report-sheet-table .state-report-action-row > th { display: grid; align-content: start; gap: 5px; min-width: 0; }
  .state-report-sheet-table .state-report-objective-row > th::before,
  .state-report-sheet-table .state-report-action-row > th::before {
    content: attr(data-label);
    color: #667085;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
  }
  .state-report-sheet-table .state-report-action-row > :nth-child(1) { grid-area: level; }
  .state-report-sheet-table .state-report-action-row > :nth-child(2) { grid-area: title; }
  .state-report-sheet-table .state-report-action-row > :nth-child(3) { grid-area: owner; }
  .state-report-sheet-table .state-report-action-row > :nth-child(4) { grid-area: status; }
  .state-report-sheet-table .state-report-action-row > :nth-child(5) { grid-area: reference; }
  .state-report-sheet-table .state-report-action-row > :nth-child(6) { grid-area: commands; }
  .state-report-sheet-table .state-report-action-empty {
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas: "level title";
  }
  .state-report-objective-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .state-report-objective-actions .btn { width: 100%; min-height: 42px; }
  .state-report-action-empty td { grid-column: 1 / -1 !important; }
}

@media (max-width: 460px) {
  .state-report-sheet-table .state-report-objective-row {
    grid-template-columns: 1fr;
    grid-template-areas: "level" "title" "owner" "total" "reference" "commands";
  }
  .state-report-sheet-table .state-report-action-row {
    grid-template-columns: 1fr;
    grid-template-areas: "level" "title" "owner" "status" "reference" "commands";
  }
  .state-report-sheet-table .state-report-action-empty { grid-template-areas: "level" "title"; }
  .state-report-sheet-table .state-report-objective-row > td { grid-column: 1 !important; }
  .state-report-sheet-table .state-report-objective-row > th,
  .state-report-sheet-table .state-report-action-row > td,
  .state-report-sheet-table .state-report-action-row > th { grid-column: 1 !important; }
  .state-report-objective-actions { grid-template-columns: 1fr; }
}
.state-report-attachments-field { display: grid; gap: 7px; }
.state-report-attachments-field input[type="file"] { padding: 10px; border: 1px dashed #9fb1c3; border-radius: 9px; background: #f8fafc; }
.state-report-existing-attachments { display: grid; gap: 8px; margin-top: 14px; }
.state-report-existing-attachments ul { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; }
.state-report-existing-attachments li { display: flex; justify-content: space-between; gap: 10px; padding: 8px 10px; border: 1px solid #e2e8f0; border-radius: 8px; }
.state-report-existing-attachments li span { color: var(--sie-muted); font-size: 12px; white-space: nowrap; }
.state-report-attachment-list { display: grid; gap: 8px; margin: 14px 0 0; padding: 0; list-style: none; }
.state-report-attachment-list > li { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 11px 12px; border: 1px solid #e2e8f0; border-radius: 10px; }
.state-report-attachment-list > li > div:first-child { display: flex; align-items: center; gap: 10px; min-width: 0; }
.state-report-attachment-list > li > div:first-child > span:last-child { display: grid; min-width: 0; }
.state-report-attachment-list strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.state-report-attachment-list small { color: var(--sie-muted); }
.state-report-file-extension { display: grid; flex: 0 0 44px; min-height: 38px; place-items: center; border-radius: 8px; background: #eef3f8; color: #344054; font-size: 10px; font-weight: 850; }
.state-report-briefing-card { border-left: 4px solid #1769a7; }
.state-report-briefing-grid { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(180px, .65fr) minmax(0, 1fr); gap: 1px; margin: 12px 0; overflow: hidden; border: 1px solid #dbe3ed; border-radius: 10px; background: #dbe3ed; }
.state-report-briefing-grid > div { min-width: 0; padding: 13px 14px; background: #fff; }
.state-report-briefing-grid span { display: block; margin-bottom: 4px; color: #64748b; font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.state-report-briefing-grid strong { color: #17324d; font-size: 13px; }
.state-report-briefing-grid p { margin: 5px 0 0; color: #344054; font-size: 12px; line-height: 1.5; }
@media (max-width: 640px) {
  .state-report-attachment-list > li { align-items: stretch; flex-direction: column; }
  .state-report-attachment-list .row-actions { justify-content: flex-end; }
  .state-report-briefing-grid { grid-template-columns: 1fr; }
}

/* PAI em formato de planilha: hierarquia estratégica, tática e operacional. */
.pai-sheet {
  overflow: hidden;
  padding: 0;
  border-color: #c9d5e2;
}
.pai-sheet-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 22px 16px;
  background: #fff;
}
.pai-sheet-header h2 { margin: 3px 0 4px; font-size: 22px; }
.pai-sheet-header p { max-width: 760px; margin: 0; color: #667085; font-size: 13px; line-height: 1.45; }
.pai-sheet-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0 22px 15px;
  border-bottom: 1px solid #c9d5e2;
}
.pai-sheet-summary span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 9px;
  border: 1px solid #d7e0e9;
  border-radius: 5px;
  background: #f8fafc;
  color: #475467;
  font-size: 11px;
}
.pai-sheet-summary strong { color: #153b57; font-size: 12px; }
.pai-sheet > .alert { margin: 14px 22px; }
.pai-sheet-scroll { overflow: auto; max-width: 100%; outline: 0; }
.pai-sheet-scroll:focus-visible { box-shadow: inset 0 0 0 3px rgb(18 101 142 / 22%); }
.pai-sheet-table {
  width: 100%;
  min-width: 1180px;
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  background: #fff;
  font-size: 12px;
}
.pai-sheet-col-number { width: 82px; }
.pai-sheet-col-strategic { width: 22%; }
.pai-sheet-col-tactical { width: 23%; }
.pai-sheet-col-actors { width: 15%; }
.pai-sheet-col-status { width: 132px; }
.pai-sheet-col-operational { width: 27%; }
.pai-sheet-table thead th {
  position: sticky;
  top: 0;
  z-index: 2;
  padding: 10px 11px;
  border-right: 1px solid #bccbd9;
  border-bottom: 2px solid #8098aa;
  background: #e8f0f6;
  color: #20384a;
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .025em;
  line-height: 1.25;
  text-align: left;
  text-transform: uppercase;
}
.pai-sheet-table thead th:first-child { text-align: center; }
.pai-sheet-table thead th:last-child,
.pai-sheet-table tbody td:last-child { border-right: 0; }
.pai-sheet-table tbody th,
.pai-sheet-table tbody td {
  padding: 12px;
  border-right: 1px solid #d8e0e8;
  border-bottom: 1px solid #d8e0e8;
  color: #263746;
  line-height: 1.45;
  text-align: left;
  vertical-align: top;
}
.pai-sheet-table tbody tr:last-child > * { border-bottom: 0; }
.pai-sheet-row.is-strategic-start:not(:first-child) > * { border-top: 2px solid #94aabd; }
.pai-sheet-number {
  background: #eaf3f8;
  color: #0f5f83 !important;
  font-size: 18px;
  font-variant-numeric: tabular-nums;
  font-weight: 850;
  text-align: center !important;
  vertical-align: middle !important;
}
.pai-sheet-strategic { background: #f2f7fb; }
.pai-sheet-tactical { background: #fbfcfd; }
.pai-sheet-title {
  display: inline;
  color: #174f72;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.45;
  text-decoration: none;
}
.pai-sheet-title:hover { color: #0b6e9c; text-decoration: underline; }
.pai-sheet-strategic > small {
  display: block;
  margin-top: 6px;
  color: #667085;
  font-size: 11px;
  font-weight: 400;
  line-height: 1.45;
}
.pai-sheet-actors { white-space: normal; }
.pai-sheet-muted,
.pai-sheet-placeholder { color: #7a8794 !important; font-style: italic; }
.pai-sheet-cell-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 9px;
  margin-top: 9px;
}
.pai-sheet-cell-actions a,
.pai-sheet-cell-actions button {
  appearance: none;
  padding: 0;
  border: 0;
  background: transparent;
  color: #52697a;
  font: inherit;
  font-size: 10px;
  font-weight: 750;
  line-height: 1.3;
  text-decoration: underline;
  text-decoration-color: #afbdc8;
  text-underline-offset: 2px;
  cursor: pointer;
}
.pai-sheet-cell-actions a:hover,
.pai-sheet-cell-actions button:hover { color: #0b6e9c; text-decoration-color: currentColor; }
.pai-sheet-cell-actions a.is-add { color: #176b45; }
.pai-sheet-cell-actions form { display: inline-flex; margin: 0; }
.pai-sheet-cell-actions form button { color: #a23a38; }
.pai-sheet-status {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 4px 8px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  line-height: 1.2;
  white-space: nowrap;
}
.pai-sheet-status.is-open { border-color: #d0d5dd; background: #f2f4f7; color: #475467; }
.pai-sheet-status.is-planned { border-color: #f1d29a; background: #fff7e6; color: #8a570f; }
.pai-sheet-status.is-progress { border-color: #8cc4db; background: #eaf7fc; color: #075f80; }
.pai-sheet-status.is-attention { border-color: #f0b86e; background: #fff4e5; color: #9b4c0b; }
.pai-sheet-status.is-blocked { border-color: #efaaa8; background: #fff0ef; color: #a32f2c; }
.pai-sheet-status.is-done { border-color: #96d6b4; background: #edf9f2; color: #176b45; }
.pai-sheet-status.is-continuous { border-color: #b6a4df; background: #f5f1ff; color: #5e3b9b; }
.pai-sheet-status.is-cancelled { border-color: #c8ccd2; background: #eef0f3; color: #667085; text-decoration: line-through; }
.pai-sheet-status.is-compact { padding: 2px 6px; font-size: 9px; }
.pai-sheet-operational > ul { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.pai-sheet-operational > ul > li { padding-bottom: 8px; border-bottom: 1px dotted #c7d2dc; }
.pai-sheet-operational > ul > li:last-child { padding-bottom: 0; border-bottom: 0; }
.pai-sheet-operational > ul > li > div:first-child { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.pai-sheet-operational > ul a { color: #174f72; font-weight: 750; text-decoration: none; }
.pai-sheet-operational > ul a:hover { text-decoration: underline; }
.pai-sheet-operational > p { margin: 0; }
.pai-sheet-empty-row td { padding: 28px !important; text-align: center !important; }
.pai-sheet-empty-row strong,
.pai-sheet-empty-row span { display: block; }
.pai-sheet-empty-row span { margin-top: 4px; color: #667085; }

@media (max-width: 760px) {
  .pai-sheet-header { flex-direction: column; padding: 17px; }
  .pai-sheet-header .btn { width: 100%; }
  .pai-sheet-summary { padding: 0 17px 13px; }
  .pai-sheet > .alert { margin-right: 17px; margin-left: 17px; }
}

/* Detalhe da ação do Reporte: leitura rápida e atualização em formato de planilha. */
.state-report-show-page { gap: 12px; }
.state-report-action-summary,
.state-report-action-update,
.state-report-action-activity,
.state-report-action-secondary { padding: 0; overflow: hidden; }
.state-report-action-summary { border-left: 4px solid var(--sie-primary); }
.state-report-action-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 16px 18px 13px;
}
.state-report-action-identity { min-width: 0; }
.state-report-action-identity h2 { margin: 4px 0 6px; color: #172b3d; font-size: 19px; line-height: 1.3; }
.state-report-action-identity p { margin: 0; color: #667085; font-size: 11px; line-height: 1.45; }
.state-report-action-identity p a { color: var(--sie-primary); font-weight: 750; text-decoration: none; }
.state-report-action-identity p a:hover { text-decoration: underline; }
.state-report-action-identity p small { font-size: inherit; }
.state-report-action-commands { flex: 0 0 auto; }
.state-report-action-facts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid #e1e7ee;
  border-bottom: 1px solid #e1e7ee;
  background: #f8fafc;
}
.state-report-action-facts > div { min-width: 0; padding: 9px 14px; border-right: 1px solid #e1e7ee; }
.state-report-action-facts > div:last-child { border-right: 0; }
.state-report-action-facts dt {
  margin: 0 0 3px;
  color: #667085;
  font-size: 8px;
  font-weight: 850;
  letter-spacing: .045em;
  text-transform: uppercase;
}
.state-report-action-facts dd { margin: 0; color: #27394a; font-size: 11px; font-weight: 700; overflow-wrap: anywhere; }
.state-report-briefing-inline > summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 18px;
  cursor: pointer;
  list-style: none;
}
.state-report-briefing-inline > summary::-webkit-details-marker { display: none; }
.state-report-briefing-inline > summary > span:first-child { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.state-report-briefing-inline > summary strong { color: #17324d; font-size: 12px; }
.state-report-briefing-inline > summary small { color: #667085; font-size: 10px; }
.state-report-briefing-inline > summary > span:last-child { color: var(--sie-primary); font-size: 10px; font-weight: 750; white-space: nowrap; }
.state-report-briefing-inline > summary > span:last-child::after { content: "\25BE"; display: inline-block; margin-left: 6px; }
.state-report-briefing-inline[open] > summary { border-bottom: 1px solid #e1e7ee; background: #f8fafc; }
.state-report-briefing-inline[open] > summary > span:last-child::after { content: "\25B4"; }
.state-report-briefing-inline > summary:focus-visible,
.state-report-action-secondary .response-context-details > summary:focus-visible { outline: 3px solid rgb(18 101 142 / 24%); outline-offset: -3px; }
.state-report-briefing-body { padding: 12px 18px 14px; }
.state-report-briefing-body > p { margin: 0; color: #344054; font-size: 12px; line-height: 1.5; }
.state-report-briefing-body > p + p { margin-top: 8px; }
.state-report-action-next { padding-top: 8px; border-top: 1px dashed #d7e0e8; }
.state-report-briefing-body > small { display: block; margin-top: 8px; color: #7a8794; font-size: 9px; }
.state-report-action-section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  padding: 13px 16px;
  border-bottom: 1px solid #e1e7ee;
}
.state-report-action-section-heading h2 { margin: 2px 0 0; font-size: 16px; }
.state-report-action-section-heading p { margin: 3px 0 0; color: #667085; font-size: 10px; }
.state-report-action-update-form { padding: 14px 16px 16px; }
.state-report-action-update-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(210px, 250px);
  grid-template-areas: "details controls" "files submit";
  gap: 12px 14px;
}
.state-report-action-details-field { grid-area: details; }
.state-report-action-update-controls { grid-area: controls; display: grid; align-content: start; gap: 10px; }
.state-report-action-files-field { grid-area: files; }
.state-report-action-submit { grid-area: submit; display: flex; align-items: end; justify-content: flex-end; }
.state-report-action-submit .btn { min-width: 150px; }
.state-report-action-details-field textarea { min-height: 112px; resize: vertical; }
.state-report-action-activity > .table-wrap { margin: 0; border: 0; border-radius: 0; }
.state-report-action-table-wrap:focus-visible { outline: 3px solid rgb(18 101 142 / 24%); outline-offset: -3px; }
.state-report-action-activity-table { min-width: 900px; table-layout: fixed; }
.state-report-action-activity-table caption.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.state-report-action-activity-table th:nth-child(1) { width: 130px; }
.state-report-action-activity-table th:nth-child(3) { width: 145px; }
.state-report-action-activity-table th:nth-child(4) { width: 150px; }
.state-report-action-activity-table th:nth-child(5) { width: 235px; }
.state-report-action-activity-table td { vertical-align: top; }
.state-report-action-activity-table td:first-child > strong,
.state-report-action-activity-table td:first-child > small { display: block; }
.state-report-action-activity-table td:first-child > small { margin-top: 3px; color: #667085; font-size: 9px; }
.state-report-narrative-text { color: #344054; font-size: 11px; line-height: 1.5; white-space: normal; }
.state-report-action-activity-table .state-report-attachment-list { gap: 0; margin: 0; }
.state-report-action-activity-table .state-report-attachment-list > li {
  display: grid;
  align-items: stretch;
  gap: 9px;
  padding: 10px;
  border: 1px solid #dce5ed;
  border-radius: 9px;
  background: #fff;
}
.state-report-action-activity-table .state-report-attachment-list > li + li { margin-top: 8px; }
.state-report-attachment-name { display: grid; min-width: 0; }
.state-report-attachment-name a { min-width: 0; color: var(--sie-primary); text-decoration: none; }
.state-report-attachment-name a:hover { text-decoration: underline; }
.state-report-attachment-name strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.state-report-attachment-name small { margin-top: 2px; color: #667085; font-size: 9px; }
.state-report-action-activity-table .state-report-attachment-list .row-actions { flex: 0 0 auto; }
.state-report-action-activity-table .state-report-attachment-list .btn-sm { min-height: 30px; padding: 4px 7px; }
.state-report-attachment-links { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.state-report-attachment-links li { display: grid; gap: 2px; min-width: 0; }
.state-report-attachment-links a { overflow: hidden; color: var(--sie-primary); font-size: 10px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.state-report-attachment-links small { color: #667085; font-size: 8px; }
.state-report-action-activity-table .state-report-document-detail-row > td {
  padding: 12px 14px 15px;
  border-top: 0;
  background: #f7f9fb;
}
.state-report-document-detail-heading { display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.state-report-document-detail-heading strong { color: #263b4b; font-size: 10px; }
.state-report-document-detail-heading span { color: #718096; font-size: 9px; }
.state-report-action-activity-table .state-report-attachment-list-wide { width: 100%; margin: 0; }
.state-report-action-activity-table .state-report-attachment-list-wide > li { width: 100%; box-sizing: border-box; }
.state-report-processing-notice { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 0; }
.state-report-processing-notice .btn { flex: 0 0 auto; }
.state-report-action-files-field {
  padding: 11px 12px;
  border: 1px dashed #9fb9ca;
  border-radius: 9px;
  background: #f7fbfd;
}
.state-report-action-files-field input[type="file"] { width: 100%; padding: 8px; border: 1px solid #d8e3eb; border-radius: 7px; background: #fff; }
.state-report-attachment-list > li.state-report-document { display: grid; align-items: stretch; gap: 9px; min-width: 0; }
.state-report-attachment-list > li.state-report-document > .state-report-document-head {
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center !important;
  gap: 9px !important;
}
.state-report-document-status {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 7px;
  border: 1px solid #cdd8e2;
  border-radius: 999px;
  background: #f5f7f9;
  color: #52606d;
  font-size: 8px;
  font-weight: 850;
  line-height: 1.2;
  text-align: center;
  text-transform: uppercase;
}
.state-report-document-status.is-pending,
.state-report-document-status.is-processing { border-color: #f0c36b; background: #fff8e8; color: #82520b; }
.state-report-document-status.is-complete { border-color: #9bd4b7; background: #edf9f2; color: #176b45; }
.state-report-document-status.is-error { border-color: #efaaa8; background: #fff0ef; color: #a32f2c; }
.state-report-document-summary {
  padding: 10px 11px;
  border: 1px solid #cfe0eb;
  border-radius: 8px;
  background: linear-gradient(135deg, #f2f9fc 0%, #f8fbfd 100%);
}
.state-report-document-summary-title { display: flex; align-items: center; gap: 7px; color: #164e6b; font-size: 10px; }
.state-report-document-summary-title > span {
  display: inline-grid;
  width: 25px;
  height: 21px;
  place-items: center;
  border-radius: 6px;
  background: #146b91;
  color: #fff;
  font-size: 8px;
  font-weight: 900;
}
.state-report-document-summary > p { margin: 8px 0 0; color: #263b4b; font-size: 10px; line-height: 1.55; }
.state-report-document-summary > small { display: block; margin-top: 8px; color: #687886; font-size: 8px; line-height: 1.4; }
.state-report-document-summary .state-report-document-warning { color: #914f08; font-weight: 700; }
.state-report-document-transcript { margin-top: 9px; border-top: 1px solid #d7e5ed; }
.state-report-document-transcript > summary { padding: 8px 0 4px; color: #176080; cursor: pointer; font-size: 9px; font-weight: 750; }
.state-report-document-transcript > div { max-height: 180px; overflow: auto; padding: 8px; border-radius: 6px; background: #fff; color: #475467; font-size: 9px; line-height: 1.5; white-space: normal; }
.state-report-document-message { display: grid; gap: 2px; padding: 9px 10px; border-radius: 7px; background: #f5f7f9; color: #52606d; }
.state-report-document-message strong { font-size: 10px; white-space: normal; }
.state-report-document-message span { font-size: 9px; line-height: 1.4; }
.state-report-document-message.is-error { background: #fff3f2; color: #912f2b; }
.state-report-document-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.state-report-document-actions form { margin: 0; }
.state-report-action-secondary > .response-context-details + .response-context-details { border-top: 1px solid #e1e7ee; }
.state-report-action-secondary .response-context-details > summary > span:last-child::after { content: "\25BE"; display: inline-block; margin-left: 6px; }
.state-report-action-secondary .response-context-details[open] > summary > span:last-child::after { content: "\25B4"; }
.state-report-action-secondary .response-context-details > .state-report-attachment-list { margin: 0; padding: 0 16px 14px; }
.state-report-action-secondary .response-context-details > .state-report-attachment-list > li { padding: 8px 0; border: 0; border-bottom: 1px dotted #d8e0e8; border-radius: 0; }
.state-report-action-secondary .response-context-details > .state-report-attachment-list > li:last-child { border-bottom: 0; }
.state-report-action-secondary .response-context-details > .table-wrap { width: auto; margin: 0 16px 16px; }
.state-report-action-danger-body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 16px;
}
.state-report-action-danger-body > div > strong { color: #7a271a; font-size: 12px; }
.state-report-action-danger-body p { margin: 3px 0 0; color: #667085; font-size: 10px; }
.state-report-action-danger-body form { margin: 0; }

@media (max-width: 800px) {
  .state-report-action-heading { align-items: stretch; flex-direction: column; }
  .state-report-action-commands { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .state-report-action-commands .btn { min-height: 44px; }
  .state-report-action-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .state-report-action-facts > div:nth-child(2) { border-right: 0; }
  .state-report-action-facts > div:nth-child(-n + 2) { border-bottom: 1px solid #e1e7ee; }
  .state-report-action-update-grid { grid-template-columns: 1fr; grid-template-areas: "details" "controls" "files" "submit"; }
  .state-report-action-update-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .state-report-action-submit { justify-content: stretch; }
  .state-report-action-submit .btn { width: 100%; min-height: 44px; }
  .state-report-action-activity-table .state-report-attachment-list .btn-sm { min-height: 44px; }
  .state-report-document-head { grid-template-columns: 42px minmax(0, 1fr); }
  .state-report-document-status { grid-column: 1 / -1; justify-self: start; }
  .state-report-document-actions { display: grid; grid-template-columns: 1fr; }
  .state-report-document-actions .btn { width: 100%; }
  .state-report-processing-notice { align-items: stretch; flex-direction: column; }
  .state-report-action-danger-body { align-items: stretch; flex-direction: column; }
  .state-report-action-danger-body .btn { width: 100%; min-height: 44px; }
}

@media (max-width: 520px) {
  .state-report-action-facts { grid-template-columns: 1fr; }
  .state-report-action-facts > div { border-right: 0; border-bottom: 1px solid #e1e7ee; }
  .state-report-action-facts > div:last-child { border-bottom: 0; }
  .state-report-action-update-controls { grid-template-columns: 1fr; }
  .state-report-briefing-inline > summary > span:first-child { align-items: flex-start; flex-direction: column; gap: 2px; }
}

/* Aba 5 — relatório consolidado da ocorrência. */
.occurrence-summary-page { gap: 14px; }
.occurrence-summary-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; }
.occurrence-summary-toolbar h2 { margin: 3px 0 4px; color: #183b52; }
.occurrence-summary-toolbar p { margin: 0; color: #667985; }
.occurrence-summary-meta { display: flex; flex-wrap: wrap; gap: 7px 14px; align-items: center; margin-top: 10px; color: #657986; font-size: .72rem; }
.occurrence-summary-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; gap: 8px; align-items: center; }
.occurrence-summary-actions form { margin: 0; }
.occurrence-summary-processing { display: flex; gap: 8px; align-items: center; }
.occurrence-summary-document { overflow: hidden; border: 1px solid #d8e2e8; border-radius: 14px; background: #fff; box-shadow: 0 8px 26px rgba(24, 55, 75, .07); }
.occurrence-summary-cover { padding: 28px 32px; border-bottom: 4px solid #dc5534; background: linear-gradient(135deg, #173b53, #275f7d); color: #fff; }
.occurrence-summary-cover > span { font-size: .66rem; font-weight: 850; letter-spacing: .08em; opacity: .82; }
.occurrence-summary-cover h1 { max-width: 900px; margin: 10px 0 4px; color: #fff; font-size: 1.75rem; line-height: 1.2; }
.occurrence-summary-cover > p { margin: 0; font-size: 1rem; opacity: .9; }
.occurrence-summary-cover dl { display: flex; flex-wrap: wrap; gap: 10px 30px; margin: 22px 0 0; }
.occurrence-summary-cover dl > div { display: grid; gap: 2px; }
.occurrence-summary-cover dt { font-size: .58rem; font-weight: 800; letter-spacing: .06em; opacity: .7; text-transform: uppercase; }
.occurrence-summary-cover dd { margin: 0; font-size: .78rem; font-weight: 750; }
.occurrence-summary-section { position: relative; padding: 28px 32px; border-bottom: 1px solid #e1e8ec; }
.occurrence-summary-section-number { display: block; margin-bottom: 3px; color: #dc5534; font-size: .65rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.occurrence-summary-section h2 { margin: 0 0 12px; color: #183b52; font-size: 1.22rem; }
.occurrence-summary-section > p { max-width: 1120px; margin: 0 0 10px; color: #334f61; font-size: .85rem; line-height: 1.7; }
.occurrence-summary-section.is-executive { background: #fff9f6; }
.occurrence-summary-section.is-executive > p:first-of-type { color: #263f50; font-size: .93rem; }
.occurrence-command-chart { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 12px; }
.occurrence-command-chart article { min-width: 0; padding: 14px; border: 1px solid #cfdee7; border-top: 3px solid #2c789f; border-radius: 10px; background: #f8fbfc; }
.occurrence-command-chart article > span { color: #6d818f; font-size: .62rem; font-weight: 750; text-transform: uppercase; }
.occurrence-command-chart h3 { margin: 4px 0 6px; color: #1b435b; font-size: .88rem; }
.occurrence-command-chart p { margin: 4px 0 0; color: #526b7b; font-size: .72rem; line-height: 1.5; }
.occurrence-command-chart .occurrence-command-members { color: #253f50; font-weight: 800; }
.occurrence-summary-table { min-width: 800px; table-layout: fixed; }
.occurrence-summary-table th:nth-child(1) { width: 31%; }
.occurrence-summary-table th:nth-child(2) { width: 18%; }
.occurrence-summary-table th:nth-child(3) { width: 13%; }
.occurrence-summary-table td { vertical-align: top; white-space: normal; }
.occurrence-summary-table td strong,.occurrence-summary-table td small { display: block; }
.occurrence-summary-table td small { margin-top: 4px; color: #667985; line-height: 1.45; }
.occurrence-summary-report-list { display: grid; gap: 10px; }
.occurrence-summary-report-list article { padding: 15px 16px; border: 1px solid #dbe5ea; border-left: 4px solid #e36845; border-radius: 10px; background: #fbfcfd; }
.occurrence-summary-report-list header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.occurrence-summary-report-list header span { color: #6b7d89; font-size: .62rem; font-weight: 800; text-transform: uppercase; }
.occurrence-summary-report-list h3 { margin: 2px 0 0; color: #173c54; font-size: .88rem; }
.occurrence-summary-report-list header b { padding: 4px 7px; border-radius: 999px; background: #edf3f6; color: #456476; font-size: .6rem; text-transform: uppercase; }
.occurrence-summary-report-list h4 { margin: 10px 0 4px; color: #293f4d; font-size: .8rem; }
.occurrence-summary-report-list p { margin: 0; color: #465f6e; font-size: .75rem; line-height: 1.55; }
.occurrence-summary-report-list small { display: block; margin-top: 7px; color: #748590; }
.occurrence-summary-evidence { margin-top: 8px; padding: 8px 10px; border-radius: 7px; background: #edf6fa; color: #285b73; font-size: .69rem; }
.occurrence-summary-columns { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: 26px; }
.occurrence-summary-timeline { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.occurrence-summary-timeline li { position: relative; display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 3px 14px; padding: 0 0 15px 18px; border-left: 2px solid #d7e3e9; }
.occurrence-summary-timeline li::before { position: absolute; top: 3px; left: -6px; width: 10px; height: 10px; border: 2px solid #fff; border-radius: 50%; background: #dc5534; content: ''; }
.occurrence-summary-timeline time { color: #547184; font-size: .68rem; font-weight: 800; }
.occurrence-summary-timeline p { margin: 0; color: #314d5e; font-size: .76rem; line-height: 1.45; }
.occurrence-summary-timeline small { grid-column: 2; color: #7b8b95; }
.occurrence-summary-list { display: grid; gap: 7px; margin: 0; padding-left: 18px; color: #3b5667; font-size: .78rem; line-height: 1.5; }
.occurrence-summary-section.is-system { background: linear-gradient(135deg, #f1f8fb, #f8fbfc); }
.occurrence-summary-indicators { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 9px; margin-top: 14px; }
.occurrence-summary-indicators article { padding: 12px; border: 1px solid #d2e3eb; border-radius: 9px; background: #fff; }
.occurrence-summary-indicators span { display: block; color: #607785; font-size: .61rem; font-weight: 800; text-transform: uppercase; }
.occurrence-summary-indicators strong { display: block; margin-top: 3px; color: #164d69; font-size: 1rem; }
.occurrence-summary-indicators p { margin: 4px 0 0; color: #5d7280; font-size: .68rem; line-height: 1.4; }
.occurrence-summary-section.is-system > small { display: block; margin-top: 14px; color: #667985; }
.occurrence-summary-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding: 22px 32px; background: #f7f9fa; }
.occurrence-summary-footer h2 { margin: 0 0 8px; color: #294a5f; font-size: .82rem; }
.occurrence-summary-footer p { margin: 0; color: #5d7280; font-size: .72rem; line-height: 1.5; }
.occurrence-summary-footer > small { grid-column: 1 / -1; padding-top: 10px; border-top: 1px solid #dfe6ea; color: #7a8992; font-size: .63rem; }
.occurrence-summary-source-counts { display: flex; flex-wrap: wrap; gap: 5px 12px; margin-top: 9px !important; text-transform: capitalize; }

@media (max-width: 800px) {
  .occurrence-summary-toolbar { align-items: stretch; flex-direction: column; }
  .occurrence-summary-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .occurrence-summary-actions .btn { width: 100%; }
  .occurrence-summary-cover,.occurrence-summary-section,.occurrence-summary-footer { padding: 20px; }
  .occurrence-summary-columns,.occurrence-summary-footer { grid-template-columns: 1fr; }
  .occurrence-summary-footer > small { grid-column: auto; }
}

@media print {
  .occurrence-summary-toolbar,.occurrence-summary-page > .state-management-shell,.occurrence-summary-page > .alert { display: none !important; }
  .occurrence-summary-document { border: 0; box-shadow: none; }
  .occurrence-summary-section,.occurrence-command-chart article,.occurrence-summary-report-list article { break-inside: avoid; }
}

/* Executive occurrence summary redesign. */
.occurrence-summary-page { --summary-navy: #153d56; --summary-blue: #227497; --summary-orange: #e45d39; --summary-ink: #263f50; --summary-muted: #657b89; }
.occurrence-summary-page .ui-icon-glyph { width: 1em; height: 1em; flex: 0 0 auto; }
.occurrence-summary-toolbar { border: 1px solid #dce5ea; box-shadow: 0 5px 18px rgba(20, 57, 78, .05); }
.occurrence-summary-toolbar-copy { min-width: 0; }
.occurrence-summary-toolbar h2 { font-size: 1.18rem; }
.occurrence-summary-meta > span { display: inline-flex; align-items: center; gap: 5px; }
.occurrence-summary-meta .ui-icon-glyph { font-size: .82rem; }
.occurrence-summary-actions .btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.occurrence-summary-processing > .ui-icon-glyph { width: 24px; height: 24px; }
.occurrence-summary-processing div { display: grid; gap: 2px; }
.occurrence-summary-processing span { font-size: .75rem; }
.occurrence-summary-empty > .ui-icon-glyph { width: 34px; height: 34px; margin-bottom: 8px; color: var(--summary-blue); }
.occurrence-summary-document { color: var(--summary-ink); box-shadow: 0 14px 38px rgba(24, 55, 75, .09); }
.occurrence-summary-cover { position: relative; overflow: hidden; padding: 32px 36px 28px; background: linear-gradient(125deg, #12374e 0%, #1d5f7d 72%, #237da0 100%); }
.occurrence-summary-cover::after { position: absolute; right: -70px; bottom: -110px; width: 300px; height: 300px; border: 58px solid rgba(255,255,255,.045); border-radius: 50%; content: ''; }
.occurrence-summary-cover-heading { position: relative; z-index: 1; display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: 16px; align-items: start; }
.occurrence-summary-cover-icon { display: grid; width: 54px; height: 54px; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 14px; background: rgba(255,255,255,.12); }
.occurrence-summary-cover-icon .ui-icon-glyph { width: 27px; height: 27px; }
.occurrence-summary-cover-heading small { display: block; font-size: .62rem; font-weight: 850; letter-spacing: .08em; opacity: .77; }
.occurrence-summary-cover h1 { max-width: none; margin: 7px 0 3px; font-size: clamp(1.42rem, 2.2vw, 2rem); }
.occurrence-summary-cover-heading p { margin: 0; font-size: .95rem; opacity: .88; }
.occurrence-summary-cover dl { position: relative; z-index: 1; margin: 24px 0 0 70px; }
.occurrence-summary-cover dd { display: flex; align-items: center; gap: 6px; }
.occurrence-summary-cover dd .ui-icon-glyph { opacity: .78; }
.occurrence-summary-nav { display: flex; gap: 4px; overflow-x: auto; padding: 9px 24px; border-bottom: 1px solid #dce6eb; background: #fff; scrollbar-width: thin; }
.occurrence-summary-nav a { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 6px; padding: 8px 10px; border-radius: 7px; color: #496575; font-size: .69rem; font-weight: 750; text-decoration: none; }
.occurrence-summary-nav a:hover { background: #edf5f8; color: #175b7c; }
.occurrence-summary-nav .ui-icon-glyph { color: var(--summary-blue); font-size: .88rem; }
.occurrence-summary-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); padding: 20px 32px; border-bottom: 1px solid #e2e9ed; background: #f7fafb; }
.occurrence-summary-kpis > div { display: grid; grid-template-columns: 36px auto; grid-template-rows: auto auto; column-gap: 10px; align-items: center; min-width: 0; padding: 4px 18px; border-right: 1px solid #dce6eb; }
.occurrence-summary-kpis > div:last-child { border-right: 0; }
.occurrence-summary-kpis > div > span { display: grid; grid-row: 1 / 3; width: 36px; height: 36px; place-items: center; border-radius: 10px; background: #e3f1f6; color: #176589; }
.occurrence-summary-kpis strong { color: #173f56; font-size: 1.12rem; line-height: 1; }
.occurrence-summary-kpis small { overflow: hidden; color: #71828d; font-size: .62rem; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.occurrence-summary-section { scroll-margin-top: 16px; padding: 34px 38px; }
.occurrence-summary-section.is-soft { background: #fafcfd; }
.occurrence-summary-section.is-executive { background: linear-gradient(180deg, #fff9f6, #fff); }
.occurrence-summary-section-head { display: flex; gap: 11px; align-items: center; margin-bottom: 18px; }
.occurrence-summary-section-head > span { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 10px; background: #e9f3f7; color: #1b688b; }
.occurrence-summary-section-head > span .ui-icon-glyph { width: 19px; height: 19px; }
.occurrence-summary-section-head small { display: block; margin-bottom: 2px; color: var(--summary-orange); font-size: .6rem; font-weight: 900; letter-spacing: .065em; text-transform: uppercase; }
.occurrence-summary-section .occurrence-summary-section-head h2 { margin: 0; font-size: 1.18rem; }
.occurrence-summary-prose { max-width: 1180px; color: #395463; font-size: .82rem; line-height: 1.72; }
.occurrence-summary-prose p { margin: 0 0 11px; }
.occurrence-summary-prose p:last-child { margin-bottom: 0; }
.occurrence-summary-prose-columns { column-count: 2; column-gap: 36px; }
.occurrence-summary-prose-columns p { break-inside: avoid; }
.occurrence-summary-executive-grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, .7fr); gap: 30px; align-items: start; }
.occurrence-summary-executive-grid > .occurrence-summary-prose { padding-left: 15px; border-left: 3px solid var(--summary-orange); color: #294656; font-size: .88rem; }
.occurrence-summary-attention { padding: 16px; border: 1px solid #f0d7cd; border-radius: 12px; background: #fff; box-shadow: 0 5px 16px rgba(94, 63, 46, .05); }
.occurrence-summary-aside-title { display: flex; gap: 9px; align-items: center; padding-bottom: 10px; border-bottom: 1px solid #f1e1db; color: #a4442c; }
.occurrence-summary-aside-title > .ui-icon-glyph { width: 19px; height: 19px; }
.occurrence-summary-aside-title small,.occurrence-summary-aside-title strong { display: block; }
.occurrence-summary-aside-title small { font-size: .57rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.occurrence-summary-aside-title strong { margin-top: 1px; color: #583b32; font-size: .8rem; }
.occurrence-summary-attention .occurrence-summary-list { margin-top: 11px; padding-left: 15px; font-size: .71rem; }
.occurrence-summary-disclosure { margin-top: 18px; border: 1px solid #d8e4ea; border-radius: 11px; background: rgba(255,255,255,.8); }
.occurrence-summary-disclosure > summary { display: flex; gap: 10px; align-items: center; padding: 13px 15px; color: #244b61; cursor: pointer; list-style: none; }
.occurrence-summary-disclosure > summary::-webkit-details-marker { display: none; }
.occurrence-summary-disclosure > summary::after { width: 8px; height: 8px; margin-left: auto; border-right: 2px solid #708896; border-bottom: 2px solid #708896; content: ''; transform: rotate(45deg); transition: transform .18s ease; }
.occurrence-summary-disclosure[open] > summary::after { transform: rotate(225deg); }
.occurrence-summary-disclosure > summary > .ui-icon-glyph { width: 18px; height: 18px; color: var(--summary-blue); }
.occurrence-summary-disclosure > summary span { display: grid; gap: 2px; }
.occurrence-summary-disclosure > summary strong { font-size: .76rem; }
.occurrence-summary-disclosure > summary small { color: #748690; font-size: .64rem; }
.occurrence-summary-disclosure-title { display: flex; gap: 10px; align-items: center; padding: 13px 15px; color: #244b61; }
.occurrence-summary-disclosure-title > .ui-icon-glyph { width: 18px; height: 18px; color: var(--summary-blue); }
.occurrence-summary-disclosure-title span { display: grid; gap: 2px; }
.occurrence-summary-disclosure-title strong { font-size: .76rem; }
.occurrence-summary-disclosure-title small { color: #748690; font-size: .64rem; }
.occurrence-summary-disclosure-body { padding: 15px; border-top: 1px solid #e1e8ec; }
.occurrence-command-tree { max-width: 1180px; margin: 2px auto 0; }
.occurrence-command-node { position: relative; min-width: 0; padding: 14px 15px; border: 1px solid #cee0e8; border-radius: 10px; background: #fff; box-shadow: 0 4px 13px rgba(26, 69, 91, .05); }
.occurrence-command-node.is-root { width: min(600px, 80%); margin: 0 auto; padding: 17px 19px; border: 0; background: linear-gradient(125deg, #184e6a, #23799b); color: #fff; box-shadow: 0 8px 22px rgba(23, 78, 105, .18); }
.occurrence-command-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.occurrence-command-card-head > span { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 8px; background: #e5f1f5; color: #1b698b; }
.occurrence-command-node.is-root .occurrence-command-card-head > span { background: rgba(255,255,255,.15); color: #fff; }
.occurrence-command-card-head small { color: #728692; font-size: .57rem; font-weight: 750; text-transform: uppercase; }
.occurrence-command-node.is-root .occurrence-command-card-head small { color: rgba(255,255,255,.72); }
.occurrence-command-node h3,.occurrence-command-node h4 { margin: 8px 0 5px; color: #19475f; font-size: .82rem; }
.occurrence-command-node.is-root h3 { color: #fff; font-size: 1rem; }
.occurrence-command-node p { margin: 4px 0 0; color: #5b7180; font-size: .67rem; line-height: 1.46; }
.occurrence-command-node.is-root p { color: rgba(255,255,255,.81); }
.occurrence-command-node .occurrence-command-members { color: #294555; font-size: .72rem; font-weight: 850; }
.occurrence-command-node.is-root .occurrence-command-members { color: #fff; }
.occurrence-command-trunk { width: 2px; height: 30px; margin: 0 auto; background: #9ebfce; }
.occurrence-command-branches { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; padding-top: 22px; }
.occurrence-command-branches::before { position: absolute; top: 0; right: 25%; left: 25%; height: 2px; background: #9ebfce; content: ''; }
.occurrence-command-branch { position: relative; min-width: 0; }
.occurrence-command-branch::before { position: absolute; top: -22px; left: 50%; width: 2px; height: 22px; background: #9ebfce; content: ''; }
.occurrence-command-branch > h3 { display: flex; gap: 7px; align-items: center; justify-content: center; margin: 0 0 11px; color: #35576a; font-size: .72rem; text-transform: uppercase; }
.occurrence-command-branch > h3 > span { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 7px; background: #edf5f8; color: #227496; }
.occurrence-command-branch-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.occurrence-summary-status-strip { display: flex; flex-wrap: wrap; gap: 7px; margin: 17px 0 0; }
.occurrence-summary-status-strip span { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid #d9e4e9; border-radius: 999px; background: #f7fafb; color: #607784; font-size: .65rem; }
.occurrence-summary-status-strip b { color: #174c68; font-size: .78rem; }
.occurrence-summary-data-detail { margin-top: 16px; }
.occurrence-summary-table { font-size: .69rem; }
.occurrence-summary-table thead th { background: #edf4f7; color: #365668; }
.occurrence-summary-table-status { display: inline-block; padding: 4px 7px; border-radius: 999px; background: #eaf3f6; color: #2c617a; font-size: .6rem; font-weight: 800; }
.occurrence-summary-report-list { margin-top: 18px; }
.occurrence-summary-report-list details { overflow: hidden; border: 1px solid #dae5ea; border-radius: 11px; background: #fff; }
.occurrence-summary-report-list details[open] { border-color: #bcd4df; box-shadow: 0 5px 16px rgba(25, 68, 89, .06); }
.occurrence-summary-report-list summary { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto 18px; gap: 12px; align-items: center; padding: 13px 15px; cursor: pointer; list-style: none; }
.occurrence-summary-report-list > article { overflow: hidden; padding: 0; border: 1px solid #dae5ea; border-left: 4px solid var(--summary-orange); border-radius: 11px; background: #fff; }
.occurrence-summary-report-list > article > header { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 13px 15px; }
.occurrence-summary-report-list > article > header > b { padding: 4px 8px; border-radius: 999px; background: #eef4f6; color: #526d7c; font-size: .57rem; text-transform: uppercase; }
.occurrence-summary-report-list summary::-webkit-details-marker { display: none; }
.occurrence-summary-report-index { display: grid; width: 31px; height: 31px; place-items: center; border-radius: 9px; background: #e9f3f7; color: #1c698b; font-size: .62rem; font-weight: 900; }
.occurrence-summary-report-heading { display: grid; gap: 2px; min-width: 0; }
.occurrence-summary-report-heading small { margin: 0; color: #7a8a94; font-size: .56rem; font-weight: 850; text-transform: uppercase; }
.occurrence-summary-report-heading strong { overflow: hidden; color: #25485d; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.occurrence-summary-report-heading em { overflow: hidden; color: #6b7f8b; font-size: .65rem; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.occurrence-summary-report-list summary > b { padding: 4px 8px; border-radius: 999px; background: #eef4f6; color: #526d7c; font-size: .57rem; text-transform: uppercase; }
.occurrence-summary-chevron { width: 8px; height: 8px; border-right: 2px solid #78909d; border-bottom: 2px solid #78909d; transform: rotate(45deg); transition: transform .18s ease; }
.occurrence-summary-report-list details[open] .occurrence-summary-chevron { transform: rotate(225deg); }
.occurrence-summary-report-body { padding: 15px 17px 17px 61px; border-top: 1px solid #e4eaed; background: #fbfcfd; }
.occurrence-summary-report-meta { display: flex; gap: 10px; margin-top: 10px; color: #718590; font-size: .64rem; }
.occurrence-summary-report-meta span { display: inline-flex; align-items: center; gap: 5px; }
.occurrence-summary-evidence { display: flex; gap: 9px; align-items: flex-start; }
.occurrence-summary-evidence > .ui-icon-glyph { width: 17px; height: 17px; margin-top: 2px; }
.occurrence-summary-evidence p { margin: 2px 0 0; }
.occurrence-summary-columns { grid-template-columns: minmax(0, 1.35fr) minmax(300px, .65fr); }
.occurrence-summary-pending-panel { padding: 18px; border: 1px solid #ead9d2; border-radius: 12px; background: #fffaf8; }
.occurrence-summary-pending-panel .occurrence-summary-section-head { margin-bottom: 12px; }
.occurrence-summary-timeline li { grid-template-columns: 105px minmax(0, 1fr); }
.occurrence-summary-section.is-system { background: linear-gradient(145deg, #edf7fa, #f8fbfc 60%); }
.occurrence-summary-indicators { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.occurrence-summary-indicators article { display: grid; grid-template-columns: 35px minmax(0, 1fr); gap: 10px; padding: 13px; }
.occurrence-summary-indicator-icon { display: grid !important; width: 35px; height: 35px; place-items: center; border-radius: 9px; background: #e3f1f6; color: #1b6b8e !important; }
.occurrence-summary-indicator-icon .ui-icon-glyph { width: 18px; height: 18px; }
.occurrence-summary-indicators article small { display: block; color: #607785; font-size: .57rem; font-weight: 850; text-transform: uppercase; }
.occurrence-summary-indicators article strong { font-size: .92rem; }
.occurrence-summary-indicators article p { font-size: .65rem; }
.occurrence-summary-radar-title { margin: 22px 0 9px; color: #234b60; font-size: .78rem; }
.occurrence-summary-situation-radar { display: grid; margin-top: 8px; border-top: 1px solid #c9dce5; }
.occurrence-summary-situation-radar > article { display: grid; grid-template-columns: minmax(235px, .32fr) minmax(0, 1fr); gap: 12px 24px; align-items: start; padding: 22px 4px; border-bottom: 1px solid #d6e5eb; }
.occurrence-summary-situation-radar > article > header { display: flex; grid-column: 1; grid-row: 1 / span 4; gap: 10px; align-items: flex-start; min-width: 0; }
.occurrence-summary-situation-radar > article > header > span { display: grid; width: 38px; height: 38px; flex: 0 0 38px; place-items: center; border-radius: 10px; background: #dceef4; color: #17698c; }
.occurrence-summary-situation-radar header small { display: block; margin-bottom: 2px; color: #748691; font-size: .55rem; font-weight: 850; letter-spacing: .045em; text-transform: uppercase; }
.occurrence-summary-situation-radar header h3 { margin: 0; color: #173f56; font-size: .83rem; }
.occurrence-summary-situation-radar > article > dl { display: flex; flex-wrap: wrap; grid-column: 2; grid-row: 1; gap: 10px 28px; min-width: 0; margin: 0; padding: 0; }
.occurrence-summary-situation-radar dl > div { min-width: 105px; }
.occurrence-summary-situation-radar dt { color: #70838e; font-size: .55rem; font-weight: 800; text-transform: uppercase; }
.occurrence-summary-situation-radar dd { margin: 2px 0 0; color: #174b65; font-size: 1rem; font-weight: 900; }
.occurrence-summary-situation-radar dl small { display: block; max-width: 160px; margin-top: 2px; color: #748691; font-size: .58rem; }
.occurrence-summary-situation-radar dl .is-critical dd { color: #b8402e; }
.occurrence-summary-situation-radar dl .is-attention dd { color: #a56a08; }
.occurrence-summary-situation-radar > article > p,.occurrence-summary-situation-radar > article > details,.occurrence-summary-priority-facilities { grid-column: 2; min-width: 0; margin: 0; color: #4b6574; font-size: .69rem; line-height: 1.55; overflow-wrap: anywhere; white-space: normal; }
.occurrence-summary-map-section { background: linear-gradient(145deg, #f7fbfc, #fff); }
.occurrence-summary-map-intro { max-width: 980px !important; margin-top: -6px !important; }
.occurrence-summary-map-layout { display: grid; grid-template-columns: minmax(420px, 1.25fr) minmax(300px, .75fr); gap: 26px; align-items: start; }
.occurrence-summary-map-layout figure { overflow: hidden; margin: 0; border: 1px solid #cfe0e7; border-radius: 14px; background: #ebf6fa; box-shadow: 0 10px 28px rgba(18, 67, 89, .08); }
.occurrence-summary-map-layout figure img { display: block; width: 100%; height: auto; aspect-ratio: 620 / 430; object-fit: contain; }
.occurrence-summary-map-layout figcaption { padding: 10px 14px; border-top: 1px solid #d7e7ed; background: #fff; color: #627984; font-size: .64rem; line-height: 1.45; }
.occurrence-summary-map-index { min-width: 0; }
.occurrence-summary-map-index h3 { margin: 0 0 10px; color: #173f56; font-size: .82rem; }
.occurrence-summary-map-index ol { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.occurrence-summary-map-index li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 9px; align-items: start; padding: 8px 10px; border: 1px solid #dbe7ec; border-radius: 9px; background: #fff; }
.occurrence-summary-map-index li > span { display: grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; background: #0e8999; color: #fff; font-size: .63rem; font-weight: 900; }
.occurrence-summary-map-index li.is-pai > span { background: #234c7e; }
.occurrence-summary-map-index li.is-report > span { background: #7445a8; }
.occurrence-summary-map-index li.is-health > span { background: #b02c30; }
.occurrence-summary-map-index li.is-hydrological > span { background: #0369a1; }
.occurrence-summary-map-index li.is-vigidesastres > span { background: #d8531b; }
.occurrence-summary-map-index li strong,.occurrence-summary-map-index li small { display: block; }
.occurrence-summary-map-index li strong { color: #213f50; font-size: .7rem; }
.occurrence-summary-map-index li small { margin-top: 1px; color: #417086; font-size: .57rem; font-weight: 800; text-transform: uppercase; }
.occurrence-summary-map-index li p { margin: 3px 0 0; color: #657a85; font-size: .59rem; line-height: 1.4; }
.occurrence-summary-map-legend { display: flex; flex-wrap: wrap; gap: 7px 14px; margin-top: 12px; color: #536c79; font-size: .58rem; font-weight: 750; }
.occurrence-summary-map-legend span::before { display: inline-block; width: 8px; height: 8px; margin-right: 5px; border-radius: 50%; background: #0e8999; content: ''; }
.occurrence-summary-map-legend .is-pai::before { background: #234c7e; }
.occurrence-summary-map-legend .is-report::before { background: #7445a8; }
.occurrence-summary-map-legend .is-health::before { background: #b02c30; }
.occurrence-summary-map-legend .is-hydrological::before { background: #0369a1; }
.occurrence-summary-map-legend .is-vigidesastres::before { background: #d8531b; }
.occurrence-summary-situation-radar > article > details > summary { color: #216c8d; font-weight: 800; cursor: pointer; }
.occurrence-summary-situation-radar > article > details ul { display: grid; gap: 5px; margin: 9px 0 0; padding-left: 18px; }
.occurrence-summary-priority-facilities > strong { display: block; margin-bottom: 5px; color: #216c8d; }
.occurrence-summary-priority-facilities ul { display: grid; gap: 5px; margin: 0; padding-left: 18px; }
.occurrence-summary-indicator-list { display: grid; margin-top: 8px; border-top: 1px solid #cfe0e7; }
.occurrence-summary-indicator-list article { display: grid; grid-template-columns: 38px minmax(145px, .32fr) minmax(0, 1fr); gap: 13px; align-items: center; padding: 13px 4px; border-bottom: 1px solid #d9e7ec; background: transparent; }
.occurrence-summary-indicator-list article:hover { background: rgba(255,255,255,.58); }
.occurrence-summary-indicator-measure { display: grid; gap: 2px; min-width: 0; }
.occurrence-summary-indicator-measure small { color: #607785; font-size: .57rem; font-weight: 850; letter-spacing: .035em; text-transform: uppercase; }
.occurrence-summary-indicator-measure strong { color: #164d69; font-size: .92rem; line-height: 1.25; }
.occurrence-summary-indicator-list article > p { margin: 0; color: #4b6574; font-size: .7rem; line-height: 1.52; }
.occurrence-summary-more-indicators { margin-top: 12px; }
.occurrence-summary-more-indicators .occurrence-summary-indicators { margin-top: 0; }
.occurrence-summary-system-note { display: flex; gap: 7px; align-items: center; margin-top: 15px; color: #647a87; font-size: .67rem; }
.occurrence-summary-footer { grid-template-columns: 1fr; align-items: start; }
.occurrence-summary-footer .occurrence-summary-disclosure { width: 100%; margin: 0; }
.occurrence-summary-footer > small { text-align: center; }

@media (max-width: 1080px) {
  .occurrence-summary-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .occurrence-summary-kpis > div { border: 0; }
  .occurrence-summary-executive-grid { grid-template-columns: 1fr; }
  .occurrence-command-branch-grid { grid-template-columns: 1fr; }
  .occurrence-summary-map-layout { grid-template-columns: 1fr; }
  .occurrence-summary-map-index ol { max-height: none; overflow: visible; }
}

@media (max-width: 800px) {
  .occurrence-summary-cover { padding: 24px 20px; }
  .occurrence-summary-cover-heading { grid-template-columns: 42px minmax(0, 1fr); gap: 12px; }
  .occurrence-summary-cover-icon { width: 42px; height: 42px; }
  .occurrence-summary-cover dl { margin-left: 54px; }
  .occurrence-summary-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 16px; }
  .occurrence-summary-section { padding: 26px 20px; }
  .occurrence-summary-prose-columns { column-count: 1; }
  .occurrence-command-node.is-root { width: auto; }
  .occurrence-command-branches { grid-template-columns: 1fr; gap: 28px; padding: 0 0 0 22px; }
  .occurrence-command-branches::before { top: 0; bottom: 20px; left: 8px; width: 2px; height: auto; }
  .occurrence-command-branch::before { top: 18px; left: -14px; width: 14px; height: 2px; }
  .occurrence-command-branch > h3 { justify-content: flex-start; }
  .occurrence-command-trunk { height: 22px; margin-left: 8px; }
  .occurrence-summary-report-list summary { grid-template-columns: 32px minmax(0, 1fr) 14px; }
  .occurrence-summary-report-list summary > b { display: none; }
  .occurrence-summary-report-list > article > header { grid-template-columns: 32px minmax(0, 1fr); }
  .occurrence-summary-report-list > article > header > b { display: none; }
  .occurrence-summary-report-body { padding-left: 16px; }
  .occurrence-summary-situation-radar > article { grid-template-columns: 1fr; gap: 12px; }
  .occurrence-summary-situation-radar > article > header { grid-column: 1; grid-row: auto; }
  .occurrence-summary-situation-radar > article > dl,.occurrence-summary-situation-radar > article > p,.occurrence-summary-situation-radar > article > details,.occurrence-summary-priority-facilities { grid-column: 1; grid-row: auto; margin-top: 0; }
  .occurrence-summary-indicator-list article { grid-template-columns: 35px minmax(0, 1fr); }
  .occurrence-summary-indicator-list article > p { grid-column: 2; }
}

@media (max-width: 520px) {
  .occurrence-summary-actions { grid-template-columns: 1fr; }
  .occurrence-summary-cover dl { display: grid; grid-template-columns: 1fr; margin-left: 0; }
  .occurrence-summary-kpis { grid-template-columns: 1fr 1fr; }
  .occurrence-summary-kpis > div { padding: 5px 7px; }
  .occurrence-summary-columns { gap: 18px; }
}

@media print {
  .occurrence-summary-nav { display: none !important; }
  .occurrence-summary-cover { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .occurrence-summary-kpis { grid-template-columns: repeat(5, 1fr); print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .occurrence-summary-section { padding: 22px 26px; }
  .occurrence-summary-disclosure > summary::after,.occurrence-summary-chevron { display: none; }
  .occurrence-summary-disclosure:not([open]) > .occurrence-summary-disclosure-body,
  .occurrence-summary-report-list details:not([open]) > .occurrence-summary-report-body { display: block !important; }
  .occurrence-summary-report-list details,.occurrence-command-node,.occurrence-summary-indicator-list article { break-inside: avoid; }
  .occurrence-summary-map-layout { grid-template-columns: 1.25fr .75fr; }
  .occurrence-summary-map-index ol { max-height: none; overflow: visible; }
  .occurrence-summary-map-layout figure { box-shadow: none; }
}

/* Mantém o shell Tempo real sem o padding genérico de .panel e utilizável em tela cheia. */
.panel.real-time-shell {
  overflow: hidden;
  padding: 0;
}

.real-time-shell-head {
  min-width: 0;
}

.real-time-rain-strip {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.real-time-shell > .real-time-shell-head > .real-time-rain-strip {
  padding: .75rem 1rem;
  border-bottom: 1px solid var(--rt-border);
  background: #f8fbfb;
}

.real-time-shell.integrated-map-shell-fullscreen {
  position: fixed;
  z-index: 3000;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  inset: 0;
  width: 100vw;
  height: 100vh;
  height: 100dvh;
  max-width: none;
  max-height: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 0;
  background: var(--sie-surface);
  box-shadow: none;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-command-bar-fullscreen {
  border-radius: 0;
  display: grid;
  gap: .55rem;
  grid-template-columns: minmax(210px, 1.2fr) minmax(620px, 3.8fr);
  padding: .45rem .75rem;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-command-metrics article {
  padding: .3rem .42rem;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-command-status > small {
  display: none;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-heading {
  align-items: center;
  flex-direction: row;
  gap: .75rem;
  min-width: 0;
  padding: .65rem .85rem;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-heading > div:first-child {
  min-width: 0;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-heading h2 {
  font-size: 1.15rem;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-heading p {
  font-size: .75rem;
  line-height: 1.35;
  margin: 0;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-rain-strip {
  grid-template-columns: repeat(7, minmax(132px, 1fr));
  gap: .4rem;
  padding: .45rem .75rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-rain-strip article {
  min-width: 0;
  gap: .1rem;
  padding: .45rem .6rem;
  border-radius: 8px;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-rain-strip span {
  font-size: .62rem;
  line-height: 1.2;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-rain-strip strong,
.real-time-shell.integrated-map-shell-fullscreen .real-time-rain-strip article:last-child strong {
  font-size: 1rem;
  line-height: 1.15;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-rain-strip small {
  font-size: .61rem;
  line-height: 1.25;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-map-layout {
  display: grid;
  grid-template-columns: clamp(230px, 20vw, 310px) minmax(0, 1fr) clamp(270px, 23vw, 360px);
  grid-template-rows: minmax(0, 1fr);
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-layer-panel,
.real-time-shell.integrated-map-shell-fullscreen .real-time-decision-panel {
  grid-column: auto;
  height: 100%;
  max-height: none;
  min-height: 0;
  overscroll-behavior: contain;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-gutter: stable;
}

.real-time-shell.integrated-map-shell-fullscreen .real-time-map-canvas {
  height: 100%;
  min-height: 0;
}

@media (max-width: 1100px) {
  .real-time-shell.integrated-map-shell-fullscreen .real-time-command-bar-fullscreen {
    grid-template-columns: 1fr;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-command-status {
    display: none;
  }
  .real-time-shell.integrated-map-shell-fullscreen .real-time-rain-strip small {
    display: none;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-map-layout {
    grid-template-columns: minmax(210px, 28vw) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) minmax(180px, 34dvh);
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-layer-panel {
    grid-column: 1;
    grid-row: 1;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-map-canvas {
    grid-column: 2;
    grid-row: 1;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-decision-panel {
    display: grid;
    grid-column: 1 / -1;
    grid-row: 2;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--rt-border);
    border-left: 0;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-method-note {
    grid-column: 1 / -1;
  }
}

@media (max-width: 680px) {
  .real-time-shell.integrated-map-shell-fullscreen {
    grid-template-rows: auto minmax(0, 1fr);
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-heading {
    align-items: stretch;
    flex-direction: row;
    gap: .45rem;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-heading p {
    display: none;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-rain-strip {
    grid-template-columns: repeat(7, minmax(124px, 1fr));
    padding: .35rem .5rem;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-rain-strip article {
    padding: .4rem .5rem;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-rain-strip small {
    display: none;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-map-actions {
    flex: 0 0 auto;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-map-layout {
    grid-template-columns: minmax(150px, 40vw) minmax(0, 1fr);
    grid-template-rows: minmax(0, 60%) minmax(0, 40%);
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-decision-panel {
    grid-template-columns: 1fr;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-method-note {
    grid-column: 1;
  }
}

@media (max-width: 460px) {
  .real-time-shell.integrated-map-shell-fullscreen .real-time-heading h2 {
    font-size: 1rem;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-heading .btn {
    padding-right: .55rem;
    padding-left: .55rem;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-map-layout {
    grid-template-columns: minmax(128px, 42vw) minmax(0, 1fr);
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-layer-panel,
  .real-time-shell.integrated-map-shell-fullscreen .real-time-decision-panel {
    padding: .55rem;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-layer-toggle {
    gap: .35rem;
    grid-template-columns: auto minmax(0, 1fr);
    padding: .5rem;
  }

  .real-time-shell.integrated-map-shell-fullscreen .real-time-layer-toggle b {
    display: none;
  }
}

/* Ao recolher as camadas, os demais painéis recebem posições explícitas.
   Isso evita que o CSS Grid coloque o mapa na antiga coluna estreita do menu. */
@media (min-width: 1101px) {
  .real-time-shell.integrated-map-shell-fullscreen.is-layer-panel-collapsed .real-time-map-layout {
    grid-template-columns: minmax(0, 1fr) clamp(270px, 23vw, 360px);
  }
  .real-time-shell.integrated-map-shell-fullscreen.is-layer-panel-collapsed .real-time-map-canvas {
    grid-column: 1;
    grid-row: 1;
  }
  .real-time-shell.integrated-map-shell-fullscreen.is-layer-panel-collapsed .real-time-decision-panel {
    grid-column: 2;
    grid-row: 1;
  }
}

@media (max-width: 1100px) {
  .real-time-shell.integrated-map-shell-fullscreen.is-layer-panel-collapsed .real-time-map-layout {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) minmax(180px, 34dvh);
  }
  .real-time-shell.integrated-map-shell-fullscreen.is-layer-panel-collapsed .real-time-map-canvas {
    grid-column: 1;
    grid-row: 1;
  }
  .real-time-shell.integrated-map-shell-fullscreen.is-layer-panel-collapsed .real-time-decision-panel {
    grid-column: 1;
    grid-row: 2;
  }
}

/* Mapa limpo: mantém apenas o mapa e controles flutuantes na tela cheia. */
.real-time-shell.integrated-map-shell-fullscreen.integrated-map-clean-view {
  grid-template-rows: minmax(0, 1fr);
}

.real-time-shell.integrated-map-shell-fullscreen.integrated-map-clean-view .real-time-shell-head,
.real-time-shell.integrated-map-shell-fullscreen.integrated-map-clean-view .real-time-decision-panel {
  display: none;
}

.real-time-shell.integrated-map-shell-fullscreen.integrated-map-clean-view .real-time-layer-panel {
  display: none;
}

.real-time-shell.integrated-map-shell-fullscreen.integrated-map-clean-view.is-clean-layer-panel-open .real-time-layer-panel {
  bottom: 0;
  box-shadow: 10px 0 28px rgba(15, 23, 42, .28);
  display: block;
  height: 100%;
  left: 0;
  max-height: none;
  max-width: calc(100% - 64px);
  position: absolute;
  top: 0;
  width: clamp(250px, 24vw, 340px);
  z-index: 1150;
}

.real-time-shell.integrated-map-shell-fullscreen.integrated-map-clean-view.is-clean-layer-panel-open .real-time-layer-drawer-toggle {
  display: none;
}

.real-time-shell.integrated-map-shell-fullscreen.integrated-map-clean-view .real-time-map-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  height: 100%;
}

.real-time-shell.integrated-map-shell-fullscreen.integrated-map-clean-view .real-time-map-canvas {
  grid-column: 1;
  grid-row: 1;
  height: 100%;
  min-height: 0;
  width: 100%;
}

.real-time-shell.integrated-map-shell-fullscreen.integrated-map-clean-view .real-time-clean-map-exit {
  display: inline-flex;
}

.real-time-shell.integrated-map-shell-fullscreen.integrated-map-clean-view .real-time-alert-toast {
  right: .75rem;
  top: 3.7rem;
}

/* Interrupções de energia: fonte oficial ANEEL + evidência hospitalar confirmada. */
.power-outages-aneel-link-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem;
  border: 1px solid #d7dee8;
  border-radius: 12px;
  background: linear-gradient(135deg, #f8fafc, #eff8ff);
}

.power-outages-aneel-link-card p {
  margin: .25rem 0 0;
  color: #475467;
}

.power-outages-summary {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.power-outages-aneel-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.power-outages-updated-value {
  font-size: clamp(1rem, 1.6vw, 1.4rem);
}

.power-outages-critical-metric .metric-value {
  color: #b42318;
}

.power-outages-hospital-map {
  min-height: 540px;
  border: 1px solid #d7dee8;
  border-radius: 12px;
  background: #eef4f8;
}

.power-outages-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .75rem;
  color: #475467;
  font-size: .78rem;
  font-weight: 700;
}

.power-outages-legend span {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
}

.power-outages-legend i {
  width: .75rem;
  height: .75rem;
  border: 2px solid;
  border-radius: 50%;
}

.power-outages-legend .is-critical {
  border-color: #7a271a;
  background: #b42318;
}

.power-outages-legend .is-risk {
  border-color: #b42318;
  background: #f04438;
}

.power-outages-legend .is-attention {
  border-color: #b54708;
  background: #f79009;
}

.power-outages-legend .is-aneel-low {
  border-color: #175cd3;
  background: #2e90fa;
}

.power-outages-legend .is-aneel-medium {
  border-color: #b54708;
  background: #fdb022;
}

.power-outages-legend .is-aneel-high {
  border-color: #912018;
  background: #d92d20;
}

.power-outages-map-status {
  margin-bottom: .75rem;
}

.leaflet-control.power-outages-size-control {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: min(290px, calc(100vw - 72px));
  overflow: hidden;
  border: 1px solid rgba(15, 23, 42, .2);
  border-radius: 8px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 2px 8px rgba(15, 23, 42, .18);
}

.leaflet-control.power-outages-size-control > span {
  grid-column: 1 / -1;
  padding: .35rem .55rem;
  border-bottom: 1px solid #dbe3ea;
  color: #344054;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .04em;
  text-align: center;
  text-transform: uppercase;
}

.leaflet-control.power-outages-size-control button {
  min-height: 34px;
  padding: .4rem .55rem;
  border: 0;
  background: #fff;
  color: #344054;
  cursor: pointer;
  font: 700 .75rem/1.2 Arial, sans-serif;
}

.leaflet-control.power-outages-size-control button + button {
  border-left: 1px solid #dbe3ea;
}

.leaflet-control.power-outages-size-control button[aria-pressed="true"] {
  background: #0369a1;
  color: #fff;
}

.leaflet-control.power-outages-size-control button:focus-visible {
  position: relative;
  outline: 3px solid #fdb022;
  outline-offset: -3px;
}

.leaflet-control.power-outages-size-control button:disabled {
  background: #f2f4f7;
  color: #98a2b3;
  cursor: not-allowed;
}

.power-outages-consumer-unit-note {
  margin: .75rem 0 0;
}

.power-outages-score-note {
  margin-top: 1rem;
}

.power-outages-hospital-table-wrap tbody tr[data-energy-marker-id] {
  cursor: pointer;
}

.power-outages-hospital-table-wrap tbody tr[data-energy-marker-id]:hover,
.power-outages-hospital-table-wrap tbody tr[data-energy-marker-id]:focus {
  outline: 0;
  background: #fff7ed;
}

.energy-status-critico {
  border-color: #fecdca;
  background: #fef3f2;
  color: #b42318;
}

.energy-status-risco {
  border-color: #fedf89;
  background: #fffaeb;
  color: #b54708;
}

.energy-status-atencao {
  border-color: #fddcab;
  background: #fff7ed;
  color: #c4320a;
}

.power-outages-hospital-popup {
  display: grid;
  gap: .35rem;
  min-width: 245px;
}

.power-outages-hospital-popup > strong {
  color: #101828;
  font-size: .94rem;
}

.power-outages-hospital-popup > span,
.power-outages-hospital-popup small {
  color: #667085;
}

.power-outages-hospital-popup dl {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .18rem .55rem;
  margin: .25rem 0;
}

.power-outages-hospital-popup dt {
  color: #667085;
  font-weight: 600;
}

.power-outages-hospital-popup dd {
  margin: 0;
  color: #101828;
}

.power-outages-hospital-popup p {
  margin: .2rem 0;
}

.power-outages-aneel-panel > summary {
  cursor: pointer;
  color: #344054;
}

.power-outages-aneel-content {
  margin-top: 1rem;
}

@media (max-width: 900px) {
  .power-outages-summary,
  .power-outages-aneel-summary {
    grid-template-columns: 1fr;
  }

  .power-outages-aneel-link-card {
    align-items: stretch;
    flex-direction: column;
  }

  .power-outages-hospital-map {
    min-height: 460px;
  }
}

/* Inclusão de linhas completas no PAI e no Reporte. */
.pai-row-form {
  overflow: hidden;
  padding: 0;
}

.pai-row-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1px;
  border-bottom: 1px solid #d8e0e8;
  background: #d8e0e8;
}

.pai-row-form-field {
  display: grid;
  align-content: start;
  gap: 14px;
  min-width: 0;
  padding: 18px;
  background: #fff;
}

.pai-row-form-field.is-strategic,
.pai-row-form-field.is-operations {
  grid-column: 1 / -1;
}

.pai-row-form-heading {
  display: flex;
  align-items: center;
  gap: 9px;
}

.pai-row-form-heading > span {
  display: grid;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 50%;
  background: #e8f0f6;
  color: #174f72;
  font-size: 12px;
  font-weight: 850;
}

.pai-row-form-heading h3 {
  margin: 0;
  color: #20384a;
  font-size: 14px;
}

.pai-row-form-field.is-strategic {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.pai-row-form-field.is-strategic .pai-row-form-heading,
.pai-row-form-field.is-strategic .pai-row-form-mode {
  grid-column: 1 / -1;
}

.pai-row-form-mode {
  min-height: 18px;
  margin: -4px 0 0;
  color: #526579;
  font-size: 11px;
}

.pai-row-form-actions {
  align-items: center;
  padding: 16px 18px;
}

.pai-row-form-actions > span {
  margin-right: auto;
  color: #667085;
  font-size: 11px;
}

.state-report-choice-fieldset,
.state-report-departments-panel {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.state-report-choice-fieldset > legend,
.state-report-departments-panel > legend {
  margin-bottom: 8px;
  color: #344054;
  font-size: 12px;
  font-weight: 800;
}

.state-report-choice-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.state-report-choice-card {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  min-height: 76px;
  padding: 12px;
  border: 1px solid #cbd5df;
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
}

.state-report-choice-card.is-segesp {
  border-color: #9bc7db;
  background: #f4fafc;
}

.state-report-choice-card.is-selected {
  border-color: var(--sie-primary);
  box-shadow: 0 0 0 2px rgb(18 101 142 / 12%);
  background: #f3f9fc;
}

.state-report-choice-card input,
.state-report-inline-options input,
.state-report-department-checklist input {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin: 1px 0 0;
  accent-color: var(--sie-primary);
}

.state-report-choice-card > span {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.state-report-choice-card strong { color: #20384a; font-size: 12px; }
.state-report-choice-card small { color: #667085; font-size: 10px; line-height: 1.4; }

.state-report-inline-options {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.state-report-inline-options label {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 42px;
  padding: 8px 14px;
  border: 1px solid #cbd5df;
  border-radius: 8px;
  background: #fff;
  cursor: pointer;
}

.state-report-destination-panel,
.state-report-departments-panel {
  padding: 14px;
  border: 1px solid #d8e0e8;
  border-radius: 10px;
  background: #f8fafc;
}

.state-report-departments-panel > p {
  margin: 0 0 10px;
  color: #667085;
  font-size: 11px;
}

.state-report-department-checklist {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
}

.state-report-department-checklist label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  min-height: 42px;
  padding: 8px 10px;
  border: 1px solid #d8e0e8;
  border-radius: 7px;
  background: #fff;
  color: #344054;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}

.state-report-department-checklist label:focus-within,
.state-report-choice-card:focus-within,
.state-report-inline-options label:focus-within {
  outline: 3px solid rgb(18 101 142 / 22%);
  outline-offset: 2px;
}

.state-report-selection-summary {
  min-height: 16px;
  margin: 8px 0 0 !important;
  color: #175d7d !important;
  font-weight: 750;
}

.state-report-destination-panel[hidden],
.state-report-departments-panel[hidden],
[data-report-pai-panel][hidden],
[data-pai-new-strategic][hidden] {
  display: none !important;
}

.state-report-sheet-table {
  min-width: 1380px;
  table-layout: fixed;
}

.state-report-sheet-table .col-objective { width: 19%; }
.state-report-sheet-table .col-pai { width: 14%; }
.state-report-sheet-table .col-action { width: 20%; }
.state-report-sheet-table .col-departments { width: 15%; }
.state-report-sheet-table .col-status { width: 10%; }
.state-report-sheet-table .col-updates { width: 13%; }
.state-report-sheet-table .col-actions { width: 9%; }

.state-report-record-row > th,
.state-report-record-row > td {
  padding: 13px 11px;
  border-top: 1px solid #d9e2ec;
  border-right: 1px solid #e1e7ee;
  border-bottom: 1px solid #d9e2ec;
  background: #fff;
  text-align: left;
  vertical-align: top;
}

.state-report-record-row > *:last-child { border-right: 0; }
.pai-sheet-row:target > *,
.state-report-record-row:target > * {
  animation: response-row-highlight 2.4s ease-out;
}
@keyframes response-row-highlight {
  0%, 35% { background: #fff3c4; }
  100% { background: inherit; }
}
@media (prefers-reduced-motion: reduce) {
  .pai-sheet-row:target > *,
  .state-report-record-row:target > * { animation: none; background: #fff8dc; }
}
.state-report-objective-group[data-segesp="true"] .state-report-record-row > *:first-child { box-shadow: inset 4px 0 0 #3b91b8; }
.state-report-record-row .state-report-level-chip { width: fit-content; margin-bottom: 5px; }
.state-report-action-empty td { color: inherit; font-style: normal; }

.state-report-action-copy,
.state-report-pai-relation,
.state-report-departments-cell {
  display: grid;
  align-content: start;
  gap: 5px;
  min-width: 0;
}

.state-report-action-copy > strong,
.state-report-pai-relation > strong { color: #17324d; font-size: 12px; }
.state-report-action-copy > small,
.state-report-departments-cell > small,
.state-report-pai-relation > span { color: #667085; font-size: 10px; line-height: 1.4; }
.state-report-pai-relation > a { color: var(--sie-primary); font-size: 11px; font-weight: 750; line-height: 1.4; text-decoration: none; }
.state-report-pai-relation > a:hover { text-decoration: underline; }

.state-report-department-chip-list {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.state-report-department-chip-list > li {
  max-width: 100%;
  padding: 3px 7px;
  border: 1px solid #cbd8e6;
  border-radius: 999px;
  background: #f5f8fb;
  color: #344054;
  font-size: 9px;
  font-weight: 750;
  overflow-wrap: anywhere;
}

.state-report-action-form-departments {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding-top: 10px;
  border-top: 1px solid #e1e7ee;
}

.state-report-action-form-departments > strong {
  color: #475467;
  font-size: 10px;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.state-report-record-row .state-report-objective-actions {
  display: grid;
  grid-template-columns: 1fr;
  gap: 5px;
  width: 100%;
}

.state-report-record-row .state-report-objective-actions .btn {
  width: 100%;
  min-width: 0;
  white-space: normal;
}

@media (max-width: 980px) {
  .pai-row-form-grid,
  .pai-row-form-field.is-strategic,
  .state-report-choice-grid { grid-template-columns: 1fr; }
  .pai-row-form-field.is-strategic > * { grid-column: 1; }
  .state-report-department-checklist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .state-report-sheet-table { display: block; min-width: 0; }
  .state-report-sheet-table > thead {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .state-report-sheet-table .state-report-objective-group { display: grid; gap: 9px; padding: 0 0 10px; }
  .state-report-sheet-table .state-report-record-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas:
      "objective pai"
      "action action"
      "departments status"
      "updates commands";
    overflow: hidden;
    border: 1px solid #cbd9e7;
    border-radius: 10px;
    background: #fff;
  }
  .state-report-sheet-table .state-report-record-row > th,
  .state-report-sheet-table .state-report-record-row > td {
    display: grid;
    align-content: start;
    gap: 5px;
    min-width: 0;
    border-top: 0;
    border-right: 0;
    border-bottom: 1px solid #e1e7ee;
    border-left: 0;
  }
  .state-report-sheet-table .state-report-record-row > *::before {
    content: attr(data-label);
    color: #667085;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .045em;
    text-transform: uppercase;
  }
  .state-report-sheet-table .state-report-record-row > :nth-child(1) { grid-area: objective; }
  .state-report-sheet-table .state-report-record-row > :nth-child(2) { grid-area: pai; }
  .state-report-sheet-table .state-report-record-row > :nth-child(3) { grid-area: action; }
  .state-report-sheet-table .state-report-record-row > :nth-child(4) { grid-area: departments; }
  .state-report-sheet-table .state-report-record-row > :nth-child(5) { grid-area: status; }
  .state-report-sheet-table .state-report-record-row > :nth-child(6) { grid-area: updates; }
  .state-report-sheet-table .state-report-record-row > :nth-child(7) { grid-area: commands; }
  .state-report-record-row .state-report-objective-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .state-report-record-row .state-report-objective-actions .btn { min-height: 44px; }
}

@media (max-width: 560px) {
  .pai-row-form-field { padding: 15px; }
  .pai-row-form-actions { align-items: stretch; flex-direction: column; }
  .pai-row-form-actions > span { margin-right: 0; }
  .pai-row-form-actions .btn { width: 100%; min-height: 44px; }
  .state-report-department-checklist { grid-template-columns: 1fr; }
  .state-report-inline-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .state-report-inline-options label { justify-content: center; }
  .state-report-sheet-table .state-report-record-row {
    grid-template-columns: 1fr;
    grid-template-areas: "objective" "pai" "action" "departments" "status" "updates" "commands";
  }
  .state-report-record-row .state-report-objective-actions { grid-template-columns: 1fr; }
}

/* Matriz de risco: todos os estilos deste bloco permanecem isolados na página. */
.risk-matrix-page {
  --risk-matrix-line: #d8e1e8;
  --risk-matrix-soft: #f7f9fb;
  --risk-matrix-muted: #5b6875;
  --risk-matrix-observed: #e8f6fb;
  --risk-matrix-conditional: #f4f0ff;
  --risk-matrix-conditional-ink: #5b3f91;
  gap: 16px;
}

.risk-matrix-page .risk-matrix-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.48fr);
  gap: 24px;
  align-items: center;
  padding: 20px;
  border: 1px solid #cbdde5;
  border-radius: 10px;
  background: linear-gradient(135deg, #f5fbfd 0%, #fff 68%);
  box-shadow: var(--sie-shadow);
}

.risk-matrix-page .risk-matrix-intro-copy {
  display: grid;
  gap: 7px;
}

.risk-matrix-page .risk-matrix-kicker {
  color: var(--sie-cyan-ink);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.risk-matrix-page .risk-matrix-intro h2 {
  margin: 0;
  color: #17324d;
  font-size: clamp(18px, 2vw, 24px);
  line-height: 1.2;
}

.risk-matrix-page .risk-matrix-intro p {
  max-width: 78ch;
  margin: 0;
  color: #415466;
  font-size: 13px;
  line-height: 1.55;
}

.risk-matrix-page .risk-matrix-intro-note {
  font-size: 11px;
  font-weight: 700;
}

.risk-matrix-page .risk-matrix-overview {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}

.risk-matrix-page .risk-matrix-overview > div {
  display: grid;
  align-content: center;
  min-height: 76px;
  padding: 10px;
  border: 1px solid #d7e5eb;
  border-radius: 8px;
  background: rgb(255 255 255 / 88%);
  text-align: center;
}

.risk-matrix-page .risk-matrix-overview dt {
  color: var(--risk-matrix-muted);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.risk-matrix-page .risk-matrix-overview dd {
  margin: 4px 0 0;
  color: #17324d;
  font-size: 17px;
  font-weight: 850;
  line-height: 1.15;
}

.risk-matrix-page .risk-matrix-overview > div:last-child dd {
  font-size: 11px;
  line-height: 1.35;
}

.risk-matrix-page .risk-matrix-briefing {
  display: grid;
  gap: 9px;
  padding: 15px 18px;
  border: 1px solid #c8dfe8;
  border-left: 4px solid var(--sie-cyan);
  border-radius: 9px;
  background: #f5fbfd;
  box-shadow: var(--sie-shadow);
}

.risk-matrix-page .risk-matrix-briefing-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.risk-matrix-page .risk-matrix-briefing-heading > div:first-child {
  display: grid;
  gap: 5px;
}

.risk-matrix-page .risk-matrix-briefing-actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.risk-matrix-page .risk-matrix-briefing-kicker {
  color: var(--sie-cyan-ink);
  font-size: 9px;
  font-weight: 850;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.risk-matrix-page .risk-matrix-briefing h2 {
  margin: 0;
  color: #17324d;
  font-size: 16px;
  line-height: 1.25;
}

.risk-matrix-page .risk-matrix-briefing-lines {
  display: grid;
  max-width: 125ch;
  gap: 3px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.risk-matrix-page .risk-matrix-briefing-lines li {
  position: relative;
  margin: 0;
  padding-left: 14px;
  color: #30495d;
  font-size: 13px;
  line-height: 1.45;
}

.risk-matrix-page .risk-matrix-briefing-lines li::before {
  position: absolute;
  top: 0;
  left: 0;
  color: var(--sie-cyan-ink);
  content: '•';
  font-weight: 900;
}

.risk-matrix-page .risk-matrix-briefing-feedback {
  min-height: 1em;
  color: #166534;
  font-size: 11px;
  font-weight: 750;
}

.risk-matrix-page .risk-matrix-briefing p {
  max-width: 120ch;
  margin: 0;
  color: #30495d;
  font-size: 13px;
  line-height: 1.55;
}

@media (max-width: 760px) {
  .risk-matrix-page .risk-matrix-briefing-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .risk-matrix-page .risk-matrix-briefing-actions {
    justify-content: flex-start;
  }
}

.risk-matrix-page .risk-matrix-load-alert {
  margin: 0;
}

.risk-matrix-page .risk-matrix-load-alert ul {
  margin: 6px 0;
  padding-left: 18px;
}

.risk-matrix-page .risk-matrix-load-alert p {
  margin: 6px 0 0;
}

.risk-matrix-page .risk-matrix-empty {
  min-height: 180px;
}

.risk-matrix-page .risk-matrix-panel {
  padding: 0;
  overflow: hidden;
}

.risk-matrix-page .risk-matrix-heading {
  align-items: center;
  margin: 0;
  padding: 16px 18px;
  border-bottom: 1px solid var(--risk-matrix-line);
}

.risk-matrix-page .risk-matrix-heading p {
  max-width: 90ch;
  font-size: 11px;
  line-height: 1.45;
}

.risk-matrix-page .risk-matrix-readonly-badge {
  flex: 0 0 auto;
  padding: 5px 9px;
  border: 1px solid #b9d5df;
  border-radius: 999px;
  background: #edf8fb;
  color: var(--sie-cyan-ink);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.risk-matrix-page .risk-matrix-table-wrap {
  border: 0;
  border-radius: 0;
  outline: none;
  scrollbar-color: #9aabb9 #eef2f5;
}

.risk-matrix-page .risk-matrix-table-wrap:focus-visible {
  box-shadow: inset 0 0 0 3px rgb(0 107 128 / 28%);
}

.risk-matrix-page .risk-matrix-table {
  min-width: 1120px;
  table-layout: fixed;
  border-collapse: separate;
  border-spacing: 0;
  color: #263746;
  font-size: 11px;
  line-height: 1.4;
}

.risk-matrix-page .risk-matrix-label-column {
  width: 180px;
}

.risk-matrix-page .risk-matrix-day-column {
  width: 188px;
}

.risk-matrix-page .risk-matrix-table th,
.risk-matrix-page .risk-matrix-table td {
  padding: 10px;
  border-right: 1px solid var(--risk-matrix-line);
  border-bottom: 1px solid var(--risk-matrix-line);
  background: #fff;
  overflow-wrap: anywhere;
  vertical-align: top;
}

.risk-matrix-page .risk-matrix-table tr > :last-child {
  border-right: 0;
}

.risk-matrix-page .risk-matrix-table tbody tr:last-child > * {
  border-bottom: 0;
}

.risk-matrix-page .risk-matrix-table tbody tr:hover td {
  background: #fbfdfe;
}

.risk-matrix-page .risk-matrix-corner,
.risk-matrix-page .risk-matrix-row-heading {
  position: sticky;
  left: 0;
  z-index: 3;
  background: #f5f8fa;
  box-shadow: 1px 0 0 var(--risk-matrix-line);
}

.risk-matrix-page .risk-matrix-corner {
  z-index: 5;
  color: #405363;
}

.risk-matrix-page .risk-matrix-day-heading {
  height: 84px;
  color: #304657;
  text-align: left;
  text-transform: none;
}

.risk-matrix-page .risk-matrix-day-heading.is-today {
  background: var(--risk-matrix-observed);
  box-shadow: inset 0 3px 0 var(--sie-cyan);
}

.risk-matrix-page .risk-matrix-day-heading.is-future {
  background: var(--risk-matrix-conditional);
  box-shadow: inset 0 3px 0 #8063b0;
}

.risk-matrix-page .risk-matrix-day-heading strong,
.risk-matrix-page .risk-matrix-day-heading span {
  display: block;
}

.risk-matrix-page .risk-matrix-day-heading strong {
  margin: 3px 0;
  color: #17324d;
  font-size: 13px;
  font-weight: 850;
}

.risk-matrix-page .risk-matrix-day-code {
  color: var(--sie-cyan-ink);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.risk-matrix-page .is-future .risk-matrix-day-code {
  color: var(--risk-matrix-conditional-ink);
}

.risk-matrix-page .risk-matrix-evidence-type {
  color: #526678;
  font-size: 9px;
  font-weight: 700;
}

.risk-matrix-page .risk-matrix-row-heading {
  color: #304657;
  font-size: 10px;
  text-align: left;
  text-transform: none;
}

.risk-matrix-page .risk-matrix-row-heading > strong,
.risk-matrix-page .risk-matrix-row-heading > span {
  display: block;
}

.risk-matrix-page .risk-matrix-row-heading > strong {
  margin-bottom: 4px;
  color: #17324d;
  font-size: 12px;
}

.risk-matrix-page .risk-matrix-row-heading > span {
  color: var(--risk-matrix-muted);
  font-size: 9px;
  font-weight: 600;
  line-height: 1.45;
}

.risk-matrix-page .risk-matrix-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.risk-matrix-page .risk-matrix-criticality {
  display: grid;
  gap: 2px;
  padding: 8px;
  border: 1px solid #cbd5df;
  border-left-width: 4px;
  border-radius: 7px;
  background: #f8fafc;
}

.risk-matrix-page .risk-matrix-criticality > strong {
  color: #273b4b;
  font-size: 12px;
}

.risk-matrix-page .risk-matrix-criticality--unavailable {
  border-left-color: #778493;
  background: #f5f6f7;
}

.risk-matrix-page .risk-matrix-criticality--low {
  border-left-color: #08783b;
  background: #eefaf2;
}

.risk-matrix-page .risk-matrix-criticality--moderate {
  border-left-color: #8a6200;
  background: #fff9e8;
}

.risk-matrix-page .risk-matrix-criticality--elevated {
  border-left-color: #b24d16;
  background: #fff4ea;
}

.risk-matrix-page .risk-matrix-criticality--high,
.risk-matrix-page .risk-matrix-criticality--very-high {
  border-left-color: #a41320;
  background: #fff0f1;
}

.risk-matrix-page .risk-matrix-stars {
  color: #8a5c00;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.08em;
}

.risk-matrix-page .risk-matrix-reason-list,
.risk-matrix-page .risk-matrix-idea-list,
.risk-matrix-page .risk-matrix-details ul {
  display: grid;
  gap: 3px;
  margin: 7px 0 0;
  padding-left: 16px;
}

.risk-matrix-page .risk-matrix-reason-list li,
.risk-matrix-page .risk-matrix-idea-list li,
.risk-matrix-page .risk-matrix-details li {
  color: #44596a;
  font-size: 10px;
  line-height: 1.4;
}

.risk-matrix-page .risk-matrix-weather-legend {
  display: grid;
  gap: 2px;
  margin: 8px 0 0;
  padding: 7px;
  border: 1px solid #dbe3e9;
  border-radius: 6px;
  background: #fff;
  list-style: none;
}

.risk-matrix-page .risk-matrix-weather-legend li {
  color: #586b7b;
  font-size: 8px;
  line-height: 1.3;
}

.risk-matrix-page .risk-matrix-weather-legend b {
  color: #304657;
}

.risk-matrix-page .risk-matrix-weather-summary {
  display: grid;
  gap: 1px;
}

.risk-matrix-page .risk-matrix-weather-summary > span {
  color: var(--risk-matrix-muted);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.risk-matrix-page .risk-matrix-weather-summary > strong {
  color: #273b4b;
  font-size: 13px;
}

.risk-matrix-page .risk-matrix-weather-summary > small {
  color: var(--risk-matrix-muted);
  font-size: 9px;
}

.risk-matrix-page .risk-matrix-probabilistic-summary {
  display: grid;
  gap: 2px;
}

.risk-matrix-page .risk-matrix-probabilistic-summary > span {
  color: var(--risk-matrix-muted);
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
}

.risk-matrix-page .risk-matrix-probabilistic-summary > strong {
  color: #273b4b;
  font-size: 12px;
  line-height: 1.3;
}

.risk-matrix-page .risk-matrix-probabilistic-summary > small {
  color: var(--risk-matrix-muted);
  font-size: 9px;
}

.risk-matrix-page .risk-matrix-probabilistic-counts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 3px;
  margin: 7px 0 0;
}

.risk-matrix-page .risk-matrix-probabilistic-counts > div {
  display: grid;
  gap: 2px;
  min-width: 0;
  padding: 5px 3px;
  border: 1px solid #cbdce7;
  border-radius: 5px;
  background: #f3f8fc;
  text-align: center;
}

.risk-matrix-page .risk-matrix-probabilistic-counts dt {
  color: #526a7c;
  font-size: 7px;
  font-weight: 850;
  line-height: 1.2;
  text-transform: uppercase;
}

.risk-matrix-page .risk-matrix-probabilistic-counts dd {
  margin: 0;
  color: #173e59;
  font-size: 12px;
  font-weight: 900;
}

.risk-matrix-page .risk-matrix-band-counts,
.risk-matrix-page .risk-matrix-tier-counts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 3px;
  margin: 7px 0 0;
}

.risk-matrix-page .risk-matrix-band-counts > div,
.risk-matrix-page .risk-matrix-tier-counts > div {
  display: grid;
  gap: 1px;
  min-width: 0;
  padding: 5px 3px;
  border: 1px solid #d8e1e8;
  border-radius: 5px;
  background: #f8fafc;
  text-align: center;
}

.risk-matrix-page .risk-matrix-band-counts dt,
.risk-matrix-page .risk-matrix-tier-counts dt {
  color: #5a6c7b;
  font-size: 7px;
  font-weight: 850;
  line-height: 1.2;
  text-transform: uppercase;
}

.risk-matrix-page .risk-matrix-band-counts dd,
.risk-matrix-page .risk-matrix-tier-counts dd {
  margin: 0;
  color: #263746;
  font-size: 13px;
  font-weight: 900;
}

.risk-matrix-page .risk-matrix-band-counts .is-very-high,
.risk-matrix-page .risk-matrix-tier-counts .is-p1 {
  border-color: #e3b4b9;
  background: #fff0f1;
}

.risk-matrix-page .risk-matrix-band-counts .is-high,
.risk-matrix-page .risk-matrix-tier-counts .is-p2 {
  border-color: #efc5a8;
  background: #fff4ea;
}

.risk-matrix-page .risk-matrix-band-counts .is-moderate,
.risk-matrix-page .risk-matrix-tier-counts .is-p3 {
  border-color: #e6d29c;
  background: #fff9e8;
}

.risk-matrix-page .risk-matrix-band-counts .is-low,
.risk-matrix-page .risk-matrix-tier-counts .is-obs {
  border-color: #b9dcc7;
  background: #eefaf2;
}

.risk-matrix-page .risk-matrix-details {
  margin-top: 7px;
  border-top: 1px solid #e2e8ed;
  padding-top: 5px;
}

.risk-matrix-page .risk-matrix-details summary {
  color: var(--sie-cyan-ink);
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
  list-style-position: outside;
}

.risk-matrix-page .risk-matrix-details summary:hover {
  text-decoration: underline;
  text-underline-offset: 2px;
}

.risk-matrix-page .risk-matrix-details summary:focus-visible,
.risk-matrix-page .risk-matrix-hospital-list a:focus-visible {
  border-radius: 3px;
  outline: 3px solid rgb(0 107 128 / 28%);
  outline-offset: 2px;
}

.risk-matrix-page .risk-matrix-data-state,
.risk-matrix-page .risk-matrix-trend,
.risk-matrix-page .risk-matrix-source-state {
  display: inline-flex;
  align-items: center;
  min-height: 23px;
  padding: 3px 7px;
  border: 1px solid #ccd6de;
  border-radius: 999px;
  background: #f5f7f9;
  color: #405363;
  font-size: 9px;
  font-weight: 850;
}

.risk-matrix-page .risk-matrix-data-state.is-observed {
  border-color: #add5e2;
  background: var(--risk-matrix-observed);
  color: var(--sie-cyan-ink);
}

.risk-matrix-page .risk-matrix-data-state.is-conditional {
  border-color: #cbbce4;
  background: var(--risk-matrix-conditional);
  color: var(--risk-matrix-conditional-ink);
}

.risk-matrix-page .risk-matrix-data-state.is-unavailable {
  border-color: #cbd2d9;
  background: #f2f4f6;
  color: #596674;
}

.risk-matrix-page .risk-matrix-unavailable-note,
.risk-matrix-page .risk-matrix-zero-state,
.risk-matrix-page .risk-matrix-coverage-note,
.risk-matrix-page .risk-matrix-conditional-note,
.risk-matrix-page .risk-matrix-confidence {
  display: block;
  margin-top: 6px;
  color: var(--risk-matrix-muted);
  font-size: 9px;
  line-height: 1.4;
}

.risk-matrix-page .risk-matrix-conditional-note {
  padding-left: 7px;
  border-left: 2px solid #8063b0;
  color: #594777;
  font-weight: 700;
}

.risk-matrix-page .risk-matrix-alert-total {
  display: flex;
  align-items: baseline;
  gap: 5px;
  margin-bottom: 7px;
}

.risk-matrix-page .risk-matrix-alert-total strong {
  color: #273b4b;
  font-size: 18px;
}

.risk-matrix-page .risk-matrix-alert-total span {
  color: var(--risk-matrix-muted);
  font-size: 9px;
}

.risk-matrix-page .risk-matrix-alert-sources {
  display: grid;
  gap: 5px;
}

.risk-matrix-page .risk-matrix-alert-source {
  display: grid;
  gap: 1px;
  padding: 5px 6px;
  border: 1px solid #dde4ea;
  border-radius: 6px;
  background: #fafbfd;
}

.risk-matrix-page .risk-matrix-alert-source > span {
  color: #3e5263;
  font-size: 9px;
}

.risk-matrix-page .risk-matrix-alert-source > small {
  color: var(--risk-matrix-muted);
  font-size: 8px;
  line-height: 1.35;
}

.risk-matrix-page .risk-matrix-event-list {
  margin-top: 2px;
  font-style: italic;
  line-height: 1.35;
}

.risk-matrix-page .risk-matrix-hospital-list {
  display: grid;
  gap: 3px;
  margin: 7px 0 0;
  padding: 0 3px 0 16px;
}

.risk-matrix-page .risk-matrix-hospital-summary {
  display: block;
  color: #304657;
  font-size: 10px;
  line-height: 1.4;
}

.risk-matrix-page .risk-matrix-hospital-more {
  margin-top: 7px;
}

.risk-matrix-page .risk-matrix-hospital-more .risk-matrix-hospital-less-label,
.risk-matrix-page .risk-matrix-hospital-more[open] .risk-matrix-hospital-more-label {
  display: none;
}

.risk-matrix-page .risk-matrix-hospital-more[open] .risk-matrix-hospital-less-label {
  display: inline;
}

.risk-matrix-page .risk-matrix-hospital-list--remaining {
  margin-top: 5px;
}

.risk-matrix-page .risk-matrix-hospital-list li {
  display: grid;
  gap: 1px;
  padding: 5px 0;
  border-bottom: 1px solid #e3e8ed;
}

.risk-matrix-page .risk-matrix-hospital-list li:last-child {
  border-bottom: 0;
}

.risk-matrix-page .risk-matrix-hospital-list a,
.risk-matrix-page .risk-matrix-hospital-list strong {
  color: #075f73;
  font-size: 10px;
  font-weight: 850;
  line-height: 1.35;
}

.risk-matrix-page .risk-matrix-hospital-list a {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 2px;
}

.risk-matrix-page .risk-matrix-hospital-list span,
.risk-matrix-page .risk-matrix-hospital-list small {
  color: var(--risk-matrix-muted);
  font-size: 8px;
  line-height: 1.35;
}

.risk-matrix-page .risk-matrix-trend--worse {
  border-color: #e3b4b9;
  background: #fff0f1;
  color: #8f1722;
}

.risk-matrix-page .risk-matrix-trend--better {
  border-color: #b9dcc7;
  background: #eefaf2;
  color: #08783b;
}

.risk-matrix-page .risk-matrix-trend--stable {
  border-color: #bfd8e2;
  background: #eef8fb;
  color: #075f73;
}

.risk-matrix-page .risk-matrix-confidence strong {
  color: #3c4f5f;
}

.risk-matrix-page .risk-matrix-support-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.risk-matrix-page .risk-matrix-source-list {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.risk-matrix-page .risk-matrix-source-list > li {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  padding: 9px 10px;
  border: 1px solid #dce4ea;
  border-radius: 7px;
  background: #fafbfd;
}

.risk-matrix-page .risk-matrix-source-list > li > div {
  display: grid;
  gap: 2px;
  min-width: 0;
}

.risk-matrix-page .risk-matrix-source-list strong {
  color: #263746;
  font-size: 11px;
}

.risk-matrix-page .risk-matrix-source-list span,
.risk-matrix-page .risk-matrix-source-list small {
  color: var(--risk-matrix-muted);
  font-size: 9px;
  line-height: 1.4;
}

.risk-matrix-page .risk-matrix-source-state.is-current {
  border-color: #b9dcc7;
  background: #eefaf2;
  color: #08783b;
}

.risk-matrix-page .risk-matrix-source-state.is-stale {
  border-color: #e6d29c;
  background: #fff9e8;
  color: #7a4b00;
}

.risk-matrix-page .risk-matrix-source-state.is-unavailable {
  border-color: #cbd2d9;
  background: #f2f4f6;
  color: #596674;
}

.risk-matrix-page .risk-matrix-method-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 22px;
}

.risk-matrix-page .risk-matrix-method-list li {
  padding-left: 3px;
  color: #405363;
  font-size: 11px;
  line-height: 1.5;
}

.risk-matrix-page .risk-matrix-method-list li::marker {
  color: var(--sie-cyan-ink);
  font-weight: 850;
}

.risk-matrix-page .risk-matrix-compact-empty {
  min-height: 112px;
}

@media (max-width: 980px) {
  .risk-matrix-page .risk-matrix-intro {
    grid-template-columns: 1fr;
  }

  .risk-matrix-page .risk-matrix-support-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 620px) {
  .risk-matrix-page .risk-matrix-intro {
    gap: 16px;
    padding: 16px;
  }

  .risk-matrix-page .risk-matrix-overview {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .risk-matrix-page .risk-matrix-overview > div:last-child {
    grid-column: 1 / -1;
  }

  .risk-matrix-page .risk-matrix-heading {
    align-items: flex-start;
    padding: 14px;
  }

  .risk-matrix-page .risk-matrix-table {
    min-width: 1030px;
  }

  .risk-matrix-page .risk-matrix-label-column {
    width: 165px;
  }

  .risk-matrix-page .risk-matrix-day-column {
    width: 173px;
  }

  .risk-matrix-page .risk-matrix-table th,
  .risk-matrix-page .risk-matrix-table td {
    padding: 8px;
  }

  .risk-matrix-page .risk-matrix-source-list > li {
    align-items: stretch;
    flex-direction: column;
  }

  .risk-matrix-page .risk-matrix-source-state {
    align-self: flex-start;
  }
}

@media (prefers-contrast: more) {
  .risk-matrix-page .risk-matrix-table th,
  .risk-matrix-page .risk-matrix-table td,
  .risk-matrix-page .risk-matrix-criticality,
  .risk-matrix-page .risk-matrix-band-counts > div,
  .risk-matrix-page .risk-matrix-tier-counts > div {
    border-color: #52616e;
  }

  .risk-matrix-page .risk-matrix-table-wrap:focus-visible {
    box-shadow: inset 0 0 0 3px #000;
  }
}

@media (forced-colors: active) {
  .risk-matrix-page .risk-matrix-day-heading,
  .risk-matrix-page .risk-matrix-criticality,
  .risk-matrix-page .risk-matrix-data-state,
  .risk-matrix-page .risk-matrix-trend,
  .risk-matrix-page .risk-matrix-source-state {
    border: 1px solid CanvasText;
    forced-color-adjust: auto;
  }

  .risk-matrix-page .risk-matrix-corner,
  .risk-matrix-page .risk-matrix-row-heading {
    box-shadow: 1px 0 0 CanvasText;
  }
}

@media print {
  .risk-matrix-page .risk-matrix-table-wrap {
    overflow: visible;
  }

  .risk-matrix-page .risk-matrix-table {
    min-width: 0;
    font-size: 8px;
  }

  .risk-matrix-page .risk-matrix-corner,
  .risk-matrix-page .risk-matrix-row-heading {
    position: static;
  }

  .risk-matrix-page .risk-matrix-details:not([open]) > :not(summary) {
    display: block;
  }
}
/* Outras estruturas RS */
.other-rs-structures-page {
    display: grid;
    gap: 1rem;
}

.other-rs-structures-hero {
    align-items: center;
    background: linear-gradient(130deg, #eff6ff 0%, #f0fdf4 100%);
    border: 1px solid #dbeafe;
    border-radius: 18px;
    display: flex;
    justify-content: space-between;
    padding: 1.5rem;
}

.other-rs-structures-hero h1,
.other-rs-structures-hero p {
    margin-bottom: .35rem;
}

.other-rs-structures-note {
    margin: 0;
}

.other-rs-structures-panel,
.other-rs-structures-table-panel {
    display: grid;
    gap: 1rem;
}

.other-rs-structures-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: flex-end;
}

.other-rs-layer-grid {
    display: grid;
    gap: .55rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.other-rs-layer-card {
    align-items: center;
    background: #fff;
    border: 1px solid #dbe3ec;
    border-radius: 10px;
    cursor: pointer;
    display: grid;
    gap: .55rem;
    grid-template-columns: auto auto minmax(0, 1fr) auto;
    min-height: 58px;
    padding: .6rem .7rem;
}

.other-rs-layer-card:has(input:checked) {
    background: #f8fafc;
    border-color: #94a3b8;
}

.other-rs-layer-card.is-error {
    border-color: #fca5a5;
}

.other-rs-layer-card > a {
    font-size: .72rem;
}

.other-rs-layer-dot,
.other-rs-table-dot {
    background: var(--layer-color, #475569);
    border: 1px solid #fff;
    border-radius: 999px;
    box-shadow: 0 0 0 1px rgba(15, 23, 42, .2);
    display: inline-block;
    flex: 0 0 auto;
    height: 12px;
    width: 12px;
}

.other-rs-layer-label {
    display: grid;
    gap: .15rem;
    min-width: 0;
}

.other-rs-layer-label strong {
    font-size: .84rem;
    line-height: 1.2;
}

.other-rs-layer-label small {
    color: #64748b;
    font-size: .7rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.other-rs-layer-card.is-error small {
    color: #b91c1c;
}

.other-rs-structures-status:empty {
    display: none;
}

.other-rs-structures-status {
    background: #eff6ff;
    border-radius: 8px;
    color: #1e40af;
    padding: .65rem .8rem;
}

.other-rs-structures-status.is-error {
    background: #fef2f2;
    color: #991b1b;
}

.other-rs-structures-status.is-warning {
    background: #fffbeb;
    color: #92400e;
}

.other-rs-structures-map {
    background: #e2e8f0;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    height: min(62vh, 650px);
    min-height: 460px;
    overflow: hidden;
    z-index: 0;
}

.other-rs-structures-summary {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.other-rs-structures-summary article {
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    display: grid;
    gap: .2rem;
    padding: .75rem .9rem;
}

.other-rs-structures-summary span {
    color: #64748b;
    font-size: .75rem;
}

.other-rs-structures-summary strong {
    color: #0f172a;
    font-size: 1.05rem;
}

.other-rs-table-filters {
    align-items: end;
    display: grid;
    gap: .65rem;
    grid-template-columns: minmax(230px, 1fr) minmax(210px, 1fr);
}

.other-rs-table-filters label {
    display: grid;
    gap: .25rem;
}

.other-rs-table-filters label > span {
    color: #475569;
    font-size: .76rem;
    font-weight: 700;
}

.other-rs-structures-table {
    min-width: 880px;
    width: 100%;
}

.other-rs-structures-table tbody tr[tabindex] {
    cursor: pointer;
}

.other-rs-structures-table tbody tr[tabindex]:hover,
.other-rs-structures-table tbody tr[tabindex]:focus {
    background: #f1f5f9;
    outline: none;
}

.other-rs-layer-cell {
    align-items: center;
    display: flex;
    gap: .45rem;
    min-width: 150px;
}

.other-rs-table-dot {
    height: 10px;
    width: 10px;
}

.other-rs-table-footer {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.other-rs-table-footer > div {
    display: flex;
    gap: .5rem;
}

.other-rs-marker-popup {
    display: grid;
    gap: .28rem;
    line-height: 1.35;
    min-width: 220px;
}

.other-rs-marker-popup > strong {
    color: #0f172a;
    font-size: 1rem;
}

.other-rs-marker-popup > span {
    color: #475569;
}

.other-rs-popup-layer {
    color: #1d4ed8 !important;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

@media (max-width: 1180px) {
    .other-rs-layer-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .other-rs-structures-hero,
    .other-rs-structures-panel .section-heading,
    .other-rs-structures-table-panel .section-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .other-rs-structures-actions {
        justify-content: flex-start;
    }

    .other-rs-layer-grid,
    .other-rs-structures-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .other-rs-table-filters {
        grid-template-columns: 1fr;
        width: 100%;
    }

    .other-rs-structures-map {
        height: 58vh;
        min-height: 380px;
    }
}

@media (max-width: 520px) {
    .other-rs-layer-grid,
    .other-rs-structures-summary {
        grid-template-columns: 1fr;
    }

    .other-rs-structures-hero {
        padding: 1rem;
    }
}
/* Câmeras públicas online */
.public-cameras-page {
    display: grid;
    gap: 1rem;
}

.public-cameras-hero {
    align-items: center;
    background: linear-gradient(130deg, #eff6ff 0%, #faf5ff 100%);
    border: 1px solid #dbeafe;
    border-radius: 18px;
    display: flex;
    justify-content: space-between;
    padding: 1.5rem;
}

.public-cameras-hero h1,
.public-cameras-hero p {
    margin-bottom: .35rem;
}

.public-cameras-notice {
    margin: 0;
}

.public-cameras-summary {
    display: grid;
    gap: .75rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.public-cameras-summary article {
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    display: grid;
    gap: .2rem;
    padding: .8rem 1rem;
}

.public-cameras-summary span {
    color: #64748b;
    font-size: .76rem;
}

.public-cameras-summary strong {
    color: #0f172a;
    font-size: 1.2rem;
}

.public-cameras-summary .public-camera-summary-online {
    border-color: #86efac;
    background: #f0fdf4;
}

.public-cameras-summary .public-camera-summary-error {
    border-color: #fca5a5;
    background: #fef2f2;
}

.public-cameras-last-check {
    margin: -.35rem 0 0;
    text-align: right;
}

.public-cameras-map-panel,
.public-cameras-table-panel {
    display: grid;
    gap: 1rem;
}

.public-cameras-map-panel .section-heading {
    align-items: end;
}

.public-cameras-filters {
    display: grid;
    gap: .6rem;
    grid-template-columns: minmax(220px, 1.4fr) repeat(4, minmax(145px, 1fr));
    width: min(100%, 1050px);
}

.public-cameras-filters label {
    display: grid;
    gap: .25rem;
}

.public-cameras-filters label > span {
    color: #475569;
    font-size: .74rem;
    font-weight: 700;
}

.public-cameras-legend {
    display: flex;
    flex-wrap: wrap;
    gap: .55rem 1rem;
}

.public-cameras-legend span {
    align-items: center;
    color: #475569;
    display: inline-flex;
    font-size: .78rem;
    gap: .4rem;
}

.public-cameras-legend i,
.public-camera-table-dot {
    background: var(--camera-color, #475569);
    border: 1px solid #fff;
    border-radius: 999px;
    box-shadow: 0 0 0 1px rgba(15, 23, 42, .22);
    display: inline-block;
    height: 11px;
    width: 11px;
}

.public-camera-health-dot {
    border: 2px solid #fff;
    border-radius: 999px;
    box-shadow: 0 0 0 1px rgba(15, 23, 42, .2);
    display: inline-block;
    height: 11px;
    width: 11px;
}

.public-camera-health-dot--online { background: #16a34a; }
.public-camera-health-dot--error { background: #dc2626; }
.public-camera-health-dot--unknown { background: #94a3b8; }

.public-camera-health-legend:first-of-type {
    margin-left: .35rem;
}

.public-cameras-map {
    background: #e2e8f0;
    border: 1px solid #cbd5e1;
    border-radius: 12px;
    height: min(65vh, 680px);
    min-height: 480px;
    overflow: hidden;
    z-index: 0;
}

.public-camera-map-icon {
    background: transparent;
    border: 0;
}

.public-camera-map-icon > span {
    align-items: center;
    background: #475569;
    border: 2px solid #fff;
    border-radius: 50% 50% 50% 12px;
    box-shadow: 0 3px 10px rgba(15, 23, 42, .42);
    color: #fff;
    display: flex;
    height: 34px;
    justify-content: center;
    position: relative;
    transform: rotate(-45deg);
    transition: transform .15s ease, box-shadow .15s ease;
    width: 34px;
}

.public-camera-map-icon > span > b {
    border: 2px solid #fff;
    border-radius: 999px;
    bottom: -2px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, .4);
    height: 11px;
    position: absolute;
    right: -2px;
    width: 11px;
}

.public-camera-map-icon--status-online > span > b { background: #16a34a; }
.public-camera-map-icon--status-error > span > b { background: #dc2626; }
.public-camera-map-icon--status-unknown > span > b { background: #94a3b8; }

.public-camera-map-icon svg {
    fill: currentColor;
    height: 19px;
    transform: rotate(45deg);
    width: 19px;
}

.public-camera-map-icon:hover > span,
.public-camera-map-icon:focus > span {
    box-shadow: 0 5px 15px rgba(15, 23, 42, .55);
    transform: rotate(-45deg) scale(1.12);
}

.public-camera-map-icon--road > span { background: #ea580c; }
.public-camera-map-icon--traffic > span { background: #2563eb; }
.public-camera-map-icon--climate > span { background: #0891b2; }
.public-camera-map-icon--hydrology > span { background: #0f766e; }
.public-camera-map-icon--tourism > span { background: #7c3aed; }

.public-camera-modal {
    z-index: 3300;
}

.public-camera-modal-panel {
    height: min(88vh, 780px) !important;
    max-height: min(88vh, 780px) !important;
    width: min(100%, 1120px) !important;
}

.public-camera-modal-body {
    grid-template-rows: minmax(0, 1fr) auto;
    overflow: hidden;
}

.public-camera-modal-viewport {
    align-items: center;
    background: #0f172a;
    border-radius: 10px;
    display: flex;
    justify-content: center;
    min-height: 320px;
    overflow: hidden;
    position: relative;
}

.public-camera-modal-loading {
    color: #cbd5e1;
    left: 50%;
    margin: 0;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    z-index: 0;
}

.public-camera-modal-image,
.public-camera-modal-video,
.public-camera-modal-frame {
    background: #0f172a;
    border: 0;
    height: 100%;
    min-height: 0;
    object-fit: contain;
    position: relative;
    width: 100%;
    z-index: 1;
}

.public-camera-modal-frame {
    background: #fff;
}

.public-camera-modal-notice {
    margin: 0;
}

.public-camera-popup {
    display: grid;
    gap: .3rem;
    line-height: 1.35;
    min-width: 240px;
}

.public-camera-popup > strong {
    color: #0f172a;
    font-size: 1rem;
}

.public-camera-popup > span {
    color: #475569;
}

.public-camera-popup-category {
    color: #1d4ed8 !important;
    font-size: .7rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.public-camera-popup-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: .4rem;
}

.public-cameras-table {
    min-width: 1050px;
    width: 100%;
}

.public-cameras-table tbody tr[tabindex] {
    cursor: pointer;
}

.public-cameras-table tbody tr[tabindex]:hover,
.public-cameras-table tbody tr[tabindex]:focus {
    background: #f1f5f9;
    outline: none;
}

.public-camera-name-cell {
    align-items: center;
    display: flex;
    gap: .5rem;
    min-width: 200px;
}

.public-camera-table-dot {
    flex: 0 0 auto;
    height: 10px;
    width: 10px;
}

.public-camera-status {
    border-radius: 999px;
    display: inline-flex;
    font-size: .72rem;
    font-weight: 800;
    padding: .24rem .55rem;
    white-space: nowrap;
}

.public-camera-status--online {
    background: #dcfce7;
    color: #166534;
}

.public-camera-status--error {
    background: #fee2e2;
    color: #991b1b;
}

.public-camera-status--unknown {
    background: #e2e8f0;
    color: #475569;
}

.public-cameras-table-footer {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.public-cameras-table-footer > div {
    display: flex;
    gap: .5rem;
}

@media (max-width: 1100px) {
    .public-cameras-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 760px) {
    .public-cameras-hero,
    .public-cameras-map-panel .section-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .public-cameras-summary,
    .public-cameras-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-cameras-map {
        height: 58vh;
        min-height: 380px;
    }

    .public-camera-modal-panel {
        height: calc(100vh - 20px) !important;
        max-height: calc(100vh - 20px) !important;
    }

    .public-camera-modal-viewport {
        min-height: 240px;
    }
}

@media (max-width: 520px) {
    .public-cameras-summary,
    .public-cameras-filters {
        grid-template-columns: 1fr;
    }

    .public-cameras-hero {
        padding: 1rem;
    }
}

@media (max-width: 760px) {
  .system-alert-modal {
    padding: 10px;
  }

  .system-alert-modal .system-alert-modal-panel {
    max-height: calc(100vh - 20px);
  }

  .system-alert-modal .system-alert-modal-header {
    align-items: flex-start;
    padding: 16px;
  }

  .system-alert-modal .system-alert-modal-body {
    max-height: calc(100vh - 154px);
    padding: 0 16px 16px;
  }

  .system-alert-modal-summary {
    grid-template-columns: 1fr;
  }

  .system-alert-modal-summary > div,
  .system-alert-modal-summary .system-alert-modal-period {
    grid-column: auto;
    min-height: 0;
    padding: 12px;
  }

  .system-alert-modal-section-heading {
    align-items: flex-start;
  }

  .system-alert-modal .modal-actions {
    align-items: stretch;
    flex-direction: column-reverse;
    padding: 12px 16px;
  }

  .system-alert-modal .modal-actions .btn {
    width: 100%;
  }
}
/* Dados gerais de saúde — bases consultivas do Ministério da Saúde. */
.health-data-hero { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; background:linear-gradient(135deg,#f7fbff 0%,#fff 70%); border-top:4px solid #ef6c2c; }
.health-data-hero h2 { margin:.25rem 0 .5rem; }
.health-data-hero p { max-width:820px; margin:0; color:var(--muted-color,#5c6570); }
.health-data-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.health-data-card { display:flex; gap:16px; color:inherit; text-decoration:none; transition:transform .15s ease,box-shadow .15s ease; }
.health-data-card:hover { transform:translateY(-2px); box-shadow:0 10px 24px rgba(34,53,72,.10); }
.health-data-card h2 { margin:.2rem 0 .4rem; }
.health-data-card p { margin:.25rem 0; }
.health-data-card small { color:#67727d; }
.health-data-card-icon { display:grid; place-items:center; flex:0 0 48px; height:48px; border-radius:14px; background:#e9f2fb; color:#246293; font-weight:800; }
.health-data-card-icon.is-water { background:#e6f6f8; color:#0f7894; }
.health-data-roadmap { display:grid; gap:10px; }
.health-data-roadmap span { padding:12px 14px; border-radius:10px; background:#f5f7f9; color:#45515d; }
.health-data-load-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:12px; }
.health-data-load-card { display:grid; grid-template-columns:1fr auto; gap:8px 12px; align-items:start; }
.health-data-load-card small { grid-column:1/-1; color:#66717c; }
.health-data-load-card .health-data-load-error { color:#a33a2a; }
.health-data-metrics { grid-template-columns:repeat(5,minmax(0,1fr)); }
.health-data-attention { border-top:3px solid #c2410c; }
.health-data-filters { align-items:end; }
.health-data-map { min-height:470px; }
.health-data-page .table-wrap table { min-width:980px; }
@media (max-width:1100px) { .health-data-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .health-data-cards,.health-data-metrics { grid-template-columns:1fr; } .health-data-hero { flex-direction:column; } .health-data-map { min-height:380px; } }

/* Timeline operacional — fonte canônica de alertas e orientações do usuário. */
.operational-timeline-page { --timeline-line:#dce5ec; --timeline-ink:#17324a; }
.timeline-hero { position:relative; overflow:hidden; align-items:center; min-height:0; padding:13px 18px; background:linear-gradient(125deg,#fff 0%,#f5faff 58%,#fff4ed 100%); border-top:3px solid #ef6c2c; }
.timeline-hero::after { position:absolute; right:-70px; bottom:-100px; width:260px; height:260px; border-radius:50%; background:rgba(239,108,44,.07); content:""; pointer-events:none; }
.timeline-hero > * { position:relative; z-index:1; }
.timeline-hero h1 { margin:0 0 2px; color:var(--timeline-ink); font-size:1.55rem; }
.timeline-hero p { max-width:780px; margin:0; color:#647382; font-size:.78rem; line-height:1.4; }
.timeline-scope-card { display:flex; align-items:center; gap:8px; flex:0 0 auto; max-width:430px; padding:8px 11px; border:1px solid #cfe0ec; border-radius:11px; background:rgba(255,255,255,.9); box-shadow:0 5px 14px rgba(31,72,104,.06); }
.timeline-scope-card > .ui-icon-glyph { flex:0 0 18px; width:18px; height:18px; color:#2876a8; }
.timeline-scope-card div { display:grid; gap:3px; }
.timeline-scope-card strong { color:#1f4059; font-size:.92rem; }
.timeline-scope-card small { color:#617282; font-size:.76rem; line-height:1.45; }
.timeline-summary-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.timeline-summary-grid article { display:grid; gap:4px; min-height:116px; padding:17px 18px; border:1px solid #e1e7ec; border-radius:15px; background:#fff; box-shadow:0 6px 18px rgba(32,52,70,.05); }
.timeline-summary-grid article::before { width:34px; height:4px; border-radius:4px; background:#4482ad; content:""; }
.timeline-summary-grid article.is-critical::before { background:#c53d32; }
.timeline-summary-grid article.is-ai::before { background:linear-gradient(90deg,#6e4ec2,#c0549b); }
.timeline-summary-grid span { color:#637180; font-size:.75rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.timeline-summary-grid strong { color:#18334a; font-size:1.9rem; line-height:1; }
.timeline-summary-grid small { color:#74818d; }
.timeline-filter-panel { padding:11px 13px 13px; }
.timeline-quality-panel { display:grid; gap:10px; padding:13px; border-left:4px solid #2f7fac; }
.timeline-quality-heading { display:flex; align-items:end; justify-content:space-between; gap:18px; }
.timeline-quality-heading h2 { margin:2px 0 0; color:#17324a; font-size:1.05rem; }
.timeline-quality-heading p,.timeline-quality-note { margin:0; color:#647382; font-size:.7rem; line-height:1.45; }
.timeline-quality-heading p { max-width:520px; text-align:right; }
.timeline-quality-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:7px; }
.timeline-quality-grid article { display:grid; align-content:start; min-width:0; padding:9px 10px; border:1px solid #d9e5ec; border-radius:9px; background:#f8fbfd; }
.timeline-quality-grid small { color:#5b7080; font-size:.61rem; font-weight:750; letter-spacing:.025em; text-transform:uppercase; }
.timeline-quality-grid strong { margin-top:2px; overflow-wrap:anywhere; color:#17324a; font-size:1rem; line-height:1.2; }
.timeline-quality-grid span { margin-top:2px; color:#71808b; font-size:.61rem; line-height:1.35; }
.timeline-quality-note { padding-top:8px; border-top:1px solid #e2e9ee; }
.timeline-filter-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:7px; }
.timeline-filter-heading h2 { margin:0; color:#607080; font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; }
.timeline-filters { display:grid; grid-template-columns:minmax(220px,1.7fr) repeat(4,minmax(135px,1fr)) auto; gap:10px; align-items:end; }
.timeline-filters label { display:grid; gap:6px; min-width:0; }
.timeline-filters label > span { color:#526170; font-size:.72rem; font-weight:700; letter-spacing:.035em; text-transform:uppercase; }
.timeline-filters :is(input,select) { width:100%; min-height:38px; border:1px solid #cfd9e1; border-radius:9px; background:#fff; color:#233b4e; padding:7px 10px; }
.timeline-filters :is(input,select):focus { border-color:#2f7fac; outline:3px solid rgba(47,127,172,.13); }
.timeline-filters .btn { min-height:38px; }
.timeline-guidance { display:flex; align-items:flex-start; gap:11px; padding:13px 16px; border:1px solid #cde0ed; border-radius:13px; background:#f4f9fd; color:#34546c; }
.timeline-guidance > .ui-icon-glyph { flex:0 0 21px; width:21px; height:21px; margin-top:1px; color:#2775a4; }
.timeline-guidance p { margin:0; font-size:.84rem; line-height:1.55; }
.timeline-workspace { display:grid; grid-template-columns:1fr; gap:14px; align-items:start; }
.timeline-feed-section { grid-row:2; min-width:0; width:100%; }
.timeline-feed-header { display:flex; align-items:end; justify-content:space-between; gap:14px; margin-bottom:14px; padding:0 4px; }
.timeline-feed-header h2 { margin:2px 0 0; color:#1b354b; font-size:1.35rem; }
.timeline-feed-header > span { color:#677686; font-size:.8rem; font-weight:600; }
.operational-timeline { position:relative; display:grid; gap:10px; padding-left:38px; }
.operational-timeline::before { position:absolute; top:18px; bottom:18px; left:16px; width:2px; border-radius:2px; background:var(--timeline-line); content:""; }
.timeline-entry { position:relative; --timeline-accent:#4b86aa; }
.timeline-entry.is-critical { --timeline-accent:#c7382f; }
.timeline-entry.is-high { --timeline-accent:#df6c22; }
.timeline-entry.is-attention { --timeline-accent:#d59e19; }
.timeline-entry-marker { position:absolute; top:12px; left:-38px; z-index:2; display:grid; place-items:center; width:34px; height:34px; border:4px solid #f5f7f9; border-radius:50%; background:#eaf3f9; color:#2878a9; }
.timeline-entry-marker .ui-icon-glyph { width:15px; height:15px; }
.timeline-entry.is-critical .timeline-entry-marker { background:#fde9e7; color:#b93229; }
.timeline-entry.is-high .timeline-entry-marker { background:#fff0e3; color:#bd5a18; }
.timeline-entry.is-attention .timeline-entry-marker { background:#fff7d9; color:#9a6c00; }
.timeline-entry.is-ai .timeline-entry-marker { background:#f1eafd; color:#6b45b7; }
.timeline-entry-card { overflow:hidden; border:1px solid #cfe1ec; border-left:3px solid #4b86aa; border-radius:12px; background:#f4faff; box-shadow:0 5px 15px rgba(28,51,69,.055); }
.timeline-entry.is-critical .timeline-entry-card { border-color:#edc3bf; border-left-color:#c7382f; background:#fff0ef; }
.timeline-entry.is-high .timeline-entry-card { border-color:#f0d1b9; border-left-color:#df6c22; background:#fff5ed; }
.timeline-entry.is-attention .timeline-entry-card { border-color:#eadba7; border-left-color:#d59e19; background:#fffbea; }
.timeline-entry.is-information .timeline-entry-card { border-color:#cfe1ec; border-left-color:#4b86aa; background:#f4faff; }
.timeline-entry.is-ai .timeline-entry-card { box-shadow:0 7px 22px rgba(91,61,145,.1); }
.timeline-entry.is-new .timeline-entry-card { animation:timeline-card-enter .35s ease-out both,timeline-border-pulse 1.05s ease-out 3; }
.timeline-entry-header { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 13px 4px; }
.timeline-entry-header time { color:#71808e; font-size:.66rem; white-space:nowrap; }
.timeline-entry-source { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }
.timeline-source-badge,.timeline-status-badge { display:inline-flex; align-items:center; min-height:21px; padding:2px 7px; border-radius:999px; font-size:.6rem; font-weight:700; letter-spacing:.02em; }
.timeline-source-badge.is-realtime { background:#e9f4fa; color:#17638f; }
.timeline-source-badge.is-ai { background:#f0eafa; color:#6841ad; }
.timeline-source-badge.is-history { background:#edf0f2; color:#586571; }
.timeline-status-badge { background:#f1f2f3; color:#6e767d; }
.timeline-entry-meta { display:flex; flex-wrap:wrap; align-items:center; gap:7px; padding:0 13px 6px; color:#74818c; font-size:.65rem; }
.timeline-criticality { display:inline-flex; align-items:center; gap:5px; font-weight:700; }
.timeline-criticality .ui-icon-glyph { width:13px; height:13px; }
.timeline-criticality.is-critical { color:#b53229; }
.timeline-criticality.is-high { color:#bc5617; }
.timeline-criticality.is-attention { color:#896100; }
.timeline-criticality.is-information { color:#286f9b; }
.timeline-location-list { display:flex; align-items:center; flex-wrap:wrap; gap:5px; padding:0 13px 6px; color:#486173; }
.timeline-location-list > .ui-icon-glyph { flex:0 0 14px; width:14px; height:14px; color:#4a7797; }
.timeline-location-list span { padding:2px 7px; border-radius:999px; background:#f0f4f7; font-size:.64rem; font-weight:600; }
.timeline-entry-card h3 { margin:0; padding:1px 13px 7px; color:#172f43; font-size:.9rem; line-height:1.32; }
.timeline-entry-summary { padding:0 13px 9px; }
.timeline-entry-summary strong,.timeline-action strong { display:block; margin-bottom:3px; color:#42596b; font-size:.62rem; letter-spacing:.03em; text-transform:uppercase; }
.timeline-entry-summary p,.timeline-action p,.timeline-explanation p { margin:0; color:#334b5d; font-size:.76rem; line-height:1.48; }
.timeline-explanation { margin:0 13px 9px; border:1px solid #d7e3eb; border-radius:9px; background:#f7fafc; }
.timeline-explanation summary { display:flex; align-items:center; gap:7px; padding:8px 10px; color:#2f5874; font-size:.69rem; font-weight:700; cursor:pointer; list-style:none; }
.timeline-explanation summary::-webkit-details-marker { display:none; }
.timeline-explanation summary::after { margin-left:auto; content:"+"; font-size:1rem; }
.timeline-explanation[open] summary::after { content:"−"; }
.timeline-explanation summary .ui-icon-glyph { width:14px; height:14px; }
.timeline-explanation p { padding:0 10px 9px; color:#496273; }
.timeline-entry.is-ai .timeline-explanation { border-color:#ddcff3; background:#faf7ff; }
.timeline-entry.is-ai .timeline-explanation summary { color:#6845a7; }
.timeline-action { display:flex; gap:8px; margin:0 13px 9px; padding:9px 10px; border-radius:9px; background:#fff6ee; color:#b5561b; }
.timeline-action > .ui-icon-glyph { flex:0 0 16px; width:16px; height:16px; margin-top:1px; }
.timeline-action strong { color:#9a4816; }
.timeline-action p { color:#593f2e; }
.timeline-entry-footer { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:8px 13px; border-top:1px solid rgba(91,111,126,.15); background:rgba(255,255,255,.48); }
.timeline-entry-footer > span { color:#75818c; font-size:.61rem; }
.timeline-entry-footer a { color:#276f9b; font-size:.67rem; font-weight:700; text-decoration:none; white-space:nowrap; }
.timeline-entry-footer a:hover { text-decoration:underline; }
.timeline-empty { display:grid; justify-items:center; gap:8px; padding:42px 20px; text-align:center; }
.timeline-empty > .ui-icon-glyph { width:38px; height:38px; color:#4a9070; }
.timeline-empty small { max-width:600px; color:#6d7b87; line-height:1.5; }
.timeline-feed-section .pagination-bar { margin-top:10px; }
.timeline-table-wrap { width:100%; overflow-x:auto; border:1px solid #dbe4ea; border-radius:12px; background:#fff; box-shadow:0 5px 15px rgba(28,51,69,.045); }
.timeline-events-table { width:100%; min-width:1040px; border-collapse:collapse; table-layout:fixed; color:#263f52; font-size:.72rem; }
.timeline-events-table th { padding:7px 9px; border-bottom:1px solid #ccd9e2; background:#edf4f8; color:#4b6172; font-size:.61rem; letter-spacing:.035em; text-align:left; text-transform:uppercase; white-space:nowrap; }
.timeline-events-table td { overflow:hidden; padding:6px 9px; border-bottom:1px solid #e5ebef; text-overflow:ellipsis; white-space:nowrap; }
.timeline-events-table tbody tr { --timeline-accent:#4c85a8; cursor:pointer; transition:background .14s ease; }
.timeline-events-table tbody tr:last-child td { border-bottom:0; }
.timeline-events-table tbody tr:hover { background:#f2f7fa; }
.timeline-events-table tbody tr:focus-visible { outline:3px solid rgba(47,127,172,.2); outline-offset:-3px; }
.timeline-events-table tbody tr[aria-expanded="true"] { box-shadow:inset 0 -2px 0 var(--timeline-accent); }
.timeline-events-table tbody tr.is-critical { --timeline-accent:#c5382f; background:#fff6f5; }
.timeline-events-table tbody tr.is-high { --timeline-accent:#dd6c23; background:#fff9f4; }
.timeline-events-table tbody tr.is-attention { --timeline-accent:#d3a01c; background:#fffdf5; }
.timeline-events-table tbody tr.is-new { animation:timeline-row-enter .35s ease-out both; }
.timeline-events-table td:first-child { border-left:3px solid var(--timeline-accent); color:#657582; }
.timeline-events-table th:nth-child(1),.timeline-events-table td:nth-child(1) { width:11%; }
.timeline-events-table th:nth-child(2),.timeline-events-table td:nth-child(2) { width:8%; }
.timeline-events-table th:nth-child(3),.timeline-events-table td:nth-child(3) { width:11%; }
.timeline-events-table th:nth-child(4),.timeline-events-table td:nth-child(4) { width:22%; }
.timeline-events-table th:nth-child(5),.timeline-events-table td:nth-child(5) { width:28%; }
.timeline-events-table th:nth-child(6),.timeline-events-table td:nth-child(6) { width:12%; }
.timeline-events-table th:nth-child(7),.timeline-events-table td:nth-child(7) { width:8%; }
.timeline-table-severity,.timeline-table-status { display:inline-flex; align-items:center; padding:2px 6px; border-radius:999px; background:#edf3f7; color:#4c6578; font-size:.61rem; font-weight:750; }
.timeline-table-severity.is-critical { background:#fde5e2; color:#ad3028; }
.timeline-table-severity.is-high { background:#ffeadb; color:#af5017; }
.timeline-table-severity.is-attention { background:#fff3c7; color:#846000; }
.timeline-table-severity.is-information { background:#e6f3fa; color:#236a94; }
.timeline-table-status.is-active { background:#e6f5ed; color:#277453; }
.timeline-table-status.is-human { background:#dff4e9; color:#166b43; }
.timeline-table-status.needs-review { background:#fff0c7; color:#835e00; box-shadow:inset 0 0 0 1px #e7c66a; }
.timeline-table-indicator { display:flex; align-items:center; gap:6px; min-width:0; }
.timeline-table-indicator b:first-child { display:grid; flex:0 0 20px; place-items:center; width:20px; height:20px; border-radius:6px; background:color-mix(in srgb,var(--timeline-accent) 13%,white); color:var(--timeline-accent); font-size:.72rem; }
.timeline-table-indicator strong { overflow:hidden; color:var(--timeline-accent); font-size:.7rem; text-overflow:ellipsis; white-space:nowrap; }
.timeline-table-title { color:#18344a; font-weight:700; }
.timeline-table-reason { color:#40596b; }
.timeline-table-place { color:#587083; }
.timeline-table-detail-row[hidden] { display:none; }
.timeline-events-table .timeline-table-detail-row > td { padding:0; border-left:3px solid var(--timeline-accent,#4c85a8); background:#f8fafb; white-space:normal; }
.timeline-table-detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; padding:10px 12px 11px; }
.timeline-table-detail-grid section { min-width:0; padding:9px 10px; border:1px solid #dce5eb; border-radius:8px; background:#fff; }
.timeline-table-detail-grid section.is-action { border-color:#efd4bf; background:#fff8f2; }
.timeline-table-detail-grid section.is-reference { grid-column:1/-1; padding-block:7px; background:#f3f8fb; }
.timeline-table-detail-grid strong { display:block; margin-bottom:3px; color:#496174; font-size:.61rem; letter-spacing:.025em; text-transform:uppercase; }
.timeline-table-detail-grid p { margin:0; color:#344e60; font-size:.71rem; line-height:1.45; }
.timeline-table-detail-grid > a { grid-column:1/-1; justify-self:end; color:#246f9d; font-size:.68rem; font-weight:750; text-decoration:none; }
.timeline-table-detail-grid > a:hover { text-decoration:underline; }
.timeline-table-detail-grid > a.timeline-episode-link { padding:6px 9px; border-radius:7px; background:#eaf4fa; text-decoration:none; }
.timeline-live-panel { position:relative; top:auto; grid-row:1; display:grid; gap:10px; padding:14px; border:1px solid #dfe6eb; border-radius:14px; background:#fff; box-shadow:0 8px 24px rgba(29,52,70,.07); }
.timeline-live-header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.timeline-live-header h2 { margin:2px 0 0; color:#19344b; font-size:1.22rem; }
.timeline-live-actions { display:flex; align-items:center; gap:12px; }
.timeline-live-actions .btn { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.timeline-live-actions .ui-icon-glyph { width:15px; height:15px; }
.timeline-export-feedback { min-height:0; color:#2e7658; font-size:.7rem; font-weight:700; }
.timeline-export-feedback:empty { display:none; }
.timeline-export-feedback.is-error { color:#ae342d; }
.timeline-live-pulse { position:relative; width:11px; height:11px; border-radius:50%; background:#2c9b67; box-shadow:0 0 0 5px rgba(44,155,103,.13); }
.timeline-live-pulse::after { position:absolute; inset:-5px; border:1px solid rgba(44,155,103,.35); border-radius:50%; content:""; animation:timeline-pulse 2s ease-out infinite; }
@keyframes timeline-pulse { 0%{transform:scale(.75);opacity:1} 100%{transform:scale(1.5);opacity:0} }
.timeline-live-intro { margin:0; color:#607181; font-size:.79rem; line-height:1.5; }
.timeline-refresh-status { display:grid; grid-template-columns:auto 1fr; gap:9px; align-items:center; padding:10px 11px; border:1px solid #d8e5ed; border-radius:11px; background:#f7fafc; }
.timeline-refresh-status > span .ui-icon-glyph { width:18px; height:18px; color:#32769f; }
.timeline-refresh-status div { display:grid; gap:1px; }
.timeline-refresh-status strong { color:#38556a; font-size:.72rem; }
.timeline-refresh-status small { color:#75838e; font-size:.66rem; }
.timeline-refresh-status button { grid-column:1/-1; justify-self:start; padding:0; border:0; background:transparent; color:#236f9e; font-size:.68rem; font-weight:700; cursor:pointer; }
.timeline-refresh-status button:hover { text-decoration:underline; }
.timeline-active-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); grid-auto-flow:dense; gap:7px; align-items:stretch; }
.timeline-active-card { display:grid; align-content:start; gap:4px; min-width:0; max-width:100%; min-height:84px; overflow:hidden; padding:8px 9px; border:1px solid #cfe1ec; border-top:3px solid #4c85a8; border-radius:10px; background:#f1f8fc; cursor:pointer; transition:transform .16s ease,box-shadow .16s ease; }
.timeline-active-card:hover { transform:translateY(-2px); box-shadow:0 7px 15px rgba(34,59,77,.13); }
.timeline-active-card:focus-visible { outline:3px solid color-mix(in srgb,var(--timeline-accent,#4c85a8) 32%,transparent); outline-offset:2px; }
.timeline-active-card.is-critical { --timeline-accent:#c5382f; border-color:#e8b8b3; border-top-color:#c5382f; background:#fde9e7; }
.timeline-active-card.is-high { --timeline-accent:#dd6c23; border-color:#edc9ad; border-top-color:#dd6c23; background:#fff0e3; }
.timeline-active-card.is-attention { --timeline-accent:#d3a01c; border-color:#e8d594; border-top-color:#d3a01c; background:#fff7d9; }
.timeline-active-card.is-information { --timeline-accent:#4c85a8; border-color:#cfe1ec; border-top-color:#4c85a8; background:#edf7fc; }
.timeline-active-card.is-new { animation:timeline-card-enter .3s ease-out both,timeline-border-pulse 1.05s ease-out 3; }
.timeline-active-card-top { display:flex; flex-wrap:wrap; align-items:center; gap:4px 5px; min-width:0; max-width:100%; color:#74818c; font-size:.6rem; }
.timeline-active-card-top span { min-width:0; color:#4e6475; font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.timeline-active-card-top .timeline-active-kind-icon { display:grid; place-items:center; width:21px; height:21px; border-radius:7px; background:rgba(255,255,255,.68); color:var(--timeline-accent,#4c85a8); font-size:.8rem; line-height:1; }
.timeline-active-card-top time { min-width:0; margin-left:auto; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.timeline-active-metric { min-width:0; max-width:100%; overflow-wrap:anywhere; color:var(--timeline-accent,#356f91); font-size:.82rem; font-weight:850; line-height:1.15; }
.timeline-active-card > strong { display:-webkit-box; min-width:0; max-width:100%; overflow:hidden; overflow-wrap:anywhere; word-break:break-word; color:#253d51; font-size:.7rem; line-height:1.3; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.timeline-active-card.is-critical > strong { font-size:.77rem; font-weight:750; }
.timeline-active-card > small { min-width:0; max-width:100%; overflow:hidden; color:#78848e; font-size:.61rem; text-overflow:ellipsis; white-space:nowrap; }
.timeline-active-place { display:block; color:#4b6578 !important; }
.timeline-active-place .ui-icon-glyph { flex:0 0 13px; width:13px; height:13px; }
.timeline-active-more { display:flex; grid-column:1/-1; justify-content:space-between; padding:9px 10px; border-radius:10px; background:#edf5fa; color:#246d99; font-size:.7rem; font-weight:700; text-decoration:none; }
.timeline-active-more:hover { background:#e3f0f8; }
.timeline-active-empty { display:flex; align-items:flex-start; gap:9px; padding:13px; border-radius:11px; background:#edf8f2; color:#357658; }
.timeline-active-empty > .ui-icon-glyph { flex:0 0 18px; width:18px; height:18px; }
.timeline-active-empty span { display:grid; gap:2px; }
.timeline-active-empty strong { font-size:.76rem; }
.timeline-active-empty small { color:#628074; font-size:.66rem; line-height:1.4; }
.timeline-live-panel > footer { padding-top:10px; border-top:1px solid #e6ebef; color:#7b8791; font-size:.63rem; }
.timeline-refresh-status.is-loading { opacity:.62; }
.has-timeline-modal { overflow:hidden; }
.timeline-alert-modal[hidden] { display:none; }
.timeline-alert-modal { position:fixed; z-index:1200; inset:0; display:grid; place-items:center; padding:20px; background:rgba(14,30,43,.58); backdrop-filter:blur(3px); }
.timeline-alert-modal-dialog { position:relative; display:grid; gap:15px; width:min(680px,100%); max-height:min(760px,calc(100vh - 40px)); overflow:auto; padding:22px; border-top:5px solid var(--timeline-modal-accent,#4c85a8); border-radius:17px; background:#fff; box-shadow:0 24px 70px rgba(7,23,35,.3); }
.timeline-alert-modal.is-critical { --timeline-modal-accent:#c5382f; }
.timeline-alert-modal.is-high { --timeline-modal-accent:#dd6c23; }
.timeline-alert-modal.is-attention { --timeline-modal-accent:#d3a01c; }
.timeline-alert-modal.is-information { --timeline-modal-accent:#4c85a8; }
.timeline-alert-modal-close { position:absolute; top:10px; right:12px; display:grid; place-items:center; width:34px; height:34px; padding:0; border:0; border-radius:50%; background:#eef3f6; color:#405767; font-size:1.35rem; line-height:1; cursor:pointer; }
.timeline-alert-modal-close:hover { background:#e2eaef; }
.timeline-alert-modal-header { display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:start; padding-right:34px; }
.timeline-alert-modal-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:13px; background:color-mix(in srgb,var(--timeline-modal-accent) 14%,white); color:var(--timeline-modal-accent); font-size:1.25rem; }
.timeline-alert-modal-header h2 { margin:4px 0 0; color:#19344b; font-size:1.22rem; line-height:1.35; }
.timeline-alert-modal-meta { display:flex; flex-wrap:wrap; gap:7px; }
.timeline-alert-modal-meta span { padding:4px 8px; border-radius:999px; background:#eef3f6; color:#506575; font-size:.72rem; }
.timeline-alert-modal-highlight { color:var(--timeline-modal-accent); font-size:1.35rem; line-height:1.15; }
.timeline-alert-modal-highlight[hidden] { display:none; }
.timeline-alert-modal section { padding:12px 13px; border:1px solid #dce6ec; border-radius:11px; background:#f8fafb; }
.timeline-alert-modal section[hidden] { display:none; }
.timeline-alert-modal section strong { display:block; margin-bottom:5px; color:#466075; font-size:.72rem; letter-spacing:.03em; text-transform:uppercase; }
.timeline-alert-modal section p { margin:0; color:#314b5e; font-size:.86rem; line-height:1.6; white-space:pre-line; }
.timeline-alert-modal .timeline-alert-modal-action { border-color:#efd4bf; background:#fff7f0; }
.timeline-alert-modal .timeline-alert-modal-action strong { color:#a24e19; }
.timeline-alert-modal-dialog > footer { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; padding-top:2px; }
@keyframes timeline-card-enter { from{opacity:0;transform:translateY(9px)} to{opacity:1;transform:translateY(0)} }
@keyframes timeline-row-enter { from{opacity:0;background:#e3f4fb} to{opacity:1} }
@keyframes timeline-border-pulse { 0%,100%{box-shadow:0 0 0 0 transparent} 45%{box-shadow:0 0 0 3px var(--timeline-accent)} }
@media (max-width:1180px) {
  .timeline-workspace { grid-template-columns:1fr; }
  .timeline-quality-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .timeline-filters { grid-template-columns:repeat(3,minmax(150px,1fr)); }
  .timeline-search { grid-column:span 2; }
}
@media (max-width:980px) {
  .timeline-workspace { grid-template-columns:1fr; }
  .timeline-live-panel { position:relative; top:auto; grid-row:1; }
  .timeline-active-list { grid-template-columns:repeat(auto-fill,minmax(145px,1fr)); }
  .timeline-live-panel > footer,.timeline-refresh-status { grid-column:1/-1; }
}
@media (max-width:760px) {
  .timeline-hero { align-items:flex-start; flex-direction:column; }
  .timeline-scope-card { flex-basis:auto; width:100%; }
  .timeline-summary-grid { grid-template-columns:1fr 1fr; }
  .timeline-quality-heading { align-items:flex-start; flex-direction:column; gap:5px; }
  .timeline-quality-heading p { text-align:left; }
  .timeline-quality-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .timeline-filters { grid-template-columns:1fr 1fr; }
  .timeline-search { grid-column:1/-1; }
  .timeline-filters .btn { grid-column:1/-1; }
  .timeline-events-table { min-width:900px; }
  .timeline-events-table th:nth-child(7),.timeline-events-table td:nth-child(7) { display:none; }
  .timeline-active-list { grid-template-columns:repeat(auto-fill,minmax(140px,1fr)); }
  .timeline-table-detail-grid { grid-template-columns:1fr; }
  .timeline-live-header { align-items:flex-start; }
  .timeline-live-actions { align-items:flex-end; flex-direction:column-reverse; }
}
@media (max-width:480px) {
  .timeline-summary-grid,.timeline-quality-grid,.timeline-filters { grid-template-columns:1fr; }
  .timeline-search { grid-column:auto; }
  .timeline-filter-heading { align-items:flex-start; flex-direction:column; }
  .timeline-events-table { min-width:720px; }
  .timeline-events-table th:nth-child(6),.timeline-events-table td:nth-child(6) { display:none; }
  .timeline-active-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (prefers-reduced-motion:reduce) {
  .timeline-live-pulse::after,.timeline-entry.is-new .timeline-entry-card,.timeline-active-card.is-new { animation:none; }
}

/* Histórico anual consolidado de cada estabelecimento. */
.establishment-journey { display:grid; gap:20px; overflow:hidden; order:100; }
.establishment-journey-heading { align-items:flex-end; }
.establishment-year-filter { display:flex; align-items:center; gap:8px; }
.establishment-year-filter label { color:#516777; font-size:.78rem; font-weight:750; }
.establishment-year-filter select { min-width:104px; padding:8px 34px 8px 10px; border:1px solid #cbd9e2; border-radius:9px; background:#fff; }
.establishment-journey-summary { display:grid; grid-template-columns:repeat(7,minmax(110px,1fr)); gap:10px; }
.establishment-journey-summary article { display:grid; grid-template-columns:30px 1fr; gap:1px 8px; align-items:center; min-width:0; padding:12px; border:1px solid #dce7ed; border-radius:12px; background:#f8fbfc; }
.establishment-journey-summary article > span { display:grid; grid-row:1/3; place-items:center; width:30px; height:30px; border-radius:9px; background:#e6f1f7; color:#256b94; }
.establishment-journey-summary .ui-icon-glyph { width:17px; height:17px; }
.establishment-journey-summary strong { min-width:0; color:#183b53; font-size:1.05rem; line-height:1.15; }
.establishment-journey-summary small { color:#667986; font-size:.68rem; line-height:1.25; }
.establishment-journey-summary .is-burden.is-high { border-color:#efc6c2; background:#fff2f0; }
.establishment-journey-summary .is-burden.is-high > span { background:#f9d9d5; color:#b63831; }
.establishment-journey-summary .is-burden.is-medium { border-color:#efd9ad; background:#fff8e9; }
.establishment-journey-insights { display:grid; grid-template-columns:minmax(0,2fr) minmax(240px,1fr); gap:14px; }
.establishment-journey-insights > article { min-width:0; padding:15px; border:1px solid #e0e8ed; border-radius:12px; background:#fff; }
.establishment-journey-insights h3,.establishment-journey-list h3 { margin:0 0 12px; color:#27475d; font-size:.9rem; }
.establishment-month-chart { display:grid; grid-template-columns:repeat(12,minmax(24px,1fr)); gap:6px; align-items:end; height:150px; }
.establishment-month-chart > div { display:grid; grid-template-rows:105px auto auto; gap:3px; min-width:0; text-align:center; }
.establishment-month-chart span { display:flex; align-items:flex-end; justify-content:center; overflow:hidden; border-radius:6px; background:#edf3f6; }
.establishment-month-chart i { display:block; width:70%; min-height:3px; border-radius:5px 5px 2px 2px; background:linear-gradient(180deg,#2384b7,#195e85); }
.establishment-month-chart b,.establishment-month-chart small { overflow:hidden; color:#637886; font-size:.62rem; text-overflow:ellipsis; }
.establishment-recurring-list { display:grid; gap:7px; margin:0; padding:0; list-style:none; }
.establishment-recurring-list li { display:flex; justify-content:space-between; gap:10px; padding:8px 10px; border-radius:8px; background:#f3f7f9; color:#405b6e; font-size:.75rem; }
.establishment-recurring-list strong { color:#24485f; white-space:nowrap; }
.establishment-journey-list { display:grid; gap:10px; }
.establishment-journey-item { display:grid; grid-template-columns:36px minmax(0,1fr); gap:11px; padding:13px; border:1px solid #dfe8ed; border-left:4px solid #6f91a6; border-radius:11px; background:#fff; }
.establishment-journey-item.is-ocorrencia { border-left-color:#d17b2d; }
.establishment-journey-item.is-acao { border-left-color:#2b7ca5; }
.establishment-journey-item.is-alerta { border-left-color:#c84840; }
.establishment-journey-item.is-confirmacao { border-left-color:#378263; }
.establishment-journey-marker { display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:#eef4f7; color:#315f79; }
.establishment-journey-marker .ui-icon-glyph { width:18px; height:18px; }
.establishment-journey-item header,.establishment-journey-item footer { display:flex; flex-wrap:wrap; gap:6px 12px; align-items:center; }
.establishment-journey-item header span { color:#537184; font-size:.66rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.establishment-journey-item time { margin-left:auto; color:#768791; font-size:.7rem; }
.establishment-journey-item h4 { margin:4px 0; color:#213f53; font-size:.86rem; }
.establishment-journey-item p { margin:0 0 7px; color:#4a6171; font-size:.77rem; line-height:1.5; }
.establishment-journey-item footer { color:#75858f; font-size:.68rem; }
.establishment-journey-item footer a { margin-left:auto; color:#176b9a; font-weight:750; text-decoration:none; }
@media (max-width:1200px) { .establishment-journey-summary { grid-template-columns:repeat(4,minmax(120px,1fr)); } }
@media (max-width:760px) { .establishment-journey-heading { align-items:flex-start; flex-direction:column; } .establishment-journey-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } .establishment-journey-insights { grid-template-columns:1fr; } .establishment-month-chart { gap:3px; } .establishment-month-chart b { font-size:.55rem; } }

.basic-unit-follow-up-guidance { display:grid; gap:3px; }
.basic-unit-follow-up-guidance strong,.basic-unit-follow-up-guidance span { display:block; }
.basic-unit-follow-up-cell { min-width:230px; }
.basic-unit-follow-up-cell small { display:block; margin-top:5px; color:var(--sie-muted); line-height:1.4; }

/* Proveniência, evidências e vínculos do episódio. */
.episode-confidence { border:1px solid #cbdce6; background:#edf5f9; color:#315d76 !important; }
.episode-confidence.is-confirmada,.episode-confidence.is-fonte-oficial { border-color:#b8ddcb; background:#eaf7f0; color:#246c4d !important; }
.episode-confidence.is-nao-confirmada { border-color:#ecc4c0; background:#fff0ee; color:#a33b34 !important; }
.episode-confidence.is-previsao { border-color:#dfd2a5; background:#fff8dc; color:#7a651d !important; }
.episode-change-summary { display:grid; grid-template-columns:38px minmax(0,1fr); gap:12px; align-items:start; padding:14px 16px; border:1px solid #bfdae9; border-radius:13px; background:#eff8fc; color:#274f67; }
.episode-change-summary > span { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; background:#d9eef8; color:#176d9b; }
.episode-change-summary .ui-icon-glyph { width:19px; height:19px; }
.episode-change-summary strong { font-size:.86rem; }
.episode-change-summary ul { margin:5px 0 0; padding-left:18px; color:#476779; font-size:.78rem; line-height:1.5; }
.episode-trace-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:14px 0 0; }
.episode-trace-grid > div { min-width:0; padding:11px; border-radius:9px; background:#f5f8fa; }
.episode-trace-grid .span-2 { grid-column:span 2; }
.episode-trace-grid dt { color:#677c8a; font-size:.66rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.episode-trace-grid dd { margin:4px 0 0; overflow-wrap:anywhere; color:#2b485b; font-size:.78rem; }
.episode-trace-grid code,.episode-evidence-list code { color:#526773; font-size:.68rem; }
.episode-trace-status { padding:5px 9px; border-radius:999px; background:#e8f5ee; color:#2c7657; font-size:.69rem; font-weight:750; }
.episode-establishment-list,.episode-evidence-list,.episode-relations-list { display:grid; gap:9px; margin-top:13px; }
.episode-establishment-list > a { display:grid; grid-template-columns:36px minmax(0,1fr) auto; gap:10px; align-items:center; padding:12px; border:1px solid #dfe8ed; border-radius:10px; color:inherit; text-decoration:none; }
.episode-establishment-list > a:hover { border-color:#91bfd7; background:#f3f9fc; }
.episode-establishment-list > a > span { display:grid; place-items:center; color:#26749d; }
.episode-establishment-list .ui-icon-glyph { width:23px; height:23px; }
.episode-establishment-list strong,.episode-establishment-list small { display:block; }
.episode-establishment-list small { margin-top:2px; color:#70818b; font-size:.69rem; }
.episode-establishment-list b { color:#196e9c; font-size:.72rem; }
.episode-evidence-list article { display:grid; grid-template-columns:32px minmax(0,1fr) auto auto; gap:9px; align-items:center; padding:11px; border-radius:9px; background:#f6f9fa; }
.episode-evidence-list article > span { color:#427189; }
.episode-evidence-list strong,.episode-evidence-list small { display:block; }
.episode-evidence-list small { color:#6b7d88; font-size:.68rem; }
.episode-evidence-list a { color:#176d9a; font-size:.73rem; font-weight:750; }
.episode-relations-list article { display:flex; justify-content:space-between; gap:12px; padding:12px; border:1px solid #dfe7ec; border-radius:10px; }
.episode-relations-list article > div { display:grid; gap:3px; }
.episode-relations-list article span { color:#667d8c; font-size:.64rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.episode-relations-list article a { color:#176c99; font-size:.84rem; font-weight:750; text-decoration:none; }
.episode-relations-list article p { margin:0; color:#4c6372; font-size:.75rem; }
.episode-relations-list article small { color:#7b8991; font-size:.66rem; }
.episode-relation-form { display:grid; grid-template-columns:180px 220px minmax(280px,1fr) auto; gap:10px; align-items:end; margin-top:15px; padding-top:15px; border-top:1px solid #e3e9ed; }
.episode-relation-form label { display:grid; gap:5px; }
.episode-relation-form label > span { color:#536a79; font-size:.7rem; font-weight:750; }
.episode-relation-form input,.episode-relation-form select,.episode-relation-form textarea { width:100%; padding:9px 10px; border:1px solid #cad8e0; border-radius:8px; background:#fff; }
.episode-relation-form textarea { min-height:42px; resize:vertical; }
.episode-history-changes { margin:7px 0; padding-left:18px; color:#385d73; font-size:.73rem; line-height:1.45; }
.timeline-change-callout { display:flex; gap:8px; align-items:flex-start; margin-top:9px; padding:8px 10px; border-left:3px solid #4e95b9; border-radius:7px; background:#eef7fb; color:#315b72; }
.timeline-change-callout > .ui-icon-glyph,.timeline-change-callout > span:first-child { flex:0 0 16px; width:16px; height:16px; }
.timeline-change-callout span { display:grid; gap:2px; }
.timeline-change-callout strong { font-size:.72rem; }
.timeline-change-callout small { color:#5d7482; font-size:.67rem; line-height:1.4; }
.timeline-confidence,.timeline-validity { padding:4px 7px; border-radius:999px; background:#edf3f6; color:#536d7d; font-size:.62rem; font-weight:700; }
.timeline-confidence.is-confirmada,.timeline-confidence.is-fonte-oficial { background:#e6f5ed; color:#246e4e; }
.timeline-confidence.is-nao-confirmada { background:#feebe9; color:#a43d36; }
.timeline-confidence.is-previsao { background:#fff4d3; color:#766017; }
@media (max-width:900px) { .episode-trace-grid { grid-template-columns:1fr 1fr; } .episode-relation-form { grid-template-columns:1fr 1fr; } .episode-relation-form .span-2 { grid-column:1/-1; } }
@media (max-width:600px) { .episode-trace-grid,.episode-relation-form { grid-template-columns:1fr; } .episode-trace-grid .span-2,.episode-relation-form .span-2 { grid-column:auto; } .episode-establishment-list > a { grid-template-columns:32px 1fr; } .episode-establishment-list b { grid-column:2; } .episode-evidence-list article { grid-template-columns:28px 1fr; } .episode-evidence-list article a,.episode-evidence-list article code { grid-column:2; } .episode-relations-list article { align-items:flex-start; flex-direction:column; } }

/* Episódio operacional: leitura orientada à decisão e detalhes progressivos. */
.operational-episode-page { width:100%; max-width:1680px; gap:14px; }
.episode-back-row .btn { border-color:transparent; background:transparent; color:#456275; box-shadow:none; }
.episode-back-row .btn:hover { border-color:#d4e0e7; background:#f2f6f8; }
.episode-hero { grid-template-columns:minmax(0,1fr) minmax(390px,470px); padding:24px 26px; border-left-width:6px; border-radius:14px; box-shadow:0 8px 24px rgba(26,58,78,.07); }
.episode-hero h1 { max-width:920px; font-size:clamp(1.55rem,2.2vw,2.35rem); }
.episode-hero-main > p { display:flex; gap:7px; align-items:center; margin-top:8px; color:#2f6989; }
.episode-hero-main > p .ui-icon-glyph { width:17px; height:17px; }
.episode-current-meta { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:10px; }
.episode-current-meta div { display:grid; gap:3px; min-width:0; padding:8px 9px; border-radius:8px; background:#f6f9fb; }
.episode-current-meta dd { overflow-wrap:anywhere; text-align:left; }
.episode-change-summary { padding:12px 16px; }
.episode-change-summary ul { display:flex; flex-wrap:wrap; gap:4px 24px; margin-top:4px; }
.episode-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(370px,430px); gap:16px; align-items:start; }
.episode-primary-column,.episode-side-column { display:grid; min-width:0; gap:14px; }
.episode-primary-column > .panel,.episode-side-column > .panel { margin:0; padding:20px; }
.episode-panel-heading { display:flex; justify-content:space-between; gap:14px; align-items:center; margin-bottom:14px; }
.episode-panel-heading h2 { margin:2px 0 0; color:#18364b; font-size:1.18rem; }
.episode-live-state { padding:5px 9px; border-radius:999px; background:#e8f5ee; color:#287354; font-size:.68rem; font-weight:800; white-space:nowrap; }
.episode-current-summary { display:grid; grid-template-columns:42px minmax(0,1fr); gap:12px; align-items:start; padding:16px; border:1px solid #d8e5ec; border-radius:12px; background:#f7fafc; }
.episode-current-summary > span { display:grid; place-items:center; width:40px; height:40px; border-radius:11px; background:#e3f1f8; color:#28769d; }
.episode-current-summary .ui-icon-glyph { width:21px; height:21px; }
.episode-current-summary p { margin:0; color:#29485c; font-size:.9rem; line-height:1.65; }
.episode-action-card { display:grid; grid-template-columns:42px minmax(0,1fr); gap:12px; align-items:start; margin-top:12px; padding:15px 16px; border:1px solid #efcfb5; border-radius:12px; background:#fff7ef; }
.episode-action-card > span { display:grid; place-items:center; width:40px; height:40px; border-radius:11px; background:#ffe8d5; color:#b2571e; }
.episode-action-card .ui-icon-glyph { width:21px; height:21px; }
.episode-action-card strong { color:#8e461b; font-size:.76rem; letter-spacing:.025em; text-transform:uppercase; }
.episode-action-card p { margin:4px 0 0; color:#59473d; font-size:.84rem; line-height:1.55; }
.episode-explanation-details { margin-top:12px; border:1px solid #dce6ec; border-radius:10px; background:#fff; }
.episode-explanation-details > summary { padding:11px 13px; color:#276f97; font-size:.76rem; font-weight:800; cursor:pointer; }
.episode-explanation-details[open] > summary { border-bottom:1px solid #e4ebef; }
.episode-explanation-details > div { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(220px,.5fr); gap:10px; padding:12px; }
.episode-explanation-details article { min-width:0; padding:11px; border-radius:9px; background:#f7f9fa; }
.episode-explanation-details strong { color:#5a7080; font-size:.66rem; letter-spacing:.035em; text-transform:uppercase; }
.episode-explanation-details p { margin:5px 0 0; color:#405969; font-size:.77rem; line-height:1.5; }
.episode-explanation-details a { display:inline-block; margin-top:7px; color:#176d9a; font-size:.72rem; font-weight:750; }
.episode-assessment-panel { border-top:4px solid #2c7fa7; box-shadow:0 8px 24px rgba(25,61,82,.08); }
.episode-assessment-heading { display:grid; grid-template-columns:36px minmax(0,1fr); gap:10px; align-items:center; }
.episode-assessment-heading > span { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; background:#e5f3f9; color:#26769d; }
.episode-assessment-heading .ui-icon-glyph { width:19px; height:19px; }
.episode-assessment-heading small { color:#6a7f8e; font-size:.63rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.episode-assessment-heading h2 { margin:1px 0 0; color:#18384e; font-size:1.08rem; }
.episode-assessment-panel > p { margin:10px 0 14px; }
.episode-assessment-form { gap:11px; }
.episode-assessment-form fieldset label { padding:9px 10px; transition:border-color .15s ease,background .15s ease,transform .15s ease; }
.episode-assessment-form fieldset label:hover { border-color:#9fc6d9; background:#f7fbfd; }
.episode-assessment-form fieldset label:has(input:checked) { transform:translateX(2px); }
.episode-justification textarea { min-height:94px; }
.episode-assessment-form .btn { width:100%; justify-content:center; }
.episode-disclosure { padding:0 !important; overflow:hidden; box-shadow:none; }
.episode-disclosure > summary { display:grid; grid-template-columns:34px minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:13px 14px; cursor:pointer; list-style:none; }
.episode-disclosure > summary::-webkit-details-marker { display:none; }
.episode-disclosure > summary::after { margin-left:2px; color:#6b7f8c; content:'⌄'; font-size:1rem; transition:transform .15s ease; }
.episode-disclosure[open] > summary::after { transform:rotate(180deg); }
.episode-disclosure > summary > span { display:grid; place-items:center; width:32px; height:32px; border-radius:9px; background:#edf4f7; color:#376e8b; }
.episode-disclosure > summary .ui-icon-glyph { width:17px; height:17px; }
.episode-disclosure > summary div { display:grid; gap:1px; min-width:0; }
.episode-disclosure > summary small { color:#71838f; font-size:.61rem; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }
.episode-disclosure > summary strong { overflow:hidden; color:#29495d; font-size:.78rem; text-overflow:ellipsis; white-space:nowrap; }
.episode-disclosure > summary > b { padding:4px 7px; border-radius:999px; background:#e9f5ee; color:#2d7558; font-size:.62rem; }
.episode-disclosure-body { padding:0 14px 14px; border-top:1px solid #e6ecef; }
.episode-disclosure .episode-trace-grid { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:12px; }
.episode-disclosure .episode-trace-grid > div { padding:9px; }
.episode-disclosure .episode-trace-grid .span-2 { grid-column:1/-1; }
.episode-disclosure .episode-relations-list { margin-top:12px; }
.episode-disclosure .episode-relations-list article { align-items:flex-start; flex-direction:column; }
.episode-disclosure .episode-relation-form { grid-template-columns:1fr 1fr; align-items:start; }
.episode-disclosure .episode-relation-form .span-2,.episode-disclosure .episode-relation-form .btn { grid-column:1/-1; }
.episode-disclosure .episode-relation-form .btn { justify-self:start; }
.episode-history-panel { padding:20px; }
.episode-history-list > li { grid-template-columns:36px minmax(0,1fr); gap:12px; padding:9px 0; }
.episode-history-list > li:not(:last-child)::before { left:17px; }
.episode-history-list > li > div { padding:13px 15px; }
.episode-history-list header strong { font-size:.84rem; }
.episode-history-list p,.episode-history-changes { overflow-wrap:break-word; word-break:normal; }
.episode-history-changes > li { display:list-item; padding:0; }
.episode-history-proof { margin-top:8px; padding-top:7px; border-top:1px dashed #dbe4e9; }
.episode-history-proof summary { width:max-content; max-width:100%; color:#567386; font-size:.66rem; font-weight:750; cursor:pointer; }
.episode-history-proof small { display:block; margin-top:5px; overflow-wrap:anywhere; }
@media (max-width:1099px) { .episode-workspace { grid-template-columns:minmax(0,1fr) minmax(330px,390px); } .episode-hero { grid-template-columns:minmax(0,1fr) minmax(330px,390px); } }
@media (max-width:900px) { .episode-hero { grid-template-columns:1fr; } .episode-workspace { display:flex; flex-direction:column; } .episode-primary-column,.episode-side-column { display:contents; } .episode-facts { order:1; } .episode-assessment-panel { order:2; } .episode-establishments,.episode-evidence-panel { order:3; } .episode-history-panel { order:4; } .episode-disclosure { order:5; } .episode-current-meta { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:640px) { .operational-episode-page { gap:10px; } .episode-hero { padding:18px; } .episode-current-meta { grid-template-columns:1fr 1fr; } .episode-explanation-details > div { grid-template-columns:1fr; } .episode-change-summary ul { display:block; } .episode-primary-column > .panel,.episode-side-column > .panel,.episode-history-panel { padding:15px; } .episode-disclosure { padding:0 !important; } }
.municipal-ai-audit-hero,
.municipal-ai-audit-hero > div,
.municipal-ai-audit-schedule,
.municipal-ai-audit-history-item {
  min-width: 0;
}

.municipal-ai-audit-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.municipal-ai-audit-schedule {
  display: grid;
  gap: .2rem;
  padding: .8rem 1rem;
  border: 1px solid var(--border-color, #d8e0e8);
  border-radius: .8rem;
  background: #fff;
}

.municipal-ai-audit-workspace {
  display: grid;
  grid-template-columns: minmax(250px, 320px) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.municipal-ai-audit-history-list {
  display: grid;
  gap: .45rem;
}

.municipal-ai-audit-history .pagination-bar {
  grid-template-columns: minmax(0, 1fr);
  gap: .65rem;
}

.municipal-ai-audit-history .pagination-summary {
  line-height: 1.45;
  overflow-wrap: normal;
  word-break: normal;
}

.municipal-ai-audit-history .pagination-controls-compact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  width: 100%;
}

.municipal-ai-audit-history .pagination-controls-compact .btn {
  min-width: 0;
  padding-inline: .55rem;
  white-space: nowrap;
}

.municipal-ai-audit-history .pagination-current {
  align-self: center;
  color: var(--sie-muted);
  font-size: .72rem;
  white-space: nowrap;
}

.municipal-ai-audit-history .pagination-jumps {
  display: flex;
  justify-content: space-between;
  gap: .75rem;
  font-size: .72rem;
}

.municipal-ai-audit-history .pagination-jumps a {
  color: var(--sie-primary);
  font-weight: 700;
}

.municipal-ai-audit-history .pagination-jumps .is-disabled {
  pointer-events: none;
  opacity: .45;
}

.municipal-ai-audit-history .pagination-size {
  width: 100%;
}

.municipal-ai-audit-history .pagination-size > span {
  flex: 0 0 100%;
}

.municipal-ai-audit-history-item {
  display: grid;
  gap: .15rem;
  padding: .7rem .8rem;
  border: 1px solid #dce4eb;
  border-radius: .65rem;
  color: inherit;
  text-decoration: none;
}

.municipal-ai-audit-history-item.is-active {
  border-color: #ec633d;
  background: #fff6f2;
}

.municipal-ai-audit-frame {
  display: block;
  width: 100%;
  min-height: 760px;
  border: 1px solid #dce4eb;
  border-radius: .75rem;
  background: #fff;
  opacity: 0;
  transition: opacity .2s ease;
}

.municipal-ai-audit-frame-shell {
  position: relative;
  min-height: 760px;
}

.municipal-ai-audit-frame-shell.is-loaded .municipal-ai-audit-frame {
  opacity: 1;
}

.municipal-ai-audit-frame-shell.is-loaded .municipal-ai-audit-loading {
  display: none;
}

.municipal-ai-audit-loading {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: .45rem;
  min-height: 420px;
  padding: 2rem;
  border: 1px solid #dce4eb;
  border-radius: .75rem;
  background: #f8fafc;
  color: var(--sie-text);
  text-align: center;
}

.municipal-ai-audit-loading small {
  color: var(--sie-muted);
}

.municipal-ai-audit-loading-spinner {
  width: 2rem;
  height: 2rem;
  border: 3px solid #fed7cc;
  border-top-color: #ec633d;
  border-radius: 50%;
  animation: municipal-ai-loading-spin .8s linear infinite;
}

@keyframes municipal-ai-loading-spin {
  to { transform: rotate(360deg); }
}

@media (max-width: 960px) {
  .municipal-ai-audit-hero {
    align-items: stretch;
    flex-direction: column;
  }

  .municipal-ai-audit-workspace {
    grid-template-columns: 1fr;
  }

  .municipal-ai-audit-frame {
    min-height: 620px;
  }

  .municipal-ai-audit-frame-shell {
    min-height: 620px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .municipal-ai-audit-loading-spinner {
    animation: none;
  }
}

/* Relatório situacional diário: leitura executiva detalhada e impressão */
.daily-situation-information-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  flex-wrap: wrap;
}

.daily-situation-information-actions .btn {
  min-height: 34px;
  padding: 7px 10px;
  font-size: .68rem;
}

.daily-situation-information-export-header,
.daily-situation-information-export-text {
  display: none;
}

.daily-situation-information-feedback {
  min-height: 18px;
  margin: 2px 0 5px;
  color: #087336;
  font-size: .68rem;
  font-weight: 800;
  text-align: right;
}

.daily-situation-information-details {
  margin: 7px 0 0;
  overflow: hidden;
  border: 1px solid #d9e4ea;
  border-radius: 8px;
  background: #fff;
}

.daily-situation-information-details > summary {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 8px;
  color: #174d70;
  cursor: pointer;
  font-size: .61rem;
  font-weight: 850;
  list-style: none;
}

.daily-situation-information-details > summary::-webkit-details-marker {
  display: none;
}

.daily-situation-information-details > summary::after {
  flex: 0 0 auto;
  margin-left: auto;
  content: '+';
  font-size: .85rem;
}

.daily-situation-information-details[open] > summary::after {
  content: '−';
}

.daily-situation-information-details > summary b {
  color: #607584;
  font-size: .53rem;
  font-weight: 750;
}

.daily-situation-information-detail-list {
  display: grid;
  gap: 7px;
  padding: 8px;
  border-top: 1px solid #e3ebef;
  background: #f7fafb;
}

.daily-situation-information-detail-record {
  display: grid;
  gap: 5px;
  min-width: 0;
  padding: 8px;
  border: 1px solid #dfe7eb;
  border-left: 3px solid #78909c;
  border-radius: 7px;
  background: #fff;
}

.daily-situation-information-card.is-fact .daily-situation-information-detail-record { border-left-color: #137b57; }
.daily-situation-information-card.is-forecast .daily-situation-information-detail-record { border-left-color: #087ca7; }
.daily-situation-information-card.is-predictive .daily-situation-information-detail-record { border-left-color: #7a4fc2; }

.daily-situation-information-detail-record > header {
  display: grid;
  gap: 2px;
}

.daily-situation-information-detail-record > header strong {
  color: #173b53;
  font-size: .68rem;
  line-height: 1.3;
}

.daily-situation-information-detail-record > header span {
  color: #526b7b;
  font-size: .59rem;
  font-weight: 750;
}

.daily-situation-information-detail-record p {
  margin: 0;
  color: #435b6b;
  font-size: .61rem;
  line-height: 1.42;
}

.daily-situation-information-detail-record p b {
  color: #24475e;
}

.daily-situation-information-detail-record small {
  color: #6f7f8b;
  font-size: .54rem;
}

@media (max-width: 980px) {
  .daily-situation-information-board .daily-situation-board-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .daily-situation-information-actions {
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .daily-situation-information-actions .status-chip {
    width: 100%;
    justify-content: center;
  }

  .daily-situation-information-actions .btn {
    flex: 1 1 calc(50% - 7px);
  }

  .daily-situation-information-details > summary {
    align-items: flex-start;
    flex-direction: column;
  }

  .daily-situation-information-details > summary::after {
    position: absolute;
    right: 23px;
  }
}

@media print {
  @page daily-situation-report {
    size: A4 portrait;
    margin: 8mm 8mm 10mm;
  }

  .daily-situation-page {
    gap: 5mm !important;
    font-size: 8.5pt;
  }

  .daily-situation-page > .panel,
  .daily-situation-information-board,
  .daily-situation-information-card {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  .daily-situation-information-board {
    padding: 8px !important;
  }

  .daily-situation-information-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 4mm !important;
  }

  .daily-situation-information-card > header,
  .daily-situation-information-card > .daily-situation-information-definition,
  .daily-situation-information-detail-record,
  .daily-situation-mini-card,
  .daily-situation-priority-list > li,
  .daily-situation-system-card,
  .daily-situation-detail-card table tr {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .daily-situation-information-card > ul > li {
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  .daily-situation-information-card > header {
    break-after: avoid;
  }

  .daily-situation-information-card li {
    padding: 6px 7px 6px 18px !important;
    font-size: 8pt !important;
  }

  .daily-situation-information-card li::before {
    top: 10px !important;
    left: 7px !important;
  }

  .daily-situation-information-definition,
  .daily-situation-information-reason,
  .daily-situation-information-detail-record p {
    font-size: 7.3pt !important;
  }

  .daily-situation-information-details > summary {
    padding: 5px 6px;
    font-size: 7.2pt;
  }

  .daily-situation-information-detail-list {
    gap: 2mm;
    padding: 2mm;
  }

  .daily-situation-information-detail-record {
    padding: 2mm;
  }

  .daily-situation-detail-card table {
    width: 100%;
    table-layout: fixed;
  }

  .daily-situation-detail-card thead {
    display: table-header-group;
  }

  .daily-situation-detail-card th,
  .daily-situation-detail-card td {
    overflow-wrap: anywhere;
    white-space: normal !important;
  }

  .daily-situation-provenance {
    break-before: auto !important;
  }

  body.daily-information-export-mode .daily-situation-page > * {
    display: none !important;
  }

  body.daily-information-export-mode .daily-situation-page > .daily-situation-information-board {
    display: block !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  body.daily-information-export-mode .daily-situation-information-export-header {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10mm;
    align-items: end;
    margin-bottom: 5mm;
    padding: 0 0 4mm;
    border-bottom: 2px solid #173b53;
  }

  .daily-situation-information-export-header > div {
    display: grid;
    gap: 1mm;
  }

  .daily-situation-information-export-header > div span {
    color: #607584;
    font-size: 7.5pt;
    font-weight: 800;
    text-transform: uppercase;
  }

  .daily-situation-information-export-header > div strong {
    color: #173b53;
    font-size: 16pt;
  }

  .daily-situation-information-export-header dl {
    display: grid;
    grid-template-columns: repeat(3, auto);
    gap: 5mm;
    margin: 0;
  }

  .daily-situation-information-export-header dt {
    color: #607584;
    font-size: 6.5pt;
    font-weight: 800;
    text-transform: uppercase;
  }

  .daily-situation-information-export-header dd {
    margin: 1mm 0 0;
    color: #173b53;
    font-size: 7.5pt;
    font-weight: 750;
  }

  body.daily-information-export-mode .daily-situation-information-board > .daily-situation-board-heading {
    margin-bottom: 4mm;
  }

  body.daily-information-export-mode .daily-situation-information-grid {
    grid-template-columns: 1fr !important;
  }

  body.daily-information-export-mode .daily-situation-information-rule {
    break-inside: avoid;
  }
}
