/* ============================================================
   Atos Digitais — Design Tokens v1.0
   ============================================================
   Sistema institucional para legaltech, compliance e
   infraestrutura digital regulatória.
   Tokens organizados em 4 camadas:
     1. Primitives  — valores brutos (cores, tamanhos)
     2. Semantic    — papéis (surface, text, accent)
     3. Component   — específicos de componentes
     4. Document    — específicos de documento (PDF/A4)
   ============================================================ */

:root {
  color-scheme: light;

  /* ---------- 1. PRIMITIVES — INK SCALE ---------- */
  --ink-950: #050B14;
  --ink-900: #0A1628;
  --ink-800: #142036;
  --ink-700: #1F2D44;
  --ink-600: #2E3D55;
  --ink-500: #4A5A72;
  --ink-400: #6B7C93;
  --ink-300: #98A4B8;
  --ink-200: #C8D0DD;
  --ink-100: #E5E9F0;
  --ink-50:  #F4F6F9;
  --paper:   #FBFBF9;
  --paper-pure: #FFFFFF;

  /* ---------- 1. PRIMITIVES — ACCENTS ---------- */
  --cobalt-700: #1F44CC;
  --cobalt-600: #2750E5;
  --cobalt-500: #2E5BFF;       /* primary accent */
  --cobalt-400: #5C7DFF;
  --cobalt-100: #DEE5FF;
  --cobalt-50:  #EEF2FF;

  --brass-700:  #8C6A30;
  --brass-600:  #A37D3A;
  --brass-500:  #B68C42;        /* seal accent */
  --brass-400:  #C9A86A;
  --brass-100:  #EFE3CC;
  --brass-50:   #F7F0E2;

  /* Semânticas — uso muito restrito */
  --success:    #1F8A5B;
  --warning:    #B47800;
  --danger:     #B5392C;

  /* ---------- 2. SEMANTIC ROLES ---------- */
  --bg:               var(--paper);
  --bg-elevated:      var(--paper-pure);
  --bg-sunken:        var(--ink-50);
  --bg-inverse:       var(--ink-900);
  --bg-inverse-2:     var(--ink-800);

  --text:             var(--ink-900);
  --text-muted:       var(--ink-500);
  --text-subtle:      var(--ink-400);
  --text-faint:       var(--ink-300);
  --text-inverse:     var(--paper);
  --text-inverse-muted: var(--ink-300);

  --line:             var(--ink-100);
  --line-strong:      var(--ink-200);
  --line-inverse:     rgba(255,255,255,0.10);
  --line-inverse-strong: rgba(255,255,255,0.18);

  --accent:           var(--cobalt-500);
  --accent-hover:     var(--cobalt-600);
  --accent-soft:      var(--cobalt-50);
  --accent-on:        var(--paper-pure);

  --seal:             var(--brass-500);
  --seal-soft:        var(--brass-50);

  /* ---------- 3. TYPOGRAPHY ---------- */
  --font-sans: "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;
  --font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --font-serif: "Source Serif 4", "Source Serif Pro", Georgia, "Times New Roman", serif;

  /* Modular scale 1.250 — base 16 */
  --t-12: 0.75rem;     /* 12 */
  --t-13: 0.8125rem;   /* 13 — caption / mono */
  --t-14: 0.875rem;    /* 14 — small body */
  --t-16: 1rem;        /* 16 — body */
  --t-18: 1.125rem;    /* 18 — lead */
  --t-20: 1.25rem;     /* 20 — h5 */
  --t-24: 1.5rem;      /* 24 — h4 */
  --t-30: 1.875rem;    /* 30 — h3 */
  --t-36: 2.25rem;     /* 36 — h2 */
  --t-48: 3rem;        /* 48 — h1 */
  --t-60: 3.75rem;     /* 60 — display */
  --t-80: 5rem;        /* 80 — display xl */

  --lh-tight:   1.08;
  --lh-snug:    1.2;
  --lh-base:    1.5;
  --lh-relaxed: 1.65;
  --lh-loose:   1.8;

  --tracking-tight:  -0.02em;
  --tracking-normal: -0.01em;
  --tracking-wide:    0.04em;
  --tracking-mono:    0;
  --tracking-eyebrow: 0.12em;

  --weight-regular:  400;
  --weight-medium:   500;
  --weight-semibold: 600;
  --weight-bold:     700;

  /* ---------- 3. SPACING — base 4 ---------- */
  --s-0:   0;
  --s-1:   4px;
  --s-2:   8px;
  --s-3:   12px;
  --s-4:   16px;
  --s-5:   20px;
  --s-6:   24px;
  --s-8:   32px;
  --s-10:  40px;
  --s-12:  48px;
  --s-16:  64px;
  --s-20:  80px;
  --s-24:  96px;
  --s-32:  128px;
  --s-40:  160px;

  /* ---------- 3. RADII ---------- */
  --r-0: 0;
  --r-1: 2px;       /* selos, micro */
  --r-2: 4px;       /* default institucional */
  --r-3: 6px;       /* inputs */
  --r-4: 8px;       /* cards */
  --r-6: 12px;      /* grandes */
  --r-pill: 999px;

  /* ---------- 3. BORDERS ---------- */
  --bw-1: 1px;
  --bw-2: 2px;

  /* ---------- 3. SHADOWS — discretas, institucionais ---------- */
  --shadow-0: none;
  --shadow-1: 0 1px 2px rgba(10, 22, 40, 0.04), 0 0 0 1px rgba(10, 22, 40, 0.04);
  --shadow-2: 0 2px 4px rgba(10, 22, 40, 0.05), 0 0 0 1px rgba(10, 22, 40, 0.05);
  --shadow-3: 0 8px 24px -8px rgba(10, 22, 40, 0.08), 0 0 0 1px rgba(10, 22, 40, 0.06);
  --shadow-pop: 0 24px 48px -16px rgba(10, 22, 40, 0.18), 0 0 0 1px rgba(10, 22, 40, 0.06);

  /* ---------- 3. MOTION ---------- */
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);
  --ease-emphasized: cubic-bezier(0.2, 0, 0, 1.2);
  --dur-1: 120ms;
  --dur-2: 200ms;
  --dur-3: 320ms;

  /* ---------- 4. DOCUMENT (A4 / PDF) ---------- */
  --doc-width:  210mm;
  --doc-height: 297mm;
  --doc-margin-top:    25mm;
  --doc-margin-right:  20mm;
  --doc-margin-bottom: 25mm;
  --doc-margin-left:   20mm;
  --doc-col-count: 12;
  --doc-col-gap:   6mm;

  /* ---------- LAYOUT ---------- */
  --max-prose: 68ch;
  --max-doc:   1200px;
  --max-page:  1440px;
}

/* ============================================================
   DARK MODE — superfícies invertem, acento permanece
   ============================================================ */
[data-theme="dark"] {
  color-scheme: dark;

  --bg:               var(--ink-950);
  --bg-elevated:      var(--ink-900);
  --bg-sunken:        #03070D;
  --bg-inverse:       var(--paper);
  --bg-inverse-2:     var(--paper-pure);

  --text:             #E9EDF2;
  --text-muted:       var(--ink-300);
  --text-subtle:      var(--ink-400);
  --text-faint:       var(--ink-500);
  --text-inverse:     var(--ink-900);
  --text-inverse-muted: var(--ink-500);

  --line:             rgba(255,255,255,0.08);
  --line-strong:      rgba(255,255,255,0.14);

  --accent:           #5C7DFF;
  --accent-hover:     #7891FF;
  --accent-soft:      rgba(46, 91, 255, 0.14);

  --seal:             var(--brass-400);
  --seal-soft:        rgba(182, 140, 66, 0.12);

  --shadow-1: 0 1px 2px rgba(0,0,0,0.4), 0 0 0 1px rgba(255,255,255,0.06);
  --shadow-2: 0 2px 4px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.06);
  --shadow-3: 0 8px 24px -8px rgba(0,0,0,0.6), 0 0 0 1px rgba(255,255,255,0.06);
}

/* ============================================================
   PALETTE VARIANTS — alternativas escolhíveis via Tweaks
   ============================================================ */
[data-palette="cobalt"] { --accent: var(--cobalt-500); --accent-hover: var(--cobalt-600); --accent-soft: var(--cobalt-50); }
[data-palette="cobalt"][data-theme="dark"] { --accent: #5C7DFF; --accent-soft: rgba(46,91,255,0.14); }

[data-palette="graphite"] { --accent: var(--ink-700); --accent-hover: var(--ink-800); --accent-soft: var(--ink-50); --seal: var(--ink-700); }
[data-palette="graphite"][data-theme="dark"] { --accent: var(--ink-200); --accent-hover: var(--ink-100); --accent-soft: rgba(255,255,255,0.06); --seal: var(--ink-200); }

[data-palette="brass"] { --accent: var(--brass-600); --accent-hover: var(--brass-700); --accent-soft: var(--brass-50); }
[data-palette="brass"][data-theme="dark"] { --accent: var(--brass-400); --accent-soft: rgba(182,140,66,0.14); }

[data-palette="forest"] { --accent: #2D6A4F; --accent-hover: #245840; --accent-soft: #E6EFEA; }
[data-palette="forest"][data-theme="dark"] { --accent: #5DAF8C; --accent-soft: rgba(45,106,79,0.18); }

/* ============================================================
   TYPE PAIRINGS — escolhíveis via Tweaks
   ============================================================ */
[data-type="geist"]   { --font-sans: "Geist", system-ui, sans-serif; --font-mono: "Geist Mono", ui-monospace, monospace; }
[data-type="plex"]    { --font-sans: "IBM Plex Sans", system-ui, sans-serif; --font-mono: "IBM Plex Mono", ui-monospace, monospace; }
[data-type="instrument"] { --font-sans: "Instrument Sans", system-ui, sans-serif; --font-mono: "JetBrains Mono", ui-monospace, monospace; }
