*,:after,:before{box-sizing:border-box;margin:0;padding:0}body{background:#0d1117;color:#c9d1d9;font-family:Inter,Segoe UI,system-ui,sans-serif;min-height:100vh}a{color:#58a6ff;text-decoration:none}button{cursor:pointer}.login-wrapper{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:1rem}.login-card{background:#161b22;border:1px solid #30363d;border-radius:8px;max-width:380px;padding:2.5rem;width:100%}.login-card h1{color:#e6edf3;font-size:1.4rem;margin-bottom:.25rem}.login-card p{color:#8b949e;font-size:.85rem;margin-bottom:2rem}.form-group{margin-bottom:1.25rem}.form-group label{color:#8b949e;display:block;font-size:.85rem;margin-bottom:.4rem}.form-group input{background:#0d1117;border:1px solid #30363d;border-radius:6px;color:#e6edf3;font-size:.95rem;outline:none;padding:.6rem .8rem;transition:border .2s;width:100%}.form-group input:focus{border-color:#58a6ff}.btn-primary{background:#238636;border:none;border-radius:6px;color:#fff;font-size:.95rem;font-weight:600;padding:.7rem;transition:background .2s;width:100%}.btn-primary:hover{background:#2ea043}.btn-primary:disabled{background:#1c6b2a;cursor:not-allowed;opacity:.6}.error-banner{background:#3b1d1d;border:1px solid #f85149;border-radius:6px;color:#f85149;font-size:.85rem;margin-bottom:1rem;padding:.6rem .8rem}.dashboard{display:flex;flex-direction:column;height:100vh}.topbar{background:#161b22;border-bottom:1px solid #30363d;flex-shrink:0;justify-content:space-between;padding:.75rem 1.5rem}.topbar,.topbar-left{align-items:center;display:flex}.topbar-left{gap:.75rem}.topbar h2{color:#e6edf3;font-size:1rem}.status-dot{border-radius:50%;display:inline-block;flex-shrink:0;height:10px;width:10px}.status-dot.connected{background:#3fb950}.status-dot.connecting{animation:pulse 1s infinite;background:#d29922}.status-dot.disconnected{background:#8b949e}.status-dot.error{background:#f85149}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.topbar-right{align-items:center;display:flex;gap:.75rem}.btn-icon{background:#0000;border:1px solid #30363d;border-radius:6px;color:#8b949e;font-size:.8rem;padding:.35rem .7rem;transition:all .2s}.btn-icon:hover{border-color:#58a6ff;color:#58a6ff}.btn-logout{background:#0000;border:1px solid #f85149;border-radius:6px;color:#f85149;font-size:.8rem;padding:.35rem .8rem;transition:all .2s}.btn-logout:hover{background:#3b1d1d}.selector-bar{align-items:center;background:#0d1117;border-bottom:1px solid #21262d;display:flex;flex-shrink:0;gap:1rem;padding:.75rem 1.5rem}.selector-bar label{color:#8b949e;font-size:.85rem;white-space:nowrap}.selector-bar select{background:#161b22;border:1px solid #30363d;border-radius:6px;color:#e6edf3;flex:1 1;font-size:.85rem;max-width:600px;outline:none;padding:.5rem .75rem;transition:border .2s}.selector-bar select:focus{border-color:#58a6ff}.log-area{background:#0d1117;flex:1 1;font-family:JetBrains Mono,Fira Code,Cascadia Code,monospace;font-size:.78rem;line-height:1.6;overflow-y:auto;padding:1rem 1.5rem}.log-area::-webkit-scrollbar{width:6px}.log-area::-webkit-scrollbar-track{background:#0d1117}.log-area::-webkit-scrollbar-thumb{background:#30363d;border-radius:3px}.log-line{padding:1px 0;white-space:pre-wrap;word-break:break-all}.log-line:hover{background:#ffffff0a;border-radius:2px}.log-line.level-error{color:#f85149}.log-line.level-warn{color:#d29922}.log-line.level-info{color:#58a6ff}.log-line.level-debug{color:#8b949e}.log-line.level-normal{color:#c9d1d9}.log-empty{color:#484f58;font-size:.85rem;padding:2rem;text-align:center}.statusbar{align-items:center;background:#161b22;border-top:1px solid #30363d;color:#8b949e;display:flex;flex-shrink:0;font-size:.75rem;justify-content:space-between;padding:.3rem 1.5rem}.log-line.is-history{opacity:.65}.history-divider{border:none;border-top:1px dashed #30363d;margin:6px 0;position:relative}.history-divider:after{background:#0d1117;color:#484f58;content:"── live stream starts below ──";font-size:.7rem;left:50%;padding:0 8px;position:absolute;top:-10px;transform:translateX(-50%);white-space:nowrap}
/*# sourceMappingURL=main.222686c2.css.map*/