*,:before,:after{box-sizing:border-box;margin:0;padding:0}::selection{color:inherit;background:#b4a0dc33}::selection{color:inherit;background:#b4a0dc33}:root{--bg:#0a0a0a;--bg-panel:#111;--bg-input:#1a1a1a;--bg-hover:#1e1e1e;--bg-msg-me:#161616;--border:#222;--text:#c8c8c8;--text-dim:#555;--text-bright:#e0e0e0;--accent:#b4a0dc;--danger:#9b85c4;--danger-dim:#1e1828;--green:#3ba55d}html,body{background:var(--bg);height:100%;color:var(--text);font-family:SF Mono,Cascadia Code,JetBrains Mono,Fira Code,Consolas,Liberation Mono,monospace;font-size:13px;line-height:1.5;overflow:hidden}#app{height:100%;overflow:hidden}.login-screen{justify-content:center;align-items:center;height:100%;display:flex;position:relative}.login-ascii{filter:invert();opacity:.25;pointer-events:none;-webkit-user-select:none;user-select:none;position:absolute;bottom:0;right:10%}.login-box{background:var(--bg-panel);border:1px solid var(--border);z-index:1;width:400px;max-width:90vw;padding:32px;position:relative}.login-box h1{color:var(--text-bright);align-items:center;gap:6px;margin-bottom:4px;font-size:14px;font-weight:600;display:flex}.logo-svg{width:12px;height:12px;color:var(--text-bright)}.login-box .subtitle{color:var(--text-dim);margin-bottom:20px;font-size:11px}.login-box input{background:var(--bg-input);border:1px solid var(--border);width:100%;color:var(--text);outline:none;margin-bottom:12px;padding:10px 12px;font-family:inherit;font-size:12px}.login-box input:focus{border-color:#ffffff4d}.btn{cursor:pointer;letter-spacing:.5px;border:none;padding:10px 16px;font-family:inherit;font-size:12px;font-weight:600}.btn:hover{opacity:.85}.btn-primary{color:var(--text-bright);background:0 0;border:1px solid #ffffff26;width:100%;transition:background .2s,border-color .2s,letter-spacing .2s}.btn-primary:hover{letter-spacing:2px;background:#ffffff0f;border-color:#ffffff59}.btn-outline-danger{color:var(--text-bright);background:0 0;border:1px solid #ffffff26;padding:3px 10px;font-size:11px;transition:color .15s,border-color .15s}.btn-outline-danger:hover{color:var(--accent);border-color:var(--accent)}.btn-danger{color:var(--text-bright);background:0 0;border:1px solid #ffffff26;align-items:center;gap:6px;transition:color .15s,border-color .15s;display:inline-flex}.btn-danger:hover{color:var(--accent);border-color:var(--accent)}.btn-ghost{background:var(--bg-input);color:var(--text);border:1px solid var(--border)}.token-help-link{color:var(--text-dim);align-items:center;gap:4px;margin-bottom:14px;font-size:10px;text-decoration:none;transition:color .15s;display:inline-flex}.token-help-link:hover{color:var(--text-bright)}.login-security-link{color:var(--text-dim);opacity:.6;align-items:center;gap:4px;margin-top:14px;font-size:9px;text-decoration:none;transition:opacity .15s;display:flex}.login-security-link:hover{opacity:1}.security-popup{width:440px}.security-body{color:var(--text);padding:16px 20px 20px;font-size:11px;line-height:1.6}.security-body p{margin-bottom:10px}.security-body strong{color:var(--text-bright)}.security-body ul{margin:0 0 10px 16px;padding:0}.security-body li{color:var(--text-dim);margin-bottom:3px}.security-footer{border-top:1px solid var(--border);color:var(--text-dim);margin-top:14px;padding-top:10px;font-style:italic}.login-error{color:var(--danger);border:1px solid #9b85c44d;align-items:center;gap:6px;margin-top:12px;padding:8px 10px;font-size:10px;display:none}.login-error svg{flex-shrink:0}.tutorial-overlay{z-index:9999;background:#000000a6;justify-content:center;align-items:center;animation:.25s overlayIn;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.tutorial-overlay.closing{animation:.2s forwards overlayOut}.tutorial-popup{background:var(--bg-panel);border:1px solid var(--border);width:460px;max-width:92vw;max-height:85vh;animation:.3s cubic-bezier(.16,1,.3,1) popIn;overflow-y:auto}.tutorial-popup.closing{animation:.2s forwards popOut}.tutorial-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.tutorial-title{color:var(--text-bright);text-transform:uppercase;letter-spacing:1px;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.tutorial-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:18px;line-height:1}.tutorial-close:hover{color:var(--text-bright)}.tutorial-steps{padding:16px 20px 20px}.tutorial-step{align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.step-num{background:var(--bg-input);border:1px solid var(--border);width:20px;height:20px;color:var(--accent);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.step-text{color:var(--text);font-size:12px;line-height:1.5}.step-text strong{color:var(--text-bright)}.step-text em{color:var(--text-dim);font-style:normal}.step-text kbd{background:var(--bg-input);border:1px solid var(--border);color:var(--text-bright);padding:1px 5px;font-family:inherit;font-size:10px}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes overlayOut{0%{opacity:1}to{opacity:0}}@keyframes popIn{0%{opacity:0;transform:scale(.9)translateY(12px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes popOut{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.9)translateY(12px)}}.app-layout{grid-template-rows:42px minmax(0,1fr);grid-template-columns:280px minmax(0,1fr);width:100%;height:100%;display:grid}.header{background:var(--bg-panel);border-bottom:1px solid var(--border);grid-column:1/-1;align-items:center;gap:12px;min-width:0;padding:0 16px;display:flex}.header .brand{color:var(--text-dim);letter-spacing:1px;white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.header .user-tag{align-items:center;gap:8px;min-width:0;margin-left:auto;display:flex;overflow:hidden}.user-tag-avatar{background:var(--bg-input);width:22px;height:22px;color:var(--text-dim);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:9px;display:flex;overflow:hidden}.user-tag-avatar img{object-fit:cover;width:100%;height:100%}.user-tag-info{flex-direction:column;min-width:0;display:flex;overflow:hidden}.user-tag-name{color:var(--text-bright);white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.2;overflow:hidden}.user-tag-username{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:9px;line-height:1.2;overflow:hidden}.sidebar{background:var(--bg-panel);border-right:1px solid var(--border);min-height:0;padding:8px 0;overflow:hidden auto}.sidebar::-webkit-scrollbar{width:4px}.sidebar::-webkit-scrollbar-thumb{background:var(--border)}.dm-stats-panel{border-bottom:1px solid var(--border);padding:14px}.dm-stats-header{align-items:baseline;gap:6px;margin-bottom:10px;display:flex}.dm-stats-total{color:var(--text-bright);font-size:20px;font-weight:700;line-height:1}.dm-stats-label{color:var(--text-dim);font-size:10px}.dm-stats-chart{flex-direction:column;gap:6px;display:flex}.dm-stat-row{align-items:center;gap:8px;display:flex}.dm-stat-label{color:var(--text-dim);text-align:right;flex-shrink:0;width:50px;font-size:9px}.dm-stat-bar-bg{background:var(--bg-input);border-radius:2px;flex:1;height:4px;overflow:hidden}.dm-stat-bar{border-radius:2px;min-width:0;height:100%;transition:width .4s}.dm-stat-count{color:var(--text-dim);flex-shrink:0;width:18px;font-size:9px}.sidebar-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:1.5px;justify-content:space-between;align-items:center;padding:8px 14px 6px;font-size:10px;font-weight:700;display:flex}.dm-refresh{color:var(--text-dim);cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;transition:color .15s;display:flex}.dm-refresh:hover{color:var(--text-bright)}.dm-refresh.spinning svg{animation:.5s spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sidebar-title-actions{align-items:center;gap:6px;display:flex}.cl-all-btn{color:var(--danger);cursor:pointer;opacity:.6;background:0 0;border:none;align-items:center;padding:2px;transition:opacity .15s;display:flex}.cl-all-btn:hover{opacity:1}.cl-all-btn.active{opacity:1;animation:.8s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.cl-all-status{cursor:pointer;padding:8px 14px;transition:background .15s;display:none}.cl-all-status:hover{background:var(--bg-hover)}.cl-all-status-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.cl-all-status-label{color:var(--danger);text-transform:uppercase;letter-spacing:.5px;font-size:9px;font-weight:600}.cl-all-status-done{color:#57d98f;text-transform:uppercase;letter-spacing:.5px;font-size:9px;font-weight:600}.cl-all-status-count{color:var(--text-dim);font-size:9px}.cl-all-sidebar-info{align-items:center;gap:6px;margin-bottom:4px;display:flex}.cl-all-sidebar-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:10px;overflow:hidden}.cl-all-sidebar-progress{color:var(--text-dim);flex-shrink:0;margin-left:auto;font-size:9px}.cl-all-sidebar-bar{background:var(--bg-input);border-radius:1px;height:2px;margin-top:6px;overflow:hidden}.cl-all-sidebar-fill{background:var(--danger);border-radius:1px;height:100%;transition:width .4s}.cl-all-popup{width:420px}.cl-all-body{padding:12px 20px 20px}.cl-all-confirm{letter-spacing:.5px;width:100%;color:var(--text-bright);cursor:pointer;background:0 0;border:1px solid #ffffff26;padding:9px;font-family:inherit;font-size:11px;font-weight:600;transition:color .15s,border-color .15s}.cl-all-confirm:hover:not(:disabled){color:var(--danger);border-color:var(--danger)}.cl-all-confirm:disabled{opacity:.3;cursor:default}.cl-all-header{align-items:flex-start}.cl-all-desc{color:var(--text-dim);text-transform:none;letter-spacing:0;margin-top:4px;font-size:10px;font-weight:400;line-height:1.4}.cl-all-toolbar{justify-content:space-between;align-items:center;margin-bottom:6px;padding:0 10px 4px;display:flex}.cl-all-select-all{cursor:pointer;align-items:center;padding:0;display:flex}.cl-all-select-all input:indeterminate{border-color:#ffffff80}.cl-all-select-all input:indeterminate:after{content:"";border-bottom:2px solid var(--text-bright);width:8px;height:0;position:absolute;top:6px;left:3px}.cl-all-count{color:var(--text-dim);font-size:10px}.cl-all-list{border:1px solid var(--border);border-radius:4px;flex-direction:column;max-height:300px;margin-bottom:14px;display:flex;overflow-y:auto}.cl-all-list::-webkit-scrollbar{width:4px}.cl-all-list::-webkit-scrollbar-thumb{background:var(--border)}.cl-all-item{cursor:pointer;border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:7px 10px;transition:background .15s;display:flex}.cl-all-item:last-child{border-bottom:none}.cl-all-item:hover{background:var(--bg-hover)}.cl-all-info{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.cl-all-user{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}.cl-all-item input,.cl-all-select-all input{-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;border:1.5px solid #ffffff40;border-radius:4px;flex-shrink:0;width:16px;height:16px;transition:background .2s,border-color .2s,box-shadow .2s;position:relative}.cl-all-item input:hover,.cl-all-select-all input:hover{border-color:#ffffff80}.cl-all-item input:checked,.cl-all-select-all input:checked{background:var(--text-bright);border-color:var(--text-bright);box-shadow:none}.cl-all-item input:checked:after,.cl-all-select-all input:checked:after{content:"";border:solid var(--bg);border-width:0 2px 2px 0;width:5px;height:9px;position:absolute;top:1.5px;left:4.5px;transform:rotate(45deg)}.cl-avatar{background:var(--bg-input);width:24px;height:24px;color:var(--text-dim);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:10px;display:flex;overflow:hidden}.cl-avatar.sm{width:18px;height:18px;font-size:8px}.cl-avatar img{object-fit:cover;width:100%;height:100%}.cl-all-name{color:var(--text-bright);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.cl-all-queue{border:1px solid var(--border);border-radius:4px;flex-direction:column;max-height:350px;margin-bottom:14px;display:flex;overflow-y:auto}.cl-all-queue::-webkit-scrollbar{width:4px}.cl-all-queue::-webkit-scrollbar-thumb{background:var(--border)}.cl-all-queue .loading{padding:10px}.cl-q-item{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 10px;transition:opacity .3s;display:flex}.cl-q-item:last-child{border-bottom:none}.cl-q-item.running{background:#9b85c40f}.cl-q-item.done{opacity:.45}.cl-q-item.cancelled{opacity:.35}.cl-q-info{flex-direction:column;flex:1;min-width:0;display:flex}.cl-q-name{color:var(--text-bright);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.cl-q-user{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:9px;overflow:hidden}.cl-q-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:3px;min-width:80px;display:flex}.cl-q-status-line{align-items:center;gap:6px;display:flex}.cl-q-status{color:var(--text-dim);white-space:nowrap;font-size:10px}.cl-q-eta{color:var(--text-dim);opacity:.6;white-space:nowrap;font-size:9px}.cl-q-bar{background:var(--bg-hover);border-radius:2px;width:100%;height:3px;overflow:hidden}.cl-q-bar-fill{background:var(--danger);border-radius:2px;height:100%;transition:width .4s}.cl-q-skip{color:var(--text-dim);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:14px;line-height:1;transition:color .15s}.cl-q-skip:hover{color:var(--danger)}.cl-all-queue-actions{justify-content:flex-end;display:flex}.dm-item{cursor:pointer;border-left:2px solid #0000;align-items:center;gap:10px;padding:8px 14px;transition:background .1s;display:flex}.dm-item:hover{background:var(--bg-hover)}.dm-item.active{background:var(--bg-hover);border-left-color:var(--accent)}.dm-avatar{background:var(--bg-input);width:28px;height:28px;color:var(--text-dim);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:flex;overflow:hidden}.dm-avatar img{object-fit:cover;width:100%;height:100%}.dm-info{flex:1;min-width:0;overflow:hidden}.dm-bot{color:var(--accent);vertical-align:1px;text-transform:uppercase;letter-spacing:.5px;background:#b4a0dc26;border-radius:2px;margin-left:5px;padding:1px 4px;font-size:8px;font-weight:600}.dm-name{color:var(--text-bright);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.dm-username{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.dm-time{opacity:.85;flex-shrink:0;margin-left:auto;font-size:9px;font-weight:600}.chat-area{background:var(--bg);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.chat-placeholder{color:var(--text-dim);flex:1;justify-content:center;align-items:center;font-size:12px;display:flex}.chat-header{border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:10px;min-width:0;height:42px;padding:0 16px;display:flex}.chat-header .chat-with{color:var(--text-bright);white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:12px;font-weight:600;overflow:hidden}.chat-header .btn-purge{flex-shrink:0;margin-left:auto}.messages{flex-direction:column;flex:1 1 0;gap:0;min-height:0;padding:12px 0 24px;display:flex;overflow:hidden auto}.messages::-webkit-scrollbar{width:4px}.messages::-webkit-scrollbar-thumb{background:var(--border)}.msg{flex-shrink:0;align-items:flex-start;gap:12px;margin-top:16px;padding:2px 16px;display:flex}.msg:hover{background:var(--bg-hover)}.msg.me:hover{background:#9b85c41a}.msg.me{-webkit-user-select:none;user-select:none}.msg.deleting{pointer-events:none}.msg.delete-fade{background:#9b85c41a;transition:background .6s}.msg.me.selected{background:#9b85c42e}.select-bar{background:var(--bg-panel);border:1px solid var(--border);z-index:50;white-space:nowrap;border-radius:8px;align-items:center;gap:10px;padding:8px 16px;display:flex;position:absolute;bottom:70px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000080}.select-count{color:var(--text);font-size:11px;font-weight:600}.select-cancel{padding:4px 10px!important;font-size:11px!important}.select-delete{padding:4px 12px!important;font-size:11px!important}.select-progress-track{background:var(--bg-input);border-radius:2px;width:120px;height:3px;overflow:hidden}.select-progress-fill{background:var(--danger);width:0%;height:100%;transition:width .2s}.select-bar.closing{animation:.35s forwards barSlideOut}@keyframes barSlideOut{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(10px)}}.dis-char{transition:opacity .15s;display:inline}.dis-overlay{pointer-events:none;z-index:10;position:absolute;top:0;bottom:0;left:0;right:0;overflow:visible}.dis-particle{opacity:1;border-radius:50%;animation:.5s ease-out forwards dis-float;position:absolute}@keyframes dis-float{0%{opacity:.9;transform:translate(0)scale(1)}to{transform:translate(var(--dx), var(--dy)) scale(.3);opacity:0}}.msg.continuation{margin-top:0}.msg-avatar{background:var(--bg-input);width:36px;height:36px;color:var(--text-dim);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:flex;overflow:hidden}.msg-avatar img{object-fit:cover;width:100%;height:100%}.msg-avatar-gutter{flex-shrink:0;width:36px}.msg-body{flex:1;min-width:0}.msg-header{align-items:baseline;gap:8px;display:flex}.msg-author{color:var(--text-bright);font-size:13px;font-weight:600}.msg-time{color:var(--text-dim);font-size:10px}.msg-content{color:var(--text);white-space:pre-wrap;word-break:break-word;font-size:13px}.msg-content a{color:var(--accent);text-underline-offset:2px;text-decoration:underline}.msg-content a:hover{opacity:.8}.msg-media{margin-top:4px}.msg-unsupported{color:var(--text);align-items:center;gap:5px;margin-top:4px;font-size:10px;display:inline-flex}.msg-unsupported svg{opacity:.7;flex-shrink:0}.msg-media img{border-radius:4px;max-width:100%;max-height:300px;display:block}.video-player{background:#000;border-radius:4px;max-width:100%;display:inline-block;position:relative;overflow:hidden}.video-player video{cursor:pointer;max-width:100%;max-height:300px;display:block}.vp-download{color:var(--text-bright);opacity:0;background:#000000b3;border:1px solid #ffffff26;border-radius:4px;justify-content:center;align-items:center;padding:6px;text-decoration:none;transition:opacity .15s,background .15s;display:flex;position:absolute;top:8px;right:8px}.video-player:hover .vp-download{opacity:1}.vp-download:hover{background:#000000e6}.vp-controls{background:var(--bg-panel);border-top:1px solid var(--border);align-items:center;gap:8px;padding:6px 10px;font-family:inherit;display:flex}.vp-play,.vp-mute{color:var(--text-dim);cursor:pointer;text-align:center;background:0 0;border:none;width:12px;padding:0;font-size:10px;line-height:1;transition:color .15s}.vp-play:hover,.vp-mute:hover{color:var(--text-bright)}.vp-time{color:var(--text-dim);white-space:nowrap;min-width:70px;font-family:inherit;font-size:10px}.vp-track{background:var(--bg-input);cursor:pointer;border-radius:2px;flex:1;height:3px;overflow:hidden}.vp-fill{background:var(--accent);border-radius:2px;width:0%;height:100%;transition:width .1s linear}.chat-refresh{background:var(--bg-panel);border:1px solid var(--border);width:32px;height:32px;color:var(--text-dim);cursor:pointer;z-index:10;border-radius:50%;justify-content:center;align-items:center;transition:color .15s,border-color .15s;display:flex;position:absolute;bottom:14px;right:14px}.chat-refresh:hover{color:var(--text-bright);border-color:var(--text-dim)}.chat-refresh.spinning svg{animation:.5s spin}.overlay{z-index:100;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;top:0;bottom:0;left:0;right:0}.modal{background:var(--bg-panel);border:1px solid var(--border);width:380px;max-width:90vw;padding:24px}.modal h2{color:var(--text-bright);margin-bottom:8px;font-size:13px;font-weight:700}.modal p{color:var(--text-dim);margin-bottom:16px;font-size:11px;line-height:1.6}.purge-progress{color:var(--text);margin-bottom:12px;font-size:11px}.purge-bar{background:var(--bg-input);height:3px;margin-bottom:16px}.purge-bar-fill{background:var(--danger);width:0%;height:100%;transition:width .3s}.purge-preview{background:var(--bg-input);border:1px solid var(--border);min-height:32px;margin-bottom:12px;padding:8px 12px;overflow:hidden}.purge-preview-line{animation:.25s previewIn}.purge-preview-text{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}@keyframes previewIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.loading{text-align:center;color:var(--text-dim);padding:20px;font-size:11px}@media (max-width:640px){.app-layout{grid-template-rows:42px minmax(0,1fr);grid-template-columns:1fr}.app-layout .sidebar{display:block}.app-layout .chat-area,.app-layout.chat-open .sidebar,.app-layout.chat-open .header{display:none}.app-layout.chat-open{grid-template-rows:minmax(0,1fr)}.app-layout.chat-open .chat-area{display:flex}.chat-header .btn-back{justify-content:center;align-items:center;padding:4px;display:inline-flex}.msg{padding-left:12px;padding-right:12px}.login-screen{flex-direction:column;padding:0}.login-box{margin:auto 0;padding:24px}.login-ascii{opacity:.2;object-fit:contain;object-position:bottom;flex-shrink:1;height:55vh;position:static}}@media (min-width:641px){.chat-header .btn-back{display:none}}
