@layer reset {
  *, :before, :after {
    box-sizing: border-box;
  }

  html {
    -webkit-text-size-adjust: none;
    -moz-text-size-adjust: none;
    text-size-adjust: none;
    interpolate-size: allow-keywords;
  }

  body {
    min-height: 100vh;
    margin: 0;
  }

  img, picture, video {
    max-width: 100%;
    display: block;
  }

  h1, h2, h3, h4, h5, h6 {
    text-wrap: balance;
  }

  input, button, textarea, select {
    font-family: inherit;
    font-size: inherit;
  }

  textarea:not([rows]) {
    min-height: 10em;
  }

  p {
    text-wrap: pretty;
    max-width: 75ch;
  }

  h1, h2, h3, h4, p, figure, blockquote, dl, dd {
    margin-block-end: 0;
  }

  td, math, time[datetime*=":"] {
    font-variant-numeric: tabular-nums lining-nums;
  }

  table {
    border-collapse: collapse;
  }

  :target {
    scroll-margin-block: 5rlh;
  }
}

@layer tokens, base, components, utilities, overrides;

@layer colors {
  :root {
    --color-white: #fff;
    --color-black: #000;
    --color-gray-50: #fff;
    --color-gray-75: #fafafa;
    --color-gray-100: #f5f5f5;
    --color-gray-200: #eaeaea;
    --color-gray-300: #e1e1e1;
    --color-gray-400: #cacaca;
    --color-gray-500: #bebebe;
    --color-gray-600: #8e8e8e;
    --color-gray-700: #6e6e6e;
    --color-gray-800: #4b4b4b;
    --color-gray-900: #2c2c2c;
    --color-blue-100: #e0f2ff;
    --color-blue-200: #cae8ff;
    --color-blue-300: #b5deff;
    --color-blue-400: #96cefd;
    --color-blue-500: #78bbfa;
    --color-blue-600: #59a7f6;
    --color-blue-700: #3892f3;
    --color-blue-800: #147af3;
    --color-blue-900: #0265dc;
    --color-blue-1000: #0054b6;
    --color-blue-1100: #004491;
    --color-blue-1200: #003571;
    --color-blue-1300: #002754;
    --color-red-100: #ffebe7;
    --color-red-200: #ffddd6;
    --color-red-300: #ffcdc3;
    --color-red-400: #ffb7a9;
    --color-red-500: #ff9b88;
    --color-red-600: #ff7c65;
    --color-red-700: #f75c46;
    --color-red-800: #ea3829;
    --color-red-900: #d31510;
    --color-red-1000: #b40000;
    --color-red-1100: #930000;
    --color-red-1200: #740000;
    --color-red-1300: #590000;
    --color-green-100: #cef8e0;
    --color-green-200: #adf4ce;
    --color-green-300: #89ecbc;
    --color-green-400: #67dea8;
    --color-green-500: #49cc93;
    --color-green-600: #2fb880;
    --color-green-700: #15a46e;
    --color-green-800: #008f5d;
    --color-green-900: #007a4d;
    --color-green-1000: #00653e;
    --color-green-1100: #005132;
    --color-green-1200: #053f27;
    --color-green-1300: #0a2e1d;
    --color-cerise-50: #fef1f9;
    --color-cerise-100: #fee5f6;
    --color-cerise-200: #ffcbee;
    --color-cerise-300: #ffa1df;
    --color-cerise-400: #ff66c7;
    --color-cerise-500: #fb39ad;
    --color-cerise-600: #ec1c8e;
    --color-cerise-700: #cd096e;
    --color-cerise-800: #a90b5b;
    --color-cerise-900: #8d0e4e;
    --color-cerise-950: #57002c;
    --color-purple-100: #f6ebff;
    --color-purple-200: #edf;
    --color-purple-300: #e6d0ff;
    --color-purple-400: #dbbbfe;
    --color-purple-500: #cca4fd;
    --color-purple-600: #bd8bfc;
    --color-purple-700: #ae72f9;
    --color-purple-800: #9d57f4;
    --color-purple-900: #893de7;
    --color-purple-1000: #7326d3;
    --color-purple-1100: #5d13b7;
    --color-purple-1200: #470c94;
    --color-purple-1300: #33106a;
    --color-orange-100: #ffeccc;
    --color-orange-200: #ffdfad;
    --color-orange-300: #fdd291;
    --color-orange-400: #ffbb63;
    --color-orange-500: #ffa037;
    --color-orange-600: #f68511;
    --color-orange-700: #e46f00;
    --color-orange-800: #cb5d00;
    --color-orange-900: #b14c00;
    --color-orange-1000: #953d00;
    --color-orange-1100: #7a2f00;
    --color-orange-1200: #612300;
    --color-orange-1300: #491901;
    --color-indigo-100: #edeeff;
    --color-indigo-200: #e0e2ff;
    --color-indigo-300: #d3d5ff;
    --color-indigo-400: #c1c4ff;
    --color-indigo-500: #acafff;
    --color-indigo-600: #9599ff;
    --color-indigo-700: #7e84fc;
    --color-indigo-800: #686df4;
    --color-indigo-900: #5258e4;
    --color-indigo-1000: #4046ca;
    --color-indigo-1100: #3236a8;
    --color-indigo-1200: #262986;
    --color-indigo-1300: #1b1e64;
    --color-seafoam-100: #cef7f3;
    --color-seafoam-200: #aaf1ea;
    --color-seafoam-300: #8ce9e2;
    --color-seafoam-400: #65dad2;
    --color-seafoam-500: #3fc9c1;
    --color-seafoam-600: #0fb5ae;
    --color-seafoam-700: #00a19a;
    --color-seafoam-800: #008c87;
    --color-seafoam-900: #007772;
    --color-seafoam-1000: #00635f;
    --color-seafoam-1100: #0c4f4c;
    --color-seafoam-1200: #123c3a;
    --color-seafoam-1300: #122c2b;
    --color-cyan-100: #c5f8ff;
    --color-cyan-200: #a4f0ff;
    --color-cyan-300: #88e7fa;
    --color-cyan-400: #60d8f3;
    --color-cyan-500: #33c5e8;
    --color-cyan-600: #12b0da;
    --color-cyan-700: #019cc8;
    --color-cyan-800: #0086b4;
    --color-cyan-900: #00719f;
    --color-cyan-1000: #005d89;
    --color-cyan-1100: #004a73;
    --color-cyan-1200: #00395d;
    --color-cyan-1300: #002a46;
    --color-yellow-100: #fbf198;
    --color-yellow-200: #f8e750;
    --color-yellow-300: #f8d904;
    --color-yellow-400: #e8c600;
    --color-yellow-500: #d7b300;
    --color-yellow-600: #c49f00;
    --color-yellow-700: #b08c00;
    --color-yellow-800: #9b7800;
    --color-yellow-900: #856600;
    --color-yellow-1000: #705300;
    --color-yellow-1100: #5b4300;
    --color-yellow-1200: #483300;
    --color-yellow-1300: #362500;
    --color-chartreuse-100: #dbfc6e;
    --color-chartreuse-200: #cbf443;
    --color-chartreuse-300: #bce92a;
    --color-chartreuse-400: #aad816;
    --color-chartreuse-500: #98c50a;
    --color-chartreuse-600: #87b103;
    --color-chartreuse-700: #769c00;
    --color-chartreuse-800: #678800;
    --color-chartreuse-900: #577400;
    --color-chartreuse-1000: #486000;
    --color-chartreuse-1100: #3a4d00;
    --color-chartreuse-1200: #2c3b00;
    --color-chartreuse-1300: #212c00;
    --color-fuchsia-100: #ffe9fc;
    --color-fuchsia-200: #ffdafa;
    --color-fuchsia-300: #fec7f8;
    --color-fuchsia-400: #fbaef6;
    --color-fuchsia-500: #f592f3;
    --color-fuchsia-600: #ed74ed;
    --color-fuchsia-700: #e055e2;
    --color-fuchsia-800: #cd3ace;
    --color-fuchsia-900: #b622b7;
    --color-fuchsia-1000: #9d039e;
    --color-fuchsia-1100: #800081;
    --color-fuchsia-1200: #640664;
    --color-fuchsia-1300: #470e46;
    --color-magenta-100: #ffeaf1;
    --color-magenta-200: #ffdce8;
    --color-magenta-300: #ffcadd;
    --color-magenta-400: #ffb2ce;
    --color-magenta-500: #ff95bd;
    --color-magenta-600: #fa77aa;
    --color-magenta-700: #ef5a98;
    --color-magenta-800: #de3d82;
    --color-magenta-900: #c82269;
    --color-magenta-1000: #ad0955;
    --color-magenta-1100: #8e0045;
    --color-magenta-1200: #700037;
    --color-magenta-1300: #54032a;
  }
}

:root {
  --spacing-base: .25rem;
  --spacing-0: 0;
  --spacing-25: .125rem;
  --spacing-50: .25rem;
  --spacing-75: .375rem;
  --spacing-100: .5rem;
  --spacing-150: .75rem;
  --spacing-200: 1rem;
  --spacing-250: 1.25rem;
  --spacing-300: 1.5rem;
  --spacing-400: 2rem;
  --spacing-500: 2.5rem;
  --spacing-600: 3rem;
  --spacing-700: 3.5rem;
  --spacing-800: 4rem;
  --spacing-900: 4.5rem;
  --spacing-1000: 5rem;
  --spacing-1200: 6rem;
  --spacing-1600: 8rem;
  --spacing-2400: 12rem;
  --spacing-3200: 16rem;
  --spacing-component-padding-small: var(--spacing-75);
  --spacing-component-padding: var(--spacing-100);
  --spacing-component-padding-large: var(--spacing-150);
  --spacing-button-padding-block: var(--spacing-75);
  --spacing-button-padding-inline: var(--spacing-150);
  --spacing-button-gap: var(--spacing-100);
  --spacing-form-gap: var(--spacing-200);
  --spacing-input-padding-block: var(--spacing-100);
  --spacing-input-padding-inline: var(--spacing-150);
  --spacing-label-margin: var(--spacing-75);
  --spacing-help-text-margin: var(--spacing-75);
  --spacing-section-gap: var(--spacing-500);
  --spacing-content-gap: var(--spacing-300);
  --spacing-item-gap: var(--spacing-200);
  --spacing-container-padding: var(--spacing-300);
  --spacing-container-margin: var(--spacing-400);
  --spacing-focus-offset: var(--spacing-50);
  --spacing-focus-width: var(--spacing-50);
  --radius-small: var(--spacing-50);
  --radius-medium: var(--spacing-75);
  --radius-large: var(--spacing-100);
  --radius-extra-large: var(--spacing-200);
  --radius-full: 9999px;
}

@media (width >= 768px) {
  :root {
    --spacing-section-gap: var(--spacing-600);
    --spacing-container-padding: var(--spacing-400);
    --spacing-container-margin: var(--spacing-500);
  }
}

@media (width >= 1024px) {
  :root {
    --spacing-section-gap: var(--spacing-800);
    --spacing-container-padding: var(--spacing-500);
    --spacing-container-margin: var(--spacing-600);
  }
}

:root {
  --font-size-display-2xl: clamp(3.5rem, 5vw, 4.5rem);
  --font-size-display-xl: clamp(3rem, 4vw, 3.75rem);
  --font-size-display-lg: clamp(2.5rem, 3.5vw, 3rem);
  --font-size-h1: clamp(2rem, 3vw, 2.5rem);
  --font-size-h2: clamp(1.5rem, 2.5vw, 2rem);
  --font-size-h3: clamp(1.25rem, 2vw, 1.5rem);
  --font-size-h4: clamp(1.125rem, 1.5vw, 1.25rem);
  --font-size-h5: 1rem;
  --font-size-h6: .875rem;
  --font-size-xl: 1.25rem;
  --font-size-lg: 1.125rem;
  --font-size-base: 1rem;
  --font-size-sm: .875rem;
  --font-size-xs: .75rem;
  --font-size-2xs: .6875rem;
  --line-height-display: 1.1;
  --line-height-heading: 1.1;
  --line-height-body: 1.6;
  --line-height-compact: 1.4;
  --line-height-loose: 1.8;
  --letter-spacing-tight: -.025em;
  --letter-spacing-normal: 0;
  --letter-spacing-wide: .025em;
  --letter-spacing-wider: .05em;
  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;
  --font-weight-extrabold: 800;
  --text-decoration-thickness: .125em;
  --text-underline-offset: .125em;
  --font-family-base: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-family-heading: var(--font-family-base);
  --font-family-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;
  --line-height-base: 1.6;
  --content-max-width: 75ch;
  --color-background: var(--color-gray-50);
  --color-surface: var(--color-gray-75);
  --color-surface-raised: var(--color-white);
  --color-text-primary: var(--color-gray-900);
  --color-text-secondary: var(--color-gray-700);
  --color-text-tertiary: var(--color-gray-600);
  --color-text-disabled: var(--color-gray-400);
  --color-text-inverse: var(--color-white);
  --color-border-subtle: var(--color-gray-200);
  --color-border-default: var(--color-gray-300);
  --color-border-emphasis: var(--color-gray-400);
  --color-border-strong: var(--color-gray-600);
  --color-focus: var(--color-blue-600);
  --color-focus-ring: var(--color-blue-400);
  --color-action-background: var(--color-blue-700);
  --color-action-background-hover: var(--color-blue-800);
  --color-action-background-pressed: var(--color-blue-900);
  --color-action-text: var(--color-white);
  --color-action-border: var(--color-blue-700);
  --color-action-border-hover: var(--color-blue-800);
  --color-accent-background: var(--color-blue-600);
  --color-accent-background-hover: var(--color-blue-700);
  --color-accent-text: var(--color-blue-700);
  --color-accent-text-hover: var(--color-blue-800);
  --color-accent-border: var(--color-blue-600);
  --color-quiet-background: transparent;
  --color-quiet-background-hover: var(--color-gray-100);
  --color-quiet-background-pressed: var(--color-gray-200);
  --color-quiet-text: var(--color-gray-700);
  --color-quiet-text-hover: var(--color-gray-900);
  --color-quiet-border: transparent;
  --color-quiet-border-hover: var(--color-gray-200);
  --color-positive-background: var(--color-green-600);
  --color-positive-background-hover: var(--color-green-700);
  --color-positive-text: var(--color-green-800);
  --color-positive-text-subtle: var(--color-green-700);
  --color-positive-border: var(--color-green-600);
  --color-negative-background: var(--color-red-700);
  --color-negative-background-hover: var(--color-red-800);
  --color-negative-text: var(--color-red-700);
  --color-negative-text-subtle: var(--color-red-700);
  --color-negative-border: var(--color-red-700);
  --color-warning-background: var(--color-orange-600);
  --color-warning-background-hover: var(--color-orange-700);
  --color-warning-text: var(--color-orange-700);
  --color-warning-text-subtle: var(--color-orange-600);
  --color-warning-border: var(--color-orange-500);
  --color-info-background: var(--color-cyan-600);
  --color-info-background-hover: var(--color-cyan-700);
  --color-info-text: var(--color-cyan-800);
  --color-info-text-subtle: var(--color-cyan-700);
  --color-info-border: var(--color-cyan-600);
  --color-overlay-start: transparent;
  --color-overlay-middle: color-mix(in srgb, var(--color-text-primary) 30%, transparent);
  --color-overlay-end: color-mix(in srgb, var(--color-text-primary) 70%, transparent);
  --color-overlay-text: var(--color-text-inverse);
}

@media (prefers-color-scheme: dark) {
  :root {
    --color-background: var(--color-black);
    --color-surface: var(--color-gray-900);
    --color-surface-raised: var(--color-gray-800);
    --color-text-primary: var(--color-white);
    --color-text-secondary: var(--color-gray-200);
    --color-text-tertiary: var(--color-gray-400);
    --color-text-disabled: var(--color-gray-600);
    --color-text-inverse: var(--color-gray-900);
    --color-border-subtle: var(--color-gray-800);
    --color-border-default: var(--color-gray-700);
    --color-border-emphasis: var(--color-gray-600);
    --color-border-strong: var(--color-gray-500);
    --color-focus: var(--color-blue-400);
    --color-focus-ring: var(--color-blue-500);
    --color-action-background: var(--color-blue-500);
    --color-action-background-hover: var(--color-blue-400);
    --color-action-background-pressed: var(--color-blue-600);
    --color-quiet-background-hover: var(--color-gray-800);
    --color-quiet-background-pressed: var(--color-gray-700);
    --color-quiet-text: var(--color-gray-200);
    --color-quiet-text-hover: var(--color-gray-100);
    --color-quiet-border-hover: var(--color-gray-700);
    --color-positive-background: var(--color-green-600);
    --color-positive-background-hover: var(--color-green-500);
    --color-positive-text: var(--color-green-300);
    --color-positive-text-subtle: var(--color-green-400);
    --color-positive-border: var(--color-green-500);
    --color-negative-background: var(--color-red-600);
    --color-negative-background-hover: var(--color-red-500);
    --color-negative-text: var(--color-red-300);
    --color-negative-text-subtle: var(--color-red-400);
    --color-negative-border: var(--color-red-500);
    --color-warning-background: var(--color-orange-600);
    --color-warning-background-hover: var(--color-orange-500);
    --color-warning-text: var(--color-orange-300);
    --color-warning-text-subtle: var(--color-orange-400);
    --color-warning-border: var(--color-orange-500);
    --color-info-background: var(--color-cyan-600);
    --color-info-background-hover: var(--color-cyan-500);
    --color-info-text: var(--color-cyan-300);
    --color-info-text-subtle: var(--color-cyan-400);
    --color-info-border: var(--color-cyan-500);
  }
}

html.dark {
  --color-background: var(--color-black);
  --color-surface: var(--color-gray-900);
  --color-surface-raised: var(--color-gray-800);
  --color-text-primary: var(--color-white);
  --color-text-secondary: var(--color-gray-200);
  --color-text-tertiary: var(--color-gray-400);
  --color-text-disabled: var(--color-gray-600);
  --color-text-inverse: var(--color-gray-900);
  --color-border-subtle: var(--color-gray-800);
  --color-border-default: var(--color-gray-700);
  --color-border-emphasis: var(--color-gray-600);
  --color-border-strong: var(--color-gray-500);
  --color-focus: var(--color-blue-400);
  --color-focus-ring: var(--color-blue-500);
  --color-action-background: var(--color-blue-500);
  --color-action-background-hover: var(--color-blue-400);
  --color-action-background-pressed: var(--color-blue-600);
  --color-quiet-background-hover: var(--color-gray-800);
  --color-quiet-background-pressed: var(--color-gray-700);
  --color-quiet-text: var(--color-gray-200);
  --color-quiet-text-hover: var(--color-gray-100);
  --color-quiet-border-hover: var(--color-gray-700);
  --color-positive-background: var(--color-green-600);
  --color-positive-background-hover: var(--color-green-500);
  --color-positive-text: var(--color-green-300);
  --color-positive-text-subtle: var(--color-green-400);
  --color-positive-border: var(--color-green-500);
  --color-negative-background: var(--color-red-600);
  --color-negative-background-hover: var(--color-red-500);
  --color-negative-text: var(--color-red-300);
  --color-negative-text-subtle: var(--color-red-400);
  --color-negative-border: var(--color-red-500);
  --color-warning-background: var(--color-orange-600);
  --color-warning-background-hover: var(--color-orange-500);
  --color-warning-text: var(--color-orange-300);
  --color-warning-text-subtle: var(--color-orange-400);
  --color-warning-border: var(--color-orange-500);
  --color-info-background: var(--color-cyan-600);
  --color-info-background-hover: var(--color-cyan-500);
  --color-info-text: var(--color-cyan-300);
  --color-info-text-subtle: var(--color-cyan-400);
  --color-info-border: var(--color-cyan-500);
}

html {
  font-family: var(--font-family-base);
  font-optical-sizing: auto;
  line-height: var(--line-height-base);
}

body {
  font-weight: var(--font-weight-normal);
  color: var(--color-text-primary);
  background-color: var(--color-background);
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-family-heading);
  line-height: var(--line-height-heading);
  text-wrap: balance;
  color: var(--color-text-primary);
  margin-block: 0;
}

* + h1 {
  margin-block-start: var(--spacing-800);
}

* + h2 {
  margin-block-start: var(--spacing-600);
}

* + h3 {
  margin-block-start: var(--spacing-500);
}

* + h4 {
  margin-block-start: var(--spacing-400);
}

* + h5, * + h6 {
  margin-block-start: var(--spacing-300);
}

h1 {
  font-size: var(--font-size-h1);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-tight);
  margin-block-end: var(--spacing-300);
}

h2 {
  font-size: var(--font-size-h2);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-tight);
  margin-block-end: var(--spacing-250);
}

h3 {
  font-size: var(--font-size-h3);
  font-weight: var(--font-weight-medium);
  margin-block-end: var(--spacing-200);
}

h4 {
  font-size: var(--font-size-h4);
  font-weight: var(--font-weight-medium);
  margin-block-end: var(--spacing-200);
}

h5 {
  font-size: var(--font-size-h5);
  font-weight: var(--font-weight-medium);
  margin-block-end: var(--spacing-150);
}

h6 {
  font-size: var(--font-size-h6);
  font-weight: var(--font-weight-medium);
  margin-block-end: var(--spacing-150);
}

p {
  max-width: var(--content-max-width);
  text-wrap: pretty;
  color: var(--color-text-primary);
  margin-block-end: var(--spacing-200);
}

a {
  color: var(--color-action-background);
  text-decoration: underline;
  text-decoration-color: var(--color-action-background);
  transition: color .15s, text-decoration-color .15s;
}

a:hover {
  color: var(--color-action-background-hover);
  text-decoration-color: var(--color-action-background-hover);
}

a:focus-visible {
  outline: var(--spacing-focus-width) solid var(--color-focus);
  outline-offset: var(--spacing-focus-offset);
  text-decoration: none;
}

a:active {
  color: var(--color-action-background-pressed);
  text-decoration-color: var(--color-action-background-pressed);
}

img {
  border-radius: var(--radius-small);
  max-width: 100%;
  height: auto;
  margin-block-end: var(--spacing-200);
  display: block;
}

li {
  max-width: var(--content-max-width);
  text-wrap: pretty;
}

ul, ol {
  margin-block-end: var(--spacing-200);
  padding-inline-start: var(--spacing-300);
}

code {
  font-family: var(--font-family-mono);
  background-color: var(--color-surface);
  padding: var(--spacing-25) var(--spacing-50);
  border-radius: var(--radius-small);
  color: var(--color-text-primary);
  font-size: .875em;
}

pre {
  font-family: var(--font-family-mono);
  background-color: var(--color-surface);
  padding: var(--spacing-200);
  border-radius: var(--radius-medium);
  margin-block-end: var(--spacing-300);
  overflow-x: auto;
}

pre code {
  background: none;
  padding: 0;
}

kbd {
  font-family: var(--font-family-mono);
  font-size: .8125em;
  font-weight: var(--font-weight-semibold);
  letter-spacing: .025em;
  color: var(--color-text-secondary);
  background: linear-gradient(to bottom, var(--color-surface-raised), var(--color-surface));
  border: 1px solid var(--color-border-default);
  border-bottom: 2px solid var(--color-border-emphasis);
  border-radius: var(--radius-small);
  padding: var(--spacing-50) var(--spacing-100);
  box-shadow: 0 1px 0 var(--color-border-subtle);
  white-space: nowrap;
  text-align: center;
  min-width: 1.5em;
  line-height: 1;
  display: inline-block;
}

figcaption {
  max-width: var(--content-max-width);
  text-wrap: pretty;
  color: var(--color-text-secondary);
  margin-block-start: var(--spacing-100);
  font-size: .875rem;
}

blockquote {
  border-inline-start: 4px solid var(--color-border-emphasis);
  color: var(--color-text-secondary);
  margin-block-end: var(--spacing-300);
  padding-inline-start: var(--spacing-300);
  font-style: italic;
}

hr {
  border: none;
  border-block-start: 1px solid var(--color-border-default);
  margin-block: var(--spacing-400);
}

button, input, textarea, select {
  font-family: inherit;
  font-size: inherit;
  line-height: var(--line-height-compact);
}

button {
  justify-content: center;
  align-items: center;
  gap: var(--spacing-button-gap);
  padding-block: var(--spacing-button-padding-block);
  padding-inline: var(--spacing-button-padding-inline);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-medium);
  background-color: var(--color-surface-raised);
  color: var(--color-text-primary);
  font-weight: var(--font-weight-medium);
  cursor: pointer;
  min-height: 2.5rem;
  text-decoration: none;
  transition: all .15s;
  display: inline-flex;
}

button:hover {
  background-color: var(--color-surface);
  border-color: var(--color-border-emphasis);
}

button:focus-visible {
  outline: var(--spacing-focus-width) solid var(--color-focus);
  outline-offset: var(--spacing-focus-offset);
}

button:active {
  transform: scale(.98);
}

button:disabled {
  opacity: .6;
  cursor: not-allowed;
  transform: none;
}

input, textarea, select {
  width: 100%;
  padding-block: var(--spacing-input-padding-block);
  padding-inline: var(--spacing-input-padding-inline);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-medium);
  background-color: var(--color-surface-raised);
  color: var(--color-text-primary);
  min-height: 2.25rem;
  transition: all .15s;
  display: block;
}

input:focus, textarea:focus, select:focus {
  border-color: var(--color-focus);
  box-shadow: 0 0 0 var(--spacing-focus-width) var(--color-focus-ring);
  outline: none;
}

input:invalid, textarea:invalid, select:invalid {
  border-color: var(--color-negative-border);
}

input::placeholder, textarea::placeholder {
  color: var(--color-text-tertiary);
}

label {
  font-weight: var(--font-weight-medium);
  color: var(--color-text-primary);
  line-height: var(--line-height-heading);
  margin-block-end: var(--spacing-label-margin);
  display: block;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
  font-variant-numeric: tabular-nums;
  width: 100%;
  margin-block-end: var(--spacing-content-gap);
}

caption {
  text-align: left;
  font-weight: var(--font-weight-medium);
  color: var(--color-text-primary);
  margin-block-end: var(--spacing-200);
  font-size: 1.125rem;
}

thead {
  border-bottom: 2px solid var(--color-border-emphasis);
}

th {
  font-weight: var(--font-weight-semibold);
  text-align: left;
  color: var(--color-text-primary);
  padding: var(--spacing-150) var(--spacing-200);
  background-color: var(--color-surface);
  font-size: .875rem;
  line-height: var(--line-height-compact);
}

td {
  padding: var(--spacing-150) var(--spacing-200);
  border-bottom: 1px solid var(--color-border-subtle);
  color: var(--color-text-primary);
  font-size: .875rem;
  line-height: var(--line-height-compact);
  vertical-align: top;
}

tbody tr:hover {
  background-color: var(--color-surface);
}

tbody tr:last-child td {
  border-bottom: none;
}

@media (width <= 640px) {
  table {
    font-size: .75rem;
  }

  th, td {
    padding: var(--spacing-100) var(--spacing-150);
  }
}

tfoot {
  border-top: 2px solid var(--color-border-emphasis);
  background-color: var(--color-surface);
}

tfoot th, tfoot td {
  font-weight: var(--font-weight-medium);
  color: var(--color-text-secondary);
}

.btn {
  justify-content: center;
  align-items: center;
  gap: var(--spacing-button-gap);
  padding-block: var(--spacing-button-padding-block);
  padding-inline: var(--spacing-button-padding-inline);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-medium);
  background-color: var(--color-surface-raised);
  color: var(--color-text-primary);
  font-family: var(--font-family-base);
  font-size: .875rem;
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-compact);
  cursor: pointer;
  box-sizing: border-box;
  min-height: 2.25rem;
  text-decoration: none;
  transition: all .15s;
  display: inline-flex;
}

.btn:hover {
  background-color: var(--color-surface);
  border-color: var(--color-border-emphasis);
}

.btn:focus-visible {
  outline: var(--spacing-focus-width) solid var(--color-focus);
  outline-offset: var(--spacing-focus-offset);
}

.btn:disabled, .btn[aria-disabled="true"] {
  opacity: .6;
  cursor: not-allowed;
  transform: none;
}

.btn--accent {
  background-color: var(--color-action-background);
  border-color: var(--color-action-border);
  color: var(--color-action-text);
}

.btn--accent:hover {
  background-color: var(--color-action-background-hover);
  border-color: var(--color-action-border-hover);
}

.btn--accent:active {
  background-color: var(--color-action-background-pressed);
}

.btn--primary {
  background-color: var(--color-text-primary);
  border-color: var(--color-text-primary);
  color: var(--color-text-inverse);
}

.btn--primary:hover {
  background-color: var(--color-text-secondary);
  border-color: var(--color-text-secondary);
}

.btn--primary:active {
  background-color: var(--color-text-primary);
  opacity: .9;
}

.btn--secondary {
  background-color: var(--color-surface);
  border-color: var(--color-border-default);
  color: var(--color-text-primary);
}

.btn--secondary:hover {
  background-color: var(--color-surface-raised);
  border-color: var(--color-border-emphasis);
}

.btn--secondary:active {
  background-color: var(--color-background);
}

.btn--outline {
  border-width: var(--border-width-sm);
  border-style: var(--border-style-solid);
  background-color: #0000;
}

.btn--accent.btn--outline {
  border-color: var(--color-action-border);
  color: var(--color-action-background);
  background-color: #0000;
}

.btn--accent.btn--outline:hover {
  background-color: var(--color-action-background);
  color: var(--color-action-text);
  border-color: var(--color-action-border);
}

.btn--primary.btn--outline {
  border-color: var(--color-text-primary);
  color: var(--color-text-primary);
  background-color: #0000;
}

.btn--primary.btn--outline:hover {
  background-color: var(--color-text-primary);
  color: var(--color-text-inverse);
  border-color: var(--color-text-primary);
}

.btn--secondary.btn--outline {
  border-color: var(--color-border-emphasis);
  color: var(--color-text-primary);
  background-color: #0000;
}

.btn--secondary.btn--outline:hover {
  background-color: var(--color-surface);
  border-color: var(--color-border-emphasis);
}

.btn--static-black {
  color: #fff;
  background-color: #000c;
  border-color: #000c;
}

.btn--static-black:hover {
  background-color: #000000e6;
  border-color: #000000e6;
}

.btn--static-black.btn--outline {
  color: #000c;
  background-color: #0000;
  border-color: #000c;
}

.btn--static-black.btn--outline:hover {
  color: #fff;
  background-color: #000c;
}

.btn--static-black.btn--secondary {
  color: #000c;
  background-color: #0000001a;
  border-color: #0000004d;
}

.btn--static-black.btn--secondary:hover {
  background-color: #0003;
  border-color: #0006;
}

.btn--static-black.btn--secondary.btn--outline {
  color: #000c;
  background-color: #0000;
  border-color: #0000004d;
}

.btn--static-black.btn--secondary.btn--outline:hover {
  background-color: #0000001a;
  border-color: #0006;
}

.btn--static-white {
  color: #000c;
  background-color: #ffffffe6;
  border-color: #ffffffe6;
}

.btn--static-white:hover {
  background-color: #fff;
  border-color: #fff;
}

.btn--static-white.btn--outline {
  color: #ffffffe6;
  background-color: #0000;
  border-color: #ffffffe6;
}

.btn--static-white.btn--outline:hover {
  color: #000c;
  background-color: #ffffffe6;
}

.btn--static-white.btn--secondary {
  color: #ffffffe6;
  background-color: #ffffff1a;
  border-color: #ffffff4d;
}

.btn--static-white.btn--secondary:hover {
  background-color: #fff3;
  border-color: #fff6;
}

.btn--static-white.btn--secondary.btn--outline {
  color: #ffffffe6;
  background-color: #0000;
  border-color: #ffffff4d;
}

.btn--static-white.btn--secondary.btn--outline:hover {
  background-color: #ffffff1a;
  border-color: #fff6;
}

.btn--action {
  background-color: var(--color-action-background);
  border-color: var(--color-action-border);
  color: var(--color-action-text);
}

.btn--action:hover {
  background-color: var(--color-action-background-hover);
  border-color: var(--color-action-border-hover);
}

.btn--action:active {
  background-color: var(--color-action-background-pressed);
}

.btn--quiet {
  background-color: var(--color-quiet-background);
  border-color: var(--color-quiet-border);
  color: var(--color-quiet-text);
}

.btn--quiet:hover {
  background-color: var(--color-quiet-background-hover);
  border-color: var(--color-quiet-border-hover);
  color: var(--color-quiet-text-hover);
}

.btn--quiet:active {
  background-color: var(--color-quiet-background-pressed);
}

.btn--negative {
  background-color: var(--color-negative-background);
  border-color: var(--color-negative-border);
  color: var(--color-action-text);
}

.btn--negative:hover {
  background-color: var(--color-negative-background-hover);
}

.btn--negative.btn--quiet {
  background-color: var(--color-quiet-background);
  border-color: var(--color-quiet-border);
  color: var(--color-negative-text);
}

.btn--negative.btn--quiet:hover {
  background-color: var(--color-negative-background-hover);
  color: var(--color-action-text);
}

.btn--small {
  padding-block: var(--spacing-50);
  padding-inline: var(--spacing-100);
  min-height: 1.75rem;
  font-size: .75rem;
}

.btn--large {
  padding-block: var(--spacing-100);
  padding-inline: var(--spacing-200);
  min-height: 2.75rem;
  font-size: 1rem;
}

.btn--icon {
  aspect-ratio: 1;
  padding-block: var(--spacing-75);
  padding-inline: var(--spacing-75);
  min-width: 2.25rem;
}

.btn--icon.btn--small {
  padding: var(--spacing-50);
  min-width: 1.75rem;
}

.btn--icon.btn--large {
  padding: var(--spacing-100);
  min-width: 2.75rem;
}

.btn--full {
  justify-content: center;
  width: 100%;
}

.btn-group {
  gap: var(--spacing-150);
  flex-wrap: wrap;
  display: flex;
}

.btn-group .btn {
  flex: none;
}

.btn-group--full .btn {
  flex: 1;
}

.btn .icon, .btn svg {
  fill: currentColor;
  flex-shrink: 0;
  width: 1em;
  height: 1em;
}

.btn--small .icon, .btn--small svg {
  width: .875em;
  height: .875em;
}

.btn--large .icon, .btn--large svg {
  width: 1.125em;
  height: 1.125em;
}

.avatar {
  --avatar-bg: var(--color-surface);
  --avatar-color: var(--color-text-primary);
  --avatar-border: var(--color-border-subtle);
  background: var(--avatar-bg);
  border: 1px solid var(--avatar-border);
  width: 2.5rem;
  height: 2.5rem;
  color: var(--avatar-color);
  font-weight: var(--font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: .025em;
  border-radius: 50%;
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  font-size: .875rem;
  line-height: 1;
  display: inline-flex;
  position: relative;
  overflow: hidden;
}

.avatar img {
  object-fit: cover;
  border-radius: 0;
  width: 100%;
  height: 100%;
  margin: 0;
}

.avatar--xs {
  width: 1.5rem;
  height: 1.5rem;
  font-size: .625rem;
}

.avatar--sm {
  width: 2rem;
  height: 2rem;
  font-size: .75rem;
}

.avatar--lg {
  width: 3rem;
  height: 3rem;
  font-size: 1rem;
}

.avatar--xl {
  width: 4rem;
  height: 4rem;
  font-size: 1.25rem;
}

.avatar-group {
  align-items: center;
  display: flex;
}

.avatar-group .avatar {
  border: 2px solid var(--color-surface-raised);
  z-index: 1;
  margin-left: -.5rem;
  position: relative;
}

.avatar-group .avatar:first-child {
  margin-left: 0;
}

.avatar-group .avatar:hover {
  z-index: 2;
  box-shadow: var(--shadow-sm);
  transform: translateY(-1px);
}

.avatar--with-status {
  position: relative;
}

.avatar--with-status:after {
  content: "";
  border: 2px solid var(--color-surface-raised);
  background: var(--color-positive-background);
  z-index: 2;
  border-radius: 50%;
  width: .75rem;
  height: .75rem;
  position: absolute;
  bottom: 0;
  right: 0;
}

.avatar--with-status.avatar--offline:after {
  background: var(--color-border-emphasis);
}

.avatar--with-status.avatar--away:after {
  background: var(--color-warning-background);
}

.avatar--with-status.avatar--busy:after {
  background: var(--color-negative-background);
}

.avatar--xs.avatar--with-status:after, .avatar--sm.avatar--with-status:after {
  border-width: 1px;
  width: .5rem;
  height: .5rem;
}

.avatar--square {
  border-radius: var(--radius-medium);
}

.avatar--square.avatar--xs, .avatar--square.avatar--sm {
  border-radius: var(--radius-small);
}

.avatar--square.avatar--lg, .avatar--square.avatar--xl {
  border-radius: var(--radius-large);
}

.avatar--clickable {
  cursor: pointer;
  border: 1px solid var(--avatar-border);
  background: var(--avatar-bg);
  color: var(--avatar-color);
  text-decoration: none;
  transition: transform .15s, box-shadow .15s, background-color .15s;
}

.avatar--clickable:hover {
  box-shadow: var(--shadow-md);
  background: color-mix(in srgb, var(--avatar-bg) 85%, white);
  color: var(--avatar-color);
  transform: translateY(-1px);
}

.avatar--clickable:focus-visible {
  outline: var(--spacing-focus-width) solid var(--color-focus);
  outline-offset: var(--spacing-focus-offset);
}

.avatar--clickable:active {
  box-shadow: var(--shadow-sm);
  background: color-mix(in srgb, var(--avatar-bg) 90%, black);
  color: var(--avatar-color);
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
  .avatar-group .avatar:hover, .avatar--clickable:hover, .avatar--clickable:active {
    transform: none;
  }
}

.menu {
  background: var(--color-surface-raised);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-medium);
  min-width: 200px;
  max-width: 320px;
  box-shadow: var(--shadow-lg);
  padding: var(--spacing-75);
  z-index: 1000;
  flex-direction: column;
  display: flex;
  overflow: hidden;
}

.menu-search {
  margin-bottom: var(--spacing-100);
  padding-bottom: var(--spacing-100);
  border-bottom: 1px solid var(--color-border-subtle);
}

.menu-search input {
  width: 100%;
  padding: var(--spacing-75) var(--spacing-100);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-small);
  background: var(--color-surface);
  color: var(--color-text-primary);
  outline: none;
  font-size: .875rem;
  transition: border-color .15s;
}

.menu-search input:focus {
  border-color: var(--color-focus);
  box-shadow: 0 0 0 1px var(--color-focus);
}

.menu-search input::placeholder {
  color: var(--color-text-tertiary);
}

.menu-section {
  flex-direction: column;
  display: flex;
}

.menu-section + .menu-section {
  margin-top: var(--spacing-75);
  padding-top: var(--spacing-75);
  border-top: 1px solid var(--color-border-subtle);
}

.menu-header {
  padding: var(--spacing-75) var(--spacing-100);
  font-size: .75rem;
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-tertiary);
  text-transform: uppercase;
  letter-spacing: .025em;
  line-height: var(--line-height-compact);
  margin-bottom: var(--spacing-50);
  user-select: none;
}

.menu-item {
  align-items: center;
  gap: var(--spacing-100);
  padding: var(--spacing-75) var(--spacing-100);
  border-radius: var(--radius-small);
  color: var(--color-text-primary);
  font-size: .875rem;
  font-weight: var(--font-weight-normal);
  line-height: var(--line-height-compact);
  text-align: left;
  cursor: pointer;
  background: none;
  border: none;
  min-height: 2rem;
  text-decoration: none;
  transition: background-color .15s;
  display: flex;
  position: relative;
}

.menu-item:hover {
  background: var(--color-quiet-background-hover);
}

.menu-item:focus-visible {
  outline: var(--spacing-focus-width) solid var(--color-focus);
  outline-offset: -1px;
}

.menu-item:active {
  background: var(--color-quiet-background-pressed);
}

.menu-item[aria-disabled="true"], .menu-item:disabled {
  color: var(--color-text-disabled);
  cursor: not-allowed;
  pointer-events: none;
}

.menu-item--danger {
  color: var(--color-negative-text);
}

.menu-item--danger:hover {
  background: color-mix(in srgb, var(--color-negative-background) 10%, transparent);
}

.menu-item--selected {
  background: var(--color-action-background);
  color: var(--color-action-text);
}

.menu-item--selected:hover {
  background: var(--color-action-background-hover);
}

.menu-item-icon {
  fill: currentColor;
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
}

.menu-item-content {
  flex-direction: column;
  flex: 1;
  min-width: 0;
  display: flex;
}

.menu-item-title {
  font-weight: var(--font-weight-medium);
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.menu-item-description {
  color: var(--color-text-secondary);
  font-size: .75rem;
  line-height: var(--line-height-compact);
  margin-top: var(--spacing-25);
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.menu-item-toggle {
  flex-shrink: 0;
  margin-left: auto;
}

.menu-item-toggle input[type="checkbox"] {
  cursor: pointer;
  width: 1rem;
  height: 1rem;
  margin: 0;
}

.menu-item--submenu:after {
  content: "";
  opacity: .6;
  border-bottom: 1px solid;
  border-right: 1px solid;
  width: .5rem;
  height: .5rem;
  margin-left: auto;
  transform: rotate(-45deg);
}

.menu-divider {
  background: var(--color-border-subtle);
  height: 1px;
  margin: var(--spacing-75) 0;
  border: none;
}

.menu--compact {
  min-width: 160px;
  padding: var(--spacing-50);
}

.menu--compact .menu-item {
  padding: var(--spacing-50) var(--spacing-75);
  min-height: 1.75rem;
}

.menu--compact .menu-header {
  padding: var(--spacing-50) var(--spacing-75);
}

.menu--wide {
  min-width: 280px;
  max-width: 400px;
}

.menu--positioned {
  position: absolute;
}

.menu--fixed {
  position: fixed;
}

.menu-search-results {
  scrollbar-width: thin;
  max-height: 300px;
  overflow-y: auto;
}

.menu-search-results::-webkit-scrollbar {
  width: 6px;
}

.menu-search-results::-webkit-scrollbar-track {
  background: none;
}

.menu-search-results::-webkit-scrollbar-thumb {
  background: var(--color-border-emphasis);
  border-radius: 3px;
}

.menu-search-results::-webkit-scrollbar-thumb:hover {
  background: var(--color-border-strong);
}

.menu-item-type {
  border-radius: var(--radius-small);
  background: var(--color-surface);
  border: 1px solid var(--color-border-subtle);
  width: 1.25rem;
  height: 1.25rem;
  font-size: .75rem;
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-secondary);
  flex-shrink: 0;
  justify-content: center;
  align-items: center;
  display: inline-flex;
}

.menu-item-type--page {
  background: var(--color-info-background);
  color: var(--color-white);
  border-color: var(--color-info-border);
}

.menu-item-type--folder {
  background: var(--color-warning-background);
  color: var(--color-white);
  border-color: var(--color-warning-border);
}

.menu {
  transform-origin: 0 0;
  animation: .15s ease-out menu-appear;
}

@keyframes menu-appear {
  from {
    opacity: 0;
    transform: scale(.95)translateY(-10px);
  }

  to {
    opacity: 1;
    transform: scale(1)translateY(0);
  }
}

@media (width <= 640px) {
  .menu {
    min-width: 240px;
    max-width: calc(100vw - 2rem);
  }

  .menu--wide {
    max-width: calc(100vw - 2rem);
  }
}

@media (prefers-contrast: high) {
  .menu {
    border-width: 2px;
  }

  .menu-item:hover {
    border: 1px solid var(--color-border-emphasis);
  }
}

@media (prefers-reduced-motion: reduce) {
  .menu {
    animation: none;
  }

  .menu-item, .menu-item-toggle input[type="checkbox"], .menu-item-toggle input[type="checkbox"]:before {
    transition: none;
  }
}

[popover] {
  background: var(--color-surface-raised);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-medium);
  box-shadow: var(--shadow-lg);
  padding: var(--spacing-200);
  min-width: 200px;
  max-width: 320px;
  color: var(--color-text-primary);
  inset: unset;
  margin: 0;
}

.popover-header {
  margin-bottom: var(--spacing-150);
  padding-bottom: var(--spacing-150);
  border-bottom: 1px solid var(--color-border-subtle);
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.popover-title {
  font-size: 1rem;
  font-weight: var(--font-weight-semibold);
  color: var(--color-text-primary);
  margin: 0;
}

.popover-close {
  border-radius: var(--radius-small);
  width: 1.5rem;
  height: 1.5rem;
  color: var(--color-text-tertiary);
  cursor: pointer;
  background: none;
  border: none;
  justify-content: center;
  align-items: center;
  transition: background-color .15s, color .15s;
  display: flex;
}

.popover-close:hover {
  background: var(--color-surface);
  color: var(--color-text-primary);
}

.popover-close:focus-visible {
  outline: var(--spacing-focus-width) solid var(--color-focus);
  outline-offset: var(--spacing-focus-offset);
}

.popover-content {
  color: var(--color-text-primary);
  line-height: var(--line-height-base);
}

.popover-content p {
  margin: 0 0 var(--spacing-150) 0;
}

.popover-content p:last-child {
  margin-bottom: 0;
}

.popover-footer {
  gap: var(--spacing-100);
  margin-top: var(--spacing-200);
  padding-top: var(--spacing-150);
  border-top: 1px solid var(--color-border-subtle);
  display: flex;
}

.popover-footer--end {
  justify-content: flex-end;
}

.popover-footer--space-between {
  justify-content: space-between;
}

.popover--small {
  min-width: 160px;
  max-width: 240px;
  padding: var(--spacing-150);
}

.popover--large {
  min-width: 320px;
  max-width: 480px;
  padding: var(--spacing-300);
}

.popover--full-width {
  width: 100%;
  min-width: auto;
  max-width: none;
}

.popover--info {
  border-color: var(--color-info-border);
  background: color-mix(in srgb, var(--color-info-background) 5%, var(--color-surface-raised));
}

.popover--warning {
  border-color: var(--color-warning-border);
  background: color-mix(in srgb, var(--color-warning-background) 5%, var(--color-surface-raised));
}

.popover--error {
  border-color: var(--color-negative-border);
  background: color-mix(in srgb, var(--color-negative-background) 5%, var(--color-surface-raised));
}

.popover--success {
  border-color: var(--color-positive-border);
  background: color-mix(in srgb, var(--color-positive-background) 5%, var(--color-surface-raised));
}

[popovertarget] {
  cursor: pointer;
}

[popovertarget][aria-expanded="true"] {
  background: var(--color-surface);
  border-color: var(--color-border-emphasis);
}

[popover] .menu {
  box-shadow: none;
  background: none;
  border: none;
  margin: 0;
  padding: 0;
}

@media (width <= 640px) {
  [popover], .popover--large {
    min-width: auto;
    max-width: calc(100vw - 2rem);
  }
}

@media (prefers-contrast: high) {
  [popover] {
    border-width: 2px;
  }
}

.breadcrumb {
  align-items: center;
  gap: var(--spacing-50);
  margin-bottom: var(--spacing-content-gap);
  font-size: .875rem;
  line-height: var(--line-height-compact);
  flex-wrap: wrap;
  display: flex;
}

.breadcrumb-item {
  color: var(--color-text-secondary);
  align-items: center;
  display: flex;
}

.breadcrumb-item:last-child {
  color: var(--color-text-primary);
  font-weight: var(--font-weight-medium);
}

.breadcrumb-item a {
  color: var(--color-text-secondary);
  text-decoration: none;
  transition: color .15s;
}

.breadcrumb-item a:hover {
  color: var(--color-action-background);
  text-decoration: underline;
}

.breadcrumb-item a:focus-visible {
  outline: var(--spacing-focus-width) solid var(--color-focus);
  outline-offset: var(--spacing-focus-offset);
  border-radius: var(--radius-small);
}

.breadcrumb-separator {
  color: var(--color-text-tertiary);
  margin: 0 var(--spacing-75);
  user-select: none;
}

.tab-list {
  border-bottom: 1px solid var(--color-border-default);
  margin-bottom: var(--spacing-content-gap);
  scrollbar-width: none;
  -ms-overflow-style: none;
  display: flex;
  overflow-x: auto;
}

.tab-list::-webkit-scrollbar {
  display: none;
}

.tab {
  align-items: center;
  gap: var(--spacing-75);
  padding: var(--spacing-100) var(--spacing-150);
  color: var(--color-text-secondary);
  font-size: .875rem;
  font-weight: var(--font-weight-medium);
  line-height: var(--line-height-compact);
  cursor: pointer;
  white-space: nowrap;
  background: none;
  border: none;
  border-bottom: 2px solid #0000;
  border-radius: 0;
  text-decoration: none;
  transition: color .15s;
  display: flex;
  position: relative;
}

.tab:hover {
  color: var(--color-text-primary);
}

.tab:focus-visible {
  outline: var(--spacing-focus-width) solid var(--color-focus);
  outline-offset: var(--spacing-focus-offset);
}

.tab[aria-selected="true"], .tab.active {
  color: var(--color-action-background);
  border-bottom-color: var(--color-action-background);
}

.tab[aria-disabled="true"], .tab:disabled {
  color: var(--color-text-disabled);
  cursor: not-allowed;
}

.tab[aria-disabled="true"]:hover, .tab:disabled:hover {
  color: var(--color-text-disabled);
  background: none;
}

.tab-panel {
  outline: none;
}

.tab-panel[hidden] {
  display: none;
}

.tab-list--pills {
  gap: var(--spacing-50);
  background: var(--color-surface);
  padding: var(--spacing-50);
  border-radius: var(--radius-medium);
  border-bottom: none;
}

.tab-list--pills .tab {
  border-radius: var(--radius-small);
  padding: var(--spacing-75) var(--spacing-150);
  border-bottom: none;
}

.tab-list--pills .tab[aria-selected="true"], .tab-list--pills .tab.active {
  background-color: var(--color-surface-raised);
  border: 1px solid var(--color-border-subtle);
  color: var(--color-text-primary);
}

.tab-list--vertical {
  border-bottom: none;
  border-right: 1px solid var(--color-border-default);
  margin-bottom: 0;
  margin-right: var(--spacing-content-gap);
  flex-direction: column;
}

.tab-list--vertical .tab {
  text-align: left;
  border-bottom: none;
  border-right: 2px solid #0000;
  justify-content: flex-start;
}

.tab-list--vertical .tab[aria-selected="true"], .tab-list--vertical .tab.active {
  border-right-color: var(--color-action-background);
}

.pagination {
  justify-content: center;
  align-items: center;
  gap: var(--spacing-50);
  margin: var(--spacing-content-gap) 0;
  font-size: .875rem;
  display: flex;
}

.pagination-item {
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0 var(--spacing-75);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-small);
  background: var(--color-surface-raised);
  color: var(--color-text-primary);
  font-weight: var(--font-weight-medium);
  cursor: pointer;
  user-select: none;
  justify-content: center;
  align-items: center;
  text-decoration: none;
  transition: all .15s;
  display: flex;
}

.pagination-item:hover {
  border-color: var(--color-border-emphasis);
  background: var(--color-surface);
}

.pagination-item:focus-visible {
  outline: var(--spacing-focus-width) solid var(--color-focus);
  outline-offset: var(--spacing-focus-offset);
}

.pagination-item.current, .pagination-item[aria-current="page"] {
  background: var(--color-action-background);
  border-color: var(--color-action-border);
  color: var(--color-action-text);
}

.pagination-item.current:hover, .pagination-item[aria-current="page"]:hover {
  background: var(--color-action-background-hover);
  border-color: var(--color-action-border-hover);
}

.pagination-item:disabled, .pagination-item[aria-disabled="true"] {
  opacity: .5;
  cursor: not-allowed;
  pointer-events: none;
}

.pagination-ellipsis {
  min-width: 2.25rem;
  height: 2.25rem;
  color: var(--color-text-tertiary);
  user-select: none;
  justify-content: center;
  align-items: center;
  display: flex;
}

.pagination--compact {
  gap: 0;
}

.pagination--compact .pagination-item {
  border-right-width: 0;
  border-radius: 0;
}

.pagination--compact .pagination-item:first-child {
  border-radius: var(--radius-small) 0 0 var(--radius-small);
}

.pagination--compact .pagination-item:last-child {
  border-radius: 0 var(--radius-small) var(--radius-small) 0;
  border-right-width: 1px;
}

.pagination--large .pagination-item {
  min-width: 2.75rem;
  height: 2.75rem;
  font-size: 1rem;
}

.pagination--small .pagination-item {
  min-width: 1.75rem;
  height: 1.75rem;
  font-size: .75rem;
}

.pagination--simple {
  justify-content: space-between;
}

.pagination--simple .pagination-item {
  min-width: auto;
  padding: var(--spacing-75) var(--spacing-150);
}

.nav-item {
  align-items: center;
  gap: var(--spacing-75);
  display: flex;
}

.nav-item .icon {
  fill: currentColor;
  width: 1em;
  height: 1em;
}

.spinner {
  border: 2px solid var(--color-border-subtle);
  border-top-color: var(--color-action-background);
  border-radius: var(--radius-full);
  width: 1.5rem;
  height: 1.5rem;
  animation: 1s linear infinite spin;
  display: inline-block;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

.spinner--small {
  border-width: 1.5px;
  width: 1rem;
  height: 1rem;
}

.spinner--large {
  border-width: 3px;
  width: 2rem;
  height: 2rem;
}

.spinner--xl {
  border-width: 4px;
  width: 3rem;
  height: 3rem;
}

.spinner--accent {
  border-top-color: var(--color-action-background);
}

.spinner--primary {
  border-top-color: var(--color-text-primary);
}

.spinner--inverse {
  border-color: #fff #ffffff4d #ffffff4d;
}

.spinner--dots {
  align-items: center;
  gap: var(--spacing-50);
  border: none;
  width: auto;
  height: auto;
  animation: none;
  display: inline-flex;
}

.spinner--dots:before, .spinner--dots:after, .spinner--dots {
  content: "";
  background: var(--color-action-background);
  border-radius: var(--radius-full);
  width: .5rem;
  height: .5rem;
  animation: 1.4s ease-in-out infinite both dot-bounce;
}

.spinner--dots:before {
  animation-delay: -.32s;
}

.spinner--dots:after {
  animation-delay: -.16s;
}

@keyframes dot-bounce {
  0%, 80%, 100% {
    transform: scale(0);
  }

  40% {
    transform: scale(1);
  }
}

.progress {
  background: var(--color-surface);
  border-radius: var(--radius-full);
  width: 100%;
  height: .5rem;
  position: relative;
  overflow: hidden;
}

.progress-bar {
  background: var(--color-action-background);
  border-radius: var(--radius-full);
  min-width: 0;
  height: 100%;
  transition: width .3s;
}

.progress--small {
  height: .25rem;
}

.progress--large {
  height: .75rem;
}

.progress--accent .progress-bar {
  background: var(--color-action-background);
}

.progress--positive .progress-bar {
  background: var(--color-positive-background);
}

.progress--warning .progress-bar {
  background: var(--color-warning-background);
}

.progress--negative .progress-bar {
  background: var(--color-negative-background);
}

.progress--indeterminate .progress-bar {
  animation: 2s linear infinite progress-indeterminate;
  width: 30% !important;
}

@keyframes progress-indeterminate {
  0% {
    transform: translateX(-100%);
  }

  100% {
    transform: translateX(400%);
  }
}

.progress-circle {
  width: 2rem;
  height: 2rem;
  display: inline-block;
  position: relative;
}

.progress-circle svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}

.progress-circle-track {
  fill: none;
  stroke: var(--color-surface);
  stroke-width: 3px;
}

.progress-circle-bar {
  fill: none;
  stroke: var(--color-action-background);
  stroke-width: 3px;
  stroke-linecap: round;
  transition: stroke-dashoffset .3s;
}

.progress-circle--small {
  width: 1.5rem;
  height: 1.5rem;
}

.progress-circle--large {
  width: 3rem;
  height: 3rem;
}

.progress-circle--large .progress-circle-track, .progress-circle--large .progress-circle-bar {
  stroke-width: 4px;
}

.skeleton {
  background: linear-gradient(90deg, var(--color-surface) 25%, var(--color-surface-raised) 50%, var(--color-surface) 75%);
  border-radius: var(--radius-small);
  background-size: 200% 100%;
  animation: 2s ease-in-out infinite skeleton-loading;
}

@keyframes skeleton-loading {
  0% {
    background-position: 200% 0;
  }

  100% {
    background-position: -200% 0;
  }
}

.skeleton--text {
  height: 1em;
  margin: .25em 0;
}

.skeleton--title {
  width: 60%;
  height: 1.5em;
  margin: .5em 0;
}

.skeleton--paragraph {
  height: 1em;
  margin: .25em 0;
}

.skeleton--paragraph:last-child {
  width: 80%;
}

.skeleton--avatar {
  border-radius: var(--radius-full);
  width: 2.5rem;
  height: 2.5rem;
}

.skeleton--avatar--small {
  width: 2rem;
  height: 2rem;
}

.skeleton--avatar--large {
  width: 3rem;
  height: 3rem;
}

.skeleton--button {
  border-radius: var(--radius-medium);
  width: 6rem;
  height: 2.25rem;
}

.skeleton--card {
  border-radius: var(--radius-large);
  height: 8rem;
}

.btn--loading {
  pointer-events: none;
  position: relative;
  color: #0000 !important;
}

.btn--loading:after {
  content: "";
  border-radius: var(--radius-full);
  border: 1.5px solid #ffffff80;
  border-top-color: #ffffffe6;
  width: 1rem;
  height: 1rem;
  margin: -.5rem 0 0 -.5rem;
  animation: 1s linear infinite spin;
  position: absolute;
  top: 50%;
  left: 50%;
}

.btn--accent.btn--loading:after, .btn--primary.btn--loading:after, .btn--negative.btn--loading:after {
  border-color: #ffffffe6 #ffffff80 #ffffff80;
}

.btn--secondary.btn--loading:after, .btn--quiet.btn--loading:after {
  border-color: #000000b3 #0000004d #0000004d;
}

.btn--outline.btn--loading:after {
  border-color: var(--color-action-background);
  border-top-color: #0000;
}

.btn--small.btn--loading:after {
  border-width: 1px;
  width: .75rem;
  height: .75rem;
  margin: -.375rem 0 0 -.375rem;
}

.btn--large.btn--loading:after {
  border-width: 2px;
  width: 1.25rem;
  height: 1.25rem;
  margin: -.625rem 0 0 -.625rem;
}

.loading-overlay {
  backdrop-filter: blur(2px);
  z-index: 9999;
  background: #fffc;
  justify-content: center;
  align-items: center;
  display: flex;
  position: fixed;
  inset: 0;
}

.loading-overlay--dark {
  color: #fff;
  background: #00000080;
}

@media (prefers-reduced-motion: reduce) {
  .spinner, .progress--indeterminate .progress-bar, .skeleton, .btn--loading:after {
    animation: none;
  }

  .spinner--dots:before, .spinner--dots:after, .spinner--dots {
    opacity: .7;
    animation: none;
  }
}

.card {
  background: var(--color-surface-raised);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-large);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

.card-header {
  padding: var(--spacing-container-padding);
  border-bottom: 1px solid var(--color-border-subtle);
  background: var(--color-surface);
}

.card-content {
  padding: var(--spacing-container-padding);
}

.card-footer {
  padding: var(--spacing-container-padding);
  border-top: 1px solid var(--color-border-subtle);
  background: var(--color-surface);
}

.card-title {
  margin: 0 0 var(--spacing-75) 0;
  font-size: 1.125rem;
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-heading);
  color: var(--color-text-primary);
}

.card-subtitle {
  margin: 0 0 var(--spacing-100) 0;
  color: var(--color-text-secondary);
  font-size: .875rem;
  line-height: var(--line-height-compact);
}

.card-description {
  color: var(--color-text-secondary);
  line-height: var(--line-height-base);
  margin: 0;
}

.card-media {
  object-fit: cover;
  border: none;
  width: 100%;
  height: 200px;
  display: block;
}

.card > .card-media:first-child {
  border-radius: var(--radius-large) var(--radius-large) 0 0;
}

.card-media--small {
  height: 120px;
}

.card-media--large {
  height: 280px;
}

.card--compact {
  border-radius: var(--radius-medium);
}

.card--compact .card-header, .card--compact .card-content, .card--compact .card-footer {
  padding: var(--spacing-200);
}

.card--spacious .card-header, .card--spacious .card-content, .card--spacious .card-footer {
  padding: var(--spacing-400);
}

.card--interactive {
  cursor: pointer;
  transition: all .2s;
}

.card--interactive:hover {
  box-shadow: var(--shadow-lg);
  border-color: var(--color-border-default);
  transform: translateY(-2px);
}

.card--interactive:focus-visible {
  outline: var(--spacing-focus-width) solid var(--color-focus);
  outline-offset: var(--spacing-focus-offset);
}

.card--flat {
  box-shadow: none;
  border: 1px solid var(--color-border-default);
}

.card--flat:hover {
  box-shadow: none;
  border-color: var(--color-border-emphasis);
}

.card--outlined {
  border: 2px solid var(--color-border-default);
  box-shadow: none;
  background: none;
}

.card--outlined:hover {
  border-color: var(--color-border-emphasis);
  box-shadow: none;
}

.card-actions {
  gap: var(--spacing-100);
  margin-top: var(--spacing-200);
  display: flex;
}

.card-actions--end {
  justify-content: flex-end;
}

.card-actions--space-between {
  justify-content: space-between;
}

.card-actions--vertical {
  flex-direction: column;
  align-items: stretch;
}

.card-meta {
  align-items: center;
  gap: var(--spacing-100);
  margin-top: var(--spacing-150);
  color: var(--color-text-tertiary);
  font-size: .875rem;
  display: flex;
}

.card-meta .icon {
  fill: currentColor;
  width: 1em;
  height: 1em;
}

.card-badge {
  top: var(--spacing-100);
  right: var(--spacing-100);
  z-index: 1;
  position: absolute;
}

.card--overlay {
  color: var(--color-overlay-text);
  position: relative;
  overflow: hidden;
}

.card--overlay:before {
  content: "";
  background: linear-gradient(to bottom, var(--color-overlay-start) 0%, var(--color-overlay-middle) 50%, var(--color-overlay-end) 100%);
  z-index: 1;
  position: absolute;
  inset: 0;
}

.card--overlay .card-content {
  z-index: 2;
  position: relative;
}

.card--overlay .card-title {
  color: var(--color-overlay-text);
}

.card--overlay .card-description {
  color: color-mix(in srgb, var(--color-overlay-text) 90%, transparent);
}

.card-grid {
  --card-min-width: 280px;
  gap: var(--spacing-content-gap);
  grid-template-columns: repeat(auto-fit, minmax(var(--card-min-width), 1fr));
  display: grid;
}

.card-grid--wide {
  --card-min-width: 320px;
}

.card-grid--narrow {
  --card-min-width: 240px;
}

.card-grid--compact {
  --card-min-width: 200px;
}

@media (width <= 640px) {
  .card-grid {
    grid-template-columns: 1fr;
  }

  .card-actions {
    flex-direction: column;
  }

  .card-actions--space-between {
    gap: var(--spacing-150);
    flex-direction: column;
  }
}

.card--horizontal {
  flex-direction: row;
  align-items: stretch;
  display: flex;
}

.card--horizontal .card-media {
  flex-shrink: 0;
  width: 160px;
  height: auto;
}

.card--horizontal .card-content {
  flex-direction: column;
  flex: 1;
  justify-content: space-between;
  display: flex;
}

@media (width <= 640px) {
  .card--horizontal {
    flex-direction: column;
  }

  .card--horizontal .card-media {
    width: 100%;
    height: 160px;
  }
}

.card--loading {
  pointer-events: none;
}

.card--loading .card-title, .card--loading .card-description {
  background: linear-gradient(90deg, var(--color-surface) 25%, var(--color-surface-raised) 50%, var(--color-surface) 75%);
  color: #0000;
  border-radius: var(--radius-small);
  background-size: 200% 100%;
  animation: 2s ease-in-out infinite skeleton-loading;
}

@media (prefers-reduced-motion: reduce) {
  .card--interactive:hover {
    transform: none;
  }

  .card--loading .card-title, .card--loading .card-description {
    animation: none;
  }
}

.text-display-2xl {
  font-size: var(--font-size-display-2xl);
  line-height: var(--line-height-display);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-tight);
  text-wrap: balance;
}

.text-display-xl {
  font-size: var(--font-size-display-xl);
  line-height: var(--line-height-display);
  font-weight: var(--font-weight-bold);
  letter-spacing: var(--letter-spacing-tight);
  text-wrap: balance;
}

.text-display-lg {
  font-size: var(--font-size-display-lg);
  line-height: var(--line-height-display);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-tight);
  text-wrap: balance;
}

.text-lg {
  font-size: var(--font-size-lg);
  line-height: var(--line-height-body);
}

.text-sm {
  font-size: var(--font-size-sm);
  line-height: var(--line-height-compact);
}

.text-xs {
  font-size: var(--font-size-xs);
  line-height: var(--line-height-compact);
}

.eyebrow {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-semibold);
  letter-spacing: var(--letter-spacing-wide);
  text-transform: uppercase;
  color: var(--color-text-secondary);
  margin-bottom: var(--spacing-75);
}

.lead {
  font-size: var(--font-size-lg);
  line-height: var(--line-height-body);
  color: var(--color-text-secondary);
  max-width: var(--content-max-width);
  text-wrap: pretty;
}

.caption {
  font-size: var(--font-size-xs);
  line-height: var(--line-height-compact);
  color: var(--color-text-tertiary);
}

.form-group {
  margin-block-end: var(--spacing-form-gap);
}

.form-group:last-child {
  margin-block-end: 0;
}

.form-label {
  font-weight: var(--font-weight-medium);
  color: var(--color-text-primary);
  line-height: var(--line-height-heading);
  margin-block-end: var(--spacing-label-margin);
  display: block;
}

.form-label--required:after {
  content: " *";
  color: var(--color-negative-text);
}

.form-input, .form-textarea, .form-select {
  width: 100%;
  padding-block: var(--spacing-input-padding-block);
  padding-inline: var(--spacing-input-padding-inline);
  border: var(--border-width-sm) var(--border-style-solid) var(--color-border-default);
  border-radius: var(--radius-medium);
  background-color: var(--color-surface-raised);
  color: var(--color-text-primary);
  font-family: var(--font-family-base);
  font-size: .875rem;
  line-height: var(--line-height-compact);
  min-height: 2.25rem;
  transition: all .15s;
  display: block;
}

.form-input:focus, .form-textarea:focus, .form-select:focus {
  border-color: var(--color-focus);
  box-shadow: 0 0 0 var(--spacing-focus-width) var(--color-focus-ring);
  outline: none;
}

.form-input:invalid, .form-textarea:invalid, .form-select:invalid {
  border-color: var(--color-negative-border);
}

.form-input::placeholder, .form-textarea::placeholder {
  color: var(--color-text-tertiary);
}

.form-input--small {
  padding-block: var(--spacing-50);
  padding-inline: var(--spacing-100);
  min-height: 1.75rem;
  font-size: .75rem;
}

.form-input--large {
  padding-block: var(--spacing-100);
  padding-inline: var(--spacing-200);
  min-height: 2.75rem;
  font-size: 1rem;
}

.form-textarea {
  resize: vertical;
  min-height: 6rem;
  line-height: var(--line-height-base);
}

.form-textarea--small {
  min-height: 4rem;
}

.form-textarea--large {
  min-height: 8rem;
}

.form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");
  background-position: right var(--spacing-100) center;
  background-repeat: no-repeat;
  background-size: 1.5em 1.5em;
  padding-inline-end: 2.5rem;
}

.form-help {
  color: var(--color-text-secondary);
  font-size: .875rem;
  line-height: var(--line-height-compact);
  margin-block-start: var(--spacing-help-text-margin);
}

.form-help--error {
  color: var(--color-negative-text);
}

.form-help--success {
  color: var(--color-positive-text);
}

.form-input--error, .form-textarea--error, .form-select--error {
  border-color: var(--color-negative-border);
}

.form-input--error:focus, .form-textarea--error:focus, .form-select--error:focus {
  border-color: var(--color-negative-border);
  box-shadow: 0 0 0 var(--spacing-focus-width) var(--color-negative-text);
}

.form-input--success, .form-textarea--success, .form-select--success {
  border-color: var(--color-positive-border);
}

.form-input--success:focus, .form-textarea--success:focus, .form-select--success:focus {
  border-color: var(--color-positive-border);
  box-shadow: var(--shadow-sm), 0 0 0 var(--spacing-focus-width) var(--color-positive-text);
}

.form-row {
  gap: var(--spacing-form-gap);
  grid-template-columns: 1fr;
  display: grid;
}

@media (width >= 640px) {
  .form-row {
    grid-template-columns: repeat(2, 1fr);
  }

  .form-row--3 {
    grid-template-columns: repeat(3, 1fr);
  }
}

.form-row .form-group {
  margin-block-end: 0;
}

.form-actions {
  gap: var(--spacing-150);
  flex-wrap: wrap;
  justify-content: flex-start;
  margin-block-start: var(--spacing-400);
  display: flex;
}

.form-actions--center {
  justify-content: center;
}

.form-actions--end {
  justify-content: flex-end;
}

.form-checkbox, .form-radio {
  align-items: flex-start;
  gap: var(--spacing-100);
  margin-block-end: var(--spacing-200);
  display: flex;
}

.form-checkbox input[type="checkbox"], .form-radio input[type="radio"] {
  flex-shrink: 0;
  width: auto;
  min-height: auto;
  margin: 0;
  margin-block-start: .125rem;
}

.form-checkbox label, .form-radio label {
  font-weight: var(--font-weight-normal);
  cursor: pointer;
  margin: 0;
}

.form-input-group {
  display: flex;
  position: relative;
}

.form-input-group .form-input {
  flex: 1;
}

.form-input-group--with-button .form-input {
  border-right: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.form-input-group--with-button .btn {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
  min-height: 2.25rem;
}

dialog {
  border-radius: var(--radius-large);
  background: var(--color-surface-raised);
  width: fit-content;
  max-width: min(90vw, 480px);
  height: fit-content;
  max-height: min(90vh, 600px);
  color: var(--color-text-primary);
  font-family: var(--font-family-base);
  border: none;
  margin: auto;
  padding: 0;
  position: fixed;
  inset: 0;
  overflow: visible;
  box-shadow: 0 8px 32px #00000026;
}

dialog::backdrop {
  backdrop-filter: blur(4px);
  background: #00000080;
}

dialog[open] {
  flex-direction: column;
  min-height: 0;
  animation: .2s ease-out dialog-show;
  display: flex;
}

@keyframes dialog-show {
  from {
    opacity: 0;
    transform: scale(.95)translateY(-10px);
  }

  to {
    opacity: 1;
    transform: scale(1)translateY(0);
  }
}

.dialog-header {
  padding: var(--spacing-300) var(--spacing-300) 0 var(--spacing-300);
  margin-bottom: var(--spacing-200);
  flex-shrink: 0;
  justify-content: space-between;
  align-items: center;
  display: flex;
}

.dialog-title {
  font-size: 1.25rem;
  font-weight: var(--font-weight-semibold);
  line-height: var(--line-height-heading);
  color: var(--color-text-primary);
  flex: 1;
  margin: 0;
}

.dialog-close {
  margin-left: var(--spacing-200);
  flex-shrink: 0;
}

.dialog-content {
  padding: 0 var(--spacing-300);
  color: var(--color-text-primary);
  line-height: var(--line-height-base);
  flex: auto;
  min-height: 0;
  display: block;
  overflow-y: auto;
}

.dialog-content p {
  margin-bottom: var(--spacing-200);
}

.dialog-content p:last-child {
  margin-bottom: 0;
}

.dialog-actions {
  gap: var(--spacing-150);
  padding: var(--spacing-300);
  margin-top: var(--spacing-200);
  border-top: 1px solid var(--color-border-subtle);
  flex-shrink: 0;
  justify-content: flex-end;
  display: flex;
}

.dialog--small {
  max-width: min(90vw, 320px);
}

.dialog--medium {
  max-width: min(90vw, 480px);
}

.dialog--large {
  max-width: min(90vw, 640px);
}

.dialog--fullscreen {
  max-width: 95vw;
  max-height: 95vh;
}

.dialog--confirmation .dialog-title {
  color: var(--color-text-primary);
}

.dialog--destructive .dialog-title {
  color: var(--color-negative-text);
}

.dialog--destructive .dialog-header {
  border-bottom: 1px solid var(--color-negative-border);
}

.dialog--info .dialog-title {
  color: var(--color-info-text);
}

.dialog--warning .dialog-title {
  color: var(--color-warning-text);
}

.dialog-actions--center {
  justify-content: center;
}

.dialog-actions--start {
  justify-content: flex-start;
}

.dialog-actions--between {
  justify-content: space-between;
}

.dialog-actions--full .btn {
  flex: 1;
}

.dialog-close.btn--icon {
  color: var(--color-text-secondary);
  padding: var(--spacing-50);
  aspect-ratio: 1;
  background: none;
  border: none;
  min-width: auto;
}

.dialog-close.btn--icon:hover {
  background: var(--color-quiet-background-hover);
  color: var(--color-text-primary);
}

.dialog-section {
  margin-bottom: var(--spacing-300);
}

.dialog-section:last-child {
  margin-bottom: 0;
}

.dialog-section h4 {
  font-size: 1rem;
  font-weight: var(--font-weight-medium);
  margin: 0 0 var(--spacing-150) 0;
  color: var(--color-text-primary);
}

.dialog form {
  margin: 0;
}

.dialog .form-group {
  margin-bottom: var(--spacing-200);
}

.dialog .form-group:last-child {
  margin-bottom: 0;
}

@media (width <= 640px) {
  dialog {
    max-width: 95vw;
    max-height: 95vh;
    margin: auto;
  }

  .dialog-header {
    padding: var(--spacing-200) var(--spacing-200) 0 var(--spacing-200);
  }

  .dialog-content {
    padding: 0 var(--spacing-200);
  }

  .dialog-actions {
    padding: var(--spacing-200);
    flex-direction: column;
  }

  .dialog-actions .btn {
    justify-content: center;
    width: 100%;
  }
}

dialog.dialog--closing {
  animation: .15s ease-in forwards dialog-hide;
}

@keyframes dialog-hide {
  from {
    opacity: 1;
    transform: scale(1)translateY(0);
  }

  to {
    opacity: 0;
    transform: scale(.95)translateY(-10px);
  }
}

.icon {
  fill: currentColor;
  stroke: currentColor;
  vertical-align: -.125em;
  flex-shrink: 0;
  width: 1em;
  height: 1em;
  display: inline-block;
}

.icon--xs {
  width: .75em;
  height: .75em;
}

.icon--sm {
  width: .875em;
  height: .875em;
}

.icon--lg {
  width: 1.25em;
  height: 1.25em;
}

.icon--xl {
  width: 1.5em;
  height: 1.5em;
}

.icon--2xl {
  width: 2em;
  height: 2em;
}

.btn--icon {
  position: relative;
}

.btn--icon .icon {
  margin: 0;
}

.btn .icon:first-child:not(:last-child) {
  margin-inline-end: var(--spacing-100);
}

.btn .icon:last-child:not(:first-child) {
  margin-inline-start: var(--spacing-100);
}

.icon--spin {
  animation: 1s linear infinite icon-spin;
}

.icon--pulse {
  animation: 2s ease-in-out infinite icon-pulse;
}

@keyframes icon-spin {
  from {
    transform: rotate(0);
  }

  to {
    transform: rotate(360deg);
  }
}

@keyframes icon-pulse {
  0%, 100% {
    opacity: 1;
  }

  50% {
    opacity: .5;
  }
}

.icon-sprite {
  display: none;
}

.icon use {
  pointer-events: none;
}

.icon--primary {
  color: var(--color-action-background);
}

.icon--secondary {
  color: var(--color-text-secondary);
}

.icon--accent {
  color: var(--color-accent-text);
}

.icon--negative {
  color: var(--color-negative-background);
}

.icon--muted {
  color: var(--color-text-tertiary);
}

.form-group .icon, .dialog-header .icon {
  color: var(--color-text-secondary);
}

.btn--loading {
  pointer-events: none;
}

.btn--loading .icon {
  opacity: 0;
}

.btn--loading:after {
  content: "";
  border: 2px solid #0000;
  border-top-color: currentColor;
  border-radius: 50%;
  width: 1em;
  height: 1em;
  animation: 1s linear infinite icon-spin;
  position: absolute;
}

.table--striped tbody tr:nth-child(2n) {
  background-color: var(--color-surface);
}

.table--striped tbody tr:nth-child(2n):hover {
  background-color: var(--color-surface-raised);
}

.table--bordered {
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-medium);
  overflow: hidden;
}

.table--bordered th, .table--bordered td {
  border-right: 1px solid var(--color-border-subtle);
}

.table--bordered th:last-child, .table--bordered td:last-child {
  border-right: none;
}

.table--compact th, .table--compact td {
  padding: var(--spacing-75) var(--spacing-100);
}

.table--spacious th, .table--spacious td {
  padding: var(--spacing-200) var(--spacing-300);
}

.table--no-hover tbody tr:hover {
  background-color: #0000;
}

.table--fixed {
  table-layout: fixed;
}

.table-wrapper {
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-medium);
  margin-block-end: var(--spacing-content-gap);
  overflow-x: auto;
}

.table-wrapper table {
  min-width: 600px;
  margin-block-end: 0;
}

.table-header--sortable {
  cursor: pointer;
  user-select: none;
  padding-right: var(--spacing-300);
  position: relative;
}

.table-header--sortable:hover {
  background-color: var(--color-surface-raised);
}

.table-header--sortable:after {
  content: "↕";
  right: var(--spacing-100);
  opacity: .5;
  font-size: .75rem;
  position: absolute;
}

.table-header--sortable.sorted-asc:after {
  content: "↑";
  opacity: 1;
}

.table-header--sortable.sorted-desc:after {
  content: "↓";
  opacity: 1;
}

.table-cell--numeric {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.table-cell--actions {
  text-align: right;
  white-space: nowrap;
  width: 1%;
}

.table-cell--actions .btn-group {
  gap: var(--spacing-50);
}

.table-cell--actions .btn {
  padding: var(--spacing-25) var(--spacing-50);
  min-height: auto;
  font-size: .75rem;
}

.table-cell--select {
  text-align: center;
  width: 1%;
}

.table-cell--select input[type="checkbox"] {
  margin: 0;
}

.status {
  align-items: center;
  gap: var(--spacing-50);
  padding: var(--spacing-25) var(--spacing-75);
  border-radius: var(--radius-small);
  font-size: .75rem;
  font-weight: var(--font-weight-medium);
  text-transform: capitalize;
  background-color: var(--status-bg, var(--color-surface));
  color: var(--status-color, var(--color-text-secondary));
  border: var(--status-border, 1px solid var(--color-border-default));
  line-height: 1;
  display: inline-flex;
}

.status--success {
  --status-bg: var(--color-positive-background);
  --status-color: var(--color-action-text);
  --status-border: none;
  --status-dot: var(--color-positive-text);
}

.status--warning {
  --status-bg: var(--color-warning-background);
  --status-color: var(--color-action-text);
  --status-border: none;
  --status-dot: var(--color-warning-text);
}

.status--error {
  --status-bg: var(--color-negative-background);
  --status-color: var(--color-action-text);
  --status-border: none;
  --status-dot: var(--color-negative-text);
}

.status--info {
  --status-bg: var(--color-info-background);
  --status-color: var(--color-action-text);
  --status-border: none;
  --status-dot: var(--color-info-text);
}

.status--neutral {
  --status-bg: var(--color-surface);
  --status-color: var(--color-text-secondary);
  --status-border: 1px solid var(--color-border-default);
  --status-dot: var(--color-text-secondary);
}

.status--small {
  padding: var(--spacing-25) var(--spacing-50);
  font-size: .625rem;
}

.status--large {
  padding: var(--spacing-50) var(--spacing-100);
  font-size: .875rem;
}

.status--with-icon {
  gap: var(--spacing-75);
}

.status .icon {
  width: .75em;
  height: .75em;
}

.status--outline {
  --status-bg: transparent;
}

.status--success.status--outline {
  --status-color: var(--color-positive-text);
  --status-border: 1px solid var(--color-green-600);
}

.status--warning.status--outline {
  --status-color: var(--color-warning-text);
  --status-border: 1px solid var(--color-orange-500);
}

.status--error.status--outline {
  --status-color: var(--color-negative-text);
  --status-border: 1px solid var(--color-negative-border);
}

.status--info.status--outline {
  --status-color: var(--color-info-text);
  --status-border: 1px solid var(--color-cyan-600);
}

.status--dot {
  border-radius: 50%;
  justify-content: center;
  width: .5rem;
  height: .5rem;
  padding: 0;
}

.status--dot:before {
  content: "";
  background-color: var(--status-dot, var(--color-text-secondary));
  border-radius: 50%;
  width: 100%;
  height: 100%;
}

:root {
  --shadow-sm: 0 1px 3px #0000001f, 0 1px 2px #0000003d;
  --shadow-md: 0 3px 6px #00000029, 0 3px 6px #0000003b;
  --shadow-lg: 0 10px 20px #00000030, 0 6px 6px #0000003b;
  --shadow-xl: 0 14px 28px #00000040, 0 10px 10px #00000038;
  --shadow-inset: inset 0 1px 3px #0000001f, inset 0 1px 2px #0000003d;
  --border-width-sm: 1px;
  --border-width-md: 2px;
  --border-width-lg: 3px;
  --border-style-solid: solid;
  --border-style-dashed: dashed;
  --border-style-dotted: dotted;
}
