/* Dalal Pulse — exchange-board look: mist paper, ink ticker band, marigold + peacock accents */
:root{
  --paper:#f3f6f5; --paper2:#e9efed; --card:#ffffff; --ink:#0e1b1c; --ink2:#2f4344; --muted:#5a6b6a; --line:#dce3e1; --line2:#c3cfcc;
  --accent:#d9820f; --accent-ink:#9a5a05; --accentbg:#fdf1de;
  --peacock:#0b6e72; --peacockbg:#e3f2f1;
  --up:#0a8a4e; --upbg:#e4f5ec; --down:#cf3b2b; --downbg:#fbe9e6; --warn:#a86207; --warnbg:#fdf1de; --neutral:#5a6b6a; --neutralbg:#eef2f1;
  --band:#0c1718; --band-ink:#dfe9e6; --band-muted:#86a09c;
  --s1:#2a78d6; --s2:#eb6834; --s3:#1baf7a; --s4:#8b5cf6; --s5:#c2410c; --mid:#e4e8e6;
  --shadow:0 1px 0 rgba(14,27,28,.04),0 6px 20px -8px rgba(14,27,28,.12);
  --display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --body:"Hanken Grotesk","Segoe UI",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;
}
@media (prefers-color-scheme:dark){ :root:not([data-theme="light"]){
  --paper:#081012; --paper2:#0c1719; --card:#0e191b; --ink:#e6efec; --ink2:#bccbc8; --muted:#8fa3a0; --line:#1b2a2d; --line2:#27393c;
  --accent:#f2a541; --accent-ink:#f2a541; --accentbg:#2a1f0e; --peacock:#3bb7b0; --peacockbg:#0f2a2a;
  --up:#34d08b; --upbg:#0d2a1e; --down:#ff6a5a; --downbg:#2d1512; --warn:#f2a541; --warnbg:#2a1f0e; --neutral:#8fa3a0; --neutralbg:#15232a;
  --band:#040a0b; --band-ink:#dfe9e6; --band-muted:#6f8783; --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s4:#a78bfa; --s5:#f59e0b; --mid:#1a2628;
  --shadow:0 1px 0 rgba(0,0,0,.4),0 10px 28px -12px rgba(0,0,0,.6); color-scheme:dark;
}}
:root[data-theme="dark"]{
  --paper:#081012; --paper2:#0c1719; --card:#0e191b; --ink:#e6efec; --ink2:#bccbc8; --muted:#8fa3a0; --line:#1b2a2d; --line2:#27393c;
  --accent:#f2a541; --accent-ink:#f2a541; --accentbg:#2a1f0e; --peacock:#3bb7b0; --peacockbg:#0f2a2a;
  --up:#34d08b; --upbg:#0d2a1e; --down:#ff6a5a; --downbg:#2d1512; --warn:#f2a541; --warnbg:#2a1f0e; --neutral:#8fa3a0; --neutralbg:#15232a;
  --band:#040a0b; --band-ink:#dfe9e6; --band-muted:#6f8783; --s1:#3987e5; --s2:#d95926; --s3:#199e70; --s4:#a78bfa; --s5:#f59e0b; --mid:#1a2628;
  --shadow:0 1px 0 rgba(0,0,0,.4),0 10px 28px -12px rgba(0,0,0,.6); color-scheme:dark;
}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--body);-webkit-font-smoothing:antialiased}
a{color:var(--peacock);text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.num,.mono{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.up{color:var(--up)}.down{color:var(--down)}.muted{color:var(--muted)}
h1,h2,h3{font-family:var(--display);text-wrap:balance}

/* ---------- masthead ---------- */
.mast{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:blur(12px) saturate(1.3);border-bottom:1px solid var(--line)}
.mast .in{max-width:1440px;margin:0 auto;display:flex;align-items:center;gap:16px;padding:10px 20px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);white-space:nowrap;border:0;background:none;padding:0;text-align:left}
.brand .mk{width:34px;height:34px;border-radius:9px;background:var(--band);display:grid;place-items:center;position:relative;overflow:hidden;flex:none}
.brand .mk::after{content:"";position:absolute;inset:auto 0 0 0;height:3px;background:var(--accent)}
.brand b{font-family:var(--display);font-weight:800;font-size:19px;letter-spacing:-.03em;line-height:1;display:block}
.brand small{display:block;font-size:11px;color:var(--muted);font-weight:500;letter-spacing:.02em;margin-top:3px}
nav.tabs{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0}
nav.tabs::-webkit-scrollbar{display:none}
nav.tabs button{border:0;background:none;padding:8px 12px;border-radius:8px;color:var(--muted);font-weight:600;font-size:14px;white-space:nowrap;position:relative}
nav.tabs button:hover{color:var(--ink);background:var(--paper2)}
nav.tabs button.on{color:var(--ink)}
nav.tabs button.on::after{content:"";position:absolute;left:12px;right:12px;bottom:-11px;height:3px;border-radius:3px 3px 0 0;background:var(--accent)}
.search{position:relative}
.search input{width:210px;padding:8px 12px 8px 32px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);font:inherit;font-size:14px;outline:none;transition:border-color .15s,width .25s}
.search input:focus{border-color:var(--peacock);width:270px}
.search svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--muted)}
.sugg{position:absolute;right:0;top:calc(100% + 6px);width:340px;max-width:90vw;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;z-index:40}
.sugg button{display:flex;width:100%;justify-content:space-between;gap:10px;padding:9px 12px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left}
.sugg button:hover,.sugg button.on{background:var(--paper2)}
.clock{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;white-space:nowrap}
.clock .t{font-family:var(--mono);font-size:13px;font-weight:600}
.status{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--muted)}
.status i{width:7px;height:7px;border-radius:50%;background:var(--muted)}
.status.open{color:var(--up)}.status.open i{background:var(--up);animation:beat 1.8s infinite}
.status.pre i{background:var(--accent)}
@keyframes beat{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--up) 60%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.iconbtn{border:1px solid var(--line);background:var(--card);border-radius:9px;width:36px;height:36px;display:grid;place-items:center;color:var(--ink2);flex:none}

/* ---------- ticker tape (signature) ---------- */
.tape{background:var(--band);color:var(--band-ink);overflow:hidden;position:relative;border-bottom:1px solid var(--line)}
.tape::before,.tape::after{content:"";position:absolute;top:0;bottom:0;width:40px;z-index:2;pointer-events:none}
.tape::before{left:0;background:linear-gradient(90deg,var(--band),transparent)}.tape::after{right:0;background:linear-gradient(-90deg,var(--band),transparent)}
.tape .track{display:flex;width:max-content;animation:tape 140s linear infinite}
.tape:hover .track{animation-play-state:paused}
.tape .it{display:flex;align-items:baseline;gap:8px;padding:8px 18px;border:0;border-right:1px solid rgba(223,233,230,.1);font-family:var(--mono);font-size:12.5px;white-space:nowrap;cursor:pointer;background:none;color:inherit}
.tape .it:hover b{color:#f2a541}
.tape .it b{font-weight:700;color:var(--band-ink)}
.tape .it .p{color:var(--band-muted)}
.tape .it .u{color:#3fdc93}.tape .it .d{color:#ff7a6b}
@keyframes tape{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.tape .track{animation:none}.tape{overflow-x:auto}}

/* ---------- pulse band ---------- */
.band{border-bottom:1px solid var(--line);background:var(--card)}
.band .in{max-width:1440px;margin:0 auto;display:flex;gap:10px;padding:12px 20px;align-items:stretch}
.band .tks{display:flex;gap:10px;overflow-x:auto;scrollbar-width:thin;flex:1 1 auto;min-width:0}
.tk{flex:0 0 auto;min-width:128px;padding:9px 12px;border-radius:10px;border:1px solid var(--line);background:var(--paper)}
.tk .l{font-size:10.5px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.tk .v{font-family:var(--mono);font-size:16px;font-weight:700;letter-spacing:-.03em}
.tk .c{font-family:var(--mono);font-size:12px;font-weight:600}
.tk.mood{display:flex;align-items:center;gap:12px;min-width:230px;background:var(--band);border-color:var(--band);color:var(--band-ink)}
.tk.mood .l{color:var(--band-muted)}
.tk.mood .v{font-family:var(--display);font-size:18px;letter-spacing:-.02em}

/* ---------- layout ---------- */
.wrap{max-width:1440px;margin:0 auto;padding-inline:20px;padding-block:18px 36px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}
.card>.hd{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.card>.hd h2{margin:0;font-size:16px;letter-spacing:-.02em}
.card>.bd{padding:16px}
h1.page{font-size:28px;letter-spacing:-.035em;margin:4px 0 2px;font-weight:800}
p.sub{margin:0 0 18px;color:var(--muted);max-width:70ch}
.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.fade{animation:fade .35s ease both}
@keyframes fade{from{opacity:.001;transform:translateY(6px)}}
@media (prefers-reduced-motion:reduce){.fade{animation:none}}

/* ---------- news by stock ---------- */
.md{display:grid;grid-template-columns:410px minmax(0,1fr);gap:16px;align-items:start}
.master{position:sticky;top:calc(env(safe-area-inset-top,0px) + 70px);max-height:calc(100vh - 90px);display:flex;flex-direction:column;overflow:hidden}
.master .tools{padding:12px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:9px}
.field{padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink);font:inherit;font-size:14px;outline:none;width:100%}
.field:focus{border-color:var(--peacock)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--card);border-radius:99px;padding:4px 11px;font-size:12.5px;font-weight:600;color:var(--ink2);white-space:nowrap}
.chip:hover{border-color:var(--line2)}
.chip.on{background:var(--ink);color:var(--card);border-color:var(--ink)}
.chip .n{font-family:var(--mono);opacity:.6;margin-left:4px;font-size:11px}
.list{overflow:auto;flex:1}
.row{display:grid;grid-template-columns:minmax(0,1fr) 84px 92px;gap:2px 10px;padding:12px 14px;border:0;border-bottom:1px solid var(--line);cursor:pointer;position:relative;transition:background .15s;width:100%;text-align:left;background:none}
.row:hover{background:var(--paper2)}
.row.on{background:var(--accentbg)}
.row.on::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}
.row>div,.row>span{min-width:0}
.row .s{font-family:var(--display);font-weight:700;font-size:15.5px;letter-spacing:-.02em;display:flex;align-items:center;gap:6px}
.row .n2{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .p{text-align:right;font-family:var(--mono);font-weight:600;font-size:13.5px}
.row .p small{display:block;font-size:12px}
.row .m{grid-column:1/-1;display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);flex-wrap:wrap;margin-top:4px}
.row .hl{grid-column:1/-1;font-size:13px;color:var(--ink2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:2px}
.spark{width:84px;height:30px;display:block;align-self:center}
.spark .l{stroke-dasharray:320;stroke-dashoffset:320;animation:draw 1.1s ease forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.spark .l{animation:none;stroke-dashoffset:0}}
.flash-up{animation:fu 1.8s ease}.flash-down{animation:fd 1.8s ease}
@keyframes fu{0%,20%{background:var(--upbg)}100%{background:transparent}}
@keyframes fd{0%,20%{background:var(--downbg)}100%{background:transparent}}
.badge{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:5px;white-space:nowrap;letter-spacing:.01em}
.badge.bullish,.badge.positive{background:var(--upbg);color:var(--up)}
.badge.bearish,.badge.negative{background:var(--downbg);color:var(--down)}
.badge.neutral{background:var(--neutralbg);color:var(--neutral)}
.badge.watch{background:var(--warnbg);color:var(--warn)}
.badge.n50{background:var(--peacockbg);color:var(--peacock)}
.badge.mine{background:var(--accentbg);color:var(--accent-ink)}
.tdots{display:inline-flex;gap:3px}
.tdots i{width:7px;height:7px;border-radius:2px;display:inline-block}
.tdots i.positive{background:var(--up)}.tdots i.negative{background:var(--down)}.tdots i.neutral{background:var(--line2)}

.detail{min-height:400px}
.detail .head{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap;padding:20px 20px 16px;border-bottom:1px solid var(--line)}
.detail .head h2{margin:0;font-size:30px;letter-spacing:-.04em;font-weight:800;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.detail .head .co{color:var(--muted);font-size:14px}
.detail .px{margin-left:auto;text-align:right}
.detail .px .v{font-family:var(--mono);font-size:30px;font-weight:700;letter-spacing:-.04em}
.acts{display:flex;gap:8px;flex-wrap:wrap;width:100%}
.btn{border:1px solid var(--line);background:var(--card);border-radius:9px;padding:7px 12px;font-weight:600;font-size:13.5px;display:inline-flex;align-items:center;gap:6px;color:var(--ink)}
.btn:hover{border-color:var(--line2);background:var(--paper2)}
.btn.primary{background:var(--peacock);border-color:var(--peacock);color:#fff}
.btn.primary:hover{background:var(--peacock);filter:brightness(1.08)}
.btn.sm{padding:4px 10px;font-size:12.5px;border-radius:8px}
.back{display:none}
.insight{margin:16px 20px 0;padding:16px 18px 16px 22px;border-radius:12px;background:var(--paper);border:1px solid var(--line);position:relative;overflow:hidden}
.insight::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}
.insight .t{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:700;font-size:17px;margin-bottom:10px;flex-wrap:wrap;letter-spacing:-.02em}
.insight .t .tag{font-family:var(--body);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);background:var(--accentbg);padding:3px 8px;border-radius:5px;font-weight:700}
.insight p{margin:0 0 10px;color:var(--ink2);max-width:75ch}
.insight ul{margin:0;padding-left:18px;color:var(--ink2);font-size:14px}
.meters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:4px 0 14px}
.meter .l{font-size:11px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em;display:flex;justify-content:space-between}
.meter .l span:last-child{font-family:var(--mono)}
.meter .bar{height:8px;border-radius:99px;background:var(--line);position:relative;margin-top:6px;overflow:hidden}
.meter .bar i{position:absolute;top:0;bottom:0;border-radius:99px;transition:width .9s cubic-bezier(.2,.8,.2,1),left .9s cubic-bezier(.2,.8,.2,1)}
.meter .bar b{position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--line2);z-index:1}
.sect{padding:18px 20px;border-bottom:1px solid var(--line)}
.sect:last-child{border-bottom:0}
.sect h3{margin:0 0 12px;font-family:var(--body);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em;font-weight:700}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.stat{background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:8px 11px}
.stat .l{font-size:11.5px;color:var(--muted)}.stat .v{font-family:var(--mono);font-weight:600;font-size:14px}
.news-item{display:grid;grid-template-columns:10px minmax(0,1fr);gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.news-item:last-child{border-bottom:0}
.news-item .tone{width:8px;height:8px;border-radius:2px;margin-top:8px}
.news-item .tone.positive{background:var(--up)}.news-item .tone.negative{background:var(--down)}.news-item .tone.neutral{background:var(--line2)}
.news-item a{color:var(--ink);font-weight:600;line-height:1.4}
.news-item a:hover{color:var(--peacock)}
.news-item .m{font-size:12px;color:var(--muted);margin-top:4px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.sy{font-family:var(--mono);font-weight:600;color:var(--peacock);cursor:pointer;border:0;background:none;padding:0;font-size:12px}
.chart{position:relative}
.chart svg{display:block;width:100%;height:250px}
.legend{display:flex;gap:16px;font-size:12px;color:var(--muted);margin-bottom:6px;flex-wrap:wrap}
.legend i{display:inline-block;width:14px;height:3px;border-radius:2px;vertical-align:middle;margin-right:6px}
.tip{position:absolute;pointer-events:none;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:7px 10px;font-size:12px;box-shadow:var(--shadow);white-space:nowrap;font-family:var(--mono);z-index:3}
.seg{display:inline-flex;background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:2px;flex-wrap:wrap}
.seg button{border:0;background:none;padding:4px 11px;border-radius:7px;font-size:12.5px;font-weight:700;color:var(--muted)}
.seg button.on{background:var(--card);color:var(--ink);box-shadow:var(--shadow)}
.glance{display:grid;grid-template-columns:230px minmax(0,1fr);gap:22px;align-items:center}
.glance p{margin:0 0 7px;color:var(--ink2)}
.gauge svg{width:100%;max-width:230px;height:auto;display:block}
.gauge .arc{transition:stroke-dashoffset 1.4s cubic-bezier(.2,.8,.2,1)}
.hot{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.hotc{border:1px solid var(--line);border-radius:11px;padding:12px 14px;cursor:pointer;background:var(--card);text-align:left;transition:transform .15s,border-color .15s;width:100%}
.hotc:hover{transform:translateY(-2px);border-color:var(--line2)}
.hotc .top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.hotc b{font-family:var(--display);font-size:16px;letter-spacing:-.02em}
.hotc p{margin:6px 0 0;font-size:13.5px;color:var(--ink2)}

/* ---------- markets ---------- */
.heat{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px}
.tile{padding:12px;border-radius:9px;min-height:82px;color:var(--ink);border:0;text-align:left}
.tile b{display:block;font-size:12.5px;font-weight:700}
.tile .v{font-family:var(--mono);font-size:19px;font-weight:700;letter-spacing:-.03em}
.tile .m{font-size:11.5px;opacity:.9;margin-top:2px}
.tile .sy{color:inherit;text-decoration:underline;font-size:11.5px}
.mv{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border:0;border-bottom:1px solid var(--line);cursor:pointer;width:100%;background:none;text-align:left}
.mv:hover b{color:var(--peacock)}
.mv b{font-family:var(--display);letter-spacing:-.01em}
.topics{display:flex;gap:6px;flex-wrap:wrap}
.topics span{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:5px 10px;font-size:13.5px}
.topics span em{font-style:normal;color:var(--muted);margin-left:5px;font-size:11px;font-family:var(--mono)}
.flow{display:grid;grid-template-columns:70px minmax(0,1fr) 90px;gap:10px;align-items:center;margin:6px 0;font-size:13px}
.flow .bar{height:10px;border-radius:3px;background:var(--paper2);position:relative;overflow:hidden}
.flow .bar i{position:absolute;top:0;bottom:0;left:0;border-radius:3px}

/* ---------- tables ---------- */
.tblwrap{overflow:auto;max-height:calc(100vh - 280px)}
.tbl{width:100%;border-collapse:collapse;font-size:13.5px}
.tbl th{position:sticky;top:0;z-index:1;background:var(--card);text-align:right;font-weight:700;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:10px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl th button{border:0;background:none;font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;padding:0}
.tbl td{padding:10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.tbl td.num{font-family:var(--mono);font-size:13px}
.tbl th.l,.tbl td.l{text-align:left}
.tbl tbody tr{cursor:pointer;transition:background .12s}
.tbl tbody tr:hover{background:var(--paper2)}
.tbl .sym{font-family:var(--display);font-weight:700;letter-spacing:-.01em}
.presets{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.explain{font-size:13.5px;color:var(--ink2);background:var(--card);border:1px solid var(--line);border-left:4px solid var(--peacock);border-radius:9px;padding:10px 14px;margin-bottom:14px}

/* ---------- portfolio ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.kpi{padding:14px 16px}
.kpi .l{font-size:12px;color:var(--muted);font-weight:600}.kpi .v{font-family:var(--mono);font-size:22px;font-weight:700;letter-spacing:-.04em}
.form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.form input,.form select{padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);font:inherit;font-size:14px;width:120px}
.form select{width:auto}
.empty{padding:36px 20px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--ink);font-size:16px;margin-bottom:4px;font-family:var(--display)}
textarea.code{width:100%;min-height:70px;font-family:var(--mono);font-size:12px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink);padding:8px;margin-top:8px}

.foot{max-width:1440px;margin:0 auto;padding-inline:20px;padding-block:6px 40px;color:var(--muted);font-size:12.5px;line-height:1.6}
.foot p{margin:0 0 6px;max-width:110ch}
.snap{background:var(--accentbg);color:var(--accent-ink);border-bottom:1px solid var(--line);padding:8px 16px;font-size:13px;font-weight:600;text-align:center}
.toast{position:fixed;bottom:calc(20px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);background:var(--ink);color:var(--card);padding:10px 16px;border-radius:10px;font-size:13.5px;box-shadow:var(--shadow);z-index:60;max-width:90vw;animation:fade .25s ease both}
.skeleton{background:linear-gradient(90deg,var(--paper) 25%,var(--paper2) 50%,var(--paper) 75%);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:8px;height:14px}
@keyframes sk{to{background-position:-200% 0}}

@media(max-width:1640px){.clock{display:none}}
@media(max-width:1180px){.brand small{display:none}.search input{width:170px}}
@media(max-width:1000px){.g2{grid-template-columns:1fr}}
@media(max-width:900px){
  .mast .in{flex-wrap:wrap;gap:10px;padding:10px 16px}
  nav.tabs{order:5;flex-basis:100%}
  nav.tabs button.on::after{bottom:-2px}
  .search{flex:1;min-width:0}.search input,.search input:focus{width:100%}
  .md{grid-template-columns:1fr}.md.detail-open .master{display:none}.md:not(.detail-open) .detail{display:none}
  .master{position:static;max-height:none}
  .back{display:inline-flex}
  .wrap{padding-inline:16px}.band .in{padding:10px 16px}
  .detail .px{margin-left:0;text-align:left;width:100%}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .glance{grid-template-columns:1fr}.hot{grid-template-columns:1fr}
}
@media(max-width:600px){.meters{grid-template-columns:1fr}.brand small{display:none}.row{grid-template-columns:minmax(0,1fr) 92px}.row .spark{display:none}.detail .head h2{font-size:24px}}

/* ---- pro charts, heatmap, signals ---- */
.ctrls{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12.5px;margin-bottom:8px}
.tog{border:1px solid var(--line);background:var(--paper);color:var(--muted);border-radius:999px;padding:3px 11px;font-size:12.5px;font-weight:700}
.tog.on{background:var(--peacockbg);border-color:var(--peacock);color:var(--peacock)}
.chart svg{height:auto}
.reli{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line2)}
.reli p{margin:6px 0;font-size:13.5px}
.hgrp{margin-bottom:12px}.hgh{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:4px}
.smap{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:3px}
.smap .st{border:0;border-radius:6px;padding:6px 7px;text-align:left;color:var(--ink);min-height:46px;transition:transform .12s}
.smap .st:hover{transform:scale(1.04);position:relative;z-index:1}
.smap .st b{display:block;font-size:11.5px;letter-spacing:-.01em;overflow:hidden;text-overflow:ellipsis}.smap .st span{font-family:var(--mono);font-size:11.5px;font-weight:600}
.rsl{display:flex;align-items:center;gap:8px;min-width:0}.rsl b{min-width:86px}
.rsbar{display:inline-block;width:64px;height:6px;border-radius:3px;background:var(--line);overflow:hidden}.rsbar i{display:block;height:100%;background:var(--peacock);transition:width .8s cubic-bezier(.2,.7,.2,1)}
h3.mini{font-family:var(--body);font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.09em;margin:0 0 6px}
.hb{display:flex;align-items:center;gap:8px;min-width:170px}.hb .bar{position:relative;flex:1;height:8px;border-radius:4px;background:var(--line);overflow:visible}
.hb .bar i{display:block;height:100%;border-radius:4px;transition:width .8s cubic-bezier(.2,.7,.2,1)}
.hb .bar em{position:absolute;top:-3px;width:2px;height:14px;background:var(--ink);opacity:.55;border-radius:1px}
.hb .num{font-weight:700;min-width:36px;text-align:right}
.sigt td{white-space:normal;vertical-align:top}.sigt .sn{white-space:nowrap}.sigt .sd{font-size:12px;max-width:340px;margin-top:2px}
@media(max-width:700px){.sigt .sd{display:none}.sigt td{white-space:nowrap}.hb{min-width:120px}.smap{grid-template-columns:repeat(auto-fill,minmax(78px,1fr))}.rsbar{display:none}.rsl b{min-width:0}}
/* ---- indices ---- */
.grp{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.09em;padding:14px 14px 6px;background:var(--paper);border-bottom:1px solid var(--line)}
.irow.cmp .s{color:var(--peacock)}
.tk.link{cursor:pointer;transition:border-color .15s,transform .15s}.tk.link:hover{border-color:var(--accent);transform:translateY(-1px)}
.breadth{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--line)}
.breadth i{display:block;height:100%;transition:width .8s cubic-bezier(.2,.7,.2,1)}.breadth .u{background:var(--up)}.breadth .d{background:var(--down);margin-left:auto}
.smap .st{position:relative}.smap .st .nb{position:absolute;top:3px;right:4px;font-style:normal;font-size:9.5px;font-weight:800;background:var(--ink);color:var(--card);border-radius:8px;padding:0 5px;line-height:15px}
.tdot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;vertical-align:1px;background:var(--neutral)}.tdot.positive{background:var(--up)}.tdot.negative{background:var(--down)}
.hlc{max-width:380px;overflow:hidden;text-overflow:ellipsis;font-size:12.5px}
.others{display:flex;flex-wrap:wrap;gap:6px}.others a{font-family:var(--mono);font-size:12px;padding:3px 8px;border:1px solid var(--line);border-radius:6px;color:var(--ink2);text-decoration:none}.others a:hover{border-color:var(--peacock);color:var(--peacock)}
.rk{display:flex;align-items:center;gap:10px}.rkbar{position:relative;display:inline-block;width:140px;height:8px;background:var(--line);border-radius:4px}
.rkbar i{position:absolute;top:0;height:100%;border-radius:4px;transition:width .8s cubic-bezier(.2,.7,.2,1)}.rkbar::after{content:"";position:absolute;left:50%;top:-3px;width:1.5px;height:14px;background:var(--ink);opacity:.4}
.rk .num{min-width:64px;text-align:right}
button.tile{cursor:pointer;font:inherit;width:100%}
.badge.new{background:var(--accent);color:#1b1206;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{50%{opacity:.55}}
/* ---- news pop-ups ---- */
.bell{position:relative}.bell .bn{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--down);color:#fff;font-size:10.5px;font-weight:800;display:grid;place-items:center;font-family:var(--mono)}
.flash{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:70;display:flex;flex-direction:column;gap:10px;width:min(380px,calc(100vw - 24px));pointer-events:none}
.fcard,.fmore{pointer-events:auto}
.fcard{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--line);border-left:5px solid var(--neutral);border-radius:12px;padding:12px 34px 12px 14px;box-shadow:0 16px 40px -14px rgba(0,0,0,.45);cursor:pointer;animation:fin .45s cubic-bezier(.2,.8,.2,1) both}
.fcard.positive{border-left-color:var(--up)}.fcard.negative{border-left-color:var(--down)}
.fcard.out{animation:fout .3s ease forwards}
@keyframes fin{from{transform:translateX(110%);opacity:0}to{transform:none;opacity:1}}
@keyframes fout{to{transform:translateX(110%);opacity:0}}
.fcard .fx{position:absolute;top:8px;right:8px;border:0;background:none;color:var(--muted);font-size:13px;width:22px;height:22px;border-radius:6px}.fcard .fx:hover{background:var(--paper2)}
.ft{display:flex;align-items:center;gap:8px;font-size:12.5px;flex-wrap:wrap}
.fsym{font-family:var(--display);font-weight:800;font-size:15px;letter-spacing:-.01em;background:var(--ink);color:var(--card);padding:1px 8px;border-radius:6px}.fsym.sm{font-size:11.5px;background:var(--paper2);color:var(--ink2)}
.fnew{margin-left:auto;font-size:10px;font-weight:800;letter-spacing:.08em;color:var(--accent-ink);background:var(--accentbg);padding:1px 6px;border-radius:4px}
.fh{font-weight:600;font-size:14px;line-height:1.35;margin:7px 0 6px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.fm{font-size:11.5px;color:var(--muted);display:flex;align-items:center;flex-wrap:wrap;gap:2px}.fopen{margin-left:auto;color:var(--peacock);font-weight:700}
.fbar{position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--accent);opacity:.7;transform-origin:left;animation:fbar 14s linear forwards}
@keyframes fbar{to{transform:scaleX(0)}}
.fmore{border:0;background:var(--ink);color:var(--card);border-radius:10px;padding:10px 14px;font:inherit;font-weight:700;font-size:13px;animation:fin .45s cubic-bezier(.2,.8,.2,1) both;cursor:pointer}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(420px,100vw);background:var(--card);border-left:1px solid var(--line);box-shadow:-20px 0 50px -20px rgba(0,0,0,.4);z-index:80;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.drawer.open{transform:none}
.dh{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.dh b{font-family:var(--display);font-size:19px}
.dset{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);font-size:12.5px}
.dl{overflow:auto;flex:1}
.di{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:12px 16px;cursor:pointer;font:inherit;color:inherit}.di:hover{background:var(--paper2)}
.di .fh{font-size:13.5px;margin:6px 0 0;-webkit-line-clamp:2}
@media(max-width:600px){.flash{right:12px;left:12px;width:auto}.rkbar{width:70px}}
@media(prefers-reduced-motion:reduce){.fcard,.fmore,.drawer,.badge.new{animation:none;transition:none}}
@media(max-width:1480px){.brand small{display:none}nav.tabs button{padding:8px 9px;font-size:13.5px}.search input{width:150px}}
@media(max-width:1260px){nav.tabs button{padding:7px 7px;font-size:13px}.mast .in{gap:10px}}

/* ---- market-moving news ---- */
.live{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--down);margin-right:7px;vertical-align:1px;box-shadow:0 0 0 0 var(--down);animation:livep 1.8s infinite}
@keyframes livep{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--down) 60%,transparent)}70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
.mm{flex:1 0 400px;min-width:400px;max-width:560px;border:1px solid var(--line);border-radius:10px;background:var(--paper);padding:8px 12px;display:flex;flex-direction:column;justify-content:center;gap:4px;overflow:hidden}
.mmh{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);display:flex;align-items:center}
.mmdots{margin-left:auto;display:flex;gap:4px}.mmdots i{width:6px;height:6px;border-radius:50%;background:var(--line2);cursor:pointer}.mmdots i.on{background:var(--accent);width:14px;border-radius:3px}
.mmt{display:flex;flex-direction:column;align-items:stretch;gap:3px;border:0;background:none;padding:0;text-align:left;font:inherit;color:inherit;cursor:pointer;min-width:0;animation:fade .35s ease both}
.mmt .fsym{font-size:13px}.mmt .num{font-size:12.5px;white-space:nowrap}
.mmx{min-width:0;font-weight:600;font-size:13px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mmr1{display:flex;align-items:center;gap:8px}.mmr1 .mma{margin-left:auto}
.mma{font-size:11.5px;white-space:nowrap}
.mml{display:flex;flex-direction:column}
.mmr{display:flex;gap:10px;align-items:flex-start;text-align:left;border:0;border-bottom:1px solid var(--line);background:none;padding:10px 2px;font:inherit;color:inherit;cursor:pointer;width:100%}
.mmr:hover{background:var(--paper2)}.mmr:last-child{border-bottom:0}
.mrank{font-family:var(--display);font-weight:800;font-size:20px;color:var(--line2);min-width:22px;text-align:center;line-height:1.3}
.mmb{flex:1;min-width:0}.mmb .fh{margin:5px 0 4px;font-size:14px;-webkit-line-clamp:2}
.imp{display:flex;align-items:center;gap:8px;font-size:11.5px}.ib{width:70px;height:5px;border-radius:3px;background:var(--line);flex:none;overflow:hidden}.ib i{display:block;height:100%;background:var(--accent);transition:width .8s cubic-bezier(.2,.7,.2,1)}
@media(max-width:1100px){.band .in{flex-direction:column}.mm{flex:none;min-width:0;max-width:none}}
@media(prefers-reduced-motion:reduce){.live{animation:none}}

/* ---- second tape: near 52-week high / low ---- */
.tape2{background:color-mix(in srgb,var(--band) 88%,#1e3a3a);display:flex;align-items:stretch}
.tape2 .tlab{position:relative;z-index:3;flex:none;display:flex;flex-direction:column;justify-content:center;gap:1px;padding:3px 12px;background:var(--band);border-right:1px solid rgba(223,233,230,.15);font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.04em;white-space:nowrap}
.tape2 .tlab .u{color:#3fdc93}.tape2 .tlab .d{color:#ff7a6b}
.tape2::before{display:none}
.tape2 .track{flex:none}
.tape2 .track{animation-name:tape2}
.tape2 .it{padding:6px 16px;font-size:12px;text-decoration:none;align-items:center}
.tape2 .it .tag{font-size:9.5px;font-weight:800;letter-spacing:.06em;padding:1px 5px;border-radius:3px}
.tape2 .it .tag.u{background:rgba(63,220,147,.16);color:#3fdc93}.tape2 .it .tag.d{background:rgba(255,122,107,.16);color:#ff7a6b}
.tape2 .it .u{color:#3fdc93}.tape2 .it .d{color:#ff7a6b}
@keyframes tape2{from{transform:translateX(-50%)}to{transform:translateX(0)}}
@media(max-width:600px){.tape2 .tlab{padding:3px 8px;font-size:9px}}
@media (prefers-reduced-motion:reduce){.tape2 .track{animation:none}}
.tape2 .it .n50t{font-size:9px;font-weight:800;color:#7fd6d0;border:1px solid rgba(127,214,208,.45);border-radius:3px;padding:0 4px}

/* ---- F&O ---- */
.grid.g4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.bu .hd h2{font-size:15px}.bu .mv{padding:8px 0}
.hotfo{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:10px}
.fcardx{display:block;text-align:left;border:1px solid var(--line);border-left:4px solid var(--up);border-radius:12px;background:var(--paper);padding:12px 14px;font:inherit;color:inherit;cursor:pointer;transition:transform .15s,box-shadow .15s}
.fcardx:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.fcardx .chips2{display:flex;gap:5px;flex-wrap:wrap;margin:8px 0 2px}
.fcardx .fh{font-size:13.5px;-webkit-line-clamp:2;margin:6px 0}
.fcardx .fm{gap:12px}
/* ---- bubbles ---- */
.bmk{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:6px}
.bubwrap svg{display:block;width:100%;height:auto;max-height:520px}
.bub{cursor:pointer;transform-box:fill-box;transform-origin:center;animation:bubin .55s cubic-bezier(.2,.9,.3,1.3) both}
.bub:hover circle:first-of-type{stroke:var(--ink);stroke-width:2.5}
@keyframes bubin{from{transform:scale(.2);opacity:0}to{transform:none;opacity:1}}
.blegend{display:flex;flex-wrap:wrap;gap:14px;font-size:12px;color:var(--muted);margin-top:6px;align-items:center}
.blegend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px;vertical-align:-1px}
.nbdot{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--ink);color:var(--card);font-size:9.5px}
@media(max-width:1100px){.grid.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.grid.g4{grid-template-columns:1fr}.hotfo{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.bub{animation:none}}
@media(max-width:1480px){nav.tabs button{padding:8px 8px;font-size:13px}}

/* ---- screener (easy view) ---- */
.scr-top .bd{padding:14px 16px}
.sgrp{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:-4px 0 12px;overflow-x:auto;scrollbar-width:none}
.sgrp button{border:0;background:none;padding:8px 14px;font-weight:700;font-size:14px;color:var(--muted);border-bottom:3px solid transparent;white-space:nowrap}
.sgrp button.on{color:var(--ink);border-bottom-color:var(--accent)}
.chip.big{font-size:13.5px;padding:7px 14px}
.stools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:16px 0 12px}
.stools .field{flex:1;min-width:180px;max-width:320px}
.ssort{display:flex;align-items:center;gap:6px;font-size:13px}
.ssort select{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
.scount{margin-left:auto;font-size:14px}
.sgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:12px}
.scard{display:flex;flex-direction:column;gap:8px;text-align:left;border:1px solid var(--line);border-radius:14px;background:var(--card);padding:14px 16px;font:inherit;color:inherit;cursor:pointer;box-shadow:var(--shadow);transition:transform .15s,border-color .15s}
.scard:hover{transform:translateY(-2px);border-color:var(--accent)}
.sc1{display:flex;justify-content:space-between;gap:10px}.sc1 .sym{font-size:17px}
.scn{font-size:12.5px;color:var(--muted);margin-top:2px;max-width:170px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scp{text-align:right}.scp .num{font-size:14px;font-weight:600}.scp b{font-size:15px}
.sc2{display:flex;align-items:center;justify-content:space-between;gap:8px}.sc2 .spark{width:110px;height:32px}
.why{font-size:13px;font-weight:600;color:var(--peacock);background:var(--peacockbg);border-radius:7px;padding:5px 9px}
.sc3{display:grid;grid-template-columns:repeat(5,1fr);gap:4px;border-top:1px dashed var(--line2);padding-top:8px}
.sc3 span{display:flex;flex-direction:column;align-items:center}.sc3 em{font-style:normal;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.sc3 b{font-size:13px}
.stbl td{padding:9px 10px}
@media(max-width:600px){.stools .field{max-width:none;flex-basis:100%}.scount{margin-left:0}.sgrid{grid-template-columns:1fr}}

/* ---- circuits ---- */
.cbands{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.cbk{text-align:left;padding:14px 16px;cursor:pointer;font:inherit;color:inherit;border:1px solid var(--line);transition:border-color .15s,transform .15s}
.cbk:hover{transform:translateY(-1px)}.cbk.on{border-color:var(--accent);box-shadow:0 0 0 2px var(--accentbg)}
.cbk .l{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.cbk .v{display:flex;gap:14px;font-family:var(--mono);font-size:21px;font-weight:700;margin:4px 0 2px}
.ccard{text-decoration:none}.ccard.u{border-left:4px solid var(--up)}.ccard.d{border-left:4px solid var(--down)}
.ctags{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cband{font-size:11.5px;font-weight:800;letter-spacing:.04em;padding:3px 8px;border-radius:6px}.cband.u{background:var(--upbg);color:var(--up)}.cband.d{background:var(--downbg);color:var(--down)}
.sc3.c3{grid-template-columns:repeat(3,1fr)}
.ctog{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.ctog input{accent-color:var(--peacock);width:16px;height:16px}
@media(max-width:900px){.cbands{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.cbands{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---- bottom breaking-news ticker ---- */
body.bt-on{padding-bottom:46px}
.bticker{position:fixed;left:0;right:0;bottom:0;z-index:65;display:flex;align-items:stretch;height:44px;background:var(--band);color:var(--band-ink);border-top:2px solid var(--down);box-shadow:0 -8px 24px -12px rgba(0,0,0,.5);padding-bottom:env(safe-area-inset-bottom,0px)}
.bticker.min{left:auto;right:12px;bottom:12px;height:auto;border:0;border-radius:10px;background:transparent;box-shadow:none}
.bticker.min .btl,.bticker.min .btv{display:none}
.btl{flex:none;display:flex;align-items:center;gap:6px;padding:0 14px;background:var(--down);color:#fff;font-size:12px;letter-spacing:.06em;clip-path:polygon(0 0,100% 0,calc(100% - 10px) 100%,0 100%);padding-right:22px}
.btl b{font-family:var(--display);font-size:14px;letter-spacing:.08em}.btl span:last-child{opacity:.85;font-weight:600;text-transform:uppercase;font-size:10.5px}
.btl .live{background:#fff;box-shadow:none;animation:btblink 1.2s infinite}
@keyframes btblink{50%{opacity:.25}}
.btv{flex:1;overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent,#000 30px,#000 calc(100% - 30px),transparent)}
.btt{display:flex;align-items:center;width:max-content;height:100%;animation:tape linear infinite}
.btv:hover .btt{animation-play-state:paused}
.bti{display:flex;align-items:center;gap:8px;height:100%;padding:0 6px;border:0;background:none;color:inherit;font:inherit;cursor:pointer;white-space:nowrap}
.bti .fsym{font-size:12.5px;background:var(--band-ink);color:var(--band)}
.bti .num{font-size:12.5px}.bti .num.up{color:#3fdc93}.bti .num.down{color:#ff7a6b}
.bth{font-weight:600;font-size:14px}.bti:hover .bth{color:#f2a541;text-decoration:underline}
.bti.positive .bth::before{content:"● ";color:#3fdc93}.bti.negative .bth::before{content:"● ";color:#ff7a6b}
.bta{font-size:11.5px;color:var(--band-muted)}
.btnew{font-size:9.5px;font-weight:800;letter-spacing:.08em;background:#f2a541;color:#1b1206;border-radius:3px;padding:1px 5px;animation:pulse 1.4s ease-in-out infinite}
.btsep{font-style:normal;color:#f2a541;opacity:.6;margin:0 14px;font-size:10px}
.btx{flex:none;border:0;background:rgba(255,255,255,.08);color:var(--band-ink);padding:0 14px;font:inherit;font-weight:700;cursor:pointer}
.bticker.min .btx{background:var(--down);color:#fff;border-radius:10px;padding:9px 14px;box-shadow:var(--shadow)}
body.bt-on .flash{bottom:calc(58px + env(safe-area-inset-bottom,0px))}
body.bt-on .toast{bottom:calc(60px + env(safe-area-inset-bottom,0px))}
@media(max-width:600px){.btl span:last-child{display:none}.btl{padding:0 16px 0 10px}.bth{font-size:13px}}
@media(prefers-reduced-motion:reduce){.btt{animation:none}.btv{overflow-x:auto}}

/* ---- sources / first-to-report ---- */
.srcb{font-weight:600}.srcb.off{color:var(--peacock);background:var(--peacockbg);padding:0 6px;border-radius:4px}
.firstb{color:var(--accent-ink);background:var(--accentbg);font-weight:700;padding:0 6px;border-radius:4px}
.alsob{color:var(--muted)}
.dspeed{padding:10px 16px;border-bottom:1px solid var(--line);font-size:12.5px}
.dspeed div{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.dspeed div span{border:1px solid var(--line);border-radius:6px;padding:2px 8px}.dspeed div span.top{border-color:var(--accent);background:var(--accentbg)}
.dspeed em{font-style:normal;color:var(--muted);margin-left:5px;font-size:11.5px}

/* ---- options ---- */
.owarn{background:var(--warnbg);border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);border-left:5px solid var(--warn);border-radius:10px;padding:11px 14px;font-size:13.5px;color:var(--ink2);margin:0 0 16px}
.owarn.red{background:var(--downbg);border-color:color-mix(in srgb,var(--down) 40%,transparent);border-left-color:var(--down);margin-bottom:12px}
.oim{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.oim .l{font-size:11.5px;color:var(--muted)}.oim b{font-size:18px}.oim .s{font-size:11px;color:var(--muted)}
.orange{margin:26px 8px 6px}.orange .bar{position:relative;height:10px;border-radius:5px;background:var(--line)}
.orange .rng{position:absolute;top:0;height:100%;border-radius:5px;background:color-mix(in srgb,var(--s1) 35%,transparent)}
.orange em{position:absolute;top:13px;transform:translateX(-50%);font-style:normal;font-size:11px;font-family:var(--mono);white-space:nowrap}.orange .pw{color:var(--up)}.orange .cw{color:var(--down);top:-19px}
.orange .sp{position:absolute;top:-4px;width:4px;height:18px;border-radius:2px;background:var(--ink);transform:translateX(-50%)}
.oidx .sy{margin-top:10px;display:inline-block}
.oideas{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.oidea{border-left:4px solid var(--neutral)}.oidea.bullish{border-left-color:var(--up)}.oidea.bearish{border-left-color:var(--down)}
.oih{display:flex;align-items:center;gap:8px}.sy.big{font-family:var(--display);font-size:18px;font-weight:800;color:var(--ink);text-decoration:none}
.ostrat{font-weight:700;margin:6px 0}
.olegs{width:100%;font-size:13.5px;border-collapse:collapse;margin-bottom:6px}.olegs td{padding:3px 0}.olegs td:last-child{text-align:right}
.payoff{display:block;width:100%;height:auto;margin:4px 0 8px}
.okpi{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.okpi div{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:6px 9px}
.okpi em{display:block;font-style:normal;font-size:11px;color:var(--muted)}.okpi b{font-family:var(--mono);font-size:15px}.okpi small{display:block;font-size:10.5px;color:var(--muted)}
.popbar{height:6px;border-radius:3px;background:var(--line);margin:10px 0 8px;overflow:hidden}.popbar i{display:block;height:100%;background:var(--peacock);transition:width .8s}
.owhy{display:flex;flex-wrap:wrap;gap:5px}.owhy span{font-size:11.5px;background:var(--peacockbg);color:var(--peacock);border-radius:5px;padding:2px 7px;font-weight:600}
#osel{font:inherit;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
.ocsum{display:flex;flex-wrap:wrap;gap:8px 18px;font-size:13px;margin-bottom:10px}
.ochain th,.ochain td{text-align:center!important;padding:6px 8px}.ochain .cehd{color:var(--up)}.ochain .pehd{color:var(--down)}
.ochain .stk{background:var(--paper2);font-weight:700;position:relative;min-width:110px}.ochain td.itm{background:color-mix(in srgb,var(--accent) 9%,transparent)}
.ochain tr.atm td{border-top:2px solid var(--accent);border-bottom:2px solid var(--accent)}
.oib{position:relative}.oib span{position:absolute;top:3px;bottom:3px;opacity:.22;border-radius:3px}.oib span.ce{right:0;background:var(--up)}.oib span.pe{left:0;background:var(--down)}
.ot{display:block;font-style:normal;font-size:9.5px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.ot.cw{color:var(--down)}.ot.pw{color:var(--up)}.ot.mp{color:var(--accent-ink)}
.olot{border:1px solid color-mix(in srgb,var(--down) 35%,var(--line))}
@media(max-width:700px){.oim{grid-template-columns:repeat(2,1fr)}}

/* bottom bar: still, one headline at a time */
.btv.still{mask-image:none;display:flex;align-items:center;padding:0 12px;min-width:0}
.bti.one{width:100%;min-width:0;padding:0}
.bti.one .bth{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.bti.one.flash{animation:btfl 1.6s ease 1}
@keyframes btfl{0%,40%{background:rgba(242,165,65,.25)}100%{background:transparent}}
.btnav{flex:none;display:flex;align-items:center;gap:2px;padding:0 6px;border-left:1px solid rgba(223,233,230,.15)}
.btnav button{border:0;background:none;color:var(--band-ink);font-size:20px;line-height:1;width:30px;height:32px;border-radius:6px;cursor:pointer}.btnav button:hover{background:rgba(255,255,255,.1)}
.btnav span{font-size:11.5px;color:var(--band-muted);min-width:30px;text-align:center}
.bticker.min .btnav{display:none}
@media(max-width:600px){.bti.one .bta{display:none}.btnav span{display:none}}

/* bottom bar: gentle fade when it advances */
.bti.one{animation:btin .5s ease both}@keyframes btin{from{opacity:0}to{opacity:1}}
/* ---- options expert agent ---- */
.agent{border:1px solid color-mix(in srgb,var(--peacock) 40%,var(--line));margin-bottom:0}
.agent .hd{flex-wrap:wrap;gap:10px}.abot{font-size:20px}
.acfg{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px}.acfg input{width:120px;font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
.agent h3{font-family:var(--body);font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:16px 0 8px}
.agent h3:first-child{margin-top:0}
.aread p{margin:0 0 8px;font-size:14px;line-height:1.55}.averdict{background:var(--paper2);border-radius:8px;padding:8px 12px}
.apicks{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.apick{border:1px solid var(--line);border-left:4px solid var(--neutral);border-radius:12px;padding:12px 14px;background:var(--paper)}.apick.bullish{border-left-color:var(--up)}.apick.bearish{border-left-color:var(--down)}
.aph{display:flex;gap:10px;align-items:center}.anum{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--card);font-weight:800;flex:none}
.aph .sym{font-size:16px}
.asteps{margin:10px 0 6px;padding-left:18px;font-size:13.5px;line-height:1.5}.asteps li{margin-bottom:5px}
.aodds{font-size:12.5px;color:var(--ink2);border-top:1px dashed var(--line2);padding-top:6px}
.aavoid{margin:0;padding-left:18px;font-size:13.5px;line-height:1.55}
.adiscl{font-size:12px;color:var(--muted);margin:12px 0 0;border-top:1px solid var(--line);padding-top:10px}

/* ---- Kite ordering ---- */
.kbtn{display:inline-flex;align-items:center;gap:7px;border-color:#387ed1;color:#387ed1;font-weight:700}.kbtn:hover{background:#387ed1;color:#fff}
.kbtn.sell{border-color:#df514c;color:#df514c}.kbtn.sell:hover{background:#df514c;color:#fff}
.kbtn .kz{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:4px;background:#387ed1;color:#fff;font-size:11px;font-weight:900}
.kbtn.sell .kz{background:#df514c}
.apick .kbtn,.oidea .kbtn{margin-top:10px;width:100%;justify-content:center}
.kmodal{position:fixed;inset:0;z-index:90;background:rgba(8,16,18,.55);display:grid;place-items:center;padding:16px;animation:fade .2s}
.kbox{position:relative;background:var(--card);border-radius:16px;max-width:640px;width:100%;padding:22px;box-shadow:0 30px 80px -20px rgba(0,0,0,.6);max-height:90vh;overflow:auto}
.kbox h2{margin:0 0 12px;font-family:var(--display)}.kbox .fx{position:absolute;top:12px;right:12px;border:0;background:none;font-size:16px;color:var(--muted)}
.kord td,.kord th{padding:8px}
.knote{font-size:13.5px;margin:12px 0;background:var(--paper2);border-radius:8px;padding:8px 12px}
.kwarn{font-size:13px;color:var(--ink2);background:var(--warnbg);border-left:4px solid var(--warn);border-radius:8px;padding:9px 12px;margin:12px 0}
.kset{font-size:13.5px;background:var(--peacockbg);border-radius:8px;padding:10px 12px}
.kact{display:flex;justify-content:flex-end;gap:10px;margin-top:6px}
/* ---------- Pulse Agent (floating assistant) ---------- */
.flash{bottom:calc(132px + env(safe-area-inset-bottom,0px))}
#pa{position:fixed;right:18px;bottom:calc(58px + env(safe-area-inset-bottom,0px));z-index:75;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}
#pa>*{pointer-events:auto}
#pa [hidden]{display:none!important}
.pa-fab{position:relative;width:58px;height:58px;border-radius:50%;border:0;padding:0;background:var(--card);display:grid;place-items:center;box-shadow:0 10px 28px -8px rgba(11,110,114,.55),0 0 0 1px var(--line);cursor:pointer;transition:transform .18s}
.pa-fab svg{width:52px;height:52px}.pa-fab:hover{transform:scale(1.06)}
#pa.open .pa-fab{transform:scale(.9)}
.pa-fab.ping::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--peacock);animation:paping 1.8s ease-out infinite}
@keyframes paping{0%{opacity:.9;transform:scale(.95)}100%{opacity:0;transform:scale(1.35)}}
.pa-n{position:absolute;top:-3px;right:-3px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--down);color:#fff;font:800 11px/20px var(--mono);text-align:center;box-shadow:0 0 0 2px var(--card)}
.pa-bub{position:relative;width:min(360px,calc(100vw - 36px));background:var(--card);border:1px solid var(--line);border-radius:16px 16px 4px 16px;padding:12px 12px 10px;box-shadow:0 18px 44px -14px rgba(0,0,0,.45)}
.pa-bub.in{animation:fin .45s cubic-bezier(.2,.8,.2,1) both}
.pa-bh{display:flex;align-items:center;gap:7px;margin:0 22px 8px 0;font-size:13px}.pa-bh svg{width:22px;height:22px}.pa-bh .muted{margin-left:auto;font-size:11.5px}
.pa-bx{position:absolute;top:8px;right:8px;border:0;background:none;color:var(--muted);width:24px;height:24px;border-radius:6px;cursor:pointer}.pa-bx:hover{background:var(--paper2)}
.pa-next{width:100%;margin-top:8px;border:1px dashed var(--line2);background:none;color:var(--peacock);border-radius:8px;padding:6px;font-weight:700;cursor:pointer}
.pa-panel{width:min(410px,calc(100vw - 24px));height:min(620px,calc(100vh - 190px));background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 60px -18px rgba(0,0,0,.5);display:flex;flex-direction:column;overflow:hidden;animation:paup .28s cubic-bezier(.2,.8,.2,1) both;transform-origin:bottom right}
@keyframes paup{from{opacity:0;transform:translateY(16px) scale(.96)}to{opacity:1;transform:none}}
.pa-h{display:flex;align-items:center;gap:10px;padding:12px 12px 12px 14px;background:linear-gradient(120deg,#0b6e72,#138a7e 60%,#b8700e);color:#fff}
.pa-h svg{width:34px;height:34px;flex:none;filter:drop-shadow(0 2px 4px rgba(0,0,0,.25))}
.pa-h div{flex:1;display:flex;flex-direction:column;line-height:1.2}.pa-h b{font:800 16px var(--display)}.pa-h span{font-size:12px;opacity:.9}
.pa-ic{border:0;background:rgba(255,255,255,.16);color:#fff;width:30px;height:30px;border-radius:8px;cursor:pointer;font-size:14px}.pa-ic:hover{background:rgba(255,255,255,.28)}
.pa-setr{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line);font-size:12.5px;background:var(--paper)}
.pa-setr button,.pa-chips button{border:1px solid var(--line2);background:var(--card);color:var(--ink2);border-radius:999px;padding:5px 10px;font-size:12.5px;cursor:pointer;white-space:nowrap}
.pa-setr button.on{background:var(--peacock);border-color:var(--peacock);color:#fff}
.pa-chips button:hover,.pa-setr button:hover{border-color:var(--peacock);color:var(--peacock)}
.pa-body{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--paper);overscroll-behavior:contain}
.pa-m{max-width:94%;font-size:13.5px;line-height:1.45}
.pa-m.agent{align-self:flex-start}.pa-m.me{align-self:flex-end;background:var(--peacock);color:#fff;padding:7px 12px;border-radius:14px 14px 4px 14px}
.pa-m p{margin:6px 0}.pa-hi{font-weight:600}
.pa-stance{display:inline-block;margin-top:6px;padding:3px 10px;border-radius:999px;font-weight:700;font-size:12.5px;background:var(--neutralbg)}
.pa-stance.up,#paSt.up{color:var(--up)}.pa-stance.up{background:var(--upbg)}.pa-stance.down{background:var(--downbg);color:var(--down)}.pa-stance.warn{background:var(--warnbg);color:var(--warn)}
#paSt.up,#paSt.down,#paSt.warn{color:#fff}
.pa-card{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--neutral);border-radius:12px;padding:10px 12px;margin:6px 0}
.pa-card.positive{border-left-color:var(--up)}.pa-card.negative{border-left-color:var(--down)}
.pa-ct{display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap;font-size:14px;line-height:1.3}.pa-ct .muted{font-size:12px;align-self:center}
.pa-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:4px;font-size:12.5px}
.pa-card p{margin:6px 0 4px;color:var(--ink2);font-size:13px}
.pa-plan{display:grid;grid-template-columns:repeat(4,auto);gap:4px 10px;margin:8px 0 2px;padding:8px 10px;border-radius:8px;background:var(--paper2);font-size:12px}
.pa-plan span{display:flex;flex-direction:column;color:var(--muted)}.pa-plan b{font:700 13px var(--mono);color:var(--ink)}.pa-plan b.up{color:var(--up)}.pa-plan b.down{color:var(--down)}
.pa-why{margin:6px 0;padding-left:18px;font-size:12.5px;color:var(--ink2)}.pa-why li{margin:2px 0}
.pa-note{margin:6px 0;padding:6px 9px;border-radius:8px;background:var(--warnbg);color:var(--warn);font-size:12px}
.pa-size{margin:6px 0;padding:7px 9px;border-radius:8px;background:var(--peacockbg);font-size:12.5px;color:var(--ink2)}
.pa-act{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.pa-act button{border:1px solid var(--line2);background:var(--card);color:var(--peacock);border-radius:8px;padding:5px 10px;font-size:12.5px;font-weight:700;cursor:pointer}
.pa-act button:hover{border-color:var(--peacock)}.pa-act .kb{background:var(--up);border-color:var(--up);color:#fff}
.pa-row{display:flex;align-items:center;gap:8px;width:100%;margin:4px 0;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--card);cursor:pointer;font-size:13px;text-align:left;color:var(--ink)}
.pa-row span{flex:1;color:var(--muted);font-size:12px}.pa-row:hover{border-color:var(--peacock)}
.pa-claude{display:inline-block;margin-top:6px;font-size:12px;font-weight:700;color:var(--accent-ink);text-decoration:none}.pa-claude:hover{text-decoration:underline}
.pa-chips{display:flex;gap:6px;overflow-x:auto;padding:8px 10px;border-top:1px solid var(--line);background:var(--card);scrollbar-width:none}
.pa-in{display:flex;gap:6px;padding:0 10px 8px;background:var(--card)}
.pa-in input{flex:1;min-width:0;border:1px solid var(--line2);border-radius:999px;padding:9px 14px;font-size:14px;background:var(--paper);color:var(--ink)}
.pa-in input:focus{outline:2px solid var(--peacock);outline-offset:-1px}
.pa-in button{width:40px;border:0;border-radius:50%;background:var(--peacock);color:#fff;font-size:15px;cursor:pointer}
.pa-foot{padding:0 12px 8px;font-size:10.5px;color:var(--muted);background:var(--card)}
@media (max-width:640px){#pa{right:10px}.pa-fab{width:52px;height:52px}.pa-fab svg{width:46px;height:46px}.pa-panel{height:calc(100vh - 140px)}}
@media print{#pa{display:none}}
.pa-gauge{display:flex;align-items:center;gap:8px;margin:8px 0 4px}.pa-gbar{flex:1;height:8px;border-radius:4px;background:var(--paper2);overflow:hidden}
.pa-gbar i{display:block;height:100%;border-radius:4px;background:var(--accent)}.pa-gbar i.up{background:var(--up)}.pa-gbar i.down{background:var(--down)}
.pa-gauge>b{font:800 18px var(--mono)}.pa-gauge b.up{color:var(--up)}.pa-gauge b.down{color:var(--down)}.pa-gauge b.warn{color:var(--warn)}
.pa-pc{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0;font-size:12.5px}.pa-pc ul{margin:3px 0 0;padding-left:16px;color:var(--ink2)}.pa-pc li{margin:2px 0}
.pa-t{width:100%;border-collapse:collapse;margin:6px 0;font-size:12.5px}.pa-t td,.pa-t th{padding:4px 5px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.pa-t th{font-size:11.5px;color:var(--muted);font-weight:700}.pa-t .num{text-align:right;font-family:var(--mono);white-space:nowrap}.pa-t tr.on td{background:var(--peacockbg)}
.pa-t .up{color:var(--up)}.pa-t .down{color:var(--down)}.pa-t .warn{color:var(--warn)}
.pa-cmp td:first-child{color:var(--muted);white-space:nowrap}.pa-cmp th{text-align:right}.pa-cmp .sy{font-weight:800}
.pa-news{margin:6px 0;padding-left:4px;list-style:none;font-size:12.5px}.pa-news li{margin:6px 0;line-height:1.4}
.pa-fu{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}
.pa-fu button{border:1px solid var(--peacock);background:var(--peacockbg);color:var(--peacock);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700;cursor:pointer}
.pa-fu button:hover{background:var(--peacock);color:#fff}
.pa-ctx{font-size:11.5px;color:var(--muted);margin:0 0 4px}
.pa-live{display:inline-block;margin:0 0 6px;padding:3px 9px;border-radius:999px;background:var(--upbg);color:var(--ink2);font:600 11.5px var(--mono)}
.pa-live b.up{color:var(--up)}.pa-live b.down{color:var(--down)}.pa-live.off{background:var(--paper2);color:var(--muted)}
.pa-row em.pa-sc{font:800 12px var(--mono);font-style:normal;padding:2px 6px;border-radius:6px;background:var(--paper2)}.pa-sc.up{color:var(--up)}.pa-sc.down{color:var(--down)}.pa-sc.warn{color:var(--warn)}
.pa-typing{color:var(--muted);font-size:12.5px}.pa-typing span{display:inline-block;width:6px;height:6px;margin-right:3px;border-radius:50%;background:var(--peacock);animation:padot 1s infinite}
.pa-typing span:nth-child(2){animation-delay:.15s}.pa-typing span:nth-child(3){animation-delay:.3s}
@keyframes padot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.pa-mic{width:40px;flex:none;border:1px solid var(--line2);border-radius:50%;background:var(--card);font-size:16px;cursor:pointer}
.pa-mic.on{background:var(--down);border-color:var(--down);animation:paping2 1.2s infinite}
@keyframes paping2{0%{box-shadow:0 0 0 0 rgba(207,59,43,.5)}100%{box-shadow:0 0 0 10px rgba(207,59,43,0)}}
