/* Clustering: responsive, keyboard-operated views with stable point positions. */
.cluster-map{min-width:0;margin:0 0 26px;padding:22px;border:1px solid #d9e5ed;border-radius:12px;background:linear-gradient(145deg,#fff,#f7fafc);color:#24435b}
.cluster-map-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.cluster-map-kicker{display:block;color:#5c788c;font-size:10px;font-weight:600;letter-spacing:1.5px;margin-bottom:7px}
.cluster-map h4{font:600 19px/1.45 Manrope,sans-serif;letter-spacing:-.35px;margin:0;max-width:390px}
.cluster-population{flex-shrink:0;background:#eaf2f8;padding:5px 9px;border-radius:5px;font-size:11px;font-weight:600;color:#3c6a88;white-space:nowrap}
.cluster-view-controls{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:17px}
.cluster-view-controls button{min-height:40px;padding:8px 13px;border:1px solid #cfdee9;border-radius:6px;background:#fff;color:#506b80;font-size:12px;font-weight:500;line-height:1.4}
.cluster-view-controls button[aria-pressed=true]{background:#245e87;color:#fff;border-color:#245e87}
.cluster-map button:focus-visible{outline:3px solid #1875b8;outline-offset:3px}
.cluster-map button:hover{border-color:#729db9}
.cluster-axis-label{margin:0 0 3px;font-size:12px;color:#47657b;font-weight:500}
.cluster-axis-x{text-align:right;margin:1px 0 13px}
.cluster-scatter{display:block;width:100%;height:285px;overflow:visible}
.cluster-gridline{stroke:#dfe8ef;stroke-width:1;stroke-dasharray:3 5}
.cluster-tick{fill:#60798b;font:11px 'DM Sans',sans-serif}
.cluster-point{opacity:.9;stroke:#fff;stroke-width:.7;transition:opacity .2s ease,fill .35s ease}
.cluster-point.is-muted{opacity:.12}
.cluster-region{fill-opacity:0;stroke-opacity:0;stroke-width:1;stroke-dasharray:4 5;transition:fill-opacity .35s,stroke-opacity .35s}
.is-grouped .cluster-region{fill-opacity:.045;stroke-opacity:.25;animation:cluster-reveal .7s ease-out both}
.is-grouped .cluster-region.is-muted{fill-opacity:.01;stroke-opacity:.06;animation:none}
.cluster-scale-note{font-size:11px;line-height:1.75;color:#647c8f;margin:0 0 17px}
.cluster-group-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.cluster-group-controls button{min-width:0;border:1px solid #d9e4ec;border-radius:7px;background:#fff;line-height:1.45;text-align:left;padding:10px;color:#3c5b72}
.cluster-group-controls .cluster-group-all{grid-column:1/-1;justify-self:start;min-height:35px;padding:7px 12px;font-size:11px}
.cluster-group-controls .cluster-group-all[aria-pressed=true]{border-color:#8caec5;background:#eef5fa;color:#245e87}
.cluster-group-button{display:flex;align-items:flex-start;gap:8px}
.cluster-group-button[aria-pressed=true]{border-color:var(--cluster-color);box-shadow:inset 0 -2px var(--cluster-color);background:#f7fafc}
.cluster-legend-symbol{font-size:15px;line-height:1.25;color:var(--cluster-color);flex:0 0 15px;text-align:center}
.cluster-group-copy{min-width:0;overflow-wrap:anywhere}
.cluster-group-copy>span{display:block;font-size:11px;font-weight:500}
.cluster-group-copy>strong{display:block;font-size:10px;font-weight:400;color:#6c8090;margin-top:5px}
.cluster-insight{font-size:12px;line-height:1.75;padding:12px 14px;background:#edf4f8;border-left:2px solid #87b0c8;border-radius:0 5px 5px 0;margin:15px 0 0;color:#4b6c82;min-height:66px}
@keyframes cluster-reveal{from{fill-opacity:0;stroke-opacity:0}to{fill-opacity:.045;stroke-opacity:.25}}
body.motion-paused .cluster-map *,body.motion-paused .cluster-map *::before{animation:none!important;transition:none!important}
@media(max-width:1050px){.cluster-map-heading{flex-direction:column;gap:10px}.cluster-group-controls{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.cluster-map{padding:14px 10px}.cluster-map h4{font-size:17px}.cluster-map-heading{margin-bottom:14px}.cluster-group-controls{grid-template-columns:1fr}.cluster-group-button{padding:10px 12px!important}.cluster-group-copy>span{font-size:12px}.cluster-group-copy>strong{font-size:11px}.cluster-view-controls{gap:5px}.cluster-view-controls button{flex:1 1 70px;padding:8px 7px;font-size:11px}.cluster-axis-label{font-size:11px}.cluster-insight{padding:11px;min-height:0}.cluster-population{font-size:10px}}
@media(prefers-reduced-motion:reduce){.cluster-map *{animation:none!important;transition:none!important}}
.cluster-point.cluster-point-noise{stroke:#71808e;stroke-width:2;fill:none}
/* Keep chart controls and profile descriptions comfortably readable. */
.cluster-view-controls button{font-size:14px;min-height:44px}.cluster-group-copy>span{font-size:14px}.cluster-group-copy>strong{font-size:12px}.cluster-scale-note{font-size:12px}.cluster-insight{font-size:14px}.cluster-axis-label{font-size:13px}.cluster-population{font-size:12px}.cluster-group-controls .cluster-group-all{font-size:12px;min-height:40px}.cluster-group-copy{overflow-wrap:normal;word-break:normal}
