/* ============================================================================
   Open9 — the design token layer.

   This file loads FIRST, ahead of the seven component stylesheets, and is the
   only place a raw colour is allowed to be written down. Everything after it
   references these names, so re-theming the site is an edit here rather than a
   find-and-replace across ~100 KB of minified CSS.

   The scale is deliberately short. Every token below earns its place by being
   used for a distinct job; there is no --k-lime-400 ramp, because a ramp
   invites picking by shade instead of by role.

   The palette is Open9's: near-black ground, a slightly lighter card, and one
   very loud lime accent that only ever carries dark text.
   ============================================================================ */

:root{
  color-scheme:dark;
  --k-pokemon-ability:#bf2733;
  --k-op-timing:#2264a9;
  --k-op-turn:#216d87;
  --k-op-limit:#a22f75;
  --k-op-keyword:#bf592d;
  --k-op-trigger:#f4ce43;
  --k-op-don:#f8f4e8;
  --k-on-op-light:#181818;
  --k-magic-keyword:#514478;

  /* -- typography ---------------------------------------------------------- */
  --k-heading:"Hanken Grotesk",Play,Manrope,ui-sans-serif,system-ui,"Segoe UI",sans-serif;

  /* -- neutrals -------------------------------------------------------------
     Near-neutral rather than blue-black: the ground reads as unlit studio wall
     so that card scans and their own colour are the only saturated things on
     the page. -- */
  --k-paper:#161616;        /* page ground */
  --k-paper-2:#202020;      /* raised: table heads, inset wells, hovers */
  --k-surface:#1e1e1e;      /* cards, panels, anything raised off the page */
  --k-rule:#2c2c2c;         /* default border */
  --k-rule-soft:#242424;    /* divider inside a panel */
  --k-rule-hard:#3d3d3d;    /* emphasised border, form field edges */

  /* -- text ----------------------------------------------------------------- */
  --k-ink:#fff;             /* headings and body copy */
  --k-ink-soft:#a9a9b8;     /* secondary copy, labels */
  --k-ink-faint:#7a798a;    /* placeholders, timestamps, disabled */

  /* -- accent --------------------------------------------------------------
     One accent, used for anything clickable. Open9's lime is far too bright to
     carry white text, so --k-on-accent is the ground colour, not white. Any
     fill using --k-accent must set that colour explicitly. -- */
  --k-accent:#ddf247;
  --k-accent-deep:#c9de2f;  /* hover / pressed */
  --k-accent-soft:#2b2f14;  /* tinted fill behind accent content */
  --k-on-accent:#161616;

  /* -- stage ---------------------------------------------------------------
     The one band that is not the page ground: the storefront showcase and the
     admin icon rail. On a dark site it separates by hue rather than by
     lightness — Open9's blue-violet — so it still needs its own foreground
     set, because --k-ink-soft goes muddy against it. -- */
  --k-stage:#1f1f2c;
  --k-stage-2:#343444;        /* raised element on the stage: hover, borders */
  --k-on-stage:#fff;
  --k-on-stage-soft:#8a8aa0;
  --k-accent-on-stage:#ddf247;

  /* -- live / auction ------------------------------------------------------
     Separate from the accent on purpose: "this is running right now" is not
     the same signal as "this is a link". -- */
  --k-live:#ff8a3d;
  --k-live-soft:#39220f;

  /* -- semantic ------------------------------------------------------------- */
  --k-ok:#3cd48a;      --k-ok-soft:#13301f;
  --k-warn:#f5c451;    --k-warn-soft:#352a12;
  --k-crit:#f87171;    --k-crit-soft:#3a1c1c;

  /* -- card rule labels -----------------------------------------------------
     Printed One Piece cards distinguish timings, limits and keywords with
     compact colour bands. These are content colours rather than navigation
     accent colours, so they keep their own stable palette. -- */
  --k-effect-timing:#168bc1;
  --k-effect-limit:#d64c67;
  --k-effect-turn:#7567d8;
  --k-effect-counter:#299b68;
  --k-effect-keyword:#b97922;
  --k-effect-reference:#7f56c5;
  --k-effect-generic:#526173;
  --k-on-effect:#fff;
  /* Riftbound printed bands: timing / combat / passive / utility.
     Artwork references and full keyword mapping: docs/riftbound-keyword-colors.md. */
  --k-riftbound-teal:#277566;
  --k-riftbound-rose:#b52d65;
  --k-riftbound-lime:#a0b52b;
  --k-riftbound-gray:#6b6c69;
  --k-on-riftbound-lime:#101710;
  --k-riftbound-energy:#f1f0e9;
  --k-on-riftbound-energy:#171717;
  --k-riftbound-energy-rim:#a3a29b;

  /* -- form ----------------------------------------------------------------- */
  --k-radius:16px;
  --k-radius-sm:10px;

  /* Two shadows only. A dark theme cannot read depth from a contact shadow the
     way a light one does, so these are deeper and wider and do most of their
     work as a halo under a raised card. */
  --k-shadow-sm:0 1px 2px rgba(0,0,0,.5);
  --k-shadow:0 2px 4px rgba(0,0,0,.4),0 14px 34px -18px rgba(0,0,0,.85);

  /* -- storefront v2 ------------------------------------------------------
     Scoped by storefront.css. These values are defined here so the customer
     redesign can use a dedicated premium-dark system without changing the
     established admin aliases that still consume --k-*. */
  --sf-bg:#0b0c0e;
  --sf-surface:#121418;
  --sf-surface-raised:#181b20;
  --sf-surface-hover:#20242b;
  --sf-text:#f5f7fa;
  --sf-text-muted:#9298a3;
  --sf-text-faint:#6f7682;
  --sf-border:rgba(255,255,255,.08);
  --sf-border-strong:rgba(255,255,255,.16);
  --sf-overlay:rgba(5,6,8,.76);
  --sf-overlay-rgb:5,6,8;
  --sf-accent:#ddf247;
  --sf-accent-rgb:221,242,71;
  --sf-accent-hover:#cfe63b;
  --sf-on-accent:#0b0c0e;
  --sf-live:#ff8a3d;
  --sf-live-soft:#2a1a11;
  --sf-success:#3cd48a;
  --sf-danger:#f87171;
  --sf-foil-pink:rgba(255,0,150,.22);
  --sf-foil-gold:rgba(255,220,0,.22);
  --sf-foil-green:rgba(0,255,170,.22);
  --sf-foil-blue:rgba(0,180,255,.22);
  --sf-foil-violet:rgba(150,80,255,.22);
  --sf-foil-shadow:0 8px 25px rgba(0,0,0,.45);
  --sf-radius-sm:8px;
  --sf-radius:14px;
  --sf-radius-lg:22px;
  --sf-shadow:0 18px 50px rgba(0,0,0,.34);
  --sf-content:min(1440px,calc(100vw - 64px));

  /* -- deck lab -----------------------------------------------------------
     A separate focused workspace: colder ink, mint instrumentation and violet
     assistant states distinguish deck construction from the marketplace while
     keeping the same product imagery and typography. */
  /* Deck Lab is a specialist workspace inside the storefront brand, not a second
     product identity. Its aliases deliberately inherit the storefront palette. */
  --dl-bg:var(--sf-bg);
  --dl-bg-raised:var(--sf-surface);
  --dl-surface:var(--sf-surface);
  --dl-surface-raised:var(--sf-surface-raised);
  --dl-surface-hover:var(--sf-surface-hover);
  --dl-border:var(--sf-border);
  --dl-border-strong:var(--sf-border-strong);
  --dl-text:var(--sf-text);
  --dl-text-muted:var(--sf-text-muted);
  --dl-text-faint:var(--sf-text-faint);
  --dl-accent:var(--sf-accent);
  --dl-accent-strong:var(--sf-accent-hover);
  --dl-accent-soft:var(--k-accent-soft);
  --dl-on-accent:var(--sf-on-accent);
  --dl-violet:var(--sf-accent);
  --dl-violet-soft:var(--k-accent-soft);
  --dl-blue:var(--sf-success);
  --dl-blue-soft:var(--k-ok-soft);
  --dl-warning:var(--sf-live);
  --dl-danger:var(--sf-danger);
  --dl-overlay:var(--sf-overlay);
  --dl-grid:rgba(221,242,71,.045);
  --dl-shadow:var(--sf-shadow);
  --dl-card-red:#e85a5a;
  --dl-card-green:#45b97c;
  --dl-card-blue:#4f8fe8;
  --dl-card-purple:#9069d8;
  --dl-card-black:#727984;
  --dl-card-yellow:#e4bd42;
  --dl-game-one-piece:#ed6558;
  --dl-game-pokemon:#ffcb45;
  --dl-game-riftbound:#72c9d4;
  --dl-game-riftbound-warm:#ee8b4a;
  --dl-domain-calm:#70bfe5;
  --dl-domain-mind:#8c75dc;
  --dl-domain-body:#54b978;
  --dl-domain-chaos:#da5b78;
  --dl-domain-fury:#ee7a42;
  --dl-domain-order:#e5c452;
  --dl-domain-colorless:#8b939d;

  /* -- type ----------------------------------------------------------------
     Open9's pairing: Manrope for everything structural, Azeret Mono for the
     small uppercase meta labels (kickers, prices, countdowns). Both are pulled
     from Google Fonts by the active shell's <HeadContent> rather than an
     @import here, because an @import cannot start downloading until this file
     has itself arrived. The system stacks behind them show in the meantime. -- */
  --k-sans:Manrope,ui-sans-serif,system-ui,"Segoe UI Variable Text","Segoe UI",Roboto,-apple-system,BlinkMacSystemFont,sans-serif;
  --k-mono:"Azeret Mono",ui-monospace,"Cascadia Mono",Consolas,"SF Mono",Menlo,monospace;
}

/* Figures line up in columns all over the admin: order totals, ledger rows,
   bid history. Tabular by default, everywhere. */
:root{font-variant-numeric:tabular-nums}
