/* ══════════════════════════════════════════
   Electoral Registry — Custom Styles
   ══════════════════════════════════════════ */

body { font-family: 'Inter', sans-serif; }

.material-symbols-outlined {
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
  vertical-align: middle;
}

/* Views */
.view { display: none; }
.view.active { display: block; }

/* Hero background */
.hero-bg {
  background: linear-gradient(90deg, #ffffff 0%, #ffffff 40%, #f1f5f9 40%, #f1f5f9 100%);
}
.dark .hero-bg {
  background: linear-gradient(90deg, #1e293b 0%, #1e293b 40%, #0f172a 40%, #0f172a 100%);
}
@media (max-width: 1024px) {
  .hero-bg { background: #ffffff; }
  .dark .hero-bg { background: #1e293b; }
}

/* Payment option */
.pay-option { transition: all .2s; }
.pay-option.selected {
  border-color: #21407a !important;
  background: rgba(33, 64, 122, .03) !important;
}

/* Processing spinner */
.processing-spinner {
  width: 56px; height: 56px;
  border: 4px solid rgba(33, 64, 122, .15);
  border-top-color: #21407a;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Toast notifications */
.toast {
  padding: 12px 20px;
  border-radius: 12px;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 8px 30px rgba(0,0,0,.15);
  animation: slideIn .3s ease;
}
.toast.success { background: #10b981; }
.toast.error { background: #ef4444; }
.toast.info { background: #3b82f6; }
@keyframes slideIn { from { transform: translateX(120%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }

/* Processing step active pulse */
.text-primary .proc-icon { animation: pulse-icon 1.2s ease-in-out infinite; }
@keyframes pulse-icon { 0%, 100% { opacity: 1; } 50% { opacity: .4; } }

/* Spinner for buttons */
.spinner {
  display: inline-block;
  width: 18px; height: 18px;
  border: 3px solid rgba(255,255,255,.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin .6s linear infinite;
}
