.sidebar[data-v-21a5f37c]{width:var(--sidebar-width);height:100vh;background:var(--sidebar-bg);display:flex;flex-direction:column;flex-shrink:0;overflow:hidden}.sidebar-logo[data-v-21a5f37c]{display:flex;align-items:center;gap:10px;padding:20px 20px 16px;border-bottom:1px solid rgba(255,255,255,.08)}.logo-icon[data-v-21a5f37c]{font-size:20px;color:#fff}.logo-text[data-v-21a5f37c]{font-size:15px;font-weight:700;color:#fff;letter-spacing:.02em}.sidebar-nav[data-v-21a5f37c]{flex:1;padding:12px 10px;display:flex;flex-direction:column;gap:2px;overflow-y:auto}.nav-item[data-v-21a5f37c]{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:var(--radius-md);color:var(--sidebar-text);font-size:13px;font-weight:500;transition:all var(--transition);text-decoration:none;position:relative}.nav-item[data-v-21a5f37c]:hover{background:#ffffff12;color:#fff}.nav-item.active[data-v-21a5f37c]{background:var(--sidebar-active);color:#fff;box-shadow:inset 3px 0 #fff6}.nav-icon[data-v-21a5f37c]{font-size:16px;width:20px;flex-shrink:0}.nav-label[data-v-21a5f37c]{flex:1;white-space:nowrap}.nav-badge[data-v-21a5f37c]{font-size:9px;font-weight:700;background:var(--color-warning);color:#fff;padding:1px 5px;border-radius:var(--radius-full);letter-spacing:.04em}.sidebar-footer[data-v-21a5f37c]{padding:12px 10px;border-top:1px solid rgba(255,255,255,.08)}.theme-toggle[data-v-21a5f37c]{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;border-radius:var(--radius-md);background:transparent;border:none;color:var(--sidebar-text);font-size:12px;cursor:pointer;transition:all var(--transition)}.theme-toggle[data-v-21a5f37c]:hover{background:#ffffff12;color:#fff}.version[data-v-21a5f37c]{text-align:center;font-size:11px;color:#fff3;margin-top:6px}.app-header[data-v-4076f894]{height:var(--header-height);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-xl);background:var(--color-surface);border-bottom:1px solid var(--color-border);flex-shrink:0}.header-left[data-v-4076f894]{display:flex;align-items:center;gap:var(--space-md)}.page-title[data-v-4076f894]{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:var(--color-text)}.page-icon[data-v-4076f894]{font-size:18px;color:var(--color-primary)}.page-desc[data-v-4076f894]{font-size:12px;color:var(--color-text-muted);padding-left:var(--space-md);border-left:1px solid var(--color-border)}.header-right[data-v-4076f894]{display:flex;align-items:center;gap:var(--space-md)}.budget-alert[data-v-4076f894]{font-size:12px;color:var(--color-warning);background:#fffbeb;border:1px solid #fde68a;padding:4px 12px;border-radius:var(--radius-full);animation:fadeIn-4076f894 .3s ease}.user-info[data-v-4076f894]{display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px 10px;border-radius:var(--radius-md);transition:background var(--transition)}.user-info[data-v-4076f894]:hover{background:var(--color-border-light)}.user-avatar[data-v-4076f894]{width:30px;height:30px;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600}.user-name[data-v-4076f894]{font-size:13px;font-weight:500;color:var(--color-text)}@keyframes fadeIn-4076f894{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.toast-container[data-v-3674e399]{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast[data-v-3674e399]{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;color:#fff;box-shadow:var(--shadow-lg);min-width:200px;max-width:360px}.toast-success[data-v-3674e399]{background:var(--color-success)}.toast-error[data-v-3674e399]{background:var(--color-danger)}.toast-warning[data-v-3674e399]{background:var(--color-warning)}.toast-info[data-v-3674e399]{background:var(--color-info)}.toast-icon[data-v-3674e399]{font-size:14px;flex-shrink:0}.toast-enter-active[data-v-3674e399],.toast-leave-active[data-v-3674e399]{transition:all .3s ease}.toast-enter-from[data-v-3674e399],.toast-leave-to[data-v-3674e399]{opacity:0;transform:translate(20px)}.app-layout[data-v-96f56eef]{display:flex;width:100%;height:100vh;overflow:hidden;background:var(--color-bg)}.main-area[data-v-96f56eef]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.page-content[data-v-96f56eef]{flex:1;overflow:hidden}:root{--color-primary: #4f46e5;--color-primary-light: #6366f1;--color-primary-dark: #3730a3;--color-primary-bg: #eef2ff;--color-success: #10b981;--color-warning: #f59e0b;--color-danger: #ef4444;--color-info: #3b82f6;--color-bg: #f8f9fb;--color-surface: #ffffff;--color-border: #e5e7eb;--color-border-light: #f3f4f6;--color-text: #111827;--color-text-sub: #6b7280;--color-text-muted: #9ca3af;--color-text-invert: #ffffff;--sidebar-width: 220px;--sidebar-bg: #1f2937;--sidebar-text: #9ca3af;--sidebar-active: #374151;--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;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08);--shadow-md: 0 4px 12px rgba(0,0,0,.1);--shadow-lg: 0 8px 24px rgba(0,0,0,.12);--font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--transition: .2s ease;--header-height: 56px}[data-theme=dark]{--color-bg: #0f0f13;--color-surface: #1a1a24;--color-border: #2d2d3d;--color-border-light: #252535;--color-text: #f1f0ff;--color-text-sub: #9b99c4;--color-text-muted: #6b6a8a;--color-primary-bg: #1e1b4b;--sidebar-bg: #111827}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-sans);font-size:14px;line-height:1.6;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased}#app{height:100%;display:flex}a{color:var(--color-primary);text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;outline:none}input,textarea,select{font-family:inherit;outline:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.flex-1{flex:1}.overflow-hidden{overflow:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cursor-blink{display:inline-block;width:2px;height:1em;background:var(--color-text);vertical-align:text-bottom;animation:blink .7s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.spinner{width:16px;height:16px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dot-running{background:var(--color-primary);animation:pulse 1s infinite}.dot-done{background:var(--color-success)}.dot-error{background:var(--color-danger)}.dot-wait{background:var(--color-border)}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}pre{background:#1e1e2e;color:#cdd6f4;padding:var(--space-md);border-radius:var(--radius-md);overflow-x:auto;font-family:var(--font-mono);font-size:13px;line-height:1.6}code{font-family:var(--font-mono);background:var(--color-border-light);padding:2px 5px;border-radius:var(--radius-sm);font-size:12px}pre code{background:none;padding:0}.btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:8px 16px;border-radius:var(--radius-md);font-size:13px;font-weight:500;transition:all var(--transition);white-space:nowrap}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-light)}.btn-primary:disabled{opacity:.45;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--color-text-sub);border:1px solid var(--color-border)}.btn-ghost:hover{background:var(--color-border-light);color:var(--color-text)}.btn-danger{background:#fef2f2;color:var(--color-danger);border:1px solid #fecaca}.btn-danger:hover{background:#fee2e2}.input{width:100%;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;color:var(--color-text);background:var(--color-surface);transition:border-color var(--transition)}.input:focus{border-color:var(--color-primary)}.input::placeholder{color:var(--color-text-muted)}textarea.input{resize:vertical;min-height:80px;line-height:1.6}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);color:var(--color-text-muted);padding:var(--space-2xl)}.empty-state .icon{font-size:40px;margin-bottom:var(--space-sm)}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:11px;font-weight:500}.tag-blue{background:#dbeafe;color:#1d4ed8}.tag-green{background:#dcfce7;color:#166534}.tag-amber{background:#fef3c7;color:#92400e}.tag-red{background:#fee2e2;color:#991b1b}.tag-purple{background:var(--color-primary-bg);color:var(--color-primary)}.tag-gray{background:var(--color-border-light);color:var(--color-text-sub)}
