.ai-eval-overlay[data-v-0b67cc91]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2100;background:#000000b3;display:flex;justify-content:center;padding-top:5vh}.ai-eval-modal[data-v-0b67cc91]{width:680px;max-width:96vw;max-height:88vh;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;box-shadow:0 24px 80px #0009;display:flex;flex-direction:column;overflow:hidden}.ai-eval-header[data-v-0b67cc91]{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--border);background:linear-gradient(135deg,#f0a03014,#667eea0a)}.ai-eval-title[data-v-0b67cc91]{display:flex;align-items:center;gap:6px;font-size:16px;font-weight:700;color:#f0a030}.ai-eval-icon[data-v-0b67cc91]{font-size:20px}.ai-eval-stock-tag[data-v-0b67cc91]{display:flex;align-items:baseline;gap:6px;margin-left:auto;margin-right:12px}.eval-stock-code[data-v-0b67cc91]{font-family:Consolas,monospace;font-weight:700;font-size:15px;color:var(--primary-light)}.eval-stock-name[data-v-0b67cc91]{font-size:13px;color:var(--text-secondary)}.ai-eval-close[data-v-0b67cc91]{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:4px 8px;border-radius:6px}.ai-eval-close[data-v-0b67cc91]:hover{color:var(--text-primary);background:#ffffff0f}.ai-eval-body[data-v-0b67cc91]{flex:1;overflow-y:auto;padding:20px}.ai-eval-loading[data-v-0b67cc91]{text-align:center;padding:40px 20px}.loading-spinner[data-v-0b67cc91]{width:40px;height:40px;margin:0 auto 16px;border:3px solid rgba(240,160,48,.2);border-top-color:#f0a030;border-radius:50%;animation:spin-0b67cc91 .8s linear infinite}@keyframes spin-0b67cc91{to{transform:rotate(360deg)}}.ai-eval-loading p[data-v-0b67cc91]{color:var(--text-secondary);font-size:14px}.loading-hint[data-v-0b67cc91]{font-size:12px!important;color:var(--text-muted)!important;margin-top:6px}.ai-eval-error[data-v-0b67cc91]{text-align:center;padding:40px;color:var(--text-secondary)}.ai-eval-error p[data-v-0b67cc91]{margin-bottom:12px}.eval-score-section[data-v-0b67cc91]{display:flex;align-items:center;gap:20px;padding:16px 20px;margin-bottom:16px;background:#ffffff05;border:1px solid var(--border-light);border-radius:12px}.eval-score-circle[data-v-0b67cc91]{width:80px;height:80px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:4px solid;flex-shrink:0}.eval-score-circle.score-high[data-v-0b67cc91]{border-color:#0ecb81;background:#0ecb8114}.eval-score-circle.score-good[data-v-0b67cc91]{border-color:#667eea;background:#667eea14}.eval-score-circle.score-mid[data-v-0b67cc91]{border-color:#f5a623;background:#f5a62314}.eval-score-circle.score-low[data-v-0b67cc91]{border-color:#ff4757;background:#ff475714}.eval-score-num[data-v-0b67cc91]{font-size:28px;font-weight:800;font-family:monospace;color:var(--text-primary)}.eval-score-label[data-v-0b67cc91]{font-size:10px;color:var(--text-muted);margin-top:2px}.eval-score-detail[data-v-0b67cc91]{flex:1}.eval-action[data-v-0b67cc91]{font-size:18px;font-weight:700;margin-bottom:4px}.eval-action.action-buy[data-v-0b67cc91]{color:#0ecb81}.eval-action.action-watch[data-v-0b67cc91]{color:#667eea}.eval-action.action-neutral[data-v-0b67cc91]{color:#f5a623}.eval-action.action-sell[data-v-0b67cc91]{color:#ff4757}.eval-action-detail[data-v-0b67cc91]{font-size:13px;color:var(--text-secondary);line-height:1.5}.eval-section[data-v-0b67cc91]{margin-bottom:16px}.eval-section-title[data-v-0b67cc91]{font-size:13px;font-weight:700;color:var(--text-secondary);margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid rgba(255,255,255,.05)}.eval-info-grid[data-v-0b67cc91]{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.eval-info-item[data-v-0b67cc91]{padding:8px 12px;background:#ffffff05;border-radius:8px}.eval-info-label[data-v-0b67cc91]{display:block;font-size:10px;color:var(--text-muted);margin-bottom:2px}.eval-info-value[data-v-0b67cc91]{font-size:13px;font-weight:600;font-family:monospace}.eval-info-value.highlight[data-v-0b67cc91]{color:var(--primary-light)}.eval-info-value.up[data-v-0b67cc91]{color:#0ecb81}.eval-info-value.down[data-v-0b67cc91]{color:#ff4757}.eval-tech-row[data-v-0b67cc91]{display:flex;gap:10px;margin-bottom:8px;align-items:center}.tech-trend-tag[data-v-0b67cc91]{font-size:12px;font-weight:700;padding:3px 10px;border-radius:10px}.tech-trend-tag.trend-bull[data-v-0b67cc91]{background:#0ecb811f;color:#0ecb81}.tech-trend-tag.trend-bear[data-v-0b67cc91]{background:#ff47571f;color:#ff4757}.tech-trend-tag.trend-neutral[data-v-0b67cc91]{background:#f5a6231f;color:#f5a623}.tech-score-tag[data-v-0b67cc91]{font-size:12px;padding:3px 10px;border-radius:10px;background:#667eea1f;color:#667eea}.eval-ma-row[data-v-0b67cc91]{display:flex;gap:16px;font-size:12px;color:var(--text-muted);margin-bottom:8px;font-family:monospace}.eval-signal-tags[data-v-0b67cc91]{display:flex;flex-wrap:wrap;gap:4px}.signal-tag[data-v-0b67cc91]{font-size:11px;padding:2px 8px;border-radius:8px;font-weight:500}.signal-tag.bullish[data-v-0b67cc91]{background:#0ecb811a;color:#0ecb81}.signal-tag.bearish[data-v-0b67cc91]{background:#ff47571a;color:#ff4757}.signal-tag.neutral[data-v-0b67cc91]{background:#8b949e1a;color:#8b949e}.eval-strategy-list[data-v-0b67cc91]{display:flex;flex-direction:column;gap:8px}.eval-strategy-item[data-v-0b67cc91]{padding:10px 14px;background:#ffffff05;border:1px solid var(--border-light);border-radius:8px}.eval-strategy-name[data-v-0b67cc91]{font-size:13px;font-weight:600;color:var(--primary-light);margin-bottom:4px}.eval-strategy-meta[data-v-0b67cc91]{display:flex;gap:10px;flex-wrap:wrap}.strategy-cat[data-v-0b67cc91]{font-size:10px;padding:1px 6px;border-radius:4px;background:#667eea1f;color:#667eea}.strategy-stat[data-v-0b67cc91]{font-size:11px;color:var(--text-muted);font-family:monospace}.ai-analysis[data-v-0b67cc91]{background:#f0a0300a;border:1px solid rgba(240,160,48,.15);border-radius:10px;padding:14px}.ai-text[data-v-0b67cc91]{font-size:13px;color:var(--text-secondary);line-height:1.7;margin-bottom:8px}.ai-text[data-v-0b67cc91]:last-child{margin-bottom:0}.ai-text strong[data-v-0b67cc91]{color:var(--text-primary)}.ai-text.highlight-box[data-v-0b67cc91]{background:#0ecb810f;border:1px solid rgba(14,203,129,.2);border-radius:8px;padding:10px 14px;margin-top:10px}.ai-text.risk-text[data-v-0b67cc91]{background:#ff47570f;border:1px solid rgba(255,71,87,.2);border-radius:8px;padding:10px 14px;margin-top:10px}.ai-skip-notice[data-v-0b67cc91]{font-size:12px;color:#8c8c8c;background:#f0a0300f;border:1px dashed rgba(240,160,48,.2);border-radius:6px;padding:8px 12px;margin-bottom:10px}.holding-section[data-v-0b67cc91]{background:#0ecb810a;border:1px solid rgba(14,203,129,.12);border-radius:10px;padding:14px}.holding-advice-text[data-v-0b67cc91]{font-size:14px;color:var(--text-primary);line-height:1.7;white-space:pre-line}.key-levels[data-v-0b67cc91]{display:flex;gap:16px;margin-top:8px;font-size:12px;font-family:monospace;color:var(--text-muted)}.risk-section[data-v-0b67cc91]{background:#ff47570a;border:1px solid rgba(255,71,87,.12);border-radius:10px;padding:14px}.risk-list[data-v-0b67cc91]{margin:0;padding-left:16px}.risk-list li[data-v-0b67cc91]{font-size:13px;color:#ff6b6b;line-height:1.6}.eval-disclaimer[data-v-0b67cc91]{font-size:11px;color:var(--text-disabled);text-align:center;padding:10px 0;border-top:1px solid rgba(255,255,255,.04);margin-top:12px}@media(max-width:768px){.ai-eval-modal[data-v-0b67cc91]{max-height:92vh;border-radius:12px}.eval-info-grid[data-v-0b67cc91]{grid-template-columns:repeat(2,1fr)}.eval-score-section[data-v-0b67cc91]{flex-direction:column;text-align:center}}@media(max-width:480px){.ai-eval-modal[data-v-0b67cc91]{padding:14px}.eval-info-grid[data-v-0b67cc91]{grid-template-columns:1fr;gap:8px}.eval-action-row[data-v-0b67cc91]{flex-direction:column;gap:6px}.eval-action-row .btn[data-v-0b67cc91]{width:100%}}.global-search-overlay[data-v-962023ac]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;background:#0009;display:flex;justify-content:center;padding-top:12vh}.gs-modal[data-v-962023ac]{width:600px;max-width:94vw;max-height:70vh;background:var(--bg-card);border:1px solid var(--border);border-radius:14px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;overflow:hidden}.gs-input-wrap[data-v-962023ac]{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--border)}.gs-search-icon[data-v-962023ac]{color:var(--text-muted);flex-shrink:0}.gs-input[data-v-962023ac]{flex:1;border:none;background:transparent;font-size:16px;color:var(--text-primary);outline:none;font-family:inherit}.gs-input[data-v-962023ac]::placeholder{color:var(--text-disabled)}.gs-kbd-hint[data-v-962023ac]{font-size:10px;padding:2px 7px;border-radius:4px;background:#ffffff0f;color:var(--text-muted);font-family:monospace;border:1px solid var(--border)}.gs-results[data-v-962023ac]{flex:1;overflow-y:auto}.gs-searching[data-v-962023ac]{display:flex;align-items:center;gap:8px;padding:20px;color:var(--text-muted);font-size:13px}.gs-exact-card[data-v-962023ac]{padding:16px 18px}.gs-exact-header[data-v-962023ac]{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px}.gs-exact-code-name[data-v-962023ac]{display:flex;align-items:baseline;gap:8px}.gs-exact-code[data-v-962023ac]{font-size:18px;font-weight:700;font-family:Consolas,monospace;color:var(--primary-light)}.gs-exact-name[data-v-962023ac]{font-size:14px;color:var(--text-secondary)}.gs-exact-market[data-v-962023ac]{font-size:10px;padding:1px 5px;border-radius:3px;background:#667eea1f;color:var(--primary-light)}.gs-exact-actions[data-v-962023ac]{display:flex;gap:6px;flex-shrink:0}.gs-exact-actions .btn[data-v-962023ac]{font-size:11px;padding:4px 10px}.gs-exact-data[data-v-962023ac]{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:12px 14px;margin-bottom:12px;background:#ffffff05;border:1px solid var(--border-light);border-radius:10px}.gs-data-item[data-v-962023ac]{text-align:center}.gs-data-label[data-v-962023ac]{display:block;font-size:10px;color:var(--text-muted);text-transform:uppercase;margin-bottom:2px}.gs-data-value[data-v-962023ac]{font-size:14px;font-weight:700;font-family:monospace}.gs-data-value.up[data-v-962023ac]{color:var(--success)}.gs-data-value.down[data-v-962023ac]{color:var(--danger)}.gs-exact-quicklinks[data-v-962023ac]{display:flex;gap:12px}.gs-quicklink[data-v-962023ac]{font-size:12px;color:var(--text-muted);cursor:pointer;padding:4px 10px;border-radius:6px;background:#ffffff05;border:1px solid var(--border-light);transition:all .2s}.gs-quicklink[data-v-962023ac]:hover{color:var(--primary-light);border-color:var(--primary-glow);background:#667eea0f}.gs-quicklink-ai[data-v-962023ac]{color:#f0a030;border-color:#f0a0304d;background:#f0a0300f}.gs-quicklink-ai[data-v-962023ac]:hover{color:#ffc107;border-color:#ffc10780;background:#f0a0301f}.gs-list-header[data-v-962023ac]{font-size:10px;color:var(--text-muted);text-transform:uppercase;padding:10px 18px 6px;letter-spacing:.5px}.gs-item[data-v-962023ac]{display:flex;justify-content:space-between;align-items:center;padding:10px 18px;cursor:pointer;transition:background .15s;border-bottom:1px solid rgba(255,255,255,.02)}.gs-item[data-v-962023ac]:hover{background:#667eea0d}.gs-item-main[data-v-962023ac]{display:flex;align-items:baseline;gap:8px;flex:1;min-width:0}.gs-item-code[data-v-962023ac]{font-size:14px;font-weight:600;font-family:Consolas,monospace;color:var(--primary-light)}.gs-item-name[data-v-962023ac]{font-size:13px;color:var(--text-secondary)}.gs-item-ind[data-v-962023ac]{font-size:11px;color:var(--text-muted)}.gs-item-right[data-v-962023ac]{display:flex;align-items:center;gap:8px;flex-shrink:0}.gs-item-price[data-v-962023ac]{font-size:13px;font-weight:600;font-family:monospace}.gs-item-chg[data-v-962023ac]{font-size:12px;font-weight:600}.gs-item-chg.up[data-v-962023ac]{color:var(--success)}.gs-item-chg.down[data-v-962023ac]{color:var(--danger)}.gs-item-right svg[data-v-962023ac]{color:var(--text-disabled);opacity:0;transition:opacity .15s}.gs-item:hover .gs-item-right svg[data-v-962023ac]{opacity:1}.gs-item-ai-btn[data-v-962023ac]{background:#f0a0301a;border:1px solid rgba(240,160,48,.25);color:#f0a030;font-size:12px;padding:2px 6px;border-radius:5px;cursor:pointer;transition:all .15s}.gs-item-ai-btn[data-v-962023ac]:hover{background:#f0a03033;border-color:#f0a030}.btn-ai[data-v-962023ac]{background:linear-gradient(135deg,#f0a03026,#f0a0300d);border-color:#f0a03059;color:#f0a030}.btn-ai[data-v-962023ac]:hover{background:#f0a03040;border-color:#ffc107}.gs-empty[data-v-962023ac]{text-align:center;padding:30px}.gs-empty-icon[data-v-962023ac]{font-size:36px;margin-bottom:10px}.gs-empty p[data-v-962023ac]{font-size:14px;color:var(--text-secondary)}.gs-empty-hint[data-v-962023ac]{font-size:12px;color:var(--text-disabled);margin-top:4px}.gs-placeholder[data-v-962023ac]{padding:20px 18px}.gs-shortcut-hints[data-v-962023ac]{font-size:11px;color:var(--text-muted);text-align:center;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}.gs-shortcut-hints kbd[data-v-962023ac]{font-size:10px;padding:1px 6px;border-radius:3px;background:#ffffff0d;border:1px solid var(--border);font-family:monospace;color:var(--text-secondary)}.gs-recent[data-v-962023ac]{margin-top:16px}.gs-recent-label[data-v-962023ac]{font-size:11px;color:var(--text-muted);margin-bottom:8px;text-transform:uppercase}.gs-recent-list[data-v-962023ac]{display:flex;flex-wrap:wrap;gap:6px}.gs-recent-chip[data-v-962023ac]{font-size:12px;padding:4px 10px;border-radius:6px;background:#ffffff08;border:1px solid var(--border-light);cursor:pointer;font-family:Consolas,monospace;color:var(--text-secondary);transition:all .15s}.gs-recent-chip[data-v-962023ac]:hover{border-color:var(--primary-glow);color:var(--primary-light)}@media(max-width:768px){.gs-modal[data-v-962023ac]{max-height:85vh;border-radius:12px}.gs-exact-data[data-v-962023ac]{grid-template-columns:repeat(2,1fr)}.gs-shortcut-hints[data-v-962023ac]{font-size:10px}}@media(max-width:480px){.gs-search-bar[data-v-962023ac]{padding:8px 10px}.gs-results-list[data-v-962023ac]{max-height:50vh}.gs-exact-data[data-v-962023ac]{grid-template-columns:1fr;gap:6px}.gs-quick-search[data-v-962023ac]{flex-wrap:wrap;gap:4px}.gs-quick-chip[data-v-962023ac]{font-size:10px;padding:3px 8px}}.driver-popover{all:unset;font-family:var(--driver-popover-font-family,"Helvetica Neue", Inter, ui-sans-serif, "Apple Color Emoji", Helvetica, Arial, sans-serif);box-sizing:border-box;color:#2d2d2d;z-index:1000000000;background-color:#fff;border-radius:5px;min-width:250px;max-width:300px;margin:0;padding:15px;position:fixed;top:0;right:0;box-shadow:0 1px 10px #0006}.driver-popover-title{zoom:1;margin:0;font-size:19px;font-weight:700;line-height:1.5;display:block;position:relative}.driver-popover-close-btn{all:unset;cursor:pointer;color:#d2d2d2;z-index:1;text-align:center;width:32px;height:28px;font-size:18px;font-weight:500;transition:color .2s;position:absolute;top:0;right:0}.driver-popover-close-btn:hover,.driver-popover-close-btn:focus{color:#2d2d2d}.driver-popover-title[style*=block]+.driver-popover-description{margin-top:5px}.driver-popover-description{zoom:1;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.5}.driver-popover-footer{text-align:right;zoom:1;justify-content:space-between;align-items:center;margin-top:15px;display:flex}.driver-popover-progress-text{color:#727272;zoom:1;font-size:13px;font-weight:400}.driver-popover-footer-btn{all:unset;box-sizing:border-box;color:#2d2d2d;cursor:pointer;zoom:1;background-color:#fff;border:1px solid #ccc;border-radius:3px;outline:0;padding:3px 7px;font-size:12px;line-height:1.3;text-decoration:none;display:inline-block}.driver-popover-footer .driver-popover-btn-disabled{opacity:.5;pointer-events:none}.driver-popover-footer-btn:hover,.driver-popover-footer-btn:focus{background-color:#f7f7f7}.driver-popover-navigation-btns{flex-grow:1;justify-content:flex-end;display:flex}.driver-popover-navigation-btns button+button{margin-left:4px}.driver-popover-arrow{content:"";border:5px solid #fff;position:absolute}.driver-popover-arrow-side-over{display:none}.driver-popover-arrow-side-left{border-top-color:#0000;border-bottom-color:#0000;border-right-color:#0000;left:100%}.driver-popover-arrow-side-right{border-top-color:#0000;border-bottom-color:#0000;border-left-color:#0000;right:100%}.driver-popover-arrow-side-top{border-bottom-color:#0000;border-left-color:#0000;border-right-color:#0000;top:100%}.driver-popover-arrow-side-bottom{border-top-color:#0000;border-left-color:#0000;border-right-color:#0000;bottom:100%}.driver-popover-arrow-side-center,.driver-popover-arrow-none{display:none}.driver-active .driver-overlay{pointer-events:none}.driver-active.driver-no-scroll{overflow:hidden}.driver-active *{pointer-events:none}.driver-active .driver-active-element,.driver-active .driver-active-element *,.driver-popover,.driver-popover *{pointer-events:auto}@keyframes animate-fade-in{0%{opacity:0}to{opacity:1}}.driver-fade .driver-overlay{animation:animate-fade-in var(--driver-animation-duration,.4s) ease-in-out}.driver-fade .driver-popover{animation:animate-fade-in var(--driver-animation-duration,.4s)}.driver-active-element-parent-no-scroll{overflow:hidden!important}.driver-no-interaction,.driver-no-interaction *{pointer-events:none!important}.driver-popover{background:var(--bg-card, #1a1d2e)!important;border:1px solid var(--border, #2a2d3e)!important;border-radius:12px!important;box-shadow:0 20px 60px #0009!important;color:var(--text-primary, #e1e4ed)!important}.driver-popover-title{color:var(--primary-light, #7c83ff)!important;font-size:16px!important}.driver-popover-description{color:var(--text-secondary, #8b90a0)!important;font-size:13px!important}.driver-popover-footer button{border-radius:8px!important;font-size:12px!important;padding:6px 16px!important}.driver-popover-footer .driver-next-btn{background:var(--primary, #6c5ce7)!important;color:#fff!important;border:none!important}.tour-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#0000008c;transition:opacity .3s}.tour-spotlight{position:fixed;z-index:10001;border-radius:12px;box-shadow:0 0 0 9999px #0000008c,0 0 0 3px var(--primary-light, #7c83ff);transition:all .35s var(--transition, cubic-bezier(.4,0,.2,1));pointer-events:none}.tour-tooltip{position:fixed;z-index:10002;background:var(--bg-card, #1a1d2e);border:1px solid var(--border, #2a2d3e);border-radius:14px;padding:20px 24px;min-width:320px;max-width:380px;box-shadow:0 24px 64px #000000b3;transition:all .3s var(--transition, cubic-bezier(.4,0,.2,1))}.tour-step{font-size:11px;color:var(--text-muted, #6e7681);margin-bottom:6px;letter-spacing:1px;text-transform:uppercase}.tour-tooltip h3{margin:0 0 8px;font-size:17px;color:var(--primary-light, #7c83ff)}.tour-tooltip p{margin:0 0 18px;font-size:13px;color:var(--text-secondary, #8b90a0);line-height:1.6}.tour-actions{display:flex;gap:8px;justify-content:flex-end}.tour-actions .btn-sm{padding:6px 16px;font-size:12px;border-radius:8px}.tour-fade-enter-active{transition:opacity .3s}.tour-fade-leave-active{transition:opacity .2s}.tour-fade-enter-from,.tour-fade-leave-to{opacity:0}.error-boundary-fallback[data-v-6eebefaf]{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:40px 20px}.eb-inner[data-v-6eebefaf]{text-align:center;max-width:480px;padding:48px 36px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-glass)}.eb-icon[data-v-6eebefaf]{color:var(--warning);margin-bottom:16px;opacity:.8}.eb-inner h2[data-v-6eebefaf]{color:var(--text-primary);font-size:20px;font-weight:700;margin:0 0 8px}.eb-msg[data-v-6eebefaf]{color:var(--text-secondary);font-size:14px;line-height:1.6;margin:0 0 8px}.eb-detail[data-v-6eebefaf]{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:8px;padding:10px 14px;font-size:12px;color:var(--text-muted);text-align:left;word-break:break-all;font-family:Fira Code,Menlo,monospace;margin:12px 0;max-height:160px;overflow-y:auto}.eb-actions[data-v-6eebefaf]{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:24px}.eb-btn[data-v-6eebefaf]{padding:10px 22px;border-radius:999px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;border:1px solid transparent}.eb-btn-primary[data-v-6eebefaf]{background:var(--gradient-brand);color:#fff;border-color:var(--primary)}.eb-btn-primary[data-v-6eebefaf]:hover{opacity:.9;box-shadow:var(--glow-primary)}.eb-btn-secondary[data-v-6eebefaf]{background:transparent;color:var(--text-secondary);border-color:var(--border)}.eb-btn-secondary[data-v-6eebefaf]:hover{background:var(--bg-hover);color:var(--text-primary)}.eb-btn-text[data-v-6eebefaf]{background:transparent;color:var(--text-muted);border:none;font-size:12px;font-weight:400;text-decoration:underline;text-underline-offset:3px}.eb-btn-text[data-v-6eebefaf]:hover{color:var(--text-secondary)}.eb-hint[data-v-6eebefaf]{color:var(--text-disabled);font-size:12px;margin-top:20px}.eb-hint kbd[data-v-6eebefaf]{display:inline-block;background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;padding:1px 6px;font-family:inherit;font-size:11px;color:var(--text-muted)}.ws-status{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#9696aa14;margin-left:4px;cursor:default;transition:background .3s}.ws-dot{width:6px;height:6px;border-radius:50%;display:inline-block;transition:background .5s,box-shadow .5s}.ws-ok .ws-dot{background:#2ed573;box-shadow:0 0 6px #2ed57399}.ws-warn .ws-dot{background:#ffa502;box-shadow:0 0 6px #ffa50299;animation:ws-pulse 1.5s ease-in-out infinite}.ws-err .ws-dot{background:#ff4757;box-shadow:0 0 6px #ff475780}@keyframes ws-pulse{0%,to{opacity:1}50%{opacity:.35}}.net-status{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#ff47571f;margin-left:4px;cursor:default;animation:net-blink 1.5s ease-in-out infinite}.net-status svg{color:var(--danger, #ff4757)}@keyframes net-blink{0%,to{opacity:1}50%{opacity:.45}}.topbar-divider{height:2px;background:linear-gradient(90deg,transparent,var(--primary),var(--accent),var(--primary),transparent);background-size:200% 100%;animation:dividerFlow 4s ease-in-out infinite;opacity:.7}@keyframes dividerFlow{0%,to{background-position:0% 0%}50%{background-position:100% 0%}}.role-badge{font-size:11px;line-height:1;padding:3px 8px;border-radius:999px;font-weight:600;white-space:nowrap;border:1px solid transparent;-webkit-user-select:none;user-select:none}.rb-admin{color:#ff8a8a;background:#ff475724;border-color:#ff475759}.rb-analyst{color:#9aa6ff;background:#7c83ff24;border-color:#7c83ff59}.rb-trader{color:#5fe0a0;background:#2ed57324;border-color:#2ed57359}.rb-user{color:#aab0c4;background:#9696aa1f;border-color:#9696aa4d}.forbidden-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;color:var(--text-secondary)}.forbidden-page .fb-icon{font-size:56px;margin-bottom:16px}.forbidden-page h2{font-size:22px;color:var(--text-primary);margin:0 0 8px}.forbidden-page p{font-size:14px;margin:0 0 20px}.breadcrumb{display:flex;align-items:center;gap:6px;padding:10px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border-light);font-size:12px;flex-wrap:wrap}.bc-link{color:var(--text-muted);text-decoration:none;transition:color .2s;font-weight:500;padding:2px 6px;border-radius:4px}.bc-link:hover{color:var(--primary-light);background:var(--bg-hover)}.bc-link.bc-current{color:var(--primary-light);font-weight:700;cursor:default}.bc-sep{color:var(--text-disabled);font-size:11px}.page-fade-enter-active,.page-fade-leave-active{transition:opacity .2s ease,transform .2s var(--transition)}.page-fade-enter-from{opacity:0;transform:translateY(8px)}.page-fade-leave-to{opacity:0;transform:translateY(-4px)}.page-slide-left-enter-active,.page-slide-left-leave-active{transition:all .3s var(--transition)}.page-slide-left-enter-from{opacity:0;transform:translate(30px)}.page-slide-left-leave-to{opacity:0;transform:translate(-30px)}.page-slide-right-enter-active,.page-slide-right-leave-active{transition:all .3s var(--transition)}.page-slide-right-enter-from{opacity:0;transform:translate(-30px)}.page-slide-right-leave-to{opacity:0;transform:translate(30px)}#particle-burst-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9990;pointer-events:none}.card-3d{transition:transform .15s ease-out,box-shadow .3s ease;transform-style:preserve-3d}.skeleton-block{border-radius:8px;background:linear-gradient(110deg,var(--bg-card) 30%,var(--bg-elevated) 50%,var(--bg-card) 70%);background-size:200% 100%;animation:skeletonShimmer 1.6s ease-in-out infinite}.skeleton-text{height:14px;margin-bottom:8px}.skeleton-text.short{width:60%}.skeleton-heading{height:22px;width:45%;margin-bottom:16px}.skeleton-card{height:120px;margin-bottom:16px}.skeleton-row{height:40px;margin-bottom:4px}:root{--text-primary: #eef2fb;--text-secondary: rgba(238, 242, 251, .66);--text-muted: rgba(238, 242, 251, .42);--text-disabled: rgba(238, 242, 251, .26);--success: #34d399;--success-bg: rgba(52, 211, 153, .14);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .14);--danger: #fb7185;--danger-bg: rgba(251, 113, 133, .14);--info: #38bdf8;--radius: 14px;--radius-lg: 20px;--shadow: 0 10px 30px rgba(0, 0, 0, .35);--shadow-lg: 0 22px 64px rgba(0, 0, 0, .45);--transition: .28s cubic-bezier(.22, 1, .36, 1);--sidebar-width: 240px;--sidebar-collapsed-width: 68px;--topbar-height: 60px;--primary: #7c83ff;--primary-dark: #5b61e6;--primary-light: #a5a9ff;--accent: #c084fc;--info: #818cf8;--bg-primary: #080a16;--bg-secondary: #0e1122;--bg-card: #141833;--bg-elevated: #1b2042;--bg-hover: rgba(124, 131, 255, .12);--border: rgba(124, 131, 255, .18);--border-light: rgba(124, 131, 255, .1);--aurora: radial-gradient(circle at 18% 20%, rgba(124, 131, 255, .22), transparent 45%), radial-gradient(circle at 82% 12%, rgba(192, 132, 252, .18), transparent 45%), radial-gradient(circle at 70% 88%, rgba(34, 211, 238, .12), transparent 50%), #080a16}:root{--glass-blur: 18px;--gradient-brand: linear-gradient(135deg, var(--primary), var(--accent));--gradient-brand-soft: linear-gradient(135deg, color-mix(in srgb, var(--primary) 16%, transparent), color-mix(in srgb, var(--accent) 16%, transparent));--glow-primary: 0 0 30px color-mix(in srgb, var(--primary) 28%, transparent);--ring-soft: inset 0 1px 0 rgba(255,255,255,.06), inset 0 0 0 1px color-mix(in srgb, var(--primary) 8%, transparent);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--shadow-glass: 0 10px 34px rgba(0,0,0,.42), 0 1px 0 rgba(255,255,255,.05) inset;--hero-aurora: radial-gradient(60% 120% at 0% 0%, color-mix(in srgb, var(--primary) 22%, transparent), transparent 60%), radial-gradient(60% 120% at 100% 0%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 60%)}[data-theme=light]{--primary: #22d3ee;--primary-dark: #0ea5b7;--primary-light: #7df0ff;--accent: #60a5fa;--info: #38bdf8;--bg-primary: #050d18;--bg-secondary: #0a1626;--bg-card: #0e1d33;--bg-elevated: #122541;--bg-hover: rgba(34, 211, 238, .12);--border: rgba(34, 211, 238, .18);--border-light: rgba(34, 211, 238, .1);--aurora: radial-gradient(circle at 15% 18%, rgba(34, 211, 238, .22), transparent 45%), radial-gradient(circle at 85% 22%, rgba(96, 165, 250, .18), transparent 45%), radial-gradient(circle at 60% 90%, rgba(56, 189, 248, .12), transparent 50%), #050d18}[data-theme=dao]{--primary: #a855f7;--primary-dark: #8b2fe0;--primary-light: #d8a8ff;--accent: #ec4899;--info: #8b5cf6;--bg-primary: #0c0518;--bg-secondary: #15082a;--bg-card: #1c0c38;--bg-elevated: #241047;--bg-hover: rgba(168, 85, 247, .12);--border: rgba(168, 85, 247, .2);--border-light: rgba(236, 72, 153, .12);--aurora: radial-gradient(circle at 20% 22%, rgba(168, 85, 247, .24), transparent 45%), radial-gradient(circle at 80% 18%, rgba(236, 72, 153, .2), transparent 45%), radial-gradient(circle at 65% 85%, rgba(139, 92, 246, .14), transparent 50%), #0c0518}[data-theme=cyber]{--primary: #22e0a1;--primary-dark: #12b884;--primary-light: #6cf2c6;--accent: #2dd4bf;--info: #34d399;--bg-primary: #04110c;--bg-secondary: #081c14;--bg-card: #0b261c;--bg-elevated: #0f3326;--bg-hover: rgba(34, 224, 161, .12);--border: rgba(34, 224, 161, .18);--border-light: rgba(34, 224, 161, .1);--aurora: radial-gradient(circle at 78% 15%, rgba(34, 224, 161, .22), transparent 45%), radial-gradient(circle at 15% 80%, rgba(45, 212, 191, .18), transparent 45%), radial-gradient(circle at 50% 50%, rgba(16, 185, 129, .1), transparent 55%), #04110c}[data-theme=gold]{--primary: #f59e0b;--primary-dark: #d97706;--primary-light: #fcd34d;--accent: #fbbf24;--info: #f59e0b;--bg-primary: #120c04;--bg-secondary: #1d1504;--bg-card: #271a06;--bg-elevated: #33220a;--bg-hover: rgba(245, 158, 11, .12);--border: rgba(245, 158, 11, .2);--border-light: rgba(245, 158, 11, .1);--aurora: radial-gradient(circle at 50% 12%, rgba(245, 158, 11, .22), transparent 48%), radial-gradient(circle at 18% 82%, rgba(251, 191, 36, .18), transparent 45%), radial-gradient(circle at 85% 80%, rgba(234, 88, 12, .12), transparent 50%), #120c04}[data-theme=minimal]{--primary: #10b981;--primary-dark: #059669;--primary-light: #6ee7b7;--accent: #34d399;--info: #10b981;--bg-primary: #04120d;--bg-secondary: #071f17;--bg-card: #0a2a20;--bg-elevated: #0e3528;--bg-hover: rgba(16, 185, 129, .12);--border: rgba(16, 185, 129, .18);--border-light: rgba(16, 185, 129, .1);--aurora: radial-gradient(circle at 80% 18%, rgba(16, 185, 129, .22), transparent 45%), radial-gradient(circle at 12% 82%, rgba(52, 211, 153, .18), transparent 45%), radial-gradient(circle at 50% 55%, rgba(16, 185, 129, .1), transparent 55%), #04120d}[data-theme=neon]{--primary: #ec4899;--primary-dark: #db2777;--primary-light: #f9a8d4;--accent: #22d3ee;--info: #22d3ee;--bg-primary: #0a0418;--bg-secondary: #120726;--bg-card: #180c33;--bg-elevated: #20123f;--bg-hover: rgba(236, 72, 153, .12);--border: rgba(236, 72, 153, .22);--border-light: rgba(34, 211, 238, .12);--aurora: radial-gradient(circle at 15% 20%, rgba(236, 72, 153, .26), transparent 45%), radial-gradient(circle at 85% 15%, rgba(34, 211, 238, .24), transparent 45%), radial-gradient(circle at 75% 85%, rgba(168, 85, 247, .22), transparent 50%), radial-gradient(circle at 25% 90%, rgba(52, 211, 153, .16), transparent 45%), #0a0418}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:var(--aurora);background-size:200% 200%;animation:auroraShift 20s ease-in-out infinite}@keyframes auroraShift{0%{background-position:0% 0%}50%{background-position:100% 100%}to{background-position:0% 0%}}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(circle at 50% 22%,#000,transparent 78%);mask-image:radial-gradient(circle at 50% 22%,#000,transparent 78%)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;padding:0}a{color:var(--primary-light);text-decoration:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--primary),var(--accent));border-radius:4px}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--primary-light),var(--accent))}::-webkit-scrollbar-track{background:transparent}*{scrollbar-width:thin;scrollbar-color:var(--primary) transparent}.app-root{position:relative;z-index:1;min-height:100vh;min-height:100dvh}.scroll-progress{position:fixed;top:env(safe-area-inset-top);left:0;height:3px;width:0;z-index:9999;background:linear-gradient(90deg,var(--primary),var(--accent));box-shadow:0 0 12px var(--primary);transition:width .1s linear}.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:200;width:var(--sidebar-width);padding-top:env(safe-area-inset-top);background:var(--bg-secondary);background:color-mix(in srgb,var(--bg-secondary) 88%,transparent);backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width var(--transition),transform var(--transition);overflow:hidden}.sidebar.collapsed{width:var(--sidebar-collapsed-width)}.sidebar-header{padding:18px 16px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border);cursor:pointer;min-height:var(--topbar-height)}.logo-icon{flex-shrink:0}.logo-text{font-size:17px;font-weight:700;white-space:nowrap;background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 14px color-mix(in srgb,var(--primary) 45%,transparent))}.sidebar-search{display:flex;align-items:center;gap:8px;margin:8px 12px 4px;padding:8px 10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;color:var(--text-muted)}.sidebar-search input{flex:1;border:none;outline:none;background:transparent;color:var(--text-primary);font-size:13px;min-width:0}.sidebar-search input::placeholder{color:var(--text-disabled)}.sidebar-search .search-clear{border:none;background:transparent;color:var(--text-muted);font-size:18px;line-height:1;cursor:pointer;padding:0 2px}.sidebar-search .search-clear:hover{color:var(--danger)}.sidebar-search:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 16%,transparent)}.sidebar-nav{flex:1;overflow-y:auto;padding:8px;-webkit-overflow-scrolling:touch}.nav-group{margin-bottom:6px;animation:navGroupIn .5s var(--transition) both}.nav-group:nth-child(1){animation-delay:.02s}.nav-group:nth-child(2){animation-delay:.06s}.nav-group:nth-child(3){animation-delay:.1s}.nav-group:nth-child(4){animation-delay:.14s}.nav-group:nth-child(5){animation-delay:.18s}.nav-group:nth-child(6){animation-delay:.22s}@keyframes navGroupIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}.nav-group-title{display:flex;align-items:center;gap:8px;padding:9px 14px;margin:0 6px;font-size:11px;font-weight:800;color:var(--text-muted);text-transform:uppercase;letter-spacing:1.5px;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:9px;transition:color .2s,background .2s;position:relative}.nav-group-title:before{content:"";width:3px;height:12px;border-radius:2px;flex-shrink:0;background:linear-gradient(180deg,var(--primary),var(--accent));opacity:.45;transition:opacity .2s,height .2s}.nav-group-title:hover{color:var(--text-secondary);background:color-mix(in srgb,var(--primary) 6%,transparent)}.nav-group-title:hover:before{opacity:1;height:15px}.group-hint{margin-left:auto;font-size:9.5px;font-weight:600;letter-spacing:.5px;color:var(--primary-light);opacity:.7;text-transform:none}.group-arrow{font-size:9px;transition:transform .28s;display:inline-block;margin-left:auto;opacity:.55}.group-arrow.open{transform:rotate(0)}.group-arrow:not(.open){transform:rotate(-90deg)}.group-hint{margin-left:8px;font-size:9px;font-weight:600;letter-spacing:.5px;color:var(--primary-light);opacity:.6;text-transform:none;background:color-mix(in srgb,var(--primary) 12%,transparent);padding:1px 7px;border-radius:999px;border:1px solid color-mix(in srgb,var(--primary) 22%,transparent)}.nav-item{display:flex;align-items:center;gap:12px;padding:8px 14px 8px 12px;margin-bottom:2px;border-radius:11px;color:var(--text-secondary);font-size:13.5px;font-weight:500;transition:all var(--transition);white-space:nowrap;position:relative;text-decoration:none}.nav-item .nav-icon{width:34px;height:34px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--primary) 9%,transparent);opacity:.85;transition:all .25s var(--transition)}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary);transform:translate(3px)}.nav-item:hover .nav-icon{background:color-mix(in srgb,var(--primary) 18%,transparent);opacity:1;transform:scale(1.06)}.nav-item.router-link-active{background:linear-gradient(90deg,color-mix(in srgb,var(--primary) 22%,transparent),transparent);color:var(--primary-light);box-shadow:inset 0 0 22px color-mix(in srgb,var(--primary) 10%,transparent)}.nav-item.router-link-active .nav-icon{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;opacity:1;transform:scale(1.06);box-shadow:0 0 14px color-mix(in srgb,var(--primary) 55%,transparent)}.nav-item.router-link-active .nav-icon svg{stroke:#fff}.nav-item.router-link-active:after{content:"";position:absolute;left:4px;top:18%;bottom:18%;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--primary),var(--accent));box-shadow:0 0 10px var(--primary);animation:activePulse 1.8s ease-in-out infinite}@keyframes activePulse{0%,to{opacity:.5}50%{opacity:1}}.nav-icon{flex-shrink:0;display:flex;align-items:center;opacity:.75;transition:opacity .2s,filter .2s}.nav-item.router-link-active .nav-icon{opacity:1}.nav-badge{margin-left:auto;background:var(--danger);color:#fff;font-size:10px;padding:2px 6px;border-radius:8px;min-width:18px;text-align:center;box-shadow:0 0 10px color-mix(in srgb,var(--danger) 50%,transparent);animation:badgePulse 2s ease-in-out infinite}@keyframes badgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.fav-pin{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;background:transparent;cursor:pointer;color:var(--text-muted);opacity:0;transition:opacity .15s,color .15s}.nav-item:hover .fav-pin{opacity:.7}.fav-pin.pinned{opacity:1;color:var(--primary)}.fav-pin:hover{opacity:1!important;color:var(--primary)}.fav-pin:not(.pinned) svg{fill:none}.fav-pin svg{fill:currentColor}.nav-parent{margin-bottom:2px}.nav-parent-item{font-weight:600}.nav-parent-item .nav-badge{margin-left:8px}.sub-arrow{margin-left:auto;width:16px;text-align:center;flex-shrink:0;font-size:10px;line-height:1;opacity:.5;cursor:pointer;transition:transform .22s var(--transition),opacity .2s}.sub-arrow:hover{opacity:.95}.sub-arrow.open{transform:rotate(180deg);opacity:.9}.nav-sub{margin:2px 0 5px 22px;padding-left:14px;border-left:1px solid color-mix(in srgb,var(--primary) 20%,transparent)}.nav-subitem{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 10px;margin-bottom:1px;border-radius:9px;color:var(--text-secondary);font-size:12.5px;font-weight:500;text-decoration:none;white-space:nowrap;transition:all var(--transition)}.nav-subitem:hover{background:var(--bg-hover);color:var(--text-primary);transform:translate(2px)}.nav-subitem.active,.nav-subitem.router-link-active{background:color-mix(in srgb,var(--primary) 16%,transparent);color:var(--primary-light);font-weight:600}.sub-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;opacity:.55;background:color-mix(in srgb,var(--primary) 60%,transparent);transition:all .2s}.nav-subitem:hover .sub-dot,.nav-subitem.active .sub-dot,.nav-subitem.router-link-active .sub-dot{opacity:1;background:var(--primary);box-shadow:0 0 8px var(--primary)}.sidebar.collapsed .nav-sub{display:none}.sidebar-footer{padding:10px 12px;border-top:1px solid var(--border)}.theme-quick{display:flex;gap:6px;justify-content:center;padding-bottom:10px;flex-wrap:wrap}.theme-dot-btn{width:26px;height:26px;border-radius:50%;border:2px solid transparent;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;padding:0}.theme-dot-btn:hover{border-color:var(--border);transform:scale(1.12)}.theme-dot-btn.active{border-color:var(--primary);box-shadow:0 0 10px var(--primary)}.theme-dot{width:14px;height:14px;border-radius:50%}.dot-dark{background:linear-gradient(135deg,#7c83ff,#c084fc);box-shadow:0 0 8px #7c83ff99}.dot-light{background:linear-gradient(135deg,#22d3ee,#60a5fa);box-shadow:0 0 8px #22d3ee99}.dot-dao{background:linear-gradient(135deg,#a855f7,#ec4899);box-shadow:0 0 8px #a855f799}.dot-cyber{background:linear-gradient(135deg,#22e0a1,#2dd4bf);box-shadow:0 0 8px #22e0a199}.dot-gold{background:linear-gradient(135deg,#f59e0b,#fbbf24);box-shadow:0 0 8px #f59e0b99}.dot-minimal{background:linear-gradient(135deg,#10b981,#34d399);box-shadow:0 0 8px #10b98199}.dot-neon{background:linear-gradient(135deg,#ec4899,#22d3ee);box-shadow:0 0 8px #ec489999}.collapse-btn{width:100%;padding:8px;background:none;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.collapse-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.collapse-btn svg{transition:transform var(--transition)}.main-wrapper{margin-left:var(--sidebar-width);min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;transition:margin-left var(--transition)}.main-wrapper.sidebar-collapsed{margin-left:var(--sidebar-collapsed-width)}.topbar{min-height:calc(var(--topbar-height) + env(safe-area-inset-top));background:var(--bg-primary);background:color-mix(in srgb,var(--bg-primary) 78%,transparent);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-bottom:1px solid var(--border);padding:0 24px;padding-top:env(safe-area-inset-top);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:150}.topbar-left{display:flex;align-items:center;gap:14px;min-width:0}#menuToggle{display:none}.clock{font-size:13px;color:var(--text-muted);font-family:SF Mono,Consolas,monospace;white-space:nowrap}.market-status{font-size:12px;padding:3px 10px;border-radius:10px;font-weight:500;white-space:nowrap}.market-status.open{background:var(--success-bg);color:var(--success);box-shadow:0 0 12px color-mix(in srgb,var(--success) 35%,transparent)}.market-status.closed,.market-status.rest{background:#ffffff0a;color:var(--text-muted)}.theme-indicator{font-size:11px;padding:3px 10px;border-radius:8px;background:var(--bg-elevated);color:var(--text-secondary);border:1px solid var(--border);white-space:nowrap}.topbar-right{display:flex;align-items:center;gap:10px}.topbar-btn{position:relative;width:36px;height:36px;border-radius:9px;background:none;border:1px solid transparent;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition)}.topbar-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border);transform:translateY(-1px)}.topbar-btn.active{color:var(--primary);border-color:var(--border);background:var(--bg-hover)}.badge-dot{position:absolute;top:-2px;right:-2px;background:var(--danger);color:#fff;font-size:10px;padding:1px 5px;border-radius:8px;min-width:16px;text-align:center;font-weight:600;box-shadow:0 0 8px color-mix(in srgb,var(--danger) 50%,transparent)}.user-menu{display:flex;align-items:center;gap:8px}.user-avatar{width:32px;height:32px;border-radius:9px;background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;box-shadow:0 0 14px color-mix(in srgb,var(--primary) 50%,transparent)}.user-name{font-size:13px;color:var(--text-secondary);font-weight:500;white-space:nowrap}.page-content{flex:1;padding:24px;max-width:1600px;width:100%;display:flex;flex-direction:column;animation:fadeUp .5s var(--transition) both}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:24px;flex-wrap:wrap;gap:12px}.page-header h1{font-size:24px;font-weight:800;margin:0;position:relative;background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.5px;filter:drop-shadow(0 0 22px color-mix(in srgb,var(--primary) 32%,transparent))}.page-header h1:after{content:"";display:block;width:46px;height:3px;margin-top:8px;border-radius:3px;background:var(--gradient-brand);box-shadow:0 0 12px var(--primary)}.page-header p{color:var(--text-muted);font-size:13px;margin:10px 0 0}.fade-enter-active,.fade-leave-active{transition:opacity .2s ease}.fade-enter-from,.fade-leave-to{opacity:0}.card{position:relative;background:linear-gradient(160deg,color-mix(in srgb,var(--bg-elevated) 78%,transparent),color-mix(in srgb,var(--bg-card) 58%,transparent));backdrop-filter:blur(var(--glass-blur)) saturate(140%);-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(140%);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-glass);transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition),background .5s ease}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;pointer-events:none;z-index:0;background:linear-gradient(180deg,rgba(255,255,255,.09),transparent 28%)}.card:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;border-radius:inherit;pointer-events:none;z-index:0;background:radial-gradient(120% 80% at 50% -10%,color-mix(in srgb,var(--primary) 22%,transparent),transparent 60%);opacity:0;transition:opacity var(--transition)}.card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--primary) 50%,var(--border));box-shadow:var(--shadow-lg),0 0 42px color-mix(in srgb,var(--primary) 18%,transparent)}.card:hover:after{opacity:1}.card--glow{border-color:color-mix(in srgb,var(--primary) 40%,var(--border));box-shadow:var(--shadow-glass),0 0 30px color-mix(in srgb,var(--primary) 14%,transparent)}.kpi-tile{position:relative;overflow:hidden;padding:20px 22px;border-radius:var(--radius-lg);background:linear-gradient(160deg,color-mix(in srgb,var(--primary) 16%,transparent),color-mix(in srgb,var(--bg-card) 60%,transparent));border:1px solid color-mix(in srgb,var(--primary) 28%,var(--border));box-shadow:var(--shadow-glass);transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition)}.kpi-tile:before{content:"";position:absolute;top:-40%;right:-20%;width:60%;height:120%;background:radial-gradient(circle,color-mix(in srgb,var(--primary) 30%,transparent),transparent 70%);pointer-events:none}.kpi-tile:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--primary) 60%,var(--border));box-shadow:var(--shadow-lg),0 0 40px color-mix(in srgb,var(--primary) 22%,transparent)}.kpi-tile .kpi-val{position:relative;font-size:30px;font-weight:800;line-height:1.1;background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:.5px}.kpi-tile .kpi-label{position:relative;color:var(--text-secondary);font-size:13px;margin-top:6px}.kpi-tile .kpi-sub{position:relative;color:var(--text-muted);font-size:12px;margin-top:4px}.section-head{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700;color:var(--text-primary);margin:0 0 16px}.section-head:before{content:"";width:4px;height:16px;border-radius:4px;background:var(--gradient-brand);box-shadow:0 0 10px var(--primary)}.hero{position:relative;overflow:hidden;padding:26px 28px;border-radius:var(--radius-lg);background:var(--hero-aurora),linear-gradient(160deg,color-mix(in srgb,var(--bg-elevated) 70%,transparent),color-mix(in srgb,var(--bg-card) 55%,transparent));border:1px solid color-mix(in srgb,var(--primary) 30%,var(--border));box-shadow:var(--shadow-glass)}.hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.08),transparent 30%)}.hero h1{position:relative;margin:0;font-size:26px;font-weight:800;letter-spacing:.5px;background:var(--gradient-brand);-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 22px color-mix(in srgb,var(--primary) 30%,transparent))}.hero p{position:relative;margin:6px 0 0;color:var(--text-secondary);font-size:13px}.hero .hero-actions{position:relative;margin-top:16px;display:flex;gap:10px;flex-wrap:wrap}.chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:11px;font-weight:600;background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary-light);border:1px solid color-mix(in srgb,var(--primary) 25%,transparent)}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}@media(max-width:1280px){.grid-5{grid-template-columns:repeat(3,1fr)}}@media(max-width:1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr}}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{text-align:left;padding:13px 16px;font-size:11px;color:var(--primary-light);font-weight:700;text-transform:uppercase;letter-spacing:.9px;border-bottom:2px solid color-mix(in srgb,var(--primary) 35%,transparent);background:color-mix(in srgb,var(--primary) 12%,transparent);border-top-left-radius:10px;border-top-right-radius:10px}.data-table td{padding:12px 16px;border-bottom:1px solid var(--border-light);color:var(--text-primary)}.data-table tbody tr{transition:background .18s}.data-table tbody tr:hover td{background:var(--bg-hover)}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);background:color-mix(in srgb,var(--bg-card) 70%,transparent);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition);white-space:nowrap}.btn:hover{background:var(--bg-elevated);border-color:var(--primary);transform:translateY(-1px)}.btn:active{transform:scale(.97)}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn:disabled:hover{background:color-mix(in srgb,var(--bg-card) 70%,transparent);border-color:var(--border)}.btn-primary{position:relative;overflow:hidden;background:var(--gradient-brand);border:none;color:#fff;font-weight:600;box-shadow:0 8px 24px color-mix(in srgb,var(--primary) 45%,transparent)}.btn-primary:after{content:"";position:absolute;top:0;left:-130%;width:70%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);transform:skew(-20deg);transition:left .6s var(--ease-spring)}.btn-primary:hover{transform:translateY(-2px);filter:brightness(1.08);box-shadow:0 12px 34px color-mix(in srgb,var(--primary) 60%,transparent)}.btn-primary:hover:after{left:140%}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary:disabled:hover{transform:none;filter:none}.btn-primary:disabled:after{display:none}.btn-danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 25%,transparent)}.btn-danger:hover{background:var(--danger-bg)}.btn-sm{padding:5px 12px;font-size:12px;border-radius:8px}.btn-xs{padding:3px 9px;font-size:11px;border-radius:6px}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.input,select.input,textarea.input{width:100%;padding:9px 14px;background:var(--bg-primary);background:color-mix(in srgb,var(--bg-primary) 60%,transparent);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:13px;transition:all var(--transition);font-family:inherit;box-sizing:border-box}.input:focus,select.input:focus,textarea.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent),0 0 18px color-mix(in srgb,var(--primary) 18%,transparent)}.input::placeholder{color:var(--text-disabled)}select.input option{background:var(--bg-card);color:var(--text-primary)}.badge{display:inline-block;padding:2px 10px;border-radius:8px;font-size:11px;font-weight:600;line-height:1.6}.badge-success{background:var(--success-bg);color:var(--success)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-info{background:color-mix(in srgb,var(--info) 16%,transparent);color:var(--info)}.badge-neutral{background:#ffffff0f;color:var(--text-muted)}.stat-positive{color:var(--success);font-weight:600}.stat-negative{color:var(--danger);font-weight:600}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state .icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state p{font-size:14px}.loading{display:flex;align-items:center;justify-content:center;padding:60px;color:var(--text-muted);gap:10px;font-size:14px}.loading-sm,.empty-state-sm{text-align:center;padding:24px;color:var(--text-secondary);font-size:13px}.spinner{width:22px;height:22px;border:2.5px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.test-result{margin-top:10px;padding:10px 14px;background:var(--bg-elevated);border-radius:8px;font-size:13px;color:var(--success);border:1px solid var(--border)}.theme-switcher{position:relative;display:flex;align-items:center}.theme-panel{position:absolute;top:46px;right:0;z-index:300;min-width:210px;padding:10px;background:var(--bg-elevated);background:color-mix(in srgb,var(--bg-elevated) 92%,transparent);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);display:flex;flex-direction:column;gap:4px}.theme-panel-title{font-size:11px;color:var(--text-muted);padding:2px 8px 6px;text-transform:uppercase;letter-spacing:1px}.theme-panel-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;background:none;cursor:pointer;border-radius:8px;color:var(--text-secondary);font-size:13px;transition:all .15s}.theme-panel-item:hover{background:var(--bg-hover);color:var(--text-primary)}.theme-panel-item.active{background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary-light)}.theme-panel-dot{width:16px;height:16px;border-radius:50%;flex-shrink:0;box-shadow:0 0 8px color-mix(in srgb,var(--primary) 40%,transparent)}.theme-panel-label{white-space:nowrap}.mobile-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:190;background:#0000008c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.mobile-tabbar{display:none;position:fixed;left:0;right:0;bottom:0;z-index:180;height:calc(58px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--bg-secondary);background:color-mix(in srgb,var(--bg-secondary) 92%,transparent);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%);border-top:1px solid var(--border);grid-template-columns:repeat(5,1fr);align-items:stretch;box-shadow:0 -8px 30px #0006;animation:tabbarUp .45s var(--transition) both}@keyframes tabbarUp{0%{transform:translateY(100%)}to{transform:none}}.mobile-tabbar .mtab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-muted);text-decoration:none;position:relative;transition:color .2s,transform .2s;-webkit-tap-highlight-color:transparent}.mobile-tabbar .mtab:active{transform:scale(.9)}.mobile-tabbar .mtab-icon{display:flex;align-items:center;justify-content:center;transition:transform .25s}.mobile-tabbar .mtab-label{font-size:11px;font-weight:600;letter-spacing:.5px}.mobile-tabbar .mtab.active{color:var(--primary)}.mobile-tabbar .mtab.active .mtab-icon{transform:translateY(-2px) scale(1.12);filter:drop-shadow(0 0 8px var(--primary))}.mobile-tabbar .mtab.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:26px;height:3px;border-radius:0 0 3px 3px;background:var(--primary);box-shadow:0 0 10px var(--primary);animation:tabIndicator .3s var(--transition) both}@keyframes tabIndicator{0%{width:0;opacity:0}to{width:26px;opacity:1}}.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s var(--transition),transform .6s var(--transition);will-change:opacity,transform}.reveal.reveal-in{opacity:1;transform:none}.btn,.topbar-btn,.mtab,.nav-item,.collapse-btn,.theme-dot-btn,.theme-panel-item{position:relative;overflow:hidden}.ripple{position:absolute;border-radius:50%;transform:scale(0);background:radial-gradient(circle,color-mix(in srgb,var(--primary) 55%,white) 0%,transparent 70%);pointer-events:none;animation:rippleAnim .6s ease-out}@keyframes rippleAnim{to{transform:scale(2.6);opacity:0}}.app-footer{margin-top:32px;padding:18px 24px calc(18px + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg-elevated);background:color-mix(in srgb,var(--bg-elevated) 55%,transparent);text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.app-footer .beian{color:var(--text-secondary);text-decoration:none;letter-spacing:.5px;transition:color .2s}.app-footer .beian:hover{color:var(--primary);text-shadow:0 0 10px color-mix(in srgb,var(--primary) 40%,transparent)}.app-footer .copyright{color:var(--text-disabled)}.echarts,.chart{width:100%}.app-root,.sidebar,.main-wrapper,.topbar,.card,.btn,.input,.data-table th,.data-table td{transition:background .5s ease,border-color .5s ease,color .5s ease,box-shadow .5s ease}@media(max-width:1100px){.topbar{padding:0 16px;padding-top:env(safe-area-inset-top)}.page-content{padding:18px}}@media(max-width:900px){.sidebar{transform:translate(-100%);width:var(--sidebar-width)!important}.sidebar.collapsed{transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0);box-shadow:0 0 50px #00000080}.main-wrapper,.main-wrapper.sidebar-collapsed{margin-left:0!important;padding-bottom:calc(58px + env(safe-area-inset-bottom))}#menuToggle{display:inline-flex}.mobile-tabbar{display:grid}.mobile-overlay.show{display:block}.clock,.user-name,.theme-indicator{display:none}}@media(max-width:560px){.topbar{padding:0 12px;padding-top:env(safe-area-inset-top)}.page-content,.card{padding:14px}.page-header h1{font-size:19px}.market-status{display:none}.app-footer{padding:14px 12px calc(14px + env(safe-area-inset-bottom))}.data-table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}}.floating-orbs{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.floating-orbs:before,.floating-orbs:after{content:"";position:absolute;border-radius:50%;filter:blur(80px);opacity:.18;animation:orbFloat 18s ease-in-out infinite}.floating-orbs:before{width:500px;height:500px;background:radial-gradient(circle,var(--primary),transparent 70%);top:-15%;left:-10%;animation-delay:0s}.floating-orbs:after{width:400px;height:400px;background:radial-gradient(circle,var(--accent),transparent 70%);bottom:-10%;right:-8%;animation-delay:-9s}@keyframes orbFloat{0%,to{transform:translate(0) scale(1)}25%{transform:translate(8%,6%) scale(1.12)}50%{transform:translate(-3%,10%) scale(.94)}75%{transform:translate(5%,-5%) scale(1.08)}}.border-glow{position:relative}.border-glow:before{content:"";position:absolute;top:-1.5px;right:-1.5px;bottom:-1.5px;left:-1.5px;border-radius:inherit;z-index:-1;background:linear-gradient(135deg,var(--primary),var(--accent),var(--primary-light),var(--primary),var(--accent));background-size:400% 400%;animation:borderShimmer 3s ease-in-out infinite;-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;padding:1.5px}@keyframes borderShimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.pulse-dot-live{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--success);box-shadow:0 0 6px var(--success),0 0 16px var(--success),0 0 30px color-mix(in srgb,var(--success) 40%,transparent);animation:pulseLive 1.5s ease-in-out infinite;margin-right:6px;vertical-align:middle}@keyframes pulseLive{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.4)}}.pulse-dot-hot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--danger);box-shadow:0 0 6px var(--danger),0 0 16px var(--danger);animation:pulseLive 1s ease-in-out infinite;margin-right:6px;vertical-align:middle}.text-neon{background:linear-gradient(135deg,var(--primary),var(--accent),var(--primary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 18px color-mix(in srgb,var(--primary) 40%,transparent));animation:neonPulse 3s ease-in-out infinite}@keyframes neonPulse{0%,to{filter:drop-shadow(0 0 12px color-mix(in srgb,var(--primary) 30%,transparent))}50%{filter:drop-shadow(0 0 28px color-mix(in srgb,var(--primary) 60%,transparent))}}.card-tilt{transition:transform .15s ease-out,box-shadow var(--transition);transform-style:preserve-3d;perspective:800px}.card-tilt:hover{transform:translateY(-4px) rotateX(1deg) rotateY(-.5deg);box-shadow:var(--shadow-lg),0 0 50px color-mix(in srgb,var(--primary) 15%,transparent)}.skeleton{background:linear-gradient(110deg,var(--bg-card) 30%,var(--bg-elevated) 50%,var(--bg-card) 70%);background-size:200% 100%;animation:skeletonShimmer 1.6s ease-in-out infinite;border-radius:8px}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.num-roll{display:inline-block;animation:numRollIn .6s var(--ease-spring) both}@keyframes numRollIn{0%{opacity:0;transform:translateY(20px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.divider-glow{width:100%;height:1px;border:none;margin:20px 0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--primary) 45%,transparent),var(--primary),color-mix(in srgb,var(--accent) 45%,transparent),transparent)}.glass-panel{background:color-mix(in srgb,var(--bg-elevated) 55%,transparent);backdrop-filter:blur(24px) saturate(160%);-webkit-backdrop-filter:blur(24px) saturate(160%);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-glass)}.tab-switch{position:relative}.tab-switch:after{content:"";position:absolute;bottom:0;height:2px;border-radius:2px;background:var(--gradient-brand);transition:left .35s var(--ease-spring),width .35s var(--ease-spring);box-shadow:0 0 12px var(--primary)}.data-table tbody tr{transition:all .25s var(--transition);border-radius:8px}.data-table tbody tr:hover{transform:scale(1.008);box-shadow:0 4px 20px color-mix(in srgb,var(--primary) 10%,transparent)}.data-table tbody tr:hover td:first-child{border-top-left-radius:8px;border-bottom-left-radius:8px}.data-table tbody tr:hover td:last-child{border-top-right-radius:8px;border-bottom-right-radius:8px}.kpi-tile{animation:kpiBreath 6s ease-in-out infinite}@keyframes kpiBreath{0%,to{box-shadow:var(--shadow-glass)}50%{box-shadow:var(--shadow-glass),0 0 28px color-mix(in srgb,var(--primary) 16%,transparent)}}.status-bar{height:3px;border-radius:2px;position:relative;overflow:hidden}.status-bar:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);animation:statusBarScan 2s ease-in-out infinite}@keyframes statusBarScan{0%{left:-100%}to{left:100%}}@keyframes pageEnter{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.page-content{animation:pageEnter .55s var(--ease-spring) both}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.float-gentle{animation:gentleFloat 4s ease-in-out infinite}.gloss-sweep{position:relative;overflow:hidden}.gloss-sweep:after{content:"";position:absolute;top:-50%;left:-80%;width:40%;height:200%;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.08) 50%,transparent 60%);transform:skew(-15deg);transition:left .6s ease}.gloss-sweep:hover:after{left:120%}.vignette-glow{position:relative}.vignette-glow:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 60px color-mix(in srgb,var(--primary) 12%,transparent);transition:box-shadow .8s ease}.vignette-glow:hover:after{box-shadow:inset 0 0 80px color-mix(in srgb,var(--primary) 28%,transparent)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}body:before{animation:none}.floating-orbs:before,.floating-orbs:after{animation:none}.kpi-tile,.page-content{animation:none}}.nav-item{animation:navItemIn .32s var(--transition) both}@keyframes navItemIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:none}}.tabbar{display:flex;gap:8px;position:relative}.tabbar:after{content:"";position:absolute;bottom:0;left:0;height:2.5px;border-radius:2px;background:var(--gradient-brand);box-shadow:0 0 14px var(--primary);transition:left .3s var(--ease-spring),width .3s var(--ease-spring);pointer-events:none}.stats-dashboard>*:nth-child(1){animation-delay:0s}.stats-dashboard>*:nth-child(2){animation-delay:.06s}.stats-dashboard>*:nth-child(3){animation-delay:.12s}.stats-dashboard>*:nth-child(4){animation-delay:.18s}.stats-dashboard>*{animation:statSlideIn .5s var(--ease-spring) both}@keyframes statSlideIn{0%{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.page-header h1{animation:headerSlideIn .7s var(--ease-spring) both}@keyframes headerSlideIn{0%{opacity:0;transform:translate(-20px);filter:blur(6px)}to{opacity:1;transform:translate(0);filter:blur(0)}}.filter-bar,.toolbar{animation:toolbarIn .5s var(--ease-spring) both}@keyframes toolbarIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.modal{animation:modalFadeIn .28s var(--transition) both}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-card{animation:modalSlideUp .35s var(--ease-spring) both}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(40px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.van-toast{backdrop-filter:blur(12px) saturate(140%)!important;-webkit-backdrop-filter:blur(12px) saturate(140%)!important}select.input{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23999' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.empty-state .empty-icon{animation:gentleFloat 3s ease-in-out infinite;display:inline-block}.signal-grid>*,.recommend-grid>*{animation:cardGridIn .5s var(--ease-spring) both}.signal-grid>*:nth-child(1),.recommend-grid>*:nth-child(1){animation-delay:.02s}.signal-grid>*:nth-child(2),.recommend-grid>*:nth-child(2){animation-delay:.07s}.signal-grid>*:nth-child(3),.recommend-grid>*:nth-child(3){animation-delay:.12s}.signal-grid>*:nth-child(4),.recommend-grid>*:nth-child(4){animation-delay:.17s}.signal-grid>*:nth-child(5),.recommend-grid>*:nth-child(5){animation-delay:.22s}.signal-grid>*:nth-child(6),.recommend-grid>*:nth-child(6){animation-delay:.27s}@keyframes cardGridIn{0%{opacity:0;transform:translateY(24px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}.logo-icon svg{animation:logoBreath 4s ease-in-out infinite}@keyframes logoBreath{0%,to{filter:drop-shadow(0 0 6px color-mix(in srgb,var(--primary) 50%,transparent))}50%{filter:drop-shadow(0 0 18px color-mix(in srgb,var(--primary) 80%,transparent))}}.app-footer{position:relative}.app-footer:before{content:"";position:absolute;top:0;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,var(--primary),transparent);opacity:.3}.scan-line{position:relative;overflow:hidden}.scan-line:before{content:"";position:absolute;top:0;left:0;right:0;height:1.5px;z-index:5;background:linear-gradient(90deg,transparent,var(--primary),var(--accent),var(--primary),transparent);background-size:200% 100%;animation:scanLineSweep 3s ease-in-out infinite;pointer-events:none}@keyframes scanLineSweep{0%,to{background-position:-200% 0}50%{background-position:200% 0}}.holographic{position:relative;overflow:hidden}.holographic:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;z-index:2;pointer-events:none;border-radius:inherit;background:conic-gradient(from 0deg at 50% 50%,transparent,color-mix(in srgb,var(--primary) 10%,transparent),transparent,color-mix(in srgb,var(--accent) 10%,transparent),transparent,color-mix(in srgb,var(--primary-light) 8%,transparent),transparent);transition:opacity .5s;animation:hologramSpin 4s linear infinite paused}.holographic:hover:before{opacity:1;animation-play-state:running}@keyframes hologramSpin{to{transform:rotate(360deg)}}.glitch-text{position:relative;display:inline-block}.glitch-text:hover{animation:glitchSkew .3s ease-in-out}@keyframes glitchSkew{0%{transform:skew(0)}20%{transform:skew(-3deg)}40%{transform:skew(2deg)}60%{transform:skew(-1.5deg)}80%{transform:skew(.8deg)}to{transform:skew(0)}}.glitch-text:before,.glitch-text:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;opacity:0}.glitch-text:before{color:color-mix(in srgb,var(--primary) 60%,var(--success));animation:glitchClip1 .3s ease-in-out infinite paused}.glitch-text:after{color:color-mix(in srgb,var(--accent) 60%,var(--danger));animation:glitchClip2 .3s ease-in-out infinite paused}.glitch-text:hover:before,.glitch-text:hover:after{opacity:1}.glitch-text:hover:before{animation-play-state:running}.glitch-text:hover:after{animation-play-state:running}@keyframes glitchClip1{0%{clip-path:inset(0 0 80% 0);transform:translate(-2px,1px)}25%{clip-path:inset(30% 0 20% 0);transform:translate(2px,-1px)}50%{clip-path:inset(60% 0 10% 0);transform:translate(-1px)}75%{clip-path:inset(20% 0 40% 0);transform:translate(1px,1px)}to{clip-path:inset(0 0 80% 0);transform:translate(-2px,1px)}}@keyframes glitchClip2{0%{clip-path:inset(10% 0 60% 0);transform:translate(1px,-1px)}25%{clip-path:inset(50% 0 30% 0);transform:translate(-2px)}50%{clip-path:inset(80% 0 5% 0);transform:translateY(1px)}75%{clip-path:inset(40% 0 10% 0);transform:translate(-1px,-1px)}to{clip-path:inset(10% 0 60% 0);transform:translate(1px,-1px)}}.magnetic{transition:transform .15s ease-out,box-shadow var(--transition)}.pulse-ring{position:relative}.pulse-ring:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border-radius:inherit;z-index:-1;border:2px solid color-mix(in srgb,var(--primary) 50%,transparent);animation:pulseRingExpand 2s ease-out infinite}@keyframes pulseRingExpand{0%{transform:scale(1);opacity:1}to{transform:scale(1.25);opacity:0}}.energy-bar{position:relative;overflow:hidden}.energy-bar:after{content:"";position:absolute;bottom:0;left:0;height:2px;width:30%;background:linear-gradient(90deg,transparent,var(--primary),var(--accent),transparent);border-radius:2px;animation:energyBarSlide 2.5s ease-in-out infinite;pointer-events:none}@keyframes energyBarSlide{0%{left:-30%;opacity:0}20%{opacity:1}80%{opacity:1}to{left:100%;opacity:0}}.typewriter-cursor{display:inline-block;width:2px;height:1em;vertical-align:text-bottom;background:var(--primary);margin-left:2px;animation:cursorBlink .8s step-end infinite;box-shadow:0 0 8px var(--primary)}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}.glass-deep{background:linear-gradient(160deg,color-mix(in srgb,var(--bg-elevated) 58%,transparent),color-mix(in srgb,var(--bg-card) 38%,transparent));backdrop-filter:blur(32px) saturate(180%);-webkit-backdrop-filter:blur(32px) saturate(180%);border:1px solid color-mix(in srgb,var(--primary) 22%,var(--border));box-shadow:0 20px 60px #00000073,0 2px #ffffff0f inset,0 0 40px color-mix(in srgb,var(--primary) 12%,transparent)}.data-rain{position:relative}.data-rain:before{content:"01010101 11001100 10101010 00110011 01010101 11001100";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;display:flex;align-items:center;justify-content:center;font-family:SF Mono,Consolas,monospace;font-size:8px;line-height:3;color:color-mix(in srgb,var(--primary) 4%,transparent);opacity:.5;white-space:pre-wrap;word-break:break-all;letter-spacing:2px;-webkit-user-select:none;user-select:none;overflow:hidden;padding:16px;-webkit-mask-image:radial-gradient(circle at 50% 50%,black 30%,transparent 80%);mask-image:radial-gradient(circle at 50% 50%,black 30%,transparent 80%)}.corner-glow{position:relative}.corner-glow:before,.corner-glow:after{content:"";position:absolute;width:12px;height:12px;pointer-events:none;z-index:2;border-radius:50%}.corner-glow:before{top:-3px;left:-3px;background:var(--primary);box-shadow:0 0 12px var(--primary),0 0 24px color-mix(in srgb,var(--primary) 50%,transparent);animation:cornerPulse 2s ease-in-out infinite}.corner-glow:after{bottom:-3px;right:-3px;background:var(--accent);box-shadow:0 0 12px var(--accent),0 0 24px color-mix(in srgb,var(--accent) 50%,transparent);animation:cornerPulse 2s ease-in-out .8s infinite}@keyframes cornerPulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.8);opacity:1}}.progress-glow{position:relative;height:6px;border-radius:3px;background:var(--bg-elevated);overflow:hidden}.progress-glow .progress-fill{height:100%;border-radius:3px;position:relative;background:linear-gradient(90deg,var(--primary),var(--accent));box-shadow:0 0 10px color-mix(in srgb,var(--primary) 50%,transparent);transition:width .8s var(--ease-spring)}.progress-glow .progress-fill:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:progressShimmer 2s ease-in-out infinite}@keyframes progressShimmer{0%{left:-100%}to{left:200%}}.count-up{display:inline-block;animation:countUpPop .6s var(--ease-spring) both}.card-sparkle:after{content:"✦ ✦ ✦";position:absolute;bottom:10px;right:14px;font-size:11px;color:color-mix(in srgb,var(--primary) 50%,transparent);opacity:0;pointer-events:none;z-index:2;transition:opacity .4s;letter-spacing:4px}.card-sparkle:hover:after{opacity:1}.nav-item.router-link-active:before{content:"";position:absolute;right:0;top:8px;bottom:8px;width:2px;border-radius:2px;background:linear-gradient(180deg,transparent,var(--primary),var(--accent),transparent);animation:navTrail 2s ease-in-out infinite}@keyframes navTrail{0%,to{opacity:.3;height:50%;top:25%}50%{opacity:.9;height:80%;top:10%}}.data-table tbody tr:nth-child(2n){background:color-mix(in srgb,var(--primary) 3%,transparent)}.data-table tbody tr:nth-child(odd){background:transparent}.input.search-input:focus,.sidebar-search:focus-within{border-color:var(--primary)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent),0 0 24px color-mix(in srgb,var(--primary) 20%,transparent)!important;transform:translateY(-1px)}.modal-backdrop{background:#0009;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.badge.badge-glow{box-shadow:0 0 12px color-mix(in srgb,var(--success) 45%,transparent);animation:badgeGlowPulse 2.5s ease-in-out infinite}@keyframes badgeGlowPulse{0%,to{box-shadow:0 0 8px color-mix(in srgb,var(--success) 30%,transparent)}50%{box-shadow:0 0 18px color-mix(in srgb,var(--success) 60%,transparent)}}.card:active{transform:scale(.985);transition:transform .1s ease}.section-desc{font-size:13px;color:var(--text-muted);margin-bottom:16px;line-height:1.5;border-left:3px solid color-mix(in srgb,var(--primary) 40%,transparent);padding-left:12px}.ring-gauge{position:relative;width:60px;height:60px;display:inline-block}.ring-gauge svg{transform:rotate(-90deg)}.ring-gauge circle{fill:none;stroke-width:5;transition:stroke-dashoffset .8s var(--ease-spring)}.ring-gauge .rg-bg{stroke:var(--bg-elevated)}.ring-gauge .rg-fill{stroke:url(#rgGrad);stroke-linecap:round;filter:drop-shadow(0 0 6px var(--primary))}.ring-gauge .rg-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--text-primary)}.toggle{position:relative;display:inline-block;width:44px;height:24px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;right:0;bottom:0;left:0;cursor:pointer;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;transition:all .3s var(--transition)}.toggle-slider:before{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--text-muted);transition:all .3s var(--ease-spring)}.toggle input:checked+.toggle-slider{background:var(--gradient-brand);border-color:transparent;box-shadow:0 0 16px color-mix(in srgb,var(--primary) 55%,transparent)}.toggle input:checked+.toggle-slider:before{transform:translate(20px);background:#fff;box-shadow:0 0 8px #fff9}.particle-hover{position:relative}.particle-hover:before,.particle-hover:after{content:"";position:absolute;width:4px;height:4px;border-radius:50%;background:var(--primary);pointer-events:none;z-index:1;opacity:0;transition:all .5s var(--ease-spring);box-shadow:0 0 8px var(--primary)}.particle-hover:before{top:8px;right:12px}.particle-hover:after{bottom:8px;left:12px;transition-delay:.08s}.particle-hover:hover:before{opacity:1;top:4px;right:8px}.particle-hover:hover:after{opacity:1;bottom:4px;left:8px}#starfield-canvas{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.6}#cursor-glow{position:fixed;pointer-events:none;z-index:9999;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--primary) 8%,transparent),transparent 70%);transform:translate(-50%,-50%);transition:opacity .3s;will-change:left,top}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;padding-right:24px}.data-table th.sortable:hover{color:var(--primary-light)}.data-table th.sortable:after{content:"↕";position:absolute;right:8px;font-size:10px;opacity:.4}.data-table th.sortable.asc:after{content:"↑";opacity:1;color:var(--primary-light)}.data-table th.sortable.desc:after{content:"↓";opacity:1;color:var(--primary-light)}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2100;background:#0000008c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.confirm-dialog{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 30px;min-width:340px;max-width:90vw;box-shadow:0 20px 60px #00000080;animation:modalSlideUp .3s var(--ease-spring) both}.confirm-dialog h4{margin:0 0 10px;font-size:17px;color:var(--text-primary)}.confirm-dialog p{margin:0 0 22px;font-size:13px;color:var(--text-secondary);line-height:1.6}.confirm-dialog .confirm-actions{display:flex;gap:10px;justify-content:flex-end}.van-toast{bottom:calc(80px + env(safe-area-inset-bottom))!important}@media(min-width:901px){.van-toast{bottom:30px!important}}.code-block{background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;padding:14px 18px;font-family:SF Mono,Consolas,monospace;font-size:12px;color:var(--text-secondary);line-height:1.7;overflow-x:auto;white-space:pre-wrap;position:relative}.code-block:before{content:"$ ";color:var(--primary-light);font-weight:600}.tooltip-wrap{position:relative;display:inline-flex}.tooltip-wrap .tooltip-text{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);background:var(--bg-elevated);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-size:11px;white-space:nowrap;color:var(--text-primary);box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .2s;z-index:500}.tooltip-wrap:hover .tooltip-text{opacity:1}@keyframes successPop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}.icon-success-anim{animation:successPop .4s var(--ease-spring) both}@keyframes highlightFlash{0%{background:color-mix(in srgb,var(--primary) 20%,transparent)}to{background:transparent}}.row-highlight{animation:highlightFlash 1.5s ease-out}.ql-page{max-width:1240px;margin:0 auto;padding:8px 4px 40px}@media(max-width:768px){.ql-page{gap:12px}.ql-page .card{padding:14px}.ql-page .card-title{font-size:15px}.ql-page .meta-line{font-size:11px}.ql-page .stat-row{gap:14px 18px}.ql-page .stat-value{font-size:18px}.ql-page .stat-label{font-size:11px}.ql-page .bar-row{grid-template-columns:92px 1fr 42px;gap:6px}.ql-page .bar-name{font-size:12px}.ql-page .bar-val{font-size:11px}.ql-page .data-table{display:block;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch}.ql-page .data-table th,.ql-page .data-table td{padding:7px 8px;font-size:12px}.ql-page .evt{max-width:180px}}@media(max-width:480px){.ql-page .stat-row{gap:12px 14px}.ql-page .stat-value{font-size:16px}.ql-page .bar-row{grid-template-columns:76px 1fr 38px}.ql-page .card{padding:12px}}
