/* ============================================================================
   UNIO DESIGN SYSTEM — folha unica para documentos (uds.css)
   Gerada a partir de kit/tokens/*.css do repositorio Grupo-Unio/unio-design-system.
   A ordem de importacao e carregada de significado: layout ANTES de semantic,
   porque [data-uds-density] e :root compartilham especificidade (0,1,0).
   Prefixo --uds-*. Tema: data-uds-theme="dark". Densidade: data-uds-density="compact".
   ============================================================================ */


/* UNIO — fontes. Bossa (marca, licenciada ao Grupo Unio) + JetBrains Mono (numerais, rotulos estruturais).
   Recortes subsetados para latim + pontuacao + simbolos de dado. Bossa nao possui Semibold. */
@font-face{font-family:"Bossa";font-style:normal;font-weight:300;font-display:swap;src:url("fonts/Bossa-Light.woff2") format("woff2")}
@font-face{font-family:"Bossa";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/Bossa-Regular.woff2") format("woff2")}
@font-face{font-family:"Bossa";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/Bossa-Medium.woff2") format("woff2")}
@font-face{font-family:"Bossa";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/Bossa-Bold.woff2") format("woff2")}
@font-face{font-family:"Bossa";font-style:normal;font-weight:900;font-display:swap;src:url("fonts/Bossa-Black.woff2") format("woff2")}
@font-face{font-family:"Bossa Extended";font-style:normal;font-weight:300;font-display:swap;src:url("fonts/Bossa-ExtendedLight.woff2") format("woff2")}
@font-face{font-family:"Bossa Extended";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/Bossa-ExtendedRegular.woff2") format("woff2")}
@font-face{font-family:"Bossa Extended";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/Bossa-ExtendedMedium.woff2") format("woff2")}
@font-face{font-family:"Bossa Extended";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/Bossa-ExtendedBold.woff2") format("woff2")}
@font-face{font-family:"Bossa Extended";font-style:normal;font-weight:900;font-display:swap;src:url("fonts/Bossa-ExtendedBlack.woff2") format("woff2")}
@font-face{font-family:"Bossa Expanded";font-style:normal;font-weight:300;font-display:swap;src:url("fonts/Bossa-ExpandedLight.woff2") format("woff2")}
@font-face{font-family:"Bossa Expanded";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/Bossa-ExpandedRegular.woff2") format("woff2")}
@font-face{font-family:"Bossa Expanded";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/Bossa-ExpandedMedium.woff2") format("woff2")}
@font-face{font-family:"Bossa Expanded";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/Bossa-ExpandedBold.woff2") format("woff2")}
@font-face{font-family:"Bossa Expanded";font-style:normal;font-weight:900;font-display:swap;src:url("fonts/Bossa-ExpandedBlack.woff2") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url("fonts/JetBrainsMono-Regular.woff2") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:500;font-display:swap;src:url("fonts/JetBrainsMono-Medium.woff2") format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:700;font-display:swap;src:url("fonts/JetBrainsMono-Bold.woff2") format("woff2")}
:root{
  --uds-font-brand:"Bossa","Bossa Extended",system-ui,-apple-system,sans-serif;
  --uds-font-brand-extended:"Bossa Extended","Bossa",system-ui,sans-serif;
  --uds-font-brand-expanded:"Bossa Expanded","Bossa Extended","Bossa",system-ui,sans-serif;
  --uds-font-sans:"Bossa",system-ui,-apple-system,sans-serif;
  --uds-font-mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --uds-font-weight-light:300;--uds-font-weight-regular:400;--uds-font-weight-medium:500;
  --uds-font-weight-semibold:500;/* Bossa nao tem Semibold: resolve em 500 para evitar faux-bold */
  --uds-font-weight-bold:700;--uds-font-weight-black:900
}

/* UNIO — camada 1 · primitivos. NUNCA consumir direto em componente: use tokens/semantic.css.
   black + white são 95% da paleta do manual (p.152-153). blue.400 é a única cor de marca (p.154). */
:root{
  --uds-color-black:#000000;
  --uds-color-white:#ffffff;

  /* Rampa da marca — OKLCH H 208°. O degrau 400 é "Pure Blue" #badadf, fixado pelo manual p.154. */
  --uds-color-blue-50:#dafbff;
  --uds-color-blue-100:#ceeff4;
  --uds-color-blue-200:#c7e7ec;
  --uds-color-blue-300:#c0e1e6;
  --uds-color-blue-400:#badadf;
  --uds-color-blue-500:#adcdd2;
  --uds-color-blue-600:#a1c0c5;
  --uds-color-blue-700:#7a999d;
  --uds-color-blue-800:#5d7a7f;
  --uds-color-blue-850:#4c696e;
  --uds-color-blue-900:#3c585d;
  --uds-color-blue-950:#264247;

  /* [EXTENSÃO] ADR-001 — neutra fria com viés em H 208°, para pertencer à identidade. */
  --uds-color-neutral-50:#f6fbfc;
  --uds-color-neutral-100:#eef3f3;
  --uds-color-neutral-200:#e3e7e8;
  --uds-color-neutral-300:#cfd6d7;
  --uds-color-neutral-400:#b2b9ba;
  --uds-color-neutral-500:#919a9c;
  --uds-color-neutral-600:#737c7e;
  --uds-color-neutral-700:#575f61;
  --uds-color-neutral-800:#3b4446;
  --uds-color-neutral-850:#293234;
  --uds-color-neutral-900:#182122;
  --uds-color-neutral-950:#050d0e;

  /* [EXTENSÃO] Semânticas. Cada par texto/fundo verificado no Anexo 2. */
  --uds-color-success-bg:#e7f5e7;
  --uds-color-success-border:#a5c9a5;
  --uds-color-success-text:#205b25;
  --uds-color-success-icon:#38733c;
  --uds-color-warning-bg:#faeede;
  --uds-color-warning-border:#d8b88c;
  --uds-color-warning-text:#754500;
  --uds-color-warning-icon:#895700;
  --uds-color-danger-bg:#ffe9e6;
  --uds-color-danger-border:#ecaba3;
  --uds-color-danger-text:#8c2d28;
  --uds-color-danger-icon:#a04038;
  --uds-color-info-bg:#ebf2f3;
  --uds-color-info-border:#afc2c5;
  --uds-color-info-text:#39555a;
  --uds-color-info-icon:#4c696e
}

/* UNIO — tipografia.
   [EXTENSÃO · Etapa 4.2 estava PENDENTE nos arquivos de origem] Os documentos de componente já
   referenciavam papéis semânticos (body-md, label-md, numeric) sem valor resolvido. Esta é a
   resolução: escala em passos de 4px sobre corpo 14px, pesos limitados aos cortes reais da Bossa
   (Light 300, Regular 400, Medium 500, Bold 700, Black 900). Peso Light só acima de 28px — abaixo disso ele reprova legibilidade em tela de obra.
   Regra dura: densidade nunca altera tamanho de texto. */
:root{
  /* Display — capa de documento, estado vazio grande, painel de TV */
  --uds-font-display-lg:300 44px/1.05 var(--uds-font-brand);
  --uds-font-display-md:300 36px/1.08 var(--uds-font-brand);
  --uds-font-display-sm:300 28px/1.12 var(--uds-font-brand);
  /* Heading — título de tela e de seção */
  --uds-font-heading-lg:400 24px/1.2 var(--uds-font-sans);
  --uds-font-heading-md:400 20px/1.25 var(--uds-font-sans);
  --uds-font-heading-sm:500 16px/1.35 var(--uds-font-sans);
  /* Body — texto corrido e valor de célula */
  --uds-font-body-lg:400 16px/1.55 var(--uds-font-sans);
  --uds-font-body-md:400 14px/1.55 var(--uds-font-sans);
  --uds-font-body-sm:400 13px/1.5 var(--uds-font-sans);
  /* Label — rótulo de campo, botão, item de navegação */
  --uds-font-label-lg:500 15px/1.2 var(--uds-font-sans);
  --uds-font-label-md:500 14px/1.2 var(--uds-font-sans);
  --uds-font-label-sm:500 12px/1.25 var(--uds-font-sans);
  /* Overline — rótulo estrutural: cabeçalho de coluna, etiqueta de metadado. Caixa alta, mono. */
  --uds-font-overline:500 11px/1.1 var(--uds-font-mono);
  --uds-font-overline-sm:500 10px/1.1 var(--uds-font-mono);
  --uds-font-overline-tracking:.1em;/* @kind other */
  /* Numeric e Code — sempre mono, sempre tabular */
  --uds-font-numeric-lg:500 20px/1.2 var(--uds-font-mono);
  --uds-font-numeric-md:400 14px/1.4 var(--uds-font-mono);
  --uds-font-numeric-sm:400 12px/1.4 var(--uds-font-mono);
  --uds-font-code:400 13px/1.5 var(--uds-font-mono);
  /* Painel de obra em TV — leitura a 3 metros, corpo mínimo 24px */
  --uds-font-tv-body:400 24px/1.4 var(--uds-font-sans);
  --uds-font-tv-numeric:500 48px/1.05 var(--uds-font-mono);
  --uds-tracking-tight:-.02em;/* @kind other */
  --uds-tracking-snug:-.015em;/* @kind other */
  --uds-tracking-none:0;/* @kind other */
  --uds-tracking-wide:.1em;/* @kind other */
  --uds-tracking-logo:.14em/* @kind other */
}

/* UNIO — espaço. Grade de 4px; o nome do token é o multiplicador.
   Derivação: a única medida numérica do manual é a razão ½ da zona de exclusão do logotipo. */
:root{
  --uds-space-0:0px;--uds-space-1:4px;--uds-space-2:8px;--uds-space-3:12px;--uds-space-4:16px;
  --uds-space-5:20px;--uds-space-6:24px;--uds-space-8:32px;--uds-space-10:40px;--uds-space-12:48px;
  --uds-space-16:64px;--uds-space-20:80px;--uds-space-24:96px;--uds-space-32:128px;--uds-space-40:160px;
  --uds-space-48:192px;--uds-space-64:256px;--uds-space-80:320px;--uds-space-96:384px;

  /* Semânticos — modo comfortable (padrão). Ver [data-uds-density="compact"]. */
  --uds-space-inset-sm:var(--uds-space-3);
  --uds-space-inset-md:var(--uds-space-4);
  --uds-space-inset-lg:var(--uds-space-6);
  --uds-space-stack-sm:var(--uds-space-2);
  --uds-space-stack-md:var(--uds-space-5);
  --uds-space-stack-lg:var(--uds-space-8);
  --uds-space-inline-sm:var(--uds-space-2);
  --uds-space-inline-md:var(--uds-space-3);
  --uds-space-section:var(--uds-space-12)
}
[data-uds-density="compact"]{
  --uds-space-inset-sm:var(--uds-space-2);
  --uds-space-inset-md:var(--uds-space-3);
  --uds-space-inset-lg:var(--uds-space-4);
  --uds-space-stack-sm:var(--uds-space-1);
  --uds-space-stack-md:var(--uds-space-3);
  --uds-space-stack-lg:var(--uds-space-6);
  --uds-space-inline-sm:var(--uds-space-1);
  --uds-space-inline-md:var(--uds-space-2);
  --uds-space-section:var(--uds-space-8)
}

/* UNIO — raio e borda.
   REGRA DE VOCABULÁRIO: radius.full é ação (botão, tag atribuída por pessoa). radius.none é dado
   (badge de estado, cabeçalho de tabela). Campo nunca é pílula. */
:root{
  --uds-radius-none:0px;--uds-radius-xs:2px;--uds-radius-sm:4px;--uds-radius-md:8px;
  --uds-radius-lg:12px;--uds-radius-xl:16px;--uds-radius-2xl:24px;--uds-radius-full:999px;
  --uds-border-hairline:1px;--uds-border-thick:2px;
  --uds-icon-sm:16px;--uds-icon-md:20px;--uds-icon-lg:24px;--uds-icon-xl:32px;
  --uds-icon-stroke:1.5px
}

/* UNIO — elevação. [EXTENSÃO] Sombra apenas onde algo de fato flutua; superfície de dado é flat.
   Cor base neutral.950 em duas camadas: uma de contato, uma de difusão. */
:root{
  --uds-elevation-flat:none;
  --uds-elevation-raised:0 1px 2px rgba(5,13,14,.06),0 1px 1px rgba(5,13,14,.04);
  --uds-elevation-overlay:0 2px 4px rgba(5,13,14,.06),0 4px 8px rgba(5,13,14,.05);
  --uds-elevation-popover:0 4px 8px rgba(5,13,14,.07),0 8px 16px rgba(5,13,14,.06);
  --uds-elevation-drawer:0 8px 16px rgba(5,13,14,.08),0 16px 32px rgba(5,13,14,.08);
  --uds-elevation-dialog:0 16px 32px rgba(5,13,14,.10),0 24px 48px rgba(5,13,14,.10);
  --uds-opacity-hover:.04;/* @kind other */--uds-opacity-pressed:.08;/* @kind other */--uds-opacity-ghost:.40;/* @kind other */--uds-opacity-scrim:.60;/* @kind other */
  --uds-blur-sm:4px;/* @kind other */--uds-blur-md:12px;/* @kind other */--uds-blur-lg:24px/* @kind other */
}

/* UNIO — movimento. Teto absoluto 500ms. Nada anima posição sem motivo funcional:
   hover troca cor, botão não cresce nem levanta. */
:root{
  --uds-duration-instant:75ms;/* @kind other */
  --uds-duration-fast:100ms;/* @kind other */
  --uds-duration-base:150ms;/* @kind other */
  --uds-duration-slow:200ms;/* @kind other */
  --uds-duration-slower:300ms;/* @kind other */
  --uds-duration-deliberate:500ms;/* @kind other */
  --uds-easing-standard:cubic-bezier(.2,0,0,1);/* @kind other */
  --uds-easing-decelerate:cubic-bezier(0,0,0,1);/* @kind other */
  --uds-easing-accelerate:cubic-bezier(.3,0,1,1);/* @kind other */
  --uds-easing-emphasized:cubic-bezier(.2,0,0,1);/* @kind other */
  --uds-transition-color:color var(--uds-duration-instant) var(--uds-easing-standard),background-color var(--uds-duration-instant) var(--uds-easing-standard),border-color var(--uds-duration-instant) var(--uds-easing-standard);/* @kind other */
  --uds-duration-spin:800ms;/* @kind other */
}
@media (prefers-reduced-motion:reduce){
  :root{
    --uds-duration-instant:1ms;/* @kind other */
    --uds-duration-fast:1ms;/* @kind other */
    --uds-duration-base:1ms;/* @kind other */
    --uds-duration-slow:1ms;/* @kind other */
    --uds-duration-slower:1ms;/* @kind other */
    --uds-duration-deliberate:1ms;/* @kind other */
    /* O giro DESACELERA, não some: 1ms deixaria o spinner num borrão. É a única
       duração que não colapsa, porque aqui o movimento é a própria informação. */
    --uds-duration-spin:2400ms;/* @kind other */
  }
}

/* Spinner — mora aqui, e não num <style> injetado pelo componente.
   O componente emitia `@media (prefers-reduced-motion){svg{animation-duration:2400ms!important}}`:
   seletor de ELEMENTO, global, com !important. Numa aplicação hospedeira isso alcança todo
   SVG da página — gráfico de recharts, diagrama, ícone animado — e era reinjetado a cada
   instância montada. Escopado em .uds-spinner, o alcance é o componente. */
@keyframes uds-spin{to{transform:rotate(360deg)}}
.uds-spinner>svg{animation:uds-spin var(--uds-duration-spin) linear infinite}

/* UNIO — layout, densidade e camadas. Largura de projeto 1366px: o monitor real do escritório. */
:root{
  --uds-breakpoint-sm:480px;--uds-breakpoint-md:768px;--uds-breakpoint-lg:1024px;
  --uds-breakpoint-xl:1440px;--uds-breakpoint-2xl:1920px;
  --uds-layout-reference-width:1366px;
  --uds-layout-content-max:1600px;
  --uds-layout-sidebar:260px;
  --uds-layout-sidebar-collapsed:64px;
  --uds-layout-topbar:64px;
  --uds-layout-margin:32px;
  --uds-layout-measure:70ch;

  --uds-control-height-lg:44px;
  --uds-control-height-md:40px;
  --uds-control-height-sm:32px;
  --uds-control-row:52px;
  --uds-control-box:20px;
  --uds-control-switch-w:40px;
  --uds-control-switch-h:22px;
  --uds-control-switch-thumb:16px;
  --uds-control-hit:44px;
  --uds-nav-item-height:44px;

  --uds-z-base:0;/* @kind other */
  --uds-z-raised:10;/* @kind other */
  --uds-z-sticky:100;/* @kind other */
  --uds-z-topbar:200;/* @kind other */
  --uds-z-drawer:300;/* @kind other */
  --uds-z-modal:400;/* @kind other */
  --uds-z-popover:500;/* @kind other */
  --uds-z-toast:600;/* @kind other */
  --uds-z-tooltip:700/* @kind other */
}
/* Densidade compacta. Os TRÊS degraus de altura precisam ser redeclarados juntos:
   sobrescrever só o lg deixava a escala invertida — lg:32 contra md:40 herdado e sm:32,
   ou seja lg == sm < md, e um Button size="lg" saía menor que um size="md".
   Os valores seguem o mesmo degrau do nav-item (44→36) para o sistema ter uma só régua.
   A área de toque continua garantida por --uds-control-hit, que NÃO muda com densidade. */
[data-uds-density="compact"]{
  --uds-control-height-lg:36px;
  --uds-control-height-md:32px;
  --uds-control-height-sm:28px;
  --uds-control-row:36px;
  --uds-layout-topbar:48px;
  --uds-nav-item-height:36px
}

/* UNIO — camada 2 · a camada que os componentes consomem, mais camada 3 (aliases por intenção).
   Todo par de texto ativo tem contraste verificado. text-disabled é a única exceção (isento por 1.4.6). */
:root{
  /* Superfície */
  --uds-bg-surface:var(--uds-color-white);
  --uds-bg-surface-sunken:var(--uds-color-neutral-50);
  --uds-bg-canvas:var(--uds-color-neutral-50);
  --uds-bg-subtle:var(--uds-color-neutral-100);
  --uds-bg-hover:var(--uds-color-neutral-100);
  --uds-bg-selected:var(--uds-color-blue-50);
  --uds-bg-disabled:var(--uds-color-neutral-200);
  --uds-bg-inverse:var(--uds-color-black);
  --uds-bg-brand:var(--uds-color-blue-400);

  /* Texto */
  --uds-text-primary:var(--uds-color-black);          /* 21,00 */
  --uds-text-secondary:var(--uds-color-neutral-850);  /* 13,12 */
  --uds-text-tertiary:var(--uds-color-neutral-800);   /*  9,99 */
  --uds-text-disabled:var(--uds-color-neutral-500);   /*  2,87 — isento 1.4.6 */
  --uds-text-link:var(--uds-color-blue-900);          /*  7,65 */
  --uds-text-link-hover:var(--uds-color-blue-950);
  --uds-text-on-action:var(--uds-color-black);        /* 14,18 sobre blue.400 */
  --uds-text-on-destructive:var(--uds-color-white);   /*  8,33 — branco nos DOIS temas */
  --uds-text-inverse:var(--uds-color-white);

  /* Borda */
  --uds-border-subtle:var(--uds-color-neutral-200);
  --uds-border-default:var(--uds-color-neutral-300);
  --uds-border-field:var(--uds-color-neutral-500);
  --uds-border-strong:var(--uds-color-neutral-600);

  /* Ação */
  --uds-action-primary:var(--uds-color-blue-400);
  --uds-action-primary-hover:var(--uds-color-blue-500);
  --uds-action-primary-active:var(--uds-color-blue-600);
  --uds-action-primary-disabled:var(--uds-color-neutral-200);
  --uds-action-secondary-border:var(--uds-color-blue-700); /* 3,06 — limiar de componente */
  --uds-action-emphasis:var(--uds-color-black);            /* marcado de Checkbox/Radio/Switch */
  --uds-action-destructive:var(--uds-color-danger-text);

  /* Feedback */
  --uds-feedback-success-bg:var(--uds-color-success-bg);
  --uds-feedback-success-border:var(--uds-color-success-border);
  --uds-feedback-success-text:var(--uds-color-success-text);
  --uds-feedback-success-icon:var(--uds-color-success-icon);
  --uds-feedback-warning-bg:var(--uds-color-warning-bg);
  --uds-feedback-warning-border:var(--uds-color-warning-border);
  --uds-feedback-warning-text:var(--uds-color-warning-text);
  --uds-feedback-warning-icon:var(--uds-color-warning-icon);
  --uds-feedback-danger-bg:var(--uds-color-danger-bg);
  --uds-feedback-danger-border:var(--uds-color-danger-border);
  --uds-feedback-danger-border-strong:var(--uds-color-danger-text); /* portadora de significado */
  --uds-feedback-danger-text:var(--uds-color-danger-text);
  --uds-feedback-danger-icon:var(--uds-color-danger-icon);
  --uds-feedback-info-bg:var(--uds-color-info-bg);
  --uds-feedback-info-border:var(--uds-color-info-border);
  --uds-feedback-info-text:var(--uds-color-info-text);
  --uds-feedback-info-icon:var(--uds-color-info-icon);

  /* Overlay e foco */
  --uds-overlay-scrim:rgba(24,33,34,.45);
  --uds-focus-ring:var(--uds-color-black);
  --uds-focus-offset:var(--uds-color-white);
  --uds-focus-width:var(--uds-border-thick);

  /* Camada 3 — aliases por intenção de componente */
  --uds-button-radius:var(--uds-radius-full);
  --uds-button-padding-x:var(--uds-space-6);
  --uds-button-padding-x-icon:var(--uds-space-4);
  --uds-button-gap:var(--uds-space-2);
  --uds-field-radius:var(--uds-radius-sm);
  --uds-field-padding-x:var(--uds-space-3);
  --uds-field-label-gap:var(--uds-space-1);
  --uds-badge-radius:var(--uds-radius-none);
  --uds-badge-height:var(--uds-space-6);/* 24px — ver override em [data-uds-density] abaixo */
  --uds-tag-radius:var(--uds-radius-full);
  --uds-card-radius:var(--uds-radius-md);
  --uds-card-padding:var(--uds-space-4);
  --uds-card-elevation:var(--uds-elevation-flat);
  --uds-dialog-radius:var(--uds-radius-md);
  --uds-dialog-width-sm:400px;
  --uds-dialog-width-md:560px;
  --uds-dialog-width-lg:720px;
  --uds-drawer-width-sm:380px;
  --uds-drawer-width-md:520px;
  --uds-drawer-width-lg:720px;
  --uds-menu-radius:var(--uds-radius-sm);
  --uds-menu-max-height:320px;
  --uds-table-header-bg:var(--uds-bg-subtle);
  --uds-table-divider:var(--uds-border-subtle);
  --uds-table-footer-bg:var(--uds-bg-inverse);
  --uds-toast-max-width:360px;
  --uds-progress-track:var(--uds-bg-subtle);
  --uds-progress-fill:var(--uds-action-emphasis);
  --uds-progress-height-inline:4px;
  --uds-progress-height-block:8px
}
/* Tema escuro — PENDENTE de verificação de contraste no Anexo 2 antes de publicar. */
[data-uds-theme="dark"]{
  --uds-bg-surface:var(--uds-color-neutral-900);
  --uds-bg-surface-sunken:var(--uds-color-neutral-950);
  --uds-bg-canvas:var(--uds-color-neutral-950);
  --uds-bg-subtle:var(--uds-color-neutral-850);
  --uds-bg-hover:var(--uds-color-neutral-850);
  --uds-bg-selected:var(--uds-color-blue-950);
  --uds-bg-disabled:var(--uds-color-neutral-800);
  --uds-bg-inverse:var(--uds-color-white);
  --uds-text-primary:var(--uds-color-white);
  --uds-text-secondary:var(--uds-color-neutral-300);
  --uds-text-tertiary:var(--uds-color-neutral-400);
  --uds-text-disabled:var(--uds-color-neutral-600);
  --uds-text-link:var(--uds-color-blue-400);
  --uds-text-link-hover:var(--uds-color-blue-300);
  --uds-text-inverse:var(--uds-color-black);
  --uds-border-subtle:var(--uds-color-neutral-800);
  --uds-border-default:var(--uds-color-neutral-700);
  --uds-border-field:var(--uds-color-neutral-600);
  --uds-border-strong:var(--uds-color-neutral-500);
  --uds-action-emphasis:var(--uds-color-blue-400);
  --uds-focus-ring:var(--uds-color-blue-400);
  --uds-focus-offset:var(--uds-color-neutral-900);
  --uds-overlay-scrim:rgba(5,13,14,.75);
  /* feedback — no escuro o fundo pastel não serve: vira neutral.900 e a
     hierarquia inverte, com texto e ícone no degrau claro (border) e a
     borda no degrau médio (icon). Derivado de tokens/semantic.dark.json. */
  --uds-feedback-success-bg:var(--uds-color-neutral-900);
  --uds-feedback-success-border:var(--uds-color-success-icon);
  --uds-feedback-success-text:var(--uds-color-success-border);
  --uds-feedback-success-icon:var(--uds-color-success-border);
  --uds-feedback-warning-bg:var(--uds-color-neutral-900);
  --uds-feedback-warning-border:var(--uds-color-warning-icon);
  --uds-feedback-warning-text:var(--uds-color-warning-border);
  --uds-feedback-warning-icon:var(--uds-color-warning-border);
  --uds-feedback-danger-bg:var(--uds-color-neutral-900);
  --uds-feedback-danger-border:var(--uds-color-danger-icon);
  --uds-feedback-danger-border-strong:var(--uds-color-danger-border);
  --uds-feedback-danger-text:var(--uds-color-danger-border);
  --uds-feedback-danger-icon:var(--uds-color-danger-border);
  --uds-feedback-info-bg:var(--uds-color-neutral-900);
  --uds-feedback-info-border:var(--uds-color-info-icon);
  --uds-feedback-info-text:var(--uds-color-info-border);
  --uds-feedback-info-icon:var(--uds-color-info-border)
}
/* Densidade — aliases de componente que precisam encolher junto com os controles.
   Mora AQUI e não em layout.css de propósito: [data-uds-density] e :root têm a mesma
   especificidade (0,1,0), então quem vence é quem vem depois na cascata. Como styles.css
   importa layout.css ANTES de semantic.css, um override colocado lá seria anulado pelo
   :root deste arquivo. */
[data-uds-density="compact"]{
  --uds-badge-height:var(--uds-space-5)
}

/* UNIO — reset mínimo e utilitários de papel tipográfico. Opt-in: nada aqui é obrigatório. */
.uds-root{background:var(--uds-bg-canvas);color:var(--uds-text-primary);font:var(--uds-font-body-md);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.uds-root *,.uds-root *::before,.uds-root *::after{box-sizing:border-box}
.uds-root :focus-visible{outline:var(--uds-focus-width) solid var(--uds-focus-ring);outline-offset:2px;box-shadow:0 0 0 4px var(--uds-focus-offset)}
/* Escopado em .uds-root: o cabeçalho promete "opt-in, nada aqui é obrigatório", e um
   seletor de elemento solto quebrava a promessa. Numa aplicação hospedeira, `a` global
   alcança navegação, cartão e botão-link — tudo que é âncora sem classe própria — e
   passa a sublinhar o que nunca foi feito para ser sublinhado. */
.uds-root a{color:var(--uds-text-link);text-decoration:underline;text-underline-offset:2px;text-decoration-thickness:1px}
.uds-root a:hover{color:var(--uds-text-link-hover);text-decoration-thickness:2px}
.uds-display-lg{font:var(--uds-font-display-lg);letter-spacing:var(--uds-tracking-tight)}
.uds-display-md{font:var(--uds-font-display-md);letter-spacing:var(--uds-tracking-tight)}
.uds-display-sm{font:var(--uds-font-display-sm);letter-spacing:var(--uds-tracking-tight)}
.uds-heading-lg{font:var(--uds-font-heading-lg);letter-spacing:var(--uds-tracking-snug)}
.uds-heading-md{font:var(--uds-font-heading-md);letter-spacing:var(--uds-tracking-snug)}
.uds-heading-sm{font:var(--uds-font-heading-sm)}
.uds-body-lg{font:var(--uds-font-body-lg)}
.uds-body-md{font:var(--uds-font-body-md)}
.uds-body-sm{font:var(--uds-font-body-sm)}
.uds-label-md{font:var(--uds-font-label-md)}
.uds-label-sm{font:var(--uds-font-label-sm)}
.uds-overline{font:var(--uds-font-overline);letter-spacing:var(--uds-font-overline-tracking);text-transform:uppercase;color:var(--uds-text-tertiary)}
.uds-numeric{font:var(--uds-font-numeric-md);font-variant-numeric:tabular-nums}
.uds-logotype{font-family:var(--uds-font-brand-extended);font-weight:500;letter-spacing:var(--uds-tracking-logo);text-transform:uppercase}
.uds-dot{display:inline-block;width:1em;height:1em;border-radius:var(--uds-radius-full);background:currentColor;flex:none}
