.heatmap-wrap[data-v-716b1274]{padding-bottom:8px}.grid[data-v-716b1274]{display:grid;grid-template-columns:48px 54px repeat(12,54px);gap:4px;min-width:fit-content}.sticky-header[data-v-716b1274]{position:sticky;top:56px;background:var(--bg);z-index:10;padding-bottom:6px}.h-month[data-v-716b1274]{font-size:11px;color:var(--text-muted);font-weight:500;text-align:center}.h-total-header[data-v-716b1274]{color:var(--text-faint);font-size:13px}.h-year[data-v-716b1274]{font-size:12px;color:var(--text-muted);font-weight:500;display:flex;align-items:center;justify-content:flex-end;padding-right:6px}.cell[data-v-716b1274]{height:46px;border-radius:5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:default;transition:filter .1s;-webkit-user-select:none;user-select:none}.cell[data-v-716b1274]:hover{filter:brightness(1.2)}.cell--total[data-v-716b1274]{box-shadow:3px 0 0 0 var(--border);margin-right:3px}.cell-count[data-v-716b1274]{font-size:13px;font-weight:600;line-height:1}.cell-dots[data-v-716b1274]{display:flex;gap:2px;flex-wrap:wrap;justify-content:center;max-width:46px}.dot[data-v-716b1274]{width:5px;height:5px;border-radius:50%;display:inline-block;flex-shrink:0}.tooltip[data-v-716b1274]{position:fixed;z-index:9999;pointer-events:none;background:#0f172a;border:1px solid #334155;border-radius:8px;padding:10px 14px;min-width:160px;box-shadow:0 8px 24px #00000080}.tt-heading[data-v-716b1274]{font-size:13px;font-weight:700;color:#f1f5f9;margin-bottom:2px}.tt-total[data-v-716b1274]{font-size:12px;color:#94a3b8;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid #1e293b}.tt-row[data-v-716b1274]{display:flex;align-items:center;gap:7px;font-size:12px;color:#cbd5e1;margin-top:4px}.tt-swatch[data-v-716b1274]{width:8px;height:8px;border-radius:2px;flex-shrink:0}.view[data-v-8c64d23e]{display:flex;flex-direction:column;gap:24px}.view-header[data-v-8c64d23e]{display:flex;flex-direction:column;gap:6px}.view-title[data-v-8c64d23e]{font-size:22px;font-weight:700;letter-spacing:-.02em}.view-subtitle[data-v-8c64d23e]{font-size:14px;color:var(--text-muted)}.state-msg[data-v-8c64d23e]{font-size:14px;color:var(--text-muted);padding:32px 0;text-align:center}.state-error[data-v-8c64d23e]{color:#f87171}.mode-toggle[data-v-8c64d23e]{display:flex;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:3px;width:fit-content}.mode-btn[data-v-8c64d23e]{padding:6px 16px;border-radius:6px;border:none;background:transparent;color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.mode-btn[data-v-8c64d23e]:hover{color:var(--text)}.mode-btn--active[data-v-8c64d23e]{background:var(--surface-2);color:var(--text)}.filter-section[data-v-8c64d23e]{display:flex;flex-direction:column;gap:10px}.filter-header[data-v-8c64d23e]{display:flex;align-items:center;gap:12px}.filter-label[data-v-8c64d23e]{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.btn-text[data-v-8c64d23e]{font-size:12px;font-weight:500;color:var(--accent);background:none;border:none;padding:0;line-height:1}.btn-text[data-v-8c64d23e]:hover{text-decoration:underline}.chips[data-v-8c64d23e]{display:flex;flex-wrap:wrap;gap:6px}.chip[data-v-8c64d23e]{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:12px;font-weight:500;transition:border-color .15s,background .15s,color .15s}.chip[data-v-8c64d23e]:hover{color:var(--text);border-color:var(--text-faint)}.chip--active[data-v-8c64d23e]{color:var(--text)}.chip-dot[data-v-8c64d23e]{width:7px;height:7px;border-radius:50%;flex-shrink:0}.legend[data-v-8c64d23e]{display:flex;align-items:center;gap:14px}.legend-items[data-v-8c64d23e]{display:flex;align-items:center;gap:8px}.legend-item[data-v-8c64d23e]{display:flex;align-items:center;gap:5px}.legend-swatch[data-v-8c64d23e]{width:16px;height:16px;border-radius:3px;display:inline-block}.legend-label[data-v-8c64d23e]{font-size:11px;color:var(--text-muted)}.view[data-v-bdec6953]{display:flex;flex-direction:column;gap:24px}.view-header[data-v-bdec6953]{display:flex;flex-direction:column;gap:6px}.view-title[data-v-bdec6953]{font-size:22px;font-weight:700;letter-spacing:-.02em}.view-subtitle[data-v-bdec6953]{font-size:14px;color:var(--text-muted)}.state-msg[data-v-bdec6953]{font-size:14px;color:var(--text-muted);padding:32px 0;text-align:center}.state-error[data-v-bdec6953]{color:#f87171}.stats-row[data-v-bdec6953]{display:flex;flex-wrap:wrap;gap:12px}.stat[data-v-bdec6953]{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px 20px;min-width:140px}.stat-value[data-v-bdec6953]{font-size:22px;font-weight:700;letter-spacing:-.02em;color:var(--text)}.stat-label[data-v-bdec6953]{font-size:12px;color:var(--text-muted);margin-top:2px}.toggles[data-v-bdec6953]{display:flex;flex-wrap:wrap;gap:8px}.toggle-chip[data-v-bdec6953]{padding:5px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.toggle-chip--on[data-v-bdec6953]{border-color:#6366f1;background:#6366f11f;color:#a5b4fc}.filter-section[data-v-bdec6953]{display:flex;flex-direction:column;gap:10px}.filter-header[data-v-bdec6953]{display:flex;align-items:center;gap:12px}.filter-label[data-v-bdec6953]{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.btn-text[data-v-bdec6953]{font-size:12px;font-weight:500;color:var(--accent);background:none;border:none;padding:0;line-height:1;cursor:pointer;font-family:inherit}.btn-text[data-v-bdec6953]:hover{text-decoration:underline}.chips[data-v-bdec6953]{display:flex;flex-wrap:wrap;gap:6px}.chip[data-v-bdec6953]{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);font-size:12px;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.chip[data-v-bdec6953]:hover{color:var(--text);border-color:var(--text-faint)}.chip--active[data-v-bdec6953]{color:var(--text)}.chip-dot[data-v-bdec6953]{width:7px;height:7px;border-radius:50%;flex-shrink:0}.chart-container[data-v-bdec6953]{position:relative;height:420px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:20px}.view[data-v-bb206b29]{display:flex;flex-direction:column;gap:16px}.state-msg[data-v-bb206b29]{font-size:14px;color:var(--text-muted);padding:32px 0;text-align:center}.state-error[data-v-bb206b29]{color:#f87171}.toolbar[data-v-bb206b29]{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.toolbar-right[data-v-bb206b29]{margin-left:auto;display:flex;align-items:center;gap:12px}.gig-count[data-v-bb206b29]{font-size:13px;color:var(--text-muted);white-space:nowrap}.btn-clear-all[data-v-bb206b29]{font-size:12px;font-weight:500;color:#f87171;background:none;border:1px solid #f8717133;border-radius:6px;padding:4px 10px;cursor:pointer;font-family:inherit}.btn-clear-all[data-v-bb206b29]:hover{background:#f8717111}.dropdown[data-v-bb206b29]{position:relative}.dropdown-btn[data-v-bb206b29]{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--surface);border:1px solid var(--border);border-radius:8px;color:var(--text-muted);font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;white-space:nowrap;transition:border-color .15s,color .15s}.dropdown-btn[data-v-bb206b29]:hover{color:var(--text);border-color:var(--text-faint)}.dropdown-btn--active[data-v-bb206b29]{color:var(--text);border-color:var(--accent);background:#6366f11a}.caret[data-v-bb206b29]{font-size:10px;opacity:.6}.dropdown-menu[data-v-bb206b29]{position:absolute;top:calc(100% + 4px);left:0;z-index:200;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0006;min-width:200px;max-height:320px;overflow-y:auto;padding:4px}.dropdown-item[data-v-bb206b29]{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:none;border-radius:5px;background:none;color:var(--text-muted);font-size:13px;font-family:inherit;cursor:pointer;text-align:left;transition:background .1s,color .1s}.dropdown-item[data-v-bb206b29]:hover{background:var(--surface-2);color:var(--text)}.dropdown-item--active[data-v-bb206b29]{color:var(--text);background:#6366f11f}.dropdown-item--clear[data-v-bb206b29]{color:#f87171;font-style:italic}.item-dot[data-v-bb206b29]{width:8px;height:8px;border-radius:50%;flex-shrink:0}.item-count[data-v-bb206b29]{margin-left:auto;font-size:11px;color:var(--text-faint)}.list-sort[data-v-bb206b29]{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--surface);border:1px solid var(--border);border-radius:8px}.list-sort-label[data-v-bb206b29]{font-size:11px;color:var(--text-faint);margin-right:2px}.list-sort button[data-v-bb206b29]{font-size:11px;padding:2px 7px;border:none;border-radius:4px;background:none;color:var(--text-muted);cursor:pointer;font-family:inherit}.list-sort button.active[data-v-bb206b29]{background:var(--surface-2);color:var(--text)}.list-sort button[data-v-bb206b29]:hover{color:var(--text)}.active-filters[data-v-bb206b29]{display:flex;flex-wrap:wrap;gap:6px}.filter-pill[data-v-bb206b29]{display:flex;align-items:center;gap:6px;padding:4px 10px;background:#6366f11f;border:1px solid #6366f1;border-radius:999px;font-size:12px;color:#a5b4fc}.pill-remove[data-v-bb206b29]{background:none;border:none;color:#a5b4fc;cursor:pointer;font-size:14px;line-height:1;padding:0;opacity:.7;font-family:inherit}.pill-remove[data-v-bb206b29]:hover{opacity:1}.gig-grid[data-v-bb206b29]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.gig-card[data-v-bb206b29]{background:var(--surface);border:1px solid var(--border);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s,transform .15s}.gig-card[data-v-bb206b29]:hover{border-color:var(--text-faint);transform:translateY(-2px)}.card-type[data-v-bb206b29]{padding:6px 12px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#fff;cursor:pointer;opacity:.9}.card-type[data-v-bb206b29]:hover{opacity:1}.gig-card img[data-v-bb206b29]{width:100%;aspect-ratio:16/9;object-fit:cover;cursor:pointer;display:block}.card-body[data-v-bb206b29]{padding:12px;display:flex;flex-direction:column;gap:3px;flex:1}.card-title[data-v-bb206b29]{font-size:14px;font-weight:600;color:var(--text);cursor:pointer;line-height:1.3;margin:0 0 4px}.card-title[data-v-bb206b29]:hover{color:#a5b4fc}.card-date[data-v-bb206b29]{font-size:12px;color:var(--text-muted);cursor:pointer}.card-date[data-v-bb206b29]:hover{color:var(--text)}.card-price[data-v-bb206b29]{font-size:13px;font-weight:600;color:#34d399}.card-artist[data-v-bb206b29]{font-size:12px;font-weight:600;color:var(--text);cursor:pointer}.card-artist[data-v-bb206b29]:hover{color:#a5b4fc}.card-venue[data-v-bb206b29]{font-size:12px;color:var(--text-muted);cursor:pointer}.card-venue[data-v-bb206b29]:hover{color:var(--text)}.modal-backdrop[data-v-bb206b29]{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;padding:24px}.modal[data-v-bb206b29]{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;max-width:860px;width:100%;max-height:90vh;overflow-y:auto}.modal-close[data-v-bb206b29]{position:absolute;top:12px;right:12px;z-index:10;width:32px;height:32px;border-radius:50%;background:#00000080;border:none;color:#fff;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.modal-close[data-v-bb206b29]:hover{background:#000c}.modal-inner[data-v-bb206b29]{display:grid;grid-template-columns:1fr auto}.modal-inner img[data-v-bb206b29]{width:100%;object-fit:contain;display:block;max-height:70vh}.modal-info[data-v-bb206b29]{width:200px;padding:20px 16px;display:flex;flex-direction:column;gap:8px;border-left:1px solid var(--border)}.modal-type[data-v-bb206b29]{display:inline-block;padding:3px 8px;border-radius:4px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#fff;align-self:flex-start}.modal-info h2[data-v-bb206b29]{font-size:16px;font-weight:700;color:var(--text);line-height:1.3;margin:0}.modal-date[data-v-bb206b29]{font-size:13px;color:var(--text-muted)}.modal-price[data-v-bb206b29]{font-size:15px;font-weight:700;color:#34d399}.modal-artist[data-v-bb206b29]{font-size:13px;font-weight:600;color:var(--text)}.modal-venue[data-v-bb206b29]{font-size:12px;color:var(--text-muted)}@media(max-width:600px){.modal-inner[data-v-bb206b29]{grid-template-columns:1fr}.modal-info[data-v-bb206b29]{width:auto;border-left:none;border-top:1px solid var(--border)}}.view[data-v-3b84fbf7]{display:flex;flex-direction:column;gap:24px}.view-header[data-v-3b84fbf7]{display:flex;flex-direction:column;gap:6px}.view-title[data-v-3b84fbf7]{font-size:22px;font-weight:700;letter-spacing:-.02em}.view-subtitle[data-v-3b84fbf7]{font-size:14px;color:var(--text-muted)}.state-msg[data-v-3b84fbf7]{font-size:14px;color:var(--text-muted);padding:32px 0;text-align:center}.state-error[data-v-3b84fbf7]{color:#f87171}.controls[data-v-3b84fbf7]{display:flex;gap:24px;flex-wrap:wrap}.control-group[data-v-3b84fbf7]{display:flex;align-items:center;gap:10px}.control-label[data-v-3b84fbf7]{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);white-space:nowrap}.control-select[data-v-3b84fbf7]{padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;font-weight:500}.control-select option[data-v-3b84fbf7]:disabled{color:var(--text-faint)}.chart-container[data-v-3b84fbf7]{width:100vw;margin-left:calc(-50vw + 50%);height:calc(100vh - 196px);min-height:500px}.spinner[data-v-8dd525bd]{position:relative;width:65px;height:65px}.ring[data-v-8dd525bd]{position:absolute;border-radius:50%;border:3px solid transparent;animation:spin-8dd525bd linear infinite}.ring-1[data-v-8dd525bd]{inset:0;border-top-color:#6366f1;animation-duration:2s}.ring-2[data-v-8dd525bd]{inset:8px;border-top-color:#818cf8;animation-duration:1.7s;animation-direction:reverse}.ring-3[data-v-8dd525bd]{inset:16px;border-top-color:#a5b4fc;animation-duration:1.4s}.ring-4[data-v-8dd525bd]{inset:24px;border-top-color:#c7d2fe;animation-duration:1.1s;animation-direction:reverse}.ring-5[data-v-8dd525bd]{inset:32px;border-top-color:#e0e7ff;animation-duration:.8s}@keyframes spin-8dd525bd{to{transform:rotate(360deg)}}#layout[data-v-aca86748]{display:flex;flex-direction:column;min-height:100vh}.navbar[data-v-aca86748]{position:sticky;top:0;z-index:100;display:flex;align-items:center;gap:32px;padding:0 24px;height:56px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.brand-group[data-v-aca86748]{display:flex;flex-direction:column;line-height:1.2}.brand[data-v-aca86748]{font-weight:700;font-size:16px;color:var(--text);letter-spacing:-.01em}.brand-sub[data-v-aca86748]{font-size:10px;color:var(--text-faint)}.brand-sub a[data-v-aca86748]{color:#f59e0b;text-decoration:none}.brand-sub a[data-v-aca86748]:hover{text-decoration:underline}.nav-links[data-v-aca86748]{display:flex;gap:4px}.nav-link[data-v-aca86748]{padding:6px 12px;border-radius:6px;font-size:14px;font-weight:500;color:var(--text-muted);transition:color .15s,background .15s}.nav-link[data-v-aca86748]:hover,.nav-link--active[data-v-aca86748]{color:var(--text);background:var(--surface-2)}.page-content[data-v-aca86748]{flex:1;padding:32px 24px;max-width:1100px;width:100%;margin:0 auto}.loading-overlay[data-v-aca86748]{position:fixed;inset:0;background:#0f172ad9;display:flex;align-items:center;justify-content:center;z-index:9000}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0f172a;--surface: #1e293b;--surface-2: #293548;--border: #334155;--text: #e2e8f0;--text-muted: #94a3b8;--text-faint: #475569;--accent: #6366f1;--cell-empty: #1a2540;--cell-1: #1e1b4b;--cell-2: #312e81;--cell-3: #4338ca;--cell-4: #818cf8}body{font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;line-height:1.5}a{color:var(--accent);text-decoration:none}button{cursor:pointer;font-family:inherit}
