/*
 * css/threats-vote.css — /threats/design hub only (openspec/changes/threat-board task 4.0c).
 *
 * style.css is owned by another builder's work-in-progress right now, so this page's rules
 * live in their own file instead of the usual .threats-* block in style.css (which still
 * supplies the shared .cpage-hero/.cpage-lede/.threats-muted classes this page also uses).
 * Tokens and component shapes come straight from docs/DESIGN.md: flat panels, one hairline
 * border, no shadows, the one accent-filled button pattern, the shared focus ring.
 */

.threats-vote-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 20px 0;
}

.threats-vote-card {
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: var(--radius-lg, 8px);
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

.threats-vote-thumb {
  display: block;
  line-height: 0;
  background: var(--bg-card);
  border-bottom: 1px solid var(--border-color);
}

.threats-vote-thumb img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 8 / 5;
  object-fit: cover;
}

.threats-vote-name {
  margin: 14px 14px 0;
  font-size: 1.05rem;
  color: var(--text-primary);
}

.threats-vote-tool {
  margin: 4px 14px 0;
  font-size: 12.5px;
  color: var(--text-secondary);
  font-family: 'JetBrains Mono', 'Courier New', monospace;
}

.threats-vote-count {
  margin: 10px 14px 0;
  font-size: 13px;
  color: var(--text-secondary);
  font-family: 'JetBrains Mono', 'Courier New', monospace;
}

.threats-vote-actions {
  margin: 12px 14px 14px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.threats-vote-open {
  color: var(--accent);
  text-decoration: none;
  font-size: 13px;
  align-self: center;
}
.threats-vote-open:hover,
.threats-vote-open:focus-visible { text-decoration: underline; }

.threats-vote-btn {
  background: var(--accent);
  color: var(--bg-primary);
  border: none;
  border-radius: var(--radius, 6px);
  padding: 9px 16px;
  font-weight: 700;
  font-size: 13px;
  cursor: pointer;
  margin-left: auto;
}
.threats-vote-btn:hover { background: var(--accent-hover); }
.threats-vote-btn:disabled { opacity: 0.6; cursor: default; }

.threats-vote-open:focus-visible,
.threats-vote-btn:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}

.threats-vote-msg {
  min-height: 1.4em;
  font-family: 'JetBrains Mono', 'Courier New', monospace;
  font-size: 13px;
  color: var(--text-secondary);
  margin: 16px 0 4px;
}

.threats-vote-note {
  margin-top: 4px;
}

@media (max-width: 932px) {
  .threats-vote-grid {
    grid-template-columns: 1fr;
  }
  .threats-vote-btn {
    margin-left: 0;
    flex: 1 1 auto;
  }
}
