/* ============================================================================
   ClassicCeramicTile — SCHEME SURFACE (Theme tab round, 2026-08-24).

   The 18 tokens a colour scheme may set — the same contract vocabulary Motivo
   uses, so ONE admin editor serves both themes. Every default below is CCT's
   CURRENT rendered value (mapped from the --base-* palette in style.css), so
   loading this file is a PIXEL NO-OP by construction: nothing changes until a
   scheme row overrides a value (the Motivo tokenization precedent).

   Cascade contract (mirrors Themes/Motivo/_Layout.cshtml): this file loads
   AFTER style.css's own :root (which now ALIASES its --base-* names onto these
   tokens) — order in _Layout is tokens.css -> the _SchemeTokens partial ->
   nothing else redefines :root colours. A scheme's inline <style> therefore
   overrides these defaults, and every var() consumer in style.css follows.

   DECLARED LIMITS of the CCT tokenization (documented, not bugs):
     - Bootstrap's own --bs-* palette underneath is NOT scheme-driven.
     - --base-gray-bg (#F7F7F7 quiet fills), the green/red/blue -line and
       red/blue -bg washes have no contract equivalent and keep their literals.
     - A handful of near-miss literals (#d8d8d8, #ccc, #ff0000, brand chips)
       stay hardcoded — binding them would have CHANGED today's pixels.
     - Five contract tokens (cream, sage-deep, trade, sage, taupe) have NO CCT
       consumers — this design has no separate accent/dark-band/tint concepts —
       so the admin editor deliberately does not show them for this theme.
     - The -rgb channel companions are auto-derived only for HEX scheme values
       (ThemeColorSchemeTokens); a hand-seeded rgb()/hsl() value for
       shadow-color/scrim would store fine but not reach the rgba() consumers.
       The admin editor emits hex only, so this is a SQL-authoring note.
     - One in-passing behaviour fix rode the sweep: style.css consumed the
       UNDEFINED var(--base-transition) (a typo for --base-animation), so its
       declared transition never ran; it now does. Recorded, deliberate.
   ============================================================================ */
:root {
    /* Your brand */
    --sage-deep: #2D2D2D;        /* primary accent — CCT's accent is its ink */
    --ink: #2D2D2D;
    --trade: #2D2D2D;            /* dark bands */
    --sage: #8D8D8D;             /* accent on dark — neutral in CCT */
    /* Backgrounds & surfaces */
    --cream: #FFFFFF;            /* page background */
    --white: #FFFFFF;            /* cards */
    --stone: #E7E7E7;            /* borders, hairlines */
    --sand: #DDDDDD;             /* input borders */
    /* Text */
    --charcoal: #5B5B5B;
    --info: #8D8D8D;
    /* Product & imagery */
    --taupe: #8D8D8D;
    --shadow-color: #000000;
    --scrim: #000000;
    /* Status & badges */
    --success: #047857;
    --success-soft: #ECFDF5;
    --warning: #D97706;
    --warning-soft: #FEF3C7;
    --danger: #BE123C;

    /* "R,G,B" channel companions for the two alpha consumers below — a scheme
       only ever stores hex, and the renderer auto-derives these for overrides
       (ThemeColorSchemeTokens.TryBuildCss); these are the shipped defaults. */
    --shadow-color-rgb: 0, 0, 0;
    --scrim-rgb: 0, 0, 0;
}
