.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:12px;pointer-events:none;max-width:400px}@media(max-width:768px){.toast-container{top:10px;right:10px;left:10px;max-width:none}}.toast{display:flex;align-items:center;gap:12px;padding:16px 20px;background:#fff;border-radius:12px;box-shadow:0 4px 12px #0000001a,0 2px 6px #00000014;pointer-events:auto;transform:translate(120%);opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1);border-left:4px solid var(--toast-color, #667eea);min-width:300px}@media(max-width:768px){.toast{min-width:auto}}.toast-show{transform:translate(0);opacity:1}.toast-hide{transform:translate(120%);opacity:0}.toast-icon{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--toast-color, #667eea);color:#fff;font-size:16px;font-weight:700}.toast-message{flex:1;font-size:14px;line-height:1.5;color:#333;word-break:break-word}.toast-close{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:#999;font-size:24px;cursor:pointer;padding:0;transition:color .2s;line-height:1}.toast-close:hover{color:#333}.toast-close:focus{outline:2px solid var(--toast-color, #667eea);outline-offset:2px;border-radius:4px}.toast-success{--toast-color: #10b981}.toast-error{--toast-color: #ef4444}.toast-warning{--toast-color: #f59e0b}.toast-info{--toast-color: #3b82f6}.toast-glass{background:#ffffffe6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}@media(prefers-color-scheme:dark){.toast{background:#1f2937;box-shadow:0 4px 12px #0000004d,0 2px 6px #0003}.toast-message{color:#f3f4f6}.toast-close{color:#9ca3af}.toast-close:hover{color:#f3f4f6}.toast-glass{background:#1f2937e6}}@keyframes toast-pulse{0%,to{opacity:1}50%{opacity:.7}}.toast-loading{animation:toast-pulse 1.5s ease-in-out infinite}.toast:hover{box-shadow:0 6px 16px #0000001f,0 3px 8px #0000001a;transform:translateY(-2px)}.toast-show:hover{transform:translateY(-2px)}@media(prefers-reduced-motion:reduce){.toast,.toast-show,.toast-hide{transition:opacity .2s;transform:none}.toast:hover,.toast-show:hover{transform:none}.toast-loading{animation:none}}body.modal-open{overflow:hidden;position:fixed;width:100%}.modal-backdrop{position:fixed;inset:0;background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;transition:opacity .3s ease}.modal-backdrop.modal-show{opacity:1}.modal-backdrop.modal-closing{opacity:0}.modal-container{transform:scale(.9) translateY(20px);opacity:0;transition:all .3s cubic-bezier(.4,0,.2,1)}.modal-show .modal-container{transform:scale(1) translateY(0);opacity:1}.modal-closing .modal-container{transform:scale(.9) translateY(20px);opacity:0}.modal-dialog{background:#fff;border-radius:16px;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;max-width:500px;width:100%;overflow:hidden}@media(max-width:768px){.modal-dialog{max-width:100%}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:24px 24px 20px;border-bottom:1px solid #e5e7eb}.modal-title{margin:0;font-size:20px;font-weight:600;color:#111;display:flex;align-items:center;gap:10px}.modal-icon{font-size:24px}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:none;border:none;color:#6b7280;font-size:28px;cursor:pointer;padding:0;transition:all .2s;border-radius:6px;line-height:1}.modal-close:hover{background:#f3f4f6;color:#111}.modal-close:focus{outline:2px solid #667eea;outline-offset:2px}.modal-body{padding:24px}.modal-body p{margin:0;font-size:15px;line-height:1.6;color:#4b5563}.modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:20px 24px 24px;border-top:1px solid #e5e7eb}.modal-btn{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.modal-btn:focus{outline:2px solid #667eea;outline-offset:2px}.modal-btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.modal-btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.modal-btn-primary:active{transform:translateY(0)}.modal-btn-secondary{background:#f3f4f6;color:#374151}.modal-btn-secondary:hover{background:#e5e7eb}.modal-btn-danger{background:#ef4444;color:#fff}.modal-btn-danger:hover{background:#dc2626;transform:translateY(-1px);box-shadow:0 4px 12px #ef444466}.modal-btn-success{background:#10b981;color:#fff}.modal-btn-success:hover{background:#059669}.modal-alert-info{border-top:4px solid #3b82f6}.modal-alert-success{border-top:4px solid #10b981}.modal-alert-warning{border-top:4px solid #f59e0b}.modal-alert-error{border-top:4px solid #ef4444}.modal-dangerous .modal-header{border-bottom-color:#fee2e2;background:#fef2f2}.modal-dangerous .modal-title{color:#991b1b}.modal-dangerous .modal-icon:before{content:"⚠️"}.modal-loading{pointer-events:none;opacity:.7}.modal-loading:after{content:"";position:absolute;top:50%;left:50%;width:40px;height:40px;margin:-20px 0 0 -20px;border:3px solid #f3f4f6;border-top-color:#667eea;border-radius:50%;animation:modal-spin .8s linear infinite}@keyframes modal-spin{to{transform:rotate(360deg)}}@media(prefers-color-scheme:dark){.modal-dialog{background:#1f2937;box-shadow:0 20px 25px -5px #0000004d,0 10px 10px -5px #0003}.modal-header{border-bottom-color:#374151}.modal-title{color:#f9fafb}.modal-close{color:#9ca3af}.modal-close:hover{background:#374151;color:#f9fafb}.modal-body p{color:#d1d5db}.modal-footer{border-top-color:#374151}.modal-btn-secondary{background:#374151;color:#f9fafb}.modal-btn-secondary:hover{background:#4b5563}.modal-dangerous .modal-header{background:#7f1d1d;border-bottom-color:#991b1b}.modal-dangerous .modal-title{color:#fecaca}}@media(prefers-reduced-motion:reduce){.modal-backdrop,.modal-container,.modal-btn{transition:opacity .2s}.modal-container,.modal-show .modal-container,.modal-closing .modal-container,.modal-btn-primary:hover,.modal-btn-danger:hover{transform:none}@keyframes modal-spin{to{transform:none}}}.modal-btn:focus-visible{outline:3px solid #667eea;outline-offset:3px}.modal-close:focus-visible{outline:3px solid #667eea;outline-offset:2px}.modal-fullscreen .modal-dialog{max-width:800px;width:90vw;height:80vh;max-height:90vh;display:flex;flex-direction:column;overflow:visible}.modal-fullscreen .modal-body{flex:1;overflow:hidden;padding:0;display:flex;flex-direction:column;height:100%;min-height:600px;max-width:100vw;overflow-x:hidden}.modal-fullscreen .modal-body>div{flex:1;min-height:0}@media(max-width:768px){.modal-fullscreen{padding:0;align-items:flex-end}.modal-fullscreen .modal-container{width:100%;height:100%}.modal-fullscreen .modal-dialog{width:100vw;max-width:100vw;height:100vh;max-height:100vh;margin:0;border-radius:0}.modal-fullscreen .modal-header{padding:16px 20px}.modal-fullscreen .modal-body{flex:1;height:calc(100vh - 60px);padding:0;overflow:hidden}.modal-fullscreen .modal-body>div{flex:1;width:100%;height:100%}}#modal-pvz-map{width:100%;max-width:100vw;position:relative;overflow:hidden;margin:0;padding:0;box-sizing:border-box;height:600px}@media(max-width:768px){#modal-pvz-map{width:100%!important;max-width:100vw!important;height:100%!important;min-height:unset}}.spinner{display:inline-block;border:3px solid rgba(102,126,234,.2);border-top-color:#667eea;border-radius:50%;animation:spinner-rotate .8s linear infinite}.spinner-sm{width:16px;height:16px;border-width:2px}.spinner-md{width:32px;height:32px;border-width:3px}.spinner-lg{width:48px;height:48px;border-width:4px}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.btn-loading{position:relative;pointer-events:none;opacity:.8}.btn-loading .spinner{margin-right:8px;vertical-align:middle}.skeleton-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px #0000001a}.skeleton-image{width:100%;height:200px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:8px;margin-bottom:16px}.skeleton-content{display:flex;flex-direction:column;gap:10px}.skeleton-line{height:14px;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:4px}.skeleton-line-title{width:70%;height:20px}.skeleton-line-text{width:100%}.skeleton-line-price{width:40%;height:18px;margin-top:8px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.progress-bar{position:relative;width:100%;height:24px;background:#f0f0f0;border-radius:12px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(135deg,#667eea,#764ba2);transition:width .3s ease;border-radius:12px}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:12px;font-weight:600;color:#333;text-shadow:0 1px 2px rgba(255,255,255,.8)}.loading-overlay{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease}.loading-overlay-show{opacity:1}.loading-overlay-content{text-align:center;color:#fff}.loading-overlay-message{margin-top:20px;font-size:16px;font-weight:500}.loading-dots{display:inline-flex;gap:6px;align-items:center}.loading-dot{width:8px;height:8px;border-radius:50%;background:#667eea;animation:loading-dot-bounce 1.4s ease-in-out infinite}.loading-dot:nth-child(1){animation-delay:0s}.loading-dot:nth-child(2){animation-delay:.2s}.loading-dot:nth-child(3){animation-delay:.4s}@keyframes loading-dot-bounce{0%,80%,to{transform:scale(.8);opacity:.5}40%{transform:scale(1.2);opacity:1}}.loading-pulse{animation:loading-pulse-animation 1.5s ease-in-out infinite}@keyframes loading-pulse-animation{0%,to{opacity:1}50%{opacity:.5}}.loading-inline{display:inline-flex;align-items:center;gap:8px}.loading-inline .spinner{width:14px;height:14px;border-width:2px}.content-placeholder{width:100%;padding:40px;text-align:center;color:#9ca3af}.content-placeholder .spinner{margin:0 auto 16px}.skeleton-list-item{display:flex;gap:16px;padding:16px;background:#fff;border-radius:8px;margin-bottom:12px}.skeleton-list-item .skeleton-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;flex-shrink:0}.skeleton-list-item .skeleton-content{flex:1}@media(prefers-color-scheme:dark){.skeleton-card{background:#1f2937}.skeleton-image,.skeleton-line,.skeleton-list-item .skeleton-avatar{background:linear-gradient(90deg,#374151 25%,#4b5563,#374151 75%);background-size:200% 100%}.progress-bar{background:#374151}.progress-text{color:#f3f4f6;text-shadow:0 1px 2px rgba(0,0,0,.5)}.content-placeholder{color:#6b7280}}@media(prefers-reduced-motion:reduce){.spinner,.skeleton-image,.skeleton-line,.skeleton-list-item .skeleton-avatar,.loading-dot,.loading-pulse{animation:none}.progress-fill{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
