.view{position:absolute;inset:0;display:none;z-index:1}
.view.on{display:block;animation:vin .3s ease-out}
@keyframes vin{from{opacity:0;transform:translateY(8px)}}
.rail{position:absolute;left:950px;top:68px;width:320px;height:536px;background:rgba(18,17,28,.94);border:1px solid #2a2840;border-radius:14px;padding:12px 14px;overflow:hidden}
.rail h3{margin:0 0 8px;font-size:12px;letter-spacing:.14em;color:var(--btc);display:flex;justify-content:space-between;align-items:baseline}
.rail h3 span{color:var(--mut);letter-spacing:.02em;font-weight:600;font-size:11px}
.rrow{display:flex;align-items:center;gap:9px;padding:6px 6px;border-radius:9px;cursor:pointer;font-size:13px}
.rrow:hover{background:#1f1e30}
.rrow .t{flex:1;min-width:0}.rrow b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rrow small{display:block;color:var(--mut);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rrow .d{font-weight:900;font-size:15px;white-space:nowrap;font-style:italic}
.rrow.new{animation:rnew .5s ease-out}
@keyframes rnew{from{background:rgba(247,147,26,.35);transform:translateX(30px)}}
.card.panel h4{margin:0 0 8px;font-size:12px;letter-spacing:.12em;padding-right:22px}
.card.panel .g{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.card.panel .g div{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10.5px;color:#ccc;cursor:pointer}
.card.panel p{margin:8px 0 0;font-size:11.5px;color:var(--mut)}
.card .acts{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}
.card .acts button{border:0;background:#2a2a44;color:#fff;font:700 12.5px Inter,sans-serif;border-radius:999px;padding:7px 12px;cursor:pointer}
.card .acts button:hover{background:var(--btc);color:#2a1500}
.hint{position:absolute;font-size:11.5px;color:var(--mut);pointer-events:none}
/* ---------- battle ---------- */
#vBattle{background:radial-gradient(ellipse at 40% 80%,#16132a 0,#0b0a10 70%)}
.bt-side{position:absolute;top:70px;width:230px}
.bt-side small{display:block;font-size:13px;font-weight:900;letter-spacing:.18em}
.bt-side b{display:block;font-size:64px;font-weight:900;line-height:.95;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.bt-side span{font-size:12px;color:var(--mut);font-weight:600}
#btBear{left:24px}#btBull{left:686px;text-align:right}
.bt-mid{position:absolute;top:74px;left:250px;width:440px;text-align:center}
.bt-mid .d{font-size:12px;letter-spacing:.16em;color:var(--mut);font-weight:700}
.bt-mid .v{font-size:40px;font-weight:900;line-height:1.05;margin-top:6px;transition:color .4s;white-space:nowrap}
#btTug{position:absolute;top:174px;left:24px;width:892px;height:24px;border-radius:999px;overflow:hidden;border:2px solid #2c2c44;background:linear-gradient(90deg,var(--bull),#0f6b35)}
#btTug i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,#7a1520,var(--bear));width:50%;transition:width .9s cubic-bezier(.3,1.3,.5,1)}
#btKnot{position:absolute;top:166px;left:470px;width:40px;height:40px;margin-left:-20px;border-radius:50%;background:#fff;border:3px solid var(--btc);display:grid;place-items:center;font-weight:900;color:var(--btc);font-size:19px;z-index:3;box-shadow:0 0 18px rgba(247,147,26,.7);transition:left .9s cubic-bezier(.3,1.3,.5,1)}
#btLine{position:absolute;top:208px;left:470px;width:4px;height:318px;margin-left:-2px;background:repeating-linear-gradient(#f7931a 0 10px,transparent 10px 18px);box-shadow:0 0 14px rgba(247,147,26,.5);transition:left 1s cubic-bezier(.3,1.2,.5,1)}
#btLine span{position:absolute;top:-2px;left:50%;transform:translateX(-50%);font-size:9.5px;font-weight:900;letter-spacing:.14em;color:#2a1500;background:var(--btc);border-radius:4px;padding:1px 6px;white-space:nowrap}
.btile{position:absolute;left:0;top:0;width:60px;height:74px;transition:transform 1s cubic-bezier(.45,.05,.3,1),opacity .45s;cursor:pointer;will-change:transform;text-align:center}
.btile .av{width:60px!important;height:60px!important;font-size:21px!important;margin:0 auto}
.btile .av.bull{box-shadow:0 0 0 3px var(--bull)}.btile .av.bear{box-shadow:0 0 0 3px var(--bear)}
.btile:hover .av{box-shadow:0 0 0 3px #fff,0 0 16px rgba(255,255,255,.4)}
.btile .rc{display:block;font-size:10.5px;color:#cfcfe6;font-weight:700;margin-top:2px}
.btile.march .av{animation:march .22s ease-in-out 5 alternate}
@keyframes march{from{transform:translateY(0) rotate(-6deg)}to{transform:translateY(-8px) rotate(6deg)}}
.btile .cr{position:absolute;left:44px;top:-8px;font-size:16px;filter:drop-shadow(0 2px 2px #000)}
.btile.sel .av{animation:ring 1s ease-in-out infinite}
.btile.more .av{background:#22223a!important;color:#fff;font-size:15px!important;box-shadow:0 0 0 2px #55557a!important}
.btile.you .av{box-shadow:0 0 0 3px var(--gold)}
.spark{position:absolute;pointer-events:none;font-size:24px;z-index:8;animation:spark .7s ease-out forwards}
@keyframes spark{from{transform:translate(-50%,-50%) scale(.4);opacity:1}to{transform:translate(calc(-50% + var(--dx)),calc(-50% + var(--dy))) scale(1.3);opacity:0}}
/* arena styles live in v-arena.css; bob is still used by the Octagon fallback */
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
html,body{overscroll-behavior:none}
#stage{touch-action:pan-y}
/* battle: newswire strip (news/media accounts: never in an army, reduced weight in the split) */
#btNW{position:absolute;left:24px;top:566px;width:916px;height:38px;box-sizing:border-box;display:flex;align-items:center;gap:12px;padding:0 8px 0 12px;border-radius:12px;background:rgba(14,20,34,.92);border:1px solid #2a3c5c}
#btNW .lb{flex:none;width:118px;line-height:1.15}
#btNW .lb b{display:block;font-size:11.5px;font-weight:900;letter-spacing:.14em;color:#9ec6ff;white-space:nowrap}
#btNW .lb small{display:block;font-size:10.5px;color:var(--mut);font-weight:700;white-space:nowrap}
#btNW .avs{flex:1;min-width:0;height:36px;display:flex;align-items:center;overflow:visible}
#btNW .nwa{position:relative;flex:none;width:30px;height:30px;cursor:pointer;transition:transform .15s,opacity .3s}
#btNW .nwa .av{width:28px!important;height:28px!important;margin:1px;box-shadow:0 0 0 2px #3c5f92}
#btNW .nwa:hover{transform:translateY(-3px) scale(1.12);z-index:50!important}
#btNW .nwa.sel .av{box-shadow:0 0 0 2px #fff,0 0 10px rgba(158,198,255,.8)}
#btNW .nwa.in{animation:nwin .45s cubic-bezier(.3,1.5,.5,1)}
@keyframes nwin{from{transform:scale(.2);opacity:0}}
#btNW .nwa i{position:absolute;right:-3px;bottom:-3px;width:13px;height:13px;border-radius:50%;display:grid;place-items:center;font:900 7.5px/1 Inter,sans-serif;font-style:normal;color:#fff;background:#55557a;border:1.5px solid #0e1422}
#btNW .nwa.bull i{background:#159a4e}#btNW .nwa.bear i{background:#d23246}
#btNW .tg{flex:none;display:flex;align-items:center;gap:8px;font-size:11.5px;font-weight:700;color:#cfd8ec;white-space:nowrap}
#btNW .sg{display:inline-flex;border:1px solid #3a4a6a;border-radius:999px;padding:2px;background:#101626}
#btNW .sg button{border:0;background:none;color:#a9b6d4;font:700 11.5px Inter,sans-serif;height:24px;padding:0 9px;border-radius:999px;cursor:pointer}
#btNW .sg button.on{background:#2c4670;color:#fff;box-shadow:inset 0 0 0 1px #6f93cc}
#btNW.off .avs{opacity:.45}
/* battle: bias strip (permabull / permabear / paid voice accounts: left out of the split in Unbiased mode) */
#btBias{position:absolute;left:24px;top:528px;width:916px;height:34px;box-sizing:border-box;display:flex;align-items:center;gap:12px;padding:0 6px 0 12px;border-radius:12px;background:rgba(30,22,10,.92);border:1px solid #5a4422;cursor:help}
#btBias.ex{background:rgba(34,12,16,.92);border-color:#6a2a34}
#btBias .lb{flex:none;width:118px;line-height:1.1;cursor:pointer}
#btBias .lb b{display:block;font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--gold);white-space:nowrap}
#btBias.ex .lb b{color:#ffb3ba}
#btBias .lb small{display:block;font-size:10px;color:var(--mut);font-weight:700;white-space:nowrap}
#btBias .lb:hover b{text-decoration:underline}
#btBias .avs{flex:1;min-width:0;height:30px;display:flex;align-items:center;overflow:visible}
#btBias .bia{position:relative;flex:none;width:26px;height:26px;cursor:pointer;transition:transform .15s,opacity .3s}
#btBias .bia .av{width:24px!important;height:24px!important;margin:1px}
#btBias .bia.permabull .av{box-shadow:0 0 0 2px var(--bull)}#btBias .bia.permabear .av{box-shadow:0 0 0 2px var(--bear)}#btBias .bia.paid .av{box-shadow:0 0 0 2px var(--gold)}
#btBias .bia i{position:absolute;right:-3px;bottom:-3px;width:12px;height:12px;border-radius:50%;display:grid;place-items:center;font:900 7.5px/1 Inter,sans-serif;font-style:normal;color:#fff;border:1.5px solid #1e160a}
#btBias .bia.permabull i{background:#159a4e}#btBias .bia.permabear i{background:#d23246}#btBias .bia.paid i{background:#b8860b;color:#1e1200}
#btBias.ex .bia .av{filter:grayscale(.65) brightness(.8)}
#btBias .bia:hover{transform:translateY(-3px) scale(1.12);z-index:50!important}
#btBias .bia:hover .av{filter:none}
#btBias .bia.sel .av{box-shadow:0 0 0 2px #fff,0 0 10px rgba(255,205,80,.8)}
#btBias .bia.in{animation:nwin .45s cubic-bezier(.3,1.5,.5,1)}
#btBias .tg{flex:none;display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:#d8cfbd;white-space:nowrap}
#btBias .tg b{font-weight:900}#btBias .tg .pb{color:var(--bull)}#btBias .tg .pr{color:var(--bear)}#btBias .tg .pd{color:var(--gold)}
#btBias .tg button{border:1px solid #6a5530;background:#2a1f0e;color:#ffd27a;font:800 11px Inter,sans-serif;height:24px;padding:0 10px;border-radius:999px;cursor:pointer}
#btBias.ex .tg button{border-color:#5a5a7a;background:#1c1c2e;color:#d8d8ec}
#btBias .tg button:hover{background:var(--btc);color:#2a1500;border-color:var(--btc)}
#vBattle .bt-mid .ubadge,#vBattle .bt-mid .smbadge{margin-left:6px;vertical-align:1px}
/* battle: top-traders strip (HC.TRADERS: today's stance of the 30-day track-record list); the bias strip is 4px shorter to make room */
#btLine{height:288px}
#btBias{top:534px;height:30px}
#btBias .avs{height:28px}
#btTr{position:absolute;left:24px;top:500px;width:916px;height:30px;box-sizing:border-box;display:flex;align-items:center;gap:12px;padding:0 6px 0 12px;border-radius:12px;background:rgba(8,28,28,.92);border:1px solid #1f5c55;cursor:help}
#btTr.on{border-color:var(--sm);box-shadow:0 0 12px rgba(62,230,208,.18)}
#btTr .lb{flex:none;width:118px;line-height:1.05;cursor:pointer}
#btTr .lb b{display:block;font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--sm);white-space:nowrap}
#btTr .lb small{display:block;font-size:9.5px;color:var(--mut);font-weight:700;white-space:nowrap}
#btTr .lb:hover b{text-decoration:underline}
#btTr .avs{flex:1;min-width:0;height:28px;display:flex;align-items:center;overflow:visible}
#btTr .tra{position:relative;flex:none;width:26px;height:26px;cursor:pointer;transition:transform .15s}
#btTr .tra .av{width:24px!important;height:24px!important;margin:1px}
#btTr .tra.bull .av{box-shadow:0 0 0 2px var(--bull)}#btTr .tra.bear .av{box-shadow:0 0 0 2px var(--bear)}#btTr .tra.neutral .av{box-shadow:0 0 0 2px #8a8aa6}
#btTr .tra i{position:absolute;right:-3px;bottom:-3px;width:12px;height:12px;border-radius:50%;display:grid;place-items:center;font:900 7px/1 Inter,sans-serif;font-style:normal;color:#fff;border:1.5px solid #081c1c;background:#66667e}
#btTr .tra.bull i{background:#159a4e}#btTr .tra.bear i{background:#d23246}
#btTr .tra:hover{transform:translateY(-3px) scale(1.12);z-index:50!important}
#btTr .tra.sel .av{box-shadow:0 0 0 2px #fff,0 0 10px rgba(62,230,208,.8)}
#btTr .tg{flex:none;display:flex;align-items:center;gap:8px;font-size:11px;font-weight:700;color:#bfe3de;white-space:nowrap}
#btTr .tg b{font-weight:900}#btTr .tg .pb{color:var(--bull)}#btTr .tg .pr{color:var(--bear)}
#btTr .tg button{border:1px solid #1f6a62;background:#0c2624;color:var(--sm);font:800 11px Inter,sans-serif;height:22px;padding:0 10px;border-radius:999px;cursor:pointer}
#btTr .tg button:hover{background:var(--sm);color:#03241f;border-color:var(--sm)}
/* Smart Money below the minimum signal: no split, no verdict colour, grey tug bar carrying the label */
#btNs{display:none}
#vBattle.ns #btNs{display:flex;position:absolute;inset:0;align-items:center;justify-content:center;font-size:12px;z-index:1}
#vBattle.ns #btTug{background:repeating-linear-gradient(135deg,#26263c 0 8px,#1c1c2e 8px 16px)}
#vBattle.ns #btTug i,#vBattle.ns #btKnot{display:none}
#vBattle.ns #btLine{filter:grayscale(1);opacity:.45}
#vBattle.ns .bt-side b{color:#5e5e7a}
#vBattle.ns .bt-mid .v{color:#a2a2bc;font-size:36px}
#btTrN .nosig{font-size:11px}
.bt-ns{margin:2px 0 8px;padding:8px 10px;border-radius:9px;background:#17172a;border-left:3px solid #55557a;font-size:12px;line-height:1.35}
.bt-ns b{display:block;font-size:10.5px;letter-spacing:.14em;color:#a2a2bc;margin-bottom:2px}
.bt-ns .nosig{white-space:normal}
.bt-ns small{display:block;margin-top:3px;font-size:10.5px;color:var(--mut)}
#vBattle .bt-mid{left:200px;width:540px}
#vBattle .bt-mid .d:last-child{white-space:nowrap;letter-spacing:.04em}
