// Responsive styles live in index.html, keyed off [data-bp-and-below~="…"]
// or @container queries on .r-tower. Do not add new inline ternaries on
// viewport width or `compact` — convert to a CSS class instead.

// Extracted from matrix.jsx 2026-05-14. No logic change — pure split.

// Eligibility glyph — ✓ for eligible, — for not, ? for unanswered. Survives colorblindness + greyscale.
function EligibilityGlyph({ state, dark }) {
  const lime = "#EDFE38";
  const muted = dark ? "#8A827F" : "#6B6361";
  const faint = dark ? "#5A5654" : "#C1C1C1";
  if (state === "lit") {
    return (
      <svg width="9" height="9" viewBox="0 0 9 9" aria-label="Eligible">
        <path d="M1.5 4.5 L3.8 6.8 L7.5 2.5" stroke={dark ? lime : "#2B3710"} strokeWidth="1.4" fill="none" strokeLinecap="square"/>
      </svg>
    );
  }
  // "gray" covers both ineligible and unanswered — dash
  return (
    <svg width="9" height="9" viewBox="0 0 9 9" aria-label="Not eligible">
      <line x1="2" y1="4.5" x2="7" y2="4.5" stroke={faint} strokeWidth="1.4"/>
    </svg>
  );
}
