/* GENERATED por sincronizar-ds.mjs — NÃO EDITAR À MÃO.
   Fonte: potenzia-digital/cleomar-design-system@0aab8e4 03-ui-kit/foundations/base.css
   Para atualizar: git -C <clone> pull && npm run build && node sincronizar-ds.mjs */

/* Foundations — base. Requer 02-design-tokens/tokens.css carregado antes. */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  background: var(--ct-bg-canvas);
  color: var(--ct-text-primary);
  font-family: var(--ct-type-body-md-font);
  font-size: var(--ct-type-body-md-size);
  line-height: var(--ct-type-body-md-line);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img,
svg,
video {
  max-width: 100%;
}

/* Foco: sempre outline (sobrevive a forced-colors), nunca removido sem reposição. */
:focus-visible {
  outline: var(--ct-size-focus-width) solid var(--ct-border-focus);
  outline-offset: var(--ct-size-focus-offset);
}

::selection {
  background: var(--ct-bg-accent);
  color: var(--ct-text-on-accent);
}

.ct-icon {
  display: inline-block;
  flex: none;
  width: var(--ct-size-icon-md);
  height: var(--ct-size-icon-md);
  vertical-align: middle;
}

.ct-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;
}

/* Spinner compartilhado (botão em loading, autocomplete buscando, upload). */
.ct-spinner {
  display: inline-block;
  width: var(--ct-size-icon-sm);
  height: var(--ct-size-icon-sm);
  border: var(--ct-border-width-thick) solid currentColor;
  border-right-color: transparent;
  border-radius: var(--ct-radius-full);
  animation: ct-spin 720ms var(--ct-motion-easing-linear) infinite;
}

@keyframes ct-spin {
  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;
    scroll-behavior: auto !important;
  }
  /* O spinner continua girando devagar: é informação de estado, não decoração. */
  .ct-spinner {
    animation-duration: 1.6s !important;
    animation-iteration-count: infinite !important;
  }
}

@media (forced-colors: active) {
  :focus-visible {
    outline-color: Highlight;
  }
}
