/* Regional map: design tokens and layout state. */
:root {
  color-scheme: light;
  /* Refined Digital Terroir interface palette. */
  --map-color-accent: #5d8a3c;
  --map-color-accent-strong: #3a5c27;
  --map-color-accent-muted: #9aab8a;
  --map-color-warning: #c17f24;
  --map-color-canvas: #f5f0e8;
  --map-color-paper: #ede8de;
  --map-color-surface: #fffcf7;
  --map-color-surface-bright: #fffdf7;
  --map-color-surface-warm: #fffbf3;
  --map-color-surface-soft: #fcf9f2;
  --map-color-surface-warmer: #fffcf6;
  --map-color-paper-warm: #efe8db;
  --map-color-layer-letter-field: color-mix(in srgb, var(--map-color-paper-warm) 38%, var(--map-color-surface-bright));
  --map-color-ink: #2a231a;
  --map-color-ink-soft: #4a3f34;
  --map-color-ink-muted: #3d362d;
  --map-color-ink-shadow: #2f2a23;
  --map-color-overlay: #211f1b;
  --map-color-bark: #6b5e4e;
  --map-color-bark-line: #6a5e4e;
  --map-color-bark-light: #a09386;
  --map-color-green-deep: #3d6631;
  --map-color-green-attribution: #375d2b;
  --map-color-forest: #254f3c;
  --map-color-contour: #4e4236;
  --map-color-basemap-satellite-land: #4f7049;
  --map-color-basemap-satellite-field: #9a8b57;
  --map-color-basemap-satellite-water: #4b7888;
  --map-color-basemap-streets-land: #dce7d2;
  --map-color-basemap-streets-paper: #f3ede1;
  --map-color-basemap-streets-water: #b9d2dc;
  --map-color-basemap-streets-road: #c69c65;
  --map-color-white: #ffffff;
  --map-color-danger: #7c2d12;
  --map-color-danger-surface: #fef2f2;
  --map-color-danger-border: #fecaca;
  --map-color-neutral-surface: #f0ebe3;
  /* Reused translucent colors keep the feature modules compact and consistent. */
  --map-alpha-line-04: color-mix(in srgb, var(--map-color-bark-line) 4%, transparent);
  --map-alpha-line-05: color-mix(in srgb, var(--map-color-bark-line) 5%, transparent);
  --map-alpha-line-06: color-mix(in srgb, var(--map-color-bark-line) 6%, transparent);
  --map-alpha-line-08: color-mix(in srgb, var(--map-color-bark-line) 8%, transparent);
  --map-alpha-line-10: color-mix(in srgb, var(--map-color-bark-line) 10%, transparent);
  --map-alpha-line-12: color-mix(in srgb, var(--map-color-bark-line) 12%, transparent);
  --map-alpha-line-14: color-mix(in srgb, var(--map-color-bark-line) 14%, transparent);
  --map-alpha-line-15: color-mix(in srgb, var(--map-color-bark-line) 15%, transparent);
  --map-alpha-line-16: color-mix(in srgb, var(--map-color-bark-line) 16%, transparent);
  --map-alpha-line-18: color-mix(in srgb, var(--map-color-bark-line) 18%, transparent);
  --map-alpha-line-20: color-mix(in srgb, var(--map-color-bark-line) 20%, transparent);
  --map-alpha-line-22: color-mix(in srgb, var(--map-color-bark-line) 22%, transparent);
  --map-alpha-line-30: color-mix(in srgb, var(--map-color-bark-line) 30%, transparent);
  --map-alpha-line-34: color-mix(in srgb, var(--map-color-bark-line) 34%, transparent);
  --map-alpha-line-66: color-mix(in srgb, var(--map-color-bark-line) 66%, transparent);
  --map-alpha-accent-08: color-mix(in srgb, var(--map-color-accent) 8%, transparent);
  --map-alpha-accent-10: color-mix(in srgb, var(--map-color-accent) 10%, transparent);
  --map-alpha-accent-12: color-mix(in srgb, var(--map-color-accent) 12%, transparent);
  --map-alpha-accent-18: color-mix(in srgb, var(--map-color-accent) 18%, transparent);
  --map-alpha-accent-38: color-mix(in srgb, var(--map-color-accent) 38%, transparent);
  --map-alpha-accent-50: color-mix(in srgb, var(--map-color-accent) 50%, transparent);
  --map-alpha-surface-42: color-mix(in srgb, var(--map-color-surface) 42%, transparent);
  --map-alpha-surface-44: color-mix(in srgb, var(--map-color-surface) 44%, transparent);
  --map-alpha-surface-54: color-mix(in srgb, var(--map-color-surface) 54%, transparent);
  --map-alpha-surface-58: color-mix(in srgb, var(--map-color-surface) 58%, transparent);
  --map-alpha-surface-62: color-mix(in srgb, var(--map-color-surface) 62%, transparent);
  --map-alpha-surface-72: color-mix(in srgb, var(--map-color-surface) 72%, transparent);
  --map-alpha-surface-80: color-mix(in srgb, var(--map-color-surface) 80%, transparent);
  --map-alpha-surface-82: color-mix(in srgb, var(--map-color-surface) 82%, transparent);
  --map-alpha-surface-bright-78: color-mix(in srgb, var(--map-color-surface-bright) 78%, transparent);
  --map-alpha-surface-warm-68: color-mix(in srgb, var(--map-color-surface-warm) 68%, transparent);
  --map-alpha-paper-warm-95: color-mix(in srgb, var(--map-color-paper-warm) 95%, transparent);
  --map-alpha-canvas-92: color-mix(in srgb, var(--map-color-canvas) 92%, transparent);
  --map-alpha-ink-muted-72: color-mix(in srgb, var(--map-color-ink-muted) 72%, transparent);
  /* Typography retains the compact map density on a documented scale. */
  --map-font-editorial: "EB Garamond", Garamond, Georgia, serif;
  --map-font-ui: "Inter", system-ui, sans-serif;
  --map-type-nano: 0.4375rem;
  --map-type-micro: 0.5rem;
  --map-type-overline: 0.5625rem;
  --map-type-caption: 0.625rem;
  --map-type-meta: 0.6875rem;
  --map-type-small: 0.75rem;
  --map-type-body: 0.8125rem;
  --map-type-control: 0.875rem;
  --map-type-lead: 0.9375rem;
  --map-type-copy: 1rem;
  --map-type-subtitle: 1.0625rem;
  --map-type-title: 1.125rem;
  --map-type-heading-small: 1.25rem;
  --map-type-heading: 1.375rem;
  --map-type-heading-large: 1.4375rem;
  --map-type-display-small: 1.5rem;
  --map-type-display: 1.75rem;
  --map-type-icon-layer-letter: 3.25rem;
  --map-radius-xs: 2px;
  --map-radius-small: 3px;
  --map-radius-control: 4px;
  --map-radius-medium: 6px;
  --map-radius-panel: 7px;
  --map-radius-large: 8px;
  --map-radius-xl: 10px;
  --map-radius-2xl: 12px;
  --map-radius-sheet: 14px;
  --map-radius-modal: 16px;
  --map-radius-pill: 999px;
  --map-radius-round: 50%;
  --map-shadow-surface: 0 1px 3px color-mix(in srgb, var(--map-color-ink-shadow) 8%, transparent);
  --map-shadow-overlay: 0 18px 48px color-mix(in srgb, var(--map-color-ink) 18%, transparent);
  --map-shadow-sheet: 0 -18px 42px color-mix(in srgb, var(--map-color-ink) 18%, transparent);
  --map-shadow-focus: 0 0 0 2px color-mix(in srgb, var(--map-color-accent) 18%, transparent);
  --map-shadow-focus-inverse: inset 0 0 0 2px color-mix(in srgb, var(--map-color-surface-warm) 45%, transparent);
  --map-shadow-selected: inset 3px 0 0 var(--map-color-accent);
  --map-shadow-marker: 0 0 0 3px color-mix(in srgb, var(--map-color-surface) 88%, transparent), 0 0 0 7px color-mix(in srgb, var(--map-color-warning) 24%, transparent), 0 8px 18px color-mix(in srgb, var(--map-color-ink) 22%, transparent);
  --map-shadow-marker-dot: 0 0 0 2px color-mix(in srgb, var(--map-color-surface-bright) 82%, transparent);
  --map-shadow-filter-glyph: 0 6px 0 currentColor;
  --map-shadow-basemap-switch: 0 4px 14px color-mix(in srgb, var(--map-color-ink) 24%, transparent);
  --map-shadow-layer-active: 0 0 0 1px color-mix(in srgb, var(--map-layer-active-border) 38%, transparent), var(--map-shadow-basemap-switch);
  --map-shadow-dialog: 0 18px 50px color-mix(in srgb, var(--map-color-ink) 24%, transparent);
  --map-shadow-tab-selected: inset 0 -2px 0 var(--map-color-accent-strong);
  --map-control-height-compact: 30px;
  --map-control-height: 34px;
  --map-control-height-touch: 44px;
  --map-focus-ring: 2px solid var(--map-color-accent);
  --map-focus-ring-strong: 2px solid var(--map-color-accent-strong);
  --map-focus-offset: 2px;
  --map-motion-quick: 120ms;
  --map-motion-standard: 220ms;
  --map-motion-easing: ease;
  /* Data palettes are centralized even though they are not interface theme. */
  --map-distributor-0: #b85c38;
  --map-distributor-1: #2f7f6d;
  --map-distributor-2: #3f6f9f;
  --map-distributor-3: #c17f24;
  --map-distributor-4: #7c8f35;
  --map-distributor-5: #a24d5f;
  --map-distributor-6: #5f6d7a;
  --map-distributor-7: #8b5e34;
  --map-ingredient-greens: #5d8a3c;
  --map-ingredient-herbs: #2f7f6b;
  --map-ingredient-flowers: #b6803d;
  --map-ingredient-roots: #a85f44;
  --map-ingredient-fruit: #9a6fbd;
  --map-ingredient-mushrooms: #8b7762;
  --map-ingredient-dairy: #6d90a8;
  --map-ingredient-protein: #9c5858;
  --map-ingredient-grain: #b8944f;
  --map-soil-prime: #6aa36f;
  --map-soil-conditional-prime: #b58d45;
  --map-soil-statewide: #8fbd6f;
  --map-soil-not-prime: #737d83;
  --map-soil-limited: #d6b15f;
  --map-soil-low: #bd7a58;
  --map-soil-high-water: #4f9bb8;
  --map-soil-moderate-water: #78b89a;
  --map-soil-low-water: #c59c62;
  --map-soil-hydric: #5f91c4;
  --map-soil-flood-prone: #6aa7bf;
  --map-soil-wetness: #7db7a4;
  --map-soil-well-drained: #a7bd72;
  --map-soil-earthworks-concern: #b87f62;
  --map-soil-earthworks-moderate: #c5a968;
  --map-soil-earthworks-lower: #8fae79;
  --map-soil-ecological-site: #7e9f7a;
  --map-soil-inferred-ecology: #9aa86f;
  --map-soil-unknown: #b8b1a4;
  --map-layer-lime: #d9df6e;
  --map-layer-orange: #f5a957;
  --map-layer-mint: #83cb9f;
  --map-layer-sky: #79b8df;
  --map-layer-sage: #8fbf9f;
  --map-layer-straw: #d2b978;
  --map-layer-blue-gray: #9db8ce;
  --map-layer-sand: #d4c5ad;
  --map-layer-leaf: #8ba275;
  --map-data-vegetation: #6f916f;
  --map-data-season: #decfa4;
  /* Shared cross-border plant-hardiness label palette. */
  --map-hardiness-zone-1b: #4f4a8a;
  --map-hardiness-zone-2a: #425fa8;
  --map-hardiness-zone-2b: #3479ad;
  --map-hardiness-zone-3a: #8ecae6;
  --map-hardiness-zone-3b: #79b8df;
  --map-hardiness-zone-4a: #64a6d8;
  --map-hardiness-zone-4b: #4f94d1;
  --map-hardiness-zone-5a: #83cb9f;
  --map-hardiness-zone-5b: #6fbf8b;
  --map-hardiness-zone-6a: #92d17d;
  --map-hardiness-zone-6b: #b3db75;
  --map-hardiness-zone-7a: #d9df6e;
  --map-hardiness-zone-7b: #efd56a;
  --map-hardiness-zone-8a: #f6bf61;
  --map-hardiness-zone-8b: #f5a957;
  --map-hardiness-zone-9a: #ef9150;
  --map-hardiness-zone-9b: #e87849;
  --map-hardiness-zone-10a: #df6042;
  --map-hardiness-zone-10b: #cf4d3d;
  /* Compatibility aliases for older source-specific selectors. */
  --map-hardiness-usda-3a: var(--map-hardiness-zone-3a);
  --map-hardiness-usda-4a: var(--map-hardiness-zone-4a);
  --map-hardiness-usda-4b: var(--map-hardiness-zone-4b);
  --map-hardiness-usda-5b: var(--map-hardiness-zone-5b);
  --map-hardiness-usda-6a: var(--map-hardiness-zone-6a);
  --map-hardiness-usda-6b: var(--map-hardiness-zone-6b);
  --map-hardiness-usda-7b: var(--map-hardiness-zone-7b);
  --map-hardiness-usda-8a: var(--map-hardiness-zone-8a);
  --map-hardiness-usda-9a: var(--map-hardiness-zone-9a);
  --map-hardiness-canada-1b: var(--map-hardiness-zone-1b);
  --map-hardiness-canada-2a: var(--map-hardiness-zone-2a);
  --map-hardiness-canada-2b: var(--map-hardiness-zone-2b);
  --map-hardiness-canada-3a: var(--map-hardiness-zone-3a);
  --map-hardiness-canada-3b: var(--map-hardiness-zone-3b);
  --map-hardiness-canada-4a: var(--map-hardiness-zone-4a);
  --map-hardiness-canada-4b: var(--map-hardiness-zone-4b);
  --map-hardiness-canada-5a: var(--map-hardiness-zone-5a);
  --map-hardiness-canada-5b: var(--map-hardiness-zone-5b);
  --map-hardiness-canada-6a: var(--map-hardiness-zone-6a);
  --map-hardiness-canada-6b: var(--map-hardiness-zone-6b);
  --map-hardiness-canada-7a: var(--map-hardiness-zone-7a);
  --map-hardiness-canada-7b: var(--map-hardiness-zone-7b);
  /* Compatibility aliases remain while behavior selectors stay stable. */
  --nec-green: var(--map-color-accent);
  --nec-green-dark: var(--map-color-accent-strong);
  --nec-green-light: var(--map-color-accent-muted);
  --nec-amber: var(--map-color-warning);
  --nec-cream: var(--map-color-canvas);
  --nec-paper: var(--map-color-paper);
  --nec-bark: var(--map-color-bark);
  --nec-bark-light: var(--map-color-bark-light);
  --nec-ink: var(--map-color-ink);
  --nec-ink-light: var(--map-color-ink-soft);
  /* Stable layout variables consumed by map and staff-only stylesheets. */
  --nav-height: 44px;
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --scrubber-expanded-base-height: 104px;
  --scrubber-day-detail-base-height: min(276px, 40dvh);
  --scrubber-collapsed-base-height: 40px;
  --scrubber-height: calc(var(--scrubber-expanded-base-height) + var(--safe-bottom));
  --ecoregion-drawer-gap: 8px;
  --ecoregion-drawer-height: min(440px, calc(100dvh - var(--nav-height) - var(--scrubber-height) - 16px));
  --sidebar-width: 320px;
  --sidebar-width-sm: 280px;
  --sidebar-toggle-rail-width: 30px;
  --vendor-sidebar-rail-width: var(--sidebar-toggle-rail-width);
  --vendor-sidebar-toggle-width: var(--sidebar-toggle-rail-width);
  --sidebar-collapsed-width: 0px;
  --sidebar-active-width: 0px;
  --spatial-sidebar-rail-width: var(--sidebar-toggle-rail-width);
  --spatial-sidebar-content-width: clamp(220px, 18vw, 260px);
  --spatial-sidebar-width: calc(var(--spatial-sidebar-content-width) + var(--spatial-sidebar-rail-width));
  --spatial-sidebar-active-width: var(--spatial-sidebar-width);
  --vendor-details-width: clamp(288px, 22vw, 320px);
  --vendor-details-expanded-width: calc(100vw - var(--vendor-results-active-width) - var(--sidebar-active-width) - var(--spatial-sidebar-active-width));
  --vendor-details-active-width: 0px;
  --vendor-results-width: clamp(288px, 24vw, 360px);
  --vendor-results-active-width: var(--vendor-results-width);
  --sidebar-transition: var(--map-motion-standard) var(--map-motion-easing);
}
body.sidebar-collapsed {
  --sidebar-active-width: var(--sidebar-collapsed-width);
  --spatial-sidebar-content-width: clamp(280px, 24vw, 340px);
  --spatial-sidebar-active-width: calc(clamp(280px, 24vw, 340px) + var(--spatial-sidebar-rail-width));
  --vendor-results-active-width: var(--vendor-sidebar-rail-width);
}
body.has-details-open,
body.has-hamlet-parcel-open {
  --spatial-sidebar-content-width: clamp(210px, 16vw, 230px);
  --spatial-sidebar-active-width: calc(clamp(210px, 16vw, 230px) + var(--spatial-sidebar-rail-width));
  --vendor-details-active-width: var(--vendor-details-width);
}
body.spatial-sidebar-collapsed {
  --spatial-sidebar-active-width: var(--spatial-sidebar-rail-width);
}
body.has-details-open.vendor-details-expanded {
  --vendor-details-active-width: var(--vendor-details-expanded-width);
}

body.sidebar-search-open {
  --vendor-results-active-width: var(--vendor-results-width);
}
