@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap";.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-color);display:flex;flex-direction:column;height:100vh;position:fixed;top:0;left:0;z-index:100;transition:width var(--transition-base);overflow:hidden}[dir=rtl] .sidebar{left:auto;right:0;border-right:none;border-left:1px solid var(--border-color)}.sidebar.collapsed{width:var(--sidebar-collapsed)}.sidebar-logo{display:flex;align-items:center;gap:var(--space-md);padding:0 var(--space-lg);height:var(--topbar-height);border-bottom:1px solid var(--border-color);flex-shrink:0}.sidebar-logo-icon{width:32px;height:32px;background:linear-gradient(135deg,var(--color-primary),#1557bd);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.sidebar-logo-text{font-size:var(--text-base);font-weight:var(--font-bold);color:var(--text-primary);white-space:nowrap}.sidebar-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--space-sm) 0}.sidebar-divider{height:1px;background:var(--border-color);margin:var(--space-sm) var(--space-lg)}.sidebar-item{display:flex;align-items:center;gap:var(--space-md);padding:.45rem var(--space-lg);font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-secondary);cursor:pointer;border:none;background:none;width:100%;text-align:left;border-radius:0;transition:all var(--transition-fast);white-space:nowrap;text-decoration:none;position:relative}[dir=rtl] .sidebar-item{text-align:right}.sidebar-item:hover{color:var(--text-primary);background:#ffffff0a}.sidebar-item.active{color:var(--color-primary);background:var(--color-primary-soft)}.sidebar-item.active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--color-primary);border-radius:0 3px 3px 0}[dir=rtl] .sidebar-item.active:before{left:auto;right:0;border-radius:3px 0 0 3px}.sidebar-item.open{color:var(--text-primary)}.sidebar-item.section-active{color:var(--color-primary)}.sidebar-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:16px;color:inherit}.sidebar-label{flex:1;overflow:hidden;text-overflow:ellipsis}.sidebar-chevron{margin-left:auto;display:flex;align-items:center;opacity:.5;flex-shrink:0}[dir=rtl] .sidebar-chevron{margin-left:0;margin-right:auto}.sidebar-children{animation:slideDown .15s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sidebar-bottom{border-top:1px solid var(--border-color);padding:var(--space-sm) 0;flex-shrink:0}.cluster-selector{padding:0 var(--space-md);margin-bottom:var(--space-sm);position:relative}.cluster-selector-btn{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:.4rem .6rem;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-xs);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family);text-align:left}.cluster-selector-btn:hover{border-color:var(--border-color-hover)}.cluster-selector-btn span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cluster-selector-btn .rotate180{transform:rotate(180deg);transition:transform var(--transition-fast)}.cluster-dropdown{position:absolute;top:100%;left:var(--space-md);right:var(--space-md);margin-top:4px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:200;overflow:hidden;animation:slideDown .12s ease}.cluster-dropdown-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);width:100%;padding:.4rem .6rem;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.04);color:var(--text-secondary);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font-family);text-align:left}.cluster-dropdown-item:last-child{border-bottom:none}.cluster-dropdown-item:hover{background:#ffffff0a;color:var(--text-primary)}.cluster-dropdown-item.active{color:var(--color-primary);background:var(--color-primary-soft)}.ns-btn{font-size:11px}.ns-dropdown{max-height:280px;overflow-y:auto}.ns-divider{height:1px;background:var(--border-color)}.ns-list{max-height:220px;overflow-y:auto}.topbar{height:var(--topbar-height);background:var(--bg-toolbar);border-bottom:1px solid var(--border-color);display:flex;align-items:center;gap:var(--space-lg);padding:0 var(--space-xl);position:sticky;top:0;z-index:90}.topbar-left{display:flex;align-items:center;gap:var(--space-md);flex-shrink:0}.topbar-btn{width:32px;height:32px;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.topbar-btn:hover{background:var(--bg-card);color:var(--text-primary)}.topbar-breadcrumb{display:flex;align-items:center;gap:0;font-size:var(--text-sm);color:var(--text-muted)}.topbar-bc{display:flex;align-items:center;gap:var(--space-xs)}.topbar-bc-sep{margin:0 var(--space-xs);opacity:.4}.topbar-bc .active{color:var(--text-primary);font-weight:var(--font-medium)}.topbar-search{flex:1;max-width:400px;position:relative;display:flex;align-items:center}.topbar-search-icon{position:absolute;left:12px;color:var(--text-muted);pointer-events:none}[dir=rtl] .topbar-search-icon{left:auto;right:12px}.topbar-search-input{width:100%;height:34px;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-full);padding:0 40px 0 36px;font-size:var(--text-sm);color:var(--text-primary);font-family:var(--font-family);transition:border-color var(--transition-fast);outline:none}[dir=rtl] .topbar-search-input{padding:0 36px 0 40px}.topbar-search-input::placeholder{color:var(--text-muted)}.topbar-search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.topbar-search kbd{position:absolute;right:10px;font-size:11px;color:var(--text-muted);background:var(--bg-card);padding:2px 6px;border-radius:4px;border:1px solid var(--border-color);font-family:var(--font-family);pointer-events:none}[dir=rtl] .topbar-search kbd{right:auto;left:10px}.topbar-right{display:flex;align-items:center;gap:var(--space-md);margin-left:auto}[dir=rtl] .topbar-right{margin-left:0;margin-right:auto}.lang-switcher{display:flex;background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-full);padding:2px;gap:2px}.lang-btn{display:flex;align-items:center;gap:4px;padding:3px 10px;border:none;background:transparent;border-radius:var(--radius-full);color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.lang-btn:hover{color:var(--text-primary)}.lang-btn.active{background:var(--color-primary);color:#fff}.notify-btn{position:relative}.notify-dot{position:absolute;top:6px;right:6px;width:7px;height:7px;background:var(--color-danger);border-radius:50%;border:1.5px solid var(--bg-toolbar)}.topbar-user{display:flex;align-items:center;gap:var(--space-md);cursor:pointer;padding:var(--space-xs) var(--space-md);border-radius:var(--radius-lg);border:1px solid transparent;transition:all var(--transition-fast)}.topbar-user:hover{background:var(--bg-card);border-color:var(--border-color)}.topbar-avatar{width:30px;height:30px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-primary),#1557bd);display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:var(--font-bold);color:#fff;flex-shrink:0}.topbar-user-info{display:flex;flex-direction:column}.topbar-user-name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);line-height:1.2}.topbar-user-role{font-size:var(--text-xs);color:var(--text-muted);line-height:1.2}.topbar-user-chevron{color:var(--text-muted)}.topbar-user-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:200px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:0 8px 24px #0006;z-index:100;overflow:hidden}.topbar-user-menu-header{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);font-size:12px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-user-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.6rem 1rem;background:none;border:none;color:var(--text-secondary);font-size:13px;font-family:inherit;cursor:pointer;transition:all .15s}.topbar-user-menu-item:hover{background:#ea433514;color:#ea4335}.topbar-user-menu-section{padding:.5rem 1rem .25rem;font-size:11px;font-weight:var(--font-medium);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted)}.topbar-user-menu-divider{height:1px;background:var(--border-color);margin:.25rem 0}.topbar-org-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem 1rem;background:none;border:none;color:var(--text-secondary);font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:all .15s}[dir=rtl] .topbar-org-item{text-align:right}.topbar-org-item:hover{background:#4285f414;color:var(--color-primary)}.topbar-org-item.active{color:var(--color-primary);font-weight:var(--font-medium);cursor:default}.topbar-org-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.topbar-org-item-check{color:var(--color-primary);flex-shrink:0}.shell-btn{position:relative}.shell-btn.active{color:var(--color-primary);background:#4285f414}.shell-btn.active:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:14px;height:2px;background:var(--color-primary);border-radius: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-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:not(.debug),.xterm .xterm-message{position:absolute;left:0;top:0;bottom:0;right:0;z-index:10;color:transparent;pointer-events:none}.xterm .xterm-accessibility-tree:not(.debug) *::selection{color:transparent}.xterm .xterm-accessibility-tree{font-family:monospace;-webkit-user-select:text;user-select:text;white-space:pre}.xterm .xterm-accessibility-tree>div{transform-origin:left;width:fit-content}.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}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;background:#0000;transition:opacity .1s linear;z-index:11}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{position:absolute;display:none}.xterm .xterm-scrollable-element>.shadow.top{display:block;top:0;left:3px;height:3px;width:100%;box-shadow:var(--vscode-scrollbar-shadow, #000) 0 6px 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.left{display:block;top:3px;left:0;height:100%;width:3px;box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.xterm .xterm-scrollable-element>.shadow.top-left-corner{display:block;top:0;left:0;height:3px;width:3px}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow, #000) 6px 0 6px -6px inset}.cs-default-anchor{position:fixed;width:0;height:0;overflow:hidden}.cs-drag{height:4px;background:transparent;cursor:ns-resize;position:relative;flex-shrink:0}.cs-drag:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:40px;height:3px;border-radius:2px;background:#ffffff26;transition:background .2s}.cs-drag:hover:after{background:#ffffff4d}.cs-panel{position:fixed;bottom:0;left:var(--sidebar-width, 240px);right:0;display:flex;flex-direction:column;background:#0d1117;border-top:1px solid #21262d;z-index:100;box-shadow:0 -4px 20px #0006;animation:csSlideUp .2s ease}.sidebar-collapsed .cs-panel{left:60px}@keyframes csSlideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.cs-panel.cs-panel-inline,.sidebar-collapsed .cs-panel.cs-panel-inline{position:relative;left:auto;right:auto;bottom:auto;width:100%;border:1px solid #21262d;border-radius:8px;box-shadow:none;z-index:auto;animation:csExpandDown .18s ease}@keyframes csExpandDown{0%{transform:translateY(-6px);opacity:0}to{transform:translateY(0);opacity:1}}.cs-header{display:flex;justify-content:space-between;align-items:center;padding:0 12px;height:36px;background:#161b22;border-bottom:1px solid #21262d;flex-shrink:0;-webkit-user-select:none;user-select:none}.cs-header-left{display:flex;align-items:center;gap:8px;color:#8b949e}.cs-title{font-size:12px;font-weight:600;color:#c9d1d9;letter-spacing:.3px}.cs-status{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.cs-status.connected{color:#3fb950}.cs-status.connecting{color:#d29922}.cs-status.disconnected{color:#8b949e}.cs-status.error{color:#f85149}.cs-status-dot{width:6px;height:6px;border-radius:50%;display:inline-block}.cs-status-dot.connected{background:#3fb950;box-shadow:0 0 6px #3fb95080}.cs-status-dot.connecting{background:#d29922;animation:pulse 1.2s infinite}.cs-status-dot.disconnected{background:#484f58}.cs-status-dot.error{background:#f85149}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.cs-header-actions{display:flex;gap:2px}.cs-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:transparent;border:none;color:#8b949e;border-radius:4px;cursor:pointer;transition:all .15s}.cs-btn:hover{background:#ffffff14;color:#c9d1d9}.cs-btn-close:hover{background:#f8514926;color:#f85149}.cs-terminal{flex:1;padding:4px 8px 8px;overflow:hidden}.cs-terminal .xterm{height:100%}.cs-terminal .xterm-viewport{overflow-y:auto!important}.cs-terminal .xterm-viewport::-webkit-scrollbar{width:6px}.cs-terminal .xterm-viewport::-webkit-scrollbar-track{background:transparent}.cs-terminal .xterm-viewport::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.cs-terminal .xterm-viewport::-webkit-scrollbar-thumb:hover{background:#fff3}.cs-minimized{position:fixed;bottom:0;left:var(--sidebar-width, 240px);display:flex;align-items:center;gap:8px;padding:6px 16px;background:#161b22;border-top:1px solid #21262d;border-right:1px solid #21262d;border-radius:6px 6px 0 0;color:#c9d1d9;font-size:12px;font-weight:500;cursor:pointer;z-index:100;transition:background .15s;-webkit-user-select:none;user-select:none}.sidebar-collapsed .cs-minimized{left:60px}.cs-minimized:hover{background:#1c2129}.cs-status .spin{animation:spin .8s linear infinite}.app-layout{display:flex;min-height:100vh}.app-main{flex:1;margin-left:var(--sidebar-width);min-width:0;transition:margin-left var(--transition-base);display:flex;flex-direction:column;min-height:100vh}.app-layout.sidebar-collapsed .app-main{margin-left:var(--sidebar-collapsed)}[dir=rtl] .app-main{margin-left:0;margin-right:var(--sidebar-width)}[dir=rtl] .app-layout.sidebar-collapsed .app-main{margin-right:var(--sidebar-collapsed)}.app-content{flex:1;padding:var(--space-2xl);background:var(--bg-primary)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-2xl);gap:var(--space-lg)}.page-header-left h1{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);margin-bottom:var(--space-xs)}.page-header-left p{font-size:var(--text-sm);color:var(--text-secondary)}.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition-fast)}.card:hover{border-color:var(--border-color-hover)}.card-header{padding:var(--space-lg) var(--space-xl);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg)}.card-header h2{font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary)}.card-body{padding:var(--space-xl)}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);table-layout:fixed}.data-table th{padding:var(--space-md) var(--space-lg);text-align:left;font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}[dir=rtl] .data-table th{text-align:right}.data-table td{padding:var(--space-md) var(--space-lg);color:var(--text-secondary);border-bottom:1px solid rgba(255,255,255,.04);vertical-align:top;word-wrap:break-word;overflow-wrap:break-word}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#ffffff05;color:var(--text-primary)}.data-table .cell-name{color:var(--text-primary);font-weight:var(--font-medium);word-break:break-all}.data-table .cell-mono{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted);word-break:break-all}.btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:.45rem var(--space-lg);font-size:var(--text-sm);font-weight:var(--font-medium);border-radius:var(--radius-md);border:none;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;font-family:var(--font-family);text-decoration:none}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--bg-card-hover);color:var(--text-secondary);border:1px solid var(--border-color)}.btn-secondary:hover{color:var(--text-primary);border-color:var(--border-color-hover)}.btn-danger{background:var(--color-danger-light);color:var(--color-danger);border:1px solid transparent}.btn-danger:hover{background:var(--color-danger);color:#fff}.btn-icon{width:30px;height:30px;padding:0;border-radius:var(--radius-md);background:transparent;border:1px solid var(--border-color);color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-fast);font-family:inherit}.btn-icon:hover{background:var(--bg-card);color:var(--text-primary);border-color:var(--border-color-hover)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-lg);margin-bottom:var(--space-2xl)}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-xl);display:flex;align-items:flex-start;gap:var(--space-lg);transition:all var(--transition-fast)}.stat-card:hover{border-color:var(--border-color-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.stat-icon{width:42px;height:42px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.stat-icon.blue{background:var(--color-primary-light);color:var(--color-primary)}.stat-icon.green{background:var(--color-secondary-light);color:var(--color-secondary)}.stat-icon.yellow{background:var(--color-warning-light);color:var(--color-warning)}.stat-icon.red{background:var(--color-danger-light);color:var(--color-danger)}.stat-icon.purple{background:#9c27b01f;color:#ce93d8}.stat-info{flex:1;min-width:0}.stat-value{font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);line-height:1.2}.stat-label{font-size:var(--text-xs);color:var(--text-muted);margin-top:2px}.progress-bar{height:6px;background:var(--bg-input);border-radius:var(--radius-full);overflow:hidden;margin-top:var(--space-sm)}.progress-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-slow)}.progress-fill.blue{background:var(--color-primary)}.progress-fill.green{background:var(--color-secondary)}.progress-fill.yellow{background:var(--color-warning)}.progress-fill.red{background:var(--color-danger)}:root{--color-primary: #4285f4;--color-primary-hover: #3367d6;--color-primary-light: rgba(66, 133, 244, .12);--color-primary-soft: rgba(66, 133, 244, .08);--color-secondary: #34a853;--color-secondary-hover: #2d9249;--color-secondary-light: rgba(52, 168, 83, .12);--color-warning: #fbbc04;--color-warning-light: rgba(251, 188, 4, .12);--color-danger: #ea4335;--color-danger-hover: #d33426;--color-danger-light: rgba(234, 67, 53, .12);--color-info: #4fc3f7;--color-info-light: rgba(79, 195, 247, .12);--color-amber: #f0a83c;--color-amber-hover: #d6912c;--color-amber-light: rgba(240, 168, 60, .14);--color-amber-wash: rgba(240, 168, 60, .05);--color-amber-glow: rgba(240, 168, 60, .5);--color-orange: #f2814a;--color-orange-light: rgba(242, 129, 74, .14);--gradient-warm: linear-gradient(135deg, #f0a83c, #f2814a);--bg-primary: #0a0e17;--bg-secondary: #111827;--bg-card: #1a2236;--bg-card-hover: #1f2a42;--bg-surface: #141c2e;--bg-input: #0f1525;--bg-sidebar: #0c1220;--bg-toolbar: #111827;--border-color: rgba(255, 255, 255, .08);--border-color-hover: rgba(255, 255, 255, .15);--border-color-active: var(--color-primary);--text-primary: #f0f4f8;--text-secondary: #8b95a5;--text-muted: #5a6577;--text-inverse: #0a0e17;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .6875rem;--text-sm: .8125rem;--text-base: .875rem;--text-lg: 1rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--space-xs: .25rem;--space-sm: .5rem;--space-md: .75rem;--space-lg: 1rem;--space-xl: 1.5rem;--space-2xl: 2rem;--space-3xl: 3rem;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--shadow-glow: 0 0 20px rgba(66, 133, 244, .15);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--sidebar-width: 260px;--sidebar-collapsed: 64px;--topbar-height: 56px;--status-running: #34a853;--status-pending: #fbbc04;--status-stopped: #ea4335;--status-creating: #4285f4}[dir=rtl]{--sidebar-direction: rtl}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);line-height:1.6;overflow-x:hidden}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:#fff3}.mono{font-family:var(--font-mono)}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;font-size:var(--text-xs);font-weight:var(--font-medium);border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px}.status-badge .dot{width:6px;height:6px;border-radius:50%;animation:pulse 2s infinite}.status-badge.running{background:#34a8531f;color:#34a853}.status-badge.running .dot{background:#34a853}.status-badge.pending{background:#fbbc041f;color:#fbbc04}.status-badge.pending .dot{background:#fbbc04;animation:none}.status-badge.stopped{background:#ea43351f;color:#ea4335}.status-badge.stopped .dot{background:#ea4335;animation:none}.status-badge.creating{background:#4285f41f;color:#4285f4}.status-badge.creating .dot{background:#4285f4}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl);text-align:center;color:var(--text-muted)}.empty-state svg{width:64px;height:64px;margin-bottom:var(--space-lg);opacity:.3}.empty-state h3{font-size:var(--text-lg);color:var(--text-secondary);margin-bottom:var(--space-sm)}.empty-state p{font-size:var(--text-sm)}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:2rem}.auth-card{width:100%;max-width:420px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:2.5rem;box-shadow:0 16px 48px #0006}.auth-logo{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:1.5rem}.auth-logo-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#4285f4,#34a853);color:#fff}.auth-logo h1{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:0}.auth-title{text-align:center;font-size:1.1rem;font-weight:600;color:var(--text-primary);margin:0 0 1.5rem}.auth-alert{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem 1rem;border-radius:var(--radius-md);font-size:13px;line-height:1.5;margin-bottom:1rem}.auth-alert.error{background:#ea433514;border:1px solid rgba(234,67,53,.2);color:#ea4335}.auth-alert.success{background:#34a85314;border:1px solid rgba(52,168,83,.2);color:#34a853}.auth-alert svg{flex-shrink:0;margin-top:1px}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-field label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:.35rem}.auth-input-wrap{position:relative}.auth-input-icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.auth-input-wrap input{width:100%;padding:.6rem .75rem .6rem 2.25rem;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:14px;font-family:inherit;outline:none;transition:border-color .2s;box-sizing:border-box}.auth-input-wrap input:focus{border-color:var(--color-primary)}.auth-submit{width:100%;padding:.7rem;background:linear-gradient(135deg,#4285f4,#34a853);color:#fff;border:none;border-radius:var(--radius-md);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:opacity .2s;display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.5rem}.auth-submit:hover{opacity:.9}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-footer{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:1.5rem;font-size:13px;color:var(--text-muted)}.auth-link{color:var(--color-primary);text-decoration:none;font-weight:600}.auth-link:hover{text-decoration:underline}.auth-dev-btn{display:block;width:100%;margin-top:1rem;padding:.5rem;background:transparent;border:1px dashed var(--border-color);border-radius:var(--radius-md);color:var(--text-muted);font-size:12px;font-family:inherit;cursor:pointer;transition:all .2s}.auth-dev-btn:hover{border-color:var(--text-muted);color:var(--text-primary)}.auth-success{text-align:center;padding:1rem 0}.auth-success-icon{color:#34a853;margin-bottom:1rem}.auth-success h2{font-size:1.25rem;color:var(--text-primary);margin:0 0 .5rem}.auth-success p{color:var(--text-muted);font-size:14px;line-height:1.6;margin:0 0 1.5rem}.auth-closed{text-align:center;padding:1rem 0}.auth-closed svg{color:var(--text-muted);margin-bottom:1rem;opacity:.6}.auth-closed h2{font-size:1.25rem;color:var(--text-primary);margin:0 0 .5rem}.auth-closed p{color:var(--text-muted);font-size:14px;line-height:1.6;margin:0}.onboard-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.onboard-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.6rem;background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-muted);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s}.onboard-tab.active{border-color:var(--color-primary);color:var(--color-primary);background:#4285f40f}.onboard-tab:hover:not(.active){border-color:var(--text-muted)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin .8s linear infinite}.catalog-page{padding-bottom:64px}.catalog-hero{text-align:center;padding:32px 0 24px}.catalog-hero h1{font-size:28px;font-weight:800;letter-spacing:-1px;margin-bottom:6px;background:linear-gradient(135deg,var(--text-primary) 0%,var(--accent) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.catalog-hero p{color:var(--text-muted);font-size:14px}.catalog-api-warning{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:10px;background:#f59e0b14;border:1px solid rgba(245,158,11,.2);color:#f59e0b;font-size:12px;margin-bottom:20px;animation:catalog-fade-in .3s ease}.catalog-controls{display:flex;align-items:center;gap:16px;margin-bottom:24px;flex-wrap:wrap}.catalog-search{position:relative;flex:1;min-width:240px}.catalog-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted)}.catalog-search input{width:100%;padding:10px 16px 10px 42px;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:13px;font-family:inherit;outline:none;transition:border-color .2s,box-shadow .2s}.catalog-search input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #6366f11f}.catalog-search input::placeholder{color:var(--text-muted)}.catalog-pills{display:flex;gap:8px;flex-wrap:wrap}.catalog-pill{padding:7px 14px;border-radius:20px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary);transition:all .2s;font-family:inherit;display:flex;align-items:center;gap:6px}.catalog-pill:hover{border-color:var(--border-hover);color:var(--text-primary)}.catalog-pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.catalog-pill-count{padding:1px 7px;border-radius:10px;font-size:10px;background:#ffffff26}.catalog-pill:not(.active) .catalog-pill-count{background:#94a3b826}.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}.catalog-card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.catalog-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--card-accent, var(--accent)),transparent);opacity:0;transition:opacity .3s}.catalog-card:hover{border-color:var(--border-hover);transform:translateY(-2px);box-shadow:0 4px 24px #0003}.catalog-card:hover:before{opacity:1}.catalog-card.installed{border-color:#10b98140}.catalog-card.installed:before{background:linear-gradient(90deg,#10b981,transparent);opacity:1}.catalog-card-top{display:flex;align-items:flex-start;gap:14px;margin-bottom:14px}.catalog-card-icon{width:48px;height:48px;border-radius:12px;background:#ffffff0a;display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0}.catalog-card-info{flex:1;min-width:0}.catalog-card-name{font-size:15px;font-weight:700;letter-spacing:-.3px}.catalog-card-vendor{font-size:11px;color:var(--text-muted);margin-top:1px}.catalog-card-version{display:inline-block;padding:2px 8px;background:#94a3b814;border-radius:6px;font-size:10px;color:var(--text-secondary);font-weight:500;margin-top:5px}.catalog-card-desc{font-size:12px;color:var(--text-secondary);line-height:1.6;margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.catalog-card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.catalog-card-footer{display:flex;align-items:center;justify-content:space-between}.catalog-card-stats{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--text-muted)}.catalog-installed-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:8px;font-size:11px;font-weight:600;color:#10b981;background:#10b9811a;border:1px solid rgba(16,185,129,.2);white-space:nowrap;flex-shrink:0}.catalog-btn-status{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;border-radius:8px;font-size:12px;font-weight:600;border:none;cursor:pointer;font-family:inherit;transition:all .2s}.catalog-btn-status.installed{background:#10b9811a;color:#10b981;border:1px solid rgba(16,185,129,.2)}.catalog-btn-status.installed:hover{background:#10b9812e}.catalog-btn-install{padding:7px 18px;border-radius:8px;font-size:12px;font-weight:600;cursor:pointer;border:none;transition:all .2s;font-family:inherit;background:var(--accent);color:#fff}.catalog-btn-install:hover{filter:brightness(1.15);box-shadow:0 4px 16px #6366f14d}.catalog-btn-install.coming-soon{background:#94a3b81a;color:var(--text-muted);border:1px solid rgba(148,163,184,.15);cursor:not-allowed;opacity:.7}.catalog-btn-install.coming-soon:hover{filter:none;box-shadow:none;transform:none}.catalog-btn-uninstall{padding:9px 18px;border-radius:8px;border:1px solid rgba(239,68,68,.2);background:#ef444414;color:#ef4444;font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s}.catalog-btn-uninstall:hover{background:#ef444426;border-color:#ef44444d}.catalog-btn-uninstall.confirm{background:#ef444433;border-color:#ef4444;font-weight:600;animation:catalog-pulse .6s ease}@keyframes catalog-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.catalog-btn-deploy{padding:9px 24px;border-radius:8px;border:none;background:linear-gradient(135deg,var(--accent),#6366f1);color:#fff;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s;display:inline-flex;align-items:center;gap:8px}.catalog-btn-deploy:hover{box-shadow:0 4px 20px #6366f166;transform:translateY(-1px)}.catalog-btn-deploy:disabled{opacity:.7;cursor:not-allowed}.catalog-btn-deploy:disabled:hover{box-shadow:none;transform:none}.catalog-btn-deploy.coming-soon{background:#94a3b826;opacity:.6;cursor:not-allowed}.catalog-btn-deploy.coming-soon:hover{box-shadow:none;transform:none}.catalog-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:catalog-spin .6s linear infinite}@keyframes catalog-spin{to{transform:rotate(360deg)}}.catalog-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:200;display:flex;align-items:center;justify-content:center;animation:catalog-fade-in .2s ease}@keyframes catalog-fade-in{0%{opacity:0}to{opacity:1}}.catalog-modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:16px;width:560px;max-width:95vw;max-height:85vh;overflow-y:auto;box-shadow:0 24px 64px #00000080;animation:catalog-slide-up .25s ease}@keyframes catalog-slide-up{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}.catalog-modal-header{padding:22px 24px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:14px}.catalog-modal-header-info{flex:1}.catalog-modal-header-info h2{font-size:18px;font-weight:700;letter-spacing:-.5px}.catalog-modal-header-info p{font-size:12px;color:var(--text-muted);margin-top:2px}.catalog-modal-close{width:34px;height:34px;border-radius:9px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:all .2s}.catalog-modal-close:hover{background:var(--bg-card);color:var(--text-primary)}.catalog-modal-body{padding:22px 24px}.catalog-modal-desc{font-size:13px;color:var(--text-secondary);line-height:1.7;margin-bottom:22px}.catalog-modal-section{margin-bottom:20px}.catalog-modal-section h3{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.catalog-modal-features{display:grid;grid-template-columns:1fr 1fr;gap:8px}.catalog-feature{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.catalog-feature-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.catalog-form-group{margin-bottom:12px}.catalog-form-group label{display:block;font-size:12px;color:var(--text-secondary);margin-bottom:5px;font-weight:500}.catalog-form-group input,.catalog-form-group select{width:100%;padding:9px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:12px;font-family:inherit;outline:none;transition:border-color .2s}.catalog-form-group input:focus,.catalog-form-group select:focus{border-color:var(--accent)}.catalog-form-group select{cursor:pointer}.catalog-form-group select option{background:var(--bg-card)}.catalog-form-group input:disabled,.catalog-form-group select:disabled{opacity:.5;cursor:not-allowed}.catalog-form-hint{font-size:10px;color:var(--text-muted);margin-top:3px}.catalog-version-list{display:flex;flex-wrap:wrap;gap:6px}.catalog-version-tag{padding:3px 10px;border-radius:6px;font-size:11px;font-weight:500;background:#94a3b814;color:var(--text-secondary);border:1px solid var(--border)}.catalog-version-tag.current{background:#6366f11f;color:var(--accent);border-color:#6366f140}.catalog-version-tag.more{background:transparent;color:var(--text-muted);border:1px dashed var(--border)}.catalog-modal-footer{padding:18px 24px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.catalog-resource-info{font-size:11px;color:var(--text-muted)}.catalog-resource-info strong{color:var(--text-secondary)}.catalog-modal-actions{display:flex;gap:10px;align-items:center}.catalog-btn-cancel{padding:9px 18px;border-radius:8px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;font-family:inherit;transition:all .2s}.catalog-btn-cancel:hover{border-color:var(--border-hover);color:var(--text-primary)}.catalog-card.catalog-skeleton{pointer-events:none}.skeleton-box{background:linear-gradient(90deg,#94a3b80f 25%,#94a3b81f,#94a3b80f 75%);background-size:200% 100%;border-radius:6px;animation:catalog-shimmer 1.5s infinite ease-in-out}@keyframes catalog-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.catalog-toast{position:fixed;bottom:32px;right:32px;padding:12px 22px;background:var(--bg-card);border:1px solid #10b981;border-radius:12px;color:#10b981;font-size:13px;font-weight:500;box-shadow:0 8px 32px #0006;z-index:300;display:flex;align-items:center;gap:10px;transform:translateY(100px);opacity:0;transition:all .4s cubic-bezier(.4,0,.2,1);pointer-events:none}.catalog-toast.show{transform:translateY(0);opacity:1}@media (max-width: 768px){.catalog-hero h1{font-size:22px}.catalog-controls{flex-direction:column;align-items:stretch}.catalog-grid,.catalog-modal-features{grid-template-columns:1fr}.catalog-modal-footer{flex-direction:column;align-items:stretch}.catalog-modal-actions{justify-content:flex-end}}
