/* ==========================================================================
   Pazcon + Elevare Home — brand-system.css  v1.0.1
   Fonte de dados: /brand-tokens.json  ·  Manual: docs/design-system/DESIGN_SYSTEM.md
   Camadas:
     1. @font-face (locais, /brand/fonts)
     2. Primitivos  --pzc-*  --el-*  (oficiais + derivados; ver JSON para origem)
     3. Escalas globais (espaço, tipo, motion, z)
     4. Aliases semânticos --ds-* por [data-brand] e [data-tone]
     5. Tipografia e layout utilitários (.ds-*)
     6. Componentes (.ds-*) — usam SOMENTE --ds-*
     7. Ícones, motion reduzido, impressão
   Regra: nenhum seletor aqui atinge elementos sem prefixo .ds-/data-brand,
   para conviver com src/styles.css, product.css e property.css.
   ========================================================================== */

/* 1. FONTES ------------------------------------------------------------- */
@font-face { font-family: "Aviano Sans"; font-weight: 100; font-style: normal; font-display: swap; src: url("/brand/fonts/AvianoSansThin.otf") format("opentype"); }
@font-face { font-family: "Aviano Sans"; font-weight: 300; font-style: normal; font-display: swap; src: url("/brand/fonts/AvianoSansLight.otf") format("opentype"); }
@font-face { font-family: "Aviano Sans"; font-weight: 400; font-style: normal; font-display: swap; src: url("/brand/fonts/AvianoSansRegular.otf") format("opentype"); }
@font-face { font-family: "Aviano Sans"; font-weight: 700; font-style: normal; font-display: swap; src: url("/brand/fonts/AvianoSansBold.otf") format("opentype"); }
@font-face { font-family: "Aviano Sans"; font-weight: 900; font-style: normal; font-display: swap; src: url("/brand/fonts/AvianoSansBlack.otf") format("opentype"); }
@font-face { font-family: "Granville"; font-weight: 300; font-style: normal; font-display: swap; src: url("/brand/fonts/Granville-Light.otf") format("opentype"); }
@font-face { font-family: "Granville"; font-weight: 300; font-style: italic; font-display: swap; src: url("/brand/fonts/Granville-LightItalic.otf") format("opentype"); }
@font-face { font-family: "Granville"; font-weight: 400; font-style: normal; font-display: swap; src: url("/brand/fonts/Granville-Regular.otf") format("opentype"); }
@font-face { font-family: "Granville"; font-weight: 400; font-style: italic; font-display: swap; src: url("/brand/fonts/Granville-Italic.otf") format("opentype"); }
@font-face { font-family: "Granville"; font-weight: 700; font-style: normal; font-display: swap; src: url("/brand/fonts/Granville-Bold.otf") format("opentype"); }
@font-face { font-family: "Granville"; font-weight: 700; font-style: italic; font-display: swap; src: url("/brand/fonts/Granville-BoldItalic.otf") format("opentype"); }

/* 2. PRIMITIVOS ---------------------------------------------------------- */
:root {
  /* Pazcon — oficiais (prancha Paleta de Cores) */
  --pzc-navy: #141b34;
  --pzc-blue: #2f4f88;
  --pzc-cream: #f5eeea;
  --pzc-steel-100: #b8b8c0;   /* gradiente aço, amostrado */
  --pzc-steel-500: #8a8a94;
  --pzc-steel-700: #6d6d78;
  --pzc-gradient-steel: linear-gradient(110deg, #b8b8c0 0%, #8a8a94 50%, #6d6d78 100%);
  /* Pazcon — derivados (decisão digital) */
  --pzc-navy-900: #0c1124;
  --pzc-navy-700: #1c2546;
  --pzc-blue-600: #274373;
  --pzc-blue-700: #1f375f;
  --pzc-blue-300: #5577b3;
  --pzc-blue-tint: #e3e8f1;
  --pzc-cream-2: #ece4df;
  --pzc-cream-3: #ddd5cf;
  --pzc-ink-2: #2a3047;
  --pzc-muted: #5c6275;
  --pzc-on-navy-muted: #a9aebc;
  --pzc-white: #ffffff;

  /* Elevare — oficiais (prancha Paleta de Cores Elevare) */
  --el-blue: #809dc1;
  --el-sand: #c9bfb8;
  --el-taupe: #9a9086;
  --el-grey: #bab9b3;
  --el-offwhite: #efece9;
  /* Elevare — derivados */
  --el-ink: #3a3632;
  --el-ink-2: #514c47;
  --el-muted: #6b635b;
  --el-blue-text: #4a6a94;
  --el-blue-hover: #3f5b80;
  --el-blue-active: #344b6b;
  --el-blue-light: #9fb5d0;
  --el-blue-tint: #e1e7ef;
  --el-surface-2: #e6e2dd;
  --el-line-strong: #857b71; /* taupe escurecido: 4.14 sobre branco, 3.52 sobre off-white */
  --el-dark-2: #46413c;
  --el-dark-3: #2f2c29;
  --el-white: #ffffff;

  /* Estados (derivados, comuns) */
  --ds-success: #2e6b4e;  --ds-success-bg: #e2eee7;
  --ds-warning: #7a4f0c;  --ds-warning-bg: #f3e7d3;
  --ds-danger:  #9f3a30;  --ds-danger-bg:  #f4e0dd;

  /* 3. ESCALAS GLOBAIS */
  --ds-space-0: 0px;  --ds-space-1: 2px;  --ds-space-2: 4px;   --ds-space-3: 8px;
  --ds-space-4: 12px; --ds-space-5: 16px; --ds-space-6: 20px;  --ds-space-7: 24px;
  --ds-space-8: 32px; --ds-space-9: 40px; --ds-space-10: 48px; --ds-space-11: 64px;
  --ds-space-12: 80px; --ds-space-13: 96px; --ds-space-14: 128px; --ds-space-16: 160px;

  --ds-text-xs: 12px; --ds-text-sm: 14px; --ds-text-md: 16px; --ds-text-lg: 18px;
  --ds-text-xl: clamp(20px, 1.6vw, 24px);
  --ds-text-h4: clamp(20px, 1.8vw, 24px);
  --ds-text-h3: clamp(24px, 2.2vw, 30px);
  --ds-text-h2: clamp(30px, 3.4vw, 46px);
  --ds-text-h1: clamp(38px, 4.6vw, 64px);
  --ds-text-display: clamp(48px, 6.4vw, 92px);
  --ds-text-eyebrow: 11px;
  --ds-leading-tight: 1.05; --ds-leading-snug: 1.25; --ds-leading-normal: 1.5; --ds-leading-relaxed: 1.65;
  --ds-font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;

  --ds-motion-fast: 120ms; --ds-motion-base: 200ms; --ds-motion-slow: 360ms; --ds-motion-enter: 480ms;
  --ds-ease-standard: cubic-bezier(.2,.7,.1,1);
  --ds-ease-enter: cubic-bezier(.16,1,.3,1);
  --ds-ease-exit: cubic-bezier(.4,0,1,1);

  --ds-z-base: 0; --ds-z-raised: 10; --ds-z-sticky: 50; --ds-z-overlay: 100; --ds-z-dialog: 110; --ds-z-toast: 120;
  --ds-bp-sm: 480px; --ds-bp-md: 768px; --ds-bp-lg: 1024px; --ds-bp-xl: 1440px;

  --ds-border-hairline: 1px; --ds-border-strong: 2px; --ds-focus-width: 2px; --ds-focus-offset: 3px;
  --ds-control-height: 44px; --ds-control-height-sm: 36px; --ds-control-height-lg: 52px;
}

/* 4. ALIASES SEMÂNTICOS --------------------------------------------------
   Arquitetura: a MARCA (data-brand) publica dois conjuntos de slots por herança,
   --_l-* (tom claro) e --_d-* (tom escuro); o TOM (data-tone) só escolhe qual slot
   vira --ds-*. Marca e tom são ortogonais, todos os seletores têm especificidade
   (0,1,0) e o ancestral mais próximo vence por herança — aninhamentos como
   <html data-brand="pazcon"> > <section data-brand="elevare" data-tone="light">
   resolvem corretamente. Componentes só leem --ds-*. */

/* Pazcon (padrão) */
:root, [data-brand="pazcon"] {
  --ds-brand: "pazcon";
  --ds-brand-gradient: var(--pzc-gradient-steel);
  --ds-font-display: "Aviano Sans", "Helvetica Neue", Arial, sans-serif;
  --ds-font-body: "Aviano Sans", "Helvetica Neue", Arial, sans-serif;
  /* Pazcon não tem fonte secundária: editorial, UI e "mono" também são Aviano */
  --ds-font-editorial: "Aviano Sans", "Helvetica Neue", Arial, sans-serif;
  --ds-font-ui: "Aviano Sans", "Helvetica Neue", Arial, sans-serif;
  --ds-font-mono: "Aviano Sans", "Helvetica Neue", Arial, sans-serif;
  --ds-weight-display: 300;
  --ds-weight-body: 300;
  --ds-weight-strong: 400;
  --ds-weight-tag: 100;
  --ds-tracking-caps: .18em;
  --ds-radius-sm: 2px;
  --ds-radius-md: 4px;
  --ds-radius-lg: 8px;
  --ds-radius-pill: 999px;
  --ds-container: 1440px;
  --ds-margin-edge: clamp(20px, 4.5vw, 64px);
  --ds-gutter: 24px;
  --ds-section: clamp(96px, 11vw, 160px);
  --_l-bg: var(--pzc-cream);
  --_l-bg-2: var(--pzc-cream-2);
  --_l-bg-3: var(--pzc-cream-3);
  --_l-bg-inverse: var(--pzc-navy);
  --_l-bg-elevated: var(--pzc-white);
  --_l-overlay: rgba(12,17,36,.62);
  --_l-text: var(--pzc-navy);
  --_l-text-2: var(--pzc-ink-2);
  --_l-text-muted: var(--pzc-muted);
  --_l-text-inverse: var(--pzc-cream);
  --_l-text-on-accent: var(--pzc-cream);
  --_l-text-link: var(--pzc-blue);
  --_l-accent: var(--pzc-blue);
  --_l-accent-hover: var(--pzc-blue-600);
  --_l-accent-active: var(--pzc-blue-700);
  --_l-accent-soft: var(--pzc-blue-tint);
  --_l-accent-decorative: var(--pzc-blue-300);
  --_l-line: rgba(20,27,52,.16);
  --_l-line-strong: rgba(20,27,52,.52);
  --_l-line-soft: rgba(20,27,52,.07);
  --_l-line-brand: var(--pzc-steel-500);
  --_l-focus: var(--pzc-blue);
  --_l-info: var(--pzc-blue);
  --_l-info-bg: var(--pzc-blue-tint);
  --_l-success: #2e6b4e;
  --_l-success-bg: #e2eee7;
  --_l-warning: #7a4f0c;
  --_l-warning-bg: #f3e7d3;
  --_l-danger: #9f3a30;
  --_l-danger-bg: #f4e0dd;
  --_l-shadow-sm: 0 1px 2px rgba(20,27,52,.08);
  --_l-shadow-md: 0 6px 18px rgba(20,27,52,.10);
  --_l-shadow-lg: 0 20px 48px rgba(20,27,52,.18);
  --_d-bg: var(--pzc-navy);
  --_d-bg-2: var(--pzc-navy-700);
  --_d-bg-3: var(--pzc-navy-900);
  --_d-bg-inverse: var(--pzc-cream);
  --_d-bg-elevated: var(--pzc-navy-700);
  --_d-overlay: rgba(0,0,0,.6);
  --_d-text: var(--pzc-cream);
  --_d-text-2: rgba(245,238,234,.86);
  --_d-text-muted: var(--pzc-on-navy-muted);
  --_d-text-inverse: var(--pzc-navy);
  --_d-text-on-accent: var(--pzc-navy);
  --_d-text-link: var(--pzc-cream);
  --_d-accent: var(--pzc-cream);
  --_d-accent-hover: var(--pzc-white);
  --_d-accent-active: var(--pzc-cream-2);
  --_d-accent-soft: rgba(245,238,234,.10);
  --_d-accent-decorative: var(--pzc-blue-300);
  --_d-line: rgba(245,238,234,.18);
  --_d-line-strong: rgba(245,238,234,.5);
  --_d-line-soft: rgba(245,238,234,.08);
  --_d-line-brand: var(--pzc-steel-500);
  --_d-focus: var(--pzc-cream);
  --_d-info: #a9bde0;
  --_d-info-bg: rgba(85,119,179,.22);
  --_d-success: #8fd1ad;
  --_d-success-bg: rgba(46,107,78,.30);
  --_d-warning: #e8c184;
  --_d-warning-bg: rgba(122,79,12,.30);
  --_d-danger: #f0a49b;
  --_d-danger-bg: rgba(159,58,48,.30);
  --_d-shadow-sm: 0 1px 2px rgba(0,0,0,.3);
  --_d-shadow-md: 0 6px 18px rgba(0,0,0,.35);
  --_d-shadow-lg: 0 20px 48px rgba(0,0,0,.5);
}

/* Elevare */
[data-brand="elevare"] {
  --ds-brand: "elevare";
  --ds-brand-gradient: linear-gradient(180deg, var(--el-sand) 0%, var(--el-grey) 100%);
  --ds-font-display: "Granville", Georgia, "Times New Roman", serif;
  --ds-font-body: "Aviano Sans", "Helvetica Neue", Arial, sans-serif;
  --ds-font-editorial: "Granville", Georgia, "Times New Roman", serif;
  --ds-font-ui: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --ds-font-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --ds-weight-display: 400;
  --ds-weight-body: 300;
  --ds-weight-strong: 400;
  --ds-weight-tag: 300;
  --ds-tracking-caps: .14em;
  --ds-radius-sm: 0px;
  --ds-radius-md: 0px;
  --ds-radius-lg: 0px;
  --ds-radius-pill: 999px;
  --ds-container: 1600px;
  --ds-margin-edge: clamp(24px, 5vw, 88px);
  --ds-gutter: 32px;
  --ds-section: clamp(72px, 8vw, 110px);
  --_l-bg: var(--el-offwhite);
  --_l-bg-2: var(--el-surface-2);
  --_l-bg-3: var(--el-sand);
  --_l-bg-inverse: var(--el-ink);
  --_l-bg-elevated: var(--el-white);
  --_l-overlay: rgba(58,54,50,.62);
  --_l-text: var(--el-ink);
  --_l-text-2: var(--el-ink-2);
  --_l-text-muted: var(--el-muted);
  --_l-text-inverse: var(--el-offwhite);
  --_l-text-on-accent: var(--el-offwhite);
  --_l-text-link: var(--el-blue-text);
  --_l-accent: var(--el-blue-text);
  --_l-accent-hover: var(--el-blue-hover);
  --_l-accent-active: var(--el-blue-active);
  --_l-accent-soft: var(--el-blue-tint);
  --_l-accent-decorative: var(--el-blue);
  --_l-line: var(--el-grey);
  --_l-line-strong: var(--el-line-strong);
  --_l-line-soft: rgba(58,54,50,.08);
  --_l-line-brand: var(--el-taupe);
  --_l-focus: var(--el-blue-text);
  --_l-info: var(--el-blue-text);
  --_l-info-bg: var(--el-blue-tint);
  --_l-success: #2e6b4e;
  --_l-success-bg: #e0ebe3;
  --_l-warning: #7a4f0c;
  --_l-warning-bg: #efe3cf;
  --_l-danger: #9f3a30;
  --_l-danger-bg: #f0ddd9;
  --_l-shadow-sm: none;
  --_l-shadow-md: none;
  --_l-shadow-lg: none;
  --_d-bg: var(--el-ink);
  --_d-bg-2: var(--el-dark-2);
  --_d-bg-3: var(--el-dark-3);
  --_d-bg-inverse: var(--el-offwhite);
  --_d-bg-elevated: var(--el-dark-2);
  --_d-overlay: rgba(0,0,0,.6);
  --_d-text: var(--el-offwhite);
  --_d-text-2: var(--el-sand);
  --_d-text-muted: var(--el-sand);
  --_d-text-inverse: var(--el-ink);
  --_d-text-on-accent: var(--el-ink);
  --_d-text-link: var(--el-blue-light);
  --_d-accent: var(--el-blue-light);
  --_d-accent-hover: #b7c8dd;
  --_d-accent-active: #8ea7c4;
  --_d-accent-soft: rgba(239,236,233,.10);
  --_d-accent-decorative: var(--el-blue);
  --_d-line: rgba(239,236,233,.22);
  --_d-line-strong: rgba(239,236,233,.5);
  --_d-line-soft: rgba(239,236,233,.08);
  --_d-line-brand: var(--el-taupe);
  --_d-focus: var(--el-blue-light);
  --_d-info: var(--el-blue-light);
  --_d-info-bg: rgba(128,157,193,.22);
  --_d-success: #8fd1ad;
  --_d-success-bg: rgba(46,107,78,.30);
  --_d-warning: #e8c184;
  --_d-warning-bg: rgba(122,79,12,.30);
  --_d-danger: #f0a49b;
  --_d-danger-bg: rgba(159,58,48,.30);
  --_d-shadow-sm: none;
  --_d-shadow-md: none;
  --_d-shadow-lg: none;
}

/* Tom claro (padrão). Todo [data-brand] re-seleciona o tom claro: para manter
   tom escuro ao trocar de marca, repita data-tone="dark" no mesmo elemento. */
:root, [data-brand], [data-tone="light"] {
  --ds-bg: var(--_l-bg);
  --ds-bg-2: var(--_l-bg-2);
  --ds-bg-3: var(--_l-bg-3);
  --ds-bg-inverse: var(--_l-bg-inverse);
  --ds-bg-elevated: var(--_l-bg-elevated);
  --ds-overlay: var(--_l-overlay);
  --ds-text: var(--_l-text);
  --ds-text-2: var(--_l-text-2);
  --ds-text-muted: var(--_l-text-muted);
  --ds-text-inverse: var(--_l-text-inverse);
  --ds-text-on-accent: var(--_l-text-on-accent);
  --ds-text-link: var(--_l-text-link);
  --ds-accent: var(--_l-accent);
  --ds-accent-hover: var(--_l-accent-hover);
  --ds-accent-active: var(--_l-accent-active);
  --ds-accent-soft: var(--_l-accent-soft);
  --ds-accent-decorative: var(--_l-accent-decorative);
  --ds-line: var(--_l-line);
  --ds-line-strong: var(--_l-line-strong);
  --ds-line-soft: var(--_l-line-soft);
  --ds-line-brand: var(--_l-line-brand);
  --ds-focus: var(--_l-focus);
  --ds-info: var(--_l-info);
  --ds-info-bg: var(--_l-info-bg);
  --ds-success: var(--_l-success);
  --ds-success-bg: var(--_l-success-bg);
  --ds-warning: var(--_l-warning);
  --ds-warning-bg: var(--_l-warning-bg);
  --ds-danger: var(--_l-danger);
  --ds-danger-bg: var(--_l-danger-bg);
  --ds-shadow-sm: var(--_l-shadow-sm);
  --ds-shadow-md: var(--_l-shadow-md);
  --ds-shadow-lg: var(--_l-shadow-lg);
  color-scheme: light;
}

/* Tom escuro */
[data-tone="dark"] {
  --ds-bg: var(--_d-bg);
  --ds-bg-2: var(--_d-bg-2);
  --ds-bg-3: var(--_d-bg-3);
  --ds-bg-inverse: var(--_d-bg-inverse);
  --ds-bg-elevated: var(--_d-bg-elevated);
  --ds-overlay: var(--_d-overlay);
  --ds-text: var(--_d-text);
  --ds-text-2: var(--_d-text-2);
  --ds-text-muted: var(--_d-text-muted);
  --ds-text-inverse: var(--_d-text-inverse);
  --ds-text-on-accent: var(--_d-text-on-accent);
  --ds-text-link: var(--_d-text-link);
  --ds-accent: var(--_d-accent);
  --ds-accent-hover: var(--_d-accent-hover);
  --ds-accent-active: var(--_d-accent-active);
  --ds-accent-soft: var(--_d-accent-soft);
  --ds-accent-decorative: var(--_d-accent-decorative);
  --ds-line: var(--_d-line);
  --ds-line-strong: var(--_d-line-strong);
  --ds-line-soft: var(--_d-line-soft);
  --ds-line-brand: var(--_d-line-brand);
  --ds-focus: var(--_d-focus);
  --ds-info: var(--_d-info);
  --ds-info-bg: var(--_d-info-bg);
  --ds-success: var(--_d-success);
  --ds-success-bg: var(--_d-success-bg);
  --ds-warning: var(--_d-warning);
  --ds-warning-bg: var(--_d-warning-bg);
  --ds-danger: var(--_d-danger);
  --ds-danger-bg: var(--_d-danger-bg);
  --ds-shadow-sm: var(--_d-shadow-sm);
  --ds-shadow-md: var(--_d-shadow-md);
  --ds-shadow-lg: var(--_d-shadow-lg);
  color-scheme: dark;
}

/* 5. TIPOGRAFIA E LAYOUT -------------------------------------------------- */
.ds-root {
  background: var(--ds-bg);
  color: var(--ds-text);
  font-family: var(--ds-font-body);
  font-weight: var(--ds-weight-body);
  font-size: var(--ds-text-md);
  line-height: var(--ds-leading-relaxed);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
.ds-display, .ds-h1, .ds-h2, .ds-h3, .ds-h4 {
  font-family: var(--ds-font-display);
  font-weight: var(--ds-weight-display);
  color: var(--ds-text);
  margin: 0;
  text-wrap: balance;
}
.ds-display { font-size: var(--ds-text-display); line-height: 1; letter-spacing: -.02em; }
.ds-h1 { font-size: var(--ds-text-h1); line-height: var(--ds-leading-tight); letter-spacing: -.02em; }
.ds-h2 { font-size: var(--ds-text-h2); line-height: 1.12; letter-spacing: -.015em; }
.ds-h3 { font-size: var(--ds-text-h3); line-height: var(--ds-leading-snug); letter-spacing: -.01em; }
.ds-h4 { font-size: var(--ds-text-h4); line-height: 1.3; }
.ds-h1--caps, .ds-h2--caps, .ds-h3--caps { text-transform: uppercase; letter-spacing: .12em; font-family: var(--ds-font-body); }
.ds-eyebrow {
  display: block; font-family: var(--ds-font-body); font-size: var(--ds-text-eyebrow); font-weight: var(--ds-weight-strong);
  letter-spacing: var(--ds-tracking-caps); text-transform: uppercase; color: var(--ds-text-muted); line-height: 1.6; margin: 0;
}
.ds-eyebrow--accent { color: var(--ds-accent); }
.ds-tag { font-family: var(--ds-font-body); font-weight: var(--ds-weight-tag); letter-spacing: .3em; text-transform: uppercase; }
.ds-editorial { font-family: var(--ds-font-editorial); font-weight: 400; }
.ds-editorial--italic { font-family: var(--ds-font-editorial); font-style: italic; }
.ds-lead { font-size: var(--ds-text-xl); line-height: 1.45; color: var(--ds-text-2); margin: 0; }
.ds-body { font-size: var(--ds-text-md); line-height: var(--ds-leading-relaxed); color: var(--ds-text-2); margin: 0; }
.ds-body-sm { font-size: var(--ds-text-sm); line-height: 1.6; color: var(--ds-text-2); margin: 0; }
.ds-caption { font-size: var(--ds-text-xs); line-height: 1.5; letter-spacing: .02em; color: var(--ds-text-muted); margin: 0; }
.ds-mono { font-family: var(--ds-font-mono); font-size: .92em; }
.ds-prose { max-width: 64ch; }
.ds-prose > * + * { margin-top: var(--ds-space-5); }
.ds-prose h2, .ds-prose h3 { font-family: var(--ds-font-display); font-weight: var(--ds-weight-display); line-height: 1.2; margin-top: var(--ds-space-8); }
.ds-prose a { color: var(--ds-text-link); text-decoration: underline; text-underline-offset: .18em; }
.ds-strong { font-weight: var(--ds-weight-strong); }
/* Escopo de produto: corpo denso em system sans (decisão digital funcional); títulos/rótulos permanecem Aviano */
.ds-ui, .ds-ui .ds-body, .ds-ui .ds-body-sm, .ds-ui .ds-lead, .ds-ui .ds-prose, .ds-ui .ds-card, .ds-ui .ds-caption { font-family: var(--ds-font-ui); font-weight: 400; }
.ds-ui .ds-strong { font-weight: 600; }
.ds-body--ui { font-family: var(--ds-font-ui); font-weight: 400; }
.ds-muted { color: var(--ds-text-muted); }
.ds-num { font-variant-numeric: tabular-nums; }

.ds-container { width: 100%; max-width: var(--ds-container); margin-inline: auto; padding-inline: var(--ds-margin-edge); box-sizing: border-box; }
.ds-container--narrow { max-width: 880px; }
.ds-section { padding-block: var(--ds-section); }
.ds-section--tight { padding-block: calc(var(--ds-section) * .5); }
.ds-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--ds-gutter); }
.ds-grid > * { min-width: 0; }
.ds-col-2 { grid-column: span 2; } .ds-col-3 { grid-column: span 3; } .ds-col-4 { grid-column: span 4; }
.ds-col-5 { grid-column: span 5; } .ds-col-6 { grid-column: span 6; } .ds-col-7 { grid-column: span 7; }
.ds-col-8 { grid-column: span 8; } .ds-col-9 { grid-column: span 9; } .ds-col-12 { grid-column: span 12; }
@media (max-width: 1024px) { .ds-col-2, .ds-col-3 { grid-column: span 6; } .ds-col-4, .ds-col-5, .ds-col-7, .ds-col-8, .ds-col-9 { grid-column: span 12; } }
@media (max-width: 640px) { .ds-grid > [class*="ds-col-"] { grid-column: span 12; } }
.ds-stack { display: grid; gap: var(--gap, var(--ds-space-5)); }
.ds-stack--tight { --gap: var(--ds-space-3); } .ds-stack--loose { --gap: var(--ds-space-8); }
.ds-cluster { display: flex; flex-wrap: wrap; gap: var(--gap, var(--ds-space-4)); align-items: center; }
.ds-cluster--between { justify-content: space-between; }
.ds-divider { border: 0; border-top: var(--ds-border-hairline) solid var(--ds-line); margin: var(--ds-space-8) 0; }
.ds-divider--strong { border-top-color: var(--ds-line-strong); }
.ds-square { --ds-radius-sm: 0px; --ds-radius-md: 0px; --ds-radius-lg: 0px; }
.ds-visually-hidden { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.ds-surface { background: var(--ds-bg); color: var(--ds-text); }
.ds-surface--2 { background: var(--ds-bg-2); }
.ds-surface--elevated { background: var(--ds-bg-elevated); }
.ds-surface--gradient { background: var(--ds-brand-gradient); color: var(--pzc-cream); }

/* Foco universal dentro do sistema */
.ds-root :focus-visible, [class*="ds-"]:focus-visible { outline: var(--ds-focus-width) solid var(--ds-focus); outline-offset: var(--ds-focus-offset); }
.ds-skip { position: absolute; left: var(--ds-space-4); top: -100px; z-index: var(--ds-z-toast); padding: var(--ds-space-3) var(--ds-space-5); background: var(--ds-bg-inverse); color: var(--ds-text-inverse); text-decoration: none; font-size: var(--ds-text-sm); }
.ds-skip:focus { top: var(--ds-space-4); }

/* 6. COMPONENTES -------------------------------------------------------- */

/* Logo (sempre asset oficial; nunca texto) */
.ds-logo { display: inline-flex; align-items: center; line-height: 0; }
.ds-logo img, .ds-logo svg { display: block; height: var(--logo-h, 40px); width: auto; max-width: 100%; }
.ds-logo--protect { padding: calc(var(--logo-h, 40px) * .5); } /* área de proteção = ½ altura da marca (decisão digital) */

/* Links */
.ds-link { color: var(--ds-text-link); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; transition: text-decoration-color var(--ds-motion-fast); }
.ds-link:hover { text-decoration-thickness: 2px; }
.ds-link--caps { text-decoration: none; text-transform: uppercase; letter-spacing: .12em; font-size: var(--ds-text-xs); font-weight: var(--ds-weight-strong); border-bottom: 1px solid currentColor; padding-bottom: 6px; }
.ds-link--caps:hover { border-bottom-width: 2px; }
.ds-link--quiet { color: inherit; text-decoration-color: var(--ds-line-strong); }
.ds-link[aria-disabled="true"] { opacity: .45; pointer-events: none; }

/* Botões */
.ds-button {
  --_bg: var(--ds-accent); --_fg: var(--ds-text-on-accent); --_bd: var(--ds-accent);
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: var(--ds-space-3);
  min-height: var(--ds-control-height); padding: 0 var(--ds-space-7); box-sizing: border-box;
  font-family: var(--ds-font-body); font-size: 13px; font-weight: var(--ds-weight-strong); letter-spacing: .12em; text-transform: uppercase; line-height: 1;
  color: var(--_fg); background: var(--_bg); border: var(--ds-border-hairline) solid var(--_bd); border-radius: var(--ds-radius-md);
  cursor: pointer; text-decoration: none; white-space: nowrap; user-select: none;
  transition: background var(--ds-motion-base) var(--ds-ease-standard), color var(--ds-motion-base), border-color var(--ds-motion-base), transform var(--ds-motion-fast);
}
.ds-button:hover { --_bg: var(--ds-accent-hover); --_bd: var(--ds-accent-hover); }
.ds-button:active { --_bg: var(--ds-accent-active); --_bd: var(--ds-accent-active); transform: translateY(1px); }
.ds-button--secondary { --_bg: transparent; --_fg: var(--ds-text); --_bd: var(--ds-line-strong); }
.ds-button--secondary:hover { --_bg: var(--ds-accent-soft); --_bd: var(--ds-text); }
.ds-button--secondary:active { --_bg: var(--ds-bg-3); --_bd: var(--ds-text); }
.ds-button--ghost { --_bg: transparent; --_fg: var(--ds-text); --_bd: transparent; }
.ds-button--ghost:hover { --_bg: var(--ds-accent-soft); --_bd: transparent; }
.ds-button--ghost:active { --_bg: var(--ds-bg-3); --_bd: transparent; }
.ds-button--link { --_bg: transparent; --_fg: var(--ds-text-link); --_bd: transparent; padding-inline: var(--ds-space-2); text-decoration: underline; text-underline-offset: .25em; }
.ds-button--link:hover, .ds-button--link:active { --_bg: transparent; --_bd: transparent; text-decoration-thickness: 2px; transform: none; }
.ds-button--danger { --_bg: var(--ds-danger); --_fg: #fff; --_bd: var(--ds-danger); }
.ds-button--danger:hover, .ds-button--danger:active { --_bg: #86302a; --_bd: #86302a; }
.ds-button--sm { min-height: var(--ds-control-height-sm); padding-inline: var(--ds-space-5); font-size: 11px; }
.ds-button--lg { min-height: var(--ds-control-height-lg); padding-inline: var(--ds-space-8); font-size: 14px; }
.ds-button--block { display: flex; width: 100%; }
.ds-button--icon { width: var(--ds-control-height); padding: 0; }
.ds-button--icon.ds-button--sm { width: var(--ds-control-height-sm); }
.ds-button--icon.ds-button--lg { width: var(--ds-control-height-lg); }
.ds-button .ds-icon { flex: none; width: 18px; height: 18px; }
.ds-button:disabled, .ds-button[aria-disabled="true"] { opacity: .45; cursor: not-allowed; pointer-events: none; transform: none; }
.ds-button[aria-busy="true"] { pointer-events: none; cursor: progress; }
.ds-button[aria-busy="true"]::before {
  content: ""; width: 14px; height: 14px; flex: none; border-radius: 50%;
  border: 2px solid currentColor; border-right-color: transparent; animation: ds-spin .8s linear infinite;
}


/* Campos */
.ds-field { display: grid; gap: var(--ds-space-3); }
.ds-label { font-size: var(--ds-text-xs); font-weight: var(--ds-weight-strong); letter-spacing: .08em; text-transform: uppercase; color: var(--ds-text); }
.ds-label__optional { font-weight: var(--ds-weight-body); letter-spacing: 0; text-transform: none; color: var(--ds-text-muted); margin-left: var(--ds-space-2); }
.ds-input, .ds-select, .ds-textarea {
  width: 100%; box-sizing: border-box; min-height: var(--ds-control-height); padding: var(--ds-space-4) var(--ds-space-5);
  font: inherit; font-family: var(--ds-font-ui); font-weight: 400; font-size: var(--ds-text-md); line-height: 1.4; color: var(--ds-text);
  background: var(--ds-bg-elevated); border: var(--ds-border-hairline) solid var(--ds-line-strong); border-radius: var(--ds-radius-md);
  transition: border-color var(--ds-motion-fast), box-shadow var(--ds-motion-fast), background var(--ds-motion-fast);
}
.ds-textarea { min-height: 120px; resize: vertical; }
.ds-select { appearance: none; -webkit-appearance: none; padding-right: var(--ds-space-10);
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%235c6275' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");
  background-repeat: no-repeat; background-position: right var(--ds-space-4) center; background-size: 18px; }
.ds-input::placeholder, .ds-textarea::placeholder { color: var(--ds-text-muted); opacity: 1; }
.ds-input:hover, .ds-select:hover, .ds-textarea:hover { border-color: var(--ds-text); }
.ds-input:focus-visible, .ds-select:focus-visible, .ds-textarea:focus-visible { outline: var(--ds-focus-width) solid var(--ds-focus); outline-offset: 2px; border-color: var(--ds-focus); }
.ds-input:disabled, .ds-select:disabled, .ds-textarea:disabled { background: var(--ds-bg-2); color: var(--ds-text-muted); border-color: var(--ds-line); cursor: not-allowed; }
.ds-input:read-only:not(:disabled) { background: var(--ds-bg-2); }
.ds-input[aria-invalid="true"], .ds-select[aria-invalid="true"], .ds-textarea[aria-invalid="true"] { border-color: var(--ds-danger); box-shadow: inset 0 0 0 1px var(--ds-danger); }
.ds-input--line, .ds-select--line, .ds-textarea--line { background: transparent; border-width: 0 0 var(--ds-border-hairline) 0; border-radius: 0; padding-inline: 0; }
.ds-input--line:focus-visible { outline: none; border-bottom-width: 2px; border-color: var(--ds-focus); }
.ds-help { font-family: var(--ds-font-ui); font-size: var(--ds-text-sm); color: var(--ds-text-muted); margin: 0; }
.ds-error { display: flex; gap: var(--ds-space-2); align-items: flex-start; font-family: var(--ds-font-ui); font-size: var(--ds-text-sm); color: var(--ds-danger); font-weight: 500; margin: 0; }
.ds-error:empty { display: none; }
.ds-error .ds-icon { width: 16px; height: 16px; margin-top: 2px; flex: none; }
.ds-field--inline { grid-template-columns: auto 1fr; align-items: center; }
.ds-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; display: grid; gap: var(--ds-space-4); }
.ds-fieldset > legend { padding: 0; margin-bottom: var(--ds-space-3); }
.ds-input-group { display: flex; }
.ds-input-group > .ds-input { border-radius: var(--ds-radius-md) 0 0 var(--ds-radius-md); }
.ds-input-group > .ds-button { border-radius: 0 var(--ds-radius-md) var(--ds-radius-md) 0; }

/* Checkbox, rádio, switch */
.ds-check { display: inline-flex; gap: var(--ds-space-4); align-items: flex-start; cursor: pointer; font-family: var(--ds-font-ui); font-size: var(--ds-text-sm); line-height: 1.5; color: var(--ds-text-2); position: relative; }
.ds-check input { appearance: none; -webkit-appearance: none; flex: none; width: 20px; height: 20px; margin: 2px 0 0; box-sizing: border-box;
  border: var(--ds-border-hairline) solid var(--ds-line-strong); border-radius: var(--ds-radius-sm); background: var(--ds-bg-elevated); cursor: pointer; display: grid; place-items: center;
  transition: background var(--ds-motion-fast), border-color var(--ds-motion-fast); }
.ds-check input::before { content: ""; width: 12px; height: 12px; transform: scale(0); transition: transform var(--ds-motion-fast) var(--ds-ease-enter);
  background: var(--ds-text-on-accent); clip-path: polygon(14% 50%, 0 66%, 40% 100%, 100% 20%, 86% 6%, 40% 70%); }
.ds-check input:checked { background: var(--ds-accent); border-color: var(--ds-accent); }
.ds-check input:checked::before { transform: scale(1); }
.ds-check input[type="radio"] { border-radius: 50%; }
.ds-check input[type="radio"]::before { clip-path: none; border-radius: 50%; width: 8px; height: 8px; }
.ds-check input:indeterminate { background: var(--ds-accent); border-color: var(--ds-accent); }
.ds-check input:indeterminate::before { transform: scale(1); clip-path: none; height: 2px; }
.ds-check input:hover { border-color: var(--ds-text); }
.ds-check input:disabled { opacity: .45; cursor: not-allowed; }
.ds-check input:disabled ~ * { opacity: .6; cursor: not-allowed; }
.ds-check input[aria-invalid="true"] { border-color: var(--ds-danger); box-shadow: 0 0 0 1px var(--ds-danger); }
.ds-check--switch input { width: 40px; height: 22px; border-radius: var(--ds-radius-pill); background: var(--ds-bg-3); border-color: var(--ds-line-strong); place-items: center start; padding: 0 2px; margin-top: 0; }
.ds-check--switch input::before { transform: none; clip-path: none; width: 16px; height: 16px; border-radius: 50%; background: var(--ds-bg-elevated); box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: translate var(--ds-motion-base) var(--ds-ease-standard); }
.ds-check--switch input:checked::before { translate: 18px 0; transform: none; }
.ds-check__text { display: grid; gap: 2px; }
.ds-check__hint { color: var(--ds-text-muted); font-size: var(--ds-text-xs); }
.ds-check-group { display: grid; gap: var(--ds-space-3); }
.ds-check-group--row { grid-auto-flow: column; justify-content: start; gap: var(--ds-space-7); }

/* Badge e status */
.ds-badge { display: inline-flex; align-items: center; gap: var(--ds-space-2); padding: 3px 10px; border-radius: var(--ds-radius-pill);
  font-family: var(--ds-font-body); font-size: 11px; font-weight: var(--ds-weight-strong); letter-spacing: .08em; text-transform: uppercase; line-height: 1.5; white-space: nowrap;
  color: var(--ds-text); background: var(--ds-bg-2); border: var(--ds-border-hairline) solid var(--ds-line); }
.ds-badge--accent { color: var(--ds-accent); background: var(--ds-accent-soft); border-color: transparent; }
.ds-badge--success { color: var(--ds-success); background: var(--ds-success-bg); border-color: transparent; }
.ds-badge--warning { color: var(--ds-warning); background: var(--ds-warning-bg); border-color: transparent; }
.ds-badge--danger { color: var(--ds-danger); background: var(--ds-danger-bg); border-color: transparent; }
.ds-badge--inverse { color: var(--ds-text-inverse); background: var(--ds-bg-inverse); border-color: transparent; }
.ds-badge--outline { background: transparent; border-color: currentColor; }
.ds-status { display: inline-flex; align-items: center; gap: var(--ds-space-3); font-family: var(--ds-font-ui); font-size: var(--ds-text-sm); color: var(--ds-text-2); }
.ds-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ds-text-muted); flex: none; }
.ds-status--success::before { background: var(--ds-success); } .ds-status--warning::before { background: var(--ds-warning); }
.ds-status--danger::before { background: var(--ds-danger); } .ds-status--info::before { background: var(--ds-accent); }
.ds-status--pending::before { background: transparent; border: 2px solid var(--ds-text-muted); box-sizing: border-box; }

/* Alertas */
.ds-alert { display: grid; grid-template-columns: auto 1fr auto; gap: var(--ds-space-4); align-items: start; padding: var(--ds-space-5) var(--ds-space-6);
  border-radius: var(--ds-radius-md); border-left: 3px solid var(--_c, var(--ds-accent)); background: var(--_b, var(--ds-info-bg)); color: var(--ds-text); font-family: var(--ds-font-ui); font-size: var(--ds-text-sm); line-height: 1.55; }
.ds-alert .ds-icon { width: 20px; height: 20px; color: var(--_c, var(--ds-accent)); margin-top: 1px; }
.ds-alert__title { display: block; font-weight: 600; margin-bottom: 2px; color: var(--ds-text); }
.ds-alert__body { margin: 0; color: var(--ds-text-2); }
.ds-alert__close { margin: -6px -8px 0 0; }
.ds-alert--success { --_c: var(--ds-success); --_b: var(--ds-success-bg); }
.ds-alert--warning { --_c: var(--ds-warning); --_b: var(--ds-warning-bg); }
.ds-alert--danger { --_c: var(--ds-danger); --_b: var(--ds-danger-bg); }
.ds-alert--neutral { --_c: var(--ds-line-strong); --_b: var(--ds-bg-2); }

/* Tabs */
.ds-tabs { display: grid; gap: var(--ds-space-7); }
.ds-tabs__list { display: flex; gap: var(--ds-space-7); border-bottom: var(--ds-border-hairline) solid var(--ds-line); overflow-x: auto; scrollbar-width: thin; margin: 0; padding: 0; list-style: none; }
.ds-tabs__tab { flex: none; padding: var(--ds-space-4) 2px; margin-bottom: -1px; background: none; border: 0; border-bottom: 2px solid transparent; cursor: pointer;
  font-family: var(--ds-font-body); font-size: var(--ds-text-xs); font-weight: var(--ds-weight-strong); letter-spacing: .12em; text-transform: uppercase; color: var(--ds-text-muted);
  transition: color var(--ds-motion-fast), border-color var(--ds-motion-fast); }
.ds-tabs__tab:hover { color: var(--ds-text); }
.ds-tabs__tab[aria-selected="true"] { color: var(--ds-accent); border-bottom-color: var(--ds-accent); }
.ds-tabs__tab:disabled { opacity: .45; cursor: not-allowed; }
.ds-tabs__panel { outline: none; }
.ds-tabs__panel[hidden] { display: none; }
.ds-tabs--pills .ds-tabs__list { border: 0; gap: var(--ds-space-2); }
.ds-tabs--pills .ds-tabs__tab { padding: var(--ds-space-3) var(--ds-space-5); border: var(--ds-border-hairline) solid transparent; border-radius: var(--ds-radius-pill); margin: 0; }
.ds-tabs--pills .ds-tabs__tab[aria-selected="true"] { background: var(--ds-bg-inverse); color: var(--ds-text-inverse); border-color: var(--ds-bg-inverse); }

/* Breadcrumb */
.ds-breadcrumb { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: var(--ds-space-3); font-size: var(--ds-text-xs); letter-spacing: .06em; text-transform: uppercase; color: var(--ds-text-muted); }
.ds-breadcrumb li { display: inline-flex; align-items: center; gap: var(--ds-space-3); }
.ds-breadcrumb li + li::before { content: ""; width: 1px; height: 12px; background: var(--ds-line-strong); transform: rotate(18deg); }
.ds-breadcrumb a { color: inherit; text-decoration: none; }
.ds-breadcrumb a:hover { color: var(--ds-text); text-decoration: underline; text-underline-offset: .2em; }
.ds-breadcrumb [aria-current="page"] { color: var(--ds-text); font-weight: var(--ds-weight-strong); }

/* Paginação */
.ds-pagination { display: flex; align-items: center; gap: var(--ds-space-2); margin: 0; padding: 0; list-style: none; }
.ds-pagination__link { font-family: var(--ds-font-ui); display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 var(--ds-space-3); border-radius: var(--ds-radius-md);
  font-size: var(--ds-text-sm); font-weight: 500; font-variant-numeric: tabular-nums; color: var(--ds-text-2); text-decoration: none; border: var(--ds-border-hairline) solid transparent; background: none; cursor: pointer; }
.ds-pagination__link:hover { background: var(--ds-accent-soft); color: var(--ds-text); }
.ds-pagination__link[aria-current="page"] { background: var(--ds-bg-inverse); color: var(--ds-text-inverse); }
.ds-pagination__link:disabled, .ds-pagination__link[aria-disabled="true"] { opacity: .4; pointer-events: none; }
.ds-pagination__gap { padding: 0 var(--ds-space-2); color: var(--ds-text-muted); }
.ds-pagination__summary { font-family: var(--ds-font-ui); margin-left: auto; font-size: var(--ds-text-sm); color: var(--ds-text-muted); }

/* Dialog */
.ds-dialog { width: min(560px, calc(100vw - 32px)); max-height: calc(100vh - 48px); padding: 0; margin: auto; border: var(--ds-border-hairline) solid var(--ds-line); border-radius: var(--ds-radius-lg);
  background: var(--ds-bg-elevated); color: var(--ds-text); box-shadow: var(--ds-shadow-lg); overflow: hidden; box-sizing: border-box; }
.ds-dialog::backdrop { background: var(--ds-overlay, rgba(12,17,36,.62)); }
.ds-dialog[open] { display: grid; grid-template-rows: auto 1fr auto; animation: ds-dialog-in var(--ds-motion-slow) var(--ds-ease-enter); }
.ds-dialog[open]::backdrop { animation: ds-fade var(--ds-motion-base) ease; }
.ds-dialog__header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--ds-space-5); padding: var(--ds-space-7) var(--ds-space-7) var(--ds-space-5); border-bottom: var(--ds-border-hairline) solid var(--ds-line-soft); }
.ds-dialog__title { margin: 0; font-family: var(--ds-font-display); font-weight: var(--ds-weight-display); font-size: var(--ds-text-h4); line-height: 1.25; }
.ds-dialog__body { padding: var(--ds-space-6) var(--ds-space-7); overflow: auto; font-family: var(--ds-font-ui); font-size: var(--ds-text-sm); line-height: 1.6; color: var(--ds-text-2); }
.ds-dialog__footer { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--ds-space-3); padding: var(--ds-space-5) var(--ds-space-7) var(--ds-space-7); border-top: var(--ds-border-hairline) solid var(--ds-line-soft); }
.ds-dialog--wide { width: min(880px, calc(100vw - 32px)); }
.ds-dialog--sheet { width: min(420px, 100vw); height: 100vh; max-height: 100vh; margin: 0 0 0 auto; border-radius: 0; animation-name: ds-sheet-in; }
@media (max-width: 480px) { .ds-dialog { width: 100vw; max-height: 100vh; margin: auto 0 0; border-radius: var(--ds-radius-lg) var(--ds-radius-lg) 0 0; } }

/* Tabela */
.ds-table-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border: var(--ds-border-hairline) solid var(--ds-line); border-radius: var(--ds-radius-lg); background: var(--ds-bg-elevated); }
.ds-table-wrap:focus-visible { outline: var(--ds-focus-width) solid var(--ds-focus); }
.ds-table { width: 100%; border-collapse: collapse; font-family: var(--ds-font-ui); font-size: var(--ds-text-sm); color: var(--ds-text-2); min-width: 560px; }
.ds-table caption { font-family: var(--ds-font-body); text-align: left; padding: var(--ds-space-4) var(--ds-space-5); font-size: var(--ds-text-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--ds-text-muted); }
.ds-table th, .ds-table td { padding: var(--ds-space-4) var(--ds-space-5); text-align: left; vertical-align: top; border-bottom: var(--ds-border-hairline) solid var(--ds-line); }
.ds-table th { font-family: var(--ds-font-body); font-size: var(--ds-text-xs); font-weight: var(--ds-weight-strong); letter-spacing: .08em; text-transform: uppercase; color: var(--ds-text-muted); background: var(--ds-bg-2); white-space: nowrap; }
.ds-table tbody tr:last-child td { border-bottom: 0; }
.ds-table tbody tr:hover td { background: var(--ds-accent-soft); }
.ds-table tr[aria-selected="true"] td { background: var(--ds-accent-soft); box-shadow: inset 3px 0 0 var(--ds-accent); }
.ds-table td.ds-num, .ds-table th.ds-num { text-align: right; font-variant-numeric: tabular-nums; }
.ds-table__actions { display: flex; gap: var(--ds-space-2); justify-content: flex-end; }
.ds-table--editorial { min-width: 0; }
.ds-table-wrap--flat { border: 0; border-radius: 0; background: transparent; }
.ds-table-wrap--flat .ds-table th { background: transparent; }
@media (max-width: 640px) {
  .ds-table--stack { min-width: 0; }
  .ds-table--stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .ds-table--stack tr { display: block; padding: var(--ds-space-3) 0; border-bottom: var(--ds-border-hairline) solid var(--ds-line); }
  .ds-table--stack td { display: grid; grid-template-columns: 40% 1fr; gap: var(--ds-space-3); border: 0; padding: var(--ds-space-2) var(--ds-space-5); text-align: left; }
  .ds-table--stack td::before { content: attr(data-label); font-size: var(--ds-text-xs); letter-spacing: .08em; text-transform: uppercase; color: var(--ds-text-muted); }
  .ds-table--stack td.ds-num { text-align: left; }
}

/* Card */
.ds-card { background: var(--ds-bg-elevated); border: var(--ds-border-hairline) solid var(--ds-line); border-radius: var(--ds-radius-lg); padding: var(--ds-space-7); box-shadow: var(--ds-shadow-sm); color: var(--ds-text-2); }
.ds-card__title { margin: 0 0 var(--ds-space-3); font-family: var(--ds-font-display); font-weight: var(--ds-weight-display); font-size: var(--ds-text-h4); color: var(--ds-text); line-height: 1.25; }
.ds-card--editorial { background: transparent; border: 0; border-top: var(--ds-border-hairline) solid var(--ds-line-strong); border-radius: 0; box-shadow: none; padding-inline: 0; }
.ds-card--interactive { transition: border-color var(--ds-motion-base), box-shadow var(--ds-motion-base), transform var(--ds-motion-base) var(--ds-ease-standard); cursor: pointer; }
.ds-card--interactive:hover { border-color: var(--ds-line-strong); box-shadow: var(--ds-shadow-md); }
.ds-card--flush { padding: 0; overflow: hidden; }
.ds-card__media { display: block; width: 100%; aspect-ratio: 4/3; object-fit: cover; }
.ds-card__body { padding: var(--ds-space-6) var(--ds-space-7); }
.ds-kpi { display: grid; gap: var(--ds-space-2); }
.ds-kpi__value { font-family: var(--ds-font-body); font-weight: var(--ds-weight-strong); font-size: var(--ds-text-h2); line-height: 1; letter-spacing: -.02em; color: var(--ds-text); font-variant-numeric: tabular-nums; }

/* Vazio, carregamento */
.ds-empty { display: grid; justify-items: center; text-align: center; gap: var(--ds-space-4); padding: var(--ds-space-11) var(--ds-space-7); border: 1px dashed var(--ds-line-strong); border-radius: var(--ds-radius-lg); color: var(--ds-text-2); }
.ds-empty .ds-icon { width: 36px; height: 36px; color: var(--ds-text-muted); stroke-width: 1.25; }
.ds-empty__title { margin: 0; font-family: var(--ds-font-display); font-weight: var(--ds-weight-display); font-size: var(--ds-text-h4); color: var(--ds-text); }
.ds-empty__text { font-family: var(--ds-font-ui); margin: 0; max-width: 42ch; font-size: var(--ds-text-sm); color: var(--ds-text-muted); }
.ds-spinner { display: inline-block; width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--ds-line); border-top-color: var(--ds-accent); animation: ds-spin .8s linear infinite; vertical-align: middle; }
.ds-spinner--sm { width: 16px; height: 16px; } .ds-spinner--lg { width: 40px; height: 40px; border-width: 3px; }
.ds-skeleton { display: block; background: linear-gradient(90deg, var(--ds-bg-2) 0%, var(--ds-bg-3) 50%, var(--ds-bg-2) 100%); background-size: 200% 100%; animation: ds-shimmer 1.4s ease infinite; border-radius: var(--ds-radius-sm); min-height: 1em; color: transparent; }
.ds-skeleton--text { height: .9em; margin: .35em 0; } .ds-skeleton--title { height: 1.6em; width: 60%; } .ds-skeleton--media { aspect-ratio: 16/9; }
.ds-loading { font-family: var(--ds-font-ui); display: inline-flex; align-items: center; gap: var(--ds-space-3); font-size: var(--ds-text-sm); color: var(--ds-text-muted); }
.ds-progress { width: 100%; height: 4px; background: var(--ds-bg-3); border-radius: var(--ds-radius-pill); overflow: hidden; }
.ds-progress > span { display: block; height: 100%; background: var(--ds-accent); width: var(--value, 0%); transition: width var(--ds-motion-slow) var(--ds-ease-standard); }

/* Toast (região de status) */
.ds-toast { font-family: var(--ds-font-ui); position: fixed; z-index: var(--ds-z-toast); left: 50%; bottom: var(--ds-space-7); transform: translateX(-50%); display: flex; align-items: center; gap: var(--ds-space-3); padding: var(--ds-space-4) var(--ds-space-6);
  background: var(--ds-bg-inverse); color: var(--ds-text-inverse); border-radius: var(--ds-radius-md); font-size: var(--ds-text-sm); box-shadow: var(--ds-shadow-lg); animation: ds-toast-in var(--ds-motion-slow) var(--ds-ease-enter); max-width: calc(100vw - 32px); }
.ds-toast .ds-icon { width: 18px; height: 18px; }

/* 7. ÍCONES ------------------------------------------------------------- */
.ds-icon { width: 1.25em; height: 1.25em; display: inline-block; vertical-align: -.25em; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.ds-icon--sm { width: 1em; height: 1em; } .ds-icon--lg { width: 1.75em; height: 1.75em; } .ds-icon--thin { stroke-width: 1.25; }

/* Elevare: linhas horizontais como ornamento (referência ao símbolo de barras) */
.ds-rule-lines { height: 32px; width: 100%; background: repeating-linear-gradient(to bottom, var(--ds-accent-decorative) 0 1px, transparent 1px 8px); opacity: .55; }

/* Animações */
@keyframes ds-spin { to { transform: rotate(360deg); } }
@keyframes ds-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }
@keyframes ds-fade { from { opacity: 0; } }
@keyframes ds-dialog-in { from { opacity: 0; transform: translateY(12px) scale(.985); } }
@keyframes ds-sheet-in { from { transform: translateX(24px); opacity: 0; } }
@keyframes ds-toast-in { from { transform: translate(-50%, 12px); opacity: 0; } }
.ds-reveal { opacity: 0; transform: translateY(12px); transition: opacity var(--ds-motion-enter) var(--ds-ease-enter), transform var(--ds-motion-enter) var(--ds-ease-enter); }
.ds-reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  :root { --ds-motion-fast: 0ms; --ds-motion-base: 0ms; --ds-motion-slow: 0ms; --ds-motion-enter: 0ms; }
  [class*="ds-"], [class*="ds-"]::before, [class*="ds-"]::after, .ds-dialog[open]::backdrop { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: 0ms !important; scroll-behavior: auto !important; }
  .ds-reveal { opacity: 1; transform: none; }
  .ds-skeleton { animation: none; }
}
@media (forced-colors: active) {
  .ds-button, .ds-input, .ds-select, .ds-textarea, .ds-check input, .ds-badge { border-color: ButtonText; forced-color-adjust: none; }
  .ds-tabs__tab[aria-selected="true"] { border-bottom-color: Highlight; }
}
@media print {
  .ds-button, .ds-dialog, .ds-toast, .ds-skip { display: none !important; }
  .ds-root { background: #fff; color: #000; }
}
/* Keep clipped accessible labels inside the table's scrolling containing block. */
.ds-table-wrap{position:relative}

/* Aviano não tem itálico: sem itálico/negrito falso nas telas da Pazcon */
html[data-brand="pazcon"] { font-synthesis: none; }
