*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #4f46e5;--primary-glow: rgba(79, 70, 229, .4);--bg-color: #f8fafc;--glass-bg: rgba(255, 255, 255, .65);--glass-border: rgba(255, 255, 255, .5);--text-main: #0f172a;--text-muted: #64748b;--danger: #ef4444;--success: #10b981;--radar-ring: rgba(0, 0, 0, .06);--shape-1: #c7d2fe;--shape-2: #fbcfe8;--shape-3: #ddd6fe;--font-main: "Outfit", sans-serif;--font-mono: "JetBrains Mono", monospace}[data-theme=dark]{--primary: #6366f1;--primary-glow: rgba(99, 102, 241, .5);--bg-color: #0b0f19;--glass-bg: rgba(15, 23, 42, .65);--glass-border: rgba(255, 255, 255, .08);--text-main: #f8fafc;--text-muted: #94a3b8;--danger: #f87171;--success: #34d399;--radar-ring: rgba(255, 255, 255, .06);--shape-1: #312e81;--shape-2: #831843;--shape-3: #4c1d95}html,body{height:100%;font-family:var(--font-main);background:var(--bg-color);color:var(--text-main);overflow:hidden;transition:background-color .4s ease,color .4s ease}.glass-panel{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);box-shadow:0 8px 32px #0000000d}.bg-shapes{position:fixed;inset:0;z-index:-1;overflow:hidden;filter:blur(80px);opacity:.8}.shape{position:absolute;border-radius:50%;animation:float 15s infinite alternate ease-in-out}.shape-1{width:400px;height:400px;background:var(--shape-1);top:-10%;left:-10%;animation-delay:0s}.shape-2{width:500px;height:500px;background:var(--shape-2);bottom:-20%;right:-10%;animation-delay:-5s}.shape-3{width:300px;height:300px;background:var(--shape-3);top:40%;left:40%;animation-delay:-10s}@keyframes float{0%{transform:translate(0) scale(1)}to{transform:translate(50px,50px) scale(1.1)}}.glass-header{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:16px 32px;background:var(--glass-bg);backdrop-filter:blur(16px);border-bottom:1px solid var(--glass-border)}.logo-area{display:flex;align-items:center;gap:10px}.logo-icon{color:var(--primary);display:flex}.app-title{font-size:18px;font-weight:600;letter-spacing:-.02em;display:flex;align-items:center;gap:8px}.badge{background:linear-gradient(135deg,var(--primary),#a855f7);color:#fff;font-size:10px;padding:2px 8px;border-radius:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.header-controls{display:flex;align-items:center;gap:16px}.icon-btn{background:transparent;border:none;color:var(--text-main);cursor:pointer;padding:8px;border-radius:50%;transition:background .2s,transform .2s;display:flex}.icon-btn:hover{background:var(--radar-ring);transform:scale(1.05)}.id-badge{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:99px;font-size:13px}.id-badge .label{color:var(--text-muted)}.selectable-id{font-family:var(--font-mono);font-weight:500;color:var(--primary);user-select:all;cursor:pointer}main{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative}.radar-area{position:relative;width:460px;height:460px;display:flex;align-items:center;justify-content:center}.radar-rings{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.ring{position:absolute;border-radius:50%;border:1px solid var(--radar-ring)}.ring-1{width:140px;height:140px}.ring-2{width:280px;height:280px}.ring-3{width:420px;height:420px}.radar-pulse{position:absolute;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,transparent 40%,var(--primary-glow) 100%);border:1px solid var(--primary);opacity:0;animation:pulse-scan 3s cubic-bezier(.25,1,.5,1) infinite}@keyframes pulse-scan{0%{transform:scale(.3);opacity:.8}to{transform:scale(1.1);opacity:0}}.node{position:absolute;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;transform:translate(-50%,-50%);transition:transform .2s}.node-label{font-size:13px;font-weight:500;color:var(--text-main);background:var(--glass-bg);backdrop-filter:blur(8px);padding:4px 10px;border-radius:8px;border:1px solid var(--glass-border);box-shadow:0 4px 12px #0000000d}.avatar{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--glass-bg);backdrop-filter:blur(10px);border:2px solid var(--glass-border);box-shadow:0 8px 24px #00000014;transition:all .3s cubic-bezier(.34,1.56,.64,1);color:var(--primary)}.node:not(.you):hover .avatar{transform:scale(1.15) translateY(-4px);border-color:var(--primary);box-shadow:0 12px 28px var(--primary-glow)}.you{left:50%;top:50%;z-index:10;cursor:default}.you-avatar{background:linear-gradient(135deg,var(--primary),#8b5cf6);color:#fff;border:none}.status-container{margin-top:30px;padding:10px 20px;border-radius:99px;display:flex;align-items:center;gap:12px}.status-indicator{width:8px;height:8px;border-radius:50%;background:var(--text-muted)}.status-indicator.active{background:var(--success);box-shadow:0 0 10px var(--success)}.status-text{font-size:14px;color:var(--text-muted)}.dev-footer{position:fixed;bottom:24px;padding:8px 16px;border-radius:99px;z-index:50;transition:transform .3s}.dev-footer:hover{transform:translateY(-3px)}.dev-info{display:flex;align-items:center;gap:12px}.dev-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid var(--primary)}.dev-text{display:flex;flex-direction:column;line-height:1.2}.dev-label{font-size:10px;color:var(--text-muted)}.dev-name{font-size:13px;color:var(--text-main);font-weight:600}.drag-overlay{position:absolute;inset:0;background:#0f172a66;backdrop-filter:blur(12px);z-index:900;display:flex;align-items:center;justify-content:center;border:4px dashed var(--primary);transition:opacity .2s}.drag-overlay.hidden{opacity:0;pointer-events:none}.drag-content{text-align:center;color:#fff;display:flex;flex-direction:column;align-items:center;gap:16px}.drag-content svg{color:var(--primary);width:64px;height:64px;filter:drop-shadow(0 0 20px var(--primary-glow))}.modal{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000;backdrop-filter:blur(6px);padding:20px}.modal.hidden{display:none}.modal-box{width:100%;max-width:420px;border-radius:24px;padding:28px;position:relative;display:flex;flex-direction:column;gap:20px;animation:modal-in .4s cubic-bezier(.16,1,.3,1)}@keyframes modal-in{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.close-btn{position:absolute;top:20px;right:20px;background:transparent;border:none;font-size:24px;color:var(--text-muted);cursor:pointer;transition:color .2s}.close-btn:hover{color:var(--danger)}.modal-header{display:flex;align-items:center;gap:16px}.peer-avatar-small{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--bg-color),var(--glass-border));display:flex;align-items:center;justify-content:center;color:var(--primary);font-weight:600;font-size:20px}.modal-peer-name{font-size:20px;font-weight:600}.modal-hint{font-size:13px;color:var(--text-muted)}.modal-tabs{display:flex;background:var(--bg-color);padding:4px;border-radius:12px}.tab-btn{flex:1;padding:10px;border:none;background:transparent;border-radius:8px;font-family:var(--font-main);font-weight:500;color:var(--text-muted);cursor:pointer;transition:.2s}.tab-btn.active{background:var(--glass-bg);color:var(--text-main);box-shadow:0 4px 12px #0000000d}.tab-content{display:none;animation:fade-in .3s}.tab-content.active{display:block}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.file-pick-area{display:flex;flex-direction:column;align-items:center;gap:12px;padding:32px 20px;border:2px dashed var(--glass-border);border-radius:16px;cursor:pointer;text-align:center;transition:.3s;background:#ffffff05}.file-pick-area:hover{border-color:var(--primary);background:var(--primary-glow)}.file-pick-area svg{color:var(--primary)}#file-name-display{font-size:14px;color:var(--text-main)}.glass-input{width:100%;height:120px;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:16px;padding:16px;color:var(--text-main);font-family:var(--font-main);font-size:14px;resize:none;outline:none;transition:.2s}.glass-input:focus{border-color:var(--primary)}.glow-btn{width:100%;padding:14px;border:none;border-radius:12px;background:var(--primary);color:#fff;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 8px 20px var(--primary-glow);transition:.3s}.glow-btn:disabled{opacity:.5;box-shadow:none;cursor:not-allowed}.glow-btn:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 12px 24px var(--primary-glow)}.progress-wrap{margin-top:10px}.progress-info{display:flex;justify-content:space-between;font-size:13px;margin-bottom:8px}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:80%}.mono{font-family:var(--font-mono);color:var(--primary);font-weight:600}.progress-bar-track{height:8px;border-radius:99px;overflow:hidden;background:var(--bg-color)}.progress-bar-fill{height:100%;width:0%;transition:width .2s ease}.gradient-fill{background:linear-gradient(90deg,var(--primary),#a855f7)}.receive-toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%);z-index:1000;padding:16px 20px;border-radius:16px;display:flex;align-items:center;gap:16px;animation:modal-in .4s cubic-bezier(.16,1,.3,1);min-width:320px}.receive-toast.hidden{display:none}.toast-indicator.pulse{width:12px;height:12px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 4px var(--primary-glow)}.toast-content{flex:1}.toast-title{font-size:14px;font-weight:600;margin-bottom:4px}.toast-file{font-size:12px;color:var(--text-muted)}.toast-actions-vertical{display:flex;gap:8px}.btn-icon{width:36px;height:36px;border:none;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:.2s;color:#fff}.btn-icon.success{background:var(--success);box-shadow:0 4px 12px #10b9814d}.btn-icon.danger{background:var(--danger);box-shadow:0 4px 12px #ef44444d}.btn-icon:hover{transform:scale(1.1)}@media (max-width: 600px){.radar-area{width:300px;height:300px}.ring-1{width:100px;height:100px}.ring-2{width:200px;height:200px}.ring-3,.radar-pulse{width:300px;height:300px}.glass-header{padding:12px 16px}.app-title span.badge,.id-badge .label,.dev-text{display:none}}
