.map-page-wrapper{background:var(--color-bg-white);min-height:100vh}.map-header{background:var(--color-bg-warm);border-bottom:1px solid #2563eb1a;padding-bottom:40px}.interactive-map-container{max-width:1400px;margin:0 auto;padding:40px 0}.map-ui-wrapper{align-items:flex-start;gap:40px;display:flex}@media (max-width:991px){.map-ui-wrapper{flex-direction:column}}.map-sidebar{flex-direction:column;flex-shrink:0;gap:30px;width:300px;display:flex}@media (max-width:991px){.map-sidebar{flex-flow:wrap;gap:20px;width:100%}.filter-group{flex:1;min-width:250px}}.filter-group h3{font-family:var(--font-display);color:var(--color-primary);border-bottom:1px solid #2563eb1a;margin-bottom:12px;padding-bottom:8px;font-size:1.1rem}.filter-options{flex-direction:column;gap:8px;display:flex}@media (max-width:991px){.filter-options{flex-flow:wrap}}.filter-btn{border-radius:var(--radius-sm);text-align:left;font-family:var(--font-sans);color:var(--color-text);cursor:pointer;background:0 0;border:1px solid #2563eb26;padding:8px 12px;font-size:.9rem;transition:all .2s}.filter-btn:hover{background:#2563eb0d;border-color:#2563eb4d}.filter-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);font-weight:500}.type-btn{align-items:center;gap:10px;display:flex}.type-icon{opacity:.7;justify-content:center;align-items:center;display:flex}.filter-btn.active .type-icon{opacity:1}.map-stats{background:var(--color-bg-warm);border-radius:var(--radius-sm);color:var(--color-primary);text-align:center;margin-top:auto;padding:16px;font-size:.95rem}.map-canvas-container{border-radius:var(--radius-md);background:#fdfdfc;border:1px solid #2563eb1a;flex-grow:1;justify-content:center;align-items:center;height:700px;display:flex;position:relative;overflow:hidden}.compact-map .map-canvas-container{height:100%;min-height:380px}.sri-lanka-map{filter:drop-shadow(0 0 30px #2563eb4d)drop-shadow(0 0 90px #2563eb26)drop-shadow(0 0 180px #2563eb14);width:100%;height:100%;transition:filter .5s}.map-geography{transition:fill .3s}.map-marker-group{cursor:pointer;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.map-marker-group:hover{transform:scale(1.25)}@keyframes mapPulse{0%{stroke-width:2px;stroke:#ffffffe6}50%{stroke-width:4px;stroke:var(--color-accent)}to{stroke-width:2px;stroke:#ffffffe6}}.marker-primary .map-marker-bg{fill:var(--color-accent);stroke:#fff;stroke-width:2px;animation:2.5s ease-in-out infinite mapPulse}.marker-nearby .map-marker-bg{fill:#0ea5e9;stroke:#fff;stroke-width:1.5px}.marker-nearby:hover .map-marker-bg{fill:#0284c7}.map-marker-icon{color:var(--color-primary);pointer-events:none}.marker-nearby .map-marker-icon{color:#fff}.map-tooltip{border-radius:var(--radius-md);z-index:100;background:#fff;border:1px solid #2563eb14;width:300px;animation:.3s cubic-bezier(.16,1,.3,1) forwards slideUpFade;position:absolute;bottom:20px;right:20px;overflow:hidden;box-shadow:0 10px 30px #00000026}@keyframes slideUpFade{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.tooltip-image{background-position:50%;background-size:cover;height:140px}.tooltip-content{padding:20px}.tooltip-content h4{font-family:var(--font-display);color:var(--color-primary);margin-bottom:4px;font-size:1.25rem}.tooltip-region{text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent);margin-bottom:12px;font-size:.75rem;font-weight:600;display:inline-block}.tooltip-content p{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-bottom:16px;font-size:.9rem;line-height:1.5;display:-webkit-box;overflow:hidden}.tooltip-link{color:var(--color-primary);border-bottom:1px solid var(--color-accent);padding-bottom:2px;font-size:.85rem;font-weight:600;text-decoration:none;transition:color .2s,border-color .2s;display:inline-block}.tooltip-link:hover{color:var(--color-accent);border-color:#0000}.map-helper{border-radius:var(--radius-full);color:var(--color-text-muted);pointer-events:none;background:#ffffffe6;align-items:center;gap:8px;padding:8px 14px;font-size:.8rem;display:flex;position:absolute;top:20px;right:20px;box-shadow:0 2px 10px #0000000d}.tooltip-close-btn:hover{background-color:var(--color-accent)!important;color:var(--color-primary)!important}
