.premium-badge{cursor:default;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem .875rem;font-family:inherit;transition:all .2s;display:inline-flex}.premium-badge--clickable{cursor:pointer}.premium-badge--compact{gap:.375rem;padding:.375rem .625rem}.premium-badge--active{background:linear-gradient(135deg,#ffc10726,#ff98001a);border:1px solid #ffc1074d}.premium-badge--active.premium-badge--clickable:hover{background:linear-gradient(135deg,#ffc10733,#ff980026);border-color:#ffc10766}.premium-badge--trial{background:linear-gradient(135deg,#4caf5026,#388e3c1a);border:1px solid #4caf504d}.premium-badge--trial.premium-badge--clickable:hover{background:linear-gradient(135deg,#4caf5033,#388e3c26);border-color:#4caf5066}.premium-badge--upgrade{background:linear-gradient(135deg,#9c27b026,#7b1fa21a);border:1px solid #9c27b04d}.premium-badge--upgrade.premium-badge--clickable:hover{background:linear-gradient(135deg,#9c27b040,#7b1fa233);border-color:#9c27b080;transform:translateY(-1px)}.premium-badge-icon{color:#ffc107;flex-shrink:0;font-size:1rem;line-height:1}.premium-badge--compact .premium-badge-icon{font-size:.875rem}.premium-badge-content{flex-direction:column;align-items:flex-start;gap:.125rem;display:flex}.premium-badge-label{color:var(--text-primary);font-size:.75rem;font-weight:600;line-height:1}.premium-badge-sublabel{color:var(--text-muted);font-size:.625rem;line-height:1}.premium-gate{cursor:pointer;transition:all .2s;position:relative}.premium-gate--overlay .premium-gate-content{opacity:1;pointer-events:none;position:relative}.premium-gate--overlay .premium-gate-content .view-map-btn{background:linear-gradient(135deg,#ffc10714,#ff98000a);border:1.5px solid #ffc1074d;transition:all .3s;position:relative;overflow:visible}.premium-gate--overlay .premium-gate-content .view-map-btn:hover{background:linear-gradient(135deg,#ffc10726,#ff980014);border-color:#ffc10780;transform:translateY(-2px);box-shadow:0 0 20px #ffc10733,0 4px 12px #0000004d}.premium-gate:hover .premium-gate-content .view-map-btn{box-shadow:0 0 16px #ffc10726,0 2px 8px #0003}.premium-gate-lock{pointer-events:none;z-index:2;background:linear-gradient(135deg,#ffc10740,#ff980026);border:1.5px solid #ffc10780;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .3s;display:flex;position:absolute;top:50%;right:16px;transform:translateY(-50%);box-shadow:0 0 8px #ffc10733,inset 0 1px #ffffff1a}.premium-gate:hover .premium-gate-lock{background:linear-gradient(135deg,#ffc10759,#ff980040);border-color:#ffc107b3;transform:translateY(-50%)scale(1.05);box-shadow:0 0 16px #ffc10759,0 0 24px #ffc10726,inset 0 1px #fff3}.premium-gate-lock svg{filter:drop-shadow(0 2px 4px #0000004d)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes subtleShimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes gentlePulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes crownFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.upgrade-modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#000c;justify-content:center;align-items:center;padding:1rem;animation:.2s ease-out modalFadeIn;display:flex;position:fixed;inset:0}.upgrade-modal{text-align:center;background:linear-gradient(#141c26fa 0%,#0f1419fc 100%);border:1px solid #ffc10740;border-radius:20px;width:100%;max-width:440px;padding:2rem 2rem 1.75rem;animation:.25s ease-out modalSlideUp;position:relative;overflow:hidden;box-shadow:0 0 0 1px #0000004d,0 0 60px #ffc10714,0 25px 50px #00000080,inset 0 1px #ffffff0d}.upgrade-modal:before{content:"";pointer-events:none;background:radial-gradient(#ffc10714 0%,#0000 70%);width:120%;height:200px;position:absolute;top:-50%;left:50%;transform:translate(-50%)}.upgrade-modal-close{cursor:pointer;z-index:10;background:#ffffff14;border:1px solid #ffffff26;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex;position:absolute;top:1rem;right:1rem}.upgrade-modal-close svg{stroke:#fff9;flex-shrink:0;width:16px;height:16px}.upgrade-modal-close:hover{background:#ffffff1f;border-color:#ffffff40}.upgrade-modal-close:hover svg{stroke:#ffffffe6}.upgrade-modal-badge{background:linear-gradient(135deg,#ffc10733 0%,#ff98001f 50%,#ffc10733 100%);border:1px solid #ffc10766;border-radius:2rem;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.5rem 1.25rem;display:inline-flex;position:relative;overflow:hidden}.upgrade-modal-badge:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#ffd70026 50%,#0000 100%) 0 0/200% 100%;animation:4s ease-in-out infinite subtleShimmer;position:absolute;inset:0}.upgrade-modal-badge .badge-icon{filter:drop-shadow(0 2px 4px #ffc1074d);font-size:1rem;animation:3s ease-in-out infinite crownFloat}.upgrade-modal-badge .badge-text{letter-spacing:.12em;color:#ffd54f;text-shadow:0 1px 2px #0000004d;font-size:.6875rem;font-weight:700}.upgrade-modal-title{color:#fff;letter-spacing:-.01em;margin:0 0 .625rem;font-size:1.625rem;font-weight:700}.upgrade-modal-description{color:#ffffff8c;text-align:center;margin:0 0 1.75rem;padding:0 2rem;font-size:.9375rem;line-height:1.5}.upgrade-modal-pricing{background:linear-gradient(135deg,#00ff880a 0%,#ffc1070a 100%);border:1px solid #ffffff14;border-radius:14px;margin-top:1.5rem;margin-bottom:1.5rem;padding:1.5rem 1.25rem;position:relative}.upgrade-modal-pricing:before{content:"";background:linear-gradient(90deg,#0000,#00ff884d,#ffc1074d,#0000);height:1px;position:absolute;top:0;left:0;right:0}.upgrade-modal-pricing .pricing-trial{margin-bottom:.75rem}.upgrade-modal-pricing .trial-badge{color:#0f8;text-shadow:0 0 10px #00ff884d;background:linear-gradient(135deg,#00ff8826,#00c8641a);border:1px solid #00ff8859;border-radius:2rem;align-items:center;gap:.375rem;padding:.5rem 1rem;font-size:.875rem;font-weight:600;display:inline-flex}.upgrade-modal-pricing .pricing-amount{justify-content:center;align-items:baseline;gap:.25rem;margin-bottom:.25rem;display:flex}.upgrade-modal-pricing .pricing-after{color:#fff9;margin-bottom:.25rem;font-size:1rem}.upgrade-modal-pricing .pricing-after strong{color:#ffd54f;text-shadow:0 0 20px #ffc10740;font-size:1.75rem;font-weight:700}.upgrade-modal-pricing .pricing-note{color:#fff6;font-size:.8125rem}.upgrade-modal-login{margin-bottom:1.5rem}.upgrade-modal-login .login-prompt{color:#ffffff80;margin:0 0 1rem;font-size:.875rem}.upgrade-modal-login .login-buttons{flex-direction:column;gap:.625rem;width:100%;max-width:280px;margin:0 auto;display:flex}.upgrade-modal-login .login-buttons .login-btn{justify-content:center;width:100%;padding:12px 16px}.upgrade-modal-login .login-buttons .login-btn-text{text-align:center;flex:none}.upgrade-modal-actions{flex-direction:column;gap:.625rem;margin-bottom:1.75rem;display:flex}.upgrade-modal-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;padding:.9375rem 1.5rem;font-size:.9375rem;font-weight:600;transition:all .2s;display:inline-flex;position:relative;overflow:hidden}.upgrade-modal-btn--primary{color:#1a1400;text-shadow:0 1px #fff3;background:linear-gradient(135deg,#ffc107 0%,#ffab00 50%,#ff9800 100%);box-shadow:0 4px 16px #ffc10759,inset 0 1px #ffffff40}.upgrade-modal-btn--primary:before{content:"";opacity:0;background:linear-gradient(90deg,#0000 0%,#fff3 50%,#0000 100%) 0 0/200% 100%;transition:opacity .2s;position:absolute;inset:0}.upgrade-modal-btn--primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 24px #ffc10773,inset 0 1px #ffffff4d}.upgrade-modal-btn--primary:hover:not(:disabled):before{opacity:1;animation:1.5s ease-in-out subtleShimmer}.upgrade-modal-btn--primary:active:not(:disabled){transform:translateY(0);box-shadow:0 2px 8px #ffc1074d}.upgrade-modal-btn--secondary{color:#fff9;background:#ffffff0a;border:1px solid #ffffff1a}.upgrade-modal-btn--secondary:hover{color:#ffffffd9;background:#ffffff14;border-color:#ffffff2e}.upgrade-modal-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.upgrade-modal-error{color:#ff5252;background:#ff52521a;border-radius:6px;margin:-.5rem 0 1rem;padding:.5rem;font-size:.875rem}.upgrade-modal-features{text-align:left;background:#0003;border:1px solid #ffffff0a;border-radius:10px;grid-template-columns:1fr 1fr;gap:.625rem 1rem;padding:.75rem .5rem;display:grid}.upgrade-modal-features .feature-item{color:#ffffffb3;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.8125rem;transition:color .15s;display:flex}.upgrade-modal-features .feature-item:hover{color:#ffffffe6}.upgrade-modal-features .feature-check{color:#0f8;background:#00ff881f;border:1px solid #00ff884d;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:18px;height:18px;font-size:.625rem;display:flex}@media (max-width:768px){.upgrade-modal-overlay{align-items:flex-end;padding:0}.upgrade-modal{border-radius:var(--bottom-sheet-radius,20px)var(--bottom-sheet-radius,20px)0 0;width:100%;max-width:none;padding:1.5rem;padding-bottom:calc(1.5rem + var(--safe-area-bottom,0px));max-height:90dvh;animation:.3s cubic-bezier(.4,0,.2,1) modalSlideUpMobile;overflow-y:auto}@keyframes modalSlideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}.upgrade-modal:after{content:"";width:var(--bottom-sheet-handle-width,40px);height:var(--bottom-sheet-handle-height,4px);z-index:1;background:#ffffff4d;border-radius:2px;position:absolute;top:10px;left:50%;transform:translate(-50%)}.upgrade-modal-close{background:#ffffff1a;border:1px solid #fff3;width:40px;height:40px;top:1rem;right:1rem}.upgrade-modal-close svg{stroke:#ffffffb3;width:18px;height:18px}.upgrade-modal-close:active{background:#ffffff26;transform:scale(.95)}.upgrade-modal-badge{margin-top:1.5rem;margin-bottom:1.25rem}.upgrade-modal-title{font-size:1.375rem}.upgrade-modal-description{margin-bottom:1.25rem;font-size:.875rem}.upgrade-modal-pricing{margin-bottom:1.25rem;padding:1.25rem 1rem}.upgrade-modal-pricing .trial-badge{padding:.4rem .875rem;font-size:.8125rem}.upgrade-modal-pricing .pricing-after strong{font-size:1.5rem}.upgrade-modal-pricing .pricing-note{font-size:.75rem}.upgrade-modal-actions{gap:.5rem;margin-bottom:1.25rem}.upgrade-modal-btn{min-height:var(--touch-target-min,44px);padding:.875rem 1.25rem;font-size:.875rem}.upgrade-modal-features{grid-template-columns:1fr;gap:.5rem;padding:.75rem}.upgrade-modal-features .feature-item{font-size:.8125rem}.premium-badge{padding:.625rem 1rem}.premium-badge--compact{padding:.5rem .75rem}.premium-gate{justify-content:space-between;align-items:center;width:calc(100% + 32px);margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px;display:flex}.premium-gate-content{flex:none;margin:0;padding:0}.premium-gate-lock{flex-shrink:0;width:36px;height:36px;margin:0;position:relative;top:auto;right:auto;transform:none}.premium-gate--overlay .premium-gate-content .view-map-btn{padding-right:14px}}@media (max-width:480px){.upgrade-modal{padding:1.25rem;padding-bottom:calc(1.25rem + var(--safe-area-bottom,0px))}.upgrade-modal-title{font-size:1.25rem}.upgrade-modal-description{font-size:.8125rem}.upgrade-modal-pricing .trial-badge{font-size:.75rem}.upgrade-modal-pricing .pricing-after strong{font-size:1.375rem}.upgrade-modal-btn{padding:.75rem 1rem;font-size:.8125rem}.upgrade-modal-features .feature-item{font-size:.75rem}}.plan-toggle{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:12px;align-items:center;width:fit-content;margin:0 auto 1.25rem;padding:4px;display:flex}.plan-toggle-btn{cursor:pointer;color:#ffffff73;background:0 0;border:none;border-radius:9px;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;transition:all .2s;display:flex;position:relative}.plan-toggle-btn:hover:not(.plan-toggle-btn--active){color:#ffffffb3}.plan-toggle-btn--active{color:#0f8;background:linear-gradient(135deg,#00ff8826,#00c8641a);box-shadow:0 0 12px #00ff8826}.plan-toggle-badge{letter-spacing:.05em;text-transform:uppercase;color:#1a1400;white-space:nowrap;background:linear-gradient(135deg,#ffd54f,#ffab00);border-radius:6px;align-items:center;padding:.2rem .5rem;font-size:.625rem;font-weight:700;display:inline-flex}.price-equivalent{color:#fff6;text-align:center;margin:.5rem 0 0;font-size:.8125rem;font-weight:400}.upgrade-modal .plan-toggle{margin-bottom:1rem}.upgrade-modal .plan-toggle-btn{padding:.5rem 1rem;font-size:.8125rem}.upgrade-modal .price-equivalent{margin:.375rem 0 0;font-size:.8125rem}
