:root {
    --color-chicory: #6c8dbf;
    --color-chicory-soft: #9ab5d9;
    --color-forest-900: #1d241d;
    --color-forest-800: #243024;
    --color-forest-700: #314431;
    --color-cream-100: #f4efe5;
    --color-cream-200: #e8dfcc;
    --color-text: #1d1f1d;
    --color-text-soft: #526052;
    --shadow-soft: 0 8px 24px rgba(16, 24, 16, 0.18);
    --radius-md: 0.75rem;
    --radius-lg: 1rem;
    --sidebar-width: 18rem;

    --page-bg: var(--color-cream-100);
    --page-gradient-start: #f6f2e8;
    --page-gradient-end: #ede5d5;

    --card-bg: rgba(255, 255, 255, 0.7);
    --card-bg-second: rgba(225, 225, 225, 0.7);
    --card-border: rgba(49, 68, 49, 0.15);

    --surface-panel: rgba(255, 255, 255, 0.72);
    --surface-panel-border: rgba(49, 68, 49, 0.16);
    --table-header-bg: rgba(255, 255, 255, 0.6);
    --table-row-hover: rgba(255, 255, 255, 0.6);
    --table-border: rgba(49, 68, 49, 0.12);
    --table-header-text: rgba(82, 96, 82, 0.85);
    --chip-bg: rgba(108, 141, 191, 0.12);
    --chip-border: rgba(108, 141, 191, 0.35);
    --chip-text: var(--color-text);

    --input-bg: rgba(255, 255, 255, 0.85);
    --input-border: rgba(49, 68, 49, 0.22);

    --sidebar-border: rgba(255, 255, 255, 0.08);
    --sidebar-divider: rgba(255, 255, 255, 0.12);
    --sidebar-heading: rgba(255, 255, 255, 0.55);
    --sidebar-link: rgba(244, 239, 229, 0.92);
    --sidebar-footer: rgba(255, 255, 255, 0.65);
    --sidebar-footer-border: rgba(255, 255, 255, 0.09);

    --sidebar-bg: var(--color-forest-900);
    --sidebar-text: var(--color-cream-100);
    --sidebar-mark-bg: var(--color-forest-700);

    --overlay-bg: rgba(0, 0, 0, 0.45);

    --btn-primary-text: #f7fafc;
    --btn-primary-hover: #5d7dac;

    --map-bg: #eef2e6;
    --popup-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
    --control-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
}

:root[data-theme='dark'] {
    --page-bg: var(--color-forest-900);
    --page-gradient-start: var(--color-forest-900);
    --page-gradient-end: var(--color-forest-800);

    --color-text: var(--color-cream-100);
    --color-text-soft: rgba(244, 239, 229, 0.72);

    --card-bg: rgba(36, 48, 36, 0.78);
    --card-bg-second: rgba(44, 63, 44, 0.85);
    --card-border: rgba(154, 181, 217, 0.18);

    --surface-panel: rgba(29, 36, 29, 0.7);
    --surface-panel-border: rgba(154, 181, 217, 0.2);
    --table-header-bg: rgba(36, 48, 36, 0.75);
    --table-row-hover: rgba(36, 48, 36, 0.7);
    --table-border: rgba(154, 181, 217, 0.12);
    --table-header-text: rgba(244, 239, 229, 0.75);
    --chip-bg: rgba(108, 141, 191, 0.2);
    --chip-border: rgba(154, 181, 217, 0.5);
    --chip-text: var(--color-cream-100);

    --input-bg: rgba(29, 36, 29, 0.55);
    --input-border: rgba(154, 181, 217, 0.25);

    --sidebar-bg: var(--color-forest-700);
    --sidebar-mark-bg: var(--color-forest-900);

    --map-bg: var(--color-forest-800);
    --popup-shadow: 0 6px 18px rgba(0, 0, 0, 0.5);
    --control-shadow: 0 4px 14px rgba(0, 0, 0, 0.45);
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
}

body {
    margin: 0;
    color: var(--color-text);
    background: var(--page-bg);
    font-family: 'DM Sans', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    line-height: 1.6;
}

img {
    max-width: 100%;
}

a {
    color: inherit;
    text-decoration: none;
}

h1,
h2,
h3 {
    font-family: 'Cormorant Garamond', Georgia, serif;
    line-height: 1.15;
    margin: 0;
}

p {
    margin: 0;
}

.flow > * + * {
    margin-top: 1rem;
}

.eyebrow {
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-size: 0.72rem;
    color: var(--color-chicory-soft);
}
