/* ==========================================================================
   Marc'Antonio Lopez — personal design system
   tokens.css · single source of truth
   Colour, type, space, radius and motion. No component styles here.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Light theme (default)
   -------------------------------------------------------------------------- */

:root,
[data-theme="light"] {
  color-scheme: light;

  /* Base — brand truth from brand.json */
  --paper: #ffffff;
  --surface: #f5f5f5;
  --surface-raised: #ffffff;
  --ink: #000000;
  --ink-secondary: #8c8c8c;
  --ink-muted: #8c8c8c;
  --hairline: #dbdbdb;
  --hairline-strong: #dbdbdb;
  --pure-black: #000000;
  --pure-white: #ffffff;

  /* Accent — single brand accent (#d43511 red) + secondary (#023b95 blue) */
  --accent-a: #d43511;
  --accent-a-strong: #d43511;
  --accent-a-tint: #fdecea;

  --accent-secondary: #023b95;

  /* Semantic tokens — components only use these */
  --bg: var(--paper);
  --bg-subtle: var(--surface);
  --bg-raised: var(--surface-raised);
  --fg: var(--ink);
  --fg-secondary: var(--ink-secondary);
  --fg-muted: var(--ink-muted);
  --border: var(--hairline);
  --border-strong: var(--hairline-strong);
  --accent: var(--accent-a);
  --accent-strong: var(--accent-a-strong);
  --accent-tint: var(--accent-a-tint);
  --focus-ring: var(--accent);
  --selection-bg: var(--accent-tint);
  --selection-fg: var(--accent-strong);

  /* Interactive surfaces */
  --btn-primary-bg: var(--ink);
  --btn-primary-fg: var(--paper);
  --btn-primary-bg-hover: var(--pure-black);
  --btn-ghost-hover-bg: var(--surface);
  --disabled-fg: var(--ink-muted);
  --disabled-border: var(--border);

  /* Status — derivati dal seed antd (system/tokens.default.json, on-brand by construction) */
  --success: #52c41a;
  --success-bg: #f6ffed;
  --success-border: #b6eb8f;
  --warning: #faad14;
  --warning-bg: #fffbe6;
  --warning-border: #ffe58f;
  --danger: #ff4d4f;
  --danger-bg: #fff2f0;
  --danger-border: #ffccc7;
  /* colorInfo antd (= primary rosso) volutamente NON usato per --info:
     un "info" rosso si confonde con danger — si usa il blu secondario. */
  --info: var(--accent-secondary);
  --info-bg: var(--accent-a-tint);
  --info-border: var(--accent);

  /* Status text — varianti contrast-safe per il TESTO (badge/alert/amount):
     --success #52c41a su bianco è ~2:1, mai usarlo come colore testo. */
  --success-text: #389e0d;
  --warning-text: #d48806;
  --danger-text: #d9363d;
  --info-text: var(--accent-secondary);

  /* Type — Inter per brand.json */
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI",
    "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Monaco, Consolas,
    "Liberation Mono", "Courier New", monospace;

  --text-xs: 0.75rem;      /* 12 */
  --text-sm: 0.8125rem;    /* 13 */
  --text-base: 1.0625rem;  /* 17 */
  --text-md: 1.1875rem;    /* 19 */
  --text-lg: 1.5rem;       /* 24 */
  --text-xl: clamp(1.75rem, 2.2vw, 2rem);          /* 28–32 */
  --text-2xl: clamp(2rem, 3.2vw, 2.75rem);         /* 32–44 */
  --text-display: clamp(2.75rem, 6.2vw, 4.75rem);  /* 44–76 */

  --leading-tight: 1.02;
  --leading-heading: 1.12;
  --leading-snug: 1.4;
  --leading-body: 1.65;

  --tracking-tight: -0.032em;
  --tracking-heading: -0.018em;
  --tracking-normal: 0;
  --tracking-label: 0.11em;

  /* Space — 4px base, 8px rhythm */
  --space-1: 0.25rem;   /* 4 */
  --space-2: 0.5rem;    /* 8 */
  --space-3: 0.75rem;   /* 12 */
  --space-4: 1rem;      /* 16 */
  --space-5: 1.5rem;    /* 24 */
  --space-6: 2rem;      /* 32 */
  --space-7: 2.5rem;    /* 40 */
  --space-8: 3rem;      /* 48 */
  --space-9: 4rem;      /* 64 */
  --space-10: 5rem;     /* 80 */
  --space-11: 6rem;     /* 96 */
  --space-12: 8rem;     /* 128 */

  --section-y: clamp(3.5rem, 7.5vw, 7rem);

  /* Radius — 8px per brand.json */
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-pill: 999px;

  /* Layout */
  --container: 1160px;
  --gutter: clamp(1.25rem, 4vw, 2.5rem);
  --label-col: 190px;
  --measure: 64ch;
  --measure-narrow: 52ch;
  --header-h: 60px;

  /* Motion */
  --dur-fast: 120ms;
  --dur-base: 200ms;
  --dur-slow: 320ms;
  --ease-out: cubic-bezier(0.2, 0.65, 0.2, 1);
  --ease-in-out: cubic-bezier(0.45, 0, 0.25, 1);
}

/* --------------------------------------------------------------------------
   Dark theme — designed separately, not an inversion
   -------------------------------------------------------------------------- */

[data-theme="dark"] {
  color-scheme: dark;

  --paper: #131311;
  --surface: #1c1c1a;
  --surface-raised: #1f1f1b;
  --ink: #f5f5f0;
  --ink-secondary: #c4c2b9;
  --ink-muted: #a3a3a3;
  --hairline: #303030;
  --hairline-strong: #3f3f38;

  --accent-a: #ff6b4f;
  --accent-a-strong: #ff6b4f;
  --accent-a-tint: #2a110b;

  --bg: var(--paper);
  --bg-subtle: var(--surface);
  --bg-raised: var(--surface-raised);
  --fg: var(--ink);
  --fg-secondary: var(--ink-secondary);
  --fg-muted: var(--ink-muted);
  --border: var(--hairline);
  --border-strong: var(--hairline-strong);
  --selection-bg: var(--accent-tint);
  --selection-fg: var(--accent-strong);

  --btn-primary-bg: var(--ink);
  --btn-primary-fg: #14140f;
  --btn-primary-bg-hover: #ffffff;
  --btn-ghost-hover-bg: #22221e;
  --disabled-fg: #63625b;
  --disabled-border: #2f2f29;

  /* Status — derivati dal seed antd (system/tokens.dark.json).
     Nota: tokens.css non ridefinisce --accent-secondary nel dark (eredita #023b95
     da :root; il colorLink dark antd #1a4a8c vive solo in system/variables.dark.css).
     colorInfo antd dark (= accent rosso) volutamente NON usato per --info. */
  --success: #64b537;
  --success-bg: #192913;
  --success-border: #304d20;
  --warning: #dcaa37;
  --warning-bg: #312512;
  --warning-border: #5b4920;
  --danger: #dc6966;
  --danger-bg: #32191a;
  --danger-border: #5b3231;
  --info: var(--accent-secondary);
  --info-bg: var(--accent-a-tint);
  --info-border: var(--accent);

  /* Status text — varianti contrast-safe per il TESTO (badge/alert/amount) */
  --success-text: #518f2f;
  --warning-text: #ad872f;
  --danger-text: #ad5553;
  --info-text: var(--accent-secondary);
}
