/*
 * inrealio — design tokens. The single source of visual truth (WP8.3).
 *
 * Every colour, type size, spacing step, radius, shadow and duration the
 * application uses is declared here and nowhere else. Component rules in
 * styles.css consume these names; they do not carry values of their own.
 * Reskinning the app is a change to this file, or a second file that
 * redefines these names under [data-theme] — see docs/DESIGN-SYSTEM.md.
 *
 * Extracted, not restyled: every value below is the value the app already
 * shipped with. Where the app carried two names for one thing (the admin
 * console's near-black surfaces, the onboarding flow's light palette) both
 * are kept, because unifying them is a design decision and not this
 * package's to make.
 *
 * Tints are enumerated, one token per (colour, alpha) the app uses — the
 * note above that block says why they are not derived.
 */
:root {
  /* ── surfaces (dark, the app) ──────────────────────────────────────── */
  --surface-0:#07090B;                                     /* page */
  --surface-1:#0D1318;                                     /* bars, cards */
  --surface-2:#131B22;                                     /* controls, tiles */
  --surface-3:#1A2530;                                     /* raised keys; also the admin hairline */
  --surface-video-tint:#0A1A10;                            /* the "no feed yet" radial */

  /* ── text ──────────────────────────────────────────────────────────── */
  --text-strong:#DDE8F0;
  --text-body:rgba(221,232,240,.88);
  --text-secondary:rgba(221,232,240,.72);
  /* (WP7.1) Contrast floors. Same blue-greys at a lightness that clears WCAG
     AA on --surface-0; the hierarchy dim < muted < strong is kept. */
  --text-muted:#7A93A8;
  --text-dim:#647F95;

  /* ── borders: alphas of the foreground ink ─────────────────────────── */
  --border-subtle:rgba(255,255,255,.06);
  --border-strong:rgba(255,255,255,.11);
  --border-emphasis:rgba(255,255,255,.18);
  --black:#000;
  --white:#FFF;

  /* ── accents ───────────────────────────────────────────────────────── */
  --accent-live:#00E87A;
  --accent-live-dim:rgba(0,232,122,.12);
  --accent-live-glow:rgba(0,232,122,.25);
  --on-accent-live:#04120A;                                /* text on a solid live button */
  --accent-warn:#FFB300;
  --accent-warn-dim:rgba(255,179,0,.12);
  --accent-danger:#FF3A3A;
  --accent-danger-dim:rgba(255,58,58,.12);
  --accent-info:#4DA8FF;
  --accent-info-dim:rgba(77,168,255,.12);
  --accent-vote:#B06EFF;                                   /* the badge is one purple, its tints another; kept as shipped */
  --accent-vote-dim:rgba(160,100,220,.15);
  --accent-rose:#FF5555;                                   /* the fourth avatar hue on the landing page */

  /* ── tints: every alpha the app uses, enumerated ───────────────────── */
  /* Named --<colour>-a<digits>, the digits after the point: a2 is .2, a05 is .05, a12 is .12.
     Written out rather than derived with rgb(var(--x-rgb) / a) because
     Chromium blends legacy rgba() and the modern syntax differently in the
     last bit, and this extraction had to be pixel-exact against the shipped
     app. A reskin changes the base colour and these together — the base
     values are listed once here so that is a search-and-replace. */
  --accent-danger-a05:rgba(255,58,58,.05); --accent-danger-a07:rgba(255,58,58,.07); --accent-danger-a08:rgba(255,58,58,.08); --accent-danger-a18:rgba(255,58,58,.18); --accent-danger-a2:rgba(255,58,58,.2); --accent-danger-a25:rgba(255,58,58,.25); --accent-danger-a3:rgba(255,58,58,.3); --accent-danger-a35:rgba(255,58,58,.35); --accent-danger-a4:rgba(255,58,58,.4); --accent-danger-a55:rgba(255,58,58,.55);
  --accent-info-a04:rgba(77,168,255,.04); --accent-info-a08:rgba(77,168,255,.08); --accent-info-a1:rgba(77,168,255,.1); --accent-info-a12:rgba(77,168,255,.12); --accent-info-a15:rgba(77,168,255,.15); --accent-info-a18:rgba(77,168,255,.18); --accent-info-a2:rgba(77,168,255,.2); --accent-info-a25:rgba(77,168,255,.25); --accent-info-a3:rgba(77,168,255,.3);
  --accent-live-a007:rgba(0,232,122,.007); --accent-live-a01:rgba(0,232,122,.01); --accent-live-a04:rgba(0,232,122,.04); --accent-live-a05:rgba(0,232,122,.05); --accent-live-a07:rgba(0,232,122,.07); --accent-live-a08:rgba(0,232,122,.08); --accent-live-a1:rgba(0,232,122,.1); --accent-live-a12:rgba(0,232,122,.12); --accent-live-a15:rgba(0,232,122,.15); --accent-live-a18:rgba(0,232,122,.18); --accent-live-a2:rgba(0,232,122,.2); --accent-live-a25:rgba(0,232,122,.25); --accent-live-a3:rgba(0,232,122,.3); --accent-live-a35:rgba(0,232,122,.35); --accent-live-a4:rgba(0,232,122,.4); --accent-live-a5:rgba(0,232,122,.5); --accent-live-a55:rgba(0,232,122,.55); --accent-live-a6:rgba(0,232,122,.6);
  --accent-rose-a1:rgba(255,80,80,.1);
  --accent-vote-a1:rgba(160,100,220,.1); --accent-vote-a3:rgba(160,100,220,.3);
  --accent-warn-a06:rgba(255,179,0,.06); --accent-warn-a07:rgba(255,179,0,.07); --accent-warn-a08:rgba(255,179,0,.08); --accent-warn-a1:rgba(255,179,0,.1); --accent-warn-a12:rgba(255,179,0,.12); --accent-warn-a15:rgba(255,179,0,.15); --accent-warn-a18:rgba(255,179,0,.18); --accent-warn-a2:rgba(255,179,0,.2); --accent-warn-a3:rgba(255,179,0,.3); --accent-warn-a4:rgba(255,179,0,.4); --accent-warn-a5:rgba(255,179,0,.5); --accent-warn-a6:rgba(255,179,0,.6);
  --fg-a015:rgba(255,255,255,.015); --fg-a02:rgba(255,255,255,.02); --fg-a03:rgba(255,255,255,.03); --fg-a04:rgba(255,255,255,.04); --fg-a05:rgba(255,255,255,.05); --fg-a07:rgba(255,255,255,.07); --fg-a09:rgba(255,255,255,.09); --fg-a1:rgba(255,255,255,.1); --fg-a12:rgba(255,255,255,.12); --fg-a13:rgba(255,255,255,.13); --fg-a14:rgba(255,255,255,.14); --fg-a15:rgba(255,255,255,.15); --fg-a2:rgba(255,255,255,.2); --fg-a25:rgba(255,255,255,.25); --fg-a3:rgba(255,255,255,.3);
  --light-warn-a2:rgba(138,82,0,.2);
  --shade-a4:rgba(0,0,0,.4); --shade-a5:rgba(0,0,0,.5); --shade-a55:rgba(0,0,0,.55); --shade-a8:rgba(0,0,0,.8);
  --surface-0-a7:rgba(7,9,11,.7); --surface-0-a82:rgba(7,9,11,.82); --surface-0-a9:rgba(7,9,11,.9); --surface-0-a92:rgba(7,9,11,.92); --surface-0-a93:rgba(7,9,11,.93); --surface-0-a94:rgba(7,9,11,.94); --surface-0-a96:rgba(7,9,11,.96);
  --surface-1-a94:rgba(13,19,24,.94); --surface-1-a95:rgba(13,19,24,.95);
  --text-a6:rgba(221,232,240,.6); --text-a65:rgba(221,232,240,.65); --text-a75:rgba(221,232,240,.75);

  /* ── the admin console's own surfaces ──────────────────────────────── */
  /* Slightly off the app's: an inheritance from when the console was its own
     style block. Kept verbatim; unifying them is a restyle. */
  --admin-surface-0:#080A0C;
  --admin-surface-1:#0A0D10;
  --admin-surface-2:#0C0F12;
  --admin-border:var(--surface-3);
  --admin-border-faint:#0E1419;
  --admin-border-tile:#151C24;
  --admin-text:#C8D4DC;
  --admin-text-soft:#6E8598;
  --admin-danger-dim:#4A1515;

  /* ── the light palette (actor onboarding) ──────────────────────────── */
  --light-surface-0:#F5F2EC;
  --light-surface-1:#FFFFFF;
  --light-surface-2:#EDEAE3;
  --light-border:#D8D3C8;
  --light-border-strong:#B8B2A8;
  --light-accent:#00694A;     --light-accent-dim:#E6F5EE;
  --light-warn:#8A5200;       --light-warn-dim:#FFF3E0;
  --light-text:#1C1A17;
  --light-text-muted:#7A7268;
  --light-btn-hover:#333;
  --light-danger:#B91C1C;
  --light-ok-bg:#D1FAE5;      --light-ok-fg:#065F46;
  --light-wait-bg:#FEF3C7;    --light-wait-fg:#92400E;
  --light-err-bg:#FEE2E2;     --light-err-fg:#991B1B;
  --light-spin-bg:#EEF2FF;    --light-spin-fg:#3730A3;

  /* ── type ──────────────────────────────────────────────────────────── */
  /* (WP11.4, B39) JetBrains Mono, self-hosted in styles/fonts.css, draws all nine
     Polish letters, so "9,99 zł" is one face. It replaced Share Tech Mono, which
     had none of them but ó and left DM Sans to draw the rest (WP7.5). DM Sans
     stays as the fallback for glyphs outside the subsets (arrows, symbols). */
  --font-mono:'JetBrains Mono','DM Sans',monospace;
  /* The admin console's mono, without the DM Sans fallback. It needed its own
     token when the mono could not draw Polish; now both draw the same letters. */
  --font-mono-plain:'JetBrains Mono',monospace;
  --font-display:'Rajdhani',sans-serif;
  --font-body:'DM Sans',sans-serif;
  /* (WP7.1) Type floors. px rather than rem: the HUD is laid out against
     pixel values throughout. Display sizes are the component's own. */
  --fs-micro:10px;   /* floor for uppercase, letter-spaced decorative labels */
  --fs-label:11px;
  --fs-meta:13px;    /* anything a user must read: prices, stats, chat, status */
  --fs-body:15px;
  --fs-ui:16px;      /* inputs + primary CTAs; sub-16px zooms on iOS focus */

  /* ── spacing: the eight steps the app uses most ────────────────────── */
  --space-1:4px;
  --space-2:5px;
  --space-3:6px;
  --space-4:8px;
  --space-5:10px;
  --space-6:12px;
  --space-7:14px;
  --space-8:16px;

  /* ── radii, by value: the app uses ten, and consolidating is a restyle ── */
  --radius-1:1px;  --radius-2:2px;  --radius-3:3px;  --radius-4:4px;  --radius-5:5px;
  --radius-6:6px;  --radius-7:7px;  --radius-8:8px;  --radius-9:9px;  --radius-10:10px;
  --radius-12:12px; --radius-14:14px;
  --radius-pill:20px;
  --radius-round:50%;

  /* ── shadows ───────────────────────────────────────────────────────── */
  --shadow-takeover:0 0 0 1px rgba(0,232,122,.14), 0 18px 60px rgba(0,0,0,.6);
  --shadow-thumb:0 1px 4px rgba(0,0,0,.15);

  /* ── motion ────────────────────────────────────────────────────────── */
  --motion-press:.07s;   /* a key going down */
  --motion-tap:.08s;     /* a button acknowledging */
  --motion-hover:.1s;
  --motion-fade:.15s;
  --motion-slide:.3s;

}

/* (WP7.1) Big displays. Pure size scaling for 24"-class monitors — the tokens
   move, the layout does not, and nothing below 1600px is touched. */
@media (min-width:1600px) {
  :root {
    --fs-micro:11px;
    --fs-label:12px;
    --fs-meta:14px;
    --fs-body:16px;
    --fs-ui:17px;
  }
}
