/* ==========================================================================
   ROTEFY · Sistema de design
   --------------------------------------------------------------------------
   Ponto de entrada único. A ordem das camadas abaixo é a única regra de
   precedência do sistema: um seletor de `components` sempre vence `layout`,
   independentemente da especificidade. É isso que impede a re-sedimentação
   que produziu o CSS anterior (4.976 linhas, 115 seletores repetidos).

   Regras invioláveis — design_system/PLANO-FRONTEND.md, seção 7:
     1. Nenhum `!important`.
     2. Nenhum componente definido duas vezes.
     3. Coral só onde há ação exigida do usuário.
     4. Um `h1` por página.
     5. Toda célula numérica usa `tabular-nums`.
     6. Nenhum valor cru em componente — só tokens de `01-tokens.css`.
     7. Linha de percurso só onde a ordem carrega informação.
     8. Componente novo entra na página `/design-system/` no mesmo commit.
   ========================================================================== */

@layer tokens, base, layout, components, pages, utils, print;

@import url("01-tokens.523e0a2dbfd0.css") layer(tokens);
@import url("02-base.76f24048cef0.css") layer(base);
@import url("03-layout.0b07653d4a9d.css") layer(layout);
@import url("04-components.b722237b2a72.css") layer(components);
@import url("05-pages.5761538cf774.css") layer(pages);
@import url("06-print.e5bd5a1e2e6e.css") layer(print);

/* ==========================================================================
   UTILITÁRIOS
   Duas utilidades, ambas de última instância — por isso vivem acima de
   `components` e `pages` e não precisam de `!important` para vencer um
   componente. Só `print` fica acima delas, e por um motivo estreito: a folha
   de impressão precisa vencer o sistema inteiro sem exceção, porque o meio em
   que ela vale é outro.
   ========================================================================== */

@layer utils {
  .sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    border: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }

  .numeric-cell {
    text-align: right;
    font-variant-numeric: tabular-nums;
  }
}

/* ==========================================================================
   MOVIMENTO REDUZIDO
   Fora de qualquer camada de propósito: regras não-encamadas vencem todas as
   camadas. É o que permite honrar `prefers-reduced-motion` sem `!important`.
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto;
    transition-duration: .01ms;
    animation-duration: .01ms;
    animation-iteration-count: 1;
  }
}
