/* Chart wrapper: chips (mobile) above, canvas filling the rest of the parent .chartContainer, whose fixed height drives Chart.js sizing via maintainAspectRatio: false. */ .wrapper { display: flex; flex-direction: column; height: 100%; } .canvasBox { position: relative; flex: 1 1 auto; min-height: 0; } /* School chips: mobile-only legend + tap-to-focus control. Desktop keeps Chart.js's built-in legend (with per-school point shapes). */ .chips { display: none; } @media (max-width: 640px) { .chips { display: flex; flex-wrap: wrap; gap: 6px; padding-bottom: 8px; } .chip { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; max-width: 100%; padding: 4px 10px; border: 1px solid rgba(0, 0, 0, .12); border-radius: 999px; background: transparent; cursor: pointer; font-size: 12px; font-weight: 600; } .chip[aria-pressed="true"] { background: rgba(0, 0, 0, .06); border-color: rgba(0, 0, 0, .35); } .chipDot { flex: 0 0 auto; width: 10px; height: 10px; border-radius: 50%; } .chipName { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 9rem; } }