/* tokens.css — design system EntreGÔ RJ Centro ("Modernist").
 * Fonte única de cor, tipo, raio, espaço, sombra e motion.
 * Compartilhado por login/ e ops/ — os dois são o mesmo produto.
 */
/* ═══════════════════════════════════════════════════════════════════
   TIGER LOGÍSTICA · GESTÃO LOGÍSTICA DE ENTREGAS
   Direção fluida: cantos generosos, sombras difusas, bordas quase
   invisíveis, muito ar. Minimalista e limpo — a cor entra só onde
   há ação ou estado. Paleta e rampas herdadas do Modernist.
   ═══════════════════════════════════════════════════════════════════ */

/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../vendor/fonts/archivo-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../vendor/fonts/archivo-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../vendor/fonts/archivo-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../vendor/fonts/archivo-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../vendor/fonts/archivo-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../vendor/fonts/archivo-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../vendor/fonts/archivo-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../vendor/fonts/archivo-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../vendor/fonts/archivo-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../vendor/fonts/archivo-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../vendor/fonts/archivo-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Archivo';
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../vendor/fonts/archivo-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../vendor/fonts/jetbrains-a.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../vendor/fonts/jetbrains-b.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../vendor/fonts/jetbrains-c.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../vendor/fonts/jetbrains-d.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../vendor/fonts/jetbrains-e.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../vendor/fonts/jetbrains-f.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../vendor/fonts/jetbrains-a.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../vendor/fonts/jetbrains-b.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../vendor/fonts/jetbrains-c.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../vendor/fonts/jetbrains-d.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../vendor/fonts/jetbrains-e.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../vendor/fonts/jetbrains-f.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* ─── TEMA CLARO — padrão desde o rebrand de 2026-09-10 ─────────────── */
:root,
:root[data-theme="light"] {
  /* Papéis — branco de verdade, não o cinza-claro de antes */
  --color-bg:             #ffffff;
  --color-base:           #ffffff;
  --color-sidebar:        #ffffff;
  --color-panel:          #f4f6f4;
  --color-surface:        #ffffff;
  --color-surface-raised: #fbfcfb;
  --color-surface-sunken: #e8eae7;

  --color-text:           #1b1c1b;
  --color-text-primary:   #1b1c1b;
  --color-text-secondary: #434744;
  --color-text-muted:     #666b67;
  --color-text-disabled:  #a9aea9;

  --color-divider:        color-mix(in srgb, #1b1c1b 12%, transparent);
  --color-border:         color-mix(in srgb, #1b1c1b 15%, transparent);
  --color-border-strong:  color-mix(in srgb, #1b1c1b 26%, transparent);
  --color-icon-default:   #434744;
  --color-icon-subtle:    #666b67;

  /* Azul EntreGÔ — a mesma cor de marca que o app do entregador já usa
     (`app/src/index.html`, `--brand`/`--brand-hover`), não uma escolha nova. */
  --color-accent:         #2c67e8;
  --color-accent-hover:   #2454c0;
  --color-accent-pressed: #1c3f8f;
  --color-accent-soft:    #e3ecfd;
  --color-accent-border:  #a9c3f5;
  --color-on-accent:      #ffffff;
  --color-accent-2:       #6d97f5;

  /* Rampas OKLCH — mesma escala perceptual de luminosidade */
  --color-neutral-100: #f6f4f3; --color-neutral-200: #e4e1de; --color-neutral-300: #cfcbc7;
  --color-neutral-400: #bab6b6; --color-neutral-500: #9b9797; --color-neutral-600: #7d7979;
  --color-neutral-700: #605d5d; --color-neutral-800: #444141; --color-neutral-900: #2d2b2b;

  --color-accent-100: #eef3fe; --color-accent-200: #dbe6fc; --color-accent-300: #b8cdf8;
  --color-accent-400: #8aabf2; --color-accent-500: #5685ec; --color-accent-600: #2c67e8;
  --color-accent-700: #1c4bb8; --color-accent-800: #123684; --color-accent-900: #0a2358;

  --color-accent-2-100: #eef3fe; --color-accent-2-200: #dde8fc; --color-accent-2-300: #bdd2f9;
  --color-accent-2-400: #97b6f4; --color-accent-2-500: #7fa0f2; --color-accent-2-600: #6d97f5;
  --color-accent-2-700: #4a75d8; --color-accent-2-800: #33569f; --color-accent-2-900: #213a6b;

  /* Semântica — no registro quase-mono do sistema */
  --color-success:        #2f6b3c;
  --color-success-soft:   #dcead9;
  --color-warning:        #8a5a06;
  --color-warning-soft:   #f5e6c8;
  --color-danger:         #ae1800;
  --color-danger-soft:    #ffe0d9;
  --color-info:           #9e3526;
  --color-info-soft:      #ffe0da;

  --chart-1: #2c67e8; --chart-2: #9e3526; --chart-3: #605d5d;
  --chart-4: #2d2b2b; --chart-5: #8a5a06; --chart-6: #bab6b6;

  /* Elevação — sombras tintas de tinta, sobre fundo claro */
  --shadow-xs: 0 1px 2px color-mix(in srgb, #2d2b2b 7%, transparent);
  --shadow-sm: 0 2px 8px -2px color-mix(in srgb, #2d2b2b 11%, transparent);
  --shadow-md: 0 8px 24px -8px color-mix(in srgb, #2d2b2b 16%, transparent), 0 2px 6px -2px color-mix(in srgb, #2d2b2b 7%, transparent);
  --shadow-lg: 0 20px 48px -16px color-mix(in srgb, #2d2b2b 16%, transparent), 0 4px 12px -4px color-mix(in srgb, #2d2b2b 6%, transparent);
  --shadow-xl: 0 32px 72px -24px color-mix(in srgb, #2d2b2b 20%, transparent), 0 8px 20px -8px color-mix(in srgb, #2d2b2b 8%, transparent);

  /* Cantos generosos — nada é anguloso */
  --radius-xs:  6px; --radius-sm:  8px; --radius-md: 10px;
  --radius-lg: 14px; --radius-xl: 18px; --radius-2xl: 22px; --radius-full: 9999px;

  /* Escala de espaço, densidade 1.00× */
  --space-1: 4px;  --space-2: 8px;  --space-3: 12px; --space-4: 16px;
  --space-5: 20px; --space-6: 24px; --space-7: 28px; --space-8: 32px;

  --font-sans:    'Archivo', system-ui, sans-serif;
  --font-body:    'Archivo', system-ui, sans-serif;
  --font-heading: 'Archivo', system-ui, sans-serif;
  --font-heading-weight: 600;
  --font-mono:    'JetBrains Mono', ui-monospace, monospace;
  --rule: 1px solid var(--color-divider);
  color-scheme: light;
}

/* ─── TEMA ESCURO ───────────────────────────────────────────────────── */
:root[data-theme="dark"] {
  /* Grafite quente — nada de cinza chapado nem preto puro */
  --color-bg:             #0d0d0e;
  --color-base:           #0d0d0e;
  --color-sidebar:        #0d0d0e;
  --color-panel:          #171718;
  --color-surface:        #212123;
  --color-surface-raised: #2b2b2e;
  --color-surface-sunken: #1a1a1c;

  --color-text:           #ededef;
  --color-text-primary:   #ededef;
  --color-text-secondary: #b6b6bb;
  --color-text-muted:     #8a8a91;
  --color-text-disabled:  #5d5d63;

  --color-divider:        rgba(255,255,255,0.08);
  --color-border:         rgba(255,255,255,0.12);
  --color-border-strong:  rgba(255,255,255,0.22);
  --color-icon-default:   #b6b6bb;
  --color-icon-subtle:    #8a8a91;

  /* Mesmo azul EntreGÔ do tema claro, na variante clara que o app do
     entregador já usa em fundo escuro (`--brand`/`--brand-hover` de lá). */
  --color-accent:         #6d97f5;
  --color-accent-hover:   #85a9f7;
  --color-accent-pressed: #4a7ae8;
  --color-accent-soft:    #132140;
  --color-accent-border:  #2c4d8f;
  --color-on-accent:      #0a1730;
  --color-accent-2:       #4a7ae8;

  --color-neutral-100: #1a1a1c; --color-neutral-200: #232326; --color-neutral-300: #303034;
  --color-neutral-400: #43434a; --color-neutral-500: #5d5d63; --color-neutral-600: #8a8a91;
  --color-neutral-700: #b6b6bb; --color-neutral-800: #d5d5d9; --color-neutral-900: #ededef;

  --color-accent-100: #0f1b33; --color-accent-200: #132140; --color-accent-300: #1c2f57;
  --color-accent-400: #2c4d8f; --color-accent-500: #4a7ae8; --color-accent-600: #6d97f5;
  --color-accent-700: #9fb8f8; --color-accent-800: #c7d6fb; --color-accent-900: #e6edfd;

  --color-accent-2-100: #0f1b33; --color-accent-2-200: #132140; --color-accent-2-300: #1c2f57;
  --color-accent-2-400: #33569f; --color-accent-2-500: #4a75d8; --color-accent-2-600: #6d97f5;
  --color-accent-2-700: #97b6f4; --color-accent-2-800: #bdd2f9; --color-accent-2-900: #dde8fc;

  --color-success:        #7ac98d; --color-success-soft:   #16281c;
  --color-warning:        #e0b46a; --color-warning-soft:   #2b2313;
  --color-danger:         #ff7f68; --color-danger-soft:    #301511;
  --color-info:           #e69a80; --color-info-soft:      #2c1a15;

  --chart-1: #6d97f5; --chart-2: #e69a80; --chart-3: #8a8a91;
  --chart-4: #d5d5d9; --chart-5: #e0b46a; --chart-6: #43434a;

  --shadow-xs: 0 1px 2px rgba(0,0,0,0.5);
  --shadow-sm: 0 2px 10px -2px rgba(0,0,0,0.6);
  --shadow-md: 0 10px 28px -10px rgba(0,0,0,0.72), 0 2px 6px -2px rgba(0,0,0,0.45);
  --shadow-lg: 0 22px 52px -18px rgba(0,0,0,0.78), 0 4px 12px -4px rgba(0,0,0,0.5);
  --shadow-xl: 0 34px 76px -26px rgba(0,0,0,0.82), 0 8px 20px -8px rgba(0,0,0,0.55);

  color-scheme: dark;
}



/* ─── TOKENS ESTÁTICOS ──────────────────────────────────────────────── */
:root {
  --ease-out:    cubic-bezier(0.16, 1, 0.3, 1);
  --ease-spring: cubic-bezier(0.34, 1.4, 0.64, 1);
  --ease-inout:  cubic-bezier(0.45, 0, 0.15, 1);
  --ease-snappy: cubic-bezier(0.32, 0.72, 0, 1);

  --duration-fast:  180ms;
  --duration-base:  280ms;
  --duration-slow:  450ms;
  --duration-enter: 600ms;

  --z-sticky:  200;
  --z-overlay: 300;
  --z-modal:   400;
  --z-toast:   500;
}

/* ─── ALIASES RETROCOMPAT ───────────────────────────────────────────── */
:root {
  --bg-canvas: var(--color-base);
  --bg:        var(--color-base);
  --text:      var(--color-text-primary);
  --muted:     var(--color-text-muted);
  --accent:    var(--color-accent);
  --primary:   var(--color-accent);
  --border:    var(--color-border);
  --line:      var(--color-border);
}

/* ─── ESTADOS · temáticos, nunca do navegador ───────────────────────── */
:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
::selection { background: var(--color-accent-200); color: var(--color-accent-900); }
:disabled, [aria-disabled="true"] { opacity: 0.45; }
a { color: var(--color-accent-700); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--color-accent); }

/* Barras de rolagem no registro do sistema */
* { scrollbar-color: var(--color-neutral-400) transparent; scrollbar-width: thin; }
::-webkit-scrollbar { width: 11px; height: 11px; }
::-webkit-scrollbar-thumb { background: var(--color-neutral-300); border: 3.5px solid transparent; background-clip: content-box; border-radius: 999px; }
::-webkit-scrollbar-thumb:hover { background: var(--color-neutral-400); background-clip: content-box; }
::-webkit-scrollbar-track { background: transparent; }

/* ─── KEYFRAMES ─────────────────────────────────────────────────────── */
@keyframes fade-up      { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
@keyframes scale-in     { from { opacity:0; } to { opacity:1; } }
@keyframes slide-in-right { from { transform:translateX(100%); } to { transform:translateX(0); } }
@keyframes pop-pulse {
  0%   { box-shadow: 0 0 0 0 var(--color-accent-200); }
  70%  { box-shadow: 0 0 0 8px transparent; }
  100% { box-shadow: 0 0 0 0 transparent; }
}
@keyframes shimmer      { from { background-position:-200% center; } to { background-position:200% center; } }
@keyframes pulse-dot    { 0%,100% { opacity:1; } 50% { opacity:0.35; } }
@keyframes status-pulse { 0%,100% { box-shadow:0 0 0 0 var(--color-success); } 50% { box-shadow:0 0 0 4px transparent; } }
@keyframes spin-rot     { to { transform:rotate(360deg); } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ─── TIPOGRAFIA · tudo em Archivo, tudo alinhado à esquerda ────────── */
.text-display       { font-family:var(--font-heading); font-size:32px; font-weight:600; line-height:1.15; letter-spacing:-0.025em; color:var(--color-text-primary); }
.text-heading-lg    { font-family:var(--font-heading); font-size:24px; font-weight:600; line-height:1.2;  letter-spacing:-0.02em; color:var(--color-text-primary); }
.text-heading       { font-family:var(--font-heading); font-size:19px; font-weight:600; line-height:1.3;  letter-spacing:-0.015em; color:var(--color-text-primary); }
.text-subheading    { font-family:var(--font-heading); font-size:15px; font-weight:600; line-height:1.4;  letter-spacing:-0.01em; color:var(--color-text-primary); }
.text-body          { font-family:var(--font-body); font-size:14px; font-weight:400; line-height:1.55; color:var(--color-text-primary); }
.text-body-medium   { font-family:var(--font-body); font-size:14px; font-weight:500; line-height:1.55; color:var(--color-text-primary); }
.text-body-semibold { font-family:var(--font-body); font-size:14px; font-weight:600; line-height:1.55; color:var(--color-text-primary); }
.text-small         { font-family:var(--font-body); font-size:13px; font-weight:500; line-height:1.4;  color:var(--color-text-primary); }
.text-caption       { font-family:var(--font-body); font-size:12px; font-weight:500; line-height:1.35; color:var(--color-text-secondary); }
.text-micro         { font-family:var(--font-body); font-size:11px; font-weight:600; line-height:1.3;  letter-spacing:0.02em; color:var(--color-text-secondary); }
.text-overline      { font-family:var(--font-heading); font-size:11px; font-weight:600; line-height:1.3; letter-spacing:0.05em; text-transform:uppercase; color:var(--color-text-muted); }
.text-mono          { font-family:var(--font-mono); font-size:13px; font-weight:500; line-height:1.5; color:var(--color-text-primary); }
.text-muted         { color: var(--color-text-muted); }
.tabular-nums       { font-variant-numeric: tabular-nums; }

/* ─── A REGRA FORTE · o divisor do sistema ──────────────────────────── */
.hr { border: 0; border-top: 1px solid var(--color-divider); margin: 0; }

/* ─── SEGMENTADO ────────────────────────────────────────────────────── */
.seg { display:inline-flex; gap:2px; padding:3px; background:var(--color-surface-sunken); border:none; border-radius:var(--radius-full); }
.seg button, .seg .seg-opt {
  border:none; background:transparent; border-radius:var(--radius-full);
  color:var(--color-text-secondary); font-size:12.5px; font-weight:500; padding:6px 14px;
  cursor:pointer; transition:all var(--duration-fast) var(--ease-snappy); font-family:var(--font-body);
}
.seg button.active, .seg .seg-opt.active { background:var(--color-surface-raised); color:var(--color-text-primary); font-weight:600; box-shadow:var(--shadow-xs); }
.seg button:not(.active):hover, .seg .seg-opt:not(.active):hover { color:var(--color-text-primary); }

/* ─── ETIQUETAS ─────────────────────────────────────────────────────── */
.tag { display:inline-flex; align-items:center; gap:5px; padding:4px 10px; font-size:11px; font-weight:600; letter-spacing:0; font-family:var(--font-body); border-radius:var(--radius-full); }
.tag-accent, .tag-accent-2 { background:var(--color-accent-100); color:var(--color-accent-700); }
.tag-neutral { background:var(--color-neutral-200); color:var(--color-neutral-800); }
.tag-outline { background:transparent; border:1px solid var(--color-border-strong); color:var(--color-text-secondary); }

/* ─── IMAGENS · preto e branco puro, sempre ─────────────────────────── */
.grayscale img, .lighten img { filter: none; mix-blend-mode: normal; }

/* ── Estados de recurso (carregando / erro) ───────────────────────────
   Ver shared/recurso.jsx. Ficam nos tokens porque login e ops usam. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}
.rec-load{display:flex;flex-direction:column;gap:var(--space-2)}
.rec-skel{border-radius:var(--radius-sm);background:var(--color-surface-sunken);
  animation:rec-pulse 1.4s var(--ease-inout) infinite}
@keyframes rec-pulse{0%,100%{opacity:.55}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.rec-skel{animation:none}}
.rec-erro{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);
  border:1px solid color-mix(in srgb,var(--color-danger) 30%,transparent);
  border-radius:var(--radius-md);
  background:color-mix(in srgb,var(--color-danger) 6%,var(--color-surface));
  color:var(--color-text-primary)}
.rec-erro svg{color:var(--color-danger);flex:none}
.rec-erro-txt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
.rec-erro-txt strong{font-size:13px;font-weight:600}
.rec-erro-txt span{font-size:12.5px;color:var(--color-text-secondary)}
