@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{font-family:Outfit,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#f3f4f6;background-color:#0b0f19;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}*{box-sizing:border-box}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#0003}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff3}:root{--onyx-primary-rgb: 0, 173, 181;--onyx-secondary-rgb: 74, 107, 232;--onyx-accent-rgb: 59, 189, 206;--onyx-primary: #00adb5;--onyx-primary-hover: #00969d;--onyx-secondary: #4a6be8;--onyx-accent: #3bbdce;--onyx-bg: #000e19;--onyx-sidebar-bg: rgba(8, 23, 35, .7);--onyx-card-bg: rgba(17, 33, 45, .5);--onyx-border: rgba(157, 179, 196, .1);--onyx-border-hover: rgba(201, 214, 224, .2);--onyx-text: #eaedf0;--onyx-text-muted: #7392aa;--onyx-success: #3b9b69;--onyx-error: #d1332f;--onyx-warning: #f2994a;--onyx-radius: 12px;--onyx-shadow: 0 4px 20px -2px rgba(0, 0, 0, .5);--onyx-glow: 0 0 15px rgba(var(--onyx-primary-rgb), .3)}body:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 15% 50%,rgba(var(--onyx-primary-rgb),.08),transparent 25%),radial-gradient(circle at 85% 30%,rgba(var(--onyx-secondary-rgb),.08),transparent 25%);z-index:-1;pointer-events:none}.app-container{display:grid;grid-template-columns:280px 1fr;width:100vw;height:100vh;overflow:hidden}.sidebar{background-color:var(--onyx-sidebar-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-right:1px solid var(--onyx-border);display:flex;flex-direction:column;z-index:100;overflow-y:auto}.sidebar-brand{padding:32px 24px;font-size:1.6rem;font-weight:800;letter-spacing:-.5px;flex-shrink:0;display:flex;align-items:center;gap:12px;cursor:pointer}.brand-part-1{color:#fff}.brand-part-1.animate{animation:color-cycle-1 4s ease-in-out infinite}.brand-part-2{color:var(--onyx-primary)}.brand-part-2.animate{animation:color-cycle-2 4s ease-in-out infinite}@keyframes color-cycle-1{0%,to{color:#fff}50%{color:var(--onyx-primary)}}@keyframes color-cycle-2{0%,to{color:var(--onyx-primary)}50%{color:#fff}}.sidebar-brand:hover .brand-part-1,.sidebar-brand:hover .brand-part-2{filter:drop-shadow(0 0 10px rgba(var(--onyx-primary-rgb),.4))}.sidebar-brand div{display:flex;align-items:baseline}.sidebar-section-title{padding:24px 24px 12px;font-size:.75rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--onyx-text-muted);font-weight:700}.project-list{flex:1;overflow-y:auto;padding:0 12px}.nav-item{padding:12px 16px;margin-bottom:6px;border-radius:var(--onyx-radius);cursor:pointer;color:var(--onyx-text-muted);transition:all .3s cubic-bezier(.4,0,.2,1);font-weight:500;display:flex;align-items:center;justify-content:space-between;border:1px solid transparent}.nav-item:hover{background-color:#ffffff08;color:var(--onyx-text)}.nav-item.active{background:linear-gradient(90deg,rgba(var(--onyx-primary-rgb),.15),rgba(var(--onyx-primary-rgb),.05));color:var(--onyx-text);border:1px solid rgba(var(--onyx-primary-rgb),.3);box-shadow:inset 0 0 20px rgba(var(--onyx-primary-rgb),.05)}.sidebar-footer{padding:24px;flex-shrink:0}.add-btn{width:100%;background:#ffffff08;color:var(--onyx-text);border:1px dashed var(--onyx-border);padding:12px;border-radius:var(--onyx-radius);cursor:pointer;font-weight:600;transition:all .3s;display:flex;align-items:center;justify-content:center;gap:8px}.add-btn:hover,.add-btn.active{background:rgba(var(--onyx-primary-rgb),.1);border-color:var(--onyx-primary);color:var(--onyx-primary);box-shadow:var(--onyx-glow)}.main-layout{display:flex;flex-direction:column;height:100vh;width:100%;overflow:hidden}.top-bar{height:80px;display:flex;align-items:center;justify-content:space-between;padding:0 40px;flex-shrink:0}.page-title{font-size:1.5rem;font-weight:700;letter-spacing:-.5px}.workspace{padding:0 40px 40px;flex:1;overflow-y:auto;width:100%}.welcome-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;color:var(--onyx-text-muted);text-align:center}.welcome-screen h2{font-size:2rem;color:var(--onyx-text);margin-bottom:16px}.welcome-icon{color:var(--onyx-primary);margin-bottom:24px;opacity:.8;filter:drop-shadow(0 0 20px rgba(99,102,241,.4))}.detail-grid{display:grid;grid-template-columns:1fr;gap:24px;width:100%}@media (min-width: 1400px){.detail-grid{grid-template-columns:1fr 1fr}}.panel{background:var(--onyx-card-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--onyx-border);border-radius:var(--onyx-radius);box-shadow:var(--onyx-shadow);display:flex;flex-direction:column;transition:transform .3s,box-shadow .3s}.panel:hover{border-color:var(--onyx-border-hover)}.panel.full-width{grid-column:1 / -1}.panel-header{padding:20px 24px;border-bottom:1px solid var(--onyx-border);display:flex;justify-content:space-between;align-items:center}.panel-header h3{margin:0;font-size:1.1rem;color:var(--onyx-text);display:flex;align-items:center;gap:10px}.panel-body{padding:24px;flex:1}.form-container{max-width:600px;margin:40px auto 0}.input-group{margin-bottom:24px}.input-group label{display:block;font-size:.85rem;font-weight:600;color:var(--onyx-text-muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.onyx-input{width:100%;background:#0f172a99;border:1px solid var(--onyx-border);border-radius:8px;padding:12px 16px;font-size:1rem;color:var(--onyx-text);transition:all .3s}.onyx-input:focus{outline:none;border-color:var(--onyx-primary);box-shadow:0 0 0 2px rgba(var(--onyx-primary-rgb),.2);background:#0f172acc}.onyx-textarea{min-height:120px;font-family:monospace;font-size:.9rem;resize:vertical}.onyx-btn{padding:10px 20px;border-radius:8px;font-weight:600;cursor:pointer;border:1px solid transparent;font-size:.95rem;display:inline-flex;align-items:center;gap:8px;transition:all .2s cubic-bezier(.4,0,.2,1)}.onyx-btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--onyx-primary),var(--onyx-secondary));color:#fff;box-shadow:0 4px 15px rgba(var(--onyx-primary-rgb),.3)}.btn-primary:not(:disabled):hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(var(--onyx-primary-rgb),.4)}.btn-primary:not(:disabled):active{transform:translateY(1px)}.btn-secondary{background:#ffffff0d;border-color:var(--onyx-border);color:var(--onyx-text)}.btn-secondary:not(:disabled):hover{background:#ffffff1a;border-color:#ffffff4d}.btn-danger{background:#ef44441a;color:var(--onyx-error);border-color:#ef444433}.btn-danger:hover{background:#ef444433;border-color:#ef444466}.btn-ghost{background:transparent;color:var(--onyx-text-muted)}.btn-ghost:hover{color:var(--onyx-text);background:#ffffff0d}.action-bar{display:flex;justify-content:space-between;align-items:center;background:var(--onyx-card-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:16px 40px;border-radius:var(--onyx-radius);border:1px solid var(--onyx-border);margin-bottom:24px}.action-bar-left{display:flex;align-items:center;gap:20px}.action-bar-right{display:flex;gap:12px}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin-bottom:32px}.metric-card{background:var(--onyx-card-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--onyx-border);border-radius:var(--onyx-radius);padding:24px;display:flex;align-items:center;gap:20px;box-shadow:var(--onyx-shadow);position:relative;overflow:hidden;transition:transform .3s,border-color .3s}.metric-card:hover{transform:translateY(-4px);border-color:rgba(var(--onyx-primary-rgb),.4)}.metric-card:before{content:"";position:absolute;top:-50px;right:-50px;width:100px;height:100px;background:radial-gradient(circle,rgba(var(--onyx-primary-rgb),.2),transparent 70%);border-radius:50%;pointer-events:none}.metric-icon{width:56px;height:56px;border-radius:12px;background:rgba(var(--onyx-primary-rgb),.1);color:var(--onyx-primary);display:flex;align-items:center;justify-content:center;border:1px solid rgba(var(--onyx-primary-rgb),.2)}.metric-data h4{margin:0;color:var(--onyx-text-muted);font-size:13px;text-transform:uppercase;letter-spacing:1px}.metric-data span{font-size:28px;font-weight:700;color:var(--onyx-text);line-height:1.2}.onyx-table-container{overflow-x:auto}.onyx-table{width:100%;border-collapse:collapse}.onyx-table th,.onyx-table td{padding:16px 24px;text-align:left;border-bottom:1px solid var(--onyx-border)}.onyx-table th{background:#0f172a66;font-weight:600;color:var(--onyx-text-muted);font-size:12px;text-transform:uppercase;letter-spacing:1px}.onyx-table tr:last-child td{border-bottom:none}.onyx-table tbody tr{transition:background-color .2s}.onyx-table tbody tr:hover{background:#ffffff05}.cell-subtext{display:block;font-size:13px;color:var(--onyx-text-muted);margin-top:4px}.status-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:600;border:1px solid transparent}.status-badge.online{background:#10b9811a;color:var(--onyx-success);border-color:#10b98133}.status-badge.error{background:#ef44441a;color:var(--onyx-error);border-color:#ef444433}.status-dot{width:10px;height:10px;border-radius:50%;box-shadow:0 0 8px currentColor}.status-dot.online{background-color:var(--onyx-success);color:var(--onyx-success)}.status-dot.error{background-color:var(--onyx-error);color:var(--onyx-error)}.status-dot.inactive{background-color:#475569;color:transparent;box-shadow:none}.badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:6px;font-size:.75rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.badge-active{background:#10b9811a;color:var(--onyx-success);border:1px solid rgba(16,185,129,.2)}.badge-pending{background:#94a3b81a;color:var(--onyx-text-muted);border:1px solid rgba(148,163,184,.2)}.code-block{background:#0f172a99;padding:4px 8px;border-radius:6px;font-family:monospace;color:var(--onyx-text);border:1px solid var(--onyx-border);font-size:.85rem}.tabs-container{display:flex;gap:12px;margin-bottom:24px;border-bottom:1px solid var(--onyx-border);padding-bottom:8px}.tab-button{background:transparent;color:var(--onyx-text-muted);border:none;padding:10px 16px;font-size:.95rem;font-weight:600;cursor:pointer;border-radius:8px;transition:all .3s;display:flex;align-items:center;gap:8px}.tab-button:hover{color:var(--onyx-text);background:#ffffff0d}.tab-button.active{color:var(--onyx-text);background:rgba(var(--onyx-primary-rgb),.15);box-shadow:inset 0 0 15px rgba(var(--onyx-primary-rgb),.1);border-bottom:2px solid var(--onyx-primary);border-radius:8px 8px 0 0}.tab-content-enter{animation:fadeIn .4s ease-out forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes pulseGlow{0%{box-shadow:0 0 rgba(var(--onyx-primary-rgb),.5);border-color:var(--onyx-primary)}70%{box-shadow:0 0 0 15px rgba(var(--onyx-primary-rgb),0);border-color:var(--onyx-primary)}to{box-shadow:0 0 rgba(var(--onyx-primary-rgb),0);border-color:var(--onyx-primary)}}.panel.syncing{animation:pulseGlow 1.5s infinite;opacity:.85}@keyframes fadeInUp{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp .5s cubic-bezier(.16,1,.3,1) forwards}.stagger-1{animation-delay:.05s;opacity:0}.stagger-2{animation-delay:.1s;opacity:0}.stagger-3{animation-delay:.15s;opacity:0}.tab-content-enter{animation:fadeInUp .4s cubic-bezier(.16,1,.3,1) forwards}.terminal-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#04060cb3;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}.terminal-modal{width:90%;max-width:1000px;height:80vh;background:#0f172ad9;border:1px solid rgba(255,255,255,.15);border-radius:var(--onyx-radius);box-shadow:0 20px 50px #0009,inset 0 0 30px rgba(var(--onyx-primary-rgb),.05);display:flex;flex-direction:column;overflow:hidden;animation:fadeInUp .3s cubic-bezier(.16,1,.3,1) forwards}.terminal-modal.fullscreen{width:100%!important;max-width:100%!important;height:100vh!important;max-height:100vh!important;border-radius:0!important;border:none!important;animation:none!important}.terminal-modal-header{padding:16px 24px;background:#0f172a80;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center}.terminal-modal-title{display:flex;align-items:center;gap:12px;font-weight:600}.terminal-status-indicator{display:flex;align-items:center;gap:8px;font-size:.85rem}.terminal-status-dot{width:8px;height:8px;border-radius:50%;background-color:var(--onyx-warning)}.terminal-status-dot.connected{background-color:var(--onyx-success);box-shadow:0 0 8px var(--onyx-success)}.terminal-status-dot.error{background-color:var(--onyx-error);box-shadow:0 0 8px var(--onyx-error)}.terminal-modal-close{background:transparent;border:none;color:var(--onyx-text-muted);cursor:pointer;padding:4px;border-radius:4px;transition:all .2s;display:flex;align-items:center;justify-content:center}.terminal-modal-close:hover{color:var(--onyx-text);background:#ffffff0d}.terminal-container-wrapper{flex:1;padding:24px;background:#05070c;position:relative;display:flex;flex-direction:column}.terminal-div{flex:1;width:100%;height:100%;min-height:0;outline:none}.xterm-viewport::-webkit-scrollbar{width:8px;height:8px}.xterm-viewport::-webkit-scrollbar-track{background:#0003}.xterm-viewport::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:4px}.xterm-viewport::-webkit-scrollbar-thumb:hover{background:#fff3}.logs-viewer{display:flex;flex-direction:column;gap:16px;height:100%}.logs-toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.logs-query-wrap{flex:1;position:relative;min-width:260px}.logs-query-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--onyx-text-muted);pointer-events:none}.logs-query-input{padding-left:40px!important;font-family:JetBrains Mono,Fira Code,monospace;font-size:.85rem}.logs-time-select{min-width:150px;cursor:pointer}.logs-filter-bar{display:flex;gap:16px;align-items:center;flex-wrap:wrap;padding:12px 16px;background:#ffffff05;border:1px solid var(--onyx-border);border-radius:var(--onyx-radius)}.logs-level-filters{display:flex;gap:6px;flex-wrap:wrap}.logs-level-btn{display:flex;align-items:center;gap:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:4px 12px;cursor:pointer;transition:all .2s;font-size:.75rem}.logs-level-btn .btn-label{color:var(--onyx-text-muted);font-weight:500}.logs-level-btn .btn-count{background:#ffffff14;color:var(--onyx-text);padding:1px 6px;border-radius:10px;font-size:.7rem;font-weight:600}.logs-level-btn:hover{background:#ffffff0f;border-color:#fff3}.logs-level-btn.active{background:rgba(var(--onyx-primary-rgb),.15);border-color:var(--onyx-primary)}.logs-level-btn.active .btn-label{color:var(--onyx-primary-light)}.logs-level-btn.active .btn-count{background:var(--onyx-primary);color:#fff}.logs-level-btn.error.active{background:#ef444426;border-color:#ef4444}.logs-level-btn.error.active .btn-label{color:#fca5a5}.logs-level-btn.error.active .btn-count{background:#ef4444}.logs-level-btn.warn.active{background:#f59e0b26;border-color:#f59e0b}.logs-level-btn.warn.active .btn-label{color:#fde047}.logs-level-btn.warn.active .btn-count{background:#f59e0b}.logs-local-filter{flex:1;min-width:200px}.logs-actions{display:flex;gap:8px}.live-pulse{display:inline-block;width:8px;height:8px;background-color:#ef4444;border-radius:50%;box-shadow:0 0 #ef4444b3;animation:pulse 1.2s infinite;margin-right:4px}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #ef4444b3}70%{transform:scale(1);box-shadow:0 0 0 6px #ef444400}to{transform:scale(.95);box-shadow:0 0 #ef444400}}.logs-quick-filters{display:flex;gap:8px;flex-wrap:wrap}.logs-quick-btn{background:#ffffff0a;border:1px solid var(--onyx-border);color:var(--onyx-text-muted);border-radius:20px;padding:4px 14px;font-size:.75rem;font-family:JetBrains Mono,Fira Code,monospace;cursor:pointer;transition:all .2s;white-space:nowrap}.logs-quick-btn:hover,.logs-quick-btn.active{background:rgba(var(--onyx-primary-rgb),.15);border-color:var(--onyx-primary);color:var(--onyx-primary)}.logs-error{display:flex;align-items:center;gap:10px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--onyx-radius);padding:12px 16px;color:#f87171;font-size:.9rem}.logs-count{font-size:.8rem;color:var(--onyx-text-muted);padding:4px 0}.logs-stream{flex:1;overflow-y:auto;border-radius:var(--onyx-radius);border:1px solid var(--onyx-border);background:#0d0d1266;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.log-table{width:100%;border-collapse:collapse;font-size:.82rem}.log-table thead tr{background:#ffffff08;border-bottom:1px solid var(--onyx-border);position:sticky;top:0;z-index:1}.log-table thead th{padding:10px 14px;text-align:left;color:var(--onyx-text-muted);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}.log-entry{border-bottom:1px solid rgba(255,255,255,.03);transition:background .15s}.log-entry:hover{background:#ffffff0a}.log-entry.expanded{background:rgba(var(--onyx-primary-rgb),.04);border-bottom:none}.log-entry.log-entry-error{background:#ef44440a}.log-entry.log-entry-error:hover{background:#ef444414}.log-entry.log-entry-error .log-ts{box-shadow:inset 3px 0 #ef4444;color:#fca5a5}.log-entry.log-entry-error .log-line{color:#fca5a5}.log-ts{padding:8px 14px;color:var(--onyx-text-muted);white-space:nowrap;font-family:JetBrains Mono,Fira Code,monospace;font-size:.78rem;vertical-align:top}.log-chevron{display:flex;align-items:center;justify-content:center;vertical-align:top}.log-line{font-family:JetBrains Mono,Fira Code,monospace;color:var(--onyx-text);padding:8px 14px;white-space:pre-wrap;word-break:break-all;vertical-align:top;line-height:1.5;font-size:.8rem}.copy-line-btn{position:absolute;right:12px;top:50%;transform:translateY(-50%);opacity:0;background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:var(--onyx-text-muted);border-radius:4px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.log-entry:hover .copy-line-btn{opacity:1}.copy-line-btn:hover{background:var(--onyx-primary);color:#fff;border-color:var(--onyx-primary)}.log-expanded-row{background:#00000040!important;border-bottom:1px solid rgba(255,255,255,.04)}.log-details-container{display:flex;flex-direction:column;gap:12px}.log-meta-title{font-size:.7rem;font-weight:600;text-transform:uppercase;color:var(--onyx-text-muted);letter-spacing:.05em}.log-label-tag{display:inline-flex;align-items:center;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:4px;padding:2px 8px;font-size:.72rem;font-family:JetBrains Mono,Fira Code,monospace}.log-label-key{color:var(--onyx-primary-light);margin-right:4px}.log-label-val{color:var(--onyx-text);font-weight:500}.log-raw-block{margin:0;padding:12px 16px;background:#08080c;border:1px solid rgba(255,255,255,.05);border-radius:6px;color:#e2e8f0;font-family:JetBrains Mono,Fira Code,monospace;font-size:.8rem;line-height:1.5;max-height:250px;overflow-y:auto;white-space:pre-wrap;word-break:break-all}.log-level-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-family:JetBrains Mono,Fira Code,monospace}.log-level-badge.error{background:#ef444433;color:#f87171;border:1px solid rgba(239,68,68,.3)}.log-level-badge.warn{background:#f59e0b26;color:#fbbf24;border:1px solid rgba(245,158,11,.3)}.log-level-badge.info{background:rgba(var(--onyx-primary-rgb),.15);color:#818cf8;border:1px solid rgba(var(--onyx-primary-rgb),.3)}.log-level-badge.debug{background:#6b728026;color:#9ca3af;border:1px solid rgba(107,114,128,.25)}.onyx-toast{position:fixed;bottom:24px;right:24px;display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:8px;background:var(--onyx-surface);border:1px solid var(--onyx-border);color:#fff;z-index:10000;box-shadow:0 8px 24px #0000004d;animation:slide-in .3s ease-out;min-width:300px}.onyx-toast.success{border-left:4px solid #10b981}.onyx-toast.error{border-left:4px solid var(--onyx-error)}.onyx-toast.info{border-left:4px solid var(--onyx-primary)}.onyx-toast button{margin-left:auto;background:none;border:none;color:var(--onyx-text-muted);cursor:pointer;padding:4px;display:flex;transition:color .2s}.onyx-toast button:hover{color:#fff}@keyframes slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.ssh-sidebar{width:380px;background:#0a0f1e99;border-left:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;height:100%;min-height:0;border-radius:0 var(--onyx-radius) var(--onyx-radius) 0;overflow:hidden;animation:fadeInRight .3s cubic-bezier(.16,1,.3,1) forwards}@keyframes fadeInRight{0%{transform:translate(20px);opacity:0}to{transform:translate(0);opacity:1}}.ssh-sidebar-header{padding:16px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:12px}.ssh-sidebar-search-wrapper{position:relative;display:flex;align-items:center}.ssh-sidebar-search-icon{position:absolute;left:10px;color:var(--onyx-text-muted);pointer-events:none;display:flex;align-items:center}.ssh-sidebar-search{width:100%;background:#05070ccc;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:8px 12px 8px 32px;color:#fff;font-size:.85rem;outline:none;transition:all .2s}.ssh-sidebar-search:focus{border-color:var(--onyx-primary);box-shadow:0 0 0 2px rgba(var(--onyx-primary-rgb),.2)}.ssh-sidebar-tabs{display:flex;gap:4px;padding:0 16px 8px;border-bottom:1px solid rgba(255,255,255,.05);overflow-x:auto;scrollbar-width:none}.ssh-sidebar-tabs::-webkit-scrollbar{display:none}.ssh-sidebar-tab{background:none;border:none;padding:6px 12px;color:var(--onyx-text-muted);font-size:.8rem;font-weight:500;cursor:pointer;border-radius:4px;white-space:nowrap;transition:all .2s}.ssh-sidebar-tab:hover{color:#fff;background:#ffffff0d}.ssh-sidebar-tab.active{color:#fff;background:rgba(var(--onyx-primary-rgb),.15);border:1px solid rgba(var(--onyx-primary-rgb),.3)}.ssh-sidebar-list{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.ssh-sidebar-list::-webkit-scrollbar{width:6px}.ssh-sidebar-list::-webkit-scrollbar-track{background:transparent}.ssh-sidebar-list::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:3px}.ssh-sidebar-list::-webkit-scrollbar-thumb:hover{background:#ffffff26}.ssh-sidebar-card{background:#0f172a66;border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:8px;transition:all .2s}.ssh-sidebar-card:hover{border-color:#ffffff1f;background:#0f172a99;transform:translateY(-1px)}.ssh-sidebar-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.ssh-sidebar-title{font-size:.85rem;font-weight:600;color:#fff}.ssh-sidebar-desc{font-size:.75rem;color:var(--onyx-text-muted);line-height:1.4}.ssh-sidebar-code-box{background:#05070ce6;border:1px solid rgba(255,255,255,.08);border-radius:4px;padding:6px 8px;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:.75rem;color:#10b981;word-break:break-all;white-space:pre-wrap;position:relative}.ssh-sidebar-card-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.ssh-sidebar-btn{background:none;border:1px solid rgba(255,255,255,.1);color:var(--onyx-text-muted);padding:4px 8px;border-radius:4px;font-size:.7rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .2s}.ssh-sidebar-btn:hover{color:#fff;border-color:#fff3;background:#ffffff0d}.ssh-sidebar-btn.run{background:#10b9811a;border-color:#10b98133;color:#10b981}.ssh-sidebar-btn.run:hover{background:#10b98133;border-color:#10b981;color:#fff}.ssh-sidebar-btn.insert{background:rgba(var(--onyx-primary-rgb),.1);border-color:rgba(var(--onyx-primary-rgb),.2);color:#818cf8}.ssh-sidebar-btn.insert:hover{background:rgba(var(--onyx-primary-rgb),.2);border-color:var(--onyx-primary);color:#fff}.ssh-sidebar-add-custom{background:rgba(var(--onyx-primary-rgb),.05);border:1px dashed rgba(var(--onyx-primary-rgb),.3);border-radius:6px;padding:12px;display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.ssh-sidebar-add-custom input,.ssh-sidebar-add-custom textarea{width:100%;background:#05070ccc;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:6px 8px;color:#fff;font-size:.75rem;outline:none}.ssh-sidebar-add-custom input:focus,.ssh-sidebar-add-custom textarea:focus{border-color:var(--onyx-primary)}.onyx-accordion-header{transition:all .25s cubic-bezier(.4,0,.2,1);border:1px solid var(--onyx-border)!important}.onyx-accordion-header:hover{background:#ffffff0d!important;border-color:rgba(var(--onyx-primary-rgb),.4)!important;box-shadow:0 4px 12px #0003}.onyx-accordion-header.active{background:rgba(var(--onyx-primary-rgb),.06)!important;border-color:var(--onyx-primary)!important;box-shadow:0 0 15px rgba(var(--onyx-primary-rgb),.1)}.onyx-tab-btn{position:relative;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid transparent!important}.onyx-tab-btn:hover{background:#ffffff0a!important;color:#fff!important;border-color:#ffffff1a!important}.onyx-tab-btn.active-general{border-color:var(--onyx-primary)!important;background:rgba(var(--onyx-primary-rgb),.1)!important;color:#fff!important;box-shadow:0 0 10px rgba(var(--onyx-primary-rgb),.15)}.onyx-tab-btn.active-gitlab{border-color:var(--onyx-warning)!important;background:#f59e0b1a!important;color:#fff!important;box-shadow:0 0 10px #f59e0b26}.onyx-tab-btn.active-s3{border-color:var(--onyx-success)!important;background:#10b9811a!important;color:#fff!important;box-shadow:0 0 10px #10b98126}.onyx-tab-btn.active-logging{border-color:var(--onyx-accent)!important;background:rgba(var(--onyx-accent-rgb),.1)!important;color:#fff!important;box-shadow:0 0 10px rgba(var(--onyx-accent-rgb),.15)}.onyx-tab-btn.active-status{border-color:#ec4899!important;background:#ec48991a!important;color:#fff!important;box-shadow:0 0 10px #ec489926}.onyx-tab-desc-box{background:#ffffff04;border-left:3px solid var(--onyx-primary);border-radius:4px;padding:12px 16px;margin-bottom:24px;font-size:.85rem;color:var(--onyx-text-muted);line-height:1.5}.onyx-tab-desc-box.gitlab{border-left-color:var(--onyx-warning)}.onyx-tab-desc-box.s3{border-left-color:var(--onyx-success)}.onyx-tab-desc-box.logging{border-left-color:var(--onyx-accent)}.onyx-tab-desc-box.status{border-left-color:#ec4899}.logs-analytics-grid{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px}@media (max-width: 1024px){.logs-analytics-grid{grid-template-columns:1fr}}.logs-analytics-card{background:#1e1e2866;border:1px solid var(--onyx-border);border-radius:var(--onyx-radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:16px;display:flex;flex-direction:column}.logs-analytics-card-title{font-size:.75rem;font-weight:600;color:var(--onyx-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:12px;display:flex;align-items:center;gap:6px}.logs-histogram-wrapper{flex:1;display:flex;flex-direction:column;justify-content:flex-end;height:90px;position:relative;padding-bottom:4px}.logs-histogram-bars{display:flex;align-items:flex-end;gap:6px;height:70px;width:100%}.logs-histogram-bar-wrapper{flex:1;height:100%;display:flex;align-items:flex-end;position:relative;cursor:pointer}.logs-histogram-bar{width:100%;border-radius:3px 3px 0 0;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;transition:all .2s ease;min-height:2px;background:#ffffff05}.logs-histogram-bar-wrapper:hover .logs-histogram-bar{filter:brightness(1.25);box-shadow:0 0 10px rgba(var(--onyx-primary-rgb),.2)}.bar-segment{width:100%;transition:height .2s ease}.bar-segment.error{background:#ef4444}.bar-segment.warn{background:#f59e0b}.bar-segment.info{background:var(--onyx-primary)}.bar-segment.debug{background:#10b981}.logs-histogram-tooltip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);background:#0a0a0ff2;border:1px solid var(--onyx-border);box-shadow:0 10px 25px -5px #00000080,0 0 1px 1px #ffffff1a;border-radius:6px;padding:8px 12px;z-index:10;width:180px;opacity:0;pointer-events:none;transition:all .15s cubic-bezier(.16,1,.3,1);font-family:var(--onyx-font);font-size:.72rem;color:var(--onyx-text)}.logs-histogram-bar-wrapper:hover .logs-histogram-tooltip{opacity:1;transform:translate(-50%) translateY(0)}.tooltip-time{font-family:JetBrains Mono,monospace;font-weight:600;color:var(--onyx-text-muted);font-size:.68rem;margin-bottom:4px}.tooltip-divider{height:1px;background:#ffffff14;margin:4px 0}.tooltip-row{display:flex;align-items:center;justify-content:space-between;margin:3px 0}.tooltip-row .dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px}.tooltip-row .dot.error{background:#ef4444}.tooltip-row .dot.warn{background:#f59e0b}.tooltip-row .dot.info{background:var(--onyx-primary)}.tooltip-row .dot.debug{background:#10b981}.tooltip-total{display:flex;justify-content:space-between;margin-top:6px;padding-top:4px;border-top:1px dashed rgba(255,255,255,.1);font-weight:600}.logs-histogram-timeline{display:flex;justify-content:space-between;font-size:.65rem;color:var(--onyx-text-muted);font-family:JetBrains Mono,monospace;margin-top:4px;border-top:1px solid rgba(255,255,255,.05);padding-top:4px}.logs-stats-container{display:grid;grid-template-columns:1fr 1fr;gap:12px;height:100%}.logs-stat-box{background:#ffffff05;border:1px solid rgba(255,255,255,.04);border-radius:6px;padding:10px;display:flex;flex-direction:column;justify-content:center}.logs-stat-value{font-size:1.3rem;font-weight:700;font-family:JetBrains Mono,monospace;line-height:1.2}.logs-stat-value.error-rate{color:#ef4444;text-shadow:0 0 10px rgba(239,68,68,.15)}.logs-stat-value.warn-rate{color:#f59e0b}.logs-stat-value.normal{color:var(--onyx-text)}.logs-stat-value.good{color:#10b981}.logs-stat-label{font-size:.65rem;color:var(--onyx-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-top:4px}.logs-query-history{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:.72rem}.history-label{color:var(--onyx-text-muted);font-weight:500;white-space:nowrap}.history-chips{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.history-chip{background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:4px;color:var(--onyx-text);padding:2px 8px;cursor:pointer;font-family:JetBrains Mono,monospace;font-size:.68rem;transition:all .15s ease;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-chip:hover{background:rgba(var(--onyx-primary-rgb),.12);border-color:rgba(var(--onyx-primary-rgb),.3);color:var(--onyx-primary-light)}.history-clear-btn{background:none;border:none;color:#ef4444;font-size:.65rem;cursor:pointer;padding:2px 6px;opacity:.7;transition:opacity .15s ease}.history-clear-btn:hover{opacity:1;text-decoration:underline}.terminal-dock-container{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:999;width:auto;max-width:90%;animation:slideUpFade .4s cubic-bezier(.16,1,.3,1) forwards;pointer-events:auto}.terminal-dock-glass{display:flex;align-items:center;gap:12px;background:#0a0f1ea6;backdrop-filter:blur(20px) saturate(190%);-webkit-backdrop-filter:blur(20px) saturate(190%);border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 40px #00000080,0 2px 10px rgba(var(--onyx-primary-rgb),.05),inset 0 1px 1px #ffffff1a;border-radius:14px;padding:8px 16px;transition:all .3s cubic-bezier(.16,1,.3,1)}.terminal-dock-glass:hover{border-color:rgba(var(--onyx-primary-rgb),.25);box-shadow:0 12px 45px #0009,0 4px 15px rgba(var(--onyx-primary-rgb),.1),inset 0 1px 1px #ffffff26}.terminal-dock-title{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:#ffffffb3;white-space:nowrap}.terminal-dock-title-icon{color:var(--onyx-primary);animation:pulseGlow 2s infinite ease-in-out}.terminal-dock-divider{width:1px;height:24px;background:#ffffff26}.terminal-dock-tabs{display:flex;align-items:center;gap:8px;overflow-x:auto;max-width:600px;padding-right:4px}.terminal-dock-tabs::-webkit-scrollbar{height:3px}.terminal-dock-tabs::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}.terminal-dock-tab{display:flex;align-items:center;gap:4px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:4px 10px;transition:all .2s cubic-bezier(.16,1,.3,1);height:32px}.terminal-dock-tab:hover{background:#ffffff14;border-color:#ffffff26;transform:translateY(-1px)}.terminal-dock-tab.active{background:rgba(var(--onyx-primary-rgb),.15);border-color:rgba(var(--onyx-primary-rgb),.4);box-shadow:0 0 12px rgba(var(--onyx-primary-rgb),.15)}.terminal-dock-tab-btn{background:none;border:none;padding:0;display:flex;align-items:center;gap:8px;cursor:pointer;color:#fffc;font-size:.8rem;font-weight:500;outline:none;max-width:140px}.terminal-dock-tab-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.terminal-dock-tab.active .terminal-dock-tab-btn{color:#fff;font-weight:600}.terminal-dock-tab-dot{width:6px;height:6px;border-radius:50%;background-color:var(--onyx-success);box-shadow:0 0 6px var(--onyx-success)}.terminal-dock-tab.active .terminal-dock-tab-dot{animation:blinkDot 1.5s infinite ease-in-out}.terminal-dock-tab-close{background:none;border:none;padding:2px;cursor:pointer;color:#fff6;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.terminal-dock-tab-close:hover{color:var(--onyx-error);background:#ef444426}@keyframes slideUpFade{0%{opacity:0;transform:translate(-50%,15px)}to{opacity:1;transform:translate(-50%)}}@keyframes blinkDot{0%,to{opacity:1}50%{opacity:.4}}@keyframes pulseGlow{0%,to{filter:drop-shadow(0 0 1px rgba(var(--onyx-primary-rgb),0))}50%{filter:drop-shadow(0 0 4px rgba(var(--onyx-primary-rgb),.6))}}.animate-spin,.spin{animation:spin 1s linear infinite;display:inline-block}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.k8s-dropzone{border:2px dashed rgba(255,255,255,.12);background:#0000001f;border-radius:12px;padding:48px 24px;text-align:center;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;align-items:center;gap:16px}.k8s-dropzone:hover,.k8s-dropzone.active{border-color:var(--onyx-primary);background:#6366f10d;box-shadow:0 0 20px #6366f11a}.k8s-glow-icon{color:var(--onyx-text-muted);transition:transform .25s ease,color .25s ease}.k8s-dropzone:hover .k8s-glow-icon,.k8s-dropzone.active .k8s-glow-icon{transform:scale(1.1);color:var(--onyx-primary)}.status-badge-running{background:#10b98114;border:1px solid rgba(16,185,129,.15);color:var(--onyx-success);padding:4px 8px;border-radius:6px;font-weight:600;font-size:.7rem;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px}.status-badge-pending{background:#f59e0b14;border:1px solid rgba(245,158,11,.15);color:var(--onyx-warning);padding:4px 8px;border-radius:6px;font-weight:600;font-size:.7rem;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px}.status-badge-failed{background:#ef444414;border:1px solid rgba(239,68,68,.15);color:var(--onyx-danger);padding:4px 8px;border-radius:6px;font-weight:600;font-size:.7rem;text-transform:uppercase;display:inline-flex;align-items:center;gap:6px}@keyframes pulse{0%{transform:scale(.9);opacity:.6}50%{transform:scale(1.15);opacity:1}to{transform:scale(.9);opacity:.6}}.k8s-card-stat{background:#0000002e;border:1px solid var(--onyx-border);border-radius:8px;padding:16px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1)}.k8s-card-stat:hover{border-color:#ffffff26;background:#00000047;transform:translateY(-2px);box-shadow:0 4px 12px #00000040}.k8s-card-stat.active{border-color:var(--onyx-primary);background:#6366f10f;box-shadow:0 0 15px #6366f114}.k8s-gauge-card:hover{border-color:#ffffff26;background:#ffffff03!important;transform:translateY(-1px)}/**
 * Copyright (c) 2014 The xterm.js authors. All rights reserved.
 * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)
 * https://github.com/chjj/term.js
 * @license MIT
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 *
 * Originally forked from (with the author's permission):
 *   Fabrice Bellard's javascript vt100 for jslinux:
 *   http://bellard.org/jslinux/
 *   Copyright (c) 2011 Fabrice Bellard
 *   The original design remains. The terminal itself
 *   has been extended to include xterm CSI codes, among
 *   other features.
 */.xterm{cursor:text;position:relative;user-select:none;-ms-user-select:none;-webkit-user-select:none}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{position:absolute;top:0;z-index:5}.xterm .xterm-helper-textarea{padding:0;border:0;margin:0;position:absolute;opacity:0;left:-9999em;top:0;width:0;height:0;z-index:-5;white-space:nowrap;overflow:hidden;resize:none}.xterm .composition-view{background:#000;color:#fff;display:none;position:absolute;white-space:nowrap;z-index:1}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{background-color:#000;overflow-y:scroll;cursor:default;position:absolute;right:0;left:0;top:0;bottom:0}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;left:0;top:0}.xterm .xterm-scroll-area{visibility:hidden}.xterm-char-measure-element{display:inline-block;visibility:hidden;position:absolute;top:0;left:-9999em;line-height:normal}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility,.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .live-region{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{text-decoration:double underline}.xterm-underline-3{text-decoration:wavy underline}.xterm-underline-4{text-decoration:dotted underline}.xterm-underline-5{text-decoration:dashed underline}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:overline underline}.xterm-overline.xterm-underline-2{text-decoration:overline double underline}.xterm-overline.xterm-underline-3{text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;position:absolute;top:0;right:0;pointer-events:none}.xterm-decoration-top{z-index:2;position:relative}
