@import "https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=DM+Mono:wght@400;500&display=swap";.app-header[data-v-b23f492f]{height:var(--header-h);background:var(--bg-raised);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;gap:12px;padding:0 18px;display:flex;position:sticky;top:0}.header-left[data-v-b23f492f]{flex-shrink:0;align-items:center;gap:9px;display:flex}.logo-mark[data-v-b23f492f]{color:var(--accent)}.logo-text[data-v-b23f492f]{color:var(--text-primary);letter-spacing:-.3px;white-space:nowrap;font-size:15px;font-weight:700}.logo-accent[data-v-b23f492f]{color:var(--text-secondary);font-weight:400}.header-nav[data-v-b23f492f]{scrollbar-width:none;gap:2px;display:flex;overflow-x:auto}.header-nav[data-v-b23f492f]::-webkit-scrollbar{display:none}.header-nav a[data-v-b23f492f]{border-radius:var(--radius-sm);color:var(--text-muted);white-space:nowrap;transition:color var(--t-fast), background var(--t-fast);align-items:center;gap:5px;padding:5px 10px;font-size:12.5px;font-weight:500;text-decoration:none;display:flex;position:relative}.header-nav a[data-v-b23f492f]:hover{color:var(--text-primary);background:var(--bg-hover)}.header-nav a.router-link-active[data-v-b23f492f]{color:var(--accent-light);background:var(--accent-ghost)}.header-nav a svg[data-v-b23f492f]{opacity:.7;transition:opacity var(--t-fast);flex-shrink:0}.header-nav a:hover svg[data-v-b23f492f],.header-nav a.router-link-active svg[data-v-b23f492f]{opacity:1}.header-right[data-v-b23f492f]{flex-shrink:0;align-items:center;gap:8px;display:flex}.role-tag[data-v-b23f492f]{border-radius:var(--radius-xs);background:var(--accent-ghost);color:var(--accent-light);letter-spacing:.02em;text-transform:uppercase;padding:2px 7px;font-size:10.5px;font-weight:600}.user-name[data-v-b23f492f]{color:var(--text-primary);font-size:13px;font-weight:500}.switch-btn[data-v-b23f492f]{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-muted);border:1px solid var(--border);transition:color var(--t-fast), border-color var(--t-fast), background var(--t-fast);background:0 0;justify-content:center;align-items:center;display:flex}.switch-btn[data-v-b23f492f]:hover{color:var(--text-secondary);border-color:var(--border-light);background:var(--bg-hover)}.sync-btn[data-v-b23f492f]{border-radius:var(--radius-sm);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;transition:color var(--t-fast), border-color var(--t-fast), background var(--t-fast);background:0 0;align-items:center;gap:4px;padding:3px 8px;font-size:11px;display:flex}.sync-btn[data-v-b23f492f]:hover{color:var(--accent-light);border-color:var(--accent);background:var(--accent-ghost)}.last-sync[data-v-b23f492f]{color:var(--text-muted);white-space:nowrap;cursor:default;font-size:10.5px}.sync-btn[data-v-b23f492f]:disabled{opacity:.5;cursor:not-allowed}.spinning[data-v-b23f492f]{animation:1s linear infinite spin-b23f492f}@keyframes spin-b23f492f{to{transform:rotate(360deg)}}@media (width<=768px){.app-header[data-v-b23f492f]{gap:6px;padding:0 8px}.header-left[data-v-b23f492f]{gap:5px}.logo-text[data-v-b23f492f]{font-size:13px}.logo-accent[data-v-b23f492f]{display:none}.header-nav[data-v-b23f492f]{gap:0}.header-nav a[data-v-b23f492f]{gap:3px;padding:4px 6px;font-size:11px}.header-nav a .nav-text[data-v-b23f492f]{display:none}.header-right[data-v-b23f492f]{gap:4px}.role-tag[data-v-b23f492f],.user-name[data-v-b23f492f],.sync-btn span[data-v-b23f492f]{display:none}.sync-btn[data-v-b23f492f]{padding:3px 5px}}.chat-fab[data-v-7b07c385]{background:var(--accent);color:#fff;z-index:200;width:46px;height:46px;transition:transform var(--t-base), box-shadow var(--t-base);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:22px;right:22px;box-shadow:0 4px 18px #5b8def59}.chat-fab[data-v-7b07c385]:hover{transform:scale(1.06);box-shadow:0 6px 26px #5b8def80}.chat-drawer[data-v-7b07c385]{background:var(--bg-card);border:1px solid var(--border-light);border-radius:var(--radius-xl);width:480px;max-height:78vh;box-shadow:var(--shadow-lg);z-index:199;flex-direction:column;display:flex;position:fixed;bottom:80px;right:22px;overflow:hidden}.drawer-header[data-v-7b07c385]{border-bottom:1px solid var(--border);padding:14px 16px;position:relative}.drawer-header h3[data-v-7b07c385]{color:var(--text-primary);margin-bottom:1px;font-size:14px;font-weight:600}.drawer-sub[data-v-7b07c385]{color:var(--text-muted);font-size:11px}.drawer-close[data-v-7b07c385]{width:28px;height:28px;color:var(--text-muted);border-radius:var(--radius-sm);transition:color var(--t-fast), background var(--t-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:12px;right:12px}.drawer-close[data-v-7b07c385]:hover{color:var(--text-primary);background:var(--bg-hover)}.drawer-messages[data-v-7b07c385]{flex-direction:column;flex:1;gap:10px;min-height:260px;max-height:52vh;padding:14px;display:flex;overflow-y:auto}.welcome[data-v-7b07c385]{color:var(--text-muted);text-align:center;flex-direction:column;align-items:center;padding:24px 16px;font-size:13px;line-height:1.8;display:flex}.welcome-icon[data-v-7b07c385]{opacity:.3;margin-bottom:8px}.welcome ul[data-v-7b07c385]{margin-top:6px;padding:0;list-style:none}.welcome li[data-v-7b07c385]:before{content:"— ";color:var(--text-muted)}.msg[data-v-7b07c385]{max-width:85%}.msg.user[data-v-7b07c385]{align-self:flex-end}.msg.assistant[data-v-7b07c385]{align-self:flex-start}.msg-content[data-v-7b07c385]{border-radius:var(--radius);white-space:pre-wrap;padding:9px 13px;font-size:13px;line-height:1.6}.msg.user .msg-content[data-v-7b07c385]{background:var(--accent);color:#fff;border-bottom-right-radius:var(--radius-xs)}.msg.assistant .msg-content[data-v-7b07c385]{background:var(--bg-input);color:var(--text-primary);border-bottom-left-radius:var(--radius-xs)}.cursor[data-v-7b07c385]{color:var(--accent-light);font-weight:700;animation:1s infinite blink-7b07c385}@keyframes blink-7b07c385{50%{opacity:0}}.drawer-input[data-v-7b07c385]{border-top:1px solid var(--border);gap:8px;padding:10px 12px;display:flex}.drawer-input input[data-v-7b07c385]{flex:1}.drawer-input button[data-v-7b07c385]{background:var(--accent);color:#fff;border-radius:var(--radius);width:36px;height:36px;transition:background var(--t-fast), opacity var(--t-fast);justify-content:center;align-items:center;padding:0;display:flex}.drawer-input button[data-v-7b07c385]:hover{background:var(--accent-light)}.drawer-input button[data-v-7b07c385]:disabled{opacity:.35}.drawer-enter-active[data-v-7b07c385]{transition:all .22s}.drawer-leave-active[data-v-7b07c385]{transition:all .16s}.drawer-enter-from[data-v-7b07c385],.drawer-leave-to[data-v-7b07c385]{opacity:0;transform:translateY(8px)scale(.97)}.project-select[data-v-7b07c385]{background:var(--bg-input);width:100%;color:var(--text-primary);border:1px solid var(--border);border-radius:var(--radius-sm);margin-top:4px;margin-bottom:2px;padding:4px 8px;font-size:12px}@media (width<=768px){.chat-fab[data-v-7b07c385]{width:40px;height:40px;bottom:12px;right:12px}.chat-drawer[data-v-7b07c385]{width:calc(100vw - 16px);max-height:70vh;bottom:60px;right:8px}.drawer-messages[data-v-7b07c385]{min-height:180px;max-height:45vh;padding:10px}.msg-content[data-v-7b07c385]{padding:7px 10px;font-size:12px}}:root{--bg-root:#090d16;--bg-raised:#0d1220;--bg-card:#111827;--bg-hover:#182233;--bg-input:#0a0f1a;--bg-tooltip:#1a2338;--border:#18253a;--border-light:#1f3050;--border-accent:#2a4570;--text-primary:#f0f4fb;--text-secondary:#b0c4dc;--text-muted:#8a9bb8;--text-inverse:#0a0f1a;--accent:#5e9eff;--accent-light:#8ab8ff;--accent-glow:#5e9eff2e;--accent-ghost:#5e9eff14;--profit:#3dd68c;--profit-bg:#3dd68c1a;--loss:#ff5c5c;--loss-bg:#ff5c5c1a;--warn:#e0a040;--warn-bg:#e0a0401a;--info:#6dbfff;--info-bg:#6dbfff1a;--success:var(--profit);--success-bg:var(--profit-bg);--warning:var(--warn);--warning-bg:var(--warn-bg);--radius-xs:3px;--radius-sm:4px;--radius:6px;--radius-lg:8px;--radius-xl:12px;--shadow-sm:0 1px 2px #0006;--shadow:0 2px 8px #00000080;--shadow-lg:0 6px 24px #0009;--shadow-glow:0 0 20px var(--accent-glow);--font-display:"DM Sans", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--font-mono:"DM Mono", "Consolas", "Courier New", monospace;--t-fast:.12s ease;--t-base:.18s ease;--t-slow:.28s ease;--t-glacial:.45s ease;--header-h:44px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px;line-height:1.5}body{font-family:var(--font-display);background:var(--bg-root);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}input,select,textarea,button{font-family:inherit;font-size:inherit}button{cursor:pointer;border-radius:var(--radius-sm);transition:background var(--t-fast), color var(--t-fast), border-color var(--t-fast), opacity var(--t-fast);border:none;font-weight:500}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select,textarea{background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);border-radius:var(--radius-sm);transition:border-color var(--t-fast), box-shadow var(--t-fast);padding:7px 11px;font-size:13px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}input::placeholder{color:var(--text-muted)}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23556580' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px}select:focus{background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237aa4f4' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E")}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);transition:border-color var(--t-base), background var(--t-base);padding:20px}.card:hover{border-color:var(--border-light)}.badge{border-radius:var(--radius-xs);letter-spacing:.02em;text-transform:uppercase;align-items:center;gap:3px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-profit{background:var(--profit-bg);color:var(--profit)}.badge-loss{background:var(--loss-bg);color:var(--loss)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-info{background:var(--info-bg);color:var(--info)}.empty-state{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:64px 24px;display:flex}.empty-state svg{opacity:.35;margin-bottom:4px}.empty-state p{max-width:280px;font-size:13px;line-height:1.6}.loading-shimmer{background:linear-gradient(90deg, var(--bg-card) 25%, var(--bg-hover) 50%, var(--bg-card) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes grow-right{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes pulse-glow{0%{box-shadow:0 0 0 0 var(--accent-glow)}50%{box-shadow:0 0 16px 4px var(--accent-glow)}to{box-shadow:0 0 0 0 var(--accent-glow)}}.entrance-1{animation:.35s 50ms both fade-up}.entrance-2{animation:.35s .1s both fade-up}.entrance-3{animation:.35s .15s both fade-up}.entrance-4{animation:.35s .2s both fade-up}.entrance-5{animation:.35s .25s both fade-up}.entrance-6{animation:.35s .3s both fade-up}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}table{border-collapse:collapse;width:100%;font-size:13px}thead th{text-align:left;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 12px;font-size:11px;font-weight:600}tbody td{color:var(--text-secondary);white-space:nowrap;border-bottom:1px solid #18253a99;padding:8px 12px}tbody tr{transition:background var(--t-fast)}tbody tr:hover{background:#ffffff04}tbody td:first-child{color:var(--text-primary);font-weight:500}a{color:var(--accent-light);transition:color var(--t-fast);text-decoration:none}a:hover{color:var(--accent)}@media (width<=768px){:root{--header-h:40px}.card{border-radius:var(--radius);padding:12px}table{font-size:11px}thead th{padding:5px 6px;font-size:10px}tbody td{padding:5px 6px;font-size:11px}input,select,textarea{padding:6px 8px;font-size:14px}.empty-state{padding:32px 12px}.empty-state p{max-width:240px;font-size:12px}}.app-main{min-height:calc(100vh - var(--header-h));padding:22px 24px}@media (width<=768px){.app-main{padding:10px 8px}}.splash{height:100vh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
