/*
|--------------------------------------------------------------------------
| Reach Theme Tokens
|--------------------------------------------------------------------------
| Front-end only. A future backend can select a named theme by setting
| data-theme on <html>, or override these custom properties directly.
*/

:root,
html[data-theme="reach"] {
  --theme-primary: rgb(0, 85, 145);
  --theme-primary-rgb: 0, 85, 145;
  --theme-primary-contrast: #ffffff;

  --theme-text: #000000;
  --theme-text-muted: #667286;
  --theme-text-soft: #808a9b;

  --theme-background: #f4f4f4;
  --theme-surface: #ffffff;
  --theme-surface-soft: #f6f8fb;
  --theme-surface-muted: #f2f3f7;

  --theme-border: #dfe5ec;
  --theme-border-soft: #e4e9ef;

  /* Universal light/dark semantic tokens used by every page. */
  --theme-control-background: #ffffff;
  --theme-control-border: #cfcfcb;
  --theme-action-background: #111111;
  --theme-action-text: #ffffff;
  --theme-neutral-control: #ededed;
  --theme-neutral-control-hover: #e5e7eb;

  --theme-success-background: #dcfce7;
  --theme-success-border: #bbf7d0;
  --theme-success-text: #166534;
  --theme-warning-background: #fef3c7;
  --theme-warning-border: #fde68a;
  --theme-warning-text: #92400e;
  --theme-danger-background: #fff0ef;
  --theme-danger-border: #f0c8c4;
  --theme-danger-text: #9d1c14;
  --theme-info-background: #dbeafe;
  --theme-info-border: #bfdbfe;
  --theme-info-text: #1e40af;

  --theme-inverse-surface: #111318;
  --theme-inverse-text: #ffffff;
  --theme-inverse-muted: rgba(255, 255, 255, 0.72);
  --theme-fade-rgb: 245, 245, 247;

  --theme-shadow-sm: 0 0.9rem 2.2rem rgba(28, 43, 67, 0.08);
  --theme-shadow-md: 0 1rem 2.6rem rgba(28, 43, 67, 0.08);
  --theme-shadow-lg: 0 1.25rem 3rem rgba(28, 43, 67, 0.12);

  --theme-radius-sm: 0.75rem;
  --theme-radius-md: 1rem;
  --theme-radius-lg: 1.6rem;
  --theme-radius-xl: 1.8rem;
  --theme-radius-pill: 999px;
}

html[data-theme="warm"] {
  --theme-primary: #8a4b2a;
  --theme-primary-rgb: 138, 75, 42;
  --theme-primary-contrast: #ffffff;

  --theme-text: #2d211b;
  --theme-text-muted: #76665e;
  --theme-text-soft: #94847a;

  --theme-background: #fffdf9;
  --theme-surface: #ffffff;
  --theme-surface-soft: #f8f2ea;
  --theme-surface-muted: #f3ebe2;

  --theme-border: #e5d8cc;
  --theme-border-soft: #eee3d9;
}

html[data-theme="dark"] {
  --theme-primary: #69b7f0;
  --theme-primary-rgb: 105, 183, 240;
  --theme-primary-contrast: #07131c;

  --theme-text: #f4f7fa;
  --theme-text-muted: #b2bdc8;
  --theme-text-soft: #8f9aa6;

  --theme-background: #11161c;
  --theme-surface: #171e26;
  --theme-surface-soft: #1d2630;
  --theme-surface-muted: #222d38;

  --theme-border: #303b47;
  --theme-border-soft: #384552;

  --theme-shadow-sm: 0 0.9rem 2.2rem rgba(0, 0, 0, 0.18);
  --theme-shadow-md: 0 1rem 2.6rem rgba(0, 0, 0, 0.22);
  --theme-shadow-lg: 0 1.25rem 3rem rgba(0, 0, 0, 0.28);
}

html {
  background: var(--theme-background);
  color-scheme: light;
}

html[data-theme="dark"] {
  color-scheme: dark;
}

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

.theme-text {
  color: var(--theme-text) !important;
}

.theme-muted {
  color: var(--theme-text-muted) !important;
}


/*
|--------------------------------------------------------------------------
| Account-controlled appearance mode
|--------------------------------------------------------------------------
| data-theme remains available for the site's brand/theme family.
| data-color-mode is reserved for light/dark rendering.
*/
html[data-color-mode="light"] {
  color-scheme: light;
}

html[data-color-mode="dark"] {
  color-scheme: dark;

  --theme-primary: #78c6ff;
  --theme-primary-rgb: 120, 198, 255;
  --theme-primary-contrast: #07131c;

  --theme-text: #f3f6f9;
  --theme-text-muted: #b5c0cb;
  --theme-text-soft: #929eaa;

  --theme-background: #0f141a;
  --theme-surface: #171e26;
  --theme-surface-soft: #1d2630;
  --theme-surface-muted: #222d38;

  --theme-border: #303b47;
  --theme-border-soft: #394755;

  --theme-control-background: #171e26;
  --theme-control-border: #303b47;
  --theme-action-background: #f3f6f9;
  --theme-action-text: #11161c;
  --theme-neutral-control: #1d2630;
  --theme-neutral-control-hover: #222d38;

  --theme-success-background: rgba(34, 197, 94, 0.12);
  --theme-success-border: rgba(34, 197, 94, 0.28);
  --theme-success-text: #86efac;
  --theme-warning-background: rgba(245, 158, 11, 0.12);
  --theme-warning-border: rgba(245, 158, 11, 0.28);
  --theme-warning-text: #fcd34d;
  --theme-danger-background: rgba(239, 68, 68, 0.12);
  --theme-danger-border: rgba(239, 68, 68, 0.28);
  --theme-danger-text: #fca5a5;
  --theme-info-background: rgba(59, 130, 246, 0.12);
  --theme-info-border: rgba(59, 130, 246, 0.28);
  --theme-info-text: #93c5fd;

  --theme-inverse-surface: #171e26;
  --theme-inverse-text: #ffffff;
  --theme-inverse-muted: rgba(255, 255, 255, 0.72);
  --theme-fade-rgb: 15, 20, 26;

  --theme-shadow-sm: 0 0.9rem 2.2rem rgba(0, 0, 0, 0.20);
  --theme-shadow-md: 0 1rem 2.6rem rgba(0, 0, 0, 0.24);
  --theme-shadow-lg: 0 1.25rem 3rem rgba(0, 0, 0, 0.30);
}

html[data-color-mode="light"] body,
html[data-color-mode="dark"] body {
  background-color: var(--theme-background);
  color: var(--theme-text);
}
