.sa-modal{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;padding:22px}
.sa-modal-overlay{position:absolute;inset:0;background:rgba(74,45,23,.46);-webkit-backdrop-filter:blur(10px) saturate(130%);backdrop-filter:blur(10px) saturate(130%);cursor:pointer}
.sa-modal-content{position:relative;isolation:isolate;width:100%;max-width:540px;background:radial-gradient(860px 220px at 8% -8%,rgba(255,188,112,.22),transparent 58%),radial-gradient(680px 180px at 104% 18%,rgba(255,255,255,.34),transparent 56%),radial-gradient(420px 120px at 50% 112%,rgba(216,155,76,.08),transparent 62%),linear-gradient(180deg,rgba(255,255,255,.9) 0%,rgba(255,247,237,.86) 100%);border:1px solid rgba(178,123,68,.18);border-radius:28px;box-shadow:0 34px 90px rgba(112,67,28,.2),inset 0 1px 0 rgba(255,255,255,.92),inset 0 -1px 0 rgba(178,123,68,.05);overflow:inherit;-webkit-backdrop-filter:blur(18px) saturate(145%);backdrop-filter:blur(18px) saturate(145%);animation:sa-modal-slide-up .28s cubic-bezier(.22,.9,.34,1)}
.sa-modal-content::before{content:"";position:absolute;top:-92px;right:-64px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.5) 0%,rgba(255,255,255,.12) 36%,transparent 72%);pointer-events:none;z-index:0}
.sa-modal-content::after{content:"";position:absolute;inset:0;border-radius:28px;background:linear-gradient(135deg,rgba(255,255,255,.26) 0%,rgba(255,255,255,.05) 22%,rgba(145,91,44,.03) 66%,rgba(124,74,33,.06) 100%);pointer-events:none;z-index:0}
@keyframes sa-modal-slide-up{
from{opacity:0;transform:translateY(18px) scale(.98)}
to{opacity:1;transform:translateY(0) scale(1)}
}

.sa-modal-header{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 28px 22px;border-bottom:1px solid rgba(178,123,68,.12)}
.sa-modal-header::after{content:"";position:absolute;left:28px;bottom:-1px;width:88px;height:2px;border-radius:999px;background:linear-gradient(90deg,#d89b4c 0%,rgba(184,121,71,.18) 100%)}
.sa-modal-header h3{margin:0;font-size:24px;font-weight:800;line-height:1.15;color:#5a3417;letter-spacing:-.03em;text-shadow:0 1px 0 rgba(255,255,255,.45)}
.sa-modal-close{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(255,255,255,.74) 0%,rgba(255,248,239,.64) 100%);border:1px solid rgba(178,123,68,.16);border-radius:50%;box-shadow:0 8px 18px rgba(112,67,28,.06),inset 0 1px 0 rgba(255,255,255,.82);color:var(--sa-accent-soft,#b87947);cursor:pointer;transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease,color .22s ease}
.sa-modal-close:hover{background:linear-gradient(180deg,rgba(255,255,255,.92) 0%,rgba(255,241,220,.84) 100%);border-color:rgba(178,123,68,.3);box-shadow:0 12px 24px rgba(112,67,28,.1),inset 0 1px 0 rgba(255,255,255,.92);color:#7c4a21;transform:translateY(-1px) rotate(90deg)}
.sa-modal-close:active{transform:translateY(0) rotate(90deg)}

.sa-modal-body{position:relative;z-index:1;padding:28px}
.sa-current-location{display:flex;align-items:center;gap:16px;padding:18px 18px;background:linear-gradient(180deg,rgba(255,255,255,.74) 0%,rgba(255,252,247,.58) 100%);border:1px solid rgba(178,123,68,.12);border-radius:18px;box-shadow:0 10px 22px rgba(112,67,28,.06),inset 0 1px 0 rgba(255,255,255,.82);margin-bottom:20px;transition:border-color .22s ease,transform .22s ease,box-shadow .22s ease}
.sa-current-location:hover{transform:translateY(-2px);border-color:rgba(178,123,68,.24);box-shadow:0 16px 28px rgba(112,67,28,.09),inset 0 1px 0 rgba(255,255,255,.9)}
.sa-location-icon{position:relative;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#d89b4c 0%,#7c4a21 100%);border-radius:50%;color:#fff;box-shadow:0 12px 24px rgba(124,74,33,.26);flex-shrink:0}
.sa-location-icon::after{content:"";position:absolute;inset:-4px;border-radius:50%;background:inherit;filter:blur(10px);opacity:.22;z-index:-1}
.sa-location-info{flex:1;min-width:0}
.sa-location-name{font-size:16px;font-weight:800;line-height:1.3;color:#4a2d17;margin-bottom:4px;letter-spacing:-.01em}
.sa-location-coords{font-size:12px;font-weight:600;line-height:1.45;color:#ad8b67;word-break:break-word}

.sa-btn-detect{position:relative;overflow:hidden;width:100%;display:flex;align-items:center;justify-content:center;gap:10px;padding:15px 20px;background:linear-gradient(135deg,#c9894d 0%,#7c4a21 100%);border:1px solid rgba(124,74,33,.14);border-radius:999px;color:#fff;font-size:15px;font-weight:800;letter-spacing:-.01em;box-shadow:0 16px 28px rgba(124,74,33,.24),inset 0 1px 0 rgba(255,255,255,.18);cursor:pointer;transition:transform .22s ease,box-shadow .22s ease,filter .22s ease;margin-bottom:24px}
.sa-btn-detect::before{content:"";position:absolute;top:0;left:-120%;width:70%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.28) 50%,transparent 100%);transform:skewX(-24deg)}
.sa-btn-detect:hover{transform:translateY(-2px);box-shadow:0 22px 34px rgba(124,74,33,.3),inset 0 1px 0 rgba(255,255,255,.22);filter:saturate(108%)}
.sa-btn-detect:hover::before{animation:sa-shine .9s ease}
.sa-btn-detect:active{transform:translateY(0)}
.sa-btn-detect svg{animation:sa-pulse 2s infinite}
@keyframes sa-pulse{
0%,100%{opacity:1;transform:scale(1)}
50%{opacity:.72;transform:scale(.94)}
}
@keyframes sa-shine{
from{left:-120%}
to{left:130%}
}

.sa-search-box{position:relative;margin-bottom:20px}
.sa-search-input-wrapper{position:relative;display:flex;align-items:center}
.sa-search-icon{position:absolute;top:11px;left:16px;color:#b87947;opacity:.9;pointer-events:none}
.sa-search-input{width:100%;padding:15px 48px 15px 48px !important;;background:linear-gradient(180deg,rgba(255,255,255,.74) 0%,rgba(255,252,247,.58) 100%) !important;;border:1px solid rgba(178,123,68,.14);border-radius:9px;box-shadow:0 10px 22px rgba(112,67,28,.05),inset 0 1px 0 rgba(255,255,255,.82) !important;;font-family:inherit;font-size:14px;font-weight:600;line-height:1.4;color:#4a2d17;transition:border-color .22s ease,background .22s ease,box-shadow .22s ease,color .22s ease}
.sa-search-input:focus{outline:none;border-color:rgba(178,123,68,.34) !important;background:linear-gradient(180deg,rgba(255,255,255,.96) 0%,rgba(255,247,237,.88) 100%);box-shadow:0 0 0 4px rgba(178,123,68,.12),0 14px 28px rgba(112,67,28,.08),inset 0 1px 0 rgba(255,255,255,.92) !important;}
.sa-search-input::placeholder{color:#ad8b67;font-weight:500}
.sa-search-clear{position:absolute;right:12px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:#ad8b67;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}
.sa-search-clear:hover{background:rgba(178,123,68,.12);color:#7c4a21;transform:rotate(90deg)}

.sa-search-results{position:absolute;top:calc(100% + 10px);left:0;right:0;max-height:320px;overflow-y:auto;background:linear-gradient(180deg,rgba(255,255,255,.96) 0%,rgba(255,248,239,.94) 100%);border:1px solid rgba(178,123,68,.16);border-radius:18px;box-shadow:0 24px 48px rgba(112,67,28,.16),inset 0 1px 0 rgba(255,255,255,.92);z-index:12;scrollbar-width:thin;scrollbar-color:rgba(184,121,71,.5) transparent}
.sa-search-results::-webkit-scrollbar{width:8px}
.sa-search-results::-webkit-scrollbar-track{background:transparent}
.sa-search-results::-webkit-scrollbar-thumb{background:rgba(184,121,71,.38);border-radius:999px}
.sa-search-result-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(178,123,68,.1);cursor:pointer;transition:background .2s ease,transform .2s ease,border-color .2s ease}
.sa-search-result-item:last-child
.sa-search-result-item:hover{background:linear-gradient(180deg,rgba(255,255,255,.84) 0%,rgba(255,242,226,.76) 100%);transform:translateX(2px)}
.sa-search-result-icon{width:38px;height:38px;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,rgba(255,248,238,.96) 0%,rgba(255,242,227,.9) 100%);border:1px solid rgba(178,123,68,.12);border-radius:50%;box-shadow:inset 0 1px 0 rgba(255,255,255,.88);color:#b87947;flex-shrink:0}
.sa-search-result-info{flex:1;min-width:0}
.sa-search-result-name{font-size:14px;font-weight:700;line-height:1.35;color:#4a2d17;margin-bottom:2px}
.sa-search-result-coords{font-size:11px;font-weight:600;line-height:1.45;color:#ad8b67}
.sa-search-no-results{padding:24px;text-align:center;color:#ad8b67;font-size:14px;font-weight:600;line-height:1.6}

.sa-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px;color:#8b6541;font-size:14px;font-weight:700}
.sa-spinner{width:40px;height:40px;border:3px solid rgba(178,123,68,.12);border-top-color:#b87947;border-right-color:#d89b4c;border-radius:50%;animation:sa-spin .9s linear infinite}
@keyframes sa-spin{
to{transform:rotate(360deg)}
}

.sa-error{padding:14px 16px;background:linear-gradient(180deg,#fff1f2 0%,#ffe9eb 100%);border:1px solid rgba(239,68,68,.12);border-left:4px solid #ef4444;border-radius:14px;box-shadow:0 8px 18px rgba(239,68,68,.06),inset 0 1px 0 rgba(255,255,255,.75);color:#c62828;font-size:13px;font-weight:700;line-height:1.6}

.sa-modal-footer{position:relative;z-index:0;padding:18px 28px 22px;border-top:1px solid rgba(178,123,68,.12);background:linear-gradient(180deg,rgba(255,255,255,.26) 0%,rgba(255,255,255,.12) 100%)}
.sa-modal-note{font-size:12px;font-weight:600;color:#ad8b67;text-align:center;line-height:1.7}

@media (max-width:480px){
.sa-modal{padding:0;align-items:flex-end}
.sa-modal-content{max-width:100%;border-radius:24px 24px 0 0;animation:sa-modal-slide-up-mobile .28s cubic-bezier(.22,.9,.34,1)}
@keyframes sa-modal-slide-up-mobile{
from{transform:translateY(100%)}
to{transform:translateY(0)}
}
.sa-modal-content::after{border-radius:24px 24px 0 0}
.sa-modal-header,.sa-modal-body,.sa-modal-footer{padding:20px}
.sa-modal-header{padding-bottom:18px}
.sa-modal-header::after{left:20px;width:72px}
.sa-modal-header h3{font-size:20px}
.sa-current-location{padding:16px}
.sa-location-icon{width:44px;height:44px}
.sa-location-name{font-size:15px}
.sa-btn-detect{padding:14px 18px;font-size:14px}
.sa-search-input{padding:14px 44px 14px 46px;font-size:13px}
.sa-search-results{max-height:280px;border-radius:16px}
}

@media (prefers-reduced-motion:reduce){
.sa-modal-content,.sa-modal-close,.sa-current-location,.sa-btn-detect,.sa-search-input,.sa-search-clear,.sa-search-result-item,.sa-spinner{transition:none;animation:none}
.sa-modal-close:hover,.sa-current-location:hover,.sa-btn-detect:hover,.sa-search-result-item:hover
}
