:root {
  /* Color palette */
  --color-bg: #ffffff;
  --color-bg-alt: #f3f6fb;
  --color-bg-restricted: #e9f0ff; /* fundo diferenciado área restrita */
  --color-surface: #ffffff;
  --color-surface-alt: #f7f9fc;
  --color-border: #d7e3f0;
  --color-border-strong: #94a3b8;
  --color-text: #0f172a;
  --color-text-soft: #475569;
  --color-primary: #2563eb;
  --color-primary-rgb: 37,99,235;
  --color-accent: #3b82f6;
  --color-danger: #dc2626;
  --color-warning: #f59e0b;
  --color-success: #16a34a;

  /* Dark theme overrides will live under [data-theme="dark"] */
  --radius-xs: 3px;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --radius-full: 999px;

  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;

  --shadow-1: 0 1px 2px rgba(0,0,0,0.04), 0 1px 3px rgba(0,0,0,0.08);
  --shadow-2: 0 2px 4px rgba(0,0,0,0.06), 0 3px 6px rgba(0,0,0,0.10);
  --shadow-3: 0 4px 12px rgba(0,0,0,0.08);

  --sidebar-width: 260px;
  --sidebar-width-collapsed: 80px;

  --content-max: 1400px; /* default content width */
  --content-max-wide: 1800px; /* for wide-screen pages */
}

[data-theme="dark"] {
  --color-bg: #0b1120;
  --color-bg-alt: #111b2f;
  --color-bg-restricted: #0f1f33; /* variante escura */
  --color-surface: #162033;
  --color-surface-alt: #0d1728;
  --color-border: #233044;
  --color-border-strong: #3a4a63;
  --color-text: #f8fafc;
  --color-text-soft: #b6c5df;
  --color-primary: #4f83ff;
  --color-accent: #7fb4ff;
}

/* Utility classes */
.ds-container {
  width: 100%;
  max-width: var(--content-max);
  margin: 0 auto;
  padding: 0 var(--space-4);
}
.ds-container-tight {
  padding-left: var(--space-3);
  padding-right: var(--space-3);
}
.ds-container-wide {
  max-width: var(--content-max-wide);
}
.full-fluid {
  max-width: 100% !important;
  padding: 0;
}

.text-soft { color: var(--color-text-soft) !important; }
.shadow-1 { box-shadow: var(--shadow-1); }
.shadow-2 { box-shadow: var(--shadow-2); }
.shadow-3 { box-shadow: var(--shadow-3); }
.rounded-sm { border-radius: var(--radius-sm); }
.rounded-md { border-radius: var(--radius-md); }
.rounded-lg { border-radius: var(--radius-lg); }

/* Responsive helpers */
@media (min-width: 1600px) {
  body.wide-screen .ds-container { max-width: var(--content-max-wide); }
}

@media (max-width: 575px) {
  .ds-container {
    padding-left: var(--space-3);
    padding-right: var(--space-3);
  }
}

[data-theme="dark"] .text-dark { color: var(--color-text) !important; }
[data-theme="dark"] .text-secondary { color: var(--color-text-soft) !important; }
[data-theme="dark"] .text-muted { color: var(--color-text-soft) !important; }
[data-theme="dark"] .bg-light { background-color: var(--color-surface) !important; }
[data-theme="dark"] .bg-white { background-color: var(--color-surface) !important; }
[data-theme="dark"] .table-light { background-color: var(--color-surface-alt) !important; color: var(--color-text) !important; }
[data-theme="dark"] .card { background-color: var(--color-surface) !important; color: var(--color-text) !important; }
[data-theme="dark"] .form-control, [data-theme="dark"] .form-select { color: var(--color-text) !important; background-color: var(--color-surface) !important; border-color: var(--color-border) !important; }
[data-theme="dark"] .form-input, [data-theme="dark"] select.form-input { color: var(--color-text) !important; background-color: var(--color-surface) !important; border-color: var(--color-border) !important; }
[data-theme="dark"] .form-input:focus { border-color: var(--color-primary) !important; box-shadow: 0 0 0 3px rgba(var(--color-primary-rgb), 0.2) !important; }
[data-theme="dark"] .form-check-label, [data-theme="dark"] .form-label { color: var(--color-text) !important; }

[data-theme="dark"] .text-slate-900, [data-theme="dark"] .text-slate-800, [data-theme="dark"] .text-slate-700 { color: var(--color-text) !important; }
[data-theme="dark"] .text-slate-600, [data-theme="dark"] .text-slate-500, [data-theme="dark"] .text-slate-400 { color: var(--color-text-soft) !important; }
[data-theme="dark"] .bg-slate-50, [data-theme="dark"] .bg-slate-100, [data-theme="dark"] .bg-slate-200 { background-color: var(--color-surface-alt) !important; }
[data-theme="dark"] .border-slate-100, [data-theme="dark"] .border-slate-200 { border-color: var(--color-border) !important; }
[data-theme="dark"] .form-control::placeholder, [data-theme="dark"] .form-select::placeholder { color: var(--color-text-soft) !important; opacity: 0.7; }
[data-theme="dark"] .form-input::placeholder { color: var(--color-text-soft) !important; opacity: 0.7; }
[data-theme="dark"] input::placeholder, [data-theme="dark"] textarea::placeholder { color: var(--color-text-soft) !important; opacity: 0.7; }
