.contest-scoring[hidden] { display: none; }
.contest-scoring { color: var(--text-primary, #0f172a); overflow-wrap: anywhere; }
.contest-scoring p { line-height: 1.6; max-width: 75ch; }
.contest-criterion { margin-block: 28px; }
.contest-criterion h4 { font-size: 17px; margin-block: 0 16px; }
.contest-criterion fieldset { min-width: 0; margin: 16px 0; padding: 16px; border: 1px solid var(--border-color, #cbd5e1); border-radius: 8px; }
.contest-criterion legend { padding-inline: 6px; font-weight: 600; max-width: 100%; }
.contest-criterion blockquote { margin: 12px 0; padding: 0; font-size: 14px; line-height: 1.6; }
.contest-input { display: grid; gap: 6px; margin-block: 14px; max-width: 420px; font-size: 14px; }
.contest-input input { box-sizing: border-box; width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--border-color, #64748b); border-radius: 6px; background: var(--bg-card, #fff); color: var(--text-primary, #0f172a); font: inherit; font-variant-numeric: tabular-nums; }
.contest-input input:focus-visible { outline: 2px solid var(--accent-blue, #2563eb); outline-offset: 3px; }
.contest-result, .contest-summary { font-weight: 600; font-variant-numeric: tabular-nums; }
.contest-summary { padding-block: 16px; border-top: 1px solid var(--border-color, #cbd5e1); }
@media (max-width: 600px) { .contest-criterion fieldset { padding: 12px; } }
@media print { .contest-input input { border-color: #64748b; } }
