.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0a0a0a,#1a1a1a);padding:20px}.error-boundary-content{max-width:600px;text-align:center;background:#ffffff0d;border:1px solid rgba(0,255,136,.2);border-radius:12px;padding:40px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.error-icon{font-size:64px;margin-bottom:20px;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}.error-boundary-content h1{color:#0f8;font-size:28px;margin-bottom:16px;font-weight:600}.error-message{color:#e0e0e0;font-size:16px;line-height:1.6;margin-bottom:30px}.error-details{text-align:left;margin:20px 0;background:#0000004d;border:1px solid rgba(255,0,0,.3);border-radius:8px;padding:15px}.error-details summary{color:#ff6b6b;cursor:pointer;font-weight:600;margin-bottom:10px}.error-stack{color:#ff6b6b;font-size:12px;font-family:Courier New,monospace;overflow-x:auto;white-space:pre-wrap;word-wrap:break-word;margin-top:10px}.error-actions{display:flex;gap:15px;justify-content:center;flex-wrap:wrap}.error-actions button{padding:12px 30px;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s ease}.btn-primary{background:#0f8;color:#0a0a0a}.btn-primary:hover{background:#00cc6f;transform:translateY(-2px);box-shadow:0 4px 12px #00ff884d}.btn-secondary{background:#ffffff1a;color:#e0e0e0;border:1px solid rgba(255,255,255,.2)}.btn-secondary:hover{background:#ffffff26;transform:translateY(-2px)}.toast-container{position:fixed;top:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:10px;max-width:400px}.toast{display:flex;align-items:center;gap:12px;padding:16px 20px;border-radius:8px;background:#1a1a1af2;border:1px solid;box-shadow:0 4px 12px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:slideIn .3s ease-out;min-width:300px}.toast-exit{animation:slideOut .3s ease-out forwards}@keyframes slideIn{0%{transform:translate(400px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(400px);opacity:0}}.toast-icon{font-size:20px;font-weight:700;flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%}.toast-message{flex:1;color:#e0e0e0;font-size:14px;line-height:1.4}.toast-close{background:none;border:none;color:#e0e0e0;font-size:24px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .2s;flex-shrink:0}.toast-close:hover{opacity:1}.toast-success{border-color:#0f8}.toast-success .toast-icon{color:#0f8;background:#00ff881a}.toast-error{border-color:#ff6b6b}.toast-error .toast-icon{color:#ff6b6b;background:#ff6b6b1a}.toast-warning{border-color:#ffd93d}.toast-warning .toast-icon{color:#ffd93d;background:#ffd93d1a}.toast-info{border-color:#6bcbff}.toast-info .toast-icon{color:#6bcbff;background:#6bcbff1a}@media (max-width: 768px){.toast-container{top:10px;right:10px;left:10px;max-width:none}.toast{min-width:auto}}.call-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483000;background:#020617d1;display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:call-overlay-fade var(--transition-normal)}.call-modal{position:relative;width:min(1024px,100%);height:min(92vh,760px);border-radius:var(--radius-lg);overflow:hidden;background:#020617;color:#fff;border:1px solid rgba(255,255,255,.08);box-shadow:0 30px 80px #02061799;animation:call-modal-in var(--transition-normal)}.call-ringing{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-6);background:radial-gradient(circle at 10% 20%,#1e293b,#020617 65%)}.caller-info{text-align:center;margin-bottom:var(--space-6)}.caller-avatar{width:110px;height:110px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:42px;font-weight:700;background:linear-gradient(145deg,#2563eb,#8b5cf6);margin-bottom:var(--space-3)}.caller-info h2{margin:0;font-size:30px}.caller-info p{margin-top:var(--space-2);color:#cbd5e1}.call-actions{display:flex;gap:var(--space-3)}.accept-button,.reject-button{border:none;border-radius:999px;padding:12px 22px;font-size:15px;font-weight:700;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-normal),filter var(--transition-normal)}.accept-button:hover,.reject-button:hover{transform:translateY(-1px)}.accept-button{background:#16a34a;color:#fff;box-shadow:0 10px 20px #16a34a4d}.reject-button{background:#dc2626;color:#fff;box-shadow:0 10px 20px #dc26264d}.call-active{position:relative;height:100%}.video-container{position:absolute;top:0;right:0;bottom:0;left:0;background:#020617}.call-top-bar{position:absolute;top:0;left:0;right:0;z-index:5;padding:16px 18px 30px;background:linear-gradient(180deg,#020617d9,#02061700)}.call-top-bar h3{margin:0;font-size:20px;font-weight:700}.call-top-bar p{margin:6px 0 0;color:#cbd5e1;font-size:13px}.remote-video{width:100%;height:100%;object-fit:contain;background:#020617}.remote-video.audio-fallback{opacity:.18}.local-video{position:absolute;z-index:6;right:18px;top:76px;width:clamp(120px,22vw,240px);aspect-ratio:9 / 16;object-fit:cover;border-radius:var(--radius-md);border:2px solid rgba(255,255,255,.92);box-shadow:0 12px 30px #00000073;transform:scaleX(-1);background:#0f172a}.local-video-unavailable{position:absolute;z-index:6;right:18px;top:76px;width:clamp(120px,22vw,240px);aspect-ratio:9 / 16;border-radius:var(--radius-md);border:2px solid rgba(255,255,255,.4);background:#0f172acc;color:#cbd5e1;display:flex;align-items:center;justify-content:center;font-size:12px;text-align:center;padding:8px}.voice-call-display{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}.caller-avatar-large{width:140px;height:140px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:56px;font-weight:700;background:linear-gradient(145deg,#2563eb,#8b5cf6);margin-bottom:18px}.voice-call-display h2{margin:0;font-size:34px}.call-status-text{margin-top:var(--space-3);color:#cbd5e1}.call-controls{position:absolute;z-index:8;left:50%;transform:translate(-50%);bottom:var(--space-5);width:min(96%,560px);display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2);padding:var(--space-2);border-radius:999px;background:#020617bd;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12)}.audio-output-selector{height:46px;border-radius:999px;padding:0 10px;background:#ffffff1f;color:#fff;display:inline-flex;align-items:center;gap:8px;min-width:168px}.audio-output-icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;color:#dbeafe}.audio-output-icon svg{width:18px;height:18px}.audio-output-dropdown{border:none;background:transparent;color:#fff;font-weight:700;font-size:13px;outline:none;width:100%;cursor:pointer}.audio-output-dropdown option{color:#0f172a}.control-button{min-width:104px;height:46px;border:none;border-radius:999px;background:#ffffff1f;color:#fff;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:transform var(--transition-fast),background-color var(--transition-fast),box-shadow var(--transition-normal)}.control-button:hover{transform:translateY(-1px);background:#fff3}.control-button.active{background:#f59e0b}.control-button.end-call{background:#dc2626}.control-button .icon{font-size:12px;letter-spacing:.2px}.call-ended{height:100%;display:flex;align-items:center;justify-content:center}.call-error{position:absolute;z-index:9;left:50%;transform:translate(-50%);top:72px;padding:8px 14px;border-radius:999px;background:#ef4444eb;color:#fff;font-size:13px}.call-error p{margin:0}@keyframes call-overlay-fade{0%{opacity:0}to{opacity:1}}@keyframes call-modal-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@media (max-width: 768px){.call-modal-overlay{padding:0}.call-modal{width:100%;height:100%;border-radius:0}.call-top-bar{padding:14px 14px 24px}.call-top-bar h3{font-size:18px}.local-video,.local-video-unavailable{right:12px;top:66px;width:112px}.call-controls{bottom:18px;width:calc(100% - 20px);gap:8px}.control-button{min-width:88px;height:42px}.audio-output-selector{height:42px;min-width:138px;padding:0 8px}.caller-avatar-large{width:112px;height:112px;font-size:44px}.voice-call-display h2{font-size:26px}}.bee-loader{display:flex;align-items:center;justify-content:center;width:100%;min-height:240px;border-radius:18px;background:radial-gradient(circle at 24% 20%,rgba(95,130,234,.24),transparent 52%),radial-gradient(circle at 78% 75%,rgba(77,164,255,.16),transparent 48%),linear-gradient(145deg,#06142f,#0b2348 56%,#132f5c);border:1px solid rgba(138,171,234,.32)}.bee-loader--compact{min-height:180px}.bee-loader--inline{min-height:96px;border-radius:14px}.bee-loader--fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5000;min-height:100vh;border-radius:0;border:none}.bee-loader__panel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px 22px}.bee-loader--inline .bee-loader__panel{padding:10px 12px;gap:6px}.bee-loader__stage{position:relative;width:168px;height:168px;border-radius:50%;background:radial-gradient(circle,rgba(125,162,235,.2) 0%,rgba(13,31,61,.12) 65%,transparent 100%);border:1px solid rgba(165,194,248,.24);display:flex;align-items:center;justify-content:center;overflow:hidden;--bee-progress: 0%}.bee-loader__ring{position:absolute;top:5px;right:5px;bottom:5px;left:5px;border-radius:50%;background:conic-gradient(from -90deg,rgba(113,165,255,.98) 0%,rgba(154,195,255,.95) var(--bee-progress),rgba(117,153,219,.17) var(--bee-progress),rgba(117,153,219,.17) 100%);-webkit-mask:radial-gradient(circle,transparent 70%,#000 72%);mask:radial-gradient(circle,transparent 70%,#000 72%);box-shadow:0 0 20px #6c9dfd59}.bee-loader--inline .bee-loader__stage{width:76px;height:76px}.bee-loader__bee-motion{position:absolute;width:104px;height:104px;display:flex;align-items:center;justify-content:center;animation:bee-jitter 2.2s ease-in-out infinite}.bee-loader--inline .bee-loader__bee-motion{width:56px;height:56px}.bee-loader__logo{width:80px;height:80px;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(126,160,244,.38));animation:bee-logo-pulse 1.7s ease-in-out infinite}.bee-loader--inline .bee-loader__logo{width:46px;height:46px}.bee-loader__percent{position:static;font-size:1.15rem;font-weight:700;letter-spacing:.02em;color:#e9f3ff;text-shadow:0 2px 8px rgba(9,31,66,.44);pointer-events:none;line-height:1}.bee-loader--inline .bee-loader__percent{font-size:.74rem}.bee-loader__message{margin:0;font-size:.95rem;font-weight:600;color:#d8e9ff;letter-spacing:.01em}.bee-loader--inline .bee-loader__message{font-size:.78rem}@keyframes bee-jitter{0%{transform:translate(0) rotate(0) scale(1)}14%{transform:translate(14px,-12px) rotate(6deg) scale(1.03)}28%{transform:translate(-16px,-9px) rotate(-7deg) scale(.97)}42%{transform:translate(11px,14px) rotate(5deg) scale(1.02)}56%{transform:translate(-13px,16px) rotate(-6deg) scale(.98)}70%{transform:translate(16px,4px) rotate(7deg) scale(1.03)}84%{transform:translate(-14px,-14px) rotate(-5deg) scale(.98)}to{transform:translate(0) rotate(0) scale(1)}}@keyframes bee-logo-pulse{0%{transform:scale(.96);opacity:.9}50%{transform:scale(1.03);opacity:1}to{transform:scale(.96);opacity:.9}}@media (max-width: 768px){.bee-loader{min-height:210px}.bee-loader__stage{width:146px;height:146px}.bee-loader__bee-motion{width:92px;height:92px}.bee-loader__logo{width:70px;height:70px}.bee-loader__percent{font-size:1.02rem}}.app-loading-fallback{display:flex;align-items:center;justify-content:center;height:100vh;background:var(--bg-primary);color:var(--text-primary)}.app-update-banner{position:fixed;top:14px;left:50%;transform:translate(-50%);z-index:9999;display:inline-flex;align-items:center;gap:.75rem;padding:.58rem .82rem;border-radius:999px;border:1px solid rgba(147,174,224,.45);background:#0b234df0;color:#f8fbff;box-shadow:0 12px 24px #0817343d;font-size:.9rem;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.app-update-btn{border:none;border-radius:999px;background:linear-gradient(120deg,#3058cc,#5f82ea);color:#fff;padding:.42rem .88rem;font-size:.84rem;font-weight:650;cursor:pointer}.app-update-btn:hover{filter:brightness(1.04)}.app-loading-inner{text-align:center}.app-loading-spinner{width:48px;height:48px;border:3px solid var(--border-subtle);border-top-color:var(--color-primary);border-radius:50%;margin:0 auto var(--space-4);animation:app-spin .9s linear infinite}@keyframes app-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.landing-page{position:relative;min-height:100vh;height:100dvh;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;padding:2.2rem 1rem calc(4.6rem + env(safe-area-inset-bottom));background:radial-gradient(980px 520px at 12% -10%,rgba(37,99,235,.18),transparent 72%),radial-gradient(940px 520px at 94% 72%,rgba(124,58,237,.11),transparent 74%),linear-gradient(180deg,#e9eff9,#f3f7fc 46%,#ecf1f9)}.landing-page:after{content:"";position:absolute;left:0;right:0;bottom:0;height:130px;background:linear-gradient(180deg,#f0f5fc00,#ffffffc7 60%,#fffffff2);pointer-events:none}.landing-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(17,41,84,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(17,41,84,.06) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.85) 0%,transparent 88%);mask-image:linear-gradient(180deg,rgba(0,0,0,.85) 0%,transparent 88%);pointer-events:none}.landing-orb{position:absolute;width:300px;height:300px;border-radius:999px;filter:blur(50px);opacity:.35;pointer-events:none}.landing-orb-left{left:-120px;top:160px;background:#3a67de;animation:landingFloatA 10s ease-in-out infinite}.landing-orb-right{right:-110px;top:220px;background:#6d63ea;animation:landingFloatB 12s ease-in-out infinite}.landing-content{width:min(1180px,100%);margin:0 auto;position:relative;z-index:2;opacity:0;transform:translateY(14px);transition:opacity .38s ease,transform .38s ease}.landing-content.visible{opacity:1;transform:translateY(0)}.landing-topbar{display:flex;align-items:center;justify-content:space-between;gap:.8rem;background:linear-gradient(120deg,#0c2348,#183666 46%,#2b4f81);border:1px solid rgba(151,182,236,.25);border-radius:20px;padding:.96rem 1.15rem;box-shadow:0 15px 30px #1022403d}.landing-brand{display:inline-flex;align-items:baseline;gap:.06em;font-family:Manrope,Inter,Segoe UI,sans-serif;font-size:clamp(1.7rem,2.4vw,2.3rem);font-weight:800;letter-spacing:-.03em}.landing-brand-main{color:#f5f9ff}.landing-brand-accent{background:linear-gradient(120deg,#94b4ff,#6f98ff);-webkit-background-clip:text;background-clip:text;color:transparent}.landing-topbar-actions{display:inline-flex;align-items:center;gap:.7rem}.landing-btn-primary,.landing-btn-secondary{border-radius:11px;border:1px solid transparent;padding:.66rem 1.18rem;font-family:Manrope,Inter,Segoe UI,sans-serif;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-normal),filter var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.landing-btn-primary{color:#eef5ff;background:linear-gradient(120deg,#1f4eb8,#3f68e3 52%,#6282f2);box-shadow:0 10px 22px #18346d52}.landing-btn-secondary{color:#ecf3ff;background:#ffffff14;border-color:#c2d6fa61}.landing-cta-row .landing-btn-secondary{color:#0f1f3a;border-color:#8ba2c8cc;background:#ffffffb8}.landing-btn-primary:hover,.landing-btn-secondary:hover{transform:translateY(-1px)}.landing-btn-secondary:hover{background:#ffffff29}.landing-btn-lg{padding:.85rem 1.32rem;font-size:.98rem}.landing-hero{margin-top:1.15rem;display:grid;grid-template-columns:1.06fr .94fr;gap:1.2rem}.landing-copy{border:none;border-radius:0;background:transparent;box-shadow:none;padding:.45rem .25rem .2rem;display:flex;flex-direction:column;justify-content:center}.landing-eyebrow{margin:0 0 1rem;color:#1f2d45;font-size:.75rem;letter-spacing:.12em;font-weight:800;display:inline-flex;align-items:center;width:fit-content;padding:.44rem .8rem;border-radius:999px;border:1.5px solid rgba(108,140,211,.82);background:transparent;position:relative;isolation:isolate;overflow:visible;box-shadow:0 0 0 1px #96b4ee47,0 0 14px #6585ce57,0 0 28px #7495df33;animation:landingEyebrowGlow 2.8s ease-in-out infinite}.landing-eyebrow:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;border-radius:inherit;padding:2px;background:linear-gradient(115deg,transparent 0%,transparent 34%,rgba(199,224,255,.1) 42%,rgba(223,238,255,.95) 50%,rgba(164,200,255,.45) 55%,transparent 64%,transparent 100%);background-size:230% 100%;background-position:130% 50%;-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:landingEyebrowShimmer 2s linear infinite;pointer-events:none}.landing-title{margin:0;color:#081c44;font-family:Manrope,Inter,Segoe UI,sans-serif;font-size:clamp(2.15rem,4.2vw,4.05rem);line-height:1.02;letter-spacing:-.03em;max-width:15ch}.landing-subtitle{margin:1rem 0 0;color:#1d2f4f;font-size:1.06rem;max-width:48ch;line-height:1.38}.landing-cta-row{margin-top:1.35rem;display:flex;align-items:center;gap:.62rem;flex-wrap:wrap}.landing-highlights{margin-top:1.1rem;display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap}.landing-highlight{border:1px solid rgba(163,184,220,.58);border-radius:999px;background:#eef4ffbd;color:#233f73;font-size:.87rem;font-weight:500;padding:.38rem .68rem}.landing-radar-card{border:1px solid rgba(169,186,214,.56);border-radius:20px;background:linear-gradient(180deg,#fbfdff,#f3f7fc);box-shadow:0 20px 34px #11213e29;padding:1rem 1rem 1.05rem;display:flex;flex-direction:column;animation:landingRadarCard 2.8s ease-in-out infinite}@keyframes landingRadarCard{0%,to{border-color:#6c8cd3cc;box-shadow:0 0 0 1px #96b4ee47,0 0 12px #6585ce47,0 0 24px #7495df29}50%{border-color:#94b2eefa;box-shadow:0 0 0 1px #aac6f59c,0 0 20px #7092dca2,0 0 40px #7a9ce699}}.landing-radar-head{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-bottom:.65rem}.landing-radar-head h3{margin:0;color:#10274b;font-family:Manrope,Inter,Segoe UI,sans-serif;font-size:1.05rem}.landing-live-pill{color:#142648;background:#e6ebf4;border:1px solid #d0d7e3;border-radius:999px;font-size:.78rem;padding:.3rem .6rem;font-weight:500}.landing-radar-wrap{border:none;border-radius:16px;background:radial-gradient(circle at 50% 50%,#dbe6f84d,#fffffff2 64%);padding:.3rem;animation:landingCardFloat 5s ease-in-out infinite}.landing-page .radar-container{position:relative;width:100%;max-width:430px;margin:0 auto;aspect-ratio:1 / 1;border-radius:14px}.landing-page .radar-canvas{width:100%;height:100%}.radar-dots{position:absolute;top:0;right:0;bottom:0;left:0}.radar-dot{position:absolute;width:16px;height:16px;border:2px solid #edf4ff;border-radius:999px;transform:translate(-50%,-50%);box-shadow:0 0 0 6px #4368bf29,0 0 18px #4368bf6b;animation:landingDotPulse 1.9s ease-in-out infinite;cursor:pointer}.radar-dot:hover{transform:translate(-50%,-50%) scale(1.22)}.dot-tooltip{position:absolute;left:50%;bottom:135%;transform:translate(-50%);border-radius:8px;padding:.22rem .5rem;background:#3b4450;color:#eaf3ff;font-size:.72rem;font-weight:700;white-space:nowrap}.radar-center{position:absolute;top:50%;left:50%;width:16px;height:16px;transform:translate(-50%,-50%);border-radius:999px;background:#3f68e3;box-shadow:0 0 0 8px #3f68e326,0 0 14px #3f68e38c}.landing-radar-note{margin:.58rem 0 0;color:#1d2f50;font-size:.93rem;text-align:center}.landing-features{margin-top:1.18rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.92rem}.landing-feature-card{border-radius:20px;background:linear-gradient(180deg,#fafdff,#f3f7fc);box-shadow:0 14px 28px #11213e4a;padding:1.2rem 1.05rem 1rem;transition:transform var(--transition-fast),box-shadow var(--transition-normal),border-color var(--transition-fast);border:2px solid rgba(98,128,192,.717)}.landing-feature-card:hover{transform:translateY(-2px);border-color:#6a90da7a;box-shadow:0 16px 30px #11213e24}.landing-feature-icon{width:46px;height:46px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;background:#e8f0ff;color:#2d57be}.landing-feature-icon svg{width:24px;height:24px}.landing-feature-card h4{margin:.72rem 0 0;font-family:Manrope,Inter,Segoe UI,sans-serif;font-size:1.05rem;color:#142b4f;letter-spacing:-.02em;font-weight:700}.landing-feature-card p{margin:.5rem 0 0;color:#263d63;font-size:.93rem;line-height:1.45}@keyframes landingCardFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes landingDotPulse{0%,to{opacity:1}50%{opacity:.62}}@keyframes landingFloatA{0%,to{transform:translateY(0)}50%{transform:translateY(18px)}}@keyframes landingFloatB{0%,to{transform:translateY(0)}50%{transform:translateY(-18px)}}@keyframes landingEyebrowGlow{0%,to{border-color:#6c8cd3cc;box-shadow:0 0 0 1px #96b4ee47,0 0 12px #6585ce47,0 0 24px #7495df29}50%{border-color:#94b2eefa;box-shadow:0 0 0 1px #aac6f566,0 0 20px #7092dc7a,0 0 40px #7a9de657}}@keyframes landingEyebrowShimmer{0%{background-position:130% 50%}to{background-position:-130% 50%}}@media (max-width: 1024px){.landing-content{width:min(760px,100%)}.landing-hero{grid-template-columns:1fr}.landing-copy{border:1px solid rgba(151,182,236,.28);border-radius:18px;background:linear-gradient(180deg,#fdfefe,#f5f9ff);box-shadow:0 16px 32px #11213e1f;padding:1.2rem 1rem}.landing-radar-card{padding-top:.9rem}.landing-features{grid-template-columns:1fr}}@media (max-width: 768px){.landing-page{padding:.85rem .7rem calc(5.2rem + env(safe-area-inset-bottom))}.landing-topbar{border-radius:14px;padding:.62rem .7rem}.landing-brand{font-size:1.9rem}.landing-topbar-actions{gap:.4rem}.landing-btn-primary,.landing-btn-secondary{padding:.54rem .72rem;font-size:.82rem}.landing-copy,.landing-radar-card{border-radius:14px;padding:.9rem .82rem}.landing-copy{border:none;background:transparent;box-shadow:none;padding:.2rem 0;gap:5px}.landing-title{font-size:clamp(1.55rem,8vw,2rem);max-width:100%}.landing-subtitle{margin-top:.7rem;font-size:.92rem}.landing-cta-row{gap:.5rem}.landing-btn-lg{width:100%;height:45px}.landing-highlight{font-size:.74rem}.landing-radar-note{font-size:.79rem}}.auth-page{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem;background:radial-gradient(1200px 520px at 10% -8%,rgba(37,99,235,.24),transparent 68%),radial-gradient(1200px 600px at 92% -10%,rgba(124,58,237,.18),transparent 72%),linear-gradient(180deg,#e8eef9,#f4f7fc 45%,#eef3fb);position:relative;overflow-x:hidden;overflow-y:auto}.auth-page:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(17,41,84,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(17,41,84,.07) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:linear-gradient(180deg,rgba(0,0,0,.78) 0%,transparent 86%);mask-image:linear-gradient(180deg,rgba(0,0,0,.78) 0%,transparent 86%);pointer-events:none}.auth-google-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;background:radial-gradient(900px 420px at 50% -10%,rgba(59,105,226,.25),transparent 72%),#eef4ffcc;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.auth-google-overlay__card{width:min(320px,calc(100vw - 2rem));border-radius:20px;border:1px solid rgba(150,179,238,.45);background:linear-gradient(160deg,#fffffff5,#f3f9fff2);box-shadow:0 18px 40px #15306738,inset 0 1px #ffffffd9;padding:1.35rem 1.25rem 1.2rem;text-align:center;animation:auth-overlay-rise .28s ease-out}.auth-google-overlay__spinner{width:38px;height:38px;margin:0 auto .75rem;border-radius:999px;border:3px solid rgba(59,105,226,.2);border-top-color:#2f5fd6;animation:auth-spinner .82s linear infinite}.auth-google-overlay__title{margin:0;color:#17386f;font-size:1.02rem;font-weight:700}.auth-google-overlay__subtitle{margin:.35rem 0 0;color:#5a74a0;font-size:.9rem}@keyframes auth-overlay-rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.auth-container{width:min(460px,100%);position:relative;z-index:1;border-radius:24px;padding:2rem;border:1px solid rgba(165,192,240,.35);box-shadow:0 24px 50px #0d1f4233,inset 0 1px #ffffffbf}.auth-container--login{background:linear-gradient(145deg,#fffffff2,#f5faffeb)}.auth-container--register{background:linear-gradient(145deg,#f5fafff2,#ecf4fff0)}.auth-logo{width:62px;height:62px;margin:0 auto 1rem;position:relative}.auth-logo-ring{width:100%;height:100%;border-radius:999px;border:2px solid rgba(53,109,220,.75);box-shadow:0 0 0 6px #5a87e21f;animation:auth-rotate 8s linear infinite}.auth-logo-pulse{width:12px;height:12px;border-radius:999px;background:#2c60df;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 20px #2c60df80;animation:auth-pulse 2s ease-in-out infinite}.auth-container h1{margin:0;text-align:center;font-size:clamp(1.85rem,2.4vw,2.35rem);color:#0d2347;letter-spacing:-.02em}.auth-title-highlight{background:linear-gradient(120deg,#1e4eb8,#3b6be8,#6d8df8);-webkit-background-clip:text;background-clip:text;color:transparent}.auth-subtitle{margin:.7rem 0 1.65rem;text-align:center;color:#5a6f96;font-size:.97rem}.auth-form{display:flex;flex-direction:column;gap:1.05rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-size:.84rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#2a4678}.form-group input{width:100%;border-radius:12px;border:1px solid #c8d8f0;background:#f8fbff;padding:.9rem .95rem;color:#12284a;font-size:.98rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.form-group input::placeholder{color:#8ba1c3}.form-group input:focus{border-color:#5d82e3;box-shadow:0 0 0 3px #5d82e329;background:#fff;outline:none}.password-input-wrapper{position:relative}.password-input-wrapper input{padding-right:2.8rem}.password-toggle{position:absolute;top:50%;right:.65rem;transform:translateY(-50%);width:32px;height:32px;border:none;border-radius:9px;background:transparent;color:#6f87ad;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.password-toggle svg{width:18px;height:18px}.password-toggle:hover{color:#2f5fd6;background:#4e75d61a}.error-message{border-radius:10px;border:1px solid rgba(220,38,38,.25);background:#fee2e2bf;color:#b91c1c;padding:.72rem .85rem;font-size:.9rem;font-weight:500}.success-message{border-radius:10px;border:1px solid rgba(22,163,74,.28);background:#dcfce7cc;color:#166534;padding:.72rem .85rem;font-size:.9rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.success-message:before{content:"✓";width:18px;height:18px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#16a34a24;color:#166534;font-size:.78rem;font-weight:800;flex-shrink:0}.dev-otp-hint{border-radius:10px;border:1px dashed rgba(37,99,235,.34);background:#dbeafec7;color:#1d4ed8;padding:.62rem .85rem;font-size:.9rem;font-weight:700;letter-spacing:.02em}.auth-button{margin-top:.25rem;border:1px solid rgba(169,196,249,.2);border-radius:12px;padding:.9rem 1rem;background:linear-gradient(120deg,#1f4eb8,#3f68e3 52%,#6282f2);color:#eef5ff;font-size:.98rem;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:transform var(--transition-fast),filter var(--transition-fast),box-shadow var(--transition-normal);box-shadow:0 14px 24px #1b397c3d}.auth-button:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.04)}.auth-button:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.auth-button-secondary{background:#f6f9ff;color:#315aaf;border:1px solid #ccdaf3;box-shadow:none}.auth-social-divider{margin:.2rem 0;position:relative;text-align:center;color:#6f84a8;font-size:.85rem}.auth-social-divider:before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px solid #d4e0f3}.auth-social-divider span{position:relative;padding:.1rem .9rem .3rem;background:#f8fbff;border:1px solid #d4e0f3;border-radius:40px;text-align:center}.google-signin-shell{display:flex;flex-direction:column;gap:.35rem}.google-signin-shell--busy{pointer-events:none}.google-signin-button{width:100%;min-height:44px;display:flex;justify-content:center}.google-fallback-button{width:100%;min-height:44px;border-radius:999px;border:1px solid #c8d8f0;background:#f8fbff;color:#274a92;font-weight:700;cursor:pointer}.google-signin-shell .status-note{margin:.1rem 0 0;color:#4c648d;font-size:.9rem}.google-signin-shell .status-note--animated{display:inline-flex;align-items:center;gap:.45rem}.google-signin-shell .status-note-spinner{width:14px;height:14px;border-radius:999px;border:2px solid rgba(59,105,226,.25);border-top-color:#2f5fd6;animation:auth-spinner .8s linear infinite;flex-shrink:0}@keyframes auth-spinner{to{transform:rotate(360deg)}}.auth-checkbox{display:inline-flex;align-items:center;gap:.45rem;color:#3f5f93;font-size:.92rem;-webkit-user-select:none;user-select:none}.auth-checkbox input{width:16px;height:16px}.auth-text-button{border:none;background:transparent;padding:0;color:#2f5fd6;font-weight:600;cursor:pointer}.auth-text-button:hover{color:#2149ac;text-decoration:underline}.auth-actions-row{display:flex;justify-content:space-between;align-items:center;gap:.7rem;flex-wrap:wrap}.auth-link{margin-top:1.25rem;text-align:center;color:#56709a;font-size:.92rem}.auth-link span{color:#2f5fd6;font-weight:700;cursor:pointer}.auth-link span:hover{color:#2149ac}.password-strength{display:grid;grid-template-columns:repeat(4,1fr);gap:.28rem;margin-top:.5rem}.strength-bar{height:4px;border-radius:999px;background:#d6e1f3;transition:background-color var(--transition-fast)}.strength-bar.active{background:#4f72dd}.strength-bar.weak{background:#ef4444}.strength-bar.medium{background:#f59e0b}.strength-bar.strong{background:#16a34a}.auth-page--login .auth-container:after,.auth-page--register .auth-container:after{content:"";position:absolute;width:170px;height:170px;border-radius:999px;right:-55px;top:-70px;pointer-events:none}.auth-page--login .auth-container:after{background:radial-gradient(circle,rgba(62,109,224,.2) 0%,transparent 70%)}.auth-page--register .auth-container:after{background:radial-gradient(circle,rgba(124,58,237,.2) 0%,transparent 70%)}@keyframes auth-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes auth-pulse{0%,to{transform:translate(-50%,-50%) scale(1);opacity:1}50%{transform:translate(-50%,-50%) scale(1.45);opacity:.45}}@media (max-width: 768px){.auth-page{padding:1.2rem .85rem}.auth-container{border-radius:18px;padding:1.45rem 1.2rem}.auth-logo{width:54px;height:54px;margin-bottom:.8rem}.auth-container h1{font-size:1.7rem}}.create-profile-page{min-height:100vh;height:100dvh;display:block;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scroll-behavior:smooth;scroll-padding-bottom:calc(7rem + env(safe-area-inset-bottom));padding:1.4rem 1rem calc(5.2rem + env(safe-area-inset-bottom));background:radial-gradient(1200px 520px at 10% -8%,rgba(37,99,235,.24),transparent 68%),radial-gradient(1200px 600px at 92% -10%,rgba(124,58,237,.18),transparent 72%),linear-gradient(180deg,#e8eef9,#f4f7fc 45%,#eef3fb)}.profile-container{width:min(700px,100%);margin:0 auto;border-radius:24px;padding:1.7rem 1.4rem 1.5rem;border:1px solid rgba(165,192,240,.35);box-shadow:0 24px 50px #0d1f4233,inset 0 1px #ffffffbf;background:linear-gradient(145deg,#f5fafff2,#ecf4fff0)}.profile-header{text-align:center}.profile-logo{width:56px;height:56px;margin:0 auto .9rem;position:relative}.profile-logo-ring{width:100%;height:100%;border-radius:999px;border:2px solid rgba(53,109,220,.75);box-shadow:0 0 0 6px #5a87e21f;animation:profile-rotate 8s linear infinite}.profile-logo-pulse{width:11px;height:11px;border-radius:999px;background:#2c60df;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 20px #2c60df85}.profile-header h1{margin:0;color:#0d2347;font-size:clamp(1.85rem,2.4vw,2.35rem);letter-spacing:-.02em}.profile-header p{margin:.55rem 0 0;color:#5a6f96;font-size:.95rem}.progress-shell{margin:1.25rem 0 .95rem}.progress-bar{display:flex;align-items:center;justify-content:center}.progress-step{width:38px;height:38px;border-radius:50%;background:#dbe4f3;color:#5e7396;display:flex;align-items:center;justify-content:center;font-weight:700;transition:all var(--transition-fast)}.progress-step.active{background:linear-gradient(120deg,#1f4eb8,#3f68e3 52%,#6282f2);color:#f1f6ff;box-shadow:0 10px 20px #21428b33}.progress-line{width:78px;height:3px;background:#dbe4f3;transition:background-color var(--transition-fast)}.progress-line.active{background:#5c80e5}.progress-labels{margin-top:.55rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}.progress-labels span{text-align:center;font-size:.79rem;color:#7087ab;font-weight:600}.progress-labels .active{color:#234ea8}.profile-form{display:flex;flex-direction:column}.form-step{display:flex;flex-direction:column;gap:1rem;background:linear-gradient(140deg,#ffffffbf,#f3f8ffb3);border:1px solid rgba(185,205,237,.55);border-radius:16px;padding:1rem}.form-step h2{margin:.2rem 0 0;color:#10274b;font-size:1.35rem}.form-group{display:flex;flex-direction:column;gap:.45rem;position:relative}.form-group label{color:#2a4678;font-size:.82rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.form-group input,.form-group textarea,.form-group select{width:100%;border-radius:12px;border:1px solid #c8d8f0;background:#f8fbff;padding:.84rem .9rem;color:#12284a;font-size:.96rem;font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast),transform var(--transition-fast)}.form-group input::placeholder,.form-group textarea::placeholder{color:#8ba1c3}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:#5d82e3;box-shadow:0 0 0 3px #5d82e329;background:#fff;transform:translateY(-1px)}.form-group textarea{resize:vertical;min-height:100px}.char-count{font-size:.83rem;color:#7087ab;text-align:right}.photo-preview{margin-top:.4rem}.photo-preview img{width:150px;height:150px;object-fit:cover;border-radius:12px;border:1px solid #c8d8f0;box-shadow:0 8px 20px #102a5a26}.status-note{margin:0;color:#4f6a97;font-size:.87rem}.location-suggestions{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #c8d8f0;border-radius:12px;box-shadow:0 12px 28px #0d1f4229;max-height:220px;overflow-y:auto;z-index:20}.location-suggestion-item{width:100%;border:none;border-bottom:1px solid #eef4ff;background:transparent;text-align:left;padding:.68rem .85rem;font-size:.93rem;color:#1c355f;cursor:pointer}.username-status-row{min-height:18px}.username-input-wrap{display:flex;align-items:center;border:1px solid #c8d8f0;border-radius:12px;background:#f8fbff;padding:0 .75rem;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.username-input-wrap:focus-within{border-color:#5d82e3;box-shadow:0 0 0 3px #5d82e329;background:#fff}.username-prefix{color:#1f4eb8;font-size:1rem;font-weight:700;margin-right:.2rem}.username-input-wrap input{border:none;background:transparent;box-shadow:none;padding:.84rem .2rem}.username-input-wrap input:focus{box-shadow:none;border:none;transform:none}.username-checking{font-size:.82rem;color:#5f76a3}.username-available{font-size:.82rem;color:#15803d;font-weight:600}.username-unavailable{font-size:.82rem;color:#b91c1c;font-weight:600}.username-suggestions{display:flex;flex-wrap:wrap;gap:.4rem}.username-suggestion-pill{border:1px solid #c8d8f0;background:#f6f9ff;color:#25457e;border-radius:999px;padding:.33rem .68rem;font-size:.82rem;cursor:pointer}.username-suggestion-pill:hover{background:#eef4ff}.location-suggestion-item:last-child{border-bottom:none}.location-suggestion-item:hover{background:#f1f6ff}.file-input-hidden{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.file-upload-trigger{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;border:1px solid #c5d7f5;border-radius:12px;padding:.76rem 1rem;background:linear-gradient(120deg,#f6f9ff,#eef4ff);color:#1f4eb8;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),filter var(--transition-fast);width:fit-content}.file-upload-trigger:hover{transform:translateY(-1px);box-shadow:0 10px 20px #1f4eb829;filter:brightness(1.01)}.file-upload-trigger svg{width:17px;height:17px}.selected-file-name{margin:0;color:#4f6a97;font-size:.85rem}.input-helper{margin:0;color:#54709b;font-size:.78rem}.button-group{display:flex;gap:.65rem;margin-top:.2rem}.next-button,.submit-button,.back-button{flex:1;border-radius:12px;padding:.88rem 1rem;font-size:.95rem;font-weight:700;cursor:pointer;transition:transform var(--transition-fast),filter var(--transition-fast),box-shadow var(--transition-normal)}.next-button,.submit-button{border:1px solid rgba(169,196,249,.2);color:#eef5ff;background:linear-gradient(120deg,#1f4eb8,#3f68e3 52%,#6282f2);box-shadow:0 14px 24px #1b397c3d}.next-button:hover,.submit-button:hover:not(:disabled),.back-button:hover{transform:translateY(-1px)}.submit-button:disabled{opacity:.65;cursor:not-allowed;box-shadow:none}.back-button{border:1px solid rgba(164,188,231,.5);color:#264375;background:#f4f8ff}.error-message,.info-message{border-radius:10px;padding:.72rem .85rem;font-size:.9rem;font-weight:600;text-align:center}.error-message{border:1px solid rgba(220,38,38,.25);background:#fee2e2bf;color:#b91c1c}.info-message{border:1px solid rgba(34,197,94,.25);background:#dcfce7bf;color:#166534;display:flex;align-items:center;justify-content:center;gap:.45rem}.info-message:before{content:"✓";width:18px;height:18px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#16a34a24;color:#166534;font-size:.78rem;font-weight:800;flex-shrink:0}@keyframes profile-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.create-profile-page{padding:1rem .85rem calc(5.8rem + env(safe-area-inset-bottom))}.profile-container{border-radius:18px;padding:1.3rem 1rem 1.1rem}.form-step{padding:.85rem;border-radius:14px}.progress-line{width:44px}.button-group{flex-direction:column}}*{margin:0;padding:0;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}::-webkit-scrollbar{display:hidden;width:0}html,body{overscroll-behavior-y:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;overflow-x:hidden;-ms-overflow-style:none;scrollbar-width:none}html{height:auto;min-height:100%;overflow-y:auto}body{height:auto;min-height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch}.message-text{-webkit-user-select:text;user-select:text}@media (max-width: 768px){.chat-pane.mobile-visible{animation:slideInRight .3s cubic-bezier(.25,.8,.25,1) forwards}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}:root{--color-primary: #2563eb;--color-secondary: #7c3aed;--color-accent: #ec4899;--bg-primary: #f4f7fb;--bg-elevated: #ffffff;--text-primary: #0f172a;--text-muted: #475569;--border-subtle: #dbe3ee;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 18px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--transition-fast: .15s ease;--transition-normal: .25s ease}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-primary);color:var(--text-primary);line-height:1.45}#root{width:100%;min-height:100%;overflow-x:hidden;overflow-y:visible;overscroll-behavior-y:none}html.route-chat-lock,body.route-chat-lock{width:100%;overflow:hidden}h1{font-size:clamp(1.75rem,2.3vw,2.4rem);line-height:1.2}h2{font-size:clamp(1.35rem,1.8vw,1.8rem);line-height:1.25}h3{font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.3}h4{font-size:1rem;line-height:1.35}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid rgba(37,99,235,.35);outline-offset:2px}
