@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.06d3mdzz5bre_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.11.cyxs5p-0z~.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.16t1db8_9y2o~.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0q3udbd2bu5yp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0gw~uztddq1df.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.0.q-h669a_dqa.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--bg-root:#08080d;--bg-surface:#0f0f17;--bg-surface-2:#161622;--bg-surface-3:#1c1c2e;--border:#23233a;--border-light:#2d2d4a;--color-primary:#7c6cff;--color-primary-dim:#7c6cff26;--color-error:#ff6b6b;--color-error-dim:#ff6b6b1f;--color-warning:#ffd93d;--color-warning-dim:#ffd93d1f;--color-success:#6bcb77;--color-success-dim:#6bcb771f;--color-info:#4ea8de;--color-info-dim:#4ea8de1f;--text-primary:#e8e8f0;--text-secondary:#9090a8;--text-muted:#5a5a72;--font-sans:var(--font-geist-sans), system-ui, -apple-system, sans-serif;--font-mono:var(--font-geist-mono), "Fira Code", "JetBrains Mono", monospace;--radius:10px;--radius-sm:6px;--transition:.2s ease}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-sans);background:var(--bg-root);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.spinner{border:2px solid var(--border-light);border-top-color:var(--color-primary);border-radius:50%;width:18px;height:18px;animation:.6s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.login-container{background:var(--bg-root);background-image:radial-gradient(at 20%,#7c6cff0f 0%,#0000 50%),radial-gradient(at 80% 20%,#4ea8de0a 0%,#0000 50%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:400px;padding:40px 32px;animation:.5s fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:32px}.login-icon{background:var(--color-primary-dim);width:56px;height:56px;color:var(--color-primary);border-radius:14px;justify-content:center;align-items:center;margin-bottom:16px;display:inline-flex}.login-header h1{letter-spacing:-.02em;margin-bottom:6px;font-size:1.5rem;font-weight:600}.login-subtitle{color:var(--text-secondary);font-size:.875rem}.login-form{flex-direction:column;gap:16px;display:flex}.input-group input{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);font-size:.9375rem;font-family:var(--font-sans);transition:border-color var(--transition), box-shadow var(--transition);outline:none;padding:12px 16px}.input-group input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-dim)}.input-group input.input-error{border-color:var(--color-error);box-shadow:0 0 0 3px var(--color-error-dim)}.input-group input::placeholder{color:var(--text-muted)}.error-message{color:var(--color-error);margin-top:8px;padding-left:2px;font-size:.8125rem}.login-button{background:var(--color-primary);color:#fff;border-radius:var(--radius);width:100%;font-size:.9375rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:opacity var(--transition), transform var(--transition);border:none;justify-content:center;align-items:center;gap:8px;padding:12px;display:flex}.login-button:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.5;cursor:not-allowed}.dashboard{height:100vh;display:flex;overflow:hidden}.sidebar{background:var(--bg-surface);border-right:1px solid var(--border);flex-direction:column;width:280px;min-width:280px;display:flex;overflow:hidden}.sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.sidebar-logo{color:var(--color-primary);align-items:center;gap:10px;font-size:1.0625rem;font-weight:600;display:flex}.logout-btn{border:1px solid var(--border);border-radius:var(--radius-sm);width:34px;height:34px;color:var(--text-muted);cursor:pointer;transition:all var(--transition);background:0 0;justify-content:center;align-items:center;display:flex}.logout-btn:hover{color:var(--color-error);border-color:var(--color-error);background:var(--color-error-dim)}.sidebar-content{flex:1;padding:16px;overflow-y:auto}.stats-section{flex-direction:column;gap:12px;display:flex}.stats-loading,.stats-error{color:var(--text-muted);flex-direction:column;align-items:center;gap:10px;padding:32px 0;font-size:.8125rem;display:flex}.stats-host{background:var(--bg-surface-2);border-radius:var(--radius-sm);border:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.host-name{color:var(--text-primary);font-size:.875rem;font-weight:600}.host-platform{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.stat-card{background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius);transition:border-color var(--transition);padding:14px}.stat-card:hover{border-color:var(--border-light)}.stat-header{text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary);align-items:center;gap:8px;margin-bottom:8px;font-size:.75rem;font-weight:600;display:flex}.stat-header svg{opacity:.7}.stat-cpu-model{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-bottom:6px;font-size:.6875rem;overflow:hidden}.stat-value{letter-spacing:-.02em;color:var(--text-primary);font-size:1.375rem;font-weight:700}.stat-sub{color:var(--text-muted);margin-top:2px;margin-bottom:8px;font-size:.75rem}.progress-bar{background:var(--bg-surface-3);border-radius:2px;width:100%;height:4px;margin-top:6px;overflow:hidden}.progress-fill{border-radius:2px;height:100%;transition:width .8s,background-color .4s}.main-content{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.log-viewer{flex-direction:column;height:100%;display:flex;overflow:hidden}.log-toolbar{background:var(--bg-surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.log-toolbar-left{align-items:center;gap:10px;display:flex}.log-toolbar-left h2{letter-spacing:-.01em;font-size:.9375rem;font-weight:600}.connection-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.connection-dot.connected{background:var(--color-success);box-shadow:0 0 6px var(--color-success);animation:2s ease-in-out infinite pulse}.connection-dot.disconnected{background:var(--color-error)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.connection-label{color:var(--text-muted);font-size:.75rem}.log-toolbar-right{align-items:center;gap:10px;display:flex}.line-count{color:var(--text-muted);font-size:.75rem;font-family:var(--font-mono)}.scroll-toggle,.clear-btn{font-size:.75rem;font-family:var(--font-sans);background:var(--bg-surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);padding:6px 12px;font-weight:500}.scroll-toggle:hover,.clear-btn:hover{border-color:var(--border-light);color:var(--text-primary)}.scroll-toggle.active{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-dim)}.log-content{background:var(--bg-root);font-family:var(--font-mono);flex:1;padding:8px 0;font-size:.8125rem;line-height:1.6;overflow-y:auto}.log-loading,.log-empty{color:var(--text-muted);font-family:var(--font-sans);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:64px 20px;font-size:.875rem;display:flex}.log-line{transition:background var(--transition);padding:1px 16px 1px 0;display:flex}.log-line:hover{background:#ffffff05}.log-line-number{text-align:right;width:56px;min-width:56px;color:var(--text-muted);-webkit-user-select:none;user-select:none;opacity:.5;padding-right:16px;display:inline-block}.log-line-text{white-space:pre-wrap;word-break:break-all}.log-error .log-line-text{color:var(--color-error)}.log-error{background:var(--color-error-dim)}.log-warn .log-line-text{color:var(--color-warning)}.log-warn{background:var(--color-warning-dim)}.log-info .log-line-text{color:var(--color-info)}.log-debug .log-line-text{color:var(--text-muted)}.log-default .log-line-text{color:var(--text-secondary)}@media (max-width:768px){.dashboard{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;min-width:100%;max-height:40vh}}
