:root{--bg:#0B0E13;--card:#121722;--line:#232A35;--ink:#E6E8EB;--mut:#9AA3AE;--dim:#6B7480;--blue:#5B8DEF;--link:#7FB0FF;--green:#2FBF71;--red:#E55353;--amber:#F5A524;color-scheme:dark}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.wrap{max-width:1100px;margin:0 auto;padding:14px 16px 40px;display:flex;flex-direction:column;gap:14px}
a{color:var(--link)}
.top{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:nowrap}
.eyebrow{font:600 11px/1 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
h1{margin:4px 0 2px;font-size:24px;display:flex;align-items:center;gap:8px}
.sub{margin:0;color:var(--mut);font-size:13px;max-width:60ch}.mut{color:var(--mut);font-weight:400;font-size:14px}
.coinsel{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--mut)}
.coinsel select{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:7px 10px;font:600 14px ui-monospace,Menlo,Consolas,monospace}
.clogo{display:inline-flex;width:26px;height:26px;border-radius:50%;align-items:center;justify-content:center;color:#fff;font:700 13px system-ui}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px}.col{display:flex;flex-direction:column;gap:10px}
.note{font-size:12.5px;color:var(--mut)}.foot{font-size:12px;color:var(--dim);line-height:1.6}
.up{color:var(--green)}.dn{color:var(--red)}
.chartwrap{position:relative}.legend{position:static;margin:0 0 3px;font:10.5px/1.3 ui-monospace,Menlo,Consolas,monospace;color:var(--mut);white-space:normal;overflow-wrap:anywhere;max-width:100%}
#chart{width:100%;height:420px;border-radius:10px;overflow:hidden}
@media(max-width:420px){#chart{height:320px}}
#chtop{display:flex;flex-direction:column;gap:6px}
#chbar{display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap}
.tfseg{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden;flex:none}
.tfseg button{padding:5px 9px;font:600 12px ui-monospace,Menlo,Consolas,monospace;background:transparent;color:var(--mut);border:0;border-right:1px solid var(--line);cursor:pointer}
.tfseg button:last-child{border-right:0}.tfseg button[aria-pressed=true]{background:rgba(127,176,255,.16);color:var(--ink)}
#chtopbar{display:flex;justify-content:flex-end;align-items:center;gap:8px}.cmaxb{margin:0;padding:4px 10px;font:600 12px ui-monospace,Menlo,Consolas,monospace;line-height:1.2;background:transparent;color:var(--mut);border:1px solid var(--line);border-radius:8px;cursor:pointer}#chtopbar #cmax{font-size:15px;padding:3px 9px}.cmaxb:hover{color:var(--ink)}
.indbar{display:flex;gap:5px;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;padding:1px 0}.indbar::-webkit-scrollbar{display:none}
.ich{flex:none;padding:3px 9px;font:600 11.5px ui-monospace,Menlo,Consolas,monospace;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--mut);white-space:nowrap;cursor:pointer}
.ich[aria-pressed=true]{color:var(--ink);border-color:var(--ic,var(--link));box-shadow:inset 0 0 0 1px var(--ic,var(--link))}
.ich[data-sall][aria-pressed=true]{--ic:var(--link)}
@media (orientation:landscape) and (max-height:560px){#chbar{flex-wrap:nowrap}#chtop{flex-direction:row;align-items:center;gap:10px}#chtop .indbar{flex:1;min-width:0}}
#chsec.cmax{position:fixed;inset:0;z-index:80;margin:0;border-radius:0;background:var(--bg);padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:8px;height:100vh;height:100dvh;overflow:hidden}
#chsec.cmax .chartwrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
#chsec.cmax #chart{flex:1 1 auto;height:auto;min-height:150px}
#chsec.cmax #chnote{display:none}
@media (orientation:landscape) and (max-height:560px){#chart{height:calc(100vh - 150px);height:calc(100dvh - 150px);min-height:200px}#chsec.cmax{padding-top:max(6px,env(safe-area-inset-top));padding-bottom:max(6px,env(safe-area-inset-bottom));gap:6px}.legend{font-size:10px;line-height:1.25}}
body.cmaxon{overflow:hidden}
[hidden]{display:none!important}
.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.tbl{border-collapse:collapse;width:100%;font-size:12.5px}
.tbl th{font:600 11px ui-monospace,Menlo,Consolas,monospace;color:var(--mut);text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:top}
.tbl tr:last-child td{border-bottom:0}
#cyviews{align-self:flex-start;max-width:100%;overflow-x:auto}
#cyLeg{gap:6px;padding-bottom:4px}
/* indicator fired on the latest bar: flash */
.fired{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.fchip{padding:3px 11px;border-radius:999px;font:700 12px ui-monospace,Menlo,Consolas,monospace;border:1px solid;animation:fchip 1.4s ease-in-out infinite}
.fchip.buy{color:var(--green);border-color:var(--green);background:rgba(47,191,113,.12);--fc:47,191,113}
.fchip.sell{color:var(--red);border-color:var(--red);background:rgba(229,83,83,.12);--fc:229,83,83}
.fired.burst .fchip{animation-duration:.4s}
@keyframes fchip{0%,100%{box-shadow:0 0 0 0 rgba(var(--fc),0)}50%{box-shadow:0 0 0 5px rgba(var(--fc),.55)}}
.ich.fire-buy{border-color:var(--green);color:var(--green);animation:fbuy 1.2s ease-in-out infinite}
.ich.fire-sell{border-color:var(--red);color:var(--red);animation:fsell 1.2s ease-in-out infinite}
@keyframes fbuy{0%,100%{box-shadow:0 0 0 0 rgba(47,191,113,0)}50%{box-shadow:0 0 0 4px rgba(47,191,113,.6)}}
@keyframes fsell{0%,100%{box-shadow:0 0 0 0 rgba(229,83,83,0)}50%{box-shadow:0 0 0 4px rgba(229,83,83,.6)}}
@media (prefers-reduced-motion:reduce){.fchip,.ich.fire-buy,.ich.fire-sell{animation:none}}
.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:9px 14px;font-size:13px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:120;max-width:90vw}
.toast.on{opacity:1;transform:translate(-50%,0)}
.cmaxb{cursor:pointer}
/* tool toggles: wrap onto their own rows instead of running off the right edge (portrait phones) */
#bands{display:flex;flex-wrap:wrap;gap:6px;border:0;border-radius:0;overflow:visible;flex:1 1 100%;max-width:100%}
#bands button{border:1px solid var(--line)!important;border-radius:999px;padding:3px 10px;font:600 11.5px ui-monospace,Menlo,Consolas,monospace;background:transparent;color:var(--mut)}
#bands button[aria-pressed=true]{color:var(--ink);border-color:var(--link)!important;box-shadow:inset 0 0 0 1px var(--link);background:rgba(127,176,255,.12)}
#chbar{max-width:100%}.tfseg{max-width:100%}
@media (orientation:portrait){.indbar{flex-wrap:wrap;overflow:visible}#cyviews{flex-wrap:wrap;overflow:visible}}
@media (orientation:landscape) and (max-height:560px){#bands{flex:0 1 auto}}

/* first row: time frames, BTC bull, then Share and Close at the right; the range buttons and the tool toggles follow on their own rows */
#chbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
#chbar #tfs{order:1}#chbar #rsep{order:2}#chbar #rngs{order:3}#chbar #toolsBtn{order:4;margin-left:auto}#chbar #shareBtn{order:5}#chbar #cmax{order:6;margin:0}
.tfseg button{padding:4px 7px;font-size:11.5px}
.cmaxb{padding:4px 9px;font-size:11.5px}
#chbar #cmax{font-size:14px;padding:3px 8px}
svg{display:block}
/* toolbar sections: Indicators and Regime */
#chtop{display:flex;flex-direction:column;gap:7px}
#toolsec{display:flex;flex-direction:column;gap:6px}
.tsec{display:flex;align-items:flex-start;gap:8px}
.tlab{flex:none;width:64px;padding-top:5px;font:700 9.5px ui-monospace,Menlo,Consolas,monospace;letter-spacing:.08em;text-transform:uppercase;color:var(--dim)}
.tbtns{display:flex;flex-wrap:wrap;gap:5px;flex:1;min-width:0}
#secReg{padding-top:6px;border-top:1px dashed var(--line)}
@media (orientation:landscape) and (max-height:560px){#chtop{flex-direction:column;align-items:stretch}.tlab{width:56px}}
#secPro{padding-top:6px;border-top:1px dashed var(--line)}

.vsep{flex:none;width:1px;height:20px;background:var(--line);margin:0 1px}
#chbar{gap:6px 6px}
.tfseg button{padding:4px 6px;font-size:11px}

/* tighter top: smaller header, card, rows and buttons; the chart takes the height */
.wrap{padding:8px 12px 28px;gap:8px}
.eyebrow{display:none}
h1{font-size:17px;margin:0}.top{align-items:center;gap:8px}
.coinsel{flex-direction:row;align-items:center;gap:6px}.coinsel span{display:none}
.coinsel select{padding:4px 8px;font-size:12.5px}
.clogo{width:22px;height:22px;font-size:11px}
.card{padding:8px}.col{gap:6px}
#chtop{gap:4px}#toolsec{gap:3px}
.tsec{gap:6px}.tlab{width:54px;padding-top:3px;font-size:9px}
.tbtns{gap:4px}
.ich{padding:2px 8px;font-size:11px}
#secPro,#secReg{padding-top:3px}
.legend{margin:0 0 2px;font-size:10px}
#chart{height:clamp(320px,64dvh,640px);height:clamp(320px,64vh,640px)}
@supports (height:1dvh){#chart{height:clamp(320px,64dvh,640px)}}
#chbar #toolsBtn{font-size:11px;padding:3px 8px}
@media (orientation:landscape) and (max-height:560px){#chart{height:calc(100dvh - 130px);min-height:200px}}
#chsec.cmax #chart{height:auto}

/* row one: time frames and ranges on the left (scroll sideways if the phone is too narrow), tools, share and close pinned at the right: always ONE line */
#chbar{display:flex;flex-wrap:nowrap;align-items:center;gap:6px}
#chleft{display:flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0;overflow-x:auto;scrollbar-width:none}#chleft::-webkit-scrollbar{display:none}
#chright{display:flex;align-items:center;gap:5px;flex:none}
#chbar #toolsBtn,#chbar #shareBtn,#chbar #cmax{order:0;margin:0;padding:4px 7px;line-height:1}
#chbar #toolsBtn[aria-pressed=true]{color:var(--ink);border-color:var(--link)}
#chbar #toolsBtn svg,#chbar #shareBtn svg{display:block}
.tfseg button{padding:4px 6px;font-size:10.5px}

.symsrch{position:relative}
.symsrch input{background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:7px 10px;width:230px;max-width:52vw;font:600 14px ui-monospace,Menlo,Consolas,monospace}
.symres{position:absolute;right:0;top:100%;margin-top:4px;z-index:30;width:300px;max-width:88vw;background:var(--card);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.35);overflow:hidden}
.symres button{display:flex;gap:8px;align-items:baseline;width:100%;text-align:left;background:none;border:0;color:var(--ink);padding:7px 10px;font:13px system-ui,sans-serif;cursor:pointer}
.symres button.on,.symres button:hover{background:rgba(127,176,255,.16)}
.symres b{font-family:ui-monospace,Menlo,Consolas,monospace;min-width:52px}
.symres span{flex:1;color:var(--mut);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.symres i{font-style:normal;font-size:10.5px;color:var(--mut)}
.symres .none{padding:9px 10px;color:var(--mut);font-size:13px}
.stk [data-sind="bt"],.stk [data-fg],.stk [data-as],.stk [data-bm],.stk [data-etf]{display:none}
.stk [data-sind="bt"]{display:none}body:not(.stk) [data-btcb]{display:none}
#legend{display:none!important}

.chartwrap{position:relative}
.tbtip{position:absolute;z-index:40;pointer-events:none;max-width:260px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:6px 9px;font:12px/1.4 system-ui,sans-serif;box-shadow:0 6px 18px rgba(0,0,0,.4)}
.tbtip .mut{color:var(--mut)}.tbtip .up{color:var(--green)}.tbtip .dn{color:var(--red)}

.top>div:first-child{min-width:0;flex:1 1 auto}.top h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.symsrch{flex:0 1 230px;min-width:110px;margin-left:auto}.symsrch input{width:100%;max-width:none;box-sizing:border-box}
.symsrch input{font-size:12px;padding:6px 9px}.symsrch input::placeholder{font-size:11.5px;font-weight:500}

.newsec{margin:6px 0 0;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card)}
.newshd{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:6px;font-size:13px}
.nchip{background:none;border:1px solid var(--line);color:var(--ink);border-radius:999px;padding:2px 10px;font:600 11.5px system-ui,sans-serif;cursor:pointer}.nchip[aria-pressed="true"]{background:rgba(127,176,255,.2);border-color:#7FB0FF}
.nsrc{margin-left:auto;font-size:10.5px}.nearn{margin:2px 0 6px;font-size:12.5px;color:var(--ink)}
.nlist{list-style:none;margin:0;padding:0;max-height:300px;overflow:auto}.nlist li{display:flex;flex-wrap:wrap;gap:3px 8px;align-items:baseline;padding:6px 0;border-top:1px solid var(--line);font-size:13px}.nlist a{color:var(--ink);text-decoration:none;flex:1 1 60%}.nlist a:hover{text-decoration:underline}
.nmeta{font-size:11px;white-space:nowrap}.ntag{font:700 9.5px ui-monospace,Menlo,monospace;text-transform:uppercase;padding:1px 6px;border-radius:5px;border:1px solid var(--line)}.n-filing{color:#F5A524;border-color:#F5A524}.n-rating{color:#C77DFF;border-color:#C77DFF}.n-news{color:#7FB0FF;border-color:#7FB0FF}
#chsec.cmax .newsec{display:none}

/* ---- News ticker, and phone portrait: tight one-row groups, bottom news panel, maximize at the chart's upper right ---- */
.ich .s{display:none}.newsec[hidden]{display:none!important}
.ntick{overflow:hidden;white-space:nowrap;height:24px;line-height:24px;border-bottom:1px solid var(--line);margin:-2px 0 4px;font-size:12px}
.ntrack{display:inline-block;padding-left:100%;animation:ntick 60s linear infinite}.ntick:hover .ntrack,.ntick:active .ntrack{animation-play-state:paused}
.ntrack a{color:var(--ink);text-decoration:none}.nsep{margin:0 12px;color:var(--mut);font-size:8px}
@keyframes ntick{to{transform:translateX(-100%)}}
@media (prefers-reduced-motion:reduce){.ntrack{animation:none;padding-left:0;overflow-x:auto}}
.cmaxabs{position:absolute;top:2px;right:2px;z-index:6;opacity:.88;background:var(--card);padding:2px 7px!important;font-size:13px!important;border-radius:6px}
@media (orientation:portrait) and (max-width:600px){
  .ich .l{display:none}.ich .s{display:inline}
  .tlab{width:42px;padding-top:3px;font-size:8.5px;letter-spacing:.03em}#toolsec{gap:2px}.tsec{gap:0}#secReg{padding-top:1px;border-top:0}
  .tsec{align-items:center}.tbtns{flex-wrap:nowrap;overflow-x:auto;gap:4px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tbtns::-webkit-scrollbar{display:none}
  .ich{padding:2px 7px;font-size:10.5px;line-height:1.35}
  #chtop{gap:3px}#chbar{gap:4px}
  .newsec{position:fixed;left:0;right:0;bottom:0;height:20vh;height:20dvh;margin:0;border-radius:12px 12px 0 0;border-bottom:0;z-index:60;display:flex;flex-direction:column;padding:0 8px;box-shadow:0 -6px 20px rgba(0,0,0,.45);overflow:hidden}
  .newsec .ntick{flex:none;margin:0 -8px 2px;padding:0 8px;height:22px;line-height:22px;font-size:11.5px}
  .newsec .newshd{flex:none;margin:0 0 2px;gap:4px;font-size:12px}.newsec .nsrc{display:none}.newsec .nearn{margin:0 0 2px;font-size:11.5px}
  .newsec .nlist{flex:1;max-height:none;min-height:0}.newsec .nlist li{padding:4px 0;font-size:12px}
  body.newsopen{padding-bottom:21dvh}
}

/* ---- News panel sizes: normal, maximized, minimized to the ticker ---- */
.newsec{position:relative}
.nctl{position:absolute;top:1px;right:3px;z-index:4;display:flex;gap:3px;background:var(--card)}
.nctlb{background:none;border:1px solid var(--line);color:var(--ink);border-radius:8px;font:18px/1 system-ui,sans-serif;min-width:38px;min-height:30px;padding:4px 10px;cursor:pointer}
.newsec .ntick{padding-right:62px}
.newsec.nmax .nlist{max-height:72vh}
.newsec.nmin .newshd,.newsec.nmin .nearn,.newsec.nmin .nlist{display:none}
@media (orientation:portrait) and (max-width:600px){
  .newsec{position:fixed}
  .newsec.nmax{height:78vh;height:78dvh}
  .newsec.nmin{height:auto;padding-bottom:2px}
  body.newsmax{padding-bottom:80dvh}body.newsmin{padding-bottom:34px}
  .newsec .ntick{margin-right:-8px}
}

/* ---- header and toolbar (down to Regime) stay put while scrolling ---- */
header.top{position:sticky;top:0;z-index:31;background:var(--bg);margin:-14px -16px 0;padding:14px 16px 6px}
#chsec:not(.cmax) #chtop{position:sticky;top:var(--tophh,56px);z-index:30;background:var(--card);padding-bottom:4px}
@media (max-width:700px){header.top{margin:-8px -12px 0;padding:8px 12px 4px}}
@media (orientation:landscape) and (max-height:560px){header.top,#chsec:not(.cmax) #chtop{position:static}}

/* ---- news ticker sits just above the chart, not in the bottom sheet ---- */
#ntickbar{margin:0 0 4px}#ntickbar[hidden]{display:none}#ntickbar .ntick{margin:0;height:22px;line-height:22px;font-size:11.5px;border:1px solid var(--line);border-radius:6px;padding:0 6px}
#chsec.cmax #ntickbar{display:none}
.newsec.nmin{min-height:40px}
#ntickbar:not([hidden])~.cmaxabs{top:28px}
.nctlb{min-width:0;min-height:0;height:26px;padding:4px 9px;font:600 14px/1 ui-monospace,Menlo,Consolas,monospace;color:var(--mut);border-radius:8px}.nctlb:hover{color:var(--ink)}

/* one size for the chart maximize button and the news buttons */
.cmaxabs,.nctlb{width:32px;height:30px;padding:0!important;display:inline-flex;align-items:center;justify-content:center;font:600 17px/1 ui-monospace,Menlo,Consolas,monospace!important;border-radius:8px!important}
.nctlb.nmv{font-size:24px!important}
#ntickbar:not([hidden])~.cmaxabs{top:30px}
.cmaxabs,.nctlb{width:26px;height:24px;font-size:14px!important}
.nctlb.nmv{font-size:19px!important}
#ntickbar:not([hidden])~.cmaxabs{top:28px}
.nctlb svg{display:block}.nctlb.nmv{font-size:14px!important}.nctl{gap:6px;align-items:center}
.cmaxabs,.nctlb{width:22px;height:21px;font-size:12px!important}
.nctlb svg{width:12px;height:12px}.nctlb.nmv{font-size:12px!important}
#ntickbar:not([hidden])~.cmaxabs{top:26px}

/* ---- ticker text effects: spotlight lens, keyword pop, number highlights, shimmer ---- */
#ntickbar .nitem{display:inline-block;transform-origin:center;transform:scale(calc(1 + .14*var(--f,0)));opacity:calc(.55 + .45*var(--f,0));will-change:transform,opacity}
#ntickbar .nitem a{font-weight:500}
#ntickbar .kw{display:inline-block;font-weight:700;transform:scale(calc(1 + .35*var(--f,0)*var(--f,0)));transform-origin:center bottom}
#ntickbar .kp{color:var(--green)}#ntickbar .kn{color:var(--red)}
#ntickbar .nnum{font:700 .95em ui-monospace,Menlo,Consolas,monospace}.nnum.npos{color:var(--green)}.nnum.nneg{color:var(--red)}.nnum.nneu{color:var(--amber)}
#ntickbar .ntick{position:relative}
#ntickbar .ntick::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 38%,rgba(255,255,255,.16) 50%,transparent 62%);transform:translateX(-100%);animation:nshim 7s ease-in-out infinite}
@keyframes nshim{0%,65%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
@media (prefers-reduced-motion:reduce){#ntickbar .ntick::after{display:none}#ntickbar .nitem{transform:none;opacity:1}#ntickbar .kw{transform:none}}
#ntickbar .nitem{transform:scale(calc(1 + .03*var(--f,0)));opacity:calc(.88 + .12*var(--f,0))}
@media (prefers-reduced-motion:reduce){#ntickbar .nitem{transform:none;opacity:1}}

/* ---- Annotate section ---- */
.tlab .s{display:none}.anninfo{align-self:center;margin-left:6px;font:10.5px ui-monospace,Menlo,Consolas,monospace;color:var(--mut);white-space:nowrap}
@media (orientation:portrait) and (max-width:600px){.tlab .l{display:none}.tlab .s{display:inline}}

/* ---- share panel (shows the generated image when the browser has no native share sheet for files) ---- */
.shpanel{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:12px}
.shbox{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px;max-width:min(96vw,900px);max-height:96dvh;max-height:96vh;display:flex;flex-direction:column;gap:8px;overflow:auto}
.shhd{display:flex;justify-content:space-between;align-items:center}.shx{width:30px;height:28px;padding:0!important;font-size:15px!important}
.shimg{width:100%;height:auto;max-height:62vh;object-fit:contain;border-radius:8px;background:#0b0f14;-webkit-touch-callout:default;user-select:auto}
.shnote{font-size:12px;color:var(--mut)}.shbtns{display:flex;gap:8px;flex-wrap:wrap}.shbtns .cmaxb{padding:8px 14px!important;font-size:13px!important;color:var(--ink)}
.shlink{font:11px ui-monospace,Menlo,Consolas,monospace;color:var(--mut);word-break:break-all;user-select:all}

/* ---- live price chip and PIN sheet ---- */
.livechip{display:flex;align-items:center;gap:6px;margin-top:2px;font:600 12px ui-monospace,Menlo,Consolas,monospace;color:var(--mut)}
.livechip .lp{font-size:15px;color:var(--ink)}.livechip.on .lp{color:var(--green)}.livechip.on .lt{color:var(--green)}.livechip.stale .lp{color:var(--amber)}
.livechip .cmaxb{padding:1px 7px;font-size:11px}.lvin{width:100%;text-align:center;letter-spacing:.5em;font:700 22px ui-monospace,Menlo,Consolas,monospace;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:10px}
#livesheet input{background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px;font:14px ui-monospace,Menlo,monospace}.lverr{min-height:16px;font-size:12px;color:var(--red)}

/* the locked Live / News pill pulses to draw attention (off for reduced motion) */
.lvlock{color:var(--amber)!important;border-color:rgba(245,165,36,.7)!important;animation:lvpulse 1.8s ease-in-out infinite}
@keyframes lvpulse{0%{box-shadow:0 0 0 0 rgba(245,165,36,.55)}70%{box-shadow:0 0 0 9px rgba(245,165,36,0)}100%{box-shadow:0 0 0 0 rgba(245,165,36,0)}}
@media (prefers-reduced-motion:reduce){.lvlock{animation:none}}

/* ---- phone: a subtle sign that a Signal / Pattern / Regime / Annotate row scrolls sideways ---- */
.tsec{position:relative}
@media (orientation:portrait) and (max-width:600px){
  .tbtns.more-r{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 34px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 34px),transparent)}
  .tbtns.more-l.more-r{-webkit-mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 34px),transparent);mask-image:linear-gradient(90deg,transparent,#000 22px,#000 calc(100% - 34px),transparent)}
  .tbtns.more-l:not(.more-r){-webkit-mask-image:linear-gradient(90deg,transparent,#000 22px);mask-image:linear-gradient(90deg,transparent,#000 22px)}
  .tsec.more-r::after{content:"\203A";position:absolute;right:1px;top:50%;transform:translateY(-52%);width:16px;text-align:center;color:var(--ink);opacity:.7;font:700 17px/1 system-ui,sans-serif;pointer-events:none;animation:scrollnudge 1.8s ease-in-out infinite}
}
@keyframes scrollnudge{0%,100%{transform:translate(0,-52%)}50%{transform:translate(3px,-52%)}}
@media (prefers-reduced-motion:reduce){.tsec.more-r::after{animation:none}}
.clogo{flex:0 0 auto;min-width:22px}#ttl .clogo img{display:block}

/* the collapsed news bar carries a title */
.newsec .nbar{display:none}
.newsec.nmin .nbar{display:flex;align-items:center;gap:4px;height:30px;padding:0 70px 0 4px;font-size:13px;white-space:nowrap;overflow:hidden}
.newsec.nmin .nbar b{color:var(--ink)}

/* the log-scale switch sits under the price axis, in the corner beside the time axis (as on charting platforms) */
.logc{position:absolute;right:5px;bottom:4px;z-index:6;font:600 10px ui-monospace,Menlo,Consolas,monospace;line-height:1.2;padding:2px 8px;border-radius:6px;background:var(--card);color:var(--mut);border:1px solid var(--line);cursor:pointer}
.logc[aria-pressed=true]{background:var(--blue);color:#fff;border-color:var(--blue)}
#chsec.cmax .logc{bottom:6px}
#ttl{cursor:pointer}#ttl .mut{cursor:default}

/* ---- collapsed news feed: buttons centred vertically; Bitcoin cycles panel collapses the same way ---- */
.newsec.nmin .nctl{top:50%;transform:translateY(-50%)}
#cysec .cyhd{align-items:center;gap:6px;min-height:30px}
#cysec .cytog svg{display:block;transition:transform .15s}
#cysec.cycol .cytog svg{transform:rotate(180deg)}
#cysec.cycol>:not(.cyhd){display:none}
#cysec.cycol .cyhd #cyShare,#cysec.cycol .cyhd .cynote0{display:none}
#cysec.cycol .cyhd .cytog{margin-left:auto}
#cysec.cycol{min-height:40px;padding-top:6px;padding-bottom:6px}
#cysec .cytog{width:26px;height:24px;padding:0;display:inline-flex;align-items:center;justify-content:center}
@media (prefers-reduced-motion:reduce){#cysec .cytog svg{transition:none}}
#cysec.cycol .cyhd{flex-wrap:nowrap}
#cysec.cycol .cyhd #cyShare,#cysec.cycol .cyhd .cynote0{display:none!important}
#cysec.cycol .cyhd h2{white-space:nowrap}
#cysec .cyhd{display:flex;align-items:center;gap:6px;min-height:30px}
#cysec.cycol .cyhd{min-height:30px;height:30px}

/* ---- 3D buttons: "A soft bevel" at 160% strength (chosen from the style samples) ---- */
.ich,.cmaxb,.nctlb,.nchip,.logc,.tfseg button{background:linear-gradient(180deg,#1c2330,#141a25);transition:transform .06s,box-shadow .06s}
.ich,.cmaxb,.nctlb,.nchip,.logc{border:1px solid #2a3342;box-shadow:inset 0 1px 0 rgba(255,255,255,.128),0 1px 3px rgba(0,0,0,.88)}
.tfseg button{box-shadow:inset 0 1px 0 rgba(255,255,255,.128),inset 0 -1px 2px rgba(0,0,0,.5)}
.ich:active,.cmaxb:active,.nctlb:active,.nchip:active,.logc:active{transform:translateY(1px);box-shadow:inset 0 1px 4px rgba(0,0,0,.9)}
.tfseg button:active{box-shadow:inset 0 1px 4px rgba(0,0,0,.9)}
.ich[aria-pressed=true],.cmaxb[aria-pressed=true],.nchip[aria-pressed=true],.logc[aria-pressed=true]{color:var(--ink);background:linear-gradient(180deg,#141a25,#1a2231);border-color:var(--ic,var(--link));box-shadow:inset 0 2px 5px rgba(0,0,0,.88),0 0 0 1px var(--ic,var(--link))}
.tfseg button[aria-pressed=true]{color:var(--ink);background:linear-gradient(180deg,rgba(127,176,255,.10),rgba(127,176,255,.24));box-shadow:inset 0 2px 5px rgba(0,0,0,.7)}
.ich.fire-buy,.ich.fire-sell{box-shadow:inset 0 1px 0 rgba(255,255,255,.128)}
@media (prefers-reduced-motion:reduce){.ich,.cmaxb,.nctlb,.nchip,.logc,.tfseg button{transition:none}}
/* phone portrait: the sideways-scrolling pill rows clip vertically, so the bevel and ring at the top and bottom of a pill were cut; give the rows room */
@media (orientation:portrait) and (max-width:600px){.tbtns{padding-block:4px;margin-block:-4px}.tbtns .ich{line-height:1.4}}
/* phone portrait: the collapsed Bitcoin cycles bar is pinned above the news bar so it shows in the default view */
@media (orientation:portrait) and (max-width:600px){
  #cysec.cycol{position:fixed;left:0;right:0;bottom:var(--nbh,0px);margin:0;z-index:59;border-radius:12px 12px 0 0;border-bottom:0;box-shadow:0 -6px 20px rgba(0,0,0,.35)}
  body.cyfix{padding-bottom:calc(var(--nbh,0px) + 56px)!important}
  body.newsmax #cysec.cycol{display:none}
}
/* Bitcoin cycles title and bar match the News feed bar */
#cysec h2{font-size:13px!important;font-weight:700;color:var(--ink)}
#cysec.cycol{min-height:40px;height:40px;padding:0 10px;box-sizing:border-box;justify-content:center}
#cysec.cycol .cyhd{height:30px;min-height:30px}
/* Bitcoin cycles expanded: the whole chart card folds away (only the news panel stays) so the cycles get the page */
#chsec.cyx>:not(#newsec){display:none!important}
#chsec.cyx{padding-top:0;padding-bottom:0;border:0;background:none}
/* collapsed Bitcoin cycles title lines up with the News feed title */
#cysec.cycol{padding-left:23px}
@media (orientation:portrait) and (max-width:600px){#cysec.cycol{padding-left:12px}}
/* the pulse ring of a fired pill is 4 px wide; give the scrolling row the same room at the left and right so the first pill is not cut */
@media (orientation:portrait) and (max-width:600px){.tbtns{padding-inline:6px;margin-inline:-6px}}
@media (orientation:portrait) and (max-width:600px){.tbtns{padding-block:6px;margin-block:-6px}}
/* the pulse ring of a pill in the row above a dashed divider was painted over by the divider: lift the pill rows above it */
@media (orientation:portrait) and (max-width:600px){.tsec .tbtns{position:relative;z-index:1}}

/* ---- header ticker: letter-by-letter flip-in and a live glow that follows the day's move ---- */
.tkr{--gc:154,163,174;display:inline-flex;perspective:480px;filter:drop-shadow(0 0 5px rgba(var(--gc),.35));animation:tkbreathe 3.4s ease-in-out infinite}
.tkr.up{--gc:47,191,113}.tkr.dn{--gc:229,83,83}
.tkr i{font-style:normal;display:inline-block;transform-origin:50% 100%;animation:tkin .6s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i)*80ms)}
@keyframes tkin{from{opacity:0;transform:rotateX(-95deg) translateY(.25em)}to{opacity:1;transform:none}}
@keyframes tkbreathe{0%,100%{filter:drop-shadow(0 0 4px rgba(var(--gc),.28))}50%{filter:drop-shadow(0 0 9px rgba(var(--gc),.7))}}
@keyframes tkpulse{0%{filter:drop-shadow(0 0 3px rgba(var(--gc),.9)) brightness(1.5)}100%{filter:drop-shadow(0 0 5px rgba(var(--gc),.3)) brightness(1)}}
.tkr.tkp{animation:tkpulse .9s ease-out 1,tkbreathe 3.4s ease-in-out .9s infinite}
@media (prefers-reduced-motion:reduce){.tkr,.tkr.tkp{animation:none;filter:drop-shadow(0 0 6px rgba(var(--gc),.45))}.tkr i{animation:none}}
.tkr{padding:10px 12px;margin:-10px -12px}
/* crypto live price in the header */
.lpx{font:600 13px ui-monospace,Menlo,Consolas,monospace;color:var(--ink);white-space:nowrap;margin-left:2px}.lpx .lt{color:#FFC800;font-size:10px;letter-spacing:.06em;text-transform:uppercase;margin-left:3px}
#ttl .mut{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}#ttl .lpx,#ttl .tkr{flex:0 0 auto}

/* ---- chart effects: odometer price tag, tick ripples, signal burst and glow, heat strip ---- */
.fxl{position:absolute;pointer-events:none;overflow:hidden;z-index:5}.fxl[hidden]{display:none}
.fxtag{position:absolute;top:0;box-sizing:border-box;height:16px;line-height:16px;background:#FFC800;color:#121722;font:400 11px "IBM Plex Mono",monospace;display:flex;align-items:center;justify-content:flex-start;padding:0 4px 0 10px;white-space:nowrap;border-radius:2px;will-change:transform}
.fxtag .fxv{display:flex;height:16px}
.fxtag .fxttl{position:absolute;right:100%;top:0;margin-right:.5px;height:16px;line-height:16px;padding:0 6px;background:#FFC800;color:#121722;border-radius:2px}
.fxtag .odd{display:inline-block;height:16px;line-height:16px;overflow:hidden;vertical-align:top}
.fxtag .odc{display:block;transition:transform .45s cubic-bezier(.2,.8,.2,1)}.fxtag .odc b{display:block;height:16px;line-height:16px;font-weight:400}
.fxtag.fxup{animation:fxtu .5s ease-out}.fxtag.fxdn{animation:fxtd .5s ease-out}
@keyframes fxtu{0%{box-shadow:0 0 0 0 rgba(47,191,113,.9);background:#9af0bf}100%{box-shadow:0 0 0 6px rgba(47,191,113,0);background:#FFC800}}
@keyframes fxtd{0%{box-shadow:0 0 0 0 rgba(229,83,83,.9);background:#f5a5a5}100%{box-shadow:0 0 0 6px rgba(229,83,83,0);background:#FFC800}}
.fxline{position:absolute;left:0;pointer-events:none;display:none}
.fxh{position:absolute;left:0;top:0;width:0;height:0}
.fxh i{position:absolute;left:-11px;top:-11px;width:22px;height:22px;border-radius:50%;border:2px solid var(--hc,#2fbf71);box-shadow:0 0 10px var(--hc,#2fbf71);animation:fxhalo 1.6s ease-in-out infinite}
.fxh.buy{--hc:#2fbf71}.fxh.sell{--hc:#e55353}
.fxh em{position:absolute;left:14px;top:-8px;font:700 9px ui-monospace,Menlo,Consolas,monospace;font-style:normal;color:var(--hc,#2fbf71);text-shadow:0 0 4px #000}
.fxb{position:absolute;left:-11px;top:-11px;width:22px;height:22px;border-radius:50%;border:2px solid var(--hc,#2fbf71);opacity:0;animation:fxburst 1.5s ease-out both}
@keyframes fxhalo{0%,100%{transform:scale(.85);opacity:.55}50%{transform:scale(1.1);opacity:1}}
@keyframes fxburst{0%{transform:scale(.3);opacity:.95}100%{transform:scale(4.5);opacity:0}}
@media (prefers-reduced-motion:reduce){.fxtag .odc{transition:none}.fxh i{animation:none;opacity:.9}.fxb{display:none}}
/* FX pill sits beside the log pill, under the price axis */
.logc.fxc{right:50px}
