:root{color:#ecf2f3;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#080b0e;font-family:Inter,SF Pro Display,SF Pro Text,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:#080b0e;min-width:320px;margin:0}button,input,select{font:inherit}button{-webkit-tap-highlight-color:transparent}:root{--bg:#080b0e;--surface:#0f1418;--surface-raised:#131a1f;--surface-soft:#0b1014;--line:#243038;--line-soft:#1a242a;--text:#ecf2f3;--muted:#849097;--faint:#56636a;--mint:#3dddbc;--mint-soft:#3dddbc1c;--red:#ff6b72;--red-soft:#ff6b721a;--amber:#f3c75f;--blue:#4da6ff}.terminal-shell{min-height:100vh;color:var(--text);background-color:var(--bg);background-image:linear-gradient(#ffffff04 1px,#0000 1px),linear-gradient(90deg,#ffffff04 1px,#0000 1px);background-size:32px 32px;padding:0 16px 28px}button,select,input{color:inherit}button:focus-visible,select:focus-visible,input:focus-visible{outline-offset:2px;outline:2px solid #3dddbca6}.topbar,.brand-block,.top-actions,.status-item,.panel-title,.symbol-row,.asset-cell,.scan-row,.market-title-line,.market-price-line,.chart-controls,.timeframe-strip,.chart-legend,.signal-direction,.push-readiness,.risk-main,.risk-table div,.score-bar>div:first-child,.param-input,.select-input,.tp-row{align-items:center;display:flex}.topbar{z-index:30;border-bottom:1px solid var(--line-soft);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#080b0ee0;justify-content:space-between;max-width:1800px;min-height:66px;margin:0 auto 12px;position:sticky;top:0}.brand-block{gap:11px;min-width:190px}.brand-mark{width:36px;height:36px;color:var(--mint);background:var(--mint-soft);border:1px solid #3dddbc52;border-radius:7px;place-items:center;display:grid;box-shadow:inset 0 0 20px #3dddbc0d}.brand-block h1,.market-title-line h2{letter-spacing:0;margin:0}.brand-block h1{font-size:18px;line-height:1.05}.brand-block>div>span{color:var(--muted);margin-top:4px;font-size:11px;display:block}.top-actions{justify-content:flex-end;gap:8px}.test-push-button,.status-item,.icon-button{border:1px solid var(--line);background:#0f1418eb;border-radius:6px;min-height:34px}.test-push-button{color:#cbd4d7;cursor:pointer;align-items:center;gap:7px;padding:0 11px;font-size:12px;font-weight:700;transition:border-color .16s,color .16s,background .16s;display:inline-flex}.test-push-button:hover:not(:disabled){color:var(--text);background:#151c21;border-color:#3d4c54}.test-push-button.sending{color:var(--amber)}.test-push-button.sent{color:var(--mint);border-color:#3dddbc59}.test-push-button.failed{color:var(--red);border-color:#ff6b7259}.test-push-button:disabled,.icon-button:disabled{cursor:wait;opacity:.72}.status-item{color:var(--faint);gap:7px;padding:0 10px;font-size:11px}.status-item span{color:var(--muted)}.status-item b{color:#c8d1d4;align-items:center;gap:6px;font-weight:700;display:inline-flex}.status-item.live svg,.status-item.live b,.status-item.live b:before{color:var(--mint)}.status-item.live b:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px;animation:2s ease-out infinite live-pulse;box-shadow:0 0 #3dddbc73}.status-item.connecting svg,.status-item.connecting b,.status-item.demo svg,.status-item.demo b,.status-item.checking svg,.status-item.checking b,.status-item.stale svg,.status-item.stale b{color:var(--amber)}.status-item.offline svg,.status-item.offline b{color:var(--red)}.status-item.source.live svg,.status-item.source.live b{color:var(--blue)}.icon-button{color:#b9c3c6;cursor:pointer;place-items:center;width:34px;min-width:34px;padding:0;transition:border-color .16s,color .16s,transform .16s;display:inline-grid}.icon-button:hover:not(:disabled){color:var(--mint);border-color:#3d4c54;transform:translateY(-1px)}.spinning{animation:.85s linear infinite spin}.workspace{grid-template-columns:184px minmax(0,1fr) 318px;align-items:start;gap:12px;max-width:1800px;margin:0 auto;display:grid}.panel{border:1px solid var(--line);background:#0f1418f2;border-radius:8px;box-shadow:0 12px 28px #0000002e}.watchlist,.chart-header,.chart-shell,.metric-card,.backtest-panel,.right-rail>*{animation:.42s cubic-bezier(.2,.7,.2,1) both panel-enter}.chart-header{animation-delay:35ms}.chart-shell{animation-delay:70ms}.metrics-grid{animation-delay:.105s}.backtest-panel{animation-delay:.14s}.right-rail>:first-child{animation-delay:80ms}.right-rail>:nth-child(2){animation-delay:.12s}.right-rail>:nth-child(3){animation-delay:.16s}.right-rail>:nth-child(4){animation-delay:.2s}.panel-title{color:#dfe7e9;gap:8px;min-width:0;margin-bottom:13px;font-size:12px;font-weight:750}.panel-title svg{color:var(--muted);flex:none}.panel-title>span{min-width:0}.panel-title>small,.panel-title>b{margin-left:auto}.panel-title>small{color:var(--faint);font-size:10px;font-weight:650}.panel-title>small.locked{color:var(--amber)}.panel-title.small{color:var(--muted);margin:16px 0 7px}.watchlist{padding:12px 10px;position:sticky;top:78px}.symbol-row{border:0;border-bottom:1px solid var(--line-soft);color:#cfd8da;cursor:pointer;background:0 0;border-radius:5px;justify-content:space-between;width:100%;min-height:48px;padding:6px 7px;transition:color .16s,background .16s,transform .16s;position:relative}.symbol-row:hover{color:var(--text);background:#ffffff06}.symbol-row.active{color:var(--text);box-shadow:inset 2px 0 0 var(--mint);background:#3dddbc13}.symbol-row.active:after{background:var(--mint);content:"";border-radius:50%;width:4px;height:4px;position:absolute;bottom:5px;right:6px}.asset-cell{text-align:left;gap:8px;min-width:0}.asset-mark{color:#dbe3e5;background:#1a2227;border:1px solid #354148;border-radius:50%;flex:none;place-items:center;width:27px;height:27px;font-size:10px;font-style:normal;font-weight:850;display:grid}.asset-btc{color:var(--amber);border-color:#f3c75f7a}.asset-eth{color:#83bdff;border-color:#4da6ff7a}.asset-sol{color:var(--mint);border-color:#3dddbc7a}.asset-bnb{color:#f0b90b;border-color:#f0b90b7a}.asset-doge{color:#d6bd72;border-color:#bda4587a}.asset-xrp{color:#d9e2e5;border-color:#d9e2e566}.asset-cell>span{gap:2px;min-width:0;display:grid}.asset-cell b{font-size:12px;line-height:1}.asset-cell small{color:var(--faint);white-space:nowrap;font-size:9px}.symbol-row>small{padding-right:2px;font-size:10px;font-weight:750}.scan-list{border-top:1px solid var(--line);margin-top:8px}.scan-row{border-bottom:1px solid var(--line-soft);color:#aeb9bd;justify-content:space-between;gap:5px;min-height:31px;font-size:10px}.scan-row>span{width:36px;font-weight:750}.scan-row small{color:var(--muted);font-variant-numeric:tabular-nums}.scan-row small i{color:var(--faint);font-size:8px;font-style:normal}.signal-tag,.market-direction,.trade-row b{border-radius:4px;font-weight:750}.signal-tag{text-align:center;min-width:33px;padding:2px 5px}.signal-tag.long,.market-direction.long,.trade-row b.long{color:var(--mint);background:var(--mint-soft)}.signal-tag.short,.market-direction.short,.trade-row b.short{color:var(--red);background:var(--red-soft)}.signal-tag.neutral,.market-direction.neutral,.trade-row b.neutral{color:#a8b2b6;background:#8490971a}.long,.profit{color:var(--mint)}.short,.loss{color:var(--red)}.neutral{color:#a8b2b6}.chart-column{min-width:0}.chart-header{justify-content:space-between;align-items:center;min-height:92px;margin-bottom:10px;padding:13px 15px;display:flex}.market-heading{min-width:0}.market-title-line{gap:8px}.market-title-line h2{color:#f1f5f5;font-size:16px;line-height:1.1}.market-title-line h2 span{color:var(--muted);font-size:12px;font-weight:650}.perpetual-tag,.market-direction{padding:3px 6px;font-size:9px}.perpetual-tag{color:#9ca8ad;background:#12191d;border:1px solid #334048;border-radius:4px;font-weight:750}.market-price-line{gap:9px;min-height:37px;margin-top:6px;animation:.26s both price-in}.market-price-line strong{color:#f3f7f7;font-variant-numeric:tabular-nums;font-size:clamp(23px,2.3vw,31px);line-height:1}.market-price-line>span{font-size:12px;font-weight:800}.market-price-line small{color:var(--faint);font-size:9px}.chart-controls{flex-direction:column;align-items:flex-end;gap:7px}.chart-controls>small{color:var(--faint);font-size:9px}.timeframe-strip{border:1px solid var(--line);background:var(--surface-soft);border-radius:7px;gap:2px;padding:3px}.timeframe-strip button{min-width:42px;min-height:28px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;font-size:11px;font-weight:750;transition:color .16s,background .16s,box-shadow .16s}.timeframe-strip button:hover{color:#dce4e6}.timeframe-strip button.active{color:#06100e;background:var(--mint);box-shadow:0 4px 16px #3dddbc2e}.notice{color:#e9cb7d;overflow-wrap:anywhere;background:#f3c75f13;border:1px solid #f3c75f59;border-radius:7px;margin-bottom:10px;padding:9px 11px;font-size:11px}.chart-shell{background:#0b0f12;overflow:hidden}.chart-legend{border-bottom:1px solid var(--line-soft);min-height:37px;color:var(--muted);gap:15px;padding:0 13px;font-size:9px}.chart-legend span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.chart-legend i{border-radius:2px;width:12px;height:2px}.legend-boll{background:var(--blue)}.legend-fast{background:#d7f75b}.legend-slow{background:#f5a451}.chart-legend small{color:var(--faint);margin-left:auto}.chart-panel{width:100%;height:486px}.metrics-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin-top:8px;display:grid}.metric-card{min-width:0}.metric-card.card{border:1px solid var(--line);background:#0f1418f0;border-radius:7px;min-height:79px;padding:10px 11px;transition:border-color .16s,transform .16s}.metric-card.card:hover{border-color:#35434b;transform:translateY(-1px)}.metric-card>span,.risk-main span,.risk-table span{color:var(--muted);font-size:9px;display:block}.metric-card strong{color:#edf3f4;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin:6px 0 3px;font-size:16px;display:block}.metric-card small{color:var(--faint);overflow-wrap:anywhere;font-size:8px;display:block}.backtest-panel{margin-top:8px;padding:13px}.backtest-stats{border-block:1px solid var(--line-soft);grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:12px;display:grid}.metric-card.inline{min-height:76px;padding:12px}.metric-card.inline+.metric-card.inline{border-left:1px solid var(--line-soft)}.metric-card.inline strong{font-size:18px}.trade-table{border:1px solid var(--line-soft);background:var(--surface-soft);border-radius:6px;overflow-x:auto}.trade-head,.trade-row{grid-template-columns:60px 1fr 1fr .75fr .75fr .7fr 62px;align-items:center;gap:10px;min-width:720px;padding:9px 11px;font-size:10px;display:grid}.trade-head{color:var(--faint);background:#10161a;font-weight:750}.trade-row{border-top:1px solid var(--line-soft);color:#b8c2c5;font-variant-numeric:tabular-nums}.trade-row:hover{background:#ffffff04}.trade-row.open-trade{box-shadow:inset 2px 0 0 var(--mint);background:#3dddbc0d}.trade-row b{justify-self:start;padding:2px 6px;font-size:9px}.trade-row strong,.trade-row small{font-size:10px}.trade-journal-panel{min-width:0}.journal-table .trade-head,.journal-table .trade-row{grid-template-columns:94px 1fr 1fr 1.35fr 1.35fr .8fr 1.25fr;min-width:900px}.journal-table .trade-row strong{white-space:nowrap}.trade-row small,.empty-trades{color:var(--muted)}.empty-trades{padding:18px 12px;font-size:11px}.right-rail{gap:10px;min-width:0;display:grid}.signal-card,.risk-card,.signal-history-card,.params-panel{padding:13px}.grade-chip{text-align:center;border:1px solid;border-radius:5px;min-width:29px;padding:3px 5px;font-size:10px}.grade-chip.ready{color:var(--mint);background:var(--mint-soft)}.grade-chip.watch{color:var(--amber);background:#f3c75f14}.grade-chip.blocked{color:var(--red);background:var(--red-soft)}.signal-hero{border-bottom:1px solid var(--line-soft);grid-template-columns:1fr 72px;align-items:center;gap:12px;min-height:82px;padding:7px 0 13px;display:grid}.signal-direction{gap:10px;min-width:0}.signal-direction>svg{border:1px solid;border-radius:7px;flex:none;width:34px;height:34px;padding:7px}.signal-direction.long{color:var(--mint)}.signal-direction.short{color:var(--red)}.signal-direction.neutral{color:var(--amber)}.signal-direction span{color:var(--muted);margin-bottom:4px;font-size:9px;display:block}.signal-direction strong{color:currentColor;font-size:24px;line-height:1}.score-orb{border-radius:50%;place-items:center;width:68px;height:68px;padding:4px;transition:background .5s;display:grid}.score-orb>div{text-align:center;background:#0d1317;border-radius:50%;place-content:center;width:100%;height:100%;display:grid}.score-orb strong,.score-orb small{display:block}.score-orb strong{color:#edf3f4;font-size:18px;line-height:1}.score-orb small{color:var(--faint);margin-top:4px;font-size:8px}.push-readiness{color:var(--muted);gap:7px;margin:10px 0 13px;font-size:9px}.push-readiness i{background:currentColor;border-radius:50%;width:6px;height:6px}.push-readiness.ready{color:var(--mint)}.push-readiness.watch{color:var(--amber)}.push-readiness.blocked{color:var(--red)}.score-pair{gap:10px;display:grid}.score-bar>div:first-child{color:var(--muted);justify-content:space-between;margin-bottom:5px;font-size:9px}.score-bar b{color:#dbe3e5;font-size:10px}.score-track{background:#1d262b;border-radius:2px;height:4px;overflow:hidden}.score-track i{border-radius:inherit;height:100%;transition:width .62s cubic-bezier(.2,.8,.2,1);display:block}.score-track i.long{background:var(--mint)}.score-track i.short{background:var(--red)}.reason-list{border-top:1px solid var(--line-soft);color:#99a5aa;gap:6px;margin:13px 0 0;padding:11px 0 0;font-size:9px;list-style:none;display:grid}.reason-list li{overflow-wrap:anywhere;padding-left:12px;position:relative}.reason-list li:before{content:"";background:#4f5f66;border-radius:50%;width:4px;height:4px;position:absolute;top:.42em;left:0}.risk-main{border-bottom:1px solid var(--line-soft);justify-content:space-between;gap:18px;padding:4px 0 13px}.risk-main>div{min-width:0}.risk-main>div:last-child{text-align:right}.risk-main strong{color:#edf3f4;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;margin-top:5px;font-size:18px;display:block}.risk-table{margin-top:5px;display:grid}.risk-table div{border-bottom:1px solid var(--line-soft);justify-content:space-between;min-height:30px;padding-left:11px;position:relative}.risk-table div:before{content:"";opacity:.7;background:currentColor;border-radius:2px;width:3px;height:12px;position:absolute;left:0}.risk-table div.stop{color:var(--red)}.risk-table div.target{color:var(--mint)}.risk-table b{color:#cbd4d7;font-variant-numeric:tabular-nums;font-size:10px}.signal-history-list{display:grid}.signal-history-row{border-bottom:1px solid var(--line-soft);grid-template-columns:1fr 1fr;gap:8px;min-height:50px;padding:8px 1px;display:grid}.signal-history-row>div{min-width:0}.signal-history-row b{font-size:10px}.signal-history-row span{color:#cbd4d7;text-align:right;font-variant-numeric:tabular-nums;font-size:10px;font-weight:750;display:block}.signal-history-row small,.empty-history{color:var(--faint);overflow-wrap:anywhere;margin-top:5px;font-size:8px;display:block}.signal-history-row>div:last-child small{text-align:right}.test-history-card .signal-history-row small.accepted{color:var(--mint)}.test-history-card .signal-history-row small.failed{color:var(--red)}.test-history-card .signal-history-row small.sending{color:var(--amber)}.empty-history{margin:0;padding:5px 0;font-size:10px}.params-panel{scrollbar-color:#344047 transparent;scrollbar-width:thin;max-height:540px;overflow:auto}.param-input,.select-input{gap:8px;min-height:28px;margin-bottom:5px;font-size:9px}.param-input>span,.select-input>span{color:var(--muted);flex:0 0 70px}.param-input input[type=range]{min-width:0;height:3px;accent-color:var(--mint);cursor:pointer;flex:1}.param-input b{color:#cfd8da;text-align:right;font-variant-numeric:tabular-nums;width:35px}.select-input input[type=checkbox]{width:14px;height:14px;accent-color:var(--mint)}.select-input select{border:1px solid var(--line);color:#cfd8da;background:var(--surface-soft);border-radius:5px;flex:1;min-width:0;padding:5px 7px;font-size:9px}.param-section-label{border-top:1px solid var(--line);color:var(--mint);margin:10px 0 8px;padding-top:10px;font-size:9px;font-weight:800}.tp-row{border-top:1px solid var(--line-soft);color:var(--muted);gap:6px;margin-top:9px;padding-top:9px;font-size:9px}.tp-row svg{flex:none}.tp-row span{width:45px}.tp-row input{border:1px solid var(--line);color:#cfd8da;background:var(--surface-soft);border-radius:5px;width:44px;min-width:0;padding:5px;font-size:9px}@keyframes panel-enter{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@keyframes price-in{0%{opacity:.25;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes live-pulse{0%{box-shadow:0 0 #3dddbc61}60%{box-shadow:0 0 0 5px #3dddbc00}to{box-shadow:0 0 #3dddbc00}}@keyframes spin{to{transform:rotate(360deg)}}@media (width<=1320px){.terminal-shell{padding-inline:12px}.workspace{grid-template-columns:174px minmax(0,1fr) 300px;gap:10px}.right-rail,.chart-column{min-width:0}}@media (width<=1120px){.workspace{grid-template-columns:minmax(0,1fr) 300px}.watchlist{grid-column:1/-1;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;display:grid;position:static}.watchlist>.panel-title,.scan-list{grid-column:1/-1}.symbol-row{border:1px solid var(--line-soft)}.scan-list{grid-template-columns:repeat(6,minmax(0,1fr));gap:0 10px;display:grid}.scan-list .panel-title{grid-column:1/-1}.scan-row>span{width:auto}.metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=860px){.topbar{flex-direction:column;align-items:flex-start;gap:9px;padding:10px 0}.top-actions{justify-content:flex-start;width:100%;padding-bottom:2px;overflow-x:auto}.workspace{grid-template-columns:minmax(0,1fr)}.watchlist,.chart-column,.right-rail{grid-column:1}.right-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.params-panel{max-height:560px}}@media (width<=620px){.terminal-shell{padding:0 8px 20px}.topbar{margin-bottom:8px;position:relative}.status-item span{display:none}.test-push-button,.status-item{white-space:nowrap}.watchlist,.scan-list{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-header{flex-direction:column;align-items:stretch;gap:12px;min-height:0}.chart-controls{align-items:stretch}.timeframe-strip{grid-template-columns:repeat(3,1fr);display:grid}.chart-controls>small{text-align:right}.chart-legend{gap:9px;overflow-x:auto}.chart-legend small{display:none}.chart-panel{height:380px}.metrics-grid,.backtest-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card.inline+.metric-card.inline{border-left:0}.metric-card.inline:nth-child(2n){border-left:1px solid var(--line-soft)}.metric-card.inline:nth-child(n+3){border-top:1px solid var(--line-soft)}.right-rail{grid-template-columns:minmax(0,1fr)}.params-panel{max-height:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.spotlight-card{--mouse-x:50%;--mouse-y:50%;--spotlight-color:#3dddbc1f;isolation:isolate;position:relative;overflow:hidden}.spotlight-card:before{z-index:0;background:radial-gradient(circle 220px at var(--mouse-x) var(--mouse-y), var(--spotlight-color), transparent 78%);content:"";opacity:0;pointer-events:none;transition:opacity .42s;position:absolute;inset:0}.spotlight-card>*{z-index:1;position:relative}.spotlight-card:hover:before,.spotlight-card:focus-within:before{opacity:1}@media (prefers-reduced-motion:reduce){.spotlight-card:before{display:none}}
