/* ── Scoring Card + Progress ── */
.scoring-progress, .scoring-wrap {
  width: min(680px, 100%); margin: 52px auto; padding: 34px;
  display: flex; flex-direction: column; align-items: center;
  gap: 18px; text-align: center;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 20px; box-shadow: 0 18px 50px rgba(4,49,89,0.08);
}
.scoring-progress h3, .scoring-wrap h3, .scoring-title {
  margin: 0; font-size: 22px; font-weight: 750;
  letter-spacing: -0.02em; color: var(--text);
}
.scoring-progress p, .scoring-sub, .scoring-detail {
  margin: 0; max-width: 560px; font-size: 14px;
  line-height: 1.55; color: var(--text-secondary);
}
.prog-icon, .scoring-icon {
  width: 54px; height: 54px; display: grid; place-items: center;
  border-radius: 18px; color: var(--accent);
  background: color-mix(in srgb, var(--accent) 10%, transparent);
}
.prog-icon svg, .scoring-icon svg { width: 28px; height: 28px; }
.scoring-progress.scoring .prog-icon { animation: scorePulse 1.8s ease-in-out infinite; }

/* Progress bar */
.prog-bar, .scoring-bar-wrap {
  width: min(440px, 100%); height: 10px; margin-top: 6px;
  overflow: hidden; border-radius: 999px;
  background: var(--bg-tertiary, rgba(4,49,89,0.06));
  border: 1px solid color-mix(in srgb, var(--border) 70%, transparent);
}
.prog-bar span, .scoring-bar {
  display: block; height: 100%; width: 0%; border-radius: inherit;
  background: linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 68%, #fff));
  transition: width 0.35s ease;
}
.scoring-progress[data-live="0"] .prog-bar span {
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  animation: scoreSweep 1.25s ease-in-out infinite; transition: none;
}

/* Logs */
#score-log, .scoring-logs {
  width: min(560px, 100%); max-height: 180px; margin: 6px 0 0; padding: 12px 14px;
  overflow-y: auto; text-align: left; white-space: pre-wrap; word-break: break-word;
  font: 12px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color: var(--text-secondary);
  background: var(--bg-secondary, rgba(4,49,89,0.03));
  border: 1px solid var(--border); border-radius: 12px;
}

/* Scoring stages */
.scoring-stages { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 20px; margin-top: 4px; }
.scoring-stage { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text-secondary); }
.scoring-stage.done { color: var(--green); }
.scoring-stage.active { color: var(--accent); font-weight: 600; }
.st-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--border); transition: background 0.2s; }
.scoring-stage.done .st-dot { background: var(--green); }
.scoring-stage.active .st-dot { background: var(--accent); }

/* Animations */
@keyframes scorePulse { 0%,100% { transform:scale(1); opacity:1; } 50% { transform:scale(1.05); opacity:.85; } }
@keyframes scoreSweep { 0% { transform:translateX(-100%); } 100% { transform:translateX(200%); } }
