/* ===== v4 component language ===== */
.wrap{--hud:rgba(62,230,255,.16)}
.wrap .card{padding:24px 24px 22px;overflow:hidden}
.wrap .card>*{position:relative;z-index:1}
.wrap .card::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(rgba(62,230,255,.035) 1px,transparent 1px) 0 0/100% 4px;opacity:.6}
.wrap .tilt::before{background:radial-gradient(300px circle at var(--mx) var(--my),rgba(62,230,255,.12),transparent 60%)}
/* shared atoms */
.code{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;color:var(--cy)}
.lgc{font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.14em;padding:3px 7px;border:1px solid rgba(155,107,255,.5);color:#c9b3ff;background:rgba(155,107,255,.1)}
.lgc.sm{font-size:9px;padding:1px 5px;margin-left:8px}
.mdl{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--tx3);text-transform:uppercase}
.st-live{display:inline-flex;align-items:center;gap:7px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--up)}
.st-live i{width:7px;height:7px;border-radius:50%;background:var(--up);box-shadow:0 0 10px var(--up);animation:pulse 1.6s infinite}
@keyframes pulse{50%{opacity:.3}}
.holo{position:relative;display:inline-flex;padding:1.5px;border-radius:4px;background:linear-gradient(110deg,#3ee6ff,#9b6bff,#ff6bd5,#2bffa8,#3ee6ff);background-size:300% 100%;animation:holo 6s linear infinite;vertical-align:middle}
.holo>span{display:block;padding:3px 9px;border-radius:3px;background:linear-gradient(110deg,rgba(6,10,22,.92),rgba(14,18,36,.92));font-family:var(--mono);font-weight:700;font-size:inherit;color:#fff;letter-spacing:.02em}
.holo.up>span{color:var(--up);text-shadow:0 0 12px rgba(43,255,168,.6)}.holo.dn>span{color:var(--dn)}
@keyframes holo{to{background-position:300% 0}}
.hv{min-width:0}.hv-l{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--tx3);text-transform:uppercase}
.hv-v{font-family:var(--mono);font-size:19px;font-weight:700;margin-top:6px;color:#fff;white-space:nowrap}.hv-v.up{color:var(--up)}.hv-v.dn{color:var(--dn)}.hv-v.cy{color:var(--cy)}
.hv-s{font-size:11px;color:var(--tx3);margin-top:3px}
.sig-r{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:20px;background:var(--hud);border:1px solid var(--hud)}
.sig-r .hv{background:rgba(5,8,18,.92);padding:12px 12px 11px}
/* LED meter */
.led{display:grid;grid-template-columns:repeat(var(--n),1fr);gap:3px;height:14px;margin:14px 0 8px}
.led i{background:rgba(255,255,255,.06);transform:skewX(-18deg)}
.led i.on{background:var(--c,#3ee6ff);box-shadow:0 0 8px var(--c,#3ee6ff)}
.led-up{--c:#2bffa8}.led-vi{--c:#9b6bff}.led-cy{--c:#3ee6ff}
.card:not(.in) .led i.on{opacity:0}
.card.in .led i.on{animation:ledon .4s calc(var(--i)*25ms) both}
@keyframes ledon{from{opacity:0;transform:skewX(-18deg) scaleY(.2)}to{opacity:1}}
/* probability duel */
.duel{margin:22px 0 4px;padding-top:26px}
.du-track{position:relative;height:10px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.08)}
.du-ticks i{position:absolute;top:-4px;bottom:-4px;width:1px;background:rgba(255,255,255,.12)}
.du-gap{position:absolute;top:0;bottom:0;background:linear-gradient(90deg,rgba(43,255,168,.25),rgba(43,255,168,.85));box-shadow:0 0 16px rgba(43,255,168,.6)}
.du-gap.dn{background:linear-gradient(90deg,rgba(255,77,121,.85),rgba(255,77,121,.25))}
.card.in .du-gap{animation:gapin 1s .2s cubic-bezier(.2,.7,.2,1) both}@keyframes gapin{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
.du-mk{position:absolute;top:-8px;bottom:-8px;width:2px;transform:translateX(-1px)}
.du-mk span{position:absolute;bottom:calc(100% + 4px);transform:translateX(-50%);font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;white-space:nowrap}
.mk-mkt{background:#fff;box-shadow:0 0 6px #fff}.mk-mkt span{color:var(--tx2);bottom:auto;top:calc(100% + 4px)}
.mk-mod{background:var(--cy);box-shadow:0 0 10px var(--cy)}.mk-mod span{color:var(--cy)}
/* signal module (pick card) */
.sig{padding-top:20px}
.sig-ghost{position:absolute;right:-6px;top:-22px;font-family:var(--big);font-weight:900;font-size:130px;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(62,230,255,.10);z-index:0!important;pointer-events:none}
.sig-h{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sig-h>:last-child:not(.code){margin-left:auto}
.sig-t{font-family:var(--big);font-weight:800;font-size:clamp(22px,2.1vw,28px);line-height:1.05;letter-spacing:-.02em;margin-top:18px;color:#fff}
.sig-g{font-size:13.5px;color:var(--tx2);margin-top:6px}.sig-g em{font-style:normal;color:var(--tx3);font-family:var(--mono);font-size:11px;margin:0 3px}
.sig.hot{border-color:rgba(43,255,168,.35)}.sig.hot .sig-ghost{-webkit-text-stroke-color:rgba(43,255,168,.18)}
.sig.hot::after{background:linear-gradient(var(--up),var(--up)) top left/14px 2px,linear-gradient(var(--up),var(--up)) top left/2px 14px,linear-gradient(var(--up),var(--up)) bottom right/14px 2px,linear-gradient(var(--up),var(--up)) bottom right/2px 14px!important;background-repeat:no-repeat!important}
/* today's edge */
.te{display:grid;grid-template-columns:1.25fr .9fr;gap:36px;padding:34px!important;background:linear-gradient(125deg,rgba(43,255,168,.10),rgba(62,230,255,.05) 45%,rgba(8,10,20,.9))!important;border-color:rgba(43,255,168,.3)!important;margin-top:18px}
.te-k{display:flex;align-items:center;gap:12px}
.te-edge{margin-top:18px}.te-cap{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.24em;color:var(--tx3)}
.te-edge b{display:block;font-family:var(--big);font-weight:900;font-size:clamp(64px,8vw,120px);line-height:.95;letter-spacing:-.04em;color:var(--up);text-shadow:0 0 40px rgba(43,255,168,.45)}
.te-t{font-family:var(--big);font-weight:800;font-size:clamp(24px,2.6vw,36px);margin-top:16px;letter-spacing:-.02em}
.te-why{color:var(--tx2);line-height:1.6;margin-top:18px;font-size:15px}.te-why b{color:#fff}
.te-r{display:flex;flex-direction:column;justify-content:space-between;align-items:stretch}
.te-ring{text-align:center}.te-ring .gauge svg{max-width:250px!important;filter:drop-shadow(0 0 24px rgba(43,255,168,.3))}
.te-ring .gauge .gv,.te-ring .gauge text{font-family:var(--big)}
.te-ring-l{font-size:10px;letter-spacing:.18em;color:var(--tx3);margin-top:6px}
.te .sig-r{grid-template-columns:repeat(3,1fr)}
/* confidence */
.conf p,.acc p{font-size:12.5px;color:var(--tx2);line-height:1.5;margin-top:8px}
.conf-v{display:flex;align-items:baseline;gap:8px;margin-top:14px}.conf-v b{font-family:var(--big);font-size:44px;font-weight:800;line-height:1}.conf-v span{font-family:var(--mono);color:var(--tx3);font-size:14px}
.conf-p{font-size:10px;letter-spacing:.16em;color:var(--cy)}
/* strategies */
.strat .stamp{position:absolute;top:20px;right:-38px;z-index:2;transform:rotate(35deg);font-family:var(--mono);font-weight:700;font-size:10.5px;letter-spacing:.2em;padding:5px 46px;background:var(--cy);color:#030409}
.st-KEEP .stamp{background:var(--up);box-shadow:0 0 20px rgba(43,255,168,.5)}.st-DROP .stamp{background:var(--dn)}.st-TEST .stamp{background:#ffbe50}
.strat .st-plain{color:var(--tx2);font-size:14px;line-height:1.55;margin-top:12px;padding-right:40px}
/* diverging bars */
.dv{display:flex;flex-direction:column}
.dv-r{display:grid;grid-template-columns:minmax(0,40%) 1fr 80px;gap:16px;align-items:center;padding:13px 0;border-bottom:1px dashed rgba(140,190,255,.1)}
.dv-r:last-child{border-bottom:0}
.dv-l b{display:block;font-size:14px;font-weight:600}.dv-l span{display:block;font-family:var(--mono);font-size:10.5px;color:var(--tx3);margin-top:3px;letter-spacing:.02em}
.dv-b{position:relative;height:16px;background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 2px,transparent 2px 8px)}
.dv-z{position:absolute;left:50%;top:-6px;bottom:-6px;width:1px;background:rgba(255,255,255,.4)}
.dv-f{position:absolute;top:2px;bottom:2px;background:repeating-linear-gradient(90deg,var(--c) 0 5px,transparent 5px 7px);box-shadow:0 0 14px var(--c)}
.dv-f.p{--c:#2bffa8}.dv-f.n{--c:#ff4d79}
.card.in .dv-f.p{animation:grR .9s var(--d,0ms) cubic-bezier(.2,.7,.2,1) both}.card.in .dv-f.n{animation:grL .9s cubic-bezier(.2,.7,.2,1) both}
@keyframes grR{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes grL{from{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}
.dv-v{font-family:var(--mono);font-weight:700;font-size:16px;text-align:right}
/* accuracy */
.acc-v{font-family:var(--big);font-weight:800;font-size:40px;margin-top:12px}.acc-v.cy{color:var(--cy)}.acc-v.up{color:var(--up)}
/* fair odds tiles */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.tile-big{display:flex;align-items:baseline;gap:10px;margin-top:12px}.tile-big b{font-family:var(--big);font-weight:800;font-size:52px;line-height:1;color:#fff;text-shadow:0 0 30px rgba(155,107,255,.5)}.tile-big span{font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--vi)}
.tile-f{font-size:10px;letter-spacing:.18em;color:var(--tx3);margin-top:12px}
/* scorers */
.podium{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:14px;align-items:end;margin-bottom:14px}
.pod{min-height:330px;display:flex}.pod-1{min-height:370px;border-color:rgba(43,255,168,.35)!important;background:linear-gradient(170deg,rgba(43,255,168,.10),rgba(8,10,20,.9) 60%)!important}
.pod-n{position:absolute;right:10px;bottom:-30px;font-family:var(--big);font-weight:900;font-size:200px;line-height:1;color:transparent;-webkit-text-stroke:1.5px rgba(62,230,255,.16);z-index:0!important}
.pod-1 .pod-n{-webkit-text-stroke-color:rgba(43,255,168,.25)}
.pod-in{display:flex;flex-direction:column;width:100%}
.pod-name{font-family:var(--big);font-weight:800;font-size:30px;margin-top:16px;letter-spacing:-.02em}
.pod-p{display:flex;align-items:flex-start;margin-top:auto;padding-top:18px}.pod-p b{font-family:var(--big);font-weight:900;font-size:76px;line-height:.9;letter-spacing:-.04em}.pod-1 .pod-p b{color:var(--up);text-shadow:0 0 30px rgba(43,255,168,.5)}
.pod-p span{font-family:var(--big);font-size:28px;font-weight:800;margin-left:4px}.pod-p em{display:block;font-style:normal;font-family:var(--mono);font-size:10px;letter-spacing:.2em;color:var(--tx3);margin-top:6px}
.pod .sig-r{margin-top:10px}
.lb{padding:6px 22px!important}
.lb-r{display:grid;grid-template-columns:38px minmax(0,1fr) 170px 56px 52px;gap:14px;align-items:center;padding:13px 0;border-bottom:1px dashed rgba(140,190,255,.1);transition:background .2s}
.lb-r:hover{background:linear-gradient(90deg,transparent,rgba(62,230,255,.06),transparent)}
.lb-r:last-child{border-bottom:0}
.lb-n{font-family:var(--mono);color:var(--tx3);font-size:13px}
.lb-w b{font-weight:600;font-size:15px}.lb-w span:last-child{display:block;font-size:12px;color:var(--tx3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-m .led{margin:0;height:10px;gap:2px}
.lb-p{font-family:var(--mono);font-weight:700;font-size:17px;text-align:right}.lb-o{font-family:var(--mono);color:var(--tx3);font-size:12.5px;text-align:right}
/* tables */
.wrap .tbl{border-collapse:collapse;width:100%}
.wrap .tbl th{font-family:var(--mono);font-size:10px;letter-spacing:.18em;color:var(--cy);text-transform:uppercase;border-bottom:1px solid rgba(62,230,255,.3)!important;padding:12px 10px}
.wrap .tbl td{border-bottom:1px dashed rgba(140,190,255,.1)!important;padding:13px 10px;font-size:14px}
.wrap .tbl tr:hover td{background:rgba(62,230,255,.04)}
/* charts */
.wrap svg path[stroke]:not([stroke="none"]),.wrap svg polyline{filter:drop-shadow(0 0 6px currentColor)}
.wrap .chart svg line,.wrap svg .gl line{stroke:rgba(62,230,255,.08)}
.wrap svg circle[fill]:not([fill="none"]){filter:drop-shadow(0 0 8px rgba(62,230,255,.55))}
.wrap svg text{font-family:var(--mono)}
.wrap .legend{font-family:var(--mono);font-size:11px;letter-spacing:.06em}
/* controls / tools */
.wrap .bar{padding:10px;border:1px solid var(--hud);background:rgba(5,8,18,.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.wrap select,.wrap .inp{background:rgba(3,6,14,.9);border:1px solid rgba(62,230,255,.22);font-family:var(--mono);font-size:15px;color:#e8fbff}
.wrap .inp:focus{border-color:var(--cy);box-shadow:0 0 0 3px rgba(62,230,255,.15),0 0 24px rgba(62,230,255,.2)}
.wrap .form label{font-size:10px;letter-spacing:.18em;color:var(--cy)}
.wrap .form label::before{content:"> ";color:var(--tx3)}
.wrap .out{border-top:1px solid rgba(62,230,255,.25)}
.wrap .kv{gap:1px;background:var(--hud);border:1px solid var(--hud)}.wrap .kv>div{background:rgba(5,8,18,.92);padding:12px}
.wrap .kv b{font-family:var(--big);font-weight:800;font-size:30px;color:#fff}
.wrap #kout .kv>div:last-child b{color:var(--up);text-shadow:0 0 24px rgba(43,255,168,.5)}
.wrap .card h3:not([class]){font-family:var(--big);font-weight:800;font-size:22px;letter-spacing:-.01em}
.wrap .note{border-radius:4px;border-left:3px solid var(--warn)}.wrap .note.info{border-left-color:var(--cy)}
/* overview hero panel */
.wrap .hero .big{font-family:var(--big)!important;font-weight:900;letter-spacing:-.04em;text-shadow:0 0 40px rgba(62,230,255,.3)}
.wrap .kpi .v{font-family:var(--big);font-weight:800;font-size:30px}
.wrap .kpi .lbl,.wrap .card .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase}
@media (max-width:860px){
  .wrap .card{padding:20px 18px 18px}
  .te{grid-template-columns:1fr;gap:20px;padding:22px 18px!important}
  .te-ring .gauge svg{max-width:200px!important}
  .sig-r{grid-template-columns:1fr 1fr}.te .sig-r{grid-template-columns:repeat(3,1fr)}.te .hv-v{font-size:15px}
  .sig-ghost{font-size:100px}
  .podium{grid-template-columns:1fr}.pod,.pod-1{min-height:0}.pod-n{font-size:150px}.pod-p b{font-size:64px}
  .lb{padding:4px 14px!important}.lb-r{grid-template-columns:28px minmax(0,1fr) 70px 46px}.lb-m .led{--n:10!important}
  .lb-m .led i:nth-child(n+11){display:none}
  .dv-r{grid-template-columns:1fr 70px;gap:8px 12px}.dv-b{grid-column:1/-1;grid-row:2}
  .tile-big b{font-size:44px}
  .strat .st-plain{padding-right:0}
}
@media (prefers-reduced-motion:reduce){.holo,.st-live i{animation:none}.card .led i.on{opacity:1!important;animation:none!important}}
.wrap .card>.sig-ghost,.wrap .card>.pod-n,.wrap .card>.stamp{position:absolute!important}
.pod-in{padding-left:0}
@media (max-width:860px){.sig-h .st-live{margin-left:0}.pod-n{opacity:.7}}
.wrap .card>.pod-n{top:-18px!important;bottom:auto!important;right:14px!important;left:auto!important;opacity:.35!important;z-index:0}
.wrap .card>.sig-ghost{opacity:.6}
