:root{--bg-primary:#141420;--bg-secondary:#1a1a2e;--bg-tertiary:#252540;--border:#2a2a40;--text-primary:#e0e0e0;--text-secondary:#888;--text-muted:#555;--accent:#4cc9f0;--up:#e94560;--down:#4caf50}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);font-family:-apple-system,PingFang SC,Microsoft YaHei,sans-serif;font-size:13px}.app-layout{height:calc(100vh / var(--font-zoom,1));flex-direction:column;display:flex;overflow:hidden}.app-navbar{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;height:40px;padding:0 16px;display:flex}.navbar-brand{color:var(--accent);margin-right:24px;font-size:14px;font-weight:600}.navbar-tabs{gap:4px;display:flex}.navbar-tabs button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px 14px;font-size:13px}.navbar-tabs button.active{background:var(--bg-tertiary);color:var(--text-primary);font-weight:600}.navbar-tabs button:hover:not(.active){background:var(--bg-tertiary)}.app-body{flex:1;min-height:0;display:flex}.search-panel{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:240px;display:flex;overflow-y:auto}.search-bar{padding:12px;position:relative}.search-bar input{background:var(--bg-tertiary);width:100%;color:var(--text-primary);border:none;border-radius:6px;outline:none;padding:8px 10px;font-size:13px}.search-bar input::placeholder{color:var(--text-secondary)}.search-dropdown{background:var(--bg-tertiary);z-index:10;border-radius:6px;max-height:200px;list-style:none;position:absolute;top:100%;left:12px;right:12px;overflow-y:auto}.search-dropdown li{cursor:pointer;align-items:center;gap:8px;padding:6px 10px;display:flex}.search-dropdown li:hover{background:var(--bg-secondary)}.search-dropdown .code{color:var(--accent)}.search-dropdown .name{color:var(--text-primary)}.search-dropdown .industry{color:var(--text-muted);font-size:11px}.panel-tabs{border-bottom:1px solid var(--border);padding:0 12px;display:flex}.panel-tabs button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:6px 12px;font-size:12px}.panel-tabs button.active{color:var(--accent);border-bottom-color:var(--accent)}.panel-list{flex:none}.stock-list{padding:4px 12px;list-style:none}.stock-list li{cursor:pointer;border-radius:4px;justify-content:space-between;align-items:center;padding:6px 8px;display:flex}.stock-list li:hover{background:var(--bg-tertiary)}.stock-list li.empty{color:var(--text-muted);cursor:default;text-align:center}.stock-list .remove-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:12px}.panel-divider{border-top:1px solid var(--border);margin:8px 12px}.snapshot-card{padding:0 12px 12px}.snapshot-card.empty{color:var(--text-muted);text-align:center;padding:20px 12px}.snapshot-header{justify-content:space-between;align-items:start;margin-bottom:8px;display:flex}.stock-name{font-size:14px;font-weight:600}.stock-code{color:var(--text-muted);font-size:11px}.fav-btn{cursor:pointer;background:0 0;border:none;font-size:16px}.snapshot-price{text-align:center;margin:4px 0;font-size:22px;font-weight:700}.snapshot-change{text-align:center;margin-bottom:8px;font-size:12px}.up{color:var(--up)}.down{color:var(--down)}.snapshot-grid{grid-template-columns:1fr 1fr;gap:4px;display:grid}.snapshot-grid>div{background:var(--bg-tertiary);border-radius:3px;justify-content:space-between;padding:4px 6px;font-size:11px;display:flex}.snapshot-grid .label{color:var(--text-muted)}.chart-area{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.chart-toolbar{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:12px;padding:6px 16px;display:flex}.toolbar-group{align-items:center;gap:4px;display:flex}.toolbar-divider{background:var(--border);width:1px;height:16px}.toolbar-group button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:12px}.toolbar-group button.active{background:var(--accent);color:#000;font-weight:600}.toolbar-group button:hover:not(.active){background:var(--bg-tertiary)}.dropdown-container{position:relative}.dropdown-menu{background:var(--bg-secondary);border:1px solid var(--border);z-index:20;border-radius:6px;min-width:160px;padding:8px;display:none;position:absolute;top:100%;left:0}.dropdown-container:hover .dropdown-menu,.dropdown-container.open .dropdown-menu{display:block}.indicator-group{margin-bottom:6px}.group-label{color:var(--text-muted);text-transform:uppercase;margin-bottom:2px;font-size:10px}.indicator-item{cursor:pointer;align-items:center;gap:6px;padding:3px 0;font-size:12px;display:flex}.indicator-tag{background:var(--bg-tertiary);color:var(--accent);border-radius:3px;padding:2px 8px;font-size:10px}.overlay-item{text-align:left;width:100%;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:4px 8px;font-size:12px;display:block}.overlay-item:hover{background:var(--bg-tertiary)}.trade-nav{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;gap:12px;padding:4px 16px;display:flex}.trade-nav-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:4px;padding:3px 12px;font-size:12px}.trade-nav-btn:hover:not(:disabled){background:var(--accent);color:#000}.trade-nav-btn:disabled{opacity:.4;cursor:default}.trade-nav-info{color:var(--text-secondary);text-align:center;min-width:80px;font-size:12px}.chart-body{flex:1;min-height:0;padding:8px}.main-chart{border-radius:6px;overflow:hidden}.chart-loading{z-index:50;color:var(--text-secondary);background:#141420cc;border-radius:6px;justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex;position:absolute;inset:0}.chart-loading-spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.linked-view{gap:8px;height:100%;display:flex}.linked-pane{flex-direction:column;flex:1;min-width:0;display:flex}.linked-label{color:var(--accent);border-bottom:1px solid var(--border);background:var(--bg-secondary);border-radius:6px 6px 0 0;padding:4px 8px;font-size:11px}.linked-chart{border-radius:0 0 6px 6px;flex:1}.pool-panel{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:280px;display:flex;overflow-y:auto}.pool-add-btn{background:var(--bg-tertiary);color:var(--accent);cursor:pointer;border:none;border-radius:4px;width:24px;height:24px;font-size:14px;line-height:24px}.pool-add-btn:hover{background:var(--accent);color:#000}.pool-list{padding:0 8px;list-style:none}.pool-list li{cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:6px 8px;font-size:12px;display:flex}.pool-list li:hover{background:var(--bg-tertiary)}.pool-list li.active{background:var(--bg-tertiary);color:var(--accent)}.pool-list li.empty{color:var(--text-muted);cursor:default;justify-content:center}.pool-name{flex:1}.pool-count{color:var(--text-muted);background:var(--bg-primary);border-radius:8px;padding:1px 6px;font-size:11px}.pool-stocks{flex-direction:column;flex:1;min-height:0;display:flex}.pool-detail-empty{color:var(--text-muted);text-align:center;padding:24px 12px;font-size:12px}.pool-retry{background:var(--bg-tertiary);color:var(--accent);cursor:pointer;border:none;border-radius:4px;margin-left:8px;padding:2px 10px;font-size:12px}.pool-detail-name .pool-count{margin-left:6px;font-weight:400}.pool-detail-header{justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.pool-detail-name{color:var(--accent);font-size:13px;font-weight:600}.pool-detail-desc{color:var(--text-muted);padding:0 12px 6px;font-size:11px}.pool-stock-table{border-collapse:collapse;width:100%;font-size:11px}.pool-stock-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--bg-secondary);padding:4px 6px;font-weight:400;position:sticky;top:0}.pool-stock-table td{border-bottom:1px solid var(--bg-primary);padding:5px 6px}.pool-stock-row{cursor:pointer}.pool-stock-row:hover{background:var(--bg-tertiary)}.pool-stock-table .code{color:var(--accent)}.empty-cell{text-align:center;color:var(--text-muted);padding:16px 6px}.pool-stock-table{table-layout:fixed}.pool-stock-table col.c-grip{width:18px}.pool-stock-table col.c-code,.pool-stock-table col.c-num{width:52px}.pool-stock-table col.c-pct{width:62px}.pool-stock-table td{white-space:nowrap}.pool-stock-table td.name{text-overflow:ellipsis;overflow:hidden}.pool-stock-table .num{text-align:right;font-variant-numeric:tabular-nums}.pool-stock-table td.grip{text-align:center;color:var(--text-muted);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;padding:5px 0}.pool-stock-row td.grip:hover{color:var(--accent)}.pool-stock-row{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.pool-stock-row.active{background:#f0a02014}.pool-stock-row.dragging{background:var(--bg-tertiary);outline:1px dashed var(--accent);outline-offset:-1px}.pool-stock-row.dragging td.grip{cursor:grabbing;color:var(--accent)}.pool-asof{color:var(--text-muted);margin-left:auto;margin-right:8px;font-size:11px}.pool-stale{color:var(--text-muted);margin-left:1px}.pool-hint{color:var(--text-muted);padding:8px 12px;font-size:11px}.pool-menu{z-index:1000;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;min-width:150px;padding:4px;position:fixed;box-shadow:0 6px 20px #00000073}.pool-menu-item{text-align:left;cursor:pointer;width:100%;max-width:260px;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:4px;padding:7px 10px;font-size:12px;display:block;overflow:hidden}.pool-menu-item:hover,.pool-menu-item:focus-visible{background:var(--bg-tertiary);outline:none}.pool-menu-item.danger{color:#eb5454}@media (width<=767px){.pool-menu-item{padding:12px 14px;font-size:15px}}.dialog-overlay{z-index:100;background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog-box{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;flex-direction:column;width:360px;max-height:400px;display:flex}.dialog-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 14px;font-size:13px;font-weight:600;display:flex}.dialog-header button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:14px}.dialog-search{background:var(--bg-tertiary);color:var(--text-primary);border:none;border-radius:6px;outline:none;margin:10px 14px;padding:8px 10px;font-size:13px}.dialog-results{flex:1;padding:0 8px 8px;list-style:none;overflow-y:auto}.dialog-results li{cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:6px 8px;font-size:12px;display:flex}.dialog-results li:hover{background:var(--bg-tertiary)}.dialog-results li.empty{color:var(--text-muted);cursor:default;justify-content:center}.dialog-results .code{color:var(--accent)}.dialog-results .industry{color:var(--text-muted);font-size:10px}.strategy-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.strategy-chart{border-bottom:1px solid var(--border);flex-direction:column;flex:1;min-height:280px;display:flex;overflow:hidden}.strategy-table-area{flex-shrink:0;height:260px;overflow:hidden}.strategy-panel{background:var(--bg-secondary);flex-direction:column;flex:1;width:100%;min-width:0;display:flex;overflow:hidden}.strategy-panel-header{border-bottom:1px solid var(--border);padding:10px 14px}.strategy-panel-title{align-items:baseline;gap:8px;display:flex}.strategy-panel-body{flex:1;min-height:0;overflow:auto}.strategy-loading,.strategy-empty{color:var(--text-muted);text-align:center;padding:24px;font-size:12px}.adhoc-strategy{border-bottom:1px solid var(--border);background:var(--bg-secondary);padding:10px 14px}.adhoc-strategy-header{color:var(--text-secondary);margin-bottom:6px;font-size:12px;font-weight:600}.adhoc-strategy-row{align-items:center;gap:8px;display:flex}.adhoc-strategy-select{background:var(--bg-primary);min-width:0;color:var(--text);border:1px solid var(--border);border-radius:4px;flex:1;padding:4px 8px;font-size:12px}.adhoc-strategy-btn{background:var(--accent);color:#000;cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:5px 14px;font-size:12px;font-weight:600}.adhoc-strategy-btn:disabled{opacity:.5;cursor:not-allowed}.adhoc-strategy-btn-clear{background:var(--bg-tertiary);color:var(--text)}.adhoc-strategy-result{background:var(--bg-primary);border-radius:4px;margin-top:8px;padding:8px 10px;font-size:12px}.adhoc-result-row{grid-template-columns:auto 1fr auto 1fr;align-items:baseline;gap:6px 10px;line-height:1.8;display:grid}.adhoc-result-row span{color:var(--text-secondary)}.adhoc-result-row b{color:var(--text);font-weight:600}.adhoc-result-hint{border-top:1px dashed var(--border);color:var(--text-secondary);margin-top:6px;padding-top:6px;font-size:11px}.profit-up{color:#e94560}.profit-down{color:#4caf50}.factory-control{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:8px 14px;display:flex}.factory-run-btn{background:var(--accent);color:#000;cursor:pointer;white-space:nowrap;border:none;border-radius:4px;padding:6px 16px;font-size:12px;font-weight:600}.factory-run-btn:disabled{opacity:.5;cursor:not-allowed}.factory-status{flex:1;min-width:0}.factory-progress-bar{background:var(--bg-tertiary);border-radius:3px;height:6px;margin-bottom:4px;overflow:hidden}.factory-progress-fill{background:var(--accent);height:100%;transition:width .3s}.factory-progress-text{color:var(--text-secondary);font-size:11px}.factory-error{color:var(--up)}.strategy-list-wrap{overflow:auto}.strategy-table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:11px}.strategy-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--bg-secondary);padding:6px 8px;font-weight:400;position:sticky;top:0}.strategy-table td{border-bottom:1px solid var(--bg-primary);padding:5px 8px}.strategy-table tr:hover{background:var(--bg-tertiary)}.pinned-row{background:#4cc9f00d}.strategy-name-cell{color:var(--accent);text-overflow:ellipsis;max-width:160px;overflow:hidden}.pin-btn{cursor:pointer;color:var(--accent);background:0 0;border:none;padding:0 2px;font-size:14px}.report-btn{background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;border:none;border-radius:3px;padding:2px 8px;font-size:11px}.report-btn:hover{background:var(--accent);color:#000}.report-dialog{background:var(--bg-secondary);border:1px solid var(--border);width:680px;max-height:calc(80vh / var(--font-zoom,1));border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.report-body{padding:14px;overflow-y:auto}.report-metrics{grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:16px;display:grid}.metric-card{background:var(--bg-tertiary);border-radius:4px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.metric-label{color:var(--text-muted);font-size:10px}.metric-value{font-size:16px;font-weight:600}.report-error,.report-loading{text-align:center;color:var(--text-muted);padding:24px}.report-trades h4,.report-equity h4{color:var(--text-secondary);margin-bottom:8px;font-size:12px}.trades-table{border-collapse:collapse;width:100%;font-size:11px}.trades-table th{text-align:left;color:var(--text-muted);border-bottom:1px solid var(--border);padding:4px 6px;font-weight:400}.trades-table td{border-bottom:1px solid var(--bg-primary);padding:4px 6px}.equity-chart-placeholder{background:var(--bg-tertiary);color:var(--text-secondary);text-align:center;border-radius:4px;padding:12px;font-size:12px}.screening-panel{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:280px;display:flex;overflow:hidden}.screening-section{border-bottom:1px solid var(--border);flex-direction:column;padding:10px 12px;display:flex}.screening-section-bottom{border-bottom:none;flex:1;overflow:hidden}.screening-section-title{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:8px;font-size:12px;font-weight:600;display:flex}.screening-section-title .hit-count{color:var(--up,#ef5350);font-weight:700}.screening-controls{color:var(--text-secondary);align-items:center;margin-bottom:8px;font-size:12px;display:flex}.screening-controls label{align-items:center;gap:4px;display:flex}.screening-controls input{background:var(--bg-tertiary);border:1px solid var(--border);width:40px;color:var(--text-primary);text-align:center;border-radius:4px;padding:2px 4px;font-size:12px}.screening-strategy-list{flex-direction:column;gap:4px;max-height:280px;display:flex;overflow-y:auto}.screening-strategy-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;text-align:left;border-radius:4px;flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px;font-size:12px;display:flex}.screening-strategy-btn:hover{background:var(--bg-primary)}.screening-strategy-btn.active{background:var(--accent,#2962ff);color:#fff;border-color:var(--accent,#2962ff)}.screening-strategy-btn:disabled{opacity:.5;cursor:not-allowed}.screening-strategy-btn[draggable=true]{cursor:grab}.screening-strategy-btn[draggable=true]:active{cursor:grabbing}.screening-strategy-btn.dragover{outline:2px dashed var(--accent,#2962ff);outline-offset:-2px}.screening-strategy-id{font-size:12px;font-weight:600}.screening-strategy-name{color:var(--text-secondary);font-size:11px}.screening-strategy-btn.active .screening-strategy-name{color:#ffffffd9}.screening-status{color:var(--text-secondary);align-items:center;gap:8px;padding:8px 0;font-size:12px;display:flex}.screening-spinner{font-size:16px}.screening-error{color:var(--down,#26a69a);padding:6px 0;font-size:12px}.screening-empty{color:var(--text-muted);padding:8px 0;font-size:12px}.screening-hits-list{flex-direction:column;flex:1;gap:4px;display:flex;overflow-y:auto}.screening-hit{background:var(--bg-tertiary);border:1px solid var(--border);cursor:pointer;border-radius:4px;flex-direction:column;gap:2px;padding:6px 8px;display:flex}.screening-hit:hover{background:var(--bg-primary)}.screening-hit.active{border-color:var(--accent,#2962ff);background:var(--bg-primary)}.hit-row1{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.hit-code{font-size:12px;font-weight:600}.hit-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.hit-row2{color:var(--text-muted);justify-content:space-between;font-size:11px;display:flex}.hit-gain.up{color:var(--up,#ef5350)}.hit-gain.down{color:var(--down,#26a69a)}.screening-actions{gap:8px;margin-top:8px;display:flex}.screening-btn-primary,.screening-btn-cancel{cursor:pointer;color:#fff;border:none;border-radius:4px;flex:1;padding:8px 12px;font-size:13px;font-weight:600;transition:background .15s}.screening-btn-primary{background:var(--accent,#2962ff)}.screening-btn-primary:hover:not(:disabled){background:#1e4fd1}.screening-btn-primary:disabled{background:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed}.screening-btn-cancel{background:var(--down,#26a69a)}.screening-btn-cancel:hover{background:#1e857c}.screening-progress{margin-top:10px}.screening-progress-bar{background:var(--bg-tertiary);border-radius:4px;height:8px;position:relative;overflow:hidden;box-shadow:inset 0 1px 2px #00000040}.screening-progress-fill{background:linear-gradient(90deg,#1e4fd1 0%,#2962ff 50%,#4a7dff 100%);border-radius:4px;height:100%;transition:width .4s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.screening-progress-fill:before{content:"";background-image:linear-gradient(45deg,#ffffff2e 25%,#0000 25% 50%,#ffffff2e 50% 75%,#0000 75%);background-size:16px 16px;animation:.7s linear infinite screening-stripes;position:absolute;inset:0}.screening-progress-fill:after{content:"";filter:blur(2px);background:linear-gradient(90deg,#0000,#ffffff73);width:14px;height:100%;animation:1.4s ease-in-out infinite screening-pulse;position:absolute;top:0;right:0}.screening-progress-fill.cancelled{background:var(--text-muted)}.screening-progress-fill.cancelled:before,.screening-progress-fill.cancelled:after{display:none}@keyframes screening-stripes{0%{background-position:0 0}to{background-position:16px 0}}@keyframes screening-pulse{0%,to{opacity:.4}50%{opacity:1}}.screening-progress-text{color:var(--text-secondary);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:6px;font-size:11px;display:flex}.screening-progress-text .error-text{color:var(--down,#26a69a)}.screening-spinner{animation:1.4s linear infinite screening-spin;display:inline-block}@keyframes screening-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.screening-strategy-list{scrollbar-width:thin;scrollbar-color:#2962ff73 transparent;padding-right:4px}.screening-strategy-list::-webkit-scrollbar{width:10px}.screening-strategy-list::-webkit-scrollbar-track{background:#ffffff08;border-radius:6px;margin:4px 0;box-shadow:inset 0 0 4px #00000040}.screening-strategy-list::-webkit-scrollbar-thumb{background:linear-gradient(#4a7dff 0%,#2962ff 50%,#1e4fd1 100%) padding-box padding-box;border:2px solid #0000;border-radius:6px;transition:filter .18s,box-shadow .18s;box-shadow:0 0 4px #2962ff66}.screening-strategy-list::-webkit-scrollbar-thumb:hover{filter:brightness(1.15)saturate(1.15);box-shadow:0 0 8px #2962ffb3}.screening-strategy-list::-webkit-scrollbar-thumb:active{filter:brightness(1.3)}.screening-strategy-list::-webkit-scrollbar-corner{background:0 0}.screening-hits-list{scrollbar-width:thin;scrollbar-color:var(--bg-tertiary) transparent;padding-right:4px}.screening-hits-list::-webkit-scrollbar{width:8px}.screening-hits-list::-webkit-scrollbar-track{background:0 0;margin:4px 0}.screening-hits-list::-webkit-scrollbar-thumb{background:var(--bg-tertiary);background-clip:padding-box;border:2px solid #0000;border-radius:4px;transition:background .2s}.screening-hits-list::-webkit-scrollbar-thumb:hover{background:var(--accent,#2962ff);background-clip:padding-box}.screening-hits-list::-webkit-scrollbar-thumb:active{background:#4a7dff padding-box padding-box}.screening-hit{transition:background .15s,transform .15s;position:relative}.screening-hit:hover{transform:translate(2px)}.screening-hit.active:before{content:"";background:var(--accent,#2962ff);border-radius:2px;width:3px;position:absolute;top:0;bottom:0;left:-1px}.toolbar-stock-label{white-space:nowrap;align-items:baseline;gap:8px;padding:0 12px 0 4px;display:flex}.toolbar-stock-name{color:var(--text-primary);letter-spacing:.3px;font-size:15px;font-weight:700}.toolbar-stock-code{color:var(--text-secondary);font-variant-numeric:tabular-nums;font-size:12px}.screening-progress-fill.completed{background:linear-gradient(90deg,#10b981 0%,#34d399 100%)}.screening-progress-fill.completed:before,.screening-progress-fill.completed:after{display:none}.screening-pool-add{background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;flex-direction:column;gap:6px;margin:8px 0 10px;padding:8px;display:flex}.screening-pool-name{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);font-variant-numeric:tabular-nums;border-radius:4px;outline:none;padding:6px 8px;font-size:12px;transition:border-color .15s}.screening-pool-name:focus{border-color:var(--accent,#2962ff)}.screening-btn-pool{color:#fff;cursor:pointer;background:linear-gradient(90deg,#10b981 0%,#059669 100%);border:none;border-radius:4px;padding:7px 10px;font-size:12px;font-weight:600;transition:filter .15s}.screening-btn-pool:hover:not(:disabled){filter:brightness(1.1)}.screening-btn-pool:disabled{background:var(--bg-primary);color:var(--text-muted);cursor:not-allowed}.screening-pool-msg{padding:4px 0;font-size:11px}.screening-pool-msg.ok{color:#10b981}.screening-pool-msg.err{color:var(--up,#ef5350)}.hit-row3{color:var(--text-muted);justify-content:space-between;margin-top:1px;font-size:11px;display:flex}.hit-mdd-label{color:var(--text-muted)}.hit-mdd{color:var(--down,#4caf50);font-variant-numeric:tabular-nums}.strategy-pool-page{background:var(--bg-primary);flex-direction:column;flex:1;min-height:0;padding:16px 20px;display:flex;overflow:hidden}.strategy-pool-toolbar{flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.strategy-pool-title{color:var(--text-primary);font-size:16px;font-weight:700}.strategy-pool-count{color:var(--text-secondary);font-size:13px;font-weight:400}.strategy-pool-filters{color:var(--text-secondary);align-items:center;gap:12px;font-size:12px;display:flex}.strategy-pool-filters label{align-items:center;gap:6px;display:flex}.strategy-pool-filters select{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:4px;outline:none;padding:4px 8px;font-size:12px}.strategy-pool-refresh{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:4px;padding:4px 12px;font-size:12px}.strategy-pool-refresh:hover{background:var(--accent,#2962ff);color:#fff}.strategy-pool-msg{background:var(--bg-tertiary);color:var(--up,#ef5350);border-radius:4px;margin-bottom:8px;padding:6px 12px;font-size:12px}.strategy-pool-table-wrap{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;flex:1;overflow:auto}.strategy-pool-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:12px}.strategy-pool-table thead th{background:var(--bg-tertiary);color:var(--text-secondary);text-align:left;text-transform:uppercase;letter-spacing:.4px;border-bottom:1px solid var(--border);z-index:1;padding:10px 12px;font-size:11px;font-weight:600;position:sticky;top:0}.strategy-pool-table tbody tr{border-bottom:1px solid var(--bg-primary);transition:background .15s}.strategy-pool-table tbody tr:hover{background:var(--bg-tertiary)}.strategy-pool-table tbody tr.inactive{opacity:.5}.strategy-pool-table tbody tr.drag-over{border-top:2px solid var(--accent,#2962ff)}.strategy-pool-table td{color:var(--text-primary);vertical-align:middle;padding:8px 12px}.drag-handle{cursor:grab;color:var(--text-muted);-webkit-user-select:none;user-select:none;text-align:center;font-size:16px}.drag-handle:active{cursor:grabbing}.cell-name{flex-direction:column;gap:2px;display:flex}.cell-tid{color:var(--accent,#2962ff);font-size:12px;font-weight:700}.cell-display,.cell-family{color:var(--text-secondary);font-size:11px}.concept-tag{background:var(--bg-tertiary);color:var(--text-primary);border-radius:10px;padding:2px 8px;font-size:11px}.toggle-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:12px;padding:4px 10px;font-size:11px;transition:all .15s}.toggle-btn.on{color:#10b981;background:#10b98126;border-color:#10b981}.toggle-btn.off{border-color:var(--text-muted);color:var(--text-muted);background:0 0}.toggle-btn:hover{filter:brightness(1.2)}.delete-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;display:inline-flex}.delete-btn:hover{background:var(--up,#ef5350);border-color:var(--up,#ef5350);color:#fff}.empty-row{text-align:center;color:var(--text-muted);padding:24px!important}.strategy-pool-table-wrap::-webkit-scrollbar{width:10px;height:10px}.strategy-pool-table-wrap::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:5px}.strategy-pool-table-wrap::-webkit-scrollbar-thumb:hover{background:var(--accent,#2962ff)}.navbar-spacer{flex:1}.system-page{background:var(--bg-primary);flex-direction:column;flex:1;gap:16px;min-height:0;padding:16px 20px;display:flex;overflow-y:auto}.system-toolbar{justify-content:space-between;align-items:center;display:flex}.system-title{font-size:16px;font-weight:700}.system-section{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:14px 16px}.system-section-title{color:var(--text-secondary);margin-bottom:10px;font-size:13px;font-weight:600}.system-stats{grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;display:grid}.stat-card{background:var(--bg-tertiary);border:1px solid #0000;border-radius:6px;flex-direction:column;gap:4px;padding:12px;display:flex}.stat-label{color:var(--text-secondary);font-size:11px}.stat-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:18px;font-weight:700}.stat-card.stat-good{border-color:#10b981}.stat-card.stat-good .stat-value{color:#10b981}.stat-card.stat-warn{border-color:#f59e0b}.stat-card.stat-warn .stat-value{color:#f59e0b}.stat-card.stat-bad{border-color:var(--up,#ef5350)}.stat-card.stat-bad .stat-value,.stat-bad{color:var(--up,#ef5350)}.stat-warn{color:#f59e0b}.system-options{color:var(--text-secondary);flex-direction:column;gap:6px;margin-bottom:12px;font-size:13px;display:flex}.system-options label{cursor:pointer;align-items:center;gap:8px;display:flex}.system-options input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent,#2962ff)}.system-actions{gap:8px;margin-bottom:8px;display:flex}.system-failures{background:var(--bg-tertiary);border-radius:6px;margin-top:12px;padding:10px}.system-failures-title{color:var(--up,#ef5350);margin-bottom:6px;font-size:11px}.system-failure-row{gap:8px;padding:2px 0;font-size:11px;display:flex}.system-table-wrap{border-radius:6px;max-height:400px;overflow:auto}.system-table-wrap::-webkit-scrollbar{width:8px}.system-table-wrap::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}.cell-score{color:#f59e0b;font-variant-numeric:tabular-nums;text-align:center;font-size:13px;font-weight:700}.cell-display-editable{cursor:pointer;border-bottom:1px dashed #0000;transition:border-color .15s}.cell-display-editable:hover{border-bottom-color:var(--accent,#2962ff)}.cell-rename-input{background:var(--bg-primary);border:1px solid var(--accent,#2962ff);color:var(--text-primary);border-radius:3px;outline:none;width:100%;padding:2px 6px;font-size:11px}.strategy-pool-table th{-webkit-user-select:none;user-select:none}.strategy-pool-table th:hover{background:var(--bg-primary)}.hit-price{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:600}.live-view{background:var(--bg-primary);flex-direction:column;flex:1;min-width:0;display:flex}.live-empty{color:var(--text-secondary);flex:1;justify-content:center;align-items:center;font-size:13px;display:flex}.live-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:16px;padding:8px 14px;display:flex}.live-title{align-items:baseline;gap:8px;display:flex}.live-name{color:var(--text-primary);font-size:16px;font-weight:600}.live-code{color:var(--text-secondary);font-size:12px}.live-quote{flex-wrap:wrap;align-items:baseline;gap:12px;font-size:12px;display:flex}.live-price{font-size:22px;font-weight:700}.live-dim{color:var(--text-secondary)}.live-status{align-items:center;gap:10px;margin-left:auto;font-size:11px;display:flex}.live-badge{border-radius:10px;padding:2px 8px;font-weight:600}.live-on{color:#4caf50;background:#4caf501f}.live-off{color:var(--text-muted);background:#ffffff0a}.live-err{color:#e94560}.live-panes{flex:1;min-height:0;display:flex}.live-pane{flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex}.live-pane-first{flex:0 0 var(--live-split,50%)}.live-splitter{cursor:col-resize;background:var(--bg-secondary);border-left:1px solid var(--border);border-right:1px solid var(--border);flex:0 0 10px;transition:background-color .12s;position:relative}.live-splitter:after{content:"";background:var(--text-muted,#6b7280);border-radius:1px;width:2px;height:32px;transition:background-color .12s,height .12s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.live-splitter:hover,.live-panes.dragging .live-splitter{background:#2962ff2e}.live-splitter:hover:after,.live-panes.dragging .live-splitter:after{background:var(--accent,#2962ff);height:56px}.live-panes.dragging{cursor:col-resize;-webkit-user-select:none;user-select:none}.live-pane-title{color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border);padding:4px 12px;font-size:11px;font-weight:600}.live-pane-body{flex:1;min-height:0;position:relative;overflow:hidden}.live-pane-body .live-daily,.live-pane-body>div{width:100%;height:100%}@media (width<=1100px){.live-panes{flex-direction:column}.live-pane-first{flex:0 0 var(--live-split,50%)}.live-splitter{cursor:row-resize;border-left:none;border-right:none;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.live-splitter:after{width:32px;height:2px}.live-splitter:hover:after,.live-panes.dragging .live-splitter:after{width:56px;height:2px}.live-panes.dragging{cursor:row-resize}}.minute-chart{position:absolute;inset:0}.minute-chart-empty{width:100%;height:100%;color:var(--text-secondary);justify-content:center;align-items:center;font-size:12px;display:flex}.minute-legend{pointer-events:none;gap:12px;font-size:11px;display:flex;position:absolute;top:4px;left:56px}.minute-legend .ml-time{color:var(--text-primary);font-weight:600}.minute-legend .ml-dim{color:var(--text-secondary)}.live-pane-split{flex:1;min-height:0;display:flex}.live-pane-split .live-pane-body{flex:1;min-width:0}.live-orderbook{border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:148px;display:flex;overflow:hidden}.order-book{flex-direction:column;flex:1;padding:2px 0;display:flex}.ob-empty{color:var(--text-muted);text-align:center;padding:12px;font-size:11px}.ob-row,.ob-mid{font-variant-numeric:tabular-nums;grid-template-columns:30px 1fr 44px;align-items:center;gap:4px;padding:3px 6px;font-size:11px;display:grid;position:relative}.ob-bar{pointer-events:none;border-radius:2px;position:absolute;top:1px;bottom:1px;right:0}.ob-ask .ob-bar{background:#eb545424}.ob-bid .ob-bar{background:#26a69a24}.ob-label{color:var(--text-muted);z-index:1}.ob-price{text-align:right;z-index:1;font-weight:600}.ob-vol{text-align:right;color:var(--text-secondary);z-index:1}.ob-up{color:#eb5454}.ob-down{color:#26a69a}.ob-mid{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg-tertiary);margin:3px 0}.ob-mid .ob-price{font-size:13px}@media (width<=1400px){.live-orderbook{width:128px}}.fav-list li{grid-template-columns:1fr auto 16px;align-items:center;gap:6px;display:grid}.fav-list li.active{background:var(--bg-tertiary)}.fav-list .name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fav-quote{font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;font-size:11px;display:flex}.fav-price{font-weight:600}.fav-pct{text-align:right;min-width:48px}.fav-loading{color:var(--text-muted)}.clickable{cursor:pointer}.live-pane-title-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.live-tdx{position:relative}.live-tdx-btn{cursor:pointer;background:var(--bg-tertiary);color:var(--text-primary);border-radius:4px;padding:2px 8px;font-weight:500}.live-tdx-btn:hover{background:var(--accent);color:#000}.live-tdx-menu{z-index:30;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;min-width:210px;padding:6px;display:none;position:absolute;top:100%;right:0;box-shadow:0 4px 14px #00000073}.live-tdx:hover .live-tdx-menu{display:block}.live-tdx-item{cursor:pointer;color:var(--text-primary);border-radius:4px;align-items:center;gap:6px;padding:4px 6px;font-size:12px;font-weight:400;display:flex}.live-tdx-item:hover{background:var(--bg-tertiary)}.live-tdx-empty{color:var(--text-muted);padding:6px;font-size:12px}.live-tf{gap:2px;display:flex}.live-tf button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px 9px;font-size:11px;font-weight:500}.live-tf button:hover:not(.active){background:var(--bg-tertiary)}.live-tf button.active{background:var(--accent);color:#000;font-weight:600}.measure-bar{background:var(--bg-secondary);border-bottom:1px solid var(--border);color:var(--text-secondary);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:14px;padding:7px 14px;font-size:13px;display:flex}.measure-bar.measure-hint{color:var(--text-muted)}.measure-bar .m-range{color:var(--text-primary);font-weight:600}.measure-bar .m-item i{color:var(--text-primary);font-style:normal;font-weight:600}.measure-bar .m-item em{color:var(--text-muted);margin-left:4px;font-style:normal}.measure-bar .m-sep{background:var(--border);width:1px;height:14px;display:inline-block}.measure-bar .m-pct{font-size:14px;font-weight:700}.measure-bar .m-pct.up{color:#e94560}.measure-bar .m-pct.down{color:#4caf50}.pf-section{border-bottom:2px solid var(--border)}.pf-title{justify-content:space-between;align-items:center;gap:8px;display:flex}.pf-info-btn{color:#e94560;cursor:pointer;background:#e945601f;border:none;border-radius:3px;padding:2px 8px;font-size:11px}.pf-info{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);border-radius:5px;margin-bottom:8px;padding:9px 11px;font-size:11.5px;line-height:1.65}.pf-info-row{gap:8px;display:flex}.pf-info-row b{color:var(--text-primary);flex-shrink:0;min-width:42px;font-weight:600}.pf-warn{border-top:1px dashed var(--border);color:var(--text-muted);margin-top:6px;padding-top:6px}.pf-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;display:flex}.pf-controls label{color:var(--text-secondary);align-items:center;gap:5px;font-size:12px;display:flex}.pf-run{cursor:pointer;color:#fff;background:#e94560;border:none;border-radius:4px;padding:5px 14px;font-size:12px;font-weight:600}.pf-run:disabled{background:var(--border);color:var(--text-muted);cursor:default}.pf-meta{color:var(--text-muted);font-size:11px}.pf-progress{background:var(--border);border-radius:2px;height:3px;margin-bottom:8px;overflow:hidden}.pf-progress-bar{background:#e94560;height:100%;transition:width .2s}.pf-list{flex-direction:column;gap:3px;max-height:340px;display:flex;overflow-y:auto}.pf-pick{cursor:pointer;background:var(--bg-primary);border-radius:4px;align-items:center;gap:8px;padding:6px 8px;display:flex}.pf-pick:hover{background:var(--bg-secondary)}.pf-rank{background:var(--border);width:20px;height:20px;color:var(--text-secondary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.pf-body{flex:1;min-width:0}.pf-row1{align-items:baseline;gap:6px;font-size:12.5px;display:flex}.pf-code{color:var(--text-primary);font-variant-numeric:tabular-nums;font-weight:600}.pf-name{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.pf-price{color:#e94560;font-variant-numeric:tabular-nums;font-weight:600}.pf-row2{color:var(--text-muted);align-items:center;gap:8px;margin-top:1px;font-size:10.5px;display:flex}.pf-src{color:#5b8def}.pf-amt{font-variant-numeric:tabular-nums;margin-left:auto}.paper-panel{background:var(--bg-secondary);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:720px;min-height:0;padding:12px 14px;display:flex;overflow:hidden}.paper-panel>*{flex-shrink:0}.paper-panel>.pp-table-wrap,.paper-panel>.pp-recent{flex:1 1 0;min-height:0}.pp-eq-wrap{flex-shrink:0}.pp-eq-legend{color:var(--text-muted);gap:14px;margin:-2px 0 6px;font-size:10.5px;display:flex}.pp-eq-legend span{align-items:center;gap:5px;display:inline-flex}.pp-eq-legend b{font-variant-numeric:tabular-nums}.pp-eq-legend i{width:14px;height:2px;display:inline-block}.pp-eq-legend i.dash{background:0 0;border-top:2px dashed;height:0}.pp-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.pp-title{color:var(--text-primary);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.pp-acct{color:var(--text-muted);font-size:11px;font-weight:400}.pp-rules-btn,.pp-run{cursor:pointer;color:#e94560;background:#e945601f;border:none;border-radius:4px;padding:3px 10px;font-size:11px}.pp-run{color:#fff;background:#e94560;padding:5px 12px;font-weight:600}.pp-run:disabled{background:var(--border);color:var(--text-muted);cursor:default}.pp-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pp-asof{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:11px;display:inline-flex}.pp-rules{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);border-radius:5px;margin-top:8px;padding:9px 11px;font-size:11.5px;line-height:1.7}.pp-rules b{color:var(--text-primary);margin-right:6px}.pp-warn{color:var(--text-muted);border-top:1px dashed var(--border);margin-top:5px;padding-top:5px}.pp-stats{grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0 10px;display:grid}.pp-stat{background:var(--bg-primary);border:1px solid var(--border);border-radius:5px;padding:8px 10px}.pp-stat .v{font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:17px;font-weight:700}.pp-stat .l{color:var(--text-muted);margin-top:2px;font-size:10.5px}.pp-stat .v.up,.paper-panel .up{color:#e94560}.pp-stat .v.down,.paper-panel .down{color:#4caf50}.pp-eq{width:100%;height:76px;margin-bottom:6px;display:block}.pp-eq-box{margin-bottom:6px;position:relative}.pp-eq-box .pp-eq{margin-bottom:0}.pp-eq-box{cursor:zoom-in}.pp-zoom-overlay{z-index:300}.pp-zoom{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;width:min(1100px,92vw);padding:10px 14px 12px}.pp-zoom-head{justify-content:space-between;align-items:center;font-size:13px;font-weight:600;display:flex}.pp-zoom-head button{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:15px}.pp-zoom-info{min-height:26px;color:var(--text-muted);font-variant-numeric:tabular-nums;align-items:center;gap:18px;margin:6px 0 2px;font-size:12.5px;display:flex}.pp-zoom-info>b{color:var(--text-primary,#e6e6e6)}.pp-zoom-info span{align-items:center;gap:5px;display:inline-flex}.pp-zoom-info em{opacity:.75;margin-left:4px;font-style:normal}.pp-zoom-info i{width:14px;height:2px;display:inline-block}.pp-zoom-info i.dash{background:0 0;border-top:2px dashed;height:0}.pp-zoom-svg{cursor:crosshair;width:100%;height:auto;display:block}.pp-zoom-tx{fill:var(--text-muted);font-variant-numeric:tabular-nums;font-size:12px}.pp-eq-tick{color:var(--text-muted);font-variant-numeric:tabular-nums;pointer-events:none;opacity:.8;font-size:9.5px;line-height:1;position:absolute;left:2px;transform:translateY(-50%)}.pp-split{color:var(--text-muted);gap:16px;margin-bottom:10px;font-size:11.5px;display:flex}.pp-split b{font-variant-numeric:tabular-nums}.pp-tabs{gap:4px;margin-bottom:8px;display:flex}.pp-tabs button{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;border-radius:4px;flex:1;padding:5px 0;font-size:12px}.pp-tabs button.active{background:var(--bg-secondary);color:var(--text-primary);border-color:#e94560}.pp-table-wrap{border:1px solid var(--border);background:var(--bg-primary);border-radius:5px;overflow:auto}.pp-scroll{min-height:0}.pp-table{border-collapse:collapse;width:100%;font-size:11.5px}.pp-table th{background:var(--bg-secondary);color:var(--text-muted);text-align:right;border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 8px;font-weight:500;position:sticky;top:0}.pp-table th:first-child,.pp-table td:first-child{text-align:left}.pp-table td{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text-primary);border-bottom:1px solid #1e2532;padding:5px 8px}.pp-table tbody tr{cursor:pointer}.pp-table tbody tr:hover{background:var(--bg-secondary)}.pp-table td em{color:var(--text-muted);margin-left:4px;font-size:10px;font-style:normal}.pp-name b{font-weight:600}.pp-empty{color:var(--text-muted);text-align:center!important;padding:18px!important}.pp-act{border-radius:3px;padding:1px 6px;font-size:10px}.pp-act-tier1,.pp-act-tier2{color:#e94560;background:#e9456024}.pp-act-timeout,.pp-act-breakeven{color:var(--text-muted);background:#98a2b31f}.pp-switch{gap:2px;display:inline-flex}.pp-switch button{border:1px solid var(--border);background:var(--bg-primary);color:var(--text-secondary);cursor:pointer;padding:3px 10px;font-size:11px}.pp-switch button:first-child{border-radius:4px 0 0 4px}.pp-switch button:last-child{border-radius:0 4px 4px 0}.pp-switch button.on{color:#fff;background:#e94560;border-color:#e94560}.pp-play.on{background:#e8b54d}.pp-speed{background:var(--bg-primary);color:var(--text-secondary);border:1px solid var(--border);border-radius:4px;padding:4px 6px;font-size:11px}.pp-date{box-sizing:border-box;background:var(--bg-primary);border:1px solid var(--accent,#e94560);color:var(--text-primary);cursor:pointer;border-radius:4px;margin:0 4px;padding:2px 5px;font-size:11.5px}.pp-reset-btn{cursor:pointer;color:#e94560;white-space:nowrap;background:#e9456026;border:1px solid #e9456073;border-radius:4px;padding:3px 9px;font-size:11.5px}.pp-reset-btn:hover{background:#e9456047}.pp-cur{color:#fff;white-space:nowrap;letter-spacing:.2px;margin-left:10px;font-size:12.5px;font-weight:700}.pp-signals{border:1px solid var(--border);background:var(--bg-primary);border-radius:5px;margin-bottom:8px;padding:7px 9px}.pp-signals-t{color:var(--text-muted);margin-bottom:5px;font-size:10.5px}.pp-signals-hint{opacity:.7;margin-left:4px}.pp-signals-list{flex-wrap:wrap;gap:4px;max-height:58px;display:flex;overflow-y:auto}.pp-sig{cursor:pointer;color:#5b8def;background:#5b8def1f;border-radius:3px;padding:2px 7px;font-size:11px}.pp-sig.held{color:#e94560;background:#e9456024}.pp-sig:hover{filter:brightness(1.3)}.pp-pnl b{font-size:12.5px;font-weight:700;display:inline-block}.pp-pnl em{opacity:.75;color:inherit;margin-left:5px;font-size:10px;font-style:normal}.paper-panel .pp-pnl.up{color:#ff5c7a}.paper-panel .pp-pnl.down{color:#35d07f}.pp-recent{flex-direction:column;flex:1;min-height:0;margin-top:8px;display:flex}.pp-recent-t{color:var(--text-muted);flex-shrink:0;margin-bottom:4px;font-size:10.5px}.pp-recent-list{flex:1 1 0;min-height:0}.pp-rd{color:var(--text-muted);white-space:nowrap}.pp-act{white-space:nowrap;border-radius:3px;padding:1px 5px;font-size:10px}.pp-act-buy{color:#ff5c7a;background:#e945602e}.pp-act-tier1{color:#35d07f;background:#35d07f26}.pp-act-tier2{color:#35d07f;background:#35d07f40}.pp-act-stop{color:#9fb3d0;background:#7890b433}.pp-act-timeout{color:#8fa3bf;background:#7890b426}.pp-spin{vertical-align:-1px;border:2px solid;border-right-color:#0000;border-radius:50%;width:10px;height:10px;margin-right:5px;animation:.7s linear infinite pp-spin;display:inline-block}@keyframes pp-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.pp-spin{animation-duration:2.4s}}.live-pane-title{justify-content:space-between;align-items:center;gap:8px;display:flex}.t0-toggle{border:1px solid var(--border,#3a3f4b);color:var(--text-dim,#8b909a);cursor:pointer;background:0 0;border-radius:4px;padding:1px 8px;font-size:11px;line-height:17px;transition:color .15s,border-color .15s,background .15s}.t0-toggle:hover{color:var(--text,#d5d8de);border-color:#5a6070}.t0-toggle.on{color:#f0a020;background:#f0a0201a;border-color:#f0a020}.t0-mark{pointer-events:none}.t0-mark title{pointer-events:auto}.t0-bar{align-items:center;gap:6px;display:inline-flex}.t0-th{gap:2px;display:inline-flex}.t0-th button{border:1px solid var(--border,#3a3f4b);color:var(--text-dim,#8b909a);cursor:pointer;background:0 0;border-radius:3px;padding:0 5px;font-size:10px;line-height:17px}.t0-th button.on{color:#f0a020;border-color:#f0a020}.sector-view{flex-direction:column;flex:auto;min-width:0;height:100%;display:flex;overflow:hidden}.sector-head{border-bottom:1px solid var(--border,#2a2e38);flex:none;align-items:center;gap:12px;padding:8px 12px;display:flex}.sector-search{border:1px solid var(--border,#3a3f4b);color:var(--text,#d5d8de);background:#ffffff0a;border-radius:4px;width:190px;padding:6px 12px;font-size:14px}.sector-sort{gap:3px;display:flex}.sector-sort button{border:1px solid var(--border,#3a3f4b);color:var(--text-dim,#8b909a);cursor:pointer;background:0 0;border-radius:3px;padding:4px 12px;font-size:13px}.sector-sort button.on{color:#f0a020;background:#f0a0201a;border-color:#f0a020}.sector-meta{color:var(--text-dim,#8b909a);gap:16px;margin-left:auto;font-size:14px;display:flex}.sector-meta .up{color:#eb5454}.sector-meta .down{color:#26a69a}.sector-meta .dim{opacity:.6;font-variant-numeric:tabular-nums}.sector-err{color:#eb5454;padding:10px 12px;font-size:12px}.sector-empty{text-align:center;color:var(--text-dim,#8b909a);padding:24px;font-size:12px}.sector-body{flex:1;min-width:0;min-height:0;display:flex}.sector-heat{flex:auto;grid-template-columns:repeat(auto-fill,minmax(184px,1fr));grid-auto-rows:max-content;align-content:start;gap:8px;min-width:0;padding:12px;display:grid;overflow-y:auto}.heat-cell{cursor:pointer;color:var(--text,#e6e9ef);text-align:left;border:1px solid #0000;border-radius:6px;flex-direction:column;gap:4px;min-height:92px;padding:11px 12px;transition:border-color .12s,transform .12s;display:flex}.heat-cell:hover{border-color:#ffffff73;transform:translateY(-1px)}.heat-cell.sel{border-color:#f0a020}.heat-name{-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:15px;line-height:1.3;display:-webkit-box;overflow:hidden}.heat-pct{font-variant-numeric:tabular-nums;font-size:21px;font-weight:600;line-height:1.15}.heat-ratio{opacity:.78;font-variant-numeric:tabular-nums;font-size:13px}.sector-detail{border-left:1px solid var(--border,#2a2e38);flex-direction:column;flex:none;width:320px;min-height:0;display:flex}.sd-head{border-bottom:1px solid var(--border,#2a2e38);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.sd-name{font-size:14px;font-weight:600}.sd-code{color:var(--text-dim,#8b909a);margin-left:8px;font-size:11px}.sd-close{color:var(--text-dim,#8b909a);cursor:pointer;background:0 0;border:none;font-size:18px;line-height:1}.sd-stat{color:var(--text-dim,#8b909a);border-bottom:1px solid var(--border,#2a2e38);flex-wrap:wrap;gap:12px;padding:9px 12px;font-size:13px;display:flex}.sd-stat b{font-variant-numeric:tabular-nums}.sd-stat .up{color:#eb5454}.sd-stat .down{color:#26a69a}.sd-list{flex:1;overflow-y:auto}.sd-row{width:100%;color:var(--text,#d5d8de);cursor:pointer;text-align:left;background:0 0;border:none;border-bottom:1px solid #ffffff0a;grid-template-columns:88px 1fr 58px 64px;align-items:center;gap:8px;padding:7px 12px;font-size:14px;display:grid}.sd-row:hover{background:#ffffff0d}.sd-mname{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sc-ind{margin-left:4px}.sd-mcode{color:var(--text-dim,#8b909a);font-size:12px}.sd-mpx,.sd-mpct{text-align:right;font-variant-numeric:tabular-nums}.sd-mpct.up{color:#eb5454}.sd-mpct.down{color:#26a69a}.sector-charts{border-left:1px solid var(--border,#2a2e38);flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex}.sc-head{border-bottom:1px solid var(--border,#2a2e38);flex:none;align-items:center;gap:10px;padding:6px 10px;display:flex}.sc-name{font-size:13px;font-weight:600}.sc-code{color:var(--text-dim,#8b909a);font-size:11px}.sc-tf{gap:2px;margin-left:4px;display:flex}.sc-tf button{border:1px solid var(--border,#3a3f4b);color:var(--text-dim,#8b909a);cursor:pointer;background:0 0;border-radius:3px;padding:1px 9px;font-size:11px;line-height:17px}.sc-tf button.on{color:#f0a020;background:#f0a0201a;border-color:#f0a020}.sc-head .sd-close{margin-left:auto}.sc-body{flex:1;min-height:0}.sc-chart{width:100%;height:100%}.sector-body:has(.sector-charts) .sector-heat{flex:0 0 210px;grid-template-columns:1fr}.sector-body:has(.sector-charts) .heat-cell{min-height:74px;padding:9px 11px}.sector-body:has(.sector-charts) .heat-pct{font-size:18px}.sector-body:has(.sector-charts) .heat-name{-webkit-line-clamp:1;font-size:14px}.sector-body:has(.sector-charts) .sector-detail{flex:0 0 318px;width:318px}.sc-body>div{width:100%;height:100%}.indicator-tag.trained{color:#f0a020;border-color:#f0a020}.indicator-tag.tdx{opacity:.85}.live-tdx-group{color:var(--text-dim,#8b909a);opacity:.75;border-top:1px solid #ffffff0f;margin-top:2px;padding:4px 10px 2px;font-size:10px}.live-tdx-group:first-child{border-top:none;margin-top:0}.dropdown-trigger.trained-trigger{color:#f0a020}.trained-trigger+.dropdown-menu{min-width:230px}.ti-label{flex-direction:column;gap:1px;display:flex}.ti-desc{color:var(--text-dim,#8b909a);opacity:.8;font-size:10px;line-height:1.3}.dropdown-trigger.strat-trigger,.strat-menu .strat-btn{color:#e8b54d}.strat-trigger+.dropdown-menu,.strat-menu .live-tdx-menu{min-width:300px;max-width:360px}.strat-swatch{flex:none;margin:2px 2px 0 0;font-size:11px;line-height:1}.strat-trigger+.dropdown-menu .indicator-item,.strat-menu .live-tdx-item{align-items:flex-start}.strat-note{color:var(--text-dim,#8b909a);border-top:1px solid var(--border,#3a3f4b);white-space:normal;margin-top:4px;padding:6px 8px 2px;font-size:10px;line-height:1.4}.strat-empty{color:var(--text-secondary);white-space:normal;padding:10px 10px 6px;font-size:12px}.strat-gallery-btn{color:#e8b54d;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #e8b54d73;border-radius:4px;align-self:center;padding:0 8px;font-size:12px;line-height:1.6}.strat-gallery-btn:hover:not(:disabled){background:#e8b54d1f}.strat-gallery-btn:disabled{color:var(--text-muted);border-color:var(--border);cursor:default}.strat-gallery-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sg-overlay{z-index:1000;background:#06080eb8;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.sg-panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;flex-direction:column;width:min(1280px,100%);max-height:calc(100vh - 32px);display:flex;overflow:hidden;box-shadow:0 12px 40px #00000080}.sg-head{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 12px 10px 16px;display:flex}.sg-title{color:var(--text-primary);white-space:nowrap;font-size:15px;font-weight:700}.sg-tabs{gap:6px;min-width:0;display:flex;overflow-x:auto}.sg-tabs button{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;padding:3px 10px;font-size:12px}.sg-tabs button.active{color:#e8b54d;background:#e8b54d1a;border-color:#e8b54d99}.sg-tabs button:focus-visible,.sg-close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.sg-close{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:4px 8px;font-size:16px;line-height:1}.sg-close:hover{color:var(--text-primary);background:var(--bg-tertiary)}.sg-body{padding:12px 16px 16px;overflow:auto}.sg-body img{background:#0e1420;border-radius:4px;width:100%;height:auto;display:block}.sg-caption{color:var(--text-secondary);margin:8px 0 12px;font-size:13px;line-height:1.5}.sg-list{border-top:1px solid var(--border);grid-template-columns:auto max-content 1fr;align-items:baseline;gap:6px 8px;padding-top:10px;font-size:12.5px;display:grid}.sg-row{display:contents}.sg-name{color:var(--text-primary);white-space:nowrap;font-weight:600}.sg-note{color:var(--text-secondary);font-variant-numeric:tabular-nums;line-height:1.45}.sg-summary{color:var(--text-secondary);opacity:.85;margin:10px 0 0;font-size:12px;line-height:1.5}@media (width<=640px){.sg-overlay{align-items:stretch;padding:0}.sg-panel{border-radius:0;max-height:100vh}.sg-head{flex-wrap:wrap}.sg-tabs{order:3;width:100%}.sg-list{grid-template-columns:auto 1fr}.sg-note{grid-column:2}}.trained-menu .trained-btn{color:#f0a020}.trained-menu .live-tdx-menu{min-width:240px}.sc-ind{align-items:center;gap:6px;margin-left:4px;display:flex}.sc-ind .live-tdx-btn{font-size:11px}.trained-screen{border-right:1px solid var(--border,#2a2e38);flex:0 0 660px;min-width:0;height:100%;display:flex;overflow:hidden}.ts-side{border-right:1px solid var(--border,#2a2e38);flex:0 0 190px;padding:10px 8px;overflow-y:auto}.ts-title{color:var(--text-dim,#8b909a);padding:0 4px 8px;font-size:12px}.ts-ind{text-align:left;border:1px solid var(--border,#3a3f4b);cursor:pointer;width:100%;color:var(--text,#d5d8de);background:0 0;border-radius:5px;align-items:center;gap:6px;margin-bottom:6px;padding:8px 10px;display:flex}.ts-ind:hover{border-color:#5a6070}.ts-ind.on{background:#f0a02017;border-color:#f0a020}.ts-ind-label{font-size:13px;font-weight:600}.ts-ind.on .ts-ind-label{color:#f0a020}.ts-ind-label{flex:1;min-width:0}.ts-ind-info{text-align:center;height:16px;color:var(--text-dim,#8b909a);opacity:.6;border:1px solid;border-radius:50%;flex:0 0 16px;font:italic 600 10px/16px Georgia,serif}.ts-ind-info:hover{opacity:1;color:#f0a020}.ts-desc-box{width:420px;max-height:calc(70vh / var(--font-zoom,1))}.ts-desc-body{color:var(--text,#d5d8de);white-space:pre-wrap;padding:12px 14px;font-size:12px;line-height:1.6;overflow-y:auto}.ts-main{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.ts-bar{border-bottom:1px solid var(--border,#2a2e38);flex:none;align-items:center;gap:4px;padding:8px 10px;display:flex}.ts-bar-label{color:var(--text-dim,#8b909a);margin-right:2px;font-size:11px}.ts-bar-sep{width:10px}.ts-bar button{border:1px solid var(--border,#3a3f4b);color:var(--text-dim,#8b909a);cursor:pointer;background:0 0;border-radius:3px;padding:2px 9px;font-size:12px}.ts-bar button.on{color:#f0a020;background:#f0a0201a;border-color:#f0a020}.ts-bar-stat{color:var(--text-dim,#8b909a);margin-left:auto;font-size:12px}.ts-err{color:#eb5454;padding:8px 10px;font-size:12px}.ts-table{flex-direction:column;flex:1;min-height:0;display:flex}.ts-head,.ts-row{grid-template-columns:48px minmax(84px,1fr) 60px 46px 60px 66px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:grid}.ts-head{color:var(--text-dim,#8b909a);border-bottom:1px solid var(--border,#2a2e38);flex:none;font-size:11px}.ts-head .r,.ts-row .r{text-align:right;font-variant-numeric:tabular-nums}.ts-rows{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:0;overflow-y:auto}.ts-row{width:100%;color:var(--text,#d5d8de);cursor:pointer;text-align:left;background:0 0;border:none;border-bottom:1px solid #ffffff0a}.ts-row:hover{background:#ffffff0d}.ts-row.sel{background:#f0a0201f}.ts-date{color:var(--text-dim,#8b909a);font-variant-numeric:tabular-nums}.ts-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ts-code{color:var(--text-dim,#8b909a);font-size:11px}.ts-rank{color:#f0a020;font-weight:600}.ts-help{cursor:help;border-bottom:1px dotted}.ts-row .up{color:#eb5454}.ts-row .down{color:#26a69a}.ts-empty{text-align:center;color:var(--text-dim,#8b909a);padding:20px;font-size:12px}.ts-loading{justify-content:center;align-items:center;gap:8px;padding:28px 20px;display:flex}.ts-spinner{border:2px solid var(--border,#3a3f4b);border-top-color:#f0a020;border-radius:50%;width:14px;height:14px;animation:.8s linear infinite ts-spin}@keyframes ts-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ts-spinner{animation:none}}.stock-sectors{border-bottom:1px solid var(--border,#2a2e38);flex-wrap:wrap;flex:none;align-items:center;gap:5px;min-height:30px;padding:5px 10px;display:flex}.ss-label{color:var(--text-dim,#8b909a);margin-right:2px;font-size:11px}.ss-chip{border:1px solid var(--border,#3a3f4b);cursor:pointer;color:var(--text,#d5d8de);background:#ffffff0a;border-radius:3px;align-items:center;gap:5px;padding:2px 8px;font-size:12px;display:inline-flex}.ss-chip:hover{background:#ffffff12;border-color:#5a6070}.ss-name{text-overflow:ellipsis;white-space:nowrap;max-width:96px;overflow:hidden}.ss-pct{font-variant-numeric:tabular-nums;font-weight:600}.ss-pct.up{color:#eb5454}.ss-pct.down{color:#26a69a}.ss-ratio{color:var(--text-dim,#8b909a);font-variant-numeric:tabular-nums;font-size:10px}.ss-more{border:1px dashed var(--border,#3a3f4b);color:var(--text-dim,#8b909a);cursor:pointer;background:0 0;border-radius:3px;padding:2px 8px;font-size:11px}.sector-trend{border-bottom:1px solid var(--border,#2a2e38);flex:none;padding:4px 0 2px}.st-head{color:var(--text-dim,#8b909a);white-space:nowrap;justify-content:space-between;align-items:baseline;gap:8px;padding:0 10px 1px;font-size:11px;display:flex}.st-title{color:var(--text-dim,#8b909a);font-size:11px}.st-sub{color:var(--text-dim,#8b909a);white-space:nowrap;align-items:baseline;gap:6px;padding:0 10px 3px;font-size:11px;display:flex}.st-sub b{font-variant-numeric:tabular-nums}.st-sub .up{color:#eb5454}.st-sub .down{color:#26a69a}.st-updn{opacity:.8}.st-cum b,.st-hover b{font-variant-numeric:tabular-nums}.st-cum .up,.st-hover .up{color:#eb5454}.st-cum .down,.st-hover .down{color:#26a69a}.st-cum b{margin-left:3px}.st-legend{color:var(--text-dim,#8b909a);gap:12px;padding:0 10px 4px;font-size:10px;display:flex}.st-legend i{vertical-align:middle;width:10px;height:8px;margin-right:4px;display:inline-block}.st-legend .lg-bar{background:#eb5454}.st-legend .lg-line{background:#f0a020;height:2px}.cov-warn{color:#f0a020;font-size:11px}.fav-btn{border:1px solid var(--border,#3a3f4b);color:var(--text-dim,#8b909a);cursor:pointer;white-space:nowrap;background:0 0;border-radius:3px;padding:2px 9px;font-size:12px;transition:color .12s,border-color .12s}.fav-btn:hover{color:var(--text,#d5d8de);border-color:#5a6070}.fav-btn.on{color:#f5c542;background:#f5c5421a;border-color:#f5c542}.fav-btn:disabled{opacity:.6;cursor:default}.live-title .fav-btn{margin-left:8px}.sc-head .fav-btn{margin-left:6px;padding:1px 7px;font-size:11px}.add-pool{margin-left:8px;position:relative}.ap-trigger{color:#f0a020;cursor:pointer;white-space:nowrap;background:#f0a0201a;border:1px solid #f0a020;border-radius:3px;padding:2px 10px;font-size:12px}.ap-trigger:hover{background:#f0a0202e}.ap-menu{z-index:30;background:var(--panel,#1b1e28);border:1px solid var(--border,#3a3f4b);border-radius:5px;min-width:190px;max-height:300px;margin-top:4px;padding:4px;position:absolute;top:100%;right:0;overflow-y:auto;box-shadow:0 6px 20px #00000073}.ap-item{text-align:left;width:100%;color:var(--text,#d5d8de);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:3px;padding:5px 9px;font-size:12px;display:block;overflow:hidden}.ap-item:hover{background:#ffffff12}.ap-item.ap-new{color:#f0a020}.ap-item:disabled{opacity:.5;cursor:default}.ap-sep{color:var(--text-dim,#8b909a);border-top:1px solid #ffffff0f;margin-top:3px;padding:5px 9px 2px;font-size:10px}.ap-msg{color:#26a69a;padding:5px 9px;font-size:11px}.sector-period{border-right:1px solid var(--border,#2a2e38);margin-right:4px;padding-right:8px}.pane-close{z-index:6;text-align:center;width:18px;height:18px;color:var(--text-dim,#8b909a);border:1px solid var(--border,#3a3f4b);cursor:pointer;opacity:.55;background:#1e222cbf;border-radius:3px;padding:0;font-size:14px;line-height:16px;transition:opacity .15s;position:absolute}.pane-close:hover{opacity:1;color:#eb5454;border-color:#eb5454}.chart-info-row{align-items:center;gap:8px;min-width:0;display:flex}.chart-info-row .stock-sectors{flex:1;min-width:0}.indicator-item.ref-item{border-top:1px solid var(--border,#3a3f4b);margin-top:4px;padding-top:8px}.overlay-sep{background:#2a2f3a;height:1px;margin:4px 6px}.overlay-clear{color:#ff6b6b}.overlay-clear:hover{background:#ff6b6b1f}.pp-acct-sel{color:#c8d0dd;background:#1a1f2b;border:1px solid #2a3141;border-radius:4px;max-width:260px;margin-left:8px;padding:3px 6px;font-size:12px}.pp-acct-sel:hover{border-color:#3d4759}.ts-search{box-sizing:border-box;color:#c8d0dd;background:#12161f;border:1px solid #2a3141;border-radius:4px;width:100%;margin-bottom:6px;padding:5px 8px;font-size:12px}.ts-search:focus{border-color:#3d6ea5;outline:none}.ts-search::placeholder{color:#5a6478}.ts-reset{color:#7a8598;cursor:pointer;background:0 0;border:1px dashed #2a3141;border-radius:4px;width:100%;margin-bottom:6px;padding:3px 6px;font-size:11px}.ts-reset:hover{color:#c8d0dd;border-color:#3d4759}.ts-ind.draggable{cursor:grab}.ts-ind.draggable:active{cursor:grabbing}.ts-ind.draggable:before{content:"⋮⋮";color:#39415280;letter-spacing:-2px;font-size:10px;position:absolute;top:50%;left:3px;transform:translateY(-50%)}.ts-ind.draggable{padding-left:16px;position:relative}.ts-ind.draggable:hover:before{color:#6a7488}.std-menu .live-tdx-group{color:#6a7488;padding:3px 8px 2px;font-size:11px}.pp-warn{color:#f59e0b;white-space:nowrap;margin:0 4px;font-size:11px}.pp-soon{color:#f59e0b;font-weight:600}.pp-na{color:var(--muted);cursor:help}*{scrollbar-width:thin;scrollbar-color:var(--border) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);background-clip:content-box;border:2px solid #0000;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#3a3a58 padding-box content-box}::-webkit-scrollbar-corner{background:0 0}.pool-page{flex:1;padding:20px 24px 60px;overflow:auto}.pool-head h2{color:var(--text-primary);margin:0 0 8px;font-size:20px}.pool-head p{color:var(--text-secondary);margin:0 0 20px;font-size:13px;line-height:1.8}.pool-head b{color:var(--accent);font-weight:600}.pool-err{color:var(--up);padding:12px}.pool-empty{color:var(--text-muted);padding:20px}.pool-list{flex-direction:column;gap:10px;max-width:1000px;display:flex}.pool-card{border:1px solid var(--border);background:var(--bg-secondary);border-radius:8px;overflow:hidden}.pool-card.on{border-color:#3a3a60}.pool-card-head{cursor:pointer;width:100%;color:var(--text-primary);text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:12px 14px 6px;font-size:14px;display:flex}.pool-card-head:hover{background:#ffffff05}.pool-tri{color:var(--text-muted);font-size:11px}.pool-name{font-size:15px;font-weight:600}.pool-ratio{color:var(--text-secondary);background:var(--bg-tertiary);border-radius:999px;padding:2px 8px;font-family:ui-monospace,monospace;font-size:12px}.pool-ratio.pass{color:#4caf50;background:#4caf501f}.pool-ratio em{margin-left:5px;font-size:11px;font-style:normal}.pool-since{color:var(--text-muted);margin-left:auto;font-size:12px}.pool-live{color:var(--up);background:#e9456024;border-radius:999px;padding:2px 7px;font-size:11px}.pool-summary{color:var(--text-secondary);padding:0 14px 12px 34px;font-size:13px;line-height:1.7}.pool-detail{border-top:1px solid var(--border);background:var(--bg-primary);color:var(--text-primary);white-space:pre-wrap;word-break:break-word;margin:0;padding:14px 18px 16px 34px;font:400 12.5px/1.9 ui-monospace,SF Mono,Menlo,monospace}.pp-asof .pp-lag{color:#8a94a6;margin-top:3px;font-size:11px;font-style:normal;line-height:1.5;display:block}.pp-asof .pp-lag b{color:#b8c2d4;font-weight:600}.pp-signals-stale{border-left:2px solid #b7791f}.pp-signals-stale .pp-signals-t{color:#d69e2e}.pp-signals-flat{border-left:2px solid #4a5568}.pp-signals-flat .pp-signals-t{color:#8a94a6}.pp-lbl{color:#8a94a6;flex:none;font-size:11px}.pp-switch-hint{color:#d69e2e;flex:0 0 100%;order:9;font-size:11px;line-height:1.5}.pp-replay-end{color:#8a94a6;margin-left:8px;font-size:11px}.pp-replay-end.done{color:#d69e2e;font-weight:600}.pp-rules-sum{color:var(--text-muted);margin-left:8px;font-size:11px}.pp-slots{width:52px;min-width:52px}.pp-prio{width:104px;min-width:104px}.pp-params{align-items:flex-start;width:100%}.pp-live-asof{color:var(--text-primary);font-size:12px;font-weight:600}.pp-live-asof .pp-lag{font-weight:400}.pp-empty-demo{color:var(--text-muted,#8b909a);padding:28px 18px;font-size:13px}.pp-empty-demo>div:first-child{color:var(--text-primary,#d5d8de);margin-bottom:6px;font-size:15px;font-weight:600}.pp-empty-sub{margin-bottom:14px;font-size:12px}.pp-empty-row{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.pp-param-sum{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;border-radius:5px;max-width:100%;padding:5px 9px;font-size:11.5px;overflow:hidden}.pp-param-sum:hover{color:var(--text-primary);border-color:#4a5568}.pp-param-grid{display:none}.pp-param-grid.open{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:center;gap:6px;width:100%;margin-top:6px;padding-top:6px;display:flex}@media (width<=700px){.pp-param-grid.open{grid-template-columns:auto minmax(0,1fr);gap:5px 8px;min-width:0;max-width:100%;display:grid}.pp-param-grid.open .pp-date{width:100%;min-width:0;margin:0}.pp-param-grid.open .pp-slots,.pp-param-grid.open .pp-prio{width:100%;min-width:0}.pp-params,.pp-actions{min-width:0;max-width:100%}}.m-layout{height:calc(100dvh / var(--font-zoom,1))}.m-layout .app-navbar{display:none}.m-topbar{height:44px;padding:0 12px;padding-top:env(safe-area-inset-top);height:calc(44px + env(safe-area-inset-top));background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;display:flex}.m-title{color:var(--text-primary);font-size:15px;font-weight:600}.m-topbar-chart{text-overflow:ellipsis;white-space:nowrap;background:var(--bg-tertiary);max-width:55%;color:var(--text-secondary);border:none;border-radius:14px;margin-left:auto;padding:5px 12px;font-size:12px;overflow:hidden}.m-body{flex-direction:column;flex:1;min-height:0;overflow:hidden}.m-body>*{flex:auto;min-height:0;width:100%!important;max-width:none!important}.m-body .search-panel,.m-body .pool-panel,.m-body .paper-panel{border-right:none}.m-body>div>.paper-panel{flex:auto;min-height:0;width:100%!important;max-width:none!important}.m-body .bp-sum{grid-template-columns:repeat(3,1fr)}.m-body .sector-charts,.m-body .sector-detail .chart-area{display:none}.m-body button,.m-body .fav-item,.m-body .recent-item{min-height:34px}.m-body table{font-size:12px}.m-tabbar{background:var(--bg-secondary);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);flex-shrink:0;display:flex}.m-tabbar button{cursor:pointer;color:var(--text-muted);background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:2px;padding:7px 0 6px;font-size:11px;display:flex}.m-tabbar button.active{color:var(--accent)}.m-tab-icon{font-size:16px;line-height:1}.m-sheet-mask{z-index:40;background:#00000073;position:fixed;inset:0}.m-sheet{z-index:41;left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom));background:var(--bg-secondary);border-top:1px solid var(--border);flex-direction:column;display:flex;position:fixed}.m-sheet button{border:none;border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;flex-direction:column;align-items:flex-start;gap:2px;padding:11px 16px;display:flex}.m-sheet button b{color:var(--text-primary);font-size:14px;font-weight:600}.m-sheet button span{color:var(--text-muted);font-size:11px}.m-sheet button.active b{color:var(--accent)}.m-detail{z-index:50;background:var(--bg-primary);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex;position:fixed;inset:0}.m-detail-bar{background:var(--bg-secondary);border-bottom:1px solid var(--border);flex-shrink:0;align-items:center;gap:8px;height:44px;padding:0 8px;display:flex}.m-back{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:6px 8px;font-size:15px}.m-detail-name{color:var(--text-primary);font-size:14px;font-weight:600}.m-detail-code{color:var(--text-muted);font-size:11px}.m-detail>.chart-area,.m-detail>.live-view{flex:1;min-height:0}.m-detail .chart-toolbar{flex-wrap:wrap;row-gap:4px;height:auto;padding:4px 6px}.m-body .trained-screen{flex-direction:column;min-height:0}.m-body .ts-side{border-right:none;border-bottom:1px solid var(--border,#2a2e38);-webkit-overflow-scrolling:touch;flex:none;gap:6px;width:100%;padding:8px 10px;display:flex;overflow:auto hidden}.m-body .ts-side::-webkit-scrollbar{display:none}.m-body .ts-title,.m-body .ts-search,.m-body .ts-reset{display:none}.m-body .ts-ind{white-space:nowrap;flex:none;width:auto}.m-body .ts-ind-info{display:none}.m-body .ts-head,.m-body .ts-row{grid-template-columns:40px minmax(64px,1fr) 38px 54px 60px}.m-body .ts-head>:nth-child(3),.m-body .ts-row>:nth-child(3){display:none}.m-body .ts-bar{flex-wrap:wrap;row-gap:4px}.m-body .ts-bar-stat{margin-left:auto}.m-body .paper-panel .pp-table-wrap{overflow-x:auto}.m-body .paper-panel table{min-width:560px}.m-body .sector-body{flex-direction:column;overflow-y:auto}.m-body .sector-head{flex-wrap:wrap;row-gap:6px}.m-body .sector-heat{grid-template-columns:1fr;gap:6px;padding:8px 10px}.m-body .heat-cell{flex-direction:row;align-items:center;gap:10px;min-height:68px;padding:16px 14px}.m-body .heat-name{-webkit-line-clamp:1;white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:15px;font-weight:600}.m-body .heat-pct{flex:none;font-size:18px}.m-body .heat-ratio{text-align:right;flex:none;min-width:54px;font-size:12px}.pp-risk{color:var(--text-muted);font-variant-numeric:tabular-nums}.pp-risk.mid{color:#f0a020;font-weight:600}.pp-risk.hi{color:#eb5454;font-weight:700}.live-mtab{border-bottom:1px solid var(--border);flex-shrink:0;gap:6px;padding:6px 10px;display:flex}.live-mtab button{background:var(--bg-tertiary);color:var(--text-secondary);border:none;border-radius:6px;flex:1;padding:7px 0;font-size:13px;font-weight:600}.live-mtab button.on{background:var(--accent);color:#fff}.live-panes-m{flex-direction:column}.live-panes-m>.live-pane{flex:auto;min-height:0;width:100%!important}.m-detail .live-pane-first{flex-direction:column;min-height:0;display:flex}.m-detail .live-pane-split{display:contents}.m-detail .live-orderbook{flex:none;order:1;width:100%;max-height:200px;overflow-y:auto}.m-detail .live-pane-first>.live-pane-title{order:2}.m-detail .live-pane-first>.live-pane-body{flex:auto;order:3;min-height:0}.ss-fold{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:13px}.stock-sectors.ss-folded{flex-wrap:nowrap;overflow:hidden}.stock-sectors.ss-folded .ss-chip{flex:none}.m-seg{background:var(--bg-tertiary);border-radius:7px;margin-left:auto;padding:2px;display:flex}.m-seg button{color:var(--text-secondary);background:0 0;border:none;border-radius:5px;padding:5px 12px;font-size:12px;font-weight:600}.m-seg button.on{background:var(--accent);color:#fff}@media (hover:none){.dropdown-container:hover .dropdown-menu{display:none}.dropdown-container.open .dropdown-menu{display:block}.live-tdx:hover .live-tdx-menu{display:none}.live-tdx:focus-within .live-tdx-menu{display:block}.dropdown-menu label,.live-tdx-menu label{-webkit-tap-highlight-color:transparent}}.remove-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;padding:0;font-size:15px;line-height:1;display:inline-flex}.remove-btn:hover{color:#eb5454;background:#eb54541f}.m-body .remove-btn{width:30px;height:30px;min-height:0;font-size:17px}.m-body .pp-title{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:8px;padding:8px 10px;overflow-x:auto}.m-body .pp-title::-webkit-scrollbar{display:none}.m-body .pp-switch button,.m-body .pp-title select{white-space:nowrap;color:#fff;flex:none;min-height:0;padding:7px 14px;font-size:13px}.m-body .pp-switch button:not(.on){color:var(--text-secondary)}.m-body .pp-title select{max-width:60vw}.m-body .pp-signals-list{flex-wrap:nowrap;gap:6px;max-height:none;padding-bottom:4px;display:flex;overflow-x:auto}.m-body .pp-signals-list::-webkit-scrollbar{display:none}.m-body .pp-signals-list>*{flex:none}.m-body .pp-signals-hint{display:none}.sd-back{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:4px 8px 4px 0;font-size:14px}.m-body .sector-detail{border-left:none;flex:auto;width:100%;min-height:0}.m-body .sd-list{overflow-y:auto}.pp-sig.buy{color:#f5c451;background:#f5c4511a;border-color:#f5c4518c;font-weight:600}.pp-sig.buy:before{content:"★ ";opacity:.9;font-size:10px}.heat-trend{opacity:.72;white-space:nowrap;text-overflow:ellipsis;font-size:10px;line-height:1.25;display:block;overflow:hidden}.m-font-btn{background:var(--bg-tertiary);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;white-space:nowrap;border-radius:6px;margin-left:auto;padding:4px 10px;font-size:12px}.m-font-btn:active{background:var(--border)}.main-chart{zoom:calc(1 / var(--font-zoom,1))}.pp-detail{width:min(92vw,420px);max-height:calc(80vh / var(--font-zoom,1))}.pp-detail .dialog-header{font-size:17px}.pp-detail-body{padding:6px 14px;overflow-y:auto}.pp-detail-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;font-size:15px;display:flex}.pp-detail-row span{color:var(--text-muted);flex:none}.pp-detail-row b{font-variant-numeric:tabular-nums;text-align:right;font-size:17px}.pp-detail-row.up b{color:#e94560}.pp-detail-row.down b{color:#4caf50}.pp-detail-actions{gap:10px;padding:12px 14px;display:flex}.pp-detail-actions button{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text);border-radius:8px;flex:1;padding:12px;font-size:15px}.pp-detail-actions button:first-child{background:var(--accent);color:#fff;border-color:var(--accent)}.m-body .paper-panel{overflow-y:auto}.m-body .paper-panel>.pp-table-wrap{min-height:calc(45vh / var(--font-zoom,1));flex:none}.pp-expand{margin-left:auto}.pp-sheet{z-index:120;background:var(--bg-primary);height:calc(100dvh / var(--font-zoom,1));flex-direction:column;display:flex;position:fixed;inset:0}.pp-sheet-head{border-bottom:1px solid var(--border);padding:10px 12px;padding-top:max(10px, env(safe-area-inset-top));align-items:center;gap:8px;display:flex}.pp-sheet-head .pp-tabs{flex:1;margin:0}.pp-sheet-close{border:1px solid var(--border);color:var(--text);background:0 0;border-radius:8px;padding:8px 12px;font-size:16px}.pp-sheet-body{padding:10px 12px calc(20px + env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:8px;display:flex;overflow-y:auto}.pp-card{background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;border-radius:10px;padding:12px 14px}.pp-card-top{justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.pp-card-name{font-size:17px;font-weight:600}.pp-card-name em{color:var(--text-muted);margin-left:6px;font-size:12px;font-style:normal;font-weight:400}.pp-card-top b{font-variant-numeric:tabular-nums;font-size:18px}.pp-card-row{font-variant-numeric:tabular-nums;justify-content:space-between;gap:10px;font-size:14px;display:flex}.pp-card-row.muted{color:var(--text-muted);margin-top:4px;font-size:13px}.pp-card .up,.pp-sheet .up{color:#e94560}.pp-card .down,.pp-sheet .down{color:#4caf50}.m-body .sector-view{overflow-y:auto}.m-body .sector-body{flex:none;min-height:auto;overflow:visible}.m-body .sector-heat{overflow:visible}.m-body .sector-detail{flex:none;min-height:auto}.m-body .sd-list{flex:none;overflow:visible}.sector-kline{border-bottom:1px solid var(--border,#2a2e38);flex:none;padding:4px 0 2px}.sk-head{justify-content:space-between;align-items:center;padding:0 10px 2px;display:flex}.sk-ranges{gap:4px;display:flex}.sk-ranges button{border:1px solid var(--border,#3a3f4b);color:var(--text-dim,#8b909a);cursor:pointer;background:0 0;border-radius:4px;padding:1px 7px;font-size:11px}.sk-ranges button.on{color:#f0a020;background:#f0a0201a;border-color:#f0a020}.sk-chg{color:var(--text-dim,#8b909a);font-size:11px}.sk-chg b,.sk-sub b{font-variant-numeric:tabular-nums}.sk-sub{color:var(--text-dim,#8b909a);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:8px;padding:0 10px 3px;font-size:11px;display:flex}.sk-sub .ma5{color:#f5c542}.sk-sub .ma20{color:#a78bfa}.sector-kline .up,.sk-sub .up{color:#eb5454}.sector-kline .down,.sk-sub .down{color:#26a69a}.m-body .sk-sub{font-size:13px}.m-body .sk-ranges button{padding:4px 10px;font-size:13px}.risk-badge{color:#fca5a5;white-space:nowrap;text-overflow:ellipsis;cursor:help;background:#ef44441f;border-left:3px solid #ef4444;border-radius:3px;flex:none;margin:4px 10px 2px;padding:2px 8px;font-size:12px;display:block;overflow:hidden}.risk-badge em{opacity:.6;margin-left:6px;font-style:normal}.col-split{cursor:col-resize;border-left:1px solid var(--border,#2a2e38);background:0 0;flex:0 0 5px;margin-left:-1px;transition:background .12s}.col-split:hover,body.col-resizing .col-split{background:#f0a02059}body.col-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}body.col-resizing canvas{pointer-events:none}.game-page{flex:1;gap:10px;min-width:0;min-height:0;padding:10px;display:flex}.game-chart-wrap{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;flex:1;min-width:0;min-height:0;display:flex;position:relative}.game-chart{flex:1;min-width:0;min-height:0}.game-side{background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;flex-direction:column;flex:none;gap:10px;width:330px;padding:12px;display:flex;overflow-y:auto}.game-page .up{color:var(--up)}.game-page .down{color:var(--down)}.game-intro{max-width:600px;color:var(--text-primary);margin:auto;padding:24px;line-height:1.8}.game-intro h2{margin:0 0 12px;font-size:22px}.game-intro ul{color:var(--text-secondary);margin:0 0 20px;padding-left:20px;font-size:15px}.game-progress{flex-direction:column;gap:6px;font-size:14px;display:flex}.game-bar{background:var(--bg-tertiary);border-radius:3px;height:6px;overflow:hidden}.game-bar>div{background:var(--accent);height:100%}.game-today{align-items:center;gap:8px;font-size:14px;display:flex}.game-tag{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:3px;padding:1px 6px;font-size:12px}.game-tag.up{color:var(--up)}.game-tag.down{color:var(--down)}.game-acct{background:var(--bg-tertiary);border-radius:6px;gap:6px;padding:10px;display:grid}.game-acct>div{align-items:baseline;gap:8px;font-size:14px;display:flex}.game-acct span{color:var(--text-secondary);flex:none;width:48px}.game-acct b{font-variant-numeric:tabular-nums;font-size:16px}.game-acct i{font-variant-numeric:tabular-nums;font-size:13px;font-style:normal}.game-btns{gap:8px;display:flex}.game-btn{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;border-radius:6px;flex:1;padding:9px 8px;font-size:15px}.game-btn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.game-btn small{opacity:.6;margin-left:4px;font-size:11px}.game-btn:disabled{opacity:.4;cursor:not-allowed}.game-btn.buy{border-color:var(--up);color:#ffd7de;background:#5a1f2c}.game-btn.sell{border-color:var(--down);color:#d4f5dc;background:#1d4a2b}.game-btn.primary{border-color:var(--accent);color:#e6f8ff;background:#1c4f63}.game-btn.big{flex:none;padding:12px 28px;font-size:17px}.game-btn.wide{flex:none;width:100%}.game-btn.ghost{color:var(--text-secondary);background:0 0;font-size:13px}.game-btn.warn{color:#f5b942;border-color:#f5b942}.game-hint{color:var(--text-secondary);font-size:13px}.game-msg{color:#f5b942;font-size:13px}.game-ind{gap:6px;display:grid}.game-tf{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.game-tf span{flex:none;width:36px}.game-tf button{border:1px solid var(--border);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;border-radius:4px;flex:1;padding:4px 0;font-size:13px}.game-tf button.on{border-color:var(--accent);color:var(--text-primary);background:#1c4f63}.game-ind label{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.game-ind select{background:var(--bg-tertiary);min-width:0;color:var(--text-primary);border:1px solid var(--border);border-radius:4px;flex:1;padding:4px;font-size:13px}.game-sec-title{color:var(--text-secondary);letter-spacing:.05em;margin-bottom:4px;font-size:13px}.game-trades{flex-direction:column;gap:2px;font-size:13px;display:flex}.game-trade{border-bottom:1px solid var(--border);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:6px;padding:4px 0;display:flex}.game-holding{color:#f5b942}.game-empty{color:var(--text-muted);font-size:13px}.game-note{color:var(--text-muted);font-size:12px}.game-result{flex-direction:column;gap:10px;display:flex}.game-final{align-items:baseline;gap:10px;display:flex}.game-final b{font-variant-numeric:tabular-nums;font-size:28px}.game-final i{font-variant-numeric:tabular-nums;font-size:18px;font-style:normal}.game-vs{color:var(--text-secondary);font-size:14px}.game-stats{border-collapse:collapse;width:100%;font-size:13px}.game-stats td{border-bottom:1px solid var(--border);vertical-align:top;padding:5px 0}.game-stats td:first-child{color:var(--text-secondary);width:76px}.game-reveal{background:var(--bg-tertiary);border-radius:6px;padding:10px;font-size:14px;line-height:1.7}@media (width<=767px){.game-page{flex-direction:column;gap:6px;padding:6px;overflow-y:auto}.game-chart-wrap{height:calc(60vh / var(--font-zoom,1));flex:none}.game-side{width:auto;overflow:visible}.game-btn{padding:12px 8px;font-size:16px}}.game-cmp-wrap{overflow-x:auto}.game-cmp{font-size:12px}.game-cmp td{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding:5px 3px}.game-cmp td:first-child{text-align:left;width:auto;padding-left:0}.game-cmp thead td{color:var(--text-secondary);font-size:12px}.game-cmp thead td.best:after{content:" ★";color:#f5c84c}.game-cmp-pick{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 4px;font-size:12px;display:flex}.game-cmp-pick button{border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;padding:3px 9px;font-size:12px}.game-cmp-pick button.on{border-color:var(--accent);color:var(--text-primary,#e6f8ff);background:#38bdf81f}.game-tabs{border-bottom:1px solid var(--border);gap:0;margin-top:4px;display:flex}.game-tabs button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 0;font-size:15px}.game-tabs button.on{color:var(--text-primary,#e6f8ff);border-bottom-color:var(--accent);font-weight:600}.game-tabs button:hover{color:var(--text-primary,#e6f8ff)}.game-tabbody{flex-direction:column;gap:8px;padding-top:8px;display:flex}.game-chart-wrap:has(>.gs-card){background:var(--bg-primary) url(/game-bg.jpg) center / cover no-repeat;border-color:#0000}.game-intro.gs-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:22px;width:calc(100% - 48px);max-width:720px;margin:auto;padding:32px 36px;line-height:1.5;display:flex;box-shadow:0 12px 40px #00000059}.gs-head h2{letter-spacing:.5px;margin:0 0 6px;font-size:26px}.gs-head p{color:var(--text-secondary);margin:0;font-size:15px}.gs-rules{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.gs-rules>div{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:3px;padding:10px 12px;display:flex}.gs-rules b{color:var(--accent);font-size:14px;font-weight:600}.gs-rules span{color:var(--text-secondary);font-size:13px;line-height:1.45}.gs-setup{flex-direction:column;gap:12px;display:flex}.gs-row{align-items:center;gap:12px;display:flex}.gs-label{width:64px;color:var(--text-secondary);flex:none;font-size:14px}.gs-seg{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;flex:1;gap:0;min-width:0;padding:3px;display:flex}.gs-seg button{min-width:0;color:var(--text-secondary);cursor:pointer;font-variant-numeric:tabular-nums;background:0 0;border:none;border-radius:6px;flex:1;padding:7px 0;font-size:14px}.gs-seg button:hover{color:var(--text-primary)}.gs-seg button.on{color:#e6f8ff;background:#1c4f63;font-weight:600}.gs-input{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);box-sizing:border-box;border-radius:8px;outline:none;width:100%;padding:8px 12px;font-size:14px}.gs-input:focus{border-color:var(--accent)}.gs-input::placeholder{color:var(--text-muted)}.gs-seg .gs-num{text-align:center;background:0 0;border:none;border-radius:6px;flex:0 0 72px;width:72px;padding:6px 8px}.gs-seg .gs-num.on{color:#e6f8ff;background:#1c4f63}.gs-seg .gs-num::placeholder{color:inherit;opacity:.7}.gs-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.gs-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.gs-stock{flex:1;min-width:0;position:relative}.gs-chip{border:1px solid var(--accent);background:#1c4f63;border-radius:8px;align-items:center;gap:8px;padding:6px 6px 6px 12px;font-size:14px;display:inline-flex}.gs-chip span{color:#9fd8ea;font-variant-numeric:tabular-nums}.gs-chip button{color:#cfefff;cursor:pointer;background:0 0;border:none;padding:0 6px;font-size:16px}.gs-chip button:hover{color:#fff}.gs-drop{z-index:30;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:hidden;box-shadow:0 8px 24px #0006}.gs-drop>div{cursor:pointer;justify-content:space-between;padding:8px 12px;font-size:14px;display:flex}.gs-drop>div:hover{background:#1c4f63}.gs-drop span{color:var(--text-secondary);font-variant-numeric:tabular-nums}.gs-go{align-items:center;gap:16px;display:flex}.gs-go .game-btn.big{border-radius:10px;padding:12px 40px;font-size:17px}.gs-go span{color:var(--text-secondary);font-size:14px}.game-result .gs-setup{margin:4px 0 8px}.game-result .gs-row{flex-direction:column;align-items:stretch;gap:6px}.game-result .gs-label{width:auto;font-size:13px}.game-result .gs-seg .gs-num{flex-basis:56px;width:56px}@media (width<=760px){.gs-rules{grid-template-columns:repeat(2,1fr)}}.game-intro.gs-card{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#1a1a2edb}.bp-intro{color:var(--text-secondary);flex-direction:column;gap:4px;margin:10px 0;font-size:13px;line-height:1.6;display:flex}.bp-intro b{color:var(--text-primary);font-size:15px}.bp-model{color:var(--accent)}.bp-sum{grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px;display:grid}.bp-sum>div{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;display:flex}.bp-sum i{color:var(--text-secondary);font-size:12px;font-style:normal}.bp-sum b{font-variant-numeric:tabular-nums;font-size:18px}.bp-table-wrap{overflow-x:auto}.bp-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.bp-table th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 6px;font-size:12px;font-weight:500}.bp-table td{border-bottom:1px solid var(--border);white-space:nowrap;padding:9px 6px}.bp-table tbody tr:not(.bp-detail){cursor:pointer}.bp-table tbody tr:not(.bp-detail):hover,.bp-table tr.bp-open{background:var(--bg-tertiary)}.bp-table .up{color:var(--up)}.bp-table .down{color:var(--down)}.bp-code{color:var(--text-secondary);font-size:11px;display:block}.bp-tag{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:3px;margin-left:6px;padding:1px 5px;font-size:11px}.bp-off td{opacity:.5}.bp-hold{color:var(--accent)}.bp-flat{color:var(--text-secondary)}.bp-detail td{background:var(--bg-primary)}.bp-trades{flex-direction:column;gap:4px;font-size:13px;display:flex}.bp-trades>div{gap:12px;display:flex}.bp-trades .up{color:var(--up)}.bp-trades .down{color:var(--down)}.login-page{background:linear-gradient(180deg, #141420c7, #141420f0), url(/game-bg.jpg) center / cover no-repeat, var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:16px;display:flex}.login-card{border:1px solid var(--border);background:#1a1a2eeb;border-radius:10px;flex-direction:column;gap:14px;width:100%;max-width:360px;padding:32px 28px 24px;display:flex;box-shadow:0 18px 50px #00000073}.login-brand{color:var(--accent);letter-spacing:1px;font-size:24px;font-weight:700}.login-sub{color:var(--text-secondary);margin-top:-8px;margin-bottom:4px;font-size:13px}.login-card label,.um-form label{color:var(--text-secondary);flex-direction:column;gap:6px;font-size:13px;display:flex}.login-card input,.um-form input,.um-add input,.um-inline input{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);border-radius:6px;outline:none;padding:9px 11px;font-size:14px}.login-card input:focus,.um-form input:focus,.um-add input:focus,.um-inline input:focus{border-color:var(--accent)}.login-card button[type=submit]{cursor:pointer;background:var(--accent);color:#0b1a24;border:none;border-radius:6px;margin-top:4px;padding:10px 0;font-size:15px;font-weight:600}.login-card button[type=submit]:disabled{opacity:.6;cursor:default}.login-card button:focus-visible,.user-menu button:focus-visible,.um-dialog button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.login-err,.um-err{color:var(--up);font-size:13px}.um-ok{color:var(--down);font-size:13px}.login-notice{color:#f5c84c;font-size:13px}.login-foot{color:var(--text-muted);text-align:center;font-size:12px}.user-menu{align-items:center;display:flex;position:relative}.user-menu-btn{white-space:nowrap}.user-badge{color:var(--accent);background:#4cc9f026;border-radius:3px;margin-left:6px;padding:1px 6px;font-size:11px}.user-menu-list{z-index:1000;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;flex-direction:column;min-width:132px;padding:4px;display:flex;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 24px #0006}.user-menu-list button{text-align:left;color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:8px 12px;font-size:13px}.user-menu-list button:hover{background:var(--bg-tertiary)}.um-mask{z-index:2000;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.um-dialog{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:12px;width:100%;max-width:380px;max-height:90vh;padding:18px 20px 20px;display:flex;overflow:auto}.um-dialog.wide{max-width:860px}.um-head{justify-content:space-between;align-items:center;font-size:15px;display:flex}.um-x{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;font-size:22px;line-height:1}.um-form{flex-direction:column;gap:12px;display:flex}.um-actions{justify-content:flex-end;gap:8px;display:flex}.um-dialog button{border:1px solid var(--accent);color:var(--text-primary);cursor:pointer;background:#4cc9f01f;border-radius:5px;padding:6px 12px;font-size:13px}.um-dialog button:disabled{opacity:.5;cursor:default}.um-dialog button.ghost,.um-ops button{border-color:var(--border);background:0 0}.um-dialog button.danger{border-color:var(--up);background:#e9456026}.um-dialog button.danger-text{color:var(--up);border-color:#0000}.um-dialog .um-x{background:0 0;border:none;padding:0 4px}.um-table-wrap{overflow-x:auto}.um-table{border-collapse:collapse;width:100%;font-size:13px}.um-table th{text-align:left;color:var(--text-secondary);border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 8px;font-weight:500}.um-table td{border-bottom:1px solid var(--border);white-space:nowrap;padding:7px 8px}.um-table tr.off td{color:var(--text-muted)}.um-ops{flex-wrap:wrap;gap:6px;display:flex}.um-ops button{padding:3px 8px;font-size:12px}.um-inline{align-items:center;gap:6px;display:flex}.um-inline input{width:150px;padding:4px 8px;font-size:12px}.um-warn{color:var(--up);font-size:12px}.um-you{color:var(--accent);margin-left:6px;font-size:11px}.um-add{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding-top:8px;display:flex}.um-add-title{width:100%;color:var(--text-secondary);font-size:13px}.um-add input{flex:150px;padding:7px 10px;font-size:13px}.um-check{white-space:nowrap;color:var(--text-secondary);cursor:pointer;flex:none;align-items:center;gap:4px;font-size:13px;display:flex}.um-note{color:var(--text-muted);font-size:12px;line-height:1.6}
