/* Shared visual contract. Components reference intent, never a local brand palette. */
:root {
    color-scheme: light;
    --portal-brand: #2563eb;
    --portal-brand-hover: color-mix(in srgb, var(--portal-brand) 86%, #000);
    --portal-brand-soft: color-mix(in srgb, var(--portal-brand) 8%, #fff);
    --portal-on-brand: #fff;
    --portal-focus: var(--portal-brand);
    --portal-ink: #17233b;
    --portal-muted: #526176;
    --portal-subtle: #64748b;
    --portal-line: #dce2ea;
    --portal-line-strong: #8997aa;
    --portal-border: var(--portal-line);
    --portal-text: var(--portal-ink);
    --portal-surface: #fff;
    --portal-surface-subtle: #f7f9fc;
    --portal-canvas: #f3f5f8;
    --portal-card: var(--portal-surface);
    --portal-success: #24633a;
    --portal-success-bg: #eef7f0;
    --portal-warning: #805600;
    --portal-warning-bg: #fff7e5;
    --portal-danger: #b42318;
    --portal-danger-bg: #fff1ef;
    --portal-info: #235cab;
    --portal-info-bg: #edf4ff;
    --portal-inverse: #152238;
    --portal-on-inverse: #f8fafc;
    --portal-inverse-muted: #c3cfdf;
    --portal-overlay: #17233b66;
    --portal-radius-sm: 6px;
    --portal-radius-md: 10px;
    --portal-shadow-sm: 0 2px 8px #17233b08;
    --portal-shadow-popover: 0 8px 24px #17233b1a;
    --portal-control-height: 44px;
    --portal-font-family: "Aptos", "Segoe UI", "Noto Sans", sans-serif;
    --portal-font-mono: "Cascadia Mono", "SFMono-Regular", Consolas, monospace;
    --portal-text-sm: 12px;
    --portal-text-body: 14px;
    --portal-text-section: 18px;
    --portal-text-title: 28px;
    --portal-space-1: 4px;
    --portal-space-2: 8px;
    --portal-space-3: 12px;
    --portal-space-4: 16px;
    --portal-space-6: 24px;
    --portal-space-8: 32px;
}

/* Recompute derived colors where a saved workspace brand overrides the root. */
.portal-shell {
    --portal-brand-hover: color-mix(in srgb, var(--portal-brand) 86%, #000);
    --portal-brand-soft: color-mix(in srgb, var(--portal-brand) 8%, #fff);
    --portal-focus: var(--portal-brand);
}
