:root{--bg-dark:#0f172a;--bg-card:#1e293bb3;--border-color:#ffffff14;--text-primary:#f8fafc;--text-secondary:#94a3b8;--accent-blue:#38bdf8;--accent-blue-gradient:linear-gradient(135deg, #38bdf8, #0284c7);--accent-green:#10b981;--accent-red:#f43f5e;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--transition-fast:.2s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-dark);color:var(--text-primary);background-image:radial-gradient(at 0 0,#38bdf814 0,#0000 50%),radial-gradient(at 100% 100%,#10b9810f 0,#0000 50%);background-attachment:fixed;min-height:100vh;line-height:1.5}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.app-container{flex-direction:column;gap:20px;width:100%;margin:0;padding:20px;display:flex}.app-header{background:var(--bg-card);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);border-radius:12px;justify-content:space-between;align-items:center;padding:15px 25px;display:flex;box-shadow:0 4px 30px #0006}.logo-area{align-items:center;gap:10px;display:flex}.logo-icon{width:28px;height:28px;color:var(--accent-blue)}.logo-text{letter-spacing:-.5px;font-size:1.5rem;font-weight:700}.logo-text .highlight{color:var(--accent-blue)}.badge{color:var(--accent-blue);background:#38bdf826;border-radius:20px;margin-left:8px;padding:2px 8px;font-size:.75rem;font-weight:600}.header-status{color:var(--text-secondary);align-items:center;gap:8px;font-size:.9rem;font-weight:500;display:flex}.page-nav{align-items:center;gap:8px;display:flex}.page-nav-btn{border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);background:#0f172a73;border-radius:6px;align-items:center;gap:6px;padding:8px 12px;font-weight:600;display:inline-flex}.page-nav-btn:hover,.page-nav-btn.active{color:var(--text-primary);background:#38bdf824;border-color:#38bdf859}.page-nav-btn svg{width:16px;height:16px}.status-indicator{border-radius:50%;width:8px;height:8px}.status-indicator.online{background-color:var(--accent-green);box-shadow:0 0 8px var(--accent-green)}.status-indicator.loading{background-color:#f59e0b;animation:1.5s infinite pulse;box-shadow:0 0 8px #f59e0b}@keyframes pulse{0%{opacity:.4}50%{opacity:1}to{opacity:.4}}.main-layout{grid-template-columns:220px 320px minmax(0,1fr);align-items:start;gap:20px;display:grid}.glass-panel{background:var(--bg-card);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);border-radius:12px;box-shadow:0 8px 32px #0000004d}.content-area{flex-direction:column;gap:20px;min-width:0;display:flex}.factor-page{flex-direction:column;gap:20px;display:flex}.factor-lab-controls{grid-template-columns:repeat(6,minmax(110px,1fr)) auto auto auto;align-items:end;gap:12px;display:grid}.factor-mining-controls{grid-template-columns:repeat(6,minmax(110px,1fr)) auto auto;align-items:end;gap:12px;display:grid}.factor-mining-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.factor-lab-grid{grid-template-columns:minmax(0,1.5fr) minmax(360px,.8fr);align-items:start;gap:20px;display:grid}.factor-lab-table tbody tr{cursor:pointer}.factor-lab-table tbody tr.selected{background:#38bdf814}.factor-name-btn{appearance:none;color:var(--text-primary);text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;gap:2px;display:flex}.factor-name-btn small,.factor-detail-key,.factor-detail-note{color:var(--text-secondary);font-size:.78rem}.factor-detail-card{position:sticky;top:20px}.factor-detail-body{flex-direction:column;gap:14px;display:flex}.factor-detail-title{font-size:1.05rem;font-weight:700}.factor-detail-body p{color:#cbd5e1;line-height:1.7}.factor-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.factor-metric-grid div,.factor-bucket{border:1px solid var(--border-color);background:#0f172a6b;border-radius:8px;padding:10px}.factor-metric-grid span,.factor-bucket span{color:var(--text-secondary);font-size:.76rem;display:block}.factor-metric-grid strong,.factor-bucket strong{margin-top:4px;display:block}.factor-buckets{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}@media (width<=1180px){.factor-lab-controls,.factor-mining-controls,.factor-mining-overview,.factor-lab-grid{grid-template-columns:1fr}.factor-detail-card{position:static}.main-layout{grid-template-columns:220px minmax(0,1fr)}.content,.content-area{grid-column:1/-1}}@media (width<=760px){.app-header{flex-direction:column;align-items:flex-start;gap:12px}.main-layout{grid-template-columns:1fr}.content,.content-area{grid-column:auto}}.card{background:var(--bg-card);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);border-radius:12px;padding:20px;box-shadow:0 8px 32px #0000004d}.sidebar,.watchlist-sidebar{background:var(--bg-card);border:1px solid var(--border-color);-webkit-backdrop-filter:blur(12px);border-radius:12px;height:fit-content;padding:24px;box-shadow:0 8px 32px #0000004d}.watchlist-sidebar{padding:18px;position:sticky;top:20px}@media (width<=1180px){.watchlist-sidebar{position:static}}.section-title{color:var(--text-primary);border-bottom:1px solid var(--border-color);align-items:center;gap:8px;margin-bottom:20px;padding-bottom:10px;font-size:1.1rem;font-weight:600;display:flex}.section-title svg{width:20px;height:20px;color:var(--accent-blue)}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:.8rem;font-weight:500}input,select{border:1px solid var(--border-color);color:var(--text-primary);font-size:.95rem;font-family:var(--font-sans);transition:var(--transition-fast);background:#0f172a99;border-radius:6px;padding:10px 12px}select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:36px}input:focus,select:focus{border-color:var(--accent-blue);outline:none;box-shadow:0 0 0 2px #38bdf833}.checkbox-group{flex-direction:row;align-items:center;gap:10px;margin-top:5px;margin-bottom:20px}.checkbox-group input[type=checkbox]{cursor:pointer;width:18px;height:18px;accent-color:var(--accent-blue)}.checkbox-label{text-transform:none;letter-spacing:0;cursor:pointer;color:var(--text-primary);font-size:.85rem}.input-with-icon{position:relative}.input-with-icon input{width:100%;padding-left:36px}.input-icon{width:16px;height:16px;color:var(--text-secondary);position:absolute;top:50%;left:12px;transform:translateY(-50%)}.divider{text-transform:uppercase;letter-spacing:1px;color:var(--accent-blue);align-items:center;gap:10px;margin:20px 0 16px;font-size:.75rem;font-weight:600;display:flex}.divider:after{content:"";background:var(--border-color);flex-grow:1;height:1px}.btn-primary{background:var(--accent-blue-gradient);color:#fff;cursor:pointer;width:100%;transition:transform var(--transition-fast), filter var(--transition-fast);border:none;border-radius:6px;justify-content:center;align-items:center;gap:8px;margin-top:10px;padding:12px;font-size:1rem;font-weight:600;display:flex}.btn-primary:hover{filter:brightness(1.1)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{cursor:not-allowed;opacity:.8;background:#475569}.btn-secondary{color:var(--accent-blue);cursor:pointer;transition:var(--transition-fast);background:#38bdf81f;border:1px solid #38bdf840;border-radius:6px;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-size:.85rem;font-weight:600;display:inline-flex}.btn-secondary:hover{background:#38bdf82e}.btn-secondary:disabled{cursor:not-allowed;opacity:.65}.btn-secondary svg,.icon-btn svg{width:15px;height:15px}.watchlist-add-btn{width:100%;margin-bottom:8px}.watchlist-refresh-btn{width:100%;margin-bottom:12px}.watchlist-panel{border:1px solid var(--border-color);background:#0f172a52;border-radius:8px;overflow:hidden}.watchlist-empty{color:var(--text-secondary);padding:12px 10px;font-size:.85rem}.watchlist-items{flex-direction:column;display:flex}.watchlist-item{cursor:pointer;transition:var(--transition-fast);border-top:1px solid #ffffff0d;grid-template-columns:minmax(0,1fr) 30px;align-items:center;gap:8px;padding:10px;display:grid;position:relative}.watchlist-item:first-child{border-top:none}.watchlist-item:hover,.watchlist-item.active{background:#38bdf814}.watchlist-item-main,.watchlist-item-sub{min-width:0}.watchlist-item-code,.watchlist-item-name{font-size:.9rem;font-weight:700}.watchlist-item-name{margin-left:4px}.watchlist-item-sub{color:var(--text-secondary);grid-column:1;font-size:.75rem}.watchlist-item-delete{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-radius:6px;grid-area:1/2/span 2;justify-content:center;align-items:center;display:inline-flex}.watchlist-item-delete:hover{color:var(--accent-red);background:#f43f5e1f}.watchlist-item-delete svg{width:15px;height:15px}.watchlist-row{border-top:1px solid #ffffff0d;grid-template-columns:1fr 34px;align-items:stretch;min-height:46px;display:grid}.watchlist-row:first-child{border-top:none}.watchlist-row.active{background:#38bdf81a}.watchlist-row.active .watchlist-select span{color:var(--accent-blue)}.watchlist-select{color:var(--text-primary);cursor:pointer;text-align:left;font-family:var(--font-sans);background:0 0;border:none;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:8px;min-width:0;padding:9px 10px;display:flex}.watchlist-select:hover{background:#38bdf814}.watchlist-select span{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:600;overflow:hidden}.watchlist-select small{color:var(--text-secondary);flex:none;font-size:.75rem}.icon-btn{color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--text-primary);background:#ffffff0f}.icon-btn.danger:hover{color:var(--accent-red)}.content{flex-direction:column;gap:20px;display:flex}.row-actions{align-items:center;gap:4px;display:flex}.toast-container{z-index:10000;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:20px;right:20px}.toast{border:1px solid #ffffff24;border-left:4px solid var(--accent-blue);opacity:0;background:#1e293bf5;border-radius:8px;width:min(360px,100vw - 40px);padding:12px 14px;transition:opacity .25s,transform .25s;transform:translateY(10px);box-shadow:0 16px 40px #00000059}.toast.visible{opacity:1;transform:translateY(0)}.toast.success{border-left-color:var(--accent-green)}.toast.info{border-left-color:var(--accent-blue)}.toast-title{margin-bottom:4px;font-weight:700}.toast-message{color:var(--text-secondary);font-size:.88rem}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:15px;display:grid}.kpi-card{background:var(--bg-card);border:1px solid var(--border-color);min-height:100px;transition:transform var(--transition-fast);border-radius:12px;flex-direction:column;justify-content:space-between;padding:16px;display:flex;box-shadow:0 4px 20px #0003}.kpi-card:hover{transform:translateY(-2px)}.kpi-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.kpi-title{color:var(--text-secondary);font-size:.8rem;font-weight:500}.kpi-icon{width:16px;height:16px;color:var(--text-secondary)}.kpi-value{color:var(--text-primary);font-size:1.6rem;font-weight:700}.text-green{color:var(--accent-red)!important}.text-red{color:var(--accent-green)!important}.text-secondary{color:var(--text-secondary)!important}.text-blue{color:var(--accent-blue)!important}.chart-section{padding:0;overflow:hidden}.chart-tabs{border-bottom:1px solid var(--border-color);background:#0f172a66;display:flex}.tab-btn{color:var(--text-secondary);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:15px 25px;font-size:.95rem;font-weight:600;display:flex}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--accent-blue);border-bottom-color:var(--accent-blue);background:#161c2d66}.tab-btn svg{width:16px;height:16px}.chart-container{width:100%;height:520px;padding:14px;position:relative;overflow:hidden}.chart-wrapper{width:100%;height:100%;min-height:480px}.stats-panel{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;padding:16px;display:grid}.stat-card{border:1px solid var(--border-color);background:#0f172a61;border-radius:8px;padding:14px}.stat-label{color:var(--text-secondary);margin-bottom:6px;font-size:.78rem}.stat-value{font-size:1.25rem;font-weight:700}.chart-pane{opacity:0;pointer-events:none;width:100%;height:100%;padding:15px;transition:opacity .25s;position:absolute}.chart-pane.active{opacity:1;pointer-events:auto}.trades-section{flex-direction:column;display:flex}.scenario-table{min-width:900px}.section-header{justify-content:space-between;align-items:center;margin-bottom:15px;display:flex}.section-header h2{align-items:center;gap:8px;font-size:1.1rem;font-weight:600;display:flex}.section-header h2 svg{width:18px;height:18px;color:var(--accent-blue)}.section-header .badge{color:var(--text-primary);border:1px solid var(--border-color);background:#ffffff14;margin:0}.table-wrapper{border:1px solid var(--border-color);background:#0f172a33;border-radius:8px;max-height:350px;overflow-y:auto}.trades-table{border-collapse:collapse;text-align:left;width:100%;font-size:.9rem}.trades-table th,.trades-table td{border-bottom:1px solid var(--border-color);padding:12px 16px}.trades-table th{color:var(--text-secondary);z-index:10;background:#0f172a80;font-weight:600;position:sticky;top:0}.trades-table tbody tr:hover{background:#ffffff05}.scenario-row{cursor:pointer;transition:background .18s,box-shadow .18s}.scenario-row.active{box-shadow:inset 3px 0 0 var(--accent-blue);background:#38bdf81f}.scenario-row.active:hover{background:#38bdf829}.rebalance-header{gap:16px}.rebalance-header>div:first-child{flex-direction:column;gap:4px;display:flex}.rebalance-header p,.rebalance-summary,.rebalance-failures{color:var(--text-secondary);font-size:.875rem}.rebalance-summary{margin:-4px 0 12px}.rebalance-failures{color:var(--accent-red);margin-top:12px}.rebalance-control-btn{width:100%;margin-top:10px}.rebalance-cancel-btn{width:100%;margin-top:8px}.single-history-btn,.rebalance-history-btn{width:100%;margin-top:8px;font-size:.8rem}.rebalance-empty-state{min-height:220px;color:var(--text-secondary);text-align:center;place-items:center;display:grid}.rebalance-progress{margin:8px 0 0;font-size:.875rem}@media (width<=640px){.rebalance-header{align-items:flex-start}}.trades-table tbody tr:last-child td{border-bottom:none}.no-data{text-align:center;color:var(--text-secondary);padding:40px!important}.badge-buy{color:var(--accent-red);background:#f43f5e26;border-radius:4px;padding:3px 8px;font-size:.75rem;font-weight:600;display:inline-block}.badge-sell{color:var(--accent-green);background:#10b98126;border-radius:4px;padding:3px 8px;font-size:.75rem;font-weight:600;display:inline-block}.signal-monitor{background:linear-gradient(135deg,#1e293bcc,#0f172acc);border:1px solid #38bdf826;box-shadow:0 4px 20px #38bdf80d}.monitor-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:12px;display:flex}.monitor-header h2{align-items:center;gap:8px;font-size:1.05rem;font-weight:600;display:flex}.monitor-icon{width:18px;height:18px;color:var(--accent-blue)}.monitor-grid{grid-template-columns:1fr 1.2fr;gap:25px;display:grid}@media (width<=768px){.monitor-grid{grid-template-columns:1fr;gap:15px}}.monitor-item{flex-direction:column;justify-content:center;gap:12px;display:flex}.manual-position-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.manual-position-grid label{color:var(--text-secondary);flex-direction:column;gap:5px;font-size:.78rem;display:flex}.manual-position-grid input{border:1px solid var(--border-color);width:100%;min-width:0;height:34px;color:var(--text-primary);background:#0f172a8c;border-radius:6px;padding:6px 8px;font-size:.9rem}.divider-left{border-left:1px solid var(--border-color);padding-left:25px}@media (width<=768px){.divider-left{border-left:none;border-top:1px solid var(--border-color);padding-top:15px;padding-left:0}}.monitor-row{justify-content:space-between;align-items:center;display:flex}.monitor-label{color:var(--text-secondary);font-size:.85rem}.monitor-val{font-size:1.15rem;font-weight:700}.monitor-val.compact{text-align:right;font-size:.92rem}.factor-summary{background:#0f172a47;border:1px solid #38bdf82e;border-radius:8px;margin-top:8px;padding:10px}.factor-summary-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.factor-chip-row{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.factor-chip{max-width:100%;color:var(--text-secondary);background:#94a3b814;border:1px solid #94a3b833;border-radius:999px;align-items:center;gap:4px;padding:3px 7px;font-size:.72rem;display:inline-flex}.factor-link-btn,.icon-button{color:var(--accent-blue);cursor:pointer;background:#38bdf81f;border:1px solid #38bdf852;border-radius:6px;justify-content:center;align-items:center;gap:5px;padding:5px 8px;font-size:.75rem;display:inline-flex}.icon-button{width:32px;height:32px;padding:0}.trade-row.active{background:#38bdf81f;outline:1px solid #38bdf859}.badge-status{border-radius:4px;padding:3px 10px;font-size:.8rem;font-weight:600}.status-cash{color:var(--text-secondary);background:#94a3b826}.status-hold{color:var(--accent-red);background:#f43f5e26}.action-tip-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:8px;font-size:.8rem;font-weight:600}.action-advice-box{border-radius:6px;width:fit-content;margin-bottom:12px;padding:8px 15px;font-size:1.3rem;font-weight:700}.advice-wait{color:var(--text-secondary);background:#94a3b81a;border:1px solid #94a3b833}.advice-buy{color:var(--accent-red);background:#f43f5e26;border:1px solid #f43f5e4d;box-shadow:0 0 10px #f43f5e1a}.advice-sell{color:var(--accent-green);background:#10b98126;border:1px solid #10b9814d;box-shadow:0 0 10px #10b9811a}.action-details{color:var(--text-primary);flex-direction:column;gap:8px;font-size:.9rem;display:flex}.detail-line{align-items:center;gap:8px;display:flex}.detail-line svg{width:16px;height:16px}.evaluation-container{flex-direction:column;gap:20px;padding-top:10px;display:flex}.evaluation-summary-box{border:1px solid var(--border-color);text-align:center;transition:var(--transition-fast);background:#ffffff08;border-radius:8px;padding:20px}.evaluation-summary-box.usable{background:#10b9810d;border-color:#10b98133}.evaluation-summary-box.limited{background:#38bdf80d;border-color:#38bdf833}.evaluation-summary-box.unusable{background:#f43f5e0d;border-color:#f43f5e33}.eval-result-title{margin-bottom:8px;font-size:1.5rem;font-weight:700}.evaluation-summary-box.usable .eval-result-title{color:var(--accent-green)}.evaluation-summary-box.limited .eval-result-title{color:var(--accent-blue)}.evaluation-summary-box.unusable .eval-result-title{color:var(--accent-red)}.eval-result-desc{color:var(--text-secondary);font-size:.95rem}.evaluation-rules-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:15px;display:grid}.eval-rule-item{border:1px solid var(--border-color);transition:var(--transition-fast);background:#ffffff05;border-radius:8px;padding:16px}.eval-rule-item:hover{background:#ffffff0a;transform:translateY(-2px)}.eval-rule-header{align-items:center;gap:10px;margin-bottom:10px;display:flex}.eval-rule-icon{width:24px;height:24px;color:var(--text-secondary);background:#ffffff0d;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.eval-rule-icon.pass{color:var(--accent-green);background:#10b98126}.eval-rule-icon.fail{color:var(--accent-red);background:#f43f5e26}.eval-rule-title{font-size:.95rem;font-weight:600}.eval-rule-body{color:var(--text-secondary);font-size:.85rem;line-height:1.45}.eval-rule-body strong{color:var(--text-primary)}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:9999;background:#0f172ad9;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal-content{text-align:center;background:#1e293bf2;border:1px solid #ffffff26;border-radius:16px;width:420px;max-width:90%;padding:30px;animation:.3s modalFadeIn;box-shadow:0 20px 50px #0009}.factor-modal-content{text-align:left;width:680px;max-height:82vh;overflow:hidden}.factor-modal-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.factor-modal-header h3{margin-bottom:0}.factor-modal-body{max-height:62vh;margin-top:18px;overflow:auto}.factor-detail-list{gap:10px;display:grid}.factor-detail-item{border:1px solid var(--border-color);background:#0f172a59;border-radius:8px;padding:12px}.factor-detail-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.factor-detail-title{font-weight:700}.factor-detail-score{color:var(--accent-blue);white-space:nowrap;font-size:.8rem}.factor-detail-meta{color:var(--text-secondary);font-size:.82rem;line-height:1.5}@keyframes modalFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.modal-header h3{color:var(--accent-blue);margin-bottom:20px;font-size:1.3rem;font-weight:700}.spinner-container{justify-content:center;align-items:center;margin:24px 0;display:flex}.spinner{border:4px solid #38bdf826;border-top:4px solid var(--accent-blue);border-radius:50%;width:50px;height:50px;animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-body p{color:var(--text-primary);margin-bottom:12px;font-size:.95rem}.modal-body .training-hint{color:var(--text-secondary);margin-bottom:20px;font-size:.8rem}.modal-body .training-timer{color:var(--text-secondary);border-top:1px solid var(--border-color);margin-bottom:0;padding-top:15px;font-size:.9rem}.modal-body .training-timer strong{color:var(--accent-blue);font-size:1.1rem}.quant-page[data-v-3ece42be]{flex-direction:column;gap:18px;display:flex}.quant-band[data-v-3ece42be],.quant-panel[data-v-3ece42be]{border:1px solid var(--border-color);background:#1e293bb8;border-radius:8px;box-shadow:0 18px 45px #0000003d}.quant-top[data-v-3ece42be]{justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.quant-top h1[data-v-3ece42be]{font-size:1.45rem;line-height:1.2}.quant-top p[data-v-3ece42be],.quant-message[data-v-3ece42be]{color:var(--text-secondary);margin-top:4px}.quant-refresh[data-v-3ece42be]{width:auto}.quant-layout[data-v-3ece42be]{grid-template-columns:minmax(360px,440px) minmax(0,1fr);align-items:start;gap:18px;display:grid}.quant-panel[data-v-3ece42be]{padding:18px}.quant-panel-head[data-v-3ece42be],.strategy-summary[data-v-3ece42be],.modal-actions[data-v-3ece42be]{justify-content:space-between;align-items:center;gap:14px;display:flex}.quant-panel-head h2[data-v-3ece42be],.section-header h2[data-v-3ece42be]{align-items:center;gap:8px;font-size:1.05rem;display:inline-flex}.quant-panel-head svg[data-v-3ece42be],.tab-bar svg[data-v-3ece42be],.btn-primary svg[data-v-3ece42be],.btn-secondary svg[data-v-3ece42be]{width:16px;height:16px}.quant-chip[data-v-3ece42be],.status-pill[data-v-3ece42be]{border:1px solid var(--border-color);color:var(--text-secondary);white-space:nowrap;background:#0f172a85;border-radius:999px;padding:3px 9px;font-size:.76rem}.status-pill.executed[data-v-3ece42be]{color:var(--accent-green);border-color:#10b98159}.status-pill.pending[data-v-3ece42be]{color:#fbbf24;border-color:#fbbf2459}.status-pill.held[data-v-3ece42be]{color:var(--accent-green);border-color:#10b98159}.status-pill.closed[data-v-3ece42be]{color:#f87171;border-color:#f8717159}.row-closed[data-v-3ece42be]{background:#94a3b812}.row-closed td[data-v-3ece42be]{color:var(--text-secondary)}.quant-form-grid[data-v-3ece42be]{gap:10px;margin-top:12px;display:grid}.quant-form-grid.single[data-v-3ece42be]{grid-template-columns:1fr}.quant-form-grid.two[data-v-3ece42be]{grid-template-columns:repeat(2,minmax(0,1fr))}.quant-form-grid.three[data-v-3ece42be]{grid-template-columns:repeat(3,minmax(0,1fr))}.quant-form-grid.six[data-v-3ece42be]{grid-template-columns:repeat(6,minmax(110px,1fr))}.live-plan-hint[data-v-3ece42be]{color:var(--text-secondary);grid-column:1/-1;margin:-4px 0 0;font-size:.8rem}label[data-v-3ece42be]{flex-direction:column;gap:6px;margin-top:12px;display:flex}textarea[data-v-3ece42be]{resize:vertical;border:1px solid var(--border-color);min-height:72px;color:var(--text-primary);font:inherit;background:#0f172a99;border-radius:6px;padding:10px 12px}textarea[data-v-3ece42be]:focus{border-color:var(--accent-blue);outline:none;box-shadow:0 0 0 2px #38bdf833}.code-textarea[data-v-3ece42be]{min-height:150px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.82rem;line-height:1.55}.code-textarea[readonly][data-v-3ece42be]{color:#d8e0ea;background:#02061761}.prompt-btn[data-v-3ece42be]{margin-top:14px}.quant-workspace[data-v-3ece42be]{flex-direction:column;gap:18px;min-width:0;display:flex}.strategy-strip[data-v-3ece42be]{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-top:14px;display:grid}.strategy-item[data-v-3ece42be]{border:1px solid var(--border-color);color:var(--text-primary);text-align:left;cursor:pointer;background:#0f172a6b;border-radius:6px;padding:11px}.strategy-item.active[data-v-3ece42be]{background:#38bdf81f;border-color:#38bdf880}.strategy-item strong[data-v-3ece42be],.strategy-item span[data-v-3ece42be]{display:block}.strategy-item span[data-v-3ece42be],.quant-kicker[data-v-3ece42be],.metric-row span[data-v-3ece42be],.quant-dl dt[data-v-3ece42be]{color:var(--text-secondary);font-size:.8rem}.strategy-detail[data-v-3ece42be]{flex-direction:column;gap:18px;display:flex}.strategy-summary h2[data-v-3ece42be]{margin-top:2px;font-size:1.2rem}.metric-row[data-v-3ece42be]{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.metric-row.compact[data-v-3ece42be]{grid-template-columns:repeat(3,minmax(0,1fr));min-width:360px;margin-top:0}.metric-row>div[data-v-3ece42be]{border:1px solid var(--border-color);background:#0f172a73;border-radius:6px;padding:10px}.metric-row strong[data-v-3ece42be]{margin-top:4px;font-size:1rem;display:block}.quant-tree-grid[data-v-3ece42be]{grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:16px;display:grid}.quant-tree-grid h3[data-v-3ece42be]{margin-bottom:10px;font-size:.98rem}.quant-dl[data-v-3ece42be]{grid-template-columns:88px minmax(0,1fr);gap:8px 12px;display:grid}.quant-dl dd[data-v-3ece42be]{color:#d8e0ea;min-width:0}.factor-pills[data-v-3ece42be]{flex-wrap:wrap;gap:8px;display:flex}.factor-pills span[data-v-3ece42be]{background:#38bdf81c;border:1px solid #38bdf83d;border-radius:999px;padding:6px 9px;font-size:.82rem}.strategy-review[data-v-3ece42be]{flex-direction:column;gap:16px;display:flex}.strategy-review .quant-panel-head[data-v-3ece42be]{margin-bottom:2px}.strategy-review h3[data-v-3ece42be]{color:var(--text-primary);margin-bottom:10px;font-size:.95rem}.review-combination-flow[data-v-3ece42be]{grid-template-columns:repeat(4,minmax(0,1fr)) auto;align-items:stretch;gap:10px;display:grid}.review-step[data-v-3ece42be]{border:1px solid var(--border-color);background:#0f172a80;border-radius:8px;align-items:flex-start;gap:10px;min-width:0;padding:12px;display:flex}.review-step-idx[data-v-3ece42be]{color:#7dd3fc;background:#38bdf829;border:1px solid #38bdf866;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:.72rem;font-weight:700;display:inline-flex}.review-step strong[data-v-3ece42be],.review-step small[data-v-3ece42be]{display:block}.review-step strong[data-v-3ece42be]{font-size:.88rem}.review-step small[data-v-3ece42be]{color:var(--text-secondary);margin-top:4px;font-size:.76rem;line-height:1.45}.review-arrow[data-v-3ece42be]{color:#64748b;align-self:center;font-size:1.1rem}.review-grid[data-v-3ece42be]{grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr);align-items:start;gap:16px;display:grid}.review-left[data-v-3ece42be],.review-right[data-v-3ece42be]{min-width:0}.review-weight-chart[data-v-3ece42be]{border:1px solid var(--border-color);background:#0f172a40;border-radius:6px;height:360px}.review-hint[data-v-3ece42be]{color:var(--text-secondary);margin:10px 0 0;font-size:.78rem}.review-table-wrap[data-v-3ece42be]{max-height:360px}.review-table td[data-v-3ece42be]:first-child{color:var(--text-secondary)}.review-expression[data-v-3ece42be]{color:#94a3b8;text-overflow:ellipsis;white-space:nowrap;max-width:220px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.76rem;overflow:hidden}.review-meta[data-v-3ece42be]{padding-top:2px}.review-dl[data-v-3ece42be]{grid-template-columns:88px minmax(0,1fr)}@media (width<=1180px){.review-combination-flow[data-v-3ece42be]{grid-template-columns:repeat(2,minmax(0,1fr))}.review-arrow[data-v-3ece42be]{display:none}.review-grid[data-v-3ece42be]{grid-template-columns:1fr}}@media (width<=720px){.review-combination-flow[data-v-3ece42be]{grid-template-columns:1fr}}.factor-browser-grid[data-v-3ece42be]{grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:16px;margin-top:14px;display:grid}.factor-list[data-v-3ece42be]{border:1px solid var(--border-color);border-radius:6px;max-height:430px;overflow:auto}.factor-row[data-v-3ece42be]{appearance:none;border:0;border-bottom:1px solid var(--border-color);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:#0f172a3d;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;display:flex}.factor-row[data-v-3ece42be]:last-child{border-bottom:0}.factor-row.active[data-v-3ece42be]{background:#38bdf81f}.factor-row strong[data-v-3ece42be],.factor-row small[data-v-3ece42be]{display:block}.factor-row small[data-v-3ece42be]{color:var(--text-secondary);margin-top:3px}.factor-row em[data-v-3ece42be]{color:var(--text-secondary);white-space:nowrap;font-size:.78rem;font-style:normal}.factor-row.selected em[data-v-3ece42be]{color:var(--accent-green)}.factor-detail[data-v-3ece42be]{border:1px solid var(--border-color);background:#0f172a47;border-radius:6px;min-width:0;padding:14px}.factor-title[data-v-3ece42be]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.factor-title h3[data-v-3ece42be]{margin-top:3px;font-size:1.05rem}.factor-dl[data-v-3ece42be]{grid-template-columns:72px minmax(0,1fr);margin-top:14px}.factor-expression[data-v-3ece42be]{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.factor-metrics[data-v-3ece42be]{grid-template-columns:repeat(6,minmax(0,1fr))}.factor-bars[data-v-3ece42be]{border-top:1px solid var(--border-color);align-items:center;gap:3px;height:64px;margin-top:14px;padding:8px 0;display:flex}.factor-bars span[data-v-3ece42be]{opacity:.85;background:currentColor;border-radius:999px;width:7px;min-height:4px}.factor-empty[data-v-3ece42be]{padding:16px}.quant-tabs[data-v-3ece42be]{padding:0;overflow:hidden}.tab-bar[data-v-3ece42be]{border-bottom:1px solid var(--border-color);display:flex}.tab-bar button[data-v-3ece42be]{appearance:none;color:var(--text-secondary);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:8px;padding:14px 18px;font-weight:700;display:inline-flex}.tab-bar button.active[data-v-3ece42be]{color:var(--accent-blue);border-bottom-color:var(--accent-blue);background:#0f172a59}.tab-body[data-v-3ece42be]{padding:18px}.quant-action[data-v-3ece42be]{max-width:240px}.quant-chart[data-v-3ece42be]{border:1px solid var(--border-color);background:#0f172a40;border-radius:6px;height:300px;margin-top:14px}.quant-table-wrap[data-v-3ece42be]{max-height:420px;margin-top:14px}.inline-link[data-v-3ece42be]{color:var(--accent-blue);cursor:pointer;background:0 0;border:0;font-weight:700}.text-green[data-v-3ece42be]{color:var(--accent-green)!important}.text-red[data-v-3ece42be]{color:var(--accent-red)!important}.oos-panel[data-v-3ece42be]{border:1px solid var(--border-color);border-left:3px solid var(--accent-blue,#38bdf8);background:#0f172a80;border-radius:8px;margin:14px 0;padding:14px 16px}.oos-panel.oos-empty[data-v-3ece42be]{border-left-color:var(--text-muted,#64748b)}.oos-panel-head[data-v-3ece42be]{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.oos-panel-head h3[data-v-3ece42be]{margin:0;font-size:.95rem}.oos-panel-head small[data-v-3ece42be]{color:var(--text-muted,#94a3b8);font-size:.78rem}.oos-metrics[data-v-3ece42be]{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;display:grid}.oos-col>span[data-v-3ece42be]{color:var(--text-muted,#94a3b8);letter-spacing:.04em;margin-bottom:6px;font-size:.75rem;display:block}.oos-stats[data-v-3ece42be]{flex-direction:column;gap:4px;display:flex}.oos-stats>div[data-v-3ece42be]{justify-content:space-between;align-items:baseline;gap:8px;font-size:.85rem;display:flex}.oos-stats em[data-v-3ece42be]{color:var(--text-muted,#64748b);font-size:.72rem;font-style:normal}.oos-stats strong[data-v-3ece42be]{font-size:.9rem}.oos-stats .oos-range[data-v-3ece42be]{border-top:1px dashed #94a3b840;padding-top:3px}.oos-note[data-v-3ece42be]{color:var(--text-muted,#94a3b8);margin:10px 0 0;font-size:.8rem;line-height:1.5}.rating-good[data-v-3ece42be]{color:var(--accent-green,#4ade80);background:#22c55e2e;border:1px solid #22c55e66}.rating-caution[data-v-3ece42be]{color:#fbbf24;background:#f59e0b29;border:1px solid #f59e0b66}.rating-bad[data-v-3ece42be]{color:var(--accent-red,#f87171);background:#ef444429;border:1px solid #ef444466}.rating-none[data-v-3ece42be]{color:var(--text-muted,#94a3b8);background:#94a3b81f;border:1px solid #94a3b84d}.grow[data-v-3ece42be]{flex:1;margin-top:0}.live-toolbar[data-v-3ece42be]{grid-template-columns:auto auto minmax(0,1fr);align-items:end;gap:14px;display:grid}.live-generate[data-v-3ece42be]{width:230px;margin-top:0}.live-cancel[data-v-3ece42be]{margin-top:0}.live-plan-progress[data-v-3ece42be]{flex-direction:column;grid-column:1/-1;gap:6px;margin-top:2px;display:flex}.live-plan-progress-bar[data-v-3ece42be]{background:#94a3b82e;border-radius:999px;height:8px;overflow:hidden}.live-plan-progress-fill[data-v-3ece42be]{background:linear-gradient(90deg, var(--accent-blue,#38bdf8), #6366f1);border-radius:999px;height:100%;transition:width .3s}.live-plan-progress-text[data-v-3ece42be]{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:.8rem}.live-overview[data-v-3ece42be]{border-bottom:1px solid var(--border-color);padding-bottom:18px}.live-overview-head[data-v-3ece42be],.live-overview-actions[data-v-3ece42be]{align-items:center;gap:10px;display:flex}.live-overview-head[data-v-3ece42be]{justify-content:space-between}.live-overview h3[data-v-3ece42be]{margin-top:3px;font-size:1.08rem}.live-overview small[data-v-3ece42be]{color:var(--text-secondary);margin-top:5px;display:block}.live-overview-actions .btn-secondary[data-v-3ece42be]{width:auto;margin:0}.live-metrics[data-v-3ece42be]{grid-template-columns:repeat(7,minmax(0,1fr))}.live-metrics .metric-sub[data-v-3ece42be]{opacity:.85;margin-top:3px;font-size:11px;font-weight:400;display:block}.portfolio-charts[data-v-3ece42be]{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px;display:grid}.portfolio-chart[data-v-3ece42be]{border:1px solid var(--border-color);background:#0f172a40;border-radius:6px;height:290px}.curve-section[data-v-3ece42be]{margin-top:16px}.curve-header[data-v-3ece42be]{justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:10px;display:flex}.curve-header h3[data-v-3ece42be]{color:var(--text-primary);margin:0 0 4px;font-size:.95rem}.curve-header small[data-v-3ece42be]{color:var(--text-secondary);font-size:.78rem;line-height:1.5}.curve-days[data-v-3ece42be]{color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;font-size:.8rem;display:flex}.curve-days select[data-v-3ece42be]{background:var(--surface-2,#0f172a);border:1px solid var(--border-color);color:var(--text-primary);border-radius:4px;padding:4px 6px;font-size:.8rem}.portfolio-curve-chart[data-v-3ece42be]{border:1px solid var(--border-color);background:#0f172a40;border-radius:6px;height:360px}.curve-empty[data-v-3ece42be]{border:1px dashed var(--border-color);height:120px;color:var(--text-secondary);background:#0f172a26;border-radius:6px;justify-content:center;align-items:center;font-size:.82rem;display:flex}.live-holdings-table[data-v-3ece42be]{max-height:360px}.quant-modal[data-v-3ece42be]{text-align:left;width:min(980px,94vw);max-height:86vh;overflow:hidden}.quant-modal.wide[data-v-3ece42be]{width:min(900px,94vw)}.quant-modal.xwide[data-v-3ece42be]{width:min(1180px,96vw)}.editable-table input[data-v-3ece42be],.editable-table select[data-v-3ece42be]{width:96px;padding:7px 8px}.editable-table td[data-v-3ece42be]:first-child{min-width:130px}.execution-table[data-v-3ece42be]{min-width:1780px}.execution-table th[data-v-3ece42be],.execution-table td[data-v-3ece42be]{vertical-align:middle;white-space:nowrap}.execution-table input[data-v-3ece42be]{width:112px}.execution-table td:last-child input[data-v-3ece42be]{width:180px}.action-pill[data-v-3ece42be],.instruction-status[data-v-3ece42be]{border:1px solid var(--border-color);color:var(--text-secondary);border-radius:999px;align-items:center;padding:3px 8px;font-size:.76rem;display:inline-flex}.action-pill.buy[data-v-3ece42be],.instruction-status.ready[data-v-3ece42be]{color:var(--accent-green);border-color:#10b98159}.action-pill.sell[data-v-3ece42be],.instruction-status.blocked[data-v-3ece42be]{color:var(--accent-red);border-color:#f43f5e59}.instruction-status.hold[data-v-3ece42be]{color:#94a3b8;border-color:#94a3b859}.instruction-status.reference[data-v-3ece42be]{color:#c4b5fd;border-color:#c4b5fd59}.execution-table td small[data-v-3ece42be]{color:var(--text-secondary);margin-top:4px;font-size:.72rem;display:block}.modal-actions[data-v-3ece42be]{justify-content:flex-end;margin-top:14px}.modal-hint[data-v-3ece42be]{color:var(--text-secondary);font-size:.82rem}.positions-editor input[data-v-3ece42be]{width:100%;min-width:92px}.modal-execute[data-v-3ece42be]{width:150px;margin-top:0}@media (width<=1180px){.quant-layout[data-v-3ece42be],.quant-tree-grid[data-v-3ece42be],.factor-browser-grid[data-v-3ece42be]{grid-template-columns:1fr}.quant-form-grid.six[data-v-3ece42be],.metric-row[data-v-3ece42be],.live-metrics[data-v-3ece42be]{grid-template-columns:repeat(3,minmax(0,1fr))}.live-toolbar[data-v-3ece42be]{grid-template-columns:1fr;align-items:stretch}.live-generate[data-v-3ece42be]{width:100%}.live-overview-head[data-v-3ece42be]{flex-direction:column;align-items:flex-start}}.live-account-bar[data-v-3ece42be]{background:var(--surface-2,#0f172a66);border:1px solid var(--border-color,#94a3b826);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:10px 14px;display:flex}.account-tabs[data-v-3ece42be]{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.account-tab-btn[data-v-3ece42be]{border:1px solid var(--border-color,#94a3b833);color:var(--text-secondary,#94a3b8);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:6px;padding:6px 12px;font-size:.84rem;transition:all .15s;display:inline-flex}.account-tab-btn[data-v-3ece42be]:hover{color:var(--text-primary,#f8fafc);background:#ffffff0d}.account-tab-btn.active[data-v-3ece42be]{color:#38bdf8;background:#38bdf826;border-color:#38bdf8;font-weight:600}.account-tab-cash[data-v-3ece42be]{opacity:.8;font-size:.76rem}.account-planned-cash[data-v-3ece42be]{color:var(--text-secondary,#94a3b8);white-space:nowrap;align-items:baseline;gap:7px;margin-left:auto;font-size:.8rem;display:inline-flex}.account-planned-cash strong[data-v-3ece42be]{color:var(--text-primary,#f8fafc);font-size:.94rem}.account-planned-cash small[data-v-3ece42be]{color:var(--text-muted,#64748b);font-size:.72rem}.account-add-btn[data-v-3ece42be]{color:#38bdf8;cursor:pointer;background:0 0;border:1px dashed #38bdf866;border-radius:6px;align-items:center;gap:4px;padding:6px 10px;font-size:.82rem;transition:all .15s;display:inline-flex}.account-add-btn[data-v-3ece42be]:hover{background:#38bdf81a;border-color:#38bdf8}.account-actions[data-v-3ece42be]{align-items:center;gap:6px;display:flex}.btn-icon[data-v-3ece42be]{border:1px solid var(--border-color,#94a3b833);width:32px;height:32px;color:var(--text-secondary,#94a3b8);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex}.btn-icon[data-v-3ece42be]:hover{color:var(--text-primary,#f8fafc);background:#ffffff14}.btn-icon.danger[data-v-3ece42be]:hover{color:#f43f5e;background:#f43f5e26;border-color:#f43f5e}@media (width<=720px){.quant-top[data-v-3ece42be],.strategy-summary[data-v-3ece42be]{flex-direction:column;align-items:flex-start}.quant-form-grid.two[data-v-3ece42be],.quant-form-grid.three[data-v-3ece42be],.quant-form-grid.six[data-v-3ece42be],.metric-row[data-v-3ece42be],.live-metrics[data-v-3ece42be],.factor-metrics[data-v-3ece42be],.metric-row.compact[data-v-3ece42be]{grid-template-columns:1fr;min-width:0}.live-overview-actions[data-v-3ece42be],.portfolio-charts[data-v-3ece42be]{flex-direction:column;grid-template-columns:1fr;align-items:stretch;width:100%}}.factor-pool-page[data-v-174ebba8]{flex-direction:column;gap:18px;display:flex}.quant-band[data-v-174ebba8],.quant-panel[data-v-174ebba8]{border:1px solid var(--border-color);background:#1e293bb8;border-radius:8px;box-shadow:0 18px 45px #0000003d}.quant-top[data-v-174ebba8]{justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.quant-top h1[data-v-174ebba8]{font-size:1.45rem;line-height:1.2}.quant-top p[data-v-174ebba8]{color:var(--text-secondary);margin-top:4px}.quant-refresh[data-v-174ebba8]{flex-shrink:0}.quant-panel[data-v-174ebba8]{padding:16px}.quant-panel-head[data-v-174ebba8]{justify-content:space-between;align-items:center;gap:12px;display:flex}.quant-panel-head h2[data-v-174ebba8]{align-items:center;gap:8px;font-size:1rem;display:inline-flex}.quant-panel-head svg[data-v-174ebba8],.quant-refresh svg[data-v-174ebba8]{width:16px;height:16px}.quant-chip[data-v-174ebba8]{color:#bae6fd;white-space:nowrap;background:#38bdf81c;border:1px solid #38bdf83d;border-radius:999px;align-items:center;padding:4px 9px;font-size:.78rem;display:inline-flex}.factor-browser-grid[data-v-174ebba8]{grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:16px;margin-top:14px;display:grid}.factor-list[data-v-174ebba8],.related-strategy-list[data-v-174ebba8]{border:1px solid var(--border-color);border-radius:6px;max-height:520px;overflow:auto}.factor-row[data-v-174ebba8],.related-strategy-row[data-v-174ebba8]{appearance:none;border:0;border-bottom:1px solid var(--border-color);width:100%;color:var(--text-primary);text-align:left;cursor:pointer;background:#0f172a3d;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;display:flex}.factor-row[data-v-174ebba8]:last-child,.related-strategy-row[data-v-174ebba8]:last-child{border-bottom:0}.factor-row.active[data-v-174ebba8],.related-strategy-row.active[data-v-174ebba8]{background:#38bdf81f}.factor-row strong[data-v-174ebba8],.factor-row small[data-v-174ebba8],.related-strategy-row strong[data-v-174ebba8],.related-strategy-row small[data-v-174ebba8]{display:block}.factor-row small[data-v-174ebba8],.related-strategy-row small[data-v-174ebba8]{color:var(--text-secondary);margin-top:3px}.factor-row em[data-v-174ebba8],.related-strategy-row em[data-v-174ebba8]{color:var(--text-secondary);white-space:nowrap;font-size:.78rem;font-style:normal}.related-strategy-row.selected em[data-v-174ebba8]{color:var(--accent-green)}.factor-detail[data-v-174ebba8]{border:1px solid var(--border-color);background:#0f172a47;border-radius:6px;min-width:0;padding:14px}.factor-title[data-v-174ebba8]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.factor-title h3[data-v-174ebba8]{margin-top:3px;font-size:1.05rem}.compact-title h3[data-v-174ebba8]{font-size:.98rem}.quant-kicker[data-v-174ebba8],.quant-dl dt[data-v-174ebba8]{color:var(--text-secondary);font-size:.78rem}.quant-dl[data-v-174ebba8]{grid-template-columns:88px minmax(0,1fr);gap:8px 12px;display:grid}.quant-dl dd[data-v-174ebba8]{color:#d8e0ea;min-width:0}.factor-dl[data-v-174ebba8]{margin-top:14px}.factor-expression[data-v-174ebba8]{overflow-wrap:anywhere;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace}.metric-row[data-v-174ebba8]{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.factor-metrics[data-v-174ebba8]{grid-template-columns:repeat(6,minmax(0,1fr))}.candidate-metrics[data-v-174ebba8]{grid-template-columns:repeat(4,minmax(0,1fr))}.metric-row div[data-v-174ebba8]{border:1px solid var(--border-color);background:#0f172a47;border-radius:6px;padding:10px}.metric-row span[data-v-174ebba8]{color:var(--text-secondary);font-size:.76rem;display:block}.metric-row strong[data-v-174ebba8]{margin-top:4px;display:block}.candidate-relations[data-v-174ebba8]{border-top:1px solid var(--border-color);grid-template-columns:minmax(220px,300px) minmax(0,1fr);gap:14px;margin-top:14px;padding-top:14px;display:grid}.related-strategy-list[data-v-174ebba8]{max-height:310px}.related-strategy-detail[data-v-174ebba8]{min-width:0}.relation-backtest[data-v-174ebba8]{margin-top:12px}.factor-empty[data-v-174ebba8]{padding:16px}.text-green[data-v-174ebba8]{color:var(--accent-green)}.text-red[data-v-174ebba8]{color:var(--accent-red)}@media (width<=980px){.factor-browser-grid[data-v-174ebba8],.candidate-relations[data-v-174ebba8]{grid-template-columns:1fr}.factor-metrics[data-v-174ebba8],.metric-row[data-v-174ebba8]{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=720px){.quant-top[data-v-174ebba8]{flex-direction:column;align-items:flex-start}.factor-metrics[data-v-174ebba8],.metric-row[data-v-174ebba8]{grid-template-columns:1fr}}
