.layout[data-v-4475c715]{display:flex;height:100vh;width:100vw;overflow:hidden}.sidebar[data-v-4475c715]{width:220px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width .2s ease;flex-shrink:0}.sidebar.collapsed[data-v-4475c715]{width:64px}.logo[data-v-4475c715]{height:56px;display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid var(--divider);flex-shrink:0}.logo-icon[data-v-4475c715]{width:32px;height:32px;background:var(--brand);color:var(--brand-on);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo-text[data-v-4475c715]{font-size:15px;font-weight:600;color:var(--text)}.menu[data-v-4475c715]{flex:1;padding:12px;overflow-y:auto}.menu-group[data-v-4475c715]{font-size:12px;color:var(--text-muted);padding:12px 12px 6px;font-weight:500}.menu-item[data-v-4475c715]{display:flex;align-items:center;gap:10px;height:40px;padding:0 12px;border-radius:var(--radius);color:var(--text-regular);font-size:14px;font-weight:500;margin-bottom:4px;transition:all .15s ease}.menu-item[data-v-4475c715]:hover{background:var(--brand-soft);color:var(--brand)}.menu-item.active[data-v-4475c715]{background:var(--brand);color:var(--brand-on)}.menu-icon[data-v-4475c715]{display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar.collapsed .menu-item[data-v-4475c715]{justify-content:center;padding:0}.sidebar-footer[data-v-4475c715]{padding:12px 16px;border-top:1px solid var(--divider)}.version[data-v-4475c715]{font-size:12px;color:var(--text-muted)}.main[data-v-4475c715]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.topbar[data-v-4475c715]{height:56px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 20px;flex-shrink:0}.topbar-left[data-v-4475c715]{display:flex;align-items:center;gap:12px}.collapse-btn[data-v-4475c715]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-regular);border-radius:var(--radius)}.collapse-btn[data-v-4475c715]:hover{background:var(--surface-muted);color:var(--brand)}.breadcrumb[data-v-4475c715]{display:flex;align-items:center;gap:8px;font-size:14px}.breadcrumb-item[data-v-4475c715]{color:var(--text-muted)}.breadcrumb-item.current[data-v-4475c715]{color:var(--text);font-weight:500}.breadcrumb-sep[data-v-4475c715]{color:var(--text-placeholder)}.topbar-right[data-v-4475c715]{display:flex;align-items:center;gap:8px}.icon-btn[data-v-4475c715]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-regular);border-radius:var(--radius)}.icon-btn[data-v-4475c715]:hover{background:var(--surface-muted);color:var(--brand)}.user[data-v-4475c715]{display:flex;align-items:center;gap:8px;padding-left:12px;margin-left:4px;border-left:1px solid var(--border)}.avatar[data-v-4475c715]{width:30px;height:30px;background:var(--brand);color:var(--brand-on);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}.user-name[data-v-4475c715]{font-size:14px;color:var(--text);font-weight:500}.content[data-v-4475c715]{flex:1;overflow-y:auto;padding:20px;background:var(--bg)}:root{--brand: #4B3FE3;--brand-hover: #3F33D0;--brand-active: #3528B8;--brand-soft: #F2F4FF;--brand-soft-strong: #E5E9FF;--brand-text: #1A1759;--brand-on: #FFFFFF;--bg: #F5F6FA;--surface: #FFFFFF;--surface-muted: #F7F8FB;--text: #1F2233;--text-regular: #4A4E63;--text-muted: #8A8FA3;--text-placeholder: #B5B9C7;--border: #E7E9F0;--border-strong: #D4D7E0;--divider: #F0F1F5;--success: #1DC981;--success-soft: #E7F9F0;--warning: #EFAA17;--warning-soft: #FDF4E0;--danger: #E8463A;--danger-soft: #FDECEA;--info: #22A5F7;--info-soft: #E6F4FE;--radius: 4px;--radius-card: 8px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(31, 34, 51, .04);--shadow: 0 2px 8px rgba(31, 34, 51, .06);--shadow-md: 0 4px 16px rgba(31, 34, 51, .08);--shadow-lg: 0 8px 24px rgba(31, 34, 51, .1);--font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;--spacer-4: 4px;--spacer-8: 8px;--spacer-12: 12px;--spacer-16: 16px;--spacer-20: 20px;--spacer-24: 24px;--spacer-32: 32px}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%;width:100%}body{font-family:var(--font-sans);font-size:14px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;cursor:pointer;border:none;outline:none}input,select,textarea{font-family:inherit;font-size:14px;outline:none}a{text-decoration:none;color:inherit}ul,li{list-style:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:34px;padding:0 16px;font-size:14px;font-weight:500;border-radius:var(--radius);transition:all .15s ease;white-space:nowrap;border:1px solid transparent}.btn-primary{background:var(--brand);color:var(--brand-on)}.btn-primary:hover{background:var(--brand-hover)}.btn-primary:active{background:var(--brand-active)}.btn-default{background:var(--surface);color:var(--text-regular);border-color:var(--border-strong)}.btn-default:hover{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}.btn-text{background:transparent;color:var(--brand);padding:0 8px;height:28px}.btn-text:hover{background:var(--brand-soft)}.btn-danger-text{background:transparent;color:var(--danger);padding:0 8px;height:28px}.btn-danger-text:hover{background:var(--danger-soft)}.btn-sm{height:28px;padding:0 12px;font-size:13px}.btn:disabled{opacity:.5;cursor:not-allowed}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.tag{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;font-size:12px;font-weight:500;border-radius:var(--radius);white-space:nowrap}.tag-success{background:var(--success-soft);color:var(--success)}.tag-warning{background:var(--warning-soft);color:var(--warning)}.tag-danger{background:var(--danger-soft);color:var(--danger)}.tag-info{background:var(--info-soft);color:var(--info)}.tag-default{background:var(--surface-muted);color:var(--text-muted)}.tag-brand{background:var(--brand-soft);color:var(--brand)}.label-nowrap,span{white-space:nowrap}
