/* Grid Bot panel — terminal-integrated, dark, right-docked drawer. */

.grid-open-btn{
  display:inline-flex; align-items:center; gap:6px; cursor:pointer;
  background:linear-gradient(180deg,#12324a,#0e2438); color:#3fd0bd;
  border:1px solid rgba(23,182,161,.42); border-radius:8px;
  padding:8px 13px; font:700 12px/1 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; letter-spacing:.03em;
  transition:filter .15s, border-color .15s;
}
.grid-open-btn:hover{ filter:brightness(1.18); border-color:rgba(23,182,161,.75); }
.grid-open-btn .gb-ic{ font-size:13px; }

/* overlay + drawer */
.grid-overlay{
  position:fixed; inset:0; z-index:9200; display:none;
  background:rgba(4,6,12,.55); backdrop-filter:blur(3px);
}
.grid-overlay.show{ display:block; }
.grid-drawer{
  position:absolute; top:0; right:0; height:100%; width:min(420px,94vw);
  background:#0b0e16; border-left:1px solid #232a3b;
  box-shadow:-12px 0 40px rgba(0,0,0,.5);
  display:flex; flex-direction:column; overflow-y:auto;
  transform:translateX(12px); animation:gbIn .22s cubic-bezier(.2,.7,.3,1) forwards;
  -webkit-overflow-scrolling:touch;
}
@keyframes gbIn{ to{ transform:translateX(0); } }

.gb-header{
  position:sticky; top:0; z-index:2; display:flex; align-items:center; gap:10px;
  padding:15px 16px; background:#0e1420; border-bottom:1px solid #232a3b;
}
.gb-title{ font:800 15px/1.2 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:#e7ebf3; display:flex; align-items:center; gap:7px; }
.gb-title .gb-ic{ color:#17b6a1; }
.gb-sym{ color:#8791a5; font-weight:600; font-size:12px; }
.gb-status{ margin-left:auto; font:700 10px/1 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; letter-spacing:.08em; color:#8791a5;
  border:1px solid #2b3446; border-radius:5px; padding:4px 8px; }
.gb-status.run{ color:#26a69a; border-color:rgba(38,166,154,.5); background:rgba(38,166,154,.1); }
.gb-close{ background:none; border:none; color:#8791a5; font-size:17px; cursor:pointer; padding:2px 6px; border-radius:6px; }
.gb-close:hover{ color:#e7ebf3; background:#1a2130; }

.gb-body{ padding:14px 16px 22px; display:flex; flex-direction:column; gap:12px; }
.gb-note{ font:12px/1.5 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:#8791a5; }

.gb-row{ display:flex; flex-direction:column; gap:5px; }
.gb-lbl{ font:600 11px/1 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; letter-spacing:.02em; color:#9aa4b8; text-transform:uppercase; }
.gb-in{
  background:#131a28; border:1px solid #2a3446; color:#e7ebf3; border-radius:8px;
  padding:9px 11px; font:600 13px/1 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; width:100%; box-sizing:border-box;
}
.gb-in:focus{ outline:none; border-color:#17b6a1; }
select.gb-in{ cursor:pointer; }
.gb-2{ display:flex; gap:8px; } .gb-2 .gb-in{ flex:1; min-width:0; }

.gb-suggest{ font:12px/1.4 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:#c2c9d8; background:rgba(23,182,161,.08);
  border:1px solid rgba(23,182,161,.28); border-radius:8px; padding:9px 11px; }
.gb-suggest b{ color:#3fd0bd; }
.gb-sug-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; font-weight:700; color:#3fd0bd; margin-bottom:7px; }
.gb-sug-meta{ font-weight:500; font-size:10.5px; color:#8a93a6; }
.gb-sug-list{ display:flex; flex-direction:column; gap:4px; max-height:190px; overflow-y:auto; -webkit-overflow-scrolling:touch; }
.gb-sug-row{ display:flex; align-items:center; gap:8px; width:100%; text-align:left; cursor:pointer;
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06); border-radius:7px; padding:7px 9px; color:#c2c9d8;
  transition:background .12s, border-color .12s; }
.gb-sug-row:hover{ background:rgba(23,182,161,.12); border-color:rgba(23,182,161,.42); }
.gb-sug-row:active{ transform:scale(.99); }
.gb-sug-sym{ font-weight:700; color:#e6e9f2; min-width:52px; }
.gb-sug-score{ font:700 12px/1 'JetBrains Mono','Roboto Mono',monospace; min-width:34px; text-align:right; }
.gb-sug-x{ font-size:10px; color:#7b8496; font-family:'JetBrains Mono','Roboto Mono',monospace; }

.gb-preview{ background:#0f1421; border:1px solid #232a3b; border-radius:10px; padding:12px; }
.gb-verdict{ font:800 12px/1 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; letter-spacing:.05em; padding:6px 9px; border-radius:6px; margin-bottom:10px; display:inline-block; }
.gb-verdict.exc{ color:#0b120f; background:#26a69a; } .gb-verdict.good{ color:#0b120f; background:#66bb6a; }
.gb-verdict.caut{ color:#1b140a; background:#e0952b; } .gb-verdict.bad{ color:#fff; background:#ef5350; }

.gb-grid{ display:grid; grid-template-columns:1fr 1fr; gap:8px 12px; }
.gb-cell{ display:flex; flex-direction:column; gap:2px; }
.gb-k{ font:600 10px/1 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; letter-spacing:.03em; color:#7a8397; text-transform:uppercase; }
.gb-v{ font:700 13px/1.2 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:#e7ebf3; font-variant-numeric:tabular-nums; }
.gb-badge{ font:700 10px/1 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; color:#3fd0bd; background:rgba(23,182,161,.13); border-radius:5px; padding:3px 7px; }

.gb-pnl{ font:800 30px/1 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; font-variant-numeric:tabular-nums; display:flex; flex-direction:column; gap:3px; padding:4px 0 6px; }
.gb-pnl span{ font:600 11px/1 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; letter-spacing:.04em; color:#7a8397; text-transform:uppercase; }
.gb-pnl.pos{ color:#26a69a; } .gb-pnl.neg{ color:#ef5350; }

.gb-edit{ border-top:1px solid #1e2635; padding-top:12px; }

.gb-actions{ display:flex; gap:9px; margin-top:4px; }
.gb-btn{ flex:1; cursor:pointer; border-radius:9px; padding:11px 10px; font:700 13px/1 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  border:1px solid transparent; transition:filter .15s; }
.gb-btn:disabled{ opacity:.45; cursor:not-allowed; }
.gb-btn:hover:not(:disabled){ filter:brightness(1.12); }
.gb-btn-go{ background:#17b6a1; color:#04110e; }
.gb-btn-ghost{ background:#151d2b; color:#c2c9d8; border-color:#2a3446; }
.gb-btn-stop{ background:#ef5350; color:#fff; }
.gb-btn-mini{ flex:0 0 auto; padding:9px 14px; background:#17b6a1; color:#04110e; }
.gb-btn-mini2{ background:#1a2233; color:#c2c9d8; border-color:#2a3446; font-size:12px; padding:9px; }

/* PWA-safe confirm dialog (replaces window.confirm, which is a no-op in a
   standalone home-screen PWA). Sits above the mobile bottom nav (z 10000). */
.gb-confirm-back{
  position:fixed; inset:0; z-index:100000; display:flex;
  align-items:center; justify-content:center; padding:24px;
  background:rgba(4,6,12,.62); backdrop-filter:blur(2px);
}
.gb-confirm{
  width:min(360px,92vw); background:#0f1420; border:1px solid #2a3446;
  border-radius:14px; padding:18px 18px 16px; box-shadow:0 20px 60px rgba(0,0,0,.6);
}
.gb-confirm-msg{
  font:500 14px/1.5 'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  color:#e6e9f2; margin-bottom:16px;
}
.gb-confirm-btns{ display:flex; gap:10px; }
.gb-confirm-btns .gb-btn{ flex:1; padding:11px 10px; }

/* The mobile bottom nav (.mobile-nav-toggle, position:fixed z-index 10000, shown ≤768px)
   floats OVER the drawer (z-9200): its buttons hit-test in front of the Stop actions, so
   taps landed on the nav, not the button (desktop has no mobile nav, so it worked there).
   We do NOT restack the overlay above the nav — that dimmed/ghosted the nav behind the
   grid backdrop and looked broken. Instead HIDE the nav while the grid is open (standard
   full-screen-modal behaviour); the nav stays 100% normal everywhere else.
   JS toggles body.grid-open in GridPanel.open/close. */
body.grid-open .mobile-nav-toggle{ display:none !important; }

@media (max-width:768px){
  /* small clearance so the last action row clears the home indicator */
  .gb-body{ padding-bottom:calc(22px + env(safe-area-inset-bottom)); }
}
@media (max-width:520px){
  .grid-drawer{ width:100vw; border-left:none; }
  .gb-pnl{ font-size:26px; }
}
