.ocean-loader{height:40px;position:relative;width:80px}.ocean-loader .wave{animation:wave 1.5s ease-in-out infinite;background:linear-gradient(90deg,#22d3ee,#0891b2);border-radius:50%;bottom:0;height:20px;left:0;position:absolute;width:100%}.ocean-loader .wave:nth-child(2){animation-delay:.2s;opacity:.7}.ocean-loader .wave:nth-child(3){animation-delay:.4s;opacity:.5}@keyframes wave{0%,to{transform:translateY(0) scaleX(1)}50%{transform:translateY(-10px) scaleX(.9)}}.marker-cluster-ocean{background:transparent!important}.cluster-bubble{align-items:center;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-family:system-ui,-apple-system,sans-serif;font-weight:700;justify-content:center;position:relative;transition:transform .2s ease,box-shadow .2s ease}.cluster-bubble:hover{transform:scale(1.1)}.cluster-bubble.cluster-small{background:linear-gradient(135deg,#14b8a6,#0d9488);box-shadow:0 4px 12px #14b8a666,inset 0 1px #ffffff4d;font-size:13px;height:40px;width:40px}.cluster-bubble.cluster-medium{background:linear-gradient(135deg,#0891b2,#0e7490);box-shadow:0 4px 14px #0891b266,inset 0 1px #ffffff4d;font-size:14px;height:48px;width:48px}.cluster-bubble.cluster-large{background:linear-gradient(135deg,#0c4a6e,#164e63);box-shadow:0 4px 16px #0c4a6e80,inset 0 1px #fff3;font-size:15px;height:56px;width:56px}.cluster-count{position:relative;text-shadow:0 1px 2px rgba(0,0,0,.2);z-index:2}.cluster-ring{animation:pulse-ring 2s ease-out infinite;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;inset:-3px;position:absolute}@keyframes pulse-ring{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.3)}}.dive-marker-icon{background:transparent!important;border:none!important}.dive-marker{filter:drop-shadow(0 4px 8px rgba(8,145,178,.3));transition:transform .2s ease,filter .2s ease}.dive-marker:hover{filter:drop-shadow(0 6px 12px rgba(8,145,178,.4));transform:scale(1.15) translateY(-4px)}.dive-popup .leaflet-popup-content-wrapper{border:1px solid rgba(8,145,178,.1);border-radius:16px;box-shadow:0 10px 40px #00000026,0 2px 10px #0000001a;overflow:hidden;padding:0}.dive-popup .leaflet-popup-content{margin:0;width:280px!important}.dive-popup .leaflet-popup-tip{background:#fff;box-shadow:0 2px 4px #0000001a}.dive-popup .leaflet-popup-close-button{color:#64748b;font-size:20px;padding:8px 10px;transition:color .2s}.dive-popup .leaflet-popup-close-button:hover{color:#0891b2}.dive-popup-card{background:#fff;font-family:system-ui,-apple-system,sans-serif}.popup-card-header{align-items:flex-start;background:linear-gradient(135deg,#f0fdfa,#ecfeff);border-bottom:1px solid rgba(8,145,178,.1);display:flex;gap:12px;padding:16px}.popup-agency-logo{background:#fff;box-shadow:0 2px 8px #00000014;-o-object-fit:contain;object-fit:contain;padding:4px}.popup-agency-logo,.popup-agency-placeholder{border-radius:8px;flex-shrink:0;height:40px;width:40px}.popup-agency-placeholder{align-items:center;background:linear-gradient(135deg,#0891b2,#0e7490);color:#fff;display:flex;justify-content:center}.popup-card-title{flex:1;min-width:0}.popup-name{color:#0f172a;display:-webkit-box;font-size:15px;font-weight:600;-webkit-line-clamp:2;line-height:1.3;margin:0;-webkit-box-orient:vertical;overflow:hidden}.popup-location{align-items:center;color:#64748b;display:flex;font-size:12px;gap:4px;margin:4px 0 0}.popup-location svg{color:#0891b2;flex-shrink:0}.popup-card-body{display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px}.popup-agency-badge{background:linear-gradient(135deg,#ecfeff,#cffafe);color:#0e7490;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.popup-agency-badge,.popup-membership-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:11px;padding:4px 10px}.popup-membership-badge{background:#f1f5f9;color:#475569;font-weight:500}.popup-cta-btn{align-items:center;background:linear-gradient(135deg,#0891b2,#0e7490);border:none;border-radius:12px;box-shadow:0 4px 12px #0891b24d;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;margin:0 16px 16px;padding:12px 20px;transition:all .2s ease;width:calc(100% - 32px)}.popup-cta-btn:hover{background:linear-gradient(135deg,#0e7490,#164e63);box-shadow:0 6px 16px #0891b266;transform:translateY(-2px)}.popup-cta-btn svg{transition:transform .2s ease}.popup-cta-btn:hover svg{transform:translate(4px)}.dark .dive-popup .leaflet-popup-content-wrapper{background:#1e293b;border-color:#0891b233}.dark .dive-popup .leaflet-popup-tip,.dark .dive-popup-card{background:#1e293b}.dark .popup-card-header{background:linear-gradient(135deg,#0f172a,#1e293b);border-color:#0891b233}.dark .popup-name{color:#f1f5f9}.dark .popup-location{color:#94a3b8}.dark .popup-agency-badge{background:linear-gradient(135deg,#164e63,#0e7490);color:#67e8f9}.dark .popup-membership-badge{background:#334155;color:#94a3b8}.dark .popup-agency-logo{background:#334155}.dark .dive-popup .leaflet-popup-close-button{color:#94a3b8}.dark .dive-popup .leaflet-popup-close-button:hover{color:#22d3ee}.leaflet-control-zoom{border:none!important;border-radius:12px!important;box-shadow:0 4px 12px #0000001a!important;overflow:hidden}.leaflet-control-zoom a{background:#fff!important;border:none!important;color:#0891b2!important;font-size:18px!important;height:36px!important;line-height:36px!important;transition:background .2s,color .2s;width:36px!important}.leaflet-control-zoom a:hover{background:#ecfeff!important;color:#0e7490!important}.leaflet-control-zoom a:first-child{border-radius:12px 12px 0 0!important}.leaflet-control-zoom a:last-child{border-radius:0 0 12px 12px!important}.dark .leaflet-control-zoom a{background:#1e293b!important;color:#22d3ee!important}.dark .leaflet-control-zoom a:hover{background:#334155!important;color:#67e8f9!important}.leaflet-control-attribution{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffe6!important;border-radius:8px 0 0!important;font-size:10px!important;padding:4px 8px!important}.dark .leaflet-control-attribution{background:#1e293be6!important;color:#94a3b8!important}.dark .leaflet-control-attribution a{color:#22d3ee!important}@media(hover:none)and (pointer:coarse){.dive-marker:hover{filter:drop-shadow(0 4px 8px rgba(8,145,178,.3));transform:none}.cluster-bubble:hover{transform:none}.popup-cta-btn{font-size:15px;padding:14px 20px}.popup-cta-btn:hover{box-shadow:0 4px 12px #0891b24d;transform:none}.cluster-ring{animation:none}}
