/*
 * Prudent shared theme tokens
 *
 * Change these variables to update the application's global look and feel.
 * Component styles should consume these tokens instead of introducing new
 * hard-coded colors, radii, shadows, or typography values.
 */

:root {
  /* Typography */
  --theme-font-sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --theme-font-size-xs: 0.6875rem;
  --theme-font-size-sm: 0.75rem;
  --theme-font-size-md: 0.875rem;
  --theme-font-size-lg: 1rem;
  --theme-font-size-xl: 1.875rem;
  --theme-font-weight-medium: 500;
  --theme-font-weight-semibold: 650;
  --theme-font-weight-bold: 750;
  --theme-line-height: 1.5;

  /* Brand */
  --theme-brand-900: #07111f;
  --theme-brand-800: #0b1728;
  --theme-brand-700: #101b31;
  --theme-primary: #0d6efd;
  --theme-primary-hover: #0b5ed7;
  --theme-primary-soft: #eff6ff;
  --theme-primary-border: #bfdbfe;
  --theme-accent: #38bdf8;
  --theme-success: #059669;
  --theme-danger: #dc3545;
  --theme-warning: #f59e0b;

  /* Neutral palette */
  --theme-white: #ffffff;
  --theme-surface: #ffffff;
  --theme-surface-subtle: #f8fafc;
  --theme-page-bg: #f5f7fb;
  --theme-page-bg-warm: #f5f5f7;
  --theme-text: #0f172a;
  --theme-text-secondary: #475569;
  --theme-text-muted: #64748b;
  --theme-text-faint: #94a3b8;
  --theme-border: #d8e0ea;
  --theme-border-light: #edf1f6;
  --theme-control-border: #cbd5e1;

  /* Shape */
  --theme-radius-sm: 6px;
  --theme-radius-md: 8px;
  --theme-radius-lg: 12px;
  --theme-radius-xl: 16px;
  --theme-radius-pill: 999px;

  /* Elevation */
  --theme-shadow-sm: 0 3px 8px rgba(15, 23, 42, 0.08);
  --theme-shadow-card: 0 12px 34px rgba(15, 23, 42, 0.05);
  --theme-shadow-menu: 0 22px 52px rgba(2, 6, 23, 0.34), 0 4px 12px rgba(2, 6, 23, 0.2);
  --theme-shadow-hero: 0 14px 40px rgba(15, 23, 42, 0.08);
  --theme-focus-ring: 0 0 0 2px rgba(59, 130, 246, 0.12);

  /* Spacing */
  --theme-space-1: 4px;
  --theme-space-2: 8px;
  --theme-space-3: 12px;
  --theme-space-4: 16px;
  --theme-space-5: 20px;
  --theme-space-6: 24px;
  --theme-space-8: 32px;
  --theme-page-x: 24px;
  --theme-page-y: 30px;
  --theme-content-width: 1320px;

  /* Shared controls */
  --theme-control-height: 36px;
  --theme-control-bg: #ffffff;
  --theme-control-text: #334155;
  --theme-transition: 160ms ease;
}

html,
body {
  font-family: var(--theme-font-sans);
}

body {
  color: var(--theme-text);
}

::selection {
  background: rgba(13, 110, 253, 0.2);
}

:focus-visible {
  outline: 2px solid var(--theme-primary);
  outline-offset: 2px;
}

@media (max-width: 760px) {
  :root {
    --theme-page-x: 12px;
    --theme-page-y: 22px;
  }
}
