*{margin:0;padding:0;box-sizing:border-box}:root{--terminal-green: #33ff33;--terminal-green-dim: #20cc20;--terminal-bg: #0a0a0a;--glow-off: none;--glow-low: 0 0 5px var(--terminal-green);--glow-medium: 0 0 10px var(--terminal-green), 0 0 20px var(--terminal-green-dim);--glow-high: 0 0 10px var(--terminal-green), 0 0 30px var(--terminal-green-dim), 0 0 50px var(--terminal-green-dim);--glow-intensity: var(--glow-medium)}body{background:#000;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;font-family:VT323,monospace}.terminal{width:100%;max-width:1050px;height:80vh;background:var(--terminal-bg);border-radius:20px;padding:30px;position:relative;box-shadow:inset 0 0 100px #000000e6,0 0 50px #33ff331a;overflow:hidden}.terminal:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,.15),rgba(0,0,0,.15) 1px,transparent 1px,transparent 2px);pointer-events:none;z-index:10}.terminal:after{content:"";position:absolute;inset:0;background:#33ff3308;pointer-events:none;z-index:9;animation:flicker .15s infinite}@keyframes flicker{0%{opacity:.27}10%{opacity:.25}20%{opacity:.27}30%{opacity:.25}40%{opacity:.26}50%{opacity:.27}60%{opacity:.25}70%{opacity:.26}80%{opacity:.24}90%{opacity:.27}to{opacity:.25}}.screen{height:100%;display:flex;flex-direction:column;position:relative;z-index:1}.main-layout{flex:1;display:flex;overflow:hidden;min-height:0}.connections-panel{width:220px;min-width:220px;border-right:1px solid rgba(51,255,51,.2);padding:8px 10px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--terminal-green-dim) transparent;color:var(--terminal-green-dim);font-size:14px;line-height:1.6;text-shadow:var(--glow-intensity)}.connections-panel::-webkit-scrollbar{width:4px}.connections-panel::-webkit-scrollbar-track{background:transparent}.connections-panel::-webkit-scrollbar-thumb{background:var(--terminal-green-dim)}.connections-panel .panel-section{margin-bottom:10px}.connections-panel .panel-label{color:var(--terminal-green);font-size:13px;opacity:.6;margin-bottom:4px}.connections-panel .panel-divider{border:none;border-top:1px solid rgba(51,255,51,.15);margin:8px 0}.connections-panel .knock-item{padding:4px 6px;cursor:pointer;transition:background .1s;border:1px solid transparent;margin-bottom:2px}.connections-panel .knock-item:hover{background:#33ff3314;border-color:#3f33}.connections-panel .knock-item.active{background:#ffb0001a;border-color:#ffb0004d}.connections-panel .session-item{padding:4px 6px;cursor:pointer;transition:background .1s;border:1px solid transparent;margin-bottom:2px;color:var(--terminal-green)}.connections-panel .session-item:hover{background:#33ff3314;border-color:#3f33}.connections-panel .session-item.active{border-color:#33ff334d;background:#33ff330d}.connections-panel .nav-item{padding:4px 6px;cursor:pointer;transition:background .1s;color:var(--terminal-green-dim);opacity:.7;margin-top:4px}.connections-panel .nav-item:hover{opacity:1;background:#33ff330d}.connections-panel .nav-item.active-view{color:var(--terminal-green);opacity:1}.presence-dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:4px;vertical-align:middle}.presence-dot.online{background:var(--terminal-green);box-shadow:0 0 4px var(--terminal-green)}.presence-dot.offline{background:#33ff334d}.main-view{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.messages{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:10px;padding-left:10px;scrollbar-width:thin;scrollbar-color:var(--terminal-green-dim) transparent}.messages::-webkit-scrollbar{width:6px}.messages::-webkit-scrollbar-track{background:transparent}.messages::-webkit-scrollbar-thumb{background:var(--terminal-green-dim)}.chat-area{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:10px;padding-left:10px;scrollbar-width:thin;scrollbar-color:var(--terminal-green-dim) transparent}.chat-area::-webkit-scrollbar{width:6px}.chat-area::-webkit-scrollbar-track{background:transparent}.chat-area::-webkit-scrollbar-thumb{background:var(--terminal-green-dim)}.session-wrapper{display:none;flex-direction:column;flex:1;overflow:hidden;min-height:0}.session-header{flex-shrink:0;padding:4px 10px;font-family:VT323,monospace;font-size:14px;color:var(--terminal-green-dim);text-shadow:var(--glow-intensity);border-bottom:1px solid rgba(51,255,51,.15);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.session-header .header-key{cursor:pointer;transition:opacity .1s}.session-header .header-key:hover{opacity:1;text-decoration:underline;text-decoration-style:dashed;text-underline-offset:3px}.session-terminate{float:right;cursor:pointer;color:#f339;font-size:16px;padding:0 4px;transition:all .1s}.session-terminate:hover{color:#f33;text-shadow:0 0 8px #ff3333}.knock-btn{cursor:pointer;font-family:VT323,monospace;font-size:18px;padding:4px 12px;transition:all .1s;-webkit-user-select:none;user-select:none}.knock-btn.accept-btn{color:var(--terminal-green);text-shadow:var(--glow-intensity)}.knock-btn.accept-btn:hover{background:#33ff3326;text-shadow:0 0 10px var(--terminal-green),0 0 20px var(--terminal-green-dim)}.knock-btn.decline-btn{color:#f33;text-shadow:0 0 5px #ff3333}.knock-btn.decline-btn:hover{background:#ff333326;text-shadow:0 0 10px #ff3333,0 0 20px #cc2020}.welcome-btn{display:inline-block;cursor:pointer;font-family:VT323,monospace;font-size:18px;color:var(--terminal-green);text-shadow:var(--glow-intensity);padding:4px 8px;margin-right:8px;margin-bottom:4px;border:1px solid rgba(51,255,51,.3);transition:all .1s;-webkit-user-select:none;user-select:none}.welcome-btn:hover{background:#33ff331f;border-color:var(--terminal-green);text-shadow:0 0 10px var(--terminal-green),0 0 20px var(--terminal-green-dim)}.welcome-btn:active{background:#3f33}.message{color:var(--terminal-green);font-size:18px;line-height:1.5;margin-bottom:10px;text-shadow:var(--glow-intensity);overflow-wrap:break-word}.message.system{color:var(--terminal-green-dim)}.message.warning{color:#ffb000;text-shadow:0 0 10px #ffb000,0 0 20px #cc8800}.message.error{color:#f33;text-shadow:0 0 10px #ff3333,0 0 20px #cc2020}.message .prefix{opacity:.7}.message .tag{opacity:.8}.message .tag.copyable{cursor:pointer;-webkit-user-select:all;user-select:all;transition:opacity .15s}.message .tag.copyable:hover{opacity:1;text-decoration:underline;text-decoration-style:dashed;text-underline-offset:3px}.message .tag.copyable.copied{opacity:.5}.copy-toast{animation:toastFade 2s ease-in-out forwards}@keyframes toastFade{0%{opacity:.8}70%{opacity:.8}to{opacity:0}}.input-line,#inputForm{order:10;flex-shrink:0;display:flex;align-items:center;color:var(--terminal-green);font-size:18px;text-shadow:var(--glow-intensity);margin:0;padding:0 0 0 10px;border:none;background:transparent}.hidden-submit{position:absolute;left:-9999px;width:1px;height:1px}.prompt{margin-right:8px;opacity:.7}.input-wrapper{flex:1;position:relative}#input{position:absolute;color:transparent;background:transparent;border:none;outline:none;width:100%;height:100%;top:0;left:0;font-size:18px;caret-color:transparent}.input-display{color:var(--terminal-green);font-family:VT323,monospace;font-size:18px;text-shadow:var(--glow-intensity);white-space:pre}.cursor{color:var(--terminal-green);font-family:VT323,monospace;font-size:18px;text-shadow:var(--glow-intensity);animation:blink 1s step-end infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.boot-text{color:var(--terminal-green-dim);font-size:14px;margin-bottom:20px;text-shadow:var(--glow-intensity)}.typing:after{content:"█";animation:blink .5s step-end infinite}#input:disabled~.input-display,#input:disabled~.cursor{opacity:.5}#input:disabled~.cursor{animation:none}.toggles{position:absolute;top:15px;right:15px;display:flex;gap:10px;z-index:20}.toggle-btn{background:transparent;border:1px solid var(--terminal-green-dim);color:var(--terminal-green);font-family:VT323,monospace;font-size:14px;padding:5px 10px;cursor:pointer;text-shadow:var(--glow-intensity);transition:all .1s}.toggle-btn:hover{background:#33ff331a;box-shadow:var(--glow-intensity)}.toggle-btn.muted{opacity:.5}.toggle-btn.reset-btn{color:#f339;border-color:#ff33334d;font-size:16px;padding:3px 8px;line-height:1}.toggle-btn.reset-btn:hover{color:#f33;background:#ff33331a;box-shadow:0 0 8px #ff33334d}.toggle-btn.reset-btn.armed{color:#f33;border-color:#f33;background:#ff333326;animation:resetPulse .6s ease-in-out infinite}@keyframes resetPulse{0%,to{box-shadow:0 0 5px #ff33334d}50%{box-shadow:0 0 15px #f339}}.mobile-nav{display:none}.mobile-menu-btn{cursor:pointer;font-size:18px;color:var(--terminal-green);text-shadow:var(--glow-intensity);padding:2px 8px;-webkit-user-select:none;user-select:none;transition:opacity .1s}.mobile-menu-btn:hover{opacity:.7}.mobile-panel-back{display:none}.attach-btn{cursor:pointer;font-size:18px;padding:0 6px 0 2px;opacity:.5;transition:opacity .1s;-webkit-user-select:none;user-select:none;filter:grayscale(1) brightness(1.5)}.attach-btn:hover{opacity:.9}.attach-btn.disabled{pointer-events:none;opacity:.2}.attach-preview{order:10;flex-shrink:0;display:flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid rgba(51,255,51,.2);background:#33ff3308;margin-bottom:4px;font-family:VT323,monospace;color:var(--terminal-green-dim);font-size:14px}.attach-preview-thumb{width:40px;height:40px;border:1px solid rgba(51,255,51,.2);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.attach-preview-thumb img{width:100%;height:100%;object-fit:cover}.attach-preview-thumb .file-icon{font-size:20px;opacity:.5;filter:grayscale(1) brightness(1.5)}.attach-preview-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.attach-preview-name{color:var(--terminal-green);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attach-preview-size{font-size:12px;opacity:.5}.attach-preview-close{cursor:pointer;color:#f339;font-size:16px;padding:0 4px;transition:all .1s;flex-shrink:0}.attach-preview-close:hover{color:#f33;text-shadow:0 0 8px #ff3333}.attach-error{order:10;flex-shrink:0;padding:4px 10px;color:#f33;font-family:VT323,monospace;font-size:14px;text-shadow:0 0 5px #ff3333;margin-bottom:4px}.reply-bar{order:10;flex-shrink:0;display:flex;align-items:center;gap:8px;padding:6px 10px;border-left:2px solid var(--terminal-green);background:#33ff3308;margin-bottom:4px;font-family:VT323,monospace;color:var(--terminal-green-dim);font-size:14px}.reply-bar-icon{opacity:.5;flex-shrink:0}.reply-bar-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.reply-bar-label{font-size:13px;opacity:.6}.reply-bar-text{font-size:14px;color:var(--terminal-green-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:.7}.reply-bar-close{cursor:pointer;color:#f339;font-size:16px;padding:0 4px;transition:all .1s;flex-shrink:0}.reply-bar-close:hover{color:#f33;text-shadow:0 0 8px #ff3333}.chat-msg{margin-bottom:10px;overflow-wrap:break-word}.chat-msg .msg-reply-preview{border-left:2px solid rgba(51,255,51,.3);padding:3px 8px;margin-bottom:4px;cursor:pointer;transition:background .1s;font-size:14px}.chat-msg .msg-reply-preview:hover{background:#33ff330d}.chat-msg .msg-reply-preview .reply-sender{color:var(--terminal-green-dim);opacity:.6;font-size:13px}.chat-msg .msg-reply-preview .reply-text{color:var(--terminal-green-dim);opacity:.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:400px;display:block;font-size:14px}.chat-msg .chat-img{max-width:100%;max-height:256px;border:1px solid rgba(51,255,51,.2);cursor:pointer;transition:opacity .15s;margin-bottom:4px;display:block}.chat-msg .chat-img:hover{opacity:.85}.chat-msg .file-card{display:flex;align-items:center;gap:8px;border:1px solid rgba(51,255,51,.2);padding:6px 10px;margin-bottom:4px;font-size:14px;color:var(--terminal-green-dim);max-width:350px}.chat-msg .file-card .fc-icon{font-size:16px;opacity:.5;flex-shrink:0;filter:grayscale(1) brightness(1.5)}.chat-msg .file-card .fc-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--terminal-green)}.chat-msg .file-card .fc-size{opacity:.5;flex-shrink:0;font-size:12px}.chat-msg .file-card .fc-download{color:var(--terminal-green-dim);text-decoration:none;opacity:.5;transition:opacity .1s;flex-shrink:0;cursor:pointer}.chat-msg .file-card .fc-download:hover{opacity:1}.chat-msg .msg-footer{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--terminal-green-dim);opacity:.4;margin-top:2px}.chat-msg .msg-footer .msg-reply-btn{cursor:pointer;opacity:.6;transition:opacity .1s;-webkit-user-select:none;user-select:none}.chat-msg .msg-footer .msg-reply-btn:hover{opacity:1}.chat-msg .msg-footer .msg-save-btn{cursor:pointer;opacity:.6;transition:opacity .1s;-webkit-user-select:none;user-select:none}.chat-msg .msg-footer .msg-save-btn:hover{opacity:1}.msg-highlight{outline:1px solid rgba(51,255,51,.4);outline-offset:2px;background:#33ff330d;transition:outline-color .3s,background .3s}.lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center}.lightbox-backdrop{position:absolute;inset:0;background:#000000d9}.lightbox-content{position:relative;width:fit-content;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;align-items:center;gap:8px}.lightbox-close{position:absolute;top:-30px;right:-10px;color:var(--terminal-green-dim);font-size:22px;cursor:pointer;transition:all .1s;z-index:1001;padding:4px}.lightbox-close:hover{color:var(--terminal-green);text-shadow:var(--glow-intensity)}.lightbox-img{max-width:90vw;max-height:80vh;object-fit:contain;border:1px solid rgba(51,255,51,.2)}.lightbox-footer{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 4px;font-family:VT323,monospace;font-size:14px}.lightbox-name{color:var(--terminal-green-dim);opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.lightbox-save{color:var(--terminal-green-dim);text-decoration:none;opacity:.6;transition:opacity .1s;cursor:pointer;flex-shrink:0;margin-left:12px}.lightbox-save:hover{opacity:1;color:var(--terminal-green)}.ctx-menu{position:fixed;z-index:1100;background:#111;border:1px solid rgba(51,255,51,.3);min-width:160px;font-family:VT323,monospace;font-size:16px;padding:4px 0;box-shadow:0 0 15px #0009,0 0 4px #33ff331a}.ctx-menu-item{padding:6px 14px;color:var(--terminal-green);cursor:pointer;transition:background .1s;-webkit-user-select:none;user-select:none}.ctx-menu-item:hover{background:#33ff331a;text-shadow:var(--glow-intensity)}.ctx-menu-sep{height:1px;background:#33ff3326;margin:4px 0}@media(max-width:700px){.terminal{max-width:100%;height:100vh;height:100dvh;border-radius:0;padding:15px}.connections-panel{width:160px;min-width:160px;font-size:12px;padding:6px 8px}}@media(max-width:500px){html,body{padding:0;margin:0;overflow:hidden;height:100vh;height:100dvh;min-height:0}.toggles{position:static;justify-content:flex-end;margin-bottom:4px}.boot-verbose{display:none}.boot-text{margin-bottom:8px}.connections-panel{display:none;width:100%;min-width:100%;border-right:none;font-size:14px;padding:8px 10px}.main-layout.mobile-panel-open .connections-panel{display:block;flex:1}.mobile-panel-back{display:block!important;border-bottom:1px solid rgba(51,255,51,.15);margin-bottom:6px;padding-bottom:6px;opacity:.6}.main-layout.mobile-panel-open .main-view{display:none}.mobile-nav{display:flex;align-items:center;flex-shrink:0;border-bottom:1px solid rgba(51,255,51,.15);padding:2px 0 4px;margin-bottom:4px}.terminal{padding:10px;display:flex;flex-direction:column}.screen{height:auto;flex:1;min-height:0}.message,.input-line,#inputForm,.input-display{font-size:16px}.chat-msg .chat-img{max-height:180px}.chat-msg .msg-reply-preview .reply-text{max-width:200px}}
