code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0;padding:0}.App{height:100vh;overflow:hidden;width:100%}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#ccc;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#999}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-box{animation:slideIn .4s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:40px;width:100%}.login-header{margin-bottom:30px;text-align:center}.login-header h1{color:#333;font-size:32px;font-weight:700;margin:0 0 10px}.login-header p{color:#666;font-size:14px;margin:0}.login-tabs{display:flex;gap:10px;margin-bottom:30px}.login-tabs button{background:#f0f0f0;border:none;border-radius:8px;color:#666;cursor:pointer;flex:1 1;font-size:16px;font-weight:600;padding:12px;transition:all .3s ease}.login-tabs button.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.login-tabs button:hover:not(.active){background:#e0e0e0}.login-form{gap:20px}.form-group,.login-form{display:flex;flex-direction:column}.form-group{gap:8px}.form-group input{font-size:16px;transition:all .3s ease}.error-message{background:#fee;border:1px solid #fcc;border-radius:8px;color:#c33;font-size:14px;padding:12px;text-align:center}.submit-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:600;margin-top:10px;padding:14px;transition:all .3s ease}.submit-button:hover:not(:disabled){box-shadow:0 10px 20px #667eea4d;transform:translateY(-2px)}.submit-button:disabled{cursor:not-allowed;opacity:.6}.login-footer{margin-top:30px;text-align:center}.login-footer p{color:#999;font-size:12px;margin:0}@media (max-width:480px){.login-box{padding:30px 20px}.login-header h1{font-size:28px}}.chat-interface{background:#f0f0f0;display:flex;height:100vh}.main-content{display:flex;flex:1 1;overflow:hidden}.conversation-list{background:#fff;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;width:320px}.list-header{border-bottom:1px solid #e0e0e0;padding:20px}.list-header h2{color:#333;font-size:24px;font-weight:600;margin:0}.conversations{flex:1 1;overflow-y:auto}.conversation-item{align-items:center;border-bottom:1px solid #f5f5f5;cursor:pointer;display:flex;padding:16px 20px;transition:background .2s ease}.conversation-item:hover{background:#f8f8f8}.conversation-item.active{background:#e8f0fe}.conversation-avatar{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:20px;font-weight:600;height:48px;justify-content:center;margin-right:12px;width:48px}.conversation-info{flex:1 1;min-width:0}.conversation-name{color:#333;font-size:16px;font-weight:600;margin-bottom:4px}.conversation-last-message{color:#666;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unread-badge{align-items:center;background:#f44336;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:12px;font-weight:600;height:20px;justify-content:center;width:20px}.empty-state{color:#999;padding:60px 20px;text-align:center}.empty-state p{margin:8px 0}.empty-state p:first-child{color:#666;font-size:16px;font-weight:600}@media (max-width:768px){.conversation-list{max-width:100%;width:100%}.chat-interface.chat-open .conversation-list{display:none}}.sidebar{align-items:center;background:#2c2c2c;display:flex;flex-direction:column;padding:20px 0;width:70px}.sidebar-header{margin-bottom:30px}.user-avatar{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:18px;font-weight:600;height:44px;justify-content:center;transition:transform .2s ease;width:44px}.user-avatar:hover{transform:scale(1.1)}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:20px}.nav-item{align-items:center;background:#0000;border:none;border-radius:12px;color:#999;cursor:pointer;display:flex;height:44px;justify-content:center;position:relative;transition:all .2s ease;width:44px}.nav-item:hover{background:#ffffff1a;color:#fff}.nav-item.active{background:#667eea33;color:#667eea}.nav-item.active:before{background:#667eea;border-radius:0 2px 2px 0;content:"";height:24px;left:-20px;position:absolute;width:4px}.sidebar-footer{margin-top:auto}@media (max-width:768px){.sidebar{flex-direction:row;height:60px;order:2;padding:0 20px;width:100%}.sidebar-header{margin-bottom:0;margin-right:auto}.sidebar-nav{flex-direction:row;margin:0 20px}.sidebar-footer{margin-left:0;margin-top:0}.nav-item.active:before{border-radius:2px 2px 0 0;height:4px;left:50%;top:-10px;transform:translateX(-50%);width:24px}}.chat-window{background:#fff;display:flex;flex:1 1;flex-direction:column}.chat-window.empty{align-items:center;background:#fafafa;justify-content:center}.empty-chat-state{color:#999;text-align:center}.empty-chat-state h3{color:#666;font-size:20px;margin:20px 0 10px}.empty-chat-state p{font-size:14px;margin:0}.chat-header{background:#fff;border-bottom:1px solid #e0e0e0;justify-content:space-between;padding:16px 24px}.chat-header,.chat-header-info{align-items:center;display:flex}.chat-header-info{gap:12px}.chat-avatar{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;height:40px;justify-content:center;width:40px}.chat-avatar,.chat-details h3{font-size:16px;font-weight:600}.chat-details h3{color:#333;margin:0}.chat-status{color:#4caf50;font-size:12px}.chat-actions{display:flex;gap:12px}.action-btn{align-items:center;background:#0000;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s ease;width:36px}.action-btn:hover{background:#f0f0f0;color:#667eea}.messages-container{background:#f8f9fa;flex:1 1;overflow-y:auto;padding:24px}.message{display:flex;margin-bottom:16px}.message.sent{justify-content:flex-end}.message.received{justify-content:flex-start}.message-bubble{animation:messageSlideIn .2s ease-out;border-radius:16px;max-width:60%;padding:12px 16px}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.message.sent .message-bubble{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom-right-radius:4px;color:#fff}.message.received .message-bubble{background:#fff;border-bottom-left-radius:4px;box-shadow:0 1px 2px #0000001a;color:#333}.message-content{word-wrap:break-word;font-size:15px;line-height:1.4}.message-time{font-size:11px;margin-top:4px;opacity:.7}.message-input-container{align-items:center;background:#fff;border-top:1px solid #e0e0e0;display:flex;gap:12px;padding:16px 24px}.input-action-btn{align-items:center;background:#0000;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;flex-shrink:0;height:36px;justify-content:center;transition:all .2s ease;width:36px}.input-action-btn:hover{background:#f0f0f0;color:#667eea}.message-input{border:1px solid #e0e0e0;border-radius:24px;flex:1 1;font-size:15px;outline:none;padding:12px 16px;transition:all .2s ease}.message-input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.send-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:40px;justify-content:center;transition:all .2s ease;width:40px}.send-btn:hover:not(:disabled){box-shadow:0 4px 12px #667eea66;transform:scale(1.1)}.send-btn:disabled{cursor:not-allowed;opacity:.5}@media (max-width:768px){.message-bubble{max-width:80%}.messages-container{padding:16px}.message-input-container{padding:12px 16px}}.contact-list-container{background:#fff;display:flex;flex:1 1;flex-direction:column}.contact-list-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px 24px}.contact-list-header h2{color:#333;font-size:24px;font-weight:600;margin:0}.add-contact-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s ease}.add-contact-btn:hover{box-shadow:0 6px 20px #667eea4d;transform:translateY(-2px)}.contacts-grid{grid-gap:20px;display:grid;flex:1 1;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));overflow-y:auto;padding:24px}.contact-card{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:12px;cursor:pointer;display:flex;gap:16px;padding:20px;transition:all .2s ease}.contact-card:hover{border-color:#667eea;box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.contact-card-avatar{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:24px;font-weight:600;height:56px;justify-content:center;width:56px}.contact-card-info{flex:1 1;min-width:0}.contact-card-info h4{color:#333;font-size:16px;font-weight:600;margin:0 0 4px}.contact-peer-id{color:#999;font-family:monospace;font-size:12px;margin:0 0 8px}.contact-status{border-radius:4px;display:inline-block;font-size:11px;font-weight:600;padding:4px 8px;text-transform:uppercase}.contact-status.online{background:#e8f5e9;color:#4caf50}.contact-status.offline{background:#f5f5f5;color:#999}.empty-contacts{align-items:center;color:#999;display:flex;flex-direction:column;grid-column:1/-1;justify-content:center;padding:60px 20px;text-align:center}.empty-contacts h3{color:#666;font-size:20px;margin:20px 0 10px}.empty-contacts p{font-size:14px;margin:0}.modal-overlay{align-items:center;animation:fadeIn .2s ease-out;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideUp .3s ease-out;background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;max-width:500px;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{align-items:center;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:24px}.modal-header h3{color:#333;font-size:20px;font-weight:600;margin:0}.close-btn{align-items:center;background:#0000;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;height:32px;justify-content:center;transition:all .2s ease;width:32px}.close-btn:hover{background:#f0f0f0;color:#333}.modal-body{padding:24px}.form-group{margin-bottom:20px}.form-group:last-child{margin-bottom:0}.form-group label{color:#333;display:block;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input{border:2px solid #e0e0e0;border-radius:8px;box-sizing:border-box;font-size:15px;padding:12px 16px;transition:all .2s ease;width:100%}.form-group input:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}.form-group small{color:#999;display:block;font-size:12px;margin-top:6px}.modal-footer{border-top:1px solid #e0e0e0;display:flex;gap:12px;justify-content:flex-end;padding:24px}.cancel-btn,.confirm-btn{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:600;padding:10px 24px;transition:all .2s ease}.cancel-btn{background:#f0f0f0;color:#666}.cancel-btn:hover{background:#e0e0e0}.confirm-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.confirm-btn:hover{box-shadow:0 6px 20px #667eea4d;transform:translateY(-2px)}@media (max-width:768px){.contacts-grid{grid-template-columns:1fr}}.moments-container{background:#f8f9fa;display:flex;flex:1 1;flex-direction:column}.moments-header{align-items:center;background:#fff;border-bottom:1px solid #e0e0e0;display:flex;justify-content:space-between;padding:20px 24px}.moments-header h2{color:#333;font-size:24px;font-weight:600;margin:0}.post-moment-btn{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:8px;padding:10px 20px;transition:all .2s ease}.post-moment-btn:hover{box-shadow:0 6px 20px #667eea4d;transform:translateY(-2px)}.moments-feed{flex:1 1;margin:0 auto;max-width:800px;overflow-y:auto;padding:24px;width:100%}.moment-card{animation:slideIn .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;padding:20px}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.moment-header{align-items:center;display:flex;gap:12px;margin-bottom:16px}.moment-user-avatar{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:20px;font-weight:600;height:48px;justify-content:center;width:48px}.moment-user-info h4{color:#333;font-size:16px;font-weight:600;margin:0 0 4px}.moment-time{color:#999;font-size:12px}.moment-content p{color:#333;font-size:15px;line-height:1.6;margin:0 0 16px;white-space:pre-wrap}.moment-images{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(3,1fr);margin-bottom:16px}.moment-images img{border-radius:8px;cursor:pointer;height:150px;object-fit:cover;transition:transform .2s ease;width:100%}.moment-images img:hover{transform:scale(1.05)}.moment-actions{border-top:1px solid #f0f0f0;display:flex;gap:24px;padding-top:16px}.moment-action-btn{align-items:center;background:#0000;border:none;border-radius:8px;color:#666;cursor:pointer;display:flex;font-size:14px;gap:8px;padding:8px 16px;transition:all .2s ease}.moment-action-btn:hover{background:#f0f0f0;color:#667eea}.moment-action-btn span{font-weight:600}.empty-moments{align-items:center;color:#999;display:flex;flex-direction:column;justify-content:center;padding:60px 20px;text-align:center}.empty-moments h3{color:#666;font-size:20px;margin:20px 0 10px}.empty-moments p{font-size:14px;margin:0}.moment-textarea{border:2px solid #e0e0e0;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:15px;padding:16px;resize:vertical;transition:all .2s ease;width:100%}.moment-textarea:focus{border-color:#667eea;box-shadow:0 0 0 3px #667eea1a;outline:none}@media (max-width:768px){.moment-card,.moments-feed{padding:16px}.moment-images{grid-template-columns:repeat(2,1fr)}}
/*# sourceMappingURL=main.1e9c33cc.css.map*/