/*
 * Tema v2 (tki) - tokens para os componentes do Bootstrap/template.
 *
 * Carrega logo depois do tki.css (e' o primeiro arquivo de componentes/ pela
 * ordem alfabetica). Em vez de pintar componente por componente, aponta as
 * variaveis do Bootstrap 5.3 e as do gerenciador de cores (--text-color,
 * --card-bg-color...) para os tokens --tki-*: tudo que o template e as paginas
 * desenham com essas variaveis (cartoes, modais, tabelas, campos, menus,
 * .text-muted, .bg-light, .text-dark...) passa a seguir o claro/escuro do tki.
 *
 * So' vale com <html class="tki-layout">; a v1 nao muda. A cor de acao
 * continua sendo a da whitelabel (--bs-primary / --bs-primary-rgb).
 */

html.tki-layout {
  /* Tokens extras usados pelos componentes */
  --tki-fg-2: #3f3f46;             /* texto de corpo em tabela/lista */
  --tki-surface-2: #f9fafb;        /* cabecalho de tabela, rodape de modal, bg-light */
  --tki-input-bg: #ffffff;
  --tki-input-border: #e4e4e7;
  --tki-input-border-hover: #d4d4d8;
  --tki-placeholder: #71717a;
  --tki-overlay: rgba(15, 23, 42, 0.5);
  --tki-shadow-pop: 0 12px 32px -12px rgba(15, 23, 42, 0.22), 0 2px 6px -2px rgba(15, 23, 42, 0.06);
  --tki-ring: 0 0 0 3px rgba(var(--bs-primary-rgb, 37, 99, 235), 0.18);
  --tki-radius-sm: 8px;

  /* Selos/alertas no padrao do Badge do tki (fundo -50, texto -700) */
  --tki-soft-success-bg: #ecfdf5; --tki-soft-success-fg: #047857; --tki-soft-success-bd: #d1fae5;
  --tki-soft-warning-bg: #fffbeb; --tki-soft-warning-fg: #b45309; --tki-soft-warning-bd: #fef3c7;
  --tki-soft-danger-bg: #fef2f2;  --tki-soft-danger-fg: #b91c1c;  --tki-soft-danger-bd: #fee2e2;
  --tki-soft-info-bg: #f0f9ff;    --tki-soft-info-fg: #0369a1;    --tki-soft-info-bd: #e0f2fe;
  --tki-soft-neutral-bg: #f4f4f5; --tki-soft-neutral-fg: #52525b; --tki-soft-neutral-bd: #e4e4e7;
  --tki-soft-primary-bg: rgba(var(--bs-primary-rgb, 37, 99, 235), 0.08);
  --tki-soft-primary-bd: rgba(var(--bs-primary-rgb, 37, 99, 235), 0.18);
  /* texto na cor da marca sobre fundo claro/escuro (clareado no escuro) */
  --tki-primary-text: var(--bs-primary, #2563eb);
  --tki-success-text: #047857;
  --tki-warning-text: #b45309;
  --tki-danger-text: #dc2626;
  --tki-info-text: #0369a1;

  /* ---- Cores de estado ----
     A primaria continua a da whitelabel. Verde/ambar/ciano do template ficam
     abaixo de 4.5:1 como texto no branco; aqui viram os tons -700 do tki
     (texto no claro e fundo com texto branco passam nos dois casos). */
  --bs-success: #047857;
  --bs-success-rgb: 4, 120, 87;
  --bs-warning: #b45309;
  --bs-warning-rgb: 180, 83, 9;
  --bs-info: #0369a1;
  --bs-info-rgb: 3, 105, 161;

  /* ---- Bootstrap 5.3 ---- */
  --bs-body-color: #101828;
  --bs-body-color-rgb: 16, 24, 40;
  --bs-body-bg: #ffffff;              /* campos, popovers, listas: superficie */
  --bs-body-bg-rgb: 255, 255, 255;
  --bs-emphasis-color: #101828;
  --bs-emphasis-color-rgb: 16, 24, 40;
  --bs-heading-color: #101828;
  --bs-secondary-color: #5f6b7c;      /* .text-muted, form-text */
  --bs-secondary-color-rgb: 95, 107, 124;
  --bs-secondary-bg: #ffffff;         /* card, modal */
  --bs-secondary-bg-rgb: 255, 255, 255;
  --bs-tertiary-color: #5f6b7c;
  --bs-tertiary-color-rgb: 95, 107, 124;
  --bs-tertiary-bg: #f9fafb;
  --bs-tertiary-bg-rgb: 249, 250, 251;
  --bs-border-color: #e5e7eb;
  --bs-border-color-translucent: rgba(15, 23, 42, 0.08);
  --bs-link-color: var(--bs-primary);
  --bs-link-color-rgb: var(--bs-primary-rgb);
  --bs-link-hover-color: var(--bs-primary);
  --bs-link-hover-color-rgb: var(--bs-primary-rgb);
  --bs-focus-ring-color: rgba(var(--bs-primary-rgb, 37, 99, 235), 0.18);
  --bs-border-radius: 12px;
  --bs-border-radius-sm: 8px;
  --bs-border-radius-lg: 16px;
  --bs-box-shadow: var(--tki-shadow-pop);

  /* "light" = superficie suave, "dark" = texto forte (no escuro se invertem) */
  --bs-light: #f9fafb;
  --bs-light-rgb: 249, 250, 251;
  --bs-dark: #101828;
  --bs-dark-rgb: 16, 24, 40;
  --bs-white-rgb: 255, 255, 255;

  --bs-primary-bg-subtle: rgba(var(--bs-primary-rgb, 37, 99, 235), 0.08);
  --bs-secondary-bg-subtle: #f4f4f5;
  --bs-success-bg-subtle: #ecfdf5;
  --bs-info-bg-subtle: #f0f9ff;
  --bs-warning-bg-subtle: #fffbeb;
  --bs-danger-bg-subtle: #fef2f2;
  --bs-light-bg-subtle: #f9fafb;
  --bs-dark-bg-subtle: #f4f4f5;
  --bs-primary-border-subtle: rgba(var(--bs-primary-rgb, 37, 99, 235), 0.2);
  --bs-secondary-border-subtle: #e4e4e7;
  --bs-success-border-subtle: #a7f3d0;
  --bs-info-border-subtle: #bae6fd;
  --bs-warning-border-subtle: #fde68a;
  --bs-danger-border-subtle: #fecaca;
  --bs-light-border-subtle: #e5e7eb;
  --bs-dark-border-subtle: #d4d4d8;
  --bs-primary-text-emphasis: var(--bs-primary);
  --bs-secondary-text-emphasis: #52525b;
  --bs-success-text-emphasis: #047857;
  --bs-info-text-emphasis: #0369a1;
  --bs-warning-text-emphasis: #b45309;
  --bs-danger-text-emphasis: #b91c1c;
  --bs-light-text-emphasis: #52525b;
  --bs-dark-text-emphasis: #27272a;
  --bs-form-valid-color: #047857;
  --bs-form-valid-border-color: #10b981;
  --bs-form-invalid-color: #dc2626;
  --bs-form-invalid-border-color: #f87171;

  /* ---- Variaveis do gerenciador de cores (partials/gerenciador_cores) ---- */
  --text-color: #3f3f46;
  --border-color: #e4e4e7;
  --input-bg-color: #ffffff;
  --card-bg-color: #ffffff;
  --list-group-item-bg: transparent;
  --progress-bg-color: #f4f4f5;
  --shadow-normal: 0 1px 2px rgba(15, 23, 42, 0.04);
  --shadow-hover: 0 8px 24px -12px rgba(15, 23, 42, 0.18);

  color-scheme: light;
}

html.tki-layout[data-bs-theme='dark'] {
  --tki-fg-2: #d4d4d8;
  --tki-surface-2: #1c1f25;
  --tki-input-bg: #1a1d23;
  --tki-input-border: #2c3038;
  --tki-input-border-hover: #3a3f49;
  --tki-placeholder: #8b93a1;
  --tki-overlay: rgba(0, 0, 0, 0.65);
  --tki-shadow-pop: 0 16px 40px -12px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.06);

  --tki-soft-success-bg: #0f2a22; --tki-soft-success-fg: #34d399; --tki-soft-success-bd: #134e3a;
  --tki-soft-warning-bg: #2d2210; --tki-soft-warning-fg: #fbbf24; --tki-soft-warning-bd: #4a3712;
  --tki-soft-danger-bg: #2e1517;  --tki-soft-danger-fg: #f87171;  --tki-soft-danger-bd: #4c1d20;
  --tki-soft-info-bg: #0f2433;    --tki-soft-info-fg: #38bdf8;    --tki-soft-info-bd: #133a52;
  --tki-soft-neutral-bg: #23262d; --tki-soft-neutral-fg: #d4d4d8; --tki-soft-neutral-bd: #2f333b;
  --tki-soft-primary-bg: rgba(var(--bs-primary-rgb, 37, 99, 235), 0.16);
  --tki-soft-primary-bd: rgba(var(--bs-primary-rgb, 37, 99, 235), 0.32);
  --tki-primary-text: color-mix(in srgb, var(--bs-primary, #2563eb) 62%, #ffffff);
  --tki-success-text: #34d399;
  --tki-warning-text: #fbbf24;
  --tki-danger-text: #f87171;
  --tki-info-text: #38bdf8;

  /* no escuro, os tons claros (-400/-500) leem bem como texto */
  --bs-success: #10b981;
  --bs-success-rgb: 16, 185, 129;
  --bs-warning: #f59e0b;
  --bs-warning-rgb: 245, 158, 11;
  --bs-info: #06b6d4;
  --bs-info-rgb: 6, 182, 212;

  --bs-body-color: #f3f4f6;
  --bs-body-color-rgb: 243, 244, 246;
  --bs-body-bg: #16181d;
  --bs-body-bg-rgb: 22, 24, 29;
  --bs-emphasis-color: #f3f4f6;
  --bs-emphasis-color-rgb: 243, 244, 246;
  --bs-heading-color: #f3f4f6;
  --bs-secondary-color: #9aa3b2;
  --bs-secondary-color-rgb: 154, 163, 178;
  --bs-secondary-bg: #16181d;
  --bs-secondary-bg-rgb: 22, 24, 29;
  --bs-tertiary-color: #9aa3b2;
  --bs-tertiary-color-rgb: 154, 163, 178;
  --bs-tertiary-bg: #1c1f25;
  --bs-tertiary-bg-rgb: 28, 31, 37;
  --bs-border-color: #262a31;
  --bs-border-color-translucent: rgba(255, 255, 255, 0.08);
  --bs-link-color: var(--tki-primary-text);
  --bs-link-hover-color: var(--tki-primary-text);

  --bs-light: #1c1f25;
  --bs-light-rgb: 28, 31, 37;
  --bs-dark: #f3f4f6;
  --bs-dark-rgb: 243, 244, 246;

  --bs-primary-bg-subtle: rgba(var(--bs-primary-rgb, 37, 99, 235), 0.16);
  --bs-secondary-bg-subtle: #23262d;
  --bs-success-bg-subtle: #0f2a22;
  --bs-info-bg-subtle: #0f2433;
  --bs-warning-bg-subtle: #2d2210;
  --bs-danger-bg-subtle: #2e1517;
  --bs-light-bg-subtle: #1c1f25;
  --bs-dark-bg-subtle: #23262d;
  --bs-primary-border-subtle: rgba(var(--bs-primary-rgb, 37, 99, 235), 0.35);
  --bs-secondary-border-subtle: #2f333b;
  --bs-success-border-subtle: #134e3a;
  --bs-info-border-subtle: #133a52;
  --bs-warning-border-subtle: #4a3712;
  --bs-danger-border-subtle: #4c1d20;
  --bs-light-border-subtle: #2f333b;
  --bs-dark-border-subtle: #3a3f49;
  --bs-primary-text-emphasis: var(--tki-primary-text);
  --bs-secondary-text-emphasis: #d4d4d8;
  --bs-success-text-emphasis: #34d399;
  --bs-info-text-emphasis: #38bdf8;
  --bs-warning-text-emphasis: #fbbf24;
  --bs-danger-text-emphasis: #f87171;
  --bs-light-text-emphasis: #d4d4d8;
  --bs-dark-text-emphasis: #f3f4f6;
  --bs-form-valid-color: #34d399;
  --bs-form-valid-border-color: #10b981;
  --bs-form-invalid-color: #f87171;
  --bs-form-invalid-border-color: #ef4444;

  --text-color: #d4d4d8;
  --border-color: #2c3038;
  --input-bg-color: #1a1d23;
  --card-bg-color: #16181d;
  --list-group-item-bg: transparent;
  --progress-bg-color: #23262d;
  --shadow-normal: none;
  --shadow-hover: 0 8px 24px -12px rgba(0, 0, 0, 0.6);

  color-scheme: dark;
}

/* ---------- Tipografia base ---------- */

html.tki-layout body {
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
}

html.tki-layout .page-content h1,
html.tki-layout .page-content h2,
html.tki-layout .page-content h3,
html.tki-layout .page-content h4,
html.tki-layout .page-content h5,
html.tki-layout .page-content h6,
html.tki-layout .modal h1,
html.tki-layout .modal h2,
html.tki-layout .modal h3,
html.tki-layout .modal h4,
html.tki-layout .modal h5,
html.tki-layout .modal h6 {
  font-family: 'DM Sans', ui-sans-serif, system-ui, sans-serif !important;
  letter-spacing: -0.01em;
}

/* Link solto (sem classe) no escuro: a cor da marca clareada para ler. */
:where(html.tki-layout[data-bs-theme='dark']) a:not([class]) {
  color: var(--tki-primary-text);
}

html.tki-layout ::selection {
  background: rgba(var(--bs-primary-rgb, 37, 99, 235), 0.2);
}

html.tki-layout hr {
  border-top-color: var(--tki-border);
  opacity: 1;
}
