:root {
  color-scheme: light;
  --crm-bg: #f5f7fb;
  --crm-surface: #ffffff;
  --crm-surface-muted: #f8fafc;
  --crm-surface-hover: #f1f5f9;
  --crm-border: #e2e8f0;
  --crm-text: #111827;
  --crm-muted: #64748b;
  --crm-primary: #2563eb;
  --crm-primary-hover: #1d4ed8;
  --crm-primary-contrast: #ffffff;
  --crm-primary-soft: #eff6ff;
  --crm-focus: rgba(37, 99, 235, .22);
  --crm-shadow: 0 12px 30px rgba(15, 23, 42, .07);
}

html[data-theme="dark"] {
  color-scheme: dark;
  --crm-bg: #0f172a;
  --crm-surface: #111c33;
  --crm-surface-muted: #18243c;
  --crm-surface-hover: #1e2b47;
  --crm-border: #263650;
  --crm-text: #e5e7eb;
  --crm-muted: #94a3b8;
  --crm-primary: #60a5fa;
  --crm-primary-hover: #3b82f6;
  --crm-primary-contrast: #0f172a;
  --crm-primary-soft: rgba(96, 165, 250, .14);
  --crm-focus: rgba(96, 165, 250, .28);
  --crm-shadow: 0 16px 34px rgba(0, 0, 0, .28);
}

body,
body.bg-light {
  background:
    radial-gradient(circle at top left, var(--crm-primary-soft), transparent 34rem),
    var(--crm-bg) !important;
  color: var(--crm-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.navbar,
.navbar.bg-white,
.navbar.bg-body-tertiary {
  background: rgba(255, 255, 255, .86) !important;
  border-color: var(--crm-border) !important;
  backdrop-filter: blur(10px);
}

html[data-theme="dark"] .navbar,
html[data-theme="dark"] .navbar.bg-white,
html[data-theme="dark"] .navbar.bg-body-tertiary {
  background: rgba(17, 28, 51, .88) !important;
}

.navbar-brand,
.client-name,
.field-value,
.section-title,
.sort-link {
  color: var(--crm-text) !important;
}

.text-muted,
.muted-label,
.field-label,
small {
  color: var(--crm-muted) !important;
}

.panel,
.metric,
.card {
  background: var(--crm-surface) !important;
  border-color: var(--crm-border) !important;
  box-shadow: var(--crm-shadow);
}

.panel {
  overflow: hidden;
}

.metric {
  min-width: 118px;
}

.table {
  --bs-table-bg: var(--crm-surface);
  --bs-table-color: var(--crm-text);
  --bs-table-border-color: var(--crm-border);
  --bs-table-hover-bg: var(--crm-surface-hover);
  --bs-table-hover-color: var(--crm-text);
  --bs-table-striped-bg: var(--crm-surface-muted);
  --bs-table-striped-color: var(--crm-text);
  margin-bottom: 0;
}

.table-light {
  --bs-table-bg: var(--crm-surface-muted);
  --bs-table-color: var(--crm-muted);
  --bs-table-border-color: var(--crm-border);
}

.table thead th {
  border-bottom: 1px solid var(--crm-border);
  font-size: .78rem;
  letter-spacing: .02em;
  text-transform: uppercase;
}

.table tbody tr {
  transition: background-color .15s ease, transform .15s ease;
}

.form-control,
.form-select {
  background-color: var(--crm-surface);
  border-color: var(--crm-border);
  color: var(--crm-text);
}

.form-control:focus,
.form-select:focus {
  background-color: var(--crm-surface);
  border-color: var(--crm-primary);
  color: var(--crm-text);
  box-shadow: 0 0 0 .2rem var(--crm-focus);
}

.form-control::placeholder {
  color: var(--crm-muted);
}

.form-control:disabled,
.form-select:disabled {
  background-color: var(--crm-surface-muted);
  color: var(--crm-muted);
  opacity: 1;
}

.btn {
  border-radius: 7px;
  font-weight: 600;
}

.btn-primary {
  background: var(--crm-primary);
  border-color: var(--crm-primary);
  color: #fff;
}

.btn-primary:hover,
.btn-primary:focus {
  background: var(--crm-primary-hover);
  border-color: var(--crm-primary-hover);
}

.btn-outline-secondary {
  border-color: var(--crm-border);
  color: var(--crm-text);
}

.btn-outline-secondary:hover,
.btn-outline-secondary:focus {
  background: var(--crm-surface-hover);
  border-color: var(--crm-border);
  color: var(--crm-text);
}

.btn-outline-primary {
  border-color: rgba(37, 99, 235, .45);
  color: var(--crm-primary);
}

.btn-outline-primary:hover {
  background: var(--crm-primary);
  border-color: var(--crm-primary);
  color: #fff;
}

.sort-active {
  color: var(--crm-primary) !important;
}

.filter-toggle {
  background: var(--crm-surface);
  border-color: var(--crm-border) !important;
  color: var(--crm-text) !important;
}

.filter-toggle:hover {
  background: var(--crm-surface-hover);
}

.theme-toggle {
  min-width: 108px;
}

html[data-theme="dark"] .theme-label-dark,
html:not([data-theme="dark"]) .theme-label-light {
  display: none;
}

code {
  color: var(--crm-primary);
}

.alert {
  border-radius: 8px;
}

.border-top,
.border-bottom {
  border-color: var(--crm-border) !important;
}

.pagination {
  --bs-pagination-color: var(--crm-primary);
  --bs-pagination-bg: var(--crm-surface);
  --bs-pagination-border-color: var(--crm-border);
  --bs-pagination-hover-color: var(--crm-text);
  --bs-pagination-hover-bg: var(--crm-surface-hover);
  --bs-pagination-hover-border-color: var(--crm-border);
  --bs-pagination-focus-color: var(--crm-text);
  --bs-pagination-focus-bg: var(--crm-surface-hover);
  --bs-pagination-focus-box-shadow: 0 0 0 .2rem var(--crm-focus);
  --bs-pagination-active-color: var(--crm-primary-contrast);
  --bs-pagination-active-bg: var(--crm-primary);
  --bs-pagination-active-border-color: var(--crm-primary);
  --bs-pagination-disabled-color: var(--crm-muted);
  --bs-pagination-disabled-bg: var(--crm-surface-muted);
  --bs-pagination-disabled-border-color: var(--crm-border);
}

.page-link {
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

html[data-theme="dark"] .status-concluido {
  background: rgba(34, 197, 94, .18);
  color: #86efac;
  border-color: rgba(134, 239, 172, .35);
}

html[data-theme="dark"] .status-em-andamento {
  background: rgba(59, 130, 246, .2);
  color: #93c5fd;
  border-color: rgba(147, 197, 253, .38);
}

html[data-theme="dark"] .status-recusado {
  background: rgba(239, 68, 68, .18);
  color: #fca5a5;
  border-color: rgba(252, 165, 165, .38);
}

html[data-theme="dark"] .position-fidelizado {
  background: rgba(146, 82, 31, .28);
  color: #f3c18a;
  border-color: rgba(214, 173, 123, .38);
}

html[data-theme="dark"] .position-reversao {
  background: rgba(124, 58, 237, .22);
  color: #c4b5fd;
  border-color: rgba(196, 181, 253, .4);
}

html[data-theme="dark"] .chip-empty {
  background: rgba(148, 163, 184, .13);
  color: #cbd5e1;
  border-color: rgba(148, 163, 184, .25);
}
