:root {
    color-scheme: light;
    font-size: 14px;

    --z-font-sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --z-font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace;

    /* Mint Green foundations */
    --z-bg-page: #e6f1ec;
    --z-bg-shell: #e6f1ec;
    --z-bg-sidebar: #dcece5;
    --z-bg-header: rgba(220, 236, 229, 0.96);
    --z-bg-surface: #f7fbf9;
    --z-bg-surface-soft: #f0f7f3;
    --z-bg-surface-muted: #e8f2ed;
    --z-bg-surface-elevated: #fbfdfc;
    --z-bg-surface-overlay: #f9fcfa;
    --z-bg-surface-table-header: #e8f2ed;
    --z-bg-surface-hover: #e2f1e9;
    --z-bg-surface-selected: #cfebdd;
    --z-bg-surface-grouped: var(--z-bg-surface-selected);
    --z-bg-surface-disabled: #edf1ef;
    --z-bg-overlay: rgba(16, 29, 24, 0.48);

    --z-text-primary: #17231f;
    --z-text-secondary: #40524a;
    --z-text-muted: #61736b;
    --z-text-subtle: #788780;
    --z-text-disabled: #8a9892;
    --z-text-inverse: #ffffff;
    --z-text-display: #17231f;
    --z-text-page-title: #1c2a25;
    --z-text-section-title: #23332d;
    --z-text-panel-title: #293a33;
    --z-text-heading: var(--z-text-section-title);
    --z-text-body: var(--z-text-secondary);
    --z-text-label: #31443b;
    --z-text-metadata: var(--z-text-muted);
    --z-text-caption: var(--z-text-subtle);

    --z-border-subtle: #d4e2db;
    --z-border-default: #bfcfc7;
    --z-border-strong: #8fa89c;
    --z-divider: #d4e2db;

    --z-primary-50: #e9f8f1;
    --z-primary-100: #d0efdf;
    --z-primary-200: #a5dfc3;
    --z-primary-300: #70caa2;
    --z-primary-400: #3aad7d;
    --z-primary-500: #159466;
    --z-primary-600: #0c7751;
    --z-primary-700: #0b6043;
    --z-primary-800: #0c4d38;
    --z-primary-900: #0a3f30;
    --z-primary: #147a57;
    --z-primary-hover: #0f6548;
    --z-primary-active: #0c4d38;
    --z-primary-text: #ffffff;
    --z-primary-soft: var(--z-primary-50);
    --z-primary-selected: var(--z-primary-100);

    --z-success: #18794e;
    --z-success-soft: #e8f6ed;
    --z-success-border: #b9dfc8;
    --z-warning: #9a6500;
    --z-warning-soft: #fff5dd;
    --z-warning-border: #ebd08d;
    --z-error: #b42335;
    --z-error-soft: #fcebed;
    --z-error-border: #edbbc0;
    --z-info: #1e64a3;
    --z-info-soft: #eaf3f9;
    --z-info-border: #b8d5e7;
    --z-neutral: #596b63;
    --z-neutral-soft: #eef2f0;
    --z-neutral-border: #d2ddd7;

    --z-focus-color: #278060;
    --z-focus-ring: 0 0 0 3px rgba(39, 128, 96, 0.24);
    --z-input-surface: var(--z-bg-surface);
    --z-input-surface-hover: #f2f8f5;
    --z-input-border: var(--z-border-default);
    --z-input-border-hover: var(--z-border-strong);
    --z-input-focus-border: var(--z-focus-color);
    --z-input-focus-ring: var(--z-focus-ring);
    --z-input-text: var(--z-text-primary);
    --z-shadow-none: none;
    --z-shadow-card: 0 1px 2px rgba(23, 47, 37, 0.05);
    --z-shadow-card-hover: 0 2px 4px rgba(23, 47, 37, 0.06), 0 8px 20px rgba(23, 47, 37, 0.07);
    --z-shadow-control: 0 1px 2px rgba(16, 55, 39, 0.12);
    --z-shadow-popover: 0 16px 42px rgba(23, 47, 37, 0.15);
    --z-shadow-dialog: 0 28px 72px rgba(23, 47, 37, 0.21);

    /* Compatibility aliases: legacy components resolve through the semantic contract. */
    --z-color-brand: var(--z-primary);
    --z-color-brand-hover: var(--z-primary-hover);
    --z-color-brand-active: var(--z-primary-active);
    --z-color-primary: var(--z-primary);
    --z-color-primary-soft: var(--z-primary-soft);
    --z-color-accent: var(--z-primary-500);
    --z-color-secondary-accent: #2f6f9f;
    --z-color-background: var(--z-bg-page);
    --z-color-surface: var(--z-bg-surface);
    --z-color-surface-subtle: var(--z-bg-surface-soft);
    --z-color-surface-muted: var(--z-bg-surface-muted);
    --z-color-surface-elevated: var(--z-bg-surface-elevated);
    --z-color-border: var(--z-border-default);
    --z-color-border-strong: var(--z-border-strong);
    --z-color-text: var(--z-text-primary);
    --z-color-text-secondary: var(--z-text-secondary);
    --z-color-text-muted: var(--z-text-muted);
    --z-color-danger: var(--z-error);
    --z-color-danger-surface: var(--z-error-soft);
    --z-color-danger-border: var(--z-error-border);
    --z-color-success: var(--z-success);
    --z-color-success-surface: var(--z-success-soft);
    --z-color-success-border: var(--z-success-border);
    --z-color-warning: var(--z-warning);
    --z-color-warning-surface: var(--z-warning-soft);
    --z-color-warning-border: var(--z-warning-border);
    --z-color-info: var(--z-info);
    --z-color-info-surface: var(--z-info-soft);
    --z-color-info-border: var(--z-info-border);
    --z-color-neutral: var(--z-neutral);
    --z-color-neutral-surface: var(--z-neutral-soft);
    --z-color-neutral-border: var(--z-neutral-border);
    --z-color-focus: var(--z-focus-color);

    --z-space-1: 0.25rem;
    --z-space-2: 0.5rem;
    --z-space-3: 0.75rem;
    --z-space-4: 1rem;
    --z-space-5: 1.25rem;
    --z-space-6: 1.5rem;
    --z-space-8: 2rem;
    --z-space-10: 2.5rem;
    --z-space-12: 3rem;
    --z-space-16: 4rem;
    --z-space-20: 5rem;
    --z-font-size-xs: 12px;
    --z-font-size-sm: 13px;
    --z-font-size-md: 14px;
    --z-font-size-lg: 16px;
    --z-font-size-xl: 18px;
    --z-font-size-2xl: 22px;
    --z-font-size-3xl: 28px;
    --z-type-display-size: 32px;
    --z-type-workspace-size: 28px;
    --z-type-section-size: 20px;
    --z-type-card-size: 16px;
    --z-type-dialog-size: 20px;
    --z-type-body-size: 15px;
    --z-type-compact-body-size: 13px;
    --z-type-label-size: 13px;
    --z-type-helper-size: 12px;
    --z-type-metadata-size: 12px;
    --z-type-table-header-size: 11px;
    --z-type-badge-size: 11px;
    --z-type-button-size: 13px;
    --z-type-eyebrow-size: 11px;
    --z-line-height-tight: 1.2;
    --z-line-height-body: 1.55;
    --z-radius-sm: 0.5rem;
    --z-radius-md: 0.75rem;
    --z-radius-lg: 1rem;
    --z-radius-xl: 1.25rem;
    --z-shadow-xs: 0 1px 2px rgba(23, 35, 30, 0.04);
    --z-shadow-sm: var(--z-shadow-card);
    --z-shadow-md: var(--z-shadow-popover);
    --z-shadow-lg: var(--z-shadow-dialog);
    --z-shadow-xl: var(--z-shadow-dialog);
    --z-transition-fast: 140ms ease;
    --z-transition-normal: 220ms ease;
    --z-grid-gap: var(--z-space-4);
    --z-content-max: 96rem;
    --z-control-height: 2.75rem;
    --z-header-height: 4.5rem;
    --z-sidebar-width: 16.5rem;
    --z-z-dropdown: 40;
    --z-z-sticky: 50;
    --z-z-dialog: 100;
    --z-z-toast: 120;
}

html[data-theme="dark"] {
    color-scheme: dark;

    /* Slate Dark foundations */
    --z-bg-page: #111a18;
    --z-bg-shell: #111a18;
    --z-bg-sidebar: #16211e;
    --z-bg-header: rgba(22, 33, 30, 0.96);
    --z-bg-surface: #202d29;
    --z-bg-surface-soft: #25332f;
    --z-bg-surface-muted: #2a3934;
    --z-bg-surface-elevated: #2c3b36;
    --z-bg-surface-overlay: #24312d;
    --z-bg-surface-table-header: #293833;
    --z-bg-surface-hover: #30433c;
    --z-bg-surface-selected: #245040;
    --z-bg-surface-grouped: var(--z-bg-surface-soft);
    --z-bg-surface-disabled: #26302d;
    --z-bg-overlay: rgba(0, 0, 0, 0.68);

    --z-text-primary: #bdccc5;
    --z-text-secondary: #b5c5be;
    --z-text-muted: #91a49b;
    --z-text-subtle: #82958c;
    --z-text-disabled: #6f8179;
    --z-text-inverse: #102019;
    --z-text-display: #eef5f2;
    --z-text-page-title: #eef5f2;
    --z-text-section-title: #d5e0db;
    --z-text-panel-title: #bdccc5;
    --z-text-heading: var(--z-text-section-title);
    --z-text-body: var(--z-text-secondary);
    --z-text-label: var(--z-text-panel-title);
    --z-text-metadata: var(--z-text-muted);
    --z-text-caption: var(--z-text-subtle);

    --z-border-subtle: #34463f;
    --z-border-default: #455a52;
    --z-border-strong: #60776d;
    --z-divider: #34463f;

    --z-primary-50: #edf4ff;
    --z-primary-100: #d6e7ff;
    --z-primary-200: #adceff;
    --z-primary-300: #7fb0ff;
    --z-primary-400: #4f8fff;
    --z-primary-500: #2f70f2;
    --z-primary-600: #215bd0;
    --z-primary-700: #1c49a8;
    --z-primary-800: #193c84;
    --z-primary-900: #17336b;
    --z-primary: #245a49;
    --z-primary-hover: #2e6a56;
    --z-primary-active: #1d493c;
    --z-primary-text: #eaf3ef;
    --z-primary-soft: #19372f;
    --z-primary-selected: var(--z-bg-surface-selected);

    --z-success: #67d49d;
    --z-success-soft: #123826;
    --z-success-border: #235e40;
    --z-warning: #f1c75b;
    --z-warning-soft: #3b2b11;
    --z-warning-border: #6b4d1c;
    --z-error: #ff8795;
    --z-error-soft: #3b1d22;
    --z-error-border: #6a3038;
    --z-info: #79b9f2;
    --z-info-soft: #132d45;
    --z-info-border: #255273;

    --z-focus-color: #5b917c;
    --z-focus-ring: 0 0 0 3px rgba(91, 145, 124, 0.34);
    --z-input-surface: #1b2824;
    --z-input-surface-hover: #1f2f2a;
    --z-input-border: #60776d;
    --z-input-border-hover: #71887e;
    --z-input-focus-border: #5b917c;
    --z-input-focus-ring: 0 0 0 3px rgba(91, 145, 124, 0.28);
    --z-input-text: #dce8e3;
    --z-shadow-none: none;
    --z-shadow-card: 0 1px 2px rgba(2, 8, 15, 0.3), 0 12px 30px rgba(2, 8, 15, 0.16);
    --z-shadow-card-hover: 0 2px 4px rgba(2, 8, 15, 0.34), 0 16px 36px rgba(2, 8, 15, 0.22);
    --z-shadow-control: 0 1px 2px rgba(2, 8, 15, 0.38);
    --z-shadow-popover: 0 18px 48px rgba(2, 8, 15, 0.46);
    --z-shadow-dialog: 0 32px 80px rgba(2, 8, 15, 0.58);

    --z-color-background: var(--z-bg-page);
    --z-color-surface: var(--z-bg-surface);
    --z-color-surface-subtle: var(--z-bg-surface-soft);
    --z-color-surface-muted: var(--z-bg-surface-muted);
    --z-color-surface-elevated: var(--z-bg-surface-elevated);
    --z-color-border: var(--z-border-default);
    --z-color-border-strong: var(--z-border-strong);
    --z-color-text: var(--z-text-primary);
    --z-color-text-secondary: var(--z-text-secondary);
    --z-color-text-muted: var(--z-text-muted);
    --z-shadow-xs: 0 1px 2px rgba(2, 8, 15, 0.28);
    --z-shadow-sm: var(--z-shadow-card);
    --z-shadow-md: var(--z-shadow-popover);
    --z-shadow-lg: var(--z-shadow-dialog);
    --z-shadow-xl: var(--z-shadow-dialog);
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}
