.score-badge {
  display: inline-flex;
  align-items: baseline;
  gap: 2px;
  font-family: var(--font-family-mono);
  font-feature-settings: "tnum" 1, "zero" 1;
  border-radius: var(--radius-lg);
  padding: 4px 10px;
  border: 1px solid transparent;
  line-height: 1;
  position: relative;
  cursor: default;
}

.score-badge__number {
  font-weight: 700;
}

.score-badge__suffix {
  font-weight: 400;
  opacity: 0.5;
  font-size: 0.7em;
}

.score-badge--high {
  background: rgba(34, 197, 94, 0.12);
  border-color: rgba(34, 197, 94, 0.3);
  color: var(--color-band-high);
}

.score-badge--medium {
  background: rgba(245, 158, 11, 0.12);
  border-color: rgba(245, 158, 11, 0.3);
  color: var(--color-band-medium);
}

.score-badge--elevated {
  background: rgba(239, 68, 68, 0.12);
  border-color: rgba(239, 68, 68, 0.3);
  color: var(--color-band-elevated);
}

.score-badge--none {
  background: rgba(115, 115, 115, 0.12);
  border-color: rgba(115, 115, 115, 0.3);
  color: var(--color-text-tertiary);
}

/* NIGHT_59 — Simple-mode descriptive bands. Muted colors only.
   Red is reserved for objectively negative outcomes (debarments, fatalities,
   back-wage awards). Scores never use red — anxious visa workers should
   not see a panic-inducing red number on a routine score page. */
.score-badge--simple {
  font-family: var(--font-family-sans);
  font-feature-settings: normal;
}
.score-badge--simple .score-badge__label {
  font-weight: 600;
  letter-spacing: 0.01em;
}
.score-badge--simple .score-badge__suffix {
  margin-left: 4px;
  opacity: 0.6;
  font-feature-settings: "tnum" 1;
}
.score--excellent {
  background: rgba(5, 150, 105, 0.12);
  border-color: rgba(5, 150, 105, 0.32);
  color: #059669;
}
.score--good {
  background: rgba(37, 99, 235, 0.12);
  border-color: rgba(37, 99, 235, 0.32);
  color: #2563eb;
}
.score--fair {
  background: rgba(217, 119, 6, 0.12);
  border-color: rgba(217, 119, 6, 0.32);
  color: #d97706;
}
.score--below {
  /* Muted orange — NOT red. The plan: red causes panic for anxious users. */
  background: rgba(194, 65, 12, 0.10);
  border-color: rgba(194, 65, 12, 0.28);
  color: #c2410c;
}
.score--poor {
  /* Gray — "needs investigation" rather than "this is bad". */
  background: rgba(107, 114, 128, 0.12);
  border-color: rgba(107, 114, 128, 0.32);
  color: #6b7280;
}
.score--na {
  background: rgba(107, 114, 128, 0.08);
  border-color: rgba(107, 114, 128, 0.24);
  color: var(--color-text-tertiary);
}

/* Hero score-display block (employer detail header). */
.score-display {
  display: inline-flex;
  flex-direction: column;
  gap: 2px;
  padding: 12px 18px;
  border-radius: var(--radius-xl);
  background: rgba(115, 115, 115, 0.06);
  border: 1px solid rgba(115, 115, 115, 0.18);
  max-width: 320px;
}
.score-display__label {
  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: -0.01em;
}
.score-display__number {
  font-family: var(--font-family-mono);
  font-feature-settings: "tnum" 1;
  font-size: 1rem;
  color: var(--color-text-secondary);
}
.score-display__suffix {
  font-size: 0.75rem;
  opacity: 0.6;
  margin-left: 2px;
}
.score-display__explanation {
  margin-top: 4px;
  font-size: 0.8125rem;
  color: var(--color-text-secondary);
  line-height: 1.4;
}
.score-display__breakdown {
  font-size: 0.75rem;
  color: var(--color-text-info);
  text-decoration: none;
  margin-top: 4px;
}
.score-display__breakdown:hover { text-decoration: underline; }

.score-badge--default .score-badge__number { font-size: 1rem; }
.score-badge--compact .score-badge__number { font-size: 0.875rem; }
.score-badge--compact { padding: 2px 6px; }
.score-badge--display .score-badge__number { font-size: 2.25rem; }
.score-badge--display .score-badge__suffix { font-size: 1rem; }
.score-badge--display { padding: 8px 16px; border-radius: var(--radius-xl); }

.score-badge[data-tooltip]:hover::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  background: var(--color-bg-overlay);
  border: 1px solid var(--color-border-strong);
  color: var(--color-text-secondary);
  font-family: var(--font-family-sans);
  font-size: 0.75rem;
  font-weight: 400;
  padding: 8px 12px;
  border-radius: var(--radius-md);
  white-space: normal;
  width: max-content;
  max-width: 280px;
  z-index: 20;
  pointer-events: none;
  line-height: 1.4;
}
