/* ===== Padronização: cards/superfícies de conteúdo em --card-bg (#f7f7f7), em todos os painéis ===== */
.intranet-panels-grid .panel-choice,
.fat-table-wrap,
.fat-row-card,
.fat-list-item,
.ts-stat,
.criterio-item,
.reg-cat-item,
.reg-doc-row,
.ubs-hist-item,
#view-ubs-clinical .ubs-atend-side,
#view-ubs-clinical .ubs-fila-col {
  background: var(--card-bg, #f7f7f7);
}

/* Aba "Unidade" do painel admin (atalhos de configuração da unidade) */
#view-admin .adm-unit-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:12px; max-width:780px; }
#view-admin .adm-unit-card { display:flex; align-items:center; gap:12px; text-align:left; background:var(--card-bg,#f7f7f7); border:1px solid var(--border); border-radius:12px; padding:14px 16px; cursor:pointer; transition:box-shadow .16s ease, transform .16s ease, background .16s ease; }
#view-admin .adm-unit-card:hover { background:#ebf5db; box-shadow:0 4px 14px rgba(15,23,42,.08); transform:translateY(-1px); }
#view-admin .adm-unit-card svg, #view-admin .adm-unit-card i { width:22px; height:22px; color:var(--primary); flex:0 0 auto; }
#view-admin .adm-unit-card > span { display:flex; flex-direction:column; gap:2px; }
#view-admin .adm-unit-card strong { font-size:.92rem; color:#24281d; }
#view-admin .adm-unit-card small { font-size:.76rem; color:#5b6250; font-weight:400; }


/* Tipo da senha na TV (Preferencial / Agendamento / Normal) */
#view-tv .tv-type-badge{ position:relative; z-index:1; display:inline-block; margin:0 0 16px; padding:7px 24px;
  border-radius:999px; font-weight:800; font-size:clamp(1rem,2.4vw,1.55rem); letter-spacing:.05em;
  text-transform:uppercase; color:#fff; box-shadow:0 5px 16px rgba(0,0,0,.16); }
#view-tv .tv-type-badge.is-pref{ background:#d97706; }
#view-tv .tv-type-badge.is-appt{ background:#1556a4; }
#view-tv .tv-type-badge.is-normal{ background:#5b6470; }
#view-tv .tv-history-item{ position:relative; }
#view-tv .tv-hist-type{ position:absolute; top:9px; right:11px; font-size:.6rem; font-weight:800;
  text-transform:uppercase; letter-spacing:.03em; padding:2px 9px; border-radius:999px; color:#fff; }
#view-tv .tv-hist-type.is-pref{ background:#d97706; }
#view-tv .tv-hist-type.is-appt{ background:#1556a4; }
#view-tv .tv-hist-type.is-normal{ background:#9aa1ab; }


/* Gerenciar usuario -- form mais limpo (grid com campos consistentes) */
#add-user-form-card{ padding:18px 18px 16px; border-radius:16px; }
#add-user-form-card > h4{ margin:0 0 14px; font-weight:700; color:var(--primary,#394820); font-family:var(--font-brand,inherit); }
#add-user-form-card > .flex{ display:grid !important; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:12px !important; align-items:end; margin-top:0 !important; }
#add-user-form-card > .flex + .flex{ margin-top:12px !important; }
#add-user-form-card > .flex > input,
#add-user-form-card > .flex > select{ width:auto !important; min-width:0; box-sizing:border-box; height:40px; }
#add-user-form-card > .flex > .cep-block{ grid-column:1 / -1; }
#add-user-form-card #new-op-depts{ width:100%; box-sizing:border-box; }
#add-user-form-card > .btn-accent{ margin-top:8px; }


/* Modal Gerenciar Usuario -- form de perfil em grid limpo (2 colunas) */
#modal-edit-user .modal-box{ border-radius:18px; }
.user-manager-tabs{ gap:8px; margin-bottom:14px; }
#edit-user-tab-content-profile > .flex-col{ display:grid !important; grid-template-columns:1fr 1fr; gap:12px !important; align-items:start; }
#edit-user-tab-content-profile > .flex-col > input,
#edit-user-tab-content-profile > .flex-col > select{ width:auto !important; min-width:0; height:40px; box-sizing:border-box; margin:0 !important; }
#edit-user-tab-content-profile > .flex-col > #edit-user-id,
#edit-user-tab-content-profile > .flex-col > .cep-block,
#edit-user-tab-content-profile > .flex-col > button,
#edit-user-tab-content-profile > .flex-col > label{ grid-column:1 / -1; }

/* Fix: a classe .hidden precisa vencer o display do botao de aba (senao a aba Vinculos nunca some) */
.user-manager-tab-btn.hidden{ display:none !important; }


/* UXV2 gerenciar usuario */
/* aba Vinculos: esconde de verdade mesmo com display concorrente */
#modal-edit-user .user-manager-tab-btn.hidden{ display:none !important; }

/* Tabela de usuarios: mais compacta e legivel (menos espacamento) */
#table-users{ border-collapse:separate; border-spacing:0; width:100%; }
#table-users thead th{ background:var(--panel); color:var(--text-muted); font-size:.66rem; text-transform:uppercase;
  letter-spacing:.05em; font-weight:700; padding:8px 12px !important; border-bottom:2px solid var(--border); white-space:nowrap; }
#table-users tbody td{ padding:7px 12px !important; border-bottom:1px solid var(--border); font-size:.84rem; vertical-align:middle; line-height:1.35; }
#table-users tbody tr:last-child td{ border-bottom:none; }
#table-users tbody tr:hover td{ background:var(--primary-muted); }
#table-users .user-manage-btn{ padding:5px 12px !important; font-size:.76rem !important; min-height:30px !important; }
#table-users td.admin-user-actions{ white-space:nowrap; }

/* Form do modal: grid limpo de 2 colunas, campos consistentes */
#edit-user-tab-content-profile > .flex-col{ display:grid !important; grid-template-columns:1fr 1fr; gap:11px !important; align-items:start; }
#edit-user-tab-content-profile > .flex-col > input,
#edit-user-tab-content-profile > .flex-col > select{ width:auto !important; min-width:0; height:42px; box-sizing:border-box; margin:0 !important; }
#edit-user-tab-content-profile > .flex-col > #edit-user-id,
#edit-user-tab-content-profile > .flex-col > .cep-block,
#edit-user-tab-content-profile > .flex-col > button,
#edit-user-tab-content-profile > .flex-col > label,
#edit-user-tab-content-profile > .flex-col > select[multiple]{ grid-column:1 / -1; }
#modal-edit-user .modal-box{ border-radius:18px; max-width:760px; }
.user-manager-tabs{ gap:8px; margin-bottom:14px; }


/* UXV3 gerenciar usuario */
.um-form{ display:flex; flex-direction:column; gap:18px; }
.um-section-title{ font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color:var(--primary); margin:0 0 10px; padding-bottom:6px; border-bottom:1px solid var(--border); }
.um-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.um-field{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.um-field > span{ font-size:.74rem; font-weight:600; color:var(--text-muted); }
.um-field > input, .um-field > select{ width:100%; box-sizing:border-box; margin:0; }
.um-field.um-col-2, .um-field.um-col-full{ grid-column:1 / -1; }
.um-form .cep-block{ margin:0 !important; }
.um-form .cep-block .um-field{ gap:3px; }
.um-field:has(> .hidden),
.um-field:has(> [style*="display:none"]),
.um-field:has(> [style*="display: none"]){ display:none !important; }
.admin-list-prof{ display:inline-block; margin-top:3px; font-size:.72rem; font-weight:600; color:var(--primary); background:var(--primary-muted); border:1px solid #d5dbcc; border-radius:6px; padding:1px 8px; }

/* UXV6: Departamentos + Senhas Ativas + Dashboard */
/* Departamentos: form inline + tabela compacta */
#adm-tab-depts > .card.flex{ display:grid !important; grid-template-columns:170px 1fr auto; gap:10px; align-items:center; padding:16px 18px; }
#adm-tab-depts > .card.flex > input{ width:100% !important; margin:0; height:42px; box-sizing:border-box; }
#table-depts thead th{ background:var(--panel); color:var(--text-muted); font-size:.66rem; text-transform:uppercase; letter-spacing:.05em; font-weight:700; padding:8px 12px !important; border-bottom:2px solid var(--border); }
#table-depts tbody td{ padding:7px 12px !important; border-bottom:1px solid var(--border); font-size:.85rem; vertical-align:middle; }
#table-depts tbody tr:hover td{ background:var(--primary-muted); }
#table-depts .btn{ padding:5px 12px !important; font-size:.76rem !important; min-height:30px !important; }
/* Senhas Ativas: cards compactos com acento */
#admin-active-list .card.mb-1{ padding:12px 16px !important; margin-bottom:9px !important; border-radius:12px; border-left:4px solid var(--primary); }
#admin-active-list .card.mb-1 strong{ color:var(--primary-dark); }
/* Dashboard: KPIs com acento + tipografia da marca */
#dashboard-metrics{ gap:12px !important; }
#dashboard-metrics > .card{ text-align:left !important; padding:14px 16px !important; border-radius:14px !important; position:relative; overflow:hidden; }
#dashboard-metrics > .card::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--primary); }
#dashboard-metrics > .card > div:first-child{ font-size:1.7rem !important; font-weight:700 !important; color:var(--primary-dark) !important; }
#dashboard-metrics > .card > div:last-child{ text-transform:uppercase; letter-spacing:.04em; font-size:.68rem !important; color:var(--text-muted) !important; opacity:1 !important; font-weight:600; }
#dashboard-metrics > .card:has(#dash-in-progress)::before{ background:#1556a4; }
#dashboard-metrics > .card:has(#dash-waiting)::before{ background:#c27c00; }
#dashboard-metrics > .card:has(#dash-total-served)::before{ background:#1e7e48; }
#dashboard-metrics > .card:has(#dash-rate)::before{ background:#1e7e48; }


/* UXV9 dashboard layout */
.dash-head{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; flex-wrap:wrap; margin-bottom:18px; }
.dash-title{ font-size:1.3rem; margin:0; color:var(--text-main); }
.dash-sub{ color:var(--text-muted); font-size:.82rem; margin-top:2px; }
.dash-filters{ display:flex; gap:7px; align-items:center; flex-wrap:wrap; }
.dash-f-label{ font-size:.74rem; color:var(--text-muted); font-weight:600; }
.dash-filters input[type=date]{ width:auto !important; margin:0 !important; height:34px; }
.dash-kpis{ display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-bottom:18px; }
@media(max-width:1180px){ .dash-kpis{ grid-template-columns:repeat(3,1fr); } }
@media(max-width:680px){ .dash-kpis{ grid-template-columns:repeat(2,1fr); } }
.dash-kpi{ display:flex; align-items:center; gap:12px; background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:13px 15px; box-shadow:0 2px 8px rgba(56,70,34,.06); position:relative; overflow:hidden; }
.dash-kpi::before{ content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--t); }
.dash-kpi-ic{ width:40px; height:40px; border-radius:11px; display:flex; align-items:center; justify-content:center; flex:none; background:var(--tbg); color:var(--t); }
.dash-kpi-ic svg{ width:20px; height:20px; }
.dash-kpi-val{ font-size:1.45rem; font-weight:800; color:var(--text-main); line-height:1.05; }
.dash-kpi-lbl{ font-size:.66rem; text-transform:uppercase; letter-spacing:.03em; color:var(--text-muted); font-weight:600; margin-top:3px; line-height:1.2; }
.dash-kpi[data-tone=purple]{ --t:#394820; --tbg:#e7ebe0; }
.dash-kpi[data-tone=green]{ --t:#1e7e48; --tbg:#e4f5ec; }
.dash-kpi[data-tone=blue]{ --t:#1556a4; --tbg:#e4eefb; }
.dash-kpi[data-tone=amber]{ --t:#c27c00; --tbg:#fdf1da; }
.dash-kpi[data-tone=red]{ --t:#c0392b; --tbg:#fbe7e4; }
.dash-kpi[data-tone=indigo]{ --t:#4338ca; --tbg:#e7e6fb; }
.dash-kpi[data-tone=cyan]{ --t:#0e7490; --tbg:#e0f5f9; }
.dash-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:14px; }
.dash-grid-3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:14px; }
@media(max-width:980px){ .dash-grid-2,.dash-grid-3{ grid-template-columns:1fr; } }
.dash-panel{ background:var(--surface); border:1px solid var(--border); border-radius:16px; box-shadow:0 2px 10px rgba(56,70,34,.06); overflow:hidden; }
.dash-panel-h{ display:flex; align-items:center; gap:8px; font-weight:700; font-size:.88rem; color:var(--primary-dark); padding:13px 16px; border-bottom:1px solid var(--border); }
.dash-panel-h svg{ width:16px; height:16px; color:var(--primary); flex:none; }
.dash-panel-body{ padding:14px 16px; height:270px; position:relative; }
.dash-panel-body.donut{ height:300px; }
.dash-panel-body.dash-panel-block{ height:auto; }

/* UXV10: padrao consistente entre as abas do Admin */
#view-admin [id^="adm-tab-"] > h4{ font-size:1.18rem; color:var(--text-main); margin:0 0 14px; padding-left:13px; position:relative; }
#view-admin [id^="adm-tab-"] > h4::before{ content:""; position:absolute; left:0; top:3px; bottom:3px; width:4px; border-radius:3px; background:var(--primary); }
#view-admin [id^="adm-tab-"] > .flex.mb-2{ background:var(--surface); border:1px solid var(--border); border-radius:14px; padding:13px 16px; gap:10px !important; align-items:center; flex-wrap:wrap; box-shadow:0 2px 8px rgba(56,70,34,.05); margin-bottom:16px !important; }
#view-admin [id^="adm-tab-"] > .flex.mb-2 input{ margin:0 !important; height:40px; box-sizing:border-box; }
#view-admin [id^="adm-tab-"] > .flex.mb-2 > .small{ color:var(--text-muted); font-weight:600; }
#view-admin table thead th{ background:var(--panel); color:var(--text-muted); font-size:.66rem; text-transform:uppercase; letter-spacing:.05em; font-weight:700; padding:8px 12px !important; border-bottom:2px solid var(--border); }
#view-admin table tbody td{ padding:7px 12px !important; border-bottom:1px solid var(--border); font-size:.84rem; vertical-align:middle; }
#view-admin table tbody tr:hover td{ background:var(--primary-muted); }

/* UXV11: modais on-brand (titulo roxo + divisoria de cabecalho) */
.modal-overlay .modal-box h3{ color:#1f2711 !important; }
.modal-overlay .modal-box > h3:first-child{ padding-bottom:13px !important; border-bottom:1px solid var(--border) !important; margin-bottom:16px !important; }
.modal-overlay .modal-box label{ color:#595f4f !important; }

/* ============================================================================
   MODO ESCURO — cobertura de painéis "bespoke" + polish global  (2026-06-12)
   Corrige superfícies que nunca receberam tema escuro (painel master/dev,
   caixas de gráfico, linhas de unidade, status, dropdowns) e adiciona polish
   (scrollbars, foco de campos). Tudo escopado em body.theme-dark — modo claro
   não é afetado.
   ========================================================================== */

/* ---- Superfícies do painel master/dev (cards, linhas, caixas) ---- */
body.theme-dark .master-metric,
body.theme-dark .master-unit-row,
body.theme-dark .master-dashboard-unit,
body.theme-dark .master-chart-box,
body.theme-dark .master-analytics-card,
body.theme-dark .master-ops-section,
body.theme-dark .master-insight-row,
body.theme-dark .master-demand-row,
body.theme-dark .master-governance-item,
body.theme-dark .master-access-unit-row,
body.theme-dark .master-subsection-head,
body.theme-dark .powerbi-step-item {
  background: var(--card-bg) !important;
  border-color: var(--border) !important;
  color: var(--text-main) !important;
}

/* Linhas de status com fundo claro (pendente/aviso) -> tom escuro mantendo o hue */
body.theme-dark .master-access-unit-row.is-pending,
body.theme-dark .master-demand-row.is-pending {
  background: rgba(197, 173, 122, 0.10) !important;
  border-color: rgba(197, 173, 122, 0.28) !important;
}

/* Texto interno dessas superfícies fica legível no escuro */
body.theme-dark :is(.master-metric, .master-unit-row, .master-dashboard-unit,
  .master-chart-box, .master-analytics-card, .master-ops-section, .master-insight-row,
  .master-demand-row, .master-governance-item, .master-access-unit-row,
  .master-subsection-head, .powerbi-step-item)
  :is(h1,h2,h3,h4,h5,h6,p,span,strong,b,label,li,td,th,div,a) {
  color: var(--text-main);
}
body.theme-dark :is(.master-metric, .master-unit-row, .master-dashboard-unit,
  .master-chart-box, .master-analytics-card, .master-ops-section, .master-insight-row,
  .master-demand-row, .master-governance-item, .master-access-unit-row,
  .master-subsection-head, .powerbi-step-item)
  :is(.small, .meta, .sub, .master-metric-label, .muted) {
  color: var(--text-muted) !important;
}

/* ---- Itens do menu lateral do master ---- */
body.theme-dark .master-menu-item {
  background: var(--surface-2) !important;
  border-color: var(--border) !important;
  color: var(--text-main) !important;
}
body.theme-dark .master-menu-item:hover {
  background: var(--surface-3) !important;
  border-color: var(--border-strong) !important;
}
body.theme-dark .master-menu-item.is-active,
body.theme-dark .master-menu-item.active,
body.theme-dark .master-menu-item[aria-current="true"] {
  background: linear-gradient(135deg, var(--primary-dark), var(--primary)) !important;
  border-color: var(--primary) !important;
  color: #ecf3e1 !important;
}
body.theme-dark .master-menu-item.is-active *,
body.theme-dark .master-menu-item.active * { color: #ecf3e1 !important; }

/* ---- Botão "Centralizar" do mapa ---- */
body.theme-dark .master-map-center-btn {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}

/* ---- Ícones de KPI (dashboard) ---- */
body.theme-dark .dash-kpi-ic {
  background: var(--primary-muted) !important;
  color: var(--primary-light) !important;
}

/* ---- Pílulas/badges de status com fundo claro ---- */
body.theme-dark .is-warning {
  background: rgba(197, 173, 122, 0.16) !important;
  color: var(--accent-light) !important;
  border-color: rgba(197, 173, 122, 0.30) !important;
}
body.theme-dark .is-success {
  background: rgba(52, 168, 102, 0.16) !important;
  color: #8fe0ad !important;
  border-color: rgba(52, 168, 102, 0.30) !important;
}
body.theme-dark .is-danger,
body.theme-dark .is-error {
  background: rgba(220, 76, 70, 0.16) !important;
  color: #f2a8a3 !important;
  border-color: rgba(220, 76, 70, 0.30) !important;
}
body.theme-dark .is-info {
  background: rgba(96, 130, 200, 0.16) !important;
  color: #a8c0e8 !important;
  border-color: rgba(96, 130, 200, 0.30) !important;
}

/* ---- Dropdowns de autocomplete (transporte etc.) ---- */
body.theme-dark .ts-ac-dropdown {
  background: var(--surface) !important;
  border-color: var(--border-strong) !important;
  color: var(--text-main) !important;
  box-shadow: var(--shadow-lg) !important;
}
body.theme-dark .ts-ac-dropdown :is(div, span, li, strong) { color: var(--text-main); }
body.theme-dark .ts-ac-dropdown :is(.ts-ac-item):hover,
body.theme-dark .ts-ac-dropdown :is(.ts-ac-item).is-active {
  background: var(--surface-3) !important;
}

/* ---- Dropdown do menu admin ---- */
body.theme-dark .adm-menu-dropdown,
body.theme-dark .adm-menu-item {
  background: var(--surface) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}
body.theme-dark .adm-menu-item:hover { background: var(--surface-3) !important; }

/* ---- Chips de link na tela de login (modo escuro) ---- */
body.theme-dark .login-link-chip {
  background: var(--surface-2) !important;
  color: var(--text-main) !important;
  border-color: var(--border) !important;
}

/* ---- Foco de campos: anel sutil na cor primária ---- */
body.theme-dark :is(input, select, textarea):focus,
body.theme-dark :is(input, select, textarea):focus-visible {
  outline: none !important;
  border-color: var(--primary-light) !important;
  box-shadow: 0 0 0 3px var(--primary-glass) !important;
}

/* ---- Scrollbars escuras (Chromium) ---- */
body.theme-dark ::-webkit-scrollbar { width: 12px; height: 12px; }
body.theme-dark ::-webkit-scrollbar-track { background: #161616; }
body.theme-dark ::-webkit-scrollbar-thumb {
  background: #3a3a3a; border-radius: 8px; border: 3px solid #161616;
}
body.theme-dark ::-webkit-scrollbar-thumb:hover { background: #4d4d4d; }
body.theme-dark { scrollbar-color: #3a3a3a #161616; scrollbar-width: thin; }

/* ---- Caixa de gráfico: garante respiro e fundo coerente ---- */
body.theme-dark .master-chart-box canvas { background: transparent !important; }
