﻿
/* ===== Consolidated from styles.css ===== */
:root {
  --pac-deep: #013440;
  --pac-purple: #372A40;
  --pac-cyan: #99E9F2;
  --pac-magenta: #BF265E;
  --pac-hot: #F21D56;
  --pac-ink: #07191f;
  --text: #eafcff;
  --muted: rgba(234, 252, 255, .68);
  --glass: rgba(255, 255, 255, .08);
  --glass-strong: rgba(255, 255, 255, .12);
  --line: rgba(153, 233, 242, .22);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  color: var(--text);
  font-family: Inter, Segoe UI, Roboto, Arial, sans-serif;
  background:
    radial-gradient(circle at 10% 0%, rgba(153, 233, 242, .18), transparent 28%),
    radial-gradient(circle at 90% 8%, rgba(242, 29, 86, .18), transparent 26%),
    linear-gradient(135deg, #012b35 0%, #013440 42%, #151925 100%);
  min-height: 100vh;
}

.app-shell {
  padding: 22px;
  max-width: 1820px;
  margin: 0 auto;
}

.hero {
  min-height: 170px;
  display: grid;
  grid-template-columns: 260px 1fr auto;
  gap: 22px;
  align-items: center;
  padding: 24px;
  border: 1px solid var(--line);
  background: linear-gradient(135deg, rgba(1,52,64,.84), rgba(55,42,64,.58));
  backdrop-filter: blur(18px);
  border-radius: 30px;
  box-shadow: 0 26px 80px rgba(0, 0, 0, .32);
  overflow: hidden;
  position: relative;
}

.hero:before {
  content: "";
  position: absolute;
  inset: -90px -130px auto auto;
  width: 330px;
  height: 330px;
  background: radial-gradient(circle, rgba(153, 233, 242, .32), transparent 64%);
  filter: blur(5px);
}

.logo-card {
  height: 118px;
  border-radius: 24px;
  border: 1px solid rgba(153,233,242,.2);
  background: rgba(1,52,64,.62);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.logo-card img {
  max-width: 92%;
  max-height: 92%;
  object-fit: contain;
}

.hero h1 {
  margin: 0;
  font-size: clamp(28px, 4vw, 54px);
  letter-spacing: -1.4px;
  line-height: 1;
}

.hero p {
  margin: 12px 0 0;
  color: var(--muted);
  font-size: 16px;
}

.source-pill {
  position: relative;
  z-index: 2;
  padding: 12px 16px;
  border-radius: 999px;
  border: 1px solid rgba(153,233,242,.24);
  background: rgba(0,0,0,.18);
  color: var(--pac-cyan);
  font-size: 13px;
  white-space: nowrap;
}

.section-title {
  margin: 28px 4px 14px;
  font-size: 18px;
  color: var(--pac-cyan);
  letter-spacing: .4px;
}

.filters {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(8, minmax(140px, 1fr));
  gap: 12px;
}

.filter-card, .card, .kpi-card, .table-card, .detail-panel {
  border: 1px solid var(--line);
  background: var(--glass);
  backdrop-filter: blur(18px);
  border-radius: 24px;
  box-shadow: 0 18px 50px rgba(0, 0, 0, .24);
}

.filter-card {
  padding: 12px;
  min-width: 0;
}

.filter-label {
  display: block;
  color: var(--muted);
  font-size: 12px;
  margin-bottom: 8px;
}

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(150px, 1fr));
  gap: 14px;
  margin-top: 18px;
}

.kpi-card {
  padding: 18px;
  position: relative;
  overflow: hidden;
}

.kpi-card:after {
  content: "";
  position: absolute;
  right: -34px;
  top: -34px;
  width: 110px;
  height: 110px;
  border-radius: 999px;
  background: rgba(153,233,242,.12);
}

.kpi-label {
  color: var(--muted);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .7px;
}

.kpi-value {
  font-size: 34px;
  font-weight: 800;
  margin-top: 8px;
  letter-spacing: -1px;
}

.kpi-note {
  color: var(--muted);
  margin-top: 8px;
  font-size: 12px;
}

.grid-2 {
  display: grid;
  grid-template-columns: 1.35fr .9fr;
  gap: 14px;
  margin-top: 14px;
}

.grid-3 {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 14px;
  margin-top: 14px;
}

.card { padding: 14px; min-height: 360px; }
.card h3, .table-card h3, .detail-panel h3 {
  margin: 4px 6px 12px;
  font-size: 15px;
  color: var(--text);
}

.table-card {
  padding: 14px;
  margin-top: 14px;
}

.detail-panel {
  margin-top: 14px;
  padding: 18px;
  display: none;
}

.detail-panel.active { display: block; }

.detail-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: 12px;
}

.detail-item {
  padding: 13px;
  border-radius: 18px;
  border: 1px solid rgba(153,233,242,.16);
  background: rgba(255,255,255,.06);
}

.detail-key { color: var(--muted); font-size: 12px; }
.detail-value { margin-top: 6px; font-size: 15px; font-weight: 650; word-break: break-word; }

/* Dash / React Select dark fix */
.Select-control, .Select-menu-outer, .Select-value, .Select-placeholder {
  background: rgba(0, 0, 0, .22) !important;
  border-color: rgba(153, 233, 242, .18) !important;
  color: var(--text) !important;
}
.Select-menu-outer { border-radius: 14px; overflow: hidden; }
.Select-option { background: #082c36 !important; color: var(--text) !important; }
.Select-option.is-focused { background: rgba(153,233,242,.16) !important; }
.Select-value-label, .Select-placeholder { color: var(--text) !important; }
.Select-input > input { color: var(--text) !important; }
.Select-arrow { border-top-color: var(--pac-cyan) !important; }

input[type="text"] {
  width: 100%;
  height: 38px;
  border-radius: 6px;
  border: 1px solid rgba(153,233,242,.18);
  background: rgba(0,0,0,.22);
  color: var(--text);
  padding: 0 12px;
  outline: none;
}

@media (max-width: 1280px) {
  .hero { grid-template-columns: 180px 1fr; }
  .source-pill { grid-column: 1 / -1; justify-self: start; }
  .filters { grid-template-columns: repeat(4, minmax(150px, 1fr)); }
  .kpi-grid { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  .grid-2, .grid-3 { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .app-shell { padding: 12px; }
  .hero { grid-template-columns: 1fr; }
  .logo-card { height: 94px; }
  .filters { grid-template-columns: 1fr; }
  .kpi-grid { grid-template-columns: 1fr 1fr; }
  .detail-grid { grid-template-columns: 1fr; }
}

/* Hotfix v0.1.2: keep filter dropdown menus above KPI/cards */
.filters {
  position: relative;
  z-index: 5000;
  overflow: visible;
}

.filter-card {
  position: relative;
  z-index: 5001;
  overflow: visible;
}

.filter-card:focus-within {
  z-index: 9000;
}

.kpi-grid,
.grid-2,
.grid-3,
.table-card,
.detail-panel {
  position: relative;
  z-index: 1;
}

/* Dash / React Select v1 dropdown stacking */
.Select,
.Select-control {
  position: relative;
}

.Select.is-open,
.Select--multi.is-open {
  z-index: 99999 !important;
}

.Select-menu-outer {
  position: absolute !important;
  z-index: 99999 !important;
  max-height: 340px !important;
  overflow-y: auto !important;
  box-shadow: 0 22px 60px rgba(0, 0, 0, .42) !important;
  border: 1px solid rgba(153, 233, 242, .35) !important;
}

.VirtualizedSelectGrid,
.VirtualizedSelectOption {
  z-index: 99999 !important;
}


/* Hotfix v0.1.3: darker and readable dropdown menus */
.Select-menu-outer,
.Select-menu {
  background: rgba(3, 18, 24, .98) !important;
  backdrop-filter: blur(18px) !important;
  -webkit-backdrop-filter: blur(18px) !important;
  border-radius: 14px !important;
}

.Select-menu-outer {
  border: 1px solid rgba(153, 233, 242, .38) !important;
  box-shadow: 0 26px 70px rgba(0, 0, 0, .72) !important;
  overflow-x: hidden !important;
}

.Select-option,
.VirtualizedSelectOption {
  background: rgba(3, 24, 31, .98) !important;
  color: rgba(234, 252, 255, .94) !important;
  font-size: 11.5px !important;
  line-height: 1.18 !important;
  font-weight: 500 !important;
  letter-spacing: .1px !important;
  padding: 6px 10px !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  display: flex !important;
  align-items: center !important;
  min-height: 42px !important;
  border-bottom: 1px solid rgba(153, 233, 242, .08) !important;
}

.Select-option.is-focused,
.VirtualizedSelectFocusedOption {
  background: rgba(153, 233, 242, .18) !important;
  color: #ffffff !important;
}

.Select-option.is-selected,
.VirtualizedSelectSelectedOption {
  background: rgba(242, 29, 86, .30) !important;
  color: #ffffff !important;
}

.Select-value-label,
.Select-placeholder,
.Select-input,
.Select-input > input {
  font-size: 12px !important;
}

.Select-control {
  min-height: 36px !important;
  background: rgba(2, 20, 27, .72) !important;
}

.Select-value,
.Select-placeholder {
  line-height: 34px !important;
}

/* v0.1.5 | Detail 360 shipment panel */
.detail360-shell {
  display: block;
  padding: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 8% 0%, rgba(153,233,242,.16), transparent 32%),
    radial-gradient(circle at 92% 18%, rgba(242,29,86,.14), transparent 28%),
    linear-gradient(135deg, rgba(1,52,64,.92), rgba(14,31,42,.94) 56%, rgba(55,42,64,.56));
}

.detail360 {
  padding: 20px;
}

.detail360-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 8px 4px 18px;
  border-bottom: 1px solid rgba(153,233,242,.16);
}

.detail360-eyebrow {
  color: var(--pac-cyan);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1.4px;
  font-weight: 800;
}

.detail360-header h2 {
  margin: 5px 0 0;
  font-size: clamp(28px, 3vw, 44px);
  letter-spacing: -1px;
  line-height: 1;
}

.detail360-header p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 14px;
}

.detail360-badges {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  max-width: 560px;
}

.pac-badge {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 7px 11px;
  border-radius: 999px;
  border: 1px solid rgba(153,233,242,.18);
  background: rgba(255,255,255,.07);
  color: var(--text);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .3px;
  text-transform: uppercase;
  white-space: nowrap;
}

.pac-badge.cyan { color: var(--pac-cyan); border-color: rgba(153,233,242,.38); background: rgba(153,233,242,.10); }
.pac-badge.magenta { color: #ff8eb3; border-color: rgba(191,38,94,.42); background: rgba(191,38,94,.17); }
.pac-badge.danger { color: #ffd7e2; border-color: rgba(242,29,86,.58); background: rgba(242,29,86,.24); }
.pac-badge.success { color: #cfffe9; border-color: rgba(153,233,242,.42); background: rgba(68,220,160,.16); }
.pac-badge.muted { color: rgba(234,252,255,.70); background: rgba(255,255,255,.045); }

.detail-metrics-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(130px, 1fr));
  gap: 12px;
  margin: 18px 0;
}

.detail-metric {
  min-height: 116px;
  padding: 14px;
  border-radius: 20px;
  border: 1px solid rgba(153,233,242,.16);
  background: rgba(0,0,0,.18);
  position: relative;
  overflow: hidden;
}

.detail-metric:after {
  content: "";
  position: absolute;
  right: -36px;
  top: -36px;
  width: 92px;
  height: 92px;
  border-radius: 999px;
  background: rgba(153,233,242,.08);
}

.detail-metric.danger { border-color: rgba(242,29,86,.42); background: rgba(242,29,86,.12); }
.detail-metric.warning { border-color: rgba(153,233,242,.36); background: rgba(153,233,242,.10); }
.detail-metric.success { border-color: rgba(153,233,242,.30); background: rgba(80,210,165,.10); }
.detail-metric.muted { opacity: .72; }

.detail-metric-title {
  color: var(--muted);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .8px;
  font-weight: 750;
}

.detail-metric-value {
  position: relative;
  z-index: 1;
  margin-top: 8px;
  font-size: 25px;
  font-weight: 900;
  letter-spacing: -.7px;
}

.detail-metric-note {
  position: relative;
  z-index: 1;
  margin-top: 7px;
  color: var(--muted);
  font-size: 11.5px;
  line-height: 1.25;
}

.detail360-grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 14px;
  margin-top: 14px;
}

.detail-section {
  padding: 16px;
  border-radius: 22px;
  border: 1px solid rgba(153,233,242,.15);
  background: rgba(255,255,255,.055);
}

.detail-section + .detail-section,
.detail-actions-row {
  margin-top: 14px;
}

.detail-section-title {
  color: var(--pac-cyan);
  font-size: 12px;
  font-weight: 850;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 12px;
}

.timeline {
  display: grid;
  gap: 10px;
}

.timeline-step {
  display: grid;
  grid-template-columns: 22px 1fr;
  gap: 10px;
  align-items: start;
  position: relative;
}

.timeline-step:not(:last-child):before {
  content: "";
  position: absolute;
  left: 9px;
  top: 22px;
  bottom: -10px;
  width: 1px;
  background: rgba(153,233,242,.16);
}

.timeline-dot {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  margin-top: 2px;
  border: 2px solid rgba(153,233,242,.42);
  background: rgba(0,0,0,.28);
  box-shadow: 0 0 0 5px rgba(153,233,242,.06);
}

.timeline-step.done .timeline-dot {
  background: var(--pac-cyan);
  border-color: rgba(255,255,255,.70);
  box-shadow: 0 0 24px rgba(153,233,242,.32);
}

.timeline-step.missing .timeline-dot {
  border-color: rgba(234,252,255,.25);
  background: rgba(255,255,255,.04);
}

.timeline-content {
  padding-bottom: 3px;
}

.timeline-label {
  font-size: 12px;
  color: var(--muted);
  font-weight: 800;
  letter-spacing: .6px;
}

.timeline-date {
  margin-top: 3px;
  font-size: 15px;
  font-weight: 800;
}

.timeline-note {
  margin-top: 2px;
  font-size: 11px;
  color: var(--muted);
}

.detail-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(180px, 1fr));
  gap: 10px;
}

.detail-field {
  padding: 12px;
  border-radius: 16px;
  border: 1px solid rgba(153,233,242,.11);
  background: rgba(0,0,0,.14);
  min-width: 0;
}

.detail-field.wide {
  grid-column: 1 / -1;
}

.detail-field .detail-key {
  color: var(--muted);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .65px;
  font-weight: 750;
}

.detail-field .detail-value {
  margin-top: 6px;
  font-size: 13px;
  line-height: 1.25;
  font-weight: 650;
  overflow-wrap: anywhere;
}

.detail-actions-row {
  padding: 15px 16px;
  border-radius: 22px;
  border: 1px solid rgba(153,233,242,.15);
  background: rgba(0,0,0,.14);
}

.clipboard-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 10px;
}

.copy-btn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 10px;
  border: 1px solid rgba(153,233,242,.28);
  background: rgba(153,233,242,.10);
  color: var(--pac-cyan);
}

.copy-label {
  color: var(--muted);
  font-size: 12px;
  margin-right: 12px;
}

@media (max-width: 1280px) {
  .detail-metrics-grid { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
  .detail360-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .detail360-header { flex-direction: column; }
  .detail360-badges { justify-content: flex-start; }
  .detail-metrics-grid { grid-template-columns: 1fr 1fr; }
  .detail-field-grid { grid-template-columns: 1fr; }
}

/* v0.1.6 | Alertas Operativas */
.alerts-section {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--line);
  background:
    radial-gradient(circle at 8% 0%, rgba(153,233,242,.13), transparent 30%),
    radial-gradient(circle at 94% 12%, rgba(242,29,86,.12), transparent 26%),
    rgba(255, 255, 255, .075);
  backdrop-filter: blur(18px);
  border-radius: 26px;
  box-shadow: 0 20px 60px rgba(0,0,0,.26);
  position: relative;
  z-index: 1;
}

.section-header-row {
  display: grid;
  grid-template-columns: 1fr minmax(240px, 340px);
  gap: 18px;
  align-items: end;
  margin-bottom: 14px;
}

.section-eyebrow {
  color: var(--pac-cyan);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 1.4px;
  font-weight: 850;
}

.section-header-row h2 {
  margin: 4px 0 0;
  font-size: 25px;
  letter-spacing: -.4px;
}

.section-header-row p {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.35;
}

.alert-selector {
  position: relative;
  z-index: 7000;
  padding: 12px;
  border-radius: 18px;
  border: 1px solid rgba(153,233,242,.14);
  background: rgba(0,0,0,.15);
}

.alert-card-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(160px, 1fr));
  gap: 12px;
  margin-top: 12px;
}

.alert-card {
  text-align: left;
  min-height: 118px;
  padding: 14px;
  border-radius: 20px;
  border: 1px solid rgba(153,233,242,.18);
  background: rgba(0,0,0,.18);
  color: var(--text);
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: transform .16s ease, border-color .16s ease, background .16s ease;
  font-family: inherit;
}

.alert-card:hover {
  transform: translateY(-2px);
  border-color: rgba(153,233,242,.46);
  background: rgba(153,233,242,.10);
}

.alert-card.selected {
  border-color: rgba(153,233,242,.60);
  box-shadow: 0 0 0 1px rgba(153,233,242,.18), 0 22px 54px rgba(0,0,0,.28);
}

.alert-card:after {
  content: "";
  position: absolute;
  right: -34px;
  top: -34px;
  width: 104px;
  height: 104px;
  border-radius: 999px;
  background: rgba(153,233,242,.08);
}

.alert-card.danger { border-color: rgba(242,29,86,.38); background: rgba(242,29,86,.11); }
.alert-card.warning { border-color: rgba(153,233,242,.30); background: rgba(153,233,242,.08); }
.alert-card.magenta { border-color: rgba(191,38,94,.36); background: rgba(191,38,94,.12); }
.alert-card.cyan { border-color: rgba(153,233,242,.36); background: rgba(153,233,242,.10); }
.alert-card.muted { opacity: .78; }

.alert-card-label {
  color: var(--muted);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .8px;
  font-weight: 850;
  position: relative;
  z-index: 1;
}

.alert-card-value {
  margin-top: 8px;
  font-size: 31px;
  font-weight: 900;
  letter-spacing: -.8px;
  position: relative;
  z-index: 1;
}

.alert-card-note {
  margin-top: 6px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.25;
  position: relative;
  z-index: 1;
}

.alert-table-card {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid rgba(153,233,242,.16);
  background: rgba(0,0,0,.14);
  border-radius: 22px;
}

.alert-table-title {
  color: var(--pac-cyan);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .4px;
  margin: 2px 4px 12px;
}

@media (max-width: 1280px) {
  .alert-card-grid { grid-template-columns: repeat(3, minmax(160px, 1fr)); }
  .section-header-row { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .alert-card-grid { grid-template-columns: 1fr 1fr; }
}


/* v0.1.7 | Alert table visibility hotfix */
.alert-table-card {
  margin-bottom: 18px;
}

.alert-table-card .dash-table-container {
  background: rgba(1, 36, 46, .55) !important;
  border-radius: 18px !important;
}

.alert-table-card .dash-spreadsheet-container,
.alert-table-card .dash-spreadsheet-inner {
  background: transparent !important;
}

.alert-table-card .dash-spreadsheet-inner table {
  background: rgba(1, 36, 46, .80) !important;
}

.alert-table-card th {
  position: sticky !important;
  top: 0 !important;
  z-index: 5 !important;
}

.alert-table-card td {
  min-height: 34px !important;
  height: 34px !important;
  line-height: 18px !important;
}

.alert-table-card .dash-cell div,
.alert-table-card .dash-header div {
  line-height: 18px !important;
}

.alert-table-card .previous-next-container,
.alert-table-card .page-number {
  color: var(--text) !important;
  font-size: 12px !important;
}

.alert-table-card button {
  color: var(--text) !important;
  background: rgba(153,233,242,.10) !important;
  border: 1px solid rgba(153,233,242,.18) !important;
  border-radius: 10px !important;
}

/* v0.1.8 | Alert selector stability note: callback fix in app.py */

/* v0.1.9 | Exportacion Inteligente */
.export-section {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--line);
  background:
    radial-gradient(circle at 10% 0%, rgba(153,233,242,.13), transparent 28%),
    radial-gradient(circle at 88% 16%, rgba(191,38,94,.13), transparent 26%),
    rgba(255, 255, 255, .075);
  backdrop-filter: blur(18px);
  border-radius: 26px;
  box-shadow: 0 20px 60px rgba(0,0,0,.24);
  position: relative;
  z-index: 1;
}

.export-header {
  margin-bottom: 0;
  align-items: center;
}

.export-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.pac-action-btn {
  min-height: 40px;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1px solid rgba(153,233,242,.24);
  background: rgba(0,0,0,.22);
  color: var(--text);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .15px;
  cursor: pointer;
  transition: transform .14s ease, background .14s ease, border-color .14s ease;
  font-family: inherit;
}

.pac-action-btn:hover {
  transform: translateY(-1px);
  border-color: rgba(153,233,242,.54);
  background: rgba(153,233,242,.12);
}

.pac-action-btn.primary {
  background: rgba(153,233,242,.14);
  border-color: rgba(153,233,242,.42);
  color: #ffffff;
}

.pac-action-btn.danger {
  background: rgba(242,29,86,.16);
  border-color: rgba(242,29,86,.44);
}

.copy-action {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 14px;
  border: 1px solid rgba(153,233,242,.16);
  background: rgba(0,0,0,.16);
}

.copy-btn.big {
  width: 28px;
  height: 28px;
}

@media (max-width: 1280px) {
  .export-actions { justify-content: flex-start; }
}


/* v0.2.0 | Notificaciones Teams */
.notify-section {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--line);
  background:
    radial-gradient(circle at 12% 0%, rgba(153,233,242,.12), transparent 30%),
    radial-gradient(circle at 92% 16%, rgba(242,29,86,.10), transparent 28%),
    rgba(255, 255, 255, .07);
  backdrop-filter: blur(18px);
  border-radius: 26px;
  box-shadow: 0 20px 60px rgba(0,0,0,.24);
  position: relative;
  z-index: 1;
}

.notify-header {
  align-items: center;
  margin-bottom: 14px;
}

.notify-actions {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.notify-grid {
  display: grid;
  grid-template-columns: 1.4fr .8fr;
  gap: 14px;
}

.notify-preview-card,
.notify-status-card {
  border: 1px solid rgba(153,233,242,.16);
  background: rgba(0,0,0,.16);
  border-radius: 22px;
  padding: 14px;
}

.notify-title {
  color: var(--pac-cyan);
  font-size: 13px;
  font-weight: 850;
  letter-spacing: .45px;
  margin-bottom: 10px;
}

.teams-preview-box {
  width: 100%;
  min-height: 270px;
  resize: vertical;
  padding: 14px;
  border-radius: 16px;
  border: 1px solid rgba(153,233,242,.18);
  background: rgba(1, 28, 38, .88);
  color: var(--text);
  font-size: 12px;
  line-height: 1.45;
  font-family: Consolas, 'Cascadia Mono', 'Segoe UI Mono', monospace;
  outline: none;
}

.teams-status {
  min-height: 78px;
  padding: 13px;
  border-radius: 16px;
  border: 1px solid rgba(153,233,242,.15);
  background: rgba(1, 28, 38, .62);
  color: var(--muted);
  font-size: 12.5px;
  line-height: 1.4;
}

.teams-status-ok {
  color: #ffffff;
  border-left: 4px solid var(--pac-cyan);
  padding-left: 10px;
}

.teams-status-error {
  color: #ffffff;
  border-left: 4px solid var(--pac-hot);
  padding-left: 10px;
}

.notify-help {
  margin-top: 12px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

@media (max-width: 1280px) {
  .notify-grid { grid-template-columns: 1fr; }
  .notify-actions { justify-content: flex-start; }
}

/* v0.2.1 | Teams Smart Blocks */
.notify-grid.smart {
  grid-template-columns: 1.05fr 1.35fr .9fr;
  align-items: stretch;
}

.teams-preview-box.smart {
  min-height: 360px;
  background: rgba(1, 20, 30, .94);
}

.notify-status-card .teams-status + .teams-status {
  margin-top: 10px;
}

.notify-actions .pac-action-btn.danger {
  background: linear-gradient(135deg, rgba(191,38,94,.92), rgba(242,29,86,.78));
  color: #fff;
  border-color: rgba(242,29,86,.48);
}

@media (max-width: 1500px) {
  .notify-grid.smart { grid-template-columns: 1fr; }
}

/* v0.2.4 | Teams Delivery Rules */
.delivery-rules-card {
  margin: 16px 0 18px;
  padding: 18px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(1, 52, 64, .82), rgba(55, 42, 64, .72));
  border: 1px solid rgba(153, 233, 242, .18);
  box-shadow: 0 18px 50px rgba(0,0,0,.24);
  backdrop-filter: blur(18px);
}
.delivery-rules-grid {
  display: grid;
  grid-template-columns: minmax(280px, 1.7fr) minmax(150px, .7fr) minmax(170px, .7fr) minmax(320px, 1.6fr);
  gap: 14px;
  align-items: end;
}
.delivery-rule-field { min-width: 0; }
.delivery-rule-field.wide { min-width: 280px; }
.pac-number-input {
  width: 100%;
  min-height: 42px;
  border-radius: 14px;
  border: 1px solid rgba(153,233,242,.25);
  background: rgba(0,0,0,.28);
  color: #EAFBFF;
  padding: 0 12px;
  font-size: 13px;
  outline: none;
}
.delivery-checklist {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  padding-top: 4px;
}
.delivery-check-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: rgba(234,252,255,.88);
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(153,233,242,.14);
}
.delivery-check-input { accent-color: #99E9F2; }
.notify-help.small {
  margin-top: 10px;
  font-size: 12px;
  color: rgba(234,252,255,.64);
}
@media (max-width: 1100px) {
  .delivery-rules-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .delivery-rules-grid { grid-template-columns: 1fr; }
}

/* v0.2.5 | Jobcosting Diagnostic */
.jobcosting-section {
  margin: 22px 0;
}
.jobcosting-diagnostic-card {
  padding: 22px;
  border-radius: 28px;
  background:
    radial-gradient(circle at top left, rgba(153,233,242,.11), transparent 34%),
    linear-gradient(135deg, rgba(1, 52, 64, .78), rgba(55, 42, 64, .62));
  border: 1px solid rgba(153, 233, 242, .18);
  box-shadow: 0 24px 70px rgba(0,0,0,.30);
  backdrop-filter: blur(18px);
}
.jobcosting-header {
  align-items: stretch;
  gap: 18px;
}
.jc-status {
  max-width: 520px;
  min-width: 340px;
  padding: 16px 18px;
  border-radius: 20px;
  border: 1px solid rgba(153,233,242,.18);
  background: rgba(1, 20, 30, .72);
}
.jc-status.ok { border-left: 5px solid #99E9F2; }
.jc-status.warning { border-left: 5px solid #F21D56; }
.jc-status.danger { border-left: 5px solid #BF265E; }
.jc-status-title {
  font-weight: 800;
  color: #ffffff;
  margin-bottom: 6px;
}
.jc-status-text {
  font-size: 12.5px;
  line-height: 1.45;
  color: rgba(234,252,255,.76);
}
.jc-kpi-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(130px, 1fr));
  gap: 14px;
  margin-top: 20px;
}
.jc-kpi {
  padding: 15px;
  border-radius: 20px;
  background: rgba(1, 20, 30, .64);
  border: 1px solid rgba(153,233,242,.15);
  min-height: 110px;
}
.jc-kpi.warning { border-color: rgba(242,29,86,.42); box-shadow: inset 0 0 0 1px rgba(242,29,86,.16); }
.jc-kpi.ok { border-color: rgba(153,233,242,.38); box-shadow: inset 0 0 0 1px rgba(153,233,242,.14); }
.jc-kpi-label {
  color: rgba(234,252,255,.62);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .07em;
}
.jc-kpi-value {
  color: #ffffff;
  font-size: 25px;
  font-weight: 850;
  margin-top: 6px;
}
.jc-kpi-note {
  color: rgba(234,252,255,.62);
  font-size: 11.5px;
  margin-top: 5px;
  line-height: 1.35;
}
.jc-grid {
  display: grid;
  grid-template-columns: 1.55fr 1fr 1fr 1fr;
  gap: 14px;
  margin-top: 18px;
}
.jc-panel {
  padding: 16px;
  border-radius: 22px;
  background: rgba(1, 16, 24, .68);
  border: 1px solid rgba(153,233,242,.14);
  min-width: 0;
}
.jc-panel h3,
.jc-next-steps h3 {
  margin: 0 0 12px;
  color: #EAFBFF;
  font-size: 15px;
}
.jc-next-steps {
  margin-top: 18px;
  padding: 18px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(191,38,94,.18), rgba(1,52,64,.42));
  border: 1px solid rgba(242,29,86,.18);
  color: rgba(234,252,255,.78);
}
.jc-next-steps p {
  margin: 0 0 10px;
  font-size: 12.5px;
  line-height: 1.45;
}
.jc-next-steps ul {
  margin: 0;
  padding-left: 18px;
  font-size: 12.5px;
  line-height: 1.55;
}
@media (max-width: 1500px) {
  .jc-kpi-grid { grid-template-columns: repeat(3, 1fr); }
  .jc-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 900px) {
  .jc-kpi-grid, .jc-grid { grid-template-columns: 1fr; }
  .jc-status { min-width: 0; max-width: none; }
}

/* v0.2.7 Finanzas 360 Pro */
.finance-controls-section {
  margin: 24px 0 18px;
  padding: 22px;
  border-radius: 24px;
  border: 1px solid rgba(153, 233, 242, .16);
  background: linear-gradient(135deg, rgba(1, 52, 64, .54), rgba(55, 42, 64, .34));
  box-shadow: 0 24px 70px rgba(0, 0, 0, .28);
  backdrop-filter: blur(18px);
}
.finance-controls-header { margin-bottom: 14px; }
.finance-controls-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(220px, 1fr));
  gap: 16px;
  align-items: end;
}
.finance-pro-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 12px 0 18px;
}
.finance-chip {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 160px;
  padding: 10px 14px;
  border-radius: 16px;
  border: 1px solid rgba(153, 233, 242, .18);
  background: rgba(1, 20, 30, .56);
}
.finance-chip span {
  font-size: 11px;
  color: rgba(234, 252, 255, .62);
  text-transform: uppercase;
  letter-spacing: .07em;
}
.finance-chip strong {
  color: #99E9F2;
  font-size: 13px;
}
.finance-pro .jc-panel.wide {
  grid-column: span 2;
}
.finance-pro-grid {
  grid-template-columns: repeat(2, minmax(320px, 1fr));
}
.finance-pro-kpis .jc-kpi-value {
  font-size: clamp(18px, 2vw, 28px);
}
@media (max-width: 1100px) {
  .finance-controls-grid,
  .finance-pro-grid {
    grid-template-columns: 1fr;
  }
  .finance-pro .jc-panel.wide {
    grid-column: span 1;
  }
}

/* v0.2.8 | Portal navigation + finance Teams alerts */
.site-shell {
  max-width: 1640px;
}
.site-navigation-card,
.global-controls-card,
.page-shell {
  background: linear-gradient(135deg, rgba(1,52,64,.72), rgba(55,42,64,.42));
  border: 1px solid rgba(153,233,242,.18);
  border-radius: 26px;
  box-shadow: 0 24px 70px rgba(0,0,0,.28);
  backdrop-filter: blur(18px);
  padding: 18px;
  margin: 18px 0;
}
.site-navigation-header,
.page-title-row {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  align-items: flex-start;
  margin-bottom: 14px;
}
.site-navigation-header h2,
.page-title-row h2,
.global-controls-card h2 {
  margin: 0;
  letter-spacing: -.02em;
}
.site-navigation-header p,
.page-title-row p,
.global-controls-card p {
  margin: 6px 0 0;
  color: rgba(234,251,255,.68);
}
.pac-main-tabs-wrap {
  margin-top: 12px;
}
.pac-main-tabs .tab,
.pac-tab {
  background: rgba(1,52,64,.55) !important;
  color: rgba(234,251,255,.72) !important;
  border: 1px solid rgba(153,233,242,.15) !important;
  border-radius: 16px 16px 0 0 !important;
  padding: 12px 14px !important;
  font-weight: 700 !important;
}
.pac-main-tabs .tab--selected,
.pac-tab.selected {
  background: linear-gradient(135deg, rgba(153,233,242,.18), rgba(242,29,86,.18)) !important;
  color: #EAFBFF !important;
  border-top: 1px solid rgba(153,233,242,.42) !important;
  box-shadow: 0 -8px 32px rgba(153,233,242,.10) inset;
}
.page-shell {
  border-radius: 0 0 26px 26px;
  margin-top: 0;
}
.global-controls-card {
  position: sticky;
  top: 0;
  z-index: 3500;
  padding-bottom: 12px;
}
.global-controls-card .filters {
  margin-top: 12px;
}
.section-header-row.compact {
  margin-bottom: 8px;
}
.finance-teams-section {
  margin-top: 22px;
  padding: 20px;
  border-radius: 24px;
  background: radial-gradient(circle at top left, rgba(153,233,242,.12), transparent 35%), linear-gradient(135deg, rgba(1,52,64,.64), rgba(55,42,64,.42));
  border: 1px solid rgba(153,233,242,.18);
}
.finance-delivery {
  margin-top: 14px;
}
.teams-preview-box.finance {
  min-height: 420px;
}
.notify-preview-card.wide {
  grid-column: span 2;
}
.data-health-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}
.data-health-card {
  padding: 18px;
  border-radius: 22px;
  background: rgba(1,52,64,.5);
  border: 1px solid rgba(153,233,242,.16);
}
.data-health-card h3 {
  margin: 0 0 8px;
}
.data-health-card p {
  color: rgba(234,251,255,.65);
  margin: 0 0 10px;
  font-size: 12px;
}
.data-health-card strong {
  color: #99E9F2;
  font-size: 22px;
}
.data-health-note {
  margin-top: 16px;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(153,233,242,.08);
  color: rgba(234,251,255,.78);
  border: 1px solid rgba(153,233,242,.14);
}
@media (max-width: 980px) {
  .data-health-grid,
  .notify-preview-card.wide {
    grid-column: span 1;
    grid-template-columns: 1fr;
  }
  .global-controls-card {
    position: relative;
  }
}


/* v0.3.0 | Data Quality Center */
.data-quality-center {
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid rgba(153,233,242,.16);
}
.quality-header {
  align-items: center;
}
.quality-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.quality-status-pill {
  padding: 10px 14px;
  border-radius: 999px;
  border: 1px solid rgba(153,233,242,.24);
  background: rgba(1,20,30,.62);
  color: #EAFBFF;
  font-weight: 800;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}
.data-quality-grid {
  grid-template-columns: repeat(2, minmax(320px, 1fr));
}
.data-quality-tables .jc-panel.wide,
.data-quality-grid .jc-panel.wide {
  grid-column: span 2;
}
@media (max-width: 1100px) {
  .data-quality-grid { grid-template-columns: 1fr; }
  .data-quality-tables .jc-panel.wide,
  .data-quality-grid .jc-panel.wide { grid-column: span 1; }
  .quality-actions { justify-content: flex-start; }
}

/* v0.3.1 Refresh Center */
.refresh-center {
  margin-top: 22px;
  padding: 22px;
  border: 1px solid rgba(153, 233, 242, .18);
  border-radius: 24px;
  background: linear-gradient(145deg, rgba(1,52,64,.70), rgba(55,42,64,.36));
  box-shadow: 0 24px 70px rgba(0,0,0,.24);
}
.refresh-header .quality-actions {
  gap: 10px;
  flex-wrap: wrap;
}
.refresh-command-note {
  margin: 12px 0 18px;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(0,0,0,.22);
  color: rgba(234,251,255,.82);
  border: 1px solid rgba(153,233,242,.12);
  font-size: 12px;
  line-height: 1.55;
  word-break: break-word;
}
.refresh-status-message {
  margin: 14px 0;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(153,233,242,.09);
  border: 1px solid rgba(153,233,242,.18);
  color: #EAFBFF;
  font-weight: 700;
  font-size: 13px;
}
.refresh-health-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 12px;
}
.refresh-health-grid .data-health-card p {
  word-break: break-word;
  font-size: 10.5px;
}
.refresh-grid {
  margin-top: 16px;
}
.refresh-log-box {
  width: 100%;
  min-height: 310px;
  resize: vertical;
  border: 1px solid rgba(153,233,242,.18);
  border-radius: 18px;
  padding: 12px;
  color: #EAFBFF;
  background: rgba(1,20,30,.82);
  font-family: Consolas, Monaco, monospace;
  font-size: 11px;
  line-height: 1.45;
}
@media (max-width: 1200px) {
  .refresh-health-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .refresh-health-grid { grid-template-columns: 1fr; }
}


/* v0.3.3 | UX reorganization: compact header, sticky filters, executive shell */
.site-shell { max-width: 1880px; }
.compact-hero {
  min-height: 118px;
  grid-template-columns: 170px minmax(280px, 1fr) auto;
  padding: 18px 22px;
  border-radius: 24px;
  margin-bottom: 14px;
}
.compact-logo { height: 84px; border-radius: 20px; }
.compact-hero h1 { font-size: clamp(27px, 3vw, 42px); letter-spacing: -.9px; }
.compact-hero p { margin-top: 7px; font-size: 13.5px; max-width: 760px; }
.header-status-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(126px, auto));
  gap: 8px;
  align-items: center;
  position: relative;
  z-index: 2;
}
.status-pill {
  min-height: 48px;
  padding: 8px 12px;
  border: 1px solid rgba(153,233,242,.20);
  background: rgba(0,0,0,.20);
  border-radius: 16px;
  display: grid;
  gap: 2px;
}
.status-pill span { font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: .8px; }
.status-pill strong { font-size: 12.5px; color: var(--pac-cyan); white-space: nowrap; }
.status-pill.ok strong { color: #cffff2; }
.technical-path {
  grid-column: 1 / -1;
  justify-self: end;
  color: var(--muted);
  font-size: 11px;
  max-width: 640px;
}
.technical-path summary { cursor: pointer; color: var(--pac-cyan); }
.technical-path div {
  margin-top: 6px;
  padding: 8px 10px;
  border-radius: 12px;
  background: rgba(0,0,0,.32);
  border: 1px solid rgba(153,233,242,.16);
  word-break: break-all;
}
.sticky-filters {
  position: sticky;
  top: 0;
  z-index: 7000;
  margin: 14px 0 14px;
  padding: 14px;
  border: 1px solid var(--line);
  background: linear-gradient(135deg, rgba(1,52,64,.92), rgba(15,30,38,.88));
  backdrop-filter: blur(22px);
  border-radius: 22px;
  box-shadow: 0 18px 60px rgba(0,0,0,.34);
}
.global-filter-head { align-items: flex-end; gap: 16px; }
.global-filter-head h2 { margin: 0; font-size: 20px; }
.global-filter-head p { margin: 3px 0 0; font-size: 12.5px; }
.filter-context-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  justify-content: flex-end;
  max-width: 760px;
}
.filter-chip {
  border: 1px solid rgba(153,233,242,.20);
  background: rgba(0,0,0,.20);
  color: rgba(234,252,255,.86);
  border-radius: 999px;
  padding: 6px 9px;
  font-size: 11px;
  white-space: nowrap;
}
.filter-chip strong { color: var(--pac-cyan); }
.site-navigation-card {
  margin-top: 14px;
  padding: 14px;
  border-radius: 24px;
  border: 1px solid rgba(153,233,242,.18);
  background: rgba(255,255,255,.055);
  backdrop-filter: blur(18px);
}
.site-navigation-header {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 18px;
  margin-bottom: 12px;
}
.site-navigation-header h2 { margin: 0; font-size: 21px; }
.site-navigation-header p { margin: 4px 0 0; font-size: 12.5px; color: var(--muted); }
.executive-control-panel {
  display: grid;
  grid-template-columns: minmax(280px, .9fr) minmax(420px, 1.3fr) minmax(320px, .9fr);
  gap: 14px;
  margin-top: 14px;
}
.executive-health-card, .executive-alerts-card, .executive-actions-card {
  border: 1px solid rgba(153,233,242,.20);
  background: rgba(255,255,255,.07);
  backdrop-filter: blur(18px);
  border-radius: 24px;
  box-shadow: 0 18px 50px rgba(0,0,0,.24);
  padding: 16px;
  min-height: 220px;
}
.executive-card-title {
  color: var(--pac-cyan);
  text-transform: uppercase;
  letter-spacing: .9px;
  font-size: 11px;
  font-weight: 850;
  margin-bottom: 10px;
}
.health-main { display: flex; align-items: baseline; gap: 12px; margin: 8px 0; }
.health-main strong { font-size: clamp(34px, 4vw, 54px); letter-spacing: -1.6px; line-height: .95; }
.health-main span { font-size: 18px; font-weight: 900; }
.health-score.ok .health-main strong, .health-score.ok .health-main span { color: #cffff2; }
.health-score.warning .health-main strong, .health-score.warning .health-main span { color: #99E9F2; }
.health-score.danger .health-main strong, .health-score.danger .health-main span { color: #ff6f96; }
.health-score p { color: var(--muted); margin: 4px 0 12px; font-size: 13px; }
.health-mini-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.health-mini-grid div { padding: 9px; border-radius: 14px; background: rgba(0,0,0,.18); border: 1px solid rgba(153,233,242,.12); }
.health-mini-grid span { display: block; font-size: 10.5px; color: var(--muted); }
.health-mini-grid strong { display: block; margin-top: 3px; color: var(--text); font-size: 18px; }
.executive-actions-card ul { margin: 0; padding-left: 18px; color: rgba(234,252,255,.88); }
.executive-actions-card li { margin: 0 0 9px; line-height: 1.34; font-size: 13px; }
.page-title-row h2 { font-size: 25px; margin-bottom: 4px; }
.page-title-row p { font-size: 13px; color: var(--muted); }
.compact-table .dash-table-container { font-size: 12px; }
@media (max-width: 1320px) {
  .compact-hero { grid-template-columns: 140px 1fr; }
  .header-status-grid { grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); }
  .executive-control-panel { grid-template-columns: 1fr; }
  .sticky-filters { position: relative; top: auto; }
}
@media (max-width: 900px) {
  .header-status-grid { grid-template-columns: 1fr; }
  .filter-context-chips { justify-content: flex-start; }
  .site-navigation-header { display: block; }
}


/* v0.3.4 | Finanzas tabs internos */
.finance-v034 { margin-top: 18px; }
.finance-subtabs-wrap {
  margin-top: 18px;
  border-radius: 22px;
  overflow: visible;
}
.finance-subtabs {
  background: rgba(1, 18, 28, .55);
  border: 1px solid rgba(153,233,242,.14);
  border-radius: 22px;
  padding: 8px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.finance-subtab {
  background: rgba(255,255,255,.04) !important;
  border: 1px solid rgba(153,233,242,.10) !important;
  border-radius: 16px !important;
  color: rgba(234,251,255,.74) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .01em;
  padding: 10px 14px !important;
  margin: 3px 5px !important;
}
.finance-subtab.selected {
  color: #99E9F2 !important;
  background: linear-gradient(135deg, rgba(153,233,242,.18), rgba(191,38,94,.10)) !important;
  border-color: rgba(153,233,242,.36) !important;
  box-shadow: 0 10px 26px rgba(0,0,0,.22);
}
.finance-tab-content {
  padding-top: 18px;
}
.finance-tab-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.finance-tab-panel {
  background: linear-gradient(145deg, rgba(1,52,64,.70), rgba(55,42,64,.46));
  border: 1px solid rgba(153,233,242,.16);
  border-radius: 22px;
  padding: 16px;
  box-shadow: 0 16px 40px rgba(0,0,0,.24);
  overflow: hidden;
}
.finance-tab-panel.wide { grid-column: 1 / -1; }
.finance-tab-panel h3 {
  margin: 0 0 10px;
  color: #EAFBFF;
  font-size: 15px;
  letter-spacing: .01em;
}
.finance-insight-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: 16px;
  margin-top: 16px;
}
.finance-insight-card {
  background: rgba(1, 20, 30, .62);
  border: 1px solid rgba(153,233,242,.16);
  border-radius: 20px;
  padding: 16px;
}
.finance-insight-card h3 { margin: 0 0 10px; font-size: 15px; color: #99E9F2; }
.finance-insight-card p, .finance-insight-card li { color: rgba(234,251,255,.78); font-size: 13px; line-height: 1.45; }
.finance-insight-card ul { margin: 0; padding-left: 18px; }
.finance-two-tables {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}
@media (max-width: 1180px) {
  .finance-tab-grid, .finance-two-tables, .finance-insight-grid { grid-template-columns: 1fr; }
  .finance-tab-panel.wide { grid-column: auto; }
}

/* v0.3.5 | Mapa Operativo 360 */
.route-map-summary {
  margin: 10px 0 18px 0;
}

.route-map-summary-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(150px, 1fr));
  gap: 12px;
}

.route-map-card {
  padding: 14px 16px;
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(1,52,64,.74), rgba(55,42,64,.58));
  border: 1px solid rgba(153,233,242,.18);
  box-shadow: 0 12px 40px rgba(0,0,0,.18);
  min-height: 76px;
}

.route-map-card span {
  display: block;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(234,251,255,.66);
  margin-bottom: 8px;
}

.route-map-card strong {
  display: block;
  font-size: 22px;
  line-height: 1.1;
  color: #EAFBFF;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.route-map-card.wide strong {
  font-size: 16px;
  white-space: normal;
}

.map-grid .card,
.route-map-card-main {
  min-height: 535px;
}

.route-map-card-main p {
  color: rgba(234,251,255,.66);
  font-size: 12px;
  margin: -4px 0 8px 0;
}

@media (max-width: 1180px) {
  .route-map-summary-grid {
    grid-template-columns: repeat(2, minmax(160px, 1fr));
  }
}

/* v0.3.6 | Centro de Notificaciones */
.page-title-row.compact {
  align-items: center;
  gap: 18px;
}
.page-actions-mini {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  flex-wrap: wrap;
}
.pac-action-btn.compact {
  padding: 10px 14px;
  font-size: 12px;
  min-height: 38px;
}
.notification-subtabs-wrap {
  margin-top: 8px;
}
.notification-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr);
  gap: 16px;
  margin-top: 16px;
}
.notification-card {
  background: linear-gradient(145deg, rgba(1,52,64,.72), rgba(55,42,64,.46));
  border: 1px solid rgba(153,233,242,.16);
  border-radius: 22px;
  padding: 16px;
  box-shadow: 0 16px 40px rgba(0,0,0,.24);
  overflow: visible;
}
.notification-card.wide {
  min-width: 0;
}
.notification-card p {
  color: rgba(234,251,255,.70);
  font-size: 12.5px;
  line-height: 1.45;
  margin: 4px 0 12px;
}
.delivery-rules-grid.vertical {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.delivery-checklist.stacked {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
}
.notify-section.compact,
.finance-teams-section.compact {
  margin-top: 16px;
}
.notify-section.compact .section-header-row,
.finance-teams-section.compact .section-header-row {
  margin-bottom: 12px;
}
.notify-status-card .data-health-list,
.notification-card .data-health-list {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}
.notification-card .data-health-list div {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 10px 12px;
  background: rgba(1, 20, 30, .42);
  border: 1px solid rgba(153,233,242,.10);
  border-radius: 14px;
}
.notification-card .data-health-list span {
  color: rgba(234,251,255,.62);
  font-size: 12px;
}
.notification-card .data-health-list strong {
  color: #99E9F2;
  font-size: 12px;
  text-align: right;
  word-break: break-word;
}
@media (max-width: 1180px) {
  .notification-grid {
    grid-template-columns: 1fr;
  }
  .page-actions-mini {
    justify-content: flex-start;
  }
}

/* v0.3.8 | Datos: Calidad, Refresh y Diagnóstico */
.data-page-title {
  margin-bottom: 10px;
}
.data-subtabs-wrap {
  margin-top: 10px;
}
.data-subtabs {
  gap: 8px;
}
.data-overview-panel,
.logs-diagnostics-panel,
.refresh-center,
.data-quality-center {
  margin-top: 16px;
}
.executive-data-grid {
  grid-template-columns: repeat(6, minmax(150px, 1fr));
}
.data-health-card strong {
  word-break: break-word;
}
.data-health-note {
  margin: 14px 0 16px;
  padding: 12px 14px;
  border-radius: 18px;
  background: rgba(153,233,242,.07);
  border: 1px solid rgba(153,233,242,.16);
  color: rgba(234,251,255,.76);
  font-size: 12.5px;
  line-height: 1.45;
}
.refresh-center .quality-actions,
.quality-header .quality-actions,
.refresh-header .quality-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}
.refresh-command-note {
  margin: 12px 0 16px;
  padding: 12px 14px;
  border-radius: 18px;
  background: rgba(1,20,30,.50);
  border: 1px solid rgba(153,233,242,.13);
  color: rgba(234,251,255,.78);
  font-size: 12px;
  line-height: 1.5;
}
.refresh-status-message {
  margin: 12px 0 16px;
  padding: 13px 15px;
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(153,233,242,.12), rgba(191,38,94,.10));
  border: 1px solid rgba(153,233,242,.20);
  color: #EAFBFF;
  font-size: 12.5px;
}
.refresh-health-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: 12px;
  margin-bottom: 14px;
}
.refresh-grid {
  align-items: stretch;
}
.refresh-log-box {
  width: 100%;
  min-height: 340px;
  resize: vertical;
  border-radius: 18px;
  border: 1px solid rgba(153,233,242,.16);
  background: rgba(1,14,22,.82);
  color: rgba(234,251,255,.86);
  font-family: Consolas, 'Cascadia Mono', monospace;
  font-size: 11px;
  line-height: 1.45;
  padding: 12px;
}
.quality-status-pill {
  display: inline-flex;
  align-items: center;
  padding: 9px 12px;
  border-radius: 999px;
  background: rgba(1,52,64,.75);
  border: 1px solid rgba(153,233,242,.22);
  color: #99E9F2;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .02em;
}
.data-quality-kpis {
  margin-top: 14px;
}
.data-quality-grid,
.data-quality-tables {
  margin-top: 16px;
}
.logs-diagnostics-panel .jc-panel,
.data-overview-panel .jc-panel,
.refresh-center .jc-panel,
.data-quality-center .jc-panel {
  overflow: hidden;
}
@media (max-width: 1280px) {
  .executive-data-grid,
  .refresh-health-grid {
    grid-template-columns: repeat(2, minmax(180px, 1fr));
  }
}
@media (max-width: 720px) {
  .executive-data-grid,
  .refresh-health-grid {
    grid-template-columns: 1fr;
  }
  .refresh-center .quality-actions,
  .quality-header .quality-actions,
  .refresh-header .quality-actions {
    justify-content: flex-start;
  }
}

/* ========================================================================== */
/* v0.4.0-alpha | Security Foundation Local                                  */
/* ========================================================================== */
.security-root {
  min-height: 100vh;
}
.login-shell {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px;
  background:
    radial-gradient(circle at 20% 20%, rgba(153, 233, 242, .16), transparent 34%),
    radial-gradient(circle at 80% 15%, rgba(242, 29, 86, .12), transparent 30%),
    linear-gradient(135deg, #020b10 0%, #013440 50%, #180f24 100%);
}
.login-card {
  width: min(520px, 96vw);
  padding: 28px;
  border-radius: 28px;
  border: 1px solid rgba(153,233,242,.24);
  background: rgba(3, 17, 25, .82);
  box-shadow: 0 28px 80px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter: blur(20px);
}
.login-brand {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 18px;
}
.login-brand img {
  width: 92px;
  height: auto;
  filter: drop-shadow(0 14px 30px rgba(153,233,242,.18));
}
.login-brand h1 {
  margin: 0;
  font-size: 27px;
  letter-spacing: -.03em;
  color: #EAFBFF;
}
.login-brand p {
  margin: 4px 0 0;
  font-size: 12px;
  color: rgba(234,251,255,.68);
}
.login-note {
  padding: 12px 14px;
  margin: 12px 0 18px;
  border-radius: 16px;
  border: 1px solid rgba(153,233,242,.16);
  background: rgba(153,233,242,.07);
  color: rgba(234,251,255,.78);
  font-size: 12px;
}
.login-input {
  width: 100%;
  min-height: 42px;
  margin: 6px 0 14px;
  padding: 0 14px;
  border-radius: 14px;
  border: 1px solid rgba(153,233,242,.26);
  background: rgba(1, 20, 30, .78);
  color: #EAFBFF;
  outline: none;
}
.login-input:focus {
  border-color: rgba(153,233,242,.72);
  box-shadow: 0 0 0 3px rgba(153,233,242,.10);
}
.login-button {
  width: 100%;
  justify-content: center;
  margin-top: 6px;
}
.login-message {
  min-height: 20px;
  margin-top: 12px;
  color: #F21D56;
  font-size: 12px;
  font-weight: 700;
}
.login-demo-users {
  margin-top: 18px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(153,233,242,.13);
}
.login-demo-users summary {
  color: #99E9F2;
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
}
.demo-user-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 7px 0;
  border-bottom: 1px solid rgba(153,233,242,.08);
  font-size: 12px;
  color: rgba(234,251,255,.78);
}
.demo-user-row:last-child { border-bottom: 0; }
.demo-user-row strong { color: #EAFBFF; }
.security-user-bar {
  position: sticky;
  top: 0;
  z-index: 9800;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  margin: -8px -8px 14px;
  padding: 10px 16px;
  border: 1px solid rgba(153,233,242,.18);
  border-radius: 0 0 20px 20px;
  background: rgba(1, 13, 20, .88);
  backdrop-filter: blur(18px);
  box-shadow: 0 12px 42px rgba(0,0,0,.28);
}
.security-user-left,
.security-user-right {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.security-user-left strong {
  color: #EAFBFF;
  font-size: 13px;
}
.security-user-email {
  color: rgba(234,251,255,.62);
  font-size: 12px;
}
.security-badge,
.security-role-pill {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(153,233,242,.22);
  background: rgba(153,233,242,.08);
  color: #99E9F2;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .02em;
}
.security-badge.alpha {
  color: #EAFBFF;
  background: rgba(191,38,94,.22);
  border-color: rgba(191,38,94,.34);
}
.security-badge.ok {
  color: #99E9F2;
  background: rgba(153,233,242,.09);
}
.security-role-pill {
  color: #EAFBFF;
  background: rgba(55,42,64,.78);
}
.pac-action-btn.small {
  min-height: 30px;
  padding: 0 12px;
  font-size: 11px;
}
.security-admin-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  margin-bottom: 18px;
}
@media (min-width: 1180px) {
  .security-admin-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
}
.access-denied-card {
  margin: 28px;
  padding: 28px;
  border-radius: 24px;
  border: 1px solid rgba(242,29,86,.32);
  background: rgba(242,29,86,.08);
  color: #EAFBFF;
}
.access-denied-card h2 { margin-top: 0; }

/* ========================================================================== */
/* v0.4.0-beta | Microsoft Entra ID Login                                     */
/* ========================================================================== */
.entra-login-button {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  text-decoration: none;
  margin: 8px 0 10px;
}
.entra-login-button.disabled {
  pointer-events: none;
  opacity: .55;
  filter: grayscale(.3);
}
.login-entra-status {
  margin: 6px 0 14px;
  padding: 10px 12px;
  border-radius: 14px;
  font-size: 11px;
  font-weight: 800;
  border: 1px solid rgba(153,233,242,.16);
}
.login-entra-status.ok {
  color: #99E9F2;
  background: rgba(153,233,242,.07);
}
.login-entra-status.warning {
  color: #FFD7E2;
  background: rgba(242,29,86,.10);
  border-color: rgba(242,29,86,.26);
}
.login-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 18px 0 12px;
  color: rgba(234,251,255,.62);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.login-divider::before,
.login-divider::after {
  content: "";
  height: 1px;
  flex: 1;
  background: rgba(153,233,242,.18);
}
.login-demo-users.entra-help code {
  color: #99E9F2;
  font-size: 11px;
}
.security-badge.muted {
  color: rgba(234,251,255,.70);
  background: rgba(255,255,255,.045);
  border-color: rgba(255,255,255,.10);
}

/* v0.4.1 RBAC & User Governance */
.security-governance-kpis {
  display: grid;
  grid-template-columns: repeat(6, minmax(150px, 1fr));
  gap: 14px;
  margin: 16px 0 18px;
}
.security-subtabs-wrap { margin-top: 12px; }
.security-subtabs .tab { min-height: 44px; }
.page-admin-security .jc-panel { margin-top: 14px; }
.page-admin-security .glass-card p { margin: 8px 0; color: rgba(234,251,255,.78); font-size: 13px; }
@media (max-width: 1400px) {
  .security-governance-kpis { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
}
@media (max-width: 900px) {
  .security-governance-kpis { grid-template-columns: 1fr; }
}

/* v0.4.3-A | AMS / SAM-M3 Operations Center */
.ams-section {
  margin-top: 22px;
  padding: 22px;
  border-radius: 26px;
  border: 1px solid rgba(153, 233, 242, .18);
  background: linear-gradient(135deg, rgba(1,52,64,.74), rgba(55,42,64,.58));
  box-shadow: 0 24px 70px rgba(0,0,0,.30);
}
.ams-header {
  align-items: flex-start;
  gap: 16px;
}
.ams-source-pill {
  min-width: 220px;
  padding: 12px 14px;
  border-radius: 18px;
  border: 1px solid rgba(153,233,242,.22);
  background: rgba(1,20,30,.52);
  color: rgba(234,251,255,.76);
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 11px;
}
.ams-source-pill strong {
  color: #99E9F2;
  font-size: 12px;
  line-height: 1.3;
  word-break: break-word;
}
.ams-filter-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(180px, 1fr));
  gap: 12px;
  margin: 16px 0 18px;
  position: relative;
  z-index: 6000;
}
.ams-kpi-grid {
  margin-top: 10px;
}
.ams-charts-grid {
  margin-top: 16px;
}
.ams-table-card {
  margin-top: 18px;
}
.ams-detail-section {
  border-color: rgba(191,38,94,.24) !important;
  background: rgba(191,38,94,.08) !important;
}
.pac-date-range input {
  background: rgba(1,20,30,.72) !important;
  border: 1px solid rgba(153,233,242,.22) !important;
  color: #EAFBFF !important;
  border-radius: 12px !important;
  font-size: 12px !important;
  padding: 8px !important;
}
.pac-date-range .DateRangePickerInput {
  background: transparent !important;
  border: 0 !important;
}
@media (max-width: 1200px) {
  .ams-filter-grid { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
}
@media (max-width: 760px) {
  .ams-filter-grid { grid-template-columns: 1fr; }
  .ams-source-pill { min-width: 0; width: 100%; }
}

/* PAC UI REDESIGN v0.4.3-A -------------------------------------------------- */
:root {
  --pac-deep:    #013440;
  --pac-purple:  #372A40;
  --pac-cyan:    #99E9F2;
  --pac-magenta: #BF265E;
  --pac-hot:     #F21D56;
  --pac-text:    #EAFBFF;
  --pac-muted:   rgba(234,252,255,.68);
  --sidebar-w:   220px;
  --sidebar-w-collapsed: 56px;
  --topbar-h:    56px;
  --topbar2-h:   44px;
}
body {
  background: radial-gradient(circle at 20% 0%, rgba(153,233,242,.10), transparent 32%), var(--pac-deep) !important;
  color: var(--pac-text);
  font-family: 'Inter', 'Segoe UI', Arial, sans-serif;
}
* { scrollbar-width: thin; scrollbar-color: rgba(153,233,242,.25) transparent; }
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-thumb { background: rgba(153,233,242,.25); border-radius: 3px; }
#app-shell.app-shell {
  display: grid;
  grid-template-rows: var(--topbar-h) var(--topbar2-h) 1fr;
  grid-template-columns: var(--sidebar-w) 1fr;
  grid-template-areas:
    "sidebar topbar"
    "sidebar filterbar"
    "sidebar content";
  min-height: 100vh;
  padding: 0 !important;
  gap: 0 !important;
}
#app-shell.collapsed { --sidebar-w: var(--sidebar-w-collapsed); }
#security-user-bar { grid-area: topbar; position: sticky; top: 0; z-index: 10000; }
#topbar.topbar {
  height: var(--topbar-h);
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 0 18px;
  border-bottom: 1px solid rgba(153,233,242,.12);
  background: rgba(1, 24, 32, .86);
  backdrop-filter: blur(12px);
}
.topbar-left { display:flex; align-items:center; gap:10px; min-width: 190px; }
.topbar-logo-pill {
  width: 32px; height: 32px; display:flex; align-items:center; justify-content:center;
  border-radius: 999px; background: var(--pac-deep); color: var(--pac-cyan);
  border: 1px solid rgba(153,233,242,.35); font-weight: 800; font-size: 11px; letter-spacing: .08em;
}
.topbar-brand { display:flex; flex-direction:column; line-height:1.1; }
.topbar-brand strong { font-size: 13px; color: var(--pac-text); }
.topbar-brand span { font-size: 10px; color: var(--pac-muted); text-transform: uppercase; letter-spacing: .06em; }
.topbar-search-wrap { flex: 1; display:flex; align-items:center; }
.topbar-search {
  width: 100%; max-width: 340px; height: 36px; background: rgba(1,52,64,.60) !important;
  color: var(--pac-text) !important; border: 1px solid rgba(153,233,242,.30) !important;
  border-radius: 10px; padding: 0 12px; outline: none;
}
.topbar-actions { display:flex; align-items:center; gap:12px; margin-left:auto; }
.topbar-notif-badge {
  min-width: 28px; height: 24px; display:inline-flex; align-items:center; justify-content:center;
  padding: 0 8px; border-radius:999px; background: rgba(242,29,86,.16); color: var(--pac-hot);
  border: 1px solid rgba(242,29,86,.45); font-size: 12px; font-weight: 800;
}
.avatar-menu { position:relative; }
.avatar-menu summary { list-style:none; }
.avatar-menu summary::-webkit-details-marker { display:none; }
.avatar-pill {
  display:flex; align-items:center; gap:8px; background: rgba(55,42,64,.86);
  border:1px solid rgba(153,233,242,.18); border-radius:999px; padding:6px 10px; cursor:pointer;
}
.avatar-name { font-size:12px; color: var(--pac-text); max-width: 170px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.avatar-role { font-size:10px; color: var(--pac-cyan); text-transform:uppercase; letter-spacing:.05em; }
.avatar-dropdown {
  position:absolute; right:0; top:42px; min-width:260px; z-index:11000;
  background: rgba(1,24,32,.98); border:1px solid rgba(153,233,242,.22); border-radius:14px;
  padding:10px; box-shadow: 0 28px 80px rgba(0,0,0,.48);
}
.avatar-dropdown-row { display:flex; justify-content:space-between; gap:12px; font-size:12px; padding:8px; color:var(--pac-muted); border-bottom:1px solid rgba(153,233,242,.08); }
.avatar-dropdown-row strong { color:var(--pac-text); }
.avatar-menu-btn { width:100%; margin-top:8px; text-align:left; padding:8px 10px; border-radius:8px; background:rgba(153,233,242,.07); color:var(--pac-text); border:1px solid rgba(153,233,242,.12); }
.avatar-menu-btn.danger { color:#FFD7E2; background:rgba(242,29,86,.12); border-color:rgba(242,29,86,.32); }
#sidebar-shell.sidebar-shell {
  grid-area: sidebar; position: sticky; top: 0; z-index: 10001; height: 100vh;
  background: linear-gradient(180deg, rgba(1,24,32,.98), rgba(1,52,64,.92));
  border-right: 1px solid rgba(153,233,242,.12); padding: 12px 10px; display:flex; align-items:center; gap:10px;
}
.sidebar-toggle { width: 34px; height:34px; border-radius:10px; border:1px solid rgba(153,233,242,.20); background:rgba(153,233,242,.08); color:var(--pac-cyan); cursor:pointer; }
.sidebar-title { color:var(--pac-text); font-weight:800; letter-spacing:.06em; font-size:13px; white-space:nowrap; }
#app-shell.collapsed .sidebar-title { display:none; }
.site-navigation-card {
  grid-area: sidebar; position: sticky; top: 56px; z-index: 10002; width: var(--sidebar-w);
  height: calc(100vh - 56px); margin: 0 !important; padding: 56px 0 0 0 !important;
  border: 0 !important; background: transparent !important; box-shadow:none !important; overflow-y: auto;
}
#app-shell.collapsed .site-navigation-card { width: var(--sidebar-w-collapsed); }
.site-navigation-header { display:none !important; }
.pac-main-tabs-wrap { background: transparent !important; border: 0 !important; }
.pac-main-tabs { display:flex !important; flex-direction:column !important; gap:4px; padding:8px 6px !important; }
.pac-tab {
  display:flex !important; align-items:center; justify-content:flex-start; min-height:42px !important;
  border-radius:0 10px 10px 0 !important; border:0 !important; border-left:3px solid transparent !important;
  background:transparent !important; color:var(--pac-muted) !important; font-size:13px !important; padding:0 12px !important;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.pac-tab.selected {
  color: var(--pac-cyan) !important; background: rgba(153,233,242,.15) !important;
  border-left:3px solid var(--pac-cyan) !important;
}
#app-shell.collapsed .pac-tab { font-size:0 !important; padding:0 0 !important; justify-content:center; }
#app-shell.collapsed .pac-tab::first-letter { font-size:18px; }
#filterbar.filterbar { grid-area: filterbar; position: sticky; top: var(--topbar-h); z-index:9000; background:rgba(1,24,32,.84); backdrop-filter: blur(10px); border-bottom:1px solid rgba(153,233,242,.12); }
.filterbar-main { min-height: var(--topbar2-h); display:flex; align-items:center; gap:12px; padding:0 18px; }
.filter-toggle-btn, .filter-clear-btn { height:32px; border-radius:10px; padding:0 12px; border:1px solid rgba(153,233,242,.18); background:rgba(153,233,242,.07); color:var(--pac-text); cursor:pointer; }
.filter-clear-btn { margin-left:auto; color:var(--pac-cyan); }
.filters-panel.open { display:block; padding:12px 18px 16px; border-top:1px solid rgba(153,233,242,.08); }
.filters-panel.closed { display:none; }
.filters-grid { display:grid; grid-template-columns: repeat(4, minmax(180px, 1fr)); gap:10px 14px; }
.filter-card.filter-block { padding: 0 !important; border:0 !important; background: transparent !important; box-shadow:none !important; }
.filter-label { font-size:11px !important; color:var(--pac-muted) !important; text-transform:uppercase; letter-spacing:.06em; margin-bottom:4px !important; }
.filter-card .Select-control, .filter-card input, .pac-text-input { min-height:36px !important; height:36px !important; background:rgba(1,52,64,.60) !important; border:1px solid rgba(153,233,242,.20) !important; border-radius:9px !important; color:var(--pac-text) !important; }
.filter-context-chips { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.filter-chip { border-radius:999px; padding:4px 8px; background:rgba(153,233,242,.09); border:1px solid rgba(153,233,242,.14); font-size:11px; }
#kpi-grid, .kpi-grid { grid-area: content; }
#content { grid-area: content; padding:24px; overflow-y:auto; }
.hero.compact-hero { display:none !important; }
.kpi-card {
  background: rgba(1,52,64,.55) !important; backdrop-filter: blur(8px); border: 1px solid rgba(153,233,242,.18) !important;
  border-radius: 12px !important; padding: 16px 20px !important; box-shadow: none !important; position:relative; overflow:hidden;
}
.kpi-card-top { display:flex; justify-content:space-between; align-items:center; min-height:20px; }
.kpi-icon { color:var(--pac-cyan); font-size:18px; }
.kpi-label { font-size:11px !important; color:var(--pac-muted) !important; letter-spacing:.06em; text-transform:uppercase; }
.kpi-value { font-size:28px !important; font-weight:600 !important; color:var(--pac-text) !important; line-height:1.12; }
.kpi-note { font-size:12px !important; color:var(--pac-muted) !important; }
.kpi-pulse { width:9px; height:9px; border-radius:50%; background:var(--pac-hot); box-shadow:0 0 0 rgba(242,29,86,.5); animation:pulse 1.4s infinite; }
@keyframes pulse { 0% { box-shadow:0 0 0 0 rgba(242,29,86,.55);} 70% { box-shadow:0 0 0 9px rgba(242,29,86,0);} 100% { box-shadow:0 0 0 0 rgba(242,29,86,0);} }
.detail-panel { background:rgba(1,24,32,.82) !important; border:1px solid rgba(153,233,242,.16) !important; border-radius:14px !important; }
.detail-metric { background: rgba(153,233,242,.07); border:1px solid rgba(153,233,242,.12); border-radius:8px; padding:12px 16px; }
.detail-metric-label { font-size:10px; text-transform:uppercase; color:var(--pac-muted); letter-spacing:.06em; }
.detail-metric-value { font-size:22px; font-weight:600; color:var(--pac-text); }
.detail-field { background:rgba(153,233,242,.05); border:1px solid rgba(153,233,242,.10); border-radius:8px; padding:10px 12px; }
.detail-field-label { font-size:10px; text-transform:uppercase; color:var(--pac-muted); letter-spacing:.06em; }
.detail-field-value { font-size:13px; color:var(--pac-text); }
.sev-critical { color:#F21D56; border-color:#F21D56; }
.sev-high { color:#BF265E; border-color:#BF265E; }
.sev-medium { color:#99E9F2; border-color:#99E9F2; }
.sev-low { color:rgba(234,252,255,.5); border-color:rgba(234,252,255,.2); }
.badge { display:inline-flex; align-items:center; padding:2px 8px; border-radius:4px; font-size:11px; font-weight:600; letter-spacing:.05em; border:1px solid currentColor; }
.badge.cyan { color:#99E9F2; background:rgba(153,233,242,.12); }
.badge.magenta { color:#BF265E; background:rgba(191,38,94,.12); }
.badge.danger { color:#F21D56; background:rgba(242,29,86,.12); }
.badge.muted { color:rgba(234,252,255,.5); background:rgba(234,252,255,.06); }
.badge.ok { color:#4ade80; background:rgba(74,222,128,.10); }
#orders-table .dash-cell { background: transparent !important; color:var(--pac-text) !important; border-bottom:1px solid rgba(153,233,242,.08) !important; }
#orders-table .dash-header { background:#013440 !important; color:#99E9F2 !important; font-weight:600 !important; font-size:11px !important; letter-spacing:.08em; text-transform:uppercase; border-bottom:2px solid var(--pac-cyan) !important; }
@media (max-width: 1200px) {
  #app-shell.app-shell { grid-template-columns: var(--sidebar-w-collapsed) 1fr; }
  .filters-grid { grid-template-columns: repeat(2, minmax(160px, 1fr)); }
  .detail-panel.active { position:fixed; z-index:20000; top:var(--topbar-h); right:0; width:90vw; max-width:420px; height:calc(100vh - var(--topbar-h)); overflow:auto; }
}
@media (max-width: 780px) { .filters-grid { grid-template-columns: 1fr; } .avatar-name { max-width:90px; } .topbar-brand { display:none; } }

/* PAC UI REDESIGN v0.4.3-A.1 VISUAL HOTFIX
   Corrige: sidebar truncada, filtros superpuestos y contenido cargado dentro del sidebar.
   No modifica callbacks, datos, autenticación, Teams, exportación ni RBAC. */

:root {
  --pac-deep:    #013440;
  --pac-purple:  #372A40;
  --pac-cyan:    #99E9F2;
  --pac-magenta: #BF265E;
  --pac-hot:     #F21D56;
  --pac-text:    #EAFBFF;
  --pac-muted:   rgba(234,252,255,.68);
  --sidebar-w:   220px;
  --sidebar-w-collapsed: 56px;
  --topbar-h:    56px;
  --topbar2-h:   44px;
}

/* Shell: filas reales, el panel de filtros debe empujar el contenido al abrirse. */
#app-shell.app-shell,
.app-shell.site-shell {
  display: grid !important;
  grid-template-columns: var(--sidebar-w) minmax(0, 1fr) !important;
  grid-template-rows: var(--topbar-h) auto auto auto auto !important;
  grid-template-areas:
    "sidebar topbar"
    "sidebar filterbar"
    "sidebar kpis"
    "sidebar page"
    "sidebar detail" !important;
  min-height: 100vh !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow-x: hidden !important;
}

#app-shell.collapsed,
.app-shell.collapsed {
  --sidebar-w: var(--sidebar-w-collapsed);
}

/* Topbar: siempre inicia después del sidebar. */
#security-user-bar {
  grid-area: topbar !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 10050 !important;
  min-width: 0 !important;
}

#topbar.topbar,
.app-topbar,
.pac-topbar {
  position: relative !important;
  top: auto !important;
  left: auto !important;
  right: auto !important;
  width: 100% !important;
  height: var(--topbar-h) !important;
  min-height: var(--topbar-h) !important;
}

/* Sidebar header: solo ocupa la franja superior, no tapa la navegación. */
#sidebar-shell.sidebar-shell,
.pac-sidebar,
#sidebar,
.sidebar {
  grid-area: sidebar !important;
  width: var(--sidebar-w) !important;
  min-width: var(--sidebar-w) !important;
  max-width: var(--sidebar-w) !important;
  height: var(--topbar-h) !important;
  min-height: var(--topbar-h) !important;
  position: sticky !important;
  top: 0 !important;
  left: 0 !important;
  z-index: 10070 !important;
  overflow: hidden !important;
  background: rgba(1,24,32,.98) !important;
  border-right: 1px solid rgba(153,233,242,.12) !important;
  border-bottom: 1px solid rgba(153,233,242,.12) !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 12px !important;
}

#app-shell.collapsed #sidebar-shell.sidebar-shell { width: var(--sidebar-w-collapsed) !important; min-width: var(--sidebar-w-collapsed) !important; max-width: var(--sidebar-w-collapsed) !important; }
#app-shell.collapsed .sidebar-title { display: none !important; }

/* Navegación: el contenedor de la página vive en el content; SOLO el tab bar se fija al sidebar. */
.site-navigation-card {
  grid-area: page !important;
  grid-column: 2 !important;
  grid-row: 4 !important;
  width: auto !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  position: relative !important;
  top: auto !important;
  z-index: 1 !important;
  margin: 0 !important;
  padding: 20px 24px 28px !important;
  overflow: visible !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}

.site-navigation-header { display: none !important; }

.pac-main-tabs-wrap {
  position: relative !important;
  width: 100% !important;
  min-width: 0 !important;
  background: transparent !important;
  border: 0 !important;
  overflow: visible !important;
}

/* Tab bar vertical en el sidebar. La tab-content queda en flujo normal dentro de la página. */
.pac-main-tabs {
  position: fixed !important;
  left: 0 !important;
  top: var(--topbar-h) !important;
  bottom: 0 !important;
  width: var(--sidebar-w) !important;
  z-index: 10040 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  padding: 10px 8px 18px !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  background: linear-gradient(180deg, rgba(1,24,32,.98), rgba(1,52,64,.94)) !important;
  border-right: 1px solid rgba(153,233,242,.12) !important;
}

#app-shell.collapsed .pac-main-tabs {
  width: var(--sidebar-w-collapsed) !important;
  padding-left: 6px !important;
  padding-right: 6px !important;
}

.pac-tab {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  min-height: 42px !important;
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 10px !important;
  padding: 0 14px !important;
  box-sizing: border-box !important;
  color: rgba(234,252,255,.76) !important;
  font-size: 13px !important;
  line-height: 1.15 !important;
  text-decoration: none !important;
  background: transparent !important;
  border: 0 !important;
  border-left: 3px solid transparent !important;
  border-radius: 0 10px 10px 0 !important;
}

.pac-tab.selected,
.pac-tab--selected,
[data-active="true"] {
  color: var(--pac-cyan) !important;
  background: rgba(153,233,242,.15) !important;
  border-left: 3px solid var(--pac-cyan) !important;
}

#app-shell.collapsed .pac-tab {
  font-size: 0 !important;
  justify-content: center !important;
  padding: 0 !important;
}
#app-shell.collapsed .pac-tab::first-letter {
  font-size: 18px !important;
}

/* El contenido real del tab nunca debe quedarse dentro de la barra lateral. */
.pac-main-tabs-wrap .tab-content,
.pac-main-tabs-wrap .dash-tab-content,
.site-navigation-card .tab-content,
.site-navigation-card .dash-tab-content {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
}

.page-shell,
.page-content,
.page-overview,
.page-operations,
.page-finance,
.page-customers-routes,
.page-notifications,
.page-exports,
.page-data,
.page-admin-security {
  width: 100% !important;
  min-width: 0 !important;
  position: relative !important;
  z-index: 1 !important;
  overflow: visible !important;
}

/* Filtros: en flujo normal, sin absolute/fixed; al abrir empujan los KPIs. */
#filterbar.filterbar,
.global-controls-card,
.sticky-filters,
#filter-panel,
.filters-collapse,
.pac-filters-expanded {
  grid-area: filterbar !important;
  grid-column: 2 !important;
  grid-row: 2 !important;
  position: sticky !important;
  top: var(--topbar-h) !important;
  z-index: 9000 !important;
  overflow: visible !important;
  min-height: var(--topbar2-h) !important;
  background: rgba(1,24,32,.92) !important;
  backdrop-filter: blur(10px) !important;
  border-bottom: 1px solid rgba(153,233,242,.14) !important;
}

.filterbar-main { min-height: var(--topbar2-h) !important; }

.filters-panel,
.filters-panel.open,
.filters-panel.closed,
.dash-collapse,
.dash-collapse > div,
.filter-collapse-area {
  position: relative !important;
  z-index: 50 !important;
  overflow: visible !important;
}
.filters-panel.open { display: block !important; padding: 14px 18px 16px !important; border-top: 1px solid rgba(153,233,242,.08) !important; }
.filters-panel.closed { display: none !important; }

.filters,
.filters-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(180px, 1fr)) !important;
  gap: 12px 14px !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
  position: relative !important;
  z-index: 50 !important;
}

.filter-context-chips,
.filter-chips-row {
  position: relative !important;
  z-index: 51 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  align-items: center !important;
}

/* KPIs: debajo de filtros, nunca encima. */
#kpi-grid,
.kpi-grid {
  grid-area: kpis !important;
  grid-column: 2 !important;
  grid-row: 3 !important;
  position: relative !important;
  z-index: 10 !important;
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) !important;
  gap: 16px !important;
  padding: 16px 24px 0 !important;
  margin: 0 !important;
  min-width: 0 !important;
}

/* Detail panel: en flujo normal; drawer en tablet/móvil. */
#detail-panel,
.detail-panel {
  grid-area: detail !important;
  grid-column: 2 !important;
  grid-row: 5 !important;
  position: relative !important;
  z-index: 80 !important;
  margin: 0 24px 28px !important;
}

/* Tablas. */
#orders-table .dash-cell {
  background: transparent !important;
  color: var(--pac-text) !important;
  border-bottom: 1px solid rgba(153,233,242,.08) !important;
}
#orders-table .dash-header {
  background: #013440 !important;
  color: #99E9F2 !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  border-bottom: 2px solid var(--pac-cyan) !important;
}
#orders-table .dash-cell.focused,
#orders-table .dash-cell.cell--selected {
  background: rgba(153,233,242,.12) !important;
}

/* Z-index final: evita superposiciones incorrectas. */
#sidebar-shell, .pac-sidebar, #sidebar { z-index: 10070 !important; }
.pac-main-tabs { z-index: 10040 !important; }
#security-user-bar, #topbar { z-index: 10050 !important; }
#filterbar, .filter-chips-row { z-index: 9000 !important; }
.global-controls-card, .filters { z-index: 50 !important; }
#kpi-grid, .kpi-grid { z-index: 10 !important; }
.detail-panel, #detail-panel { z-index: 80 !important; }
.site-navigation-card, .page-shell, .page-content { z-index: 1 !important; }

@media (max-width: 1200px) {
  #app-shell.app-shell,
  .app-shell.site-shell {
    --sidebar-w: var(--sidebar-w-collapsed);
    grid-template-columns: var(--sidebar-w-collapsed) minmax(0, 1fr) !important;
  }
  .pac-main-tabs { width: var(--sidebar-w-collapsed) !important; }
  .filters,
  .filters-grid { grid-template-columns: repeat(2, minmax(160px, 1fr)) !important; }
  #detail-panel.active,
  .detail-panel.active {
    position: fixed !important;
    z-index: 20000 !important;
    top: var(--topbar-h) !important;
    right: 0 !important;
    width: 90vw !important;
    max-width: 420px !important;
    height: calc(100vh - var(--topbar-h)) !important;
    overflow: auto !important;
    margin: 0 !important;
  }
}

@media (max-width: 780px) {
  .filters,
  .filters-grid { grid-template-columns: 1fr !important; }
  #kpi-grid,
  .kpi-grid { padding: 12px !important; grid-template-columns: 1fr 1fr !important; }
  .site-navigation-card { padding: 14px 12px 20px !important; }
  .topbar-brand { display: none !important; }
  .avatar-name { max-width: 90px !important; }
}


/* PAC v0.5.8.4 NAV FIX */
.page-shell.is-hidden { display: none !important; }
.page-shell.is-active { display: block !important; }


/* ===== Consolidated from v057_operations_intelligence.css ===== */
/* PAC v0.5.7 Operations Intelligence Pro */
.ops57-page {
  color: var(--pac-text, #EAFBFF);
}

.ops57-hero {
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 16px;
  margin-bottom: 18px;
}

.ops57-card {
  background: rgba(1,52,64,.56);
  border: 1px solid rgba(153,233,242,.16);
  border-radius: 14px;
  padding: 16px;
  backdrop-filter: blur(8px);
}

.ops57-title {
  font-size: 20px;
  font-weight: 650;
  margin: 0;
}

.ops57-eyebrow {
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(234,252,255,.65);
  margin-bottom: 6px;
}

.ops57-grid-kpi {
  display: grid;
  grid-template-columns: repeat(6, minmax(120px, 1fr));
  gap: 12px;
  margin: 14px 0 18px 0;
}

.ops57-kpi {
  background: rgba(1,52,64,.62);
  border: 1px solid rgba(153,233,242,.14);
  border-radius: 12px;
  padding: 14px;
}

.ops57-kpi .label {
  font-size: 10px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(234,252,255,.62);
}

.ops57-kpi .value {
  font-size: 26px;
  font-weight: 700;
  margin-top: 5px;
}

.ops57-kpi.danger { border-left: 3px solid #F21D56; }
.ops57-kpi.warn { border-left: 3px solid #BF265E; }
.ops57-kpi.ok { border-left: 3px solid #99E9F2; }

.ops57-filters {
  display: grid;
  grid-template-columns: repeat(5, minmax(130px, 1fr));
  gap: 10px;
  margin: 10px 0 16px;
}

.ops57-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.ops57-table-wrap {
  margin-top: 14px;
}

.ops57-badge {
  display: inline-flex;
  align-items: center;
  border: 1px solid currentColor;
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .04em;
}

.ops57-badge.hot { color: #F21D56; background: rgba(242,29,86,.12); }
.ops57-badge.magenta { color: #BF265E; background: rgba(191,38,94,.12); }
.ops57-badge.cyan { color: #99E9F2; background: rgba(153,233,242,.12); }

@media (max-width: 1200px) {
  .ops57-hero,
  .ops57-two-col {
    grid-template-columns: 1fr;
  }
  .ops57-grid-kpi {
    grid-template-columns: repeat(2, minmax(120px, 1fr));
  }
  .ops57-filters {
    grid-template-columns: repeat(2, minmax(130px, 1fr));
  }
}

/* ===== Consolidated from zz_pac_layout_final.css ===== */
/* PAC UI REDESIGN v0.4.3-A FINAL
   ÚNICO CSS de layout posterior a styles.css.
   Reemplaza A9/A10/A11 y cualquier z*.css anterior.
   Regla: styles.css = estilos base; este archivo = layout estructural sidebar/topbar/content.
*/

:root {
  --pac-sidebar-w: 205px;
  --pac-topbar-h: 52px;
  --pac-cyan: #99E9F2;
  --pac-deep: #013440;
  --pac-purple: #372A40;
  --pac-hot: #F21D56;
  --pac-text: #EAFBFF;
  --pac-muted: rgba(234,252,255,.68);
}

* { box-sizing: border-box; }
body { overflow-x: hidden !important; }

/* Reset de hacks anteriores de Tabs/sidebar si queda alguno cargado por styles.css */
#main-nav,
.pac-main-tabs,
.pac-main-tabs-wrap,
.site-navigation-card,
.nav-tabs-host,
.pac-content-tabs-host,
.tab-container,
.dash-tab-content,
.tab-content {
  position: static !important;
  left: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  transform: none !important;
}

/* Shell principal: 2 columnas, sin margin-left manual. */
#app-shell.app-shell,
.app-shell.site-shell {
  display: grid !important;
  grid-template-columns: var(--pac-sidebar-w) minmax(0, 1fr) !important;
  grid-template-rows: var(--pac-topbar-h) auto auto 1fr !important;
  grid-template-areas:
    "sidehead topbar"
    "sidebar  filterbar"
    "sidebar  kpis"
    "sidebar  content" !important;
  min-height: 100vh !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  gap: 0 !important;
  overflow-x: hidden !important;
}

/* Encabezado izquierdo del sidebar */
#sidebar-shell.sidebar-shell,
#sidebar-shell,
.sidebar-shell {
  grid-area: sidehead !important;
  position: sticky !important;
  top: 0 !important;
  height: var(--pac-topbar-h) !important;
  z-index: 500 !important;
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 0 12px !important;
  background: rgba(1, 24, 32, .98) !important;
  border-right: 1px solid rgba(153,233,242,.16) !important;
  border-bottom: 1px solid rgba(153,233,242,.16) !important;
  overflow: hidden !important;
}

.sidebar-title,
#sidebar-shell .sidebar-title {
  max-width: 135px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* Topbar en columna derecha */
#security-user-bar {
  grid-area: topbar !important;
  position: sticky !important;
  top: 0 !important;
  z-index: 490 !important;
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

#topbar.topbar,
.pac-topbar,
.app-topbar,
#topbar {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  width: 100% !important;
  max-width: 100% !important;
  height: var(--pac-topbar-h) !important;
  margin: 0 !important;
}

/* Filterbar en flujo normal, sin desplazamiento adicional. */
#filterbar.filterbar,
#filterbar,
.filterbar {
  grid-area: filterbar !important;
  position: sticky !important;
  top: var(--pac-topbar-h) !important;
  z-index: 430 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}

/* Panel de filtros en flujo normal */
.filters-panel,
.filters-panel.open,
.filters-panel.closed,
.filters-grid,
.global-controls-card,
.sticky-filters,
#filter-panel,
.filters-collapse,
.pac-filters-expanded,
.dash-collapse,
.dash-collapse > div,
.filter-collapse-area {
  position: relative !important;
  left: auto !important;
  right: auto !important;
  top: auto !important;
  overflow: visible !important;
  max-width: 100% !important;
}

.filters-panel.open {
  display: block !important;
  padding: 14px 18px 16px !important;
  background: rgba(1,52,64,.96) !important;
  border-top: 1px solid rgba(153,233,242,.10) !important;
  border-bottom: 1px solid rgba(153,233,242,.10) !important;
}
.filters-panel.closed { display: none !important; }
.filters-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(180px, 1fr)) !important;
  gap: 12px 14px !important;
}

/* KPI row: misma columna que contenido. */
#kpi-grid.kpi-grid,
#kpi-grid,
.kpi-grid#kpi-grid {
  grid-area: kpis !important;
  position: relative !important;
  z-index: 10 !important;
  margin: 0 !important;
  padding: 18px 24px 14px !important;
  width: 100% !important;
  max-width: 100% !important;
  display: grid !important;
  grid-template-columns: repeat(6, minmax(145px, 1fr)) !important;
  gap: 16px !important;
  box-sizing: border-box !important;
}

.pac-layout-body { display: contents !important; }

/* Sidebar real: usa grid-area, no margin-left ni fixed. */
#sidebar.pac-sidebar,
#sidebar,
.pac-sidebar {
  grid-area: sidebar !important;
  position: sticky !important;
  top: var(--pac-topbar-h) !important;
  align-self: start !important;
  height: calc(100vh - var(--pac-topbar-h)) !important;
  width: 100% !important;
  min-width: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 12px 10px 18px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  background:
    radial-gradient(circle at 50% 0%, rgba(153,233,242,.10), transparent 34%),
    linear-gradient(180deg, rgba(1,52,64,.98), rgba(1,28,38,.98)) !important;
  border-right: 1px solid rgba(153,233,242,.16) !important;
  z-index: 100 !important;
}

.pac-sidebar-nav-host { width: 100% !important; }

/* Contenido principal: NO margin-left. El grid ya separa sidebar/contenido. */
#page-content-shell.pac-page-content-shell,
#page-content-shell,
.page-content-shell,
#content,
.content-area,
.main-content-area {
  grid-area: content !important;
  position: relative !important;
  z-index: 1 !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-left: 0 !important;
  padding: 0 24px 34px !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
}

.pac-page-panel.is-hidden { display: none !important; }
.pac-page-panel.is-active { display: block !important; }

/* Páginas internas alineadas con KPI Órdenes */
.page-shell,
.page-overview,
.page-operations,
.page-finance,
.page-customers-routes,
.page-notifications,
.page-alerts,
.page-data,
.page-admin,
.page-admin-security,
.pac-page-panel,
.page-shell {
  margin-left: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}

/* Menú lateral con RadioItems */
.pac-sidebar-radio,
#main-nav.pac-sidebar-radio {
  display: flex !important;
  flex-direction: column !important;
  gap: 7px !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
.pac-sidebar-radio label,
.pac-sidebar-radio-label,
#main-nav label {
  width: 100% !important;
  min-height: 40px !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 10px 12px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  border-radius: 10px !important;
  border: 1px solid rgba(153,233,242,.16) !important;
  background: rgba(1, 52, 64, .42) !important;
  color: rgba(234,252,255,.82) !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  cursor: pointer !important;
}
.pac-sidebar-radio label:hover,
.pac-sidebar-radio-label:hover,
#main-nav label:hover {
  background: rgba(153,233,242,.10) !important;
  color: var(--pac-cyan) !important;
}
.pac-sidebar-radio input,
.pac-sidebar-radio-input,
#main-nav input[type="radio"] { display: none !important; }
.pac-sidebar-radio label:has(input:checked),
.pac-sidebar-radio-label:has(input:checked),
#main-nav label:has(input[type="radio"]:checked) {
  background: rgba(153,233,242,.15) !important;
  color: var(--pac-cyan) !important;
  border-left: 3px solid var(--pac-cyan) !important;
  padding-left: 10px !important;
}
.pac-sidebar-radio input:checked + span,
#main-nav input:checked + span { color: var(--pac-cyan) !important; }

/* Si quedan restos de dcc.Tabs, ocultarlos. */
#main-nav.tab-container,
#main-nav .tab-container,
#main-nav .tab,
#main-nav [role="tablist"] { display: none !important; }

/* Alertas/Teams y otros grids no deben salirse del ancho disponible. */
.notify-section,
.notifications-section,
.alerts-teams-section,
#notifications-layout,
#notifications-page {
  margin-left: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
}
.notify-grid,
.rules-grid,
.history-grid,
.teams-wizard {
  max-width: 100% !important;
  box-sizing: border-box !important;
}
.notify-section .dash-table-container,
.page-notifications .dash-table-container,
.alerts-teams-section .dash-table-container {
  max-width: 100% !important;
  overflow-x: auto !important;
}

@media (max-width: 1280px) {
  #kpi-grid.kpi-grid,
  #kpi-grid { grid-template-columns: repeat(3, minmax(150px, 1fr)) !important; }
}
@media (max-width: 900px) {
  :root { --pac-sidebar-w: 64px; }
  #sidebar-shell .sidebar-title { display: none !important; }
  .pac-sidebar-radio label,
  .pac-sidebar-radio-label,
  #main-nav label { font-size: 0 !important; justify-content: center !important; padding: 10px !important; }
  #page-content-shell.pac-page-content-shell,
  #page-content-shell { padding: 0 12px 26px !important; }
}

/* PAC v0.4.4 | Tarifas & Geo Intelligence Foundation */
.page-tariffs .page-title-row {
  align-items: stretch !important;
}
.tariff-controls-card {
  margin: 16px 0 16px !important;
  padding: 16px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(153,233,242,.16) !important;
  background: linear-gradient(135deg, rgba(1,52,64,.72), rgba(55,42,64,.36)) !important;
  box-shadow: 0 18px 52px rgba(0,0,0,.24) !important;
  box-sizing: border-box !important;
}
.tariff-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(180px, 1fr)) !important;
  gap: 12px !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
}
.tariff-kpis {
  margin: 0 !important;
  padding: 6px 0 16px !important;
}
.tariff-best-card {
  margin: 6px 0 16px !important;
  padding: 18px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(153,233,242,.18) !important;
  background:
    radial-gradient(circle at 0% 0%, rgba(153,233,242,.14), transparent 30%),
    rgba(1, 28, 38, .72) !important;
  box-shadow: 0 18px 48px rgba(0,0,0,.22) !important;
}
.tariff-best-card h3 {
  margin: 4px 0 12px !important;
  color: var(--pac-text, #EAFBFF) !important;
  font-size: 18px !important;
}
.tariff-best-card.empty {
  opacity: .8 !important;
}
.tariff-best-metrics {
  grid-template-columns: repeat(4, minmax(160px, 1fr)) !important;
  margin: 0 !important;
}
.page-tariffs .card,
.page-tariffs .alert-table-card {
  max-width: 100% !important;
  overflow: hidden !important;
}
.page-tariffs .dash-table-container {
  max-width: 100% !important;
  overflow-x: auto !important;
}
.page-tariffs .status-pill {
  min-width: 280px !important;
  max-width: 520px !important;
}
.page-tariffs .status-pill strong {
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
@media (max-width: 1280px) {
  .tariff-grid { grid-template-columns: repeat(2, minmax(180px, 1fr)) !important; }
  .tariff-best-metrics { grid-template-columns: repeat(2, minmax(160px, 1fr)) !important; }
}
@media (max-width: 760px) {
  .tariff-grid { grid-template-columns: 1fr !important; }
  .tariff-best-metrics { grid-template-columns: 1fr !important; }
  .page-tariffs .status-pill { min-width: 0 !important; }
}

/* PAC v0.4.5 | Mejor tarifa por ruta avanzado */
.tariff-scenario-card,
.tariff-advice-panel,
.tariff-best-options-card {
  margin: 16px 0;
  padding: 18px;
  border-radius: 22px;
  background: linear-gradient(135deg, rgba(1,52,64,.70), rgba(55,42,64,.34));
  border: 1px solid rgba(153,233,242,.16);
  box-shadow: 0 18px 50px rgba(0,0,0,.22);
  box-sizing: border-box;
}
.tariff-scenario-grid {
  align-items: end;
}
.tariff-formula-note {
  min-height: 54px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(153,233,242,.12);
  background: rgba(0,0,0,.18);
  color: rgba(234,252,255,.74);
  font-size: 12px;
  line-height: 1.35;
}
.tariff-formula-note strong { color: #99E9F2; }
.tariff-advanced-best {
  margin: 18px 0;
  padding: 20px;
  border-radius: 24px;
  border: 1px solid rgba(153,233,242,.20);
  background:
    radial-gradient(circle at 4% 0%, rgba(153,233,242,.14), transparent 32%),
    linear-gradient(135deg, rgba(1,52,64,.86), rgba(55,42,64,.48));
  box-shadow: 0 22px 64px rgba(0,0,0,.28);
}
.tariff-advanced-best h3,
.tariff-advice-panel h3 {
  margin: 4px 0 12px;
  font-size: 22px;
  color: #EAFBFF;
}
.tariff-best-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 14px;
}
.tariff-best-metrics {
  grid-template-columns: repeat(6, minmax(135px, 1fr));
}
.tariff-commercial-actions {
  margin-top: 14px;
  display: grid;
  gap: 8px;
}
.tariff-action-item {
  padding: 11px 13px;
  border-radius: 14px;
  background: rgba(153,233,242,.08);
  border: 1px solid rgba(153,233,242,.13);
  color: rgba(234,252,255,.82);
  font-size: 12px;
  line-height: 1.42;
}
.tariff-advice-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  gap: 12px;
}
@media (max-width: 1280px) {
  .tariff-best-metrics,
  .tariff-advice-grid { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
}
@media (max-width: 760px) {
  .tariff-best-metrics,
  .tariff-advice-grid { grid-template-columns: 1fr; }
}


/* v0.4.6 | Carga de Tarifas con staging + preview SCOPE */
.tariff-upload-section {
  margin: 18px 0;
  padding: 18px;
  border-radius: 24px;
  border: 1px solid rgba(153,233,242,.18);
  background:
    radial-gradient(circle at 10% 0%, rgba(153,233,242,.11), transparent 30%),
    linear-gradient(135deg, rgba(1,52,64,.72), rgba(55,42,64,.38));
  box-shadow: 0 22px 60px rgba(0,0,0,.24);
}
.tariff-upload-grid {
  grid-template-columns: repeat(4, minmax(180px, 1fr)) !important;
  align-items: end;
}
.tariff-upload-grid .filter-card:has(textarea),
.tariff-upload-grid .filter-card:nth-last-child(2) {
  grid-column: span 2;
}
.pac-textarea {
  width: 100%;
  min-height: 74px;
  border-radius: 12px;
  border: 1px solid rgba(153,233,242,.18);
  background: rgba(0,0,0,.22);
  color: var(--pac-text, #EAFBFF);
  padding: 10px 12px;
  outline: none;
  resize: vertical;
  font-family: Inter, Segoe UI, Arial, sans-serif;
  font-size: 12px;
}
.tariff-upload-validation {
  margin-top: 14px;
}
.tariff-upload-validation-inner {
  display: grid;
  gap: 10px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(153,233,242,.14);
  background: rgba(0,0,0,.16);
}
.tariff-upload-errors, .tariff-upload-warnings {
  color: rgba(234,252,255,.86);
  font-size: 12px;
  line-height: 1.45;
}
.tariff-upload-errors strong { color: #F21D56; }
.tariff-upload-warnings strong { color: #99E9F2; }
.tariff-upload-preview-card {
  margin-top: 14px;
}
.tariff-upload-actions {
  margin-top: 14px;
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.pac-date-range input {
  background: rgba(0,0,0,.22) !important;
  color: var(--pac-text, #EAFBFF) !important;
  border: 1px solid rgba(153,233,242,.18) !important;
}
@media (max-width: 1200px) {
  .tariff-upload-grid { grid-template-columns: repeat(2, minmax(180px, 1fr)) !important; }
}
@media (max-width: 720px) {
  .tariff-upload-grid { grid-template-columns: 1fr !important; }
  .tariff-upload-grid .filter-card:has(textarea),
  .tariff-upload-grid .filter-card:nth-last-child(2) { grid-column: span 1; }
}

/* PAC v0.4.7 | SCOPE Partners Catalog Sync */
.tariff-partners-sync-section {
  margin-top: 18px;
  padding: 18px;
  border-radius: 24px;
  border: 1px solid rgba(153,233,242,.18);
  background: linear-gradient(135deg, rgba(1,52,64,.72), rgba(55,42,64,.35));
  box-shadow: 0 20px 60px rgba(0,0,0,.22);
}
.tariff-partners-sync-section .data-health-grid {
  margin-top: 14px;
}
.tariff-partners-sync-section .data-health-card strong {
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tariff-partners-sync-section .tariff-upload-actions {
  margin-top: 14px;
}

/* v0.4.7 | Tariff upload UNLOCODE catalog */
.tariff-upload-port-catalog-status {
  grid-column: span 2;
  min-height: 38px;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid rgba(153,233,242,.14);
  background: rgba(1, 28, 38, .42);
}
.tariff-upload-port-catalog-status-inner {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.tariff-helper-text {
  color: rgba(234,252,255,.64);
  font-size: 11px;
  line-height: 1.25;
}
@media (max-width: 900px) {
  .tariff-upload-port-catalog-status { grid-column: span 1; }
}

/* ===== Consolidated from zzzzz_v059_ui_recovery.css ===== */
/* ============================================================
   PAC SCOPE Control Tower v0.5.9
   UI/UX Recovery & Layout Cleanup
   CSS-only: no callbacks, no auth, no data logic.
   Loaded last because file name starts with zzzzz.
   ============================================================ */

:root {
  --pac-deep: #013440;
  --pac-deep-2: #012833;
  --pac-purple: #372A40;
  --pac-cyan: #99E9F2;
  --pac-magenta: #BF265E;
  --pac-hot: #F21D56;
  --pac-text: #EAFBFF;
  --pac-muted: rgba(234,252,255,.68);
  --pac-muted-2: rgba(234,252,255,.48);
  --pac-border: rgba(153,233,242,.16);
  --pac-border-soft: rgba(153,233,242,.10);
  --pac-card: rgba(1,52,64,.58);
  --pac-card-2: rgba(1,40,52,.78);
  --pac-shadow: 0 14px 34px rgba(0,0,0,.22);
  --pac-radius: 14px;
  --pac-sidebar-w: 232px;
  --pac-topbar-h: 56px;
}

html, body {
  background:
    radial-gradient(circle at 12% 0%, rgba(153,233,242,.13), transparent 28%),
    radial-gradient(circle at 86% 12%, rgba(191,38,94,.13), transparent 28%),
    #001f28 !important;
  color: var(--pac-text) !important;
  font-family: Inter, "Segoe UI", Arial, sans-serif !important;
}

* { box-sizing: border-box; scrollbar-width: thin; scrollbar-color: rgba(153,233,242,.28) transparent; }
::-webkit-scrollbar { width: 7px; height: 7px; }
::-webkit-scrollbar-thumb { background: rgba(153,233,242,.26); border-radius: 999px; }

/* App shell */
#app-shell, .app-shell, .site-shell, .main-shell, .pac-app-shell { min-height: 100vh !important; }

#sidebar, .pac-sidebar, .sidebar, .sidebar-shell {
  width: var(--pac-sidebar-w) !important;
  min-width: var(--pac-sidebar-w) !important;
  max-width: var(--pac-sidebar-w) !important;
  background: linear-gradient(180deg, rgba(1,52,64,.98), rgba(1,34,43,.98)) !important;
  border-right: 1px solid var(--pac-border) !important;
  box-shadow: 8px 0 28px rgba(0,0,0,.20) !important;
  z-index: 100 !important;
}

#content, .content, .page-content, .main-content, .main-content-area, #main-content, #page-content, .pac-content {
  min-width: 0 !important;
  padding: 22px 24px 34px !important;
  overflow-x: hidden !important;
}

#topbar, .pac-topbar, .app-topbar, .topbar {
  min-height: var(--pac-topbar-h) !important;
  background: rgba(1,52,64,.94) !important;
  backdrop-filter: blur(14px) !important;
  border-bottom: 1px solid var(--pac-border) !important;
  box-shadow: 0 8px 24px rgba(0,0,0,.16) !important;
  z-index: 90 !important;
}

/* Sidebar nav */
#main-nav, .main-nav, .pac-sidebar-radio, .sidebar-nav {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  padding: 8px 8px 14px !important;
}

.pac-sidebar-radio-label, .main-nav-label, .sidebar-item, .nav-item, #main-nav label {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  min-height: 40px !important;
  padding: 10px 12px !important;
  border-radius: 11px !important;
  color: rgba(234,252,255,.74) !important;
  font-size: 13.5px !important;
  font-weight: 520 !important;
  line-height: 1.2 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  cursor: pointer !important;
}

.pac-sidebar-radio-label:hover, .main-nav-label:hover, .sidebar-item:hover, .nav-item:hover, #main-nav label:hover {
  background: rgba(153,233,242,.09) !important;
  color: var(--pac-cyan) !important;
}

.pac-sidebar-radio-input, .main-nav-input, #main-nav input[type="radio"] { display: none !important; }

.pac-sidebar-radio-label:has(input:checked), .main-nav-label:has(input:checked), #main-nav label:has(input:checked),
.sidebar-item.active, .nav-item.active, [data-active="true"] {
  color: var(--pac-cyan) !important;
  background: rgba(153,233,242,.15) !important;
  box-shadow: inset 3px 0 0 var(--pac-cyan) !important;
  font-weight: 720 !important;
}

/* Page visibility */
.page-shell.is-hidden, .is-hidden { display: none !important; }
.page-shell.is-active, .is-active { display: block !important; }

.page-shell, .page, .page-overview, .page-operations, .page-finance, .page-customers-routes,
.page-tariffs, .page-teams, .page-exports, .page-data, .page-admin-security, .ops57-shell {
  max-width: 100% !important;
  width: 100% !important;
  min-width: 0 !important;
}

/* Headers */
.page-shell > h1:first-child, .page > h1:first-child, .ops57-shell h1, h1.page-title, .page-title {
  margin: 0 0 16px !important;
  color: var(--pac-text) !important;
  font-size: clamp(22px, 2.2vw, 30px) !important;
  line-height: 1.1 !important;
  font-weight: 780 !important;
  letter-spacing: -.02em !important;
}

.page-shell > p:first-of-type, .page > p:first-of-type, .page-subtitle, .muted {
  color: var(--pac-muted) !important;
  font-size: 13px !important;
}

/* Cards */
.section-card, .card, .pac-card, .glass-card, .site-card, .site-navigation-card, .ops57-card,
.global-controls-card, .kpi-card, .metric-card, .dash-card, .panel, .table-card, .chart-card {
  background: var(--pac-card) !important;
  border: 1px solid var(--pac-border) !important;
  border-radius: var(--pac-radius) !important;
  box-shadow: var(--pac-shadow) !important;
  backdrop-filter: blur(10px) !important;
}

.section-card, .card, .pac-card, .glass-card, .ops57-card, .panel, .table-card, .chart-card {
  padding: 16px !important;
  margin-bottom: 16px !important;
}

.section-title, .card-title, .ops57-title, .panel-title {
  color: var(--pac-cyan) !important;
  font-size: 15px !important;
  font-weight: 750 !important;
  margin-bottom: 12px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid var(--pac-border-soft) !important;
}

/* KPI */
.kpi-grid, .kpis-grid, .metrics-grid, .ops57-kpis, .summary-grid, .dashboard-kpis {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
  gap: 14px !important;
  margin: 0 0 18px !important;
}

.kpi-card, .metric-card, .ops57-kpi {
  min-height: 104px !important;
  padding: 16px 18px !important;
  position: relative !important;
  overflow: hidden !important;
}

.kpi-label, .metric-label, .ops57-kpi-label {
  color: var(--pac-muted) !important;
  font-size: 10.5px !important;
  font-weight: 720 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.kpi-value, .metric-value, .ops57-kpi-value {
  color: var(--pac-text) !important;
  font-size: clamp(22px, 2.4vw, 30px) !important;
  font-weight: 780 !important;
  line-height: 1.15 !important;
  margin-top: 6px !important;
}

.kpi-note, .metric-note, .ops57-kpi-note {
  color: var(--pac-muted-2) !important;
  font-size: 12px !important;
  margin-top: 4px !important;
}

.kpi-card.danger, .metric-card.danger, .sev-critical { border-left: 3px solid var(--pac-hot) !important; }
.kpi-card.warning, .kpi-card.warn, .metric-card.warning, .sev-high { border-left: 3px solid var(--pac-magenta) !important; }
.kpi-card.ok, .metric-card.ok, .sev-medium { border-left: 3px solid var(--pac-cyan) !important; }

/* Grids */
.two-col, .grid-2, .ops57-grid-2, .dashboard-grid-2 {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
  gap: 16px !important;
}

.three-col, .grid-3, .ops57-grid-3, .dashboard-grid-3 {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

.full-row, .grid-full, .wide-card { grid-column: 1 / -1 !important; }

/* Filters */
.global-controls-card, .filterbar, .filters-card, .filters-panel, .controls-panel {
  padding: 12px 14px !important;
  margin-bottom: 16px !important;
  background: rgba(1,40,52,.82) !important;
  position: relative !important;
  z-index: 5 !important;
}

.filters, .filters-grid, .global-filters-grid, .controls-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(160px, 1fr)) !important;
  gap: 12px !important;
}

.filter-block label, .field-block label, .form-field label, .filter-label, .field-label {
  display: block !important;
  color: var(--pac-muted) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .05em !important;
  text-transform: uppercase !important;
  margin-bottom: 5px !important;
}

/* Dash dropdown / inputs */
.Select-control, .Select-menu-outer, .dash-dropdown, .dcc-dropdown, .DateInput_input, input, textarea, select {
  background: rgba(1,52,64,.82) !important;
  color: var(--pac-text) !important;
  border-color: rgba(153,233,242,.24) !important;
  border-radius: 9px !important;
}

.Select-value-label, .Select-placeholder, .Select--single > .Select-control .Select-value, .Select-input > input {
  color: var(--pac-text) !important;
}

.Select-menu-outer {
  background: #012833 !important;
  border: 1px solid rgba(153,233,242,.24) !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.28) !important;
  z-index: 9999 !important;
}

.VirtualizedSelectOption { background: #012833 !important; color: var(--pac-text) !important; }
.VirtualizedSelectFocusedOption { background: rgba(153,233,242,.14) !important; color: var(--pac-cyan) !important; }

/* Tables */
.dash-table-container, .dash-spreadsheet-container, .table-wrap, .ops57-table-wrap {
  max-width: 100% !important;
  overflow-x: auto !important;
}

.dash-table-container .dash-spreadsheet-container, .dash-table-container .dash-spreadsheet-inner {
  border-radius: 12px !important;
  overflow: hidden !important;
}

.dash-table-container th, .dash-spreadsheet-inner th {
  background: #013440 !important;
  color: var(--pac-cyan) !important;
  font-size: 11px !important;
  font-weight: 780 !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
  border-bottom: 2px solid rgba(153,233,242,.55) !important;
}

.dash-table-container td, .dash-spreadsheet-inner td {
  background: rgba(0,0,0,0) !important;
  color: var(--pac-text) !important;
  font-size: 12px !important;
  border-bottom: 1px solid rgba(153,233,242,.08) !important;
  line-height: 1.25 !important;
}

.dash-table-container tr:hover td, .dash-spreadsheet-inner tr:hover td {
  background: rgba(153,233,242,.06) !important;
}

/* Graphs/maps */
.js-plotly-plot, .dash-graph, .plot-container { max-width: 100% !important; }
.dash-graph, .js-plotly-plot { border-radius: 12px !important; overflow: hidden !important; }
.mapboxgl-map, .leaflet-container { border-radius: 12px !important; border: 1px solid var(--pac-border) !important; }

/* Badges */
.badge, .pac-badge, .status-badge {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  padding: 3px 8px !important;
  border-radius: 999px !important;
  font-size: 11px !important;
  font-weight: 720 !important;
  letter-spacing: .04em !important;
  border: 1px solid currentColor !important;
}

.badge.cyan, .pac-badge.cyan { color: var(--pac-cyan) !important; background: rgba(153,233,242,.12) !important; }
.badge.danger, .pac-badge.danger { color: var(--pac-hot) !important; background: rgba(242,29,86,.12) !important; }
.badge.magenta, .pac-badge.magenta { color: var(--pac-magenta) !important; background: rgba(191,38,94,.12) !important; }
.badge.muted, .pac-badge.muted { color: var(--pac-muted-2) !important; background: rgba(234,252,255,.06) !important; }

/* Operations Pro */
.ops57-shell { padding: 0 !important; }
.ops57-tabs, .ops57-tabbar {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  margin-bottom: 14px !important;
}

.ops57-tab, .ops57-tabs label {
  border: 1px solid var(--pac-border) !important;
  border-radius: 999px !important;
  padding: 8px 12px !important;
  background: rgba(1,52,64,.46) !important;
  color: var(--pac-muted) !important;
}

.ops57-eyebrow, .eyebrow {
  color: var(--pac-muted) !important;
  font-size: 11px !important;
  font-weight: 720 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  margin-bottom: 8px !important;
}

/* Responsive */
@media (max-width: 1280px) {
  .three-col, .grid-3, .ops57-grid-3, .dashboard-grid-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .filters, .filters-grid, .global-filters-grid, .controls-grid {
    grid-template-columns: repeat(2, minmax(160px, 1fr)) !important;
  }
}

@media (max-width: 980px) {
  :root { --pac-sidebar-w: 72px; }
  .sidebar-title, .brand-text { display: none !important; }
  .two-col, .grid-2, .ops57-grid-2, .dashboard-grid-2,
  .three-col, .grid-3, .ops57-grid-3, .dashboard-grid-3 {
    grid-template-columns: 1fr !important;
  }
  #content, .content, .page-content, .main-content, .main-content-area {
    padding: 16px !important;
  }
}

@media (max-width: 720px) {
  .kpi-grid, .kpis-grid, .metrics-grid, .ops57-kpis, .summary-grid, .dashboard-kpis,
  .filters, .filters-grid, .global-filters-grid, .controls-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ===== Consolidated from zzzzzz_v060_ams_automation_center.css ===== */
/* PAC SCOPE Control Tower v0.6.0 — AMS Automation Center */
.ams60-shell{display:flex;flex-direction:column;gap:16px;color:#EAFBFF}
.ams60-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:18px 20px;background:rgba(1,52,64,.58);border:1px solid rgba(153,233,242,.16);border-radius:16px;box-shadow:0 14px 34px rgba(0,0,0,.22);backdrop-filter:blur(10px)}
.ams60-eyebrow{color:rgba(234,252,255,.62);font-size:11px;font-weight:760;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}
.ams60-title{margin:0;color:#EAFBFF;font-size:clamp(22px,2.4vw,30px);line-height:1.1}
.ams60-subtitle{margin:8px 0 0;color:rgba(234,252,255,.68);font-size:13px}
.ams60-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.ams60-btn{min-height:38px;padding:9px 13px;border-radius:10px;border:1px solid rgba(153,233,242,.28);background:rgba(153,233,242,.12);color:#99E9F2;font-size:13px;font-weight:760;cursor:pointer}
.ams60-btn:hover{background:rgba(153,233,242,.18)}
.ams60-btn.secondary{color:#EAFBFF;background:rgba(55,42,64,.58);border-color:rgba(234,252,255,.16)}
.ams60-btn.danger{color:#F21D56;background:rgba(242,29,86,.10);border-color:rgba(242,29,86,.34)}
.ams60-btn.small{min-height:32px;padding:7px 10px;font-size:12px}
.ams60-kpi-row{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:14px}
.ams60-kpi,.ams60-status-card,.ams60-card{background:rgba(1,52,64,.58);border:1px solid rgba(153,233,242,.16);border-radius:14px;box-shadow:0 14px 34px rgba(0,0,0,.22);backdrop-filter:blur(10px)}
.ams60-kpi{padding:16px 18px;min-height:96px;border-left:3px solid rgba(153,233,242,.45)}
.ams60-kpi.ok{border-left-color:#4ade80}.ams60-kpi.danger{border-left-color:#F21D56}.ams60-kpi.warning{border-left-color:#BF265E}
.ams60-kpi-label{color:rgba(234,252,255,.62);font-size:10.5px;font-weight:760;letter-spacing:.08em;text-transform:uppercase}
.ams60-kpi-value{margin-top:6px;font-size:28px;font-weight:800}.ams60-kpi-note{margin-top:4px;color:rgba(234,252,255,.52);font-size:12px}
.ams60-status-grid{display:grid;grid-template-columns:1.4fr 1.4fr .9fr;gap:14px}.ams60-status-card{padding:14px 16px}
.ams60-mono{font-family:Consolas,monospace;color:#EAFBFF;font-size:12px;word-break:break-all}
.ams60-note,.ams60-source{color:rgba(234,252,255,.55);font-size:12px;margin-top:6px}.ams60-status-value{color:#99E9F2;font-size:16px;font-weight:760}
.ams60-card{padding:16px}.ams60-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid rgba(153,233,242,.12)}
.ams60-card-title{margin:0;font-size:17px;color:#99E9F2}
.ams60-output{min-height:110px;max-height:320px;overflow:auto;margin:0 0 14px;padding:12px 14px;border-radius:12px;background:rgba(0,0,0,.20);border:1px solid rgba(153,233,242,.12);color:rgba(234,252,255,.82);font-family:Consolas,monospace;font-size:12px;white-space:pre-wrap}
.ams60-empty{padding:16px;border:1px dashed rgba(153,233,242,.20);border-radius:12px;color:rgba(234,252,255,.55)}
@media (max-width:1200px){.ams60-header{flex-direction:column}.ams60-actions{justify-content:flex-start}.ams60-kpi-row,.ams60-status-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}}
@media (max-width:720px){.ams60-kpi-row,.ams60-status-grid{grid-template-columns:1fr}}

/* ===== Consolidated from zzzzzzz_v071_admin_rbac_ui.css ===== */
/* PAC SCOPE Control Tower v0.7.1
   Admin-first internal modules + readable table selection. */

/* Dash DataTable selected/focused cells: avoid white-on-white selection bug. */
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.cell--selected,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.focused,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.dash-cell.focused,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.dash-cell.cell--selected {
  background-color: rgba(153, 233, 242, 0.22) !important;
  color: #EAFBFF !important;
  border-color: rgba(153, 233, 242, 0.85) !important;
  box-shadow: inset 0 0 0 1px rgba(153, 233, 242, 0.55) !important;
}

.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.cell--selected *,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.focused * {
  color: #EAFBFF !important;
}

.dash-table-container .dash-filter input,
.dash-table-container input.dash-filter--case,
.dash-table-container .dash-spreadsheet-container input {
  color: #013440 !important;
  background: rgba(255,255,255,.96) !important;
}

.admin-internal-shell { display: flex; flex-direction: column; gap: 18px; }
.admin-internal-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 14px;
}
.admin-internal-card { min-height: 190px; display: flex; flex-direction: column; gap: 10px; }
.admin-internal-card p { opacity: .86; line-height: 1.45; }
.admin-permission-chip {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  border-radius: 999px;
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .02em;
}
.admin-permission-chip.ok {
  background: rgba(153,233,242,.14);
  color: #99E9F2;
  border: 1px solid rgba(153,233,242,.28);
}
.admin-permission-chip.denied {
  background: rgba(242,29,86,.14);
  color: #FFD7E2;
  border: 1px solid rgba(242,29,86,.32);
}
.admin-visibility-grid {
  display: grid;
  grid-template-columns: minmax(220px, 0.8fr) minmax(260px, 1.25fr) minmax(260px, 1.25fr);
  gap: 14px;
  align-items: start;
}
.admin-current-permissions { margin-top: 14px; }
.pac-action-btn.disabled,
.pac-action-btn:disabled {
  opacity: .48;
  cursor: not-allowed;
  filter: grayscale(.25);
}

@media (max-width: 980px) {
  .admin-visibility-grid { grid-template-columns: 1fr; }
}

/* ===== Consolidated from zzzzzzzz_v072_ams_control_center.css ===== */
/* PAC v0.7.2 | AMS Control Center inside Admin */
.ams72-shell {
  margin: 16px 0 24px;
  padding: 16px;
  border-radius: 18px;
  border: 1px solid rgba(153,233,242,.16);
  background: linear-gradient(135deg, rgba(1,52,64,.58), rgba(55,42,64,.38));
  box-shadow: 0 20px 44px rgba(0,0,0,.22);
}
.ams72-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.ams72-eyebrow,
.ams72-source-label {
  color: #99E9F2;
  text-transform: uppercase;
  letter-spacing: .10em;
  font-size: 11px;
  font-weight: 800;
}
.ams72-header h3 {
  margin: 4px 0 6px;
  color: #EAFBFF;
}
.ams72-header p {
  margin: 0;
  color: rgba(234,251,255,.74);
}
.ams72-source-box {
  max-width: 48%;
  min-width: 280px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(1,20,30,.52);
  border: 1px solid rgba(153,233,242,.12);
}
.ams72-mono,
.ams72-subsource {
  font-family: Consolas, 'Cascadia Mono', monospace;
  font-size: 11px;
  color: rgba(234,251,255,.78);
  word-break: break-all;
}
.ams72-kpi-row {
  display: grid;
  grid-template-columns: repeat(6, minmax(130px, 1fr));
  gap: 12px;
  margin: 14px 0 16px;
}
.ams72-kpi {
  padding: 12px;
  border-radius: 16px;
  background: rgba(1,20,30,.62);
  border: 1px solid rgba(153,233,242,.12);
}
.ams72-kpi.ok { border-color: rgba(74,222,128,.28); }
.ams72-kpi.warning { border-color: rgba(251,191,36,.28); }
.ams72-kpi.danger { border-color: rgba(242,29,86,.34); }
.ams72-kpi-label {
  color: rgba(234,251,255,.70);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .07em;
  font-weight: 800;
}
.ams72-kpi-value {
  color: #EAFBFF;
  font-weight: 900;
  font-size: 26px;
  line-height: 1.15;
  margin-top: 4px;
}
.ams72-kpi-note {
  color: rgba(234,251,255,.60);
  font-size: 12px;
  margin-top: 3px;
}
.ams72-grid-2 {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 14px;
  margin-top: 14px;
}
.ams72-card {
  min-width: 0;
  padding: 14px;
  border-radius: 18px;
  background: rgba(1,20,30,.58);
  border: 1px solid rgba(153,233,242,.13);
}
.ams72-card-title {
  color: #EAFBFF;
  font-size: 15px;
  font-weight: 850;
  margin-bottom: 8px;
}
.ams72-empty {
  padding: 16px;
  border-radius: 12px;
  color: rgba(234,251,255,.68);
  background: rgba(1,20,30,.48);
  border: 1px dashed rgba(153,233,242,.18);
}
@media (max-width: 1300px) {
  .ams72-kpi-row { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
  .ams72-grid-2 { grid-template-columns: 1fr; }
  .ams72-source-box { max-width: 100%; }
  .ams72-header { flex-direction: column; }
}

/* ===== Consolidated from zzzzzzzzz_v100_stable_control_tower.css ===== */

/* PAC SCOPE Control Tower v1.0.0 */
.v100-operations-shell,.v100-admin-shell{margin:18px 0 24px 0;padding:18px;border:1px solid rgba(153,233,242,.18);border-radius:24px;background:linear-gradient(135deg,rgba(1,52,64,.58),rgba(55,42,64,.38));box-shadow:0 18px 48px rgba(0,0,0,.24)}
.v100-operations-shell .dash-spreadsheet-container .dash-spreadsheet-inner td.cell--selected,.v100-admin-shell .dash-spreadsheet-container .dash-spreadsheet-inner td.cell--selected{background-color:rgba(191,38,94,.42)!important;color:#fff!important;border-color:#BF265E!important}
.v100-operations-shell .dash-spreadsheet-container .dash-spreadsheet-inner td.focused,.v100-admin-shell .dash-spreadsheet-container .dash-spreadsheet-inner td.focused{background-color:rgba(153,233,242,.22)!important;color:#fff!important;border-color:#99E9F2!important}
.v100-operations-shell input,.v100-admin-shell input{color:#EAFBFF!important;background:#092b35!important}
.v100-admin-shell .tab-content,.v100-operations-shell .tab-content{padding-top:12px}
.page-actions-mini{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.compact.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin:14px 0}.source-pill{max-width:100%;overflow:hidden;text-overflow:ellipsis}

/* ===== Consolidated from zzzzzzzzzz_v103_interactive_control_tower.css ===== */
/* =============================================================================
   PAC SCOPE Control Tower v1.0.3 | Interactive Drilldown / Cross-filter
   ============================================================================= */
.kpi-clickable {
  cursor: pointer !important;
  transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease !important;
  position: relative !important;
}
.kpi-clickable:hover {
  transform: translateY(-2px) !important;
  border-color: rgba(153,233,242,.46) !important;
  box-shadow: 0 18px 44px rgba(0,0,0,.26), 0 0 0 1px rgba(153,233,242,.18) inset !important;
  background: linear-gradient(145deg, rgba(1,52,64,.72), rgba(55,42,64,.64)) !important;
}
.kpi-clickable:after {
  content: "clic para desglosar";
  position: absolute;
  right: 12px;
  bottom: 8px;
  font-size: 10px;
  color: rgba(153,233,242,.78);
  letter-spacing: .03em;
  opacity: 0;
  transition: opacity .16s ease;
}
.kpi-clickable:hover:after { opacity: 1; }

.v103-interaction-bar {
  margin: 0 24px 16px;
  grid-column: 2;
  position: relative;
  z-index: 25;
}
.v103-selection-empty,
.v103-selection-active {
  border: 1px solid rgba(153,233,242,.16);
  background: linear-gradient(135deg, rgba(1,52,64,.60), rgba(1,20,30,.84));
  border-radius: 18px;
  padding: 12px 16px;
  color: #EAFBFF;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  box-shadow: 0 16px 44px rgba(0,0,0,.18);
}
.v103-selection-empty {
  justify-content: flex-start;
  opacity: .86;
}
.v103-selection-empty span:first-child,
.v103-selection-kicker {
  text-transform: uppercase;
  letter-spacing: .11em;
  font-size: 10.5px;
  color: #99E9F2;
  font-weight: 800;
}
.v103-selection-empty strong,
.v103-selection-active strong {
  font-size: 13px;
  color: #fff;
}
.v103-selection-empty span:last-child,
.v103-selection-active span:last-child {
  color: rgba(234,251,255,.72);
  font-size: 12px;
}
.v103-selection-copy {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}

#detail-panel.v103-drilldown-modal,
#detail-panel.detail360-shell,
.detail-panel.detail360-shell {
  position: fixed !important;
  top: 76px !important;
  right: 24px !important;
  bottom: 24px !important;
  width: min(920px, calc(100vw - 96px)) !important;
  max-width: 920px !important;
  height: auto !important;
  overflow: auto !important;
  z-index: 30000 !important;
  margin: 0 !important;
  padding: 20px !important;
  border-radius: 26px !important;
  border: 1px solid rgba(153,233,242,.22) !important;
  background:
    radial-gradient(circle at top left, rgba(153,233,242,.13), transparent 32%),
    linear-gradient(145deg, rgba(1,20,30,.98), rgba(1,52,64,.95) 58%, rgba(55,42,64,.92)) !important;
  box-shadow: 0 34px 110px rgba(0,0,0,.58), 0 0 0 1px rgba(255,255,255,.04) inset !important;
  backdrop-filter: blur(18px) saturate(125%) !important;
}
#detail-panel.detail360-shell:before {
  content: "";
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.22);
  z-index: -1;
  pointer-events: none;
}
.v103-modal-header {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 18px !important;
  margin-bottom: 14px !important;
}
.v103-modal-close {
  border: 1px solid rgba(153,233,242,.28) !important;
  background: rgba(255,255,255,.08) !important;
  color: #fff !important;
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  border-radius: 14px !important;
  font-size: 24px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.22) !important;
}
.v103-modal-close:hover {
  background: rgba(242,29,86,.22) !important;
  border-color: rgba(242,29,86,.55) !important;
}
.v103-mini-metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 12px;
  margin: 12px 0 16px;
}
.v103-mini-metric {
  border-radius: 18px;
  padding: 12px 14px;
  background: rgba(255,255,255,.065);
  border: 1px solid rgba(153,233,242,.16);
}
.v103-mini-label {
  color: rgba(153,233,242,.88);
  text-transform: uppercase;
  letter-spacing: .08em;
  font-size: 10.5px;
  font-weight: 800;
}
.v103-mini-value {
  color: #fff;
  font-size: 24px;
  font-weight: 900;
  margin-top: 3px;
}
.v103-mini-note {
  color: rgba(234,251,255,.65);
  font-size: 11px;
}
.v103-drilldown .jc-panel {
  margin-top: 14px;
}

.dash-graph {
  cursor: crosshair;
}
.js-plotly-plot .plotly .cursor-pointer { cursor: pointer !important; }

.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.focused,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.cell--selected,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.dash-cell.focused,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.dash-cell.cell--selected {
  background-color: rgba(153,233,242,.20) !important;
  color: #FFFFFF !important;
  border-color: rgba(153,233,242,.85) !important;
}

@media (max-width: 980px) {
  #detail-panel.v103-drilldown-modal,
  #detail-panel.detail360-shell,
  .detail-panel.detail360-shell {
    top: 64px !important;
    right: 10px !important;
    bottom: 10px !important;
    width: calc(100vw - 20px) !important;
    max-width: none !important;
    border-radius: 20px !important;
  }
  .v103-mini-metric-grid { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
  .v103-selection-empty, .v103-selection-active { align-items: flex-start; flex-direction: column; }
}

/* ===== Consolidated from zzzzzzzzzzz_v105_interactive_core_final.css ===== */
/* =============================================================================
   PAC SCOPE Control Tower v1.0.5 | Interactive Core Final
   ============================================================================= */
.v105-selection-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-left:auto}
.v105-breakdown-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:14px;margin:14px 0 16px}.v105-breakdown-card{border:1px solid rgba(153,233,242,.16);border-radius:20px;padding:12px;background:rgba(255,255,255,.045);box-shadow:0 14px 36px rgba(0,0,0,.16)}.v105-breakdown-card h4{margin:0 0 10px;color:#99E9F2;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.v105-empty-note{border:1px dashed rgba(153,233,242,.24);border-radius:16px;padding:12px;color:rgba(234,251,255,.75)}.v105-modal-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:2px 0 10px}.v105-modal-help{color:rgba(234,251,255,.72);font-size:12px;line-height:1.45}.v100-operations-shell .kpi-clickable{outline:1px solid rgba(153,233,242,.10)}.v100-operations-shell .kpi-clickable:hover{outline-color:rgba(153,233,242,.42)}
@media(max-width:980px){.v105-breakdown-grid{grid-template-columns:1fr}.v105-selection-actions{width:100%;margin-left:0}.v105-selection-actions .pac-action-btn{flex:1}}

/* ===== Consolidated from zzzzzzzzzzzz_v110_business_control_tower.css ===== */
/* =============================================================================
   PAC Business Control Tower v1.1.0 | UX Strategic Layer
   Objetivo: convertir la app de dashboard técnico a sistema de dirección.
   ============================================================================= */

:root {
  --pac-deep: #013440;
  --pac-plum: #372A40;
  --pac-cyan: #99E9F2;
  --pac-magenta: #BF265E;
  --pac-danger: #F21D56;
  --pac-soft: rgba(153, 233, 242, .14);
  --pac-panel: rgba(1, 20, 30, .72);
  --pac-panel-2: rgba(55, 42, 64, .42);
  --pac-text: #EAFBFF;
  --pac-muted: rgba(234, 251, 255, .68);
}

body {
  letter-spacing: .01em;
}

.compact-hero {
  align-items: center;
  gap: 18px;
  padding: 14px 18px !important;
  border: 1px solid rgba(153, 233, 242, .14);
  background:
    radial-gradient(circle at 18% 0%, rgba(153,233,242,.12), transparent 30%),
    linear-gradient(120deg, rgba(1,52,64,.92), rgba(18,21,35,.88));
}

.compact-hero .hero-title-block h1 {
  font-size: clamp(24px, 2.2vw, 34px);
  margin-bottom: 2px;
}

.compact-hero .hero-title-block p {
  max-width: 780px;
  color: var(--pac-muted);
}

.pac-sidebar-radio-label {
  font-weight: 750 !important;
}

.pac-sidebar-radio-label:hover {
  transform: translateX(2px);
}

.business-command-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin: 12px 0 18px;
}

.command-card {
  min-height: 112px;
  padding: 16px;
  border-radius: 22px;
  border: 1px solid rgba(153, 233, 242, .14);
  background: linear-gradient(145deg, rgba(1,52,64,.68), rgba(55,42,64,.34));
  box-shadow: 0 18px 40px rgba(0,0,0,.18);
}

.command-card.primary {
  border-color: rgba(153, 233, 242, .35);
  background: linear-gradient(145deg, rgba(1,52,64,.92), rgba(153,233,242,.13));
}

.command-card span {
  display: block;
  color: var(--pac-cyan);
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: .12em;
  font-weight: 800;
}

.command-card strong {
  display: block;
  margin-top: 8px;
  font-size: 17px;
  line-height: 1.16;
  color: var(--pac-text);
}

.command-card p {
  margin: 8px 0 0;
  font-size: 12.5px;
  line-height: 1.35;
  color: var(--pac-muted);
}

.executive-control-panel {
  grid-template-columns: minmax(360px, 1.15fr) minmax(360px, 1fr) minmax(320px, .9fr) !important;
  align-items: stretch;
}

.executive-card-title-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
}

.version-pill {
  border-radius: 999px;
  padding: 5px 9px;
  font-size: 11px;
  color: var(--pac-cyan);
  background: rgba(153, 233, 242, .09);
  border: 1px solid rgba(153, 233, 242, .22);
  white-space: nowrap;
}

.health-score {
  overflow: hidden;
}

.health-main strong {
  font-size: clamp(48px, 5vw, 72px) !important;
  letter-spacing: -.05em;
}

.health-mini-grid {
  margin-bottom: 16px;
}

.health-dimensions-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 14px;
}

.health-dimension {
  padding: 12px;
  border-radius: 18px;
  border: 1px solid rgba(153,233,242,.13);
  background: rgba(255,255,255,.035);
}

.dimension-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  color: var(--pac-muted);
}

.dimension-top strong {
  color: var(--pac-text);
}

.dimension-bar {
  width: 100%;
  height: 6px;
  margin: 9px 0 8px;
  border-radius: 99px;
  overflow: hidden;
  background: rgba(255,255,255,.08);
}

.dimension-bar > div {
  height: 100%;
  border-radius: inherit;
  background: var(--pac-cyan);
}

.health-dimension.warning .dimension-bar > div {
  background: #FFD166;
}

.health-dimension.danger .dimension-bar > div {
  background: var(--pac-danger);
}

.dimension-status {
  display: inline-flex;
  padding: 3px 8px;
  border-radius: 99px;
  font-size: 11px;
  font-weight: 800;
  color: var(--pac-cyan);
  background: rgba(153,233,242,.10);
}

.health-dimension.warning .dimension-status {
  color: #FFD166;
  background: rgba(255,209,102,.11);
}

.health-dimension.danger .dimension-status {
  color: #FF7B9D;
  background: rgba(242,29,86,.13);
}

.health-dimension p {
  margin: 8px 0 0;
  font-size: 11.5px;
  line-height: 1.35;
  color: var(--pac-muted);
}

.executive-actions-card ol.next-action-list {
  margin: 10px 0 0 20px;
  padding: 0;
}

.executive-actions-card ol.next-action-list li {
  margin: 0 0 10px;
  padding-left: 4px;
  color: var(--pac-text);
  line-height: 1.35;
}

.action-model-note {
  margin-top: 16px;
  padding: 12px;
  border-radius: 16px;
  color: var(--pac-cyan);
  background: rgba(153,233,242,.08);
  border: 1px solid rgba(153,233,242,.14);
  font-size: 12px;
  font-weight: 700;
}

.table-card h3,
.card h3 {
  letter-spacing: -.01em;
}

@media (max-width: 1320px) {
  .business-command-strip,
  .executive-control-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 820px) {
  .business-command-strip,
  .executive-control-panel,
  .health-dimensions-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ===== Consolidated from zzzzzzzzzzzzz_v150_ai_copilot.css ===== */
/* PAC Business Control Tower v1.5.0 — AI Copilot */
.v150-page .page-title-row {
  border: 1px solid rgba(153,233,242,.16);
  background: linear-gradient(135deg, rgba(1,52,64,.72), rgba(55,42,64,.58));
  border-radius: 22px;
  padding: 18px 20px;
  margin-bottom: 18px;
}
.v150-kpi-grid {
  margin-bottom: 18px;
}
.v150-page .card,
.v150-page .table-card {
  border: 1px solid rgba(153,233,242,.15);
  background: rgba(1,20,30,.68);
  box-shadow: 0 18px 44px rgba(0,0,0,.20);
}
.v150-page .section-header-row {
  gap: 14px;
  align-items: flex-start;
}
.v150-action-table-card .dash-table-container {
  border-radius: 18px;
}
.ai-copilot-grid {
  align-items: stretch;
}
.v150-ai-textarea {
  width: 100%;
  min-height: 180px;
  resize: vertical;
  border-radius: 18px;
  border: 1px solid rgba(153,233,242,.28);
  background: rgba(1,20,30,.86);
  color: #EAFBFF;
  padding: 14px;
  font-family: "Segoe UI", Arial, sans-serif;
  font-size: 14px;
  line-height: 1.45;
  outline: none;
  box-sizing: border-box;
}
.v150-ai-textarea:focus {
  border-color: rgba(153,233,242,.75);
  box-shadow: 0 0 0 3px rgba(153,233,242,.12);
}
.primary-button {
  margin-top: 12px;
  border: 0;
  border-radius: 999px;
  padding: 11px 18px;
  background: linear-gradient(135deg, #99E9F2, #BF265E);
  color: #013440;
  font-weight: 800;
  cursor: pointer;
}
.primary-button:hover {
  filter: brightness(1.08);
}
.v150-ai-response {
  display: grid;
  gap: 12px;
}
.copilot-answer-block {
  border: 1px solid rgba(153,233,242,.12);
  background: rgba(255,255,255,.035);
  border-radius: 18px;
  padding: 14px 16px;
}
.copilot-answer-block h4 {
  margin: 0 0 8px;
  color: #99E9F2;
}
.copilot-answer-block p,
.copilot-answer-block li {
  color: #EAFBFF;
}
.copilot-answer-block ol,
.copilot-answer-block ul {
  margin: 8px 0 0 20px;
  padding: 0;
}
@media (max-width: 980px) {
  .ai-copilot-grid,
  .v150-page .grid-2 {
    grid-template-columns: 1fr !important;
  }
}

/* ===== Consolidated from zzzzzzzzzzzzzz_v160_process_action_engine.css ===== */
/* PAC Business Control Tower v1.6.0 | Process Action Engine */
.v160-page .page-title-row {
  border: 1px solid rgba(153,233,242,.16);
  background: linear-gradient(135deg, rgba(1,52,64,.72), rgba(55,42,64,.55));
  box-shadow: 0 18px 44px rgba(0,0,0,.22);
}
.v160-tabs .tab,
.v160-tabs .dash-tab {
  background: rgba(1,52,64,.72) !important;
  color: rgba(234,251,255,.78) !important;
  border: 1px solid rgba(153,233,242,.14) !important;
  border-radius: 16px 16px 0 0 !important;
  padding: 12px 16px !important;
  font-weight: 700 !important;
}
.v160-tabs .tab--selected,
.v160-tabs .dash-tab--selected {
  background: linear-gradient(135deg, rgba(153,233,242,.20), rgba(191,38,94,.18)) !important;
  color: #EAFBFF !important;
  border-top: 1px solid rgba(153,233,242,.45) !important;
}
.v160-textarea {
  width: 100%;
  min-height: 92px;
  resize: vertical;
  border-radius: 14px;
  padding: 12px;
  background: rgba(255,255,255,.94);
  color: #013440;
  border: 1px solid rgba(153,233,242,.35);
  font-family: Segoe UI, Arial, sans-serif;
  margin: 8px 0 10px;
}
.primary-action {
  border: 0;
  border-radius: 14px;
  padding: 10px 14px;
  color: #013440;
  font-weight: 800;
  background: linear-gradient(135deg, #99E9F2, #EAFBFF);
  box-shadow: 0 10px 26px rgba(153,233,242,.20);
  cursor: pointer;
}
.primary-action:hover { transform: translateY(-1px); }
.v160-status-msg {
  margin-top: 10px;
  min-height: 22px;
  color: #EAFBFF;
}
.status-ok,
.v160-status-msg .status-ok {
  color: #99E9F2;
  font-weight: 700;
}
.status-warn,
.v160-status-msg .status-warn {
  color: #FFD37A;
  font-weight: 700;
}
.page-process-engine .table-card,
.page-process-engine .card {
  border: 1px solid rgba(153,233,242,.15);
}
.page-process-engine .source-pill {
  display: inline-flex;
  width: fit-content;
  border-radius: 999px;
  padding: 7px 10px;
  color: #99E9F2;
  background: rgba(153,233,242,.10);
  border: 1px solid rgba(153,233,242,.22);
  font-weight: 800;
}

/* ===== Consolidated from zzzzzzzzzzzzzzz_v162_ux_navigation_scope.css ===== */
/* PAC Business Control Tower v1.6.2 | UX Navigation + SCOPE Freshness */
:root {
  --pac-sidebar-w: 252px;
  --pac-sidebar-w-collapsed: 68px;
  --pac-card-radius: 22px;
}

/* Sidebar collapse persistente y real */
#app-shell.collapsed,
.app-shell.collapsed {
  --pac-sidebar-w: var(--pac-sidebar-w-collapsed) !important;
}
#app-shell.collapsed #sidebar-shell,
#app-shell.collapsed #sidebar,
#app-shell.collapsed .pac-sidebar {
  width: var(--pac-sidebar-w-collapsed) !important;
  min-width: var(--pac-sidebar-w-collapsed) !important;
  max-width: var(--pac-sidebar-w-collapsed) !important;
}
#app-shell.collapsed .sidebar-title,
#app-shell.collapsed .pac-nav-text,
#app-shell.collapsed .pac-sidebar-group-title {
  display: none !important;
}
#app-shell.collapsed .pac-sidebar-group summary {
  justify-content: center !important;
  padding: 10px 8px !important;
}
#app-shell.collapsed .pac-sidebar-group summary::after { display: none !important; }
#app-shell.collapsed .pac-sidebar-group-items { padding-left: 0 !important; }
#app-shell.collapsed .pac-nav-button {
  justify-content: center !important;
  padding: 10px 8px !important;
  min-width: 0 !important;
}
#app-shell.collapsed .pac-nav-icon {
  min-width: 32px !important;
  width: 32px !important;
}

/* Oculta RadioItems heredado. Se conserva solo como state/callback target. */
.hidden-main-nav,
#main-nav.hidden-main-nav,
#main-nav.hidden-main-nav * {
  display: none !important;
}

.pac-sidebar-nav-v162 {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  width: 100% !important;
}
.pac-sidebar-group {
  width: 100% !important;
  border: 1px solid rgba(153,233,242,.13) !important;
  border-radius: 16px !important;
  background: rgba(1, 29, 40, .48) !important;
  overflow: hidden !important;
}
.pac-sidebar-group summary {
  min-height: 42px !important;
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  padding: 11px 12px !important;
  cursor: pointer !important;
  color: rgba(234,252,255,.88) !important;
  font-size: 12px !important;
  font-weight: 850 !important;
  letter-spacing: .02em !important;
  list-style: none !important;
  user-select: none !important;
}
.pac-sidebar-group summary::-webkit-details-marker { display: none !important; }
.pac-sidebar-group summary::after {
  content: "▾";
  margin-left: auto;
  color: rgba(153,233,242,.72);
  transition: transform .16s ease;
}
.pac-sidebar-group:not([open]) summary::after { transform: rotate(-90deg); }
.pac-sidebar-group-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 28px !important;
  width: 28px !important;
  height: 28px !important;
  border-radius: 10px !important;
  background: rgba(153,233,242,.10) !important;
  color: #99E9F2 !important;
  border: 1px solid rgba(153,233,242,.16) !important;
}
.pac-sidebar-group-items {
  display: flex !important;
  flex-direction: column !important;
  gap: 7px !important;
  padding: 0 8px 10px 8px !important;
}
.pac-nav-button,
.v162-module-card {
  font-family: Segoe UI, Inter, Arial, sans-serif !important;
}
.pac-nav-button {
  min-height: 38px !important;
  width: 100% !important;
  border: 1px solid rgba(153,233,242,.13) !important;
  border-radius: 12px !important;
  background: rgba(1,52,64,.42) !important;
  color: rgba(234,252,255,.84) !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  padding: 9px 10px !important;
  text-align: left !important;
  font-size: 12px !important;
  font-weight: 760 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
}
.pac-nav-button:hover,
.v162-module-card:hover {
  transform: translateY(-1px) !important;
  background: rgba(153,233,242,.12) !important;
  color: #EAFBFF !important;
  border-color: rgba(153,233,242,.32) !important;
  box-shadow: 0 14px 30px rgba(0,0,0,.24) !important;
}
.pac-nav-icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 30px !important;
  width: 30px !important;
  height: 26px !important;
  border-radius: 9px !important;
  background: rgba(153,233,242,.08) !important;
  color: #99E9F2 !important;
  font-size: 11px !important;
  font-weight: 900 !important;
}
.pac-nav-text {
  min-width: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* Process Engine: separar módulos en tarjetas navegables */
.v162-module-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(220px, 1fr)) !important;
  gap: 16px !important;
  margin-top: 18px !important;
}
.v162-module-card {
  min-height: 150px !important;
  border-radius: 22px !important;
  border: 1px solid rgba(153,233,242,.16) !important;
  background: linear-gradient(135deg, rgba(1,52,64,.72), rgba(55,42,64,.36)) !important;
  color: #EAFBFF !important;
  padding: 18px !important;
  cursor: pointer !important;
  text-align: left !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  gap: 10px !important;
}
.v162-module-card strong {
  font-size: 17px !important;
  color: #99E9F2 !important;
}
.v162-module-card p {
  margin: 0 !important;
  color: rgba(234,252,255,.72) !important;
  font-size: 13px !important;
  line-height: 1.35 !important;
}
.v162-module-badge {
  display: inline-flex !important;
  min-width: 34px !important;
  height: 28px !important;
  align-items: center !important;
  justify-content: center !important;
  border-radius: 999px !important;
  background: rgba(153,233,242,.12) !important;
  border: 1px solid rgba(153,233,242,.28) !important;
  color: #99E9F2 !important;
  font-size: 11px !important;
  font-weight: 900 !important;
}

/* Unificación visual general */
.page-title-row,
.card,
.table-card,
.executive-health-card,
.executive-alerts-card,
.executive-actions-card,
.notify-status-card,
.data-health-card {
  border-radius: var(--pac-card-radius) !important;
  border: 1px solid rgba(153,233,242,.16) !important;
  background: linear-gradient(135deg, rgba(1,52,64,.66), rgba(55,42,64,.32)) !important;
  box-shadow: 0 18px 42px rgba(0,0,0,.20) !important;
}
.card h3,
.table-card h3,
.page-title-row h2 {
  color: #EAFBFF !important;
}
.primary-action,
button.primary-action,
.filter-toggle-btn,
.filter-clear-btn {
  border-radius: 14px !important;
  font-weight: 850 !important;
}

/* Dropdowns/Input consistentes */
.pac-dropdown .Select-control,
.pac-dropdown .Select-menu-outer,
.Select-control,
.Select-menu-outer,
.pac-text-input,
.v160-textarea {
  border-radius: 14px !important;
}

/* Estado de frescura SCOPE */
.status-pill.ok,
.status-pill.status-ok { border-color: rgba(153,233,242,.35) !important; }
.status-pill.warning {
  border-color: rgba(255,211,122,.46) !important;
  background: rgba(255,211,122,.10) !important;
}
.status-pill.warning strong { color: #FFD37A !important; }
.status-pill.danger {
  border-color: rgba(242,29,86,.48) !important;
  background: rgba(242,29,86,.12) !important;
}
.status-pill.danger strong { color: #F21D56 !important; }

@media (max-width: 1320px) {
  .v162-module-grid { grid-template-columns: repeat(2, minmax(220px, 1fr)) !important; }
}
@media (max-width: 860px) {
  :root { --pac-sidebar-w: var(--pac-sidebar-w-collapsed); }
  .v162-module-grid { grid-template-columns: 1fr !important; }
}

/* ===== Consolidated from zzzzzzzzzzzzzzzz_v163_ux_stability.css ===== */
/* PAC Business Control Tower v1.6.3 | UX Stability Hotfix
   - Sidebar hide real + persisted state friendly
   - Design unification for newer process pages
   - Cleaner Entra/local login visibility
*/
:root {
  --pac-sidebar-w-collapsed: 0px;
}

/* Ocultar realmente el menú lateral cuando se contrae.
   El botón hamburguesa queda fijo para restaurar. */
#app-shell.collapsed,
.app-shell.collapsed {
  --pac-sidebar-w: 0px !important;
  --sidebar-w: 0px !important;
}
#app-shell.collapsed #sidebar,
#app-shell.collapsed .pac-sidebar {
  width: 0 !important;
  min-width: 0 !important;
  max-width: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
  overflow: hidden !important;
}
#app-shell.collapsed #sidebar-shell.sidebar-shell,
#app-shell.collapsed #sidebar-shell {
  position: fixed !important;
  top: 10px !important;
  left: 10px !important;
  width: 46px !important;
  min-width: 46px !important;
  max-width: 46px !important;
  height: 46px !important;
  padding: 0 !important;
  z-index: 20000 !important;
  border-radius: 16px !important;
  border: 1px solid rgba(153,233,242,.24) !important;
  background: rgba(1,35,48,.94) !important;
  box-shadow: 0 16px 36px rgba(0,0,0,.35) !important;
}
#app-shell.collapsed .sidebar-toggle {
  width: 46px !important;
  height: 46px !important;
  margin: 0 !important;
  border-radius: 16px !important;
}
#app-shell.collapsed .sidebar-title,
#app-shell.collapsed .pac-sidebar-nav-host,
#app-shell.collapsed .pac-sidebar-nav-v162,
#app-shell.collapsed .pac-sidebar-group,
#app-shell.collapsed .pac-nav-button,
#app-shell.collapsed .pac-nav-text,
#app-shell.collapsed .pac-sidebar-group-title {
  display: none !important;
}

/* Alineación visual uniforme */
.pac-page-panel .card,
.pac-page-panel .table-card,
.pac-page-panel .jc-panel,
.pac-page-panel .data-health-card,
.pac-page-panel .notify-status-card,
.pac-page-panel .glass-card,
.pac-page-panel .v162-module-card {
  border-radius: 22px !important;
  border: 1px solid rgba(153,233,242,.16) !important;
  background: linear-gradient(135deg, rgba(1,52,64,.68), rgba(55,42,64,.32)) !important;
  box-shadow: 0 18px 44px rgba(0,0,0,.22) !important;
}
.pac-page-panel h2,
.pac-page-panel h3 {
  color: #EAFBFF !important;
  letter-spacing: -.015em !important;
}
.pac-page-panel .section-eyebrow {
  color: #99E9F2 !important;
  font-weight: 850 !important;
}

/* Tablas Dash: default PAC cuando una tabla no trae style propio */
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner table {
  border-collapse: separate !important;
}
.dash-table-container .dash-header {
  background: rgba(1,52,64,.96) !important;
  color: #99E9F2 !important;
  font-weight: 800 !important;
}
.dash-table-container .dash-cell {
  background: rgba(1,20,30,.68) !important;
  color: #EAFBFF !important;
  border-color: rgba(153,233,242,.10) !important;
}

/* Login local: Entra no debe robar foco cuando está deshabilitado. */
.login-entra-status.warning {
  border-color: rgba(255,211,122,.45) !important;
  background: rgba(255,211,122,.10) !important;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzz_v164_ux_stability.css ===== */
/* PAC Business Control Tower v1.6.4 | Navigation + Detail Stability Hotfix */
.pac-nav-button.is-active {
  border-color: rgba(153,233,242,.70) !important;
  background: linear-gradient(135deg, rgba(153,233,242,.18), rgba(191,38,94,.16)) !important;
  color: #EAFBFF !important;
  box-shadow: inset 3px 0 0 #99E9F2, 0 10px 26px rgba(0,0,0,.20) !important;
}
.pac-nav-button.is-active .pac-nav-icon {
  color: #99E9F2 !important;
}
.v164-compact-drilldown-note {
  margin: 12px 0 16px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(153,233,242,.16);
  background: rgba(1,52,64,.42);
  color: rgba(234,251,255,.78);
  font-size: 13px;
}
.ops-pro-fallback .warning-card {
  border-color: rgba(255,211,122,.35) !important;
  background: linear-gradient(135deg, rgba(255,211,122,.12), rgba(55,42,64,.28)) !important;
}
.detail-panel .v105-breakdown-grid:empty {
  display: none !important;
}
/* El panel lateral debe ser de contexto, no un dashboard paralelo. */
.detail-panel.v103-drilldown-modal .v105-breakdown-grid {
  margin-top: 10px;
}

/* Alias file added in v1.6.5 so preflight v1.6.4/v1.6.5 can validate cleanly. */

/* ===== Consolidated from zzzzzzzzzzzzzzzzz_v164_navigation_detail_hotfix.css ===== */
/* PAC Business Control Tower v1.6.4 | Navigation + Detail Stability Hotfix */
.pac-nav-button.is-active {
  border-color: rgba(153,233,242,.70) !important;
  background: linear-gradient(135deg, rgba(153,233,242,.18), rgba(191,38,94,.16)) !important;
  color: #EAFBFF !important;
  box-shadow: inset 3px 0 0 #99E9F2, 0 10px 26px rgba(0,0,0,.20) !important;
}
.pac-nav-button.is-active .pac-nav-icon {
  color: #99E9F2 !important;
}
.v164-compact-drilldown-note {
  margin: 12px 0 16px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(153,233,242,.16);
  background: rgba(1,52,64,.42);
  color: rgba(234,251,255,.78);
  font-size: 13px;
}
.ops-pro-fallback .warning-card {
  border-color: rgba(255,211,122,.35) !important;
  background: linear-gradient(135deg, rgba(255,211,122,.12), rgba(55,42,64,.28)) !important;
}
.detail-panel .v105-breakdown-grid:empty {
  display: none !important;
}
/* El panel lateral debe ser de contexto, no un dashboard paralelo. */
.detail-panel.v103-drilldown-modal .v105-breakdown-grid {
  margin-top: 10px;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzz_v166_entra_login_hotfix.css ===== */
/* ========================================================================== */
/* v1.6.6 | Entra login hotfix                                                */
/* ========================================================================== */
.login-card {
  width: min(520px, calc(100vw - 36px));
}
.entra-login-panel {
  margin-top: 18px;
  padding: 18px;
  border-radius: 22px;
  border: 1px solid rgba(153, 233, 242, .22);
  background: linear-gradient(135deg, rgba(1,52,64,.74), rgba(55,42,64,.42));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 20px 70px rgba(0,0,0,.24);
}
.entra-login-panel h3 {
  margin: 4px 0 6px;
  color: #EAFBFF;
  font-size: 18px;
}
.entra-login-panel p,
.entra-config-hint {
  color: rgba(234,251,255,.72);
  font-size: 12px;
  line-height: 1.45;
}
.entra-config-hint {
  margin-top: 8px;
}
.entra-login-button {
  display: flex !important;
  visibility: visible !important;
  min-height: 48px !important;
  margin-top: 14px !important;
  border-radius: 16px !important;
}
.entra-login-button.disabled {
  display: flex !important;
  pointer-events: none;
  opacity: .64;
  filter: grayscale(.25);
  border: 1px solid rgba(242,29,86,.32) !important;
  background: rgba(242,29,86,.12) !important;
}
.login-entra-status {
  display: block !important;
  margin-top: 10px !important;
}
.login-entra-status.warning {
  border: 1px solid rgba(242,29,86,.32);
}
.login-demo-users.entra-help[open] {
  border-color: rgba(242,29,86,.26);
  background: rgba(242,29,86,.07);
}
.login-demo-users.entra-help span {
  color: rgba(234,251,255,.64);
  font-size: 11px;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzz_v167_ux_interaction_layout.css ===== */
/* PAC Business Control Tower v1.6.7 | UX interaction/layout hotfix */
:root{
  --pac-bg:#013440;
  --pac-bg2:#031d2a;
  --pac-card:rgba(1,52,64,.62);
  --pac-card2:rgba(3,29,42,.88);
  --pac-line:rgba(153,233,242,.18);
  --pac-line-strong:rgba(153,233,242,.36);
  --pac-cyan:#99E9F2;
  --pac-hot:#F21D56;
  --pac-magenta:#BF265E;
  --pac-text:#EAFBFF;
  --pac-muted:rgba(234,251,255,.68);
  --pac-hover:rgba(153,233,242,.15);
  --pac-selected:rgba(191,38,94,.32);
}

/* 1) Detail 360 lateral: collapsed by default; expands only after click */
.detail-panel{
  position:fixed;
  top:118px;
  right:0;
  width:44px;
  min-height:170px;
  max-height:calc(100vh - 145px);
  z-index:1060;
  pointer-events:none;
  background:transparent;
  border:0;
  transform:none;
}
.detail-panel:not(.active)::after{
  content:"Detalle 360";
  position:absolute;
  top:0;
  right:0;
  writing-mode:vertical-rl;
  text-orientation:mixed;
  letter-spacing:.06em;
  color:var(--pac-cyan);
  background:linear-gradient(180deg, rgba(1,52,64,.95), rgba(55,42,64,.92));
  border:1px solid var(--pac-line-strong);
  border-right:0;
  border-radius:16px 0 0 16px;
  box-shadow:0 16px 34px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.08);
  padding:16px 10px;
  font-weight:900;
  font-size:11px;
  text-transform:uppercase;
  pointer-events:none;
}
.detail-panel.active{
  pointer-events:auto;
  width:min(760px, 46vw);
  min-width:520px;
  max-width:820px;
  overflow:auto;
  padding:14px;
  background:linear-gradient(140deg, rgba(1,52,64,.96), rgba(11,26,43,.97));
  border:1px solid var(--pac-line-strong);
  border-right:0;
  border-radius:22px 0 0 22px;
  box-shadow:-24px 0 50px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.08);
  backdrop-filter:blur(18px);
}
.detail-panel.active .detail360,
.detail-panel.active .v103-drilldown{display:block;}
.detail-panel .v103-modal-close{
  background:rgba(242,29,86,.18)!important;
  color:#fff!important;
  border:1px solid rgba(242,29,86,.55)!important;
  border-radius:12px!important;
}
@media(max-width:1200px){
  .detail-panel.active{width:92vw; min-width:0; top:92px;}
}

/* 2) Dash DataTable hover/focus: remove white flash */
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner th{
  transition:background-color .12s ease, color .12s ease, border-color .12s ease;
}
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner tr:hover td,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td:hover,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.focused,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.cell--selected,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner th.focused,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner th.cell--selected{
  background-color:var(--pac-hover)!important;
  color:var(--pac-text)!important;
  border-color:rgba(153,233,242,.62)!important;
  outline:1px solid rgba(153,233,242,.55)!important;
}
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td input,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner th input{
  background:rgba(234,251,255,.92)!important;
  color:#05212c!important;
  border-radius:999px!important;
  border:0!important;
}
.dash-table-container .previous-next-container button,
.dash-table-container .page-number,
.dash-table-container .current-page{
  background:rgba(1,52,64,.8)!important;
  color:var(--pac-text)!important;
  border-color:var(--pac-line)!important;
}

/* 3) Torre Operativa order: alerts first, tracking second */
.page-operations{display:flex;flex-direction:column;gap:18px;}
.page-operations>.page-title-row{order:0;}
.page-operations>.alerts-section{order:1;}
.page-operations>.v100-operations-shell{order:2;}
.alerts-section{margin-top:0!important;}
.v100-operations-shell{
  background:linear-gradient(135deg, rgba(1,52,64,.74), rgba(11,26,43,.78));
  border:1px solid var(--pac-line-strong);
  border-radius:22px;
  padding:18px;
  box-shadow:0 18px 38px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.07);
}
.v167-live-tracking-panel{border-color:rgba(153,233,242,.35)!important;}
.v167-live-tracking-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:14px;margin:14px 0;}
.v167-live-card{
  background:rgba(1,20,30,.55);
  border:1px solid var(--pac-line);
  border-radius:16px;
  padding:14px;
}
.v167-live-card span{display:block;color:var(--pac-muted);font-size:11px;text-transform:uppercase;font-weight:800;letter-spacing:.05em;}
.v167-live-card strong{display:block;color:var(--pac-text);font-size:18px;margin:4px 0;}
.v167-live-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px;}
.v167-live-note{font-size:12px;color:var(--pac-muted);margin-top:10px;border-top:1px solid var(--pac-line);padding-top:10px;}

/* 4) Tabs/buttons unified, especially Operations Pro */
.finance-subtabs-wrap,
.pac-page-tabs-wrap{background:transparent!important;border:0!important;margin:12px 0 18px!important;}
.finance-subtabs,
.pac-page-tabs{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:10px!important;
  background:rgba(1,20,30,.40)!important;
  border:1px solid var(--pac-line)!important;
  border-radius:18px!important;
  padding:8px!important;
}
.finance-subtab,
.tab,
.dash-tab,
.custom-tab,
.operations-pro-tab,
[class*="subtab"]{
  background:linear-gradient(135deg, rgba(1,52,64,.80), rgba(11,26,43,.82))!important;
  color:var(--pac-text)!important;
  border:1px solid var(--pac-line)!important;
  border-radius:14px!important;
  padding:12px 16px!important;
  min-height:42px!important;
  font-weight:800!important;
  letter-spacing:.02em!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important;
}
.finance-subtab:hover,
.tab:hover,
.dash-tab:hover,
.custom-tab:hover,
.operations-pro-tab:hover,
[class*="subtab"]:hover{
  background:linear-gradient(135deg, rgba(1,52,64,.96), rgba(153,233,242,.12))!important;
  color:var(--pac-cyan)!important;
  border-color:rgba(153,233,242,.45)!important;
}
.finance-subtab.selected,
.dash-tab--selected,
.tab--selected,
.custom-tab--selected,
.operations-pro-tab.selected,
[class*="subtab"].selected{
  background:linear-gradient(135deg, rgba(153,233,242,.20), rgba(191,38,94,.20))!important;
  color:#fff!important;
  border-color:rgba(153,233,242,.72)!important;
  box-shadow:0 0 0 1px rgba(153,233,242,.25), 0 14px 28px rgba(0,0,0,.22)!important;
}
.page-operations-pro .finance-subtab,
.page-operations-pro .dash-tab,
.page-operations-pro button,
.page-operations-pro .tab{
  color:var(--pac-text)!important;
}

/* 5) Interactive graph affordance */
.js-plotly-plot .plotly .points path,
.js-plotly-plot .plotly .scatterlayer path,
.js-plotly-plot .plotly .barlayer path{cursor:pointer;}
.card:has(.js-plotly-plot){position:relative;}
.card:has(.js-plotly-plot)::after{
  content:"Clic para filtrar";
  position:absolute;top:14px;right:16px;
  font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;
  color:rgba(153,233,242,.72);
  background:rgba(1,20,30,.58);border:1px solid var(--pac-line);border-radius:999px;padding:5px 9px;
  pointer-events:none;
}

/* 6) Procurement tabbed page */
.v167-tabbed-page .tariff-controls-card,
.v167-tabbed-page .tariff-scenario-card,
.v167-tabbed-page .tariff-upload-section{
  margin-bottom:16px;
}
.v167-tabbed-page .dash-tab div{color:inherit!important;}
.v167-source-grid .status-pill{min-width:170px;}
.v167-technical-path summary{color:var(--pac-cyan);font-weight:900;}
.v167-technical-path div{font-size:11px;line-height:1.35;color:var(--pac-muted);max-width:520px;word-break:break-word;}
.status-pill.ok{border-color:rgba(153,233,242,.42)!important;}
.status-pill.warning{border-color:rgba(255,193,7,.45)!important;background:rgba(255,193,7,.08)!important;}
.status-pill.danger{border-color:rgba(242,29,86,.48)!important;background:rgba(242,29,86,.10)!important;}

@media(max-width:900px){
  .v167-live-tracking-grid{grid-template-columns:1fr;}
  .header-status-grid.v167-source-grid{grid-template-columns:1fr!important;}
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzz_v168_sync_engine.css ===== */
/* PAC BCT v1.6.8 | Sync Engine controls */
.v168-source-grid {
  grid-template-columns: repeat(5, minmax(150px, 1fr)) auto minmax(220px, 1.2fr);
  align-items: stretch;
}
.v168-refresh-btn {
  min-height: 42px;
  align-self: center;
  white-space: nowrap;
  box-shadow: 0 0 0 1px rgba(153,233,242,.25), 0 14px 32px rgba(153,233,242,.10);
}
.v168-refresh-status {
  font-size: 11px;
  color: #dffbff;
  min-width: 220px;
  align-self: center;
}
.v168-refresh-status .teams-status-ok,
.v168-refresh-status .teams-status-warning,
.v168-refresh-status .teams-status-error {
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid rgba(153,233,242,.20);
  background: rgba(1,20,30,.68);
  line-height: 1.35;
}
.v168-refresh-status .teams-status-ok { border-color: rgba(153,233,242,.38); }
.v168-refresh-status .teams-status-warning { border-color: rgba(255,193,7,.45); }
.v168-refresh-status .teams-status-error { border-color: rgba(242,29,86,.55); }
.v168-technical-path {
  grid-column: 1 / -1;
}
@media (max-width: 1300px) {
  .v168-source-grid { grid-template-columns: repeat(2, minmax(170px, 1fr)); }
  .v168-refresh-status, .v168-refresh-btn { width: 100%; }
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzz_v169_pac_design_system.css ===== */
/* ============================================================================
   PAC Business Control Tower v1.6.9
   Design System + Accessibility Hardening
   Objetivo: unificar paleta PAC, contraste WCAG AA, tablas, botones y alertas.
   Este archivo carga al final por orden alfabético y corrige hotfixes previos.
============================================================================ */

:root {
  /* Brand palette */
  --pac-primary: #013440;
  --pac-secondary: #372A40;
  --pac-accent: #99E9F2;
  --pac-accent-strong: #BF265E;
  --pac-danger: #F21D56;

  /* Semantic palette */
  --pac-warning: #FFB020;
  --pac-success: #22C55E;
  --pac-info: #99E9F2;
  --pac-critical-soft: rgba(242, 29, 86, 0.14);
  --pac-warning-soft: rgba(255, 176, 32, 0.16);
  --pac-success-soft: rgba(34, 197, 94, 0.14);
  --pac-info-soft: rgba(153, 233, 242, 0.16);

  /* Accessible text */
  --pac-text-on-dark: #EAFBFF;
  --pac-text-on-light: #07191F;
  --pac-text-muted-dark: rgba(234, 251, 255, 0.72);
  --pac-text-muted-light: #475569;
  --pac-border-dark: rgba(153, 233, 242, 0.22);
  --pac-border-light: rgba(1, 52, 64, 0.16);

  /* Surfaces */
  --pac-bg: #07191F;
  --pac-bg-elevated: #0A2831;
  --pac-surface: rgba(255, 255, 255, 0.96);
  --pac-surface-alt: #F6FAFB;
  --pac-surface-dark: #092832;

  /* Layout */
  --pac-radius-sm: 8px;
  --pac-radius-md: 12px;
  --pac-radius-lg: 16px;
  --pac-space-1: 4px;
  --pac-space-2: 8px;
  --pac-space-3: 12px;
  --pac-space-4: 16px;
  --pac-space-5: 24px;
  --pac-shadow-soft: 0 8px 24px rgba(0, 0, 0, 0.16);
  --pac-shadow-card: 0 6px 18px rgba(1, 52, 64, 0.10);
  --pac-focus-ring: 0 0 0 3px rgba(153, 233, 242, 0.42);
}

* { box-sizing: border-box; }

html, body {
  color: var(--pac-text-on-dark);
  background: radial-gradient(circle at top left, rgba(153,233,242,.10), transparent 34%), var(--pac-bg);
  font-family: Inter, Roboto, Montserrat, "Segoe UI", Arial, sans-serif;
}

body, .app-shell, .site-shell {
  min-height: 100vh;
  background-color: var(--pac-bg);
}

/* Global legibility guardrails */
.app-shell p,
.site-shell p,
.app-shell span,
.site-shell span,
.app-shell label,
.site-shell label,
.app-shell div,
.site-shell div {
  text-rendering: optimizeLegibility;
}

/* Headings */
h1, h2, h3, h4 {
  letter-spacing: -0.02em;
}

/* PAC hero/header */
.hero,
.compact-hero,
.pac-topbar,
.header-status-grid {
  border-bottom: 1px solid var(--pac-border-dark);
}

.hero-title-block h1,
.hero-title-block p {
  color: var(--pac-text-on-dark) !important;
}

.logo-card,
.compact-logo {
  background: rgba(255,255,255,.96) !important;
  border: 1px solid rgba(153,233,242,.35) !important;
  border-radius: var(--pac-radius-lg) !important;
  box-shadow: var(--pac-shadow-soft);
}

/* Sidebar and navigation */
.pac-sidebar,
.sidebar-shell {
  background: linear-gradient(180deg, var(--pac-primary), #06242C) !important;
  color: var(--pac-text-on-dark) !important;
  border-right: 1px solid var(--pac-border-dark) !important;
}

.sidebar-toggle,
.sidebar-title,
.pac-sidebar * {
  color: var(--pac-text-on-dark) !important;
}

.nav-link,
.nav-item,
.pac-sidebar .dash-radioitems label,
.pac-sidebar label {
  border-radius: var(--pac-radius-sm) !important;
}

.nav-link:hover,
.nav-item:hover,
.pac-sidebar .dash-radioitems label:hover,
.pac-sidebar label:hover {
  background: rgba(153, 233, 242, 0.14) !important;
  color: var(--pac-text-on-dark) !important;
}

.nav-link.active,
.nav-item.active,
.pac-sidebar .dash-radioitems label:has(input:checked),
.pac-sidebar label.selected {
  background: rgba(153, 233, 242, 0.22) !important;
  border-left: 3px solid var(--pac-accent) !important;
  color: var(--pac-text-on-dark) !important;
}

/* Main content surfaces */
.pac-page-content-shell,
.page-shell,
.pac-page-panel {
  color: var(--pac-text-on-light);
}

.jc-panel,
.data-health-card,
.dashboard-card,
.pac-card,
.kpi-card,
.action-card,
.automation-card,
.finance-card,
.tariff-card,
.alert-card,
.dash-card,
.section-card {
  background: var(--pac-surface) !important;
  color: var(--pac-text-on-light) !important;
  border: 1px solid var(--pac-border-light) !important;
  border-radius: var(--pac-radius-md) !important;
  box-shadow: var(--pac-shadow-card) !important;
}

.jc-panel h1, .jc-panel h2, .jc-panel h3, .jc-panel h4,
.data-health-card h1, .data-health-card h2, .data-health-card h3, .data-health-card h4,
.dashboard-card h1, .dashboard-card h2, .dashboard-card h3, .dashboard-card h4,
.kpi-card h1, .kpi-card h2, .kpi-card h3, .kpi-card h4,
.pac-card h1, .pac-card h2, .pac-card h3, .pac-card h4 {
  color: var(--pac-primary) !important;
}

.jc-panel p, .data-health-card p, .dashboard-card p, .kpi-card p,
.pac-card p, .section-card p, .metadata, .muted, .help-text {
  color: var(--pac-text-muted-light) !important;
}

/* KPI cards */
.kpi-card,
.metric-card {
  min-height: 96px;
  padding: var(--pac-space-4) !important;
  transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease;
}

.kpi-card:hover,
.metric-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 24px rgba(1, 52, 64, 0.16) !important;
  border-color: rgba(153, 233, 242, 0.70) !important;
}

.kpi-card.danger,
.metric-card.danger,
.kpi-danger {
  border-left: 5px solid var(--pac-danger) !important;
  background: linear-gradient(90deg, var(--pac-critical-soft), var(--pac-surface) 48%) !important;
}

.kpi-card.warning,
.metric-card.warning,
.kpi-warning {
  border-left: 5px solid var(--pac-warning) !important;
  background: linear-gradient(90deg, var(--pac-warning-soft), var(--pac-surface) 48%) !important;
}

.kpi-card.ok,
.metric-card.ok,
.kpi-success {
  border-left: 5px solid var(--pac-success) !important;
  background: linear-gradient(90deg, var(--pac-success-soft), var(--pac-surface) 48%) !important;
}

/* Buttons */
button,
.pac-action-btn,
.v168-refresh-btn,
.dash-button {
  border-radius: var(--pac-radius-sm) !important;
  border: 1px solid rgba(1, 52, 64, 0.22) !important;
  font-weight: 700 !important;
  min-height: 36px;
  transition: transform .14s ease, box-shadow .14s ease, background-color .14s ease, border-color .14s ease;
}

button:hover,
.pac-action-btn:hover,
.v168-refresh-btn:hover,
.dash-button:hover {
  transform: translateY(-1px);
  box-shadow: var(--pac-shadow-card);
}

.pac-action-btn.primary,
button.primary,
.v168-refresh-btn {
  background: var(--pac-accent) !important;
  color: var(--pac-primary) !important;
  border-color: rgba(153, 233, 242, 0.82) !important;
}

.pac-action-btn.danger,
button.danger {
  background: var(--pac-critical-soft) !important;
  color: var(--pac-text-on-light) !important;
  border-color: rgba(242, 29, 86, 0.55) !important;
}

.pac-action-btn.secondary,
button.secondary {
  background: var(--pac-secondary) !important;
  color: var(--pac-text-on-dark) !important;
}

button:focus-visible,
.pac-action-btn:focus-visible,
a:focus-visible,
.Select-control:focus-within,
input:focus-visible,
textarea:focus-visible {
  outline: none !important;
  box-shadow: var(--pac-focus-ring) !important;
}

/* Status pills / badges */
.status-pill,
.badge,
.version-pill,
.pac-badge {
  border-radius: 999px !important;
  border: 1px solid rgba(153, 233, 242, .28) !important;
  background: rgba(255,255,255,.10) !important;
  color: var(--pac-text-on-dark) !important;
  gap: var(--pac-space-2);
}

.status-pill span,
.status-pill strong,
.badge,
.version-pill {
  color: inherit !important;
}

.status-pill.ok,
.badge.ok,
.teams-status-ok {
  background: var(--pac-success-soft) !important;
  border-color: rgba(34,197,94,.48) !important;
  color: var(--pac-text-on-light) !important;
}

.status-pill.warning,
.badge.warning,
.teams-status-warning {
  background: var(--pac-warning-soft) !important;
  border-color: rgba(255,176,32,.55) !important;
  color: var(--pac-text-on-light) !important;
}

.status-pill.danger,
.badge.danger,
.teams-status-error {
  background: var(--pac-critical-soft) !important;
  border-color: rgba(242,29,86,.55) !important;
  color: var(--pac-text-on-light) !important;
}

.status-pill.info,
.badge.info {
  background: var(--pac-info-soft) !important;
  border-color: rgba(153,233,242,.58) !important;
  color: var(--pac-text-on-light) !important;
}

/* Alert system: icon + text required in content; color is secondary cue */
.pac-alert,
.alert-critical,
.alert-warning,
.alert-success,
.alert-info,
.teams-status-ok,
.teams-status-warning,
.teams-status-error {
  display: flex;
  align-items: flex-start;
  gap: var(--pac-space-3);
  padding: var(--pac-space-3) var(--pac-space-4) !important;
  border-radius: var(--pac-radius-md) !important;
  line-height: 1.42;
  font-weight: 600;
}

.alert-critical,
.pac-alert.critical,
.teams-status-error {
  background: var(--pac-critical-soft) !important;
  border: 1px solid rgba(242,29,86,.55) !important;
  color: var(--pac-text-on-light) !important;
}

.alert-warning,
.pac-alert.warning,
.teams-status-warning {
  background: var(--pac-warning-soft) !important;
  border: 1px solid rgba(255,176,32,.62) !important;
  color: var(--pac-text-on-light) !important;
}

.alert-success,
.pac-alert.success,
.teams-status-ok {
  background: var(--pac-success-soft) !important;
  border: 1px solid rgba(34,197,94,.55) !important;
  color: var(--pac-text-on-light) !important;
}

.alert-info,
.pac-alert.info {
  background: var(--pac-info-soft) !important;
  border: 1px solid rgba(153,233,242,.62) !important;
  color: var(--pac-text-on-light) !important;
}

/* Tables: fix white-on-white hover/selection and keep WCAG AA */
.dash-table-container,
.dash-table-container * {
  font-family: Inter, Roboto, "Segoe UI", Arial, sans-serif !important;
}

.dash-table-container .dash-spreadsheet-container,
.dash-table-container .dash-spreadsheet-inner,
.dash-table-container .dash-spreadsheet {
  background: var(--pac-surface) !important;
  color: var(--pac-text-on-light) !important;
}

.dash-table-container .dash-spreadsheet th,
.dash-table-container .dash-header,
.dash-table-container .column-header-name {
  background: var(--pac-primary) !important;
  color: var(--pac-text-on-dark) !important;
  border-color: rgba(153,233,242,.26) !important;
  font-weight: 800 !important;
}

.dash-table-container .dash-spreadsheet td,
.dash-table-container .dash-cell {
  background: #FFFFFF !important;
  color: var(--pac-text-on-light) !important;
  border-color: rgba(1,52,64,.11) !important;
}

.dash-table-container .dash-spreadsheet tr:hover td,
.dash-table-container .dash-spreadsheet tr:hover .dash-cell,
.dash-table-container .dash-cell.cell--selected,
.dash-table-container .dash-cell.focused,
.dash-table-container td.cell--selected,
.dash-table-container td.focused {
  background: #EAFBFF !important;
  color: var(--pac-text-on-light) !important;
  border-color: rgba(1,52,64,.35) !important;
}

.dash-table-container input,
.dash-table-container textarea {
  color: var(--pac-text-on-light) !important;
  background: #FFFFFF !important;
}

/* Dropdowns / filters */
.Select-control,
.Select-menu-outer,
.Select-value,
.Select-placeholder,
.dcc-dropdown,
.DateInput_input,
input,
textarea {
  color: var(--pac-text-on-light) !important;
  background: #FFFFFF !important;
  border-color: rgba(1,52,64,.20) !important;
  border-radius: var(--pac-radius-sm) !important;
}

.Select-menu-outer .VirtualizedSelectOption:hover,
.Select-option.is-focused {
  background: #EAFBFF !important;
  color: var(--pac-text-on-light) !important;
}

.Select-option.is-selected,
.VirtualizedSelectFocusedOption {
  background: rgba(153,233,242,.35) !important;
  color: var(--pac-primary) !important;
}

/* Technical details / refresh panels */
.technical-path,
.v167-technical-path,
.v168-technical-path,
details {
  color: var(--pac-text-on-dark) !important;
  border: 1px solid rgba(153,233,242,.28) !important;
  border-radius: var(--pac-radius-md) !important;
  background: rgba(255,255,255,.08) !important;
}

.technical-path summary,
details summary {
  cursor: pointer;
  color: var(--pac-accent) !important;
  font-weight: 800;
}

.refresh-log-box,
textarea.refresh-log-box {
  background: #061A21 !important;
  color: #EAFBFF !important;
  border: 1px solid rgba(153,233,242,.25) !important;
  border-radius: var(--pac-radius-md) !important;
  font-family: "Cascadia Mono", Consolas, monospace !important;
}

/* Drawer / detail panel pattern */
.detail-drawer,
.side-summary,
.summary-panel,
.detail-panel,
.order-detail-panel {
  background: var(--pac-surface) !important;
  color: var(--pac-text-on-light) !important;
  border-left: 1px solid rgba(1,52,64,.16) !important;
  box-shadow: -8px 0 24px rgba(1,52,64,.12) !important;
}

.detail-drawer.collapsed,
.side-summary.collapsed,
.summary-panel.collapsed {
  width: 48px !important;
  min-width: 48px !important;
}

/* Plotly cards */
.js-plotly-plot,
.plot-container,
.svg-container {
  border-radius: var(--pac-radius-md) !important;
}

/* Horizontal overflow: prefer internal scroll over full page chaos */
.pac-page-content-shell,
.page-shell,
.pac-page-panel {
  overflow-x: hidden;
}

.dash-table-container,
.table-wrap,
.pac-table-wrap {
  max-width: 100%;
  overflow-x: auto;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzz_v170_contrast_accessibility_hotfix.css ===== */
/* ============================================================================
   PAC Business Control Tower v1.7.0
   Visual Contrast + Sidebar + Table Semaphores Hotfix
   Correcciones solicitadas:
   - KPI siempre legibles, sin blanco sobre blanco.
   - Hover/selección de tablas siempre legible.
   - Filtros blancos con texto oscuro y encabezados visibles.
   - Sidebar minimizada por default; se cierra al navegar.
   - Semáforos de tablas con color real, no solo texto.
============================================================================ */

:root {
  --pac-primary: #013440;
  --pac-secondary: #372A40;
  --pac-accent: #99E9F2;
  --pac-accent-strong: #BF265E;
  --pac-danger: #F21D56;
  --pac-danger-solid: #B90F3B;
  --pac-warning: #FFB020;
  --pac-success: #22C55E;
  --pac-dark-text: #07191F;
  --pac-light-text: #EAFBFF;
  --pac-muted-dark: #475569;
  --pac-row-hover: #DFFBFF;
  --pac-row-selected: #EAFBFF;
  --pac-input-bg: #FFFFFF;
  --pac-sidebar-w-collapsed: 56px;
  --sidebar-w-collapsed: 56px;
}

/* --------------------------------------------------------------------------
   1) Base: la página vive sobre fondo oscuro; solo las tarjetas claras usan texto oscuro.
-------------------------------------------------------------------------- */
#page-content-shell,
.pac-page-content-shell,
.page-shell,
.pac-page-panel,
.page-operations,
.page-action-center,
.v100-operations-shell,
.alerts-section,
.v150-page {
  color: var(--pac-light-text) !important;
}

.page-title-row h1,
.page-title-row h2,
.page-title-row h3,
.page-title-row p,
.section-header-row h1,
.section-header-row h2,
.section-header-row h3,
.section-header-row p,
.section-eyebrow,
.card h3,
.table-card h3,
.jc-panel > h3,
.v100-operations-shell h2,
.v100-operations-shell h3,
.alerts-section h2,
.alerts-section h3 {
  color: var(--pac-light-text) !important;
  text-shadow: none !important;
}

.section-eyebrow,
.alert-table-title,
.card-title,
.panel-title {
  color: var(--pac-accent) !important;
  font-weight: 850 !important;
  letter-spacing: .08em !important;
}

/* --------------------------------------------------------------------------
   2) KPI / metric cards: fondo claro => texto oscuro siempre.
-------------------------------------------------------------------------- */
.kpi-card,
.metric-card,
.ops57-kpi,
.jc-kpi,
.ams72-kpi,
.ams60-kpi,
.v150-kpi-card {
  background: #FFFFFF !important;
  color: var(--pac-dark-text) !important;
  border: 1px solid rgba(1,52,64,.18) !important;
  box-shadow: 0 8px 22px rgba(1,52,64,.14) !important;
  position: relative !important;
  overflow: hidden !important;
}

.kpi-card::after,
.metric-card::after,
.ops57-kpi::after,
.jc-kpi::after {
  background: rgba(153,233,242,.16) !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

.kpi-card > *,
.metric-card > *,
.ops57-kpi > *,
.jc-kpi > *,
.ams72-kpi > *,
.ams60-kpi > *,
.v150-kpi-card > * {
  position: relative !important;
  z-index: 1 !important;
}

.kpi-card .kpi-label,
.kpi-card .metric-label,
.metric-card .metric-label,
.metric-card .kpi-label,
.ops57-kpi-label,
.jc-kpi-label,
.ams72-kpi-label,
.ams60-kpi-label,
.v150-kpi-card .kpi-label {
  color: #334155 !important;
  font-weight: 850 !important;
}

.kpi-card .kpi-value,
.kpi-card .metric-value,
.metric-card .metric-value,
.metric-card .kpi-value,
.ops57-kpi-value,
.jc-kpi-value,
.ams72-kpi-value,
.ams60-kpi-value,
.v150-kpi-card .kpi-value,
.kpi-card strong,
.metric-card strong,
.jc-kpi strong {
  color: var(--pac-dark-text) !important;
  font-weight: 850 !important;
}

.kpi-card .kpi-note,
.kpi-card .metric-note,
.metric-card .metric-note,
.metric-card .kpi-note,
.ops57-kpi-note,
.jc-kpi-note,
.ams72-kpi-note,
.ams60-kpi-note,
.v150-kpi-card .kpi-note {
  color: #475569 !important;
  font-weight: 650 !important;
}

.kpi-card .kpi-icon,
.metric-card .kpi-icon,
.metric-card .metric-icon {
  color: var(--pac-primary) !important;
}

.kpi-card.danger,
.metric-card.danger,
.kpi-danger,
.jc-kpi.warning {
  border-left: 5px solid var(--pac-danger-solid) !important;
  background: linear-gradient(90deg, #FFE6EE 0%, #FFFFFF 52%) !important;
}

.kpi-card.warning,
.kpi-card.warn,
.metric-card.warning,
.kpi-warning {
  border-left: 5px solid var(--pac-warning) !important;
  background: linear-gradient(90deg, #FFF2D6 0%, #FFFFFF 52%) !important;
}

.kpi-card.ok,
.metric-card.ok,
.kpi-success,
.jc-kpi.ok {
  border-left: 5px solid var(--pac-success) !important;
  background: linear-gradient(90deg, #DCFCE7 0%, #FFFFFF 52%) !important;
}

.kpi-card:hover,
.metric-card:hover,
.ops57-kpi:hover,
.jc-kpi:hover {
  background: #FFFFFF !important;
  color: var(--pac-dark-text) !important;
  border-color: rgba(153,233,242,.80) !important;
}

/* --------------------------------------------------------------------------
   3) Filtros: inputs claros + texto oscuro; labels legibles.
-------------------------------------------------------------------------- */
#filterbar .filter-label,
.filters-panel .filter-label,
.filter-card .filter-label,
.tariff-controls-card .filter-label,
.tariff-scenario-card .filter-label {
  color: var(--pac-light-text) !important;
  font-weight: 850 !important;
}

#filterbar .Select-control,
.filters-panel .Select-control,
.filter-card .Select-control,
.filter-card.filter-block .Select-control,
.pac-dropdown .Select-control,
.dcc-dropdown .Select-control,
#filterbar input,
.filters-panel input,
.filter-card input,
.pac-text-input,
.pac-input,
.DateInput_input,
textarea {
  background: var(--pac-input-bg) !important;
  color: var(--pac-dark-text) !important;
  border: 1px solid rgba(1,52,64,.28) !important;
  border-radius: 9px !important;
  min-height: 36px !important;
  box-shadow: none !important;
}

.Select-value,
.Select-value-label,
.Select-placeholder,
.Select-input,
.Select-input > input,
.Select-control .Select-value-label,
.Select-control .Select-placeholder,
.Select--single > .Select-control .Select-value,
.Select--single > .Select-control .Select-value .Select-value-label {
  color: var(--pac-dark-text) !important;
}

.Select-menu-outer,
.Select-menu,
.Select-option,
.VirtualizedSelectOption {
  background: #FFFFFF !important;
  color: var(--pac-dark-text) !important;
}

.Select-option.is-focused,
.VirtualizedSelectFocusedOption,
.Select-menu-outer .VirtualizedSelectOption:hover {
  background: var(--pac-row-hover) !important;
  color: var(--pac-dark-text) !important;
}

.Select-option.is-selected {
  background: var(--pac-accent) !important;
  color: var(--pac-primary) !important;
  font-weight: 800 !important;
}

.Select-arrow-zone .Select-arrow {
  border-top-color: var(--pac-primary) !important;
}

.dash-table-container .dash-spreadsheet-container,
.dash-table-container .dash-spreadsheet-inner,
.dash-table-container .dash-spreadsheet,
.dash-table-container table {
  background: #FFFFFF !important;
  color: var(--pac-dark-text) !important;
}

.dash-table-container .dash-spreadsheet th,
.dash-table-container .dash-header,
.dash-table-container .column-header-name,
.dash-table-container th {
  background: var(--pac-primary) !important;
  color: var(--pac-light-text) !important;
  border-color: rgba(153,233,242,.36) !important;
  font-weight: 850 !important;
}

.dash-table-container .dash-spreadsheet td,
.dash-table-container .dash-cell,
.dash-table-container td {
  background: #FFFFFF !important;
  color: var(--pac-dark-text) !important;
  border-color: rgba(1,52,64,.16) !important;
}

.dash-table-container .dash-spreadsheet tr:nth-child(even) td,
.dash-table-container .dash-spreadsheet tr:nth-child(even) .dash-cell {
  background: #F8FBFC !important;
  color: var(--pac-dark-text) !important;
}

.dash-table-container .dash-spreadsheet tr:hover td,
.dash-table-container .dash-spreadsheet tr:hover .dash-cell,
.dash-table-container .dash-spreadsheet td:hover,
.dash-table-container .dash-spreadsheet .dash-cell:hover,
.dash-table-container .dash-cell.cell--selected,
.dash-table-container .dash-cell.focused,
.dash-table-container td.cell--selected,
.dash-table-container td.focused,
.dash-table-container .cell--selected,
.dash-table-container .focused {
  background: var(--pac-row-hover) !important;
  color: var(--pac-dark-text) !important;
  border-color: var(--pac-primary) !important;
  outline: 1px solid rgba(1,52,64,.45) !important;
}

.dash-table-container input,
.dash-table-container textarea,
.dash-table-container .dash-filter input,
.dash-table-container .dash-filter textarea {
  background: #FFFFFF !important;
  color: var(--pac-dark-text) !important;
  border: 1px solid rgba(1,52,64,.24) !important;
  border-radius: 999px !important;
}

.dash-table-container input::placeholder,
.dash-table-container textarea::placeholder,
input::placeholder,
textarea::placeholder {
  color: #64748B !important;
  opacity: 1 !important;
}

.dash-table-container .previous-next-container button,
.dash-table-container .page-number,
.dash-table-container .current-page {
  background: var(--pac-primary) !important;
  color: var(--pac-light-text) !important;
  border-color: rgba(153,233,242,.42) !important;
}

/* Semáforos y prioridades detectados por JS; gana incluso contra estilos inline. */
.dash-table-container .dash-cell[data-pac-status="rojo"],
.dash-table-container td[data-pac-status="rojo"] {
  background: var(--pac-danger-solid) !important;
  color: #FFFFFF !important;
  font-weight: 900 !important;
  text-align: center !important;
}

.dash-table-container .dash-cell[data-pac-status="amarillo"],
.dash-table-container td[data-pac-status="amarillo"] {
  background: var(--pac-warning) !important;
  color: var(--pac-dark-text) !important;
  font-weight: 900 !important;
  text-align: center !important;
}

.dash-table-container .dash-cell[data-pac-status="verde"],
.dash-table-container td[data-pac-status="verde"] {
  background: var(--pac-success) !important;
  color: var(--pac-dark-text) !important;
  font-weight: 900 !important;
  text-align: center !important;
}

.dash-table-container .dash-cell[data-pac-priority="critica"],
.dash-table-container td[data-pac-priority="critica"] {
  background: #FFE6EE !important;
  color: var(--pac-dark-text) !important;
  border-left: 4px solid var(--pac-danger-solid) !important;
  font-weight: 850 !important;
}

.dash-table-container .dash-cell[data-pac-priority="alta"],
.dash-table-container td[data-pac-priority="alta"] {
  background: #FFF2D6 !important;
  color: var(--pac-dark-text) !important;
  border-left: 4px solid var(--pac-warning) !important;
  font-weight: 850 !important;
}

.dash-table-container .dash-cell[data-pac-priority="ok"],
.dash-table-container td[data-pac-priority="ok"] {
  background: #DCFCE7 !important;
  color: var(--pac-dark-text) !important;
  border-left: 4px solid var(--pac-success) !important;
  font-weight: 850 !important;
}

/* --------------------------------------------------------------------------
   5) Sidebar: minimizada por default; expandida solo al dar clic.
-------------------------------------------------------------------------- */
#app-shell.collapsed,
.app-shell.collapsed {
  --pac-sidebar-w: var(--pac-sidebar-w-collapsed) !important;
  --sidebar-w: var(--sidebar-w-collapsed) !important;
}

#app-shell.collapsed #sidebar-shell.sidebar-shell,
#app-shell.collapsed #sidebar-shell {
  position: sticky !important;
  top: 0 !important;
  left: 0 !important;
  width: var(--pac-sidebar-w-collapsed) !important;
  min-width: var(--pac-sidebar-w-collapsed) !important;
  max-width: var(--pac-sidebar-w-collapsed) !important;
  height: 56px !important;
  padding: 10px !important;
  border-radius: 0 !important;
  border-right: 1px solid rgba(153,233,242,.20) !important;
  background: linear-gradient(180deg, var(--pac-primary), #06242C) !important;
  box-shadow: none !important;
  z-index: 10070 !important;
}

#app-shell.collapsed #sidebar,
#app-shell.collapsed .pac-sidebar {
  width: var(--pac-sidebar-w-collapsed) !important;
  min-width: var(--pac-sidebar-w-collapsed) !important;
  max-width: var(--pac-sidebar-w-collapsed) !important;
  padding: 8px 6px !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  overflow: hidden !important;
  border-right: 1px solid rgba(153,233,242,.20) !important;
}

#app-shell.collapsed .sidebar-title,
#app-shell.collapsed .pac-sidebar-nav-host,
#app-shell.collapsed .pac-sidebar-nav-v162,
#app-shell.collapsed .pac-sidebar-group,
#app-shell.collapsed .pac-nav-button,
#app-shell.collapsed .pac-nav-text,
#app-shell.collapsed .pac-sidebar-group-title {
  display: none !important;
}

#app-shell.collapsed .sidebar-toggle {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 36px !important;
  height: 36px !important;
  margin: 0 !important;
  border-radius: 12px !important;
  background: rgba(153,233,242,.14) !important;
  color: var(--pac-accent) !important;
  border: 1px solid rgba(153,233,242,.38) !important;
}

/* Cuando se abre, queda visible; al elegir una sección, app.py la vuelve a cerrar. */
#app-shell:not(.collapsed) #sidebar-shell.sidebar-shell,
#app-shell:not(.collapsed) #sidebar-shell,
#app-shell:not(.collapsed) #sidebar,
#app-shell:not(.collapsed) .pac-sidebar {
  background: linear-gradient(180deg, var(--pac-primary), #06242C) !important;
  color: var(--pac-light-text) !important;
}

/* --------------------------------------------------------------------------
   6) Badges / pills: evitar claro sobre claro.
-------------------------------------------------------------------------- */
.source-pill,
.status-pill,
.version-pill,
.badge,
.pac-badge {
  color: var(--pac-light-text) !important;
  background: rgba(1,52,64,.78) !important;
  border: 1px solid rgba(153,233,242,.36) !important;
}

.source-pill *,
.status-pill *,
.version-pill *,
.badge *,
.pac-badge * {
  color: inherit !important;
}

/* Botones claros con texto oscuro. */
.pac-action-btn.primary,
.v168-refresh-btn,
button.primary {
  background: var(--pac-accent) !important;
  color: var(--pac-primary) !important;
  border-color: rgba(153,233,242,.80) !important;
}

.pac-action-btn,
button,
.dash-button {
  text-shadow: none !important;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzz_v171_restore_v167_visual_contrast.css ===== */
/* ============================================================================
   PAC Business Control Tower v1.7.1
   Restore v1.6.7 visual language + accessibility guardrails
   Objetivo:
   - Regresar al look dark/glass de v1.6.7.
   - Evitar blanco sobre blanco / oscuro sobre oscuro.
   - Mantener filtros, tablas, KPI y semáforos siempre legibles.
============================================================================ */

:root {
  --pac-bg: #013440;
  --pac-bg2: #031d2a;
  --pac-panel: rgba(1,52,64,.62);
  --pac-panel-strong: rgba(3,29,42,.88);
  --pac-panel-soft: rgba(153,233,242,.07);
  --pac-line: rgba(153,233,242,.18);
  --pac-line-strong: rgba(153,233,242,.36);
  --pac-cyan: #99E9F2;
  --pac-hot: #F21D56;
  --pac-hot-dark: #B90F3B;
  --pac-magenta: #BF265E;
  --pac-text: #EAFBFF;
  --pac-text-strong: #FFFFFF;
  --pac-muted: rgba(234,251,255,.74);
  --pac-muted-2: rgba(234,251,255,.58);
  --pac-dark-text: #07191F;
  --pac-warning: #FFB020;
  --pac-success: #22C55E;
  --pac-hover: rgba(153,233,242,.15);
  --pac-selected: rgba(153,233,242,.22);
}

html,
body,
.app-shell,
.site-shell,
#page-content-shell,
.pac-page-content-shell,
.page-shell,
.pac-page-panel,
.page-operations,
.page-action-center,
.v100-operations-shell,
.alerts-section,
.v150-page {
  background: radial-gradient(circle at top left, rgba(153,233,242,.11), transparent 34%), linear-gradient(135deg, #013440 0%, #06242C 48%, #1B2636 100%) !important;
  color: var(--pac-text) !important;
}

/* --------------------------------------------------------------------------
   Texto global sobre dark surfaces
-------------------------------------------------------------------------- */
#page-content-shell h1, #page-content-shell h2, #page-content-shell h3, #page-content-shell h4,
.page-shell h1, .page-shell h2, .page-shell h3, .page-shell h4,
.page-title-row h1, .page-title-row h2, .page-title-row h3, .page-title-row p,
.section-header-row h1, .section-header-row h2, .section-header-row h3, .section-header-row p,
.card h1, .card h2, .card h3, .card h4,
.table-card h1, .table-card h2, .table-card h3, .table-card h4,
.jc-panel h1, .jc-panel h2, .jc-panel h3, .jc-panel h4,
.v100-operations-shell h1, .v100-operations-shell h2, .v100-operations-shell h3,
.alerts-section h1, .alerts-section h2, .alerts-section h3 {
  color: var(--pac-text-strong) !important;
  text-shadow: none !important;
}

#page-content-shell p,
.page-shell p,
.card p,
.table-card p,
.jc-panel p,
.alerts-section p,
.v100-operations-shell p,
.help-text,
.metadata,
.muted {
  color: var(--pac-muted) !important;
}

.section-eyebrow,
.alert-table-title,
.card-title,
.panel-title,
.filter-label {
  color: var(--pac-cyan) !important;
  font-weight: 850 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

/* --------------------------------------------------------------------------
   Cards / panels: look v1.6.7 dark glass, no white cards.
-------------------------------------------------------------------------- */
.card,
.table-card,
.jc-panel,
.data-health-card,
.dashboard-card,
.pac-card,
.action-card,
.automation-card,
.finance-card,
.tariff-card,
.alert-card,
.dash-card,
.section-card,
.filter-card,
.global-controls-card,
.panel,
.chart-card,
.ops57-card,
.v150-action-table-card {
  background: linear-gradient(135deg, rgba(1,52,64,.68), rgba(11,26,43,.78)) !important;
  color: var(--pac-text) !important;
  border: 1px solid var(--pac-line) !important;
  border-radius: 16px !important;
  box-shadow: 0 16px 36px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.05) !important;
  backdrop-filter: blur(10px) !important;
}

.card *,
.table-card *,
.jc-panel *,
.data-health-card *,
.dashboard-card *,
.pac-card *,
.action-card *,
.automation-card *,
.finance-card *,
.tariff-card *,
.alert-card *,
.dash-card *,
.section-card * {
  text-shadow: none !important;
}

/* --------------------------------------------------------------------------
   KPI cards: dark glass + readable text always.
-------------------------------------------------------------------------- */
.kpi-grid, .kpis-grid, .metrics-grid, .ops57-kpis, .summary-grid, .dashboard-kpis {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)) !important;
  gap: 14px !important;
  margin: 0 0 18px !important;
}

.kpi-card,
.metric-card,
.ops57-kpi,
.jc-kpi,
.ams72-kpi,
.ams60-kpi,
.v150-kpi-card,
.route-map-card,
.detail-metric {
  background: linear-gradient(135deg, rgba(1,52,64,.72), rgba(11,26,43,.82)) !important;
  color: var(--pac-text) !important;
  border: 1px solid var(--pac-line) !important;
  border-radius: 14px !important;
  box-shadow: 0 12px 26px rgba(0,0,0,.20), inset 0 1px 0 rgba(255,255,255,.06) !important;
  min-height: 98px !important;
  padding: 16px 18px !important;
  position: relative !important;
  overflow: hidden !important;
}

.kpi-card::after,
.metric-card::after,
.ops57-kpi::after,
.jc-kpi::after,
.v150-kpi-card::after {
  content: "" !important;
  position: absolute !important;
  right: -26px !important;
  top: -26px !important;
  width: 92px !important;
  height: 92px !important;
  background: radial-gradient(circle, rgba(153,233,242,.17), transparent 70%) !important;
  opacity: 1 !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

.kpi-card > *, .metric-card > *, .ops57-kpi > *, .jc-kpi > *, .v150-kpi-card > * {
  position: relative !important;
  z-index: 1 !important;
}

.kpi-label, .metric-label, .ops57-kpi-label, .jc-kpi-label, .ams72-kpi-label, .ams60-kpi-label,
.kpi-card [class*="label"], .metric-card [class*="label"], .jc-kpi [class*="label"] {
  color: var(--pac-muted) !important;
  font-size: 10.5px !important;
  font-weight: 780 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

.kpi-value, .metric-value, .ops57-kpi-value, .jc-kpi-value, .ams72-kpi-value, .ams60-kpi-value,
.kpi-card strong, .metric-card strong, .jc-kpi strong,
.kpi-card [class*="value"], .metric-card [class*="value"], .jc-kpi [class*="value"] {
  color: var(--pac-text-strong) !important;
  font-size: clamp(22px, 2.4vw, 30px) !important;
  font-weight: 820 !important;
  line-height: 1.15 !important;
  margin-top: 5px !important;
}

.kpi-note, .metric-note, .ops57-kpi-note, .jc-kpi-note, .ams72-kpi-note, .ams60-kpi-note,
.kpi-card [class*="note"], .metric-card [class*="note"], .jc-kpi [class*="note"] {
  color: var(--pac-muted-2) !important;
  font-size: 12px !important;
  margin-top: 4px !important;
}

.kpi-icon, .metric-icon { color: var(--pac-cyan) !important; }
.kpi-card.danger, .metric-card.danger, .jc-kpi.danger, .sev-critical { border-left: 4px solid var(--pac-hot) !important; }
.kpi-card.warning, .kpi-card.warn, .metric-card.warning, .jc-kpi.warning, .sev-high { border-left: 4px solid var(--pac-warning) !important; }
.kpi-card.ok, .metric-card.ok, .jc-kpi.ok, .sev-medium { border-left: 4px solid var(--pac-success) !important; }

.kpi-card:hover, .metric-card:hover, .ops57-kpi:hover, .jc-kpi:hover {
  background: linear-gradient(135deg, rgba(1,52,64,.90), rgba(153,233,242,.10)) !important;
  color: var(--pac-text) !important;
  border-color: rgba(153,233,242,.55) !important;
}

/* --------------------------------------------------------------------------
   Filterbar: dark v1.6.7 style, but select values/menu are readable.
-------------------------------------------------------------------------- */
#filterbar.filterbar,
.filterbar {
  background: rgba(1,24,32,.88) !important;
  color: var(--pac-text) !important;
  backdrop-filter: blur(10px) !important;
  border-bottom: 1px solid rgba(153,233,242,.14) !important;
}

.filter-card.filter-block {
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.filters-panel.open { border-top: 1px solid rgba(153,233,242,.10) !important; }
.filter-label { color: var(--pac-muted) !important; margin-bottom: 5px !important; }

#filterbar .Select-control,
.filters-panel .Select-control,
.filter-card .Select-control,
.pac-dropdown .Select-control,
.dcc-dropdown .Select-control,
#filterbar input,
.filters-panel input,
.filter-card input,
.pac-text-input,
.pac-input {
  min-height: 36px !important;
  height: 36px !important;
  background: rgba(1,52,64,.66) !important;
  border: 1px solid rgba(153,233,242,.24) !important;
  border-radius: 9px !important;
  color: var(--pac-text) !important;
  box-shadow: none !important;
}

#filterbar .Select-placeholder,
#filterbar .Select-value-label,
#filterbar .Select-input,
#filterbar .Select-input > input,
.filters-panel .Select-placeholder,
.filters-panel .Select-value-label,
.filters-panel .Select-input,
.filters-panel .Select-input > input {
  color: var(--pac-text) !important;
}

#filterbar .Select-placeholder,
.filters-panel .Select-placeholder { color: rgba(234,251,255,.58) !important; }

#filterbar .Select--multi .Select-value,
.filters-panel .Select--multi .Select-value {
  background: rgba(153,233,242,.14) !important;
  border: 1px solid rgba(153,233,242,.32) !important;
  color: var(--pac-text) !important;
  border-radius: 999px !important;
}

#filterbar .Select--multi .Select-value-label,
.filters-panel .Select--multi .Select-value-label { color: var(--pac-text) !important; }
#filterbar .Select--multi .Select-value-icon,
.filters-panel .Select--multi .Select-value-icon { color: var(--pac-cyan) !important; border-right-color: rgba(153,233,242,.22) !important; }

.Select-menu-outer,
.Select-menu,
.Select-option,
.VirtualizedSelectOption {
  background: #FFFFFF !important;
  color: var(--pac-dark-text) !important;
}

.Select-option.is-focused,
.VirtualizedSelectFocusedOption,
.Select-menu-outer .VirtualizedSelectOption:hover {
  background: #DFFBFF !important;
  color: var(--pac-dark-text) !important;
}
.Select-option.is-selected {
  background: var(--pac-cyan) !important;
  color: var(--pac-bg) !important;
  font-weight: 850 !important;
}

.filter-chip {
  border-radius: 999px !important;
  padding: 4px 8px !important;
  background: rgba(153,233,242,.09) !important;
  border: 1px solid rgba(153,233,242,.18) !important;
  color: var(--pac-text) !important;
  font-size: 11px !important;
}
.filter-chip strong { color: var(--pac-cyan) !important; }

/* --------------------------------------------------------------------------
   Dash DataTable: dark table, selected/hover visible, filters readable.
-------------------------------------------------------------------------- */
.dash-table-container,
.dash-table-container *,
.dash-spreadsheet-container,
.dash-spreadsheet-inner {
  text-shadow: none !important;
}

.dash-table-container,
.dash-spreadsheet-container,
.table-wrap,
.ops57-table-wrap {
  max-width: 100% !important;
  overflow-x: auto !important;
  background: transparent !important;
}

.dash-table-container .dash-spreadsheet-container,
.dash-table-container .dash-spreadsheet-inner,
.dash-table-container .dash-spreadsheet,
.dash-table-container table,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner table {
  background: transparent !important;
  color: var(--pac-text) !important;
}

.dash-table-container th,
.dash-table-container .dash-header,
.dash-spreadsheet-inner th,
.dash-table-container .column-header-name {
  background: #013440 !important;
  color: var(--pac-cyan) !important;
  font-size: 11px !important;
  font-weight: 820 !important;
  letter-spacing: .07em !important;
  text-transform: uppercase !important;
  border: 1px solid rgba(153,233,242,.18) !important;
  border-bottom: 2px solid rgba(153,233,242,.55) !important;
}

.dash-table-container td,
.dash-table-container .dash-cell,
.dash-spreadsheet-inner td,
#orders-table .dash-cell {
  background: rgba(1,52,64,.36) !important;
  color: var(--pac-text) !important;
  font-size: 12px !important;
  border: 1px solid rgba(153,233,242,.10) !important;
  border-bottom: 1px solid rgba(153,233,242,.10) !important;
  line-height: 1.25 !important;
}

.dash-table-container tr:nth-child(even) td,
.dash-table-container tr:nth-child(even) .dash-cell,
.dash-spreadsheet-inner tr:nth-child(even) td {
  background: rgba(1,42,54,.46) !important;
  color: var(--pac-text) !important;
}

.dash-table-container tr:hover td,
.dash-table-container tr:hover .dash-cell,
.dash-spreadsheet-inner tr:hover td,
.dash-table-container td:hover,
.dash-table-container .dash-cell:hover,
.dash-table-container td.focused,
.dash-table-container .dash-cell.focused,
.dash-table-container td.cell--selected,
.dash-table-container .dash-cell.cell--selected,
.dash-table-container .focused,
.dash-table-container .cell--selected {
  background: var(--pac-selected) !important;
  color: var(--pac-text-strong) !important;
  border-color: rgba(153,233,242,.70) !important;
  outline: 1px solid rgba(153,233,242,.55) !important;
}

.dash-table-container td:hover *,
.dash-table-container .dash-cell:hover *,
.dash-table-container td.focused *,
.dash-table-container .dash-cell.focused *,
.dash-table-container td.cell--selected *,
.dash-table-container .dash-cell.cell--selected * {
  color: var(--pac-text-strong) !important;
}

.dash-table-container input,
.dash-table-container textarea,
.dash-table-container .dash-filter input,
.dash-table-container .dash-filter textarea,
.dash-table-container input.dash-filter--case,
.dash-table-container .dash-spreadsheet-container input {
  background: rgba(234,251,255,.94) !important;
  color: var(--pac-dark-text) !important;
  border-radius: 999px !important;
  border: 1px solid rgba(153,233,242,.30) !important;
}

.dash-table-container input::placeholder,
.dash-table-container textarea::placeholder,
input::placeholder,
textarea::placeholder {
  color: #64748B !important;
  opacity: 1 !important;
}

.dash-table-container .previous-next-container button,
.dash-table-container .page-number,
.dash-table-container .current-page {
  background: rgba(1,52,64,.86) !important;
  color: var(--pac-text) !important;
  border-color: var(--pac-line) !important;
}

/* Semáforos reales: color de celda, no solo texto. */
.dash-table-container .dash-cell[data-pac-status="rojo"],
.dash-table-container td[data-pac-status="rojo"] {
  background: var(--pac-hot-dark) !important;
  color: #FFFFFF !important;
  font-weight: 900 !important;
  text-align: center !important;
}
.dash-table-container .dash-cell[data-pac-status="amarillo"],
.dash-table-container td[data-pac-status="amarillo"] {
  background: var(--pac-warning) !important;
  color: var(--pac-dark-text) !important;
  font-weight: 900 !important;
  text-align: center !important;
}
.dash-table-container .dash-cell[data-pac-status="verde"],
.dash-table-container td[data-pac-status="verde"] {
  background: var(--pac-success) !important;
  color: var(--pac-dark-text) !important;
  font-weight: 900 !important;
  text-align: center !important;
}
.dash-table-container .dash-cell[data-pac-priority="critica"],
.dash-table-container td[data-pac-priority="critica"] {
  background: rgba(242,29,86,.28) !important;
  color: var(--pac-text-strong) !important;
  border-left: 4px solid var(--pac-hot) !important;
  font-weight: 850 !important;
}
.dash-table-container .dash-cell[data-pac-priority="alta"],
.dash-table-container td[data-pac-priority="alta"] {
  background: rgba(255,176,32,.25) !important;
  color: var(--pac-text-strong) !important;
  border-left: 4px solid var(--pac-warning) !important;
  font-weight: 850 !important;
}
.dash-table-container .dash-cell[data-pac-priority="ok"],
.dash-table-container td[data-pac-priority="ok"] {
  background: rgba(34,197,94,.23) !important;
  color: var(--pac-text-strong) !important;
  border-left: 4px solid var(--pac-success) !important;
  font-weight: 850 !important;
}

/* --------------------------------------------------------------------------
   Badges / pills / buttons.
-------------------------------------------------------------------------- */
.source-pill,
.status-pill,
.version-pill,
.badge,
.pac-badge,
.teams-status,
.finance-chip {
  color: var(--pac-text) !important;
  background: rgba(1,20,30,.58) !important;
  border: 1px solid var(--pac-line) !important;
}
.source-pill *, .status-pill *, .version-pill *, .badge *, .pac-badge *, .teams-status *, .finance-chip * { color: inherit !important; }

.pac-action-btn,
button,
.dash-button,
.filter-toggle-btn,
.filter-clear-btn {
  background: rgba(153,233,242,.08) !important;
  color: var(--pac-text) !important;
  border: 1px solid rgba(153,233,242,.22) !important;
  border-radius: 10px !important;
  text-shadow: none !important;
}
.pac-action-btn.primary,
.v168-refresh-btn,
button.primary {
  background: var(--pac-cyan) !important;
  color: var(--pac-bg) !important;
  border-color: rgba(153,233,242,.80) !important;
  font-weight: 850 !important;
}
.pac-action-btn:hover,
button:hover,
.dash-button:hover {
  border-color: rgba(153,233,242,.56) !important;
  color: var(--pac-cyan) !important;
}
.pac-action-btn.primary:hover,
.v168-refresh-btn:hover,
button.primary:hover { color: var(--pac-bg) !important; }

/* --------------------------------------------------------------------------
   Sidebar: keep v1.7.0 behavior, visible only when user opens it.
-------------------------------------------------------------------------- */
#app-shell.collapsed #sidebar-shell.sidebar-shell,
#app-shell.collapsed #sidebar-shell,
#app-shell.collapsed #sidebar,
#app-shell.collapsed .pac-sidebar {
  background: linear-gradient(180deg, var(--pac-bg), #06242C) !important;
  color: var(--pac-text) !important;
}
#app-shell:not(.collapsed) #sidebar-shell.sidebar-shell,
#app-shell:not(.collapsed) #sidebar-shell,
#app-shell:not(.collapsed) #sidebar,
#app-shell:not(.collapsed) .pac-sidebar {
  background: linear-gradient(180deg, var(--pac-bg), #06242C) !important;
  color: var(--pac-text) !important;
}
.pac-sidebar *, .sidebar-shell * { color: var(--pac-text) !important; }

/* Plotly text on dark cards. */
.js-plotly-plot .gtitle,
.js-plotly-plot .xtitle,
.js-plotly-plot .ytitle,
.js-plotly-plot .legendtext,
.js-plotly-plot .xtick text,
.js-plotly-plot .ytick text {
  fill: var(--pac-text) !important;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzz_v172_interaction_stability.css ===== */
/* ============================================================================
   PAC Business Control Tower v1.7.2
   Interaction Stability Hotfix
   - Sidebar siempre accesible: minimizada por default, expandible con ☰.
   - Detalle 360 se abre primero como pestaña minimizada; clic en la pestaña expande.
   - Blindaje extra contra textos invisibles y hover blanco/blanco.
============================================================================ */
:root{
  --pac-bg:#013440;
  --pac-bg2:#031d2a;
  --pac-cyan:#99E9F2;
  --pac-text:#EAFBFF;
  --pac-text-strong:#FFFFFF;
  --pac-muted:rgba(234,251,255,.72);
  --pac-line:rgba(153,233,242,.20);
  --pac-line-strong:rgba(153,233,242,.42);
  --pac-dark-text:#07191F;
  --pac-hot:#F21D56;
  --pac-warning:#FFB020;
  --pac-success:#22C55E;
}

/* --------------------------------------------------------------------------
   Sidebar: fixed overlay, accessible even when collapsed.
-------------------------------------------------------------------------- */
#sidebar-shell.sidebar-shell,
#sidebar-shell{
  position:fixed!important;
  top:14px!important;
  left:14px!important;
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
  max-width:52px!important;
  z-index:5000!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  pointer-events:auto!important;
  overflow:visible!important;
  background:linear-gradient(180deg, rgba(1,52,64,.96), rgba(3,29,42,.96))!important;
  border:1px solid rgba(153,233,242,.35)!important;
  border-radius:16px!important;
  box-shadow:0 14px 30px rgba(0,0,0,.40), inset 0 1px 0 rgba(255,255,255,.08)!important;
}
#btn-sidebar-toggle.sidebar-toggle,
#btn-sidebar-toggle{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  min-height:42px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  cursor:pointer!important;
  pointer-events:auto!important;
  opacity:1!important;
  visibility:visible!important;
  color:var(--pac-cyan)!important;
  background:rgba(153,233,242,.10)!important;
  border:1px solid rgba(153,233,242,.35)!important;
  border-radius:12px!important;
  font-size:22px!important;
  line-height:1!important;
  z-index:5001!important;
}
#btn-sidebar-toggle:hover{
  color:var(--pac-bg)!important;
  background:var(--pac-cyan)!important;
  border-color:var(--pac-cyan)!important;
}
#sidebar-shell .sidebar-title{display:none!important;}

#sidebar.pac-sidebar,
.pac-sidebar{
  position:fixed!important;
  top:0!important;
  left:0!important;
  bottom:0!important;
  height:100vh!important;
  width:292px!important;
  max-width:292px!important;
  z-index:4500!important;
  padding:84px 16px 18px!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  background:linear-gradient(180deg, rgba(1,52,64,.98), rgba(3,29,42,.98))!important;
  border-right:1px solid rgba(153,233,242,.26)!important;
  box-shadow:20px 0 46px rgba(0,0,0,.42)!important;
  transition:transform .20s ease, opacity .18s ease!important;
}
#app-shell.collapsed #sidebar.pac-sidebar,
#app-shell.collapsed .pac-sidebar{
  transform:translateX(-110%)!important;
  opacity:0!important;
  pointer-events:none!important;
}
#app-shell:not(.collapsed) #sidebar.pac-sidebar,
#app-shell:not(.collapsed) .pac-sidebar{
  transform:translateX(0)!important;
  opacity:1!important;
  pointer-events:auto!important;
}
#app-shell:not(.collapsed) #sidebar-shell{
  left:236px!important;
}
.pac-sidebar-nav-host,
.pac-sidebar-nav-v162{
  display:block!important;
  opacity:1!important;
  visibility:visible!important;
}
.pac-sidebar-group{
  background:rgba(1,20,30,.34)!important;
  border:1px solid rgba(153,233,242,.14)!important;
  border-radius:14px!important;
  margin-bottom:10px!important;
  overflow:hidden!important;
}
.pac-sidebar-group summary{
  cursor:pointer!important;
  color:var(--pac-cyan)!important;
  padding:11px 12px!important;
  font-weight:900!important;
  list-style:none!important;
}
.pac-sidebar-group summary::-webkit-details-marker{display:none!important;}
.pac-sidebar-group-items{padding:6px!important;display:grid!important;gap:5px!important;}
.pac-nav-button{
  display:flex!important;
  width:100%!important;
  align-items:center!important;
  gap:10px!important;
  padding:10px 11px!important;
  color:var(--pac-text)!important;
  background:rgba(153,233,242,.06)!important;
  border:1px solid rgba(153,233,242,.10)!important;
  border-radius:11px!important;
  cursor:pointer!important;
  text-align:left!important;
}
.pac-nav-button:hover,
.pac-nav-button.is-active{
  color:var(--pac-bg)!important;
  background:var(--pac-cyan)!important;
  border-color:var(--pac-cyan)!important;
}
.pac-nav-button:hover *,
.pac-nav-button.is-active *{color:var(--pac-bg)!important;}
.pac-page-content-shell,
#page-content-shell{
  margin-left:0!important;
  max-width:100%!important;
}

/* --------------------------------------------------------------------------
   Detalle 360: minimizado por default después de seleccionar fila/KPI/gráfica.
-------------------------------------------------------------------------- */
#detail-panel.detail-panel{
  position:fixed!important;
  top:118px!important;
  right:0!important;
  z-index:4200!important;
}
#detail-panel.detail-panel.active.minimized{
  width:46px!important;
  min-width:46px!important;
  max-width:46px!important;
  min-height:188px!important;
  max-height:calc(100vh - 145px)!important;
  padding:0!important;
  overflow:visible!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  pointer-events:auto!important;
  cursor:pointer!important;
}
#detail-panel.detail-panel.active.minimized .detail360,
#detail-panel.detail-panel.active.minimized .v103-drilldown,
#detail-panel.detail-panel.active.minimized .v103-modal-header,
#detail-panel.detail-panel.active.minimized .detail360-grid,
#detail-panel.detail-panel.active.minimized .detail-metrics-grid,
#detail-panel.detail-panel.active.minimized .detail-section,
#detail-panel.detail-panel.active.minimized .detail-actions-row{
  display:none!important;
}
#detail-panel.detail-panel.active.minimized::after{
  content:"Detalle 360";
  position:absolute!important;
  top:0!important;
  right:0!important;
  writing-mode:vertical-rl!important;
  text-orientation:mixed!important;
  letter-spacing:.07em!important;
  color:var(--pac-cyan)!important;
  background:linear-gradient(180deg, rgba(1,52,64,.98), rgba(55,42,64,.96))!important;
  border:1px solid var(--pac-line-strong)!important;
  border-right:0!important;
  border-radius:16px 0 0 16px!important;
  box-shadow:-12px 12px 30px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.10)!important;
  padding:18px 11px!important;
  font-weight:950!important;
  font-size:11px!important;
  text-transform:uppercase!important;
  pointer-events:auto!important;
}
#detail-panel.detail-panel.active.minimized::before{
  content:"clic";
  position:absolute!important;
  top:154px!important;
  right:4px!important;
  z-index:1!important;
  color:#07191F!important;
  background:var(--pac-cyan)!important;
  border-radius:999px!important;
  padding:2px 5px!important;
  font-size:9px!important;
  font-weight:900!important;
  letter-spacing:.03em!important;
  pointer-events:none!important;
}
#detail-panel.detail-panel.active.expanded,
#detail-panel.detail-panel.active:not(.minimized){
  width:min(760px, 46vw)!important;
  min-width:520px!important;
  max-width:820px!important;
  max-height:calc(100vh - 145px)!important;
  overflow:auto!important;
  padding:14px!important;
  color:var(--pac-text)!important;
  background:linear-gradient(140deg, rgba(1,52,64,.98), rgba(11,26,43,.98))!important;
  border:1px solid var(--pac-line-strong)!important;
  border-right:0!important;
  border-radius:22px 0 0 22px!important;
  box-shadow:-24px 0 50px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.08)!important;
  backdrop-filter:blur(18px)!important;
  pointer-events:auto!important;
}
#detail-panel.detail-panel.active.expanded .detail360,
#detail-panel.detail-panel.active:not(.minimized) .detail360{display:block!important;}
#detail-panel .v103-modal-close{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:34px!important;
  height:34px!important;
  color:#fff!important;
  background:rgba(242,29,86,.22)!important;
  border:1px solid rgba(242,29,86,.60)!important;
  border-radius:12px!important;
}
@media(max-width:1200px){
  #detail-panel.detail-panel.active.expanded,
  #detail-panel.detail-panel.active:not(.minimized){width:92vw!important;min-width:0!important;top:92px!important;}
}

/* --------------------------------------------------------------------------
   Contraste final: filtros, tablas y hovers nunca blanco/blanco u oscuro/oscuro.
-------------------------------------------------------------------------- */
.Select-menu-outer,
.Select-menu,
.Select-option,
.VirtualizedSelectOption{
  background:#FFFFFF!important;
  color:#07191F!important;
}
.Select-option *,
.VirtualizedSelectOption *{color:#07191F!important;}
.Select-option.is-focused,
.VirtualizedSelectFocusedOption,
.Select-menu-outer .VirtualizedSelectOption:hover{
  background:#DFFBFF!important;
  color:#07191F!important;
}
.Select-option.is-selected{
  background:var(--pac-cyan)!important;
  color:var(--pac-bg)!important;
  font-weight:900!important;
}
.dash-table-container tr:hover td,
.dash-table-container tr:hover .dash-cell,
.dash-table-container td:hover,
.dash-table-container .dash-cell:hover,
.dash-table-container td.focused,
.dash-table-container .dash-cell.focused,
.dash-table-container td.cell--selected,
.dash-table-container .dash-cell.cell--selected{
  background:rgba(153,233,242,.22)!important;
  color:#FFFFFF!important;
  border-color:rgba(153,233,242,.75)!important;
}
.dash-table-container tr:hover td *,
.dash-table-container tr:hover .dash-cell *,
.dash-table-container td:hover *,
.dash-table-container .dash-cell:hover *,
.dash-table-container td.focused *,
.dash-table-container .dash-cell.focused *,
.dash-table-container td.cell--selected *,
.dash-table-container .dash-cell.cell--selected *{
  color:#FFFFFF!important;
}
.dash-table-container .dash-filter input,
.dash-table-container input,
.dash-table-container textarea{
  background:#F8FDFF!important;
  color:#07191F!important;
}
.dash-table-container th,
.dash-table-container .dash-header,
.dash-table-container .column-header-name{
  background:#013440!important;
  color:#99E9F2!important;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v173_comercial_intelligence.css ===== */
/* PAC Business Control Tower v1.7.3 | Comercial Intelligence */
.page-commercial.v173-commercial-page {
  width: 100%;
}

.v173-commercial-page .page-title-row {
  align-items: stretch;
  gap: 18px;
}

.commercial-source-card {
  min-width: 280px;
  max-width: 420px;
  padding: 14px 16px;
  border-radius: 18px;
  background: rgba(1, 52, 64, .72);
  border: 1px solid rgba(153, 233, 242, .22);
  box-shadow: 0 12px 32px rgba(0,0,0,.18);
  color: #EAFBFF;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.commercial-source-card span {
  color: #99E9F2;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.commercial-source-card strong {
  color: #EAFBFF;
  font-size: 12px;
  line-height: 1.35;
  word-break: break-word;
}

.commercial-filter-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(160px, 1fr));
  gap: 12px;
  margin: 14px 0 18px;
  padding: 14px;
  border-radius: 20px;
  background: rgba(1, 52, 64, .46);
  border: 1px solid rgba(153, 233, 242, .16);
}

.commercial-filter-grid .delivery-rule-field,
.v173-commercial-page .delivery-rule-field {
  min-width: 0;
}

.v173-commercial-page .commercial-kpi-grid {
  margin-bottom: 18px;
}

.v173-commercial-page .kpi-card,
.v173-commercial-page .kpi {
  background: linear-gradient(145deg, rgba(1,52,64,.92), rgba(55,42,64,.78)) !important;
  border: 1px solid rgba(153,233,242,.22) !important;
  color: #EAFBFF !important;
}

.v173-commercial-page .kpi-card *,
.v173-commercial-page .kpi * {
  color: inherit;
}

.v173-commercial-page .kpi-card strong,
.v173-commercial-page .kpi-value,
.v173-commercial-page .metric-value {
  color: #FFFFFF !important;
}

.v173-commercial-page .kpi-card small,
.v173-commercial-page .kpi-subtitle,
.v173-commercial-page .metric-subtitle {
  color: rgba(234,251,255,.78) !important;
}

.commercial-subtabs-wrap,
.commercial-subtabs {
  margin-top: 12px;
}

.v173-commercial-page .card,
.v173-commercial-page .table-card {
  background: rgba(1,52,64,.58) !important;
  border: 1px solid rgba(153,233,242,.18) !important;
  border-radius: 20px !important;
  color: #EAFBFF !important;
  box-shadow: 0 12px 32px rgba(0,0,0,.18) !important;
}

.v173-commercial-page .card h3,
.v173-commercial-page .table-card h3,
.v173-commercial-page .card p,
.v173-commercial-page .card li {
  color: #EAFBFF !important;
}

.v173-commercial-page .dash-table-container,
.v173-commercial-page .dash-table-container * {
  color: #EAFBFF;
}

.v173-commercial-page .dash-spreadsheet-container .dash-spreadsheet-inner table {
  --hover: rgba(153, 233, 242, .18);
}

.v173-commercial-page .dash-spreadsheet-container .dash-spreadsheet-inner td,
.v173-commercial-page .dash-spreadsheet-container .dash-spreadsheet-inner th {
  color: #EAFBFF !important;
}

.v173-commercial-page .dash-spreadsheet-container .dash-spreadsheet-inner td.cell--selected,
.v173-commercial-page .dash-spreadsheet-container .dash-spreadsheet-inner td.focused,
.v173-commercial-page .dash-spreadsheet-container .dash-spreadsheet-inner tr:hover td {
  background-color: rgba(153, 233, 242, .20) !important;
  color: #FFFFFF !important;
}

.v173-commercial-page .Select-control,
.v173-commercial-page .Select-menu-outer,
.v173-commercial-page .VirtualizedSelectOption {
  background: #FFFFFF !important;
  color: #07191F !important;
}

.v173-commercial-page .Select-value-label,
.v173-commercial-page .Select-placeholder,
.v173-commercial-page .Select-input input {
  color: #07191F !important;
}

.v173-commercial-page .VirtualizedSelectFocusedOption,
.v173-commercial-page .VirtualizedSelectOption:hover {
  background: #DDF8FB !important;
  color: #07191F !important;
}

.v173-commercial-page .dash-graph,
.v173-commercial-page .js-plotly-plot {
  border-radius: 16px;
  overflow: hidden;
}

@media (max-width: 1200px) {
  .commercial-filter-grid {
    grid-template-columns: repeat(2, minmax(180px, 1fr));
  }
}

@media (max-width: 760px) {
  .commercial-filter-grid {
    grid-template-columns: 1fr;
  }
  .commercial-source-card {
    max-width: none;
  }
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v174_accessibility_stabilization.css ===== */
/* PAC Business Control Tower v1.7.4 | Accessibility + interaction stabilization
   Last-loaded guardrail layer. Fixes dark theme contrast, DataTable hover/selected/filter
   readability, right summary behavior and action feedback consistency. */
:root {
  --pac-bg: #071E26;
  --pac-panel: #0D2F38;
  --pac-panel-2: #122E39;
  --pac-border: rgba(153, 233, 242, .22);
  --pac-cyan: #99E9F2;
  --pac-teal: #013440;
  --pac-purple: #372A40;
  --pac-magenta: #BF265E;
  --pac-hot: #F21D56;
  --pac-text: #F8FAFC;
  --pac-text-2: #CBD5E1;
  --pac-muted: #94A3B8;
  --pac-hover: #173B46;
  --pac-input-bg: #F8FAFC;
  --pac-input-text: #071E26;
}
html, body, #react-entry-point, .app-shell, .page-shell {
  background: var(--pac-bg) !important;
  color: var(--pac-text) !important;
}
.card, .table-card, .kpi-card, .jc-panel, .ams60-card, .ams60-status-card, .ams72-card,
.panel, .control-card, .content-card, .dash-card {
  background: linear-gradient(180deg, rgba(13,47,56,.98), rgba(7,30,38,.98)) !important;
  color: var(--pac-text) !important;
  border: 1px solid var(--pac-border) !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.28) !important;
}
.card *, .table-card *, .kpi-card *, .jc-panel *, .ams60-card *, .ams60-status-card *, .ams72-card * {
  color: inherit;
}
h1, h2, h3, h4, h5, h6, .page-title, .card-title, .ams60-title, .ams60-card-title {
  color: var(--pac-text) !important;
  letter-spacing: -.01em;
}
p, label, .subtitle, .muted, .note, .card-note, .kpi-note, .ams60-subtitle, .ams60-note, .ams72-subsource {
  color: var(--pac-text-2) !important;
}
.section-eyebrow, .ams60-eyebrow, .ams72-eyebrow, .kpi-label, .ams60-kpi-label {
  color: var(--pac-cyan) !important;
  font-weight: 800 !important;
  text-transform: uppercase;
  letter-spacing: .08em;
}
/* Inputs and dropdowns: keep readable in dark shell. */
input, textarea, select, .Select-control, .Select-menu-outer, .Select-value-label,
.DateInput_input, .dash-dropdown, .dcc-dropdown, .Select-placeholder {
  background: var(--pac-input-bg) !important;
  color: var(--pac-input-text) !important;
}
.Select-menu-outer *, .VirtualizedSelectOption, .Select-option {
  color: var(--pac-input-text) !important;
  background: var(--pac-input-bg) !important;
}
.Select-option.is-focused, .VirtualizedSelectFocusedOption {
  background: #DFFBFF !important;
  color: var(--pac-input-text) !important;
}
/* DataTable hard guard. */
.dash-table-container, .dash-spreadsheet-container, .dash-spreadsheet-inner {
  background: transparent !important;
  color: var(--pac-text) !important;
}
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner table,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner th,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td {
  background: rgba(7,30,38,.94) !important;
  color: var(--pac-text) !important;
  border-color: rgba(153,233,242,.16) !important;
}
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner th {
  background: rgba(1,52,64,.98) !important;
  color: var(--pac-cyan) !important;
  font-weight: 900 !important;
}
.dash-table-container .dash-filter input,
.dash-table-container input[type="text"],
.dash-table-container .dash-filter--case {
  background: var(--pac-input-bg) !important;
  color: var(--pac-input-text) !important;
  border-color: rgba(1,52,64,.45) !important;
}
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner tr:hover td {
  background: var(--pac-hover) !important;
  color: var(--pac-text) !important;
}
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.cell--selected,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.focused {
  background: #DFFBFF !important;
  color: #071E26 !important;
  border: 1px solid var(--pac-cyan) !important;
}
/* Buttons with visible states. */
button, .btn, .ams60-btn {
  border: 1px solid rgba(153,233,242,.30) !important;
  color: var(--pac-text) !important;
  background: rgba(1,52,64,.92) !important;
}
button:hover, .btn:hover, .ams60-btn:hover {
  background: rgba(153,233,242,.18) !important;
  color: var(--pac-text) !important;
  transform: translateY(-1px);
}
button:disabled, .btn:disabled, .ams60-btn:disabled {
  opacity: .55 !important;
  cursor: not-allowed !important;
}
.ams60-btn.danger, .btn-danger, .danger {
  background: rgba(242,29,86,.22) !important;
  border-color: rgba(242,29,86,.72) !important;
  color: #FFFFFF !important;
}
/* Badges and AMS guardrail statuses. */
[data-dash-row] .dash-cell:has(.status), .status-badge, .badge {
  color: #FFFFFF !important;
}
.ams60-output, pre {
  background: #06161C !important;
  color: #EAFBFF !important;
  border: 1px solid rgba(153,233,242,.22) !important;
}
/* Right summary/side panels: minimized by default, predictable on hover/focus/open class. */
.summary-panel, .right-summary-panel, .side-summary-panel {
  max-width: 56px !important;
  overflow: hidden !important;
  transition: max-width .22s ease, opacity .22s ease !important;
}
.summary-panel.open, .summary-panel:hover, .summary-panel:focus-within,
.right-summary-panel.open, .right-summary-panel:hover, .right-summary-panel:focus-within,
.side-summary-panel.open, .side-summary-panel:hover, .side-summary-panel:focus-within {
  max-width: 420px !important;
}
/* Plotly text fallback */
.js-plotly-plot .plotly .gtitle, .js-plotly-plot .plotly .xtitle, .js-plotly-plot .plotly .ytitle {
  fill: var(--pac-text) !important;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v175_visual_filters_service_context.css ===== */
/* PAC Business Control Tower v1.7.5 | Visual hardening + filter readability + service context
   This file must be loaded last. It neutralizes old light-card hotfixes and makes filters readable. */
:root {
  --pac-v175-bg: #071E26;
  --pac-v175-card: #0B2B34;
  --pac-v175-card-2: #0F3540;
  --pac-v175-border: rgba(153,233,242,.28);
  --pac-v175-border-soft: rgba(153,233,242,.16);
  --pac-v175-text: #F8FAFC;
  --pac-v175-text-2: #CBD5E1;
  --pac-v175-muted: #94A3B8;
  --pac-v175-cyan: #99E9F2;
  --pac-v175-hot: #F21D56;
  --pac-v175-warning: #F59E0B;
  --pac-v175-success: #22C55E;
}

/* KPI cards: remove old white/translucent layers and keep one dark tokenized surface. */
.kpi-card,
.metric-card,
.jc-kpi,
.ops57-kpi,
.ams72-kpi,
.ams60-kpi,
.v150-kpi-card,
.detail-metric,
.finance-chip,
.finance-insight-card,
.finance-tab-panel {
  background: linear-gradient(145deg, rgba(11,43,52,.98), rgba(7,30,38,.98)) !important;
  color: var(--pac-v175-text) !important;
  border: 1px solid var(--pac-v175-border-soft) !important;
  border-radius: 16px !important;
  box-shadow: 0 14px 34px rgba(0,0,0,.34), inset 0 1px 0 rgba(153,233,242,.05) !important;
  overflow: hidden !important;
}
.kpi-card::before,
.kpi-card::after,
.metric-card::before,
.metric-card::after,
.jc-kpi::before,
.jc-kpi::after,
.ops57-kpi::before,
.ops57-kpi::after,
.ams72-kpi::before,
.ams72-kpi::after,
.ams60-kpi::before,
.ams60-kpi::after,
.v150-kpi-card::before,
.v150-kpi-card::after,
.detail-metric::before,
.detail-metric::after {
  content: none !important;
  display: none !important;
  opacity: 0 !important;
  background: transparent !important;
}
.kpi-card.ok,
.metric-card.ok,
.jc-kpi.ok,
.ops57-kpi.ok,
.ams60-kpi.ok,
.ams72-kpi.ok,
.v150-kpi-card.ok {
  border-left: 4px solid var(--pac-v175-success) !important;
  background: linear-gradient(145deg, rgba(11,43,52,.98), rgba(7,30,38,.98)) !important;
}
.kpi-card.warning,
.kpi-card.warn,
.metric-card.warning,
.jc-kpi.warning,
.ops57-kpi.warning,
.ams60-kpi.warning,
.ams72-kpi.warning,
.v150-kpi-card.warning {
  border-left: 4px solid var(--pac-v175-warning) !important;
  background: linear-gradient(145deg, rgba(11,43,52,.98), rgba(7,30,38,.98)) !important;
}
.kpi-card.danger,
.metric-card.danger,
.jc-kpi.danger,
.ops57-kpi.danger,
.ams60-kpi.danger,
.ams72-kpi.danger,
.v150-kpi-card.danger {
  border-left: 4px solid var(--pac-v175-hot) !important;
  background: linear-gradient(145deg, rgba(48,18,34,.96), rgba(7,30,38,.98)) !important;
}
.kpi-label,
.metric-label,
.jc-kpi-label,
.ops57-kpi-label,
.ams60-kpi-label,
.ams72-kpi-label,
.kpi-card [class*="label"],
.metric-card [class*="label"],
.jc-kpi [class*="label"] {
  color: var(--pac-v175-cyan) !important;
  opacity: 1 !important;
}
.kpi-value,
.metric-value,
.jc-kpi-value,
.ops57-kpi-value,
.ams60-kpi-value,
.ams72-kpi-value,
.kpi-card [class*="value"],
.metric-card [class*="value"],
.jc-kpi [class*="value"],
.kpi-card strong,
.metric-card strong,
.jc-kpi strong {
  color: #FFFFFF !important;
  text-shadow: none !important;
}
.kpi-note,
.metric-note,
.jc-kpi-note,
.ops57-kpi-note,
.ams60-kpi-note,
.ams72-kpi-note,
.kpi-card [class*="note"],
.metric-card [class*="note"],
.jc-kpi [class*="note"] {
  color: var(--pac-v175-text-2) !important;
  opacity: 1 !important;
}

/* Filter bar shell. */
.filterbar,
.filters-panel,
.filter-card,
.filter-block,
.global-controls-card {
  background: linear-gradient(180deg, rgba(7,30,38,.98), rgba(1,52,64,.88)) !important;
  color: var(--pac-v175-text) !important;
  border-color: var(--pac-v175-border-soft) !important;
}
.filters-grid {
  gap: 12px !important;
}
.filter-label,
.delivery-rule-field .filter-label,
.filter-card label {
  color: var(--pac-v175-text) !important;
  font-weight: 850 !important;
  letter-spacing: .055em !important;
  text-transform: uppercase !important;
  margin-bottom: 6px !important;
}
.filter-context-chips .filter-chip,
.filter-chip {
  background: rgba(153,233,242,.10) !important;
  border: 1px solid rgba(153,233,242,.22) !important;
  color: var(--pac-v175-text) !important;
}
.filter-chip strong { color: var(--pac-v175-cyan) !important; }

/* Dash dcc.Dropdown / React Select v1 inside filters and commercial filters. */
.filterbar .Select-control,
.filterbar .Select-menu-outer,
.filterbar .Select.is-focused > .Select-control,
.commercial-filter-grid .Select-control,
.commercial-filter-grid .Select-menu-outer,
.delivery-rule-field .Select-control,
.delivery-rule-field .Select-menu-outer,
.pac-dropdown .Select-control,
.pac-dropdown .Select-menu-outer {
  background: #082833 !important;
  color: var(--pac-v175-text) !important;
  border: 1px solid rgba(153,233,242,.34) !important;
  border-radius: 10px !important;
  box-shadow: inset 0 1px 0 rgba(153,233,242,.08) !important;
}
.filterbar .Select-control,
.commercial-filter-grid .Select-control,
.delivery-rule-field .Select-control,
.pac-dropdown .Select-control {
  min-height: 42px !important;
  height: auto !important;
  overflow: visible !important;
}
.filterbar .Select-multi-value-wrapper,
.commercial-filter-grid .Select-multi-value-wrapper,
.delivery-rule-field .Select-multi-value-wrapper,
.pac-dropdown .Select-multi-value-wrapper {
  min-height: 38px !important;
  padding: 3px 34px 3px 8px !important;
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 4px !important;
}
.filterbar .Select-placeholder,
.filterbar .Select-value-label,
.filterbar .Select-input > input,
.filterbar .Select-input,
.commercial-filter-grid .Select-placeholder,
.commercial-filter-grid .Select-value-label,
.commercial-filter-grid .Select-input > input,
.delivery-rule-field .Select-placeholder,
.delivery-rule-field .Select-value-label,
.delivery-rule-field .Select-input > input,
.pac-dropdown .Select-placeholder,
.pac-dropdown .Select-value-label,
.pac-dropdown .Select-input > input {
  color: var(--pac-v175-text) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}
.filterbar .Select-placeholder,
.commercial-filter-grid .Select-placeholder,
.delivery-rule-field .Select-placeholder,
.pac-dropdown .Select-placeholder {
  color: var(--pac-v175-muted) !important;
}
.filterbar .Select--single > .Select-control .Select-value,
.commercial-filter-grid .Select--single > .Select-control .Select-value,
.delivery-rule-field .Select--single > .Select-control .Select-value,
.pac-dropdown .Select--single > .Select-control .Select-value {
  line-height: 40px !important;
  padding-left: 10px !important;
}
.filterbar .Select--multi .Select-value,
.commercial-filter-grid .Select--multi .Select-value,
.delivery-rule-field .Select--multi .Select-value,
.pac-dropdown.Select--multi .Select-value,
.pac-dropdown .Select--multi .Select-value {
  background: rgba(153,233,242,.14) !important;
  border: 1px solid rgba(153,233,242,.36) !important;
  color: var(--pac-v175-text) !important;
  border-radius: 999px !important;
  margin: 2px 4px 2px 0 !important;
  line-height: 24px !important;
  max-width: calc(100% - 8px) !important;
}
.filterbar .Select--multi .Select-value-label,
.commercial-filter-grid .Select--multi .Select-value-label,
.delivery-rule-field .Select--multi .Select-value-label,
.pac-dropdown .Select--multi .Select-value-label {
  color: var(--pac-v175-text) !important;
  padding: 2px 8px !important;
  font-weight: 750 !important;
}
.filterbar .Select--multi .Select-value-icon,
.commercial-filter-grid .Select--multi .Select-value-icon,
.delivery-rule-field .Select--multi .Select-value-icon,
.pac-dropdown .Select--multi .Select-value-icon {
  color: var(--pac-v175-cyan) !important;
  border-right: 1px solid rgba(153,233,242,.28) !important;
  padding: 2px 7px !important;
}
.filterbar .Select-clear-zone,
.filterbar .Select-arrow-zone,
.commercial-filter-grid .Select-clear-zone,
.commercial-filter-grid .Select-arrow-zone,
.delivery-rule-field .Select-clear-zone,
.delivery-rule-field .Select-arrow-zone,
.pac-dropdown .Select-clear-zone,
.pac-dropdown .Select-arrow-zone {
  color: var(--pac-v175-cyan) !important;
  fill: var(--pac-v175-cyan) !important;
}
.filterbar .Select-menu-outer,
.commercial-filter-grid .Select-menu-outer,
.delivery-rule-field .Select-menu-outer,
.pac-dropdown .Select-menu-outer {
  margin-top: 6px !important;
  z-index: 9999 !important;
  box-shadow: 0 18px 42px rgba(0,0,0,.45) !important;
}
.filterbar .Select-option,
.filterbar .VirtualizedSelectOption,
.commercial-filter-grid .Select-option,
.commercial-filter-grid .VirtualizedSelectOption,
.delivery-rule-field .Select-option,
.delivery-rule-field .VirtualizedSelectOption,
.pac-dropdown .Select-option,
.pac-dropdown .VirtualizedSelectOption {
  background: #082833 !important;
  color: var(--pac-v175-text) !important;
  border-bottom: 1px solid rgba(153,233,242,.08) !important;
  min-height: 36px !important;
  line-height: 1.25 !important;
}
.filterbar .Select-option.is-focused,
.filterbar .VirtualizedSelectFocusedOption,
.filterbar .Select-option.is-selected,
.commercial-filter-grid .Select-option.is-focused,
.commercial-filter-grid .VirtualizedSelectFocusedOption,
.commercial-filter-grid .Select-option.is-selected,
.delivery-rule-field .Select-option.is-focused,
.delivery-rule-field .VirtualizedSelectFocusedOption,
.delivery-rule-field .Select-option.is-selected,
.pac-dropdown .Select-option.is-focused,
.pac-dropdown .VirtualizedSelectFocusedOption,
.pac-dropdown .Select-option.is-selected {
  background: rgba(153,233,242,.18) !important;
  color: #FFFFFF !important;
}
.filterbar input.pac-text-input,
.pac-text-input,
input#f-search {
  background: #082833 !important;
  color: var(--pac-v175-text) !important;
  border: 1px solid rgba(153,233,242,.34) !important;
  border-radius: 10px !important;
  min-height: 42px !important;
  padding: 0 12px !important;
}
.filterbar input.pac-text-input::placeholder,
.pac-text-input::placeholder,
input#f-search::placeholder {
  color: var(--pac-v175-muted) !important;
  opacity: 1 !important;
}

/* DataTable selected/hover readable after old CSS. */
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner tr:hover td {
  background: #143B46 !important;
  color: #FFFFFF !important;
}
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.cell--selected,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.focused {
  background: rgba(153,233,242,.22) !important;
  color: #FFFFFF !important;
  border: 1px solid rgba(153,233,242,.72) !important;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v176_filter_runtime_loading.css ===== */
/* PAC Business Control Tower v1.7.6 | Final filter runtime + loading states
   Loaded after previous hotfixes. Purpose: zero white filter controls, reliable visible selections, readable menus. */
:root {
  --pac176-bg: #071E26;
  --pac176-surface: #082833;
  --pac176-surface-2: #0B2F3A;
  --pac176-surface-3: #123D48;
  --pac176-border: rgba(153,233,242,.36);
  --pac176-border-strong: rgba(153,233,242,.62);
  --pac176-text: #F8FAFC;
  --pac176-muted: #B8D4DA;
  --pac176-cyan: #99E9F2;
  --pac176-hot: #F21D56;
}

/* Filter redesign: every dcc.Dropdown state remains dark, including the hidden search input. */
.filterbar,
.filters-panel,
.filters-grid,
.filter-card,
.filter-block {
  background: linear-gradient(180deg, rgba(7,30,38,.98), rgba(1,52,64,.92)) !important;
  color: var(--pac176-text) !important;
}

.filterbar .dash-dropdown,
.filterbar .Select,
.filterbar .Select div,
.filterbar .Select span,
.commercial-filter-grid .dash-dropdown,
.commercial-filter-grid .Select,
.delivery-rule-field .dash-dropdown,
.delivery-rule-field .Select,
.pac-dropdown,
.pac-dropdown .Select {
  color: var(--pac176-text) !important;
}

.filterbar .Select-control,
.filterbar .Select.is-focused > .Select-control,
.filterbar .Select.is-open > .Select-control,
.filterbar .Select.has-value > .Select-control,
.commercial-filter-grid .Select-control,
.delivery-rule-field .Select-control,
.pac-dropdown .Select-control,
.dash-dropdown .Select-control {
  background: var(--pac176-surface) !important;
  background-color: var(--pac176-surface) !important;
  color: var(--pac176-text) !important;
  border: 1px solid var(--pac176-border) !important;
  border-radius: 10px !important;
  box-shadow: inset 0 1px 0 rgba(153,233,242,.08), 0 0 0 0 rgba(153,233,242,0) !important;
  min-height: 42px !important;
  height: auto !important;
  overflow: visible !important;
}

.filterbar .Select.is-focused > .Select-control,
.filterbar .Select.is-open > .Select-control,
.commercial-filter-grid .Select.is-focused > .Select-control,
.delivery-rule-field .Select.is-focused > .Select-control,
.pac-dropdown .Select.is-focused > .Select-control,
.dash-dropdown .Select.is-focused > .Select-control {
  border-color: var(--pac176-border-strong) !important;
  box-shadow: 0 0 0 2px rgba(153,233,242,.12), inset 0 1px 0 rgba(153,233,242,.08) !important;
}

/* The white rectangle in multi-select comes from React Select's internal input. Kill it everywhere. */
.filterbar .Select-input,
.filterbar .Select-input > input,
.filterbar .Select-input input,
.filterbar .Select-multi-value-wrapper,
.filterbar .Select-value,
.filterbar .Select-value-label,
.filterbar .Select-placeholder,
.commercial-filter-grid .Select-input,
.commercial-filter-grid .Select-input > input,
.commercial-filter-grid .Select-input input,
.delivery-rule-field .Select-input,
.delivery-rule-field .Select-input > input,
.delivery-rule-field .Select-input input,
.pac-dropdown .Select-input,
.pac-dropdown .Select-input > input,
.pac-dropdown .Select-input input,
.dash-dropdown .Select-input,
.dash-dropdown .Select-input > input,
.dash-dropdown .Select-input input {
  background: transparent !important;
  background-color: transparent !important;
  color: var(--pac176-text) !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: none !important;
  text-shadow: none !important;
}

.filterbar .Select-placeholder,
.commercial-filter-grid .Select-placeholder,
.delivery-rule-field .Select-placeholder,
.pac-dropdown .Select-placeholder,
.dash-dropdown .Select-placeholder {
  color: var(--pac176-muted) !important;
  opacity: 1 !important;
  line-height: 40px !important;
  padding-left: 10px !important;
}

.filterbar .Select--single > .Select-control .Select-value,
.commercial-filter-grid .Select--single > .Select-control .Select-value,
.delivery-rule-field .Select--single > .Select-control .Select-value,
.pac-dropdown .Select--single > .Select-control .Select-value,
.dash-dropdown .Select--single > .Select-control .Select-value {
  background: transparent !important;
  color: var(--pac176-text) !important;
  line-height: 40px !important;
  padding-left: 10px !important;
}

.filterbar .Select--single > .Select-control .Select-value-label,
.commercial-filter-grid .Select--single > .Select-control .Select-value-label,
.delivery-rule-field .Select--single > .Select-control .Select-value-label,
.pac-dropdown .Select--single > .Select-control .Select-value-label,
.dash-dropdown .Select--single > .Select-control .Select-value-label {
  color: var(--pac176-text) !important;
  font-weight: 750 !important;
}

.filterbar .Select--multi .Select-value,
.commercial-filter-grid .Select--multi .Select-value,
.delivery-rule-field .Select--multi .Select-value,
.pac-dropdown .Select--multi .Select-value,
.dash-dropdown .Select--multi .Select-value {
  background: linear-gradient(180deg, rgba(153,233,242,.18), rgba(153,233,242,.10)) !important;
  background-color: rgba(153,233,242,.14) !important;
  color: var(--pac176-text) !important;
  border: 1px solid rgba(153,233,242,.42) !important;
  border-radius: 999px !important;
  margin: 4px 4px 4px 0 !important;
  min-height: 26px !important;
  max-width: calc(100% - 8px) !important;
  overflow: hidden !important;
}

.filterbar .Select--multi .Select-value-label,
.commercial-filter-grid .Select--multi .Select-value-label,
.delivery-rule-field .Select--multi .Select-value-label,
.pac-dropdown .Select--multi .Select-value-label,
.dash-dropdown .Select--multi .Select-value-label {
  color: var(--pac176-text) !important;
  font-weight: 800 !important;
  padding: 3px 9px !important;
  background: transparent !important;
}

.filterbar .Select--multi .Select-value-icon,
.commercial-filter-grid .Select--multi .Select-value-icon,
.delivery-rule-field .Select--multi .Select-value-icon,
.pac-dropdown .Select--multi .Select-value-icon,
.dash-dropdown .Select--multi .Select-value-icon {
  color: var(--pac176-cyan) !important;
  background: rgba(153,233,242,.10) !important;
  border-right: 1px solid rgba(153,233,242,.30) !important;
  padding: 3px 8px !important;
}

.filterbar .Select-clear-zone,
.filterbar .Select-arrow-zone,
.commercial-filter-grid .Select-clear-zone,
.commercial-filter-grid .Select-arrow-zone,
.delivery-rule-field .Select-clear-zone,
.delivery-rule-field .Select-arrow-zone,
.pac-dropdown .Select-clear-zone,
.pac-dropdown .Select-arrow-zone,
.dash-dropdown .Select-clear-zone,
.dash-dropdown .Select-arrow-zone {
  background: transparent !important;
  color: var(--pac176-cyan) !important;
  fill: var(--pac176-cyan) !important;
}

.filterbar .Select-menu-outer,
.commercial-filter-grid .Select-menu-outer,
.delivery-rule-field .Select-menu-outer,
.pac-dropdown .Select-menu-outer,
.dash-dropdown .Select-menu-outer {
  background: var(--pac176-surface) !important;
  background-color: var(--pac176-surface) !important;
  border: 1px solid var(--pac176-border-strong) !important;
  border-radius: 12px !important;
  margin-top: 6px !important;
  overflow: hidden !important;
  box-shadow: 0 22px 50px rgba(0,0,0,.55) !important;
  z-index: 10020 !important;
}

.filterbar .Select-menu,
.filterbar .Select-option,
.filterbar .VirtualizedSelectOption,
.commercial-filter-grid .Select-menu,
.commercial-filter-grid .Select-option,
.commercial-filter-grid .VirtualizedSelectOption,
.delivery-rule-field .Select-menu,
.delivery-rule-field .Select-option,
.delivery-rule-field .VirtualizedSelectOption,
.pac-dropdown .Select-menu,
.pac-dropdown .Select-option,
.pac-dropdown .VirtualizedSelectOption,
.dash-dropdown .Select-menu,
.dash-dropdown .Select-option,
.dash-dropdown .VirtualizedSelectOption {
  background: var(--pac176-surface) !important;
  background-color: var(--pac176-surface) !important;
  color: var(--pac176-text) !important;
}

.filterbar .Select-option.is-focused,
.filterbar .Select-option.is-selected,
.filterbar .VirtualizedSelectFocusedOption,
.commercial-filter-grid .Select-option.is-focused,
.commercial-filter-grid .Select-option.is-selected,
.commercial-filter-grid .VirtualizedSelectFocusedOption,
.delivery-rule-field .Select-option.is-focused,
.delivery-rule-field .Select-option.is-selected,
.delivery-rule-field .VirtualizedSelectFocusedOption,
.pac-dropdown .Select-option.is-focused,
.pac-dropdown .Select-option.is-selected,
.pac-dropdown .VirtualizedSelectFocusedOption,
.dash-dropdown .Select-option.is-focused,
.dash-dropdown .Select-option.is-selected,
.dash-dropdown .VirtualizedSelectFocusedOption {
  background: var(--pac176-surface-3) !important;
  background-color: var(--pac176-surface-3) !important;
  color: #FFFFFF !important;
}

/* Text inputs inside filters. */
.filterbar input,
.filterbar input.pac-text-input,
input#f-search,
.pac-text-input {
  background: var(--pac176-surface) !important;
  background-color: var(--pac176-surface) !important;
  color: var(--pac176-text) !important;
  border: 1px solid var(--pac176-border) !important;
  border-radius: 10px !important;
  min-height: 42px !important;
  box-shadow: inset 0 1px 0 rgba(153,233,242,.08) !important;
}
.filterbar input::placeholder,
.filterbar input.pac-text-input::placeholder,
input#f-search::placeholder,
.pac-text-input::placeholder {
  color: var(--pac176-muted) !important;
  opacity: 1 !important;
}

/* Loading states: visible feedback while callbacks refresh graphs, tables or AMS actions. */
.pac-loading-wrap {
  position: relative !important;
}
.pac-loading-wrap .dash-spinner,
.pac-loading-wrap [class*="dash-spinner"],
.pac-loading-wrap [class*="Spinner"],
#ams60-action-output[data-dash-is-loading="true"]::before,
#ams60-action-table[data-dash-is-loading="true"]::before {
  filter: drop-shadow(0 0 10px rgba(153,233,242,.65)) !important;
}
#kpi-grid[data-dash-is-loading="true"],
#page-content-shell[data-dash-is-loading="true"],
#ams60-action-output[data-dash-is-loading="true"],
#ams60-action-table[data-dash-is-loading="true"] {
  opacity: .42 !important;
  transition: opacity .12s ease-in-out !important;
}
#page-content-shell[data-dash-is-loading="true"]::before,
#ams60-action-output[data-dash-is-loading="true"]::before,
#ams60-action-table[data-dash-is-loading="true"]::before {
  content: "Procesando…";
  position: sticky;
  top: 12px;
  left: 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(8,40,51,.96);
  color: var(--pac176-cyan);
  border: 1px solid rgba(153,233,242,.48);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .04em;
  z-index: 10030;
  box-shadow: 0 12px 28px rgba(0,0,0,.35);
}
#ams60-action-output[data-dash-is-loading="true"]::before,
#ams60-action-table[data-dash-is-loading="true"]::before {
  content: "Procesando AMS…";
}

/* DataTables: selected/active cell must never turn white. */
.dash-table-container input,
.dash-table-container .dash-filter input {
  background: #082833 !important;
  color: #F8FAFC !important;
  border: 1px solid rgba(153,233,242,.30) !important;
}
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.cell--selected,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td.focused,
.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner tr:hover td {
  background: #143B46 !important;
  color: #FFFFFF !important;
  border-color: rgba(153,233,242,.52) !important;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v177_layout_visibility_hotfix.css ===== */
/* PAC Business Control Tower v1.7.7 | Layout visibility hotfix
   Fixes v1.7.6 regression: dcc.Loading wrappers stopped KPI/content from being direct CSS-grid children.
   This file also protects the active page from being hidden behind filter/detail overlays. */
:root {
  --pac177-bg: #071E26;
  --pac177-surface: #082833;
  --pac177-border: rgba(153,233,242,.32);
  --pac177-text: #F8FAFC;
  --pac177-cyan: #99E9F2;
}

#app-shell.app-shell,
.app-shell.site-shell {
  isolation: isolate !important;
}

/* Direct grid placement restored in app.py; these guards keep legacy/new wrappers harmless if present. */
#pac-global-kpi-loading,
.pac-loading-wrap:not(.pac-page-loading) {
  grid-area: kpis !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  position: relative !important;
  z-index: 20 !important;
}

#pac-page-loading,
.pac-page-loading {
  grid-area: content !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  display: block !important;
  position: relative !important;
  z-index: 30 !important;
  overflow: visible !important;
}

#page-content-shell.pac-page-content-shell,
#page-content-shell,
.page-content-shell {
  grid-area: content !important;
  display: block !important;
  position: relative !important;
  z-index: 30 !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-height: 520px !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
  background: transparent !important;
  pointer-events: auto !important;
}

#kpi-grid.kpi-grid,
#kpi-grid,
.kpi-grid {
  grid-area: kpis !important;
  display: grid !important;
  position: relative !important;
  z-index: 25 !important;
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
}

#v103-interaction-bar.v103-interaction-bar,
#v103-interaction-bar {
  grid-area: content !important;
  position: relative !important;
  z-index: 26 !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin: 0 24px 14px !important;
}

.pac-page-panel.is-active,
#page-content-shell .pac-page-panel.is-active {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  z-index: 1 !important;
  transform: none !important;
}

.pac-page-panel.is-hidden,
#page-content-shell .pac-page-panel.is-hidden {
  display: none !important;
}

.page-shell,
#page-content-shell .page-shell,
#page-content-shell [class*="page-"] {
  visibility: visible !important;
  opacity: 1 !important;
  transform: none !important;
}

/* Filterbar remains above content only while opening menus; it must not cover the page body. */
#filterbar.filterbar,
#filterbar,
.filterbar {
  z-index: 430 !important;
}

.Select-menu-outer,
.VirtualizedSelectGrid {
  z-index: 10050 !important;
}

/* Detail 360 stays minimized/visible but cannot blanket the whole dashboard. */
#detail-panel.detail-panel {
  pointer-events: none !important;
}
#detail-panel.detail-panel.active,
#detail-panel.detail-panel.active.minimized,
#detail-panel.detail-panel.active * {
  pointer-events: auto !important;
}
#detail-panel.detail-panel:not(.active) {
  display: none !important;
}
#detail-panel.detail-panel.active.minimized {
  background: transparent !important;
  box-shadow: none !important;
}

/* Loading feedback without moving layout or dimming the full page permanently. */
#page-content-shell[data-dash-is-loading="true"],
#kpi-grid[data-dash-is-loading="true"] {
  opacity: .72 !important;
}
#page-content-shell[data-dash-is-loading="true"]::before,
#kpi-grid[data-dash-is-loading="true"]::before {
  content: "Cargando / actualizando…";
  position: sticky !important;
  top: 72px !important;
  left: 24px !important;
  display: inline-flex !important;
  width: fit-content !important;
  padding: 8px 12px !important;
  border-radius: 999px !important;
  background: rgba(8,40,51,.98) !important;
  color: var(--pac177-cyan) !important;
  border: 1px solid var(--pac177-border) !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  letter-spacing: .04em !important;
  z-index: 10060 !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.34) !important;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v178_direction_trends.css ===== */
/* PAC Business Control Tower v1.7.8 | Dirección: Tendencias y Proyecciones */

.v178-direction-page {
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  min-width: 0 !important;
  color: #eafcff !important;
}

.v178-direction-page .page-title-row {
  align-items: flex-start !important;
  gap: 16px !important;
}

.v178-version-badge {
  flex: 0 0 auto;
  border: 1px solid rgba(153, 233, 242, .34);
  background: #0b3540;
  color: #99e9f2;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .04em;
}

.v178-meta-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.v178-meta-item {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 12px;
  background: #092a34;
  border: 1px solid rgba(153, 233, 242, .16);
  border-radius: 12px;
  color: #c8e8ed;
}

.v178-meta-item > span {
  color: #77b9c3;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.v178-meta-item > strong {
  color: #f8fafc;
  font-size: 11px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.v178-summary-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(145px, 1fr));
  gap: 10px;
}

.v178-summary-card {
  position: relative;
  min-width: 0;
  min-height: 112px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 7px;
  padding: 14px;
  border-radius: 14px;
  background: #0b303a !important;
  border: 1px solid rgba(153, 233, 242, .20);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .18);
  overflow: hidden;
}

.v178-summary-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 4px;
  background: #6fbcca;
}

.v178-summary-card.primary::before { background: #99e9f2; }
.v178-summary-card.positive::before { background: #22c55e; }
.v178-summary-card.negative::before,
.v178-summary-card.danger::before { background: #f21d56; }

.v178-summary-card > span {
  color: #a9d6dd !important;
  font-size: 9.5px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: .055em;
  text-transform: uppercase;
}

.v178-summary-card > strong {
  color: #f8fafc !important;
  font-size: clamp(23px, 1.8vw, 34px);
  line-height: 1;
  font-weight: 900;
  overflow-wrap: anywhere;
}

.v178-summary-card.positive > strong { color: #86efac !important; }
.v178-summary-card.negative > strong,
.v178-summary-card.danger > strong { color: #ff9db8 !important; }

.v178-summary-card > small {
  color: #86b6bf !important;
  font-size: 10px;
  line-height: 1.35;
}

.v178-decision-grid,
.v178-table-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  align-items: stretch;
}

.v178-panel {
  min-width: 0;
  padding: 16px;
  border-radius: 16px;
  background: #082731 !important;
  border: 1px solid rgba(153, 233, 242, .17);
  box-shadow: 0 10px 30px rgba(0, 0, 0, .16);
}

.v178-panel h3 {
  margin: 4px 0 7px !important;
  color: #f8fafc !important;
  font-size: 16px !important;
  line-height: 1.25 !important;
}

.v178-panel p {
  color: #9fc8d0 !important;
  font-size: 11px !important;
  line-height: 1.45 !important;
}

.v178-panel-eyebrow {
  color: #99e9f2 !important;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.v178-semaphore-content {
  display: grid;
  grid-template-columns: 82px minmax(0, 1fr);
  gap: 17px;
  align-items: center;
  padding: 8px 0 12px;
}

.v178-traffic-light {
  width: 72px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 10px;
  border-radius: 22px;
  background: #041b22;
  border: 1px solid rgba(153, 233, 242, .20);
  box-shadow: inset 0 0 20px rgba(0, 0, 0, .35);
}

.v178-light {
  width: 40px;
  height: 40px;
  display: block;
  border-radius: 50%;
  opacity: .16;
  filter: saturate(.45);
  border: 2px solid rgba(255, 255, 255, .15);
}

.v178-light.red { background: #f21d56; }
.v178-light.yellow { background: #f59e0b; }
.v178-light.green { background: #22c55e; }
.v178-traffic-light.active-red .red,
.v178-traffic-light.active-yellow .yellow,
.v178-traffic-light.active-green .green {
  opacity: 1;
  filter: none;
  box-shadow: 0 0 22px currentColor;
}

.v178-semaphore-copy h3 {
  font-size: 24px !important;
  letter-spacing: .04em;
}

.v178-semaphore-copy > strong {
  display: block;
  color: #f8fafc;
  font-size: 14px;
  margin-bottom: 5px;
}

.v178-semaphore-stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.v178-semaphore-stats > div {
  padding: 10px;
  border-radius: 10px;
  background: #0b3540;
  border: 1px solid rgba(153, 233, 242, .12);
}

.v178-semaphore-stats span,
.v178-semaphore-stats strong {
  display: block;
}

.v178-semaphore-stats span {
  color: #87b7c0;
  font-size: 9px;
  font-weight: 800;
  text-transform: uppercase;
}

.v178-semaphore-stats strong {
  color: #f8fafc;
  margin-top: 3px;
  font-size: 16px;
}

.v178-insight-list {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin: 10px 0 0;
  padding-left: 22px;
  color: #e8f9fc;
}

.v178-insight-list li {
  padding: 7px 9px;
  border-radius: 9px;
  background: #0b3540;
  border-left: 3px solid #99e9f2;
  font-size: 11.5px;
  line-height: 1.4;
}

.v178-table-panel .dash-table-container {
  margin-top: 10px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid rgba(153, 233, 242, .10);
}

.v178-table-panel .dash-spreadsheet-container,
.v178-table-panel .dash-spreadsheet-inner,
.v178-table-panel .dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner {
  background: #092a34 !important;
}

.v178-table-panel input,
.v178-table-panel input[type="text"] {
  background: #0b3540 !important;
  color: #f8fafc !important;
  border: 1px solid rgba(153, 233, 242, .25) !important;
}

.v178-alert-count {
  flex: 0 0 auto;
  align-self: center;
  padding: 7px 11px;
  border-radius: 999px;
  background: rgba(242, 29, 86, .14);
  border: 1px solid rgba(242, 29, 86, .45);
  color: #ffb1c4;
  font-size: 10px;
  font-weight: 900;
}

@media (max-width: 1500px) {
  .v178-summary-grid { grid-template-columns: repeat(3, minmax(160px, 1fr)); }
}

@media (max-width: 1050px) {
  .v178-meta-strip,
  .v178-decision-grid,
  .v178-table-grid { grid-template-columns: 1fr; }
  .v178-summary-grid { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
}

@media (max-width: 650px) {
  .v178-summary-grid { grid-template-columns: 1fr; }
  .v178-semaphore-content { grid-template-columns: 1fr; }
  .v178-traffic-light { flex-direction: row; width: fit-content; }
  .v178-semaphore-stats { grid-template-columns: 1fr; }
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v179_direction_readability_drilldown.css ===== */
/* PAC Business Control Tower v1.7.9 | Dirección readability, semantic states and drill-down affordance */

.v179-direction-page {
  font-size: 13.5px !important;
  line-height: 1.45 !important;
}

.v179-direction-page .page-title-row h2 {
  font-size: clamp(24px, 2vw, 34px) !important;
  line-height: 1.15 !important;
}

.v179-direction-page .page-title-row p,
.v179-direction-page .v178-panel p {
  color: #BBD8DE !important;
  font-size: 13px !important;
  line-height: 1.5 !important;
}

.v179-direction-page .v178-panel {
  padding: 18px !important;
}

.v179-direction-page .v178-panel h3 {
  font-size: 18px !important;
  line-height: 1.3 !important;
}

.v179-direction-page .v178-panel-eyebrow,
.v179-direction-page .section-eyebrow {
  font-size: 10.5px !important;
  letter-spacing: .085em !important;
}

.v179-direction-page .v178-meta-item > span {
  font-size: 10px !important;
}

.v179-direction-page .v178-meta-item > strong {
  font-size: 12.5px !important;
  line-height: 1.45 !important;
}

.v179-direction-page .v178-summary-card > span {
  font-size: 10.5px !important;
}

.v179-direction-page .v178-summary-card > small {
  color: #B7D7DD !important;
  font-size: 11.5px !important;
  line-height: 1.45 !important;
}

.v179-direction-page .v178-insight-list li {
  color: #F4FCFD !important;
  font-size: 13px !important;
  line-height: 1.48 !important;
  padding: 9px 11px !important;
}

.v179-click-hint {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  max-width: 100%;
  margin: 3px 0 9px;
  padding: 7px 10px;
  border-radius: 9px;
  background: rgba(153, 233, 242, .09) !important;
  border: 1px solid rgba(153, 233, 242, .24);
  color: #CFF8FC !important;
  font-size: 12px !important;
  font-weight: 750;
  line-height: 1.35;
}

.v179-click-hint::before {
  content: "↗";
  color: #99E9F2;
  font-size: 15px;
  font-weight: 900;
}

/* Readable executive tables. */
.v179-direction-page .dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner th {
  color: #C9F9FF !important;
  font-size: 12.5px !important;
  font-weight: 900 !important;
  line-height: 1.3 !important;
  padding: 12px 10px !important;
  min-height: 48px !important;
}

.v179-direction-page .dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td,
.v179-direction-page .dash-table-container .dash-cell {
  color: #F4FCFD !important;
  font-size: 13px !important;
  font-weight: 560 !important;
  line-height: 1.42 !important;
  padding: 11px 10px !important;
  min-height: 46px !important;
  white-space: normal !important;
}

.v179-direction-page .dash-table-container .dash-filter input,
.v179-direction-page .dash-table-container input[type="text"] {
  background: #0B3540 !important;
  color: #F8FAFC !important;
  border: 1px solid rgba(153,233,242,.34) !important;
  font-size: 11.5px !important;
  min-height: 28px !important;
}

.v179-direction-page .dash-table-container .dash-cell:hover,
.v179-direction-page .dash-table-container tr:hover .dash-cell {
  background: #174754 !important;
  color: #FFFFFF !important;
}

.v179-direction-page .dash-table-container .dash-cell.focused,
.v179-direction-page .dash-table-container .dash-cell.cell--selected {
  background: #1B5361 !important;
  color: #FFFFFF !important;
  border: 2px solid #99E9F2 !important;
  box-shadow: inset 0 0 0 1px rgba(153,233,242,.25) !important;
}

/* Semantic cells. Saturated dark backgrounds preserve AA contrast and survive legacy !important rules. */
.v179-direction-page .dash-cell[data-pac-status="rojo"],
.v179-direction-page td[data-pac-status="rojo"],
.v179-direction-page .dash-cell[data-pac-priority="critica"],
.v179-direction-page td[data-pac-priority="critica"],
.v179-direction-page .dash-cell[data-pac-signal="negative"],
.v179-direction-page td[data-pac-signal="negative"] {
  background: #86183A !important;
  color: #FFFFFF !important;
  border-left: 4px solid #FF5C89 !important;
  font-weight: 900 !important;
}

.v179-direction-page .dash-cell[data-pac-status="amarillo"],
.v179-direction-page td[data-pac-status="amarillo"],
.v179-direction-page .dash-cell[data-pac-priority="alta"],
.v179-direction-page td[data-pac-priority="alta"],
.v179-direction-page .dash-cell[data-pac-signal="warning"],
.v179-direction-page td[data-pac-signal="warning"] {
  background: #805200 !important;
  color: #FFF8DE !important;
  border-left: 4px solid #FBBF24 !important;
  font-weight: 900 !important;
}

.v179-direction-page .dash-cell[data-pac-status="verde"],
.v179-direction-page td[data-pac-status="verde"],
.v179-direction-page .dash-cell[data-pac-signal="positive"],
.v179-direction-page td[data-pac-signal="positive"] {
  background: #166534 !important;
  color: #E9FFF1 !important;
  border-left: 4px solid #4ADE80 !important;
  font-weight: 900 !important;
}

.v179-direction-page .dash-cell[data-pac-signal="stable"],
.v179-direction-page td[data-pac-signal="stable"] {
  background: #155065 !important;
  color: #E4FAFF !important;
  border-left: 4px solid #67E8F9 !important;
  font-weight: 900 !important;
}

.v179-direction-page .dash-cell[data-pac-signal="muted"],
.v179-direction-page td[data-pac-signal="muted"] {
  background: #475569 !important;
  color: #F8FAFC !important;
  border-left: 4px solid #94A3B8 !important;
  font-weight: 850 !important;
}

/* Keep semantic cells visible while hovering a row. */
.v179-direction-page tr:hover .dash-cell[data-pac-status],
.v179-direction-page tr:hover .dash-cell[data-pac-priority],
.v179-direction-page tr:hover .dash-cell[data-pac-signal] {
  filter: brightness(1.12);
}

.v179-client-table-panel .dash-table-container {
  min-height: 280px;
}

/* Direction drill-down uses the existing Detalle 360 drawer; make its order list readable. */
.detail360-shell.v103-drilldown-modal .v103-drilldown h2 {
  font-size: 22px !important;
  line-height: 1.2 !important;
}

.detail360-shell.v103-drilldown-modal .v103-drilldown p,
.detail360-shell.v103-drilldown-modal .v105-modal-help,
.detail360-shell.v103-drilldown-modal .v164-compact-drilldown-note {
  font-size: 12.5px !important;
  line-height: 1.45 !important;
}

.detail360-shell.v103-drilldown-modal .dash-cell {
  font-size: 12.5px !important;
  line-height: 1.4 !important;
}

@media (max-width: 1200px) {
  .v179-direction-page .v178-panel h3 { font-size: 17px !important; }
  .v179-direction-page .dash-table-container .dash-cell { font-size: 12.5px !important; }
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v1710_uniform_tables_detail360.css ===== */
/* PAC Business Control Tower v1.7.10
   Uniform dark tables, semantic traffic-light cells and persistent Detalle 360. */

/* --------------------------------------------------------------------------
   ALL DATA TABLES: one consistent dark body. No white zebra rows or fillers.
---------------------------------------------------------------------------- */
body .dash-table-container .dash-spreadsheet-container,
body .dash-table-container .dash-spreadsheet-inner,
body .dash-table-container .dash-spreadsheet,
body .dash-table-container table {
  background: #071F28 !important;
  color: #F4FCFD !important;
}

body .dash-table-container .dash-spreadsheet-inner td,
body .dash-table-container .dash-spreadsheet td,
body .dash-table-container td.dash-cell,
body .dash-table-container .dash-cell:not(.dash-header) {
  background-color: #092A34 !important;
  color: #F4FCFD !important;
  border-color: rgba(153, 233, 242, .14) !important;
}

/* Explicitly neutralize every inherited zebra/odd/even rule, including empty
   pagination filler rows created by Dash DataTable. */
body .dash-table-container tr:nth-child(odd) td,
body .dash-table-container tr:nth-child(even) td,
body .dash-table-container tr:nth-child(odd) .dash-cell:not(.dash-header),
body .dash-table-container tr:nth-child(even) .dash-cell:not(.dash-header),
body .dash-table-container .dash-spreadsheet-inner tr:nth-child(odd) td,
body .dash-table-container .dash-spreadsheet-inner tr:nth-child(even) td {
  background-color: #092A34 !important;
  color: #F4FCFD !important;
}

body .dash-table-container td > div,
body .dash-table-container .dash-cell > div,
body .dash-table-container td span,
body .dash-table-container .dash-cell span {
  color: inherit !important;
}

body .dash-table-container tr:hover td,
body .dash-table-container tr:hover .dash-cell:not(.dash-header),
body .dash-table-container td:hover,
body .dash-table-container .dash-cell:not(.dash-header):hover {
  background-color: #123F4A !important;
  color: #FFFFFF !important;
}

body .dash-table-container td.focused,
body .dash-table-container td.cell--selected,
body .dash-table-container .dash-cell.focused,
body .dash-table-container .dash-cell.cell--selected {
  background-color: #164E5B !important;
  color: #FFFFFF !important;
  border-color: #99E9F2 !important;
  outline: 1px solid rgba(153, 233, 242, .60) !important;
}

body .dash-table-container th,
body .dash-table-container .dash-header,
body .dash-table-container .column-header-name {
  background-color: #013440 !important;
  color: #C9F9FF !important;
  border-color: rgba(153, 233, 242, .25) !important;
}

body .dash-table-container .dash-filter,
body .dash-table-container .dash-filter > div {
  background-color: #082832 !important;
}

body .dash-table-container .dash-filter input,
body .dash-table-container .dash-filter textarea {
  background-color: #0B3540 !important;
  color: #F8FAFC !important;
  border-color: rgba(153, 233, 242, .32) !important;
}

/* --------------------------------------------------------------------------
   SEMANTIC CELLS: true traffic-light coloring, not text-only labels.
   The JS guard sets these attributes from the visible value and also applies
   inline !important styles as a second line of defense against legacy CSS.
---------------------------------------------------------------------------- */
body .dash-table-container .dash-cell[data-pac-status="rojo"],
body .dash-table-container td[data-pac-status="rojo"],
body .dash-table-container .dash-cell[data-pac-priority="critica"],
body .dash-table-container td[data-pac-priority="critica"],
body .dash-table-container .dash-cell[data-pac-signal="negative"],
body .dash-table-container td[data-pac-signal="negative"] {
  background-color: #86183A !important;
  color: #FFFFFF !important;
  border-left: 5px solid #FF5C89 !important;
  font-weight: 900 !important;
}

body .dash-table-container .dash-cell[data-pac-status="amarillo"],
body .dash-table-container td[data-pac-status="amarillo"],
body .dash-table-container .dash-cell[data-pac-priority="alta"],
body .dash-table-container td[data-pac-priority="alta"],
body .dash-table-container .dash-cell[data-pac-signal="warning"],
body .dash-table-container td[data-pac-signal="warning"] {
  background-color: #805200 !important;
  color: #FFF8DE !important;
  border-left: 5px solid #FBBF24 !important;
  font-weight: 900 !important;
}

body .dash-table-container .dash-cell[data-pac-status="verde"],
body .dash-table-container td[data-pac-status="verde"],
body .dash-table-container .dash-cell[data-pac-signal="positive"],
body .dash-table-container td[data-pac-signal="positive"] {
  background-color: #166534 !important;
  color: #E9FFF1 !important;
  border-left: 5px solid #4ADE80 !important;
  font-weight: 900 !important;
}

body .dash-table-container .dash-cell[data-pac-priority="media"],
body .dash-table-container td[data-pac-priority="media"],
body .dash-table-container .dash-cell[data-pac-signal="stable"],
body .dash-table-container td[data-pac-signal="stable"] {
  background-color: #155065 !important;
  color: #E4FAFF !important;
  border-left: 5px solid #67E8F9 !important;
  font-weight: 900 !important;
}

body .dash-table-container .dash-cell[data-pac-status="sin-meta"],
body .dash-table-container td[data-pac-status="sin-meta"],
body .dash-table-container .dash-cell[data-pac-priority="baja"],
body .dash-table-container td[data-pac-priority="baja"],
body .dash-table-container .dash-cell[data-pac-signal="muted"],
body .dash-table-container td[data-pac-signal="muted"] {
  background-color: #475569 !important;
  color: #F8FAFC !important;
  border-left: 5px solid #94A3B8 !important;
  font-weight: 850 !important;
}

body .dash-table-container tr:hover .dash-cell[data-pac-status],
body .dash-table-container tr:hover td[data-pac-status],
body .dash-table-container tr:hover .dash-cell[data-pac-priority],
body .dash-table-container tr:hover td[data-pac-priority],
body .dash-table-container tr:hover .dash-cell[data-pac-signal],
body .dash-table-container tr:hover td[data-pac-signal] {
  filter: brightness(1.10) !important;
}

/* --------------------------------------------------------------------------
   DETAIL 360: X minimizes and the loaded content remains mounted for instant
   reopening from the lateral tab.
---------------------------------------------------------------------------- */
#detail-panel.detail-panel.active.minimized {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

#detail-panel .v103-modal-close {
  cursor: pointer !important;
}

#detail-panel .v103-modal-close:hover {
  background: rgba(242, 29, 86, .38) !important;
  transform: translateY(-1px);
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v1711_integral_executive_semaphore.css ===== */
/* PAC Business Control Tower v1.7.11
   Integral executive semaphore + reusable scorecard foundation.
*/

.v1711-executive-dimensions {
  display: grid;
  grid-template-columns: repeat(4, minmax(150px, 1fr));
  gap: 10px;
  margin: 14px 0 12px;
}

.v1711-executive-dimension {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas:
    "label status"
    "value status";
  align-items: center;
  min-height: 74px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid rgba(153, 233, 242, .22);
  background: #0A303A;
  color: #F3FCFE;
  box-shadow: inset 4px 0 0 rgba(148, 163, 184, .75);
}

.v1711-executive-dimension > span {
  grid-area: label;
  color: #B8D9DF;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.25;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.v1711-executive-dimension > strong {
  grid-area: value;
  margin-top: 5px;
  color: #FFFFFF;
  font-size: 20px;
  font-weight: 900;
  line-height: 1.1;
}

.v1711-executive-dimension > em {
  grid-area: status;
  align-self: stretch;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 82px;
  margin-left: 12px;
  padding: 7px 9px;
  border-radius: 8px;
  background: #475569;
  color: #FFFFFF;
  font-size: 11px;
  font-style: normal;
  font-weight: 950;
  letter-spacing: .04em;
}

.v1711-executive-dimension.status-red {
  border-color: rgba(242, 29, 86, .80);
  box-shadow: inset 4px 0 0 #F21D56;
}
.v1711-executive-dimension.status-red > em { background: #8A1538; }

.v1711-executive-dimension.status-yellow {
  border-color: rgba(245, 181, 58, .75);
  box-shadow: inset 4px 0 0 #F5B53A;
}
.v1711-executive-dimension.status-yellow > em {
  background: #8A5A00;
  color: #FFF7D6;
}

.v1711-executive-dimension.status-green {
  border-color: rgba(34, 197, 94, .70);
  box-shadow: inset 4px 0 0 #22C55E;
}
.v1711-executive-dimension.status-green > em {
  background: #166534;
  color: #D1FAE5;
}

.v1711-executive-dimension.status-neutral > em { background: #475569; }

/* Reusable foundation for the future Comercial and Rentabilidad executive pages. */
.pac-executive-scorecard {
  display: grid;
  gap: 14px;
}
.pac-executive-scorecard__summary {
  display: grid;
  grid-template-columns: repeat(6, minmax(150px, 1fr));
  gap: 10px;
}
.pac-executive-scorecard__decision-grid {
  display: grid;
  grid-template-columns: minmax(360px, .95fr) minmax(420px, 1.05fr);
  gap: 12px;
}
.pac-executive-scorecard__table {
  background: #082A34;
  border: 1px solid rgba(153, 233, 242, .22);
  border-radius: 12px;
  padding: 14px;
}

@media (max-width: 1250px) {
  .v1711-executive-dimensions { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
  .pac-executive-scorecard__summary { grid-template-columns: repeat(3, minmax(160px, 1fr)); }
  .pac-executive-scorecard__decision-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .v1711-executive-dimensions,
  .pac-executive-scorecard__summary { grid-template-columns: 1fr; }
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v1722_integral_fixes.css ===== */
/* PAC Business Control Tower v1.7.22 | Integral fixes loaded last. */

/* Rentabilidad: React-Select menus must stay above the adjusted finance panel. */
.finance-controls-section,
#finance-controls-section {
  position: relative !important;
  z-index: 12000 !important;
  overflow: visible !important;
  isolation: isolate;
}

.finance-controls-grid,
.finance-controls-grid .delivery-rule-field,
.finance-controls-grid .Select,
.finance-controls-grid .Select-control,
.finance-controls-grid .Select-menu-outer {
  overflow: visible !important;
}

.finance-controls-grid .delivery-rule-field:focus-within,
.finance-controls-grid .Select.is-focused,
.finance-controls-grid .Select.is-open {
  position: relative !important;
  z-index: 12020 !important;
}

.finance-controls-section .Select-menu-outer,
#finance-controls-section .Select-menu-outer {
  z-index: 13000 !important;
  max-height: 320px !important;
  box-shadow: 0 18px 46px rgba(0, 0, 0, .46) !important;
}

#jobcosting-diagnostic,
.finance-page .finance-tab-content,
.finance-page .finance-diagnostic-shell {
  position: relative !important;
  z-index: 1 !important;
}

/* Detalle 360: a new selection opens visibly; the minimized tab remains reusable. */
#detail-panel.detail-panel.active.expanded {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translateX(0) !important;
}

#detail-panel.detail-panel.active.expanded::before,
#detail-panel.detail-panel.active.expanded::after {
  display: none !important;
}

/* Global Grupo filter follows the same responsive sizing as the other filters. */
#f-group,
#f-group .Select-control,
#f-group .Select-value,
#f-group .Select-placeholder {
  min-width: 0 !important;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v1712_executive_clarity.css ===== */
/* PAC Business Control Tower v1.7.12 | Direction clarity and terminology */
.v1712-direction-page .v178-meta-item > span {
  font-size: 11px;
  letter-spacing: .05em;
}

.v1712-direction-page .v178-meta-item > strong {
  font-size: 13px;
  line-height: 1.45;
}

.v1712-direction-page .v178-summary-card > span {
  min-height: 30px;
  font-size: 12px;
  line-height: 1.25;
}

.v1712-direction-page .v178-summary-card > small {
  min-height: 32px;
  font-size: 11.5px;
  line-height: 1.35;
}

.v1712-direction-page .v178-table-panel > p,
.v1712-direction-page .section-header-row p {
  max-width: 1180px;
  font-size: 13px;
  line-height: 1.5;
}

.v1712-direction-page .dash-table-container .dash-header .column-header-name {
  font-size: 12.5px !important;
  line-height: 1.25 !important;
  white-space: normal !important;
}

.v1712-direction-page .dash-table-container .dash-cell {
  font-size: 13px !important;
  line-height: 1.4 !important;
}

.v1712-semaphore-stats {
  grid-template-columns: repeat(4, minmax(140px, 1fr)) !important;
}

.v1712-direction-page .source-pill {
  max-width: 340px;
  white-space: normal;
  text-align: center;
  line-height: 1.35;
}

@media (max-width: 1200px) {
  .v1712-semaphore-stats { grid-template-columns: repeat(2, minmax(150px, 1fr)) !important; }
}

@media (max-width: 700px) {
  .v1712-semaphore-stats { grid-template-columns: 1fr !important; }
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v1713_executive_commercial_finance.css ===== */
/* PAC Business Control Tower v1.7.13
   Mandos ejecutivos sin gráficas: Comercial + Rentabilidad */

.pac-executive-no-charts {
  --exec-bg: #082833;
  --exec-bg-2: #0b3541;
  --exec-line: rgba(153, 233, 242, .22);
  --exec-text: #f3fbfd;
  --exec-muted: #a9c6ce;
}

.pac-executive-no-charts .executive-decision-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 14px 0;
}

.pac-executive-no-charts .executive-decision-card,
.pac-executive-no-charts .executive-status-card {
  background: linear-gradient(145deg, rgba(8, 40, 51, .98), rgba(7, 31, 41, .98));
  border: 1px solid var(--exec-line);
  border-radius: 16px;
  padding: 16px;
  min-height: 132px;
  box-shadow: 0 10px 26px rgba(0, 0, 0, .18);
}

.pac-executive-no-charts .executive-decision-card.wide {
  grid-column: 1 / -1;
  margin: 14px 0;
}

.pac-executive-no-charts .executive-decision-card h3,
.pac-executive-no-charts .finance-tab-panel h3 {
  color: var(--exec-text) !important;
  font-size: 17px !important;
  line-height: 1.25 !important;
  margin: 0 0 9px !important;
}

.pac-executive-no-charts .executive-decision-card p,
.pac-executive-no-charts .executive-decision-card li,
.pac-executive-no-charts .finance-tab-panel p {
  color: var(--exec-muted) !important;
  font-size: 13px !important;
  line-height: 1.55 !important;
}

.executive-status-card {
  position: relative;
  overflow: hidden;
}

.executive-status-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 6px;
  background: #64748b;
}

.executive-status-card.red::before { background: #f21d56; }
.executive-status-card.amber::before { background: #f59e0b; }
.executive-status-card.green::before { background: #22c55e; }
.executive-status-card.neutral::before { background: #99e9f2; }

.executive-status-label {
  color: #99e9f2;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.executive-status-value {
  color: #fff;
  font-size: 30px;
  line-height: 1;
  font-weight: 950;
  margin: 10px 0;
}

.executive-status-card.red .executive-status-value { color: #ff7599; }
.executive-status-card.amber .executive-status-value { color: #ffd166; }
.executive-status-card.green .executive-status-value { color: #73f59b; }
.executive-status-card.neutral .executive-status-value { color: #bdf7ff; }

.executive-status-reason {
  color: #d8edf2;
  font-size: 13px;
  line-height: 1.45;
  font-weight: 700;
}

.executive-mini-metrics {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  gap: 10px;
  margin: 10px 0;
}

.executive-mini-metric {
  background: rgba(13, 56, 68, .82);
  border: 1px solid rgba(153, 233, 242, .16);
  border-radius: 12px;
  padding: 11px 12px;
  min-height: 84px;
}

.executive-mini-metric span,
.executive-mini-metric small {
  display: block;
  color: #a9c6ce;
  font-size: 11px;
  line-height: 1.3;
}

.executive-mini-metric strong {
  display: block;
  color: #fff;
  font-size: 18px;
  line-height: 1.2;
  margin: 5px 0;
  overflow-wrap: anywhere;
}

.executive-action-callout {
  margin-top: 10px;
  padding: 10px 12px;
  border-left: 4px solid #99e9f2;
  background: rgba(153, 233, 242, .08);
  border-radius: 8px;
  color: #e9fbff;
  font-size: 13px;
  line-height: 1.45;
  font-weight: 700;
}

.executive-empty-state {
  padding: 18px;
  border: 1px dashed rgba(153, 233, 242, .25);
  border-radius: 12px;
  color: #a9c6ce;
  text-align: center;
}

/* Tablas ejecutivas: sin zebra blanca ni fondos translúcidos ilegibles */
.pac-executive-no-charts .dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td,
.pac-executive-no-charts .dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner tr:nth-child(even) td,
.pac-executive-no-charts .dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner tr:nth-child(odd) td {
  background: #082833 !important;
  color: #f1fafc !important;
}

.pac-executive-no-charts .dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner th {
  background: #063440 !important;
  color: #bdf7ff !important;
  font-size: 13px !important;
  line-height: 1.3 !important;
  white-space: normal !important;
  height: auto !important;
}

.pac-executive-no-charts .dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner td {
  font-size: 13px !important;
  line-height: 1.42 !important;
  min-height: 42px !important;
}

.pac-executive-no-charts .dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner tr:hover td {
  background: #104451 !important;
  color: #ffffff !important;
}

.pac-executive-no-charts .dash-table-container input {
  background: #0b3a46 !important;
  color: #f8fafc !important;
  border: 1px solid rgba(153, 233, 242, .22) !important;
}

/* Las reglas semánticas inline de Dash deben seguir ganando. */
.pac-executive-no-charts td[style*="background-color: rgb(159, 18, 57)"],
.pac-executive-no-charts td[style*="background-color: #9F1239"] {
  background: #9f1239 !important;
  color: #fff !important;
}

.pac-executive-no-charts td[style*="background-color: rgb(154, 103, 0)"],
.pac-executive-no-charts td[style*="background-color: #9A6700"] {
  background: #9a6700 !important;
  color: #fff !important;
}

.pac-executive-no-charts td[style*="background-color: rgb(22, 101, 52)"],
.pac-executive-no-charts td[style*="background-color: #166534"] {
  background: #166534 !important;
  color: #fff !important;
}

@media (max-width: 1100px) {
  .pac-executive-no-charts .executive-decision-grid {
    grid-template-columns: 1fr;
  }
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v1714_global_integer_display.css ===== */
/* PAC Business Control Tower v1.7.14 | Whole-number display policy */
html[data-pac-integer-display="v1.7.14"] .dash-table-container td,
html[data-pac-integer-display="v1.7.14"] .dash-table-container th,
html[data-pac-integer-display="v1.7.14"] .kpi-value,
html[data-pac-integer-display="v1.7.14"] .value,
html[data-pac-integer-display="v1.7.14"] .executive-score-value,
html[data-pac-integer-display="v1.7.14"] .direction-kpi-value {
  font-variant-numeric: tabular-nums;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v1715_unified_executive_design.css ===== */
/* PAC Business Control Tower v1.7.15
   Unified Executive Design: one visual system, no visible charts, semantic tables. */

:root {
  --pac-bg: #041f28;
  --pac-bg-soft: #072b35;
  --pac-surface: #0a323d;
  --pac-surface-2: #0d3b47;
  --pac-surface-3: #124753;
  --pac-border: rgba(153, 233, 242, 0.28);
  --pac-border-strong: rgba(153, 233, 242, 0.55);
  --pac-text: #f8fafc;
  --pac-text-2: #dbe7eb;
  --pac-muted: #9fb8c1;
  --pac-cyan: #99e9f2;
  --pac-green: #1f7a43;
  --pac-green-2: #35d071;
  --pac-amber: #a96f00;
  --pac-amber-2: #ffb01f;
  --pac-red: #9e1746;
  --pac-red-2: #f21d56;
  --pac-blue: #1d667e;
  --pac-gray: #526273;
  --pac-radius: 14px;
  --pac-shadow: 0 12px 28px rgba(0, 0, 0, 0.18);
}

html, body, #react-entry-point, #_dash-app-content {
  background: var(--pac-bg) !important;
  color: var(--pac-text) !important;
}

/* ---------- One page shell ---------- */
.page-shell,
.page-content-shell,
.content-shell,
.main-content,
.dashboard-content,
.finance-pro,
.v173-commercial-page,
.ops57-shell,
.process-page,
.admin-page,
.ams-automation-center {
  background: transparent !important;
  color: var(--pac-text) !important;
}

.card,
.jc-panel,
.finance-tab-panel,
.ops57-card,
.pac-executive-scorecard,
.executive-decision-card,
.v178-panel,
.v178-card,
.v178-section,
[class*="-panel"],
[class*="-card"] {
  border-color: var(--pac-border) !important;
}

.card,
.jc-panel,
.finance-tab-panel,
.ops57-card,
.executive-decision-card,
.pac-executive-scorecard,
.v178-panel,
.v178-card,
.v178-section {
  background: var(--pac-surface) !important;
  color: var(--pac-text) !important;
  border: 1px solid var(--pac-border) !important;
  border-radius: var(--pac-radius) !important;
  box-shadow: var(--pac-shadow) !important;
}

h1, h2, h3, h4, h5, h6,
.card h1, .card h2, .card h3,
.page-shell h1, .page-shell h2, .page-shell h3 {
  color: var(--pac-text) !important;
  letter-spacing: -0.015em;
}

p, .help-text, .muted, .subtitle, .section-description,
.card p, .page-shell p {
  color: var(--pac-muted) !important;
}

.section-eyebrow,
[class*="eyebrow"],
[class*="kicker"] {
  color: var(--pac-cyan) !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

/* ---------- Unified filter bar ---------- */
.global-filters,
.filters-shell,
.filter-panel,
.filter-card,
.filters-container,
[class*="filter-shell"],
[class*="filters-shell"] {
  background: var(--pac-bg-soft) !important;
  border: 1px solid var(--pac-border) !important;
  border-radius: var(--pac-radius) !important;
  box-shadow: none !important;
}

.Select-control,
.Select--single > .Select-control,
.Select--multi .Select-control,
.dash-dropdown .Select-control,
.dash-dropdown,
input[type="text"],
input[type="search"],
input[type="number"],
textarea,
.DateInput_input,
button[role="combobox"],
[role="combobox"] {
  background: var(--pac-surface-2) !important;
  color: var(--pac-text) !important;
  border: 1px solid var(--pac-border-strong) !important;
  border-radius: 10px !important;
  box-shadow: none !important;
}

.Select-placeholder,
.Select-value-label,
.Select-input > input,
.Select--single > .Select-control .Select-value,
.Select--single > .Select-control .Select-value-label,
.dash-dropdown .Select-placeholder,
.dash-dropdown .Select-value-label,
input::placeholder,
textarea::placeholder {
  color: var(--pac-text-2) !important;
  opacity: 1 !important;
}

.Select--multi .Select-value {
  background: rgba(153, 233, 242, 0.14) !important;
  border: 1px solid rgba(153, 233, 242, 0.48) !important;
  border-radius: 999px !important;
  color: var(--pac-text) !important;
}

.Select--multi .Select-value-label,
.Select--multi .Select-value-icon {
  color: var(--pac-text) !important;
}

.Select-menu-outer,
.Select-menu,
.VirtualizedSelectOption,
.VirtualizedSelectFocusedOption,
.dash-dropdown .Select-menu-outer {
  background: var(--pac-surface-2) !important;
  color: var(--pac-text) !important;
  border-color: var(--pac-border-strong) !important;
}

.VirtualizedSelectFocusedOption,
.VirtualizedSelectOption:hover,
.Select-option.is-focused,
.Select-option:hover {
  background: var(--pac-surface-3) !important;
  color: var(--pac-text) !important;
}

.Select-option.is-selected {
  background: rgba(153, 233, 242, 0.18) !important;
  color: var(--pac-text) !important;
}

.filter-label,
.filters-shell label,
.filter-panel label,
label {
  color: var(--pac-text-2) !important;
  font-weight: 750 !important;
}

/* ---------- Buttons and tabs ---------- */
button,
.button,
.btn,
.tab,
.custom-tab,
[role="tab"] {
  border-radius: 10px !important;
  border: 1px solid var(--pac-border) !important;
  background: var(--pac-surface-2) !important;
  color: var(--pac-text) !important;
  font-weight: 750 !important;
  box-shadow: none !important;
}

button:hover,
.button:hover,
.btn:hover,
.tab:hover,
.custom-tab:hover,
[role="tab"]:hover,
[aria-selected="true"] {
  background: var(--pac-surface-3) !important;
  border-color: var(--pac-cyan) !important;
  color: var(--pac-text) !important;
}

/* ---------- Unified KPI cards ---------- */
.kpi-card,
.metric-card,
.summary-card,
.executive-kpi,
[class*="kpi-card"],
[class*="metric-card"] {
  background: var(--pac-surface) !important;
  color: var(--pac-text) !important;
  border: 1px solid var(--pac-border) !important;
  border-radius: var(--pac-radius) !important;
  box-shadow: none !important;
}

.kpi-card *,
.metric-card *,
.summary-card *,
.executive-kpi * {
  color: inherit;
}

.kpi-value,
.metric-value,
[class*="kpi-value"],
[class*="metric-value"] {
  color: var(--pac-text) !important;
  font-weight: 850 !important;
}

/* PAC HF6B-B1 | Graph visibility recovery.
   The old rule collapsed ALL Plotly graphs in the application to 1px/opacity:0.
   Graph visibility is restored globally. Terrestre remains chart-free by product design. */
.hf6a-terrestrial-page .dash-graph,
.hf6a-terrestrial-page .js-plotly-plot,
.hf6a-terrestrial-page .plot-container,
.hf6a-terrestrial-page .svg-container {
  display: none !important;
}

/* ---------- Figure-to-table executive replacement ---------- */
.pac-chartless-panel {
  background: var(--pac-surface) !important;
  color: var(--pac-text) !important;
  border: 1px solid var(--pac-border) !important;
  border-radius: 12px !important;
  padding: 14px !important;
  margin-top: 10px !important;
  min-width: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.pac-chartless-panel__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 12px;
}

.pac-chartless-panel__title {
  color: var(--pac-text) !important;
  font-size: 15px !important;
  font-weight: 850 !important;
}

.pac-chartless-panel__note {
  color: var(--pac-muted) !important;
  font-size: 12px !important;
  margin-top: 4px;
}

.pac-chartless-panel__summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(120px, 1fr));
  gap: 8px;
  margin-bottom: 12px;
}

.pac-chartless-summary-card {
  background: var(--pac-bg-soft) !important;
  border: 1px solid var(--pac-border) !important;
  border-radius: 10px !important;
  padding: 10px 12px !important;
}

.pac-chartless-summary-card__label {
  color: var(--pac-muted) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.pac-chartless-summary-card__value {
  color: var(--pac-text) !important;
  font-size: 18px !important;
  font-weight: 850 !important;
  margin-top: 4px;
}

.pac-chartless-table-wrap {
  overflow: auto;
  max-height: 460px;
  border: 1px solid var(--pac-border) !important;
  border-radius: 10px;
}

.pac-chartless-table {
  width: 100%;
  border-collapse: collapse;
  background: var(--pac-surface) !important;
  color: var(--pac-text) !important;
  font-size: 13px;
}

.pac-chartless-table th {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--pac-bg-soft) !important;
  color: var(--pac-cyan) !important;
  font-size: 11px !important;
  letter-spacing: .04em;
  text-transform: uppercase;
  text-align: left;
  padding: 10px 12px;
  border-bottom: 1px solid var(--pac-border-strong);
}

.pac-chartless-table td {
  background: var(--pac-surface) !important;
  color: var(--pac-text) !important;
  padding: 10px 12px;
  border-bottom: 1px solid rgba(153, 233, 242, .14);
  vertical-align: middle;
}

.pac-chartless-table tr:hover td {
  background: var(--pac-surface-3) !important;
  cursor: pointer;
}

.pac-chartless-empty {
  color: var(--pac-muted) !important;
  padding: 18px;
  text-align: center;
}

/* ---------- One table design everywhere ---------- */
.dash-table-container,
.dash-spreadsheet-container,
.dash-spreadsheet-inner,
.dash-table-container .dash-spreadsheet-container {
  background: var(--pac-surface) !important;
  color: var(--pac-text) !important;
  border-color: var(--pac-border) !important;
}

.dash-table-container .dash-spreadsheet-container .dash-spreadsheet-inner table,
.dash-table-container table {
  background: var(--pac-surface) !important;
  color: var(--pac-text) !important;
}

.dash-table-container .dash-header,
.dash-table-container .column-header-name,
.dash-table-container th,
.dash-spreadsheet-inner th {
  background: var(--pac-bg-soft) !important;
  color: var(--pac-cyan) !important;
  border-color: var(--pac-border) !important;
  font-weight: 850 !important;
}

.dash-table-container .dash-cell,
.dash-table-container td,
.dash-spreadsheet-inner td,
.dash-table-container tr:nth-child(even) td,
.dash-table-container tr:nth-child(odd) td {
  background: var(--pac-surface) !important;
  color: var(--pac-text) !important;
  border-color: rgba(153, 233, 242, .16) !important;
}

.dash-table-container .dash-cell.focused,
.dash-table-container .dash-cell.cell--selected,
.dash-table-container td:hover,
.dash-table-container tr:hover td {
  background: var(--pac-surface-3) !important;
  color: var(--pac-text) !important;
}

.dash-table-container input,
.dash-table-container .dash-filter input {
  background: var(--pac-bg-soft) !important;
  color: var(--pac-text) !important;
  border: 1px solid var(--pac-border) !important;
}

/* ---------- Semantic semaphore language ---------- */
.pac-semantic,
[data-pac-status] {
  color: #fff !important;
  font-weight: 850 !important;
  border-left: 4px solid transparent !important;
}

[data-pac-status="green"] {
  background: var(--pac-green) !important;
  border-left-color: var(--pac-green-2) !important;
}

[data-pac-status="amber"] {
  background: var(--pac-amber) !important;
  border-left-color: var(--pac-amber-2) !important;
}

[data-pac-status="red"] {
  background: var(--pac-red) !important;
  border-left-color: var(--pac-red-2) !important;
}

[data-pac-status="blue"] {
  background: var(--pac-blue) !important;
  border-left-color: var(--pac-cyan) !important;
}

[data-pac-status="gray"] {
  background: var(--pac-gray) !important;
  border-left-color: #94a3b8 !important;
}

.pac-status-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 76px;
  padding: 5px 9px;
  border-radius: 999px;
  color: #fff !important;
  font-weight: 850 !important;
  font-size: 11px;
  text-transform: uppercase;
}

.pac-status-pill[data-pac-status="green"] { background: var(--pac-green) !important; }
.pac-status-pill[data-pac-status="amber"] { background: var(--pac-amber) !important; }
.pac-status-pill[data-pac-status="red"] { background: var(--pac-red) !important; }
.pac-status-pill[data-pac-status="blue"] { background: var(--pac-blue) !important; }
.pac-status-pill[data-pac-status="gray"] { background: var(--pac-gray) !important; }

/* ---------- Loading feedback, same pattern ---------- */
._dash-loading,
.dash-spinner,
[class*="loading"] {
  color: var(--pac-cyan) !important;
}

.pac-unified-loading::after {
  content: "Procesando información…";
  display: inline-flex;
  margin: 8px 0;
  padding: 8px 12px;
  border-radius: 999px;
  background: var(--pac-bg-soft);
  border: 1px solid var(--pac-border);
  color: var(--pac-cyan);
  font-weight: 800;
}

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
  .pac-chartless-panel__summary { grid-template-columns: repeat(2, minmax(120px, 1fr)); }
}

@media (max-width: 720px) {
  .pac-chartless-panel__summary { grid-template-columns: 1fr; }
  .pac-chartless-panel__head { flex-direction: column; }
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v1716_global_loading_feedback.css ===== */
/* PAC Business Control Tower v1.7.16 | Global loading feedback
   Fixed viewport overlay. It does not wrap KPI/content grids and therefore cannot
   move panels or reproduce the v1.7.6 layout regression. */
:root {
  --pac-load-bg: rgba(2, 22, 29, .86);
  --pac-load-card: #082833;
  --pac-load-card-2: #0b3440;
  --pac-load-border: rgba(153, 233, 242, .46);
  --pac-load-text: #f8fafc;
  --pac-load-muted: #b7cbd2;
  --pac-load-cyan: #99e9f2;
  --pac-load-magenta: #f21d56;
}

/* Dash initial hydration, before the application layout is mounted. */
._dash-loading {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-direction: column !important;
  gap: 24px !important;
  background:
    radial-gradient(circle at 50% 42%, rgba(153,233,242,.12), transparent 32%),
    #02161d !important;
  color: transparent !important;
  font-size: 0 !important;
  pointer-events: all !important;
}
._dash-loading::before {
  content: "Preparando PAC Business Control Tower" !important;
  color: var(--pac-load-text) !important;
  font-family: "Segoe UI", Arial, sans-serif !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  letter-spacing: .02em !important;
}
._dash-loading::after {
  content: "" !important;
  width: 54px !important;
  height: 54px !important;
  border-radius: 50% !important;
  border: 5px solid rgba(153,233,242,.18) !important;
  border-top-color: var(--pac-load-cyan) !important;
  border-right-color: var(--pac-load-magenta) !important;
  animation: pac1716Spin .85s linear infinite !important;
  box-shadow: 0 0 28px rgba(153,233,242,.20) !important;
}

.pac-global-loading-overlay {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147482990 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px !important;
  background: var(--pac-load-bg) !important;
  -webkit-backdrop-filter: blur(5px) saturate(.9) !important;
  backdrop-filter: blur(5px) saturate(.9) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity .18s ease, visibility .18s ease !important;
}
.pac-global-loading-overlay.is-visible {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: all !important;
}
body.pac-system-is-loading {
  overflow: hidden !important;
  cursor: progress !important;
}
body.pac-system-is-loading #app-shell {
  user-select: none !important;
}

.pac-global-loading-card {
  width: min(520px, calc(100vw - 36px)) !important;
  min-height: 330px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 13px !important;
  padding: 30px 34px !important;
  border-radius: 22px !important;
  border: 1px solid var(--pac-load-border) !important;
  background:
    linear-gradient(145deg, rgba(153,233,242,.07), transparent 42%),
    linear-gradient(180deg, var(--pac-load-card-2), var(--pac-load-card)) !important;
  box-shadow: 0 30px 90px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06) !important;
  color: var(--pac-load-text) !important;
  text-align: center !important;
}
.pac-global-loading-brand {
  align-self: stretch !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  margin-bottom: 4px !important;
}
.pac-global-loading-logo {
  width: 48px !important;
  height: 48px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 50% !important;
  border: 1px solid rgba(153,233,242,.58) !important;
  background: #013440 !important;
  color: var(--pac-load-cyan) !important;
  font-size: 13px !important;
  font-weight: 950 !important;
  letter-spacing: .05em !important;
  box-shadow: 0 0 24px rgba(153,233,242,.15) !important;
}
.pac-global-loading-product {
  color: var(--pac-load-text) !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  text-align: left !important;
}
.pac-global-loading-kicker {
  color: var(--pac-load-cyan) !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  text-align: left !important;
}

.pac-global-loading-spinner {
  position: relative !important;
  width: 76px !important;
  height: 76px !important;
  margin: 8px 0 4px !important;
}
.pac-global-loading-spinner::before {
  content: "" !important;
  position: absolute !important;
  inset: 4px !important;
  border-radius: 50% !important;
  border: 5px solid rgba(153,233,242,.16) !important;
  border-top-color: var(--pac-load-cyan) !important;
  border-right-color: var(--pac-load-magenta) !important;
  animation: pac1716Spin .85s linear infinite !important;
  box-shadow: 0 0 30px rgba(153,233,242,.16) !important;
}
.pac-global-loading-spinner span {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 7px !important;
  height: 7px !important;
  margin: -3.5px !important;
  border-radius: 50% !important;
  background: var(--pac-load-cyan) !important;
  animation: pac1716Pulse 1.25s ease-in-out infinite !important;
}
.pac-global-loading-spinner span:nth-child(2) { transform: translateX(-16px); animation-delay: .13s !important; }
.pac-global-loading-spinner span:nth-child(3) { transform: translateX(16px); animation-delay: .26s !important; }

#pac-global-loading-title {
  margin: 2px 0 0 !important;
  color: var(--pac-load-text) !important;
  font-size: 22px !important;
  line-height: 1.2 !important;
  font-weight: 950 !important;
}
#pac-global-loading-message {
  min-height: 42px !important;
  margin: 0 !important;
  max-width: 440px !important;
  color: var(--pac-load-muted) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  font-weight: 650 !important;
}
.pac-global-loading-progress {
  width: 100% !important;
  height: 7px !important;
  overflow: hidden !important;
  margin-top: 6px !important;
  border-radius: 999px !important;
  background: rgba(153,233,242,.11) !important;
  border: 1px solid rgba(153,233,242,.16) !important;
}
.pac-global-loading-progress-bar {
  width: 38% !important;
  height: 100% !important;
  border-radius: inherit !important;
  background: linear-gradient(90deg, transparent, var(--pac-load-cyan), var(--pac-load-magenta), transparent) !important;
  animation: pac1716Progress 1.25s ease-in-out infinite !important;
}
.pac-global-loading-hint {
  min-height: 18px !important;
  color: #8fb0ba !important;
  font-size: 11px !important;
  font-weight: 700 !important;
}

/* Components can still expose their local busy state without dimming or relocating the page. */
[data-dash-is-loading="true"] {
  cursor: progress !important;
}
.pac-page-panel.is-active [data-dash-is-loading="true"]:not(#pac-global-loading-overlay) {
  outline: 1px solid rgba(153,233,242,.12) !important;
  outline-offset: 2px !important;
}

@keyframes pac1716Spin { to { transform: rotate(360deg); } }
@keyframes pac1716Pulse {
  0%, 100% { opacity: .24; transform: translateX(0) scale(.7); }
  50% { opacity: 1; transform: translateX(0) scale(1.15); }
}
@keyframes pac1716Progress {
  0% { transform: translateX(-115%); }
  100% { transform: translateX(285%); }
}

@media (max-width: 620px) {
  .pac-global-loading-card { padding: 26px 20px !important; min-height: 310px !important; }
  #pac-global-loading-title { font-size: 19px !important; }
  #pac-global-loading-message { font-size: 13px !important; }
}
@media (prefers-reduced-motion: reduce) {
  .pac-global-loading-overlay { transition: none !important; }
  .pac-global-loading-spinner::before,
  ._dash-loading::after { animation-duration: 1.8s !important; }
  .pac-global-loading-progress-bar { animation-duration: 2.4s !important; }
}

/* v1.7.18 | Manual fail-safe dismissal. Hidden initially and enabled after 2.5 s. */
.pac-global-loading-dismiss {
  display: none !important;
  margin-top: 4px !important;
  padding: 8px 14px !important;
  border: 1px solid rgba(153,233,242,.38) !important;
  border-radius: 10px !important;
  background: rgba(1,52,64,.82) !important;
  color: #d9f7fa !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  cursor: pointer !important;
}
.pac-global-loading-dismiss.is-ready {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
.pac-global-loading-dismiss:hover,
.pac-global-loading-dismiss:focus-visible {
  background: rgba(153,233,242,.16) !important;
  border-color: #99e9f2 !important;
  outline: none !important;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v1719_performance_visual_restore.css ===== */
/* PAC Business Control Tower v1.7.19
   Performance recovery + KPI visual rollback.
   - No blocking global overlay.
   - KPI cards keep the established dark-card design.
   - Semantic state is shown with a left edge, never by painting the entire card. */

#pac-global-loading-overlay,
.pac-global-loading-overlay,
.pac-global-loading-overlay.is-visible {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body.pac-system-is-loading {
  overflow: auto !important;
  cursor: default !important;
}

/* Restore the compact KPI design used before the global semantic repaint. */
.kpi-card,
.metric-card,
.summary-card,
.executive-kpi,
[class*="kpi-card"],
[class*="metric-card"] {
  background: linear-gradient(145deg, rgba(11,43,52,.98), rgba(7,30,38,.98)) !important;
  color: #F8FAFC !important;
  border: 1px solid rgba(153,233,242,.20) !important;
  border-radius: 16px !important;
  box-shadow: 0 12px 28px rgba(0,0,0,.26), inset 0 1px 0 rgba(153,233,242,.04) !important;
}

/* The empty icon row was being rendered as a pill. It was never a requested KPI element. */
.kpi-card-top,
.kpi-icon.ghost,
.kpi-pulse-placeholder {
  display: none !important;
}

.kpi-card[data-pac-status],
.metric-card[data-pac-status],
.summary-card[data-pac-status],
.executive-kpi[data-pac-status] {
  background: linear-gradient(145deg, rgba(11,43,52,.98), rgba(7,30,38,.98)) !important;
  color: #F8FAFC !important;
  border-left-width: 4px !important;
  border-left-style: solid !important;
}
.kpi-card[data-pac-status="red"],
.metric-card[data-pac-status="red"],
.kpi-card.danger,
.metric-card.danger {
  border-left-color: #F21D56 !important;
}
.kpi-card[data-pac-status="amber"],
.metric-card[data-pac-status="amber"],
.kpi-card.warning,
.kpi-card.warn,
.metric-card.warning {
  border-left-color: #F59E0B !important;
}
.kpi-card[data-pac-status="green"],
.metric-card[data-pac-status="green"],
.kpi-card.ok,
.metric-card.ok {
  border-left-color: #22C55E !important;
}
.kpi-card[data-pac-status="blue"],
.metric-card[data-pac-status="blue"] {
  border-left-color: #99E9F2 !important;
}

/* PAC HF6B-B1 | Do not force KPI labels to cyan globally. */
.kpi-card .kpi-label,
.metric-card .metric-label,
.kpi-card [class*="label"],
.metric-card [class*="label"] {
  color: var(--pac-muted, #667085) !important;
}
/* PAC HF6B-B1 | Do not force KPI values to white globally.
   Light workspaces use the shared PAC text token. */
.kpi-card .kpi-value,
.metric-card .metric-value,
.kpi-card [class*="value"],
.metric-card [class*="value"],
.kpi-card strong,
.metric-card strong {
  color: var(--pac-text, #101828) !important;
}
.kpi-card .kpi-note,
.metric-card .metric-note,
.kpi-card [class*="note"],
.metric-card [class*="note"] {
  color: #CBD5E1 !important;
}

/* Busy components keep a local cursor only; no page-wide dimming or repaint. */
[data-dash-is-loading="true"] {
  cursor: progress !important;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v1721_gp_rbac.css ===== */
/* PAC Business Control Tower v1.7.21 | GP role-based visibility */
.pac-gp-restricted-notice {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 8px 0 14px;
  padding: 11px 14px;
  border: 1px solid rgba(153, 233, 242, .28);
  border-left: 4px solid #99E9F2;
  border-radius: 12px;
  background: rgba(1, 52, 64, .72);
  color: #EAFBFF;
  font-size: 12px;
  line-height: 1.45;
}

.pac-gp-restricted-notice strong {
  flex: 0 0 auto;
  color: #99E9F2;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.pac-gp-card-redacted,
[data-pac-gp-redacted="true"] {
  display: none !important;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v1724_semantic_multiuser.css ===== */
/* PAC Business Control Tower v1.7.24
   Final semantic table layer + readable Direction headers. */

.dash-table-container .dash-cell.pac-semantic-v1724,
.dash-table-container td.pac-semantic-v1724,
.dash-table-container .dash-cell[data-pac-status="red"],
.dash-table-container .dash-cell[data-pac-status="amber"],
.dash-table-container .dash-cell[data-pac-status="green"],
.dash-table-container .dash-cell[data-pac-status="blue"],
.dash-table-container .dash-cell[data-pac-status="gray"] {
  text-align: center !important;
  font-weight: 900 !important;
}

/* Direction client projection: no compressed headers. The table scrolls instead. */
#direction-client-projection-table .dash-spreadsheet-inner table {
  min-width: 2920px !important;
  table-layout: fixed !important;
}
#direction-client-projection-table .dash-header,
#direction-client-projection-table th,
#direction-client-projection-table .column-header-name {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  line-height: 1.25 !important;
  min-height: 66px !important;
  height: auto !important;
  vertical-align: top !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
}
#direction-client-projection-table .dash-filter input {
  min-width: 72px !important;
  height: 30px !important;
}
#direction-client-projection-table .dash-cell[data-dash-column="Cliente"] {
  font-weight: 800 !important;
}
#direction-client-projection-table .dash-cell[data-dash-column*="%"] {
  text-align: center !important;
  font-variant-numeric: tabular-nums;
}

/* Generic percentage columns: consistent alignment in the whole app. */
.dash-table-container .dash-cell[data-dash-column*="%"],
.dash-table-container .dash-header[data-dash-column*="%"] {
  text-align: center !important;
  font-variant-numeric: tabular-nums;
}

/* Horizontal scrollbars remain visible and usable on executive tables. */
.v178-table-panel .dash-spreadsheet-container,
.v178-table-panel .dash-spreadsheet-inner {
  scrollbar-color: rgba(153,233,242,.55) rgba(7,31,40,.85);
  scrollbar-width: auto;
}

/* ===== Consolidated from zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz_v1723_live_detail360.css ===== */
/* PAC Business Control Tower v1.7.23 | final live-sync + Detalle 360 guard */
.detail360-launcher {
  position: fixed !important;
  right: 0 !important;
  top: 42% !important;
  z-index: 59990 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 154px !important;
  padding: 15px 9px !important;
  writing-mode: vertical-rl !important;
  text-orientation: mixed !important;
  border: 1px solid rgba(153,233,242,.72) !important;
  border-right: 0 !important;
  border-radius: 16px 0 0 16px !important;
  background: linear-gradient(180deg, rgba(1,52,64,.99), rgba(55,42,64,.98)) !important;
  color: #99E9F2 !important;
  box-shadow: -12px 12px 30px rgba(0,0,0,.48) !important;
  font-size: 11px !important;
  font-weight: 900 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  pointer-events: auto !important;
}
.detail360-launcher:hover,
.detail360-launcher:focus-visible {
  color: #fff !important;
  border-color: #fff !important;
  transform: translateX(-2px) !important;
}
#detail-panel.detail-panel {
  position: fixed !important;
  top: 88px !important;
  right: 0 !important;
  z-index: 60000 !important;
}
#detail-panel.detail-panel.active.expanded,
#detail-panel.detail-panel.active:not(.minimized) {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  transform: translateX(0) !important;
  width: min(820px, 52vw) !important;
  min-width: 560px !important;
  max-width: 880px !important;
  max-height: calc(100vh - 110px) !important;
  overflow: auto !important;
  padding: 16px !important;
  background: linear-gradient(140deg, rgba(1,52,64,.995), rgba(11,26,43,.995)) !important;
  border: 1px solid rgba(153,233,242,.55) !important;
  border-right: 0 !important;
  border-radius: 22px 0 0 22px !important;
  box-shadow: -28px 0 58px rgba(0,0,0,.58) !important;
}
#detail-panel.detail-panel.active.expanded::before,
#detail-panel.detail-panel.active.expanded::after {
  display: none !important;
}
#detail-panel .v103-modal-close {
  display: inline-flex !important;
  pointer-events: auto !important;
}
.v1723-detail-empty {
  min-height: 250px;
}
#direction-data-cutoff strong {
  display: block;
  line-height: 1.55;
}
@media (max-width: 1100px) {
  #detail-panel.detail-panel.active.expanded,
  #detail-panel.detail-panel.active:not(.minimized) {
    top: 76px !important;
    width: 96vw !important;
    min-width: 0 !important;
    max-width: 96vw !important;
    max-height: calc(100vh - 88px) !important;
  }
}


/* ===== PAC v1.7.25 final semantic and readability layer ===== */
#direction-client-projection-table .dash-spreadsheet-inner table {
  min-width: 3000px !important;
  table-layout: fixed !important;
}
#direction-client-projection-table .dash-header,
#direction-client-projection-table th,
#direction-client-projection-table .column-header-name {
  white-space: normal !important;
  overflow: visible !important;
  text-overflow: clip !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  line-height: 1.25 !important;
  min-height: 72px !important;
  height: auto !important;
  vertical-align: top !important;
}
.dash-table-container .dash-cell[data-pac-status] {
  text-align: center !important;
  font-weight: 900 !important;
  background-clip: padding-box !important;
}
.dash-table-container .dash-cell[data-dash-column*="%"],
.dash-table-container .dash-header[data-dash-column*="%"] {
  text-align: center !important;
  font-variant-numeric: tabular-nums !important;
}

/* ===== PAC v1.7.26 Legacy History + SCOPE Alerts ===== */
.legacy-history-page,
.scope-alerts-history-page {
  width: 100%;
  min-width: 0;
}
.legacy-source-badge,
.scope-alerts-page-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.legacy-source-badge {
  padding: 10px 14px;
  border: 1px solid rgba(153,233,242,.24);
  border-radius: 14px;
  background: rgba(1,52,64,.58);
}
.legacy-source-badge span { color: rgba(234,251,255,.70); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.legacy-source-badge strong { color: #99E9F2; }
.legacy-notice {
  margin: 10px 0 16px;
  padding: 12px 14px;
  border-left: 4px solid #99E9F2;
  border-radius: 12px;
  background: rgba(1,52,64,.42);
  color: #EAFBFF;
}
.legacy-filter-grid,
.scope-alerts-filter-grid {
  position: relative;
  z-index: 20;
  display: grid;
  grid-template-columns: repeat(6, minmax(170px, 1fr));
  gap: 12px;
  margin-bottom: 16px;
  overflow: visible;
}
.legacy-filter-grid .Select-menu-outer,
.scope-alerts-filter-grid .Select-menu-outer { z-index: 90000 !important; }
.legacy-table-card,
.scope-alerts-table-card { overflow: visible !important; }
#legacy-history-table,
#scope-alerts-history-table { width: 100%; }
#legacy-history-table .dash-spreadsheet-inner table,
#scope-alerts-history-table .dash-spreadsheet-inner table {
  table-layout: fixed !important;
}
#legacy-history-table .dash-header,
#scope-alerts-history-table .dash-header {
  min-height: 56px !important;
  white-space: normal !important;
  line-height: 1.25 !important;
}
.detail-alert-history { border-color: rgba(242,29,86,.30) !important; }
.detail-legacy-source { border-color: rgba(153,233,242,.30) !important; }
@media (max-width: 1400px) {
  .legacy-filter-grid,
  .scope-alerts-filter-grid { grid-template-columns: repeat(3, minmax(180px, 1fr)); }
}
@media (max-width: 850px) {
  .legacy-filter-grid,
  .scope-alerts-filter-grid { grid-template-columns: 1fr; }
  .legacy-source-badge,
  .scope-alerts-page-actions { width: 100%; justify-content: flex-start; }
  #legacy-history-table,
  #scope-alerts-history-table { min-width: 1700px; }
}


/* ===== PAC v1.7.26.3 Direction table stability + browser performance ===== */
/* Dash fixed_columns creates a second 3,000 px table. It covered the real data
   cells and multiplied DOM/layout work. The table now uses one DOM tree only. */
#direction-client-projection-table .dash-fixed-column,
#direction-client-projection-table .dash-fixed-row {
  display: none !important;
}
#direction-client-projection-table .dash-spreadsheet-container,
#direction-client-projection-table .dash-spreadsheet-inner {
  overflow: auto !important;
  contain: layout paint style;
}
#direction-client-projection-table .dash-spreadsheet-inner table {
  min-width: 3000px !important;
  width: max-content !important;
  table-layout: fixed !important;
}
/* Single-table sticky first column; no cloned overlay. */
#direction-client-projection-table th:first-child,
#direction-client-projection-table td:first-child,
#direction-client-projection-table .dash-header[data-dash-column="Cliente"],
#direction-client-projection-table .dash-cell[data-dash-column="Cliente"] {
  position: sticky !important;
  left: 0 !important;
  z-index: 4 !important;
  background: #092A34 !important;
  box-shadow: 3px 0 0 rgba(153,233,242,.18) !important;
}
#direction-client-projection-table .dash-header[data-dash-column="Cliente"] {
  z-index: 7 !important;
  background: #0B3540 !important;
}
#direction-client-projection-table .dash-filter[data-dash-column="Cliente"] {
  position: sticky !important;
  left: 0 !important;
  z-index: 6 !important;
  background: #0B3540 !important;
}
/* Prevent expensive paint propagation from wide executive tables. */
.v178-table-panel .dash-table-container {
  contain: layout paint style;
}


/* ===== PAC v1.7.26.8 FINAL: visible Direction tables + unified filters ===== */
:root {
  --pac-filter-bg-final: #082833;
  --pac-filter-bg-hover-final: #123D48;
  --pac-filter-border-final: rgba(153,233,242,.48);
  --pac-filter-text-final: #F8FAFC;
  --pac-filter-muted-final: #B8D4DA;
}

/* Direction: remove containment/fixed-layer side effects that produced valid but invisible tables. */
.v178-direction-page .v178-table-panel,
.v178-direction-page .v179-client-table-panel {
  overflow: visible !important;
  contain: none !important;
}
.v178-direction-page .v178-table-panel .dash-table-container,
.v178-direction-page .pac-direction-table {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 190px !important;
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
  contain: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  position: relative !important;
  z-index: 2 !important;
}
.v178-direction-page .dash-spreadsheet-container,
.v178-direction-page .dash-spreadsheet-inner,
.v178-direction-page .dash-spreadsheet,
.v178-direction-page .dash-spreadsheet-inner table {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  contain: none !important;
}
.v178-direction-page .dash-spreadsheet-container,
.v178-direction-page .dash-spreadsheet-inner {
  width: 100% !important;
  min-height: 150px !important;
  overflow: auto !important;
  position: relative !important;
}
.v178-direction-page .dash-spreadsheet-inner table {
  display: table !important;
  width: max-content !important;
  min-width: 100% !important;
  table-layout: auto !important;
}
.v178-direction-page .dash-fixed-row,
.v178-direction-page .dash-fixed-column {
  display: none !important;
}
.v178-direction-page .previous-next-container {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  min-height: 42px !important;
}
#direction-alert-count {
  color: #FFD0DC !important;
  min-width: 150px !important;
  min-height: 34px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 1 !important;
  visibility: visible !important;
  font-size: 11px !important;
}

/* One final filter language for every module. */
#filterbar,
.filters-panel,
.filters-grid,
.filter-card,
.filter-block,
.delivery-rule-field,
.finance-controls-section,
.finance-controls-grid,
.commercial-filter-grid,
.legacy-filter-grid,
.scope-alerts-filter-grid,
.tariff-controls-card,
.tariff-scenario-card,
[class*="filter-grid"],
[class*="filters-grid"] {
  overflow: visible !important;
}
#filterbar {
  position: relative !important;
  z-index: 200000 !important;
}
.filter-card,
.filter-block,
.delivery-rule-field,
.finance-controls-grid > div,
.commercial-filter-grid > div,
.legacy-filter-grid > div,
.scope-alerts-filter-grid > div,
[class*="filter-grid"] > div,
[class*="filters-grid"] > div {
  position: relative !important;
  z-index: 20 !important;
  overflow: visible !important;
}
.filter-card:focus-within,
.filter-block:focus-within,
.delivery-rule-field:focus-within,
.finance-controls-grid > div:focus-within,
.commercial-filter-grid > div:focus-within,
.legacy-filter-grid > div:focus-within,
.scope-alerts-filter-grid > div:focus-within,
[class*="filter-grid"] > div:focus-within,
[class*="filters-grid"] > div:focus-within {
  z-index: 2147482000 !important;
}

/* Dark surface + visible text in every dropdown state. */
.Select,
.dash-dropdown,
.pac-dropdown,
.pac-filter-control {
  color: var(--pac-filter-text-final) !important;
  overflow: visible !important;
}
.Select-control,
.Select.is-focused > .Select-control,
.Select.is-open > .Select-control,
.Select.has-value > .Select-control,
.dash-dropdown .Select-control,
.pac-dropdown .Select-control,
.pac-filter-control .Select-control {
  background: var(--pac-filter-bg-final) !important;
  background-color: var(--pac-filter-bg-final) !important;
  color: var(--pac-filter-text-final) !important;
  border: 1px solid var(--pac-filter-border-final) !important;
  border-radius: 10px !important;
  min-height: 42px !important;
  box-shadow: none !important;
  overflow: visible !important;
}
.Select-placeholder,
.Select-value,
.Select-value-label,
.Select-input,
.Select-input > input,
.Select--single > .Select-control .Select-value,
.Select--single > .Select-control .Select-value-label,
.dash-dropdown .Select-placeholder,
.dash-dropdown .Select-value-label {
  color: var(--pac-filter-text-final) !important;
  -webkit-text-fill-color: var(--pac-filter-text-final) !important;
  opacity: 1 !important;
  background: transparent !important;
}
.Select-placeholder {
  color: var(--pac-filter-muted-final) !important;
  -webkit-text-fill-color: var(--pac-filter-muted-final) !important;
}
.Select--multi .Select-value {
  background: rgba(153,233,242,.14) !important;
  border: 1px solid rgba(153,233,242,.45) !important;
  color: var(--pac-filter-text-final) !important;
  border-radius: 999px !important;
}
.Select--multi .Select-value-label,
.Select--multi .Select-value-icon,
.Select-clear-zone,
.Select-arrow-zone {
  color: var(--pac-filter-text-final) !important;
}
.Select-arrow { border-top-color: #99E9F2 !important; }

.Select-menu-outer,
.Select-menu,
.VirtualizedSelectGrid {
  position: absolute !important;
  z-index: 2147483000 !important;
  background: #071E26 !important;
  color: var(--pac-filter-text-final) !important;
  border: 1px solid rgba(153,233,242,.62) !important;
  border-radius: 10px !important;
  box-shadow: 0 22px 60px rgba(0,0,0,.66) !important;
  overflow: hidden !important;
}
.Select-menu-outer {
  max-height: 380px !important;
}
.Select-option,
.VirtualizedSelectOption {
  background: #071E26 !important;
  color: var(--pac-filter-text-final) !important;
  -webkit-text-fill-color: var(--pac-filter-text-final) !important;
  border-bottom: 1px solid rgba(153,233,242,.10) !important;
  min-height: 42px !important;
  line-height: 1.3 !important;
  white-space: normal !important;
}
.Select-option.is-focused,
.Select-option:hover,
.VirtualizedSelectFocusedOption,
.VirtualizedSelectOption:hover {
  background: var(--pac-filter-bg-hover-final) !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
}
.Select-option.is-selected,
.VirtualizedSelectSelectedOption {
  background: rgba(153,233,242,.22) !important;
  color: #FFFFFF !important;
  -webkit-text-fill-color: #FFFFFF !important;
  font-weight: 850 !important;
}

/* Text/date/search controls use the same dark design. */
.filter-card input,
.filter-block input,
.delivery-rule-field input,
.filters-panel input,
.finance-controls-grid input,
.commercial-filter-grid input,
.legacy-filter-grid input,
.scope-alerts-filter-grid input,
.pac-text-input,
.pac-input,
.DateInput_input,
.DateRangePickerInput,
.SingleDatePickerInput,
textarea {
  background: var(--pac-filter-bg-final) !important;
  color: var(--pac-filter-text-final) !important;
  -webkit-text-fill-color: var(--pac-filter-text-final) !important;
  border-color: var(--pac-filter-border-final) !important;
}
.filter-card input::placeholder,
.filter-block input::placeholder,
.delivery-rule-field input::placeholder,
.filters-panel input::placeholder,
.pac-text-input::placeholder,
textarea::placeholder {
  color: var(--pac-filter-muted-final) !important;
  -webkit-text-fill-color: var(--pac-filter-muted-final) !important;
  opacity: 1 !important;
}
.filter-label,
.filter-card label,
.filter-block label,
.delivery-rule-field label,
.filters-panel label,
.finance-controls-grid label,
.commercial-filter-grid label,
.legacy-filter-grid label,
.scope-alerts-filter-grid label {
  color: #DDFBFF !important;
  font-weight: 800 !important;
}

/* Cards and tables remain below an opened dropdown. */
.kpi-grid,
.kpi-card,
.metric-card,
.v178-summary-grid,
.v178-panel,
.card,
.table-card,
.dash-table-container {
  position: relative;
  z-index: 1;
}


/* ========================================================================== */
/* PAC v1.7.26.10 | Browser stability and scoped graph visibility             */
/* ========================================================================== */

/* La capa v1.7.15 ocultaba absolutamente todas las gráficas y dependía de un
   transformador DOM costoso. Restauramos Plotly donde sí corresponde. */
.dash-graph,
.js-plotly-plot,
.plot-container,
.svg-container,
.main-svg,
.modebar-container {
  max-height: none !important;
  min-height: initial !important;
}

.dash-graph {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  min-height: 260px !important;
  overflow: hidden !important;
  margin: initial !important;
  padding: initial !important;
}

.dash-graph .js-plotly-plot,
.dash-graph .plot-container,
.dash-graph .svg-container,
.dash-graph svg,
.dash-graph canvas,
.dash-graph .modebar {
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  opacity: 1 !important;
  overflow: visible !important;
  pointer-events: auto !important;
}

/* Dirección, Comercial y Rentabilidad permanecen sin gráficas por diseño. */
.v178-direction-page .dash-graph,
.page-commercial .dash-graph,
.page-finance .dash-graph,
.v178-legacy-compat {
  display: none !important;
}

/* El antiguo sustituto de gráficas ya no se genera. */
.pac-chartless-panel { display: none !important; }

/* Ninguna capa de carga heredada puede interceptar clics. */
#pac-global-loading-overlay,
.pac-global-loading-overlay {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
body.pac-system-is-loading { overflow: auto !important; }

/* Dash debe recibir los clics de navegación y filtros. */
.pac-sidebar,
.pac-sidebar-nav-host,
.pac-nav-button,
.pac-page-content-shell,
.filters-panel,
.Select,
.Select-control,
.Select-menu-outer {
  pointer-events: auto !important;
}

/* Las tablas de Dirección se muestran sin clonación/virtualización visual. */
.v178-direction-page .dash-table-container,
.v178-direction-page .dash-spreadsheet-container,
.v178-direction-page .dash-spreadsheet-inner {
  contain: none !important;
  visibility: visible !important;
  opacity: 1 !important;
}
