/*
 * Observatório Operacional — camada visual institucional
 * Linguagem sóbria, hierarquia operacional e movimento com função.
 * Este arquivo é carregado por último para também normalizar estilos legados inline.
 */

:root {
  --bg-deep: #0b0f14;
  --bg-surface: #121820;
  --bg-surface-elevated: #18212c;
  --bg-surface-hover: #202c39;
  --bg-glass-card: rgba(18, 24, 32, .96);
  --border-subtle: #293543;
  --border-glass: #344150;
  --border-highlight: #526173;
  --border-active: #d3403f;
  --cbmmg-red: #c83232;
  --cbmmg-red-bright: #e14b4a;
  --cbmmg-red-dark: #8f2222;
  --cbmmg-red-glow: rgba(200, 50, 50, .22);
  --gold-accent: #d8a22e;
  --gold-bright: #ecc35f;
  --gold-glow: rgba(216, 162, 46, .16);
  --cyan-telemetry: #66a8d8;
  --cyan-glow: rgba(102, 168, 216, .14);
  --blue-tactical: #367eb8;
  --emerald-safe: #3fa66b;
  --text-primary: #f4f6f8;
  --text-secondary: #c3cbd4;
  --text-muted: #98a5b3;
  --text-dim: #73808e;
  --font-sans: 'Source Sans 3', 'Segoe UI', Arial, sans-serif;
  --font-tactical: 'Source Sans 3', 'Segoe UI', Arial, sans-serif;
  --font-mono: 'IBM Plex Mono', ui-monospace, monospace;
  --radius-xs: 3px;
  --radius-sm: 5px;
  --radius-md: 8px;
  --radius-lg: 10px;
  --shadow-tactical: 0 8px 24px rgba(0, 0, 0, .34);
  --shadow-elevated: 0 16px 38px rgba(0, 0, 0, .42);
  --glass-bg: rgba(14, 19, 25, .95);
  --glass-blur: blur(8px);
  --ease-out: cubic-bezier(.2, .8, .2, 1);
  --ease-spring: cubic-bezier(.2, .8, .2, 1);
}

body {
  background: var(--bg-deep);
  font-size: 14px;
  line-height: 1.35;
}

:focus-visible {
  outline-color: #f1c453 !important;
  outline-offset: 3px !important;
}

/* Cabeçalho: leitura de status em uma linha, sem estética de cápsulas luminosas. */
.tactical-header {
  background: #10161d;
  border-bottom: 1px solid #303b48;
  box-shadow: 0 3px 12px rgba(0, 0, 0, .28);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.header-tools-centered { gap: 12px; }
.telemetry-bar { gap: 6px; }
.status-pill {
  min-height: 32px;
  padding: 5px 10px;
  gap: 7px;
  border-radius: 5px;
  background: #171f29;
  border-color: #34414f;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  font-size: 12px;
  font-weight: 500;
  transition: background-color 180ms var(--ease-out), border-color 180ms var(--ease-out);
}
.status-pill:hover { transform: none; background: #1e2935; border-color: #566476; }
.status-pill strong { font-weight: 700; font-variant-numeric: tabular-nums; }
.status-pill.status-pill-clickable:hover { box-shadow: none; border-color: #9a4b4a; transform: none; }
.status-pill.status-pill-clickable:active { transform: translateY(1px); }
.status-pill.status-pill-clickable.active-filter { background: #173326; border-color: #3f9364; box-shadow: none; }
.status-indicator { width: 7px; height: 7px; box-shadow: none !important; }
.status-indicator.pulse-red { animation: statusAttention 2.4s ease-in-out infinite; }
.status-indicator.pulse-gold { background: #3fa66b; }

@keyframes statusAttention {
  0%, 70%, 100% { opacity: 1; transform: scale(1); }
  82% { opacity: .45; transform: scale(.86); }
}

.btn-tactical {
  min-height: 34px;
  padding: 7px 12px;
  border-radius: 5px;
  background: #202a35;
  border-color: #435162;
  box-shadow: none;
  font-size: 12px;
  font-weight: 600;
  transition: background-color 160ms var(--ease-out), border-color 160ms var(--ease-out), transform 120ms var(--ease-out);
}
.btn-tactical:hover { transform: none; background: #293645; border-color: #637286; box-shadow: none; }
.btn-tactical:active { transform: translateY(1px); }
.btn-report-cta {
  background: #aa2e2e !important;
  color: #fff !important;
  border-color: #d45a59 !important;
  box-shadow: none !important;
  letter-spacing: 0 !important;
}
.btn-report-cta:hover { background: #c03938 !important; border-color: #e37473 !important; box-shadow: none !important; transform: none !important; }

/* Estrutura lateral institucional. */
.tactical-sidebar {
  background: #0f151c;
  border-right-color: #303b47;
  box-shadow: 5px 0 18px rgba(0, 0, 0, .3);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.master-brand-card {
  padding: 14px 16px 12px;
  background: #151c25;
  border-right-color: #303b47;
  border-bottom-color: #5c2f2f;
  box-shadow: 0 5px 14px rgba(0, 0, 0, .26);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.master-brand-card::before { height: 3px; background: var(--cbmmg-red); }
.master-brand-row { gap: 12px; margin-bottom: 7px; }
.master-insignia-wrapper {
  width: 52px;
  height: 52px;
  padding: 3px;
  border-radius: 8px;
  background: #0e141a;
  border: 1px solid #8e6e32;
  box-shadow: none;
}
.master-insignia-wrapper:hover { transform: none; box-shadow: none; }
.master-cbmmg-logo { filter: none; }
.master-tag { margin-bottom: 3px; color: #d9b254; font-size: 10px; letter-spacing: .55px; }
.master-tag .tag-sub { color: #e56a69; }
.master-title {
  font-size: 17px;
  font-weight: 700;
  letter-spacing: .35px;
  line-height: 1.1;
  white-space: nowrap;
  text-shadow: none;
}
.master-subtitle { margin-top: 3px; color: #c5ced7; font-size: 12px; font-weight: 500; letter-spacing: 0; }
.master-desc-bar { color: #929eaa; border-top-color: #2d3945; font-size: 11.5px; }
.master-desc-bar i { color: #8fa9be !important; }
.sidebar-toggle-btn {
  background: #202a35;
  border-color: #455365;
  box-shadow: none;
  border-radius: 5px;
  transition: background-color 160ms var(--ease-out), border-color 160ms var(--ease-out);
}
.sidebar-toggle-btn:hover { transform: none; background: #293645; color: #fff; border-color: #647388; }
.master-brand-dock.collapsed .sidebar-toggle-btn { background: #4d2828; border-color: #9e5554; color: #fff; }

.selected-uc-card { background: #1a222c; border-bottom-color: #8e6e32; animation: panelEnter 180ms var(--ease-out); }
.selected-uc-badge { color: #e5bd5e; letter-spacing: .35px; }

.sidebar-tabs {
  background: #111820;
  border-bottom: 1px solid #303b47;
  padding-top: 5px;
}
.tab-btn {
  min-height: 64px;
  padding: 9px 5px 8px;
  color: #9ba7b4;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .15px;
  text-transform: none;
  border-radius: 5px 5px 0 0;
}
.tab-btn:hover { background: #19232d; color: #e7ebef; }
.tab-btn.active {
  color: #fff;
  background: #1c252f;
  border-bottom-color: var(--cbmmg-red);
  box-shadow: inset 0 -2px 0 var(--cbmmg-red);
}
.tab-btn.active i { color: #e16a69; }
.tab-badge-focos, .badge-focos-count { border-radius: 4px; box-shadow: none; }
.sidebar-tab-content { padding: 15px 16px 110px; }

.analysis-intro {
  padding: 14px;
  margin-bottom: 12px;
  background: #18212b;
  border: 1px solid #344150;
  border-left: 3px solid var(--cbmmg-red);
  border-radius: 6px;
}
.analysis-intro h2 { margin: 8px 0 5px; font-size: 19px; font-weight: 700; color: #f4f6f8; }
.analysis-intro p, .analysis-block p { margin: 0; color: #c3cbd4; line-height: 1.45; font-size: 12px; }
.analysis-status { color: #e5bd5e; font-size: 10px; font-weight: 700; letter-spacing: .3px; text-transform: uppercase; }
.analysis-block { padding: 12px 13px; margin-bottom: 8px; background: #151e27; border: 1px solid #344150; border-radius: 6px; }
.analysis-block h3 { display: flex; align-items: center; gap: 7px; margin: 0 0 6px; color: #e6edf3; font-size: 13px; font-weight: 700; }
.analysis-block h3 i { color: #d8a22e; width: 15px; text-align: center; }
.analysis-note { margin-top: 13px; padding: 10px 11px; color: #9daab6; background: #121a22; border: 1px solid #2f3b48; border-radius: 5px; font-size: 11px; line-height: 1.4; }
.analysis-note i { color: #82b5d7; margin-right: 5px; }
.analysis-label { display: block; margin: 12px 0 5px; color: #c3cbd4; font-size: 11px; font-weight: 700; }
.analysis-alert-banner { margin: 8px 0; padding: 9px 10px; border-left: 3px solid #718096; border-radius: 0 5px 5px 0; background: #121a22; color: #aeb9c4; font-size: 10.5px; line-height: 1.35; }
.analysis-alert-banner.is-alert { border-left-color: #ff6b35; color: #ffd2bf; background: rgba(255,107,53,.10); }
.analysis-alert-banner.is-critical { border-left-color: #ff1744; color: #ffd0d8; background: rgba(255,23,68,.12); }
.analysis-actions { display: flex; gap: 7px; margin: 8px 0 10px; }
.analysis-actions .btn-tactical { flex: 1; justify-content: center; font-size: 11px; }
@media (max-width: 620px) { .analysis-actions { flex-direction: column; } .analysis-actions .btn-tactical { width: 100%; } }
.analysis-park-result { padding: 11px 12px; margin-bottom: 12px; background: #111920; border: 1px solid #344150; border-radius: 6px; color: #c3cbd4; font-size: 11.5px; line-height: 1.45; }
.analysis-park-result p { margin: 0; }
.analysis-fact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 8px 0; }
.analysis-fact { padding: 7px 5px; background: #1b2630; border: 1px solid #344150; border-radius: 4px; text-align: center; }
.analysis-fact strong { display: block; color: #f4f6f8; font-size: 16px; font-variant-numeric: tabular-nums; }
.analysis-fact span { color: #94a3b0; font-size: 9px; }
.analysis-action-list { display: grid; gap: 6px; margin: 10px 0 4px; }
.analysis-action-list > div { padding: 8px 9px; border-left: 3px solid #d8a22e; border-radius: 0 6px 6px 0; background: rgba(216,162,46,.08); font-size: 11px; line-height: 1.4; color: #c3cbd4; }
.analysis-action-list b { color: #f4f6f8; }

/* Campos, cartões e listas: bordas consistentes e estados contidos. */
.input-search-wrapper,
.select-filter-bbm,
.form-select-tactical,
.form-input-tactical,
.form-textarea-tactical,
.input-tactical-date {
  background: #111820;
  border-color: #3b4857;
  box-shadow: none;
  border-radius: 5px;
}
.input-search-wrapper:focus-within,
.select-filter-bbm:focus,
.form-select-tactical:focus,
.form-input-tactical:focus,
.form-textarea-tactical:focus,
.input-tactical-date:focus { border-color: #76a8cc; box-shadow: 0 0 0 2px rgba(102, 168, 216, .16); }

.uc-list-item,
.rf-summary-card,
.forecast-mini-card,
.bbm-cluster-card,
.chart-box-wrapper,
.config-section-card,
.module-toggle-item {
  background: #18212b;
  border-color: #344150;
  box-shadow: none;
}
.uc-list-item:hover { background: #202c38; border-color: #556476; transform: none; }
.rf-summary-card { padding: 16px 14px; border-radius: 7px; }
.rf-value-display { font-size: 34px; text-shadow: none; }
.rf-formula-breakdown { background: #111820; border-color: #303d4b; }
.formula-chip .val { color: #83b8dc; }
.rf-badge-status { border-radius: 4px; letter-spacing: .2px; }

.forecast-mini-grid { gap: 7px; }
.forecast-mini-card { transition: background-color 160ms var(--ease-out), border-color 160ms var(--ease-out); }
.forecast-mini-card.card-historico { background: #172535; border-color: #36597a; border-left-color: #4d8bc3; }
.forecast-mini-card.card-hoje { background: #2a2518; border-color: #8a6a2b; border-left-color: #d8a22e; box-shadow: none; }
.forecast-mini-card.card-previsao { background: #162832; border-color: #356477; border-left-color: #58a5c7; }
.badge-tipo-dia { border-radius: 3px; }
.badge-tipo-dia.badge-historico { background: #3e78aa; }
.badge-tipo-dia.badge-hoje { background: #d8a22e; color: #15110a; }
.badge-tipo-dia.badge-previsao { background: #4b93b3; color: #07131a; }

.period-filter-bar { background: #111820; border-color: #354250; box-shadow: none; }
.btn-period-pill { font-weight: 600; }
.btn-period-pill:hover { background: #202a35; }
.btn-period-pill.active { background: #9f3030; border-color: #c95554; box-shadow: none; }
.dropzone-container { background: #151d26; border-color: #68798b; }
.dropzone-container:hover, .dropzone-container.dragover { background: #1c2631; border-color: #d8a22e; box-shadow: none; transform: none; }
.dropzone-icon { color: #d8a22e; }
.bbm-cluster-card:hover { background: #202b37; border-color: #5b6877; border-left-color: #d24d4c; box-shadow: none; transform: none; }
.bbm-cluster-footer { color: #83b8dc; }

/* Mapa e controles: interface sobreposta discreta. */
.hud-panel,
.legend-hud,
.telemetry-side-body,
.telemetry-side-tab,
.leaflet-popup-content-wrapper {
  background: rgba(16, 22, 29, .95) !important;
  border-color: #465362 !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, .35) !important;
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
}
.hud-panel { padding: 7px; border-radius: 6px; }
.btn-layer {
  background: #1a232d;
  border-color: #354250;
  border-radius: 4px;
  box-shadow: none;
  font-weight: 600;
}
.btn-layer:hover { background: #26323f; transform: none; }
.btn-layer:active { transform: translateY(1px); }
.btn-layer.active { background: #326d9c; border-color: #5a96c3; box-shadow: none; }
.btn-layer[data-base-layer].active::after {
  content: '\2713';
  margin-left: 3px;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
}
#btnToggleCbmmgUnits.active { background: #4a2426; border-color: #a94d4f; box-shadow: none; }
.btn-layer.btn-filter-ucs { color: #a8d3b8; background: #17271f; border-color: #3e7254; }
.btn-layer.btn-filter-ucs:hover,
.btn-layer.btn-filter-ucs.active { color: #fff; background: #24553a; border-color: #52a270; box-shadow: none; }
.badge-ucs-count { border-radius: 3px; }
.legend-title, .telemetry-side-header { color: #d8dee5; letter-spacing: .35px; }
.telemetry-side-tab { color: #8eb7d2; }
.telemetry-side-tab:hover { transform: none; background: #202b36 !important; color: #fff; }
.telemetry-side-panel:not(.collapsed) .telemetry-side-tab { background: #202b36 !important; border-color: #536171 !important; color: #e5bd5e; }
.telemetry-coords-row { color: #8fbddd; background: #162432; border-color: #304c63; }
.risk-map-crosshair::before, .risk-map-crosshair::after { background: #62a9d4; box-shadow: none; }

/* A animação distintiva das unidades permanece; mais curta e sem brilho excessivo. */
.cbmmg-pin { transition: transform 180ms var(--ease-out), filter 180ms var(--ease-out); box-shadow: 0 2px 6px rgba(0, 0, 0, .72); }
.cbmmg-pin:hover { transform: scale(1.28) !important; box-shadow: 0 4px 12px rgba(0, 0, 0, .7); filter: brightness(1.12); }
.cbmmg-pin.anim-drop-spring { animation-duration: 520ms; }
.bbm-pin { box-shadow: 0 2px 7px rgba(0, 0, 0, .72); }
.tactical-pulse-marker::before { box-shadow: none; animation-duration: 1.5s; }

/* Modal de configuração e relatório. */
.tactical-modal-overlay { background: rgba(5, 8, 12, .78); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.report-config-box {
  background: #10171f;
  border-color: #465362;
  border-radius: 8px;
  box-shadow: 0 24px 56px rgba(0, 0, 0, .56);
  transform: translateY(12px);
  transition: transform 200ms var(--ease-out), opacity 200ms var(--ease-out);
}
.modal-header-tactical { background: #18212b; border-top: 4px solid var(--cbmmg-red); border-bottom-color: #3a4654; }
.modal-header-logo { filter: none; }
.modal-header-title { font-size: 18px; font-weight: 700; letter-spacing: .2px; text-transform: none; }
.modal-header-sub { color: #aab5c0; }
.modal-close-btn { border-radius: 4px; }
.config-section-title { color: #e2bd62; letter-spacing: .3px; text-transform: none; font-size: 13px; }
.scope-radio-pill { background: #18212b; border-color: #3a4756; border-radius: 5px; font-weight: 600; }
.scope-radio-pill:hover { background: #212d39; }
.scope-radio-pill.selected { background: #4b2527; border-color: #bd5657; box-shadow: none; }
.module-toggle-item:hover { background: #202b36; border-color: #566475; }
.module-toggle-item input[type='checkbox'] { accent-color: #bb3b3b; }

.firms-reading-guide {
  display: grid;
  gap: 5px;
  margin: 0 0 12px;
  padding: 10px 11px;
  border: 1px solid rgba(71, 165, 204, .28);
  border-left: 3px solid #47a5cc;
  border-radius: 6px;
  background: rgba(31, 90, 116, .12);
  color: var(--text-secondary);
  font-size: 11px;
  line-height: 1.35;
}
.firms-reading-guide strong { color: #d8e7ee; font-size: 11.5px; }
.firms-reading-guide strong i { color: #65c4e8; margin-right: 5px; }
.firms-reading-guide b { color: #f0f6f8; }
.a4-sheet-document { font-family: var(--font-sans); }

@keyframes panelEnter {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Tablet: mantém mapa dominante e reduz o ruído do cabeçalho. */
@media (max-width: 1180px) {
  :root { --sidebar-width: 390px; }
  .header-tools-centered { width: calc(100vw - 24px); }
  .status-pill { padding-inline: 8px; }
  .status-pill.status-pill-meteo { display: none; }
}

/* Celular: mapa primeiro, resumo operacional fixo e painel sob demanda. */
@media (max-width: 768px) {
  :root { --header-height: 50px; --sidebar-width: min(390px, 94vw); }
  .tactical-header { padding: 0 8px; }
  .header-tools-centered { position: static; width: 100%; transform: none; justify-content: space-between; gap: 6px; }
  .header-tools-divider { display: none; }
  .telemetry-bar { min-width: 0; flex: 1; }
  .status-pill { min-height: 34px; padding: 5px 8px; border-radius: 4px; }
  .status-pill:nth-child(2), .status-pill.status-pill-meteo { display: none; }
  .header-actions { flex-shrink: 0; }

  .master-brand-dock {
    top: calc(var(--header-height) + 7px) !important;
    left: 7px !important;
    width: min(330px, calc(100vw - 14px)) !important;
  }
  .master-brand-dock .master-brand-card {
    padding: 9px 10px !important;
    border-radius: 7px !important;
    border: 1px solid #465362 !important;
    border-top: 3px solid var(--cbmmg-red) !important;
    box-shadow: 0 7px 22px rgba(0, 0, 0, .42) !important;
  }
  .master-brand-card::before { display: none; }
  .master-brand-dock .master-brand-row { gap: 8px !important; margin-bottom: 0 !important; }
  .master-brand-dock .master-insignia-wrapper { width: 36px !important; height: 36px !important; border-radius: 5px !important; }
  .master-brand-dock .master-tag { display: none !important; }
  .master-brand-dock .master-title { font-size: 14px !important; letter-spacing: .35px !important; }
  .master-brand-dock .master-subtitle { font-size: 10.5px !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .master-brand-dock .master-desc-bar { display: none !important; }
  .master-brand-dock .sidebar-toggle-btn { background: #25313d !important; border-color: #536274 !important; color: #fff !important; }
  .master-brand-dock.mobile-open .sidebar-toggle-btn { background: #4c2829 !important; border-color: #a95556 !important; color: #fff !important; }

  .tactical-sidebar {
    width: min(390px, 94vw) !important;
    max-width: 94vw !important;
    box-shadow: 10px 0 30px rgba(0, 0, 0, .55) !important;
    transition-duration: 220ms !important;
  }
  .sidebar-tabs { position: sticky; top: 0; z-index: 2; }
  .tab-btn { min-height: 58px; font-size: 10.5px !important; }
  .sidebar-tab-content { padding: 13px 12px 172px !important; }
  .sidebar-credits-footer { display: none !important; }

  .mobile-quick-panel {
    left: 8px;
    right: 8px;
    bottom: 8px;
    padding: 8px 10px 10px;
    border: 1px solid #4b5a69;
    border-left: 4px solid var(--cbmmg-red);
    border-radius: 8px;
    background: rgba(15, 21, 28, .96);
    box-shadow: 0 10px 28px rgba(0, 0, 0, .46);
    backdrop-filter: blur(7px);
    -webkit-backdrop-filter: blur(7px);
  }
  .mobile-quick-kicker { color: #9da9b5; font-size: 10px; font-weight: 600; letter-spacing: 0; text-transform: none; }
  .mobile-quick-head strong { font-size: 15px; }
  .mobile-quick-risk { border-radius: 4px; background: #283644; font-size: 14px; }
  .mobile-quick-metrics { font-size: 11.5px; }
  .mobile-quick-metrics i { color: #e3b651; }
  .mobile-quick-actions button { min-height: 38px; border-radius: 4px; background: #202b36; border-color: #3f4d5c; font-size: 11.5px; font-weight: 600; }
  .mobile-quick-actions button:active { background: #344352; border-color: #6c7e91; }

  .map-hud-top-right { top: 62px !important; left: auto !important; right: 8px !important; max-width: calc(100vw - 16px) !important; }
  .map-hud-top-right .hud-panel { max-width: min(310px, calc(100vw - 16px)) !important; padding: 4px !important; }
  .btn-layer { min-height: 36px !important; }
  .legend-hud { bottom: 152px !important; }
  .legend-mobile-toggle { background: #17202a !important; border-color: #465564 !important; color: #e1b553 !important; border-radius: 5px !important; font-family: var(--font-sans) !important; font-weight: 600 !important; box-shadow: 0 6px 16px rgba(0,0,0,.35) !important; letter-spacing: 0 !important; }
  .legend-hud-body { background: rgba(15, 21, 28, .97) !important; border-color: #465564 !important; border-radius: 6px !important; box-shadow: 0 9px 24px rgba(0,0,0,.42) !important; }

  .forecast-mini-card { padding: 9px 10px; }
  .forecast-mini-metrics { font-size: 12px !important; }
  .formula-chip .label { font-size: 10px !important; }
  .formula-chip .val { font-size: 13px !important; }
}

@media (max-width: 420px) {
  .master-brand-dock { width: calc(100vw - 14px) !important; }
  .master-brand-dock .master-title { font-size: 13px !important; }
  .master-brand-dock .master-subtitle { max-width: 205px; }
  .mobile-quick-metrics span:last-child { display: none; }
  .mobile-quick-metrics { justify-content: flex-start; gap: 20px; }
  .status-pill { font-size: 11px; }
  .map-hud-top-right .btn-layer:nth-child(3),
  .map-hud-top-right .btn-layer:nth-child(4) { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  .status-indicator.pulse-red,
  .cbmmg-pin.anim-drop-spring,
  .tactical-pulse-marker::before { animation: none !important; }
}

/* Boletim por parque: leitura rápida, editorial e pronto para impressão. */
.analysis-park-search { width: 100%; box-sizing: border-box; margin: 0 0 8px; padding: 11px 12px; border: 1px solid #3b4b5b; border-radius: 6px; background: #101821; color: #f4f6f8; font: 600 12px var(--font-sans); }
.analysis-park-search:focus { outline: 2px solid #00d9e8; outline-offset: 1px; border-color: #00d9e8; }
.park-report-modal { display: none; position: fixed; inset: 0; z-index: 3000; background: rgba(4, 9, 14, .84); padding: clamp(8px, 3vw, 32px); overflow: auto; }
.park-report-modal.is-open { display: flex; align-items: flex-start; justify-content: center; animation: parkModalIn .18s ease-out both; }
.park-report-dialog { width: min(940px, 100%); margin: auto; background: #f4f7fa; color: #1c2a38; border-radius: 10px; box-shadow: 0 24px 80px rgba(0,0,0,.52); overflow: hidden; }
.park-report-header { display: flex; justify-content: space-between; gap: 20px; padding: 22px 26px; background: linear-gradient(120deg, #162738, #263b4b); color: #f4f7fa; border-bottom: 4px solid #d5a42a; }
.park-report-kicker { display: block; color: #7fe5ed; font: 800 10px/1.2 var(--font-sans); letter-spacing: .12em; text-transform: uppercase; }
.park-report-header h2 { margin: 6px 0 4px; font: 800 clamp(20px, 3vw, 29px)/1.1 var(--font-sans); }
.park-report-header p { margin: 0; color: #c5d2dc; font-size: 12px; }
.park-report-close { width: 34px; height: 34px; border: 1px solid #81909b; border-radius: 6px; background: transparent; color: #fff; font-size: 25px; cursor: pointer; }
.park-report-body { padding: 22px 26px 26px; }
.park-report-status { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; padding: 11px 13px; border-radius: 6px; background: #e9eef2; font-size: 12px; }
.park-report-status span:last-child { margin-left: auto; color: #526575; font-size: 11px; }
.park-report-status.critical { background: rgba(255,23,68,.12); color: #b31331; border-left: 4px solid #ff1744; }
.park-report-status.attention { background: rgba(255,179,0,.16); color: #8a5c00; border-left: 4px solid #ffb300; }
.park-report-status.normal { background: rgba(0,230,118,.12); color: #147044; border-left: 4px solid #00e676; }
.park-status-dot { width: 9px; height: 9px; border-radius: 50%; background: currentColor; box-shadow: 0 0 0 4px color-mix(in srgb, currentColor 16%, transparent); }
.park-report-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin: 14px 0; }
.park-report-kpis article { padding: 13px; border: 1px solid #d4dde4; border-radius: 7px; background: #fff; }
.park-report-kpis small, .park-report-kpis span { display: block; color: #617383; font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
.park-report-kpis strong { display: block; margin: 5px 0; font: 800 26px/1 var(--font-sans); color: #1e5268; }
.park-report-section { margin-top: 16px; padding-top: 16px; border-top: 1px solid #d7e0e7; }
.park-report-section h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; color: #254457; font-size: 14px; }
.park-report-section h3 i { color: #bf8b14; }
.park-risk-chart { height: 150px; display: flex; align-items: end; gap: 5px; padding: 12px 8px 0; border-bottom: 1px solid #becbd4; background: linear-gradient(to top, rgba(28,82,104,.08) 1px, transparent 1px) 0 0/100% 25%; }
.park-risk-bar { position: relative; display: flex; flex: 1; height: 100%; align-items: end; min-width: 10px; }
.park-risk-bar span { width: 100%; min-height: 5px; border-radius: 3px 3px 0 0; background: #00e676; transform-origin: bottom; animation: parkBarIn .55s ease-out both; }
.park-risk-bar small { position: absolute; top: calc(100% + 4px); width: 100%; overflow: hidden; color: #6a7a87; font-size: 8px; text-align: center; }
.park-chart-legend { display: flex; gap: 14px; margin-top: 14px; color: #637482; font-size: 10px; }
.park-chart-legend span::before { content: ''; display: inline-block; width: 9px; height: 9px; margin-right: 5px; border-radius: 2px; background: #00e676; vertical-align: -1px; }
.park-chart-legend span + span::before { background: #ffb300; }
.park-forecast-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 7px; }
.park-forecast-grid article { padding: 9px 7px; border: 1px solid #d5dfe6; border-radius: 6px; background: #fff; }
.park-forecast-grid b, .park-forecast-grid strong, .park-forecast-grid span, .park-forecast-grid small { display: block; }
.park-forecast-grid b { color: #506575; font-size: 10px; }
.park-forecast-grid strong { margin: 6px 0; color: #1d657b; font-size: 17px; }
.park-forecast-grid span, .park-forecast-grid small { color: #657785; font-size: 9px; line-height: 1.35; }
.park-context-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.park-context-grid article { min-height: 58px; padding: 9px 10px; border: 1px solid #d5dfe6; border-radius: 6px; background: #f9fbfc; }
.park-context-grid small, .park-context-grid b { display: block; }
.park-context-grid small { color: #718391; font-size: 9px; text-transform: uppercase; letter-spacing: .035em; }
.park-context-grid b { margin-top: 5px; color: #2d5064; font-size: 10px; line-height: 1.35; }
.park-section-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.park-section-heading h3 { margin-bottom: 0; }
.park-action-legend { color: #738391; font: 700 9px/1.3 var(--font-mono); letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; }
.park-action-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 12px; }
.park-action-grid article { position: relative; min-height: 132px; padding: 13px 12px 12px; border: 1px solid #d5dfe6; border-left: 4px solid #bf8b14; border-radius: 7px; background: #fff; box-shadow: 0 3px 10px rgba(28, 52, 68, .06); }
.park-action-grid article::before { content: ''; position: absolute; top: 0; left: 4px; right: 0; height: 3px; border-radius: 0 5px 0 0; background: #bf8b14; opacity: .85; }
.park-action-grid article.action-p { border-left-color: #168b69; }
.park-action-grid article.action-p::before { background: #168b69; }
.park-action-grid article.action-r { border-left-color: #d39b19; }
.park-action-grid article.action-r::before { background: #d39b19; }
.park-action-grid article.action-o { border-left-color: #d3483d; }
.park-action-grid article.action-o::before { background: #d3483d; }
.park-action-grid b { display: block; color: #254457; font-size: 11px; line-height: 1.35; }
.park-action-grid article.action-p b { color: #12634e; }
.park-action-grid article.action-r b { color: #825e08; }
.park-action-grid article.action-o b { color: #9d2e27; }
.diao-code-list { display: block; margin: 6px 0 0; color: #697d8a; font: 800 9px/1.35 var(--font-mono); letter-spacing: .025em; text-transform: uppercase; }
.park-action-grid .diao-code-list { padding: 4px 6px; border: 1px solid #d9e2e8; border-radius: 4px; background: #f4f7f9; }
.park-action-grid p { margin: 8px 0 0; color: #435665; font-size: 11px; line-height: 1.45; }
.park-report-notes p { margin: 0 0 6px; color: #526575; font-size: 11px; line-height: 1.45; }
.park-report-notes small { color: #788996; font-size: 10px; }
.park-report-empty { padding: 70px 20px; text-align: center; color: #526575; }
.park-report-empty i { color: #c29016; font-size: 30px; }
.park-report-empty h3 { color: #254457; }
.park-report-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 26px; background: #e8eef2; color: #647584; font-size: 10px; }
.park-report-footer > div { display: flex; gap: 8px; }
@keyframes parkModalIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes parkBarIn { from { transform: scaleY(0); opacity: .2; } to { transform: scaleY(1); opacity: 1; } }
@media (max-width: 700px) { .park-report-header, .park-report-body, .park-report-footer { padding-left: 15px; padding-right: 15px; } .park-report-kpis { grid-template-columns: 1fr 1fr; } .park-report-kpis article:last-child { grid-column: 1/-1; } .park-forecast-grid { grid-template-columns: repeat(2, 1fr); } .park-context-grid { grid-template-columns: 1fr 1fr; } .park-action-grid { grid-template-columns: 1fr; } .park-report-footer { align-items: flex-start; flex-direction: column; } }
@media print { body * { visibility: hidden !important; } #parkReportModal, #parkReportModal * { visibility: visible !important; } #parkReportModal { display: block !important; position: absolute; inset: 0; padding: 0; background: #fff; } .park-report-dialog { width: 100%; box-shadow: none; border-radius: 0; } .park-report-close, .park-report-footer button { display: none; } .park-report-footer { background: #fff; padding: 12px 0; } }

@media print {
  .a4-sheet-document { font-family: Arial, sans-serif !important; }
}
