.dashboard[data-v-19be3949]{padding:24px;max-width:1200px}.page-header[data-v-19be3949]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h1[data-v-19be3949]{font-size:28px;font-weight:600;color:#1e293b}.refresh-btn[data-v-19be3949]{padding:8px 16px;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px}.refresh-btn[data-v-19be3949]:hover:not(:disabled){background:#2563eb}.refresh-btn[data-v-19be3949]:disabled{background:#94a3b8;cursor:not-allowed}.error-banner[data-v-19be3949]{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:8px;margin-bottom:16px}.stats-grid[data-v-19be3949]{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:24px}.stat-card[data-v-19be3949]{background:white;border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 1px 3px #0000001a}.stat-icon[data-v-19be3949]{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#fff}.stat-icon.holdings[data-v-19be3949]{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.stat-icon.cost[data-v-19be3949]{background:linear-gradient(135deg,#8b5cf6,#6d28d9)}.stat-icon.value[data-v-19be3949]{background:linear-gradient(135deg,#06b6d4,#0891b2)}.stat-icon.profit[data-v-19be3949]{background:linear-gradient(135deg,#10b981,#059669)}.stat-icon.loss[data-v-19be3949]{background:linear-gradient(135deg,#ef4444,#dc2626)}.stat-content[data-v-19be3949]{flex:1}.stat-label[data-v-19be3949]{font-size:14px;color:#64748b;margin-bottom:4px}.stat-value[data-v-19be3949]{font-size:24px;font-weight:600;color:#1e293b}.stat-value.profit[data-v-19be3949]{color:#059669}.stat-value.loss[data-v-19be3949]{color:#dc2626}.stat-rate[data-v-19be3949]{font-size:14px;font-weight:400}.section[data-v-19be3949]{background:white;border-radius:12px;padding:20px;margin-bottom:16px;box-shadow:0 1px 3px #0000001a}.section-header[data-v-19be3949]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-header h2[data-v-19be3949]{font-size:18px;font-weight:600;color:#1e293b}.link[data-v-19be3949]{color:#3b82f6;text-decoration:none;font-size:14px}.link[data-v-19be3949]:hover{text-decoration:underline}.signal-count[data-v-19be3949]{display:flex;align-items:baseline;gap:8px}.signal-count .count[data-v-19be3949]{font-size:36px;font-weight:700;color:#1e293b}.signal-count .label[data-v-19be3949]{font-size:16px;color:#64748b}.quick-actions[data-v-19be3949]{display:flex;gap:12px}.action-btn[data-v-19be3949]{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#f1f5f9;border-radius:8px;text-decoration:none;color:#1e293b;font-weight:500;transition:all .2s}.action-btn[data-v-19be3949]:hover{background:#e2e8f0}.action-btn .icon[data-v-19be3949]{font-size:20px}.last-update[data-v-19be3949]{text-align:center;font-size:12px;color:#94a3b8;margin-top:16px}.holdings-table[data-v-19be3949]{width:100%;border-collapse:collapse}.holdings-table th[data-v-19be3949],.holdings-table td[data-v-19be3949]{padding:12px;text-align:left;border-bottom:1px solid #e5e7eb}.holdings-table th[data-v-19be3949]{background:#f8fafc;font-weight:600;color:#475569;font-size:13px}.holdings-table td[data-v-19be3949]{color:#1e293b}.code-cell[data-v-19be3949]{font-family:monospace;font-weight:600}.number-cell[data-v-19be3949]{text-align:right;font-family:monospace}.number-cell.profit[data-v-19be3949]{color:#059669}.number-cell.loss[data-v-19be3949]{color:#dc2626}.change-badge[data-v-19be3949]{display:inline-block;font-size:12px;padding:2px 6px;border-radius:4px;margin-left:4px;background:#f1f5f9}.number-cell.profit .change-badge[data-v-19be3949]{background:#dcfce7;color:#059669}.number-cell.loss .change-badge[data-v-19be3949]{background:#fee2e2;color:#dc2626}.link-cell[data-v-19be3949]{cursor:pointer;color:#3b82f6}.link-cell[data-v-19be3949]:hover{text-decoration:underline}.btn-kline[data-v-19be3949]{padding:4px 10px;background:#3b82f6;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:12px}.btn-kline[data-v-19be3949]:hover{background:#2563eb}.kline-modal[data-v-19be3949]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.kline-modal-content[data-v-19be3949]{background:white;border-radius:12px;width:90%;max-width:800px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.kline-modal-header[data-v-19be3949]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e5e7eb}.kline-modal-header h3[data-v-19be3949]{margin:0;font-size:18px;color:#1e293b}.btn-close[data-v-19be3949]{padding:6px 12px;background:#e2e8f0;color:#475569;border:none;border-radius:6px;cursor:pointer;font-size:14px}.btn-close[data-v-19be3949]:hover{background:#cbd5e1}.kline-modal-body[data-v-19be3949]{padding:20px;overflow-y:auto}.loading-state[data-v-19be3949]{text-align:center;padding:40px;color:#64748b}.kline-chart-container[data-v-19be3949]{width:100%;height:450px}.kline-chart[data-v-19be3949]{width:100%;height:100%}.page[data-v-ce3e6f10]{padding:24px}.page-header[data-v-ce3e6f10]{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-header h1[data-v-ce3e6f10]{font-size:24px;font-weight:600;color:#1e293b}.header-actions[data-v-ce3e6f10]{display:flex;gap:8px}.btn[data-v-ce3e6f10]{padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500}.btn[data-v-ce3e6f10]:disabled{opacity:.6;cursor:not-allowed}.btn-primary[data-v-ce3e6f10]{background:#3b82f6;color:#fff}.btn-primary[data-v-ce3e6f10]:hover:not(:disabled){background:#2563eb}.btn-secondary[data-v-ce3e6f10]{background:#e2e8f0;color:#475569}.btn-secondary[data-v-ce3e6f10]:hover:not(:disabled){background:#cbd5e1}.btn-success[data-v-ce3e6f10]{background:#10b981;color:#fff}.btn-success[data-v-ce3e6f10]:hover:not(:disabled){background:#059669}.btn-danger[data-v-ce3e6f10]{background:#ef4444;color:#fff}.btn-danger[data-v-ce3e6f10]:hover:not(:disabled){background:#dc2626}.btn-sm[data-v-ce3e6f10]{padding:4px 12px;font-size:12px}.error-banner[data-v-ce3e6f10]{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:8px;margin-bottom:16px}.add-form-card[data-v-ce3e6f10]{background:white;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}.add-form-card h3[data-v-ce3e6f10]{margin:0 0 16px;font-size:16px;color:#1e293b}.form-row[data-v-ce3e6f10]{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.input-group[data-v-ce3e6f10]{display:flex;flex-direction:column;gap:6px}.input-group label[data-v-ce3e6f10]{font-size:12px;font-weight:500;color:#64748b}.form-row input[data-v-ce3e6f10]{padding:10px 14px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.form-row input[data-v-ce3e6f10]:focus{outline:none;border-color:#3b82f6}.query-btn[data-v-ce3e6f10]{padding:8px 16px;background:#6366f1;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;white-space:nowrap;transition:all .2s}.query-btn[data-v-ce3e6f10]:hover:not(:disabled){background:#4f46e5}.query-btn[data-v-ce3e6f10]:disabled{opacity:.6;cursor:not-allowed}.input-code[data-v-ce3e6f10]{width:220px;font-family:monospace}.input-name[data-v-ce3e6f10]{width:200px}.input-quantity[data-v-ce3e6f10],.input-cost[data-v-ce3e6f10]{width:120px}.form-hints[data-v-ce3e6f10]{margin-top:16px;padding:12px 16px;background:#f8fafc;border-radius:6px;border:1px solid #e2e8f0}.hint-item[data-v-ce3e6f10]{display:block;font-size:13px;color:#64748b;margin-bottom:6px}.hint-item[data-v-ce3e6f10]:last-child{margin-bottom:0}.holdings-section[data-v-ce3e6f10]{background:white;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}.holdings-section .section-header[data-v-ce3e6f10]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.holdings-section h3[data-v-ce3e6f10]{margin:0;font-size:16px;color:#1e293b}.pagination[data-v-ce3e6f10]{display:flex;align-items:center;gap:8px}.pagination .btn-sm[data-v-ce3e6f10]{padding:6px 12px;font-size:12px}.pagination .page-info[data-v-ce3e6f10]{padding:6px 12px;font-size:14px;color:#64748b}.holdings-table[data-v-ce3e6f10]{width:100%;border-collapse:collapse}.holdings-table th[data-v-ce3e6f10],.holdings-table td[data-v-ce3e6f10]{padding:12px;text-align:left;border-bottom:1px solid #e5e7eb}.holdings-table th[data-v-ce3e6f10]{background:#f8fafc;font-weight:600;color:#475569;font-size:13px}.holdings-table td[data-v-ce3e6f10]{color:#1e293b}.code-cell[data-v-ce3e6f10]{font-family:monospace;font-weight:600}.number-cell[data-v-ce3e6f10]{text-align:right;font-family:monospace}.status-holding[data-v-ce3e6f10]{color:#059669;font-weight:600}.status-sold[data-v-ce3e6f10]{color:#dc2626;font-weight:600}.empty-state[data-v-ce3e6f10]{text-align:center;padding:40px;color:#94a3b8}.empty-state p[data-v-ce3e6f10]{margin:0}.empty-state .hint[data-v-ce3e6f10]{font-size:14px;margin-top:8px}.portfolio-section[data-v-ce3e6f10]{background:white;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a}.portfolio-section h3[data-v-ce3e6f10]{margin:0 0 16px;font-size:16px;color:#1e293b}.portfolio-stats[data-v-ce3e6f10]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.stat-item[data-v-ce3e6f10]{display:flex;flex-direction:column;gap:4px}.stat-item .label[data-v-ce3e6f10]{font-size:13px;color:#64748b}.stat-item .value[data-v-ce3e6f10]{font-size:20px;font-weight:600;color:#1e293b}.stat-item .value.profit[data-v-ce3e6f10]{color:#059669}.stat-item .value.loss[data-v-ce3e6f10]{color:#dc2626}.btn-info[data-v-ce3e6f10]{background:#8b5cf6;color:#fff}.btn-info[data-v-ce3e6f10]:hover:not(:disabled){background:#7c3aed}.btn-warning[data-v-ce3e6f10]{background:#f59e0b;color:#fff}.btn-warning[data-v-ce3e6f10]:hover:not(:disabled){background:#d97706}.sell-form-card[data-v-ce3e6f10]{background:#fef3c7;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}.sell-form-card h3[data-v-ce3e6f10]{margin:0 0 16px;font-size:16px;color:#92400e}.transactions-section[data-v-ce3e6f10]{background:white;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 1px 3px #0000001a}.section-header[data-v-ce3e6f10]{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.section-header h3[data-v-ce3e6f10]{margin:0;font-size:16px;color:#1e293b}.section-header .header-right[data-v-ce3e6f10]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pnl-badge[data-v-ce3e6f10]{padding:6px 12px;border-radius:20px;font-size:14px;font-weight:600}.pnl-badge.profit[data-v-ce3e6f10]{background:#dcfce7;color:#16a34a}.pnl-badge.loss[data-v-ce3e6f10]{background:#fee2e2;color:#dc2626}.type-buy[data-v-ce3e6f10]{color:#059669;font-weight:600}.type-sell[data-v-ce3e6f10]{color:#dc2626;font-weight:600}.link-cell[data-v-ce3e6f10]{cursor:pointer;color:#3b82f6}.link-cell[data-v-ce3e6f10]:hover{text-decoration:underline}.kline-modal[data-v-ce3e6f10]{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:1000}.kline-modal-content[data-v-ce3e6f10]{background:white;border-radius:12px;width:90%;max-width:800px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.kline-modal-header[data-v-ce3e6f10]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e5e7eb}.kline-modal-header h3[data-v-ce3e6f10]{margin:0;font-size:18px;color:#1e293b}.kline-modal-body[data-v-ce3e6f10]{padding:20px;overflow-y:auto}.loading-state[data-v-ce3e6f10]{text-align:center;padding:40px;color:#64748b}.kline-chart-container[data-v-ce3e6f10]{width:100%;height:450px}.kline-chart[data-v-ce3e6f10]{width:100%;height:100%}.marketwatch[data-v-1d3ab0d9]{padding:16px}.wb-table[data-v-1d3ab0d9]{width:100%;border-collapse:collapse}.wb-table th[data-v-1d3ab0d9],.wb-table td[data-v-1d3ab0d9]{border:1px solid #e5e7eb;padding:8px}.settings[data-v-a9727d01]{padding:24px;max-width:1200px}.page-header[data-v-a9727d01]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.page-header h1[data-v-a9727d01]{font-size:28px;font-weight:600;color:#1e293b}.user-info[data-v-a9727d01]{background:#f1f5f9;padding:8px 16px;border-radius:6px;font-size:14px;color:#64748b}.error-banner[data-v-a9727d01]{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 16px;border-radius:8px;margin-bottom:16px}.success-banner[data-v-a9727d01]{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-weight:500}.config-grid[data-v-a9727d01]{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.config-item[data-v-a9727d01]{background:#fff;padding:16px;border-radius:8px;border:1px solid #e2e8f0;box-shadow:0 1px 3px #0000001a}.config-item label[data-v-a9727d01]{display:block;font-weight:600;margin-bottom:8px;color:#374151}.config-item textarea[data-v-a9727d01]{width:100%;padding:8px;border:1px solid #d1d5db;border-radius:6px;resize:vertical;font-family:monospace}.config-item input[data-v-a9727d01]{width:100%;padding:8px;border:1px solid #d1d5db;border-radius:6px}.action-bar[data-v-a9727d01]{display:flex;gap:12px;justify-content:flex-end}.btn[data-v-a9727d01]{padding:10px 20px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.btn-primary[data-v-a9727d01]{background:#3b82f6;color:#fff}.btn-primary[data-v-a9727d01]:hover:not(:disabled){background:#2563eb}.btn-secondary[data-v-a9727d01]{background:#64748b;color:#fff}.btn-secondary[data-v-a9727d01]:hover:not(:disabled){background:#475569}.btn[data-v-a9727d01]:disabled{opacity:.6;cursor:not-allowed}.toast-overlay[data-v-a9727d01]{position:fixed;top:80px;right:24px;z-index:9999;animation:slideIn-a9727d01 .3s ease-out}.toast[data-v-a9727d01]{padding:16px 24px;border-radius:8px;font-size:15px;font-weight:500;box-shadow:0 4px 12px #00000026;min-width:200px}.toast.success[data-v-a9727d01]{background:#10b981;color:#fff}.toast.error[data-v-a9727d01]{background:#ef4444;color:#fff}@keyframes slideIn-a9727d01{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.login-page[data-v-f9f5a115]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%)}.login-card[data-v-f9f5a115]{background:white;padding:40px;border-radius:12px;box-shadow:0 10px 40px #0003;width:100%;max-width:400px}.login-card h1[data-v-f9f5a115]{text-align:center;margin-bottom:30px;color:#1f2937}.form-group[data-v-f9f5a115]{margin-bottom:20px}.form-group label[data-v-f9f5a115]{display:block;margin-bottom:8px;color:#374151;font-weight:500}.form-group input[data-v-f9f5a115]{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:6px;font-size:16px;box-sizing:border-box}.form-group input[data-v-f9f5a115]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.error-msg[data-v-f9f5a115]{color:#dc2626;margin-bottom:16px;text-align:center}button[data-v-f9f5a115]{width:100%;padding:12px;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:500;cursor:pointer}button[data-v-f9f5a115]:hover:not(:disabled){background:#2563eb}button[data-v-f9f5a115]:disabled{background:#9ca3af;cursor:not-allowed}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,system-ui,Arial,sans-serif}.app-layout[data-v-85312cfa]{display:flex;min-height:100vh}.sidebar[data-v-85312cfa]{width:240px;background:linear-gradient(180deg,#1e293b 0%,#0f172a 100%);color:#fff;padding:20px;display:flex;flex-direction:column}.sidebar .logo[data-v-85312cfa]{margin:0 0 24px;font-size:20px;font-weight:600;color:#f1f5f9;padding-bottom:16px;border-bottom:1px solid #334155}.sidebar nav[data-v-85312cfa]{display:flex;flex-direction:column;gap:4px;flex:1}.sidebar a[data-v-85312cfa]{color:#94a3b8;text-decoration:none;padding:12px 16px;border-radius:8px;transition:all .2s}.sidebar a[data-v-85312cfa]:hover{background:#1e293b;color:#f1f5f9}.sidebar a.router-link-active[data-v-85312cfa]{background:#3b82f6;color:#fff}.user-section[data-v-85312cfa]{margin-top:auto;padding-top:16px;border-top:1px solid #334155}.user-info[data-v-85312cfa]{display:block;font-size:14px;color:#94a3b8;margin-bottom:8px}.logout-btn[data-v-85312cfa]{width:100%;padding:8px 16px;background:transparent;border:1px solid #475569;color:#94a3b8;border-radius:6px;cursor:pointer;transition:all .2s}.logout-btn[data-v-85312cfa]:hover{background:#475569;color:#fff}.content[data-v-85312cfa]{flex:1;background:#f1f5f9;overflow-y:auto}:root{--bg: #f5f7fa;--card: #ffffff}*{box-sizing:border-box}html,body,#app{height:100%}body{margin:0;background:var(--bg)}.app-layout{display:flex;height:100%}.sidebar{width:260px;background:#1f2937;color:#fff;padding:16px}.content{flex:1;padding:16px}
