.strategy-rule{margin:10px 14px 0;padding:12px;border:1px solid var(--line);border-radius:7px;background:#0d0d0f}.strategy-rule>span,.strategy-rule small,.strategy-rule div span{display:block;color:var(--muted);font-size:9px}.strategy-rule>strong,.strategy-rule div strong{display:block;font:600 13px "IBM Plex Mono";margin:5px 0}.strategy-rule.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.strategy-rule.two>div+div{border-left:1px solid var(--line);padding-left:12px}.strategy-status{display:flex;align-items:center;gap:10px;margin:10px 14px 0;padding:11px 12px;background:var(--green-bg);border:1px solid rgba(52,211,153,.2);border-radius:7px}.strategy-status strong,.strategy-status small{display:block}.strategy-status strong{font-size:11px}.strategy-status small{color:var(--muted);font-size:9px}.dot{width:8px;height:8px;border-radius:50%;background:var(--faint);display:inline-block}.dot.live{background:var(--green);box-shadow:0 0 0 4px var(--green-bg)}
.status-pulse.inactive{background:var(--faint);box-shadow:0 0 0 4px rgba(113,113,122,.12)}
.chart-loading{height:100%;display:grid;place-items:center;color:var(--faint);font:500 11px "IBM Plex Mono"}
.monitor-live .status-pulse:not(.inactive){animation:monitor-heartbeat 1.6s ease-out infinite}@keyframes monitor-heartbeat{0%,45%{box-shadow:0 0 0 4px var(--green-bg)}75%{box-shadow:0 0 0 9px rgba(52,211,153,0)}100%{box-shadow:0 0 0 4px var(--green-bg)}}
.entry-monitor{display:grid;grid-template-columns:minmax(220px,.72fr) minmax(0,1.8fr);border-top:1px solid var(--line);background:#0d0d0f}
.monitor-summary{padding:16px;border-right:1px solid var(--line)}
.monitor-live{display:flex;align-items:center;gap:10px}.monitor-live small,.checks-head small{display:block;color:var(--faint);font:600 9px "IBM Plex Mono";letter-spacing:.1em}.monitor-live strong{display:block;margin-top:3px;font-size:14px}.monitor-summary>p{min-height:36px;margin:14px 0;color:var(--muted);font-size:11px;line-height:1.55}.monitor-times{display:grid;grid-template-columns:1fr 1fr;gap:7px}.monitor-times span{padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:6px;color:var(--faint);font-size:9px}.monitor-times b{display:block;margin-top:4px;color:var(--text);font:600 11px "IBM Plex Mono"}
.entry-checks{padding:14px 16px}.checks-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.checks-head strong{display:block;margin-top:3px;font-size:12px}.ready-badge{border:1px solid var(--line-strong);border-radius:999px;padding:4px 8px;font:600 9px "IBM Plex Mono";letter-spacing:.06em}.ready-badge.waiting{color:var(--amber);border-color:rgba(251,191,36,.3);background:rgba(251,191,36,.06)}.ready-badge.ready{color:var(--green);border-color:rgba(52,211,153,.35);background:var(--green-bg)}
.checks-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.entry-check{display:flex;align-items:flex-start;gap:8px;min-width:0;padding:9px;border:1px solid var(--line);border-radius:7px;background:var(--panel)}.entry-check i{display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:rgba(251,191,36,.09);color:var(--amber);font:700 10px "IBM Plex Mono";font-style:normal;flex:0 0 auto}.entry-check.passed{border-color:rgba(52,211,153,.18)}.entry-check.passed i{background:var(--green-bg);color:var(--green)}.entry-check span{min-width:0;font-size:10px}.entry-check small{display:block;margin-top:3px;color:var(--faint);font:9px "IBM Plex Mono";white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.entry-note{margin:9px 0 0;color:var(--faint);font-size:9px}
@media(max-width:900px){.entry-monitor{grid-template-columns:1fr}.monitor-summary{border-right:0;border-bottom:1px solid var(--line)}.checks-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.checks-grid{grid-template-columns:1fr}.monitor-times{grid-template-columns:1fr 1fr}}
.market-scanner{border-top:1px solid var(--line);background:var(--panel)}.scanner-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}.scanner-head small{display:block;color:var(--faint);font:600 9px "IBM Plex Mono";letter-spacing:.1em}.scanner-head strong{display:block;margin-top:3px;font-size:12px}.scanner-rows{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.scanner-row{min-width:0;padding:11px 13px;border-right:1px solid var(--line)}.scanner-row:nth-child(6n){border-right:0}.scanner-symbol{display:flex;align-items:baseline;gap:4px}.scanner-symbol b{font:600 12px "IBM Plex Mono"}.scanner-symbol small,.scanner-rsi{color:var(--faint);font-size:9px}.scanner-row>strong{display:block;margin:7px 0 3px;font:600 12px "IBM Plex Mono"}.scanner-rsi{display:block}.scanner-state{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:8px;padding:3px 5px;border:1px solid var(--line-strong);border-radius:999px;color:var(--amber);font:600 8px "IBM Plex Mono";letter-spacing:.04em}.scanner-state.long{color:var(--green);border-color:rgba(52,211,153,.35);background:var(--green-bg)}.scanner-state.short{color:#a78bfa;border-color:rgba(167,139,250,.35);background:rgba(167,139,250,.1)}.short{color:#a78bfa}.market-tabs.many{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}.market-tabs.many .market-tab{width:100%;padding:6px 4px}@media(max-width:900px){.scanner-rows{grid-template-columns:repeat(3,minmax(0,1fr))}.scanner-row:nth-child(3n){border-right:0}.scanner-row:nth-child(-n+9){border-bottom:1px solid var(--line)}.market-tabs.many{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:520px){.scanner-rows{grid-template-columns:repeat(2,minmax(0,1fr))}.scanner-row{border-bottom:1px solid var(--line)}.scanner-row:nth-child(2n){border-right:0}.market-tabs.many{grid-template-columns:repeat(2,minmax(0,1fr))}}
.daily-rsi-card{border-color:rgba(96,165,250,.28)}.daily-rsi-card .bot-header{background:linear-gradient(90deg,rgba(59,130,246,.08),transparent 45%)}.daily-rsi-card .market-scanner{border-top-color:rgba(96,165,250,.2)}.daily-rsi-card .scanner-state.waiting{color:#93c5fd;border-color:rgba(96,165,250,.28);background:rgba(59,130,246,.07)}.daily-rsi-log-wrap{border-top:1px solid var(--line);background:#0d0d0f}.daily-rsi-log-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}.daily-rsi-log-head small{display:block;color:var(--faint);font:600 9px "IBM Plex Mono";letter-spacing:.1em}.daily-rsi-log-head strong{display:block;max-width:800px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.daily-rsi-log-head>span{color:var(--faint);font:9px "IBM Plex Mono";white-space:nowrap}.daily-rsi-log-wrap .bot-log{max-height:178px;margin:0;overflow:auto}.daily-rsi-log-wrap .bot-log li{padding:8px 16px}
@media(max-width:520px){.daily-rsi-log-head{align-items:flex-start;flex-direction:column}.daily-rsi-log-head strong{max-width:100%;white-space:normal}}

/* Phone-first usability pass for both portfolios. */
html,body{max-width:100%;overflow-x:hidden}.btn,.market-tab,.timeframes button{min-height:36px}.table-wrap{-webkit-overflow-scrolling:touch}.table-wrap table{min-width:760px}
@media(max-width:760px){
  .sidebar{position:sticky;top:0;height:64px;padding:8px 10px;gap:10px;z-index:40;overflow:hidden}.brand{padding:0;flex:0 0 auto}.brand>span:last-child{display:none}.side-nav{min-width:0;flex:1;gap:3px;overflow-x:auto;scrollbar-width:none}.side-nav::-webkit-scrollbar{display:none}.side-nav a,.side-nav a:not(.active)::after{font-size:10px!important;flex:0 0 auto;min-width:56px;min-height:48px;padding:5px 7px;flex-direction:column;justify-content:center;gap:2px;text-align:center;white-space:nowrap}.side-nav a span{font-size:14px!important}.content{padding:16px 12px 34px}.topbar{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:16px}.topbar .subtitle{display:block;line-height:1.45}.top-actions{width:100%;display:flex;align-items:stretch;justify-content:space-between;gap:8px}.connection{min-width:0;flex:1;padding:8px 0;border-right:0;border-bottom:1px solid var(--line)}.top-actions .btn{white-space:nowrap;display:grid;place-items:center;padding:8px 10px}.metric-grid{gap:8px}.metric{padding:13px}.metric strong{font-size:17px}.card-header{padding:13px;align-items:flex-start}.card-header .subtitle{line-height:1.45}.bot-header{gap:12px}.bot-actions{width:100%;gap:7px}.bot-actions .btn{flex:1;padding:8px 6px}.bot-actions .bot-mode{display:grid;place-items:center}.bot-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.bot-stats article{padding:12px;border-right:1px solid var(--line)}.bot-stats article:nth-child(2n){border-right:0}.bot-stats article:nth-child(-n+2){border-bottom:1px solid var(--line)}.entry-monitor{display:block}.monitor-summary{padding:13px}.monitor-times{gap:6px}.entry-checks{padding:13px}.checks-grid{grid-template-columns:1fr}.entry-check{padding:10px}.entry-note{line-height:1.5}.scanner-head{align-items:flex-start;flex-direction:column;gap:8px;padding:12px 13px}.scanner-rows{grid-template-columns:repeat(2,minmax(0,1fr))}.scanner-row{padding:11px 10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.scanner-row:nth-child(2n){border-right:0}.scanner-row:nth-child(6n){border-right:1px solid var(--line)}.scanner-row:nth-child(2n){border-right:0}.scanner-state{max-width:100%;font-size:7px}.market-tabs.many{grid-template-columns:repeat(3,minmax(0,1fr))}.market-tabs.many .market-tab{min-height:34px}.chart{height:280px}.chart-footer{gap:12px;line-height:1.4}.chart-footer span:last-child{text-align:right}.ledger-metrics{grid-template-columns:1fr}.ledger-metrics article{padding:11px 13px}.total-pnl{text-align:left}.daily-rsi-log-head{padding:12px 13px}.daily-rsi-log-head>span{white-space:normal}.daily-rsi-log-wrap .bot-log li{padding:9px 13px}.bot-log{max-height:240px}.bot-log li{grid-template-columns:58px 1fr;gap:7px;padding:10px 12px;line-height:1.45}.daily-page-content .top-actions{align-items:center}.daily-page-content .top-actions .connection{border-bottom:0}.daily-page-content .top-actions .btn{flex:0 0 auto}
}
@media(max-width:390px){
  .metric-grid{grid-template-columns:1fr}.top-actions{align-items:flex-start;flex-direction:column}.top-actions .btn{width:100%}.daily-page-content .top-actions .btn{width:100%}.bot-actions{display:grid;grid-template-columns:repeat(3,1fr)}.bot-actions .bot-mode{grid-column:1/-1}.market-tabs.many{grid-template-columns:repeat(2,minmax(0,1fr))}.monitor-times{grid-template-columns:1fr}.scanner-symbol b{font-size:11px}.scanner-row>strong{font-size:11px}
}

/* Never hide an open-position label on a narrow card. */
.metric,.bot-stats article,.ledger-metrics article{min-width:0}.bot-stats strong,.bot-stats small,.ledger-metrics strong,.ledger-metrics small{min-width:0;overflow-wrap:anywhere}.bot-stats small{line-height:1.45}.bot-stats #bot-position,.bot-stats #daily-rsi-position-count{white-space:normal;overflow:visible;text-overflow:clip}.bot-stats #bot-risk,.bot-stats #daily-rsi-position-detail{white-space:normal;overflow:visible;text-overflow:clip}.metric #position-count,.metric #position-detail{white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
@media(max-width:760px){.bot-stats #bot-position,.bot-stats #daily-rsi-position-count{font-size:13px;line-height:1.35}.bot-stats #bot-risk,.bot-stats #daily-rsi-position-detail{min-height:29px}.metric #position-count{font-size:15px;line-height:1.35}.metric #position-detail{line-height:1.4}.scanner-row{overflow:hidden}.scanner-state{overflow:hidden;text-overflow:ellipsis}}
@media(max-width:760px){.ledger-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.ledger-metrics article{padding:11px 10px;border-right:1px solid var(--line);border-bottom:0}.ledger-metrics article:last-child{border-right:0}.ledger-metrics strong{font-size:16px;overflow-wrap:anywhere}.table-wrap table{min-width:0;white-space:normal}.table-wrap thead{display:none}.table-wrap tbody{display:grid;gap:8px;padding:8px}.table-wrap tr:not(.empty){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;border:1px solid var(--line);border-radius:8px;padding:8px;background:#0d0d0f}.table-wrap td{display:block;min-width:0;padding:7px 0;border:0;text-align:left;overflow-wrap:anywhere}.table-wrap td::before{content:attr(data-label);display:block;margin-bottom:3px;color:var(--faint);font:500 8px "IBM Plex Mono";letter-spacing:.06em}.table-wrap td:nth-child(1),.table-wrap td:nth-child(8){grid-column:1/-1}.table-wrap tr.empty{display:block}.table-wrap tr.empty td{display:block;padding:18px 8px}.table-wrap tr.empty td::before{display:none}}
@media(max-width:390px){.ledger-metrics{grid-template-columns:1fr}.ledger-metrics article{border-right:0;border-bottom:1px solid var(--line)}.ledger-metrics article:last-child{border-bottom:0}}
.runtime-strip{display:flex;align-items:center;gap:10px;padding:9px 16px;border-bottom:1px solid var(--line);background:#0d0d0f}.runtime-strip span{flex:0 0 auto;color:var(--faint);font:600 9px "IBM Plex Mono";letter-spacing:.1em}.runtime-strip strong{min-width:0;color:var(--muted);font:500 10px "IBM Plex Mono";overflow-wrap:anywhere}@media(max-width:760px){.runtime-strip{align-items:flex-start;flex-direction:column;gap:3px;padding:10px 13px}.runtime-strip strong{line-height:1.45}}
.session-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:-8px 0 12px}.session-overview.single{grid-template-columns:minmax(0,1fr)}.session-card{min-width:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;padding:13px 15px;border:1px solid rgba(52,211,153,.25);border-radius:10px;background:linear-gradient(115deg,rgba(52,211,153,.09),#111113 55%)}.session-card:nth-child(2){border-color:rgba(167,139,250,.28);background:linear-gradient(115deg,rgba(167,139,250,.1),#111113 55%)}.session-icon{width:31px;height:31px;display:grid;place-items:center;border-radius:8px;background:rgba(52,211,153,.14);color:var(--green);font:15px "IBM Plex Mono"}.session-card:nth-child(2) .session-icon{background:rgba(167,139,250,.14);color:#a78bfa}.session-card>div:nth-child(2){min-width:0}.session-card span:not(.bot-mode){display:block;color:var(--faint);font:600 9px "IBM Plex Mono";letter-spacing:.1em}.session-card strong{display:block;overflow-wrap:anywhere;margin-top:4px;color:var(--text);font:500 11px "IBM Plex Mono";line-height:1.45}.session-card .bot-mode{justify-self:end}@media(max-width:760px){.session-overview{grid-template-columns:1fr;gap:8px;margin:0 0 12px}.session-card{padding:12px}.session-card strong{font-size:10px}.session-card .bot-mode{align-self:start}}
.scanner-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;margin-bottom:12px}.scanner-controls p{margin:0 0 3px}.scanner-controls strong{font-size:12px}.reversal-explainer{padding:15px 16px;margin-bottom:12px}.reversal-explainer>div{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.reversal-explainer h2{margin:0;font-size:15px}.reversal-explainer p{margin:10px 0 5px;color:var(--text);font:500 11px "IBM Plex Mono";line-height:1.7}.reversal-explainer small{color:var(--faint);font-size:10px}.reversal-grids{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}.side-badge{border:1px solid var(--line-strong);border-radius:999px;padding:5px 7px;font:600 9px "IBM Plex Mono";letter-spacing:.08em}.side-badge.long{color:var(--green);border-color:rgba(52,211,153,.4);background:var(--green-bg)}.side-badge.short{color:#a78bfa;border-color:rgba(167,139,250,.4);background:rgba(167,139,250,.1)}.candidate-list{padding:8px}.candidate{display:grid;grid-template-columns:25px minmax(0,1fr) auto;gap:10px;align-items:start;padding:12px 9px;border-bottom:1px solid var(--line)}.candidate:last-child{border-bottom:0}.candidate-rank{display:grid;place-items:center;width:23px;height:23px;border-radius:6px;background:#1a1a1e;color:var(--muted);font:600 10px "IBM Plex Mono"}.candidate-main{min-width:0}.candidate-title{display:flex;align-items:center;gap:8px}.candidate-title b{font:600 12px "IBM Plex Mono"}.tier{padding:2px 5px;border-radius:999px;font:600 8px "IBM Plex Mono";letter-spacing:.04em}.tier.strong{color:var(--green);background:var(--green-bg)}.tier.watch{color:var(--amber);background:rgba(251,191,36,.1)}.tier.muted{color:var(--faint);background:#1a1a1e}.candidate-main>strong{display:block;margin:4px 0;font:600 14px "IBM Plex Mono"}.candidate-metrics{display:flex;flex-wrap:wrap;gap:4px 9px;color:var(--faint);font:9px "IBM Plex Mono"}.candidate-metrics b{color:var(--muted);font-weight:500}.reason-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.reason-row span{padding:3px 5px;border-radius:4px;color:var(--muted);background:#18181b;font:8px "IBM Plex Mono"}.score{text-align:right}.score b{display:block;font:600 22px "IBM Plex Mono";letter-spacing:-.06em}.candidate.strong .score b{color:var(--green)}.candidate.watch .score b{color:var(--amber)}.score small{color:var(--faint);font:8px "IBM Plex Mono"}.scanner-method{margin-bottom:12px}.method-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.method-grid article{padding:14px 16px;border-right:1px solid var(--line)}.method-grid article:last-child{border-right:0}.method-grid b,.method-grid span{display:block}.method-grid b{margin-bottom:6px;font-size:11px}.method-grid span{color:var(--muted);font-size:10px;line-height:1.45}.empty-state{padding:20px;color:var(--faint);text-align:center;font-size:11px}@media(max-width:900px){.reversal-grids{grid-template-columns:1fr}.method-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.method-grid article:nth-child(2){border-right:0}.method-grid article:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media(max-width:760px){.scanner-controls{align-items:flex-start;flex-direction:column;padding:12px}.scanner-controls .timeframes{width:100%}.scanner-controls .timeframes button{flex:1}.reversal-explainer{padding:13px}.candidate{grid-template-columns:23px minmax(0,1fr) auto;padding:11px 5px}.candidate-main>strong{font-size:13px}.candidate-metrics{gap:4px 7px}.reason-row span{font-size:7px}.method-grid{grid-template-columns:1fr}.method-grid article{border-right:0;border-bottom:1px solid var(--line)}.method-grid article:last-child{border-bottom:0}}

/* All-bot performance summary */
.performance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}.performance-list{display:grid;gap:12px}.performance-card{overflow:hidden}.performance-card-head{display:flex;justify-content:space-between;gap:18px;padding:16px;border-bottom:1px solid var(--line);background:linear-gradient(100deg,rgba(96,165,250,.07),transparent 52%)}.performance-card-head h2{margin:4px 0;font-size:17px}.performance-card-head p:last-child{margin:0;color:var(--muted);font:500 10px "IBM Plex Mono";line-height:1.55}.performance-card-head>div:last-child{display:flex;align-items:flex-end;flex-direction:column;gap:9px}.card-link{color:var(--muted);font:500 10px "IBM Plex Mono"}.card-link:hover{color:var(--text)}.performance-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.performance-metrics>div{min-width:0;padding:14px 15px;border-right:1px solid var(--line)}.performance-metrics>div:last-child{border-right:0}.performance-metrics span,.performance-metrics small{display:block}.performance-metrics span{color:var(--faint);font:600 9px "IBM Plex Mono";letter-spacing:.07em}.performance-metrics strong{display:block;margin:7px 0 4px;font:600 15px "IBM Plex Mono";overflow-wrap:anywhere}.performance-metrics small{color:var(--muted);font-size:9px;line-height:1.4}.performance-card footer{display:flex;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid var(--line);color:var(--faint);font:9px "IBM Plex Mono"}.performance-card footer b{color:var(--muted);font-weight:500}.performance-note{margin-top:12px}.performance-note p{margin:0;padding:0 16px 16px;color:var(--muted);font-size:11px;line-height:1.65}@media(max-width:1000px){.performance-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.performance-metrics>div:nth-child(3n){border-right:0}.performance-metrics>div:nth-child(-n+3){border-bottom:1px solid var(--line)}}@media(max-width:760px){.performance-summary{grid-template-columns:1fr;gap:8px}.performance-card-head{padding:13px;align-items:flex-start}.performance-card-head h2{font-size:15px}.performance-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.performance-metrics>div{padding:12px 10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.performance-metrics>div:nth-child(2n){border-right:0}.performance-metrics>div:nth-last-child(-n+2){border-bottom:0}.performance-card footer{align-items:flex-start;flex-direction:column;gap:5px;padding:10px 13px}.performance-note p{padding:0 13px 13px}}

/* Scanner Signal Bot */
.scanner-bot-signals{border-top:1px solid var(--line);background:#0d0d0f}.scanner-bot-signal-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.scanner-bot-signal{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.scanner-bot-signal:nth-child(4n){border-right:0}.scanner-bot-signal.ready{background:linear-gradient(120deg,rgba(52,211,153,.08),transparent)}.scanner-bot-signal b,.scanner-bot-signal small,.scanner-bot-signal span{display:block}.scanner-bot-signal>div:first-child>b{font:600 11px "IBM Plex Mono"}.scanner-bot-signal small{margin-top:4px;color:var(--faint);font:8px "IBM Plex Mono"}.scanner-bot-signal>div:nth-child(2){align-self:end;display:flex;gap:6px;color:var(--faint);font:8px "IBM Plex Mono"}.scanner-bot-signal>div:nth-child(2) b{display:inline;color:var(--muted)}.scanner-bot-signal>strong{grid-row:1/3;grid-column:2;align-self:center;font:600 20px "IBM Plex Mono"}.scanner-bot-signal.ready>strong{color:var(--green)}@media(max-width:900px){.scanner-bot-signal-list{grid-template-columns:repeat(2,minmax(0,1fr))}.scanner-bot-signal:nth-child(2n){border-right:0}}@media(max-width:520px){.scanner-bot-signal-list{grid-template-columns:1fr}.scanner-bot-signal{border-right:0}.scanner-bot-signal:nth-last-child(-n+1){border-bottom:0}}

/* Scanner is a parent section; its two functions stay visibly grouped. */
.side-nav-group{display:grid;gap:3px;margin:2px 0}.side-nav-group-title{font-weight:600!important;color:var(--text)!important}.side-nav-submenu{display:grid;gap:2px;margin-left:13px;padding-left:9px;border-left:1px solid var(--line)}.side-nav .side-nav-submenu a{padding:7px 8px;font-size:11px}.side-nav .side-nav-submenu a span{font-size:11px}.side-nav-submenu a.active{background:#1b1b1f!important;color:var(--text)!important;box-shadow:inset 2px 0 0 var(--green)}
@media(max-width:760px){.side-nav-group{display:contents}.side-nav-submenu{display:contents;margin:0;padding:0;border:0}.side-nav-group-title{display:none!important}}

.funding-note{padding:12px 16px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#0d0d0f;font:500 10px "IBM Plex Mono";line-height:1.7}.funding-note b{color:var(--green)}.funding-note small{display:block;color:var(--faint);font:9px "IBM Plex Sans Thai"}.funding-signals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.funding-signal{min-width:0;padding:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.funding-signal:nth-child(4n){border-right:0}.funding-signal b,.funding-signal strong,.funding-signal small{display:block}.funding-signal b{font:600 11px "IBM Plex Mono"}.funding-signal strong{margin:6px 0;color:var(--amber);font:600 16px "IBM Plex Mono"}.funding-signal.ready{background:linear-gradient(120deg,rgba(52,211,153,.08),transparent)}.funding-signal.ready strong{color:var(--green)}.funding-signal small{color:var(--faint);font:8px "IBM Plex Mono";line-height:1.5}@media(max-width:900px){.funding-signals{grid-template-columns:repeat(2,minmax(0,1fr))}.funding-signal:nth-child(2n){border-right:0}}@media(max-width:520px){.funding-signals{grid-template-columns:1fr}.funding-signal{border-right:0}}

.metric-grid:has(#funding-next){grid-template-columns:repeat(5,minmax(0,1fr))}@media(max-width:1100px){.metric-grid:has(#funding-next){grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.metric-grid:has(#funding-next){grid-template-columns:1fr}}

/* Daily realized P&L */
.calendar-card{margin-bottom:12px}.calendar-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border-bottom:1px solid var(--line)}.calendar-head h2{margin:3px 0 0;font-size:17px}.calendar-actions{display:flex;gap:6px}.calendar-actions .btn{min-width:34px}.calendar-weekdays,.pnl-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.calendar-weekdays{padding:10px 12px 7px;color:var(--faint);font:600 9px "IBM Plex Mono";text-align:right}.calendar-weekdays span:first-child{text-align:left}.pnl-calendar{gap:1px;background:var(--line);border-top:1px solid var(--line)}.calendar-day{min-height:104px;background:var(--panel);padding:10px;display:flex;flex-direction:column;align-items:flex-end;gap:5px}.calendar-day>span{align-self:flex-start;color:var(--muted);font:500 10px "IBM Plex Mono"}.calendar-day strong{font:600 13px "IBM Plex Mono"}.calendar-day small{color:var(--faint);font-size:9px}.calendar-day em{display:none}.calendar-day.gain{background:linear-gradient(135deg,rgba(52,211,153,.16),var(--panel) 75%)}.calendar-day.gain strong{color:var(--green)}.calendar-day.loss{background:linear-gradient(135deg,rgba(251,113,133,.15),var(--panel) 75%)}.calendar-day.loss strong{color:var(--red)}.calendar-day.blank{background:#0d0d0f}.calendar-note{margin:0;padding:11px 16px;color:var(--faint);font-size:10px}.daily-ledger .bot-pnl{display:block;margin:2px 0;font:9px "IBM Plex Mono"}@media(max-width:700px){.calendar-head{align-items:flex-start;flex-direction:column}.calendar-actions{width:100%}.calendar-actions .btn{flex:1}.calendar-day{min-height:70px;padding:7px}.calendar-day strong{font-size:10px}.calendar-day small{font-size:8px}.calendar-weekdays{padding:8px 7px 6px}.daily-ledger td:last-child{min-width:160px}}

.daily-performance-page .performance-summary{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1100px){.daily-performance-page .performance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.daily-performance-page .performance-summary{grid-template-columns:1fr}}
.price-plan{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px;color:var(--faint);font:10px "IBM Plex Mono"}.price-plan span{padding:5px 7px;border:1px solid var(--line);border-radius:5px}.price-plan span:first-child b{color:var(--text)}.price-plan span:nth-child(2) b{color:var(--red)}.price-plan span:nth-child(3) b{color:var(--green)}
.focus-card{min-width:0}.focus-sides{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0 16px 16px}.focus-side{display:grid;gap:7px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font:12px "IBM Plex Mono"}.focus-side.long{border-color:rgba(52,211,153,.3)}.focus-side.short{border-color:rgba(251,113,133,.3)}.focus-side>b{font-size:13px}.focus-side.long>b{color:var(--green)}.focus-side.short>b{color:var(--red)}.focus-side small{color:var(--faint);line-height:1.5}@media(max-width:700px){.focus-sides{grid-template-columns:1fr}}
.dex-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:16px}.dex-controls{padding-bottom:16px}.dex-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 16px 16px}.dex-fields label{display:grid;gap:6px;color:var(--faint);font:10px "IBM Plex Mono";letter-spacing:.06em}.dex-fields input,.dex-fields select{width:100%;box-sizing:border-box;padding:10px;border:1px solid var(--line);border-radius:6px;background:#111114;color:var(--text);font:13px "IBM Plex Mono"}.dex-controls .btn{margin-left:16px}.dex-result{padding:22px}.dex-result>strong{display:block;margin:12px 0 2px;font:700 34px "IBM Plex Mono"}.dex-result>strong.profit{color:var(--green)}.dex-result>strong.loss{color:var(--red)}.dex-result>span{color:var(--faint);font:14px "IBM Plex Mono"}.dex-result>p{line-height:1.5;color:var(--faint)}.dex-metrics{display:grid;gap:10px;margin-top:20px}.dex-metrics span{display:flex;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px solid var(--line);font-size:11px;color:var(--faint)}.dex-metrics b{color:var(--text);font-family:"IBM Plex Mono"}.dex-flow{margin-top:16px}.dex-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0 16px 16px}.dex-steps article{position:relative;display:grid;gap:7px;min-height:95px;padding:12px;border:1px solid var(--line);background:var(--panel)}.dex-steps i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--green-bg);color:var(--green);font:700 11px "IBM Plex Mono";font-style:normal}.dex-steps b{font-size:13px}.dex-steps small,.dex-note{color:var(--faint);line-height:1.5}.dex-note{margin:0;padding:0 16px 16px;font-size:11px}@media(max-width:900px){.dex-layout{grid-template-columns:1fr}}@media(max-width:600px){.dex-fields{grid-template-columns:1fr}.dex-steps{grid-template-columns:1fr}.dex-result>strong{font-size:28px}}
.backtest-log{display:grid;gap:0}.backtest-log>div{display:grid;grid-template-columns:1fr auto;gap:6px;padding:13px 16px;border-top:1px solid var(--line);font:12px "IBM Plex Mono"}.backtest-log small{grid-column:1/-1;color:var(--faint)}
.dex-live-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.dex-quote,.dex-edge{padding:17px}.dex-quote>strong,.dex-edge>strong{display:block;margin:8px 0;font:700 24px "IBM Plex Mono"}.dex-quote>span,.dex-edge>span{display:block;font-size:12px}.dex-quote>small,.dex-edge>small{display:block;margin-top:7px;color:var(--faint);font:10px "IBM Plex Mono"}.dex-arrow{display:flex;align-items:center;justify-content:center;gap:9px;padding:15px;font:11px "IBM Plex Mono";color:var(--faint)}.dex-arrow b{color:var(--green);font-size:19px}.dex-arrow small{text-align:center;font-size:9px}.dex-bot-page .dex-result,.dex-bot-page .dex-bridge-state{min-height:230px}.dex-bridge-state{padding:22px}.dex-bridge-state>strong{display:block;margin:12px 0 4px;font-size:20px}.dex-bridge-state>p{min-height:38px;color:var(--faint);line-height:1.5}.dex-disclaimer{margin-top:16px;padding:13px 16px;color:var(--faint);font-size:11px;line-height:1.5}.dex-disclaimer b{color:var(--text)}@media(max-width:1100px){.dex-live-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.dex-live-grid{grid-template-columns:1fr}.dex-arrow{min-height:42px}.dex-bot-page .top-actions{flex-wrap:wrap}.dex-bot-page .top-actions .btn{flex:0 0 auto}}
.grid-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.grid-summary .card{padding:18px}.grid-summary strong{display:block;margin:8px 0;font:700 24px "IBM Plex Mono"}.grid-summary span,.grid-summary small{display:block;color:var(--faint);font-size:12px;line-height:1.55}.grid-warning{margin-bottom:16px;padding:14px 16px;color:#fbbf24;line-height:1.6}.grid-warning b{color:var(--text)}.grid-baskets{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 16px 16px}.grid-basket{border:1px solid var(--line);border-radius:8px;padding:14px;display:grid;grid-template-columns:1fr auto;gap:10px}.grid-basket.idle{opacity:.62}.grid-basket b,.grid-basket strong{font:700 16px "IBM Plex Mono"}.grid-basket small{display:block;margin-top:5px;color:var(--faint)}.grid-levels{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:7px}.grid-levels span{border:1px solid var(--line);border-radius:5px;padding:5px 7px;color:var(--faint);font:10px "IBM Plex Mono"}@media(max-width:1000px){.grid-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.grid-summary,.grid-baskets{grid-template-columns:1fr}}
