*{box-sizing:border-box}html,body{height:100%;margin:0;background:#0a0e14;color:#d6deeb;font-family:Consolas,Menlo,monospace}
#topbar{display:flex;align-items:center;gap:8px;background:#1b2431;padding:8px 12px;font-size:14px;border-bottom:1px solid #000}
.dot{width:12px;height:12px;border-radius:50%;display:inline-block;flex:none}.r{background:#ff5f56}.y{background:#ffbd2e}.g{background:#27c93f}
#title{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#status{font-size:12px;flex:none}.online{color:#27c93f}.offline{color:#ff5f56}
#online{font-size:12px;background:#0a0e14;border:1px solid #333;border-radius:12px;padding:2px 8px;flex:none}
#nick,#feed-toggle{background:#0a0e14;color:#7ee2a8;border:1px solid #333;border-radius:6px;padding:3px 8px;font:inherit;font-size:12px;cursor:pointer;flex:none}
#nick:hover,#feed-toggle:hover{border-color:#27c93f}
#logout{color:#888;text-decoration:none;flex:none}
#main{display:flex;height:calc(100% - 37px)}
#terminal{flex:1;min-width:0;overflow-y:auto;padding:12px;font-size:15px;line-height:1.5}
#output{white-space:pre-wrap;word-break:break-all}
.cmd-line{color:#fff}.cmd-line .t{color:#5a6b85;font-size:12px}.cmd-line .who{color:#7ee2a8;font-size:12px}
.out{color:#a8b8d1}.err-line{color:#ff5f56}
.ai-check{display:flex;align-items:center;gap:8px;color:#7ee2a8;font-size:13px;padding:2px 0}
.ai-spin{width:12px;height:12px;flex:none;border:2px solid #1c2942;border-top-color:#27c93f;border-radius:50%;animation:spin 0.8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.ai-block{border:1px solid #ff5f56;border-radius:6px;padding:8px 10px;margin:4px 0;background:#2a1215}
.ai-block-title{color:#ff5f56;font-weight:bold}.ai-block-reason{color:#e8b4b8;font-size:13px;margin-top:2px}
#input-line{display:flex;align-items:center}#prompt{color:#27c93f;white-space:nowrap;margin-right:6px}
#cmd{flex:1;min-width:0;background:transparent;border:0;outline:0;color:#fff;font:inherit;caret-color:#27c93f}
#feed{width:340px;flex:none;border-left:1px solid #000;background:#0d1320;display:flex;flex-direction:column}
#feed-head{padding:8px 12px;background:#1b2431;font-size:13px;border-bottom:1px solid #000}
#feed-hint{color:#5a6b85;font-size:11px}
#feed-list{flex:1;overflow-y:auto;padding:8px;font-size:12px}
.feed-item{border:1px solid #1c2942;border-radius:6px;padding:6px 8px;margin-bottom:6px;cursor:pointer}
.feed-item:hover{border-color:#27c93f}
.feed-meta{display:flex;gap:6px;font-size:11px;margin-bottom:2px}.feed-meta .t{color:#5a6b85}.feed-meta .who{color:#7ee2a8}.feed-meta .ip{color:#5a6b85;margin-left:auto}
.feed-cmd{color:#fff;word-break:break-all;white-space:pre-wrap}.feed-out{color:#7d8aa3;word-break:break-all;white-space:pre-wrap;margin-top:2px;font-size:11px}
body.feed-hidden #feed{display:none}
.login-wrap{height:100vh;display:flex;align-items:center;justify-content:center}
.login-box{background:#1b2431;padding:30px;border-radius:10px;display:flex;flex-direction:column;gap:10px;min-width:280px;text-align:center}
.login-box input{padding:10px;border-radius:6px;border:1px solid #333;background:#0a0e14;color:#fff}
.login-box button{padding:10px;border:0;border-radius:6px;background:#27c93f;font-weight:bold;cursor:pointer}
.login-box small{color:#666}.err{color:#ff5f56}
@media(max-width:900px){#feed{position:fixed;right:0;top:37px;bottom:0;width:min(340px,90vw);z-index:10;box-shadow:-4px 0 12px #000}body.feed-hidden #feed{display:none}#terminal{font-size:14px}#title{font-size:12px}}
