:root,
[data-theme="light"] {
    color-scheme: light;
    --presentation-hold-delay: 350;
    --presentation-drag-threshold: 8;
    --presentation-drag-scroll-edge: 36;
    --presentation-drag-scroll-step: 8;

    /* Typography */
    --font-family-code: ui-monospace, Consolas, monospace;
    --python-code-editor-max-height: 300px;
    --python-code-line-height: 1.6;
    --python-code-editor-height: var(--python-code-editor-max-height);
    --python-code-editor-min-height: 160px;
    --python-code-expanded-width: 900px;
    --font-family-base: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
    --font-size-2xs: 11px;
    --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;
    --board-overlay-z: 45;
    --board-cursor-size: 20px;
    --board-highlight-width: 2px;
    --board-bar-max-width: 320px;
    --board-click-duration: 600ms;
    --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-base: 64px;
    --header-height-compact-base: 58px;
    --header-height: var(--header-height-base);
    --header-height-compact: var(--header-height-compact-base);
    --site-header-mobile-height: 112px;
    --editor-header-height-compact-base: 104px;
    --editor-header-height-compact: var(--editor-header-height-compact-base);
    --header-brand-symbol-size: 29px;
    --header-brand-glyph-size: 17px;
    --header-brand-bar-long: 16px;
    --header-brand-bar-short: 4px;
    --header-tab-min-width: 94px;
    --editor-statusbar-height: 30px;
    --footer-min-height: 190px;
    --modal-width: min(560px, 100%);
    --coauthor-modal-width: min(580px, 100%);
    --coauthor-context-menu-width: 230px;
    --calculator-access-recipients-mobile-min-width: 540px;
    --calculator-access-rights-mobile-column-width: 86px;
    --support-modal-width: min(720px, calc(100vw - 32px));
    --support-modal-max-height: min(900px, calc(100vh - 32px));
    --support-message-min-height: 140px;
    --support-modal-z-index: 2200;
    --editor-navigation-z-index: calc(var(--support-modal-z-index) - 1);
    --runtime-feature-modal-max-width: 900px;
    --classification-option-list-max-height: 360px;
    --runtime-excel-reason-min-width: 220px;
    --runtime-excel-reason-compact-min-width: 180px;
    --language-menu-max-height: min(70vh, 520px);
    --library-tab-min-width: 200px;
    --library-tabs-max-width: 960px;
    --settings-sidebar-width: 260px;
    --catalog-area-control-width: 420px;
    --builder-panel-wide-default-width: 18vw;
    /* Flow Compact reference: dimensions are before canvas zoom. */
    --builder-calculation-height: 184px;
    --builder-flow-summary-height: 44px;
    --builder-flow-choice-height: 48px;
    --builder-flow-level-gap: 80px;
    --builder-flow-popup-width: 360px;
    --builder-flow-picker-width: 240px;
    --builder-flow-popup-height: 560px;
    --builder-flow-targets-height: 220px;
    --builder-flow-popup-z: 12000;
    --builder-flow-line-width: 1.8px;
    --builder-flow-active-width: 3px;
    --builder-flow-parallel-gap: 180px;
    --builder-flow-copy-size: 12px;
    --builder-flow-copy-offset: 3px;
    --builder-flow-join-weight: 600;
    --builder-drawer-width: 70vw;
    --builder-panel-wide-default-percent: 18;
    --builder-panel-drawer-default-percent: 70;
    --builder-panel-wide-min-percent: 14.4;
    --builder-panel-wide-max-percent: 21.6;
    --builder-panel-drawer-min-percent: 30;
    --builder-panel-drawer-max-percent: 90;
    --builder-panel-resize-step: 16;
    --builder-panel-resize-drag-threshold: 5;
    --builder-panel-resize-hit-width: 12px;
    --builder-panel-help-clearance: calc(var(--control-height-sm) + var(--space-5) + var(--space-3));
    --builder-drawer-edge-width: 36px;
    --builder-drawer-edge-height: 112px;
    --builder-checkbox-size: 18px;
    --builder-node-selection-checkbox-size: 16px;
    --builder-action-choice-title-size: 11px;
    --builder-action-choice-copy-size: 9px;
    --builder-condition-control-font-size: 10px;
    --builder-condition-narrow-control-font-size: 8px;
    --builder-condition-copy-size: 9px;
    --builder-condition-title-size: 11px;
    --builder-condition-switch-height: var(--control-height-md);
    --builder-condition-touch-control-height: 44px;
    --builder-condition-action-size: 36px;
    --builder-condition-touch-action-size: 40px;
    --builder-condition-chevron-size: 20px;
    --builder-condition-indicator-size: 7px;
    --builder-condition-operator-min-width: 68px;
    --builder-input-bound-min-width: 14ch;
    --builder-condition-operator-compact-min-width: 44px;
    --builder-panel-left-min-width: 180px;
    --builder-code-panel-min-width: 240px;
    --builder-panel-left-max-width: 360px;
    --builder-panel-right-min-width: 260px;
    --builder-panel-right-content-min-width: 224px;
    --builder-panel-right-max-width: 480px;
    --builder-formula-assist-text-min-width: 12rem;
    --builder-linked-options-max-height: min(25dvh, calc(5 * var(--builder-condition-touch-control-height)));
    --builder-outcome-text-max-height: 35dvh;
    --builder-outcome-text-expanded-height: 65dvh;
    --builder-canvas-controls-z-index: 30;
    --builder-pinned-panel-z-index: calc(var(--builder-canvas-controls-z-index) + 1);
    --builder-drawer-backdrop-z-index: 900;
    --builder-drawer-z-index: 1000;
    --builder-drawer-control-z-index: 1010;
    --builder-drawer-motion: 220ms cubic-bezier(0.2, 0.8, 0.2, 1);
    --motion-fast: 160ms;
    /* v15 group tree, selection and placement use the existing Builder theme. */
    --builder-v15-menu-max-width: 340px;
    --builder-v15-note-max-width: 280px;
    --builder-v15-tag-max-width: 132px;
    --builder-v15-destinations-max-height: 42dvh;
    --builder-v15-source-options-max-height: 45vh;
    --builder-v15-group-motion: 1.5s;
    --builder-v15-dimmed-opacity: .62;
    --builder-group-muted-opacity: .1;
    --builder-output-min-height: 200px;
    --field-action-gap: var(--space-3);
    --builder-zoom-slider-width: 100px;
    --builder-output-default-width: 640px;
    --builder-output-result-min-width: 120px;
    --builder-output-result-height: 100px;
    --builder-output-visualization-height: 650px;
    --builder-selected-wire-z-index: 12;
    --builder-marquee-z-index: calc(var(--builder-selected-wire-z-index) + 2);
    --builder-marquee-surface: color-mix(in srgb, var(--color-blue) 18%, transparent);
    --builder-marquee-border: var(--color-blue);
    --builder-v15-wire-dimmed-opacity: .4;
    --builder-v15-placeholder-opacity: .6;
    --builder-v15-drag-opacity: .85;
    --builder-v15-drag-z-index: calc(var(--builder-v6-menu-z-index) + 1);
    --builder-v15-marker-z-index: calc(var(--builder-v15-drag-z-index) + 1);
    --builder-v15-move-surface: color-mix(in srgb, var(--color-blue-soft) 25%, transparent);
    --builder-v15-move-border: color-mix(in srgb, var(--color-blue) 27%, transparent);
    --builder-v15-destination-surface: color-mix(in srgb, var(--color-blue-soft) 77%, transparent);
    --builder-v15-destination-error: color-mix(in srgb, var(--color-danger-soft) 77%, transparent);

    /* Spacing */
    /* CalcScience v6 reference metrics, shared by responsive Builder controls. */
    --builder-v6-menu-z-index: calc(var(--builder-drawer-control-z-index) + 1);
    --builder-v6-disclosure-size: 23px;
    --builder-v6-disclosure-radius: 5px;
    --builder-v6-summary-opacity: .8;
    --builder-v6-reorder-size: 27px;
    --builder-v6-rule-radius: 6px;
    --builder-v6-summary-radius: 4px;
    --builder-v6-size-1100: 1100px;
    --builder-v6-size-3: 3px;
    --builder-v6-size-76: 76px;
    --builder-v6-size-2: 2px;
    --builder-v6-size-0: 0px;
    --builder-v6-size-1: 1px;
    --builder-v6-size-320: 320px;
    --builder-v6-size-21: 21px;
    --builder-v6-size-30: 30px;
    --builder-v6-size-150: 150px;
    --builder-v6-size-214: 214px;
    --builder-v6-size-5: 5px;
    --builder-v6-size-32: 32px;
    --builder-v6-size-7: 7px;
    --builder-v6-size-46: 46px;
    --builder-v6-size-9: 9px;
    --builder-v6-size-34: 34px;
    --builder-v6-size-17: 17px;
    --builder-v6-size-205: 205px;
    --builder-v6-size-19: 19px;

    --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;
    --opacity-disabled: 0.55;
    --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);
    --color-builder-slot-border: rgba(174, 187, 197, 0.44);
    --color-builder-slot-surface: rgba(255, 255, 255, 0.26);
    --color-builder-slot-target: rgba(69, 111, 159, 0.09);
    --color-builder-slot-target-ring: rgba(69, 111, 159, 0.14);
    --color-builder-condition-shadow: rgba(108, 71, 166, 0.05);
    --color-builder-group-1: #456f9f;
    --color-builder-group-2: #286b61;
    --color-builder-group-3: #655b8f;
    --color-builder-group-4: #8b6423;
    --color-builder-group-5: #a14650;
    --color-builder-group-6: #4f6b72;
    --color-builder-group-7: #6b5d4d;
    --color-builder-group-8: #4c6a5a;

    /* Calculator presentation editor */
    /* Image-choice controls match the v16 reference. */
    --choice-image-thumbnail-size: 58px;
    --choice-image-media-radius: 6px;
    --choice-image-mode-radius: 11px;
    --choice-image-control-radius: 8px;
    --choice-image-card-min-height: 70px;
    --choice-text-label-font-size: var(--font-size-lg);
    --choice-image-disabled-opacity: .55;
    --presentation-navigator-width: 286px;
    --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);
    --color-modal-overlay: rgba(24, 37, 46, 0.42);

    --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);

    /* Shared viewport select and classification picker (13.09.2026). */
    --select-option-min-height: 44px;
    --select-viewport-gap: 8px;
    --select-safe-left: env(safe-area-inset-left, 0px);
    --select-safe-right: env(safe-area-inset-right, 0px);
    --select-safe-bottom: env(safe-area-inset-bottom, 0px);
    --floating-panel-viewport-height: 100vh;
    --floating-panel-safe-top: env(safe-area-inset-top, 0px);
    --floating-panel-safe-bottom: env(safe-area-inset-bottom, 0px);
    --floating-panel-viewport-gap: var(--space-5);
    --version-menu-readable-min-width: 120px;
    --version-header-extra-space: var(--space-5);
    --select-sheet-breakpoint: 640;
    --select-popup-z-index: calc(var(--support-modal-z-index) + 1);
    --classification-picker-max-height: 44rem;
    /* Graph/interface specification 15.09.2026. */
    --visualization-yellow: #dec348;
    --visualization-black: #111815;
    --visualization-green: var(--color-presentation-result-good);
    --visualization-red: var(--color-presentation-result-bad);
    --visualization-height: 440px;
    --visualization-expanded-height: 75dvh;
    --visualization-touch-target: 44px;
    --visualization-modal-width: 1100px;
    --presentation-image-compact-height: 240px;
    --editor-errors-max-width: 360px;
    --editor-errors-viewport-gap: 8px;
    --editor-errors-compact-button-width: 80px;
    --choice-picture-height-compact: 120px;
    --choice-picture-height-normal: 180px;
    --choice-picture-height-large: 280px;
    --media-zoom-target: 44px;
    --service-menu-width: 330px;
    --service-menu-icon-size: 30px;
    --visualization-thumbnail-width: 160px;
    --visualization-thumbnail-height: 90px;
    --visualization-thumbnail-default-ratio: calc(16 / 9);
    --visualization-thumbnail-inset-inline: 0.1;
    --visualization-thumbnail-inset-block: 0.05;
    --visualization-thumbnail-label-gap: var(--space-3);
    --visualization-thumbnail-render-width: 640px;
}

@supports (height: 100dvh) {
    :root { --floating-panel-viewport-height: 100dvh; }
}
