@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Vazirmatn:wght@300;400;500;600;700&display=swap";:root{--bg: #0d0f1a;--bg2: #12152a;--bg3: #1a1f36;--glass: rgba(255,255,255,.04);--glass2: rgba(255,255,255,.08);--border: rgba(255,255,255,.08);--border2: rgba(255,255,255,.14);--accent: #6c63ff;--accent2: #8b5cf6;--accent-glow: rgba(108,99,255,.35);--bubble-out-bg: linear-gradient(135deg, #6c63ff, #8b5cf6);--bubble-in-bg: rgba(255,255,255,.07);--text: #e8eaf2;--text-muted: #7a82a0;--text-sub: #555c7a;--danger: #ff4d6d;--success: #22d3a5;--radius-sm: 10px;--radius: 16px;--radius-lg: 24px;--shadow: 0 8px 32px rgba(0,0,0,.5);--shadow-sm: 0 2px 12px rgba(0,0,0,.3);--font: "Inter", "Vazirmatn", sans-serif;--font-mono: "Courier New", "Courier", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--glass2);border-radius:99px}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(108,99,255,.2) 0%,transparent 60%),var(--bg);padding:1rem}.auth-card{width:100%;max-width:420px;background:var(--glass);border:1px solid var(--border2);border-radius:var(--radius-lg);padding:2rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow),0 0 60px #6c63ff1f;animation:fadeUp .4s ease}.logo-area{text-align:center;margin-bottom:2rem}.logo-icon{font-size:3rem;display:block;margin-bottom:.5rem;filter:drop-shadow(0 0 16px rgba(108,99,255,.7));animation:pulse 2.5s infinite}.logo-icon-sm{font-size:1.4rem;filter:drop-shadow(0 0 8px rgba(108,99,255,.6))}.logo-area h1{font-size:1.8rem;font-weight:700;background:linear-gradient(135deg,#a78bfa,#6c63ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.logo-sub{font-size:.8rem;color:var(--text-muted);margin-top:.25rem;letter-spacing:.5px}.auth-form{display:flex;flex-direction:column;gap:1rem}.field{display:flex;flex-direction:column;gap:.4rem}.field label{font-size:.8rem;font-weight:500;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.field input{background:var(--glass2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.75rem 1rem;color:var(--text);font-family:var(--font);font-size:.95rem;transition:border-color .2s,box-shadow .2s;outline:none}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.form-error{font-size:.85rem;color:var(--danger);text-align:center;background:rgba(255,77,109,.1);border-radius:var(--radius-sm);padding:.5rem}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;border:none;border-radius:var(--radius-sm);padding:.8rem 1.5rem;font-family:var(--font);font-size:.95rem;font-weight:600;cursor:pointer;transition:opacity .2s,transform .15s,box-shadow .2s;box-shadow:0 4px 16px var(--accent-glow)}.btn-primary:hover:not(:disabled){opacity:.9;transform:translateY(-1px);box-shadow:0 8px 24px var(--accent-glow)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:var(--glass2);color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.5rem 1rem;font-family:var(--font);font-size:.85rem;cursor:pointer;transition:background .2s,color .2s}.btn-ghost:hover{background:var(--glass2);color:var(--text);border-color:var(--border2)}.btn-icon{background:transparent;border:none;color:var(--text-muted);font-size:1.3rem;cursor:pointer;padding:.4rem;border-radius:8px;transition:color .2s,background .2s;line-height:1}.btn-icon:hover{color:var(--text);background:var(--glass2)}.btn-danger{color:var(--danger)!important}.btn-danger:hover{background:rgba(255,77,109,.1)!important}.btn-delete-msg{background:transparent;border:none;color:#fff3;font-size:.9rem;cursor:pointer;margin-left:4px;line-height:1;transition:color .2s}.btn-delete-msg:hover{color:var(--danger)}.dashboard-page{height:100vh;display:flex;flex-direction:column;background:radial-gradient(ellipse 100% 40% at 50% 0%,rgba(108,99,255,.12) 0%,transparent 60%),var(--bg)}.dash-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;background:var(--glass);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.dash-title{display:flex;align-items:center;gap:.5rem;font-size:1.15rem;font-weight:700;background:linear-gradient(135deg,#a78bfa,#6c63ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.dash-content{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.add-friend-form-vertical{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem;background:rgba(255,255,255,.05);padding:1.25rem;border-radius:1rem;border:1px solid rgba(255,255,255,.1)}.add-friend-form-vertical input{padding:.75rem 1rem;background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.1);border-radius:.5rem;color:#fff;font-size:.95rem}.add-friend-form-vertical input:focus{outline:none;border-color:var(--accent-blue);background:rgba(0,0,0,.3)}.add-friend-form{display:flex;gap:.5rem}.add-friend-form input{flex:1;background:var(--glass2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.7rem 1rem;color:var(--text);font-family:var(--font);font-size:.9rem;outline:none;transition:border-color .2s}.add-friend-form input:focus{border-color:var(--accent)}.add-friend-form input::placeholder{color:var(--text-sub)}.add-friend-form .btn-primary{padding:.7rem 1.2rem;white-space:nowrap}.friend-list{list-style:none;display:flex;flex-direction:column;gap:.6rem}.friend-card{display:flex;align-items:center;gap:.85rem;background:var(--glass);border:1px solid var(--border);border-radius:var(--radius);padding:.85rem 1rem;cursor:pointer;transition:background .2s,border-color .2s,transform .15s}.friend-card:hover{background:var(--glass2);border-color:var(--border2);transform:translateY(-1px)}.friend-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:700;color:#fff;flex-shrink:0;box-shadow:0 0 12px var(--accent-glow)}.friend-info{flex:1;min-width:0}.friend-name{font-weight:600;font-size:.95rem}.friend-link-preview{font-size:.72rem;color:var(--text-sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.friend-actions{display:flex;align-items:center;gap:.25rem}.unread-badge{background:var(--accent);color:#fff;font-size:.72rem;font-weight:700;border-radius:99px;min-width:20px;height:20px;display:flex;align-items:center;justify-content:center;padding:0 5px;box-shadow:0 0 8px var(--accent-glow)}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;color:var(--text-muted);font-size:.9rem;text-align:center;padding:2rem}.empty-state span{font-size:2.5rem}.chat-page{height:100vh;display:flex;flex-direction:column;background:var(--bg)}.chat-header{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;background:var(--glass);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:sticky;top:0;z-index:10}.chat-header-info{display:flex;align-items:center;gap:.65rem;flex:1;min-width:0}.chat-avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:#fff;flex-shrink:0;box-shadow:0 0 10px var(--accent-glow)}.chat-name{font-weight:600;font-size:.95rem}.chat-sub{font-size:.72rem;color:var(--text-muted)}.messages-area{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.5rem;position:relative}.bubble-row{display:flex;animation:fadeUp .25s ease}.bubble-row.outgoing{justify-content:flex-end}.bubble-row.incoming{justify-content:flex-start}.bubble{max-width:78%;padding:.65rem .9rem;border-radius:16px;position:relative}.bubble-out{background:var(--bubble-out-bg);border-bottom-right-radius:4px;box-shadow:0 4px 16px var(--accent-glow)}.bubble-in{background:var(--bubble-in-bg);border:1px solid var(--border);border-bottom-left-radius:4px}.bubble-radio{background:#0a0f1e!important;border:1px solid rgba(108,99,255,.4)!important;box-shadow:0 0 16px #6c63ff33!important}.bubble-text{font-size:.92rem;word-break:break-word;white-space:pre-wrap}.radio-numbers{font-family:var(--font-mono);font-size:.82rem;color:#7cfc9f;letter-spacing:1px;line-height:1.6;display:block}.bubble-meta{display:flex;align-items:center;justify-content:flex-end;gap:4px;margin-top:4px}.bubble-time{font-size:.68rem;color:#fff6}.encode-input-container{background:var(--bg2);border-top:1px solid var(--border);padding:.75rem .75rem calc(.75rem + env(safe-area-inset-bottom))}.compose-row{display:flex;align-items:flex-end;gap:.5rem}.compose-textarea{flex:1;background:var(--glass2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:.65rem .85rem;color:var(--text);font-family:var(--font);font-size:.92rem;resize:none;outline:none;max-height:120px;overflow-y:auto;transition:border-color .2s;line-height:1.45}.compose-textarea:focus{border-color:var(--accent)}.compose-textarea::placeholder{color:var(--text-sub)}.compose-buttons{display:flex;gap:.4rem}.btn-encode{width:42px;height:42px;border-radius:50%;background:var(--glass2);border:1px solid var(--border2);font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .15s,box-shadow .2s;flex-shrink:0}.btn-encode:hover:not(:disabled){background:rgba(108,99,255,.2);border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow);transform:scale(1.08)}.btn-encode:disabled{opacity:.4;cursor:not-allowed}.btn-send{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));border:none;color:#fff;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:opacity .2s,transform .15s,box-shadow .2s;box-shadow:0 4px 12px var(--accent-glow);flex-shrink:0}.btn-send:hover:not(:disabled){opacity:.88;transform:scale(1.08);box-shadow:0 6px 20px var(--accent-glow)}.btn-send:disabled{opacity:.4;cursor:not-allowed}.radio-preview{background:#07091a;border:1px solid rgba(108,99,255,.4);border-radius:var(--radius);padding:1rem;box-shadow:0 0 24px #6c63ff2e,inset 0 0 40px #6c63ff0a;animation:fadeUp .2s ease}.radio-preview-label{font-size:.75rem;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:1px;margin-bottom:.6rem}.radio-preview-numbers{font-family:var(--font-mono);font-size:.85rem;color:#7cfc9f;letter-spacing:1.5px;line-height:1.7;word-break:break-all;max-height:100px;overflow-y:auto;margin-bottom:.75rem;text-shadow:0 0 8px rgba(124,252,159,.4)}.radio-preview-actions{display:flex;gap:.5rem;justify-content:flex-end}.sent-toast{text-align:center;font-size:.85rem;color:var(--success);padding:.5rem;animation:fadeUp .2s ease}.bubble-radio{background:#05070a!important;border:1px solid rgba(124,252,159,.3)!important;box-shadow:0 0 15px #7cfc9f1a,inset 0 0 20px #6c63ff0d!important;position:relative;overflow:hidden}.radio-msg-wrapper{display:flex;flex-direction:column;gap:4px}.radio-signal-icon{font-size:.7rem;opacity:.6;margin-bottom:2px;animation:signalPulse 1.5s infinite}.key-warning-banner{background:rgba(220,53,69,.15);border:1px solid rgba(220,53,69,.3);border-radius:8px;padding:16px;margin:16px;display:flex;gap:12px;align-items:flex-start;color:#ffb7b7;font-size:.9rem}.warning-icon{font-size:1.5rem}.warning-text strong{display:block;margin-bottom:4px;color:#ff4d4d}.warning-text p{margin:0;line-height:1.4;opacity:.9}.radio-numbers{font-family:var(--font-mono);font-size:.85rem;color:#7cfc9f;letter-spacing:1.5px;line-height:1.6;text-shadow:0 0 5px rgba(124,252,159,.5);word-break:break-all;white-space:pre-wrap}.radio-flicker-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(rgba(18,16,16,0) 50%,rgba(0,0,0,.1) 50%),linear-gradient(90deg,rgba(255,0,0,.03),rgba(0,255,0,.01),rgba(0,0,255,.03));background-size:100% 2px,3px 100%;pointer-events:none;opacity:.3}@keyframes signalPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.1);color:var(--accent)}}@keyframes textFlicker{0%{opacity:.98}5%{opacity:.95}10%{opacity:.9}15%{opacity:.95}25%{opacity:1}30%{opacity:.9}to{opacity:1}}.radio-numbers{animation:textFlicker 4s infinite}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{filter:drop-shadow(0 0 12px rgba(108,99,255,.6))}50%{filter:drop-shadow(0 0 24px rgba(108,99,255,.9))}}@media (max-width: 540px){body{font-size:14px}.auth-card{padding:1.5rem 1.25rem}.dash-header,.chat-header{padding:.75rem 1rem;padding-top:calc(.75rem + env(safe-area-inset-top))}.dash-title{font-size:1rem}.friend-list{gap:.5rem}.friend-card{padding:.75rem .85rem}.friend-avatar{width:40px;height:40px;font-size:1.1rem}.chat-avatar{width:34px;height:34px}.chat-name{font-size:.9rem}.bubble{max-width:90%;padding:.5rem .75rem}.bubble-text{font-size:.88rem}.radio-numbers{font-size:.78rem;letter-spacing:1px}.encode-input-container{padding-bottom:calc(1.5rem + env(safe-area-inset-bottom))}.radio-preview{margin-bottom:.5rem}.compose-textarea{font-size:.88rem;padding:.5rem .75rem}.btn-icon{padding:.5rem;font-size:1.2rem}.btn-send,.btn-encode{width:40px;height:40px}}@media (max-width: 360px){.chat-header-info{gap:.4rem}.chat-sub{display:none}.bubble{max-width:95%}}.unlock-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:100;display:flex;align-items:center;justify-content:center;padding:1.5rem}.unlock-card{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);padding:2rem;border-radius:1.5rem;text-align:center;max-width:360px;width:100%;box-shadow:0 25px 60px #0009;animation:fadeUp .3s ease-out}.unlock-card .logo-icon{font-size:2.5rem;display:block;margin-bottom:1rem}.unlock-card h3{margin-bottom:.75rem;font-size:1.4rem;color:#fff}.unlock-card p{color:var(--text-muted);font-size:.88rem;margin-bottom:2rem;line-height:1.5}.unlock-card form{display:flex;flex-direction:column;gap:1rem}.unlock-card input{padding:.8rem 1rem;background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.1);border-radius:.75rem;color:#fff;text-align:center;font-size:1.1rem;width:100%}.unlock-card input:focus{outline:none;border-color:var(--accent);background:rgba(0,0,0,.5)}.home-page{min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;background:radial-gradient(circle at center,#1a1f35 0%,#0a0c14 100%);padding:2rem;overflow:hidden;position:relative}.friend-portal-section{text-align:center;max-width:600px;width:100%;animation:fadeUp .8s ease-out;margin-bottom:4rem}.hero-content{margin-bottom:3rem}.logo-pulse{font-size:5rem;margin-bottom:1.5rem;display:inline-block;animation:pulse 3s infinite}.hero-content h1{font-size:3.5rem;font-weight:800;margin-bottom:1rem;letter-spacing:-1px;background:linear-gradient(135deg,#fff 0%,var(--accent-blue) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.hero-content p{font-size:1.25rem;color:var(--text-muted);opacity:.8}.portal-form{margin-top:2rem}.portal-input-wrapper{display:flex;gap:.75rem;background:rgba(255,255,255,.03);padding:.6rem;border-radius:1.5rem;border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 30px #0000004d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.portal-input{flex:1;background:transparent;border:none;padding:1rem 1.5rem;color:#fff;font-size:1.2rem;outline:none}.portal-input::placeholder{color:#ffffff4d}.portal-btn{background:linear-gradient(135deg,var(--accent-blue) 0%,#474bff 100%);border:none;color:#fff;padding:.75rem 2rem;border-radius:1rem;font-weight:700;font-size:1rem;cursor:pointer;transition:all .3s}.portal-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 20px #6c63ff66}.lookup-error{color:#ff4d4d;margin-top:1rem;font-size:.95rem}.admin-login-drawer{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:500px;background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.05);border-bottom:none;border-radius:1.5rem 1.5rem 0 0;padding:1.5rem 2rem;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:all .3s}.drawer-header{font-size:.75rem;text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);text-align:center;margin-bottom:1rem;opacity:.6}.mini-login-form{display:flex;gap:.5rem}.mini-login-form input{flex:1;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);padding:.6rem 1rem;border-radius:.75rem;color:#fff;font-size:.9rem;outline:none}.mini-login-form button{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.1);color:#fff;padding:.6rem 1.2rem;border-radius:.75rem;font-size:.85rem;cursor:pointer}.mini-login-form button:hover{background:rgba(255,255,255,.15)}.admin-error-text{color:#ff4d4d;font-size:.75rem;margin-top:.5rem;text-align:center}@media (max-width: 600px){.hero-content h1{font-size:2.5rem}.portal-input-wrapper{flex-direction:column;border-radius:1rem;gap:.25rem}.portal-btn{width:100%;border-radius:.75rem}.mini-login-form{flex-direction:column}.admin-login-drawer{padding:1rem}}
