/* ============================================================== */
/* ESTILOS GERAIS DA APLICAÇÃO RTD DIGITAL - UNITED POWER         */
/* Engenharia Elétrica Especializada - Grupo Unitech              */
/* ============================================================== */

:root {
  --bg-dark: #080d1a;
  --bg-panel: #0f172a;
  --bg-card: #141f36;
  --bg-input: #0b1325;
  --border: #1e293b;
  --border-focus: #38bdf8;
  --primary: #0284c7;
  --primary-hover: #0369a1;
  --cyan: #38bdf8;
  --navy: #002b66;
  --emerald: #10b981;
  --emerald-hover: #059669;
  --amber: #f59e0b;
  --rose: #f43f5e;
  --text-main: #f8fafc;
  --text-muted: #94a3b8;
  --text-dim: #64748b;
  --font-main: 'Inter', sans-serif;
  --font-heading: 'Outfit', sans-serif;
  --font-mono: 'JetBrains Mono', monospace;
}

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

body {
  background-color: var(--bg-dark);
  color: var(--text-main);
  font-family: var(--font-main);
  line-height: 1.4;
  min-height: 100vh;
  overflow-x: hidden;
}

/* ========================================== */
/* NAVBAR SUPERIOR                            */
/* ========================================== */
.app-navbar {
  background: #09101f;
  border-bottom: 1px solid var(--border);
  padding: 10px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 60;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}

.nav-left {
  display: flex;
  align-items: center;
  gap: 14px;
}

.nav-logo {
  height: 40px;
  object-fit: contain;
  background: #ffffff;
  padding: 3px 8px;
  border-radius: 4px;
}

.nav-brand {
  display: flex;
  flex-direction: column;
}

.brand-title {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 16px;
  color: #fff;
  letter-spacing: 0.5px;
}

.brand-sub {
  font-size: 10.5px;
  color: var(--cyan);
  font-weight: 700;
  letter-spacing: 0.3px;
}

/* BOTÕES DE ETAPA DO FLUXO (ESTILO EXCEL) */
.workflow-steps-bar {
  display: flex;
  align-items: center;
  gap: 8px;
}

.step-btn {
  padding: 8px 14px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  border: 1px solid transparent;
  transition: all 0.2s ease;
  font-family: var(--font-main);
}

.btn-company {
  background: rgba(148, 163, 184, 0.12);
  border-color: rgba(148, 163, 184, 0.3);
  color: #e2e8f0;
}
.btn-company:hover {
  background: rgba(148, 163, 184, 0.25);
  border-color: #cbd5e1;
}

.btn-capa {
  background: rgba(2, 132, 199, 0.15);
  border-color: rgba(56, 189, 248, 0.4);
  color: #7dd3fc;
}
.btn-capa:hover {
  background: rgba(2, 132, 199, 0.3);
  border-color: #38bdf8;
  color: #fff;
}

.btn-relatorio {
  background: rgba(14, 165, 233, 0.15);
  border-color: rgba(14, 165, 233, 0.4);
  color: #38bdf8;
}
.btn-relatorio:hover {
  background: rgba(14, 165, 233, 0.3);
  border-color: #0284c7;
  color: #fff;
}

.btn-add-breaker {
  background: rgba(245, 158, 11, 0.15);
  border-color: rgba(245, 158, 11, 0.4);
  color: #fbbf24;
}
.btn-add-breaker:hover {
  background: rgba(245, 158, 11, 0.3);
  border-color: #f59e0b;
  color: #fff;
}

.nav-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.btn {
  padding: 8px 16px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  border: none;
  transition: all 0.2s ease;
  font-family: var(--font-main);
}

.btn-design-agent {
  background: linear-gradient(135deg, rgba(168, 85, 247, 0.2), rgba(59, 130, 246, 0.2));
  border: 1px solid #a855f7;
  color: #c084fc;
}
.btn-design-agent:hover {
  background: linear-gradient(135deg, #a855f7, #3b82f6);
  color: #fff;
  box-shadow: 0 0 15px rgba(168, 85, 247, 0.5);
}

.btn-save {
  background: rgba(2, 132, 199, 0.2);
  border: 1px solid var(--primary);
  color: var(--cyan);
}
.btn-save:hover {
  background: var(--primary);
  color: #fff;
}

.btn-excel-green {
  background: linear-gradient(135deg, #10b981, #059669);
  color: #ffffff;
  font-size: 14px;
  font-weight: 800;
  padding: 9px 20px;
  border-radius: 6px;
  box-shadow: 0 0 15px rgba(16, 185, 129, 0.4);
  border: 1px solid #34d399;
}
.btn-excel-green:hover {
  background: linear-gradient(135deg, #059669, #047857);
  box-shadow: 0 0 25px rgba(52, 211, 153, 0.6);
  transform: translateY(-1px);
}

/* PDF COMPACTO (BOTÃO ÂMBAR) */
.btn-compact-pdf {
  background: linear-gradient(135deg, rgba(245, 158, 11, 0.25), rgba(251, 191, 36, 0.15));
  border: 1px solid #f59e0b;
  color: #fbbf24;
  font-size: 13px;
  font-weight: 800;
  padding: 8px 16px;
}
.btn-compact-pdf:hover {
  background: linear-gradient(135deg, #f59e0b, #d97706);
  color: #000;
  box-shadow: 0 0 18px rgba(245, 158, 11, 0.5);
  transform: translateY(-1px);
}

/* MODO MOBILE TOGGLE */
.btn-mode-toggle {
  background: rgba(99, 102, 241, 0.15);
  border: 1px solid rgba(99, 102, 241, 0.5);
  color: #a5b4fc;
  font-size: 12px;
  font-weight: 700;
  padding: 7px 13px;
  transition: all 0.2s ease;
}
.btn-mode-toggle:hover,
body.mobile-mode-active .btn-mode-toggle {
  background: rgba(99, 102, 241, 0.4);
  border-color: #818cf8;
  color: #fff;
  box-shadow: 0 0 14px rgba(99, 102, 241, 0.4);
}
body.mobile-mode-active .btn-mode-toggle {
  background: linear-gradient(135deg, #4f46e5, #7c3aed);
  border-color: #a78bfa;
}

/* BADGE DE SCORE NO BOTÃO DO AGENTE */
.badge-agent-score {
  background: #10b981;
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  padding: 2px 6px;
  border-radius: 10px;
  min-width: 32px;
  text-align: center;
  font-family: var(--font-mono);
  transition: background 0.4s ease;
}
.badge-agent-score.score-critical { background: #ef4444; }
.badge-agent-score.score-warning  { background: #f59e0b; color: #000; }
.badge-agent-score.score-good     { background: #0284c7; }
.badge-agent-score.score-great    { background: #10b981; }

/* ============================================================ */
/* BARRA DE WIZARD MOBILE (ETAPAS DO FLUXO DE CAMPO)           */
/* ============================================================ */
.mobile-wizard-bar {
  display: none; /* mostrado via JS ou @media */
  background: #080f1d;
  border-bottom: 2px solid #1e293b;
  padding: 0;
  overflow-x: auto;
  gap: 0;
}

.m-step-btn {
  flex: 1;
  min-width: 70px;
  background: transparent;
  border: none;
  border-right: 1px solid #1e293b;
  padding: 10px 8px 8px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  font-size: 11px;
  font-weight: 700;
  color: #64748b;
  cursor: pointer;
  position: relative;
  transition: all 0.15s ease;
}
.m-step-btn i { font-size: 16px; }
.m-step-btn span { white-space: nowrap; }
.m-step-btn:last-child { border-right: none; }
.m-step-btn.active {
  color: #38bdf8;
  background: rgba(56, 189, 248, 0.08);
  border-bottom: 2px solid #38bdf8;
}
.m-step-btn:hover:not(.active) {
  color: #94a3b8;
  background: rgba(255,255,255,0.04);
}

.m-step-badge {
  position: absolute;
  top: 5px;
  right: 8px;
  background: #f59e0b;
  color: #000;
  font-size: 9px;
  font-weight: 900;
  padding: 1px 5px;
  border-radius: 8px;
  font-family: var(--font-mono);
}

/* MODO MOBILE ATIVO: AJUSTA O LAYOUT DO EDITOR */
body.mobile-mode-active .mobile-wizard-bar {
  display: flex;
}
body.mobile-mode-active .theme-selector-bar,
body.mobile-mode-active .campaign-banner-info {
  display: none;
}
body.mobile-mode-active .editor-grid {
  grid-template-columns: 1fr;
}
body.mobile-mode-active .editor-container {
  padding: 12px 14px;
  padding-bottom: 80px;
}
body.mobile-mode-active .step-section {
  display: none;
}
body.mobile-mode-active .step-section.active-step {
  display: block;
}
/* Em mobile, entradas maiores para dedo */
body.mobile-mode-active .form-group input,
body.mobile-mode-active .form-group select,
body.mobile-mode-active .input-param {
  padding: 12px 14px;
  font-size: 15px;
  min-height: 46px;
}
body.mobile-mode-active .card-body { padding: 14px 12px; }

/* ========================================== */
/* BARRA DE SELEÇÃO DOS 3 MODELOS DE DESIGN   */
/* ========================================== */
.theme-selector-bar {
  background: #0d1527;
  border-bottom: 1px solid var(--border);
  padding: 8px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.theme-bar-left {
  display: flex;
  align-items: center;
  gap: 14px;
}

.theme-bar-title {
  font-size: 11px;
  font-weight: 800;
  color: var(--cyan);
  display: flex;
  align-items: center;
  gap: 6px;
  letter-spacing: 0.5px;
}

.theme-buttons-group {
  display: flex;
  gap: 8px;
}

.theme-choice-btn {
  background: rgba(30, 41, 59, 0.7);
  border: 1px solid rgba(51, 65, 85, 0.8);
  padding: 5px 12px;
  border-radius: 5px;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: all 0.15s ease;
}

.theme-choice-btn:hover {
  background: rgba(51, 65, 85, 0.9);
  color: #fff;
}

.theme-choice-btn.active {
  background: rgba(2, 132, 199, 0.25);
  border-color: var(--cyan);
  color: #38bdf8;
  box-shadow: 0 0 12px rgba(56, 189, 248, 0.3);
}

.theme-bar-right {
  display: flex;
  align-items: center;
  gap: 16px;
}

.report-format-toggle-group {
  display: flex;
  align-items: center;
  gap: 6px;
  background: rgba(15, 23, 42, 0.7);
  padding: 3px 6px;
  border-radius: 6px;
  border: 1px solid rgba(51, 65, 85, 0.8);
}

.report-format-label {
  font-size: 11px;
  font-weight: 800;
  color: #94a3b8;
  display: flex;
  align-items: center;
  gap: 5px;
  margin-right: 2px;
}

.btn-format-toggle {
  background: transparent;
  border: 1px solid transparent;
  padding: 4px 11px;
  border-radius: 4px;
  font-size: 11.5px;
  font-weight: 700;
  color: #94a3b8;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.15s ease;
}

.btn-format-toggle:hover {
  color: #f8fafc;
  background: rgba(255, 255, 255, 0.05);
}

.btn-format-toggle.active {
  background: #0284c7;
  color: #ffffff;
  border-color: #38bdf8;
  box-shadow: 0 0 10px rgba(56, 189, 248, 0.35);
}

.theme-badge-hint {
  font-size: 11px;
  color: var(--text-dim);
  font-style: italic;
}

/* ========================================== */
/* BARRA DE ABAS / EQUIPAMENTOS               */
/* ========================================== */
.breakers-tabs-bar {
  background: #0a1122;
  border-bottom: 1px solid var(--border);
  padding: 8px 24px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.tabs-label {
  font-size: 11px;
  font-weight: 800;
  color: var(--text-dim);
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
}

.tabs-scroll-area {
  display: flex;
  align-items: center;
  gap: 6px;
  overflow-x: auto;
  flex: 1;
  padding-bottom: 2px;
}

.breaker-tab {
  background: rgba(30, 41, 59, 0.7);
  border: 1px solid rgba(51, 65, 85, 0.8);
  padding: 6px 14px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-muted);
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  transition: all 0.15s ease;
}

.breaker-tab:hover {
  background: rgba(51, 65, 85, 0.9);
  color: #fff;
}

.breaker-tab.active {
  background: rgba(2, 132, 199, 0.25);
  border-color: var(--cyan);
  color: #38bdf8;
  box-shadow: 0 0 10px rgba(56, 189, 248, 0.2);
}

.tab-btn-add {
  background: rgba(16, 185, 129, 0.15);
  border: 1px solid rgba(16, 185, 129, 0.4);
  color: #34d399;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.2s ease;
}
.tab-btn-add:hover {
  background: var(--emerald);
  color: #fff;
}

.tab-btn-delete {
  background: rgba(244, 63, 94, 0.12);
  border: 1px solid rgba(244, 63, 94, 0.4);
  color: #fb7185;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.2s ease;
}
.tab-btn-delete:hover {
  background: var(--rose);
  color: #fff;
}

/* ========================================== */
/* FAIXA INFORMATIVA DA CAMPANHA COM LOGO     */
/* ========================================== */
.campaign-banner-info {
  background: #080f1d;
  border-bottom: 1px solid rgba(34, 50, 77, 0.6);
  padding: 6px 24px;
  font-size: 12px;
  color: var(--text-muted);
}

.banner-content {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.banner-client-img {
  height: 22px;
  background: #fff;
  padding: 2px 5px;
  border-radius: 3px;
  object-fit: contain;
}

.banner-content strong { color: #fff; }
.banner-hint { color: var(--text-dim); font-style: italic; font-size: 11px; }

/* ========================================== */
/* LAYOUT PRINCIPAL DO EDITOR                 */
/* ========================================== */
.editor-container {
  padding: 20px 24px;
  max-width: 1700px;
  margin: 0 auto;
}

.editor-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 20px;
  align-items: start;
}

.card-panel {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 8px;
  margin-bottom: 18px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.3);
  overflow: hidden;
}

.card-header {
  background: rgba(17, 24, 39, 0.9);
  border-bottom: 1px solid var(--border);
  padding: 12px 18px;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #e2e8f0;
}

.card-header i {
  color: var(--cyan);
  margin-right: 8px;
}

.badge-rtd {
  background: rgba(2, 132, 199, 0.25);
  border: 1px solid var(--cyan);
  color: #7dd3fc;
  font-family: var(--font-mono);
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 4px;
}

.card-body {
  padding: 16px 18px;
}

.form-group {
  margin-bottom: 12px;
}

.form-group label {
  display: block;
  font-size: 11px;
  font-weight: 600;
  color: var(--text-muted);
  margin-bottom: 4px;
}

.form-group input,
.form-group select,
.form-group textarea {
  width: 100%;
  background: var(--bg-input);
  border: 1px solid var(--border);
  border-radius: 5px;
  padding: 8px 12px;
  font-size: 13px;
  color: #fff;
  font-family: var(--font-main);
  outline: none;
  transition: border-color 0.15s ease;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
  border-color: var(--cyan);
}

.grid-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.grid-3col {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 14px;
}

/* TABELA "DADOS AQUI" */
.card-dados-aqui {
  border-color: #0284c7;
}

.header-dados-aqui {
  background: linear-gradient(90deg, #09203f, #131b2e);
}

.title-with-icon {
  display: flex;
  align-items: center;
  font-size: 14px;
  font-weight: 800;
  color: #38bdf8;
  letter-spacing: 0.5px;
}

.sub-hint {
  font-size: 11px;
  color: var(--text-dim);
  font-weight: 500;
}

.dados-aqui-layout {
  display: grid;
  grid-template-columns: 1.1fr 1.2fr;
  gap: 18px;
  align-items: center;
}

.table-dados-aqui {
  width: 100%;
  border-collapse: collapse;
  background: #090e18;
  border: 1.5px solid #22324d;
  border-radius: 6px;
  overflow: hidden;
}

.table-dados-aqui thead th {
  background: #1e293b;
  color: #f1f5f9;
  text-align: center;
  padding: 8px;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 1px;
  border-bottom: 1.5px solid #334155;
  font-family: var(--font-mono);
}

.table-dados-aqui td {
  padding: 7px 12px;
  border-bottom: 1px solid #1e293b;
  font-size: 13px;
}

.table-dados-aqui tr:last-child td {
  border-bottom: none;
}

.col-param {
  font-family: var(--font-mono);
  font-weight: 700;
  color: #cbd5e1;
  width: 45%;
}

.col-val {
  text-align: right;
  width: 55%;
}

.input-param {
  width: 100%;
  background: #0d1526;
  border: 1px solid #25334c;
  padding: 5px 8px;
  border-radius: 4px;
  color: #38bdf8;
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 700;
  text-align: right;
  outline: none;
}

.select-param {
  width: 100%;
  background: #0d1526;
  border: 1px solid #25334c;
  padding: 5px 8px;
  border-radius: 4px;
  color: #f59e0b;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  outline: none;
}

.ii-input-group {
  display: flex;
  align-items: center;
  gap: 6px;
  justify-content: flex-end;
}

.select-param-small {
  background: #0d1526;
  border: 1px solid #25334c;
  padding: 5px 6px;
  border-radius: 4px;
  color: #f59e0b;
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 700;
  outline: none;
}

/* PRÉVIA DOS RESULTADOS CALCULADOS */
.trip-preview-box {
  background: #0a1120;
  border: 1px solid #1e293b;
  border-radius: 6px;
  padding: 14px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.preview-title {
  font-size: 11px;
  font-weight: 800;
  color: #94a3b8;
  letter-spacing: 0.5px;
  margin-bottom: 2px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.preview-row {
  display: flex;
  flex-direction: column;
  background: rgba(30, 41, 59, 0.4);
  padding: 8px 10px;
  border-radius: 4px;
  border-left: 3px solid #0284c7;
}

.preview-lbl {
  font-size: 10px;
  font-weight: 800;
  color: #64748b;
  margin-bottom: 2px;
}

.preview-val {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 700;
  color: #e2e8f0;
}

.preview-in-box {
  background: rgba(254, 240, 138, 0.1);
  border: 1px dashed rgba(234, 179, 8, 0.5);
  padding: 8px 10px;
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.in-yellow-display {
  background: #ffff00;
  color: #000;
  font-family: var(--font-mono);
  font-weight: 800;
  font-size: 13px;
  padding: 4px 10px;
  border-radius: 3px;
}

/* MEDIÇÕES MEGGER & MICRO-OHMS */
.measures-subcol {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.subcol-heading {
  font-size: 12px;
  font-weight: 800;
  color: #38bdf8;
  margin-bottom: 6px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 4px;
}

.measure-input-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.measure-input-row label {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  width: 45%;
}

.lbl-phase {
  color: #f43f5e !important;
  font-weight: 700 !important;
}

.measure-input-row input {
  width: 55%;
  background: var(--bg-input);
  border: 1px solid var(--border);
  padding: 6px 10px;
  border-radius: 4px;
  color: #fff;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
}

.select-status {
  width: 100%;
  background: #064e3b;
  color: #34d399;
  font-weight: 800;
  border: 1px solid #059669;
  padding: 8px 12px;
  border-radius: 5px;
  cursor: pointer;
}

/* OS 4 QUADRADOS DE FOTOS (WORKSHOP) */
.photos-instruction {
  font-size: 12px;
  color: var(--text-muted);
  margin-bottom: 14px;
}

.photos-2x2-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.photo-card {
  background: #0d1424;
  border: 1px solid var(--border);
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.photo-card-top {
  background: #1e293b;
  color: #e2e8f0;
  font-size: 11px;
  font-weight: 800;
  padding: 8px 10px;
  text-align: center;
  border-bottom: 1px solid var(--border);
}

.photo-dropzone {
  min-height: 180px;
  background: #080d18;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: all 0.2s ease;
}

.photo-dropzone:hover {
  background: #0d1527;
  border-color: var(--cyan);
}

.drop-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: var(--text-dim);
  font-size: 12px;
  font-weight: 600;
}

.drop-placeholder i {
  font-size: 28px;
  color: var(--primary);
}

.img-preview {
  width: 100%;
  height: 180px;
  object-fit: cover;
}

.photo-card-footer {
  display: flex;
  align-items: center;
  border-top: 1px solid var(--border);
  background: #0b1120;
}

.btn-photo-action {
  flex: 1;
  background: transparent;
  border: none;
  padding: 7px 10px;
  font-size: 11px;
  font-weight: 700;
  color: #94a3b8;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  transition: all 0.15s ease;
}

.btn-photo-action:hover {
  background: rgba(2, 132, 199, 0.2);
  color: #38bdf8;
}

.btn-photo-action.btn-del {
  flex: 0 0 38px;
  border-left: 1px solid var(--border);
  color: #f43f5e;
}

.hidden-file-input { display: none; }

/* ============================================================== */
/* ESTILOS DE IMPRESSÃO (PDF OFICIAL - 3 PÁGINAS A4 PAISAGEM)     */
/* ============================================================== */
@page {
  size: A4 landscape;
  margin: 0;
}

@media screen {
  .print-document {
    max-width: 1300px;
    margin: 40px auto;
    padding: 0 20px 60px 20px;
    display: flex;
    flex-direction: column;
    gap: 40px;
  }

  .print-equipments-container {
    display: contents;
  }

  .rtd-page {
    background: #ffffff;
    color: #000000;
    width: 297mm;
    min-height: 210mm;
    margin: 0 auto;
    padding: 10mm 14mm 8mm 14mm;
    box-sizing: border-box;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.7);
    border-radius: 2px;
    position: relative;
    font-family: Arial, Helvetica, sans-serif;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  /* MODO RESUMIDO / COMPACTO (PADRÃO NA TELA): Exibe Capa, Índice e Páginas Compactas; Oculta Ficha e Fotos */
  body:not(.report-mode-full) .print-document .page-data,
  body:not(.report-mode-full) .print-document .page-photos,
  body.report-mode-compact .print-document .page-data,
  body.report-mode-compact .print-document .page-photos {
    display: none !important;
  }

  body:not(.report-mode-full) .print-document .page-cover,
  body:not(.report-mode-full) .print-document .page-index,
  body:not(.report-mode-full) .print-document .page-compact,
  body.report-mode-compact .print-document .page-cover,
  body.report-mode-compact .print-document .page-index,
  body.report-mode-compact .print-document .page-compact {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
  }

  /* MODO COMPLETO (NA TELA): Exibe Capa, Índice, Ficha e Fotos; Oculta Páginas Compactas */
  body.report-mode-full .print-document .page-cover,
  body.report-mode-full .print-document .page-index,
  body.report-mode-full .print-document .page-data,
  body.report-mode-full .print-document .page-photos {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
  }

  body.report-mode-full .print-document .page-compact {
    display: none !important;
  }
}

@media print {
  body {
    background: #ffffff !important;
    color: #000000 !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  .no-print,
  .toast-notification {
    display: none !important;
  }

  .print-document {
    display: block !important;
    width: 297mm !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .print-equipments-container {
    display: contents !important;
  }

  .rtd-page {
    width: 297mm !important;
    height: 210mm !important;
    max-height: 210mm !important;
    padding: 10mm 14mm 8mm 14mm !important;
    box-sizing: border-box !important;
    page-break-after: always !important;
    break-after: page !important;
    overflow: hidden !important;
    position: relative !important;
    background: #ffffff !important;
    color: #000000 !important;
    font-family: Arial, Helvetica, sans-serif !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
  }

  .rtd-page:last-child {
    page-break-after: avoid !important;
    break-after: avoid !important;
  }

  /* MODO RESUMIDO / COMPACTO (PADRÃO NA IMPRESSÃO): Imprime Capa, Índice e Páginas Compactas de Todos os Equipamentos */
  body:not(.report-mode-full) .page-data,
  body:not(.report-mode-full) .page-photos,
  body.report-mode-compact .page-data,
  body.report-mode-compact .page-photos,
  body.print-mode-compact .page-data,
  body.print-mode-compact .page-photos {
    display: none !important;
  }

  body:not(.report-mode-full) .page-cover,
  body:not(.report-mode-full) .page-index,
  body:not(.report-mode-full) .page-compact,
  body.report-mode-compact .page-cover,
  body.report-mode-compact .page-index,
  body.report-mode-compact .page-compact,
  body.print-mode-compact .page-cover,
  body.print-mode-compact .page-index,
  body.print-mode-compact .page-compact {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    page-break-after: always !important;
    break-after: page !important;
  }

  /* MODO COMPLETO (NA IMPRESSÃO): Imprime Capa, Índice, Ficha e Fotos de Todos os Equipamentos */
  body.report-mode-full .page-compact,
  body.print-mode-full .page-compact {
    display: none !important;
  }

  body.report-mode-full .page-cover,
  body.report-mode-full .page-index,
  body.report-mode-full .page-data,
  body.report-mode-full .page-photos,
  body.print-mode-full .page-cover,
  body.print-mode-full .page-index,
  body.print-mode-full .page-data,
  body.print-mode-full .page-photos {
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    page-break-after: always !important;
    break-after: page !important;
  }
}

/* ============================================================== */
/* PÁGINA 1: CAPA OFICIAL (COVER PAGE) - MODELO 1 UNITED POWER    */
/* ============================================================== */
.page-cover {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
}

.cover-top-bar {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 2mm;
}

.cover-logo-img {
  height: 48px;
  object-fit: contain;
}

.cover-meta-right {
  text-align: right;
  line-height: 1.25;
}

.cover-date-label {
  font-size: 7.5pt;
  font-weight: 800;
  color: #0284c7;
  letter-spacing: 0.5px;
}

.cover-date-val {
  font-size: 10pt;
  font-weight: 800;
  color: #002b66;
}

.cover-rev-val {
  font-size: 8pt;
  color: #64748b;
  font-weight: 600;
}

.cover-title-section {
  margin: 1.5mm 0 3mm 0;
}

.cover-sub-tag {
  font-size: 8.5pt;
  font-weight: 800;
  color: #0284c7;
  letter-spacing: 1px;
  margin-bottom: 1.5mm;
  text-transform: uppercase;
}

.cover-main-heading {
  font-size: 17pt;
  font-weight: 900;
  color: #002b66;
  line-height: 1.15;
  margin-bottom: 1.5mm;
  letter-spacing: -0.2px;
}

.cover-sub-heading {
  font-size: 9.5pt;
  font-weight: 700;
  color: #0284c7;
  letter-spacing: 0.5px;
}

/* BADGES DE DOCUMENTO E NORMA */
.cover-badges-row {
  display: flex;
  gap: 12px;
  margin-bottom: 3mm;
}

.cover-badge-pill {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 5px;
  padding: 3px 12px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 7.5pt;
}

.pill-k {
  color: #15803d;
  font-weight: 800;
  letter-spacing: 0.3px;
}

.pill-v {
  color: #0f172a;
  font-weight: 700;
  font-family: var(--font-mono);
}

.cover-badge-pill:nth-child(2) {
  background: #f0f9ff;
  border-color: #bae6fd;
}
.cover-badge-pill:nth-child(2) .pill-k { color: #0284c7; }

/* FAIXA DE CONTATO */
.cover-contact-strip {
  border-top: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
  padding: 2.5px 0;
  display: flex;
  justify-content: space-between;
  font-size: 7.5pt;
  color: #475569;
  margin-bottom: 3.5mm;
}

.cs-label { font-weight: 800; color: #0284c7; margin-right: 6px; }
.cs-val { font-weight: 600; }
.cs-phone { font-weight: 600; color: #334155; }

/* BANNER FOTOGRÁFICO DA EMBARCAÇÃO OFFSHORE (REFERÊNCIA NAVAL REAL) */
.cover-vessel-banner {
  display: flex;
  gap: 10px;
  margin-bottom: 3.5mm;
  align-items: stretch;
  position: relative;
  z-index: 2;
}

.cvb-photo-frame {
  flex: 1;
  height: 32mm;
  border-radius: 6px;
  overflow: hidden;
  position: relative;
  border: 1.5px solid #0284c7;
  box-shadow: 0 4px 14px rgba(2, 132, 199, 0.2);
}

.cvb-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 60%;
}

.cvb-glass-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 4px 12px;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 43, 102, 0.9) 100%);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.cvb-tag {
  font-size: 6.8pt;
  font-weight: 800;
  color: #38bdf8;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}

.cvb-specs {
  font-size: 7.2pt;
  font-weight: 700;
  color: #ffffff;
}

.cvb-stamp-box {
  width: 38mm;
  background: #f0f9ff;
  border: 1.5px dashed #0284c7;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 4px;
}

.stamp-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  line-height: 1.15;
}

.st-top {
  font-size: 6pt;
  font-weight: 800;
  color: #64748b;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.st-mid {
  font-size: 8.5pt;
  font-weight: 900;
  color: #002b66;
  margin: 1px 0;
}

.st-bot {
  font-size: 5.8pt;
  font-weight: 800;
  color: #0284c7;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

/* HERO CARD CENTRAL DO CLIENTE (DEGRADÊ AZUL OFFSHORE) */
.cover-hero-card {
  background: linear-gradient(135deg, #0284c7 0%, #002b66 100%);
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
  border-radius: 8px;
  padding: 16px 22px;
  color: #ffffff;
  box-shadow: 0 10px 30px rgba(0, 43, 102, 0.3);
  margin-bottom: 3.5mm;
  position: relative;
  z-index: 2;
}

.hero-header-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.hero-client-label {
  font-size: 8pt;
  font-weight: 800;
  letter-spacing: 1.5px;
  color: #7dd3fc;
  text-transform: uppercase;
  margin-bottom: 2px;
}

.hero-client-name {
  font-size: 20pt;
  font-weight: 900;
  letter-spacing: 0.5px;
  line-height: 1.1;
  color: #ffffff;
}

.hero-unit-name {
  font-size: 11pt;
  font-weight: 700;
  color: #38bdf8;
  margin-top: 2px;
}

.hero-client-logo-box {
  background: #ffffff;
  padding: 6px 12px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  max-width: 160px;
  max-height: 52px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

.hero-logo-img {
  max-height: 42px;
  max-width: 140px;
  object-fit: contain;
}

.hero-box-divider {
  height: 1px;
  background: rgba(255, 255, 255, 0.2);
  margin: 10px 0;
}

.hero-service-title {
  font-size: 11pt;
  font-weight: 800;
  letter-spacing: 0.3px;
  color: #ffffff;
  margin-bottom: 2px;
}

.hero-service-sub {
  font-size: 7.5pt;
  font-weight: 600;
  color: #bae6fd;
  letter-spacing: 0.5px;
}

.hero-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
  font-size: 7.5pt;
  color: #e0f2fe;
}

.hero-loc { font-weight: 600; }
.hero-loc i { margin-right: 4px; color: #38bdf8; }
.hero-client-sub { font-weight: 700; color: #7dd3fc; }

/* BLOCO INFERIOR DO RODAPÉ DA CAPA */
.cover-bottom-section {
  position: relative;
  z-index: 2;
  margin-top: auto;
}

.cover-footer-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 7.5pt;
  color: #64748b;
  border-top: 1px solid #e2e8f0;
  padding-top: 3px;
}

.cover-footer-text { font-weight: 600; }

.cover-page-pill,
.page-num-pill {
  background: #002b66;
  color: #ffffff;
  font-size: 7.5pt;
  font-weight: 800;
  padding: 2px 10px;
  border-radius: 12px;
  letter-spacing: 0.5px;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
}

/* ONDAS AZUIS NO CANTO INFERIOR DIREITO */
.cover-wave-accent {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 90mm;
  height: 38mm;
  z-index: 1;
  pointer-events: none;
}

.wave-svg {
  width: 100%;
  height: 100%;
}

/* ============================================================== */
/* PÁGINA 2: FOLHA DE ÍNDICE COM OS STATUS DOS EQUIPAMENTOS       */
/* ============================================================== */
.page-index {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.index-title-box {
  text-align: center;
  margin: 1.5mm 0 2.5mm 0;
  border-bottom: 2px solid #002b66;
  padding-bottom: 2mm;
}

.index-main-title {
  font-size: 13.5pt;
  font-weight: 900;
  color: #002b66;
  letter-spacing: 0.5px;
  margin-bottom: 1px;
}

.index-sub-title {
  font-size: 7.5pt;
  font-weight: 700;
  color: #0284c7;
  letter-spacing: 0.8px;
  text-transform: uppercase;
}

.index-summary-banner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #f8fafc;
  border: 1.5px solid #002b66;
  border-radius: 4px;
  padding: 3.5px 14px;
  margin-bottom: 3.5mm;
}

.isb-item {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 8pt;
}

.isb-k {
  color: #475569;
  font-weight: 700;
  letter-spacing: 0.3px;
}

.isb-v {
  font-weight: 800;
  color: #0f172a;
}

.isb-approved .isb-v {
  color: #16a34a;
}

.isb-reproved .isb-v {
  color: #dc2626;
}

.index-table {
  width: 100%;
  border-collapse: collapse;
  border: 1.5px solid #002b66;
  margin-bottom: auto;
}

.index-table th {
  background-color: #002b66 !important;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
  color: #ffffff;
  font-size: 7.5pt;
  font-weight: 800;
  padding: 4px 6px;
  text-align: center;
  border: 1px solid #002b66;
  letter-spacing: 0.3px;
}

.index-table td {
  font-size: 7.5pt;
  padding: 3.2px 6px;
  border: 1px solid #cbd5e1;
  text-align: center;
  color: #1e293b;
  vertical-align: middle;
}

.index-table td.col-tag {
  text-align: left;
  font-weight: 700;
  color: #002b66;
  padding-left: 8px;
}

.index-table td.col-model {
  text-align: left;
  padding-left: 8px;
}

.index-table tr:nth-child(even) td {
  background-color: #f8fafc;
}

.index-table tr:hover td {
  background-color: #f1f5f9;
}

.status-badge {
  display: inline-block;
  padding: 1.5px 8px;
  border-radius: 10px;
  font-weight: 800;
  font-size: 7pt;
  letter-spacing: 0.5px;
}

.badge-appr {
  background: #dcfce7 !important;
  color: #15803d !important;
  border: 1px solid #86efac;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
}

.badge-repr {
  background: #fee2e2 !important;
  color: #b91c1c !important;
  border: 1px solid #fca5a5;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
}

.index-footer-note {
  font-size: 7.5pt;
  color: #64748b;
  font-weight: 600;
}

/* ============================================================== */
/* PÁGINAS 3 & 4: FORMATAÇÃO DE DADOS E FOTOS                     */
/* ============================================================== */
.page-data,
.page-photos {
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.page-data > *,
.page-photos > * {
  width: 100% !important;
  box-sizing: border-box !important;
}

.doc-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 2mm;
}

.doc-logo-img {
  height: 44px;
  object-fit: contain;
}

.doc-company-address {
  text-align: right;
  font-size: 8pt;
  line-height: 1.25;
  color: #1a1a1a;
  display: flex;
  flex-direction: column;
}

.doc-company-address strong { font-size: 8.5pt; font-weight: 800; color: #002b66; }

.doc-sub-header {
  border-top: 2px solid #002b66;
  border-bottom: 2px solid #002b66;
  padding: 2.5px 0;
  display: flex;
  justify-content: space-between;
  font-size: 8.5pt;
  font-weight: bold;
  color: #002b66;
  margin-bottom: 3mm;
}

.doc-info-left { display: flex; gap: 20px; }
.doc-rtd-number { font-weight: 800; }

.doc-main-title {
  text-align: center;
  font-size: 14pt;
  font-weight: 800;
  letter-spacing: 0.5px;
  margin-bottom: 3mm;
  color: #002b66;
}

/* TABELAS DE METADADOS, ISOLATION E TRIP */
.rtd-meta-table,
.rtd-measure-table,
.rtd-trip-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 3.5mm;
  border: 1.5px solid #000;
}

.rtd-meta-table td {
  padding: 3.5px 6px;
  font-size: 8pt;
  vertical-align: top;
  border: 1px solid #000;
}

.col-half { width: 50%; }

.bg-meta-header {
  background-color: #b4c6e7 !important;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
  font-weight: bold;
  font-size: 8pt;
  border-bottom: 1.5px solid #000 !important;
}

.kv-row { margin-bottom: 2px; line-height: 1.2; }
.kv-row .k { font-weight: bold; display: inline-block; min-width: 120px; }
.inst-line { margin-bottom: 2px; line-height: 1.2; }

.rtd-measure-table th,
.rtd-measure-table td {
  border: 1px solid #000;
  padding: 3px 6px;
  font-size: 8pt;
  text-align: center;
}

.th-isolation,
.th-micro {
  background-color: #b4c6e7 !important;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
  color: #002060;
  font-weight: bold;
  font-size: 8.5pt;
}

.sub-th {
  background-color: #d9e1f2 !important;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
  font-weight: bold;
  font-size: 8pt;
}

.phase-lbl { color: #dc2626 !important; font-weight: bold; }
.val-micro { font-size: 9pt; font-weight: bold; vertical-align: middle; }

.rtd-trip-table th,
.rtd-trip-table td {
  border: 1px solid #000;
  padding: 3.5px 6px;
  font-size: 8pt;
  text-align: center;
}

.trip-header-row th {
  background-color: #f8cbad !important;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
  color: #000;
  font-weight: bold;
  font-size: 9pt;
}

.approved-banner {
  background-color: #a9d08e !important;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
  border: 1.5px solid #000;
  text-align: center;
  font-size: 14pt;
  font-weight: 800;
  letter-spacing: 1.5px;
  padding: 4px 0;
  margin-bottom: 3.5mm;
  color: #000;
}

.doc-footer-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  border-top: 1px solid #cbd5e1;
  padding-top: 3px;
}

.footer-logos-img {
  height: 26px;
  object-fit: contain;
}

/* ========================================== */
/* PÁGINA 3: PROCEDURES IN WORKSHOP           */
/* ========================================== */
.doc-section-label {
  font-size: 8.5pt;
  font-weight: bold;
  color: #002060;
  margin: 2mm 0 3.5mm 0;
  text-transform: uppercase;
}

.workshop-photos-container {
  display: flex !important;
  flex-direction: row !important;
  justify-content: space-between !important;
  gap: 4.5mm;
  margin-bottom: 4mm;
  height: 105mm;
  width: 100% !important;
  box-sizing: border-box !important;
}

.workshop-col {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  border: 1.5px solid #000;
  box-sizing: border-box !important;
  height: 100% !important;
}

.col-header-blue {
  background-color: #b4c6e7 !important;
  -webkit-print-color-adjust: exact !important;
  print-color-adjust: exact !important;
  border-bottom: 1.5px solid #000;
  text-align: center;
  font-size: 7.5pt;
  font-weight: bold;
  padding: 3px 2px;
  height: 13mm;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1.15;
  box-sizing: border-box !important;
}

.col-photo-frame {
  flex: 1;
  background: #f8fafc;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  box-sizing: border-box !important;
}

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

/* ASSINATURA TÉCNICA NA PÁGINA 4 (EQUIPAMENTO) - APENAS RESPONSÁVEL TÉCNICO */
.signatures-workshop-row {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin: 2mm auto 3mm auto !important;
  width: 100% !important;
  box-sizing: border-box !important;
}

.signature-section {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 320px;
  border-top: 1.5px solid #002b66;
  padding-top: 4px;
}

.signature-img {
  height: 48px;
  max-width: 220px;
  object-fit: contain;
  margin-bottom: 2px;
}

.tech-name { font-size: 9pt; font-weight: 800; color: #002b66; }
.tech-role { font-size: 7.5pt; color: #475569; font-weight: 600; }
.tech-crt { font-size: 8pt; font-weight: 700; color: #0f172a; margin-top: 1px; }

/* ============================================================== */
/* ESTILOS VARIANTES DOS 3 MODELOS (THEME SWITCHER)               */
/* ============================================================== */

/* -------------------------------------------------------------- */
/* MODELO 1: UNITED POWER MODERN (PADRÃO OFFSHORE ELEGANTE)       */
/* -------------------------------------------------------------- */
body.theme-modelo1 .rtd-page,
body.theme-modelo1-united .rtd-page {
  border: 1px solid #e2e8f0;
}

body.theme-modelo1 .page-cover,
body.theme-modelo1-united .page-cover {
  border: 1.5px solid #002b66;
  border-radius: 4px;
}

body.theme-modelo1 .cover-vessel-banner,
body.theme-modelo1-united .cover-vessel-banner {
  display: flex;
  gap: 10px;
  margin-bottom: 3.5mm;
}

body.theme-modelo1 .cvb-photo-frame,
body.theme-modelo1-united .cvb-photo-frame {
  flex: 1;
  height: 32mm;
  border-radius: 6px;
  border: 1.5px solid #0284c7;
  box-shadow: 0 4px 14px rgba(2, 132, 199, 0.2);
}

body.theme-modelo1 .cvb-stamp-box,
body.theme-modelo1-united .cvb-stamp-box {
  width: 38mm;
  background: #f0f9ff;
  border: 1.5px dashed #0284c7;
  border-radius: 6px;
}

body.theme-modelo1 .page-index,
body.theme-modelo1-united .page-index {
  border: 1.5px solid #002b66;
  border-radius: 4px;
}

body.theme-modelo1 .index-summary-banner,
body.theme-modelo1-united .index-summary-banner {
  background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
  border: 1.5px solid #bae6fd;
  border-radius: 6px;
}

/* -------------------------------------------------------------- */
/* -------------------------------------------------------------- */
/* MODELO 2: EXECUTIVE ENGINEERING (DOSSIÊ TÉCNICO DE PRECISÃO)   */
/* -------------------------------------------------------------- */
body.theme-modelo2 .rtd-page,
body.theme-modelo2-executive .rtd-page {
  border: 1px solid #cbd5e1 !important;
  border-top: 5px solid #0f172a !important;
  border-left: 1px solid #cbd5e1 !important;
  border-right: 1px solid #cbd5e1 !important;
  border-bottom: 1px solid #cbd5e1 !important;
  padding: 10mm 14mm 8mm 14mm !important;
  box-shadow: 0 4px 24px rgba(15, 23, 42, 0.1) !important;
  background: #ffffff !important;
}

/* Capa Modelo 2: Sem listra lateral, alinhamento simétrico e refinado */
body.theme-modelo2 .page-cover,
body.theme-modelo2-executive .page-cover {
  border-top: 5px solid #0f172a !important;
  border-left: 1px solid #cbd5e1 !important;
  border-right: 1px solid #cbd5e1 !important;
  border-bottom: 1px solid #cbd5e1 !important;
  padding: 10mm 14mm 8mm 14mm !important;
}

/* Cabeçalho Topo da Capa Modelo 2 */
body.theme-modelo2 .cover-top-bar,
body.theme-modelo2-executive .cover-top-bar {
  border-bottom: 1px solid #e2e8f0;
  padding-bottom: 3mm;
  margin-bottom: 3.5mm;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

body.theme-modelo2 .cover-meta-right,
body.theme-modelo2-executive .cover-meta-right {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  padding: 4px 12px;
  text-align: right;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.02);
}

body.theme-modelo2 .cover-date-label,
body.theme-modelo2-executive .cover-date-label {
  color: #64748b;
  font-size: 6.5pt;
  font-weight: 800;
  letter-spacing: 1.2px;
  text-transform: uppercase;
}

body.theme-modelo2 .cover-date-val,
body.theme-modelo2-executive .cover-date-val {
  color: #0f172a;
  font-size: 9pt;
  font-weight: 800;
  font-family: var(--font-heading);
}

body.theme-modelo2 .cover-rev-val,
body.theme-modelo2-executive .cover-rev-val {
  color: #0284c7;
  font-size: 7.5pt;
  font-weight: 700;
  font-family: var(--font-mono);
}

/* Título Executivo Modelo 2: Hierarquia marcante e diferenciada */
body.theme-modelo2 .cover-title-section,
body.theme-modelo2-executive .cover-title-section {
  margin: 2mm 0 3.5mm 0;
  padding: 0;
}

body.theme-modelo2 .cover-sub-tag,
body.theme-modelo2-executive .cover-sub-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #0f172a;
  color: #38bdf8;
  font-family: var(--font-mono);
  font-size: 7pt;
  font-weight: 800;
  letter-spacing: 1.5px;
  padding: 3px 10px;
  border-radius: 3px;
  margin-bottom: 2mm;
  text-transform: uppercase;
}

body.theme-modelo2 .cover-main-heading,
body.theme-modelo2-executive .cover-main-heading {
  font-family: var(--font-heading);
  font-weight: 900;
  color: #0f172a;
  font-size: 16pt;
  line-height: 1.2;
  letter-spacing: -0.3px;
  margin-bottom: 1.5mm;
  text-transform: uppercase;
  border-left: none !important;
}

body.theme-modelo2 .cover-sub-heading,
body.theme-modelo2-executive .cover-sub-heading {
  color: #475569;
  font-size: 8.5pt;
  font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
}

/* Badges de Documento Modelo 2: Grid de Especificação Técnica */
body.theme-modelo2 .cover-badges-row,
body.theme-modelo2-executive .cover-badges-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 3.5mm;
}

body.theme-modelo2 .cover-badge-pill,
body.theme-modelo2-executive .cover-badge-pill {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-start !important;
  justify-content: center !important;
  background: #f8fafc !important;
  border: 1px solid #cbd5e1 !important;
  border-top: 2.5px solid #0f172a !important;
  border-radius: 4px !important;
  padding: 5px 12px !important;
  gap: 2px !important;
}

body.theme-modelo2 .cover-badge-pill .pill-k,
body.theme-modelo2-executive .cover-badge-pill .pill-k {
  color: #64748b !important;
  font-size: 6.5pt !important;
  font-weight: 800 !important;
  letter-spacing: 1px !important;
  text-transform: uppercase !important;
}

body.theme-modelo2 .cover-badge-pill .pill-v,
body.theme-modelo2-executive .cover-badge-pill .pill-v {
  color: #0f172a !important;
  font-size: 8.5pt !important;
  font-weight: 800 !important;
  font-family: var(--font-mono) !important;
}

/* Faixa de Contato Executiva Modelo 2 */
body.theme-modelo2 .cover-contact-strip,
body.theme-modelo2-executive .cover-contact-strip {
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 4px;
  padding: 4px 12px;
  margin-bottom: 3.5mm;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 7.5pt;
}

body.theme-modelo2 .cover-contact-strip .cs-label,
body.theme-modelo2-executive .cover-contact-strip .cs-label {
  color: #0f172a;
  font-weight: 800;
  letter-spacing: 0.5px;
}

body.theme-modelo2 .cover-contact-strip .cs-val,
body.theme-modelo2-executive .cover-contact-strip .cs-val {
  color: #0284c7;
  font-weight: 700;
  font-family: var(--font-mono);
}

body.theme-modelo2 .cover-contact-strip .cs-phone,
body.theme-modelo2-executive .cover-contact-strip .cs-phone {
  color: #334155;
  font-weight: 600;
  font-family: var(--font-mono);
}

/* Hero Card Executivo Modelo 2: Obsidian Slate com Acentuação Ciano */
body.theme-modelo2 .cover-hero-card,
body.theme-modelo2-executive .cover-hero-card {
  background: linear-gradient(135deg, #0f172a 0%, #070b14 100%) !important;
  border: 1px solid #1e293b !important;
  border-top: 3px solid #38bdf8 !important;
  border-radius: 6px !important;
  padding: 16px 22px !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18) !important;
  margin-bottom: 3.5mm !important;
}

body.theme-modelo2 .hero-header-flex,
body.theme-modelo2-executive .hero-header-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

body.theme-modelo2 .hero-client-label,
body.theme-modelo2-executive .hero-client-label {
  color: #38bdf8 !important;
  font-size: 7pt !important;
  font-weight: 800 !important;
  letter-spacing: 1.5px !important;
  text-transform: uppercase !important;
}

body.theme-modelo2 .hero-client-name,
body.theme-modelo2-executive .hero-client-name {
  color: #ffffff !important;
  font-size: 20pt !important;
  font-weight: 900 !important;
  letter-spacing: 0.3px !important;
  line-height: 1.1 !important;
}

body.theme-modelo2 .hero-unit-name,
body.theme-modelo2-executive .hero-unit-name {
  color: #94a3b8 !important;
  font-size: 10pt !important;
  font-weight: 700 !important;
  margin-top: 2px !important;
}

body.theme-modelo2 .hero-client-logo-box,
body.theme-modelo2-executive .hero-client-logo-box {
  background: #ffffff !important;
  padding: 6px 14px !important;
  border-radius: 6px !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

body.theme-modelo2 .hero-box-divider,
body.theme-modelo2-executive .hero-box-divider {
  border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
  margin: 11px 0 !important;
}

body.theme-modelo2 .hero-service-title,
body.theme-modelo2-executive .hero-service-title {
  color: #f1f5f9 !important;
  font-size: 10pt !important;
  font-weight: 800 !important;
  line-height: 1.35 !important;
  letter-spacing: 0.2px !important;
}

body.theme-modelo2 .hero-service-sub,
body.theme-modelo2-executive .hero-service-sub {
  color: #64748b !important;
  font-size: 7.5pt !important;
  font-weight: 600 !important;
  letter-spacing: 0.8px !important;
  text-transform: uppercase !important;
  margin-top: 3px !important;
}

body.theme-modelo2 .hero-card-footer,
body.theme-modelo2-executive .hero-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 10px;
}

body.theme-modelo2 .hero-loc,
body.theme-modelo2-executive .hero-loc {
  background: rgba(56, 189, 248, 0.1) !important;
  border: 1px solid rgba(56, 189, 248, 0.25) !important;
  color: #38bdf8 !important;
  padding: 4px 10px !important;
  border-radius: 4px !important;
  font-size: 7.5pt !important;
  font-weight: 700 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 5px !important;
}

body.theme-modelo2 .hero-client-sub,
body.theme-modelo2-executive .hero-client-sub {
  color: #cbd5e1 !important;
  font-size: 7.5pt !important;
  font-weight: 600 !important;
  font-family: var(--font-mono) !important;
}

/* Rodapé da Capa Modelo 2 */
body.theme-modelo2 .cover-bottom-section,
body.theme-modelo2-executive .cover-bottom-section {
  margin-top: auto;
}

body.theme-modelo2 .cover-footer-bar,
body.theme-modelo2-executive .cover-footer-bar {
  border-top: 1px solid #e2e8f0;
  padding-top: 8px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

body.theme-modelo2 .cover-footer-text,
body.theme-modelo2-executive .cover-footer-text {
  color: #475569;
  font-size: 7.5pt;
  font-weight: 700;
}

body.theme-modelo2 .cover-page-pill,
body.theme-modelo2-executive .cover-page-pill {
  background: #0f172a;
  color: #ffffff;
  border-radius: 3px;
  padding: 2px 10px;
  font-size: 7.5pt;
  font-family: var(--font-mono);
  font-weight: 700;
}

body.theme-modelo2 .cover-wave-accent,
body.theme-modelo2-executive .cover-wave-accent {
  display: none !important;
}

/* Banner de Foto da Embarcação Modelo 2 (Vignette Técnica de Alta Precisão) */
body.theme-modelo2 .cover-vessel-banner,
body.theme-modelo2-executive .cover-vessel-banner {
  display: flex;
  gap: 10px;
  margin-bottom: 3.5mm;
}

body.theme-modelo2 .cvb-photo-frame,
body.theme-modelo2-executive .cvb-photo-frame {
  flex: 1;
  height: 30mm;
  border-radius: 3px;
  border: 1px solid #1e293b !important;
  box-shadow: none !important;
}

body.theme-modelo2 .cvb-glass-overlay,
body.theme-modelo2-executive .cvb-glass-overlay {
  background: linear-gradient(180deg, transparent 0%, rgba(15, 23, 42, 0.95) 100%) !important;
}

body.theme-modelo2 .cvb-tag,
body.theme-modelo2-executive .cvb-tag {
  color: #38bdf8 !important;
  font-family: var(--font-mono) !important;
}

body.theme-modelo2 .cvb-specs,
body.theme-modelo2-executive .cvb-specs {
  color: #f8fafc !important;
  font-family: var(--font-mono) !important;
  font-size: 6.8pt !important;
}

body.theme-modelo2 .cvb-stamp-box,
body.theme-modelo2-executive .cvb-stamp-box {
  width: 38mm;
  background: #0f172a !important;
  border: 1px solid #1e293b !important;
  border-top: 3px solid #38bdf8 !important;
  border-radius: 3px !important;
}

body.theme-modelo2 .st-top,
body.theme-modelo2-executive .st-top {
  color: #94a3b8 !important;
  font-family: var(--font-mono) !important;
}

body.theme-modelo2 .st-mid,
body.theme-modelo2-executive .st-mid {
  color: #38bdf8 !important;
  font-family: var(--font-mono) !important;
}

body.theme-modelo2 .st-bot,
body.theme-modelo2-executive .st-bot {
  color: #34d399 !important;
  font-family: var(--font-mono) !important;
}

/* Folha 2: Índice Modelo 2 */
body.theme-modelo2 .page-index,
body.theme-modelo2-executive .page-index {
  border-top: 5px solid #0f172a !important;
  border-left: 1px solid #cbd5e1 !important;
  border-right: 1px solid #cbd5e1 !important;
  border-bottom: 1px solid #cbd5e1 !important;
  box-shadow: 0 4px 24px rgba(15, 23, 42, 0.1) !important;
}

body.theme-modelo2 .index-title-box,
body.theme-modelo2-executive .index-title-box {
  border-bottom: 2px solid #0f172a;
  padding-bottom: 2mm;
  margin-bottom: 3mm;
}

body.theme-modelo2 .index-main-title,
body.theme-modelo2-executive .index-main-title {
  color: #0f172a;
  font-family: var(--font-heading);
  font-weight: 900;
}

body.theme-modelo2 .index-sub-title,
body.theme-modelo2-executive .index-sub-title {
  color: #475569;
  font-weight: 700;
  letter-spacing: 0.8px;
}

body.theme-modelo2 .index-summary-banner,
body.theme-modelo2-executive .index-summary-banner {
  border: 1px solid #1e293b;
  border-top: 2.5px solid #38bdf8;
  background: #0f172a;
  border-radius: 4px;
}

body.theme-modelo2 .index-summary-banner .isb-k,
body.theme-modelo2-executive .index-summary-banner .isb-k {
  color: #94a3b8;
}

body.theme-modelo2 .index-summary-banner .isb-v,
body.theme-modelo2-executive .index-summary-banner .isb-v {
  color: #ffffff;
  font-family: var(--font-mono);
}

body.theme-modelo2 .index-table,
body.theme-modelo2-executive .index-table {
  border: 1.5px solid #1e293b;
}

body.theme-modelo2 .index-table th,
body.theme-modelo2-executive .index-table th {
  background-color: #0f172a !important;
  color: #ffffff;
  border: 1px solid #1e293b;
  font-family: var(--font-mono);
  font-size: 7pt;
}

body.theme-modelo2 .status-badge,
body.theme-modelo2-executive .status-badge {
  border-radius: 3px;
  font-family: var(--font-mono);
  font-size: 6.5pt;
  text-transform: uppercase;
}

/* Folhas 3 & 4: Equipamento e Fotos Modelo 2 */
body.theme-modelo2 .doc-main-title,
body.theme-modelo2-executive .doc-main-title {
  color: #0f172a;
  font-family: var(--font-heading);
  font-weight: 900;
}

body.theme-modelo2 .doc-sub-header,
body.theme-modelo2-executive .doc-sub-header {
  border-top: 1.5px solid #0f172a;
  border-bottom: 1.5px solid #0f172a;
  background: #f8fafc;
  color: #0f172a;
}

body.theme-modelo2 .rtd-meta-table,
body.theme-modelo2-executive .rtd-meta-table,
body.theme-modelo2 .rtd-measure-table,
body.theme-modelo2-executive .rtd-measure-table,
body.theme-modelo2 .rtd-trip-table,
body.theme-modelo2-executive .rtd-trip-table {
  border: 1.5px solid #1e293b;
}

body.theme-modelo2 .bg-meta-header,
body.theme-modelo2-executive .bg-meta-header {
  background-color: #0f172a !important;
  color: #ffffff !important;
}

body.theme-modelo2 .th-isolation,
body.theme-modelo2-executive .th-isolation,
body.theme-modelo2 .th-micro,
body.theme-modelo2-executive .th-micro {
  background-color: #1e293b !important;
  color: #38bdf8 !important;
}

body.theme-modelo2 .sub-th,
body.theme-modelo2-executive .sub-th {
  background-color: #f1f5f9 !important;
  color: #0f172a !important;
}

body.theme-modelo2 .col-header-blue,
body.theme-modelo2-executive .col-header-blue {
  background-color: #0f172a !important;
  color: #38bdf8 !important;
  border-bottom: 2px solid #0284c7;
}

body.theme-modelo2 .workshop-col,
body.theme-modelo2-executive .workshop-col {
  border: 1.5px solid #1e293b;
}

body.theme-modelo2 .approved-banner,
body.theme-modelo2-executive .approved-banner {
  background: #064e3b !important;
  color: #ffffff !important;
  border: 1.5px solid #059669;
  font-family: var(--font-mono);
  letter-spacing: 3px;
  border-radius: 3px;
}

body.theme-modelo2 .signature-section,
body.theme-modelo2-executive .signature-section {
  border-top: 2px solid #0f172a;
}

body.theme-modelo2 .tech-name,
body.theme-modelo2-executive .tech-name {
  color: #0f172a;
  font-family: var(--font-heading);
}

body.theme-modelo2 .tech-crt,
body.theme-modelo2-executive .tech-crt {
  font-family: var(--font-mono);
  color: #1e293b;
}

/* -------------------------------------------------------------- */
/* MODELO 3: CLASSIC MARITIME (NAVAL TRADICIONAL / ESTALEIRO EXCEL)*/
/* -------------------------------------------------------------- */
body.theme-modelo3 .rtd-page,
body.theme-modelo3-classic .rtd-page {
  border: 3.5px double #000000 !important;
  box-shadow: none;
  padding: 8mm 12mm 7mm 12mm !important;
}

/* Capa Modelo 3 */
body.theme-modelo3 .page-cover,
body.theme-modelo3-classic .page-cover {
  border: 3.5px double #000000 !important;
}

body.theme-modelo3 .cover-hero-card,
body.theme-modelo3-classic .cover-hero-card {
  background: #f1f5f9 !important;
  border: 2px solid #000000 !important;
  color: #000000 !important;
  box-shadow: none;
  border-radius: 0;
}

body.theme-modelo3 .hero-client-label,
body.theme-modelo3-classic .hero-client-label {
  color: #002060 !important;
}

body.theme-modelo3 .hero-client-name,
body.theme-modelo3-classic .hero-client-name {
  color: #000000 !important;
}

body.theme-modelo3 .hero-unit-name,
body.theme-modelo3-classic .hero-unit-name {
  color: #002060 !important;
}

body.theme-modelo3 .hero-service-title,
body.theme-modelo3-classic .hero-service-title {
  color: #000000 !important;
}

body.theme-modelo3 .hero-service-sub,
body.theme-modelo3-classic .hero-service-sub {
  color: #334155 !important;
}

body.theme-modelo3 .hero-card-footer,
body.theme-modelo3-classic .hero-card-footer {
  color: #000000 !important;
}

body.theme-modelo3 .hero-client-sub,
body.theme-modelo3-classic .hero-client-sub {
  color: #000000 !important;
}

body.theme-modelo3 .hero-box-divider,
body.theme-modelo3-classic .hero-box-divider {
  background: #000000 !important;
}

body.theme-modelo3 .cover-wave-accent,
body.theme-modelo3-classic .cover-wave-accent {
  display: none !important;
}

/* Banner Fotográfico da Embarcação Modelo 3 (Moldura Industrial Estaleiro) */
body.theme-modelo3 .cover-vessel-banner,
body.theme-modelo3-classic .cover-vessel-banner {
  display: flex;
  gap: 10px;
  margin-bottom: 3.5mm;
  border: 2px solid #000000;
  padding: 3px;
  background: #ffffff;
}

body.theme-modelo3 .cvb-photo-frame,
body.theme-modelo3-classic .cvb-photo-frame {
  flex: 1;
  height: 30mm;
  border-radius: 0;
  border: 1px solid #000000 !important;
  box-shadow: none !important;
}

body.theme-modelo3 .cvb-glass-overlay,
body.theme-modelo3-classic .cvb-glass-overlay {
  background: rgba(0, 0, 0, 0.85) !important;
  border-top: 1px solid #000000;
}

body.theme-modelo3 .cvb-tag,
body.theme-modelo3-classic .cvb-tag {
  color: #ffffff !important;
  font-weight: 900 !important;
  font-family: Arial, sans-serif !important;
}

body.theme-modelo3 .cvb-specs,
body.theme-modelo3-classic .cvb-specs {
  color: #ffffff !important;
  font-family: Arial, sans-serif !important;
  font-weight: 800 !important;
}

body.theme-modelo3 .cvb-stamp-box,
body.theme-modelo3-classic .cvb-stamp-box {
  width: 38mm;
  background: #ffffff !important;
  border: 1.5px solid #000000 !important;
  border-radius: 0 !important;
}

body.theme-modelo3 .st-top,
body.theme-modelo3-classic .st-top {
  color: #000000 !important;
  font-weight: 900 !important;
}

body.theme-modelo3 .st-mid,
body.theme-modelo3-classic .st-mid {
  color: #000000 !important;
  font-weight: 900 !important;
  font-size: 8pt !important;
  text-decoration: underline;
}

body.theme-modelo3 .st-bot,
body.theme-modelo3-classic .st-bot {
  color: #000000 !important;
  font-weight: 900 !important;
}

/* Folha 2: Índice Modelo 3 (Moldura Estaleiro) */
body.theme-modelo3 .page-index,
body.theme-modelo3-classic .page-index {
  border: 3.5px double #000000 !important;
  box-shadow: none;
  border-radius: 0;
}

body.theme-modelo3 .cover-main-heading,
body.theme-modelo3-classic .cover-main-heading {
  color: #000000 !important;
  text-decoration: underline;
}

body.theme-modelo3 .cover-badge-pill,
body.theme-modelo3-classic .cover-badge-pill {
  border: 1.5px solid #000000;
  border-radius: 0;
  background: #ffffff;
}

/* Índice Modelo 3 */
body.theme-modelo3 .index-title-box,
body.theme-modelo3-classic .index-title-box {
  border-bottom: 2px solid #000000;
}

body.theme-modelo3 .index-main-title,
body.theme-modelo3-classic .index-main-title {
  color: #000000;
}

body.theme-modelo3 .index-summary-banner,
body.theme-modelo3-classic .index-summary-banner {
  border: 1.5px solid #000000;
  border-radius: 0;
  background: #ffffff;
}

body.theme-modelo3 .index-table,
body.theme-modelo3-classic .index-table {
  border: 1.5px solid #000000;
}

body.theme-modelo3 .index-table th,
body.theme-modelo3-classic .index-table th {
  background-color: #b4c6e7 !important;
  color: #000000 !important;
  border: 1px solid #000000;
  font-weight: 800;
}

body.theme-modelo3 .index-table td,
body.theme-modelo3-classic .index-table td {
  border: 1px solid #000000;
}

body.theme-modelo3 .status-badge,
body.theme-modelo3-classic .status-badge {
  border-radius: 0;
  border: 1px solid #000000;
}

body.theme-modelo3 .badge-appr,
body.theme-modelo3-classic .badge-appr {
  background-color: #a9d08e !important;
  color: #000000 !important;
}

body.theme-modelo3 .badge-repr,
body.theme-modelo3-classic .badge-repr {
  background-color: #f87171 !important;
  color: #000000 !important;
}

/* Folha de Equipamento e Fotos Modelo 3 */
body.theme-modelo3 .doc-main-title,
body.theme-modelo3-classic .doc-main-title {
  color: #000000;
}

body.theme-modelo3 .doc-sub-header,
body.theme-modelo3-classic .doc-sub-header {
  border-top: 2px solid #000000;
  border-bottom: 2px solid #000000;
  color: #000000;
}

body.theme-modelo3 .rtd-meta-table,
body.theme-modelo3-classic .rtd-meta-table,
body.theme-modelo3 .rtd-measure-table,
body.theme-modelo3-classic .rtd-measure-table,
body.theme-modelo3 .rtd-trip-table,
body.theme-modelo3-classic .rtd-trip-table {
  border: 1.5px solid #000000;
}

body.theme-modelo3 .bg-meta-header,
body.theme-modelo3-classic .bg-meta-header {
  background-color: #b4c6e7 !important;
  color: #000000 !important;
  border-bottom: 1.5px solid #000000 !important;
}

body.theme-modelo3 .th-isolation,
body.theme-modelo3-classic .th-isolation,
body.theme-modelo3 .th-micro,
body.theme-modelo3-classic .th-micro {
  background-color: #b4c6e7 !important;
  color: #002060 !important;
}

body.theme-modelo3 .sub-th,
body.theme-modelo3-classic .sub-th {
  background-color: #d9e1f2 !important;
  color: #000000 !important;
}

body.theme-modelo3 .col-header-blue,
body.theme-modelo3-classic .col-header-blue {
  background-color: #b4c6e7 !important;
  color: #000000 !important;
  border-bottom: 1.5px solid #000000;
}

body.theme-modelo3 .approved-banner,
body.theme-modelo3-classic .approved-banner {
  background-color: #a9d08e !important;
  color: #000000 !important;
  border: 1.5px solid #000000;
}

body.theme-modelo3 .page-num-pill,
body.theme-modelo3-classic .page-num-pill,
body.theme-modelo3 .cover-page-pill,
body.theme-modelo3-classic .cover-page-pill {
  background: #000000 !important;
  border-radius: 0;
}

body.theme-modelo3 .signature-section,
body.theme-modelo3-classic .signature-section {
  border-top: 1.5px solid #000000;
}

body.theme-modelo3 .tech-name,
body.theme-modelo3-classic .tech-name {
  color: #000000;
  font-weight: 800;
}

body.theme-modelo3 .tech-crt,
body.theme-modelo3-classic .tech-crt {
  color: #000000;
}

/* ============================================================== */
/* MODAIS INTERATIVOS & ALIBABA DESIGN AGENT                      */
/* ============================================================== */
.modal-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(4px);
  z-index: 100;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.modal-overlay.active { display: flex; }

.modal-box {
  background: #111827;
  border: 1px solid var(--border);
  border-radius: 10px;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.6);
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
}

.modal-lg { max-width: 900px; }
.modal-md { max-width: 600px; }

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

.header-design-agent {
  background: linear-gradient(90deg, #3b0764, #1e1b4b);
  border-color: #6b21a8;
}

.modal-title {
  font-size: 15px;
  font-weight: 800;
  color: #fff;
  display: flex;
  align-items: center;
  gap: 10px;
}

.modal-close {
  background: transparent;
  border: none;
  font-size: 24px;
  color: var(--text-dim);
  cursor: pointer;
}
.modal-close:hover { color: #fff; }

.modal-body { padding: 20px; }
.modal-desc { font-size: 12px; color: var(--text-muted); margin-bottom: 16px; line-height: 1.5; }

.modal-footer {
  padding: 14px 20px;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  background: #0d1424;
}

.btn-cancel { background: rgba(148, 163, 184, 0.1); color: #cbd5e1; }
.btn-primary { background: var(--primary); color: #fff; }

.modal-sections-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

.modal-sec-card {
  background: #0d1424;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 16px;
}

.sec-card-title {
  font-size: 13px;
  font-weight: 800;
  color: var(--cyan);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.logo-upload-wrapper,
.signature-upload-wrapper,
.footer-upload-wrapper {
  display: flex;
  align-items: center;
  gap: 12px;
}

.logo-preview-box,
.signature-preview-box,
.footer-preview-box {
  background: #fff;
  border-radius: 4px;
  padding: 4px 8px;
  height: 44px;
  display: flex;
  align-items: center;
}

.logo-preview-box img,
.signature-preview-box img,
.footer-preview-box img {
  height: 36px;
  object-fit: contain;
}

.btn-upload-file {
  background: rgba(2, 132, 199, 0.2);
  border: 1px solid var(--primary);
  color: var(--cyan);
  padding: 6px 12px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.btn-restore-default {
  background: transparent;
  border: none;
  font-size: 10px;
  color: var(--text-dim);
  cursor: pointer;
  text-decoration: underline;
  margin-top: 4px;
}

.client-logo-select-wrapper {
  display: flex;
  gap: 10px;
  align-items: center;
}

.client-logo-mini-preview {
  width: 60px;
  height: 38px;
  background: #fff;
  border-radius: 4px;
  padding: 2px 4px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.client-logo-mini-preview img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.textarea-design {
  width: 100%;
  background: #090e1a;
  border: 1px solid #334155;
  border-radius: 6px;
  padding: 10px;
  color: #fff;
  font-size: 13px;
  font-family: var(--font-main);
  resize: vertical;
}

.design-quick-prompts {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 10px;
}

.btn-qp {
  background: rgba(168, 85, 247, 0.15);
  border: 1px solid rgba(168, 85, 247, 0.4);
  color: #e9d5ff;
  padding: 5px 10px;
  border-radius: 4px;
  font-size: 11px;
  font-weight: 600;
  cursor: pointer;
}
.btn-qp:hover { background: #9333ea; color: #fff; }

.design-response-box {
  background: #090e1a;
  border: 1px solid #7c3aed;
  border-radius: 6px;
  padding: 14px;
  margin-top: 14px;
}

.drb-title {
  font-size: 12px;
  font-weight: 800;
  color: #c084fc;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.drb-content {
  font-size: 12.5px;
  line-height: 1.6;
  color: #e2e8f0;
  white-space: pre-line;
}

/* ============================================================== */
/* ESTILOS: MODO MOBILE / CAMPO & WIZARD DE ETAPAS                */
/* ============================================================== */

/* Botões da Barra Superior */
.btn-mode-toggle {
  background: rgba(14, 165, 233, 0.15);
  border: 1px solid rgba(56, 189, 248, 0.4);
  color: #38bdf8;
  font-size: 11.5px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.btn-mode-toggle:hover,
body.mobile-mode-active .btn-mode-toggle {
  background: #0284c7;
  color: #ffffff;
  border-color: #38bdf8;
  box-shadow: 0 0 12px rgba(56, 189, 248, 0.4);
}

.btn-design-agent {
  background: linear-gradient(135deg, rgba(147, 51, 234, 0.25), rgba(79, 70, 229, 0.25));
  border: 1px solid rgba(168, 85, 247, 0.5);
  color: #e9d5ff;
  font-size: 11.5px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 13px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
}
.btn-design-agent:hover {
  background: linear-gradient(135deg, #7e22ce, #4338ca);
  color: #ffffff;
  border-color: #c084fc;
  box-shadow: 0 0 15px rgba(168, 85, 247, 0.5);
}

.badge-agent-score {
  background: #10b981;
  color: #022c22;
  font-size: 10px;
  font-weight: 900;
  padding: 1px 6px;
  border-radius: 10px;
  font-family: var(--font-mono);
}
.badge-agent-score.score-warn {
  background: #f59e0b;
  color: #451a03;
}
.badge-agent-score.score-danger {
  background: #ef4444;
  color: #ffffff;
}

.btn-compact-pdf {
  background: linear-gradient(135deg, #f59e0b, #d97706);
  border: 1px solid #fbbf24;
  color: #000000;
  font-size: 11.5px;
  font-weight: 800;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 13px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 8px rgba(245, 158, 11, 0.3);
}
.btn-compact-pdf:hover {
  background: #fbbf24;
  color: #000000;
  box-shadow: 0 0 14px rgba(251, 191, 36, 0.6);
}

/* Barra do Wizard Mobile */
.mobile-wizard-bar {
  display: none;
  background: #091124;
  border-bottom: 1px solid #1e293b;
  padding: 8px 12px;
  overflow-x: auto;
  gap: 6px;
  align-items: center;
  scrollbar-width: none;
}
.mobile-wizard-bar::-webkit-scrollbar { display: none; }

body.mobile-mode-active .mobile-wizard-bar {
  display: flex;
}

.m-step-btn {
  background: #0f1a30;
  border: 1px solid #1e293b;
  color: #94a3b8;
  padding: 7px 12px;
  border-radius: 6px;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  transition: all 0.2s ease;
  flex-shrink: 0;
}
.m-step-btn:hover {
  background: #1e293b;
  color: #e2e8f0;
}
.m-step-btn.active {
  background: #0284c7;
  border-color: #38bdf8;
  color: #ffffff;
  box-shadow: 0 2px 8px rgba(2, 132, 199, 0.4);
}

.m-step-badge {
  background: rgba(0, 0, 0, 0.3);
  font-size: 10px;
  font-weight: 800;
  padding: 1px 5px;
  border-radius: 8px;
  color: #f8fafc;
}

/* Regras quando Mobile Mode está ativo */
body.mobile-mode-active .editor-grid {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

body.mobile-mode-active .col-left,
body.mobile-mode-active .col-right {
  width: 100%;
}

body.mobile-mode-active .step-section {
  display: none;
}

body.mobile-mode-active .step-section.active-step {
  display: block;
  animation: fadeInStep 0.25s ease-out;
}

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

/* Ferramentas de Agilidade: Megger 1-Clique & Micro-Ohms */
.subcol-header-flex {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.btn-quick-megger {
  background: rgba(2, 132, 199, 0.2);
  border: 1px solid #0284c7;
  color: #38bdf8;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: all 0.15s ease;
}
.btn-quick-megger:hover {
  background: #0284c7;
  color: #ffffff;
}

.micro-ohms-calc-badge {
  background: #0a1324;
  border: 1px solid #1e293b;
  border-radius: 6px;
  padding: 8px 12px;
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.moc-title {
  font-size: 11px;
  color: #94a3b8;
  font-weight: 600;
}
.moc-val {
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 800;
  color: #38bdf8;
}
.moc-status {
  font-size: 10.5px;
  font-weight: 800;
  color: #10b981;
}

.btn-camera {
  color: #38bdf8 !important;
}
.btn-camera:hover {
  background: rgba(56, 189, 248, 0.2) !important;
}

.badge-photos-progress {
  font-size: 11px;
  background: #0284c7;
  color: #fff;
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 800;
  font-family: var(--font-mono);
}

/* Bloco 5: IA Dashboard */
.header-step-ia {
  background: linear-gradient(90deg, #3b0764, #1e1b4b) !important;
  border-color: #6b21a8 !important;
}

.step-ia-dashboard {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.si-score-box {
  background: #0d1527;
  border: 1px solid #1e293b;
  border-radius: 8px;
  padding: 14px 18px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.si-score-num {
  font-size: 32px;
  font-weight: 900;
  color: #10b981;
  font-family: var(--font-heading);
  min-width: 55px;
}

.si-score-info strong {
  display: block;
  font-size: 14px;
  color: #ffffff;
}
.si-score-info span {
  font-size: 12px;
  color: #94a3b8;
}

.si-buttons-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.btn-large {
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  border-radius: 8px;
  text-align: left;
}
.btn-large i { font-size: 22px; }
.btn-large strong { display: block; font-size: 13px; }
.btn-large small { display: block; font-size: 10px; opacity: 0.85; font-weight: normal; }

.btn-block {
  width: 100%;
  justify-content: center;
  padding: 10px;
  font-size: 13px;
}

/* ============================================================== */
/* ESTILOS: VERSÃO COMPACTA DO PDF (#pageCompact)                 */
/* ============================================================== */
.page-compact {
  width: 297mm;
  height: 210mm;
  max-height: 210mm;
  padding: 6mm 10mm 5mm 10mm !important;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
  overflow: hidden;
  background: #ffffff !important;
  color: #000000 !important;
  font-family: Arial, Helvetica, sans-serif !important;
  border: 1.5px solid #002b66 !important;
}

/* Cabeçalho Compacto */
.compact-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 2px solid #002b66;
  padding-bottom: 3mm;
  margin-bottom: 2mm;
}

.ch-left {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 32%;
}
.ch-logo {
  height: 38px;
  max-width: 130px;
  object-fit: contain;
}
.ch-company-meta strong {
  display: block;
  font-size: 9.5pt;
  color: #002b66;
  font-weight: 900;
  line-height: 1.1;
}
.ch-company-meta span {
  display: block;
  font-size: 6.5pt;
  color: #475569;
  line-height: 1.2;
}

.ch-center {
  text-align: center;
  width: 44%;
}
.ch-title-main {
  font-size: 10pt;
  font-weight: 900;
  color: #002b66;
  letter-spacing: 0.3px;
  text-transform: uppercase;
}
.ch-sub-bar {
  font-size: 7.5pt;
  color: #0f172a;
  margin-top: 2px;
  display: flex;
  justify-content: center;
  gap: 6px;
  font-weight: 600;
}
.ch-sub-bar strong { color: #0284c7; }

.ch-right {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  width: 24%;
}
.ch-client-logo {
  height: 34px;
  max-width: 90px;
  object-fit: contain;
}
.compact-badge-rtd {
  background: #002b66;
  color: #ffffff;
  font-size: 7.5pt;
  font-weight: 800;
  padding: 3px 8px;
  border-radius: 4px;
  font-family: var(--font-mono);
  white-space: nowrap;
}

/* Faixa de Identificação */
.compact-id-strip {
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  padding: 2.5mm 3mm;
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 2.5mm;
}
.cid-col {
  display: flex;
  flex-direction: column;
}
.cid-k {
  font-size: 6pt;
  font-weight: 800;
  color: #475569;
  text-transform: uppercase;
}
.cid-v {
  font-size: 8pt;
  font-weight: 800;
  color: #0f172a;
  white-space: nowrap;
}
.cid-v.highlight {
  color: #002b66;
  font-size: 8.5pt;
}
.cid-v.in-badge {
  background: #ffff00;
  color: #000000;
  padding: 1px 6px;
  border-radius: 3px;
}
.cid-status-badge {
  background: #a9d08e;
  color: #000000;
  font-size: 8.5pt;
  font-weight: 900;
  padding: 3px 12px;
  border-radius: 4px;
  border: 1px solid #548235;
}

/* Tabelas Compactas */
.compact-tables-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4mm;
  margin-bottom: 2.5mm;
}
.ct-box-title {
  font-size: 7.5pt;
  font-weight: 900;
  color: #002b66;
  text-transform: uppercase;
  margin-bottom: 1.5mm;
  display: flex;
  align-items: center;
  gap: 4px;
}
.ct-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 7pt;
}
.ct-table td, .ct-table th {
  border: 1px solid #cbd5e1;
  padding: 1.5mm 2.5mm;
}
.ct-lbl {
  font-weight: 800;
  color: #1e293b;
  width: 42%;
  background: #f8fafc;
}
.ct-val {
  font-weight: 700;
  color: #002b66;
  font-family: var(--font-mono);
}

.ct-measures-table thead th {
  background: #002b66;
  color: #ffffff;
  font-size: 6.5pt;
  font-weight: 800;
  padding: 1.5mm;
  text-align: center;
}
.ct-measures-table td {
  font-size: 6.8pt;
  font-family: var(--font-mono);
}
.conform-cell {
  background: #f0fdf4 !important;
  color: #166534 !important;
  font-weight: 800 !important;
  text-align: center !important;
}

.compact-inst-list {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  padding: 1.5mm 2mm;
  border-radius: 3px;
  display: flex;
  flex-direction: column;
  gap: 1px;
}
.compact-inst-list span {
  font-size: 6.2pt;
  color: #334155;
  font-weight: 600;
}

/* Fotos Compactas */
.compact-photos-section {
  margin-bottom: 2mm;
}
.compact-photos-title {
  font-size: 7.5pt;
  font-weight: 900;
  color: #002b66;
  text-transform: uppercase;
  margin-bottom: 1.5mm;
  display: flex;
  align-items: center;
  gap: 4px;
}
.compact-photos-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 3mm;
}
.cp-card {
  border: 1px solid #002b66;
  border-radius: 3px;
  overflow: hidden;
  background: #f8fafc;
  display: flex;
  flex-direction: column;
}
.cp-label {
  background: #002b66;
  color: #ffffff;
  font-size: 6pt;
  font-weight: 800;
  text-align: center;
  padding: 1.5mm 1mm;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cp-frame {
  height: 48mm;
  background: #ffffff;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.cp-frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Rodapé Compacto */
.compact-footer-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  border-top: 1.5px solid #002b66;
  padding-top: 2mm;
}
.cf-signature-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 180px;
}
.cf-sig-img {
  height: 28px;
  object-fit: contain;
}
.cf-tech-name { font-size: 8pt; font-weight: 900; color: #002b66; }
.cf-tech-role { font-size: 6pt; color: #475569; font-weight: 600; }
.cf-tech-crt { font-size: 6.8pt; font-weight: 800; color: #0f172a; }

.cf-cert-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.cf-cert-img {
  height: 24px;
  object-fit: contain;
}
.cf-note {
  font-size: 5.5pt;
  color: #64748b;
  text-align: center;
}

.cf-page-pill {
  background: #002b66;
  color: #ffffff;
  font-size: 6.5pt;
  font-weight: 800;
  padding: 2px 8px;
  border-radius: 4px;
}

/* ============================================================== */
/* ESTILOS ESPECÍFICOS DOS 3 MODELOS PARA O RELATÓRIO RESUMIDO    */
/* ============================================================== */

/* -------------------------------------------------------------- */
/* MODELO 1: UNITED POWER MODERN (PADRÃO OFFSHORE ELEGANTE)       */
/* -------------------------------------------------------------- */
body.theme-modelo1 .page-compact,
body.theme-modelo1-united .page-compact,
body.theme-modelo1 #pageCompact,
body.theme-modelo1-united #pageCompact {
  border: 1.5px solid #002b66 !important;
  border-radius: 4px;
}
body.theme-modelo1 .compact-header,
body.theme-modelo1-united .compact-header {
  border-bottom: 2px solid #002b66;
}
body.theme-modelo1 .ch-company-meta strong,
body.theme-modelo1-united .ch-company-meta strong,
body.theme-modelo1 .ch-title-main,
body.theme-modelo1-united .ch-title-main {
  color: #002b66;
}
body.theme-modelo1 .compact-badge-rtd,
body.theme-modelo1-united .compact-badge-rtd {
  background: #002b66;
  color: #ffffff;
}
body.theme-modelo1 .cid-v.highlight,
body.theme-modelo1-united .cid-v.highlight {
  color: #002b66;
}
body.theme-modelo1 .ct-box-title,
body.theme-modelo1-united .ct-box-title,
body.theme-modelo1 .compact-photos-title,
body.theme-modelo1-united .compact-photos-title {
  color: #002b66;
}
body.theme-modelo1 .ct-measures-table thead th,
body.theme-modelo1-united .ct-measures-table thead th {
  background: #002b66 !important;
  color: #ffffff !important;
}
body.theme-modelo1 .cp-card,
body.theme-modelo1-united .cp-card {
  border: 1px solid #002b66;
}
body.theme-modelo1 .cp-label,
body.theme-modelo1-united .cp-label {
  background: #002b66;
  color: #ffffff;
}
body.theme-modelo1 .compact-footer-row,
body.theme-modelo1-united .compact-footer-row {
  border-top: 1.5px solid #002b66;
}
body.theme-modelo1 .cf-tech-name,
body.theme-modelo1-united .cf-tech-name {
  color: #002b66;
}
body.theme-modelo1 .cf-page-pill,
body.theme-modelo1-united .cf-page-pill {
  background: #002b66;
  color: #ffffff;
}

/* -------------------------------------------------------------- */
/* MODELO 2: EXECUTIVE ENGINEERING (DOSSIÊ TÉCNICO GRAFITE/SLATE) */
/* -------------------------------------------------------------- */
body.theme-modelo2 .page-compact,
body.theme-modelo2-executive .page-compact,
body.theme-modelo2 #pageCompact,
body.theme-modelo2-executive #pageCompact {
  border: 1px solid #cbd5e1 !important;
  border-top: 5px solid #0f172a !important;
  border-radius: 2px !important;
  box-shadow: 0 4px 24px rgba(15, 23, 42, 0.1) !important;
}
body.theme-modelo2 .compact-header,
body.theme-modelo2-executive .compact-header {
  border-bottom: 2px solid #0f172a;
}
body.theme-modelo2 .ch-company-meta strong,
body.theme-modelo2-executive .ch-company-meta strong {
  color: #0f172a;
  font-family: var(--font-heading);
  letter-spacing: 0.3px;
}
body.theme-modelo2 .ch-title-main,
body.theme-modelo2-executive .ch-title-main {
  color: #0f172a;
  font-family: var(--font-heading);
  font-weight: 900;
  letter-spacing: 0.5px;
}
body.theme-modelo2 .ch-sub-bar strong,
body.theme-modelo2-executive .ch-sub-bar strong {
  color: #0f172a;
}
body.theme-modelo2 .compact-badge-rtd,
body.theme-modelo2-executive .compact-badge-rtd {
  background: #0f172a;
  color: #38bdf8;
  font-family: var(--font-mono);
  border: 1px solid #1e293b;
  border-radius: 3px;
  font-weight: 700;
}
body.theme-modelo2 .compact-id-strip,
body.theme-modelo2-executive .compact-id-strip {
  background: #0f172a;
  border: 1px solid #1e293b;
  border-radius: 3px;
}
body.theme-modelo2 .cid-k,
body.theme-modelo2-executive .cid-k {
  color: #94a3b8;
  font-family: var(--font-mono);
}
body.theme-modelo2 .cid-v,
body.theme-modelo2-executive .cid-v {
  color: #f8fafc;
  font-family: var(--font-mono);
}
body.theme-modelo2 .cid-v.highlight,
body.theme-modelo2-executive .cid-v.highlight {
  color: #38bdf8;
  font-weight: 800;
}
body.theme-modelo2 .cid-status-badge,
body.theme-modelo2-executive .cid-status-badge {
  background: #064e3b;
  color: #34d399;
  border: 1px solid #059669;
  font-family: var(--font-mono);
  font-weight: 800;
  border-radius: 3px;
}
body.theme-modelo2 .ct-box-title,
body.theme-modelo2-executive .ct-box-title {
  color: #0f172a;
  font-family: var(--font-heading);
  font-weight: 800;
  border-left: 3px solid #0f172a;
  padding-left: 5px;
}
body.theme-modelo2 .ct-table,
body.theme-modelo2-executive .ct-table {
  border: 1.5px solid #1e293b;
}
body.theme-modelo2 .ct-table td,
body.theme-modelo2-executive .ct-table td {
  border: 1px solid #cbd5e1;
}
body.theme-modelo2 .ct-lbl,
body.theme-modelo2-executive .ct-lbl {
  background: #f1f5f9;
  color: #0f172a;
  font-weight: 700;
}
body.theme-modelo2 .ct-val,
body.theme-modelo2-executive .ct-val {
  color: #0f172a;
  font-family: var(--font-mono);
}
body.theme-modelo2 .ct-measures-table thead th,
body.theme-modelo2-executive .ct-measures-table thead th {
  background: #0f172a !important;
  color: #38bdf8 !important;
  font-family: var(--font-mono);
  font-weight: 700;
  border: 1px solid #1e293b;
}
body.theme-modelo2 .conform-cell,
body.theme-modelo2-executive .conform-cell {
  background: #ecfdf5 !important;
  color: #047857 !important;
  font-family: var(--font-mono);
}
body.theme-modelo2 .compact-inst-list,
body.theme-modelo2-executive .compact-inst-list {
  background: #f8fafc;
  border: 1px solid #cbd5e1;
  border-left: 3px solid #0f172a;
}
body.theme-modelo2 .compact-photos-title,
body.theme-modelo2-executive .compact-photos-title {
  color: #0f172a;
  font-family: var(--font-heading);
  font-weight: 800;
  border-left: 3px solid #0f172a;
  padding-left: 5px;
}
body.theme-modelo2 .cp-card,
body.theme-modelo2-executive .cp-card {
  border: 1.5px solid #1e293b;
  border-radius: 3px;
}
body.theme-modelo2 .cp-label,
body.theme-modelo2-executive .cp-label {
  background: #0f172a;
  color: #38bdf8;
  font-family: var(--font-mono);
  font-size: 6.5pt;
  letter-spacing: 0.5px;
}
body.theme-modelo2 .compact-footer-row,
body.theme-modelo2-executive .compact-footer-row {
  border-top: 2px solid #0f172a;
}
body.theme-modelo2 .cf-tech-name,
body.theme-modelo2-executive .cf-tech-name {
  color: #0f172a;
  font-family: var(--font-heading);
  font-weight: 900;
}
body.theme-modelo2 .cf-tech-crt,
body.theme-modelo2-executive .cf-tech-crt {
  color: #0f172a;
  font-family: var(--font-mono);
}
body.theme-modelo2 .cf-page-pill,
body.theme-modelo2-executive .cf-page-pill {
  background: #0f172a;
  color: #38bdf8;
  font-family: var(--font-mono);
  border-radius: 3px;
  border: 1px solid #1e293b;
}

/* -------------------------------------------------------------- */
/* MODELO 3: CLASSIC MARITIME (NAVAL TRADICIONAL / ESTALEIRO)     */
/* -------------------------------------------------------------- */
body.theme-modelo3 .page-compact,
body.theme-modelo3-classic .page-compact,
body.theme-modelo3 #pageCompact,
body.theme-modelo3-classic #pageCompact {
  border: 3.5px double #000000 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  padding: 6mm 9mm 5mm 9mm !important;
}
body.theme-modelo3 .compact-header,
body.theme-modelo3-classic .compact-header {
  border-bottom: 2px solid #000000;
}
body.theme-modelo3 .ch-company-meta strong,
body.theme-modelo3-classic .ch-company-meta strong {
  color: #000000;
  font-weight: 900;
}
body.theme-modelo3 .ch-title-main,
body.theme-modelo3-classic .ch-title-main {
  color: #000000;
  font-weight: 900;
  letter-spacing: 0.5px;
}
body.theme-modelo3 .ch-sub-bar strong,
body.theme-modelo3-classic .ch-sub-bar strong {
  color: #002060;
}
body.theme-modelo3 .compact-badge-rtd,
body.theme-modelo3-classic .compact-badge-rtd {
  background: #000000;
  color: #ffffff;
  border: 1px solid #000000;
  border-radius: 0;
  font-weight: 900;
}
body.theme-modelo3 .compact-id-strip,
body.theme-modelo3-classic .compact-id-strip {
  background: #ffffff;
  border: 2px solid #000000;
  border-radius: 0;
}
body.theme-modelo3 .cid-k,
body.theme-modelo3-classic .cid-k {
  color: #000000;
  font-weight: 900;
}
body.theme-modelo3 .cid-v,
body.theme-modelo3-classic .cid-v {
  color: #000000;
  font-weight: 800;
}
body.theme-modelo3 .cid-v.highlight,
body.theme-modelo3-classic .cid-v.highlight {
  color: #002060;
  font-weight: 900;
}
body.theme-modelo3 .cid-status-badge,
body.theme-modelo3-classic .cid-status-badge {
  background: #a9d08e;
  color: #000000;
  border: 1.5px solid #000000;
  border-radius: 0;
  font-weight: 900;
}
body.theme-modelo3 .ct-box-title,
body.theme-modelo3-classic .ct-box-title {
  color: #000000;
  font-weight: 900;
  border-bottom: 1.5px solid #000000;
  display: inline-flex;
  padding-bottom: 1px;
}
body.theme-modelo3 .ct-table,
body.theme-modelo3-classic .ct-table {
  border: 2px solid #000000;
}
body.theme-modelo3 .ct-table td,
body.theme-modelo3-classic .ct-table td {
  border: 1px solid #000000;
}
body.theme-modelo3 .ct-lbl,
body.theme-modelo3-classic .ct-lbl {
  background: #f2f2f2;
  color: #000000;
  font-weight: 800;
}
body.theme-modelo3 .ct-val,
body.theme-modelo3-classic .ct-val {
  color: #000000;
  font-weight: 700;
}
body.theme-modelo3 .ct-measures-table thead th,
body.theme-modelo3-classic .ct-measures-table thead th {
  background: #000000 !important;
  color: #ffffff !important;
  border: 1px solid #000000;
  font-weight: 900;
}
body.theme-modelo3 .conform-cell,
body.theme-modelo3-classic .conform-cell {
  background: #e2efda !important;
  color: #375623 !important;
  font-weight: 800 !important;
}
body.theme-modelo3 .compact-inst-list,
body.theme-modelo3-classic .compact-inst-list {
  background: #ffffff;
  border: 1.5px solid #000000;
  border-radius: 0;
}
body.theme-modelo3 .compact-photos-title,
body.theme-modelo3-classic .compact-photos-title {
  color: #000000;
  font-weight: 900;
  border-bottom: 1.5px solid #000000;
  display: inline-flex;
  padding-bottom: 1px;
}
body.theme-modelo3 .cp-card,
body.theme-modelo3-classic .cp-card {
  border: 1.5px solid #000000;
  border-radius: 0;
}
body.theme-modelo3 .cp-label,
body.theme-modelo3-classic .cp-label {
  background: #000000;
  color: #ffffff;
  border-radius: 0;
  font-weight: 900;
}
body.theme-modelo3 .compact-footer-row,
body.theme-modelo3-classic .compact-footer-row {
  border-top: 2px solid #000000;
}
body.theme-modelo3 .cf-tech-name,
body.theme-modelo3-classic .cf-tech-name {
  color: #000000;
  font-weight: 900;
}
body.theme-modelo3 .cf-tech-crt,
body.theme-modelo3-classic .cf-tech-crt {
  color: #000000;
  font-weight: 800;
}
body.theme-modelo3 .cf-page-pill,
body.theme-modelo3-classic .cf-page-pill {
  background: #ffffff;
  color: #000000;
  border: 1.5px solid #000000;
  border-radius: 0;
  font-weight: 900;
}

/* ============================================================== */
/* ESTILOS: AGENTE DE DESIGN IA STUDIO (MODAL & ERROS & IDEIAS)   */
/* ============================================================== */
.badge-qwen-studio {
  background: #6b21a8;
  color: #f3e8ff;
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 700;
  font-family: var(--font-mono);
}

.agent-score-card {
  background: linear-gradient(135deg, #091326, #141738);
  border: 1px solid #3b82f6;
  border-radius: 10px;
  padding: 16px 20px;
  display: flex;
  align-items: center;
  gap: 24px;
  margin-bottom: 20px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

.score-circle-box {
  background: #0b1120;
  border: 3px solid #10b981;
  border-radius: 50%;
  width: 90px;
  height: 90px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 0 20px rgba(16, 185, 129, 0.3);
}
.score-number {
  font-size: 32px;
  font-weight: 900;
  color: #10b981;
  line-height: 1;
}
.score-max {
  font-size: 11px;
  color: #64748b;
  font-weight: 700;
}

.score-details {
  flex: 1;
}
.score-status-title {
  font-size: 15px;
  font-weight: 900;
  color: #ffffff;
  margin-bottom: 4px;
}
.score-desc {
  font-size: 12px;
  color: #94a3b8;
  margin-bottom: 12px;
  line-height: 1.4;
}

.score-quick-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.btn-agent-action {
  background: rgba(148, 163, 184, 0.15);
  border: 1px solid #475569;
  color: #f1f5f9;
  font-size: 11px;
  font-weight: 700;
  padding: 5px 12px;
  border-radius: 5px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.15s ease;
}
.btn-agent-action:hover { background: #334155; color: #fff; }
.btn-apply-compact {
  background: rgba(245, 158, 11, 0.2);
  border-color: #f59e0b;
  color: #fbbf24;
}
.btn-apply-compact:hover { background: #f59e0b; color: #000; }
.btn-apply-full {
  background: rgba(16, 185, 129, 0.2);
  border-color: #10b981;
  color: #34d399;
}
.btn-apply-full:hover { background: #10b981; color: #fff; }

/* Tabs do Studio */
.agent-studio-tabs {
  display: flex;
  gap: 8px;
  border-bottom: 1px solid #1e293b;
  padding-bottom: 10px;
  margin-bottom: 16px;
}
.studio-tab-btn {
  background: transparent;
  border: 1px solid transparent;
  color: #94a3b8;
  font-size: 12.5px;
  font-weight: 700;
  padding: 8px 14px;
  border-radius: 6px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.2s ease;
}
.studio-tab-btn:hover { color: #f8fafc; background: rgba(255, 255, 255, 0.05); }
.studio-tab-btn.active {
  background: #1e293b;
  color: #38bdf8;
  border-color: #38bdf8;
}

.studio-tab-content { display: none; }
.studio-tab-content.active { display: block; }

/* Cards de Erros e Alertas */
.audit-error-card {
  background: rgba(239, 68, 68, 0.08);
  border: 1px solid rgba(239, 68, 68, 0.3);
  border-left: 4px solid #ef4444;
  border-radius: 6px;
  padding: 12px 14px;
  margin-bottom: 10px;
}
.aec-header {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #f87171;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 4px;
}
.aec-msg { font-size: 12.5px; color: #f1f5f9; font-weight: 600; margin-bottom: 6px; }
.aec-fix { font-size: 11.5px; color: #cbd5e1; line-height: 1.4; }
.aec-fix strong { color: #38bdf8; }

.audit-alert-card {
  background: rgba(245, 158, 11, 0.08);
  border: 1px solid rgba(245, 158, 11, 0.3);
  border-left: 4px solid #f59e0b;
  border-radius: 6px;
  padding: 12px 14px;
  margin-bottom: 10px;
}
.aac-header {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #fbbf24;
  font-size: 12px;
  font-weight: 800;
  margin-bottom: 4px;
}
.aac-msg { font-size: 12.5px; color: #f1f5f9; font-weight: 600; margin-bottom: 6px; }
.aac-fix { font-size: 11.5px; color: #cbd5e1; }

.audit-success-banner {
  background: rgba(16, 185, 129, 0.1);
  border: 1.5px solid #10b981;
  border-radius: 8px;
  padding: 18px;
  text-align: center;
  color: #34d399;
}
.audit-success-banner i { font-size: 32px; margin-bottom: 8px; }
.audit-success-banner h4 { font-size: 15px; font-weight: 900; color: #ffffff; }
.audit-success-banner p { font-size: 12px; color: #a7f3d0; margin-top: 4px; }

/* Grid de Ideias */
.ideas-cards-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.idea-card {
  background: #0d1527;
  border: 1px solid #1e293b;
  border-radius: 8px;
  padding: 14px;
}
.idea-card-title {
  font-size: 12.5px;
  font-weight: 800;
  color: #c084fc;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.idea-card-desc {
  font-size: 11.8px;
  color: #cbd5e1;
  line-height: 1.5;
}

/* Chat com Agente */
.agent-chat-wrapper {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.chat-quick-chips {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
}
.chat-chip {
  background: rgba(168, 85, 247, 0.12);
  border: 1px solid rgba(168, 85, 247, 0.3);
  color: #e9d5ff;
  font-size: 11px;
  font-weight: 600;
  padding: 5px 10px;
  border-radius: 14px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.chat-chip:hover {
  background: #7e22ce;
  color: #ffffff;
}

.chat-input-bar {
  display: flex;
  gap: 8px;
}
.chat-input-bar input {
  flex: 1;
  background: #080d18;
  border: 1px solid #334155;
  border-radius: 6px;
  padding: 10px 14px;
  color: #ffffff;
  font-size: 13px;
  outline: none;
}
.chat-input-bar input:focus { border-color: #38bdf8; }

.agent-response-area {
  background: #0a1122;
  border: 1.5px solid #7c3aed;
  border-radius: 8px;
  padding: 14px 18px;
  margin-top: 6px;
}
.response-header {
  font-size: 12px;
  font-weight: 800;
  color: #c084fc;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.response-body {
  font-size: 12.5px;
  line-height: 1.6;
  color: #e2e8f0;
  white-space: pre-line;
}

/* ============================================================== */
/* ESTILOS: CARDS DE AUDITORIA E IDEIAS (AGENTE IA)              */
/* ============================================================== */
.audit-section-title {
  font-size: 12px;
  font-weight: 800;
  padding: 6px 10px;
  border-radius: 5px;
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}
.audit-errors-title {
  background: rgba(239, 68, 68, 0.12);
  color: #fca5a5;
  border: 1px solid rgba(239, 68, 68, 0.3);
}
.audit-alerts-title {
  background: rgba(245, 158, 11, 0.12);
  color: #fcd34d;
  border: 1px solid rgba(245, 158, 11, 0.3);
}

.audit-item {
  border-radius: 6px;
  padding: 10px 14px;
  margin-bottom: 8px;
  border-left: 3px solid;
}
.audit-item-error {
  background: rgba(239, 68, 68, 0.07);
  border-left-color: #ef4444;
}
.audit-item-alert {
  background: rgba(245, 158, 11, 0.07);
  border-left-color: #f59e0b;
}
.audit-item-cat {
  font-size: 10px;
  font-weight: 800;
  color: #94a3b8;
  display: flex;
  align-items: center;
  gap: 4px;
  margin-bottom: 3px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}
.audit-item-msg {
  font-size: 12.5px;
  color: #f1f5f9;
  font-weight: 600;
  line-height: 1.4;
  margin-bottom: 5px;
}
.audit-item-sol {
  font-size: 11.5px;
  color: #7dd3fc;
  line-height: 1.4;
  display: flex;
  align-items: flex-start;
  gap: 5px;
}

.audit-all-clear {
  background: rgba(16, 185, 129, 0.1);
  border: 1px solid rgba(16, 185, 129, 0.3);
  border-radius: 8px;
  padding: 18px 20px;
  text-align: center;
  color: #a7f3d0;
  font-size: 13px;
  line-height: 1.6;
}
.audit-all-clear i { font-size: 20px; color: #10b981; margin-bottom: 4px; display: block; }

/* GRID DE IDEIAS */
.ideas-cards-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.idea-card {
  background: linear-gradient(135deg, rgba(124, 58, 237, 0.1), rgba(59, 130, 246, 0.08));
  border: 1px solid rgba(124, 58, 237, 0.3);
  border-radius: 8px;
  padding: 12px 14px;
  transition: border-color 0.15s ease;
}
.idea-card:hover { border-color: #7c3aed; }
.idea-card-title {
  font-size: 12px;
  font-weight: 800;
  color: #c084fc;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.idea-card-title i { color: #f59e0b; }
.idea-card-desc {
  font-size: 12px;
  color: #cbd5e1;
  line-height: 1.5;
}

/* ============================================================== */
/* ESTILOS: BARRA STICKY MOBILE                                   */
/* ============================================================== */
.mobile-sticky-bar {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(9, 16, 31, 0.95);
  backdrop-filter: blur(10px);
  border-top: 1px solid #1e293b;
  padding: 8px 12px;
  z-index: 80;
  justify-content: space-around;
  align-items: center;
  gap: 6px;
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.6);
}

body.mobile-mode-active .mobile-sticky-bar {
  display: flex;
}

.m-bar-btn {
  background: #0f192e;
  border: 1px solid #1e293b;
  color: #e2e8f0;
  font-size: 11px;
  font-weight: 700;
  padding: 7px 10px;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 3px;
  flex: 1;
  text-align: center;
  transition: all 0.15s ease;
}
.m-bar-btn i { font-size: 14px; }
.m-bar-btn-compact {
  background: rgba(245, 158, 11, 0.2);
  border-color: #f59e0b;
  color: #fbbf24;
}
.m-bar-btn-full {
  background: rgba(16, 185, 129, 0.2);
  border-color: #10b981;
  color: #34d399;
}

/* RESPONSIVIDADE AUTOMÁTICA EM TELAS PEQUENAS (SMARTPHONES) */
@media screen and (max-width: 900px) {
  .app-navbar {
    padding: 8px 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
  }
  .workflow-steps-bar {
    display: none;
  }
  .nav-right {
    gap: 6px;
    display: flex;
    align-items: center;
  }
  .nav-brand .brand-sub {
    display: none;
  }
  .nav-brand .brand-title {
    font-size: 13px;
  }
  .theme-selector-bar {
    padding: 6px 10px;
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
  }
  .theme-bar-left {
    flex-direction: column;
    align-items: stretch;
    gap: 6px;
  }
  .theme-bar-title {
    font-size: 10px;
  }
  .theme-buttons-group {
    display: flex;
    width: 100%;
    gap: 4px;
  }
  .theme-choice-btn {
    flex: 1;
    padding: 6px 4px;
    font-size: 10px;
    justify-content: center;
    text-align: center;
  }
  .theme-choice-btn span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .theme-bar-right {
    display: none;
  }
  .mobile-wizard-bar {
    display: flex;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .mobile-wizard-bar::-webkit-scrollbar {
    display: none;
  }
  .m-step-btn {
    flex: 1;
    min-width: 60px;
    padding: 6px 2px;
    font-size: 10px;
  }
  .editor-grid {
    display: flex;
    flex-direction: column;
  }
  .photos-2x2-grid {
    grid-template-columns: 1fr;
  }
  .mobile-sticky-bar {
    display: flex;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 999;
    background: #0f172a;
    border-top: 1px solid #1e293b;
    padding: 6px 8px;
    box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
  }
  .m-bar-btn {
    flex: 1;
    padding: 8px 4px;
    font-size: 11px;
  }
  body {
    padding-bottom: 64px;
  }
}

/* ============================================================== */
/* ESTILOS: PAINEL ETAPA 5 — VALIDAÇÃO NORMATIVA & PDF            */
/* ============================================================== */
.header-step-normas {
  background: linear-gradient(90deg, #064e3b, #0f2e24);
  border-bottom-color: #10b981;
  color: #6ee7b7;
}
.header-step-normas i { color: #34d399; }

.step-normas-dashboard {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.normas-status-box {
  display: flex;
  align-items: center;
  gap: 16px;
  background: linear-gradient(135deg, #06241a, #0b1a16);
  border: 1px solid #059669;
  border-radius: 8px;
  padding: 14px 18px;
  transition: all 0.3s ease;
}
.normas-status-box.status-alerta {
  background: linear-gradient(135deg, #2a1b05, #1d1405);
  border-color: #d97706;
}
.normas-status-box.status-critico {
  background: linear-gradient(135deg, #2b0b0b, #1a0808);
  border-color: #dc2626;
}

.normas-score-num {
  font-size: 40px;
  font-weight: 900;
  color: #34d399;
  font-family: var(--font-mono);
  line-height: 1;
  min-width: 68px;
  text-align: center;
}
.normas-status-box.status-alerta .normas-score-num { color: #f59e0b; }
.normas-status-box.status-critico .normas-score-num { color: #ef4444; }

.normas-score-info {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.normas-score-info strong {
  font-size: 14px;
  color: #f1f5f9;
  letter-spacing: 0.5px;
}
.normas-score-info span {
  font-size: 11px;
  color: #94a3b8;
  line-height: 1.4;
}

.normas-checklist {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: #0b1120;
  border: 1px solid #1e293b;
  border-radius: 8px;
  padding: 12px 14px;
}

.norma-check-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 12px;
  color: #cbd5e1;
  padding: 8px 10px;
  border-radius: 4px;
  background: rgba(15, 23, 42, 0.6);
  border-left: 3px solid #10b981;
  transition: all 0.2s ease;
}
.norma-check-item.item-pendente {
  border-left-color: #f59e0b;
  color: #e2e8f0;
  background: rgba(245, 158, 11, 0.08);
}
.norma-check-item i {
  font-size: 15px;
  flex-shrink: 0;
}
.text-success { color: #10b981; }
.text-danger { color: #ef4444; }
.text-warning { color: #f59e0b; }

/* Modificadores de tamanho para botões grandes */
.btn-large {
  padding: 14px 16px !important;
  font-size: 13px !important;
  border-radius: 8px !important;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  width: 100%;
  text-align: left;
}
.btn-large i { font-size: 20px; margin-bottom: 2px; }
.btn-large small { font-size: 10px; font-weight: 500; opacity: 0.8; display: block; }
.btn-large strong { font-size: 12px; display: block; }

.btn-block {
  width: 100%;
  justify-content: center;
  padding: 12px 16px !important;
}

/* ============================================================== */
/* NOTIFICAÇÃO DE ALERTA DE CONFORMIDADE TÉCNICA (OCULTA NO FORM) */
/* ============================================================== */

/* Oculta o card estático do editor para deixar a tela limpa */
#panelStepNormas,
.step-section.step-5,
.m-step-btn[data-step="5"] {
  display: none !important;
}

/* Botão / Indicador discreto de notificação na barra superior */
.btn-status-notif {
  background: rgba(16, 185, 129, 0.15);
  border: 1px solid rgba(16, 185, 129, 0.4);
  color: #34d399;
  font-size: 11px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s;
  height: 34px;
}

.btn-status-notif:hover {
  background: rgba(16, 185, 129, 0.25);
  border-color: #34d399;
  transform: translateY(-1px);
}

.btn-status-notif.status-pendente {
  background: rgba(245, 158, 11, 0.15);
  border-color: rgba(245, 158, 11, 0.5);
  color: #fbbf24;
}

.btn-status-notif.status-pendente:hover {
  background: rgba(245, 158, 11, 0.25);
  border-color: #fbbf24;
}

/* Toast de notificação flutuante */
.toast-notification {
  position: fixed;
  bottom: 24px;
  right: 24px;
  background: #064e3b;
  border: 1px solid #10b981;
  color: #ffffff;
  padding: 12px 20px;
  border-radius: 8px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
  font-size: 13px;
  font-weight: 600;
  z-index: 9999;
  display: flex;
  align-items: center;
  gap: 10px;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
  pointer-events: none;
}

.toast-notification.active {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.toast-notification.toast-warning {
  background: #78350f;
  border-color: #f59e0b;
}

/* Modal de Alerta de Notificação */
.notif-summary-banner {
  padding: 14px 18px;
  border-radius: 8px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 16px;
}

.notif-summary-banner.is-ok {
  background: rgba(16, 185, 129, 0.12);
  border: 1px solid rgba(16, 185, 129, 0.3);
}

.notif-summary-banner.has-pendencias {
  background: rgba(245, 158, 11, 0.12);
  border: 1px solid rgba(245, 158, 11, 0.35);
}

.notif-score-badge {
  font-size: 22pt;
  font-weight: 900;
  font-family: var(--font-mono);
  line-height: 1;
}

.notif-summary-banner.is-ok .notif-score-badge { color: #34d399; }
.notif-summary-banner.has-pendencias .notif-score-badge { color: #fbbf24; }

.notif-banner-text strong {
  display: block;
  font-size: 13px;
  color: #ffffff;
  margin-bottom: 2px;
}

.notif-banner-text small {
  display: block;
  font-size: 11px;
  color: #94a3b8;
}

.notif-list-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 10px;
}

.notif-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.4;
}

.notif-item.item-ok {
  background: rgba(16, 185, 129, 0.08);
  border: 1px solid rgba(16, 185, 129, 0.2);
  color: #e2e8f0;
}

.notif-item.item-ok i { color: #10b981; margin-top: 2px; }

.notif-item.item-falta {
  background: rgba(239, 68, 68, 0.12);
  border: 1px solid rgba(239, 68, 68, 0.35);
  color: #fecaca;
}

.notif-item.item-falta i { color: #ef4444; margin-top: 2px; }

/* ============================================================== */
/* GESTÃO DA FOTO DA EMBARCAÇÃO NA CAPA & DEFESAS VISUAIS         */
/* ============================================================== */
.vessel-photo-card {
  display: flex;
  gap: 14px;
  background: #091224;
  border: 1px solid rgba(56, 189, 248, 0.25);
  border-radius: 8px;
  padding: 12px;
  align-items: center;
}

.vessel-photo-thumb-box {
  width: 130px;
  height: 80px;
  border-radius: 6px;
  overflow: hidden;
  border: 1.5px solid #0284c7;
  background: #00132b;
  flex-shrink: 0;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.4);
}

.vessel-photo-thumb-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.vessel-photo-controls {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.vessel-btn-row {
  display: flex;
  align-items: center;
  gap: 8px;
}

.btn-upload-file {
  background: #0284c7;
  color: #ffffff;
  padding: 6px 14px;
  border-radius: 5px;
  font-size: 11.5px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: all 0.15s ease;
  border: 1px solid #38bdf8;
}

.btn-upload-file:hover {
  background: #0369a1;
  box-shadow: 0 0 10px rgba(56, 189, 248, 0.4);
}

.btn-ghost {
  background: rgba(148, 163, 184, 0.12);
  border: 1px solid rgba(148, 163, 184, 0.25);
  color: #94a3b8;
  padding: 6px 12px;
  border-radius: 5px;
  font-size: 11.5px;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: all 0.15s ease;
}

.btn-ghost:hover {
  background: rgba(148, 163, 184, 0.2);
  color: #ffffff;
}

.vessel-photo-controls input[type="text"] {
  width: 100%;
  background: #050b18;
  border: 1px solid #1e293b;
  padding: 6px 10px;
  border-radius: 5px;
  color: #e2e8f0;
  font-size: 11.5px;
  font-family: var(--font-mono);
}

.vessel-photo-controls input[type="text"]:focus {
  border-color: #38bdf8;
  outline: none;
}

.vessel-photo-status {
  font-size: 10.5px;
  color: #94a3b8;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Botão flutuante rápido para editar foto da embarcação na capa */
.cvb-quick-edit-btn {
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 15;
  background: rgba(0, 20, 50, 0.75);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(56, 189, 248, 0.6);
  color: #38bdf8;
  padding: 5px 12px;
  border-radius: 20px;
  font-size: 9.5pt;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  opacity: 0.85;
  transition: all 0.2s ease;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
}

.cvb-photo-frame:hover .cvb-quick-edit-btn,
.cvb-quick-edit-btn:hover {
  opacity: 1;
  background: rgba(2, 132, 199, 0.95);
  color: #ffffff;
  transform: translateY(-1px);
}

/* ============================================================== */
/* ORGANIZAÇÃO DO MODAL DE CAPA (PASSO 1) - 2 COLUNAS & MAPEAMENTO */
/* ============================================================== */
.vessel-search-top-bar {
  background: #091224;
  border: 1px solid rgba(56, 189, 248, 0.35);
  padding: 12px 16px;
  border-radius: 8px;
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.vessel-search-top-bar label {
  font-size: 11.5px;
  font-weight: 700;
  color: #38bdf8;
  display: flex;
  align-items: center;
  gap: 6px;
}

.vessel-search-top-bar input {
  width: 100%;
  background: #040914;
  border: 1px solid #1e293b;
  padding: 9px 14px;
  border-radius: 6px;
  color: #f8fafc;
  font-size: 13px;
  outline: none;
  transition: border-color 0.15s ease;
}

.vessel-search-top-bar input:focus {
  border-color: #38bdf8;
  box-shadow: 0 0 10px rgba(56, 189, 248, 0.25);
}

.modal-capa-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 16px;
  align-items: stretch;
}

@media (max-width: 860px) {
  .modal-capa-grid {
    grid-template-columns: 1fr;
  }
}

.capa-group-card {
  background: #0b1325;
  border: 1px solid #1e293b;
  border-radius: 8px;
  padding: 14px 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.capa-group-header {
  font-size: 12.5px;
  font-weight: 800;
  color: #38bdf8;
  display: flex;
  align-items: center;
  gap: 8px;
  border-bottom: 1px solid rgba(30, 41, 59, 0.8);
  padding-bottom: 8px;
  margin-bottom: 2px;
  letter-spacing: 0.3px;
}

.input-textarea-capa {
  width: 100%;
  background: #050b18;
  border: 1px solid #1e293b;
  padding: 8px 12px;
  border-radius: 6px;
  color: #ffffff;
  font-size: 11.5px;
  font-family: inherit;
  resize: vertical;
  line-height: 1.4;
}

.input-textarea-capa:focus {
  border-color: #38bdf8;
  outline: none;
}

.capa-preview-mapping-box {
  background: rgba(2, 132, 199, 0.08);
  border: 1px dashed rgba(56, 189, 248, 0.4);
  border-radius: 6px;
  padding: 10px 14px;
  margin-top: auto;
}

.cpmb-title {
  font-size: 11px;
  font-weight: 800;
  color: #38bdf8;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.cpmb-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 10.5px;
  color: #cbd5e1;
}

.cpmb-list li strong {
  color: #38bdf8;
}

/* ============================================================== */
/* ESTILOS DE FROTA DA EMPRESA & SELETOR RÁPIDO                   */
/* ============================================================== */
.label-with-badge {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 5px;
}

.badge-fleet-count {
  background: rgba(16, 185, 129, 0.15);
  border: 1px solid rgba(16, 185, 129, 0.4);
  color: #34d399;
  font-size: 10.5px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}

.vessel-input-with-select {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.select-fleet-quick {
  background: #061124;
  border: 1px solid rgba(56, 189, 248, 0.4);
  color: #38bdf8;
  font-size: 11.5px;
  font-weight: 600;
  padding: 6px 10px;
  border-radius: 6px;
  cursor: pointer;
  outline: none;
  transition: all 0.2s ease;
}

.select-fleet-quick:hover {
  border-color: #38bdf8;
  background: #091a38;
}

/* ==========================================================================
   TELA DE BLOQUEIO / SEGURANÇA ESCRAVA (SINCRONIZAÇÃO COM APP 3011)
   ========================================================================== */
.slave-lock-overlay {
  position: fixed;
  inset: 0;
  background: rgba(6, 15, 30, 0.94);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  animation: fadeInLock 0.3s ease-out;
}

@keyframes fadeInLock {
  from { opacity: 0; transform: scale(0.98); }
  to { opacity: 1; transform: scale(1); }
}

.slave-lock-card {
  background: linear-gradient(145deg, #0f1f38, #0a1526);
  border: 1px solid rgba(56, 189, 248, 0.3);
  box-shadow: 0 25px 60px -15px rgba(0, 0, 0, 0.7), 0 0 30px rgba(2, 132, 199, 0.15);
  border-radius: 16px;
  width: 100%;
  max-width: 440px;
  padding: 32px 28px;
  text-align: center;
  color: #f1f5f9;
  position: relative;
}

.slave-lock-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 20px;
}

.slave-lock-logo {
  height: 44px;
  object-fit: contain;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.5));
}

.slave-lock-badge {
  background: rgba(2, 132, 199, 0.2);
  color: #38bdf8;
  border: 1px solid rgba(56, 189, 248, 0.4);
  padding: 3px 12px;
  border-radius: 20px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.slave-lock-card h2 {
  font-size: 22px;
  font-weight: 800;
  color: #ffffff;
  margin-bottom: 8px;
  letter-spacing: -0.3px;
}

.slave-lock-desc {
  font-size: 13px;
  color: #94a3b8;
  line-height: 1.5;
  margin-bottom: 24px;
}

.slave-input-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  margin-bottom: 16px;
}

.slave-key-icon {
  position: absolute;
  left: 14px;
  color: #64748b;
  font-size: 14px;
  pointer-events: none;
}

.slave-input-wrapper input {
  width: 100%;
  padding: 13px 44px 13px 40px;
  background: #061124;
  border: 1.5px solid #1e293b;
  border-radius: 10px;
  color: #ffffff;
  font-size: 15px;
  letter-spacing: 1px;
  outline: none;
  transition: all 0.2s ease;
}

.slave-input-wrapper input:focus {
  border-color: #38bdf8;
  box-shadow: 0 0 0 3px rgba(56, 189, 248, 0.2);
  background: #091933;
}

.btn-toggle-eye {
  position: absolute;
  right: 12px;
  background: none;
  border: none;
  color: #64748b;
  cursor: pointer;
  font-size: 15px;
  padding: 6px;
}

.btn-toggle-eye:hover {
  color: #38bdf8;
}

.slave-feedback {
  border-radius: 8px;
  padding: 10px 14px;
  font-size: 12.5px;
  font-weight: 600;
  margin-bottom: 16px;
  text-align: left;
}

.slave-feedback.error {
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.4);
  color: #fca5a5;
}

.slave-feedback.success {
  background: rgba(16, 185, 129, 0.15);
  border: 1px solid rgba(16, 185, 129, 0.4);
  color: #6ee7b7;
}

.btn-slave-unlock {
  width: 100%;
  padding: 13px;
  background: linear-gradient(135deg, #0284c7, #0369a1);
  color: #ffffff;
  border: none;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  box-shadow: 0 4px 14px rgba(2, 132, 199, 0.4);
  transition: all 0.2s ease;
}

.btn-slave-unlock:hover {
  background: linear-gradient(135deg, #0ea5e9, #0284c7);
  box-shadow: 0 6px 20px rgba(2, 132, 199, 0.6);
  transform: translateY(-1px);
}

.slave-lock-footer {
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-size: 11px;
  color: #64748b;
}

.btn-quick-lock {
  background: #0f172a !important;
  color: #94a3b8 !important;
  border: 1px solid #334155 !important;
  padding: 6px 10px !important;
  border-radius: 6px !important;
  transition: all 0.2s ease !important;
}

.btn-quick-lock:hover {
  background: #1e293b !important;
  color: #f87171 !important;
  border-color: #ef4444 !important;
}

/* ==========================================================================
   BOTÕES DE RETORNO AO HUB 3011 (HOME)
   ========================================================================== */
.btn-nav-home {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: rgba(2, 132, 199, 0.15);
  border: 1px solid rgba(56, 189, 248, 0.4);
  color: #38bdf8;
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 11.5px;
  font-weight: 700;
  letter-spacing: 0.5px;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s ease;
  margin-right: 14px;
  flex-shrink: 0;
}

.btn-nav-home:hover {
  background: rgba(2, 132, 199, 0.35);
  border-color: #38bdf8;
  color: #ffffff;
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(56, 189, 248, 0.25);
}

.btn-slave-back-home {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 11px;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.15);
  color: #94a3b8;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s ease;
  margin-top: 10px;
}

.btn-slave-back-home:hover {
  background: rgba(255, 255, 255, 0.1);
  color: #f1f5f9;
  border-color: rgba(56, 189, 248, 0.4);
}




