@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=JetBrains+Mono:wght@400;500;700&display=swap";:root{--surface-base: #0f1117;--surface-raised: #161922;--surface-overlay: #1e2130;--surface-border: #2a2d3a;--text-primary: #e8eaed;--text-secondary: #9ca3af;--text-muted: #6b7280;--signal-health: #34d399;--signal-caution: #fbbf24;--signal-danger: #f87171;--signal-health-dim: rgba(52,211,153,.12);--signal-caution-dim: rgba(251,191,36,.12);--signal-danger-dim: rgba(248,113,113,.12);--accent-blue: #60a5fa;--accent-green: #22c55e;--accent-purple: #a855f7;--accent-cyan: #06b6d4;--font-data: "JetBrains Mono", "Fira Code", "SF Mono", monospace;--font-body: "DM Sans", system-ui, sans-serif;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--sidebar-w: 200px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--surface-base);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;height:100vh;overflow:hidden}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-header{display:flex;align-items:center;gap:var(--space-md);padding:0 20px;height:52px;flex-shrink:0;background:var(--surface-raised);border-bottom:1px solid var(--surface-border);z-index:10}.sidebar-toggle{width:28px;height:28px;background:none;border:1px solid var(--surface-border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:.8125rem;line-height:1;flex-shrink:0}.sidebar-toggle:hover{border-color:var(--accent-blue);color:var(--accent-blue)}.app-logo{display:flex;align-items:center;gap:8px;font-size:.9375rem;font-weight:700;color:var(--text-primary);letter-spacing:-.01em}.logo-mark{width:28px;height:28px;background:var(--accent-blue);border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:.6875rem;font-weight:800;color:#0f1117}.header-sep{flex:1}.header-user{display:flex;align-items:center;gap:var(--space-md)}.user-avatar{width:28px;height:28px;border-radius:50%;background:#60a5fa26;border:1px solid var(--accent-blue);display:flex;align-items:center;justify-content:center;font-size:.625rem;font-weight:700;color:var(--accent-blue)}.logout-link{font-size:.8125rem;color:var(--text-secondary);text-decoration:none}.logout-link:hover{color:var(--text-primary)}.app-body{display:flex;flex:1;overflow:hidden}.app-sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--surface-raised);border-right:1px solid var(--surface-border);display:flex;flex-direction:column;overflow-y:auto;padding:8px 0 16px;transition:width .16s ease,padding .16s ease}.app-sidebar--collapsed{width:0;padding:8px 0 16px;overflow:hidden;border-right-color:transparent}.sidebar-group{margin-bottom:2px}.sidebar-label{font-size:.5625rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:14px 14px 4px}.sidebar-label--toggle{display:flex;align-items:center;gap:6px;width:100%;border:none;background:none;cursor:pointer;font-family:var(--font-body);text-align:left}.sidebar-label--toggle:hover{color:var(--text-secondary)}.sidebar-label--nested{padding-left:18px;font-size:.5rem}.group-caret{display:inline-block;font-size:.75rem;line-height:1;transition:transform .12s}.group-caret.open{transform:rotate(90deg)}.sidebar-section{margin-bottom:2px}.sidebar-section--nested{padding-left:12px}.sub-btn{display:block;width:100%;padding:7px 14px 7px 18px;border:none;border-left:2px solid transparent;background:none;color:var(--text-muted);font-family:var(--font-body);font-size:.8125rem;text-align:left;text-decoration:none;cursor:pointer;transition:color .12s,background .12s,border-color .12s}.sub-btn:hover:not(.sub-btn--disabled){color:var(--text-secondary);background:var(--surface-overlay)}.sub-btn.router-link-active,.sub-btn.active{color:var(--accent-blue);border-left-color:var(--accent-blue);background:#60a5fa14}.sub-btn--disabled{opacity:.35;cursor:not-allowed}.app-main{flex:1;overflow-y:auto;padding:var(--space-xl)}.embed-mode .app-main{padding:var(--space-md)}.workbench-mode .app-body{overflow:hidden}.workbench-mode .app-main{padding:0;overflow:hidden}
