:root {
  --azul-escuro: #0b1f3a;
  --azul: #1f5eff;
  --azul-hover: #174bd1;
  --fundo: #f3f5f9;
  --texto: #1b2433;
  --suave: #6b7588;
  --borda: #e3e7ef;
  --raio: 14px;
}
body {
  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  background: var(--fundo);
  color: var(--texto);
  min-height: 100vh;
}
.btn-primary { --bs-btn-bg: var(--azul); --bs-btn-border-color: var(--azul);
  --bs-btn-hover-bg: var(--azul-hover); --bs-btn-hover-border-color: var(--azul-hover);
  --bs-btn-disabled-bg: var(--azul); --bs-btn-disabled-border-color: var(--azul); }
.card-premium { background: #fff; border: 1px solid var(--borda); border-radius: var(--raio);
  box-shadow: 0 6px 24px rgba(11, 31, 58, .06); }
.modal-content { border-radius: var(--raio); border: 0; }
.form-control, .form-select { border-radius: 10px; }

/* Login */
.tela-login { min-height: 100vh; display: flex; align-items: center; justify-content: center;
  padding: 24px 16px;
  background: radial-gradient(1200px 600px at 10% -10%, #1f5eff22, transparent),
              linear-gradient(160deg, var(--azul-escuro) 0%, #12345f 55%, var(--fundo) 55.1%); }
.caixa-login { width: 100%; max-width: 420px; padding: 32px; }
.marca { display: flex; align-items: center; gap: 12px; margin-bottom: 24px; }
.marca-icone { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--azul), #5b8cff); color: #fff; font-size: 22px; }
.marca h1 { font-size: 1.25rem; margin: 0; font-weight: 700; }
.marca small { color: var(--suave); }

/* Passos do cadastro */
.passos { display: flex; gap: 8px; margin-bottom: 20px; }
.passo { flex: 1; height: 4px; border-radius: 4px; background: var(--borda); }
.passo.ativo { background: var(--azul); }
.dados-receita dt { font-weight: 500; color: var(--suave); font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; }
.dados-receita dd { margin-bottom: .75rem; }

/* Faixa de contexto do app */
.faixa { background: linear-gradient(120deg, var(--azul-escuro), #163a6b); color: #fff; padding: 18px 0; }
.faixa .sub { color: #b8c6de; font-size: .875rem; }
.faixa .btn-sair { color: #fff; border-color: #ffffff55; }
.faixa .btn-sair:hover { background: #ffffff1a; }
.selo { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: .75rem; font-weight: 600; }
.selo-ok { background: #e3f6ea; color: #17733b; }
.selo-alerta { background: #fff4d6; color: #8a5a00; }
.selo-erro { background: #fde4e4; color: #a32020; }
.nav-faixa .nav-link { color: #c9d5ea; border-radius: 8px; padding: 6px 12px; }
.nav-faixa .nav-link:hover { color: #fff; background: #ffffff14; }
.nav-faixa .nav-link.active { color: #fff; background: #ffffff26; }
.contexto-cliente { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; color: #fff;
  background: linear-gradient(120deg, #12345f, var(--azul)); border-radius: var(--raio); padding: 16px 20px; }
.abas { flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
.abas .nav-link { white-space: nowrap; color: var(--suave); }
.abas .nav-link.active { color: var(--texto); font-weight: 600; }
.list-group-item-action { cursor: pointer; }
.rounded-4 { border-radius: var(--raio) !important; overflow: hidden; }
.text-truncate { min-width: 0; }
.ret-grade { display: grid; grid-template-columns: 70px 1fr 90px 90px; gap: 6px; align-items: center; margin-bottom: 4px; }
.ret-grade .form-control { padding: 4px 8px; }
.totais dt { font-weight: 400; color: var(--suave); }
.totais dd { margin-bottom: 0; text-align: right; font-variant-numeric: tabular-nums; }
/* Quadro de emissão (kanban) */
.kanban { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 992px) { .kanban { grid-template-columns: 0.9fr 1fr 1.25fr; } }
.coluna { background: #e9edf4; border-radius: var(--raio); padding: 12px; min-width: 0; }
.coluna-titulo { font-size: .85rem; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: var(--suave); margin: 2px 4px 10px; }
.coluna-corpo { display: flex; flex-direction: column; gap: 10px; min-height: 80px; }
.cartao { background: #fff; border-radius: 12px; padding: 12px; box-shadow: 0 2px 8px rgba(11, 31, 58, .06); border: 1px solid var(--borda); min-width: 0; }
.cartao[draggable="true"] { cursor: grab; }
.cartao-erro { border-left: 4px solid #d93636; background: #fff7f7; }
.zona-soltar.soltar { outline: 2px dashed var(--azul); outline-offset: 4px; border-radius: 12px; }
.vazio { color: var(--suave); font-size: .85rem; text-align: center; padding: 18px 8px; border: 1px dashed #c5cddb; border-radius: 12px; }
.nota-recusada { border-left: 4px solid #d93636 !important; background: #fff7f7; }
.faixa-homolog { background: #ffd84d; color: #3d2e00; text-align: center; font-weight: 700;
  font-size: .8rem; padding: 4px 8px; letter-spacing: .04em; }
