/* Performance & smooth UI */
html {
  scroll-behavior: smooth;
}

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

body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.main-content,
.md-card,
.feature-card,
.portal-card {
  animation: fade-up 0.35s ease both;
}

@keyframes fade-up {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

.app-shell .sidebar {
  transition: transform 0.25s ease;
}

.md-btn,
.nav-link,
.feature-card,
.portal-card {
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.md-btn:active:not(:disabled) {
  transform: scale(0.98);
}

body.page-loading {
  cursor: wait;
}

body.page-loading .main-content {
  pointer-events: none;
}

.data-table tbody tr {
  transition: background 0.12s ease;
}

.data-table tbody tr:hover {
  background: rgba(27, 73, 101, 0.04);
}
