/* ============================================================================
   D2SCI UI — main.css
   Carrega tokens, reset e componentes do shell (sidebar, topbar, abas, cards).
   ============================================================================ */

@import url('base/variables.css');
@import url('base/reset.css');

@import url('components/sidebar.css');
@import url('components/topbar.css');
@import url('components/tabs.css');
@import url('components/cards.css');
@import url('components/toast.css');

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

.animate-fade-up {
  animation: fadeUp .5s cubic-bezier(.22, 1, .36, 1) both;
}

/* ============================================================================
   Patch: garante que utilities responsivas de display sobrescrevam .hidden
   mesmo quando alguma lib CSS aplicar display:none!important no .hidden.
   main.css carrega depois do tailwind.min.css, entao !important aqui vence.
   ============================================================================ */

@media (min-width: 640px) {
  .sm\:flex        { display: flex        !important; }
  .sm\:inline-flex { display: inline-flex !important; }
  .sm\:block       { display: block       !important; }
  .sm\:hidden      { display: none        !important; }
}

@media (min-width: 768px) {
  .md\:flex        { display: flex        !important; }
  .md\:inline-flex { display: inline-flex !important; }
  .md\:block       { display: block       !important; }
  .md\:hidden      { display: none        !important; }
}

@media (min-width: 1024px) {
  .lg\:flex        { display: flex        !important; }
  .lg\:inline-flex { display: inline-flex !important; }
  .lg\:block       { display: block       !important; }
  .lg\:grid        { display: grid        !important; }
  .lg\:hidden      { display: none        !important; }
}
