/* ============================================================
   AUTOBOT — workspace: kartu statistik, chart, Bot engine, posisi.
   ============================================================ */
.ab-wrap{padding:22px clamp(14px,2.5vw,32px) 34px; display:flex; flex-direction:column; gap:18px; min-width:0;}
.ab-grow{flex:1;}
.ab-head h1{font-size:28px; font-weight:800; letter-spacing:-.01em; color:var(--text-1);}
.ab-head p{margin-top:4px; font-size:13px; color:var(--text-2); max-width:70ch;}

/* ---- kartu statistik ---- */
.ab-stats{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:12px;}
.ab-stat{
  padding:14px 16px 13px; border-radius:var(--radius-m);
  background:var(--panel); border:1px solid var(--border); min-width:0;
}
.ab-stat-label{font-size:11.5px; color:var(--text-2);}
.ab-stat-val{margin-top:10px; font-size:24px; font-weight:700; line-height:1.1; color:var(--text-1); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.ab-stat-sub{margin-top:6px; font-size:11px; color:var(--text-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.ab-up{color:var(--buy);} .ab-down{color:var(--sell);} .ab-warnc{color:var(--warn);}

/* ---- chart + engine ---- */
.ab-main{display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:18px; align-items:start;}
.ab-chart-panel{padding:0; position:relative;}
.ab-chart-head{display:flex; align-items:center; gap:18px; padding:14px 18px; border-bottom:1px solid var(--border-soft); flex-wrap:wrap;}
.ab-pair-name{font-size:16px; font-weight:700; color:var(--text-1);}
.ab-pair-sub{font-size:11px; color:var(--text-3); margin-top:2px;}
.ab-price{display:flex; align-items:baseline; gap:8px; font-size:20px; font-weight:700; color:var(--text-1);}
.ab-chg{font-size:11.5px; font-weight:600;}
.ab-tfs{display:flex; gap:2px;}
.ab-tf{
  padding:5px 9px; border:0; border-radius:999px; background:transparent;
  color:var(--text-3); font:inherit; font-size:12px; cursor:pointer;
}
.ab-tf:hover{color:var(--text-1);}
.ab-tf.active{background:var(--warn); color:#1b1405; font-weight:700;}
.ab-tf:focus-visible, .ab-run:focus-visible, .ab-seg button:focus-visible, .ab-tabbar button:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}
.ab-live{display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; border:1px solid var(--border); font-size:11px; color:var(--text-2);}
.ab-live i{width:7px; height:7px; border-radius:50%; background:var(--text-3);}
.ab-live.on{color:var(--buy); border-color:var(--buy);}
.ab-live.on i{background:var(--buy);}

.ab-pos-chip{
  position:absolute; z-index:5; top:74px; left:18px; display:flex; align-items:center; gap:10px;
  padding:6px 10px; border-radius:8px; font-size:11.5px; font-family:var(--font-num);
  background:rgba(13,15,24,.88); border:1px solid var(--border);
}
.ab-pos-chip[hidden]{display:none;}
.ab-pos-chip .side{padding:2px 8px; border-radius:5px; font-weight:700; font-size:10.5px;}
.ab-pos-chip .side.long{background:var(--buy-dim); color:var(--buy);}
.ab-pos-chip .side.short{background:var(--sell-dim); color:var(--sell);}
.ab-pos-chip .e{color:var(--warn);} .ab-pos-chip .s{color:var(--sell);} .ab-pos-chip .t{color:var(--buy);}
.ab-chart{height:clamp(340px,46vh,520px); width:100%;}
.ab-rsi-label{padding:6px 18px 0; font-size:11px; color:var(--text-3); border-top:1px solid var(--border-soft);}
.ab-rsi-label b{color:var(--accent); font-family:var(--font-num); font-weight:600;}
.ab-rsi{height:120px; width:100%; margin-bottom:6px;}

/* ---- Bot engine ---- */
.ab-side{display:flex; flex-direction:column; gap:18px; min-width:0;}
.ab-engine{padding:18px; border-color:var(--buy); }
.ab-engine.running{box-shadow:0 0 0 1px var(--buy-glow), 0 0 28px var(--buy-glow);}
.ab-engine-top{display:flex; align-items:center; justify-content:space-between; gap:12px;}
.ab-engine-title{font-size:15px; font-weight:700; color:var(--text-1);}
.ab-engine-sub{font-size:11px; color:var(--text-3); margin-top:2px;}
.ab-seg{display:flex; padding:3px; border-radius:10px; background:var(--panel-2); border:1px solid var(--border-soft);}
.ab-seg button{padding:6px 14px; border:0; border-radius:8px; background:transparent; color:var(--text-2); font:inherit; font-size:12.5px; font-weight:600; cursor:pointer;}
.ab-seg button.active{background:var(--accent-dim); color:var(--text-1);}
.ab-seg button:disabled{opacity:.4; cursor:not-allowed;}
.ab-seg button.locked{opacity:.4; cursor:not-allowed;}
.ab-engine-state{margin-top:16px; font-size:18px; font-weight:700; color:var(--text-1);}
.ab-engine-desc{margin-top:4px; font-size:12px; color:var(--text-2); line-height:1.5;}
.ab-form{margin-top:14px; display:flex; flex-direction:column; gap:10px;}
.ab-form label{display:flex; flex-direction:column; gap:5px; font-size:11px; color:var(--warn); min-width:0;}
.ab-form input, .ab-form select, .ab-fixed{
  width:100%; padding:9px 11px; border-radius:9px; border:1px solid var(--border);
  background:var(--panel-2); color:var(--text-1); font:inherit; font-size:13px; font-family:var(--font-num);
}
.ab-fixed{font-family:var(--font-ui); font-weight:600;}
.ab-fixed small{font-weight:400; color:var(--text-3); margin-left:6px;}
.ab-form input:focus-visible, .ab-form select:focus-visible{outline:2px solid var(--accent); outline-offset:1px;}
.ab-row2{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
/* Leverage ala Binance: stepper -/+ , slider, tanda 1x..125x */
.ab-lev{display:flex; flex-direction:column; gap:6px; min-width:0; font-size:11px; color:var(--warn);}
.ab-lev-stepper{display:flex; align-items:center; border:1px solid var(--border); border-radius:9px; background:var(--panel-2); overflow:hidden;}
.ab-lev-stepper button{flex:0 0 34px; height:36px; border:0; background:transparent; color:var(--text-2); font-size:18px; line-height:1; cursor:pointer;}
.ab-lev-stepper button:hover{color:var(--text-1); background:rgba(255,255,255,.04);}
.ab-form .ab-lev-stepper input{flex:1; min-width:0; width:auto; border:0; background:transparent; text-align:right; padding:9px 0; -moz-appearance:textfield;}
.ab-lev-stepper input::-webkit-outer-spin-button, .ab-lev-stepper input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0;}
.ab-lev-x{padding:0 4px 0 1px; font-size:13px; font-family:var(--font-num); color:var(--text-1);}
.ab-form .ab-lev-slider{width:100%; margin:4px 0 0; padding:0; border:0; background:transparent; accent-color:var(--accent); cursor:pointer;}
.ab-lev-ticks{display:flex; justify-content:space-between; font-size:10px; color:var(--text-3); font-family:var(--font-num);}
.ab-lev-ticks button{border:0; background:transparent; color:inherit; font:inherit; padding:0 1px; cursor:pointer;}
.ab-lev-ticks button:hover{color:var(--text-1);}
.ab-hint{font-size:11px; color:var(--text-3); margin-top:-4px;}
.ab-run{
  margin-top:14px; width:100%; padding:13px; border:0; border-radius:10px; cursor:pointer;
  font:inherit; font-size:13.5px; font-weight:700; color:#1b1405; background:var(--buy);
}
.ab-run.stop{background:#e8590c; color:#fff;}
.ab-run:disabled{opacity:.55; cursor:wait;}
.ab-run{display:flex; align-items:center; justify-content:center; gap:12px; letter-spacing:.04em;}
.ab-run.on{background:var(--buy); box-shadow:0 0 0 2px rgba(255,255,255,.14) inset;}
.ab-sw{display:inline-flex; align-items:center; gap:6px; padding:3px 8px 3px 4px; border-radius:999px; background:rgba(0,0,0,.28); color:#fff; font-size:11px; font-weight:800;}
.ab-sw i{width:14px; height:14px; border-radius:50%; background:#9aa0aa; transition:background .15s;}
.ab-sw.on i{background:#22c55e; box-shadow:0 0 6px #22c55e;}
.ab-sw b{font-weight:800;}
.ab-note{margin-top:10px; font-size:11px; line-height:1.5; color:var(--text-3);}

.ab-bots{padding:14px 16px;}
.ab-bots-head{display:flex; justify-content:space-between; font-size:12.5px; font-weight:700; color:var(--text-1); margin-bottom:10px;}
.ab-bots-n{font-family:var(--font-num); color:var(--text-3);}
.ab-bots-list{display:flex; flex-direction:column; gap:6px;}
.ab-bot{display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:9px; background:var(--panel-2); border:1px solid var(--border-soft); font-size:12px;}
.ab-bot b{color:var(--text-1);}
.ab-bot .meta{color:var(--text-3); font-size:11px; font-family:var(--font-num);}
.ab-bot button{margin-left:auto; padding:4px 10px; border-radius:7px; border:1px solid var(--border); background:transparent; color:var(--text-2); font:inherit; font-size:11px; cursor:pointer;}
.ab-bot button:hover{color:var(--sell); border-color:var(--sell);}
.ab-bot .pick{margin-left:0; border:0; padding:0; background:none; color:var(--text-1); font-weight:700; font-size:12px;}
.ab-bot .pick:hover{color:var(--accent); border:0;}
.ab-empty{font-size:12px; color:var(--text-3); padding:6px 2px;}

/* ---- tab bawah ---- */
.ab-tabs-panel{padding:0;}
.ab-tabbar{display:flex; align-items:center; gap:4px; padding:10px 16px 0; border-bottom:1px solid var(--border-soft); flex-wrap:wrap;}
.ab-tabbar > button:not(.ab-closeall){
  padding:10px 12px; border:0; border-bottom:2px solid transparent; background:transparent;
  color:var(--text-2); font:inherit; font-size:13px; font-weight:600; cursor:pointer; margin-bottom:-1px;
}
.ab-tabbar > button.active{color:var(--text-1); border-bottom-color:var(--warn);}
.ab-badge{margin-left:4px; font-family:var(--font-num); font-weight:500; color:var(--text-3);}
.ab-pnl-box{display:flex; flex-direction:column; align-items:flex-end; font-size:10.5px; color:var(--text-3); padding:0 8px 8px;}
.ab-pnl-box b{font-size:14px; color:var(--text-1);}
.ab-closeall{margin:0 0 8px 6px; padding:7px 12px; border-radius:8px; border:1px solid var(--sell); background:var(--sell-dim); color:var(--sell); font:inherit; font-size:12px; font-weight:700; cursor:pointer;}
.ab-tabpane{padding:6px 16px 16px;}
.ab-tabpane[hidden]{display:none;}
.ab-table{width:100%; border-collapse:collapse; font-size:12.5px;}
.ab-table th{padding:10px 8px; text-align:left; font-size:11px; font-weight:500; color:var(--text-3); white-space:nowrap;}
.ab-table td{padding:12px 8px; border-top:1px solid var(--border-soft); white-space:nowrap; color:var(--text-1); font-family:var(--font-num);}
.ab-table .r{text-align:right;}
.ab-table tbody tr.sel{box-shadow:inset 3px 0 0 var(--warn); background:var(--panel-2);}
.ab-table tbody tr[data-sym]{cursor:pointer;}
.ab-table .pairc{font-family:var(--font-ui); font-weight:700; display:flex; align-items:center; gap:8px;}
.ab-side-pill{padding:2px 7px; border-radius:5px; font-size:10.5px; font-weight:700; font-family:var(--font-ui);}
.ab-side-pill.long{background:var(--buy-dim); color:var(--buy);}
.ab-side-pill.short{background:var(--sell-dim); color:var(--sell);}
.ab-tp{color:var(--buy);} .ab-sl{color:var(--sell);} .ab-entry{color:#FF9F43;}
.ab-table .ab-tp .ab-lvl,.ab-table .ab-sl .ab-lvl,.ab-table .ab-entry{opacity:1;}
.ab-close{padding:5px 12px; border-radius:7px; border:1px solid var(--sell); background:transparent; color:var(--sell); font:inherit; font-size:11.5px; cursor:pointer;}
.ab-close:hover{background:var(--sell-dim);}
.ab-none{padding:26px 8px; text-align:center; color:var(--text-3); font-family:var(--font-ui); font-size:12.5px;}
.ab-pane-note{font-size:12px; color:var(--text-2); margin:8px 0 12px;}
.ab-cand{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:8px;}
.ab-cand button{display:flex; justify-content:space-between; align-items:center; gap:8px; padding:10px 12px; border-radius:10px; border:1px solid var(--border-soft); background:var(--panel-2); color:var(--text-1); font:inherit; font-size:12.5px; cursor:pointer; text-align:left;}
.ab-cand button:hover{border-color:var(--accent);}
.ab-cand small{display:block; font-size:10.5px; color:var(--text-3); font-family:var(--font-num); margin-top:2px;}
.ab-info{max-width:78ch; display:flex; flex-direction:column; gap:10px; font-size:12.5px; line-height:1.65; color:var(--text-2); padding-top:8px;}
.ab-info b{color:var(--text-1);}
.ab-warn{color:var(--warn);}
.ab-ext{display:inline-block; padding:10px 16px; border-radius:10px; background:var(--accent-dim); color:var(--text-1); font-weight:600; font-size:13px;}

@media (max-width:1280px){ .ab-stats{grid-template-columns:repeat(3,minmax(0,1fr));} }
@media (max-width:1100px){ .ab-main{grid-template-columns:minmax(0,1fr);} }
@media (max-width:760px){
  .ab-wrap{padding:14px 10px 20px; gap:12px;}
  .ab-stats{grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px;}
  .ab-stat-val{font-size:20px;}
  .ab-chart-head{gap:10px; padding:12px;}
  .ab-tfs{order:5; width:100%; overflow-x:auto;}
  .ab-pos-chip{top:112px; left:10px;}
  .ab-head h1{font-size:24px;}
}
@media (prefers-reduced-motion:reduce){ .ab-engine{transition:none;} }

/* Kotak batas maksimal posisi aktif (di tab bar Posisi aktif) */
.ab-maxpos{display:flex; flex-direction:column; align-items:flex-end; gap:3px; font-size:10.5px; color:var(--text-3); padding:0 10px 8px; cursor:text;}
.ab-maxpos input{width:76px; padding:5px 8px; border-radius:8px; border:1px solid var(--border-soft); background:var(--bg-2, rgba(255,255,255,.04)); color:var(--text-1); font-family:var(--font-num); font-size:13px; font-weight:600; text-align:right;}
.ab-maxpos input::placeholder{color:var(--text-3); font-weight:500;}
.ab-maxpos input:focus-visible{outline:2px solid var(--accent); outline-offset:1px;}

/* Panel "Bot berjalan" disembunyikan (elemen tetap ada agar JS tidak error) */
.ab-bots[hidden]{display:none !important;}

/* ---- Warna profit (hijau) / loss (merah): hanya angka P&L, tanpa warna baris/panel ---- */
/* Perbaikan: ".ab-table td{color}" lebih spesifik dari ".ab-up/.ab-down", jadi warna sebelumnya tertimpa. */
.ab-table td.ab-up, .ab-pnl-box b.ab-up{color:var(--buy); font-weight:700;}
.ab-table td.ab-down, .ab-pnl-box b.ab-down{color:var(--sell); font-weight:700;}

/* Pager Riwayat posisi */
.ab-pager{display:flex; align-items:center; justify-content:flex-end; gap:6px; margin-top:12px; flex-wrap:wrap;}
.ab-pager[hidden]{display:none;}
.ab-pager-info{margin-right:auto; font-size:11.5px; color:var(--text-3);}
.ab-pager button{min-width:32px; height:32px; padding:0 8px; border-radius:8px; border:1px solid var(--border-soft); background:var(--panel-2); color:var(--text-2); font:inherit; font-size:12.5px; font-weight:600; cursor:pointer;}
.ab-pager button:hover:not(:disabled){border-color:var(--accent); color:var(--text-1);}
.ab-pager button.active{background:var(--accent-dim); border-color:var(--accent); color:var(--text-1);}
.ab-pager button:disabled{opacity:.4; cursor:default;}
.ab-pager button:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}

/* Status TP1/TP2/TP3 di tabel posisi aktif */
.ab-table .c{text-align:center;}
.ab-tps{display:inline-flex; gap:6px; align-items:center;}
.ab-tpb{display:inline-flex; align-items:center; gap:3px; padding:2px 7px; border-radius:5px; font-size:10.5px; font-weight:600; font-family:var(--font-ui); color:var(--text-3); border:1px solid var(--border-soft);}
.ab-tpb.hit{color:var(--buy); background:var(--buy-dim); border-color:transparent;}
.ab-tpb b{font-weight:600; opacity:.85;}
.ab-lvl{display:block; font-size:10.5px; font-weight:500; opacity:.8;}
.ab-tps{flex-wrap:wrap; justify-content:center;}
.ab-tpb i{font-style:normal; font-weight:800;}

/* ===== Animasi Bot engine saat AUTOBOT aktif (class .running dari renderEngine) ===== */
.ab-engine{position:relative; overflow:hidden;}
/* garis pemindai: menyapu di sisi atas panel, tanda bot sedang memantau */
.ab-engine.running::before{
  content:''; position:absolute; top:0; left:0; height:2px; width:40%;
  background:linear-gradient(90deg, transparent, var(--buy), transparent);
  animation:abScan 2.4s ease-in-out infinite; pointer-events:none;
}
/* glow tepi panel berdenyut pelan */
.ab-engine.running{animation:abGlow 2.8s ease-in-out infinite;}
/* titik "hidup" berdenyut di depan teks AUTOBOT aktif */
.ab-engine.running .ab-engine-state{display:flex; align-items:center; gap:10px;}
.ab-engine.running .ab-engine-state::before{
  content:''; flex:0 0 auto; width:10px; height:10px; border-radius:50%;
  background:var(--buy); animation:abPulse 1.6s ease-out infinite;
}
/* tombol ON/OFF: "bernafas" — warna & glow naik-turun pelan saat engine aktif */
#abRunBtn.on{color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.45); animation:abBreathe 7s linear infinite;}
.ab-sw.on i{animation:abBlink 1.4s ease-in-out infinite;}

@keyframes abScan{0%{left:-40%;} 100%{left:100%;}}
@keyframes abGlow{
  0%,100%{box-shadow:0 0 0 1px var(--buy-glow), 0 0 14px var(--buy-glow);}
  50%{box-shadow:0 0 0 1px var(--buy), 0 0 34px var(--buy-glow);}
}
@keyframes abPulse{
  0%{box-shadow:0 0 0 0 var(--buy-glow), 0 0 0 0 var(--buy);}
  70%{box-shadow:0 0 0 10px transparent, 0 0 0 0 transparent;}
  100%{box-shadow:0 0 0 0 transparent;}
}
@keyframes abBreathe{
  0%{background:#22d68a; box-shadow:0 0 0 2px rgba(255,255,255,.2) inset, 0 0 26px rgba(34,214,138,.75);}
  16%{background:#14c8d8; box-shadow:0 0 0 2px rgba(255,255,255,.2) inset, 0 0 26px rgba(20,200,216,.75);}
  32%{background:#3b82f6; box-shadow:0 0 0 2px rgba(255,255,255,.2) inset, 0 0 26px rgba(59,130,246,.75);}
  48%{background:#8b5cf6; box-shadow:0 0 0 2px rgba(255,255,255,.2) inset, 0 0 26px rgba(139,92,246,.75);}
  64%{background:#ec4899; box-shadow:0 0 0 2px rgba(255,255,255,.2) inset, 0 0 26px rgba(236,72,153,.75);}
  80%{background:#f59e0b; box-shadow:0 0 0 2px rgba(255,255,255,.2) inset, 0 0 26px rgba(245,158,11,.75);}
  100%{background:#22d68a; box-shadow:0 0 0 2px rgba(255,255,255,.2) inset, 0 0 26px rgba(34,214,138,.75);}
}
@keyframes abBlink{0%,100%{opacity:1;} 50%{opacity:.35;}}

@media (prefers-reduced-motion:reduce){
  .ab-engine.running, .ab-engine.running::before, .ab-engine.running .ab-engine-state::before,
  #abRunBtn.on, .ab-sw.on i{animation:none;}
}

/* ---- kartu Realized P&L: klik -> P&L harian ---- */
.ab-stat-click{cursor:pointer; transition:border-color .15s, background .15s;}
.ab-stat-click:hover, .ab-stat-click:focus-visible{border-color:var(--accent); outline:none;}
.ab-stat-hint{margin-left:4px; font-size:10px; color:var(--accent); opacity:.85;}
.ab-pnl-card{max-width:560px; width:100%; max-height:90vh; overflow:auto;}
.ab-pnl-nav{display:flex; align-items:center; gap:10px; margin:10px 0 12px;}
.ab-pnl-nav b{min-width:130px; text-align:center; font-size:14px; color:var(--text-1);}
.ab-pnl-nav button{width:28px; height:28px; border-radius:var(--radius-s); border:1px solid var(--border); background:var(--panel-2); color:var(--text-1); font-size:16px; cursor:pointer; line-height:1;}
.ab-pnl-nav button:disabled{opacity:.35; cursor:default;}
.ab-pnl-mode{margin-left:auto; font-size:11px; color:var(--text-3); text-transform:uppercase; letter-spacing:.04em;}
.ab-pnl-sum{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-bottom:12px;}
.ab-pnl-sum div{padding:8px 10px; border-radius:var(--radius-s); background:var(--panel-2); border:1px solid var(--border); min-width:0;}
.ab-pnl-sum span{display:block; font-size:10.5px; color:var(--text-3);}
.ab-pnl-sum b{display:block; margin-top:3px; font-size:15px; color:var(--text-1);}
.ab-pnl-grid{display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px;}
.ab-pnl-dow{font-size:10px; text-align:center; color:var(--text-3); padding-bottom:2px;}
.ab-pnl-day{padding:6px 4px; min-height:54px; border-radius:var(--radius-s); border:1px solid var(--border); background:var(--panel-2); text-align:center; min-width:0;}
.ab-pnl-day.blank{border:0; background:transparent;}
.ab-pnl-day.pos{background:var(--buy-dim); border-color:rgba(47,217,128,.35);}
.ab-pnl-day.neg{background:var(--sell-dim); border-color:rgba(241,73,91,.35);}
.ab-pnl-day.today{box-shadow:0 0 0 1px var(--accent) inset;}
.ab-pnl-day i{display:block; font-style:normal; font-size:10px; color:var(--text-3);}
.ab-pnl-day b{display:block; margin-top:3px; font-size:11.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.ab-pnl-day small{display:block; margin-top:2px; font-size:9.5px; color:var(--text-3);}
.ab-pnl-empty{grid-column:1/-1; padding:20px; text-align:center; color:var(--text-3); font-size:12.5px;}
@media (max-width:560px){
  .ab-pnl-grid{gap:4px;} .ab-pnl-day{min-height:46px; padding:4px 2px;} .ab-pnl-day b{font-size:10px;} .ab-pnl-day small{display:none;}
  .ab-pnl-sum b{font-size:13px;}
}
.ab-orphan{background:rgba(255,170,0,.07);}
.ab-warn{color:#f0b429; font-size:11.5px; font-weight:600;}
.ab-manual{color:var(--muted,#9aa3b2); font-size:11.5px; font-weight:600;}
.ab-orphan.is-manual{background:transparent; opacity:.8;}
.ab-mini{padding:5px 10px; border-radius:7px; border:1px solid var(--border,#3a3f4b); background:transparent; color:inherit; font:inherit; font-size:11.5px; cursor:pointer;}

/* Badge posisi yang sudah partial close (TP1/TP2) tapi sisanya masih berjalan */
.ab-partial{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;font-size:10px;font-weight:600;color:#f0b90b;background:rgba(240,185,11,.12);white-space:nowrap}

/* Peringatan saldo kurang (panel AUTOBOT) & info slot (tab Kandidat koin) */
.ab-balwarn{margin:10px 0;padding:10px 12px;border-radius:8px;font-size:12px;line-height:1.45;color:#ff6b6b;background:rgba(255,77,79,.10);border:1px solid rgba(255,77,79,.35)}
.ab-slotbar{margin:8px 0 12px;padding:9px 12px;border-radius:8px;font-size:12px;line-height:1.5;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
.ab-slotbar b{font-weight:700}
.ab-slotbar .ab-up{color:#2ebd85}.ab-slotbar .ab-down{color:#ff6b6b}.ab-slotbar .ab-warnc{color:#f0b90b}

/* Ringkasan slot koin (tab Kandidat koin) */
.ab-slot-calc{font-size:12px;line-height:1.5;color:var(--text-2,#aab)}
.ab-slot-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-top:8px}
.ab-slot-cell{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:8px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06)}
.ab-slot-lbl{font-size:11px;color:var(--text-3,#889)}
.ab-slot-val{font-size:20px;font-weight:700;line-height:1.1}
.ab-slot-cell small{font-size:10.5px;color:var(--text-3,#889)}
.ab-slot-val.ab-up{color:#2ebd85}.ab-slot-val.ab-down{color:#ff6b6b}.ab-slot-val.ab-warnc{color:#f0b90b}
.ab-slot-note{margin-top:8px;font-size:12px}
.ab-slot-empty{font-size:12px;color:var(--text-3,#889)}
@media (max-width:980px){.ab-slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.ab-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ab-slot-cell.ab-daily.halted{border-color:rgba(255,107,107,.55);background:rgba(255,107,107,.08)}

/* Posisi manual dari Binance (tab Buka di Binance) */
.ab-man-wrap{margin-top:16px}
.ab-man-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:4px;font-size:13px}
.ab-man-sum{font-size:12px;color:var(--text-3,#889)}
.ab-open-pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700;color:#2ebd85;background:rgba(46,189,133,.14)}
.ab-man-src{color:var(--text-3,#889);font-size:11px;margin-left:4px}
.ab-man-wrap .ab-orphan{background:transparent;opacity:1}

/* Riwayat posisi: semua kolom rata tengah supaya tidak berdempetan */
.ab-table-center th,.ab-table-center td,.ab-table-center .r,.ab-table-center .c{text-align:center}
.ab-table-center th,.ab-table-center td{padding-left:14px;padding-right:14px}
.ab-table-center .pairc{justify-content:center}

/* Alasan kandidat ditolak bot */
.ab-cand button.has-skip{border-color:rgba(255,107,107,.45)}
.ab-skip{color:#ff6b6b;font-size:10.5px;line-height:1.35;white-space:normal}

/* Tabel Posisi aktif & Riwayat posisi: lebih rapat & font lebih kecil */
.ab-table{font-size:11.5px;}
.ab-table th{padding:7px 8px; font-size:10px; letter-spacing:.03em;}
.ab-table td{padding:5px 8px; line-height:1.25;}
.ab-table-center th,.ab-table-center td{padding-left:10px; padding-right:10px;}
.ab-table .pairc{gap:6px; font-size:11.5px;}
.ab-side-pill{padding:1px 6px; font-size:9.5px;}
.ab-tpb{padding:1px 6px; font-size:9.5px;}
.ab-partial{font-size:9px; padding:0 5px; margin-left:4px;}
.ab-table .ab-close{min-height:0; padding:3px 10px; font-size:10.5px; line-height:1.3;}

/* Font tabel: pakai Inter (bukan monospace) supaya nyaman dibaca; angka tetap rata via tabular-nums */
.ab-table td{font-family:var(--font-ui); font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1,"cv11" 1; font-weight:500; letter-spacing:0; -webkit-font-smoothing:antialiased;}
.ab-table .ab-partial{font-family:var(--font-ui);}

/* Bot engine aktif: ceklis hijau di judul, heading status disembunyikan */
.ab-engine-state[hidden]{display:none !important;}
.ab-engine-title .ab-ok{display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; margin-right:6px; border-radius:50%; background:var(--buy); color:#04140d; font-size:11px; font-weight:800; line-height:1; vertical-align:middle;}

/* Saklar mode: Real = merah, Virtual = biru */
.ab-seg button[data-mode="virtual"]{color:#60a5fa;}
.ab-seg button[data-mode="real"]{color:#f87171;}
.ab-seg button[data-mode="virtual"].active{background:#2563eb; color:#fff; box-shadow:0 0 12px rgba(37,99,235,.45);}
.ab-seg button[data-mode="real"].active{background:#dc2626; color:#fff; box-shadow:0 0 12px rgba(220,38,38,.45);}
.ab-seg button.locked:not(.active){opacity:.45;}

/* Kandidat koin: tampil sebagai list/tabel seperti panel lain */
.ab-cand-table td:nth-child(4){white-space:normal; max-width:420px; color:var(--text-2);}
.ab-cand-ok{color:var(--buy); font-weight:600;}
.ab-cand-table .ab-skip{white-space:nowrap;}

/* Warna kolom tabel posisi aktif (spesifisitas lebih tinggi dari .ab-table td) */
.ab-table td.ab-entry{color:#FF9F43 !important;}
.ab-table td.ab-tp{color:var(--buy, #63E6A4) !important;}
.ab-table td.ab-sl{color:var(--sell, #FF7185) !important;}

/* Panel posisi (tab, tabel, P&L bot): teks tidak bold */
.ab-tabs-panel, .ab-tabs-panel *{font-weight:400 !important;}

/* Panel posisi: warna teks lebih lembut (kontras diturunkan) */
.ab-tabs-panel{
  --text-1:#B3BAC6; --text-2:#868F9D; --text-3:#606875;
  --buy:#52BF8A; --sell:#DB6B7B;
}
.ab-tabs-panel .ab-table td.ab-entry{color:#D98E4C !important;}
.ab-tabs-panel .ab-tabbar > button.active{color:#D3D9E3;}
/* Angka RSI di header chart ikut orange */
#abRsiVal{color:#FF9F43 !important;}

/* ===== Tab Posisi aktif / Kandidat koin / Riwayat posisi / Buka di Binance: warna beda + animasi zoom ===== */
.ab-tabs-panel .ab-tabbar{gap:6px; padding-top:12px;}
.ab-tabs-panel .ab-tabbar > button[data-abtab]{
  border-radius:8px 8px 0 0; border-bottom-width:3px; font-weight:600 !important;
  transform:scale(1); transform-origin:center bottom; position:relative; will-change:transform;
  transition:transform .28s cubic-bezier(.34,1.56,.64,1), background-color .22s ease, color .22s ease, border-color .22s ease, box-shadow .22s ease !important;
}
.ab-tabs-panel .ab-tabbar > button[data-abtab="open"]{color:#7FE3B4; background:rgba(61,220,151,.10);}
.ab-tabs-panel .ab-tabbar > button[data-abtab="cand"]{color:#9DBEFF; background:rgba(91,155,255,.10);}
.ab-tabs-panel .ab-tabbar > button[data-abtab="hist"]{color:#C9B3FF; background:rgba(160,120,255,.10);}
.ab-tabs-panel .ab-tabbar > button[data-abtab="binance"]{color:#FFCB7A; background:rgba(255,170,60,.10);}
.ab-tabs-panel .ab-tabbar > button[data-abtab="open"]:hover{background:rgba(61,220,151,.18);}
.ab-tabs-panel .ab-tabbar > button[data-abtab="cand"]:hover{background:rgba(91,155,255,.18);}
.ab-tabs-panel .ab-tabbar > button[data-abtab="hist"]:hover{background:rgba(160,120,255,.18);}
.ab-tabs-panel .ab-tabbar > button[data-abtab="binance"]:hover{background:rgba(255,170,60,.18);}
.ab-tabs-panel .ab-tabbar > button[data-abtab].active{transform:scale(1.1); z-index:2; box-shadow:0 -2px 14px rgba(255,255,255,.06);}
.ab-tabs-panel .ab-tabbar > button[data-abtab="open"].active{background:rgba(61,220,151,.26); color:#E9FFF5; border-bottom-color:#3DDC97;}
.ab-tabs-panel .ab-tabbar > button[data-abtab="cand"].active{background:rgba(91,155,255,.28); color:#F0F5FF; border-bottom-color:#5B9BFF;}
.ab-tabs-panel .ab-tabbar > button[data-abtab="hist"].active{background:rgba(160,120,255,.28); color:#F6F0FF; border-bottom-color:#A078FF;}
.ab-tabs-panel .ab-tabbar > button[data-abtab="binance"].active{background:rgba(255,170,60,.28); color:#FFF6E6; border-bottom-color:#FFAA3C;}
.ab-tabs-panel .ab-tabbar .ab-badge{color:inherit; opacity:.8;}
@media (prefers-reduced-motion: reduce){ .ab-tabs-panel .ab-tabbar > button[data-abtab]{transition:none !important;} }
.ab-form .ab-lev-stepper input:focus-visible{outline:none;}
.ab-lev-stepper:focus-within{border-color:var(--accent); box-shadow:0 0 0 1px var(--accent);}
