:root{--bg-primary: #0d1117;--bg-secondary: #161b22;--bg-card: #1c2128;--text-primary: #e6edf3;--text-secondary: #8b949e;--accent: #58a6ff;--accent-hover: #79b8ff;--success: #3fb950;--danger: #f85149;--warning: #d29922;--border: #30363d;--radius: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.5;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}.header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.header h1{font-size:1.1rem;font-weight:600;color:var(--text-primary)}.header-right{display:flex;align-items:center;gap:1rem}.header-right span{color:var(--text-secondary);font-size:.875rem}button{cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);padding:.5rem 1rem;font-size:.875rem;background:var(--bg-card);color:var(--text-primary);transition:background .15s,border-color .15s}button:hover{background:var(--bg-secondary);border-color:var(--text-secondary)}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}button.danger{color:var(--danger);border-color:var(--danger)}button.danger:hover{background:var(--danger);color:#fff}input{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;color:var(--text-primary);font-size:.875rem;width:100%}input:focus{outline:none;border-color:var(--accent)}label{display:block;margin-bottom:.25rem;color:var(--text-secondary);font-size:.8rem}.form-group{margin-bottom:1rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.page{max-width:960px;margin:2rem auto;padding:0 1.5rem}.page h2{margin-bottom:1rem;font-size:1.5rem}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:500}.badge.online{background:#3fb95026;color:var(--success)}.badge.offline{background:#8b949e26;color:var(--text-secondary)}.error{color:var(--danger);font-size:.85rem;margin-top:.5rem}.auth-page{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - 60px);padding:1.5rem}.auth-form{width:100%;max-width:400px}.auth-form h2{margin-bottom:1.25rem;font-size:1.5rem;text-align:center}.auth-form button[type=submit]{width:100%;margin-top:.5rem;padding:.625rem 1rem}.auth-form button:disabled{opacity:.6;cursor:not-allowed}.auth-link{text-align:center;margin-top:1rem;color:var(--text-secondary);font-size:.85rem}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.page-header h2{margin-bottom:0}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-secondary)}.hub-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media (max-width: 768px){.hub-grid{grid-template-columns:1fr}}.hub-card{cursor:pointer;transition:border-color .15s}.hub-card:hover{border-color:var(--accent)}.hub-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.hub-card-meta{display:flex;align-items:center;gap:1rem;color:var(--text-secondary);font-size:.8rem}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.35rem;vertical-align:middle}.status-dot.online{background:var(--success)}.status-dot.offline{background:var(--text-secondary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{width:100%;max-width:440px;margin:1rem}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.modal-header h3{font-size:1.1rem}.modal-close{background:none;border:none;color:var(--text-secondary);font-size:1.5rem;padding:0;line-height:1;cursor:pointer}.modal-close:hover{color:var(--text-primary);background:none;border:none}.token-display{width:100%;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;color:var(--text-primary);font-family:SF Mono,Monaco,Cascadia Code,monospace;font-size:.8rem;resize:none}.hub-detail-header{display:flex;align-items:flex-start;justify-content:space-between;margin:1rem 0}.hub-detail-meta{display:flex;align-items:center;gap:.75rem;margin-top:.35rem}.meta-item{color:var(--text-secondary);font-size:.85rem}.tab-nav{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:1rem}.tab-nav button{border:none;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--text-secondary);padding:.5rem 1rem;font-size:.9rem}.tab-nav button:hover{color:var(--text-primary);background:none}.tab-nav button.tab-active{color:var(--accent);border-bottom-color:var(--accent)}.tab-content{min-height:200px}.channel-view{display:flex;height:500px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.channel-sidebar{width:200px;min-width:200px;background:var(--bg-secondary);border-right:1px solid var(--border);overflow-y:auto}.channel-sidebar-header{padding:.75rem;font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.channel-item{display:block;width:100%;text-align:left;background:none;border:none;border-radius:0;padding:.4rem .75rem;color:var(--text-secondary);font-size:.85rem;cursor:pointer}.channel-item:hover{background:var(--bg-card);color:var(--text-primary);border:none}.channel-item.active{background:var(--bg-card);color:var(--accent);border-left:2px solid var(--accent)}.channel-content{flex:1;display:flex;flex-direction:column;background:var(--bg-card);min-width:0}.channel-content-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;border-bottom:1px solid var(--border);font-weight:600;font-size:.9rem}.channel-msg-count{font-weight:400;font-size:.75rem;color:var(--text-secondary)}.message-list{flex:1;overflow-y:auto;padding:.5rem 0}.message{padding:.35rem .75rem}.message:hover{background:var(--bg-secondary)}.message-header{display:flex;align-items:baseline;gap:.5rem}.message-sender{font-weight:600;font-size:.85rem;color:var(--accent)}.message-time{font-size:.7rem;color:var(--text-secondary)}.message-body{font-size:.85rem;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;line-height:1.4}.message-form{display:flex;gap:.5rem;padding:.6rem .75rem;border-top:1px solid var(--border);background:var(--bg-secondary)}.message-form input{flex:1}.message-form button{flex-shrink:0}.agent-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.agent-count{color:var(--text-secondary);font-size:.85rem}.agent-list{display:flex;flex-direction:column;gap:.5rem}.agent-card{display:flex;align-items:center;gap:1rem}.agent-card-info{display:flex;align-items:center;gap:.5rem;min-width:180px}.agent-name{font-weight:600;font-size:.9rem}.agent-status-badge{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-size:.7rem;font-weight:500}.agent-status-badge.running{background:#3fb95026;color:var(--success)}.agent-status-badge.stopped{background:#8b949e26;color:var(--text-secondary)}.agent-status-badge.other{background:#d2992226;color:var(--warning)}.agent-card-meta{flex:1;display:flex;gap:1rem;color:var(--text-secondary);font-size:.8rem}.agent-stop-btn{padding:.3rem .75rem;font-size:.8rem}select,textarea{background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;color:var(--text-primary);font-size:.875rem;width:100%;font-family:inherit}select:focus,textarea:focus{outline:none;border-color:var(--accent)}textarea{resize:vertical}.version-footer{text-align:center;padding:.5rem;font-size:.75rem;color:var(--text-secondary);background:var(--bg-secondary);border-top:1px solid var(--border)}@media (max-width: 640px){.channel-view{flex-direction:column;height:600px}.channel-sidebar{width:100%;min-width:unset;max-height:120px;border-right:none;border-bottom:1px solid var(--border)}.agent-card{flex-direction:column;align-items:flex-start}.agent-card-info{min-width:unset}}
