/* ============================================================
   Crie o Novo, design R2: tokens canônicos (multi-tenant)
   Direção: Editorial fiscal / Livro-razão moderno
   Inspiração: The Economist + Bloomberg Wealth + folha de
   livro contábil. Hairlines, tipografia serifada autoritária,
   números tabulares, papel creme, acento dourado raro.

   Fontes:
     - Fraunces (display, opsz variável): títulos editoriais
     - Public Sans (body): texto corrente humanista, oficial
     - JetBrains Mono: números, métricas, slugs técnicos

   Cores brand (sobrescritas por cn_tenant_css_vars do tenant):
     --cn-brand:      cor primária do escritório (default petróleo)
     --cn-brand-dark: derivada escurecida 18%
     --cn-brand-ink:  derivada mais profunda para texto sobre papel
     --cn-accent:     cor secundária (dourado/acento raro)
     --cn-accent-dark: derivada escurecida para hover
   Cores derivadas (papel + tinta, sempre fixas):
     --paper-cream:  #F4EFE6 (folio contábil)
     --paper-bone:   #ECE4D2 (creme escuro)
     --ink-black:    #1A1F1D (tinta preta)
   ============================================================ */

:root {
    /* Paleta brand (defaults; tenant injeta sobrescrevendo) */
    --cn-brand: #5A8077;
    --cn-brand-dark: #3D5A53;
    --cn-brand-ink: #2A3F3A;
    --cn-accent: #E5B33D;
    --cn-accent-dark: #B88A1E;

    /* Papel / Tinta (fixos, jamais variam por tenant) */
    --paper-cream: #F4EFE6;
    --paper-bone:  #ECE4D2;
    --paper-warm:  #FBF8F1;
    --paper-edge:  #DCD2BD;
    --ink-black:   #1A1F1D;
    --ink-graphite:#3A3F3D;
    --ink-muted:   #6E6A60;
    --ink-faint:   #9C978B;

    /* Estados fiscais */
    --status-pendente: #B88A1E;
    --status-revisao:  var(--cn-brand);
    --status-transmitida: #2A6B47;
    --status-erro: #8B2C1F;

    /* Tipografia */
    --ff-display: "Fraunces", "Times New Roman", Georgia, serif;
    --ff-body:    "Public Sans", -apple-system, "Segoe UI", sans-serif;
    --ff-mono:    "JetBrains Mono", "Consolas", monospace;

    /* Escala tipográfica editorial */
    --fs-eyebrow: 11px;
    --fs-tiny:    12px;
    --fs-small:   13px;
    --fs-body:    15px;
    --fs-lead:    18px;
    --fs-h4:      22px;
    --fs-h3:      30px;
    --fs-h2:      44px;
    --fs-h1:      72px;
    --fs-hero:    112px;

    /* Hairlines */
    --rule-hair: 1px solid var(--ink-black);
    --rule-soft: 1px solid rgba(26,31,29,.18);
    --rule-edge: 1px solid var(--paper-edge);

    /* Espaçamento */
    --sp-1: 4px;
    --sp-2: 8px;
    --sp-3: 12px;
    --sp-4: 16px;
    --sp-5: 24px;
    --sp-6: 36px;
    --sp-7: 56px;
    --sp-8: 88px;

    /* Sombras (papel sobre papel, suaves) */
    --shadow-paper: 0 1px 0 rgba(26,31,29,.04), 0 20px 50px -30px rgba(26,31,29,.22);
}

/* Reset compacto */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
    margin: 0;
    font-family: var(--ff-body);
    background: var(--paper-cream);
    color: var(--ink-black);
    font-size: var(--fs-body);
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* Utilitários tipográficos editoriais */
.eyebrow {
    font-family: var(--ff-body);
    font-size: var(--fs-eyebrow);
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--ink-graphite);
}
.eyebrow .dot {
    display: inline-block;
    width: 6px; height: 6px;
    background: var(--cn-accent);
    border-radius: 50%;
    margin: 0 8px 1px 0;
    vertical-align: middle;
}
.serif-display {
    font-family: var(--ff-display);
    font-optical-sizing: auto;
    font-weight: 380;
    font-style: normal;
    font-variation-settings: "opsz" 144, "SOFT" 30;
    letter-spacing: -0.025em;
    line-height: 0.96;
    color: var(--ink-black);
}
.mono { font-family: var(--ff-mono); font-feature-settings: "tnum" 1, "zero" 1; }
.num  { font-family: var(--ff-mono); font-feature-settings: "tnum" 1, "zero" 1; letter-spacing: -0.01em; }

/* Hairline rule */
.rule { display: block; height: 1px; background: var(--ink-black); border: 0; margin: 0; }
.rule-soft { display: block; height: 1px; background: rgba(26,31,29,.18); border: 0; margin: 0; }

/* Selection */
::selection { background: var(--cn-accent); color: var(--ink-black); }
