/*
  Starsector dark control primitives.
  Intended to be used with starsector-dark.frame-font.css.
*/

:root {
  --swarm-control-bg: rgba(4, 12, 18, 0.82);
  --swarm-control-border: rgba(68, 152, 176, 0.36);
  --swarm-control-thumb: #9fd7ea;
  --swarm-control-thumb-edge: #0b1a25;
  --swarm-control-check-bg: linear-gradient(180deg, rgba(6, 20, 28, 0.95), rgba(2, 9, 14, 0.9));
  --swarm-control-check-bg-checked: linear-gradient(180deg, rgba(11, 42, 56, 0.95), rgba(4, 18, 28, 0.9));
  --swarm-control-scroll-track: rgba(3, 10, 15, 0.75);
  --swarm-control-scroll-thumb: linear-gradient(180deg, rgba(68, 152, 176, 0.9), rgba(22, 82, 106, 0.95));
  --swarm-control-text-muted: #9fb4ca;
}

* {
  scrollbar-width: thin;
  scrollbar-color: var(--swarm-frame-edge-strong, rgba(68, 152, 176, 0.86)) var(--swarm-control-scroll-track);
}

*::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

*::-webkit-scrollbar-track {
  background: var(--swarm-control-scroll-track);
}

*::-webkit-scrollbar-thumb {
  background: var(--swarm-control-scroll-thumb);
  border: 1px solid rgba(0, 0, 0, 0.65);
}

input[type="range"] {
  width: 100%;
  appearance: none;
  height: 0.56rem;
  border: 1px solid var(--swarm-control-border);
  background: linear-gradient(180deg, rgba(6, 26, 38, 0.95), rgba(2, 10, 16, 0.9));
  padding: 0;
  cursor: ew-resize;
  touch-action: none;
}

input[type="range"]::-webkit-slider-thumb {
  appearance: none;
  width: 0.58rem;
  height: 0.95rem;
  background: var(--swarm-control-thumb);
  border: 1px solid var(--swarm-control-thumb-edge);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.45) inset;
  cursor: ew-resize;
}

input[type="range"]::-moz-range-thumb {
  width: 0.58rem;
  height: 0.95rem;
  background: var(--swarm-control-thumb);
  border: 1px solid var(--swarm-control-thumb-edge);
  border-radius: 0;
  cursor: ew-resize;
}

input[type="range"]::-moz-range-track {
  height: 0.56rem;
  border: 1px solid var(--swarm-control-border);
  border-radius: 0;
  background: linear-gradient(180deg, rgba(6, 26, 38, 0.95), rgba(2, 10, 16, 0.9));
}

input[type="checkbox"] {
  appearance: none;
  width: 1.03rem;
  height: 1.03rem;
  margin: 0;
  border: 1px solid var(--swarm-control-border);
  background: var(--swarm-control-check-bg);
  display: grid;
  place-content: center;
}

input[type="checkbox"]::before {
  content: "";
  width: 0.58rem;
  height: 0.58rem;
  transform: scale(0);
  clip-path: polygon(14% 53%, 28% 67%, 74% 21%, 84% 31%, 28% 87%, 4% 63%);
  background: var(--swarm-control-thumb);
  transition: transform 120ms ease-out;
}

input[type="checkbox"]:checked {
  border-color: var(--swarm-frame-edge-strong, rgba(68, 152, 176, 0.86));
  background: var(--swarm-control-check-bg-checked);
}

input[type="checkbox"]:checked::before {
  transform: scale(1);
}

.range-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 0.45rem;
}

.range-value {
  min-width: 3.2rem;
  text-align: right;
  color: var(--swarm-control-text-muted);
  font-size: 0.72rem;
  user-select: none;
  pointer-events: none;
}

.check-control {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.5rem;
  white-space: nowrap;
}

.check-control span {
  line-height: 1.2;
}
