:root{--bg:#06111e;--panel:#0d1b2b;--line:#1d4163;--text:#fff;--muted:#9bd2ff;--blue:#2094ff;--blue2:#113963;--green:#00ff9c;--red:#ff5270;--yellow:#ffd666}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}.side{position:fixed;left:0;top:0;bottom:0;width:86px;background:#071421;border-right:1px solid #153557;display:flex;align-items:center;flex-direction:column;padding:8px 6px;gap:14px}.logo{width:52px;height:52px;border-radius:12px;background:linear-gradient(135deg,#11d4ff,#2455ff);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:20px}.sideBtn{width:76px;border:1px solid #21486d;border-radius:9px;background:#0b1c2f;color:#bde2ff;padding:11px 4px;font-weight:700;cursor:pointer}.sideBtn:hover,.sideBtn.active{background:var(--blue);color:#fff}.app{margin-left:86px;padding:18px 26px 40px}.topbar{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.topbar h1{font-size:34px;margin:0}.topbar p{font-size:20px;color:#9bd2ff;margin:3px 0 0}.topRight{display:flex;gap:12px;align-items:center}select,input{width:100%;background:#071321;color:#fff;border:1px solid #2a5c89;border-radius:10px;padding:11px 12px;font-size:16px}select{cursor:pointer}.status{display:inline-flex;align-items:center;justify-content:center;background:#10243b;color:#ff6575;border-radius:22px;padding:11px 18px;font-weight:800}.status.online{color:#00ffc2}.view h2{font-size:30px;margin:16px 0}.hidden{display:none!important}.panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:16px;margin-bottom:18px}.filterGrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px}.filterGrid .wide{grid-column:1/-1}label span,.calcGrid span{display:block;color:#a7d5ff;margin-bottom:6px}i{font-style:normal;display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;border:1px solid #2998e8;border-radius:50%;color:#75c9ff;font-size:8px;line-height:1;margin-left:3px;vertical-align:middle;cursor:help;box-sizing:border-box;flex-shrink:0}.soundLine{display:flex!important;gap:8px;align-items:center;padding-top:26px}.soundLine input,.checkAll input,.exchangeGrid input{width:auto}.exchangeBox{margin-top:12px;border:1px solid #1f3a58;border-radius:12px;padding:12px}.checkAll{display:inline-flex;align-items:center;gap:8px;margin-bottom:10px}.exchangeGrid{display:flex;flex-wrap:wrap;gap:8px}.exchangeItem{display:inline-flex;align-items:center;gap:6px;background:#0e2742;border:1px solid #245982;border-radius:8px;padding:7px 10px;font-weight:800;color:#9fd7ff;cursor:pointer}.exchangeItem:hover{background:#123b65}.exchangeCount{color:#8fd0ff;margin-top:12px}.actions{display:flex;gap:12px;align-items:center;margin-top:14px}.primary,.secondary,.warning{border:0;border-radius:10px;color:#fff;padding:13px 20px;font-weight:900;font-size:16px;cursor:pointer}.primary{background:#2196ff}.secondary{background:#285c9c}.warning{background:#9b5b0d}.primary:hover,.secondary:hover,.warning:hover{filter:brightness(1.18);transform:translateY(-1px)}.liveText{color:#00ffb6}.tableWrap{border:1px solid var(--line);border-radius:15px;overflow:hidden;background:#081421}.signalsTable{width:100%;border-collapse:collapse}.signalsTable th{text-align:left;color:#a7d5ff;background:#071524;padding:13px 10px;border-bottom:1px solid #254866}.signalsTable td{padding:13px 10px;border-bottom:1px solid #1a314a;vertical-align:top}.coinBtn{background:none;border:0;color:#67c5ff;font-size:18px;font-weight:900;text-decoration:underline;cursor:pointer}.starBtn{background:none;border:0;color:#53708d;font-size:18px;cursor:pointer}.starBtn.on{color:#ffd24a}.leg{font-weight:800}.leg.short{color:#d4ebff}.green{color:var(--green)}.red{color:var(--red)}.spreadNeutral{color:var(--muted)}.meta{font-size:12px;color:#91bbdc}.actionBox{display:flex;gap:8px;flex-wrap:wrap}.miniBtn{background:#123a62;border:1px solid #2b70a8;color:#bde2ff;border-radius:7px;padding:7px 10px;font-weight:800;cursor:pointer}.miniBtn:hover{background:#1e70b6;color:#fff}.subRow{background:#07111d}.subRoute{padding-left:32px!important;color:#bce1ff}.empty{padding:22px;color:#94bbd8}.sub{color:#a9d6ff;margin-top:-8px}.analysisHeader{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.analysisRoute{margin:0}.analysisButtons{display:flex;gap:10px}.analysisGrid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px}.analysisMain{min-width:0}.infoGrid,.calcGrid{display:grid;grid-template-columns:repeat(3,minmax(160px,1fr));gap:12px}.infoGrid div,.calcGrid div{background:#071321;border:1px solid #1d4163;border-radius:10px;padding:11px}.infoGrid span,.calcGrid span{color:#92c7f7;font-size:13px}.infoGrid b,.calcGrid b{font-size:16px}.chartsGrid,.booksGrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.chartBoxMini{height:270px}.bookTable{width:100%;border-collapse:collapse}.bookTable th,.bookTable td{border-bottom:1px solid #1b344f;padding:8px;text-align:right}.bookTable th:first-child,.bookTable td:first-child{text-align:left}.sideCalc{height:max-content;position:sticky;top:12px}.pnlRow{display:flex;justify-content:space-between;border-bottom:1px solid #1b344f;padding:10px 0}.toast{position:fixed;right:20px;bottom:20px;background:#15395b;color:#fff;border:1px solid #2b70a8;border-radius:10px;padding:12px 16px;z-index:99}.mutedEnable{width:100%;background:#285c9c}.mutedEnable:hover{background:#14a777}@media(max-width:1100px){.filterGrid,.analysisGrid,.chartsGrid,.booksGrid{grid-template-columns:1fr}.app{padding:14px}.side{width:72px}.app{margin-left:72px}.topbar h1{font-size:28px}}
/* v2 UI fixes requested by client */
.signalsTable th:last-child,.signalsTable td:last-child{width:150px}.starBtn{color:#536f8b}.starBtn.on{color:#ffd24a;text-shadow:0 0 10px rgba(255,210,74,.45)}
.exLink{color:#7ed0ff;text-decoration:none;font-weight:900}.exLink:hover{text-decoration:underline;color:#fff}.analysisTitle{text-align:center;flex:1}.analysisMain{max-width:1720px;margin:0 auto}.fullPanel{width:100%}.pairInfoGrid div b{margin-left:8px}.pairInfoGrid span,.feeGrid span{display:inline-block;margin-right:6px}.managerCalcGrid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:18px;align-items:start}.managerCalcGrid .sideCalc{position:static}.twoCols{grid-template-columns:repeat(3,minmax(160px,1fr))}.chartsGrid{grid-template-columns:1fr}.chartBoxWide{height:520px}.fundingWide{height:380px}.bookHint{margin:-6px 0 10px;color:#8fbce3;font-size:13px}.buyHint{color:#ff8fa0}.sellHint{color:#51e39d}.bookTable.buyBook .askRow td:first-child,.askRow td{color:#ff5e74}.bookTable.sellBook .bidRow td:first-child,.bidRow td{color:#00d98a}.bookTable td:nth-child(3){color:#cfe9ff}.feeGrid{grid-template-columns:repeat(2,minmax(120px,1fr))}.modal{position:fixed;inset:0;background:rgba(0,0,0,.62);display:flex;align-items:center;justify-content:center;z-index:200}.modalBox{width:min(460px,92vw);background:#0d1b2b;border:1px solid #2a5c89;border-radius:16px;padding:18px;box-shadow:0 18px 50px rgba(0,0,0,.45);position:relative}.modalBox label{display:block;margin:12px 0}.modalClose{position:absolute;right:14px;top:10px;background:none;border:0;color:#bde2ff;font-size:28px;cursor:pointer}.modalClose:hover{color:#fff}.miniBtn.chartBtn{min-width:92px}.analysisHeader .warning:hover,.analysisHeader .secondary:hover{filter:brightness(1.2)}
@media(max-width:1100px){.managerCalcGrid{grid-template-columns:1fr}.chartBoxWide{height:360px}.fundingWide{height:300px}.twoCols{grid-template-columns:1fr}.analysisTitle{text-align:left}}


/* UI update: spread chart with right-side order books */
.spreadLayout{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:18px;align-items:stretch;margin-bottom:18px}.spreadPanel{margin-bottom:0}.booksStack{display:grid;grid-template-rows:1fr 1fr;gap:18px;min-height:540px}.orderPanel{margin-bottom:0;overflow:hidden}.chartBoxWide{height:500px}.fundingWide{height:340px}.bookTable th,.bookTable td{padding:6px 8px}.bookHint{margin:-6px 0 8px;font-size:13px;font-weight:800}.longHint{color:#00d98a}.shortHint{color:#ff5e74}.bookTable.longBook .longRow td{color:#00d98a}.bookTable.shortBook .shortRow td{color:#ff5e74}.bookTable td:nth-child(3){color:#cfe9ff}@media(max-width:1250px){.spreadLayout{grid-template-columns:1fr}.booksStack{grid-template-columns:1fr 1fr;grid-template-rows:auto;min-height:0}.chartBoxWide{height:420px}}@media(max-width:760px){.booksStack{grid-template-columns:1fr}.chartBoxWide{height:340px}}

/* v2 analysis layout: competitor-style */
.topAnalysisGrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.9fr);gap:18px;align-items:stretch}.arbCalcGrid{grid-template-columns:repeat(3,minmax(150px,1fr))}.pnlMiniRows{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.pnlMiniRows .pnlRow{background:#071321;border:1px solid #1d4163;border-radius:10px;padding:10px 12px;display:flex;justify-content:space-between;gap:10px}.analysisTradeLayout{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:18px;align-items:stretch;margin-bottom:18px}.analysisTradeLayout .spreadPanel{margin-bottom:0}.analysisTradeLayout .chartBoxWide{height:660px}.tradeSidePanel{display:grid;grid-template-rows:auto 1fr 1fr;gap:14px;min-height:660px}.exchangeCards{display:grid;grid-template-columns:1fr 1fr;gap:12px}.exchangeInfoCard{margin-bottom:0;padding:13px}.exchangeInfoCard h3{margin:0 0 8px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:16px}.tradeBadge{display:inline-flex;border-radius:8px;padding:4px 8px;font-size:12px;font-weight:900}.tradeBadge.long{background:#104e36;color:#20f0a0}.tradeBadge.short{background:#531727;color:#ff6680}.copySym{border:1px solid #245982;background:#0b2036;color:#9bd2ff;border-radius:7px;padding:3px 7px;font-size:11px;font-weight:900;cursor:pointer}.copySym:hover{background:#164d7f;color:#fff}.feeGrid{grid-template-columns:1fr!important;gap:6px}.feeGrid div{padding:7px 9px}.feeGrid span{display:inline-block;margin-right:6px}.feeGrid b{font-size:13px}.orderPanel{margin-bottom:0;overflow:hidden;padding:13px}.orderPanel h3{font-size:16px;margin:0 0 8px}.bookTable th,.bookTable td{padding:6px 8px}.bookTable.longBook .longRow td{color:#00e895!important}.bookTable.shortBook .shortRow td{color:#ff5f78!important}.longHint{color:#00e895}.shortHint{color:#ff5f78}.pairInfoGrid div b{margin-left:8px}.analysisHeader{max-width:1720px;margin-left:auto;margin-right:auto}.fullPanel{max-width:1720px;margin-left:auto;margin-right:auto}.analysisMain{max-width:1720px}.fundingWide{height:360px}.analysisRoute a,.exLink{color:#7ed0ff;text-decoration:none;font-weight:900}.analysisRoute a:hover,.exLink:hover{text-decoration:underline;color:#fff}@media(max-width:1300px){.analysisTradeLayout{grid-template-columns:1fr}.tradeSidePanel{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;min-height:0}.exchangeCards{grid-column:1/-1}.analysisTradeLayout .chartBoxWide{height:520px}}@media(max-width:950px){.topAnalysisGrid,.tradeSidePanel,.exchangeCards,.pnlMiniRows{grid-template-columns:1fr}.analysisTradeLayout .chartBoxWide{height:420px}}

/* competitor layout revision: compact top, large left chart, four right blocks */
.competitorAnalysis{max-width:1720px;margin:0 auto;}
.compactTop{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.positionPanel,.arbPanel{margin-bottom:0;padding:15px;}
.positionPanel h3,.arbPanel h3,.spreadPanel h3,.orderPanel h3,.exchangeInfoCard h3{margin-top:0;}
.compactTop .calcGrid{gap:8px;}
.compactTop input{padding:8px 10px;font-size:14px;}
.compactTop .calcGrid div{padding:8px 10px;}
.compactTop .calcGrid span{font-size:12px;margin-bottom:3px;}
.compactTop .calcGrid b{font-size:15px;}
.pnlMiniRows{grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px;}
.pnlMiniRows .pnlRow{padding:7px 9px;font-size:12px;}
.analysisTradeLayout{display:grid;grid-template-columns:minmax(0,1fr) 430px;gap:16px;align-items:stretch;margin:0 0 16px;}
.analysisTradeLayout .spreadPanel{margin-bottom:0;padding:14px;}
.analysisTradeLayout .chartBoxWide{height:560px;}
.tradeSidePanel{display:grid;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:12px;height:590px;min-height:0;}
.exchangeCards{display:contents;}
.exchangeInfoCard,.orderPanel{margin:0;padding:12px;min-height:0;overflow:hidden;}
.exchangeInfoCard h3,.orderPanel h3{font-size:15px;margin-bottom:8px;}
.exchangeInfoCard.longCard,.exchangeInfoCard#longExCard{border-color:#137a56;background:linear-gradient(180deg,rgba(14,78,54,.22),rgba(13,27,43,.96));}
.exchangeInfoCard.shortCard,.exchangeInfoCard#shortExCard{border-color:#7a1f35;background:linear-gradient(180deg,rgba(83,23,39,.25),rgba(13,27,43,.96));}
.orderPanel:has(.longBook){border-color:#137a56;background:linear-gradient(180deg,rgba(14,78,54,.16),rgba(13,27,43,.96));}
.orderPanel:has(.shortBook){border-color:#7a1f35;background:linear-gradient(180deg,rgba(83,23,39,.18),rgba(13,27,43,.96));}
.tradeBadge.long{background:#104e36;color:#20f0a0;border:1px solid #20f0a0;}
.tradeBadge.short{background:#531727;color:#ff6680;border:1px solid #ff6680;}
.longHint{color:#20f0a0;font-weight:800;}
.shortHint{color:#ff6680;font-weight:800;}
.feeGrid{display:grid!important;grid-template-columns:1fr!important;gap:5px;}
.feeGrid div{padding:6px 8px!important;border-radius:7px;}
.feeGrid span{font-size:11px;color:#9bd2ff;}
.feeGrid b{font-size:12px;}
.bookTable th,.bookTable td{padding:5px 6px;font-size:12px;}
.bookTable.longBook .longRow td{color:#00e895!important;font-weight:700;}
.bookTable.shortBook .shortRow td{color:#ff5f78!important;font-weight:700;}
.bookTable td:nth-child(3){color:#dcecff!important;font-weight:600;}
.fundingWide{height:300px;}
.fullPanel{margin-bottom:16px;}
.analysisHeader{margin-bottom:12px;}
.analysisHeader h2{margin:0;font-size:34px;}
.analysisRoute a{color:#7ed0ff;text-decoration:none;font-weight:900;}
.analysisRoute a:hover{text-decoration:underline;color:#fff;}
@media(max-width:1300px){
  .compactTop,.analysisTradeLayout{grid-template-columns:1fr;}
  .tradeSidePanel{height:auto;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;}
  .analysisTradeLayout .chartBoxWide{height:440px;}
}
@media(max-width:850px){
  .tradeSidePanel,.pnlMiniRows{grid-template-columns:1fr;}
}
.longOrderPanel{border-color:#137a56;background:linear-gradient(180deg,rgba(14,78,54,.16),rgba(13,27,43,.96));}
.shortOrderPanel{border-color:#7a1f35;background:linear-gradient(180deg,rgba(83,23,39,.18),rgba(13,27,43,.96));}

/* v25 competitor exact layout + clean controls */
select,
input[type=number] {
  -webkit-appearance: none;
  -moz-appearance: textfield;
  appearance: none;
  background-image: none !important;
}
select::-ms-expand{display:none}
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.topRight select{padding-right:12px;text-align:center;}
.analysisHeader{display:grid;grid-template-columns:260px 1fr 260px;align-items:center;max-width:1720px;margin:0 auto 12px;}
.analysisHeader .analysisTitle{text-align:center;grid-column:2;}
.analysisHeader .analysisTitle h2{font-size:34px;margin:0;line-height:1.05;}
.analysisCoinTitle{cursor:text;user-select:none;outline:none;border-radius:8px;padding:2px 8px;display:inline-block;}
.analysisCoinTitle:hover{background:rgba(126,208,255,.08);}
.analysisCoinTitle.editing{user-select:text;background:rgba(126,208,255,.14);box-shadow:inset 0 0 0 1px #3d7eb8;caret-color:#7ed0ff;}
.analysisHeader .analysisTitle p{font-size:17px;font-weight:900;color:#7ed0ff;margin:4px 0 0;}
.analysisHeader .secondary{grid-column:1;justify-self:start;}
.topAnalysisGrid.compactTop{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;max-width:1720px;margin:0 auto 16px;align-items:stretch;}
.competitorCard{min-height:250px;border-color:#293f77;background:linear-gradient(180deg,rgba(44,33,100,.24),rgba(13,27,43,.96));}
.positionPanel h3,.arbPanel h3{font-size:16px;text-transform:uppercase;letter-spacing:.4px;color:#dcecff;margin:0 0 12px;}
.pmRows{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.pmLine{display:grid;grid-template-columns:120px 1fr;align-items:center;border:1px solid #1d4163;border-radius:10px;background:#071321;min-height:40px;padding:0 10px;}
.pmLine span{margin:0;color:#a7d5ff;font-size:13px;}
.pmLine input{border:0;background:transparent;padding:0;font-weight:800;text-align:left;height:38px;}
.pmLine:first-child,.pmLine:nth-child(2),.pmLine:nth-child(3){grid-column:1/-1;}
.pmDuo{display:grid;grid-template-columns:1fr 1fr;gap:8px;align-items:center;border:1px solid #1d4163;border-radius:10px;background:#071321;min-height:40px;padding:8px 10px;}
.pmDuo span{font-size:12px;color:#a7d5ff;margin:0;text-transform:uppercase;}
.pmDuo b{font-size:15px;text-align:right;}
.pmButtons{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;}
.pmBtn{border:0;border-radius:9px;padding:11px 12px;color:#fff;font-weight:900;cursor:pointer;background:#2c437b;}
.pmBtn:hover{filter:brightness(1.18);transform:translateY(-1px)}
.alertBtn{background:#51427d;}
.tgBtn{background:#51427d;}
.arbRows{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.arbFull{grid-column:1/-1;display:grid;grid-template-columns:150px 1fr;align-items:center;border:1px solid #1d4163;border-radius:10px;background:#071321;min-height:48px;padding:0 10px;}
.arbFull span{margin:0;color:#a7d5ff;font-size:13px;}
.arbFull input{border:0;background:transparent;height:42px;padding:0;font-weight:900;}
.arbDuo{border:1px solid #1d4163;border-radius:12px;background:#071321;min-height:72px;padding:14px 16px;display:flex;flex-direction:column;justify-content:center;}
.arbDuo span{font-size:13px;color:#a7d5ff;text-transform:uppercase;margin-bottom:8px;}
.arbDuo b{font-size:18px;color:#dcecff;}
.liqBox b.ok{color:#32f6a1;font-size:20px;}
.liqBox b.bad{color:#ff6680;font-size:20px;}
.analysisTradeLayout{display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:16px;max-width:1720px;margin:0 auto 16px;align-items:stretch;}
.analysisTradeLayout .spreadPanel{padding:16px;margin:0;min-height:640px;}
.analysisTradeLayout .chartBoxWide{height:590px!important;}
.tradeSidePanel{height:640px!important;min-height:640px!important;display:grid!important;grid-template-columns:1fr 1fr!important;grid-template-rows:1fr 1fr!important;gap:14px;}
.exchangeCards{display:contents!important;}
.exchangeInfoCard,.orderPanel{height:100%;min-height:0;margin:0;overflow:hidden;border-radius:16px;padding:14px;}
.exchangeInfoCard h3,.orderPanel h3{font-size:18px;line-height:1.05;margin:0 0 10px;}
.exchangeInfoCard.longCard{border-color:#0dd68d;box-shadow:inset 0 0 0 1px rgba(0,255,156,.25);}
.exchangeInfoCard.shortCard{border-color:#ff5270;box-shadow:inset 0 0 0 1px rgba(255,82,112,.25);}
.tradeBadge.long{background:#0d8359;color:#fff;border-color:#20f0a0;}
.tradeBadge.short{background:#a32942;color:#fff;border-color:#ff6680;}
.feeGrid div{background:rgba(4,15,28,.78)!important;border-color:#23557e!important;min-height:28px;display:flex;justify-content:space-between;gap:8px;align-items:center;}
.feeGrid span{font-size:11px!important;}
.feeGrid b{font-size:12px!important;text-align:right;}
.orderPanel.longOrderPanel{border-color:#0dd68d;}
.orderPanel.shortOrderPanel{border-color:#ff5270;}
.bookTable th{font-size:12px;color:#e8f4ff;}
.bookTable td{font-size:13px;padding:6px 6px;}
.fullPanel{max-width:1720px;margin-left:auto;margin-right:auto;}
@media(max-width:1300px){.topAnalysisGrid.compactTop,.analysisTradeLayout{grid-template-columns:1fr!important}.tradeSidePanel{height:auto!important;min-height:0!important}.analysisTradeLayout .chartBoxWide{height:440px!important}.analysisHeader{grid-template-columns:1fr}.analysisHeader .analysisTitle{grid-column:1;text-align:left}.analysisHeader .secondary{grid-column:1}}
/* v27 Arbitrage Calculator — liquidity/orderbook based */
.liqStatus.good{color:#16f29a!important;text-shadow:0 0 10px rgba(22,242,154,.35);font-size:22px!important;font-weight:1000;}
.liqStatus.bad{color:#ff5f78!important;text-shadow:0 0 10px rgba(255,95,120,.25);font-size:20px!important;font-weight:1000;}
.arbPanel .arbDuo.liqBox{border-color:#149463;background:linear-gradient(180deg,rgba(14,128,85,.18),rgba(7,19,33,.96));}
.arbPanel .arbDuo span{white-space:normal;}
.spreadPanel h3::after{content:'  Entry vs Exit after market size';font-size:12px;color:#86bff2;font-weight:700;margin-left:8px;text-transform:none;letter-spacing:0;}
.bookTable.longBook .longRow td{color:#00e895!important;}
.bookTable.shortBook .shortRow td{color:#ff5f78!important;}
/* v28: hide native number spinners */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
input[type=number]{ -moz-appearance:textfield; appearance:textfield; }

/* Hide ugly browser number input arrows */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
input[type=number]{
  appearance:textfield;
  -moz-appearance:textfield;
}

/* v34 competitor polish */
input:focus,select:focus,button:focus{outline:none!important;box-shadow:none!important;}
.arbRows .arbDuo:has(#arbSlippage){display:none!important;}
.arbFull input{border:0!important;outline:0!important;box-shadow:none!important;background:transparent!important;}
.competitorCard,.exchangeInfoCard,.orderPanel,.spreadPanel{background:linear-gradient(180deg,rgba(22,16,56,.72),rgba(8,12,30,.94))!important;border-color:rgba(90,82,170,.45)!important;}
.pmLine,.pmDuo,.arbFull,.arbDuo{border:1px dashed rgba(112,101,190,.42)!important;background:rgba(9,6,34,.55)!important;border-radius:10px!important;min-height:36px!important;}
.pmLine span,.pmDuo span,.arbFull span,.arbDuo span,.feeGrid span{font-size:11px!important;color:#b8b4d9!important;letter-spacing:.2px;}
.pmLine input,.arbFull input,.pmDuo b,.arbDuo b{font-size:14px!important;}
.positionPanel h3,.arbPanel h3{font-size:15px!important;}
.analysisHeader .analysisTitle h2{font-size:30px!important;}
.analysisHeader .analysisTitle p{font-size:15px!important;}
.liqStatus.good,.liqStatus.ok,#liqStatus.ok{color:#31f08d!important;font-size:17px!important;}
.liqStatus.bad,#liqStatus.bad{color:#ff5162!important;font-size:17px!important;}
.exchangeInfoCard h3{position:relative;display:grid!important;grid-template-columns:auto 26px 64px;gap:8px;align-items:center;font-size:16px!important;}
.exchangeInfoCard h3 .exTitleName a{color:#f4f1ff;text-decoration:none;}
.exchangeInfoCard h3 .exTitleName a:hover{color:#75d6ff;text-decoration:underline;}
.exDropBtn{width:26px;height:24px;border-radius:7px;border:1px solid rgba(130,121,210,.45);background:rgba(255,255,255,.08);color:#d7d2ff;font-weight:900;cursor:pointer;}
.exDropBtn:hover{background:rgba(255,255,255,.16)}
.exDropBtn:disabled{opacity:.55;cursor:wait}
.exMenu{
  position:fixed;
  z-index:10000;
  width:220px;
  max-height:min(320px, calc(100vh - 24px));
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  -webkit-overflow-scrolling:touch;
  padding:8px;
  padding-bottom:8px;
  box-sizing:border-box;
  background:#070315;
  border:1px solid rgba(120,110,210,.55);
  border-radius:12px;
  box-shadow:0 18px 38px rgba(0,0,0,.45);
  scrollbar-width:thin;
  scrollbar-color:#3b82f6 #09051e;
}
.exMenu.hidden{display:none!important}
.exMenu button{display:block;width:100%;text-align:left;border:0;background:transparent;color:#eee9ff;padding:9px 10px;border-radius:8px;font-size:14px;cursor:pointer;box-sizing:border-box;}
.exMenu button:last-child{margin-bottom:0}
.exMenu button:hover:not(:disabled){background:rgba(45,135,255,.22);color:#fff;}
.exMenu button.active{background:rgba(45,135,255,.28)!important;color:#fff!important;font-weight:800}
.exMenu button:disabled,.exMenu button.isOpposite{opacity:.55;cursor:not-allowed;color:#9aa3c7}
.exMenuStatus{padding:10px 8px;color:#9bd2ff;font-size:13px}
.exMenuRetry{margin-top:6px;width:100%;border:1px solid rgba(120,110,210,.55);border-radius:8px;background:rgba(45,135,255,.18);color:#fff;padding:9px 10px;cursor:pointer;font-weight:700}
.exMenu::-webkit-scrollbar{width:8px}
.exMenu::-webkit-scrollbar-track{background:#09051e;border-radius:10px}
.exMenu::-webkit-scrollbar-thumb{background:#3b82f6;border-radius:8px}
.exchangeCards{position:relative!important;}
.swapRouteBtn{position:absolute;z-index:20;left:50%;top:50%;transform:translate(-50%,-50%);width:42px;height:42px;border-radius:50%;border:1px solid rgba(110,104,210,.6);background:rgba(44,36,112,.88);color:#e6e0ff;font-size:24px;cursor:pointer;box-shadow:0 8px 22px rgba(0,0,0,.35)}
.swapRouteBtn:hover{background:#3565c9;color:#fff;}
.feeGrid div{background:transparent!important;border:0!important;border-bottom:1px dashed rgba(120,110,210,.28)!important;border-radius:0!important;padding:4px 0!important;min-height:22px!important;}
.feeGrid b{font-size:12px!important;color:#f3f4ff!important;}
.bookTable{display:block;max-height:100%;overflow:hidden}.bookTable thead,.bookTable tbody{display:table;width:100%;table-layout:fixed}.bookTable tbody{display:block;max-height:260px;overflow-y:auto}.bookTable tr{display:table;width:100%;table-layout:fixed}.bookTable td,.bookTable th{font-size:12px!important;padding:4px 6px!important;}
.longOrderPanel,.shortOrderPanel{background:rgba(9,6,34,.55)!important;}
.bookTable .longRow td{color:#18e59b!important;background:rgba(0,180,116,.08)!important}.bookTable .shortRow td{color:#ff536b!important;background:rgba(255,82,112,.08)!important}
.historicalAction{max-width:1720px;margin:8px auto 20px;text-align:center}.historicalBtn{min-width:320px;background:rgba(21,17,60,.8)!important;border:1px solid rgba(120,110,210,.55)!important;border-radius:9px!important;font-weight:500!important;letter-spacing:.5px}.historyModalBox{width:min(92vw,1480px);max-width:1480px;background:#080317!important;border:1px solid rgba(120,110,210,.55)!important}.modalChartBox{border:1px solid rgba(120,110,210,.38);border-radius:12px;padding:14px;margin:10px 0;background:rgba(9,6,34,.55)}.historyChartPlaceholder{height:360px;border-radius:10px;border:1px dashed rgba(120,110,210,.35);display:flex;align-items:center;justify-content:center;color:#b8b4d9;background:#060313}
.fullPanel.fundingInline{display:none!important;}

/* v35 final UX polish */
.app{padding:12px 22px 34px}.topbar{margin-bottom:10px}.topbar h1{font-size:30px}.topbar p{font-size:18px}.view h2{font-size:26px;margin:10px 0 14px}.panel{border-color:rgba(90,82,170,.36);background:linear-gradient(180deg,rgba(12,27,43,.94),rgba(6,17,30,.96));box-shadow:none}.filterGrid{gap:10px 12px}.filterGrid label span{font-size:14px}select,input{font-size:15px;padding:9px 10px;border-color:#1d4163}.exchangeItem{padding:6px 9px;font-size:14px}.primary,.secondary{padding:11px 18px;font-size:15px}.signalsTable th{padding:10px 10px;font-size:14px}.signalsTable td{padding:10px 10px;font-size:15px}.coinBtn{font-size:17px}.expandBtn{background:transparent;border:0;color:#7ed0ff;font-weight:900;cursor:pointer;font-size:15px}.expandBtn:hover{color:#fff}.miniBtn{padding:6px 10px;font-size:13px}
.analysisHeader{display:grid;grid-template-columns:260px 1fr 260px;align-items:center}.analysisHeader .secondary{justify-self:start}.analysisTitle{text-align:center}.analysisTitle h2{margin:0!important}.analysisTitle p{margin:2px 0 0!important}.topAnalysisGrid.compactTop{grid-template-columns:1fr 1fr;gap:14px}.competitorCard{min-height:230px;padding:14px}.pmRows{gap:7px}.pmLine{min-height:34px!important}.pmDuo{min-height:36px!important}.pmButtons{margin-top:8px}.pmBtn{padding:9px 10px}.arbFull{min-height:42px!important}.arbDuo{min-height:64px;padding:12px 14px}.analysisTradeLayout{gap:14px!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}.analysisTradeLayout .spreadPanel{min-height:620px}.analysisTradeLayout .chartBoxWide{height:560px!important}.tradeSidePanel{height:620px!important;min-height:620px!important;gap:12px}.exchangeInfoCard,.orderPanel{padding:12px}.exchangeInfoCard h3,.orderPanel h3{font-size:16px!important}.feeGrid div{font-size:12px}.bookTable tbody{max-height:235px}.bookTable td,.bookTable th{font-size:12px!important;line-height:1.15}.bookTable tbody::-webkit-scrollbar{width:7px}.bookTable tbody{scrollbar-width:thin;scrollbar-color:#837dda rgba(255,255,255,.04)}
input[type=number], input[type=text], select{-webkit-appearance:none!important;appearance:none!important}input:focus{outline:none!important;box-shadow:none!important;border-color:#2a5c89!important}.arbFull:focus-within,.pmLine:focus-within{border-color:rgba(120,180,255,.55)!important;box-shadow:0 0 0 1px rgba(40,140,255,.12)!important}.liqStatus.ok{color:#31f08d!important;font-size:19px!important;font-weight:900}.liqStatus.bad{color:#ff5f78!important;font-size:19px!important;font-weight:900}.liqStatus.info{color:#42baff!important;font-weight:900}
.exchangeCards{position:relative!important}.swapRouteBtn{left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important}.feeGrid div{border-bottom:1px dashed rgba(120,110,210,.24)!important}.exchangeInfoCard{border-width:1px!important}.longCard{box-shadow:inset 0 0 0 1px rgba(0,255,156,.14)!important}.shortCard{box-shadow:inset 0 0 0 1px rgba(255,82,112,.14)!important}.historicalAction{margin-top:12px}.historyModalBox{height:88vh;overflow:auto}.historyModalBox::-webkit-scrollbar{width:8px}.historyModalBox::-webkit-scrollbar-thumb{background:#7f79d8;border-radius:8px}.modalChartBox h3{margin:0 0 8px}.historyChartPlaceholder{height:360px!important;display:block!important;padding:0!important}.fundingWide{height:300px!important}
@media(max-width:1300px){.analysisHeader{grid-template-columns:1fr}.topAnalysisGrid.compactTop,.analysisTradeLayout{grid-template-columns:1fr!important}.tradeSidePanel{height:auto!important;min-height:0!important}.analysisTradeLayout .spreadPanel{min-height:480px}.analysisTradeLayout .chartBoxWide{height:420px!important}}

/* spot transfer MVP */
.stPanel{margin-bottom:14px}.stGrid{display:grid;grid-template-columns:1.1fr 1fr 52px 1fr repeat(4,minmax(150px,1fr));gap:10px;align-items:end}.stGrid label{display:flex;flex-direction:column;gap:6px}.stGrid label span{color:#a7d5ff;font-size:13px}.stSwap{height:42px;padding:0;font-size:23px}.stMessage{margin-top:10px;padding:9px 12px;border-radius:9px;background:rgba(70,120,170,.12);color:#a7d5ff}.stMessage.ok{color:#31f08d}.stMessage.bad{color:#ff6680}.stQuoteHead{display:flex;justify-content:space-between;align-items:center}.stQuoteHead h3{margin:0}.stMetrics{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px;margin-top:14px}.stMetrics div{border:1px dashed rgba(120,110,210,.38);border-radius:10px;padding:12px;background:rgba(9,6,34,.45);display:flex;flex-direction:column;gap:7px}.stMetrics span{color:#b8b4d9;font-size:12px}.stMetrics b{font-size:16px}.profit{color:#31f08d!important}.loss{color:#ff6680!important}.stWarning{border-color:#9b7d28!important;color:#ffe8a3}.sideBtn[data-view=spotTransfer]{line-height:1.1}.miniBtn:disabled,.primary:disabled{opacity:.42;cursor:not-allowed}@media(max-width:1500px){.stGrid{grid-template-columns:repeat(4,1fr)}.stSwap{display:none}.stMetrics{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.stGrid,.stMetrics{grid-template-columns:1fr}.actions{align-items:stretch}.actions button{width:100%}.signalsTable{min-width:850px}}
.stScannerPanel{margin-bottom:14px}.stExchangeChecks{display:flex;gap:10px;flex-wrap:wrap;padding-top:7px}.stExchangeChecks label{display:flex;gap:5px;align-items:center;font-size:13px}.stExchangeChecks input{width:auto}.stSignalProfit{font-weight:800}.stSignalProfit.positive{color:#31c48d}.stSignalProfit.negative{color:#ef6b73}

.stScannerStatus{font-size:14px;color:#8ecbff;max-width:900px;line-height:1.35}.stScannerStatus.ok{color:#61d98d}.stScannerStatus.bad{color:#ff7b7b}

/* Compact spot arbitrage scanner */
.spotScannerView>h2{margin:0 0 22px;font-size:30px}.spotFilterPanel{padding:28px 32px}.spotFilterPanel h3{font-size:24px;margin:0 0 24px}.spotExchangeGroup{display:flex;flex-wrap:wrap;align-items:center;gap:18px 24px;margin:0 0 24px}.spotGroupTitle{width:100%;font-size:18px}.spotCheck{display:inline-flex;align-items:center;gap:8px;font-size:16px;cursor:pointer}.spotCheck input{width:20px;height:20px;accent-color:#2878ef}.spotParamsTitle{margin-top:38px!important}.spotParamsGrid{display:grid;grid-template-columns:repeat(4,minmax(190px,1fr));gap:14px 20px}.spotParamsGrid label{display:flex;flex-direction:column;gap:6px}.spotParamsGrid label>span:first-child{font-size:14px;font-weight:700}.spotParamsGrid input,.spotParamsGrid select{width:100%;height:auto;min-height:0;border:1px solid #1d4163;border-radius:10px;background:#071321;color:#fff;padding:9px 12px;font-size:15px}.spotParamsGrid select{appearance:none;background-image:none}.spotToggle{height:auto;min-height:0;border:1px solid #1d4163;border-radius:10px;display:flex;align-items:center;gap:10px;padding:9px 12px;font-size:15px}.spotToggle input{width:18px;height:18px}.spotApplyRow{display:flex;align-items:center;gap:24px;margin-top:28px}.spotApplyRow button{min-width:150px}.spotLiveStatus{font-weight:700}.spotLiveStatus.ok{color:#15e7a0}.spotLiveStatus.bad{color:#ff6b6b}.spotSignalsWrap{margin-top:20px}.spotScannerView .signalsTable small{color:#91a8bd}.spotScannerView .stMessage:empty{display:none}
.spotScannerView .tableWrap{
  padding:18px 22px 14px;
}
.spotScannerView .tableWrap > h3{
  margin:0 0 14px;
  padding-left:8px;
  font-size:22px;
}
@media(max-width:1000px){.spotParamsGrid{grid-template-columns:repeat(2,minmax(180px,1fr))}}@media(max-width:650px){.spotFilterPanel{padding:20px 14px}.spotParamsGrid{grid-template-columns:1fr}.spotExchangeGroup{gap:14px}.spotApplyRow{align-items:flex-start;flex-direction:column}.spotScannerView .tableWrap{overflow-x:auto}}

.spotCapFilterRow{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin:0 0 18px}
.spotCapFilterLabel{font-weight:700;color:#9bd2ff}
.spotCapFilter{display:inline-flex;align-items:center;gap:6px;font-size:14px;cursor:pointer}
.spotExchangeGroupsWrap{display:flex;flex-direction:column;gap:22px}
.spotCapSection{border:1px solid #1d4163;border-radius:12px;padding:16px 18px;background:rgba(7,19,33,.45)}
.spotCapSection.hiddenByFilter{display:none}
.spotCapSectionHead{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 12px}
.spotCapHint{font-size:13px;color:#8aa8c0;max-width:720px;line-height:1.35}
.spotCapBadge,.spotExBadge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:700;white-space:nowrap}
.spotCapBadge.full,.spotExBadge.full{background:rgba(22,168,121,.18);color:#31f08d;border:1px solid rgba(49,240,141,.35)}
.spotCapBadge.monitor,.spotExBadge.monitor{background:rgba(32,148,255,.12);color:#8ecbff;border:1px solid rgba(32,148,255,.35)}
.spotCapBadge.disabled,.spotDisabledEx .spotCapBadge{background:rgba(120,80,80,.2);color:#ffb4b4;border:1px solid rgba(255,120,120,.35)}
.spotExList{display:flex;flex-wrap:wrap;align-items:center;gap:18px 24px;width:100%}
.spotDisabledEx{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 0;color:#c8d8ea}
.spotDisabledEx small{color:#8aa8c0;width:100%}
.spotPrefilterWrap{margin-top:18px}
.spotPrefilterNote{margin:-6px 0 12px;color:#8aa8c0;font-size:13px}
.spotPrefilterTable tbody tr{background:rgba(32,148,255,.04)}
.spotPrefilterStatus{display:inline-block;padding:3px 8px;border-radius:6px;background:rgba(32,148,255,.15);color:#8ecbff;font-size:12px;font-weight:700}
.spotConfirmedTable tbody tr{background:rgba(22,168,121,.03)}
.spotOppCard{
  border:1px solid rgba(36,152,255,.45);
  border-radius:12px;
  background:rgba(6,18,32,.92);
  padding:16px 18px 14px;
  margin-bottom:0;
}
.spotOppCard>h3{margin:0 0 12px;font-size:18px;color:#fff;font-weight:700}
.spotTradesWrap{margin-top:20px}
.spotOppTableScroll{width:100%;overflow-x:hidden}
.spotOpportunitiesTable{
  width:100%;
  min-width:0;
  table-layout:fixed;
  border-collapse:collapse;
  font-size:12px;
}
.spotOpportunitiesTable col.col-asset{width:10.6%}
.spotOpportunitiesTable col.col-ex{width:8.7%}
.spotOpportunitiesTable col.col-vol{width:7.9%}
.spotOpportunitiesTable col.col-spread{width:7.2%}
.spotOpportunitiesTable col.col-price{width:12.8%}
.spotOpportunitiesTable col.col-range{width:14%}
.spotOpportunitiesTable col.col-orders{width:4.9%}
.spotOpportunitiesTable col.col-spotfee{width:9.8%}
.spotOpportunitiesTable col.col-netfee{width:10.2%}
.spotOpportunitiesTable col.col-net{width:7.2%}
.spotOpportunitiesTable col.col-act{width:6.8%}
.spotOpportunitiesTable thead th{
  position:sticky;top:0;z-index:2;
  background:#081525;
  color:#8ecbff;
  font-weight:600;
  font-size:11px;
  text-align:left;
  padding:8px 6px;
  border-bottom:1px solid rgba(36,152,255,.25);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.spotOpportunitiesTable tbody td{
  padding:8px 6px;
  vertical-align:top;
  border-bottom:1px solid rgba(36,152,255,.12);
  line-height:1.3;
  color:#e8f2ff;
  overflow:hidden;
}
.spotOpportunitiesTable tbody tr:last-child td{border-bottom:none}
.spotOpportunitiesTable tbody tr.spotOppSubRow td{background:rgba(4,14,26,.35)}
.spotOppStack{display:flex;flex-direction:column;gap:2px}
.spotOppMuted{color:#8aa8c0;font-size:11px;line-height:1.3}
.spotOppAssetInner{display:flex;align-items:flex-start;gap:6px}
.spotOppExpand,.spotOppExpandPlaceholder{
  flex:0 0 14px;width:14px;height:14px;margin-top:3px;
  background:none;border:none;color:#8aa8c0;cursor:pointer;
  font-size:12px;line-height:14px;padding:0;text-align:center;
}
.spotOppExpandPlaceholder{display:inline-block;cursor:default}
.spotOppExpand.open{color:#2498ff}
.spotOppCoinIcon{
  flex:0 0 18px;width:18px;height:18px;margin-top:2px;border-radius:50%;
  background:linear-gradient(135deg,#ffd54f,#ffb300);
  box-shadow:0 0 0 1px rgba(255,200,0,.35);
}
.spotOppAssetText{min-width:0}
.spotOppAssetBtn{
  background:none;border:none;color:#fff;font-weight:700;font-size:14px;
  cursor:pointer;padding:0;text-align:left;line-height:1.2;
}
.spotOppAssetBtn:hover{color:#2498ff}
.spotOppAssetSub{position:relative;padding-left:18px!important}
.spotOppGroupLine{
  position:absolute;left:22px;top:-7px;bottom:7px;width:1px;
  background:rgba(138,168,192,.45);
}
.spotOppSubRow:first-of-type .spotOppGroupLine{top:0}
.spotOppExchanges .spotOppArrow{color:#2498ff;font-size:11px;line-height:1;text-align:left}
.spotExLink{color:#2498ff;text-decoration:none;font-weight:600}
.spotExLink:hover{text-decoration:underline}
.spread-cell{display:flex;flex-direction:column;gap:2px;line-height:1.35}
.spread-percent{color:#31f08d;font-weight:600;font-size:13px}
.spread-profit{color:#7ddf9a;font-size:11px}
.spotOppPrice,.spotOppRange,.spotOppOrders{font-variant-numeric:tabular-nums;font-size:11px;white-space:nowrap}
.spotOppActions{display:flex;flex-direction:row;align-items:center;gap:4px;justify-content:flex-start}
.spotOppIconBtn{
  width:28px;height:28px;padding:0;
  border:1px solid rgba(36,152,255,.45);
  border-radius:8px;
  background:rgba(8,28,48,.85);
  color:#cfe8ff;
  font-size:16px;line-height:1;
  cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
}
.spotOppIconBtn:hover:not(:disabled){background:rgba(36,152,255,.18);border-color:#2498ff}
.spotOppIconBtn:disabled,.spotOppIconBtn.disabled{opacity:.4;cursor:not-allowed}
.spotOppIconBtn.loading{opacity:.55;cursor:wait}
.spotOppSummary{margin:8px 0 0;color:#8aa8c0;font-size:11px}
@media (max-width:900px){
  .spotOppTableScroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .spotOpportunitiesTable{min-width:960px;font-size:11px}
  .spotOppIconBtn{width:28px;height:28px}
}

/* Spot scanner dropdown arrows, menus, blacklists */
.spotSelectLabel{position:relative}
.spotSelectWrap{position:relative;display:block;width:100%;height:auto}
.spotSelectLabel select{
  position:absolute!important;opacity:0!important;pointer-events:none!important;
  width:1px!important;height:1px!important;left:0;top:0;margin:0;padding:0;border:0;
  background-image:none!important;
}
.spotSelectBtn{
  position:relative;display:flex;align-items:center;justify-content:flex-start;
  width:100%;height:auto;border:1px solid #1d4163;border-radius:10px;background:#071321;color:#fff;
  padding:9px 40px 9px 12px;font-size:15px;text-align:left;cursor:pointer;line-height:1.2;
  appearance:none;-webkit-appearance:none;
}
.spotSelectBtn::after{
  content:"";
  position:absolute;right:14px;top:50%;
  width:0;height:0;margin:0;
  border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid #2498ff;
  transform:translateY(-50%);
  pointer-events:none;
}
.spotSelectLabel.open .spotSelectBtn::after{transform:translateY(-50%) rotate(180deg)}
.spotSelectArrow{display:none!important}
.spotSelectMenu{
  position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;
  margin:0;padding:4px;list-style:none;
  border:1px solid #3d5f86;border-radius:10px;background:#0d1c2d;
  box-shadow:0 12px 28px rgba(0,0,0,.35);max-height:240px;overflow:auto;
  scrollbar-width:thin;
  scrollbar-color:#6bb8ff rgba(255,255,255,.04);
}
.spotSelectMenu::-webkit-scrollbar{width:10px}
.spotSelectMenu::-webkit-scrollbar-track{
  background:rgba(255,255,255,.04);
  border-radius:999px;
}
.spotSelectMenu::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#7ec8ff 0%,#5eb4ff 55%,#4aa6f5 100%);
  border-radius:999px;
  border:2px solid transparent;
  background-clip:padding-box;
}
.spotSelectMenu::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#93d2ff 0%,#6bb8ff 55%,#5eb4ff 100%);border-radius:999px;border:2px solid transparent;background-clip:padding-box}
.spotSelectMenu.hidden{display:none!important}
.spotSelectMenu li{
  padding:9px 12px;border-radius:8px;font-size:15px;color:#e8f4ff;cursor:pointer;
}
.spotSelectMenu li:hover{background:#2094ff;color:#fff}
.spotSelectMenu li.active{background:#1a74d6;color:#fff}
.spotBlacklistGrid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:16px}
.spotBlacklistGrid label.wide{display:flex;flex-direction:column;gap:6px}
.spotBlacklistGrid label.wide>span{font-size:14px;font-weight:700;color:#9bd2ff}
.spotParamsGrid label>span i,
.spotBlacklistGrid label.wide>span i{
  display:inline-flex;align-items:center;justify-content:center;width:12px;height:12px;margin-left:3px;
  border-radius:50%;border:1px solid #5f8ab3;font-style:normal;font-size:8px;line-height:1;color:#8ecbff;cursor:help;
}
.spotBlacklistGrid input{
  width:100%;height:auto;border:1px solid #1d4163;border-radius:10px;background:#071321;color:#fff;
  padding:9px 12px;font-size:15px;
}
.spotBlacklistGrid input::placeholder{color:#7f94a8}
.spotApplyFeedback{min-width:120px;font-weight:800;color:#24e6a0;opacity:0;transform:translateY(2px);transition:opacity .18s ease,transform .18s ease}
.spotApplyFeedback.show{opacity:1;transform:translateY(0)}
.spotApplyFeedback.bad{color:#ff6b78}
#stApply.applied{background:#16a879}
#stApply:disabled{opacity:.85;cursor:wait}
#stApply.hasChanges:not(:disabled){box-shadow:0 0 0 2px rgba(32,148,255,.45)}
#stApply.primary:not(:disabled){background:var(--blue);color:#fff;opacity:1;cursor:pointer;filter:none}
.spotSessionStatus{margin:12px 0 8px;padding:12px 14px;border-radius:10px;border:1px solid #1d4163;background:rgba(7,19,33,.65)}
.spotSessionStatus.running{border-color:#1a7a4c;background:rgba(16,80,50,.25)}
.spotSessionStatus.stopped{border-color:#5a2a35;background:rgba(60,20,30,.25)}
.spotSessionMain{font-weight:800;font-size:15px;margin-bottom:4px}
.spotSessionMeta{font-size:13px;color:#9bd2ff}
#stStop{margin-left:8px}
.spotUnsavedHint{font-size:13px;font-weight:700;color:#ffd666;opacity:0;transition:opacity .15s ease}
.spotUnsavedHint.show{opacity:1}
.stFieldError{display:block;margin-top:4px;color:#ff6b78;font-size:12px;font-weight:700}
.spotParamsGrid label.invalid input,.spotParamsGrid label.invalid .spotSelectBtn,.spotBlacklistGrid label.invalid input{border-color:#ff6b78!important}
@media(max-width:650px){.spotApplyFeedback{min-width:0}.spotSelectBtn::after{right:14px}}

/* Futures scanner + Funding history exchanges — plain checkboxes */
#scannerView .exchangeBox,
#fundingHistoryView .exchangeBox{
  margin-top:16px;border:0;border-radius:0;padding:0;background:transparent;
}
#scannerView .checkAll,
#scannerView .exchangeItem,
#fundingHistoryView .checkAll,
#fundingHistoryView .exchangeItem{
  display:inline-flex;align-items:center;gap:8px;
  margin:0;padding:0;border:0;border-radius:0;
  background:transparent!important;box-shadow:none;
  font-size:16px;font-weight:400;color:var(--text);cursor:pointer;
}
#scannerView .checkAll,
#fundingHistoryView .checkAll{margin-bottom:14px}
#scannerView .exchangeGrid,
#fundingHistoryView .exchangeGrid{display:flex;flex-wrap:wrap;gap:14px 24px}
#scannerView .exchangeItem:hover,
#scannerView .checkAll:hover,
#fundingHistoryView .exchangeItem:hover,
#fundingHistoryView .checkAll:hover{background:transparent!important;color:var(--text)}
#scannerView .exchangeItem input,
#scannerView .checkAll input,
#fundingHistoryView .exchangeItem input,
#fundingHistoryView .checkAll input{
  width:20px;height:20px;margin:0;accent-color:#2878ef;cursor:pointer;
}
/* Futures filter selects — same custom dropdown as spot */
#scannerView .spotSelectLabel,
#fundingHistoryView .spotSelectLabel{display:flex;flex-direction:column;gap:6px}
#scannerView .filterGrid .spotSelectLabel>span:first-child,
#fundingHistoryView .filterGrid .spotSelectLabel>span:first-child{display:block;margin-bottom:0}
#scannerView .filterGrid .spotSelectWrap,
#fundingHistoryView .filterGrid .spotSelectWrap{width:100%}

.alertHoverControls{
  position:fixed;
  z-index:40;
  pointer-events:auto;
  display:flex;
  gap:6px;
  align-items:center;
  padding:4px 6px;
  border-radius:8px;
  background:rgba(12,16,28,.92);
  border:1px solid rgba(255,255,255,.18);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
}
.alertHoverControls.hidden{display:none}
.alertHoverEdit,
.alertHoverToggle,
.alertHoverDelete{
  height:24px;padding:0 8px;border-radius:6px;
  border:1px solid rgba(255,255,255,.25);background:#2a3348;color:#fff;
  font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center;
  cursor:pointer;
}
.alertHoverDelete{background:#ff4d6d;border-color:rgba(255,255,255,.45)}
.alertHoverDelete:hover{background:#ff2d4d}
.alertHoverEdit:hover,.alertHoverToggle:hover{background:#3a4660}

.alertLineMarker{
  position:fixed;
  z-index:35;
  display:flex;
  align-items:center;
  gap:6px;
  padding:2px 6px 2px 8px;
  border-radius:999px;
  background:rgba(20,16,40,.92);
  border:1px solid rgba(167,139,250,.55);
  color:#efe9ff;
  font-size:12px;
  font-weight:700;
  pointer-events:auto;
  box-shadow:0 4px 14px rgba(0,0,0,.35);
  white-space:nowrap;
}
.alertLineMarker.hidden{display:none}
.alertLineMarkerLabel{letter-spacing:.01em}
.alertLineMarkerX{
  width:18px;height:18px;border-radius:50%;
  border:1px solid rgba(255,255,255,.55);background:#ff4d6d;color:#fff;
  font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;
  cursor:pointer;padding:0;
}
.alertLineMarkerX:hover{background:#ff2d4d}

.spreadChartHead{display:flex;align-items:center;gap:10px;margin-bottom:4px}
.spreadChartHead h3{margin:0}
.chartAlertHeadBtn{margin-left:auto;min-height:40px;padding:8px 14px;font-size:13px}
.chartAlertList{display:flex;flex-direction:column;gap:8px;margin:0 0 10px}
.chartAlertList[hidden]{display:none}
.chartAlertChip{
  display:flex;align-items:center;gap:10px;
  min-height:44px;padding:8px 10px 8px 12px;
  border-radius:12px;background:rgba(167,139,250,.12);
  border:1px solid rgba(167,139,250,.4);color:#efe9ff;
}
.chartAlertChip.done{opacity:.78;border-color:rgba(52,211,153,.4);background:rgba(16,185,129,.1)}
.chartAlertChipLabel{font-weight:800;letter-spacing:.01em}
.chartAlertChipStatus{margin-left:auto;font-size:12px;font-weight:700;color:#a7f3d0}
.chartAlertChip.done .chartAlertChipStatus{color:#86efac}
.chartAlertChipX{
  width:36px;height:36px;min-width:36px;border-radius:10px;padding:0;
  border:1px solid rgba(255,255,255,.35);background:#ff4d6d;color:#fff;
  font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;
  cursor:pointer;
}
.chartAlertChipX:hover{background:#ff2d4d}

.spreadAlertSheet{
  position:fixed;inset:0;z-index:320;
  display:flex;align-items:flex-end;justify-content:center;
}
.spreadAlertSheet.hidden{display:none}
.spreadAlertSheetBackdrop{
  position:absolute;inset:0;border:0;padding:0;margin:0;
  background:rgba(4,8,16,.62);cursor:pointer;
}
.spreadAlertSheetPanel{
  position:relative;z-index:1;width:min(520px,100%);
  border-radius:18px 18px 0 0;
  background:var(--panel,#121a2b);
  border:1px solid var(--line,rgba(255,255,255,.12));
  border-bottom:0;
  padding:18px 16px calc(18px + env(safe-area-inset-bottom,0px));
  box-shadow:0 -12px 40px rgba(0,0,0,.45);
}
.spreadAlertSheetPanel h3{margin:0 0 12px;font-size:20px}
.spreadAlertMeta{margin:0 0 8px;color:#9fb0c8;font-size:14px}
.spreadAlertMeta b{color:#fff;font-weight:800}
.spreadAlertField{display:flex;flex-direction:column;gap:8px;margin:14px 0 16px;font-weight:700}
.spreadAlertInputWrap{
  display:flex;align-items:center;gap:8px;
  min-height:48px;padding:0 12px;border-radius:12px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);
}
.spreadAlertInputWrap input{
  flex:1;min-width:0;height:46px;border:0;background:transparent;
  color:#fff;font-size:22px;font-weight:800;outline:none;
}
.spreadAlertInputWrap span{font-weight:800;color:#c4b5fd}
.spreadAlertActions{display:flex;flex-direction:column;gap:8px}
.spreadAlertActions .primary,
.spreadAlertActions .secondary{
  min-height:48px;width:100%;border-radius:12px;font-weight:800;cursor:pointer;
}
.spreadAlertActions .secondary{background:transparent;border:1px solid rgba(255,255,255,.22);color:#fff}
.chartTfBadge{
  display:inline-flex;align-items:center;justify-content:center;
  padding:3px 9px;border-radius:999px;font-size:12px;font-weight:800;
  background:#2094ff;color:#fff;letter-spacing:.02em;
}
.chartSub{margin:0 0 10px;color:var(--muted);font-size:13px}
#spreadChart.chartBoxWide{min-height:520px}

/* Sidebar 132px — equal buttons, 14px text, 2-line clamp, blue border */
.side{
  width:132px;
  padding:10px 7px;
  gap:18px;
  align-items:stretch;
}
.logo{
  width:48px;
  height:48px;
  margin:0 auto 28px;
  font-size:18px;
  flex-shrink:0;
  color:#fff;
}
.sideBtn{
  width:100%;
  min-height:72px;
  padding:8px 7px;
  font-size:14px;
  font-weight:700;
  line-height:1.15;
  text-align:center;
  white-space:normal;
  overflow-wrap:anywhere;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  border:1px solid #2094ff;
  border-radius:10px;
  background:#0b1c2f;
  color:#bde2ff;
  cursor:pointer;
  box-sizing:border-box;
}
.sideIcon{
  width:20px;
  height:20px;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.sideBtn span{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  line-clamp:2;
  overflow:hidden;
  max-width:100%;
  text-align:center;
}
.sideBtn:hover{
  background:#123a62;
  color:#fff;
  border-color:#2094ff;
}
.sideBtn.active,
.sideBtn.active:hover{
  background:#2094ff;
  border-color:#2094ff;
  color:#fff;
}
.app{margin-left:132px}
.topbar{margin-bottom:8px}
.view h2{
  margin:28px 0 16px;
}
@media(max-width:1100px){
  .side{width:120px}
  .app{margin-left:120px}
  .sideBtn{min-height:68px;font-size:13px;padding:7px 5px}
  .logo{margin-bottom:22px}
  .view h2{margin-top:22px}
}

/* Theme toggle (competitor-style pill) */
.themeToggle{
  border:0;
  padding:0;
  background:transparent;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  flex-shrink:0;
}
.themeToggleTrack{
  width:56px;
  height:30px;
  border-radius:999px;
  background:#2a3441;
  border:1px solid #3d4a5c;
  display:flex;
  align-items:center;
  padding:3px;
  transition:background .2s ease,border-color .2s ease;
}
.themeToggleThumb{
  width:24px;
  height:24px;
  border-radius:50%;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  transform:translateX(0);
  transition:transform .2s ease;
  box-shadow:0 1px 4px rgba(0,0,0,.28);
}
.themeIcon{
  width:14px;
  height:14px;
  fill:none;
  stroke:#1a2330;
  stroke-width:2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.themeIconMoon{display:block;fill:#1a2330;stroke:none}
.themeIconSun{display:none}
html.theme-light .themeToggleTrack,
body.theme-light .themeToggleTrack{
  background:#2094ff;
  border-color:#1a7ad6;
}
html.theme-light .themeToggleThumb,
body.theme-light .themeToggleThumb{
  transform:translateX(26px);
}
html.theme-light .themeIconMoon,
body.theme-light .themeIconMoon{display:none}
html.theme-light .themeIconSun,
body.theme-light .themeIconSun{display:block;stroke:#1a7ad6}
.topRight #lang{width:72px;min-width:72px}

/* Light theme */
html.theme-light,
html.theme-light body,
body.theme-light{
  --bg:#f5f7fb;
  --panel:#ffffff;
  --line:#d5dee8;
  --text:#0f172a;
  --muted:#5b6b7c;
  --blue:#2094ff;
  --blue2:#e8f3ff;
  --green:#059669;
  --red:#dc2626;
  --yellow:#b45309;
  background:var(--bg);
  color:var(--text);
}
html.theme-light .side,
body.theme-light .side{
  background:#fff;
  border-right-color:#d5dee8;
}
html.theme-light .sideBtn,
body.theme-light .sideBtn{
  background:#f4f7fb;
  border-color:#c9d6e5;
  color:#334155;
}
html.theme-light .sideBtn .sideIcon,
body.theme-light .sideBtn .sideIcon{
  stroke:#475569;
}
html.theme-light .sideBtn:hover,
body.theme-light .sideBtn:hover{
  background:#e8f3ff;
  color:#0f172a;
  border-color:#2094ff;
}
html.theme-light .sideBtn:hover .sideIcon,
body.theme-light .sideBtn:hover .sideIcon{
  stroke:#2094ff;
}
html.theme-light .sideBtn.active,
html.theme-light .sideBtn.active:hover,
body.theme-light .sideBtn.active,
body.theme-light .sideBtn.active:hover{
  background:#2094ff;
  border-color:#2094ff;
  color:#fff;
}
html.theme-light .sideBtn.active .sideIcon,
body.theme-light .sideBtn.active .sideIcon{
  stroke:#fff;
}
html.theme-light .topbar p,
body.theme-light .topbar p{color:#64748b}
html.theme-light select,
html.theme-light input,
html.theme-light textarea,
body.theme-light select,
body.theme-light input,
body.theme-light textarea{
  background:#fff;
  color:#0f172a;
  border-color:#c9d6e5;
}
html.theme-light .status,
body.theme-light .status{
  background:#eef2f7;
  color:#dc2626;
}
html.theme-light .status.online,
body.theme-light .status.online{color:#059669}
html.theme-light .panel,
body.theme-light .panel{
  background:#fff;
  border-color:#d5dee8;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
html.theme-light label span,
html.theme-light .calcGrid span,
html.theme-light .stGrid label span,
html.theme-light .spotParamsGrid label>span:first-child,
html.theme-light .spotBlacklistGrid label.wide>span,
html.theme-light .spotGroupTitle,
body.theme-light label span,
body.theme-light .calcGrid span,
body.theme-light .stGrid label span,
body.theme-light .spotParamsGrid label>span:first-child,
body.theme-light .spotBlacklistGrid label.wide>span,
body.theme-light .spotGroupTitle{
  color:#64748b;
}
html.theme-light .chartSub,
body.theme-light .chartSub{color:#64748b}
html.theme-light .exchangeBox,
body.theme-light .exchangeBox{border-color:#d5dee8}
html.theme-light .exchangeItem,
body.theme-light .exchangeItem{
  background:#f4f7fb;
  border-color:#c9d6e5;
  color:#334155;
}
html.theme-light .exchangeItem:hover,
body.theme-light .exchangeItem:hover{
  background:#e8f3ff;
}
html.theme-light .secondary,
body.theme-light .secondary{background:#3b82f6}
html.theme-light .liveText,
body.theme-light .liveText{color:#059669}
html.theme-light .tableWrap,
body.theme-light .tableWrap{
  background:#fff;
  border-color:#d5dee8;
}
html.theme-light .signalsTable th,
body.theme-light .signalsTable th{
  color:#64748b;
  background:#f1f5f9;
  border-bottom-color:#d5dee8;
}
html.theme-light .signalsTable td,
body.theme-light .signalsTable td{
  border-bottom-color:#e8eef5;
}
html.theme-light .coinBtn,
body.theme-light .coinBtn{color:#0369a1}
html.theme-light .leg.short,
body.theme-light .leg.short{color:#334155}
html.theme-light .meta,
body.theme-light .meta{color:#64748b}
html.theme-light .miniBtn,
body.theme-light .miniBtn{
  background:#e8f3ff;
  border-color:#93c5fd;
  color:#1e40af;
}
html.theme-light .miniBtn:hover,
body.theme-light .miniBtn:hover{
  background:#2094ff;
  color:#fff;
}
html.theme-light .subRow,
body.theme-light .subRow{background:#f8fafc}
html.theme-light .subRoute,
body.theme-light .subRoute{color:#334155}
html.theme-light .empty,
html.theme-light .sub,
body.theme-light .empty,
body.theme-light .sub{color:#64748b}
html.theme-light .infoGrid div,
html.theme-light .calcGrid div,
html.theme-light .pnlMiniRows .pnlRow,
body.theme-light .infoGrid div,
body.theme-light .calcGrid div,
body.theme-light .pnlMiniRows .pnlRow{
  background:#f8fafc;
  border-color:#d5dee8;
}
html.theme-light .infoGrid span,
html.theme-light .calcGrid span,
html.theme-light .feeGrid span,
body.theme-light .infoGrid span,
body.theme-light .calcGrid span,
body.theme-light .feeGrid span{color:#64748b}
html.theme-light .bookTable th,
html.theme-light .bookTable td,
html.theme-light .pnlRow,
body.theme-light .bookTable th,
body.theme-light .bookTable td,
body.theme-light .pnlRow{border-bottom-color:#e2e8f0}
html.theme-light .bookTable td:nth-child(3),
body.theme-light .bookTable td:nth-child(3){color:#334155!important}
html.theme-light .toast,
body.theme-light .toast{
  background:#fff;
  color:#0f172a;
  border-color:#93c5fd;
  box-shadow:0 8px 24px rgba(15,23,42,.12);
}
html.theme-light .modal,
body.theme-light .modal{background:rgba(15,23,42,.45)}
html.theme-light .modalBox,
body.theme-light .modalBox{
  background:#fff;
  border-color:#d5dee8;
  box-shadow:0 18px 50px rgba(15,23,42,.18);
}
html.theme-light .modalClose,
body.theme-light .modalClose{color:#64748b}
html.theme-light .modalClose:hover,
body.theme-light .modalClose:hover{color:#0f172a}
html.theme-light .exLink,
html.theme-light .analysisRoute a,
body.theme-light .exLink,
body.theme-light .analysisRoute a{color:#0369a1}
html.theme-light .exLink:hover,
html.theme-light .analysisRoute a:hover,
body.theme-light .exLink:hover,
body.theme-light .analysisRoute a:hover{color:#0f172a}
html.theme-light .bookHint,
body.theme-light .bookHint{color:#64748b}
html.theme-light .copySym,
body.theme-light .copySym{
  border-color:#c9d6e5;
  background:#f4f7fb;
  color:#334155;
}
html.theme-light .copySym:hover,
body.theme-light .copySym:hover{
  background:#2094ff;
  color:#fff;
}
html.theme-light .exchangeInfoCard.longCard,
html.theme-light .exchangeInfoCard#longExCard,
html.theme-light .longOrderPanel,
html.theme-light .orderPanel:has(.longBook),
body.theme-light .exchangeInfoCard.longCard,
body.theme-light .exchangeInfoCard#longExCard,
body.theme-light .longOrderPanel,
body.theme-light .orderPanel:has(.longBook){
  border-color:#86efac;
  background:linear-gradient(180deg,rgba(16,185,129,.1),#fff);
}
html.theme-light .exchangeInfoCard.shortCard,
html.theme-light .exchangeInfoCard#shortExCard,
html.theme-light .shortOrderPanel,
html.theme-light .orderPanel:has(.shortBook),
body.theme-light .exchangeInfoCard.shortCard,
body.theme-light .exchangeInfoCard#shortExCard,
body.theme-light .shortOrderPanel,
body.theme-light .orderPanel:has(.shortBook){
  border-color:#fca5a5;
  background:linear-gradient(180deg,rgba(239,68,68,.08),#fff);
}
html.theme-light .stMessage,
body.theme-light .stMessage{
  background:rgba(32,148,255,.08);
  color:#475569;
}
html.theme-light .stMetrics div,
body.theme-light .stMetrics div{
  background:#f8fafc;
  border-color:#c9d6e5;
}
html.theme-light .stMetrics span,
body.theme-light .stMetrics span{color:#64748b}
html.theme-light .spotParamsGrid input,
html.theme-light .spotParamsGrid select,
html.theme-light .spotToggle,
html.theme-light .spotSelectBtn,
html.theme-light .spotBlacklistGrid input,
body.theme-light .spotParamsGrid input,
body.theme-light .spotParamsGrid select,
body.theme-light .spotToggle,
body.theme-light .spotSelectBtn,
body.theme-light .spotBlacklistGrid input{
  background:#fff;
  color:#0f172a;
  border-color:#c9d6e5;
}
html.theme-light .spotSelectMenu,
body.theme-light .spotSelectMenu{
  background:#fff;
  border-color:#c9d6e5;
  box-shadow:0 10px 28px rgba(15,23,42,.12);
}
html.theme-light .spotSelectMenu li,
body.theme-light .spotSelectMenu li{color:#0f172a}
html.theme-light .spotSelectMenu li:hover,
body.theme-light .spotSelectMenu li:hover{
  background:#2094ff!important;
  color:#fff!important;
}
html.theme-light .spotSelectMenu li.active,
html.theme-light .spotSelectMenu li.active:hover,
body.theme-light .spotSelectMenu li.active,
body.theme-light .spotSelectMenu li.active:hover{
  background:#1a74d6!important;
  color:#fff!important;
}
html.theme-light .spotBlacklistGrid input::placeholder,
body.theme-light .spotBlacklistGrid input::placeholder{color:#94a3b8}
html.theme-light .activeTradesHead,
html.theme-light .spotActiveTitle,
body.theme-light .activeTradesHead,
body.theme-light .spotActiveTitle{color:#0f172a}
html.theme-light .stScannerStatus,
html.theme-light .spotLiveStatus,
html.theme-light .spotScannerView .signalsTable small,
body.theme-light .stScannerStatus,
body.theme-light .spotLiveStatus,
body.theme-light .spotScannerView .signalsTable small{color:#64748b}
html.theme-light .stScannerStatus.ok,
html.theme-light .spotLiveStatus.ok,
html.theme-light .profit,
html.theme-light .stSignalProfit.positive,
body.theme-light .stScannerStatus.ok,
body.theme-light .spotLiveStatus.ok,
body.theme-light .profit,
body.theme-light .stSignalProfit.positive{color:#059669!important}
html.theme-light .stScannerStatus.bad,
html.theme-light .spotLiveStatus.bad,
html.theme-light .loss,
html.theme-light .stSignalProfit.negative,
body.theme-light .stScannerStatus.bad,
body.theme-light .spotLiveStatus.bad,
body.theme-light .loss,
body.theme-light .stSignalProfit.negative{color:#dc2626!important}
html.theme-light .green,
body.theme-light .green{color:#059669}
html.theme-light .red,
body.theme-light .red{color:#dc2626}

/* Spot signal action buttons: equal width + gap */
.spotActions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  min-width:168px;
}
.spotActions .miniBtn{
  width:100%;
  box-sizing:border-box;
  text-align:center;
  white-space:nowrap;
  margin:0;
}
.spotScannerView .signalsTable th:last-child,
.spotScannerView .signalsTable td:last-child{
  width:180px;
  min-width:180px;
}

/* Light theme — futures analysis (competitor-style white cards) */
html.theme-light .competitorCard,
html.theme-light .exchangeInfoCard,
html.theme-light .orderPanel,
html.theme-light .spreadPanel,
html.theme-light .positionPanel,
html.theme-light .arbPanel,
html.theme-light .panel,
body.theme-light .competitorCard,
body.theme-light .exchangeInfoCard,
body.theme-light .orderPanel,
body.theme-light .spreadPanel,
body.theme-light .positionPanel,
body.theme-light .arbPanel,
body.theme-light .panel{
  background:#fff!important;
  border:1px solid #d7e0ea!important;
  box-shadow:0 1px 2px rgba(15,23,42,.04)!important;
  color:#0f172a!important;
}
html.theme-light .positionPanel h3,
html.theme-light .arbPanel h3,
html.theme-light .spreadPanel h3,
html.theme-light .orderPanel h3,
html.theme-light .exchangeInfoCard h3,
body.theme-light .positionPanel h3,
body.theme-light .arbPanel h3,
body.theme-light .spreadPanel h3,
body.theme-light .orderPanel h3,
body.theme-light .exchangeInfoCard h3{
  color:#0f172a!important;
}
html.theme-light .exchangeInfoCard h3 .exTitleName a,
body.theme-light .exchangeInfoCard h3 .exTitleName a{
  color:#0f172a!important;
}
html.theme-light .exchangeInfoCard h3 .exTitleName a:hover,
body.theme-light .exchangeInfoCard h3 .exTitleName a:hover{
  color:#0369a1!important;
}
html.theme-light .pmLine,
html.theme-light .pmDuo,
html.theme-light .arbFull,
html.theme-light .arbDuo,
html.theme-light .pnlMiniRows .pnlRow,
html.theme-light .feeGrid div,
html.theme-light .infoGrid div,
html.theme-light .calcGrid div,
body.theme-light .pmLine,
body.theme-light .pmDuo,
body.theme-light .arbFull,
body.theme-light .arbDuo,
body.theme-light .pnlMiniRows .pnlRow,
body.theme-light .feeGrid div,
body.theme-light .infoGrid div,
body.theme-light .calcGrid div{
  background:#fff!important;
  border:1px solid #cfd9e6!important;
  color:#0f172a!important;
}
html.theme-light .pmLine span,
html.theme-light .pmDuo span,
html.theme-light .arbFull span,
html.theme-light .arbDuo span,
html.theme-light .feeGrid span,
body.theme-light .pmLine span,
body.theme-light .pmDuo span,
body.theme-light .arbFull span,
body.theme-light .arbDuo span,
body.theme-light .feeGrid span{
  color:#64748b!important;
}
html.theme-light .pmLine input,
html.theme-light .pmDuo input,
html.theme-light .arbFull input,
html.theme-light .compactTop input,
body.theme-light .pmLine input,
body.theme-light .pmDuo input,
body.theme-light .arbFull input,
body.theme-light .compactTop input{
  background:#fff!important;
  color:#0f172a!important;
  border-color:#cfd9e6!important;
}
html.theme-light .arbPanel .arbDuo.liqBox,
body.theme-light .arbPanel .arbDuo.liqBox{
  border-color:#86efac!important;
  background:linear-gradient(180deg,rgba(16,185,129,.08),#fff)!important;
}
html.theme-light .liqBox b.ok,
body.theme-light .liqBox b.ok{color:#059669!important}
html.theme-light .liqBox b.bad,
body.theme-light .liqBox b.bad{color:#dc2626!important}
html.theme-light .pmBtn,
html.theme-light .warning,
body.theme-light .pmBtn,
body.theme-light .warning{
  background:#fff!important;
  color:#0f172a!important;
  border:1px solid #cfd9e6!important;
}
html.theme-light .pmBtn:hover,
html.theme-light .warning:hover,
body.theme-light .pmBtn:hover,
body.theme-light .warning:hover{
  background:#f1f5f9!important;
  filter:none;
}
html.theme-light .exchangeInfoCard.longCard,
html.theme-light .exchangeInfoCard#longExCard,
html.theme-light .longCard,
html.theme-light .longOrderPanel,
html.theme-light .orderPanel:has(.longBook),
body.theme-light .exchangeInfoCard.longCard,
body.theme-light .exchangeInfoCard#longExCard,
body.theme-light .longCard,
body.theme-light .longOrderPanel,
body.theme-light .orderPanel:has(.longBook){
  background:#fff!important;
  border-color:#86efac!important;
  box-shadow:inset 0 0 0 1px rgba(16,185,129,.18)!important;
}
html.theme-light .exchangeInfoCard.shortCard,
html.theme-light .exchangeInfoCard#shortExCard,
html.theme-light .shortCard,
html.theme-light .shortOrderPanel,
html.theme-light .orderPanel:has(.shortBook),
body.theme-light .exchangeInfoCard.shortCard,
body.theme-light .exchangeInfoCard#shortExCard,
body.theme-light .shortCard,
body.theme-light .shortOrderPanel,
body.theme-light .orderPanel:has(.shortBook){
  background:#fff!important;
  border-color:#fca5a5!important;
  box-shadow:inset 0 0 0 1px rgba(239,68,68,.16)!important;
}
html.theme-light .tradeBadge.long,
body.theme-light .tradeBadge.long{
  background:#ecfdf5!important;
  color:#047857!important;
  border:1px solid #6ee7b7!important;
}
html.theme-light .tradeBadge.short,
body.theme-light .tradeBadge.short{
  background:#fef2f2!important;
  color:#b91c1c!important;
  border:1px solid #fca5a5!important;
}
html.theme-light .exDropBtn,
body.theme-light .exDropBtn{
  background:#f8fafc!important;
  border:1px solid #cfd9e6!important;
  color:#334155!important;
}
html.theme-light .exMenu,
body.theme-light .exMenu{
  background:#fff!important;
  border:1px solid #cfd9e6!important;
  box-shadow:0 12px 28px rgba(15,23,42,.12)!important;
}
html.theme-light .exMenu button,
body.theme-light .exMenu button{
  color:#0f172a!important;
}
html.theme-light .exMenu button:hover,
body.theme-light .exMenu button:hover{
  background:#e8f3ff!important;
  color:#0f172a!important;
}
html.theme-light .swapRouteBtn,
body.theme-light .swapRouteBtn{
  background:#fff!important;
  border:1px solid #cfd9e6!important;
  color:#334155!important;
  box-shadow:0 4px 14px rgba(15,23,42,.1)!important;
}
html.theme-light .swapRouteBtn:hover,
body.theme-light .swapRouteBtn:hover{
  background:#2094ff!important;
  border-color:#2094ff!important;
  color:#fff!important;
}
html.theme-light .feeGrid div,
body.theme-light .feeGrid div{
  border-bottom:1px dashed #d5dee8!important;
}
html.theme-light .bookTable th,
body.theme-light .bookTable th{
  color:#64748b!important;
}
html.theme-light .bookTable.longBook .longRow td,
html.theme-light .longHint,
body.theme-light .bookTable.longBook .longRow td,
body.theme-light .longHint{
  color:#059669!important;
}
html.theme-light .bookTable.shortBook .shortRow td,
html.theme-light .shortHint,
body.theme-light .bookTable.shortBook .shortRow td,
body.theme-light .shortHint{
  color:#dc2626!important;
}
html.theme-light .chartBoxWide,
html.theme-light .liqImpactCanvas,
body.theme-light .chartBoxWide,
body.theme-light .liqImpactCanvas{
  background:#fff!important;
  border-radius:10px;
}
html.theme-light .historicalBtn,
body.theme-light .historicalBtn{
  background:#fff!important;
  border:1px solid #cfd9e6!important;
  color:#0f172a!important;
}
html.theme-light .historicalBtn:hover,
body.theme-light .historicalBtn:hover{
  background:#f8fafc!important;
  filter:none;
}
html.theme-light .historyModalBox,
html.theme-light .modalChartBox,
body.theme-light .historyModalBox,
body.theme-light .modalChartBox{
  background:#fff!important;
  border:1px solid #d5dee8!important;
}
html.theme-light .historyChartPlaceholder,
body.theme-light .historyChartPlaceholder{
  background:#f8fafc!important;
  border-color:#cfd9e6!important;
  color:#64748b!important;
}
html.theme-light .analysisTitle h2,
html.theme-light .analysisHeader h2,
body.theme-light .analysisTitle h2,
body.theme-light .analysisHeader h2{
  color:#0f172a!important;
}
html.theme-light .copySym,
body.theme-light .copySym{
  background:#f1f5f9!important;
  border-color:#cfd9e6!important;
  color:#334155!important;
}

/* Light theme — softer gray text (not pure black) */
html.theme-light .pmLine span,
html.theme-light .pmDuo span,
html.theme-light .arbFull span,
html.theme-light .arbDuo span,
html.theme-light .feeGrid span,
html.theme-light .infoGrid span,
html.theme-light .pnlMiniRows .pnlRow span,
body.theme-light .pmLine span,
body.theme-light .pmDuo span,
body.theme-light .arbFull span,
body.theme-light .arbDuo span,
body.theme-light .feeGrid span,
body.theme-light .infoGrid span,
body.theme-light .pnlMiniRows .pnlRow span{
  color:#64748b!important;
  font-weight:600!important;
}
html.theme-light .pmLine input,
html.theme-light .arbFull input,
html.theme-light .pmDuo b,
html.theme-light .arbDuo b,
html.theme-light .feeGrid b,
html.theme-light .infoGrid b,
html.theme-light .pnlMiniRows .pnlRow b,
html.theme-light .feeGrid div,
html.theme-light .infoGrid div,
body.theme-light .pmLine input,
body.theme-light .arbFull input,
body.theme-light .pmDuo b,
body.theme-light .arbDuo b,
body.theme-light .feeGrid b,
body.theme-light .infoGrid b,
body.theme-light .pnlMiniRows .pnlRow b,
body.theme-light .feeGrid div,
body.theme-light .infoGrid div{
  color:#475569!important;
}
html.theme-light .arbDuo b,
html.theme-light .pmDuo b,
html.theme-light .feeGrid b,
body.theme-light .arbDuo b,
body.theme-light .pmDuo b,
body.theme-light .feeGrid b{
  font-weight:700!important;
}
html.theme-light .positionPanel h3,
html.theme-light .arbPanel h3,
html.theme-light .spreadPanel h3,
html.theme-light .orderPanel h3,
html.theme-light .exchangeInfoCard h3,
html.theme-light .analysisTitle h2,
html.theme-light .analysisHeader h2,
body.theme-light .positionPanel h3,
body.theme-light .arbPanel h3,
body.theme-light .spreadPanel h3,
body.theme-light .orderPanel h3,
body.theme-light .exchangeInfoCard h3,
body.theme-light .analysisTitle h2,
body.theme-light .analysisHeader h2{
  color:#334155!important;
}
html.theme-light .exchangeInfoCard h3 .exTitleName a,
body.theme-light .exchangeInfoCard h3 .exTitleName a{
  color:#475569!important;
}
html.theme-light .spreadPanel h3::after,
body.theme-light .spreadPanel h3::after{
  color:#94a3b8!important;
}
html.theme-light .analysisRoute,
html.theme-light .analysisTitle p,
body.theme-light .analysisRoute,
body.theme-light .analysisTitle p{
  color:#64748b!important;
}
html.theme-light .bookTable th,
body.theme-light .bookTable th{
  color:#64748b!important;
}
html.theme-light .bookTable td:nth-child(3),
body.theme-light .bookTable td:nth-child(3){
  color:#475569!important;
}
html.theme-light .exMenu button,
body.theme-light .exMenu button{
  color:#475569!important;
}

/* Soft rounded rows in exchange info cards */
html.theme-light .feeGrid div,
html.theme-light .infoGrid.feeGrid div,
body.theme-light .feeGrid div,
body.theme-light .infoGrid.feeGrid div{
  background:#f8fafc!important;
  border:1px solid #e2e8f0!important;
  border-radius:999px!important;
  border-bottom:1px solid #e2e8f0!important;
  padding:7px 12px!important;
  min-height:28px!important;
  margin:0!important;
}
html.theme-light .feeGrid,
html.theme-light .infoGrid.feeGrid,
body.theme-light .feeGrid,
body.theme-light .infoGrid.feeGrid{
  gap:6px!important;
}

/* Blue + white stripe scroll (exchange dropdown + order books + select menus) */
html.theme-light .exMenu,
html.theme-light .bookTable tbody,
html.theme-light .spotSelectMenu,
body.theme-light .exMenu,
body.theme-light .bookTable tbody,
body.theme-light .spotSelectMenu{
  scrollbar-width:thin;
  scrollbar-color:#3b82f6 #eef5ff;
}
html.theme-light .exMenu::-webkit-scrollbar,
html.theme-light .bookTable tbody::-webkit-scrollbar,
html.theme-light .spotSelectMenu::-webkit-scrollbar,
body.theme-light .exMenu::-webkit-scrollbar,
body.theme-light .bookTable tbody::-webkit-scrollbar,
body.theme-light .spotSelectMenu::-webkit-scrollbar{
  width:10px;
  height:10px;
}
html.theme-light .exMenu::-webkit-scrollbar-track,
html.theme-light .bookTable tbody::-webkit-scrollbar-track,
html.theme-light .spotSelectMenu::-webkit-scrollbar-track,
body.theme-light .exMenu::-webkit-scrollbar-track,
body.theme-light .bookTable tbody::-webkit-scrollbar-track,
body.theme-light .spotSelectMenu::-webkit-scrollbar-track{
  background:#eef5ff!important;
  border-radius:999px;
  border:1px solid #dbeafe;
}
html.theme-light .exMenu::-webkit-scrollbar-thumb,
html.theme-light .bookTable tbody::-webkit-scrollbar-thumb,
html.theme-light .spotSelectMenu::-webkit-scrollbar-thumb,
body.theme-light .exMenu::-webkit-scrollbar-thumb,
body.theme-light .bookTable tbody::-webkit-scrollbar-thumb,
body.theme-light .spotSelectMenu::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#60a5fa 0%,#2563eb 55%,#1d4ed8 100%)!important;
  border-radius:999px;
  border:2px solid #fff;
  background-clip:padding-box;
}
html.theme-light .exMenu::-webkit-scrollbar-thumb:hover,
html.theme-light .bookTable tbody::-webkit-scrollbar-thumb:hover,
html.theme-light .spotSelectMenu::-webkit-scrollbar-thumb:hover,
body.theme-light .exMenu::-webkit-scrollbar-thumb:hover,
body.theme-light .bookTable tbody::-webkit-scrollbar-thumb:hover,
body.theme-light .spotSelectMenu::-webkit-scrollbar-thumb:hover{
  background:linear-gradient(180deg,#93c5fd 0%,#3b82f6 55%,#2563eb 100%)!important;
  border:2px solid #fff;
  background-clip:padding-box;
}

/* Funding History section */
.fhFilters .fhTopGrid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.fhTableWrap{margin-top:14px;padding-bottom:8px}
.fhTable td,.fhTable th{text-align:right}
.fhTable td:first-child,.fhTable th:first-child{text-align:left}
.fhGroupHead td{background:rgba(32,148,255,.08);border-top:1px solid var(--line);padding:12px 10px!important}
.fhGroupTitle{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:18px;font-weight:900;color:var(--text)}
.fhEx{font-weight:700;color:var(--muted)}
.fhPos{color:#16a34a;font-weight:700}
.fhPosHot{color:#00ff9c;font-weight:900}
.fhNeg{color:#ef4444;font-weight:700}
.fhNegHot{color:#ff5270;font-weight:900}
.fhZero,.fhMuted{color:var(--muted)}
.fhPager{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;
  margin-top:16px;
  padding:14px 16px 18px;
  border-top:1px solid var(--line);
}
.fhPageInfo{color:var(--muted);font-weight:700;padding-left:2px}
.fhPageBtns{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding-right:2px}
.fhPageBtn{border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:9px;padding:7px 11px;cursor:pointer;font-weight:700}
.fhPageBtn:hover{border-color:#2094ff;color:#2094ff}
.fhPageBtn.active,.fhPageBtn:disabled.active{background:#2094ff;border-color:#2094ff;color:#fff}
.fhPageBtn:disabled{opacity:.55;cursor:default}
.fhDots{color:var(--muted);padding:0 4px}
.actionBox{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  min-width:88px;
}
.actionBox .miniBtn{
  width:100%;
  box-sizing:border-box;
  text-align:center;
  white-space:nowrap;
}
html.theme-light .fhGroupHead td,body.theme-light .fhGroupHead td{background:#e8f3ff}
html.theme-light .fhPosHot,body.theme-light .fhPosHot{color:#059669}
html.theme-light .fhNegHot,body.theme-light .fhNegHot{color:#dc2626}
/* === Order books split + exchange swap layout (ob-split-1) === */
.tradeSidePanel{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  grid-template-rows:auto minmax(320px,1fr)!important;
  gap:12px!important;
  height:auto!important;
  min-height:620px!important;
  align-items:stretch;
}
.exchangeCards{
  grid-column:1 / -1!important;
  display:grid!important;
  grid-template-columns:1fr 44px 1fr!important;
  gap:0!important;
  align-items:stretch;
  position:relative!important;
}
.exchangeCards .exchangeInfoCard{
  min-width:0;
  height:100%;
}
.swapRouteBtn{
  position:relative!important;
  left:auto!important;
  top:auto!important;
  transform:none!important;
  align-self:center;
  justify-self:center;
  z-index:30;
  width:40px;
  height:40px;
  margin:0 -6px;
  border-radius:50%;
  border:1px solid rgba(110,104,210,.65);
  background:rgba(44,36,112,.92);
  color:#e6e0ff;
  font-size:20px;
  cursor:pointer;
  box-shadow:0 8px 22px rgba(0,0,0,.35);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.swapRouteBtn:hover{background:#3565c9;color:#fff}
.swapRouteBtn:active{transform:scale(.94)!important}
.swapIconVert{display:none}
.swapIconHoriz{display:inline}
.longOrderPanel,.shortOrderPanel{
  height:360px!important;
  min-height:360px!important;
  max-height:360px!important;
  display:flex!important;
  flex-direction:column;
  overflow:hidden!important;
  padding:10px 12px!important;
}
.obPanelHead{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin-bottom:2px;
}
.obPanelHead h3{margin:0!important;font-size:14px!important;line-height:1.2}
.obCenterBtn{
  width:28px;height:28px;border-radius:8px;
  border:1px solid rgba(120,110,210,.45);
  background:rgba(255,255,255,.06);
  color:#c9c4ff;cursor:pointer;font-size:13px;flex-shrink:0;
}
.obCenterBtn:hover{background:rgba(53,101,201,.35);color:#fff}
.orderPanel .bookHint{margin:0 0 6px!important;font-size:12px}
.obCols{
  display:grid;
  grid-template-columns:1.2fr .9fr .9fr;
  gap:4px;
  padding:0 4px 4px;
  color:#8fbce3;
  font-size:11px;
  font-weight:800;
  text-transform:uppercase;
  flex-shrink:0;
}
.obCols span:nth-child(2),
.obCols span:nth-child(3){text-align:right}
.obBody{
  flex:1;
  min-height:0;
  display:grid;
  grid-template-rows:1fr auto 1fr;
  gap:0;
}
.obAsks,.obBids{
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  scrollbar-width:thin;
  scrollbar-color:#7f79d8 rgba(255,255,255,.04);
}
.obAsks::-webkit-scrollbar,
.obBids::-webkit-scrollbar{width:7px}
.obAsks::-webkit-scrollbar-thumb,
.obBids::-webkit-scrollbar-thumb{background:#7f79d8;border-radius:8px}
.obAsks::-webkit-scrollbar-track,
.obBids::-webkit-scrollbar-track{background:rgba(255,255,255,.04);border-radius:8px}
.obRow{
  position:relative;
  display:grid;
  grid-template-columns:1.2fr .9fr .9fr;
  gap:4px;
  padding:3px 4px;
  font-size:12px;
  font-variant-numeric:tabular-nums;
  line-height:1.25;
  z-index:0;
}
.obRow::before{
  content:"";
  position:absolute;
  right:0;top:1px;bottom:1px;
  width:var(--ob-vol,0%);
  border-radius:3px;
  z-index:-1;
  pointer-events:none;
}
.obRow.askRow{color:#ff5e74;font-weight:700}
.obRow.askRow::before{background:rgba(255,82,112,.18)}
.obRow.bidRow{color:#00d98a;font-weight:700}
.obRow.bidRow::before{background:rgba(0,217,138,.16)}
.obRow .obA,.obRow .obT{text-align:right;color:inherit}
.obRow .obT{opacity:.85;font-weight:600}
.obEmpty{padding:8px;color:#7a93ad;text-align:center;font-size:12px}
.obMid{
  flex-shrink:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:7px 8px;
  margin:3px 0;
  border-radius:8px;
  border:1px solid rgba(120,110,210,.45);
  background:rgba(12,18,40,.9);
  font-size:12px;
}
.obMidLabel{color:#9bb4d0;font-weight:800;letter-spacing:.3px;font-size:10px}
.obMidPrice{font-size:14px;font-weight:900;color:#e8f0ff}
.obMidMeta{color:#8fbce3;font-size:11px;font-weight:700}
.obMid.up .obMidPrice{color:#00e895}
.obMid.down .obMidPrice{color:#ff5e74}
.obMid.flat .obMidPrice{color:#e8f0ff}
.exchangeInfoCard h3{
  position:relative;
  z-index:40;
  overflow:visible!important;
}
.exMenu{
  position:fixed!important;
  z-index:10000!important;
  width:220px!important;
  max-height:min(320px, calc(100vh - 24px))!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding:8px!important;
  padding-bottom:8px!important;
  background:#070315!important;
  border:1px solid rgba(120,110,210,.55)!important;
  border-radius:12px!important;
  box-shadow:0 18px 38px rgba(0,0,0,.45)!important;
  transform:none!important;
  right:auto!important;
}
.exMenu button.active{
  background:rgba(45,135,255,.28)!important;
  color:#fff!important;
  font-weight:800;
}
@media(max-width:950px){
  .tradeSidePanel{
    grid-template-columns:1fr!important;
    grid-template-rows:auto!important;
    height:auto!important;
    min-height:0!important;
  }
  .exchangeCards{
    grid-template-columns:1fr!important;
    grid-template-rows:auto 40px auto!important;
  }
  .swapRouteBtn{margin:4px auto}
  .swapIconHoriz{display:none}
  .swapIconVert{display:inline}
  .longOrderPanel,.shortOrderPanel{
    height:340px!important;
    min-height:340px!important;
    max-height:340px!important;
  }
}
html.theme-light .obMid,
body.theme-light .obMid{
  background:#f1f5f9;
  border-color:#cbd5e1;
}
html.theme-light .obMidLabel,
body.theme-light .obMidLabel{color:#64748b}
html.theme-light .obMid.flat .obMidPrice,
body.theme-light .obMid.flat .obMidPrice{color:#0f172a}
html.theme-light .obCols,
body.theme-light .obCols{color:#64748b}
html.theme-light .exMenu,
body.theme-light .exMenu{
  background:#fff!important;
  border-color:#cbd5e1!important;
}
html.theme-light .exMenu button,
body.theme-light .exMenu button{color:#0f172a}
html.theme-light .swapRouteBtn,
body.theme-light .swapRouteBtn{
  background:#e2e8f0;
  color:#1e293b;
  border-color:#94a3b8;
}

/* depth hot-path diagnostics */
.depthDiag{
  display:flex;flex-wrap:wrap;gap:8px 14px;margin:0 0 8px;padding:6px 10px;
  border:1px dashed rgba(120,110,210,.35);border-radius:8px;
  background:rgba(9,6,34,.35);font-size:11px;color:#9bb4d0;
}
.depthDiag b{color:#e8f0ff;font-weight:800}
.obRow[style*="visibility: hidden"]{height:0;padding:0;margin:0;overflow:hidden;border:0}

.filtersPanel .filterSectionTitle{grid-column:1/-1;margin:8px 0 0;font-size:14px;font-weight:800;color:#9bd2ff;letter-spacing:.02em}

.pushSettingsPanel h3{margin:0 0 10px}
.pushStatusLine{margin:8px 0;font-size:16px}
.pushMainStatus b{font-size:18px}
.pushStatusLine b[data-tone="ok"]{color:var(--green)}
.pushStatusLine b[data-tone="bad"]{color:var(--red)}
.pushStatusLine b[data-tone="warn"]{color:#ffb020}
.pushStatusLine b[data-tone="muted"]{color:var(--muted)}
.pushStatusDetails{margin:8px 0 14px;padding:0 0 0 18px;color:#c5d8ea;font-size:15px;line-height:1.55}
.pushStatusDetails b[data-tone="ok"]{color:var(--green)}
.pushStatusDetails b[data-tone="muted"]{color:var(--muted)}
.pushHint{margin-top:14px;max-width:640px}
#pushEnableBtn:disabled,#pushDisableBtn:disabled,#pushReconnectBtn:disabled,#pushTestBtn:disabled{opacity:.55;cursor:not-allowed}

/* ---- Mobile / PWA layout (staging UI only; desktop >1100 unchanged) ---- */
.hamburger,
.logoInline,
.navCloseBtn,
.navScrim,
.mobileCards,
.sideDrawerHead .navCloseBtn{display:none}
.brand{display:flex;align-items:flex-start;gap:10px;min-width:0}
.brandText{min-width:0}
.logoInline{
  width:36px;height:36px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(135deg,#11d4ff,#2455ff);
  color:#fff;font-weight:900;font-size:13px;
  align-items:center;justify-content:center;
}
.navScrim{
  position:fixed;inset:0;background:rgba(0,8,18,.62);z-index:240;
}
.navCloseBtn{
  width:44px;height:44px;border:0;border-radius:10px;
  background:#123a62;color:#fff;font-size:28px;line-height:1;cursor:pointer;
  align-items:center;justify-content:center;
}
.hamburger{
  width:44px;height:44px;flex-shrink:0;border:1px solid #2b70a8;border-radius:10px;
  background:#0b1c2f;color:#d7ecff;font-size:22px;cursor:pointer;
  align-items:center;justify-content:center;
}
.mobileCards{flex-direction:column;gap:10px;margin:0 0 16px}
.oppCard{
  background:var(--panel);border:1px solid var(--line);border-radius:14px;
  padding:12px;min-width:0;max-width:100%;
}
.oppCard.sub{margin-left:0;background:#07111d}
.oppCardHead{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.oppCardHead .coinBtn{font-size:18px;text-align:left;overflow-wrap:anywhere}
.oppRoute{margin:8px 0 10px;font-weight:800;color:#cfe9ff;overflow-wrap:anywhere;line-height:1.35}
.oppMetrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin:0}
.oppMetrics div{background:#071321;border:1px solid #1d4163;border-radius:10px;padding:8px}
.oppMetrics dt{margin:0;font-size:11px;color:#9bd2ff;font-weight:700}
.oppMetrics dd{margin:4px 0 0;font-size:15px;font-weight:900;overflow-wrap:anywhere}
.oppActions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.oppActions .miniBtn{min-height:44px;padding:10px 14px;flex:1}
.oppDetails{margin-top:8px}
.oppDetails summary{
  cursor:pointer;font-weight:800;color:#9bd2ff;min-height:44px;
  display:flex;align-items:center;list-style:none;
}
.oppDetails summary::-webkit-details-marker{display:none}
.oppDetails[open] summary{color:#fff}
.oppDetailsBody{padding:6px 0 0;font-size:13px;color:#c5d8ea;overflow-wrap:anywhere}
.oppKv{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;margin:8px 0 0}
.oppKv dt{color:#9bd2ff;font-weight:700}
.oppKv dd{margin:0;overflow-wrap:anywhere;text-align:right}
.pushActions{flex-wrap:wrap}
.pushTestFeedback{min-height:1.2em;margin:8px 0 0;color:#9bd2ff;font-size:14px}
.pushMutePanel h3{margin:0 0 8px}
.pushMuteList{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.pushMuteRow{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:12px;background:#071321}
.pushMuteRow .primary{flex-shrink:0}
.pushMuteActions{flex-wrap:wrap;margin-top:8px}
.analysisPushMute{margin:0 0 16px}
.pushMuteCoin{margin-top:10px;padding-top:8px;border-top:1px solid #1d4163}
.telegramSettingsPanel h3{margin:0 0 10px}
html,body{max-width:100%}
.app,.view,.panel,.tableWrap,.mobileCards,.spotFilterPanel,.filtersPanel{min-width:0}

@media (max-width:1100px){
  .app{margin-left:120px}
}

@media (max-width:768px), (max-width:1100px) and (max-height:500px){
  .hamburger{display:inline-flex}
  .logoInline{display:none}
  .navCloseBtn,
  .sideDrawerHead .navCloseBtn{display:inline-flex}
  .mobileCards{display:flex}
  .desktopTableWrap{display:none}
  .topbar p{display:none}
  .brandText h1,
  .topbar h1{
    font-size:15px;line-height:1.2;white-space:nowrap;
  }
  .topbar #lang{display:none}
  .topbar .status{padding:6px 10px;min-height:32px;font-size:11px}
  .topbar{
    align-items:center;
    gap:8px;
    margin:0 0 12px;
    padding-top:env(safe-area-inset-top,0px);
  }
  .app{
    margin-left:0;
    padding:10px 12px calc(24px + env(safe-area-inset-bottom,0px));
    width:100%;
    max-width:100%;
  }
  .side{
    position:fixed;
    left:0;top:0;bottom:0;
    width:min(86vw,300px);
    max-width:300px;
    z-index:260;
    transform:translateX(-110%);
    transition:transform .22s ease;
    padding:calc(10px + env(safe-area-inset-top,0px)) 12px calc(16px + env(safe-area-inset-bottom,0px));
    gap:10px;
    align-items:stretch;
    overflow-y:auto;
    box-shadow:none;
  }
  body.navOpen .side{transform:translateX(0);box-shadow:18px 0 40px rgba(0,0,0,.4)}
  body.navOpen .navScrim{display:block}
  body.navOpen{overflow:hidden}
  .sideDrawerHead{
    display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:4px;
  }
  .side .logo{margin:0;width:44px;height:44px}
  .sideBtn{
    flex-direction:row;
    justify-content:flex-start;
    text-align:left;
    min-height:48px;
    gap:10px;
    padding:8px 12px;
    font-size:15px;
  }
  .sideBtn br{display:none}
  .sideBtn span{white-space:normal}
  .view h2{font-size:22px;margin:8px 0 12px}
  .panel{padding:14px;border-radius:14px}
  .filterGrid,
  .spotParamsGrid,
  .spotBlacklistGrid,
  .stMetrics,
  .infoGrid,
  .calcGrid,
  .compactTop,
  .topAnalysisGrid.compactTop,
  .pnlMiniRows,
  .pmRows{
    grid-template-columns:1fr !important;
  }
  .filterGrid .wide{grid-column:auto}
  select,input,textarea,
  .spotParamsGrid input,
  .spotParamsGrid select,
  .filtersPanel input,
  .filtersPanel select{
    width:100%;
    min-height:44px;
    font-size:16px;
    box-sizing:border-box;
  }
  .spotSelectWrap,.spotSelectBtn{width:100%;min-height:44px}
  label span{display:block}
  .actions,.spotApplyRow{
    flex-direction:column;align-items:stretch;gap:8px;
  }
  .primary,.secondary,.warning{
    width:100%;min-height:44px;padding:10px 14px;font-size:15px;
  }
  #applyBtn,#stApply,#fhApply{min-height:44px}
  #tgBindBtn{
    min-height:40px;padding:8px 12px;font-size:13px;font-weight:700;
    opacity:.72;background:#123a62;
  }
  .liveText,.spotApplyFeedback,.spotUnsavedHint{width:100%}
  .exchangeGrid,.spotExList,#fhExGrid.exchangeGrid{
    display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;
  }
  .exchangeItem,.spotCheck{
    min-height:44px;padding:8px 10px;margin:0;width:100%;box-sizing:border-box;
  }
  .spotExchangeGroup{
    display:block;margin:0 0 16px;padding:10px 0 0;border-top:1px solid #1d4163;
  }
  .spotGroupTitle{font-size:16px;font-weight:900;margin:0 0 8px;width:100%}
  .spotCheck.all{margin-bottom:8px}
  .spotNotify{grid-column:1}
  .status{padding:8px 12px;font-size:12px;min-height:44px;box-sizing:border-box}
  .themeToggleTrack{width:48px;height:28px}
  #lang{width:64px;min-width:64px;min-height:44px}
  .signalsTable,.spotOpportunitiesTable,.fhTable{min-width:0 !important}
  .spotOppTableScroll{overflow:visible}
  .spotTradesWrap{overflow:visible}
  .spotTradesWrap table,.spotTradesWrap thead,.spotTradesWrap tbody,.spotTradesWrap tr,.spotTradesWrap th,.spotTradesWrap td{
    display:block;width:100%;box-sizing:border-box;
  }
  .spotTradesWrap thead{display:none}
  .spotTradesWrap tr{
    border:1px solid var(--line);border-radius:12px;margin:0 0 10px;padding:10px;background:var(--panel);
  }
  .spotTradesWrap td{border:0;padding:4px 0}
  .analysisHeader{display:flex;flex-direction:column;align-items:stretch;gap:8px;grid-template-columns:1fr}
  .analysisHeader .secondary{width:100%;min-height:44px}
  .analysisHeader .analysisTitle{text-align:left;grid-column:auto}
  .analysisHeader h2,.analysisCoinTitle{font-size:22px}
  .analysisTradeLayout,
  .tradeSidePanel,
  .exchangeCards,
  .compactTop{
    display:flex !important;
    flex-direction:column !important;
    grid-template-columns:1fr !important;
    height:auto !important;
    min-height:0 !important;
    gap:12px;
  }
  .exchangeCards{display:flex !important}
  .longOrderPanel,.shortOrderPanel,.exchangeInfoCard,.spreadPanel{
    width:100%;max-width:100%;height:auto !important;min-height:0 !important;max-height:none !important;
  }
  .analysisTradeLayout .chartBoxWide,
  #spreadChart.chartBoxWide,
  .chartBoxWide{
    width:100% !important;
    max-width:100%;
    height:360px !important;
    min-height:300px !important;
    max-height:420px !important;
  }
  #spreadChart{overflow:visible}
  .feeGrid div,.infoGrid div{min-width:0}
  .modalBox{width:min(460px,calc(100vw - 24px));max-width:100%}
  .pmBtn,.chartAlertHeadBtn,.spreadAlertActions button{min-height:44px}
  .alertLineMarker{padding:6px 8px 6px 10px;font-size:13px}
  .alertLineMarkerX{width:32px;height:32px;font-size:20px}
  .toast{right:12px;left:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .oppMetrics{grid-template-columns:1fr 1fr; }
  .fhPager{flex-wrap:wrap}
  .fhPageBtns{display:flex;flex-wrap:wrap;gap:6px}
  .fhPageBtn{min-height:44px;padding:8px 12px}
}

@media (max-width:360px){
  .oppMetrics{grid-template-columns:1fr}
  .exchangeGrid,.spotExList,#fhExGrid.exchangeGrid{grid-template-columns:1fr 1fr}
  .brandText h1,.topbar h1{font-size:15px}
}

@media (display-mode: standalone){
  .topbar{padding-top:env(safe-area-inset-top,0px)}
  .app{padding-bottom:calc(28px + env(safe-area-inset-bottom,0px))}
}

html.theme-light .oppCard,
body.theme-light .oppCard{background:#fff;border-color:#d5dee8}
html.theme-light .oppMetrics div,
body.theme-light .oppMetrics div{background:#f8fafc;border-color:#d5dee8}
html.theme-light .oppRoute,
body.theme-light .oppRoute{color:#0f172a}
html.theme-light .hamburger,
body.theme-light .hamburger{background:#e8eef6;color:#0f172a;border-color:#cbd5e1}
html.theme-light .navScrim,
body.theme-light .navScrim{background:rgba(15,23,42,.45)}


