/* ORB Bootstrap 5 theme */
:root{
  --bg:#06111c;
  --s1:#0b1a2a;
  --s2:#102438;
  --s3:#163149;
  --s4:#1d3e5a;
  --b1:rgba(86,151,191,.22);
  --b2:rgba(105,171,211,.34);
  --b3:rgba(135,195,230,.45);
  --t1:#e9f5ff;
  --t2:#9bb8cb;
  --t3:#6d879b;
  --cyan:#2ab8e6;
  --green:#19d47b;
  --red:#ff4f69;
  --yellow:#f1c84b;
  --purple:#b57bff;
  --orange:#ff9a3c;
  --bg2:var(--s2);
  --bg3:var(--s3);
  --brd:var(--b1);
  --sb:190px;
  --bs-body-bg:var(--bg);
  --bs-body-color:var(--t1);
  --bs-border-color:var(--b1);
  --bs-card-bg:var(--s1);
  --bs-card-border-color:var(--b1);
}

html{scroll-behavior:smooth}
body.orb-app{
  min-height:100vh;
  background:
    radial-gradient(circle at 28% -8%,rgba(42,184,230,.08),transparent 26%),
    linear-gradient(180deg,#050d16 0%,#071522 100%);
  color:var(--t1);
  font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:14px;
  line-height:1.5;
}
body.orb-app,
body.orb-app *{overflow-wrap:anywhere}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--b2);border-radius:999px}

/* Layout */
.sidebar{
  inline-size:var(--sb);
  min-block-size:100vh;
  background:#091522;
  border-right:1px solid rgba(86,151,191,.18);
  position:fixed;
  inset-block-start:0;
  inset-inline-start:0;
  z-index:40;
}
.main-wrap{
  margin-inline-start:var(--sb);
  min-block-size:100vh;
}
.topbar{
  position:sticky;
  inset-block-start:0;
  z-index:30;
  min-block-size:56px;
  padding:.75rem 1rem;
  background:rgba(4,10,17,.96);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--b1);
}
.content{max-width:1920px}

/* Sidebar */
.sb-brand{
  padding:1rem .875rem .75rem;
  display:flex;
  align-items:center;
  gap:.625rem;
}
.sb-logo-mark{
  inline-size:2.25rem;
  block-size:2.25rem;
  border:1px solid rgba(42,184,230,.62);
  border-radius:.5rem;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:14px;
  font-weight:800;
  color:var(--cyan);
  flex-shrink:0;
}
.sb-brand-text{
  font-size:14px;
  font-weight:800;
  color:#e8f0ff;
  text-transform:uppercase;
  line-height:1.2;
}
.sb-brand-sub,.sb-section{display:none}
.sb-nav{flex:1;padding:.5rem 0;overflow-y:auto}
.sb-divider{block-size:1px;background:rgba(86,151,191,.14);margin:.625rem .875rem}
.sb-item{
  display:flex;
  align-items:center;
  gap:.625rem;
  padding:.625rem .75rem;
  margin:.125rem .625rem;
  color:#7f9eb6;
  font-size:14px;
  border-radius:.5rem;
  cursor:pointer;
  border-left:3px solid transparent;
  user-select:none;
  transition:background .15s,color .15s,border-color .15s;
}
.sb-item:hover{background:rgba(42,184,230,.08);color:#d4e7f4}
.sb-item.active{
  background:rgba(42,184,230,.14);
  color:#e8f0ff;
  font-weight:700;
  border-left-color:var(--cyan);
}
.sb-icon{inline-size:1.05rem;block-size:1.05rem;flex-shrink:0;opacity:.78}
.sb-item.active .sb-icon,.sb-item:hover .sb-icon{opacity:1}
.sb-foot{padding:.875rem;border-top:1px solid rgba(86,151,191,.16)}
.sb-conn,.sb-user-row{display:flex;align-items:center;gap:.5rem}
.sb-conn{margin-bottom:.75rem}
.dot,.market-dot,.dth-mdot,.ctrl-status-dot{
  inline-size:.55rem;
  block-size:.55rem;
  border-radius:50%;
  flex-shrink:0;
  background:var(--t3);
}
.dot.on,.ctrl-status.running .ctrl-status-dot{
  background:var(--green);
  box-shadow:0 0 10px rgba(25,212,123,.75);
  animation:blink 2.5s ease-in-out infinite;
}
.dot.off{background:var(--red)}
.dot.stale{
  background:var(--yellow);
  box-shadow:0 0 10px rgba(255,193,7,.35);
}
@keyframes blink{50%{box-shadow:0 0 18px rgba(25,212,123,.9)}}
.sb-conn-lbl,#clock,#clock .tz{font-size:14px;color:var(--t2)}
#clock{font-family:"Courier New",monospace;letter-spacing:.08em}
.sb-user-row{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(255,255,255,.08)}
.sb-logout-btn{
  margin-left:auto;
  color:var(--t2);
  background:rgba(255,51,102,.08);
  border:1px solid rgba(255,51,102,.3);
  border-radius:.45rem;
  padding:.35rem .65rem;
  font-size:14px;
  font-weight:700;
}
.sb-logout-btn:hover{color:var(--red);background:rgba(255,51,102,.18)}

/* Header */
.hdr-page-title{
  font-size:1.35rem;
  font-weight:900;
  color:#f2f8ff;
  letter-spacing:.01em;
  line-height:1.15;
}
.hamburger{inline-size:2.35rem;block-size:2.1rem;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:.24rem;flex-shrink:0;background:rgba(15,34,52,.62);border:1px solid rgba(105,171,211,.18);border-radius:.45rem;padding:.35rem .45rem;cursor:pointer;-webkit-tap-highlight-color:transparent}
.hamburger span{inline-size:1.25rem;block-size:2px;background:#b8d6e9;border-radius:2px;display:block}
.hamburger:hover{border-color:rgba(42,184,230,.45);background:rgba(42,184,230,.1)}
.hdr-pill{
  min-block-size:2.25rem;
  min-inline-size:8.5rem;
  padding:.35rem .75rem;
  border:1px solid rgba(105,171,211,.24);
  border-radius:.5rem;
  background:rgba(13,29,45,.82);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  color:#ddecf7;
  font-size:14px;
  font-weight:800;
  text-transform:uppercase;
}
.hdr-symbol{
  min-inline-size:4.75rem;
  letter-spacing:.05em;
}
.hdr-symbol::after{content:none}
.market-dot{background:currentColor;box-shadow:0 0 8px currentColor}
.market-open{color:var(--green)}
.market-closed{color:var(--red)}
.hdr-time-pill{font-family:"Courier New",monospace;font-size:1.1rem;text-transform:none}
.time-colon{display:inline-block;inline-size:.5rem;text-align:center;animation:colonTick 1s steps(1,end) infinite}
@keyframes colonTick{50%{opacity:.3}}
.hdr-tz{font-size:14px;color:var(--t2);margin-left:.4rem}

/* Bootstrap surfaces */
.card,.state-card,.mc,.pos-banner,.sig-card,.streak-card{
  background:linear-gradient(180deg,rgba(255,255,255,.028),rgba(255,255,255,0)) var(--s1);
  border:1px solid var(--b1);
  border-radius:.55rem;
  color:var(--t1);
  box-shadow:0 10px 28px rgba(0,0,0,.14);
}
.card{--bs-card-bg:var(--s1);--bs-card-border-color:var(--b1)}
.card-header,.card-hdr{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
  padding:.75rem 1rem;
  background:rgba(255,255,255,.018);
  border-bottom:1px solid var(--b1);
}
.card-title{
  margin:0;
  font-size:14px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#b8d5e6;
}
.card-body{padding:1rem}
.gap{margin-bottom:1rem}

.btn,.form-control,.form-select{font-size:14px}
.form-control,.form-select,.login-input,.si{
  background-color:var(--s2);
  border-color:var(--b1);
  color:var(--t1);
}
.form-control:focus,.form-select:focus,.login-input:focus,.si:focus{
  background-color:var(--s2);
  border-color:rgba(42,184,230,.58);
  color:var(--t1);
  box-shadow:0 0 0 .2rem rgba(42,184,230,.12);
}
.form-control::placeholder{color:var(--t3)}
.form-check-input{
  background-color:var(--s2);
  border-color:var(--b2);
  accent-color:var(--cyan);
}

/* Page headers */
.section-bar,.dash-term-hdr{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:1rem;
  padding:.85rem 1rem;
  border:1px solid var(--b1);
  border-radius:.55rem;
  background:rgba(4,10,18,.86);
}
.section-bar-title,.dth-title{font-size:1rem;font-weight:800;color:var(--t1)}
.dash-term-hdr{
  padding:1rem;
  background:linear-gradient(180deg,rgba(13,31,49,.92),rgba(4,10,18,.9));
  border-color:rgba(105,171,211,.2);
}
.dth-title{
  font-size:1.08rem;
  font-weight:900;
  letter-spacing:.02em;
}
.section-bar-line,.sig-day-line{flex:1;min-inline-size:3rem;block-size:1px;background:linear-gradient(90deg,var(--b2),transparent)}
.section-bar-badge,.dth-mode,.dash-pill,.edit-badge,.badge,.sig-status,.sig-tag{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  font-size:14px;
  font-weight:800;
  border-radius:999px;
  padding:.25rem .65rem;
}
.section-bar-badge,.dth-mode.back,.badge-back{
  color:var(--cyan);
  background:rgba(42,184,230,.1);
  border:1px solid rgba(42,184,230,.26);
}
.dth-l,.dth-r,.dth-kv{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.dth-r{
  opacity:1;
  gap:.65rem;
}
.dth-kv{
  flex-direction:column;
  align-items:center;
  gap:.12rem;
  min-inline-size:7.25rem;
  padding:.55rem .7rem;
  border:1px solid rgba(105,171,211,.18);
  border-radius:.55rem;
  background:rgba(15,34,52,.72);
  text-align:center;
}
.dth-kv .k{
  color:#8ca8bd;
  font-size:14px;
  font-weight:500;
  line-height:1.2;
}
.dth-kv .v,.dth-sym{
  font-family:"Courier New",monospace;
  font-size:15px;
  font-weight:500;
  line-height:1.15;
  color:#f1f7ff;
}
.dth-sym{
  display:inline-flex;
  align-items:center;
  min-block-size:2.35rem;
  padding:.35rem .85rem;
  border:1px solid rgba(42,184,230,.42);
  border-radius:999px;
  background:rgba(42,184,230,.14);
  color:var(--cyan);
  font-size:1.05rem;
  letter-spacing:.08em;
  box-shadow:0 0 0 1px rgba(42,184,230,.06) inset;
}
.dash-term-hdr .dth-mode{
  font-weight:500;
}
.dth-mode.live,.badge-live{
  color:var(--green);
  background:rgba(25,212,123,.1);
  border:1px solid rgba(25,212,123,.28);
}
.badge-replay{
  color:var(--yellow);
  background:rgba(241,200,75,.12);
  border:1px solid rgba(241,200,75,.3);
}

/* Dashboard cards */
.state-card,.mc,.pos-banner{padding:1rem;min-block-size:100%}
.state-label,.ml,.position-card-label,.heartbeat-label,.or-countdown-label,.or-line span,
.tile-row span,.ctrl-strat-row span,.pl,.cm .cml,.setting-key,.info-key,.sig-plbl{
  color:var(--t2);
  font-size:14px;
}
.dashboard-top-compact .card-title,
.dashboard-equity .card-title,
.dashboard-top-compact .state-label,
.dashboard-top-compact .ml,
.dashboard-top-compact .position-card-label,
.dashboard-top-compact .heartbeat-label,
.dashboard-top-compact .tile-row span,
.dashboard-top-compact .ctrl-strat-row span,
.dashboard-top-compact .pl{
  font-size:14px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#9fb8ca;
  line-height:1.2;
}
.dashboard-top-compact .bot-meta-row strong,
.dashboard-top-compact .bot-uptime strong,
.dashboard-top-compact .tile-row strong,
.dashboard-top-compact .heartbeat-val,
.dashboard-top-compact .ctrl-strat-row strong,
.dashboard-top-compact .pv{
  font-family:"Courier New",monospace;
  font-size:14px;
  font-weight:500;
  color:#eef7ff;
}
.bot-status-title{font-size:14px;font-weight:900;text-align:center;text-transform:uppercase;color:var(--green)}
.bot-status-title.stopped{color:var(--red)}
.bot-status-title.stale{color:var(--yellow)}
.bot-play{
  inline-size:3.5rem;
  block-size:3.5rem;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:.85rem auto;
  background:linear-gradient(180deg,#233446,#172434);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 10px 22px rgba(0,0,0,.22);
  animation:none;
}
.state-card.s-STOPPED .bot-play,
.state-card.s-STALE .bot-play,
.state-card.s-OFFLINE .bot-play{
  background:linear-gradient(180deg,#233446,#172434);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04),0 10px 22px rgba(0,0,0,.22);
  animation:none;
}
.state-card.s-STOPPED .state-icon,
.state-card.s-OFFLINE .state-icon{
  color:#7f96a8;
}
.state-card.s-STALE .bot-play{
  background:linear-gradient(180deg,#3a3426,#1b2630);
  border-color:rgba(255,193,7,.24);
  box-shadow:inset 0 0 0 1px rgba(255,193,7,.08),0 10px 22px rgba(0,0,0,.24);
}
.state-card.s-STALE .state-icon{
  color:#e2b84b;
}
.state-card.is-active .bot-play{
  background:radial-gradient(circle at 35% 28%,#e9fff1 0,#4ce884 30%,#159a51 100%);
  box-shadow:0 0 0 1px rgba(25,212,123,.35),0 0 26px rgba(25,212,123,.36);
  animation:liveGlow 2.8s ease-in-out infinite;
}
.state-card.is-active .state-icon{
  color:#eafff0;
  font-size:1.9rem;
}
@keyframes liveGlow{
  0%,100%{box-shadow:0 0 0 1px rgba(25,212,123,.32),0 0 20px rgba(25,212,123,.22)}
  50%{box-shadow:0 0 0 4px rgba(25,212,123,.08),0 0 34px rgba(25,212,123,.45)}
}
.state-icon{font-size:1.75rem;color:#eafff0;line-height:1}
.bot-meta,.tile-lines,.heartbeat-grid,.or-rows,.ctrl-strat{
  display:grid;
  gap:.5rem;
}
.bot-meta-row,.bot-uptime,.tile-row,.tile-footer,.heartbeat-item,.or-line,.ctrl-strat-row,
.setting-row,.info-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
}
.bot-meta-row strong,.bot-uptime strong,.tile-row strong,.heartbeat-val,.or-line strong,
.ctrl-strat-row strong,.setting-val,.info-val,.pv,.sig-pval,.cm .cmv{
  font-family:"Courier New",monospace;
  font-size:14px;
  font-weight:800;
  color:var(--t1);
}
.mc{padding:1rem}
.mc .ml{margin-bottom:.55rem;text-transform:uppercase;letter-spacing:.04em}
.mc .mv,.pnl-value{font-family:"Courier New",monospace;font-size:1.45rem;font-weight:900;line-height:1.15}
.mc .ms,.pnl-change,.pnl-currency,.tile-footer{font-size:14px;color:var(--t2)}
.pnl-main,.heartbeat-main,.heartbeat-age,.or-countdown,.pos-row,.pos-fields,.pos-f,.sig-prices,.sig-meta{
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
}
.pos-banner{display:none}
.dashboard-position{display:block;background:linear-gradient(135deg,rgba(255,255,255,.035),rgba(255,255,255,.012))}
.pos-banner:not(.flat){background:linear-gradient(135deg,rgba(34,211,125,.09),rgba(34,211,125,.025))}
.pos-banner.short{background:linear-gradient(135deg,rgba(255,85,114,.1),rgba(255,85,114,.025));border-color:rgba(255,85,114,.34)}
.pos-badge{font-size:1.25rem;font-weight:900;letter-spacing:.04em;color:var(--t3)}
.pos-badge.long,.green{color:var(--green)!important}
.pos-badge.short,.red{color:var(--red)!important}
.yellow{color:var(--yellow)!important}
.cyan{color:var(--cyan)!important}
.pos-fields{align-items:stretch}
.pos-f{justify-content:space-between;flex:1 1 10rem}
.heartbeat-body,.or-compact{padding:1rem}
.heartbeat-time,.or-countdown-value{font-family:"Courier New",monospace;font-size:1.45rem;font-weight:900}
.heartbeat-time{color:#eef7ff}
.heartbeat-time.fresh,.or-countdown-value{color:var(--green)}
.heartbeat-time.stale{color:var(--yellow)}
.heartbeat-time.offline{color:var(--t3)}
.heartbeat-et{font-weight:900;color:var(--t2)}
.control-card .card-body{padding:0}
.ctrl-status{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.85rem;
  padding:.85rem 1rem;
  border-bottom:1px solid var(--b1);
  font-size:14px;
  font-weight:900;
  text-transform:uppercase;
  flex-wrap:wrap;
}
.ctrl-status-copy{
  display:flex;
  flex-direction:column;
  gap:.15rem;
  min-inline-size:0;
}
.ctrl-status-kicker{
  color:#8faabe;
  font-size:14px;
  font-weight:800;
  letter-spacing:.04em;
}
.ctrl-status #ctrl-status-lbl{
  color:#eef7ff;
  font-size:1rem;
  line-height:1.15;
}
.ctrl-status.running #ctrl-status-lbl{color:var(--green)}
.ctrl-status.stale #ctrl-status-lbl{color:var(--yellow)}
.ctrl-status.stopped #ctrl-status-lbl,
.ctrl-status.offline #ctrl-status-lbl{color:#a6b4bf}
.ctrl-status-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-inline-size:6.5rem;
  min-block-size:2.25rem;
  padding:.35rem .9rem;
  border:1px solid rgba(145,165,181,.22);
  border-radius:.55rem;
  background:linear-gradient(180deg,rgba(145,165,181,.14),rgba(145,165,181,.055));
  color:#b9c7d1;
  font-family:"Courier New",monospace;
  font-size:14px;
  font-weight:900;
  letter-spacing:.08em;
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.2);
}
.ctrl-status.running .ctrl-status-badge{
  color:#dcfff0;
  background:linear-gradient(180deg,rgba(25,212,123,.34),rgba(25,212,123,.16));
  border-color:rgba(25,212,123,.54);
  box-shadow:0 0 18px rgba(25,212,123,.18),inset 0 -2px 0 rgba(0,0,0,.18);
}
.ctrl-status.stale .ctrl-status-badge{
  color:#ffe8a6;
  background:linear-gradient(180deg,rgba(241,200,75,.24),rgba(241,200,75,.1));
  border-color:rgba(241,200,75,.42);
}
.ctrl-status.stopped .ctrl-status-badge,
.ctrl-status.offline .ctrl-status-badge{
  color:#c2ccd4;
  background:linear-gradient(180deg,rgba(145,165,181,.13),rgba(145,165,181,.045));
  border-color:rgba(145,165,181,.2);
}
.ctrl-status.stopped .ctrl-status-dot,
.ctrl-status.offline .ctrl-status-dot{background:var(--t3)}
.ctrl-status.stale .ctrl-status-dot{
  background:var(--yellow);
  box-shadow:0 0 10px rgba(255,193,7,.35);
}
.ctrl-activity-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
  padding:.75rem 1rem;
  border-bottom:1px solid var(--b1);
  background:rgba(255,255,255,.012);
}
.ctrl-activity-row span{
  color:#9fb8ca;
  font-size:14px;
  font-weight:500;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.ctrl-activity-row strong{
  color:#e9f5ff;
  font-family:"Courier New",monospace;
  font-size:14px;
  font-weight:500;
  text-align:right;
}
.ctrl-strat{grid-template-columns:repeat(2,minmax(0,1fr));padding:.75rem 1rem;border-bottom:1px solid var(--b1)}
.ctrl-pad{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem;
  padding:1rem;
}
.cbtn{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.45rem;
  min-block-size:4.25rem;
  border:1px solid var(--b1);
  border-radius:.6rem;
  background:var(--s2);
  color:var(--t1);
  font-weight:800;
  text-transform:uppercase;
}
.cbtn:hover:not(:disabled){background:var(--s3);border-color:var(--b2);color:var(--t1)}
.cbtn.btn-active{border-color:rgba(42,184,230,.65);color:var(--cyan);box-shadow:0 0 18px rgba(42,184,230,.16)}
.cbtn.btn-dim,
.cbtn:disabled{
  opacity:.42;
  cursor:not-allowed;
  filter:grayscale(.35);
  box-shadow:none!important;
}
.cbtn.btn-dim:hover,
.cbtn:disabled:hover{
  background:rgba(16,36,56,.55);
  border-color:rgba(105,171,211,.16);
  color:#879aaa;
}
.cbtn.emergency{grid-column:1/-1;color:var(--red);background:rgba(255,51,102,.08);border-color:rgba(255,51,102,.34)}
.cbtn.emergency.btn-dim,
.cbtn.emergency:disabled{
  color:#9aa8b5;
  background:rgba(145,165,181,.055);
  border-color:rgba(145,165,181,.18);
}
.cmd-footer{border-top:1px solid var(--b1);padding:.65rem 1rem;color:var(--t2);font-size:14px;background:rgba(5,14,24,.3)}
.cmd-footer.disabled-reason{
  color:#b9c7d1;
  background:rgba(145,165,181,.055);
}
.dashboard-control-card{
  border-color:rgba(42,184,230,.34);
  box-shadow:0 12px 34px rgba(42,184,230,.08);
}
.dashboard-control-card .card-header{
  padding:.75rem 1rem;
}
.stats-card .ml{
  margin-bottom:.2rem;
}
.stats-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:.35rem;
}
.stats-period{
  color:#8faabe;
  font-size:14px;
  font-weight:500;
}
.stats-controls{
  display:grid;
  gap:.45rem;
  margin:.35rem 0 .55rem;
}
.stats-period-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:.35rem;
}
.stats-period-buttons button{
  min-block-size:2rem;
  padding:.32rem .65rem;
  border:1px solid rgba(105,171,211,.2);
  border-radius:.45rem;
  background:rgba(15,34,52,.58);
  color:#a9bdca;
  font-size:14px;
  font-weight:500;
  line-height:1;
}
.stats-period-buttons button:hover{
  border-color:rgba(42,184,230,.42);
  color:#e9f5ff;
  background:rgba(42,184,230,.12);
}
.stats-period-buttons button.active{
  border-color:rgba(42,184,230,.6);
  color:#f4fbff;
  background:rgba(42,184,230,.2);
  box-shadow:0 0 0 1px rgba(42,184,230,.08) inset;
}
.stats-date-input,
.stats-custom-range input{
  min-block-size:2.1rem;
  border:1px solid rgba(105,171,211,.2);
  border-radius:.45rem;
  background:rgba(5,14,24,.62);
  color:#e9f5ff;
  font-size:14px;
  font-weight:500;
  color-scheme:dark;
  padding:.28rem .5rem;
}
.stats-date-input{
  inline-size:min(100%,12rem);
}
.stats-custom-range{
  display:none;
  align-items:center;
  gap:.4rem;
  flex-wrap:wrap;
}
.stats-custom-range.active{
  display:flex;
}
.stats-custom-range span{
  color:#9fb8ca;
  font-size:14px;
  font-weight:500;
}
.stats-primary-value{
  color:#e9f5ff;
  font-family:"Courier New",monospace;
  font-size:1.45rem;
  font-weight:500;
  line-height:1.15;
}
.stats-note{
  display:inline-flex;
  align-items:center;
  min-block-size:1.55rem;
  margin-bottom:.5rem;
  padding:.18rem .55rem;
  border:1px solid rgba(105,171,211,.16);
  border-radius:999px;
  background:rgba(15,34,52,.56);
  color:#9fb8ca;
  font-size:14px;
  font-weight:500;
}
.stats-state{
  display:none;
  margin-bottom:.5rem;
  color:#9fb8ca;
  font-size:14px;
  font-weight:500;
}
.stats-state.active{
  display:block;
}
.stats-state.error{
  color:#ff9d9d;
}
.stats-lines{
  display:grid;
  gap:.45rem;
}
.stats-line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  min-block-size:1.85rem;
  padding:.25rem .45rem;
  border:1px solid rgba(105,171,211,.13);
  border-radius:.45rem;
  background:rgba(15,34,52,.42);
}
.stats-line span{
  color:#9fb8ca;
  font-size:15px;
  font-weight:500;
}
.stats-line strong{
  color:#eef7ff;
  font-family:"Courier New",monospace;
  font-size:15px;
  font-weight:500;
  text-align:right;
}
.stats-line.stats-net{
  border-color:rgba(42,184,230,.24);
  background:rgba(42,184,230,.07);
}
.dashboard-top-compact{
  --dashboard-top-gap:1rem;
}
.dashboard-top-status{
  display:flex;
}
.dashboard-status-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:auto;
  gap:var(--dashboard-top-gap);
  flex:1 1 auto;
  inline-size:100%;
  block-size:100%;
  min-inline-size:0;
}
.dash-status-cell{
  display:flex;
  min-inline-size:0;
}
.dash-status-cell > .card,
.dash-status-cell > .state-card,
.dash-status-cell > .mc,
.dash-status-cell > .pos-banner{
  inline-size:100%;
  min-block-size:0;
}
.dashboard-top-compact .state-card,
.dashboard-top-compact .pnl-card,
.dashboard-top-compact .dashboard-position{
  padding:.75rem;
}
.dashboard-top-compact .state-card,
.dashboard-top-compact .pnl-card,
.dashboard-top-compact .dashboard-position,
.dashboard-top-compact .heartbeat-card,
.dashboard-top-compact .dashboard-control-card{
  block-size:100%;
}
.dashboard-top-compact .state-card{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:.45rem;
}
.dashboard-top-compact .bot-play{
  inline-size:2.35rem;
  block-size:2.35rem;
  margin:.25rem auto;
  box-shadow:0 10px 22px rgba(25,212,123,.14);
}
.dashboard-top-compact .state-icon{
  font-size:1.15rem;
}
.dashboard-top-compact .state-card.is-active .bot-play{
  inline-size:2.55rem;
  block-size:2.55rem;
}
.dashboard-top-compact .state-card.is-active .state-icon{
  font-size:1.25rem;
}
.dashboard-top-compact .bot-meta,
.dashboard-top-compact .tile-lines,
.dashboard-top-compact .heartbeat-grid{
  gap:.4rem;
}
.dashboard-top-compact .mc .ml{
  margin-bottom:.35rem;
}
.dashboard-top-compact .pnl-main,
.dashboard-top-compact .heartbeat-main{
  gap:.5rem;
}
.dashboard-top-compact .pnl-value,
.dashboard-top-compact .heartbeat-time{
  font-size:1.22rem;
}
.dashboard-top-compact .pnl-change{
  margin-bottom:.35rem;
}
.dashboard-top-compact .tile-footer{
  margin-top:.35rem;
}
.dashboard-top-compact .pos-row{
  align-items:flex-start;
  justify-content:space-between;
  flex-direction:column;
}
.dashboard-top-compact .pos-head{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
  inline-size:100%;
  min-inline-size:0;
}
.dashboard-top-compact .pos-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-block-size:1.85rem;
  padding:.2rem .65rem;
  border:1px solid rgba(145,165,181,.32);
  border-radius:999px;
  background:rgba(145,165,181,.08);
  color:#a7b9c8;
  font-family:"Courier New",monospace;
  font-size:14px;
  font-weight:500;
  letter-spacing:.06em;
  line-height:1;
}
.dashboard-top-compact .pos-badge.long{
  background:rgba(25,212,123,.1);
  border-color:rgba(25,212,123,.34);
}
.dashboard-top-compact .pos-badge.short{
  background:rgba(255,51,102,.1);
  border-color:rgba(255,51,102,.34);
}
.dashboard-top-compact .position-instrument{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-block-size:1.85rem;
  padding:.2rem .55rem;
  border:1px solid rgba(42,184,230,.22);
  border-radius:.45rem;
  background:rgba(42,184,230,.07);
  font-family:"Courier New",monospace;
  font-size:14px;
  font-weight:500;
  color:#bceeff;
}
.dashboard-top-compact .pos-fields{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.5rem .7rem;
  inline-size:100%;
  flex:1 1 auto;
}
.dashboard-top-compact .pos-f{
  display:grid;
  grid-template-columns:minmax(5.6rem,.9fr) minmax(0,1fr);
  align-items:center;
  gap:.45rem;
  min-inline-size:0;
  padding:.45rem .55rem;
  border:1px solid rgba(105,171,211,.13);
  border-radius:.45rem;
  background:rgba(15,34,52,.42);
}
.dashboard-top-compact .pos-f .pl{
  min-inline-size:0;
  font-weight:500;
}
.dashboard-top-compact .pos-f .pv{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-block-size:1.85rem;
  inline-size:100%;
  min-inline-size:0;
  padding:.22rem .45rem;
  border:1px solid rgba(105,171,211,.2);
  border-radius:999px;
  background:rgba(5,14,24,.44);
  color:#eef7ff;
  font-family:inherit;
  font-size:14px;
  font-weight:500;
  line-height:1.1;
  text-align:center;
}
.dashboard-top-compact .heartbeat-card .card-header{
  padding:.65rem .75rem;
}
.dashboard-top-compact .heartbeat-body{
  padding:.75rem;
}
.dashboard-top-compact .heartbeat-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.5rem;
}
.dashboard-top-compact .heartbeat-item{
  display:grid;
  grid-template-columns:minmax(5.5rem,.9fr) minmax(0,1fr);
  align-items:center;
  gap:.45rem;
  min-inline-size:0;
  padding:.45rem .55rem;
  border:1px solid rgba(105,171,211,.13);
  border-radius:.45rem;
  background:rgba(15,34,52,.42);
}
.dashboard-top-compact .heartbeat-label{
  min-inline-size:0;
  font-weight:500;
}
.dashboard-top-compact .heartbeat-val{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-block-size:1.85rem;
  inline-size:100%;
  min-inline-size:0;
  padding:.22rem .45rem;
  border:1px solid rgba(105,171,211,.2);
  border-radius:999px;
  background:rgba(5,14,24,.44);
  color:#eef7ff;
  font-family:inherit;
  font-size:14px;
  font-weight:500;
  line-height:1.1;
  text-align:center;
}
.dashboard-top-compact .heartbeat-time{
  font-size:1.08rem;
  font-weight:500;
  letter-spacing:.01em;
}
.dashboard-top-control{
  display:flex;
}
.dashboard-top-control .bot-settings-card{
  inline-size:100%;
  border-color:rgba(145,165,181,.22);
  background:linear-gradient(180deg,rgba(145,165,181,.025),rgba(255,255,255,0)) var(--s1);
  box-shadow:0 10px 28px rgba(0,0,0,.14);
}
.dashboard-top-control .card-header{
  padding:.75rem 1rem;
}
.bot-settings-card .read-badge{
  display:inline-flex;
  align-items:center;
  min-block-size:1.55rem;
  padding:.18rem .55rem;
  border:1px solid rgba(145,165,181,.18);
  border-radius:999px;
  background:rgba(145,165,181,.08);
  color:#9fb8ca;
  font-size:14px;
  font-weight:500;
  line-height:1;
}
.pmt-preflight-card{
  border-color:rgba(145,165,181,.22);
  background:linear-gradient(180deg,rgba(145,165,181,.025),rgba(255,255,255,0)) var(--s1);
  box-shadow:0 10px 28px rgba(0,0,0,.14);
}
.pmt-preflight-card .card-header{
  padding:.75rem 1rem;
}
.pmt-preflight-card .read-badge{
  display:inline-flex;
  align-items:center;
  min-block-size:1.55rem;
  padding:.18rem .55rem;
  border:1px solid rgba(145,165,181,.18);
  border-radius:999px;
  background:rgba(145,165,181,.08);
  color:#9fb8ca;
  font-size:14px;
  font-weight:500;
  line-height:1;
}
.pmt-preflight-body{
  padding:.75rem 1rem 1rem;
}
.pmt-preflight-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.5rem;
}
.pmt-preflight-item{
  display:grid;
  grid-template-columns:minmax(6.2rem,.8fr) minmax(0,1fr);
  align-items:center;
  gap:.65rem;
  min-inline-size:0;
  padding:.48rem .55rem;
  border:1px solid rgba(105,171,211,.13);
  border-radius:.45rem;
  background:rgba(15,34,52,.42);
}
.pmt-preflight-item span{
  min-inline-size:0;
  color:#9fb8ca;
  font-size:14px;
  font-weight:500;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.pmt-preflight-item strong{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-block-size:1.85rem;
  inline-size:100%;
  min-inline-size:0;
  padding:.22rem .45rem;
  border:1px solid rgba(105,171,211,.2);
  border-radius:999px;
  background:rgba(5,14,24,.44);
  color:#eef7ff;
  font-family:inherit;
  font-size:14px;
  font-weight:500;
  line-height:1.1;
  text-align:center;
  overflow-wrap:anywhere;
}
.pmt-preflight-comment{
  grid-column:span 2;
}
.pmt-preflight-warning{
  margin-top:.65rem;
  padding:.6rem .75rem;
  border:1px solid rgba(255,193,7,.32);
  border-radius:.45rem;
  background:rgba(255,193,7,.08);
  color:#ffd36b;
  font-size:14px;
  line-height:1.35;
  overflow-wrap:anywhere;
}
.pmt-pref-badge.live,
.pmt-pref-badge.accepted,
.pmt-pref-badge.running{
  color:var(--green);
  border-color:rgba(25,212,123,.34);
  background:rgba(25,212,123,.1);
}
.pmt-pref-badge.replay,
.pmt-pref-badge.ignored,
.pmt-pref-badge.paused{
  color:var(--yellow);
  border-color:rgba(255,193,7,.34);
  background:rgba(255,193,7,.1);
}
.pmt-pref-badge.rejected,
.pmt-pref-badge.error{
  color:var(--red);
  border-color:rgba(255,51,102,.34);
  background:rgba(255,51,102,.1);
}
.pmt-pref-badge.unknown{
  color:#a7b9c8;
  border-color:rgba(145,165,181,.28);
  background:rgba(145,165,181,.08);
}
.bot-settings-body{
  padding:.75rem 1rem 1rem;
}
.bot-settings-mode{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
  margin-bottom:.75rem;
  padding:.75rem;
  border:1px solid rgba(42,184,230,.24);
  border-radius:.55rem;
  background:rgba(42,184,230,.07);
}
.bot-settings-mode span,
.botset-row span{
  color:#9fb8ca;
  font-size:14px;
  font-weight:500;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.bot-settings-mode strong,
.botset-row strong{
  color:#eef7ff;
  font-family:inherit;
  font-size:14px;
  font-weight:500;
  text-align:center;
}
.bot-settings-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.5rem;
}
.botset-row{
  display:grid;
  grid-template-columns:minmax(5.15rem,.76fr) minmax(7.25rem,1fr);
  align-items:center;
  gap:.65rem;
  min-inline-size:0;
  padding:.48rem .55rem;
  border:1px solid rgba(105,171,211,.13);
  border-radius:.45rem;
  background:rgba(15,34,52,.42);
}
.botset-placeholder{
  min-block-size:3.25rem;
}
.botset-row span{
  min-inline-size:0;
}
.bot-settings-mode strong,
.botset-row strong{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-block-size:1.85rem;
  inline-size:100%;
  min-inline-size:0;
  padding:.22rem .45rem;
  border:1px solid rgba(105,171,211,.2);
  border-radius:999px;
  background:rgba(5,14,24,.44);
  overflow-wrap:anywhere;
  line-height:1.1;
}
#botset-strategy{
  color:var(--cyan);
  border-color:rgba(42,184,230,.48);
  background:rgba(42,184,230,.13);
}
#botset-sltp,
#botset-session,
#botset-or-window{
  white-space:nowrap;
}
#botset-session{
  min-inline-size:0;
  max-inline-size:100%;
  box-sizing:border-box;
  padding-inline:.34rem;
}
#botset-blocked-days,
#botset-entry-blocks{
  min-block-size:2.85rem;
  inline-size:100%;
  max-inline-size:100%;
  box-sizing:border-box;
  padding:.28rem .45rem;
  border-radius:999px;
  line-height:1.18;
  text-align:center;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}
#botset-entry-blocks{
  flex-direction:column;
  align-items:center;
  gap:.16rem;
  block-size:auto;
  min-block-size:2.85rem;
  border-radius:.7rem;
}
#botset-entry-blocks .entry-block-line{
  display:block;
  inline-size:100%;
  white-space:nowrap;
  text-align:center;
  font-variant-numeric:tabular-nums;
}
#botset-blocked-days{
  white-space:nowrap;
}
.botset-block-row,
.botset-entry-row{
  grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);
  min-block-size:4.25rem;
  align-items:center;
}
.botset-wide{
  grid-column:1 / -1;
  grid-template-columns:minmax(7rem,.32fr) minmax(0,1fr);
}
.bot-settings-mode strong{
  inline-size:auto;
  min-inline-size:7rem;
  color:#f4fbff;
  border-color:rgba(42,184,230,.5);
  background:rgba(42,184,230,.16);
}
.bot-settings-mode strong.mode-live{
  color:#dcfff0;
  border-color:rgba(25,212,123,.54);
  background:rgba(25,212,123,.18);
  box-shadow:0 0 18px rgba(25,212,123,.12);
}
.bot-settings-mode strong.mode-replay{
  color:#ffe8a6;
  border-color:rgba(241,200,75,.4);
  background:rgba(241,200,75,.12);
}
.bot-settings-or-runtime{
  grid-column:1 / -1;
}
.bot-settings-or-runtime .or-kv-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.5rem;
  padding:0;
}
.bot-settings-or-runtime .or-kv{
  min-block-size:3.25rem;
  display:grid;
  grid-template-columns:minmax(5.15rem,.76fr) minmax(0,1fr);
  align-items:center;
  gap:.55rem;
  padding:.48rem .55rem;
}
.bot-settings-or-runtime .or-kv span{
  font-size:14px;
  font-weight:500;
}
.bot-settings-or-runtime .or-kv strong{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-block-size:1.85rem;
  inline-size:100%;
  min-inline-size:0;
  padding:.22rem .45rem;
  border:1px solid rgba(105,171,211,.2);
  border-radius:999px;
  background:rgba(5,14,24,.44);
  font-family:inherit;
  font-size:14px;
  font-weight:500;
  line-height:1.1;
  text-align:center;
}
.or-kv-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.65rem;
  padding:.85rem 1rem;
}
.or-kv{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:.3rem;
  min-block-size:4rem;
  padding:.65rem .75rem;
  border:1px solid rgba(105,171,211,.15);
  border-radius:.5rem;
  background:rgba(15,34,52,.48);
}
.or-kv span{
  color:#9fb8ca;
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.or-kv strong{
  color:#eef7ff;
  font-family:"Courier New",monospace;
  font-size:14px;
  font-weight:900;
}
.dashboard-workgrid{
  margin-top:.25rem;
}

/* Tables and toolbars */
.tbl-wrap{overflow-x:auto}
.table{
  --bs-table-bg:transparent;
  --bs-table-color:var(--t1);
  --bs-table-border-color:var(--b1);
  --bs-table-hover-bg:rgba(42,184,230,.06);
  font-size:14px;
}
.table th{
  color:var(--t2);
  font-size:14px;
  font-weight:800;
  text-transform:uppercase;
  white-space:nowrap;
}
.table td{font-family:"Courier New",monospace;vertical-align:middle}
.t-empty td{padding:1rem!important}
.tmute{color:var(--t3)!important}
.tlong,.tpos{color:var(--green)!important}
.tshort,.tneg{color:var(--red)!important}
.tTP{color:var(--green)!important}.tSL{color:var(--red)!important}.tFORCE_EXIT{color:var(--yellow)!important}
.tb input,.tb select{max-inline-size:13rem}
.tbtn,.page-btn,.cal-nav .btn{border-color:var(--b2);color:var(--cyan);font-weight:700}
.tbtn:hover,.page-btn:hover,.cal-nav .btn:hover{background:rgba(42,184,230,.12);border-color:var(--cyan);color:var(--cyan)}
.trade-blotter-card{
  box-shadow:0 10px 28px rgba(0,0,0,.14);
}
.trade-summary-strip{
  display:flex;
  align-items:center;
  gap:.65rem;
  flex-wrap:wrap;
  padding:.85rem 1rem;
  border-bottom:1px solid var(--b1);
  background:linear-gradient(180deg,rgba(42,184,230,.04),rgba(255,255,255,.006));
}
.trade-summary-strip span{
  display:inline-flex;
  align-items:center;
  min-block-size:2rem;
  padding:.28rem .65rem;
  border:1px solid rgba(105,171,211,.16);
  border-radius:.55rem;
  background:rgba(15,34,52,.62);
  color:#a9bdcd!important;
  font-size:14px!important;
  font-weight:800;
  line-height:1.2;
}
.trade-summary-strip span.green,
.trade-summary-strip .green{
  color:var(--green)!important;
  border-color:rgba(25,212,123,.24);
  background:rgba(25,212,123,.08);
}
.trade-summary-strip span.red,
.trade-summary-strip .red{
  color:var(--red)!important;
  border-color:rgba(255,51,102,.24);
  background:rgba(255,51,102,.08);
}
.trade-filter-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.8rem;
  flex-wrap:wrap;
  padding:.75rem 1rem;
  border-bottom:1px solid var(--b1);
  background:rgba(255,255,255,.012);
}
.trade-filter-title{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
}
.trade-filter-title .read-badge,
.sig-context-card .read-badge{
  display:inline-flex;
  align-items:center;
  min-block-size:1.55rem;
  padding:.18rem .55rem;
  border:1px solid rgba(145,165,181,.18);
  border-radius:999px;
  background:rgba(145,165,181,.08);
  color:#9fb8ca;
  font-size:14px;
  font-weight:900;
  line-height:1;
}
.trade-filter-controls{
  justify-content:flex-end;
}
#page-trades .form-control,
#page-trades .form-select{
  min-block-size:2.1rem;
  border-radius:.45rem;
}
#page-trades .tbtn{
  min-block-size:2.1rem;
  border-radius:.45rem;
}
#page-signals .form-control,
#page-signals .form-select{
  min-block-size:2.1rem;
  border-radius:.45rem;
}
#page-signals .tbtn{
  min-block-size:2.1rem;
  border-radius:.45rem;
}
.trade-table-wrap{
  background:rgba(5,14,24,.35);
}
.trade-table{
  font-variant-numeric:tabular-nums;
}
.trade-table thead th{
  padding:.7rem .75rem;
  border-bottom:1px solid rgba(105,171,211,.22);
  background:rgba(9,22,35,.88);
  color:#a8c2d4;
  letter-spacing:.04em;
}
.trade-table tbody td{
  padding:.65rem .75rem;
  border-color:rgba(255,255,255,.045);
  line-height:1.35;
}
.trade-table th:nth-child(4),
.trade-table th:nth-child(5),
.trade-table th:nth-child(6),
.trade-table th:nth-child(7),
.trade-table th:nth-child(8),
.trade-table th:nth-child(9),
.trade-table th:nth-child(12),
.trade-table td:nth-child(4),
.trade-table td:nth-child(5),
.trade-table td:nth-child(6),
.trade-table td:nth-child(7),
.trade-table td:nth-child(8),
.trade-table td:nth-child(9),
.trade-table td:nth-child(12){
  text-align:right;
}
.trade-table th:nth-child(3),
.trade-table th:nth-child(10),
.trade-table td:nth-child(3),
.trade-table td:nth-child(10){
  text-align:center;
}
.trade-table td:nth-child(13){
  max-inline-size:13rem;
  white-space:nowrap;
}
.trade-table .tlong,
.trade-table .tshort,
.trade-table .tTP,
.trade-table .tSL,
.trade-table .tFORCE_EXIT{
  font-weight:900;
}
.trade-table .tpos,
.trade-table .tneg{
  font-weight:900;
}
.trade-pagination{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.45rem;
  flex-wrap:wrap;
  padding:.75rem 1rem;
  border-top:1px solid var(--b1);
}
.page-btn{
  min-block-size:2rem;
  min-inline-size:2rem;
  border:1px solid var(--b2);
  border-radius:.45rem;
  background:rgba(42,184,230,.06);
  color:var(--cyan);
}
.page-btn.active{
  background:rgba(42,184,230,.18);
  border-color:rgba(42,184,230,.5);
  color:#e6f8ff;
}
.page-info{
  color:var(--t2);
  font-size:14px;
}

/* Logs and generated states */
.mini-log,.log-body{
  overflow-y:auto;
  padding:1rem;
  font-family:"Courier New",monospace;
  font-size:14px;
  line-height:1.65;
  background:#071522;
  border-radius:0 0 .55rem .55rem;
}
.mini-log{max-block-size:30rem;min-block-size:18rem}
.log-body{max-block-size:calc(100vh - 18rem);min-block-size:18rem;resize:vertical}
.ll{color:var(--t2);white-space:pre-wrap;word-break:break-word}
.ll.err{color:#ff6688}.ll.warn{color:var(--orange)}.ll.exec{color:#ffe066}
.ll.strat{color:#5ce0ff}.ll.state{color:#c084fc}
.log-empty,.chart-empty,.sig-empty{color:var(--t3);font-style:italic;text-align:center;padding:2rem}
.spinner{
  display:inline-block;
  inline-size:1.2rem;
  block-size:1.2rem;
  border:2px solid var(--b2);
  border-top-color:var(--cyan);
  border-radius:50%;
  animation:spin .7s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-state,.empty-state{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:2rem;color:var(--t2);font-size:14px}
.empty-state{flex-direction:column;text-align:center}
.es-icon{border:1px solid var(--b1);border-radius:.4rem;padding:.25rem .65rem;font-family:"Courier New",monospace;font-size:14px;font-weight:800;color:var(--t2)}
.es-title{font-size:14px;font-weight:700;color:var(--t2)}
.es-sub{font-size:14px;color:var(--t3);max-inline-size:24rem}

/* Charts and analytics */
.kpi-row{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));
  gap:1rem;
}
.grid-3{margin-bottom:1rem}
.chart-meta{display:flex;gap:1rem;flex-wrap:wrap}
.chart-wrap{
  min-block-size:10rem;
  color:var(--t2);
}
.chart-wrap svg{
  width:100%!important;
  height:auto!important;
  min-height:inherit;
  display:block;
}
.eq-chart{min-block-size:12rem}
.dd-chart{min-block-size:5rem}
.wday-chart{min-block-size:10rem}
.equity-stack{display:flex;flex-direction:column;gap:.75rem}
.dashboard-equity .card-header{
  padding:.65rem 1rem;
}
.dashboard-equity-meta{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.75rem;
  flex-wrap:wrap;
}
.chart-unit{
  display:inline-flex;
  align-items:center;
  min-block-size:1.75rem;
  padding:.2rem .55rem;
  border:1px solid rgba(42,184,230,.22);
  border-radius:999px;
  background:rgba(42,184,230,.07);
  color:#a9def4;
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
}
.dashboard-equity-body{
  padding:.65rem 1rem .85rem!important;
}
.dashboard-equity .chart-wrap{
  min-height:8rem!important;
  min-block-size:8rem!important;
  background:rgba(5,14,24,.28);
  border:1px solid rgba(105,171,211,.12);
  border-radius:.45rem;
}
.dashboard-equity .chart-empty{
  inline-size:100%;
  padding:1rem;
}
.equity-day-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));
  gap:.65rem;
  inline-size:100%;
  padding:.65rem;
}
.equity-day-card{
  display:grid;
  gap:.45rem;
  min-block-size:7.25rem;
  padding:.75rem;
  border:1px solid rgba(105,171,211,.16);
  border-radius:.55rem;
  background:rgba(16,36,56,.58);
}
.equity-day-card.positive{
  border-color:rgba(25,212,123,.28);
  background:linear-gradient(180deg,rgba(25,212,123,.09),rgba(16,36,56,.62));
}
.equity-day-card.negative{
  border-color:rgba(255,85,114,.3);
  background:linear-gradient(180deg,rgba(255,85,114,.1),rgba(16,36,56,.62));
}
.equity-day-card.neutral{
  border-color:rgba(145,165,181,.22);
  background:rgba(16,36,56,.5);
}
.equity-day-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.5rem;
}
.equity-day-head span,
.equity-day-sub{
  color:#9fb8ca;
  font-size:14px;
  font-weight:800;
}
.equity-day-head strong{
  color:#eef7ff;
  font-size:14px;
  font-weight:900;
}
.equity-day-pnl{
  font-family:"Courier New",monospace;
  font-size:clamp(1.15rem,2vw,1.55rem);
  font-weight:900;
  line-height:1.1;
}
.equity-day-card.positive .equity-day-pnl{color:var(--green)}
.equity-day-card.negative .equity-day-pnl{color:var(--red)}
.equity-day-card.neutral .equity-day-pnl{color:#eef7ff}
.equity-day-meter{
  overflow:hidden;
  block-size:.38rem;
  border-radius:999px;
  background:rgba(255,255,255,.08);
}
.equity-day-meter span{
  display:block;
  block-size:100%;
  border-radius:inherit;
  background:#8faabe;
}
.equity-day-card.positive .equity-day-meter span{background:var(--green)}
.equity-day-card.negative .equity-day-meter span{background:var(--red)}
.equity-day-card.neutral .equity-day-meter span{background:#8faabe}
.analytics-kpi-row{
  gap:.75rem;
}
#page-analytics .analytics-kpi-row .mc{
  padding:.85rem;
  box-shadow:0 8px 22px rgba(0,0,0,.12);
}
#page-analytics .analytics-kpi-row .ml{
  margin-bottom:.35rem;
  color:#9fb8ca;
  font-size:14px;
  font-weight:900;
}
#page-analytics .analytics-kpi-row .mv{
  font-size:1.28rem;
}
#page-analytics .analytics-kpi-row .ms{
  color:var(--t2);
  font-size:14px;
}
.analytics-chart-card,
.analytics-detail-card,
.analytics-calendar-card{
  box-shadow:0 10px 28px rgba(0,0,0,.14);
}
.analytics-chart-card .card-header,
.analytics-detail-card .card-header,
.analytics-calendar-card .card-header{
  padding:.65rem 1rem;
}
.analytics-chart-body{
  padding:.75rem 1rem!important;
}
.analytics-equity-card .eq-chart{
  min-block-size:10rem;
}
.analytics-equity-card .dd-chart{
  min-block-size:4.5rem;
}
#page-analytics .chart-wrap{
  border-radius:.45rem;
}
#page-analytics .chart-empty{
  padding:1rem;
}
.analytics-detail-card .card-body{
  padding:.75rem 1rem;
}
.analytics-calendar-card .card-body{
  padding:.75rem 1rem 1rem;
}
.reason-bars{padding:.25rem 0}
.reason-row{display:flex;align-items:center;gap:.6rem;margin-bottom:.55rem;flex-wrap:wrap}
.reason-lbl,.reason-count{font-size:14px;color:var(--t2)}
.reason-lbl{flex:0 1 8rem;text-align:right;font-weight:800}
.reason-bar-wrap{flex:1 1 12rem;min-block-size:1.75rem;background:var(--s2);border-radius:.45rem;border:1px solid var(--b1)}
.reason-bar{min-block-size:1.75rem;border-radius:.45rem;display:flex;align-items:center;padding:0 .75rem;font-size:14px;font-weight:800;font-family:"Courier New",monospace;transition:width .6s ease}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem}
.cal-hdr-day{font-size:14px;color:#9fb8ca;text-align:center;text-transform:uppercase;padding-bottom:.45rem;font-weight:800}
.cal-cell{
  aspect-ratio:1;
  border-radius:.45rem;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.2rem;
  font-size:14px;
  background:var(--s2);
  border:1px solid var(--b1);
}
.cal-cell .cd,.cal-cell .cv{font-size:14px;line-height:1.2}
.cal-cell .cd{color:var(--t3)}
.cal-cell .cv{font-family:"Courier New",monospace;font-weight:800}
.cal-cell.pos{background:rgba(25,212,123,.12);border-color:rgba(25,212,123,.28)}
.cal-cell.neg{background:rgba(255,79,105,.12);border-color:rgba(255,79,105,.28)}
.cal-cell.empty{background:transparent;border-color:transparent}
.cal-nav{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.cal-month-lbl{font-size:14px;font-weight:700;min-inline-size:8rem;text-align:center}
.streak-row{display:flex;gap:.6rem;flex-wrap:wrap}
.streak-card{padding:.75rem;flex:1 1 8rem}
.streak-card .sl{font-size:14px;color:#9fb8ca;text-transform:uppercase;margin-bottom:.25rem;font-weight:800}
.streak-card .sv{font-size:1.15rem;font-weight:900;font-family:"Courier New",monospace}

/* Settings, account, backtest */
.settings-col{min-width:0}
.setting-row,.info-row{padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.05)}
.setting-row:last-child,.info-row:last-child{border-bottom:0}
.si-wrap{
  display:inline-flex;
  align-items:stretch;
  background:linear-gradient(180deg,rgba(20,47,69,.9),rgba(10,25,39,.95));
  border:1px solid rgba(105,171,211,.28);
  border-radius:.6rem;
  min-block-size:2.15rem;
  transition:border-color .2s,box-shadow .2s;
}
.si-wrap:focus-within{border-color:rgba(42,184,230,.58);box-shadow:0 0 0 .2rem rgba(42,184,230,.12)}
.si-btn{
  background:rgba(42,184,230,.09);
  border:0;
  color:#bfefff;
  cursor:pointer;
  padding:0 .7rem;
  display:flex;
  align-items:center;
  justify-content:center;
  min-inline-size:2rem;
  transition:background .15s,color .15s;
}
.si-btn:hover{color:#ffffff;background:rgba(42,184,230,.2)}
.si-btn svg{
  inline-size:.85rem;
  block-size:.85rem;
  stroke-width:2.3;
}
.si-wrap .si{
  border:0!important;
  border-inline:1px solid rgba(105,171,211,.2)!important;
  border-radius:0!important;
  background:rgba(5,14,24,.72)!important;
  color:#f2f8ff!important;
}
#page-settings input[type="number"]::-webkit-outer-spin-button,
#page-settings input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
#page-settings input[type="number"]{
  appearance:textfield;
  -moz-appearance:textfield;
}
.si{min-inline-size:5rem;text-align:center;font-weight:800}
.save-btn{font-weight:800;color:#06111c}
.warn-card{background:rgba(255,51,102,.05);border-color:rgba(255,51,102,.24)!important}
.warn-card .card-title{color:var(--red)}
.settings-restart-notice{
  margin-bottom:1rem;
  background:linear-gradient(135deg,rgba(255,79,105,.12),rgba(255,79,105,.035)) var(--s1);
  border-color:rgba(255,79,105,.38)!important;
}
.settings-restart-notice .card-body{
  color:#c4d3df!important;
}
.settings-restart-notice code{
  background:rgba(42,184,230,.08);
  border:1px solid rgba(42,184,230,.18);
  border-radius:.35rem;
  padding:.05rem .3rem;
}
#page-settings{
  padding-top:.1rem;
  padding-bottom:4.75rem;
}
.settings-layout{
  --bs-gutter-y:.75rem;
}
#page-settings .settings-restart-notice{
  margin-bottom:.75rem;
}
#page-settings .settings-restart-notice .card-header{
  padding:.65rem .9rem;
}
#page-settings .settings-restart-notice .card-body{
  padding:.75rem .9rem!important;
  line-height:1.55!important;
}
.settings-card{
  box-shadow:0 8px 22px rgba(0,0,0,.12);
}
.settings-card .card-header{
  padding:.65rem .9rem;
}
.settings-card .card-body{
  padding:.35rem .9rem;
}
.settings-card .card-title{
  color:#b8d5e6;
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
}
.settings-card-editable{
  border-color:rgba(42,184,230,.2);
  background:linear-gradient(180deg,rgba(42,184,230,.025),rgba(255,255,255,0)) var(--s1);
}
.settings-mode-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.65rem;
  padding:.75rem .9rem!important;
}
.settings-mode-panel{
  padding:.65rem;
  border:1px solid rgba(105,171,211,.14);
  border-radius:.55rem;
  background:rgba(255,255,255,.014);
}
.settings-mode-panel .setting-row{
  justify-content:center;
  text-align:center;
}
.settings-mode-panel .si{
  min-inline-size:9rem;
}
.settings-placeholder-panel{
  border-color:rgba(241,200,75,.18);
  background:rgba(241,200,75,.035);
}
.settings-placeholder-select{
  min-inline-size:7rem;
}
.settings-param-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:.75rem;
  align-items:start;
}
.settings-param-grid > .settings-card{
  min-block-size:auto;
  display:flex;
  flex-direction:column;
}
.settings-param-grid > .settings-card > .card-body{
  flex:0 1 auto;
}
.settings-strategy-card .card-body{
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:0;
  padding:.35rem .9rem!important;
  --strategy-control-width:10.5rem;
}
.settings-strategy-card .setting-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  min-block-size:2.55rem;
}
.settings-strategy-card .setting-key{
  text-align:left;
}
.settings-strategy-card .si{
  text-align:center;
  text-align-last:center;
}
#page-settings .settings-strategy-card .si-wrap{
  inline-size:var(--strategy-control-width);
  box-sizing:border-box;
}
#page-settings .settings-strategy-card .si-wrap .si{
  flex:1 1 auto;
  inline-size:auto;
  min-inline-size:0;
}
#page-settings .settings-strategy-card .settings-compact-control{
  display:flex;
  grid-template-columns:none;
  justify-content:space-between;
}
#page-settings .settings-strategy-card .settings-compact-control .si{
  inline-size:var(--strategy-control-width);
  min-block-size:2.15rem;
  block-size:2.15rem;
  box-sizing:border-box;
}
.settings-card-readonly{
  border-color:rgba(145,165,181,.16);
  background:linear-gradient(180deg,rgba(145,165,181,.018),rgba(255,255,255,0)) rgba(9,22,35,.88);
}
.settings-card-readonly .card-header{
  background:rgba(255,255,255,.01);
}
.settings-card-readonly .card-title{
  color:#9fb8ca;
}
#page-settings .edit-badge,
#page-settings .read-badge{
  display:inline-flex;
  align-items:center;
  min-block-size:1.55rem;
  padding:.18rem .55rem;
  border-radius:999px;
  font-size:14px;
  font-weight:900;
  line-height:1;
}
#page-settings .read-badge{
  color:#9fb8ca;
  background:rgba(145,165,181,.08);
  border:1px solid rgba(145,165,181,.18);
}
#page-settings .setting-row{
  padding:.48rem 0;
  gap:.75rem;
}
#page-settings .setting-row-compact{
  padding:.38rem 0;
}
#page-settings .setting-key{
  flex:1 1 14rem;
  font-size:14px;
  font-weight:750;
  color:#9fb8ca;
  line-height:1.25;
}
#page-settings .setting-val{
  font-family:"Courier New",monospace;
  font-size:14px;
  font-weight:900;
  color:#e9f3ff;
  text-align:right;
}
#page-settings .form-control,
#page-settings .form-select,
#page-settings .si{
  min-block-size:2rem;
  border-radius:.45rem;
  font-size:14px;
}
#page-settings .form-select{
  appearance:none;
  -webkit-appearance:none;
  background-color:var(--s2)!important;
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='%239fb8ca' d='M4 6l4 4 4-4z'/%3e%3c/svg%3e")!important;
  background-repeat:no-repeat!important;
  background-position:right .62rem center!important;
  background-size:16px 16px!important;
  padding-right:2rem!important;
  text-align:center;
  text-align-last:center;
}
#page-settings .si{
  min-inline-size:5.75rem;
}
#page-settings .settings-compact-control{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(7rem,9rem);
  align-items:center;
  gap:.65rem;
}
#page-settings .settings-compact-control .setting-key{
  flex:initial;
  min-inline-size:0;
}
#page-settings .settings-compact-control .si{
  justify-self:end;
  inline-size:9rem;
  min-inline-size:0;
  max-inline-size:100%;
}
.settings-filter-body{
  display:grid;
  grid-template-columns:1fr;
  align-items:stretch;
  gap:.55rem;
  padding:.65rem .85rem!important;
}
.settings-subsection{
  display:flex;
  flex-direction:column;
  padding:.55rem .6rem;
  border:1px solid rgba(105,171,211,.14);
  border-radius:.55rem;
  background:rgba(255,255,255,.014);
}
.settings-subsection-title{
  margin-bottom:.25rem;
  color:#d6e8f5;
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.settings-checkline,
.settings-day-chip{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  color:#a9bdcd;
  font-size:14px;
  cursor:pointer;
}
.settings-checkline{
  justify-content:flex-end;
  flex:0 1 auto;
  min-inline-size:14rem;
}
.settings-check-grid{
  display:flex;
  gap:.45rem;
  flex-wrap:wrap;
  margin-top:.45rem;
}
.settings-day-chip{
  min-block-size:2rem;
  padding:.28rem .55rem;
  border:1px solid rgba(145,165,181,.17);
  border-radius:999px;
  background:rgba(145,165,181,.055);
}
.setting-help{
  margin-top:.35rem;
  color:var(--t3);
  font-size:14px;
  line-height:1.35;
}
.settings-filter-actions{
  display:flex;
  align-items:center;
  gap:.75rem;
  flex-wrap:wrap;
}
.settings-small-btn{
  min-block-size:2rem;
  padding:.3rem .7rem;
  border:1px solid rgba(42,184,230,.24);
  border-radius:.45rem;
  background:rgba(42,184,230,.08);
  color:#bfefff;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
}
.settings-small-btn:hover{
  background:rgba(42,184,230,.14);
  border-color:rgba(42,184,230,.38);
}
#ebt-list{
  gap:.45rem!important;
  margin-bottom:.55rem!important;
}
#ebt-list > div{
  flex-wrap:wrap;
  gap:.5rem!important;
  padding:.45rem .5rem;
  border:1px solid rgba(145,165,181,.14);
  border-radius:.45rem;
  background:rgba(8,20,33,.55);
}
#ebt-list input[type="time"].si{
  inline-size:7rem!important;
  min-inline-size:7rem;
}
#ebt-list button{
  min-block-size:1.9rem;
  padding:.2rem .6rem!important;
  border-radius:.4rem!important;
  font-size:14px!important;
  font-weight:900;
}
.settings-save-row{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.75rem;
  flex-wrap:wrap;
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:80;
  inline-size:min(100%,24rem);
  margin:0;
  padding:.55rem;
  border:1px solid rgba(42,184,230,.24);
  border-radius:.65rem;
  background:rgba(7,21,34,.92);
  box-shadow:0 12px 34px rgba(0,0,0,.34);
  backdrop-filter:blur(10px);
}
.settings-save-row #save-status{
  min-block-size:1.8rem;
  display:inline-flex;
  align-items:center;
}
.settings-save-row .save-btn{
  min-block-size:2.25rem;
  padding:.45rem 1rem;
  border-radius:.5rem;
}
.settings-path-pill{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  max-inline-size:100%;
  padding:.45rem .6rem;
  border:1px solid rgba(145,165,181,.2);
  border-radius:.5rem;
  background:rgba(5,14,24,.55);
  color:#dbeaf5!important;
  text-align:left!important;
  line-height:1.35;
}
.settings-source-row{
  align-items:flex-start;
}
.settings-source-row .settings-path-pill{
  font-family:"Courier New",monospace;
}
.settings-source-path{
  flex:1 1 100%;
  margin-top:.1rem!important;
  text-align:right;
  word-break:break-all;
}
.settings-api-body{
  display:grid;
  grid-template-columns:1fr;
  gap:.65rem;
  padding:.7rem .9rem!important;
}
.settings-api-block{
  padding:.6rem;
  border:1px solid rgba(105,171,211,.14);
  border-radius:.55rem;
  background:rgba(255,255,255,.014);
}
.settings-api-block .setting-help{
  margin-top:-.05rem;
  margin-bottom:.45rem;
}
.settings-api-subtitle{
  margin-top:-.15rem;
  margin-bottom:.45rem;
  color:var(--t3);
  font-size:14px;
  font-weight:800;
  letter-spacing:.05em;
}
.settings-placeholder-field{
  display:flex;
  align-items:center;
  min-block-size:2.1rem;
  max-inline-size:100%;
  padding:.45rem .6rem;
  border:1px solid rgba(145,165,181,.2);
  border-radius:.5rem;
  background:rgba(5,14,24,.55);
  color:#dbeaf5;
  font-family:"Courier New",monospace;
  font-size:14px;
  font-weight:900;
  line-height:1.35;
  word-break:break-word;
}
.settings-runtime-card{
  border-color:rgba(42,184,230,.2);
  background:linear-gradient(180deg,rgba(42,184,230,.025),rgba(255,255,255,0)) var(--s1);
}
.settings-runtime-card .card-title{
  color:#b8d5e6;
}
.settings-runtime-body{
  display:grid;
  gap:.6rem;
  padding:.7rem .9rem!important;
}
.settings-runtime-section{
  padding:.55rem .6rem;
  border:1px solid rgba(105,171,211,.14);
  border-radius:.55rem;
  background:rgba(255,255,255,.014);
}
.settings-runtime-grid{
  display:grid;
  gap:.2rem;
}
.settings-runtime-grid .setting-row{
  align-items:center;
}
.settings-runtime-grid .si,
.settings-runtime-grid .settings-placeholder-field{
  text-align:center;
  text-align-last:center;
}
.settings-runtime-grid .settings-placeholder-field{
  justify-content:flex-end;
}
.settings-runtime-long .setting-help{
  grid-column:1 / -1;
  margin-top:-.2rem;
  text-align:right;
}
.account-profile-card,
.account-info-card,
.diagnostics-card{
  box-shadow:0 10px 28px rgba(0,0,0,.14);
}
.account-profile-body{
  display:flex;
  align-items:center;
  gap:1rem;
  padding:1rem 1.15rem!important;
}
.account-avatar{
  inline-size:3rem;
  block-size:3rem;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  border:1px solid rgba(42,184,230,.42);
  border-radius:.65rem;
  background:rgba(42,184,230,.08);
  color:var(--cyan);
  font-size:1.35rem;
}
.account-profile-main{
  flex:1 1 16rem;
  min-inline-size:0;
}
.account-name{
  color:#f2f8ff;
  font-size:1.15rem;
  font-weight:900;
  line-height:1.2;
}
.account-role{
  margin-top:.18rem;
  color:var(--t2);
  font-size:14px;
}
.account-signout-btn{
  min-block-size:2.25rem;
  padding:.45rem .9rem;
  border:1px solid rgba(255,79,105,.42);
  border-radius:.5rem;
  background:rgba(255,79,105,.08);
  color:#ff8da0;
  font-size:14px;
  font-weight:900;
  cursor:pointer;
  transition:background .15s,border-color .15s,color .15s;
}
.account-signout-btn:hover{
  background:rgba(255,79,105,.15);
  border-color:rgba(255,79,105,.62);
  color:#ffb0bd;
}
.account-info-card .card-header,
.diagnostics-card .card-header{
  padding:.65rem .9rem;
}
#page-account .read-badge{
  display:inline-flex;
  align-items:center;
  min-block-size:1.55rem;
  padding:.18rem .55rem;
  border:1px solid rgba(145,165,181,.18);
  border-radius:999px;
  background:rgba(145,165,181,.08);
  color:#9fb8ca;
  font-size:14px;
  font-weight:900;
  line-height:1;
}
#page-account .info-row{
  padding:.56rem 0;
  gap:.75rem;
}
#page-account .info-key{
  color:#9fb8ca;
  font-size:14px;
  font-weight:750;
}
#page-account .info-val{
  font-family:"Courier New",monospace;
  color:#e9f3ff;
  font-size:14px;
  font-weight:900;
  text-align:right;
}
.diagnostics-card{
  background:linear-gradient(180deg,rgba(42,184,230,.018),rgba(255,255,255,0)) var(--s1);
}
.diagnostics-summary-strip{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
  padding:.8rem 1rem;
  border-bottom:1px solid var(--b1);
  background:linear-gradient(180deg,rgba(42,184,230,.04),rgba(255,255,255,.006));
}
.diagnostics-summary-main{
  display:flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
}
.diagnostics-legend{
  display:flex;
  align-items:center;
  gap:.4rem;
  flex-wrap:wrap;
  cursor:default;
}
.diag-pill{
  display:inline-flex;
  align-items:center;
  gap:.35rem;
  min-block-size:1.65rem;
  padding:.18rem .5rem;
  border:1px solid rgba(145,165,181,.16);
  border-radius:999px;
  background:rgba(145,165,181,.06);
  color:#9fb8ca;
  font-size:14px;
  font-weight:800;
  pointer-events:none;
}
.diag-pill strong{
  flex:0 0 auto;
  color:inherit;
  font-size:14px;
  font-weight:900;
  white-space:nowrap;
}
.diag-pill span{
  color:#9fb8ca;
  font-size:14px;
  font-weight:650;
  line-height:1.2;
}
.diag-pill.warn{color:var(--orange);background:rgba(255,174,66,.08);border-color:rgba(255,174,66,.18)}
.diag-pill.err{color:#ff8da0;background:rgba(255,79,105,.08);border-color:rgba(255,79,105,.2)}
.diag-pill.exec{color:#ffe066;background:rgba(255,224,102,.08);border-color:rgba(255,224,102,.18)}
.diag-pill.strat{color:#5ce0ff;background:rgba(92,224,255,.08);border-color:rgba(92,224,255,.18)}
.diagnostics-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
  padding:.7rem 1rem;
  border-bottom:1px solid var(--b1);
  background:rgba(255,255,255,.012);
}
.diagnostics-toolbar-title{
  display:flex;
  align-items:center;
  gap:.5rem;
  color:#b8d5e6;
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.diag-dot{
  inline-size:.55rem;
  block-size:.55rem;
  border-radius:50%;
  background:var(--green);
  box-shadow:0 0 10px rgba(25,212,123,.55);
}
.diagnostics-controls{
  justify-content:flex-end;
}
.log-bottom-btn{
  min-inline-size:2.1rem;
  padding-inline:.55rem;
}
.log-autoscroll-control{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  min-block-size:2.1rem;
  padding:.25rem .65rem;
  border:1px solid rgba(105,171,211,.18);
  border-radius:.45rem;
  background:rgba(15,34,52,.62);
  color:#a9bdcd;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
}
#page-account .log-body{
  max-block-size:calc(100vh - 20rem);
  min-block-size:22rem;
  border-radius:0 0 .55rem .55rem;
  background:linear-gradient(180deg,#061321,#071522);
  color:#b7cadd;
  line-height:1.68;
}
#page-account .log-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  min-block-size:10rem;
  color:var(--t3);
  font-size:14px;
  font-style:italic;
}
.info-val{font-weight:800}
.backtest-safety-card,
.backtest-config-card,
.backtest-action-card,
.backtest-output-card,
.backtest-history-card{
  box-shadow:0 10px 28px rgba(0,0,0,.14);
}
.backtest-safety-card{
  border-color:rgba(241,200,75,.28);
  background:linear-gradient(135deg,rgba(241,200,75,.1),rgba(241,200,75,.025)) var(--s1);
}
.backtest-safety-body{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  flex-wrap:wrap;
  padding:.85rem 1rem!important;
}
.backtest-safety-copy{
  margin-top:.25rem;
  color:#c3d4df;
  font-size:14px;
  line-height:1.45;
}
.backtest-source-card{
  border-color:rgba(145,165,181,.18);
  background:linear-gradient(180deg,rgba(145,165,181,.018),rgba(255,255,255,0)) rgba(9,22,35,.88);
}
.backtest-source-card .card-header{
  padding:.65rem 1rem;
}
.backtest-source-body{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
  padding:.75rem 1rem!important;
}
.bt-source-main{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  flex-wrap:wrap;
}
.bt-source-main strong{
  display:inline-flex;
  align-items:center;
  min-block-size:1.9rem;
  padding:.25rem .6rem;
  border:1px solid rgba(105,171,211,.18);
  border-radius:.45rem;
  background:rgba(15,34,52,.6);
  color:#e9f3ff;
  font-family:"Courier New",monospace;
  font-size:14px;
}
.bt-source-path{
  color:var(--t3);
  font-family:"Courier New",monospace;
  font-size:14px;
  word-break:break-all;
}
#page-backtest .read-badge{
  display:inline-flex;
  align-items:center;
  min-block-size:1.55rem;
  padding:.18rem .55rem;
  border:1px solid rgba(145,165,181,.18);
  border-radius:999px;
  background:rgba(145,165,181,.08);
  color:#9fb8ca;
  font-size:14px;
  font-weight:900;
  line-height:1;
}
.backtest-config-card .card-header,
.backtest-output-card .card-header,
.backtest-history-card .card-header{
  padding:.65rem 1rem;
}
#bt-cfg{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));
  padding:.75rem 1rem!important;
  gap:.75rem!important;
}
.bt-cfg-section{
  padding:.7rem;
  border:1px solid rgba(105,171,211,.14);
  border-radius:.55rem;
  background:rgba(255,255,255,.014);
}
.bt-cfg-title{
  margin-bottom:.45rem;
  color:#d6e8f5;
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.bt-cfg-grid{
  display:grid;
  gap:.4rem;
}
.bt-cfg-grid div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
}
.bt-cfg-grid span{
  color:#9fb8ca;
  font-size:14px!important;
  font-weight:800;
}
.bt-cfg-grid strong{
  display:inline-flex;
  align-items:center;
  min-block-size:1.9rem;
  padding:.25rem .55rem;
  border:1px solid rgba(105,171,211,.16);
  border-radius:.45rem;
  background:rgba(15,34,52,.56);
  color:#eaf6ff;
  font-size:14px!important;
  font-family:"Courier New",monospace;
}
.backtest-action-body{
  justify-content:space-between;
  padding:1rem!important;
}
.backtest-action-card #bt-run-btn{
  min-block-size:2.75rem;
  min-inline-size:12rem;
  border-radius:.55rem;
}
#bt-status-msg{
  flex:1 1 18rem;
  line-height:1.45;
}
.bt-stats-grid{
  grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));
  gap:.75rem;
}
.bt-stat-card{
  padding:.85rem;
  box-shadow:0 8px 22px rgba(0,0,0,.12);
}
.bt-stat-card > div:first-child{
  color:#9fb8ca!important;
  font-size:14px!important;
  font-weight:900;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.bt-stat-card [id^="bt-s-"]{
  font-family:"Courier New",monospace;
  font-weight:900!important;
}
.backtest-output-card{
  opacity:.92;
}
.bt-output{
  margin:0;
  padding:1rem;
  max-block-size:26rem;
  overflow-y:auto;
  white-space:pre-wrap;
  word-break:break-word;
  color:#a9c2d8;
  background:#071522;
  font-family:"Courier New",monospace;
  font-size:14px;
  line-height:1.65;
  border-radius:0 0 .55rem .55rem;
}
.bt-clear-btn{
  border-color:rgba(255,79,105,.42);
  color:#ff8da0;
  font-weight:900;
}
.bt-clear-btn:hover{
  background:rgba(255,79,105,.12);
  border-color:rgba(255,79,105,.6);
  color:#ffb0bd;
}
.bt-history-filters{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:.5rem;
  flex-wrap:wrap;
  padding:.75rem 1rem;
  border-top:1px solid rgba(255,255,255,.04);
  border-bottom:1px solid var(--b1);
  background:rgba(255,255,255,.012);
}
.bt-history-filters .form-control{
  flex:0 1 7.5rem;
  min-block-size:2.1rem;
  border-radius:.45rem;
  background:var(--s2);
  border-color:var(--b1);
  color:var(--t1);
  font-size:14px;
}
.bt-history-filters .tbtn{
  min-block-size:2.1rem;
  border-radius:.45rem;
}
.bt-hist-row{border-bottom:1px solid var(--b1);cursor:pointer}
.bt-hist-row:last-child{border-bottom:0}
.bt-hist-summary{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;font-size:14px;font-weight:800;flex-wrap:wrap}
.bt-hist-row:hover .bt-hist-summary{background:rgba(42,184,230,.07)}
.bt-hist-toggle{color:var(--t3);font-size:14px;user-select:none}
.bt-hist-detail{display:none;font-size:14px;color:#a9c2d8;padding:1rem;border-top:1px solid var(--b1);max-block-size:24rem;overflow-y:auto;white-space:pre-wrap;word-break:break-word;margin:0;background:#071522;line-height:1.65}
.badge{border-radius:.4rem}

/* Modals and toast */
.modal-ov{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.75);
  backdrop-filter:blur(5px);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:9999;
  opacity:0;
  pointer-events:none;
  transition:opacity .2s;
  padding:1rem;
}
.modal-ov.open{opacity:1;pointer-events:all}
.modal-box{
  background:var(--s1);
  border:1px solid var(--b1);
  border-radius:1rem;
  padding:2rem;
  max-inline-size:26rem;
  inline-size:100%;
  text-align:center;
}
.modal-icon{font-size:2rem;margin-bottom:.85rem}
.modal-title{font-size:1.2rem;font-weight:800;color:var(--t1);margin-bottom:.5rem}
.modal-body{font-size:14px;color:var(--t2);line-height:1.7;margin-bottom:1.5rem}
.modal-btns{display:flex;gap:.75rem;justify-content:center;flex-wrap:wrap}
.mbtn-cancel{background:var(--s2);border:1px solid var(--b1);color:var(--t1)}
.mbtn-danger{background:rgba(255,51,102,.12);border:1px solid rgba(255,51,102,.45);color:var(--red);font-weight:800}
.emergency-modal-box{
  border-color:rgba(255,79,105,.5);
  background:linear-gradient(180deg,rgba(255,79,105,.08),rgba(255,255,255,0)) var(--s1);
  box-shadow:0 24px 90px rgba(255,79,105,.16),0 20px 80px rgba(0,0,0,.5);
}
.emergency-modal-icon{
  color:var(--red);
  margin-bottom:.5rem;
}
.modal-kicker{
  color:var(--red);
  font-size:14px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:.35rem;
}
.modal-warning-copy{
  margin:.75rem 0;
  padding:.75rem;
  border:1px solid rgba(255,79,105,.28);
  border-radius:.55rem;
  background:rgba(255,79,105,.08);
  color:#f2c6cf;
  font-weight:700;
}
.emergency-modal-box .mbtn-danger{
  background:rgba(255,79,105,.18);
  border-color:rgba(255,79,105,.7);
  color:#ff8da0;
}
.emergency-modal-box .mbtn-danger:hover{
  background:rgba(255,79,105,.28);
}
.emergency-modal-box .mbtn-cancel{
  color:var(--t2);
}
#toast{
  position:fixed;
  right:1.5rem;
  bottom:1.5rem;
  background:var(--s2);
  border:1px solid var(--b1);
  border-radius:.75rem;
  padding:.85rem 1.1rem;
  font-size:14px;
  z-index:200;
  max-inline-size:22rem;
  opacity:0;
  transform:translateY(.65rem);
  transition:opacity .22s,transform .22s;
  pointer-events:none;
}
#toast.show{opacity:1;transform:translateY(0)}
#toast.tok{border-color:rgba(25,212,123,.5);color:var(--green)}
#toast.terr{border-color:rgba(255,51,102,.5);color:var(--red)}
#toast.tinf{border-color:rgba(42,184,230,.45);color:var(--cyan)}

/* Signal journal */
.sig-live-banner{
  display:block;
  padding:.75rem 1rem;
  margin-bottom:.75rem;
}
.sig-live-banner .pos-row{
  justify-content:space-between;
}
.sig-live-banner .pos-fields{
  flex:1 1 24rem;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.65rem;
}
.sig-live-banner .pos-f{
  display:grid;
  gap:.18rem;
  min-inline-size:0;
}
.sig-context-card{
  margin-bottom:.75rem;
}
.sig-context-card .trade-filter-bar{
  border-bottom:0;
  border-radius:.55rem;
}
.sig-filter-controls{
  flex:1 1 34rem;
}
.sig-filter-controls .form-control,
.sig-filter-controls .form-select{
  flex:0 1 9rem;
  max-inline-size:11rem;
}
.sig-filter-controls #sig-comment{
  flex-basis:11rem;
  max-inline-size:14rem;
}
.sig-hide-debug{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  min-block-size:2.1rem;
  padding:.25rem .65rem;
  border:1px solid rgba(105,171,211,.18);
  border-radius:.45rem;
  background:rgba(15,34,52,.62);
  color:#a9bdcd;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
}
.sig-feed{
  display:block;
}
.sig-day-hdr{
  display:flex;
  align-items:center;
  gap:.65rem;
  margin:1rem 0 .5rem;
  flex-wrap:wrap;
}
.sig-day-date,.sig-day-pnl{
  font-family:"Courier New",monospace;
  font-size:14px;
  font-weight:900;
  color:#eaf6ff;
}
.sig-day-dow,.sig-day-count{
  font-size:14px;
  color:var(--t2);
}
.sig-day-count{
  display:inline-flex;
  align-items:center;
  min-block-size:1.55rem;
  padding:.16rem .55rem;
  border:1px solid rgba(105,171,211,.16);
  border-radius:999px;
  background:rgba(145,165,181,.06);
  font-weight:800;
}
.sig-card{
  display:grid;
  grid-template-columns:minmax(4.4rem,auto) minmax(0,1fr) auto;
  align-items:center;
  gap:.65rem;
  padding:.48rem .75rem;
  margin-bottom:.35rem;
  border:1px solid var(--b1);
  border-radius:.45rem;
  background:linear-gradient(180deg,rgba(255,255,255,.022),rgba(255,255,255,0)) var(--s1);
  box-shadow:0 6px 16px rgba(0,0,0,.1);
}
.sig-sbadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-block-size:1.65rem;
  padding:.22rem .55rem;
  border-radius:.45rem;
  font-size:14px;
  font-weight:900;
  letter-spacing:.04em;
  min-inline-size:4.25rem;
  text-align:center;
}
.sig-sbadge.long{background:rgba(25,212,123,.09);color:var(--green);border:1px solid rgba(25,212,123,.24)}
.sig-sbadge.short{background:rgba(255,51,102,.09);color:var(--red);border:1px solid rgba(255,51,102,.24)}
.sig-main{
  min-width:0;
  display:flex;
  align-items:center;
  gap:.65rem;
  flex-wrap:nowrap;
}
.sig-prices,
.sig-meta{
  display:flex;
  align-items:center;
  gap:.45rem;
  flex-wrap:wrap;
}
.sig-prices{
  color:#d7e9f5;
  flex:0 0 auto;
}
.sig-meta{
  color:var(--t2);
  min-width:0;
  flex-wrap:nowrap;
  overflow:hidden;
}
.sig-plbl{
  color:#8faabe;
  font-size:14px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.sig-pval{
  font-family:"Courier New",monospace;
  font-size:14px;
  font-weight:900;
  color:#eef7ff;
}
.sig-dot{
  color:rgba(145,165,181,.45);
}
.sig-reason,.sig-pnl-col{font-size:14px;font-weight:800}
.sig-reason.tp{color:var(--green)}.sig-reason.sl{color:var(--red)}.sig-reason.other{color:var(--yellow)}
.sig-pnl-col{font-family:"Courier New",monospace;min-inline-size:6rem;text-align:right}
.sig-status{
  justify-self:end;
  white-space:nowrap;
}
.sig-status.accepted{background:rgba(25,212,123,.09);color:var(--green);border:1px solid rgba(25,212,123,.24)}
.sig-status.skipped{background:rgba(255,255,255,.05);color:var(--t3);border:1px solid var(--b1)}
.sig-tag{
  max-inline-size:18rem;
  background:rgba(255,193,7,.08);
  color:var(--yellow);
  border:1px solid rgba(255,193,7,.18);
  cursor:default;
}
.sig-comment{
  min-inline-size:0;
  max-inline-size:16rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#9fb8ca;
}

@keyframes sbSlideIn{
  from{transform:translateX(-100%)}
  to{transform:translateX(0)}
}

@media(min-width:992px){
  .settings-param-grid,
  .settings-filter-body,
  .settings-api-body{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* Login */
#login-overlay{
  position:fixed;
  inset:0;
  background:rgba(6,9,17,.97);
  z-index:200;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:1rem;
  backdrop-filter:blur(10px);
}
.login-card{
  background:var(--s2);
  border:1px solid var(--b2);
  border-radius:1rem;
  padding:2rem;
  inline-size:min(100%,24rem);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:1rem;
  box-shadow:0 24px 80px rgba(0,0,0,.7);
}
.login-logo{
  inline-size:3.5rem;
  block-size:3.5rem;
  border:2px solid rgba(42,184,230,.45);
  border-radius:.85rem;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  color:var(--cyan);
}
.login-title{font-size:1.2rem;font-weight:800;color:var(--t1)}
.login-sub,.login-err{font-size:14px;color:var(--t2)}
.login-err{color:var(--red);min-block-size:1.5rem;text-align:center}
.login-btn{inline-size:100%;background:var(--cyan);color:#060911;font-weight:900;padding:.75rem}
.login-btn:hover{background:#55c8ef;color:#060911}

/* Compatibility for existing inline markup generated by admin.js. */
[style*="font-size:8"][style*="px"],
[style*="font-size:9"][style*="px"],
[style*="font-size:10"][style*="px"],
[style*="font-size:11"][style*="px"],
[style*="font-size:12"][style*="px"],
[style*="font-size:13"][style*="px"]{font-size:14px!important}
.chart-wrap[style*="height"]{height:auto!important}

@media(max-width:1199.98px){
  .dashboard-status-grid{
    grid-auto-rows:auto;
  }
  .pmt-preflight-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .dashboard-top-compact .state-card,
  .dashboard-top-compact .pnl-card,
  .dashboard-top-compact .dashboard-position,
  .dashboard-top-compact .heartbeat-card,
  .dashboard-top-compact .dashboard-control-card{
    block-size:auto;
  }
}
@media(max-width:1200px){
  :root{--sb:74px}
  .sb-brand-text,.sb-item span:last-child,.sb-conn-lbl,.tz,.sb-user-row{display:none!important}
  .sb-brand{justify-content:center;padding:1rem .5rem}
  .sb-item{justify-content:center;margin:.15rem .35rem;padding:.75rem .25rem;border-left:0;border-bottom:2px solid transparent}
  .sb-item.active{border-bottom-color:var(--cyan)}
  .sb-foot{display:flex;flex-direction:column;align-items:center;gap:.5rem}
}
@media(max-width:768px){
  :root{--sb:0px}
  .sidebar{display:none!important}
  .main-wrap{margin-inline-start:0}
  .topbar{align-items:flex-start}
  .hdr-page-title{font-size:1.15rem}
  .hdr-right{inline-size:100%}
  .hdr-pill{flex:1 1 10rem}
  .dth-r{inline-size:100%}
  .dth-kv{flex:1 1 9rem}
  .trade-filter-bar{
    align-items:stretch;
  }
  .trade-filter-title,
  .trade-filter-controls{
    inline-size:100%;
  }
  .trade-filter-controls{
    justify-content:flex-start;
  }
  #page-trades .form-control,
  #page-trades .form-select,
  #page-trades .tbtn,
  #page-signals .form-control,
  #page-signals .form-select,
  #page-signals .tbtn,
  .sig-hide-debug{
    flex:1 1 10rem;
    max-inline-size:none;
  }
  .trade-pagination{
    justify-content:flex-start;
  }
  .sig-live-banner .pos-fields{
    grid-template-columns:1fr;
  }
  .sig-card{
    grid-template-columns:1fr;
    align-items:start;
  }
  .sig-main{
    align-items:flex-start;
    flex-wrap:wrap;
  }
  .sig-meta{
    flex-wrap:wrap;
    overflow:visible;
  }
  .sig-status{
    justify-self:start;
  }
  .ctrl-pad{grid-template-columns:1fr}
  .ctrl-strat{grid-template-columns:1fr}
  .ctrl-status,
  .ctrl-activity-row{
    align-items:flex-start;
  }
  .ctrl-status-badge{
    inline-size:100%;
  }
  .bot-settings-grid,
  .pmt-preflight-grid,
  .or-kv-grid{
    grid-template-columns:1fr;
  }
  .pmt-preflight-comment{
    grid-column:auto;
  }
  .pmt-preflight-item{
    grid-template-columns:1fr;
    gap:.35rem;
  }
  .bot-settings-mode,
  .botset-row,
  .pmt-preflight-item,
  .stats-line{
    align-items:flex-start;
  }
  .stats-date-input,
  .stats-custom-range input{
    inline-size:100%;
  }
  .stats-custom-range{
    align-items:stretch;
  }
  .stats-line strong,
  .ctrl-activity-row strong{
    text-align:left;
  }
  .bot-settings-mode strong,
  .botset-row strong{
    text-align:center;
  }
  .pos-fields,.pos-row{align-items:stretch}
  .setting-row,.info-row{align-items:flex-start}
  #page-settings .setting-row{
    align-items:flex-start;
  }
  #page-settings .setting-key{
    flex-basis:100%;
  }
  .settings-strategy-card .setting-row{
    grid-template-columns:1fr;
    gap:.35rem;
  }
  .settings-strategy-card .setting-key{
    text-align:left;
  }
  #page-settings .settings-compact-control{
    grid-template-columns:1fr;
    gap:.35rem;
  }
  #page-settings .settings-compact-control .si{
    justify-self:stretch;
    inline-size:100%;
  }
  #page-settings .setting-val{
    text-align:left;
  }
  #page-settings .settings-checkline{
    min-inline-size:0;
    justify-content:flex-start;
  }
  .settings-mode-grid{
    grid-template-columns:1fr;
  }
  .settings-param-grid,
  .settings-filter-body{
    grid-template-columns:1fr;
  }
  .settings-save-row{
    right:12px;
    bottom:calc(12px + env(safe-area-inset-bottom));
    left:12px;
    inline-size:auto;
    justify-content:stretch;
    padding:.5rem;
  }
  .settings-save-row .save-btn{
    inline-size:100%;
  }
  .account-profile-body{
    align-items:flex-start;
    flex-direction:column;
  }
  .account-signout-btn{
    inline-size:100%;
  }
  #page-account .info-row{
    align-items:flex-start;
  }
  #page-account .info-key{
    flex-basis:100%;
  }
  #page-account .info-val{
    text-align:left;
  }
  .diagnostics-summary-strip,
  .diagnostics-toolbar{
    align-items:flex-start;
  }
  .diagnostics-legend,
  .diagnostics-controls{
    inline-size:100%;
    justify-content:flex-start;
  }
  .diagnostics-controls .tbtn{
    flex:1 1 10rem;
  }
  #page-account .log-body{
    max-block-size:70vh;
    min-block-size:18rem;
  }
  .backtest-safety-body,
  .backtest-action-body,
  .backtest-source-body{
    align-items:flex-start;
  }
  .backtest-action-card #bt-run-btn{
    inline-size:100%;
  }
  #bt-cfg{
    grid-template-columns:1fr;
  }
  .bt-cfg-grid div{
    align-items:flex-start;
    flex-direction:column;
    gap:.25rem;
  }
  .bt-cfg-grid strong{
    inline-size:100%;
  }
  .bt-history-filters{
    justify-content:flex-start;
  }
  .bt-history-filters .form-control,
  .bt-history-filters .tbtn{
    flex:1 1 9rem;
  }
  .cal-nav{
    inline-size:100%;
    justify-content:flex-start;
  }
  .cal-month-lbl{
    text-align:left;
  }
  .dashboard-top-compact{
    --dashboard-top-gap:.75rem;
  }
  .dashboard-status-grid{
    grid-template-columns:1fr;
  }
  .dashboard-top-compact .pos-fields,
  .dashboard-top-compact .heartbeat-grid{
    grid-template-columns:1fr;
  }
  /* Mobile nav drawer */
  #sb-overlay{
    display:none;
    position:fixed;
    inset:0;
    background:rgba(0,0,0,.55);
    z-index:39;
    -webkit-tap-highlight-color:transparent;
  }
  #sb-overlay.active{display:block}
  .sidebar.sb-open{
    display:flex!important;
    inline-size:220px;
    animation:sbSlideIn .2s ease;
  }
  .sidebar.sb-open .sb-brand-text,
  .sidebar.sb-open .sb-item span:last-child,
  .sidebar.sb-open .sb-conn-lbl,
  .sidebar.sb-open .tz,
  .sidebar.sb-open .sb-user-row{display:flex!important}
  .sidebar.sb-open .sb-item{justify-content:flex-start;margin:.15rem .5rem;padding:.75rem .875rem;border-left:2px solid transparent;border-bottom:0}
  .sidebar.sb-open .sb-item.active{border-left-color:var(--cyan);border-bottom-color:transparent}
  .sidebar.sb-open .sb-brand{justify-content:flex-start;padding:1rem .875rem .75rem}
  .sidebar.sb-open .sb-foot{flex-direction:column;align-items:flex-start;padding:.5rem .875rem}
}
