/* Hover & interaction polish — portal pages + Next.js dashboard/staff/admin */
a, button, [role="button"], .btn, input[type="submit"], input[type="button"] {
  transition: transform 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease,
    border-color 0.18s ease, color 0.18s ease, opacity 0.18s ease;
}

@media (hover: hover) {
  a:hover, button:not(:disabled):hover, [role="button"]:hover,
  .btn:hover, input[type="submit"]:not(:disabled):hover {
    transform: translateY(-1px);
  }

  /* Keep password eye toggle vertically centered (do not override translateY(-50%)) */
  .password-toggle:hover,
  .password-toggle:active,
  button.password-toggle:hover,
  button.password-toggle:active {
    transform: translateY(-50%) !important;
  }

  button:active:not(:disabled):not(.password-toggle), .btn:active, a:active {
    transform: translateY(0);
  }

  /* Next.js dashboard — sidebar links, cards, table rows */
  nav a:hover, aside a:hover, [class*="sidebar"] a:hover {
    opacity: 0.92;
  }

  tr:hover, [class*="cursor-pointer"]:hover {
    filter: brightness(0.98);
  }

  /* Common Tailwind-style buttons in exported app */
  button[class*="bg-"]:not(:disabled):hover,
  a[class*="bg-"]:hover {
    filter: brightness(1.05);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
  }
}
