/* Shared base styles — included via <link> on every page.
   Page-specific styles still live in each page's own <style> block. */

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html, body, #root { width: 100%; }
html, body { overflow-x: hidden; }

body {
  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;
  background: #f5f6fa;
  color: #0F1F5C;
  -webkit-font-smoothing: antialiased;
  min-height: 100vh;
}

input, button { max-width: 100%; }

#root { position: relative; z-index: 1; }

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-thumb { background: #d0d5e8; border-radius: 99px; }

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(14px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes shimmer {
  0%   { background-position: -400px 0; }
  100% { background-position:  400px 0; }
}
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes pop {
  0%   { transform: scale(0.93); }
  60%  { transform: scale(1.03); }
  100% { transform: scale(1); }
}
@keyframes expandRow {
  from { opacity: 0; transform: translateY(-4px); }
  to   { opacity: 1; transform: translateY(0); }
}

.fade-up { animation: fadeInUp .4s ease both; }

.shimmer-line {
  height: 11px; border-radius: 5px;
  background: linear-gradient(90deg, #e8eaf5 25%, #f0f2f8 50%, #e8eaf5 75%);
  background-size: 400px 100%;
  animation: shimmer 1.8s infinite linear;
}
