/* Coinvera — Swap — page-specific styles (shared rules live in ../index.css) */
.chip-neg {
  background: var(--neg-t);
  color: var(--neg);
}
.btn.off {
  opacity: 0.45;
  pointer-events: none;
}
@keyframes pop {
  0% {
    transform: scale(0.5);
    opacity: 0;
  }
  60% {
    transform: scale(1.08);
  }
  100% {
    transform: scale(1);
    opacity: 1;
  }
}
.pop {
  animation: pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
@keyframes draw {
  to {
    stroke-dashoffset: 0;
  }
}
.draw-line {
  stroke-dasharray: 1;
  stroke-dashoffset: 1;
  animation: draw 1.4s cubic-bezier(0.4, 0, 0.2, 1) 0.1s forwards;
}
@keyframes toastIn {
  from {
    opacity: 0;
    transform: translateY(10px) scale(0.97);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.toast-in {
  animation: toastIn 0.3s cubic-bezier(0.22, 1, 0.36, 1) both;
}
@keyframes spinOnce {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(180deg);
  }
}
.spin-once {
  animation: spinOnce 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
input:focus,
button:focus-visible {
  outline: 2px solid rgba(13, 122, 95, 0.35);
  outline-offset: 2px;
}
input:focus {
  outline: none;
}
/* swap widget */
.token-panel {
  background: #f8fafb;
  border: 1.5px solid #e7eaf0;
  border-radius: 16px;
  padding: 16px;
  transition: border-color 0.15s;
}
.token-panel:focus-within {
  border-color: #b8d8cc;
}
.input-err {
  border-color: #f3b4ae !important;
  background: #fff9f8 !important;
}
.stat-box {
  background: #f8f9fb;
  border: 1px solid #f0f2f6;
  border-radius: 14px;
  padding: 12px 14px;
}
.route-node {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.route-line {
  flex: 1;
  height: 1px;
  background: repeating-linear-gradient(90deg, #c4cbd6 0 5px, transparent 5px 10px);
}

/* Match the dashboard's 12px card padding on phones */
@media (max-width: 767.98px) {
  .token-panel {
    padding: 12px;
  }
}

