/* =========================================================================
   3MOVE — Design tokens
   ========================================================================= */

:root {
  /* Neutrais — light */
  --tf-bg:            #ffffff;
  --tf-surface:       #ffffff;
  --tf-surface-alt:   #fafafa;
  --tf-border:        rgba(0, 0, 0, 0.14);
  --tf-border-strong: rgba(0, 0, 0, 0.28);
  --tf-fg:            #0a0a0a;
  --tf-fg-muted:      #52525b;
  --tf-fg-subtle:     #71717a;
  --tf-accent:        #0a0a0a;
  --tf-accent-fg:     #ffffff;
  --tf-hover:         rgba(0, 0, 0, 0.04);
  --tf-active:        rgba(0, 0, 0, 0.08);
  --tf-focus-ring:    rgba(0, 0, 0, 0.30);

  /* Semânticas — dessaturadas */
  --tf-success:         #16a34a;
  --tf-success-subtle:  #dcfce7;
  --tf-success-fg:      #14532d;
  --tf-warning:         #ca8a04;
  --tf-warning-subtle:  #fef9c3;
  --tf-warning-fg:      #713f12;
  --tf-danger:          #dc2626;
  --tf-danger-subtle:   #fee2e2;
  --tf-danger-fg:       #7f1d1d;
  --tf-info:            #0284c7;
  --tf-info-subtle:     #e0f2fe;
  --tf-info-fg:         #0c4a6e;

  /* Geometria */
  --tf-radius:    6px;
  --tf-radius-sm: 4px;
  --tf-radius-lg: 10px;

  /* Bootstrap 5.3 var overrides */
  --bs-body-bg: var(--tf-bg);
  --bs-body-color: var(--tf-fg);
  --bs-body-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  --bs-border-color: var(--tf-border);
  --bs-border-color-translucent: var(--tf-border);
  --bs-secondary-bg: var(--tf-surface-alt);
  --bs-tertiary-bg: var(--tf-surface-alt);
  --bs-secondary-color: var(--tf-fg-muted);
  --bs-tertiary-color: var(--tf-fg-subtle);
  --bs-emphasis-color: var(--tf-fg);
  --bs-heading-color: var(--tf-fg);
  --bs-link-color: var(--tf-accent);
  --bs-link-hover-color: var(--tf-accent);
  --bs-primary: var(--tf-accent);
  --bs-primary-rgb: 10, 10, 10;
  --bs-success-rgb: 22, 163, 74;
  --bs-warning-rgb: 202, 138, 4;
  --bs-danger-rgb: 220, 38, 38;
  --bs-info-rgb: 2, 132, 199;
}

[data-bs-theme="dark"] {
  --tf-bg:            #0a0a0a;
  --tf-surface:       #141414;
  --tf-surface-alt:   #1c1c1c;
  --tf-border:        rgba(255, 255, 255, 0.14);
  --tf-border-strong: rgba(255, 255, 255, 0.28);
  --tf-fg:            #fafafa;
  --tf-fg-muted:      #a1a1aa;
  --tf-fg-subtle:     #71717a;
  --tf-accent:        #fafafa;
  --tf-accent-fg:     #0a0a0a;
  --tf-hover:         rgba(255, 255, 255, 0.06);
  --tf-active:        rgba(255, 255, 255, 0.10);
  --tf-focus-ring:    rgba(255, 255, 255, 0.35);

  --tf-success-subtle:  #14532d33;
  --tf-success-fg:      #86efac;
  --tf-warning-subtle:  #713f1240;
  --tf-warning-fg:      #fde68a;
  --tf-danger-subtle:   #7f1d1d40;
  --tf-danger-fg:       #fca5a5;
  --tf-info-subtle:     #0c4a6e40;
  --tf-info-fg:         #7dd3fc;

  --bs-primary-rgb: 250, 250, 250;
}

/* =========================================================================
   Base
   ========================================================================= */

html { font-size: 15px; min-height: 100%; position: relative; }
body {
  font-family: var(--bs-body-font-family);
  font-feature-settings: 'cv02', 'cv03', 'cv04', 'cv11';
  -webkit-font-smoothing: antialiased;
  background: var(--tf-bg);
  color: var(--tf-fg);
  margin-bottom: 40px;
}

h1, h2, h3, h4, h5, h6 { font-weight: 600; letter-spacing: -0.01em; }

/* Focus visíveis mas discretos */
.btn:focus-visible,
.form-control:focus,
.form-select:focus,
.form-check-input:focus {
  box-shadow: 0 0 0 3px var(--tf-focus-ring);
  border-color: var(--tf-fg);
  outline: none;
}

/* =========================================================================
   Navbar
   ========================================================================= */

.navbar {
  background: var(--tf-bg) !important;
  border-bottom: 1px solid var(--tf-border);
  padding: 0.5rem 1rem;
}
.navbar .navbar-brand,
.navbar .nav-link {
  color: var(--tf-fg) !important;
  font-weight: 500;
}
.navbar .nav-link:hover { color: var(--tf-fg) !important; background: var(--tf-hover); border-radius: var(--tf-radius-sm); }
.navbar .navbar-toggler {
  border-color: var(--tf-border);
  color: var(--tf-fg);
}

/* =========================================================================
   Cards, superfícies
   ========================================================================= */

.card {
  background-color: var(--tf-surface);
  border: 1px solid var(--tf-border);
  border-radius: var(--tf-radius);
  box-shadow: none !important;
}
.card-header {
  background-color: var(--tf-surface) !important;
  border-bottom: 1px solid var(--tf-border);
  color: var(--tf-fg);
  font-weight: 600;
}
.card-footer {
  background-color: var(--tf-surface) !important;
  border-top: 1px solid var(--tf-border);
}

.dropdown-menu {
  background: var(--tf-surface);
  border: 1px solid var(--tf-border);
  box-shadow: none;
  border-radius: var(--tf-radius);
}
.dropdown-item { color: var(--tf-fg); }
.dropdown-item:hover, .dropdown-item:focus { background: var(--tf-hover); color: var(--tf-fg); }

/* =========================================================================
   Botões
   ========================================================================= */

.btn { border-radius: var(--tf-radius-sm); font-weight: 500; }
.btn-primary {
  background: var(--tf-accent); border-color: var(--tf-accent); color: var(--tf-accent-fg);
}
.btn-primary:hover, .btn-primary:focus {
  background: var(--tf-fg); border-color: var(--tf-fg); color: var(--tf-accent-fg); opacity: 0.9;
}
.btn-outline-primary {
  background: transparent; color: var(--tf-fg); border-color: var(--tf-border-strong);
}
.btn-outline-primary:hover, .btn-outline-primary:focus {
  background: var(--tf-fg); color: var(--tf-accent-fg); border-color: var(--tf-fg);
}
.btn-outline-secondary {
  color: var(--tf-fg-muted); border-color: var(--tf-border);
}
.btn-outline-secondary:hover, .btn-outline-secondary:focus {
  background: var(--tf-hover); color: var(--tf-fg); border-color: var(--tf-border-strong);
}
.btn-outline-danger { color: var(--tf-danger); border-color: rgba(220, 38, 38, 0.4); }
.btn-outline-danger:hover { background: var(--tf-danger); color: #fff; border-color: var(--tf-danger); }

/* =========================================================================
   Tabelas
   ========================================================================= */

.table {
  --bs-table-bg: transparent;
  --bs-table-color: var(--tf-fg);
  --bs-table-border-color: var(--tf-border);
  --bs-table-hover-bg: var(--tf-hover);
  --bs-table-striped-bg: var(--tf-surface-alt);
  border-color: var(--tf-border);
}
.table thead th {
  border-bottom: 1px solid var(--tf-border-strong);
  color: var(--tf-fg-muted);
  font-weight: 600;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.table.table-dark, .table.table-light { --bs-table-bg: var(--tf-surface-alt); color: var(--tf-fg); }
.table-hover tbody tr:hover { background: var(--tf-hover); }

/* =========================================================================
   Forms
   ========================================================================= */

.form-control, .form-select {
  background: var(--tf-surface);
  color: var(--tf-fg);
  border: 1px solid var(--tf-border);
  border-radius: var(--tf-radius-sm);
}
.form-control:disabled, .form-select:disabled { background: var(--tf-surface-alt); opacity: 0.6; }
.form-control::placeholder { color: var(--tf-fg-subtle); }
.form-label { color: var(--tf-fg-muted); font-weight: 500; font-size: 0.875rem; }
.form-check-input {
  background-color: var(--tf-surface);
  border-color: var(--tf-border-strong);
}
.form-check-input:checked { background-color: var(--tf-fg); border-color: var(--tf-fg); }
.input-group-text { background: var(--tf-surface-alt); border-color: var(--tf-border); color: var(--tf-fg-muted); }

/* =========================================================================
   Badges, alertas
   ========================================================================= */

.badge {
  font-weight: 500;
  border-radius: var(--tf-radius-sm);
  padding: 0.35em 0.6em;
}
.badge.bg-primary { background: var(--tf-fg) !important; color: var(--tf-accent-fg); }
.badge.bg-secondary { background: var(--tf-fg-muted) !important; color: var(--tf-accent-fg); }
.badge.bg-success { background: var(--tf-success) !important; color: #fff; }
.badge.bg-warning { background: var(--tf-warning) !important; color: #fff; }
.badge.bg-danger { background: var(--tf-danger) !important; color: #fff; }
.badge.bg-info { background: var(--tf-info) !important; color: #fff; }
.badge.bg-light { background: var(--tf-surface-alt) !important; color: var(--tf-fg); border: 1px solid var(--tf-border); }
.badge.bg-warning.text-dark { color: #fff !important; }
.badge.bg-info.text-dark { color: #fff !important; }

.alert { border-radius: var(--tf-radius); border-width: 1px; }
.alert-success { background: var(--tf-success-subtle); color: var(--tf-success-fg); border-color: var(--tf-success); }
.alert-warning { background: var(--tf-warning-subtle); color: var(--tf-warning-fg); border-color: var(--tf-warning); }
.alert-danger  { background: var(--tf-danger-subtle);  color: var(--tf-danger-fg);  border-color: var(--tf-danger); }
.alert-info    { background: var(--tf-info-subtle);    color: var(--tf-info-fg);    border-color: var(--tf-info); }

/* =========================================================================
   List groups, tabs
   ========================================================================= */

.list-group-item {
  background: var(--tf-surface);
  border-color: var(--tf-border);
  color: var(--tf-fg);
}
.list-group-item.active {
  background: var(--tf-fg); color: var(--tf-accent-fg); border-color: var(--tf-fg);
}
.list-group-item-action:hover, .list-group-item-action:focus {
  background: var(--tf-hover); color: var(--tf-fg);
}

.nav-tabs { border-bottom: 1px solid var(--tf-border); }
.nav-tabs .nav-link {
  color: var(--tf-fg-muted); border: 1px solid transparent; border-bottom: none;
  border-top-left-radius: var(--tf-radius-sm); border-top-right-radius: var(--tf-radius-sm);
}
.nav-tabs .nav-link:hover { border-color: var(--tf-border); background: var(--tf-hover); }
.nav-tabs .nav-link.active {
  background: var(--tf-surface); color: var(--tf-fg);
  border-color: var(--tf-border) var(--tf-border) var(--tf-surface);
}

/* =========================================================================
   Utilitários semânticos 3MOVE
   ========================================================================= */

.tf-badge-warning { background: var(--tf-warning-subtle); color: var(--tf-warning-fg); border: 1px solid var(--tf-warning); }
.tf-badge-danger  { background: var(--tf-danger-subtle);  color: var(--tf-danger-fg);  border: 1px solid var(--tf-danger); }
.tf-badge-success { background: var(--tf-success-subtle); color: var(--tf-success-fg); border: 1px solid var(--tf-success); }
.tf-badge-info    { background: var(--tf-info-subtle);    color: var(--tf-info-fg);    border: 1px solid var(--tf-info); }

.tf-surface { background: var(--tf-surface); border: 1px solid var(--tf-border); border-radius: var(--tf-radius); }
.tf-muted { color: var(--tf-fg-muted); }

/* Toggle tema (botão discreto na navbar) */
.tf-theme-toggle {
  background: transparent; border: 1px solid var(--tf-border); color: var(--tf-fg);
  border-radius: var(--tf-radius-sm); padding: 0.25rem 0.55rem; line-height: 1;
  font-size: 0.9rem; cursor: pointer;
}
.tf-theme-toggle:hover { background: var(--tf-hover); }

/* Compat com utilitários bg-white/bg-light hardcoded em views antigas */
.bg-white { background-color: var(--tf-surface) !important; color: var(--tf-fg); }
.bg-light { background-color: var(--tf-surface-alt) !important; color: var(--tf-fg); }
.text-muted { color: var(--tf-fg-muted) !important; }
.border-top { border-top-color: var(--tf-border) !important; }
.border-bottom { border-bottom-color: var(--tf-border) !important; }
