.sidebar[data-v-fc0245cb]{width:var(--sidebar-w);flex-shrink:0;background:var(--bg-sidebar);border-right:1px solid var(--border-line);display:flex;flex-direction:column;transition:width .15s}.sidebar.collapsed[data-v-fc0245cb]{width:52px}.brand[data-v-fc0245cb]{display:flex;align-items:center;gap:8px;padding:14px 12px 10px}.logo[data-v-fc0245cb]{width:22px;height:22px;border-radius:6px;overflow:hidden;flex-shrink:0;display:block}.logo img[data-v-fc0245cb]{width:100%;height:100%;object-fit:cover;transform:scale(1.75);display:block}.brand-name[data-v-fc0245cb]{font-weight:600;font-size:13.5px;flex:1}.collapse[data-v-fc0245cb],.expand[data-v-fc0245cb]{color:var(--text-faint-alt);padding:3px;border-radius:4px}.collapse[data-v-fc0245cb]:hover,.expand[data-v-fc0245cb]:hover{color:var(--text-dim);background:var(--bg-hover)}.expand[data-v-fc0245cb]{margin:0 auto 8px}.search[data-v-fc0245cb]{display:flex;align-items:center;gap:7px;margin:0 10px 12px;padding:6px 9px;border-radius:var(--radius-sm);background:var(--bg-input);border:1px solid var(--border-line);color:var(--text-faint-alt);cursor:pointer}.search[data-v-fc0245cb]:hover{border-color:var(--border)}.search-placeholder[data-v-fc0245cb]{flex:1;font-size:12.5px}.kbd[data-v-fc0245cb]{padding:1px 4px;border-radius:3px;background:#26262c;font-size:10px;color:var(--text-faint-alt)}.kbd-plus[data-v-fc0245cb]{font-size:10px}.nav[data-v-fc0245cb]{flex:1;overflow-y:auto;padding:0 8px}.group[data-v-fc0245cb]{margin-bottom:14px}.group-title[data-v-fc0245cb]{display:flex;align-items:center;gap:4px;padding:0 6px 5px;font-size:11px;color:var(--text-faint-alt)}.nav-item[data-v-fc0245cb]{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:var(--radius-sm);color:var(--text-dim);font-size:13px;transition:background .1s,color .1s}.nav-item[data-v-fc0245cb]:hover{background:var(--bg-hover);color:var(--text)}.nav-item.active[data-v-fc0245cb]{background:var(--bg-panel-2);color:var(--text)}.nav-label[data-v-fc0245cb]{flex:1}.footer[data-v-fc0245cb]{display:flex;align-items:center;gap:2px;padding:10px;border-top:1px solid var(--border-line)}.footer-btn[data-v-fc0245cb]{padding:5px;border-radius:5px;color:var(--text-faint-alt)}.footer-btn[data-v-fc0245cb]:hover{color:var(--text-dim);background:var(--bg-hover)}.footer-btn.logout[data-v-fc0245cb]{margin-left:auto;color:var(--red)}.footer-btn.logout[data-v-fc0245cb]:hover{background:#e5484d24}.boot[data-v-d19df6de]{height:100%;display:grid;place-items:center}.shell[data-v-d19df6de]{display:flex;height:100%}.main[data-v-d19df6de]{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}:root{--bg: #0a0a0a;--bg-sidebar: #1c1c1c;--bg-panel: #101010;--bg-panel-2: #242424;--bg-hover: #242424;--bg-input: #1c1c1c;--border: #2b2b2b;--border-soft: #1e1e1e;--border-line: #303030;--text: #e0e0e0;--text-dim: #9a9a9a;--text-faint: #7d7d7d;--text-faint-alt: #858585;--accent: #3b8ff5;--accent-dim: #2b6fd0;--green: #3fbf6a;--red: #e5484d;--orange: #f5a524;--purple: #8b5cf6;--radius: 8px;--radius-sm: 6px;--sidebar-w: 186px;--header-h: 52px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;line-height:1.45;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,select,textarea{font:inherit;color:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#2a2a30;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#35353d}.page-title{font-size:22px;font-weight:600;letter-spacing:-.01em}.page-subtitle{color:var(--text-dim);font-size:13px;margin-top:4px}.card{background:var(--bg-panel);border:1px solid var(--border-soft);border-radius:var(--radius)}.muted{color:var(--text-dim)}.faint{color:var(--text-faint)}.mono{font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:var(--radius-sm);background:var(--bg-panel-2);font-size:12px;color:var(--text-dim);white-space:nowrap}.badge.green{color:var(--green);background:#3fbf6a1f}.badge.red{color:var(--red);background:#e5484d1f}.badge.orange{color:var(--orange);background:#f5a5241f}.badge.blue{color:var(--accent);background:#3b8ff51f}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 14px;border-radius:var(--radius-sm);background:var(--bg-panel-2);color:var(--text);font-size:13px;transition:background .12s;white-space:nowrap}.btn:hover{background:var(--bg-hover)}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-dim)}.btn.danger{color:var(--red)}.btn.danger:hover{background:#e5484d24}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.link{background:none;color:var(--accent);padding:0}.btn.link:hover{background:none;text-decoration:underline}.input{width:100%;padding:8px 11px;border-radius:var(--radius-sm);background:var(--bg-input);border:1px solid var(--border);outline:none;transition:border-color .12s}.input:focus{border-color:var(--accent)}.input::placeholder{color:var(--text-faint)}.table{width:100%;border-collapse:collapse}.table th{text-align:left;padding:10px 14px;font-size:12px;font-weight:500;color:var(--text-dim);border-bottom:1px solid var(--border-soft);white-space:nowrap}.table td{padding:11px 14px;border-bottom:1px solid var(--border-soft);vertical-align:middle}.table tbody tr{transition:background .1s}.table tbody tr:hover{background:var(--bg-panel)}.tabs{display:flex;gap:18px;border-bottom:1px solid var(--border-soft)}.tabs button{padding:9px 0;font-size:13px;color:var(--text-dim);border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .12s}.tabs button:hover{color:var(--text)}.tabs button.active{color:var(--text);border-bottom-color:var(--accent)}.switch{position:relative;width:34px;height:19px;border-radius:10px;background:#2e2e35;transition:background .15s;flex-shrink:0}.switch.on{background:var(--accent)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;transition:transform .15s}.switch.on:after{transform:translate(15px)}.avatar{border-radius:50%;object-fit:cover;background:var(--bg-panel-2);flex-shrink:0}.avatar-wrap{position:relative;flex-shrink:0}.avatar-dot{position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;background:var(--text-faint);border:2px solid var(--bg)}.avatar-dot.online{background:var(--green)}.notice{display:flex;gap:10px;padding:12px 14px;border-radius:var(--radius);background:#3b8ff514;border:1px solid rgba(59,143,245,.15);color:var(--text-dim);font-size:12.5px;line-height:1.5}.notice.warn{background:#f5a52412;border-color:#f5a52429}.notice.danger{background:#e5484d12;border-color:#e5484d29}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000009e;display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}.modal{background:var(--bg-panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 24px 60px #00000080;max-height:calc(100vh - 48px);display:flex;flex-direction:column;overflow:hidden}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 18px;border-top:1px solid var(--border-soft)}.menu{background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:5px;min-width:190px;box-shadow:0 12px 32px #00000073}.menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:7px 10px;border-radius:var(--radius-sm);font-size:13px;text-align:left;transition:background .1s}.menu-item:hover{background:var(--bg-hover)}.menu-item.danger{color:var(--red)}.menu-item.disabled{color:var(--text-faint);cursor:not-allowed}.menu-item.disabled:hover{background:none}.menu-sep{height:1px;background:var(--border-soft);margin:5px 0}.row{display:flex;align-items:center}.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.grow{flex:1;min-width:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty{padding:48px 20px;text-align:center;color:var(--text-faint);font-size:13px}.spinner{width:15px;height:15px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
