:root{--bg-base: #111827;--bg-surface: #1f2937;--bg-elevated: #374151;--bg-terminal: #0d0d0d;--bg-input: #0f172a;--text-primary: #e5e7eb;--text-secondary: #9ca3af;--text-muted: #6b7280;--text-disabled: #4b5563;--accent: #5eead4;--accent-hover: #99f6e4;--accent-dim: #2dd4bf;--accent-bg: #134e4a;--terminal-text: #5eead4;--terminal-input: #fbbf24;--terminal-ts: #4b5563;--danger: #f87171;--danger-bg: #451a1a;--danger-border: #7f1d1d;--success: #86efac;--success-bg: #14532d;--success-border: #166534;--info: #93c5fd;--info-bg: #1e3a5f;--info-border: #1e40af;--warning: #fbbf24;--warning-bg: #3b2f1a;--warning-border: #92400e;--terminal-font: monospace;--font-xs: 11px;--font-sm: 13px;--font-base: 14px;--font-md: 16px;--font-lg: 18px;--font-xl: 20px;--font-2xl: 24px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-7: 28px;--space-8: 32px;--space-9: 36px;--space-10: 40px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;overflow:hidden}body{background:var(--bg-base);color:var(--text-primary);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:var(--font-base);line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:40px;padding:var(--space-2) var(--space-4);border:1px solid transparent;border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-sm);font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:var(--bg-base);border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn-secondary{background:var(--bg-elevated);color:var(--accent);border-color:var(--bg-elevated)}.btn-secondary:hover:not(:disabled){background:var(--text-disabled)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:var(--text-disabled)}.btn-ghost:hover:not(:disabled){color:var(--text-primary);border-color:var(--text-secondary)}.btn-danger{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.btn-danger:hover:not(:disabled){background:var(--danger-border)}.btn-sm{min-height:32px;padding:var(--space-1) var(--space-3);font-size:var(--font-xs)}.form-input,.form-select{min-height:40px;padding:var(--space-2) var(--space-3);background:var(--bg-input);color:var(--text-primary);border:1px solid var(--text-disabled);border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-sm);width:100%;transition:border-color .15s ease,box-shadow .15s ease}.form-input:focus,.form-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #5eead426}.form-input::placeholder{color:var(--text-muted)}.form-input:disabled{opacity:.5;cursor:not-allowed}.form-label{display:block;color:var(--text-secondary);font-size:var(--font-sm);font-weight:500;margin-bottom:var(--space-1)}.form-group{margin-bottom:var(--space-4)}.form-checkbox{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--font-sm);color:var(--text-secondary)}.form-checkbox input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.card{background:var(--bg-surface);border:1px solid var(--bg-elevated);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:0 1px 3px #0000004d,0 1px 2px #0003}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);color:var(--text-muted);font-size:var(--font-sm)}.page{max-width:960px;margin:0 auto;padding:var(--space-5);height:100%;overflow-y:auto}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.page-title{font-size:var(--font-xl);font-weight:600;color:var(--accent)}.nav-links{display:flex;gap:var(--space-4);align-items:center}.error-message{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);font-size:var(--font-sm);margin-bottom:var(--space-4)}.toast-container{position:fixed;top:var(--space-4);right:var(--space-4);z-index:9999;display:flex;flex-direction:column;gap:var(--space-2)}.toast{padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:500;animation:slideIn .3s ease;max-width:360px;word-break:break-word}.toast-success{background:var(--success-bg);color:var(--success);border:1px solid var(--success-border)}.toast-error{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.toast-info{background:var(--info-bg);color:var(--info);border:1px solid var(--info-border)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.spinner{border:3px solid var(--bg-elevated);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}.spinner-sm{width:16px;height:16px;border-width:2px}.spinner-md{width:24px;height:24px}.spinner-lg{width:40px;height:40px;border-width:4px}@keyframes spin{to{transform:rotate(360deg)}}.terminal-output-wrapper{position:relative;flex:1;display:flex;flex-direction:column;overflow:hidden}.scroll-to-bottom-btn{position:absolute;bottom:16px;right:16px;width:36px;height:36px;border-radius:50%;border:1px solid var(--bg-elevated);background:var(--bg-surface);color:var(--accent);font-size:18px;cursor:pointer;z-index:10;opacity:.85;transition:opacity .15s;display:flex;align-items:center;justify-content:center}.scroll-to-bottom-btn:hover{opacity:1;background:var(--bg-elevated)}.terminal-output{background:var(--bg-terminal);font-family:var(--terminal-font);font-size:var(--font-base);padding:var(--space-3);overflow-y:auto;overflow-x:hidden;overscroll-behavior-x:none;white-space:pre-wrap;word-wrap:break-word}.terminal-line{padding:1px 0;position:relative;font-family:var(--terminal-font)}.terminal-line-output{color:var(--terminal-text)}.terminal-line-input{color:var(--terminal-input)}.terminal-line-command-block{background:var(--bg-surface);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);margin:var(--space-1) 0}.terminal-line-bookmark-marker{border-left:3px solid var(--accent);padding-left:var(--space-2);color:var(--accent-dim)}.terminal-timestamp{color:var(--terminal-ts);font-size:var(--font-xs);margin-right:var(--space-2)}.terminal-link{text-decoration:underline;color:inherit}.terminal-link:hover{color:var(--accent)}.bookmark-icon{position:absolute;left:var(--space-2);top:50%;transform:translateY(-50%);opacity:.2;cursor:pointer;color:var(--text-muted);font-size:var(--font-sm);transition:opacity .15s,color .15s}.terminal-line:hover .bookmark-icon{opacity:.5}.bookmark-icon.active{opacity:1;color:var(--danger)}.terminal-input-container{position:relative;display:flex;align-items:stretch;background:var(--bg-input);border-top:1px solid var(--bg-elevated)}.autocomplete-dropdown{position:absolute;bottom:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--bg-elevated);border-bottom:none;font-family:var(--terminal-font);font-size:var(--font-sm);z-index:10}.autocomplete-item{padding:var(--space-2) var(--space-3);color:var(--text-primary);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.autocomplete-item:hover,.autocomplete-item.selected{background:var(--accent-bg);color:var(--accent)}.terminal-input{flex:1;min-height:40px;padding:var(--space-2) var(--space-3);background:transparent;color:var(--terminal-input);font-family:var(--terminal-font);font-size:var(--font-base);border:none;outline:none;white-space:pre-wrap;word-wrap:break-word;overflow-y:auto;max-height:120px}.terminal-input:empty:before{content:attr(data-placeholder);color:var(--text-muted)}.terminal-input.disabled{opacity:.4;pointer-events:none}.terminal-input.compose-mode{max-height:300px;min-height:80px}.compose-send-btn{align-self:flex-end;margin:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--accent);color:var(--bg-base);border:none;border-radius:var(--radius-md);font-family:inherit;font-size:var(--font-sm);font-weight:500;cursor:pointer;white-space:nowrap}.compose-send-btn:hover:not(:disabled){background:var(--accent-hover)}.compose-send-btn:disabled{opacity:.5;cursor:not-allowed}.mobile-input-controls{display:flex;flex-direction:row;align-items:center;gap:2px;padding:0 var(--space-1)}.mobile-control-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;border-radius:var(--radius-sm);font-size:var(--font-base);display:flex;align-items:center;justify-content:center;min-width:32px;min-height:32px}.mobile-control-btn:active{background:var(--accent-bg)}.mobile-send-btn{background:none;border:none;color:var(--accent);font-family:inherit;font-size:var(--font-base);font-weight:600;cursor:pointer;padding:var(--space-1) var(--space-3);white-space:nowrap}.mobile-send-btn:active{opacity:.7}.mobile-send-btn:disabled{opacity:.3;cursor:not-allowed}.client-page{display:flex;flex-direction:column;height:100%}.client-topbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--bg-surface);border-bottom:1px solid var(--bg-elevated);flex-wrap:wrap}.client-topbar-right{display:flex;align-items:center;gap:var(--space-3);margin-left:auto}.client-output-area{flex:1;overflow:hidden;display:flex;flex-direction:column}.mobile-buttons{display:flex;gap:var(--space-2);padding:var(--space-2) var(--space-3);overflow-x:auto;background:var(--bg-surface);border-top:1px solid var(--bg-elevated);-webkit-overflow-scrolling:touch}.mobile-buttons button{flex-shrink:0;background:var(--bg-elevated);color:var(--accent);border:1px solid var(--accent-bg);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-family:inherit;font-size:var(--font-sm);cursor:pointer;white-space:nowrap;min-height:36px}.mobile-buttons button:active{background:var(--accent-bg)}.client-topbar-mobile{display:flex;align-items:stretch;flex-shrink:0}.client-topbar-mobile .tab-bar{flex:1;min-width:0}.mobile-topbar-option{display:flex;align-items:center;padding:0 var(--space-2);background:var(--bg-surface);border-bottom:1px solid var(--bg-elevated);font-size:var(--font-xs);white-space:nowrap;flex-shrink:0}.tab-bar{display:flex;background:var(--bg-surface);border-bottom:1px solid var(--bg-elevated);overflow-x:auto;-webkit-overflow-scrolling:touch;flex-shrink:0}.tab-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);cursor:pointer;font-size:var(--font-sm);color:var(--text-secondary);border-bottom:2px solid transparent;white-space:nowrap;flex-shrink:0;transition:color .15s,border-color .15s;cursor:grab}.tab-item:active{cursor:grabbing}.tab-item.dragging{opacity:.4}.tab-item:hover{color:var(--text-primary)}.tab-item.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-item.disconnected{opacity:.5}.tab-label{display:flex;gap:var(--space-1);align-items:baseline}.tab-server{font-size:var(--font-xs);color:var(--text-muted)}.tab-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:var(--font-md);line-height:1;padding:0 2px;border-radius:var(--radius-sm);transition:color .15s,background .15s}.tab-close:hover{color:var(--danger);background:var(--danger-bg)}.tab-avatar-wrap{position:relative;flex-shrink:0;width:20px;height:20px}.tab-avatar{width:20px;height:20px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.tab-hotkey-badge{position:absolute;bottom:-3px;right:-4px;font-size:9px;font-weight:700;line-height:1;min-width:12px;height:12px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);color:var(--text-muted);border-radius:var(--radius-sm);pointer-events:none}.tab-item.active .tab-hotkey-badge{color:var(--accent)}.tab-hotkey-num{font-size:10px;font-weight:600;color:var(--text-muted);flex-shrink:0;opacity:.6}.tab-item.active .tab-hotkey-num{color:var(--accent);opacity:.8}.tab-unread-dot{width:8px;height:8px;background:var(--accent);border-radius:50%;flex-shrink:0}.tab-chip{position:relative;width:32px;height:32px;border-radius:50%;border:2px solid transparent;background:var(--bg-elevated);cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:border-color .15s;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.tab-chip.active{border-color:var(--accent)}.tab-chip.disconnected{opacity:.5}.tab-chip-avatar{width:100%;height:100%;object-fit:cover}.tab-chip-initial{font-size:var(--font-sm);font-weight:600;color:var(--text-secondary)}.tab-chip.active .tab-chip-initial{color:var(--accent)}.tab-chip-unread{position:absolute;top:-1px;right:-1px;width:8px;height:8px;background:var(--accent);border-radius:50%;border:1px solid var(--bg-surface)}.tab-chip-add{border:2px dashed var(--text-disabled);background:transparent}.tab-chip-add:active{background:var(--bg-elevated)}.tab-chip-add .tab-chip-initial{font-size:var(--font-md);color:var(--text-muted)}.tab-chip-popover{position:fixed;min-width:180px;max-height:240px;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--bg-elevated);border-radius:var(--radius-md);box-shadow:0 4px 12px #0006;z-index:50}.tab-chip-popover-item{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:var(--font-sm);color:var(--text-primary);cursor:pointer;white-space:nowrap}.tab-chip-popover-item:active{background:var(--accent-bg)}.tab-chip-popover-item.disabled{color:var(--text-muted);cursor:default}.tab-chip-popover-item.connected{color:var(--text-secondary)}.tab-chip-popover-bullet{width:6px;height:6px;background:var(--accent);border-radius:50%;flex-shrink:0}.tab-chip-popover-name{flex:1;overflow:hidden;text-overflow:ellipsis}.tab-chip-popover-server{font-size:var(--font-xs);color:var(--text-muted)}.character-select{min-width:160px}.settings-section{margin-bottom:var(--space-8)}.settings-section h2{font-size:var(--font-lg);font-weight:600;color:var(--accent);margin-bottom:var(--space-4);padding-bottom:var(--space-2);border-bottom:1px solid var(--bg-elevated)}.settings-list{display:flex;flex-direction:column;gap:var(--space-3)}.settings-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--bg-elevated)}.settings-item-actions{display:flex;gap:var(--space-2)}.logs-page{display:flex;height:100%}.logs-sidebar{width:280px;min-width:280px;background:var(--bg-surface);border-right:1px solid var(--bg-elevated);display:flex;flex-direction:column;overflow-y:auto}.logs-sidebar-section{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--bg-elevated)}.logs-sidebar-section h3{font-size:var(--font-sm);font-weight:600;color:var(--text-secondary);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.5px}.logs-date-list{display:flex;flex-direction:column;gap:2px}.logs-date-item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-sm);color:var(--text-secondary);transition:all .1s}.logs-date-item:hover{background:var(--bg-elevated);color:var(--text-primary)}.logs-date-item.active{background:var(--accent-bg);color:var(--accent)}.logs-bookmark-item{padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-xs);color:var(--text-muted);transition:all .1s}.logs-bookmark-item:hover{background:var(--bg-elevated);color:var(--text-secondary)}.logs-bookmark-note{color:var(--accent-dim)}.logs-bookmark-preview{color:var(--text-disabled);font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.logs-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.logs-header{padding:var(--space-3) var(--space-4);background:var(--bg-surface);border-bottom:1px solid var(--bg-elevated);display:flex;align-items:center;justify-content:space-between}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-5)}.auth-card{width:100%;max-width:400px}.auth-title{text-align:center;font-size:var(--font-2xl);font-weight:600;color:var(--accent);margin-bottom:var(--space-6)}.auth-footer{text-align:center;margin-top:var(--space-4);font-size:var(--font-sm);color:var(--text-muted)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.modal{background:var(--bg-surface);border:1px solid var(--bg-elevated);border-radius:var(--radius-lg);padding:var(--space-6);max-width:480px;width:100%}.modal h3{font-size:var(--font-lg);font-weight:600;color:var(--danger);margin-bottom:var(--space-4)}.modal-actions{display:flex;gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-5)}.highlight-rule{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--bg-surface);border-radius:var(--radius-sm)}.highlight-color-preview{width:20px;height:20px;border-radius:var(--radius-sm);border:1px solid var(--bg-elevated)}.filter-rule{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2);background:var(--bg-surface);border-radius:var(--radius-sm)}.filter-rule-mode{font-size:var(--font-xs);color:var(--text-muted);background:var(--bg-elevated);padding:2px var(--space-2);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.terminal-line-filtered{cursor:pointer;opacity:.4;transition:opacity .15s}.terminal-line-filtered:hover{opacity:.7}.filter-placeholder{color:var(--text-muted);font-style:italic;font-size:var(--font-xs)}.bookmark-flash{animation:flashHighlight 1.5s ease-out}@keyframes flashHighlight{0%{background:var(--accent-bg)}to{background:transparent}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-base)}::-webkit-scrollbar-thumb{background:var(--bg-elevated);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-disabled)}.app-layout{display:flex;height:100vh;height:100dvh;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.app-main{flex:1;overflow:hidden;height:100%;display:flex;flex-direction:column}.app-main-content{flex:1;overflow:hidden;min-height:0}.sidebar-collapsed .app-main{padding-left:44px}.sidebar{width:180px;min-width:180px;background:var(--bg-surface);border-right:1px solid var(--bg-elevated);display:flex;flex-direction:column;justify-content:space-between;transition:width .2s ease,min-width .2s ease,transform .2s ease;overflow:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.sidebar:not(.open){width:0;min-width:0;border-right:none}.sidebar-toggle{position:fixed;top:calc(var(--space-2) + env(safe-area-inset-top));left:var(--space-2);z-index:101;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg-surface);border:1px solid var(--bg-elevated);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-lg);cursor:pointer;line-height:1}.sidebar-toggle:hover{color:var(--text-primary);border-color:var(--text-secondary)}.sidebar-toggle:active{background:var(--bg-elevated)}.sidebar-overlay{display:none}.sidebar-nav{display:flex;flex-direction:column;padding:var(--space-3);padding-top:48px;gap:var(--space-1)}.sidebar-link{display:block;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-sm);font-weight:500;transition:all .15s ease;text-decoration:none}.sidebar-link:hover{background:var(--bg-elevated);color:var(--text-primary)}.sidebar-link.active{background:var(--accent-bg);color:var(--accent)}.sidebar-avatars{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-top:1px solid var(--bg-elevated)}.sidebar-avatar-btn{position:relative;width:100%;aspect-ratio:1;padding:0;border:2px solid transparent;border-radius:var(--radius-md);background:var(--bg-elevated);cursor:pointer;overflow:hidden;transition:border-color .15s,opacity .15s}.sidebar-avatar-btn{opacity:.5;filter:grayscale(.4) brightness(.7);cursor:grab}.sidebar-avatar-btn:active{cursor:grabbing}.sidebar-avatar-btn.dragging{opacity:.25}.sidebar-avatar-btn:hover{border-color:var(--text-disabled);opacity:.75;filter:grayscale(.2) brightness(.85)}.sidebar-avatar-btn.active{border-color:var(--accent);opacity:1;filter:none}.sidebar-avatar-btn.offline{opacity:.35;filter:grayscale(.6) brightness(.5)}.sidebar-avatar-img{width:100%;height:100%;object-fit:cover;display:block}.sidebar-avatar-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-muted);font-size:var(--font-sm);font-weight:600}.sidebar-avatar-hotkey{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:4rem;font-weight:800;color:#ffffff73;text-shadow:0 1px 4px rgba(0,0,0,.7);pointer-events:none}.sidebar-avatar-add-wrap{position:relative}.sidebar-avatar-add{border:2px dashed var(--text-disabled)!important;background:transparent!important;opacity:.6!important;filter:none!important}.sidebar-avatar-add:hover{opacity:.9!important;border-color:var(--text-secondary)!important}.sidebar-avatar-add .sidebar-avatar-placeholder{font-size:var(--font-xl);color:var(--text-muted)}.sidebar-avatar-popover{position:absolute;left:calc(100% + var(--space-2));bottom:0;min-width:180px;max-height:240px;overflow-y:auto;background:var(--bg-surface);border:1px solid var(--bg-elevated);border-radius:var(--radius-md);box-shadow:0 4px 12px #0006;z-index:150}.sidebar-avatar-unread{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:var(--accent);border-radius:50%;border:1px solid var(--bg-surface)}.sidebar-footer{padding:var(--space-3);border-top:1px solid var(--bg-elevated);display:flex;flex-direction:column;gap:var(--space-2)}.sidebar-username{font-size:var(--font-sm);color:var(--text-muted);padding:0 var(--space-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.notice-banner{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-4);font-size:var(--font-sm);font-weight:500;flex-shrink:0}.notice-text{flex:1}.notice-dismiss{background:none;border:none;color:inherit;font-size:var(--font-lg);cursor:pointer;padding:0 var(--space-2);opacity:.7;line-height:1}.notice-dismiss:hover{opacity:1}.notice-info{background:var(--info-bg);color:var(--info);border-bottom:1px solid var(--info-border)}.notice-warning{background:var(--warning-bg);color:var(--warning);border-bottom:1px solid var(--warning-border)}.notice-danger{background:var(--danger-bg);color:var(--danger);border-bottom:1px solid var(--danger-border)}.split-container{display:flex;flex:1;min-height:0}.split-pane{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;border:2px solid transparent;transition:border-color .15s ease}.split-pane.focused{border-color:var(--accent-dim)}.split-divider{width:1px;background:var(--bg-elevated);flex-shrink:0}.split-pane-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--bg-surface);border-bottom:1px solid var(--bg-elevated);font-size:var(--font-xs);color:var(--text-secondary);flex-shrink:0}.split-pane-avatar{width:18px;height:18px;border-radius:var(--radius-sm);object-fit:cover;flex-shrink:0}.split-pane-name{font-weight:500}.split-pane-select{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--text-disabled);border-radius:var(--radius-sm);padding:2px var(--space-2);font-size:var(--font-xs);font-family:inherit;cursor:pointer}.split-pane-select:focus{outline:none;border-color:var(--accent)}.split-pane-focus-badge{font-size:10px;font-weight:600;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin-left:auto}.split-container.split-horizontal{flex-direction:column}.split-container.split-horizontal .split-divider{width:auto;height:1px}.crop-modal{max-width:500px}.crop-container{position:relative;width:100%;height:300px;background:var(--bg-base);border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-4)}.crop-controls{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-2)}.crop-zoom-slider{flex:1;accent-color:var(--accent);height:4px}.media-avatar-btn{position:absolute;bottom:var(--space-2);right:var(--space-2);z-index:10;padding:var(--space-1) var(--space-2);background:#000000b3;color:var(--accent);border:1px solid var(--accent-bg);border-radius:var(--radius-sm);font-family:inherit;font-size:var(--font-xs);font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s}.media-avatar-btn:hover{background:#000000e6;color:var(--accent-hover)}@media(max-width:768px){.terminal-output{font-size:var(--font-xs)}.mobile-buttons{padding:var(--space-1) var(--space-2)}.mobile-buttons button{min-height:32px;padding:var(--space-1) var(--space-2);font-size:var(--font-xs)}.terminal-input{min-height:36px;font-size:16px}.sidebar-toggle{display:none}.sidebar-collapsed .app-main{padding-left:0}.sidebar{position:fixed;top:0;left:0;width:180px;min-width:180px;height:100vh;height:100dvh;z-index:100;transform:translate(-100%);box-shadow:none;transition:transform .2s ease;overscroll-behavior:contain}.sidebar:not(.open){width:180px;min-width:180px;border-right:1px solid var(--bg-elevated)}.sidebar.open{transform:translate(0);box-shadow:4px 0 16px #0006}.sidebar-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:99;background:#00000080;touch-action:none}.sidebar.open~.app-main{pointer-events:none}.logs-page{flex-direction:column}.logs-sidebar{width:100%;min-width:unset;max-height:35vh;border-right:none;border-bottom:1px solid var(--bg-elevated)}.logs-main{width:100%}}
