/* ══════════════════════════════════════════════════════════════════════════
   Conrado Lopes Advogados — tema do sistema
   Aplica o design system "Conrado Lopes Advogados" (v1) sobre o Bootstrap 5.3:
   branco + dourado + grafite, Cinzel nos títulos, Montserrat no texto,
   cantos retos e filete dourado.
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Tokens da marca (tokens.json do design system) ─────────────────────── */
:root {
  --cl-gold-500: #D4AF5A;      /* assinatura: fundo de botão, filetes, ícones. Nunca texto sobre branco */
  --cl-gold-700: #8C6A24;      /* dourado para TEXTO: links, sobretítulos, números de destaque */
  --cl-gold-300: #E9D9AE;      /* hover de superfícies, bordas em destaque */
  --cl-gold-100: #F7F1E3;      /* faixas alternadas, item selecionado */
  --cl-olive-400: #B0A878;     /* só decorativo (faixa da marca) */
  --cl-graphite-600: #6E6E6E;  /* texto secundário; borda de campo de formulário */
  --cl-ink: #2B2B2B;           /* texto principal; texto sobre gold-500 */
  --cl-surface: #FFFFFF;
  --cl-surface-alt: #FAF8F3;
  --cl-line: #E6E0D2;          /* divisórias e bordas de cartão (hairline) */
  --cl-action: #1E6B45;        /* sucesso / contato */
  --cl-danger: #9C2F2F;

  --cl-font-display: "Cinzel", "Trajan Pro", Georgia, serif;
  --cl-font-sans: "Montserrat", system-ui, -apple-system, "Segoe UI", sans-serif;

  --cl-space-1: 4px;
  --cl-space-2: 8px;
  --cl-space-4: 16px;
  --cl-space-6: 24px;
  --cl-space-10: 40px;
  --cl-radius-none: 0;
  --cl-radius-sm: 2px;
  --cl-hairline: 1px;

  /* ── Extensões do sistema interno (ainda não estão no design system v1) ──
     Estados de hover, aviso/informação e as cores de série dos gráficos.  */
  --cl-gold-600: #C9A24C;      /* hover do botão primário (ink sobre ele: 5.9:1) */
  --cl-gold-650: #BF9640;      /* botão primário pressionado (5.2:1) */
  --cl-gold-800: #6B5019;      /* texto dourado sobre gold-100 (6.7:1) */
  --cl-warning: #E39539;       /* aviso — preenchimento, texto ink sobre ele */
  --cl-warning-text: #8F4F0A;  /* aviso — texto sobre branco (6.4:1) */
  --cl-warning-subtle: #FCF1E1;
  --cl-info: #8DB3D6;          /* informação — preenchimento, texto ink sobre ele */
  --cl-info-text: #2F5F86;     /* informação — texto sobre branco (6.8:1) */
  --cl-info-subtle: #EEF3F8;
  --cl-success-soft: #7DB894;  /* faixa "boa" entre ótima (action) e normal (aviso) */

  /* Séries dos gráficos — validadas para daltonismo (ΔE ≥ 12) e ≥ 3:1 no branco.
     A cor segue a entidade: 1 = Conferência, 2 = Contratos, 3 = Restituição. */
  --cl-series-1: #B8892E;
  --cl-series-1-strong: #8C6A24; /* mesma família, para selo com texto branco */
  --cl-series-2: #2F6AAE;
  --cl-series-3: #8E3B63;
}

/* ── Bootstrap → tokens ──────────────────────────────────────────────────── */
:root,
[data-bs-theme=light] {
  --bs-body-font-family: var(--cl-font-sans);
  --bs-body-font-size: 0.9375rem;
  --bs-body-color: var(--cl-ink);
  --bs-body-color-rgb: 43, 43, 43;
  --bs-body-bg: var(--cl-surface);
  --bs-emphasis-color: var(--cl-ink);
  --bs-emphasis-color-rgb: 43, 43, 43;
  --bs-heading-color: var(--cl-ink);
  --bs-secondary-color: var(--cl-graphite-600);
  --bs-secondary-color-rgb: 110, 110, 110;
  --bs-secondary-bg: var(--cl-gold-100);
  --bs-tertiary-color: var(--cl-graphite-600);
  --bs-tertiary-bg: var(--cl-surface-alt);
  --bs-tertiary-bg-rgb: 250, 248, 243;

  --bs-primary: var(--cl-gold-700);
  --bs-primary-rgb: 140, 106, 36;
  --bs-secondary: var(--cl-graphite-600);
  --bs-secondary-rgb: 110, 110, 110;
  --bs-success: var(--cl-action);
  --bs-success-rgb: 30, 107, 69;
  --bs-info: var(--cl-info);
  --bs-info-rgb: 141, 179, 214;
  --bs-warning: var(--cl-warning);
  --bs-warning-rgb: 227, 149, 57;
  --bs-danger: var(--cl-danger);
  --bs-danger-rgb: 156, 47, 47;
  --bs-light: var(--cl-surface-alt);
  --bs-light-rgb: 250, 248, 243;
  --bs-dark: var(--cl-ink);
  --bs-dark-rgb: 43, 43, 43;

  --bs-primary-text-emphasis: var(--cl-gold-800);
  --bs-secondary-text-emphasis: #4A4A4A;
  --bs-success-text-emphasis: #154D31;
  --bs-info-text-emphasis: #234A69;
  --bs-warning-text-emphasis: #6E3C07;
  --bs-danger-text-emphasis: #742222;
  --bs-light-text-emphasis: var(--cl-graphite-600);
  --bs-dark-text-emphasis: var(--cl-ink);

  --bs-primary-bg-subtle: var(--cl-gold-100);
  --bs-secondary-bg-subtle: #F2F0EC;
  --bs-success-bg-subtle: #E8F2EC;
  --bs-info-bg-subtle: var(--cl-info-subtle);
  --bs-warning-bg-subtle: var(--cl-warning-subtle);
  --bs-danger-bg-subtle: #F8EAEA;
  --bs-light-bg-subtle: var(--cl-surface-alt);
  --bs-dark-bg-subtle: #D9D6D0;

  --bs-primary-border-subtle: var(--cl-gold-300);
  --bs-secondary-border-subtle: #D9D6D0;
  --bs-success-border-subtle: #B5D3C1;
  --bs-info-border-subtle: #C5D7E8;
  --bs-warning-border-subtle: #F2CD9C;
  --bs-danger-border-subtle: #E3BDBD;
  --bs-light-border-subtle: var(--cl-line);
  --bs-dark-border-subtle: #A9A49B;

  --bs-link-color: var(--cl-gold-700);
  --bs-link-color-rgb: 140, 106, 36;
  --bs-link-hover-color: var(--cl-gold-800);
  --bs-link-hover-color-rgb: 107, 80, 25;
  --bs-highlight-bg: var(--cl-gold-100);
  --bs-code-color: var(--cl-gold-800);

  --bs-border-color: var(--cl-line);
  --bs-border-color-translucent: var(--cl-line);
  --bs-border-radius: var(--cl-radius-sm);
  --bs-border-radius-sm: var(--cl-radius-sm);
  --bs-border-radius-lg: var(--cl-radius-sm);
  --bs-border-radius-xl: var(--cl-radius-sm);
  --bs-border-radius-xxl: var(--cl-radius-sm);

  --bs-box-shadow: 0 .5rem 1.5rem rgba(43, 43, 43, .08);
  --bs-box-shadow-sm: 0 1px 2px rgba(43, 43, 43, .04);
  --bs-box-shadow-lg: 0 1rem 2.5rem rgba(43, 43, 43, .10);

  --bs-focus-ring-color: rgba(212, 175, 90, .45);
  --bs-form-valid-color: var(--cl-action);
  --bs-form-valid-border-color: var(--cl-action);
  --bs-form-invalid-color: var(--cl-danger);
  --bs-form-invalid-border-color: var(--cl-danger);
}

body {
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
}

/* Texto em cor de estado: o preenchimento de aviso/info é claro demais para texto */
.text-warning { color: var(--cl-warning-text) !important; }
.text-info    { color: var(--cl-info-text) !important; }
.link-primary { color: var(--cl-gold-700) !important; }

/* ── Tipografia ──────────────────────────────────────────────────────────── */
h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4, .h5, .display-1, .display-2, .display-3,
.display-4, .display-5, .display-6, .modal-title, .cl-display {
  font-family: var(--cl-font-display);
  font-weight: 600;
  letter-spacing: .02em;
}

/* Sobretítulo: maiúsculas espaçadas, eco do "A D V O G A D O S" do logo */
.eyebrow {
  font-family: var(--cl-font-sans);
  font-size: .72rem;
  line-height: 1rem;
  font-weight: 600;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--cl-gold-700);
}

/* Filete dourado com losango no centro — divisor de seção da marca */
.cl-rule {
  position: relative;
  height: var(--cl-hairline);
  background: var(--cl-gold-500);
  border: 0;
  opacity: 1;
}
.cl-rule::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  width: 7px;
  height: 7px;
  background: var(--cl-gold-500);
  transform: translate(-50%, -50%) rotate(45deg);
}

/* Quadro aberto: dois cantos de moldura em gold-500, eco do quadro da pena */
.cl-frame { position: relative; }
.cl-frame::before,
.cl-frame::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  border: 0 solid var(--cl-gold-500);
  pointer-events: none;
}
.cl-frame::before { top: -1px; left: -1px; border-top-width: 2px; border-left-width: 2px; }
.cl-frame::after { right: -1px; bottom: -1px; border-right-width: 2px; border-bottom-width: 2px; }

/* ── Sidebar ─────────────────────────────────────────────────────────────── */
:root {
  --sidebar-width: 236px;
}

.sidebar {
  width: var(--sidebar-width);
  background: var(--cl-surface);
  border-right: var(--cl-hairline) solid var(--cl-line);
  color: var(--cl-ink);
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
}

.sidebar-brand {
  display: block;
  padding: var(--cl-space-6) var(--cl-space-6) var(--cl-space-4);
  text-align: center;
}
.sidebar-brand .logo-full { width: 100%; max-width: 168px; height: auto; }
.sidebar-brand .logo-symbol { display: none; width: 32px; height: auto; }
.sidebar-brand-rule { margin: 0 var(--cl-space-6) var(--cl-space-2); }

.sidebar-divider {
  border-color: var(--cl-line);
  opacity: 1;
}

.sidebar-link {
  display: flex;
  align-items: center;
  color: var(--cl-ink);
  border-radius: var(--cl-radius-sm);
  margin: 1px .75rem;
  padding: .55rem .75rem;
  font-size: .875rem;
  font-weight: 500;
}
.sidebar-link .bi { color: var(--cl-graphite-600); }

.sidebar-link:hover,
.sidebar-link:focus-visible {
  background: var(--cl-surface-alt);
  color: var(--cl-ink);
}
.sidebar-link:hover .bi { color: var(--cl-gold-700); }

.sidebar-link.active {
  background: var(--cl-gold-100);
  color: var(--cl-ink);
  font-weight: 600;
}
.sidebar-link.active .bi { color: var(--cl-gold-700); }

/* Losango dourado marca o item atual */
.sidebar-link.active:not(.sidebar-group-toggle)::after {
  content: "";
  width: 6px;
  height: 6px;
  margin-left: auto;
  flex-shrink: 0;
  background: var(--cl-gold-500);
  transform: rotate(45deg);
}

.sidebar-user {
  font-size: .8rem;
  color: var(--cl-graphite-600);
}

/* ── Sidebar submenu & chevron ───────────────────────────────────────────── */
.sidebar-group-toggle:not(.collapsed) { font-weight: 600; }

.sidebar-chevron {
  transition: transform .2s ease;
  font-size: .75rem;
  flex-shrink: 0;
}

.sidebar-group-toggle:not(.collapsed) .sidebar-chevron {
  transform: rotate(180deg);
}

.sidebar-submenu {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sidebar-sublink {
  font-size: .82rem;
  padding-left: 2.2rem;
  margin: 1px .75rem;
}

/* ── Topbar ──────────────────────────────────────────────────────────────── */
.topbar {
  background: var(--cl-surface);
  border-bottom: var(--cl-hairline) solid var(--cl-line);
  min-height: 56px;
}

.topbar .page-title {
  font-family: var(--cl-font-display);
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: .03em;
  color: var(--cl-ink);
}
.topbar .page-title .bi { color: var(--cl-gold-700) !important; }

/* ── Cartões ─────────────────────────────────────────────────────────────── */
.card {
  --bs-card-border-color: var(--cl-line);
  --bs-card-border-radius: var(--cl-radius-sm);
  --bs-card-inner-border-radius: 1px;
  --bs-card-cap-bg: var(--cl-surface);
  --bs-card-cap-padding-y: .65rem;
}
/* Os cartões do sistema usam "border-0 shadow-sm": o filete vira um anel de 1px
   (box-shadow), que convive com bordas de destaque como border-start. */
.card.shadow-sm {
  box-shadow: 0 0 0 var(--cl-hairline) var(--cl-line), 0 1px 2px rgba(43, 43, 43, .03) !important;
}
.card-header { border-bottom-color: var(--cl-line); }
.card-footer { border-top-color: var(--cl-line); }

/* Cartão hover (home) */
.card-hover {
  transition: box-shadow .15s ease;
}
.card-hover:hover {
  box-shadow: 0 0 0 var(--cl-hairline) var(--cl-gold-300), 0 .5rem 1rem rgba(43, 43, 43, .06) !important;
}

/* ── KPI cards ───────────────────────────────────────────────────────────── */
.kpi-card .kpi-label {
  font-size: .7rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .14em;
}
.kpi-card .kpi-value {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--cl-ink);
  white-space: nowrap;
}

/* ── Botões ──────────────────────────────────────────────────────────────── */
.btn {
  --bs-btn-font-weight: 600;
  --bs-btn-font-size: .8125rem;
  --bs-btn-border-radius: var(--cl-radius-sm);
  --bs-btn-focus-box-shadow: 0 0 0 .2rem rgba(212, 175, 90, .45);
  letter-spacing: .06em;
  text-transform: uppercase;
}
.btn-sm, .btn-group-sm > .btn {
  --bs-btn-font-size: .72rem;
  --bs-btn-border-radius: var(--cl-radius-sm);
}
.btn-lg, .btn-group-lg > .btn {
  --bs-btn-font-size: .9375rem;
  --bs-btn-border-radius: var(--cl-radius-sm);
}
.btn-link {
  text-transform: none;
  letter-spacing: normal;
  font-weight: 500;
  --bs-btn-color: var(--cl-gold-700);
  --bs-btn-hover-color: var(--cl-gold-800);
  --bs-btn-active-color: var(--cl-gold-800);
}

.btn-primary {
  --bs-btn-color: var(--cl-ink);
  --bs-btn-bg: var(--cl-gold-500);
  --bs-btn-border-color: var(--cl-gold-500);
  --bs-btn-hover-color: var(--cl-ink);
  --bs-btn-hover-bg: var(--cl-gold-600);
  --bs-btn-hover-border-color: var(--cl-gold-600);
  --bs-btn-focus-shadow-rgb: 212, 175, 90;
  --bs-btn-active-color: var(--cl-ink);
  --bs-btn-active-bg: var(--cl-gold-650);
  --bs-btn-active-border-color: var(--cl-gold-650);
  --bs-btn-disabled-color: var(--cl-ink);
  --bs-btn-disabled-bg: var(--cl-gold-500);
  --bs-btn-disabled-border-color: var(--cl-gold-500);
}
.btn-outline-primary {
  --bs-btn-color: var(--cl-gold-700);
  --bs-btn-border-color: var(--cl-gold-700);
  --bs-btn-hover-color: var(--cl-ink);
  --bs-btn-hover-bg: var(--cl-gold-500);
  --bs-btn-hover-border-color: var(--cl-gold-500);
  --bs-btn-focus-shadow-rgb: 212, 175, 90;
  --bs-btn-active-color: var(--cl-ink);
  --bs-btn-active-bg: var(--cl-gold-650);
  --bs-btn-active-border-color: var(--cl-gold-650);
  --bs-btn-disabled-color: var(--cl-gold-700);
  --bs-btn-disabled-border-color: var(--cl-gold-700);
}

.btn-secondary {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--cl-graphite-600);
  --bs-btn-border-color: var(--cl-graphite-600);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #5C5C5C;
  --bs-btn-hover-border-color: #5C5C5C;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #4F4F4F;
  --bs-btn-active-border-color: #4F4F4F;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--cl-graphite-600);
  --bs-btn-disabled-border-color: var(--cl-graphite-600);
}
.btn-outline-secondary {
  --bs-btn-color: var(--cl-ink);
  --bs-btn-border-color: var(--cl-graphite-600);
  --bs-btn-hover-color: var(--cl-ink);
  --bs-btn-hover-bg: var(--cl-gold-100);
  --bs-btn-hover-border-color: var(--cl-graphite-600);
  --bs-btn-active-color: var(--cl-ink);
  --bs-btn-active-bg: var(--cl-gold-300);
  --bs-btn-active-border-color: var(--cl-graphite-600);
  --bs-btn-disabled-color: var(--cl-graphite-600);
  --bs-btn-disabled-border-color: var(--cl-line);
}

.btn-success {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--cl-action);
  --bs-btn-border-color: var(--cl-action);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #185A3A;
  --bs-btn-hover-border-color: #185A3A;
  --bs-btn-focus-shadow-rgb: 30, 107, 69;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #144B30;
  --bs-btn-active-border-color: #144B30;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--cl-action);
  --bs-btn-disabled-border-color: var(--cl-action);
}
.btn-outline-success {
  --bs-btn-color: var(--cl-action);
  --bs-btn-border-color: var(--cl-action);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--cl-action);
  --bs-btn-hover-border-color: var(--cl-action);
  --bs-btn-focus-shadow-rgb: 30, 107, 69;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #185A3A;
  --bs-btn-active-border-color: #185A3A;
  --bs-btn-disabled-color: var(--cl-action);
  --bs-btn-disabled-border-color: var(--cl-action);
}

.btn-danger {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--cl-danger);
  --bs-btn-border-color: var(--cl-danger);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #842727;
  --bs-btn-hover-border-color: #842727;
  --bs-btn-focus-shadow-rgb: 156, 47, 47;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #712121;
  --bs-btn-active-border-color: #712121;
  --bs-btn-disabled-color: #fff;
  --bs-btn-disabled-bg: var(--cl-danger);
  --bs-btn-disabled-border-color: var(--cl-danger);
}
.btn-outline-danger {
  --bs-btn-color: var(--cl-danger);
  --bs-btn-border-color: var(--cl-danger);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: var(--cl-danger);
  --bs-btn-hover-border-color: var(--cl-danger);
  --bs-btn-focus-shadow-rgb: 156, 47, 47;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #842727;
  --bs-btn-active-border-color: #842727;
  --bs-btn-disabled-color: var(--cl-danger);
  --bs-btn-disabled-border-color: var(--cl-danger);
}

.btn-warning {
  --bs-btn-color: var(--cl-ink);
  --bs-btn-bg: var(--cl-warning);
  --bs-btn-border-color: var(--cl-warning);
  --bs-btn-hover-color: var(--cl-ink);
  --bs-btn-hover-bg: #D6852A;
  --bs-btn-hover-border-color: #D6852A;
  --bs-btn-focus-shadow-rgb: 227, 149, 57;
  --bs-btn-active-color: var(--cl-ink);
  --bs-btn-active-bg: #C97A22;
  --bs-btn-active-border-color: #C97A22;
  --bs-btn-disabled-color: var(--cl-ink);
  --bs-btn-disabled-bg: var(--cl-warning);
  --bs-btn-disabled-border-color: var(--cl-warning);
}
.btn-outline-warning {
  --bs-btn-color: var(--cl-warning-text);
  --bs-btn-border-color: var(--cl-warning-text);
  --bs-btn-hover-color: var(--cl-ink);
  --bs-btn-hover-bg: var(--cl-warning);
  --bs-btn-hover-border-color: var(--cl-warning);
  --bs-btn-focus-shadow-rgb: 227, 149, 57;
  --bs-btn-active-color: var(--cl-ink);
  --bs-btn-active-bg: #D6852A;
  --bs-btn-active-border-color: #D6852A;
  --bs-btn-disabled-color: var(--cl-warning-text);
  --bs-btn-disabled-border-color: var(--cl-warning-text);
}

.btn-info {
  --bs-btn-color: var(--cl-ink);
  --bs-btn-bg: var(--cl-info);
  --bs-btn-border-color: var(--cl-info);
  --bs-btn-hover-color: var(--cl-ink);
  --bs-btn-hover-bg: #7AA4CB;
  --bs-btn-hover-border-color: #7AA4CB;
  --bs-btn-focus-shadow-rgb: 141, 179, 214;
  --bs-btn-active-color: var(--cl-ink);
  --bs-btn-active-bg: #6C99C2;
  --bs-btn-active-border-color: #6C99C2;
  --bs-btn-disabled-color: var(--cl-ink);
  --bs-btn-disabled-bg: var(--cl-info);
  --bs-btn-disabled-border-color: var(--cl-info);
}
.btn-outline-info {
  --bs-btn-color: var(--cl-info-text);
  --bs-btn-border-color: var(--cl-info-text);
  --bs-btn-hover-color: var(--cl-ink);
  --bs-btn-hover-bg: var(--cl-info);
  --bs-btn-hover-border-color: var(--cl-info);
  --bs-btn-focus-shadow-rgb: 141, 179, 214;
  --bs-btn-active-color: var(--cl-ink);
  --bs-btn-active-bg: #7AA4CB;
  --bs-btn-active-border-color: #7AA4CB;
  --bs-btn-disabled-color: var(--cl-info-text);
  --bs-btn-disabled-border-color: var(--cl-info-text);
}

.btn-light {
  --bs-btn-color: var(--cl-ink);
  --bs-btn-bg: var(--cl-surface-alt);
  --bs-btn-border-color: var(--cl-line);
  --bs-btn-hover-color: var(--cl-ink);
  --bs-btn-hover-bg: var(--cl-gold-100);
  --bs-btn-hover-border-color: var(--cl-gold-300);
  --bs-btn-active-color: var(--cl-ink);
  --bs-btn-active-bg: var(--cl-gold-300);
  --bs-btn-active-border-color: var(--cl-gold-300);
}
.btn-dark {
  --bs-btn-color: #fff;
  --bs-btn-bg: var(--cl-ink);
  --bs-btn-border-color: var(--cl-ink);
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #3D3D3D;
  --bs-btn-hover-border-color: #3D3D3D;
  --bs-btn-active-color: #fff;
  --bs-btn-active-bg: #1F1F1F;
  --bs-btn-active-border-color: #1F1F1F;
}

/* ── Selos (badges) ──────────────────────────────────────────────────────── */
.badge {
  --bs-badge-font-weight: 600;
  --bs-badge-border-radius: var(--cl-radius-sm);
  letter-spacing: .03em;
}
/* Preenchimentos claros pedem texto ink, mesmo sem "text-dark" */
.badge.bg-warning,
.badge.bg-info { color: var(--cl-ink); }

/* Indicadores do Back Office — a cor segue a entidade (mesma dos gráficos) */
.badge-conferencia { background-color: var(--cl-series-1-strong); color: #fff; }
.badge-contratos   { background-color: var(--cl-series-2); color: #fff; }
.badge-restituicao { background-color: var(--cl-series-3); color: #fff; }
.text-conferencia  { color: var(--cl-series-1-strong) !important; }
.text-contratos    { color: var(--cl-series-2) !important; }
.text-restituicao  { color: var(--cl-series-3) !important; }
.btn-conferencia   { --bs-btn-color: #fff; --bs-btn-bg: var(--cl-series-1-strong); --bs-btn-border-color: var(--cl-series-1-strong); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #765920; --bs-btn-hover-border-color: #765920; }
.btn-restituicao   { --bs-btn-color: #fff; --bs-btn-bg: var(--cl-series-3); --bs-btn-border-color: var(--cl-series-3); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #772F52; --bs-btn-hover-border-color: #772F52; }

/* Faixas de eficiência das conferências (status: ótima → ruim) */
.badge-tier-otima  { background-color: var(--cl-action); color: #fff; }
.badge-tier-boa    { background-color: var(--cl-success-soft); color: var(--cl-ink); }

/* ── Alertas ─────────────────────────────────────────────────────────────── */
.alert {
  --bs-alert-border-radius: var(--cl-radius-sm);
}

/* ── Formulários ─────────────────────────────────────────────────────────── */
.form-control,
.form-select {
  border-color: var(--cl-graphite-600);
  border-radius: var(--cl-radius-sm);
  color: var(--cl-ink);
}
.form-control::placeholder { color: #8A867E; }
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  border-color: var(--cl-gold-700);
  box-shadow: 0 0 0 .2rem rgba(212, 175, 90, .45);
}
.form-control:disabled,
.form-select:disabled,
.form-control[readonly] {
  background-color: var(--cl-surface-alt);
}
.form-label { font-weight: 500; }
.input-group-text {
  background-color: var(--cl-surface-alt);
  border-color: var(--cl-graphite-600);
  color: var(--cl-graphite-600);
}
.form-check-input { border-color: var(--cl-graphite-600); }
.form-check-input:checked {
  background-color: var(--cl-gold-700);
  border-color: var(--cl-gold-700);
}
.form-check-input[type=checkbox]:indeterminate {
  background-color: var(--cl-gold-700);
  border-color: var(--cl-gold-700);
}
.form-switch .form-check-input:focus {
  --bs-form-switch-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23D4AF5A'/%3e%3c/svg%3e");
}
.form-range::-webkit-slider-thumb { background-color: var(--cl-gold-700); }
.form-range::-moz-range-thumb { background-color: var(--cl-gold-700); }

/* ── Abas: texto com filete dourado no item ativo ────────────────────────── */
.nav-tabs {
  --bs-nav-tabs-border-color: var(--cl-line);
  --bs-nav-tabs-border-radius: 0;
  --bs-nav-tabs-link-hover-border-color: transparent;
  --bs-nav-tabs-link-active-color: var(--cl-ink);
  --bs-nav-tabs-link-active-bg: transparent;
  --bs-nav-tabs-link-active-border-color: transparent;
}
.nav-tabs .nav-link {
  color: var(--cl-graphite-600);
  font-weight: 500;
  border: 0;
  border-bottom: 2px solid transparent;
}
.nav-tabs .nav-link:hover,
.nav-tabs .nav-link:focus-visible {
  color: var(--cl-ink);
  border-bottom-color: var(--cl-gold-300);
}
.nav-tabs .nav-link.active,
.nav-tabs .nav-item.show .nav-link {
  color: var(--cl-ink);
  font-weight: 600;
  border-bottom-color: var(--cl-gold-500);
}
.nav-pills {
  --bs-nav-pills-border-radius: var(--cl-radius-sm);
  --bs-nav-pills-link-active-color: var(--cl-ink);
  --bs-nav-pills-link-active-bg: var(--cl-gold-100);
}

/* ── Listas, menus, paginação ────────────────────────────────────────────── */
.list-group {
  --bs-list-group-border-color: var(--cl-line);
  --bs-list-group-action-hover-bg: var(--cl-surface-alt);
  --bs-list-group-action-active-bg: var(--cl-gold-100);
  --bs-list-group-active-color: var(--cl-ink);
  --bs-list-group-active-bg: var(--cl-gold-100);
  --bs-list-group-active-border-color: var(--cl-gold-300);
}
.dropdown-menu {
  --bs-dropdown-border-color: var(--cl-line);
  --bs-dropdown-link-active-color: var(--cl-ink);
  --bs-dropdown-link-active-bg: var(--cl-gold-100);
}
.pagination {
  --bs-pagination-color: var(--cl-gold-700);
  --bs-pagination-active-color: var(--cl-ink);
  --bs-pagination-active-bg: var(--cl-gold-500);
  --bs-pagination-active-border-color: var(--cl-gold-500);
}

/* ── Progresso ───────────────────────────────────────────────────────────── */
.progress {
  --bs-progress-bg: #EFEBE2;
  --bs-progress-bar-bg: var(--cl-gold-700);
  --bs-progress-border-radius: 0;
}

/* ── Modais ──────────────────────────────────────────────────────────────── */
.modal {
  --bs-modal-border-color: var(--cl-line);
  --bs-modal-border-radius: var(--cl-radius-sm);
  --bs-modal-inner-border-radius: 1px;
  --bs-modal-header-border-color: var(--cl-line);
  --bs-modal-footer-border-color: var(--cl-line);
}
.modal-title { font-size: 1.05rem; }

/* ── Tabelas ─────────────────────────────────────────────────────────────── */
.table {
  --bs-table-border-color: var(--cl-line);
  --bs-table-hover-bg: var(--cl-gold-100);
  --bs-table-striped-bg: var(--cl-surface-alt);
}
.table-light {
  --bs-table-color: var(--cl-graphite-600);
  --bs-table-bg: var(--cl-surface-alt);
  --bs-table-border-color: var(--cl-line);
  --bs-table-striped-bg: var(--cl-gold-100);
  --bs-table-hover-bg: var(--cl-gold-100);
  --bs-table-hover-color: var(--cl-ink);
}
.table { font-size: .875rem; }
.table > thead th {
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  vertical-align: bottom;
}
/* Valores (colunas alinhadas à direita) não quebram no meio: "R$ / 1.234,00" */
.table td.text-end { white-space: nowrap; }
.table-sm td, .table-sm th { padding: .35rem .6rem; }

/* ── Misc ────────────────────────────────────────────────────────────────── */
.htmx-indicator { display: none; }
.htmx-request .htmx-indicator { display: inline-block; }
.htmx-request.htmx-indicator { display: inline-block; }

pre { white-space: pre-wrap; word-break: break-all; }

::selection { background: var(--cl-gold-300); color: var(--cl-ink); }

/* Scrollable panel */
.panel-scroll { max-height: 70vh; overflow-y: auto; }

@media (max-width: 768px) {
  :root { --sidebar-width: 64px; }
  .sidebar-brand { padding: var(--cl-space-4) 0 var(--cl-space-2); }
  .sidebar-brand .logo-full,
  .sidebar-brand-rule,
  .sidebar-link .sidebar-label,
  .sidebar-chevron,
  .sidebar-user span,
  .sidebar-user .btn-label { display: none; }
  .sidebar-brand .logo-symbol { display: inline-block; }
  .sidebar-link { justify-content: center; margin: 1px .5rem; padding: .6rem 0; }
  .sidebar-link .bi { margin: 0 !important; font-size: 1.15rem; }
  .sidebar-sublink { padding-left: 0; }
  .sidebar-link.active::after { display: none; }
  .sidebar-user { text-align: center; padding-left: 0 !important; padding-right: 0 !important; }
  .sidebar-user .btn { margin: 0 !important; }
}

/* ── Login ───────────────────────────────────────────────────────────────── */
.login-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--cl-space-10) var(--cl-space-4);
  background: var(--cl-surface-alt);
}
/* Faixa de bandas da marca, tirada da capa do design system */
.brand-band {
  position: fixed;
  inset: 0 0 auto 0;
  height: 6px;
  display: flex;
}
.brand-band > span { display: block; height: 100%; }
.brand-band .b-gold  { flex: 384; background: var(--cl-gold-500); }
.brand-band .b-tint  { flex: 176; background: var(--cl-gold-300); }
.brand-band .b-ink   { flex: 240; background: var(--cl-ink); }
.brand-band .b-grey  { flex: 96;  background: var(--cl-graphite-600); }
.brand-band .b-olive { flex: 64;  background: var(--cl-olive-400); }

.login-card {
  width: 100%;
  max-width: 400px;
  background: var(--cl-surface);
  border: var(--cl-hairline) solid var(--cl-line);
  padding: var(--cl-space-10) var(--cl-space-10) var(--cl-space-6);
}
.login-card .login-logo { display: block; width: 210px; max-width: 100%; height: auto; margin: 0 auto; }
.login-card .cl-rule { margin: var(--cl-space-6) 0 var(--cl-space-4); }
.login-footer { font-size: .75rem; color: var(--cl-graphite-600); }
@media (max-width: 420px) {
  .login-card { padding: var(--cl-space-6) var(--cl-space-4) var(--cl-space-4); }
}

/* Barras por indicador do Back Office (cor da série da entidade) */
.bg-conferencia { background-color: var(--cl-series-1) !important; }
.bg-contratos   { background-color: var(--cl-series-2) !important; }
.bg-restituicao { background-color: var(--cl-series-3) !important; }
