/* Artisan theme — generated, do not edit. */
:root {
  --color-brand: #2563eb;
  --color-brand-strong: color-mix(in oklab, var(--color-brand) 82%, black);
  --color-brand-medium: color-mix(in oklab, var(--color-brand) 40%, white);
  --color-brand-soft: color-mix(in oklab, var(--color-brand) 22%, var(--color-neutral-primary));
  --color-brand-softer: color-mix(in oklab, var(--color-brand) 10%, var(--color-neutral-primary));
  --color-brand-subtle: color-mix(in oklab, var(--color-brand) 6%, var(--color-neutral-primary));
  --color-fg-brand: var(--theme-link);
  --color-fg-brand-strong: color-mix(in oklab, var(--color-brand) 78%, var(--color-heading));
  --color-on-brand: #ffffff;
  --theme-secondary: #64748b;
  --theme-on-secondary: #ffffff;
  --theme-accent: #7c3aed;
  --color-neutral-primary: #ffffff;
  --color-neutral-primary-soft: #ffffff;
  --color-neutral-primary-medium: #ffffff;
  --color-neutral-secondary-soft: #f3f4f6;
  --color-neutral-secondary-medium: #f9fafb;
  --color-neutral-tertiary: #f9fafb;
  --color-neutral-tertiary-soft: #f9fafb;
  --color-neutral-tertiary-medium: #f9fafb;
  --color-neutral-quaternary: #878f9b;
  --color-default: #e5e7eb;
  --color-default-medium: #878f9b;
  --color-default-strong: color-mix(in oklab, var(--color-default-medium) 70%, var(--color-body));
  --color-heading: #111827;
  --color-body: #1f2937;
  --color-body-subtle: #6b7280;
  --color-fg-disabled: #9ca3af;
  --color-success: #16a34a;
  --color-success-strong: color-mix(in oklab, var(--color-success) 80%, black);
  --color-success-medium: color-mix(in oklab, var(--color-success) 45%, white);
  --color-success-soft: color-mix(in oklab, var(--color-success) var(--theme-tint), var(--color-neutral-primary));
  --color-success-subtle: color-mix(in oklab, var(--color-success) calc(var(--theme-tint) / 2), var(--color-neutral-primary));
  --color-fg-success: color-mix(in oklab, var(--color-success) 78%, var(--color-heading));
  --color-fg-success-strong: color-mix(in oklab, var(--color-success) 62%, var(--color-heading));
  --color-warning: #d97706;
  --color-warning-strong: color-mix(in oklab, var(--color-warning) 80%, black);
  --color-warning-medium: color-mix(in oklab, var(--color-warning) 45%, white);
  --color-warning-soft: color-mix(in oklab, var(--color-warning) var(--theme-tint), var(--color-neutral-primary));
  --color-warning-subtle: color-mix(in oklab, var(--color-warning) calc(var(--theme-tint) / 2), var(--color-neutral-primary));
  --color-fg-warning: color-mix(in oklab, var(--color-warning) 78%, var(--color-heading));
  --color-fg-warning-strong: color-mix(in oklab, var(--color-warning) 62%, var(--color-heading));
  --color-danger: #dc2626;
  --color-danger-strong: color-mix(in oklab, var(--color-danger) 80%, black);
  --color-danger-medium: color-mix(in oklab, var(--color-danger) 45%, white);
  --color-danger-soft: color-mix(in oklab, var(--color-danger) var(--theme-tint), var(--color-neutral-primary));
  --color-danger-subtle: color-mix(in oklab, var(--color-danger) calc(var(--theme-tint) / 2), var(--color-neutral-primary));
  --color-fg-danger: color-mix(in oklab, var(--color-danger) 78%, var(--color-heading));
  --color-fg-danger-strong: color-mix(in oklab, var(--color-danger) 62%, var(--color-heading));
  --color-fg-warning-subtle: color-mix(in oklab, var(--color-warning) 60%, var(--color-neutral-primary));
  --theme-info: #0284c7;
  --theme-tint: 12%;
  --font-sans: "Inter Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-body: var(--font-sans);
  --font-heading: "Inter Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-accent: "Inter Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --theme-line-height: 1.6;
  --text-xs: 0.6944rem;
  --text-sm: 0.8333rem;
  --text-base: 1rem;
  --text-lg: 1.2rem;
  --text-xl: 1.44rem;
  --text-2xl: 1.728rem;
  --text-3xl: 2.0736rem;
  --text-4xl: 2.4883rem;
  --text-5xl: 2.986rem;
  --text-6xl: 3.5832rem;
  --h1-size-sm: 2.25rem;
  --h1-size-md: 3rem;
  --h1-size-lg: 3.75rem;
  --h1-weight: 700;
  --h1-lh: 1.1;
  --h1-ls: -0.025em;
  --h1-transform: none;
  --h1-align: inherit;
  --h1-color: var(--color-heading);
  --h1-gradient: none;
  --h1-fill: currentColor;
  --h1-fallback: var(--color-heading);
  --h2-size-sm: 1.875rem;
  --h2-size-md: 2.25rem;
  --h2-size-lg: 2.5rem;
  --h2-weight: 700;
  --h2-lh: 1.2;
  --h2-ls: -0.015em;
  --h2-transform: none;
  --h2-align: inherit;
  --h2-color: var(--color-heading);
  --h2-gradient: none;
  --h2-fill: currentColor;
  --h2-fallback: var(--color-heading);
  --h3-size-sm: 1.5rem;
  --h3-size-md: 1.5rem;
  --h3-size-lg: 1.875rem;
  --h3-weight: 600;
  --h3-lh: 1.2;
  --h3-ls: -0.015em;
  --h3-transform: none;
  --h3-align: inherit;
  --h3-color: var(--color-heading);
  --h3-gradient: none;
  --h3-fill: currentColor;
  --h3-fallback: var(--color-heading);
  --h4-size: 1.25rem;
  --h4-weight: 600;
  --h4-color: var(--color-heading);
  --h5-size: 1.125rem;
  --h5-weight: 600;
  --h5-color: var(--color-heading);
  --h6-size: 1rem;
  --h6-weight: 600;
  --h6-color: var(--color-heading);
  --theme-link: var(--color-brand);
  --theme-link-hover: color-mix(in oklab, var(--color-brand) 78%, black);
  --link-decoration: none;
  --link-hover-decoration: underline;
  --link-thickness: 1px;
  --link-offset: 3px;
  --shadow-level-none: none;
  --shadow-level-sm: 0 1px 2px 0 rgb(17 24 39 / 0.1);
  --shadow-level-md: 0 4px 6px -1px rgb(17 24 39 / 0.1), 0 2px 4px -2px rgb(17 24 39 / 0.1);
  --shadow-level-lg: 0 10px 15px -3px rgb(17 24 39 / 0.1), 0 4px 6px -4px rgb(17 24 39 / 0.1);
  --shadow-level-xl: 0 20px 25px -5px rgb(17 24 39 / 0.1), 0 8px 10px -6px rgb(17 24 39 / 0.1);
  --shadow-xs: var(--card-shadow);
  --radius-base: 0.75rem;
  --header-bg: var(--color-neutral-primary);
  --header-text: var(--color-heading);
  --header-link: var(--color-body);
  --header-link-hover: var(--color-heading);
  --header-link-active: var(--color-brand);
  --header-height: 64px;
  --header-max-width: 80rem;
  --header-border: 1px solid var(--color-default);
  --header-shadow: var(--shadow-level-none);
  --header-radius: 0.5rem;
  --header-position: sticky;
  --header-blur: 8px;
  --footer-bg: var(--color-neutral-secondary-soft);
  --footer-text: var(--color-body);
  --footer-heading: var(--color-heading);
  --footer-link: var(--color-body);
  --footer-link-hover: var(--color-heading);
  --footer-border: 1px solid var(--color-default);
  --footer-padding-y: 40px;
  --footer-shadow: var(--shadow-level-none);
  --btn-primary-bg: var(--color-brand);
  --btn-primary-text: var(--color-on-brand);
  --btn-primary-hover: color-mix(in oklab, var(--btn-primary-bg) 85%, black);
  --btn-primary-active: color-mix(in oklab, var(--btn-primary-bg) 72%, black);
  --btn-primary-border: var(--btn-primary-bg);
  --btn-secondary-bg: var(--color-neutral-primary-soft);
  --btn-secondary-text: var(--color-heading);
  --btn-secondary-hover: var(--color-neutral-tertiary-medium);
  --btn-secondary-border: var(--color-default-medium);
  --btn-focus: color-mix(in oklab, var(--color-brand) 45%, white);
  --btn-border-width: 1px;
  --btn-radius: 0.5rem;
  --btn-weight: 500;
  --btn-shadow: var(--shadow-level-none);
  --btn-disabled-opacity: 0.55;
  --btn-xs-h: 28px;
  --btn-xs-px: 10px;
  --btn-xs-fs: 0.75rem;
  --btn-sm-h: 34px;
  --btn-sm-px: 12px;
  --btn-sm-fs: 0.8125rem;
  --btn-md-h: 42px;
  --btn-md-px: 18px;
  --btn-md-fs: 0.875rem;
  --btn-lg-h: 48px;
  --btn-lg-px: 22px;
  --btn-lg-fs: 1rem;
  --btn-xl-h: 56px;
  --btn-xl-px: 28px;
  --btn-xl-fs: 1.125rem;
  --input-bg: var(--color-neutral-secondary-medium);
  --input-text: var(--color-heading);
  --input-placeholder: var(--color-fg-disabled);
  --input-border: var(--color-default-medium);
  --input-border-hover: var(--color-fg-disabled);
  --input-focus: var(--color-brand);
  --input-disabled-bg: var(--color-neutral-tertiary-medium);
  --input-radius: 0.5rem;
  --input-height: 42px;
  --input-fs: 0.875rem;
  --check-color: var(--color-brand);
  --card-bg: var(--color-neutral-primary-soft);
  --card-border: 1px solid var(--color-default);
  --card-radius: 0.75rem;
  --card-shadow: var(--shadow-level-sm);
  --card-padding: 24px;
  --card-title: var(--color-heading);
  --card-text: var(--color-body);
  --card-hover-lift: 0px;
  --badge-radius: 0.25rem;
  --badge-weight: 500;
  --badge-fs: 0.75rem;
  --alert-radius: 0.5rem;
  --alert-border-width: 1px;
  --selected-bg: var(--color-brand-softer);
  --selected-text: var(--color-fg-brand-strong);
  --container-max: 80rem;
  --container-px-sm: 16px;
  --container-px-md: 24px;
  --container-px-lg: 32px;
  --section-py-sm: 64px;
  --section-py-lg: 96px;
  --theme-gap: 24px;
  --section-dark-bg: #111827;
  --section-dark-text: #e5e7eb;
  --section-accent-bg: color-mix(in oklab, var(--color-brand) 9%, var(--color-neutral-primary));
  --section-accent-text: var(--color-heading);
  --radius-modal: 0.75rem;
  --radius-image: 0.75rem;
  --avatar-radius: 9999px;
  --image-shadow: var(--shadow-level-none);
  --shadow-dropdown: var(--shadow-level-lg);
  --shadow-modal: var(--shadow-level-xl);
  --icon-size: 20px;
  --icon-gap: 8px;
  --icon-color: var(--color-brand);
  --transition-duration: 200ms;
  --transition-easing: ease-out;
  --focus-width: 2px;
  --focus-offset: 2px;
  --min-target: 40px;
}
