:root,
[data-theme="light"] {
    color-scheme: light;

    /* Typography */
    --font-family-base: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    --font-size-xs: 13px;
    --font-size-sm: 14px;
    --font-size-md: 15px;
    --font-size-lg: 16px;
    --font-size-xl: 18px;
    --font-size-2xl: 20px;
    --font-size-3xl: 24px;
    --font-weight-regular: 400;
    --font-weight-bold: 700;
    --line-height-tight: 1;
    --line-height-base: 1.42;

    /* Layout */
    --shell-max-width: 1240px;
    --shell-gutter: 40px;
    --shell: min(var(--shell-max-width), calc(100% - var(--shell-gutter)));
    --app-page-min-width: 1000px;
    --editor-page-min-width: 1160px;
    --page-frame-min-height: calc(100vh - 132px);
    --header-height: 64px;
    --header-brand-symbol-size: 29px;
    --header-brand-bar-long: 16px;
    --header-brand-bar-short: 4px;
    --header-tab-min-width: 94px;
    --footer-min-height: 190px;
    --modal-width: min(560px, 100%);
    --motion-fast: 160ms;

    /* Spacing */
    --space-0: 0;
    --space-1: 4px;
    --space-2: 6px;
    --space-3: 8px;
    --space-4: 10px;
    --space-5: 12px;
    --space-6: 14px;
    --space-7: 16px;
    --space-8: 18px;
    --space-9: 20px;
    --space-10: 22px;
    --space-11: 24px;
    --space-12: 28px;
    --space-13: 34px;
    --space-14: 40px;
    --space-15: 70px;
    --space-16: 96px;

    /* Radius */
    --radius-none: 0;
    --radius-sm: 9px;
    --radius-md: 13px;
    --radius-lg: 17px;
    --radius-round: 999px;

    /* Control sizes */
    --control-height-sm: 38px;
    --control-height-md: 40px;
    --control-height-lg: 42px;
    --avatar-size-md: 38px;
    --avatar-size-lg: 60px;
    --brand-dot-size: 44px;
    --burger-size: 40px;

    /* Borders and shadows */
    --border-width: 1px;
    --shadow-sm: 0 8px 24px rgba(25, 43, 36, 0.07);
    --shadow-lg: 0 16px 46px rgba(20, 36, 30, 0.14);
    --shadow-header: 0 3px 16px rgba(25, 42, 36, 0.045);
    --shadow-accent: 0 4px 13px rgba(40, 107, 97, 0.08);
    --shadow-tab: 0 1px 5px rgba(28, 44, 39, 0.09);
    --brand-ring-primary: 0 0 0 6px rgba(40, 107, 97, 0.12);
    --brand-ring-secondary: 0 0 0 12px rgba(40, 107, 97, 0.06);
    --focus-ring-accent: 0 0 0 3px rgba(40, 107, 97, 0.12);
    --header-backdrop-blur: 16px;

    /* Palette */
    --color-bg: #f6f8f8;
    --color-surface: #ffffff;
    --color-surface-translucent: rgba(255, 255, 255, 0.96);
    --color-surface-soft: #f2f4f4;
    --color-surface-soft-strong: #edf1f0;
    --color-header: #ffffff;
    --color-header-translucent: rgba(255, 255, 255, 0.95);
    --color-line: #dfe4e2;
    --color-line-strong: #cbd4d1;
    --color-text: #202724;
    --color-text-strong: #111815;
    --color-text-muted: #6b7571;
    --color-text-accent: #655b8f;
    --color-focus: #bad8d1;
    --color-danger: #a14650;
    --color-danger-soft: #fff0f1;
    --color-white: #ffffff;

    --color-blue: #456f9f;
    --color-blue-hover: #365d89;
    --color-blue-soft: #edf3fa;
    --color-green: #286b61;
    --color-green-hover: #20594f;
    --color-green-soft: #e7f2ef;
    --color-green-line: #bad8d1;
    --color-violet: #655b8f;
    --color-violet-soft: #f1eef9;
    --color-amber: #8b6423;
    --color-amber-soft: #fff7e8;

    --color-panel: #e7f2ef;
    --color-panel-strong: #edf3fa;
    --color-avatar: #f1eef9;

    /* Builder palette */
    --color-builder-input-soft: #edf8f1;
    --color-builder-score-soft: #fff7e8;
    --color-builder-condition: #6c47a6;
    --color-builder-condition-soft: #f5f0ff;
    --color-builder-danger-soft: #fff0f2;
    --color-builder-line-strong: #aebbc5;
    --color-builder-focus-ring: rgba(47, 111, 228, 0.08);
    --color-builder-blue-border: #9cb8ed;
    --color-builder-lane: rgba(255, 255, 255, 0.78);
    --color-builder-lane-label: rgba(255, 255, 255, 0.9);
    --color-builder-card-shadow: rgba(35, 53, 66, 0.05);
    --color-builder-selection-ring: rgba(47, 111, 228, 0.11);
    --color-builder-input-border: #acd7c5;
    --color-builder-calculation-border: #b8cdf7;
    --color-builder-score-border: #ead19b;
    --color-builder-score-text: #83540e;
    --color-builder-condition-border: #ccbaf0;
    --color-builder-output-border: #efbcc3;
    --color-builder-port-shadow: rgba(0, 0, 0, 0.12);
    --color-builder-port-ring: rgba(47, 111, 228, 0.16);
    --color-builder-field-ring: rgba(47, 111, 228, 0.1);
    --color-builder-action-ring: rgba(47, 111, 228, 0.08);
    --color-builder-danger-border: #e2adb4;
    --color-builder-blue-border-soft: #b9cef3;
    --color-builder-blue-border-muted: #c8d9f7;
    --color-builder-input-border-strong: #b9d9c4;
    --color-builder-danger-border-strong: #e1abb2;
    --color-builder-condition-accent: #c8b7ec;
    --color-builder-condition-border-soft: #d8cdef;
    --color-builder-input-border-soft: #badac5;
    --color-builder-success-ring: rgba(76, 154, 112, 0.12);
    --color-builder-warning: #d79531;
    --color-builder-warning-ring: rgba(215, 149, 49, 0.12);
    --color-builder-danger-ring: rgba(201, 80, 94, 0.12);
    --color-builder-overlay: rgba(24, 37, 46, 0.32);
    --color-builder-modal-shadow: rgba(20, 34, 44, 0.24);
    --color-builder-floating-shadow: rgba(35, 53, 66, 0.06);
    --color-builder-panel-shadow: rgba(24, 38, 48, 0.22);

    /* Calculator presentation editor */
    --presentation-inspector-width: 420px;
    --presentation-page-width: 1080px;
    --presentation-phone-width: 420px;
    --presentation-card-min-width: 320px;
    --presentation-card-max-width: 460px;
    --presentation-toolbar-height: 64px;
    --runtime-drawer-width: 520px;
    --medicine-area-picker-width: 900px;
    --medicine-area-picker-max-height: min(840px, 92vh);
    --site-access-gate-width: min(520px, calc(100vw - 32px));
    --site-access-gate-blur: 10px;
    --site-access-gate-preview-scale: 1.025;
    --color-presentation-workspace: #eef4f7;
    --color-presentation-chip: #f0f4f7;
    --color-presentation-warning-soft: #fff7e8;
    --color-presentation-result-good: #287050;
    --color-presentation-result-bad: #a33f4d;
    --color-presentation-result-category: #6c47a6;
    --color-presentation-result-category-soft: #f5f0ff;
    --color-presentation-scale-muted: #cfd9df;
    --color-site-access-overlay: rgba(232, 242, 246, 0.72);
    --color-site-access-shadow: rgba(20, 34, 44, 0.2);
    --color-auth-overlay: rgba(246, 248, 248, 0.76);

    --brand-gradient: radial-gradient(circle at 55% 35%, #37a7dc 0%, #2f7fde 35%, #23b4c3 60%, #1cc2ae 100%);

    /* Semantic aliases */
    --bg: var(--color-bg);
    --surface: var(--color-surface);
    --line: var(--color-line);
    --text: var(--color-text);
    --muted: var(--color-text-muted);
    --blue: var(--color-blue);
    --green: var(--color-green);
    --green-dark: var(--color-green-hover);
    --panel: var(--color-panel);
    --panel-strong: var(--color-panel-strong);
    --avatar: var(--color-avatar);
    --shadow: var(--shadow-sm);
    --shadow-elevated: var(--shadow-lg);
    --line-strong: var(--color-line-strong);
    --soft: var(--color-surface-soft);
    --soft-strong: var(--color-surface-soft-strong);
    --accent: var(--color-green);
    --accent-dark: var(--color-green-hover);
    --accent-soft: var(--color-green-soft);
    --accent-line: var(--color-green-line);
    --blue-soft: var(--color-blue-soft);
    --violet: var(--color-violet);
    --violet-soft: var(--color-violet-soft);
    --danger-soft: var(--color-danger-soft);
    --amber: var(--color-amber);
    --amber-soft: var(--color-amber-soft);
}
