.login-page[data-v-150bad23]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0d1117,#161b22);padding:20px}.login-card[data-v-150bad23]{width:100%;max-width:380px;background:var(--card-bg, #161b22);border:1px solid var(--border, #30363d);border-radius:12px;padding:40px 32px;box-shadow:0 8px 32px #0006}.login-logo[data-v-150bad23]{font-size:48px;text-align:center;margin-bottom:8px}.login-title[data-v-150bad23]{text-align:center;font-size:22px;margin-bottom:4px;color:var(--text, #e6edf3)}.login-sub[data-v-150bad23]{text-align:center;color:var(--text-dim, #8b949e);font-size:13px;margin-bottom:28px}.login-form[data-v-150bad23]{display:flex;flex-direction:column;gap:16px}.login-field label[data-v-150bad23]{display:block;margin-bottom:6px;font-size:13px;color:var(--text-dim, #8b949e)}.login-field .input[data-v-150bad23]{width:100%;padding:10px 12px;border-radius:6px;border:1px solid var(--border, #30363d);background:var(--bg, #0d1117);color:var(--text, #e6edf3);font-size:14px;box-sizing:border-box}.login-field .input[data-v-150bad23]:focus{outline:none;border-color:var(--primary, #238636)}.login-remember[data-v-150bad23]{display:flex;align-items:center}.remember-label[data-v-150bad23]{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-dim, #8b949e);cursor:pointer}.login-error[data-v-150bad23]{background:#f851491a;border:1px solid rgba(248,81,73,.3);color:#f85149;padding:8px 12px;border-radius:6px;font-size:13px}.login-btn[data-v-150bad23]{padding:12px;font-size:15px;width:100%}.login-btn[data-v-150bad23]:disabled{opacity:.6;cursor:not-allowed}.login-hint[data-v-150bad23]{text-align:center;color:#484f58;font-size:12px;margin-top:20px}.dialog-overlay[data-v-bb6699cb]{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;z-index:9999;display:flex;align-items:center;justify-content:center}.dialog-card[data-v-bb6699cb]{background:var(--card-bg, #161b22);border:1px solid var(--border, #30363d);border-radius:12px;width:420px;max-width:90vw;box-shadow:0 8px 32px #00000080}.dialog-header[data-v-bb6699cb]{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border, #30363d)}.dialog-header h3[data-v-bb6699cb]{margin:0;font-size:16px;color:var(--text, #e6edf3)}.dialog-close[data-v-bb6699cb]{background:none;border:none;color:#8b949e;font-size:18px;cursor:pointer}.dialog-close[data-v-bb6699cb]:hover{color:#e6edf3}.dialog-body[data-v-bb6699cb]{padding:20px}.setting-group[data-v-bb6699cb]{margin-bottom:16px}.setting-label[data-v-bb6699cb]{display:block;font-size:13px;color:#8b949e;margin-bottom:6px}.setting-row .input[data-v-bb6699cb]{width:100%;padding:10px 12px;border-radius:6px;border:1px solid var(--border, #30363d);background:var(--bg, #0d1117);color:var(--text, #e6edf3);font-size:14px;box-sizing:border-box}.setting-row .input[data-v-bb6699cb]:focus{outline:none;border-color:var(--primary, #238636)}.toast-msg[data-v-bb6699cb]{background:#2386361a;border:1px solid rgba(35,134,54,.3);color:#3fb950;padding:8px 12px;border-radius:6px;font-size:13px}.toast-msg.error[data-v-bb6699cb]{background:#f851491a;border-color:#f851494d;color:#f85149}.dialog-footer[data-v-bb6699cb]{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--border, #30363d)}.data-times[data-v-a2253209]{color:#8b949e;font-size:12px;margin-bottom:12px;display:flex;align-items:center;flex-wrap:wrap;gap:4px}.data-times .dim-val[data-v-a2253209]{color:#8b949e}.data-times .sep[data-v-a2253209]{color:#3d444d;margin:0 4px}.data-times.has-data .dim-val[data-v-a2253209]{color:#8b949e}:root{--bg: #0d1117;--bg-card: #161b22;--bg-hover: #1c2330;--border: #2d333b;--text: #e6edf3;--text-dim: #8b949e;--accent: #3b82f6;--red: #ff4d4f;--green: #52c41a;--green-bg: rgba(82, 196, 26, .12);--red-bg: rgba(255, 77, 79, .12)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}#app{min-height:100vh;display:flex;flex-direction:column}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#30363d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#484f58}.layout{display:flex;min-height:100vh}.sidebar{width:200px;flex-shrink:0;background:#010409;border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.sidebar .logo{font-size:18px;font-weight:700;padding:8px 12px 20px;color:var(--text);display:flex;align-items:center;gap:8px}.sidebar .logo span{color:var(--accent)}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:var(--text-dim);text-decoration:none;font-weight:500;transition:all .2s}.nav-item:hover{background:var(--bg-hover);color:var(--text)}.nav-item.active{background:#3b82f626;color:var(--accent)}.nav-item .icon{font-size:16px}.main{flex:1;padding:20px 24px;overflow-x:hidden}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:20px;margin-bottom:16px}.card-title{font-size:16px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}table{width:100%;border-collapse:collapse}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}th{color:var(--text-dim);font-weight:500;font-size:13px}tbody tr:hover{background:var(--bg-hover);cursor:pointer}.up{color:var(--red)}.down{color:var(--green)}.flat{color:var(--text-dim)}.badge-up{background:var(--red-bg);color:var(--red);padding:2px 8px;border-radius:4px}.badge-down{background:var(--green-bg);color:var(--green);padding:2px 8px;border-radius:4px}.btn{padding:8px 16px;border-radius:8px;border:1px solid var(--border);background:var(--bg-hover);color:var(--text);cursor:pointer;font-size:13px;transition:all .2s}.btn:hover{border-color:var(--accent)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{opacity:.9}.btn-sm{padding:4px 10px;font-size:12px}.input,.select{padding:8px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg-hover);color:var(--text);font-size:13px;outline:none}.input:focus,.select:focus{border-color:var(--accent)}.input{width:200px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px;margin-bottom:16px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:16px}.stat-card .label{color:var(--text-dim);font-size:13px}.stat-card .value{font-size:24px;font-weight:700;margin-top:4px}.loading,.empty{text-align:center;color:var(--text-dim);padding:40px}.spinner{display:inline-block;width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:16px}.pagination button{padding:6px 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-hover);color:var(--text);cursor:pointer}.pagination button:disabled{opacity:.4;cursor:not-allowed}.pagination .info{color:var(--text-dim);font-size:13px}.toolbar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.chart-container{width:100%;height:420px}@media (max-width: 1024px){.sidebar{width:60px}.sidebar .logo span,.nav-item .label{display:none}.main{padding:16px}}.eval-tip{font-size:12px;color:var(--text-dim);font-weight:400;margin-left:8px}.eval-head{display:flex;align-items:center;gap:20px;margin-bottom:16px}.eval-score-box{display:flex;flex-direction:column;align-items:center;min-width:90px}.eval-score{font-size:48px;font-weight:800;line-height:1;color:var(--text)}.eval-level{margin-top:6px;padding:3px 12px;border-radius:6px;font-size:13px;font-weight:600}.lvl-strong{background:#f59e0b33;color:#f59e0b}.lvl-neutral{background:#3b82f633;color:#3b82f6}.lvl-weak{background:#8b949e26;color:#8b949e}.eval-desc{flex:1;font-size:14px;color:var(--text-dim);line-height:1.6}.eval-dims{display:grid;grid-template-columns:1fr 1fr;gap:10px 24px;margin:16px 0}.dim-row{display:flex;align-items:center;gap:10px}.dim-label{width:64px;font-size:13px;color:var(--text-dim);flex-shrink:0}.dim-track{flex:1;height:8px;background:var(--border);border-radius:4px;overflow:hidden}.dim-fill{height:100%;border-radius:4px;transition:width .5s}.dim-score{width:30px;text-align:right;font-size:13px;font-weight:600}.eval-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}.eval-action{font-size:13px}.badge-watch{background:#8b949e26;color:#8b949e;padding:2px 8px;border-radius:4px}.eval-signals{margin:10px 0}.eval-sig-title{font-size:13px;font-weight:600;margin-bottom:8px;color:var(--text)}.eval-sig-item{padding:8px 10px;border-radius:6px;margin-bottom:6px;font-size:13px}.eval-sig-item.buy{background:#ff4d4f14;border-left:3px solid var(--red)}.eval-sig-item.sell{background:#52c41a14;border-left:3px solid var(--green)}.eval-sig-name{font-weight:600;color:var(--text);margin-right:8px}.eval-sig-desc{color:var(--text-dim)}.eval-summary{margin-top:12px;padding:10px 12px;background:var(--border);border-radius:6px;font-size:13px;color:var(--text);line-height:1.6}@media (max-width: 640px){.eval-dims{grid-template-columns:1fr}.eval-head{flex-direction:column;text-align:center;gap:12px}}
