/* Identidade: sóbria, documental. Verde-escuro institucional + neutros levemente esverdeados. */
:root {
  --ck-tinta: #1b2321;
  --ck-papel: #f5f7f6;
  --ck-linha: #d6ddda;
  --ck-acento: #1c5a53;
  --ck-acento-escuro: #144540;
  --ck-acento-claro: #e2eeeb;
  --ck-alerta: #fff4d6;
  --ck-alerta-borda: #e0b84a;
  --bs-primary: #1c5a53;
  --bs-primary-rgb: 28, 90, 83;
  --bs-link-color: #1c5a53;
  --bs-link-color-rgb: 28, 90, 83;
  --bs-link-hover-color-rgb: 20, 69, 64;
  --bs-link-hover-color: #144540;
  --bs-body-bg: #f5f7f6;
  --bs-body-color: #1b2321;
  --bs-border-color: #d6ddda;
  --bs-font-sans-serif: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
}
.btn-primary { --bs-btn-bg: var(--ck-acento); --bs-btn-border-color: var(--ck-acento);
  --bs-btn-hover-bg: var(--ck-acento-escuro); --bs-btn-hover-border-color: var(--ck-acento-escuro);
  --bs-btn-active-bg: var(--ck-acento-escuro); --bs-btn-disabled-bg: var(--ck-acento); --bs-btn-disabled-border-color: var(--ck-acento); }
.btn-outline-primary { --bs-btn-color: var(--ck-acento); --bs-btn-border-color: var(--ck-acento);
  --bs-btn-hover-bg: var(--ck-acento); --bs-btn-hover-border-color: var(--ck-acento); --bs-btn-active-bg: var(--ck-acento-escuro); }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: var(--ck-acento); box-shadow: 0 0 0 .2rem rgba(28,90,83,.2); }
.form-check-input:checked { background-color: var(--ck-acento); border-color: var(--ck-acento); }

.nav-pills { --bs-nav-pills-link-active-bg: var(--ck-acento); --bs-nav-link-color: var(--ck-acento); --bs-nav-link-hover-color: var(--ck-acento-escuro); }
.barra { background: #fff; border-bottom: 1px solid var(--ck-linha); }
.marca { font-family: Georgia, "Times New Roman", serif; font-weight: 700; color: var(--ck-tinta); letter-spacing: -.01em; }
.marca span { color: var(--ck-acento); }
.marca-grande { font-size: 2rem; }
.barra .nav-link.active { color: var(--ck-acento); font-weight: 600; }
.usuario { color: var(--ck-tinta); }
.badge.perfil-admin { background: var(--ck-tinta); }
.badge.perfil-revisor { background: var(--ck-acento); }
.badge.perfil-operador { background: #6c7a76; }

.login-caixa { max-width: 400px; margin: 8vh auto 0; background: #fff; border: 1px solid var(--ck-linha); border-radius: 8px; padding: 2.25rem 2rem; }

.cartao { background: #fff; border: 1px solid var(--ck-linha); border-radius: 8px; }
.titulo-secao { font-family: Georgia, "Times New Roman", serif; font-weight: 700; }
.rotulo-caps { font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: #5b6663; font-weight: 600; }
.tabular { font-variant-numeric: tabular-nums; }

/* Etapas do assistente */
.etapas { display: flex; flex-wrap: wrap; gap: .25rem; padding: 0; margin: 0 0 1.5rem; list-style: none; counter-reset: etapa; }
.etapas li { flex: 1 1 140px; }
.etapas a { display: flex; align-items: center; gap: .5rem; padding: .55rem .75rem; border-radius: 6px; color: #5b6663; text-decoration: none; background: #fff; border: 1px solid var(--ck-linha); font-size: .9rem; }
.etapas a .num { width: 1.6rem; height: 1.6rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; border: 1.5px solid currentColor; font-size: .8rem; font-weight: 600; flex: none; }
.etapas a.atual { background: var(--ck-acento); border-color: var(--ck-acento); color: #fff; }
.etapas a.feita { color: var(--ck-acento); }

/* Status */
.status { display: inline-flex; align-items: center; gap: .35rem; padding: .15rem .55rem; border-radius: 99px; font-size: .78rem; font-weight: 600; white-space: nowrap; }
.status-rascunho { background: #eceff0; color: #4a5553; }
.status-processando { background: #e5eefb; color: #1f4f8f; }
.status-em_revisao { background: var(--ck-alerta); color: #7a5a00; }
.status-cancelado { background: #eceff0; color: #7a8582; text-decoration: line-through; }
.status-fechado { background: var(--ck-acento-claro); color: var(--ck-acento-escuro); }

/* Origem do dado */
.origem { font-size: .68rem; font-weight: 600; padding: .05rem .4rem; border-radius: 4px; vertical-align: middle; letter-spacing: .03em; }
.origem-ocr_local { background: #e5eefb; color: #1f4f8f; }
.origem-ia { background: #efe7fb; color: #5b2b9a; }
.origem-manual { background: #eceff0; color: #4a5553; }
.origem-padrao { background: var(--ck-acento-claro); color: var(--ck-acento-escuro); }
.campo-atencao .form-control, .campo-atencao .form-select { background-color: var(--ck-alerta); border-color: var(--ck-alerta-borda); }

/* Upload */
.zona-upload { border: 1.5px dashed #aab5b1; border-radius: 8px; padding: 1rem; background: #fafbfb; transition: background .15s, border-color .15s; }
.zona-upload.arrastando { background: var(--ck-acento-claro); border-color: var(--ck-acento); }
.arquivo-item { display: flex; align-items: center; gap: .5rem; font-size: .88rem; padding: .35rem 0; border-top: 1px solid #edf0ef; }
.arquivo-item:first-child { border-top: 0; }

.visualizador { position: sticky; top: 1rem; background: #fff; border: 1px solid var(--ck-linha); border-radius: 8px; overflow: hidden; }
.visualizador img { width: 100%; height: auto; display: block; transform-origin: center; transition: transform .2s; }
.visualizador iframe { width: 100%; height: 75vh; border: 0; }

.clausula-previa { background: #fff; border: 1px solid var(--ck-linha); border-left: 3px solid var(--ck-acento); border-radius: 6px; padding: 1rem 1.25rem; font-family: "Times New Roman", Georgia, serif; font-size: 1.02rem; line-height: 1.55; text-align: justify; }
.componente { background: #fff; border: 1px solid var(--ck-linha); border-radius: 8px; }
.componente > header { display: flex; justify-content: space-between; align-items: center; padding: .6rem 1rem; border-bottom: 1px solid var(--ck-linha); background: #fafbfb; border-radius: 8px 8px 0 0; }

@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }
[x-cloak] { display: none !important; }
