:root {
  --theme-primary: #2563eb;
  --theme-primary-dark: #1d4ed8;
  --theme-secondary: #0f172a;
  --theme-accent: #38bdf8;
  --theme-body-bg: #f5f7fb;
  --theme-surface: #ffffff;
  --theme-surface-soft: #eff4fb;
  --theme-heading: #14213d;
  --theme-text: #334155;
  --theme-muted: #64748b;
  --theme-border: #dce4ef;
  --theme-success: #198754;
  --theme-warning: #f59e0b;
  --theme-danger: #dc3545;
  --theme-on-primary: #ffffff;
  --theme-topbar-bg: #0f172a;
  --theme-topbar-text: #e2e8f0;
  --theme-header-bg: #ffffff;
  --theme-nav-bg: #ffffff;
  --theme-nav-text: #25344f;
  --theme-footer-bg: #0f172a;
  --theme-footer-text: #cbd5e1;
  --theme-sidebar-bg: #ffffff;
  --theme-sidebar-text: #334155;
  --theme-radius-sm: 6px;
  --theme-radius-md: 12px;
  --theme-radius-lg: 20px;
  --theme-shadow-sm: 0 3px 10px rgba(15, 23, 42, 0.06);
  --theme-shadow-md: 0 12px 30px rgba(15, 23, 42, 0.12);
  --theme-font-body: "Inter", "Segoe UI", sans-serif;
  --theme-font-heading: "Poppins", "Segoe UI", sans-serif;
  --theme-font-size: 14px;
  --theme-line-height: 1.55;
  --theme-container-gap: 24px;
  --theme-section-gap: 24px;
  --theme-card-padding: 16px;
  --theme-grid-gap: 16px;
  --theme-control-height: 40px;
  --theme-nav-height: 46px;
  --theme-sidebar-width: 232px;
  --theme-product-ratio: 1 / 1;
  --theme-transition: 180ms ease;

  --rd-text: var(--theme-text);
  --rd-muted: var(--theme-muted);
  --rd-border: var(--theme-border);
  --rd-bg: var(--theme-body-bg);
  --rd-surface: var(--theme-surface);
  --rd-soft: var(--theme-surface-soft);
  --rd-green: var(--theme-primary);
  --rd-green-dark: var(--theme-primary-dark);
  --rd-blue: var(--theme-secondary);
  --rd-blue-soft: var(--theme-surface-soft);
  --rd-gold: var(--theme-accent);
}

* {
  box-sizing: border-box;
}

:focus-visible {
  outline: 3px solid var(--theme-accent);
  outline: 3px solid color-mix(in srgb, var(--theme-accent) 70%, white);
  outline-offset: 2px;
}
