@font-face{font-family:"JetBrains Mono";src:url("/static/fonts/JetBrainsMono-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("/static/fonts/JetBrainsMono-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("/static/fonts/JetBrainsMono-SemiBold.woff2") format("woff2");font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("/static/fonts/JetBrainsMono-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
  --bg:#05070d;
  --paper:#0b1220;
  --ink:#e8eefc;
  --muted:#8b9bb8;
  --dim:#5e6d88;
  --line:rgba(34,211,238,.16);
  --line-soft:rgba(148,163,184,.1);
  --green:#34d399;
  --red:#fb7185;
  --blue:#38bdf8;
  --pink:#f472b6;
  --teal:#22d3ee;
  --orange:#fb923c;
  --violet:#a78bfa;
  --gutter:12px;
  --mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --sans:-apple-system,"SF Pro Display","Segoe UI",system-ui,Helvetica,Arial,sans-serif;
  --serif:"Iowan Old Style","Palatino Linotype",Palatino,"Times New Roman",Georgia,serif;
  --radius:16px;
  --glow-cyan:0 0 18px rgba(34,211,238,.28);
  --glow-pink:0 0 18px rgba(244,114,182,.28);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{
  height:100%;height:100vh;height:100dvh;
  overflow:hidden;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
}
body{
  background:
    radial-gradient(900px 480px at 12% -10%,rgba(56,189,248,.08),transparent 55%),
    radial-gradient(800px 520px at 100% 0%,rgba(168,85,247,.07),transparent 50%),
    radial-gradient(700px 400px at 80% 110%,rgba(244,114,182,.06),transparent 50%),
    var(--bg);
}
button,input,select,a{font-family:inherit;color:inherit}
button{cursor:pointer;touch-action:manipulation}
.sr-only,.hidden-hooks{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}
.page{
  position:fixed;inset:0;
  height:100%;height:100vh;height:100dvh;
  overflow:hidden;
  display:grid;
  grid-template-rows:50px 132px minmax(0,1fr) 350px 14px;
  gap:var(--gutter);
  padding:10px 14px 6px;
  background:transparent;
  color:var(--ink);
}
.card{
  background:linear-gradient(180deg,rgba(16,24,44,.92),rgba(8,12,22,.96));
  border:1px solid rgba(56,189,248,.16);
  border-radius:var(--radius);
  padding:10px 14px 12px;
  box-shadow:0 8px 28px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.04);
  min-width:0;min-height:0;
}

.sec-t{
  font-size:11px;font-weight:700;letter-spacing:.08em;color:#c7d6f0;
  display:flex;align-items:center;gap:8px;
  text-transform:uppercase;margin-bottom:6px;white-space:nowrap;
}
.sec-t i{
  width:6px;height:6px;border-radius:50%;background:#22d3ee;flex-shrink:0;
  display:inline-block;box-shadow:0 0 8px #22d3ee;
}
.sec-sub{
  font-size:9px;font-weight:700;letter-spacing:.14em;color:#7b8aa5;
  text-transform:uppercase;margin:0 0 6px 2px;
}

.topbar{
  display:grid;grid-template-columns:1fr auto 1fr;
  align-items:center;min-height:0;gap:10px;padding:0 4px;
}
.ticker{
  justify-self:start;font-size:12px;color:#c9d6ee;
  display:flex;align-items:baseline;flex-wrap:nowrap;gap:5px;
  min-width:0;overflow:hidden;font-family:var(--sans);
  letter-spacing:.01em;white-space:nowrap;
}
.ticker b{font-weight:750;margin-right:2px;color:#e8eefc}
.ticker i{font-style:normal;font-weight:450;font-variant-numeric:tabular-nums;color:#67e8f9}
.ticker .dot{color:#475569;margin:0 1px}
.wordmark{justify-self:center;text-align:center;z-index:2}
.wordmark h1{
  font-weight:400;font-size:28px;line-height:1;
  display:flex;align-items:baseline;justify-content:center;gap:.22em;
  letter-spacing:-.02em;color:#f1f5ff;
  text-shadow:0 0 22px rgba(34,211,238,.28);
}
.wm-w{font-family:var(--serif);font-weight:700;letter-spacing:.01em;font-size:1.02em}
.wm-a{font-family:var(--sans);font-weight:640;letter-spacing:-.04em;font-size:.92em;color:#a5f3fc}
.tm{font-family:var(--sans);font-size:.38em;font-weight:600;margin-left:.04em;color:#94a3b8;top:-.62em;position:relative}
.ver{font-family:var(--sans);font-size:11px;font-weight:550;letter-spacing:.08em;color:#67e8f9;margin-left:.15em;text-shadow:0 0 8px rgba(34,211,238,.5)}
.head-actions{justify-self:end;display:flex;gap:7px;align-items:center}
.act-btn{
  border:0;color:#fff;font-size:11px;font-weight:750;letter-spacing:.04em;
  padding:8px 13px;border-radius:10px;line-height:1;
  display:inline-flex;align-items:center;gap:5px;
  transition:transform .15s,filter .15s,box-shadow .15s;
}
.act-btn:hover{transform:translateY(-1px);filter:brightness(1.08)}
.act-btn:active{transform:translateY(0) scale(.98)}
.act-btn:disabled{opacity:.68;cursor:not-allowed;transform:none;filter:none}
.btn-start{
  background:linear-gradient(180deg,#6ee7b7 0%,#34d399 100%);
  color:#064e3b;font-weight:800;
  box-shadow:0 0 18px rgba(52,211,153,.7),0 2px 0 #047857;
  border:1px solid #a7f3d0;
}
.btn-start:disabled{
  opacity:.82;background:linear-gradient(180deg,#5eead4,#2dd4bf);
  color:#064e3b;box-shadow:none;border-color:#99f6e4;filter:none;
}
.btn-stop{background:#e11d48;box-shadow:0 0 14px rgba(225,29,72,.4),0 2px 0 rgba(136,19,55,.5)}
.btn-trade{
  background:linear-gradient(90deg,#7c3aed 0%,#c026d3 42%,#f97316 100%);
  box-shadow:0 0 16px rgba(124,58,237,.45),0 2px 0 rgba(88,28,135,.45);
}
.btn-trade .spark{width:12px;height:12px;flex-shrink:0;color:#fde68a;filter:drop-shadow(0 0 3px #fbbf24)}
.btn-trade.is-on{box-shadow:0 0 0 2px rgba(251,191,36,.55),0 0 18px rgba(249,115,22,.5)}
.gear-btn{
  width:28px;height:28px;border:1px solid rgba(56,189,248,.28);background:rgba(15,23,42,.7);
  border-radius:8px;color:#a5f3fc;display:inline-flex;align-items:center;justify-content:center;
}
.gear-btn:hover{background:rgba(34,211,238,.12);color:#fff}

.row1{
  display:grid;grid-template-columns:440px minmax(0,1fr);
  gap:var(--gutter);min-height:0;align-items:stretch;
}
.bal-pnl{min-width:0;display:flex;flex-direction:column;overflow:hidden}
.bal-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}
.bal-lab{font-size:12px;color:#8b9bb8;font-weight:500;margin-bottom:0}
.bal-col .amt{
  font-family:var(--sans);font-size:40px;font-weight:750;
  letter-spacing:-.04em;line-height:.95;color:#f1f5ff;
  font-variant-numeric:tabular-nums;text-shadow:0 0 18px rgba(165,243,252,.15);
}
.bal-col .amt.pnl.up,.amt.pnl:not(.down){color:#34d399;text-shadow:0 0 16px rgba(52,211,153,.3)}
.bal-col .amt.pnl.down{color:#fb7185;text-shadow:0 0 16px rgba(251,113,133,.3)}
.bal-foot{margin-top:6px}
.bal-foot .bal-lab{display:block;font-size:11px;color:#8b9bb8;font-weight:500}
.bal-foot b{font-size:14px;font-weight:700;display:block;margin-top:1px;color:#e8eefc}
.bal-foot b.pnl.up,.bal-foot b.pnl:not(.down){color:#34d399}
.bal-foot b.pnl.down{color:#fb7185}
.bal-chart{flex:0 0 42px;min-height:42px;height:42px;max-height:42px;margin-top:4px;overflow:hidden;position:relative;z-index:1}
.bal-chart .apexcharts-canvas{margin:0 auto}

.life{min-width:0;min-height:0;display:flex;flex-direction:column}
.life-box{
  flex:1;min-height:0;overflow:hidden;
  font-family:var(--mono);font-size:10.5px;line-height:1.45;color:#c5d0e6;
}
.life-box .ll{display:grid;grid-template-columns:76px minmax(0,1fr);gap:8px;margin:0 0 2px;white-space:nowrap;overflow:hidden;min-width:0}
.life-box .ll .ag{font-weight:700;letter-spacing:.02em;flex-shrink:0}
.life-box .ll .ag.FEED{color:#67e8f9}
.life-box .ll .ag.SINYAL{color:#60a5fa}
.life-box .ll .ag.EXECUTOR{color:#f472b6}
.life-box .ll .ag.LOGGER{color:#94a3b8}
.life-box .ll .ms{color:#c5d0e6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

.row2{
  min-height:0;display:grid;
  grid-template-columns:minmax(0,1fr) 400px;
  gap:var(--gutter);
}
.orb-card{display:flex;flex-direction:column;padding-bottom:8px;position:relative}
.orb-card .orb-title{margin-bottom:2px}
.orb-stage{position:relative;flex:1;min-width:0;min-height:0;overflow:hidden}
.orb-core{
  position:absolute;left:210px;right:8px;top:4px;bottom:4px;
  z-index:2;
}
.orb-core canvas{width:100% !important;height:100% !important;display:block;border-radius:12px}
.orb-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.page > .strings-svg,.strings-svg{display:none !important;visibility:hidden;pointer-events:none}

.verdict{
  position:absolute;left:0;top:0;bottom:4px;width:200px;z-index:4;
  display:flex;flex-direction:column;gap:8px;justify-content:flex-start;
  padding-top:0;pointer-events:none;
}
.verdict .sec-sub{pointer-events:none;margin-bottom:0;color:#7b8aa5}
.vc{
  pointer-events:auto;position:relative;display:grid;grid-template-columns:1fr auto;
  gap:8px;align-items:center;text-align:left;border-radius:12px;
  padding:8px 16px 8px 12px;border:1px solid transparent;
  background:rgba(15,23,42,.8);min-height:56px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
  transition:box-shadow .15s,transform .15s;
}
.vc:hover{transform:translateX(1px)}
.vc.on{box-shadow:0 0 0 1.5px rgba(34,211,238,.55),0 0 14px rgba(34,211,238,.2)}
.vc-btc{background:rgba(120,80,20,.28);border-color:rgba(245,158,11,.35)}
.vc-eth{background:rgba(30,58,110,.35);border-color:rgba(96,165,250,.35)}
.vc-sol{background:rgba(6,78,59,.35);border-color:rgba(52,211,153,.35)}
.vc-xrp{background:rgba(88,28,70,.35);border-color:rgba(244,114,182,.35)}
.vc-name{font-size:17px;font-weight:750;letter-spacing:.02em;color:#fde68a;line-height:1.05}
.vc-eth .vc-name{color:#bfdbfe}
.vc-sol .vc-name{color:#a7f3d0}
.vc-xrp .vc-name{color:#fbcfe8}
.vc-side{font-size:15px;font-weight:750;letter-spacing:.04em;line-height:1.1;margin-top:1px}
.vc-btc .side-short,.side-short{color:#fb923c}
.side-long{color:#34d399}
.side-none{color:#a8a29e}
.vc-eth .side-none{color:#93c5fd}
.vc-sol .side-none{color:#6ee7b7}
.vc-xrp .side-none{color:#f9a8d4}
.vc-r{text-align:right}
.vc-conf{font-size:11px;color:#94a3b8;font-weight:600}
.vc-px{font-size:15px;font-weight:750;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:#e8eefc}
.vc-sub{font-size:8.5px;color:#7b8aa5;letter-spacing:.04em;text-transform:uppercase;margin-top:1px;max-width:110px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vc-port{
  position:absolute;right:-6px;top:50%;width:10px;height:10px;margin-top:-5px;
  border-radius:50%;background:#0b1220;border:2px solid currentColor;z-index:2;pointer-events:none;
}
.vc-btc .vc-port{color:#f59e0b;background:#fde68a;box-shadow:0 0 8px #f59e0b}
.vc-eth .vc-port{color:#60a5fa;background:#1e3a8a;box-shadow:0 0 8px #60a5fa}
.vc-sol .vc-port{color:#34d399;background:#064e3b;box-shadow:0 0 8px #34d399}
.vc-xrp .vc-port{color:#f472b6;background:#831843;box-shadow:0 0 8px #f472b6}

/* Indicator pills live on the ORB graph; hooks stay in DOM, visually hidden */
.ind-nodes{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);pointer-events:none}

.chart-col{min-width:0;min-height:0;display:flex;flex-direction:column;padding:10px 12px 10px}
.chart-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:4px}
.chart-head h2{font-size:15px;font-weight:750;letter-spacing:.02em;color:#f1f5ff;margin-right:auto}
.tf-bar{display:flex;gap:5px}
.tf-bar button{
  border:1px solid rgba(56,189,248,.28);background:rgba(15,23,42,.6);color:#c7d6f0;
  font-size:11px;font-weight:650;padding:3px 9px;border-radius:99px;line-height:1.2;
}
.tf-bar button.on{background:#7c3aed;color:#fff;border-color:#a78bfa;box-shadow:0 0 12px rgba(124,58,237,.45)}
.live-px{font-family:var(--mono);font-size:10px;color:#67e8f9;font-weight:500}
.chart-stack{flex:1;min-height:0;display:flex;flex-direction:column}
.chart-stage{flex:1;min-height:180px;position:relative}
#tvchart{position:absolute;inset:0}
#tvchart a,.tv-lightweight-charts a{display:none !important}
.chart-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
.px-dot{position:absolute;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:#22d3ee;box-shadow:0 0 0 3px rgba(34,211,238,.3);z-index:4;pointer-events:none}
.mkt{margin-top:6px;border:1px solid rgba(56,189,248,.14);border-radius:10px;padding:5px 8px;background:rgba(8,12,22,.6);max-height:118px;overflow:hidden;flex-shrink:0}
.mkt-tbl{width:100%;border-collapse:collapse;font-size:10px;font-family:var(--sans)}
.mkt-tbl th{text-align:left;font-size:9px;letter-spacing:.08em;color:#7b8aa5;font-weight:650;padding:2px 4px 5px;text-transform:uppercase;border-bottom:1px solid rgba(148,163,184,.12)}
.mkt-tbl td{padding:3px 4px;border-bottom:1px solid rgba(148,163,184,.08);font-variant-numeric:tabular-nums;font-weight:550;color:#d6e0f0}
.mkt-tbl tr:last-child td{border-bottom:0}
.mkt-tbl td:nth-child(n+2){text-align:right}

.row3{
  display:grid;
  grid-template-columns:460px minmax(0,1fr) 290px 228px;
  gap:var(--gutter);min-height:0;
}
.hive{min-width:0;min-height:0;display:flex;flex-direction:column;position:relative;overflow:hidden}
.flow-track{flex:0 0 auto;position:relative;height:84px}
.nodes{
  position:relative;display:flex;flex-direction:row;
  align-items:flex-start;justify-content:space-around;height:84px;
}
.node{
  position:relative;width:96px;height:84px;flex:0 0 auto;
  display:flex;flex-direction:column;align-items:center;
  pointer-events:none;z-index:4;will-change:transform;
}
.node .flow-blob{width:72px;height:66px;overflow:visible;filter:drop-shadow(0 0 10px rgba(34,211,238,.35))}
.node-ai .flow-blob{filter:drop-shadow(0 0 12px rgba(59,130,246,.65))}
.node-executor .flow-blob{filter:drop-shadow(0 0 12px rgba(236,72,153,.6))}
.node-logger .flow-blob{filter:drop-shadow(0 0 10px rgba(148,163,184,.4))}
.node .lab{
  font-size:10px;font-weight:750;letter-spacing:.12em;
  color:#e8eefc;margin-top:-2px;text-transform:uppercase;
}
.node-ai .lab{color:#93c5fd}
.node-executor .lab{color:#f9a8d4}
.node .cnt{display:none}
.node .tag{display:none}
.node.is-hop{animation:hop .45s ease}
@keyframes hop{0%{transform:translateY(0)}35%{transform:translateY(-9px)}100%{transform:translateY(0)}}
.blob-bob{transform-origin:50% 60%}
.has-gsap .blob-bob{animation:none}
body:not(.has-gsap) .blob-bob{animation:bob 3.6s ease-in-out infinite}
body:not(.has-gsap) .node-ai .blob-bob{animation-duration:4.1s;animation-delay:-.6s}
body:not(.has-gsap) .node-executor .blob-bob{animation-duration:3.3s;animation-delay:-1.4s}
body:not(.has-gsap) .node-logger .blob-bob{animation-duration:3.9s;animation-delay:-2s}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}

.node-feed .flow-blob{filter:drop-shadow(0 0 8px rgba(103,232,249,.45))}
.node-feed .blob-sclera{fill:#f8fafc;stroke:#0f172a;stroke-width:0.85}
.node-feed .blob-eye{fill:#020617;stroke:#020617;stroke-width:0.35}

.eye-wrap.is-blink .blob-eye{transform:scaleY(.12);transform-origin:50% 50%}
.blob-eye{transition:transform .08s}

.hive-nivo{
  flex:0 0 58px;height:58px;min-height:58px;
  margin:0 6px 0;position:relative;z-index:2;
}
.hive-sinyal{
  flex:1;min-height:0;display:grid;
  grid-template-columns:1fr 1fr 1fr 1fr;
  padding-top:2px;position:relative;
}
.sinyal-card{
  grid-column:2 / 5;position:relative;left:0;bottom:auto;
  width:100%;max-width:380px;z-index:8;
  background:linear-gradient(180deg,rgba(14,22,42,.96),rgba(8,12,24,.98));
  border:1.5px solid rgba(56,189,248,.45);
  border-radius:14px;
  box-shadow:0 0 22px rgba(34,211,238,.18),0 8px 24px rgba(0,0,0,.4);
  overflow:hidden;pointer-events:auto;align-self:start;justify-self:start;
}
.sinyal-card .sc-tab{
  width:100%;background:transparent;border:0;
  display:flex;align-items:center;justify-content:space-between;
  padding:6px 12px 2px;font-size:11.5px;font-weight:750;letter-spacing:.06em;
  color:#e8eefc;text-align:left;
}
.sinyal-card .pill,.sinyal-card .pill.ok,.sinyal-card .pill.wait{
  font-size:10px;font-weight:750;letter-spacing:.08em;
  display:inline-flex;align-items:center;gap:6px;
  background:none !important;color:#a5f3fc;padding:0;border-radius:0;margin:0;
}
.sinyal-card .pill.ok::before,.sinyal-card .pill.wait::before,.sinyal-card .pill.bad::before{
  content:"";width:8px;height:8px;border-radius:50%;background:#22d3ee;
  box-shadow:0 0 8px #22d3ee;
}
.sinyal-card .pill.wait::before{background:#fbbf24;box-shadow:0 0 8px #fbbf24}
.sinyal-card .pill.bad::before{background:#fb7185;box-shadow:0 0 8px #fb7185}
.sinyal-card .pill.bad{color:#fb7185;font-size:9px;letter-spacing:.02em;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-body{padding:0 12px 10px;overflow:hidden}
.sc-row{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:12.5px;color:#d6e0f0}
.sc-row .lab,.sc-key .lab{font-weight:650;color:#c7d6f0;font-size:12.5px}
.sc-static{font-weight:500}
.sc-ico{width:14px;height:14px;color:#67e8f9;flex-shrink:0}
.sc-model{align-items:center}
.sc-model .in-wrap{flex:1;min-width:0;position:relative}
.sc-model .in,.sc-key .in,.in{
  width:100%;border:1px solid rgba(56,189,248,.28);border-radius:6px;
  padding:3px 22px 3px 7px;font-size:10.5px;font-family:var(--mono);
  background:rgba(5,7,13,.8);color:#e8eefc;letter-spacing:-.06em;
}
.sc-model .in:focus,.sc-key .in:focus,.in:focus{outline:0;border-color:#22d3ee;box-shadow:0 0 0 2px rgba(34,211,238,.2)}
.sc-model .pencil{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:12px;color:#67e8f9;pointer-events:none}
.sc-key{margin:3px 0 4px}
.sc-key .in{margin-top:2px;padding:5px 10px;font-size:12px;border-radius:8px}
.slot-actions{display:flex;justify-content:center;gap:14px;margin-top:4px;padding-bottom:2px}
.btn{
  border:1.5px solid rgba(56,189,248,.45);background:rgba(15,23,42,.7);color:#e8eefc;
  font-size:13px;font-weight:650;padding:5px 20px;border-radius:8px;min-width:84px;
}
.btn:hover{background:rgba(34,211,238,.12);border-color:#22d3ee}
.btn-ghost{background:rgba(15,23,42,.7)}
.btn-teal{background:rgba(15,23,42,.7)}
.btn-danger{background:#e11d48;color:#fff;border-color:#be123c}
.btn-primary{background:linear-gradient(90deg,#0891b2,#7c3aed);color:#fff;border:0;width:100%;padding:10px;border-radius:10px;font-weight:700;box-shadow:0 0 16px rgba(34,211,238,.3)}
.sinyal-card .msg{margin-top:4px;font-size:11px;min-height:0;color:#34d399;text-align:center}
.sinyal-card .msg.err,.msg.bad{color:#fb7185}
.sinyal-card:not(.open){max-width:280px}
.sinyal-card:not(.open) .sc-body{display:none}
.sinyal-card:not(.open) .sc-tab{padding:8px 12px}
.sinyal-card.has-gsap:not(.open) .sc-body{display:block}

.log-col{min-width:0;min-height:0;display:flex;flex-direction:column;padding-top:12px}
.log-box{flex:1;min-height:0;overflow:hidden;font-family:var(--mono);font-size:9.5px;line-height:1.42;color:#c5d0e6}
.log-box .l{display:grid;grid-template-columns:46px 64px minmax(0,1fr);gap:6px;white-space:nowrap;overflow:hidden;padding:0 0 1px;min-width:0}
.log-box .l .m{overflow:hidden;text-overflow:ellipsis;min-width:0}
.log-box .l .t{color:#64748b}
.log-box .l .a{font-weight:700}
.log-box .l .a.FEED,.log-box .a.FEED{color:#67e8f9}
.log-box .l .a.SINYAL{color:#60a5fa}
.log-box .l .a.EXECUTOR{color:#f472b6}
.log-box .l .a.LOGGER{color:#94a3b8}
.log-box .l.open{white-space:normal}

.trades-col{min-width:0;min-height:0;display:flex;flex-direction:column}
.scroll-pane{flex:1;min-height:0;overflow:hidden}
.tbl{width:100%;border-collapse:collapse;font-size:11px;color:#d6e0f0}
.tbl th{
  text-align:left;font-size:9px;letter-spacing:.1em;text-transform:uppercase;
  color:#7b8aa5;font-weight:650;padding:0 6px 6px;border-bottom:1px solid rgba(148,163,184,.14);
}
.tbl td{padding:4px 6px;border-bottom:1px solid rgba(148,163,184,.08);font-variant-numeric:tabular-nums;font-weight:550;vertical-align:middle}
.tbl td:last-child,.tbl th:last-child{text-align:right}
.tbl td.pnl-spark{width:58px;padding:2px 4px;text-align:left}
.tbl td.pnl-spark .spark{display:block;height:16px;width:54px}
.dim{color:#64748b}

.kinerja-col{min-width:0;min-height:0;display:flex;flex-direction:column;padding-right:10px}
.kn-top{display:flex;align-items:center;gap:4px;min-height:0}
.kn-ring{flex:0 0 128px;min-width:0}
.wr-chart{height:118px}
.kn-side{flex:1;min-width:0;padding-top:4px}
.kn-lab{font-size:12px;font-weight:650;color:#c7d6f0;letter-spacing:.02em}
.kn-pnl{font-size:26px;font-weight:800;letter-spacing:-.04em;line-height:1.05;margin-top:2px;font-variant-numeric:tabular-nums}
.kn-pnl.up,.kn-pnl:not(.down){color:#34d399}
.kn-pnl.down{color:#fb7185}
.kn-pf{margin-top:6px;font-size:11px;color:#7b8aa5;font-weight:600}
.daily-chart{flex:1;min-height:70px;height:78px;margin-top:2px}
.kn-link{display:inline-block;margin-top:4px;font-size:10px;color:#a78bfa;text-decoration:none;font-weight:600}
.kn-link:hover{text-decoration:underline;color:#c4b5fd}

.note{font-size:9px;color:#475569;letter-spacing:.04em;text-align:center;line-height:14px;white-space:nowrap;overflow:hidden}

.packet{display:none !important;position:absolute;z-index:6;pointer-events:none}
.packet .dot{width:8px;height:8px;border-radius:50%;background:#22d3ee;display:inline-block;box-shadow:0 0 8px #22d3ee}

.modal-bg{position:fixed;inset:0;background:rgba(2,6,14,.62);display:none;place-items:center;z-index:40;backdrop-filter:blur(6px)}
.modal-bg.show{display:grid}
.modal{
  background:linear-gradient(180deg,#121a2c,#0b1220);border-radius:16px;padding:22px 24px;
  width:min(420px,92vw);box-shadow:0 24px 60px rgba(0,0,0,.5),0 0 0 1px rgba(34,211,238,.2);
  border:1px solid rgba(56,189,248,.2);color:#e8eefc;
}
.modal h3{font-size:16px;margin-bottom:8px}
.modal p{font-size:13px;color:#b8c4d9;line-height:1.45}
.modal .row{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.gear-modal{width:min(460px,94vw)}
.gear-sec{margin:12px 0 16px}
.gear-mode{display:flex;align-items:center;gap:12px;margin:8px 0}
.gear-hint{font-size:11px;color:#7b8aa5;margin-top:6px}
.ex-toggle{display:flex;gap:6px;margin:8px 0}
.ex-toggle button{border:1px solid rgba(56,189,248,.28);background:rgba(15,23,42,.7);border-radius:8px;padding:6px 12px;font-weight:650;font-size:12px;color:#e8eefc}
.ex-toggle button.on{background:#22d3ee;color:#042f2e;border-color:#22d3ee}
.grid-form{display:grid;gap:8px}
.compact-ex{margin:8px 0}
.pill{font-size:9px;letter-spacing:.1em;font-weight:700;padding:2px 6px;border-radius:99px;background:rgba(34,211,238,.12);color:#67e8f9;margin-left:8px}
.pill.ok{background:rgba(52,211,153,.15);color:#34d399}
.running{font-size:11px;color:#8b9bb8;display:flex;align-items:center;gap:6px}
.running .dot{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 8px #34d399;display:inline-block}
.running.is-stopped .dot{background:#fbbf24;box-shadow:0 0 8px #fbbf24}
.running.is-halt .dot{background:#fb7185;box-shadow:0 0 8px #fb7185}
.toggle{width:38px;height:20px;border:0;border-radius:99px;background:#334155;position:relative;padding:0}
.toggle .knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .2s}
.toggle.is-live{background:#e11d48}
.toggle.is-live .knob{transform:translateX(18px)}
.mode-lab{font-size:12px;font-weight:750;letter-spacing:.1em;color:#a5f3fc}

.flash-up{color:#34d399}
.flash-down{color:#fb7185}
.pnl.up{color:#34d399}
.pnl.down{color:#fb7185}

.page.login-wrap,.login-wrap{
  min-height:100vh;min-height:100dvh;
  display:grid;grid-template-rows:1fr;grid-template-columns:1fr;
  place-items:center;padding:24px;position:relative;overflow:auto;height:auto;
  background:
    radial-gradient(700px 400px at 20% 0%,rgba(34,211,238,.12),transparent 60%),
    radial-gradient(600px 360px at 100% 100%,rgba(168,85,247,.12),transparent 55%),
    #05070d;
}
.login-card{
  width:min(400px,92vw);
  background:linear-gradient(180deg,rgba(16,24,44,.96),rgba(8,12,22,.98));
  border-radius:20px;padding:32px 32px 28px;
  box-shadow:0 18px 50px rgba(0,0,0,.45),0 0 0 1px rgba(34,211,238,.2),0 0 40px rgba(34,211,238,.08);
  border:1px solid rgba(56,189,248,.2);text-align:center;color:#e8eefc;
}
.login-card .mascot{margin:0 auto 14px;width:88px;height:88px;filter:drop-shadow(0 0 16px rgba(167,139,250,.55))}
.login-card h1{font-size:24px;margin-bottom:4px;display:flex;align-items:baseline;justify-content:center;gap:.28em;flex-wrap:wrap;color:#f1f5ff}
.login-card .sub{color:#8b9bb8;font-size:12px;margin-bottom:22px}
.login-card .field{text-align:left;margin-bottom:12px}
.login-card label{display:block;font-size:10px;letter-spacing:.1em;color:#8b9bb8;margin-bottom:4px;font-weight:700}
.login-card .err{color:#fb7185;font-size:12px;margin-top:12px;min-height:16px}
.login-card .in,.login-card input{
  width:100%;border:1px solid rgba(56,189,248,.28);border-radius:8px;padding:9px 10px;font-size:14px;
  background:rgba(5,7,13,.8);color:#e8eefc;
}

@media (prefers-reduced-motion:reduce){
  .blob-bob,.node.is-hop{animation:none}
  .act-btn{transition:none}
}
.apexcharts-tooltip{font-size:11px;background:#0b1220 !important;color:#e8eefc !important;border:1px solid rgba(56,189,248,.25) !important}
.kinerja-col .apexcharts-datalabel-label,.kinerja-col .apexcharts-datalabel-value{font-family:var(--sans) !important;fill:#e8eefc !important}
.scene-nav-info{display:none !important} /* 3d-force-graph attribution */
