:root{--bg-page: #1E2238;--bg-card: #272B42;--bg-secondary: #1E2238;--bg-elevated: #2D3354;--accent: #f0b90b;--accent-hover: #d4a50a;--accent-alpha: rgba(240,185,11,.12);--success: #0ecb81;--warning: #f6465d;--info: #3b82f6;--text-primary: #e6e8f0;--text-secondary: #8892b0;--text-disabled: #4a5080;--border: rgba(255,255,255,.08);--border-strong: rgba(255,255,255,.15);--sp-12: 12px;--sp-16: 16px;--sp-20: 20px;--sp-24: 24px;--radius: 8px;--shadow: 0 2px 8px rgba(0,0,0,.15);--font-main: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--fs-xs: 12px;--fs-sm: 13px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-xxl: 24px;--t-fast: .15s ease;--t-normal: .2s ease-out}.admin-layout{min-height:100vh;background:#151923!important}.admin-header{height:64px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;background:#202633!important;border-bottom:1px solid rgba(255,255,255,.1)!important}.admin-brand,.admin-user{display:flex;align-items:center;gap:10px}.admin-brand{color:#e6e8f0;font-size:16px}.admin-brand>.anticon{color:#f0b90b;font-size:20px}.admin-brand-divider{width:1px;height:20px;background:#fff3}.admin-label{color:#f0b90b!important;font-size:13px}.admin-user{color:#e6e8f0;font-size:13px;padding:0 8px}.admin-header .ant-btn{color:#b7bfce}.admin-header .ant-btn:hover{color:#f0b90b!important;background:#f0b90b14!important}.admin-content{min-height:calc(100vh - 64px);padding:28px;background:#151923!important}.admin-content>.ant-card{max-width:1400px;margin:0 auto}.admin-loading{min-height:100vh;display:grid;place-items:center;background:#151923;color:#e6e8f0}.admin-login-page{min-height:100vh;display:grid;place-items:center;padding:24px;background:#151923;color:#e6e8f0}.admin-login-panel{width:min(100%,420px);padding:40px;background:#202633;border:1px solid rgba(255,255,255,.1);border-radius:8px;box-shadow:0 16px 48px #00000047}.admin-login-icon{width:48px;height:48px;display:grid;place-items:center;margin-bottom:20px;color:#151923;background:#f0b90b;border-radius:8px;font-size:24px}.admin-login-panel h1{margin-bottom:4px;color:#fff;font-size:24px}.admin-login-panel>p{margin-bottom:28px;color:#8d98aa;font-size:13px}.admin-login-panel label{display:block;margin-bottom:18px;color:#b7bfce;font-size:13px}.admin-login-input{display:flex;align-items:center;gap:10px;margin-top:8px;padding:0 12px;height:42px;background:#151923;border:1px solid rgba(255,255,255,.12);border-radius:6px}.admin-login-input:focus-within{border-color:#f0b90b}.admin-login-input input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#fff;font-size:14px}.admin-login-panel button{width:100%;height:42px;margin-top:6px;border:0;border-radius:6px;background:#f0b90b;color:#151923;font-size:14px;font-weight:600;cursor:pointer}.admin-login-panel button:hover{background:#d4a50a}.admin-login-panel button:disabled{opacity:.6;cursor:wait}.admin-login-panel>a{display:block;margin-top:22px;color:#aab4c4;text-align:center;font-size:13px}.admin-login-panel>a:hover{color:#f0b90b}@media (max-width: 640px){.admin-header{padding:0 16px}.admin-brand-divider,.admin-label,.admin-user span{display:none}.admin-content{padding:16px}.admin-login-panel{padding:28px 22px}}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;font-family:var(--font-main);font-size:var(--fs-md);color:var(--text-primary);background-color:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}#root{width:100%;height:100%}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}.scrollbar-panel::-webkit-scrollbar{width:10px}.scrollbar-panel::-webkit-scrollbar-track{background:#ffffff0a;border-radius:5px}.scrollbar-panel::-webkit-scrollbar-thumb{background:#f0b90b73;border-radius:5px}.scrollbar-panel::-webkit-scrollbar-thumb:hover{background:#f0b90bbf}::selection{background:var(--accent);color:#1a1f36}a{color:var(--accent);text-decoration:none;transition:color var(--t-fast)}a:hover{color:#ffd87a}.text-success{color:var(--success)!important}.text-warning{color:var(--warning)!important}.text-accent{color:var(--accent)!important}.text-secondary{color:var(--text-secondary)!important}.ant-layout{background:var(--bg-page)!important}.ant-layout-header{background:var(--bg-card)!important;border-bottom:1px solid var(--border)!important}.ant-layout-sider{background:var(--bg-card)!important;border-right:1px solid var(--border)!important}.ant-layout-content{background:var(--bg-page)!important}.ant-menu-dark{background:transparent!important}.ant-menu-horizontal{background:transparent!important;border:none!important}.ant-menu-horizontal .ant-menu-item-selected{color:var(--accent)!important;border-bottom-color:var(--accent)!important}.ant-menu-inline .ant-menu-item-selected,.ant-menu-item-selected{background:var(--accent-alpha)!important;color:var(--accent)!important}.ant-menu-inline .ant-menu-item:hover,.ant-menu-item:hover{background:#ffffff0d!important;color:var(--text-primary)!important}.ant-btn-primary{background:var(--accent)!important;border-color:var(--accent)!important;color:#1a1f36!important;font-weight:600;border-radius:var(--radius)!important}.ant-btn-primary:hover{background:var(--accent-hover)!important;border-color:var(--accent-hover)!important}.ant-btn-default{background:var(--bg-elevated)!important;border-color:var(--border)!important;color:var(--text-primary)!important;border-radius:var(--radius)!important}.ant-btn-default:hover{background:#ffffff1a!important;border-color:var(--accent)!important;color:var(--accent)!important}.ant-input,.ant-input-affix-wrapper,.ant-select-selector,.ant-picker,.ant-input-number{background:var(--bg-secondary)!important;border-color:var(--border)!important;color:var(--text-primary)!important;border-radius:var(--radius)!important}.ant-input:hover,.ant-input-affix-wrapper:hover,.ant-select-selector:hover{border-color:var(--accent)!important}.ant-input:focus,.ant-input-focused,.ant-input-affix-wrapper-focused,.ant-select-focused .ant-select-selector{border-color:var(--accent)!important;box-shadow:0 0 0 2px var(--accent-alpha)!important}.ant-card{background:var(--bg-card)!important;border:1px solid var(--border)!important;border-radius:var(--radius)!important;box-shadow:var(--shadow)!important}.ant-card-head{border-bottom-color:var(--border)!important;color:var(--text-primary)!important;min-height:44px!important;padding:0 var(--sp-16)!important}.ant-card-head-title{padding:var(--sp-12) 0!important;font-weight:500}.ant-card-body{padding:var(--sp-16)!important}.ant-card-small .ant-card-body{padding:var(--sp-12)!important}.ant-table{background:transparent!important;font-size:var(--fs-sm)!important}.ant-table-thead>tr>th{background:var(--bg-secondary)!important;color:var(--text-secondary)!important;border-bottom:1px solid var(--border)!important;font-weight:500!important;font-size:var(--fs-xs)!important;text-transform:uppercase;letter-spacing:.3px;padding:var(--sp-12) var(--sp-12)!important}.ant-table-tbody>tr>td{border-bottom:1px solid var(--border)!important;color:var(--text-primary)!important;padding:var(--sp-12) var(--sp-12)!important}.ant-table-tbody>tr:hover>td{background:var(--accent-alpha)!important}.ant-table-wrapper .ant-table-pagination{margin:var(--sp-16) 0 0!important}.ant-table-tbody>tr.ranking-row-top>td{background:#f0b90b0f!important}.ant-table-tbody>tr.ranking-row-top:hover>td{background:#f0b90b1f!important}.ant-table-tbody>tr.ranking-row-top.ranking-row-top-2>td{background:#c0c7d00f!important}.ant-table-tbody>tr.ranking-row-top.ranking-row-top-2:hover>td{background:#c0c7d01f!important}.ant-table-tbody>tr.ranking-row-top.ranking-row-top-3>td{background:#cd7f320f!important}.ant-table-tbody>tr.ranking-row-top.ranking-row-top-3:hover>td{background:#cd7f321f!important}.ant-table-tbody>tr.ranking-row-selected>td{background:#f0b90b2e!important;box-shadow:inset 4px 0 #f0b90b,inset 0 2px #f0b90b,inset 0 -1px #f0b90b73!important;position:relative;transition:background .18s ease,box-shadow .18s ease}.ant-table-tbody>tr.ranking-row-selected>td:first-child{box-shadow:inset 4px 0 #f0b90b,inset 0 2px #f0b90b,inset 0 -1px #f0b90b73,inset 0 0 0 1px #f0b90b2e!important}.ant-table-tbody>tr.ranking-row-selected:first-child>td:first-child{border-top-left-radius:6px}.ant-table-tbody>tr.ranking-row-selected:last-child>td:first-child{border-bottom-left-radius:6px}.ant-table-tbody>tr.ranking-row-selected>td:first-child:after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,#f0b90b,#f7d36e,#f0b90b);box-shadow:0 0 10px #f0b90ba6;pointer-events:none}.ant-table-tbody>tr.ranking-row-selected>td:first-child:before{content:"▶";position:absolute;left:6px;top:50%;transform:translateY(-50%);color:#f0b90b;font-size:11px;font-weight:700;text-shadow:0 0 6px rgba(240,185,11,.65);pointer-events:none;z-index:2}.ant-table-tbody>tr.ranking-row-selected>td{color:#fef3c7!important}.ant-table-tbody>tr.ranking-row-selected:hover>td{background:#f0b90b3d!important}@keyframes ranking-row-pulse-keyframes{0%{box-shadow:inset 4px 0 #f0b90b,inset 0 2px #f0b90b,0 0 #f0b90b8c!important}50%{box-shadow:inset 4px 0 #f0b90b,inset 0 2px #f0b90b,0 0 0 8px #f0b90b1f!important}to{box-shadow:inset 4px 0 #f0b90b,inset 0 2px #f0b90b,0 0 #f0b90b00!important}}.ant-table-tbody>tr.ranking-row-pulse>td{background:#f0b90b4d!important;animation:ranking-row-pulse-keyframes .7s ease-in-out 2}.ant-alert{border-radius:8px!important;border:1px solid var(--border)!important;padding:8px 12px!important;color:var(--text-primary)!important;background:var(--bg-secondary)!important}.ant-alert .ant-alert-icon{color:var(--accent)!important;font-size:16px!important;margin-right:8px!important;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#ffffff0a}.ant-alert .ant-alert-message{color:var(--text-primary)!important;font-weight:600!important;font-size:12px!important;margin-bottom:2px!important}.ant-alert .ant-alert-description{color:var(--text-secondary)!important;font-size:12px!important;line-height:1.7!important}.ant-alert-info{background:#22d3ee0f!important;border-color:#22d3ee4d!important;box-shadow:inset 3px 0 #22d3ee!important}.ant-alert-info .ant-alert-icon{color:#22d3ee!important;background:#22d3ee1a}.ant-alert-warning{background:#fbbf240f!important;border-color:#fbbf244d!important;box-shadow:inset 3px 0 #fbbf24!important}.ant-alert-warning .ant-alert-icon{color:#fbbf24!important;background:#fbbf241a}.ant-alert-error{background:#f6465d14!important;border-color:#f6465d59!important;box-shadow:inset 3px 0 #f6465d!important}.ant-alert-error .ant-alert-icon{color:#f6465d!important;background:#f6465d1f}.ant-alert-success{background:#0ecb8114!important;border-color:#0ecb814d!important;box-shadow:inset 3px 0 #0ecb81!important}.ant-alert-success .ant-alert-icon{color:#0ecb81!important;background:#0ecb811f}.ant-alert .ant-alert-close-icon{color:var(--text-secondary)!important}.ant-alert .ant-alert-close-icon:hover{color:var(--text-primary)!important}.ranking-layout{display:grid;grid-template-columns:200px minmax(0,1fr) 380px;gap:12px;height:100%;min-height:560px;position:relative}.app-content:not(.app-content--ranking) .ranking-layout{height:calc(100vh - 96px)}.ranking-sidebar{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 10px;display:flex;flex-direction:column;gap:6px;overflow-y:auto}.ranking-sidebar__title{font-size:12px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.4px;padding:4px 8px 6px}.ranking-sidebar__list{display:flex;flex-direction:column;gap:2px}.ranking-sidebar__item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background var(--t-fast);color:var(--text-primary)}.ranking-sidebar__item:hover{background:#ffffff0d}.ranking-sidebar__item.is-active{background:var(--accent-alpha);color:var(--accent)}.ranking-sidebar__item.is-active .ranking-sidebar__icon{color:var(--accent)}.ranking-sidebar__icon{color:var(--text-secondary);font-size:14px;flex-shrink:0;width:18px;text-align:center}.ranking-sidebar__label{font-size:13px;font-weight:500;line-height:1.2}.ranking-sidebar__sub{font-size:10px;color:var(--text-disabled);margin-top:2px;line-height:1.2}.ranking-sidebar__item.is-active .ranking-sidebar__sub{color:#f0b90bb3}.ranking-sidebar__divider{height:1px;background:var(--border);margin:10px 4px}.ranking-sidebar__mode{padding:0 4px}.ranking-main{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;min-width:0}.ranking-main__header{display:flex;justify-content:space-between;align-items:flex-end;padding:14px 16px 10px;border-bottom:1px solid var(--border);flex-shrink:0}.ranking-main__title{font-size:16px;font-weight:500;color:var(--text-primary);margin:0;display:flex;align-items:baseline;gap:8px}.ranking-main__table{flex:1;min-height:0;overflow:hidden;padding:0}.ranking-main__table .ant-table-wrapper,.ranking-main__table .ant-spin-nested-loading,.ranking-main__table .ant-spin-container,.ranking-main__table .ant-table{height:100%}.ranking-main__table .ant-table-body{max-height:calc(100vh - 226px)!important}.app-content--ranking .ranking-main__table .ant-table-body{max-height:calc(100vh - 186px)!important}.ranking-side-panel{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;overflow:hidden;min-width:0}.ranking-side-panel__header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);gap:8px;flex-shrink:0}.ranking-side-panel__title{font-size:14px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ranking-side-panel__empty{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}.ranking-side-panel__chart{padding:12px 14px 4px;border-bottom:1px solid var(--border);flex-shrink:0}.ranking-side-panel__chart-title{font-size:12px;color:var(--text-secondary);margin-bottom:4px;display:flex;align-items:center;font-weight:500}.ranking-side-panel__chart-empty{height:120px;display:flex;align-items:center;justify-content:center;color:var(--text-disabled);font-size:12px}.ranking-side-panel__metrics{padding:12px 14px 14px;overflow-y:auto;flex:1;min-height:0}.ranking-side-panel__metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.ranking-side-panel__metric-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px dashed rgba(255,255,255,.04)}.ranking-side-panel__metric-label{font-size:11px;color:var(--text-secondary)}.ranking-side-panel__metric-value{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:600}@media (max-width: 1180px){.ranking-layout{grid-template-columns:180px minmax(0,1fr)}.ranking-side-panel{display:none}}@media (max-width: 900px){.ranking-layout{grid-template-columns:1fr;height:auto}.ranking-sidebar,.ranking-sidebar__list{flex-direction:row;flex-wrap:wrap}.ranking-sidebar__item{flex:0 0 auto}.ranking-sidebar__divider,.ranking-sidebar__mode{display:none}}.ant-modal-content{background:var(--bg-card)!important;border-radius:var(--radius)!important}.ant-modal-header{background:transparent!important;border-bottom:1px solid var(--border)!important;padding:var(--sp-16) var(--sp-20) var(--sp-12)!important}.ant-modal-title{color:var(--text-primary)!important;font-weight:500}.ant-modal-close-x{color:var(--text-secondary)!important}.ant-modal-body{padding:var(--sp-20)!important}.ant-modal-footer{padding:var(--sp-12) var(--sp-20)!important;border-top:1px solid var(--border)!important}.ant-form-item-label>label{color:var(--text-secondary)!important;font-size:var(--fs-sm)!important;font-weight:400!important}.ant-form-item{margin-bottom:var(--sp-16)!important}.ant-form-item-label{padding-bottom:var(--sp-8)!important}.ant-tabs-tab{color:var(--text-secondary)!important;font-size:var(--fs-sm)!important}.ant-tabs-tab-active .ant-tabs-tab-btn{color:var(--accent)!important}.ant-tabs-ink-bar{background:var(--accent)!important}.ant-tabs-top>.ant-tabs-nav{margin-bottom:var(--sp-16)!important}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab{background:var(--bg-elevated)!important;border-color:var(--border)!important;border-radius:var(--radius) var(--radius) 0 0!important}.ant-tabs-card>.ant-tabs-nav .ant-tabs-tab-active{background:var(--bg-card)!important;border-color:var(--border)!important;border-bottom-color:var(--bg-card)!important}.ant-progress-bg{background:var(--accent)!important}.ant-progress-inner{background:var(--bg-elevated)!important}.ant-tag{border-radius:var(--radius)!important;font-size:var(--fs-xs)!important;border-color:var(--border)!important}.ant-statistic-title{color:var(--text-secondary)!important;font-size:var(--fs-xs)!important}.ant-statistic-content{color:var(--text-primary)!important}.ant-divider{border-color:var(--border)!important}.ant-divider-inner-text{color:var(--text-secondary)!important;font-size:var(--fs-xs)!important}.ant-slider-rail{background:var(--bg-elevated)!important}.ant-slider-track{background:var(--accent)!important}.ant-slider-handle{border-color:var(--accent)!important}.ant-rate-star-full .anticon-star>svg{fill:var(--accent)!important}.ant-rate-star-half .anticon-star-half>svg{fill:var(--accent)!important}.ant-select-dropdown{background:var(--bg-elevated)!important;border:1px solid var(--border)!important;border-radius:var(--radius)!important}.ant-select-item-option-selected{background:var(--accent-alpha)!important;color:var(--accent)!important}.ant-select-item{color:var(--text-primary)!important}.ant-tooltip-inner,.ant-popover-inner{background:var(--bg-elevated)!important;border:1px solid var(--border)!important;border-radius:var(--radius)!important;color:var(--text-primary)!important;font-size:var(--fs-xs)!important}.ant-tooltip-arrow:before,.ant-popover-arrow:before{background:var(--bg-elevated)!important}.up{color:var(--success)!important}.down{color:var(--warning)!important}.backtest-date-popup .ant-picker-panel-container,.backtest-date-popup .ant-picker-dropdown{background:var(--bg-card)!important;border:1px solid var(--border)!important;box-shadow:0 8px 24px #0006!important}.backtest-date-popup .ant-picker-header{border-bottom:1px solid var(--border)!important;color:var(--text-primary)!important}.backtest-date-popup .ant-picker-header button{color:var(--text-secondary)!important}.backtest-date-popup .ant-picker-header button:hover{color:var(--accent)!important}.backtest-date-popup .ant-picker-content th{color:var(--text-secondary)!important}.backtest-date-popup .ant-picker-cell{color:var(--text-primary)!important}.backtest-date-popup .ant-picker-cell-in-view .ant-picker-cell-inner{background:transparent!important}.backtest-date-popup .ant-picker-cell:hover:not(.ant-picker-cell-selected):not(.ant-picker-cell-disabled) .ant-picker-cell-inner{background:#f0b90b26!important;color:var(--accent)!important}.backtest-date-popup .ant-picker-cell-selected .ant-picker-cell-inner{background:var(--accent)!important;color:#1a1f36!important;font-weight:600}.backtest-date-popup .ant-picker-cell-in-view.ant-picker-cell-in-range:before,.backtest-date-popup .ant-picker-cell-in-view.ant-picker-cell-range-start:before,.backtest-date-popup .ant-picker-cell-in-view.ant-picker-cell-range-end:before{background:#f0b90b1a!important}.backtest-date-popup .ant-picker-cell-in-view.ant-picker-cell-range-start .ant-picker-cell-inner,.backtest-date-popup .ant-picker-cell-in-view.ant-picker-cell-range-end .ant-picker-cell-inner{background:var(--accent)!important;color:#1a1f36!important;font-weight:600}.backtest-date-popup .ant-picker-cell-today .ant-picker-cell-inner:before{border-color:var(--accent)!important}.backtest-date-popup .ant-picker-cell-disabled .ant-picker-cell-inner{color:var(--text-disabled)!important;background:transparent!important}.backtest-date-popup .ant-picker-footer{border-top:1px solid var(--border)!important}.backtest-task-controls .ant-btn{border-radius:8px}.app-layout{display:flex;height:100vh;overflow:hidden}.app-header{height:56px;background:#15192b!important;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 var(--sp-20);position:fixed;top:0;left:0;right:0;z-index:100}.app-header{overflow:visible}.app-header__bookmarks{flex:1;display:flex;align-items:stretch;align-self:stretch;gap:8px;padding-top:5px;margin-bottom:-10px;position:relative;z-index:2;padding-left:12px;padding-right:12px}.app-bookmark{position:relative;flex:1;display:flex;align-items:center;justify-content:center;gap:10px;height:100%;padding:0 18px 8px;border:1px solid transparent;border-radius:10px 10px 0 0;background:transparent;cursor:pointer;font-family:inherit;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:background .18s ease,color .18s ease,filter .18s ease,transform .12s ease;clip-path:polygon(0 0,100% 0,100% 100%,50% calc(100% - 13px),0 100%);min-width:0}.app-bookmark:active{transform:translateY(1px)}.app-bookmark.is-active{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);border-bottom-color:transparent!important}.app-content{border-top:1px solid transparent;transition:border-top-color .18s ease}.app-content--ranking{border-top:1px solid var(--bookmark-edge-color, var(--border))}.app-content--workbench{border-top:1px solid var(--bookmark-edge-color, transparent)}.app-content--workbench>div{border-top:1px solid var(--bookmark-edge-color, transparent)}.app-bookmark__cap{position:absolute;top:0;left:0;right:0;height:3px;pointer-events:none}.app-bookmark.is-active:before{content:"";position:absolute;inset:3px 0 auto 0;height:1px;background:#ffffff1f;pointer-events:none}.app-bookmark__text{display:flex;flex-direction:column;align-items:center;line-height:1.3;text-align:center;min-width:0}.app-bookmark__title{font-size:14px;font-weight:600;white-space:nowrap}.app-bookmark__sub{font-size:11px;font-weight:400;opacity:.75;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.app-sidebar{width:220px;background:var(--bg-card)!important;border-right:1px solid var(--border);position:fixed;top:56px;left:0;bottom:0;overflow-y:auto}.app-content{flex:1;margin-left:220px;margin-top:56px;padding:var(--sp-20);overflow-y:auto;height:calc(100vh - 56px)}.app-content--workbench{margin-left:0;padding:0;height:100vh;overflow:hidden}.app-content--ranking{margin-left:0;margin-top:56px;padding:0;height:calc(100vh - 56px);overflow:hidden}.app-footer{height:36px;background:var(--bg-card)!important;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-20);font-size:var(--fs-xs);color:var(--text-secondary);position:fixed;bottom:0;left:220px;right:0;z-index:50}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--sp-20);gap:var(--sp-16)}.page-title{font-size:var(--fs-xl);font-weight:500;color:var(--text-primary)}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-16);transition:box-shadow var(--t-fast);box-shadow:var(--shadow)}.stat-card:hover{box-shadow:0 4px 16px #0003}.empty-state{text-align:center;padding:var(--sp-24) var(--sp-16);color:var(--text-secondary)}.empty-state-icon{font-size:28px;margin-bottom:var(--sp-12);opacity:.4}.empty-state-text{font-size:var(--fs-sm);color:var(--text-secondary)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.flex-wrap{flex-wrap:wrap}.gap-8{gap:8px}.gap-12{gap:var(--sp-12)}.gap-16{gap:var(--sp-16)}.gap-20{gap:var(--sp-20)}.gap-24{gap:var(--sp-24)}.mt-8{margin-top:8px}.mt-12{margin-top:var(--sp-12)}.mt-16{margin-top:var(--sp-16)}.mt-20{margin-top:var(--sp-20)}.mt-24{margin-top:var(--sp-24)}.mb-8{margin-bottom:8px}.mb-12{margin-bottom:var(--sp-12)}.mb-16{margin-bottom:var(--sp-16)}.mb-20{margin-bottom:var(--sp-20)}.mb-24{margin-bottom:var(--sp-24)}.ml-8{margin-left:8px}.ml-12{margin-left:var(--sp-12)}.mr-8{margin-right:8px}.mr-12{margin-right:var(--sp-12)}.p-12{padding:var(--sp-12)}.p-16{padding:var(--sp-16)}.p-20{padding:var(--sp-20)}.px-12{padding-left:var(--sp-12);padding-right:var(--sp-12)}.px-16{padding-left:var(--sp-16);padding-right:var(--sp-16)}.py-12{padding-top:var(--sp-12);padding-bottom:var(--sp-12)}.py-16{padding-top:var(--sp-16);padding-bottom:var(--sp-16)}.chart-container{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--sp-16)}.editor-container{border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.trade-buy{color:var(--success);font-weight:600}.trade-sell{color:var(--warning);font-weight:600}.action-cell{opacity:.5;transition:opacity var(--t-fast)}tr:hover .action-cell{opacity:1}.quick-actions{display:flex;gap:var(--sp-12);flex-wrap:wrap}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius);font-size:var(--fs-xs);font-weight:500}.status-badge.green{color:var(--success);background:#0ecb811f}.status-badge.blue{color:var(--info);background:#3b82f61f}.status-badge.red{color:var(--warning);background:#f6465d1f}.status-badge.yellow{color:var(--accent);background:var(--accent-alpha)}.status-badge.gray{color:var(--text-secondary);background:#8892b01a}.table-row-compact td{padding:8px 12px!important;font-size:var(--fs-sm)!important}.detail-panel-modal-tabs.ant-tabs{height:100%;display:flex;flex-direction:column}.detail-panel-modal-tabs .ant-tabs-nav{margin-bottom:0!important;padding-top:6px;padding-bottom:6px}.detail-panel-modal-tabs .ant-tabs-tab{padding:8px 14px!important;font-size:13px!important}.detail-panel-modal-tabs .ant-tabs-tab+.ant-tabs-tab{margin:0 0 0 4px!important}.detail-panel-modal-tabs .ant-tabs-content-holder{flex:1;min-height:0;overflow:auto;padding:var(--sp-16) var(--sp-20);background:#0b1220}.detail-panel-modal-tabs .ant-tabs-tabpane{height:100%}.detail-panel-modal-tabs .space-y-3>*+*{margin-top:12px}@keyframes detail-modal-fade-in{0%{opacity:0}to{opacity:1}}.detail-panel-modal-backdrop{animation:detail-modal-fade-in .18s ease-out}@keyframes detail-modal-pop-in{0%{opacity:0;transform:scale(.96) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.detail-panel-modal-body{animation:detail-modal-pop-in .22s cubic-bezier(.2,.8,.2,1);transform-origin:center center}@keyframes computing-panel-in{0%{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.computing-panel{animation:computing-panel-in .28s cubic-bezier(.2,.8,.2,1)}@keyframes computing-scan{0%{transform:translateY(-100%)}to{transform:translateY(220%)}}.computing-scan{animation:computing-scan 2.6s linear infinite}@keyframes computing-bar-scan-vertical{0%{transform:translateY(-130%)}60%{transform:translateY(230%)}to{transform:translateY(230%)}}.computing-bar-scan-vertical{animation:computing-bar-scan-vertical 1.8s linear infinite}@keyframes computing-digit-drift{0%{transform:translateY(-3px);opacity:.7}50%{transform:translateY(3px);opacity:1}to{transform:translateY(-3px);opacity:.7}}.computing-digit{display:inline-block;animation:computing-digit-drift 1.4s ease-in-out infinite}@keyframes computing-row-pulse{0%,to{background-color:transparent}50%{background-color:#f0b90b0f}}@keyframes hint-pulse{0%{transform:scale(.92);opacity:0;box-shadow:0 0 #f59e0b00}15%{transform:scale(1.04);opacity:1;box-shadow:0 0 0 10px #f59e0b00}40%{transform:scale(1);opacity:1;box-shadow:0 0 0 14px #f59e0b80}70%{transform:scale(1);opacity:1;box-shadow:0 0 0 8px #f59e0b4d}85%{transform:scale(1.04);opacity:1;box-shadow:0 0 0 16px #f59e0b00}to{transform:scale(.92);opacity:0;box-shadow:0 0 #f59e0b00}}.hint-pulse{animation:hint-pulse 1.6s ease-in-out infinite;transform-origin:center center}@keyframes fade-in-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fade-in-up .28s cubic-bezier(.2,.8,.2,1) both}@keyframes wfp-ping{75%,to{transform:scale(2);opacity:0}}.wfp-ping{animation:wfp-ping 1.4s cubic-bezier(0,0,.2,1) infinite}@keyframes wf-grid-pulse{0%{opacity:.18}50%{opacity:.34}to{opacity:.18}}.wf-grid{animation:wf-grid-pulse 3.2s ease-in-out infinite}@keyframes wf-data-stream{0%{transform:translate(0);opacity:0}10%{opacity:.9}90%{opacity:.9}to{transform:translate(-50%);opacity:0}}.wf-data-stream{animation:wf-data-stream 1.6s linear infinite}@keyframes wf-digit-converge{0%,to{opacity:1;text-shadow:0 0 4px currentColor}50%{opacity:.55;text-shadow:0 0 8px currentColor}}.wf-digit-converge{animation:wf-digit-converge .7s ease-in-out infinite}@keyframes wf-flow-dot{0%{left:0%;opacity:0}10%{opacity:1}90%{opacity:1}to{left:100%;opacity:0}}.wf-flow-dot{animation:wf-flow-dot 1.4s linear infinite}@keyframes wf-bg-scan{0%{transform:translate(-100%)}to{transform:translate(100%)}}.wf-bg-scan{animation:wf-bg-scan 4.8s linear infinite}@keyframes wf-data-blink{0%,to{opacity:.25}50%{opacity:.85}}.wf-data-blink{animation:wf-data-blink 1.2s ease-in-out infinite}@keyframes wf-stage-slide{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}.wf-stage-slide{animation:wf-stage-slide .24s ease-out}
