/* GENERATED FILE — DO NOT EDIT.
 * Source: batklubb.config.js. Regenerate with tools/gen-tokens.sh.
 * Edits here are overwritten and will not survive review. */

/* Palette */
:root {
  --ink-white: #ffffff;
  --ink-lightest: #fbfbfb;
  --ink-lighter: #f0f0f0;
  --ink-light: #dcdcdc;
  --ink-DEFAULT: #b0b0b0;
  --ink-mid: #8a8a8a;
  --ink-dark: #5a5a5a;
  --ink-darker: #3d3d3d;
  --ink-darkest: #2e2e2e;
  --ink-black: #1a1a1a;
  --blue-light: #b3d4ec;
  --blue-DEFAULT: #8cbcdf;
  --blue-mid: #5e9ed6;
  --blue-dark: #4a7fa5;
  --blue-darker: #1f3d54;
  --yellow-light: #fde34a;
  --yellow-DEFAULT: #fcd501;
  --yellow-dark: #846f00;
  --green-light: #7aaa7d;
  --green-DEFAULT: #548057;
  --green-dark: #3d5e3f;
  --pink-light: #f0c8d9;
  --pink-DEFAULT: #e4a5bf;
  --pink-dark: #a85f7c;
  --red-light: #ffb3ae;
  --red-DEFAULT: #f43b31;
  --red-dark: #b01a12;
}

/* Themes */
[data-theme="dag"] {
  --background: var(--ink-lightest);
  --foreground: var(--ink-darkest);
  --surface: var(--ink-white);
  --surface-raised: var(--ink-lighter);
  --primary: var(--ink-darkest);
  --primary-fg: var(--ink-lightest);
  --secondary: var(--ink-white);
  --secondary-fg: var(--ink-darkest);
  --muted: var(--ink-lighter);
  --muted-fg: var(--ink-dark);
  --accent: var(--blue-DEFAULT);
  --accent-fg: var(--ink-darkest);
  --border: var(--ink-darkest);
  --border-subtle: var(--ink-light);
  --ring: var(--blue-dark);
  --destructive: var(--red-dark);
  --destructive-fg: var(--ink-white);
  --hover: rgba(0, 0, 0, 0.05);
  --active: rgba(0, 0, 0, 0.09);
  --radius: 0.25rem;
  --shadow: 1px 2px 2px rgb(0 0 0 / 0.08), 2px 4px 4px rgb(0 0 0 / 0.06);
  --shadow-elevated: 1px 2px 2px rgb(0 0 0 / 0.1), 2px 4px 4px rgb(0 0 0 / 0.1), 4px 8px 8px rgb(0 0 0 / 0.1), 8px 16px 16px rgb(0 0 0 / 0.1);
  --wash: var(--blue-DEFAULT);
  --wash-fg: var(--ink-darkest);
  --wash-feature: var(--yellow-DEFAULT);
  --wash-feature-fg: var(--ink-darkest);
  --illustration-blend: multiply;
  --illustration-filter: none;
}

[data-theme="natt"] {
  --background: var(--ink-black);
  --foreground: var(--ink-lighter);
  --surface: var(--ink-darkest);
  --surface-raised: var(--ink-darker);
  --primary: var(--ink-lightest);
  --primary-fg: var(--ink-black);
  --secondary: var(--ink-darker);
  --secondary-fg: var(--ink-lighter);
  --muted: var(--ink-darker);
  --muted-fg: var(--ink-DEFAULT);
  --accent: var(--blue-DEFAULT);
  --accent-fg: var(--ink-black);
  --border: var(--ink-DEFAULT);
  --border-subtle: var(--ink-dark);
  --ring: var(--blue-mid);
  --destructive: var(--red-light);
  --destructive-fg: var(--ink-black);
  --hover: rgba(255, 255, 255, 0.06);
  --active: rgba(255, 255, 255, 0.1);
  --radius: 0.25rem;
  --shadow: 1px 2px 2px rgb(0 0 0 / 0.5), 2px 4px 4px rgb(0 0 0 / 0.4);
  --shadow-elevated: 1px 2px 2px rgb(0 0 0 / 0.5), 2px 4px 4px rgb(0 0 0 / 0.5), 4px 8px 8px rgb(0 0 0 / 0.5), 8px 16px 16px rgb(0 0 0 / 0.5);
  --wash: var(--blue-darker);
  --wash-fg: var(--ink-lighter);
  --wash-feature: var(--yellow-dark);
  --wash-feature-fg: var(--ink-lightest);
  --illustration-blend: screen;
  --illustration-filter: invert(1);
}

/* Fluid type & space */
:root {
  --txt-4: clamp(3.552rem, 2.8756rem + 3.382vw, 5.4967rem);
  --txt-3: clamp(2.6647rem, 2.2394rem + 2.1264vw, 3.8873rem);
  --txt-2: clamp(1.999rem, 1.7381rem + 1.3046vw, 2.7492rem);
  --txt-1: clamp(1.4996rem, 1.345rem + 0.7733vw, 1.9443rem);
  --txt-0: clamp(1.125rem, 1.038rem + 0.4348vw, 1.375rem);
  --txt--1: clamp(0.844rem, 0.7993rem + 0.2234vw, 0.9724rem);
  --txt--2: clamp(0.6331rem, 0.6141rem + 0.0949vw, 0.6877rem);
  --sp--2: clamp(0.5rem, 0.4565rem + 0.2174vw, 0.625rem);
  --sp--1: clamp(0.75rem, 0.6848rem + 0.3261vw, 0.9375rem);
  --sp-0: clamp(1rem, 0.913rem + 0.4348vw, 1.25rem);
  --sp-1: clamp(1.5rem, 1.3696rem + 0.6522vw, 1.875rem);
  --sp-2: clamp(2rem, 1.8261rem + 0.8696vw, 2.5rem);
  --sp-3: clamp(3rem, 2.7391rem + 1.3043vw, 3.75rem);
  --sp-4: clamp(4rem, 3.6522rem + 1.7391vw, 5rem);
  --sp-5: clamp(6rem, 5.4783rem + 2.6087vw, 7.5rem);
  --sp--2-1: clamp(0.5rem, 0.3478rem + 0.7609vw, 0.9375rem);
  --sp--1-0: clamp(0.75rem, 0.5761rem + 0.8696vw, 1.25rem);
  --sp-0-1: clamp(1rem, 0.6957rem + 1.5217vw, 1.875rem);
  --sp-1-2: clamp(1.5rem, 1.1522rem + 1.7391vw, 2.5rem);
  --sp-2-3: clamp(2rem, 1.3913rem + 3.0435vw, 3.75rem);
  --sp-3-4: clamp(3rem, 2.3043rem + 3.4783vw, 5rem);
  --sp-4-5: clamp(4rem, 2.7826rem + 6.087vw, 7.5rem);
}

/* Static micro-spacing */
:root {
  /* Micro-spacing — below the fluid scale */
  --space-px: 1px;
  --space-0-5: 0.125rem;
  --space-1: 0.25rem;
  --space-1-5: 0.375rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;

  /* Component spacing — used by core components */
  --btn-padding-block: var(--space-2);
  --btn-padding-inline: var(--space-3);
  --btn-padding-block-sm: var(--space-1);
  --btn-padding-inline-sm: var(--space-2);
  --btn-padding-block-lg: var(--space-2);
  --btn-padding-inline-lg: 1.5rem;
  --btn-gap: var(--space-1-5);
  --input-padding-block: var(--space-2);
  --input-padding-inline: var(--space-3);
  --badge-padding-block: var(--space-0-5);
  --badge-padding-inline: var(--space-1-5);
  --menu-item-padding-block: var(--space-1);
  --menu-item-padding-inline: var(--space-2);
  --card-padding: var(--sp-1);
  --cell-padding-block: var(--space-2);
  --cell-padding-inline: var(--space-3);
  --stack-gap: var(--space-1-5);
  --inline-gap: var(--space-1);
  --field-gap: var(--space-2);

  /* Structural — used by core components */
  --radius-sm: 0.1875rem;
  --radius-full: 9999px;
  --border-width: 1px;
  --ring-width: 2px;
  --ring-offset: 2px;
  --disabled-opacity: 0.5;

  /* Weights */
  --weight-normal: 400;
  --weight-medium: 500;
  --weight-semibold: 600;

  /* Control sizes */
  --control-height: 2.25rem;
  --control-height-sm: 1.75rem;
  --control-height-lg: 2.75rem;
  --indicator-size: 1rem;
  --thumb-size: 1.25rem;
}

/* Scale aliases */
:root {
  --measure: 62ch;
  --grid-max-width: 72rem;
  --lead: 1.65;
  --lead-tight: 1.05;
  --border-width: 3px;
  --hairline: 1px;
  --tracking: 0.025em;
  --tracking-tight: 0;
}

/* Typography */
:root {
  --font-serif: 'Serrif', 'Iowan Old Style', Georgia, 'Times New Roman', serif;
  --font-sans: -apple-system, BlinkMacSystemFont, "avenir next", avenir, "segoe ui", "helvetica neue", helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;
  --family-body: var(--font-serif);
  --family-heading: var(--font-serif);
  --family-label: var(--font-serif);
  --family-code: var(--font-mono);
}

/* Static tokens */
:root {

}

/* Globals */
/* Global helpers */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border-width: 0;
}

.text-balance {
  text-wrap: balance;
}

.flow > * + * {
  margin-block-start: var(--flow-space, var(--sp-0-1));
}

.stack {
  display: flex;
  flex-direction: column;
  gap: var(--stack-space, var(--sp-0-1));
}

@media (prefers-contrast: more) {
  :root {
    --border-width: 2px;
    --border-subtle: var(--border);
    --disabled-opacity: 0.7;
  }
}

@media print {
  * {
    box-shadow: none !important;
    text-shadow: none !important;
  }
  body {
    background: white;
    color: black;
  }
  [data-dialog-overlay],
  [data-sheet-overlay],
  [data-dropdown-menu-content],
  [data-context-menu-content],
  [data-tooltip-content] {
    display: none !important;
  }
}
/* Default theme — appended by tools/gen-tokens.sh.
 * batklubb emits [data-theme] blocks only, and nothing sets that
 * attribute server-side. Without this, a visitor who has expressed no
 * preference gets no theme at all. */
:root:not([data-theme]) {
  --background: var(--ink-lightest);
  --foreground: var(--ink-darkest);
  --surface: var(--ink-white);
  --surface-raised: var(--ink-lighter);
  --primary: var(--ink-darkest);
  --primary-fg: var(--ink-lightest);
  --secondary: var(--ink-white);
  --secondary-fg: var(--ink-darkest);
  --muted: var(--ink-lighter);
  --muted-fg: var(--ink-dark);
  --accent: var(--blue-DEFAULT);
  --accent-fg: var(--ink-darkest);
  --border: var(--ink-darkest);
  --border-subtle: var(--ink-light);
  --ring: var(--blue-dark);
  --destructive: var(--red-dark);
  --destructive-fg: var(--ink-white);
  --hover: rgba(0, 0, 0, 0.05);
  --active: rgba(0, 0, 0, 0.09);
  --radius: 0.25rem;
  --shadow: 1px 2px 2px rgb(0 0 0 / 0.08), 2px 4px 4px rgb(0 0 0 / 0.06);
  --shadow-elevated: 1px 2px 2px rgb(0 0 0 / 0.1), 2px 4px 4px rgb(0 0 0 / 0.1), 4px 8px 8px rgb(0 0 0 / 0.1), 8px 16px 16px rgb(0 0 0 / 0.1);
  --wash: var(--blue-DEFAULT);
  --wash-fg: var(--ink-darkest);
  --wash-feature: var(--yellow-DEFAULT);
  --wash-feature-fg: var(--ink-darkest);
  --illustration-blend: multiply;
  --illustration-filter: none;
}

/* OS colour-scheme bridge — appended by tools/gen-tokens.sh.
 * Applies the night theme when the visitor prefers dark and has not
 * chosen explicitly. An explicit data-theme always wins. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="dag"]) {
  --background: var(--ink-black);
  --foreground: var(--ink-lighter);
  --surface: var(--ink-darkest);
  --surface-raised: var(--ink-darker);
  --primary: var(--ink-lightest);
  --primary-fg: var(--ink-black);
  --secondary: var(--ink-darker);
  --secondary-fg: var(--ink-lighter);
  --muted: var(--ink-darker);
  --muted-fg: var(--ink-DEFAULT);
  --accent: var(--blue-DEFAULT);
  --accent-fg: var(--ink-black);
  --border: var(--ink-DEFAULT);
  --border-subtle: var(--ink-dark);
  --ring: var(--blue-mid);
  --destructive: var(--red-light);
  --destructive-fg: var(--ink-black);
  --hover: rgba(255, 255, 255, 0.06);
  --active: rgba(255, 255, 255, 0.1);
  --radius: 0.25rem;
  --shadow: 1px 2px 2px rgb(0 0 0 / 0.5), 2px 4px 4px rgb(0 0 0 / 0.4);
  --shadow-elevated: 1px 2px 2px rgb(0 0 0 / 0.5), 2px 4px 4px rgb(0 0 0 / 0.5), 4px 8px 8px rgb(0 0 0 / 0.5), 8px 16px 16px rgb(0 0 0 / 0.5);
  --wash: var(--blue-darker);
  --wash-fg: var(--ink-lighter);
  --wash-feature: var(--yellow-dark);
  --wash-feature-fg: var(--ink-lightest);
  --illustration-blend: screen;
  --illustration-filter: invert(1);
  }
}
