:root,
[data-bs-theme="light"] {
  --palette-red-50: #fff5f6;
  --palette-red-100: #fbeaec;
  --palette-red-200: #f5cdd2;
  --palette-red-300: #eca2ab;
  --palette-red-400: #d96b78;
  --palette-red-500: #c43a4b;
  --palette-red-600: #b51f2e;
  --palette-red-700: #921b2b;
  --palette-red-800: #781822;
  --palette-red-900: #5d131b;
  --palette-red-950: #350a0f;

  --color-background: #f4f5f6;
  --color-surface: #ffffff;
  --color-surface-secondary: #f8f9f9;
  --color-surface-hover: #eceef0;
  --color-surface-selected: #fbeaec;
  --color-border: #dfe1e4;
  --color-border-strong: #c7cacf;
  --color-text-primary: #202124;
  --color-text-secondary: #5f6368;
  --color-text-disabled: #8b8f95;
  --color-icon: #555a60;
  --color-link: #b51f2e;
  --color-primary: #b51f2e;
  --color-primary-hover: #921b2b;
  --color-primary-active: #781822;
  --color-primary-subtle: #fbeaec;
  --color-on-primary: #ffffff;
  --color-hero-fallback: #3a2025;
  --color-on-hero: #ffffff;
  --color-logo-plate: #ffffff;
  --color-focus: #b51f2e;
  --color-success: #287a52;
  --color-warning: #a96300;
  --color-danger: #d14343;
  --color-info: #2f6da1;
  --color-presence-online: #287a52;
  --color-presence-recent: #a96300;
  --color-presence-away: #d14343;
  --color-presence-offline: #8b8f95;

  --color-input-bg: #ffffff;
  --color-input-text: #202124;
  --color-input-placeholder: #8b8f95;
  --color-input-border: #dfe1e4;
  --color-input-border-hover: #c7cacf;
  --color-input-border-focus: #b51f2e;
  --color-input-focus-ring: #fbeaec;
  --color-input-disabled-bg: #eceef0;
  --color-input-disabled-text: #8b8f95;
  --color-input-readonly-bg: #f8f9f9;
  --color-weekend-bg: #eef1f4;
  --color-holiday-bg: #f8ead6;

  --bs-primary: #b51f2e;
  --bs-primary-rgb: 181, 31, 46;
  --bs-body-bg: var(--color-background);
  --bs-body-color: var(--color-text-primary);
  --bs-border-color: var(--color-border);
  --bs-link-color: var(--color-link);
  --bs-emphasis-color: var(--color-text-primary);
}

[data-bs-theme="dark"] {
  --color-background: #161719;
  --color-surface: #1e2023;
  --color-surface-secondary: #25282c;
  --color-surface-hover: #2d3034;
  --color-surface-selected: #3a2025;
  --color-border: #363a3f;
  --color-border-strong: #4a4e55;
  --color-text-primary: #f1f2f3;
  --color-text-secondary: #a9adb3;
  --color-text-disabled: #747981;
  --color-icon: #b4b7bc;
  --color-link: #e06472;
  --color-primary: #c93b4d;
  --color-primary-hover: #d95b69;
  --color-primary-active: #e06472;
  --color-primary-subtle: #3a2025;
  --color-on-primary: #ffffff;
  --color-hero-fallback: #3a2025;
  --color-on-hero: #ffffff;
  --color-logo-plate: #ffffff;
  --color-focus: #e06472;
  --color-success: #55b88a;
  --color-warning: #e6a84a;
  --color-danger: #f06a75;
  --color-info: #6da7d9;
  --color-presence-online: #55b88a;
  --color-presence-recent: #e6a84a;
  --color-presence-away: #f06a75;
  --color-presence-offline: #747981;

  --color-input-bg: #25282c;
  --color-input-text: #f1f2f3;
  --color-input-placeholder: #747981;
  --color-input-border: #363a3f;
  --color-input-border-hover: #4a4e55;
  --color-input-border-focus: #e06472;
  --color-input-focus-ring: #3a2025;
  --color-input-disabled-bg: #1e2023;
  --color-input-disabled-text: #747981;
  --color-input-readonly-bg: #1e2023;
  --color-weekend-bg: #22262b;
  --color-holiday-bg: #33291c;

  --bs-primary: #c93b4d;
  --bs-primary-rgb: 201, 59, 77;
}

html, body {
  background: var(--color-background);
  color: var(--color-text-primary);
}

a { color: var(--color-link); }

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

.btn-primary {
  --bs-btn-bg: var(--color-primary);
  --bs-btn-border-color: var(--color-primary);
  --bs-btn-hover-bg: var(--color-primary-hover);
  --bs-btn-hover-border-color: var(--color-primary-hover);
  --bs-btn-active-bg: var(--color-primary-active);
  --bs-btn-active-border-color: var(--color-primary-active);
  --bs-btn-color: var(--color-on-primary);
  --bs-btn-hover-color: var(--color-on-primary);
  --bs-btn-active-color: var(--color-on-primary);
}
