:root {
  --primary: #d4a017;
  --primary-dark: #a37d12;
  --primary-light: #f8eed7;
  --secondary: #13213C;
  --light: #fafafa;
  --gray: #5c6b73;
  --dark: #1a2024;
  --border-radius: 10px;
  --box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
  --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);

  /* Cores dos Diagnósticos Padrão */
  --diagnostico-bg: #e3f2fd;
  --diagnostico-border: #0052cc;
  --diagnostico-color: #001a4d;
  --diagnostico-critico-bg: #ffcdd2;
  --diagnostico-critico-border: #c62828;
  --diagnostico-critico-color: #b71c1c;
  --diagnostico-ok-bg: #e8f5e9;
  --diagnostico-ok-border: #2e7d32;
  --diagnostico-ok-color: #1b5e20;
  --diagnostico-alerta-bg: #fff8e1;
  --diagnostico-alerta-border: #f57f17;
  --diagnostico-alerta-color: #5d3b00;
  
  --diagnostico-neutro-bg: #f8fafc;
  --diagnostico-neutro-border: #94a3b8;
  --diagnostico-neutro-color: #334155;
  --diagnostico-neutro-strong-color: #1e293b;
  
  --diagnostico-cinza-bg: #f1f5f9;
  --diagnostico-cinza-border: #64748b;
  --diagnostico-cinza-color: #334155;

  --font-primary: 'Inter', system-ui, -apple-system, sans-serif;
  --font-monospace: 'Fira Code', monospace;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: var(--font-primary);
  background: linear-gradient(145deg, #f0f4f8 0%, #dde4eb 100%);
  color: var(--dark);
  line-height: 1.7;
  min-height: 100vh;
  font-size: 16px;
  overflow-x: hidden;
}

/* Garante renderização correta para html2canvas */
body * {
  box-sizing: border-box;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

.diagnostico-container {
  background: var(--diagnostico-bg);
  border-left: 5px solid var(--diagnostico-border);
  color: var(--diagnostico-color);
  padding: 1.25rem 1.5rem;
  border-radius: var(--border-radius);
  margin-top: 1.75rem;
  font-size: 0.95rem;
  display: none;
  box-shadow: var(--box-shadow);
  transition: var(--transition);
  word-wrap: break-word;
  white-space: normal;
}


.diagnostico-container strong {
  color: var(--diagnostico-border);
  display: block;
  margin-bottom: 0.75rem;
  font-weight: 600;
}

.diagnostico-container.critico {
  background: var(--diagnostico-critico-bg);
  border-left-color: var(--diagnostico-critico-border);
  color: var(--diagnostico-critico-color);
}

.diagnostico-container.critico strong {
  color: var(--diagnostico-critico-border);
}

.diagnostico-container.ok {
  background: var(--diagnostico-ok-bg);
  border-left-color: var(--diagnostico-ok-border);
  color: var(--diagnostico-ok-color);
}

.diagnostico-container.ok strong {
  color: var(--diagnostico-ok-border);
}

.diagnostico-container.alerta {
  background: var(--diagnostico-alerta-bg);
  border-left-color: var(--diagnostico-alerta-border);
  color: var(--diagnostico-alerta-color);
}

.diagnostico-container.alerta strong {
  color: var(--diagnostico-alerta-border);
}

.diagnostico-container.cinza {
    background-color: var(--diagnostico-cinza-bg);
    border-left-color: var(--diagnostico-cinza-border);
    color: var(--diagnostico-cinza-color);
}

.diagnostico-container.cinza strong {
    color: var(--diagnostico-cinza-border);
}

.header {
  background: linear-gradient(90deg, var(--secondary) 0%, var(--primary-dark) 100%);
  padding: 15px 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  position: sticky;
  top: 0;
  z-index: 100;
  color: var(--primary-light);
}

.logo-esquerda {
  display: flex;
  align-items: center;
  flex-shrink: 0;
}

.logo-esquerda img {
  height: 60px;
  width: auto;
  transition: transform 0.3s ease;
  object-fit: contain;
  max-width: 100px;
}

.logo-esquerda img:hover {
  transform: scale(1.05);
}

.logo-direita {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
  flex-shrink: 0;
  margin-left: auto;
}

.logo-direita img {
  height: 60px;
  width: auto;
  transition: transform 0.3s ease;
  object-fit: contain;
  max-width: 180px;
}

.logo-direita img:hover {
  transform: scale(1.05);
}

.header h1 {
  font-size: 2rem;
  font-weight: 700;
  letter-spacing: -0.025em;
}

.container {
  max-width: 90%; 
  margin: 2.5rem auto;
  padding: 0 2rem;
  overflow-wrap: break-word;
}

.fade-in {
  animation: fadeIn 1s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

.form-section {
  background: var(--light);
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow);
  padding: 2.5rem;
  margin-bottom: 2.5rem;
  border-left: 6px solid var(--primary);
  transition: var(--transition);
}

.form-section:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15);
  transform: translateY(-4px);
}

.form-section h2 {
  color: var(--primary);
  margin-bottom: 2rem;
  font-size: 1.6rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}

.form-section h3 {
  margin-top: 2rem;
  color: var(--dark);
  font-size: 1.25rem;
  font-weight: 600;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid #e0e4e8;
}

.form-section h4 {
    margin-top: 1.5rem;
    color: var(--gray);
    font-size: 1.1rem;
    font-weight: 600;
}


.form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.5rem;
  margin-top: 1.5rem;
}

label {
  display: block;
  margin-bottom: 0.75rem;
  font-weight: 600;
  color: var(--dark);
}

label.inline {
  display: inline-flex;
  align-items: center;
  margin-right: 2rem;
  margin-bottom: 1rem;
  padding: 0.5rem 1rem;
  border-radius: var(--border-radius);
  border: 1px solid transparent;
  transition: var(--transition);
}

input[type="text"],
input[type="number"],
input[type="date"],
select,
textarea {
  width: 100%;
  padding: 0.9rem 1.25rem;
  border: 1px solid #e0e4e8;
  border-radius: var(--border-radius);
  margin-top: 0.5rem;
  font-family: var(--font-primary);
  font-size: 0.95rem;   
  background: #fff;
  transition: var(--transition);
}

input:focus,
textarea:focus,
select:focus { /* Adicionado select */
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 4px rgba(212, 160, 23, 0.15);
  background: #fff;
}

input[type="checkbox"] {
  margin-right: 0.75rem;
  transform: scale(1.3);
  accent-color: var(--primary);
}

.checkbox-group, .checkbox-group-single {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin: 1.25rem 0;
}

.buttons {
  display: flex;
  justify-content: center;
  gap: 1.5rem;
  margin: 3rem 0;
}

.btn {
  background: var(--primary);
  color: var(--light);
  padding: 1rem 2.5rem;
  border: none;
  border-radius: var(--border-radius);
  cursor: pointer;
  font-weight: 600;
  font-size: 1rem;
  transition: var(--transition);
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
}

.btn:hover {
  background: var(--primary-dark);
  transform: translateY(-3px);
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
}

.btn:active {
  transform: translateY(0);
}

.btn:disabled {
  background: var(--gray);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.add-more-btn {
  background: var(--primary-light);
  color: var(--primary-dark);
  border: 1px solid var(--primary);
  padding: 0.75rem 1.5rem;
  border-radius: var(--border-radius);
  cursor: pointer;
  font-weight: 600;
  margin-top: 1.25rem;
  transition: var(--transition);
}

.add-more-btn:hover {
  background: var(--primary);
  color: var(--light);
  transform: translateY(-2px);
}

.add-diagnostico-btn {
  background: transparent;
  color: var(--primary-dark);
  border: 2px dashed var(--primary);
  padding: 0.75rem 1.5rem;
  border-radius: var(--border-radius);
  cursor: pointer;
  font-weight: 600;
  margin-top: 1.5rem;
  margin-bottom: 1.5rem;
  transition: var(--transition);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  justify-content: center;
}

.add-diagnostico-btn:hover {
  background: var(--primary-light);
  border-style: solid;
  transform: translateY(-2px);
}

.loading {
  display: none;
  text-align: center;
  padding: 1.5rem;
  color: var(--primary);
  font-size: 1rem;
}

.loading i {
  animation: spin 1s linear infinite;
}

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.report {
  background: var(--light);
  padding: 2rem;
  border-radius: var(--border-radius);
  box-shadow: var(--box-shadow);
  font-size: 1rem;
  margin-top: 2rem;
  overflow-wrap: break-word;
  width: 100%;
  max-width: 100%;
  line-height: 1.7;
  color: #1a1a1a;
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  overflow: visible !important;
  height: auto !important;
  max-height: none !important;
  page-break-after: auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.report .topico-principal {
  border-bottom: 4px solid var(--primary);
  padding-bottom: 0.75rem;
  margin: 1.5rem 0 1rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--primary);
  display: flex;
  align-items: center;
  gap: 0.75rem;
  letter-spacing: 0.3px;
  width: 95%;
  max-width: 95%;
}

.report .topico-principal:first-child {
  margin-top: 0;
}

.report .subtopico {
  border-top: 2px solid var(--dark);
  border-bottom: 2px solid var(--dark);
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  margin: 1.25rem 0 0.75rem;
  font-size: 1.15rem;
  font-weight: 700;
  color: #000;
  letter-spacing: 0.2px;
  width: 95%;
  max-width: 95%;
}

.report .item-relatorio {
  margin: 0.75rem auto;
  padding-left: 0.75rem;
  width: 95%;
  max-width: 95%;
  text-align: left;
}

.report .destaque {
  font-weight: 700;
  color: var(--dark);
}

.report .box {
  background: var(--primary-light);
  border-left: 5px solid var(--primary);
  padding: 1.5rem;
  border-radius: var(--border-radius);
  margin: 1.25rem auto;
  font-style: italic;
  box-shadow: var(--box-shadow);
  width: 95%;
  max-width: 95%;
  box-sizing: border-box;
  text-align: left;
}

.report .diagnostico-item,
.report .orientacao-complementar,
.report .acao-recomendada,
.report .diagnostico-personalizado-item {
  padding: 1rem;
  border-radius: var(--border-radius);
  margin: 0.75rem auto;
  box-shadow: var(--box-shadow);
  word-wrap: break-word;
  white-space: normal;
  overflow: visible;
  max-width: 95%;
  box-sizing: border-box;
}

.report .diagnostico-item,
.report .orientacao-complementar,
.report .acao-recomendada {
  background: var(--diagnostico-bg);
  border-left: 5px solid var(--diagnostico-border);
  color: var(--diagnostico-color);
}

.report .diagnostico-item strong,
.report .orientacao-complementar strong,
.report .acao-recomendada strong {
  color: var(--diagnostico-border);
  font-weight: 700;
  display: block;
  margin-bottom: 0.5rem;
}

.report .observacao-estrategica {
  background: var(--diagnostico-neutro-bg);
  border-left: 5px solid var(--diagnostico-neutro-border);
  color: var(--diagnostico-neutro-color);
  padding: 1rem;
  border-radius: var(--border-radius);
  margin: 0.75rem auto;
  box-shadow: var(--box-shadow);
  max-width: 95%;
  box-sizing: border-box;
}

.report .observacao-estrategica strong {
  color: var(--diagnostico-neutro-strong-color);
  font-weight: 600;
}

.report .diagnostico-item.critico {
  background: var(--diagnostico-critico-bg);
  border-left-color: var(--diagnostico-critico-border);
  color: var(--diagnostico-critico-color);
}

.report .diagnostico-item.critico strong {
  color: var(--diagnostico-critico-border);
}

.report .diagnostico-item.ok {
  background: var(--diagnostico-ok-bg);
  border-left-color: var(--diagnostico-ok-border);
  color: var(--diagnostico-ok-color);
}

.report .diagnostico-item.ok strong {
  color: var(--diagnostico-ok-border);
}

.report .diagnostico-item.alerta {
  background: var(--diagnostico-alerta-bg);
  border-left-color: var(--diagnostico-alerta-border);
  color: var(--diagnostico-alerta-color);
}

.report .diagnostico-item.alerta strong {
  color: var(--diagnostico-alerta-border);
}

/* ======================================= */
/* ===           MODIFICAÇÃO           === */
/* ======================================= */
/* Bloco "Observações" - Fundo alterado para #F9FAFB */
.report .output-robert {
  background: #F8FAFC;
  border-left: 5px solid var(--primary);
  color: var(--secondary);
  padding: 1rem;
  border-radius: var(--border-radius);
  margin: 0.75rem auto;
  box-shadow: var(--box-shadow);
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  max-width: 95%;
  box-sizing: border-box;
}
/* ======================================= */
/* ===         FIM MODIFICAÇÃO         === */
/* ======================================= */

.report .output-robert i {
  font-size: 1.5rem;
  color: var(--primary);
  margin-top: 0.2rem;
}

/* ======================================= */
/* ===           MODIFICAÇÃO           === */
/* ======================================= */
/* Título (strong) - ajustado para ficar inline com o texto */
.report .output-robert strong {
  color: var(--primary-dark);
  /* display: block; */ /* REMOVIDO */
  /* margin-bottom: 0.5rem; */ /* REMOVIDO */
  margin-right: 0.5rem; /* ADICIONADO */
  font-weight: 700;
}
/* ======================================= */
/* ===         FIM MODIFICAÇÃO         === */
/* ======================================= */


/* ======================================= */
/* ===           MODIFICAÇÃO           === */
/* ======================================= */
/* "Diagnóstico Personalizado" (Relatório) - Cor MANTIDA como neutra/cinza */
.report .diagnostico-personalizado-item {
  background: var(--diagnostico-neutro-bg);
  border-left: 5px solid var(--diagnostico-neutro-border);
  color: var(--diagnostico-neutro-color);
}

/* Título (strong) - ajustado para ficar inline com o texto */
.report .diagnostico-personalizado-item strong {
  color: var(--diagnostico-neutro-strong-color);
  /* display: block; */ /* REMOVIDO para ficar inline */
  /* margin-bottom: 0.75rem; */ /* REMOVIDO para ficar inline */
  margin-right: 0.5rem; /* Adicionado espaçamento */
  font-weight: 600;
}
/* ======================================= */
/* ===         FIM MODIFICAÇÃO         === */
/* ======================================= */

.output-container {
  margin: 0;
  padding: 1.5rem;
  background: #f9fafb;
  border-radius: var(--border-radius);
  border: 1px solid #e0e4e8;
  box-shadow: var(--box-shadow);
}

.output-container h3 {
  color: var(--primary);
  margin-bottom: 0.75rem;
  font-size: 1.25rem;
  font-weight: 600;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.toggle-obs-btn {
  background: var(--primary);
  color: white;
  border: none;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  cursor: pointer;
  font-weight: bold;
  font-size: 16px;
  line-height: 24px;
  text-align: center;
  transition: var(--transition);
}

.toggle-obs-btn:hover {
  background: var(--primary-dark);
  transform: scale(1.1);
}

.output-textarea {
  width: 100%;
  min-height: 100px;
  padding: 1rem;
  border: 1px solid #e0e4e8;
  border-radius: var(--border-radius);
  font-family: var(--font-monospace);
  font-size: 0.95rem;
  resize: vertical;
  background: #fff;
  transition: display 0.3s ease;
}

.capa {
  text-align: center;
  margin: 0 auto 4rem;
  padding-bottom: 3rem;
  border-bottom: 4px solid var(--secondary);
  width: 95%;
  max-width: 95%;
  box-sizing: border-box;
}

.capa .logo-capa {
  max-width: 160px;
  margin-bottom: 2rem;
  transition: transform 0.3s ease;
}

.capa .logo-capa:hover {
  transform: scale(1.05);
}

.capa h1 {
  font-size: 2.5rem;
  color: var(--secondary);
  margin-bottom: 0.75rem;
  font-weight: 800;
}

.capa h2 {
  font-size: 1.75rem;
  color: var(--primary);
  margin-bottom: 1.25rem;
  font-weight: 600;
}

.capa .data {
  color: var(--gray);
  font-size: 1.1rem;
  font-weight: 400;
}

.rodape {
  background: var(--secondary);
  color: var(--primary-light);
  padding: 2rem;
  text-align: center;
  margin-top: 4rem;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1);
}

.rodape img {
  max-height: 50px;
  margin-bottom: 1rem;
}

table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  margin: 1.5rem 0;
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: var(--box-shadow);
}

table th, table td {
  border: 1px solid #e0e4e8;
  padding: 0.75rem 1rem;
  text-align: left;
  vertical-align: middle;
}

table th {
  background: #f0f4f8;
  font-weight: 600;
  color: var(--dark);
}

.status-positivo { color: var(--diagnostico-ok-border); font-weight: 600; }
.status-negativo { color: var(--diagnostico-critico-border); font-weight: 600; }

.diagnostico-personalizado {
  position: relative;
  padding: 1.25rem 1.5rem;
  border-radius: var(--border-radius);
  margin-top: 1.75rem;
  font-size: 0.95rem;
  box-shadow: var(--box-shadow);
  transition: var(--transition);
}

.diagnostico-personalizado.edit-mode {
  background: var(--diagnostico-alerta-bg);
  border-left: 5px solid var(--diagnostico-alerta-border);
}

.diagnostico-personalizado:not(.edit-mode) {
  background: var(--diagnostico-neutro-bg);
  border-left: 5px solid var(--diagnostico-neutro-border);
  color: var(--diagnostico-neutro-color);
}

.diagnostico-personalizado:not(.edit-mode) strong {
  color: var(--diagnostico-neutro-strong-color);
  display: block;
  margin-bottom: 0.75rem;
  font-weight: 600;
}

.diagnostico-personalizado.edit-mode .display-container { display: none; }
.diagnostico-personalizado:not(.edit-mode) .edit-container { display: none; }

.diagnostico-personalizado .display-container {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}

.diagnostico-personalizado .conteudo-final {
  flex-grow: 1;
  word-wrap: break-word;
  white-space: normal;
}

.diagnostico-personalizado .botoes-acao {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

.diagnostico-personalizado .confirmar-diagnostico-btn {
    border: none;
    padding: 0.6rem 1.5rem;
    border-radius: var(--border-radius);
    cursor: pointer;
    font-weight: 600;
    transition: var(--transition);
    align-self: flex-end;
    margin-top: 1rem;
    background: var(--primary);
    color: var(--light);
}
.diagnostico-personalizado .confirmar-diagnostico-btn:hover { background: var(--primary-dark); }


.diagnostico-personalizado .editar-diagnostico-btn,
.diagnostico-personalizado .remover-diagnostico-btn {
    background: transparent;
    border: none;
    cursor: pointer;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1rem;
    transition: var(--transition);
}

.diagnostico-personalizado .editar-diagnostico-btn {
    color: var(--gray);
}
.diagnostico-personalizado .editar-diagnostico-btn:hover {
    background-color: #e2e8f0;
    color: var(--dark);
}

.diagnostico-personalizado .remover-diagnostico-btn {
    color: var(--diagnostico-critico-border);
}
.diagnostico-personalizado .remover-diagnostico-btn:hover {
    background-color: var(--diagnostico-critico-bg);
    color: #991b1b;
}

/* ESTILOS PARA CHECKBOX SELECIONADO BASEADO NO DIAGNÓSTICO */
.selecionado-critico {
  background-color: var(--diagnostico-critico-bg);
  border: 1px solid var(--diagnostico-critico-border);
  color: var(--diagnostico-critico-color);
  font-weight: 700;
}

.selecionado-alerta {
  background-color: var(--diagnostico-alerta-bg);
  border: 1px solid var(--diagnostico-alerta-border);
  color: var(--diagnostico-alerta-color);
  font-weight: 700;
}

.selecionado-ok {
  background-color: var(--diagnostico-ok-bg);
  border: 1px solid var(--diagnostico-ok-border);
  color: var(--diagnostico-ok-color);
  font-weight: 700;
}

/* Estilo para diagnóstico personalizado selecionado na seção 3.1 */
.diagnostico-personalizado.selecionado {
  background: var(--diagnostico-critico-bg);
  border-left: 5px solid var(--diagnostico-critico-border);
  color: var(--diagnostico-critico-color);
}

.diagnostico-personalizado.selecionado strong {
  color: var(--diagnostico-critico-border);
}


table input[type="text"],
table input[type="number"],
table select {
  min-width: 150px;
  width: 100%;
}

tr.row-ok { background-color: var(--diagnostico-ok-bg); }
tr.row-alerta { background-color: var(--diagnostico-alerta-bg); }
tr.row-critico { background-color: var(--diagnostico-critico-bg); }

#faturamentoTBody tr, #cartoesTBody tr, #chequeTBody tr, #saldoTBody tr, #scoreTBody tr {
  transition: background-color 0.4s ease;
}

.diagnostico-row-faturamento td {
  padding-top: 0;
  padding-bottom: 1.25rem;
  border-top: none;
}

.diagnostico-row-faturamento .diagnostico-item {
  margin-top: 0;
  margin-bottom: 0;
  width: 100%;
}

/* *** MODIFICADO ***: Removido 'display: block' e 'width: 100%', adicionado 'flex-grow: 1' */
.diagnostico-banco,
.diagnostico-cartao,
.diagnostico-cheque {
  /* display: block; */
  /* width: 100%; */
  flex-grow: 1; 
  min-height: 24px;
  padding: 0.5rem;
  white-space: normal;
  word-wrap: break-word;
  line-height: 1.5;
  font-size: 0.9rem;
}

/* *** NOVO ***: Cores para diagnósticos de banco (faturamento, cartão, cheque) */
.diagnostico-banco.ok,
.diagnostico-cartao.ok,
.diagnostico-cheque.ok {
  background-color: var(--diagnostico-ok-bg);
  border-left: 3px solid var(--diagnostico-ok-border);
  color: var(--diagnostico-ok-color);
  border-radius: 4px;
  font-weight: 500;
}

.diagnostico-banco.alerta,
.diagnostico-cartao.alerta,
.diagnostico-cheque.alerta {
  background-color: var(--diagnostico-alerta-bg);
  border-left: 3px solid var(--diagnostico-alerta-border);
  color: var(--diagnostico-alerta-color);
  border-radius: 4px;
  font-weight: 500;
}

.diagnostico-banco.critico,
.diagnostico-cartao.critico,
.diagnostico-cheque.critico {
  background-color: var(--diagnostico-critico-bg);
  border-left: 3px solid var(--diagnostico-critico-border);
  color: var(--diagnostico-critico-color);
  border-radius: 4px;
  font-weight: 500;
}

.socio-row {
  grid-template-columns: 1fr 1fr;
  align-items: start;
  margin-top: 1rem;
}

#sociosContainer .form-grid.socio-row {
    margin-top: 1rem;
}

#sociosContainer .form-grid.socio-row:first-child {
    margin-top: 0;
}

.cpf-wrapper {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.cpf-wrapper label {
    flex-grow: 1;
    margin-bottom: 0;
}

.remover-socio-btn {
    background: var(--diagnostico-critico-bg);
    color: var(--diagnostico-critico-border);
    border: 1px solid var(--diagnostico-critico-border);
    width: 42px;
    height: 42px;
    border-radius: 50%;
    cursor: pointer;
    font-weight: 700;
    font-size: 20px;
    line-height: 1;
    transition: var(--transition);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-bottom: 3px;
    margin-bottom: 0.1rem;
}

.remover-socio-btn:hover {
    background: var(--diagnostico-critico-border);
    color: white;
    transform: scale(1.05);
}

.diagnostico-content-wrapper {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
}

.diagnostico-text {
  flex-grow: 1;
}

/* ======================================= */
/* ===           MODIFICAÇÃO           === */
/* ======================================= */
.diagnostico-checkbox-wrapper {
  display: flex;
  flex-shrink: 0;
  padding-top: 4px;
  color: var(--dark);
}

.diagnostico-checkbox-wrapper label {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  cursor: pointer;
  font-weight: 500;
  font-size: 0.9rem;
  margin-bottom: 0; 
  padding: 0; /* Reset padding for this specific label */
  border: none; /* Reset border */
  background-color: transparent; /* Reset background */
}

.diagnostico-checkbox-wrapper input[type="checkbox"] {
  transform: scale(1.2);
}


/* Aplica estas regras para impressão E para o modo de preparação do PDF */
@media print {
  /* Esconde tudo que está no body (header, forms, botões, etc.) */
  body > * {
    display: none !important;
    visibility: hidden !important;
  }
  
  /* Mostra APENAS o #mainContent e seus pais */
  body > #mainContent {
    display: block !important;
    visibility: visible !important;
  }
  
  #mainContent > .container {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    overflow: visible !important;
  }
  
  /* Mostra o relatório e seu conteúdo */
  .container > .report,
  .report * {
    display: block !important;
    visibility: visible !important;
  }
  
  /* Restaura o display correto de tabelas (que foi quebrado pelo "display: block" acima) */
  .report table { display: table !important; }
  .report thead { display: table-header-group !important; }
  .report tbody { display: table-row-group !important; }
  .report tr { display: table-row !important; }
  .report td, .report th { display: table-cell !important; }
  .report .diagnostico-cell-wrapper { display: flex !important; }
  .report .item-relatorio { display: block !important; }

  /* Garante um fundo branco sólido para o html2canvas */
  body, .report {
     background: #ffffff !important;
  }
  
  /* Remove sombras e bordas do relatório */
  .report {
    box-shadow: none !important;
    border: none !important;
  }

  /* Garante que as cores de fundo dos diagnósticos apareçam no PDF */
  .report .diagnostico-item.critico, 
  .report tr.row-critico { background-color: var(--diagnostico-critico-bg) !important; }
  .report .diagnostico-item.alerta,
  .report tr.row-alerta { background-color: var(--diagnostico-alerta-bg) !important; }
  .report .diagnostico-item.ok,
  .report tr.row-ok { background-color: var(--diagnostico-ok-bg) !important; }
  .report .observacao-estrategica { background: var(--diagnostico-neutro-bg) !important; }
  .report .output-robert { background: #F8FAFC !important; }
  
  /* Força a impressão de cores e fundos */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
  .report {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    box-shadow: none;
    padding: 1rem;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    text-rendering: optimizeLegibility;
    overflow: visible !important;
    height: auto !important;
    max-height: none !important;
  }
  
  /* Garante que nenhum elemento tenha altura limitada */
  .report * {
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
  }
  
  /* Melhor renderização de texto */
  * {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }
  
  /* ======================================= */
  /* ===    PROTEÇÃO DE CORTES - PDF   === */
  /* ======================================= */
  /* NENHUMA INFORMAÇÃO DEVE FICAR NA DOBRA */
  
  /* Remove alturas fixas que causam corte */
  .report * {
    max-height: none !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }
  
  /* Container principal - garantir margens internas */
  .report, #relatorio {
    padding: 10px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
  }
  
  /* Evita que elementos sejam cortados - PROTEÇÃO TOTAL */
  .report .topico-principal,
  .report .subtopico,
  .report .item-relatorio,
  .report .diagnostico-item,
  .report .diagnostico-container,
  .report .observacao-estrategica,
  .report .output-robert,
  .report .output-container,
  .report table,
  .report table tbody tr,
  .report .form-section,
  .report .checkbox-group {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    overflow: visible !important;
    margin-bottom: 10px !important;
  }
  
  /* Proteção especial para diagnósticos */
  .diagnostico-container,
  .report .diagnostico-container {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 8px 0 !important;
    padding: 8px !important;
  }
  
  /* Evita títulos órfãos no fim da página */
  .report .topico-principal,
  .report .subtopico,
  .report h1,
  .report h2,
  .report h3,
  .report h4,
  .report h5,
  .report h6 {
    page-break-after: avoid !important;
    break-after: avoid !important;
    page-break-inside: avoid !important;
    margin-bottom: 0.75rem !important;
    orphans: 3 !important;
    widows: 3 !important;
  }
  
  /* Força quebra de página apropriada */
  .report .topico-principal {
    page-break-before: auto;
    margin-top: 1rem;
    margin-bottom: 0.75rem;
  }
  
  /* Proteção de tabelas - NUNCA CORTAR */
  .report table {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0.75rem auto !important;
    border-collapse: collapse !important;
    table-layout: auto !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    box-sizing: border-box !important;
  }
  
  .report table thead {
    display: table-header-group !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  
  .report table tbody {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  
  .report table tr {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    page-break-after: auto;
  }
  
  .report table td,
  .report table th {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    overflow-wrap: break-word !important;
    word-wrap: break-word !important;
    word-break: break-word !important;
    vertical-align: top;
    padding: 6px 8px !important;
    box-sizing: border-box !important;
  }
  
  /* Evita linhas órfãs e viúvas - mais proteção */
  .report * {
    orphans: 3 !important;
    widows: 3 !important;
  }
  
  .report p,
  .report li {
    orphans: 3 !important;
    widows: 3 !important;
    page-break-inside: avoid !important;
  }
  
  .report .output-textarea,
  .report textarea {
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }
  
  /* Imagens - nunca cortar */
  .report img {
    page-break-inside: avoid !important;
    break-inside: avoid !important;
    max-width: 100% !important;
  }
  
  /* ======================================= */
  /* ===         FIM PROTEÇÃO         === */
  /* ======================================= */
}

/* Aplica as mesmas regras de impressão quando a classe preparando-pdf estiver ativa */
body.preparando-pdf {
  /* Esconde tudo que está no body (header, forms, botões, etc.) */
  body > * {
    display: none !important;
    visibility: hidden !important;
  }
  
  /* Mostra APENAS o #mainContent e seus pais */
  body > #mainContent {
    display: block !important;
    visibility: visible !important;
  }
  
  #mainContent > .container {
    display: block !important;
    visibility: visible !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    overflow: visible !important;
  }
  
  /* Mostra o relatório e seu conteúdo */
  .container > .report,
  .report * {
    display: block !important;
    visibility: visible !important;
  }
  
  /* Restaura o display correto de tabelas (que foi quebrado pelo "display: block" acima) */
  .report table { display: table !important; }
  .report thead { display: table-header-group !important; }
  .report tbody { display: table-row-group !important; }
  .report tr { display: table-row !important; }
  .report td, .report th { display: table-cell !important; }
  .report .diagnostico-cell-wrapper { display: flex !important; }
  .report .item-relatorio { display: block !important; }

  /* Garante um fundo branco sólido para o html2canvas */
  body, .report {
     background: #ffffff !important;
  }
  
  /* Remove sombras e bordas do relatório */
  .report {
    box-shadow: none !important;
    border: none !important;
  }

  /* Garante que as cores de fundo dos diagnósticos apareçam no PDF */
  .report .diagnostico-item.critico, 
  .report tr.row-critico { background-color: var(--diagnostico-critico-bg) !important; }
  .report .diagnostico-item.alerta,
  .report tr.row-alerta { background-color: var(--diagnostico-alerta-bg) !important; }
  .report .diagnostico-item.ok,
  .report tr.row-ok { background-color: var(--diagnostico-ok-bg) !important; }
  .report .observacao-estrategica { background: var(--diagnostico-neutro-bg) !important; }
  .report .output-robert { background: #F8FAFC !important; }
  
  /* Força a impressão de cores e fundos */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}

@media (max-width: 768px) {
  .container {
    padding: 0 1rem;
    margin: 1.5rem auto;
    width: 100%;
    max-width: 100%;
  }

  .form-section {
    padding: 1.5rem 1rem;
  }

  .header h1 { 
    font-size: 1.5rem; 
  }

  .form-grid,
  .socio-row {
    grid-template-columns: 1fr;
  }

  .form-section h2 {
    font-size: 1.4rem;
  }

  .form-section h3 {
    font-size: 1.15rem;
  }
  
  .cpf-wrapper {
      align-items: flex-end;
  }

  .remover-socio-btn {
      margin-bottom: 0;
  }

  .buttons { 
    flex-direction: column; 
    align-items: center; 
    gap: 1rem; 
  }

  .btn { 
    width: 100%; 
    max-width: 350px; 
    padding: 0.9rem 1.5rem;
  }

  .checkbox-group, .checkbox-group-single { 
    flex-direction: column; 
    gap: 0.75rem; 
    align-items: flex-start;
  }
  
  label.inline {
    margin-right: 0;
  }

  /* MODIFICADO: Estilos de Tabela Responsiva */
  .form-section table thead, .report table thead {
    display: none;
  }

  .form-section table, .report table,
  .form-section table tbody, .report table tbody,
  .form-section table tr, .report table tr,
  .form-section table td, .report table td {
    display: block;
    width: 100%;
  }
  
  .form-section table tr, .report table tr {
    margin-bottom: 1.5rem;
    border: 1px solid #e0e4e8;
    border-radius: var(--border-radius);
    padding: 1rem;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
  }
  
  .form-section table td, .report table td {
    border: none;
    border-bottom: 1px dashed #e0e4e8;
    padding: 0.75rem 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-align: right;
  }

  .form-section table tr td:last-child, .report table tr td:last-child {
    border-bottom: none; 
  }
  
  .form-section table td:before, .report table td:before {
    content: attr(data-label);
    font-weight: 600;
    text-align: left; 
    padding-right: 1rem;
    color: var(--dark);
  }
  
  .form-section table td input,
  .form-section table td select,
  .form-section table td span,
  .form-section table td .checkbox-group {
    text-align: left;
    max-width: 60%; /* Impede que o conteúdo empurre o label */
  }

  /* *** NOVO ***: Ajuste responsivo para o toggle de score */
  .form-section table td .score-toggle-group {
    max-width: 60%;
    text-align: left;
  }
  
  #faturamentoTBody td[data-label="Comprovação"], 
  .report table td[data-label="Comprovação"] {
    flex-direction: column;
    align-items: flex-start;
  }
  #faturamentoTBody td[data-label="Comprovação"] .checkbox-group,
  .report table td[data-label="Comprovação"] .checkbox-group {
    max-width: 100%;
  }
  
  .report {
    padding: 1.5rem 1rem;
  }

  .report .topico-principal { 
    font-size: 1.4rem; 
  }

  .report .subtopico { 
    font-size: 1.2rem; 
  }
  
  .capa h1 {
    font-size: 2rem;
  }
  
  .capa h2 {
    font-size: 1.5rem;
  }
}

/* NOVOS ESTILOS PARA OS CAMPOS 'OUTROS' */
.outra-container {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  margin-left: 0.75rem;
}

.outra-container input[type="text"] {
  width: auto;
  flex-grow: 1;
  margin-top: 0;
}

.outra-container .btn-ok {
  background: var(--primary);
  color: var(--light);
  border: none;
  padding: 0.6rem 1.2rem;
  border-radius: var(--border-radius);
  cursor: pointer;
  font-weight: 600;
  transition: var(--transition);
  height: 44px; /* Alinha com a altura do input */
}

.outra-container .btn-ok:hover {
  background: var(--primary-dark);
}

.outra-container-table {
    display: flex;
    width: 100%;
    gap: 0.5rem;
    margin-top: 0.5rem;
}

.outra-container-table input[type="text"] {
    margin-top: 0;
}

.outra-container-table .btn-ok-table {
    background: var(--primary);
    color: var(--light);
    border: none;
    padding: 0.5rem 1rem;
    border-radius: var(--border-radius);
    cursor: pointer;
    font-weight: 600;
    transition: var(--transition);
}

/* *** NOVOS ESTILOS ***: Para o wrapper e botão de remover na tabela de faturamento */
.diagnostico-cell-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 10px;
}

.remover-linha-btn {
  background: var(--diagnostico-critico-bg);
  color: var(--diagnostico-critico-border);
  border: 1px solid var(--diagnostico-critico-border);
  width: 28px;
  height: 28px;
  border-radius: 50%;
  cursor: pointer;
  font-weight: 700;
  font-size: 16px;
  line-height: 1;
  transition: var(--transition);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 2px;
}

.remover-linha-btn:hover {
  background: var(--diagnostico-critico-border);
  color: white;
  transform: scale(1.05);
}

@media (max-width: 768px) {
  .diagnostico-cell-wrapper {
      max-width: 60%;
      text-align: left;
  }
}

/* Adicionado para o status 'Regular' (amarelo) no diagnóstico de score */
.status-alerta {
  color: var(--diagnostico-alerta-border);
  font-weight: 600;
}

/* *** NOVOS ESTILOS ***: Para o header da seção de rating dinâmico */
.rating-header-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.rating-header-wrapper h4 {
  margin-bottom: 0.5rem; /* Manter consistência */
}

/* Ajusta o botão de remover na seção de rating */
.rating-socio-dynamic .remover-linha-btn {
    margin-bottom: 0.5rem; /* Alinha com o h4 */
}

/* *** NOVOS ESTILOS ***: Para o toggle Sim/Não na tabela de Score */
.score-toggle-group {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 0;
}

.score-toggle-group label.inline {
    margin-bottom: 0;
    margin-right: 0;
    width: 100%;
}

.score-input-wrapper {
    display: none;
    margin-left: 0.5rem;
    margin-top: 0;
}

.score-input-wrapper input[type="number"] {
    margin-top: 0;
    padding: 0.6rem 0.8rem;
    max-width: 120px;
}

/* *** NOVO ***: Estilo para linha de score não monitorada (fundo vermelho) */
#scoreTBody tr.score-nao-monitora {
    background-color: #ffebee;
    border-left: 5px solid #c62828;
}

#scoreTBody tr.score-nao-monitora td {
    color: #6b1b20;
}

/* ======================================= */
/* ===  CONTROLE DE QUEBRAS DE PÁGINA  === */
/* ======================================= */

/* Classes e estilos para otimizar quebras de página no PDF */

/* Classe explícita de quebra antes */
.pagebreak-before {
  page-break-before: always;
  break-before: page;
}

/* Classe explícita de quebra depois */
.pagebreak-after {
  page-break-after: always;
  break-after: page;
}

/* Evita quebra de página DENTRO de seções importantes */
.report .topico-principal,
.report .subtopico,
.report .item-relatorio,
.report .diagnostico-item,
.report .orientacao-complementar,
.report .acao-recomendada,
.report .diagnostico-personalizado-item,
.report .observacao-estrategica,
.report .output-robert,
.report .box,
.report {
  width: 100%;
  max-width: 100%;
  overflow: visible !important;
}

.report table,
.report tr,
.report h1, 
.report h2, 
.report h3, 
.report h4 {
   page-break-inside: avoid;
   break-inside: avoid;
}

.report .topico-principal,
.report .subtopico,
.report .secao-titulo-relatorio,
.report h1, 
.report h2, 
.report h3, 
.report h4 {
   page-break-after: avoid;
   break-after: avoid;
}

.report .topico-principal {
   page-break-before: auto;
   margin-top: 1rem;
}

.report > *:first-child {
   page-break-before: avoid;
   break-before: avoid;
}

.report .diagnostico-item,
.report .item-relatorio {
  page-break-inside: avoid;
  break-inside: avoid;
  overflow: visible;
}

.report h4,
.report h5,
.report h6 {
  margin: 1rem auto 0.5rem;
  width: 95%;
  max-width: 95%;
  text-align: left;
  page-break-inside: avoid;
  break-inside: avoid;
}

.report table {
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
  overflow: visible;
}

.report table td,
.report table th {
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Melhora o comportamento de divs que contêm múltiplos elementos */
.report .diagnostico-item + .observacao-estrategica,
.report .item-relatorio + .diagnostico-item {
   page-break-before: avoid;
   break-before: avoid;
}

/* ======================================= */
/* ===        FIM CONTROLE QUEBRAS     === */
/* ======================================= */

/* ======================================= */
/* ===      TELA DE LOGIN              === */
/* ======================================= */

.login-screen {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, var(--secondary) 0%, var(--primary-dark) 100%);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 9999;
  opacity: 1;
  visibility: visible;
  transition: opacity 0.5s ease, visibility 0.5s ease;
}

.login-screen.hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.login-container {
  width: 100%;
  max-width: 450px;
  padding: 20px;
}

.login-box {
  background: white;
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  padding: 50px 40px;
  animation: slideUp 0.6s cubic-bezier(0.34, 1.56, 0.64, 1);
}

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

.login-header {
  text-align: center;
  margin-bottom: 40px;
}

.login-header h1 {
  color: var(--secondary);
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 8px;
}

.login-header p {
  color: var(--gray);
  font-size: 14px;
  font-weight: 400;
}

#loginForm {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.form-group label {
  font-weight: 600;
  color: var(--secondary);
  font-size: 14px;
}

.form-group input {
  padding: 12px 16px;
  border: 2px solid #e0e0e0;
  border-radius: 10px;
  font-size: 16px;
  font-family: var(--font-primary);
  transition: all 0.3s ease;
  background-color: var(--light);
}

.form-group input:focus {
  outline: none;
  border-color: var(--primary);
  background-color: white;
  box-shadow: 0 0 0 3px rgba(212, 160, 23, 0.1);
}

.form-group input::placeholder {
  color: #999;
}

.login-btn {
  padding: 14px 20px;
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  color: white;
  border: none;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  margin-top: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.login-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 25px rgba(212, 160, 23, 0.3);
}

.login-btn:active {
  transform: translateY(0);
}

.login-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

.login-error {
  color: #d32f2f;
  font-size: 14px;
  text-align: center;
  min-height: 20px;
  animation: shake 0.5s ease;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-10px); }
  75% { transform: translateX(10px); }
}

.login-footer {
  text-align: center;
  margin-top: 30px;
  padding-top: 20px;
  border-top: 1px solid #e0e0e0;
}

.login-footer p {
  color: var(--gray);
  font-size: 12px;
}

.main-content {
  transition: opacity 0.5s ease;
}

.main-content.hidden {
  display: none;
}

.logout-btn {
  background: linear-gradient(135deg, #d32f2f 0%, #b71c1c 100%);
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  transition: all 0.3s ease;
  white-space: nowrap;
  flex-shrink: 0;
}

.logout-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(211, 47, 47, 0.3);
}

/* Responsivo */
@media (max-width: 768px) {
  .header {
    padding: 12px 20px;
  }

  .logo-esquerda img {
    height: 50px;
    max-width: 70px;
  }

  .logo-direita {
    gap: 15px;
  }

  .logo-direita img {
    height: 50px;
    max-width: 140px;
  }

  .logout-btn {
    padding: 8px 14px;
    font-size: 12px;
  }
}

@media (max-width: 480px) {
  .header {
    padding: 10px 15px;
    gap: 15px;
    flex-wrap: wrap;
  }

  .logo-esquerda {
    width: 100%;
    justify-content: center;
    margin-bottom: 8px;
  }

  .logo-esquerda img {
    height: 40px;
    max-width: 50px;
  }

  .logo-direita {
    width: 100%;
    gap: 10px;
  }

  .logo-direita img {
    height: 40px;
    max-width: 100px;
    flex: 1;
  }

  .logout-btn {
    padding: 6px 10px;
    font-size: 11px;
    gap: 4px;
    white-space: nowrap;
  }

  .logout-btn i {
    font-size: 12px;
  }

  .login-box {
    padding: 40px 25px;
  }

  .login-header h1 {
    font-size: 24px;
  }

  .login-container {
    padding: 15px;
  }
}

/* ================================================= */
/* ESTILOS DA SEÇÃO 3.1 - RATING (BANCOS PRIMÁRIO E SECUNDÁRIO) */
/* ================================================= */

.rating-bancos-wrapper {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
  margin: 1.5rem 0;
  padding: 1rem;
  background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
  border-radius: var(--border-radius);
}

.rating-banco-card {
  background: white;
  border: 2px solid #ddd;
  border-radius: var(--border-radius);
  padding: 1.5rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: var(--transition);
}

.rating-banco-card:hover {
  box-shadow: 0 8px 12px rgba(0, 0, 0, 0.15);
  border-color: var(--primary);
}

.rating-banco-card .card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid #eee;
}

.rating-banco-card .card-header h4 {
  font-size: 1.1rem;
  color: var(--secondary);
  margin: 0;
  font-weight: 600;
}

.rating-banco-card .banco-nome {
  font-size: 0.9rem;
  color: var(--primary);
  font-weight: 500;
  background: #f0f4f8;
  padding: 0.4rem 0.8rem;
  border-radius: 20px;
}

.rating-banco-card .card-content {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.rating-banco-card .percentual {
  font-size: 0.85rem;
  color: #666;
  font-weight: 500;
  margin: 0;
  font-style: italic;
}

.rating-banco-card .rating-selector {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.rating-banco-card .rating-selector label {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--secondary);
}

.rating-banco-card .rating-selector select {
  padding: 0.75rem;
  border: 1px solid #ccc;
  border-radius: 6px;
  font-size: 0.95rem;
  background-color: white;
  cursor: pointer;
  transition: var(--transition);
}

.rating-banco-card .rating-selector select:hover {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(212, 160, 23, 0.1);
}

.rating-banco-card .rating-selector select:focus {
  outline: none;
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(212, 160, 23, 0.2);
}

.rating-indicator {
  display: inline-block;
  font-size: 0.8rem;
  font-weight: 600;
  padding: 0.3rem 0.6rem;
  border-radius: 4px;
  margin-top: 0.3rem;
  background-color: #f0f0f0;
  color: #666;
}

.rating-indicator.ok {
  background-color: var(--diagnostico-ok-bg);
  color: var(--diagnostico-ok-color);
}

.rating-indicator.alerta {
  background-color: var(--diagnostico-alerta-bg);
  color: var(--diagnostico-alerta-color);
}

.rating-indicator.critico {
  background-color: var(--diagnostico-critico-bg);
  color: var(--diagnostico-critico-color);
}

/* ================================================= */
/* ESTILOS DE IMPRESSÃO (PDF) - OTIMIZAÇÃO DE QUEBRA DE PÁGINA */
/* ================================================= */

/* Aplica estas regras para impressão (Ctrl+P) E para o modo de preparação do PDF (html2pdf.js) */
@media print {

  /* 1. Esconde a interface (formulários, botões, header, footer) */
  body > * {
    display: none !important;
    visibility: hidden !important;
  }
}

/* Aplica as mesmas regras para o modo de preparação do PDF */
body.preparando-pdf,
body.preparando-pdf > * {
  all: revert;
}

body.preparando-pdf {
  background: #ffffff !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.preparando-pdf > * {
  display: none !important;
}

body.preparando-pdf > #mainContent {
  display: block !important;
  visibility: visible !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.preparando-pdf #mainContent > .container {
  display: block !important;
  visibility: visible !important;
  width: 100% !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: #ffffff !important;
  overflow: visible !important;
}

body.preparando-pdf #relatorio {
  display: block !important;
  visibility: visible !important;
  background: #ffffff !important;
  box-shadow: none !important;
  border: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.preparando-pdf #relatorio * {
  display: block !important;
  visibility: visible !important;
}

body.preparando-pdf #relatorio table { display: table !important; }
body.preparando-pdf #relatorio thead { display: table-header-group !important; }
body.preparando-pdf #relatorio tbody { display: table-row-group !important; }
body.preparando-pdf #relatorio tr { display: table-row !important; }
body.preparando-pdf #relatorio td, 
body.preparando-pdf #relatorio th { display: table-cell !important; }
body.preparando-pdf #relatorio .diagnostico-cell-wrapper { display: flex !important; }
body.preparando-pdf #relatorio .item-relatorio { display: block !important; }

body.preparando-pdf .diagnostico-item.critico, 
body.preparando-pdf tr.row-critico { background-color: var(--diagnostico-critico-bg) !important; }
body.preparando-pdf .diagnostico-item.alerta,
body.preparando-pdf tr.row-alerta { background-color: var(--diagnostico-alerta-bg) !important; }
body.preparando-pdf .diagnostico-item.ok,
body.preparando-pdf tr.row-ok { background-color: var(--diagnostico-ok-bg) !important; }
body.preparando-pdf .observacao-estrategica { background: var(--diagnostico-neutro-bg) !important; }
body.preparando-pdf .output-robert { background: #F8FAFC !important; }

body.preparando-pdf * {
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
}

body.preparando-pdf .diagnostico-container, 
body.preparando-pdf .item-relatorio {
  page-break-inside: avoid !important;
}

body.preparando-pdf .report-section, 
body.preparando-pdf .section-title {
  page-break-inside: avoid !important;
  page-break-after: avoid !important; 
}

body.preparando-pdf table thead, 
body.preparando-pdf table tbody,
body.preparando-pdf table tr, 
body.preparando-pdf table td, 
body.preparando-pdf table th {
  page-break-inside: avoid !important;
}

body.preparando-pdf table {
  page-break-inside: auto !important; 
  width: 100% !important;
}

body.preparando-pdf .pagebreak-before {
  page-break-before: always !important;
}

body.preparando-pdf .report-header {
  position: static !important;
}

/* ===================================== */
/* === ESTILOS SEÇÃO 3.1 - NOVO RATING === */
/* ===================================== */

.rating-bancos-section {
  margin-bottom: 25px;
  padding: 15px;
  background-color: #f9f9f9;
  border-left: 4px solid #4CAF50;
  border-radius: 4px;
}

.rating-bancos-section h4 {
  margin-top: 0;
  color: #333;
  font-size: 16px;
  margin-bottom: 12px;
}

.rating-bancos-section p {
  margin: 8px 0;
  font-size: 14px;
  line-height: 1.6;
  color: #555;
}

/* OBSOLETO: ratingEntidadesContainer removido - usar ratingBancosContainer */

.rating-entidade-card {
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  padding: 20px;
  background-color: #fafafa;
  transition: all 0.3s ease;
}

.rating-entidade-card:hover {
  border-color: #d4a017;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.rating-entidade-card[data-tipo="cnpj"] {
  background-color: #f0f7ff;
  border-left: 5px solid #0052cc;
}

.rating-entidade-card[data-tipo="socio"] {
  background-color: #f5f5f5;
  border-left: 5px solid #757575;
}

.rating-entidade-header {
  margin-bottom: 15px;
}

.rating-entidade-header h4 {
  margin: 0 0 8px 0;
  color: #333;
  font-size: 15px;
  font-weight: 600;
}

.rating-entidade-header p {
  margin: 5px 0;
  color: #666;
  font-size: 13px;
}

.rating-entidade-selecao {
  padding-top: 12px;
  border-top: 1px solid #e0e0e0;
}

.rating-entidade-selecao label {
  display: block;
  margin-bottom: 10px;
  font-size: 14px;
  cursor: pointer;
  user-select: none;
}

.rating-entidade-selecao input[type="checkbox"] {
  margin-right: 8px;
  cursor: pointer;
}

.rating-entidade-select-wrapper {
  margin-left: 20px;
  margin-top: 10px;
  padding: 10px;
  background-color: #fff;
  border-radius: 4px;
  border: 1px solid #ddd;
}

.rating-entidade-valor {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  background-color: #fff;
  cursor: pointer;
  transition: border-color 0.3s ease;
}

.rating-entidade-valor:focus {
  outline: none;
  border-color: #d4a017;
  box-shadow: 0 0 4px rgba(212, 160, 23, 0.3);
}

/* ===== ESTILOS SEÇÃO 3.1 REESTRUTURADA ===== */

.rating-bancos-section {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 20px;
}

.rating-banco-card {
  background: linear-gradient(135deg, #f8eed7 0%, #faf9f6 100%);
  border: 2px solid #d4a017;
  border-radius: 10px;
  padding: 20px;
  box-shadow: 0 4px 12px rgba(212, 160, 23, 0.15);
  transition: all 0.3s ease;
}

.rating-banco-card:hover {
  box-shadow: 0 6px 16px rgba(212, 160, 23, 0.25);
  transform: translateY(-2px);
}

.rating-banco-header {
  display: flex;
  align-items: center;
  margin-bottom: 15px;
  padding-bottom: 10px;
  border-bottom: 2px solid #d4a017;
}

.rating-banco-titulo {
  font-size: 18px;
  font-weight: 600;
  color: #13213C;
  display: flex;
  align-items: center;
  gap: 8px;
}

.rating-banco-badge {
  display: inline-block;
  background-color: #d4a017;
  color: white;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  margin-left: auto;
}

.rating-entidades-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 15px;
}

.rating-entidade-card {
  background: white;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  padding: 15px;
  transition: all 0.3s ease;
}

.rating-entidade-card:hover {
  border-color: #d4a017;
  box-shadow: 0 2px 8px rgba(212, 160, 23, 0.1);
}

.rating-entidade-label {
  display: block;
  font-weight: 600;
  color: #13213C;
  margin-bottom: 10px;
  font-size: 14px;
}

.rating-opcoes {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.rating-opcao {
  display: flex;
  align-items: center;
  gap: 8px;
}

.rating-opcao input[type="checkbox"] {
  cursor: pointer;
  width: 18px;
  height: 18px;
  accent-color: #d4a017;
}

.rating-opcao label {
  cursor: pointer;
  font-size: 14px;
  color: #334155;
  flex: 1;
  display: flex;
  align-items: center;
  gap: 5px;
}

.rating-select-wrapper {
  display: none;
  margin-left: 26px;
  margin-top: 8px;
}

.rating-select-wrapper.visible {
  display: block;
}

.rating-select-wrapper select {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #d4a017;
  border-radius: 6px;
  background-color: #fff;
  color: #13213C;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.3s ease;
}

.rating-select-wrapper select:focus {
  outline: none;
  box-shadow: 0 0 8px rgba(212, 160, 23, 0.3);
}

.rating-select-wrapper select:hover {
  border-color: #a37d12;
}

/* Estado de rating selecionado */
.rating-opcao.selecionado-sim label {
  color: #2e7d32;
  font-weight: 600;
}

.rating-opcao.selecionado-nao label {
  color: #c62828;
  font-weight: 600;
}

/* ===== ESTILOS TABELA SEÇÃO 3.1 ===== */

.rating-banco-table-container {
  margin-bottom: 30px;
}

.rating-banco-titulo {
  font-size: 16px;
  font-weight: 600;
  color: #13213C;
  margin-bottom: 15px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.rating-banco-badge {
  display: inline-block;
  background-color: #d4a017;
  color: white;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 600;
  margin-left: auto;
}

.rating-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 20px;
  background-color: white;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.rating-table thead {
  background-color: #f8eed7;
  border-bottom: 2px solid #d4a017;
}

.rating-table thead th {
  padding: 12px 16px;
  text-align: left;
  font-weight: 600;
  color: #13213C;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.rating-table tbody tr {
  border-bottom: 1px solid #e0e0e0;
  transition: background-color 0.3s ease;
}

.rating-table tbody tr:hover {
  background-color: #f9f9f9;
}

.rating-table tbody tr.row-ok {
  background-color: var(--diagnostico-ok-bg);
}

.rating-table tbody tr.row-alerta {
  background-color: var(--diagnostico-alerta-bg);
}

.rating-table tbody tr.row-critico {
  background-color: var(--diagnostico-critico-bg);
}

.rating-table td {
  padding: 14px 16px;
  font-size: 14px;
  color: #333;
  vertical-align: middle;
}

.rating-table td[data-label]::before {
  content: attr(data-label);
  display: none;
}

/* Estilos para as opções de rating dentro da tabela */
.rating-table .rating-opcoes {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.rating-table .rating-opcao {
  display: flex;
  align-items: center;
  gap: 8px;
}

.rating-table .rating-opcao input[type="checkbox"] {
  width: 16px;
  height: 16px;
  cursor: pointer;
  accent-color: #d4a017;
}

.rating-table .rating-opcao label {
  cursor: pointer;
  font-size: 13px;
  color: #334155;
  margin: 0;
}

.rating-table .rating-select-wrapper {
  margin: 0;
  padding: 0;
}

.rating-table .rating-select-wrapper select {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #d4a017;
  border-radius: 4px;
  background-color: #fff;
  color: #13213C;
  font-size: 13px;
  cursor: pointer;
  transition: all 0.3s ease;
}

.rating-table .rating-select-wrapper select:hover {
  border-color: #a37d12;
}

.rating-table .rating-select-wrapper select:focus {
  outline: none;
  box-shadow: 0 0 6px rgba(212, 160, 23, 0.4);
}

/* ===== FIM ESTILOS TABELA SEÇÃO 3.1 ===== */

/* ===== FIM ESTILOS SEÇÃO 3.1 REESTRUTURADA ===== */

