/* Button */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  border: 1px solid transparent;
  border-radius: 0.75rem;
  font-weight: 700;
  line-height: 1.25;
  text-decoration: none;
  cursor: pointer;
  transition:
    background-color 160ms ease,
    border-color 160ms ease,
    color 160ms ease,
    opacity 160ms ease;
}
.btn.hidden {
  display: none;
}
.btn:focus-visible {
  outline: 2px solid hsl(224, 100%, 45%);
  outline-offset: 2px;
}
.btn:disabled,
.btn[aria-disabled='true'] {
  background: hsl(0, 0%, 10%);
  cursor: not-allowed;
}
.btn-primary {
  background: hsl(224, 100%, 55%);
  color: hsl(0, 0%, 100%);
}
.btn-primary:hover:not(:disabled) {
  background: hsl(224, 100%, 45%);
}
.btn-secondary {
  background: hsl(0, 0%, 20%);
  color: #fff;
}
.btn-secondary:hover:not(:disabled) {
  background: hsl(0, 0%, 15%);
}
.btn-outline {
  border-color: rgba(255, 255, 255, 0.2);
  background: transparent;
  color: #fff;
}
.btn-outline:hover:not(:disabled):not([aria-disabled='true']) {
  border-color: rgba(255, 255, 255, 0.5);
}
.btn-ghost {
  background: transparent;
  color: rgba(255, 255, 255, 0.6);
}
.btn-ghost:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.06);
  color: #fff;
}
.btn-link {
  background: transparent;
  color: #1957ff;
}
.btn-link:hover:not(:disabled) {
  color: hsl(224, 100%, 45%);
}
.btn-destructive {
  background: #dc2626;
  color: #fff;
}
.btn-destructive:hover:not(:disabled) {
  background: #ef4444;
}
.btn-sm {
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
}
.btn-md {
  padding: 0.75rem 1.25rem;
  font-size: 0.875rem;
}
.btn-lg {
  padding: 0.75rem 1.5rem;
  font-size: 1rem;
}
.btn-icon {
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
}