.icon-rail[data-v-3212d9f3]{width:var(--rail-width);background:var(--bg-elevated);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:var(--space-3) 0;flex-shrink:0;overflow:hidden}.rail-logo[data-v-3212d9f3]{width:36px;height:36px;display:flex;align-items:center;justify-content:center;color:var(--accent);margin-bottom:var(--space-4)}.rail-nav[data-v-3212d9f3]{display:flex;flex-direction:column;gap:var(--space-1);flex:1;width:100%;align-items:center}.rail-footer[data-v-3212d9f3]{margin-top:auto;width:100%;display:flex;justify-content:center}.rail-item[data-v-3212d9f3]{width:44px;height:44px;border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:var(--text-secondary);cursor:pointer;border:none;background:transparent;transition:all var(--transition);text-decoration:none;padding:0}.rail-item[data-v-3212d9f3]:hover{background:var(--bg-hover);color:var(--text)}.rail-item.active[data-v-3212d9f3]{background:var(--accent-soft);color:var(--accent)}.rail-item.active[data-v-3212d9f3]:before{content:"";position:absolute;left:0;width:3px;height:24px;background:var(--accent);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.rail-item[data-v-3212d9f3]{position:relative}.rail-label[data-v-3212d9f3]{font-size:10px;font-weight:500;line-height:1}.icon-rail.is-mobile[data-v-3212d9f3]{position:fixed;top:0;left:0;bottom:0;width:200px;z-index:100;transform:translate(-100%);transition:transform .25s cubic-bezier(.4,0,.2,1);box-shadow:2px 0 12px #00000026;align-items:stretch;padding:var(--space-3)}.icon-rail.is-mobile.open[data-v-3212d9f3]{transform:translate(0)}.icon-rail.is-mobile .rail-logo[data-v-3212d9f3]{align-self:flex-start;margin-bottom:var(--space-3);padding-left:var(--space-2)}.icon-rail.is-mobile .rail-nav[data-v-3212d9f3]{gap:2px;align-items:stretch}.icon-rail.is-mobile .rail-footer[data-v-3212d9f3]{justify-content:flex-start}.icon-rail.is-mobile .rail-item[data-v-3212d9f3]{width:100%;height:auto;flex-direction:row;justify-content:flex-start;gap:var(--space-3);padding:10px 12px}.icon-rail.is-mobile .rail-label[data-v-3212d9f3]{font-size:var(--text-base)}.icon-rail.is-mobile .rail-item.active[data-v-3212d9f3]:before{height:60%;top:20%}.topbar[data-v-0e876102]{height:var(--topbar-height);background:var(--bg-elevated);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 var(--space-5);flex-shrink:0}.hamburger[data-v-0e876102]{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:6px;margin-right:var(--space-2);margin-left:calc(var(--space-2) * -1);border-radius:var(--radius-sm)}.hamburger[data-v-0e876102]:hover{background:var(--bg-hover);color:var(--text)}.topbar-left[data-v-0e876102]{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-md);font-weight:500}.mode-label[data-v-0e876102]{color:var(--text)}.mode-separator[data-v-0e876102]{color:var(--text-muted);font-weight:400}.mode-subtitle[data-v-0e876102]{color:var(--text-secondary);font-weight:400}.topbar-right[data-v-0e876102]{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-muted)}.status-dot[data-v-0e876102]{width:6px;height:6px;border-radius:50%;background:var(--success)}.points-badge[data-v-0e876102]{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:var(--radius-sm);background:var(--accent-soft);color:var(--accent);font-size:var(--text-xs);font-weight:600;text-decoration:none;transition:all var(--transition);margin-right:var(--space-2)}.points-badge[data-v-0e876102]:hover{background:var(--accent);color:#fff}.points-badge.low[data-v-0e876102]{background:#e53e3e1f;color:var(--danger, #e53e3e)}.points-badge.low[data-v-0e876102]:hover{background:var(--danger, #e53e3e);color:#fff}.points-warn-dot[data-v-0e876102]{width:7px;height:7px;border-radius:50%;background:var(--danger, #e53e3e);box-shadow:0 0 0 2px #e53e3e40;flex-shrink:0;animation:warn-pulse-0e876102 1.6s ease-in-out infinite}@keyframes warn-pulse-0e876102{0%,to{opacity:1}50%{opacity:.4}}.points-icon[data-v-0e876102]{flex-shrink:0}.points-num[data-v-0e876102]{font-variant-numeric:tabular-nums}.status-dot.offline[data-v-0e876102]{background:var(--text-muted)}.user-info[data-v-0e876102]{display:flex;align-items:center;gap:var(--space-2);margin-left:var(--space-3);padding-left:var(--space-3);border-left:1px solid var(--border)}.user-name[data-v-0e876102]{color:var(--text);font-weight:500;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-badge[data-v-0e876102]{font-size:10px;padding:1px 6px;border-radius:var(--radius-sm);background:var(--primary);color:#fff;white-space:nowrap}.logout-btn[data-v-0e876102]{background:none;border:1px solid var(--border);color:var(--text-secondary);font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s}.logout-btn[data-v-0e876102]:hover{border-color:var(--danger, #e53e3e);color:var(--danger, #e53e3e)}.progress-float[data-v-62a41015]{position:fixed;right:20px;bottom:100px;z-index:9999;display:flex;flex-direction:column;align-items:flex-end;font-size:13px}.float-ball[data-v-62a41015]{display:flex;align-items:center;gap:6px;padding:8px 14px;border:none;border-radius:24px;background:var(--accent);color:#fff;cursor:pointer;box-shadow:0 4px 16px #0003;transition:transform .2s,box-shadow .2s}.float-ball[data-v-62a41015]:hover{transform:scale(1.05);box-shadow:0 6px 20px #00000040}.ball-icon[data-v-62a41015]{font-size:16px;line-height:1}.ball-badge[data-v-62a41015]{background:#ffffff40;padding:0 8px;border-radius:10px;font-size:12px;font-weight:700;line-height:20px}.float-panel[data-v-62a41015]{margin-top:8px;width:320px;max-height:380px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 8px 32px #00000026;display:flex;flex-direction:column;overflow:hidden}.panel-header[data-v-62a41015]{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);font-weight:600;font-size:14px}.panel-close[data-v-62a41015]{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:var(--radius-sm)}.panel-close[data-v-62a41015]:hover{background:var(--bg)}.panel-body[data-v-62a41015]{overflow-y:auto;padding:4px 0}.task-group[data-v-62a41015]{padding:6px 14px}.task-group+.task-group[data-v-62a41015]{border-top:1px solid var(--border)}.task-group-label[data-v-62a41015]{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.task-group-meta[data-v-62a41015]{text-transform:none;letter-spacing:0}.clear-failed-btn[data-v-62a41015]{margin-left:8px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:11px;text-decoration:underline;padding:0}.clear-failed-btn[data-v-62a41015]:hover{color:var(--text)}.task-row[data-v-62a41015]{display:flex;align-items:center;gap:6px;padding:4px 0;font-size:13px}.task-icon[data-v-62a41015]{width:16px;text-align:center;flex-shrink:0}.task-icon.uploading[data-v-62a41015]{color:#3b82f6;animation:spin-62a41015 1s linear infinite}.task-icon.parsing[data-v-62a41015]{color:#f59e0b;animation:spin-62a41015 1.2s linear infinite}.task-icon.failed[data-v-62a41015]{color:var(--error)}@keyframes spin-62a41015{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.task-name[data-v-62a41015]{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-error[data-v-62a41015]{font-size:11px;color:var(--error);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 768px){.progress-float[data-v-62a41015]{right:12px;bottom:auto;top:92px}.float-ball[data-v-62a41015]{padding:6px 10px;border-radius:20px;box-shadow:0 2px 8px #00000026}.ball-icon[data-v-62a41015]{font-size:14px}.ball-badge[data-v-62a41015]{padding:0 6px;font-size:11px;line-height:18px}.float-panel[data-v-62a41015]{width:calc(100vw - 24px);max-width:320px;max-height:60vh}}.app-root[data-v-bd31cbd9]{display:flex;height:100vh;overflow:hidden}.app-main[data-v-bd31cbd9]{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.main-content[data-v-bd31cbd9]{flex:1;overflow:auto;background:var(--bg)}.drawer-backdrop[data-v-bd31cbd9]{position:fixed;inset:0;background:#0006;z-index:90}:root{--accent: #2D7D3A;--accent-hover: #235F2E;--accent-soft: #E6F0E8;--accent-border: #B8D5BD;--bg: #F7F8F7;--bg-elevated: #FFFFFF;--bg-hover: #EFF1EF;--bg-active: #E6EAE6;--border: #E0E3E0;--border-strong: #C8CCC8;--text: #1A1F1B;--text-secondary: #5B6360;--text-muted: #8B938F;--text-on-accent: #FFFFFF;--success: #16A34A;--success-soft: #DCFCE7;--success-hover: #15803D;--warning: #D97706;--warning-soft: #FEF3C7;--warning-hover: #B45309;--error: #DC2626;--error-soft: #FEE2E2;--error-hover: #B91C1C;--info: #2563EB;--info-soft: #DBEAFE;--info-hover: #1D4ED8;--font-sans: "IBM Plex Sans", -apple-system, BlinkMacSystemFont, "PingFang SC", "Noto Sans SC", "Hiragino Sans GB", sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Menlo", "Consolas", monospace;--font-serif: "Source Serif Pro", "Source Han Serif SC", "Songti SC", serif;--text-xs: 11px;--text-sm: 12px;--text-base: 13px;--text-md: 14px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 32px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--shadow-sm: 0 1px 2px rgba(26, 31, 27, .04);--shadow-md: 0 2px 8px rgba(26, 31, 27, .06);--transition: .12s cubic-bezier(.4, 0, .2, 1);--rail-width: 60px;--topbar-height: 48px;--content-max: 1200px}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:var(--font-sans);font-size:var(--text-base);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:var(--font-mono)}.muted{color:var(--text-muted)}.secondary{color:var(--text-secondary)}.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;line-height:1.4}.tag-success{background:var(--success-soft);color:var(--success)}.tag-warning{background:var(--warning-soft);color:var(--warning)}.tag-error{background:var(--error-soft);color:var(--error)}.tag-info{background:var(--info-soft);color:var(--info)}.tag-accent{background:var(--accent-soft);color:var(--accent)}
