/* ============================================
   Continuum Design Tokens
   Shared brand tokens extracted from the public site.
   ============================================ */

:root {
    /* Canonical source-theme aliases from Continuum Graphics Theme */
    --bs-blue: #2560a4;
    --bs-indigo: #6610f2;
    --bs-purple: #6f42c1;
    --bs-pink: #d63384;
    --bs-red: #e74c3c;
    --bs-orange: #e67e22;
    --bs-yellow: #f1c40f;
    --bs-green: #34b45d;
    --bs-teal: #1abc9c;
    --bs-cyan: #449bff;
    --bs-white: #fff;
    --bs-gray: #6c757d;
    --bs-gray-dark: #343a40;
    --bs-primary: #2560a4;
    --bs-secondary: #6c757d;
    --bs-success: #34b45d;
    --bs-info: #449bff;
    --bs-warning: #e67e22;
    --bs-danger: #e74c3c;
    --bs-light: #f8f9fa;
    --bs-dark: rgba(0, 0, 0, 0.56);
    --bs-font-sans-serif: futura-pt, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif;
    --bs-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

    --cg-font-sans: futura-pt, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    --cg-font-ui: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    --cg-font-mono: "Roboto Mono", SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;

    --cg-bg: #212121;
    --cg-panel: #111111;
    --cg-panel-soft: #2a2a2a;
    --cg-surface: #ffffff;
    --cg-surface-muted: #f5f5f7;
    --cg-surface-subtle: #fafafa;

    --cg-text: #ffffff;
    --cg-text-dark: #1f1f1f;
    --cg-text-muted-dark: rgba(31, 31, 31, 0.64);
    --cg-text-soft-dark: rgba(31, 31, 31, 0.5);
    --cg-text-muted-light: rgba(255, 255, 255, 0.72);
    --cg-text-soft-light: rgba(255, 255, 255, 0.56);

    --cg-line: rgba(255, 255, 255, 0.1);
    --cg-line-dark: rgba(0, 0, 0, 0.08);
    --cg-line-dark-strong: rgba(0, 0, 0, 0.16);

    --cg-primary: var(--bs-primary);
    --cg-primary-hover: #1f528b;
    --cg-primary-bright: #4678b2;
    --cg-success: var(--bs-success);
    --cg-success-dark: #1e7438;
    --cg-info: var(--bs-info);
    --cg-info-dark: #1a62b5;
    --cg-warning: var(--bs-warning);
    --cg-warning-dark: #9a4f0d;
    --cg-danger: var(--bs-danger);
    --cg-danger-dark: #c0392b;
    --cg-secondary: var(--bs-secondary);

    --cg-primary-rgb: 37, 96, 164;
    --cg-success-rgb: 52, 180, 93;
    --cg-info-rgb: 68, 155, 255;
    --cg-warning-rgb: 230, 126, 34;
    --cg-danger-rgb: 231, 76, 60;
    --cg-neutral-rgb: 31, 31, 31;

    --cg-radius-none: 0;
    --cg-radius-control: 0;
    --cg-radius-panel: 0;
    --cg-radius-round: 50%;

    --cg-space-0: 0;
    --cg-space-1: 0.25rem;
    --cg-space-2: 0.5rem;
    --cg-space-3: 0.75rem;
    --cg-space-4: 1rem;
    --cg-space-5: 1.5rem;
    --cg-space-6: 2rem;
    --cg-space-7: 3rem;
    --cg-space-8: 4rem;

    --cg-text-2xs: 0.6875rem;
    --cg-text-xs: 0.75rem;
    --cg-text-sm: 0.8125rem;
    --cg-text-md: 0.875rem;
    --cg-text-base: 1rem;
    --cg-text-lg: 1.125rem;
    --cg-text-xl: 1.375rem;
    --cg-text-2xl: 1.5rem;
    --cg-text-3xl: 2rem;
    --cg-text-display: 3rem;

    --cg-weight-light: 300;
    --cg-weight-regular: 400;
    --cg-weight-medium: 500;
    --cg-weight-semibold: 600;
    --cg-weight-bold: 700;

    --cg-leading-tight: 1.2;
    --cg-leading-snug: 1.35;
    --cg-leading-normal: 1.5;
    --cg-leading-relaxed: 1.65;

    --cg-tracking-label: 0.06em;
    --cg-tracking-button: 0.08em;
    --cg-tracking-display: -0.01em;

    --cg-control-sm: 2rem;
    --cg-control-md: 2.5rem;
    --cg-control-lg: 3rem;

    --cg-measure: 68ch;
    --cg-content-narrow: 40rem;
    --cg-content-default: 63.75rem;
    --cg-content-wide: 80rem;
    --cg-sidebar-width: 240px;

    --cg-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --cg-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
    --cg-duration-fast: 120ms;
    --cg-duration-med: 200ms;
    --cg-duration-slow: 320ms;
    --cg-transition-fast: var(--cg-duration-fast) var(--cg-ease-out);
    --cg-transition-med: var(--cg-duration-med) var(--cg-ease-out);

    --cg-z-sticky: 5;
    --cg-z-sidebar: 10;
    --cg-z-dropdown: 50;
    --cg-z-overlay: 100;
    --cg-z-toast: 200;

    --cg-shadow-raised: 0 1px 2px rgba(0, 0, 0, 0.06), 0 2px 6px rgba(0, 0, 0, 0.04);
    --cg-shadow-overlay: 0 12px 32px -8px rgba(0, 0, 0, 0.28), 0 4px 10px -4px rgba(0, 0, 0, 0.12);
    --cg-shadow-toast: 0 10px 24px -10px rgba(0, 0, 0, 0.4);

    --cg-focus-ring: 0 0 0 3px rgba(var(--cg-primary-rgb), 0.28);

    --cg-c-canvas: var(--cg-surface-muted);
    --cg-c-surface: var(--cg-surface);
    --cg-c-surface-sunken: var(--cg-surface-subtle);
    --cg-c-surface-hover: rgba(var(--cg-primary-rgb), 0.05);
    --cg-c-surface-selected: rgba(var(--cg-primary-rgb), 0.1);
    --cg-c-fg: var(--cg-text-dark);
    --cg-c-fg-muted: var(--cg-text-muted-dark);
    --cg-c-fg-soft: var(--cg-text-soft-dark);
    --cg-c-fg-on-accent: #ffffff;
    --cg-c-border: var(--cg-line-dark);
    --cg-c-border-strong: var(--cg-line-dark-strong);
    --cg-c-accent: var(--cg-primary);
    --cg-c-accent-hover: var(--cg-primary-hover);
    --cg-c-link: var(--cg-primary);
    --cg-c-scrim: rgba(17, 17, 17, 0.48);

    --cg-c-success-fg: var(--cg-success-dark);
    --cg-c-success-bg: rgba(var(--cg-success-rgb), 0.12);
    --cg-c-info-fg: var(--cg-info-dark);
    --cg-c-info-bg: rgba(var(--cg-info-rgb), 0.12);
    --cg-c-warning-fg: var(--cg-warning-dark);
    --cg-c-warning-bg: rgba(var(--cg-warning-rgb), 0.14);
    --cg-c-danger-fg: var(--cg-danger-dark);
    --cg-c-danger-bg: rgba(var(--cg-danger-rgb), 0.12);
    --cg-c-accent-fg: var(--cg-primary);
    --cg-c-accent-bg: rgba(var(--cg-primary-rgb), 0.12);
    --cg-c-neutral-fg: var(--cg-text-muted-dark);
    --cg-c-neutral-bg: rgba(var(--cg-neutral-rgb), 0.07);
}

.cg-theme-dark {
    --cg-c-canvas: var(--cg-bg);
    --cg-c-surface: var(--cg-panel);
    --cg-c-surface-sunken: #0a0a0a;
    --cg-c-surface-hover: rgba(255, 255, 255, 0.06);
    --cg-c-surface-selected: rgba(var(--cg-primary-rgb), 0.24);
    --cg-c-fg: var(--cg-text);
    --cg-c-fg-muted: var(--cg-text-muted-light);
    --cg-c-fg-soft: var(--cg-text-soft-light);
    --cg-c-border: var(--cg-line);
    --cg-c-border-strong: rgba(255, 255, 255, 0.2);
    --cg-c-accent: var(--cg-primary);
    --cg-c-accent-hover: var(--cg-primary-bright);
    --cg-c-link: var(--cg-info);
    --cg-c-scrim: rgba(0, 0, 0, 0.64);
    --cg-focus-ring: 0 0 0 3px rgba(var(--cg-info-rgb), 0.4);

    --cg-c-success-fg: #5fd085;
    --cg-c-success-bg: rgba(var(--cg-success-rgb), 0.18);
    --cg-c-info-fg: #7ab8ff;
    --cg-c-info-bg: rgba(var(--cg-info-rgb), 0.18);
    --cg-c-warning-fg: #f0a35e;
    --cg-c-warning-bg: rgba(var(--cg-warning-rgb), 0.2);
    --cg-c-danger-fg: #f1887d;
    --cg-c-danger-bg: rgba(var(--cg-danger-rgb), 0.2);
    --cg-c-accent-fg: #7ab8ff;
    --cg-c-accent-bg: rgba(var(--cg-primary-rgb), 0.32);
    --cg-c-neutral-fg: var(--cg-text-muted-light);
    --cg-c-neutral-bg: rgba(255, 255, 255, 0.1);

    color: var(--cg-c-fg);
    color-scheme: dark;
}

@media (prefers-reduced-motion: reduce) {
    :root {
        --cg-duration-fast: 0ms;
        --cg-duration-med: 0ms;
        --cg-duration-slow: 0ms;
    }
}
