/* Apresentação compartilhada pelas 14 abas. A cor de status permanece semântica. */
[hidden] { display: none !important; }
:root[data-theme="dark"] {
  color-scheme: dark;
  --bg-page: #0e1623; --bg-card: #172333; --bg-hover: #22364b;
  --border: #42546a; --border-soft: #2c3d50;
  --fg-1: #edf3fa; --fg-2: #cdd9e8; --fg-3: #a9bbcf; --fg-muted: #94a7bd;
  --edaf-secondary: #8acaff;
  --shadow-card: 0 1px 4px #0003;
}
:root[data-theme="light"] { color-scheme: light; }
:focus-visible { outline: 2px solid var(--edaf-primary); outline-offset: 3px; }
.main, .topbar { min-width: 0; }
.display-controls { display: flex; gap: 5px; flex-shrink: 0; }
.topbar { gap: 10px; padding-inline: 14px; flex-wrap: wrap; }
.topbar .meta { gap: 6px; }
.topbar #last-update { max-width: 160px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar .account-name { max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--fg-2); font-weight: 600; }
.topbar .btn-logout { padding: 5px 9px; color: var(--fg-3); }
.app { grid-template-rows: minmax(var(--topbar-h), auto) minmax(0, 1fr); }
.btn-action, input, select, textarea { font: inherit; }
button:disabled { opacity: .45; cursor: default; }
.view-context { color: var(--fg-3); font-size: 12px; margin-bottom: 8px; }
.view-context summary { cursor: pointer; width: fit-content; }
.view-context p { padding: 8px 12px; border-left: 2px solid var(--edaf-primary); }
.section-tabs { display: flex; gap: 4px; flex-wrap: wrap; position: sticky; top: 0; z-index: 12; background: var(--bg-page); padding: 8px 0; border-bottom: 1px solid var(--border); margin-bottom: 12px; }
.section-tabs button { border: 1px solid var(--border-soft); background: var(--bg-card); color: var(--fg-2); border-radius: 6px; padding: 7px 11px; cursor: pointer; font: inherit; font-size: 12px; }
.section-tabs button[aria-selected="true"] { background: var(--edaf-primary); color: white; border-color: var(--edaf-primary); }
[role="tabpanel"] { min-width: 0; }
[role="tabpanel"] > .secao-cab:first-child, [role="tabpanel"] > h2.section-title:first-child { margin-top: 8px !important; }
.data-update-notice { position: fixed; bottom: 16px; right: 18px; z-index: 1800; background: var(--bg-card); color: var(--fg-1); border: 1px solid var(--edaf-primary); border-radius: 8px; padding: 12px; box-shadow: var(--shadow-modal); max-width: calc(100vw - 32px); }
.pagination { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 10px; font-size: 12px; }
.chart-actions { display: flex; justify-content: flex-end; gap: 6px; padding: 3px 0; }
.chart-actions button { font-size: 11px; padding: 3px 8px; }
.chart-dialog { margin: auto; width: min(1400px, 96vw); max-width: 96vw; height: 88vh; max-height: 94vh; background: var(--bg-card); color: var(--fg-1); border: 1px solid var(--border); border-radius: 10px; padding: 16px; }
.chart-dialog::backdrop { background: #0009; }
.chart-dialog header { display: flex; gap: 12px; justify-content: space-between; align-items: center; margin-bottom: 8px; }
.chart-dialog .chart-values { overflow: auto; height: calc(100% - 70px); }
.chart-dialog .chart-values table { width: 100%; }
:root.nav-collapsed { --sidebar-w: 64px; }
.nav-collapsed .sidebar .nav-txt, .nav-collapsed .sidebar kbd, .nav-collapsed .sidebar .brand-text, .nav-collapsed .sidebar .nav-grupo, .nav-collapsed .sidebar .footer { display: none; }
.nav-collapsed .sidebar nav a { justify-content: center; padding: 9px; }
.nav-collapsed .sidebar .brand { padding: 12px 8px; }
.nav-collapsed .sidebar .brand img { max-width: 46px; }
:root[data-density="compact"] .main { padding: 12px 16px; }
:root[data-density="compact"] .cards { gap: 8px; }
:root[data-density="compact"] .card { padding: 10px 12px; }
:root[data-density="compact"] .card .value { font-size: 24px; margin-top: 2px; }
:root[data-density="compact"] .page-sub { margin-bottom: 10px; }
:root[data-density="compact"] td, :root[data-density="compact"] th { padding: 6px 9px; }
:root[data-density="compact"] .sidebar nav a { padding-block: 6px; }
.card .value, .kpi-pwbi .value, td.num, .mono { font-family: inherit; font-variant-numeric: tabular-nums; }
@media (max-width: 1366px) {
  :root { --sidebar-w: 212px; }
  .topbar .meta #last-update { display: none; }
  .topbar-filter { flex-wrap: wrap; gap: 6px; }
  .topbar-actions { flex-shrink: 1; }
  .toolbar { flex-wrap: wrap; }
}
@media (max-width: 900px) {
  :root { --sidebar-w: 64px; }
  .sidebar .nav-txt, .sidebar kbd, .sidebar .brand-text, .sidebar .nav-grupo, .sidebar .footer { display: none; }
  .cards.cols-4, .cards.cols-8 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media print {
  :root { --bg-page: #fff; --bg-card: #fff; --bg-hover: #eee; --fg-1: #111; --fg-2: #333; --fg-3: #555; --border: #ccc; --border-soft: #ddd; }
  .section-tabs, .view-context, .chart-actions, .data-update-notice, .display-controls, .pagination { display: none !important; }
  [role="tabpanel"][hidden] { display: block !important; }
}

:root {
  --tone-000000: #000;
  --tone-1e3a8a: #1E3A8A;
  --tone-1f2937: #1F2937;
  --tone-374151: #374151;
  --tone-4b5563: #4B5563;
  --tone-6b7280: #6B7280;
  --tone-7f1d1d: #7F1D1D;
  --tone-cffafe: #CFFAFE;
  --tone-dbeafe: #DBEAFE;
  --tone-dcfce7: #DCFCE7;
  --tone-e0e7ff: #E0E7FF;
  --tone-e5e7eb: #E5E7EB;
  --tone-e8e8e8: #E8E8E8;
  --tone-e8edf5: #E8EDF5;
  --tone-e8f7f2: #E8F7F2;
  --tone-ecf6ec: #ECF6EC;
  --tone-eef1f8: #EEF1F8;
  --tone-eef2ff: #EEF2FF;
  --tone-eff6ff: #EFF6FF;
  --tone-f0fdf4: #F0FDF4;
  --tone-f1f5f9: #F1F5F9;
  --tone-f3e8ff: #F3E8FF;
  --tone-f3f4f6: #F3F4F6;
  --tone-f4f6f9: #F4F6F9;
  --tone-f9fafb: #F9FAFB;
  --tone-faedeb: #FAEDEB;
  --tone-fafbfc: #FAFBFC;
  --tone-fafbff: #FAFBFF;
  --tone-fcfcfd: #FCFCFD;
  --tone-fee2e2: #FEE2E2;
  --tone-fef2f2: #FEF2F2;
  --tone-fef3c7: #FEF3C7;
  --tone-fef3d7: #FEF3D7;
  --tone-fffbeb: #FFFBEB;
}
:root[data-theme="dark"] {
  --tone-000000: #c9c9c9;
  --tone-1e3a8a: #b9c2da;
  --tone-1f2937: #bbc7d8;
  --tone-374151: #bfc7d4;
  --tone-4b5563: #c2c8d1;
  --tone-6b7280: #c5c8ce;
  --tone-7f1d1d: #dab9b9;
  --tone-cffafe: #1c3c3f;
  --tone-dbeafe: #1c2b3f;
  --tone-dcfce7: #1c3f28;
  --tone-e0e7ff: #1c243f;
  --tone-e5e7eb: #282c34;
  --tone-e8e8e8: #2e2e2e;
  --tone-e8edf5: #1c2a3f;
  --tone-e8f7f2: #1c3f34;
  --tone-ecf6ec: #1e3e1e;
  --tone-eef1f8: #1c273f;
  --tone-eef2ff: #1c253f;
  --tone-eff6ff: #1c2c3f;
  --tone-f0fdf4: #1c3f27;
  --tone-f1f5f9: #1c2e3f;
  --tone-f3e8ff: #2d1c3f;
  --tone-f3f4f6: #272c34;
  --tone-f4f6f9: #202b3b;
  --tone-f9fafb: #252e37;
  --tone-faedeb: #3f211c;
  --tone-fafbfc: #222e39;
  --tone-fafbff: #1c233f;
  --tone-fcfcfd: #252537;
  --tone-fee2e2: #3f1c1c;
  --tone-fef2f2: #3f1c1c;
  --tone-fef3c7: #3f381c;
  --tone-fef3d7: #3f361c;
  --tone-fffbeb: #3f381c;
}
@media print { :root[data-theme] {
  --tone-000000: #000;
  --tone-1e3a8a: #1E3A8A;
  --tone-1f2937: #1F2937;
  --tone-374151: #374151;
  --tone-4b5563: #4B5563;
  --tone-6b7280: #6B7280;
  --tone-7f1d1d: #7F1D1D;
  --tone-cffafe: #CFFAFE;
  --tone-dbeafe: #DBEAFE;
  --tone-dcfce7: #DCFCE7;
  --tone-e0e7ff: #E0E7FF;
  --tone-e5e7eb: #E5E7EB;
  --tone-e8e8e8: #E8E8E8;
  --tone-e8edf5: #E8EDF5;
  --tone-e8f7f2: #E8F7F2;
  --tone-ecf6ec: #ECF6EC;
  --tone-eef1f8: #EEF1F8;
  --tone-eef2ff: #EEF2FF;
  --tone-eff6ff: #EFF6FF;
  --tone-f0fdf4: #F0FDF4;
  --tone-f1f5f9: #F1F5F9;
  --tone-f3e8ff: #F3E8FF;
  --tone-f3f4f6: #F3F4F6;
  --tone-f4f6f9: #F4F6F9;
  --tone-f9fafb: #F9FAFB;
  --tone-faedeb: #FAEDEB;
  --tone-fafbfc: #FAFBFC;
  --tone-fafbff: #FAFBFF;
  --tone-fcfcfd: #FCFCFD;
  --tone-fee2e2: #FEE2E2;
  --tone-fef2f2: #FEF2F2;
  --tone-fef3c7: #FEF3C7;
  --tone-fef3d7: #FEF3D7;
  --tone-fffbeb: #FFFBEB;
} }

@media screen {
  :root[data-theme="dark"] .sidebar { background: linear-gradient(180deg, #163053, #0e1d33); }
  :root[data-theme="dark"] .alert { color: var(--fg-1); background: var(--bg-card); }
  :root[data-theme="dark"] .alert.warning { color: #fcd58b; background: #342c1d; }
  :root[data-theme="dark"] .alert.critical { color: #ffb5b5; background: #38232a; }
  :root[data-theme="dark"] .alert.info { color: #b9dcff; background: #1b3044; }
}

@media screen { :root[data-theme="dark"] {
--inline-bg-d1d5db: #282d33;
--inline-bg-dbeafe: #1c2b3f;
--inline-bg-dce3ed: #1f2b3d;
--inline-bg-dcfce7: #1c3f28;
--inline-bg-e0e7ff: #1c243f;
--inline-bg-e5e7eb: #282c34;
--inline-bg-eef1f5: #222c3a;
--inline-bg-eef2ff: #1c253f;
--inline-bg-f3f4f6: #272c34;
--inline-bg-f3f6fb: #1c2a3f;
--inline-bg-f9fafb: #252e37;
--inline-bg-fafbfc: #222e39;
--inline-bg-fee2e2: #3f1c1c;
--inline-bg-fef2f2: #3f1c1c;
--inline-bg-fef3c7: #3f381c;
--inline-bg-fef3d7: #3f361c;
--inline-bg-fffbeb: #3f381c;
--inline-bg-ffffff: #2e2e2e;
--inline-fg-0082cb: #9ecfea;
--inline-fg-00b050: #9eeac1;
--inline-fg-011689: #9eaaea;
--inline-fg-0891b2: #9edcea;
--inline-fg-0e8c5a: #9eeacc;
--inline-fg-0e8c7f: #9eeae3;
--inline-fg-111827: #adbcdb;
--inline-fg-14532d: #a0e8bd;
--inline-fg-15803d: #9eeabb;
--inline-fg-166534: #9feabb;
--inline-fg-16a34a: #9eeaba;
--inline-fg-1f77b4: #9ecbea;
--inline-fg-2ca02c: #a3e6a3;
--inline-fg-3730a3: #a8a4e4;
--inline-fg-374151: #b9c2d0;
--inline-fg-444444: #c4c4c4;
--inline-fg-64748b: #bbc3ce;
--inline-fg-65a30d: #cbea9e;
--inline-fg-6b7280: #bfc3ca;
--inline-fg-7030a0: #c9a5e4;
--inline-fg-7f1d1d: #e9a0a0;
--inline-fg-92400e: #eabb9e;
--inline-fg-991b1b: #ea9e9e;
--inline-fg-b45309: #eabf9e;
--inline-fg-b91c1c: #ea9e9e;
} }

@media screen and (max-width: 768px) {
  .app { grid-template-columns: 64px minmax(0, 1fr); grid-template-areas: "sidebar topbar" "sidebar main"; }
  .sidebar { display: flex; }
  .sidebar .brand { padding: 10px 6px; }
  .sidebar .brand img { max-width: 48px; }
  .sidebar nav a { justify-content: center; padding: 8px; }
  .nav-collapsed .sidebar { display: none; }
  .nav-collapsed .app { grid-template-columns: minmax(0, 1fr); grid-template-areas: "topbar" "main"; }
}

/* A barra de sub-abas ocupa uma faixa reservada abaixo do título, fora da rolagem. */
@media screen {
  .main { padding-top: calc(24px + var(--subnav-height, 0px)); }
  :root[data-density="compact"] .main { padding-top: calc(12px + var(--subnav-height, 0px)); }
  .subnav-fixed {
    position: fixed; top: var(--subnav-top); left: var(--subnav-left); width: var(--subnav-width);
    z-index: 45; display: flex; flex-wrap: nowrap; gap: 4px; align-items: center;
    margin: 0 !important; padding: 5px 0; min-height: 40px;
    background: var(--bg-page); border-bottom: 1px solid var(--border);
    overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin;
    box-shadow: 0 3px 6px #0002;
  }
  .main:has(.subnav-fixed) .view-toolbar { position: static; }
  .subnav-fixed > button { flex: 0 0 auto; white-space: nowrap; font-size: 11px; padding: 6px 9px; margin: 0; }
  .subnav-fixed .pl-aba { min-width: 0; display: flex; align-items: center; gap: 7px; }
  .subnav-fixed .pl-aba span { font-size: 10px; }
}
.progress-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.progress-card { min-width: 0; padding: 8px 10px !important; }
.progress-row-title { font-size: 12px; color: var(--fg-2); margin: 8px 0 5px; }
.progress-footnote { font-size: 10px; color: var(--fg-3); text-align: center; margin-top: 2px; }
.progress-card .chart-actions { padding: 0; }
.progress-card .chart-actions button { font-size: 10px; padding: 2px 6px; }
@media (max-width: 1100px) { .progress-row { grid-template-columns: 1fr; } }
@media print { .subnav-fixed { position: static !important; display: none !important; } .progress-row { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
