.heatmap-generator_generator__52vrm{--hm-bg:#0f172a;--hm-card-bg:#1e293b;--hm-panel-bg:#0b1120;--hm-text:#f8fafc;--hm-muted:#94a3b8;--hm-border:#334155;--hm-input-bg:#1e293b;--hm-input-border:#334155;--hm-accent:#22c55e;--hm-danger:#ef4444;display:grid;grid-template-columns:5fr 7fr;gap:16px;direction:ltr;max-width:1250px;width:100%;margin:0 auto;color:var(--hm-text)}.heatmap-generator_canvasWrapper__Zx3lp,.heatmap-generator_leftColumn__DXO2I{display:flex;flex-direction:column;gap:12px}.heatmap-generator_canvasWrapper__Zx3lp{background-color:var(--hm-panel-bg);border-radius:16px;padding:16px;border:1px solid var(--hm-border);box-shadow:0 10px 25px rgba(0,0,0,.5);align-items:center}.heatmap-generator_canvasWrapper__Zx3lp canvas{width:100%;height:auto;cursor:crosshair;border-radius:4px;touch-action:none}.heatmap-generator_summaryRow__wKMOK{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%}.heatmap-generator_summaryBox__QDPx1{background-color:var(--hm-bg);padding:10px 8px;border-radius:8px;text-align:center;border:1px solid var(--hm-border)}.heatmap-generator_summaryValue__GPBB0{font-size:1.3rem;font-weight:800;margin:0;color:var(--hm-text);direction:ltr}.heatmap-generator_summaryLabel__dT1UL{font-size:.7rem;color:var(--hm-muted);text-transform:uppercase;margin-top:3px}.heatmap-generator_rightColumn__pR5F6{display:flex;flex-direction:column;gap:12px}.heatmap-generator_controlPanel__jyVAw{background-color:var(--hm-panel-bg);border-radius:16px;padding:14px;border:1px solid var(--hm-border);box-shadow:0 10px 25px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:8px}.heatmap-generator_controlPanel__jyVAw h2{margin:0;font-size:1rem;border-bottom:1px solid var(--hm-border);padding-bottom:6px;color:var(--hm-text)}.heatmap-generator_sectionTitle__7N5nk{margin:0 0 2px;font-size:.75rem;color:var(--hm-muted);text-transform:uppercase;font-weight:600}.heatmap-generator_inlineRow__G74f8{display:grid;grid-template-columns:1fr 1fr;gap:8px}.heatmap-generator_inlineCol__ECtZl{display:flex;flex-direction:column;gap:2px}.heatmap-generator_playerRow__oRv83{display:flex;align-items:flex-end;gap:8px}.heatmap-generator_avatarBtn__ZrS55{width:36px;height:36px;min-width:36px;min-height:36px;border-radius:50%;border:1px dashed var(--hm-border);background:var(--hm-input-bg);color:var(--hm-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;overflow:hidden;padding:0;transition:all .2s;margin-bottom:2px}.heatmap-generator_avatarBtn__ZrS55:hover{border-color:var(--hm-accent);color:var(--hm-accent)}.heatmap-generator_avatarImg__YBBQn{width:100%;height:100%;object-fit:cover;border-radius:50%}.heatmap-generator_hiddenInput__CVOZI{display:none}.heatmap-generator_formGrid__KHu_7{display:grid;grid-template-columns:1fr 1fr;gap:8px}.heatmap-generator_inputGroup__MMy2z{display:flex;flex-direction:column;gap:3px}.heatmap-generator_inputGroup__MMy2z label{font-size:.75rem;color:var(--hm-muted);font-weight:600;text-transform:uppercase}.heatmap-generator_inputGroup__MMy2z input{width:100%;padding:6px 8px;background-color:var(--hm-input-bg);border:1px solid var(--hm-input-border);color:var(--hm-text);border-radius:8px;font-family:inherit;box-sizing:border-box;outline:none;font-size:.85rem;transition:border-color .2s}.heatmap-generator_inputGroup__MMy2z input:focus{border-color:var(--hm-muted)}.heatmap-generator_toggleGroup__Si5KS{display:flex;gap:4px;background-color:var(--hm-bg);border-radius:8px;padding:3px;border:1px solid var(--hm-border)}.heatmap-generator_toggleBtn__z7ZL1{flex:1 1;padding:5px 8px;border:none;border-radius:6px;background:transparent;color:var(--hm-muted);font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.heatmap-generator_toggleBtnActive__42WSj{background-color:var(--hm-accent);color:#0f172a}.heatmap-generator_sliderGroup__Mfilo{display:flex;flex-direction:column;gap:4px}.heatmap-generator_sliderLabel__ZhKFo{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--hm-muted);font-weight:600;text-transform:uppercase}.heatmap-generator_sliderValue___m3JG{color:var(--hm-text);font-weight:700;text-transform:none}.heatmap-generator_sliderGroup__Mfilo input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:var(--hm-border);outline:none}.heatmap-generator_sliderGroup__Mfilo input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--hm-accent);cursor:pointer}.heatmap-generator_sliderGroup__Mfilo input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--hm-accent);cursor:pointer;border:none}.heatmap-generator_zoneGrid__0T5zc{display:flex;flex-wrap:nowrap;gap:4px;overflow-x:auto}.heatmap-generator_zoneBtn__ITXtC{padding:4px 8px;border:1px solid var(--hm-border);border-radius:20px;white-space:nowrap;background:transparent;color:var(--hm-muted);font-family:inherit;font-size:.75rem;font-weight:600;cursor:pointer;transition:all .15s}.heatmap-generator_zoneBtn__ITXtC:hover{border-color:var(--hm-accent);color:var(--hm-accent)}.heatmap-generator_buttonRow___dfOV{display:flex;gap:8px}.heatmap-generator_undoButton__y5pUH{background-color:initial;color:var(--hm-muted);border:1px solid var(--hm-border);padding:10px 16px;border-radius:8px;font-weight:600;cursor:pointer;font-family:inherit;font-size:.85rem;transition:all .2s}.heatmap-generator_undoButton__y5pUH:hover{border-color:var(--hm-muted);color:var(--hm-text)}.heatmap-generator_undoButton__y5pUH:disabled{opacity:.4;cursor:not-allowed}.heatmap-generator_clearButton__ZCMEj{background-color:initial;color:var(--hm-muted);border:1px solid var(--hm-border);padding:10px 16px;border-radius:8px;font-weight:600;cursor:pointer;font-family:inherit;font-size:.85rem;transition:all .2s}.heatmap-generator_clearButton__ZCMEj:hover{border-color:var(--hm-danger);color:var(--hm-danger)}.heatmap-generator_exportButton__XlYHp{flex:1 1;background-color:var(--hm-accent);color:#0f172a;border:none;padding:10px 16px;border-radius:8px;font-weight:800;cursor:pointer;font-family:inherit;font-size:.85rem;transition:opacity .2s}.heatmap-generator_exportButton__XlYHp:hover{opacity:.85}.heatmap-generator_exportButton__XlYHp:disabled{opacity:.4;cursor:not-allowed}.heatmap-generator_emptyState__dI6K_{text-align:center;padding:24px 16px;color:var(--hm-muted);font-size:.85rem}.heatmap-generator_themeCircles__ZZMxK{display:flex;gap:8px;align-items:center;justify-content:flex-end}.heatmap-generator_themeCircle__Aw5zB{width:28px;height:28px;min-width:28px;min-height:28px;border-radius:50%;border:2px solid rgba(148,163,184,.3);cursor:pointer;padding:0;transition:all .15s;box-sizing:border-box}.heatmap-generator_themeCircle__Aw5zB:hover{border-color:rgba(148,163,184,.7);transform:scale(1.15)}.heatmap-generator_themeCircleActive__ZNw6g{border-color:var(--hm-accent);box-shadow:0 0 0 2px var(--hm-accent)}@media (max-width:950px){.heatmap-generator_formGrid__KHu_7,.heatmap-generator_generator__52vrm{grid-template-columns:1fr}}@media (max-width:480px){.heatmap-generator_summaryRow__wKMOK{grid-template-columns:1fr}.heatmap-generator_buttonRow___dfOV{flex-direction:column}}[dir=rtl] .heatmap-generator_generator__52vrm{direction:rtl}[dir=rtl] .heatmap-generator_summaryValue__GPBB0{direction:ltr}@media print{.heatmap-generator_buttonRow___dfOV,.heatmap-generator_controlPanel__jyVAw{display:none!important}.heatmap-generator_generator__52vrm{grid-template-columns:1fr}}@keyframes heatmap-generator_hmModalIn__9O177{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.heatmap-generator_exportModalOverlay__mygxW{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:1.5rem}.heatmap-generator_exportModalCard__Nl9hP{background:rgba(15,23,42,.97);border:1px solid rgba(148,163,184,.15);border-radius:20px;width:100%;max-width:680px;max-height:calc(100vh - 3rem);overflow:hidden;animation:heatmap-generator_hmModalIn__9O177 .2s ease-out;display:flex;flex-direction:column}.heatmap-generator_exportModalHeader__X0jSo{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem;border-bottom:1px solid rgba(148,163,184,.1)}.heatmap-generator_exportModalTitle__enxUF{font-size:1.1rem;font-weight:700;color:#fff}.heatmap-generator_exportModalClose__sBR1d{background:none;border:none;color:#94a3b8;font-size:1.5rem;cursor:pointer;padding:4px;line-height:1;transition:color .15s}.heatmap-generator_exportModalClose__sBR1d:hover{color:#e2e8f0}.heatmap-generator_exportModalBody__83a_A{padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem;overflow-y:auto}.heatmap-generator_presetRow__BCcak{display:flex;flex-wrap:wrap;gap:6px}.heatmap-generator_presetBtn__PRlfE{padding:6px 14px;border:1px solid rgba(148,163,184,.2);border-radius:8px;background:transparent;color:#94a3b8;font-family:inherit;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.heatmap-generator_presetBtnActive__FpfzH{border-color:var(--hm-accent);color:var(--hm-accent);background:rgba(34,197,94,.1)}.heatmap-generator_exportModalPreview__QYz0Q{display:flex;justify-content:center;background:rgba(0,0,0,.3);border-radius:12px;padding:12px;overflow:hidden;min-height:200px}.heatmap-generator_exportModalPreview__QYz0Q img{max-width:100%;max-height:45vh;border-radius:8px;display:block}.heatmap-generator_exportModalActions__bQdS_{display:flex;gap:.75rem}.heatmap-generator_downloadBtn__Z0zLt{display:inline-flex;align-items:center;gap:8px;padding:.65rem 1.4rem;border:none;border-radius:12px;background:#22c55e;color:#0f172a;font-size:.9rem;font-weight:700;cursor:pointer;transition:background .15s}.heatmap-generator_downloadBtn__Z0zLt:hover{background:#16a34a}.heatmap-generator_cancelBtn__XzP7n{display:inline-flex;align-items:center;gap:8px;padding:.65rem 1.4rem;border:1px solid rgba(148,163,184,.2);border-radius:12px;background:transparent;color:#94a3b8;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}.heatmap-generator_cancelBtn__XzP7n:hover{border-color:rgba(148,163,184,.4);color:#e2e8f0}