@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";.app[data-v-1d07bf18]{min-height:100vh;display:flex;flex-direction:column}.app-header[data-v-1d07bf18]{background:var(--card-bg);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;transition:background .2s,border-color .2s}.header-inner[data-v-1d07bf18]{max-width:1400px;margin:0 auto;padding:0 20px;height:56px;display:flex;align-items:center;gap:6px}.logo[data-v-1d07bf18]{font-size:18px;font-weight:700;color:var(--text);text-decoration:none;white-space:nowrap;margin-right:12px}.logo[data-v-1d07bf18]:hover{color:var(--primary)}.nav-links[data-v-1d07bf18]{display:flex;gap:2px;align-items:center;flex:1}.nav-link[data-v-1d07bf18]{font-size:15px;font-weight:500;color:var(--text-secondary);text-decoration:none;padding:7px 13px;border-radius:var(--radius-xs);transition:all .15s}.nav-link[data-v-1d07bf18]:hover{color:var(--text);background:var(--card-bg-hover)}.nav-active[data-v-1d07bf18]{color:var(--primary);background:#2b5fff1a;font-weight:600}.nav-type[data-v-1d07bf18]{padding:7px 11px}.theme-toggle[data-v-1d07bf18]{font-size:20px;padding:4px 8px;border-radius:var(--radius-xs);transition:background .15s;margin-left:auto}.theme-toggle[data-v-1d07bf18]:hover{background:var(--card-bg-hover)}.app-main[data-v-1d07bf18]{flex:1;max-width:1400px;width:100%;margin:0 auto;padding:16px 20px}@media(max-width:768px){.header-inner[data-v-1d07bf18]{flex-wrap:wrap;height:auto;padding:6px 10px;gap:4px}.logo[data-v-1d07bf18]{font-size:16px;margin-right:0}.theme-toggle[data-v-1d07bf18]{font-size:18px;padding:4px 6px;margin-left:auto}.nav-links[data-v-1d07bf18]{flex:0 0 100%!important;order:2;flex-wrap:wrap;gap:2px;justify-content:flex-start}.nav-link[data-v-1d07bf18],.nav-type[data-v-1d07bf18]{padding:6px 10px;font-size:14px;white-space:nowrap}.app-main[data-v-1d07bf18]{padding:10px}}.signal-list[data-v-1d06d53d]{display:flex;flex-direction:column;gap:14px}.filter-bar[data-v-1d06d53d]{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.filter-group[data-v-1d06d53d]{display:flex;align-items:center;background:var(--card-bg);border-radius:var(--radius-sm);border:1px solid var(--border);overflow:hidden}.seg-btn[data-v-1d06d53d]{padding:7px 16px;font-size:13px;font-weight:500;color:var(--text-secondary);border-right:1px solid var(--border);transition:all .12s}.seg-btn[data-v-1d06d53d]:last-child{border-right:none}.seg-btn[data-v-1d06d53d]:hover{color:var(--text);background:var(--card-bg-hover)}.seg-btn.active[data-v-1d06d53d]{color:#fff;background:var(--primary)}.filter-tag[data-v-1d06d53d]{font-size:13px;color:var(--primary);padding:5px 12px;background:#2b5fff1a;border-radius:var(--radius-sm);font-weight:500}.clear-btn[data-v-1d06d53d]{font-size:13px;color:var(--text-tertiary);padding:5px 10px}.table-card[data-v-1d06d53d]{padding:0;overflow:hidden}.data-table[data-v-1d06d53d]{width:100%;border-collapse:collapse}.data-table th[data-v-1d06d53d]{background:var(--table-header);padding:12px 14px;text-align:left;font-size:13px;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap}.sortable[data-v-1d06d53d]{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable[data-v-1d06d53d]:hover{color:var(--text)}.sort-arrow[data-v-1d06d53d]{display:inline-block;width:0;height:0;margin-left:3px;vertical-align:middle;opacity:.3}.sortable:hover .sort-arrow[data-v-1d06d53d]{opacity:.6}.arrow-asc[data-v-1d06d53d]{opacity:1!important;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:5px solid var(--primary)}.arrow-desc[data-v-1d06d53d]{opacity:1!important;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--primary)}.data-table td[data-v-1d06d53d]{padding:11px 14px;border-bottom:1px solid var(--border);font-size:14px}.data-row[data-v-1d06d53d]{cursor:pointer;transition:background .1s}.data-row[data-v-1d06d53d]:hover{background:var(--card-bg-hover)}.ta-r[data-v-1d06d53d]{text-align:right}.type-tag[data-v-1d06d53d]{display:inline-block;padding:2px 10px;border-radius:var(--radius-xs);font-size:13px;font-weight:500;background:var(--bg-alt);color:var(--text-secondary)}.type-equity[data-v-1d06d53d]{background:var(--tag-equity-bg);color:var(--tag-equity-fg)}.type-hk_equity[data-v-1d06d53d]{background:var(--tag-hk-bg);color:var(--tag-hk-fg)}.type-kr_equity[data-v-1d06d53d]{background:var(--tag-kr-bg);color:var(--tag-kr-fg)}.type-commodity[data-v-1d06d53d]{background:var(--tag-commodity-bg);color:var(--tag-commodity-fg)}.type-premarket[data-v-1d06d53d]{background:var(--tag-premarket-bg);color:var(--tag-premarket-fg)}.type-etf[data-v-1d06d53d]{background:var(--tag-etf-bg);color:var(--tag-etf-fg)}.type-crypto[data-v-1d06d53d]{background:var(--tag-crypto-bg);color:var(--tag-crypto-fg)}.badge[data-v-1d06d53d]{display:inline-block;padding:3px 10px;border-radius:var(--radius-xs);font-size:13px;font-weight:600}.badge-buy[data-v-1d06d53d]{background:#0ecb811f;color:var(--up)}.badge-sell[data-v-1d06d53d]{background:#f6465d1f;color:var(--down)}.loading-state[data-v-1d06d53d],.empty-state[data-v-1d06d53d]{padding:56px;text-align:center;color:var(--text-secondary);font-size:15px}.footer-hint[data-v-1d06d53d]{font-size:13px;color:var(--text-tertiary);padding:0 4px 16px}@media(max-width:768px){.col-type[data-v-1d06d53d],.col-price[data-v-1d06d53d]{display:none}.col-name[data-v-1d06d53d]{max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table th[data-v-1d06d53d],.data-table td[data-v-1d06d53d]{padding:8px 6px;font-size:13px}}.kline-wrapper[data-v-eba03d16]{background:var(--card-bg);border-radius:var(--radius);padding:10px 8px;transition:background .2s}.kline-toolbar[data-v-eba03d16]{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:0 6px 8px}.period-btn[data-v-eba03d16]{padding:5px 14px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);border-radius:var(--radius-xs);font-size:14px;font-weight:500;transition:all .12s}.period-btn[data-v-eba03d16]:hover{color:var(--text);border-color:var(--border-light)}.period-btn.active[data-v-eba03d16]{background:var(--primary);color:#fff;border-color:var(--primary)}.badge[data-v-eba03d16]{margin-left:6px;padding:4px 12px;border-radius:var(--radius-xs);font-size:14px;font-weight:600}.badge[data-v-eba03d16]:first-of-type{margin-left:auto}.badge-bear[data-v-eba03d16]{background:#f6465d1f;color:var(--down)}.badge-bull[data-v-eba03d16]{background:#0ecb811f;color:var(--up)}.vtx-bear[data-v-eba03d16]{background:#f6465d1f;color:var(--down)}.vtx-bull[data-v-eba03d16]{background:#0ecb811f;color:var(--up)}.chart-container[data-v-eba03d16]{width:100%;height:600px}@media(max-width:768px){.chart-container[data-v-eba03d16]{height:400px}.kline-wrapper[data-v-eba03d16]{padding:6px 4px}}.ai-analysis-card[data-v-f311f37b]{background:linear-gradient(135deg,#f8f9ff,#f0f4ff);border:1px solid #d6e0ff;border-radius:12px;padding:18px 20px}.ai-header[data-v-f311f37b]{display:flex;align-items:center;gap:8px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #e0e8ff}.ai-icon[data-v-f311f37b]{font-size:20px}.ai-title[data-v-f311f37b]{font-size:16px;font-weight:700;color:#1a237e}.ai-date[data-v-f311f37b]{margin-left:auto;font-size:13px;color:#5c6bc0}.trend-row[data-v-f311f37b]{display:flex;align-items:center;gap:10px;margin-bottom:16px}.trend-label[data-v-f311f37b]{font-size:13px;color:#5c6bc0;white-space:nowrap}.trend-text[data-v-f311f37b]{font-size:15px;font-weight:600;color:#1a237e}.prob-section[data-v-f311f37b]{margin-bottom:20px}.prob-bar-wrapper[data-v-f311f37b]{display:flex;height:32px;border-radius:6px;overflow:hidden;box-shadow:inset 0 1px 2px #0000000f}.prob-bar-up[data-v-f311f37b]{background:#1976d2;display:flex;align-items:center;justify-content:center;transition:width .5s;min-width:50px}.prob-bar-down[data-v-f311f37b]{background:#d32f2f;display:flex;align-items:center;justify-content:center;transition:width .5s;min-width:40px}.prob-text[data-v-f311f37b]{color:#fff;font-size:13px;font-weight:600;white-space:nowrap}.prob-labels[data-v-f311f37b]{display:flex;justify-content:space-between;margin-top:4px}.lbl-up[data-v-f311f37b]{font-size:13px;color:#1976d2}.lbl-down[data-v-f311f37b]{font-size:13px;color:#d32f2f}.scenario-block[data-v-f311f37b]{margin-bottom:16px}.scenario-title[data-v-f311f37b]{font-size:13px;font-weight:600;margin-bottom:8px}.scenario-block.up .scenario-title[data-v-f311f37b]{color:#1565c0}.scenario-block.down .scenario-title[data-v-f311f37b]{color:#c62828}.price-level[data-v-f311f37b]{display:flex;align-items:center;gap:10px;padding:4px 0}.lv-label[data-v-f311f37b]{font-size:13px;color:#555;width:60px}.lv-price[data-v-f311f37b]{font-size:13px;font-weight:600;width:70px;color:#333}.lv-bar-wrapper[data-v-f311f37b]{flex:1;height:12px;background:#e8eaf6;border-radius:6px;overflow:hidden}.lv-bar[data-v-f311f37b]{height:100%;border-radius:6px;transition:width .5s}.lv-bar.up[data-v-f311f37b]{background:linear-gradient(90deg,#42a5f5,#1976d2)}.lv-bar.down[data-v-f311f37b]{background:linear-gradient(90deg,#ef5350,#c62828)}.lv-prob[data-v-f311f37b]{font-size:13px;font-weight:600;color:#333;width:40px}.analysis-text[data-v-f311f37b]{margin-top:14px;padding:12px;background:#fff9;border-radius:8px;font-size:13px;line-height:1.7;color:#37474f}.text-icon[data-v-f311f37b]{margin-right:4px}.detail-page[data-v-206b4b33]{display:flex;flex-direction:column;gap:14px}.back-btn[data-v-206b4b33]{align-self:flex-start;padding:6px 16px;background:var(--card-bg);color:var(--text-secondary);border:1px solid var(--border);border-radius:var(--radius-xs);font-size:14px;font-weight:500;transition:all .12s}.back-btn[data-v-206b4b33]:hover{border-color:var(--border-light);color:var(--text)}.header-card[data-v-206b4b33]{padding:18px 22px}.title-row[data-v-206b4b33]{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.symbol[data-v-206b4b33]{font-size:24px}.name[data-v-206b4b33]{font-size:16px}.type-tag[data-v-206b4b33]{padding:2px 10px;border-radius:var(--radius-xs);font-size:13px;font-weight:500}.type-equity[data-v-206b4b33]{background:var(--tag-equity-bg);color:var(--tag-equity-fg)}.type-hk_equity[data-v-206b4b33]{background:var(--tag-hk-bg);color:var(--tag-hk-fg)}.type-commodity[data-v-206b4b33]{background:var(--tag-commodity-bg);color:var(--tag-commodity-fg)}.type-etf[data-v-206b4b33]{background:var(--tag-etf-bg);color:var(--tag-etf-fg)}.price-row[data-v-206b4b33]{margin-top:10px;display:flex;align-items:baseline;gap:10px}.price[data-v-206b4b33]{font-size:28px}.chg[data-v-206b4b33]{font-size:20px}.chart-card[data-v-206b4b33]{padding:14px 16px}.state-msg[data-v-206b4b33]{padding:60px;text-align:center;color:var(--text-secondary);font-size:15px}@media(max-width:768px){.price[data-v-206b4b33]{font-size:22px}.chg[data-v-206b4b33]{font-size:16px}}.admin-page[data-v-b82987b7]{display:flex;flex-direction:column;gap:14px}.task-bar[data-v-b82987b7]{padding:12px 16px}.task-group[data-v-b82987b7]{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.task-label[data-v-b82987b7]{font-size:13px;color:var(--text-secondary);font-weight:600}.task-btn[data-v-b82987b7]{padding:5px 14px;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:6px;font-size:13px;cursor:pointer;transition:all .15s}.task-btn[data-v-b82987b7]:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}.task-btn[data-v-b82987b7]:disabled{opacity:.5;cursor:default}.task-info[data-v-b82987b7]{font-size:13px;color:var(--text-secondary)}.login-box[data-v-b82987b7]{max-width:360px;margin:60px auto;padding:24px;text-align:center}.login-box h3[data-v-b82987b7]{margin-bottom:16px}.pwd-input[data-v-b82987b7]{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:6px;font-size:14px;box-sizing:border-box}.login-btn[data-v-b82987b7]{margin-top:12px;padding:8px 24px;background:var(--primary);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px}.login-btn[data-v-b82987b7]:hover{opacity:.9}.err[data-v-b82987b7]{color:#d32f2f;margin-top:8px;font-size:13px}.toolbar[data-v-b82987b7]{display:flex;align-items:center;gap:8px;padding:0 4px}.search-input[data-v-b82987b7]{padding:4px 12px;border:1px solid var(--border);border-radius:4px;font-size:13px}.count[data-v-b82987b7]{font-size:13px;color:var(--text-secondary);margin-left:auto}.save-btn[data-v-b82987b7]{padding:4px 14px;background:var(--primary);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:13px}.save-btn[data-v-b82987b7]:disabled{opacity:.5}.table-card[data-v-b82987b7]{padding:0;overflow:hidden}.data-table[data-v-b82987b7]{width:100%;border-collapse:collapse}.data-table th[data-v-b82987b7]{background:var(--table-header);padding:10px 12px;text-align:left;font-size:13px;font-weight:600;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap}.data-table td[data-v-b82987b7]{padding:8px 12px;border-bottom:1px solid var(--border);font-size:14px}.data-table tr.modified[data-v-b82987b7]{background:#f0b90b14}.cell-input[data-v-b82987b7]{padding:4px 8px;border:1px solid var(--border);border-radius:4px;font-size:13px;width:120px}.code-input[data-v-b82987b7]{width:100px;font-family:monospace}.cell-select[data-v-b82987b7]{padding:4px 6px;border:1px solid var(--border);border-radius:4px;font-size:13px}.fill-btn[data-v-b82987b7]{padding:3px 10px;border:1px solid var(--primary);background:transparent;color:var(--primary);border-radius:4px;font-size:13px;cursor:pointer}.fill-btn[data-v-b82987b7]:disabled{opacity:.5;cursor:default}.mono[data-v-b82987b7]{font-family:monospace;font-weight:600}.text-light[data-v-b82987b7]{color:var(--text-secondary)}.search-page[data-v-1d08d7aa]{display:flex;flex-direction:column;gap:16px;max-width:800px;margin:0 auto;padding-top:20px}.search-box[data-v-1d08d7aa]{margin-bottom:24px}.search-box[data-v-1d08d7aa]{padding:20px}.search-box h3[data-v-1d08d7aa]{margin-bottom:12px;font-size:17px;font-weight:600}.search-input[data-v-1d08d7aa]{width:100%;padding:12px 16px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:16px;font-family:var(--font)}.search-input[data-v-1d08d7aa]:focus{outline:none;border-color:var(--primary)}.search-hint[data-v-1d08d7aa]{padding:10px 4px;font-size:13px}.results[data-v-1d08d7aa]{margin-top:6px;border:1px solid var(--border);border-radius:var(--radius-sm);max-height:320px;overflow-y:auto}.result-item[data-v-1d08d7aa]{display:flex;align-items:center;gap:14px;padding:7px 14px;cursor:pointer;border-bottom:1px solid var(--border)}.result-item[data-v-1d08d7aa]:last-child{border-bottom:none}.result-item[data-v-1d08d7aa]:hover,.result-item.active[data-v-1d08d7aa]{background:var(--card-bg-hover)}.result-item .code[data-v-1d08d7aa]{min-width:64px;color:var(--primary)}.section-header[data-v-1d08d7aa]{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:0 4px}.section-title[data-v-1d08d7aa]{font-size:16px;font-weight:600;color:var(--text)}.tag-list[data-v-1d08d7aa]{display:flex;flex-wrap:wrap;gap:6px}.tag-item[data-v-1d08d7aa]{display:flex;align-items:center;gap:6px;padding:5px 12px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .12s}.tag-item[data-v-1d08d7aa]:hover{border-color:var(--primary);background:var(--card-bg-hover)}.etf-grid[data-v-1d08d7aa]{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.etf-item[data-v-1d08d7aa]{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .12s}.etf-item[data-v-1d08d7aa]:hover{border-color:var(--primary);background:var(--card-bg-hover)}.etf-name[data-v-1d08d7aa]{font-size:14px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.etf-code[data-v-1d08d7aa]{font-size:13px}.tag-price[data-v-1d08d7aa]{font-size:13px;color:var(--text-secondary)}.tag-signal[data-v-1d08d7aa]{font-size:13px;color:var(--up);font-weight:600}.empty-hint[data-v-1d08d7aa]{padding:16px;font-size:14px;text-align:center}:root{--primary: #2b5fff;--bg: #0a0e14;--bg-alt: #11151c;--card-bg: #1a1d29;--card-bg-hover: #232735;--table-header: #14171f;--text: #ffffff;--text-secondary: #aeb8c6;--text-tertiary: #828b9c;--border: #1e2230;--border-light: #2a2e3a;--up: #0ecb81;--down: #f6465d;--buy: #0ecb81;--sell: #f6465d;--pending: #f0b90b;--shadow-sm: 0 1px 3px rgba(0,0,0,.3);--shadow-md: 0 4px 12px rgba(0,0,0,.4);--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;--gap: 16px;--font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;--tag-equity-bg: rgba(43,95,255,.12);--tag-equity-fg: #6b9eff;--tag-hk-bg: rgba(240,185,11,.12);--tag-hk-fg: #f0b90b;--tag-kr-bg: rgba(246,70,93,.12);--tag-kr-fg: #f6465d;--tag-commodity-bg: rgba(171,71,188,.12);--tag-commodity-fg: #ab47bc;--tag-premarket-bg: rgba(14,203,129,.12);--tag-premarket-fg: #0ecb81;--tag-etf-bg: rgba(0,188,212,.12);--tag-etf-fg: #00bcd4;--tag-crypto-bg: rgba(240,185,11,.12);--tag-crypto-fg: #f0b90b}[data-theme=light]{--primary: #2b5fff;--bg: #f5f6f8;--bg-alt: #ebedf0;--card-bg: #ffffff;--card-bg-hover: #f5f6f8;--table-header: #f9fafb;--text: #1a1a2e;--text-secondary: #4b5563;--text-tertiary: #6b7280;--border: #e8eaed;--border-light: #f0f1f3;--up: #00a76f;--down: #ff3b30;--buy: #00a76f;--sell: #ff3b30;--pending: #b8860b;--shadow-sm: 0 1px 3px rgba(0,0,0,.06);--shadow-md: 0 4px 12px rgba(0,0,0,.08);--tag-equity-bg: rgba(43,95,255,.08);--tag-equity-fg: #2b5fff;--tag-hk-bg: rgba(240,185,11,.1);--tag-hk-fg: #b8860b;--tag-kr-bg: rgba(246,70,93,.08);--tag-kr-fg: #e0205f;--tag-commodity-bg: rgba(171,71,188,.08);--tag-commodity-fg: #8e24aa;--tag-premarket-bg: rgba(14,203,129,.08);--tag-premarket-fg: #00a76f;--tag-etf-bg: rgba(0,150,170,.08);--tag-etf-fg: #0097a7;--tag-crypto-bg: rgba(240,185,11,.1);--tag-crypto-fg: #b8860b}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;transition:background .2s,color .2s}a{color:var(--text);text-decoration:none;transition:color .15s}a:hover{color:var(--primary)}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:16px;transition:box-shadow .2s,background .2s,border-color .2s}.up{color:var(--up)}.down{color:var(--down)}.text-light,.text-secondary{color:var(--text-secondary)}.text-dim{color:var(--text-tertiary)}.mono{font-family:SF Mono,Roboto Mono,Consolas,monospace;font-variant-numeric:tabular-nums}.bold{font-weight:600}@media(max-width:768px){body{font-size:13px}}
