:root { color-scheme: dark; }

html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background: var(--brand-pitch);
  font-family: var(--type-editorial);
}

#viz {
  display: block;
  width: 100vw;
  height: 100vh;
}

#panel {
  position: fixed;
  z-index: 10;
  top: 16px;
  left: 16px;
  width: min(340px, calc(100vw - 32px));
  box-sizing: border-box;
  padding: 18px;
  border: 1px solid var(--brand-concrete);
  border-top: 8px solid var(--brand-paper);
  border-radius: 0;
  background: rgba(36, 36, 36, 0.96);
  box-shadow: 12px 12px 0 rgba(11, 11, 11, 0.7);
  color: var(--brand-paper);
  font-size: 13px;
  line-height: 1.4;
  transition: opacity 0.25s ease;
}

#panel.hidden { opacity: 0; pointer-events: none; }

#panel .eyebrow {
  margin: 0 0 18px;
  color: var(--brand-concrete);
  font-family: var(--type-utility);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

#panel h1 {
  margin: 0 0 18px;
  color: var(--brand-paper);
  font-family: var(--type-display);
  font-size: 26px;
  font-weight: var(--weight-display);
  letter-spacing: -0.06em;
  line-height: 0.95;
}

#panel label {
  display: block;
  margin: 12px 0 5px;
  color: var(--brand-concrete);
  font-family: var(--type-utility);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

#panel .preset-label { margin-top: 18px; }

#panel select,
#panel input[type=number],
#panel input[type=search] {
  width: 100%;
  box-sizing: border-box;
  padding: 9px 10px;
  border: 1px solid var(--brand-concrete);
  border-radius: 0;
  outline: none;
  background: var(--brand-pitch);
  color: var(--brand-paper);
  font-size: 13px;
}

#panel select:focus,
#panel input:focus { border-color: var(--brand-paper); }

#presetFilter { margin-bottom: 6px; }

.row {
  display: flex;
  gap: 8px;
  margin-top: 14px;
}

.row button,
#startBtn {
  flex: 1;
  padding: 10px;
  border: 1px solid var(--brand-paper);
  border-radius: 0;
  background: var(--brand-paper);
  color: var(--brand-pitch);
  cursor: pointer;
  font-family: var(--type-utility);
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  transition: background-color 0.15s ease, color 0.15s ease;
}

.row button.secondary {
  border-color: var(--brand-concrete);
  background: transparent;
  color: var(--brand-paper);
}

.row button:hover,
#startBtn:hover {
  border-color: var(--brand-concrete);
  background: var(--brand-concrete);
}

#startBtn {
  width: 100%;
  margin-top: 14px;
}

.check {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
}

.check input { width: auto; accent-color: var(--brand-paper); }
.check .cycle-label { margin: 0; color: var(--brand-paper); font-family: var(--type-editorial); font-size: 13px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.check .cycle-secs { width: 64px; }

#status {
  min-height: 16px;
  margin-top: 14px;
  color: var(--brand-concrete);
  font-family: var(--type-utility);
  font-size: 11px;
}

.hint {
  margin-top: 14px;
  color: var(--brand-silver);
  font-family: var(--type-utility);
  font-size: 10px;
  line-height: 1.6;
}

code {
  padding: 2px 5px;
  background: var(--brand-pitch);
  color: var(--brand-paper);
  font-family: inherit;
}
