/* ==========================================================================
   COMPONENTES UI — DASHBOARD, FOLHA DE CAIXA, FORMULÁRIOS E TABELAS
   ========================================================================== */

/* Cartões e Superfícies Glassmorphism */
.glass-card {
  background: var(--bg-card);
  backdrop-filter: blur(12px);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: 24px;
  box-shadow: var(--shadow-md);
  transition: var(--transition);
  position: relative;
  overflow: hidden;
}

.glass-card:hover {
  border-color: rgba(255, 255, 255, 0.15);
}

.card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.card-title {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Grelha de KPIs da Dashboard */
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px;
  margin-bottom: 28px;
}

.kpi-card {
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: 22px;
  display: flex;
  flex-direction: column;
  position: relative;
  box-shadow: var(--shadow-sm);
  transition: var(--transition);
}

.kpi-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--shadow-md);
}

.kpi-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--kpi-color, var(--primary));
  border-radius: var(--radius-md) var(--radius-md) 0 0;
}

.kpi-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px;
}

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

.kpi-icon {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--kpi-bg, rgba(255, 255, 255, 0.05));
  color: var(--kpi-color, var(--primary));
}

.kpi-value {
  font-family: var(--font-heading);
  font-size: 1.9rem;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--text-main);
  line-height: 1.2;
}

.kpi-sub {
  font-size: 0.8rem;
  color: var(--text-sub);
  margin-top: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Barra de Filtros Avançados */
.filter-bar {
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: 18px 24px;
  margin-bottom: 28px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 16px;
  box-shadow: var(--shadow-sm);
}

.filter-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
  min-width: 170px;
}

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

.form-control {
  width: 100%;
  height: 42px;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-sm);
  padding: 0 14px;
  color: var(--text-main);
  font-family: var(--font-body);
  font-size: 0.92rem;
  transition: var(--transition);
  outline: none;
}

/* Estilos de Alta Visibilidade e Contraste para Menus Dropdown (select, optgroup, option) */
select.form-control,
select {
  cursor: pointer;
  background-color: #0f172a;
  color: #f8fafc;
  border: 1px solid rgba(255, 255, 255, 0.15);
}

select optgroup {
  background-color: #1e293b !important;
  color: #60a5fa !important; /* Destaque visual azul vivo para títulos de empresa */
  font-weight: 700 !important;
  font-size: 0.88rem !important;
  padding: 8px 12px !important;
  letter-spacing: 0.02em;
}

select option {
  background-color: #0f172a !important;
  color: #ffffff !important; /* Branco puro de alto contraste para leitura clara das lojas */
  font-size: 0.94rem !important;
  font-weight: 500 !important;
  padding: 10px 14px !important;
}

select option:hover,
select option:focus,
select option:checked {
  background-color: #2563eb !important;
  color: #ffffff !important;
}

[data-theme="light"] .form-control {
  background: #ffffff;
  border-color: #cbd5e1;
  color: #0f172a;
}

[data-theme="light"] .form-control:focus {
  border-color: #2563eb;
  box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
}

[data-theme="light"] .form-control::placeholder {
  color: #94a3b8;
}

[data-theme="light"] .btn-secondary {
  background: #f1f5f9;
  border-color: #cbd5e1;
  color: #1e293b;
}

[data-theme="light"] .btn-secondary:hover {
  background: #e2e8f0;
  border-color: #94a3b8;
  color: #0f172a;
}

[data-theme="light"] select.form-control,
[data-theme="light"] select {
  background-color: #ffffff;
  color: #0f172a;
  border-color: #cbd5e1;
}

[data-theme="light"] select optgroup {
  background-color: #f1f5f9 !important;
  color: #1d4ed8 !important;
}

[data-theme="light"] select option {
  background-color: #ffffff !important;
  color: #0f172a !important;
}

.form-control:focus {
  border-color: var(--border-focus);
  box-shadow: 0 0 0 3px var(--primary-light);
}

.btn {
  height: 42px;
  padding: 0 20px;
  border-radius: var(--radius-sm);
  font-family: var(--font-body);
  font-size: 0.92rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  border: 1px solid transparent;
  transition: var(--transition);
  text-decoration: none;
}

.btn-primary {
  background: linear-gradient(135deg, var(--primary) 0%, #1d4ed8 100%);
  color: #ffffff;
  box-shadow: 0 4px 12px var(--primary-glow);
}

.btn-primary:hover {
  background: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%);
  box-shadow: 0 6px 16px var(--primary-glow);
  transform: translateY(-1px);
}

.btn-secondary {
  background: rgba(255, 255, 255, 0.06);
  border-color: var(--border-color);
  color: var(--text-main);
}

.btn-secondary:hover {
  background: rgba(255, 255, 255, 0.12);
}

.btn-success {
  background: var(--success);
  color: #fff;
}

.btn-success:hover {
  background: #059669;
}

.btn-danger {
  background: var(--danger);
  color: #fff;
}

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

.btn-sm {
  height: 32px;
  padding: 0 12px;
  font-size: 0.82rem;
}

/* Gráficos e Seções da Dashboard */
.charts-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 24px;
  margin-bottom: 28px;
}

@media (max-width: 1024px) {
  .charts-grid {
    grid-template-columns: 1fr;
  }
}

.chart-container {
  position: relative;
  height: 280px;
  width: 100%;
}

/* Formulário da Folha de Caixa Diária */
.folha-form-layout {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap: 28px;
}

@media (max-width: 1024px) {
  .folha-form-layout {
    grid-template-columns: 1fr;
  }
}

.form-section-title {
  font-family: var(--font-heading);
  font-size: 1.05rem;
  font-weight: 700;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--text-main);
  padding-bottom: 8px;
  border-bottom: 1px solid var(--border-color);
}

.entradas-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

@media (max-width: 640px) {
  .entradas-grid {
    grid-template-columns: 1fr;
  }
}

.input-money-group {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.input-money-group label {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--text-muted);
}

.input-with-symbol {
  position: relative;
  display: flex;
  align-items: center;
}

.input-with-symbol .symbol {
  position: absolute;
  left: 14px;
  color: var(--text-sub);
  font-weight: 600;
  pointer-events: none;
}

.input-with-symbol input {
  padding-left: 32px;
  text-align: right;
  font-weight: 600;
  font-family: var(--font-heading);
  font-size: 1.05rem;
}

/* Destaque para Facturas a Anular */
.anulacoes-box {
  background: rgba(239, 68, 68, 0.06);
  border: 1px dashed rgba(239, 68, 68, 0.4);
  border-radius: var(--radius-sm);
  padding: 16px;
  margin-top: 18px;
}

.anulacoes-box label {
  color: #f87171;
  font-weight: 700;
}

/* Cartão do Fundo de Caixa e Diferença Dinâmica */
.fundo-caixa-card {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: 24px;
  margin-bottom: 24px;
}

.diferenca-badge-large {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  border-radius: var(--radius-md);
  margin-top: 18px;
  text-align: center;
  transition: var(--transition);
}

.diferenca-badge-large.positiva {
  background: var(--success-bg);
  border: 2px solid var(--success);
  color: var(--success);
}

.diferenca-badge-large.negativa {
  background: var(--danger-bg);
  border: 2px solid var(--danger);
  color: var(--danger);
  animation: pulse-danger 2s infinite;
}

@keyframes pulse-danger {
  0% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.4); }
  70% { box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
  100% { box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

.diferenca-val {
  font-family: var(--font-heading);
  font-size: 2.4rem;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.diferenca-desc {
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 4px;
}

/* Pagamentos e Saídas Dinâmicas */
.saidas-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 12px;
}

.saida-item-row {
  display: grid;
  grid-template-columns: 130px 115px 110px 1fr 1fr 36px;
  gap: 10px;
  align-items: center;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid var(--border-color);
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  transition: var(--transition);
}

.factura-item-row {
  display: grid;
  grid-template-columns: 150px 130px 110px 1fr 36px;
  gap: 10px;
  align-items: center;
  background: rgba(0, 0, 0, 0.2);
  border: 1px solid var(--border-color);
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  transition: var(--transition);
}

@media (max-width: 768px) {
  .saida-item-row,
  .factura-item-row {
    grid-template-columns: 1fr;
  }
}

/* Barra de Totais Flutuante / Fixa */
.totals-summary-bar {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: 18px 24px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 28px;
  box-shadow: var(--shadow-lg);
}

.summary-metric {
  display: flex;
  flex-direction: column;
}

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

.summary-metric .val {
  font-family: var(--font-heading);
  font-size: 1.35rem;
  font-weight: 800;
  color: var(--text-main);
}

/* Tabelas Elegantes */
.table-responsive {
  width: 100%;
  overflow-x: auto;
  border-radius: var(--radius-md);
  border: 1px solid var(--border-color);
}

.data-table {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 0.88rem;
}

.data-table th {
  background: rgba(0, 0, 0, 0.35);
  padding: 14px 18px;
  font-weight: 600;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-muted);
  border-bottom: 1px solid var(--border-color);
  white-space: nowrap;
}

[data-theme="light"] .data-table th {
  background: #f8fafc;
}

.data-table td {
  padding: 14px 18px;
  border-bottom: 1px solid var(--border-color);
  color: var(--text-main);
  vertical-align: middle;
}

.data-table tbody tr {
  transition: var(--transition);
}

.data-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.02);
}

/* Utilitários Globais de Alinhamento de Tabelas e Textos */
.text-left { text-align: left !important; }
.text-right { text-align: right !important; }
.text-center { text-align: center !important; }

/* ==========================================================================
   TABELA DA DASHBOARD — COMPACTA, ELEGANTE E AJUSTADA À TELA (Sem Scroll Horizontal)
   ========================================================================== */
.dash-table-card {
  padding: 16px 14px 18px 14px !important;
}

.table-dash-estabelecimentos {
  width: 100% !important;
  border-collapse: collapse !important;
  font-size: 0.81rem !important;
  table-layout: auto !important;
}

.table-dash-estabelecimentos th {
  padding: 8px 6px !important;
  font-size: 0.70rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  white-space: nowrap !important;
  line-height: 1.25 !important;
}

.table-dash-estabelecimentos td {
  padding: 8px 6px !important;
  font-size: 0.81rem !important;
  vertical-align: middle !important;
  line-height: 1.25 !important;
}

.table-dash-estabelecimentos .col-estabelecimento {
  max-width: 170px;
}

.table-dash-estabelecimentos .estab-nome {
  font-weight: 600;
  font-size: 0.82rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 165px;
}

.table-dash-estabelecimentos .estab-empresa {
  font-size: 0.70rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 165px;
  margin-top: 1px;
}

.table-dash-estabelecimentos .estab-resp {
  font-size: 0.67rem;
  color: #c084fc;
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 165px;
}

.table-dash-estabelecimentos .col-money {
  font-size: 0.81rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.table-dash-estabelecimentos .col-badge {
  white-space: nowrap;
  padding: 6px 4px !important;
}

.table-dash-estabelecimentos .col-acoes {
  white-space: nowrap;
  padding: 6px 4px !important;
}

.table-dash-estabelecimentos .badge {
  padding: 2px 6px !important;
  font-size: 0.70rem !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  white-space: nowrap !important;
}

.table-dash-estabelecimentos .dash-acoes-group {
  display: inline-flex;
  gap: 3px;
  align-items: center;
  justify-content: center;
  flex-wrap: nowrap;
}

.table-dash-estabelecimentos .btn-dash-action {
  padding: 3px 7px !important;
  font-size: 0.73rem !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  line-height: 1.2 !important;
  height: 26px !important;
}

.table-dash-estabelecimentos .btn-dash-print {
  padding: 3px 6px !important;
  font-size: 0.74rem !important;
  line-height: 1.2 !important;
  height: 26px !important;
}

/* ==========================================================================
   TABELA DE PAGAMENTOS & MOVIMENTAÇÕES — 100% RESPONSIVA SEM SCROLLBAR
   ========================================================================== */
.table-dash-pagamentos {
  width: 100% !important;
  table-layout: fixed !important;
  border-collapse: collapse !important;
  font-size: 0.81rem !important;
}

.table-dash-pagamentos th {
  padding: 8px 8px !important;
  font-size: 0.70rem !important;
  font-weight: 700 !important;
  letter-spacing: 0.02em !important;
  white-space: nowrap !important;
  line-height: 1.25 !important;
}

.table-dash-pagamentos td {
  padding: 8px 8px !important;
  font-size: 0.81rem !important;
  vertical-align: middle !important;
  line-height: 1.25 !important;
}

.table-dash-pagamentos .cell-dash-nome {
  word-break: break-word !important;
  white-space: normal !important;
  font-size: 0.81rem !important;
  line-height: 1.25 !important;
}

.table-dash-pagamentos .cell-dash-obs {
  word-break: break-word !important;
  white-space: normal !important;
  font-size: 0.76rem !important;
  line-height: 1.3 !important;
  color: var(--text-muted);
}

.badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: var(--radius-full);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.badge-success {
  background: var(--success-bg);
  color: var(--success);
}

.badge-danger {
  background: var(--danger-bg);
  color: var(--danger);
}

.badge-primary {
  background: var(--primary-light);
  color: #60a5fa;
}

.badge-warning {
  background: var(--warning-bg);
  color: var(--warning);
}

/* Modais */
.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(8px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
  padding: 20px;
}

.modal-overlay.active {
  opacity: 1;
  pointer-events: auto;
}

.modal-dialog {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg);
  width: 100%;
  max-width: 580px;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.6);
  transform: translateY(20px);
  transition: transform 0.25s ease;
  max-height: 90vh;
  display: flex;
  flex-direction: column;
}

.modal-overlay.active .modal-dialog {
  transform: translateY(0);
}

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

.modal-body {
  padding: 24px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.modal-footer {
  padding: 16px 24px;
  border-top: 1px solid var(--border-color);
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
}

/* Notificações Toast */
#toast-container {
  position: fixed;
  bottom: 24px;
  right: 24px;
  z-index: 2000;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.toast {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-left: 4px solid var(--primary);
  border-radius: var(--radius-sm);
  padding: 14px 20px;
  min-width: 300px;
  box-shadow: var(--shadow-lg);
  color: var(--text-main);
  font-size: 0.9rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 12px;
  animation: slideToast 0.3s ease-out;
}

.toast.success { border-left-color: var(--success); }
.toast.danger { border-left-color: var(--danger); }
.toast.warning { border-left-color: var(--warning); }

@keyframes slideToast {
  from { opacity: 0; transform: translateX(40px); }
  to { opacity: 1; transform: translateX(0); }
}

/* ==========================================================================
   VISTA DE TESOURARIA & COFRE — LAYOUT RESPONSIVO SEM SCROLLBARS
   ========================================================================== */
#view-tesouraria {
  padding: 16px 24px 20px 24px;
}

.tesouraria-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 10px;
  flex-wrap: wrap;
  gap: 10px;
}

.tesouraria-header h3 {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  font-weight: 700;
  margin: 0;
}

.tesouraria-header p {
  color: var(--text-muted);
  font-size: 0.8rem;
  margin: 2px 0 0 0;
}

.tesouraria-filter-bar {
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: 8px 12px;
  margin-bottom: 10px;
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 8px;
  box-shadow: var(--shadow-sm);
}

.tesouraria-filter-col {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 130px;
}

.tesouraria-filter-col.date-col {
  flex: 0 0 130px;
  min-width: 130px;
}

.tesouraria-filter-col.quick-col {
  flex: 0 0 auto;
  min-width: auto;
}

.tesouraria-filter-col label {
  font-size: 0.68rem;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  white-space: nowrap;
}

.tesouraria-filter-col .form-control {
  height: 34px;
  padding: 0 8px;
  font-size: 0.82rem;
  border-radius: var(--radius-sm);
}

.tesouraria-btn-group-quick {
  display: flex;
  gap: 4px;
}

.tesouraria-btn-group-quick .btn {
  height: 34px;
  padding: 0 9px;
  font-size: 0.74rem;
  font-weight: 600;
  border-radius: var(--radius-sm);
}

/* Card Principal da Tabela de Histórico de Depósitos */
.tesouraria-history-card {
  padding: 10px 14px;
  margin-bottom: 10px;
}

.tesouraria-table-container {
  width: 100%;
  overflow-x: hidden;
  max-height: 250px;
  overflow-y: auto;
}

@media (max-width: 1024px) {
  .tesouraria-table-container {
    overflow-x: auto;
  }
}

.tesouraria-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 0.81rem;
}

.tesouraria-table th {
  padding: 6px 7px;
  font-size: 0.71rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--text-muted);
  border-bottom: 1px solid var(--border-color);
  background: rgba(0, 0, 0, 0.25);
  white-space: nowrap;
  position: sticky;
  top: 0;
  z-index: 2;
}

.tesouraria-table td {
  padding: 5px 7px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  vertical-align: middle;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tesouraria-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.03);
}

.tesouraria-table tfoot td {
  padding: 6px 7px;
  border-top: 1px solid var(--border-color);
  position: sticky;
  bottom: 0;
  background: var(--bg-card);
  z-index: 2;
}

/* Grid de Cartões de Cofre das Empresas */
.tesouraria-cofre-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.cofre-company-card {
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-md);
  padding: 10px 12px;
  box-shadow: var(--shadow-sm);
  display: flex;
  flex-direction: column;
  gap: 7px;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.cofre-company-card:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-md);
}

.cofre-card-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.cofre-card-title-group {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}

.cofre-card-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.cofre-card-title {
  font-family: var(--font-heading);
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--text-main);
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cofre-card-badge {
  font-size: 0.68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 6px;
  border-radius: var(--radius-full);
  background: rgba(37, 99, 235, 0.15);
  color: #93c5fd;
  border: 1px solid rgba(59, 130, 246, 0.25);
  white-space: nowrap;
}

.cofre-card-hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 6px 10px;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
}

.cofre-card-hero.cofre-hero-positive {
  background: rgba(16, 185, 129, 0.12);
  border-color: rgba(16, 185, 129, 0.3);
}

.cofre-card-hero.cofre-hero-negative {
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.3);
}

.cofre-hero-label {
  font-size: 0.70rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.cofre-card-hero.cofre-hero-positive .cofre-hero-label {
  color: #34d399;
}

.cofre-card-hero.cofre-hero-negative .cofre-hero-label {
  color: #f87171;
}

.cofre-hero-val {
  font-family: var(--font-heading);
  font-size: 1.25rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.cofre-card-hero.cofre-hero-positive .cofre-hero-val {
  color: #34d399;
}

.cofre-card-hero.cofre-hero-negative .cofre-hero-val {
  color: #f87171;
}

.cofre-card-kpi-row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 6px;
  background: rgba(0, 0, 0, 0.18);
  border-radius: var(--radius-sm);
  padding: 5px 8px;
}

.cofre-kpi-col {
  display: flex;
  flex-direction: column;
  gap: 1px;
}

.cofre-kpi-label {
  font-size: 0.65rem;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.cofre-kpi-val {
  font-family: var(--font-heading);
  font-size: 0.82rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.cofre-kpi-val.val-green {
  color: #34d399;
}

.cofre-kpi-val.val-red {
  color: #f87171;
}

.cofre-kpi-val.val-blue {
  color: #60a5fa;
}

.cofre-card-banks-compact {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
}

.cofre-bank-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--radius-sm);
  padding: 2px 6px;
  font-size: 0.72rem;
}

.cofre-bank-name {
  color: var(--text-muted);
  max-width: 90px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.cofre-bank-val {
  font-weight: 700;
  color: var(--text-main);
  font-variant-numeric: tabular-nums;
}

.cofre-bank-empty {
  font-size: 0.72rem;
  color: var(--text-sub);
  font-style: italic;
}

/* ==========================================================================
   SISTEMA DE TEMAS (LIGHT & DARK MODE) — ALTA LEGIBILIDADE & CONTRASTE
   ========================================================================== */

/* Cores de Métodos de Pagamento Dinâmicos */
.factura-metodo[data-metodo="DINHEIRO"],
.saida-metodo[data-metodo="DINHEIRO"] {
  color: var(--metodo-dinheiro) !important;
}
.factura-metodo[data-metodo="MULTIBANCO"],
.saida-metodo[data-metodo="MULTIBANCO"] {
  color: var(--metodo-multibanco) !important;
}
.factura-metodo[data-metodo="CREDITO"] {
  color: var(--metodo-credito) !important;
}
.saida-metodo[data-metodo="FACTURA_EXTRA"] {
  color: var(--metodo-factura-extra) !important;
}
.badge.dash-pagamentos-fe {
  background: rgba(245, 158, 11, 0.18);
  color: var(--metodo-factura-extra);
  border: 1px solid rgba(245, 158, 11, 0.35);
}

/* 1. Cards de Deduções (Anulações) e Pagamentos / Saídas */
.card-deducoes,
.card-saidas {
  margin-bottom: 24px;
  border-left: 4px solid #ef4444 !important;
  background: rgba(239, 68, 68, 0.05) !important;
  border: 1px solid rgba(239, 68, 68, 0.25) !important;
}

[data-theme="light"] .card-deducoes,
[data-theme="light"] .card-saidas {
  background: #fef2f2 !important;
  border-color: #fecaca !important;
  border-left: 4px solid #dc2626 !important;
}

.deducoes-title {
  color: #f87171;
}
[data-theme="light"] .deducoes-title {
  color: #dc2626 !important;
}

.deducoes-sub {
  color: #fca5a5;
}
[data-theme="light"] .deducoes-sub {
  color: #991b1b !important;
  font-weight: 500;
}

.deducoes-label {
  color: #fca5a5;
  font-weight: 600;
}
[data-theme="light"] .deducoes-label {
  color: #991b1b !important;
  font-weight: 700;
}

.btn-add-saida {
  border-color: rgba(239, 68, 68, 0.4);
  color: #fca5a5;
}
[data-theme="light"] .btn-add-saida {
  background: #ffffff !important;
  border-color: #fca5a5 !important;
  color: #b91c1c !important;
  font-weight: 600 !important;
}
[data-theme="light"] .btn-add-saida:hover {
  background: #fee2e2 !important;
  color: #991b1b !important;
}

/* Linhas Dinâmicas de Saídas e Faturas */
[data-theme="light"] .saida-item-row,
[data-theme="light"] .factura-item-row {
  background: #f8fafc !important;
  border-color: #e2e8f0 !important;
}
[data-theme="light"] .saida-item-row:hover,
[data-theme="light"] .factura-item-row:hover {
  background: #f1f5f9 !important;
  border-color: #cbd5e1 !important;
}

/* 2. Caixa de Apuramento & Conferência (Direita da Folha de Caixa) */
.caixa-apuramento-box {
  padding: 14px;
  background: rgba(0, 0, 0, 0.25);
  border-radius: var(--radius-sm);
  border: 1px solid var(--border-color);
  font-size: 0.85rem;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
[data-theme="light"] .caixa-apuramento-box {
  background: #f8fafc !important;
  border-color: #e2e8f0 !important;
}

.caixa-apuramento-row-line {
  border-bottom: 1px dashed rgba(255, 255, 255, 0.1);
  padding-bottom: 6px;
  font-size: 0.73rem;
  color: var(--text-sub);
}
[data-theme="light"] .caixa-apuramento-row-line {
  border-bottom: 1px dashed rgba(0, 0, 0, 0.12) !important;
}

.text-diferenca-gaveta {
  color: #34d399;
  font-weight: 700;
}
[data-theme="light"] .text-diferenca-gaveta {
  color: #059669 !important;
}

.text-esperado-escritorio {
  color: #93c5fd;
  font-weight: 700;
}
[data-theme="light"] .text-esperado-escritorio {
  color: #1d4ed8 !important;
}

.text-resumo-liquido {
  color: #a7f3d0;
  font-weight: 700;
}
[data-theme="light"] .text-resumo-liquido {
  color: #047857 !important;
}

/* Destaque do Dinheiro Enviado ao Escritório */
.dinheiro-enviado-highlight {
  margin-top: 6px;
  padding: 10px 12px;
  background: rgba(37, 99, 235, 0.12);
  border: 1px solid rgba(59, 130, 246, 0.3);
  border-radius: var(--radius-sm);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
[data-theme="light"] .dinheiro-enviado-highlight {
  background: #eff6ff !important;
  border-color: #bfdbfe !important;
}

/* Destaque do Total Enviado ao Escritório (Dinheiro + Facturas Extra) */
.total-escritorio-highlight {
  margin-top: 8px;
  padding: 10px 12px;
  background: rgba(14, 165, 233, 0.14);
  border: 1.5px solid rgba(56, 189, 248, 0.45);
  border-radius: var(--radius-sm);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
[data-theme="light"] .total-escritorio-highlight {
  background: #f0f9ff !important;
  border-color: #bae6fd !important;
}

.total-escritorio-title {
  font-size: 0.80rem;
  text-transform: uppercase;
  font-weight: 700;
  color: #38bdf8;
  letter-spacing: 0.03em;
}
[data-theme="light"] .total-escritorio-title {
  color: #0284c7 !important;
}

.total-escritorio-val {
  font-size: 1.25rem;
  font-weight: 800;
  color: #38bdf8;
}
[data-theme="light"] .total-escritorio-val {
  color: #0284c7 !important;
}

.dinheiro-enviado-title {
  font-size: 0.78rem;
  text-transform: uppercase;
  font-weight: 700;
  color: #60a5fa;
  letter-spacing: 0.03em;
}
[data-theme="light"] .dinheiro-enviado-title {
  color: #1d4ed8 !important;
}

.dinheiro-enviado-val {
  font-size: 1.15rem;
  color: #ffffff;
}
[data-theme="light"] .dinheiro-enviado-val {
  color: #0f172a !important;
}

/* 3. Barra de Totais Flutuante */
[data-theme="light"] .totals-summary-bar {
  background: #ffffff !important;
  border-color: #cbd5e1 !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08) !important;
}
[data-theme="light"] .totals-summary-bar .val {
  color: #0f172a !important;
}
[data-theme="light"] #sumTotalAnulacoes {
  color: #dc2626 !important;
}
[data-theme="light"] #sumTotalLiquido {
  color: #1d4ed8 !important;
}
[data-theme="light"] #sumTotalFornecedores {
  color: #b45309 !important;
}
[data-theme="light"] #sumTotalStaff {
  color: #7c3aed !important;
}
[data-theme="light"] #sumEnviadoEscritorio {
  color: #0284c7 !important;
}

/* 4. Alerta de Filtro Ativo da Dashboard */
.active-filter-alert {
  background: rgba(37, 99, 235, 0.15);
  border: 1px solid rgba(59, 130, 246, 0.35);
  border-radius: var(--radius-sm);
}
[data-theme="light"] .active-filter-alert {
  background: #eff6ff !important;
  border-color: #bfdbfe !important;
}
.filter-alert-title {
  color: #93c5fd;
}
[data-theme="light"] .filter-alert-title {
  color: #1e3a8a !important;
}
.filter-alert-badge {
  color: #ffffff;
}
[data-theme="light"] .filter-alert-badge {
  color: #1d4ed8 !important;
}
.filter-alert-sub {
  color: #bfdbfe;
}
[data-theme="light"] .filter-alert-sub {
  color: #3b82f6 !important;
}
.filter-alert-metric-title {
  color: #93c5fd;
}
[data-theme="light"] .filter-alert-metric-title {
  color: #1e3a8a !important;
}
.filter-alert-val-dia {
  color: #60a5fa;
}
[data-theme="light"] .filter-alert-val-dia {
  color: #1d4ed8 !important;
}
.filter-alert-val-mes {
  color: #bfdbfe;
}
[data-theme="light"] .filter-alert-val-mes {
  color: #2563eb !important;
}

/* 5. Tabelas da Dashboard e Pagamentos no Light Mode */
[data-theme="light"] .table-dash-estabelecimentos th,
[data-theme="light"] .table-dash-pagamentos th {
  background: #f1f5f9 !important;
  color: #334155 !important;
  border-bottom: 2px solid #cbd5e1 !important;
}
[data-theme="light"] .table-dash-estabelecimentos td,
[data-theme="light"] .table-dash-pagamentos td {
  border-bottom: 1px solid #e2e8f0 !important;
  color: #0f172a !important;
}
[data-theme="light"] .table-dash-estabelecimentos tbody tr:hover,
[data-theme="light"] .table-dash-pagamentos tbody tr:hover {
  background: #f8fafc !important;
}
[data-theme="light"] .estab-resp {
  color: #7c3aed !important;
  font-weight: 600 !important;
}
[data-theme="light"] .dash-table-anulado {
  color: #dc2626 !important;
}
[data-theme="light"] .dash-table-enviado {
  color: #1d4ed8 !important;
}
[data-theme="light"] .dash-pagamentos-mb {
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  border: 1px solid #bfdbfe !important;
}
[data-theme="light"] .dash-pagamentos-dinheiro {
  background: #ecfdf5 !important;
  color: #047857 !important;
  border: 1px solid #a7f3d0 !important;
}

/* 6. Badges no Light Mode */
[data-theme="light"] .badge-primary {
  background: rgba(37, 99, 235, 0.12) !important;
  color: #1d4ed8 !important;
  border: 1px solid rgba(37, 99, 235, 0.25) !important;
}
[data-theme="light"] .badge-success {
  background: rgba(5, 150, 105, 0.12) !important;
  color: #047857 !important;
  border: 1px solid rgba(5, 150, 105, 0.25) !important;
}
[data-theme="light"] .badge-warning {
  background: rgba(217, 119, 6, 0.12) !important;
  color: #b45309 !important;
  border: 1px solid rgba(217, 119, 6, 0.25) !important;
}
[data-theme="light"] .badge-danger {
  background: rgba(220, 38, 38, 0.12) !important;
  color: #b91c1c !important;
  border: 1px solid rgba(220, 38, 38, 0.25) !important;
}
[data-theme="light"] .badge-secondary {
  background: #f1f5f9 !important;
  color: #475569 !important;
  border: 1px solid #cbd5e1 !important;
}

/* 7. Cartões de Cofre e Módulo de Tesouraria no Light Mode */
[data-theme="light"] .cofre-company-card {
  background: #ffffff !important;
  border-color: #cbd5e1 !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05) !important;
}
[data-theme="light"] .cofre-card-badge {
  background: #eff6ff !important;
  color: #1d4ed8 !important;
  border-color: #bfdbfe !important;
}
[data-theme="light"] .cofre-card-hero.cofre-hero-positive {
  background: #ecfdf5 !important;
  border-color: #a7f3d0 !important;
}
[data-theme="light"] .cofre-card-hero.cofre-hero-positive .cofre-hero-label,
[data-theme="light"] .cofre-card-hero.cofre-hero-positive .cofre-hero-val {
  color: #047857 !important;
}
[data-theme="light"] .cofre-card-hero.cofre-hero-negative {
  background: #fef2f2 !important;
  border-color: #fecaca !important;
}
[data-theme="light"] .cofre-card-hero.cofre-hero-negative .cofre-hero-label,
[data-theme="light"] .cofre-card-hero.cofre-hero-negative .cofre-hero-val {
  color: #b91c1c !important;
}
[data-theme="light"] .cofre-card-kpi-row {
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
}
[data-theme="light"] .cofre-kpi-val.val-green {
  color: #047857 !important;
}
[data-theme="light"] .cofre-kpi-val.val-red {
  color: #b91c1c !important;
}
[data-theme="light"] .cofre-kpi-val.val-blue {
  color: #1d4ed8 !important;
}
[data-theme="light"] .cofre-bank-pill {
  background: #f1f5f9 !important;
  border-color: #cbd5e1 !important;
}
[data-theme="light"] .tesouraria-filter-bar {
  background: #ffffff !important;
  border-color: #cbd5e1 !important;
}
[data-theme="light"] .tesouraria-table th {
  background: #f1f5f9 !important;
  color: #334155 !important;
  border-bottom: 2px solid #cbd5e1 !important;
}
[data-theme="light"] .tesouraria-table td {
  border-bottom: 1px solid #e2e8f0 !important;
  color: #0f172a !important;
}
[data-theme="light"] .tesouraria-table tbody tr:hover {
  background: #f8fafc !important;
}
[data-theme="light"] .tesouraria-table tfoot td {
  background: #f8fafc !important;
  border-top: 2px solid #cbd5e1 !important;
  color: #0f172a !important;
}

/* 8. Modais no Light Mode */
[data-theme="light"] .modal-dialog {
  background: #ffffff !important;
  border-color: #cbd5e1 !important;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15) !important;
}
[data-theme="light"] .modal-header {
  border-bottom-color: #e2e8f0 !important;
}
[data-theme="light"] .modal-footer {
  border-top-color: #e2e8f0 !important;
}

[data-theme="light"] .text-blue-label {
  color: #1d4ed8 !important;
}


/* ==========================================================================
   FOLHA DE CAIXA — IMPRESSÃO EXECUTIVA OFICIAL A4 VERTICAL (PORTRAIT)
   Sem páginas em branco & Ajustado 100% a uma única folha A4
   ========================================================================== */
#folhaImpressaoDocumento,
#relatorioImpressaoDocumento,
#historicoDepositosImpressaoDocumento {
  display: none;
}

@page {
  size: A4 portrait;
  margin: 6mm 8mm;
}

@media print {
  /* 1. Reset e eliminação estrita de qualquer elemento fora do documento impresso ativo */
  body:not(.modo-impressao-relatorio):not(.modo-impressao-depositos) > *:not(#folhaImpressaoDocumento) {
    display: none !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
  }

  body.modo-impressao-relatorio > *:not(#relatorioImpressaoDocumento) {
    display: none !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
  }

  body.modo-impressao-depositos > *:not(#historicoDepositosImpressaoDocumento) {
    display: none !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
  }

  body:not(.modo-impressao-relatorio) #relatorioImpressaoDocumento {
    display: none !important;
    height: 0 !important;
  }

  body:not(.modo-impressao-depositos) #historicoDepositosImpressaoDocumento {
    display: none !important;
    height: 0 !important;
  }

  body.modo-impressao-relatorio #folhaImpressaoDocumento,
  body.modo-impressao-relatorio #historicoDepositosImpressaoDocumento {
    display: none !important;
    height: 0 !important;
  }

  body.modo-impressao-depositos #folhaImpressaoDocumento,
  body.modo-impressao-depositos #relatorioImpressaoDocumento {
    display: none !important;
    height: 0 !important;
  }

  .app-container,
  .modal-overlay,
  .modal-dialog,
  .sidebar,
  .topbar,
  .main-content,
  .page-view,
  .mobile-menu-toggle,
  .toast-container,
  #toast-container,
  .modal,
  .btn {
    display: none !important;
    height: 0 !important;
    max-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    visibility: hidden !important;
  }

  body::before,
  body::after {
    display: none !important;
    content: none !important;
    width: 0 !important;
    height: 0 !important;
  }

  html, body {
    background: #ffffff !important;
    color: #111827 !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif !important;
    font-size: 11px !important;
    line-height: 1.3 !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    overflow: visible !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  /* 2. Contentor principal: ajustado à folha A4 Vertical (Portrait: 210mm x 297mm) */
  #folhaImpressaoDocumento {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 194mm !important;
    height: auto !important;
    max-height: 278mm !important; /* Altura da página com margens para caber 100% numa página */
    overflow: hidden !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    page-break-before: avoid !important;
    page-break-after: avoid !important;
    page-break-inside: avoid !important;
    break-before: avoid !important;
    break-after: avoid !important;
    break-inside: avoid !important;
  }

  /* Cabeçalho */
  .print-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-bottom: 2px solid #1e3a8a !important;
    padding-bottom: 5px !important;
    margin-bottom: 6px !important;
  }

  .print-header-left {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    width: 32% !important;
  }

  .print-logo-img {
    height: 38px !important;
    max-width: 105px !important;
    object-fit: contain !important;
  }

  .print-brand-title {
    font-size: 14.5px !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    color: #1e3a8a !important;
    line-height: 1.15 !important;
  }

  .print-brand-sub {
    font-size: 8.5px !important;
    color: #4b5563 !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
  }

  .print-header-center {
    text-align: center !important;
    width: 38% !important;
  }

  .print-doc-title {
    font-size: 15px !important;
    font-weight: 800 !important;
    color: #111827 !important;
    margin: 0 0 2px 0 !important;
    letter-spacing: 0.02em !important;
  }

  .print-doc-sub {
    font-size: 9.5px !important;
    color: #4b5563 !important;
  }

  .print-meta-grid {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    font-size: 10px !important;
    color: #374151 !important;
  }

  .print-header-right {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    width: 30% !important;
    gap: 2px !important;
  }

  .print-status-box {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    background: #f1f5f9 !important;
    padding: 2.5px 7px !important;
    border-radius: 4px !important;
    border: 1px solid #cbd5e1 !important;
  }

  .print-status-label {
    font-size: 8.5px !important;
    font-weight: 700 !important;
    color: #64748b !important;
  }

  .print-status-val {
    font-size: 10.5px !important;
    font-weight: 800 !important;
    color: #1e3a8a !important;
  }

  .print-emission-time {
    font-size: 9px !important;
    color: #6b7280 !important;
    text-align: right !important;
  }

  /* Grelha do Corpo em A4 Vertical (Portrait) */
  .print-body-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 6px !important;
    margin-bottom: 5px !important;
  }

  .print-card-entradas {
    grid-column: 1 !important;
  }

  .print-card-gaveta {
    grid-column: 2 !important;
  }

  .print-card-detalhes {
    grid-column: 1 / span 2 !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
  }

  .print-detalhes-grid {
    display: grid !important;
    grid-template-columns: 1.15fr 0.85fr !important;
    gap: 6px !important;
  }

  .print-card {
    border: 1px solid #d1d5db !important;
    border-radius: 4px !important;
    display: flex !important;
    flex-direction: column !important;
    background: #ffffff !important;
    overflow: hidden !important;
  }

  .print-detalhe-col {
    border: 1px solid #d1d5db !important;
    border-radius: 4px !important;
    display: flex !important;
    flex-direction: column !important;
    background: #ffffff !important;
    overflow: hidden !important;
  }

  .print-card-title {
    font-size: 10.5px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.03em !important;
    padding: 4px 7px !important;
    color: #ffffff !important;
  }

  .print-bg-blue { background: #1e3a8a !important; }
  .print-bg-green { background: #065f46 !important; }
  .print-bg-red { background: #991b1b !important; }
  .print-bg-gray { background: #334155 !important; }

  /* Tabelas de Impressão */
  .print-table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 10px !important;
  }

  .print-table td,
  .print-table th {
    padding: 2.5px 5.5px !important;
    border-bottom: 1px solid #e5e7eb !important;
  }

  .print-table th {
    background: #f8fafc !important;
    font-size: 9.5px !important;
    font-weight: 700 !important;
    color: #374151 !important;
    text-align: left !important;
  }

  .text-right { text-align: right !important; }
  .text-center { text-align: center !important; }

  .print-tr-highlight {
    background: #f1f5f9 !important;
    font-weight: 700 !important;
    border-top: 1px solid #94a3b8 !important;
  }

  .print-tr-deducao td {
    color: #991b1b !important;
    font-size: 9.5px !important;
  }

  .print-tr-total-liquido {
    background: #eff6ff !important;
    border-top: 2px solid #1e3a8a !important;
    border-bottom: 2px solid #1e3a8a !important;
    font-size: 11.5px !important;
  }

  .print-tr-total-liquido td {
    color: #1e3a8a !important;
    font-weight: 800 !important;
    padding: 3.5px 5.5px !important;
  }

  .print-tr-sub {
    background: #f8fafc !important;
    border-top: 1px solid #cbd5e1 !important;
    font-weight: 700 !important;
  }

  .print-tr-contado {
    background: #fafaf9 !important;
  }

  .print-tr-diferenca {
    background: #fef2f2 !important;
    font-weight: 700 !important;
    border-top: 1px solid #fecaca !important;
    border-bottom: 1px solid #fecaca !important;
  }

  .print-destaque-escritorio {
    margin: 4px 6px !important;
    padding: 4px 6px !important;
    border: 2px solid #1e3a8a !important;
    border-radius: 4px !important;
    background: #eff6ff !important;
    text-align: center !important;
  }

  .print-escritorio-label {
    font-size: 9px !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    color: #1e3a8a !important;
    text-transform: uppercase !important;
  }

  .print-escritorio-val {
    font-size: 17px !important;
    font-weight: 800 !important;
    color: #1e3a8a !important;
    line-height: 1.15 !important;
  }

  .print-escritorio-sub {
    font-size: 8.5px !important;
    color: #4b5563 !important;
  }

  .print-table-scroll {
    overflow: hidden !important;
  }

  .print-table-mini td,
  .print-table-mini th {
    padding: 2px 4.5px !important;
    font-size: 9.5px !important;
  }

  .print-empty-text {
    color: #9ca3af !important;
    font-style: italic !important;
    padding: 5px !important;
    font-size: 9.5px !important;
  }

  /* Rodapé & Assinaturas */
  .print-footer {
    border-top: 1px solid #94a3b8 !important;
    padding-top: 3px !important;
    margin-top: 4px !important;
  }

  .print-obs-row {
    font-size: 9.5px !important;
    background: #f8fafc !important;
    padding: 3px 6px !important;
    border-radius: 3px !important;
    border: 1px solid #e2e8f0 !important;
    margin-bottom: 4px !important;
  }

  .print-signatures-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 30px !important;
    padding: 0 10px !important;
  }

  .print-signature-box {
    text-align: center !important;
  }

  .print-signature-line {
    border-bottom: 1px solid #111827 !important;
    margin-bottom: 3px !important;
    height: 14px !important;
  }

  .print-signature-name {
    font-size: 10px !important;
    font-weight: 700 !important;
    color: #111827 !important;
  }

  .print-signature-role {
    font-size: 8.5px !important;
    color: #6b7280 !important;
  }

  /* ==========================================================================
     RELATÓRIO FILTRADO EXECUTIVO & HISTÓRICO DE DEPÓSITOS — A4 VERTICAL
     ========================================================================== */
  body.modo-impressao-relatorio #relatorioImpressaoDocumento,
  body.modo-impressao-depositos #historicoDepositosImpressaoDocumento {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    max-width: 194mm !important;
    height: auto !important;
    min-height: 260mm !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    page-break-before: avoid !important;
    page-break-after: avoid !important;
    break-before: avoid !important;
    break-after: avoid !important;
  }

  .rep-meta-bar {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: space-between !important;
    align-items: center !important;
    background: #f1f5f9 !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 4px !important;
    padding: 5px 10px !important;
    margin-bottom: 7px !important;
    gap: 8px !important;
  }

  .rep-meta-item {
    display: flex !important;
    align-items: center !important;
    gap: 5px !important;
  }

  .rep-meta-label {
    font-size: 9px !important;
    font-weight: 700 !important;
    color: #475569 !important;
    text-transform: uppercase !important;
  }

  .rep-meta-val {
    font-size: 10.5px !important;
    font-weight: 600 !important;
    color: #0f172a !important;
  }

  .rep-kpi-bar {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 7px !important;
    margin-bottom: 7px !important;
  }

  .rep-kpi-item {
    border: 1px solid #cbd5e1 !important;
    border-radius: 4px !important;
    padding: 5px 8px !important;
    text-align: center !important;
    background: #ffffff !important;
  }

  .rep-kpi-destaque {
    background: #eff6ff !important;
    border-color: #3b82f6 !important;
  }

  .rep-kpi-title {
    font-size: 8.5px !important;
    font-weight: 700 !important;
    color: #475569 !important;
    text-transform: uppercase !important;
    line-height: 1.15 !important;
  }

  .rep-kpi-number {
    font-size: 13.5px !important;
    font-weight: 800 !important;
    color: #1e3a8a !important;
    font-variant-numeric: tabular-nums !important;
    margin-top: 2px !important;
  }

  .rep-main-table-container {
    width: 100% !important;
    margin-bottom: 7px !important;
    flex: 1 !important;
  }

  .rep-table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 10px !important;
    line-height: 1.35 !important;
  }

  .rep-table thead {
    display: table-header-group !important;
  }

  .rep-table th {
    background: #1e3a8a !important;
    color: #ffffff !important;
    padding: 5px 6px !important;
    font-size: 9.5px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.02em !important;
    border: 1px solid #1e3a8a !important;
  }

  .rep-table td {
    padding: 4px 6px !important;
    border: 1px solid #cbd5e1 !important;
    vertical-align: middle !important;
    word-break: break-word !important;
    font-size: 10px !important;
  }

  .rep-table tbody tr {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .rep-table tbody tr:nth-child(even) {
    background: #f8fafc !important;
  }

  .rep-tr-total th {
    background: #e2e8f0 !important;
    color: #0f172a !important;
    font-weight: 800 !important;
    padding: 6px 8px !important;
    font-size: 11px !important;
    border: 1px solid #cbd5e1 !important;
  }
}
