/* Paleta oficial da Fundação iNova Capixaba aplicada sobre o Bootstrap 5 */
:root {
  --inova-vinho: #7F2145;
  --inova-vinho-escuro: #661A37;
  --inova-rosa: #EE638D;
  --inova-rosa-claro: #FCE8EE;
  --inova-noite: #222940;
  --inova-marinho: #263F73;
  --inova-cinza: #F2F2F2;
  --inova-linha: #DDE1E8;
  --inova-rotulo: #5E6678;

  --bs-primary: #7F2145;
  --bs-primary-rgb: 127, 33, 69;
  --bs-primary-text-emphasis: #4C1429;
  --bs-primary-bg-subtle: #FCE8EE;
  --bs-primary-border-subtle: #F3B9CB;
  --bs-link-color: #7F2145;
  --bs-link-color-rgb: 127, 33, 69;
  --bs-link-hover-color: #661A37;
  --bs-link-hover-color-rgb: 102, 26, 55;
  --bs-body-bg: #F2F2F2;
  --bs-body-color: #222940;
  --bs-emphasis-color: #222940;
  --bs-border-color: #DDE1E8;
  --bs-focus-ring-color: rgba(127, 33, 69, .25);
}

.btn-primary {
  --bs-btn-bg: #7F2145; --bs-btn-border-color: #7F2145;
  --bs-btn-hover-bg: #661A37; --bs-btn-hover-border-color: #661A37;
  --bs-btn-active-bg: #561630; --bs-btn-active-border-color: #561630;
  --bs-btn-disabled-bg: #7F2145; --bs-btn-disabled-border-color: #7F2145;
  --bs-btn-focus-shadow-rgb: 127, 33, 69;
}
.btn-outline-primary {
  --bs-btn-color: #7F2145; --bs-btn-border-color: #7F2145;
  --bs-btn-hover-bg: #7F2145; --bs-btn-hover-border-color: #7F2145; --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: #661A37; --bs-btn-active-border-color: #661A37; --bs-btn-active-color: #fff;
  --bs-btn-disabled-color: #7F2145; --bs-btn-disabled-border-color: #7F2145;
  --bs-btn-focus-shadow-rgb: 127, 33, 69;
}
.btn-marinho {
  --bs-btn-color: #fff; --bs-btn-bg: #263F73; --bs-btn-border-color: #263F73;
  --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #1E3360; --bs-btn-hover-border-color: #1E3360;
  --bs-btn-active-color: #fff; --bs-btn-active-bg: #1A2C53; --bs-btn-active-border-color: #1A2C53;
  --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #263F73; --bs-btn-disabled-border-color: #263F73;
}
.text-primary { color: #7F2145 !important; }
.bg-primary { background-color: #7F2145 !important; }
.border-primary { border-color: #7F2145 !important; }
.nav-pills { --bs-nav-pills-link-active-bg: #7F2145; --bs-nav-link-color: #263F73; --bs-nav-link-hover-color: #7F2145; }
.form-check-input:checked { background-color: #7F2145; border-color: #7F2145; }
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: #C9799A; box-shadow: 0 0 0 .2rem rgba(127, 33, 69, .2);
}
.badge-inova { background: var(--inova-rosa-claro); color: var(--inova-vinho); border: 1px solid #F3B9CB; }
.text-marinho { color: var(--inova-marinho) !important; }
.font-mono { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; }
.tabular { font-variant-numeric: tabular-nums; }

/* ------------------------------------------------------------ barra superior */
.navbar-inova {
  background: linear-gradient(90deg, var(--inova-noite), var(--inova-marinho));
  border-bottom: 3px solid var(--inova-vinho);
}
.navbar-inova .navbar-brand { font-weight: 700; letter-spacing: .01em; }
.navbar-inova .marca {
  display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 8px;
  background: var(--inova-vinho); color: #fff; font-weight: 800; font-size: 13px; margin-right: 10px;
}
.navbar-inova .navbar-brand small { display: block; font-size: 11px; font-weight: 400; opacity: .75; }
.navbar-inova .nav-link { color: rgba(255, 255, 255, .78); border-radius: 6px; }
.navbar-inova .nav-link:hover { color: #fff; }
.navbar-inova .nav-link.active { color: #fff; background: rgba(255, 255, 255, .12); }
.chip-ambiente { font-size: 11px; letter-spacing: .04em; }

/* ---------------------------------------------------------------- painel */
.card { border-color: var(--inova-linha); }
.card-header-inova {
  background: var(--inova-marinho); color: #fff; font-weight: 600;
  border-bottom: 0; display: flex; align-items: center; gap: .5rem;
}
.rotulo { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--inova-rotulo); font-weight: 600; }
.valor-grande { font-size: 1.75rem; font-weight: 700; line-height: 1.15; font-variant-numeric: tabular-nums; }
.etapas { display: grid; grid-template-columns: repeat(4, 1fr); }
.etapa { padding: 1rem 1.1rem; border-right: 1px solid var(--inova-linha); text-decoration: none; color: inherit; display: block; }
.etapa:last-child { border-right: 0; }
.etapa:hover { background: var(--inova-rosa-claro); }
.etapa .n { font-size: 1.6rem; font-weight: 700; color: var(--inova-vinho); font-variant-numeric: tabular-nums; }
.etapa .passo { font-size: 11px; font-weight: 700; color: var(--inova-marinho); text-transform: uppercase; letter-spacing: .06em; }
.etapa p { font-size: 13px; color: var(--inova-rotulo); margin: .25rem 0 0; }
@media (max-width: 767px) {
  .etapas { grid-template-columns: 1fr 1fr; }
  .etapa:nth-child(2) { border-right: 0; }
  .etapa:nth-child(-n+2) { border-bottom: 1px solid var(--inova-linha); }
}
.terminal {
  background: var(--inova-noite); color: #DCE3F0; border-radius: 8px; padding: .9rem 1rem;
  font: 12.5px/1.55 ui-monospace, "Cascadia Mono", Consolas, monospace;
  max-height: 340px; overflow: auto; white-space: pre-wrap; margin: 0;
}
.terminal .erro { color: #FF9DB8; }
.janela-aberta { color: #1E7B34; }
.janela-fechada { color: var(--inova-vinho); }

/* tarefa em andamento (canto da tela) */
#tarefaFlutuante { position: fixed; right: 16px; bottom: 16px; width: min(440px, calc(100vw - 32px)); z-index: 1080; }
#tarefaFlutuante .terminal { max-height: 180px; font-size: 11.5px; }

/* -------------------------------------------------------------- tabelas */
.table-inova thead th {
  background: var(--inova-cinza); color: var(--inova-rotulo); font-size: 11px; text-transform: uppercase;
  letter-spacing: .05em; font-weight: 700; white-space: nowrap; border-bottom-width: 1px;
}
.table-inova td { vertical-align: middle; }
.table-inova .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* -------------------------------------------------------------- arquivos */
.arvore .list-group-item { border-left: 0; border-right: 0; }
.arvore .grupo { font-weight: 700; color: var(--inova-marinho); background: var(--inova-cinza); }
.arvore .list-group-item.active { background: var(--inova-vinho); border-color: var(--inova-vinho); }
.arquivo-link { font-family: ui-monospace, "Cascadia Mono", Consolas, monospace; font-size: 12.5px; word-break: break-all; }

/* ----------------------------------------------- espelho do portal da NF-e */
.nfe-cabecalho { background: var(--inova-marinho); color: #fff; }
.chave-display {
  font: 600 15px/1.4 ui-monospace, "Cascadia Mono", Consolas, monospace; letter-spacing: .06em;
  background: var(--inova-cinza); border: 1px solid var(--inova-linha); border-radius: 6px; padding: .6rem .8rem;
  word-break: break-word;
}
.status-badge { display: inline-block; padding: .3rem .7rem; border-radius: 999px; font-weight: 600; font-size: 13px; }
.status-badge.autorizada { background: #E3F4E6; color: #1E7B34; }
.status-badge.cancelada { background: #FDE4E4; color: #A61B1B; }
.status-badge.outra, .status-badge.sem-protocolo { background: #FFF3D6; color: #8A5A00; }

.abas-nfe .nav-tabs { border-bottom: 2px solid var(--inova-linha); flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; }
.abas-nfe .nav-link { color: var(--inova-rotulo); border: 0; border-bottom: 3px solid transparent; margin-bottom: -2px; white-space: nowrap; font-weight: 500; }
.abas-nfe .nav-link:hover { color: var(--inova-vinho); }
.abas-nfe .nav-link.active { color: var(--inova-vinho); background: transparent; border-bottom-color: var(--inova-vinho); font-weight: 700; }

.secao { margin-bottom: 1.5rem; }
.secao-titulo {
  color: var(--inova-vinho); font-size: 13px; font-weight: 700; text-transform: uppercase; letter-spacing: .07em;
  padding-bottom: .4rem; margin-bottom: .75rem; border-bottom: 1px solid var(--inova-linha);
}
.campo-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border: 1px solid var(--inova-linha); border-radius: 6px; overflow: hidden; background: #fff; }
.campo-grid.g2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.campo-grid.g3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.campo { padding: .55rem .8rem; border-right: 1px solid var(--inova-linha); border-bottom: 1px solid var(--inova-linha); min-width: 0; }
.campo.w2 { grid-column: span 2; }
.campo label { display: block; font-size: 11px; color: var(--inova-rotulo); margin-bottom: .15rem; }
.campo span { display: block; font-size: 14px; word-break: break-word; }
.campo .vazio { color: #A8AFBD; }
.campo .destaque { font-weight: 700; font-size: 15px; color: var(--inova-marinho); }
@media (max-width: 767px) {
  .campo-grid, .campo-grid.g3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .campo-grid.g2 { grid-template-columns: 1fr; }
  .campo-grid.g2 .campo.w2 { grid-column: span 1; }
}

.totais-bloco { border: 1px solid var(--inova-linha); border-radius: 6px; background: #fff; height: 100%; }
.totais-bloco h6 { background: var(--inova-cinza); color: var(--inova-marinho); font-size: 12px; text-transform: uppercase; letter-spacing: .06em; font-weight: 700; padding: .55rem .8rem; margin: 0; border-bottom: 1px solid var(--inova-linha); }
.totais-linha { display: flex; justify-content: space-between; gap: 1rem; padding: .4rem .8rem; font-size: 13.5px; border-bottom: 1px dashed var(--inova-linha); }
.totais-linha:last-child { border-bottom: 0; }
.totais-linha span { font-variant-numeric: tabular-nums; white-space: nowrap; }
.totais-linha.total { background: var(--inova-rosa-claro); font-weight: 700; color: var(--inova-vinho); font-size: 15px; }

.produto-detalhe td { background: #FAFAFB; }
.imposto-bloco { border: 1px solid var(--inova-linha); border-radius: 6px; background: #fff; padding: .55rem .75rem; height: 100%; }
.imposto-bloco h6 { font-size: 12px; font-weight: 700; color: var(--inova-vinho); margin-bottom: .4rem; }
.imposto-linha { display: flex; justify-content: space-between; gap: .75rem; font-size: 12.5px; }
.imposto-linha label { color: var(--inova-rotulo); }

.info-texto { white-space: pre-wrap; background: #fff; border: 1px solid var(--inova-linha); border-radius: 6px; padding: .75rem .9rem; font-size: 13.5px; }
.cartao-mini { border: 1px solid var(--inova-linha); border-radius: 6px; background: #fff; padding: .6rem .8rem; }
pre.xml-bruto { background: var(--inova-noite); color: #DCE3F0; border-radius: 8px; padding: 1rem; font-size: 12px; max-height: 520px; overflow: auto; }

/* ------------------------------------------------------- login e usuários */
.auth-body { min-height: 100vh; background: var(--inova-cinza); }
.auth-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: 100vh; }
.auth-marca {
  background: linear-gradient(150deg, var(--inova-noite), var(--inova-marinho) 70%);
  color: #fff; padding: clamp(32px, 6vw, 72px); display: flex; flex-direction: column; justify-content: center;
  border-right: 4px solid var(--inova-vinho); position: relative; overflow: hidden;
}
.auth-marca::after {
  content: ""; position: absolute; width: 320px; height: 320px; right: -110px; bottom: -110px; border-radius: 50%;
  border: 42px solid rgba(238, 99, 141, .16);
}
.auth-mk { display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 9px; background: var(--inova-vinho); font-weight: 800; }
.auth-form { display: flex; align-items: center; justify-content: center; padding: 32px 16px; }
.auth-card { width: min(440px, 100%); background: #fff; border: 1px solid var(--inova-linha); border-radius: 14px; padding: 32px; box-shadow: 0 10px 30px rgba(34, 41, 64, .08); }
@media (max-width: 860px) {
  .auth-grid { grid-template-columns: 1fr; }
  .auth-marca { border-right: 0; border-bottom: 4px solid var(--inova-vinho); padding-block: 28px; }
  .auth-marca h1 { font-size: 1.8rem; }
  .auth-marca ul, .auth-marca::after { display: none; }
}
.perfil-opcao { cursor: pointer; background: #fff; }
.perfil-opcao:has(input:checked) { border-color: var(--inova-vinho) !important; background: var(--inova-rosa-claro); }

/* impressão: mostra todas as abas em sequência */
@media print {
  body { background: #fff; }
  .no-print, .navbar, #tarefaFlutuante, .abas-nfe .nav-tabs { display: none !important; }
  .abas-nfe .tab-pane { display: block !important; opacity: 1 !important; page-break-inside: avoid; }
  .abas-nfe .tab-pane.no-print { display: none !important; }
  .abas-nfe .tab-pane::before { content: attr(data-titulo); display: block; font-weight: 700; color: #7F2145; margin: 1rem 0 .5rem; }
  .produto-detalhe.collapse { display: table-row !important; }
}
