.map-shell{width:100%;height:100%;position:relative}.company-neighbor-link{animation:1.2s linear infinite neighbor-link-flow}@keyframes neighbor-link-flow{to{stroke-dashoffset:-16px}}.filter-toggle{bottom:var(--space-4);right:var(--space-4);z-index:1001;align-items:center;gap:var(--space-2);background:var(--color-primary);color:var(--color-on-primary);padding:var(--space-3) var(--space-5);box-shadow:var(--shadow-lg);border:none;border-radius:999px;font-size:.875rem;font-weight:600;display:none;position:absolute}.filter-panel{top:var(--space-4);right:var(--space-4);z-index:1000;width:min(320px, calc(100vw - 2 * var(--space-4)));max-height:calc(100% - 2 * var(--space-4));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-4);position:absolute;overflow-y:auto}.panel-head{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.panel-head h2{margin:0;font-size:.9375rem;font-weight:600}.panel-close{color:var(--color-foreground-muted);padding:var(--space-1);background:0 0;border:none;display:none}.view-toggle{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;display:inline-flex;overflow:hidden}.view-btn{background:var(--color-surface);color:var(--color-foreground-muted);padding:var(--space-2);border:none;flex:1;justify-content:center;align-items:center;gap:6px;min-height:36px;font-size:.8125rem;font-weight:600;display:inline-flex}.view-btn[data-active=true]{background:var(--color-primary);color:var(--color-on-primary)}.layer-toggle-group{gap:var(--space-2);display:flex}.layer-toggle{min-height:34px;padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-foreground-muted);cursor:pointer;flex:1;align-items:center;gap:6px;font-size:.75rem;font-weight:600;display:inline-flex}.layer-toggle[data-active=true]{border-color:var(--color-primary);color:var(--color-foreground);background:var(--color-surface-hover)}.layer-dot{width:10px;height:10px;box-shadow:0 0 0 1px var(--color-border-strong);border:2px solid #fff;flex:0 0 10px;display:inline-block}.company-layer-dot{background:#7c3aed;border-radius:50%}.landmark-layer-dot{background:#d97706;border-radius:3px}.locate-btn{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-foreground);justify-content:center;align-items:center;gap:6px;min-height:36px;font-size:.8125rem;font-weight:600;transition:border-color .15s,color .15s;display:flex}.locate-btn[data-active=true]{border-color:var(--color-primary);color:var(--color-primary-hover);background:color-mix(in srgb, var(--color-primary) 10%, transparent)}.locate-status{color:var(--color-foreground-muted);margin-top:var(--space-1);font-size:.75rem}.locate-status[data-error=true]{color:var(--color-destructive)}.filter-section{margin-bottom:var(--space-4)}.filter-label{color:var(--color-foreground-muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:var(--space-2);align-items:center;gap:6px;font-size:.75rem;font-weight:600;display:flex}.search-wrap{position:relative}.search-input,.select-input{width:100%;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-foreground);box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.search-input{padding-left:34px}.search-icon{color:var(--color-foreground-muted);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search-input:focus,.select-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--color-primary) 20%, transparent)}.search-results{margin:var(--space-1) 0 0;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);max-height:220px;box-shadow:var(--shadow-md);padding:0;list-style:none;overflow-y:auto}.search-result-item{padding:var(--space-2) var(--space-3);cursor:pointer;border-bottom:1px solid var(--color-border);font-size:.875rem}.search-result-item:last-child{border-bottom:none}.search-result-item:hover,.search-result-item:focus-visible{background:var(--color-surface-hover)}.search-result-meta{color:var(--color-foreground-muted-strong);margin-top:2px;font-size:.75rem;display:block}.search-no-results{margin-top:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-foreground-muted-strong);font-size:.8125rem}.range-row{justify-content:space-between;align-items:center;display:flex}.range-value{color:var(--color-primary);font-weight:600}input[type=range]{width:100%;accent-color:var(--color-primary);margin-top:var(--space-2)}.chip-group{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-foreground-muted);border-radius:999px;align-items:center;gap:6px;min-height:32px;padding:6px 12px;font-size:.8125rem;transition:all .15s;display:inline-flex}.chip[data-active=true]{background:color-mix(in srgb, var(--color-primary) 14%, transparent);border-color:var(--color-primary);color:var(--color-primary-hover);font-weight:600}.checkbox-row{align-items:center;gap:var(--space-2);min-height:32px;font-size:.875rem;display:flex}.checkbox-row input{width:18px;height:18px;accent-color:var(--color-primary)}.lang-toggle{border:1px solid var(--color-border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.lang-btn{background:var(--color-surface);color:var(--color-foreground-muted);padding:var(--space-1) var(--space-3);border:none;min-width:44px;min-height:32px;font-size:.8125rem;font-weight:600}.lang-btn[data-active=true]{background:var(--color-primary);color:var(--color-on-primary)}.panel-footer{padding-top:var(--space-3);border-top:1px solid var(--color-border);color:var(--color-foreground-muted);justify-content:space-between;align-items:center;font-size:.8125rem;display:flex}.reset-btn{color:var(--color-primary);background:0 0;border:none;padding:0;font-size:.8125rem;font-weight:600}.reset-btn:disabled{color:var(--color-foreground-muted);cursor:default;opacity:.5}.landmark-pin{background:var(--marker-color);border:2px solid #fff;border-radius:50% 50% 50% 0;justify-content:center;align-items:center;width:24px;height:24px;display:flex;transform:rotate(-45deg);box-shadow:0 1px 4px #00000059}.landmark-pin svg{transform:rotate(45deg)}.company-marker-dot{background:var(--marker-color);border:3px solid #fff;border-radius:50%;width:20px;height:20px;box-shadow:0 1px 5px #00000073}.map-legend{left:var(--space-4);bottom:var(--space-4);z-index:1000;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb, var(--color-surface) 92%, transparent);box-shadow:var(--shadow-sm);color:var(--color-foreground-muted);backdrop-filter:blur(6px);font-size:.75rem;position:absolute}.map-legend-scale{background:linear-gradient(90deg,#64748b,#2563eb,#0d9488,#d97706,#7c3aed);border-radius:99px;width:132px;height:7px;margin:4px 0 2px;display:flex}.map-legend-labels{justify-content:space-between;display:flex}.map-legend-entities{gap:var(--space-3);margin:4px 0 2px;display:flex}.legend-shape{vertical-align:-1px;width:10px;height:10px;box-shadow:0 0 0 1px var(--color-border-strong);border:1.5px solid #fff;margin-right:3px;display:inline-block}.legend-company-shape{background:#7c3aed;border-radius:50%}.legend-landmark-shape{background:#d97706;border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.legend-missing-shape{background:#64748b;border-radius:50%}.user-location-dot{background:#2563eb;border:2px solid #fff;border-radius:50%;width:14px;height:14px;display:block;box-shadow:0 0 0 4px #2563eb4d}@media (prefers-reduced-motion:no-preference){.user-location-dot{animation:2s ease-out infinite user-location-pulse}}@keyframes user-location-pulse{0%{box-shadow:0 0 0 4px #2563eb4d}70%{box-shadow:0 0 0 12px #2563eb00}to{box-shadow:0 0 0 4px #2563eb00}}.leaflet-popup-content-wrapper{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);background:var(--color-surface);color:var(--color-foreground);padding:0}.leaflet-popup-content{margin:0;width:auto!important}.leaflet-popup-tip{background:var(--color-surface)}.leaflet-popup-close-button{justify-content:center;align-items:center;transition:background-color .15s,color .15s;width:32px!important;height:32px!important;color:var(--color-foreground-muted)!important;font-size:20px!important;display:flex!important;top:2px!important;right:2px!important}.leaflet-popup-close-button:hover{background:var(--color-surface-hover);border-radius:999px;color:var(--color-foreground)!important}.popup-card{font-family:var(--font-sans);min-width:220px;padding:var(--space-3) var(--space-4)}.popup-card-tight{min-width:0;font-size:.8125rem;font-weight:600}.popup-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:4px;display:flex}.popup-title{font-size:.9375rem;font-weight:700;line-height:1.3}.popup-title-icon{color:var(--color-accent);vertical-align:-2px;margin-right:4px}.popup-score-badge{font-family:var(--font-mono);border:1.5px solid;border-radius:999px;flex-shrink:0;padding:1px 7px;font-size:.75rem;font-weight:700}.popup-address{color:var(--color-foreground-muted-strong);align-items:center;gap:4px;margin-bottom:6px;font-size:.75rem;display:flex}.popup-taxonomy{color:var(--color-primary-hover);background:color-mix(in srgb, var(--color-primary) 12%, transparent);border-radius:999px;align-items:center;gap:4px;margin-bottom:8px;padding:2px 8px;font-size:.6875rem;font-weight:600;display:inline-flex}.popup-taxonomy-muted{color:var(--color-foreground-muted);background:var(--color-surface-hover);border:1px solid var(--color-border)}.popup-summary{margin:0 0 8px;font-size:.8125rem;line-height:1.5}.popup-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.popup-stat-row{justify-content:space-between;align-items:center;gap:var(--space-2);border-top:1px solid var(--color-border);padding:6px 0;font-size:.8125rem;display:flex}.popup-stat-label{color:var(--color-foreground-muted)}.popup-stat-value{font-weight:700}.popup-chip-row{flex-wrap:wrap;gap:4px;margin:8px 0;display:flex}.popup-chip{color:var(--color-foreground-muted);background:var(--color-surface-hover);border:1px solid var(--color-border);border-radius:999px;padding:2px 8px;font-size:.6875rem;font-weight:600}.popup-section{border-top:1px solid var(--color-border);margin-top:8px;padding-top:8px}.popup-section-label{text-transform:uppercase;letter-spacing:.02em;color:var(--color-foreground-muted);margin-bottom:4px;font-size:.6875rem;font-weight:700;display:block}.popup-mini-list{margin:0;padding:0;font-size:.8125rem;list-style:none}.popup-mini-list li{justify-content:space-between;align-items:center;gap:var(--space-2);padding:3px 0;display:flex}.popup-card .popup-mini-list a{color:var(--color-primary-hover);text-overflow:ellipsis;white-space:nowrap;text-decoration:none;overflow:hidden}.popup-mini-list .muted{color:var(--color-foreground-muted-strong);flex-shrink:0;font-size:.75rem}.popup-more{color:var(--color-foreground-muted-strong);margin-top:2px;font-size:.75rem;display:block}.popup-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.popup-card .popup-btn{border-radius:var(--radius-sm);border:1px solid var(--color-border);min-width:fit-content;min-height:30px;color:var(--color-foreground);flex:1;justify-content:center;align-items:center;padding:6px 10px;font-size:.75rem;font-weight:600;text-decoration:none;transition:border-color .15s;display:inline-flex}.popup-card .popup-btn:hover{border-color:var(--color-border-strong)}.popup-card .popup-btn-primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-primary)}.popup-card .popup-btn-primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.list-view{background:var(--color-page-bg);height:100%;padding:var(--space-4);padding-top:calc(var(--space-4) + 60px);overflow-y:auto}.list-grid{gap:var(--space-2);flex-direction:column;max-width:44rem;margin:0 auto;display:flex}.list-row{justify-content:space-between;align-items:center;gap:var(--space-3);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);text-align:left;cursor:pointer;transition:border-color .15s,box-shadow .15s;display:flex}.list-row[data-density=detailed]{align-items:flex-start}.list-row-address{color:var(--color-foreground-muted);margin-top:4px;font-size:.75rem}.list-row-summary{margin:6px 0 0;font-size:.8125rem;line-height:1.5}.list-row-tags{color:var(--color-primary);margin-top:6px;font-size:.75rem;font-weight:600}.list-row:hover,.list-row:focus-visible{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.list-row-main{min-width:0}.list-row-name{white-space:nowrap;text-overflow:ellipsis;font-size:.9375rem;font-weight:600;display:block;overflow:hidden}.list-row-meta{color:var(--color-foreground-muted);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;font-size:.75rem;overflow:hidden}.list-row-right{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.list-row-probability{color:var(--color-primary);text-align:right;min-width:42px;font-weight:700}.list-row-popularity{text-align:right;background:var(--color-surface-hover);border-radius:999px;min-width:30px;padding:2px 6px;font-size:.75rem;font-weight:700}.list-row-distance{color:var(--color-foreground-muted);text-align:right;min-width:56px;font-size:.75rem}.list-empty{text-align:center;color:var(--color-foreground-muted);padding:var(--space-8) var(--space-4)}@media (width<=767px){.list-view{padding-top:var(--space-4);padding-bottom:80px}.filter-toggle{display:inline-flex}.filter-panel{top:auto;left:var(--space-3);right:var(--space-3);bottom:var(--space-3);width:auto;max-height:75vh;transform:translateY(calc(100% + var(--space-3)));opacity:0;pointer-events:none;transition:transform .22s,opacity .22s}.filter-panel[data-open=true]{opacity:1;pointer-events:auto;transform:translateY(0)}.panel-close{display:inline-flex}}@media (prefers-reduced-motion:reduce){.filter-panel{transition:none}}
