@import '../palettes/default.css';

@theme {
  /* Background colors */
  --background-color-subtle: var(--color-gray-50);
  --background-color-muted: var(--color-gray-100);
  --background-color-default: var(--color-white);
  --background-color-highlight: var(--color-gray-200);
  --background-color-emphasis: var(--color-gray-300);

  /* Text colors */
  --text-color-subtle: var(--color-gray-400);
  --text-color-muted: var(--color-gray-600);
  --text-color-default: var(--color-gray-800);
  --text-color-highlight: var(--color-gray-900);
  --text-color-emphasis: var(--color-gray-950);

  /* neutral */
  --color-light: var(--color-gray-100);
  --color-dark: var(--color-gray-950);
  --color-contrast: var(--color-white);

  /* primary */
  --color-primary-lighter: var(--color-blue-50);
  --color-primary-light: var(--color-blue-400);
  --color-primary: var(--color-blue-500);
  --color-primary-dark: var(--color-blue-600);
  --color-primary-darker: var(--color-blue-900);

  /* secondary */
  --color-secondary-lighter: var(--color-purple-50);
  --color-secondary-light: var(--color-purple-300);
  --color-secondary: var(--color-purple-500);
  --color-secondary-dark: var(--color-purple-700);
  --color-secondary-darker: var(--color-purple-900);

  /* danger */
  --color-danger-lighter: var(--color-red-50);
  --color-danger-light: var(--color-red-300);
  --color-danger: var(--color-red-500);
  --color-danger-dark: var(--color-red-600);
  --color-danger-darker: var(--color-red-900);

  /* warning */
  --color-warning-lighter: var(--color-amber-50);
  --color-warning-light: var(--color-amber-400);
  --color-warning: var(--color-amber-500);
  --color-warning-dark: var(--color-amber-700);
  --color-warning-darker: var(--color-amber-900);

  /* success */
  --color-success-lighter: var(--color-emerald-50);
  --color-success-light: var(--color-emerald-400);
  --color-success: var(--color-emerald-500);
  --color-success-dark: var(--color-emerald-700);
  --color-success-darker: var(--color-emerald-900);

  /* info */
  --color-info-lighter: var(--color-sky-50);
  --color-info-light: var(--color-sky-300);
  --color-info: var(--color-sky-500);
  --color-info-dark: var(--color-sky-700);
  --color-info-darker: var(--color-sky-900);

  /* actions */
  --color-active: var(--color-gray-500);
  --color-hover: var(--color-gray-100);
  --color-selected: var(--color-gray-100);
  --color-disabled-color: var(--color-gray-400);
  --color-disabled: var(--color-gray-200);
  --color-focus: var(--color-gray-300);

  /* borders */
  --border-color-subtle: --alpha(var(--color-gray-300) / 60%);
  --border-color-default: var(--color-gray-300);
  --border-color-emphasis: var(--color-gray-600);

  /* font family */
  --font-sans:
    'Figtree', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
    'Noto Color Emoji';

  /* Shadows */
  --shadow-2xs: 2px 2px 10px 0px rgba(0, 0, 0, 0.09), 0px 1px 1px 0px rgba(0, 0, 0, 0.03);
  --shadow-xs:
    2px 9px 11px 0px rgba(0, 0, 0, 0.04), 1px 3.92px 5.79px 0px rgba(0, 0, 0, 0.04),
    0px 1.36px 2.867px 0px rgba(0, 0, 0, 0.03), 0px 0.286px 1.134px 0px rgba(0, 0, 0, 0.02);
  --shadow-sm:
    4px 0px 18px 0px rgba(0, 0, 0, 0.04), 0px 6.147px 9.475px 0px rgba(0, 0, 0, 0.03),
    0px 2.258px 4.692px 0px rgba(0, 0, 0, 0.02), 0px -2.46px 3.86px 0px rgba(0, 0, 0, 0.02);
  --shadow-md:
    3px 24px 42px 0px rgba(0, 0, 0, 0.07), 1px 10.271px 9.478px 0px rgba(0, 0, 0, 0.03),
    0px 5.695px 3.531px 0px rgba(0, 0, 0, 0.01), 0px -1px 3.15px 0px rgba(0, 0, 0, 0.02);
  --shadow-lg:
    4px 38px 47px 0px rgba(0, 0, 0, 0.07), 0px 20px 17.48px 0px rgba(0, 0, 0, 0.03),
    1px 10px 10px 0px rgba(0, 0, 0, 0.01), 0px -2px 6px 0px rgba(0, 0, 0, 0.03);
  --shadow-xl:
    6px 33px 46px 0px rgba(0, 0, 0, 0.07), 1px 20px 19px 0px rgba(0, 0, 0, 0.03), 2px 10px 10px 0px rgba(0, 0, 0, 0.01),
    0px -2px 6px 0px rgba(0, 0, 0, 0.03);
  --shadow-2xl:
    16px 39px 67px 0px rgba(0, 0, 0, 0.11), 1px 20px 65px 0px rgba(0, 0, 0, 0.02),
    2px 10px 10px 0px rgba(0, 0, 0, 0.01), 0px -2px 6px 0px rgba(0, 0, 0, 0.03);

  --border-width: 1px;

  /* Input and button variables */
  --input-btn-font-size: var(--text-sm);
  --input-btn-font-weight: var(--font-weight-normal);
  --input-btn-border-radius: var(--radius-lg);
  --input-btn-padding-x: --spacing(4);
  --input-btn-padding-y: --spacing(1.75);
  --input-btn-line-height: 1.5;
  --input-btn-border-width: var(--border-width);

  --input-btn-font-size-sm: var(--text-sm);
  --input-btn-padding-x-sm: --spacing(3);
  --input-btn-padding-y-sm: --spacing(1.25);
  --input-btn-border-radius-sm: var(--radius-sm);
  --input-btn-line-height-sm: 1.25;

  --input-btn-font-size-lg: var(--text-base);
  --input-btn-padding-x-lg: --spacing(5);
  --input-btn-padding-y-lg: --spacing(2.25);
  --input-btn-border-radius-lg: var(--radius-lg);
  --input-btn-line-height-lg: 1.5;

  --input-bg: var(--background-color-default);
  --input-color: var(--text-color-default);
  --input-border-color: var(--border-color-default);
  --input-font-weight: var(--font-weight-normal);
  --input-hover-bg: var(--background-color-highlight);
  --input-hover-border-color: var(--text-color-subtle);
  --input-focus-bg: var(--color-primary-lighter);
  --input-focus-border-color: var(--color-primary);
  --input-disabled-color: var(--input-color);
  --input-disabled-bg: var(--color-disabled);
  --input-disabled-border-color: var(--border-color-default);
  --input-disabled-opacity: 0.5;

  /* Form validation */
  --form-valid-bg: var(--color-success-lighter);
  --form-valid-color: var(--color-success);
  --form-valid-border-color: var(--color-success-light);
  --form-valid-focus-border-color: var(--color-success);
  --form-invalid-bg: var(--color-danger-lighter);
  --form-invalid-color: var(--color-danger);
  --form-invalid-border-color: var(--color-danger-light);
  --form-invalid-focus-border-color: var(--color-danger);
  --form-feedback-margin-top: --spacing(1);
  --form-feedback-font-size: var(--text-sm);
  --form-feedback-tooltip-padding-y: --spacing(1);
  --form-feedback-tooltip-padding-x: --spacing(2);
  --form-feedback-tooltip-color: var(--color-contrast);
  --form-feedback-tooltip-border-radius: var(--radius-sm);

  /* grid */
  --grid-columns: 12;
  --grid-row-columns: 6;

  /* reboot variables */
  --body-bg: var(--background-color-default);
  --body-color: var(--text-color-default);
  --body-font-size: var(--text-base);
  --body-font-weight: var(--font-weight-normal);
  --body-line-height: var(--text-base--line-height);

  --headings-margin-bottom: --spacing(2);
  --headings-font-weight: var(--font-weight-bold);
  --h1-font-size: var(--text-6xl);
  --h1-line-height: var(--text-6xl--line-height);
  --h2-font-size: var(--text-5xl);
  --h2-line-height: var(--text-5xl--line-height);
  --h3-font-size: var(--text-4xl);
  --h3-line-height: var(--text-4xl--line-height);
  --h4-font-size: var(--text-3xl);
  --h4-line-height: var(--text-3xl--line-height);
  --h5-font-size: var(--text-2xl);
  --h5-line-height: var(--text-2xl--line-height);
  --h6-font-size: var(--text-xl);
  --h6-line-height: var(--text-xl--line-height);

  --hr-margin-y: --spacing(4);
  --hr-margin-x: 0;
  --hr-border-color: var(--border-color-default);

  --paragraph-margin-bottom: --spacing(4);

  --dt-font-weight: var(--font-weight-bold);

  --anchor-color: var(--color-primary);
  --anchor-hover-color: var(--color-primary-dark);

  --code-color: var(--color-pink-600);
  --code-font-size: var(--text-sm);

  --caption-padding-y: --spacing(4);
  --caption-padding-x: --spacing(4);
  --caption-font-weight: var(--font-weight-medium);

  --legend-margin-bottom: --spacing(2);
  --legend-font-weight: var(--font-weight-medium);
  --legend-font-size: var(--text-xl);
}

@layer theme {
  :root,
  :host {
    @variant dark {
      /* Background colors */
      --background-color-subtle: var(--color-gray-900);
      --background-color-muted: var(--color-gray-800);
      --background-color-default: var(--color-gray-950);
      --background-color-highlight: var(--color-gray-700);
      --background-color-emphasis: var(--color-gray-600);

      /* Text colors */
      --text-color-subtle: var(--color-gray-500);
      --text-color-muted: var(--color-gray-400);
      --text-color-default: var(--color-gray-100);
      --text-color-highlight: var(--color-gray-50);
      --text-color-emphasis: var(--color-white);

      /* neutral */
      --color-light: var(--color-gray-800);
      --color-dark: var(--color-gray-700);
      --color-contrast: var(--color-gray-950);

      /* primary */
      --color-primary-lighter: var(--color-blue-900);
      --color-primary-light: var(--color-blue-700);
      --color-primary: var(--color-blue-400);
      --color-primary-dark: var(--color-blue-300);
      --color-primary-darker: var(--color-blue-100);

      /* secondary */
      --color-secondary-lighter: var(--color-purple-900);
      --color-secondary-light: var(--color-purple-700);
      --color-secondary: var(--color-purple-400);
      --color-secondary-dark: var(--color-purple-300);
      --color-secondary-darker: var(--color-purple-100);

      /* danger */
      --color-danger-lighter: var(--color-red-900);
      --color-danger-light: var(--color-red-600);
      --color-danger: var(--color-red-400);
      --color-danger-dark: var(--color-red-300);
      --color-danger-darker: var(--color-red-200);

      /* warning */
      --color-warning-lighter: var(--color-amber-900);
      --color-warning-light: var(--color-amber-800);
      --color-warning: var(--color-amber-400);
      --color-warning-dark: var(--color-amber-300);
      --color-warning-darker: var(--color-amber-200);

      /* success */
      --color-success-lighter: var(--color-emerald-900);
      --color-success-light: var(--color-emerald-700);
      --color-success: var(--color-emerald-400);
      --color-success-dark: var(--color-emerald-300);
      --color-success-darker: var(--color-emerald-200);

      /* info */
      --color-info-lighter: var(--color-sky-900);
      --color-info-light: var(--color-sky-700);
      --color-info: var(--color-sky-400);
      --color-info-dark: var(--color-sky-300);
      --color-info-darker: var(--color-sky-200);

      /* borders */
      --border-color-subtle: var(--color-gray-800);
      --border-color-default: var(--color-gray-700);
      --border-color-emphasis: var(--color-gray-600);

      /* actions */
      --color-active: var(--color-gray-500);
      --color-hover: var(--color-gray-700);
      --color-selected: var(--color-gray-900);
      --color-disabled-color: var(--color-gray-500);
      --color-disabled: var(--color-gray-700);
      --color-focus: var(--color-gray-700);

      /* Shadows */
      --shadow-xl:
        0px 12px 51px 0px rgba(0, 0, 0, 0.6), 0px 3px 24px 0px rgba(0, 0, 0, 0.56), 0px 1px 16px 0px rgba(0, 0, 0, 0.1);

      /* Input variables */
      --input-bg: var(--background-color-default);
      --input-color: var(--text-color-default);
      --input-border-color: var(--border-color-default);
      --input-hover-bg: var(--background-color-highlight);
      --input-hover-border-color: var(--text-color-subtle);
      --input-focus-bg: var(--color-primary-lighter);
      --input-focus-border-color: var(--color-primary);
      --input-disabled-color: var(--input-color);
      --input-disabled-bg: var(--color-disabled);
      --input-disabled-border-color: var(--border-color-default);

      /* Form validation */
      --form-valid-bg: var(--color-success-lighter);
      --form-valid-color: var(--color-success);
      --form-valid-border-color: var(--color-success-light);
      --form-valid-focus-border-color: var(--color-success);
      --form-invalid-bg: var(--color-danger-lighter);
      --form-invalid-color: var(--color-danger);
      --form-invalid-border-color: var(--color-danger-light);
      --form-invalid-focus-border-color: var(--color-danger);
      --form-feedback-tooltip-color: var(--color-contrast);

      /* reboot variables */
      --body-bg: var(--background-color-default);
      --body-color: var(--text-color-default);
      --hr-border-color: var(--border-color-default);
      --anchor-color: var(--color-primary);
      --anchor-hover-color: var(--color-primary-dark);
    }
  }
}
