:root {
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
}

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

@keyframes fade-up {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.animate-fade-up { animation: fade-up 0.6s var(--ease-out-quart) both; }
.stagger-1 { animation-delay: 0.05s; }
.stagger-2 { animation-delay: 0.12s; }
.stagger-3 { animation-delay: 0.19s; }
.stagger-4 { animation-delay: 0.26s; }
.stagger-5 { animation-delay: 0.33s; }
.stagger-6 { animation-delay: 0.4s; }
.stagger-7 { animation-delay: 0.47s; }

/* Dropdown de topo (empresa ativa, conta) */
.dropdown-panel {
  opacity: 0;
  transform: translateY(-4px) scale(0.98);
  transition: opacity 0.16s var(--ease-out-quart), transform 0.16s var(--ease-out-quart);
  pointer-events: none;
}
.dropdown-panel.is-open {
  opacity: 1;
  transform: translateY(0) scale(1);
  pointer-events: auto;
}

/* Modal (ex.: anexar certificado) */
.modal-backdrop {
  opacity: 0;
  transition: opacity 0.2s var(--ease-out-quart);
}
.modal-backdrop.is-open { opacity: 1; }
.modal-panel {
  opacity: 0;
  transform: translateY(14px) scale(0.97);
  transition: opacity 0.22s var(--ease-out-quart), transform 0.22s var(--ease-out-quart);
}
.modal-panel.is-open {
  opacity: 1;
  transform: translateY(0) scale(1);
}

::-webkit-scrollbar { height: 8px; width: 8px; }
::-webkit-scrollbar-thumb { background: oklch(88.3% 0.009 247.9); border-radius: 999px; }
::-webkit-scrollbar-track { background: transparent; }

/* Textura sutil de "papel-razão" usada no painel de branding do login */
.ledger-texture {
  background-image:
    linear-gradient(oklch(93% 0.025 231.3 / 0.05) 1px, transparent 1px),
    linear-gradient(90deg, oklch(93% 0.025 231.3 / 0.05) 1px, transparent 1px);
  background-size: 28px 28px;
}
