.form-toggle-panel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: oklch(from var(--muted) l c h / 0.5);
}

.form-toggle-title {
  color: var(--foreground);
  font-size: 0.875rem;
  font-weight: 500;
}

.form-toggle {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  padding: 0.25rem;
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  background: var(--background);
}

.form .form-toggle-option {
  display: inline-flex;
  margin: 0;
  cursor: pointer;
}

.form .form-toggle-option:has(input:disabled) {
  cursor: default;
}

.form-toggle-option input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.form-toggle-option span {
  display: inline-flex;
  align-items: center;
  min-height: 2rem;
  padding: 0.375rem 0.75rem;
  border-radius: var(--radius-md);
  color: var(--muted-foreground);
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1.25rem;
  transition: background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
}

.form-toggle-option:hover span {
  color: var(--foreground);
  background: var(--accent);
}

.form-toggle-option:has(input:disabled):hover span {
  color: var(--muted-foreground);
  background: transparent;
}

.form-toggle-option input:checked + span {
  color: var(--primary-foreground);
  background: var(--primary);
  box-shadow: var(--shadow-sm);
}

.form-toggle-option input:disabled + span {
  opacity: 0.80;
}

.form-toggle-option input:disabled:checked + span,
.form-toggle-option:has(input:disabled):hover input:checked + span {
  color: var(--primary-foreground);
  background: var(--primary);
}

.form-toggle-option input:focus-visible + span {
  outline: 2px solid var(--ring);
  outline-offset: 2px;
}

@media (max-width: 639px) {
  .form-toggle {
    width: 100%;
  }

  .form-toggle-option {
    flex: 1 1 auto;
  }

  .form-toggle-option span {
    justify-content: center;
    width: 100%;
    text-align: center;
  }
}
