:root {
  --bg:     #03080a;
  --bg2:    #060e0a;
  --bg3:    #0a1510;
  --bd:     rgba(72,249,85,.08);
  --bd2:    rgba(72,249,85,.16);
  --text:   #e4ede6;
  --text2:  #6e8a72;
  --text3:  #364a3a;
  --ac:     #48f955;
  --ac2:    #2bc436;
  --ac3:    rgba(72,249,85,.08);
  --green:  #48f955;
  --red:    #ff3d71;
  --orange: #ff9800;
  --gold:   #f5c842;
  --btc:    #f7931a;
  --xrp:    #346aa9;
  --bnb:    #f3ba2f;
  --emas:   #d4a843;
  --paxg:   #c9a227;
  --kag:    #a8d8ea;
  --sui:    #4da2ff;
  --eth:    #627eea;
}
*{ margin:0; padding:0; box-sizing:border-box; }
html,body{ height:100%; }
body{
  background:var(--bg);
  color:var(--text);
  font-family:'Syne',sans-serif;
  min-height:100vh;
  overflow-x:hidden;
}
body::before{
  content:'';
  position:fixed; inset:0;
  background-image:
    linear-gradient(rgba(72,249,85,.012) 1px,transparent 1px),
    linear-gradient(90deg,rgba(72,249,85,.012) 1px,transparent 1px);
  background-size:48px 48px;
  pointer-events:none; z-index:0;
}

/* ═══ PASSWORD GATE ═══ */
#gate{
  position:fixed; inset:0; background:var(--bg);
  display:flex; align-items:center; justify-content:center;
  z-index:9999; flex-direction:column;
}
.gate-box{
  background:var(--bg2); border:1px solid var(--bd2);
  border-radius:20px; padding:44px 48px;
  width:min(400px,90vw); text-align:center;
  animation:gateIn .5s cubic-bezier(.34,1.56,.64,1);
}
@keyframes gateIn{ from{opacity:0;transform:scale(.9) translateY(20px)} to{opacity:1;transform:scale(1) translateY(0)} }
.gate-logo{ font-size:38px; margin-bottom:12px; filter:drop-shadow(0 0 20px rgba(72,249,85,.4)); }
.gate-title{ font-size:22px; font-weight:800; margin-bottom:4px; }
.gate-title span{ color:var(--ac); }
.gate-sub{ font-size:12px; color:var(--text3); font-family:'Space Mono',monospace; margin-bottom:28px; }
.gate-label{ font-size:11px; color:var(--text2); font-family:'Space Mono',monospace; letter-spacing:2px; text-transform:uppercase; margin-bottom:10px; text-align:left; }
.gate-input-wrap{ position:relative; margin-bottom:16px; }
.gate-input{
  width:100%; background:var(--bg3); border:1px solid var(--bd);
  border-radius:10px; padding:13px 44px 13px 16px; color:var(--text);
  font-size:22px; font-family:'Space Mono',monospace; letter-spacing:8px;
  text-align:center; outline:none; transition:border-color .2s;
}
.gate-input:focus{ border-color:var(--ac); }
.gate-input.error{ border-color:var(--red); animation:shake .3s; }
.gate-input.success{ border-color:var(--green); }
@keyframes shake{ 0%,100%{transform:translateX(0)} 20%{transform:translateX(-6px)} 40%{transform:translateX(6px)} 60%{transform:translateX(-4px)} 80%{transform:translateX(4px)} }
.eye-btn{ position:absolute; right:12px; top:50%; transform:translateY(-50%); background:none; border:none; color:var(--text2); cursor:pointer; font-size:16px; padding:4px; transition:color .2s; }
.eye-btn:hover{ color:var(--text); }
.gate-btn{ width:100%; padding:13px; background:linear-gradient(135deg,var(--ac),var(--ac2)); border:none; border-radius:10px; color:#000; font-family:'Syne',sans-serif; font-size:15px; font-weight:800; cursor:pointer; transition:all .2s; }
.gate-btn:hover{ opacity:.9; transform:translateY(-1px); }
.gate-err{ font-size:12px; color:var(--red); font-family:'Space Mono',monospace; margin-top:10px; height:16px; }
.gate-attempts{ font-size:11px; color:var(--orange); font-family:'Space Mono',monospace; margin-top:8px; height:14px; }
.gate-hint{ font-size:11px; color:var(--text3); font-family:'Space Mono',monospace; margin-top:20px; }

/* ═══ LOCK ═══ */
#lockscreen{ position:fixed; inset:0; background:var(--bg); display:none; align-items:center; justify-content:center; z-index:9999; flex-direction:column; gap:12px; text-align:center; }
.lock-icon{ font-size:48px; }
.lock-title{ font-size:20px; font-weight:800; color:var(--red); }
.lock-msg{ font-size:13px; color:var(--text2); font-family:'Space Mono',monospace; }
.lock-countdown{ font-size:28px; font-weight:800; font-family:'Space Mono',monospace; color:var(--orange); }

/* ═══ APP ═══ */
#app{ display:none; }
#app.show{ display:block; }
.container{ max-width:1200px; margin:0 auto; padding:0 20px; position:relative; z-index:1; }

/* ── HEADER ── */
header{ padding:20px 0 18px; border-bottom:1px solid var(--bd); }
.hdr{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.logo{ display:flex; align-items:center; gap:10px; }
.logo-icon{ font-size:24px; }
.logo-text{ font-size:19px; font-weight:800; }
.logo-text span{ color:var(--ac); }
.hdr-right{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.live-badge{ display:flex; align-items:center; gap:6px; background:rgba(72,249,85,.1); border:1px solid rgba(72,249,85,.25); padding:4px 12px; border-radius:20px; font-size:10px; font-weight:600; color:var(--ac); font-family:'Space Mono',monospace; letter-spacing:1px; }
.live-dot{ width:5px; height:5px; border-radius:50%; background:var(--ac); animation:pulse 2s infinite; }
@keyframes pulse{ 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.4)} }
.ds-badge{ display:flex; align-items:center; gap:5px; background:rgba(72,249,85,.08); border:1px solid rgba(72,249,85,.2); padding:4px 10px; border-radius:20px; font-size:10px; font-weight:600; color:var(--ac); font-family:'Space Mono',monospace; letter-spacing:1px; }
.log-btn{ display:flex; align-items:center; gap:5px; background:var(--bg3); border:1px solid var(--bd); padding:4px 12px; border-radius:20px; font-size:10px; font-weight:600; color:var(--text2); font-family:'Space Mono',monospace; cursor:pointer; transition:all .2s; }
.log-btn:hover{ border-color:var(--ac); color:var(--ac); }
.clock{ font-size:11px; color:var(--text3); font-family:'Space Mono',monospace; }

/* ── TABS ── */
.tabs-wrapper{
  position:relative;
  margin-top:16px;
}
/* fade edges hint untuk scroll */
.tabs-wrapper::after{
  content:'';
  position:absolute; top:0; right:0; bottom:0;
  width:40px;
  background:linear-gradient(to right, transparent, var(--bg));
  pointer-events:none; z-index:2;
}
.tabs{
  display:flex; gap:7px;
  padding:0 0 8px;
  overflow-x:auto;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  scroll-snap-type:x proximity;
  scrollbar-width:none;
  /* extra right padding so last item clears the fade */
  padding-right:44px;
}
.tabs::-webkit-scrollbar{ display:none; }
.tab{
  display:flex; align-items:center; gap:8px;
  padding:10px 14px;
  background:var(--bg3); border:1px solid var(--bd);
  border-radius:12px; cursor:pointer;
  font-family:'Syne',sans-serif; font-size:13px; font-weight:700;
  color:var(--text2); transition:all .2s;
  white-space:nowrap; flex-shrink:0;
  position:relative; overflow:hidden;
  scroll-snap-align:start;
  /* min width so text stays readable on small screens */
  min-width:max-content;
}
.tab::after{ content:''; position:absolute; inset:0; opacity:0; transition:opacity .2s; border-radius:12px; }
.tab:hover{ border-color:var(--bd2); color:var(--text); }
.tab.on{ color:var(--text); }
.tab[data-s="BTC"].on{ border-color:var(--btc); } .tab[data-s="BTC"].on::after{ background:var(--btc); opacity:.07; }
.tab[data-s="ETH"].on{ border-color:var(--eth); } .tab[data-s="ETH"].on::after{ background:var(--eth); opacity:.08; }
.tab[data-s="XRP"].on{ border-color:var(--xrp); } .tab[data-s="XRP"].on::after{ background:var(--xrp); opacity:.1; }
.tab[data-s="BNB"].on{ border-color:var(--bnb); } .tab[data-s="BNB"].on::after{ background:var(--bnb); opacity:.07; }
.tab[data-s="SUI"].on{ border-color:var(--sui); } .tab[data-s="SUI"].on::after{ background:var(--sui); opacity:.08; }
.tab[data-s="XAUUSD"].on{ border-color:var(--emas); } .tab[data-s="XAUUSD"].on::after{ background:var(--emas); opacity:.1; }
.tab[data-s="PAXG"].on{ border-color:var(--paxg); } .tab[data-s="PAXG"].on::after{ background:var(--paxg); opacity:.1; }
.tab[data-s="KAG"].on{ border-color:var(--kag); } .tab[data-s="KAG"].on::after{ background:var(--kag); opacity:.08; }

/* coin icon wrapper */
.tcoin{
  width:28px; height:28px; border-radius:50%;
  flex-shrink:0; overflow:hidden;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.06);
}
.tcoin img{
  width:24px; height:24px; object-fit:contain;
  display:block; border-radius:50%;
}
/* fallback text icon (shown if img fails) */
.tcoin-fallback{
  width:28px; height:28px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:800; flex-shrink:0;
}
.s-btc{ background:var(--btc); color:#000; }
.s-xrp{ background:var(--xrp); color:#fff; }
.s-bnb{ background:var(--bnb); color:#000; }
.s-gold{ background:var(--emas); color:#000; }
.s-paxg{ background:var(--paxg); color:#000; }
.s-sui{ background:var(--sui); color:#fff; }
.s-eth{ background:var(--eth); color:#fff; }
.s-kag{ background:var(--kag); color:#000; }

/* tab text block */
.tab-txt{ display:flex; flex-direction:column; gap:1px; }
.tab-name{ font-size:13px; font-weight:700; line-height:1.2; }
.tab-pair{ font-size:9px; font-family:'Space Mono',monospace; color:var(--text3); line-height:1; }

/* active tab highlight on text */
.tab.on .tab-name{ color:var(--text); }
.tab.on .tab-pair{ color:var(--text2); }

/* chart header icon */
.tsym{ width:30px; height:30px; border-radius:50%; overflow:hidden; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.tsym img{ width:26px; height:26px; object-fit:contain; border-radius:50%; }

/* ── MAIN GRID ── */
.mgrid{ display:grid; grid-template-columns:1fr 350px; gap:14px; margin-top:14px; }
@media(max-width:900px){ .mgrid{ grid-template-columns:1fr; } }

/* ── CHART PANEL ── */
.cpanel{ background:var(--bg2); border:1px solid var(--bd); border-radius:14px; overflow:hidden; }
.chdr{ padding:14px 18px 12px; border-bottom:1px solid var(--bd); display:flex; align-items:center; justify-content:space-between; gap:8px; flex-wrap:wrap; }
.ainfo{ display:flex; align-items:center; gap:10px; }
.aname{ font-size:17px; font-weight:800; }
.afull{ font-size:11px; color:var(--text3); font-family:'Space Mono',monospace; }
.pdisp{ text-align:right; }
.pmain{ font-size:20px; font-weight:800; font-family:'Space Mono',monospace; }
.pchg{ font-size:11px; font-family:'Space Mono',monospace; padding:2px 7px; border-radius:4px; display:inline-block; margin-top:2px; }
.up{ background:rgba(72,249,85,.15); color:var(--green); }
.dn{ background:rgba(255,61,113,.15); color:var(--red); }
.tf-row{ display:flex; gap:4px; padding:10px 18px 0; }
.tfb{ padding:4px 9px; background:transparent; border:1px solid var(--bd); border-radius:6px; color:var(--text3); font-size:10px; font-weight:600; cursor:pointer; font-family:'Space Mono',monospace; transition:all .15s; }
.tfb:hover{ color:var(--text); border-color:var(--bd2); }
.tfb.on{ color:var(--ac); border-color:var(--ac); background:var(--ac3); }
#tv{ width:100%; height:420px; border:none; display:block; }

/* ── RIGHT ── */
.rpanel{ display:flex; flex-direction:column; gap:11px; }
.rcard{ background:var(--bg2); border:1px solid var(--bd); border-radius:14px; padding:15px; }
.slabel{ font-size:10px; font-weight:600; color:var(--text3); letter-spacing:2px; text-transform:uppercase; margin-bottom:10px; font-family:'Space Mono',monospace; }
.hz-row{ display:flex; gap:6px; }
.hzb{ flex:1; padding:9px 6px; background:var(--bg3); border:1px solid var(--bd); border-radius:8px; color:var(--text2); font-family:'Syne',sans-serif; font-size:12px; font-weight:600; cursor:pointer; text-align:center; transition:all .2s; }
.hzb:hover{ color:var(--text); border-color:var(--bd2); }
.hzb.on{ background:var(--ac3); border-color:var(--ac); color:var(--ac); }
.src-row{ display:flex; gap:5px; flex-wrap:wrap; }
.src-pill{ padding:3px 8px; border-radius:4px; font-size:9px; font-weight:700; font-family:'Space Mono',monospace; letter-spacing:.5px; background:var(--ac3); color:var(--text3); border:1px solid var(--bd); }

/* analyze btn */
.abtn{ width:100%; padding:13px; background:linear-gradient(135deg,var(--ac),var(--ac2)); border:none; border-radius:10px; color:#000; font-family:'Syne',sans-serif; font-size:14px; font-weight:800; cursor:pointer; transition:all .2s; }
.abtn:hover{ opacity:.9; transform:translateY(-1px); }
.abtn:active{ transform:translateY(0); }
.abtn:disabled{ opacity:.5; cursor:not-allowed; transform:none; }
.abtn-inner{ display:flex; align-items:center; justify-content:center; gap:8px; }
.spin{ width:15px; height:15px; border:2px solid rgba(0,0,0,.3); border-top-color:#000; border-radius:50%; animation:rot .7s linear infinite; display:none; }
.spinning .spin{ display:block; }
@keyframes rot{ to{transform:rotate(360deg)} }

/* progress */
.prog-steps{ display:none; gap:5px; flex-direction:column; background:var(--bg3); border:1px solid var(--bd); border-radius:10px; padding:11px; }
.prog-steps.show{ display:flex; }
.srow{ display:flex; align-items:center; gap:8px; font-size:11px; color:var(--text3); font-family:'Space Mono',monospace; transition:color .3s; }
.srow.done{ color:var(--green); } .srow.active{ color:var(--ac); }
.sdot{ width:6px; height:6px; border-radius:50%; background:var(--text3); flex-shrink:0; transition:background .3s; }
.srow.done .sdot{ background:var(--green); } .srow.active .sdot{ background:var(--ac); animation:pulse 1s infinite; }

.errc{ background:rgba(255,61,113,.06); border:1px solid rgba(255,61,113,.2); border-radius:10px; padding:12px; color:var(--red); font-size:12px; display:none; line-height:1.5; }
.errc.show{ display:block; }

/* ══════════════════════════════
   RESULT CARD — enhanced visual
══════════════════════════════ */
.rescard{ background:var(--bg2); border:1px solid var(--bd); border-radius:14px; padding:18px; display:none; animation:fup .4s ease; }
.rescard.show{ display:block; }
@keyframes fup{ from{opacity:0;transform:translateY(8px)} to{opacity:1;transform:translateY(0)} }

/* Top row: verdict + asset + time */
.res-toprow{ display:flex; align-items:flex-start; justify-content:space-between; margin-bottom:14px; gap:8px; }
.res-left{ display:flex; flex-direction:column; gap:5px; }
.vbadge{ display:inline-flex; align-items:center; gap:6px; padding:6px 14px; border-radius:20px; font-size:12px; font-weight:800; letter-spacing:1px; text-transform:uppercase; font-family:'Space Mono',monospace; }
.vBULLISH{ background:rgba(72,249,85,.15); color:var(--green); border:1px solid rgba(72,249,85,.3); }
.vBEARISH{ background:rgba(255,61,113,.15); color:var(--red); border:1px solid rgba(255,61,113,.3); }
.vNEUTRAL{ background:rgba(255,152,0,.15); color:var(--orange); border:1px solid rgba(255,152,0,.3); }
.vVOLATILE{ background:rgba(245,200,66,.15); color:var(--gold); border:1px solid rgba(245,200,66,.3); }
.res-hz{ font-size:10px; color:var(--text3); font-family:'Space Mono',monospace; }

/* Confidence gauge */
.conf-wrap{ text-align:right; }
.conf-num{ font-size:28px; font-weight:800; color:var(--ac); font-family:'Space Mono',monospace; line-height:1; }
.conf-lbl{ font-size:9px; color:var(--text3); font-family:'Space Mono',monospace; letter-spacing:1px; }
.conf-ring-wrap{ display:flex; justify-content:flex-end; }
.conf-ring{ width:48px; height:48px; }

/* Confidence bar */
.cbar-wrap{ background:var(--bg3); border-radius:4px; height:5px; margin-bottom:14px; overflow:hidden; }
.cbar{ height:100%; border-radius:4px; background:linear-gradient(90deg,var(--ac2),var(--ac)); transition:width .9s cubic-bezier(.34,1.56,.64,1); }

/* Price scenario visual */
.scenario-box{
  background:var(--bg3); border:1px solid var(--bd);
  border-radius:10px; padding:12px; margin-bottom:12px;
}
.scenario-title{ font-size:9px; color:var(--text3); font-family:'Space Mono',monospace; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:10px; }
.scenario-track{ position:relative; height:28px; border-radius:6px; overflow:hidden; background:linear-gradient(90deg, rgba(255,61,113,.15) 0%, rgba(255,152,0,.1) 40%, rgba(72,249,85,.15) 100%); }
.scenario-range-bar{ position:absolute; top:4px; bottom:4px; border-radius:4px; background:linear-gradient(90deg,rgba(255,61,113,.3),rgba(72,249,85,.3)); transition:all .8s ease; }
.scenario-marker{ position:absolute; top:0; bottom:0; width:3px; border-radius:3px; transform:translateX(-50%); }
.sm-current{ background:var(--text); z-index:3; }
.sm-bull{ background:var(--green); z-index:2; }
.sm-bear{ background:var(--red); z-index:2; }
.scenario-labels{ display:flex; justify-content:space-between; margin-top:6px; }
.slval{ font-size:9px; font-family:'Space Mono',monospace; font-weight:700; }
.slval.bear-c{ color:var(--red); } .slval.cur-c{ color:var(--text2); } .slval.bull-c{ color:var(--green); }
.slabel-row{ display:flex; justify-content:space-between; margin-top:2px; }
.slsub{ font-size:8px; color:var(--text3); font-family:'Space Mono',monospace; }

/* S/R grid */
.sr-grid{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:12px; }
.sr-box{ background:var(--bg3); border:1px solid var(--bd); border-radius:8px; padding:9px 11px; }
.sr-label{ font-size:9px; color:var(--text3); font-family:'Space Mono',monospace; margin-bottom:3px; letter-spacing:.5px; }
.sr-val{ font-size:13px; font-weight:700; font-family:'Space Mono',monospace; }
.tvup{ color:var(--green); } .tvdn{ color:var(--red); } .tvneu{ color:var(--gold); }

/* Signal chips */
.sig-section{ margin-bottom:12px; }
.sig-row{ display:flex; gap:5px; flex-wrap:wrap; margin-top:6px; }
.sigc{ display:flex; align-items:center; gap:4px; padding:4px 9px; border-radius:5px; font-size:9px; font-weight:700; font-family:'Space Mono',monospace; letter-spacing:.3px; }
.sbull{ background:rgba(72,249,85,.1); color:var(--green); border:1px solid rgba(72,249,85,.2); }
.sbear{ background:rgba(255,61,113,.1); color:var(--red); border:1px solid rgba(255,61,113,.2); }
.sneu{ background:rgba(122,135,153,.12); color:var(--text2); border:1px solid rgba(122,135,153,.15); }

/* Signal score bar */
.signal-score{ display:flex; align-items:center; gap:8px; margin-bottom:12px; background:var(--bg3); border:1px solid var(--bd); border-radius:8px; padding:9px 12px; }
.ss-label{ font-size:9px; color:var(--text3); font-family:'Space Mono',monospace; white-space:nowrap; }
.ss-track{ flex:1; height:6px; background:rgba(255,61,113,.2); border-radius:3px; position:relative; overflow:hidden; }
.ss-fill{ height:100%; border-radius:3px; transition:width .8s ease; }
.ss-count{ font-size:10px; font-family:'Space Mono',monospace; white-space:nowrap; }

/* Analysis text */
.atext{ font-size:12px; line-height:1.8; color:var(--text2); border-top:1px solid var(--bd); padding-top:12px; margin-top:2px; }
.atext b{ color:var(--text); font-weight:600; }
.highlight{ color:var(--ac); font-family:'Space Mono',monospace; font-size:11px; }

/* Probability visual */
.prob-row{ display:flex; gap:6px; margin-bottom:12px; }
.prob-box{ flex:1; background:var(--bg3); border-radius:8px; padding:8px 10px; text-align:center; border:1px solid var(--bd); }
.prob-val{ font-size:15px; font-weight:800; font-family:'Space Mono',monospace; line-height:1; }
.prob-label{ font-size:8px; color:var(--text3); font-family:'Space Mono',monospace; margin-top:3px; letter-spacing:.5px; }
.prob-bull .prob-val{ color:var(--green); }
.prob-bear .prob-val{ color:var(--red); }
.prob-neu .prob-val{ color:var(--orange); }

.meta-row{ display:flex; gap:5px; flex-wrap:wrap; margin-top:10px; padding-top:10px; border-top:1px solid var(--bd); }
.meta-pill{ padding:2px 7px; border-radius:4px; font-size:9px; font-family:'Space Mono',monospace; background:rgba(255,255,255,.04); color:var(--text3); }
.meta-pill span{ color:var(--ac); }
.risk-note{ display:flex; align-items:flex-start; gap:7px; background:rgba(255,152,0,.05); border:1px solid rgba(255,152,0,.15); border-radius:8px; padding:9px 11px; margin-top:10px; font-size:10px; color:rgba(255,152,0,.75); line-height:1.5; }

/* ── MINI CHARTS ── */
.mini-sec{ margin-top:14px; }
.sec-title{ font-size:12px; font-weight:700; color:var(--text2); letter-spacing:1px; margin-bottom:10px; display:flex; align-items:center; gap:8px; }
.sec-title::after{ content:''; flex:1; height:1px; background:var(--bd); }
.mgrd{ display:grid; grid-template-columns:repeat(4,1fr); gap:9px; }
@media(max-width:640px){ .mgrd{ grid-template-columns:repeat(2,1fr); } }
.mcard{ background:var(--bg2); border:1px solid var(--bd); border-radius:10px; overflow:hidden; cursor:pointer; transition:border-color .2s; }
.mcard:hover{ border-color:var(--bd2); }
.mcard.on{ border-color:var(--ac); }
.mlbl{ padding:7px 9px 3px; font-size:10px; font-weight:700; font-family:'Space Mono',monospace; color:var(--text2); display:flex; justify-content:space-between; }
.mcf{ width:100%; height:78px; display:block; border:none; pointer-events:none; }

/* ══════════════════════════════
   HISTORY LOG PANEL
══════════════════════════════ */
#log-panel{
  position:fixed; inset:0; z-index:8888;
  background:rgba(3,8,10,.95);
  backdrop-filter:blur(4px);
  display:none; flex-direction:column;
  animation:slideIn .3s ease;
}
#log-panel.show{ display:flex; }
@keyframes slideIn{ from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
.log-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:20px 24px 16px; border-bottom:1px solid var(--bd);
  flex-shrink:0;
}
.log-title{ font-size:18px; font-weight:800; }
.log-title span{ color:var(--ac); }
.log-actions{ display:flex; gap:8px; align-items:center; }
.log-clear{ background:rgba(255,61,113,.1); border:1px solid rgba(255,61,113,.2); color:var(--red); font-family:'Space Mono',monospace; font-size:10px; padding:5px 12px; border-radius:6px; cursor:pointer; transition:all .2s; }
.log-clear:hover{ background:rgba(255,61,113,.2); }
.log-close{ background:var(--bg3); border:1px solid var(--bd); color:var(--text2); font-family:'Space Mono',monospace; font-size:12px; padding:6px 14px; border-radius:8px; cursor:pointer; transition:all .2s; }
.log-close:hover{ border-color:var(--ac); color:var(--ac); }
.log-filters{ display:flex; gap:6px; padding:12px 24px; border-bottom:1px solid var(--bd); flex-wrap:wrap; flex-shrink:0; }
.lf-btn{ padding:4px 12px; border-radius:20px; font-size:10px; font-weight:700; font-family:'Space Mono',monospace; border:1px solid var(--bd); background:var(--bg3); color:var(--text3); cursor:pointer; transition:all .15s; }
.lf-btn:hover{ color:var(--text); border-color:var(--bd2); }
.lf-btn.on{ border-color:var(--ac); color:var(--ac); background:var(--ac3); }
.log-stats{ display:flex; gap:12px; padding:10px 24px; border-bottom:1px solid var(--bd); flex-shrink:0; flex-wrap:wrap; }
.lstat{ font-size:11px; color:var(--text3); font-family:'Space Mono',monospace; }
.lstat span{ color:var(--text2); }
.log-body{ flex:1; overflow-y:auto; padding:16px 24px; }
.log-empty{ text-align:center; padding:60px 0; color:var(--text3); font-family:'Space Mono',monospace; font-size:13px; }
.log-item{
  background:var(--bg2); border:1px solid var(--bd);
  border-radius:12px; padding:14px 16px; margin-bottom:10px;
  animation:fup .3s ease; cursor:pointer;
  transition:border-color .2s;
}
.log-item:hover{ border-color:var(--bd2); }
.log-item-top{ display:flex; align-items:center; justify-content:space-between; margin-bottom:8px; flex-wrap:wrap; gap:6px; }
.li-left{ display:flex; align-items:center; gap:8px; }
.li-asset{ font-size:12px; font-weight:800; font-family:'Space Mono',monospace; }
.li-hz{ font-size:9px; color:var(--text3); font-family:'Space Mono',monospace; background:var(--bg3); padding:2px 7px; border-radius:4px; }
.li-time{ font-size:9px; color:var(--text3); font-family:'Space Mono',monospace; }
.li-verdict{ padding:3px 10px; border-radius:12px; font-size:9px; font-weight:800; font-family:'Space Mono',monospace; letter-spacing:.5px; }
.log-item-body{ display:grid; grid-template-columns:1fr 1fr 1fr 1fr; gap:8px; margin-bottom:8px; }
@media(max-width:600px){ .log-item-body{ grid-template-columns:1fr 1fr; } }
.li-stat{ background:var(--bg3); border-radius:6px; padding:7px 9px; }
.li-stat-label{ font-size:8px; color:var(--text3); font-family:'Space Mono',monospace; letter-spacing:.5px; }
.li-stat-val{ font-size:11px; font-weight:700; font-family:'Space Mono',monospace; margin-top:2px; }
.log-item-analysis{ font-size:11px; color:var(--text3); line-height:1.6; border-top:1px solid var(--bd); padding-top:8px; display:none; }
.log-item-analysis.expanded{ display:block; }
.li-expand{ font-size:9px; color:var(--text3); font-family:'Space Mono',monospace; cursor:pointer; }
.li-expand:hover{ color:var(--ac); }

footer{ text-align:center; padding:28px 0; color:var(--text3); font-size:10px; font-family:'Space Mono',monospace; border-top:1px solid var(--bd); margin-top:28px; }