:root {
    --rs-editor-font-size: 15px;
    --rs-editor-line-height: 24px;
    --rs-palette-width: min(670px, calc(100vw - 24px));
    --rs-palette-height: min(420px, calc(100vh - 24px));
    color-scheme: light;

    /* Theme base colors. Derived palette roles belong below, not in consumers. */
    --rs-accent: #0088c2;
    --rs-surface-panel: #ffffff;
    --rs-text: #172338;
    --rs-sidebar-base: #171d26;
    --rs-neutral-frame: #aeb6c4;

    /* Accent-derived semantic roles. */
    --rs-accent-hover: color-mix(in srgb, var(--rs-accent) 89%, black);
    --rs-accent-link: color-mix(in srgb, var(--rs-accent) 81.8%, black);
    --rs-accent-fill: color-mix(in srgb, var(--rs-accent) 12%, var(--rs-surface-panel));
    --rs-accent-chip: color-mix(in srgb, var(--rs-accent) 22%, var(--rs-surface-panel));
    --rs-accent-border: color-mix(in srgb, var(--rs-accent) 50%, var(--rs-surface-panel));
    --rs-accent-ink: color-mix(in srgb, var(--rs-accent) 65%, var(--rs-text));
    --rs-accent-subtle-surface: color-mix(in srgb, var(--rs-accent) 5%, var(--rs-surface-panel));
    --rs-accent-hover-surface: var(--rs-accent-subtle-surface);
    --rs-focus-tint: color-mix(in srgb, var(--rs-accent) 38%, transparent);
    --rs-surface-header: color-mix(in srgb, var(--rs-accent-fill) 50%, var(--rs-surface-panel));
    --rs-sidebar-surface: color-mix(in srgb, var(--rs-accent) 15%, var(--rs-sidebar-base));
    --rs-control-frame: color-mix(in srgb, var(--rs-accent) 30%, var(--rs-neutral-frame));
    --rs-on-accent: var(--rs-surface-panel);

    /* Fixed semantic colors do not follow the theme accent. */
    --rs-editor: #6941b8;
    --rs-organ: #46586b;
    --rs-search-hit: #ffe9a8;
    --rs-search-hit-ink: #443814;
    --rs-success: #287a48;
    --rs-warning: #a66a00;
    --rs-error: #b42318;
    --rs-info: #236a9f;

    /* Neutral semantic roles. */
    --rs-surface-page: #f4f7f9;
    --rs-surface-subtle: #f4f5f7;
    --rs-text-muted: #657083;
    --rs-text-control: #283249;
    --rs-text-strong: #343e50;
    --rs-text-secondary: #525c6c;
    --rs-text-meta: #626b79;
    --rs-text-placeholder: #727b89;
    --rs-sidebar-muted: #cbd5e1;
    --rs-border: #c8ced8;
    --rs-border-subtle: #dde2e8;
    --rs-divider: #d8dce3;
    --rs-control-disabled-surface: #eceff2;
    --rs-table-stripe: #fafbfc;
    --rs-neutral-action-ink: #444d60;
    --rs-neutral-action-icon: #525c6c;
    --rs-neutral-action-border: var(--rs-neutral-frame);
    --rs-neutral-action-surface: #e9ebf0;
    --rs-neutral-action-hover-ink: #30394a;
    --rs-neutral-action-hover-border: color-mix(in srgb, var(--rs-neutral-action-border) 75%, var(--rs-text-secondary) 25%);
    --rs-neutral-action-hover-surface: color-mix(in srgb, var(--rs-neutral-action-surface) 78%, var(--rs-neutral-action-border) 22%);
    --rs-neutral-action-disabled-ink: #747d8e;
    --rs-neutral-action-disabled-border: #b9c0cb;
    --rs-neutral-action-disabled-surface: #f1f3f6;
    --rs-sidebar-hover-surface: color-mix(in srgb, var(--rs-surface-panel) 6%, transparent);
    --rs-sidebar-control-surface: color-mix(in srgb, var(--rs-surface-panel) 10%, transparent);
    --rs-sidebar-control-subtle-surface: color-mix(in srgb, var(--rs-surface-panel) 7%, transparent);
    --rs-sidebar-control-border: color-mix(in srgb, var(--rs-surface-panel) 21%, transparent);
    --rs-sidebar-divider: color-mix(in srgb, var(--rs-surface-panel) 15%, transparent);
    --rs-translucent-panel: color-mix(in srgb, var(--rs-surface-panel) 90%, transparent);
    --rs-shell-top-row-surface: color-mix(in srgb, var(--rs-surface-panel) 96%, transparent);
    --rs-auth-background: linear-gradient(180deg, color-mix(in srgb, var(--rs-accent) 8%, transparent) 0%, var(--rs-surface-panel) 40%);

    /* Shared state surfaces and frames. */
    --rs-destructive-action-border: color-mix(in srgb, var(--rs-error) 48%, var(--rs-border));
    --rs-destructive-action-hover-surface: color-mix(in srgb, var(--rs-error) 8%, var(--rs-surface-panel));
    --rs-status-pending-row-surface: color-mix(in srgb, var(--rs-text-muted) 8%, var(--rs-surface-panel));
    --rs-status-pending-row-border: color-mix(in srgb, var(--rs-text-muted) 22%, var(--rs-border));
    --rs-status-processing-row-surface: color-mix(in srgb, var(--rs-info) 8%, var(--rs-surface-panel));
    --rs-status-processing-row-border: color-mix(in srgb, var(--rs-info) 22%, var(--rs-border));
    --rs-status-completed-row-surface: color-mix(in srgb, var(--rs-success) 8%, var(--rs-surface-panel));
    --rs-status-completed-row-border: color-mix(in srgb, var(--rs-success) 22%, var(--rs-border));
    --rs-status-failed-row-surface: color-mix(in srgb, var(--rs-error) 8%, var(--rs-surface-panel));
    --rs-status-failed-row-border: color-mix(in srgb, var(--rs-error) 22%, var(--rs-border));
    --rs-alert-success-surface: color-mix(in srgb, var(--rs-success) 10%, var(--rs-surface-panel));
    --rs-alert-success-border: color-mix(in srgb, var(--rs-success) 35%, var(--rs-border));
    --rs-alert-info-surface: color-mix(in srgb, var(--rs-info) 10%, var(--rs-surface-panel));
    --rs-alert-info-border: color-mix(in srgb, var(--rs-info) 35%, var(--rs-border));
    --rs-alert-warning-surface: color-mix(in srgb, var(--rs-warning) 10%, var(--rs-surface-panel));
    --rs-alert-warning-border: color-mix(in srgb, var(--rs-warning) 35%, var(--rs-border));
    --rs-alert-danger-surface: color-mix(in srgb, var(--rs-error) 10%, var(--rs-surface-panel));
    --rs-alert-danger-border: color-mix(in srgb, var(--rs-error) 35%, var(--rs-border));

    --rs-font-app: Inter, "Segoe UI", Arial, sans-serif;
    --rs-font-ui: "Segoe UI", sans-serif;
    --rs-font-system: system-ui, sans-serif;
    --rs-font-mono: Consolas, "Cascadia Mono", Monaco, "Courier New", monospace;
    --rs-type-control: 13px/20px var(--rs-font-ui);
    --rs-type-row-title: 600 13px/20px var(--rs-font-ui);
    --rs-type-sentence-preview: 12px/18px var(--rs-font-ui);
    --rs-type-meta: 400 12px/20px var(--rs-font-ui);
    --rs-type-hint: 11px/18px var(--rs-font-ui);
    --rs-control-height: 34px;
    --rs-page-header-height: 46px;
    --rs-panel-header-height: 36px;
    --rs-radius-sm: 4px;
    --rs-radius-md: 6px;
    --rs-radius-lg: 8px;
    --rs-shadow-sm: 0 1px 2px color-mix(in srgb, var(--rs-text) 10%, transparent);
    --rs-shadow-elevated: 0 10px 24px color-mix(in srgb, var(--rs-text) 16%, transparent);
    --rs-shadow-dialog: 0 14px 36px color-mix(in srgb, var(--rs-text) 22%, transparent);
    --rs-shadow-overlay: 0 24px 60px color-mix(in srgb, black 28%, transparent);
    --rs-backdrop: color-mix(in srgb, black 50%, transparent);
    --rs-focus-ring: 0 0 0 2px var(--rs-focus-tint);
    --rs-focus-outline: 2px solid var(--rs-accent);
    --rs-disabled-opacity: .58;
}
