/* ===== Políticas Premium ===== */
.politicas-page { font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.politicas-hero-actions,.policy-ai-banner { display:flex; justify-content:space-between; gap:24px; align-items:flex-start; margin-bottom:18px; }
.politicas-hero-actions h2 { margin:0 0 6px; color:#0f172a; font-size:24px; font-weight:800; }
.politicas-hero-actions p { color:#64748b; margin:0; max-width:760px; }
.politicas-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end; }
.politicas-stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-bottom:18px; }
.policy-stat-card { display:flex; align-items:center; gap:16px; padding:20px; background:#fff; border:1px solid rgba(148,163,184,.18); border-top:4px solid #10b981; border-radius:18px; box-shadow:0 16px 45px rgba(15,23,42,.06); min-height:122px; }
.policy-stat-icon { width:54px; height:54px; border-radius:18px; display:grid; place-items:center; color:#059669; background:#d1fae5; font-size:22px; }
.policy-stat-card span { display:block; font-size:12px; color:#334155; font-weight:800; margin-bottom:4px; }
.policy-stat-card strong { display:block; font-size:34px; line-height:1; color:#0f172a; font-weight:850; }
.policy-stat-card small { display:block; color:#64748b; font-size:12px; margin-top:8px; }
.policy-stat-blue { border-top-color:#0ea5e9; } .policy-stat-blue .policy-stat-icon { color:#0284c7; background:#e0f2fe; }
.policy-stat-orange { border-top-color:#f97316; } .policy-stat-orange .policy-stat-icon { color:#ea580c; background:#ffedd5; }
.policy-stat-purple { border-top-color:#8b5cf6; } .policy-stat-purple .policy-stat-icon { color:#7c3aed; background:#ede9fe; }
.politicas-layout { display:grid; grid-template-columns:minmax(0,1fr) 310px; gap:18px; }
.politicas-main-card,.policy-insight-card,.policy-ai-banner { background:#fff; border:1px solid rgba(148,163,184,.18); border-radius:18px; box-shadow:0 16px 45px rgba(15,23,42,.05); }
.politicas-card-header { padding:18px 20px 8px; border-bottom:none; }
.politicas-card-header h3 { color:#0f172a; font-size:17px; margin:0 0 4px; }
.politicas-card-header p { color:#64748b; margin:0; font-size:13px; }
.politicas-filters { display:grid; grid-template-columns:1.5fr repeat(6,minmax(105px,1fr)) auto; gap:10px; padding:14px 20px 16px; align-items:end; }
.policy-table-wrap { overflow-x:auto; padding:0 12px 16px; }
.policy-table { width:100%; border-collapse:separate; border-spacing:0; min-width:1180px; }
.policy-table th { background:#f8fafc; color:#64748b; text-transform:uppercase; letter-spacing:.04em; font-size:10px; font-weight:850; padding:12px; border-top:1px solid #edf2f7; border-bottom:1px solid #edf2f7; text-align:left; }
.policy-table th:first-child { border-radius:12px 0 0 12px; } .policy-table th:last-child { border-radius:0 12px 12px 0; }
.policy-table td { padding:13px 12px; border-bottom:1px solid #edf2f7; color:#334155; font-size:12px; vertical-align:middle; }
.policy-name-cell { display:flex; gap:10px; align-items:center; min-width:190px; }
.policy-name-icon { width:34px; height:34px; border-radius:12px; display:grid; place-items:center; background:#ecfdf5; color:#059669; }
.policy-name-cell strong { display:block; color:#0f172a; font-weight:800; }
.policy-name-cell small { display:block; color:#64748b; margin-top:2px; max-width:240px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.policy-badge { display:inline-flex; align-items:center; justify-content:center; min-height:23px; padding:4px 9px; border-radius:999px; font-size:10px; font-weight:800; white-space:nowrap; }
.pl-type-privacidade,.pl-type-cookies,.pl-status-em_revisao,.pl-status-rascunho { color:#0369a1; background:#e0f2fe; }
.pl-type-seguranca_informacao,.pl-type-protecao_dados,.pl-status-ativa,.pl-status-publicada,.pl-pub-portal { color:#047857; background:#d1fae5; }
.pl-type-retencao_descarte,.pl-type-controle_acesso,.pl-type-backup,.pl-status-aguardando_aprovacao { color:#b45309; background:#fef3c7; }
.pl-type-incidentes,.pl-status-vencida,.pl-pub-no { color:#b91c1c; background:#fee2e2; }
.pl-type-compartilhamento_dados,.pl-type-direitos_titulares,.pl-type-regimento_comite,.pl-type-outro,.pl-status-arquivada,.pl-pub-interna { color:#475569; background:#f1f5f9; }
.policy-row-actions { display:flex; gap:6px; }
.policy-row-actions button { width:30px; height:30px; border:1px solid #e2e8f0; background:#fff; color:#475569; border-radius:10px; cursor:pointer; transition:.2s ease; }
.policy-row-actions button:hover { color:#059669; border-color:#86efac; background:#f0fdf4; }
.politicas-side-panel { display:grid; gap:14px; align-content:start; }
.policy-insight-card { padding:18px; }
.policy-insight-card h4 { color:#0f172a; margin:0 0 14px; font-size:14px; font-weight:850; }
.policy-dist-row,.policy-rec-item,.policy-review-item { display:flex; justify-content:space-between; gap:10px; align-items:center; padding:8px 0; border-bottom:1px solid #f1f5f9; font-size:12px; }
.policy-rec-item i { color:#059669; }
.policy-ai-banner { margin-top:18px; padding:16px 18px; align-items:center; background:linear-gradient(135deg,#ecfdf5,#ffffff); }
.policy-ai-banner > div { display:flex; gap:12px; align-items:center; }
.policy-ai-banner i { color:#059669; font-size:18px; }
.policy-ai-banner strong { color:#0f172a; }
.policy-ai-banner p { color:#64748b; margin:2px 0 0; font-size:12px; }
.policy-empty-state { display:grid; place-items:center; text-align:center; padding:44px 20px; }
.policy-empty-state > div { width:64px; height:64px; display:grid; place-items:center; border-radius:22px; color:#059669; background:#d1fae5; font-size:26px; margin-bottom:14px; }
.policy-empty-state h4 { margin:0 0 6px; color:#0f172a; }
.policy-empty-state p { max-width:560px; color:#64748b; }
.policy-modal-content { width:min(1120px,calc(100vw - 32px)); max-height:calc(100vh - 36px); display:flex; flex-direction:column; border-radius:22px; }
.policy-details-content { width:min(920px,calc(100vw - 32px)); border-radius:22px; }
.policy-modal-body { display:grid; gap:18px; overflow:auto; padding:20px 24px; }
.policy-form-section { padding:18px; border:1px solid #e2e8f0; border-radius:18px; background:#fbfdff; }
.policy-form-section h4 { margin:0 0 14px; color:#0f172a; font-size:15px; font-weight:850; }
.policy-form-grid,.policy-detail-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.policy-form-grid label { font-weight:750; color:#334155; font-size:12px; }
.policy-editor { font-family:"Inter",system-ui,sans-serif; line-height:1.55; }
.policy-modal-footer { position:sticky; bottom:0; background:#fff; border-top:1px solid #e2e8f0; z-index:1; }
.policy-detail-item { padding:14px; border:1px solid #e2e8f0; border-radius:14px; background:#f8fafc; }
.policy-detail-item.wide { grid-column:span 2; }
.policy-detail-item span { display:block; color:#64748b; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.04em; margin-bottom:6px; }
.policy-detail-item strong { display:block; color:#0f172a; font-size:13px; line-height:1.45; white-space:pre-wrap; }
body.dark .politicas-hero-actions h2, body.dark .politicas-card-header h3, body.dark .policy-stat-card strong, body.dark .policy-insight-card h4, body.dark .policy-ai-banner strong, body.dark .policy-form-section h4, body.dark .policy-detail-item strong, body.dark .policy-name-cell strong { color:#f8fafc; }
body.dark .politicas-main-card, body.dark .policy-insight-card, body.dark .policy-stat-card, body.dark .policy-form-section, body.dark .policy-detail-item, body.dark .policy-modal-footer { background:#111827; border-color:rgba(148,163,184,.2); }
body.dark .policy-table th, body.dark .policy-detail-item { background:#0f172a; }
body.dark .policy-table td { border-bottom-color:rgba(148,163,184,.16); }
@media (max-width:1280px) { .politicas-stats-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .politicas-layout { grid-template-columns:1fr; } .politicas-filters { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:768px) { .politicas-hero-actions,.policy-ai-banner { flex-direction:column; align-items:stretch; } .politicas-stats-grid,.politicas-filters,.policy-form-grid,.policy-detail-grid { grid-template-columns:1fr; } .policy-detail-item.wide { grid-column:span 1; } }

/* ===== Contratos Premium ===== */
.contratos-page { font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
.contratos-hero-actions,
.contract-ai-banner { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; margin-bottom: 18px; }
.contratos-hero-actions h2 { margin: 0 0 6px; color: #0f172a; font-size: 24px; font-weight: 800; }
.contratos-hero-actions p { color: #64748b; margin: 0; max-width: 760px; }
.contratos-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.contratos-stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
.contract-stat-card { display: flex; align-items: center; gap: 16px; padding: 20px; background: #fff; border: 1px solid rgba(148,163,184,.18); border-top: 4px solid #10b981; border-radius: 18px; box-shadow: 0 16px 45px rgba(15,23,42,.06); min-height: 122px; }
.contract-stat-icon { width: 54px; height: 54px; border-radius: 18px; display: grid; place-items: center; color: #059669; background: #d1fae5; font-size: 22px; }
.contract-stat-card span { display: block; font-size: 12px; color: #334155; font-weight: 800; margin-bottom: 4px; }
.contract-stat-card strong { display: block; font-size: 34px; line-height: 1; color: #0f172a; font-weight: 850; }
.contract-stat-card small { display: block; color: #64748b; font-size: 12px; margin-top: 8px; }
.contract-stat-orange { border-top-color: #f97316; }
.contract-stat-orange .contract-stat-icon { color: #ea580c; background: #ffedd5; }
.contract-stat-yellow { border-top-color: #eab308; }
.contract-stat-yellow .contract-stat-icon { color: #ca8a04; background: #fef9c3; }
.contract-stat-blue { border-top-color: #0ea5e9; }
.contract-stat-blue .contract-stat-icon { color: #0284c7; background: #e0f2fe; }
.contratos-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 18px; }
.contratos-main-card,
.contract-insight-card,
.contract-ai-banner { background: #fff; border: 1px solid rgba(148,163,184,.18); border-radius: 18px; box-shadow: 0 16px 45px rgba(15,23,42,.05); }
.contratos-card-header { padding: 18px 20px 8px; border-bottom: none; }
.contratos-card-header h3 { color: #0f172a; font-size: 17px; margin: 0 0 4px; }
.contratos-card-header p { color: #64748b; margin: 0; font-size: 13px; }
.contratos-filters { display: grid; grid-template-columns: 1.5fr repeat(7, minmax(96px, 1fr)) auto; gap: 10px; padding: 14px 20px 16px; align-items: end; }
.contract-table-wrap { overflow-x: auto; padding: 0 12px 16px; }
.contract-table { width: 100%; border-collapse: separate; border-spacing: 0; min-width: 1320px; }
.contract-table th { background: #f8fafc; color: #64748b; text-transform: uppercase; letter-spacing: .04em; font-size: 10px; font-weight: 850; padding: 12px; border-top: 1px solid #edf2f7; border-bottom: 1px solid #edf2f7; text-align: left; }
.contract-table th:first-child { border-radius: 12px 0 0 12px; }
.contract-table th:last-child { border-radius: 0 12px 12px 0; }
.contract-table td { padding: 13px 12px; border-bottom: 1px solid #edf2f7; color: #334155; font-size: 12px; vertical-align: middle; }
.contract-name-cell { display: flex; gap: 10px; align-items: center; min-width: 190px; }
.contract-name-icon { width: 34px; height: 34px; border-radius: 12px; display: grid; place-items: center; background: #ecfdf5; color: #059669; }
.contract-name-cell strong { display: block; color: #0f172a; font-weight: 800; }
.contract-name-cell small { display: block; color: #64748b; margin-top: 2px; }
.contract-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 23px; padding: 4px 9px; border-radius: 999px; font-size: 10px; font-weight: 800; white-space: nowrap; }
.ct-type-prestacao_servicos,.ct-type-operador_dados,.ct-type-contrato_administrativo,.ct-status-em_revisao { color: #0369a1; background: #e0f2fe; }
.ct-type-controlador_conjunto,.ct-type-compartilhamento_dados { color: #6d28d9; background: #ede9fe; }
.ct-type-fornecedor,.ct-status-adequado,.ct-risk-baixo { color: #047857; background: #d1fae5; }
.ct-type-convenio,.ct-type-termo_cooperacao,.ct-status-pendente,.ct-risk-medio { color: #b45309; background: #fef3c7; }
.ct-type-nda,.ct-type-outro,.ct-status-inativo { color: #475569; background: #f1f5f9; }
.ct-status-vencido,.ct-status-sem_anexo,.ct-risk-alto { color: #b91c1c; background: #fee2e2; }
.ct-risk-critico { color: #7f1d1d; background: #fecaca; }
.contract-row-actions { display: flex; gap: 6px; }
.contract-row-actions button { width: 30px; height: 30px; border: 1px solid #e2e8f0; background: #fff; color: #475569; border-radius: 10px; cursor: pointer; transition: .2s ease; }
.contract-row-actions button:hover { color: #059669; border-color: #86efac; background: #f0fdf4; }
.contratos-side-panel { display: grid; gap: 14px; align-content: start; }
.contract-insight-card { padding: 18px; }
.contract-insight-card h4 { color: #0f172a; margin: 0 0 14px; font-size: 14px; font-weight: 850; }
.contract-dist-row,.contract-rec-item,.contract-risk-row,.contract-review-item { display: flex; justify-content: space-between; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid #f1f5f9; font-size: 12px; }
.contract-risk-row div { flex: 1; height: 7px; background: #f1f5f9; border-radius: 999px; overflow: hidden; }
.contract-risk-row i { display: block; height: 100%; background: linear-gradient(90deg,#10b981,#f59e0b,#ef4444); border-radius: inherit; }
.contract-rec-item i { color: #059669; }
.contract-ai-banner { margin-top: 18px; padding: 16px 18px; align-items: center; background: linear-gradient(135deg,#ecfdf5,#ffffff); }
.contract-ai-banner > div { display: flex; gap: 12px; align-items: center; }
.contract-ai-banner i { color: #059669; font-size: 18px; }
.contract-ai-banner strong { color: #0f172a; }
.contract-ai-banner p { color: #64748b; margin: 2px 0 0; font-size: 12px; }
.contract-empty-state { display: grid; place-items: center; text-align: center; padding: 44px 20px; }
.contract-empty-state > div { width: 64px; height: 64px; display: grid; place-items: center; border-radius: 22px; color: #059669; background: #d1fae5; font-size: 26px; margin-bottom: 14px; }
.contract-empty-state h4 { margin: 0 0 6px; color: #0f172a; }
.contract-empty-state p { max-width: 560px; color: #64748b; }
.contract-modal-content { width: min(1120px, calc(100vw - 32px)); max-height: calc(100vh - 36px); display: flex; flex-direction: column; border-radius: 22px; }
.contract-details-content { width: min(900px, calc(100vw - 32px)); border-radius: 22px; }
.contract-modal-body { display: grid; gap: 18px; overflow: auto; padding: 20px 24px; }
.contract-form-section { padding: 18px; border: 1px solid #e2e8f0; border-radius: 18px; background: #fbfdff; }
.contract-form-section h4 { margin: 0 0 14px; color: #0f172a; font-size: 15px; font-weight: 850; }
.contract-form-grid,.contract-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.contract-check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.contract-check-grid label { display: flex; align-items: center; gap: 8px; padding: 12px; border-radius: 12px; border: 1px solid #e2e8f0; background: #fff; font-size: 12px; font-weight: 750; color: #334155; }
.contract-form-grid label { font-weight: 750; color: #334155; font-size: 12px; }
#contractRiskSuggestion { display: inline-flex; margin-top: 7px; color: #047857; font-weight: 750; }
.contract-modal-footer { position: sticky; bottom: 0; background: #fff; border-top: 1px solid #e2e8f0; z-index: 1; }
.contract-detail-item { padding: 14px; border: 1px solid #e2e8f0; border-radius: 14px; background: #f8fafc; }
.contract-detail-item.wide { grid-column: span 2; }
.contract-detail-item span { display: block; color: #64748b; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 6px; }
.contract-detail-item strong { display: block; color: #0f172a; font-size: 13px; line-height: 1.45; white-space: pre-wrap; }
body.dark .contratos-hero-actions h2, body.dark .contratos-card-header h3, body.dark .contract-stat-card strong, body.dark .contract-insight-card h4, body.dark .contract-ai-banner strong, body.dark .contract-form-section h4, body.dark .contract-detail-item strong, body.dark .contract-name-cell strong { color: #f8fafc; }
body.dark .contratos-main-card, body.dark .contract-insight-card, body.dark .contract-stat-card, body.dark .contract-form-section, body.dark .contract-detail-item, body.dark .contract-modal-footer { background: #111827; border-color: rgba(148,163,184,.2); }
body.dark .contract-table th, body.dark .contract-detail-item { background: #0f172a; }
body.dark .contract-table td { border-bottom-color: rgba(148,163,184,.16); }
@media (max-width: 1280px) { .contratos-stats-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .contratos-layout { grid-template-columns: 1fr; } .contratos-filters { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 768px) { .contratos-hero-actions,.contract-ai-banner { flex-direction: column; align-items: stretch; } .contratos-stats-grid,.contratos-filters,.contract-form-grid,.contract-detail-grid,.contract-check-grid { grid-template-columns: 1fr; } .contract-detail-item.wide { grid-column: span 1; } }

/* ===== Operadores Premium ===== */
.operadores-page {
  font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.operadores-hero-actions,
.operator-ai-banner {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 18px;
}

.operadores-hero-actions h2 {
  margin: 0 0 6px;
  color: #0f172a;
  font-size: 24px;
  font-weight: 800;
}

.operadores-hero-actions p {
  color: #64748b;
  margin: 0;
  max-width: 760px;
}

.operadores-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.operadores-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}

.operator-stat-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px;
  background: #fff;
  border: 1px solid rgba(148, 163, 184, .18);
  border-top: 4px solid #10b981;
  border-radius: 18px;
  box-shadow: 0 16px 45px rgba(15, 23, 42, .06);
  min-height: 122px;
}

.operator-stat-icon {
  width: 54px;
  height: 54px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  color: #059669;
  background: #d1fae5;
  font-size: 22px;
}

.operator-stat-card span {
  display: block;
  font-size: 12px;
  color: #334155;
  font-weight: 800;
  margin-bottom: 4px;
}

.operator-stat-card strong {
  display: block;
  font-size: 34px;
  line-height: 1;
  color: #0f172a;
  font-weight: 850;
}

.operator-stat-card small {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 8px;
}

.operator-stat-orange { border-top-color: #f97316; }
.operator-stat-orange .operator-stat-icon { color: #ea580c; background: #ffedd5; }
.operator-stat-blue { border-top-color: #0ea5e9; }
.operator-stat-blue .operator-stat-icon { color: #0284c7; background: #e0f2fe; }
.operator-stat-purple { border-top-color: #8b5cf6; }
.operator-stat-purple .operator-stat-icon { color: #7c3aed; background: #ede9fe; }

.operadores-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 18px;
}

.operadores-main-card,
.operator-insight-card,
.operator-ai-banner {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 18px;
  box-shadow: 0 16px 45px rgba(15, 23, 42, .05);
}

.operadores-card-header {
  padding: 18px 20px 8px;
  border-bottom: none;
}

.operadores-card-header h3 {
  color: #0f172a;
  font-size: 17px;
  margin: 0 0 4px;
}

.operadores-card-header p {
  color: #64748b;
  margin: 0;
  font-size: 13px;
}

.operadores-filters {
  display: grid;
  grid-template-columns: 1.5fr repeat(6, minmax(104px, 1fr)) auto;
  gap: 10px;
  padding: 14px 20px 16px;
  align-items: end;
}

.operator-table-wrap {
  overflow-x: auto;
  padding: 0 12px 16px;
}

.operator-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 1120px;
}

.operator-table th {
  background: #f8fafc;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 10px;
  font-weight: 850;
  padding: 12px;
  border-top: 1px solid #edf2f7;
  border-bottom: 1px solid #edf2f7;
  text-align: left;
}

.operator-table th:first-child { border-radius: 12px 0 0 12px; }
.operator-table th:last-child { border-radius: 0 12px 12px 0; }

.operator-table td {
  padding: 13px 12px;
  border-bottom: 1px solid #edf2f7;
  color: #334155;
  font-size: 12px;
  vertical-align: middle;
}

.operator-name-cell {
  display: flex;
  gap: 10px;
  align-items: center;
  min-width: 190px;
}

.operator-name-icon {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: #ecfdf5;
  color: #059669;
}

.operator-name-cell strong {
  display: block;
  color: #0f172a;
  font-weight: 800;
}

.operator-name-cell small {
  display: block;
  color: #64748b;
  margin-top: 2px;
}

.operator-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 23px;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.op-type-operador,
.op-type-sistema_terceirizado,
.op-contract-em_analise,
.op-status-em_revisao {
  color: #0369a1;
  background: #e0f2fe;
}

.op-type-controlador_conjunto {
  color: #6d28d9;
  background: #ede9fe;
}

.op-type-fornecedor,
.op-contract-adequado,
.op-status-ativo,
.op-risk-baixo {
  color: #047857;
  background: #d1fae5;
}

.op-type-suboperador,
.op-contract-pendente,
.op-status-pendente,
.op-risk-medio {
  color: #b45309;
  background: #fef3c7;
}

.op-type-parceiro,
.op-type-orgao_publico,
.op-status-inativo {
  color: #475569;
  background: #f1f5f9;
}

.op-contract-vencido,
.op-contract-sem_contrato,
.op-status-bloqueado,
.op-risk-alto {
  color: #b91c1c;
  background: #fee2e2;
}

.op-risk-critico {
  color: #7f1d1d;
  background: #fecaca;
}

.operator-row-actions {
  display: flex;
  gap: 6px;
}

.operator-row-actions button {
  width: 30px;
  height: 30px;
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #475569;
  border-radius: 10px;
  cursor: pointer;
  transition: .2s ease;
}

.operator-row-actions button:hover {
  color: #059669;
  border-color: #86efac;
  background: #f0fdf4;
}

.operadores-side-panel {
  display: grid;
  gap: 14px;
  align-content: start;
}

.operator-insight-card {
  padding: 18px;
}

.operator-insight-card h4 {
  color: #0f172a;
  margin: 0 0 14px;
  font-size: 14px;
  font-weight: 850;
}

.operator-dist-row,
.operator-rec-item,
.operator-risk-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid #f1f5f9;
  font-size: 12px;
}

.operator-risk-row div {
  flex: 1;
  height: 7px;
  background: #f1f5f9;
  border-radius: 999px;
  overflow: hidden;
}

.operator-risk-row i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #10b981, #f59e0b, #ef4444);
  border-radius: inherit;
}

.operator-rec-item i {
  color: #059669;
}

.operator-ai-banner {
  margin-top: 18px;
  padding: 16px 18px;
  align-items: center;
  background: linear-gradient(135deg, #ecfdf5, #ffffff);
}

.operator-ai-banner > div {
  display: flex;
  gap: 12px;
  align-items: center;
}

.operator-ai-banner i {
  color: #059669;
  font-size: 18px;
}

.operator-ai-banner strong {
  color: #0f172a;
}

.operator-ai-banner p {
  color: #64748b;
  margin: 2px 0 0;
  font-size: 12px;
}

.operator-empty-state {
  display: grid;
  place-items: center;
  text-align: center;
  padding: 44px 20px;
}

.operator-empty-state > div {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  border-radius: 22px;
  color: #059669;
  background: #d1fae5;
  font-size: 26px;
  margin-bottom: 14px;
}

.operator-empty-state h4 {
  margin: 0 0 6px;
  color: #0f172a;
}

.operator-empty-state p {
  max-width: 540px;
  color: #64748b;
}

.operator-modal-content {
  width: min(1080px, calc(100vw - 32px));
  max-height: calc(100vh - 36px);
  display: flex;
  flex-direction: column;
  border-radius: 22px;
}

.operator-details-content {
  width: min(880px, calc(100vw - 32px));
  border-radius: 22px;
}

.operator-modal-body {
  display: grid;
  gap: 18px;
  overflow: auto;
  padding: 20px 24px;
}

.operator-form-section {
  padding: 18px;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  background: #fbfdff;
}

.operator-form-section h4 {
  margin: 0 0 14px;
  color: #0f172a;
  font-size: 15px;
  font-weight: 850;
}

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

.operator-form-grid label {
  font-weight: 750;
  color: #334155;
  font-size: 12px;
}

#operatorRiskSuggestion {
  display: inline-flex;
  margin-top: 7px;
  color: #047857;
  font-weight: 750;
}

.operator-modal-footer {
  position: sticky;
  bottom: 0;
  background: #fff;
  border-top: 1px solid #e2e8f0;
  z-index: 1;
}

.operator-detail-item {
  padding: 14px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #f8fafc;
}

.operator-detail-item.wide,
.form-span-2 {
  grid-column: span 2;
}

.operator-detail-item span {
  display: block;
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: 6px;
}

.operator-detail-item strong {
  display: block;
  color: #0f172a;
  font-size: 13px;
  line-height: 1.45;
  white-space: pre-wrap;
}

.link-button {
  border: none;
  background: transparent;
  color: #059669;
  font-weight: 800;
  cursor: pointer;
  padding: 0;
}

body.dark .operadores-hero-actions h2,
body.dark .operadores-card-header h3,
body.dark .operator-stat-card strong,
body.dark .operator-insight-card h4,
body.dark .operator-ai-banner strong,
body.dark .operator-form-section h4,
body.dark .operator-detail-item strong,
body.dark .operator-name-cell strong {
  color: #f8fafc;
}

body.dark .operadores-main-card,
body.dark .operator-insight-card,
body.dark .operator-stat-card,
body.dark .operator-form-section,
body.dark .operator-detail-item,
body.dark .operator-modal-footer {
  background: #111827;
  border-color: rgba(148, 163, 184, .2);
}

body.dark .operator-table th,
body.dark .operator-detail-item {
  background: #0f172a;
}

body.dark .operator-table td {
  border-bottom-color: rgba(148, 163, 184, .16);
}

@media (max-width: 1280px) {
  .operadores-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .operadores-layout {
    grid-template-columns: 1fr;
  }
  .operadores-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .operadores-hero-actions,
  .operator-ai-banner {
    flex-direction: column;
    align-items: stretch;
  }
  .operadores-stats-grid,
  .operadores-filters,
  .operator-form-grid,
  .operator-detail-grid {
    grid-template-columns: 1fr;
  }
  .operator-detail-item.wide,
  .form-span-2 {
    grid-column: span 1;
  }
}

/* ===== Armazenamento Premium ===== */
.armazenamento-page {
  font-family: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.armazenamento-hero-actions {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: flex-start;
  margin-bottom: 18px;
}

.section-eyebrow {
  display: inline-flex;
  color: #059669;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 6px;
}

.armazenamento-hero-actions h2 {
  margin: 0 0 6px;
  color: #0f172a;
  font-size: 24px;
  font-weight: 800;
}

.armazenamento-hero-actions p {
  color: #64748b;
  margin: 0;
  max-width: 720px;
}

.armazenamento-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.armazenamento-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}

.storage-stat-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 20px;
  background: #fff;
  border: 1px solid rgba(148, 163, 184, .18);
  border-top: 4px solid #10b981;
  border-radius: 18px;
  box-shadow: 0 16px 45px rgba(15, 23, 42, .06);
  min-height: 122px;
}

.storage-stat-card .storage-stat-icon {
  width: 54px;
  height: 54px;
  border-radius: 18px;
  display: grid;
  place-items: center;
  color: #059669;
  background: #d1fae5;
  font-size: 22px;
  flex: 0 0 auto;
}

.storage-stat-card span {
  display: block;
  font-size: 12px;
  color: #334155;
  font-weight: 800;
  margin-bottom: 4px;
}

.storage-stat-card strong {
  display: block;
  font-size: 34px;
  line-height: 1;
  color: #0f172a;
  font-weight: 850;
}

.storage-stat-card small {
  display: block;
  color: #64748b;
  font-size: 12px;
  margin-top: 8px;
}

.storage-stat-orange { border-top-color: #f97316; }
.storage-stat-orange .storage-stat-icon { color: #ea580c; background: #ffedd5; }
.storage-stat-purple { border-top-color: #8b5cf6; }
.storage-stat-purple .storage-stat-icon { color: #7c3aed; background: #ede9fe; }
.storage-stat-blue { border-top-color: #0ea5e9; }
.storage-stat-blue .storage-stat-icon { color: #0284c7; background: #e0f2fe; }

.armazenamento-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 18px;
}

.armazenamento-main-card,
.storage-insight-card,
.storage-ai-banner {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 18px;
  box-shadow: 0 16px 45px rgba(15, 23, 42, .05);
}

.armazenamento-card-header {
  padding: 18px 20px 8px;
  border-bottom: none;
}

.armazenamento-card-header h3 {
  color: #0f172a;
  font-size: 17px;
  margin: 0 0 4px;
}

.armazenamento-card-header p {
  color: #64748b;
  margin: 0;
  font-size: 13px;
}

.armazenamento-filters {
  display: grid;
  grid-template-columns: 1.5fr repeat(6, minmax(105px, 1fr)) auto;
  gap: 10px;
  padding: 14px 20px 16px;
  align-items: end;
}

.filter-field label {
  display: block;
  font-size: 11px;
  font-weight: 800;
  color: #475569;
  margin-bottom: 6px;
}

.filter-field input,
.filter-field select {
  width: 100%;
  min-height: 38px;
  border: 1px solid #dbe5ef;
  border-radius: 12px;
  padding: 8px 10px;
  color: #0f172a;
  background: #fff;
  font-size: 12px;
}

.input-with-icon {
  position: relative;
}

.input-with-icon i {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: #94a3b8;
}

.input-with-icon input {
  padding-left: 34px;
}

.filter-actions {
  display: flex;
  gap: 8px;
  align-items: center;
}

.storage-table-wrap {
  overflow-x: auto;
  padding: 0 12px 16px;
}

.storage-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  min-width: 1060px;
}

.storage-table th {
  background: #f8fafc;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: .04em;
  font-size: 10px;
  font-weight: 850;
  padding: 12px;
  border-top: 1px solid #edf2f7;
  border-bottom: 1px solid #edf2f7;
  text-align: left;
}

.storage-table th:first-child {
  border-radius: 12px 0 0 12px;
}

.storage-table th:last-child {
  border-radius: 0 12px 12px 0;
}

.storage-table td {
  padding: 13px 12px;
  border-bottom: 1px solid #edf2f7;
  color: #334155;
  font-size: 12px;
  vertical-align: middle;
}

.storage-location-cell {
  display: flex;
  gap: 10px;
  align-items: center;
  min-width: 180px;
}

.storage-location-icon {
  width: 34px;
  height: 34px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: #ecfdf5;
  color: #059669;
}

.storage-location-cell strong {
  display: block;
  color: #0f172a;
  font-weight: 800;
}

.storage-location-cell small {
  display: block;
  color: #64748b;
  margin-top: 2px;
}

.storage-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 23px;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.bool-yes,
.backup-ok,
.risk-baixo {
  color: #047857;
  background: #d1fae5;
}

.bool-no,
.backup-no,
.risk-alto {
  color: #b91c1c;
  background: #fee2e2;
}

.backup-warn,
.risk-medio {
  color: #b45309;
  background: #fef3c7;
}

.risk-critico {
  color: #7f1d1d;
  background: #fecaca;
}

.type-nuvem,
.type-sistema_interno,
.type-banco_dados {
  color: #0369a1;
  background: #e0f2fe;
}

.type-fisico {
  color: #047857;
  background: #d1fae5;
}

.type-terceiro {
  color: #7c2d12;
  background: #ffedd5;
}

.type-digital,
.type-planilha,
.type-email,
.type-outro {
  color: #475569;
  background: #f1f5f9;
}

.storage-row-actions {
  display: flex;
  gap: 6px;
}

.storage-row-actions button {
  width: 30px;
  height: 30px;
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #475569;
  border-radius: 10px;
  cursor: pointer;
  transition: .2s ease;
}

.storage-row-actions button:hover {
  color: #059669;
  border-color: #86efac;
  background: #f0fdf4;
}

.armazenamento-side-panel {
  display: grid;
  gap: 14px;
  align-content: start;
}

.storage-insight-card {
  padding: 18px;
}

.storage-insight-card h4 {
  color: #0f172a;
  margin: 0 0 14px;
  font-size: 14px;
  font-weight: 850;
}

.storage-dist-row,
.storage-rec-item,
.storage-risk-row {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid #f1f5f9;
  font-size: 12px;
}

.storage-dist-row:last-child,
.storage-rec-item:last-child,
.storage-risk-row:last-child {
  border-bottom: none;
}

.storage-risk-row div {
  flex: 1;
  height: 7px;
  background: #f1f5f9;
  border-radius: 999px;
  overflow: hidden;
}

.storage-risk-row i {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, #10b981, #f59e0b, #ef4444);
  border-radius: inherit;
}

.storage-rec-item i {
  color: #059669;
}

.storage-ai-banner {
  margin-top: 18px;
  padding: 16px 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  background: linear-gradient(135deg, #ecfdf5, #ffffff);
}

.storage-ai-banner > div {
  display: flex;
  gap: 12px;
  align-items: center;
}

.storage-ai-banner i {
  color: #059669;
  font-size: 18px;
}

.storage-ai-banner strong {
  color: #0f172a;
}

.storage-ai-banner p {
  color: #64748b;
  margin: 2px 0 0;
  font-size: 12px;
}

.storage-empty-state {
  display: grid;
  place-items: center;
  text-align: center;
  padding: 44px 20px;
}

.storage-empty-state > div {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  border-radius: 22px;
  color: #059669;
  background: #d1fae5;
  font-size: 26px;
  margin-bottom: 14px;
}

.storage-empty-state h4 {
  margin: 0 0 6px;
  color: #0f172a;
}

.storage-empty-state p {
  max-width: 520px;
  color: #64748b;
}

.storage-modal .modal-content {
  border-radius: 22px;
}

.storage-modal-content {
  width: min(1080px, calc(100vw - 32px));
  max-height: calc(100vh - 36px);
  display: flex;
  flex-direction: column;
}

.storage-details-content {
  width: min(860px, calc(100vw - 32px));
}

.storage-modal-body {
  display: grid;
  gap: 18px;
  overflow: auto;
  padding: 20px 24px;
}

.storage-form-section {
  padding: 18px;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  background: #fbfdff;
}

.storage-form-section h4 {
  margin: 0 0 14px;
  color: #0f172a;
  font-size: 15px;
  font-weight: 850;
}

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

.storage-form-grid label {
  font-weight: 750;
  color: #334155;
  font-size: 12px;
}

.form-span-2 {
  grid-column: span 2;
}

.storage-risk-suggestion {
  display: inline-flex;
  margin-top: 7px;
  color: #047857;
  font-weight: 750;
}

.storage-modal-footer {
  position: sticky;
  bottom: 0;
  background: #fff;
  border-top: 1px solid #e2e8f0;
  z-index: 1;
}

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

.storage-detail-item {
  padding: 14px;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  background: #f8fafc;
}

.storage-detail-item.wide {
  grid-column: span 2;
}

.storage-detail-item span {
  display: block;
  color: #64748b;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: 6px;
}

.storage-detail-item strong {
  display: block;
  color: #0f172a;
  font-size: 13px;
  line-height: 1.45;
  white-space: pre-wrap;
}

body.dark .armazenamento-hero-actions h2,
body.dark .armazenamento-card-header h3,
body.dark .storage-stat-card strong,
body.dark .storage-insight-card h4,
body.dark .storage-ai-banner strong,
body.dark .storage-form-section h4,
body.dark .storage-detail-item strong,
body.dark .storage-location-cell strong {
  color: #f8fafc;
}

body.dark .armazenamento-main-card,
body.dark .storage-insight-card,
body.dark .storage-stat-card,
body.dark .storage-form-section,
body.dark .storage-detail-item,
body.dark .storage-modal-footer {
  background: #111827;
  border-color: rgba(148, 163, 184, .2);
}

body.dark .storage-table th,
body.dark .storage-detail-item {
  background: #0f172a;
}

body.dark .storage-table td {
  border-bottom-color: rgba(148, 163, 184, .16);
}

@media (max-width: 1280px) {
  .armazenamento-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .armazenamento-layout {
    grid-template-columns: 1fr;
  }
  .armazenamento-filters {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 768px) {
  .armazenamento-hero-actions,
  .storage-ai-banner {
    flex-direction: column;
    align-items: stretch;
  }
  .armazenamento-stats-grid,
  .armazenamento-filters,
  .storage-form-grid,
  .storage-detail-grid {
    grid-template-columns: 1fr;
  }
  .form-span-2,
  .storage-detail-item.wide {
    grid-column: span 1;
  }
}
/* ===== KPI GRID (Dashboard) ===== */
#kpi-stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  position: relative;
  z-index: 1;
}

.dashboard-page .stats-grid {
  margin-top: 28px !important;
}

.dashboard-page #kpi-stats-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 16px;
}

.dashboard-page #kpi-stats-grid .kpi-card {
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.08);
}

#kpi-stats-grid .kpi-card {
  background: #ffffff;
  border: 1px solid #f1f5f9;
  border-radius: 16px;
  padding: 18px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
  position: relative;
  overflow: hidden;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  min-width: 0;
  min-height: 118px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.kpi-progress {
  height: 5px;
  width: 100%;
  background: #eef2f7;
  border-radius: 999px;
  overflow: hidden;
  margin-top: 12px;
  margin-bottom: 0;
  align-self: stretch;
}

.kpi-progress span {
  display: block;
  height: 100%;
  border-radius: 999px;
}

.dashboard-page #kpi-stats-grid .kpi-value {
  font-size: 1.75rem;
  line-height: 1;
}

.dashboard-page #kpi-stats-grid .kpi-label {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
}

.kpi-toggle {
  margin-top: 1rem;
  position: relative;
  z-index: 2;
  pointer-events: auto;
}

#kpi-stats-grid .kpi-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 0;
  background: transparent;
}

#kpi-stats-grid .kpi-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.1);
}

#kpi-stats-grid .kpi-card-head {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  justify-content: space-between;
  flex-direction: row-reverse;
  text-align: left;
}

#kpi-stats-grid .kpi-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--kpi-icon-bg, rgba(22, 163, 74, 0.12));
  color: var(--kpi-icon-color, #16a34a);
  font-size: 1.15rem;
  flex-shrink: 0;
}

#kpi-stats-grid .kpi-label {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-weight: 700;
  color: #64748b;
  text-align: left;
}

#kpi-stats-grid .kpi-value {
  font-size: 1.75rem;
  line-height: 1;
  font-weight: 800;
  color: #0f172a;
  text-align: left;
}

#kpi-stats-grid .kpi-meta {
  font-size: 0.8rem;
  color: #94a3b8;
}

#kpi-stats-grid .kpi-skeleton .kpi-icon,
#kpi-stats-grid .kpi-skeleton .kpi-label,
#kpi-stats-grid .kpi-skeleton .kpi-value,
#kpi-stats-grid .kpi-skeleton .kpi-meta,
#kpi-stats-grid .kpi-skeleton .kpi-progress span {
  background: linear-gradient(90deg, #eef2f7 25%, #f8fafc 50%, #eef2f7 75%);
  background-size: 200% 100%;
  color: transparent;
  animation: kpi-shimmer 1.2s infinite;
}

#kpi-stats-grid .kpi-skeleton .kpi-label {
  width: 80px;
  height: 10px;
  border-radius: 999px;
}

#kpi-stats-grid .kpi-skeleton .kpi-value {
  width: 42px;
  height: 26px;
  border-radius: 8px;
  margin-top: 8px;
}

#kpi-stats-grid .kpi-skeleton .kpi-meta {
  width: 110px;
  height: 9px;
  border-radius: 999px;
  margin-top: 8px;
}

#kpi-stats-grid .kpi-skeleton .kpi-progress span {
  width: 65% !important;
}

@keyframes kpi-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
/* ===== DASHBOARD KPI (estilo do anexo) ===== */
.dashboard-page .stats-grid .stat-card {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 14px;
  padding: 0.75rem 1rem;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  text-align: left;
  min-height: 108px;
}

.dashboard-page .stats-grid .stat-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--kpi-accent, #22c55e);
}

.dashboard-page .stats-grid .stat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.12);
}

.dashboard-page .stat-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.dashboard-page .stat-icon {
  width: 28px;
  height: 28px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--kpi-accent-soft, rgba(22, 163, 74, 0.12));
  color: var(--kpi-accent, #16a34a);
  font-size: 0.78rem;
  position: static;
}

.dashboard-page .stat-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.dashboard-page .stat-metric {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
  flex: 1;
}

.dashboard-page .stats-grid .stat-value {
  font-size: 1.7rem;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 0;
}

.dashboard-page .stats-grid .stat-label {
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  line-height: 1.2;
}

.dashboard-page .stats-grid .stat-change {
  font-size: 0.6rem;
  margin-top: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.12rem 0.35rem;
  border-radius: 999px;
  background: rgba(22, 163, 74, 0.1);
  color: #15803d;
  width: fit-content;
  align-self: flex-start;
}

.dashboard-page .card-header {
  background: #ffffff;
  border-bottom: 1px solid #f1f5f9;
}

.dashboard-page .card-header p {
  display: none;
}

.dashboard-page .header-left .text-muted {
  color: #94a3b8;
}

.dashboard-page .stat-sparkline {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  height: 42px;
  width: 96px;
  margin-top: 0;
}

.dashboard-page .stat-sparkline span {
  width: 6px;
  border-radius: 4px;
  background: rgba(22, 163, 74, 0.25);
}

.dashboard-page .stats-grid .progress {
  margin: 0.18rem 0 0;
  max-width: 100%;
  height: 0.24rem;
}

.dashboard-page .stats-grid .stat-extra {
  display: none;
}

.dashboard-page .stats-grid #lgpd-score-explanation {
  font-size: 0.75rem;
  color: #475569;
}

.dashboard-layout {
  display: grid;
  grid-template-columns: minmax(0, 2.1fr) minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
}

.dashboard-left,
.dashboard-right {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}


.card-header.card-header-inline {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
}

.card-header.card-header-inline .header-actions {
  display: flex;
  gap: 0.5rem;
}

.alert-list {
  display: flex;
  flex-direction: column;
  gap: 0.8rem;
}

.alert-item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.45rem;
  align-items: center;
  padding: 0.45rem 0.6rem;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #f8fafc;
}

.alert-icon {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0.08);
  color: #0f172a;
}

.alert-content strong {
  display: block;
  font-size: 0.75rem;
  margin-bottom: 0.15rem;
}

.alert-content span {
  font-size: 0.65rem;
  color: var(--text-secondary);
}

.alert-time {
  font-size: 0.62rem;
  color: var(--text-muted);
}

.alert-item.priority-high {
  border-left: 4px solid #ef4444;
}

.alert-item.priority-medium {
  border-left: 4px solid #f59e0b;
}

.alert-item.priority-low {
  border-left: 4px solid #22c55e;
}

.actions-table {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
}

.action-row {
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 0.45rem 0.6rem;
  background: #ffffff;
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 0.6rem;
  align-items: center;
  text-align: left;
  cursor: pointer;
  transition: all 0.2s ease;
}

.action-row:hover {
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
  transform: translateY(-2px);
  border-color: #d6e3dc;
}

.action-name {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-primary);
}

.action-count {
  font-size: 0.65rem;
  color: var(--text-secondary);
}

.activity-list {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.activity-item {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 0.45rem;
  align-items: center;
  padding: 0.45rem 0.6rem;
  border-radius: 8px;
  border: 1px solid #e5e7eb;
  background: #f8fafc;
}

.activity-icon {
  width: 24px;
  height: 24px;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
}

.activity-content strong {
  display: block;
  font-size: 0.75rem;
  margin-bottom: 0.1rem;
}

.activity-content span {
  font-size: 0.65rem;
  color: var(--text-secondary);
}

.activity-time {
  font-size: 0.62rem;
  color: var(--text-muted);
}

.activity-empty {
  font-size: 0.75rem;
  color: var(--text-muted);
}

.risk-layout {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.5rem;
  align-items: center;
}

.risk-circle {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  border: 8px solid rgba(22, 163, 74, 0.2);
  border-top-color: #f59e0b;
  border-right-color: #f59e0b;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
}

.risk-circle strong {
  font-size: 1.4rem;
  color: var(--text-primary);
}

.risk-circle span {
  font-size: 0.75rem;
  color: var(--text-secondary);
}

.risk-details h4 {
  font-size: 0.95rem;
  margin-bottom: 0.5rem;
}

.risk-details ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.4rem;
  color: var(--text-secondary);
  font-size: 0.85rem;
}

.dashboard-page .stats-grid .stat-change.negative {
  background: rgba(239, 68, 68, 0.12);
  color: #dc2626;
}

.dashboard-page .stats-grid .stat-change.positive {
  background: rgba(22, 163, 74, 0.12);
  color: #15803d;
}

.dashboard-page .stats-grid .kpi-card {
  padding-top: 1.5rem;
}

.dashboard-page .stats-grid .kpi-card-head {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.dashboard-page .stats-grid .kpi-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--kpi-icon-bg, rgba(22, 163, 74, 0.12));
  color: var(--kpi-icon-color, #16a34a);
  flex-shrink: 0;
  font-size: 1.1rem;
}

.dashboard-page .stats-grid .kpi-content {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.dashboard-page .stats-grid .kpi-label {
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #64748b;
  font-weight: 700;
}

.dashboard-page .stats-grid .kpi-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: #0f172a;
}

.dashboard-page .stats-grid .kpi-meta {
  font-size: 0.75rem;
  color: #94a3b8;
}
/* ===== Landing Page (Vendas) ===== */
.landing-page {
  background: #f7f9fb;
  color: #0f172a;
}

.landing-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid #eef2f7;
}

.landing-container {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.landing-header .landing-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.4rem 1.5rem;
}

.brand {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-weight: 700;
  color: #15803d;
}

.landing-nav {
  display: flex;
  align-items: center;
  gap: 1.4rem;
  font-size: 0.98rem;
}

.landing-nav a {
  color: #475569;
  text-decoration: none;
  font-weight: 500;
}

.landing-nav .nav-cta {
  padding: 0.6rem 1.2rem;
  border-radius: 999px;
  background: #15803d;
  color: #ffffff;
  box-shadow: 0 10px 20px rgba(22, 163, 74, 0.25);
}

.hero-section {
  padding: 6.5rem 0 4.5rem;
  background: linear-gradient(120deg, #e6f9ee 0%, #ffffff 55%, #f7f9fb 100%);
  position: relative;
  overflow: hidden;
}

.hero-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(22, 163, 74, 0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(22, 163, 74, 0.05) 1px, transparent 1px);
  background-size: 120px 120px;
  opacity: 0.35;
  pointer-events: none;
}

.impact-line {
  text-align: center;
  font-size: 1.1rem;
  font-weight: 600;
  color: #0f172a;
  padding: 2.5rem 1.5rem 0;
}

.hero-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 1.8rem;
  align-items: center;
  position: relative;
  z-index: 1;
}

.hero-content h1 {
  font-size: clamp(2.9rem, 4.6vw, 3.9rem);
  margin-bottom: 1rem;
  color: #0f172a;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.hero-content p {
  font-size: 1.05rem;
  color: #64748b;
  line-height: 1.75;
  max-width: 520px;
}

.hero-eyebrow {
  display: inline-flex;
  padding: 0.3rem 0.8rem;
  border-radius: 999px;
  background: #d1fae5;
  color: #15803d;
  font-size: 0.75rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  margin-bottom: 1rem;
}

.hero-actions {
  display: flex;
  gap: 1rem;
  margin: 2rem 0 1.5rem;
  flex-wrap: wrap;
}

.cta-primary,
.cta-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.85rem 1.6rem;
  border-radius: 999px;
  text-decoration: none;
  font-weight: 600;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.cta-primary {
  background: #15803d;
  color: #ffffff;
  box-shadow: 0 14px 28px rgba(22, 163, 74, 0.3);
  border: 1px solid rgba(22, 163, 74, 0.2);
}

.cta-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 36px rgba(22, 163, 74, 0.35);
}

.cta-secondary {
  border: 1px solid #cfe7d8;
  color: #1f2937;
  background: #ffffff;
  opacity: 0.9;
}

.cta-secondary:hover {
  box-shadow: 0 10px 22px rgba(22, 163, 74, 0.15);
  transform: translateY(-2px);
}

.cta-large {
  padding: 1rem 2.2rem;
  font-size: 1rem;
}

.hero-trust {
  display: flex;
  gap: 1.2rem;
  color: #64748b;
  font-size: 0.85rem;
  flex-wrap: wrap;
}

.hero-visual {
  display: flex;
  justify-content: center;
}

.hero-card {
  background: #ffffff;
  border-radius: 22px;
  padding: 1.6rem;
  box-shadow: 0 22px 50px rgba(15, 23, 42, 0.16);
  width: 100%;
  max-width: 360px;
  transform: translateY(0);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hero-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 26px 60px rgba(15, 23, 42, 0.2);
}

.hero-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-weight: 600;
  color: #15803d;
  margin-bottom: 1rem;
}

.hero-card-body {
  display: grid;
  gap: 0.8rem;
}

.hero-kpi {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #334155;
  font-size: 0.9rem;
  gap: 0.6rem;
}

.hero-kpi i {
  color: #16a34a;
  margin-right: 0.35rem;
}

.hero-card-footer {
  margin-top: 1rem;
  font-size: 0.85rem;
  color: #64748b;
}

.section {
  padding: 5.5rem 0;
}

.section-alt {
  background: linear-gradient(180deg, #f8fafc 0%, #ffffff 100%);
}

.section-content h2 {
  font-size: clamp(2.1rem, 3.2vw, 2.9rem);
  margin-bottom: 1rem;
  letter-spacing: -0.01em;
}

.lead {
  color: #6b7280;
  font-size: 1.05rem;
  line-height: 1.75;
  max-width: 700px;
}

.problem-section .problem-list {
  margin: 2rem 0;
  display: grid;
  gap: 1.2rem;
  font-size: 1.05rem;
  color: #0f172a;
}

.problem-section .problem-list p {
  position: relative;
  padding-left: 1.5rem;
}

.problem-section .problem-list p::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5rem;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #16a34a;
  box-shadow: 0 0 0 4px rgba(22, 163, 74, 0.12);
}

.problem-cta {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
}

.problem-cta .cta-secondary {
  padding: 0.9rem 2rem;
  border-color: #16a34a;
  color: #15803d;
}

.tech-grid,
.ia-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2.5rem;
  align-items: center;
}

.tech-list {
  margin-top: 1.5rem;
  display: grid;
  gap: 0.7rem;
  color: #1f2937;
  font-size: 0.98rem;
}

.flow-block {
  margin-top: 1.8rem;
  padding: 1.2rem 1.4rem;
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 12px 28px rgba(15, 23, 42, 0.08);
}

.flow-block h3 {
  margin-bottom: 0.8rem;
  font-size: 1rem;
  color: #0f172a;
}

.flow-steps {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.flow-steps span {
  background: #e2f7ec;
  color: #15803d;
  padding: 0.35rem 0.8rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
}

.fluid-card,
.ia-card {
  background: #ffffff;
  border-radius: 18px;
  padding: 1.6rem;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
}

.fluid-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.6rem 0;
  border-bottom: 1px solid #eef2f7;
  color: #334155;
}

.fluid-row:last-child {
  border-bottom: none;
}

.fluid-note {
  margin-top: 1rem;
  color: #64748b;
  font-size: 0.85rem;
}

.dashboard-section .dashboard-mock {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.2rem;
}

.dashboard-section,
.tech-shift,
.ia-section {
  position: relative;
}

.dashboard-section::before,
.tech-shift::before,
.ia-section::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: radial-gradient(rgba(22, 163, 74, 0.08) 1px, transparent 1px);
  background-size: 140px 140px;
  opacity: 0.25;
  pointer-events: none;
}

.dashboard-kpi {
  background: #ffffff;
  border-radius: 16px;
  padding: 1.2rem;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.1);
  color: #1f2937;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.dashboard-kpi:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 34px rgba(15, 23, 42, 0.16);
}

.section-actions {
  margin-top: 2rem;
  display: flex;
  justify-content: center;
}

.legal-note {
  margin-top: 1.5rem;
  padding: 1rem 1.2rem;
  background: #f8fafc;
  border-left: 3px solid #16a34a;
  color: #475569;
  border-radius: 12px;
  font-size: 0.85rem;
}

.audience-grid {
  margin-top: 2rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.5rem;
}

.audience-card {
  background: #ffffff;
  padding: 1.6rem;
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(15, 23, 42, 0.08);
}

.audience-card.negative {
  border: 1px solid #fee2e2;
}

.audience-card h3 {
  margin-bottom: 1rem;
}

.authority-tags {
  margin-top: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
}

.authority-tags span {
  background: #e2f7ec;
  color: #15803d;
  padding: 0.4rem 0.8rem;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 600;
}

.credibility-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 2rem;
  align-items: center;
}

.credibility-list p {
  margin-bottom: 0.8rem;
  color: #475569;
  font-weight: 500;
}

.testimonials-section {
  background: #0f172a;
  color: #ffffff;
}

.testimonials-section .lead {
  color: #cbd5f5;
}

.testimonials-grid {
  margin-top: 2.5rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 1.5rem;
}

.testimonial-card {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 1.4rem;
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.25);
}

.testimonial-stars {
  color: #fbbf24;
  margin-bottom: 0.8rem;
}

.testimonial-author {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  margin-top: 1.2rem;
}

.testimonial-author .avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #16a34a;
  color: #ffffff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}

.contact-section {
  background: #f7f9fb;
}

.contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 2.5rem;
  align-items: start;
}

.contact-form {
  background: #ffffff;
  padding: 1.8rem;
  border-radius: 18px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
  display: grid;
  gap: 1rem;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
  padding: 0.85rem;
  border-radius: 10px;
  border: 1px solid #e5eaf3;
  font-size: 0.95rem;
}

.contact-form .form-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 1rem;
}

/* Garantia visual da landing (caso outras regras sobrescrevam) */
.landing-page .impact-line {
  max-width: 980px;
  margin: 0 auto;
  text-align: center;
}

.landing-page .testimonials-section {
  background: #0f172a;
  color: #ffffff;
}

.landing-page .testimonials-section .lead {
  color: #cbd5f5;
}

.landing-page .testimonial-card {
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.25);
}

.landing-page .contact-form {
  background: #ffffff;
  border-radius: 18px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
}

.landing-page .contact-form input,
.landing-page .contact-form select,
.landing-page .contact-form textarea {
  width: 100%;
  padding: 0.85rem;
  border-radius: 10px;
  border: 1px solid #e5eaf3;
  font-size: 0.95rem;
}

.final-cta {
  background: #0f172a;
  color: #ffffff;
  text-align: center;
}

.final-cta h2 {
  color: #ffffff;
}

.final-cta .lead {
  color: #cbd5f5;
}

.cta-support {
  margin-top: 1rem;
  color: #cbd5f5;
  font-size: 0.9rem;
}

.landing-footer {
  padding: 2rem 0;
  background: #ffffff;
  border-top: 1px solid #eef2f7;
}

.landing-footer .landing-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #64748b;
  font-size: 0.9rem;
}

.landing-footer a {
  color: #15803d;
  text-decoration: none;
}

.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-delay-1 {
  transition-delay: 0.15s;
}

.reveal-delay-2 {
  transition-delay: 0.3s;
}

.hero-animate .hero-eyebrow,
.hero-animate h1,
.hero-animate p,
.hero-animate .hero-actions,
.hero-animate .hero-trust,
.hero-animate .hero-card {
  opacity: 0;
  transform: translateY(18px);
  animation: heroFade 0.8s ease forwards;
}

.hero-animate .hero-eyebrow { animation-delay: 0.1s; }
.hero-animate h1 { animation-delay: 0.25s; }
.hero-animate p { animation-delay: 0.4s; }
.hero-animate .hero-actions { animation-delay: 0.55s; }
.hero-animate .hero-trust { animation-delay: 0.7s; }
.hero-animate .hero-card { animation-delay: 0.85s; }

@keyframes heroFade {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (max-width: 900px) {
  .landing-nav {
    display: none;
  }

  .landing-footer .landing-container {
    flex-direction: column;
    gap: 0.6rem;
  }
}
/* ===== Cronograma / Agenda ===== */
.cronograma-header-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.cronograma-menu {
  position: relative;
  display: inline-block;
}

.cronograma-menu button {
  background: transparent;
  border: none;
  cursor: pointer;
  color: #6b7280;
  font-size: 1rem;
}

.cronograma-menu .cronograma-dropdown {
  position: absolute;
  right: 0;
  top: 28px;
  background: #ffffff;
  border: 1px solid #e5eaf3;
  border-radius: 10px;
  box-shadow: 0 10px 20px rgba(15, 23, 42, 0.12);
  padding: 0.35rem;
  min-width: 140px;
  z-index: 50;
  display: none;
}

.cronograma-menu .cronograma-dropdown.show {
  display: block;
}

.cronograma-menu .cronograma-dropdown button {
  width: 100%;
  text-align: left;
  padding: 0.45rem 0.6rem;
  border-radius: 8px;
  font-size: 0.85rem;
}

.agenda-card {
  margin-bottom: 1.5rem;
}

.agenda-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.25rem 1.5rem 0;
}

.agenda-actions {
  display: flex;
  gap: 0.5rem;
}

.agenda-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.5rem;
  flex-wrap: wrap;
}

.agenda-nav {
  display: flex;
  gap: 0.5rem;
}

.agenda-filters {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

.agenda-search {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem 0.6rem;
  border: 1px solid #e5eaf3;
  border-radius: 10px;
  background: #ffffff;
}

.agenda-search input {
  border: none;
  outline: none;
  min-width: 220px;
  font-size: 0.85rem;
}

.agenda-calendar {
  padding: 0 1.5rem 1.5rem;
}

.agenda-calendar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.75rem;
}

.agenda-month {
  font-weight: 600;
  color: #0f172a;
}

.agenda-view-toggle {
  display: flex;
  gap: 0.35rem;
}

.agenda-view-toggle .is-active {
  background: #e5f4ed;
  border-color: #22c55e;
  color: #15803d;
}

.agenda-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 1px;
  background: #e5eaf3;
  border: 1px solid #e5eaf3;
  border-radius: 12px;
  overflow: hidden;
}

.agenda-grid .agenda-cell {
  background: #ffffff;
  min-height: 90px;
  padding: 0.4rem 0.5rem;
  font-size: 0.75rem;
}

.agenda-grid .agenda-cell.header {
  background: #f8fafc;
  font-weight: 600;
  text-transform: lowercase;
  color: #334155;
  min-height: 32px;
}

.agenda-grid .agenda-date {
  font-size: 0.75rem;
  color: #0f172a;
  margin-bottom: 0.3rem;
  font-weight: 600;
}

.agenda-grid .agenda-event {
  background: #e0f2fe;
  color: #0369a1;
  border-radius: 6px;
  padding: 0.2rem 0.35rem;
  margin-bottom: 0.2rem;
  font-size: 0.7rem;
  display: block;
}

.agenda-grid .agenda-event.completed {
  background: #dcfce7;
  color: #15803d;
}

.agenda-grid .agenda-event.pending {
  background: #fef3c7;
  color: #b45309;
}

.agenda-grid .agenda-empty {
  color: #94a3b8;
  font-size: 0.7rem;
}
/* ===== UNILGPD - ESTILOS GLOBAIS ===== */

:root {
  /* Cores principais */
  --primary-green: #16a34a;
  --primary-green-dark: #15803d;
  --primary-green-light: #22c55e;
  --background-light: #f8fafc;
  --background-white: #ffffff;
  --text-primary: #1e293b;
  --text-secondary: #64748b;
  --text-muted: #94a3b8;
  --border-color: #e2e8f0;
  --border-light: #f1f5f9;
  --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  
  /* Tema escuro */
  --dark-bg: #0f172a;
  --dark-surface: #1e293b;
  --dark-text: #f1f5f9;
  --dark-border: #334155;
}

/* Reset e base */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Inter', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  background-color: var(--background-white);
  color: var(--text-primary);
  line-height: 1.6;
  transition: background-color 0.3s ease, color 0.3s ease;
}

/* Layout principal */
.app-container {
  display: flex;
  min-height: 100vh;
}

/* Sidebar */
.sidebar {
  width: 250px;
  background: var(--background-white);
  border-right: 1px solid var(--border-color);
  position: fixed;
  height: 100vh;
  left: 0;
  top: 0;
  z-index: 1000;
  transition: transform 0.3s ease;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.sidebar-header {
  padding: 1rem 1.2rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--primary-green);
  color: white;
}

.sidebar-header h1 {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 0.3rem;
}

.sidebar-header p {
  font-size: 0.75rem;
  opacity: 0.9;
}

.sidebar-nav {
  padding: 0.9rem 0.85rem 6rem;
  overflow-y: auto;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.sidebar-nav::-webkit-scrollbar {
  width: 0;
}

.sidebar-nav {
  scrollbar-width: none;
  scrollbar-color: transparent transparent;
}

.nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0.6rem 1rem;
  color: var(--text-primary);
  text-decoration: none;
  transition: all 0.18s ease;
  border-left: 3px solid transparent;
}

.nav-item:hover {
  background-color: #f8fafc;
  border-left-color: #e5e7eb;
  color: #0f172a;
}

.nav-item.active {
  background-color: rgba(22, 163, 74, 0.08);
  border-left-color: var(--primary-green);
  color: var(--primary-green);
  font-weight: 600;
}

.nav-icon,
.nav-item svg {
  width: 20px;
  height: 20px;
  stroke-width: 1.6;
  flex-shrink: 0;
}

.nav-item svg {
  color: inherit;
}

.nav-section-title {
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #94a3b8;
  font-weight: 600;
  padding: 0.75rem 1.25rem 0.4rem;
}

/* Central de Ajuda - Seção Destacada na Sidebar */
.sidebar-help-section {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 1rem 1.2rem;
  background: var(--background-white);
  border-top: 1px solid var(--border-color);
  margin-top: auto;
}

.sidebar-help-section .btn-primary {
  width: 100%;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: center;
}

.sidebar-help-section .btn-primary i {
  font-size: 0.75rem;
}

/* Navegação com submenu */
.nav-section {
  margin-bottom: 0.5rem;
}

.nav-section-header {
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.nav-section-header .nav-arrow {
  transition: transform 0.3s ease;
  font-size: 0.75rem;
  margin-left: auto;
}

.nav-section-header.active .nav-arrow {
  transform: rotate(180deg);
}

.nav-submenu {
  display: none;
  background-color: rgba(0, 0, 0, 0.02);
}

.nav-submenu.show {
  display: block;
}

.nav-subitem {
  padding-left: 2.5rem !important;
  font-size: 0.875rem;
}

/* Conteúdo principal */
.main-content {
  flex: 1;
  margin-left: 250px;
  min-height: 100vh;
}

/* Header */
.header {
  background: var(--background-white);
  border-bottom: 1px solid var(--border-color);
  height: 76px;
  padding: 0 2rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 6px 18px rgba(15, 23, 42, 0.06);
}

.header-left h2 {
  font-size: 1.45rem;
  font-weight: 600;
  color: var(--text-primary);
}

.header-right {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.header-icons {
  display: flex;
  align-items: center;
  gap: 1rem;
  position: relative;
}

.header-icon {
  position: relative;
  width: 32px;
  height: 32px;
  border-radius: 999px;
  border: none;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #0f172a;
  cursor: pointer;
  transition: all 0.2s ease;
}

.header-icon svg {
  width: 20px;
  height: 20px;
  stroke-width: 1.6;
}

.header-icon:hover {
  background: #f1f5f9;
  color: #0f172a;
}

.header-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  background: #22c55e;
  color: #ffffff;
  font-size: 0.55rem;
  font-weight: 700;
  line-height: 1;
  padding: 0.15rem 0.3rem;
  border-radius: 999px;
}

.user-menu {
  position: relative;
}

.user-trigger {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.35rem 0.5rem;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 999px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.user-trigger:hover {
  background: #f8fafc;
  border-color: #e5e7eb;
}

.user-avatar {
  width: 36px;
  height: 36px;
  background: var(--primary-green);
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.04em;
}

.user-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

.theme-toggle {
  background: transparent;
  border: none;
  padding: 0;
}

.user-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.1;
}

.user-name {
  font-size: 0.95rem;
  font-weight: 700;
  color: #0f172a;
}

.user-role {
  font-size: 0.75rem;
  color: #94a3b8;
  font-weight: 500;
}

.user-caret {
  width: 16px;
  height: 16px;
  color: #94a3b8;
}

.user-caret svg {
  width: 16px;
  height: 16px;
  stroke-width: 1.6;
}

.user-dropdown {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 16px 32px rgba(15, 23, 42, 0.12);
  padding: 0.4rem;
  min-width: 180px;
  display: flex;
  flex-direction: column;
  opacity: 0;
  transform: translateY(-6px);
  pointer-events: none;
  z-index: 200;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.user-dropdown.show,
.user-dropdown.active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.user-dropdown-item {
  width: 100%;
  text-align: left;
  padding: 0.55rem 0.75rem;
  border-radius: 8px;
  border: none;
  background: transparent;
  font-size: 0.85rem;
  color: #0f172a;
  cursor: pointer;
  transition: all 0.18s ease;
  text-decoration: none;
}

.user-dropdown-item:hover {
  background: #f1f5f9;
  color: #0f172a;
}

.notifications-panel {
  position: fixed;
  width: min(380px, calc(100vw - 32px));
  background: #ffffff;
  border: 1px solid rgba(226, 232, 240, 0.9);
  border-radius: 20px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.16);
  padding: 0;
  display: flex;
  flex-direction: column;
  opacity: 0;
  transform: translateY(-8px) scale(0.98);
  pointer-events: none;
  z-index: 300;
  overflow: hidden;
  transition: opacity 0.2s ease, transform 0.2s ease;
}

.notifications-panel.open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

.notifications-panel::before {
  content: "";
  position: absolute;
  top: -7px;
  right: 76px;
  width: 14px;
  height: 14px;
  background: #ffffff;
  border-left: 1px solid rgba(226, 232, 240, 0.9);
  border-top: 1px solid rgba(226, 232, 240, 0.9);
  transform: rotate(45deg);
}

.notifications-header {
  position: relative;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.35rem 1.35rem 0.85rem;
  border-bottom: 1px solid #eef2f7;
}

.notifications-header strong {
  display: block;
  color: #0f172a;
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  margin-bottom: 0.25rem;
}

.notifications-header span {
  color: #64748b;
  font-size: 0.86rem;
  font-weight: 500;
}

.notifications-count {
  flex-shrink: 0;
  border-radius: 999px;
  background: #e8f7ef;
  color: #14804a !important;
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  padding: 0.35rem 0.65rem;
}

.notifications-mark-all {
  align-self: flex-end;
  margin: 0.8rem 1.25rem 0.4rem;
  border: none;
  background: transparent;
  color: #16834f;
  cursor: pointer;
  font-size: 0.82rem;
  font-weight: 700;
}

.notifications-mark-all:disabled {
  color: #94a3b8;
  cursor: default;
}

.notifications-list {
  display: flex;
  flex-direction: column;
  max-height: 430px;
  overflow-y: auto;
  padding: 0.35rem 0.9rem 0.75rem;
}

.notification-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  width: 100%;
  gap: 0.85rem;
  padding: 0.95rem 0.75rem;
  border: 1px solid transparent;
  border-left: 3px solid transparent;
  border-radius: 16px;
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}

.notification-item:hover {
  background: #f8fafc;
  border-color: #eef2f7;
  transform: translateY(-1px);
}

.notification-item.is-unread {
  background: #fbfefd;
  border-color: #edf7f1;
}

.notification-item strong {
  display: block;
  font-size: 0.9rem;
  line-height: 1.25;
  color: #0f172a;
  font-weight: 800;
  margin-bottom: 0.25rem;
}

.notification-item span {
  font-size: 0.82rem;
  line-height: 1.35;
  color: #64748b;
}

.notification-icon {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.notification-icon svg {
  width: 22px;
  height: 22px;
  stroke-width: 1.8;
}

.notification-content {
  min-width: 0;
  flex: 1;
}

.notification-meta {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.45rem;
  flex-shrink: 0;
}

.notification-meta small {
  color: #64748b;
  font-size: 0.74rem;
  font-weight: 600;
  white-space: nowrap;
}

.notification-dot {
  width: 8px;
  height: 8px;
  background: #22c55e;
  border-radius: 999px;
  box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.13);
}

.priority-critica {
  border-left-color: #ef4444;
}

.priority-critica .notification-icon {
  background: #fee2e2;
  color: #dc2626;
}

.priority-alta {
  border-left-color: #f97316;
}

.priority-alta .notification-icon {
  background: #ffedd5;
  color: #ea580c;
}

.priority-media {
  border-left-color: #f59e0b;
}

.priority-media .notification-icon {
  background: #fef3c7;
  color: #b45309;
}

.priority-baixa {
  border-left-color: #22c55e;
}

.priority-baixa .notification-icon {
  background: #dcfce7;
  color: #15803d;
}

.notifications-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 190px;
  padding: 1.5rem 1rem;
  text-align: center;
  color: #64748b;
}

.notifications-empty svg {
  width: 42px;
  height: 42px;
  color: #16a34a;
  margin-bottom: 0.85rem;
}

.notifications-empty strong {
  color: #0f172a;
  font-size: 0.98rem;
  font-weight: 800;
  margin-bottom: 0.25rem;
}

.notifications-empty span {
  color: #64748b;
  font-size: 0.85rem;
}

.notifications-footer {
  border-top: 1px solid #eef2f7;
  padding: 0.85rem 1rem 1rem;
  text-align: center;
}

.notifications-footer a {
  border: none;
  background: transparent;
  color: #16834f;
  cursor: pointer;
  font-size: 0.85rem;
  font-weight: 800;
  text-decoration: none;
}

.notifications-footer a:hover,
.notifications-mark-all:hover {
  color: #0f6b3f;
}

.notifications-page {
  max-width: 980px;
}

.notifications-page-card {
  border-radius: 20px;
  overflow: hidden;
}

.notifications-page-list {
  display: grid;
  gap: 0.75rem;
}

.notifications-page-list .notification-item {
  border-color: #eef2f7;
  padding: 1rem;
}

.governanca-page {
  display: grid;
  gap: 1.15rem;
  padding-top: 1.35rem;
}

.governanca-grid {
  display: grid;
  gap: 1.15rem;
  align-items: stretch;
}

.governanca-grid-top {
  grid-template-columns: minmax(280px, 0.32fr) minmax(0, 0.68fr);
}

.governanca-grid-bottom {
  grid-template-columns: minmax(0, 0.68fr) minmax(300px, 0.32fr);
}

.governanca-card {
  border: 1px solid #e8eef5;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.055);
  overflow: hidden;
  margin-bottom: 0;
}

.governanca-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem 1.25rem 0.9rem;
  border-bottom: 1px solid #eef2f7;
}

.governanca-card-header-inline {
  align-items: center;
}

.governanca-card-header h3 {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
  color: #0f172a;
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: -0.01em;
}

.governanca-card-header h3 i {
  width: 30px;
  height: 30px;
  border-radius: 10px;
  background: #ecfdf5;
  color: #16834f;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.86rem;
}

.governanca-card-header p {
  margin: 0.28rem 0 0;
  color: #64748b;
  font-size: 0.8rem;
  font-weight: 500;
}

.governanca-card-body {
  padding: 1.15rem 1.25rem 1.25rem;
}

.governanca-primary-action {
  min-height: 38px;
  border-radius: 11px;
  background: #16a34a;
  border-color: #16a34a;
  box-shadow: 0 10px 22px rgba(22, 163, 74, 0.18);
  font-weight: 800;
  white-space: nowrap;
}

.governanca-primary-action:hover {
  background: #12823d;
  border-color: #12823d;
  transform: translateY(-1px);
}

.dpo-profile-card,
.dpo-empty-card {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  align-items: center;
  gap: 1.05rem;
  min-height: 225px;
  border: 1px solid #edf2f7;
  border-radius: 18px;
  background:
    radial-gradient(circle at top left, rgba(22, 163, 74, 0.08), transparent 34%),
    #ffffff;
  padding: 1.2rem;
  box-shadow: none;
}

.dpo-avatar,
.dpo-empty-icon {
  width: 72px;
  height: 72px;
  border-radius: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: #dcfce7;
  color: #16834f;
  font-weight: 800;
  font-size: 1.3rem;
}

.dpo-profile-main {
  flex: 1;
  min-width: 0;
}

.dpo-profile-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 0.8rem;
}

.dpo-profile-heading h4 {
  margin: 0 0 0.2rem;
  color: #0f172a;
  font-size: 1.12rem;
  font-weight: 800;
}

.dpo-profile-heading p,
.dpo-description {
  margin: 0;
  color: #64748b;
  font-size: 0.85rem;
}

.dpo-contact-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.55rem;
  margin-bottom: 0.85rem;
}

.dpo-contact-grid span {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  color: #334155;
  font-size: 0.85rem;
  min-width: 0;
  overflow-wrap: anywhere;
}

.dpo-contact-grid i {
  color: #16834f;
}

.dpo-empty-card strong,
.gov-empty-state strong {
  display: block;
  color: #0f172a;
  font-weight: 800;
  margin-bottom: 0.25rem;
}

.dpo-empty-card span,
.gov-empty-state span {
  color: #64748b;
  font-size: 0.86rem;
}

.gov-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  min-height: 155px;
  padding: 1.2rem;
  text-align: center;
  color: #64748b;
}

.gov-empty-state i {
  color: #16834f;
  font-size: 1.6rem;
}

.governanca-documents {
  display: grid;
  gap: 0.7rem;
}

.gov-doc-row {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.9rem;
  border: 1px solid #e8eef5;
  border-radius: 15px;
  background: #fbfdff;
  padding: 0.82rem 0.9rem;
  transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.gov-doc-row:hover {
  background: #ffffff;
  border-color: #dbe5ef;
  transform: translateY(-1px);
}

.gov-doc-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #eff6ff;
  color: #2563eb;
}

.gov-doc-content {
  display: flex;
  flex-direction: column;
  gap: 0.16rem;
  min-width: 0;
}

.gov-doc-content strong {
  color: #0f172a;
  font-size: 0.88rem;
  font-weight: 800;
}

.gov-doc-content span,
.gov-doc-content small {
  color: #64748b;
  font-size: 0.76rem;
}

.gov-doc-actions {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.gov-doc-actions .btn {
  min-height: 30px;
  border-radius: 9px;
  padding: 0.35rem 0.55rem;
  font-size: 0.72rem;
  font-weight: 800;
}

.governanca-section-title {
  margin-bottom: 0.9rem;
}

.governanca-section-title h4 {
  margin: 0 0 0.2rem;
  color: #0f172a;
  font-size: 0.95rem;
  font-weight: 800;
}

.governanca-section-title span {
  color: #64748b;
  font-size: 0.8rem;
}

.governanca-table-wrap {
  border: 1px solid #e8eef5;
  border-radius: 16px;
  overflow: hidden;
  background: #ffffff;
}

.governanca-page #fluxosTable {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 0;
}

.governanca-page #fluxosTable thead th {
  background: #f8fafc;
  color: #64748b;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-bottom: 1px solid #e8eef5;
  padding: 0.85rem 0.9rem;
}

.governanca-page #fluxosTable tbody td {
  color: #334155;
  font-size: 0.78rem;
  line-height: 1.45;
  border-bottom: 1px solid #eef2f7;
  padding: 0.95rem 0.9rem;
  vertical-align: middle;
}

.governanca-page #fluxosTable tbody tr:last-child td {
  border-bottom: none;
}

#fluxosTable tbody tr {
  transition: background 0.18s ease, transform 0.18s ease;
}

#fluxosTable tbody tr:hover {
  background: #f8fafc;
}

.governanca-page #fluxosTable .badge,
.gov-doc-actions .badge {
  border-radius: 999px;
  border: 1px solid transparent;
  padding: 0.32rem 0.65rem;
  font-size: 0.64rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.governanca-page #fluxosTable .badge-success,
.gov-doc-actions .badge-success {
  background: #dcfce7;
  border-color: #bbf7d0;
  color: #15803d;
}

.governanca-page #fluxosTable .badge-warning,
.gov-doc-actions .badge-warning {
  background: #ffedd5;
  border-color: #fed7aa;
  color: #c2410c;
}

.governanca-page #fluxosTable .badge-danger {
  background: #fee2e2;
  border-color: #fecaca;
  color: #b91c1c;
}

.governanca-page #fluxosTable .badge-info {
  background: #ede9fe;
  border-color: #ddd6fe;
  color: #6d28d9;
}

.governanca-page #fluxosTable td:last-child {
  white-space: nowrap;
}

.governanca-page #fluxosTable .btn-sm {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  background: #ffffff;
  color: #334155;
  box-shadow: none;
}

.governanca-page #fluxosTable .btn-sm:hover {
  background: #ecfdf5;
  border-color: #bbf7d0;
  color: #15803d;
}

.governanca-page #fluxosTable .btn-danger {
  color: #dc2626;
}

.governanca-page #fluxosTable .btn-danger:hover {
  background: #fef2f2;
  border-color: #fecaca;
  color: #b91c1c;
}

.governanca-quick-actions {
  display: grid;
  gap: 0.85rem;
}

.governanca-action-tile {
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.85rem;
  border: 1px solid #e8eef5;
  border-radius: 16px;
  background: #fbfdff;
  padding: 0.9rem;
  transition: background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.governanca-action-tile:hover {
  background: #ffffff;
  border-color: #dbe5ef;
  transform: translateY(-1px);
}

.governanca-action-icon {
  width: 46px;
  height: 46px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 14px;
  background: #ecfdf5;
  color: #16834f;
  font-size: 1.05rem;
}

.action-pdf .governanca-action-icon {
  background: #dcfce7;
  color: #15803d;
}

.action-export .governanca-action-icon {
  background: #eff6ff;
  color: #2563eb;
}

.action-history .governanca-action-icon {
  background: #f3e8ff;
  color: #7e22ce;
}

.governanca-action-content {
  min-width: 0;
}

.governanca-action-content strong {
  display: block;
  color: #0f172a;
  font-size: 0.88rem;
  font-weight: 800;
  margin-bottom: 0.18rem;
}

.governanca-action-content span {
  display: block;
  color: #64748b;
  font-size: 0.75rem;
  line-height: 1.35;
}

.governanca-action-tile .btn {
  border-radius: 10px;
  font-weight: 800;
  white-space: nowrap;
}

.governanca-action-tile.is-disabled {
  opacity: 0.68;
}

@media (max-width: 1200px) {
  .governanca-grid-top,
  .governanca-grid-bottom {
    grid-template-columns: 1fr;
  }

  .dpo-profile-card,
  .dpo-empty-card {
    min-height: auto;
  }
}

@media (max-width: 760px) {
  .governanca-page {
    padding-top: 0.75rem;
  }

  .governanca-card-header,
  .governanca-card-header-inline {
    flex-direction: column;
    align-items: stretch;
  }

  .governanca-primary-action {
    width: 100%;
  }

  .gov-doc-row,
  .governanca-action-tile {
    grid-template-columns: 1fr;
  }

  .gov-doc-actions {
    justify-content: flex-start;
  }
}

body.dark .dpo-profile-card,
body.dark .dpo-empty-card,
body.dark .gov-doc-row {
  background: #111827;
  border-color: #334155;
}

body.dark .dpo-profile-heading h4,
body.dark .dpo-empty-card strong,
body.dark .gov-empty-state strong,
body.dark .gov-doc-content strong {
  color: #f8fafc;
}

body.dark .dpo-profile-heading p,
body.dark .dpo-description,
body.dark .dpo-contact-grid span,
body.dark .dpo-empty-card span,
body.dark .gov-empty-state span,
body.dark .gov-doc-content span,
body.dark .gov-doc-content small {
  color: #cbd5e1;
}

body.dark .notifications-panel {
  background: #111827;
  border-color: #334155;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}

.mapeamento-page {
  display: grid;
  gap: 1.15rem;
  padding-top: 1.35rem;
}

.mapeamento-stats-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1rem;
}

.mapeamento-stat-card {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  border: 1px solid #e8eef5;
  border-radius: 18px;
  background: #ffffff;
  padding: 1rem;
  box-shadow: 0 14px 30px rgba(15, 23, 42, 0.055);
}

.mapeamento-stat-card .stat-icon {
  width: 48px;
  height: 48px;
  border-radius: 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.05rem;
}

.mapeamento-stat-card strong {
  display: block;
  color: #0f172a;
  font-size: 1.55rem;
  font-weight: 850;
  letter-spacing: -0.04em;
  line-height: 1;
}

.mapeamento-stat-card span {
  display: block;
  margin-top: 0.35rem;
  color: #64748b;
  font-size: 0.76rem;
  font-weight: 700;
}

.stat-total .stat-icon { background: #dcfce7; color: #15803d; }
.stat-sensitive .stat-icon { background: #ede9fe; color: #6d28d9; }
.stat-risk .stat-icon { background: #fee2e2; color: #dc2626; }
.stat-sector .stat-icon { background: #fef3c7; color: #b45309; }
.stat-pending .stat-icon { background: #e0f2fe; color: #0284c7; }

.mapeamento-card {
  border: 1px solid #e8eef5;
  border-radius: 18px;
  background: #ffffff;
  box-shadow: 0 16px 36px rgba(15, 23, 42, 0.055);
  overflow: hidden;
  margin-bottom: 0;
}

.mapeamento-card-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 1.15rem 1.25rem 0.9rem;
  border-bottom: 1px solid #eef2f7;
}

.mapeamento-card-header-inline {
  align-items: center;
}

.mapeamento-card-header h3 {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
  color: #0f172a;
  font-size: 1rem;
  font-weight: 800;
}

.mapeamento-card-header h3 i {
  width: 30px;
  height: 30px;
  border-radius: 10px;
  background: #ecfdf5;
  color: #16834f;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
}

.mapeamento-card-header p {
  margin: 0.28rem 0 0;
  color: #64748b;
  font-size: 0.8rem;
  font-weight: 500;
}

.mapeamento-filters-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.9rem;
}

.mapeamento-search-field {
  grid-column: span 2;
}

.mapeamento-filter-actions {
  display: flex;
  align-items: flex-end;
  gap: 0.65rem;
}

.mapeamento-filter-actions .btn,
.mapeamento-table-actions .btn {
  min-height: 38px;
  border-radius: 11px;
  font-weight: 800;
  white-space: nowrap;
}

.mapeamento-table-actions {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.mapeamento-table-wrap {
  border: 1px solid #e8eef5;
  border-radius: 16px;
  overflow: auto;
  background: #ffffff;
}

.mapeamento-page #mapeamentoTable {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 0;
  min-width: 1120px;
}

.mapeamento-page #mapeamentoTable thead th {
  background: #f8fafc;
  color: #64748b;
  font-size: 0.66rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-bottom: 1px solid #e8eef5;
  padding: 0.85rem 0.8rem;
}

.mapeamento-page #mapeamentoTable tbody td {
  color: #334155;
  font-size: 0.76rem;
  line-height: 1.45;
  border-bottom: 1px solid #eef2f7;
  padding: 0.88rem 0.8rem;
  vertical-align: middle;
}

.mapeamento-page #mapeamentoTable tbody tr {
  transition: background 0.18s ease;
}

.mapeamento-page #mapeamentoTable tbody tr:hover {
  background: #f8fafc;
}

.mapeamento-page #mapeamentoTable tbody tr:last-child td {
  border-bottom: none;
}

.mapeamento-page #mapeamentoTable .badge {
  border-radius: 999px;
  border: 1px solid transparent;
  padding: 0.3rem 0.62rem;
  font-size: 0.62rem;
  font-weight: 900;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  white-space: nowrap;
}

.badge-success-soft,
.risk-baixo,
.status-mapeado {
  background: #dcfce7;
  border-color: #bbf7d0;
  color: #15803d;
}

.risk-medio,
.status-pendente {
  background: #ffedd5;
  border-color: #fed7aa;
  color: #c2410c;
}

.badge-danger-soft,
.risk-alto,
.risk-critico,
.status-incompleto {
  background: #fee2e2;
  border-color: #fecaca;
  color: #b91c1c;
}

.status-em_revisao {
  background: #ede9fe;
  border-color: #ddd6fe;
  color: #6d28d9;
}

.mapeamento-page #mapeamentoTable td:last-child {
  white-space: nowrap;
}

.mapeamento-page #mapeamentoTable .btn-sm {
  width: 31px;
  height: 31px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  background: #ffffff;
  color: #334155;
  box-shadow: none;
}

.mapeamento-page #mapeamentoTable .btn-sm:hover {
  background: #ecfdf5;
  border-color: #bbf7d0;
  color: #15803d;
}

.mapeamento-page #mapeamentoTable .btn-danger {
  color: #dc2626;
}

.mapeamento-page #mapeamentoTable .btn-danger:hover {
  background: #fef2f2;
  border-color: #fecaca;
  color: #b91c1c;
}

.mapeamento-table-footer {
  padding: 0.85rem 0.2rem 0;
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 600;
}

.mapeamento-ai-tip {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.9rem;
  border: 1px solid #d8f3e3;
  border-radius: 18px;
  background: #f0fdf4;
  padding: 0.95rem 1rem;
}

.mapeamento-ai-tip .tip-icon {
  width: 44px;
  height: 44px;
  border-radius: 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #dcfce7;
  color: #15803d;
}

.mapeamento-ai-tip strong {
  display: block;
  color: #0f172a;
  font-weight: 850;
  margin-bottom: 0.12rem;
}

.mapeamento-ai-tip span {
  color: #64748b;
  font-size: 0.8rem;
}

.map-empty-state {
  display: flex;
  min-height: 190px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  text-align: center;
  color: #64748b;
}

.map-empty-state i {
  color: #16a34a;
  font-size: 2rem;
}

.map-empty-state strong {
  color: #0f172a;
  font-size: 0.96rem;
  font-weight: 850;
}

.mapeamento-modal-content {
  width: min(920px, calc(100vw - 32px));
  max-height: 92vh;
  overflow: hidden;
}

.mapeamento-modal-content .modal-body {
  max-height: calc(92vh - 135px);
  overflow-y: auto;
}

.form-section {
  border: 1px solid #e8eef5;
  border-radius: 16px;
  padding: 1rem;
  margin-bottom: 1rem;
  background: #fbfdff;
}

.form-section h4 {
  margin: 0 0 0.85rem;
  color: #0f172a;
  font-size: 0.92rem;
  font-weight: 850;
}

.form-grid-2,
.form-grid-3 {
  display: grid;
  gap: 0.9rem;
}

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

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

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

.map-detail-grid section {
  border: 1px solid #e8eef5;
  border-radius: 16px;
  background: #fbfdff;
  padding: 1rem;
}

.map-detail-grid h4 {
  margin: 0 0 0.75rem;
  color: #0f172a;
  font-size: 0.9rem;
  font-weight: 850;
}

.map-detail-item {
  display: grid;
  gap: 0.2rem;
  padding: 0.48rem 0;
  border-bottom: 1px solid #eef2f7;
}

.map-detail-item:last-child {
  border-bottom: none;
}

.map-detail-item span {
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 800;
  text-transform: uppercase;
}

.map-detail-item strong {
  color: #0f172a;
  font-size: 0.84rem;
  font-weight: 700;
}

.map-ai-box {
  margin-top: 1rem;
  border: 1px solid #d8f3e3;
  border-radius: 16px;
  background: #f0fdf4;
  padding: 1rem;
}

.map-ai-box strong,
.map-ai-box span {
  display: block;
  margin-bottom: 0.5rem;
}

.map-ai-box ul {
  margin: 0.5rem 0 0 1rem;
  color: #334155;
}

@media (max-width: 1280px) {
  .mapeamento-stats-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .mapeamento-filters-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .mapeamento-stats-grid,
  .mapeamento-filters-grid,
  .form-grid-2,
  .form-grid-3,
  .map-detail-grid {
    grid-template-columns: 1fr;
  }

  .mapeamento-search-field {
    grid-column: auto;
  }

  .mapeamento-card-header-inline,
  .mapeamento-ai-tip {
    grid-template-columns: 1fr;
  }

  .mapeamento-card-header,
  .mapeamento-card-header-inline {
    flex-direction: column;
    align-items: stretch;
  }
}

body.dark .notifications-panel::before {
  background: #111827;
  border-color: #334155;
}

body.dark .notifications-header,
body.dark .notifications-footer {
  border-color: #273449;
}

body.dark .notifications-header strong,
body.dark .notification-item strong,
body.dark .notifications-empty strong {
  color: #f8fafc;
}

body.dark .notifications-header span,
body.dark .notification-item span,
body.dark .notification-meta small,
body.dark .notifications-empty span {
  color: #cbd5e1;
}

body.dark .notification-item:hover,
body.dark .notification-item.is-unread {
  background: rgba(148, 163, 184, 0.12);
  border-color: #334155;
}

body.dark {
  background-color: #0f172a;
  color: #f1f5f9;
}

body.dark .main-content,
body.dark .page-content {
  background-color: #0f172a;
}

body.dark .sidebar {
  background-color: #0f172a;
  border-color: #334155;
}

body.dark .sidebar,
body.dark .sidebar-header,
body.dark .sidebar-header h1,
body.dark .sidebar-header p,
body.dark .nav-item,
body.dark .nav-section-title {
  color: #f8fafc;
}

body.dark .nav-item:hover {
  background-color: rgba(148, 163, 184, 0.12);
  color: #ffffff;
}

body.dark .nav-item.active {
  background-color: rgba(34, 197, 94, 0.18);
  border-left-color: #22c55e;
  color: #ffffff;
}

body.dark .header {
  background-color: #111827;
  border-color: #334155;
}

body.dark .card,
body.dark .stat-card,
body.dark .kpi-card,
body.dark #kpi-stats-grid .kpi-card {
  background-color: #1e293b;
  border-color: #334155;
}

body.dark .dashboard-page .stats-grid .stat-card,
body.dark .dashboard-page > .stats-grid .stat-card {
  background-color: #111827;
  border-color: #334155;
}

body.dark .card-header {
  background: #111827;
  border-color: #334155;
}

body.dark .card-header h3,
body.dark .card-header p,
body.dark .stat-value,
body.dark .kpi-value,
body.dark .header-left h2,
body.dark .header-right,
body.dark .header-right * {
  color: #f8fafc;
}

body.dark .dashboard-page .stats-grid .stat-value,
body.dark .dashboard-page .stats-grid .stat-change,
body.dark #kpi-stats-grid .kpi-value,
body.dark .kpi-value,
body.dark .stat-value {
  color: #f8fafc;
}

body.dark .dashboard-page .stats-grid .stat-label {
  color: #cbd5f5;
}

body.dark .stat-label,
body.dark .kpi-label,
body.dark .kpi-meta,
body.dark .text-muted,
body.dark .user-role {
  color: #cbd5f5;
}

body.dark .page-content,
body.dark .page-content * {
  color: #f8fafc;
}

body.dark .page-content .text-muted,
body.dark .page-content .kpi-meta,
body.dark .page-content .stat-label,
body.dark .page-content .kpi-label {
  color: #cbd5f5;
}

body.dark .ia-advanced-page #ia-chat {
  background: #0f172a !important;
  border: 1px solid #334155 !important;
  color: #f8fafc;
}

body.dark .ia-advanced-page #ia-chat > div {
  background: #111827 !important;
  border-color: #334155 !important;
  color: #f8fafc;
}

body.dark .ia-advanced-page #ia-chat > div div {
  color: #cbd5f5 !important;
}

body.dark .ia-advanced-page aside > div {
  background: #111827 !important;
  border-color: #334155 !important;
  color: #f8fafc;
}

body.dark .ia-advanced-page #ia-pages,
body.dark .ia-advanced-page #ia-chat-history {
  color: #f8fafc;
}

body.dark .ia-advanced-page .btn-outline-secondary {
  background: transparent;
  border-color: #475569;
  color: #f8fafc;
}

body.dark .ia-advanced-page .btn-outline-secondary:hover {
  background: rgba(148, 163, 184, 0.15);
  border-color: #64748b;
  color: #f8fafc;
}

body.dark .ia-advanced-page .form-control,
body.dark .ia-advanced-page textarea,
body.dark .ia-advanced-page input {
  background: #0f172a;
  border-color: #334155;
  color: #f8fafc;
}

body.dark .ia-advanced-page .form-control::placeholder,
body.dark .ia-advanced-page textarea::placeholder,
body.dark .ia-advanced-page input::placeholder {
  color: #94a3b8;
}

body.dark .ia-advanced-page [style*="color: #666"] {
  color: #cbd5f5 !important;
}

body.dark .page-content,
body.dark .card-body,
body.dark .alert-item,
body.dark .action-row,
body.dark .table,
body.dark .table th,
body.dark .table td,
body.dark .alert-content span,
body.dark .alert-time,
body.dark .action-name,
body.dark .action-count {
  color: #f8fafc;
}

body.dark .alert-item,
body.dark .action-row,
body.dark .table th,
body.dark .table td,
body.dark .table-container {
  background: #1e293b;
  border-color: #334155;
}

body.dark .alert-item {
  background: #1e293b;
}

body.dark .activity-item {
  background: #1e293b;
  border-color: #334155;
}

body.dark .activity-content span,
body.dark .activity-time,
body.dark .activity-empty {
  color: #94a3b8;
}

body.dark .alert-item.priority-high,
body.dark .alert-item.priority-medium,
body.dark .alert-item.priority-low {
  border-left-color: currentColor;
}

body.dark .kpi-progress,
body.dark .progress {
  background: rgba(148, 163, 184, 0.2);
}

body.dark .progress-bar,
body.dark .kpi-progress span {
  background: #22c55e;
}

body.dark .user-name,
body.dark .user-dropdown-item,
body.dark .notification-item strong {
  color: #f8fafc;
}

body.dark .notification-item span {
  color: #94a3b8;
}

body.dark .chart-container,
body.dark canvas {
  color: #f8fafc;
}

body.dark .header-icon:hover,
body.dark .user-trigger:hover,
body.dark .notification-item:hover,
body.dark .user-dropdown-item:hover {
  background: rgba(148, 163, 184, 0.15);
}

body.dark .user-dropdown,
body.dark .notifications-panel {
  background: #1e293b;
  border-color: #334155;
}

body.dark .notification-item strong,
body.dark .user-dropdown-item {
  color: #f1f5f9;
}

body.dark .notification-item span {
  color: #94a3b8;
}

/* Conteúdo da página */
.page-content {
  padding: 0.9rem;
  background: var(--background-white);
}

.page-content.dashboard-page {
  padding-top: 2rem;
}

/* Cards */
.card {
  background: var(--background-white);
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.06);
  margin-bottom: 0.7rem;
  overflow: hidden;
}

.card-header {
  padding: 0.8rem 1rem;
  border-bottom: 1px solid #e9edf2;
  background: #f8fafc;
}

.card-header h3 {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 0.5rem;
}

.card-header p {
  color: var(--text-secondary);
  font-size: 0.875rem;
}

.card-body {
  padding: 0.85rem 1rem;
  overflow-x: hidden;
}

/* Perfil / Minha conta */
.profile-page {
  padding-top: 1.5rem;
}

.profile-layout {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 2rem;
}

.profile-sidebar-card {
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  align-items: center;
  text-align: center;
}

.profile-avatar-wrapper {
  position: relative;
  width: 140px;
  height: 140px;
}

.profile-avatar {
  width: 140px;
  height: 140px;
  border-radius: 50%;
  background: #e2e8f0;
  color: #0f172a;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.5rem;
  overflow: hidden;
  border: 4px solid #ffffff;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.12);
}

.profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.profile-avatar-overlay {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: rgba(15, 23, 42, 0.55);
  color: #ffffff;
  font-weight: 600;
  font-size: 0.85rem;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.2s ease;
  cursor: pointer;
}

.profile-avatar-wrapper:hover .profile-avatar-overlay {
  opacity: 1;
}

#profile-avatar-input {
  display: none;
}

.profile-summary h3 {
  font-size: 1.2rem;
  margin-bottom: 0.2rem;
  color: #0f172a;
}

.profile-summary p {
  font-size: 0.9rem;
  color: #64748b;
}

.profile-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  background: rgba(22, 163, 74, 0.12);
  color: #15803d;
  font-size: 0.75rem;
  font-weight: 600;
}

.profile-upload-btn {
  width: 100%;
  justify-content: center;
}

.profile-hint {
  font-size: 0.75rem;
  color: #94a3b8;
}

.profile-content-card {
  padding: 0.5rem 0;
}

.profile-section {
  padding: 1.25rem 0;
  border-bottom: 1px solid #f1f5f9;
}

.profile-section:last-child {
  border-bottom: none;
}

.profile-section-header {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin-bottom: 1rem;
}

.profile-section-header h4 {
  font-size: 1.05rem;
  color: #0f172a;
}

.profile-section-header span {
  font-size: 0.8rem;
  color: #94a3b8;
}

.profile-fields-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1.25rem;
}

.profile-grid-span {
  grid-column: span 2;
}

.profile-actions {
  display: flex;
  gap: 1rem;
  justify-content: flex-end;
  padding-top: 1.25rem;
}

.profile-actions .btn-primary {
  min-width: 160px;
}

.profile-page .form-label {
  font-size: 0.78rem;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.profile-page .form-control {
  border-radius: 12px;
  min-height: 44px;
  font-size: 0.9rem;
}

.profile-page .form-control[readonly],
.profile-page .form-control.is-locked {
  background: #f8fafc;
  color: #64748b;
  cursor: not-allowed;
}

/* Botões */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem;
  border: none;
  border-radius: 0.5rem;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
  font-size: 0.875rem;
}

.btn-primary {
  background: var(--primary-green);
  color: white;
}

.btn-primary:hover {
  background: var(--primary-green-dark);
  transform: translateY(-1px);
  box-shadow: var(--shadow-md);
}

.btn-secondary {
  background: var(--background-white);
  color: var(--text-primary);
  border: 1px solid var(--border-color);
}

.btn-secondary:hover {
  background: var(--background-light);
  border-color: var(--primary-green);
  color: var(--primary-green);
}

.btn-danger {
  background: #dc2626;
  color: white;
}

.btn-danger:hover {
  background: #b91c1c;
}

.btn-sm {
  padding: 0.5rem 1rem;
  font-size: 0.75rem;
}

.btn-lg {
  padding: 1rem 2rem;
  font-size: 1rem;
}

/* Formulários */
.form-group {
  margin-bottom: 1.5rem;
}

.form-label {
  display: block;
  margin-bottom: 0.5rem;
  font-weight: 500;
  color: var(--text-primary);
}

.form-control {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid var(--border-color);
  border-radius: 0.5rem;
  font-size: 0.875rem;
  transition: all 0.2s ease;
  background: var(--background-white);
}

.form-control:focus {
  outline: none;
  border-color: var(--primary-green);
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.1);
}

.form-control:disabled {
  background: var(--background-light);
  color: var(--text-muted);
}

textarea.form-control {
  resize: vertical;
  min-height: 100px;
}

/* Tabelas */
.table-container {
  overflow-x: auto;
  border-radius: 0.5rem;
  border: 1px solid var(--border-color);
}

.table {
  width: 100%;
  border-collapse: collapse;
  background: var(--background-white);
}

.table th,
.table td {
  padding: 1rem;
  text-align: left;
  border-bottom: 1px solid var(--border-color);
}

.table th {
  background: var(--background-light);
  font-weight: 600;
  color: var(--text-primary);
  font-size: 0.875rem;
}

.table td {
  font-size: 0.875rem;
  color: var(--text-secondary);
}

.table tbody tr:hover {
  background: var(--background-light);
}

/* Badges */
.badge {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 500;
}

.badge-success {
  background: rgba(22, 163, 74, 0.1);
  color: var(--primary-green);
}

.badge-warning {
  background: rgba(245, 158, 11, 0.1);
  color: #d97706;
}

.badge-danger {
  background: rgba(220, 38, 38, 0.1);
  color: #dc2626;
}

.badge-info {
  background: rgba(59, 130, 246, 0.1);
  color: #2563eb;
}

/* Alertas */
.alert {
  padding: 1rem;
  border-radius: 0.5rem;
  margin-bottom: 1rem;
  border: 1px solid;
}

.dashboard-page .alert {
  border-radius: 12px;
  border: 1px solid #e5e7eb;
  border-left-width: 4px;
  background: #f8fafc;
  padding: 0.85rem 1rem;
  display: flex;
  align-items: center;
  gap: 0.65rem;
  color: #0f172a;
}

.dashboard-page .alert i {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0.06);
  font-size: 0.9rem;
}

.alert-success {
  background: rgba(22, 163, 74, 0.1);
  border-color: var(--primary-green);
  color: var(--primary-green);
}

.alert-warning {
  background: rgba(245, 158, 11, 0.1);
  border-color: #d97706;
  color: #d97706;
}

.alert-danger {
  background: rgba(220, 38, 38, 0.1);
  border-color: #dc2626;
  color: #dc2626;
}

.alert-info {
  background: rgba(59, 130, 246, 0.1);
  border-color: #2563eb;
  color: #2563eb;
}

/* Grid */
.row {
  display: flex;
  flex-wrap: wrap;
  margin: -0.5rem;
}

.col {
  flex: 1;
  padding: 0.5rem;
}

.col-1 { flex: 0 0 8.333333%; }
.col-2 { flex: 0 0 16.666667%; }
.col-3 { flex: 0 0 25%; }
.col-4 { flex: 0 0 33.333333%; }
.col-6 { flex: 0 0 50%; }
.col-8 { flex: 0 0 66.666667%; }
.col-9 { flex: 0 0 75%; }
.col-12 { flex: 0 0 100%; }

/* Indicadores */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  margin-bottom: 2rem;
}

.dashboard-page > .stats-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

#scoreChart {
  height: 220px !important;
}

#contractsChart {
  height: 190px !important;
}

.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
}

.kpi-card {
  background: var(--background-white);
  border: 1px solid var(--border-color);
  border-radius: 0.75rem;
  padding: 1rem 1rem 1.25rem;
  box-shadow: var(--shadow-sm);
  position: relative;
  overflow: hidden;
  display: flex;
  gap: 0.75rem;
  align-items: center;
}

.kpi-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--kpi-accent, #16a34a);
}

.kpi-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--kpi-icon-bg, rgba(22, 163, 74, 0.12));
  color: var(--kpi-icon-color, #16a34a);
  flex-shrink: 0;
  font-size: 1.1rem;
}

.kpi-content {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

.kpi-label {
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-muted);
  font-weight: 600;
}

.kpi-value {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary);
}

.kpi-meta {
  font-size: 0.75rem;
  color: var(--text-secondary);
}

.stat-card {
  background: #ffffff;
  border: 1px solid #eef2f7;
  border-radius: 16px;
  padding: 1.25rem;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.08);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  position: relative;
  overflow: hidden;
  --kpi-accent: #22c55e;
}

.stat-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--kpi-accent);
}

.stat-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 26px rgba(15, 23, 42, 0.12);
}

.stat-value {
  font-size: 2rem;
  font-weight: 700;
  color: #0f172a;
  margin-bottom: 0.35rem;
}

.stat-label {
  color: #6b7280;
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.stat-change {
  font-size: 0.75rem;
  margin-top: 0.75rem;
}

.stat-change.positive {
  color: #16a34a;
}

.stat-change.negative {
  color: #dc2626;
}

.kpi-card {
  padding-top: 1.5rem;
}

.kpi-card-head {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.kpi-icon {
  width: 44px;
  height: 44px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--kpi-icon-bg, rgba(22, 163, 74, 0.12));
  color: var(--kpi-icon-color, #16a34a);
  flex-shrink: 0;
  font-size: 1.1rem;
}

.kpi-content {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.kpi-label {
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #64748b;
  font-weight: 700;
}

.kpi-value {
  font-size: 1.5rem;
  font-weight: 700;
  color: #0f172a;
}

.kpi-meta {
  font-size: 0.75rem;
  color: #94a3b8;
}

/* Progress bars */
.progress {
  width: 100%;
  height: 0.45rem;
  background: #e5e7eb;
  border-radius: 9999px;
  overflow: hidden;
  margin: 0.5rem 0;
}

.progress-bar {
  height: 100%;
  background: var(--primary-green);
  border-radius: 9999px;
  transition: width 0.3s ease;
}

/* Modal */
.modal {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 2000;
  align-items: center;
  justify-content: center;
}

.modal.show {
  display: flex;
}

.modal-content {
  background: var(--background-white);
  border-radius: 0.75rem;
  box-shadow: var(--shadow-lg);
  max-width: 500px;
  width: 90%;
  max-height: 90vh;
  overflow-y: auto;
}

.modal-header {
  padding: 1.5rem;
  border-bottom: 1px solid var(--border-color);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.modal-title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-primary);
}

.modal-close {
  background: none;
  border: none;
  font-size: 1.5rem;
  cursor: pointer;
  color: var(--text-muted);
}

.modal-body {
  padding: 1.5rem;
}

/* Guided flow */
.guided-flow {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 1rem 1.25rem;
  margin-top: 1rem;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.08);
}

.guided-flow-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.guided-flow-subtitle {
  font-size: 0.85rem;
  color: #64748b;
}

.guided-flow-body {
  margin-top: 0.85rem;
}

.guided-flow-next {
  background: #eef2ff;
  color: #3730a3;
  padding: 0.5rem 0.75rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: 0.85rem;
  margin-bottom: 0.75rem;
}

.guided-flow-steps {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 0.5rem;
}

.guided-flow-steps li {
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 0.6rem 0.75rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  font-size: 0.9rem;
  background: #f9fafb;
}

.guided-flow-steps li.done {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #166534;
  text-decoration: line-through;
}

.modal-footer {
  padding: 1.5rem;
  border-top: 1px solid var(--border-color);
  display: flex;
  justify-content: flex-end;
  gap: 1rem;
}

/* Responsividade */
@media (max-width: 768px) {
  .sidebar {
    transform: translateX(-100%);
  }
  
  .sidebar.open {
    transform: translateX(0);
  }
  
  .main-content {
    margin-left: 0;
  }
  
  .header {
    padding: 1rem;
  }
  
  .page-content {
    padding: 1rem;
  }
  
  .stats-grid {
    grid-template-columns: 1fr;
  }
  
  .row {
    flex-direction: column;
  }
  
  .col {
    flex: none;
  }
}

/* Tema escuro */
body.dark-theme {
  background-color: var(--dark-bg);
  color: var(--dark-text);
}

body.dark-theme .sidebar {
  background: var(--dark-surface);
  border-color: var(--dark-border);
}

body.dark-theme .card {
  background: var(--dark-surface);
  border-color: var(--dark-border);
}

body.dark-theme .header {
  background: var(--dark-surface);
  border-color: var(--dark-border);
}

body.dark-theme .form-control {
  background: var(--dark-surface);
  border-color: var(--dark-border);
  color: var(--dark-text);
}

body.dark-theme .table {
  background: var(--dark-surface);
}

body.dark-theme .table th {
  background: var(--dark-bg);
  color: var(--dark-text);
}

body.dark-theme .table td {
  color: var(--dark-text);
}

/* Animações */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.fade-in {
  animation: fadeIn 0.3s ease;
}

/* Página de Login */
.login-container {
  display: flex;
  min-height: 100vh;
  background: linear-gradient(135deg, var(--primary-green) 0%, var(--primary-green-dark) 100%);
}

.login-card {
  flex: 1;
  max-width: 450px;
  background: var(--background-white);
  padding: 3rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  box-shadow: var(--shadow-lg);
}

.login-header {
  text-align: center;
  margin-bottom: 2rem;
}

.logo {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  margin-bottom: 1rem;
}

.logo i {
  font-size: 3rem;
  color: var(--primary-green);
}

.logo h1 {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--text-primary);
  margin: 0;
}

.login-header p {
  color: var(--text-secondary);
  margin: 0.5rem 0;
}

.subtitle {
  font-size: 0.875rem;
  color: var(--text-muted);
}

.login-form {
  margin-bottom: 2rem;
}

.checkbox-label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-size: 0.875rem;
  color: var(--text-secondary);
}

.checkbox-label input[type="checkbox"] {
  width: auto;
  margin: 0;
}

.login-footer {
  text-align: center;
  border-top: 1px solid var(--border-color);
  padding-top: 1.5rem;
}

.demo-credentials {
  background: var(--background-light);
  padding: 1rem;
  border-radius: 0.5rem;
  margin-top: 1rem;
  border: 1px solid var(--border-color);
}

.demo-credentials h4 {
  color: var(--primary-green);
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
}

.demo-credentials p {
  margin: 0.25rem 0;
  font-size: 0.75rem;
  color: var(--text-secondary);
}

.info-panel {
  flex: 1;
  background: rgba(255, 255, 255, 0.1);
  backdrop-filter: blur(10px);
  padding: 3rem;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
}

.info-content {
  max-width: 600px;
}

.info-content h2 {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 1rem;
}

.info-content .lead {
  font-size: 1.25rem;
  margin-bottom: 2rem;
  opacity: 0.9;
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.feature-item {
  text-align: center;
  padding: 1.5rem;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 0.75rem;
  backdrop-filter: blur(5px);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.feature-item i {
  font-size: 2rem;
  margin-bottom: 1rem;
  color: rgba(255, 255, 255, 0.9);
}

.feature-item h3 {
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.feature-item p {
  font-size: 0.875rem;
  opacity: 0.8;
}

.legal-info {
  background: rgba(255, 255, 255, 0.1);
  padding: 1.5rem;
  border-radius: 0.75rem;
  backdrop-filter: blur(5px);
  border: 1px solid rgba(255, 255, 255, 0.2);
}

.legal-info h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.legal-info ul {
  list-style: none;
  padding: 0;
}

.legal-info li {
  padding: 0.5rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 0.875rem;
}

.legal-info li:last-child {
  border-bottom: none;
}

.legal-info li::before {
  content: "✓";
  color: rgba(255, 255, 255, 0.8);
  font-weight: bold;
  margin-right: 0.5rem;
}

/* Responsividade para login */
@media (max-width: 768px) {
  .login-container {
    flex-direction: column;
  }
  
  .login-card {
    max-width: none;
    padding: 2rem;
  }
  
  .info-panel {
    padding: 2rem;
  }
  
  .info-content h2 {
    font-size: 2rem;
  }
  
  .features-grid {
    grid-template-columns: 1fr;
  }
}

/* Dashboard específico */
.quick-actions {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1rem;
}

.quick-actions .btn {
  justify-content: flex-start;
  text-align: left;
  padding: 1rem 1.1rem;
  height: auto;
  min-height: 60px;
  border-radius: 12px;
  background: #f8fafc;
  border: 1px solid #e5e7eb;
  color: var(--text-primary);
}

.quick-actions .btn i {
  color: var(--primary-green);
}

.quick-actions .btn:hover {
  background: #ffffff;
  border-color: #d6e3dc;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.08);
  transform: translateY(-2px);
}

.modules-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
}

.module-item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.5rem;
  background: var(--background-light);
  border-radius: 0.75rem;
  border: 1px solid var(--border-color);
  transition: all 0.2s ease;
}

.module-item:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
  border-color: var(--primary-green);
}

.module-icon {
  width: 60px;
  height: 60px;
  background: var(--primary-green);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 1.5rem;
  flex-shrink: 0;
}

.module-info {
  flex: 1;
}

.module-info h4 {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 0.25rem;
}

.module-info p {
  color: var(--text-secondary);
  font-size: 0.875rem;
  margin-bottom: 0.75rem;
}

.module-status {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.module-status .progress {
  flex: 1;
  height: 0.5rem;
}

/* Governança específico */
.document-list {
  list-style: none;
  padding: 0;
}

.document-list li {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem;
  background: var(--background-light);
  border-radius: 0.5rem;
  margin-bottom: 0.5rem;
  border: 1px solid var(--border-color);
}

.document-list li i {
  color: var(--primary-green);
  font-size: 1.25rem;
}

.document-list li span {
  flex: 1;
  font-weight: 500;
}

.action-buttons {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.action-buttons .btn {
  justify-content: flex-start;
}

.dpo-info-card {
  background: var(--background-light);
  border: 1px solid var(--border-color);
  border-radius: 0.75rem;
  padding: 1.5rem;
}

.dpo-info-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border-light);
}

.dpo-info-item:last-child {
  border-bottom: none;
}

.dpo-info-label {
  font-weight: 600;
  color: var(--text-primary);
}

.dpo-info-value {
  color: var(--text-secondary);
}

/* Timeline */
.timeline {
  position: relative;
  padding-left: 2rem;
}

.timeline::before {
  content: '';
  position: absolute;
  left: 1rem;
  top: 0;
  bottom: 0;
  width: 2px;
  background: var(--border-color);
}

.timeline-item {
  position: relative;
  margin-bottom: 2rem;
  padding-left: 2rem;
}

.timeline-marker {
  position: absolute;
  left: -1.5rem;
  top: 0.5rem;
  width: 3rem;
  height: 3rem;
  background: var(--primary-green);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 1.25rem;
  z-index: 1;
}

.timeline-item[data-etapa="1"] .timeline-marker {
  background: var(--primary-green);
}

.timeline-item[data-etapa="2"] .timeline-marker {
  background: #d97706;
}

.timeline-item[data-etapa="3"] .timeline-marker {
  background: #2563eb;
}

.timeline-item[data-etapa="4"] .timeline-marker {
  background: #7c3aed;
}

.timeline-item[data-etapa="5"] .timeline-marker {
  background: var(--primary-green);
}

.timeline-item[data-etapa="6"] .timeline-marker {
  background: #64748b;
}

.timeline-content {
  background: var(--background-white);
  border: 1px solid var(--border-color);
  border-radius: 0.75rem;
  padding: 1.5rem;
  box-shadow: var(--shadow-sm);
}

.timeline-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
}

.timeline-header h4 {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0;
}

.timeline-content p {
  color: var(--text-secondary);
  margin-bottom: 1rem;
}

.timeline-actions {
  margin-top: 1rem;
}

/* Processos específico */
.process-flow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 1rem;
  padding: 2rem;
  background: var(--background-light);
  border-radius: 0.75rem;
  border: 1px solid var(--border-color);
}

.flow-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  flex: 1;
  min-width: 150px;
}

.step-icon {
  width: 60px;
  height: 60px;
  background: var(--primary-green);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 1.5rem;
  margin-bottom: 1rem;
}

.step-content h4 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 0.5rem;
}

.step-content p {
  font-size: 0.875rem;
  color: var(--text-secondary);
  margin: 0;
}

.flow-arrow {
  color: var(--primary-green);
  font-size: 1.5rem;
  margin: 0 1rem;
}

@media (max-width: 768px) {
  .process-flow {
    flex-direction: column;
  }
  
  .flow-arrow {
    transform: rotate(90deg);
    margin: 1rem 0;
  }
}

/* Dados específico */
.classification-matrix {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border-color);
  border-radius: 0.5rem;
  overflow: hidden;
}

.matrix-header {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  background: var(--background-light);
  font-weight: 600;
}

.matrix-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  border-top: 1px solid var(--border-color);
}

.matrix-row:nth-child(even) {
  background: var(--background-light);
}

.matrix-cell {
  padding: 1rem;
  text-align: center;
  border-right: 1px solid var(--border-color);
}

.matrix-cell:last-child {
  border-right: none;
}

.matrix-cell.header {
  background: var(--primary-green);
  color: white;
  font-weight: 600;
}

/* Portal Público específico */
.legal-basis {
  list-style: none;
  padding: 0;
}

.legal-basis li {
  padding: 0.5rem 0;
  border-bottom: 1px solid var(--border-light);
  font-size: 0.875rem;
}

.legal-basis li:last-child {
  border-bottom: none;
}

.rights-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.right-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem;
  background: var(--background-light);
  border-radius: 0.5rem;
  border: 1px solid var(--border-color);
}

.right-item i {
  color: var(--primary-green);
  font-size: 1.25rem;
  margin-top: 0.25rem;
}

.right-item strong {
  display: block;
  color: var(--text-primary);
  font-weight: 600;
  margin-bottom: 0.25rem;
}

.right-item p {
  color: var(--text-secondary);
  font-size: 0.875rem;
  margin: 0;
}

/* Utilitários */
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-muted { color: var(--text-muted); }
.text-success { color: var(--primary-green); }
.text-danger { color: #dc2626; }
.text-warning { color: #d97706; }

.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 0.5rem; }
.mb-2 { margin-bottom: 1rem; }
.mb-3 { margin-bottom: 1.5rem; }
.mb-4 { margin-bottom: 2rem; }

.mt-0 { margin-top: 0; }
.mt-1 { margin-top: 0.5rem; }
.mt-2 { margin-top: 1rem; }
.mt-3 { margin-top: 1.5rem; }
.mt-4 { margin-top: 2rem; }

.d-none { display: none; }
.d-block { display: block; }
.d-flex { display: flex; }

.justify-content-between { justify-content: space-between; }
.align-items-center { align-items: center; }

.w-100 { width: 100%; }
.h-100 { height: 100%; }

/* ===== ESTILOS DO PAINEL ADMINISTRATIVO ===== */

/* Indicadores do painel administrativo */
.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1.5rem;
  margin-bottom: 2rem;
}

.stat-card {
  background: var(--background-white);
  border-radius: 12px;
  padding: 1.5rem;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--border-color);
  transition: all 0.3s ease;
}

.stat-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}

.stat-value {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--primary-green);
  line-height: 1;
  margin-bottom: 0.5rem;
}

.stat-label {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.25rem;
}

.stat-description {
  font-size: 0.75rem;
  color: var(--text-muted);
}

/* Abas do painel administrativo */
.admin-tabs {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 2rem;
  border-bottom: 2px solid var(--border-color);
}

.tabs-container {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 0 !important;
  overflow-x: auto;
  white-space: nowrap;
  border-bottom: 2px solid var(--border-color);
  margin-bottom: 2rem;
  width: 100%;
  align-items: stretch;
}

/* Garantir que tabs-container não seja vertical */
.page-content .tabs-container,
.main-content .tabs-container,
#admin-tab-clientes ~ .tabs-container,
.tabs-container {
  flex-direction: row !important;
  display: flex !important;
}

.tab-button {
  background: none;
  border: none;
  padding: 1rem 1.5rem;
  font-size: 1rem;
  font-weight: 500;
  color: var(--text-secondary);
  cursor: pointer;
  border-bottom: 3px solid transparent;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  white-space: nowrap;
  flex-shrink: 0;
}

.tab-button:hover {
  color: var(--primary-green);
  background-color: var(--background-light);
}

.tab-button.active {
  color: var(--primary-green);
  border-bottom-color: var(--primary-green);
  background-color: var(--background-white);
}

.tab-content {
  background: var(--background-white);
  border-radius: 12px;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--border-color);
  overflow: hidden;
  display: none !important; /* Ocultar por padrão - FORÇADO */
  margin-bottom: 2rem;
  visibility: hidden !important; /* Forçar ocultação visual */
  opacity: 0 !important; /* Forçar transparência */
  height: 0 !important; /* Forçar altura zero */
  overflow: hidden !important;
}

.tab-content.active {
  display: block !important; /* Mostrar apenas quando ativa */
  visibility: visible !important; /* Forçar visibilidade */
  opacity: 1 !important; /* Forçar opacidade total */
  height: auto !important; /* Permitir altura automática */
  overflow: visible !important;
}

.tab-pane {
  display: none;
}

.tab-pane.active {
  display: block;
}

/* Cabeçalho do card com ações */
.card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem;
  border-bottom: 1px solid var(--border-color);
  background: var(--background-light);
}

.card-header h3 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-primary);
}

.header-actions {
  display: flex;
  gap: 0.5rem;
}

/* Tabelas do painel administrativo */
.table-responsive {
  overflow-x: auto;
}

.table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.table th {
  background: var(--background-light);
  color: var(--text-secondary);
  font-weight: 600;
  text-align: left;
  padding: 1rem;
  border-bottom: 2px solid var(--border-color);
  white-space: nowrap;
}

.table td {
  padding: 1rem;
  border-bottom: 1px solid var(--border-color);
  vertical-align: middle;
}

.table tbody tr:hover {
  background-color: var(--background-light);
}

/* Informações de progresso */
.progress-info {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 80px;
}

.progress-info span {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--text-secondary);
}

.progress {
  height: 6px;
  background-color: var(--border-light);
  border-radius: 3px;
  overflow: hidden;
}

.progress-bar {
  height: 100%;
  background-color: var(--primary-green);
  transition: width 0.3s ease;
}

.progress-bar.bg-success {
  background-color: var(--primary-green);
}

.progress-bar.bg-warning {
  background-color: #f59e0b;
}

.progress-bar.bg-danger {
  background-color: #ef4444;
}

/* Badges */
.badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  border-radius: 4px;
  text-transform: uppercase;
  letter-spacing: 0.025em;
}

.badge-primary {
  background-color: var(--primary-green);
  color: white;
}

.badge-success {
  background-color: #10b981;
  color: white;
}

.badge-warning {
  background-color: #f59e0b;
  color: white;
}

.badge-danger {
  background-color: #ef4444;
  color: white;
}

.badge-secondary {
  background-color: var(--text-muted);
  color: white;
}

.badge-info {
  background-color: #3b82f6;
  color: white;
}

/* Botões de ação */
.btn-outline-primary {
  background: none;
  border: 1px solid var(--primary-green);
  color: var(--primary-green);
  padding: 0.375rem 0.75rem;
  border-radius: 6px;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.3s ease;
}

.btn-outline-primary:hover {
  background-color: var(--primary-green);
  color: white;
}

.btn-outline-danger {
  background: none;
  border: 1px solid #ef4444;
  color: #ef4444;
  padding: 0.375rem 0.75rem;
  border-radius: 6px;
  font-size: 0.875rem;
  cursor: pointer;
  transition: all 0.3s ease;
}

.btn-outline-danger:hover {
  background-color: #ef4444;
  color: white;
}

/* Modais do painel administrativo */
.modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.modal.show {
  opacity: 1;
  visibility: visible;
}

.modal-content {
  background: var(--background-white);
  border-radius: 12px;
  box-shadow: var(--shadow-lg);
  max-width: 500px;
  width: 90%;
  max-height: 90vh;
  overflow-y: auto;
  transform: scale(0.9);
  transition: transform 0.3s ease;
}

.modal.show .modal-content {
  transform: scale(1);
}

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem;
  border-bottom: 1px solid var(--border-color);
}

.modal-header h3 {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-primary);
}

.modal-close {
  background: none;
  border: none;
  font-size: 1.5rem;
  color: var(--text-muted);
  cursor: pointer;
  padding: 0;
  width: 30px;
  height: 30px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: all 0.3s ease;
}

.modal-close:hover {
  background-color: var(--background-light);
  color: var(--text-primary);
}

.modal-body {
  padding: 1.5rem;
}

.modal-footer {
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  padding: 1.5rem;
  border-top: 1px solid var(--border-color);
  background: var(--background-light);
}

/* Formulários do painel administrativo */
.form-group {
  margin-bottom: 1.5rem;
}

.form-group label {
  display: block;
  font-weight: 500;
  color: var(--text-primary);
  margin-bottom: 0.5rem;
}

.form-group input,
.form-group select {
  width: 100%;
  padding: 0.75rem;
  border: 1px solid var(--border-color);
  border-radius: 6px;
  font-size: 1rem;
  transition: all 0.3s ease;
}

.form-group input:focus,
.form-group select:focus {
  outline: none;
  border-color: var(--primary-green);
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.1);
}

.form-group small {
  display: block;
  margin-top: 0.25rem;
  font-size: 0.75rem;
  color: var(--text-muted);
}

/* Checkbox personalizado */
.checkbox-label {
  display: flex;
  align-items: center;
  cursor: pointer;
  font-weight: 500;
  color: var(--text-primary);
}

.checkbox-label input[type="checkbox"] {
  width: auto;
  margin-right: 0.5rem;
}

/* Botão WhatsApp flutuante */
.whatsapp-float {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 1000;
}

.whatsapp-float a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  background-color: #25d366;
  color: white;
  border-radius: 50%;
  text-decoration: none;
  font-size: 1.5rem;
  box-shadow: var(--shadow-lg);
  transition: all 0.3s ease;
}

.whatsapp-float a:hover {
  transform: scale(1.1);
  box-shadow: 0 8px 25px rgba(37, 211, 102, 0.4);
}

/* Responsividade do painel administrativo */
@media (max-width: 768px) {
  .stats-grid {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
  }
  
  .stat-card {
    padding: 1rem;
  }
  
  .stat-value {
    font-size: 2rem;
  }
  
  .admin-tabs {
    flex-wrap: wrap;
  }
  
  .tabs-container {
    flex-direction: row !important;
    display: flex !important;
  }
  
  .tab-button {
    padding: 0.75rem 1rem;
    font-size: 0.875rem;
  }
  
  .card-header {
    flex-direction: column;
    gap: 1rem;
    align-items: flex-start;
  }
  
  .header-actions {
    width: 100%;
    justify-content: flex-end;
  }
  
  .table {
    font-size: 0.75rem;
  }
  
  .table th,
  .table td {
    padding: 0.5rem;
  }
  
  .modal-content {
    width: 95%;
    margin: 1rem;
  }
  
  .whatsapp-float {
    bottom: 1rem;
    right: 1rem;
  }
  
  .whatsapp-float a {
    width: 50px;
    height: 50px;
    font-size: 1.25rem;
  }
}

@media (max-width: 1280px) {
  .sidebar {
    width: 240px;
  }

  .main-content {
    margin-left: 240px;
  }

  .page-content {
    padding: 1.4rem;
  }

  .stats-grid {
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 0.9rem;
  }

  .dashboard-layout {
    grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr);
  }
}

@media (max-width: 1100px) {
  .dashboard-layout {
    grid-template-columns: 1fr;
  }

  .dashboard-right {
    order: 2;
  }

  .dashboard-page > .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .profile-layout {
    grid-template-columns: 1fr;
  }

  .profile-fields-grid {
    grid-template-columns: 1fr;
  }

  .profile-grid-span {
    grid-column: span 1;
  }

  .profile-actions {
    justify-content: flex-start;
    flex-direction: column;
  }
}

/* ===== Dashboard SaaS Enterprise Polish ===== */
body {
  background: #f8fafc;
}

.sidebar {
  width: 236px;
  background: #ffffff;
  border-right: 1px solid #edf2f7;
  box-shadow: 8px 0 24px rgba(15, 23, 42, 0.03);
}

.main-content {
  margin-left: 236px;
  background: #f8fafc;
}

.sidebar-header {
  background: #ffffff;
  color: #0f172a;
  border-bottom: 1px solid #f1f5f9;
  padding: 1.25rem 1.15rem 1rem;
}

.sidebar-header h1 {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  color: #0f172a;
  font-size: 1rem;
  margin-bottom: 0.35rem;
}

.sidebar-header h1 svg,
.sidebar-header h1 i {
  color: #16a34a;
}

.sidebar-header p {
  color: #64748b;
  opacity: 1;
  font-size: 0.67rem;
}

.sidebar-logo-wrapper {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}

.sidebar-logo-img {
  flex-shrink: 0;
  filter: drop-shadow(0 2px 6px rgba(22, 163, 74, 0.25));
  display: block;
  object-fit: contain;
}

.sidebar-nav {
  padding: 0.85rem 0.75rem 6.75rem;
  gap: 0.16rem;
}

.nav-section-title {
  padding: 0.9rem 0.85rem 0.35rem;
  font-size: 0.62rem;
  letter-spacing: 0.16em;
  color: #94a3b8;
}

.nav-item {
  min-height: 34px;
  border-left: none;
  border-radius: 10px;
  padding: 0.5rem 0.75rem;
  font-size: 0.82rem;
  color: #334155;
}

.nav-item:hover {
  background: #f8fafc;
  border-left-color: transparent;
}

.nav-item.active {
  background: rgba(22, 163, 74, 0.1);
  border-left-color: transparent;
  color: #15803d;
  box-shadow: inset 0 0 0 1px rgba(22, 163, 74, 0.08);
}

.nav-icon,
.nav-item svg {
  width: 17px;
  height: 17px;
  stroke-width: 1.75;
}

.sidebar-help-section {
  padding: 0.85rem 0.95rem;
  background: #ffffff;
  border-top: 1px solid #f1f5f9;
}

.sidebar-help-section .btn-primary {
  min-height: 42px;
  border-radius: 12px;
  box-shadow: 0 12px 22px rgba(22, 163, 74, 0.2);
}

.header {
  height: 72px;
  padding: 0 1.65rem;
  background: rgba(255, 255, 255, 0.96);
  border-bottom: 1px solid #eef2f7;
  box-shadow: none;
}

.header-left h2 {
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.header-left .text-muted {
  font-size: 0.78rem;
  color: #64748b;
}

.header-icon {
  width: 34px;
  height: 34px;
}

.user-trigger {
  gap: 0.65rem;
  padding: 0.35rem 0.45rem;
}

.user-avatar {
  width: 34px;
  height: 34px;
}

.user-name {
  font-size: 0.86rem;
}

.user-role {
  font-size: 0.68rem;
}

.page-content.dashboard-page {
  padding: 1.25rem 1.35rem 1.5rem;
  background: #f8fafc;
}

.dashboard-page > .stats-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin: 0 0 1rem !important;
}

.dashboard-page .stats-grid .stat-card {
  min-height: 116px;
  padding: 0.95rem 1rem;
  border-radius: 16px;
  border: 1px solid #edf2f7;
  box-shadow: 0 10px 26px rgba(15, 23, 42, 0.05);
  gap: 0.55rem;
}

.dashboard-page .stats-grid .stat-card::before {
  height: 3px;
}

.dashboard-page .stat-icon {
  width: 42px;
  height: 42px;
  border-radius: 12px;
  font-size: 1rem;
}

.dashboard-page .stats-grid .stat-label {
  font-size: 0.72rem;
  font-weight: 600;
  color: #64748b;
}

.dashboard-page .stats-grid .stat-value {
  font-size: 2rem;
  line-height: 1;
  font-weight: 800;
  letter-spacing: -0.03em;
}

.dashboard-page .stats-grid .progress {
  height: 0.28rem;
  margin-top: 0.15rem;
  background: #eef2f7;
}

.dashboard-page .stats-grid .stat-change {
  font-size: 0.64rem;
  padding: 0;
  background: transparent;
  font-weight: 600;
}

.dashboard-page .stat-sparkline {
  width: 88px;
  height: 42px;
  opacity: 0.75;
}

.dashboard-layout {
  grid-template-columns: minmax(0, 2.15fr) minmax(320px, 0.95fr);
  gap: 1rem;
  align-items: start;
}

.dashboard-left,
.dashboard-right {
  gap: 1rem;
}

.card {
  border: 1px solid #edf2f7;
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.045);
  margin-bottom: 0;
}

.card-header {
  padding: 0.95rem 1rem;
  background: #ffffff;
  border-bottom: 1px solid #f1f5f9;
}

.card-header h3 {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  margin-bottom: 0.15rem;
}

.card-header p {
  font-size: 0.72rem;
  color: #94a3b8;
}

.card-body {
  padding: 1rem;
}

.dashboard-page #kpi-stats-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.75rem;
}

#kpi-stats-grid .kpi-card {
  min-height: 92px;
  padding: 0.8rem;
  border-radius: 14px;
  border-color: #f1f5f9;
  box-shadow: 0 8px 20px rgba(15, 23, 42, 0.055);
}

#kpi-stats-grid .kpi-card-head {
  flex-direction: row;
  align-items: center;
  gap: 0.65rem;
  justify-content: flex-start;
}

#kpi-stats-grid .kpi-icon {
  width: 36px;
  height: 36px;
  border-radius: 11px;
  font-size: 0.9rem;
}

#kpi-stats-grid .kpi-label,
.dashboard-page #kpi-stats-grid .kpi-label {
  font-size: 0.58rem;
  letter-spacing: 0.14em;
  line-height: 1.2;
}

#kpi-stats-grid .kpi-value,
.dashboard-page #kpi-stats-grid .kpi-value {
  font-size: 1.28rem;
  margin-top: 0.15rem;
}

.kpi-progress {
  height: 3px;
  margin-top: 0.6rem;
}

.kpi-toggle {
  margin-top: 0.85rem;
  border-radius: 10px;
}

#scoreChart {
  height: 230px !important;
}

#contractsChart {
  height: 205px !important;
}

.alert-list,
.activity-list,
.actions-table {
  gap: 0.55rem;
}

.alert-item,
.activity-item,
.action-row {
  border-radius: 12px;
  padding: 0.65rem 0.75rem;
  border: 1px solid #f1f5f9;
  background: #ffffff;
}

.alert-item {
  border-left: 4px solid #e5e7eb;
}

.priority-high {
  border-left-color: #ef4444;
}

.priority-medium {
  border-left-color: #f59e0b;
}

.priority-low {
  border-left-color: #22c55e;
}

.alert-icon,
.activity-icon {
  width: 34px;
  height: 34px;
  border-radius: 10px;
}

.alert-content strong,
.activity-content strong,
.action-name {
  font-size: 0.78rem;
  color: #0f172a;
}

.alert-content span,
.activity-content span,
.alert-time,
.activity-time,
.action-count {
  font-size: 0.68rem;
  color: #94a3b8;
}

.risk-layout {
  align-items: center;
  gap: 1.5rem;
}

.risk-circle {
  width: 116px;
  height: 116px;
  border-width: 9px;
}

.risk-circle strong {
  font-size: 1.35rem;
}

.risk-details {
  display: grid;
  gap: 0.5rem;
}

.risk-details h4 {
  font-size: 0.9rem;
}

.risk-details ul {
  gap: 0.35rem;
  font-size: 0.76rem;
}

.badge {
  border-radius: 999px;
  font-size: 0.66rem;
  font-weight: 700;
  padding: 0.2rem 0.55rem;
}

@media (max-width: 1280px) {
  .sidebar {
    width: 220px;
  }

  .main-content {
    margin-left: 220px;
  }

  .dashboard-page #kpi-stats-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1100px) {
  .dashboard-page > .stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ===== Dashboard Composition Redesign ===== */
.page-content.dashboard-page {
  padding: 1.1rem 1.25rem 1.35rem;
}

.dashboard-page > .stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1rem !important;
}

.dashboard-page > .stats-grid .stat-card {
  min-height: 138px;
  border-radius: 20px;
  padding: 1.05rem 1.1rem;
  border: 1px solid rgba(226, 232, 240, 0.9);
  box-shadow: 0 18px 36px rgba(15, 23, 42, 0.07);
  background:
    radial-gradient(circle at 92% 12%, var(--kpi-accent-soft, rgba(22, 163, 74, 0.12)) 0, transparent 34%),
    #ffffff;
}

.dashboard-page > .stats-grid .stat-card::before {
  height: 0;
}

.dashboard-page > .stats-grid .stat-top {
  align-items: flex-start;
}

.dashboard-page > .stats-grid .stat-icon {
  width: 48px;
  height: 48px;
  border-radius: 15px;
  font-size: 1.1rem;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.55);
}

.dashboard-page > .stats-grid .stat-label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #64748b;
}

.dashboard-page > .stats-grid .stat-main {
  align-items: flex-end;
  gap: 0.9rem;
}

.dashboard-page > .stats-grid .stat-value {
  font-size: 2.25rem;
  line-height: 0.95;
  font-weight: 800;
  letter-spacing: -0.04em;
}

.dashboard-page > .stats-grid .progress {
  height: 4px;
  border-radius: 999px;
  margin-top: 0.45rem;
  background: #eef2f7;
}

.dashboard-page > .stats-grid .stat-change {
  margin-top: 0.3rem;
  font-size: 0.68rem;
  background: transparent;
  font-weight: 700;
}

.dashboard-page > .stats-grid .stat-sparkline {
  width: 100px;
  height: 48px;
  opacity: 0.9;
}

.dashboard-page > .stats-grid .stat-sparkline span {
  width: 7px;
  background: color-mix(in srgb, var(--kpi-accent, #16a34a) 28%, white);
}

.dashboard-composition {
  display: grid !important;
  grid-template-columns: minmax(0, 1.65fr) minmax(340px, 0.85fr) !important;
  grid-template-areas:
    "kpis alerts"
    "chart activities"
    "risk contracts"
    "risk actions";
  gap: 1rem;
  align-items: stretch;
}

.dashboard-composition > .dashboard-card {
  min-width: 0;
  margin: 0;
}

.area-kpis { grid-area: kpis; }
.area-alerts { grid-area: alerts; }
.area-chart { grid-area: chart; }
.area-activities { grid-area: activities; }
.area-risk { grid-area: risk; }
.area-contracts { grid-area: contracts; }
.area-actions { grid-area: actions; }

.dashboard-card {
  border-radius: 20px;
  border: 1px solid rgba(226, 232, 240, 0.9);
  box-shadow: 0 18px 38px rgba(15, 23, 42, 0.055);
  background: #ffffff;
}

.dashboard-card .card-header {
  padding: 1rem 1.1rem 0.85rem;
  border-bottom: 1px solid #f1f5f9;
  background: #ffffff;
}

.dashboard-card .card-header p {
  display: block !important;
  font-size: 0.72rem;
  color: #94a3b8;
}

.dashboard-card .card-header h3 {
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.dashboard-card .card-body {
  padding: 1rem 1.1rem 1.1rem;
}

.area-kpis .card-body {
  padding-top: 0.9rem;
}

.dashboard-page #kpi-stats-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0.75rem;
  margin-top: 0 !important;
}

#kpi-stats-grid .kpi-card {
  min-height: 104px;
  border-radius: 16px;
  padding: 0.82rem;
  border: 1px solid #eef2f7;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.06);
  background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
}

#kpi-stats-grid .kpi-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 32px rgba(15, 23, 42, 0.1);
}

#kpi-stats-grid .kpi-card-head {
  flex-direction: column;
  gap: 0.58rem;
  align-items: flex-start;
}

#kpi-stats-grid .kpi-icon {
  width: 38px;
  height: 38px;
  border-radius: 12px;
}

#kpi-stats-grid .kpi-label,
.dashboard-page #kpi-stats-grid .kpi-label {
  font-size: 0.58rem;
  line-height: 1.2;
  letter-spacing: 0.14em;
}

#kpi-stats-grid .kpi-value,
.dashboard-page #kpi-stats-grid .kpi-value {
  font-size: 1.55rem;
  font-weight: 800;
}

#kpi-stats-grid .kpi-content {
  gap: 0.16rem;
}

.kpi-progress {
  height: 4px;
  margin-top: 0.65rem;
}

.kpi-toggle {
  height: 34px;
  border-radius: 10px;
  padding: 0.45rem 0.7rem;
  font-size: 0.68rem;
}

.area-chart .card-body {
  padding-top: 0.8rem;
}

#scoreChart {
  height: 220px !important;
}

.area-contracts .card-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

#contractsChart {
  height: 190px !important;
  max-width: 260px;
}

.alert-list,
.activity-list,
.actions-table {
  display: grid;
  gap: 0.65rem;
}

.alert-item,
.activity-item,
.action-row {
  position: relative;
  border: 1px solid #eef2f7;
  border-radius: 14px;
  background: #fbfdff;
  padding: 0.72rem 0.78rem;
  box-shadow: 0 8px 16px rgba(15, 23, 42, 0.035);
}

.alert-item {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  border-left-width: 4px;
  color: inherit;
  text-decoration: none;
}

.alert-item:hover {
  color: inherit;
  text-decoration: none;
  transform: translateY(-1px);
}

.alert-empty {
  display: flex;
  min-height: 150px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  padding: 1.25rem;
  color: #64748b;
  text-align: center;
  font-size: 0.82rem;
}

.alert-empty i {
  color: #16a34a;
  font-size: 1.6rem;
  margin-bottom: 0.25rem;
}

.alert-empty strong {
  color: #0f172a;
  font-size: 0.92rem;
  font-weight: 800;
}

.alert-empty span {
  color: #64748b;
  font-size: 0.78rem;
}

.activity-item {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  align-items: center;
}

.alert-icon,
.activity-icon {
  width: 34px;
  height: 34px;
  border-radius: 11px;
}

.alert-content strong,
.activity-content strong,
.action-name {
  font-size: 0.78rem;
  font-weight: 800;
}

.alert-content span,
.activity-content span {
  font-size: 0.68rem;
}

.actions-table .action-row {
  grid-template-columns: minmax(0, 1fr) auto auto;
  display: grid;
  align-items: center;
  gap: 0.7rem;
  width: 100%;
}

.area-risk .card-body {
  height: calc(100% - 68px);
  display: flex;
  align-items: center;
}

.risk-layout {
  width: 100%;
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 1.35rem;
}

.risk-circle {
  width: 126px;
  height: 126px;
  border: 10px solid #f59e0b;
  border-left-color: #bbf7d0;
  border-bottom-color: #bbf7d0;
  box-shadow: 0 14px 30px rgba(245, 158, 11, 0.14);
}

.risk-circle strong {
  font-size: 1.55rem;
  font-weight: 800;
}

.risk-circle span {
  font-size: 0.7rem;
  font-weight: 700;
}

.risk-details h4 {
  font-size: 0.92rem;
  font-weight: 800;
}

.risk-details li {
  position: relative;
  padding-left: 0.9rem;
}

.risk-details li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.55em;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #f59e0b;
}

@media (max-width: 1380px) {
  .dashboard-page #kpi-stats-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 1100px) {
  .dashboard-composition {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "kpis"
      "alerts"
      "chart"
      "activities"
      "risk"
      "contracts"
      "actions";
  }
}

/* Processos */
.processos-page {
  display: grid;
  gap: 1rem;
}

.processos-guide-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.9rem;
  padding: 0.95rem 1rem;
  border: 1px solid #e5f4ec;
  border-radius: 18px;
  background: linear-gradient(135deg, #ffffff 0%, #f7fffb 100%);
  box-shadow: 0 14px 32px rgba(15, 23, 42, 0.05);
}

.processos-guide-card .guide-icon,
.processos-dept-card .dept-icon,
.processos-suggestion-card .suggestion-icon,
.processos-audit-timeline .audit-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 13px;
  color: #16a34a;
  background: #dcfce7;
}

.processos-guide-card strong {
  display: block;
  color: #0f172a;
  font-size: 0.9rem;
  font-weight: 800;
}

.processos-guide-card span,
.processos-card-header p,
.dept-card-top span,
.processos-empty span,
.suggestion-main p,
.suggestion-meta,
.audit-item p {
  color: #64748b;
  font-size: 0.76rem;
  line-height: 1.45;
}

.processos-layout {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.processos-sidebar,
.processos-card {
  border: 1px solid #eef2f7;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 38px rgba(15, 23, 42, 0.055);
}

.processos-sidebar {
  position: sticky;
  top: 1rem;
  padding: 0.8rem;
}

.processos-menu-title {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 0.65rem 0.8rem;
  color: #0f172a;
  font-size: 0.84rem;
  font-weight: 800;
  border-bottom: 1px solid #eef2f7;
}

.processos-menu-items {
  display: grid;
  gap: 0.28rem;
  padding-top: 0.65rem;
}

.processos-menu-items .menu-item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.68rem 0.75rem;
  border-radius: 13px;
  color: #475569;
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.18s ease;
}

.processos-menu-items .menu-item:hover,
.processos-menu-items .menu-item.active {
  color: #15803d;
  background: #eafaf0;
}

.processos-content .tab-content {
  display: none;
}

.processos-content .tab-content.active {
  display: block;
}

.processos-card {
  overflow: hidden;
}

.processos-card-header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.1rem;
  border-bottom: 1px solid #eef2f7;
}

.processos-card-header h3 {
  margin: 0;
  color: #0f172a;
  font-size: 1rem;
  font-weight: 850;
}

.processos-card-header p {
  margin: 0.2rem 0 0;
}

.processos-header-actions {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.processos-card-body {
  padding: 1rem 1.1rem 1.15rem;
}

.processos-summary-table-card {
  margin-top: 1rem;
}

.processos-resumo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(255px, 1fr));
  gap: 0.9rem;
}

.processos-dept-card {
  display: grid;
  gap: 0.85rem;
  padding: 1rem;
  border: 1px solid #edf2f7;
  border-radius: 18px;
  background: #fbfdff;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.035);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.processos-dept-card:hover,
.processos-suggestion-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 30px rgba(15, 23, 42, 0.07);
}

.dept-card-top {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
}

.dept-card-top h4 {
  margin: 0;
  color: #0f172a;
  font-size: 0.92rem;
  font-weight: 850;
}

.dept-card-top > strong {
  color: #16a34a;
  font-size: 1.45rem;
  font-weight: 900;
}

.dept-status-list {
  display: grid;
  gap: 0.42rem;
}

.dept-status-list span,
.dept-progress-row,
.dept-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  color: #64748b;
  font-size: 0.73rem;
}

.dept-status-list b,
.dept-progress-row b {
  color: #0f172a;
  font-weight: 850;
}

.dept-progress {
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #e2e8f0;
}

.dept-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #16a34a, #22c55e);
}

.dept-health {
  padding: 0.24rem 0.55rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 800;
}

.dept-health-boa { color: #15803d; background: #dcfce7; }
.dept-health-atencao { color: #b45309; background: #fef3c7; }
.dept-health-critica { color: #b91c1c; background: #fee2e2; }

.btn-link {
  border: 0;
  background: transparent;
  color: #16a34a;
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 800;
}

.processos-filters-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(120px, 1fr));
  gap: 0.65rem;
  margin-bottom: 0.85rem;
}

.processos-summary-filters {
  grid-template-columns: minmax(180px, 1.35fr) repeat(5, minmax(115px, 1fr)) auto auto;
  align-items: center;
}

.processos-filters-grid .form-control {
  min-height: 38px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  font-size: 0.76rem;
}

.processos-check-filter {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 38px;
  padding: 0 0.7rem;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  color: #475569;
  font-size: 0.76rem;
  font-weight: 700;
}

.processos-table-wrap {
  overflow-x: auto;
  border: 1px solid #eef2f7;
  border-radius: 16px;
}

.processos-table {
  min-width: 1120px;
  margin: 0;
}

.processos-summary-table {
  min-width: 1040px;
}

.processos-table th {
  color: #475569;
  background: #f8fafc;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.processos-table td {
  color: #334155;
  font-size: 0.74rem;
  vertical-align: middle;
}

.processos-table tbody tr:hover {
  background: #f8fffb;
}

.processos-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  font-size: 0.66rem;
  font-weight: 850;
}

.processos-badge-status-pendente,
.processos-badge-risco-medio { color: #b45309; background: #fef3c7; }
.processos-badge-status-aguardando_revisao { color: #1d4ed8; background: #dbeafe; }
.processos-badge-status-aprovado,
.processos-badge-risco-baixo,
.processos-badge-bool-nao { color: #15803d; background: #dcfce7; }
.processos-badge-status-reprovado,
.processos-badge-status-incompleto,
.processos-badge-risco-alto,
.processos-badge-bool-sim { color: #b91c1c; background: #fee2e2; }
.processos-badge-status-inativo { color: #475569; background: #e2e8f0; }
.processos-badge-risco-critico { color: #7f1d1d; background: #fecaca; }

.processos-actions {
  display: inline-flex;
  gap: 0.3rem;
}

.processos-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  color: #475569;
  background: #fff;
  cursor: pointer;
}

.processos-actions button:hover {
  color: #15803d;
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.processos-table-footer {
  margin-top: 0.7rem;
  color: #64748b;
  font-size: 0.75rem;
}

.processos-pagination-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.processos-pagination {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.processos-pagination button {
  min-width: 32px;
  height: 32px;
  padding: 0 0.6rem;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  color: #475569;
  background: #fff;
  cursor: pointer;
  font-size: 0.72rem;
  font-weight: 800;
}

.processos-pagination button:hover:not(:disabled),
.processos-pagination button.active {
  color: #fff;
  border-color: #16a34a;
  background: #16a34a;
}

.processos-pagination button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.pagination-ellipsis {
  color: #94a3b8;
  font-size: 0.74rem;
}

.processos-suggestions-list {
  display: grid;
  gap: 0.75rem;
}

.processos-suggestion-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.95rem;
  border: 1px solid #eef2f7;
  border-radius: 17px;
  background: #fbfdff;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.suggestion-main {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
}

.suggestion-main h4 {
  margin: 0 0 0.25rem;
  color: #0f172a;
  font-size: 0.9rem;
  font-weight: 850;
}

.suggestion-main p {
  margin: 0;
}

.suggestion-meta {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-top: 0.45rem;
}

.suggestion-meta span {
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  background: #f1f5f9;
}

.suggestion-actions {
  display: flex;
  gap: 0.45rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.processos-audit-timeline {
  display: grid;
  gap: 0.75rem;
}

.audit-item {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 0.75rem;
  padding: 0.85rem;
  border: 1px solid #eef2f7;
  border-radius: 16px;
  background: #fbfdff;
}

.audit-top {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  color: #0f172a;
  font-size: 0.82rem;
}

.audit-item p {
  margin: 0.25rem 0 0;
}

.processos-empty,
.processos-loading {
  display: flex;
  min-height: 170px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 1.25rem;
  color: #64748b;
  text-align: center;
}

.processos-empty i,
.processos-loading i {
  color: #16a34a;
  font-size: 1.65rem;
}

.processos-empty strong {
  color: #0f172a;
  font-size: 0.92rem;
  font-weight: 850;
}

.processo-modal-content {
  width: min(960px, calc(100vw - 2rem));
  max-height: 92vh;
  overflow: auto;
}

.processo-modal-content .form-section {
  padding: 0.95rem;
  border: 1px solid #eef2f7;
  border-radius: 16px;
  background: #fbfdff;
  margin-bottom: 0.85rem;
}

.processo-modal-content .form-section h4 {
  margin: 0 0 0.8rem;
  color: #0f172a;
  font-size: 0.86rem;
  font-weight: 850;
}

.form-grid-2,
.form-grid-3,
.processo-detail-grid {
  display: grid;
  gap: 0.75rem;
}

.form-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.processos-info-modal {
  width: min(760px, calc(100vw - 2rem));
}

.processo-detail-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.processo-detail-grid > div {
  display: grid;
  gap: 0.25rem;
  padding: 0.75rem;
  border: 1px solid #eef2f7;
  border-radius: 13px;
  background: #fbfdff;
}

.processo-detail-grid strong {
  color: #0f172a;
  font-size: 0.73rem;
}

.processo-detail-grid span,
.ia-analysis li,
.processos-tutorial li,
.tutorial-example span {
  color: #475569;
  font-size: 0.78rem;
  line-height: 1.45;
}

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

.ia-warning {
  padding: 0.75rem;
  border-radius: 13px;
  color: #92400e;
  background: #fffbeb;
}

.tutorial-example {
  display: grid;
  gap: 0.25rem;
  padding: 0.8rem;
  border-radius: 14px;
  background: #f0fdf4;
}

body.dark .processos-guide-card,
body.dark .processos-sidebar,
body.dark .processos-card,
body.dark .processos-dept-card,
body.dark .processos-suggestion-card,
body.dark .audit-item,
body.dark .processo-modal-content .form-section,
body.dark .processo-detail-grid > div {
  border-color: rgba(148, 163, 184, 0.18);
  background: #111827;
}

body.dark .processos-guide-card strong,
body.dark .processos-menu-title,
body.dark .processos-card-header h3,
body.dark .dept-card-top h4,
body.dark .suggestion-main h4,
body.dark .processos-empty strong,
body.dark .audit-top,
body.dark .processo-modal-content .form-section h4,
body.dark .processo-detail-grid strong {
  color: #f8fafc;
}

body.dark .processos-table th,
body.dark .suggestion-meta span,
body.dark .processos-check-filter,
body.dark .processos-actions button,
body.dark .processos-pagination button {
  background: #1f2937;
  border-color: rgba(148, 163, 184, 0.18);
}

@media (max-width: 1180px) {
  .processos-layout {
    grid-template-columns: 1fr;
  }

  .processos-sidebar {
    position: static;
  }

  .processos-menu-items {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .processos-filters-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .processos-guide-card,
  .processos-card-header,
  .processos-suggestion-card {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .processos-card-header,
  .processos-suggestion-card {
    flex-direction: column;
  }

  .processos-menu-items,
  .processos-filters-grid,
  .form-grid-2,
  .form-grid-3,
  .processo-detail-grid {
    grid-template-columns: 1fr;
  }
}

/* Diagnóstico */
.diagnostico-page {
  display: grid;
  gap: 1rem;
}

.diagnostico-guide-card {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.9rem;
  padding: 0.95rem 1rem;
  border: 1px solid #e5f4ec;
  border-radius: 18px;
  background: linear-gradient(135deg, #ffffff 0%, #f7fffb 100%);
  box-shadow: 0 14px 32px rgba(15, 23, 42, 0.05);
}

.diagnostico-guide-card .guide-icon,
.diagnostico-stat-card .stat-icon,
.questionario-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 13px;
}

.diagnostico-guide-card .guide-icon,
.questionario-icon,
.stat-green {
  color: #16a34a;
  background: #dcfce7;
}

.stat-blue { color: #2563eb; background: #dbeafe; }
.stat-red { color: #dc2626; background: #fee2e2; }
.stat-amber { color: #d97706; background: #fef3c7; }

.diagnostico-guide-card strong,
.diagnostico-card-header h3,
.diagnostico-menu-title,
.diagnostico-stat-card strong,
.diagnostico-score-card h3,
.diagnostico-questionario-card h4,
.diagnostico-pergunta-card h4,
.diagnostico-empty strong {
  color: #0f172a;
  font-weight: 850;
}

.diagnostico-guide-card span,
.diagnostico-card-header p,
.diagnostico-stat-card span,
.diagnostico-stat-card small,
.diagnostico-score-card p,
.diagnostico-questionario-card p,
.questionario-meta,
.diagnostico-progress-row,
.diagnostico-empty span {
  color: #64748b;
  font-size: 0.76rem;
  line-height: 1.45;
}

.diagnostico-layout {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}

.diagnostico-sidebar,
.diagnostico-card,
.diagnostico-stat-card,
.diagnostico-score-card {
  border: 1px solid #eef2f7;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 38px rgba(15, 23, 42, 0.055);
}

.diagnostico-sidebar {
  position: sticky;
  top: 1rem;
  padding: 0.8rem;
}

.diagnostico-menu-title {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.55rem 0.65rem 0.8rem;
  font-size: 0.84rem;
  border-bottom: 1px solid #eef2f7;
}

.diagnostico-menu-items {
  display: grid;
  gap: 0.28rem;
  padding-top: 0.65rem;
}

.diagnostico-menu-items .menu-item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.68rem 0.75rem;
  border-radius: 13px;
  color: #475569;
  font-size: 0.78rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.18s ease;
}

.diagnostico-menu-items .menu-item:hover,
.diagnostico-menu-items .menu-item.active {
  color: #15803d;
  background: #eafaf0;
}

.diagnostico-content {
  display: grid;
  gap: 1rem;
}

.diagnostico-content .tab-content {
  display: none;
}

.diagnostico-content .tab-content.active {
  display: block;
}

.diagnostico-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) 1.1fr;
  gap: 0.85rem;
}

.diagnostico-stat-card {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
  padding: 1rem;
}

.diagnostico-stat-card div:last-child {
  display: grid;
  gap: 0.16rem;
}

.diagnostico-stat-card strong {
  font-size: 1.45rem;
  line-height: 1.1;
}

.diagnostico-score-card {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  align-items: center;
  gap: 0.9rem;
  padding: 0.9rem;
}

.score-ring {
  --score: 0;
  width: 104px;
  height: 104px;
  border-radius: 50%;
  background: conic-gradient(#16a34a calc(var(--score) * 1%), #e2e8f0 0);
  display: grid;
  place-items: center;
  position: relative;
}

.score-ring::before {
  content: "";
  position: absolute;
  inset: 10px;
  border-radius: inherit;
  background: #fff;
}

.score-ring strong,
.score-ring span {
  position: relative;
  z-index: 1;
}

.score-ring strong {
  color: #16a34a;
  font-size: 1.45rem;
  font-weight: 900;
}

.score-ring span {
  color: #64748b;
  font-size: 0.64rem;
  margin-top: 2rem;
}

.diagnostico-actions-row {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.diagnostico-card {
  overflow: hidden;
}

.diagnostico-card-header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.1rem;
  border-bottom: 1px solid #eef2f7;
}

.diagnostico-card-header h3 {
  margin: 0;
  font-size: 1rem;
}

.diagnostico-card-header p {
  margin: 0.2rem 0 0;
}

.diagnostico-card-body {
  padding: 1rem 1.1rem 1.15rem;
}

.diagnostico-questionarios-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: 0.85rem;
}

.diagnostico-questionario-card {
  display: grid;
  gap: 0.65rem;
  padding: 1rem;
  border: 1px solid #edf2f7;
  border-radius: 18px;
  background: #fbfdff;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.035);
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.diagnostico-questionario-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 30px rgba(15, 23, 42, 0.07);
}

.diagnostico-questionario-card h4,
.diagnostico-questionario-card p {
  margin: 0;
}

.questionario-meta {
  display: flex;
  gap: 0.35rem;
  flex-wrap: wrap;
}

.questionario-meta span {
  padding: 0.18rem 0.5rem;
  border-radius: 999px;
  background: #f1f5f9;
}

.diagnostico-progress-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.diagnostico-progress {
  height: 7px;
  overflow: hidden;
  border-radius: 999px;
  background: #e2e8f0;
}

.diagnostico-progress span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #16a34a, #22c55e);
}

.diagnostico-badge {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  justify-content: center;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  font-size: 0.66rem;
  font-weight: 850;
}

.status-nao_iniciado,
.medida-nao_implantada,
.status-atencao,
.risco-medio,
.risco-media { color: #b45309; background: #fef3c7; }
.status-em_andamento,
.ameaca-em_tratamento { color: #1d4ed8; background: #dbeafe; }
.status-concluido,
.medida-implantada,
.ameaca-mitigada,
.ameaca-encerrada,
.status-bom,
.status-excelente,
.risco-baixo,
.risco-baixa { color: #15803d; background: #dcfce7; }
.status-requer_revisao,
.status-critico,
.risco-alto,
.risco-critico { color: #b91c1c; background: #fee2e2; }
.medida-parcial { color: #b45309; background: #fef3c7; }
.medida-nao_aplicavel,
.ameaca-aceita { color: #475569; background: #e2e8f0; }
.ameaca-aberta { color: #b45309; background: #fef3c7; }

.diagnostico-table-wrap {
  overflow-x: auto;
  border: 1px solid #eef2f7;
  border-radius: 16px;
}

.diagnostico-table {
  min-width: 920px;
  margin: 0;
}

.diagnostico-table th {
  color: #475569;
  background: #f8fafc;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.diagnostico-table td {
  color: #334155;
  font-size: 0.74rem;
  vertical-align: middle;
}

.diagnostico-table td span {
  display: block;
  color: #64748b;
  font-size: 0.68rem;
}

.diagnostico-actions {
  display: inline-flex;
  gap: 0.3rem;
}

.diagnostico-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  color: #475569;
  background: #fff;
  cursor: pointer;
}

.diagnostico-actions button:hover {
  color: #15803d;
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.diagnostico-empty,
.diagnostico-loading {
  display: flex;
  min-height: 170px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 1.25rem;
  color: #64748b;
  text-align: center;
}

.diagnostico-empty i,
.diagnostico-loading i {
  color: #16a34a;
  font-size: 1.65rem;
}

.diagnostico-modal-large {
  width: min(920px, calc(100vw - 2rem));
  max-height: 92vh;
  overflow: auto;
}

.diagnostico-modal-info {
  display: grid;
  gap: 0.2rem;
  padding: 0.8rem;
  margin-bottom: 0.85rem;
  border-radius: 14px;
  background: #f8fafc;
}

.diagnostico-modal-info span {
  color: #64748b;
  font-size: 0.78rem;
}

.diagnostico-perguntas-list {
  display: grid;
  gap: 0.75rem;
}

.diagnostico-pergunta-card {
  display: grid;
  gap: 0.65rem;
  padding: 0.9rem;
  border: 1px solid #eef2f7;
  border-radius: 16px;
  background: #fbfdff;
}

.pergunta-top {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  color: #64748b;
  font-size: 0.72rem;
  font-weight: 800;
}

.pergunta-top b {
  color: #b91c1c;
}

.diagnostico-pergunta-card h4,
.diagnostico-pergunta-card p {
  margin: 0;
}

.pergunta-options {
  display: flex;
  gap: 0.8rem;
  flex-wrap: wrap;
}

.pergunta-options label {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #475569;
  font-size: 0.8rem;
  font-weight: 700;
}

.diagnostico-info-modal {
  width: min(760px, calc(100vw - 2rem));
}

.diagnostico-ia p {
  padding: 0.75rem;
  border-radius: 13px;
  color: #92400e;
  background: #fffbeb;
}

.diagnostico-ia li,
.diagnostico-detail-grid span {
  color: #475569;
  font-size: 0.78rem;
  line-height: 1.45;
}

.diagnostico-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.diagnostico-detail-grid > div {
  display: grid;
  gap: 0.25rem;
  padding: 0.75rem;
  border: 1px solid #eef2f7;
  border-radius: 13px;
  background: #fbfdff;
}

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

body.dark .diagnostico-guide-card,
body.dark .diagnostico-sidebar,
body.dark .diagnostico-card,
body.dark .diagnostico-stat-card,
body.dark .diagnostico-score-card,
body.dark .diagnostico-questionario-card,
body.dark .diagnostico-pergunta-card,
body.dark .diagnostico-detail-grid > div {
  border-color: rgba(148, 163, 184, 0.18);
  background: #111827;
}

body.dark .score-ring::before {
  background: #111827;
}

body.dark .diagnostico-guide-card strong,
body.dark .diagnostico-card-header h3,
body.dark .diagnostico-menu-title,
body.dark .diagnostico-stat-card strong,
body.dark .diagnostico-score-card h3,
body.dark .diagnostico-questionario-card h4,
body.dark .diagnostico-pergunta-card h4,
body.dark .diagnostico-empty strong {
  color: #f8fafc;
}

body.dark .diagnostico-table th,
body.dark .questionario-meta span,
body.dark .diagnostico-actions button {
  background: #1f2937;
  border-color: rgba(148, 163, 184, 0.18);
}

@media (max-width: 1320px) {
  .diagnostico-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .diagnostico-score-card {
    grid-column: span 2;
  }
}

@media (max-width: 1100px) {
  .diagnostico-layout {
    grid-template-columns: 1fr;
  }

  .diagnostico-sidebar {
    position: static;
  }

  .diagnostico-menu-items {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .diagnostico-guide-card,
  .diagnostico-card-header,
  .diagnostico-score-card,
  .diagnostico-stats-grid,
  .diagnostico-detail-grid {
    grid-template-columns: 1fr;
  }

  .diagnostico-score-card {
    grid-column: auto;
  }

  .diagnostico-menu-items {
    grid-template-columns: 1fr;
  }

  .diagnostico-actions-row {
    justify-content: stretch;
  }
}

/* Classificação de Dados */
.classificacao-page {
  display: grid;
  gap: 1rem;
}

.classificacao-stats-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) 1.1fr;
  gap: 0.85rem;
}

.classificacao-stat-card,
.classificacao-score-card,
.classificacao-card {
  border: 1px solid #eef2f7;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 18px 38px rgba(15, 23, 42, 0.055);
}

.classificacao-stat-card {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
  padding: 1rem;
  border-top-width: 3px;
}

.classificacao-stat-card .stat-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 14px;
}

.classificacao-stat-card .green { color: #16a34a; background: #dcfce7; }
.classificacao-stat-card .blue { color: #2563eb; background: #dbeafe; }
.classificacao-stat-card .amber { color: #d97706; background: #fef3c7; }
.classificacao-stat-card .purple { color: #7c3aed; background: #ede9fe; }
.border-green { border-top-color: #16a34a; }
.border-blue { border-top-color: #2563eb; }
.border-amber { border-top-color: #f59e0b; }
.border-purple { border-top-color: #7c3aed; }

.classificacao-stat-card span,
.classificacao-score-card p,
.classificacao-card-header p,
.classificacao-stat-card small,
.classificacao-table td span,
.classificacao-empty span,
.distribution-row span,
.class-detail-grid span {
  color: #64748b;
  font-size: 0.74rem;
  line-height: 1.45;
}

.classificacao-stat-card strong {
  color: #0f172a;
  display: block;
  font-size: 1.55rem;
  font-weight: 900;
  line-height: 1.1;
}

.classificacao-score-card {
  display: grid;
  grid-template-columns: 112px minmax(0, 1fr);
  align-items: center;
  gap: 0.9rem;
  padding: 0.9rem;
}

.classificacao-score-card h3,
.classificacao-card-header h3,
.distribution-row strong,
.class-detail-grid strong,
.classificacao-empty strong {
  color: #0f172a;
  font-weight: 850;
}

.classificacao-score-card h3 {
  margin: 0 0 0.25rem;
  font-size: 0.92rem;
}

.classificacao-score-card p {
  margin: 0.35rem 0 0;
}

.classificacao-card {
  overflow: hidden;
}

.classificacao-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 1rem 1.1rem;
  border-bottom: 1px solid #eef2f7;
}

.classificacao-card-header h3 {
  margin: 0;
  font-size: 1rem;
}

.classificacao-card-header p {
  margin: 0.2rem 0 0;
}

.classificacao-actions-row {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.classificacao-card-body {
  padding: 1rem 1.1rem 1.15rem;
}

.classificacao-filters {
  display: grid;
  grid-template-columns: minmax(180px, 1.4fr) repeat(6, minmax(105px, 1fr)) auto;
  gap: 0.65rem;
  margin-bottom: 0.85rem;
}

.classificacao-filters .form-control {
  min-height: 38px;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  font-size: 0.76rem;
}

.classificacao-table-wrap {
  overflow-x: auto;
  border: 1px solid #eef2f7;
  border-radius: 16px;
}

.classificacao-table {
  min-width: 1120px;
  margin: 0;
}

.classificacao-table.compact {
  min-width: 720px;
}

.classificacao-table th {
  color: #475569;
  background: #f8fafc;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.classificacao-table td {
  color: #334155;
  font-size: 0.74rem;
  vertical-align: middle;
}

.classificacao-table tbody tr:hover {
  background: #f8fffb;
}

.classificacao-badge {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  padding: 0.22rem 0.55rem;
  border-radius: 999px;
  font-size: 0.66rem;
  font-weight: 850;
}

.bool-nao,
.risk-baixo,
.status-ativo,
.score-bom,
.score-excelente,
.count-pessoal { color: #15803d; background: #dcfce7; }
.bool-sim,
.risk-alto,
.risk-critico,
.score-critico,
.count-sensivel { color: #b91c1c; background: #fee2e2; }
.risk-medio,
.status-em_revisao,
.score-atencao { color: #b45309; background: #fef3c7; }
.status-inativo { color: #475569; background: #e2e8f0; }
.count-total { color: #1d4ed8; background: #dbeafe; }

.classificacao-row-actions {
  display: inline-flex;
  gap: 0.3rem;
}

.classificacao-row-actions button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border: 1px solid #e2e8f0;
  border-radius: 9px;
  color: #475569;
  background: #fff;
  cursor: pointer;
}

.classificacao-row-actions button:hover {
  color: #15803d;
  border-color: #bbf7d0;
  background: #f0fdf4;
}

.classificacao-table-footer {
  margin-top: 0.7rem;
  color: #64748b;
  font-size: 0.75rem;
}

.classificacao-bottom-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.9fr) minmax(0, 1.1fr);
  gap: 1rem;
}

.classificacao-distribution-list {
  display: grid;
  gap: 0.75rem;
}

.distribution-row {
  display: grid;
  grid-template-columns: minmax(120px, 1fr) minmax(140px, 1.2fr) auto;
  align-items: center;
  gap: 0.75rem;
}

.distribution-row > div:first-child {
  display: grid;
  gap: 0.12rem;
}

.distribution-bar {
  height: 8px;
  overflow: hidden;
  border-radius: 999px;
  background: #e2e8f0;
}

.distribution-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #16a34a, #22c55e);
}

.classificacao-recommendations {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.75rem;
}

.classificacao-recommendations article {
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 0.65rem;
  align-items: center;
  padding: 0.8rem;
  border: 1px solid #eef2f7;
  border-radius: 16px;
  background: #fff;
  box-shadow: 0 12px 24px rgba(15, 23, 42, 0.04);
}

.classificacao-recommendations i {
  color: #16a34a;
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  background: #dcfce7;
}

.classificacao-recommendations strong {
  display: block;
  color: #0f172a;
  font-size: 0.78rem;
  font-weight: 850;
}

.classificacao-recommendations span {
  color: #64748b;
  font-size: 0.68rem;
}

.classificacao-empty,
.classificacao-loading {
  display: flex;
  min-height: 150px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.45rem;
  padding: 1.25rem;
  color: #64748b;
  text-align: center;
}

.classificacao-empty i,
.classificacao-loading i {
  color: #16a34a;
  font-size: 1.65rem;
}

.classificacao-modal-content {
  width: min(980px, calc(100vw - 2rem));
  max-height: 92vh;
  overflow: auto;
}

.classificacao-modal-content .form-section {
  padding: 0.95rem;
  border: 1px solid #eef2f7;
  border-radius: 16px;
  background: #fbfdff;
  margin-bottom: 0.85rem;
}

.classificacao-modal-content .form-section h4 {
  margin: 0 0 0.8rem;
  color: #0f172a;
  font-size: 0.86rem;
  font-weight: 850;
}

.classificacao-suggestion-box {
  display: grid;
  gap: 0.22rem;
  padding: 0.75rem;
  border-radius: 13px;
  color: #92400e;
  background: #fffbeb;
}

.classificacao-suggestion-box:empty {
  display: none;
}

.classificacao-suggestion-box span,
.classificacao-suggestion-box small {
  color: #92400e;
  font-size: 0.74rem;
}

.class-info-modal {
  width: min(760px, calc(100vw - 2rem));
}

.class-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
}

.class-detail-grid > div {
  display: grid;
  gap: 0.25rem;
  padding: 0.75rem;
  border: 1px solid #eef2f7;
  border-radius: 13px;
  background: #fbfdff;
}

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

body.dark .classificacao-stat-card,
body.dark .classificacao-score-card,
body.dark .classificacao-card,
body.dark .classificacao-recommendations article,
body.dark .classificacao-modal-content .form-section,
body.dark .class-detail-grid > div {
  border-color: rgba(148, 163, 184, 0.18);
  background: #111827;
}

body.dark .classificacao-score-card h3,
body.dark .classificacao-card-header h3,
body.dark .classificacao-stat-card strong,
body.dark .distribution-row strong,
body.dark .class-detail-grid strong,
body.dark .classificacao-empty strong,
body.dark .classificacao-recommendations strong {
  color: #f8fafc;
}

body.dark .classificacao-table th,
body.dark .classificacao-row-actions button {
  border-color: rgba(148, 163, 184, 0.18);
  background: #1f2937;
}

@media (max-width: 1320px) {
  .classificacao-stats-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .classificacao-score-card {
    grid-column: span 2;
  }

  .classificacao-recommendations {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1120px) {
  .classificacao-filters,
  .classificacao-bottom-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .classificacao-stats-grid,
  .classificacao-score-card,
  .classificacao-card-header,
  .distribution-row,
  .class-detail-grid,
  .classificacao-recommendations {
    grid-template-columns: 1fr;
  }

  .classificacao-score-card {
    grid-column: auto;
  }
}

/* Documentos - central LGPD premium */
.docs-premium-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}

.docs-premium-toolbar .btn,
.documentos-content .btn {
  border-radius: 0.75rem;
  min-height: 40px;
  font-weight: 700;
  box-shadow: none;
}

.docs-premium-toolbar .btn-secondary,
.documentos-content .btn-secondary {
  background: #fff;
  color: #334155;
  border: 1px solid #e2e8f0;
}

.docs-premium-toolbar .btn-primary,
.documentos-content .btn-primary {
  background: linear-gradient(135deg, #16a34a, #059669);
  border: 0;
}

.docs-hero-card {
  overflow: hidden;
}

.docs-hero-card::after {
  content: "";
  position: absolute;
  inset: auto -60px -90px auto;
  width: 220px;
  height: 220px;
  border-radius: 999px;
  background: rgba(16, 185, 129, 0.12);
}

.docs-hero-metrics {
  display: flex;
  gap: 0.75rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}

.docs-hero-metrics span {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.65rem;
  border: 1px solid rgba(16, 185, 129, 0.18);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.75);
  color: #047857;
  font-size: 0.8rem;
}

.docs-stats-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.docs-stats-grid article {
  display: grid;
  gap: 0.25rem;
  padding: 1rem;
  border: 1px solid #e2e8f0;
  border-top: 3px solid #10b981;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
}

.docs-stats-grid i {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.8rem;
  background: #ecfdf5;
  color: #059669;
}

.docs-stats-grid strong {
  font-size: 1.7rem;
  color: #0f172a;
  line-height: 1;
}

.docs-stats-grid span {
  font-weight: 800;
  color: #334155;
}

.docs-stats-grid small {
  color: #64748b;
}

.docs-content-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 1rem;
}

.docs-items-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 1rem;
}

.docs-item-card {
  position: relative;
  padding: 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  background: #fff;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.docs-item-card:hover {
  transform: translateY(-2px);
  border-color: rgba(16, 185, 129, 0.35);
  box-shadow: 0 18px 40px rgba(15, 23, 42, 0.08);
}

.docs-item-icon {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.9rem;
  font-size: 1.1rem;
}

.docs-item-icon.folder {
  background: #fef3c7;
  color: #d97706;
}

.docs-item-icon.file {
  background: #eef2ff;
  color: #4f46e5;
}

.docs-menu-trigger {
  background: transparent;
  border: 0;
  cursor: pointer;
  color: #64748b;
  padding: 0.3rem;
  border-radius: 0.5rem;
}

.docs-menu-trigger:hover {
  background: #f1f5f9;
}

.docs-card-badges {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-bottom: 0.8rem;
}

.docs-card-badges span {
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  background: #f1f5f9;
  color: #475569;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: capitalize;
}

.docs-card-badges .status {
  background: #ecfdf5;
  color: #047857;
}

.docs-card-meta {
  display: grid;
  gap: 0.35rem;
  min-height: 78px;
  color: #64748b;
  font-size: 0.82rem;
}

.docs-card-primary,
.docs-card-secondary {
  width: 100%;
  margin-top: 0.8rem;
  padding: 0.7rem 0.9rem;
  border-radius: 0.75rem;
  cursor: pointer;
  font-weight: 800;
}

.docs-card-primary {
  border: 0;
  background: #16a34a;
  color: #fff;
}

.docs-card-secondary {
  border: 1px solid #e2e8f0;
  background: #fff;
  color: #334155;
}

.docs-side-panel {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.docs-insight-card {
  padding: 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  background: #fff;
}

.docs-insight-card h4 {
  margin: 0 0 0.8rem;
  color: #0f172a;
  font-size: 0.95rem;
}

.docs-mini-row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.45rem 0;
  border-bottom: 1px solid #f1f5f9;
  color: #475569;
  font-size: 0.82rem;
}

.docs-mini-row:last-child {
  border-bottom: 0;
}

.docs-empty-small {
  color: #94a3b8;
  font-size: 0.82rem;
  margin: 0;
}

.docs-modelos-card {
  padding: 1.5rem;
  border-radius: 1rem;
  background: #fff;
  border: 1px solid #e2e8f0;
  box-shadow: 0 12px 30px rgba(15, 23, 42, 0.05);
}

.docs-modal-grid,
.docs-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}

.docs-detail-overlay {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: rgba(15, 23, 42, 0.55);
}

.docs-detail-modal {
  width: min(900px, 96vw);
  max-height: 92vh;
  overflow: auto;
  padding: 1.25rem;
  border-radius: 1.2rem;
  background: #fff;
  box-shadow: 0 30px 80px rgba(15, 23, 42, 0.24);
}

.docs-detail-header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #e2e8f0;
}

.docs-detail-header h3 {
  margin: 0.25rem 0;
  color: #0f172a;
}

.docs-detail-header p {
  margin: 0;
  color: #64748b;
}

.docs-detail-header button {
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 999px;
  background: #f1f5f9;
  cursor: pointer;
  font-size: 1.4rem;
}

.docs-detail-grid {
  margin: 1rem 0;
}

.docs-detail-grid div {
  padding: 0.8rem;
  border-radius: 0.8rem;
  background: #f8fafc;
}

.docs-detail-grid strong,
.docs-detail-grid span {
  display: block;
}

.docs-detail-grid strong {
  color: #64748b;
  font-size: 0.75rem;
  text-transform: uppercase;
}

.docs-detail-grid span {
  color: #0f172a;
  font-weight: 700;
}

.docs-preview-frame {
  width: 100%;
  min-height: 360px;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
}

.docs-preview-empty {
  display: grid;
  place-items: center;
  gap: 0.5rem;
  min-height: 180px;
  border: 1px dashed #cbd5e1;
  border-radius: 1rem;
  color: #64748b;
}

.docs-preview-empty i {
  font-size: 2rem;
}

.docs-detail-actions {
  display: flex;
  gap: 0.6rem;
  flex-wrap: wrap;
  margin-top: 1rem;
}

body.dark .docs-stats-grid article,
body.dark .docs-item-card,
body.dark .docs-insight-card,
body.dark .docs-modelos-card,
body.dark .docs-detail-modal {
  background: #111827;
  border-color: rgba(148, 163, 184, 0.2);
}

body.dark .docs-stats-grid strong,
body.dark .docs-stats-grid span,
body.dark .docs-insight-card h4,
body.dark .docs-detail-header h3,
body.dark .docs-detail-grid span {
  color: #f8fafc;
}

body.dark .docs-detail-grid div,
body.dark .docs-preview-empty {
  background: #1f2937;
}

@media (max-width: 1280px) {
  .docs-stats-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .docs-content-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 820px) {
  .documentos-layout {
    flex-direction: column;
  }

  .documentos-sidebar {
    width: 100% !important;
  }

  .docs-stats-grid,
  .docs-modal-grid,
  .docs-detail-grid {
    grid-template-columns: 1fr;
  }
}

/* Capacitação - módulo premium LGPD */
.capacitacao-page {
  display: grid;
  gap: 1.25rem;
}

.cap-hero-actions {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: flex-start;
  flex-wrap: wrap;
}

.cap-hero-actions h1 {
  margin: 0;
  color: #0f172a;
  font-size: 1.8rem;
}

.cap-hero-actions p {
  margin: 0.3rem 0 0;
  color: #64748b;
}

.cap-actions {
  display: flex;
  gap: 0.55rem;
  flex-wrap: wrap;
}

.cap-actions .btn,
.capacitacao-page .btn {
  min-height: 40px;
  border-radius: 0.75rem;
  font-weight: 800;
}

.cap-actions .btn-primary,
.capacitacao-page .btn-primary {
  background: linear-gradient(135deg, #16a34a, #059669);
  border: 0;
}

.cap-actions .btn-secondary,
.capacitacao-page .btn-secondary {
  background: #fff;
  color: #334155;
  border: 1px solid #e2e8f0;
}

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

.cap-stat-card {
  position: relative;
  display: grid;
  gap: 0.35rem;
  padding: 1.1rem;
  border: 1px solid #e2e8f0;
  border-radius: 1.1rem;
  background: #fff;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.06);
  overflow: hidden;
}

.cap-stat-card::after {
  content: "";
  position: absolute;
  inset: auto -40px -55px auto;
  width: 130px;
  height: 130px;
  border-radius: 999px;
  background: rgba(16, 185, 129, 0.09);
}

.cap-stat-card i {
  width: 42px;
  height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.9rem;
  background: #ecfdf5;
  color: #059669;
  font-size: 1.1rem;
}

.cap-stat-card strong {
  color: #0f172a;
  font-size: 2rem;
  line-height: 1;
}

.cap-stat-card span {
  color: #334155;
  font-weight: 800;
}

.cap-stat-card small {
  color: #64748b;
}

.cap-mini-bar {
  height: 5px;
  margin-top: 0.4rem;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}

.cap-mini-bar b {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #16a34a, #22c55e);
}

.cap-info-card {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 1rem;
  align-items: center;
  padding: 1.25rem;
  border: 1px solid #bbf7d0;
  border-radius: 1rem;
  background: linear-gradient(135deg, #f0fdf4, #f8fafc);
  overflow: hidden;
}

.cap-info-card > button {
  position: absolute;
  top: 0.75rem;
  right: 0.75rem;
  border: 0;
  background: transparent;
  color: #64748b;
  cursor: pointer;
  font-size: 1.2rem;
}

.cap-info-icon {
  width: 72px;
  height: 72px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 1rem;
  background: linear-gradient(135deg, #10b981, #059669);
  color: #fff;
  font-size: 1.8rem;
}

.cap-info-card h2 {
  margin: 0 0 0.35rem;
  color: #0f172a;
  font-size: 1.15rem;
}

.cap-info-card p {
  margin: 0;
  color: #475569;
  line-height: 1.5;
}

.cap-info-metrics {
  display: grid;
  gap: 0.45rem;
  min-width: 230px;
}

.cap-info-metrics span {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.45rem 0.65rem;
  border: 1px solid rgba(16, 185, 129, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.78);
  color: #047857;
  font-size: 0.8rem;
}

.cap-filters {
  display: grid;
  grid-template-columns: 1.4fr repeat(4, minmax(150px, 1fr)) auto;
  gap: 0.8rem;
  align-items: end;
  padding: 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  background: #fff;
}

.cap-filters label,
.cap-form-section label {
  display: block;
  margin-bottom: 0.35rem;
  color: #475569;
  font-size: 0.78rem;
  font-weight: 800;
}

.cap-filters input,
.cap-filters select,
.cap-form-section input,
.cap-form-section select,
.cap-form-section textarea,
.cap-participant-form input {
  width: 100%;
  padding: 0.72rem 0.8rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.75rem;
  background: #fff;
  color: #0f172a;
}

.cap-filter-buttons {
  display: flex;
  gap: 0.5rem;
}

.cap-main-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 1rem;
}

.cap-table-card,
.cap-side-card {
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  background: #fff;
  box-shadow: 0 14px 34px rgba(15, 23, 42, 0.05);
}

.cap-table-card {
  overflow: hidden;
}

.cap-card-header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: center;
  padding: 1rem 1.1rem;
  border-bottom: 1px solid #e2e8f0;
}

.cap-card-header h2 {
  margin: 0;
  color: #0f172a;
  font-size: 1.1rem;
}

.cap-card-header p {
  margin: 0.25rem 0 0;
  color: #64748b;
}

.cap-table th {
  white-space: nowrap;
  color: #64748b;
  font-size: 0.74rem;
  text-transform: uppercase;
  letter-spacing: 0.02em;
}

.cap-training-cell {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 240px;
}

.cap-training-cell strong,
.cap-training-cell small {
  display: block;
}

.cap-training-cell strong {
  color: #0f172a;
  font-weight: 800;
}

.cap-training-cell small {
  max-width: 280px;
  color: #64748b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cap-row-icon {
  width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.8rem;
  background: #ecfdf5;
  color: #059669;
}

.cap-type-badge,
.cap-status-badge {
  display: inline-flex;
  padding: 0.25rem 0.55rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 800;
}

.cap-type-badge {
  background: #eef2ff;
  color: #4f46e5;
}

.cap-status-badge {
  background: #f1f5f9;
  color: #475569;
}

.cap-status-badge.planejado {
  background: #eff6ff;
  color: #2563eb;
}

.cap-status-badge.em_andamento {
  background: #fff7ed;
  color: #c2410c;
}

.cap-status-badge.concluido {
  background: #ecfdf5;
  color: #047857;
}

.cap-status-badge.cancelado,
.cap-status-badge.arquivado {
  background: #fef2f2;
  color: #b91c1c;
}

.cap-progress {
  display: grid;
  grid-template-columns: auto 80px auto;
  gap: 0.4rem;
  align-items: center;
  color: #64748b;
  font-size: 0.78rem;
}

.cap-progress b {
  height: 6px;
  border-radius: 999px;
  background: #e2e8f0;
  overflow: hidden;
}

.cap-progress i {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #16a34a;
}

.cap-row-actions {
  display: flex;
  gap: 0.35rem;
}

.cap-row-actions button {
  width: 32px;
  height: 32px;
  border: 1px solid #e2e8f0;
  border-radius: 0.65rem;
  background: #fff;
  color: #475569;
  cursor: pointer;
}

.cap-row-actions button:hover {
  background: #ecfdf5;
  color: #047857;
}

.cap-side-panel {
  display: grid;
  gap: 1rem;
  align-content: start;
}

.cap-side-card {
  padding: 1rem;
}

.cap-side-card h3 {
  margin: 0 0 0.85rem;
  color: #0f172a;
  font-size: 0.98rem;
}

.cap-donut-wrap {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr);
  gap: 0.8rem;
  align-items: center;
}

.cap-donut {
  width: 116px;
  height: 116px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: conic-gradient(#16a34a 0 40%, #3b82f6 40% 70%, #f59e0b 70% 90%, #ef4444 90% 100%);
  position: relative;
}

.cap-donut::after {
  content: "";
  position: absolute;
  inset: 18px;
  border-radius: 999px;
  background: #fff;
}

.cap-donut span {
  position: relative;
  z-index: 1;
  text-align: center;
  color: #0f172a;
  font-weight: 900;
}

.cap-donut small {
  font-weight: 700;
  color: #64748b;
}

.cap-legend {
  display: grid;
  gap: 0.45rem;
}

.cap-legend div,
.cap-side-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  color: #475569;
  font-size: 0.82rem;
}

.cap-legend span {
  width: 10px;
  height: 10px;
  display: inline-flex;
  margin-right: 0.35rem;
  border-radius: 999px;
}

.cap-side-row {
  padding: 0.45rem 0;
  border-bottom: 1px solid #f1f5f9;
}

.cap-side-row:last-child {
  border-bottom: 0;
}

.cap-side-row strong,
.cap-side-row i {
  color: #059669;
}

.cap-empty {
  margin: 0;
  color: #94a3b8;
  font-size: 0.85rem;
}

.cap-modal {
  align-items: center;
  justify-content: center;
}

.cap-modal-content {
  width: min(980px, 96vw);
  max-height: 92vh;
  overflow: auto;
  border-radius: 1.15rem;
}

.cap-form-section {
  padding: 1rem;
  margin-bottom: 1rem;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  background: #f8fafc;
}

.cap-form-section h4 {
  margin: 0 0 0.9rem;
  color: #0f172a;
}

.cap-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
}

.cap-form-grid .span-2 {
  grid-column: span 2;
}

.cap-detail-overlay {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: rgba(15, 23, 42, 0.58);
}

.cap-detail-modal {
  width: min(1100px, 96vw);
  max-height: 92vh;
  overflow: auto;
  padding: 1.25rem;
  border-radius: 1.15rem;
  background: #fff;
  box-shadow: 0 30px 80px rgba(15, 23, 42, 0.24);
}

.cap-detail-header {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #e2e8f0;
}

.cap-detail-header h2 {
  margin: 0.25rem 0;
  color: #0f172a;
}

.cap-detail-header p {
  margin: 0;
  color: #64748b;
}

.cap-detail-header button {
  width: 38px;
  height: 38px;
  border: 0;
  border-radius: 999px;
  background: #f1f5f9;
  cursor: pointer;
  font-size: 1.4rem;
}

.cap-detail-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.8rem;
  margin: 1rem 0;
}

.cap-detail-summary div,
.cap-detail-grid div {
  padding: 0.85rem;
  border-radius: 0.9rem;
  background: #f8fafc;
}

.cap-detail-summary strong {
  display: block;
  color: #0f172a;
  font-size: 1.4rem;
}

.cap-detail-summary span,
.cap-detail-grid strong {
  color: #64748b;
  font-size: 0.78rem;
  font-weight: 800;
}

.cap-detail-tabs {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}

.cap-detail-tabs button {
  padding: 0.55rem 0.85rem;
  border: 1px solid #e2e8f0;
  border-radius: 999px;
  background: #fff;
  color: #475569;
  cursor: pointer;
  font-weight: 800;
}

.cap-detail-tabs button.active {
  background: #ecfdf5;
  color: #047857;
  border-color: #bbf7d0;
}

.cap-detail-pane {
  display: none;
}

.cap-detail-pane.active {
  display: block;
}

.cap-detail-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.8rem;
}

.cap-detail-grid span {
  display: block;
  margin-top: 0.2rem;
  color: #0f172a;
  font-weight: 800;
}

.cap-content-preview {
  width: 100%;
  min-height: 360px;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  background: #000;
}

.cap-preview-empty,
.cap-program-box {
  padding: 1rem;
  border: 1px dashed #cbd5e1;
  border-radius: 1rem;
  color: #64748b;
  background: #f8fafc;
}

.cap-program-box {
  margin: 1rem 0;
  white-space: pre-wrap;
}

.cap-participant-form {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 0.7rem;
  margin-bottom: 1rem;
}

.cap-participant-list {
  display: grid;
  gap: 0.55rem;
}

.cap-participant-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 120px 80px auto auto;
  gap: 0.65rem;
  align-items: center;
  padding: 0.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.85rem;
}

.cap-participant-row strong,
.cap-participant-row small {
  display: block;
}

.cap-participant-row small {
  color: #64748b;
}

.cap-participant-row button {
  border: 1px solid #e2e8f0;
  border-radius: 0.65rem;
  background: #fff;
  color: #047857;
  cursor: pointer;
  padding: 0.45rem 0.6rem;
  font-weight: 800;
}

.cap-question-list,
.cap-detail-actions {
  display: grid;
  gap: 0.7rem;
  margin-top: 1rem;
}

.cap-question-row,
.cap-log-row {
  padding: 0.8rem;
  border: 1px solid #e2e8f0;
  border-radius: 0.85rem;
}

.cap-question-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
}

.cap-log-row p {
  margin: 0.25rem 0 0;
  color: #64748b;
}

.cap-detail-actions {
  display: flex;
}

body.dark .cap-hero-actions h1,
body.dark .cap-stat-card strong,
body.dark .cap-info-card h2,
body.dark .cap-card-header h2,
body.dark .cap-side-card h3,
body.dark .cap-training-cell strong,
body.dark .cap-donut span,
body.dark .cap-form-section h4,
body.dark .cap-detail-header h2,
body.dark .cap-detail-summary strong,
body.dark .cap-detail-grid span {
  color: #f8fafc;
}

body.dark .cap-stat-card,
body.dark .cap-filters,
body.dark .cap-table-card,
body.dark .cap-side-card,
body.dark .cap-detail-modal,
body.dark .cap-form-section,
body.dark .cap-detail-summary div,
body.dark .cap-detail-grid div,
body.dark .cap-preview-empty,
body.dark .cap-program-box {
  background: #111827;
  border-color: rgba(148, 163, 184, 0.22);
}

body.dark .cap-donut::after {
  background: #111827;
}

@media (max-width: 1280px) {
  .cap-main-grid {
    grid-template-columns: 1fr;
  }

  .cap-filters {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .cap-stats-grid,
  .cap-info-card,
  .cap-detail-summary,
  .cap-detail-grid,
  .cap-form-grid,
  .cap-participant-form {
    grid-template-columns: 1fr;
  }

  .cap-form-grid .span-2 {
    grid-column: auto;
  }

  .cap-participant-row {
    grid-template-columns: 1fr;
  }
}

/* Incidentes - central premium LGPD */
.incidentes-page{display:grid;gap:1.25rem}.inc-hero-actions,.inc-card-header,.inc-detail-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.inc-hero-actions h1{margin:0;color:#0f172a;font-size:1.8rem}.inc-hero-actions p{margin:.3rem 0 0;color:#64748b}.inc-actions{display:flex;gap:.55rem;flex-wrap:wrap}.inc-actions .btn,.incidentes-page .btn{min-height:40px;border-radius:.75rem;font-weight:800}.inc-actions .btn-primary,.incidentes-page .btn-primary{background:linear-gradient(135deg,#16a34a,#059669);border:0}.inc-actions .btn-secondary,.incidentes-page .btn-secondary{background:#fff;color:#334155;border:1px solid #e2e8f0}
.inc-guide-card,.inc-info-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 1.15rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.inc-guide-icon,.inc-info-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:1rem;background:#ecfdf5;color:#059669;font-size:1.4rem}.inc-guide-card h2,.inc-info-card h2{margin:0 0 .25rem;color:#0f172a;font-size:1.05rem}.inc-guide-card p,.inc-info-card p{margin:0;color:#64748b;line-height:1.5}
.inc-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.inc-stat-card{position:relative;display:grid;gap:.35rem;padding:1.1rem;border:1px solid #e2e8f0;border-radius:1.1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.06);overflow:hidden}.inc-stat-card i{width:42px;height:42px;display:grid;place-items:center;border-radius:.9rem;background:#ecfdf5;color:#059669}.inc-stat-card.warning i{background:#fff7ed;color:#ea580c}.inc-stat-card.success i{background:#ecfdf5;color:#047857}.inc-stat-card.info i{background:#eff6ff;color:#2563eb}.inc-stat-card strong{color:#0f172a;font-size:2rem;line-height:1}.inc-stat-card span{color:#334155;font-weight:800}.inc-stat-card small{color:#64748b}.inc-stat-card div:last-child{height:5px;margin-top:.4rem;border-radius:999px;background:#e2e8f0;overflow:hidden}.inc-stat-card div:last-child b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#16a34a,#22c55e)}
.inc-info-card{grid-template-columns:auto minmax(0,1fr) minmax(220px,auto);background:linear-gradient(135deg,#f0fdf4,#f8fafc);border-color:#bbf7d0}.inc-info-metrics{display:grid;gap:.45rem}.inc-info-metrics span{display:flex;justify-content:space-between;gap:.75rem;padding:.45rem .65rem;border:1px solid rgba(16,185,129,.16);border-radius:999px;background:rgba(255,255,255,.78);color:#047857;font-size:.8rem}
.inc-filters{display:grid;grid-template-columns:1.5fr repeat(6,minmax(130px,1fr)) auto;gap:.8rem;align-items:end;padding:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff}.inc-filters label,.inc-form-section label{display:block;margin-bottom:.35rem;color:#475569;font-size:.78rem;font-weight:800}.inc-filters input,.inc-filters select,.inc-form-section input,.inc-form-section select,.inc-form-section textarea,.inc-evidence-upload input{width:100%;padding:.72rem .8rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff;color:#0f172a}.inc-filter-buttons{display:flex;gap:.5rem}
.inc-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1rem}.inc-table-card,.inc-side-card{border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.inc-table-card{overflow:hidden}.inc-card-header{align-items:center;padding:1rem 1.1rem;border-bottom:1px solid #e2e8f0}.inc-card-header h2,.inc-side-card h3{margin:0;color:#0f172a;font-size:1rem}.inc-card-header p{margin:.25rem 0 0;color:#64748b}.inc-table th{white-space:nowrap;color:#64748b;font-size:.74rem;text-transform:uppercase}.inc-title-cell strong,.inc-title-cell small{display:block}.inc-title-cell strong{color:#0f172a;font-weight:800}.inc-title-cell small{max-width:260px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inc-type-badge,.inc-sev-badge,.inc-vaz-badge,.inc-status-badge,.inc-anpd-badge{display:inline-flex;padding:.25rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800}.inc-type-badge{background:#eef2ff;color:#4f46e5}.inc-sev-badge.baixa{background:#ecfdf5;color:#047857}.inc-sev-badge.media{background:#fffbeb;color:#b45309}.inc-sev-badge.alta{background:#fff7ed;color:#c2410c}.inc-sev-badge.critica{background:#fef2f2;color:#b91c1c}.inc-vaz-badge.confirmado{background:#fef2f2;color:#b91c1c}.inc-vaz-badge.suspeito{background:#fff7ed;color:#c2410c}.inc-vaz-badge.nao_identificado{background:#f1f5f9;color:#475569}.inc-vaz-badge.nao_houve,.inc-anpd-badge.nao{background:#ecfdf5;color:#047857}.inc-anpd-badge.pendente{background:#fef2f2;color:#b91c1c}.inc-anpd-badge.analise{background:#fffbeb;color:#b45309}.inc-anpd-badge.comunicada{background:#eff6ff;color:#2563eb}.inc-status-badge.aberto{background:#fef2f2;color:#b91c1c}.inc-status-badge.em_investigacao{background:#fff7ed;color:#c2410c}.inc-status-badge.em_contencao{background:#eff6ff;color:#2563eb}.inc-status-badge.em_tratamento{background:#f5f3ff;color:#7c3aed}.inc-status-badge.aguardando_comunicacao{background:#fffbeb;color:#b45309}.inc-status-badge.comunicado_anpd,.inc-status-badge.resolvido,.inc-status-badge.encerrado{background:#ecfdf5;color:#047857}
.inc-row-actions{display:flex;gap:.35rem}.inc-row-actions button{width:32px;height:32px;border:1px solid #e2e8f0;border-radius:.65rem;background:#fff;color:#475569;cursor:pointer}.inc-row-actions button:hover{background:#ecfdf5;color:#047857}.inc-side-panel{display:grid;gap:1rem;align-content:start}.inc-side-card{padding:1rem}.inc-donut-wrap{display:grid;grid-template-columns:116px minmax(0,1fr);gap:.8rem;align-items:center}.inc-donut{width:116px;height:116px;display:grid;place-items:center;border-radius:999px;background:conic-gradient(#ef4444 0 35%,#f59e0b 35% 60%,#8b5cf6 60% 80%,#16a34a 80% 100%);position:relative}.inc-donut:after{content:"";position:absolute;inset:18px;border-radius:999px;background:#fff}.inc-donut span{position:relative;z-index:1;text-align:center;color:#0f172a;font-weight:900}.inc-legend{display:grid;gap:.45rem}.inc-legend div,.inc-side-row{display:flex;justify-content:space-between;gap:.75rem;color:#475569;font-size:.82rem}.inc-legend span{width:10px;height:10px;display:inline-flex;margin-right:.35rem;border-radius:999px}.inc-side-row{padding:.45rem 0;border-bottom:1px solid #f1f5f9}.inc-bar-row{display:grid;grid-template-columns:60px 1fr 24px;gap:.6rem;align-items:center;margin:.55rem 0;color:#475569;font-size:.82rem}.inc-bar-row b{height:7px;border-radius:999px;background:#e2e8f0;overflow:hidden}.inc-bar-row i{display:block;height:100%;border-radius:inherit}.inc-bar-row i.critica{background:#dc2626}.inc-bar-row i.alta{background:#f97316}.inc-bar-row i.media{background:#f59e0b}.inc-bar-row i.baixa{background:#16a34a}.inc-empty{margin:0;color:#94a3b8}
.inc-modal{align-items:center;justify-content:center}.inc-modal-content{width:min(1080px,96vw);max-height:92vh;overflow:auto;border-radius:1.15rem}.inc-form-section{padding:1rem;margin-bottom:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#f8fafc}.inc-form-section h4{margin:0 0 .9rem;color:#0f172a}.inc-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.inc-form-grid .span-2{grid-column:span 2}
.inc-detail-overlay{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;padding:2rem;background:rgba(15,23,42,.58)}.inc-detail-modal{width:min(1120px,96vw);max-height:92vh;overflow:auto;padding:1.25rem;border-radius:1.15rem;background:#fff;box-shadow:0 30px 80px rgba(15,23,42,.24)}.inc-detail-header{padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.inc-detail-header h2{margin:.25rem 0;color:#0f172a}.inc-detail-header p{margin:0;color:#64748b}.inc-detail-header button{width:38px;height:38px;border:0;border-radius:999px;background:#f1f5f9;cursor:pointer;font-size:1.4rem}.inc-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:1rem 0}.inc-detail-summary div,.inc-detail-grid div,.inc-text-box{padding:.85rem;border-radius:.9rem;background:#f8fafc}.inc-detail-summary strong{display:block;color:#0f172a;font-size:1.25rem}.inc-detail-summary span,.inc-detail-grid strong{color:#64748b;font-size:.78rem;font-weight:800}.inc-detail-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.inc-detail-tabs button{padding:.55rem .85rem;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#475569;cursor:pointer;font-weight:800}.inc-detail-tabs button.active{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.inc-detail-pane{display:none}.inc-detail-pane.active{display:block}.inc-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.inc-detail-grid span{display:block;margin-top:.2rem;color:#0f172a;font-weight:800}.inc-text-box{margin-bottom:.8rem}.inc-text-box p{margin:.35rem 0 0;color:#475569}.inc-evidence-upload{display:grid;grid-template-columns:1fr 1fr auto;gap:.7rem;margin-bottom:1rem}.inc-evidence-row,.inc-log-row{padding:.8rem;border:1px solid #e2e8f0;border-radius:.85rem;margin-bottom:.6rem}.inc-evidence-row{display:grid;grid-template-columns:1fr auto auto;gap:.7rem;align-items:center}.inc-evidence-row button{border:1px solid #e2e8f0;border-radius:.65rem;background:#fff;color:#047857;cursor:pointer;padding:.45rem .6rem;font-weight:800}.inc-detail-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
body.dark .inc-hero-actions h1,body.dark .inc-stat-card strong,body.dark .inc-guide-card h2,body.dark .inc-info-card h2,body.dark .inc-card-header h2,body.dark .inc-side-card h3,body.dark .inc-title-cell strong,body.dark .inc-donut span,body.dark .inc-form-section h4,body.dark .inc-detail-header h2,body.dark .inc-detail-summary strong,body.dark .inc-detail-grid span{color:#f8fafc}body.dark .inc-guide-card,body.dark .inc-info-card,body.dark .inc-stat-card,body.dark .inc-filters,body.dark .inc-table-card,body.dark .inc-side-card,body.dark .inc-form-section,body.dark .inc-detail-modal,body.dark .inc-detail-summary div,body.dark .inc-detail-grid div,body.dark .inc-text-box{background:#111827;border-color:rgba(148,163,184,.22)}body.dark .inc-donut:after{background:#111827}
@media (max-width:1280px){.inc-main-grid{grid-template-columns:1fr}.inc-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:860px){.inc-stats-grid,.inc-info-card,.inc-guide-card,.inc-detail-summary,.inc-detail-grid,.inc-form-grid,.inc-evidence-upload{grid-template-columns:1fr}.inc-form-grid .span-2{grid-column:auto}}

/* Compartilhamento - central premium LGPD */
.compartilhamento-page{display:grid;gap:1.25rem}.share-hero-actions,.share-card-header,.share-detail-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.share-hero-actions h1{margin:0;color:#0f172a;font-size:1.8rem}.share-hero-actions p{margin:.3rem 0 0;color:#64748b}.share-actions{display:flex;gap:.55rem;flex-wrap:wrap}.share-actions .btn,.compartilhamento-page .btn{min-height:40px;border-radius:.75rem;font-weight:800}.share-actions .btn-primary,.compartilhamento-page .btn-primary{background:linear-gradient(135deg,#16a34a,#059669);border:0}.share-actions .btn-secondary,.compartilhamento-page .btn-secondary{background:#fff;color:#334155;border:1px solid #e2e8f0}
.share-guide-card,.share-info-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 1.15rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.share-guide-icon,.share-info-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:1rem;background:#ecfdf5;color:#059669;font-size:1.4rem}.share-guide-card h2,.share-info-card h2{margin:0 0 .25rem;color:#0f172a;font-size:1.05rem}.share-guide-card p,.share-info-card p{margin:0;color:#64748b;line-height:1.5}.share-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.share-stat-card{display:grid;gap:.35rem;padding:1.1rem;border:1px solid #e2e8f0;border-radius:1.1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.06);overflow:hidden}.share-stat-card i{width:42px;height:42px;display:grid;place-items:center;border-radius:.9rem;background:#ecfdf5;color:#059669}.share-stat-card.success i{background:#ecfdf5;color:#047857}.share-stat-card.info i{background:#eff6ff;color:#2563eb}.share-stat-card.warning i{background:#fff7ed;color:#ea580c}.share-stat-card strong{color:#0f172a;font-size:2rem;line-height:1}.share-stat-card span{color:#334155;font-weight:800}.share-stat-card small{color:#64748b}.share-stat-card div:last-child{height:5px;margin-top:.4rem;border-radius:999px;background:#e2e8f0;overflow:hidden}.share-stat-card div:last-child b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#16a34a,#22c55e)}
.share-info-card{grid-template-columns:auto minmax(0,1fr) minmax(220px,auto);background:linear-gradient(135deg,#f0fdf4,#f8fafc);border-color:#bbf7d0}.share-info-metrics{display:grid;gap:.45rem}.share-info-metrics span{display:flex;justify-content:space-between;gap:.75rem;padding:.45rem .65rem;border:1px solid rgba(16,185,129,.16);border-radius:999px;background:rgba(255,255,255,.78);color:#047857;font-size:.8rem}.share-filters{display:grid;grid-template-columns:1.5fr repeat(6,minmax(120px,1fr)) auto;gap:.8rem;align-items:end;padding:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff}.share-filters label,.share-form-section label{display:block;margin-bottom:.35rem;color:#475569;font-size:.78rem;font-weight:800}.share-filters input,.share-filters select,.share-form-section input,.share-form-section select,.share-form-section textarea{width:100%;padding:.72rem .8rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff;color:#0f172a}.share-filter-buttons{display:flex;gap:.5rem}
.share-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1rem}.share-table-card,.share-side-card{border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.share-table-card{overflow:hidden}.share-card-header{align-items:center;padding:1rem 1.1rem;border-bottom:1px solid #e2e8f0}.share-card-header h2,.share-side-card h3{margin:0;color:#0f172a;font-size:1rem}.share-card-header p{margin:.25rem 0 0;color:#64748b}.share-table th{white-space:nowrap;color:#64748b;font-size:.72rem;text-transform:uppercase}.share-title-cell strong,.share-title-cell small{display:block}.share-title-cell strong{color:#0f172a;font-weight:800}.share-title-cell small{max-width:220px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.share-type-badge,.share-sensitive-badge,.share-no-badge,.share-risk-badge,.share-status-badge,.share-contract-badge{display:inline-flex;padding:.25rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;white-space:nowrap}.share-type-badge{background:#eef2ff;color:#4f46e5}.share-type-badge.fornecedor{background:#ecfdf5;color:#047857}.share-type-badge.controlador_conjunto{background:#f5f3ff;color:#7c3aed}.share-type-badge.orgao_publico{background:#eff6ff;color:#2563eb}.share-type-badge.internacional{background:#fff7ed;color:#c2410c}.share-sensitive-badge{background:#fef2f2;color:#b91c1c}.share-no-badge{background:#ecfdf5;color:#047857}.share-risk-badge.baixo{background:#ecfdf5;color:#047857}.share-risk-badge.medio{background:#fffbeb;color:#b45309}.share-risk-badge.alto{background:#fff7ed;color:#c2410c}.share-risk-badge.critico{background:#fef2f2;color:#b91c1c}.share-status-badge.ativo{background:#ecfdf5;color:#047857}.share-status-badge.pendente{background:#fff7ed;color:#c2410c}.share-status-badge.em_revisao{background:#eff6ff;color:#2563eb}.share-status-badge.suspenso,.share-status-badge.irregular{background:#fef2f2;color:#b91c1c}.share-status-badge.encerrado{background:#f1f5f9;color:#475569}.share-contract-badge.adequado{background:#ecfdf5;color:#047857}.share-contract-badge.pendente,.share-contract-badge.em_analise{background:#fffbeb;color:#b45309}.share-contract-badge.sem_contrato,.share-contract-badge.vencido{background:#fef2f2;color:#b91c1c}
.share-row-actions{display:flex;gap:.35rem}.share-row-actions button{width:32px;height:32px;border:1px solid #e2e8f0;border-radius:.65rem;background:#fff;color:#475569;cursor:pointer}.share-row-actions button:hover{background:#ecfdf5;color:#047857}.share-side-panel{display:grid;gap:1rem;align-content:start}.share-side-card{padding:1rem}.share-donut-wrap{display:grid;grid-template-columns:116px minmax(0,1fr);gap:.8rem;align-items:center}.share-donut{width:116px;height:116px;display:grid;place-items:center;border-radius:999px;position:relative;background:conic-gradient(#16a34a 0 55%,#f59e0b 55% 72%,#3b82f6 72% 86%,#ef4444 86% 100%)}.share-donut:after{content:"";position:absolute;inset:18px;border-radius:999px;background:#fff}.share-donut span{position:relative;z-index:1;text-align:center;color:#0f172a;font-weight:900}.share-legend{display:grid;gap:.45rem}.share-legend div,.share-side-row{display:flex;justify-content:space-between;gap:.75rem;color:#475569;font-size:.82rem}.share-legend span{width:10px;height:10px;display:inline-flex;margin-right:.35rem;border-radius:999px}.share-side-row{padding:.45rem 0;border-bottom:1px solid #f1f5f9}.share-bar-row{display:grid;grid-template-columns:60px 1fr 24px;gap:.6rem;align-items:center;margin:.55rem 0;color:#475569;font-size:.82rem}.share-bar-row b{height:7px;border-radius:999px;background:#e2e8f0;overflow:hidden}.share-bar-row i{display:block;height:100%;border-radius:inherit}.share-bar-row i.critico{background:#dc2626}.share-bar-row i.alto{background:#f97316}.share-bar-row i.medio{background:#f59e0b}.share-bar-row i.baixo{background:#16a34a}.share-empty{margin:0;color:#94a3b8}
.share-modal{align-items:center;justify-content:center}.share-modal-content{width:min(1120px,96vw);max-height:92vh;overflow:auto;border-radius:1.15rem}.share-form-section{padding:1rem;margin-bottom:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#f8fafc}.share-form-section h4{margin:0 0 .9rem;color:#0f172a}.share-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.share-form-grid .span-2{grid-column:span 2}
.share-detail-overlay{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;padding:2rem;background:rgba(15,23,42,.58)}.share-detail-modal{width:min(1120px,96vw);max-height:92vh;overflow:auto;padding:1.25rem;border-radius:1.15rem;background:#fff;box-shadow:0 30px 80px rgba(15,23,42,.24)}.share-detail-header{padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.share-detail-header h2{margin:.25rem 0;color:#0f172a}.share-detail-header p{margin:0;color:#64748b}.share-detail-header button{width:38px;height:38px;border:0;border-radius:999px;background:#f1f5f9;cursor:pointer;font-size:1.4rem}.share-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:1rem 0}.share-detail-summary div,.share-detail-grid div,.share-text-box{padding:.85rem;border-radius:.9rem;background:#f8fafc}.share-detail-summary strong{display:block;color:#0f172a;font-size:1.25rem}.share-detail-summary span,.share-detail-grid strong{color:#64748b;font-size:.78rem;font-weight:800}.share-detail-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.share-detail-tabs button{padding:.55rem .85rem;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#475569;cursor:pointer;font-weight:800}.share-detail-tabs button.active{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.share-detail-pane{display:none}.share-detail-pane.active{display:block}.share-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.share-detail-grid span{display:block;margin-top:.2rem;color:#0f172a;font-weight:800}.share-text-box{margin-bottom:.8rem}.share-text-box p{margin:.35rem 0 0;color:#475569}.share-log-row{padding:.8rem;border:1px solid #e2e8f0;border-radius:.85rem;margin-bottom:.6rem}.share-detail-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
body.dark .share-hero-actions h1,body.dark .share-stat-card strong,body.dark .share-guide-card h2,body.dark .share-info-card h2,body.dark .share-card-header h2,body.dark .share-side-card h3,body.dark .share-title-cell strong,body.dark .share-donut span,body.dark .share-form-section h4,body.dark .share-detail-header h2,body.dark .share-detail-summary strong,body.dark .share-detail-grid span{color:#f8fafc}body.dark .share-guide-card,body.dark .share-info-card,body.dark .share-stat-card,body.dark .share-filters,body.dark .share-table-card,body.dark .share-side-card,body.dark .share-form-section,body.dark .share-detail-modal,body.dark .share-detail-summary div,body.dark .share-detail-grid div,body.dark .share-text-box{background:#111827;border-color:rgba(148,163,184,.22)}body.dark .share-donut:after{background:#111827}
@media (max-width:1280px){.share-main-grid{grid-template-columns:1fr}.share-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:860px){.share-stats-grid,.share-info-card,.share-guide-card,.share-detail-summary,.share-detail-grid,.share-form-grid{grid-template-columns:1fr}.share-form-grid .span-2{grid-column:auto}}

/* Riscos - central premium LGPD */
.riscos-page{display:grid;gap:1.25rem}.risk-hero-actions,.risk-card-header,.risk-detail-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.risk-hero-actions h1{margin:0;color:#0f172a;font-size:1.8rem}.risk-hero-actions p{margin:.3rem 0 0;color:#64748b}.risk-actions{display:flex;gap:.55rem;flex-wrap:wrap}.risk-actions .btn,.riscos-page .btn{min-height:40px;border-radius:.75rem;font-weight:800}.risk-actions .btn-primary,.riscos-page .btn-primary{background:linear-gradient(135deg,#16a34a,#059669);border:0}.risk-actions .btn-secondary,.riscos-page .btn-secondary{background:#fff;color:#334155;border:1px solid #e2e8f0}
.risk-guide-card,.risk-info-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 1.15rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.risk-guide-icon,.risk-info-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:1rem;background:#ecfdf5;color:#059669;font-size:1.4rem}.risk-guide-card h2,.risk-info-card h2{margin:0 0 .25rem;color:#0f172a;font-size:1.05rem}.risk-guide-card p,.risk-info-card p{margin:0;color:#64748b;line-height:1.5}.risk-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.risk-stat-card{display:grid;gap:.35rem;padding:1.1rem;border:1px solid #e2e8f0;border-radius:1.1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.06);overflow:hidden}.risk-stat-card i{width:42px;height:42px;display:grid;place-items:center;border-radius:.9rem;background:#ecfdf5;color:#059669}.risk-stat-card.success i{background:#ecfdf5;color:#047857}.risk-stat-card.info i{background:#eff6ff;color:#2563eb}.risk-stat-card.warning i{background:#fff7ed;color:#ea580c}.risk-stat-card strong{color:#0f172a;font-size:2rem;line-height:1}.risk-stat-card span{color:#334155;font-weight:800}.risk-stat-card small{color:#64748b}.risk-stat-card div:last-child{height:5px;margin-top:.4rem;border-radius:999px;background:#e2e8f0;overflow:hidden}.risk-stat-card div:last-child b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#16a34a,#22c55e)}
.risk-info-card{grid-template-columns:auto minmax(0,1fr) minmax(220px,auto);background:linear-gradient(135deg,#f0fdf4,#f8fafc);border-color:#bbf7d0}.risk-info-metrics{display:grid;gap:.45rem}.risk-info-metrics span{display:flex;justify-content:space-between;gap:.75rem;padding:.45rem .65rem;border:1px solid rgba(16,185,129,.16);border-radius:999px;background:rgba(255,255,255,.78);color:#047857;font-size:.8rem}.risk-filters{display:grid;grid-template-columns:1.4fr repeat(7,minmax(112px,1fr)) auto;gap:.8rem;align-items:end;padding:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff}.risk-filters label,.risk-form-section label{display:block;margin-bottom:.35rem;color:#475569;font-size:.78rem;font-weight:800}.risk-filters input,.risk-filters select,.risk-form-section input,.risk-form-section select,.risk-form-section textarea{width:100%;padding:.72rem .8rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff;color:#0f172a}.risk-filter-buttons{display:flex;gap:.5rem}
.risk-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1rem}.risk-content-stack,.risk-side-panel{display:grid;gap:1rem;align-content:start}.risk-heat-card,.risk-table-card,.risk-side-card{border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.risk-table-card{overflow:hidden}.risk-card-header{align-items:center;padding:1rem 1.1rem;border-bottom:1px solid #e2e8f0}.risk-card-header h2,.risk-side-card h3{margin:0;color:#0f172a;font-size:1rem}.risk-card-header p{margin:.25rem 0 0;color:#64748b}.risk-table th{white-space:nowrap;color:#64748b;font-size:.72rem;text-transform:uppercase}.risk-title-cell strong,.risk-title-cell small{display:block}.risk-title-cell strong{color:#0f172a;font-weight:800}.risk-title-cell small{max-width:300px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.risk-heat-layout{display:grid;grid-template-columns:26px 1fr;gap:.65rem;padding:1rem}.risk-heat-axis{display:flex;align-items:center;justify-content:center;color:#64748b;font-size:.76rem;font-weight:900;text-transform:uppercase}.risk-heat-axis.y{writing-mode:vertical-rl;transform:rotate(180deg);grid-row:1}.risk-heat-axis.x{grid-column:2;text-align:center}.risk-heatmap{display:grid;grid-template-columns:72px repeat(3,minmax(0,1fr));gap:.45rem}.risk-heat-label{display:grid;place-items:center;color:#64748b;font-size:.76rem;font-weight:900}.risk-heat-label.side{justify-content:end;padding-right:.5rem}.risk-heat-cell{min-height:78px;border:0;border-radius:.9rem;display:grid;place-items:center;gap:.2rem;cursor:pointer;color:#0f172a;font-weight:900;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}.risk-heat-cell strong{font-size:1.45rem}.risk-heat-cell span{font-size:.72rem}.risk-heat-cell.baixo{background:#bbf7d0;color:#047857}.risk-heat-cell.medio{background:#fde68a;color:#92400e}.risk-heat-cell.alto{background:#fdba74;color:#9a3412}.risk-heat-cell.critico{background:#fca5a5;color:#991b1b}.risk-heat-cell:hover{transform:translateY(-1px);filter:saturate(1.08)}
.risk-cat-badge,.risk-origin-badge,.risk-level-badge,.risk-status-badge{display:inline-flex;padding:.25rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;white-space:nowrap}.risk-cat-badge{background:#eef2ff;color:#4f46e5}.risk-cat-badge.operacional{background:#ecfdf5;color:#047857}.risk-cat-badge.reputacional{background:#f5f3ff;color:#7c3aed}.risk-cat-badge.financeiro{background:#fff7ed;color:#c2410c}.risk-cat-badge.seguranca_informacao,.risk-cat-badge.incidentes{background:#fef2f2;color:#b91c1c}.risk-cat-badge.compartilhamento{background:#eff6ff;color:#2563eb}.risk-origin-badge{background:#f1f5f9;color:#475569}.risk-level-badge.baixo{background:#ecfdf5;color:#047857}.risk-level-badge.medio{background:#fffbeb;color:#b45309}.risk-level-badge.alto{background:#fff7ed;color:#c2410c}.risk-level-badge.critico{background:#fef2f2;color:#b91c1c}.risk-status-badge.identificado{background:#eff6ff;color:#2563eb}.risk-status-badge.em_analise{background:#f5f3ff;color:#7c3aed}.risk-status-badge.em_tratamento{background:#fff7ed;color:#c2410c}.risk-status-badge.mitigado{background:#ecfdf5;color:#047857}.risk-status-badge.aceito,.risk-status-badge.encerrado{background:#f1f5f9;color:#475569}.risk-status-badge.monitorado{background:#ecfeff;color:#0891b2}.risk-status-badge.vencido{background:#fef2f2;color:#b91c1c}.risk-pending{color:#b91c1c;font-weight:800}.risk-deadline small{display:block;color:#94a3b8}.risk-row-actions{display:flex;gap:.35rem}.risk-row-actions button{width:32px;height:32px;border:1px solid #e2e8f0;border-radius:.65rem;background:#fff;color:#475569;cursor:pointer}.risk-row-actions button:hover{background:#ecfdf5;color:#047857}
.risk-side-card{padding:1rem}.risk-donut-wrap{display:grid;grid-template-columns:116px minmax(0,1fr);gap:.8rem;align-items:center}.risk-donut{width:116px;height:116px;display:grid;place-items:center;border-radius:999px;position:relative;background:conic-gradient(#dc2626 0 25%,#f97316 25% 55%,#f59e0b 55% 85%,#16a34a 85% 100%)}.risk-donut:after{content:"";position:absolute;inset:18px;border-radius:999px;background:#fff}.risk-donut span{position:relative;z-index:1;text-align:center;color:#0f172a;font-weight:900}.risk-legend{display:grid;gap:.45rem}.risk-legend div,.risk-side-row{display:flex;justify-content:space-between;gap:.75rem;color:#475569;font-size:.82rem}.risk-legend span{width:10px;height:10px;display:inline-flex;margin-right:.35rem;border-radius:999px}.risk-side-row{padding:.45rem 0;border-bottom:1px solid #f1f5f9}.risk-bar-row{display:grid;grid-template-columns:88px 1fr 24px;gap:.6rem;align-items:center;margin:.55rem 0;color:#475569;font-size:.78rem}.risk-bar-row b{height:7px;border-radius:999px;background:#e2e8f0;overflow:hidden}.risk-bar-row i{display:block;height:100%;border-radius:inherit;background:#16a34a}.risk-bar-row i.identificado{background:#3b82f6}.risk-bar-row i.em_analise{background:#8b5cf6}.risk-bar-row i.em_tratamento{background:#f97316}.risk-bar-row i.mitigado{background:#16a34a}.risk-bar-row i.aceito{background:#94a3b8}.risk-bar-row i.vencido{background:#dc2626}.risk-empty{margin:0;color:#94a3b8}
.risk-modal{align-items:center;justify-content:center}.risk-modal-content{width:min(1120px,96vw);max-height:92vh;overflow:auto;border-radius:1.15rem}.risk-form-section{padding:1rem;margin-bottom:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#f8fafc}.risk-form-section h4{margin:0 0 .9rem;color:#0f172a}.risk-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.risk-form-grid .span-2{grid-column:span 2}
.risk-detail-overlay{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;padding:2rem;background:rgba(15,23,42,.58)}.risk-detail-modal{width:min(1120px,96vw);max-height:92vh;overflow:auto;padding:1.25rem;border-radius:1.15rem;background:#fff;box-shadow:0 30px 80px rgba(15,23,42,.24)}.risk-detail-header{padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.risk-detail-header h2{margin:.25rem 0;color:#0f172a}.risk-detail-header p{margin:0;color:#64748b}.risk-detail-header button{width:38px;height:38px;border:0;border-radius:999px;background:#f1f5f9;cursor:pointer;font-size:1.4rem}.risk-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:1rem 0}.risk-detail-summary div,.risk-detail-grid div,.risk-text-box{padding:.85rem;border-radius:.9rem;background:#f8fafc}.risk-detail-summary strong{display:block;color:#0f172a;font-size:1.25rem}.risk-detail-summary span,.risk-detail-grid strong{color:#64748b;font-size:.78rem;font-weight:800}.risk-detail-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.risk-detail-tabs button{padding:.55rem .85rem;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#475569;cursor:pointer;font-weight:800}.risk-detail-tabs button.active{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.risk-detail-pane{display:none}.risk-detail-pane.active{display:block}.risk-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}.risk-detail-grid span{display:block;margin-top:.2rem;color:#0f172a;font-weight:800}.risk-text-box{margin-bottom:.8rem}.risk-text-box p{margin:.35rem 0 0;color:#475569}.risk-evidence-upload{display:grid;grid-template-columns:1fr 150px 1fr auto;gap:.7rem;margin-bottom:1rem}.risk-evidence-upload input,.risk-evidence-upload select{padding:.72rem .8rem;border:1px solid #e2e8f0;border-radius:.75rem}.risk-evidence-row,.risk-log-row{padding:.8rem;border:1px solid #e2e8f0;border-radius:.85rem;margin-bottom:.6rem}.risk-evidence-row{display:flex;justify-content:space-between;gap:.7rem;align-items:center}.risk-evidence-row small{display:block;color:#64748b}.risk-evidence-row button{border:1px solid #e2e8f0;border-radius:.65rem;background:#fff;color:#047857;cursor:pointer;padding:.45rem .6rem;font-weight:800}.risk-detail-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
body.dark .risk-hero-actions h1,body.dark .risk-stat-card strong,body.dark .risk-guide-card h2,body.dark .risk-info-card h2,body.dark .risk-card-header h2,body.dark .risk-side-card h3,body.dark .risk-title-cell strong,body.dark .risk-donut span,body.dark .risk-form-section h4,body.dark .risk-detail-header h2,body.dark .risk-detail-summary strong,body.dark .risk-detail-grid span{color:#f8fafc}body.dark .risk-guide-card,body.dark .risk-info-card,body.dark .risk-stat-card,body.dark .risk-filters,body.dark .risk-heat-card,body.dark .risk-table-card,body.dark .risk-side-card,body.dark .risk-form-section,body.dark .risk-detail-modal,body.dark .risk-detail-summary div,body.dark .risk-detail-grid div,body.dark .risk-text-box{background:#111827;border-color:rgba(148,163,184,.22)}body.dark .risk-donut:after{background:#111827}
@media (max-width:1280px){.risk-main-grid{grid-template-columns:1fr}.risk-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:860px){.risk-stats-grid,.risk-info-card,.risk-guide-card,.risk-detail-summary,.risk-detail-grid,.risk-form-grid,.risk-evidence-upload{grid-template-columns:1fr}.risk-form-grid .span-2{grid-column:auto}.risk-heat-layout{grid-template-columns:1fr}.risk-heat-axis.y{display:none}}

/* Cronograma - central premium LGPD */
.cron-page{display:grid;gap:1.25rem}.cron-hero-actions,.cron-card-header,.cron-detail-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap}.cron-hero-actions h1{margin:0;color:#0f172a;font-size:1.8rem}.cron-hero-actions p{margin:.3rem 0 0;color:#64748b}.cron-actions{display:flex;gap:.55rem;flex-wrap:wrap}.cron-actions .btn,.cron-page .btn{min-height:40px;border-radius:.75rem;font-weight:800}.cron-actions .btn-primary,.cron-page .btn-primary{background:linear-gradient(135deg,#16a34a,#059669);border:0}.cron-actions .btn-secondary,.cron-page .btn-secondary{background:#fff;color:#334155;border:1px solid #e2e8f0}
.cron-guide-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;padding:1rem 1.15rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.cron-guide-icon{width:58px;height:58px;display:grid;place-items:center;border-radius:1rem;background:#ecfdf5;color:#059669;font-size:1.4rem}.cron-guide-card h2{margin:0 0 .25rem;color:#0f172a;font-size:1.05rem}.cron-guide-card p{margin:0;color:#64748b;line-height:1.5}.cron-stats-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}.cron-stat-card{display:grid;gap:.35rem;padding:1.1rem;border:1px solid #e2e8f0;border-radius:1.1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.06);overflow:hidden}.cron-stat-card i{width:42px;height:42px;display:grid;place-items:center;border-radius:.9rem;background:#ecfdf5;color:#059669}.cron-stat-card.success i{background:#ecfdf5;color:#047857}.cron-stat-card.warning i{background:#fff7ed;color:#ea580c}.cron-stat-card.danger i{background:#fef2f2;color:#dc2626}.cron-stat-card.info i{background:#eff6ff;color:#2563eb}.cron-stat-card strong{color:#0f172a;font-size:1.8rem;line-height:1}.cron-stat-card span{color:#334155;font-weight:800}.cron-stat-card small{color:#64748b}.cron-stat-card div:last-child{height:5px;margin-top:.4rem;border-radius:999px;background:#e2e8f0;overflow:hidden}.cron-stat-card div:last-child b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#16a34a,#22c55e)}
.cron-filters{display:grid;grid-template-columns:1.5fr 220px auto;gap:.8rem;align-items:end;padding:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff}.cron-filters label,.cron-form-section label{display:block;margin-bottom:.35rem;color:#475569;font-size:.78rem;font-weight:800}.cron-filters input,.cron-filters select,.cron-form-section input,.cron-form-section select,.cron-form-section textarea{width:100%;padding:.72rem .8rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff;color:#0f172a}.cron-filter-buttons{display:flex;gap:.5rem}
.cron-main-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1rem}.cron-content-stack,.cron-side-panel{display:grid;gap:1rem;align-content:start}.cron-table-card,.cron-timeline-card,.cron-side-card{border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.cron-table-card,.cron-timeline-card{overflow:hidden}.cron-card-header{align-items:center;padding:1rem 1.1rem;border-bottom:1px solid #e2e8f0}.cron-card-header h2,.cron-side-card h3{margin:0;color:#0f172a;font-size:1rem}.cron-card-header p{margin:.25rem 0 0;color:#64748b}.cron-table th{white-space:nowrap;color:#64748b;font-size:.72rem;text-transform:uppercase}.cron-table tr.is-selected{background:#f0fdf4}.cron-title-cell strong,.cron-title-cell small{display:block}.cron-title-cell strong{color:#0f172a;font-weight:800}.cron-title-cell small{max-width:300px;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cron-pending{color:#b91c1c;font-weight:800}
.cron-status-badge,.cron-task-status,.cron-priority,.cron-late-badge{display:inline-flex;padding:.25rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;white-space:nowrap}.cron-status-badge.nao_iniciado{background:#f1f5f9;color:#475569}.cron-status-badge.em_andamento{background:#eff6ff;color:#2563eb}.cron-status-badge.pendente{background:#fff7ed;color:#c2410c}.cron-status-badge.atrasado,.cron-late-badge{background:#fef2f2;color:#b91c1c}.cron-status-badge.concluido{background:#ecfdf5;color:#047857}.cron-status-badge.pausado{background:#f5f3ff;color:#7c3aed}.cron-status-badge.arquivado{background:#f1f5f9;color:#475569}.cron-progress-cell{display:grid;gap:.25rem;min-width:90px}.cron-progress-cell.wide{grid-template-columns:45px 1fr;align-items:center}.cron-progress-cell b{height:7px;border-radius:999px;background:#e2e8f0;overflow:hidden}.cron-progress-cell i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#16a34a,#22c55e)}.cron-row-actions{display:flex;gap:.35rem}.cron-row-actions button{width:32px;height:32px;border:1px solid #e2e8f0;border-radius:.65rem;background:#fff;color:#475569;cursor:pointer}.cron-row-actions button:hover{background:#ecfdf5;color:#047857}
.cron-view-tabs{display:flex;gap:.4rem}.cron-view-tabs button{padding:.45rem .75rem;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#475569;cursor:pointer;font-weight:800}.cron-view-tabs button.active{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.cron-timeline{display:grid;gap:.85rem;padding:1rem}.cron-step-card{display:grid;grid-template-columns:44px 1fr;gap:.85rem;padding:.9rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff}.cron-step-number{width:38px;height:38px;display:grid;place-items:center;border-radius:999px;background:linear-gradient(135deg,#16a34a,#059669);color:#fff;font-weight:900}.cron-step-head{display:flex;justify-content:space-between;gap:.8rem;align-items:flex-start}.cron-step-head h3{margin:0;color:#0f172a;font-size:1rem}.cron-step-head p{margin:.25rem 0 0;color:#64748b}.cron-step-meta{display:flex;gap:1rem;flex-wrap:wrap;margin:.75rem 0;color:#64748b;font-size:.82rem}.cron-step-meta strong{color:#0f172a}.cron-step-actions{display:flex;gap:.55rem;margin-top:.75rem}.cron-list-view{padding:1rem;gap:.55rem}.cron-task-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto auto;gap:.8rem;align-items:center;padding:.75rem;border:1px solid #e2e8f0;border-radius:.9rem;background:#fff}.cron-task-row strong,.cron-task-row span{display:block}.cron-task-row span{color:#64748b;font-size:.8rem}.cron-task-row button{border:1px solid #bbf7d0;border-radius:.65rem;background:#ecfdf5;color:#047857;padding:.45rem .6rem;font-weight:800;cursor:pointer}.cron-task-status.concluida{background:#ecfdf5;color:#047857}.cron-task-status.atrasada{background:#fef2f2;color:#b91c1c}.cron-task-status.em_andamento{background:#eff6ff;color:#2563eb}.cron-priority.alta,.cron-priority.critica{background:#fff7ed;color:#c2410c}.cron-priority.media{background:#fffbeb;color:#b45309}.cron-priority.baixa{background:#ecfdf5;color:#047857}.cron-kanban{grid-template-columns:repeat(5,minmax(160px,1fr));gap:.8rem;padding:1rem}.cron-kanban section{padding:.75rem;border:1px solid #e2e8f0;border-radius:1rem;background:#f8fafc}.cron-kanban h4{margin:0 0 .75rem;color:#0f172a}.cron-kanban-card{padding:.7rem;border-radius:.8rem;background:#fff;border:1px solid #e2e8f0;margin-bottom:.55rem}.cron-kanban-card strong,.cron-kanban-card span{display:block}.cron-kanban-card span{color:#64748b;font-size:.78rem}
.cron-side-card{padding:1rem}.cron-module-row{display:grid;grid-template-columns:85px 1fr 42px;gap:.55rem;align-items:center;margin:.55rem 0;color:#475569;font-size:.82rem}.cron-module-row b{height:7px;border-radius:999px;background:#e2e8f0;overflow:hidden}.cron-module-row i{display:block;height:100%;background:#16a34a;border-radius:inherit}.cron-side-row{display:flex;justify-content:space-between;gap:.75rem;padding:.5rem 0;border-bottom:1px solid #f1f5f9;color:#475569;font-size:.82rem}.cron-side-row small{display:block;color:#94a3b8}.cron-side-row.danger strong{color:#b91c1c}.cron-empty{margin:0;color:#94a3b8}
.cron-modal{align-items:center;justify-content:center}.cron-modal-content{width:min(980px,96vw);max-height:92vh;overflow:auto;border-radius:1.15rem}.cron-form-section{padding:1rem;margin-bottom:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#f8fafc}.cron-form-section h4{margin:0 0 .9rem;color:#0f172a}.cron-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.9rem}.cron-form-grid .span-2{grid-column:span 2}
.cron-detail-overlay{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;padding:2rem;background:rgba(15,23,42,.58)}.cron-detail-modal{width:min(980px,96vw);max-height:92vh;overflow:auto;padding:1.25rem;border-radius:1.15rem;background:#fff;box-shadow:0 30px 80px rgba(15,23,42,.24)}.cron-detail-header{padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.cron-detail-header h2{margin:.25rem 0;color:#0f172a}.cron-detail-header p{margin:0;color:#64748b}.cron-detail-header button{width:38px;height:38px;border:0;border-radius:999px;background:#f1f5f9;cursor:pointer;font-size:1.4rem}.cron-detail-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin:1rem 0}.cron-detail-summary div{padding:.85rem;border-radius:.9rem;background:#f8fafc}.cron-detail-summary strong{display:block;color:#0f172a;font-size:1.1rem}.cron-detail-summary span{color:#64748b;font-size:.78rem;font-weight:800}.cron-detail-actions{display:flex;gap:.6rem;margin-top:1rem}
body.dark .cron-hero-actions h1,body.dark .cron-stat-card strong,body.dark .cron-guide-card h2,body.dark .cron-card-header h2,body.dark .cron-side-card h3,body.dark .cron-title-cell strong,body.dark .cron-step-head h3,body.dark .cron-step-meta strong,body.dark .cron-kanban h4,body.dark .cron-form-section h4,body.dark .cron-detail-header h2,body.dark .cron-detail-summary strong{color:#f8fafc}body.dark .cron-guide-card,body.dark .cron-stat-card,body.dark .cron-filters,body.dark .cron-table-card,body.dark .cron-timeline-card,body.dark .cron-side-card,body.dark .cron-step-card,body.dark .cron-task-row,body.dark .cron-kanban-card,body.dark .cron-form-section,body.dark .cron-detail-modal,body.dark .cron-detail-summary div{background:#111827;border-color:rgba(148,163,184,.22)}
@media (max-width:1280px){.cron-main-grid{grid-template-columns:1fr}.cron-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:860px){.cron-stats-grid,.cron-guide-card,.cron-form-grid,.cron-detail-summary,.cron-kanban,.cron-task-row{grid-template-columns:1fr}.cron-form-grid .span-2{grid-column:auto}.cron-filters{grid-template-columns:1fr}.cron-step-card{grid-template-columns:1fr}}

/* Relatórios - central premium LGPD */
.reports-page{display:grid;gap:1.25rem}.reports-hero{padding:1.5rem 1.25rem;border:1px solid #e2e8f0;border-radius:1rem;background:linear-gradient(135deg,#fff,#f0fdf4);box-shadow:0 14px 34px rgba(15,23,42,.05)}.reports-hero h1{margin:.3rem 0;color:#0f172a;font-size:1.75rem}.reports-hero p{margin:.5rem 0 0;color:#64748b;max-width:700px}.reports-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:1rem}.reports-menu-card{padding:1.25rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05);height:max-content}.reports-menu-card h3{margin:0 0 .4rem;color:#0f172a;font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em}.reports-menu-subtitle{margin:0 0 1rem;color:#64748b;font-size:.82rem}.reports-tab{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;padding:.85rem .9rem;border:0;border-radius:.85rem;background:transparent;color:#475569;text-align:left;font-weight:800;cursor:pointer}.reports-tab:hover{background:#f8fafc}.reports-tab.active{background:#ecfdf5;color:#047857}.reports-tab i{width:22px;font-size:1.1rem;text-align:center}.reports-tab strong{display:block;color:#0f172a;font-size:.88rem;line-height:1.3}.reports-tab.active strong{color:#047857}.reports-tab small{display:block;color:#64748b;font-size:.72rem;font-weight:600;margin-top:.15rem}.reports-tab.active small{color:#059669}.reports-main{display:grid;gap:1rem}.reports-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap;padding:1rem 1.15rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.reports-header h1{margin:0;color:#0f172a;font-size:1.4rem}.reports-header p{margin:.3rem 0 0;color:#64748b}.reports-actions{display:flex;gap:.55rem;flex-wrap:wrap}.reports-actions .btn,.reports-page .btn{min-height:40px;border-radius:.75rem;font-weight:800}.reports-page .btn-primary{background:linear-gradient(135deg,#16a34a,#059669);border:0}.reports-page .btn-secondary{background:#fff;color:#334155;border:1px solid #e2e8f0}
.reports-filters{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr)) minmax(180px,1fr);gap:.8rem;align-items:end;padding:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff}.reports-filters label{display:block;margin-bottom:.35rem;color:#475569;font-size:.78rem;font-weight:800}.reports-filters input,.reports-filters select{width:100%;padding:.72rem .8rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff;color:#0f172a}.reports-filter-checks{display:grid;gap:.25rem}.reports-content-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1rem}.reports-content-stack,.reports-side-panel{display:grid;gap:1rem;align-content:start}.reports-cards-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}.reports-stat-card{display:grid;gap:.35rem;padding:1.05rem;border:1px solid #e2e8f0;border-radius:1.1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.06)}.reports-stat-card i{width:42px;height:42px;display:grid;place-items:center;border-radius:.9rem;background:#ecfdf5;color:#059669}.reports-stat-card.success i{background:#ecfdf5;color:#047857}.reports-stat-card.warning i{background:#fff7ed;color:#ea580c}.reports-stat-card.danger i{background:#fef2f2;color:#dc2626}.reports-stat-card strong{color:#0f172a;font-size:1.8rem;line-height:1}.reports-stat-card span{color:#334155;font-weight:800}.reports-stat-card small{color:#64748b}.reports-charts-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.reports-chart-card,.reports-table-card,.reports-side-card{border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05);padding:1rem}.reports-chart-card h3,.reports-side-card h3,.reports-card-header h3{margin:0 0 .8rem;color:#0f172a;font-size:1rem}.reports-line-chart{height:220px;display:flex;align-items:end}.reports-bars{height:100%;width:100%;display:flex;align-items:end;gap:.7rem;padding-top:1rem}.reports-bars span{flex:1;min-height:8px;border-radius:.7rem .7rem 0 0;background:linear-gradient(180deg,#22c55e,#16a34a);position:relative}.reports-bars b{position:absolute;top:-22px;left:50%;transform:translateX(-50%);font-size:.72rem;color:#047857}.reports-donut-wrap{display:grid;grid-template-columns:140px 1fr;gap:1rem;align-items:center}.reports-donut{width:140px;height:140px;border-radius:999px;display:grid;place-items:center;position:relative}.reports-donut:after{content:"";position:absolute;inset:24px;border-radius:999px;background:#fff}.reports-donut span{position:relative;z-index:1;text-align:center;font-weight:900;color:#0f172a}.reports-donut small{display:block;color:#64748b;font-size:.7rem}.reports-legend{display:grid;gap:.5rem}.reports-legend div,.reports-side-row{display:flex;justify-content:space-between;gap:.75rem;color:#475569;font-size:.82rem}.reports-legend span{width:10px;height:10px;border-radius:999px;display:inline-flex;margin-right:.35rem}.reports-table th{white-space:nowrap;color:#64748b;font-size:.72rem;text-transform:uppercase}.reports-badge{display:inline-flex;padding:.25rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;background:#fff7ed;color:#c2410c}.reports-badge.critica{background:#fef2f2;color:#b91c1c}.reports-side-card{padding:1rem}.reports-side-row{padding:.5rem 0;border-bottom:1px solid #f1f5f9}.reports-side-row.danger strong{color:#b91c1c}.reports-history-row{display:flex;justify-content:space-between;gap:.7rem;align-items:center;padding:.6rem 0;border-bottom:1px solid #f1f5f9}.reports-history-row strong,.reports-history-row small{display:block}.reports-history-row strong{color:#0f172a}.reports-history-row small{color:#64748b}.reports-history-row button{border:1px solid #e2e8f0;border-radius:.65rem;background:#fff;color:#047857;cursor:pointer;width:32px;height:32px}.reports-empty{padding:1rem;color:#94a3b8;text-align:center}
body.dark .reports-menu-card,body.dark .reports-header,body.dark .reports-filters,body.dark .reports-stat-card,body.dark .reports-chart-card,body.dark .reports-table-card,body.dark .reports-side-card{background:#111827;border-color:rgba(148,163,184,.22)}body.dark .reports-header h1,body.dark .reports-menu-card h3,body.dark .reports-stat-card strong,body.dark .reports-chart-card h3,body.dark .reports-side-card h3,body.dark .reports-card-header h3,body.dark .reports-history-row strong,body.dark .reports-donut span{color:#f8fafc}body.dark .reports-donut:after{background:#111827}
@media (max-width:1280px){.reports-layout{grid-template-columns:1fr}.reports-menu-card{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.reports-menu-card h3{grid-column:1/-1}.reports-content-grid{grid-template-columns:1fr}.reports-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:860px){.reports-menu-card,.reports-cards-grid,.reports-charts-grid,.reports-filters,.reports-donut-wrap{grid-template-columns:1fr}}

/* Privacidade & Você */
.priv-voce-page .reports-cards-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.pv-internal-tabs{display:flex;gap:.45rem;flex-wrap:wrap;padding:0 .2rem}.pv-tab{padding:.55rem .85rem;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#475569;font-weight:800;cursor:pointer}.pv-tab.active,.pv-detail-tabs .pv-tab.active{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.pv-protocol{color:#047857;font-weight:900}.pv-prazo.ok{color:#047857}.pv-prazo.warning{color:#c2410c;font-weight:800}.pv-prazo.danger{color:#b91c1c;font-weight:900}.pv-actions{display:flex;gap:.35rem}.pv-actions button,.pv-actions a{width:32px;height:32px;border:1px solid #e2e8f0;border-radius:.65rem;background:#fff;color:#475569;cursor:pointer;display:grid;place-items:center;text-decoration:none}.pv-actions button:hover{background:#ecfdf5;color:#047857}.pv-pagination{display:flex;justify-content:space-between;align-items:center;padding:1rem;color:#64748b;font-size:.85rem}.pv-modal{z-index:10050}.pv-modal.show{opacity:1;visibility:visible;display:flex!important}.pv-modal .modal-content,.pv-modal-content{max-width:920px;width:min(920px,96vw);max-height:92vh;overflow:auto;border-radius:1.15rem}.pv-modal-lg .modal-content{max-width:980px;width:min(980px,96vw)}.pv-form-grid{display:grid;gap:1rem}.pv-form-grid fieldset{border:1px solid #e2e8f0;border-radius:1rem;padding:1rem;background:#f8fafc}.pv-form-grid legend{font-weight:900;color:#0f172a;padding:0 .35rem}.pv-form-grid label{display:block;margin:.65rem 0 .35rem;color:#475569;font-size:.78rem;font-weight:800}.pv-form-grid input,.pv-form-grid select,.pv-form-grid textarea{width:100%;padding:.72rem .8rem;border:1px solid #e2e8f0;border-radius:.75rem}.pv-form-actions{display:flex;justify-content:flex-end;gap:.55rem;margin-top:1rem}.pv-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.pv-detail-grid label{display:block;color:#64748b;font-size:.75rem;font-weight:800;margin-bottom:.2rem}.pv-detail-tabs{display:flex;gap:.45rem;flex-wrap:wrap;margin-bottom:1rem}.pv-timeline-item{padding:.75rem;border-left:3px solid #16a34a;margin-bottom:.55rem;background:#f8fafc;border-radius:0 .75rem .75rem 0}.pv-timeline-item span{display:block;color:#64748b;font-size:.78rem}.pv-code{display:block;padding:.75rem;border-radius:.75rem;background:#f1f5f9;font-size:.75rem;white-space:pre-wrap}.pv-acoes-rapidas{display:grid;gap:.55rem}.pv-acoes-rapidas a{color:#047857;font-weight:800;text-decoration:none}.pv-ia-aviso{padding:.65rem;border-radius:.75rem;background:#fff7ed;color:#9a3412;font-size:.82rem}.reports-badge.info{background:#eff6ff;color:#2563eb}.reports-badge.purple{background:#f5f3ff;color:#7c3aed}.reports-badge.success{background:#ecfdf5;color:#047857}.reports-badge.muted{background:#f1f5f9;color:#475569}.reports-badge.warning{background:#fff7ed;color:#c2410c}.reports-badge.danger{background:#fef2f2;color:#b91c1c}@media (max-width:1280px){.priv-voce-page .reports-cards-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:860px){.priv-voce-page .reports-cards-grid,.pv-detail-grid{grid-template-columns:1fr}}
.priv-voce-page .reports-table-card{padding:0;overflow:hidden}.priv-voce-page .reports-card-header{padding:1rem 1.1rem;border-bottom:1px solid #e2e8f0}.priv-voce-page .table-container{overflow:auto}.priv-voce-page .reports-table td{vertical-align:middle}.priv-voce-page .reports-stat-card{position:relative;overflow:hidden}.priv-voce-page .reports-stat-card:after{content:"";position:absolute;left:1rem;right:1rem;bottom:0;height:3px;border-radius:999px;background:#16a34a}.priv-voce-page .reports-stat-card.warning:after{background:#f59e0b}.priv-voce-page .reports-stat-card.danger:after{background:#ef4444}.priv-voce-page .reports-stat-card.success:after{background:#10b981}.priv-voce-page .reports-empty{display:grid;place-items:center;gap:.45rem;min-height:150px;padding:1.35rem;border:1px dashed #cbd5e1;border-radius:1rem;background:#f8fafc;color:#64748b}.priv-voce-page .reports-empty i{font-size:1.65rem;color:#16a34a}.priv-voce-page .reports-empty h4{margin:0;color:#0f172a;font-size:1rem}.pv-actions a:hover{background:#ecfdf5;color:#047857}.pv-modal-content.pv-modal-lg{max-width:980px;width:min(980px,96vw)}.pv-convert-box{display:grid;gap:.4rem;margin-top:1rem;padding:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#f8fafc}.pv-convert-box label{font-weight:900;color:#0f172a}.pv-convert-box select{width:100%;padding:.72rem .8rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff}.pv-canal-extra .reports-charts-grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media (max-width:1180px){.pv-canal-extra .reports-charts-grid{grid-template-columns:1fr}}@media (max-width:760px){.pv-pagination{align-items:flex-start;flex-direction:column;gap:.75rem}.pv-form-actions{justify-content:stretch;flex-direction:column}.pv-form-actions .btn{width:100%;justify-content:center}}

/* Fornecedores - central premium */
.fornecedores-page{display:grid;gap:1rem}.fornecedores-hero-actions{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap;padding:1rem 1.15rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.fornecedores-hero-actions h2{margin:0;color:#0f172a;font-size:1.4rem}.fornecedores-hero-actions p{margin:.3rem 0 0;color:#64748b}.fornecedores-actions{display:flex;gap:.55rem;flex-wrap:wrap}.fornecedores-actions .btn,.fornecedores-page .btn{min-height:40px;border-radius:.75rem;font-weight:800}.fornecedores-page .btn-primary{background:linear-gradient(135deg,#16a34a,#059669);border:0}.fornecedores-page .btn-secondary{background:#fff;color:#334155;border:1px solid #e2e8f0}.fornecedores-guide-card{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(260px,.8fr);gap:1rem;align-items:center;padding:1rem;border:1px solid #dcfce7;border-radius:1rem;background:linear-gradient(135deg,#fff,#f0fdf4);box-shadow:0 14px 34px rgba(15,23,42,.05)}.fornecedores-guide-icon{width:54px;height:54px;display:grid;place-items:center;border-radius:1rem;background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff;font-size:1.35rem}.fornecedores-guide-card h3{margin:0 0 .3rem;color:#0f172a}.fornecedores-guide-card p{margin:0;color:#475569}.fornecedores-guide-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.fornecedores-guide-metrics span{padding:.65rem;border:1px solid #bbf7d0;border-radius:.85rem;background:#fff;color:#475569;font-size:.78rem}.fornecedores-guide-metrics strong{display:block;color:#047857;font-size:1.1rem}.fornecedores-stats-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem}.fornecedor-stat-card{position:relative;overflow:hidden;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.8rem;align-items:center;padding:1rem;border:1px solid #e2e8f0;border-radius:1.1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.06)}.fornecedor-stat-card:after{content:"";position:absolute;left:1rem;right:1rem;bottom:0;height:3px;border-radius:999px;background:#16a34a}.fornecedor-stat-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:.9rem;background:#ecfdf5;color:#059669}.fornecedor-stat-card strong{display:block;color:#0f172a;font-size:1.65rem;line-height:1}.fornecedor-stat-card span{color:#334155;font-weight:900}.fornecedor-stat-card small{color:#64748b}.fornecedor-stat-blue .fornecedor-stat-icon{background:#eff6ff;color:#2563eb}.fornecedor-stat-blue:after{background:#3b82f6}.fornecedor-stat-purple .fornecedor-stat-icon{background:#f5f3ff;color:#7c3aed}.fornecedor-stat-purple:after{background:#8b5cf6}.fornecedor-stat-yellow .fornecedor-stat-icon{background:#fff7ed;color:#ea580c}.fornecedor-stat-yellow:after{background:#f59e0b}.fornecedor-stat-red .fornecedor-stat-icon{background:#fef2f2;color:#dc2626}.fornecedor-stat-red:after{background:#ef4444}.fornecedores-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:1rem}.fornecedores-main-card,.fornecedor-insight-card{border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.fornecedores-main-card{overflow:hidden}.fornecedores-card-header{padding:1rem 1.1rem;border-bottom:1px solid #e2e8f0}.fornecedores-card-header h3{margin:0;color:#0f172a}.fornecedores-card-header p{margin:.25rem 0 0;color:#64748b}.fornecedores-filters{display:grid;grid-template-columns:1.5fr repeat(4,minmax(130px,1fr));gap:.8rem;align-items:end;padding:1rem;border-bottom:1px solid #e2e8f0;background:#f8fafc}.fornecedores-filters.is-collapsed{display:none}.fornecedores-filters label{display:block;margin-bottom:.35rem;color:#475569;font-size:.78rem;font-weight:800}.fornecedores-filters input,.fornecedores-filters select{width:100%;padding:.72rem .8rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff;color:#0f172a}.fornecedores-filters .filter-actions{display:flex;gap:.45rem;flex-wrap:wrap}.fornecedores-table-wrap{overflow:auto}.fornecedores-table{width:100%;border-collapse:collapse}.fornecedores-table th{padding:.85rem .9rem;text-align:left;white-space:nowrap;color:#64748b;font-size:.72rem;text-transform:uppercase;background:#fff}.fornecedores-table td{padding:.85rem .9rem;border-top:1px solid #f1f5f9;color:#334155;font-size:.84rem;vertical-align:middle}.fornecedor-name-cell{display:flex;align-items:center;gap:.7rem;min-width:240px}.fornecedor-name-cell>span{width:34px;height:34px;display:grid;place-items:center;border-radius:.75rem;background:#dcfce7;color:#047857;font-size:.72rem;font-weight:900}.fornecedor-name-cell strong,.fornecedor-name-cell small{display:block}.fornecedor-name-cell strong{color:#0f172a}.fornecedor-name-cell small{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b}.fornecedor-badge{display:inline-flex;padding:.25rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;white-space:nowrap;background:#f1f5f9;color:#475569}.fornecedor-badge.type{background:#eef2ff;color:#4f46e5}.fornecedor-badge.yes,.fornecedor-badge.status.ativo,.fornecedor-badge.status.aprovado,.fornecedor-badge.risk.baixo{background:#ecfdf5;color:#047857}.fornecedor-badge.no,.fornecedor-badge.status.pendente,.fornecedor-badge.risk.medio{background:#fff7ed;color:#c2410c}.fornecedor-badge.status.em_revisao{background:#eff6ff;color:#2563eb}.fornecedor-badge.status.suspenso,.fornecedor-badge.status.encerrado,.fornecedor-badge.status.reprovado,.fornecedor-badge.risk.alto,.fornecedor-badge.risk.critico{background:#fef2f2;color:#b91c1c}.fornecedor-row-actions{display:flex;gap:.35rem;white-space:nowrap}.fornecedor-row-actions button{width:31px;height:31px;border:1px solid #e2e8f0;border-radius:.65rem;background:#fff;color:#475569;cursor:pointer}.fornecedor-row-actions button:hover{background:#ecfdf5;color:#047857}.fornecedores-pagination{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem;border-top:1px solid #f1f5f9;color:#64748b;font-size:.85rem}.fornecedores-pagination div{display:flex;gap:.5rem;align-items:center}.fornecedores-side-panel{display:grid;gap:1rem;align-content:start}.fornecedor-insight-card{padding:1rem}.fornecedor-insight-card h4{margin:0 0 .8rem;color:#0f172a}.fornecedor-donut{width:132px;height:132px;margin:auto;border-radius:999px;display:grid;place-items:center;position:relative}.fornecedor-donut:after{content:"";position:absolute;inset:23px;border-radius:999px;background:#fff}.fornecedor-donut span{position:relative;z-index:1;text-align:center;color:#0f172a;font-weight:900}.fornecedor-donut small{display:block;color:#64748b;font-size:.68rem}.fornecedor-legend{display:grid;gap:.45rem;margin-top:.8rem}.fornecedor-legend div,.fornecedor-side-row{display:flex;justify-content:space-between;gap:.7rem;color:#475569;font-size:.82rem;padding:.45rem 0;border-bottom:1px solid #f1f5f9}.fornecedor-legend span{width:10px;height:10px;border-radius:999px;display:inline-flex;margin-right:.35rem}.fornecedor-risk-bar{display:grid;grid-template-columns:56px minmax(0,1fr) 28px;gap:.55rem;align-items:center;margin:.55rem 0;color:#475569;font-size:.82rem}.fornecedor-risk-bar div{height:8px;border-radius:999px;background:#f1f5f9;overflow:hidden}.fornecedor-risk-bar i{display:block;height:100%;border-radius:999px;background:#16a34a}.fornecedor-risk-bar.medio i{background:#f59e0b}.fornecedor-risk-bar.alto i{background:#f97316}.fornecedor-risk-bar.critico i{background:#ef4444}.fornecedor-rec{display:flex;gap:.55rem;padding:.65rem;border-radius:.85rem;background:#f0fdf4;color:#166534;font-size:.82rem}.fornecedor-rec+.fornecedor-rec{margin-top:.5rem}.fornecedor-empty{display:grid;place-items:center;gap:.55rem;min-height:170px;padding:1.35rem;border:1px dashed #cbd5e1;border-radius:1rem;background:#f8fafc;color:#64748b;text-align:center}.fornecedor-empty.compact{min-height:90px}.fornecedor-empty i{font-size:1.7rem;color:#16a34a}.fornecedor-empty h4{margin:0;color:#0f172a}.fornecedor-empty-actions{display:flex;gap:.55rem;flex-wrap:wrap;justify-content:center}.fornecedor-loading{text-align:center;padding:2rem;color:#64748b}.fornecedor-modal{z-index:10050}.fornecedor-modal.show{opacity:1;visibility:visible;display:flex!important}.fornecedor-modal-content{width:min(1080px,96vw);max-height:92vh;overflow:auto;border-radius:1.15rem}.fornecedor-detail-modal{width:min(980px,96vw)}.fornecedor-modal-body{display:grid;gap:1rem}.fornecedor-form-section{padding:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#f8fafc}.fornecedor-form-section h4{margin:0 0 .8rem;color:#0f172a}.fornecedor-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.fornecedor-span-2{grid-column:span 2}.fornecedor-modal-footer{display:flex;justify-content:flex-end;gap:.55rem;padding:1rem 1.25rem;border-top:1px solid #e2e8f0}.fornecedor-detail-tabs{display:flex;gap:.45rem;flex-wrap:wrap;margin-bottom:1rem}.fornecedor-detail-tab{padding:.55rem .85rem;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#475569;font-weight:800;cursor:pointer}.fornecedor-detail-tab.active{background:#ecfdf5;color:#047857;border-color:#bbf7d0}.fornecedor-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.fornecedor-detail-item{padding:.85rem;border:1px solid #e2e8f0;border-radius:.85rem;background:#f8fafc}.fornecedor-detail-item label{display:block;color:#64748b;font-size:.75rem;font-weight:800}.fornecedor-detail-item strong{display:block;margin-top:.2rem;color:#0f172a}.fornecedor-detail-actions{margin-top:1rem}.fornecedor-history-item{padding:.75rem;border-left:3px solid #16a34a;margin-bottom:.55rem;background:#f8fafc;border-radius:0 .75rem .75rem 0}.fornecedor-history-item strong,.fornecedor-history-item span{display:block}.fornecedor-history-item span{color:#64748b;font-size:.78rem}.fornecedor-import-preview table{width:100%;border-collapse:collapse}.fornecedor-import-preview th,.fornecedor-import-preview td{padding:.65rem;border-bottom:1px solid #e2e8f0;text-align:left;font-size:.82rem}@media (max-width:1380px){.fornecedores-stats-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.fornecedores-layout{grid-template-columns:1fr}.fornecedores-side-panel{grid-template-columns:repeat(2,minmax(0,1fr))}.fornecedores-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:860px){.fornecedores-guide-card,.fornecedores-stats-grid,.fornecedores-side-panel,.fornecedores-filters,.fornecedor-form-grid,.fornecedor-detail-grid{grid-template-columns:1fr}.fornecedor-span-2{grid-column:auto}.fornecedor-modal-footer,.fornecedores-pagination{align-items:stretch;flex-direction:column}.fornecedor-modal-footer .btn{justify-content:center}}

/* Central de Privacidade - base premium */
.central-page{display:grid;gap:1rem}.central-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:1rem}.central-menu-card{height:max-content;padding:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.central-menu-header{display:flex;align-items:center;gap:.55rem;padding:.65rem .75rem .9rem;border-bottom:1px solid #f1f5f9;color:#0f172a;font-weight:900}.central-menu-header .fa-chevron-up{margin-left:auto;color:#64748b}.central-menu-item{width:100%;display:flex;align-items:center;gap:.65rem;margin-top:.35rem;padding:.75rem .85rem;border:0;border-left:3px solid transparent;border-radius:.8rem;background:transparent;color:#475569;text-align:left;font-weight:800;cursor:pointer}.central-menu-item:hover{background:#f8fafc}.central-menu-item.active{border-left-color:#16a34a;background:#ecfdf5;color:#047857}.central-main{display:grid;gap:1rem}.central-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;flex-wrap:wrap;padding:1rem 1.15rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.central-header h1{margin:0;color:#0f172a;font-size:1.65rem}.central-header p{margin:.3rem 0 0;color:#64748b}.central-header-actions{display:flex;gap:.55rem;align-items:center}.central-search{position:relative;min-width:290px}.central-search.compact{min-width:250px}.central-search i{position:absolute;left:.8rem;top:50%;transform:translateY(-50%);color:#94a3b8}.central-search input{width:100%;padding:.72rem 2.5rem .72rem 2.25rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff;color:#0f172a}.central-search kbd{position:absolute;right:.65rem;top:50%;transform:translateY(-50%);padding:.1rem .35rem;border:1px solid #e2e8f0;border-radius:.35rem;background:#f8fafc;color:#94a3b8;font-size:.7rem}.central-info-card,.central-warning-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1rem;align-items:center;margin-bottom:1rem;padding:1.2rem;border:1px solid #bbf7d0;border-radius:1rem;background:linear-gradient(135deg,#f0fdf4,#fff);box-shadow:0 14px 34px rgba(15,23,42,.04)}.central-warning-card{grid-template-columns:auto minmax(0,1fr);border-color:#fde68a;background:#fffbeb}.central-info-icon,.central-warning-card>i{width:54px;height:54px;display:grid;place-items:center;border-radius:999px;background:#dcfce7;color:#047857;font-size:1.35rem}.central-warning-card>i{background:#fef3c7;color:#b45309}.central-info-card h2,.central-warning-card h2{margin:0 0 .3rem;color:#0f172a;font-size:1rem}.central-info-card p,.central-warning-card p{margin:0;color:#475569}.central-info-illustration{width:86px;height:64px;display:grid;place-items:center;border-radius:1rem;background:#dcfce7;color:#16a34a;font-size:2rem}.central-section-title{margin:1rem 0;color:#0f172a;font-size:1rem}.central-cards-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem}.central-topic-card{display:flex;flex-direction:column;min-height:220px;padding:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05);transition:.2s}.central-topic-card:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(15,23,42,.08)}.central-topic-icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:.8rem;border-radius:999px;background:#dcfce7;color:#047857;font-size:1.25rem}.central-topic-card h3{margin:0 0 .45rem;color:#0f172a;font-size:.98rem}.central-topic-card p{flex:1;margin:0 0 1rem;color:#475569;font-size:.82rem;line-height:1.5}.central-page .btn-primary{background:linear-gradient(135deg,#16a34a,#059669);border:0}.central-page .btn-secondary{background:#fff;color:#334155;border:1px solid #e2e8f0}.central-page .btn{border-radius:.75rem;font-weight:800}.central-loading{grid-column:1/-1;text-align:center;padding:2rem;color:#64748b}.central-empty{display:grid;place-items:center;gap:.55rem;grid-column:1/-1;min-height:210px;padding:1.5rem;border:1px dashed #cbd5e1;border-radius:1rem;background:#f8fafc;color:#64748b;text-align:center}.central-empty i{font-size:1.8rem;color:#16a34a}.central-empty h4{margin:0;color:#0f172a}.central-request-toolbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem;padding:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.04)}.central-request-chips{display:flex;gap:.45rem;flex-wrap:wrap}.central-request-chips button{display:inline-flex;gap:.45rem;align-items:center;padding:.58rem .8rem;border:1px solid #e2e8f0;border-radius:.85rem;background:#fff;color:#475569;font-weight:800;cursor:pointer}.central-request-chips button.active{background:#ecfdf5;border-color:#bbf7d0;color:#047857}.central-request-chips span{display:inline-grid;place-items:center;min-width:22px;height:22px;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:.72rem}.central-table-card{overflow:hidden;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.central-table-wrap{overflow:auto}.central-table{width:100%;border-collapse:collapse}.central-table th{padding:.85rem .9rem;text-align:left;white-space:nowrap;color:#64748b;font-size:.72rem;text-transform:uppercase}.central-table td{padding:.85rem .9rem;border-top:1px solid #f1f5f9;color:#334155;font-size:.84rem}.central-badge{display:inline-flex;padding:.25rem .55rem;border-radius:999px;font-size:.72rem;font-weight:800;background:#fff7ed;color:#c2410c}.central-badge.em_analise{background:#eff6ff;color:#2563eb}.central-badge.respondida,.central-badge.finalizada{background:#ecfdf5;color:#047857}.central-action-btn{width:32px;height:32px;border:1px solid #e2e8f0;border-radius:.65rem;background:#fff;color:#475569;cursor:pointer}.central-action-btn:hover{background:#ecfdf5;color:#047857}.central-modal{z-index:10050}.central-modal.show{opacity:1;visibility:visible;display:flex!important}.central-modal-content{width:min(900px,96vw);max-height:92vh;overflow:auto;border-radius:1.15rem}.central-content-description{padding:1rem;border:1px solid #dcfce7;border-radius:1rem;background:#f0fdf4;color:#166534}.central-content-block{margin-top:1rem;padding:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff}.central-content-block.muted{background:#f8fafc}.central-content-block h4{margin:0 0 .6rem;color:#0f172a}.central-content-block p{margin:.3rem 0;color:#475569;line-height:1.7}.central-content-block li{margin:.45rem 0;color:#475569}.central-modal-footer{display:flex;justify-content:flex-end;gap:.55rem;padding:1rem 1.25rem;border-top:1px solid #e2e8f0}.central-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.central-span-2{grid-column:span 2}.central-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.central-detail-item{padding:.85rem;border:1px solid #e2e8f0;border-radius:.85rem;background:#f8fafc}.central-detail-item label{display:block;color:#64748b;font-size:.75rem;font-weight:800}.central-detail-item strong{display:block;margin-top:.2rem;color:#0f172a}@media (max-width:1320px){.central-cards-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.central-layout{grid-template-columns:1fr}.central-menu-card{display:grid;grid-template-columns:1fr repeat(3,minmax(0,1fr));gap:.4rem}.central-menu-header{grid-column:1/-1}}@media (max-width:860px){.central-cards-grid,.central-form-grid,.central-detail-grid{grid-template-columns:1fr}.central-header-actions,.central-request-toolbar,.central-modal-footer{align-items:stretch;flex-direction:column}.central-search{min-width:0;width:100%}.central-info-card{grid-template-columns:1fr}.central-info-illustration{display:none}.central-span-2{grid-column:auto}.central-menu-card{grid-template-columns:1fr}}

/* Integrações */
.integracoes-page .integracoes-list{display:grid;gap:.65rem}.integracoes-item{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:.85rem;border:1px solid #e2e8f0;border-radius:.85rem;background:#f8fafc}.integracoes-item-actions{display:flex;gap:.4rem;flex-shrink:0}.integracoes-checks{max-height:160px;overflow:auto;padding:.5rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff}

/* ── Componente CNPJ Lookup ───────────────────────────────────────────── */
.cnpj-lookup-row{display:flex;gap:.5rem;align-items:flex-end;flex-wrap:wrap}.cnpj-lookup-row .form-control{flex:1;min-width:0}.btn-cnpj{display:inline-flex;align-items:center;gap:.4rem;padding:.68rem .95rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff;color:#334155;font-size:.82rem;font-weight:800;white-space:nowrap;cursor:pointer;transition:.15s}.btn-cnpj:hover{background:#f0fdf4;border-color:#bbf7d0;color:#047857}.btn-cnpj:disabled{opacity:.6;cursor:not-allowed}.cnpj-status{display:flex;align-items:center;gap:.4rem;margin-top:.35rem;font-size:.78rem;font-weight:700;min-height:1.1rem}.cnpj-status--loading{color:#64748b}.cnpj-status--success{color:#047857}.cnpj-status--error{color:#dc2626}.cnpj-status i{flex-shrink:0}
/* Portal Público - privacidade institucional */
.publico-page{display:grid;gap:1rem}.publico-hero{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:1.2rem;align-items:center;padding:1.3rem;border:1px solid #e2e8f0;border-radius:1.15rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.publico-hero-icon{width:72px;height:72px;display:grid;place-items:center;border-radius:999px;background:#ecfdf5;color:#047857;font-size:2rem}.publico-hero h1{margin:0;color:#0f172a;font-size:1.7rem}.publico-hero p{margin:.35rem 0;color:#334155;font-weight:800}.publico-hero small{display:block;max-width:720px;color:#64748b;line-height:1.6}.publico-hero-actions{display:grid;gap:.6rem;min-width:220px}.publico-page .btn{border-radius:.75rem;font-weight:800}.publico-page .btn-primary{background:linear-gradient(135deg,#16a34a,#059669);border:0}.publico-page .btn-secondary{background:#fff;color:#334155;border:1px solid #e2e8f0}.publico-top-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.publico-card{padding:1rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.05)}.publico-card-header,.publico-section-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.publico-card-header{justify-content:flex-start}.publico-card-header>i,.publico-section-header h2 i{width:38px;height:38px;display:grid;place-items:center;border-radius:.85rem;background:#ecfdf5;color:#047857}.publico-card h2,.publico-section-header h2{margin:0;color:#0f172a;font-size:1rem}.publico-card p,.publico-section-header p{margin:.25rem 0 0;color:#64748b}.publico-info-list{display:grid;gap:.7rem}.publico-info-list div{display:flex;justify-content:space-between;gap:1rem;padding:.65rem;border-radius:.75rem;background:#f8fafc}.publico-info-list span{color:#64748b;font-size:.78rem;font-weight:800}.publico-info-list strong{color:#0f172a}.publico-info-list p{padding:.75rem;border:1px solid #dcfce7;border-radius:.85rem;background:#f0fdf4;color:#166534}.publico-legal-list,.publico-contact-list{display:grid;gap:.65rem}.publico-legal-list div,.publico-contact-list div{display:flex;gap:.65rem;align-items:flex-start;padding:.65rem;border-radius:.85rem;background:#f8fafc}.publico-legal-list i,.publico-contact-list i{color:#16a34a}.publico-legal-list strong,.publico-legal-list small,.publico-contact-list strong,.publico-contact-list small{display:block}.publico-legal-list small,.publico-contact-list small{color:#64748b}.publico-grid-main{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:1rem}.publico-stack,.publico-side{display:grid;gap:1rem;align-content:start}.publico-inline-link{color:#047857;font-weight:800;text-decoration:none}.publico-doc-list{display:grid;gap:.6rem}.publico-doc-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.8rem;align-items:center;padding:.75rem;border:1px solid #e2e8f0;border-radius:.9rem;background:#fff}.publico-doc-item>i{width:34px;height:34px;display:grid;place-items:center;border-radius:.75rem;background:#ecfdf5;color:#047857}.publico-doc-item h3{margin:0;color:#0f172a;font-size:.92rem}.publico-doc-item p{margin:.25rem 0 0;color:#64748b;font-size:.8rem}.publico-doc-actions{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}.publico-rights-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.publico-right-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.85rem;border:1px solid #e2e8f0;border-radius:.95rem;background:#fff}.publico-right-card>i{width:38px;height:38px;display:grid;place-items:center;border-radius:.85rem;background:#ecfdf5;color:#047857}.publico-right-card h3{margin:0;color:#0f172a;font-size:.9rem}.publico-right-card p{margin:.2rem 0 0;color:#64748b;font-size:.78rem}.publico-dsar-card{border-color:#bbf7d0}.publico-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}.publico-form label,.publico-consulta-form label{display:block;margin-bottom:.35rem;color:#475569;font-size:.78rem;font-weight:800}.publico-span-2{grid-column:span 2}.publico-form .form-control,.publico-consulta-form .form-control{width:100%;padding:.75rem .85rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#fff;color:#0f172a}.publico-form small{display:block;margin-top:.3rem;color:#94a3b8}.publico-check{display:flex!important;gap:.55rem;align-items:flex-start;margin-top:.75rem;color:#475569!important;font-size:.82rem!important}.publico-form-actions{display:flex;justify-content:flex-end;gap:.55rem;margin-top:1rem}.publico-success{margin-top:1rem;padding:1rem;border:1px solid #bbf7d0;border-radius:.9rem;background:#ecfdf5;color:#166534}.publico-consulta-form{display:grid;gap:.65rem}.publico-contact-list p{margin-top:.7rem;padding:.75rem;border:1px solid #dcfce7;border-radius:.85rem;background:#f0fdf4;color:#166534;font-size:.82rem}.publico-empty{display:grid;place-items:center;gap:.45rem;min-height:150px;padding:1rem;border:1px dashed #cbd5e1;border-radius:1rem;background:#f8fafc;color:#64748b;text-align:center}.publico-empty.compact{min-height:100px}.publico-empty i{font-size:1.5rem;color:#16a34a}.publico-empty h4{margin:0;color:#0f172a}.publico-loading{padding:1rem;color:#64748b;text-align:center}.publico-protocolo-card{display:grid;gap:.45rem;margin-top:.8rem;padding:.85rem;border:1px solid #bbf7d0;border-radius:.9rem;background:#ecfdf5;color:#166534}.publico-protocolo-card strong{color:#0f172a}.publico-protocolo-card span{font-size:.82rem}@media (max-width:1180px){.publico-hero,.publico-top-grid,.publico-grid-main{grid-template-columns:1fr}.publico-hero-actions{display:flex;flex-wrap:wrap}.publico-side{grid-template-columns:1fr 1fr}}@media (max-width:760px){.publico-rights-grid,.publico-form-grid,.publico-side{grid-template-columns:1fr}.publico-span-2{grid-column:auto}.publico-doc-item,.publico-right-card{grid-template-columns:1fr}.publico-form-actions{flex-direction:column}.publico-form-actions .btn{justify-content:center}}

/* ═══════════════════════════════════════════════════════════════════════════
   NOVA LANDING PAGE PREMIUM UNILGPD
   ═══════════════════════════════════════════════════════════════════════════ */

.unilgpd-landing {
  font-family: "Inter", system-ui, -apple-system, sans-serif;
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  min-height: 100vh;
}

/* Container padrão */
.landing-container-new {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 2rem;
}

/* ─── Header Premium ────────────────────────────────────────────────────── */
.landing-header-new {
  position: sticky;
  top: 0;
  z-index: 1000;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(148, 163, 184, 0.12);
  padding: 1rem 0;
  transition: all 0.3s ease;
}

.landing-header-new.header-scrolled {
  box-shadow: 0 4px 20px rgba(15, 23, 42, 0.08);
}

.landing-header-new .landing-container-new {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.landing-brand {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  font-size: 1.35rem;
  font-weight: 800;
  color: #0f172a;
}

.landing-brand i {
  color: #16a34a;
  font-size: 1.5rem;
}

.brand-logo-img {
  flex-shrink: 0;
  filter: drop-shadow(0 2px 4px rgba(22, 163, 74, 0.2));
  transition: transform 0.3s ease;
  display: block;
  object-fit: contain;
}

.landing-brand:hover .brand-logo-img {
  transform: rotate(5deg) scale(1.05);
}

.landing-menu {
  display: flex;
  align-items: center;
  gap: 2rem;
  flex: 1;
  justify-content: center;
}

.landing-menu a {
  color: #334155;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.95rem;
  transition: color 0.2s;
  position: relative;
}

.landing-menu a:hover {
  color: #16a34a;
}

.landing-menu a:after {
  content: "";
  position: absolute;
  bottom: -4px;
  left: 0;
  right: 0;
  height: 2px;
  background: #16a34a;
  border-radius: 999px;
  transform: scaleX(0);
  transition: transform 0.2s;
}

.landing-menu a:hover:after {
  transform: scaleX(1);
}

.landing-actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.btn-login {
  padding: 0.65rem 1.25rem;
  border: 1.5px solid #e2e8f0;
  border-radius: 0.65rem;
  background: #fff;
  color: #16a34a;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.2s;
  font-size: 0.9rem;
}

.btn-login:hover {
  background: #f0fdf4;
  border-color: #16a34a;
  transform: translateY(-1px);
}

.btn-comecar {
  padding: 0.7rem 1.5rem;
  border-radius: 0.65rem;
  background: linear-gradient(135deg, #16a34a, #059669);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
  box-shadow: 0 4px 12px rgba(22, 163, 74, 0.25);
  transition: all 0.2s;
  font-size: 0.9rem;
}

.btn-comecar:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px rgba(22, 163, 74, 0.35);
}

.menu-mobile-toggle {
  display: none;
  border: none;
  background: none;
  font-size: 1.5rem;
  color: #334155;
  cursor: pointer;
}

/* ─── Hero Premium ──────────────────────────────────────────────────────── */
.hero-new {
  padding: 5rem 0 4rem;
  background: linear-gradient(135deg, #f0fdf4 0%, #ffffff 50%, #f8fafc 100%);
  position: relative;
  overflow: hidden;
}

.hero-new:before {
  content: "";
  position: absolute;
  inset: 0;
  background: url('data:image/svg+xml,<svg width="60" height="60" xmlns="http://www.w3.org/2000/svg"><circle cx="1" cy="1" r="1" fill="%2316a34a" opacity="0.08"/></svg>');
  opacity: 0.4;
}

.hero-grid-new {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
  position: relative;
  z-index: 1;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: rgba(220, 252, 231, 0.8);
  border: 1px solid #bbf7d0;
  border-radius: 999px;
  color: #047857;
  font-size: 0.85rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
}

.hero-title {
  font-size: 3.5rem;
  line-height: 1.1;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 1.5rem;
  letter-spacing: -0.02em;
}

.text-highlight {
  color: #16a34a;
  position: relative;
}

.hero-subtitle {
  font-size: 1.2rem;
  line-height: 1.7;
  color: #475569;
  margin: 0 0 2rem;
  max-width: 540px;
}

.hero-buttons {
  display: flex;
  gap: 1rem;
  margin-bottom: 2.5rem;
  flex-wrap: wrap;
}

.btn-hero-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 1rem 2rem;
  border-radius: 0.75rem;
  background: linear-gradient(135deg, #16a34a, #059669);
  color: #fff;
  font-weight: 700;
  font-size: 1.05rem;
  text-decoration: none;
  box-shadow: 0 8px 20px rgba(22, 163, 74, 0.3);
  transition: all 0.3s;
}

.btn-hero-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(22, 163, 74, 0.4);
}

.btn-hero-secondary {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 1rem 2rem;
  border: 2px solid #e2e8f0;
  border-radius: 0.75rem;
  background: #fff;
  color: #334155;
  font-weight: 700;
  font-size: 1.05rem;
  text-decoration: none;
  transition: all 0.3s;
}

.btn-hero-secondary:hover {
  border-color: #16a34a;
  color: #16a34a;
  background: #f0fdf4;
  transform: translateY(-2px);
}

.hero-trust-seals {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.trust-item {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  color: #475569;
  font-size: 0.85rem;
  font-weight: 600;
}

.trust-item i {
  color: #16a34a;
  font-size: 1.1rem;
}

/* Dashboard Mock */
.hero-dashboard-mock {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  position: relative;
}

.mock-card {
  padding: 1.2rem;
  border-radius: 1rem;
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.15);
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
  transition: all 0.3s;
}

.mock-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.12);
}

.mock-score {
  grid-column: 1 / -1;
  text-align: center;
}

.mock-label {
  font-size: 0.75rem;
  color: #64748b;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: 0.5rem;
}

.mock-label i {
  margin-right: 0.4rem;
}

.mock-value {
  font-size: 3rem;
  font-weight: 900;
  color: #16a34a;
  line-height: 1;
}

.mock-value span {
  font-size: 1.2rem;
  color: #94a3b8;
}

.mock-status {
  margin-top: 0.75rem;
  font-size: 0.85rem;
  font-weight: 700;
  color: #047857;
}

.mock-status i {
  margin-right: 0.3rem;
}

.mock-risks .mock-value,
.mock-pending .mock-value {
  font-size: 2rem;
  color: #0f172a;
}

.mock-review .mock-value,
.mock-reports .mock-value,
.mock-portal .mock-value {
  font-size: 1.5rem;
  color: #0f172a;
}

/* ─── Seções de Conteúdo ────────────────────────────────────────────────── */
.section-problema,
.section-solucao,
.section-plataforma,
.section-ia,
.section-relatorios,
.section-portal-publico,
.section-para-quem,
.section-contato {
  padding: 5rem 0;
}

.section-solucao,
.section-relatorios,
.section-para-quem {
  background: #f8fafc;
}

.section-header-center {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 3.5rem;
}

.section-header-center h2 {
  font-size: 2.5rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 1rem;
  letter-spacing: -0.01em;
}

.section-subtitle {
  font-size: 1.15rem;
  color: #64748b;
  line-height: 1.7;
  margin: 0;
}

/* Problema Grid */
.problema-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.problema-card {
  padding: 2rem;
  border: 1px solid #e2e8f0;
  border-radius: 1.2rem;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
  transition: all 0.3s;
}

.problema-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.1);
  border-color: #fca5a5;
}

.problema-icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 1rem;
  background: #fef2f2;
  color: #dc2626;
  font-size: 1.5rem;
  margin-bottom: 1.25rem;
}

.problema-card h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.75rem;
}

.problema-card p {
  font-size: 0.95rem;
  color: #64748b;
  line-height: 1.6;
  margin: 0;
}

/* Solução Features */
.solucao-features {
  max-width: 840px;
  margin: 0 auto;
  display: grid;
  gap: 1.5rem;
}

.feature-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.5rem;
  align-items: flex-start;
  padding: 1.5rem;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  background: #fff;
  transition: all 0.3s;
}

.feature-row:hover {
  border-color: #bbf7d0;
  box-shadow: 0 8px 20px rgba(22, 163, 74, 0.08);
}

.feature-icon {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 1rem;
  background: linear-gradient(135deg, #dcfce7, #bbf7d0);
  color: #047857;
  font-size: 1.4rem;
}

.feature-content h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.5rem;
}

.feature-content p {
  font-size: 0.95rem;
  color: #64748b;
  line-height: 1.6;
  margin: 0;
}

/* Módulos Grid */
.modulos-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
}

.modulo-card {
  padding: 1.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 1.1rem;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
  text-align: center;
  transition: all 0.3s;
}

.modulo-card:hover {
  transform: translateY(-4px);
  border-color: #bbf7d0;
  box-shadow: 0 12px 32px rgba(22, 163, 74, 0.12);
}

.modulo-icon {
  width: 60px;
  height: 60px;
  display: grid;
  place-items: center;
  margin: 0 auto 1rem;
  border-radius: 1rem;
  background: linear-gradient(135deg, #dcfce7, #bbf7d0);
  color: #047857;
  font-size: 1.6rem;
}

.modulo-card h3 {
  font-size: 1rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.6rem;
}

.modulo-card p {
  font-size: 0.85rem;
  color: #64748b;
  line-height: 1.5;
  margin: 0;
}

/* Seção IA */
.ia-content-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: center;
}

.ia-left h2 {
  font-size: 2.2rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 1.25rem;
  letter-spacing: -0.01em;
}

.ia-intro {
  font-size: 1.05rem;
  color: #64748b;
  line-height: 1.7;
  margin: 0 0 2rem;
}

.ia-benefits {
  display: grid;
  gap: 0.85rem;
}

.ia-benefit-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.95rem;
  color: #334155;
  line-height: 1.6;
}

.ia-benefit-item i {
  color: #16a34a;
  font-size: 1.1rem;
  margin-top: 0.2rem;
  flex-shrink: 0;
}

.ia-mock-card {
  padding: 1.5rem;
  border: 1px solid #e2e8f0;
  border-radius: 1.2rem;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
}

.ia-mock-header {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #f1f5f9;
  color: #16a34a;
  font-weight: 700;
  margin-bottom: 1rem;
}

.ia-mock-header i {
  font-size: 1.3rem;
}

.ia-mock-body {
  display: grid;
  gap: 1rem;
}

.ia-mock-message {
  padding: 1rem;
  border-radius: 0.85rem;
  font-size: 0.9rem;
  line-height: 1.6;
}

.ia-mock-message.ia-system {
  background: #f0fdf4;
  border: 1px solid #dcfce7;
}

.ia-mock-message.ia-user {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

.ia-mock-message strong {
  display: block;
  color: #0f172a;
  margin-bottom: 0.5rem;
  font-weight: 700;
}

.ia-mock-message p {
  color: #475569;
  margin: 0;
}

.ia-mock-footer {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid #f1f5f9;
  text-align: center;
  font-size: 0.8rem;
  color: #64748b;
}

/* Relatórios Grid */
.relatorios-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.relatorio-card {
  padding: 1.75rem;
  border: 1px solid #e2e8f0;
  border-radius: 1.1rem;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
  transition: all 0.3s;
}

.relatorio-card:hover {
  transform: translateY(-4px);
  border-color: #bbf7d0;
  box-shadow: 0 12px 32px rgba(22, 163, 74, 0.12);
}

.relatorio-icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 1rem;
  background: linear-gradient(135deg, #dcfce7, #bbf7d0);
  color: #047857;
  font-size: 1.5rem;
  margin-bottom: 1.25rem;
}

.relatorio-card h3 {
  font-size: 1.05rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.75rem;
}

.relatorio-card p {
  font-size: 0.9rem;
  color: #64748b;
  line-height: 1.6;
  margin: 0;
}

/* Portal Público */
.portal-content-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3.5rem;
  align-items: center;
}

.portal-mock {
  padding: 1.5rem;
  border: 1px solid #e2e8f0;
  border-radius: 1.2rem;
  background: #fff;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
}

.portal-mock-header {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #f1f5f9;
  color: #16a34a;
  font-weight: 700;
  margin-bottom: 1.25rem;
}

.portal-mock-header i {
  font-size: 1.3rem;
}

.portal-mock-body {
  display: grid;
  gap: 1.25rem;
}

.portal-mock-section {
  padding: 1rem;
  border: 1px solid #f1f5f9;
  border-radius: 0.85rem;
  background: #f8fafc;
}

.portal-mock-section i {
  color: #16a34a;
  margin-right: 0.5rem;
}

.portal-mock-section strong {
  display: block;
  color: #0f172a;
  font-weight: 700;
  margin-bottom: 0.5rem;
}

.portal-mock-section p {
  color: #64748b;
  font-size: 0.85rem;
  line-height: 1.6;
  margin: 0;
}

.portal-right h2 {
  font-size: 2.2rem;
  font-weight: 800;
  color: #0f172a;
  margin: 0 0 1.25rem;
  letter-spacing: -0.01em;
}

.portal-intro {
  font-size: 1.05rem;
  color: #64748b;
  line-height: 1.7;
  margin: 0 0 2rem;
}

.portal-benefits {
  display: grid;
  gap: 0.85rem;
}

.portal-benefit-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.95rem;
  color: #334155;
  line-height: 1.6;
}

.portal-benefit-item i {
  color: #16a34a;
  font-size: 1.1rem;
  margin-top: 0.2rem;
  flex-shrink: 0;
}

/* Para Quem */
.para-quem-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

.para-quem-card {
  padding: 2rem;
  border: 1px solid #e2e8f0;
  border-radius: 1.2rem;
  background: #fff;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.05);
  text-align: center;
  transition: all 0.3s;
}

.para-quem-card:hover {
  transform: translateY(-4px);
  border-color: #bbf7d0;
  box-shadow: 0 12px 32px rgba(22, 163, 74, 0.12);
}

.para-quem-icon {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  margin: 0 auto 1.25rem;
  border-radius: 1rem;
  background: linear-gradient(135deg, #dcfce7, #bbf7d0);
  color: #047857;
  font-size: 1.8rem;
}

.para-quem-card h3 {
  font-size: 1.15rem;
  font-weight: 700;
  color: #0f172a;
  margin: 0 0 0.75rem;
}

.para-quem-card p {
  font-size: 0.95rem;
  color: #64748b;
  line-height: 1.6;
  margin: 0;
}

/* Contato - Novo Design Escuro */
.section-contato {
  background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
}

.contato-header-title {
  text-align: center;
  margin-bottom: 3rem;
}

.contato-header-title h2 {
  font-size: 2.5rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 0.75rem;
  letter-spacing: -0.01em;
}

.contato-header-title p {
  font-size: 1.15rem;
  color: #94a3b8;
  margin: 0;
}

.contato-grid-new {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 3rem;
  align-items: start;
}

/* Formulário Escuro */
.contato-form-wrapper {
  background: rgba(30, 41, 59, 0.6);
  border: 1px solid rgba(148, 163, 184, 0.15);
  border-radius: 1.5rem;
  padding: 2.5rem;
  backdrop-filter: blur(10px);
}

.contato-form-dark {
  display: grid;
  gap: 1.5rem;
}

.form-group-dark {
  display: grid;
  gap: 0.5rem;
}

.form-group-dark label {
  color: #cbd5e1;
  font-size: 0.9rem;
  font-weight: 600;
}

.form-group-dark input,
.form-group-dark select,
.form-group-dark textarea {
  width: 100%;
  padding: 0.9rem 1.1rem;
  border: 1.5px solid rgba(148, 163, 184, 0.2);
  border-radius: 0.75rem;
  background: rgba(15, 23, 42, 0.5);
  color: #f8fafc;
  font-size: 0.95rem;
  font-family: "Inter", sans-serif;
  transition: all 0.2s;
}

.form-group-dark input::placeholder,
.form-group-dark textarea::placeholder {
  color: #64748b;
}

.form-group-dark input:focus,
.form-group-dark select:focus,
.form-group-dark textarea:focus {
  outline: none;
  border-color: #16a34a;
  background: rgba(15, 23, 42, 0.7);
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.15);
}

.form-group-dark select {
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%2394a3b8' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 2.5rem;
}

.form-group-dark select option {
  background: #1e293b;
  color: #f8fafc;
  padding: 0.5rem;
}

.form-group-dark textarea {
  resize: vertical;
  min-height: 120px;
}

.form-row-dark {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.btn-submit-dark {
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  padding: 1.1rem 1.5rem;
  border: none;
  border-radius: 0.75rem;
  background: linear-gradient(135deg, #0ea5e9, #0284c7);
  color: #fff;
  font-weight: 700;
  font-size: 1.05rem;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(14, 165, 233, 0.35);
  transition: all 0.3s;
  margin-top: 0.5rem;
}

.btn-submit-dark:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(14, 165, 233, 0.45);
  background: linear-gradient(135deg, #0284c7, #0369a1);
}

.btn-submit-dark i {
  transition: transform 0.3s;
}

.btn-submit-dark:hover i {
  transform: translateX(3px);
}

/* Cards de Informação */
.contato-info-wrapper {
  display: grid;
  gap: 2rem;
  align-content: start;
}

.contato-info-title {
  font-size: 1.8rem;
  font-weight: 800;
  color: #fff;
  margin: 0 0 1.5rem;
}

.contato-info-cards {
  display: grid;
  gap: 1.5rem;
}

.info-card-dark {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 1.25rem;
  padding: 1.5rem;
  background: rgba(30, 41, 59, 0.6);
  border: 1px solid rgba(148, 163, 184, 0.15);
  border-radius: 1.2rem;
  backdrop-filter: blur(10px);
  transition: all 0.3s;
}

.info-card-dark:hover {
  background: rgba(30, 41, 59, 0.8);
  border-color: rgba(148, 163, 184, 0.25);
  transform: translateY(-2px);
}

.info-card-icon {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border-radius: 1rem;
  font-size: 1.5rem;
  flex-shrink: 0;
}

.email-icon {
  background: rgba(59, 130, 246, 0.15);
  color: #60a5fa;
}

.phone-icon {
  background: rgba(34, 197, 94, 0.15);
  color: #4ade80;
}

.whatsapp-icon {
  background: rgba(37, 211, 102, 0.15);
  color: #25d366;
}

.clock-icon {
  background: rgba(168, 85, 247, 0.15);
  color: #c084fc;
}

.info-card-content h4 {
  font-size: 1.05rem;
  font-weight: 700;
  color: #f8fafc;
  margin: 0 0 0.5rem;
}

.info-card-content p {
  font-size: 0.85rem;
  color: #94a3b8;
  line-height: 1.6;
  margin: 0 0 0.75rem;
}

.info-card-content a {
  display: inline-block;
  color: #60a5fa;
  text-decoration: none;
  font-weight: 600;
  font-size: 0.95rem;
  transition: color 0.2s;
}

.info-card-content a:hover {
  color: #93c5fd;
}

/* Footer */
.landing-footer-new {
  padding: 3rem 0 1.5rem;
  background: #0f172a;
  color: #cbd5e1;
}

.footer-content {
  display: grid;
  grid-template-columns: 1.5fr repeat(4, 1fr);
  gap: 2.5rem;
  margin-bottom: 2.5rem;
}

.footer-brand .footer-logo {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 1.3rem;
  font-weight: 800;
  color: #fff;
  margin-bottom: 1rem;
}

.footer-logo i {
  color: #16a34a;
  font-size: 1.5rem;
}

.footer-brand p {
  color: #94a3b8;
  line-height: 1.6;
  margin: 0;
}

.footer-column h4 {
  color: #fff;
  font-size: 0.95rem;
  font-weight: 700;
  margin: 0 0 1rem;
}

.footer-column a {
  display: block;
  color: #cbd5e1;
  text-decoration: none;
  margin-bottom: 0.65rem;
  font-size: 0.9rem;
  transition: color 0.2s;
}

.footer-column a:hover {
  color: #16a34a;
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 2rem;
  border-top: 1px solid rgba(203, 213, 225, 0.15);
  font-size: 0.85rem;
}

.footer-bottom p {
  margin: 0;
  color: #94a3b8;
}

.footer-legal {
  display: flex;
  gap: 1.5rem;
}

.footer-legal a {
  color: #cbd5e1;
  text-decoration: none;
  transition: color 0.2s;
}

.footer-legal a:hover {
  color: #16a34a;
}

/* Botão WhatsApp Flutuante */
.whatsapp-float {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 9999;
  width: 60px;
  height: 60px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: linear-gradient(135deg, #25d366, #128c7e);
  color: #fff;
  font-size: 1.8rem;
  box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4);
  text-decoration: none;
  transition: all 0.3s;
  animation: pulse-whatsapp 2s infinite;
}

.whatsapp-float:hover {
  transform: scale(1.1);
  box-shadow: 0 12px 32px rgba(37, 211, 102, 0.5);
}

@keyframes pulse-whatsapp {
  0%, 100% {
    box-shadow: 0 8px 24px rgba(37, 211, 102, 0.4);
  }
  50% {
    box-shadow: 0 8px 32px rgba(37, 211, 102, 0.6), 0 0 0 0 rgba(37, 211, 102, 0.4);
  }
}

/* Animações de entrada */
.problema-card,
.modulo-card,
.relatorio-card,
.para-quem-card {
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.6s ease-out;
}

.problema-card.animated,
.modulo-card.animated,
.relatorio-card.animated,
.para-quem-card.animated {
  opacity: 1;
  transform: translateY(0);
}

/* ─── Responsivo ────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .hero-grid-new,
  .ia-content-grid,
  .portal-content-grid,
  .contato-grid-new {
    grid-template-columns: 1fr;
    gap: 2.5rem;
  }
  
  .hero-title {
    font-size: 2.8rem;
  }
  
  .modulos-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  
  .footer-content {
    grid-template-columns: 1fr 1fr;
  }
  
  .landing-menu {
    position: fixed;
    top: 70px;
    left: 0;
    right: 0;
    flex-direction: column;
    background: #fff;
    padding: 1.5rem;
    border-bottom: 1px solid #e2e8f0;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);
    display: none;
  }
  
  .landing-menu.menu-active {
    display: flex;
  }
  
  .menu-mobile-toggle {
    display: block;
  }
}

@media (max-width: 768px) {
  .hero-title {
    font-size: 2.2rem;
  }
  
  .hero-subtitle {
    font-size: 1rem;
  }
  
  .problema-grid,
  .modulos-grid,
  .relatorios-grid,
  .para-quem-grid {
    grid-template-columns: 1fr;
  }
  
  .section-header-center h2 {
    font-size: 2rem;
  }
  
  .hero-trust-seals {
    grid-template-columns: 1fr;
  }
  
  .hero-dashboard-mock {
    grid-template-columns: 1fr;
  }
  
  .footer-content {
    grid-template-columns: 1fr;
  }
  
  .footer-bottom {
    flex-direction: column;
    gap: 1rem;
    text-align: center;
  }
  
  .landing-actions {
    width: 100%;
  }
  
  .btn-login,
  .btn-comecar {
    flex: 1;
    text-align: center;
    justify-content: center;
    display: flex;
  }
  
  .whatsapp-float {
    bottom: 1.5rem;
    right: 1.5rem;
    width: 54px;
    height: 54px;
    font-size: 1.6rem;
  }
  
  .landing-container-new {
    padding: 0 1.25rem;
  }
  
  .section-problema,
  .section-solucao,
  .section-plataforma,
  .section-ia,
  .section-relatorios,
  .section-portal-publico,
  .section-para-quem,
  .section-contato {
    padding: 3rem 0;
  }
  
  .hero-new {
    padding: 3rem 0 2rem;
  }
  
  .contato-grid-new {
    grid-template-columns: 1fr;
  }
  
  .form-row-dark {
    grid-template-columns: 1fr;
  }
  
  .contato-form-wrapper {
    padding: 1.75rem;
  }
  
  .contato-header-title h2 {
    font-size: 2rem;
  }
}

/* ========================================
   MODAIS - COMPATIBILIDADE E MELHORIAS
   ======================================== */

/* Melhorar modais existentes sem quebrar funcionalidades */
.modal {
  overflow-y: auto;
}

.modal .modal-content {
  max-width: 950px;
  max-height: 90vh;
  margin: 2rem auto;
  display: flex;
  flex-direction: column;
}

.modal .modal-body {
  overflow-y: auto;
  max-height: calc(90vh - 200px);
  flex: 1;
  min-height: 0;
}

.modal .modal-body::-webkit-scrollbar {
  width: 8px;
}

.modal .modal-body::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 4px;
}

.modal .modal-body::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}

.modal .modal-body::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* Garantir que modais grandes (operadores, fornecedores, etc) sejam ainda maiores */
.modal.operator-modal .modal-content,
.modal.fornecedor-modal .modal-content,
.modal.contract-modal .modal-content {
  max-width: 1100px;
}

/* Modais de detalhes ainda maiores */
.modal .operator-details-content,
.modal .fornecedor-detail-modal,
.modal .contract-details-content {
  max-width: 1280px;
}

/* ========================================
   MODAIS PREMIUM - PADRÃO GLOBAL UNILGPD
   ======================================== */

/* Modal Premium - Base */
.modal-premium {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(15, 23, 42, 0.75);
  backdrop-filter: blur(4px);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
}

.modal-premium.show,
.modal-premium.modal.show {
  display: flex !important;
  opacity: 1;
  visibility: visible;
}

/* Container do Modal */
.modal-premium-content {
  background: #ffffff;
  border-radius: 1rem;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.18),
              0 12px 24px rgba(0, 0, 0, 0.12);
  max-height: 92vh;
  width: 100%;
  max-width: 950px;
  display: flex;
  flex-direction: column;
  transform: scale(0.95);
  transition: transform 0.3s ease;
  overflow: hidden;
}

.modal-premium.show .modal-premium-content {
  transform: scale(1);
}

/* Modal Premium Large */
.modal-premium-lg .modal-premium-content {
  max-width: 1100px;
}

/* Modal Premium Extra Large */
.modal-premium-xl .modal-premium-content {
  max-width: 1280px;
}

/* Cabeçalho do Modal */
.modal-header-premium {
  padding: 1.75rem 2rem;
  border-bottom: 1px solid #e5e7eb;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1.25rem;
  flex-shrink: 0;
  background: linear-gradient(135deg, #f9fafb 0%, #ffffff 100%);
}

.modal-header-premium-left {
  flex: 1;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}

.modal-header-premium-icon {
  width: 48px;
  height: 48px;
  border-radius: 0.75rem;
  background: linear-gradient(135deg, #16a34a 0%, #059669 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-size: 1.35rem;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(22, 163, 74, 0.25);
}

.modal-header-premium-text {
  flex: 1;
}

.modal-header-premium-text h3 {
  margin: 0 0 0.35rem 0;
  font-size: 1.4rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.3;
}

.modal-header-premium-text p {
  margin: 0;
  font-size: 0.9rem;
  color: #64748b;
  line-height: 1.4;
}

.modal-close-premium {
  background: #f1f5f9;
  border: none;
  width: 36px;
  height: 36px;
  border-radius: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #64748b;
  font-size: 1.25rem;
  flex-shrink: 0;
  transition: all 0.2s ease;
}

.modal-close-premium:hover {
  background: #e2e8f0;
  color: #334155;
  transform: scale(1.05);
}

/* Form dentro do modal premium */
.modal-premium-content form {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}

/* Corpo do Modal */
.modal-body-premium {
  padding: 2rem;
  overflow-y: auto;
  flex: 1;
  min-height: 0;
}

.modal-body-premium::-webkit-scrollbar {
  width: 8px;
}

.modal-body-premium::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 4px;
}

.modal-body-premium::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}

.modal-body-premium::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* Seções do Modal */
.modal-section {
  margin-bottom: 2rem;
}

.modal-section:last-child {
  margin-bottom: 0;
}

.modal-section-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: #334155;
  margin: 0 0 1rem 0;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid #e5e7eb;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.modal-section-title i {
  color: #16a34a;
  font-size: 0.9rem;
}

/* Grid de Campos */
.modal-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
}

.modal-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}

.modal-field-full {
  grid-column: 1 / -1;
}

/* Grupos de campos */
.modal-field-group {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.modal-field-group label {
  font-size: 0.9rem;
  font-weight: 500;
  color: #334155;
  display: flex;
  align-items: center;
  gap: 0.35rem;
}

.modal-field-group label .required {
  color: #ef4444;
  font-size: 0.75rem;
}

.modal-field-group input,
.modal-field-group select,
.modal-field-group textarea {
  padding: 0.7rem 1rem;
  border: 1.5px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 0.95rem;
  color: #1e293b;
  background: #ffffff;
  transition: all 0.2s ease;
  font-family: 'Inter', sans-serif;
}

.modal-field-group input:focus,
.modal-field-group select:focus,
.modal-field-group textarea:focus {
  outline: none;
  border-color: #16a34a;
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.1);
}

.modal-field-group textarea {
  min-height: 100px;
  resize: vertical;
}

.modal-field-group .field-hint {
  font-size: 0.825rem;
  color: #64748b;
  margin-top: -0.25rem;
}

.modal-field-group .field-error {
  font-size: 0.825rem;
  color: #ef4444;
  display: none;
  margin-top: -0.25rem;
}

.modal-field-group.has-error input,
.modal-field-group.has-error select,
.modal-field-group.has-error textarea {
  border-color: #ef4444;
}

.modal-field-group.has-error .field-error {
  display: block;
}

/* Cards dentro do modal */
.modal-info-card {
  background: linear-gradient(135deg, #f0fdf4 0%, #f9fafb 100%);
  border: 1.5px solid #d1fae5;
  border-radius: 0.75rem;
  padding: 1.25rem;
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-bottom: 1.5rem;
}

.modal-info-card-icon {
  width: 40px;
  height: 40px;
  border-radius: 0.5rem;
  background: linear-gradient(135deg, #16a34a 0%, #059669 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-size: 1.1rem;
  flex-shrink: 0;
}

.modal-info-card-content h4 {
  margin: 0 0 0.35rem 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: #0f172a;
}

.modal-info-card-content p {
  margin: 0;
  font-size: 0.875rem;
  color: #475569;
  line-height: 1.5;
}

/* Rodapé do Modal */
.modal-footer-premium {
  padding: 1.5rem 2rem;
  border-top: 1px solid #e5e7eb;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  flex-shrink: 0;
  background: #f9fafb;
}

.modal-footer-premium-left {
  font-size: 0.875rem;
  color: #64748b;
}

.modal-actions-fixed {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.modal-btn-cancel {
  padding: 0.7rem 1.5rem;
  background: #ffffff;
  border: 1.5px solid #e5e7eb;
  border-radius: 0.5rem;
  font-size: 0.95rem;
  font-weight: 500;
  color: #475569;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: 'Inter', sans-serif;
}

.modal-btn-cancel:hover {
  background: #f8fafc;
  border-color: #cbd5e1;
  color: #1e293b;
}

.modal-btn-primary {
  padding: 0.7rem 1.75rem;
  background: linear-gradient(135deg, #16a34a 0%, #059669 100%);
  border: none;
  border-radius: 0.5rem;
  font-size: 0.95rem;
  font-weight: 600;
  color: #ffffff;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 12px rgba(22, 163, 74, 0.25);
  font-family: 'Inter', sans-serif;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.modal-btn-primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(22, 163, 74, 0.3);
}

.modal-btn-primary:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

.modal-btn-primary i {
  font-size: 0.9rem;
}

/* Loading no botão */
.modal-btn-primary.loading {
  pointer-events: none;
  opacity: 0.8;
}

.modal-btn-primary.loading i {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* Checkboxes e Switches */
.modal-checkbox-group {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.modal-checkbox-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem;
  background: #f8fafc;
  border-radius: 0.5rem;
  border: 1.5px solid #e5e7eb;
  cursor: pointer;
  transition: all 0.2s ease;
}

.modal-checkbox-item:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
}

.modal-checkbox-item input[type="checkbox"] {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: #16a34a;
}

.modal-checkbox-item label {
  flex: 1;
  cursor: pointer;
  font-size: 0.9rem;
  color: #334155;
  margin: 0;
}

/* Badges dentro do modal */
.modal-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.75rem;
  border-radius: 0.375rem;
  font-size: 0.8rem;
  font-weight: 500;
}

.modal-badge-success {
  background: #d1fae5;
  color: #047857;
}

.modal-badge-warning {
  background: #fef3c7;
  color: #b45309;
}

.modal-badge-danger {
  background: #fee2e2;
  color: #dc2626;
}

.modal-badge-info {
  background: #dbeafe;
  color: #1e40af;
}

/* Responsividade dos Modais */
@media (max-width: 1024px) {
  .modal-grid-3 {
    grid-template-columns: repeat(2, 1fr);
  }
  
  .modal-premium-content {
    max-width: 100%;
  }
}

@media (max-width: 768px) {
  .modal-premium {
    padding: 0;
    align-items: flex-end;
  }
  
  .modal-premium-content {
    max-height: 96vh;
    border-radius: 1rem 1rem 0 0;
    max-width: 100%;
  }
  
  .modal-header-premium {
    padding: 1.25rem 1.5rem;
  }
  
  .modal-header-premium-icon {
    width: 42px;
    height: 42px;
    font-size: 1.2rem;
  }
  
  .modal-header-premium-text h3 {
    font-size: 1.2rem;
  }
  
  .modal-body-premium {
    padding: 1.5rem;
  }
  
  .modal-grid,
  .modal-grid-3 {
    grid-template-columns: 1fr;
    gap: 1rem;
  }
  
  .modal-footer-premium {
    padding: 1.25rem 1.5rem;
    flex-direction: column;
    align-items: stretch;
  }
  
  .modal-actions-fixed {
    width: 100%;
    flex-direction: column-reverse;
  }
  
  .modal-btn-cancel,
  .modal-btn-primary {
    width: 100%;
    justify-content: center;
    padding: 0.85rem 1.5rem;
  }
  
  .modal-footer-premium-left {
    text-align: center;
  }
}

@media (max-width: 480px) {
  .modal-header-premium-left {
    flex-direction: column;
  }
  
  .modal-header-premium-icon {
    width: 38px;
    height: 38px;
    font-size: 1.1rem;
  }
  
  .modal-header-premium-text h3 {
    font-size: 1.1rem;
  }
  
  .modal-section-title {
    font-size: 0.9rem;
  }
}
