/* ============================================================
   Toasts & Status — global notification toasts and status bars.
   ============================================================ */
.gToast {
  display: flex; align-items: center; gap: 10px; padding: 12px 16px;
  background: rgba(13,15,27,0.95); backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,0.08); border-radius: var(--r-lg);
  box-shadow: var(--shadow-lg); min-width: 220px; max-width: 340px;
  font-family: 'Inter', sans-serif; font-size: 12px; color: var(--txt1);
  pointer-events: all; animation: toastIn 0.25s cubic-bezier(0.4,0,0.2,1);
  transition: opacity 0.2s, transform 0.2s;
}
.gToast.out { opacity: 0; transform: translateX(16px); }
.gToast .tIcon { width: 20px; height: 20px; flex-shrink: 0; }
.gToast .tIcon img { width: 20px; height: 20px; }
.gToast .tBody { flex: 1; }
.gToast .tTitle { font-weight: 600; margin-bottom: 1px; }
.gToast .tMsg { font-size: 11px; color: var(--txt2); }
.gToast.success { border-left: 3px solid var(--green); }
.gToast.warning { border-left: 3px solid var(--gold); }
.gToast.error   { border-left: 3px solid var(--red); }
.gToast.info    { border-left: 3px solid var(--blue); }
.tBull { color:#089981; } .tBear { color:#f23645; } .tGold { color:#d4af37; } .tBlue { color:#5dade2; }
.swatch { width:15px; height:15px; border-radius:2px; cursor:pointer; border:2px solid transparent; flex-shrink:0; }
.swatch.active, .swatch:hover { border-color:rgba(255,255,255,0.7); }
/* PHASE 1 FOUNDATION: swatch fill color, keyed to the same data-color attribute drawing.js
   already reads for its click handler — was a duplicate inline style carrying the identical
   hex value. */
.swatch[data-color="#f0b429"] { background: #f0b429; }
.swatch[data-color="#2962ff"] { background: #2962ff; }
.swatch[data-color="#089981"] { background: #089981; }
.swatch[data-color="#f23645"] { background: #f23645; }
.swatch[data-color="#9598a1"] { background: #9598a1; }
.swatch[data-color="#a78bfa"] { background: #a78bfa; }
.swatch[data-color="#d4af37"] { background: #d4af37; }
.swatch[data-color="#ffffff"] { background: #ffffff; }
#ctxText { flex:1; background:#080910; border:1px solid #1e2035; color:#d1d4dc; padding:3px 6px; border-radius:3px; font-size:10px; font-family:inherit; outline:none; }
#ctxAligns,#ctxLabelPos { display:flex; gap:3px; }
#ctxAligns button,#ctxLabelPos button { background:#111320; border:1px solid #1e2035; color:#5d6068; padding:2px 7px; border-radius:3px; cursor:pointer; font-size:10px; font-family:inherit; }
#ctxAligns button.active,#ctxAligns button:hover,#ctxLabelPos button.active,#ctxLabelPos button:hover { background:rgba(212,175,55,0.12); color:#d4af37; border-color:rgba(212,175,55,0.35); }
#ctxDelete { width:100%; margin-top:6px; background:rgba(242,54,69,0.08); border:1px solid rgba(242,54,69,0.25); color:#f23645; padding:5px; border-radius:3px; cursor:pointer; font-size:10px; font-family:inherit; }
#ctxDelete:hover { background:rgba(242,54,69,0.18); }
input[type=range] { accent-color:#d4af37; cursor:pointer; flex:1; }
.ctxNum { min-width:32px; font-size:10px; color:#787b86; text-align:right; }

.moodIcon { width:29px; height:29px; border-radius:50%; vertical-align:middle; object-fit:cover; }
.accentIcon { width:24px; height:24px; border-radius:50%; vertical-align:middle; object-fit:cover; opacity:0.8; }
/* PHASE 3: #rightToggle's img.accentIcon (was fixed in PHASE 1) is gone — replaced by the
   Lucide message-circle icon, sized identically to its sibling .iconBtn glyphs via the
   existing `.iconBtn svg, .iconBtn img` rule in topbar.css. Rule removed, not left dead. */

#chevWatermark {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 200px;
  opacity: 0.18;
  pointer-events: none;
  filter: grayscale(40%);
  z-index: 2;
}

#tradeOverlayBar {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 15;
  display: flex;
  gap: 6px;
}
.ovBtn {
  background: #1c2030;
  border: 1px solid #2a2e39;
  color: #787b86;
  font-size: 10px;
  font-family: "Share Tech Mono", monospace;
  text-transform: uppercase;
  padding: 5px 10px;
  border-radius: 4px;
  cursor: pointer;
  letter-spacing: 0.05em;
  transition: color 0.15s, border-color 0.15s;
}
.ovBtn.active {
  color: #d4af37;
  border-color: #d4af37;
}
/* PHASE 6 Task 1: these two buttons (Entry/Analysis on the trade overlay bar)
   had no hover feedback at all. */
.ovBtn:hover { color: #d1d4dc; border-color: #434651; }
.ovAnalysisToggle { border-radius: 4px 0 0 4px; }
.ovAnalysisArrow  { border-radius: 0 4px 4px 0; border-left: none; padding: 5px 7px; margin-left: -1px; }
#overlayAnalysisPanel {
  position: absolute;
  top: 42px;
  right: 10px;
  z-index: 16;
  background: #1c2030;
  border: 1px solid #2a2e39;
  border-radius: 4px;
  padding: 8px 12px;
  display: none;
  flex-direction: column;
  gap: 7px;
  min-width: 130px;
}
.ovCheck {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #787b86;
  font-size: 10px;
  font-family: "Share Tech Mono", monospace;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  user-select: none;
  white-space: nowrap;
}
.ovCheck input[type="checkbox"] {
  accent-color: #d4af37;
  cursor: pointer;
  width: 11px; height: 11px;
}
#ovTagBadges { display: flex; flex-wrap: wrap; gap: 3px; padding: 4px 0 0; }

#priceInfo {
  position: absolute; top: 12px; left: 16px; z-index: 5;
  font-size: 13px; color: #9598a1; pointer-events: none; line-height: 1.5;
}
#priceInfo .sym { font-size: 16px; color: #d1d4dc; font-weight: 600; margin-right: 8px; }
#priceInfo .price { font-size: 16px; font-weight: 600; }
#priceInfo .up { color: #089981; }
#priceInfo .down { color: #f23645; }

#ohlcInfo { margin-top: 4px; font-family: "SF Mono", Consolas, monospace; font-size: 11px; color: #787b86; white-space: nowrap; }
#ohlcInfo .val { color: #d1d4dc; }
#ohlcInfo .val.up { color: #089981; }
#ohlcInfo .val.down { color: #f23645; }
#ohlcInfo span { margin-right: 10px; }
#candleCountdown { margin-top: 3px; font-family: "SF Mono", Consolas, monospace; font-size: 11px; color: #4c525e; }

/* Position strip — replaces the old floating banner */
#chevActiveIdeaBanner {
  display: none; align-items: center; gap: 8px; flex-shrink: 0;
  padding: 6px 14px;
  background: linear-gradient(90deg, rgba(212,175,55,0.06) 0%, transparent 80%);
  border-bottom: 1px solid rgba(212,175,55,0.12);
  font-family: 'Inter', sans-serif; font-size: 10px;
}
#chevActiveIdeaBanner.active { display: flex; }
.posBadge {
  font-family: 'Inter', sans-serif; font-weight: 700; font-size: 11px;
  padding: 3px 9px; border-radius: var(--r-pill); flex-shrink: 0; letter-spacing: 0.03em;
}
.posBadge.long  { color: var(--green); background: rgba(8,153,129,0.12); border: 1px solid rgba(8,153,129,0.25); }
.posBadge.short { color: var(--red);   background: rgba(242,54,69,0.12);  border: 1px solid rgba(242,54,69,0.25); }
.posSymbol { color: var(--txt1); font-weight: 700; font-size: 12px; letter-spacing: 0.03em; flex-shrink: 0; }
.posEntry { color: var(--txt2); flex-shrink: 0; }
.posEntry b { color: var(--txt1); }
.posSL { color: var(--red); flex-shrink: 0; }
.posTP { color: var(--green); flex-shrink: 0; }
.posRR { margin-left: auto; color: var(--gold); background: var(--gold-dim); border: 1px solid rgba(212,175,55,0.18); border-radius: var(--r-pill); padding: 2px 8px; font-size: 9px; flex-shrink: 0; display: flex; align-items: center; gap: 4px; }
.posStatus { font-size: 8px; color: var(--txt2); letter-spacing: 0.06em; text-transform: uppercase; flex-shrink: 0; display: flex; align-items: center; gap: 3px; }

#status { position: absolute; bottom: 10px; left: 16px; z-index: 5; font-size: 11px; color: #5d6068; pointer-events: none; }

/* ===== RIGHT PANEL - INTEL ===== */
#rightPanel {
  position: fixed; top: 0; right: 0; height: 100vh; z-index: 100;
  width: 0; overflow: hidden;
  background: linear-gradient(180deg, var(--s0) 0%, var(--bg) 100%);
  border-left: 1px solid rgba(255,255,255,0.05);
  transition: width 0.2s cubic-bezier(0.4,0,0.2,1); display: flex; flex-direction: column;
  box-shadow: -4px 0 24px rgba(0,0,0,0.4);
}
