/* Shared form states for every go page: sending spinner, success panel with an animated check, error line. */
.go-sending { opacity: .85; cursor: progress; }
.go-sending input, .go-sending select { pointer-events: none; }
.go-spinner { display: inline-block; width: 18px; height: 18px; margin-right: 8px; vertical-align: -3px;
  border: 2.5px solid rgba(255,255,255,.45); border-top-color: #fff; border-radius: 50%; animation: go-spin .7s linear infinite; }
@keyframes go-spin { to { transform: rotate(360deg); } }

.go-success { text-align: center; padding: 28px 8px 8px; animation: go-rise .35s ease-out both; }
.go-success h3 { margin: 14px 0 6px; font-size: 1.45rem; line-height: 1.2; }
.go-success p { margin: 0 auto 6px; max-width: 34ch; opacity: .82; }
.go-success .go-next { margin: 18px auto 0; padding: 0; list-style: none; text-align: left; max-width: 32ch; }
.go-success .go-next li { display: flex; gap: 10px; align-items: flex-start; margin: 10px 0; font-size: .95rem; }
.go-success .go-next b { flex: none; display: grid; place-items: center; width: 22px; height: 22px; border-radius: 50%;
  background: #1f9d63; color: #fff; font-size: .75rem; }
.go-check { width: 76px; height: 76px; margin: 0 auto; display: block; }
.go-check circle { fill: none; stroke: #1f9d63; stroke-width: 4; stroke-dasharray: 220; stroke-dashoffset: 220;
  animation: go-draw .6s ease-out forwards; }
.go-check path { fill: none; stroke: #1f9d63; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round;
  stroke-dasharray: 60; stroke-dashoffset: 60; animation: go-draw .4s .45s ease-out forwards; }
@keyframes go-draw { to { stroke-dashoffset: 0; } }
@keyframes go-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

.go-error { color: #c0392b; font-weight: 600; margin-top: 10px; }

@media (prefers-reduced-motion: reduce) {
  .go-spinner, .go-success, .go-check circle, .go-check path { animation: none; stroke-dashoffset: 0; }
}
