/* 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-bg-raised: linear-gradient(180deg, rgba(11, 36, 48, 0.96), rgba(4, 15, 22, 0.98)); --swarm-control-border: rgba(68, 152, 176, 0.36); --swarm-control-border-strong: rgba(122, 215, 238, 0.72); --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; --swarm-control-shadow: 0 0 0 1px rgba(0, 0, 0, 0.42) inset, 0 12px 24px rgba(0, 0, 0, 0.22); --swarm-control-placeholder: rgba(159, 180, 202, 0.72); } * { 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); } :where( button, input[type="button"], input[type="submit"], input[type="reset"], select, input[type="search"], input[type="text"], input[type="email"], input[type="password"], textarea ) { appearance: none; -webkit-appearance: none; min-height: 2.15rem; border: 1px solid var(--swarm-control-border); border-radius: 0; background: var(--swarm-control-bg); color: inherit; box-shadow: var(--swarm-control-shadow); font: inherit; } :where( select, input[type="search"], input[type="text"], input[type="email"], input[type="password"], textarea ) { padding: 0.38rem 0.58rem; } :where(select) { padding-right: 2rem; background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(0, 0, 0, 0)), linear-gradient(45deg, transparent 50%, var(--swarm-control-thumb) 50%), linear-gradient(135deg, var(--swarm-control-thumb) 50%, transparent 50%); background-position: 0 0, calc(100% - 0.95rem) calc(50% - 0.12rem), calc(100% - 0.65rem) calc(50% - 0.12rem); background-size: auto, 0.34rem 0.34rem, 0.34rem 0.34rem; background-repeat: no-repeat; } :where(button, input[type="button"], input[type="submit"], input[type="reset"]) { padding: 0.38rem 0.72rem; background: var(--swarm-control-bg-raised); text-transform: uppercase; letter-spacing: 0.08em; cursor: pointer; } :where( button, input[type="button"], input[type="submit"], input[type="reset"], select, input[type="search"], input[type="text"], input[type="email"], input[type="password"], textarea ):focus-visible { outline: 1px solid var(--swarm-control-border-strong); outline-offset: 1px; border-color: var(--swarm-control-border-strong); } :where(input[type="search"], input[type="text"], input[type="email"], input[type="password"], textarea)::placeholder { color: var(--swarm-control-placeholder); } 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; }