:root, [data-bs-theme=light] {
  --bg: #f8fafc;
  --bg-2: #ffffff;
  --bg-3: #eef2f7;
  --border: #d0d7e2;
  --text: #0f172a;
  --text-strong: #0b1220;
  --text-muted: #cbd3db;
  --text-soft: #cbd3db;
  --primary: #1e40af;
  --primary-contrast: #ffffff;
  --accent: #0ea5e9;
  --danger: #dc2626;
  --success: #16a34a;
  --table-header: #f1f5f9;
  --table-row: #ffffff;
  --form-bg: #ffffff;
  --form-border: #cbd5e1;
}

:root, [data-bs-theme=dark] {
  --bg: #0e1224;
  --bg-2: #151936;
  --bg-3: #1b2044;
  --border: #2a315d;
  --text: #e6e8f0;
  --text-strong: #ffffff;
  --text-muted: #b8bfd7;
  --text-soft: #a7afc9;
  --primary: #7aa2f7;
  --primary-contrast: #0b1026;
  --accent: #89b4fa;
  --danger: #ef4444;
  --success: #22c55e;
  --table-header: #141833;
  --table-row: #171b34;
  --form-bg: #171b34;
  --form-border: #2a315d;
}

body { background-color: var(--bg); color: var(--text); }
.navbar { background: var(--bg-3); border-bottom: 1px solid var(--border); }
.brand { color: var(--text); text-decoration: none; font-weight: 600; }

.sidebar { background: var(--bg-2); border-right: 1px solid var(--border); min-height: calc(100vh - 56px); }
.sidebar .list-group-item { background: transparent; color: var(--text); border: none; padding: .5rem .75rem; }
.sidebar .list-group-item:hover { background: rgba(255,255,255,0.06); }
.sidebar .list-group-item.active { background: var(--primary); color: var(--primary-contrast); border-radius: .375rem; }
.sidebar .section-title { font-size: .8rem; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; padding: .5rem .75rem; }

.card { background: var(--bg-2); border-color: var(--border); }
.card-title { color: var(--text-strong); }
.card-text { color: var(--text-soft); }
.btn-outline-light { border-color: var(--border); color: var(--text); }
.btn-outline-light:hover { background: var(--bg-3); }

.badge { background: var(--bg-3); border: 1px solid var(--border); }
.badge.highlight { background: var(--success); color: #041020; border: none; }

a { color: var(--accent); }

/* Tabelas padronizadas */
.table { color: var(--text); }
.table thead th { background: var(--table-header); color: var(--text-strong); border-bottom: 1px solid var(--border); }
.table tbody tr { background: var(--table-row); }
.table tbody tr:hover { background: rgba(255,255,255,0.06); }
.table td, .table th { border-color: var(--border); }

/* Switches (botão deslizante) */
.form-check.form-switch .form-check-input {
  width: 2.5rem;
  height: 1.25rem;
}
.form-check.form-switch .form-check-input:checked {
  background-color: var(--accent);
  border-color: var(--accent);
}

/* Dropdowns de ações */
.dropdown-menu { background: var(--bg-2); border-color: var(--border); }
.dropdown-menu .dropdown-item { color: var(--text); }
.dropdown-menu .dropdown-item:hover { background: var(--bg-3); }

/* Formulários padronizados */
.form-label { color: var(--text-muted); }
.form-control { background: var(--form-bg); color: var(--text); border-color: var(--form-border); }
.form-control::placeholder { color: var(--text-soft); }
.input-group-text { background: var(--bg-3); color: var(--text); border-color: var(--border); }
.alert { color: var(--text-strong); }