/* Signal — tactical readout. Tight column, corner ticks, dashed rows, mono stats. */
.theme-signal .vote-panel {
  width: min(340px, 90vw);
  padding: 10px 12px 8px;
  border-radius: 0;
  border: 1px solid color-mix(in srgb, var(--vs-accent) 40%, transparent);
  border-left: 2px solid var(--vs-accent);
  background:
    linear-gradient(var(--vs-accent), var(--vs-accent)) 0 0 / 10px 1px no-repeat,
    linear-gradient(var(--vs-accent), var(--vs-accent)) 0 0 / 1px 10px no-repeat,
    linear-gradient(var(--vs-accent), var(--vs-accent)) 100% 0 / 10px 1px no-repeat,
    linear-gradient(var(--vs-accent), var(--vs-accent)) 100% 0 / 1px 10px no-repeat,
    linear-gradient(var(--vs-accent), var(--vs-accent)) 0 100% / 10px 1px no-repeat,
    linear-gradient(var(--vs-accent), var(--vs-accent)) 0 100% / 1px 10px no-repeat,
    linear-gradient(var(--vs-accent), var(--vs-accent)) 100% 100% / 10px 1px no-repeat,
    linear-gradient(var(--vs-accent), var(--vs-accent)) 100% 100% / 1px 10px no-repeat,
    color-mix(in srgb, var(--vs-panel) 96%, #000);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5);
}

.theme-signal .vote-question {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  font-weight: 700;
  line-height: 1.35;
}

.theme-signal .vote-timer {
  font-size: 0.95rem;
}

.theme-signal .vote-options {
  gap: 4px;
}

.theme-signal .vote-option {
  border-radius: 0;
  border: 1px dashed color-mix(in srgb, var(--vs-accent) 28%, transparent);
  background: rgba(0, 0, 0, 0.25);
}

.theme-signal .vote-option-inner {
  padding: 5px 7px;
  grid-template-columns: 18px 1fr auto;
  gap: 6px;
}

.theme-signal .vote-option-index {
  width: 16px;
  height: 16px;
  font-size: 0.7rem;
  border-radius: 0;
  background: transparent;
  border: 1px solid var(--vs-accent);
  color: var(--vs-accent);
}

.theme-signal .vote-option-label {
  font-size: 0.82rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.theme-signal .vote-option-stats {
  font-size: 0.72rem;
}

.theme-signal .vote-option-bar {
  opacity: 0.22;
  background: var(--vs-accent);
}

.theme-signal .vote-footer {
  margin-top: 6px;
  padding-top: 6px;
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.theme-signal .vote-panel.results .vote-option.winner {
  border-style: solid;
  box-shadow: inset 0 0 0 1px var(--vs-accent);
}

.theme-signal .vote-panel.revealing .vote-option.winner {
  animation: signalLock 0.85s steps(8) both;
}

.theme-signal .vote-panel.revealing .vote-option.winner::before,
.theme-signal .vote-panel.revealing .vote-option.winner::after {
  content: '';
  pointer-events: none;
  position: absolute;
  width: 8px;
  height: 8px;
  border: 2px solid var(--vs-accent);
  animation: signalBrackets 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.theme-signal .vote-panel.revealing .vote-option.winner::before {
  top: -3px;
  left: -3px;
  border-right: 0;
  border-bottom: 0;
}

.theme-signal .vote-panel.revealing .vote-option.winner::after {
  right: -3px;
  bottom: -3px;
  border-left: 0;
  border-top: 0;
}

@keyframes signalLock {
  0%, 12%, 28% { filter: brightness(1.8); opacity: 1; }
  8%, 20% { filter: brightness(0.7); opacity: 0.7; }
  100% { filter: brightness(1); opacity: 1; }
}

@keyframes signalBrackets {
  0% { opacity: 0; transform: scale(1.8); }
  100% { opacity: 1; transform: scale(1); }
}
