/* Nexaya DS — tokens.css (Fase A: Nexaya fiel · Fase B: preset GOV SC)
 * Camada 0 (--nx-brand-*) é a única que os presets trocam.
 * Camada 1 primitivas (--nx-pr-*) · Camada 2 semânticas (--nx-color-*, --nx-data-*) · Camada 3 componente.
 * Temas: [data-nx-theme="light"|"dark"] — Nexaya: creme/ardósia; GOV SC: claro/escuro calibrado do PAA.
 * Todos os HEX marcados [A] foram amostrados nas 65 imagens (forense/AMOSTRAS-PIXEL.md). */
@layer nexaya.tokens {
  /* Contexto de cor. Um cartão strong/accent redefine --nx-color-text-faint/-muted/-on-surface no próprio style=""
     (os filhos herdam); um cartão claro dentro dele restaura a partir de --nx-th-*, que guarda o valor do tema. */
  [data-nx-preset], [data-nx-theme] { --nx-th-text-faint: var(--nx-color-text-faint); --nx-th-text-muted: var(--nx-color-text-muted); --nx-th-text-on-surface: var(--nx-color-text-on-surface); }
  :root {
    /* ===== Camada 0 — marca (default = Nexaya) ===== */
    --nx-brand-primary: #FFD85F;          /* [A] */
    --nx-brand-primary-strong: #E8C24A;   /* [E] 600 da rampa */
    --nx-brand-primary-soft: #FAF8E9;     /* [A] hachura do span Work day */
    --nx-brand-ink: #303030;              /* [A] */
    --nx-brand-neutral: #303030;
    --nx-brand-danger: #F0563E;           /* fim de semana */
    --nx-brand-success: #77AA28;          /* [A] match ≥ 90 */
    --nx-brand-warning: #F69C37;          /* [A] match 80–89 */
    --nx-brand-info: #9085AF;             /* lavanda Paid For */
    --nx-brand-accent-dark: #FDFE00;      /* [A] neon do tema ardósia */
    --nx-brand-font-display: "Outfit", "Urbanist", "Lexend", system-ui, sans-serif;
    --nx-brand-font-body: "Outfit", "DM Sans", system-ui, sans-serif;

    /* ===== Camada 1 — primitivas ===== */
    --nx-pr-white: #FFFFFF;
    --nx-pr-cream-25: #FEFDF7;   /* folha da tabela [A] */
    --nx-pr-cream-50: #FCFCF9;
    --nx-pr-cream-100: #F6F6F4;  /* pasta [A] */
    --nx-pr-cream-150: #EFEFEC;  /* input */
    --nx-pr-neutral-100: #EEEEEE; /* [A] célula, Absent */
    --nx-pr-neutral-150: #E5E5E5; /* [A] hachura base */
    --nx-pr-neutral-200: #DADADA; /* borda pílula de hora, secundário */
    --nx-pr-neutral-300: #C9C9C9; /* ticks, checkbox */
    --nx-pr-neutral-400: #B6B6B6; /* [A] pílula cinza, terra do mapa #B7B7B7 */
    --nx-pr-neutral-500: #9A9A9A; /* eixo, data */
    --nx-pr-neutral-550: #898989; /* [A] deck, terra com dado */
    --nx-pr-neutral-600: #8A8A8A; /* rótulo */
    --nx-pr-neutral-700: #555555; /* nav */
    --nx-pr-neutral-800: #4E4E4E; /* [A] círculo em carvão, líder do mapa */
    --nx-pr-neutral-900: #303030; /* [A] */
    --nx-pr-canvas-tl: #E3E5E6;  /* [A] */
    --nx-pr-canvas-mid: #EDE8D0;
    --nx-pr-canvas-bl: #F3E9C5;  /* [A] */
    --nx-pr-canvas-glow: #FEE9B2; /* [A] */
    --nx-pr-canvas-m-top: #E8E7EA; --nx-pr-canvas-m-mid: #EEEBE0; --nx-pr-canvas-m-bot: #FAF8E9; --nx-pr-canvas-m-glow: #FCECB4; /* [A] mobile */
    --nx-pr-outer: #A4ABB6;      /* [A] fundo Dribbble */
    --nx-pr-slate-canvas-a: #657078; --nx-pr-slate-canvas-b: #B7C0C8; --nx-pr-slate-surface: #D3DAE0; /* calibrados: cartão claro precisa separar do fim do gradiente */ --nx-pr-slate-strong: #2C333E; --nx-pr-slate-hatch: #646C72; --nx-pr-slate-sea: #6E7880; --nx-pr-slate-land: #C7D1D9; --nx-pr-slate-lime: #C8FF6E; /* [A] */
    --nx-pr-status-lavender: #E5D7F6; --nx-pr-status-lavender-ink: #5F5580;   /* era #9085AF [A]: 2,5:1 → 4,8:1 */
    --nx-pr-status-mint: #E8F7C3;     --nx-pr-status-mint-ink: #4B7410;       /* era #76A21D [A]: 2,7:1 → 4,8:1 */
    --nx-pr-status-lime: #EAF7D0;     --nx-pr-status-lime-ink: #4E7A0E;   /* era #77A629 [A]: 2,6:1 → 4,6:1 */
    --nx-pr-status-gray: #EEEEEE;     --nx-pr-status-gray-ink: #666666;   /* era #888888 [A]: 2,9:1 → 4,9:1 */
    --nx-pr-chip-figma: #E3D8EC; --nx-pr-chip-sketch: #EADDBF; --nx-pr-chip-psd: #D0EBE9; --nx-pr-chip-word: #D9E4EE; --nx-pr-chip-ppt: #FDE9E1; --nx-pr-chip-word-ink: var(--nx-brand-ink); --nx-pr-chip-word-letter: #2B5797; --nx-pr-chip-ppt-letter: #B93A16;   /* letras W/P: 6,3:1 e 4,8:1 */
    --nx-pr-hatch-angle: 45deg; --nx-pr-hatch-step: 6px; --nx-pr-hatch-width: 1.5px;

    /* ===== Camada 2 — semânticas (tema claro = creme) ===== */
    --nx-color-canvas: radial-gradient(55% 70% at 100% 45%, var(--nx-pr-canvas-glow) 0%, transparent 100%), linear-gradient(160deg, var(--nx-pr-canvas-tl) 0%, var(--nx-pr-canvas-tl) 30%, var(--nx-pr-canvas-mid) 62%, var(--nx-pr-canvas-bl) 100%);
    --nx-color-canvas-mobile: radial-gradient(70% 45% at 100% 55%, var(--nx-pr-canvas-m-glow) 0%, transparent 100%), linear-gradient(180deg, var(--nx-pr-canvas-m-top) 0%, var(--nx-pr-canvas-m-mid) 45%, var(--nx-pr-canvas-m-bot) 100%);
    --nx-color-outer: var(--nx-pr-outer);
    --nx-color-surface: rgba(255,255,255,.70);
    --nx-color-surface-opaque: var(--nx-pr-white);
    --nx-color-sheet: var(--nx-pr-cream-25);
    --nx-color-folder: var(--nx-pr-cream-100);
    --nx-color-strong: var(--nx-brand-ink);
    --nx-color-on-strong: var(--nx-pr-white);
    --nx-color-on-strong-muted: #BDBDBD;
    --nx-color-strong-well: var(--nx-pr-neutral-800);
    --nx-color-accent: var(--nx-brand-primary);
    --nx-color-on-accent: var(--nx-brand-ink);
    --nx-color-accent-on-strong: var(--nx-color-accent);   /* acento usado como texto sobre o cartão strong (Ruby Paper: rubi escuro não lê sobre carvão → acento claro) */
    --nx-color-text: var(--nx-brand-ink);
    --nx-color-text-on-surface: var(--nx-brand-ink);   /* texto sobre cartão claro (no escuro muda) */
    --nx-color-text-muted: #6B6B6B;            /* sobre cartão (era #8A8A8A — contraste ↑) */
    --nx-color-text-muted-canvas: #5E5E5E;     /* rótulos sobre o canvas */
    --nx-color-text-faint: #767676;            /* era neutral-500 #9A9A9A: 2,8:1 sobre branco → 4,5:1 */
    --nx-color-border: var(--nx-pr-neutral-200);
    --nx-color-divider: var(--nx-pr-neutral-200);   /* sempre 1px dotted */
    --nx-color-control: var(--nx-pr-white);
    --nx-color-on-control: #303030; --nx-color-on-control-muted: #707070;   /* era #8A8A8A: 3,5:1 sobre branco → 5,3:1 */
    --nx-color-control-soft: #FBF9EC;
    --nx-color-input: var(--nx-pr-cream-150);
    --nx-color-cell: var(--nx-pr-neutral-100); --nx-color-on-cell: var(--nx-brand-ink);   /* célula de calendário/grade */
    --nx-color-selected: var(--nx-brand-primary);
    --nx-color-selected-read: var(--nx-pr-white);
    --nx-color-weekend: var(--nx-brand-danger);
    --nx-color-glass: rgba(255,255,255,.45);
    /* placeholder de foto (ProfileCard): degradê no tom do painel, escurecendo para o strong onde o texto branco senta */
    --nx-color-photo-a: #C9C6BD; --nx-color-photo-b: #303030;
    --nx-data-primary: var(--nx-brand-primary);
    --nx-data-reference: var(--nx-brand-ink);
    --nx-data-on-reference: var(--nx-color-on-strong); --nx-data-on-reference-muted: var(--nx-color-on-strong-muted);   /* texto sobre marca/pílula na cor de referência (Silver Ash: referência branca → tinta escura) */
    --nx-data-neutral: var(--nx-pr-neutral-400); --nx-data-on-neutral: var(--nx-brand-ink);   /* texto sobre o segmento neutro */
    --nx-data-idle: var(--nx-pr-neutral-550);
    --nx-data-track: #E9E9E9;
    --nx-data-tick: #A3A3A3;
    --nx-data-dot-off: var(--nx-pr-neutral-800);
    --nx-data-positive: var(--nx-brand-success);
    --nx-data-warning: var(--nx-brand-warning);
    --nx-data-map-sea: transparent;
    --nx-data-map-land: #B7B7B7;
    --nx-data-map-data: var(--nx-pr-neutral-550);
    --nx-data-map-leader: var(--nx-pr-neutral-800);
    --nx-data-map-current: var(--nx-brand-primary);
    --nx-data-hatch-bg: var(--nx-pr-neutral-150);
    --nx-data-hatch-line: #BDBDBD;
    --nx-data-hatch-area-bg: #F8F9F2;
    --nx-data-hatch-area-line: #D7D7D7;
    --nx-data-hatch-cal-bg: #F2F2EE;
    --nx-data-hatch-cal-line: #B5B5B1;
    --nx-data-hatch-accent-bg: var(--nx-brand-primary-soft);
    --nx-data-hatch-accent-line: #F0D97A;
    /* hachura padronizada: linha 1px a 45°, passo 8px, mesma imagem em todos os usos; só o fundo muda */
    --nx-hatch-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M-1 1L1 -1M0 8L8 0M7 9L9 7' stroke='%23BDBDBD' stroke-width='1'/%3E%3C/svg%3E");
    --nx-hatch-accent-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M-1 1L1 -1M0 8L8 0M7 9L9 7' stroke='%23E2C04A' stroke-width='1'/%3E%3C/svg%3E");
    --nx-hatch: var(--nx-hatch-img) 0 0/8px 8px repeat, var(--nx-data-hatch-bg);
    --nx-hatch-cal: var(--nx-hatch-img) 0 0/8px 8px repeat, var(--nx-data-hatch-cal-bg);
    --nx-hatch-area: var(--nx-hatch-img) 0 0/8px 8px repeat, var(--nx-data-hatch-area-bg);
    --nx-hatch-accent: var(--nx-hatch-accent-img) 0 0/8px 8px repeat, var(--nx-data-hatch-accent-bg);
    /* hachura carvão .55 sobre a primária (mobile: fundo do PricingCard) */
    --nx-hatch-accent-strong-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M-1 1L1 -1M0 8L8 0M7 9L9 7' stroke='%23303030' stroke-opacity='.55' stroke-width='1'/%3E%3C/svg%3E");
    --nx-hatch-accent-strong: var(--nx-hatch-accent-strong-img) 0 0/8px 8px repeat, var(--nx-brand-primary);
    --nx-data-hatch-line-strong: #BDBDBD;
    --nx-color-text-on-hatch: #6B6B6B;
    /* seta do <select> em cápsula (tinta = on-control) */
    --nx-chevron-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23303030' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    --nx-shadow-card: 0 8px 30px rgba(0,0,0,.04);
    --nx-shadow-control: 0 2px 10px rgba(0,0,0,.05);
    --nx-shadow-float: 0 4px 14px rgba(0,0,0,.06);
    --nx-shadow-toast: 0 8px 24px rgba(0,0,0,.12);
    --nx-shadow-shell: 0 30px 80px rgba(20,25,30,.20);
    --nx-shadow-deck: 0 -4px 12px rgba(0,0,0,.15);

    /* Tipografia (real 1440 / mobile pt) */
    --nx-font-display: var(--nx-brand-font-display);
    --nx-font-body: var(--nx-brand-font-body);
    --nx-text-title: 55px; --nx-text-kpi: 70px; --nx-text-hero: 38px; --nx-text-center: 36px; --nx-text-price: 60px;
    --nx-text-card-title: 22px; --nx-text-body: 16px; --nx-text-label: 14px; --nx-text-tooltip: 14px;
    --nx-text-m-h1: 40px; --nx-text-m-kpi: 50px; --nx-text-m-hero: 34px; --nx-text-m-card-title: 20px; --nx-text-m-body: 15px; --nx-text-m-label: 13px;
    --nx-weight-light: 300; --nx-weight-regular: 400; --nx-weight-medium: 500;
    --nx-tracking-title: -0.02em;

    /* Espaço e forma */
    --nx-space-1: 4px; --nx-space-2: 8px; --nx-space-3: 12px; --nx-space-4: 16px; --nx-space-6: 24px; --nx-space-7: 28px; --nx-space-8: 32px; --nx-space-10: 40px;
    --nx-page-pad: 24px; --nx-grid-gap: 12px; --nx-card-pad: 24px;
    --nx-m-margin: 16px; --nx-m-gap: 10px; --nx-m-card-pad: 22px;
    --nx-radius-shell: 42px; --nx-radius-card: 28px; --nx-radius-caps: 24px; --nx-radius-cell: 14px; --nx-radius-event: 12px; --nx-radius-input: 14px; --nx-radius-checkbox: 4px; --nx-radius-control: 999px;
    --nx-radius-m-card: 28px;

    /* ===== Camada 3 — componente ===== */
    --nx-card-header-slot: 42px;
    --nx-orbit-size: 118px;
    --nx-action-circle: 46px;
    --nx-action-circle-desktop: 44px;
    --nx-nav-height: 50px;
    --nx-measure-height: 46px; --nx-measure-height-m: 44px; --nx-measure-gap: 6px;
    --nx-status-height: 30px;
    --nx-chip-height: 42px;
    --nx-row-height: 60px; --nx-row-height-wide: 80px;
    --nx-folder-filter-row: 85px; --nx-folder-step-height: calc(var(--nx-folder-filter-row) - 6px); --nx-folder-curve: calc(var(--nx-folder-step-height) * .8); --nx-folder-tab-width: 300px; --nx-folder-inset: 21px; --nx-folder-sheet-offset: 16px;
    --nx-cal-cell: 76px; --nx-cal-cell-m: 52px; --nx-cal-gap: 6px;
    --nx-donut-r: 64px; --nx-donut-w: 12px; --nx-donut-gap: 4px;
    --nx-gauge-r: 100px; --nx-gauge-w: 22px; --nx-gauge-gap: 8px; --nx-gauge-sweep: 220deg;
    --nx-ring-r: 84px; --nx-ring-w: 18px;
    --nx-tickring-r: 78px; --nx-tickring-w: 12px; --nx-tickring-ticks: 60;
    --nx-dot-size: 9px; --nx-dot-gap: 7px;
    --nx-lollipop-w: 9px; --nx-lollipop-w-m: 8px;
    --nx-deck-inset-1: 12px; --nx-deck-inset-2: 24px; --nx-deck-peek: 10px;

    /* Motion */
    --nx-motion-fast: 160ms; --nx-motion-base: 240ms; --nx-motion-slow: 480ms; --nx-motion-data: 720ms; --nx-motion-data-long: 960ms;
    --nx-stagger: 40ms; --nx-stagger-dense: 12ms;
    --nx-ease-standard: cubic-bezier(.2,.8,.2,1); --nx-ease-enter: cubic-bezier(0,0,.2,1); --nx-ease-exit: cubic-bezier(.4,0,1,1); --nx-ease-data: cubic-bezier(.16,1,.3,1);
    --nx-ease-spring: linear(0, .008, .03 2.6%, .12 5.6%, .49 12.6%, .82 19.6%, 1.01 27%, 1.06 33%, 1.02 43%, .99 52%, 1);
  }

  /* ===== Tema escuro do Nexaya = ardósia [A] ===== */
  [data-nx-theme="dark"] {
    --nx-color-canvas: linear-gradient(180deg, var(--nx-pr-slate-canvas-a) 0%, var(--nx-pr-slate-canvas-b) 100%);
    --nx-color-canvas-mobile: var(--nx-color-canvas);
    --nx-pr-canvas-m-bot: #8E98A0;   /* cor do canvas mobile na base da foto-herói (55%) */
    --nx-color-surface: var(--nx-pr-slate-surface);
    --nx-color-surface-opaque: var(--nx-pr-white);
    --nx-color-sheet: #E6EBEE;
    --nx-color-folder: #B9C1C7;
    --nx-color-strong: var(--nx-pr-slate-strong);
    --nx-color-strong-well: #616B72;
    --nx-color-accent: var(--nx-brand-accent-dark);
    --nx-color-on-accent: var(--nx-pr-slate-strong);
    --nx-color-text: var(--nx-pr-white);
    --nx-color-text-on-surface: var(--nx-pr-slate-strong);
    --nx-color-text-muted: #454E57;            /* 4,7:1 sobre o controle #BEC2C5 (era #4F5860 = 4,0) */
    --nx-color-text-faint: #47505A;            /* o claro herdava #8A8A8A: 1,6:1 sobre a superfície ardósia */
    --nx-color-text-muted-canvas: rgba(255,255,255,.85);
    --nx-color-text-on-hatch: #FFFFFF;
    --nx-data-tick: #5A636B;
    --nx-data-hatch-line-strong: rgba(255,255,255,.8);
    --nx-hatch-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8'%3E%3Cpath d='M-1 1L1 -1M0 8L8 0M7 9L9 7' stroke='white' stroke-opacity='.8' stroke-width='1'/%3E%3C/svg%3E");
    --nx-shadow-card: 0 10px 30px rgba(20,30,40,.16);
    --nx-color-control: #BEC2C5;
    --nx-color-control-soft: #C9D1D9;
    --nx-color-selected: var(--nx-pr-white);
    --nx-color-weekend: #5C5E00;   /* texto de fim de semana sobre o cartão claro do ardósia; o neon (1,3:1) fica só para marcadores */
    --nx-data-primary: var(--nx-brand-accent-dark);
    --nx-data-reference: var(--nx-pr-slate-strong);
    --nx-data-positive: var(--nx-pr-slate-lime);
    --nx-data-map-sea: var(--nx-pr-slate-sea);
    --nx-data-map-land: var(--nx-pr-slate-land);
    --nx-data-map-data: #A9B3BB;
    --nx-data-map-leader: var(--nx-pr-slate-strong);
    --nx-data-map-current: var(--nx-brand-accent-dark);
    --nx-data-hatch-bg: var(--nx-pr-slate-hatch);
    --nx-data-hatch-line: rgba(255,255,255,.8);
    --nx-data-hatch-area-bg: #727A7F; --nx-data-hatch-area-line: rgba(255,255,255,.7);
    --nx-data-hatch-cal-bg: #727A7F; --nx-data-hatch-cal-line: rgba(255,255,255,.6);
    --nx-pr-status-lime: #D7E3BF; --nx-pr-status-lime-ink: #48651B;   /* era #7FA23A: 2,2:1 → 5,0:1 */
    --nx-pr-chip-word: #526482; --nx-pr-chip-word-ink: #FFFFFF; --nx-pr-chip-word-letter: #FFFFFF;   /* era #72859D: branco 3,7:1 → 5,0:1 */
    --nx-color-cell: #C9D0D6; --nx-color-on-cell: #2C333E;
    --nx-color-photo-a: #8F98A2; --nx-color-photo-b: #2C333E;
    --nx-color-divider: #9AA5AE; --nx-color-border: #9AA5AE;
    --nx-color-on-control: #2C333E; --nx-color-on-control-muted: #454E57;
    --nx-chevron-img: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%232C333E' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");   /* 4,7:1 sobre #BEC2C5 */ /* hairline visível sobre o cartão claro do ardósia */
  }
}
