/* Console — phosphor terminal. Scanlines, block cursor, green-on-black readout. */
.theme-console .vote-panel {
  width: min(460px, 92vw);
  padding: 14px 16px 10px;
  border-radius: 2px;
  border: 2px solid color-mix(in srgb, var(--vs-accent) 55%, #0a1a10);
  background: #050805;
  box-shadow:
    inset 0 0 40px rgba(0, 40, 16, 0.55),
    0 0 24px color-mix(in srgb, var(--vs-accent) 18%, transparent);
}

.theme-console .vote-panel::after {
  content: '';
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 4;
  background: repeating-linear-gradient(
    180deg,
    transparent 0 2px,
    rgba(0, 0, 0, 0.18) 2px 3px
  );
  opacity: 0.45;
}

.theme-console .vote-question,
.theme-console .vote-timer,
.theme-console .vote-option-label,
.theme-console .vote-option-stats,
.theme-console .vote-footer,
.theme-console .vote-status {
  text-shadow: 0 0 8px color-mix(in srgb, var(--vs-accent) 55%, transparent);
}

.theme-console .vote-question {
  font-size: 0.92rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.theme-console .vote-question::before {
  content: '> ';
  color: var(--vs-accent);
}

.theme-console .vote-timer::after {
  content: '█';
  margin-left: 2px;
  animation: consoleBlink 1s steps(1) infinite;
}

@keyframes consoleBlink {
  50% { opacity: 0; }
}

.theme-console .vote-option {
  border-radius: 0;
  border: 1px solid color-mix(in srgb, var(--vs-accent) 22%, transparent);
  background: rgba(0, 20, 8, 0.5);
}

.theme-console .vote-option-index {
  border-radius: 0;
  background: var(--vs-accent);
  color: #031006;
  font-size: 0.8rem;
}

.theme-console .vote-option-label {
  font-size: 0.88rem;
  text-transform: uppercase;
}

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

.theme-console .vote-footer {
  border-top-color: color-mix(in srgb, var(--vs-accent) 25%, transparent);
  font-size: 0.72rem;
  text-transform: uppercase;
}

.theme-console .vote-panel.results .vote-option.winner {
  box-shadow: inset 0 0 12px color-mix(in srgb, var(--vs-accent) 35%, transparent);
}

.theme-console .vote-panel.revealing .vote-option.winner .vote-option-label::after {
  content: '  [LOCKED]';
  color: var(--vs-accent);
  animation: consoleType 0.5s steps(8) both;
}

@keyframes consoleType {
  from { letter-spacing: -0.4em; opacity: 0; }
  to { letter-spacing: 0.04em; opacity: 1; }
}
