@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{background:#050f05;color:#00ff41;font-family:JetBrains Mono,Courier New,monospace;height:100vh;overflow:hidden}body:after{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,255,65,.018) 2px,rgba(0,255,65,.018) 4px);pointer-events:none;z-index:9999}.app{display:flex;height:100vh}.sidebar{width:240px;background:#0a0a0a;border-right:1px solid #1a3a1a;display:flex;flex-direction:column;flex-shrink:0}.sidebar-header{padding:14px 16px;border-bottom:1px solid #1a3a1a}.sidebar-header h2{color:#00ff41;font-size:13px;font-weight:700;letter-spacing:3px;text-transform:uppercase}.sidebar-me{color:#005f1a;font-size:10px;margin-top:4px}.sidebar-me:before{content:"> ";color:#0a3}.contacts-label{padding:10px 16px 4px;color:#004a14;font-size:9px;letter-spacing:3px;text-transform:uppercase}.users-list{flex:1;overflow-y:auto}.user-item{padding:9px 16px;cursor:pointer;border-left:2px solid transparent;transition:all .1s}.user-item:hover{background:#0d1f0d}.user-item.active{background:#0d1f0d;border-left:2px solid #00ff41}.user-line{display:flex;align-items:center;gap:6px}.user-prompt{color:#00ff41;font-size:12px;font-weight:700}.username{color:#00ff41;font-size:13px;font-weight:500}.user-status{color:#004a14;font-size:10px;padding-left:16px;margin-top:2px}.user-status.online{color:#0a3}.user-status.online:before{content:"";display:inline-block;width:6px;height:6px;background:#00ff41;border-radius:50%;margin-right:5px;vertical-align:middle}.logout-btn{margin:12px 16px;background:transparent;border:1px solid #1a3a1a;color:#005f1a;font-family:JetBrains Mono,monospace;font-size:10px;padding:6px;cursor:pointer;letter-spacing:2px;text-transform:uppercase;transition:all .1s}.logout-btn:hover{border-color:#f33;color:#f33}.chat-area{flex:1;display:flex;flex-direction:column;background:#0a0a0a;min-width:0}.chat-header{padding:11px 18px;border-bottom:1px solid #1a3a1a;display:flex;align-items:center;gap:8px;background:#0a0a0a}.chat-header-prefix{color:#005f1a;font-size:11px}.chat-header-name{color:#00ff41;font-size:13px;font-weight:700}.chat-header-dot{width:6px;height:6px;background:#00ff41;border-radius:50%}.chat-header-enc{margin-left:auto;color:#005f1a;font-size:10px;letter-spacing:1px}.empty-state{flex:1;display:flex;align-items:center;justify-content:center;color:#004a14;font-size:13px;letter-spacing:2px}.empty-state:before{content:"> ";color:#062}.messages-list{flex:1;overflow-y:auto;padding:14px 18px;display:flex;flex-direction:column;gap:6px;scrollbar-width:thin;scrollbar-color:#1a3a1a transparent}.date-separator{text-align:center;color:#004a14;font-size:9px;letter-spacing:3px;margin:6px 0}.message{display:flex;flex-direction:column;max-width:70%;animation:fadeIn .12s ease}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1}}.message.out{align-self:flex-end;align-items:flex-end}.message.in{align-self:flex-start;align-items:flex-start}.message-sender{font-size:9px;color:#005f1a;margin-bottom:2px;letter-spacing:1px}.message-bubble{padding:7px 11px;border:1px solid #1a4a1a;border-radius:2px;font-size:13px;line-height:1.55;word-break:break-word}.message.out .message-bubble{background:#0d2a0d;color:#00ff41;border-color:#1a5a1a;border-bottom-right-radius:0}.message.in .message-bubble{background:#050f05;color:#0c3;border-color:#143214;border-bottom-left-radius:0}.message-meta{display:flex;align-items:center;gap:4px;justify-content:flex-end}.message-time{font-size:9px;color:#004a14}.message.out .message-meta{justify-content:flex-end}.message.in .message-meta{justify-content:flex-start}.status-sent{color:#004a14;font-size:10px;letter-spacing:-1px}.status-delivered{color:#0a3;font-size:10px;letter-spacing:-1px}.status-read{color:#00ff41;font-size:10px;letter-spacing:-1px;text-shadow:0 0 6px rgba(0,255,65,.6)}.typing-indicator{padding:3px 18px;min-height:22px;border-top:1px solid #0d2a0d;background:#050f05;display:flex;align-items:center}.typing-prompt{color:#00ff41;font-weight:700;margin-right:2px}.typing-indicator span:not(.cursor-blink):not(.typing-prompt){color:#0a3;font-size:12px;letter-spacing:.5px}.cursor-blink{display:inline-block;width:10px;height:14px;background:#00ff41;margin-left:4px;vertical-align:text-bottom;animation:blink .75s step-end infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.message-input-area{padding:10px 16px;border-top:1px solid #1a3a1a;background:#050f05;display:flex;align-items:center;gap:8px}.input-prompt{color:#00ff41;font-size:13px;font-weight:700;flex-shrink:0;line-height:1.5;padding-bottom:0;align-self:center}.message-input-area textarea{flex:1;background:transparent;border:none;outline:none;color:#00ff41;font-family:JetBrains Mono,monospace;font-size:13px;resize:none;max-height:100px;line-height:1.5;caret-color:#00ff41}.message-input-area textarea::placeholder{color:#004a14}.btn-attach{background:transparent;border:1px solid #1a3a1a;color:#005f1a;font-family:JetBrains Mono,monospace;font-size:14px;width:32px;height:32px;cursor:pointer;border-radius:2px;display:flex;align-items:center;justify-content:center;transition:all .1s;flex-shrink:0}.btn-attach:hover{border-color:#00ff41;color:#00ff41}.btn-send{background:transparent;border:1px solid #1a5a1a;color:#0a3;font-family:JetBrains Mono,monospace;font-size:10px;padding:6px 10px;cursor:pointer;border-radius:2px;letter-spacing:2px;text-transform:uppercase;transition:all .1s;flex-shrink:0;white-space:nowrap}.btn-send:hover{background:#0d2a0d;color:#00ff41;border-color:#00ff41}.pending-file{margin:0 16px 8px;padding:7px 11px;background:#050f05;border:1px solid #1a3a1a;border-radius:2px;display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#0a3}.pending-file-cancel{background:none;border:none;color:#f33;cursor:pointer;font-size:14px}.file-attachment{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#00ff410a;border:1px solid #1a3a1a;border-radius:2px;min-width:180px}.file-icon{width:28px;height:28px;background:#0d2a0d;border:1px solid #1a5a1a;border-radius:2px;display:flex;align-items:center;justify-content:center;color:#00ff41;font-size:12px;flex-shrink:0}.file-name{font-size:11px;font-weight:500;word-break:break-all;color:#00ff41}.file-size{font-size:10px;color:#005f1a}.download-btn{color:#0a3;font-size:10px;text-decoration:none;white-space:nowrap;letter-spacing:1px}.download-btn:hover{color:#00ff41}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#050f05}.login-card{background:#0a0a0a;border:1px solid #1a3a1a;border-radius:4px;padding:32px;width:360px}.login-title{color:#00ff41;font-size:16px;font-weight:700;letter-spacing:4px;text-transform:uppercase;margin-bottom:4px}.login-subtitle{color:#005f1a;font-size:10px;margin-bottom:28px;letter-spacing:1px}.login-tabs{display:flex;gap:4px;margin-bottom:24px}.tab{flex:1;padding:8px;border:1px solid #1a3a1a;background:transparent;color:#005f1a;font-family:JetBrains Mono,monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .1s}.tab.active{background:#0d2a0d;border-color:#00ff41;color:#00ff41}.login-label{color:#005f1a;font-size:10px;letter-spacing:2px;text-transform:uppercase;margin-bottom:6px;display:block}.login-label:before{content:"// "}input[type=text],input[type=password]{width:100%;background:#050f05;border:1px solid #1a3a1a;color:#00ff41;font-family:JetBrains Mono,monospace;font-size:13px;padding:10px 12px;margin-bottom:16px;outline:none;border-radius:2px;caret-color:#00ff41;transition:border-color .1s}input[type=text]:focus,input[type=password]:focus{border-color:#00ff41}input[type=text]::placeholder,input[type=password]::placeholder{color:#003a10}.btn-primary{width:100%;background:#0d2a0d;border:1px solid #00ff41;color:#00ff41;font-family:JetBrains Mono,monospace;font-size:12px;font-weight:700;letter-spacing:3px;text-transform:uppercase;padding:12px;cursor:pointer;border-radius:2px;transition:all .1s;margin-top:4px}.btn-primary:hover{background:#143214}.error{color:#f44;font-size:11px;margin-bottom:12px;letter-spacing:1px}.error:before{content:"! "}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#1a3a1a;border-radius:2px}.backup-screen{display:flex;flex-direction:column;gap:14px}.backup-title{color:#00ff41;font-size:13px;font-weight:700;letter-spacing:3px;text-align:center}.backup-subtitle{color:#005f1a;font-size:10px;text-align:center;letter-spacing:1px}.backup-code-box{position:relative}.backup-code{width:100%;height:120px;font-family:JetBrains Mono,monospace;font-size:11px;color:#00ff41;background:#050f05;border:1px solid #00ff41;padding:12px;border-radius:2px;resize:none;outline:none;line-height:1.6;word-break:break-all}.btn-copy{width:100%;background:transparent;border:1px solid #1a5a1a;color:#0a3;font-family:JetBrains Mono,monospace;font-size:11px;padding:8px;cursor:pointer;letter-spacing:2px;transition:all .15s}.btn-copy:hover,.btn-copy.copied{border-color:#00ff41;color:#00ff41;background:#0d2a0d}.backup-warning{color:#854f0b;font-size:10px;letter-spacing:1px;line-height:1.8;border:1px solid #412402;padding:10px;border-radius:2px;background:#0a0800}.restore-section{margin-top:8px;display:flex;flex-direction:column;gap:6px}.restore-label{color:#005f1a;font-size:10px;letter-spacing:2px}.restore-label:before{content:"// "}.restore-input{width:100%;height:100px;font-family:JetBrains Mono,monospace;font-size:10px;color:#00ff41;background:#050f05;border:1px solid #1a3a1a;padding:10px;border-radius:2px;resize:none;outline:none;line-height:1.6}.restore-input:focus{border-color:#00ff41}.restore-hint{color:#004a14;font-size:10px;letter-spacing:1px}.restore-hint:before{content:"> ";color:#062}.new-device-link{color:#004a14;font-size:10px;text-align:center;cursor:pointer;margin-top:6px;letter-spacing:1px;transition:color .1s}.new-device-link:hover{color:#0a3}.new-device-link:before{content:"> "}.btn-back{display:none}@media (max-width: 768px){.app{position:relative;overflow:hidden}.sidebar{width:100%;position:absolute;top:0;left:0;right:0;bottom:0;z-index:10;transform:translate(0);transition:transform .25s ease}.sidebar.hidden{transform:translate(-100%)}.chat-area{width:100%;position:absolute;top:0;left:0;right:0;bottom:0;z-index:5;transform:translate(100%);transition:transform .25s ease}.chat-area.visible{transform:translate(0)}.btn-back{display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:#0a3;font-family:JetBrains Mono,monospace;font-size:28px;cursor:pointer;padding:0 12px 0 0;line-height:1;flex-shrink:0}.chat-header{gap:6px}.chat-header-enc{display:none}.user-item{padding:14px 16px}.btn-send{padding:8px 12px;font-size:11px}.btn-attach{width:36px;height:36px}.message-input-area{padding:10px 12px}.message-input-area textarea{font-size:14px;padding:8px 12px}.message-bubble{font-size:14px}.login-card{width:100%;border-radius:0;border-left:none;border-right:none;min-height:100vh;padding:40px 24px}.login-page{align-items:flex-start}.backup-code{font-size:10px}}*{-webkit-tap-highlight-color:transparent}.app{padding-bottom:env(safe-area-inset-bottom)}.message-input-area{padding-bottom:calc(10px + env(safe-area-inset-bottom))}body{touch-action:manipulation}.unread-badge{margin-left:auto;background:#00ff41;color:#0a0a0a;font-size:9px;font-weight:700;font-family:JetBrains Mono,monospace;padding:2px 6px;border-radius:2px;min-width:18px;text-align:center;letter-spacing:0;animation:badgePop .2s ease}@keyframes badgePop{0%{transform:scale(.5);opacity:0}70%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.user-line{display:flex;align-items:center;gap:6px;width:100%}.btn-search{background:transparent;border:1px solid #1a3a1a;color:#005f1a;font-family:JetBrains Mono,monospace;font-size:11px;padding:4px 8px;cursor:pointer;border-radius:2px;letter-spacing:1px;transition:all .1s;margin-left:auto}.btn-search:hover{color:#00ff41;border-color:#00ff41}.search-bar{padding:8px 16px;border-bottom:1px solid #1a3a1a;background:#050f05;display:flex;align-items:center;gap:8px}.search-prompt{color:#00ff41;font-size:12px;font-weight:700;flex-shrink:0}.search-input{flex:1;background:transparent;border:none;outline:none;color:#00ff41;font-family:JetBrains Mono,monospace;font-size:12px;caret-color:#00ff41}.search-input::placeholder{color:#004a14}.search-count{color:#005f1a;font-size:10px;letter-spacing:1px;white-space:nowrap}.search-close{background:transparent;border:1px solid #1a3a1a;color:#005f1a;font-family:JetBrains Mono,monospace;font-size:9px;padding:3px 8px;cursor:pointer;letter-spacing:1px}.search-close:hover{color:#f44;border-color:#f44}.highlight{background:#00ff4133;color:#00ff41;border-radius:1px;padding:0 1px}.msg-context-menu{position:absolute;top:-44px;right:0;background:#0a0a0a;border:1px solid #1a5a1a;border-radius:2px;display:flex;gap:2px;z-index:100;white-space:nowrap}.msg-context-menu button{background:transparent;border:none;color:#0a3;font-family:JetBrains Mono,monospace;font-size:9px;padding:7px 10px;cursor:pointer;letter-spacing:1px;transition:all .1s}.msg-context-menu button:hover{color:#00ff41;background:#0d2a0d}.msg-context-menu button.delete:hover{color:#f44}.message{position:relative}.message-deleted{color:#004a14;font-size:11px;font-style:italic;padding:6px 10px;border:1px dashed #1a3a1a;border-radius:2px}.message-deleted:before{content:"> "}.message-edited{color:#004a14;font-size:9px;margin-top:2px;letter-spacing:1px}.message-edited:before{content:"// "}.editing-indicator{padding:6px 16px;background:#050f05;border-top:1px solid #1a3a1a;display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#0a3;letter-spacing:1px}.editing-indicator button{background:transparent;border:1px solid #1a3a1a;color:#005f1a;font-family:JetBrains Mono,monospace;font-size:9px;padding:3px 8px;cursor:pointer;letter-spacing:1px}.editing-indicator button:hover{color:#f44;border-color:#f44}.btn-call{background:transparent;border:1px solid #1a5a1a;color:#0a3;font-family:JetBrains Mono,monospace;font-size:10px;padding:5px 9px;cursor:pointer;border-radius:2px;letter-spacing:1px;transition:all .1s;margin-left:6px}.btn-call:hover{border-color:#00ff41;color:#00ff41}.incoming-call{position:fixed;top:20px;right:20px;background:#0a0a0a;border:1px solid #00ff41;border-radius:4px;padding:20px 24px;z-index:1000;min-width:260px;animation:slideIn .2s ease,pulse 1.5s ease infinite}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes pulse{0%,to{box-shadow:0 0 #00ff4166}50%{box-shadow:0 0 0 8px #00ff4100}}.incoming-title{color:#005f1a;font-size:10px;letter-spacing:2px;margin-bottom:8px}.incoming-name{color:#00ff41;font-size:16px;font-weight:700;margin-bottom:16px}.incoming-controls{display:flex;gap:8px;flex-direction:column}.btn-accept{background:#0d2a0d;border:1px solid #00ff41;color:#00ff41;font-family:JetBrains Mono,monospace;font-size:11px;padding:8px;cursor:pointer;letter-spacing:2px;transition:all .1s}.btn-accept:hover{background:#143214}.btn-reject{background:transparent;border:1px solid #3a1a1a;color:#f44;font-family:JetBrains Mono,monospace;font-size:11px;padding:8px;cursor:pointer;letter-spacing:2px;transition:all .1s}.btn-reject:hover{border-color:#f44;background:#1a0505}.call-screen{position:fixed;top:0;left:0;right:0;bottom:0;background:#050f05;z-index:999;display:flex;flex-direction:column;font-family:JetBrains Mono,monospace}.call-header{padding:16px 20px;border-bottom:1px solid #1a3a1a;display:flex;align-items:center;gap:12px}.call-status{color:#005f1a;font-size:11px}.call-name{color:#00ff41;font-size:14px;font-weight:700;flex:1}.call-enc{color:#004a14;font-size:9px;letter-spacing:1px}.call-timer{color:#005f1a;font-size:11px;letter-spacing:2px}.call-videos{flex:1;display:flex;align-items:center;justify-content:center;position:relative;background:#0a0a0a}.call-avatar-large{width:100px;height:100px;border-radius:50%;background:#0d2a0d;border:2px solid #1a5a1a;display:flex;align-items:center;justify-content:center;color:#00ff41;font-size:40px;font-weight:700}.remote-video{width:100%;height:100%;object-fit:cover}.local-video{position:absolute;bottom:16px;right:16px;width:120px;height:90px;object-fit:cover;border:1px solid #1a5a1a;border-radius:4px;background:#050f05}.call-controls{padding:20px;border-top:1px solid #1a3a1a;display:flex;gap:12px;justify-content:center;background:#0a0a0a}.call-btn{background:transparent;border:1px solid #1a5a1a;color:#0a3;font-family:JetBrains Mono,monospace;font-size:11px;padding:10px 16px;cursor:pointer;letter-spacing:2px;transition:all .1s;border-radius:2px}.call-btn:hover{border-color:#00ff41;color:#00ff41}.call-btn.active{border-color:#f44;color:#f44}.call-btn.end{border-color:#3a1a1a;color:#f44}.call-btn.end:hover{background:#1a0505;border-color:#f44}
