:root {
  /* Colors — dark default; light via html.theme-light */
  --color-surface: #2c2a26;
  --color-header-surface: var(--color-surface);
  --color-surface-soft: #383530;
  --color-text: #f1f5f9;
  --color-text-muted: rgba(255, 255, 255, 0.45);
  --color-primary: #e8e4df;
  --color-primary-on: #1c1917;
  --color-success: #4ade80;
  --color-warning: #f59e0b;
  --color-danger: #f87171;
  --color-border: rgba(255, 255, 255, 0.1);
  --color-brand-logo: #ffffff;

  /* Spacing */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;

  /* Layout */
  --header-height: 56px;
  --header-brand-logo-height: 22px;
  --z-header: 100;
  --content-max-width: 1300px;
  --page-padding-x: var(--space-4);

  /* Component sizes — canonical; see docs/component-sizes.md */
  --control-height-md: 36px;
  --plaque-control-height: 32px;
  --plaque-label-width: 7.5rem;
  --plaque-label-width-wide: 10rem;
  --plaque-seg-gap: 5px;
  --plaque-chevron-size: 10px;
  --plaque-select-text-gap: 17px;
  --plaque-chevron-inset: calc(var(--space-2) + var(--plaque-seg-gap));
  --plaque-select-trail: calc(var(--plaque-chevron-inset) + var(--plaque-select-text-gap));
  --plaque-chevron-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23f1f5f9' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --icon-size-md: 18px;
  --input-min-width: 200px;
  --panel-dot-gap: 5px;
  --panel-dot-size: 8px;
  --panel-action-size: 28px;
  --panel-action-gap: 2px;
  --lang-label-font-size: 8px;
  --lang-label-inset: 5px;

  /* Shape & motion */
  --radius-sm: 8px;
  --radius-md: 12px;
  --duration-fast: 120ms;
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);

  /* Typography */
  --font-sans: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
  --font-size-base: 1rem;
  --font-size-sm: 0.875rem;
  --font-size-xs: 0.6875rem;

  /* Interactive surfaces */
  --hover-bg: rgba(255, 255, 255, 0.08);
}

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

body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--font-size-base);
  line-height: 1.5;
  color: var(--color-text);
  background: var(--color-surface);
}

html.theme-light {
  --plaque-chevron-glyph: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%231c1917' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --color-surface: #f2f2f2;
  --color-surface-soft: #ebebeb;
  --color-header-surface: #fafafa;
  --color-text: #1c1917;
  --color-text-muted: rgba(28, 25, 23, 0.55);
  --color-border: rgba(28, 25, 23, 0.12);
  --color-primary: #2c2a26;
  --color-primary-on: #f1f5f9;
  --color-warning: #b45309;
  --color-brand-logo: #1c1917;
  --hover-bg: rgba(28, 25, 23, 0.06);
}
