.heatmap-header{margin-bottom:var(--space-6)}.heatmap-toolbar{display:flex;gap:var(--space-2)}.heatmap-fullscreen-wrapper .data-controls-left{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.toolbar-btn{display:flex;justify-content:center;padding:var(--space-2) var(--space-3)!important;padding:0;background:var(--bg-primary);border:1px solid var(--border-light)!important}#colorSelect .select-trigger,#sizeSelect .select-trigger{display:flex;align-items:center;gap:var(--space-2)}#colorSelect .heatmap-color-icon,#sizeSelect .select-icon{flex-shrink:0;color:var(--text-secondary)}.heatmap-container{position:relative;background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-xl);overflow:hidden;min-height:600px;margin-bottom:var(--space-4)}.heatmap-fullscreen-wrapper{display:contents}.heatmap-fullscreen-wrapper:fullscreen{display:flex;flex-direction:column;background:var(--bg-primary);padding:var(--space-4);overflow:hidden}.heatmap-fullscreen-wrapper:fullscreen .data-controls{flex-shrink:0;margin-bottom:var(--space-4)}.heatmap-fullscreen-wrapper:fullscreen .heatmap-container{flex:1;border-radius:var(--radius-lg);min-height:0;margin-bottom:var(--space-4)}.heatmap-fullscreen-wrapper:fullscreen .heatmap-container .heatmap-treemap{height:100%}.heatmap-fullscreen-wrapper:fullscreen .heatmap-legend-row{flex-shrink:0;margin-bottom:0}.heatmap-container:fullscreen{border-radius:0;background:var(--bg-primary)}.heatmap-container:fullscreen .heatmap-treemap{height:100vh}.heatmap-fullscreen-wrapper.ios-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;width:100vw;height:100vh;height:100dvh;z-index:99999;display:flex;flex-direction:column;background:var(--bg-primary);padding:var(--space-3);padding-top:max(env(safe-area-inset-top,0px),var(--space-3));padding-bottom:max(env(safe-area-inset-bottom,0px),var(--space-4));overflow:hidden;box-sizing:border-box}.heatmap-fullscreen-wrapper.ios-fullscreen .data-controls{flex-shrink:0;margin-bottom:var(--space-3)}.heatmap-fullscreen-wrapper.ios-fullscreen .heatmap-container{flex:1;border-radius:var(--radius-lg);min-height:0;margin-bottom:var(--space-3)}.heatmap-fullscreen-wrapper.ios-fullscreen .heatmap-container .heatmap-treemap{height:100%}.heatmap-fullscreen-wrapper.ios-fullscreen .heatmap-legend-row{flex-shrink:0;margin-bottom:0}body.has-ios-fullscreen{overflow:hidden;position:fixed;width:100%;height:100%}.heatmap-loading{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);z-index:10}.heatmap-treemap{position:relative;width:100%;height:600px}.heatmap-tooltip{position:absolute;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-3);min-width:200px;box-shadow:var(--shadow-lg);z-index:100;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .15s ease}.heatmap-tooltip.visible{opacity:1;visibility:visible}.tooltip-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-light)}.tooltip-logo{width:28px;height:28px;border-radius:50%;object-fit:cover}.tooltip-title{display:flex;flex-direction:column;min-width:0;max-width:180px;direction:ltr}.tooltip-symbol{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:ltr}.tooltip-name{font-size:var(--text-base);font-weight:var(--font-bold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tooltip-body{display:flex;flex-direction:column;gap:var(--space-2)}.tooltip-row{display:flex;justify-content:space-between;align-items:center}.tooltip-label{font-size:var(--text-sm);color:var(--text-secondary)}.tooltip-value{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.tooltip-performance.positive{color:var(--color-success)}.tooltip-performance.negative{color:var(--color-danger)}.heatmap-click-tooltip{position:absolute;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:var(--space-3);min-width:220px;box-shadow:var(--shadow-lg);z-index:110;opacity:0;visibility:hidden;transition:opacity .15s ease}.heatmap-click-tooltip.visible{opacity:1;visibility:visible}.click-tooltip-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-light)}.click-tooltip-logo{width:32px;height:32px;border-radius:50%;object-fit:cover}.click-tooltip-title{display:flex;flex-direction:column;flex:1;min-width:0;max-width:180px}.click-tooltip-symbol{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:ltr}.click-tooltip-name{font-size:var(--text-base);font-weight:var(--font-bold);color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;direction:ltr}.click-tooltip-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:0 0;border:none;border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.click-tooltip-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.click-tooltip-links{display:flex;flex-direction:column;gap:var(--space-2)}.click-tooltip-link{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);color:var(--text-primary);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-fast)}.click-tooltip-link:hover{background:var(--bg-tertiary);border-color:var(--primary-blue);color:var(--primary-blue)}.click-tooltip-link svg{color:var(--text-secondary);transition:color var(--transition-fast)}.click-tooltip-link:hover svg{color:var(--primary-blue)}.heatmap-zoom-controls{position:absolute;bottom:var(--space-4);right:var(--space-4);display:flex;flex-direction:column;gap:var(--space-2);z-index:20}.zoom-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);box-shadow:var(--shadow-sm)}.zoom-btn:hover{background:var(--bg-secondary);color:var(--text-primary);border-color:var(--border-medium)}.zoom-btn svg{width:18px;height:18px}.zoom-reset-btn{display:none}.zoom-reset-btn.visible{display:flex}.heatmap-legend-row{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-5);justify-content:space-between}.heatmap-legend{display:inline-flex}.legend-bar{display:flex;align-items:center}.legend-boxes{display:flex;gap:var(--space-1)}.legend-box-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.legend-box{display:block;width:50px;height:var(--space-2)}.legend-box-label{font-size:var(--text-xs);color:var(--text-secondary);white-space:nowrap}.legend-box-label.skeleton{display:inline-block;width:30px;height:14px}.heatmap-header+.data-controls{margin-bottom:var(--space-4)}.display-name-options{margin-top:var(--space-1)}.select-option-header{color:var(--text-secondary);margin-bottom:var(--space-2);margin-top:var(--space-1);font-size:var(--text-xs);font-weight:var(--font-semibold);margin-left:var(--space-3);background:unset}.select-option-header:not(:first-child){margin-top:var(--space-2);border-top:2px solid var(--border-light);padding-top:var(--space-3)}.heatmap-skeleton{position:absolute;top:0;left:0;right:0;bottom:0;z-index:5;padding:var(--space-2);display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(4,1fr);gap:var(--space-1)}.heatmap-skeleton .skeleton-lg{grid-column:span 2;grid-row:span 2}.heatmap-skeleton .skeleton-md{grid-column:span 2}.heatmap-container.data-loaded .heatmap-skeleton{display:none}.heatmap-container.reloading .heatmap-treemap{opacity:.4;pointer-events:none;transition:opacity .2s ease}.heatmap-container.reloading .heatmap-zoom-controls{opacity:.4;pointer-events:none}.heatmap-empty-state{display:none;position:absolute;top:0;left:0;right:0;bottom:0;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-secondary);z-index:6}.heatmap-empty-state .empty-state-message{font-size:var(--text-base);color:var(--text-secondary);text-align:center;max-width:300px}.heatmap-container.is-empty .heatmap-empty-state{display:flex}.heatmap-container.is-empty .heatmap-treemap,.heatmap-container.is-empty .heatmap-zoom-controls{display:none}@media (max-width:992px){.heatmap-treemap{height:500px}.heatmap-container{min-height:500px}}@media (max-width:768px){.heatmap-treemap{height:450px}.heatmap-container{min-height:450px}#colorSelect,#sizeSelect{flex:1;min-width:140px}}@media (max-width:576px){.heatmap-legend{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}.data-controls-right{width:100%;justify-content:flex-start}.heatmap-treemap{height:400px}.heatmap-container{min-height:400px;border-radius:var(--radius-lg)}.legend-box{width:40px}.heatmap-zoom-controls{bottom:var(--space-2);right:var(--space-2)}.zoom-btn{width:32px;height:32px}}