/* GZL design tokens — single source of truth.
 * Light + dark theme via [data-bs-theme="..."].
 * Discipline: 3 text colors, 3 surfaces, 1 border, 2 radii, 1 motion curve. */

:root {
    /* Brand */
    --gzl-primary:       #c8102e;
    --gzl-primary-hover: #a50d26;
    --gzl-primary-soft:  rgba(200, 16, 46, .10);
    --gzl-primary-fg:    #ffffff;

    /* Text — only 3 */
    --gzl-ink:    #0a0a0a;
    --gzl-ink-3:  #3a3a3a;
    --gzl-muted:  #6b6b6f;

    /* Surfaces — only 3 */
    --gzl-surface:   #fafafa;
    --gzl-surface-2: #ffffff;
    --gzl-surface-3: #f4f4f6;

    /* Border — one hairline */
    --gzl-border:    rgba(0,0,0,.08);
    --gzl-border-2:  rgba(0,0,0,.04);

    /* Status — used sparingly */
    --gzl-success:      #048a4c;
    --gzl-success-soft: rgba(4, 138, 76, .10);
    --gzl-warn:         #a35b00;
    --gzl-warn-soft:    rgba(163, 91, 0, .10);
    --gzl-danger:       #c8102e;
    --gzl-danger-soft:  rgba(200, 16, 46, .10);

    /* Radii — only 2 */
    --gzl-r:    8px;
    --gzl-r-lg: 12px;

    /* Elevation — flat at rest, one step on hover */
    --gzl-elev-0: none;
    --gzl-elev-1: 0 1px 2px rgba(16, 24, 40, .04), 0 2px 8px rgba(16, 24, 40, .04);

    /* Motion */
    --gzl-ease: cubic-bezier(0.2, 0, 0, 1);
    --gzl-dur:  180ms;

    /* Type */
    --gzl-font-display: 'Geist', 'Inter', system-ui, -apple-system, sans-serif;
    --gzl-font:         'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --gzl-font-mono:    'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;

    /* Map a few Bootstrap vars so legacy utility classes inherit our palette. */
    --bs-body-bg:               var(--gzl-surface);
    --bs-body-color:            var(--gzl-ink);
    --bs-body-font-family:      var(--gzl-font);
    --bs-border-color:          var(--gzl-border);
    --bs-primary:               var(--gzl-primary);
    --bs-primary-rgb:           200, 16, 46;
    --bs-link-color:            var(--gzl-ink);
    --bs-link-hover-color:      var(--gzl-primary);
    --bs-secondary-color:       var(--gzl-muted);
}

[data-bs-theme="dark"] {
    --gzl-primary:       #ff5566;
    --gzl-primary-hover: #ff7080;
    --gzl-primary-soft:  rgba(255, 85, 102, .14);
    --gzl-primary-fg:    #ffffff;

    --gzl-ink:    #f5f5f7;
    --gzl-ink-3:  #c4c4c8;
    --gzl-muted:  #8a8a8f;

    --gzl-surface:   #050507;
    --gzl-surface-2: #101013;
    --gzl-surface-3: #18181d;

    --gzl-border:   rgba(255,255,255,.10);
    --gzl-border-2: rgba(255,255,255,.06);

    --gzl-success:      #2dbf72;
    --gzl-success-soft: rgba(45, 191, 114, .14);
    --gzl-warn:         #ffb547;
    --gzl-warn-soft:    rgba(255, 181, 71, .14);
    --gzl-danger:       #ff5566;
    --gzl-danger-soft:  rgba(255, 85, 102, .14);

    --gzl-elev-1: 0 1px 2px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.5);

    --bs-primary-rgb: 255, 85, 102;
}
