/* Month labels and day cells share the same week columns. */
.heatmap-card { min-width:0; }
.heatmap-card h3 { align-items:flex-start; }
.heatmap-card h3>svg { flex-shrink:0; margin-top:2px; }
.heatmap-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:5px 12px; min-width:0; }
.heatmap-heading small { font-size:12px; font-weight:400; color:var(--text-muted); line-height:1.6; }
.heatmap-container-wrapper { padding:18px 16px 14px; margin-top:0; overflow:hidden; }
.heatmap-scroll { min-width:0; max-width:100%; overflow-x:auto; padding:3px 2px 6px; scrollbar-width:thin; }
.heatmap-scroll:focus-visible { outline:2px solid var(--primary); outline-offset:3px; border-radius:4px; }
.heatmap-chart { --heatmap-weeks:53; display:grid; grid-template-columns:32px minmax(0,1fr); gap:9px 10px; min-width:752px; }
.heatmap-month-labels { grid-column:2; display:grid; grid-template-columns:repeat(var(--heatmap-weeks),minmax(0,1fr)); gap:3px; min-width:0; padding:0; margin:0; font-size:11px; line-height:20px; }
.heatmap-month-label { white-space:nowrap; justify-self:start; }
.heatmap-month-label.heatmap-month-end { justify-self:end; }
.heatmap-grid-layout { display:contents; }
.heatmap-weekdays { grid-column:1; grid-row:2; display:grid; grid-template-rows:repeat(7,minmax(0,1fr)); gap:3px; width:auto; padding:0; align-items:center; font-size:11px; line-height:1; white-space:nowrap; }
.heatmap-weekdays span:nth-child(1) { grid-row:1; }
.heatmap-weekdays span:nth-child(2) { grid-row:3; }
.heatmap-weekdays span:nth-child(3) { grid-row:5; }
.heatmap-grid { grid-column:2; grid-row:2; display:grid; grid-template-columns:repeat(var(--heatmap-weeks),minmax(0,1fr)); grid-template-rows:repeat(7,auto); grid-auto-columns:auto; grid-auto-flow:column; gap:3px; min-width:0; }
.heatmap-grid .heatmap-cell { box-sizing:border-box; width:100%; height:auto; aspect-ratio:1; min-width:0; cursor:default; transition:transform .15s ease,box-shadow .15s ease; }
.heatmap-grid .heatmap-cell:hover { transform:scale(1.1); box-shadow:0 0 0 1px var(--primary); }
.heatmap-grid .heatmap-empty { visibility:hidden; pointer-events:none; }
.heatmap-grid .is-today { outline:1px solid var(--primary); outline-offset:1px; }
.heatmap-legend { min-width:0; padding:10px 2px 0; gap:6px; line-height:16px; }
.heatmap-legend .heatmap-cell { box-sizing:border-box; width:10px; height:10px; flex:0 0 10px; }
@media(max-width:600px) {
    .heatmap-container-wrapper { padding:13px 10px 11px; }
    .heatmap-heading { gap:2px 10px; }
    .heatmap-heading small { flex-basis:100%; }
}
@media(prefers-reduced-motion:reduce) { .heatmap-grid .heatmap-cell { transition:none; } }

