*{margin:0;padding:0;box-sizing:border-box;font-family:-apple-system,'Segoe UI',Roboto,sans-serif}:root{--bg:#0a0a0f;--surface:#12121a;--border:#222230;--border-focus:#444460;--text:#f0f0f5;--text-muted:#7e7e90;--accent:#5e46db;--accent-hover:#735ced;--success:#00b4d8;--danger:#e63946;--modal-overlay:rgba(0,0,0,0.7);--console-bg:#15151f}body{background:var(--bg);color:var(--text);min-height:100vh;display:grid;place-items:center;padding:20px}#root{width:100%;max-width:1100px}.container{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px 30px;position:relative}.logo{display:flex;align-items:center;gap:14px;margin-bottom:20px}.logo-icon{width:44px;height:44px;background:linear-gradient(135deg,#5e46db,#8b5cf6);border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.3rem;color:#fff;box-shadow:0 0 24px rgba(94,70,219,0.3)}.logo-text{font-size:1.6rem;font-weight:700;letter-spacing:-0.5px;background:linear-gradient(135deg,#f0f0f5 60%,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.logo-sub{font-size:0.75rem;color:var(--text-muted);margin-top:2px}.auth-overlay{position:fixed;inset:0;background:var(--bg);display:none;justify-content:center;align-items:center;z-index:2000;padding:20px}.auth-overlay.open{display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:36px 32px;max-width:440px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,0.6)}.auth-card h2{font-size:1.5rem;font-weight:700;margin-bottom:6px;text-align:center}.auth-card .sub{color:var(--text-muted);text-align:center;font-size:0.9rem;margin-bottom:24px}.input-group{margin-bottom:16px}.input-group label{display:block;font-size:0.7rem;color:var(--text-muted);text-transform:uppercase;font-weight:700;letter-spacing:0.5px;margin-bottom:4px}.input-group input,.input-group select{width:100%;padding:12px;background:rgba(0,0,0,0.2);border:1px solid var(--border);border-radius:8px;color:#fff;outline:none;font-size:0.9rem;transition:0.2s}.input-group input:focus,.input-group select:focus{border-color:var(--accent)}.input-group .validation-error{color:var(--danger);font-size:0.75rem;margin-top:4px;display:none}.input-group .validation-error.show{display:block}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:8px;font-weight:600;font-size:0.9rem;border:none;cursor:pointer;color:#fff;width:100%;transition:transform 0.16s cubic-bezier(.4,0,.2,1),box-shadow 0.16s ease,opacity 0.16s ease,background-color 0.16s ease,border-color 0.16s ease}.btn:hover{opacity:0.94;transform:translateY(-1px)}.btn:active{transform:translateY(0) scale(0.97);transition-duration:0.08s}.btn:disabled{opacity:0.5;cursor:not-allowed;transform:none;box-shadow:none}.btn-primary{background:var(--accent);box-shadow:0 2px 10px rgba(0,0,0,0.22)}.btn-primary:hover{box-shadow:0 6px 18px rgba(0,0,0,0.32)}.btn-secondary{background:rgba(255,255,255,0.06);border:1px solid var(--border);color:var(--text)}.btn-secondary:hover{background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.18)}.btn-danger{background:var(--danger);box-shadow:0 2px 10px rgba(0,0,0,0.22)}.btn-danger:hover{box-shadow:0 6px 18px rgba(0,0,0,0.32)}.btn-small{padding:8px 14px;font-size:0.8rem;width:auto}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.auth-tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:24px}.auth-tab{flex:1;padding:12px;text-align:center;font-weight:600;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:0.2s}.auth-tab.active{color:var(--text);border-bottom-color:var(--accent)}.auth-panel{display:none}.auth-panel.active{display:block}.auth-error{color:var(--danger);font-size:0.85rem;margin-bottom:12px;display:none}.app-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:20px}.user-badge{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,0.03);padding:6px 12px 6px 6px;border-radius:30px;border:1px solid var(--border);cursor:pointer;position:relative}.user-badge .avatar{width:32px;height:32px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.8rem;color:#fff;text-transform:uppercase}.user-badge .uname{font-weight:600;font-size:0.85rem}.user-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:8px 0;min-width:200px;display:none;z-index:100;box-shadow:0 12px 30px rgba(0,0,0,0.6)}.user-dropdown.open{display:block}.dropdown-item{padding:8px 18px;font-size:0.85rem;cursor:pointer;display:flex;align-items:center;gap:10px;color:var(--text);transition:0.15s}.dropdown-item:hover{background:rgba(255,255,255,0.05)}.dropdown-item.danger{color:var(--danger)}.dropdown-item svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;fill:none}.tabs-nav{display:flex;flex-direction:column;gap:2px;width:210px;flex-shrink:0;scrollbar-width:none}.tabs-nav::-webkit-scrollbar{display:none}.tabs-nav .tab-btn{width:100%;padding:10px 12px;border-radius:8px}.tabs-nav .tab-btn:hover{background:rgba(255,255,255,0.05)}.tabs-nav .tab-btn.active{background:rgba(94,70,219,0.16)}.tabs-nav .tab-btn.active::after{display:none}.tab-btn{background:transparent;border:none;color:var(--text-muted);padding:10px 4px;font-weight:600;font-size:0.85rem;cursor:pointer;position:relative;white-space:nowrap;display:flex;align-items:center;gap:6px;transition:0.2s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--text)}.tab-btn.active::after{content:'';position:absolute;bottom:-4px;left:0;width:100%;height:2px;background:var(--accent)}.tab-btn svg{width:18px;height:18px;stroke:currentColor;stroke-width:2;fill:none}.tab-panel{display:none;animation:fadeIn 0.25s ease}.tab-panel.active{display:block}@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.editor-zone{border:1px solid var(--border);border-radius:8px;background:rgba(0,0,0,0.2);margin-bottom:16px;transition:border-color 0.2s}.editor-zone.dragover{border-color:var(--accent);background:rgba(94,70,219,0.05)}.editor-zone textarea{width:100%;height:200px;background:transparent;border:none;color:var(--text);padding:14px;font-family:'Courier New',monospace;font-size:0.85rem;resize:vertical;outline:none}.editor-zone textarea.mini{height:100px}.editor-toolbar{display:flex;justify-content:flex-end;padding:6px 12px;border-top:1px solid var(--border);background:rgba(0,0,0,0.1)}.file-upload-label{font-size:0.7rem;color:var(--text-muted);cursor:pointer;padding:4px 10px;border:1px solid var(--border);border-radius:4px;display:flex;align-items:center;gap:4px}.file-upload-label:hover{color:var(--text);border-color:var(--border-focus)}.output-box{position:relative;background:rgba(0,0,0,0.3);border:1px solid var(--border);border-radius:6px;padding:12px;margin-top:6px}.output-box pre{font-family:monospace;font-size:0.85rem;color:var(--success);white-space:pre-wrap;word-break:break-all;padding-right:70px}.copy-btn{position:absolute;right:8px;top:8px;background:rgba(255,255,255,0.05);border:1px solid var(--border);color:var(--text);padding:4px 12px;font-size:0.7rem;border-radius:4px;cursor:pointer}.copy-btn.copied{background:var(--success);color:#000;border-color:var(--success)}.history-list{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:6px;margin-top:12px}.history-item{background:rgba(0,0,0,0.1);border:1px solid var(--border);border-radius:6px;padding:10px 12px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.history-item:hover{border-color:var(--border-focus)}.history-item .title{font-weight:600;font-size:0.85rem;color:var(--accent-hover)}.history-item .meta{font-size:0.7rem;color:var(--text-muted)}.card-panel{background:rgba(0,0,0,0.1);border:1px solid var(--border);border-radius:10px;padding:16px;margin-bottom:16px}.card-title{font-weight:600;font-size:0.95rem;margin-bottom:12px;display:flex;align-items:center;gap:8px}.toggle-container{display:flex;justify-content:space-between;align-items:center}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.slider-toggle{position:absolute;cursor:pointer;inset:0;background:rgba(255,255,255,0.08);border:1px solid var(--border);border-radius:24px;transition:0.2s}.slider-toggle::before{content:'';position:absolute;height:16px;width:16px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:0.2s}input:checked + .slider-toggle{background:var(--accent);border-color:var(--accent)}input:checked + .slider-toggle::before{transform:translateX(20px)}.modal-overlay{position:fixed;inset:0;background:var(--modal-overlay);backdrop-filter:blur(8px);display:none;justify-content:center;align-items:center;z-index:5000;padding:20px}.modal-overlay.open{display:flex}.modal-box{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:28px;max-width:440px;width:100%;box-shadow:0 20px 60px rgba(0,0,0,0.7)}.modal-box h3{font-size:1.2rem;font-weight:700;margin-bottom:6px}.modal-box .modal-desc{color:var(--text-muted);font-size:0.9rem;margin-bottom:20px}.modal-box .modal-input{width:100%;padding:12px;background:rgba(0,0,0,0.2);border:1px solid var(--border);border-radius:8px;color:#fff;font-size:0.95rem;outline:none}.modal-box .modal-input:focus{border-color:var(--accent)}.modal-box .modal-error{color:var(--danger);font-size:0.8rem;margin-top:6px;display:none}.modal-actions{display:flex;gap:12px;margin-top:20px}.modal-actions .btn{flex:1}.btn-cancel{background:transparent;border:1px solid var(--border);color:var(--text-muted)}.btn-cancel:hover{background:rgba(255,255,255,0.05)}.toast{position:fixed;top:20px;left:50%;transform:translateX(-50%) translateY(-20px);background:var(--surface);border:1px solid var(--accent);color:var(--text);padding:12px 20px;border-radius:10px;font-weight:600;box-shadow:0 8px 30px rgba(0,0,0,0.5);z-index:3000;opacity:0;pointer-events:none;transition:0.35s cubic-bezier(0.175,0.885,0.32,1.275);display:flex;align-items:center;gap:10px;min-width:200px;justify-content:center}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.toast svg{width:20px;height:20px;stroke-width:2;fill:none;flex-shrink:0}.toast .toast-icon-success{stroke:var(--success)}.toast .toast-icon-error{stroke:var(--danger)}.footer{margin-top:24px;padding-top:16px;border-top:1px solid var(--border);text-align:center;font-size:0.75rem;color:var(--text-muted)}.mini-input{width:100%;padding:12px;background:rgba(0,0,0,0.3);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:0.9rem;outline:none;font-family:'Courier New',monospace;resize:vertical;height:100px}.mini-input:focus{border-color:var(--accent)}@media (max-width:640px){.container{padding:18px}.grid-2{grid-template-columns:1fr}.tabs-nav{gap:10px}.tab-btn{font-size:0.8rem}.toast{min-width:auto;max-width:90%;padding:10px 16px;font-size:0.85rem}}.avatar{background-size:cover;background-position:center}.crop-stage{width:260px;height:260px;margin:16px auto;border-radius:50%;overflow:hidden;position:relative;background:#000;cursor:grab;touch-action:none}.crop-stage:active{cursor:grabbing}.crop-stage img{position:absolute;top:0;left:0;transform-origin:0 0;user-select:none;pointer-events:none;max-width:none}.crop-zoom-row{display:flex;align-items:center;gap:10px;margin-top:4px;color:var(--text-muted)}.crop-zoom-row input[type=range]{flex:1;accent-color:var(--accent)}.chat-status{font-size:0.75rem;color:var(--text-muted);margin-bottom:12px;display:flex;align-items:center;gap:8px}.chat-status .dot{width:8px;height:8px;border-radius:50%;background:var(--danger);flex-shrink:0}.chat-status.connected .dot{background:var(--success)}.chat-panel{display:flex;flex-direction:column;height:480px}.chat-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:4px 4px 6px;margin-bottom:4px}.chat-msg{display:flex;gap:10px;align-items:flex-start}.chat-msg .avatar{width:36px;height:36px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.85rem;color:#fff;flex-shrink:0;text-transform:uppercase;background-size:cover;background-position:center}.chat-msg-body{flex:1;min-width:0}.chat-msg-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:0.85rem}.chat-username{font-weight:700}.chat-role{display:inline-flex;align-items:center;gap:3px;font-weight:700;font-size:0.75rem}.chat-role svg{width:14px;height:14px;stroke-width:2;fill:none;flex-shrink:0}.chat-role.role-owner{color:#ffd60a}.chat-role.role-owner svg{stroke:#ffd60a}.chat-role.role-user{color:#4ea8ff}.chat-role.role-user svg{stroke:#4ea8ff}.chat-time{color:var(--text-muted);font-size:0.7rem}.chat-text{font-size:0.9rem;margin-top:2px;white-space:pre-wrap;word-break:break-word}.chat-attachment{margin-top:6px}.chat-attachment img{max-width:220px;max-height:220px;border-radius:8px;border:1px solid var(--border);display:block}.chat-file-chip{display:inline-flex;align-items:center;gap:8px;background:rgba(0,0,0,0.2);border:1px solid var(--border);padding:8px 12px;border-radius:8px;font-size:0.8rem;color:var(--text);text-decoration:none}.chat-file-chip:hover{border-color:var(--border-focus)}.chat-typing{font-size:0.75rem;color:var(--text-muted);min-height:18px;padding-left:2px;font-style:italic}.chat-input-row{display:flex;gap:8px;align-items:flex-end}.chat-input-row textarea{flex:1;resize:none;min-height:44px;max-height:120px;background:rgba(0,0,0,0.2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);font-size:0.9rem;outline:none;font-family:inherit}.chat-input-row textarea:focus{border-color:var(--accent)}.chat-attach-btn{background:rgba(255,255,255,0.06);border:1px solid var(--border);color:var(--text);width:44px;height:44px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.chat-attach-btn:hover{border-color:var(--border-focus)}.chat-attach-btn svg{width:18px;height:18px}.chat-send-btn{width:44px;height:44px;flex-shrink:0;padding:0}.chat-send-btn svg{width:18px;height:18px}.chat-pending-attach{display:none;align-items:center;gap:8px;background:rgba(0,0,0,0.2);border:1px solid var(--border);border-radius:8px;padding:6px 10px;margin-bottom:8px;font-size:0.8rem}.chat-pending-attach.show{display:flex}.chat-pending-attach img{width:32px;height:32px;object-fit:cover;border-radius:4px}.chat-pending-attach .remove{margin-left:auto;cursor:pointer;color:var(--danger);font-weight:700}
.user-badge .avatar{cursor:pointer;transition:0.15s;overflow:hidden}.user-badge .avatar:hover{box-shadow:0 0 0 2px var(--accent-hover)}.crop-stage img{width:auto;height:auto}.profile-view-box{text-align:center}.profile-view-avatar{width:120px;height:120px;border-radius:50%;background:var(--accent);margin:0 auto 16px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:2.4rem;color:#fff;text-transform:uppercase;background-size:cover;background-position:center;border:3px solid var(--border)}.profile-view-name{font-size:1.25rem;font-weight:700}.profile-view-username{color:var(--text-muted);font-size:0.9rem;margin-top:4px;margin-bottom:4px}.image-viewer-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.92);display:none;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:6000;padding:24px}.image-viewer-overlay.open{display:flex}.image-viewer-overlay img{max-width:90vw;max-height:78vh;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,0.7);object-fit:contain}.image-viewer-close{position:absolute;top:20px;right:24px;background:rgba(255,255,255,0.08);border:1px solid var(--border);color:#fff;width:40px;height:40px;border-radius:50%;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center}.image-viewer-close:hover{background:rgba(255,255,255,0.16)}.image-viewer-download{width:auto;padding:10px 22px;text-decoration:none}.chat-attachment img{cursor:zoom-in;transition:0.15s}.chat-attachment img:hover{opacity:0.85}.chat-floating-btn{position:fixed;bottom:26px;right:26px;width:58px;height:58px;border-radius:50%;background:var(--accent);border:none;box-shadow:0 8px 24px rgba(94,70,219,0.5);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:1500;transition:0.15s}.chat-floating-btn:hover{background:var(--accent-hover);transform:scale(1.05)}.chat-floating-btn svg{width:26px;height:26px;stroke:#fff}.chat-overlay{position:fixed;inset:0;background:var(--bg);z-index:4000;display:none;flex-direction:column;padding:20px;max-width:850px;margin:0 auto;width:100%}.chat-overlay.open{display:flex}.chat-overlay-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.chat-overlay-title{font-weight:700;font-size:1.05rem}.chat-back-btn{display:flex;align-items:center;gap:6px;background:rgba(255,255,255,0.06);border:1px solid var(--border);color:var(--text);padding:8px 16px;border-radius:8px;font-weight:600;font-size:0.85rem;cursor:pointer;width:auto}.chat-back-btn:hover{border-color:var(--border-focus)}.chat-back-btn svg{width:16px;height:16px}.chat-panel-overlay{flex:1;height:auto;min-height:0}@media (max-width:640px){.chat-floating-btn{bottom:18px;right:18px;width:50px;height:50px}.chat-floating-btn svg{width:22px;height:22px}.chat-overlay{padding:14px}.chat-overlay-header div[style]{display:none}}
.chat-msg .avatar{cursor:pointer}.chat-unread-dot{position:absolute;top:4px;right:4px;width:13px;height:13px;background:var(--danger);border:2px solid var(--bg);border-radius:50%}.app-shell{display:flex;gap:24px;align-items:flex-start}.app-main{flex:1;min-width:0}.sidebar-toggle-btn{display:none;background:transparent;border:1px solid var(--border);border-radius:8px;width:38px;height:38px;align-items:center;justify-content:center;color:var(--text);cursor:pointer;flex-shrink:0}.sidebar-toggle-btn:hover{background:rgba(255,255,255,0.05)}.sidebar-toggle-btn svg{width:18px;height:18px}.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:1400;opacity:0;transition:opacity 0.25s ease}.sidebar-backdrop.open{display:block;opacity:1}@media (max-width:860px){.sidebar-toggle-btn{display:flex}.app-shell{display:block}.tabs-nav{position:fixed;top:0;left:0;bottom:0;width:250px;max-width:80vw;border-right:1px solid var(--border);padding:70px 14px 14px;margin:0;background:var(--surface);transform:translateX(-100%);transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);z-index:1500;overflow-y:auto}.tabs-nav.open{transform:translateX(0)}}.chat-msg{position:relative}.chat-msg:hover .chat-msg-delete{opacity:1;pointer-events:auto}.chat-msg-delete{position:absolute;top:0;right:0;opacity:0;pointer-events:none;transition:opacity 0.15s;background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:4px;border-radius:6px}.chat-msg-delete:hover{color:var(--danger);background:rgba(230,57,70,0.1)}.chat-text-deleted{color:var(--text-muted);font-style:italic;font-size:0.85rem}.chat-text b,.chat-text strong{font-weight:700}.chat-text code{background:rgba(255,255,255,0.08);padding:1px 5px;border-radius:4px;font-family:monospace;font-size:0.85em}.chat-text s{opacity:0.7}.status-dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex-shrink:0;border:2px solid var(--surface)}.status-dot.online{background:#22c55e}.status-dot.offline{background:#6b7280}.avatar-with-status{position:relative;flex-shrink:0}.avatar-with-status .status-dot{position:absolute;bottom:-1px;right:-1px}.avatar-with-status .avatar{width:38px;height:38px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:0.85rem;color:#fff;flex-shrink:0;text-transform:uppercase;background-size:cover;background-position:center;overflow:hidden}.chat-drop-active{outline:2px dashed var(--accent);outline-offset:-6px;background:rgba(94,70,219,0.06)}.profile-view-status{display:flex;align-items:center;gap:6px;justify-content:center;font-size:0.78rem;color:var(--text-muted);margin-top:2px}.dm-thread-back-btn{display:none}.dm-floating-btn{position:fixed;right:22px;bottom:92px;width:56px;height:56px;border-radius:50%;background:var(--accent);color:#fff;border:none;display:none;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,0.4);z-index:1300}.dm-floating-btn svg{width:24px;height:24px}.dm-unread-dot{position:absolute;top:4px;right:4px;width:11px;height:11px;border-radius:50%;background:var(--danger);border:2px solid var(--bg)}.dm-overlay{position:fixed;inset:0;background:var(--bg);display:none;z-index:4200;flex-direction:column}.dm-overlay.open{display:flex}.dm-overlay-header{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border)}.dm-body{flex:1;display:flex;min-height:0}.dm-thread-list{width:280px;flex-shrink:0;border-right:1px solid var(--border);overflow-y:auto}.dm-thread-item{display:flex;align-items:center;gap:10px;padding:12px 16px;cursor:pointer;border-bottom:1px solid var(--border)}.dm-thread-item:hover,.dm-thread-item.active{background:rgba(255,255,255,0.04)}.dm-thread-name{font-weight:600;font-size:0.88rem}.dm-thread-preview{font-size:0.78rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}.dm-thread-panel{flex:1;display:flex;flex-direction:column;min-width:0}.dm-thread-panel-header{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border)}.dm-empty-state{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:0.9rem;text-align:center;padding:20px}@media (max-width:720px){.dm-thread-list{position:absolute;inset:0;z-index:2;background:var(--bg);width:100%}.dm-thread-list.hidden-mobile{display:none}.dm-thread-panel{position:absolute;inset:0;width:100%}.dm-body{position:relative}.dm-floating-btn{right:16px;bottom:82px;width:50px;height:50px}.dm-thread-back-btn{display:inline-flex}}.verify-card{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px}.verify-stage{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%}.verify-spinner{width:44px;height:44px;border:4px solid rgba(255,255,255,0.12);border-top-color:var(--accent);border-radius:50%;animation:verifySpin 0.8s linear infinite}@keyframes verifySpin{to{transform:rotate(360deg)}}.verify-stage-text{color:var(--text-muted);font-size:0.9rem;font-weight:600}#turnstileWidget{display:flex;justify-content:center;width:100%}

/* ===== Discord-style message actions (Reply / React / Delete) ===== */
.chat-msg-actions{position:absolute;top:0;right:0;display:flex;gap:2px;opacity:0;pointer-events:none;transition:opacity 0.15s;background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:2px;box-shadow:0 4px 14px rgba(0,0,0,0.35)}
.chat-msg:hover .chat-msg-actions{opacity:1;pointer-events:auto}
.chat-msg-action-btn{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:5px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background-color 0.15s ease,color 0.15s ease,transform 0.15s ease}.chat-msg-action-btn:active{transform:scale(0.88)}
.chat-msg-action-btn:hover{color:var(--text);background:rgba(255,255,255,0.08)}
.chat-msg-action-btn.danger:hover{color:var(--danger);background:rgba(230,57,70,0.1)}
.chat-msg-action-btn svg{width:15px;height:15px}
.chat-msg-actions .chat-msg-delete{position:static;top:auto;right:auto;opacity:1;pointer-events:auto}

/* ===== Reply quote block ===== */
.chat-reply-quote{display:flex;align-items:center;gap:6px;font-size:0.78rem;color:var(--text-muted);margin-bottom:3px;padding-left:10px;position:relative;max-width:100%;overflow:hidden}
.chat-reply-quote::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--border);border-radius:2px}
.chat-reply-quote .reply-author{font-weight:700;color:var(--text-muted);flex-shrink:0}
.chat-reply-quote .reply-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chat-reply-quote.deleted{font-style:italic}
.chat-reply-quote svg{width:12px;height:12px;flex-shrink:0;transform:scaleX(-1)}

/* ===== Reply bar above input ===== */
.chat-reply-bar{display:none;align-items:center;gap:8px;background:rgba(94,70,219,0.1);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;padding:7px 10px;margin-bottom:8px;font-size:0.8rem}
.chat-reply-bar.show{display:flex}
.chat-reply-bar .reply-bar-label{color:var(--text-muted);flex-shrink:0}
.chat-reply-bar .reply-bar-author{font-weight:700}
.chat-reply-bar .reply-bar-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}
.chat-reply-bar .reply-bar-cancel{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:1rem;padding:2px 6px;border-radius:4px;flex-shrink:0}
.chat-reply-bar .reply-bar-cancel:hover{color:var(--danger)}

/* ===== Reactions row ===== */
.chat-reactions{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.reaction-pill{display:inline-flex;align-items:center;gap:4px;background:rgba(255,255,255,0.06);border:1px solid var(--border);border-radius:12px;padding:2px 8px;font-size:0.78rem;cursor:pointer;transition:0.15s;line-height:1.6}
.reaction-pill:hover{border-color:var(--accent-hover);background:rgba(94,70,219,0.12)}
.reaction-pill.mine{background:rgba(94,70,219,0.22);border-color:var(--accent)}
.reaction-pill .count{font-weight:700;font-size:0.75rem}

/* ===== Emoji reaction picker popover ===== */
.reaction-picker{position:fixed;z-index:5000;display:none;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 34px rgba(0,0,0,0.5);padding:8px;gap:4px;grid-template-columns:repeat(4,1fr)}
.reaction-picker.open{display:grid}
.reaction-picker-emoji{background:transparent;border:none;font-size:1.3rem;padding:6px;border-radius:8px;cursor:pointer;line-height:1}
.reaction-picker-emoji:hover{background:rgba(255,255,255,0.1)}

/* ===== Outline "Ad" icon (was an emoji) ===== */

/* ===== DM mobile/desktop responsiveness polish ===== */
@media (max-width:720px){
.dm-overlay-header{padding:12px 14px}
.dm-thread-panel-header{padding:10px 12px}
.dm-thread-item{padding:12px 14px}
.chat-msg-actions{top:-2px}
}
@media (min-width:721px){
#dmThreadBackBtn{display:none !important}
}
.dm-notif-stack{position:fixed;top:16px;right:16px;z-index:5000;display:flex;flex-direction:column;gap:10px;max-width:320px;width:calc(100vw - 32px)}.dm-notif-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:12px 14px;box-shadow:0 8px 24px rgba(0,0,0,0.45);cursor:pointer;animation:dmNotifIn 0.22s ease}.dm-notif-card:hover{border-color:var(--accent)}.dm-notif-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px}.dm-notif-user-wrap{display:flex;align-items:center;gap:6px;min-width:0}.dm-notif-user-wrap svg{flex-shrink:0;color:var(--accent)}.dm-notif-user{font-weight:700;font-size:0.85rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dm-notif-close{background:transparent;border:none;color:var(--text-muted);cursor:pointer;padding:2px;display:flex;flex-shrink:0}.dm-notif-close:hover{color:var(--text)}.dm-notif-text{font-size:0.82rem;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}@keyframes dmNotifIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
.exec-console{margin-top:4px;background:rgba(0,0,0,0.35);border:1px solid var(--border);border-radius:8px;padding:12px;min-height:120px;max-height:340px;overflow-y:auto;font-family:monospace;font-size:0.8rem;line-height:1.5}.exec-console-empty{color:var(--text-muted)}.exec-log-line{white-space:pre-wrap;word-break:break-word;padding:2px 0;border-bottom:1px solid rgba(255,255,255,0.04)}.exec-log-line:last-child{border-bottom:none}.exec-log-time{color:var(--text-muted);margin-right:8px}.exec-log-output{color:#e5e7eb}.exec-log-error{color:#f87171}.exec-log-success{color:#4ade80}.exec-log-status{color:var(--text-muted);font-style:italic}

/* ===== Visual refresh: swatches, inputs, buttons, cards, modals ===== */
.theme-swatch-grid{display:flex;flex-wrap:wrap;gap:12px;padding:6px 2px}
.theme-swatch{width:40px;height:40px;border-radius:50%;border:2px solid rgba(255,255,255,0.12);cursor:pointer;position:relative;transition:transform 0.18s cubic-bezier(0.34,1.56,0.64,1),box-shadow 0.18s;box-shadow:0 3px 10px rgba(0,0,0,0.45)}
.theme-swatch:hover{transform:scale(1.14) translateY(-2px);box-shadow:0 6px 16px rgba(0,0,0,0.55)}
.theme-swatch:active{transform:scale(0.96)}
.theme-swatch.active{border-color:#fff;box-shadow:0 0 0 3px rgba(255,255,255,0.22),0 6px 18px rgba(0,0,0,0.55)}
.theme-swatch.active::after{content:'\2713';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:1rem;text-shadow:0 1px 4px rgba(0,0,0,0.7)}

.input-group input,.input-group select,.mini-input,.modal-box .modal-input,.editor-zone textarea,.chat-input-row textarea,#chatServerUrl{
border-radius:11px;
background:rgba(255,255,255,0.035);
border:1px solid var(--border);
box-shadow:inset 0 1px 2px rgba(0,0,0,0.25);
transition:border-color 0.18s ease,box-shadow 0.18s ease,background 0.18s ease;
}
.input-group input:hover,.input-group select:hover,.mini-input:hover,.modal-box .modal-input:hover,.editor-zone textarea:hover,#chatServerUrl:hover{
border-color:var(--border-focus);
}
.input-group input:focus,.input-group select:focus,.mini-input:focus,.modal-box .modal-input:focus,.editor-zone textarea:focus,.chat-input-row textarea:focus,#chatServerUrl:focus{
border-color:var(--accent);
box-shadow:0 0 0 3px rgba(94,70,219,0.22),inset 0 1px 2px rgba(0,0,0,0.25);
background:rgba(255,255,255,0.05);
}
.editor-zone{border-radius:11px;overflow:hidden}

.btn{border-radius:10px;box-shadow:0 2px 8px rgba(0,0,0,0.3);transition:transform 0.14s ease,box-shadow 0.14s ease,opacity 0.14s ease,filter 0.14s ease}
.btn:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(0,0,0,0.4);opacity:1;filter:brightness(1.08)}
.btn:active{transform:translateY(0);filter:brightness(0.95)}
.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-hover));box-shadow:0 3px 14px rgba(94,70,219,0.35)}
.btn-danger{background:linear-gradient(135deg,#e63946,#ff5d6c);box-shadow:0 3px 14px rgba(230,57,70,0.35)}
.btn-secondary:hover{border-color:var(--border-focus)}

.card-panel{border-radius:12px;transition:border-color 0.18s ease,transform 0.18s ease;background:linear-gradient(160deg,rgba(255,255,255,0.035),rgba(255,255,255,0.01))}
.card-panel:hover{border-color:var(--border-focus)}

.history-item{border-radius:9px;transition:border-color 0.15s ease,transform 0.15s ease,background 0.15s ease}
.history-item:hover{transform:translateX(2px);background:rgba(255,255,255,0.03)}

.modal-box{border-radius:18px;animation:modalPop 0.22s cubic-bezier(0.34,1.56,0.64,1)}
@keyframes modalPop{from{opacity:0;transform:scale(0.92) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}
.modal-box .modal-input{border-radius:10px}

.toggle-switch .slider-toggle{transition:background 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease}
input:checked + .slider-toggle{box-shadow:0 0 12px rgba(94,70,219,0.5)}

.tab-btn.active::after{box-shadow:0 0 8px var(--accent)}

/* ===== Typography refresh (plain, cleaner, cooler) ===== */
*{font-family:'Inter',-apple-system,'Segoe UI',Roboto,sans-serif}
body{letter-spacing:-0.1px;line-height:1.5}
.logo-text{letter-spacing:-0.8px}
h2,.auth-card h2{letter-spacing:-0.4px;font-weight:800}
.input-group label{letter-spacing:0.6px;font-weight:700}
.tab-btn{letter-spacing:-0.1px}
.btn{letter-spacing:-0.1px}
.chat-text{line-height:1.55}

/* ===== Tabs nav brand header (top of the sidebar, above all tab buttons) ===== */
.tabs-nav-brand{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--border)}
.tabs-nav-brand-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--accent),var(--accent-hover));border-radius:10px;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;color:#fff;box-shadow:0 0 16px rgba(94,70,219,0.3);flex-shrink:0}
.tabs-nav-brand-name{font-size:0.98rem;font-weight:800;letter-spacing:-0.4px;line-height:1.2}
.tabs-nav-brand-sub{font-size:0.68rem;color:var(--text-muted);margin-top:1px}
@media (max-width:860px){.tabs-nav-brand{margin-bottom:10px}}

/* ===== Discord-style chat markdown: headings & bullet lists ===== */
.chat-heading{font-weight:800;line-height:1.35;margin:3px 0 2px}
.chat-heading-1{font-size:1.25em}
.chat-heading-2{font-size:1.12em}
.chat-heading-3{font-size:1.03em}
.chat-list-item{position:relative;padding-left:15px;margin:1px 0}
.chat-list-item::before{content:'\2022';position:absolute;left:1px;color:var(--accent);font-weight:700}.sidebar-toggle-btn,.chat-attach-btn,.copy-btn,.chat-send-btn,.dm-floating-btn,.chat-floating-btn{transition:background-color 0.15s ease,border-color 0.15s ease,color 0.15s ease,transform 0.15s ease,box-shadow 0.15s ease}.sidebar-toggle-btn:hover,.chat-attach-btn:hover,.copy-btn:hover{transform:translateY(-1px);background:rgba(255,255,255,0.1);border-color:rgba(255,255,255,0.2)}.dm-floating-btn:hover,.chat-floating-btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(0,0,0,0.45)}.sidebar-toggle-btn:active,.chat-attach-btn:active,.copy-btn:active,.chat-send-btn:active,.dm-floating-btn:active,.chat-floating-btn:active{transform:scale(0.93)}.reaction-pill{transition:background-color 0.15s ease,border-color 0.15s ease,transform 0.1s ease}.reaction-pill:active{transform:scale(0.93)}