/* Base do Obeya (OY-04), vinda do protótipo aprovado no OY-02 (`.scratch/obeya/prototipos/aprovado/base.css`). As cores e as
   fontes vêm do `ds.css`, ligado antes. Aqui só o esqueleto das telas do app: o aviso (toast), o avatar e o caminho sem
   movimento. O palco do telão, a tela do celular e a barra de telas do protótipo ficam para os temas deles.
   TUDO que é global no protótipo (corpo, botão, foco, lista) vale aqui só dentro de `.oy`, a área da tela: o menu e a barra
   de cima do app continuam como o `ds.css` os desenha. */

.oy{font-family:var(--font-body);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.oy button,.oy input,.oy select,.oy textarea{font:inherit;color:inherit}
.oy button{cursor:pointer}
.oy :focus-visible{outline:3px solid var(--tangerine);outline-offset:2px}
.oy .ic{display:block;flex:none;width:20px;height:20px}
.oy .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.oy .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.oy [hidden]{display:none!important}

/* ---------- avatar e aviso ---------- */
.oy-av{display:inline-grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;background:var(--cor,var(--navy));color:#fff;font-size:11px;font-weight:700;letter-spacing:.02em}
.oy-av.g{width:40px;height:40px;font-size:14px}
.oy-av.p{width:22px;height:22px;font-size:9px}
.oy-toast{position:fixed;left:50%;bottom:64px;z-index:90;transform:translate(-50%,16px);max-width:min(520px,calc(100vw - 32px));padding:12px 18px;border-radius:12px;
  background:var(--navy);color:#fff;font-size:15px;font-weight:600;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .25s,transform .35s cubic-bezier(.16,1,.3,1)}
.oy-toast.on{opacity:1;transform:translate(-50%,0)}

/* ---------- sem movimento: nada anima, tudo aparece inteiro ---------- */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
