*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;width:100%;background:var(--bg)}

/* ════════════════════════════════════════════════════════════════════
   DESIGN SYSTEM v2 — Modernized tokens
   ════════════════════════════════════════════════════════════════════ */
:root{
  /* Backgrounds — deeper blacks, more contrast */
  --bg:#06080d;
  --s1:#0e1219;
  --s2:#161b27;
  --s3:#1e2436;
  --s4:#2a3148;

  /* Borders */
  --bd:rgba(255,255,255,.06);
  --bd2:rgba(255,255,255,.12);

  /* Text */
  --tx:#e6eaf0;
  --mu:#7a8899;
  --fa:#3a4258;

  /* Brand: vivid blue→teal gradient */
  --pr:#4da3ff;
  --pr2:rgba(77,163,255,.14);
  --pr3:rgba(77,163,255,.06);
  --bl:#14b8a6;
  --bl2:rgba(20,184,166,.12);

  /* Semantic */
  --gn:#22c55e;
  --gn2:rgba(34,197,94,.1);
  --rd:#ef4444;
  --rd2:rgba(239,68,68,.1);
  --gd:#fbbf24;
  --gd2:rgba(251,191,36,.1);
  --pu:#a855f7;
  --pu2:rgba(168,85,247,.12);

  /* Gradients */
  --grad-brand:linear-gradient(135deg,#4da3ff 0%,#14b8a6 100%);
  --grad-purple:linear-gradient(135deg,#a855f7 0%,#4da3ff 100%);
  --grad-success:linear-gradient(135deg,#22c55e 0%,#14b8a6 100%);
  --grad-glass:linear-gradient(180deg,rgba(255,255,255,.04) 0%,rgba(255,255,255,0) 100%);

  /* Shadows — softer ambient + crisp accent */
  --sh1:0 1px 2px rgba(0,0,0,.4), 0 4px 16px rgba(0,0,0,.3);
  --sh2:0 4px 8px rgba(0,0,0,.45), 0 16px 48px rgba(0,0,0,.4);
  --sh3:0 12px 24px rgba(0,0,0,.5), 0 30px 80px rgba(0,0,0,.55);
  --sh-glow:0 0 0 1px var(--pr2), 0 8px 32px rgba(77,163,255,.18);
  --sh-glow-green:0 0 0 1px var(--gn2), 0 8px 32px rgba(34,197,94,.15);
  --sh-glow-purple:0 0 0 1px var(--pu2), 0 8px 32px rgba(168,85,247,.15);

  /* Radii */
  --r-sm:6px;
  --r-md:10px;
  --r-lg:14px;
  --r-xl:18px;
  --r-2xl:24px;

  /* Transitions */
  --t-fast:.15s cubic-bezier(.4,0,.2,1);
  --t-base:.25s cubic-bezier(.4,0,.2,1);
  --t-slow:.4s cubic-bezier(.4,0,.2,1);
}

[data-theme="dark"],[data-tdh-theme="dark"]{--bg:#06080d;--s1:#0e1219;--s2:#161b27;--s3:#1e2436;--s4:#2a3148;--bd:rgba(255,255,255,.06);--bd2:rgba(255,255,255,.12);--tx:#e6eaf0;--mu:#7a8899;--fa:#3a4258;--pr:#4da3ff;--pr2:rgba(77,163,255,.14);--pr3:rgba(77,163,255,.06);--bl:#14b8a6;--bl2:rgba(20,184,166,.12);--gn:#22c55e;--gn2:rgba(34,197,94,.1);--rd:#ef4444;--rd2:rgba(239,68,68,.1);--gd:#fbbf24;--gd2:rgba(251,191,36,.1);--pu:#a855f7;--pu2:rgba(168,85,247,.12)}
[data-theme="light"],[data-tdh-theme="light"]{--bg:#f6f8fb;--s1:#ffffff;--s2:#f0f3f9;--s3:#e6ebf3;--s4:#d8dfeb;--bd:rgba(0,0,0,.07);--bd2:rgba(0,0,0,.14);--tx:#0e1624;--mu:#5a6880;--fa:#a3aebd;--pr:#2563eb;--pr2:rgba(37,99,235,.1);--pr3:rgba(37,99,235,.05);--bl:#0d9488;--bl2:rgba(13,148,136,.08);--gn:#16a34a;--gn2:rgba(22,163,74,.08);--rd:#dc2626;--rd2:rgba(220,38,38,.08);--gd:#d97706;--gd2:rgba(217,119,6,.08);--pu:#9333ea;--pu2:rgba(147,51,234,.08);--sh1:0 1px 2px rgba(0,0,0,.05), 0 4px 12px rgba(0,0,0,.06);--sh2:0 4px 8px rgba(0,0,0,.06), 0 16px 36px rgba(0,0,0,.08);--sh3:0 12px 20px rgba(0,0,0,.08), 0 30px 60px rgba(0,0,0,.10)}

button{cursor:pointer;background:none;border:none;font:inherit;color:inherit}
input,select,textarea{font:inherit;color:inherit}

body{font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--tx);font-size:14px;line-height:1.5;min-height:100vh}

#ticker-bar{display:flex;gap:8px;overflow-x:auto;padding:8px 16px;background:var(--s1);border-bottom:1px solid var(--bd)}
#ticker-bar::-webkit-scrollbar{display:none}
.tick{display:flex;align-items:center;gap:7px;padding:4px 10px;background:var(--s2);border:1px solid var(--bd);border-radius:999px;font-size:11px;white-space:nowrap;font-family:'JetBrains Mono',monospace;flex-shrink:0}
.tick .sym{font-weight:700;color:var(--tx)}
.tick .chg{font-weight:600}
.up{color:var(--gn)}.dn{color:var(--rd)}

#workspace{position:relative;min-height:calc(100vh - 100px);padding:16px}
.panel{position:absolute;background:var(--s1);border:1px solid var(--bd);border-radius:14px;box-shadow:var(--sh2);display:flex;flex-direction:column;min-width:240px;min-height:160px;transition:box-shadow .2s}
.panel:focus-within,.panel.dragging{box-shadow:var(--sh3)}
.panel-hd{display:flex;align-items:center;gap:8px;padding:0 10px;height:40px;background:var(--s2);border-bottom:1px solid var(--bd);border-radius:14px 14px 0 0;cursor:grab;user-select:none;flex-shrink:0}
.panel-hd:active{cursor:grabbing}
.panel-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.panel-hd h3{font-size:12px;font-weight:700;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.panel-sel{padding:4px 8px;background:var(--s3);border:1px solid var(--bd);border-radius:8px;font-size:11px;color:var(--tx);cursor:pointer}
.pc{width:17px;height:17px;border-radius:7px;display:grid;place-items:center;color:var(--mu);font-size:9px;transition:background .15s,color .15s}
.pc:hover{background:var(--s3);color:var(--tx)}
.panel-bd{flex:1;overflow:auto;padding:12px}
.panel-bd::-webkit-scrollbar{width:6px}
.panel-bd::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:99px}
.resize-grip{position:absolute;right:0;bottom:0;width:16px;height:16px;cursor:nwse-resize;background:repeating-linear-gradient(-45deg,var(--bd2) 0,var(--bd2) 1px,transparent 1px,transparent 4px);border-radius:0 0 14px 0}

.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;height:100%}
.kpi{background:var(--s2);border:1px solid var(--bd);border-radius:12px;padding:12px;display:flex;flex-direction:column;justify-content:space-between}
.kpi.hi{background:var(--pr3);border-color:color-mix(in srgb,var(--pr) 22%,var(--bd))}
.kpi-lbl{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--mu)}
.kpi-val{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:700;margin:6px 0}
.kpi-meta{font-size:11px}

.agents-scroll{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;height:100%;overflow-y:auto;padding:4px;align-content:start}
.agents-scroll::-webkit-scrollbar{width:6px}
.agents-scroll::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:99px}
.agent-card{width:auto;min-height:140px;background:var(--s2);border:1px solid var(--bd);border-radius:12px;padding:12px;cursor:pointer;transition:border-color .15s,transform .15s;display:flex;flex-direction:column;gap:8px}
.agent-card:hover{border-color:var(--bd2);transform:translateY(-2px)}
.agent-card.active{border-color:var(--pr)}
.ag-head{display:flex;align-items:center;gap:8px}
.ag-ico{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:16px}
.ag-nm{font-weight:700;font-size:12px}
.ag-st{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:.05em}
.ag-row{display:flex;justify-content:space-between;font-size:11px;color:var(--mu)}
.ag-row strong{color:var(--tx)}
.bar-bg{height:5px;background:var(--s4);border-radius:99px;margin-top:2px}
.bar-fg{height:5px;border-radius:99px}

.chart-tabs{display:flex;gap:4px;margin-bottom:10px}
.chart-tabs button{padding:4px 10px;border-radius:8px;font-size:11px;color:var(--mu);transition:background .15s,color .15s}
.chart-tabs button.on{background:var(--s3);color:var(--tx);font-weight:600}
.chart-wrap{position:relative;height:calc(100% - 36px)}

.ob-lines{display:flex;flex-direction:column;gap:1px;font-family:'JetBrains Mono',monospace;font-size:11px}
.ob-line{position:relative;display:flex;align-items:center;padding:3px 8px;border-radius:4px;height:22px;flex-shrink:0}
.ob-line .ob-bar{position:absolute;top:0;bottom:0;right:0;opacity:.12;border-radius:4px}
.ob-price{flex:1;font-weight:600}
.ob-qty{flex:1;text-align:center;color:var(--mu)}
.ob-total{flex:1;text-align:right;color:var(--fa);font-size:10px}
.ob-mid{text-align:center;padding:8px 0;font-weight:700;color:var(--pr);font-family:'JetBrains Mono',monospace;font-size:14px;border-top:1px solid var(--bd);border-bottom:1px solid var(--bd);margin:4px 0}
.ob-legend{display:flex;justify-content:center;gap:14px;padding:8px 0;font-size:10px;color:var(--mu);border-top:1px solid var(--bd);margin-top:4px}
.ob-legend span{display:flex;align-items:center;gap:4px}

.mini2{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.mini-c{background:var(--s2);border:1px solid var(--bd);border-radius:10px;padding:10px}
.mini-lbl{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:.06em}
.mini-val{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:15px;margin-top:4px}
table{width:100%;border-collapse:collapse}
th,td{padding:7px 8px;border-bottom:1px solid var(--bd);text-align:left;font-size:11px}
th{font-size:10px;color:var(--mu);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.badge{display:inline-flex;padding:2px 7px;border-radius:999px;font-size:10px;font-weight:700}
.b-buy{background:var(--gn2);color:var(--gn)}.b-sell{background:var(--rd2);color:var(--rd)}
.b-open{background:var(--bl2);color:var(--bl)}.b-par{background:var(--gd2);color:var(--gd)}
.b-paper{background:var(--pu2);color:var(--pu)}
.ad-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:12px}

#ai-panel{position:fixed;right:16px;bottom:54px;width:340px;height:min(480px, calc(100vh - 80px));background:var(--s1);border:1px solid var(--bd2);border-radius:16px;box-shadow:var(--sh3);display:none;flex-direction:column;z-index:2000;overflow:hidden}
#ai-panel.open{display:flex}
.ai-hd{display:flex;align-items:center;gap:8px;padding:0 12px;height:44px;flex-shrink:0;background:linear-gradient(135deg,var(--pr2),var(--bl2));border-bottom:1px solid var(--bd)}
.ai-hd .ai-ico{width:26px;height:26px;border-radius:9px;background:linear-gradient(135deg,var(--pr),var(--bl));display:grid;place-items:center;font-size:13px;color:#041410;flex-shrink:0}
.ai-hd strong{font-size:13px;flex:1}
.ai-msgs{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px}
.ai-msgs::-webkit-scrollbar{width:4px}
.ai-msgs::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:99px}
.msg{max-width:88%}.msg.ai{align-self:flex-start}.msg.usr{align-self:flex-end}
.bubble{padding:8px 11px;border-radius:12px;font-size:12px;line-height:1.6}
.msg.ai .bubble{background:var(--s2);border:1px solid var(--bd)}
.msg.usr .bubble{background:var(--pr);color:#041a12;font-weight:600}
.msg time{display:block;font-size:10px;color:var(--mu);margin-top:2px;padding:0 4px}
.msg.usr time{text-align:right}
.ai-quick{display:flex;gap:6px;overflow-x:auto;padding:8px 12px;border-top:1px solid var(--bd);flex-shrink:0}
.ai-quick::-webkit-scrollbar{display:none}
.ai-chip{white-space:nowrap;padding:5px 10px;background:var(--s2);border:1px solid var(--bd);border-radius:999px;font-size:11px;cursor:pointer;transition:border-color .15s}
.ai-chip:hover{border-color:var(--bd2)}
.ai-inp{padding:10px 12px;border-top:1px solid var(--bd);flex-shrink:0}
.ai-inp-wrap{display:flex;gap:8px;align-items:center;background:var(--s2);border:1px solid var(--bd);border-radius:12px;padding:8px 10px}
.ai-inp textarea{background:none;border:none;outline:none;resize:none;flex:1;min-height:18px;max-height:80px;font-size:12px;color:var(--tx)}
.send-btn{width:30px;height:30px;border-radius:9px;flex-shrink:0;background:var(--pr);color:#041a12;font-size:16px;display:grid;place-items:center;font-weight:700;transition:opacity .15s}
.send-btn:hover{opacity:.85}

#toolbar{position:fixed;right:16px;bottom:16px;display:flex;gap:8px;align-items:center;z-index:1500}
.fab{height:40px;padding:0 16px;border-radius:999px;background:var(--s1);border:1px solid var(--bd2);box-shadow:var(--sh1);display:flex;gap:8px;align-items:center;font-size:13px;font-weight:600;transition:background .15s,box-shadow .15s}
.fab:hover{background:var(--s2);box-shadow:var(--sh2)}
.fab.primary{background:linear-gradient(135deg,var(--pr),var(--bl));border:none;color:#041a12;font-weight:700}
.fab.primary:hover{opacity:.9}
.add-menu{position:fixed;right:16px;bottom:64px;background:var(--s1);border:1px solid var(--bd2);border-radius:12px;box-shadow:var(--sh3);padding:6px;min-width:200px;display:none;z-index:1500}
.add-menu.open{display:block}
.add-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border-radius:8px;font-size:12px;text-align:left;transition:background .12s}
.add-menu button:hover{background:var(--s2)}
.add-menu button i{width:20px;text-align:center;color:var(--mu)}
.risk-warn{background:var(--rd2);border:1px solid rgba(240,80,112,.3);border-radius:10px;padding:10px;margin-bottom:10px;font-size:11px;color:var(--rd)}
.risk-warn i{margin-right:6px}

.form-group{margin-bottom:12px}
.form-group label{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--mu);margin-bottom:4px}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 10px;background:var(--s2);border:1px solid var(--bd);border-radius:8px;color:var(--tx);font-size:12px}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--pr)}
.form-group textarea{resize:vertical;min-height:60px}
.btn{padding:8px 16px;border-radius:8px;font-size:12px;font-weight:700;cursor:pointer;transition:opacity .15s}
.btn-primary{background:var(--pr);color:#041a12;border:none}
.btn-primary:hover{opacity:.85}
.btn-danger{background:var(--rd);color:#fff;border:none}
.btn-secondary{background:var(--s3);color:var(--tx);border:1px solid var(--bd)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.wallet-card{background:var(--s2);border:1px solid var(--bd);border-radius:10px;padding:10px;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
.wallet-card .wname{font-weight:700;font-size:12px}
.wallet-card .wtype{font-size:10px;color:var(--mu)}

/* Bot action buttons */
.bot-actions{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:8px;background:rgba(12,15,20,.85);border-radius:12px;opacity:0;transition:opacity .2s;z-index:2;pointer-events:none}
.agent-card{position:relative;overflow:hidden;cursor:pointer}
.agent-card:hover .bot-actions{opacity:1;pointer-events:auto}
.agent-card.stopped{opacity:.6}
.agent-card.stopped .bot-actions-stopped{opacity:1;pointer-events:auto}
.btn-bot{padding:8px 14px;border-radius:8px;font-size:11px;font-weight:700;border:none;cursor:pointer;display:flex;align-items:center;gap:5px}
.btn-start{background:var(--gn);color:#041a12}
.btn-stop{background:var(--gd);color:#041a12}
.btn-del{background:var(--rd);color:#fff;padding:8px 10px}
.agents-scroll .agent-card{max-height:180px}
@media(max-width:768px){
  .agent-card.stopped .bot-actions-stopped{opacity:1;top:0;bottom:auto;height:auto;padding:6px;background:rgba(12,15,20,.9);border-radius:12px 12px 0 0}
}

/* Context menu */
.ctx-menu{position:fixed;background:var(--s1);border:1px solid var(--bd2);border-radius:10px;box-shadow:var(--sh3);padding:4px;min-width:180px;z-index:10050;animation:modalIn .1s ease}
.ctx-menu-wide{min-width:240px}
.ctx-menu button{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border-radius:6px;font-size:12px;text-align:left;transition:background .1s;font-family:inherit}
.ctx-menu button:hover{background:var(--s2)}
.ctx-menu button i{width:16px;text-align:center;color:var(--mu);font-size:11px}
.ctx-section{font-size:9px;font-weight:700;color:var(--mu);text-transform:uppercase;letter-spacing:.5px;padding:8px 10px 4px}
.ctx-icon-row{display:flex;gap:4px;padding:0 8px 6px}
.ctx-icon-row button{width:auto;flex:1;justify-content:center;padding:8px;border:1px solid var(--bd);border-radius:6px}
.ctx-icon-row button i{margin:0;font-size:14px;color:var(--tx);width:auto}
.ctx-icon-row button:hover{background:var(--pr);border-color:var(--pr)}
.ctx-icon-row button:hover i{color:#fff}
.ctx-meta{margin-left:auto;font-size:9px;color:var(--mu)}
.ctx-sep{height:1px;background:var(--bd);margin:4px 8px}

/* Symbol search dropdown */
.sym-dropdown{position:fixed;background:var(--s1);border:1px solid var(--bd2);border-radius:8px;box-shadow:var(--sh2);max-height:200px;overflow-y:auto;z-index:5000}
.sym-dropdown button{display:block;width:100%;padding:6px 10px;text-align:left;font-size:11px;font-family:'JetBrains Mono',monospace;transition:background .1s}
.sym-dropdown button:hover{background:var(--s2)}

/* Symbol search input in panel header */
.panel-search{width:90px;padding:4px 8px;background:var(--s3);border:1px solid var(--bd);border-radius:8px;font-size:11px;color:var(--tx);font-family:'JetBrains Mono',monospace}
.panel-search:focus{outline:none;border-color:var(--pr);width:120px}

/* Toolbar font fix */
#toolbar .fab{font-family:'Inter',system-ui,sans-serif;font-size:12px;font-weight:700;letter-spacing:-.01em}

/* Ticker env badge */
.tick-env{cursor:pointer;font-weight:700;background:var(--gd2);border-color:var(--gd);color:var(--gd)}
.tick-env.tick-live{background:var(--gn2);border-color:var(--gn);color:var(--gn)}
.tick-ws{margin-left:auto;flex-shrink:0;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--mu);cursor:pointer;transition:background .15s,color .15s}
.tick-ws:hover{background:var(--s3);color:var(--tx)}
.tick-right-group{margin-left:auto;display:flex;gap:6px;flex-shrink:0;align-items:center;padding-left:12px;border-left:1px solid var(--bd)}
.tick-btn{flex-shrink:0;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--mu);cursor:pointer;transition:background .15s,color .15s;position:relative}
.tick-btn:hover{background:var(--s3);color:var(--tx)}

/* Modal overlay */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:9000;backdrop-filter:blur(2px)}
.modal{background:var(--s1);border:1px solid var(--bd2);border-radius:16px;box-shadow:var(--sh3);padding:24px;max-width:min(90vw,680px);width:fit-content;min-width:320px;max-height:85vh;overflow-y:auto;animation:modalIn .15s ease}
@keyframes modalIn{from{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}
.modal h3{font-size:15px;margin-bottom:12px}
.modal p{font-size:12px;color:var(--mu);margin-bottom:16px;line-height:1.6}
.modal-actions{display:flex;gap:8px;justify-content:flex-end}
.modal .form-group{margin-bottom:12px}

#app-version{position:fixed;bottom:50px;left:16px;font-size:10px;color:var(--fa);font-family:'JetBrains Mono',monospace;z-index:1;opacity:.6}


/* ── TICK BADGES (counts on Tasks/Notifications buttons) ── */
.tick-btn { position: relative; }
.tick-badge {
  position: absolute; top: -4px; right: -4px;
  background: var(--pr); color: #fff;
  font-size: 9px; font-weight: 700;
  min-width: 14px; height: 14px;
  border-radius: 7px; padding: 0 4px;
  display: flex; align-items: center; justify-content: center;
  line-height: 1;
}
.tick-badge-red { background: var(--rd); }

/* ── TOAST POPOVERS (top-right) ── */
#toast-container {
  position: fixed; top: 60px; right: 16px;
  z-index: 10000; display: flex; flex-direction: column; gap: 8px;
  max-width: 340px;
  pointer-events: none;
}
.toast {
  background: var(--s1); border: 1px solid var(--bd);
  border-left: 3px solid var(--pr);
  border-radius: 8px; padding: 10px 12px;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  font-size: 12px; color: var(--tx);
  pointer-events: auto;
  animation: toast-in .2s ease;
}
@keyframes toast-in { from { transform: translateX(100%); opacity: 0; } to { transform: translateX(0); opacity: 1; } }
.toast-running { border-left-color: var(--bl); }
.toast-done { border-left-color: var(--gn); }
.toast-error { border-left-color: var(--rd); }
.toast-hd {
  display: flex; align-items: center; gap: 6px;
  font-size: 12px; font-weight: 600;
}
.toast-hd strong { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.toast-x {
  background: none; border: none; color: var(--mu);
  cursor: pointer; padding: 2px 4px; font-size: 11px;
  border-radius: 4px;
}
.toast-x:hover { background: var(--s2); color: var(--tx); }
.toast-progress {
  margin: 6px 0 4px; height: 4px;
  background: var(--s2); border-radius: 2px; overflow: hidden;
}
.toast-progress-bar {
  height: 100%; background: var(--pr);
  transition: width .25s ease;
}
.toast-done .toast-progress-bar { background: var(--gn); }
.toast-error .toast-progress-bar { background: var(--rd); }
.toast-meta { font-size: 10px; color: var(--mu); margin-top: 2px; }

/* ── TRAY MENU (Tasks dropdown) ── */
.tray-menu {
  position: fixed; z-index: 10000;
  width: 320px; max-height: 400px; overflow-y: auto;
  background: var(--s1); border: 1px solid var(--bd);
  border-radius: 8px; padding: 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,.5);
}
.tray-hd {
  display: flex; justify-content: space-between; align-items: center;
  padding: 4px 6px 8px; border-bottom: 1px solid var(--bd);
  margin-bottom: 6px;
}
.tray-clear {
  background: none; border: 1px solid var(--bd);
  color: var(--mu); font-size: 10px;
  padding: 3px 8px; border-radius: 4px; cursor: pointer;
}
.tray-clear:hover { color: var(--tx); border-color: var(--pr); }
.tray-empty {
  text-align: center; color: var(--mu);
  padding: 24px 12px; font-size: 12px;
}
.tray-item {
  background: var(--s2); border-radius: 6px;
  padding: 8px 10px; margin-bottom: 6px;
  border-left: 2px solid var(--bl);
}
.tray-item-done { border-left-color: var(--gn); opacity: .85; }
.tray-item-error { border-left-color: var(--rd); }
.tray-item-hd {
  display: flex; align-items: center; gap: 6px;
  font-size: 11px; font-weight: 600;
}
.tray-item-hd span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tray-x {
  background: none; border: none; color: var(--mu);
  cursor: pointer; padding: 0 4px; font-size: 10px;
}
.tray-x:hover { color: var(--rd); }
.tray-progress {
  margin: 6px 0 3px; height: 3px;
  background: var(--bg); border-radius: 2px; overflow: hidden;
}
.tray-progress-bar {
  height: 100%; background: var(--bl);
  transition: width .25s ease;
}
.tray-item-done .tray-progress-bar { background: var(--gn); }
.tray-item-error .tray-progress-bar { background: var(--rd); }
.tray-meta { font-size: 9px; color: var(--mu); margin-top: 2px; }

/* ── NOTIFICATION ITEMS ── */
.notif-item {
  background: var(--s2); border-radius: 6px;
  padding: 10px 12px;
  border-left: 2px solid var(--bd);
}
.notif-unread { border-left-color: var(--pr); background: var(--s1); }
.notif-btn {
  background: none; border: 1px solid var(--bd);
  color: var(--mu); cursor: pointer;
  padding: 3px 6px; font-size: 10px;
  border-radius: 4px;
}
.notif-btn:hover { color: var(--tx); border-color: var(--pr); }

.toast-stop, .tray-stop {
  color: var(--rd) !important;
  border: 1px solid rgba(240,80,112,.3);
  border-radius: 4px;
  padding: 2px 6px !important;
  margin-right: 4px;
  background: rgba(240,80,112,.08);
}
.toast-stop:hover, .tray-stop:hover {
  background: var(--rd) !important;
  color: #fff !important;
  border-color: var(--rd);
}


/* ── SPOTLIGHT LAUNCHER ── */
.spotlight-overlay {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.55); backdrop-filter: blur(4px);
  z-index: 11000;
  display: flex; align-items: flex-start; justify-content: center;
  padding-top: 12vh;
  animation: spotlight-fade .15s ease;
}
@keyframes spotlight-fade { from { opacity: 0; } to { opacity: 1; } }
.spotlight {
  width: min(720px, 92vw);
  background: var(--s1); border: 1px solid var(--bd);
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(0,0,0,.6);
  overflow: hidden;
  animation: spotlight-pop .15s ease;
}
@keyframes spotlight-pop { from { transform: translateY(-10px) scale(.97); } to { transform: translateY(0) scale(1); } }
.spotlight-search {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 18px;
  border-bottom: 1px solid var(--bd);
}
.spotlight-search i { color: var(--mu); }
.spotlight-search input {
  flex: 1; background: transparent; border: none;
  outline: none; color: var(--tx);
  font-size: 16px; font-weight: 500;
  padding: 0;
}
.spotlight-hint {
  color: var(--mu); font-size: 10px;
  padding: 3px 8px; border: 1px solid var(--bd);
  border-radius: 4px;
}
.spotlight-results {
  max-height: 60vh; overflow-y: auto;
  padding: 12px;
}
.spotlight-group { margin-bottom: 14px; }
.spotlight-group-name {
  font-size: 10px; font-weight: 700;
  color: var(--mu); text-transform: uppercase;
  letter-spacing: 1px; padding: 0 8px 6px;
}
.spotlight-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 4px;
}
.spotlight-item {
  display: flex; align-items: center; gap: 10px;
  padding: 10px 12px; border-radius: 8px;
  cursor: pointer; user-select: none;
  font-size: 12px; color: var(--tx);
  transition: background .1s;
}
.spotlight-item i {
  width: 22px; text-align: center;
  color: var(--mu); font-size: 14px;
}
.spotlight-active {
  background: var(--pr); color: #fff;
}
.spotlight-active i { color: #fff; }
.spotlight-empty {
  padding: 32px; text-align: center;
  color: var(--mu); font-size: 13px;
}


/* ── MINIMIZE DOCK ── */
#mini-dock {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 9000;
  display: flex; gap: 6px; align-items: center;
  background: var(--s1); border-top: 1px solid var(--bd2);
  padding: 6px 12px;
  height: 44px;
  box-shadow: 0 -4px 16px rgba(0,0,0,.3);
  overflow-x: auto;
}
#mini-dock::-webkit-scrollbar { display: none; }
.dock-item {
  flex-shrink: 0;
  background: var(--s2); border: 1px solid var(--bd);
  border-radius: 6px;
  padding: 5px 11px;
  font-size: 11px; font-weight: 600;
  color: var(--tx);
  cursor: pointer;
  user-select: none;
  transition: background .15s, transform .1s;
  display: flex; align-items: center; gap: 6px;
  max-width: 200px;
}
.dock-item.dock-min { opacity: .55; }
.dock-item:hover { background: var(--s3); transform: translateY(-1px); opacity: 1; }
.dock-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Spacer reserves room for the central ThunderAI wheel so dock items don't sit under it */
.dock-wheel-gap { flex: 0 0 64px; }

/* ── ThunderAI "raindrop" wheel attached to the bottom bar ──
   Rest: a small teardrop pointing UP, sitting on the bar.
   Hover: it "rains up" (rises) and morphs into the full ThunderAI pill. */
.ai-wheel{
  position: fixed;
  bottom: 8px; left: 50%;
  z-index: 9500;
  height: 30px; width: 30px;
  padding: 0;
  display: flex; align-items: center; justify-content: center; gap: 7px;
  background: linear-gradient(135deg,var(--pr),var(--bl));
  color: #041a12;
  border: none;
  cursor: pointer;
  overflow: hidden; white-space: nowrap;
  /* teardrop pointing up: round circle with one sharp corner, rotated 45° */
  border-radius: 50%;
  border-top-left-radius: 0;
  transform: translateX(-50%) rotate(45deg);
  box-shadow: 0 3px 10px rgba(77,163,255,.45);
  transition: width .22s ease, height .2s ease, padding .2s ease,
              border-radius .22s ease, transform .22s ease, box-shadow .2s ease;
}
.ai-wheel .aw-icon{ display:flex; transform: rotate(-45deg); transition: transform .22s ease; font-size: 13px; }
.ai-wheel .aw-label{
  font-size: 12px; font-weight: 700; letter-spacing: -.01em;
  max-width: 0; opacity: 0; transition: max-width .22s ease, opacity .18s ease;
}
.ai-wheel:hover, .ai-wheel.open{
  width: auto; height: 38px; padding: 0 16px;
  border-radius: 999px;
  transform: translateX(-50%) translateY(-10px) rotate(0);
  box-shadow: 0 6px 20px rgba(77,163,255,.55);
}
.ai-wheel:hover .aw-icon, .ai-wheel.open .aw-icon{ transform: rotate(0); }
.ai-wheel:hover .aw-label, .ai-wheel.open .aw-label{ max-width: 120px; opacity: 1; }
.ai-wheel.ai-btn-pulse{ animation: aiwheel-bob 1.1s ease-in-out infinite; }
@keyframes aiwheel-bob{
  0%,100%{ transform: translateX(-50%) rotate(45deg); }
  50%{ transform: translateX(-50%) translateY(-6px) rotate(45deg); }
}


/* ── INFO ICON ── */
.info-icon {
  display: inline-block;
  margin-left: 4px;
  color: var(--mu);
  cursor: help;
  font-size: 11px;
  opacity: .7;
  transition: opacity .15s, color .15s;
}
.info-icon:hover {
  color: var(--pr);
  opacity: 1;
}


/* ── LEVERAGE BADGE ── */
.lev-badge {
  display: inline-block;
  padding: 1px 5px;
  background: var(--gd2);
  color: var(--gd);
  border: 1px solid var(--gd);
  border-radius: 4px;
  font-size: 9px;
  font-weight: 700;
  font-family: JetBrains Mono, monospace;
  letter-spacing: .3px;
  vertical-align: middle;
}


/* ── BOT DETAIL TABS ── */
.bd-tabs {
  display: flex; gap: 4px;
  border-bottom: 1px solid var(--bd);
  margin: 8px 0;
}
.bd-tab {
  background: none; border: none;
  color: var(--mu); cursor: pointer;
  padding: 6px 12px;
  font-size: 12px; font-weight: 600;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  transition: color .15s, border-color .15s;
}
.bd-tab:hover { color: var(--tx); }
.bd-tab.on { color: var(--pr); border-bottom-color: var(--pr); }

.perf-section { margin-bottom: 14px; }
.perf-title {
  text-transform: uppercase;
  letter-spacing: .5px;
  color: var(--mu);
  font-size: 10px;
}


/* ── CHART ADVANCED TOGGLE ── */
.chart-tabs .chart-adv {
  margin-left: auto;
  background: var(--s2);
  border: 1px solid var(--bd);
  color: var(--mu);
  padding: 3px 8px;
  border-radius: 5px;
  font-size: 10px;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.chart-tabs .chart-adv:hover { background: var(--pr); color: #fff; border-color: var(--pr); }
.chart-tabs .chart-adv-on { background: var(--pr); color: #fff; border-color: var(--pr); }


/* ── MAGNETIC SNAP GUIDES ── */
.snap-guide {
  position: fixed;
  background: var(--pr);
  pointer-events: none;
  z-index: 9999;
  opacity: .6;
  box-shadow: 0 0 4px var(--pr);
}
.snap-guide-v { width: 1px; }
.snap-guide-h { height: 1px; }


/* ── BOT DETAIL CONDENSED STRIP ── */
.bd-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(70px, 1fr));
  gap: 4px;
  margin-bottom: 6px;
  padding: 6px;
  background: var(--s2);
  border: 1px solid var(--bd);
  border-radius: 8px;
}
.bd-cell {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  padding: 4px 6px;
  border-radius: 4px;
  min-width: 0;  /* allow shrink */
}
.bd-cell-lbl {
  font-size: 9px;
  color: var(--mu);
  text-transform: uppercase;
  letter-spacing: .3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.bd-cell-val {
  font-size: 12px;
  font-weight: 700;
  color: var(--tx);
  font-family: 'JetBrains Mono', monospace;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.bd-id {
  font-size: 11px;
  color: var(--mu);
  margin-bottom: 6px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.bd-id span {
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* Auto-shrink at narrow widths */
@container (max-width: 380px) {
  .bd-cell-val { font-size: 10px; }
  .bd-cell-lbl { font-size: 8px; }
}


/* ── TAG INPUT (Create Bot symbols) ── */
.tag-input-wrap {
  display: flex; flex-wrap: wrap; gap: 4px; align-items: center;
  background: var(--s2); border: 1px solid var(--bd); border-radius: 6px;
  padding: 4px 6px; min-height: 32px; cursor: text;
}
.tag-input-wrap:focus-within { border-color: var(--pr); }
.tag-input-wrap input {
  flex: 1; min-width: 60px;
  border: none; background: transparent; outline: none;
  color: var(--tx); font-size: 12px; padding: 2px 4px;
}
.tag {
  display: inline-flex; align-items: center; gap: 4px;
  background: var(--bl2); color: var(--bl);
  border: 1px solid var(--bl); border-radius: 4px;
  padding: 1px 6px; font-size: 11px; font-weight: 600;
  font-family: 'JetBrains Mono', monospace;
}
.tag button {
  background: none; border: none; color: var(--bl); cursor: pointer;
  font-size: 13px; line-height: 1; padding: 0; margin-left: 2px;
}
.tag button:hover { color: var(--rd); }
.tag-decide-all {
  background: var(--gd2); color: var(--gd); border-color: var(--gd);
}
.tag-suggest {
  display: flex; flex-wrap: wrap; gap: 3px;
  margin-top: 4px;
}
.tag-suggest button {
  background: var(--s2); border: 1px solid var(--bd); border-radius: 4px;
  padding: 3px 8px; font-size: 11px;
  color: var(--tx); cursor: pointer; font-family: 'JetBrains Mono', monospace;
}
.tag-suggest button small { color: var(--mu); margin-left: 4px; }
.tag-suggest button:hover, .tag-suggest button.on {
  background: var(--pr); color: #fff; border-color: var(--pr);
}
.tag-suggest button.on small, .tag-suggest button:hover small { color: rgba(255,255,255,.7); }
.tag-suggest-empty { color: var(--mu); font-size: 10px; padding: 4px; }


/* ── AI BUTTON PULSE (answer ready while panel closed) ── */
@keyframes ai-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(249,115,22,.7); }
  70%  { box-shadow: 0 0 0 14px rgba(249,115,22,0); }
  100% { box-shadow: 0 0 0 0 rgba(249,115,22,0); }
}
.ai-btn-pulse { animation: ai-pulse 1.4s infinite; }

/* ── AI HIGHLIGHT OVERLAY ── */
.ai-highlight-ring {
  position: fixed; pointer-events: none; z-index: 9998;
  border: 2px solid var(--pr);
  border-radius: 12px;
  box-shadow: 0 0 0 4px rgba(249,115,22,.15), 0 0 24px rgba(249,115,22,.55);
  transition: opacity .35s ease;
  animation: ai-highlight-pulse 2s ease-in-out infinite;
}
@keyframes ai-highlight-pulse {
  0%,100% { box-shadow: 0 0 0 4px rgba(249,115,22,.15), 0 0 24px rgba(249,115,22,.55); }
  50%     { box-shadow: 0 0 0 8px rgba(249,115,22,.05), 0 0 36px rgba(249,115,22,.85); }
}
.ai-highlight-label {
  position: fixed; pointer-events: none; z-index: 9999;
  background: var(--pr); color: #fff;
  font-size: 11px; font-weight: 600;
  padding: 4px 10px; border-radius: 6px;
  white-space: nowrap;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  transition: opacity .35s ease;
}
.ai-highlight-fade { opacity: 0; }

/* ── AI ACTION CARD (in chat) ── */
.ai-action-card { background: var(--s2); border: 1px solid var(--pr); border-radius: 10px; padding: 10px 12px; }
.ai-action-hd { font-size: 12px; font-weight: 600; margin-bottom: 6px; }
.ai-action-rationale { font-size: 11px; color: var(--mu); line-height: 1.5; margin-bottom: 6px; }
.ai-action-summary { font-size: 11px; padding: 6px 8px; background: var(--bg); border-radius: 6px; margin-bottom: 8px; }
.ai-action-summary code { background: var(--s1); padding: 1px 4px; border-radius: 3px; font-size: 10px; }
.ai-action-actions { display: flex; gap: 6px; justify-content: flex-end; }
.ai-action-actions .btn { padding: 4px 12px !important; font-size: 11px; }
.ai-action-result { font-size: 11px; }

/* ── MARKDOWN IN CHAT ── */
.bubble .md-h     { font-size: 13px; font-weight: 700; margin: 8px 0 4px; color: var(--tx); }
.bubble .md-h1    { font-size: 14px; }
.bubble p         { margin: 4px 0; line-height: 1.5; }
.bubble ul.md-list, .bubble ol.md-list { margin: 4px 0 4px 18px; padding: 0; }
.bubble li        { margin: 2px 0; line-height: 1.4; }
.bubble strong    { font-weight: 700; color: var(--tx); }
.bubble em        { font-style: italic; }
.bubble code.md-inline { background: var(--bg); padding: 1px 5px; border-radius: 3px; font-family: 'JetBrains Mono', monospace; font-size: 11px; }
.bubble pre.md-code {
  background: var(--bg); border: 1px solid var(--bd);
  border-radius: 6px; padding: 8px 10px; margin: 6px 0;
  font-family: 'JetBrains Mono', monospace; font-size: 11px;
  overflow-x: auto; white-space: pre;
}
.bubble pre.md-code code { background: none; padding: 0; }
.bubble table.md-table {
  border-collapse: collapse; margin: 6px 0;
  font-size: 11px; width: 100%;
}
.bubble table.md-table th,
.bubble table.md-table td {
  border: 1px solid var(--bd);
  padding: 4px 8px;
  text-align: left;
}
.bubble table.md-table th { background: var(--s2); font-weight: 700; }
.bubble a { color: var(--pr); text-decoration: underline; }

/* Chat panel: allow flex-grow horizontally as well via JS-set width; cap by viewport */
#ai-panel { max-width: calc(100vw - 32px); transition: width .25s ease, height .25s ease; }


/* ── PERFORMANCE TAB: smaller cards, scale down at narrow widths ── */
.perf-section .ad-mini { gap: 4px; }
.perf-section .mini-c {
  padding: 6px 8px;
  border-radius: 6px;
  min-width: 0;
}
.perf-section .mini-lbl {
  font-size: 9px;
  letter-spacing: .3px;
}
.perf-section .mini-val {
  font-size: 12px;
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* Below ~360px panel width, drop another step */
@media (max-width: 380px) {
  .perf-section .mini-val { font-size: 11px; }
  .perf-section .mini-c { padding: 4px 6px; }
}
.perf-section table.md-table th,
.perf-section table th { font-size: 10px; padding: 4px 6px; }
.perf-section table td { font-size: 10px; padding: 3px 6px; }


/* ── PANEL ENV TAG ([TESTNET | Wallet] in widget topbar) ── */
.panel-env-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  border-radius: 99px;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .3px;
  margin-left: 8px;
  white-space: nowrap;
  text-transform: uppercase;
  font-family: 'JetBrains Mono', monospace;
}
.panel-env-tag.tag-testnet {
  background: rgba(240, 184, 48, .12);
  color: var(--gd);
  border: 1px solid rgba(240, 184, 48, .25);
}
.panel-env-tag.tag-live {
  background: rgba(34, 197, 94, .10);
  color: var(--gn);
  border: 1px solid rgba(34, 197, 94, .25);
}
.panel-env-sep {
  opacity: .5;
  font-weight: 400;
}


/* ── WIDGET SECTIONS (collapsible + reorderable) ── */
.ws-section { transition: opacity .14s ease; margin-bottom:8px; }
.ws-section-hd {
  cursor: pointer;
  user-select: none;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 10px;
  background: var(--s2);
  border: 1px solid var(--bd);
  border-radius: var(--r-sm);
  font-size: 11px;
  font-weight: 600;
  color: var(--tx);
  transition: background .12s, border-color .12s;
}
.ws-section-hd:hover { color: var(--tx); background: var(--s3); border-color: var(--bd2); }
.ws-section:not(.ws-collapsed) .ws-section-hd {
  border-bottom-left-radius: 0; border-bottom-right-radius: 0;
}
.ws-section-hd > span:first-of-type ~ * { margin-left: 0; }
.ws-collapse-arrow {
  display: inline-flex;
  width: 12px; height: 12px;
  align-items: center;
  justify-content: center;
  font-size: 9px;
  color: var(--mu);
  transition: transform .18s ease;
  flex-shrink: 0;
}
.ws-section.ws-collapsed .ws-collapse-arrow { transform: rotate(-90deg); }
.ws-section.ws-collapsed .ws-section-body { display: none; }
.ws-section-body {
  border: 1px solid var(--bd);
  border-top: none;
  border-bottom-left-radius: var(--r-sm);
  border-bottom-right-radius: var(--r-sm);
  padding: 10px;
}
.ws-section.ws-dragging { opacity: .35; }
.ws-section[draggable="true"]:hover { cursor: grab; }

/* ════════════════════════════════════════════════════════════════════
   V2 VISUAL ENHANCEMENTS — Restrained, professional polish
   ════════════════════════════════════════════════════════════════════ */

/* Body — very subtle ambient backdrop (NO loud gradients) */
body{
  background:var(--bg);
}

/* Ticker bar — clean, minimal */
#ticker-bar{
  background:var(--s1);
  border-bottom:1px solid var(--bd);
  padding:8px 16px;
}
.tick{
  background:var(--s2);
  border:1px solid var(--bd);
  transition:border-color var(--t-fast);
}
.tick:hover{border-color:var(--bd2)}
.tick-btn{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  transition:all var(--t-fast);
  position:relative;
}
.tick-btn:hover{border-color:var(--pr);background:var(--s3)}
.tick-badge{box-shadow:0 0 0 2px var(--bg)}

/* Panels — clean surfaces, NO gradients */
.panel{
  background:var(--s1);
  border:1px solid var(--bd);
  border-radius:var(--r-lg);
  box-shadow:var(--sh1);
  transition:box-shadow var(--t-base),border-color var(--t-base);
}
.panel:hover{border-color:var(--bd2)}
.panel:focus-within,.panel.dragging{box-shadow:var(--sh2);border-color:var(--bd2)}

.panel-hd{
  background:var(--s2);
  border-bottom:1px solid var(--bd);
  height:42px;
  padding:0 12px;
  position:relative;
}
.panel-hd h3{font-weight:700;letter-spacing:-.2px;font-size:12px}
.panel-dot{box-shadow:none}

/* KPI cards — clean, NO gradient text */
.kpi{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-lg);
  padding:14px;
  position:relative;
  overflow:hidden;
  transition:all var(--t-base);
}
.kpi:hover{border-color:var(--bd2)}
.kpi.hi{
  background:var(--s2);
  border-color:rgba(77,163,255,.25);
}
.kpi-lbl{font-weight:700;font-size:9px;color:var(--mu)}
.kpi-val{
  font-size:22px;
  color:var(--tx);
  font-weight:700;
}
.kpi.hi .kpi-val{color:var(--pr)}

/* Bot cards — clean with subtle accent on active */
.agent-card{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-lg);
  padding:14px;
  position:relative;
  overflow:hidden;
  transition:all var(--t-fast);
}
.agent-card:hover{
  border-color:var(--bd2);
  background:var(--s3);
}
.agent-card.active{
  border-color:rgba(77,163,255,.4);
  background:var(--s2);
}
.agent-card.active::before{
  content:"";
  position:absolute;left:0;top:0;bottom:0;width:3px;
  background:var(--pr);
}
.agent-card.stopped{opacity:.6}
.agent-card .ag-ico{
  background:var(--pr2) !important;
  border:1px solid var(--bd);
}
.ag-nm{font-size:13px;letter-spacing:-.1px}

/* Buttons — clean, solid colors (NO loud gradients) */
.btn{
  border-radius:var(--r-md);
  font-weight:600;
  letter-spacing:-.1px;
  transition:all var(--t-fast);
  font-size:12px;
  padding:7px 14px;
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.btn-primary{
  background:var(--pr) !important;
  color:white !important;
  border:1px solid var(--pr) !important;
}
.btn-primary:hover{background:#3d8eee !important;border-color:#3d8eee !important}
.btn-secondary{
  background:var(--s2) !important;
  border:1px solid var(--bd) !important;
  color:var(--tx) !important;
}
.btn-secondary:hover{border-color:var(--bd2);background:var(--s3) !important}
.btn-danger{
  background:var(--rd) !important;
  color:white !important;
  border:1px solid var(--rd) !important;
}
.btn-bot.btn-start{background:var(--gn) !important;color:white !important;border:1px solid var(--gn)}
.btn-bot.btn-stop{background:var(--gd) !important;color:white !important;border:1px solid var(--gd)}

/* FAB buttons — clean glass */
#toolbar{
  position:fixed;bottom:20px;right:20px;
  display:flex;flex-direction:column;gap:10px;z-index:100;
}
.fab{
  background:var(--s2) !important;
  border:1px solid var(--bd);
  border-radius:var(--r-xl);
  padding:11px 18px;
  font-size:12px;
  font-weight:600;
  color:var(--tx);
  display:flex;align-items:center;gap:8px;
  box-shadow:var(--sh1);
  transition:all var(--t-fast);
}
.fab:hover{border-color:var(--bd2);background:var(--s3) !important}
.fab.primary{
  background:var(--pr) !important;
  color:white !important;
  border:1px solid var(--pr);
}
.fab.primary:hover{background:#3d8eee !important;border-color:#3d8eee}

/* Modals — clean overlay */
.modal-overlay{
  background:rgba(0,0,0,.55) !important;
  backdrop-filter:blur(6px);
}
.modal{
  background:var(--s1) !important;
  border:1px solid var(--bd);
  border-radius:var(--r-xl) !important;
  box-shadow:var(--sh3);
}
.modal h3{
  letter-spacing:-.3px;
  color:var(--tx);
}

/* Form inputs — focused look */
input[type=text],input[type=number],input[type=email],input[type=password],select,textarea{
  background:var(--s2) !important;
  border:1px solid var(--bd) !important;
  border-radius:var(--r-md) !important;
  padding:8px 12px !important;
  color:var(--tx);
  transition:border-color var(--t-fast),box-shadow var(--t-fast);
  font-size:13px;
}
input:focus,select:focus,textarea:focus{
  outline:none !important;
  border-color:var(--pr) !important;
  box-shadow:0 0 0 3px var(--pr2);
}
/* Inputs that live INSIDE a styled wrapper must NOT get their own border/bg/
   padding — otherwise you get a box-in-a-box (double border). The wrappers
   (.bots2-search, .ai-inp-wrap, .act-toolbar search, etc.) provide the chrome. */
.bots2-search input, .ai-inp-wrap textarea, .ai-inp-wrap input,
.ai-prompt-bar input, .tag-input-wrap input, .set-blocked-add input,
#ai-text, #bots2-search{
  background:transparent !important;
  border:none !important;
  border-radius:0 !important;
  padding:0 !important;
  box-shadow:none !important;
}
.bots2-search input:focus, .ai-inp-wrap textarea:focus, #ai-text:focus, #bots2-search:focus{
  box-shadow:none !important;
}

/* Tray menus (notifications, tasks) */
.tray-menu{
  background:var(--s1) !important;
  border:1px solid var(--bd);
  border-radius:var(--r-lg);
  box-shadow:var(--sh3);
}
.tray-hd{border-bottom:1px solid var(--bd);padding:10px 14px}
.tray-item{transition:background var(--t-fast)}
.tray-item:hover{background:var(--s2)}
.tray-item-unread{background:rgba(77,163,255,.04)}

/* Add menu */
.add-menu{
  background:var(--s1) !important;
  border:1px solid var(--bd);
  border-radius:var(--r-xl);
  box-shadow:var(--sh3);
}
.add-menu button{
  border-radius:var(--r-md);
  transition:all var(--t-fast);
  font-size:12px;
  padding:8px 12px;
}
.add-menu button:hover{background:var(--s3) !important;color:var(--pr)}

/* Scrollbars — minimal */
*::-webkit-scrollbar{width:6px;height:6px}
*::-webkit-scrollbar-track{background:transparent}
*::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:99px}
*::-webkit-scrollbar-thumb:hover{background:var(--mu)}

/* Selection */
::selection{background:rgba(77,163,255,.25);color:var(--tx)}

/* Smooth focus rings */
*:focus-visible{outline:2px solid var(--pr);outline-offset:2px;border-radius:var(--r-sm)}
button:focus-visible,a:focus-visible{outline-offset:3px}

/* Headings */
h1,h2,h3,h4{letter-spacing:-.3px;font-weight:700}

/* App version chip */
#app-version{
  position:fixed;bottom:50px;left:10px;
  font-size:9px;color:var(--fa);
  font-family:'JetBrains Mono',monospace;
  z-index:1;
  pointer-events:none;
  letter-spacing:.5px;
}

/* Tab buttons clean */
.chart-tabs button.on{
  background:var(--pr2) !important;
  color:var(--pr) !important;
  border:1px solid rgba(77,163,255,.3);
}

/* Tag badges */
.badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:2px 8px;
  border-radius:99px;
  font-size:9px;
  font-weight:700;
  letter-spacing:.5px;
  text-transform:uppercase;
}
.b-paper{background:rgba(251,191,36,.12);color:var(--gd);border:1px solid rgba(251,191,36,.25)}
.b-active{background:rgba(34,197,94,.12);color:var(--gn);border:1px solid rgba(34,197,94,.25)}
.b-meta{background:rgba(168,85,247,.12);color:var(--pu);border:1px solid rgba(168,85,247,.25)}
.lev-badge{
  background:var(--pu2);
  color:var(--pu);
  padding:1px 6px;
  border-radius:99px;
  font-size:9px;
  font-weight:700;
  margin-left:6px;
  border:1px solid rgba(168,85,247,.2);
}

/* Monospace tnum for numbers */
.kpi-val,.tick,code,pre{font-feature-settings:"tnum","cv11"}

/* Smooth panel resize */
.resize-grip{opacity:.3;transition:opacity var(--t-fast)}
.panel:hover .resize-grip{opacity:.7}

/* Animations */
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.panel{animation:fadeIn .25s ease-out}
.modal{animation:fadeIn .2s ease-out}

/* Empty states */
.tray-empty{padding:30px 14px;text-align:center;color:var(--mu);font-size:12px}

/* Performance sparklines */
canvas{border-radius:var(--r-md)}

/* ════════════════════════════════════════════════════════════════════
   ENHANCED PANEL HEADERS — better hierarchy + fluidity
   ════════════════════════════════════════════════════════════════════ */
.panel-hd{
  display:flex;align-items:center;gap:10px;
  cursor:grab;
  user-select:none;
}
.panel-hd::after{
  content:"";
  position:absolute;left:0;right:0;bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--bd),transparent);
}
.panel-hd:active{cursor:grabbing}
.panel-hd .pc{
  width:18px;height:18px;
  border-radius:var(--r-sm);
  display:grid;place-items:center;
  color:var(--mu);font-size:9px;
  transition:all var(--t-fast);
}
.panel-hd .pc:hover{background:var(--s3);color:var(--tx)}

/* ════════════════════════════════════════════════════════════════════
   THUNDERAI — Deep AI integration UI
   ════════════════════════════════════════════════════════════════════ */
#ai-panel{
  background:var(--s1);
  border:1px solid var(--bd);
  border-radius:var(--r-xl);
  box-shadow:var(--sh3);
  width:420px !important;
}
.ai-hd{
  border-bottom:1px solid var(--bd);
  padding:14px 16px;
  position:relative;
  display:flex;align-items:center;gap:10px;
}
.ai-hd::after{
  content:"";
  position:absolute;left:16px;right:16px;bottom:0;
  height:1px;
  background:linear-gradient(90deg,transparent 0%,var(--pu) 50%,transparent 100%);
  opacity:.4;
}
.ai-ico{
  background:var(--pu2) !important;
  width:34px;height:34px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  color:var(--pu);font-size:15px;
  border:1px solid rgba(168,85,247,.25);
  position:relative;
}
.ai-ico::after{
  content:"";
  position:absolute;width:8px;height:8px;
  background:var(--gn);border-radius:50%;
  top:-2px;right:-2px;
  box-shadow:0 0 0 2px var(--s1),0 0 8px var(--gn);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.ai-hd strong{
  font-size:14px;
  font-weight:700;
  color:var(--tx);
  letter-spacing:-.2px;
}
.ai-hd-sub{
  font-size:10px;
  color:var(--mu);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:.5px;
}

.ai-chip{
  background:var(--s2) !important;
  border:1px solid var(--bd);
  border-radius:99px;
  padding:6px 12px;
  font-size:11px;
  color:var(--mu);
  transition:all var(--t-fast);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.ai-chip:hover{border-color:var(--pu);color:var(--tx);background:var(--s3) !important}
.ai-chip i{color:var(--pu);font-size:10px}

/* AI Insight pills — for proactive suggestions inline */
.ai-insight{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 10px;
  background:rgba(168,85,247,.08);
  border:1px solid rgba(168,85,247,.2);
  border-radius:99px;
  font-size:10px;
  color:var(--pu);
  font-weight:600;
  cursor:pointer;
  transition:all var(--t-fast);
}
.ai-insight:hover{background:rgba(168,85,247,.15);border-color:rgba(168,85,247,.4)}
.ai-insight i{font-size:9px}
.ai-insight-text{color:var(--tx);font-weight:500}

/* Inline AI prompt bar — appears at top of widgets */
.ai-prompt-bar{
  display:flex;align-items:center;gap:8px;
  padding:8px 12px;
  margin:0 0 10px;
  background:var(--s2);
  border:1px solid var(--bd);
  border-left:3px solid var(--pu);
  border-radius:var(--r-md);
  font-size:11px;
  color:var(--mu);
  cursor:text;
  transition:all var(--t-fast);
}
.ai-prompt-bar:hover{border-color:var(--bd2);border-left-color:var(--pu)}
.ai-prompt-bar i.ai-icon{color:var(--pu);font-size:11px}
.ai-prompt-bar input{
  flex:1;background:transparent !important;border:none !important;padding:0 !important;
  font-size:11px;color:var(--tx);outline:none;
}
.ai-prompt-bar input::placeholder{color:var(--mu)}
.ai-prompt-bar kbd{
  background:var(--s3);
  padding:1px 5px;
  border-radius:3px;
  font-size:9px;
  font-family:'JetBrains Mono',monospace;
  color:var(--mu);
  border:1px solid var(--bd);
}

/* AI suggestion floating pill (proactive) */
.ai-suggestion{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;
  background:var(--s2);
  border:1px solid var(--bd);
  border-left:3px solid var(--pu);
  border-radius:var(--r-md);
  font-size:11px;
  margin-bottom:10px;
  animation:fadeIn .3s ease-out;
}
.ai-suggestion-ic{
  width:24px;height:24px;
  background:rgba(168,85,247,.15);
  border-radius:7px;
  display:flex;align-items:center;justify-content:center;
  color:var(--pu);font-size:11px;
  flex-shrink:0;
}
.ai-suggestion-text{flex:1;color:var(--tx);line-height:1.5}
.ai-suggestion-text strong{color:var(--pu);font-weight:700}
.ai-suggestion-actions{display:flex;gap:6px;flex-shrink:0}
.ai-suggestion-btn{
  background:transparent;border:1px solid var(--bd);
  border-radius:var(--r-sm);padding:3px 9px;
  font-size:10px;color:var(--mu);
  cursor:pointer;transition:all var(--t-fast);
}
.ai-suggestion-btn:hover{border-color:var(--pu);color:var(--pu)}
.ai-suggestion-btn.primary{background:var(--pu);border-color:var(--pu);color:white}
.ai-suggestion-btn.primary:hover{background:#9333ea;border-color:#9333ea}

/* ThunderAI button in panel header — sets it apart from minimize/close */
.panel-hd .pc-ai{
  color:var(--pu);
  background:rgba(168,85,247,.08);
  border:1px solid rgba(168,85,247,.2);
  margin-right:4px;
  position:relative;
}
.panel-hd .pc-ai:hover{
  background:rgba(168,85,247,.18);
  border-color:rgba(168,85,247,.4);
  color:var(--pu);
}
.panel-hd .pc-ai i{font-size:8px}

/* Slight separator before close/minimize buttons */
.panel-hd .pc-ai + .pc{position:relative}
.panel-hd .pc-ai + .pc::before{
  content:"";
  position:absolute;
  left:-3px;top:6px;bottom:6px;width:1px;
  background:var(--bd);
}

/* Smooth panel hover lift (very subtle) */
.panel{
  transition:transform var(--t-fast), box-shadow var(--t-base), border-color var(--t-fast);
}

/* Smoother button press feedback */
button{transition:opacity var(--t-fast)}
button:active{opacity:.7}

/* Ticker bar items + tick-btn cleaner */
.tick-btn .tick-badge{
  background:var(--rd);
  color:white;
  font-size:9px;
  font-weight:700;
}
.tick-btn .tick-badge-red{background:var(--rd)}

/* Better empty-state padding everywhere */
.tray-empty,.empty-state{padding:36px 16px;text-align:center;color:var(--mu);font-size:12px;line-height:1.6}

/* Better panel body padding consistency */
.panel-bd{padding:14px}

/* AI Panel — show open state on body */
#ai-panel{
  transition:transform .3s cubic-bezier(.4,0,.2,1), opacity .25s;
  transform:translateY(20px);
  opacity:0;
  pointer-events:none;
}
#ai-panel.open{transform:none;opacity:1;pointer-events:auto}

/* ════════════════════════════════════════════════════════════════════
   THUNDEROS Phase 1 — Compact headers, edge resizing, taskbar
   ════════════════════════════════════════════════════════════════════ */

/* Compact panel header — was 42px, now 30px */
.panel-hd{height:30px !important;padding:0 8px !important;gap:7px}
.panel-hd h3{font-size:11px !important;font-weight:600 !important}
.panel-hd .pc{width:15px !important;height:15px !important;font-size:8px}
.panel-hd .panel-dot{width:6px;height:6px}
.panel-hd .panel-search{padding:3px 8px !important;font-size:10px !important;height:22px}
.panel-hd select{padding:2px 6px !important;font-size:10px !important;height:22px}

/* Maximized panel — dim the rest */
.panel-maximized{
  border-color:var(--pr) !important;
  box-shadow:0 0 0 2px rgba(77,163,255,.2),0 30px 80px rgba(0,0,0,.6) !important;
}

/* 8 resize handles — 4 edges + 4 corners */
.resize-edge,.resize-corner{
  position:absolute;
  z-index:5;
  background:transparent;
}
.resize-edge.re-n{top:0;left:8px;right:8px;height:6px;cursor:ns-resize}
.resize-edge.re-s{bottom:0;left:8px;right:8px;height:6px;cursor:ns-resize}
.resize-edge.re-e{top:8px;bottom:8px;right:0;width:6px;cursor:ew-resize}
.resize-edge.re-w{top:8px;bottom:8px;left:0;width:6px;cursor:ew-resize}
.resize-corner.rc-ne{top:0;right:0;width:12px;height:12px;cursor:nesw-resize}
.resize-corner.rc-nw{top:0;left:0;width:12px;height:12px;cursor:nwse-resize}
.resize-corner.rc-se{bottom:0;right:0;width:14px;height:14px;cursor:nwse-resize}
.resize-corner.rc-sw{bottom:0;left:0;width:12px;height:12px;cursor:nesw-resize}
/* Subtle visual hint on the bottom-right corner */
.resize-corner.rc-se::after{
  content:"";
  position:absolute;right:3px;bottom:3px;
  width:6px;height:6px;
  border-right:2px solid var(--bd2);
  border-bottom:2px solid var(--bd2);
  opacity:0;transition:opacity var(--t-fast);
}
.panel:hover .resize-corner.rc-se::after{opacity:.6}

/* Taskbar (was mini-dock) — full OS taskbar at bottom */
#mini-dock{
  position:fixed;
  bottom:0;left:0;right:0;
  height:44px;
  background:rgba(14,18,25,.92);
  backdrop-filter:blur(12px);
  border-top:1px solid var(--bd);
  z-index:9000;
  display:flex;
  gap:4px;
  padding:6px 12px;
  align-items:center;
  overflow-x:auto;
}
#mini-dock::-webkit-scrollbar{display:none}
.dock-item{
  display:flex;align-items:center;gap:6px;
  padding:5px 12px;
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-sm);
  font-size:11px;
  color:var(--tx);
  cursor:pointer;
  transition:all var(--t-fast);
  flex-shrink:0;
  max-width:180px;
}
.dock-item:hover{background:var(--s3);border-color:var(--bd2)}
.dock-item.dock-min{opacity:.6;border-style:dashed}
.dock-item.dock-min:hover{opacity:1}
.dock-item i{font-size:10px}
.dock-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}

/* Workspace gets bottom padding so taskbar doesn't cover panels */
#workspace{padding-bottom:60px !important}

/* Settings button on the right of the taskbar */
.dock-spacer{flex:1}
.dock-btn{
  background:none;border:none;color:var(--mu);
  padding:5px 9px;font-size:11px;cursor:pointer;
  display:flex;align-items:center;gap:5px;
  border-radius:var(--r-sm);
  transition:all var(--t-fast);
}
.dock-btn:hover{background:var(--s3);color:var(--tx)}

/* ════════════════════════════════════════════════════════════════════
   BOTS WIDGET REDESIGN
   ════════════════════════════════════════════════════════════════════ */
.empty-pane{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  height:100%;padding:32px 20px;text-align:center;
}
.bot-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
  gap:12px;
  height:100%;overflow-y:auto;
  padding:4px;
  align-content:start;
}
.bot-grid::-webkit-scrollbar{width:6px}

.bcard{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-lg);
  padding:14px;
  cursor:pointer;
  transition:all var(--t-fast);
  display:flex;flex-direction:column;
  gap:10px;
  position:relative;
  overflow:hidden;
  min-height:180px;
}
.bcard:hover{border-color:var(--bd2);background:var(--s3);transform:translateY(-1px)}
.bcard-active{border-left:3px solid var(--gn)}
.bcard-stopped{opacity:.65}
.bcard-stopped:hover{opacity:.95}
.bcard-selected{border-color:var(--pr) !important;background:rgba(77,163,255,.04) !important}

.bcard-top{
  display:flex;align-items:center;justify-content:space-between;
  gap:6px;
}
.bcard-status{
  display:flex;align-items:center;gap:5px;
  font-size:9px;font-weight:700;
  letter-spacing:.5px;
}
.bcard-status i{font-size:8px}
.bcard-actions{display:flex;gap:4px}
.bcard-act{
  width:26px;height:26px;
  background:var(--s3);
  border:1px solid var(--bd);
  border-radius:var(--r-sm);
  cursor:pointer;
  font-size:10px;
  display:grid;place-items:center;
  transition:all var(--t-fast);
  color:var(--tx);
}
.bcard-act-start{color:var(--gn);border-color:rgba(34,197,94,.25)}
.bcard-act-start:hover{background:var(--gn);color:white;border-color:var(--gn)}
.bcard-act-stop{color:var(--gd);border-color:rgba(251,191,36,.25)}
.bcard-act-stop:hover{background:var(--gd);color:white;border-color:var(--gd)}

.bcard-name-row{
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
}
.bcard-name{
  font-size:14px;font-weight:700;
  color:var(--tx);
  margin:0;
  letter-spacing:-.2px;
  flex:1;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

.bcard-meta{
  display:flex;gap:10px;
  font-size:10px;color:var(--mu);
  flex-wrap:wrap;
}
.bcard-meta i{margin-right:3px;font-size:9px;opacity:.7}

.bcard-value-row{
  display:flex;justify-content:space-between;
  padding:8px 0;
  border-top:1px solid var(--bd);
  border-bottom:1px solid var(--bd);
}
.bcard-value-lbl{
  font-size:9px;color:var(--mu);
  text-transform:uppercase;letter-spacing:.5px;
  font-weight:600;
  margin-bottom:2px;
}
.bcard-value strong,.bcard-pnl strong{
  font-size:15px;font-weight:700;
  color:var(--tx);
  font-family:'JetBrains Mono',monospace;
  letter-spacing:-.3px;
}
.bcard-pnl{text-align:right}

.bcard-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:6px;
}
.bcard-stat{text-align:center}
.bcard-stat-val{
  font-size:13px;font-weight:700;
  color:var(--tx);
  font-family:'JetBrains Mono',monospace;
  letter-spacing:-.2px;
}
.bcard-stat-lbl{
  font-size:8px;color:var(--mu);
  text-transform:uppercase;letter-spacing:.5px;
  font-weight:600;
  margin-top:2px;
}

.bcard-breakdown{
  display:flex;gap:8px;flex-wrap:wrap;
  font-size:9px;color:var(--mu);
  padding:6px 8px;
  background:var(--s1);
  border-radius:var(--r-sm);
}
.bcard-breakdown i{margin-right:3px;font-size:8px}

.bcard-footer{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:6px;
  border-top:1px solid var(--bd);
  font-size:10px;color:var(--mu);
  margin-top:auto;
}
.bcard-model{
  display:flex;align-items:center;gap:4px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.bcard-model i{font-size:9px}
.bcard-sup{
  color:var(--pu);
  background:var(--pu2);
  padding:2px 6px;
  border-radius:99px;
  font-size:9px;
  border:1px solid rgba(168,85,247,.2);
}

/* ════════════════════════════════════════════════════════════════════
   OVERVIEW WIDGET
   ════════════════════════════════════════════════════════════════════ */
.ov-grid{
  display:grid;grid-template-rows:auto auto auto auto;
  gap:12px;
  height:100%;
}
.ov-hero{
  background:linear-gradient(135deg,var(--pr) 0%,#3d8eee 100%);
  border-radius:var(--r-lg);
  padding:18px 20px;
  color:white;
  display:flex;flex-direction:column;
  gap:6px;
  position:relative;
  overflow:hidden;
}
.ov-hero::after{
  content:"";
  position:absolute;
  right:-30px;top:-30px;
  width:140px;height:140px;
  background:rgba(255,255,255,.06);
  border-radius:50%;
}
.ov-hero-label{
  font-size:10px;font-weight:700;
  text-transform:uppercase;letter-spacing:.8px;
  opacity:.85;
  display:flex;align-items:center;gap:6px;
}
.ov-hero-label i{font-size:9px}
.ov-hero-value{
  font-size:32px;font-weight:800;
  letter-spacing:-.8px;
  font-family:'JetBrains Mono',monospace;
  position:relative;z-index:1;
}
.ov-hero-meta{
  display:flex;gap:14px;flex-wrap:wrap;
  font-size:11px;
  font-weight:600;
  position:relative;z-index:1;
}
.ov-hero-meta i{font-size:9px;margin-right:3px}

.ov-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:8px;
}
.ov-stat{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  padding:10px 12px;
  display:flex;align-items:center;gap:10px;
}
.ov-stat-icon{
  width:32px;height:32px;
  border-radius:var(--r-sm);
  display:grid;place-items:center;
  font-size:13px;
  flex-shrink:0;
}
.ov-stat-val{
  font-size:16px;font-weight:700;
  letter-spacing:-.3px;
  color:var(--tx);
  font-family:'JetBrains Mono',monospace;
}
.ov-stat-lbl{
  font-size:9px;color:var(--mu);
  text-transform:uppercase;letter-spacing:.5px;
  font-weight:600;
  margin-top:1px;
}

.ov-movers{
  display:grid;grid-template-columns:1fr 1fr;
  gap:10px;
}
.ov-mover-col{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  padding:10px 12px;
}
.ov-mover-title{
  font-size:10px;font-weight:700;
  color:var(--tx);
  text-transform:uppercase;letter-spacing:.5px;
  margin-bottom:8px;
  display:flex;align-items:center;gap:6px;
}
.ov-mover-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:5px 0;
  border-bottom:1px dotted var(--bd);
  font-size:11px;
  cursor:pointer;
}
.ov-mover-row:last-child{border-bottom:none}
.ov-mover-row:hover{padding-left:4px;transition:padding var(--t-fast)}
.ov-mover-name{
  color:var(--tx);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  flex:1;min-width:0;margin-right:8px;
}
.ov-mover-val{
  font-family:'JetBrains Mono',monospace;
  font-weight:600;
  font-size:11px;
}
.ov-mover-empty{
  font-size:10px;color:var(--mu);
  text-align:center;padding:6px 0;
  font-style:italic;
}

.ov-footer{
  display:flex;gap:14px;
  padding:8px 4px 0;
  font-size:10px;color:var(--mu);
  flex-wrap:wrap;
  margin-top:auto;
  border-top:1px solid var(--bd);
}
.ov-footer strong{color:var(--tx)}

/* ════════════════════════════════════════════════════════════════════
   CHART WIDGET — info bar + buttons
   ════════════════════════════════════════════════════════════════════ */
.chart-tabs{
  display:flex;gap:4px;align-items:center;
  margin-bottom:8px;
  flex-wrap:wrap;
}
.chart-tabs button{
  padding:4px 10px;
  border-radius:var(--r-sm);
  font-size:10px;
  color:var(--mu);
  background:var(--s2);
  border:1px solid transparent;
  cursor:pointer;
  transition:all var(--t-fast);
  font-family:'JetBrains Mono',monospace;
  font-weight:600;
}
.chart-tabs button:hover{color:var(--tx)}
.chart-tabs button.on{
  background:var(--pr2) !important;
  color:var(--pr) !important;
  border:1px solid rgba(77,163,255,.3);
}
.chart-mode-toggle,.chart-adv{
  display:flex;align-items:center;gap:5px;
  padding:4px 10px !important;
  font-size:10px;
}

.chart-info{
  display:flex;align-items:baseline;gap:14px;
  padding:6px 4px 8px;
  font-family:'JetBrains Mono',monospace;
  flex-wrap:wrap;
  border-bottom:1px solid var(--bd);
  margin-bottom:8px;
}
.ci-pair{font-size:14px;font-weight:700;color:var(--tx)}
.ci-price{font-size:18px;font-weight:700;color:var(--tx);letter-spacing:-.3px}
.ci-change{font-size:12px;font-weight:700}
.ci-meta{font-size:10px;color:var(--mu)}
.ci-meta span{margin-right:10px}

.chart-wrap{position:relative;height:calc(100% - 70px);min-height:200px}

/* ════════════════════════════════════════════════════════════════════
   ACTIVITY WIDGET
   ════════════════════════════════════════════════════════════════════ */
.act-wrap{display:flex;flex-direction:column;height:100%;gap:8px}
.act-toolbar{
  display:flex;gap:6px;align-items:center;flex-wrap:wrap;
  padding:0 2px;
}
.act-toolbar input,.act-toolbar select{
  padding:5px 10px !important;
  font-size:11px !important;
  height:28px;
}
.act-toolbar input{flex:1;min-width:140px}
.act-toolbar select{min-width:100px}
.act-list{flex:1;overflow-y:auto}
.act-table{width:100%;border-collapse:collapse;font-size:11px}
.act-table th{
  position:sticky;top:0;
  text-align:left;
  padding:7px 8px;
  background:var(--s2);
  border-bottom:1px solid var(--bd);
  color:var(--mu);
  font-weight:700;
  font-size:9px;
  text-transform:uppercase;letter-spacing:.5px;
}
.act-table td{padding:8px;border-bottom:1px solid var(--bd);vertical-align:top}
.act-table tr:hover td{background:var(--s2)}
.act-time{font-family:'JetBrains Mono',monospace;font-size:10px;color:var(--mu);white-space:nowrap}
.act-bot{font-size:11px;color:var(--tx);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.act-badge{
  display:inline-block;
  padding:2px 8px;
  border-radius:99px;
  font-size:9px;
  font-weight:700;
  letter-spacing:.5px;
  font-family:'JetBrains Mono',monospace;
}
.act-buy{background:rgba(34,197,94,.15);color:var(--gn);border:1px solid rgba(34,197,94,.3)}
.act-sell{background:rgba(239,68,68,.15);color:var(--rd);border:1px solid rgba(239,68,68,.3)}
.act-wait{background:var(--s3);color:var(--mu);border:1px solid var(--bd)}
.act-err{background:rgba(239,68,68,.25);color:var(--rd);border:1px solid var(--rd);font-weight:700}
.act-sym{
  font-family:'JetBrains Mono',monospace;
  font-size:11px;
  color:var(--bl);
  cursor:pointer;
  font-weight:600;
}
.act-sym:hover{text-decoration:underline}
.act-reason{font-size:11px;color:var(--tx);line-height:1.4}
.act-count{margin-left:auto}

/* ════════════════════════════════════════════════════════════════════
   ORDER BOOK WIDGET — better depth viz + whale detection
   ════════════════════════════════════════════════════════════════════ */
.ob-header{
  display:flex;justify-content:space-between;align-items:center;
  padding:6px 10px 8px;
  border-bottom:1px solid var(--bd);
  margin-bottom:6px;
}
.ob-h-pair{font-size:13px;font-weight:700;color:var(--tx)}
.ob-h-mid{
  font-size:18px;font-weight:700;
  font-family:'JetBrains Mono',monospace;
  color:var(--tx);
  letter-spacing:-.3px;
}
.ob-h-spread{display:flex;flex-direction:column;align-items:flex-end;gap:1px}
.ob-h-spread-lbl{font-size:8px;font-weight:700;color:var(--mu);letter-spacing:.5px}
.ob-h-spread-val{font-size:11px;font-family:'JetBrains Mono',monospace;color:var(--tx)}
.ob-cols{
  display:grid;grid-template-columns:1fr 1fr 1fr;
  font-size:9px;font-weight:700;color:var(--mu);
  text-transform:uppercase;letter-spacing:.5px;
  padding:0 8px 4px;
  border-bottom:1px solid var(--bd);
}
.ob-cols span:nth-child(2),.ob-cols span:nth-child(3){text-align:right}
.ob-lines{display:flex;flex-direction:column;gap:0}
.ob-line{
  position:relative;
  display:grid;grid-template-columns:1fr 1fr 1fr;
  padding:3px 8px;
  font-size:11px;
  font-family:'JetBrains Mono',monospace;
  align-items:center;
}
.ob-bar{
  position:absolute;
  right:0;top:0;bottom:0;
  opacity:.18;
  pointer-events:none;
}
.ob-ask .ob-bar{background:var(--rd)}
.ob-bid .ob-bar{background:var(--gn)}
.ob-line:hover{background:var(--s2)}
.ob-line.ob-whale{box-shadow:inset 2px 0 0 var(--pu)}
.ob-price{position:relative;z-index:1;font-weight:600}
.ob-qty{position:relative;z-index:1;text-align:right;color:var(--tx)}
.ob-total{position:relative;z-index:1;text-align:right;color:var(--mu);font-size:10px}
.ob-spread-row{
  display:flex;align-items:center;justify-content:center;
  padding:6px 0;
  border-top:1px dashed var(--bd);
  border-bottom:1px dashed var(--bd);
  margin:2px 0;
}
.ob-spread-mid{
  font-size:10px;
  color:var(--pr);
  font-weight:700;
  font-family:'JetBrains Mono',monospace;
  display:flex;align-items:center;gap:6px;
}

/* ════════════════════════════════════════════════════════════════════
   SENTIMENT WIDGET
   ════════════════════════════════════════════════════════════════════ */
.sent-wrap{display:flex;flex-direction:column;gap:12px;height:100%}
.sent-gauge-card,.sent-stats-grid{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  padding:14px;
}
.sent-card-title{
  font-size:10px;font-weight:700;
  color:var(--mu);
  text-transform:uppercase;letter-spacing:.5px;
  margin-bottom:10px;
  display:flex;align-items:center;gap:6px;
}
.sent-card-meta{
  font-size:9px;color:var(--mu);font-weight:500;
  text-transform:none;letter-spacing:0;
  margin-left:auto;
}
.sent-gauge-row{
  display:grid;grid-template-columns:auto 1fr;gap:14px;
  align-items:center;
}
.sent-gauge{position:relative;text-align:center}
.sent-gauge-val{
  position:absolute;top:48%;left:50%;
  transform:translate(-50%,-30%);
  text-align:center;
}
.sent-gauge-val strong{
  display:block;
  font-size:28px;font-weight:800;
  font-family:'JetBrains Mono',monospace;
  letter-spacing:-.5px;line-height:1;
}
.sent-gauge-val span{
  display:block;
  font-size:9px;font-weight:700;
  text-transform:uppercase;
  letter-spacing:.5px;
  margin-top:2px;
}
.sent-gauge-info{display:flex;flex-direction:column;gap:3px}
.sent-info-line{font-size:10px;color:var(--mu)}
.sent-info-line span{font-weight:700}
.sent-stats-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:8px;
  padding:10px;
}
.sent-stat{
  background:var(--s1);
  border:1px solid var(--bd);
  border-radius:var(--r-sm);
  padding:8px 10px;
}
.sent-stat-lbl{
  font-size:9px;color:var(--mu);
  text-transform:uppercase;letter-spacing:.5px;
  font-weight:600;
  margin-bottom:3px;
}
.sent-stat-val{
  font-family:'JetBrains Mono',monospace;
  font-size:14px;font-weight:700;
  color:var(--tx);
  letter-spacing:-.2px;
}
.sent-footer{
  font-size:10px;color:var(--mu);
  padding:6px 4px 0;
  border-top:1px solid var(--bd);
  margin-top:auto;
}

/* ════════════════════════════════════════════════════════════════════
   BOT DETAIL v2
   ════════════════════════════════════════════════════════════════════ */
.bdv2{display:flex;flex-direction:column;gap:10px;height:100%;min-height:0}
.bdc-head,.bdc-stats,.bdc-meta,.bdc-tabs{flex:0 0 auto}
#bd-tab-content{flex:1 1 auto;min-height:0;overflow:auto}
.bdv2-status-dot{
  width:8px;height:8px;border-radius:50%;
  flex-shrink:0;
}

/* ── Compact Bot Detail (dense, professional) ── */
.bdc-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
}
.bdc-title{display:flex;align-items:center;gap:8px;min-width:0;flex:1}
.bdc-title h2{
  font-size:15px;font-weight:700;margin:0;letter-spacing:-.2px;color:var(--tx);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.bdc-actions{display:flex;gap:6px;flex-shrink:0;margin-left:12px}
.btn-sm{padding:5px 9px !important;font-size:11px !important;min-width:30px;justify-content:center}
.bdc-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:4px;
  background:var(--bd);border:1px solid var(--bd);border-radius:var(--r-md);
  overflow:hidden;
}
.bdc-stat{
  display:flex;flex-direction:column;gap:1px;
  padding:8px 10px;background:var(--s2);
}
.bdc-k{font-size:9px;font-weight:600;color:var(--mu);text-transform:uppercase;letter-spacing:.4px}
.bdc-v{font-size:16px;font-weight:700;font-family:'JetBrains Mono',monospace;color:var(--tx);line-height:1.15;letter-spacing:-.3px}
.bdc-s{font-size:9.5px;color:var(--mu);font-weight:500}
.bdc-meta{
  display:flex;gap:12px;flex-wrap:wrap;align-items:center;
  font-size:10.5px;color:var(--mu);
}
.bdc-meta i{margin-right:3px;font-size:9px;opacity:.8}
.bdc-meta strong{color:var(--tx);font-weight:600}
.bdc-tabs{display:flex;gap:2px;border-bottom:1px solid var(--bd)}
.bdc-tab{
  padding:7px 12px;background:none;border:none;
  border-bottom:2px solid transparent;
  font-size:11.5px;font-weight:600;color:var(--mu);cursor:pointer;
  display:flex;align-items:center;gap:5px;transition:color .12s;
}
.bdc-tab i{font-size:10px}
.bdc-tab:hover{color:var(--tx)}
.bdc-tab.on{color:var(--pr);border-bottom-color:var(--pr)}
.bdc-tab.on.sup{color:var(--pu);border-bottom-color:var(--pu)}
@media(max-width:520px){
  .bdc-stats{grid-template-columns:repeat(2,1fr)}
}

.bd-tabs{display:flex;gap:4px;border-bottom:1px solid var(--bd);padding-bottom:0}
.bd-tab{
  padding:8px 14px;
  background:none !important;
  border:none !important;
  border-bottom:2px solid transparent !important;
  border-radius:0 !important;
  font-size:12px;
  color:var(--mu);
  cursor:pointer;
  transition:all var(--t-fast);
  display:flex;align-items:center;gap:6px;
}
.bd-tab:hover{color:var(--tx)}
.bd-tab.on{color:var(--pr) !important;border-bottom-color:var(--pr) !important;font-weight:600}

/* ════════════════════════════════════════════════════════════════════
   WALLET CARDS v2
   ════════════════════════════════════════════════════════════════════ */
.wallet-card-v2{
  display:flex;align-items:center;gap:14px;
  padding:14px;
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  margin-bottom:8px;
  transition:all var(--t-fast);
}
.wallet-card-v2:hover{border-color:var(--bd2)}
.wcv2-icon{
  width:42px;height:42px;
  border-radius:var(--r-sm);
  display:grid;place-items:center;
  font-size:16px;
  flex-shrink:0;
}
.wcv2-info{flex:1;min-width:0}
.wcv2-name-row{
  display:flex;align-items:center;gap:8px;
  margin-bottom:4px;
  flex-wrap:wrap;
}
.wcv2-name-row strong{font-size:13px;color:var(--tx);font-weight:700}
.wcv2-meta{
  display:flex;gap:14px;
  font-size:10px;color:var(--mu);
  margin-bottom:6px;
  flex-wrap:wrap;
}
.wcv2-meta i{margin-right:4px;opacity:.7}
.wcv2-type-row{
  display:flex;align-items:center;gap:6px;
  font-size:10px;
}
.wcv2-actions{
  display:flex;gap:5px;
  flex-shrink:0;
}

/* ════════════════════════════════════════════════════════════════════
   RISK CONTROLS WIDGET
   ════════════════════════════════════════════════════════════════════ */
.risk-wrap{display:flex;flex-direction:column;gap:14px;height:100%}
.risk-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.risk-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:10px;
}
.risk-metric{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  padding:12px 14px;
  display:flex;align-items:center;gap:10px;
}
.risk-metric-icon{
  width:36px;height:36px;
  border-radius:var(--r-sm);
  display:grid;place-items:center;
  font-size:14px;flex-shrink:0;
}
.risk-metric-lbl{
  font-size:9px;font-weight:700;color:var(--mu);
  text-transform:uppercase;letter-spacing:.5px;
}
.risk-metric-val{
  font-size:18px;font-weight:800;
  color:var(--tx);
  font-family:'JetBrains Mono',monospace;
  letter-spacing:-.4px;
  margin-top:2px;
}
.risk-metric-sub{
  font-size:10px;color:var(--mu);
  margin-top:2px;
}
.risk-warns{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  padding:12px 14px;
}
.risk-warn-row{
  display:flex;align-items:flex-start;gap:8px;
  padding:6px 0;
  font-size:11px;color:var(--tx);
  line-height:1.5;
}
.risk-warn-row + .risk-warn-row{border-top:1px dashed var(--bd)}
.risk-bot-list{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  padding:12px 14px;
}
.risk-bot-list table{margin-top:6px}
.risk-bot-list .act-table tr:hover{background:var(--s3)}
.risk-footer{
  font-size:10px;color:var(--mu);
  padding:8px 4px 0;
  line-height:1.5;
  border-top:1px solid var(--bd);
}
.risk-footer code{
  background:var(--s2);padding:1px 5px;border-radius:3px;
  font-size:.85em;color:var(--gd);
}

/* ════════════════════════════════════════════════════════════════════
   RUNNING BOTS PILL + POPUP
   ════════════════════════════════════════════════════════════════════ */
/* ════════════════════════════════════════════════════════════════════
   TOPBAR PILL BUTTONS (running bots, approvals, etc.)
   ────────────────────────────────────────────────────────────────────
   `.tick-pill` is for buttons with text content (not just an icon).
   It does NOT inherit `.tick-btn` 30×30 sizing so labels can render.
   ════════════════════════════════════════════════════════════════════ */
.tick-pill{
  display:flex;align-items:center;gap:6px;
  height:30px;
  padding:0 10px;
  border-radius:8px;
  background:var(--s2);
  border:1px solid var(--bd);
  color:var(--tx);
  font-size:11px;font-weight:600;
  cursor:pointer;
  white-space:nowrap;
  flex-shrink:0;
  transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast);
}
.tick-pill:hover{background:var(--s3);border-color:var(--bd2)}
.tick-pill .rb-count{font-family:'JetBrains Mono',monospace;font-size:12px;font-weight:700}
.tick-pill .rb-label{font-size:10px;color:var(--mu);font-weight:500}
.tick-pill .rb-pnl{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;margin-left:4px}

.rb-pill{
  background:rgba(34,197,94,.08) !important;
  border-color:rgba(34,197,94,.25) !important;
}
.rb-pill:hover{
  background:rgba(34,197,94,.14) !important;
  border-color:rgba(34,197,94,.4) !important;
}
.rb-pill .rb-dot{
  width:6px;height:6px;border-radius:50%;
  background:var(--gn);
  box-shadow:0 0 6px var(--gn);
  animation:rb-pulse 1.5s infinite;
  flex-shrink:0;
}
@keyframes rb-pulse{0%,100%{opacity:1}50%{opacity:.5}}
.rb-pill > i{color:var(--gn);font-size:11px}

#rb-popup{
  position:fixed;
  z-index:200;
  background:var(--s1);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  box-shadow:var(--sh3);
  min-width:340px;
  max-width:420px;
  max-height:60vh;
  overflow-y:auto;
}
.rb-pop-hd{
  padding:10px 14px;
  border-bottom:1px solid var(--bd);
  font-size:12px;font-weight:700;color:var(--tx);
  display:flex;align-items:center;gap:6px;
}
.rb-pop-row{
  display:flex;justify-content:space-between;align-items:center;
  gap:14px;
  padding:10px 14px;
  border-bottom:1px solid var(--bd);
  cursor:pointer;
  transition:background var(--t-fast);
}
.rb-pop-row:hover{background:var(--s2)}
.rb-pop-row:last-of-type{border-bottom:none}
.rb-pop-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.rb-pop-left strong{font-size:12px;color:var(--tx)}
.rb-pop-right{display:flex;flex-direction:column;align-items:flex-end;gap:1px;flex-shrink:0}
.rb-dot-active{
  width:8px;height:8px;border-radius:50%;
  background:var(--gn);
  box-shadow:0 0 6px var(--gn);
  flex-shrink:0;
}
.rb-pop-ft{
  display:flex;gap:6px;
  padding:10px 14px;
  border-top:1px solid var(--bd);
  background:var(--s2);
}

/* ════════════════════════════════════════════════════════════════════
   BACKTEST WIDGET
   ════════════════════════════════════════════════════════════════════ */
.bt-wrap{display:flex;flex-direction:column;gap:12px;height:100%}
.bt-form{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  padding:14px;
  display:flex;flex-direction:column;gap:10px;
}
.bt-results{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  padding:14px;
  flex:1;min-height:200px;
  display:flex;flex-direction:column;
}
.bt-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  flex:1;text-align:center;
}
.bt-stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));
  gap:8px;margin-bottom:14px;
}
.bt-stat{
  background:var(--s1);
  border:1px solid var(--bd);
  border-radius:var(--r-sm);
  padding:8px 10px;
}
.bt-stat-lbl{
  font-size:9px;font-weight:700;color:var(--mu);
  text-transform:uppercase;letter-spacing:.5px;
}
.bt-stat-val{
  font-size:14px;font-weight:700;color:var(--tx);
  font-family:'JetBrains Mono',monospace;
  letter-spacing:-.2px;
  margin-top:3px;
}
.bt-chart-wrap{
  flex:1;min-height:160px;
  background:var(--s1);border-radius:var(--r-sm);
  border:1px solid var(--bd);
  padding:8px;
}
.bt-footer{font-size:10px;color:var(--mu);padding:6px 4px;line-height:1.5}

/* ════════════════════════════════════════════════════════════════════
   PREMIUM TAB SYSTEM — system-wide reusable
   ════════════════════════════════════════════════════════════════════ */

/* Modern tabs (replaces legacy bd-tabs styling) */
.bd-tabs,.tab-bar{
  display:flex;
  gap:2px;
  padding:3px;
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  margin-bottom:10px;
  overflow-x:auto;
}
.bd-tabs::-webkit-scrollbar,.tab-bar::-webkit-scrollbar{display:none}
.bd-tab,.tab-btn{
  flex:1;
  display:flex;align-items:center;justify-content:center;gap:6px;
  padding:7px 12px !important;
  background:transparent !important;
  color:var(--mu) !important;
  border:none !important;
  border-radius:var(--r-sm) !important;
  font-size:11.5px !important;
  font-weight:600 !important;
  cursor:pointer;
  transition:all var(--t-fast);
  white-space:nowrap;
  min-width:fit-content;
  border-bottom:none !important;
}
.bd-tab:hover,.tab-btn:hover{
  background:var(--s3) !important;
  color:var(--tx) !important;
}
.bd-tab.on,.tab-btn.on,.tab-btn.active{
  background:var(--pr) !important;
  color:white !important;
  box-shadow:0 2px 6px rgba(77,163,255,.25);
}
.bd-tab i,.tab-btn i{font-size:11px}

/* ════════════════════════════════════════════════════════════════════
   WIDGET OVERFLOW + SCROLL CONTAINER FIXES
   ════════════════════════════════════════════════════════════════════ */
.panel-bd{
  /* Default: scroll vertically but never have phantom horizontal scroll */
  overflow-y:auto !important;
  overflow-x:hidden;
  display:flex;
  flex-direction:column;
}
.panel-bd > *{flex-shrink:0}
.panel-bd > *:last-child{
  /* Allow last child to absorb remaining height if it's a list/table */
  margin-bottom:0;
}

/* Cards inside scrollable panels need to wrap properly */
.bcard-grid,.bot-grid,.ov-grid,.bdv2,.act-wrap,.bt-wrap,.risk-wrap,.sent-wrap{
  min-width:0;  /* allow shrinking */
}

/* Long text with overflow should ellipsize, not break layout */
.bcard-name,.act-bot,.ov-mover-name,.dock-label,.rb-pop-left strong{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}

/* Tables in panels — make them scroll horizontally if too wide */
.panel-bd table{
  min-width:0;
}
.act-list,.risk-bot-list{
  overflow-x:auto;
}
.act-list::-webkit-scrollbar-thumb,.risk-bot-list::-webkit-scrollbar-thumb{background:var(--bd2)}

/* Form rows wrap on narrow widgets */
.form-row{flex-wrap:wrap}
.form-row .form-group{min-width:140px;flex:1}

/* Modal: never overflow viewport */
.modal{
  max-height:90vh;
  overflow-y:auto;
  max-width:90vw;
}
.modal .modal-actions{
  position:sticky;bottom:-12px;
  background:var(--s1);
  margin:14px -14px -14px;
  padding:14px;
  border-top:1px solid var(--bd);
}

/* Modal pre (code preview) needs horizontal scroll, not break */
.modal pre{overflow-x:auto;white-space:pre}

/* Approval modal diff view — ensure both panes scroll independently */
.modal pre,.preview-source,.bcard-meta,.bdv2-meta-row{min-width:0}

/* Bot grid responsive padding */
@media (max-width:600px){
  .bot-grid{grid-template-columns:1fr}
  .bdv2-stats{grid-template-columns:repeat(2,1fr)}
  .ov-stats{grid-template-columns:repeat(2,1fr)}
  .ov-movers{grid-template-columns:1fr}
}

/* Tray popups (notifications, tasks, ticker config) — better max heights */
.tray-menu{
  max-height:70vh;
  overflow-y:auto;
}

/* Marketplace modal: wider for diff views */
.modal:has(.mp-search-row){max-width:920px}

/* ────────────────────────────────────────────────────────────
   COMPACT INPUTS — reduce wasted vertical space in forms
   ──────────────────────────────────────────────────────────── */
.form-group{margin-bottom:10px}
.form-group label{
  font-size:10px !important;
  font-weight:600;
  color:var(--mu);
  text-transform:uppercase;
  letter-spacing:.4px;
  margin-bottom:4px;
  display:block;
}
.form-group input,.form-group select,.form-group textarea{
  height:34px;
}
.form-group textarea{height:auto;min-height:60px}

/* ════════════════════════════════════════════════════════════════════
   MY LLMs WIDGET
   ════════════════════════════════════════════════════════════════════ */
.llm-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:10px;
}
.llm-card{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-lg);
  padding:14px;
  display:flex;flex-direction:column;
  gap:10px;
  transition:all var(--t-fast);
}
.llm-card:hover{border-color:var(--bd2)}
.llm-disabled{opacity:.6}
.llm-card-top{display:flex;align-items:center;gap:10px}
.llm-icon{
  width:36px;height:36px;
  border-radius:var(--r-sm);
  display:grid;place-items:center;
  font-size:14px;
  flex-shrink:0;
}
.llm-name{
  font-size:13px;font-weight:700;
  color:var(--tx);
  letter-spacing:-.1px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.llm-provider{
  font-size:10px;color:var(--mu);
  text-transform:uppercase;letter-spacing:.4px;
  font-weight:600;
}
.llm-meta{
  display:flex;flex-direction:column;gap:5px;
  padding:8px 10px;
  background:var(--s1);
  border-radius:var(--r-sm);
}
.llm-meta-row{
  display:flex;justify-content:space-between;
  font-size:11px;
}
.llm-meta-lbl{color:var(--mu)}
.llm-meta-val{color:var(--tx);font-weight:600}
.llm-url{
  font-size:10px;color:var(--mu);
  font-family:'JetBrains Mono',monospace;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  padding:0 4px;
}
.llm-actions{
  display:grid;
  grid-template-columns:1fr auto auto auto;
  gap:5px;
  margin-top:auto;
}
.llm-actions .btn{
  padding:6px 10px;font-size:11px;
  display:flex;align-items:center;justify-content:center;gap:5px;
}

/* ════════════════════════════════════════════════════════════════════
   AUDIT WIDGET
   ════════════════════════════════════════════════════════════════════ */
.audit-wrap{display:flex;flex-direction:column;height:100%;gap:8px}
.audit-toolbar{
  display:flex;gap:6px;align-items:center;flex-wrap:wrap;
  padding:0 2px;
}
.audit-toolbar input,.audit-toolbar select{
  padding:5px 10px !important;
  font-size:11px !important;
  height:28px;
}
.audit-toolbar input{flex:1;min-width:140px}
.audit-toolbar select{min-width:110px}

/* Add audit option to size estimator (180+sized panel) */

/* ════════════════════════════════════════════════════════════════════
   ACCOUNTS WIDGET (multi-exchange ready)
   ════════════════════════════════════════════════════════════════════ */
.acct-wrap{display:flex;flex-direction:column;gap:10px}

.acct-header{
  display:flex;justify-content:space-between;align-items:center;
  gap:10px;
  padding:10px 12px;
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  flex-wrap:wrap;
}
.acct-header-left,.acct-header-right{
  display:flex;align-items:center;gap:8px;
  flex-wrap:wrap;
}
.acct-exchange-pill{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 10px;
  background:rgba(240,185,11,.1);
  border:1px solid rgba(240,185,11,.3);
  border-radius:99px;
  font-size:11px;font-weight:700;
  color:var(--gd);
  letter-spacing:-.1px;
}
.acct-wallet-select{
  padding:6px 12px !important;
  font-size:11.5px !important;
  font-weight:600 !important;
  background:var(--s1) !important;
  border:1px solid var(--bd) !important;
  border-radius:var(--r-sm) !important;
  color:var(--tx) !important;
  min-width:160px;
  cursor:pointer;
}
.acct-cur-group{
  display:inline-flex;align-items:center;gap:6px;
  padding:4px 8px 4px 12px;
  background:var(--s1);
  border:1px solid var(--bd);
  border-radius:var(--r-sm);
}
.acct-cur-lbl{
  font-size:10px;color:var(--mu);
  text-transform:uppercase;letter-spacing:.4px;
  font-weight:600;
}
.acct-cur-select{
  padding:3px 8px !important;
  font-size:11px !important;
  font-weight:700 !important;
  background:transparent !important;
  border:none !important;
  color:var(--pr) !important;
  cursor:pointer;
}
.acct-btn{
  padding:6px 11px !important;
  font-size:11px !important;
  height:30px;
}

/* Overview cards */
.acct-overview{
  display:grid;
  grid-template-columns:1.6fr 1fr 1fr 1fr;
  gap:10px;
  margin-bottom:10px;
}
.acct-card{
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  padding:12px 14px;
  display:flex;align-items:center;gap:12px;
  transition:border-color var(--t-fast);
}
.acct-card:hover{border-color:var(--bd2)}
.acct-card-hero{
  flex-direction:column;align-items:flex-start;justify-content:center;
  background:linear-gradient(135deg,rgba(77,163,255,.08) 0%,var(--s2) 100%);
  border-color:rgba(77,163,255,.25);
}
.acct-card-icon{
  width:38px;height:38px;
  border-radius:var(--r-sm);
  display:grid;place-items:center;
  font-size:14px;
  flex-shrink:0;
}
.acct-card-lbl{
  font-size:10px;color:var(--mu);
  text-transform:uppercase;letter-spacing:.4px;
  font-weight:600;
  margin-bottom:3px;
}
.acct-card-val{
  font-size:22px;font-weight:700;
  color:var(--tx);
  letter-spacing:-.4px;
  font-family:'JetBrains Mono',monospace;
}
.acct-card:not(.acct-card-hero) .acct-card-val{font-size:18px}
.acct-card-sub{
  margin-top:4px;
  font-size:11px;color:var(--mu);
  font-weight:500;
}

/* Balances bar (hide-dust toggle + sell all) */
.acct-balances-bar{
  display:flex;align-items:center;gap:10px;
  margin-bottom:8px;flex-wrap:wrap;
}
.acct-toggle{
  display:inline-flex;align-items:center;gap:5px;
  font-size:11px;color:var(--mu);
  cursor:pointer;
  user-select:none;
}
.acct-toggle input{cursor:pointer}

/* Future exchanges row — visual hint for upcoming integrations */
.acct-future-row{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:8px 12px;
  background:var(--s1);
  border:1px dashed var(--bd);
  border-radius:var(--r-md);
  margin-top:4px;
}
.acct-future-lbl{
  font-size:10px;color:var(--mu);
  text-transform:uppercase;letter-spacing:.4px;
  font-weight:600;
}
.acct-future-pill{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 9px;
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:99px;
  font-size:11px;color:var(--mu);
  font-weight:600;
}

/* Mobile */
@media (max-width:700px){
  .acct-overview{grid-template-columns:1fr 1fr}
  .acct-card-hero{grid-column:1 / -1}
}

/* ════════════════════════════════════════════════════════════════════
   SETTINGS WIDGET (toggles + organized sections)
   ════════════════════════════════════════════════════════════════════ */
.set-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:12px;
  margin-bottom:14px;
}
.set-field{
  display:flex;flex-direction:column;gap:5px;
}
.set-lbl{
  font-size:10px;color:var(--mu);
  text-transform:uppercase;letter-spacing:.4px;
  font-weight:600;
}
.set-select{
  padding:8px 12px !important;
  background:var(--s2) !important;
  border:1px solid var(--bd) !important;
  border-radius:var(--r-sm) !important;
  color:var(--tx) !important;
  font-size:12px !important;
  font-weight:600 !important;
  height:36px !important;
  cursor:pointer;
}
.set-hint{
  font-size:11px;color:var(--mu);
  line-height:1.5;
}

/* Toggle switch row */
.set-toggle-row{
  display:flex;flex-direction:column;
  gap:2px;
  margin-bottom:14px;
  border:1px solid var(--bd);
  border-radius:var(--r-md);
  background:var(--s2);
  overflow:hidden;
}
.set-toggle{
  display:flex;align-items:flex-start;gap:12px;
  padding:12px 14px;
  cursor:pointer;
  transition:background var(--t-fast);
  border-bottom:1px solid var(--bd);
}
.set-toggle:last-child{border-bottom:none}
.set-toggle:hover{background:var(--s3)}
.set-toggle input{display:none}
.set-toggle .set-switch{
  flex-shrink:0;
  width:36px;height:20px;
  background:var(--s4);
  border-radius:99px;
  position:relative;
  transition:background var(--t-fast);
  margin-top:2px;
}
.set-toggle .set-switch::after{
  content:'';
  position:absolute;
  top:2px;left:2px;
  width:16px;height:16px;
  background:white;
  border-radius:50%;
  transition:transform var(--t-fast);
  box-shadow:0 1px 3px rgba(0,0,0,.3);
}
.set-toggle input:checked + .set-switch{background:var(--pr)}
.set-toggle input:checked + .set-switch::after{transform:translateX(16px)}
.set-toggle strong{
  display:block;
  font-size:12.5px;color:var(--tx);
  font-weight:600;
  margin-bottom:2px;
}
.set-toggle small{
  display:block;
  font-size:11px;color:var(--mu);
  line-height:1.5;
  font-weight:400;
}

/* Info callout */
.set-info{
  display:flex;align-items:flex-start;gap:10px;
  padding:12px 14px;
  background:rgba(77,163,255,.06);
  border:1px solid rgba(77,163,255,.2);
  border-radius:var(--r-md);
}
.set-info i{
  color:var(--pr);
  font-size:14px;
  margin-top:1px;
}
.set-info strong{
  display:block;
  font-size:12px;color:var(--tx);
  margin-bottom:3px;
}
.set-info > div{
  font-size:11px;color:var(--mu);
  line-height:1.6;
}

/* Blocked coins */
.set-blocked-chips{
  display:flex;flex-wrap:wrap;gap:6px;
  margin-bottom:10px;
}
.set-chip{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 10px 5px 12px;
  background:rgba(239,68,68,.08);
  border:1px solid rgba(239,68,68,.25);
  border-radius:99px;
  font-size:11px;
  font-family:'JetBrains Mono',monospace;
  color:var(--rd);
}
.set-chip strong{font-weight:700;color:var(--rd)}
.set-chip button{
  background:none;border:none;
  color:var(--rd);
  cursor:pointer;
  padding:0 2px;
  opacity:.7;
  transition:opacity var(--t-fast);
}
.set-chip button:hover{opacity:1}
.set-blocked-add{
  display:flex;gap:6px;align-items:center;
  margin-top:6px;
}
.set-blocked-add input{
  flex:1;
  padding:8px 12px;
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-sm);
  color:var(--tx);
  font-size:12px;
  height:36px;
}

/* Account section */
.set-account{display:flex;flex-direction:column;gap:8px}
.set-acc-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:8px 12px;
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:var(--r-sm);
}
.set-acc-lbl{
  font-size:10px;color:var(--mu);
  text-transform:uppercase;letter-spacing:.4px;
  font-weight:600;
}
.set-acc-val{
  font-size:12px;color:var(--tx);
  font-weight:600;
}
.set-acc-actions{
  display:flex;gap:8px;flex-wrap:wrap;
  margin-top:6px;
}
.set-acc-actions .btn{
  padding:8px 14px !important;
  font-size:11.5px !important;
}

/* ════════════════════════════════════════════════════════════════════
   POLISH PASS — fixes from real-world screenshot review
   ════════════════════════════════════════════════════════════════════ */

/* ─── BOT DETAIL TABS — force pill style over legacy underline ─── */
.bd-tabs{
  display:flex !important;
  gap:2px !important;
  padding:3px !important;
  background:var(--s2) !important;
  border:1px solid var(--bd) !important;
  border-bottom:1px solid var(--bd) !important;
  border-radius:var(--r-md) !important;
  margin:8px 0 12px !important;
}
.bd-tabs .bd-tab{
  padding:7px 14px !important;
  background:transparent !important;
  border:none !important;
  border-bottom:none !important;
  border-radius:var(--r-sm) !important;
  color:var(--mu) !important;
  font-size:11.5px !important;
  font-weight:600 !important;
  margin-bottom:0 !important;
  flex:1;
}
.bd-tabs .bd-tab:hover{
  background:var(--s3) !important;
  color:var(--tx) !important;
}
.bd-tabs .bd-tab.on{
  background:var(--pr) !important;
  color:white !important;
  border-bottom-color:transparent !important;
  box-shadow:0 2px 6px rgba(77,163,255,.25);
}

/* ─── BOT DETAIL stat cards — better text overflow handling ─── */
.bdv2-stat-val{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.bdv2-stat-sub{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10.5px;
}

/* ─── AI TRADING BOTS cards — slightly more compact ─── */
.bcard{
  min-height:auto !important;
  padding:12px !important;
  gap:8px !important;
}
.bcard-stats{gap:4px !important}
.bcard-stat-val{font-size:12px !important}
.bcard-value strong,.bcard-pnl strong{font-size:14px !important}
.bcard-breakdown{padding:5px 8px !important;font-size:9px !important}
.bcard-footer{padding-top:5px !important}

/* Make the bots grid auto-flow tighter — at least 220px cards */
.bot-grid{
  grid-template-columns:repeat(auto-fill,minmax(220px,1fr)) !important;
  gap:8px !important;
}

/* ─── DOCK / TASKBAR — wider pills with proper truncation ─── */
.dock-item{
  min-width:130px;
  max-width:240px;
  flex-shrink:0;
}
.dock-label{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:180px;
}

/* If too many panels, allow the dock to scroll horizontally */
.dock,#dock{
  overflow-x:auto !important;
  scrollbar-width:thin;
}
.dock::-webkit-scrollbar,#dock::-webkit-scrollbar{
  height:4px;
}
.dock::-webkit-scrollbar-thumb,#dock::-webkit-scrollbar-thumb{
  background:var(--bd2);
  border-radius:2px;
}

/* ─── ACTIVITY/TRADES TABLE — better column sizing ─── */
.act-table{table-layout:fixed;width:100%}
.act-table th:nth-child(1){width:90px}     /* Time */
.act-table th:nth-child(2){width:110px}    /* Bot */
.act-table th:nth-child(3){width:90px}     /* Action / Symbol */
.act-table th:nth-child(4){width:auto}     /* Reasoning / fills remaining */
.act-table td{vertical-align:top}
.act-table .act-reason{
  font-size:11px;
  line-height:1.5;
  color:var(--mu);
  word-break:break-word;
}

/* When the panel is narrow (<560px), simplify table */
@media (max-width:600px){
  .act-table th:nth-child(2){display:none}
  .act-table td:nth-child(2){display:none}
}

/* ─── OVERVIEW MOVERS — text overflow on long names ─── */
.ov-mover{display:flex;align-items:center;gap:8px;min-width:0}
.ov-mover-name{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  flex:1;min-width:0;
}

/* ─── ACCOUNTS — Hero card alignment fix ─── */
.acct-card-hero .acct-card-val{
  word-break:break-word;
  white-space:normal;
  line-height:1.1;
}

/* ─── TICKER BAR — allow horizontal scroll if too many tickers ─── */
.tickers,#tickers{
  overflow-x:auto;
  scrollbar-width:none;
}
.tickers::-webkit-scrollbar,#tickers::-webkit-scrollbar{display:none}

/* ─── LAST INDICATORS — wrap chips properly ─── */
.bdv2-indicators{
  display:flex;flex-wrap:wrap;gap:6px;
}
.bdv2-ind-chip{
  flex-shrink:0;
}

/* ─── PANEL HEADER — better truncation when title + badges are long ─── */
.panel-hd-title,.panel-title{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  min-width:0;
  flex-shrink:1;
}

/* ─── PANEL BADGES (env tag, etc.) in header — don't shrink ─── */
.panel-hd .badge,.panel-hd .env-tag,.panel-hd-meta{
  flex-shrink:0;
}

/* ════════════════════════════════════════════════════════════════════
   POLISH PASS v2 — full system review fixes
   Always-on-top dock, no-scroll resize widgets, compact mode, tabs
   ════════════════════════════════════════════════════════════════════ */

/* ─── DOCK / TASKBAR — centered floating, ALWAYS on top, compact pills ─── */
#mini-dock,#mini-dock.dock,#mini-dock {
  position:fixed !important;
  bottom:0 !important;
  left:0 !important;
  right:0 !important;
  transform:none !important;
  width:auto !important;
  max-width:none !important;
  height:44px !important;
  min-height:44px !important;
  background:rgba(14,18,25,.96) !important;
  backdrop-filter:blur(20px) saturate(180%) !important;
  -webkit-backdrop-filter:blur(20px) saturate(180%) !important;
  border:none !important;
  border-top:1px solid var(--bd2) !important;
  border-radius:0 !important;
  z-index:9000 !important;
  display:flex !important;
  gap:6px !important;
  padding:6px 12px !important;
  align-items:center !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  box-shadow:0 -4px 16px rgba(0,0,0,.4) !important;
}
#mini-dock:empty{display:flex !important}

.dock-item{
  display:flex !important;align-items:center !important;gap:5px !important;
  padding:6px 11px !important;
  background:var(--s2) !important;
  border:1px solid var(--bd) !important;
  border-radius:9px !important;
  border-bottom-width:2px !important;
  cursor:pointer;
  font-size:11px !important;
  color:var(--tx) !important;
  white-space:nowrap;
  flex-shrink:0;
  min-width:0;
  max-width:200px;
  height:28px;
  transition:all var(--t-fast);
}
.dock-item:hover{
  background:var(--s3) !important;
  transform:translateY(-1px);
}
.dock-item.dock-active{
  background:var(--pr2) !important;
  border-color:var(--pr) !important;
}
.dock-item.dock-min{
  opacity:.55;
  font-style:italic;
}
.dock-item.dock-min:hover{opacity:1}
.dock-item i{font-size:11px;flex-shrink:0}
.dock-label{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:160px;
  font-weight:600;
}

/* ─── PANELS — keep below dock z-index (so dock is always on top) ─── */
.panel{
  /* Caps panel z-index so dock (z:99999) wins. Panels still get ++zTop
     when activated but never above 9000. */
  z-index:auto;
}
/* Cap dynamic z-index in JS via max-z behavior — adjust JS too */

/* ─── WIDGETS THAT SHOULD AUTO-RESIZE (no scroll) ─── */
/* Chart, Order Book and Sentiment must fit their content to the panel
   size — no scrollbars, the content (canvas, depth bars, gauge) shrinks
   to fit available space. */
.panel[data-panel-type="chart"] .panel-bd,
.panel[data-panel-type="orderbook"] .panel-bd,
.panel[data-panel-type="sentiment"] .panel-bd{
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
}

/* Chart canvas fills available space */
.panel[data-panel-type="chart"] .panel-bd canvas{
  flex:1;
  min-height:0 !important;
  max-height:100% !important;
  width:100% !important;
}
.panel[data-panel-type="chart"] .chart-info-bar,
.panel[data-panel-type="chart"] .chart-toolbar{
  flex-shrink:0;
}

/* Order book: header row stays, depth rows fill */
.panel[data-panel-type="orderbook"] .ob-wrap{
  display:flex;flex-direction:column;
  height:100%;
  overflow:hidden;
}
.panel[data-panel-type="orderbook"] .ob-asks,
.panel[data-panel-type="orderbook"] .ob-bids{
  flex:1;
  overflow:hidden;
  min-height:0;
}
.panel[data-panel-type="orderbook"] .ob-row{
  flex-shrink:0;
}

/* Sentiment: gauge + grid stack and shrink to fit */
.panel[data-panel-type="sentiment"] .sent-wrap{
  display:flex;flex-direction:column;
  height:100%;
}
.panel[data-panel-type="sentiment"] svg{
  max-width:100%;
  height:auto;
}

/* ─── COMPACT MODE — when panel is narrow (<480px wide), tighten cards ─── */
.panel-bd{
  container-type:inline-size;
}
@container (max-width:480px){
  .bcard{
    padding:10px !important;
    gap:6px !important;
    min-height:auto !important;
  }
  .bcard-name{font-size:12px !important}
  .bcard-stat-val{font-size:11px !important}
  .bcard-stats{gap:3px !important}
  .bcard-value strong,.bcard-pnl strong{font-size:13px !important}
  .bcard-meta{font-size:9px !important;gap:6px !important}
  .bcard-breakdown{display:none !important}  /* hide in compact mode */
  .bcard-footer{font-size:9px !important}
  .bot-grid{
    grid-template-columns:1fr !important;
    gap:6px !important;
  }
  /* Compact KPI cards on Overview */
  .ov-stats,.bdv2-stats{
    grid-template-columns:repeat(2,1fr) !important;
    gap:6px !important;
  }
  .acct-overview{
    grid-template-columns:1fr 1fr !important;
  }
  .acct-card-hero{
    grid-column:1 / -1 !important;
  }
  /* Compact stat cards */
  .ov-stat,.bdv2-stat{
    padding:10px !important;
  }
  .ov-stat-val,.bdv2-stat-val{font-size:18px !important}
  .ov-stat-lbl,.bdv2-stat-lbl{font-size:9px !important}
}

@container (max-width:360px){
  /* Ultra-compact: 2 col grid for stats becomes 1 col */
  .bdv2-stats{grid-template-columns:1fr !important}
  /* Hide secondary actions */
  .bdv2-actions .btn:not(:first-child){display:none}
  /* Activity table: hide Bot column */
  .act-table th:nth-child(2),.act-table td:nth-child(2){display:none}
}

/* ─── BOT DETAIL — clear separation between sections, no overlap ─── */
.bdv2-hero{
  margin-bottom:10px;
}
.bdv2-stats{
  margin-bottom:14px;
}
.bd-tabs{
  margin:14px 0 12px !important;
}

/* The "Updated 11:13:26 PM" stamp should not float weirdly above the table */
.bd-updated-stamp,.bd-perf-updated{
  display:block;
  text-align:right;
  font-size:10px;
  color:var(--mu);
  margin:4px 2px 6px;
}

/* ─── ACTIVITY/TRADES PANELS — proper scroll inside, sticky toolbar ─── */
.panel[data-panel-type="activity"] .panel-bd,
.panel[data-panel-type="trades"] .panel-bd,
.panel[data-panel-type="audit"] .panel-bd{
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
}
.act-toolbar,.audit-toolbar,.bt-toolbar,.trd-toolbar{
  flex-shrink:0;
  position:sticky;
  top:0;
  background:var(--s1);
  z-index:5;
  padding-bottom:6px;
}
.act-list,.trd-list,#aud-list{
  flex:1;
  overflow-y:auto;
  overflow-x:auto;
  min-height:0;
}

/* ─── PANEL HEADERS — make sure title doesn't overlap action buttons ─── */
.panel-hd{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  min-width:0;
}
/* The h3 title (NOT the leading panel-dot) flexes to fill space */
.panel-hd h3{
  min-width:0;
  flex:1;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
/* Panel-dot stays a small 6px circle — never expands */
.panel-hd .panel-dot{
  flex-shrink:0;
  flex-grow:0;
  width:6px !important;
  height:6px !important;
  border-radius:50% !important;
}
.panel-hd-actions,.panel-hd-controls{
  flex-shrink:0;
  display:flex;
  align-items:center;
  gap:4px;
}

/* ─── DOCK SPACE — handled via fixed positioning, no body padding needed ─── */
/* (Panels use absolute positioning; the dock floats above. Users can move
   panels above the dock if they get covered.) */

/* ─── TICKER BAR — never overflow, never wrap ─── */
.tickers,#tickers{
  overflow-x:auto !important;
  overflow-y:hidden !important;
  flex-wrap:nowrap !important;
  white-space:nowrap;
}

/* ─── EMPTY STATES IN BOT DETAIL — don't take huge vertical space ─── */
.bdv2 .empty-state,
#bd-positions .empty-state{
  padding:14px !important;
  font-size:11px !important;
}

/* ─── INLINE FIX: Recent AI Decisions header alignment ─── */
.bdv2 .ws-section-hd{
  display:flex !important;
  justify-content:space-between !important;
  align-items:center !important;
}

/* ════════════════════════════════════════════════════════════════════
   POLISH PASS v3 — fix panel-dot stretching, compact bot detail
   ════════════════════════════════════════════════════════════════════ */

/* Bot Detail stats: ALWAYS 2 columns. Cards more compact. */
.bdv2-stats{
  display:grid !important;
  grid-template-columns:repeat(2,1fr) !important;
  gap:8px !important;
}
.bdv2-stat{
  padding:10px 12px !important;
}
.bdv2-stat-val{
  font-size:18px !important;
}
.bdv2-stat-lbl{
  font-size:9px !important;
  margin-bottom:3px !important;
}
.bdv2-stat-meta{
  font-size:10px !important;
  margin-top:2px !important;
}

/* Bot Detail hero: tighter */
.bdv2-hero{
  padding:14px !important;
  margin-bottom:10px !important;
}
.bdv2-hero h2{
  font-size:18px !important;
  letter-spacing:-.4px;
}
.bdv2-meta-row{
  font-size:10.5px !important;
  gap:10px !important;
  flex-wrap:wrap;
  margin-top:8px !important;
}
.bdv2-hero-actions .btn{
  padding:6px 12px !important;
  font-size:11px !important;
}

/* Reduce tab-content empty spacing */
#bd-tab-content > .ws-section:first-child{margin-top:0}
#bd-positions:empty{display:none}

/* When bot detail panel is wide enough, allow 4 columns */
@container (min-width:760px){
  .bdv2-stats{
    grid-template-columns:repeat(4,1fr) !important;
  }
}

/* ════════════════════════════════════════════════════════════════════
   POLISH PASS v4 — toolbar above dock, activity column widths
   ════════════════════════════════════════════════════════════════════ */

/* Add Widget toolbar must sit ABOVE the floating dock (dock z:99999 bottom:8px height~38) */
#toolbar{
  bottom:60px !important;
  z-index:100000 !important;  /* above dock */
}

/* ─── BDV2 TABS — fresh class names, no legacy CSS conflict ─── */
.bdv2-tabs{
  /* Defaults matching inline styles, in case JS doesn't apply inline yet */
  display:flex;
  gap:4px;
  padding:4px;
  background:var(--s2);
  border:1px solid var(--bd);
  border-radius:10px;
  margin:14px 0 12px;
}
.bdv2-tab-btn{
  flex:1;
  display:flex;align-items:center;justify-content:center;
  gap:6px;
  padding:10px 14px;
  border:none;
  border-radius:7px;
  font-size:12px;font-weight:600;
  cursor:pointer;
  transition:all .15s;
  min-height:36px;
  font-family:inherit;
}
.bdv2-tab-btn:hover:not(.on){
  background:var(--s3) !important;
  color:var(--tx) !important;
}

/* ─── BOT ACTIVITY TABLE — wider TIME column, never overlap BOT name ─── */
.panel[data-panel-type="activity"] .act-table,
.panel[data-panel-type="trades"] .act-table{
  table-layout:fixed;
  width:100%;
}
.panel[data-panel-type="activity"] .act-table th:nth-child(1),
.panel[data-panel-type="activity"] .act-table td:nth-child(1){
  width:130px;  /* TIME column */
}
.panel[data-panel-type="activity"] .act-table th:nth-child(2),
.panel[data-panel-type="activity"] .act-table td:nth-child(2){
  width:100px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.panel[data-panel-type="activity"] .act-table th:nth-child(3),
.panel[data-panel-type="activity"] .act-table td:nth-child(3){
  width:80px;
}
.panel[data-panel-type="activity"] .act-table th:nth-child(4),
.panel[data-panel-type="activity"] .act-table td:nth-child(4){
  width:100px;
}
/* Reasoning fills remaining space and wraps */
.panel[data-panel-type="activity"] .act-table th:nth-child(5),
.panel[data-panel-type="activity"] .act-table td:nth-child(5){
  width:auto;
  word-break:break-word;
  white-space:normal;
}

.act-time{
  font-family:'JetBrains Mono',monospace;
  font-size:10px;
  color:var(--mu);
  white-space:nowrap;
}
.act-bot{
  font-weight:600;
  font-size:11px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* ─── PANEL OVERFLOW — content shouldn't bleed into adjacent panels ─── */
.panel{
  overflow:hidden;
  contain:layout paint;
}
.panel-bd{
  /* Defensive: never let content escape the panel body */
  contain:layout;
}

/* ─── ORDER BOOK — make sure rows don't bleed past panel ─── */
.panel[data-panel-type="orderbook"] .ob-row,
.panel[data-panel-type="orderbook"] table{
  max-width:100%;
}

/* ── Open-position target "pressure gauge" (price within stop→target band) ── */
.tgt-gauge{position:relative;width:100%;min-width:90px;height:18px;border-radius:4px;
  background:var(--s3);overflow:hidden;display:flex;align-items:center}
.tgt-fill{position:absolute;left:0;top:0;height:100%;border-radius:4px 0 0 4px;
  opacity:.30;transition:width .5s ease,background .5s ease}
.tgt-val{position:relative;z-index:1;width:100%;text-align:center;
  font-family:'JetBrains Mono',monospace;font-size:10px;font-weight:600;
  color:var(--tx);white-space:nowrap;padding:0 4px;letter-spacing:-.2px}

/* ── Trailing-stop 'T' marker + live popover ── */
.tgt-trailing{ }
.tgt-tmark{position:absolute;left:3px;top:50%;transform:translateY(-50%);z-index:2;
  width:14px;height:14px;border-radius:4px;background:var(--gd);color:#1a1205;
  font-size:9px;font-weight:800;line-height:14px;text-align:center;cursor:pointer;
  font-family:'JetBrains Mono',monospace;box-shadow:0 0 0 2px var(--s3)}
.tgt-tmark:hover{filter:brightness(1.15)}
.tgt-trailing .tgt-val{padding-left:20px}
.trail-pop{position:fixed;z-index:9999;width:260px;background:var(--s1);
  border:1px solid var(--bd2);border-radius:12px;padding:10px 12px;display:none;
  box-shadow:0 12px 40px rgba(0,0,0,.45);font-size:11px}
.trail-pop .tp-head{font-weight:700;color:var(--tx);font-size:12px;margin-bottom:8px;
  display:flex;align-items:center;gap:6px}
.trail-pop .tp-head i{color:var(--gd)}
.trail-pop .tp-close{margin-left:auto;cursor:pointer;color:var(--mu);font-size:16px;line-height:1}
.trail-pop .tp-row{display:flex;justify-content:space-between;align-items:center;
  padding:3px 0;color:var(--mu)}
.trail-pop .tp-row b{font-family:'JetBrains Mono',monospace;color:var(--tx);font-size:11px}
.trail-pop .tp-pnl{border-top:1px solid var(--bd);margin-top:4px;padding-top:6px}
.trail-pop .tp-note{margin-top:8px;font-size:9px;color:var(--mu);line-height:1.4}

/* ── Easy Creation Assistant ── */
.easy-create{padding:4px 2px}
.easy-hd{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.easy-title{font-size:16px;font-weight:700;color:var(--tx)}
.easy-sub{font-size:11px;color:var(--mu);margin-top:2px}
.easy-cur{font-family:'JetBrains Mono',monospace;font-size:11px;font-weight:700;color:var(--gd);
  background:var(--gd2,rgba(251,191,36,.12));border:1px solid var(--bd);border-radius:8px;padding:5px 9px;white-space:nowrap}
.easy-presets{display:flex;flex-direction:column;gap:8px}
.easy-card{display:flex;align-items:center;gap:12px;padding:12px;background:var(--s2);
  border:1px solid var(--bd);border-radius:12px;cursor:pointer;transition:all .15s ease;position:relative}
.easy-card:hover{border-color:var(--pr);transform:translateY(-1px)}
.easy-card.sel{border-color:var(--pr);background:var(--pr3,rgba(77,163,255,.06));box-shadow:0 0 0 1px var(--pr)}
.easy-card-ic{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:17px;flex:0 0 auto}
.easy-card-body{flex:1;min-width:0}
.easy-card-name{font-size:14px;font-weight:700;color:var(--tx)}
.easy-card-tag{font-size:11px;color:var(--mu);margin-top:1px;line-height:1.35}
.easy-card-chk{color:var(--pr);font-size:18px;opacity:0;transition:opacity .15s ease}
.easy-card.sel .easy-card-chk{opacity:1}
#easy-config{margin-top:14px;border-top:1px solid var(--bd);padding-top:14px}
.easy-chosen{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.easy-summary{background:var(--s2);border:1px solid var(--bd);border-radius:12px;padding:12px;margin:6px 0 12px}
.easy-sum-hd{font-size:12px;font-weight:700;color:var(--tx);margin-bottom:8px;display:flex;align-items:center;gap:8px}
.easy-sum-hd span{font-size:9px;font-weight:400;color:var(--mu);text-transform:uppercase;letter-spacing:.4px}
.easy-sum-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 14px}
.easy-sum-item{display:flex;justify-content:space-between;align-items:center;font-size:11px;border-bottom:1px dashed var(--bd);padding-bottom:4px}
.easy-sum-item span{color:var(--mu)}
.easy-sum-item b{color:var(--tx);font-weight:600;text-transform:capitalize}
.easy-go{width:100%;margin-top:4px;padding:12px;font-size:14px}
.easy-toggle{display:flex;align-items:center;gap:8px;margin-top:16px;padding:10px;background:var(--s2);
  border:1px solid var(--bd);border-radius:8px;cursor:pointer;font-size:12px;color:var(--tx)}

/* ── Pill on/off switch (Supervisor enable / auto-apply) ── */
.tog-switch{position:relative;display:inline-flex;align-items:center;width:64px !important;height:26px !important;
  min-height:0 !important;flex:0 0 auto !important;box-sizing:border-box;
  border-radius:13px;border:1px solid var(--bd);background:var(--s3);cursor:pointer;padding:0 !important;
  transition:background .18s ease,border-color .18s ease}
.tog-switch .tog-knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;
  background:var(--mu);transition:transform .18s ease,background .18s ease;box-shadow:0 1px 2px rgba(0,0,0,.3)}
.tog-switch .tog-txt{position:absolute;right:9px;font-size:10px;font-weight:800;letter-spacing:.5px;color:var(--mu)}
.tog-switch.on{background:var(--gn2,rgba(34,197,94,.15));border-color:var(--gn)}
.tog-switch.on .tog-knob{background:var(--gn);transform:translateX(38px)}
.tog-switch.on .tog-txt{left:9px;right:auto;color:var(--gn)}

/* ── ThunderAI captured-context chip (in the input area) ── */
.ai-ctx-chip{display:inline-flex;align-items:center;gap:6px;margin:0 0 6px;padding:4px 6px 4px 9px;
  background:rgba(168,85,247,.14);border:1px solid rgba(168,85,247,.4);border-radius:8px;
  color:var(--pu);font-size:11px;font-weight:600;max-width:100%;width:fit-content}
.ai-ctx-chip i.fa-bolt{font-size:9px}
.ai-ctx-chip span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.ai-ctx-chip button{display:grid;place-items:center;width:16px;height:16px;border-radius:5px;
  background:transparent;border:none;color:var(--pu);cursor:pointer;font-size:10px;opacity:.7}
.ai-ctx-chip button:hover{opacity:1;background:rgba(168,85,247,.2)}

/* ════════════════════════════════════════════════════════════════════
   AI TRADING BOTS — linear list (bots2)
   ════════════════════════════════════════════════════════════════════ */
.bots2{display:flex;flex-direction:column;height:100%;min-height:0}
.bots2-toolbar{position:sticky;top:0;z-index:5;background:var(--s1);
  border-bottom:1px solid var(--bd);padding:8px 10px;display:flex;flex-direction:column;gap:8px}
.bots2-tbtop{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.bots2-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;flex:1;min-width:0}
.b2s-item{font-size:11px;color:var(--mu);white-space:nowrap}
.b2s-item b{color:var(--tx);font-weight:700;font-family:'JetBrains Mono',monospace}
.bots2-add{padding:6px 12px !important;font-size:12px !important;white-space:nowrap}
.bots2-tbbot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bots2-search{position:relative;display:flex;align-items:center;flex:1;min-width:160px;
  background:var(--s2);border:1px solid var(--bd);border-radius:8px;padding:0 8px}
.bots2-search > i{color:var(--mu);font-size:11px;margin-right:8px}
.bots2-search input{flex:1;background:none;border:none;outline:none;color:var(--tx);
  font-size:12px;padding:7px 6px}
.bots2-clear{background:none;border:none;color:var(--mu);cursor:pointer;font-size:11px;padding:2px 4px}
.bots2-clear:hover{color:var(--tx)}
.bots2-tabs{display:inline-flex;background:var(--s2);border:1px solid var(--bd);border-radius:8px;padding:2px;gap:2px}
.bots2-tab{display:inline-flex;align-items:center;gap:5px;border:none;background:none;cursor:pointer;
  color:var(--mu);font-size:11px;font-weight:600;padding:5px 10px;border-radius:6px;transition:all .15s}
.bots2-tab:hover{color:var(--tx)}
.bots2-tab.on{background:var(--pr);color:#fff}
.b2t-n{font-size:9px;font-weight:700;background:rgba(255,255,255,.18);border-radius:6px;padding:1px 5px}
.bots2-tab:not(.on) .b2t-n{background:var(--s3);color:var(--mu)}
.bots2-list{flex:1;min-height:0;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:5px}
.bots2-empty{text-align:center;color:var(--mu);font-size:12px;padding:30px 10px}

/* Shared column grid for the header + rows so everything lines up. */
.bots2-colhd, .b2row{
  display:grid;
  grid-template-columns:minmax(150px,1fr) 92px 70px 92px 64px 56px 84px;
  align-items:center;column-gap:14px;
}
.bots2-colhd{padding:6px 12px;border-bottom:1px solid var(--bd);background:var(--s1)}
.bots2-colhd .b2c{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--mu);font-weight:700}
.bots2-colhd .b2c-num{text-align:right}
.bots2-colhd .b2c-actions{padding-left:8px}

.b2row{background:var(--s2);border:1px solid var(--bd);border-radius:10px;
  padding:8px 12px;cursor:pointer;transition:border-color .15s,background .15s;min-height:52px}
.b2row:hover{border-color:var(--pr);background:var(--s3)}
.b2row.sel{border-color:var(--pr);box-shadow:0 0 0 1px var(--pr) inset}
.b2row.stopped{opacity:.7}
.b2c{min-width:0}
.b2c-num{text-align:right;font-family:'JetBrains Mono',monospace;font-size:13px;font-weight:700;color:var(--tx);white-space:nowrap}
.b2c-name{display:flex;flex-direction:column;gap:2px;min-width:0}
.b2-line1{display:flex;align-items:center;gap:6px;min-width:0}
.b2-name{font-size:13px;font-weight:700;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}
.b2-dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto}
.b2-dot.live{background:var(--gn);box-shadow:0 0 6px var(--gn)}
.b2-dot.off{background:var(--mu)}
.b2-sup{color:var(--pu);font-size:9px}
.b2-line2{font-size:10px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.b2-line2 i{opacity:.7;margin-right:2px}
.b2-dotsep{opacity:.5;margin:0 2px}
.b2c-actions{display:flex;align-items:center;justify-content:flex-end;gap:4px;padding-left:8px;border-left:1px solid var(--bd)}
.b2-act{width:26px;height:26px;border-radius:6px;border:1px solid var(--bd);background:var(--s1);
  color:var(--mu);cursor:pointer;display:grid;place-items:center;font-size:10px;transition:all .15s;flex:0 0 auto}
.b2-act:hover{color:var(--tx);border-color:var(--pr)}
.b2-start{color:var(--gn);border-color:rgba(34,197,94,.4)}
.b2-start:hover{background:var(--gn);color:#fff}
.b2-stop{color:var(--gd);border-color:rgba(251,191,36,.4)}
.b2-stop:hover{background:var(--gd);color:#1a1205}
.badge.b-live{background:rgba(34,197,94,.15);color:var(--gn);border:1px solid rgba(34,197,94,.3)}
/* Narrow panels: drop Trades column + duplicate button */
@media (max-width: 600px){
  .bots2-colhd, .b2row{grid-template-columns:minmax(120px,1fr) 80px 60px 80px 50px 72px;column-gap:10px}
  .b2-hide-sm{display:none !important}
}

/* ── Clickable Bot Activity reasoning cell ── */
.act-reason-click{cursor:pointer;position:relative;padding-right:18px !important}
.act-reason-click:hover{color:var(--tx);background:var(--s3)}
.act-reason-ic{position:absolute;right:6px;top:50%;transform:translateY(-50%);
  color:var(--mu);font-size:10px;opacity:0;transition:opacity .15s}
.act-reason-click:hover .act-reason-ic{opacity:.8}

/* ── ThunderAI suggested quick-reply chips ── */
.ai-suggest-row{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 8px;padding:0 4px}
.ai-suggest-chip{background:var(--pr2,rgba(77,163,255,.12));border:1px solid var(--pr);
  color:var(--pr);font-size:12px;font-weight:600;padding:7px 12px;border-radius:16px;cursor:pointer;
  transition:background .15s,transform .1s;text-align:left;line-height:1.2}
.ai-suggest-chip:hover{background:var(--pr);color:#fff}
.ai-suggest-chip:active{transform:scale(.97)}

/* ── Topbar ticker: carousel arrows + hover sparkline ── */
.tick{cursor:pointer;transition:background .12s}
.tick:hover{background:var(--s3)}
#tick-viewport{scrollbar-width:none}
#tick-viewport::-webkit-scrollbar{display:none}
.tick-arrow{flex:0 0 auto;width:22px;height:26px;border:1px solid var(--bd);background:var(--s1);
  color:var(--mu);border-radius:7px;cursor:pointer;display:grid;place-items:center;font-size:10px;
  transition:all .12s;margin:0 2px}
.tick-arrow:hover{color:var(--tx);border-color:var(--pr);background:var(--s2)}
.tick-spark{position:fixed;z-index:10060;display:none;background:var(--s1);border:1px solid var(--bd2);
  border-radius:10px;padding:8px 10px;box-shadow:var(--sh3);width:200px;pointer-events:none}
.tick-spark .tsp-hd{font-size:10px;font-weight:700;color:var(--tx);margin-bottom:4px;font-family:'JetBrains Mono',monospace}
.tick-spark canvas{display:block;width:180px;height:56px}
.tick-spark .tsp-ft{font-size:9px;color:var(--mu);margin-top:4px}
