.co-scroll-lock {
  overflow: hidden !important;
  overscroll-behavior: none;
}

.co-table-scroll {
  max-width: 100%;
  overflow: auto;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

.co-button {
  border: 1px solid var(--co-line);
  background: var(--co-panel);
  color: var(--co-ink);
  font-family: var(--co-font);
  transition:
    border-color 160ms var(--co-ease),
    background 160ms var(--co-ease),
    color 160ms var(--co-ease),
    transform 120ms var(--co-ease);
}

.co-button:hover {
  border-color: var(--co-red);
}

.co-button:active {
  transform: scale(.985);
}

.co-button:disabled,
.co-button[aria-busy="true"] {
  cursor: wait;
  opacity: .58;
}

.co-overlay {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(17, 24, 39, .46);
}

.co-toast {
  position: fixed;
  left: 50%;
  bottom: calc(24px + env(safe-area-inset-bottom));
  z-index: 1100;
  transform: translate(-50%, 18px);
  padding: 10px 14px;
  background: rgba(17, 24, 39, .94);
  color: #fff;
  font: 900 11px/1.4 var(--co-font);
  opacity: 0;
  pointer-events: none;
  transition: 220ms var(--co-ease);
}

.co-toast.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
}

@media (prefers-reduced-motion: reduce) {
  .co-button,
  .co-toast {
    transition-duration: 1ms;
  }
}
