@keyframes card-enter {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes glow-pulse {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.55; }
}

@keyframes slide-up {
  from { opacity: 0; transform: translateY(100%); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  20%       { transform: translateX(-6px); }
  40%       { transform: translateX(6px); }
  60%       { transform: translateX(-4px); }
  80%       { transform: translateX(4px); }
}

/* Toast */
.toast-container {
  position: fixed;
  top: calc(var(--header-h) + 12px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 999;
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  width: calc(var(--screen-max) - var(--space-8));
  max-width: calc(100vw - var(--space-8));
  pointer-events: none;
}

.toast {
  background: var(--bg-surface-2);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-lg);
  padding: var(--space-3) var(--space-4);
  font-size: 13px;
  font-weight: 500;
  color: var(--text-primary);
  box-shadow: var(--shadow-card);
  animation: slide-up 0.25s ease both;
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.toast.toast-success { border-color: rgba(57,255,20,0.4); color: var(--accent-green); }
.toast.toast-error   { border-color: rgba(255,45,120,0.4); color: var(--accent-pink); }
.toast.toast-info    { border-color: rgba(91,63,214,0.4); color: var(--brand-light); }

.toast-exit {
  animation: fade-in 0.2s ease reverse both;
}

/* Modal overlay */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(10,8,32,0.85);
  z-index: 500;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  animation: fade-in 0.2s ease both;
  padding-bottom: env(safe-area-inset-bottom, 0px);
}

.modal-sheet {
  background: var(--bg-surface);
  border: 1px solid var(--border-default);
  border-radius: var(--radius-2xl) var(--radius-2xl) 0 0;
  padding: var(--space-6);
  width: 100%;
  max-width: var(--screen-max);
  animation: slide-up 0.3s ease both;
  box-shadow: 0 -8px 40px rgba(0,0,0,0.5);
}

.modal-handle {
  width: 40px;
  height: 4px;
  background: var(--border-default);
  border-radius: var(--radius-full);
  margin: 0 auto var(--space-5);
}

.modal-title {
  font-family: var(--font-display);
  font-size: 20px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--text-primary);
  margin-bottom: var(--space-2);
}

.modal-desc {
  font-size: 14px;
  color: var(--text-secondary);
  margin-bottom: var(--space-6);
  line-height: 1.6;
}

.modal-actions {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
}
