/*
 * Purpose: Design tokens for the Kinetic visual language. The values
 *          below are the canonical source of truth (per
 *          `docs/domains/shared/KINETIC_REDESIGN_PROMPT.md` §2-§5).
 * Owners:  Phase 0.3. Phase 2+ consume these tokens via the `.k-*`
 *          component classes in `kinetic/components.css`.
 *
 * Load order: This file is the FIRST Kinetic stylesheet. It defines
 *             custom properties on `:root` and the optional
 *             `.kinetic-theme-light` variant. Bootstrap is loaded
 *             BEFORE this file, so the `--bs-*` remaps below override
 *             Bootstrap's default color tokens.
 *
 * Token groups:
 *   - Foundation: --gp-bg, --gp-fg, --gp-muted, --gp-muted-foreground
 *   - Accent:     --gp-accent, --gp-accent-fg
 *   - Structural: --gp-border, --gp-topbar-h
 *   - Status:     --gp-{info,success,warning,danger}[-fg]
 *   - Bootstrap remap: --bs-* aliases
 */

:root {
    /* Foundation colors (per §2.1.1) */
    --gp-bg: #09090B;
    --gp-fg: #FAFAFA;
    --gp-muted: #27272A;
    --gp-muted-foreground: #A1A1AA;

    /* Accent (acid yellow / lime, per §2.1.1) */
    --gp-accent: #DFE104;
    --gp-accent-fg: #000000;

    /* Structural */
    --gp-border: #3F3F46;
    --gp-topbar-h: clamp(64px, 5vw, 80px);

    /* Status palette (per Decision 3 in the plan) */
    --gp-info: #3B82F6;
    --gp-info-fg: #FFFFFF;
    --gp-success: #22C55E;
    --gp-success-fg: #000000;
    --gp-warning: #FFB347;
    --gp-warning-fg: #000000;
    --gp-danger: #FF4D4F;
    --gp-danger-fg: #FFFFFF;

    /* Type tokens (consumed by kinetic/base.css) */
    --gp-font-display: 'Space Grotesk', 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --gp-font-body: 'Inter', 'Space Grotesk', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    --gp-font-mono: 'JetBrains Mono', 'Fira Code', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

    /* Spacing (4px base unit, per §2.1.3) */
    --gp-sp-1: 0.25rem;
    --gp-sp-2: 0.5rem;
    --gp-sp-3: 0.75rem;
    --gp-sp-4: 1rem;
    --gp-sp-6: 1.5rem;
    --gp-sp-8: 2rem;
    --gp-sp-12: 3rem;
    --gp-sp-16: 4rem;
    --gp-sp-24: 6rem;
    --gp-sp-32: 8rem;

    /* Shape (per §2.1.4) */
    --gp-radius: 0;
    --gp-radius-sm: 2px;
    --gp-border-w: 2px;
    --gp-border-w-thin: 1px;

    /* Motion (per §2 + §8; consumed by kinetic/motion.css) */
    --gp-ease: cubic-bezier(0.2, 0, 0, 1);
    --gp-dur-fast: 150ms;
    --gp-dur: 200ms;
    --gp-dur-slow: 300ms;

    /* Bootstrap 5 remap: kill the soft-blue tints in legacy markup
       so any `.btn-primary`, `.text-bg-info`, etc. that hasn't been
       re-skinned to `.k-*` still inherits Kinetic values. */
    --bs-body-bg: var(--gp-bg);
    --bs-body-color: var(--gp-fg);
    --bs-body-color-rgb: 250, 250, 250;
    --bs-body-bg-rgb: 9, 9, 11;
    --bs-border-color: var(--gp-border);
    --bs-border-color-translucent: var(--gp-border);
    --bs-secondary-color: var(--gp-muted-foreground);
    --bs-secondary-bg: var(--gp-muted);
    --bs-tertiary-color: var(--gp-muted-foreground);
    --bs-tertiary-bg: var(--gp-muted);
    --bs-emphasis-color: var(--gp-fg);
    --bs-link-color: var(--gp-accent);
    --bs-link-color-rgb: 223, 225, 4;
    --bs-link-hover-color: var(--gp-fg);
    --bs-link-hover-color-rgb: 250, 250, 250;
    --bs-code-color: var(--gp-accent);

    /* Semantic color remap (per Decision 3) */
    --bs-primary: var(--gp-accent);
    --bs-primary-rgb: 223, 225, 4;
    --bs-success: var(--gp-success);
    --bs-success-rgb: 34, 197, 94;
    --bs-info: var(--gp-info);
    --bs-info-rgb: 59, 130, 246;
    --bs-warning: var(--gp-warning);
    --bs-warning-rgb: 255, 179, 71;
    --bs-danger: var(--gp-danger);
    --bs-danger-rgb: 255, 77, 79;
    --bs-secondary: var(--gp-muted);
    --bs-secondary-rgb: 39, 39, 42;
    --bs-light: var(--gp-muted);
    --bs-light-rgb: 39, 39, 42;
    --bs-dark: var(--gp-bg);
    --bs-dark-rgb: 9, 9, 11;

    /* Form-control & button focus color (per §2.1.1 selection style) */
    --bs-primary-bg-subtle: var(--gp-muted);
    --bs-success-bg-subtle: var(--gp-muted);
    --bs-info-bg-subtle: var(--gp-muted);
    --bs-warning-bg-subtle: var(--gp-muted);
    --bs-danger-bg-subtle: var(--gp-muted);
    --bs-body-bg-subtle: var(--gp-muted);
    --bs-highlight-bg: var(--gp-accent);
    --bs-highlight-color: var(--gp-accent-fg);

    /* Hand-off alias block for any rule that hard-codes the
       Bootstrap variable names rather than using `var(--bs-*)`. */
    --gp-bs-body-bg: var(--gp-bg);
    --gp-bs-body-color: var(--gp-fg);
    --gp-bs-border-color: var(--gp-border);
    --gp-bs-primary: var(--gp-accent);
    --gp-bs-success: var(--gp-success);
    --gp-bs-warning: var(--gp-warning);
    --gp-bs-danger: var(--gp-danger);
    --gp-bs-info: var(--gp-info);
    --gp-bs-secondary: var(--gp-muted);
}

/* Light theme variant. Not in scope for v1 (Decision log §16) but
   the variable layer is required so the eventual light theme is a
   data attribute flip rather than a rewrite. */
.kinetic-theme-light {
    --gp-bg: #FAFAFA;
    --gp-fg: #09090B;
    --gp-muted: #E4E4E7;
    --gp-muted-foreground: #52525B;
    --gp-border: #D4D4D8;
    --bs-body-bg: var(--gp-bg);
    --bs-body-color: var(--gp-fg);
    --bs-body-color-rgb: 9, 9, 11;
    --bs-body-bg-rgb: 250, 250, 250;
}
