/* ══════════════════════════════════════════════════════════════════════════
   VOLT DOOR — the token layer for the front doors (auth.html, register.html)
   Oct 10 2026, lane L3 (Carlos: "a whole new UI design on our login page and
   our register page … sick, premium, first impressions").

   The ONLY file in this lane that may hold a colour literal. Every value is
   lifted, not invented:
     day    athlete/css/volt-day.css:11-40   (--canvas/--surface/--ink/--volt…)
     night  athlete/css/volt-day.css:76-82   (the same block the athlete app
            paints for html[data-theme="dark"])
     status platform/css/volt-day.css        (live red / turf / gold / info)
   Design direction: the Oct 6 "Sign-in in Volt Day" mock (round 3), lifted
   rule-by-rule in css/auth-volt.css.

   SCOPE. Tokens live on body.sc-volt, so a page opts in with one class and
   nothing else on the site moves. They are --gc-* names: inside a door the
   design-system tokens resolve to Volt, which is how the coach app's own
   daylight layer works (css/coach-day.css).

   MODE. Day by default (the chosen language is Volt DAY). Night when the OS
   is dark — unless the visitor explicitly chose light (gc-loader writes
   data-theme="light" for that), or when a page says data-theme="dark".
   ══════════════════════════════════════════════════════════════════════════ */

body.sc-volt {
    /* surfaces */
    --gc-bg-app: #eef1f5;
    --gc-bg-panel: #ffffff;
    --gc-bg-elevated: #f2f4f8;
    --gc-bg-hover: #fafbfd;
    /* ink */
    --gc-text-color-primary: #0d1220;
    --gc-text-color-secondary: #5b6472;
    --gc-text-color-muted: #97a0ad;
    --gc-text-color-link: #4c7a00;
    /* hairlines */
    --gc-border-subtle: #d9dee6;
    --gc-border-strong: #c3cad5;
    /* volt — a FILL with dark ink, never text on a light surface */
    --gc-volt: #B8FF00;
    --gc-volt-deep: #8fd400;
    --gc-volt-glow: rgba(143, 212, 0, 0.35);
    --gc-volt-ring: rgba(184, 255, 0, 0.30);
    --gc-text-on-accent: #05070c;
    --gc-accent-primary: #8fd400;
    /* the brand plate (black in both modes) and what sits on it */
    --gc-plate: #0a0d14;
    --gc-plate-ink: #ffffff;
    --gc-plate-hairline: rgba(255, 255, 255, 0.08);
    /* status — semantic hues carry state */
    --gc-status-error: #d92d20;
    --gc-status-errorMuted: rgba(217, 45, 32, 0.08);
    --gc-status-success: #16a34a;
    --gc-status-successMuted: rgba(22, 163, 74, 0.10);
    --gc-status-warning: #d97706;
    --gc-status-info: #2563eb;
    --gc-status-infoMuted: rgba(37, 99, 235, 0.08);
    /* depth */
    --gc-shadow-card: 0 1px 2px rgba(13, 18, 32, 0.04), 0 12px 32px rgba(13, 18, 32, 0.06);
    --gc-bar-glass: rgba(10, 13, 20, 0.96);
    /* the league crest tile: neutral graphite, both modes (Carlos: purple is
       banned brand-wide; a league without a logo gets its initials here) */
    --gc-crest-tile: #2a2f3a;
    --gc-crest-ink: #ffffff;
    /* the field: yard lines on the hero, hairline-quiet */
    --gc-field-line: rgba(13, 18, 32, 0.05);
    /* type — the four faces, Orbitron numerals only */
    --gc-font-display: 'Saira Condensed', 'Rajdhani', system-ui, sans-serif;
    --gc-font-body: 'Rajdhani', system-ui, sans-serif;
    --gc-font-data: 'Orbitron', ui-monospace, monospace;
    color-scheme: light;
}

/* NIGHT — athlete/css/volt-day.css:76-82, verbatim values. */
html[data-theme="dark"] body.sc-volt {
    --gc-bg-app: #0a0d14;
    --gc-bg-panel: #131722;
    --gc-bg-elevated: #1b2130;
    --gc-bg-hover: #181e2b;
    --gc-text-color-primary: #e8ebf2;
    --gc-text-color-secondary: #9aa4b8;
    --gc-text-color-muted: #5f6a7e;
    --gc-text-color-link: #9edd1e;
    --gc-border-subtle: #242b3a;
    --gc-border-strong: #374156;
    --gc-volt-glow: rgba(143, 212, 0, 0.22);
    --gc-status-error: #ff6b63;
    --gc-status-errorMuted: rgba(255, 107, 99, 0.10);
    --gc-status-infoMuted: rgba(96, 165, 250, 0.10);
    --gc-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.30), 0 16px 40px rgba(0, 0, 0, 0.35);
    --gc-plate-hairline: #242b3a;
    --gc-field-line: rgba(255, 255, 255, 0.035);
    color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) body.sc-volt {
        --gc-bg-app: #0a0d14;
        --gc-bg-panel: #131722;
        --gc-bg-elevated: #1b2130;
        --gc-bg-hover: #181e2b;
        --gc-text-color-primary: #e8ebf2;
        --gc-text-color-secondary: #9aa4b8;
        --gc-text-color-muted: #5f6a7e;
        --gc-text-color-link: #9edd1e;
        --gc-border-subtle: #242b3a;
        --gc-border-strong: #374156;
        --gc-volt-glow: rgba(143, 212, 0, 0.22);
        --gc-status-error: #ff6b63;
        --gc-status-errorMuted: rgba(255, 107, 99, 0.10);
        --gc-status-infoMuted: rgba(96, 165, 250, 0.10);
        --gc-shadow-card: 0 1px 2px rgba(0, 0, 0, 0.30), 0 16px 40px rgba(0, 0, 0, 0.35);
        --gc-plate-hairline: #242b3a;
        --gc-field-line: rgba(255, 255, 255, 0.035);
        color-scheme: dark;
    }
}
