.erp-scorecard {
  margin: 2.5rem 0;
  padding: clamp(18px, 3vw, 32px);
  border: 1px solid var(--hair, var(--border));
  border-radius: 16px;
  background: var(--off-blue, var(--bg));
  color: var(--fg, var(--dark));
  font-family: var(--sans);
}
.erp-scorecard [hidden] { display: none !important; }
.erp-scorecard .erp-scorecard__eyebrow { margin: 0 0 12px; font: 500 12px var(--sans); letter-spacing: .08em; text-transform: uppercase; }
.erp-scorecard h3 { margin: 0 0 16px; font: 400 clamp(26px, 3vw, 34px)/1.15 var(--serif); }
.erp-scorecard p { margin: 12px 0; }
.erp-scorecard .erp-scorecard__hint { font-size: 14px; line-height: 1.5; color: var(--lgrey, var(--fg)); }
.erp-scorecard__options, .erp-scorecard__ratings, .erp-scorecard__results { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.erp-scorecard fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.erp-scorecard legend { padding: 0; font-weight: 600; }
.erp-scorecard label { display: block; margin: 12px 0 6px; font-size: 13px; font-weight: 500; line-height: 1.4; }
.erp-scorecard input, .erp-scorecard select, .erp-scorecard textarea {
  box-sizing: border-box; width: 100%; min-width: 0; min-height: 44px; border: 1px solid var(--hair-strong, var(--border));
  border-radius: 6px; padding: 10px; background: var(--surface, var(--bg)); color: inherit; font: 400 15px/1.4 var(--sans);
}
.erp-scorecard textarea { resize: vertical; }
.erp-scorecard input:focus-visible, .erp-scorecard select:focus-visible, .erp-scorecard textarea:focus-visible,
.erp-scorecard button:focus-visible, .erp-scorecard summary:focus-visible, .erp-scorecard a:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.erp-scorecard details { margin: 10px 0; font-size: 13px; }
.erp-scorecard summary { cursor: pointer; padding: 6px 0; }
.erp-scorecard .erp-scorecard__criterion { border-top: 1px solid var(--hair, var(--border)); padding: 20px 0; margin-top: 20px; }
.erp-scorecard__criterion legend { float: left; width: 100%; font-size: 18px; }
.erp-scorecard__criterion > p { clear: both; padding-top: 8px; font-size: 14px; line-height: 1.5; }
.erp-scorecard .erp-scorecard__weight { display: flex; align-items: center; gap: 12px; }
.erp-scorecard__weight input { width: 84px; }
.erp-scorecard__weights { font-size: 14px; font-weight: 600; }
.erp-scorecard [aria-invalid="true"] { outline: 2px solid currentColor; outline-offset: 2px; }
.erp-scorecard__results { border-top: 1px solid var(--hair, var(--border)); padding-top: 24px; margin-top: 24px; }
.erp-scorecard__result { overflow-wrap: anywhere; }
.erp-scorecard__result strong { display: block; font-size: 15px; }
.erp-scorecard__result output { display: block; margin: 12px 0; font: 400 28px/1.1 var(--serif); }
.erp-scorecard__result p { font-size: 13px; line-height: 1.5; }
.erp-scorecard__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 24px; }
.erp-scorecard__actions button { border-radius: 999px; border: 1px solid currentColor; padding: 12px 20px; cursor: pointer; font: 500 14px/1.4 var(--sans); background: transparent; color: inherit; }
.erp-scorecard__actions [data-csv] { background: var(--inv-bg, var(--dark)); color: var(--inv-fg, var(--bg)); }
.erp-scorecard__actions button:disabled { opacity: .55; cursor: not-allowed; }
.erp-scorecard-print { display: none; }
@media (max-width: 620px) {
  .erp-scorecard__options, .erp-scorecard__ratings, .erp-scorecard__results { grid-template-columns: 1fr; }
  .erp-scorecard__option + .erp-scorecard__option { border-top: 1px solid var(--hair, var(--border)); padding-top: 16px; }
}
@media print {
  body.erp-scorecard-printing > *:not(.erp-scorecard-print) { display: none !important; }
  body.erp-scorecard-printing { margin: 0 !important; padding: 0 !important; background: white !important; color: black !important; }
  body.erp-scorecard-printing > .erp-scorecard-print { display: block !important; padding: 12mm; font: 10pt/1.45 var(--sans); color: black; background: white; }
  .erp-scorecard-print h1, .erp-scorecard-print h2 { font-family: var(--serif); line-height: 1.15; margin: 12pt 0; }
  .erp-scorecard-print h1 { font-size: 24pt; }
  .erp-scorecard-print h2 { font-size: 18pt; }
  .erp-scorecard-print p { margin: 8pt 0; white-space: pre-wrap; overflow-wrap: anywhere; }
  .erp-scorecard-print table { width: 100%; border-collapse: collapse; font-size: 9pt; }
  .erp-scorecard-print th, .erp-scorecard-print td { text-align: left; vertical-align: top; border-bottom: 1px solid currentColor; padding: 7pt 4pt; overflow-wrap: anywhere; }
  .erp-scorecard-print thead { display: table-header-group; }
  .erp-scorecard-print tr { break-inside: avoid; }
  .erp-scorecard-print section + section { break-before: page; }
  .erp-scorecard-print a::after { content: none !important; }
}
