.App{font-family:sans-serif;text-align:center}.dashboard{flex-direction:column;padding:16px 18px 24px}.dashboard,.dashboard-header{display:flex;grid-gap:16px;gap:16px}.dashboard-header{align-items:center;justify-content:space-between;flex-wrap:wrap}.dashboard-title{font-size:24px;font-weight:700;color:#1f2933}.dashboard-subtitle{font-size:14px;color:#6b7280;margin-top:4px}.header-meta{display:flex;grid-gap:8px;gap:8px;flex-wrap:wrap}.meta-chip{padding:6px 10px;border-radius:999px;background:#eef2f7;font-size:12px;color:#1f2933;font-weight:600}.dashboard-toolbar{padding:12px;background:#f7f8fa}.dashboard-toolbar,.upload-banner{display:flex;justify-content:space-between;grid-gap:16px;gap:16px;flex-wrap:wrap;border-radius:12px;border:1px solid #e5e7eb}.upload-banner{padding:14px 16px;background:#fff}.upload-title{font-size:14px;font-weight:700;color:#1f2933}.upload-subtitle{font-size:12px;color:#6b7280;margin-top:4px}.upload-actions{display:flex;grid-gap:10px;gap:10px;flex-wrap:wrap;align-items:center}.file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.upload-status{display:flex;justify-content:space-between;align-items:center;grid-gap:12px;gap:12px;padding:12px 14px;border-radius:10px;background:#f0f5ff;border:1px solid #dbeafe;font-size:13px;color:#1f2933}.upload-status.error{background:#fff4f4;border-color:#fecaca;color:#7f1d1d}.upload-meta{font-size:12px;color:inherit;opacity:.8;margin-top:4px}.toolbar-group{display:flex;grid-gap:12px;gap:12px;flex-wrap:wrap;align-items:flex-end}.field{display:flex;flex-direction:column;grid-gap:6px;gap:6px;font-size:12px;color:#6b7280;min-width:140px}.field input,.field select{border:1px solid #d1d5db;border-radius:8px;padding:8px 10px;font-size:14px;background:#fff;color:#1f2933}.toggle{display:flex;align-items:center;grid-gap:8px;gap:8px;font-size:13px;color:#4b5563;padding:4px 0}.button{border:none;border-radius:8px;padding:9px 14px;font-size:14px;font-weight:600;background:#2563eb;color:#fff;cursor:pointer}.button.ghost{background:#fff;color:#1f2933;border:1px solid #d1d5db}.dashboard-content{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);grid-gap:16px;gap:16px}.map-wrapper{border-radius:14px;overflow:hidden;border:1px solid #e5e7eb;background:#fff;height:70vh;display:flex;flex-direction:column}.map-legend{padding:10px 12px;background:#f9fafb;border-top:1px solid #e5e7eb;font-size:12px;color:#4b5563}.side-panel{display:flex;flex-direction:column;grid-gap:16px;gap:16px}.panel-section{padding:14px;border-radius:12px;border:1px solid #e5e7eb;background:#fff;text-align:left}.panel-title{font-size:14px;font-weight:700;color:#1f2933;margin-bottom:12px}.panel-note{font-size:12px;color:#6b7280}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.stat-card{background:#f9fafb;border-radius:10px;padding:10px}.stat-label{font-size:12px;color:#6b7280}.stat-value{font-size:18px;font-weight:700;margin-top:6px;color:#111827}.stat-footnote{font-size:11px;color:#9ca3af;margin-top:4px}.selection-card{display:flex;flex-direction:column;grid-gap:10px;gap:10px}.selection-row{display:flex;justify-content:space-between;grid-gap:8px;gap:8px;font-size:13px;color:#4b5563}.selection-row strong{color:#111827}.top-list{display:flex;flex-direction:column;grid-gap:8px;gap:8px}.top-item{border:1px solid #e5e7eb;background:#fff;padding:10px;border-radius:10px;display:flex;justify-content:space-between;align-items:center;font-size:13px;color:#4b5563;cursor:pointer}.top-item strong{color:#111827}.top-item.active{border-color:#2563eb;box-shadow:0 0 0 1px rgba(37,99,235,.2)}.loading-panel{height:90vh;display:flex;flex-direction:column;align-items:center;justify-content:center;grid-gap:8px;gap:8px;font-size:16px;color:#1f2933}.loading-title{font-size:18px;font-weight:600}.loading-subtitle{font-size:13px;color:#6b7280}.empty-state{display:grid;grid-gap:16px;gap:16px;padding:16px 18px 24px}.empty-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;padding:18px;text-align:left;display:grid;grid-gap:10px;gap:10px}.empty-title{font-size:18px;font-weight:700;color:#1f2933}.empty-subtitle{font-size:13px;color:#6b7280}.empty-actions{display:flex;grid-gap:12px;gap:12px;flex-wrap:wrap;align-items:center}.empty-footnote{font-size:12px;color:#6b7280}.custom-sales-marker{background:transparent!important;border:none!important}.sales-marker-container{position:relative;display:grid;place-items:center}.sales-marker-glow{position:absolute;border-radius:999px;filter:blur(8px);opacity:.35;transition:opacity .2s ease,transform .2s ease}.sales-marker-circle:hover{transform:scale(1.12);box-shadow:0 6px 16px rgba(0,0,0,.35),inset 0 1px 0 hsla(0,0%,100%,.35)!important;z-index:1000}.sales-marker-container:hover .sales-marker-glow{opacity:.55;transform:scale(1.08)}.sales-marker-circle{border-radius:999px;border:3px solid #fff;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;line-height:1;text-align:center;padding:2px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 4px 12px rgba(0,0,0,.35),inset 0 1px 0 hsla(0,0%,100%,.35)}.sales-marker-circle.is-selected{outline:3px solid hsla(0,0%,100%,.9);box-shadow:0 6px 18px rgba(0,0,0,.45),0 0 0 6px rgba(37,99,235,.35)}.custom-cluster-icon{background:transparent!important;border:none!important}.cluster-badge{position:relative;border-radius:999px;border:3px solid #fff;display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.35);transition:transform .2s ease,box-shadow .2s ease}.cluster-badge:hover{transform:scale(1.08);box-shadow:0 8px 22px rgba(0,0,0,.4)}.cluster-ring{position:absolute;inset:-6px;border-radius:999px;border:2px solid hsla(0,0%,100%,.45);opacity:.7}.cluster-content{color:#fff;font-weight:700;text-align:center;line-height:1.05;text-shadow:0 1px 2px rgba(0,0,0,.3)}.cluster-count{font-size:14px}.cluster-sales{font-size:10px;opacity:.9}.leaflet-tooltip.custom-tooltip{background:rgba(18,18,18,.92);border:1px solid hsla(0,0%,100%,.08);border-radius:10px;color:#fff;padding:10px 12px;font-size:13px;box-shadow:0 6px 20px rgba(0,0,0,.35)}.leaflet-tooltip.custom-tooltip:before{border-top-color:rgba(18,18,18,.92)}@media (max-width:1100px){.dashboard-content{grid-template-columns:1fr}.map-wrapper{height:60vh}}
/*# sourceMappingURL=main.14a0dc17.chunk.css.map */