:root {
  --ps-toggle-off-bg: #cbd5e1;
  --ps-toggle-on-bg: linear-gradient(135deg, #3f5fe0, #1ab2e5);
  --ps-toggle-on-border: #3f5fe0;
  --ps-toggle-knob: #ffffff;
  --ps-toggle-border: #94a3b8;
  --ps-scroll-thumb: rgba(100, 116, 139, 0.34);
  --ps-scroll-thumb-hover: rgba(100, 116, 139, 0.48);
}
.dark {
  --ps-toggle-off-bg: #334155;
  --ps-toggle-on-bg: linear-gradient(135deg, #60a5fa, #22d3ee);
  --ps-toggle-on-border: #60a5fa;
  --ps-toggle-knob: #e2e8f0;
  --ps-toggle-border: #475569;
  --ps-scroll-thumb: rgba(148, 163, 184, 0.30);
  --ps-scroll-thumb-hover: rgba(148, 163, 184, 0.46);
}
html, body, * {
  scrollbar-width: thin;
  scrollbar-color: var(--ps-scroll-thumb) transparent;
}
*::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
*::-webkit-scrollbar-track {
  background: transparent;
}
*::-webkit-scrollbar-thumb {
  background: var(--ps-scroll-thumb);
  border-radius: 999px;
  border: 2px solid transparent;
  background-clip: padding-box;
}
*:hover::-webkit-scrollbar-thumb {
  background: var(--ps-scroll-thumb-hover);
  background-clip: padding-box;
}
input[type="checkbox"] {
  -webkit-appearance: none;
  appearance: none;
  width: 2.25rem;
  height: 1.25rem;
  border-radius: 9999px;
  border: 1px solid var(--ps-toggle-border);
  background: var(--ps-toggle-off-bg);
  position: relative;
  cursor: pointer;
  vertical-align: middle;
  transition: background-color .18s ease, border-color .18s ease;
}
input[type="checkbox"]::before {
  content: "";
  position: absolute;
  top: 1px;
  left: 1px;
  width: calc(1.25rem - 4px);
  height: calc(1.25rem - 4px);
  border-radius: 9999px;
  background: var(--ps-toggle-knob);
  box-shadow: 0 1px 2px rgba(0,0,0,.2);
  transition: transform .18s ease;
}
input[type="checkbox"]:checked {
  background: var(--ps-toggle-on-bg);
  border-color: var(--ps-toggle-on-border);
}
input[type="checkbox"]:checked::before {
  transform: translateX(1rem);
}
input[type="checkbox"]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(59,130,246,.30);
}
input[type="checkbox"]:disabled {
  opacity: .55;
  cursor: not-allowed;
}
