:root{--cyan: #1BBFDA;--purple: #6C5CE7;--grad-brand: linear-gradient(90deg, var(--cyan), var(--purple));--bg: #080a0f;--card-bg: #111723;--card-border: #202a3a;--card-border-hover: #2a3548;--input-bg: #0c111b;--text: #f5f7fb;--text-muted: #94a3b8;--text-dim: #64748b}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Segoe UI,Roboto,Arial,sans-serif}.app{min-height:100vh;padding:10px}.topbar{position:sticky;top:-5px;z-index:100;display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"left center right";align-items:center;gap:16px;padding:10px 16px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:999px;margin-bottom:10px;box-shadow:0 6px 20px #00000040}.topbar.topbarScrolled{border-radius:0 0 16px 16px}.topbarLeft{grid-area:left;justify-self:start}.topbarCenter{grid-area:center;justify-self:center;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center}.topbarRight{grid-area:right;justify-self:end;display:flex;align-items:center;gap:10px}.brandLogo{display:inline-flex;align-items:baseline;font-weight:800;font-size:22px;letter-spacing:-.01em;-webkit-user-select:none;user-select:none;line-height:1}.brandTensor{color:var(--text)}.brandAlgo{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-fill-color:transparent;height:26px}.brandTld{color:var(--text);font-weight:700}.affiliatePill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:linear-gradient(90deg,#1bbfda1f,#6c5ce71f);border:1px solid rgba(108,92,231,.35);color:#e0e7ff;font-size:12px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.affiliatePillSave{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-weight:800}.affiliatePillSep{opacity:.5}.affiliatePillCode strong{color:var(--text);font-weight:800;letter-spacing:.04em}.nfaPill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#facc1514;border:1px solid rgba(250,204,21,.35);color:#fde68a;font-size:12px;font-weight:700;letter-spacing:.02em;white-space:nowrap}.nfaPillIcon{font-size:13px;color:#facc15;line-height:1}.iconButton{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;background:var(--input-bg);border:1px solid var(--card-border-hover);border-radius:12px;color:var(--text-muted);cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease}.iconButton:hover{background:var(--grad-brand);color:#fff;border-color:transparent;box-shadow:0 6px 18px #1bbfda40;transform:translateY(-1px)}.iconButtonActive{background:var(--grad-brand);color:#fff;border-color:transparent}.iconButtonSmall{width:30px;height:30px;border-radius:10px}.settingsBackdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;padding:0;border:none;border-radius:0;background:#0206177a;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);cursor:default}.settingsPanel{position:fixed;top:calc(10px + var(--topbar-h, 60px) + 10px);left:10px;right:10px;z-index:95;max-height:calc(100vh - var(--topbar-h, 60px) - 30px);overflow:auto;display:flex;flex-direction:column;gap:10px;padding:0;border-radius:18px;background:#111723f5;border:1px solid rgba(108,92,231,.35);box-shadow:0 24px 80px #000000a6,0 0 0 1px #1bbfda14}.settingsPanel .card,.settingsTabs{background:#111723fa}.settingsTabs{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;background:var(--card-bg);border:1px solid var(--card-border)}.settingsTabsLeft{display:flex;flex-wrap:wrap;gap:4px}.settingsTab{padding:7px 14px;border-radius:999px;background:transparent;border:1px solid transparent;color:var(--text-muted);font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:all .15s ease}.settingsTab:hover{background:var(--input-bg);color:var(--text)}.settingsTabActive{background:var(--grad-brand);color:#fff;border-color:transparent;box-shadow:0 4px 12px #1bbfda33}.settingsContent{display:block}.settingsRow{display:grid;grid-template-columns:260px 1fr;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid rgba(148,163,184,.08)}.settingsRow:last-child{border-bottom:none}.settingsRow label{color:var(--text-muted);font-size:13px}.settingsRow input[type=text],.settingsRow input[type=number],.settingsRow select{width:100%}.settingsSubheading{margin:0 0 8px;font-size:12px;letter-spacing:.06em;color:#cbd5e1;text-transform:uppercase}.layoutCardList{display:flex;flex-direction:column;gap:4px}.layoutCardRow{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid var(--card-border);border-radius:10px;background:var(--input-bg);font-size:13px}.layoutCardLabel{display:inline-flex;align-items:center;gap:8px;color:var(--text)}.layoutCardSize{font-size:11px;color:var(--text-dim);font-weight:600;padding:2px 6px;border-radius:999px;background:#94a3b81a}.layoutCardRemoveBtn,.layoutCardAddBtn{font-size:11px;padding:5px 10px;border-radius:999px}.layoutCardAddBtn{background:var(--grad-brand);color:#fff;border:none}.layoutCardAddBtn:hover{filter:brightness(1.1);background:var(--grad-brand)}.dashboardGrid{position:relative;width:100%;margin-top:10px}.dashboardGrid .layout{position:relative}.dashboardGrid .gridItem{position:relative;display:flex;flex-direction:column;overflow:hidden}.dashboardGrid .gridItem>.card{flex:1;display:flex;flex-direction:column;min-height:0;width:100%}.dashboardGrid .gridItem>.card>.cardBody{flex:1;overflow:auto;min-height:0}.dashboardGrid .react-grid-placeholder{background:linear-gradient(135deg,#1bbfda26,#6c5ce726)!important;border:2px dashed var(--cyan)!important;border-radius:16px!important;opacity:1!important}.dashboardGrid.editing{padding-bottom:100px}.dashboardGrid.editing .gridItem{outline:1px dashed rgba(108,92,231,.55);outline-offset:-1px;border-radius:16px}.dashboardGrid.editing .gridItem .cardHeader{cursor:grab}.dashboardGrid.editing .gridItem .cardHeader:active,.dashboardGrid.editing .react-grid-item.react-draggable-dragging .cardHeader{cursor:grabbing}.dashboardGrid.editing .react-grid-item.react-draggable-dragging{z-index:10;box-shadow:0 16px 40px #1bbfda40}.dashboardGrid .react-resizable-handle{width:18px;height:18px;bottom:4px;right:4px;background:none;display:none}.dashboardGrid.editing .react-resizable-handle{display:block}.dashboardGrid.editing .react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:0;height:0;border-style:solid;border-width:0 0 12px 12px;border-color:transparent transparent var(--cyan) transparent;opacity:.7;transition:opacity .15s ease}.dashboardGrid.editing .react-resizable-handle:hover:after{opacity:1;border-bottom-color:var(--purple)}.gridItemRemove{position:absolute;top:6px;right:6px;z-index:5;width:24px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:#f8717126;color:#fca5a5;border:1px solid rgba(248,113,113,.35);border-radius:999px;cursor:pointer;transition:all .15s ease}.gridItemRemove:hover{background:#ef4444;color:#fff;border-color:transparent}.editModeBanner{margin-bottom:10px;padding:10px 14px;border-radius:12px;background:linear-gradient(90deg,#1bbfda1f,#6c5ce71f);border:1px solid rgba(108,92,231,.35);color:#e0e7ff;font-size:13px}.editModeBanner strong{color:var(--cyan)}.dashboardGridMobile{display:flex;flex-direction:column;gap:10px}.gridItemMobile,.gridItemMobile .card{width:100%}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:10px}.card.cardCollapsed{padding-top:8px;padding-bottom:8px}.card.cardCollapsed .cardHeader{margin-bottom:0}.deltaCard{border-color:#4ade8040}.cardHeader{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.cardHeaderRight{display:flex;align-items:center;gap:10px}.card h3{margin:0;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:#cbd5e1}.row{display:flex;justify-content:space-between;gap:12px;padding:7px 8px;border-bottom:1px solid rgba(148,163,184,.08);font-size:13px}.row span{color:var(--text-muted)}.row strong{text-align:right;overflow-wrap:anywhere}.toggle{font-size:18px;opacity:.7}.settingsPanel .settingsContent .card{border:none}.errorBanner{background:#f871711f;color:#fecaca;border:1px solid rgba(248,113,113,.3);padding:8px 10px;border-radius:12px;margin-bottom:10px}.controlPanel{background:transparent;padding:0}.tradeInputs{display:grid;grid-template-columns:90px 1fr 80px;gap:8px;margin-bottom:8px}select,input,button{border:1px solid var(--card-border-hover);background:var(--input-bg);color:var(--text);border-radius:10px;padding:9px 10px;font-size:13px;font-family:inherit}button{cursor:pointer;font-weight:700}button:hover{background:#172033}button:disabled{opacity:.45;cursor:wait}.buttonGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.signalTop{display:grid;grid-template-columns:1fr 1fr 90px;gap:8px;margin-bottom:8px}.bigBadge{padding:10px;border-radius:14px;text-align:center;font-weight:900;text-transform:uppercase}.confidence{padding:8px;border-radius:14px;background:var(--input-bg);border:1px solid var(--card-border-hover);display:flex;flex-direction:column;align-items:center}.confidence span{font-size:10px;color:var(--text-muted)}.confidence strong{font-size:18px}.badge{padding:5px 8px;border-radius:999px;font-weight:900;font-size:11px}.green{background:#22c55e24;color:#4ade80;border:1px solid rgba(74,222,128,.35)}.red{background:#ef444424;color:#f87171;border:1px solid rgba(248,113,113,.35)}.yellow{background:#eab30824;color:#facc15;border:1px solid rgba(250,204,21,.35)}.gray{background:#94a3b81f;color:#cbd5e1;border:1px solid rgba(148,163,184,.25)}.purple{background:#a855f726;color:#c084fc;border:1px solid rgba(192,132,252,.35)}.orange{background:#fb923c26;color:#fb923c;border:1px solid rgba(251,146,60,.35)}.blue{background:#3b82f61f;color:#93c5fd;border:1px solid rgba(96,165,250,.3)}.pillList,.eventTape,.reasons,.warnings{margin-top:8px;display:grid;gap:6px}.pill,.eventPill,.warnings div{padding:6px 8px;border-radius:10px;font-size:12px}.eventPill{display:grid;gap:2px;background:var(--input-bg);border:1px solid var(--card-border-hover)}.eventPill strong{font-size:11px}.eventPill span{color:#cbd5e1;font-size:12px}.warnings div{background:#eab3081f;border:1px solid rgba(250,204,21,.3);color:#fde68a}.reasons{margin-top:8px;display:grid;gap:6px;padding:10px 12px;border-radius:10px;line-height:1.45;font-size:13px;color:#cbd5e1}.reasons div{padding:2px 0}.loading{color:#facc15;font-weight:700}.muted{color:var(--text-dim);font-size:13px}.miniBadge{padding:4px 7px;border-radius:999px;font-size:11px;font-weight:800;text-transform:uppercase}.miniConfidence{padding:4px 7px;border-radius:999px;background:#3b82f61f;border:1px solid rgba(96,165,250,.3);color:#bfdbfe;font-size:11px;font-weight:800}.miniBadge.live{background:#18c96426;color:#4ade80;border:1px solid rgba(74,222,128,.4)}.miniBadge.waiting{background:#facc1524;color:#facc15;border:1px solid rgba(250,204,21,.35)}.miniBadge.offline{background:#f8717124;color:#f87171;border:1px solid rgba(248,113,113,.35)}.collapsedSignal,.collapsedControls{display:flex;align-items:center;gap:6px}.collapsedControls button{padding:4px 8px;font-size:11px;border-radius:999px}.collapsedLevel{padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}.collapsedEvent{padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap;max-width:430px;overflow:hidden;text-overflow:ellipsis}.collapsedEvent.yellow{background:#eab30824;color:#facc15;border:1px solid rgba(250,204,21,.35)}.collapsedEvent.green{background:#22c55e24;color:#4ade80;border:1px solid rgba(74,222,128,.35)}.collapsedEvent.red{background:#ef444424;color:#f87171;border:1px solid rgba(248,113,113,.35)}.collapsedEvent.purple{background:#a855f726;color:#c084fc;border:1px solid rgba(192,132,252,.35)}.collapsedEvent.gray{background:#94a3b81f;color:#cbd5e1;border:1px solid rgba(148,163,184,.25)}.conditionBlock{margin-top:8px;display:grid;gap:6px;padding:8px;border-radius:10px;background:#3b82f614;border:1px solid rgba(96,165,250,.25);color:#bfdbfe;font-size:12px}.conditionBlock strong{color:#dbeafe}.exitBlock{background:#3b82f614!important;border:1px solid rgba(96,165,250,.28)!important;color:#bfdbfe!important}.blockGreen{background:#00c87814;border:1px solid rgba(0,200,120,.25)}.blockRed{background:#ff505014;border:1px solid rgba(255,80,80,.25)}.blockGray{background:#96969614;border:1px solid rgba(150,150,150,.25)}.authPage{min-height:100vh;display:grid;place-items:center;background:#050505;color:#fff}.authCard{width:min(420px,calc(100% - 32px));padding:32px;border:1px solid rgba(255,255,255,.12);border-radius:18px;background:#10131a}.authCard input{width:100%;margin:18px 0;padding:14px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:#050505;color:#fff}.authCard button{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:13px 21px;font-weight:700;font-size:14px;color:#fff;border:1px solid rgba(255,255,255,.16);background:var(--grad-brand);box-shadow:0 18px 50px #1bbfda2e;cursor:pointer;transition:.18s ease;white-space:nowrap}.authCard button:hover{transform:translateY(-1px);box-shadow:0 22px 60px #1bbfda47}.authCard button:disabled{opacity:.6;cursor:not-allowed;transform:none}.authMessage{color:var(--cyan)}footer{margin-top:10px;display:flex;justify-content:flex-end}.debugBtn{font-size:12px;padding:7px 10px}.debugJson{margin-top:10px;padding:12px;background:#020617;border:1px solid #1e293b;border-radius:12px;color:#cbd5e1;overflow:auto;max-height:420px;font-size:11px}.iconButtonMobileOnly{display:none}.topbar.topbarCollapsed{grid-template-columns:1fr auto 1fr;grid-template-areas:"left center right"}@media(max-width:599px){.iconButtonMobileOnly{display:inline-flex}.topbar{grid-template-columns:1fr auto;grid-template-areas:"left right" "center center";row-gap:10px;column-gap:10px;padding:10px 12px;border-radius:18px;top:6px}.topbarLeft{justify-self:start;min-width:0}.topbarRight{justify-self:end}.brandLogo{font-size:20px}.brandAlgo{height:24px}.topbarCenter{justify-self:stretch;flex-direction:column;align-items:stretch;gap:8px}.topbarCenter .affiliatePill,.topbarCenter .nfaPill{justify-content:center}.topbar.topbarCollapsed{grid-template-columns:1fr auto;grid-template-areas:"left right"}.topbar.topbarCollapsed .topbarCenter{display:none}.buttonGrid,.tradeInputs,.settingsRow{grid-template-columns:1fr}.settingsPanel{top:calc(6px + var(--topbar-h, 58px) + 8px);max-height:calc(100vh - var(--topbar-h, 58px) - 24px)}}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}
