:root{
  --brand-blue:#0b4ea2;
  --brand-gold:#f1b300;
  --card-radius:18px;
}
body{
  min-height:100vh;
  background: radial-gradient(1200px 600px at 20% 10%, rgba(11,78,162,.15), transparent 60%),
              radial-gradient(900px 500px at 90% 30%, rgba(241,179,0,.18), transparent 55%),
              #f6f8fb;
}
.container-narrow{ max-width: 860px; }
.logo{
  max-width: 420px;
  width: 100%;
  height: auto;
}
.hero{
  border-radius: var(--card-radius);
  background: rgba(255,255,255,.86);
  box-shadow: 0 14px 40px rgba(16,24,40,.08);
  backdrop-filter: blur(6px);
}
.title-animated{
  font-weight: 800;
  letter-spacing: .2px;
  line-height: 1.15;
  background: linear-gradient(90deg, var(--brand-blue), var(--brand-gold), var(--brand-blue));
  background-size: 200% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: shimmer 5s ease-in-out infinite;
}
@keyframes shimmer{
  0%{ background-position: 0% 50%; }
  50%{ background-position: 100% 50%; }
  100%{ background-position: 0% 50%; }
}
.badge-soft{
  background: rgba(11,78,162,.08);
  color: var(--brand-blue);
  border: 1px solid rgba(11,78,162,.15);
}
.form-label{ font-weight: 600; }
.required::after{ content:" *"; color:#dc3545; }
.small-note{ color:#6b7280; font-size:.92rem; }
footer{ color:#6b7280; font-size:.9rem; }
.table thead th{
  position: sticky;
  top: 0;
  z-index: 1;
  background: #fff;
}
