:root {
  /* Typography */
  --font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --font-base: var(--font-sans);

  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-base: 1rem;
  --text-md: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.375rem;
  --text-2xl: 1.75rem;

  /* Spacing */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.25rem;
  --space-6: 1.5rem;
  --space-8: 2rem;
  --space-10: 2.5rem;

  /* Radius & elevation */
  --radius-md: 0.625rem;
  --radius-lg: 0.875rem;
  --radius-xl: 1rem;
  --shadow-sm: 0 1px 2px rgba(23, 32, 24, 0.08);
  --shadow-md: 0 10px 30px rgba(23, 32, 24, 0.12);
  --shadow-lg: 0 14px 40px rgba(23, 32, 24, 0.16);

  /* Shell layout */
  --topbar-height: 56px;
  --left-rail-width: 76px;
  --map-context-panel-width: 400px;
  --sidebar-width: 320px;
  --inspector-width: 360px;
  --inspector-width-wide: 440px;
  --bottom-bar-height: 36px;
  --control-height: 44px;
  --map-control-size: 40px;

  /* Core palette */
  --color-bg: #f7f8f5;
  --color-surface: #ffffff;
  --color-surface-muted: #f1f5ef;
  --color-border: #d7ded2;
  --color-border-strong: #aeb9a6;

  --color-text: #172018;
  --color-text-muted: #5f6b5a;
  --color-text-soft: #7d8877;
  --color-muted: var(--color-text-muted);

  --color-primary: #2f6b3f;
  --color-primary-hover: #255632;
  --color-primary-dark: #255632;
  --color-primary-soft: #e2efe4;

  --color-accent: #b7791f;
  --color-accent-soft: #fff3d8;

  --color-danger: #b42318;
  --color-danger-soft: #fde7e4;

  --color-warning: #b86e00;
  --color-warning-soft: #fff1d6;

  --color-info: #2563a6;
  --color-info-soft: #e4f0fa;

  --color-success: #2f6b3f;
  --color-success-soft: #e2efe4;

  /* Map object colors */
  --map-property-boundary: #c73659;
  --map-field-active: #1a7a3a;
  --map-field-draft: #b7791f;
  --map-field-selected: #1d5fbf;
  --map-field-inactive: #8a9484;
  --map-observation-open: #b42318;
  --map-observation-note: #2563a6;
  --map-observation-resolved: #5f6b5a;
  --map-observation-todo: #2f6b3f;
  --map-observation-poi: #2563a6;
  --map-observation-issue: #b86e00;
  --map-observation-historic: #6b5b95;
  --map-observation-danger: #b42318;
  --map-observation-other: #5f6b5a;
}
