:root {
  --ds-color-brand: #485fc7;
  --ds-color-brand-hover: #3b4fa1;
  --ds-color-accent: #64ffda;
  --ds-color-bg: #f5f7fb;
  --ds-color-bg-dark: #0d0f14;
  --ds-color-surface: #ffffff;
  --ds-color-surface-dark: #1c1f26;
  --ds-color-text: #222733;
  --ds-color-text-muted: #6b7280;
  --ds-color-text-inverse: #ffffff;
  --ds-color-border: #d9dee8;
  --ds-color-border-soft: #e8ecf3;
  --ds-color-success: #2f9e44;
  --ds-color-success-soft: #eaf7ee;
  --ds-color-danger: #d94848;
  --ds-color-danger-soft: #fdecec;
  --ds-color-warning: #f59f00;
  --ds-radius-sm: 8px;
  --ds-radius-md: 12px;
  --ds-radius-lg: 16px;
  --ds-shadow-sm: 0 2px 8px rgba(15, 23, 42, 0.08);
  --ds-shadow-md: 0 10px 24px rgba(15, 23, 42, 0.14);
  --ds-space-1: 4px;
  --ds-space-2: 8px;
  --ds-space-3: 12px;
  --ds-space-4: 16px;
  --ds-space-5: 24px;
  --ds-space-6: 32px;
  --ds-font-family: 'Poppins', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --ds-focus-ring: 0 0 0 3px rgba(72, 95, 199, 0.18);
  --ds-transition: 0.2s ease;
}

body {
  font-family: var(--ds-font-family);
}

.button,
button,
.input,
.textarea,
.select select {
  border-radius: var(--ds-radius-sm);
}

.button,
button {
  font-weight: 600;
  transition: background-color var(--ds-transition), border-color var(--ds-transition), color var(--ds-transition), transform var(--ds-transition), box-shadow var(--ds-transition);
}

.button:hover,
button:hover {
  transform: translateY(-1px);
}

.button:disabled,
button:disabled {
  cursor: not-allowed;
  opacity: 0.65;
  transform: none;
}

.input,
.textarea,
.select select {
  border: 1px solid var(--ds-color-border);
  color: var(--ds-color-text);
  transition: border-color var(--ds-transition), box-shadow var(--ds-transition), background-color var(--ds-transition);
}

.input:focus,
.textarea:focus,
.select select:focus {
  border-color: var(--ds-color-brand);
  box-shadow: var(--ds-focus-ring);
  outline: none;
}

.modal-card {
  border-radius: var(--ds-radius-md);
  overflow: hidden;
  box-shadow: var(--ds-shadow-md);
}

.modal-card-head,
.modal-card-foot {
  background: var(--ds-color-bg);
  border-color: var(--ds-color-border-soft);
}

.modal-card-title {
  color: var(--ds-color-text);
  font-weight: 700;
}

.ds-card {
  background: var(--ds-color-surface);
  border: 1px solid var(--ds-color-border-soft);
  border-radius: var(--ds-radius-md);
  box-shadow: var(--ds-shadow-sm);
}

.ds-toast {
  border-radius: var(--ds-radius-md);
  box-shadow: var(--ds-shadow-md);
}

.ds-toast.success,
.success {
  background: var(--ds-color-success);
  color: var(--ds-color-text-inverse);
}

.ds-toast.error,
.ds-toast.erro,
.erro {
  background: var(--ds-color-danger-soft);
  color: #8f1d1d;
  border: 1px solid #f5b8b8;
}
