.heatmap-tooltip { position: absolute; padding: 6px 10px; background: var(--tblr-bg-surface); border: 1px solid var(--tblr-border-color); border-radius: 4px; font-size: 0.8125rem; color: var(--tblr-body-color); pointer-events: none; z-index: 1000; white-space: nowrap; box-shadow: 0 2px 8px rgba(0,0,0,0.12); } .heatmap-cell { rx: 2; ry: 2; cursor: pointer; transition: opacity 0.1s ease; pointer-events: fill; } .heatmap-cell:hover { opacity: 0.75; } .heatmap-empty { fill: var(--tblr-bg-surface-secondary); } .heatmap-label { fill: var(--tblr-body-color); font-size: 10px; font-family: var(--tblr-font-sans-serif); } /* Layout: heatmap + filter side by side */ .heatmap-wrapper { display: flex; align-items: flex-start; gap: 16px; } .heatmap-wrapper .heatmap-svg-area { flex: 1; min-width: 0; } .heatmap-wrapper .heatmap-filter { flex-shrink: 0; padding-top: 20px; } .heatmap-filter select { min-width: 140px; max-width: 200px; } .heatmap-weekend { opacity: 0.8; } .heatmap-weekend:hover { opacity: 0.65; } .heatmap-stats { display: flex; gap: 16px; padding: 8px 0 0; font-size: 0.8125rem; color: var(--tblr-secondary, #6c757d); flex-wrap: wrap; } .heatmap-stats .stat-value { color: var(--tblr-body-color); font-weight: 600; }