/* ═══════════════════════════════════════════════════════════════
   v9 — BRIEFING REDESIGN + RIGHT RAIL + WORKSPACE DEEP-DIVE MODE
   ═══════════════════════════════════════════════════════════════ */

/* Semantic text aliases used throughout the v9 additions (base.css defines the
   palette but not these names): --ink = primary text, --ash = secondary text. */
:root{--ink:var(--snow);--ash:var(--cloud)}

/* ── Briefing layout — 3-track grid with a draggable resize handle ──
   columns: main (1fr) | handle (0.5rem) | rail (var). The user can drag the
   handle to grow either side, same affordance as the workspace.
   Higher max-width + stretched main + wider default rail so the layout
   actually USES the viewport instead of leaving black bands at the edges. */
.brief-grid{display:grid;grid-template-columns:minmax(0,1fr) 0.5rem var(--brief-rail-w,26rem);gap:1.5rem 1rem;max-width:none;margin:0;padding:0;align-items:start;width:100vw;margin-left:calc(50% - 50vw)}
.brief-main{min-width:0;justify-self:stretch;width:100%}
.brief-rail{position:sticky;top:4.625rem;height:calc(100vh - 5.625rem);display:flex;flex-direction:column;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);overflow:hidden}
/* The handle itself — sticky-aligned with the rail so it's always reachable. */
.brief-resize-handle{position:sticky;top:4.625rem;height:calc(100vh - 5.625rem);align-self:stretch;cursor:col-resize;touch-action:none;user-select:none;display:flex;align-items:center;justify-content:center}
.brief-resize-handle::before{content:'';width:0.125rem;height:2.5rem;background:var(--rim2);border-radius:0.125rem;transition:all .15s;opacity:.5}
.brief-resize-handle:hover::before,.brief-resize-handle.dragging::before{background:var(--green);opacity:1;box-shadow:0 0 0.5rem rgba(204,255,0,.4);height:3rem}
/* Keep the 2-col sticky layout down to ~1180px (MacBook 14" = 1512px CSS).
   Only collapse to single-column on truly narrow viewports (small tablets). */
@media(max-width:1180px){.brief-grid{grid-template-columns:1fr;padding:0 2rem}.brief-main{max-width:64rem;margin:0 auto;justify-self:center}.brief-rail{position:relative;top:auto;height:auto;max-height:40rem;margin-top:2rem}.brief-resize-handle{display:none}}
/* Mid-range (1180–1480px): start with a slightly narrower rail by default. */
@media(max-width:1480px){.brief-grid{grid-template-columns:minmax(0,1fr) 0.5rem var(--brief-rail-w,24rem);gap:1.5rem 0.75rem;padding:0;max-width:none;margin:0;width:100vw;margin-left:calc(50% - 50vw)}}

/* Override the outer .brief-page padding to play nice with the grid.
   zoom:0.95 scales the whole briefing 5% smaller so everything fits on-screen. */
.brief-page{padding:2.5rem 0 7.5rem;zoom:0.95}

/* ── Camp chips (analyst/trader/in-between) ── */
.camp-chip{display:inline-flex;align-items:center;gap:0.3125rem;padding:0.125rem 0.5rem;border-radius:0.1875rem;font-family:var(--fm);font-size:0.59375rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;flex-shrink:0}
.camp-chip.analyst{color:var(--blue);background:rgba(90,200,250,.08);border:0.0625rem solid rgba(90,200,250,.22)}
.camp-chip.trader{color:var(--gold);background:rgba(245,166,35,.08);border:0.0625rem solid rgba(245,166,35,.22)}
.camp-chip.between{color:var(--purple);background:rgba(155,89,182,.08);border:0.0625rem solid rgba(155,89,182,.22)}
.camp-chip.research{color:var(--gold);background:rgba(245,166,35,.08);border:0.0625rem solid rgba(245,166,35,.22)}
.camp-chip .dot{width:0.3125rem;height:0.3125rem;border-radius:50%;background:currentColor}

/* ── Achievement chips (accuracy, subs, badges) ── */
.ach-row{display:flex;flex-wrap:wrap;gap:0.25rem;margin-top:0.375rem;align-items:center}
.ach-chip{display:inline-flex;align-items:center;gap:0.25rem;padding:0.125rem 0.375rem;border-radius:0.1875rem;font-family:var(--fm);font-size:0.59375rem;font-weight:600;color:var(--fog);background:var(--bg3);border:0.0625rem solid var(--rim)}
.ach-chip.acc{color:var(--green);border-color:rgba(204,255,0,.2);background:var(--green-soft)}
.ach-chip.subs{color:var(--cloud)}
.ach-chip.badge{color:var(--gold);border-color:rgba(245,166,35,.2);background:rgba(245,166,35,.05)}
.ach-chip svg{width:0.5rem;height:0.5rem}

/* ── Section 1: Overnight in context ── */
.overnight-row{display:grid;grid-template-columns:auto 1fr auto auto;gap:1.125rem;align-items:center;padding:1.125rem 1.25rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);margin-bottom:0.625rem;transition:all .18s;cursor:pointer;position:relative;overflow:hidden}
.overnight-row:hover{border-color:rgba(204,255,0,.22);transform:translateY(-0.0625rem)}
.overnight-row::after{content:'↗';position:absolute;top:0.875rem;right:1rem;font-size:0.6875rem;color:var(--green);opacity:0;transition:opacity .18s;font-family:var(--fm)}
.overnight-row:hover::after{opacity:.9}
.ov-tk{display:flex;flex-direction:column;gap:0.1875rem;min-width:4.5rem}
.ov-tk-sym{font-family:var(--fm);font-size:0.9375rem;font-weight:700;color:var(--snow);letter-spacing:-.01em}
.ov-tk-co{font-size:0.65625rem;color:var(--fog);line-height:1.2}
.ov-quote{font-size:0.84375rem;color:var(--cloud);line-height:1.55;font-style:italic;min-width:0}
.ov-quote::before{content:'"';color:var(--fog);margin-right:0.125rem}
.ov-quote::after{content:'"';color:var(--fog);margin-left:0.125rem}
.ov-quote-meta{display:flex;align-items:center;gap:0.375rem;margin-top:0.375rem;font-style:normal;flex-wrap:wrap}
.ov-quote-meta .author{font-family:var(--fm);font-size:0.65625rem;color:var(--snow);font-weight:600}
.ov-deltas{display:flex;gap:0.75rem;flex-shrink:0}
.ov-delta{display:flex;flex-direction:column;gap:0.125rem;align-items:flex-end;min-width:3.375rem}
.ov-delta-lbl{font-family:var(--fm);font-size:0.53125rem;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.ov-delta-val{font-family:var(--fm);font-size:0.8125rem;font-weight:700;color:var(--cloud);line-height:1}
.ov-delta-val.up{color:var(--green)}
.ov-delta-val.down{color:var(--red)}
.ov-delta-val.flat{color:var(--fog)}
.ov-ctx{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);padding:0.25rem 0.625rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:6.25rem;flex-shrink:0;white-space:nowrap}
.ov-ctx.above{color:var(--green);border-color:rgba(204,255,0,.2);background:var(--green-soft)}
.ov-ctx.below{color:var(--red);border-color:rgba(255,80,0,.2);background:rgba(255,80,0,.04)}
@media(max-width:720px){.overnight-row{grid-template-columns:1fr;gap:0.625rem}.ov-deltas{gap:1rem}.ov-ctx{align-self:flex-start}}

/* ── Section 2: The room divides (3-col split) ── */
.room-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.625rem;margin-bottom:0.875rem;padding-bottom:0.75rem;border-bottom:0.0625rem solid var(--rim)}
.room-head-tk{display:flex;align-items:baseline;gap:0.625rem}
.room-head-tk-sym{font-family:var(--fm);font-size:1.125rem;font-weight:700;color:var(--snow)}
.room-head-tk-co{font-size:0.78125rem;color:var(--fog)}
.room-head-cycle{display:flex;align-items:center;gap:0.25rem;font-family:var(--fm);font-size:0.65625rem;color:var(--fog)}
.room-cycle-btn{width:1.375rem;height:1.375rem;border-radius:0.3125rem;background:var(--bg2);border:0.0625rem solid var(--rim);color:var(--fog);display:grid;place-items:center;cursor:pointer;transition:all .15s}
.room-cycle-btn:hover{border-color:rgba(204,255,0,.25);color:var(--green)}
.room-cycle-btn svg{width:0.625rem;height:0.625rem}
.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.625rem;margin-bottom:1.375rem}
@media(max-width:820px){.room-grid{grid-template-columns:1fr;gap:0.75rem}}
.room-col{padding:0.875rem 1rem 0.875rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r);display:flex;flex-direction:column;gap:0.625rem;position:relative}
.room-col.analyst{border-top:0.125rem solid var(--blue)}
.room-col.trader{border-top:0.125rem solid var(--gold)}
.room-col.investor,.room-col.between{border-top:0.125rem solid var(--purple)}
.room-col-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.125rem;gap:0.5rem}
.room-col-title{font-family:var(--fm);font-size:0.65625rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.room-col.analyst .room-col-title{color:var(--blue)}
.room-col.trader .room-col-title{color:var(--gold)}
.room-col.investor .room-col-title,.room-col.between .room-col-title{color:var(--purple)}
.room-col-stance{font-family:var(--fm);font-size:0.625rem;font-weight:700;padding:0.125rem 0.4375rem;border-radius:0.1875rem;letter-spacing:.04em;text-transform:uppercase}
.room-col-stance.bull{color:var(--green);background:var(--green-soft)}
.room-col-stance.bear{color:var(--red);background:rgba(255,80,0,.08)}
.room-col-stance.mixed{color:var(--gold);background:rgba(245,166,35,.08)}
.room-col-stance.neutral{color:var(--fog);background:var(--bg3)}
/* Per-column voice navigation (only shown when camp has 2+ voices) */
.room-col-nav{display:flex;align-items:center;gap:0.3125rem;padding:0.1875rem 0.375rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.3125rem;align-self:flex-start;font-family:var(--fm);font-size:0.625rem;font-weight:600;color:var(--cloud)}
.room-col-nav-btn{width:1.125rem;height:1.125rem;border-radius:0.1875rem;background:var(--bg2);border:0.0625rem solid var(--rim);color:var(--fog);display:grid;place-items:center;cursor:pointer;transition:all .15s}
.room-col-nav-btn:hover{color:var(--green);border-color:rgba(204,255,0,.3);background:var(--green-soft)}
.room-col-nav-btn svg{width:0.5625rem;height:0.5625rem}
.room-col-nav-pos{font-family:var(--fm);font-size:0.59375rem;color:var(--cloud);letter-spacing:.04em;min-width:1.5rem;text-align:center}
.room-col-nav[data-camp="analyst"]{border-color:rgba(90,200,250,.18)}
.room-col-nav[data-camp="trader"]{border-color:rgba(245,166,35,.18)}
.room-col-nav[data-camp="investor"]{border-color:rgba(155,89,182,.18)}
.room-quote{font-size:0.8125rem;color:var(--cloud);line-height:1.55;font-style:italic;flex:1}
.room-quote::before{content:'"';color:var(--fog)}
.room-quote::after{content:'"';color:var(--fog)}
.room-author{display:flex;align-items:center;gap:0.5rem;padding-top:0.625rem;border-top:0.0625rem solid var(--rim);margin-top:auto}
.room-author-av{width:1.625rem;height:1.625rem;border-radius:50%;background:var(--bg3);display:grid;place-items:center;font-family:var(--fm);font-size:0.59375rem;font-weight:700;color:var(--cloud);flex-shrink:0}
.room-author.analyst .room-author-av{background:rgba(90,200,250,.1);color:var(--blue)}
.room-author.trader .room-author-av{background:rgba(245,166,35,.1);color:var(--gold)}
.room-author.investor .room-author-av,.room-author.between .room-author-av{background:rgba(155,89,182,.1);color:var(--purple)}
.room-author-info{min-width:0;flex:1}
.room-author-name{font-size:0.75rem;font-weight:600;color:var(--snow);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-author-creds{display:flex;gap:0.25rem;flex-wrap:wrap;margin-top:0.1875rem}
.room-cred{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);padding:0.0625rem 0.3125rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.1875rem;font-weight:600;letter-spacing:.02em;display:inline-flex;align-items:baseline;gap:0.1875rem}
.room-cred.acc{color:var(--green);border-color:rgba(204,255,0,.2);background:var(--green-soft)}
/* Sub-label inside accuracy chip e.g. "94% fund-adj" or "61% raw P&L" */
.room-cred-sub{font-style:normal;font-size:0.53125rem;color:var(--fog);font-weight:500;letter-spacing:.04em;text-transform:lowercase}
.room-cred.acc .room-cred-sub{color:rgba(204,255,0,.55)}
/* Awards row — emoji badges with hover-revealed name */
.room-awards{display:flex;gap:0.25rem;margin-top:0.3125rem;flex-wrap:wrap}
.room-award{font-size:0.8125rem;line-height:1;padding:0.1875rem 0.3125rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.25rem;cursor:default;transition:all .15s;display:inline-flex;align-items:center;gap:0.25rem;max-width:2rem;overflow:hidden;white-space:nowrap}
.room-award:hover{border-color:rgba(245,166,35,.32);background:rgba(245,166,35,.06);max-width:12.5rem}
.room-award-name{font-family:var(--fb);font-size:0.625rem;font-weight:600;color:var(--gold);opacity:0;transition:opacity .15s;letter-spacing:.02em}
.room-award:hover .room-award-name{opacity:1}
.room-empty{font-size:0.75rem;color:var(--fog);font-style:italic;padding:0.75rem 0}

/* ── Section 3: Agree / Disagree ── */
.ad-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.875rem;margin-top:1.125rem}
@media(max-width:720px){.ad-grid{grid-template-columns:1fr}}
.ad-col{padding:1.125rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg)}
.ad-col-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.875rem}
.ad-col-title{font-family:var(--fm);font-size:0.65625rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.ad-col.agree .ad-col-title{color:var(--green)}
.ad-col.disagree .ad-col-title{color:var(--gold)}
.ad-col-count{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);font-weight:600}
.agree-list{display:flex;flex-direction:column;gap:0.5rem}
.agree-row{display:flex;align-items:center;gap:0.625rem;padding:0.625rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);cursor:pointer;transition:all .15s}
.agree-row:hover{border-color:rgba(204,255,0,.22);background:var(--bg3)}
.agree-tk{font-family:var(--fm);font-size:0.8125rem;font-weight:700;color:var(--snow);min-width:3.375rem}
.agree-meta{font-size:0.71875rem;color:var(--fog);flex:1;line-height:1.3}
.agree-meta b{color:var(--cloud);font-weight:500}
.agree-pill{font-family:var(--fm);font-size:0.59375rem;font-weight:700;color:var(--green);padding:0.125rem 0.4375rem;background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.18);border-radius:0.1875rem;flex-shrink:0;letter-spacing:.04em;text-transform:uppercase}
.disagree-list{display:flex;flex-direction:column;gap:0.75rem}
.disagree-row{padding:0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);cursor:pointer;transition:all .15s}
.disagree-row:hover{border-color:rgba(245,166,35,.22);background:var(--bg3)}
.disagree-top{display:flex;align-items:center;gap:0.625rem;margin-bottom:0.5rem}
.disagree-bars{display:flex;height:0.375rem;border-radius:0.125rem;overflow:hidden;background:var(--bg3);margin-bottom:0.375rem}
.dbar{height:100%}
.dbar.analyst{background:var(--blue)}
.dbar.trader{background:var(--gold)}
.dbar.between{background:var(--purple)}
.disagree-legend{display:flex;gap:0.625rem;font-family:var(--fm);font-size:0.59375rem;color:var(--fog);flex-wrap:wrap}
.disagree-legend span{display:inline-flex;align-items:center;gap:0.25rem}
.disagree-legend .ldot{width:0.4375rem;height:0.4375rem;border-radius:50%}
.disagree-legend .ldot.analyst{background:var(--blue)}
.disagree-legend .ldot.trader{background:var(--gold)}
.disagree-legend .ldot.between{background:var(--purple)}

/* ── Section 4: Tailwinds & Headwinds ── */
.theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.875rem;margin-top:1.125rem}
@media(max-width:820px){.theme-grid{grid-template-columns:1fr}}
.theme-col-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.75rem;padding-bottom:0.625rem;border-bottom:0.0625rem solid var(--rim)}
.theme-col-icon{width:1.375rem;height:1.375rem;border-radius:0.3125rem;display:grid;place-items:center;flex-shrink:0}
.theme-col-icon svg{width:0.6875rem;height:0.6875rem}
.theme-col.tail .theme-col-icon{background:rgba(46,229,213,.12);color:var(--teal)}
.theme-col.head .theme-col-icon{background:rgba(255,80,0,.12);color:var(--red)}
.theme-col-title{font-family:var(--fm);font-size:0.65625rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.theme-col.tail .theme-col-title{color:var(--teal)}
.theme-col.head .theme-col-title{color:var(--red)}
.theme-col-sub{font-family:var(--fm);font-size:0.625rem;color:var(--fog);margin-left:auto}
.theme-card{padding:0.9375rem 1.0625rem;background:linear-gradient(180deg,rgba(255,255,255,.014) 0%,rgba(255,255,255,0) 55%),var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r);margin-bottom:0.625rem;position:relative;overflow:hidden;transition:border-color .18s,transform .18s,box-shadow .18s,background .18s}
.theme-card::before{content:'';position:absolute;top:0;left:0.1875rem;right:0;height:0.0625rem;pointer-events:none;opacity:.55;transition:opacity .18s}
.theme-card.tail::before{background:linear-gradient(90deg,transparent 0%,rgba(46,229,213,.5) 50%,transparent 100%)}
.theme-card.head::before{background:linear-gradient(90deg,transparent 0%,rgba(255,80,0,.5)  50%,transparent 100%)}
.theme-card:hover{border-color:var(--rim2);transform:translateY(-0.0625rem);box-shadow:0 0.375rem 0.875rem rgba(0,0,0,.24)}
.theme-card.tail:hover{background:linear-gradient(180deg,rgba(46,229,213,.03) 0%,rgba(46,229,213,0) 60%),var(--bg1)}
.theme-card.head:hover{background:linear-gradient(180deg,rgba(255,80,0,.03) 0%,rgba(255,80,0,0)  60%),var(--bg1)}
.theme-card:hover::before{opacity:1}
.theme-card.tail{border-left:0.1875rem solid var(--teal)}
.theme-card.head{border-left:0.1875rem solid var(--red)}
.theme-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:0.5rem;margin-bottom:0.625rem}
.theme-card-title{font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);line-height:1.25;flex:1;letter-spacing:-.01em}
.theme-card-drift{font-family:var(--fm);font-size:0.59375rem;font-weight:700;padding:0.125rem 0.4375rem;border-radius:0.1875rem;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}
.theme-card-drift.new{color:var(--green);background:var(--green-soft)}
.theme-card-drift.growing{color:var(--teal);background:rgba(46,229,213,.08)}
.theme-card-drift.waning{color:var(--fog);background:var(--bg3)}
.theme-quotes{display:flex;flex-direction:column;gap:0.625rem;margin-bottom:0.75rem}
.theme-quote{font-size:0.78125rem;color:var(--cloud);line-height:1.55;font-style:italic;padding-left:0.625rem;border-left:0.125rem solid var(--rim2)}
.theme-quote-author{display:flex;align-items:center;gap:0.375rem;margin-top:0.25rem;font-style:normal;flex-wrap:wrap}
.theme-quote-author .name{font-family:var(--fm);font-size:0.625rem;color:var(--snow);font-weight:600}
.theme-tickers{display:flex;gap:0.375rem;flex-wrap:wrap;padding-top:0.625rem;border-top:0.0625rem solid var(--rim)}
.theme-tk-chip{font-family:var(--fm);font-size:0.65625rem;font-weight:700;padding:0.1875rem 0.5625rem;border-radius:0.25rem;background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.15);cursor:pointer;transition:all .15s}
.theme-tk-chip:hover{background:var(--green-dim);border-color:rgba(204,255,0,.4)}
.theme-tk-chip.neg{background:rgba(255,80,0,.06);color:var(--red);border-color:rgba(255,80,0,.18)}
.theme-tk-chip.neg:hover{background:rgba(255,80,0,.12)}

/* Section 4 · two-tab nav · Tickers vs Market view */
.theme-nav{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-top:1.125rem;padding:0.3125rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);position:relative}
.theme-nav-btn{display:grid;grid-template-columns:auto 1fr;grid-template-areas:'icon lbl' 'icon sub';align-items:center;column-gap:0.6875rem;row-gap:0.0625rem;padding:0.625rem 0.875rem;background:transparent;border:0.0625rem solid transparent;border-radius:0.4375rem;cursor:pointer;text-align:left;font:inherit;color:inherit;transition:all .18s;position:relative}
.theme-nav-btn:hover{background:var(--bg3)}
.theme-nav-btn.active{background:var(--bg1);border-color:var(--rim2);box-shadow:0 0.125rem 0.5rem rgba(0,0,0,.18)}
.theme-nav-icon{grid-area:icon;width:1.875rem;height:1.875rem;border-radius:0.4375rem;display:grid;place-items:center;background:var(--bg3);border:0.0625rem solid var(--rim);color:var(--fog);transition:all .18s}
.theme-nav-icon svg{width:0.9375rem;height:0.9375rem}
.theme-nav-btn.active .theme-nav-icon{color:var(--green);background:var(--green-soft);border-color:rgba(204,255,0,.28);box-shadow:0 0 0.625rem rgba(204,255,0,.18) inset}
.theme-nav-lbl{grid-area:lbl;font-family:var(--fm);font-size:0.75rem;font-weight:700;color:var(--cloud);letter-spacing:.02em;line-height:1.1}
.theme-nav-btn.active .theme-nav-lbl{color:var(--snow)}
.theme-nav-sub{grid-area:sub;font-family:var(--fb);font-size:0.625rem;color:var(--fog);line-height:1.3}
.theme-view[hidden]{display:none}
@media(max-width:560px){.theme-nav{grid-template-columns:1fr}}

/* ── Right rail ── */
/* Rail · top tabs — softer typography, gradient accent on active.
   The active state used to use a hard green underline; replaced with a
   gradient fill from the top so the eye reads it as a soft selection. */
.rail-tabs{display:flex;flex-shrink:0;border-bottom:0.0625rem solid var(--rim);background:linear-gradient(180deg,rgba(255,255,255,.015),transparent)}
.rail-tab{flex:1;padding:0.875rem 0.5rem 0.8125rem;font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;border-bottom:0.125rem solid transparent;margin-bottom:-0.0625rem;transition:all .18s;cursor:pointer;white-space:nowrap;background:transparent}
.rail-tab:hover{color:var(--cloud)}
.rail-tab.active{color:var(--snow);border-color:var(--green);background:linear-gradient(180deg,rgba(204,255,0,.05),transparent 70%)}

/* Rail · header (title + toggles) — more breathing room, soft top wash. */
.rail-head{padding:1rem 1.125rem 0.9375rem;flex-shrink:0;border-bottom:0.0625rem solid var(--rim);background:linear-gradient(180deg,rgba(204,255,0,.012),transparent)}
.rail-head-title{font-family:var(--fd);font-size:1.0625rem;font-weight:800;color:var(--snow);margin:0;letter-spacing:-.005em;display:flex;align-items:center;gap:0.4375rem;line-height:1.2}
.rail-head-title::before{content:'';width:0.4375rem;height:0.4375rem;border-radius:50%;background:var(--green);box-shadow:0 0 0.5rem rgba(204,255,0,.55);flex-shrink:0}
/* Primary toggle row: timeframe (24h / 7d / 30d) — segmented control */
.rail-tf-toggle{display:flex;gap:0.1875rem;padding:0.1875rem;background:var(--bg3);border-radius:0.4375rem;border:0.0625rem solid var(--rim);margin-top:0.75rem}
.rail-tf-chip{flex:1;padding:0.375rem 0.375rem;font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;border-radius:0.25rem;cursor:pointer;transition:all .15s;text-align:center;border:none;background:transparent}
.rail-tf-chip:hover{color:var(--cloud)}
.rail-tf-chip.active{background:var(--bg1);color:var(--green);box-shadow:0 0.0625rem 0.1875rem rgba(0,0,0,.5),0 0 0 0.0625rem rgba(204,255,0,.18)}
/* Secondary toggle row: camp filter (All / Analysts / Investors / Traders) */
.rail-camp-toggle{display:flex;gap:0.3125rem;margin-top:0.5625rem}
.rail-camp-chip{flex:1;padding:0.3125rem 0.25rem;font-family:var(--fm);font-size:0.5625rem;font-weight:700;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;border-radius:0.25rem;cursor:pointer;transition:all .15s;text-align:center;border:0.0625rem solid var(--rim);background:transparent;white-space:nowrap}
.rail-camp-chip:hover{color:var(--cloud);border-color:var(--rim2);background:var(--bg2)}
.rail-camp-chip.active{color:var(--snow);border-color:var(--rim3);background:var(--bg2)}
/* Camp-specific accent when that camp filter is active */
.rail-camp-chip[data-camp="analyst"].active{color:var(--blue);border-color:rgba(90,200,250,.4);background:rgba(90,200,250,.06)}
.rail-camp-chip[data-camp="trader"].active{color:var(--gold);border-color:rgba(245,166,35,.4);background:rgba(245,166,35,.06)}
.rail-camp-chip[data-camp="investor"].active{color:var(--cloud);border-color:var(--rim3);background:var(--bg2)}
.rail-body{flex:1;overflow-y:auto;padding:0.625rem 0.6875rem 0.875rem}
.rail-body::-webkit-scrollbar{width:0.25rem}

/* Rail card — polished tile with expandable drilldown.
   Surface: rank · sym · co · stance·count · fundamentals · sparkline · chev.
   Drill: full quote stack with creator profile, click any quote → workspace.
   Always-visible soft background so each tile reads as a unit; hover lifts. */
.rail-card{display:block;padding:0;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);margin-bottom:0.4375rem;transition:all .18s;position:relative;overflow:hidden}
.rail-card:hover{background:var(--bg3);border-color:var(--rim2);transform:translateY(-0.03125rem)}
.rail-card[open]{background:var(--bg3);border-color:var(--rim2);box-shadow:0 0.125rem 0.5rem rgba(0,0,0,.18)}
.rail-card[open]:hover{transform:none}
.rail-card-surface{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto auto auto;align-items:center;gap:0.625rem;padding:0.6875rem 0.8125rem;cursor:pointer;list-style:none;outline:none}
.rail-card-surface::-webkit-details-marker{display:none}
.rail-rank{font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--fog);text-align:center;padding:0.1875rem 0.375rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:0.25rem;min-width:1.625rem;letter-spacing:.02em}
.rail-card[open] .rail-rank,
.rail-card:hover  .rail-rank{border-color:var(--rim2)}
.rail-card:nth-child(-n+3) .rail-rank{color:var(--green);background:var(--green-soft);border-color:rgba(204,255,0,.22)}
.rail-card-tk{display:flex;flex-direction:column;gap:0.0625rem;min-width:0}
.rail-card-sym{font-family:var(--fm);font-size:0.9375rem;font-weight:700;color:var(--snow);letter-spacing:-.005em;line-height:1.1}
.rail-card-co{font-size:0.6875rem;color:var(--fog);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25}
.rail-card-meta{display:flex;align-items:center;gap:0.375rem;font-family:var(--fm);font-size:0.6875rem;color:var(--fog);white-space:nowrap}

/* Fundamentals chip — score out of 10. Surface stays minimal: just the
   number + /10. The drilldown re-states "Fundamentals" with the breakdown.
   Three tiers: green ≥7.5 (strong), gold 5.0–7.4 (mixed), red ≤4.9 (weak). */
.rail-card-fund{display:inline-flex;align-items:baseline;justify-content:center;gap:0.0625rem;padding:0.3125rem 0.5rem;border-radius:0.3125rem;background:var(--bg3);border:0.0625rem solid var(--rim);font-family:var(--fm);line-height:1;flex-shrink:0;cursor:help;min-width:2.5rem}
.rail-card-fund .fund-score{font-size:0.9375rem;font-weight:700;color:var(--cloud);letter-spacing:-.01em}
.rail-card-fund.high{background:var(--green-soft);border-color:rgba(204,255,0,.28)}
.rail-card-fund.high .fund-score{color:var(--green)}
.rail-card-fund.mid {background:rgba(245,166,35,.07);border-color:rgba(245,166,35,.25)}
.rail-card-fund.mid  .fund-score{color:var(--gold)}
.rail-card-fund.low {background:rgba(255,80,0,.06);border-color:rgba(255,80,0,.22)}
.rail-card-fund.low  .fund-score{color:var(--red)}

.rail-card-chev{color:var(--fog);font-size:0.6875rem;transition:transform .2s ease;line-height:1}
.rail-card[open] .rail-card-chev{transform:rotate(180deg);color:var(--cloud)}

/* Drilldown — appears when <details> is open */
.rail-card-drill{padding:0.625rem 0.875rem 0.875rem;border-top:0.0625rem dashed var(--rim);display:flex;flex-direction:column;gap:0.6875rem;animation:railDrillIn .2s ease both}
@keyframes railDrillIn{from{opacity:0;transform:translateY(-0.25rem)}to{opacity:1;transform:none}}

/* Drilldown · fundamentals row */
.drill-fund{display:grid;grid-template-columns:5rem 1fr;gap:0.625rem;align-items:center}
.drill-fund-bar{height:0.375rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:6.25rem;overflow:hidden;position:relative}
.drill-fund-fill{display:block;height:100%;width:var(--p,0%);background:linear-gradient(90deg,var(--mist),var(--cloud));border-radius:6.25rem;transition:width .3s ease}
.drill-fund-fill.high{background:linear-gradient(90deg,rgba(204,255,0,.6),var(--green))}
.drill-fund-fill.mid {background:linear-gradient(90deg,rgba(245,166,35,.55),var(--gold))}
.drill-fund-fill.low {background:linear-gradient(90deg,rgba(255,80,0,.55),var(--red))}
.drill-fund-text{font-size:0.6875rem;color:var(--cloud);line-height:1.45}
.drill-fund-text b{color:var(--snow);font-weight:700}

/* Drilldown · quotes section */
.drill-quotes-head{display:flex;align-items:baseline;justify-content:space-between;font-family:var(--fm);font-size:0.5625rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;padding-top:0.25rem;border-top:0.0625rem dashed var(--rim);margin-top:0.0625rem}
.drill-quotes-lbl{color:var(--cloud)}
.drill-quotes-count{color:var(--fog);font-weight:600;letter-spacing:.04em}
.drill-quotes{display:flex;flex-direction:column;gap:0.375rem}
.drill-no-quotes{font-size:0.6875rem;color:var(--fog);font-style:italic;padding:0.5rem 0}

/* Each quote is a button — click to open creator's reasoning in workspace */
.drill-quote{display:flex;flex-direction:column;align-items:flex-start;gap:0.3125rem;width:100%;padding:0.5625rem 0.6875rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);cursor:pointer;text-align:left;font-family:inherit;color:inherit;transition:all .15s;border-left:0.125rem solid var(--mist)}
.drill-quote:hover{background:var(--bg2);border-color:var(--rim2);border-left-color:var(--cloud)}
.drill-quote.bull   {border-left-color:var(--green)}
.drill-quote.bear   {border-left-color:var(--red)}
.drill-quote.neutral{border-left-color:var(--mist)}
.drill-quote.mixed  {border-left-color:var(--gold)}
.drill-quote-head{display:flex;align-items:center;gap:0.375rem;font-family:var(--fm);font-size:0.5625rem;flex-wrap:wrap;width:100%}
.drill-stance{font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0.0625rem 0.3125rem;border-radius:0.1875rem;font-size:0.5rem}
.drill-quote.bull    .drill-stance{color:var(--green);background:var(--green-soft)}
.drill-quote.bear    .drill-stance{color:var(--red);  background:rgba(255,80,0,.08)}
.drill-quote.neutral .drill-stance{color:var(--fog);  background:var(--bg3)}
.drill-quote.mixed   .drill-stance{color:var(--gold); background:rgba(245,166,35,.08)}
.drill-name{font-size:0.6875rem;color:var(--snow);font-weight:600;letter-spacing:.01em}
.drill-type{font-size:0.5rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0.0625rem 0.3125rem;border-radius:0.1875rem;background:var(--bg3);color:var(--fog);border:0.0625rem solid var(--rim)}
.drill-type.analyst {color:var(--blue);  border-color:rgba(90,200,250,.32)}
.drill-type.investor{color:var(--cloud); border-color:var(--rim2)}
.drill-type.trader  {color:var(--gold);  border-color:rgba(245,166,35,.32)}
.drill-type.between {color:var(--cloud); border-color:var(--rim2)}
.drill-type.research{color:var(--gold);  border-color:rgba(245,166,35,.4);background:rgba(245,166,35,.05)}
.drill-acc{font-size:0.5625rem;color:var(--fog);margin-left:auto;font-weight:600}
.drill-acc b{color:var(--green);font-weight:700}
.drill-ach{display:flex;flex-wrap:wrap;gap:0.25rem}
.drill-ach-pill{font-family:var(--fm);font-size:0.5rem;color:var(--fog);background:transparent;border:0.0625rem solid var(--rim);border-radius:6.25rem;padding:0.0625rem 0.3125rem;letter-spacing:.04em;font-weight:600}
.drill-quote-text{font-size:0.71875rem;color:var(--cloud);line-height:1.5;font-style:italic}
.drill-quote-cta{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;font-weight:700;margin-top:0.125rem;opacity:.6;transition:opacity .15s}
.drill-quote:hover .drill-quote-cta{color:var(--green);opacity:1}

/* Drilldown footer — open the whole ticker in workspace */
.drill-ticker-cta{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0.625rem;padding:0.625rem 0.75rem;background:linear-gradient(135deg,rgba(204,255,0,.05),rgba(204,255,0,.015));border:0.0625rem solid rgba(204,255,0,.22);border-radius:var(--r-sm);cursor:pointer;font-family:inherit;color:inherit;transition:all .15s;margin-top:0.0625rem}
.drill-ticker-cta:hover{background:linear-gradient(135deg,rgba(204,255,0,.1),rgba(204,255,0,.04));border-color:rgba(204,255,0,.4)}
.drill-ticker-cta > span:first-child{font-family:var(--fb);font-size:0.78125rem;color:var(--snow);font-weight:600;grid-row:1;grid-column:1;letter-spacing:.01em}
.drill-ticker-cta > span:first-child b{font-family:var(--fm);color:var(--green);font-weight:700;letter-spacing:-.01em}
.drill-ticker-cta-sub{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em;grid-row:2;grid-column:1;line-height:1.3;margin-top:0.0625rem}
.drill-ticker-cta-arrow{font-family:var(--fm);font-size:1.0625rem;color:var(--green);grid-row:1/-1;grid-column:2;align-self:center;line-height:1;transition:transform .15s}
.drill-ticker-cta:hover .drill-ticker-cta-arrow{transform:translateX(0.1875rem)}

/* "Back to briefing" pill — appears at top of workspace when arrived from briefing */
.ws-back-to-briefing{position:absolute;top:0.875rem;left:0.875rem;z-index:5;display:inline-flex;align-items:center;gap:0.4375rem;padding:0.4375rem 0.75rem 0.4375rem 0.625rem;background:rgba(245,166,35,.08);border:0.0625rem solid rgba(245,166,35,.32);border-radius:6.25rem;color:var(--gold);font-family:var(--fm);font-size:0.65625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all .15s;backdrop-filter:blur(0.5rem)}
.ws-back-to-briefing:hover{background:rgba(245,166,35,.14);border-color:rgba(245,166,35,.5);color:var(--snow);transform:translateX(-0.125rem)}
.ws-back-to-briefing svg{width:0.75rem;height:0.75rem}
.rail-card-meta .stance{font-weight:700;text-transform:uppercase;letter-spacing:.04em;font-size:0.59375rem}
.rail-card-meta .stance.bull{color:var(--green)}
.rail-card-meta .stance.bear{color:var(--red)}
.rail-card-meta .stance.mixed{color:var(--gold)}
.rail-card-meta .stance.neutral{color:var(--fog)}
.rail-card-meta .sep{width:0.125rem;height:0.125rem;border-radius:50%;background:var(--mist);display:inline-block}
.rail-card-meta b{color:var(--snow);font-weight:700}
.rail-spark{width:3.25rem;height:1.375rem;flex-shrink:0}
.rail-spark path.line{fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.rail-spark path.line.up{stroke:var(--green)}
.rail-spark path.line.down{stroke:var(--red)}
.rail-spark path.line.flat{stroke:var(--fog)}
.rail-spark path.area{opacity:.18}
.rail-spark path.area.up{fill:var(--green)}
.rail-spark path.area.down{fill:var(--red)}
.rail-spark path.area.flat{fill:var(--fog)}
/* Empty state when a camp filter has no matching tickers */
.rail-empty{padding:1.5rem 1rem;font-family:var(--fb);font-size:0.8125rem;color:var(--fog);text-align:center;line-height:1.5;font-style:italic}

/* Insights tab content */
.rail-insight-block{padding:0.875rem 0.875rem 0.625rem;border-bottom:0.0625rem solid var(--rim)}
.rail-insight-title{font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;margin-bottom:0.625rem;display:flex;align-items:center;justify-content:space-between}
.rail-insight-title-right{font-family:var(--fm);font-size:0.59375rem;color:var(--mist);font-weight:600}
.dispersion-list{display:flex;flex-direction:column;gap:0.5rem}
.dispersion-row{display:grid;grid-template-columns:auto 1fr;gap:0.5rem;align-items:center}
.dispersion-tk{font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--snow);min-width:2.875rem}
.dispersion-bar{height:0.875rem;border-radius:0.125rem;background:var(--bg3);display:flex;overflow:hidden;position:relative}
.dispersion-seg{height:100%;transition:width .3s ease}
.dispersion-seg.bull{background:var(--green)}
.dispersion-seg.mixed{background:var(--gold)}
.dispersion-seg.bear{background:var(--red)}
.dispersion-row .dispersion-bar::after{content:attr(data-split);position:absolute;inset:0;display:grid;place-items:center;font-family:var(--fm);font-size:0.5625rem;color:#000;font-weight:700;letter-spacing:.02em;text-shadow:0 0 0.0625rem rgba(255,255,255,.2);pointer-events:none}
.matrix-grid{display:grid;grid-template-columns:3.75rem repeat(3,1fr);gap:0.25rem;font-family:var(--fm);font-size:0.59375rem}
.matrix-head{color:var(--fog);font-weight:700;padding:0.25rem 0.125rem;text-align:center;letter-spacing:.06em;text-transform:uppercase}
.matrix-head:first-child{text-align:left}
.matrix-theme{color:var(--cloud);padding:0.5rem 0.125rem;font-weight:600;display:flex;align-items:center}
.matrix-cell{height:1.625rem;border-radius:0.1875rem;display:grid;place-items:center;font-weight:700;color:var(--snow);font-size:0.625rem}
.matrix-cell.lo{background:rgba(138,138,138,.12);color:var(--fog)}
.matrix-cell.md{background:rgba(245,166,35,.14);color:var(--gold)}
.matrix-cell.hi{background:rgba(204,255,0,.2);color:var(--green);box-shadow:inset 0 0 0 0.0625rem rgba(204,255,0,.15)}

/* ── Workspace mode toggle ── */
.ws-mode-toggle{display:flex;gap:0.125rem;padding:0.125rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.375rem;margin-left:auto;flex-shrink:0}
.ws-mode-btn{padding:0.3125rem 0.625rem;font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--fog);letter-spacing:.04em;text-transform:uppercase;border-radius:0.25rem;cursor:pointer;border:none;background:transparent;transition:all .15s}
.ws-mode-btn:hover{color:var(--cloud)}
.ws-mode-btn.active{background:var(--bg1);color:var(--snow)}

/* Swap content by workspace mode */
.workspace[data-mode="research"] .ws-mode-creator,
.workspace[data-mode="creator"] .ws-mode-research{display:none !important}

.ws-tf-toggle{display:flex;align-items:center;gap:0.125rem;padding:0.125rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.375rem}
.ws-tf-lbl{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:0 0.5rem 0 0.25rem}
.ws-tf-btn{padding:0.3125rem 0.625rem;font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--fog);letter-spacing:.04em;text-transform:uppercase;border-radius:0.25rem;cursor:pointer;border:none;background:transparent;transition:all .15s}
.ws-tf-btn:hover{color:var(--cloud)}
.ws-tf-btn.active{background:var(--bg1);color:var(--green)}

/* ── Creator mode (left + middle) ── */
.creator-mode-intro{padding:0.875rem 1rem;border-bottom:0.0625rem solid var(--rim);background:linear-gradient(180deg,rgba(90,200,250,.04),transparent 85%)}
.creator-mode-intro-title{font-family:var(--fd);font-size:0.8125rem;font-weight:800;color:var(--snow);margin-bottom:0.25rem;display:flex;align-items:baseline;gap:0.5rem;flex-wrap:wrap}
.creator-mode-tf{font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--blue);background:rgba(90,200,250,.08);border:0.0625rem solid rgba(90,200,250,.22);padding:0.125rem 0.375rem;border-radius:0.1875rem;letter-spacing:.04em;text-transform:lowercase}
.creator-mode-intro-body{font-size:0.75rem;color:var(--fog);line-height:1.45}

.creator-rank-list{list-style:none;padding:0.5rem;margin:0;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:0.125rem}
.creator-rank-row{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:0.625rem;padding:0.5rem 0.625rem;border-radius:var(--r-sm);cursor:pointer;transition:background .15s;border:0.0625rem solid transparent}
.creator-rank-row:hover{background:var(--bg2);border-color:var(--rim)}
.creator-rank{font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--fog);min-width:1.125rem;text-align:center}
.creator-rank-row:nth-child(-n+3) .creator-rank{color:var(--green)}
.creator-rank-av{width:1.875rem;height:1.875rem;border-radius:50%;background:linear-gradient(135deg,var(--bg3),var(--bg4));border:0.0625rem solid var(--rim2);display:grid;place-items:center;font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--cloud);flex-shrink:0;letter-spacing:-.01em}
.creator-rank-info{min-width:0}
.creator-rank-name{font-size:0.78125rem;font-weight:600;color:var(--snow);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.creator-rank-meta{font-family:var(--fm);font-size:0.625rem;color:var(--fog);margin-top:0.125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.creator-rank-acc{font-family:var(--fm);font-size:0.8125rem;font-weight:700;color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.2);padding:0.1875rem 0.4375rem;border-radius:0.25rem;flex-shrink:0}

.creator-mode-hero{padding:1.25rem 1.5rem 1.125rem;border-bottom:0.0625rem solid var(--rim);display:flex;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;background:linear-gradient(180deg,rgba(90,200,250,.04),transparent 85%)}
.creator-mode-hero-left{flex:1;min-width:17.5rem}
.creator-mode-hero-eyebrow{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:0.5rem}
.creator-mode-hero-tf{color:var(--blue)}
.creator-mode-hero-title{font-family:var(--fd);font-size:1.375rem;font-weight:800;color:var(--snow);line-height:1.2;letter-spacing:-.01em;margin-bottom:0.5rem}
.creator-mode-hero-body{font-size:0.84375rem;color:var(--cloud);line-height:1.55;max-width:35rem}
.creator-mode-hero-body b{color:var(--snow);font-weight:600}
.creator-mode-hero-stats{display:flex;gap:1.5rem;flex-shrink:0}
.creator-stat{display:flex;flex-direction:column;gap:0.125rem;align-items:flex-end}
.creator-stat-lbl{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.creator-stat-val{font-family:var(--fm);font-size:1.375rem;font-weight:700;color:var(--snow);line-height:1}

/* ── Ticker deep-dive: middle panel content ── */
.td-middle{display:flex;flex-direction:column;min-height:0;flex:1}
.td-hero{padding:1.125rem 1.375rem;border-bottom:0.0625rem solid var(--rim);background:linear-gradient(180deg,rgba(204,255,0,.04),transparent 85%)}
.td-hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:0.875rem;margin-bottom:0.875rem}
.td-hero-left{display:flex;align-items:center;gap:0.875rem}
.td-hero-logo{width:2.75rem;height:2.75rem;border-radius:0.625rem;background:var(--bg3);border:0.0625rem solid var(--rim2);display:grid;place-items:center;font-family:var(--fd);font-weight:900;color:var(--snow);font-size:0.9375rem;flex-shrink:0}
.td-hero-sym{font-family:var(--fd);font-size:1.75rem;font-weight:900;color:var(--snow);line-height:1;letter-spacing:-.02em}
.td-hero-co{font-size:0.78125rem;color:var(--fog);margin-top:0.25rem}
.td-hero-stats{display:flex;gap:1.125rem;flex-shrink:0;margin-left:auto}
.td-stat{display:flex;flex-direction:column;gap:0.125rem;align-items:flex-end;min-width:3.5rem}
.td-stat-lbl{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.td-stat-val{font-family:var(--fm);font-size:1.125rem;font-weight:800;color:var(--snow);line-height:1}
.td-stat-val.pct.bull{color:var(--green)}
.td-stat-val.pct.bear{color:var(--red)}
.td-stat-val.pct.mixed{color:var(--gold)}
.td-stance-row{display:flex;align-items:center;gap:0.625rem;flex-wrap:wrap}
.td-stance-bar{flex:1;display:flex;height:0.625rem;border-radius:0.125rem;overflow:hidden;background:var(--bg3);min-width:10rem}
.td-stance-bar .seg{height:100%}
.td-stance-bar .seg.bull{background:var(--green)}
.td-stance-bar .seg.mixed{background:var(--gold)}
.td-stance-bar .seg.bear{background:var(--red)}
.td-stance-legend{display:flex;gap:0.625rem;font-family:var(--fm);font-size:0.625rem;color:var(--fog);flex-wrap:wrap}
.td-stance-legend span{display:inline-flex;align-items:center;gap:0.25rem}
.td-stance-legend .dot{width:0.4375rem;height:0.4375rem;border-radius:50%}
.td-stance-legend .dot.bull{background:var(--green)}
.td-stance-legend .dot.mixed{background:var(--gold)}
.td-stance-legend .dot.bear{background:var(--red)}

.td-scroll{flex:1;overflow-y:auto;padding:0.25rem 0 1.125rem}
.td-block{padding:1.125rem 1.375rem;border-bottom:0.0625rem solid var(--rim)}
.td-block:last-child{border-bottom:none}
.td-block-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.625rem;gap:0.625rem}
.td-block-title{font-family:var(--fd);font-size:0.875rem;font-weight:800;color:var(--snow);letter-spacing:-.005em;display:flex;align-items:center;gap:0.4375rem}
.td-block-title .num{width:1rem;height:1rem;border-radius:0.1875rem;background:var(--green-soft);color:var(--green);font-family:var(--fm);font-size:0.5625rem;font-weight:800;display:grid;place-items:center}
.td-block-count{font-family:var(--fm);font-size:0.65625rem;color:var(--fog)}
.td-bullets{display:flex;flex-direction:column;gap:0.5rem}
.td-bullet{padding:0.625rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);font-size:0.8125rem;color:var(--cloud);line-height:1.55;display:flex;gap:0.625rem}
.td-bullet::before{content:'';width:0.1875rem;align-self:stretch;background:var(--rim2);border-radius:0.125rem;flex-shrink:0}
.td-bullet.agree::before{background:var(--green)}
.td-bullet.disagree::before{background:var(--gold)}
.td-bullet.risk::before{background:var(--red)}
.td-bullet-body{flex:1;min-width:0}
.td-bullet-body em{color:var(--snow);font-style:normal;font-weight:500}
.td-bullet-tag{font-family:var(--fm);font-size:0.59375rem;font-weight:700;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;padding:0.125rem 0.375rem;border-radius:0.1875rem;background:var(--bg3);margin-right:0.375rem;vertical-align:0.0625rem}
.td-bullet-tag.near{color:var(--green);background:var(--green-soft)}
.td-bullet-tag.mid{color:var(--gold);background:rgba(245,166,35,.08)}
.td-bullet-tag.long{color:var(--blue);background:rgba(90,200,250,.08)}

.td-pt-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.5rem}
@media(max-width:640px){.td-pt-row{grid-template-columns:1fr}}
.td-pt-cell{padding:0.75rem 0.875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);text-align:center}
.td-pt-lbl{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:0.25rem}
.td-pt-val{font-family:var(--fm);font-size:1.125rem;font-weight:800;color:var(--snow);line-height:1}
.td-pt-val.bull{color:var(--green)}
.td-pt-val.bear{color:var(--red)}
.td-pt-range{font-family:var(--fm);font-size:0.625rem;color:var(--fog);margin-top:0.1875rem}

/* ── Deep-dive left panel: creators filtered with expand ── */
.td-left-intro{padding:0.75rem 1rem 0.625rem;border-bottom:0.0625rem solid var(--rim);background:var(--bg2)}
.td-left-intro-title{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.12em;text-transform:uppercase;font-weight:700;margin-bottom:0.25rem}
.td-left-intro-body{font-size:0.75rem;color:var(--cloud);line-height:1.45}
.td-left-intro-body b{color:var(--snow)}
.td-creator{margin:0.375rem 0;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);overflow:hidden;transition:border-color .15s}
.td-creator:hover{border-color:var(--rim2)}
.td-creator-top{display:grid;grid-template-columns:auto 1fr auto;gap:0.625rem;align-items:center;padding:0.625rem 0.75rem;cursor:pointer}
.td-creator-av{width:1.75rem;height:1.75rem;border-radius:50%;background:var(--bg3);display:grid;place-items:center;font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--cloud);flex-shrink:0}
.td-creator-av.analyst{background:rgba(90,200,250,.1);color:var(--blue)}
.td-creator-av.trader{background:rgba(245,166,35,.1);color:var(--gold)}
.td-creator-av.between{background:rgba(155,89,182,.1);color:var(--purple)}
.td-creator-info{min-width:0}
.td-creator-name{font-size:0.78125rem;font-weight:600;color:var(--snow);line-height:1.2;display:flex;align-items:center;gap:0.375rem}
.td-creator-meta{display:flex;gap:0.3125rem;margin-top:0.1875rem;flex-wrap:wrap;align-items:center}
.td-stance-pill{font-family:var(--fm);font-size:0.5625rem;font-weight:700;padding:0.0625rem 0.375rem;border-radius:0.125rem;letter-spacing:.04em;text-transform:uppercase}
.td-stance-pill.bull{color:var(--green);background:var(--green-soft)}
.td-stance-pill.bear{color:var(--red);background:rgba(255,80,0,.08)}
.td-stance-pill.neutral{color:var(--fog);background:var(--bg3)}
.td-creator-caret{color:var(--fog);transition:transform .2s;flex-shrink:0}
.td-creator-caret svg{width:0.75rem;height:0.75rem}
.td-creator.open .td-creator-caret{transform:rotate(180deg);color:var(--green)}
.td-creator-body{max-height:0;overflow:hidden;transition:max-height .3s ease;background:var(--bg1)}
.td-creator.open .td-creator-body{max-height:75rem;border-top:0.0625rem solid var(--rim)}
.td-creator-quote{padding:0.625rem 0.75rem 0.5rem;font-size:0.71875rem;color:var(--cloud);line-height:1.5;font-style:italic;border-left:0.125rem solid var(--green);margin:0.625rem 0.75rem 0;background:var(--bg2);border-radius:0 var(--r-sm) var(--r-sm) 0}
.td-creator-field{padding:0.5rem 0.75rem}
.td-creator-field-lbl{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:0.25rem}
.td-creator-field-val{font-size:0.71875rem;color:var(--cloud);line-height:1.5}
.td-creator-field-val b{color:var(--snow);font-weight:600}
.td-creator-profile-btn{margin:0.375rem 0.75rem 0.75rem;padding:0.4375rem 0.625rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);font-family:var(--fm);font-size:0.65625rem;font-weight:700;color:var(--green);cursor:pointer;display:flex;align-items:center;justify-content:center;gap:0.3125rem;transition:all .15s;width:calc(100% - 1.5rem)}
.td-creator-profile-btn:hover{border-color:rgba(204,255,0,.3);background:var(--green-soft)}
.td-creator-profile-btn svg{width:0.625rem;height:0.625rem}
.td-left-filter-summary{padding:0.625rem 0.75rem;background:var(--bg3);margin:0.5rem 0.5rem;border-radius:var(--r-sm);border:0.0625rem dashed var(--rim2)}
.td-left-filter-summary-row{display:flex;align-items:center;gap:0.5rem;font-size:0.6875rem;color:var(--fog)}
.td-left-filter-summary-row b{color:var(--cloud)}

/* ═══════════════════════════════════════════════════════════════
   Top-10 most-discussed cards (replaces the old .overnight-row)
   ═══════════════════════════════════════════════════════════════ */
/* Volatility-key inline strong tags in the section sub */
.vk-trader{color:var(--gold)}
.vk-investor{color:var(--cloud)}
.vk-analyst{color:var(--blue)}
.vk-fund{color:var(--green)}

.tm-card{position:relative;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);padding:1.375rem 1.5rem 1.25rem;margin-bottom:0.875rem;cursor:pointer;transition:border-color .18s,transform .18s;display:flex;flex-direction:column;gap:1.125rem}
.tm-card:hover{border-color:rgba(204,255,0,.22);transform:translateY(-0.0625rem)}
.tm-card::after{content:'Open in workspace ↗';position:absolute;top:0.875rem;right:1.125rem;font-family:var(--fm);font-size:0.6875rem;color:var(--green);opacity:0;transition:opacity .18s;font-weight:600;pointer-events:none}
.tm-card:hover::after{opacity:.85}

.tm-rank{position:absolute;top:0.875rem;left:0.875rem;font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--fog);background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.25rem;padding:0.1875rem 0.4375rem;letter-spacing:.04em}

/* Header: ticker + price + cls + quick-nav */
.tm-head{display:grid;grid-template-columns:auto auto 1fr auto;gap:1.5rem;align-items:start;padding-left:2.625rem}
.tm-id{display:flex;flex-direction:column;gap:0.1875rem}
.tm-sym{font-family:var(--fm);font-size:1.375rem;font-weight:700;color:var(--snow);letter-spacing:-.01em;line-height:1}
.tm-co{font-size:0.75rem;color:var(--fog);line-height:1.2}

.tm-price{display:flex;flex-direction:column;gap:0.1875rem;align-items:flex-start;border-left:0.0625rem solid var(--rim);padding-left:1.125rem}
.tm-price-val{font-family:var(--fm);font-size:1.125rem;font-weight:700;color:var(--cloud);line-height:1}
.tm-price-delta{font-family:var(--fm);font-size:0.71875rem;font-weight:600;line-height:1}
.tm-price-delta.up{color:var(--green)}
.tm-price-delta.down{color:var(--red)}
.tm-price-delta.flat{color:var(--fog)}

.tm-cls{display:flex;flex-direction:column;gap:0.1875rem;min-width:0;border-left:0.0625rem solid var(--rim);padding-left:1.125rem}
.tm-industry{font-size:0.8125rem;color:var(--cloud);font-weight:500;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-sector{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.04em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.tm-quick{display:flex;gap:0.375rem;flex-shrink:0}
.tm-nav-btn{padding:0.375rem 0.6875rem;font-family:var(--fm);font-size:0.65625rem;font-weight:700;color:var(--fog);background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);cursor:pointer;transition:all .15s;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.tm-nav-btn:hover{color:var(--green);border-color:rgba(204,255,0,.3);background:var(--green-soft)}

/* 4-pillar sentiment shift grid */
.tm-shifts{display:grid;grid-template-columns:repeat(4,1fr);gap:0.0625rem;background:var(--rim);border:0.0625rem solid var(--rim);border-radius:var(--r);overflow:hidden;position:relative}
.tm-shifts::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(245,166,35,.04) 0%,rgba(212,212,212,.02) 33%,rgba(90,200,250,.03) 66%,rgba(204,255,0,.04) 100%);pointer-events:none;z-index:0}
.tm-shift{position:relative;z-index:1;background:var(--bg2);padding:0.75rem 0.875rem 0.6875rem;display:flex;flex-direction:column;gap:0.375rem;min-width:0}
.tm-shift-head{display:flex;flex-direction:column;gap:0.0625rem}
.tm-shift-label{font-family:var(--fm);font-size:0.625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.2}
.tm-shift.trader .tm-shift-label{color:var(--gold)}
.tm-shift.investor .tm-shift-label{color:var(--cloud)}
.tm-shift.analyst .tm-shift-label{color:var(--blue)}
.tm-shift.fundamentals .tm-shift-label{color:var(--green)}
.tm-shift-window{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.04em}
.tm-shift-val{font-family:var(--fm);font-size:1.25rem;font-weight:700;line-height:1;letter-spacing:-.01em}
.tm-shift-val.up{color:var(--green)}
.tm-shift-val.down{color:var(--red)}
.tm-shift-val.flat{color:var(--fog)}
.tm-shift-score{font-family:var(--fm);font-size:1.25rem;font-weight:700;color:var(--snow);line-height:1;display:flex;align-items:baseline;gap:0.375rem}
.tm-shift-trend{font-size:0.875rem}
.tm-shift-trend.up{color:var(--green)}
.tm-shift-trend.down{color:var(--red)}
.tm-shift-trend.flat{color:var(--fog)}
.tm-shift-bar{height:0.1875rem;background:var(--bg3);border-radius:0.125rem;overflow:hidden;margin-top:0.125rem}
.tm-shift-fill{display:block;height:100%;border-radius:0.125rem}
.tm-shift-fill.up{background:var(--green)}
.tm-shift-fill.down{background:var(--red)}
.tm-shift-fill.flat{background:var(--mist)}
.tm-shift-fill.score{background:linear-gradient(90deg,var(--green),#E6FF33)}
.tm-shift-note{font-size:0.71875rem;color:var(--fog);line-height:1.35}

/* Voice section with timeframe tabs */
.tm-voice{background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);padding:0.875rem 1rem}
.tm-voice-tabs{display:flex;align-items:center;gap:0.375rem;margin-bottom:0.75rem;flex-wrap:wrap}
.tm-voice-label{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-right:0.25rem}
.tm-voice-tab{padding:0.25rem 0.625rem;font-family:var(--fm);font-size:0.6875rem;font-weight:600;color:var(--fog);background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:6.25rem;cursor:pointer;transition:all .15s;letter-spacing:.02em}
.tm-voice-tab:hover{color:var(--cloud);border-color:var(--rim2)}
.tm-voice-tab.active{color:#000;background:var(--green);border-color:var(--green)}
.tm-voice-body{display:flex;gap:0.875rem;align-items:flex-start}
.tm-voice-body[hidden]{display:none}
.tm-voice-avatar{width:2.375rem;height:2.375rem;border-radius:50%;background:linear-gradient(135deg,var(--bg3),var(--bg4));border:0.0625rem solid var(--rim2);display:grid;place-items:center;font-family:var(--fm);font-size:0.75rem;font-weight:700;color:var(--cloud);flex-shrink:0;letter-spacing:-.01em}
.tm-voice-content{flex:1;min-width:0}
.tm-voice-quote{font-size:0.90625rem;color:var(--cloud);line-height:1.55;font-style:italic;margin-bottom:0.5rem}
.tm-voice-meta{display:flex;align-items:center;gap:0.375rem;flex-wrap:wrap}
.tm-voice-meta .author{font-family:var(--fm);font-size:0.71875rem;color:var(--snow);font-weight:600}

/* Show-more / collapse button + hidden list */
.tm-more-btn{width:100%;padding:1rem 1.25rem;background:var(--bg2);border:0.09375rem solid var(--rim2);border-radius:var(--r);font-family:var(--fm);font-size:0.8125rem;font-weight:700;color:var(--cloud);letter-spacing:.04em;cursor:pointer;transition:border-color .15s,color .15s,background .15s;display:flex;align-items:center;justify-content:center;gap:0.625rem;margin-top:0.625rem;position:relative}
.tm-more-btn:hover{border-color:rgba(204,255,0,.4);color:var(--green);background:var(--green-soft)}
.tm-more-btn .tm-more-chev{transition:transform .25s ease;flex-shrink:0;color:var(--green)}
.tm-more-btn.expanded .tm-more-chev{transform:rotate(180deg)}
.tm-more-btn .tm-more-label{font-weight:700}
.tm-more-btn .tm-more-hint{font-family:var(--fm);font-size:0.625rem;font-weight:500;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;margin-left:0.375rem;border-left:0.0625rem solid var(--rim);padding-left:0.625rem}
.tm-more-btn:hover .tm-more-hint{color:var(--cloud)}
.tm-more-list{margin-top:0.875rem;display:flex;flex-direction:column;gap:0}
.tm-more-list[hidden]{display:none}
.tm-more-btn-collapse{margin-top:1.5rem;padding:1.125rem 1.375rem;border:0.09375rem solid rgba(204,255,0,.32);background:var(--green-soft);color:var(--green);position:relative}
.tm-more-btn-collapse::before{content:'';position:absolute;left:0;right:0;top:-0.75rem;height:0.0625rem;background:linear-gradient(90deg,transparent,var(--rim2) 20%,var(--rim2) 80%,transparent)}
.tm-more-btn-collapse:hover{background:var(--green-dim);border-color:rgba(204,255,0,.5);color:var(--green)}
.tm-more-btn-collapse .tm-more-chev{color:var(--green);transform:rotate(180deg)}
.tm-more-btn-collapse .tm-more-hint{border-left-color:rgba(204,255,0,.2);color:var(--green)}

/* Responsive: collapse to 2x2 grid below 56.25rem and stacked head below 720 */
@media(max-width:980px){
  .tm-shifts{grid-template-columns:repeat(2,1fr)}
  .tm-head{grid-template-columns:auto auto 1fr;gap:1.125rem}
  .tm-quick{grid-column:1 / -1;justify-content:flex-start;margin-top:0.25rem}
}
@media(max-width:720px){
  .tm-head{grid-template-columns:1fr;padding-left:0}
  .tm-rank{position:static;align-self:flex-start;margin-bottom:0.375rem}
  .tm-price,.tm-cls{border-left:none;padding-left:0}
}

/* ═══════════════════════════════════════════════════════════════
   Section 3 v2 — 4-tab panel (Tickers · Market · Lead · Originate)
   ═══════════════════════════════════════════════════════════════ */
/* Tab nav */
.agree-tabs{display:flex;gap:0.25rem;margin-bottom:1.125rem;border-bottom:0.0625rem solid var(--rim);flex-wrap:wrap}
.agree-tab{display:flex;align-items:baseline;gap:0.5rem;padding:0.625rem 1rem;background:transparent;border:none;border-bottom:0.125rem solid transparent;margin-bottom:-0.0625rem;font-family:var(--fb);font-size:0.84375rem;font-weight:600;color:var(--fog);cursor:pointer;transition:all .15s}
.agree-tab:hover{color:var(--cloud)}
.agree-tab.active{color:var(--snow);border-bottom-color:var(--blue)}
.agree-tab-num{font-family:var(--fm);font-size:0.59375rem;font-weight:700;color:var(--mist);letter-spacing:.06em}
.agree-tab.active .agree-tab-num{color:var(--blue)}
.agree-tab-label{letter-spacing:-.005em}

/* Panels */
.agree-panel{animation:panelIn .2s ease both}
.agree-panel[hidden]{display:none}
@keyframes panelIn{from{opacity:0;transform:translateY(0.125rem)}to{opacity:1;transform:none}}
.panel-intro{font-size:0.875rem;color:var(--cloud);line-height:1.55;margin-bottom:1.125rem;max-width:55rem}
.panel-intro em{color:var(--snow);font-style:italic}

/* Reveal-more button (used by ad-extra blocks) */
.ad-more-btn{margin-top:0.625rem;padding:0.625rem 0.875rem;width:100%;background:var(--bg2);border:0.0625rem dashed var(--rim2);border-radius:var(--r-sm);font-family:var(--fm);font-size:0.71875rem;font-weight:700;color:var(--cloud);letter-spacing:.04em;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;gap:0.5rem}
.ad-more-btn:hover{color:var(--green);border-color:rgba(204,255,0,.3);background:var(--green-soft)}
.ad-more-btn .ad-more-chev{transition:transform .2s;color:var(--green)}
.ad-more-btn.expanded .ad-more-chev{transform:rotate(180deg)}
.ad-extra[hidden]{display:none}

/* ── Panel 1 enhancements (re-use existing ad-grid) ── */
.agree-pill.agree-bull{color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.2)}
.agree-pill.agree-bear{color:var(--red);background:rgba(255,80,0,.08);border:0.0625rem solid rgba(255,80,0,.22)}
.agree-pill.agree-neutral{color:var(--fog);background:var(--bg3);border:0.0625rem solid var(--rim)}
.dbar.investor{background:var(--purple);opacity:.7}
.ldot.investor{background:var(--purple)}

/* ── Panel 2: Market ── */
.market-direction{padding:1rem 1.125rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r);margin-bottom:1.125rem;position:relative;overflow:hidden}
.market-direction::before{content:'';position:absolute;top:0;left:0;right:0;height:0.0625rem;background:linear-gradient(90deg,transparent,rgba(90,200,250,.4),transparent)}
.market-direction-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:0.625rem;flex-wrap:wrap;gap:0.5rem}
.market-direction-lbl{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.market-direction-voices{font-family:var(--fm);font-size:0.65625rem;color:var(--cloud);font-weight:600}
.market-direction-vals{display:flex;gap:2rem;margin-bottom:0.625rem;flex-wrap:wrap}
.md-val{display:flex;flex-direction:column;gap:0.125rem;min-width:5rem}
.md-val-lbl{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.md-val-num{font-family:var(--fm);font-size:1.375rem;font-weight:700;color:var(--cloud);line-height:1}
.md-val-num.up{color:var(--green)}
.md-val-num.down{color:var(--red)}
.md-val-num.emphasis{color:var(--snow);text-shadow:0 0 0.75rem rgba(204,255,0,.18)}
.market-direction-summary{font-size:0.84375rem;color:var(--cloud);line-height:1.55;margin:0;max-width:48.75rem}

.market-block{margin-bottom:1.375rem}
.market-block-head{margin-bottom:0.625rem}
.market-block-title{font-family:var(--fd);font-size:1.125rem;font-weight:800;color:var(--snow);margin-bottom:0.125rem;letter-spacing:-.005em}
.market-block-sub{font-size:0.78125rem;color:var(--fog);line-height:1.4}

.sec-chip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13.75rem,1fr));gap:0.5rem}
.sec-chip{padding:0.625rem 0.75rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);transition:border-color .15s}
.sec-chip:hover{border-color:var(--rim2)}
.sec-chip.bull{border-left:0.1875rem solid var(--green)}
.sec-chip.bear{border-left:0.1875rem solid var(--red)}
.sec-chip.mixed{border-left:0.1875rem solid var(--gold)}
.sec-chip.neutral{border-left:0.1875rem solid var(--mist)}
.sec-chip-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:0.375rem;gap:0.5rem}
.sec-chip-name{font-size:0.78125rem;font-weight:600;color:var(--cloud);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sec-chip-pct{font-family:var(--fm);font-size:0.8125rem;font-weight:700;color:var(--snow);flex-shrink:0}
.sec-chip-bar{height:0.1875rem;background:var(--bg3);border-radius:0.125rem;overflow:hidden;margin-bottom:0.375rem}
.sec-chip-fill{display:block;height:100%;border-radius:0.125rem}
.sec-chip-fill.bull{background:var(--green)}
.sec-chip-fill.bear{background:var(--red)}
.sec-chip-fill.mixed{background:var(--gold)}
.sec-chip-fill.neutral{background:var(--mist)}
.sec-chip-foot{display:flex;justify-content:space-between;font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.02em;gap:0.5rem}
.sec-chip-blurb{color:var(--cloud);text-align:right}

.theme-list{display:flex;flex-direction:column;gap:0.5rem}
.theme-row{padding:0.75rem 1rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);transition:border-color .15s}
.theme-row.bull{border-left:0.1875rem solid var(--green)}
.theme-row.bear{border-left:0.1875rem solid var(--red)}
.theme-row.split{border-left:0.1875rem solid var(--gold)}
.theme-row.neutral{border-left:0.1875rem solid var(--mist)}
.theme-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.25rem;gap:0.5rem}
.theme-name{font-size:0.875rem;font-weight:600;color:var(--snow);letter-spacing:-.005em}
.theme-stance{font-family:var(--fm);font-size:0.625rem;font-weight:700;padding:0.125rem 0.4375rem;border-radius:0.1875rem;letter-spacing:.06em;text-transform:uppercase}
.theme-stance.bull{color:var(--green);background:var(--green-soft)}
.theme-stance.bear{color:var(--red);background:rgba(255,80,0,.08)}
.theme-stance.split{color:var(--gold);background:rgba(245,166,35,.08)}
.theme-stance.neutral{color:var(--fog);background:var(--bg3)}
.theme-meta{font-family:var(--fm);font-size:0.6875rem;color:var(--cloud);margin-bottom:0.25rem}
.theme-meta b{color:var(--snow);font-weight:700}
.theme-blurb{font-size:0.8125rem;color:var(--cloud);line-height:1.5}

/* ── Panel 3: Smart-money lead ── */
.sml-list{display:flex;flex-direction:column;gap:0.875rem}
.sml-card{padding:1.125rem 1.25rem 0.875rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);cursor:pointer;transition:border-color .18s,transform .18s;position:relative}
.sml-card:hover{border-color:rgba(90,200,250,.3);transform:translateY(-0.0625rem)}
.sml-card::after{content:'Open in workspace ↗';position:absolute;top:0.875rem;right:1.125rem;font-family:var(--fm);font-size:0.6875rem;color:var(--blue);opacity:0;transition:opacity .18s;font-weight:600;pointer-events:none}
.sml-card:hover::after{opacity:.85}
.sml-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:0.875rem;gap:0.75rem}
.sml-id{display:flex;align-items:baseline;gap:0.625rem;min-width:0}
.sml-sym{font-family:var(--fm);font-size:1.25rem;font-weight:700;color:var(--snow);letter-spacing:-.01em}
.sml-co{font-size:0.8125rem;color:var(--fog)}
.sml-weeks{font-family:var(--fm);font-size:0.65625rem;color:var(--gold);background:rgba(245,166,35,.08);border:0.0625rem solid rgba(245,166,35,.22);padding:0.1875rem 0.5rem;border-radius:6.25rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;flex-shrink:0}
.sml-deltas{display:grid;grid-template-columns:1fr 1fr;gap:0.875rem;margin-bottom:0.75rem;padding:0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r)}
.sml-delta{display:flex;flex-direction:column;gap:0.25rem;min-width:0}
.sml-delta-lbl{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.sml-delta-val{font-family:var(--fm);font-size:1.125rem;font-weight:700;color:var(--cloud);line-height:1}
.sml-delta-val.up{color:var(--green)}
.sml-delta-val.down{color:var(--red)}
.sml-delta-val.flat{color:var(--fog)}
.sml-spark{width:100%;height:1.875rem;margin-top:0.125rem}
.sml-spark.conv.up{color:var(--green)}
.sml-spark.conv.down{color:var(--red)}
.sml-spark.conv.flat{color:var(--fog)}
.sml-spark.price.up{color:var(--green)}
.sml-spark.price.down{color:var(--red)}
.sml-spark.price.flat{color:var(--mist)}
.sml-summary{font-size:0.84375rem;color:var(--cloud);line-height:1.55;margin-bottom:0.75rem;max-width:48.75rem}
.sml-foot{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.625rem;padding-top:0.625rem;border-top:0.0625rem solid var(--rim)}
.sml-voices-row{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}
.sml-voices-label{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.sml-voices{display:flex;gap:0.25rem}
.sml-voice{width:1.625rem;height:1.625rem;border-radius:50%;background:linear-gradient(135deg,rgba(90,200,250,.15),rgba(90,200,250,.04));border:0.0625rem solid rgba(90,200,250,.28);display:grid;place-items:center;font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--blue);cursor:default;transition:transform .15s}
.sml-voice:hover{transform:scale(1.1)}
.sml-lead{font-family:var(--fm);font-size:0.6875rem;color:var(--cloud);font-weight:600}

/* ── Panel 4: Originators vs echoes ── */
.orig-list{display:flex;flex-direction:column;gap:0.875rem}
.orig-card{padding:1.125rem 1.25rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);cursor:pointer;transition:border-color .18s,transform .18s;position:relative}
.orig-card:hover{border-color:rgba(245,166,35,.3);transform:translateY(-0.0625rem)}
.orig-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:0.875rem;padding-bottom:0.625rem;border-bottom:0.0625rem solid var(--rim)}
.orig-thesis{font-family:var(--fd);font-size:1.0625rem;font-weight:700;color:var(--snow);letter-spacing:-.005em}
.orig-tk{font-family:var(--fm);font-size:0.8125rem;font-weight:700;color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.22);padding:0.1875rem 0.5625rem;border-radius:0.3125rem}
.orig-body{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;margin-bottom:0.875rem}
.orig-tag-lbl{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-bottom:0.5rem}
.orig-originator{padding:0.75rem 0.875rem;background:linear-gradient(135deg,rgba(245,166,35,.08),rgba(245,166,35,.02));border:0.0625rem solid rgba(245,166,35,.22);border-radius:var(--r);min-width:12.5rem}
.orig-originator .orig-tag-lbl{color:var(--gold)}
.orig-originator-row{display:flex;align-items:center;gap:0.625rem}
.orig-av{width:1.75rem;height:1.75rem;border-radius:50%;background:linear-gradient(135deg,var(--bg3),var(--bg4));border:0.0625rem solid var(--rim2);display:grid;place-items:center;font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--cloud);flex-shrink:0}
.orig-av.big{width:2.25rem;height:2.25rem;font-size:0.75rem;background:linear-gradient(135deg,rgba(245,166,35,.18),rgba(245,166,35,.04));border-color:rgba(245,166,35,.32);color:var(--gold)}
.orig-orig-info{min-width:0}
.orig-orig-name{font-size:0.875rem;font-weight:600;color:var(--snow);line-height:1.2}
.orig-orig-date{font-family:var(--fm);font-size:0.6875rem;color:var(--gold);margin-top:0.1875rem}
.orig-echoes-col{min-width:0}
.orig-echoes{display:flex;flex-direction:column;gap:0.5rem}
.orig-echo{display:flex;align-items:center;gap:0.625rem;padding:0.5rem 0.625rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm)}
.orig-echo-info{min-width:0;flex:1}
.orig-echo-name{font-size:0.78125rem;font-weight:600;color:var(--cloud);line-height:1.2}
.orig-echo-meta{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);margin-top:0.125rem}
.orig-echo-meta b{color:var(--cloud);font-weight:700}
.orig-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:0.625rem;padding-top:0.625rem;border-top:0.0625rem solid var(--rim);font-family:var(--fm);font-size:0.6875rem;color:var(--cloud)}
.orig-foot b{color:var(--snow);font-weight:700}
.orig-lead,.orig-outcome{display:flex;align-items:center;gap:0.3125rem}

@media(max-width:760px){
  .orig-body{grid-template-columns:1fr}
  .sml-deltas{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════════════════════
   Top-10 most-discussed — light scroll-strip badges (replaces .tm-card)
   ═══════════════════════════════════════════════════════════════ */
.dt-key{font-family:var(--fm);font-size:0.6875rem;font-weight:700;padding:0.0625rem 0.375rem;border-radius:0.1875rem;letter-spacing:.04em;text-transform:uppercase}
.dt-key.bear{color:var(--red);background:rgba(255,80,0,.1)}
.dt-key.neut{color:var(--cloud);background:var(--bg3)}
.dt-key.bull{color:var(--green);background:var(--green-soft)}

.discussed-strip-wrap{position:relative;margin:0 -1rem}
.discussed-strip-wrap::before,
.discussed-strip-wrap::after{content:'';position:absolute;top:0;bottom:0;width:1.5rem;pointer-events:none;z-index:2}
.discussed-strip-wrap::before{left:1rem;background:linear-gradient(90deg,var(--bg) 0%,transparent 100%)}
.discussed-strip-wrap::after{right:1rem;background:linear-gradient(-90deg,var(--bg) 0%,transparent 100%)}
.discussed-strip{display:flex;gap:0.625rem;overflow-x:auto;overflow-y:hidden;padding:0.375rem 1rem 0.875rem;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}
.discussed-strip::-webkit-scrollbar{height:0.375rem}
.discussed-strip::-webkit-scrollbar-track{background:transparent}
.discussed-strip::-webkit-scrollbar-thumb{background:var(--rim2);border-radius:6.25rem}
.discussed-strip::-webkit-scrollbar-thumb:hover{background:var(--mist)}

.dt-badge{flex:0 0 13.75rem;display:flex;flex-direction:column;gap:0.4375rem;padding:0.75rem 0.875rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r);cursor:pointer;transition:border-color .15s,transform .15s;position:relative;text-decoration:none;color:inherit}
.dt-badge:hover{border-color:rgba(204,255,0,.28);transform:translateY(-0.0625rem)}
.dt-badge:focus-visible{outline:0.125rem solid var(--green);outline-offset:0.125rem}

.dt-head{display:flex;align-items:center;gap:0.5rem}
.dt-rank{font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--fog);background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.1875rem;padding:0.0625rem 0.3125rem;letter-spacing:.04em}
.dt-sym{font-family:var(--fm);font-size:0.9375rem;font-weight:700;color:var(--snow);letter-spacing:-.01em;flex:1}
.dt-tone-pill{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0.125rem 0.375rem;border-radius:0.1875rem}
.dt-tone-pill.bull{color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.22)}
.dt-tone-pill.bear{color:var(--red);background:rgba(255,80,0,.08);border:0.0625rem solid rgba(255,80,0,.22)}
.dt-tone-pill.split{color:var(--gold);background:rgba(245,166,35,.08);border:0.0625rem solid rgba(245,166,35,.22)}
.dt-tone-pill.lean-bull{color:var(--green);background:rgba(204,255,0,.04);border:0.0625rem solid rgba(204,255,0,.14)}
.dt-tone-pill.lean-bear{color:var(--red);background:rgba(255,80,0,.04);border:0.0625rem solid rgba(255,80,0,.14)}
.dt-tone-pill.neutral{color:var(--fog);background:var(--bg3);border:0.0625rem solid var(--rim)}

.dt-co{font-size:0.71875rem;color:var(--fog);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.dt-bar{display:flex;height:0.5rem;border-radius:0.25rem;overflow:hidden;background:var(--bg3);border:0.0625rem solid var(--rim)}
.dt-bar-bear{display:block;background:var(--red)}
.dt-bar-neut{display:block;background:var(--mist)}
.dt-bar-bull{display:block;background:var(--green)}

.dt-bar-legend{display:flex;justify-content:space-between;font-family:var(--fm);font-size:0.59375rem;font-weight:600;letter-spacing:.04em}
.dt-bar-leg-bear{color:var(--red)}
.dt-bar-leg-bull{color:var(--green)}

.dt-foot{font-size:0.6875rem;color:var(--cloud);line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ═══════════════════════════════════════════════════════════════
   YouTube Deep-Dive studio canvas
   ═══════════════════════════════════════════════════════════════ */
.yt-dive{display:flex;flex-direction:column;gap:1.125rem;padding:0.25rem 0.125rem}
.yt-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:0.875rem;border-bottom:0.0625rem solid var(--rim);flex-wrap:wrap}
.yt-head-left{flex:1;min-width:15rem}
.yt-head-ticker{font-family:var(--fd);font-size:1.625rem;font-weight:900;color:var(--snow);letter-spacing:-.02em;line-height:1;margin-bottom:0.375rem}
.yt-head-blurb{font-size:0.8125rem;color:var(--cloud);line-height:1.5;max-width:35rem}
.yt-tf{display:flex;gap:0.125rem;padding:0.125rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.375rem;flex-shrink:0}
.yt-tf-btn{padding:0.375rem 0.75rem;font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;border:none;border-radius:0.25rem;cursor:pointer;background:transparent;transition:all .15s}
.yt-tf-btn:hover{color:var(--cloud)}
.yt-tf-btn.active{background:var(--bg1);color:#FF7575}

.yt-block{display:flex;flex-direction:column;gap:0.625rem}
.yt-block-title{font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow);letter-spacing:-.005em;margin:0}
.yt-block-sub{font-family:var(--fb);font-size:0.75rem;font-weight:500;color:var(--fog);letter-spacing:0}

/* Consensus split */
.yt-consensus{padding:0.875rem 1rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r)}
.yt-cons-bar{display:flex;height:0.625rem;border-radius:0.3125rem;overflow:hidden;margin-bottom:0.625rem;background:var(--bg3)}
.yt-cons-bar .seg{display:block;height:100%}
.yt-cons-bar .seg.bull{background:var(--green)}
.yt-cons-bar .seg.mixed{background:var(--gold)}
.yt-cons-bar .seg.bear{background:var(--red)}
.yt-cons-legend{display:flex;gap:1.125rem;font-family:var(--fm);font-size:0.6875rem;color:var(--cloud);margin-bottom:0.5rem;flex-wrap:wrap}
.yt-cons-legend b{color:var(--snow);font-weight:700;margin-right:0.1875rem}
.yt-cons-legend .dot{width:0.375rem;height:0.375rem;border-radius:50%;display:inline-block;margin-right:0.3125rem;vertical-align:middle}
.yt-cons-legend .dot.bull{background:var(--green)}
.yt-cons-legend .dot.mixed{background:var(--gold)}
.yt-cons-legend .dot.bear{background:var(--red)}
.yt-cons-note{font-size:0.8125rem;color:var(--cloud);line-height:1.5;margin:0}
.yt-cons-note b{color:var(--snow);font-weight:600}

/* Generic list (disagreements, risks) */
.yt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.5rem}
.yt-list li{padding:0.625rem 0.875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);font-size:0.8125rem;color:var(--cloud);line-height:1.5}
.yt-list li b{color:var(--snow);font-weight:600}

/* Catalysts */
.yt-catalysts{display:grid;grid-template-columns:repeat(auto-fill,minmax(13.75rem,1fr));gap:0.625rem}
.yt-cat{padding:0.75rem 0.875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);display:flex;flex-direction:column;gap:0.25rem}
.yt-cat-when{font-family:var(--fm);font-size:0.65625rem;color:var(--gold);letter-spacing:.06em;text-transform:uppercase;font-weight:700}
.yt-cat-what{font-size:0.875rem;font-weight:600;color:var(--snow)}
.yt-cat-mood{font-family:var(--fm);font-size:0.65625rem;font-weight:600;letter-spacing:.04em}
.yt-cat-mood.up{color:var(--green)}
.yt-cat-mood.mixed{color:var(--gold)}
.yt-cat-mood.down{color:var(--red)}

/* Targets */
.yt-targets{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:0.625rem}
.yt-tgt{padding:0.75rem 0.875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);display:flex;flex-direction:column;gap:0.25rem}
.yt-tgt-lbl{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.yt-tgt-val{font-family:var(--fm);font-size:1.125rem;font-weight:700;color:var(--cloud)}
.yt-tgt-val.emphasis{color:var(--green);text-shadow:0 0 0.75rem rgba(204,255,0,.18)}
.yt-tgt-by{font-size:0.6875rem;color:var(--fog);font-weight:500}

/* Conviction */
.yt-conviction{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.5rem}
.yt-conviction li{display:flex;align-items:flex-start;gap:0.75rem;padding:0.75rem 0.875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm)}
.yt-conv-av{width:2rem;height:2rem;border-radius:50%;background:linear-gradient(135deg,var(--bg3),var(--bg4));border:0.0625rem solid var(--rim2);display:grid;place-items:center;font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--cloud);flex-shrink:0}
.yt-conv-info{min-width:0;flex:1}
.yt-conv-name{font-family:var(--fm);font-size:0.71875rem;font-weight:700;color:var(--snow);margin-bottom:0.25rem;letter-spacing:.02em}
.yt-conv-quote{font-size:0.8125rem;color:var(--cloud);line-height:1.55;font-style:italic}

/* Per-creator dive list */
.yt-creators{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.375rem}
.yt-creator-row{display:flex;align-items:center;gap:0.625rem;padding:0.625rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);cursor:pointer;transition:border-color .15s}
.yt-creator-row:hover{border-color:rgba(204,255,0,.22)}
.yt-creator-av{width:1.75rem;height:1.75rem;border-radius:50%;background:linear-gradient(135deg,var(--bg3),var(--bg4));border:0.0625rem solid var(--rim2);display:grid;place-items:center;font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--cloud);flex-shrink:0}
.yt-creator-info{flex:1;min-width:0}
.yt-creator-name{font-size:0.8125rem;font-weight:600;color:var(--snow);line-height:1.2}
.yt-creator-meta{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);margin-top:0.125rem}
.yt-creator-stance{font-family:var(--fm);font-size:0.625rem;font-weight:700;padding:0.1875rem 0.5625rem;border-radius:0.1875rem;letter-spacing:.06em;text-transform:uppercase;flex-shrink:0}
.yt-creator-stance.bull{color:var(--green);background:var(--green-soft)}
.yt-creator-stance.bear{color:var(--red);background:rgba(255,80,0,.08)}
.yt-creator-stance.mixed{color:var(--gold);background:rgba(245,166,35,.08)}
.yt-creators-more{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);text-align:center;padding:0.625rem 0 0;font-style:italic}

/* ═══════════════════════════════════════════════════════════════
   Workspace triage landing (research mode default empty-state)
   ═══════════════════════════════════════════════════════════════ */
.ws-triage{padding:3rem 2rem 1.5rem;display:flex;flex-direction:column;align-items:center;gap:1.125rem;text-align:center;animation:panelIn .3s ease both;max-width:52rem;margin-right:auto;margin-left:clamp(1rem,5vw,6rem)}
.ws-triage[hidden]{display:none}
.ws-chat-intro[hidden]{display:none}
.ws-triage-eyebrow{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.ws-triage-title{font-family:var(--fd);font-size:2.125rem;font-weight:900;color:var(--snow);letter-spacing:-.02em;line-height:1.1;margin:0;max-width:42.5rem}
.ws-triage-sub{font-size:0.9375rem;color:var(--cloud);line-height:1.55;margin:0;max-width:35rem}
.ws-triage-sub b{color:var(--snow);font-weight:600}

.ws-triage-input-wrap{display:flex;align-items:center;gap:0.5rem;width:100%;max-width:32.5rem;background:var(--bg2);border:0.09375rem solid var(--rim2);border-radius:var(--r);padding:0.5rem;transition:border-color .15s;margin-top:0.375rem}
.ws-triage-input-wrap:focus-within{border-color:rgba(204,255,0,.35);box-shadow:0 0 0 0.25rem rgba(204,255,0,.06)}
.ws-triage-input-prefix{font-family:var(--fm);font-size:1.125rem;font-weight:700;color:var(--green);padding:0 0.625rem;line-height:1}
.ws-triage-input{flex:1;background:transparent;border:none;outline:none;font-family:var(--fm);font-size:1.125rem;font-weight:700;color:var(--snow);letter-spacing:.04em;padding:0.5rem 0.25rem;text-transform:uppercase}
.ws-triage-input::placeholder{color:var(--fog);text-transform:none;letter-spacing:0;font-weight:500}
.ws-triage-go{padding:0.625rem 1rem;background:var(--green);color:#000;font-family:var(--fb);font-size:0.8125rem;font-weight:700;border:none;border-radius:var(--r-sm);cursor:pointer;display:flex;align-items:center;gap:0.375rem;transition:filter .15s,transform .15s}
.ws-triage-go:hover{filter:brightness(1.06);transform:translateX(0.0625rem)}
.ws-triage-go svg{width:0.875rem;height:0.875rem}

.ws-triage-suggestions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0.375rem;margin-top:0.25rem}
.ws-triage-sug-label{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-right:0.25rem}
.ws-triage-sug{padding:0.375rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:6.25rem;font-family:var(--fm);font-size:0.75rem;font-weight:700;color:var(--cloud);cursor:pointer;transition:all .15s;letter-spacing:.02em}
.ws-triage-sug:hover{color:var(--green);border-color:rgba(204,255,0,.32);background:var(--green-soft)}

.ws-triage-sources{width:100%;max-width:47rem;text-align:left;padding:1.5rem 1.625rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r);margin-top:0.375rem}
.ws-triage-sources-title{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:0.875rem}
.ws-triage-sources-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:0.75rem;margin-bottom:0.875rem}
.ws-triage-source{display:flex;align-items:flex-start;gap:0.875rem;padding:0.875rem 0.9375rem;border-radius:0.75rem;border:0.0625rem solid transparent;transition:background .15s,border-color .15s}
.ws-triage-source:hover{background:var(--bg2);border-color:var(--rim2)}
.ws-triage-src-icon{width:2.5rem;height:2.5rem;border-radius:0.625rem;display:grid;place-items:center;font-family:var(--fm);font-size:1.125rem;font-weight:700;flex-shrink:0;border:0.0625rem solid var(--rim2)}
.ws-triage-src-icon.yt{background:rgba(255,80,80,.08);color:#FF7575;border-color:rgba(255,80,80,.22)}
.ws-triage-src-icon.sec{background:rgba(90,200,250,.08);color:var(--blue);border-color:rgba(90,200,250,.22);font-size:1.375rem}
.ws-triage-src-icon.res{background:rgba(245,166,35,.08);color:var(--gold);border-color:rgba(245,166,35,.22);font-size:0.875rem}
.ws-triage-src-icon.mkt{background:rgba(204,255,0,.08);color:var(--green);border-color:rgba(204,255,0,.22)}
/* Real full-colour brand logo clusters (Social media = 2x2, Newswire/bank = triangle) */
.ws-triage-src-logos{flex-shrink:0;display:grid;gap:0.3125rem}
.ws-logos-2x2{grid-template-columns:repeat(2,1.625rem);grid-auto-rows:1.625rem}
/* Triangle: two on top, one centred below (spans both columns) */
.ws-logos-tri{grid-template-columns:repeat(2,1.5rem);grid-auto-rows:1.5rem;justify-items:center}
.ws-logos-tri .ws-brand-mini:nth-child(3){grid-column:1 / span 2;justify-self:center}
.ws-brand-mini{width:1.625rem;height:1.625rem;border-radius:0.4375rem;overflow:hidden;display:inline-flex;flex-shrink:0;box-shadow:0 0.0625rem 0.1875rem rgba(0,0,0,.35)}
.ws-logos-tri .ws-brand-mini{width:1.5rem;height:1.5rem}
.ws-brand-mini svg{width:100%;height:100%;display:block}
.ws-brand-mini.is-logo{background:#fff}
.ws-brand-mini.is-logo img{width:100%;height:100%;object-fit:contain;padding:2px;box-sizing:border-box}
.ws-brand-solo{width:2.5rem;height:2.5rem;border-radius:0.625rem;box-shadow:none}
.ws-triage-src-info{min-width:0;flex:1}
.ws-triage-src-name{font-size:0.9375rem;font-weight:700;color:var(--snow);line-height:1.25;margin-bottom:0.25rem;letter-spacing:-.01em}
.ws-triage-src-blurb{font-size:0.78125rem;color:var(--cloud);line-height:1.5}
.ws-src-secondary-lbl{color:var(--fog)}
.ws-src-sep{color:var(--rim2)}
.ws-triage-sub-sec{color:var(--fog)}
.ws-triage-sources-note{font-size:0.75rem;color:var(--cloud);line-height:1.55;margin:0;padding-top:0.75rem;border-top:0.0625rem dashed var(--rim2)}
.ws-triage-sources-note em{color:var(--green);font-style:italic}

.ws-chat-ticker{font-family:var(--fm);color:var(--green);font-weight:700}

/* ═══════════════════════════════════════════════════════════════
   YouTube Deep-Dive — drilldown rows + voice cards
   ═══════════════════════════════════════════════════════════════ */
/* Row container (works for splits, risks, catalysts, targets, conviction, creators) */
.yt-block [data-yt-row]{margin-bottom:0.375rem}
.yt-row{background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);overflow:hidden;transition:border-color .15s}
.yt-row.open{border-color:var(--rim2)}
.yt-row-head{width:100%;display:flex;align-items:center;gap:0.875rem;padding:0.6875rem 0.875rem;background:transparent;border:none;cursor:pointer;text-align:left;color:inherit;transition:background .12s}
.yt-row-head:hover{background:var(--bg3)}
.yt-row-title-wrap{flex:1;display:flex;flex-direction:column;gap:0.125rem;min-width:0}
.yt-row-title{font-size:0.84375rem;font-weight:600;color:var(--snow);line-height:1.3;letter-spacing:-.005em}
.yt-row-summary{font-size:0.78125rem;color:var(--cloud);line-height:1.45;font-weight:400}
.yt-row-count{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);font-weight:600;letter-spacing:.04em;flex-shrink:0;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.1875rem;padding:0.125rem 0.4375rem}
.yt-row-chev{width:0.875rem;height:0.875rem;color:var(--fog);transition:transform .2s;flex-shrink:0}
.yt-row.open .yt-row-chev{transform:rotate(180deg);color:#FF7575}
.yt-row-detail{padding:0.5rem 0.875rem 0.875rem;border-top:0.0625rem solid var(--rim);display:flex;flex-direction:column;gap:0.5rem;background:var(--bg1)}
.yt-row-detail-empty{font-size:0.78125rem;color:var(--fog);line-height:1.5;font-style:italic;margin:0.375rem 0 0}

/* Voice card inside a drilldown */
.yt-voice{padding:0.625rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);border-left:0.1875rem solid var(--mist)}
.yt-voice.analyst{border-left-color:var(--blue)}
.yt-voice.trader{border-left-color:var(--gold)}
.yt-voice.investor{border-left-color:var(--purple)}
.yt-voice-head{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;margin-bottom:0.375rem}
.yt-voice-camp{font-family:var(--fm);font-size:0.625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0.125rem 0.4375rem;border-radius:0.1875rem}
.yt-voice-camp.analyst{color:var(--blue);background:rgba(90,200,250,.08);border:0.0625rem solid rgba(90,200,250,.22)}
.yt-voice-camp.trader{color:var(--gold);background:rgba(245,166,35,.08);border:0.0625rem solid rgba(245,166,35,.22)}
.yt-voice-camp.investor{color:var(--purple);background:rgba(155,89,182,.08);border:0.0625rem solid rgba(155,89,182,.22)}
.yt-voice-stance{font-family:var(--fm);font-size:0.625rem;font-weight:700;padding:0.125rem 0.4375rem;border-radius:0.1875rem;letter-spacing:.04em;text-transform:uppercase}
.yt-voice-stance.bull{color:var(--green);background:var(--green-soft)}
.yt-voice-stance.bear{color:var(--red);background:rgba(255,80,0,.08)}
.yt-voice-stance.mixed{color:var(--gold);background:rgba(245,166,35,.08)}
.yt-voice-author{font-family:var(--fm);font-size:0.71875rem;font-weight:700;color:var(--snow)}
.yt-voice-awards{font-size:0.8125rem;letter-spacing:0.0625rem;line-height:1}
.yt-voice-quote{font-size:0.8125rem;color:var(--cloud);line-height:1.55;font-style:italic;margin-bottom:0.4375rem}
.yt-voice-source{display:inline-flex;align-items:center;gap:0.5rem;padding:0.375rem 0.625rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);text-decoration:none;color:var(--cloud);transition:all .15s;flex-wrap:wrap}
.yt-voice-source:hover{border-color:rgba(255,80,80,.32);color:var(--snow);background:rgba(255,80,80,.04)}
.yt-voice-play{width:1.125rem;height:1.125rem;border-radius:0.1875rem;display:grid;place-items:center;background:#FF5050;color:#000;flex-shrink:0}
.yt-voice-play svg{width:0.625rem;height:0.625rem}
.yt-voice-src-title{font-size:0.75rem;font-weight:600;line-height:1.2}
.yt-voice-src-meta{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.04em}

/* Cred-weighted vs raw bar comparison */
.yt-cons-compare{display:flex;flex-direction:column;gap:0.375rem;margin:0.625rem 0 0.5rem}
.yt-cons-cmp-row{display:grid;grid-template-columns:7.5rem 1fr auto;align-items:center;gap:0.625rem}
.yt-cons-cmp-lbl{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;font-weight:700}
.yt-cons-cmp-bar{height:0.375rem;background:var(--bg3);border-radius:0.1875rem;overflow:hidden;border:0.0625rem solid var(--rim)}
.yt-cons-cmp-fill{display:block;height:100%;background:var(--green);border-radius:0.1875rem}
.yt-cons-cmp-fill.raw{background:var(--mist)}
.yt-cons-cmp-val{font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--green)}
.yt-cons-cmp-row:has(.raw) .yt-cons-cmp-val{color:var(--cloud)}

/* Catalyst card (now expandable) */
.yt-cat-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:0.625rem}
.yt-cat-card{background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);overflow:hidden;transition:border-color .15s}
.yt-cat-card.open{border-color:var(--rim2);grid-column:1 / -1}
.yt-cat-head{width:100%;display:flex;align-items:flex-start;gap:0.75rem;padding:0.75rem 0.875rem;background:transparent;border:none;cursor:pointer;text-align:left;color:inherit;transition:background .12s}
.yt-cat-head:hover{background:var(--bg3)}
.yt-cat-when{font-family:var(--fm);font-size:0.65625rem;color:var(--gold);letter-spacing:.06em;text-transform:uppercase;font-weight:700;flex-shrink:0;padding-top:0.125rem}
.yt-cat-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:0.1875rem}
.yt-cat-what{font-size:0.875rem;font-weight:600;color:var(--snow);line-height:1.2}
.yt-cat-mood{font-family:var(--fm);font-size:0.65625rem;font-weight:600;letter-spacing:.04em}
.yt-cat-mood.up{color:var(--green)}
.yt-cat-mood.mixed{color:var(--gold)}
.yt-cat-mood.down{color:var(--red)}
.yt-cat-summary{font-size:0.71875rem;color:var(--cloud);line-height:1.4;margin-top:0.125rem}

/* Target card (now expandable) */
.yt-tgt-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(11.25rem,1fr));gap:0.625rem}
.yt-tgt-card{background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);overflow:hidden;transition:border-color .15s}
.yt-tgt-card.open{border-color:var(--rim2);grid-column:1 / -1}
.yt-tgt-head{width:100%;display:flex;align-items:center;gap:0.625rem;padding:0.625rem 0.875rem;background:transparent;border:none;cursor:pointer;text-align:left;color:inherit;transition:background .12s}
.yt-tgt-head:hover{background:var(--bg3)}
.yt-tgt-head .yt-tgt-lbl{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.yt-tgt-head .yt-tgt-val{font-family:var(--fm);font-size:1rem;font-weight:700;color:var(--cloud);margin-left:auto}
.yt-tgt-head .yt-tgt-val.emphasis{color:var(--green)}

/* High-conviction row (now expandable) */
.yt-conv-row{background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);overflow:hidden;transition:border-color .15s}
.yt-conv-row.open{border-color:var(--rim2)}
.yt-conv-head{width:100%;display:flex;align-items:flex-start;gap:0.75rem;padding:0.75rem 0.875rem;background:transparent;border:none;cursor:pointer;text-align:left;color:inherit;transition:background .12s}
.yt-conv-head:hover{background:var(--bg3)}
.yt-conv-head .yt-conv-av{width:2rem;height:2rem;border-radius:50%;background:linear-gradient(135deg,var(--bg3),var(--bg4));border:0.0625rem solid var(--rim2);display:grid;place-items:center;font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--cloud);flex-shrink:0}
.yt-conv-info{flex:1;min-width:0}
.yt-conv-name-row{display:flex;align-items:baseline;gap:0.5rem;flex-wrap:wrap;margin-bottom:0.25rem}
.yt-conv-name{font-family:var(--fm);font-size:0.71875rem;font-weight:700;color:var(--snow)}
.yt-conv-creds{font-family:var(--fm);font-size:0.65625rem;color:var(--fog)}
.yt-conv-awards{font-size:0.8125rem;letter-spacing:0.0625rem;line-height:1}
.yt-conv-quote{font-size:0.8125rem;color:var(--cloud);line-height:1.55;font-style:italic}

/* Per-creator row (full take when open) */
.yt-cre-row{background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);overflow:hidden;transition:border-color .15s}
.yt-cre-row.open{border-color:var(--rim2)}
.yt-cre-row .yt-creator-row{width:100%;display:flex;align-items:center;gap:0.625rem;padding:0.625rem 0.875rem;background:transparent;border:none;cursor:pointer;text-align:left;color:inherit;transition:background .12s}
.yt-cre-row .yt-creator-row:hover{background:var(--bg3)}
.yt-cre-row .yt-creator-av{width:1.875rem;height:1.875rem;border-radius:50%;background:linear-gradient(135deg,var(--bg3),var(--bg4));border:0.0625rem solid var(--rim2);display:grid;place-items:center;font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--cloud);flex-shrink:0}
.yt-cre-row .yt-creator-info{flex:1;min-width:0}
.yt-cre-row .yt-creator-name{display:flex;align-items:center;gap:0.375rem;font-size:0.8125rem;font-weight:600;color:var(--snow);line-height:1.2}
.yt-creator-awards{font-size:0.75rem;letter-spacing:0.0625rem;line-height:1}
.yt-cre-row .yt-creator-meta{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);margin-top:0.125rem}

/* Creator deep-dive details */
.yt-cre-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0.5rem;margin-bottom:0.625rem}
.yt-cre-stat{padding:0.5rem 0.625rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm)}
.yt-cre-stat-lbl{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;font-weight:700;margin-bottom:0.1875rem}
.yt-cre-stat-val{font-family:var(--fm);font-size:0.8125rem;font-weight:700;color:var(--snow)}
.yt-cre-stat-sub{font-size:0.625rem;color:var(--fog);font-weight:500}
.yt-cre-thesis,.yt-cre-claims,.yt-cre-videos{margin-bottom:0.625rem}
.yt-cre-thesis-lbl,.yt-cre-claims-lbl,.yt-cre-videos-lbl{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-bottom:0.3125rem}
.yt-cre-thesis{font-size:0.8125rem;color:var(--cloud);line-height:1.55}
.yt-cre-claims ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0.25rem}
.yt-cre-claims li{font-size:0.78125rem;color:var(--cloud);line-height:1.45;padding:0.375rem 0.625rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);position:relative;padding-left:1.375rem}
.yt-cre-claims li::before{content:'•';position:absolute;left:0.5625rem;top:0.375rem;color:var(--green);font-weight:700}
.yt-cre-videos{display:flex;flex-direction:column;gap:0.3125rem}
.yt-cre-videos .yt-voice-source{align-self:flex-start}

/* ═══════════════════════════════════════════════════════════════
   Canvas-view header back button — make unmistakable
   (overrides earlier .canvas-view-back size/colour from workspace-canvases.css)
   ═══════════════════════════════════════════════════════════════ */
.canvas-view-back{padding:0.5rem 0.875rem !important;background:var(--green-soft) !important;border:0.09375rem solid rgba(204,255,0,.32) !important;color:var(--green) !important;font-size:0.75rem !important;font-weight:700 !important;letter-spacing:.04em;border-radius:var(--r-sm) !important;display:flex;align-items:center;gap:0.5rem}
.canvas-view-back:hover{background:var(--green-dim) !important;border-color:rgba(204,255,0,.55) !important;color:var(--green) !important}
.canvas-view-back svg{width:0.8125rem !important;height:0.8125rem !important}

/* In-canvas redundant back button at the bottom of the YouTube panel */
.yt-back-foot{margin-top:1.125rem;padding-top:1.125rem;border-top:0.0625rem dashed var(--rim2);display:flex;justify-content:center}
.yt-back-foot-btn{padding:0.625rem 1.125rem;background:var(--green-soft);border:0.09375rem solid rgba(204,255,0,.32);color:var(--green);border-radius:var(--r-sm);font-family:var(--fm);font-size:0.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;display:flex;align-items:center;gap:0.5rem;transition:all .15s}
.yt-back-foot-btn:hover{background:var(--green-dim);border-color:rgba(204,255,0,.55)}
.yt-back-foot-btn svg{width:0.8125rem;height:0.8125rem}

/* "Back to workspace" button on the Studio header — only visible in fullscreen */
.studio-exit-fs{display:none;align-items:center;gap:0.5rem;padding:0.5rem 0.875rem;background:var(--green-soft);border:0.09375rem solid rgba(204,255,0,.32);color:var(--green);border-radius:var(--r-sm);font-family:var(--fb);font-size:0.75rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:all .15s;margin-right:0.75rem}
.studio-exit-fs:hover{background:var(--green-dim);border-color:rgba(204,255,0,.55)}
.studio-exit-fs svg{width:0.8125rem;height:0.8125rem}
body.studio-expanded .studio-exit-fs{display:flex}

/* "Expand Studio" button on the Studio home header — hidden once expanded */
body.studio-expanded .studio-expand-home{display:none}
/* No fullscreen-expand from the Studio HOME — you can only go fullscreen once inside a
   ticker's canvas (the canvas-view header keeps its own expand button). */
.studio-expand-home{display:none !important}

/* ═══════════════════════════════════════════════════════════════
   Workspace consolidation: Default/Custom creators · AI mode pills ·
   research sources toggle · Studio header polish
   ═══════════════════════════════════════════════════════════════ */

/* Hint line under the timeframe toggle in the unified creator panel */
.creators-mode-hint{flex:1 1 100%;font-size:0.6875rem;color:var(--fog);margin-top:0.25rem;letter-spacing:.02em}
.creators-mode-hint #creatorsTfLabel{color:var(--cloud);font-weight:600}
.creators-mode-hint #creatorsSelectedCount{color:var(--green);font-weight:700}

/* Preset chips — bulk-toggle the selection (All / Tech / Dividends / Quality / + New).
   Horizontally scrollable on narrow widths so user-created presets don't break the row. */
.creator-presets{display:flex;align-items:center;gap:0.3125rem;padding:0.5rem 0.75rem 0.4375rem;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.creator-presets::-webkit-scrollbar{display:none}
.creator-preset{flex:0 0 auto;padding:0.3125rem 0.625rem;font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;border-radius:6.25rem;cursor:pointer;border:0.0625rem solid var(--rim);background:transparent;transition:all .15s;white-space:nowrap}
.creator-preset:hover{color:var(--cloud);border-color:var(--rim2)}
.creator-preset.active{color:var(--green);background:var(--green-soft);border-color:rgba(204,255,0,.32)}
.creator-preset.add{color:var(--green);border-style:dashed;border-color:rgba(204,255,0,.28)}
.creator-preset.add:hover{background:var(--green-soft);border-style:solid;border-color:rgba(204,255,0,.4)}

/* Search — filters the visible list, doesn't change which creators are selected */
.creator-search{display:flex;align-items:center;gap:0.5rem;padding:0.4375rem 0.625rem;margin:0 0.5rem 0.5rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm)}
.creator-search:focus-within{border-color:rgba(204,255,0,.3)}
.creator-search svg{width:0.8125rem;height:0.8125rem;color:var(--fog);flex-shrink:0}
.creator-search-input{flex:1;background:transparent;border:none;outline:none;color:var(--cloud);font-size:0.78125rem;font-family:var(--fb)}
.creator-search-input::placeholder{color:var(--fog)}

/* Empty state when search has no matches */
.creator-empty{padding:1.5rem 1rem;font-size:0.78125rem;color:var(--fog);text-align:center;line-height:1.5;font-style:italic}

/* AI mode toggle (Summary | Detailed analysis) — replaces Research/Creator */
.ws-mode-toggle{display:flex;align-items:center;gap:0.125rem;padding:0.125rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.375rem;flex-shrink:0}
.ws-mode-lbl{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:0 0.5rem 0 0.25rem}

/* Research sources block (left panel — replaces tier-divider) */
.research-sources-section{padding:0.75rem 0.875rem 0.625rem;background:var(--bg2);border-top:0.0625rem solid var(--rim);border-bottom:0.0625rem solid var(--rim)}
.research-sources-head{display:flex;align-items:center;justify-content:space-between;gap:0.625rem;margin-bottom:0.375rem}
.research-sources-title{font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--gold);letter-spacing:.06em;text-transform:uppercase}
.research-sources-toggle{position:relative;display:inline-flex;cursor:pointer;flex-shrink:0}
.research-sources-toggle input{position:absolute;opacity:0;pointer-events:none;width:0;height:0}
.research-sources-toggle-track{display:inline-block;width:2rem;height:1.125rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:6.25rem;position:relative;transition:all .15s}
.research-sources-toggle-thumb{position:absolute;top:0.0625rem;left:0.0625rem;width:0.875rem;height:0.875rem;background:var(--mist);border-radius:50%;transition:all .18s}
.research-sources-toggle input:checked + .research-sources-toggle-track{background:var(--green-soft);border-color:rgba(204,255,0,.32)}
.research-sources-toggle input:checked + .research-sources-toggle-track .research-sources-toggle-thumb{left:0.9375rem;background:var(--green)}
.research-sources-explain{font-size:0.6875rem;color:var(--cloud);line-height:1.45;margin:0}

/* Cosmetic dim of Nanalyze block when sources are off */
body.research-sources-off .research-sources-section + .creator-card,
body.research-sources-off .research-sources-section + .panel-section{opacity:.45;pointer-events:none}

/* Studio header — ticker context + canvas templates heading */
.studio-title{display:flex;align-items:baseline;gap:0.625rem}
.studio-ticker{font-family:var(--fm);font-size:0.8125rem;font-weight:700;color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.22);padding:0.125rem 0.5rem;border-radius:0.25rem;letter-spacing:.04em;line-height:1.2}

.studio-section-head{padding:0.375rem 0 0.5rem;margin-bottom:0.375rem}
.studio-section-title{font-family:var(--fd);font-size:0.8125rem;font-weight:800;color:var(--snow);margin:0;letter-spacing:-.005em}
.studio-section-sub{font-size:0.6875rem;color:var(--fog);margin-top:0.125rem;line-height:1.35}

/* Distinguish the existing studio-actions-title (already styled) — minor refine */
.studio-actions-title{margin-top:1.125rem}

/* ═══════════════════════════════════════════════════════════════
   Workspace polish — left controls bundle, researchers list,
   bigger triage, hide stale chat-input
   ═══════════════════════════════════════════════════════════════ */

/* Left panel controls bundle (Default/Custom + Timeframe + hint) */
.creators-controls{padding:0.625rem 0.875rem 0.75rem;border-bottom:0.0625rem solid var(--rim);display:flex;flex-direction:column;gap:0.5rem}
.creators-controls .creators-mode-toggle{display:flex;gap:0.125rem;padding:0.125rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.375rem;margin:0;border-bottom:none}
.creators-controls .creators-mode-btn{padding:0.3125rem 0.75rem;font-family:var(--fm);font-size:0.65625rem;font-weight:700;color:var(--fog);letter-spacing:.04em;text-transform:uppercase;border-radius:0.25rem;cursor:pointer;border:none;background:transparent;transition:all .15s;flex:1}
.creators-controls .creators-mode-btn:hover{color:var(--cloud)}
.creators-controls .creators-mode-btn.active{background:var(--bg1);color:var(--green)}
.creators-controls .ws-tf-toggle{display:flex;gap:0.125rem;padding:0.125rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.375rem}
.creators-controls .ws-tf-btn{padding:0.25rem 0.625rem;font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--fog);letter-spacing:.04em;text-transform:uppercase;border-radius:0.25rem;cursor:pointer;border:none;background:transparent;flex:1}
.creators-controls .ws-tf-btn:hover{color:var(--cloud)}
.creators-controls .ws-tf-btn.active{background:var(--bg1);color:var(--green)}
.creators-controls .creators-mode-hint{font-size:0.6875rem;color:var(--fog);margin:0;line-height:1.4}

/* Custom-list empty intro card */
.custom-list-empty{padding:0.875rem;background:var(--bg2);border:0.0625rem dashed var(--rim2);border-radius:var(--r-sm);margin:0.5rem}
.custom-list-empty-title{font-family:var(--fm);font-size:0.6875rem;color:var(--green);letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-bottom:0.375rem}
.custom-list-empty-body{font-size:0.78125rem;color:var(--cloud);line-height:1.5}
.custom-manage-btn{margin:0.5rem;padding:0.625rem;background:var(--green-soft);border:0.0625rem dashed rgba(204,255,0,.32);border-radius:var(--r-sm);font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--green);cursor:pointer;letter-spacing:.04em;width:calc(100% - 1rem);transition:all .15s}
.custom-manage-btn:hover{background:var(--green-dim);border-style:solid}

/* Researchers list (under research-sources block) */
.researchers-list{margin-top:0.625rem;display:flex;flex-direction:column;gap:0.375rem}
.researchers-list-title{font-family:var(--fm);font-size:0.625rem;color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-bottom:0.125rem;display:flex;align-items:baseline;gap:0.375rem;flex-wrap:wrap}
.researchers-list-sub{font-family:var(--fb);font-size:0.625rem;color:var(--fog);font-weight:500;letter-spacing:0;text-transform:none}
.researcher-row{display:flex;align-items:center;gap:0.625rem;padding:0.5rem 0.625rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);cursor:pointer;transition:all .15s}
.researcher-row:hover{border-color:var(--rim2)}
.researcher-row.active{border-color:rgba(245,166,35,.28);background:rgba(245,166,35,.04)}
.researcher-check{appearance:none;-webkit-appearance:none;width:1.125rem;height:1.125rem;border:0.09375rem solid var(--rim2);border-radius:0.25rem;cursor:pointer;flex-shrink:0;background:var(--bg2) center / 0.75rem 0.75rem no-repeat;transition:all .15s;margin:0}
.researcher-check:hover{border-color:rgba(245,166,35,.5)}
.researcher-check:checked{background-color:var(--gold);border-color:var(--gold);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'><polyline points='20 6 9 17 4 12'/></svg>")}
.researcher-av{width:1.625rem;height:1.625rem;border-radius:50%;background:linear-gradient(135deg,rgba(245,166,35,.18),rgba(245,166,35,.04));border:0.0625rem solid rgba(245,166,35,.28);display:grid;place-items:center;font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--gold);flex-shrink:0}
.researcher-info{flex:1;min-width:0;display:flex;flex-direction:column}
.researcher-name{font-size:0.75rem;font-weight:600;color:var(--snow);line-height:1.2}
.researcher-meta{font-family:var(--fm);font-size:0.625rem;color:var(--fog);margin-top:0.125rem}
.researcher-state{font-family:var(--fm);font-size:0.59375rem;font-weight:700;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0}
.researcher-row.active .researcher-state{color:var(--gold)}

/* Bigger triage hero so the long placeholder fits comfortably */
.ws-triage{padding:4rem 2.5rem 2rem}
.ws-triage-title{font-size:2.375rem}
.ws-triage-sub{font-size:1rem;max-width:42.5rem}
.ws-triage-input-wrap{max-width:45rem;padding:0.625rem}
.ws-triage-input{font-size:1rem;padding:0.625rem 0.25rem}
.ws-triage-go{padding:0.75rem 1.125rem;font-size:0.875rem}
.ws-triage-sources{max-width:47.5rem}

/* Hide the persistent chat-input bar when triage is visible (avoids
   stale-bar visual at zoomed-out viewports). */
.ws-mode-research:has(#wsTriage:not([hidden])) > .chat-input-wrap{display:none}

/* ═══════════════════════════════════════════════════════════════
   Workspace polish pass 2
   ═══════════════════════════════════════════════════════════════ */

/* Hide briefing's floating search-fab on the workspace + leaderboard pages */
#page-workspace ~ .search-fab-wrap,
#page-ranking.active ~ .search-fab-wrap{display:none}
body:has(#page-workspace.active) .search-fab-wrap{display:none}

/* ── Workspace size reduction (so the page fits at 100% zoom) ── */
/* Trim panel-header */
#page-workspace .panel-header{padding:0.625rem 0.875rem}
#page-workspace .panel-header h2{font-size:1.125rem}
#page-workspace .panel-header .count{font-size:0.6875rem}

/* Trim chat context bar */
#page-workspace .chat-ctx-bar{padding:0.5rem 1rem;font-size:0.6875rem}

/* Triage hero spacing — give each row room to breathe so the panel reads
   as a hero, not a form. The flex `gap` controls vertical rhythm between
   siblings (eyebrow → title → sub → input → suggestions → sources). */
.ws-triage{padding:3rem 2.5rem 2.5rem;gap:1.5rem}
.ws-triage-eyebrow{font-size:0.625rem}
.ws-triage-title{font-size:1.875rem;line-height:1.1}
.ws-triage-sub{font-size:0.90625rem;line-height:1.5}
.ws-triage-input-wrap{max-width:42.5rem;padding:0.5625rem;margin-top:0.375rem}
.ws-triage-input{font-size:0.9375rem;padding:0.5rem 0.25rem}
.ws-triage-input-prefix{font-size:1rem}
.ws-triage-go{padding:0.5625rem 0.875rem;font-size:0.8125rem}
.ws-triage-suggestions{gap:0.5rem;margin-top:0.25rem}
.ws-triage-sug{padding:0.375rem 0.8125rem;font-size:0.71875rem}
.ws-triage-sources{padding:1.5rem 1.5rem;max-width:45rem;margin-top:0.5rem}
.ws-triage-sources-title{font-size:0.65625rem;margin-bottom:1rem}
.ws-triage-sources-grid{gap:1.125rem 1.5rem;margin-bottom:0}
.ws-triage-source{gap:0.875rem}
.ws-triage-src-icon{width:1.75rem;height:1.75rem;font-size:0.75rem}
.ws-triage-src-name{font-size:0.78125rem;margin-bottom:0.25rem}
.ws-triage-src-blurb{font-size:0.6875rem;line-height:1.5}
.ws-triage-sources-note{font-size:0.71875rem;padding-top:0.875rem}

/* Trim Studio canvas grid card sizing */
#studioPanel .studio-grid{gap:0.5rem}
#studioPanel .studio-btn{padding:0.625rem 0.75rem}
#studioPanel .studio-btn-icon{width:1.75rem;height:1.75rem}
#studioPanel .studio-btn-title{font-size:0.78125rem}
#studioPanel .studio-btn-sub{font-size:0.65625rem}
#studioPanel .studio-section-title{font-size:0.75rem}
#studioPanel .studio-section-sub{font-size:0.65625rem}
#studioPanel .studio-actions-grid{gap:0.5rem}
#studioPanel .studio-action-btn{padding:0.5625rem 0.75rem}

/* Trim left-panel creator items */
#page-workspace .creator-list .creator-item{padding:0.5rem 0.75rem;gap:0.5625rem}
#page-workspace .creator-av{width:1.875rem;height:1.875rem;font-size:0.6875rem}
#page-workspace .creator-name{font-size:0.78125rem}
#page-workspace .acc-badge{font-size:0.65625rem;padding:0.0625rem 0.375rem}

/* ── Left sidebar polish: clearer hierarchy ── */
#page-workspace .panel-left .panel-header{border-bottom:0.0625rem solid var(--rim);padding-bottom:0.625rem}
.creators-controls{padding:0.625rem 0.875rem;gap:0.4375rem}
.creators-controls .creators-mode-toggle,
.creators-controls .ws-tf-toggle{padding:0.125rem;border-radius:0.3125rem}
.creators-controls .creators-mode-btn{padding:0.3125rem 0.625rem;font-size:0.625rem}
.creators-controls .ws-tf-btn{padding:0.25rem 0.5rem;font-size:0.59375rem}
.creators-controls .creators-mode-hint{font-size:0.65625rem;margin:0;padding-top:0.125rem;border-top:0.0625rem dashed var(--rim);padding:0.25rem 0 0}

/* "Your researchers" subsection — visually integrated, less verbose */
.research-sources-section{padding:0.625rem 0.875rem}
.research-sources-explain{font-size:0.6875rem;line-height:1.4}
.researchers-list{gap:0.3125rem;margin-top:0.5rem}
.researchers-list-title{font-size:0.59375rem}
.researchers-list-sub{font-size:0.59375rem}
.researcher-row{padding:0.375rem 0.5625rem;gap:0.5rem}
.researcher-av{width:1.5rem;height:1.5rem;font-size:0.59375rem}
.researcher-name{font-size:0.71875rem}
.researcher-meta{font-size:0.59375rem}
.researcher-state{font-size:0.5625rem}

/* Trim middle panel chat input wrap */
#page-workspace .chat-input-wrap{padding:0.625rem 0.875rem}
#page-workspace .chat-textarea{font-size:0.84375rem}
#page-workspace .chat-input-helper{font-size:0.6875rem}

/* Custom list intro — slimmer */
.custom-list-empty{padding:0.625rem 0.75rem;margin:0.375rem}
.custom-list-empty-title{font-size:0.65625rem;margin-bottom:0.25rem}
.custom-list-empty-body{font-size:0.71875rem;line-height:1.45}
.custom-manage-btn{padding:0.5rem;font-size:0.65625rem;margin:0.375rem}

/* Reverted: zoom shrinks the box itself, leaving blank space below. */

/* ═══════════════════════════════════════════════════════════════
   Research-sources slim: 3 selectable rows + per-row "What is this?"
   ═══════════════════════════════════════════════════════════════ */
.research-sources-section{padding:0.5rem 0.75rem 0.625rem;background:var(--bg2);border-top:0.0625rem solid var(--rim);border-bottom:0.0625rem solid var(--rim)}
.research-sources-head{display:flex;align-items:center;justify-content:space-between;gap:0.625rem;margin-bottom:0.375rem}
.research-sources-title{font-family:var(--fm);font-size:0.65625rem;font-weight:700;color:var(--gold);letter-spacing:.06em;text-transform:uppercase}
.researchers-list{display:flex;flex-direction:column;gap:0.3125rem;margin-top:0}
.researcher{display:flex;flex-direction:column;gap:0}
.researcher-row{display:flex;align-items:center;gap:0.5rem;padding:0.375rem 0.5625rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);cursor:pointer;transition:all .15s;margin:0}
.researcher-row:hover{border-color:var(--rim2)}
.researcher-row.active{border-color:rgba(245,166,35,.28);background:rgba(245,166,35,.04)}
.researcher-row .researcher-state{display:none}
.researcher-detail-toggle{align-self:flex-start;background:transparent;border:none;color:var(--mist);font-family:var(--fm);font-size:0.59375rem;letter-spacing:.04em;cursor:pointer;padding:0.1875rem 0.5625rem;text-transform:lowercase;transition:color .15s}
.researcher-detail-toggle:hover{color:var(--cloud)}
.researcher-detail-toggle::before{content:'⌄ ';font-size:0.6875rem;display:inline-block;transition:transform .15s;margin-right:0.125rem}
.researcher-detail-toggle[aria-expanded="true"]::before{transform:rotate(180deg)}
.researcher-detail{font-size:0.6875rem;color:var(--cloud);line-height:1.45;padding:0.25rem 0.5625rem 0.375rem;border-left:0.125rem solid rgba(245,166,35,.18);margin-left:0.5625rem}
.researcher-detail[hidden]{display:none}

/* Panels fill nearly the full remaining viewport — leave a 0.3125rem gutter at
   the bottom so the 0.0625rem bottom border is clearly visible while still
   occupying as much screen as possible. */
#page-workspace .workspace{padding-bottom:0.3125rem;height:calc(100vh - 3.9375rem)}

/* ═══════════════════════════════════════════════════════════════
   Left sidebar polish: read-only Default / interactive Custom
   ═══════════════════════════════════════════════════════════════ */
/* Unified creator rows — whole row is the click target (opens profile). The
   inner checkbox toggles in-session membership. Selected rows use green-soft
   so the eye can quickly scan which creators are scoping the AI session. */
.creator-item{padding:0.4375rem 0.75rem;cursor:pointer}
.creator-item:hover{background:var(--bg2)}
.creator-item.selected{background:var(--green-soft)}
.creator-item.selected:hover{background:var(--green-dim)}

/* Custom mode: in-list search */
.custom-search{display:flex;align-items:center;gap:0.5rem;padding:0.4375rem 0.625rem;margin:0.375rem 0.5rem 0.5rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm)}
.custom-search svg{width:0.8125rem;height:0.8125rem;color:var(--fog);flex-shrink:0}
.custom-search-input{flex:1;background:transparent;border:none;outline:none;color:var(--cloud);font-size:0.78125rem;font-family:var(--fb)}
.custom-search-input::placeholder{color:var(--fog)}

/* Custom-mode item actions: profile + remove + checkmark stacked horizontally */
.creator-actions{display:flex;align-items:center;gap:0.3125rem;flex-shrink:0}
.creator-actions .checkbox{width:1.125rem;height:1.125rem}
.creator-remove-btn{width:1.375rem;height:1.375rem;border-radius:0.3125rem;background:transparent;border:0.0625rem solid var(--rim);color:var(--mist);display:grid;place-items:center;cursor:pointer;flex-shrink:0;transition:all .15s}
.creator-remove-btn:hover{color:var(--red);border-color:rgba(255,80,0,.3);background:rgba(255,80,0,.06)}
.creator-remove-btn svg{width:0.625rem;height:0.625rem}

/* Single "What are these?" expand at the bottom of the research-sources block */
.research-sources-note-toggle{display:block;margin:0.375rem 0 0;background:transparent;border:none;color:var(--mist);font-family:var(--fm);font-size:0.59375rem;letter-spacing:.04em;cursor:pointer;padding:0.25rem 0;text-transform:lowercase;transition:color .15s;width:100%;text-align:center}
.research-sources-note-toggle:hover{color:var(--cloud)}
.research-sources-note-toggle::before{content:'⌄ ';font-size:0.6875rem;display:inline-block;transition:transform .15s;margin-right:0.125rem}
.research-sources-note-toggle[aria-expanded="true"]::before{transform:rotate(180deg)}
.research-sources-note{font-size:0.6875rem;color:var(--cloud);line-height:1.5;padding:0.5rem 0.625rem 0.25rem;border-top:0.0625rem dashed var(--rim);margin-top:0.25rem}
.research-sources-note[hidden]{display:none}
.research-sources-note b{color:var(--gold);font-weight:600}

/* ═══════════════════════════════════════════════════════════════
   Left sidebar full-height layout: scroll inside the creator list,
   research sources pinned at the bottom.
   ═══════════════════════════════════════════════════════════════ */
#page-workspace .panel-left{display:flex;flex-direction:column;min-height:0}
#page-workspace .panel-left .ws-mode-research{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}
/* Research Sources universe relocated into the left (Creators) column */
#page-workspace .panel-left .research-in-left{flex-shrink:0;margin:0.5rem 0.625rem 0.625rem;padding:0.75rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r);display:flex;flex-direction:column;min-height:0;max-height:22rem;overflow:hidden}
#page-workspace .panel-left .research-in-left .studio-big-head{margin-bottom:0.5rem}
#page-workspace .panel-left .research-in-left .studio-research-search{margin-bottom:0.5rem}
#page-workspace .panel-left .research-in-left .studio-research-list{flex:1;min-height:5rem;margin:0;padding:0.125rem 0}
/* Middle panel: same flex-column treatment so the chat-body can flex:1 and
   the chat-input-wrap stays pinned at the bottom of the viewport. Without
   this the auto-generated answer overflows and pushes the input off-screen. */
#page-workspace .panel-middle .ws-mode-research{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}
#page-workspace .creators-controls{flex-shrink:0}
/* Each creator-list takes up the available middle band and scrolls on its own */
#page-workspace .panel-left .creator-list{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0}
/* Research sources sits below the lists, fixed at the bottom of the sidebar */
#page-workspace .panel-left .research-sources-section{flex-shrink:0;border-top:0.0625rem solid var(--rim);border-bottom:none}

/* Scrollbar styling inside the creator-list */
#page-workspace .panel-left .creator-list::-webkit-scrollbar{width:0.3125rem}
#page-workspace .panel-left .creator-list::-webkit-scrollbar-track{background:transparent}
#page-workspace .panel-left .creator-list::-webkit-scrollbar-thumb{background:var(--rim2);border-radius:6.25rem}
#page-workspace .panel-left .creator-list::-webkit-scrollbar-thumb:hover{background:var(--mist)}

/* Right Studio panel: only the inner .studio-scroll scrolls.
   IMPORTANT — set both axes (`overflow: hidden`) on the outer panels;
   `overflow-x: hidden` alone resets `overflow-y` back to visible and
   produces a redundant outer scrollbar. */
#page-workspace .panel-right,
#page-workspace #studioPanel{overflow:hidden}
#page-workspace #studioPanel .studio-scroll{overflow-x:hidden}
#page-workspace #studioPanel .studio-grid,
#page-workspace #studioPanel .studio-actions-grid{max-width:100%}

/* ═══════════════════════════════════════════════════════════════
   Creator-list polish
   ═══════════════════════════════════════════════════════════════ */
/* Unified rows — rounded chip rhythm, no bordered borders. .selected gets
   the green-soft tint to mark "in this AI session". */
#page-workspace .panel-left .creator-list .creator-item{padding:0.5rem 0.75rem;gap:0.625rem;border-radius:var(--r-sm);border-bottom:none;margin-bottom:0.125rem;transition:background .12s}
#page-workspace .panel-left .creator-list .creator-item.selected{background:var(--green-soft)}
#page-workspace .panel-left .creator-list .creator-item.selected:hover{background:var(--green-dim)}
#page-workspace .panel-left .creator-list .creator-item:not(.selected):hover{background:var(--bg2)}
#page-workspace .panel-left .creator-list .creator-item .creator-name{font-size:0.78125rem;line-height:1.25;display:flex;align-items:center;gap:0.3125rem}

/* Avatar tweak — softer gradient, lighter border */
#page-workspace .panel-left .creator-list .creator-av{width:1.875rem;height:1.875rem;font-size:0.6875rem;background:linear-gradient(135deg,var(--bg3),var(--bg4));border:0.0625rem solid var(--rim2);color:var(--cloud);font-weight:700;letter-spacing:-.01em}

/* Meta row: accuracy chip + last-activity stamp on one line */
#page-workspace .panel-left .creator-meta-row{display:flex;align-items:center;gap:0.375rem;margin-top:0.1875rem;font-family:var(--fm);font-size:0.59375rem;color:var(--fog);line-height:1}
#page-workspace .panel-left .creator-meta-row .acc-badge{font-size:0.59375rem;padding:0.0625rem 0.3125rem;line-height:1.2;letter-spacing:.02em}
#page-workspace .panel-left .creator-meta-row .creator-last{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:0}

/* Fresh-dot — slightly bigger and pulsing for emphasis */
#page-workspace .panel-left .creator-list .fresh-dot{width:0.375rem;height:0.375rem;border-radius:50%;background:var(--green);box-shadow:0 0 0.375rem var(--green);flex-shrink:0;animation:fresh-pulse 2.4s ease-in-out infinite}
@keyframes fresh-pulse{0%,100%{opacity:1}50%{opacity:.55}}

/* Subtle top + bottom shadow inside the scroll container so the user knows
   there's more content above/below when scrolled. */
#page-workspace .panel-left .creator-list{position:relative;background:linear-gradient(var(--bg1) 30%,rgba(0,0,0,0)) center top / 100% 0.75rem no-repeat,linear-gradient(rgba(0,0,0,0),var(--bg1) 70%) center bottom / 100% 0.75rem no-repeat,radial-gradient(farthest-side at 50% 0,rgba(0,0,0,.4),rgba(0,0,0,0)) center top / 100% 0.75rem no-repeat,radial-gradient(farthest-side at 50% 100%,rgba(0,0,0,.4),rgba(0,0,0,0)) center bottom / 100% 0.75rem no-repeat;background-attachment:local,local,scroll,scroll}

/* ═══════════════════════════════════════════════════════════════
   Middle panel header: compact toggle, fit subtitle on one line
   ═══════════════════════════════════════════════════════════════ */
/* Slightly larger subtitle, no wrap */
#page-workspace .panel-middle .panel-header .count{font-size:0.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ═══════════════════════════════════════════════════════════════
   Creator avatars — slightly darker so they fit the panel tone
   ═══════════════════════════════════════════════════════════════ */
#page-workspace .panel-left .creator-list .creator-av{background:linear-gradient(135deg,var(--bg2),var(--bg3));border-color:var(--rim);color:var(--cloud)}

/* ═══════════════════════════════════════════════════════════════
   Workspace readability bump — bring small typography up to comfortable sizes
   ═══════════════════════════════════════════════════════════════ */

/* Middle-panel header subtitle */
#page-workspace .panel-middle .panel-header .count{font-size:0.8125rem}

/* Chat-context bar (12 creators · 47 videos…) */
#page-workspace .chat-ctx-bar{font-size:0.78125rem;padding:0.5625rem 1rem}
#page-workspace .chat-ctx-bar b{font-weight:700}
#page-workspace .chat-ctx-limit{font-size:0.75rem}
#page-workspace .chat-ctx-limit svg{width:0.8125rem;height:0.8125rem}

/* Triage eyebrow + suggestions area */
.ws-triage-eyebrow{font-size:0.71875rem}
.ws-triage-suggestions{gap:0.375rem}
.ws-triage-sug-label{font-size:0.71875rem}
.ws-triage-sug{padding:0.375rem 0.8125rem;font-size:0.78125rem}

/* Triage research-sources card */
.ws-triage-sources{padding:1.125rem 1.25rem}
.ws-triage-sources-title{font-size:0.71875rem;letter-spacing:.1em;margin-bottom:0.875rem}
.ws-triage-sources-grid{gap:0.875rem;margin-bottom:0.875rem}
.ws-triage-src-icon{width:2rem;height:2rem;font-size:0.875rem}
.ws-triage-src-name{font-size:0.875rem}
.ws-triage-src-blurb{font-size:0.78125rem;line-height:1.5}
.ws-triage-sources-note{font-size:0.8125rem;padding-top:0.75rem;line-height:1.55}
.ws-triage-sources-note em{font-style:italic}

/* Triage main CTA + input slightly larger again */
.ws-triage-input{font-size:1rem}
.ws-triage-input-prefix{font-size:1.125rem}
.ws-triage-go{padding:0.625rem 1rem;font-size:0.875rem}

/* ═══════════════════════════════════════════════════════════════
   Middle panel top: bigger title, taller header, centred AI pills
   ═══════════════════════════════════════════════════════════════ */
/* Bigger title + breathing room inside the header */
#page-workspace .panel-middle .panel-header{padding:0.875rem 1.125rem}
#page-workspace .panel-middle .panel-header h2{font-size:1.4375rem;letter-spacing:-.01em;line-height:1.15}
#page-workspace .panel-middle .panel-header .count{font-size:0.875rem;margin-top:0.3125rem}

/* Chat-ctx bar (12 creators / 47 videos / etc.) — bumped */
#page-workspace .chat-ctx-bar{font-size:0.875rem;padding:0.625rem 1.125rem}
#page-workspace .chat-ctx-limit{font-size:0.8125rem}
#page-workspace .chat-ctx-limit svg{width:0.875rem;height:0.875rem}

/* Triage hero — slight size bump for breathing room */
.ws-triage-eyebrow{font-size:0.8125rem;letter-spacing:.14em}
.ws-triage-title{font-size:2.25rem;line-height:1.08;margin-bottom:0.125rem}
.ws-triage-sub{font-size:1rem;line-height:1.55;max-width:47.5rem}

/* ═══════════════════════════════════════════════════════════════
   Triage hero — solid green hero, the only strong green on the page
   ═══════════════════════════════════════════════════════════════ */
.ws-triage-title{color:var(--green);text-shadow:0 0 1.75rem rgba(204,255,0,.18);background:none;-webkit-text-fill-color:initial}

/* "ask anything" stays white for body-level emphasis (no extra green) */
.ws-triage-sub b{color:var(--snow);font-weight:600}

/* Source-block names back to white — clean hierarchy, no green sprawl */
.ws-triage-src-name{color:var(--snow)}

/* ═══════════════════════════════════════════════════════════════
   Studio panel readability bump — bigger card text
   ═══════════════════════════════════════════════════════════════ */
#studioPanel .studio-section-title{font-size:0.875rem;letter-spacing:.06em}
#studioPanel .studio-section-sub{font-size:0.75rem;line-height:1.5;margin-top:0.1875rem}
#studioPanel .studio-btn{padding:0.75rem 0.875rem;gap:0.375rem}
#studioPanel .studio-btn-title{font-size:0.875rem;letter-spacing:-.005em;line-height:1.2}
#studioPanel .studio-btn-sub{font-size:0.71875rem;line-height:1.4;margin-top:0.125rem}
#studioPanel .studio-btn-icon{width:2rem;height:2rem}
#studioPanel .studio-btn-icon svg{width:0.9375rem;height:0.9375rem}
#studioPanel .featured-mark{font-size:0.59375rem}
#studioPanel .studio-actions-title{font-size:0.8125rem;letter-spacing:.06em;margin-top:1.375rem}
#studioPanel .studio-action-btn{padding:0.6875rem 0.8125rem}
#studioPanel .studio-action-btn-title{font-size:0.8125rem}
#studioPanel .studio-action-btn-sub{font-size:0.6875rem;line-height:1.4}

/* ═══════════════════════════════════════════════════════════════
   Left sidebar top — readability bump on Creators header + controls
   ═══════════════════════════════════════════════════════════════ */
#page-workspace .panel-left .panel-header{padding:0.875rem 1rem}
#page-workspace .panel-left .panel-header h2{font-size:1.375rem;letter-spacing:-.005em}
#page-workspace .panel-left .panel-header .count{font-size:0.8125rem;margin-top:0.3125rem}

#page-workspace .creators-controls{padding:0.75rem 0.875rem;gap:0.5rem}
#page-workspace .creators-controls .creators-mode-btn{padding:0.4375rem 0.75rem;font-size:0.71875rem}
#page-workspace .creators-controls .ws-tf-btn{padding:0.375rem 0.625rem;font-size:0.6875rem}
#page-workspace .creators-controls .creators-mode-hint{font-size:0.75rem;line-height:1.45;padding-top:0.3125rem}

/* ═══════════════════════════════════════════════════════════════
   "Back to Research Room" button — visible whenever a ticker is scoped
   ═══════════════════════════════════════════════════════════════ */
.ws-clear-ticker{display:flex;align-items:center;gap:0.625rem;padding:0.5625rem 0.875rem;background:var(--green-soft);border:0.09375rem solid rgba(204,255,0,.32);border-radius:var(--r-sm);font-family:var(--fb);font-size:0.78125rem;font-weight:700;color:var(--green);letter-spacing:.02em;cursor:pointer;transition:all .15s;margin:0 0 1rem;width:100%}
.ws-clear-ticker:hover{background:var(--green-dim);border-color:rgba(204,255,0,.55)}
.ws-clear-ticker svg{width:0.875rem;height:0.875rem;flex-shrink:0}
.ws-clear-ticker-label{flex:1;text-align:left}
.ws-clear-ticker-scope{font-family:var(--fm);font-size:0.65625rem;font-weight:600;color:var(--cloud);background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.25rem;padding:0.1875rem 0.5rem;letter-spacing:.04em;text-transform:lowercase}
.ws-clear-ticker-scope b{color:var(--green);font-weight:700;text-transform:uppercase}
/* Hide the green "Back to Research Room" when we already show the orange
   "Back to briefing" pill — two back-actions stacked is redundant. */
body.ws-from-briefing .ws-clear-ticker{display:none}

/* ═══════════════════════════════════════════════════════════════
   In-canvas "scope a ticker" prompt
   ═══════════════════════════════════════════════════════════════ */
.canvas-scope{padding:2rem 1.5rem 1.75rem;display:flex;flex-direction:column;align-items:center;gap:0.875rem;text-align:center}
.canvas-scope-eyebrow{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.canvas-scope-title{font-family:var(--fd);font-size:1.375rem;font-weight:900;color:var(--green);letter-spacing:-.01em;line-height:1.15;margin:0;text-shadow:0 0 1.125rem rgba(204,255,0,.18)}
.canvas-scope-sub{font-size:0.8125rem;color:var(--cloud);line-height:1.5;margin:0;max-width:27.5rem}

.canvas-scope-input-wrap{display:flex;align-items:center;gap:0.375rem;width:100%;max-width:26.25rem;background:var(--bg2);border:0.09375rem solid var(--rim2);border-radius:var(--r);padding:0.3125rem;transition:border-color .15s;margin-top:0.25rem}
.canvas-scope-input-wrap:focus-within{border-color:rgba(204,255,0,.35)}
.canvas-scope-prefix{font-family:var(--fm);font-size:0.9375rem;font-weight:700;color:var(--green);padding:0 0.375rem;line-height:1;flex-shrink:0}
.canvas-scope-input{flex:1;background:transparent;border:none;outline:none;font-family:var(--fm);font-size:0.8125rem;font-weight:700;color:var(--snow);letter-spacing:.04em;padding:0.375rem 0.125rem;text-transform:uppercase;min-width:0}
.canvas-scope-input::placeholder{color:var(--fog);text-transform:none;letter-spacing:0;font-weight:500}
.canvas-scope-go{padding:0.3125rem 0.6875rem;background:var(--green);color:#000;font-family:var(--fb);font-size:0.71875rem;font-weight:700;border:none;border-radius:0.3125rem;cursor:pointer;display:inline-flex;align-items:center;gap:0.25rem;transition:filter .15s;line-height:1;flex-shrink:0;height:1.625rem}
.canvas-scope-go:hover{filter:brightness(1.05)}
.canvas-scope-go svg{width:0.6875rem;height:0.6875rem}

.canvas-scope-suggestions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0.3125rem;margin-top:0.125rem}
.canvas-scope-sug-label{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-right:0.1875rem}
.canvas-scope-sug{padding:0.3125rem 0.625rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:6.25rem;font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--cloud);cursor:pointer;transition:all .15s;letter-spacing:.02em}
.canvas-scope-sug:hover{color:var(--green);border-color:rgba(204,255,0,.32);background:var(--green-soft)}

/* Skip / general-form button (only shown for canvases that support it) */
.canvas-scope-skip{margin-top:0.875rem;padding:0.5rem 0.875rem;background:transparent;border:0.0625rem dashed var(--rim2);border-radius:var(--r-sm);font-family:var(--fm);font-size:0.6875rem;font-weight:600;color:var(--fog);letter-spacing:.04em;cursor:pointer;transition:all .15s}
.canvas-scope-skip:hover{color:var(--cloud);border-color:var(--rim2);background:var(--bg2)}

/* ═══════════════════════════════════════════════════════════════
   Custom mode: saved configs row + active-config header
   ═══════════════════════════════════════════════════════════════ */
.custom-configs{padding:0.625rem 0.5rem 0;border-bottom:0.0625rem solid var(--rim);margin:0 0 0.5rem}
.custom-configs-head{display:flex;align-items:center;justify-content:space-between;padding:0 0.375rem 0.375rem}
.custom-configs-title{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;font-weight:700}
.custom-config-new{font-family:var(--fm);font-size:0.65625rem;font-weight:700;color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.22);border-radius:0.3125rem;padding:0.1875rem 0.5625rem;cursor:pointer;transition:all .15s;letter-spacing:.04em}
.custom-config-new:hover{background:var(--green-dim);border-color:rgba(204,255,0,.4)}

.custom-configs-list{display:flex;flex-direction:column;gap:0.1875rem;padding:0 0 0.5rem}
.custom-config{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;padding:0.4375rem 0.625rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);cursor:pointer;transition:all .15s;font-family:var(--fb);font-size:0.75rem;font-weight:600;color:var(--cloud);text-align:left}
.custom-config:hover{border-color:var(--rim2)}
.custom-config.active{background:var(--green-soft);border-color:rgba(204,255,0,.32);color:var(--green)}
.custom-config-name{flex:1;letter-spacing:-.005em}
.custom-config-count{font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--fog);background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.1875rem;padding:0.125rem 0.375rem;letter-spacing:.04em}
.custom-config.active .custom-config-count{color:var(--green);background:var(--bg1);border-color:rgba(204,255,0,.18)}

/* Active config header — names which set is currently displayed */
.custom-active-head{padding:0.5rem 0.75rem 0.375rem;display:flex;align-items:baseline;justify-content:space-between;gap:0.5rem;flex-wrap:wrap}
.custom-active-name{font-family:var(--fd);font-size:0.90625rem;font-weight:800;color:var(--snow);letter-spacing:-.005em}
.custom-active-meta{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.02em}
.custom-active-meta b{color:var(--cloud);font-weight:700}

/* ═══════════════════════════════════════════════════════════════
   Custom-mode predictive search dropdown
   ═══════════════════════════════════════════════════════════════ */
.custom-search-results{margin:0 0.5rem 0.5rem;background:var(--bg2);border:0.0625rem solid var(--rim2);border-radius:var(--r-sm);overflow:hidden;display:flex;flex-direction:column;max-height:20rem;overflow-y:auto}
.custom-search-row{display:flex;align-items:center;gap:0.5625rem;padding:0.4375rem 0.625rem;background:transparent;border:none;border-bottom:0.0625rem solid var(--rim);text-align:left;cursor:pointer;color:inherit;transition:background .12s;width:100%}
.custom-search-row:last-child{border-bottom:none}
.custom-search-row:hover{background:var(--green-soft)}
.custom-search-row .creator-av{width:1.625rem;height:1.625rem;font-size:0.625rem}
.custom-search-info{flex:1;min-width:0;display:flex;flex-direction:column}
.custom-search-name{font-size:0.78125rem;font-weight:600;color:var(--snow);line-height:1.2;letter-spacing:-.005em}
.custom-search-meta{font-family:var(--fm);font-size:0.625rem;color:var(--fog);margin-top:0.125rem}
.custom-search-add{font-family:var(--fm);font-size:0.65625rem;font-weight:700;color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.22);border-radius:0.25rem;padding:0.1875rem 0.5rem;letter-spacing:.04em;flex-shrink:0}
.custom-search-row:hover .custom-search-add{background:var(--green-dim);border-color:rgba(204,255,0,.4)}
.custom-search-empty{padding:0.875rem;font-size:0.71875rem;color:var(--fog);font-style:italic;text-align:center}

/* "+ New" inline panel-creation form */
.custom-config-new-row{display:flex;align-items:center;gap:0.3125rem;padding:0.375rem 0.5rem;background:var(--green-soft);border:0.09375rem dashed rgba(204,255,0,.32);border-radius:var(--r-sm);margin-top:0.1875rem}
.custom-config-new-input{flex:1;background:var(--bg2);border:0.0625rem solid var(--rim2);border-radius:0.3125rem;padding:0.375rem 0.5625rem;color:var(--snow);font-family:var(--fb);font-size:0.75rem;font-weight:600;letter-spacing:-.005em;outline:none;min-width:0}
.custom-config-new-input::placeholder{color:var(--fog);font-weight:500}
.custom-config-new-input:focus{border-color:rgba(204,255,0,.5)}
.custom-config-new-confirm{padding:0.3125rem 0.625rem;background:var(--green);color:#000;font-family:var(--fb);font-size:0.6875rem;font-weight:700;border:none;border-radius:0.3125rem;cursor:pointer;letter-spacing:.02em}
.custom-config-new-confirm:hover{filter:brightness(1.05)}
.custom-config-new-cancel{width:1.5rem;height:1.5rem;background:transparent;border:0.0625rem solid var(--rim);border-radius:0.3125rem;color:var(--fog);cursor:pointer;font-size:0.875rem;font-weight:600;display:grid;place-items:center;flex-shrink:0;line-height:1;padding:0}
.custom-config-new-cancel:hover{color:var(--red);border-color:rgba(255,80,0,.32)}

/* ═══════════════════════════════════════════════════════════════
   BRIEFING v2 — section blocks (Pulse, Center of Gravity,
   Disagreements, Themes-refined, Risks Brewing, Hidden Gems)
   ═══════════════════════════════════════════════════════════════ */

/* The Pulse — only place words breathe. AI-distilled paragraph at the top
   of the briefing; bold ticker / theme links route into the workspace. */
.brief-pulse{margin:2.5rem 0 3rem;padding:1.75rem 1.875rem 1.5rem;background:linear-gradient(180deg,rgba(204,255,0,.025) 0%,var(--bg1) 70%);border:0.0625rem solid rgba(204,255,0,.12);border-radius:var(--r-lg);position:relative}
.brief-pulse::before{content:'The Pulse';position:absolute;top:-0.5rem;left:1.5rem;padding:0.1875rem 0.625rem;background:var(--bg);color:var(--green);font-family:var(--fm);font-size:0.625rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;border:0.0625rem solid rgba(204,255,0,.22);border-radius:0.25rem}
/* Cap the Pulse paragraph at a comfortable reading width even when the
   main column is wide — long lines hurt comprehension. */
.brief-pulse p{font-family:var(--fb);font-size:1.0625rem;line-height:1.65;color:var(--cloud);margin:0;max-width:54rem}
.brief-pulse .pulse-link{color:var(--green);font-weight:600;background:var(--green-soft);padding:0.0625rem 0.4375rem;border-radius:0.25rem;border:0.0625rem solid rgba(204,255,0,.18);text-decoration:none;transition:all .15s;white-space:nowrap}
.brief-pulse .pulse-link:hover{background:var(--green-dim);border-color:rgba(204,255,0,.4)}
.brief-pulse .pulse-link:hover::after{content:' ↗';font-size:.85em}

/* ── Pulse · expandable "Read more" dropdown ──
   Lets readers stay in the briefing for more depth before being pushed
   into the workspace. Each extra paragraph fades + slides in subtly. */
.pulse-more{display:flex;flex-direction:column;gap:0.875rem;margin-top:1rem;max-width:54rem}
.pulse-more[hidden]{display:none}
.pulse-more p{animation:pulseFadeIn .42s cubic-bezier(.2,.8,.25,1) both}
.pulse-more p:nth-child(1){animation-delay:.04s}
.pulse-more p:nth-child(2){animation-delay:.16s}
.pulse-more p:nth-child(3){animation-delay:.28s}
.pulse-more b{color:var(--snow);font-weight:700}
.pulse-more i{color:var(--green);font-style:italic;font-weight:600}
@keyframes pulseFadeIn{
  from{opacity:0;transform:translateY(0.4375rem);filter:blur(0.0625rem)}
  to  {opacity:1;transform:translateY(0);filter:blur(0)}
}

.pulse-more-btn{display:flex;align-items:center;justify-content:center;gap:0.5rem;margin:-0.5rem auto 0;padding:0.5rem 1.125rem 0.5rem 1rem;background:var(--bg);border:0.0625rem dashed rgba(204,255,0,.32);border-radius:6.25rem;font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--green);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .2s ease;position:relative;z-index:1;box-shadow:0 0.25rem 1.25rem rgba(0,0,0,.45)}
.pulse-more-btn:hover{border-color:rgba(204,255,0,.55);background:var(--green-soft);transform:translateY(-0.0625rem) scale(1.02);box-shadow:0 0.375rem 1.5rem rgba(204,255,0,.18)}
.pulse-more-arrow{display:inline-block;font-size:0.625rem;line-height:1;transition:transform .28s ease}
.pulse-more-btn[aria-expanded="true"] .pulse-more-arrow{transform:rotate(180deg)}

/* Fade-to-nothing effect on the lead paragraph when collapsed —
   the bottom of the text dissolves into transparency, and the centered
   Read more button sits in that empty zone, looking like it emerges
   from the dissolving text. */
.brief-pulse:not(.pulse-expanded) .pulse-lead{
  -webkit-mask-image:linear-gradient(180deg,#000 0,#000 62%,rgba(0,0,0,.45) 82%,transparent 100%);
          mask-image:linear-gradient(180deg,#000 0,#000 62%,rgba(0,0,0,.45) 82%,transparent 100%)
}
.brief-pulse:not(.pulse-expanded) .pulse-lead{padding-bottom:0.875rem}
/* When expanded the mask lifts smoothly via the paragraph's natural state. */
.brief-pulse.pulse-expanded .pulse-lead{transition:mask .25s ease, -webkit-mask .25s ease}
.pulse-foot{display:flex;align-items:center;gap:0.625rem;margin-top:1.25rem;padding-top:1rem;border-top:0.0625rem dashed var(--rim);flex-wrap:wrap}
.pulse-foot-lbl{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.pulse-foot-chip{font-family:var(--fm);font-size:0.6875rem;color:var(--cloud);padding:0.1875rem 0.5rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:6.25rem;letter-spacing:.02em}
.pulse-foot-chip b{color:var(--green);font-weight:700}

/* The Pulse · linguistic-signal block — three mini-vizzes that show HOW the
   room is talking, not just what. Sits between the paragraph and the CTA. */
.pulse-signals{margin-top:1.25rem;padding-top:1.125rem;border-top:0.0625rem dashed var(--rim)}
.pulse-signals-head{display:flex;align-items:baseline;gap:0.625rem;margin-bottom:0.875rem;flex-wrap:wrap}
.pulse-signals-lbl{font-family:var(--fm);font-size:0.625rem;color:var(--green);letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.pulse-signals-sub{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em}
.pulse-signals-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.875rem}
@media(max-width:780px){.pulse-signals-grid{grid-template-columns:1fr}}

/* Drill-down: 3 more patterns behind a dropdown.
   IMPORTANT — the [hidden] attribute is overridden by .pulse-signals-grid's
   `display:grid`, so we explicitly hide via attribute selector. */
.pulse-signals-extra{margin-top:0.875rem;grid-template-columns:repeat(3,1fr)}
.pulse-signals-extra[hidden]{display:none}
@media(max-width:980px){.pulse-signals-extra{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.pulse-signals-extra{grid-template-columns:1fr}}
.psig-more{display:flex;align-items:center;justify-content:center;gap:0.4375rem;width:100%;margin-top:0.875rem;padding:0.625rem 0.875rem;background:transparent;border:0.0625rem dashed var(--rim2);border-radius:var(--r-sm);font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--cloud);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all .15s}
.psig-more:hover{border-color:rgba(204,255,0,.32);color:var(--green);background:var(--green-soft)}
.psig-more-arrow{display:inline-block;transition:transform .2s ease;font-size:0.625rem}
.psig-more[aria-expanded="true"] .psig-more-arrow{transform:rotate(180deg)}

/* Pattern card — visual at the top, headline number, plain-English meta.
   Cards equalize via min-height + grid-row template so the visual area is a
   consistent band across all 6, regardless of the visual inside. */
.psig{padding:0.875rem 1rem 1rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);display:grid;grid-template-rows:auto 5.25rem auto auto;gap:0.625rem;min-height:14.5rem;transition:all .18s;position:relative;overflow:hidden}
/* Primary cards lock head + vis + headline rows so big numbers align across all three. */
.psig-primary{grid-template-rows:1.5rem 6rem auto auto auto;gap:0.5rem;min-height:0;padding:0.875rem 1rem 0}
.psig-primary .psig-head{align-items:center;min-height:1.5rem}
.psig-primary .psig-title{font-size:0.625rem;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* Stack the big number above the caption — pins the number to a constant Y
   across all primary cards regardless of how the caption wraps. */
.psig-primary .psig-headline{display:flex;flex-direction:column;align-items:flex-start;align-self:start;gap:0.0625rem;flex-wrap:nowrap}
.psig-primary .psig-headline b{line-height:1;height:1.625rem;display:flex;align-items:center}
.psig-primary .psig-headline span{line-height:1.3}
.psig:hover{border-color:var(--rim2);transform:translateY(-0.0625rem)}
/* Direction-based subtle wash + border tint */
.psig[data-trend="up"]     {background:linear-gradient(180deg,rgba(204,255,0,.025) 0%,var(--bg2) 60%);border-color:rgba(204,255,0,.18)}
.psig[data-trend="up"]:hover{border-color:rgba(204,255,0,.36)}
.psig[data-trend="down"]   {background:linear-gradient(180deg,rgba(255,80,0,.025) 0%,var(--bg2) 60%);border-color:rgba(255,80,0,.16)}
.psig[data-trend="down"]:hover{border-color:rgba(255,80,0,.32)}
.psig[data-trend="new"]    {background:linear-gradient(180deg,rgba(204,255,0,.03) 0%,var(--bg2) 60%);border-color:rgba(204,255,0,.18)}
.psig[data-trend="new"]:hover{border-color:rgba(204,255,0,.36)}
.psig[data-trend="aligned"]{background:linear-gradient(180deg,rgba(46,229,213,.03) 0%,var(--bg2) 60%);border-color:rgba(46,229,213,.16)}
.psig[data-trend="aligned"]:hover{border-color:rgba(46,229,213,.32)}
.psig[data-trend="warn"]   {background:linear-gradient(180deg,rgba(245,166,35,.03) 0%,var(--bg2) 60%);border-color:rgba(245,166,35,.18)}
.psig[data-trend="warn"]:hover{border-color:rgba(245,166,35,.36)}

/* Card header — title left, direction tag right */
.psig-head{display:flex;align-items:flex-start;justify-content:space-between;gap:0.5rem}
.psig-title{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.12em;text-transform:uppercase;font-weight:700;line-height:1.3;flex:1}
.psig-tag{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0.125rem 0.4375rem;border-radius:0.1875rem;white-space:nowrap;flex-shrink:0;border:0.0625rem solid transparent}
.psig-tag.up     {color:var(--green); background:var(--green-soft);            border-color:rgba(204,255,0,.22)}
.psig-tag.down   {color:var(--red);   background:rgba(255,80,0,.08);           border-color:rgba(255,80,0,.22)}
.psig-tag.new    {color:var(--green); background:var(--green-soft);            border-color:rgba(204,255,0,.22)}
.psig-tag.aligned{color:var(--teal);  background:rgba(46,229,213,.08);         border-color:rgba(46,229,213,.22)}
.psig-tag.warn   {color:var(--gold);  background:rgba(245,166,35,.08);         border-color:rgba(245,166,35,.22)}

/* Headline number — bigger and more prominent so it's the eye-catch */
.psig-headline{font-family:var(--fd);font-size:0.78125rem;font-weight:600;color:var(--cloud);line-height:1.3;letter-spacing:-.005em;display:flex;align-items:baseline;gap:0.5rem;flex-wrap:wrap}
.psig-headline b{font-size:1.625rem;font-weight:900;letter-spacing:-.02em;color:var(--snow);line-height:1}
.psig-headline b.up  {color:var(--green)}
.psig-headline b.down{color:var(--red)}
.psig-headline span{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);font-weight:600;letter-spacing:.02em;text-transform:uppercase}
/* Plain-English meta line */
.psig-meta{font-family:var(--fb);font-size:0.71875rem;color:var(--cloud);line-height:1.55;margin:0}
.psig-meta i{color:var(--green);font-style:italic;font-weight:600}
.psig-meta b{color:var(--snow);font-weight:600}

/* ── Surface · Pattern 1: How sure they're sounding (sparkline w/ halo) ── */
.psig-conv-vis{display:flex;align-items:center;width:100%;height:100%}
.psig-spark{width:100%;height:100%;display:block;overflow:visible}
.psig-spark .baseline{stroke:var(--rim2);stroke-width:1;stroke-dasharray:3 3}
.psig-spark .baseline-lbl{font-family:var(--fm,monospace);font-size:7px;fill:var(--fog);letter-spacing:.04em;text-transform:uppercase;font-weight:700}
.psig-spark .line{fill:none;stroke:var(--green);stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 0.1875rem rgba(204,255,0,.35))}
.psig-spark .dot{fill:var(--green);stroke:var(--bg2);stroke-width:1.2}
.psig-spark .dot-halo{fill:rgba(204,255,0,.18);animation:dot-pulse 2s ease-in-out infinite}
@keyframes dot-pulse{0%,100%{opacity:.2;r:5}50%{opacity:.6;r:8}}

/* ── Surface · Pattern 2: New ideas catching on (phrase pills, sized) ── */
.psig-phr-cloud{display:flex;flex-wrap:wrap;gap:0.4375rem;align-content:center;align-items:center;height:100%;width:100%}
.phr-pill{display:inline-flex;align-items:baseline;gap:0.375rem;padding:0.25rem 0.625rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:6.25rem;font-family:var(--fb);color:var(--cloud);line-height:1.2;font-weight:600;letter-spacing:-.005em;transition:all .15s}
.phr-pill em{font-style:normal;color:var(--fog);font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.04em}
.phr-pill:hover{border-color:var(--rim2)}
.phr-pill.big{font-size:0.875rem;background:var(--green-soft);border-color:rgba(204,255,0,.32);color:var(--green);padding:0.3125rem 0.75rem;box-shadow:0 0 0.5rem rgba(204,255,0,.12)}
.phr-pill.big em{color:var(--green)}
.phr-pill.mid{font-size:0.78125rem;border-color:rgba(204,255,0,.14)}
.phr-pill.sm {font-size:0.71875rem}
.phr-pill.xs {font-size:0.65625rem}

/* ── Surface · Pattern 3: Camps lining up (3 thicker bars) ── */
.psig-camp-bars{display:flex;flex-direction:column;gap:0.4375rem;justify-content:center;height:100%;width:100%}
.psig-camp-row{display:grid;grid-template-columns:3.875rem 1fr 2.125rem;align-items:center;gap:0.5rem;font-family:var(--fm);font-size:0.65625rem}
.psig-camp-lbl{color:var(--cloud);font-weight:600;letter-spacing:.02em}
.psig-camp-track{height:0.4375rem;background:var(--bg3);border-radius:6.25rem;overflow:hidden;border:0.0625rem solid var(--rim)}
.psig-camp-fill{display:block;height:100%;border-radius:6.25rem;transition:width .4s ease}
.psig-camp-fill.bull{background:linear-gradient(90deg,rgba(204,255,0,.55),var(--green))}
.psig-camp-fill.mid {background:linear-gradient(90deg,rgba(245,166,35,.55),var(--gold))}
.psig-camp-fill.bear{background:linear-gradient(90deg,rgba(255,80,0,.55),var(--red))}
.psig-camp-pct{color:var(--snow);font-weight:700;text-align:right;letter-spacing:.02em}

/* ── Drilldown · Pattern 4: Receipts being shown (before/after bars) ── */
.psig-rcpt-vis{display:flex;flex-direction:column;gap:0.625rem;justify-content:center;height:100%;width:100%}
.rcpt-bar-row{display:grid;grid-template-columns:4.625rem 1fr 2.125rem;align-items:center;gap:0.5rem;font-family:var(--fm);font-size:0.65625rem}
.rcpt-bar-lbl{color:var(--fog);font-weight:600;letter-spacing:.02em}
.rcpt-bar-row.today .rcpt-bar-lbl{color:var(--green);font-weight:700}
.rcpt-bar-track{height:0.5rem;background:var(--bg3);border-radius:6.25rem;overflow:hidden;border:0.0625rem solid var(--rim)}
.rcpt-bar-fill{display:block;height:100%;border-radius:6.25rem}
.rcpt-bar-fill.base{background:var(--mist)}
.rcpt-bar-fill.now {background:linear-gradient(90deg,rgba(204,255,0,.5),var(--green))}
.rcpt-bar-val{color:var(--cloud);font-weight:700;text-align:right;letter-spacing:.02em}
.rcpt-bar-row.today .rcpt-bar-val{color:var(--green)}

/* ── Drilldown · Pattern 5: Same line, different mouths (network SVG) ── */
.psig-echo-vis{display:flex;align-items:center;justify-content:center;height:100%;width:100%}
.psig-echo-vis svg{width:100%;height:100%;max-width:13rem;max-height:5rem}
.psig-echo-vis .cre-init{font-family:var(--fm,monospace);font-size:8px;fill:var(--gold);font-weight:700;letter-spacing:.04em}
.psig-echo-vis .echo-phrase{font-family:var(--fm,monospace);font-size:9px;fill:var(--gold);font-weight:600;letter-spacing:.02em}

/* ── Drilldown · Pattern 6: Words leaving the room (faded pills) ── */
.psig-fade-cloud{display:flex;flex-wrap:wrap;gap:0.3125rem;align-content:center;align-items:center;height:100%;width:100%}
.fade-pill{display:inline-flex;align-items:center;padding:0.25rem 0.5625rem;background:transparent;border:0.0625rem dashed var(--rim2);border-radius:6.25rem;font-family:var(--fb);font-size:0.71875rem;color:var(--fog);font-weight:500;line-height:1.2;letter-spacing:-.005em}
.fade-pill s{text-decoration:line-through;text-decoration-color:rgba(255,80,0,.4);text-decoration-thickness:0.0625rem}

/* The CTA at the bottom — the gateway from passive briefing to active workspace */
.pulse-cta{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0.875rem;margin-top:1.25rem;padding:1rem 1.125rem;background:linear-gradient(135deg,rgba(204,255,0,.06),rgba(204,255,0,.02));border:0.0625rem solid rgba(204,255,0,.22);border-radius:var(--r);text-decoration:none;cursor:pointer;transition:all .18s;color:inherit}
.pulse-cta:hover{background:linear-gradient(135deg,rgba(204,255,0,.1),rgba(204,255,0,.04));border-color:rgba(204,255,0,.4);transform:translateY(-0.0625rem)}
.pulse-cta-text{font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);letter-spacing:-.005em;line-height:1.2;grid-row:1;grid-column:1}
.pulse-cta-sub{font-family:var(--fb);font-size:0.71875rem;color:var(--fog);letter-spacing:.02em;grid-row:2;grid-column:1;margin-top:0.1875rem;line-height:1.4}
.pulse-cta-arrow{font-family:var(--fm);font-size:1.375rem;color:var(--green);grid-row:1/-1;grid-column:2;align-self:center;line-height:1;transition:transform .15s}
.pulse-cta:hover .pulse-cta-arrow{transform:translateX(0.25rem)}

/* Patterns Emerging — AI-detected behavioural motifs. Each card has a small
   characteristic visualization (timeline, network overlap, cascade flow). */
.patterns-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.875rem;margin-top:1.125rem}
@media(max-width:1100px){.patterns-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.patterns-grid{grid-template-columns:1fr}}
.pattern-card{display:flex;flex-direction:column;gap:0.625rem;padding:1rem 1.125rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);cursor:pointer;transition:all .18s;text-align:left;font-family:inherit;color:inherit;border-left:0.1875rem solid var(--gold)}
.pattern-card:hover{border-color:rgba(245,166,35,.4);transform:translateY(-0.0625rem)}
.pattern-head{display:flex;align-items:center;gap:0.5rem;justify-content:space-between}
.pattern-tag{font-family:var(--fm);font-size:0.59375rem;color:var(--gold);background:rgba(245,166,35,.08);border:0.0625rem solid rgba(245,166,35,.22);padding:0.125rem 0.5rem;border-radius:0.1875rem;letter-spacing:.06em;text-transform:uppercase;font-weight:700}
.pattern-conf{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0.0625rem 0.4375rem;border-radius:0.1875rem}
.pattern-conf.high{color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.22)}
.pattern-conf.med {color:var(--gold); background:rgba(245,166,35,.08); border:0.0625rem solid rgba(245,166,35,.22)}
.pattern-conf.low {color:var(--fog);  background:var(--bg3);            border:0.0625rem solid var(--rim)}
.pattern-title{font-family:var(--fd);font-size:0.96875rem;font-weight:800;color:var(--snow);line-height:1.25;letter-spacing:-.005em}
.pattern-body{font-size:0.75rem;color:var(--cloud);line-height:1.55;flex:1}
.pattern-body b{color:var(--snow);font-weight:600}
.pattern-foot{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;padding-top:0.5rem;border-top:0.0625rem dashed var(--rim);flex-wrap:wrap}
.pattern-tickers{font-family:var(--fm);font-size:0.6875rem;color:var(--cloud);font-weight:600;letter-spacing:.04em}
.pattern-cta{font-family:var(--fm);font-size:0.625rem;color:var(--gold);letter-spacing:.06em;text-transform:uppercase;font-weight:700}

/* Visualization 1: timeline of camp lag */
.pattern-viz{padding:0.625rem 0.5rem;background:var(--bg2);border-radius:var(--r-sm);margin-top:0.125rem}
.pattern-viz.timeline{position:relative;height:2.75rem}
.pattern-viz.timeline .tl-track{position:absolute;left:0.5rem;right:0.5rem;top:50%;height:0.0625rem;background:linear-gradient(90deg,var(--rim2),var(--rim))}
.pattern-viz.timeline .tl-dot{position:absolute;top:50%;transform:translate(-50%,-50%);width:0.625rem;height:0.625rem;border-radius:50%;border:0.0625rem solid var(--bg2)}
.pattern-viz.timeline .tl-dot.analyst {background:var(--blue)}
.pattern-viz.timeline .tl-dot.investor{background:var(--cloud)}
.pattern-viz.timeline .tl-dot.trader  {background:var(--gold)}
.pattern-viz.timeline .tl-dot.pending {background:transparent;border:0.0625rem dashed var(--mist)}
.pattern-viz.timeline .tl-lbl{position:absolute;top:0.875rem;left:50%;transform:translateX(-50%);font-family:var(--fm);font-size:0.5625rem;color:var(--fog);white-space:nowrap;letter-spacing:.04em}
.pattern-viz.timeline .tl-dot.analyst  .tl-lbl{color:var(--blue)}
.pattern-viz.timeline .tl-dot.investor .tl-lbl{color:var(--cloud)}
.pattern-viz.timeline .tl-dot.trader   .tl-lbl{color:var(--gold)}

/* Visualization 2: network overlap diagram (SVG) */
.pattern-viz.overlap{height:4rem;display:flex;align-items:center;justify-content:center}
.pattern-viz.overlap svg{width:100%;height:100%;max-width:18rem}

/* Visualization 3: cascade flow (analyst → trader → investor) */
.pattern-viz.cascade{display:flex;align-items:center;gap:0.375rem;padding:0.5rem 0.5rem;font-family:var(--fm);font-size:0.625rem;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
.pattern-viz.cascade::-webkit-scrollbar{display:none}
.cas-step{display:flex;flex-direction:column;align-items:center;gap:0.125rem;padding:0.375rem 0.5rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);flex-shrink:0;min-width:4rem}
.cas-step.pending{border-style:dashed;border-color:var(--rim2)}
.cas-camp{font-size:0.5625rem;color:var(--cloud);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.cas-camp.analyst {color:var(--blue)}
.cas-camp.investor{color:var(--cloud)}
.cas-camp.trader  {color:var(--gold)}
.cas-when{font-size:0.5625rem;color:var(--fog);letter-spacing:.04em}
.cas-stance{font-size:0.5625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0.0625rem 0.3125rem;border-radius:0.1875rem;margin-top:0.125rem}
.cas-stance.bull{color:var(--green);background:var(--green-soft)}
.cas-stance.bear{color:var(--red);  background:rgba(255,80,0,.08)}
.cas-arrow{color:var(--gold);font-size:0.875rem;line-height:1;flex-shrink:0;opacity:.7}

/* Diffuse insight footer — single line at the bottom of a section, gold dot,
   small "AI noticed" label, factual one-liner. The point is to surface a
   non-obvious observation without adding section weight. */
.section-insight{margin-top:1.125rem;padding:0.75rem 1rem;background:linear-gradient(135deg,rgba(245,166,35,.05),rgba(245,166,35,.015));border:0.0625rem solid rgba(245,166,35,.18);border-radius:var(--r-sm);font-size:0.75rem;line-height:1.55;color:var(--cloud);display:flex;align-items:flex-start;gap:0.5rem;flex-wrap:wrap}
.section-insight-icon{color:var(--gold);font-size:0.75rem;line-height:1.55;flex-shrink:0}
.section-insight-lbl{font-family:var(--fm);font-size:0.59375rem;color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-weight:700;flex-shrink:0;margin-top:0.0625rem}
.section-insight-text{flex:1;min-width:14rem}
.section-insight-text b{color:var(--snow);font-weight:600}

/* Theme drift — 4-state taxonomy (Emerging / Building / Peaking / Fading)
   replaces the old new/growing/waning chips. The .drift-tail span shows
   the trailing window inline (e.g. "Emerging 24h", "Peaking 30d"). */
.theme-card-drift.emerging{color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.22);display:inline-flex;align-items:center;gap:0.3125rem}
.theme-card-drift.building {color:var(--teal); background:rgba(46,229,213,.08); border:0.0625rem solid rgba(46,229,213,.22);display:inline-flex;align-items:center;gap:0.3125rem}
.theme-card-drift.peaking  {color:var(--gold); background:rgba(245,166,35,.08); border:0.0625rem solid rgba(245,166,35,.22);display:inline-flex;align-items:center;gap:0.3125rem}
.theme-card-drift.fading   {color:var(--fog);  background:var(--bg3);            border:0.0625rem solid var(--rim);          display:inline-flex;align-items:center;gap:0.3125rem}
.theme-card-drift .drift-tail{font-weight:600;opacity:.7;letter-spacing:.04em}

/* Inline drift sparkline next to the badge — JS-injected, sized to the chip line height */
.theme-card-spark{width:2.75rem;height:0.875rem;flex-shrink:0;margin-left:0.375rem;display:inline-block;vertical-align:middle}
.theme-card-spark path.line{fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.theme-card-spark path.area{opacity:.18}
.theme-card-spark.up   path.line{stroke:var(--green)}.theme-card-spark.up   path.area{fill:var(--green)}
.theme-card-spark.down path.line{stroke:var(--red)}  .theme-card-spark.down path.area{fill:var(--red)}
.theme-card-spark.flat path.line{stroke:var(--fog)}  .theme-card-spark.flat path.area{fill:var(--fog)}

/* Collapse-by-default for the second quote so the card reads in a glance.
   `.theme-card.expanded` reveals it; expand button hides itself when open. */
.theme-card .theme-quotes > .theme-quote:nth-child(n+2){display:none}
.theme-card.expanded .theme-quotes > .theme-quote{display:block}
.theme-card-expand{margin-top:0.5rem;width:100%;padding:0.5rem 0.75rem;background:var(--bg2);border:0.0625rem dashed var(--rim2);border-radius:var(--r-sm);font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--cloud);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .18s;display:flex;align-items:center;justify-content:center;gap:0.4375rem;line-height:1}
.theme-card-expand::after{content:'▾';font-size:0.625rem;transition:transform .2s}
.theme-card-expand:hover{color:var(--snow);border-color:var(--rim3,var(--cloud));background:var(--bg3)}
.theme-card.tail .theme-card-expand:hover{border-color:rgba(46,229,213,.4)}
.theme-card.head .theme-card-expand:hover{border-color:rgba(255,80,0,.4)}
.theme-card.expanded .theme-card-expand{display:none}

/* Hidden Gems Tracker — two halves of one card.
   Left: rear-view (30d ago we flagged X). Right: today's new flag. */
/* Track-record hero band — proves the gem feed has signal */
.gem-track{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.25rem;margin-top:1.125rem;padding:1rem 1.25rem;background:linear-gradient(135deg,rgba(245,166,35,.05),rgba(204,255,0,.03) 60%,rgba(245,166,35,0)),var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);position:relative;overflow:hidden}
.gem-track::before{content:'';position:absolute;top:0;left:0;right:0;height:0.0625rem;background:linear-gradient(90deg,transparent 0%,rgba(245,166,35,.4) 30%,rgba(204,255,0,.4) 70%,transparent 100%);pointer-events:none}
@media(max-width:780px){.gem-track{grid-template-columns:1fr;gap:0.875rem;text-align:left}}
.gem-track-stat{display:flex;flex-direction:column;gap:0.125rem;flex-shrink:0;min-width:0}
.gem-track-num{font-family:var(--fm);font-size:2.5rem;font-weight:800;color:var(--gold);line-height:0.95;letter-spacing:-.02em;text-shadow:0 0 1.25rem rgba(245,166,35,.18)}
.gem-track-num small{font-family:var(--fm);font-size:1rem;font-weight:700;color:var(--gold);margin-left:0.0625rem;opacity:.85}
.gem-track-lbl{font-family:var(--fm);font-size:0.71875rem;font-weight:700;color:var(--snow);letter-spacing:.04em;line-height:1.2}
.gem-track-sub{font-family:var(--fb);font-size:0.65625rem;color:var(--fog);line-height:1.3}
.gem-track-history{display:flex;flex-direction:column;gap:0.375rem;flex:1;min-width:0;padding:0 0.25rem}
.gem-track-history-lbl{font-family:var(--fm);font-size:0.59375rem;font-weight:700;color:var(--fog);letter-spacing:.1em;text-transform:uppercase}
.gem-flag-row{display:flex;flex-wrap:wrap;gap:0.3125rem}
.gem-flag-pill{display:inline-flex;align-items:center;gap:0.25rem;padding:0.1875rem 0.4375rem;border-radius:0.25rem;font-family:var(--fm);font-size:0.625rem;font-weight:700;letter-spacing:.02em;border:0.0625rem solid;cursor:default;transition:transform .18s,box-shadow .18s;line-height:1}
.gem-flag-pill em{font-style:normal;font-size:0.5625rem;font-weight:600;opacity:.85}
.gem-flag-pill:hover{transform:translateY(-0.0625rem);box-shadow:0 0.1875rem 0.4375rem rgba(0,0,0,.32)}
.gem-flag-pill.hit  {color:var(--green); background:var(--green-soft);  border-color:rgba(204,255,0,.32)}
.gem-flag-pill.mixed{color:var(--gold);  background:rgba(245,166,35,.08); border-color:rgba(245,166,35,.32)}
.gem-flag-pill.miss {color:var(--red);   background:rgba(255,80,0,.08);   border-color:rgba(255,80,0,.32)}
.gem-flag-pill.new  {color:var(--snow);  background:var(--bg1);            border-color:var(--rim2);box-shadow:0 0 0 0 rgba(204,255,0,.55);animation:gemPillPulse 2.4s ease-out infinite;position:relative}
.gem-flag-pill.new em{color:var(--green)}
@keyframes gemPillPulse{0%{box-shadow:0 0 0 0 rgba(204,255,0,.5)}70%{box-shadow:0 0 0 0.5rem rgba(204,255,0,0)}100%{box-shadow:0 0 0 0 rgba(204,255,0,0)}}
.gem-track-legend{display:flex;flex-direction:column;gap:0.4375rem;flex-shrink:0;padding-left:1rem;border-left:0.0625rem solid var(--rim)}
@media(max-width:780px){.gem-track-legend{flex-direction:row;padding-left:0;border-left:0;border-top:0.0625rem solid var(--rim);padding-top:0.625rem;gap:1rem;flex-wrap:wrap}}
.gem-legend-item{display:flex;align-items:center;gap:0.375rem;font-family:var(--fb);font-size:0.625rem;color:var(--fog);line-height:1.3}
.gem-legend-item b{font-family:var(--fm);font-weight:700;letter-spacing:.04em;font-size:0.625rem}
.gem-legend-item.hit   b{color:var(--green)}
.gem-legend-item.mixed b{color:var(--gold)}
.gem-legend-item.miss  b{color:var(--red)}
.gem-legend-item span:not(.gem-legend-dot){opacity:.85}
.gem-legend-dot{display:inline-block;width:0.5rem;height:0.5rem;border-radius:50%;flex-shrink:0}
.gem-legend-item.hit   .gem-legend-dot{background:var(--green);box-shadow:0 0 0.375rem rgba(204,255,0,.4)}
.gem-legend-item.mixed .gem-legend-dot{background:var(--gold); box-shadow:0 0 0.375rem rgba(245,166,35,.4)}
.gem-legend-item.miss  .gem-legend-dot{background:var(--red);  box-shadow:0 0 0.375rem rgba(255,80,0,.4)}

.gem-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}
@media(max-width:820px){.gem-pair{grid-template-columns:1fr}}
.gem-card{padding:1.125rem 1.25rem;background:linear-gradient(180deg,rgba(255,255,255,.014) 0%,rgba(255,255,255,0) 55%),var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);position:relative;overflow:hidden;cursor:pointer;transition:border-color .18s,transform .18s,box-shadow .18s,background .18s;display:flex;flex-direction:column;gap:0.75rem}
.gem-card::before{content:'';position:absolute;top:0;left:0.1875rem;right:0;height:0.0625rem;pointer-events:none;opacity:.6;transition:opacity .18s}
.gem-card.retro::before{background:linear-gradient(90deg,transparent 0%,rgba(245,166,35,.55) 50%,transparent 100%)}
.gem-card.flag::before {background:linear-gradient(90deg,transparent 0%,rgba(204,255,0,.55) 50%,transparent 100%)}
.gem-card:hover{border-color:var(--rim2);transform:translateY(-0.125rem);box-shadow:0 0.5rem 1.125rem rgba(0,0,0,.26)}
.gem-card.retro:hover{background:linear-gradient(180deg,rgba(245,166,35,.035) 0%,rgba(245,166,35,0) 60%),var(--bg1)}
.gem-card.flag:hover {background:linear-gradient(180deg,rgba(204,255,0,.035) 0%,rgba(204,255,0,0) 60%),var(--bg1)}
.gem-card:hover::before{opacity:1}
.gem-card.retro{border-left:0.1875rem solid var(--gold)}
.gem-card.flag {border-left:0.1875rem solid var(--green)}
.gem-card-eyebrow{display:inline-flex;align-items:center;gap:0.4375rem;font-family:var(--fm);font-size:0.59375rem;color:var(--gold);letter-spacing:.16em;text-transform:uppercase;font-weight:700;padding:0.1875rem 0.5rem;background:rgba(245,166,35,.05);border:0.0625rem solid rgba(245,166,35,.28);border-radius:0.1875rem;align-self:flex-start;line-height:1}
.gem-card-eyebrow.new{color:var(--green);background:var(--green-soft);border-color:rgba(204,255,0,.32)}
.gem-card-eyebrow-dot{width:0.4375rem;height:0.4375rem;border-radius:50%;background:currentColor;box-shadow:0 0 0.5rem currentColor;animation:gemEyebrowPulse 2.4s ease-in-out infinite;opacity:.85}
@keyframes gemEyebrowPulse{0%,100%{opacity:.9}50%{opacity:.4}}
.gem-card-head{display:flex;align-items:baseline;gap:0.625rem}
.gem-card-tk{font-family:var(--fm);font-size:1.375rem;font-weight:700;color:var(--snow);letter-spacing:-.01em}
.gem-card-co{font-size:0.78125rem;color:var(--fog);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gem-card-delta{display:flex;flex-direction:column;align-items:flex-end;gap:0.0625rem;flex-shrink:0}
.gem-delta-v{font-family:var(--fm);font-size:1rem;font-weight:700;line-height:1}
.gem-delta-l{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em}
.gem-card-delta.up      .gem-delta-v{color:var(--green)}
.gem-card-delta.down    .gem-delta-v{color:var(--red)}
.gem-card-delta.neutral .gem-delta-v{color:var(--fog)}

/* Then-vs-now sparkline with start/end markers */
.gem-chart{display:flex;flex-direction:column;gap:0.4375rem;padding:0.625rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm)}
.gem-chart-axis{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;font-family:var(--fm);font-size:0.625rem;font-weight:700;letter-spacing:.02em;line-height:1}
.gem-chart-tag{display:inline-flex;align-items:center;gap:0.3125rem;padding:0.1875rem 0.4375rem;border-radius:0.1875rem;border:0.0625rem solid}
.gem-chart-tag::before{content:'';width:0.4375rem;height:0.4375rem;border-radius:50%}
.gem-chart-tag.start{color:var(--gold);background:rgba(245,166,35,.05);border-color:rgba(245,166,35,.28)}
.gem-chart-tag.start::before{background:var(--gold);box-shadow:0 0 0.4375rem rgba(245,166,35,.5)}
.gem-chart-tag.end{color:var(--green);background:var(--green-soft);border-color:rgba(204,255,0,.28)}
.gem-chart-tag.end::before{background:var(--green);box-shadow:0 0 0.4375rem rgba(204,255,0,.5)}
.gem-spark{width:100%;height:5rem;display:block}
.gem-spark .line{fill:none;stroke:var(--green);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 0.1875rem rgba(204,255,0,.35))}
.gem-spark .area{opacity:1}
.gem-spark .marker{stroke:var(--bg2);stroke-width:2}
.gem-spark .marker.start{fill:var(--gold);filter:drop-shadow(0 0 0.25rem rgba(245,166,35,.55))}
.gem-spark .marker.end  {fill:var(--green);filter:drop-shadow(0 0 0.25rem rgba(204,255,0,.55))}

/* Verdict pill on retro side */
.gem-card-verdict{display:flex;flex-wrap:wrap;align-items:baseline;gap:0.5rem;font-size:0.71875rem;line-height:1.5;color:var(--cloud)}
.gem-verdict-pill{font-family:var(--fm);font-size:0.59375rem;font-weight:700;padding:0.1875rem 0.5rem;border-radius:0.1875rem;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}
.gem-card-verdict.intact   .gem-verdict-pill{color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.22)}
.gem-card-verdict.shifted  .gem-verdict-pill{color:var(--gold); background:rgba(245,166,35,.08); border:0.0625rem solid rgba(245,166,35,.22)}
.gem-card-verdict.broken   .gem-verdict-pill{color:var(--red);  background:rgba(255,80,0,.08);   border:0.0625rem solid rgba(255,80,0,.22)}

/* Today's flag rationale rows */
.gem-rationale{display:flex;flex-direction:column;gap:0.5rem}
.gem-rationale-row{display:flex;gap:0.5rem;font-size:0.75rem;line-height:1.5;color:var(--cloud)}
.gem-rationale-icon{color:var(--gold);flex-shrink:0;font-size:0.625rem;line-height:1.55}
.gem-rationale-row b{color:var(--snow);font-weight:600}
.gem-card-cta{margin-top:auto;padding-top:0.625rem;border-top:0.0625rem dashed var(--rim);font-family:var(--fm);font-size:0.65625rem;color:var(--green);letter-spacing:.06em;text-transform:uppercase;font-weight:700;display:flex;align-items:center;justify-content:flex-end;gap:0.25rem}

/* Thesis evolution scorecard — 4 metrics moved since flag (retro card) */
.gem-scorecard{display:flex;flex-direction:column;gap:0.3125rem;padding:0.625rem 0.6875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm)}
.gem-score-row{display:grid;grid-template-columns:minmax(6.5rem,1fr) auto auto auto minmax(2.5rem,3.5rem) auto;align-items:center;gap:0.4375rem;padding:0.25rem 0.375rem;border-radius:0.25rem;transition:background .15s}
.gem-card.retro:hover .gem-score-row{background:rgba(255,255,255,.015)}
.gem-score-name{font-size:0.6875rem;color:var(--cloud);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.gem-score-then{font-family:var(--fm);font-size:0.625rem;color:var(--fog);font-weight:600;text-align:right;letter-spacing:.02em}
.gem-score-arrow{font-family:var(--fm);font-size:0.625rem;font-weight:700;line-height:1}
.gem-score-arrow.up{color:var(--green)}
.gem-score-arrow.flat{color:var(--fog)}
.gem-score-arrow.down{color:var(--red)}
.gem-score-now{font-family:var(--fm);font-size:0.71875rem;color:var(--snow);font-weight:700;text-align:left;letter-spacing:-.005em}
.gem-score-bar{display:block;height:0.25rem;background:var(--bg3);border-radius:0.125rem;overflow:hidden}
.gem-score-fill{display:block;height:100%;border-radius:0.125rem;transition:filter .18s}
.gem-score-fill.up   {background:linear-gradient(90deg,rgba(204,255,0,.55) 0%,var(--green) 100%)}
.gem-score-fill.flat {background:var(--fog);opacity:.6}
.gem-score-fill.down {background:linear-gradient(90deg,var(--red) 0%,rgba(255,80,0,.6) 100%)}
.gem-card.retro:hover .gem-score-fill{filter:saturate(1.18) brightness(1.05)}
.gem-score-delta{font-family:var(--fm);font-size:0.625rem;font-weight:700;text-align:right;letter-spacing:-.005em;white-space:nowrap}
.gem-score-delta.up{color:var(--green)}
.gem-score-delta.flat{color:var(--fog)}
.gem-score-delta.down{color:var(--red)}

/* Fundamentals quality score — proves the flag passes the bar (≥7.5/10) */
.gem-quality{display:flex;flex-direction:column;gap:0.5rem;padding:0.6875rem 0.8125rem;background:linear-gradient(135deg,rgba(204,255,0,.06),rgba(204,255,0,.015) 60%),var(--bg2);border:0.0625rem solid rgba(204,255,0,.22);border-radius:var(--r-sm)}
.gem-quality-head{display:flex;align-items:baseline;justify-content:space-between;gap:0.5rem}
.gem-quality-lbl{font-family:var(--fm);font-size:0.65625rem;font-weight:700;color:var(--cloud);letter-spacing:.04em;text-transform:uppercase}
.gem-quality-score{font-family:var(--fm);font-size:1.375rem;font-weight:800;color:var(--green);line-height:1;letter-spacing:-.02em;text-shadow:0 0 0.625rem rgba(204,255,0,.25)}
.gem-quality-score small{font-family:var(--fm);font-size:0.75rem;font-weight:700;color:var(--green);opacity:.7;margin-left:0.0625rem}
.gem-quality-bar{position:relative;height:0.4375rem;background:var(--bg3);border-radius:0.21875rem;overflow:visible}
.gem-quality-fill{position:absolute;left:0;top:0;bottom:0;border-radius:0.21875rem;background:linear-gradient(90deg,rgba(204,255,0,.55) 0%,var(--green) 100%);box-shadow:0 0 0.625rem rgba(204,255,0,.4)}
.gem-quality-tick{position:absolute;top:-0.1875rem;bottom:-0.1875rem;width:0.0625rem;background:var(--gold);box-shadow:0 0 0.25rem rgba(245,166,35,.4)}
.gem-quality-tick::after{content:'flag bar · 7.5';position:absolute;top:-0.875rem;left:50%;transform:translateX(-50%);font-family:var(--fm);font-size:0.5rem;color:var(--gold);letter-spacing:.04em;white-space:nowrap;font-weight:700}
.gem-quality-foot{display:flex;flex-wrap:wrap;gap:0.3125rem;margin-top:0.125rem}
.gem-quality-chip{display:inline-flex;align-items:center;padding:0.125rem 0.4375rem;border-radius:0.1875rem;font-family:var(--fm);font-size:0.59375rem;font-weight:700;letter-spacing:.02em;border:0.0625rem solid;line-height:1.3}
.gem-quality-chip.up     {color:var(--green); background:var(--green-soft);  border-color:rgba(204,255,0,.22)}
.gem-quality-chip.neutral{color:var(--cloud); background:var(--bg3);          border-color:var(--rim2)}
.gem-quality-chip.down   {color:var(--red);   background:rgba(255,80,0,.08);  border-color:rgba(255,80,0,.22)}

/* Signal strength panel — 3 mini-meters on today's flag */
.gem-signals{display:flex;flex-direction:column;gap:0.5625rem;padding:0.6875rem 0.75rem;background:linear-gradient(135deg,rgba(204,255,0,.04),rgba(204,255,0,.01)),var(--bg2);border:0.0625rem solid rgba(204,255,0,.18);border-radius:var(--r-sm)}
.gem-signal{display:flex;flex-direction:column;gap:0.25rem}
.gem-signal-head{display:flex;align-items:baseline;justify-content:space-between;gap:0.5rem}
.gem-signal-name{font-family:var(--fm);font-size:0.625rem;color:var(--cloud);letter-spacing:.04em;font-weight:600}
.gem-signal-val{font-family:var(--fm);font-size:0.875rem;color:var(--green);font-weight:800;letter-spacing:-.01em;line-height:1}
.gem-signal-val small{font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--green);opacity:.85;margin-left:0.0625rem}
.gem-signal-meter{position:relative;height:0.3125rem;background:var(--bg3);border-radius:0.1875rem;overflow:visible}
.gem-signal-fill{position:absolute;left:0;top:0;bottom:0;border-radius:0.1875rem;background:linear-gradient(90deg,rgba(204,255,0,.55) 0%,var(--green) 100%);box-shadow:0 0 0.5rem rgba(204,255,0,.32)}
.gem-signal-tick{position:absolute;top:-0.1875rem;bottom:-0.1875rem;width:0.0625rem;background:var(--fog);opacity:.5}
.gem-signal-tick::after{content:'avg';position:absolute;left:0.1875rem;top:0.4375rem;font-family:var(--fm);font-size:0.5rem;color:var(--fog);letter-spacing:.04em;opacity:.7;white-space:nowrap}
.gem-signal-sub{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.02em;line-height:1.3}

/* Disagreements That Matter — 3 cards. Bull voice + bear voice + resolution chip.
   AI-picked for severity (high-accuracy creators disagreeing strongly). */
.disagree-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.875rem;margin-top:1.125rem}
@media(max-width:1100px){.disagree-grid{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.disagree-grid{grid-template-columns:1fr}}
.disagree-card{display:flex;flex-direction:column;gap:0.75rem;padding:1.125rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);cursor:pointer;transition:all .18s;position:relative}
.disagree-card:hover{border-color:var(--rim2);transform:translateY(-0.0625rem)}
.disagree-head{display:flex;flex-direction:column;gap:0.3125rem;padding-bottom:0.625rem;border-bottom:0.0625rem solid var(--rim)}
.disagree-tk{font-family:var(--fm);font-size:1.25rem;font-weight:700;color:var(--snow);letter-spacing:-.005em;line-height:1}
.disagree-headline{font-family:var(--fb);font-size:0.8125rem;color:var(--cloud);line-height:1.4;font-weight:500}
.disagree-resolution{display:inline-flex;align-items:center;gap:0.375rem;font-family:var(--fm);font-size:0.625rem;color:var(--gold);letter-spacing:.04em;font-weight:600;padding:0.1875rem 0.4375rem;background:rgba(245,166,35,.06);border:0.0625rem solid rgba(245,166,35,.18);border-radius:0.25rem;align-self:flex-start}
.disagree-resolution .dot{width:0.3125rem;height:0.3125rem;border-radius:50%;background:var(--gold);box-shadow:0 0 0.3125rem rgba(245,166,35,.6)}
.disagree-resolution b{color:var(--snow);font-weight:700;margin-left:0.125rem}

/* Stance bar — quick at-a-glance split */
.disagree-stance{display:flex;height:0.4375rem;border-radius:0.25rem;overflow:hidden;background:var(--bg3)}
.disagree-stance .seg{display:block}
.disagree-stance .seg.bull{background:var(--green)}
.disagree-stance .seg.neut{background:var(--mist)}
.disagree-stance .seg.bear{background:var(--red)}

/* Two voices — bull on top, bear below */
.disagree-voices{display:flex;flex-direction:column;gap:0.625rem;flex:1}
.disagree-voices .voice{padding:0.625rem 0.75rem;border-radius:var(--r-sm);background:var(--bg2);border-left:0.125rem solid var(--rim2)}
.disagree-voices .voice.bull{border-left-color:var(--green);background:rgba(204,255,0,.025)}
.disagree-voices .voice.bear{border-left-color:var(--red);  background:rgba(255,80,0,.03)}
.voice-head{display:flex;align-items:baseline;gap:0.4375rem;margin-bottom:0.3125rem;flex-wrap:wrap}
.voice-tag{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:0.0625rem 0.375rem;border-radius:0.1875rem}
.voice.bull .voice-tag{color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.2)}
.voice.bear .voice-tag{color:var(--red);  background:rgba(255,80,0,.08); border:0.0625rem solid rgba(255,80,0,.2)}
.voice-name{font-family:var(--fm);font-size:0.6875rem;color:var(--snow);font-weight:600}
.voice-acc{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);font-weight:600;margin-left:auto}
.voice-quote{font-size:0.75rem;color:var(--cloud);line-height:1.55;font-style:italic;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.disagree-foot{margin-top:auto;padding-top:0.5rem;border-top:0.0625rem dashed var(--rim);font-family:var(--fm);font-size:0.65625rem;color:var(--green);letter-spacing:.06em;text-transform:uppercase;font-weight:700;display:flex;align-items:center;justify-content:flex-end;gap:0.25rem}

/* Risks Brewing — velocity gauges. Each gauge is a semicircle with a needle
   pointing at how fast bearish chatter is accelerating. */
.risks-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.875rem;margin-top:1.125rem}
.risks-grid[hidden]{display:none}
@media(max-width:880px){.risks-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.risks-grid{grid-template-columns:1fr}}
.risk-card{display:flex;flex-direction:column;align-items:center;gap:0.625rem;padding:1rem 0.875rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);cursor:pointer;transition:all .18s;text-align:center;font-family:inherit}
.risk-card:hover{border-color:rgba(255,80,0,.32);transform:translateY(-0.0625rem)}
.risk-head{display:flex;flex-direction:column;align-items:center;gap:0.125rem}
.risk-tk{font-family:var(--fm);font-size:1.0625rem;font-weight:700;color:var(--snow);letter-spacing:-.005em;line-height:1}
.risk-co{font-size:0.65625rem;color:var(--fog);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:9rem}
.risk-gauge{width:8rem;height:4.5rem;display:flex;align-items:center;justify-content:center;position:relative}
.risk-gauge svg{width:100%;height:100%;display:block;overflow:visible}
.risk-gauge .arc-bg{fill:none;stroke:var(--bg3);stroke-width:8;stroke-linecap:round}
.risk-gauge .arc-fill{fill:none;stroke:var(--red);stroke-width:8;stroke-linecap:round;filter:drop-shadow(0 0 0.25rem rgba(255,80,0,.45))}
.risk-gauge .tick{stroke:var(--mist);stroke-width:1.2}
.risk-gauge .needle{stroke:var(--snow);stroke-width:2.5;stroke-linecap:round}
.risk-gauge .hub{fill:var(--snow)}
.risk-gauge .gauge-label{font-family:var(--fm,monospace);font-size:8px;fill:var(--fog);letter-spacing:.06em;text-transform:uppercase;font-weight:700}
.risk-meta{display:flex;flex-direction:column;align-items:center;gap:0.0625rem}
.risk-meta-main{font-family:var(--fm);font-size:0.78125rem;color:var(--cloud);font-weight:600}
.risk-meta-main b{color:var(--red);font-weight:700}
.risk-meta-sub{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em}
.risks-foot{margin-top:1.125rem;padding:0.75rem 1rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);font-size:0.71875rem;line-height:1.55;color:var(--cloud)}
.risks-foot-icon{color:var(--gold);margin-right:0.25rem}

/* Center of Gravity — flexbox treemap. Each row is a flex row; tile width is
   weighted by the data-mentions attribute via JS. Color = stance, "hot" border
   = velocity up, dot in meta line = velocity flag. */
.cog-treemap{display:flex;flex-direction:column;gap:0.375rem;margin-top:1.125rem;border-radius:var(--r-lg);overflow:hidden}
.cog-row{display:flex;gap:0.375rem;min-height:5.5rem}
.cog-row:nth-child(2){min-height:5rem}
.cog-row:nth-child(3){min-height:4.25rem}
.cog-tile{flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:0.75rem 0.875rem;border-radius:var(--r);border:0.0625rem solid var(--rim);background:var(--bg1);cursor:pointer;transition:all .18s;text-align:left;font-family:inherit;color:inherit;position:relative;overflow:hidden;min-width:5rem}
.cog-tile:hover{transform:translateY(-0.0625rem);filter:brightness(1.06)}
/* Stance backgrounds — soft fills, the eye reads color before content */
.cog-tile.bull {background:linear-gradient(135deg,rgba(204,255,0,.08),rgba(204,255,0,.02));border-color:rgba(204,255,0,.22)}
.cog-tile.mixed{background:linear-gradient(135deg,rgba(245,166,35,.08),rgba(245,166,35,.02));border-color:rgba(245,166,35,.22)}
.cog-tile.bear {background:linear-gradient(135deg,rgba(255,80,0,.08),rgba(255,80,0,.02));border-color:rgba(255,80,0,.22)}
/* "Hot" = velocity up; thicker green border + a small pulsing dot in the meta */
.cog-tile.hot{border-width:0.125rem;box-shadow:0 0 0 0.0625rem rgba(204,255,0,.18) inset}
.cog-tile.bull.hot {border-color:rgba(204,255,0,.55)}
.cog-tile.mixed.hot{border-color:rgba(245,166,35,.55)}
.cog-tile.bear.hot {border-color:rgba(255,80,0,.55)}
.cog-sym{font-family:var(--fm);font-size:1.0625rem;font-weight:700;color:var(--snow);letter-spacing:-.005em;line-height:1}
.cog-meta{display:flex;align-items:center;gap:0.3125rem;font-family:var(--fm);font-size:0.6875rem;color:var(--cloud);font-weight:600;letter-spacing:.02em}
.cog-meta b{font-weight:700}
.cog-tile.bull  .cog-meta b{color:var(--green)}
.cog-tile.mixed .cog-meta b{color:var(--gold)}
.cog-tile.bear  .cog-meta b{color:var(--red)}
.cog-meta .dot{width:0.375rem;height:0.375rem;border-radius:50%;background:var(--green);box-shadow:0 0 0.375rem var(--green);animation:cog-pulse 2.4s ease-in-out infinite;flex-shrink:0}
.cog-tile.bear .cog-meta .dot{background:var(--red);box-shadow:0 0 0.375rem var(--red)}
@keyframes cog-pulse{0%,100%{opacity:1}50%{opacity:.4}}

/* Legend below the treemap */
.cog-legend{display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:0.875rem;padding:0.5rem 0.875rem;font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em}
.cog-legend-item{display:inline-flex;align-items:center;gap:0.375rem}
.cog-legend-sw{width:0.625rem;height:0.625rem;border-radius:0.1875rem;border:0.0625rem solid var(--rim2)}
.cog-legend-sw.bull {background:rgba(204,255,0,.5)}
.cog-legend-sw.mixed{background:rgba(245,166,35,.5)}
.cog-legend-sw.bear {background:rgba(255,80,0,.5)}
.cog-legend-sw.hot  {background:transparent;border:0.125rem solid rgba(204,255,0,.55)}
.cog-legend-foot{margin-left:auto;color:var(--fog);font-style:normal;letter-spacing:.02em;text-transform:none}
@media(max-width:720px){.cog-legend{gap:0.625rem}.cog-legend-foot{margin-left:0;width:100%}}

/* ═══════════════════════════════════════════════════════════════
   Auto-generated chat answer (briefing → workspace handoff)
   ═══════════════════════════════════════════════════════════════ */

/* Creator card at the top of Path A (creator-specific answer) */
.cm-card{display:flex;flex-direction:column;gap:0.4375rem;padding:0.75rem 0.875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);margin-bottom:1rem}
.cm-card-head{display:flex;align-items:center;gap:0.4375rem;flex-wrap:wrap}
.cm-stance{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0.125rem 0.4375rem;border-radius:0.1875rem}
.cm-stance.bull   {color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.22)}
.cm-stance.bear   {color:var(--red);  background:rgba(255,80,0,.08); border:0.0625rem solid rgba(255,80,0,.22)}
.cm-stance.mixed  {color:var(--gold); background:rgba(245,166,35,.08); border:0.0625rem solid rgba(245,166,35,.22)}
.cm-stance.neutral{color:var(--fog);  background:var(--bg3);            border:0.0625rem solid var(--rim)}
.cm-type{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0.125rem 0.4375rem;border-radius:0.1875rem;background:var(--bg3);color:var(--fog);border:0.0625rem solid var(--rim)}
.cm-type.analyst {color:var(--blue);  border-color:rgba(90,200,250,.32)}
.cm-type.investor{color:var(--cloud); border-color:var(--rim2)}
.cm-type.trader  {color:var(--gold);  border-color:rgba(245,166,35,.32)}
.cm-type.research{color:var(--gold);  border-color:rgba(245,166,35,.4);background:rgba(245,166,35,.05)}
.cm-acc{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);font-weight:600;margin-left:auto}
.cm-acc b{color:var(--green);font-weight:700}
.cm-acc.cm-acc-na{font-style:italic}
.cm-name{font-family:var(--fb);font-size:0.96875rem;font-weight:700;color:var(--snow);letter-spacing:-.005em;display:flex;align-items:baseline;gap:0.4375rem;flex-wrap:wrap}
.cm-handle{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);font-weight:500;letter-spacing:.02em}
.cm-aches{display:flex;flex-wrap:wrap;gap:0.25rem}
.cm-ach{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);background:transparent;border:0.0625rem solid var(--rim);border-radius:6.25rem;padding:0.0625rem 0.375rem;letter-spacing:.04em;font-weight:600}

.cm-thesis{font-style:italic;color:var(--cloud);font-size:0.9375rem;line-height:1.6;border-left:0.1875rem solid var(--green);padding-left:0.75rem;margin:0 0 0.875rem}
.cm-cite{font-family:var(--fm);font-size:0.6875rem;color:var(--green);font-weight:600;text-decoration:none;padding:0 0.1875rem;letter-spacing:.02em}
.cm-cite:hover{color:var(--snow)}

.cm-citations{list-style:none;padding:0;margin:0 0 0.875rem;display:flex;flex-direction:column;gap:0.375rem}
.cm-citations li{font-family:var(--fb);font-size:0.78125rem;color:var(--cloud);line-height:1.5;display:flex;align-items:flex-start;gap:0.5rem}
.cm-cite-tag{display:inline-flex;align-items:center;justify-content:center;min-width:1.375rem;height:1.125rem;padding:0 0.3125rem;background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.22);border-radius:0.1875rem;font-family:var(--fm);font-size:0.5625rem;font-weight:700;color:var(--green);letter-spacing:.04em;flex-shrink:0;margin-top:0.125rem}
.cm-cite-tag.sec{background:rgba(90,200,250,.06);border-color:rgba(90,200,250,.22);color:var(--blue)}

.cm-follow{margin-top:0.875rem;font-size:0.78125rem;color:var(--fog);font-style:italic}

/* Path B · "shape" stat strip */
.cm-shape{display:flex;flex-direction:column;gap:0.5rem;padding:0.75rem 0.875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);margin-bottom:1rem}
.cm-shape-row{display:flex;align-items:center;gap:0.875rem;flex-wrap:wrap;font-family:var(--fm);font-size:0.71875rem;color:var(--cloud)}
.cm-shape-stance{display:inline-flex;align-items:baseline;gap:0.3125rem}
.cm-shape-stance b{color:var(--green);font-size:0.96875rem;font-weight:700}
.cm-shape-stance.bear b{color:var(--red)}
.cm-shape-stance.mid  b{color:var(--gold)}
.cm-shape-fund{display:inline-flex;align-items:baseline;gap:0.3125rem;padding:0.1875rem 0.5rem;border-radius:0.25rem;background:var(--bg3);border:0.0625rem solid var(--rim);color:var(--fog);font-weight:600}
.cm-shape-fund b{color:var(--cloud);font-size:0.875rem;font-weight:700}
.cm-shape-fund.high{background:var(--green-soft);border-color:rgba(204,255,0,.22)} .cm-shape-fund.high b{color:var(--green)}
.cm-shape-fund.mid {background:rgba(245,166,35,.07);border-color:rgba(245,166,35,.22)} .cm-shape-fund.mid b{color:var(--gold)}
.cm-shape-fund.low {background:rgba(255,80,0,.06);border-color:rgba(255,80,0,.22)}    .cm-shape-fund.low b{color:var(--red)}
.cm-shape-cv{color:var(--fog);font-weight:600}
.cm-shape-cv b{color:var(--green);font-weight:700}

/* Path B · top-claims list */
.cm-list{list-style:none;padding:0;margin:0 0 0.875rem;display:flex;flex-direction:column;gap:0.5rem}
.cm-list li{display:flex;align-items:flex-start;gap:0.5rem;padding:0.5rem 0.625rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm)}
.cm-claim{flex:1;font-size:0.8125rem;color:var(--cloud);line-height:1.55;font-style:italic}

/* Path B · disagreement block */
.cm-disagree{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:0.875rem}
.cm-disagree-row{padding:0.5625rem 0.75rem;border-radius:var(--r-sm);background:var(--bg2);border-left:0.1875rem solid var(--rim2);font-size:0.78125rem;color:var(--cloud);line-height:1.5;font-style:italic}
.cm-disagree-row.bull{border-left-color:var(--green);background:rgba(204,255,0,.025)}
.cm-disagree-row.bear{border-left-color:var(--red);  background:rgba(255,80,0,.03)}
.cm-disagree-row b{color:var(--snow);font-weight:600;font-style:normal}

/* Path B · CTA into the YouTube Deep Dive canvas */
.cm-canvas-cta{display:grid;grid-template-columns:1fr auto;align-items:center;gap:0.875rem;padding:0.875rem 1rem;margin-top:1.125rem;background:linear-gradient(135deg,rgba(255,80,80,.08),rgba(255,80,80,.02));border:0.0625rem solid rgba(255,80,80,.28);border-radius:var(--r);text-decoration:none;cursor:pointer;color:inherit;transition:all .18s}
.cm-canvas-cta:hover{background:linear-gradient(135deg,rgba(255,80,80,.12),rgba(255,80,80,.04));border-color:rgba(255,80,80,.5);transform:translateY(-0.0625rem)}
.cm-canvas-cta-text{font-family:var(--fd);font-size:0.96875rem;font-weight:800;color:var(--snow);letter-spacing:-.005em;line-height:1.2;grid-row:1;grid-column:1}
.cm-canvas-cta-sub{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.04em;grid-row:2;grid-column:1;margin-top:0.1875rem;line-height:1.4}
.cm-canvas-cta-arrow{font-size:1.25rem;color:#FF7575;grid-row:1/-1;grid-column:2;align-self:center;line-height:1;transition:transform .15s}
.cm-canvas-cta:hover .cm-canvas-cta-arrow{transform:translateX(0.25rem)}

/* ── Research-source accent (Nanalyze etc.) — gold border to flag
       institutional research, distinct from green/red creator cards. */
.cm-card.cm-card-research{
  border-color:rgba(245,166,35,0.30);
  background:linear-gradient(180deg,rgba(245,166,35,0.04),rgba(245,166,35,0.01));
  box-shadow:inset 0 0 0 0.0625rem rgba(245,166,35,0.05);
}
.cm-card.cm-card-research .cm-acc.cm-acc-na{
  color:var(--gold);
  font-style:normal;
  font-weight:700;
  font-family:var(--fm);
  letter-spacing:0.04em;
}

/* ── Nanalyze Premium CTA — gold treatment that matches the research accent
       and stays distinguishable from the red YouTube Deep Dive CTA. */
.nanalyze-premium-cta{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:0.875rem;
  padding:0.875rem 1rem;
  margin-top:1.125rem;
  background:linear-gradient(135deg,rgba(245,166,35,0.10),rgba(245,166,35,0.02));
  border:0.0625rem solid rgba(245,166,35,0.35);
  border-radius:var(--r);
  text-decoration:none;
  cursor:pointer;
  color:inherit;
  transition:all .18s;
}
.nanalyze-premium-cta:hover{
  background:linear-gradient(135deg,rgba(245,166,35,0.16),rgba(245,166,35,0.04));
  border-color:rgba(245,166,35,0.55);
  transform:translateY(-0.0625rem);
  box-shadow:0 0.5rem 1.25rem rgba(245,166,35,0.10);
}
.npc-icon{
  width:2rem;
  height:2rem;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(245,166,35,0.16);
  border:0.0625rem solid rgba(245,166,35,0.35);
  color:var(--gold);
  font-size:0.875rem;
  font-weight:800;
}
.npc-body{display:flex;flex-direction:column;gap:0.1875rem;min-width:0}
.npc-title{font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);letter-spacing:-0.005em;line-height:1.2}
.npc-title b{color:var(--gold)}
.npc-sub{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:0.03em;line-height:1.5}
.npc-sub b{color:var(--cloud);font-weight:700}
.npc-arrow{font-size:1.25rem;color:var(--gold);align-self:center;line-height:1;transition:transform .15s}
.nanalyze-premium-cta:hover .npc-arrow{transform:translate(0.1875rem,-0.1875rem)}


/* ─────────────────────────────────────────────────────────────────────────
   What changed today · recurring daily category cards
   ───────────────────────────────────────────────────────────────────────── */
.dailycat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0.75rem;margin-top:1.125rem}
@media(max-width:1180px){.dailycat-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.dailycat-grid{grid-template-columns:1fr}}

.dailycat-card{display:flex;flex-direction:column;gap:0.75rem;padding:0.875rem 1rem;background:linear-gradient(180deg,rgba(255,255,255,.018) 0%,rgba(255,255,255,0) 55%),var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);position:relative;overflow:hidden;transition:border-color .18s,transform .18s,box-shadow .18s,background .18s}
.dailycat-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0.1875rem;border-radius:var(--r-lg) 0 0 var(--r-lg)}
.dailycat-card::after{content:"";position:absolute;top:0;left:0.1875rem;right:0;height:0.0625rem;pointer-events:none;opacity:.55;transition:opacity .18s}
.dailycat-card.heating::before  {background:linear-gradient(180deg,var(--green),rgba(204,255,0,.3))}
.dailycat-card.heating::after   {background:linear-gradient(90deg,transparent 0%,rgba(204,255,0,.45) 50%,transparent 100%)}
.dailycat-card.cooling::before  {background:linear-gradient(180deg,#5AC8FA,rgba(90,200,250,.3))}
.dailycat-card.cooling::after   {background:linear-gradient(90deg,transparent 0%,rgba(90,200,250,.45) 50%,transparent 100%)}
.dailycat-card.fresh::before    {background:linear-gradient(180deg,var(--gold),rgba(245,166,35,.3))}
.dailycat-card.fresh::after     {background:linear-gradient(90deg,transparent 0%,rgba(245,166,35,.45) 50%,transparent 100%)}
.dailycat-card.quiet::before    {background:linear-gradient(180deg,var(--purple,#a48bff),rgba(164,139,255,.3))}
.dailycat-card.quiet::after     {background:linear-gradient(90deg,transparent 0%,rgba(164,139,255,.45) 50%,transparent 100%)}
.dailycat-card.flipping::before {background:linear-gradient(180deg,var(--red),rgba(255,80,0,.3))}
.dailycat-card.flipping::after  {background:linear-gradient(90deg,transparent 0%,rgba(255,80,0,.45) 50%,transparent 100%)}
.dailycat-card.aligning::before {background:linear-gradient(180deg,var(--teal),rgba(46,229,213,.3))}
.dailycat-card.aligning::after  {background:linear-gradient(90deg,transparent 0%,rgba(46,229,213,.45) 50%,transparent 100%)}
.dailycat-card.watchlist::before{background:linear-gradient(180deg,var(--snow),rgba(255,255,255,.3))}
.dailycat-card.watchlist::after {background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.35) 50%,transparent 100%)}
.dailycat-card.fundsup::before  {background:linear-gradient(180deg,var(--green),rgba(204,255,0,.3))}
.dailycat-card.fundsup::after   {background:linear-gradient(90deg,transparent 0%,rgba(204,255,0,.45) 50%,transparent 100%)}
.dailycat-card.fundsdn::before  {background:linear-gradient(180deg,var(--red),rgba(255,80,0,.3))}
.dailycat-card.fundsdn::after   {background:linear-gradient(90deg,transparent 0%,rgba(255,80,0,.45) 50%,transparent 100%)}
.dailycat-card:hover{border-color:var(--rim2);transform:translateY(-0.125rem);box-shadow:0 0.5rem 1.125rem rgba(0,0,0,.28)}
.dailycat-card:hover::after{opacity:1}

.dailycat-head{display:flex;align-items:center;gap:0.625rem}
.dailycat-icon{width:1.75rem;height:1.75rem;border-radius:0.4375rem;display:grid;place-items:center;flex-shrink:0;background:var(--bg2);border:0.0625rem solid var(--rim)}
.dailycat-icon svg{width:0.9375rem;height:0.9375rem}
.dailycat-card.heating  .dailycat-icon{color:var(--green); background:var(--green-soft); border-color:rgba(204,255,0,.22)}
.dailycat-card.cooling  .dailycat-icon{color:#5AC8FA;       background:rgba(90,200,250,.08); border-color:rgba(90,200,250,.22)}
.dailycat-card.fresh    .dailycat-icon{color:var(--gold);  background:rgba(245,166,35,.08); border-color:rgba(245,166,35,.22)}
.dailycat-card.quiet    .dailycat-icon{color:#a48bff;       background:rgba(164,139,255,.08); border-color:rgba(164,139,255,.22)}
.dailycat-card.flipping .dailycat-icon{color:var(--red);   background:rgba(255,80,0,.08); border-color:rgba(255,80,0,.22)}
.dailycat-card.aligning .dailycat-icon{color:var(--teal);  background:rgba(46,229,213,.08); border-color:rgba(46,229,213,.22)}
.dailycat-card.watchlist .dailycat-icon{color:var(--snow); background:var(--bg3); border-color:var(--rim2)}
.dailycat-card.fundsup  .dailycat-icon{color:var(--green); background:var(--green-soft); border-color:rgba(204,255,0,.22)}
.dailycat-card.fundsdn  .dailycat-icon{color:#ff7560;       background:rgba(255,80,0,.08); border-color:rgba(255,80,0,.22)}

.dailycat-titles{display:flex;flex-direction:column;gap:0.0625rem;min-width:0}
.dailycat-title{font-family:var(--fd);font-size:0.875rem;font-weight:800;color:var(--snow);letter-spacing:-.005em;line-height:1.15}
.dailycat-sub{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;line-height:1.3}

.dailycat-tickers{display:flex;flex-wrap:wrap;gap:0.375rem}
.dailycat-chip{display:inline-flex;align-items:center;gap:0.375rem;padding:0.3125rem 0.5625rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.3125rem;font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--cloud);cursor:pointer;transition:all .15s}
.dailycat-chip .tk{color:var(--snow);font-weight:700;letter-spacing:.02em}
.dailycat-chip em{font-style:normal;font-size:0.625rem;font-weight:600;letter-spacing:.04em;opacity:.85}
.dailycat-chip:hover{transform:translateY(-0.0625rem);border-color:var(--rim2)}
.dailycat-chip.up      {background:rgba(204,255,0,.05); border-color:rgba(204,255,0,.18)} .dailycat-chip.up em{color:var(--green)}
.dailycat-chip.up:hover {background:rgba(204,255,0,.1)}
.dailycat-chip.down    {background:rgba(90,200,250,.05); border-color:rgba(90,200,250,.18)} .dailycat-chip.down em{color:#5AC8FA}
.dailycat-chip.down:hover{background:rgba(90,200,250,.1)}
.dailycat-chip.fresh   {background:rgba(245,166,35,.05); border-color:rgba(245,166,35,.18)} .dailycat-chip.fresh em{color:var(--gold)}
.dailycat-chip.fresh:hover{background:rgba(245,166,35,.1)}
.dailycat-chip.quiet   {background:rgba(164,139,255,.05); border-color:rgba(164,139,255,.18)} .dailycat-chip.quiet em{color:#a48bff}
.dailycat-chip.quiet:hover{background:rgba(164,139,255,.1)}
.dailycat-chip.flipping{background:rgba(255,80,0,.05); border-color:rgba(255,80,0,.18)} .dailycat-chip.flipping em{color:var(--red)}
.dailycat-chip.flipping:hover{background:rgba(255,80,0,.1)}
.dailycat-chip.aligning{background:rgba(46,229,213,.05); border-color:rgba(46,229,213,.18)} .dailycat-chip.aligning em{color:var(--teal)}
.dailycat-chip.aligning:hover{background:rgba(46,229,213,.1)}
.dailycat-chip.watchlist em{color:var(--snow)}
.dailycat-chip.fundsup {background:rgba(204,255,0,.05); border-color:rgba(204,255,0,.2)} .dailycat-chip.fundsup em{color:var(--green)}
.dailycat-chip.fundsup:hover{background:rgba(204,255,0,.1)}
.dailycat-chip.fundsdn {background:rgba(255,80,0,.05); border-color:rgba(255,80,0,.2)} .dailycat-chip.fundsdn em{color:#ff7560}
.dailycat-chip.fundsdn:hover{background:rgba(255,80,0,.1)}
.dailycat-chip-why{font-family:var(--fm);font-size:0.5625rem;font-weight:600;color:var(--fog);letter-spacing:.04em;padding-left:0.4375rem;margin-left:0.0625rem;border-left:0.0625rem solid var(--rim);white-space:nowrap}
.dailycat-tickers.fund{flex-direction:column;align-items:stretch;gap:0.3125rem}
.dailycat-tickers.fund .dailycat-chip{justify-content:flex-start;width:100%}

.dailycat-more{margin-top:0.875rem;display:inline-flex;align-items:center;gap:0.4375rem;padding:0.4375rem 0.75rem;background:transparent;border:0.0625rem dashed var(--rim2);border-radius:var(--r-sm);font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;transition:all .15s}
.dailycat-more:hover{color:var(--cloud);border-color:var(--rim3);background:var(--bg2)}
.dailycat-more-arrow{display:inline-block;transition:transform .18s}
.dailycat-more.open .dailycat-more-arrow{transform:rotate(180deg)}
.dailycat-extra{margin-top:0.75rem}
.dailycat-extra[hidden]{display:none}

/* ─────────────────────────────────────────────────────────────────────────
   Debate cards · 3-voice (analyst / investor / trader) + research footer
   Used by both #sec-disagree and #sec-agree
   ───────────────────────────────────────────────────────────────────────── */
.debate-grid{display:flex;gap:0.875rem;margin-top:1.125rem;overflow-x:auto;overflow-y:visible;scroll-snap-type:x proximity;scroll-padding:0.25rem;-webkit-overflow-scrolling:touch;padding:0.25rem 0.25rem 0.75rem;margin-left:-0.25rem;margin-right:-0.25rem;scrollbar-width:thin;scrollbar-color:var(--rim2) transparent}
.debate-grid::-webkit-scrollbar{height:0.4375rem}
.debate-grid::-webkit-scrollbar-track{background:transparent}
.debate-grid::-webkit-scrollbar-thumb{background:var(--rim2);border-radius:0.25rem}
.debate-grid::-webkit-scrollbar-thumb:hover{background:var(--rim3,var(--cloud))}
.debate-grid > .debate-card{flex:0 0 22rem;scroll-snap-align:start;min-width:0}
@media(max-width:760px){.debate-grid > .debate-card{flex-basis:min(22rem,86vw)}}

.debate-card{display:flex;flex-direction:column;gap:0.75rem;padding:1rem 1.125rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);cursor:pointer;transition:all .18s;position:relative}
.debate-card.disagree{border-left:0.1875rem solid var(--gold)}
.debate-card.agree   {border-left:0.1875rem solid var(--green)}
.debate-card:hover{border-color:var(--rim2);transform:translateY(-0.0625rem)}

.debate-head{display:flex;flex-direction:column;gap:0.3125rem;padding-bottom:0.625rem;border-bottom:0.0625rem solid var(--rim)}
.debate-tk{font-family:var(--fm);font-size:1.25rem;font-weight:700;color:var(--snow);letter-spacing:-.005em;line-height:1}
.debate-headline{font-family:var(--fb);font-size:0.8125rem;color:var(--cloud);line-height:1.4;font-weight:500}
.debate-resolution{display:inline-flex;align-items:center;gap:0.375rem;font-family:var(--fm);font-size:0.625rem;color:var(--gold);letter-spacing:.04em;font-weight:600;padding:0.1875rem 0.4375rem;background:rgba(245,166,35,.06);border:0.0625rem solid rgba(245,166,35,.18);border-radius:0.25rem;align-self:flex-start}
.debate-resolution b{color:var(--snow);font-weight:700;margin-left:0.125rem}
.debate-resolution.agree{color:var(--green);background:rgba(204,255,0,.05);border-color:rgba(204,255,0,.2)}

.debate-stance-block{display:flex;flex-direction:column;gap:0.4375rem}
.debate-stance-axis{display:flex;justify-content:space-between;align-items:baseline;gap:0.5rem;font-family:var(--fm);font-size:0.5625rem;letter-spacing:.04em}
.debate-stance-axis .dsa{color:var(--fog);white-space:nowrap}
.debate-stance-axis .dsa b{font-weight:700;letter-spacing:.06em;text-transform:uppercase;margin-right:0.25rem}
.debate-stance-axis .dsa.bull b{color:var(--green)}
.debate-stance-axis .dsa.neut b{color:var(--cloud)}
.debate-stance-axis .dsa.bear b{color:var(--red)}
.debate-stance{display:flex;height:0.5rem;border-radius:0.25rem;overflow:hidden;background:var(--bg3);box-shadow:inset 0 0 0 0.0625rem rgba(255,255,255,.02)}
.debate-stance .seg{display:block;transition:filter .18s}
.debate-stance .seg.bull{background:linear-gradient(90deg,rgba(204,255,0,.78) 0%,var(--green) 100%)}
.debate-stance .seg.neut{background:var(--mist)}
.debate-stance .seg.bear{background:linear-gradient(90deg,var(--red) 0%,rgba(255,80,0,.85) 100%)}
.debate-card:hover .debate-stance .seg{filter:saturate(1.15) brightness(1.05)}

/* Camps strip · quick-read replacement for the verbose voice list */
.debate-camps{display:flex;align-items:center;gap:0.5rem;padding:0.625rem 0.6875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm)}
.dcamp{display:flex;align-items:center;gap:0.5rem;flex:1;min-width:0}
.dcamp-av{flex-shrink:0;width:1.625rem;height:1.625rem;border-radius:50%;display:inline-grid;place-items:center;font-family:var(--fm);font-size:0.6875rem;font-weight:700;letter-spacing:.02em;border:0.0625rem solid var(--rim2);background:var(--bg3)}
.dcamp-av::before{content:attr(data-letter)}
.dcamp-av.analyst {color:var(--blue);  background:rgba(90,200,250,.1);  border-color:rgba(90,200,250,.28)}
.dcamp-av.investor{color:var(--snow);  background:var(--bg3);            border-color:var(--rim2)}
.dcamp-av.trader  {color:var(--gold);  background:rgba(245,166,35,.08); border-color:rgba(245,166,35,.28)}
.dcamp-info{display:flex;flex-direction:column;gap:0.0625rem;min-width:0}
.dcamp-name{font-family:var(--fm);font-size:0.625rem;font-weight:600;color:var(--snow);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dcamp-stance{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.06em;line-height:1;display:inline-flex;align-items:center;gap:0.1875rem}
.dcamp-stance.bull {color:var(--green)}
.dcamp-stance.bear {color:var(--red)}
.dcamp-stance.mixed{color:var(--gold)}
.dcamp-sep{flex:0 0 0.0625rem;align-self:stretch;background:var(--rim);margin:0.125rem 0;opacity:.7}

/* Section-level "View quotes" panel · single bar at the bottom of the
   debate row that toggles all three cards' voices together. */
.debate-voices-bar{margin-top:0.875rem}
.debate-voices-toggle{display:flex;align-items:center;gap:0.6875rem;width:100%;padding:0.6875rem 0.9375rem;background:var(--bg2);border:0.0625rem dashed var(--rim2);border-radius:var(--r-sm);cursor:pointer;font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--cloud);letter-spacing:.08em;text-transform:uppercase;line-height:1;transition:all .18s}
.debate-voices-toggle:hover{border-color:var(--rim3,var(--cloud));background:var(--bg3);color:var(--snow)}
.debate-voices-toggle .dvt-lbl{flex-shrink:0}
.debate-voices-toggle .dvt-meta{flex:1;text-align:left;font-size:0.5625rem;font-weight:600;letter-spacing:.04em;text-transform:none;color:var(--fog)}
.debate-voices-toggle .dvt-arrow{flex-shrink:0;display:inline-block;font-size:0.75rem;color:var(--fog);transition:transform .2s ease,color .15s}
.debate-voices-toggle:hover .dvt-arrow{color:var(--cloud)}
.debate-voices-toggle.open{border-style:solid;background:var(--bg3);color:var(--snow)}
.debate-voices-toggle.open .dvt-arrow{transform:rotate(180deg);color:var(--cloud)}
#sec-disagree .debate-voices-toggle:hover,
#sec-disagree .debate-voices-toggle.open{border-color:rgba(245,166,35,.4)}
#sec-disagree .debate-voices-toggle.open{box-shadow:0 0 0 0.0625rem rgba(245,166,35,.18) inset}
#sec-agree .debate-voices-toggle:hover,
#sec-agree .debate-voices-toggle.open{border-color:rgba(204,255,0,.4)}
#sec-agree .debate-voices-toggle.open{box-shadow:0 0 0 0.0625rem rgba(204,255,0,.18) inset}
.debate-voices[hidden]{display:none}

.debate-voices{display:flex;flex-direction:column;gap:0.5rem;flex:1}
.debate-voices .voice{padding:0.5625rem 0.75rem;border-radius:var(--r-sm);background:var(--bg2);border-left:0.125rem solid var(--rim2)}
.debate-voices .voice.bull {border-left-color:var(--green); background:rgba(204,255,0,.025)}
.debate-voices .voice.bear {border-left-color:var(--red);   background:rgba(255,80,0,.03)}
.debate-voices .voice.mixed{border-left-color:var(--gold);  background:rgba(245,166,35,.03)}
.debate-voices .voice-head{display:flex;align-items:center;gap:0.375rem;margin-bottom:0.3125rem;flex-wrap:wrap}
.debate-voices .voice-camp{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:0.0625rem 0.375rem;border-radius:0.1875rem;flex-shrink:0}
.debate-voices .voice-camp.analyst {color:var(--blue);  background:rgba(90,200,250,.1)}
.debate-voices .voice-camp.investor{color:var(--cloud); background:var(--bg3)}
.debate-voices .voice-camp.trader  {color:var(--gold);  background:rgba(245,166,35,.08)}
.debate-voices .voice-name{font-family:var(--fm);font-size:0.625rem;font-weight:600;color:var(--snow);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.debate-voices .voice-stance{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0.0625rem 0.375rem;border-radius:0.1875rem;flex-shrink:0}
.debate-voices .voice-stance.bull {color:var(--green); background:var(--green-soft)}
.debate-voices .voice-stance.bear {color:var(--red);   background:rgba(255,80,0,.08)}
.debate-voices .voice-stance.mixed{color:var(--gold);  background:rgba(245,166,35,.08)}
.debate-voices .voice-quote{font-size:0.75rem;color:var(--cloud);line-height:1.55;font-style:italic}

.debate-research{margin-top:auto;display:flex;align-items:flex-start;gap:0.625rem;padding:0.6875rem 0.75rem;background:linear-gradient(135deg,rgba(245,166,35,.06),rgba(245,166,35,.015));border:0.0625rem solid rgba(245,166,35,.22);border-radius:var(--r-sm)}
.debate-research .research-icon{font-size:0.875rem;color:var(--gold);line-height:1;margin-top:0.0625rem;flex-shrink:0}
.debate-research .research-body{flex:1;display:flex;flex-direction:column;gap:0.1875rem;min-width:0}
.debate-research .research-lbl{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.debate-research .research-text{font-size:0.71875rem;color:var(--cloud);line-height:1.5}


/* ─────────────────────────────────────────────────────────────────────────
   Risks ↔ Catalysts toggle
   ───────────────────────────────────────────────────────────────────────── */
.rc-toggle{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;padding:0.3125rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);margin:1.125rem 0 1rem}
.rc-toggle-btn{display:flex;align-items:center;gap:0.6875rem;padding:0.625rem 0.875rem;background:transparent;border:0.0625rem solid transparent;border-radius:0.4375rem;font-family:var(--fm);font-size:0.75rem;font-weight:700;color:var(--cloud);letter-spacing:.02em;cursor:pointer;transition:all .18s;text-align:left;line-height:1.1}
.rc-toggle-btn svg{width:1rem;height:1rem;flex-shrink:0;padding:0.4375rem;box-sizing:content-box;border-radius:0.4375rem;background:var(--bg3);border:0.0625rem solid var(--rim);color:var(--fog);transition:all .18s}
.rc-toggle-text{display:flex;flex-direction:column;gap:0.0625rem;min-width:0}
.rc-toggle-lbl{font-family:var(--fm);font-size:0.75rem;font-weight:700;letter-spacing:.02em;line-height:1.1;color:inherit}
.rc-toggle-sub{font-family:var(--fb);font-size:0.625rem;font-weight:500;color:var(--fog);line-height:1.3;letter-spacing:0;text-transform:none}
.rc-toggle-btn:hover{background:var(--bg3)}
.rc-toggle-btn.active{background:var(--bg1);border-color:var(--rim2);box-shadow:0 0.125rem 0.5rem rgba(0,0,0,.18);color:var(--snow)}
.rc-toggle-btn.active[data-rc-mode="risks"]     svg{color:var(--red);   background:rgba(255,80,0,.08); border-color:rgba(255,80,0,.32);  box-shadow:0 0 0.625rem rgba(255,80,0,.18) inset}
.rc-toggle-btn.active[data-rc-mode="catalysts"] svg{color:var(--green); background:var(--green-soft);  border-color:rgba(204,255,0,.32); box-shadow:0 0 0.625rem rgba(204,255,0,.18) inset}
@media(max-width:560px){.rc-toggle{grid-template-columns:1fr}}

/* Catalyst variant of the gauge — green arc + green hover/border */
.risk-card.catalyst:hover{border-color:rgba(204,255,0,.32)}
.risk-card.catalyst .risk-gauge .arc-fill{stroke:var(--green);filter:drop-shadow(0 0 0.25rem rgba(204,255,0,.45))}
.risk-card.catalyst .risk-meta-main b{color:var(--green)}


/* ─────────────────────────────────────────────────────────────────────────
   Studio panel · "look here" nudge animation
   Triggered when a canvas auto-opens after a briefing click. Pulses the
   panel border + scrolls a soft halo across so the user notices the new
   canvas without a modal interruption.
   ───────────────────────────────────────────────────────────────────────── */
@keyframes studioNudgeBorder{
  0%   {box-shadow:0 0 0 0 rgba(204,255,0,0)}
  18%  {box-shadow:0 0 0 0.1875rem rgba(204,255,0,.45), 0 0 1.25rem rgba(204,255,0,.18)}
  60%  {box-shadow:0 0 0 0.125rem rgba(204,255,0,.22), 0 0 0.875rem rgba(204,255,0,.08)}
  100% {box-shadow:0 0 0 0 rgba(204,255,0,0)}
}
@keyframes studioNudgeArrow{
  0%   {opacity:0; transform:translateX(-0.625rem) scale(.8)}
  20%  {opacity:1; transform:translateX(0)         scale(1.05)}
  60%  {opacity:1; transform:translateX(0)         scale(1)}
  100% {opacity:0; transform:translateX(0.5rem)    scale(.95)}
}
@keyframes studioNudgeHalo{
  0%, 100% {opacity:0}
  20%, 70% {opacity:.55}
}
.studio-nudge{position:relative;animation:studioNudgeBorder 2.4s ease-out 1;border-radius:var(--r-lg)}
.studio-nudge::before{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:linear-gradient(135deg,rgba(204,255,0,.12) 0%,rgba(204,255,0,0) 60%);
  animation:studioNudgeHalo 2.4s ease-out 1;z-index:0
}
/* Subtle "look right" arrow that streaks in for ~1.4s next to the studio
   header so the user's eye is drawn from chat → studio. */
.studio-nudge::after{
  content:"";position:absolute;top:1.25rem;right:calc(100% + 0.375rem);width:1.5rem;height:0.875rem;pointer-events:none;
  background:no-repeat center/contain url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 14' fill='none' stroke='%23ccff00' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='M2 7h28M24 1l6 6-6 6'/></svg>");
  animation:studioNudgeArrow 1.6s ease-out 1;opacity:0;
  filter:drop-shadow(0 0 0.375rem rgba(204,255,0,.55))
}

/* ════════════════════════════════════════════════════════════════════
   Consensus pattern cards · transcript-level signals
   Pattern 1 (stance ladder), 3 (time-horizon), 4 (texture), 5 (flips),
   6 (frames). Pattern 2 reuses the existing sparkline visual.
   ════════════════════════════════════════════════════════════════════ */

/* Pattern 1: Stance ladder — 5-column histogram (V.bull → V.bear) with delta arrows */
.psig-stance-vis{display:grid;grid-template-rows:1fr 0.875rem;gap:0.25rem;height:100%;width:100%}
.stance-cols{display:grid;grid-template-columns:repeat(5,1fr);gap:0.375rem;align-items:end;height:100%;padding-top:0.625rem}
.stance-col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;position:relative;gap:0.0625rem}
.stance-delta{position:absolute;top:0;font-family:var(--fm);font-size:0.5rem;font-weight:800;letter-spacing:.02em;line-height:1;padding:0.0625rem 0.1875rem;border-radius:0.125rem;background:var(--bg);border:0.0625rem solid var(--rim)}
.stance-delta.up   {color:var(--green); border-color:rgba(204,255,0,.32)}
.stance-delta.dn   {color:var(--red);   border-color:rgba(255,80,0,.32)}
.stance-delta.flat {color:var(--fog)}
.stance-bar{display:block;width:78%;min-height:0.1875rem;border-radius:0.1875rem 0.1875rem 0 0;transition:height .4s ease}
.stance-pct{font-family:var(--fm);font-size:0.5625rem;font-weight:700;color:var(--snow);letter-spacing:.02em;line-height:1;margin-top:0.125rem}
.stc-vbull .stance-bar{background:linear-gradient(180deg,#ccff00,rgba(204,255,0,.65));box-shadow:0 0 0.4375rem rgba(204,255,0,.32)}
.stc-bull  .stance-bar{background:linear-gradient(180deg,rgba(204,255,0,.7),rgba(204,255,0,.4))}
.stc-neut  .stance-bar{background:linear-gradient(180deg,rgba(220,220,220,.42),rgba(220,220,220,.22))}
.stc-bear  .stance-bar{background:linear-gradient(180deg,rgba(255,80,0,.5),rgba(255,80,0,.3))}
.stc-vbear .stance-bar{background:linear-gradient(180deg,#ff5000,rgba(255,80,0,.65))}
.stance-axis{display:grid;grid-template-columns:repeat(5,1fr);gap:0.375rem;font-family:var(--fm);font-size:0.5rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--fog);text-align:center}
.stance-axis span:nth-child(1){color:rgba(204,255,0,.85)}
.stance-axis span:nth-child(5){color:rgba(255,80,0,.85)}

/* Pattern 3: Time-horizon — 4-column butterfly (bulls up / bears down across horizons) */
.psig-horizon-vis{display:grid;grid-template-rows:1fr 0.875rem;gap:0.25rem;height:100%;width:100%}
.hz-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:0.5rem;height:100%}
.hz-col{display:grid;grid-template-rows:1fr 0.0625rem 1fr;height:100%;min-width:0}
.hz-half{display:flex;justify-content:center;min-width:0}
.hz-half-bull{align-items:flex-end}
.hz-half-bear{align-items:flex-start}
.hz-bull,.hz-bear{display:block;width:72%;transition:height .4s ease;min-height:0.125rem}
.hz-bull{border-radius:0.1875rem 0.1875rem 0 0;background:linear-gradient(180deg,#ccff00,rgba(204,255,0,.55));box-shadow:0 -0.0625rem 0.5rem rgba(204,255,0,.18)}
.hz-bear{border-radius:0 0 0.1875rem 0.1875rem;background:linear-gradient(0deg,#ff5000,rgba(255,80,0,.55));box-shadow:0 0.0625rem 0.5rem rgba(255,80,0,.18)}
.hz-axis-line{background:var(--rim2);height:0.0625rem;width:100%;align-self:center}
.hz-axis{display:grid;grid-template-columns:repeat(4,1fr);gap:0.5rem;font-family:var(--fm);font-size:0.5rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--fog);text-align:center}

/* Pattern 4: Disagreement texture — bulls | overlap | bears */
.psig-texture-vis{display:grid;grid-template-columns:1fr auto 1fr;gap:0.4375rem;align-items:center;height:100%;width:100%;font-family:var(--fb)}
.tx-col{display:flex;flex-direction:column;gap:0.1875rem;min-width:0}
.tx-col-lbl{font-family:var(--fm);font-size:0.5rem;letter-spacing:.06em;text-transform:uppercase;color:var(--fog);font-weight:700;margin-bottom:0.0625rem}
.tx-bulls .tx-col-lbl{color:var(--green)}
.tx-bears .tx-col-lbl{color:var(--red)}
.tx-topic{font-size:0.625rem;color:var(--cloud);background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.1875rem;padding:0.1875rem 0.375rem;line-height:1.2;font-weight:600;letter-spacing:-.005em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tx-topic.shared{color:var(--gold);background:rgba(245,166,35,.1);border-color:rgba(245,166,35,.32)}
.tx-overlap{display:flex;flex-direction:column;align-items:center;gap:0.0625rem;padding:0.1875rem 0.375rem;background:rgba(245,166,35,.08);border:0.0625rem dashed rgba(245,166,35,.4);border-radius:0.25rem}
.tx-overlap-num{font-family:var(--fd);font-size:1rem;font-weight:900;color:var(--gold);line-height:1;letter-spacing:-.02em}
.tx-overlap-num small{font-size:0.625rem;font-weight:700;color:rgba(245,166,35,.7);margin-left:0.0625rem}
.tx-overlap-lbl{font-family:var(--fm);font-size:0.4375rem;letter-spacing:.06em;text-transform:uppercase;color:var(--fog);font-weight:700;text-align:center;line-height:1.2}

/* Pattern 5: Mind-changes — three flow rows */
.psig-flips-vis{display:flex;flex-direction:column;gap:0.3125rem;justify-content:center;height:100%;width:100%}
.flip-row{display:grid;grid-template-columns:2.625rem auto 3.125rem 1fr;align-items:center;gap:0.4375rem;font-family:var(--fm);font-size:0.625rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:0.1875rem 0.375rem;border-radius:0.1875rem;background:var(--bg3);border:0.0625rem solid var(--rim)}
.flip-from,.flip-to{color:var(--cloud)}
.flip-arrow{font-family:var(--fd);font-size:0.875rem;font-weight:700;line-height:1}
.flip-count{justify-self:end;font-family:var(--fd);font-size:0.9375rem;font-weight:900;color:var(--snow);line-height:1}
.flip-row.flip-bear{border-color:rgba(255,80,0,.32);background:rgba(255,80,0,.06)}
.flip-row.flip-bear .flip-arrow,.flip-row.flip-bear .flip-count,.flip-row.flip-bear .flip-to{color:var(--red)}
.flip-row.flip-bull{border-color:rgba(204,255,0,.32);background:rgba(204,255,0,.06)}
.flip-row.flip-bull .flip-arrow,.flip-row.flip-bull .flip-count,.flip-row.flip-bull .flip-to{color:var(--green)}
.flip-row.flip-mute{opacity:.85}
.flip-row.flip-mute .flip-arrow,.flip-row.flip-mute .flip-count,.flip-row.flip-mute .flip-to{color:var(--fog)}

/* Pattern 6: Frames emerging vs retiring — two-column micro bars */
.psig-frames-vis{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;align-items:start;height:100%;width:100%}
.frames-col{display:flex;flex-direction:column;gap:0.25rem;min-width:0}
.frames-col-lbl{font-family:var(--fm);font-size:0.5rem;letter-spacing:.06em;text-transform:uppercase;color:var(--fog);font-weight:700;margin-bottom:0.0625rem}
.frames-emerging .frames-col-lbl{color:var(--green)}
.frames-retiring .frames-col-lbl{color:var(--red)}
.frame-row{display:grid;grid-template-columns:1fr 2.5rem;align-items:center;gap:0.375rem}
.frame-name{font-family:var(--fb);font-size:0.625rem;color:var(--cloud);font-weight:600;letter-spacing:-.005em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.frame-bar{height:0.3125rem;background:var(--bg3);border-radius:6.25rem;overflow:hidden;border:0.0625rem solid var(--rim)}
.frame-fill{display:block;height:100%;border-radius:6.25rem;transition:width .4s ease}
.frame-fill.up  {background:linear-gradient(90deg,rgba(204,255,0,.55),var(--green))}
.frame-fill.down{background:linear-gradient(90deg,rgba(255,80,0,.55),var(--red))}

/* ── Pulse signal · "How narrow the bull case is" — single horizontal stack with bracket ── */
.psig-narrow-vis{display:flex;flex-direction:column;justify-content:center;gap:0.5rem;height:100%;width:100%;padding-top:0.25rem}
.nrw-stack{display:flex;width:100%;height:1.75rem;border-radius:0.25rem;overflow:hidden;border:0.0625rem solid var(--rim);background:var(--bg3);box-shadow:inset 0 0 0.625rem rgba(0,0,0,.32)}
.nrw-seg{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0;padding:0 0.25rem;border-right:0.0625rem solid rgba(0,0,0,.4);transition:width .4s ease;overflow:hidden;line-height:1.05;gap:0.0625rem}
.nrw-seg:last-child{border-right:0}
.nrw-seg-name{font-family:var(--fb);font-size:0.5625rem;font-weight:600;color:var(--snow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.nrw-seg-pct{font-family:var(--fm);font-size:0.5rem;font-weight:800;color:var(--snow);letter-spacing:.02em;opacity:.85}
.nrw-seg.nrw-1   {background:linear-gradient(180deg,var(--gold),rgba(245,166,35,.62));box-shadow:inset 0 0.0625rem 0.4375rem rgba(255,255,255,.12)}
.nrw-seg.nrw-2   {background:linear-gradient(180deg,rgba(245,166,35,.78),rgba(245,166,35,.42))}
.nrw-seg.nrw-3   {background:linear-gradient(180deg,rgba(245,166,35,.55),rgba(245,166,35,.28))}
.nrw-seg.nrw-rest{background:linear-gradient(180deg,rgba(220,220,220,.22),rgba(220,220,220,.1))}
.nrw-seg.nrw-rest .nrw-seg-name,.nrw-seg.nrw-rest .nrw-seg-pct{color:var(--cloud)}
.nrw-bracket{display:flex;flex-direction:column;align-items:flex-start;width:100%;font-family:var(--fm);font-size:0.5rem;font-weight:700;color:var(--gold);letter-spacing:.04em;text-transform:uppercase;gap:0.125rem}
.nrw-bracket-line{display:block;height:0.25rem;border-left:0.0625rem solid rgba(245,166,35,.55);border-right:0.0625rem solid rgba(245,166,35,.55);border-bottom:0.0625rem solid rgba(245,166,35,.55);border-radius:0 0 0.125rem 0.125rem}
.nrw-bracket-lbl{padding-left:0.25rem}

/* ── Per-card "Why this matters" toggle on primary + extra pulse cards ── */
.psig-primary .psig-meta,
.pulse-signals-extra .psig-meta{display:none}
.psig-primary .psig-meta.open,
.pulse-signals-extra .psig-meta.open{display:block;animation:psigMetaFade .38s cubic-bezier(.2,.8,.25,1)}
@keyframes psigMetaFade{
  from{opacity:0;transform:translateY(-0.25rem);filter:blur(0.0625rem)}
  to  {opacity:1;transform:translateY(0);filter:blur(0)}
}
.psig-explain-btn{display:flex;align-items:center;justify-content:center;gap:0.375rem;width:100%;margin-top:0.25rem;padding:0.4375rem 0.625rem;background:transparent;border:0;border-top:0.0625rem dashed var(--rim);border-radius:0;font-family:var(--fm);font-size:0.5625rem;font-weight:700;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:color .15s,background .15s}
.psig-explain-btn:hover{color:var(--cloud);background:rgba(255,255,255,.02)}
.psig-explain-btn[aria-expanded="true"]{color:var(--cloud);border-top-color:var(--rim2)}
.psig-explain-arrow{display:inline-block;font-size:0.625rem;line-height:1;transition:transform .2s ease}
.psig-explain-btn[aria-expanded="true"] .psig-explain-arrow{transform:rotate(180deg)}

/* ── Research desk · trusted-source quote rows (premium, gold-accent) ── */
.resq-block{margin-top:1.5rem;padding:1.125rem 1.25rem 1.25rem;background:linear-gradient(180deg,rgba(245,166,35,.04) 0%,rgba(245,166,35,0) 65%),var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);position:relative;overflow:hidden}
.resq-block::before{content:'';position:absolute;top:0;left:0;height:0.0625rem;width:100%;background:linear-gradient(90deg,transparent 0%,rgba(245,166,35,.5) 25%,rgba(245,166,35,.5) 75%,transparent 100%);pointer-events:none}
.resq-head{display:flex;align-items:center;gap:0.875rem;margin-bottom:0.875rem;flex-wrap:wrap}
.resq-eyebrow{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);padding:0.1875rem 0.5rem;border:0.0625rem solid rgba(245,166,35,.32);border-radius:0.1875rem;background:rgba(245,166,35,.05)}
.resq-tagline{font-size:0.78125rem;color:var(--cloud);flex:1;min-width:14rem;line-height:1.4}
.resq-all{display:inline-flex;align-items:center;gap:0.375rem;background:transparent;border:0.0625rem solid var(--rim2);border-radius:0.3125rem;padding:0.375rem 0.6875rem;font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--cloud);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .15s}
.resq-all:hover{color:var(--gold);border-color:rgba(245,166,35,.45);background:rgba(245,166,35,.04)}
.resq-all-arrow{font-size:0.75rem;line-height:1;transition:transform .15s}
.resq-all:hover .resq-all-arrow{transform:translateX(0.125rem)}

.resq-row{display:grid;grid-template-columns:0.1875rem 2rem minmax(8rem,9.5rem) minmax(11rem,15rem) minmax(0,1fr) auto 0.875rem;align-items:center;gap:0.875rem;width:100%;padding:0.6875rem 0.875rem 0.6875rem 0.5rem;margin-top:0.4375rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.5rem;cursor:pointer;text-align:left;color:inherit;font:inherit;transition:all .18s ease;position:relative;overflow:hidden}
.resq-row:first-of-type{margin-top:0}
.resq-row:hover{border-color:rgba(245,166,35,.35);background:linear-gradient(90deg,rgba(245,166,35,.05) 0%,rgba(245,166,35,.01) 60%,var(--bg2) 100%);transform:translateY(-0.0625rem)}
.resq-row:focus-visible{outline:none;border-color:rgba(245,166,35,.55);box-shadow:0 0 0 0.125rem rgba(245,166,35,.18)}
.resq-rail{display:block;height:1.625rem;width:0.1875rem;background:linear-gradient(180deg,var(--gold) 0%,rgba(245,166,35,.25) 100%);border-radius:0.125rem;align-self:center;opacity:.78;transition:opacity .18s}
.resq-row:hover .resq-rail{opacity:1}
.resq-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:50%;background:linear-gradient(135deg,#2a2a2e,#17171a);border:0.0625rem solid rgba(245,166,35,.3);font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--gold);letter-spacing:.04em}
.resq-avatar::before{content:attr(data-init)}
.resq-avatar-dot{position:absolute;bottom:-0.0625rem;right:-0.0625rem;width:0.5rem;height:0.5rem;border-radius:50%;background:var(--gold);border:0.125rem solid var(--bg2);box-shadow:0 0 0.375rem rgba(245,166,35,.55)}
.resq-source{display:flex;flex-direction:column;gap:0.125rem;min-width:0}
.resq-name{font-size:0.78125rem;font-weight:600;color:var(--snow);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.resq-meta{display:inline-flex;align-items:center;gap:0.375rem;line-height:1}
.resq-pill.research{font-family:var(--fm);font-size:0.5rem;font-weight:700;color:var(--gold);letter-spacing:.1em;text-transform:uppercase;padding:0.125rem 0.3125rem;background:rgba(245,166,35,.08);border:0.0625rem solid rgba(245,166,35,.28);border-radius:0.1875rem;line-height:1}
.resq-channel{font-family:var(--fm);font-size:0.625rem;color:var(--fog);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.resq-cite{display:flex;flex-direction:column;gap:0.1875rem;min-width:0}
.resq-video{font-size:0.71875rem;color:var(--cloud);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.resq-ts{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em;display:inline-flex;align-items:center;gap:0.25rem;align-self:flex-start}
.resq-row:hover .resq-ts{color:var(--gold)}
.resq-quote{font-size:0.8125rem;color:var(--snow);line-height:1.45;font-style:italic;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;position:relative;padding-left:0.625rem;border-left:0.0625rem solid var(--rim)}
.resq-stance{display:inline-flex;align-items:center;gap:0.5rem;padding:0.25rem 0.5rem 0.25rem 0.5rem;border:0.0625rem solid var(--rim);border-radius:0.3125rem;background:var(--bg3)}
.resq-stance.bull{color:var(--green);border-color:rgba(204,255,0,.22);background:rgba(204,255,0,.04)}
.resq-stance.bear{color:#ff7560;border-color:rgba(255,117,96,.25);background:rgba(255,117,96,.05)}
.resq-tk{font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--snow);letter-spacing:.02em}
.resq-spark{width:3.25rem;height:1rem;display:block}
.resq-arrow{font-size:0.625rem;line-height:1}
.resq-cta{font-family:var(--fm);font-size:0.875rem;color:var(--fog);transition:all .18s}
.resq-row:hover .resq-cta{color:var(--gold);transform:translateX(0.125rem)}

@media (max-width:62rem){
  .resq-row{grid-template-columns:0.1875rem 2rem 1fr auto;grid-template-areas:'rail avatar source cta' 'rail cite cite cite' 'rail quote quote quote' 'rail stance stance stance';gap:0.5rem 0.625rem;padding:0.75rem}
  .resq-rail{grid-area:rail;height:100%}
  .resq-avatar{grid-area:avatar}
  .resq-source{grid-area:source}
  .resq-cite{grid-area:cite}
  .resq-quote{grid-area:quote}
  .resq-stance{grid-area:stance;justify-self:start}
  .resq-cta{grid-area:cta;align-self:start}
}


/* ═════════════════════════════════════════════════════════════════
   Fundamentals lens · Top Overview Bar
   ═════════════════════════════════════════════════════════════════ */
.ov-bar{display:flex;flex-direction:column;gap:0.875rem;margin-bottom:1.5rem}
.ov-hero{display:grid;grid-template-columns:1fr auto;gap:1.25rem;align-items:flex-start;padding:1rem 1.125rem;background:linear-gradient(180deg,var(--bg2) 0%,var(--bg1) 100%);border:0.0625rem solid var(--rim);border-radius:0.625rem}
.ov-hero-left{display:flex;flex-direction:column;gap:0.5rem;min-width:0}
.ov-breadcrumb{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.04em}
.ov-breadcrumb span{color:var(--cloud)}
.ov-name-row{display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap}
.ov-logo{width:2.5rem;height:2.5rem;border-radius:0.5rem;object-fit:contain;background:#fff;padding:0.25rem;border:0.0625rem solid var(--rim);flex-shrink:0}
.ov-name-wrap{display:flex;flex-direction:column;gap:0.125rem;min-width:0}
.ov-name{font-size:1.375rem;font-weight:700;color:var(--snow);line-height:1.15;letter-spacing:-0.01em}
.ov-name-sub{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.04em}
.ov-tags{display:flex;gap:0.375rem;flex-wrap:wrap;margin-left:auto}
.ov-tag{font-family:var(--fm);font-size:0.625rem;font-weight:600;color:var(--cloud);letter-spacing:.06em;text-transform:uppercase;padding:0.1875rem 0.5rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.25rem}
.ov-tag.active{color:var(--green);border-color:rgba(204,255,0,.25);background:rgba(204,255,0,.05)}
.ov-hero-right{display:flex;flex-direction:column;align-items:flex-end;gap:0.25rem}
.ov-price{font-family:var(--fm);font-size:1.625rem;font-weight:700;color:var(--snow);letter-spacing:-0.02em;line-height:1}
.ov-price-change{font-family:var(--fm);font-size:0.8125rem;font-weight:600;padding:0.1875rem 0.5rem;border-radius:0.25rem;background:var(--bg3);border:0.0625rem solid var(--rim)}
.ov-price-change.up{color:var(--green);border-color:rgba(204,255,0,.25);background:rgba(204,255,0,.05)}
.ov-price-change.down{color:#ff7560;border-color:rgba(255,117,96,.25);background:rgba(255,117,96,.05)}
.ov-mcap{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.04em;margin-top:0.125rem}

.ov-mid{display:grid;grid-template-columns:1fr auto auto auto;gap:1rem;align-items:center;padding:0.75rem 1.125rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.625rem}
.ov-consensus{display:flex;flex-direction:column;gap:0.125rem;min-width:0}
.ov-consensus-target{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.04em;text-transform:uppercase}
.ov-consensus-target b{color:var(--gold);font-weight:700;font-size:1rem;letter-spacing:0;text-transform:none;margin-left:0.375rem}
.ov-consensus-grades{font-family:var(--fm);font-size:0.625rem;color:var(--cloud)}
.ov-consensus-grades .buy{color:var(--green)}
.ov-consensus-grades .hold{color:var(--gold)}
.ov-consensus-grades .sell{color:#ff7560}
.ov-sparkline{width:8rem;height:2rem;display:block}
.ov-returns{display:flex;gap:0.375rem}
.ov-return-chip{display:flex;flex-direction:column;align-items:center;gap:0.0625rem;padding:0.25rem 0.5rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.3125rem;min-width:3rem}
.ov-return-chip .lbl{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase}
.ov-return-chip .val{font-family:var(--fm);font-size:0.75rem;font-weight:700;color:var(--snow);letter-spacing:-0.01em}
.ov-return-chip .val.up{color:var(--green)}
.ov-return-chip .val.down{color:#ff7560}
.ov-score{display:flex;flex-direction:column;align-items:center;gap:0.0625rem;padding:0.3125rem 0.75rem;background:rgba(204,255,0,.06);border:0.0625rem solid rgba(204,255,0,.2);border-radius:0.3125rem}
.ov-score-label{font-family:var(--fm);font-size:0.5625rem;color:var(--green);letter-spacing:.06em;text-transform:uppercase}
.ov-score-value{font-family:var(--fm);font-size:0.9375rem;font-weight:700;color:var(--green);letter-spacing:-0.01em;line-height:1}

.ov-updated{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em;text-align:right;padding-right:0.375rem}

.ov-description{padding:0.875rem 1.125rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.625rem;font-size:0.8125rem;color:var(--cloud);line-height:1.55}

.ov-news-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18rem,1fr));gap:0.625rem;margin-top:0.5rem}
.ov-news-card{display:flex;gap:0.625rem;padding:0.5rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.5rem;text-decoration:none;color:inherit;transition:all .18s ease;min-width:0}
.ov-news-card:hover{border-color:rgba(245,166,35,.35);background:linear-gradient(90deg,rgba(245,166,35,.05) 0%,rgba(245,166,35,.01) 60%,var(--bg2) 100%);transform:translateY(-0.0625rem)}
.ov-news-img{width:4.5rem;height:4.5rem;object-fit:cover;border-radius:0.375rem;background:var(--bg3);border:0.0625rem solid var(--rim);flex-shrink:0;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center}
.ov-news-img-ph{width:1.6rem;height:1.6rem;color:var(--fog);opacity:0.35}
.ov-news-img.has-image .ov-news-img-ph{display:none}
.ov-news-body{display:flex;flex-direction:column;gap:0.1875rem;min-width:0;flex:1}
.ov-news-source{font-family:var(--fm);font-size:0.625rem;color:var(--gold);letter-spacing:.04em;text-transform:uppercase}
.ov-news-title{font-size:0.8125rem;color:var(--snow);line-height:1.35;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.ov-news-date{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);margin-top:auto}

/* Make the 4 headline metric cards in the overview bar pop slightly more */
.lens-metric-grid.ov-headline-metrics .lens-metric{background:linear-gradient(180deg,var(--bg2) 0%,var(--bg1) 100%);padding:0.875rem 1rem}
.lens-metric-grid.ov-headline-metrics .lens-metric-value{font-size:1.25rem}

@media (max-width:62rem){
  .ov-mid{grid-template-columns:1fr;gap:0.5rem}
  .ov-sparkline{width:100%}
  .ov-hero{grid-template-columns:1fr;gap:0.75rem}
  .ov-hero-right{align-items:flex-start}
}

/* ═════════════════════════════════════════════════════════════════
   Earnings Call Transcript · drill-down expand
   ═════════════════════════════════════════════════════════════════ */
.lens-strip[data-tx-strip]:hover{border-color:rgba(245,166,35,.35);background:linear-gradient(90deg,rgba(245,166,35,.04) 0%,rgba(245,166,35,.005) 60%,var(--bg2) 100%)}
.lens-strip[data-tx-strip].expanded [data-tx-field="expand_chevron"]{transform:rotate(180deg);display:inline-block}

.tx-expand{margin:0.5rem 0 1rem;padding:0.875rem 1rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.625rem;border-top:none;border-top-left-radius:0;border-top-right-radius:0;margin-top:-0.5rem}
.tx-topics{display:flex;flex-wrap:wrap;gap:0.375rem;margin-bottom:0.875rem}
.tx-chip{font-family:var(--fm);font-size:0.625rem;font-weight:600;color:var(--gold);letter-spacing:.04em;padding:0.25rem 0.5rem;background:rgba(245,166,35,.06);border:0.0625rem solid rgba(245,166,35,.22);border-radius:0.25rem}
.tx-chip::before{content:"× ";opacity:.55}

.tx-speakers{display:flex;flex-direction:column;gap:0.5rem}
.tx-row{display:grid;grid-template-columns:2.5rem 1fr auto;gap:0.75rem;align-items:flex-start;padding:0.625rem 0.75rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.4375rem}
.tx-role{width:2.5rem;height:1.625rem;display:flex;align-items:center;justify-content:center;font-family:var(--fm);font-size:0.625rem;font-weight:700;letter-spacing:.04em;border-radius:0.25rem;border:0.0625rem solid var(--rim);background:var(--bg2);color:var(--cloud)}
.tx-role.ceo{color:var(--green);border-color:rgba(204,255,0,.25);background:rgba(204,255,0,.05)}
.tx-role.cfo{color:var(--blue);border-color:rgba(90,200,250,.25);background:rgba(90,200,250,.05)}
.tx-role.analyst{color:#b48cff;border-color:rgba(180,140,255,.25);background:rgba(180,140,255,.05)}
.tx-content{min-width:0}
.tx-tags{display:flex;gap:0.375rem;margin-bottom:0.25rem;flex-wrap:wrap}
.tx-tag{font-family:var(--fm);font-size:0.5rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0.1rem 0.3125rem;border-radius:0.1875rem;border:0.0625rem solid var(--rim)}
.tx-tag.ceo{color:var(--green);border-color:rgba(204,255,0,.25);background:rgba(204,255,0,.05)}
.tx-tag.cfo{color:var(--blue);border-color:rgba(90,200,250,.25);background:rgba(90,200,250,.05)}
.tx-tag.analyst{color:#b48cff;border-color:rgba(180,140,255,.25);background:rgba(180,140,255,.05)}
.tx-tag.topic{color:#ff8eb6;border-color:rgba(255,142,182,.25);background:rgba(255,142,182,.05)}
.tx-quote{font-size:0.8125rem;color:var(--cloud);line-height:1.5;font-style:italic}
.tx-time{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em;white-space:nowrap}

/* Expandable per-section row: pull-quote visible, full sentence in the drop-down */
.tx-sec{background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.4375rem;overflow:hidden}
.tx-sec.pos{border-left:0.1875rem solid rgba(204,255,0,.4)}
.tx-sec.neg{border-left:0.1875rem solid rgba(255,117,96,.45)}
.tx-sec-head{display:grid;grid-template-columns:2.5rem 1fr 1rem;gap:0.75rem;align-items:start;padding:0.625rem 0.75rem;cursor:pointer;list-style:none;user-select:none}
.tx-sec-head::-webkit-details-marker{display:none}
.tx-sec-head:hover{background:rgba(255,255,255,0.02)}
.tx-sec-main{min-width:0;display:flex;flex-direction:column;gap:0.3125rem}
.tx-sec-tags{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}
.tx-sec-speaker{font-family:var(--fm);font-size:0.625rem;font-weight:600;color:var(--cloud);letter-spacing:.02em}
.tx-sec-toggle{align-self:center;width:0.625rem;height:0.625rem;border-right:0.125rem solid var(--fog);border-bottom:0.125rem solid var(--fog);transform:rotate(45deg);transition:transform .2s;margin-top:-0.2rem}
.tx-sec[open] .tx-sec-toggle{transform:rotate(-135deg);margin-top:0.2rem}
.tx-sec-full{padding:0 0.75rem 0.75rem calc(2.5rem + 1.5rem);font-size:0.78125rem;color:var(--cloud);line-height:1.6}
.tx-sec[open] .tx-sec-head .tx-quote{color:var(--snow)}

/* Always-open scroll of quotes; each row elaborates in-place */
.tx-scroll{max-height:34rem;overflow-y:auto;display:flex;flex-direction:column;gap:0.5rem;padding-right:0.25rem;margin-right:-0.25rem}
.tx-scroll::-webkit-scrollbar{width:0.5rem}
.tx-scroll::-webkit-scrollbar-thumb{background:var(--rim2);border-radius:0.25rem}
.tx-empty{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);text-align:center;padding:1.5rem 0.75rem;line-height:1.6}
/* the elaborate drop-down: verbatim context (quote bolded) + AI takeaway */
.tx-sec-body{padding:0 0.75rem 0.75rem calc(2.5rem + 0.75rem);display:flex;flex-direction:column;gap:0.5rem}
.tx-sec-context{font-size:0.78125rem;color:var(--cloud);line-height:1.6;font-style:italic;padding-left:0.625rem;border-left:0.125rem solid var(--rim2)}
.tx-sec-context b{color:var(--snow);font-style:normal;font-weight:600}

.tx-footer{display:flex;justify-content:space-between;align-items:center;margin-top:0.75rem;padding-top:0.625rem;border-top:0.0625rem solid var(--rim)}
.tx-footer-left{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em}
.tx-full-btn{font-family:var(--fm);font-size:0.6875rem;font-weight:600;color:var(--gold);background:rgba(245,166,35,.06);border:0.0625rem solid rgba(245,166,35,.25);border-radius:0.3125rem;padding:0.3125rem 0.625rem;cursor:pointer;letter-spacing:.04em;transition:all .18s}
.tx-full-btn:hover{background:rgba(245,166,35,.12);transform:translateY(-0.0625rem)}

.tx-full{margin-top:0.875rem;padding:0.875rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:0.4375rem;max-height:32rem;overflow-y:auto}
.tx-full-meta{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em;margin-bottom:0.5rem;padding-bottom:0.5rem;border-bottom:0.0625rem solid var(--rim)}
.tx-full-content{font-family:var(--fm);font-size:0.75rem;color:var(--cloud);line-height:1.6;white-space:pre-wrap;word-wrap:break-word;margin:0}

/* ═════════════════════════════════════════════════════════════════
   Collapsed transcript-strip topic chips (smaller than expanded)
   ═════════════════════════════════════════════════════════════════ */
.tx-topics-collapsed{margin-top:0.5rem;gap:0.3125rem}
.tx-topics-collapsed .tx-chip{font-size:0.5625rem;padding:0.15rem 0.4375rem}

/* ═════════════════════════════════════════════════════════════════
   Last Earnings strip — Beat badge + two-column EPS/REV breakdown
   ═════════════════════════════════════════════════════════════════ */
.last-earn{display:flex;flex-direction:column;gap:0.75rem;padding:0.875rem 1rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.625rem;margin:0.5rem 0}
.last-earn-head{display:grid;grid-template-columns:auto 1fr auto;gap:0.75rem;align-items:center}
.last-earn-icon{width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;color:var(--green);background:rgba(204,255,0,.05);border:0.0625rem solid rgba(204,255,0,.22);border-radius:0.375rem}
.last-earn-icon svg{width:1rem;height:1rem}
.last-earn-title-block{display:flex;flex-direction:column;gap:0.125rem;min-width:0}
.last-earn-title{font-size:0.875rem;font-weight:600;color:var(--snow);line-height:1.1}
.last-earn-date{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.04em}
.last-earn-badge{font-family:var(--fm);font-size:0.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:0.25rem 0.5rem;border-radius:0.3125rem;border:0.0625rem solid var(--rim);background:var(--bg3);color:var(--cloud)}
.last-earn-badge.beat{color:var(--green);border-color:rgba(204,255,0,.3);background:rgba(204,255,0,.06)}
.last-earn-badge.miss{color:#ff7560;border-color:rgba(255,117,96,.3);background:rgba(255,117,96,.06)}
.last-earn-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.875rem}
.last-earn-col{padding:0.625rem 0.75rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.4375rem}
.last-earn-col-label{font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--gold);letter-spacing:.06em;text-transform:uppercase;margin-bottom:0.375rem}
.last-earn-row{display:flex;justify-content:space-between;align-items:baseline;padding:0.1875rem 0;font-family:var(--fm);font-size:0.75rem}
.last-earn-row span:first-child{color:var(--fog)}
.last-earn-row span:last-child{color:var(--cloud);font-weight:600}
.last-earn-row.surprise span:last-child.up{color:var(--green)}
.last-earn-row.surprise span:last-child.down{color:#ff7560}

/* ═════════════════════════════════════════════════════════════════
   Compact data-driven Fundamentals charts (Surprise & Forward EPS)
   ═════════════════════════════════════════════════════════════════ */
.ffc-svg{width:100%;height:13rem;display:block;margin-bottom:0.5rem}
.ffc-svg text{font-family:var(--fm)}

/* ═════════════════════════════════════════════════════════════════
   Fundamentals data-driven charts — hover + tighter styling
   ═════════════════════════════════════════════════════════════════ */
.ffc-svg{height:19rem;width:100%}
.ffc-svg .ffc-bar rect{transition:filter .15s ease,transform .15s ease;cursor:pointer;transform-box:fill-box;transform-origin:center bottom}
.ffc-svg .ffc-bar:hover rect{filter:brightness(1.25) drop-shadow(0 0 6px rgba(122,140,255,.45));transform:scaleY(1.04)}
.ffc-svg .ffc-pt circle{transition:r .15s ease,filter .15s ease;cursor:pointer}
.ffc-svg .ffc-pt:hover circle{r:6;filter:drop-shadow(0 0 6px rgba(245,166,35,.5))}
/* Native SVG <title> tooltips render natively on hover — no extra JS needed */

/* Quarter-card row beneath surprise chart — slightly more padding & contrast */
.lens-chart .lens-qrow{margin-top:0.875rem;display:grid;grid-template-columns:repeat(4,1fr);gap:0.625rem}
.lens-qcard{padding:0.5rem 0.625rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.4375rem;text-align:center}
.lens-qcard-q{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;margin-bottom:0.1875rem}
.lens-qcard-v{font-family:var(--fm);font-size:0.9375rem;font-weight:700;letter-spacing:-0.01em;line-height:1.05}
.lens-qcard-v.green{color:var(--green)}
.lens-qcard-v.red{color:#ff7560}
.lens-qcard-sub{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em;margin-top:0.1875rem}

/* ═════════════════════════════════════════════════════════════════
   Price Performance chart — multi-line, timeframe selector, crosshair hover
   ═════════════════════════════════════════════════════════════════ */
.pp-chart-block{margin:1rem 0}
.pp-headline{display:flex;align-items:baseline;gap:0.5rem;flex-wrap:wrap;margin-top:0.25rem}
.pp-headline-tk{font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--gold);letter-spacing:.06em}
.pp-headline-price{font-family:var(--fm);font-size:0.9375rem;font-weight:700;color:var(--snow);letter-spacing:-0.01em}
.pp-headline-ret{font-family:var(--fm);font-size:0.8125rem;font-weight:600;color:var(--green)}
.pp-headline-ret.down{color:#ff7560}
.pp-headline-tf{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.06em;margin-left:0.25rem}

.pp-tf-selector,.qa-tf-selector{display:inline-flex;gap:0.1875rem;padding:0.1875rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.4375rem}
.pp-tf-btn,.qa-tf-btn{font-family:var(--fm);font-size:0.625rem;font-weight:600;letter-spacing:.04em;color:var(--fog);background:transparent;border:none;border-radius:0.25rem;padding:0.25rem 0.5rem;cursor:pointer;transition:all .15s ease}
.pp-tf-btn:hover,.qa-tf-btn:hover{color:var(--cloud);background:rgba(255,255,255,.04)}
.pp-tf-btn.active,.qa-tf-btn.active{color:var(--snow);background:var(--bg1);border:0.0625rem solid var(--rim);box-shadow:inset 0 0 0 1px rgba(245,166,35,.18)}

.pp-chart-wrap,.qa-chart-wrap{position:relative;margin-top:0.5rem}
.pp-svg{width:100%;height:18rem;display:block}
.qa-svg{width:100%;height:18rem;display:block}
.pp-svg .pp-line{transition:stroke-width .15s ease,opacity .15s ease;cursor:pointer}
.pp-svg .pp-line:hover{stroke-width:2.5}
.pp-svg .pp-line.dim{opacity:0.3}
.qa-svg .qa-bar rect{transition:filter .15s ease;cursor:pointer}
.qa-svg .qa-bar:hover rect{filter:brightness(1.25)}

.pp-tooltip,.qa-tooltip{position:absolute;background:rgba(15,15,18,0.96);border:0.0625rem solid var(--rim);border-radius:0.4375rem;padding:0.5rem 0.625rem;font-family:var(--fm);font-size:0.6875rem;pointer-events:none;z-index:10;box-shadow:0 4px 16px rgba(0,0,0,.4);min-width:13rem}
.pp-tooltip-date,.qa-tooltip-date{font-size:0.625rem;color:var(--fog);letter-spacing:.06em;margin-bottom:0.3125rem;text-transform:uppercase;border-bottom:0.0625rem solid var(--rim);padding-bottom:0.25rem}
.pp-tooltip-row,.qa-tooltip-row{display:flex;justify-content:space-between;align-items:center;gap:0.5rem;padding:0.1875rem 0;line-height:1.1}
.pp-tooltip-row .lbl,.qa-tooltip-row .lbl{display:flex;align-items:center;gap:0.3125rem;color:var(--cloud)}
.pp-tooltip-row .lbl::before,.qa-tooltip-row .lbl::before{content:'';width:0.5rem;height:0.5rem;border-radius:50%;background:var(--swatch,var(--snow))}
.pp-tooltip-row .val,.qa-tooltip-row .val{font-weight:700;color:var(--snow)}
.pp-tooltip-row .val.up{color:var(--green)}
.pp-tooltip-row .val.down{color:#ff7560}

.pp-legend{display:flex;flex-wrap:wrap;gap:0.375rem;margin-top:0.5rem;padding-top:0.4375rem;border-top:0.0625rem solid var(--rim)}
.pp-legend-row{display:flex;align-items:center;gap:0.375rem;flex:1 1 auto;min-width:0;padding:0.1875rem 0.4375rem;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.3125rem;white-space:nowrap;overflow:hidden}
.pp-legend-row .lbl{display:flex;align-items:center;gap:0.25rem;font-family:var(--fm);font-size:0.5625rem;color:var(--cloud);letter-spacing:.03em;flex-shrink:0}
.pp-legend-row .lbl::before{content:'';width:0.4375rem;height:0.4375rem;border-radius:50%;background:var(--swatch,var(--snow));flex-shrink:0}
.pp-legend-row .price{font-family:var(--fm);font-size:0.625rem;color:var(--cloud);margin-left:auto;flex-shrink:0}
.pp-legend-row .ret{font-family:var(--fm);font-size:0.625rem;font-weight:700;flex-shrink:0}
.pp-legend-row .ret.up{color:var(--green)}
.pp-legend-row .ret.down{color:#ff7560}

/* ═════════════════════════════════════════════════════════════════
   Quarterly Earnings Analysis chart
   ═════════════════════════════════════════════════════════════════ */
.qa-chart-block .lens-chart-head{align-items:flex-start;gap:0.75rem}

/* ═════════════════════════════════════════════════════════════════
   Global density shrink for the fundamentals lens-detail
   (slightly smaller fonts/padding so more fits on the same screen)
   ═════════════════════════════════════════════════════════════════ */
.lens-detail{font-size:0.8125rem}
.lens-detail .lens-head{padding:0.75rem 1rem}
.lens-detail .lens-head-title{font-size:1rem}
.lens-detail .lens-head-sub{font-size:0.6875rem}
.lens-detail .lens-ai-summary{padding:0.75rem 1rem}
.lens-detail .lens-ai-title{font-size:0.8125rem}
.lens-detail .lens-ai-text{font-size:0.75rem;line-height:1.5}
.lens-detail .lens-metric{padding:0.625rem 0.75rem}
.lens-detail .lens-metric-label{font-size:0.625rem}
.lens-detail .lens-metric-value{font-size:1.0625rem}
.lens-detail .lens-metric-sub{font-size:0.6875rem}
.lens-detail .lens-strip{padding:0.6875rem 0.875rem}
.lens-detail .lens-strip-title{font-size:0.8125rem}
.lens-detail .lens-strip-meta{font-size:0.6875rem}
.lens-detail .lens-chart{padding:0.875rem 1rem;margin:0.875rem 0}
.lens-detail .lens-chart-title{font-size:0.9375rem}
.lens-detail .lens-chart-sub{font-size:0.6875rem}
.lens-detail .lens-chart-signal{font-size:0.6875rem;margin-top:0.5rem}
.lens-detail .lens-section{padding:0.75rem 1rem}
.lens-detail .lens-section-title{font-size:0.8125rem}
.lens-detail .lens-table{font-size:0.6875rem}
.lens-detail .last-earn{padding:0.75rem 0.875rem}
.lens-detail .last-earn-title{font-size:0.8125rem}

/* Tighten the top overview bar too */
.lens-detail .ov-hero{padding:0.75rem 0.875rem}
.lens-detail .ov-name{font-size:1.1875rem}
.lens-detail .ov-price{font-size:1.375rem}
.lens-detail .ov-mid{padding:0.5rem 0.875rem}
/* Description flows inside the panel (flush, not a nested box) with a hairline
   separator — packs the overview into one panel instead of stacked cards. */
.lens-detail .ov-description{
  padding:0.625rem 0.125rem 0.125rem;
  margin-top:0.125rem;
  background:transparent;border:0;border-top:0.0625rem solid var(--rim);border-radius:0;
  font-size:0.75rem;line-height:1.5;color:var(--cloud);
}

/* ═════════════════════════════════════════════════════════════════
   Unified top-row navigation in canvas-view mode
   ─────────────────────────────────────────────────────────────────
   When inside a Studio canvas-view we hide the original Studio panel
   header (which held "Back to workspace" + "Studio · TICKER" stacked
   above the canvas header on its own row). All nav buttons + the
   breadcrumb title + action icons share a single row inside
   `.canvas-view-header` for a smooth, professional top bar.
   ═════════════════════════════════════════════════════════════════ */
#studioPanel.studio-mode-canvas .panel-header{display:none}

/* ── Economic Picture: driver banner-card nav + a boxed, stance-themed deep dive ── */
/* Same grey container as the Macro Pulse hero so the page reads as one flow, not
   naked cards on black. */
.econ-drivers-wrap{margin-top:1.4rem;padding:1.15rem 1.25rem 1.35rem;background:var(--bg2);border:0.0625rem solid var(--rim2);border-radius:0.9rem}
.econ-drivers-wrap .moat-dim-head{margin-bottom:1rem}
/* driver nav — a board of banner cards, each with its own logo; active lifts + tints */
.econ-drv-nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(11.5rem,1fr));gap:0.6rem;margin:0.5rem 0 1.2rem}
.econ-drv-chip{display:flex;align-items:center;gap:0.7rem;padding:0.7rem 0.85rem;background:radial-gradient(120% 120% at 0% 0%,color-mix(in srgb,var(--stance) 10%,transparent),transparent 60%),rgba(255,255,255,0.015);border:0.0625rem solid var(--rim);border-radius:0.7rem;cursor:pointer;font:inherit;text-align:left;--stance:#9aa3b2;position:relative;overflow:hidden;transition:border-color .15s,background .15s,transform .12s,box-shadow .15s}
.econ-drv-chip::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0.22rem;background:var(--stance);opacity:0.5;transition:opacity .15s,width .15s}
.econ-drv-chip:hover{border-color:color-mix(in srgb,var(--stance) 50%,var(--rim));transform:translateY(-2px);box-shadow:0 0.5rem 1.2rem rgba(0,0,0,0.28)}
.econ-drv-chip.active{border-color:var(--stance);background:radial-gradient(120% 120% at 0% 0%,color-mix(in srgb,var(--stance) 20%,transparent),transparent 62%),color-mix(in srgb,var(--stance) 7%,transparent)}
.econ-drv-chip.active::before{opacity:1;width:0.3rem}
.econ-drv-ic{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:2.35rem;height:2.35rem;border-radius:0.6rem;color:var(--stance);background:color-mix(in srgb,var(--stance) 14%,transparent);border:0.0625rem solid color-mix(in srgb,var(--stance) 32%,transparent);transition:transform .15s}
.econ-drv-ic svg{width:1.25rem;height:1.25rem}
.econ-drv-chip:hover .econ-drv-ic{transform:scale(1.08)}
.econ-drv-chip.active .econ-drv-ic{background:color-mix(in srgb,var(--stance) 24%,transparent);box-shadow:0 0 0.9rem color-mix(in srgb,var(--stance) 40%,transparent)}
.econ-drv-body{flex:1 1 auto;min-width:0;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0.2rem 0.4rem}
.econ-drv-num{grid-row:1;grid-column:1;display:flex;align-items:center;justify-content:center;min-width:1.1rem;height:1.1rem;padding:0 0.25rem;font-family:var(--fm);font-size:0.54rem;font-weight:800;color:var(--fog);background:rgba(0,0,0,0.28);border:0.0938rem solid var(--rim);border-radius:0.3rem}
.econ-drv-chip.active .econ-drv-num{color:#06121f;background:var(--stance);border-color:var(--stance)}
.econ-drv-name{grid-row:1;grid-column:2;font-size:0.78rem;font-weight:800;color:var(--cloud);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.econ-drv-chip.active .econ-drv-name{color:var(--snow)}
.econ-drv-stance{grid-row:2;grid-column:1 / -1;font-family:var(--fm);font-size:0.52rem;font-weight:800;letter-spacing:0.05em;text-transform:uppercase;color:var(--stance);opacity:0.85}
.econ-drv-chip.neutral .econ-drv-stance{color:var(--fog)}
.econ-drv-bar{grid-row:3;grid-column:1 / -1;display:block;width:100%;height:0.3rem;border-radius:1rem;background:rgba(255,255,255,0.08);overflow:hidden;margin-top:0.15rem}
.econ-drv-bar b{display:block;height:100%;border-radius:1rem;background:var(--stance);opacity:0.85}

/* in-form prev/next + progress key on each driver pane — swipe between the 9 */
.econ-pane-nav{display:flex;align-items:center;justify-content:space-between;gap:0.7rem;margin-bottom:0.9rem;padding-bottom:0.8rem;border-bottom:0.0625rem solid var(--rim)}
.econ-pane-arw{display:inline-flex;align-items:center;gap:0.45rem;flex:0 1 auto;min-width:0;font:inherit;font-size:0.82rem;font-weight:700;color:var(--cloud);background:rgba(255,255,255,0.025);border:0.0625rem solid var(--rim);border-radius:1.6rem;padding:0.5rem 1rem;cursor:pointer;transition:color .12s,border-color .12s,background .12s,transform .12s}
.econ-pane-arw .chev{flex:0 0 auto;font-size:1.15rem;line-height:1;color:var(--stance)}
.econ-pane-arw span:not(.chev){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:0.78rem}
.econ-pane-arw:hover{color:var(--snow);border-color:color-mix(in srgb,var(--stance) 55%,var(--rim));background:color-mix(in srgb,var(--stance) 12%,transparent);transform:translateY(-1px)}
.econ-pane-key{flex:0 0 auto;white-space:nowrap;font-family:var(--fm);font-size:0.82rem;font-weight:700;color:var(--cloud);letter-spacing:0.02em;text-align:center}
.econ-pane-key b{color:var(--stance);font-weight:800;font-size:0.95rem}
.econ-pane-ic{display:inline-flex;align-items:center;justify-content:center;width:1.8rem;height:1.8rem;border-radius:0.5rem;color:var(--stance);background:color-mix(in srgb,var(--stance) 15%,transparent);border:0.0625rem solid color-mix(in srgb,var(--stance) 32%,transparent);margin-right:0.55rem;vertical-align:middle}
.econ-pane-ic svg{width:1.05rem;height:1.05rem}
.econ-pane-title{display:flex;align-items:center}

/* ═══ "Macro Pulse" hero — tabbed infographic top (dashboard · what-moves · news · creator pulse) ═══
   Design notes: --eh-spring gives every hover a bubbly overshoot; panes pop in when a tab
   is picked (display:none → block restarts the keyframe); tone colours glow on hover.
   Contained card, same language as .ai-summary-block but green-accented (the pulse identity). */
.lens-section.econ-hero{
  --eh-spring:cubic-bezier(.34,1.56,.64,1);
  position:relative;
  margin-top:1.15rem;
  padding:1.15rem 1.25rem 1.25rem;
  background:
    radial-gradient(120% 75% at 6% 0%,rgba(204,230,77,0.055),transparent 55%),
    linear-gradient(135deg,rgba(204,230,77,0.035) 0%,rgba(127,208,255,0.02) 55%,rgba(204,230,77,0.025) 100%),
    var(--bg2);
  border:0.0625rem solid var(--rim2);
  border-radius:0.9rem;
  overflow:hidden;
}
.lens-section.econ-hero::before{content:'';position:absolute;top:0;left:0;right:0;height:0.16rem;background:linear-gradient(90deg,#cce64d,rgba(204,230,77,0.25) 45%,transparent 85%);pointer-events:none}
.eh-head{display:flex;align-items:baseline;gap:0.7rem;flex-wrap:wrap;margin-bottom:1rem}
.eh-head-title{display:flex;align-items:center;gap:0.55rem;font-family:var(--fd);font-size:1.55rem;font-weight:800;line-height:1;background:linear-gradient(100deg,var(--snow) 55%,#cce64d 120%);-webkit-background-clip:text;background-clip:text;color:transparent}
.eh-live-dot{flex:0 0 auto;width:0.6rem;height:0.6rem;border-radius:50%;background:#cce64d;box-shadow:0 0 0 0 rgba(204,230,77,0.5);animation:ehLive 2.2s ease-out infinite}
@keyframes ehLive{0%{box-shadow:0 0 0 0 rgba(204,230,77,0.5)}70%{box-shadow:0 0 0 0.55rem rgba(204,230,77,0)}100%{box-shadow:0 0 0 0 rgba(204,230,77,0)}}
.eh-head-sub{font-size:0.8rem;color:var(--fog)}
/* scorecard bar */
.eh-score{margin-bottom:1rem}
.eh-score-bar{display:flex;gap:0.14rem;height:0.55rem;border-radius:0.5rem;overflow:hidden;background:rgba(255,255,255,0.05)}
.eh-score-bar>span{display:block;height:100%;border-radius:0.5rem;transition:filter .18s,transform .18s var(--eh-spring)}
.eh-score-bar:hover>span{filter:brightness(1.15)}
.eh-score-bar .good{background:linear-gradient(90deg,#b8d63a,#cce64d);box-shadow:0 0 0.6rem rgba(204,230,77,0.35)}
.eh-score-bar .flat{background:rgba(255,255,255,0.16)}
.eh-score-bar .bad{background:linear-gradient(90deg,#ff7560,#ff8d70);box-shadow:0 0 0.6rem rgba(255,117,96,0.3)}
.eh-score-key{display:flex;gap:1.1rem;margin-top:0.5rem;font-family:var(--fm);font-size:0.62rem;font-weight:700;letter-spacing:0.03em}
.eh-score-key .good{color:#cce64d}.eh-score-key .flat{color:var(--fog)}.eh-score-key .bad{color:#ff7560}
.eh-score-key span{display:flex;align-items:center;gap:0.3rem;transition:transform .18s var(--eh-spring)}
.eh-score-key span:hover{transform:translateY(-1px) scale(1.06)}
.eh-score-key span::before{content:'';width:0.5rem;height:0.5rem;border-radius:50%;background:currentColor}
/* tab pills */
.eh-tabs{display:flex;gap:0.5rem;flex-wrap:wrap;margin-bottom:1.05rem}
.eh-tab{display:inline-flex;align-items:center;gap:0.42rem;border:0.0625rem solid var(--rim);border-radius:2rem;padding:0.42rem 0.85rem;background:rgba(255,255,255,0.02);color:var(--fog);font-family:var(--fm);font-size:0.62rem;font-weight:800;letter-spacing:0.05em;text-transform:uppercase;cursor:pointer;transition:transform .2s var(--eh-spring),border-color .18s,color .18s,background .18s,box-shadow .18s}
.eh-tab svg{width:0.8rem;height:0.8rem}
.eh-tab-n{font-weight:800;font-style:normal;background:rgba(255,255,255,0.08);border-radius:1rem;padding:0.05rem 0.4rem;font-size:0.56rem;color:var(--cloud);transition:background .18s,color .18s}
.eh-tab:hover{transform:translateY(-2px) scale(1.04);color:var(--snow);border-color:rgba(204,230,77,0.45);box-shadow:0 0.35rem 1rem rgba(0,0,0,0.35)}
.eh-tab:active{transform:translateY(0) scale(0.97)}
.eh-tab.active{color:#0a1420;background:linear-gradient(120deg,#cce64d,#b8d63a);border-color:#cce64d;box-shadow:0 0.25rem 1.1rem rgba(204,230,77,0.28)}
.eh-tab.active .eh-tab-n{background:rgba(10,20,32,0.18);color:#0a1420}
/* panes — pop in on switch */
.eh-pane{animation:ehPaneIn .32s var(--eh-spring)}
.eh-pane.hidden{display:none}
@keyframes ehPaneIn{from{opacity:0;transform:translateY(0.45rem) scale(0.995)}to{opacity:1;transform:none}}
/* economic dashboard — the pulses on one scroll rail (wide fixed cards = room for
   untruncated signal + forward strip; same fade + "scroll →" affordance as the
   pulse event cards, dropped via .at-end when the user reaches the last card) */
.eh-dash-wrap{position:relative}
.eh-dash{display:flex;gap:0.7rem;overflow-x:auto;padding:0.15rem 0.15rem 0.65rem;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:rgba(204,230,77,0.3) rgba(255,255,255,0.05)}
.eh-dash::-webkit-scrollbar{height:0.35rem}
.eh-dash::-webkit-scrollbar-track{background:rgba(255,255,255,0.04);border-radius:1rem}
.eh-dash::-webkit-scrollbar-thumb{background:rgba(204,230,77,0.28);border-radius:1rem}
.eh-dash::-webkit-scrollbar-thumb:hover{background:rgba(204,230,77,0.5)}
.eh-dash::after{content:'';flex:0 0 3.2rem}/* end-spacer: the last card never sits under the fade */
.eh-dash-fade{position:absolute;top:0;right:0;bottom:0.65rem;width:4.5rem;pointer-events:none;background:linear-gradient(90deg,transparent,var(--bg,#0a1420) 88%);transition:opacity .25s}
.eh-dash-hint{position:absolute;right:0.3rem;bottom:-0.35rem;font-family:var(--fm);font-size:0.56rem;color:var(--fog);animation:paHint 2.4s ease-in-out infinite;transition:opacity .25s}
.eh-dash-wrap.at-end .eh-dash-fade,.eh-dash-wrap.at-end .eh-dash-hint{opacity:0}
@keyframes ehDashHint{0%,100%{transform:translateX(0)}50%{transform:translateX(0.3rem)}}
.eh-dash-hint{animation-name:ehDashHint}
.eh-stat{flex:0 0 15rem;scroll-snap-align:start;position:relative;display:flex;flex-direction:column;border:0.0625rem solid var(--rim);border-radius:0.8rem;padding:0.75rem 0.85rem;background:rgba(255,255,255,0.015);overflow:hidden;transition:transform .22s var(--eh-spring),border-color .18s,box-shadow .22s}
.eh-stat::before{content:'';position:absolute;left:0;top:0;bottom:0;width:0.18rem;background:var(--tone,rgba(255,255,255,0.2));transition:width .22s var(--eh-spring)}
.eh-stat::after{content:'';position:absolute;inset:0;background:radial-gradient(120% 90% at 15% 0%,color-mix(in srgb,var(--tone) 10%,transparent),transparent 55%);opacity:0;transition:opacity .22s;pointer-events:none}
.eh-stat:hover{transform:translateY(-3px) scale(1.025);border-color:color-mix(in srgb,var(--tone) 55%,var(--rim));box-shadow:0 0.6rem 1.4rem rgba(0,0,0,0.4),0 0 1rem color-mix(in srgb,var(--tone) 18%,transparent)}
.eh-stat:hover::before{width:0.3rem}
.eh-stat:hover::after{opacity:1}
.eh-stat.good{--tone:#cce64d}.eh-stat.bad{--tone:#ff7560}.eh-stat.flat{--tone:rgba(255,255,255,0.25)}
.eh-stat-top{display:flex;align-items:center;gap:0.4rem;margin-bottom:0.5rem}
.eh-stat-ic{display:flex;color:var(--fog);transition:transform .22s var(--eh-spring),color .18s}
.eh-stat-ic svg{width:0.85rem;height:0.85rem}
.eh-stat:hover .eh-stat-ic{transform:scale(1.25) rotate(-4deg);color:var(--tone)}
.eh-stat-lbl{font-family:var(--fm);font-size:0.58rem;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;color:var(--fog)}
.eh-stat-val{display:flex;align-items:baseline;gap:0.45rem;flex-wrap:wrap;font-family:var(--fd);font-size:1.35rem;font-weight:800;color:var(--snow);line-height:1.05}
.eh-stat-delta{font-family:var(--fm);font-size:0.58rem;font-weight:700;transition:transform .22s var(--eh-spring)}
.eh-stat:hover .eh-stat-delta{transform:scale(1.12)}
.eh-stat-delta.good{color:#cce64d}.eh-stat-delta.bad{color:#ff7560}.eh-stat-delta.flat{color:var(--fog)}
.eh-stat-sig{margin-top:0.4rem;margin-bottom:0.55rem;font-size:0.64rem;color:var(--fog);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .18s}
.eh-stat:hover .eh-stat-sig{color:var(--cloud)}
/* ── State-change forward strip on tiles + the metric dossier ── */
.eh-stat.has-fwd{cursor:pointer}
.eh-stat.active{border-color:rgba(204,230,77,0.6);box-shadow:0 0 0 0.09rem rgba(204,230,77,0.25)}
/* forward strip = one compact pill, pinned to the tile bottom so the whole grid scans as a tidy row */
.eh-stat-fwd{display:flex;align-items:center;gap:0.35rem;margin-top:auto;padding:0.3rem 0.55rem;border-radius:0.5rem;border:0.0625rem solid var(--rim2);background:rgba(255,255,255,0.04);font-family:var(--fm);font-size:0.56rem;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;color:var(--cloud);white-space:nowrap;overflow:hidden}
.eh-fwd-arrow{font-size:0.75rem;line-height:1}
.eh-stat-fwd.rising{background:rgba(255,184,77,0.09);border-color:rgba(255,184,77,0.25)}
.eh-stat-fwd.falling{background:rgba(127,208,255,0.09);border-color:rgba(127,208,255,0.25)}
.eh-stat-fwd.rising .eh-fwd-arrow{color:#ffb84d}
.eh-stat-fwd.falling .eh-fwd-arrow{color:#7fd0ff}
.eh-stat-fwd.stable .eh-fwd-arrow{color:var(--fog)}
.eh-fwd-n{margin-left:auto;color:#cce64d;transition:transform .2s var(--eh-spring)}
.eh-stat.has-fwd:hover .eh-fwd-n{transform:translateX(2px)}
.eh-dossier{margin-top:0.9rem;border:0.0625rem solid rgba(204,230,77,0.28);border-radius:0.8rem;padding:1rem 1.1rem;background:radial-gradient(110% 60% at 8% 0%,rgba(204,230,77,0.05),transparent 55%),var(--bg);animation:ehPaneIn .32s var(--eh-spring)}
.eh-dossier.hidden{display:none}
.ehd-head{display:flex;align-items:center;gap:0.7rem;margin-bottom:0.35rem}
.ehd-title{display:flex;align-items:center;gap:0.6rem;flex-wrap:wrap;font-family:var(--fd);font-size:1.05rem;font-weight:800;color:var(--snow)}
.ehd-outlook{font-family:var(--fm);font-size:0.6rem;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;border-radius:1rem;padding:0.18rem 0.55rem}
.ehd-outlook.rising{color:#ffb84d;background:rgba(255,184,77,.12)}
.ehd-outlook.falling{color:#7fd0ff;background:rgba(127,208,255,.12)}
.ehd-outlook.stable{color:var(--cloud);background:rgba(255,255,255,.07)}
.ehd-close{margin-left:auto;flex:none;width:1.5rem;height:1.5rem;border-radius:50%;border:0.0625rem solid var(--rim2);background:transparent;color:var(--fog);cursor:pointer;font-size:0.7rem;transition:transform .2s var(--eh-spring),color .15s,border-color .15s}
.ehd-close:hover{transform:scale(1.15);color:var(--snow);border-color:var(--rim3)}
.ehd-q{font-size:0.74rem;color:var(--fog);font-style:italic;margin-bottom:0.6rem}
.ehd-chips{display:flex;gap:0.45rem;flex-wrap:wrap;margin-bottom:0.6rem}
.ehd-chip{font-family:var(--fm);font-size:0.6rem;color:var(--cloud);border:0.0625rem solid var(--rim);border-radius:0.4rem;padding:0.25rem 0.5rem;background:rgba(255,255,255,0.02)}
.ehd-chip b{color:var(--fog);font-weight:800;text-transform:uppercase;font-size:0.52rem;letter-spacing:0.04em;margin-right:0.3rem}
.ehd-note{font-size:0.76rem;line-height:1.5;color:var(--cloud);border-left:0.1875rem solid #cce64d;padding-left:0.6rem;margin-bottom:0.7rem}
/* street-consensus check: the engine must adopt or justify divergence */
.ehd-cons{font-size:0.7rem;line-height:1.5;color:var(--cloud);border:0.0625rem solid var(--rim);border-radius:0.5rem;padding:0.5rem 0.65rem;margin-bottom:0.6rem;background:rgba(255,255,255,0.02)}
.ehd-cons b{color:var(--snow)}
.ehd-cons-j{color:var(--fog);font-style:italic}
.ehd-cons-k{display:inline-block;font-family:var(--fm);font-size:0.52rem;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;border-radius:0.3rem;padding:0.08rem 0.4rem;margin-right:0.45rem}
.ehd-cons.aligned .ehd-cons-k{color:#cce64d;background:rgba(204,230,77,.1)}
.ehd-cons.diverges .ehd-cons-k{color:#ffb84d;background:rgba(255,184,77,.12)}
.ehd-why{list-style:none;margin:0 0 0.9rem;padding:0;display:flex;flex-direction:column;gap:0.35rem}
.ehd-why li{display:flex;align-items:flex-start;gap:0.45rem;font-size:0.72rem;line-height:1.45;color:var(--cloud)}
.ehd-cls{flex:none;display:inline-flex;align-items:center;justify-content:center;width:1rem;height:1rem;border-radius:0.25rem;font-family:var(--fm);font-size:0.52rem;font-weight:800;cursor:help;margin-top:0.08rem}
.ehd-cls.measured{color:#cce64d;background:rgba(204,230,77,.12)}
.ehd-cls.reported{color:#7fd0ff;background:rgba(127,208,255,.12)}
.ehd-cls.inferred{color:#b48cff;background:rgba(180,140,255,.12)}
.ehd-src{font-family:var(--fm);font-size:0.56rem;color:#7fd0ff;text-decoration:none;white-space:nowrap}
.ehd-src:hover{text-decoration:underline}
.ehd-scens{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:0.7rem}
.ehd-scen{border:0.0625rem solid var(--rim);border-radius:0.7rem;padding:0.75rem 0.85rem;background:rgba(255,255,255,0.015);transition:transform .22s var(--eh-spring),box-shadow .22s}
.ehd-scen:hover{transform:translateY(-2px);box-shadow:0 0.5rem 1.2rem rgba(0,0,0,0.35)}
.ehd-scen.dir-up{border-top:0.18rem solid #ffb84d}
.ehd-scen.dir-down{border-top:0.18rem solid #7fd0ff}
.ehd-scen-head{display:flex;align-items:center;gap:0.45rem;flex-wrap:wrap;margin-bottom:0.4rem}
.ehd-dir{font-size:0.7rem}.ehd-dir.up{color:#ffb84d}.ehd-dir.down{color:#7fd0ff}
.ehd-scen-name{font-size:0.76rem;color:var(--snow)}
.ehd-lik{font-family:var(--fm);font-size:0.52rem;font-weight:800;text-transform:uppercase;letter-spacing:0.03em;border-radius:1rem;padding:0.1rem 0.45rem}
.ehd-lik.live{color:#0a1420;background:#ff7560}
.ehd-lik.possible{color:#ffb84d;background:rgba(255,184,77,.12)}
.ehd-lik.unlikely{color:var(--fog);background:rgba(255,255,255,.06)}
.ehd-hor,.ehd-via{font-family:var(--fm);font-size:0.54rem;color:var(--fog)}
.ehd-via{margin-left:auto;color:#cce64d}
.ehd-trigger{font-size:0.66rem;color:var(--fog);margin-bottom:0.5rem}
/* horizontal node-flow chain (steps are telegraphic ≤12 words) */
.ehd-chain{display:flex;flex-wrap:wrap;align-items:center;gap:0.3rem;margin-bottom:0.6rem}
.ehd-node{display:inline-flex;align-items:center;gap:0.35rem;font-size:0.66rem;line-height:1.3;color:var(--cloud);padding:0.3rem 0.5rem;border-radius:0.45rem;background:rgba(255,255,255,0.03);border:0.0625rem solid var(--rim);max-width:16rem;transition:transform .2s var(--eh-spring),border-color .15s}
.ehd-node:hover{transform:translateY(-1px)}
.ehd-node.cls-measured{border-color:rgba(204,230,77,.3)}
.ehd-node.cls-reported{border-color:rgba(127,208,255,.3)}
.ehd-node-arrow{color:#cce64d;font-size:0.7rem;font-weight:800}
.ehd-node.has-detail{cursor:pointer}
.ehd-node.has-detail:hover{border-color:rgba(204,230,77,.45)}
.ehd-node.active{border-color:#cce64d;background:rgba(204,230,77,.08)}
.ehd-node-more{font-style:normal;font-size:0.6rem;color:#cce64d;font-weight:800;transition:transform .2s var(--eh-spring)}
.ehd-node.active .ehd-node-more{transform:rotate(45deg)}
.ehd-node-detail{font-size:0.72rem;line-height:1.55;color:var(--cloud);border-left:0.1875rem solid #cce64d;background:rgba(204,230,77,.04);border-radius:0 0.4rem 0.4rem 0;padding:0.5rem 0.65rem;margin-bottom:0.6rem;animation:ehPaneIn .28s var(--eh-spring)}
.ehd-node-detail.hidden{display:none}
.ehd-ver{font-family:var(--fm);font-size:0.52rem;font-weight:800;text-transform:uppercase;letter-spacing:0.03em;border-radius:1rem;padding:0.1rem 0.45rem;cursor:help}
.ehd-ver.supported{color:#cce64d;background:rgba(204,230,77,.12)}
.ehd-ver.weakened{color:#ffb84d;background:rgba(255,184,77,.12)}
.ehd-ver.refuted{color:#ff7560;background:rgba(255,117,96,.14)}
.ehd-mc{font-family:var(--fm);font-size:0.52rem;font-weight:800;text-transform:uppercase;letter-spacing:0.03em;border-radius:1rem;padding:0.1rem 0.45rem}
.ehd-mc.risk_off{color:#ff7560;background:rgba(255,117,96,.12)}
.ehd-mc.risk_on{color:#cce64d;background:rgba(204,230,77,.12)}
.ehd-read{font-size:0.68rem;line-height:1.45;color:var(--cloud);border-radius:0.5rem;padding:0.5rem 0.6rem;margin-bottom:0.5rem;background:rgba(255,255,255,0.025)}
.ehd-read-k{display:inline-block;font-family:var(--fm);font-size:0.52rem;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;margin-right:0.4rem;padding:0.08rem 0.4rem;border-radius:0.3rem}
.ehd-read.direct .ehd-read-k{color:#0a1420;background:#cce64d}
.ehd-read.indirect .ehd-read-k{color:#ffb84d;background:rgba(255,184,77,.14)}
.ehd-read.insulated .ehd-read-k{color:#7fd0ff;background:rgba(127,208,255,.14)}
.ehd-read.amplified.mc-risk_off{background:rgba(255,117,96,.06)}
.ehd-read.amplified.mc-risk_off .ehd-read-k{color:#0a1420;background:#ff7560}
.ehd-read.amplified.mc-risk_on{background:rgba(204,230,77,.05)}
.ehd-read.amplified.mc-risk_on .ehd-read-k{color:#0a1420;background:#cce64d}
/* stress-profile line in the factor panel */
.fs-stress{margin-top:0.5rem;font-size:0.7rem;line-height:1.55;color:var(--cloud);border:0.0625rem solid rgba(255,117,96,.3);border-radius:0.5rem;padding:0.55rem 0.7rem;background:rgba(255,117,96,.04)}
.fs-stress b{color:var(--snow)}
.fs-stress-k{display:inline-block;font-family:var(--fm);font-size:0.52rem;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;color:#ff7560;background:rgba(255,117,96,.12);border-radius:0.3rem;padding:0.08rem 0.4rem;margin-right:0.45rem}
.ehd-watch{display:flex;gap:0.35rem;flex-wrap:wrap}
.ehd-watch-chip{font-family:var(--fm);font-size:0.56rem;color:var(--cloud);border:0.0625rem dashed var(--rim2);border-radius:1rem;padding:0.15rem 0.5rem}
.ehd-foot{margin-top:0.8rem;font-size:0.58rem;line-height:1.5;color:var(--fog)}
.ehd-foot b{color:var(--cloud)}
/* staleness + cross-link variants */
.ehd-stale{display:flex;align-items:center;gap:0.4rem;font-family:var(--fm);font-size:0.62rem;font-weight:700;color:#ffb84d;background:rgba(255,184,77,.08);border:0.0625rem dashed rgba(255,184,77,.35);border-radius:0.5rem;padding:0.45rem 0.6rem;margin-bottom:0.6rem}
.eh-stat-fwd.stale{opacity:0.55}
.eh-stat-fwd.xref{color:var(--fog)}
.eh-stat-fwd.xref .eh-fwd-arrow{color:#7fd0ff}
/* ── Dossier v2 (Fed Funds prototype) — titled sections, progressive disclosure ── */
.e2 .hidden{display:none}
.e2-head{display:flex;align-items:flex-start;gap:1rem;margin-bottom:0.8rem}
.e2-head-l{flex:1;min-width:0}
.e2-kicker{font-family:var(--fm);font-size:0.54rem;font-weight:800;text-transform:uppercase;letter-spacing:0.12em;color:var(--fog);margin-bottom:0.2rem}
.e2-title{font-family:var(--fd);font-size:1.25rem;font-weight:800;color:var(--snow);line-height:1.1}
.e2-q{margin-top:0.25rem;font-size:0.68rem;font-style:italic;color:var(--fog);line-height:1.4}
.e2-verdict{display:flex;align-items:center;gap:0.55rem;padding:0.5rem 0.8rem;border-radius:0.7rem;border:0.0625rem solid var(--rim2);background:rgba(255,255,255,0.03)}
.e2-verdict-a{font-size:1.3rem;line-height:1}
.e2-verdict b{display:block;font-family:var(--fm);font-size:0.72rem;font-weight:800;text-transform:uppercase;letter-spacing:0.05em;color:var(--snow)}
.e2-verdict span{font-family:var(--fm);font-size:0.56rem;color:var(--fog)}
.e2-verdict.falling{border-color:rgba(127,208,255,0.3);background:rgba(127,208,255,0.06)}.e2-verdict.falling .e2-verdict-a{color:#7fd0ff}
.e2-verdict.rising{border-color:rgba(255,184,77,0.3);background:rgba(255,184,77,0.06)}.e2-verdict.rising .e2-verdict-a{color:#ffb84d}
.e2-verdict.stable .e2-verdict-a{color:var(--fog)}
.e2-tldr{margin-bottom:1rem;padding:0.7rem 0.9rem;border-left:0.2rem solid #cce64d;border-radius:0 0.6rem 0.6rem 0;background:rgba(204,230,77,0.05);font-size:0.76rem;line-height:1.6;color:var(--cloud)}
.e2-tldr b{color:var(--snow)}
/* numbered section cards */
.e2-sec{margin-bottom:0.85rem;border:0.0625rem solid var(--rim);border-radius:0.8rem;padding:0.85rem 1rem;background:rgba(255,255,255,0.012)}
.e2-sec-head{display:flex;align-items:flex-start;gap:0.65rem;margin-bottom:0.7rem}
.e2-sec-n{flex:none;display:flex;align-items:center;justify-content:center;width:1.35rem;height:1.35rem;border-radius:50%;background:rgba(204,230,77,0.12);border:0.0625rem solid rgba(204,230,77,0.35);font-family:var(--fm);font-size:0.62rem;font-weight:800;color:#cce64d}
.e2-sec-t{font-family:var(--fd);font-size:0.85rem;font-weight:800;color:var(--snow)}
.e2-sec-d{font-size:0.62rem;color:var(--fog);line-height:1.4}
/* 1 — priced-in fact cards */
.e2-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:0.55rem}
.e2-fact{border:0.0625rem solid var(--rim2);border-radius:0.6rem;padding:0.55rem 0.65rem;background:rgba(255,255,255,0.02)}
.e2-fact-k{font-family:var(--fm);font-size:0.52rem;font-weight:800;text-transform:uppercase;letter-spacing:0.07em;color:var(--fog)}
.e2-fact-v{margin-top:0.15rem;font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow)}
.e2-fact-s{margin-top:0.1rem;font-size:0.58rem;color:var(--fog);line-height:1.35}
/* generic expander */
.e2-x{margin-top:0.6rem}
.e2-xhead{display:inline-flex;align-items:center;gap:0.35rem;border:0.0625rem solid var(--rim2);border-radius:1rem;padding:0.28rem 0.7rem;background:none;cursor:pointer;font-family:var(--fm);font-size:0.56rem;font-weight:800;text-transform:uppercase;letter-spacing:0.05em;color:var(--cloud);transition:border-color .18s,color .18s}
.e2-xhead:hover{color:var(--snow);border-color:rgba(204,230,77,0.4)}
.e2-xchev{transition:transform .2s var(--eh-spring)}
.e2-xhead.open .e2-xchev,.e2-scen.open .e2-xchev{transform:rotate(180deg)}
.e2-xbody{margin-top:0.55rem;animation:ehPaneIn .28s var(--eh-spring)}
.e2-block-p{font-size:0.68rem;line-height:1.65;color:var(--cloud)}
/* 2 — street check */
.e2-street{display:flex;align-items:flex-start;gap:0.6rem}
.e2-rel{flex:none;font-family:var(--fm);font-size:0.56rem;font-weight:800;text-transform:uppercase;letter-spacing:0.05em;border-radius:1rem;padding:0.25rem 0.6rem}
.e2-rel.aligned{color:#9fd0a0;background:rgba(120,200,130,0.1);border:0.0625rem solid rgba(120,200,130,0.3)}
.e2-rel.diverges{color:#ffb84d;background:rgba(255,184,77,0.1);border:0.0625rem solid rgba(255,184,77,0.3)}
.e2-street-p{font-size:0.7rem;line-height:1.6;color:var(--cloud)}
/* 3 — evidence rows (2-line clamp until opened) */
.e2-evs{display:flex;flex-direction:column;gap:0.45rem}
.e2-ev{border:0.0625rem solid var(--rim2);border-radius:0.6rem;padding:0.55rem 0.7rem;background:rgba(255,255,255,0.02);cursor:pointer;transition:border-color .18s}
.e2-ev:hover{border-color:rgba(204,230,77,0.3)}
.e2-ev-top{display:flex;align-items:flex-start;gap:0.5rem}
.e2-ev-p{font-size:0.68rem;line-height:1.55;color:var(--cloud);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.e2-ev.open .e2-ev-p{display:block;-webkit-line-clamp:unset;color:var(--snow)}
.e2-ev-foot{display:flex;align-items:center;gap:0.5rem;margin-top:0.35rem;padding-left:1.1rem}
.e2-ev-more{margin-left:auto;font-size:0.6rem;color:var(--fog);transition:transform .2s var(--eh-spring)}
.e2-ev.open .e2-ev-more{transform:rotate(180deg)}
.e2-dot{flex:none;display:inline-block;width:0.6rem;height:0.6rem;border-radius:50%;margin-top:0.15rem}
.e2-dot.measured{background:#cce64d}
.e2-dot.reported{background:#7fd0ff}
.e2-dot.inferred{background:transparent;border:0.09rem dashed var(--fog)}
.e2-srchip{font-family:var(--fm);font-size:0.54rem;font-weight:700;color:#7fd0ff;text-decoration:none;border:0.0625rem solid rgba(127,208,255,0.25);border-radius:1rem;padding:0.12rem 0.5rem}
.e2-srchip:hover{background:rgba(127,208,255,0.1)}
/* 4 — scenario accordions */
.e2-scens{display:flex;flex-direction:column;gap:0.55rem}
.e2-scen{border:0.0625rem solid var(--rim2);border-radius:0.7rem;background:rgba(255,255,255,0.015);overflow:hidden}
.e2-scen.dir-down{border-left:0.2rem solid rgba(127,208,255,0.5)}
.e2-scen.dir-up{border-left:0.2rem solid rgba(255,184,77,0.5)}
.e2-scen-sum{display:flex;align-items:center;gap:0.55rem;width:100%;padding:0.65rem 0.8rem;background:none;border:none;cursor:pointer;text-align:left;transition:background .18s}
.e2-scen-sum:hover{background:rgba(255,255,255,0.03)}
.e2-scen-dir{font-size:0.8rem}.e2-scen-dir.down{color:#7fd0ff}.e2-scen-dir.up{color:#ffb84d}
.e2-scen-name{font-family:var(--fd);font-size:0.76rem;font-weight:800;color:var(--snow);line-height:1.3}
.e2-scen-meta{margin-left:auto;flex:none;font-family:var(--fm);font-size:0.54rem;color:var(--fog);white-space:nowrap}
.e2-imp{flex:none;font-family:var(--fm);font-size:0.52rem;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;border-radius:1rem;padding:0.18rem 0.5rem}
.e2-imp.amplified{color:#ff7560;background:rgba(255,117,96,0.1);border:0.0625rem solid rgba(255,117,96,0.3)}
.e2-imp.isolated{color:var(--fog);background:rgba(255,255,255,0.04);border:0.0625rem solid var(--rim2)}
.e2-scen-body{padding:0.2rem 0.9rem 0.9rem;animation:ehPaneIn .28s var(--eh-spring)}
.e2-block{margin-top:0.7rem}
.e2-block-t{font-family:var(--fm);font-size:0.56rem;font-weight:800;text-transform:uppercase;letter-spacing:0.08em;color:var(--fog);margin-bottom:0.35rem}
/* the chain — vertical numbered stepper with a rail */
.e2-chain{list-style:none;margin:0;padding:0}
.e2-step{position:relative;padding:0 0 0.15rem 0}
.e2-step-l{display:flex;align-items:center;gap:0.5rem;padding:0.35rem 0.4rem;border-radius:0.5rem;transition:background .18s}
.e2-step.has-detail .e2-step-l{cursor:pointer}
.e2-step.has-detail .e2-step-l:hover{background:rgba(255,255,255,0.035)}
.e2-step-n{flex:none;display:flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;border-radius:50%;background:rgba(255,255,255,0.05);border:0.0625rem solid var(--rim2);font-family:var(--fm);font-size:0.54rem;font-weight:800;color:var(--cloud)}
.e2-step:not(:last-child)::before{content:'';position:absolute;left:0.56rem;top:1.55rem;bottom:-0.1rem;width:0.0625rem;background:var(--rim2)}
.e2-step-txt{font-size:0.7rem;font-weight:600;color:var(--cloud);line-height:1.4}
.e2-step.active .e2-step-txt{color:var(--snow)}
.e2-step-more{margin-left:auto;color:var(--fog);font-style:normal;font-size:0.7rem}
.e2-step.active .e2-step-more{color:#cce64d}
.e2-step-det{margin:0.25rem 0 0.4rem 1.65rem;padding:0.5rem 0.65rem;border-left:0.14rem solid rgba(204,230,77,0.4);border-radius:0 0.4rem 0.4rem 0;background:rgba(255,255,255,0.025);font-size:0.64rem;line-height:1.6;color:var(--cloud);animation:ehPaneIn .25s var(--eh-spring)}
.e2-watch{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.3rem}
.e2-watch li{position:relative;padding-left:0.9rem;font-size:0.62rem;line-height:1.5;color:var(--cloud)}
.e2-watch li::before{content:'◉';position:absolute;left:0;color:#cce64d;font-size:0.55rem}
.e2-foot{display:flex;align-items:center;gap:0.35rem;margin-top:0.4rem;font-family:var(--fm);font-size:0.54rem;color:var(--fog)}
.e2-foot .e2-dot{width:0.45rem;height:0.45rem;margin:0 0.1rem 0 0.35rem}
/* factor-sensitivity ignored-factors line */
.fs-ignored{margin-top:0.5rem;font-size:0.68rem;line-height:1.5;color:var(--fog);border:0.0625rem dashed var(--rim2);border-radius:0.5rem;padding:0.5rem 0.65rem}
.fs-ignored b{color:var(--cloud);font-weight:700}
.fs-ignored-k{display:inline-block;font-family:var(--fm);font-size:0.52rem;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;color:#7fd0ff;background:rgba(127,208,255,.1);border-radius:0.3rem;padding:0.08rem 0.4rem;margin-right:0.45rem}
/* macro-tagged news severity */
.mkt-news-tag.sev-notable{background:rgba(255,184,77,.9);color:#0a1420}
.mkt-news-tag.sev-shock{background:#ff7560;color:#0a1420}

/* shared block heading (kept for any non-tabbed use) */
.eh-block-h{display:flex;align-items:center;gap:0.5rem;font-family:var(--fm);font-size:0.62rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;color:var(--fog);margin-bottom:0.8rem}
.eh-block-h svg{width:0.9rem;height:0.9rem;color:var(--green)}
/* what-moves pane — flatten the fs card into the hero + bubbly cells */
.eh-fs .fs-panel{background:transparent;border:0;padding:0}
.eh-fs .fs-h-title{display:none} /* tab label carries the title; keep the lookback sub-line */
.eh-fs .fs-cell{transition:transform .22s var(--eh-spring),border-color .18s,box-shadow .22s}
.eh-fs .fs-cell:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 0.6rem 1.3rem rgba(0,0,0,0.38)}
.eh-fs .fs-cell.stance-tailwind:hover{border-color:rgba(204,230,77,0.5)}
.eh-fs .fs-cell.stance-headwind:hover{border-color:rgba(255,117,96,0.5)}
/* creator macro pulse */
.eh-pulse-cols{display:grid;grid-template-columns:1fr 1fr;gap:0.9rem}
.eh-pulse-col{border:0.0625rem solid var(--rim);border-radius:0.8rem;padding:0.85rem;background:rgba(255,255,255,0.012);transition:border-color .18s,box-shadow .22s}
.eh-pulse-col.bull{border-top:0.18rem solid #cce64d}.eh-pulse-col.bear{border-top:0.18rem solid #ff7560}
.eh-pulse-col.bull:hover{border-color:rgba(204,230,77,0.35);box-shadow:0 0.5rem 1.3rem rgba(0,0,0,0.35)}
.eh-pulse-col.bear:hover{border-color:rgba(255,117,96,0.35);box-shadow:0 0.5rem 1.3rem rgba(0,0,0,0.35)}
.eh-pulse-col-h{font-family:var(--fm);font-size:0.64rem;font-weight:800;letter-spacing:0.04em;text-transform:uppercase;margin-bottom:0.7rem}
.eh-pulse-col.bull .eh-pulse-col-h{color:#cce64d}.eh-pulse-col.bear .eh-pulse-col-h{color:#ff7560}
.eh-q{padding:0.6rem 0.45rem;margin:0 -0.45rem;border-top:0.0625rem solid var(--rim);border-radius:0.5rem;transition:background .18s,transform .2s var(--eh-spring)}
.eh-q:hover{background:rgba(255,255,255,0.03);transform:translateX(2px)}
.eh-q:first-of-type{border-top:0;padding-top:0}
.eh-q-head{display:flex;align-items:center;gap:0.45rem;margin-bottom:0.35rem}
.eh-q-av{flex:0 0 auto;width:1.4rem;height:1.4rem;border-radius:50%;overflow:hidden;background:var(--green-dim);color:var(--green);display:flex;align-items:center;justify-content:center;font-family:var(--fm);font-size:0.56rem;font-weight:800;transition:transform .22s var(--eh-spring)}
.eh-q:hover .eh-q-av{transform:scale(1.18)}
.eh-q-av img{width:100%;height:100%;object-fit:cover}
.eh-q-name{font-size:0.72rem;font-weight:700;color:var(--snow)}
.eh-q-date{font-family:var(--fm);font-size:0.56rem;color:var(--fog);margin-left:auto}
.eh-q-tags{margin-bottom:0.3rem}
.eh-q-theme{display:inline-block;font-family:var(--fm);font-size:0.52rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--fog);background:rgba(255,255,255,0.05);border-radius:0.3rem;padding:0.08rem 0.4rem}
.eh-q-text{font-size:0.76rem;line-height:1.5;color:var(--cloud);font-style:italic}
.eh-q-empty{color:var(--fog);font-style:italic;font-size:0.72rem}
@media (max-width:820px){.eh-pulse-cols{grid-template-columns:1fr}}

/* ═══ Geography & Policy Exposure — quiet, editorial: muted hues, hairline
   structure, the numbers do the talking ═══ */
/* geo rendered as a joint panel inside the Macro Pulse hero */
.econ-geo-panel{margin-top:1.4rem;padding-top:1.3rem;border-top:0.0625rem solid var(--rim)}
.econ-geo-head{margin-bottom:0.85rem}
.econ-geo-title{display:flex;align-items:center;gap:0.5rem;font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow)}
.econ-geo-title svg{width:1.05rem;height:1.05rem;color:#8fbce0}
.econ-geo-sub{font-size:0.72rem;line-height:1.45;color:var(--cloud);margin-top:0.3rem}
.geo-insight{font-size:0.86rem;line-height:1.6;color:var(--snow);border-left:0.2rem solid #8fbce0;padding:0.15rem 0 0.15rem 0.8rem;margin-bottom:1.1rem}
.geo-yoy{font-family:var(--fm);font-size:0.66rem;font-weight:800;padding:0.12rem 0.42rem;border-radius:0.35rem}
.geo-yoy.good{color:#bfe08f;background:rgba(150,200,110,.16)}.geo-yoy.bad{color:#f0a196;background:rgba(230,120,105,.16)}
.geo-bar{display:flex;height:0.7rem;border-radius:0.4rem;overflow:hidden;margin-bottom:0.7rem;background:rgba(255,255,255,0.05)}
.geo-seg{display:block;height:100%;opacity:.92;transition:opacity .18s}
.geo-seg:hover{opacity:1}
.geo-legend{display:flex;flex-wrap:wrap;gap:0.4rem 1.2rem;margin-bottom:1.2rem;font-family:var(--fm);font-size:0.72rem;color:var(--cloud)}
.geo-leg{display:inline-flex;align-items:center;gap:0.4rem}
.geo-leg i{width:0.6rem;height:0.6rem;border-radius:50%;opacity:1}
.geo-leg b{color:var(--snow);font-weight:800}
.geo-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(14rem,1fr));gap:0.8rem}
.geo-card{border:0.0625rem solid color-mix(in srgb,var(--hue) 30%,var(--rim));border-top:0.22rem solid var(--hue);border-radius:0.75rem;padding:1rem 1.05rem;background:radial-gradient(130% 120% at 0% 0%,color-mix(in srgb,var(--hue) 12%,transparent),transparent 60%),rgba(255,255,255,0.02);transition:transform .16s,border-color .18s,box-shadow .16s}
.geo-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--hue) 55%,var(--rim));box-shadow:0 0.6rem 1.4rem rgba(0,0,0,0.32)}
.geo-card-top{display:flex;align-items:baseline;justify-content:space-between;gap:0.5rem;margin-bottom:0.5rem}
.geo-card-name{display:inline-flex;align-items:center;gap:0.45rem;font-size:0.86rem;font-weight:800;letter-spacing:0.01em;color:var(--snow)}
.geo-dot{width:0.55rem;height:0.55rem;border-radius:50%;background:var(--hue);flex:none;box-shadow:0 0 0.5rem color-mix(in srgb,var(--hue) 60%,transparent)}
.geo-card-share{font-family:var(--fd);font-size:1.9rem;font-weight:800;color:var(--hue);letter-spacing:-0.02em;line-height:1}
.geo-card-share small{font-size:0.55em;font-weight:700;color:var(--fog);margin-left:0.1rem}
.geo-card-mid{display:flex;align-items:center;gap:0.5rem;font-family:var(--fm);font-size:0.74rem;font-weight:700;color:var(--cloud);margin-bottom:0.55rem}
.geo-flags{display:flex;flex-wrap:wrap;gap:0.35rem;border-top:0.0625rem solid var(--rim);padding-top:0.55rem}
.geo-flag{display:inline-block;font-family:var(--fm);font-size:0.6rem;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;border-radius:0.35rem;border:0.0625rem solid;padding:0.14rem 0.45rem;cursor:help}
.geo-flag.bad{color:#f0a196;border-color:rgba(230,120,105,.5);background:rgba(230,120,105,.1)}
.geo-flag.warn{color:#e2c085;border-color:rgba(208,178,135,.5);background:rgba(208,178,135,.1)}
.geo-flag.info{color:#9fc4e6;border-color:rgba(143,179,207,.45);background:rgba(143,179,207,.1)}

/* ═══ Event Playbook strip inside the calendar ═══ */
.econ-pb{margin:0.2rem 0 0.9rem}
.econ-pb-insight{font-size:0.76rem;line-height:1.5;color:var(--cloud);margin-bottom:0.6rem}
.econ-pb-chips{display:flex;gap:0.45rem;flex-wrap:wrap}
.econ-pb-chip{display:inline-flex;align-items:center;gap:0.4rem;border:0.0625rem solid var(--rim);border-radius:2rem;padding:0.3rem 0.65rem;background:rgba(255,255,255,0.02);cursor:help;transition:transform .2s cubic-bezier(.34,1.56,.64,1),border-color .18s}
.econ-pb-chip:hover{transform:translateY(-2px) scale(1.04)}
.econ-pb-chip.high{border-color:rgba(255,117,96,.5)}
.econ-pb-chip.medium{border-color:rgba(255,184,77,.45)}
.econ-pb-fam{font-family:var(--fm);font-size:0.6rem;font-weight:800;color:var(--snow)}
.econ-pb-amp{font-family:var(--fm);font-size:0.6rem;font-weight:700;color:var(--cloud)}
.econ-pb-x{font-family:var(--fm);font-size:0.56rem;font-weight:800;color:var(--fog)}
.econ-pb-chip.high .econ-pb-x{color:#ff7560}.econ-pb-chip.medium .econ-pb-x{color:#ffb84d}
.econ-cal-pb{flex:none;font-family:var(--fm);font-size:0.56rem;font-weight:800;border-radius:0.3rem;padding:0.1rem 0.35rem;cursor:help}
.econ-cal-pb.high{color:#ff7560;background:rgba(255,117,96,.12)}
.econ-cal-pb.medium{color:#ffb84d;background:rgba(255,184,77,.12)}
.econ-cal-pb.low{color:var(--fog);background:rgba(255,255,255,.05)}

/* ═══ Econ AI-summary key-stats — 4 general macro visuals (mirror moat's band, distinct look) ═══ */
.econ-keystats{display:grid;grid-template-columns:repeat(auto-fit,minmax(14.5rem,1fr));gap:0.9rem;margin:1.4rem 0 0.4rem}
.eks-tile{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:0.7rem;padding:0.95rem 1rem;border:0.0625rem solid var(--rim);border-radius:0.9rem;
  background:radial-gradient(130% 110% at 0% 0%,color-mix(in srgb,var(--accent,#9ce67a) 12%,transparent),transparent 55%),rgba(255,255,255,0.012);
  transition:transform .16s,border-color .16s,box-shadow .16s}
.eks-tile:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 40%,transparent);box-shadow:0 0.7rem 1.6rem rgba(0,0,0,0.3)}
.eks-eyebrow{display:flex;align-items:center;gap:0.4rem;font-family:var(--fm);font-size:0.56rem;font-weight:800;letter-spacing:0.09em;text-transform:uppercase;color:var(--accent,#9ce67a)}
.eks-eyebrow::before{content:'';width:0.4rem;height:0.4rem;border-radius:0.12rem;background:var(--accent,#9ce67a);box-shadow:0 0 8px color-mix(in srgb,var(--accent) 70%,transparent)}
.eks-body{display:flex;align-items:center;gap:1rem;flex:1}
.eks-vis{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:5.4rem}
.eks-hero{min-width:0;display:flex;flex-direction:column;gap:0.25rem}
.eks-hero-v{font-family:var(--fd);font-size:1.32rem;font-weight:800;color:var(--snow);letter-spacing:-0.01em;line-height:1.05;text-transform:capitalize}
.eks-hero-v small{font-size:0.52em;font-weight:700;color:var(--fog);letter-spacing:0;text-transform:none}
.eks-hero-l{font-size:0.6rem;color:var(--fog);line-height:1.4;font-weight:600}
/* donut (grade) */
.eks-donut{width:5.2rem;height:5.2rem}
.eks-donut-tr{fill:none;stroke:rgba(255,255,255,0.08);stroke-width:6}
.eks-donut-fg{fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .5s ease}
.eks-donut-t{font-family:var(--fd);font-size:18px;font-weight:800}
/* speedometer gauge */
.eks-gauge{width:5.4rem;height:4.2rem}
.eks-gauge-tr{fill:none;stroke:rgba(255,255,255,0.08);stroke-width:6;stroke-linecap:round}
.eks-gauge-fg{fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset .5s ease}
.eks-gauge-needle{stroke-width:2;stroke-linecap:round;transition:all .5s ease}
/* vertical column / fill bar */
.eks-col{width:5.2rem;height:5.2rem}
.eks-col-tr{fill:rgba(255,255,255,0.05);stroke:rgba(255,255,255,0.1);stroke-width:1.4}
.eks-col-fg{opacity:0.9;transition:y .5s ease,height .5s ease}
/* segmented ring */
.eks-seg{width:5.2rem;height:5.2rem}
.eks-seg line{transition:stroke .4s ease}

/* Fundamental breakdown — analyst-note depth under the key-stat band */
.ai-sum-dd{margin:1.25rem 0 0.3rem;border-top:0.0625rem solid var(--rim);padding-top:1rem}
.ai-sum-dd-title{font-family:var(--fm);font-size:0.6rem;font-weight:800;letter-spacing:0.09em;text-transform:uppercase;color:var(--fog);margin-bottom:0.7rem}
.ai-sum-dd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(19rem,1fr));gap:0.55rem 1.3rem}
.ai-sum-dd-row{display:grid;grid-template-columns:6.5rem 1fr;gap:0.75rem;align-items:baseline;padding:0.4rem 0;border-bottom:0.0625rem solid rgba(255,255,255,0.045)}
.ai-sum-dd-area{font-family:var(--fb);font-size:0.72rem;font-weight:700;color:var(--snow);letter-spacing:-0.005em}
.ai-sum-dd-read{font-size:0.75rem;line-height:1.5;color:var(--cloud)}
.ai-sum-dd-read b{color:var(--snow);font-weight:700}
/* diverging balance bar */
.eks-bal{width:100%;display:flex;flex-direction:column;gap:0.35rem}
.eks-bal-bar{display:flex;height:0.72rem;border-radius:0.35rem;overflow:hidden;background:rgba(255,255,255,0.06)}
.eks-bal-tw{background:linear-gradient(90deg,#7cd66f,#9ce67a)}
.eks-bal-hw{background:linear-gradient(90deg,#e88a8a,#ff7560);margin-left:auto}
.eks-bal-legend{display:flex;justify-content:space-between;font-family:var(--fm);font-size:0.58rem;font-weight:800}
.eks-bal-legend .up{color:#9ce67a}.eks-bal-legend .dn{color:#e88a8a}
/* sensitivity meter (insulated ↔ exposed) */
.eks-meter{width:100%;display:flex;flex-direction:column;gap:0.3rem}
.eks-meter-track{position:relative;height:0.55rem;border-radius:1rem;background:linear-gradient(90deg,rgba(156,230,122,0.25),rgba(201,176,110,0.25),rgba(232,138,138,0.3))}
.eks-meter-fill{height:100%;border-radius:1rem;opacity:0.55}
.eks-meter-mark{position:absolute;top:50%;width:0.9rem;height:0.9rem;border-radius:50%;background:var(--bg,#0b0f17);border:0.18rem solid;transform:translate(-50%,-50%);transition:left .5s ease}
.eks-meter-ends{display:flex;justify-content:space-between;font-family:var(--fm);font-size:0.5rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--fog)}
/* resilience bar (crash beta vs 1× market) */
.eks-res{width:100%;display:flex;flex-direction:column;gap:0.3rem}
.eks-res-track{position:relative;height:0.65rem;border-radius:1rem;background:rgba(255,255,255,0.06);overflow:visible}
.eks-res-fill{height:100%;border-radius:1rem;opacity:0.75}
.eks-res-tick{position:absolute;top:-0.15rem;bottom:-0.15rem;width:0.12rem;background:var(--cloud);opacity:0.7;border-radius:1rem}
.eks-res-cap{font-family:var(--fm);font-size:0.52rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--fog)}
/* economic calendar embedded in the summary dropdown */
.ai-summary-cal{margin-top:1.2rem}
.ai-summary-more .ai-summary-cal .econ-cal{margin:0}

/* ── Synthesis over the drivers: Regime card (plain-English) + Active-forces balance ── */
.econ-synthesis{display:flex;flex-wrap:wrap;gap:0.85rem;margin:0 0 1.2rem;align-items:stretch}
.econ-regime{flex:1 1 16rem;min-width:14rem}
.econ-forces{flex:1.3 1 20rem;min-width:16rem}
.econ-regime,.econ-forces{border:0.0625rem solid var(--rim);border-radius:0.75rem;padding:0.85rem 0.95rem;background:rgba(255,255,255,0.015);display:flex;flex-direction:column}
.econ-syn-h{font-family:var(--fm);font-size:0.58rem;font-weight:800;letter-spacing:0.1em;text-transform:uppercase;color:var(--fog);margin-bottom:0.6rem}
/* regime: quadrant beside a plain-English reading */
.econ-regime-body{display:flex;align-items:center;gap:1rem;flex:1}
.econ-regime-svg{width:8.5rem;max-width:46%;height:auto;flex:0 0 auto}
.econ-regime-cell{fill:color-mix(in srgb,var(--qh) 4%,transparent);stroke:color-mix(in srgb,var(--qh) 16%,transparent);stroke-width:1;transition:fill .3s}
.econ-regime-cell.active{fill:color-mix(in srgb,var(--qh) 20%,transparent);stroke:color-mix(in srgb,var(--qh) 65%,transparent);stroke-width:1.5}
.econ-regime-cross{stroke:rgba(255,255,255,0.09);stroke-width:1;stroke-dasharray:2 3}
.econ-regime-q{fill:color-mix(in srgb,var(--qh) 55%,var(--fog));font-size:9px;font-weight:800;font-family:var(--fm);opacity:0.55}
.econ-regime-q.on{opacity:1;fill:var(--qh)}
.econ-regime-axl{fill:var(--fog);font-size:7px;font-weight:700;font-family:var(--fm);letter-spacing:0.04em;text-transform:uppercase}
.econ-regime-halo{fill:var(--qh);opacity:0.28}
.econ-regime-dot{fill:var(--qh);stroke:#07101c;stroke-width:1.5;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--qh) 85%,transparent))}
.econ-regime-read{flex:1;min-width:0}
.econ-regime-name{font-family:var(--fd);font-size:1.4rem;font-weight:800;line-height:1.05;margin-bottom:0.3rem}
.econ-regime-plain{font-size:0.78rem;color:var(--cloud);line-height:1.4;margin-bottom:0.45rem}
.econ-regime-fit{font-size:0.7rem;color:var(--fog);display:flex;align-items:center;gap:0.4rem;margin-bottom:0.3rem}
.econ-regime-why{font-size:0.7rem;color:var(--fog);line-height:1.45;font-style:italic;opacity:0.92}
/* active forces: a dense ranked leaderboard (qualitative only, no scores) */
.econ-forces-top{display:flex;align-items:center;justify-content:space-between;gap:0.6rem;margin-bottom:0.4rem}
.econ-forces-top .econ-syn-h{margin-bottom:0}
.econ-forces-sub{font-size:0.66rem;color:var(--fog);line-height:1.45;margin-bottom:0.6rem}
.econ-forces-sub b{color:var(--cloud);font-weight:800}
.econ-forces-board{display:flex;flex-direction:column;gap:0.28rem;flex:1}
.econ-fb-row{display:flex;align-items:center;gap:0.5rem;width:100%;text-align:left;font:inherit;cursor:pointer;
  padding:0.34rem 0.55rem;border-radius:0.45rem;color:var(--cloud);
  border:0.0625rem solid var(--rim);border-left:0.2rem solid var(--rowc,var(--rim));
  background:var(--rowbg,rgba(255,255,255,0.015));transition:transform .12s,background .12s,border-color .12s}
.econ-fb-row.tailwind{--rowc:#cce64d;--rowbg:color-mix(in srgb,#cce64d 8%,transparent)}
.econ-fb-row.headwind{--rowc:#ff7560;--rowbg:color-mix(in srgb,#ff7560 8%,transparent)}
.econ-fb-row:hover{transform:translateX(2px);background:color-mix(in srgb,var(--rowc) 15%,transparent);border-color:color-mix(in srgb,var(--rowc) 45%,transparent)}
.econ-fb-rank{flex:0 0 auto;font-family:var(--fm);font-size:0.62rem;font-weight:800;color:var(--fog);width:0.9rem;text-align:center}
.econ-fb-arrow{flex:0 0 auto;font-size:0.7rem;line-height:1}
.econ-fb-row.tailwind .econ-fb-arrow{color:#cce64d}.econ-fb-row.headwind .econ-fb-arrow{color:#ff7560}
.econ-fb-name{flex:1 1 auto;font-size:0.76rem;font-weight:700;color:var(--snow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.econ-fb-row .econ-stance-badge{flex:0 0 auto;font-size:0.52rem;padding:0.12rem 0.4rem}
.econ-forces-empty{font-size:0.78rem;color:var(--cloud);line-height:1.5;flex:1;display:flex;align-items:center}

/* ── Boxed, stance-themed deep-dive pane (one at a time) — reads as ONE connected unit ── */
.econ-driver-pane{animation:econPaneIn .22s ease;border:0.0625rem solid color-mix(in srgb,var(--stance) 30%,var(--rim));border-top:0.2rem solid var(--stance);
  border-radius:0.85rem;padding:1.3rem 1.5rem 1.5rem;
  background:linear-gradient(180deg,color-mix(in srgb,var(--stance) 7%,transparent) 0%,transparent 32%),rgba(255,255,255,0.012)}
.econ-driver-pane.hidden{display:none}
@keyframes econPaneIn{from{opacity:0;transform:translateY(0.3rem)}to{opacity:1;transform:translateY(0)}}
/* header — big title, clear metrics, plain-English caption */
.econ-pane-head{margin-bottom:1.1rem;padding-bottom:0.95rem;border-bottom:0.0625rem solid var(--rim)}
.econ-pane-title{display:flex;align-items:center;gap:0.65rem;font-family:var(--fd);font-size:1.7rem;font-weight:800;color:var(--snow);line-height:1.1;margin:0 0 0.75rem}
.econ-pane-rank{display:flex;align-items:center;justify-content:center;width:1.7rem;height:1.7rem;border-radius:50%;flex:0 0 auto;font-family:var(--fm);font-size:0.78rem;font-weight:800;color:#06121f;background:var(--stance)}
.econ-pane-metrics{display:flex;align-items:center;gap:0.55rem;flex-wrap:wrap}
.econ-stance-badge{flex:0 0 auto;font-size:0.62rem;font-weight:800;text-transform:uppercase;letter-spacing:0.05em;padding:0.2rem 0.55rem;border-radius:1rem}
.econ-stance-badge.tailwind{color:#0a0a0a;background:#cce64d}
.econ-stance-badge.headwind{color:#fff;background:#ff7560}
.econ-stance-badge.neutral{color:var(--cloud);background:rgba(255,255,255,0.1)}
.econ-pane-mean{font-size:0.74rem;color:var(--fog)}
.econ-pane-cap{font-size:0.68rem;color:var(--fog);line-height:1.55;margin-top:0.7rem;max-width:52rem}
.econ-pane-cap b{color:var(--cloud);font-weight:700}
.econ-pane-cap em{font-style:italic;color:var(--cloud)}
/* breathing room before the "Explored deeper" strip (was colliding with the last section item) */
.econ-driver-pane .moat-deeper{margin-top:1.6rem}
.econ-driver-pane > .moat-dd-present{font-size:0.92rem;line-height:1.62;color:var(--ink,#e6e9f2);margin:0 0 1rem}
/* section tabs (## nav) tied to the driver colour */
.econ-driver-pane .moat-fa{margin-top:0.5rem}
.econ-driver-pane .moat-fa-nav{position:static;display:flex;flex-wrap:wrap;gap:0.4rem;border-bottom:0.0625rem solid var(--rim);padding-bottom:0.7rem;margin-bottom:1rem;background:none}
.econ-driver-pane .moat-fa-navbtn{padding:0.35rem 0.7rem;border-radius:0.45rem;font-size:0.68rem;font-weight:700}
.econ-driver-pane .moat-fa-navbtn.active{border-color:var(--stance);color:var(--stance);background:color-mix(in srgb,var(--stance) 10%,transparent)}
/* section content: a TITLE for the section, a lead intro, then a VERTICAL key of subsections feeding a pane */
.econ-sec-article{font-size:0.85rem;line-height:1.65;color:var(--cloud)}
.econ-sec-title{font-family:var(--fd);font-size:1.32rem;font-weight:800;color:var(--snow);line-height:1.22;margin:0.2rem 0 0.7rem;
  padding-bottom:0.5rem;border-bottom:0.0625rem solid color-mix(in srgb,var(--stance) 30%,var(--rim))}
.econ-sec-lead{font-size:0.9rem;color:var(--cloud);margin-bottom:1rem}
/* subsection nav — a horizontal wrapped tab strip; content flows full-width below
   so a section is exactly as tall as its content (no side whitespace gaps) */
.econ-sub-nav{display:flex;flex-wrap:wrap;gap:0.35rem;margin-bottom:0.9rem;padding-bottom:0.75rem;border-bottom:0.0625rem solid var(--rim)}
.econ-sub-navbtn{display:inline-flex;align-items:center;gap:0.4rem;text-align:left;background:rgba(255,255,255,0.015);border:0.0625rem solid var(--rim);cursor:pointer;padding:0.32rem 0.6rem;border-radius:1.2rem;color:var(--cloud);font:inherit;font-size:0.68rem;line-height:1.2;transition:background .12s,color .12s,border-color .12s}
.econ-sub-navbtn:hover{background:rgba(255,255,255,0.05);color:var(--snow);border-color:color-mix(in srgb,var(--stance) 40%,var(--rim))}
.econ-sub-navbtn.active{background:color-mix(in srgb,var(--stance) 14%,transparent);color:var(--stance);font-weight:700;border-color:color-mix(in srgb,var(--stance) 55%,transparent)}
.econ-sub-navn{display:flex;align-items:center;justify-content:center;width:1.15rem;height:1.15rem;border-radius:50%;flex:0 0 auto;font-family:var(--fm);font-size:0.55rem;font-weight:800;color:var(--fog);border:0.0938rem solid var(--rim);background:rgba(0,0,0,0.2);transition:all .12s}
.econ-sub-navbtn.active .econ-sub-navn{color:#06121f;background:var(--stance);border-color:var(--stance)}
.econ-sub-navt{white-space:nowrap}
.econ-sub-content{min-width:0}
.econ-sub-pane{animation:econPaneIn .2s ease}
.econ-sub-pane.hidden{display:none}
.econ-sec-subh{font-family:var(--fd);font-size:1.15rem;font-weight:800;color:var(--snow);margin:0 0 0.6rem;line-height:1.2}
.econ-sec-article p{margin:0 0 0.6rem}
.econ-sec-article ul{margin:0 0 0.6rem;padding-left:1.1rem}
.econ-sec-article li{margin:0.18rem 0}

/* ONE contextual back button: #canvasBack covers all up-nav — it reads "Back to mind-map" when drilled
   into a lens, else "Back to Studio" (set in lens-detail.js). The two duplicate buttons are retired;
   fullscreen exit is the collapse icon + Esc. */
.canvas-view-back-workspace,.canvas-view-back-mindmap{display:none !important}

/* Tighten the canvas-view-header — one smooth horizontal strip */
.canvas-view-header{padding:0.625rem 1rem;gap:0.4375rem !important;align-items:center}
.canvas-view-header .canvas-view-back{flex-shrink:0;padding:0.4375rem 0.75rem !important;font-size:0.6875rem !important}
.canvas-view-header .canvas-view-back svg{width:0.6875rem !important;height:0.6875rem !important}
.canvas-view-header .canvas-view-title{font-size:0.9375rem;margin-left:0.25rem}
.canvas-view-header .canvas-view-actions{gap:0.1875rem}
.canvas-view-header .canvas-view-actions .icon-btn{padding:0.375rem;height:auto;width:auto}
.canvas-view-header .canvas-view-actions .icon-btn svg{width:0.875rem;height:0.875rem}

/* The "Back to Studio" button stays as the primary (green-tinted) accent,
   while workspace + mind-map buttons are neutral/subtle to reduce noise. */
.canvas-view-back.canvas-view-back-workspace,
.canvas-view-back.canvas-view-back-mindmap{
  background:var(--bg2) !important;
  border-color:var(--rim) !important;
  color:var(--cloud) !important;
}
.canvas-view-back.canvas-view-back-workspace:hover,
.canvas-view-back.canvas-view-back-mindmap:hover{
  background:var(--bg3) !important;
  border-color:var(--rim2) !important;
  color:var(--snow) !important;
}

/* ═════════════════════════════════════════════════════════════════
   AI Signal block — replaces plain "Signal: ..." text under charts
   ─────────────────────────────────────────────────────────────────
   When a chart's signal is generated by AI (which will be true once
   the AI pass lands), it gets a subtle gradient background, sparkle
   icon, and "AI" pill so it visually reads as a model-generated
   insight rather than a hardcoded note.
   ═════════════════════════════════════════════════════════════════ */
.lens-detail .lens-chart-signal{
  position:relative;
  margin-top:0.75rem;
  padding:0.625rem 0.875rem 0.625rem 2.25rem;
  background:linear-gradient(135deg,rgba(245,166,35,0.04) 0%,rgba(122,140,255,0.04) 50%,rgba(204,255,0,0.04) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.4375rem;
  font-size:0.6875rem !important;
  color:var(--cloud);
  line-height:1.5;
  overflow:hidden;
}
.lens-detail .lens-chart-signal::before{
  content:'';
  position:absolute;
  top:0;left:0;bottom:0;
  width:0.1875rem;
  background:linear-gradient(180deg,var(--gold) 0%,#7a8cff 50%,var(--green) 100%);
}
.lens-detail .lens-chart-signal::after{
  content:'✦';
  position:absolute;
  left:0.75rem;top:50%;
  transform:translateY(-50%);
  font-size:0.8125rem;
  color:var(--gold);
  text-shadow:0 0 6px rgba(245,166,35,0.6);
  font-family:'JetBrains Mono',monospace;
}
.lens-detail .lens-chart-signal b{
  /* Hide the literal "Signal:" prefix that older code emits; visual badge
     is provided by the .ai-badge span below. */
  font-size:0;
}
.ai-badge{
  display:inline-flex;
  align-items:center;
  gap:0.3125rem;
  font-family:var(--fm);
  font-size:0.5625rem;
  font-weight:700;
  color:var(--gold);
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-right:0.4375rem;
  padding:0.1875rem 0.4375rem;
  background:rgba(245,166,35,0.08);
  border:0.0625rem solid rgba(245,166,35,0.25);
  border-radius:0.1875rem;
  box-shadow:inset 0 0 6px rgba(245,166,35,0.06);
  position:relative;
  top:-0.0625rem;
}
.ai-badge::before{
  content:'';
  width:0.4375rem;
  height:0.4375rem;
  border-radius:50%;
  background:radial-gradient(circle,#ffd700 0%,#f5a623 70%,transparent 100%);
  box-shadow:0 0 4px rgba(245,166,35,0.7);
  animation:aipulse 2.4s ease-in-out infinite;
}
@keyframes aipulse{
  0%,100%{opacity:0.85;transform:scale(1)}
  50%{opacity:1;transform:scale(1.15)}
}

/* "Pending" treatment when signal is "—" so it doesn't look broken */
.lens-detail .lens-chart-signal:has(b + :not(.signal-text)){opacity:0.65}

/* ═════════════════════════════════════════════════════════════════
   Quarterly Earnings Analysis — restructured (outer head + inner card)
   ═════════════════════════════════════════════════════════════════ */
.qa-block{margin:1.25rem 0}
.qa-outer-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:0.625rem}
.qa-outer-titles{flex:1;min-width:0}
.qa-outer-title{font-family:var(--fd);font-size:1.0625rem;font-weight:800;color:var(--snow);letter-spacing:-.01em;line-height:1.15}
.qa-outer-sub{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.04em;margin-top:0.1875rem}

.qa-inner-card{padding:1rem 1.125rem 1.125rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.5625rem}
.qa-inner-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:0.875rem}
.qa-inner-titles{flex:1;min-width:0}
.qa-inner-title{display:inline-flex;align-items:center;gap:0.4375rem;font-size:0.9375rem;font-weight:600;color:var(--snow);line-height:1.2}
.qa-inner-title svg{width:0.9375rem;height:0.9375rem;color:var(--gold);flex-shrink:0}
.qa-inner-sub{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.04em;margin-top:0.25rem;line-height:1.4}

.qa-pills{display:flex;gap:0.3125rem;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.qa-pill{display:inline-flex;align-items:center;gap:0.25rem;padding:0.1875rem 0.4375rem;font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:0.25rem;border:0.0625rem solid var(--rim);background:var(--bg3);color:var(--cloud);white-space:nowrap}
.qa-pill.green{background:rgba(204,255,0,0.08);color:var(--green);border-color:rgba(204,255,0,0.28)}
.qa-pill.red{background:rgba(255,117,96,0.08);color:#ff7560;border-color:rgba(255,117,96,0.28)}
.qa-pill.yellow{background:rgba(245,166,35,0.08);color:var(--gold);border-color:rgba(245,166,35,0.28)}
.qa-pill.purple{background:rgba(180,140,255,0.08);color:#b48cff;border-color:rgba(180,140,255,0.28)}
.qa-pill.neutral{background:var(--bg3);color:var(--cloud);border-color:var(--rim)}
.qa-pill::before{content:'';width:0.3125rem;height:0.3125rem;border-radius:50%;background:currentColor;opacity:0.85;box-shadow:0 0 4px currentColor}

/* (Previously forced .qa-svg to height:21rem — that stretched text under
   preserveAspectRatio="none". Removed in favor of aspect-ratio locked
   in the chart-polish block below.) */

.qa-inner-legend{margin-top:0.75rem;padding-top:0.625rem;border-top:0.0625rem solid var(--rim);justify-content:center;gap:1rem}

/* ═════════════════════════════════════════════════════════════════
   Price Performance — restructured (outer head + inner card) v2
   ═════════════════════════════════════════════════════════════════ */
.pp-block{margin:1.25rem 0}
.pp-outer-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:0.625rem}
.pp-outer-titles{flex:1;min-width:0}
.pp-outer-title{font-family:var(--fd);font-size:1.0625rem;font-weight:800;color:var(--snow);letter-spacing:-.01em;line-height:1.15}
.pp-outer-sub{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.04em;margin-top:0.1875rem}
.pp-outer-sub [data-pp-field="ticker_label"]{color:var(--gold);font-weight:700;letter-spacing:.06em}

.pp-inner-card{padding:1rem 1.125rem 1.125rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.5625rem}

.pp-headline-row{display:flex;align-items:baseline;gap:0.625rem;flex-wrap:wrap;margin-bottom:0.625rem;padding-bottom:0.625rem;border-bottom:0.0625rem solid var(--rim)}
.pp-headline-row .pp-headline-price{font-family:var(--fm);font-size:1.375rem;font-weight:700;color:var(--snow);letter-spacing:-0.01em;line-height:1}
.pp-headline-row .pp-headline-ret{font-family:var(--fm);font-size:1rem;font-weight:700;color:var(--green)}
.pp-headline-row .pp-headline-ret.down{color:#ff7560}
.pp-headline-row .pp-headline-tf{font-family:var(--fm);font-size:0.75rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;margin-left:0.25rem}

/* (Previously forced .pp-svg height — now aspect-ratio locked below.) */

/* Bigger axis labels inside the SVG */
.pp-block .pp-svg text{font-size:11px}

/* Legend chips slightly larger now that the chart is bigger */
.pp-block .pp-legend{margin-top:0.75rem;padding-top:0.5rem;border-top:0.0625rem solid var(--rim);gap:0.4375rem}
.pp-block .pp-legend-row{padding:0.25rem 0.5625rem}
.pp-block .pp-legend-row .lbl{font-size:0.625rem}
.pp-block .pp-legend-row .lbl::before{width:0.5rem;height:0.5rem}
.pp-block .pp-legend-row .price,.pp-block .pp-legend-row .ret{font-size:0.6875rem}

/* Spacing between chart legend and metric cards beneath (Margin & FCF charts) */
.lens-detail .lens-chart .lens-chart-legend + .lens-metric-grid{margin-top:0.875rem}

/* ═════════════════════════════════════════════════════════════════
   Sticky timeframe bar — follows the user down through the 5
   quarterly charts. Releases once they scroll past the FCF chart.
   The bar lives at the top of <section.qa-charts-section> which
   wraps all 5 charts. Sticky relative to the canvas-view-body
   scrolling container.
   ═════════════════════════════════════════════════════════════════ */
.qa-charts-section{position:relative}
.qa-tf-sticky{
  position:sticky;
  /* canvas-view-body padding-top is now 0 (moved to .lens-detail) so the
     bar can pin flush at top:0 of the scroll port — directly below the
     canvas-view-header with no gap. */
  top:0;
  z-index:8;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:0.625rem;
  padding:0.625rem 0.875rem;
  margin:0 -0.5rem 0.75rem;
  background:linear-gradient(180deg,rgba(20,20,22,1) 0%,rgba(20,20,22,0.97) 60%,rgba(20,20,22,0.92) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0 0 0.4375rem 0.4375rem;  /* only bottom corners rounded — flush look at top */
  border-top:none;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  box-shadow:0 4px 14px rgba(0,0,0,0.25);
}
.qa-tf-sticky-label{
  display:inline-flex;
  align-items:center;
  gap:0.375rem;
  font-family:var(--fm);
  font-size:0.625rem;
  font-weight:600;
  color:var(--gold);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.qa-tf-sticky-label svg{width:0.75rem;height:0.75rem}
.qa-tf-sticky .qa-tf-selector{box-shadow:none;background:transparent;border:none;padding:0}
.qa-tf-sticky .qa-tf-btn{padding:0.3125rem 0.625rem;font-size:0.6875rem}

/* Hide any leftover per-chart TF selectors (now consolidated in the sticky bar) */
.qa-charts-section .qa-block .qa-outer-head .qa-tf-selector,
.qa-charts-section .lens-chart .lens-chart-head .qa-tf-selector{display:none}

/* ═════════════════════════════════════════════════════════════════
   Zero canvas-view-body padding-top so the sticky TF bar (inside
   lens-detail) can pin FLUSH against the canvas-view-header. The
   1rem of breathing room moves onto .lens-detail itself so other
   surfaces are unaffected.
   ═════════════════════════════════════════════════════════════════ */
.canvas-view-body{padding-top:0 !important}
.lens-detail{padding-top:1rem}

/* ═════════════════════════════════════════════════════════════════
   Full Quarterly Earnings Data — CTA bar + full-screen modal
   ═════════════════════════════════════════════════════════════════ */
.fqd-bar{
  display:grid;
  grid-template-columns:auto 1fr auto auto;
  align-items:center;
  gap:1rem;
  width:100%;
  margin:1rem 0;
  padding:1rem 1.125rem;
  background:linear-gradient(135deg,rgba(204,255,0,0.04) 0%,rgba(122,140,255,0.04) 100%);
  border:0.0625rem solid rgba(204,255,0,0.18);
  border-radius:0.625rem;
  cursor:pointer;
  color:inherit;
  text-align:left;
  font:inherit;
  transition:all .18s ease;
}
.fqd-bar:hover{
  border-color:rgba(204,255,0,0.42);
  background:linear-gradient(135deg,rgba(204,255,0,0.08) 0%,rgba(122,140,255,0.06) 100%);
  transform:translateY(-0.0625rem);
}
.fqd-bar:focus-visible{outline:none;box-shadow:0 0 0 0.125rem rgba(204,255,0,0.35)}
.fqd-icon{
  width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;
  color:var(--green);background:rgba(204,255,0,0.08);
  border:0.0625rem solid rgba(204,255,0,0.25);border-radius:0.4375rem;flex-shrink:0;
}
.fqd-icon svg{width:1.125rem;height:1.125rem}
.fqd-text{min-width:0}
.fqd-title{font-size:0.9375rem;font-weight:700;color:var(--snow);letter-spacing:-.005em;display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}
.fqd-badge{
  display:inline-flex;align-items:center;
  font-family:var(--fm);font-size:0.625rem;font-weight:700;letter-spacing:.06em;
  color:var(--green);
  padding:0.1875rem 0.4375rem;
  background:rgba(204,255,0,0.08);border:0.0625rem solid rgba(204,255,0,0.28);border-radius:0.3125rem;
  text-transform:uppercase;
}
.fqd-sub{font-family:var(--fm);font-size:0.75rem;color:var(--fog);margin-top:0.25rem;letter-spacing:.02em}
.fqd-sub [data-fqd-field="metric_count"]{color:var(--green);font-weight:700}
.fqd-preview{width:13rem;height:3rem;flex-shrink:0}
.fqd-arrow{font-family:var(--fm);font-size:1.5rem;color:var(--green);opacity:0.6;line-height:1}
.fqd-bar:hover .fqd-arrow{opacity:1;transform:translateX(0.25rem)}

/* ─── Full-screen modal ─────────────────────────────────────────── */
.fqd-modal{
  position:fixed;inset:0;z-index:1000;
  background:rgba(8,8,10,0.78);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  display:flex;align-items:flex-start;justify-content:center;
  padding:3rem 2rem;
  animation:fqdFadeIn 0.18s ease-out;
}
@keyframes fqdFadeIn{from{opacity:0}to{opacity:1}}
.fqd-modal-content{
  width:100%;max-width:90rem;max-height:calc(100vh - 6rem);
  background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:0.75rem;
  display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 24px 60px rgba(0,0,0,0.6);
}
.fqd-modal-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:1rem 1.25rem;border-bottom:0.0625rem solid var(--rim);
  background:var(--bg2);
}
.fqd-modal-title{font-family:var(--fd);font-size:1.0625rem;font-weight:800;color:var(--snow);letter-spacing:-.005em}
.fqd-modal-sub{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);margin-top:0.125rem}
.fqd-modal-close{
  width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;
  background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.375rem;
  color:var(--cloud);font-size:1.125rem;cursor:pointer;font-family:var(--fm);line-height:1;
}
.fqd-modal-close:hover{color:var(--snow);border-color:var(--rim2)}

.fqd-table-wrap{flex:1;overflow:auto;position:relative}
.fqd-table{
  border-collapse:separate;border-spacing:0;
  font-family:var(--fm);font-size:0.6875rem;color:var(--cloud);width:auto;
}
.fqd-table thead th{
  position:sticky;top:0;z-index:3;background:var(--bg2);
  font-size:0.625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--gold);text-align:right;padding:0.625rem 0.6875rem;
  border-bottom:0.0625rem solid var(--rim);white-space:nowrap;
}
.fqd-table thead th:first-child{text-align:left;left:0;z-index:4;background:var(--bg2)}
.fqd-table tbody td{padding:0.4375rem 0.6875rem;text-align:right;white-space:nowrap;border-bottom:0.0625rem solid var(--rim-soft,rgba(80,80,90,0.18))}
.fqd-table tbody td:first-child{
  position:sticky;left:0;z-index:2;background:var(--bg1);
  text-align:left;font-weight:600;color:var(--cloud);min-width:11rem;
}
.fqd-table tbody tr:hover td{background:rgba(122,140,255,0.04)}
.fqd-table tbody tr.fqd-section td{
  background:var(--bg2);padding:0.5rem 0.6875rem;
  font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);
}
.fqd-table tbody tr.fqd-section td:first-child{background:var(--bg2);left:0;position:sticky;z-index:2}
.fqd-cell-pos{color:var(--green)}
.fqd-cell-neg{color:#ff7560}
.fqd-cell-empty{color:var(--fog);opacity:0.5}

/* ═════════════════════════════════════════════════════════════════
   Creator Cases · Fundamentals (bull / bear quote stubs)
   ─────────────────────────────────────────────────────────────────
   Two-column layout when both sides exist; gracefully collapses to
   single column on narrow viewports. Each side has a colored left-
   border accent, gradient pill, creator chip, italic quote, and
   since-mention price tracker in the footer.
   ═════════════════════════════════════════════════════════════════ */
.cc-cases{margin:1.25rem 0 0.5rem}
.cc-cases-head{margin-bottom:0.625rem}
.cc-cases-title{display:flex;align-items:center;font-family:var(--fd);font-size:1.0625rem;font-weight:800;color:var(--snow);letter-spacing:-.01em;line-height:1.15}
.cc-cases-sub{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);margin-top:0.1875rem;letter-spacing:.02em}
.cc-cases-sub b{color:var(--gold)}

.cc-cases-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;align-items:stretch}
@media (max-width:62rem){.cc-cases-grid{grid-template-columns:1fr}}

.cc-case{
  position:relative;
  padding:0.875rem 1rem 0.875rem 1.125rem;
  background:var(--bg2);
  border:0.0625rem solid var(--rim);
  border-radius:0.5625rem;
  display:flex;flex-direction:column;gap:0.625rem;
  overflow:hidden;
  transition:border-color .18s ease,transform .18s ease,background .18s ease;
}
.cc-case:hover{transform:translateY(-0.0625rem)}
.cc-case::before{
  content:'';
  position:absolute;left:0;top:0;bottom:0;width:0.1875rem;
}
.cc-case-bull::before{background:linear-gradient(180deg,var(--green) 0%,rgba(204,255,0,0.4) 100%);box-shadow:0 0 6px rgba(204,255,0,0.35)}
.cc-case-bear::before{background:linear-gradient(180deg,#ff7560 0%,rgba(255,117,96,0.4) 100%);box-shadow:0 0 6px rgba(255,117,96,0.35)}
.cc-case-bull:hover{border-color:rgba(204,255,0,0.32);background:linear-gradient(135deg,rgba(204,255,0,0.03) 0%,var(--bg2) 60%)}
.cc-case-bear:hover{border-color:rgba(255,117,96,0.32);background:linear-gradient(135deg,rgba(255,117,96,0.03) 0%,var(--bg2) 60%)}

.cc-case-head{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;flex-wrap:wrap}
.cc-case-pill{
  display:inline-flex;align-items:center;gap:0.3125rem;
  font-family:var(--fm);font-size:0.625rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:0.25rem 0.5rem;border-radius:0.3125rem;border:0.0625rem solid var(--rim);
}
.cc-case-pill.cc-bull{color:var(--green);background:rgba(204,255,0,0.08);border-color:rgba(204,255,0,0.28)}
.cc-case-pill.cc-bear{color:#ff7560;background:rgba(255,117,96,0.08);border-color:rgba(255,117,96,0.28)}
.cc-case-topic{
  font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--gold);
  padding:0.1875rem 0.4375rem;border-radius:0.25rem;
  background:rgba(245,166,35,0.06);border:0.0625rem solid rgba(245,166,35,0.22);
}

.cc-case-body{display:flex;flex-direction:column;gap:0.625rem}
.cc-creator{display:flex;align-items:center;gap:0.625rem}
.cc-avatar{
  width:2.125rem;height:2.125rem;display:flex;align-items:center;justify-content:center;
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;letter-spacing:.04em;
  border-radius:50%;background:linear-gradient(135deg,#1f1f24,#0f0f12);
  flex-shrink:0;
}
.cc-avatar-bull{color:var(--green);border:0.0625rem solid rgba(204,255,0,0.35);box-shadow:0 0 6px rgba(204,255,0,0.18)}
.cc-avatar-bear{color:#ff7560;border:0.0625rem solid rgba(255,117,96,0.35);box-shadow:0 0 6px rgba(255,117,96,0.18)}
.cc-creator-text{display:flex;flex-direction:column;gap:0.125rem;min-width:0}
.cc-creator-name{font-size:0.8125rem;font-weight:700;color:var(--snow);display:flex;align-items:center;gap:0.4375rem;letter-spacing:-.005em}
.cc-stance{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0.0625rem 0.3125rem;border-radius:0.1875rem;border:0.0625rem solid var(--rim);background:var(--bg3)}
.cc-stance.cc-bull{color:var(--green);background:rgba(204,255,0,0.06);border-color:rgba(204,255,0,0.24)}
.cc-stance.cc-bear{color:#ff7560;background:rgba(255,117,96,0.06);border-color:rgba(255,117,96,0.24)}
.cc-creator-meta{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em}
.cc-watch{color:var(--gold);text-decoration:none;font-weight:600;transition:color .15s}
.cc-watch:hover{color:var(--snow);text-decoration:underline}

.cc-quote{
  position:relative;
  margin:0;
  padding:0.625rem 0.875rem 0.625rem 1rem;
  background:var(--bg1);
  border:0.0625rem solid var(--rim);
  border-radius:0.4375rem;
  font-size:0.8125rem;line-height:1.55;color:var(--cloud);font-style:italic;
}
.cc-quote::before{
  content:'';
  position:absolute;left:0.375rem;top:0.625rem;bottom:0.625rem;width:0.125rem;
  border-radius:0.0625rem;
  background:linear-gradient(180deg,rgba(255,255,255,0.18) 0%,rgba(255,255,255,0.04) 100%);
}

.cc-case-foot{
  display:flex;justify-content:space-between;align-items:center;
  padding:0.5rem 0.625rem;
  background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.4375rem;
  font-family:var(--fm);
}
.cc-since{font-size:0.6875rem;color:var(--cloud)}
.cc-since-label{color:var(--fog);margin-right:0.3125rem;letter-spacing:.02em}
.cc-since-val{color:var(--snow);font-weight:600}
.cc-since-pct{font-size:0.8125rem;font-weight:700;letter-spacing:-.01em}
.cc-since-pct.cc-bull{color:var(--green)}
.cc-since-pct.cc-bear{color:#ff7560}

.cc-cases-note{
  display:flex;align-items:flex-start;gap:0.5rem;
  margin-top:0.75rem;
  padding:0.5625rem 0.75rem;
  background:linear-gradient(135deg,rgba(245,166,35,0.03) 0%,rgba(122,140,255,0.03) 100%);
  border:0.0625rem dashed var(--rim);
  border-radius:0.4375rem;
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);line-height:1.55;letter-spacing:.02em;
}
.cc-cases-note svg{width:0.875rem;height:0.875rem;flex-shrink:0;color:var(--gold);margin-top:0.0625rem}
.cc-cases-note b{color:var(--gold);font-weight:700}

/* Empty-state side (no recent coverage) */
.cc-case.cc-case-empty{opacity:0.6;background:var(--bg3);border-style:dashed}
.cc-case.cc-case-empty::before{background:linear-gradient(180deg,var(--rim) 0%,transparent 100%);box-shadow:none}
.cc-case.cc-case-empty .cc-quote{font-style:normal;color:var(--fog);text-align:center;background:transparent;border:none;padding:0.875rem 0.5rem}

/* ═══ Creator Cases v2 — bull/bear columns of moat-style cards (real avatars) ═══ */
.cc-cases-count{margin-left:0.5rem;font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--fog);background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:999px;padding:0.0625rem 0.4375rem}
.cc-cases-cols{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;align-items:start}
@media (max-width:54rem){.cc-cases-cols{grid-template-columns:1fr}}
.cc-col-head{display:flex;align-items:center;gap:0.4375rem;font-family:var(--fm);font-size:0.6875rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--cloud);margin-bottom:0.5rem}
.cc-col-dot{width:0.5rem;height:0.5rem;border-radius:50%;flex-shrink:0}
.cc-col-dot.cc-bull{background:var(--green);box-shadow:0 0 6px rgba(204,255,0,0.5)}
.cc-col-dot.cc-bear{background:#ff7560;box-shadow:0 0 6px rgba(255,117,96,0.5)}
.cc-col-n{color:var(--fog);font-weight:700}
.cc-col-list{display:flex;flex-direction:column;gap:0.5rem}
.cc-card{
  position:relative;display:flex;flex-direction:column;gap:0.5rem;
  padding:0.75rem 0.875rem;
  background:rgba(0,0,0,0.20);border:0.0625rem solid var(--rim);border-radius:0.5rem;
  border-top-width:0.1875rem;transition:background .15s,border-color .15s,transform .15s;
}
.cc-card.cc-bull{border-top-color:var(--green)}
.cc-card.cc-bear{border-top-color:#ff7560}
.cc-card:hover{transform:translateY(-0.0625rem);background:rgba(255,255,255,0.025)}
.cc-card.cc-bull:hover{border-color:rgba(204,255,0,0.32)}
.cc-card.cc-bear:hover{border-color:rgba(255,117,96,0.32)}
.cc-card-head{display:flex;align-items:center;gap:0.5rem}
.cc-card .cc-avatar{width:1.875rem;height:1.875rem;overflow:hidden;background:linear-gradient(135deg,#1f1f24,#0f0f12);color:var(--cloud)}
.cc-card .cc-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.cc-card-meta{display:flex;flex-direction:column;line-height:1.2;min-width:0;flex:1}
.cc-card-meta b{font-size:0.75rem;color:var(--snow);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-card-meta small{font-size:0.5625rem;color:var(--fog);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc-card .cc-stance{margin-left:auto;flex-shrink:0}
.cc-card .cc-quote{
  padding:0;background:none;border:none;border-radius:0;
  font-size:0.78125rem;line-height:1.5;color:var(--cloud);font-style:italic;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden;transition:none;
}
.cc-card .cc-quote::before{display:none}
.cc-card:hover .cc-quote{-webkit-line-clamp:unset}
.cc-card-foot{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;font-family:var(--fm);font-size:0.625rem;min-height:0.875rem}
.cc-cred{color:var(--fog);letter-spacing:.02em}
.cc-empty{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);text-align:center;padding:1.25rem 0.75rem;border:0.0625rem dashed var(--rim);border-radius:0.5rem;line-height:1.5}
.cc-cases-foot{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.03em;margin-top:0.625rem;text-align:center;opacity:.8}
/* Creator Cases use the moat .pulse-quote card (hover-expands the excerpt); add the bull/bear accent. */
.cc-col-list .pulse-quote{border-top-width:0.1875rem}
.cc-col-list .pulse-quote.cc-q-bull{border-top-color:rgba(204,255,0,0.5)}
.cc-col-list .pulse-quote.cc-q-bear{border-top-color:rgba(255,117,96,0.5)}
.pulse-quote .cc-stance{margin-left:auto;flex-shrink:0;align-self:flex-start}
/* Momentum-take topic chip (e.g. "Breakout above 200") — sits under the header */
.mc-cases{margin-top:0}
.mc-cases .cc-topic{display:inline-block;font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--cloud);background:rgba(255,255,255,0.04);border:0.0625rem solid var(--rim);border-radius:0.1875rem;padding:0.0625rem 0.3125rem;margin-bottom:0.35rem}
.mc-cases.cc-q-bull .cc-topic{color:var(--green)}


/* ═════════════════════════════════════════════════════════════════
   Overview Bar v2 — polished hero design
   ─────────────────────────────────────────────────────────────────
   Layout (top → bottom):
   1. Breadcrumb pills row
   2. Logo + name (left) · consensus target block (right)
   3. HUGE price + change pill + mcap pill (left, single row)
   4. Divider
   5. Sparkline + 1Y / 7D / VOL stat columns
   6. Action buttons (left) + Fundamentals score chip (right)
   7. Updated footer
   ═════════════════════════════════════════════════════════════════ */
.lens-detail .ov-bar{
  padding:1rem 1.25rem;
  background:linear-gradient(180deg,var(--bg2) 0%,var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.75rem;
  display:flex;flex-direction:column;gap:0.5rem;
  margin-bottom:1rem;
}
.lens-detail .ov-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}

/* ── Row 1: breadcrumb ──────────────────────────────────────────── */
.lens-detail .ov-breadcrumb{display:flex;align-items:center;gap:0.5rem;font-family:var(--fm);font-size:0.75rem;color:var(--fog);letter-spacing:.02em}
.lens-detail .ov-breadcrumb-root{color:var(--fog)}
.lens-detail .ov-breadcrumb-sep{color:var(--fog);opacity:0.5}
.lens-detail .ov-breadcrumb-pill{
  padding:0.25rem 0.625rem;
  background:var(--bg2);
  border:0.0625rem solid var(--rim);
  border-radius:1rem;
  color:var(--cloud);font-weight:500;
  transition:all .15s ease;
}
.lens-detail .ov-breadcrumb-pill:hover{border-color:rgba(245,166,35,.3);color:var(--snow);cursor:pointer}

/* ── Row 2: name + consensus ────────────────────────────────────── */
.lens-detail .ov-row-name{align-items:flex-start}
.lens-detail .ov-name-row{display:flex;align-items:center;gap:1rem;flex:1;min-width:0}
.lens-detail .ov-logo{
  width:3rem;height:3rem;border-radius:0.625rem;object-fit:contain;
  background:rgba(204,255,0,0.08);padding:0.375rem;
  border:0.0625rem solid rgba(204,255,0,0.18);flex-shrink:0;
}
.lens-detail .ov-name-wrap{display:flex;flex-direction:column;gap:0.1875rem;min-width:0}
.lens-detail .ov-name{font-family:var(--fd);font-size:1.75rem;font-weight:800;color:var(--snow);line-height:1.1;letter-spacing:-.015em}
.lens-detail .ov-name-sub{font-family:var(--fm);font-size:0.75rem;color:var(--fog);letter-spacing:.04em;text-transform:uppercase}

/* Consensus block on the right */
.lens-detail .ov-consensus-block{display:flex;flex-direction:column;align-items:flex-end;gap:0.25rem;text-align:right}
.lens-detail .ov-consensus-line{font-size:0.875rem;color:var(--cloud);font-weight:500}
.lens-detail .ov-consensus-line b{color:var(--snow);font-weight:700;margin-left:0.25rem}
.lens-detail .ov-consensus-hint{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em;opacity:0.7}
.lens-detail .ov-valuation-badge{
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;letter-spacing:.04em;
  padding:0.25rem 0.5rem;border-radius:0.3125rem;
  margin-top:0.1875rem;
  background:rgba(204,255,0,0.08);
  color:var(--green);
  border:0.0625rem solid rgba(204,255,0,0.25);
}
.lens-detail .ov-valuation-badge.over{
  background:rgba(255,117,96,0.08);
  color:#ff7560;
  border-color:rgba(255,117,96,0.25);
}

/* ── Row 3: price block (left) + sparkline/stats (right), one line ── */
.lens-detail .ov-row-market{justify-content:space-between;align-items:center;gap:1.25rem 2rem;flex-wrap:wrap}
.lens-detail .ov-price-group{display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap}
.lens-detail .ov-market-stats{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.lens-detail .ov-market-stats .ov-sparkline{width:9rem;height:2.25rem;display:block}
.lens-detail .ov-row-price{justify-content:flex-start;gap:0.75rem;flex-wrap:wrap}
.lens-detail .ov-price{
  font-family:var(--fd);
  font-size:2.25rem;
  font-weight:800;
  color:var(--snow);
  line-height:1;
  letter-spacing:-.025em;
}
.lens-detail .ov-price-change{
  font-family:var(--fm);font-size:0.9375rem;font-weight:700;letter-spacing:-.01em;
  padding:0.375rem 0.6875rem;
  border-radius:0.4375rem;
  border:0.0625rem solid var(--rim);
}
.lens-detail .ov-price-change.up{color:var(--green);background:rgba(204,255,0,0.06);border-color:rgba(204,255,0,0.25)}
.lens-detail .ov-price-change.down{color:#ff7560;background:rgba(255,117,96,0.06);border-color:rgba(255,117,96,0.25)}
.lens-detail .ov-mcap-pill{
  font-family:var(--fm);font-size:0.75rem;font-weight:500;color:var(--cloud);
  padding:0.375rem 0.6875rem;
  background:var(--bg2);
  border:0.0625rem solid var(--rim);
  border-radius:0.4375rem;
}

/* ── Divider ────────────────────────────────────────────────────── */
.lens-detail .ov-divider{height:0.0625rem;background:var(--rim);margin:0.25rem 0}

/* ── Row 4: sparkline + stats ───────────────────────────────────── */
.lens-detail .ov-row-stats{justify-content:flex-start;gap:1.5rem;flex-wrap:wrap}
.lens-detail .ov-row-stats .ov-sparkline{width:11rem;height:2.5rem;display:block}
.lens-detail .ov-stat{display:flex;flex-direction:column;align-items:center;gap:0.1875rem;min-width:3.5rem}
.lens-detail .ov-stat-lbl{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.lens-detail .ov-stat-val{font-family:var(--fm);font-size:0.9375rem;font-weight:700;color:var(--snow);letter-spacing:-.01em;line-height:1}
.lens-detail .ov-stat-val.up{color:var(--green)}
.lens-detail .ov-stat-val.down{color:#ff7560}
.lens-detail .ov-stat-val-vol{color:var(--snow);font-variant-numeric:tabular-nums}

/* ── Row 4: actions (left) + updated stamp (right) ──────────────── */
.lens-detail .ov-row-actions{justify-content:space-between;align-items:center;gap:0.75rem}
.lens-detail .ov-actions{display:flex;gap:0.5rem;align-items:center}
.lens-detail .ov-btn{
  font-family:var(--fd);font-size:0.8125rem;font-weight:600;
  padding:0.5rem 1rem;
  border-radius:0.5rem;
  border:0.0625rem solid var(--rim);
  cursor:pointer;
  transition:all .15s ease;
  letter-spacing:-.005em;
}
.lens-detail .ov-btn-primary{
  background:linear-gradient(135deg,rgba(204,255,0,0.18) 0%,rgba(204,255,0,0.08) 100%);
  color:var(--green);
  border-color:rgba(204,255,0,0.4);
  box-shadow:inset 0 0 8px rgba(204,255,0,0.08);
}
.lens-detail .ov-btn-primary:hover{
  background:linear-gradient(135deg,rgba(204,255,0,0.28) 0%,rgba(204,255,0,0.14) 100%);
  border-color:rgba(204,255,0,0.6);
  transform:translateY(-0.0625rem);
}
.lens-detail .ov-btn-secondary{background:var(--bg2);color:var(--cloud)}
.lens-detail .ov-btn-secondary:hover{background:var(--bg3);color:var(--snow);border-color:var(--rim2)}

.lens-detail .ov-fundscore{
  display:flex;align-items:center;gap:0.625rem;
  padding:0.4375rem 0.75rem 0.4375rem 0.875rem;
  border:0.0625rem solid var(--rim);border-radius:0.5rem;
  background:var(--bg2);
}
.lens-detail .ov-fundscore-label{font-family:var(--fd);font-size:0.875rem;font-weight:600;color:var(--cloud)}
.lens-detail .ov-fundscore-chip{
  display:flex;align-items:baseline;gap:0.0625rem;
  padding:0.3125rem 0.625rem;
  background:rgba(204,255,0,0.1);
  color:var(--green);
  border:0.0625rem solid rgba(204,255,0,0.35);
  border-radius:0.375rem;
  font-family:var(--fd);font-size:1rem;font-weight:800;
  letter-spacing:-.01em;
  box-shadow:inset 0 0 8px rgba(204,255,0,0.08);
}
.lens-detail .ov-fundscore-chip [data-ov-field="fundamentals_score"]{font-size:1.125rem}
.lens-detail .ov-fundscore-max{font-size:0.75rem;color:var(--green);opacity:0.7;font-weight:600}

/* ── Updated stamp (now inline at the right of the actions row) ──── */
.lens-detail .ov-updated{
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);
  letter-spacing:.02em;text-align:right;
}

/* Mobile: stack rows compactly */
@media (max-width:48rem){
  .lens-detail .ov-row-name{flex-direction:column;align-items:flex-start;gap:0.875rem}
  .lens-detail .ov-consensus-block{align-items:flex-start;text-align:left}
  .lens-detail .ov-price{font-size:2rem}
  .lens-detail .ov-market-stats{gap:1rem}
  .lens-detail .ov-row-market{gap:0.75rem 1.5rem}
}

/* ═════════════════════════════════════════════════════════════════
   Central panel container — caps lens-detail width and centres it
   so every section reads as part of one cohesive document instead
   of stretching edge-to-edge on wide screens.
   ═════════════════════════════════════════════════════════════════ */
.canvas-view-body{padding-left:0 !important;padding-right:0 !important}
.lens-detail{
  max-width:78rem;
  margin:0 auto;
  padding:1rem 1.5rem 2rem;
  box-sizing:border-box;
}

/* Polish lens-head into a proper panel matching the rest */
.lens-detail .lens-head{
  padding:1rem 1.25rem;
  background:linear-gradient(180deg,var(--bg2) 0%,var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.625rem;
  margin-bottom:0.875rem;
  display:flex;align-items:center;gap:0.875rem;
}
.lens-detail .lens-head-icon{width:2.25rem;height:2.25rem;border-radius:0.5rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.lens-detail .lens-head-icon svg{width:1rem;height:1rem}
.lens-detail .lens-head-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:0.125rem}
.lens-detail .lens-head-title{font-family:var(--fd);font-size:1.0625rem;font-weight:800;color:var(--snow);letter-spacing:-.01em}
.lens-detail .lens-head-sub{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.02em}
.lens-detail .lens-head-verdict{
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:0.3125rem 0.625rem;
  border-radius:0.3125rem;
  border:0.0625rem solid var(--rim);
}
.lens-detail .lens-head-verdict.pass{color:var(--green);background:rgba(204,255,0,0.08);border-color:rgba(204,255,0,0.28)}
.lens-detail .lens-head-verdict.watch{color:var(--gold);background:rgba(245,166,35,0.08);border-color:rgba(245,166,35,0.28)}
.lens-detail .lens-head-verdict.fail{color:#ff7560;background:rgba(255,117,96,0.08);border-color:rgba(255,117,96,0.28)}

/* Tighter consistent spacing between major panels */
.lens-detail > *:not(:last-child){margin-bottom:0.875rem}
.lens-detail .qa-charts-section{margin-bottom:0.875rem}

/* Stat-card panels — give them subtle gradient bg + matching radius */
.lens-detail .lens-metric-grid:not(.ov-headline-metrics){
  padding:0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0.625rem;
}
.lens-detail .lens-metric{
  background:linear-gradient(180deg,var(--bg2) 0%,var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
  padding:0.75rem 0.875rem;
}

/* ═════════════════════════════════════════════════════════════════
   Lens-head v2 · Official / Verified data source attribution
   ═════════════════════════════════════════════════════════════════ */
.lens-detail .lens-head.lens-head-official{
  align-items:center;
  gap:1rem;
  padding:0.875rem 1.125rem;
}
.lens-detail .lens-head-official .lens-head-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:0.375rem}
.lens-detail .lens-head-official .lens-head-title{font-size:1.0625rem}
.lens-detail .lens-head-sources{display:flex;gap:0.4375rem;flex-wrap:wrap}
.lens-source-pill{
  display:inline-flex;align-items:center;gap:0.3125rem;
  font-family:var(--fm);font-size:0.625rem;font-weight:600;
  color:var(--cloud);letter-spacing:.02em;
  padding:0.1875rem 0.5rem 0.1875rem 0.4375rem;
  background:rgba(90,200,250,0.05);
  border:0.0625rem solid rgba(90,200,250,0.22);
  border-radius:1rem;
}
.lens-source-pill svg{width:0.6875rem;height:0.6875rem;color:rgba(90,200,250,0.85);flex-shrink:0}

.lens-head-verified{
  display:flex;align-items:center;gap:0.5rem;
  padding:0.4375rem 0.6875rem 0.4375rem 0.5rem;
  background:linear-gradient(135deg,rgba(204,255,0,0.06) 0%,rgba(122,140,255,0.04) 100%);
  border:0.0625rem solid rgba(204,255,0,0.28);
  border-radius:0.4375rem;
  position:relative;
  cursor:default;
}
.lens-head-verified::before{
  content:'';
  position:absolute;left:0;top:0;bottom:0;width:0.1875rem;
  background:linear-gradient(180deg,var(--green) 0%,rgba(204,255,0,0.4) 100%);
  border-radius:0.4375rem 0 0 0.4375rem;
  box-shadow:0 0 6px rgba(204,255,0,0.35);
}
.lens-head-verified svg{width:1.125rem;height:1.125rem;color:var(--green);flex-shrink:0;filter:drop-shadow(0 0 4px rgba(204,255,0,0.4))}
.lens-head-verified-text{display:flex;flex-direction:column;gap:0.0625rem;line-height:1.1}
.lens-head-verified-label{font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--green);letter-spacing:.06em;text-transform:uppercase}
.lens-head-verified-sub{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em}

/* ═════════════════════════════════════════════════════════════════
   AI Summary · Fundamentals — rich NVDA stub (preview of post-AI)
   ─────────────────────────────────────────────────────────────────
   Designed to feel like an analyst report card. Header has bullish
   badge + quality grade. Thesis sits in a quoted callout. 4-card
   strengths/risk grid each with a stat, sub, and inline sparkline.
   Foot has citation hint + pending pulse dot.
   ═════════════════════════════════════════════════════════════════ */
.ai-summary-block{
  position:relative;
  padding:1.125rem 1.25rem;
  background:
    linear-gradient(135deg,rgba(245,166,35,0.04) 0%,rgba(122,140,255,0.03) 35%,rgba(204,255,0,0.04) 100%),
    var(--bg2);
  border:0.0625rem solid var(--rim);
  border-radius:0.75rem;
  overflow:hidden;
}
.ai-summary-block::before{
  content:'';
  position:absolute;top:0;left:0;right:0;height:0.125rem;
  background:linear-gradient(90deg,var(--gold) 0%,#7a8cff 50%,var(--green) 100%);
  opacity:0.9;
}

.ai-summary-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  padding-bottom:0.875rem;border-bottom:0.0625rem solid var(--rim);
  margin-bottom:0.875rem;
}
.ai-summary-head-left{display:flex;align-items:center;gap:0.75rem;min-width:0}
.ai-summary-icon{
  width:2.25rem;height:2.25rem;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);
  background:rgba(245,166,35,0.1);
  border:0.0625rem solid rgba(245,166,35,0.28);
  border-radius:0.5rem;
  box-shadow:inset 0 0 8px rgba(245,166,35,0.12);
}
.ai-summary-icon svg{width:1.125rem;height:1.125rem;filter:drop-shadow(0 0 4px rgba(245,166,35,0.5))}
.ai-summary-title{font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow);letter-spacing:-.005em;line-height:1.2}
.ai-summary-sub{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);margin-top:0.125rem;letter-spacing:.02em}
.ai-summary-sub b{color:var(--cloud);font-weight:600}

.ai-summary-meta{display:flex;align-items:center;gap:0.625rem;flex-shrink:0}
.ai-summary-badge{
  display:inline-flex;align-items:center;gap:0.375rem;
  font-family:var(--fm);font-size:0.625rem;font-weight:800;letter-spacing:.1em;
  padding:0.3125rem 0.5625rem;
  border-radius:0.3125rem;
}
.ai-summary-badge.bull{
  color:var(--green);
  background:rgba(204,255,0,0.1);
  border:0.0625rem solid rgba(204,255,0,0.32);
  box-shadow:inset 0 0 6px rgba(204,255,0,0.08);
}
.ai-summary-badge.bear{color:#ff7560;background:rgba(255,117,96,0.1);border:0.0625rem solid rgba(255,117,96,0.32)}
.ai-summary-badge.neutral{color:var(--gold);background:rgba(245,166,35,0.1);border:0.0625rem solid rgba(245,166,35,0.32)}
.ai-summary-badge-dot{
  width:0.4375rem;height:0.4375rem;border-radius:50%;
  background:radial-gradient(circle,#fff 0%,currentColor 70%);
  box-shadow:0 0 5px currentColor;
  animation:aipulse 2s ease-in-out infinite;
}

.ai-summary-grade{
  display:flex;align-items:baseline;gap:0.0625rem;
  padding:0.375rem 0.6875rem;
  background:rgba(204,255,0,0.1);
  border:0.0625rem solid rgba(204,255,0,0.38);
  border-radius:0.4375rem;
  font-family:var(--fd);font-weight:800;color:var(--green);letter-spacing:-.01em;
  box-shadow:inset 0 0 8px rgba(204,255,0,0.1);
}
.ai-summary-grade-num{font-size:1.125rem}
.ai-summary-grade-max{font-size:0.75rem;opacity:0.7}
/* Taxonomy verdict word (Excellent / Wide / Attractive …) — pill, not a letter chip */
.ai-summary-grade.is-word{padding:0.3125rem 0.75rem;border-radius:999px}
.ai-summary-grade.is-word .ai-summary-grade-num{
  font-size:0.8125rem;font-weight:700;letter-spacing:0.01em;text-transform:uppercase;
}
/* Colour the grade chip by tier so a C+ never reads green. */
.ai-summary-grade.tier-a{background:rgba(204,255,0,0.1);border-color:rgba(204,255,0,0.38);color:var(--green);box-shadow:inset 0 0 8px rgba(204,255,0,0.1)}
.ai-summary-grade.tier-b{background:rgba(90,200,250,0.1);border-color:rgba(90,200,250,0.38);color:var(--blue);box-shadow:inset 0 0 8px rgba(90,200,250,0.1)}
.ai-summary-grade.tier-c{background:rgba(245,166,35,0.1);border-color:rgba(245,166,35,0.38);color:var(--gold);box-shadow:inset 0 0 8px rgba(245,166,35,0.1)}
.ai-summary-grade.tier-d{background:rgba(255,80,0,0.1);border-color:rgba(255,80,0,0.38);color:#ff7560;box-shadow:inset 0 0 8px rgba(255,80,0,0.1)}

/* ── Headline thesis — big bold green statement ── */
.ai-summary-headline{
  font-family:var(--fd);
  font-size:1.0625rem;font-weight:800;line-height:1.4;letter-spacing:-.01em;
  color:var(--green);
  margin-bottom:0.875rem;
  text-shadow:0 0 18px rgba(204,255,0,0.18);
}

/* ── Supporting body paragraph ── */
.ai-summary-body{
  font-size:0.875rem;line-height:1.65;color:var(--cloud);
  margin:0 0 1rem 0;
  letter-spacing:.005em;
}
.ai-summary-body b{color:var(--snow);font-weight:700}
.ai-summary-body b.up{color:var(--green);font-weight:700}
.ai-summary-body b.down{color:#ff7560;font-weight:700}

/* ── Two-column Strengths / Risks ── */
.ai-summary-cols{
  display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;
  margin-bottom:0.875rem;
}
@media (max-width:48rem){.ai-summary-cols{grid-template-columns:1fr}}

.ai-summary-col{
  position:relative;
  padding:0.8125rem 0.9375rem 0.75rem 1.0625rem;
  background:linear-gradient(180deg,rgba(0,0,0,0.18) 0%,rgba(0,0,0,0.04) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
}
.ai-summary-col::before{
  content:'';position:absolute;left:0;top:0.5rem;bottom:0.5rem;width:0.1875rem;
  border-radius:0 0.125rem 0.125rem 0;
}
.ai-summary-col-pos::before{background:linear-gradient(180deg,var(--green) 0%,rgba(204,255,0,0.35) 100%);box-shadow:0 0 6px rgba(204,255,0,0.35)}
.ai-summary-col-neg::before{background:linear-gradient(180deg,#ff7560 0%,rgba(255,117,96,0.35) 100%);box-shadow:0 0 6px rgba(255,117,96,0.35)}

.ai-summary-col-title{
  display:flex;align-items:center;gap:0.4375rem;
  font-family:var(--fm);font-size:0.6875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  margin-bottom:0.5rem;
}
.ai-summary-col-pos .ai-summary-col-title{color:var(--green)}
.ai-summary-col-neg .ai-summary-col-title{color:#ff7560}
.ai-summary-col-dot{
  width:0.4375rem;height:0.4375rem;border-radius:50%;
}
.ai-summary-col-pos .ai-summary-col-dot{background:var(--green);box-shadow:0 0 6px rgba(204,255,0,0.7)}
.ai-summary-col-neg .ai-summary-col-dot{background:#ff7560;box-shadow:0 0 6px rgba(255,117,96,0.7)}

.ai-summary-list{
  list-style:none;padding:0;margin:0;
  display:flex;flex-direction:column;gap:0.4375rem;
}
.ai-summary-list li{
  position:relative;
  padding-left:1rem;
  font-size:0.8125rem;line-height:1.55;color:var(--cloud);
  letter-spacing:.005em;
}
.ai-summary-list li::before{
  content:'›';
  position:absolute;left:0;top:-0.0625rem;
  font-family:var(--fd);font-size:0.875rem;font-weight:800;line-height:1.55;
  opacity:0.8;
}
.ai-summary-col-pos .ai-summary-list li::before{color:var(--green)}
.ai-summary-col-neg .ai-summary-list li::before{color:#ff7560}
.ai-summary-list li b{color:var(--snow);font-weight:700}

/* ── Requires Investigation — yellow/amber callout ── */
.ai-summary-warn{
  position:relative;
  padding:0.8125rem 1rem 0.875rem 1rem;
  margin-bottom:0.875rem;
  background:linear-gradient(180deg,rgba(245,166,35,0.06) 0%,rgba(245,166,35,0.02) 100%);
  border:0.0625rem solid rgba(245,166,35,0.28);
  border-radius:0.5rem;
}
.ai-summary-warn::before{
  content:'';position:absolute;left:0;top:0.5rem;bottom:0.5rem;width:0.1875rem;
  background:linear-gradient(180deg,#f5a623 0%,rgba(245,166,35,0.35) 100%);
  border-radius:0 0.125rem 0.125rem 0;
  box-shadow:0 0 6px rgba(245,166,35,0.45);
}
.ai-summary-warn-title{
  display:flex;align-items:center;gap:0.4375rem;
  font-family:var(--fm);font-size:0.6875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--gold);
  margin-bottom:0.5rem;
}
.ai-summary-warn-title svg{width:0.875rem;height:0.875rem;filter:drop-shadow(0 0 4px rgba(245,166,35,0.6))}
.ai-summary-warn-list li::before{content:'⚠';font-size:0.6875rem;color:var(--gold);top:0.0625rem}
.ai-summary-warn-list li{padding-left:1.125rem}

.ai-summary-foot{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:0.75rem;border-top:0.0625rem solid var(--rim);
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.02em;
  flex-wrap:wrap;gap:0.5rem;
}
.ai-summary-citations{display:flex;align-items:center;gap:0.4375rem}
.ai-summary-citations svg{width:0.8125rem;height:0.8125rem;color:var(--gold);flex-shrink:0}
.ai-summary-citations b{color:var(--cloud);font-weight:700}
.ai-summary-link{color:var(--gold);text-decoration:none;font-weight:600;transition:color .15s}
.ai-summary-link:hover{color:var(--snow);text-decoration:underline}

.ai-summary-pending{
  display:flex;align-items:center;gap:0.375rem;
  font-family:var(--fm);font-size:0.5625rem;color:var(--gold);
  letter-spacing:.06em;text-transform:uppercase;
  padding:0.1875rem 0.4375rem;
  background:rgba(245,166,35,0.06);border:0.0625rem solid rgba(245,166,35,0.22);
  border-radius:0.25rem;
}
.ai-summary-pending-dot{
  width:0.375rem;height:0.375rem;border-radius:50%;
  background:radial-gradient(circle,#ffd700 0%,#f5a623 70%);
  box-shadow:0 0 4px rgba(245,166,35,0.7);
  animation:aipulse 2.4s ease-in-out infinite;
}

/* Mobile: stack lens-head vertically */
@media (max-width:48rem){
  .lens-detail .lens-head.lens-head-official{flex-direction:column;align-items:flex-start;gap:0.75rem}
  .lens-head-verified{align-self:stretch}
}

/* ═════════════════════════════════════════════════════════════════
   Earnings Cadence — Next + Last side-by-side rich panels
   ═════════════════════════════════════════════════════════════════ */
.earn-cadence{
  display:grid;grid-template-columns:1fr 1.4fr;gap:0.75rem;
}
@media (max-width:54rem){.earn-cadence{grid-template-columns:1fr}}

.earn-next, .earn-last{
  position:relative;
  padding:0.875rem 1rem 0.9375rem 1.125rem;
  background:linear-gradient(180deg,var(--bg2) 0%,var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.625rem;
  overflow:hidden;
}
/* Last Earnings has fewer blocks than Next — flex it so its rows fill the
   equal-height card and align with Next instead of clustering at the top. */
.earn-last{display:flex;flex-direction:column}
.earn-next-stripe, .earn-last-stripe{
  position:absolute;left:0;top:0.5rem;bottom:0.5rem;width:0.1875rem;
  border-radius:0 0.125rem 0.125rem 0;
}
.earn-next-stripe{background:linear-gradient(180deg,#5ac8fa 0%,rgba(90,200,250,0.3) 100%);box-shadow:0 0 6px rgba(90,200,250,0.4)}
.earn-last-stripe{background:linear-gradient(180deg,var(--green) 0%,rgba(204,255,0,0.3) 100%);box-shadow:0 0 6px rgba(204,255,0,0.4)}

/* ── Next Earnings ── */
.earn-next-head{
  display:grid;grid-template-columns:auto 1fr auto;gap:0.75rem;align-items:center;
  margin-bottom:0.75rem;
}
.earn-next-icon{
  width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;
  color:#5ac8fa;background:rgba(90,200,250,0.07);
  border:0.0625rem solid rgba(90,200,250,0.25);border-radius:0.4375rem;
  flex-shrink:0;
}
.earn-next-icon svg{width:1.125rem;height:1.125rem}
.earn-next-title-block{min-width:0;display:flex;flex-direction:column;gap:0.125rem}
.earn-next-label{
  font-family:var(--fm);font-size:0.6875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:#5ac8fa;
}
.earn-next-date{
  font-family:var(--fd);font-size:1rem;font-weight:700;color:var(--snow);letter-spacing:-.005em;
}
.earn-next-countdown{
  display:flex;flex-direction:column;align-items:flex-end;line-height:1;
  padding:0.375rem 0.625rem;
  background:linear-gradient(180deg,rgba(90,200,250,0.1) 0%,rgba(90,200,250,0.04) 100%);
  border:0.0625rem solid rgba(90,200,250,0.3);border-radius:0.4375rem;
}
.earn-next-countdown-num{
  font-family:var(--fd);font-size:1.375rem;font-weight:800;color:#5ac8fa;letter-spacing:-.02em;
  text-shadow:0 0 12px rgba(90,200,250,0.4);
}
.earn-next-countdown-unit{
  font-family:var(--fm);font-size:0.5625rem;font-weight:700;color:rgba(90,200,250,0.75);
  letter-spacing:.1em;text-transform:uppercase;margin-top:0.125rem;
}
.earn-next-ests{
  display:grid;grid-template-columns:1fr auto 1fr;gap:0;align-items:center;
  padding:0.625rem 0.75rem;
  background:rgba(0,0,0,0.18);
  border:0.0625rem solid var(--rim);
  border-radius:0.4375rem;
}
.earn-next-est{display:flex;flex-direction:column;gap:0.1875rem;min-width:0}
.earn-next-est-label{
  font-family:var(--fm);font-size:0.5625rem;font-weight:700;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;
}
.earn-next-est-val{
  font-family:var(--fd);font-size:1.0625rem;font-weight:800;color:var(--snow);letter-spacing:-.01em;line-height:1.1;
}
.earn-next-est-sep{
  width:0.0625rem;height:1.875rem;background:var(--rim);margin:0 0.75rem;
}

/* ── Last Earnings ── */
.earn-last-head{
  display:grid;grid-template-columns:auto 1fr auto;gap:0.75rem;align-items:center;
  margin-bottom:0.75rem;
}
.earn-last-icon{
  width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;
  color:var(--green);background:rgba(204,255,0,0.06);
  border:0.0625rem solid rgba(204,255,0,0.25);border-radius:0.4375rem;
  flex-shrink:0;
}
.earn-last-icon svg{width:1.125rem;height:1.125rem}
.earn-last-title-block{min-width:0;display:flex;flex-direction:column;gap:0.125rem}
.earn-last-label{
  font-family:var(--fm);font-size:0.6875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--green);
}
.earn-last-date{
  font-family:var(--fd);font-size:1rem;font-weight:700;color:var(--snow);letter-spacing:-.005em;
}
.earn-last-badge{
  font-family:var(--fm);font-size:0.6875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  padding:0.3125rem 0.625rem;border-radius:0.375rem;
  border:0.0625rem solid var(--rim);background:var(--bg3);color:var(--cloud);
}
.earn-last-badge.beat{color:var(--green);border-color:rgba(204,255,0,0.4);background:rgba(204,255,0,0.08);box-shadow:0 0 8px rgba(204,255,0,0.18)}
.earn-last-badge.miss{color:#ff7560;border-color:rgba(255,117,96,0.4);background:rgba(255,117,96,0.08);box-shadow:0 0 8px rgba(255,117,96,0.18)}

.earn-last-rows{display:flex;flex-direction:column;gap:0.5rem;flex:1;justify-content:space-evenly}
.earn-last-row{
  padding:0.5rem 0.6875rem 0.6875rem 0.6875rem;
  background:rgba(0,0,0,0.18);
  border:0.0625rem solid var(--rim);
  border-radius:0.4375rem;
}
.earn-last-row-head{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:0.4375rem;font-family:var(--fm);font-size:0.75rem;
}
.earn-last-row-label{
  font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--gold);font-size:0.625rem;
}
.earn-last-row-vals{display:flex;align-items:baseline;gap:0.4375rem}
.earn-last-actual{
  font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow);letter-spacing:-.01em;
}
.earn-last-vs{
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em;
}
.earn-last-est{
  font-family:var(--fm);font-size:0.75rem;color:var(--cloud);
}
.earn-last-surprise{
  font-family:var(--fm);font-size:0.6875rem;font-weight:800;
  padding:0.125rem 0.4375rem;border-radius:0.25rem;
  margin-left:0.1875rem;
}
.earn-last-surprise.green{color:var(--green);background:rgba(204,255,0,0.08);border:0.0625rem solid rgba(204,255,0,0.3)}
.earn-last-surprise.red{color:#ff7560;background:rgba(255,117,96,0.08);border:0.0625rem solid rgba(255,117,96,0.3)}

/* Beat magnitude bar — actual extends past the estimate marker */
.earn-last-bar{padding:0 0.0625rem}
.earn-last-bar-track{
  position:relative;height:0.4375rem;
  background:linear-gradient(180deg,rgba(0,0,0,0.4) 0%,rgba(0,0,0,0.2) 100%);
  border-radius:0.25rem;
  border:0.0625rem solid rgba(255,255,255,0.04);
  overflow:hidden;
}
.earn-last-bar-est-marker{
  position:absolute;left:50%;top:-0.0625rem;bottom:-0.0625rem;width:0.125rem;
  background:rgba(255,255,255,0.5);
  box-shadow:0 0 4px rgba(255,255,255,0.3);
  z-index:2;
}
.earn-last-bar-actual{
  position:absolute;left:50%;top:0;bottom:0;
  border-radius:0.1875rem;
  transition:width .35s ease, background .25s ease;
  z-index:1;
}
.earn-last-bar-actual.up{
  background:linear-gradient(90deg,rgba(204,255,0,0.4) 0%,var(--green) 100%);
  box-shadow:0 0 6px rgba(204,255,0,0.4);
}
.earn-last-bar-actual.down{
  background:linear-gradient(90deg,#ff7560 0%,rgba(255,117,96,0.5) 100%);
  box-shadow:0 0 6px rgba(255,117,96,0.4);
}

/* ═════════════════════════════════════════════════════════════════
   Stat ribbons — monochrome, restrained. Color used only for
   trend direction (green/red) on the sparkline. Categories are
   distinguished by icon + label, not chromatic noise.
   ═════════════════════════════════════════════════════════════════ */
.lens-detail .lm-rich{gap:0.625rem}
.lens-detail .lm-rich .lens-metric{
  position:relative;
  padding:0.75rem 0.875rem 0.5rem 0.9375rem;
  background:linear-gradient(180deg,var(--bg2) 0%,var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
  overflow:hidden;
  transition:border-color .2s;
}
.lens-detail .lm-rich .lens-metric:hover{border-color:rgba(255,255,255,0.1)}

/* Subtle uniform left edge — no glow, no category color */
.lm-stripe{
  position:absolute;left:0;top:0;bottom:0;width:0.0625rem;
  background:rgba(255,255,255,0.08);
}

.lm-head{
  display:flex;align-items:center;gap:0.4375rem;
  margin-bottom:0.3125rem;
}
.lm-icon{
  width:1rem;height:1rem;display:flex;align-items:center;justify-content:center;
  color:var(--fog);
}
.lm-icon svg{width:0.875rem;height:0.875rem;stroke-width:1.8}

.lens-detail .lm-rich .lens-metric-label{
  font-family:var(--fm);font-size:0.5625rem;font-weight:700;
  color:var(--fog);letter-spacing:.1em;text-transform:uppercase;
  line-height:1;
}
.lens-detail .lm-rich .lens-metric-value{
  font-family:var(--fd);font-size:1.375rem;font-weight:800;
  color:var(--snow);letter-spacing:-.015em;line-height:1.1;
  margin-top:0.125rem;
}
.lens-detail .lm-rich .lens-metric-sub{
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);
  letter-spacing:.01em;margin-top:0.1875rem;line-height:1.3;
}
.lens-detail .lm-rich .lens-metric-sub.green{color:var(--green)}
.lens-detail .lm-rich .lens-metric-sub.red{color:#ff7560}

/* Sparkline — default neutral; trend class colors only */
.lm-spark{
  display:block;width:100%;height:1.5rem;margin-top:0.5rem;
  color:rgba(255,255,255,0.4);
  opacity:1;
}
.lm-spark.up{color:var(--green)}
.lm-spark.down{color:#ff7560}
.lm-spark.flat{color:var(--fog)}
.lm-spark polyline{stroke-width:1.25}

/* Row 2 (TTM quality) doesn't have a sub */
.lens-detail .ov-headline-metrics.lm-rich .lens-metric{padding-bottom:0.5rem}
.lens-detail .ov-headline-metrics.lm-rich .lm-spark{margin-top:0.5rem}

/* ═════════════════════════════════════════════════════════════════
   Chart card polish — depth + accent details ONLY at card level.
   No overlays inside the chart wrap (those broke hover behavior).
   ═════════════════════════════════════════════════════════════════ */

/* Refined card bg + soft ambient lighting. No hover state, no overlays,
   nothing that can disturb chart re-rendering or tooltips. */
.lens-detail .qa-inner-card,
.lens-detail .pp-inner-card,
.lens-detail .lens-chart{
  background:
    radial-gradient(ellipse 50% 80% at 0% 0%, rgba(245,166,35,0.022) 0%, transparent 55%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(245,166,35,0.18);
  box-shadow:
    inset 0 0.0625rem 0 rgba(255,255,255,0.025),
    0 0.0625rem 0.125rem rgba(0,0,0,0.25);
}

/* Lens-chart title row — gold underline accent + monochrome title */
.lens-detail .lens-chart .lens-chart-head{
  padding-bottom:0.5rem;
  margin-bottom:0.5rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
  position:relative;
}
.lens-detail .lens-chart .lens-chart-head::after{
  content:'';
  position:absolute;left:0;bottom:-0.0625rem;
  width:1.875rem;height:0.0625rem;
  background:linear-gradient(90deg, var(--gold) 0%, rgba(245,166,35,0.25) 100%);
  box-shadow:0 0 4px rgba(245,166,35,0.35);
  pointer-events:none;
}
.lens-detail .lens-chart-title{
  font-family:var(--fd);
  font-weight:700;
  color:var(--snow);
  letter-spacing:-.005em;
}
.lens-detail .lens-chart-sub{
  font-family:var(--fm);
  color:var(--fog);
  letter-spacing:.02em;
  margin-top:0.125rem;
}

/* QA outer head — accent line under title row */
.lens-detail .qa-inner-card .qa-inner-head{
  padding-bottom:0.4375rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
  position:relative;
}
.lens-detail .qa-inner-card .qa-inner-head::after{
  content:'';
  position:absolute;left:0;bottom:-0.0625rem;
  width:1.875rem;height:0.0625rem;
  background:linear-gradient(90deg, var(--gold) 0%, rgba(245,166,35,0.25) 100%);
  box-shadow:0 0 4px rgba(245,166,35,0.35);
  pointer-events:none;
}

/* ═════════════════════════════════════════════════════════════════
   FIX: axis-text stretching.
   The chart SVGs use viewBox="0 0 880 280" + preserveAspectRatio="none",
   so any container whose aspect ratio differs from 880/280 stretches
   geometry — including text — non-uniformly. Lock the SVG's rendered
   aspect ratio to its viewBox so X and Y scale by the same factor,
   which means text renders at its natural proportions.
   ═════════════════════════════════════════════════════════════════ */
.lens-detail .qa-svg,
.lens-detail .pp-svg,
.lens-detail .lens-chart-svg{
  width:100%;
  height:auto;
  aspect-ratio: 880 / 280;
  display:block;
}
/* Stacked two-panel charts are taller — match aspect-ratio to their viewBox so
   preserveAspectRatio="none" renders text/marks at natural proportions. */
.lens-detail .qa-svg[data-chart="quarterly_analysis"]{ aspect-ratio: 880 / 470; }
.lens-detail .qa-svg[data-chart="fcf"]{ aspect-ratio: 880 / 410; }
.lens-detail .qa-svg[data-chart="capalloc"]{ aspect-ratio: 880 / 320; }
/* Price Performance was missing its per-chart override, so it fell through to the
   880/280 default and squished its 880×380 content vertically (~36% too short).
   Match the viewBox exactly so the axis + labels render at natural proportions
   and the chart gets its full vertical room back. */
.lens-detail .pp-svg[data-chart="price_perf"]{ aspect-ratio: 880 / 380; }

/* ─── Revenue Segmentation section ─────────────────────────────── */
.seg-rev-section{margin:1.25rem 0;padding:1rem 1.1rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.75rem}
.seg-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:0.5rem}
.seg-title{font-weight:600;font-size:0.95rem;color:var(--text-primary);display:flex;align-items:center;gap:0.4rem}
.seg-sub{font-size:0.75rem;color:var(--fog);margin-top:0.15rem}
.seg-toggle{display:inline-flex;background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.5rem;overflow:hidden;flex:0 0 auto}
.seg-tog-btn{background:transparent;border:0;color:var(--fog);font-size:0.75rem;padding:0.3rem 0.7rem;cursor:pointer}
.seg-tog-btn.active{background:var(--rim);color:var(--text-primary)}
.seg-svg{width:100%;height:auto;aspect-ratio:880/300;display:block;margin:0.35rem 0 0.6rem}
.seg-mix-head{font-size:0.72rem;color:var(--fog);text-transform:uppercase;letter-spacing:0.03em;margin-bottom:0.4rem}
.seg-mix-list{display:flex;flex-direction:column;gap:0.35rem}
.seg-mix-row{display:grid;grid-template-columns:0.6rem minmax(6rem,10rem) 1fr auto auto;align-items:center;gap:0.5rem;font-size:0.8rem}
.seg-mix-dot{width:0.6rem;height:0.6rem;border-radius:0.15rem}
.seg-mix-name{color:var(--cloud);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seg-mix-bar{height:0.4rem;background:var(--bg3);border-radius:0.2rem;overflow:hidden}
.seg-mix-fill{display:block;height:100%;border-radius:0.2rem}
.seg-mix-val{color:var(--text-primary);font-variant-numeric:tabular-nums}
.seg-mix-pct{color:var(--fog);font-variant-numeric:tabular-nums;min-width:3rem;text-align:right}
.seg-warn{font-size:0.72rem;color:var(--gold);background:rgba(245,166,35,0.08);border:0.0625rem solid rgba(245,166,35,0.28);border-radius:0.375rem;padding:0.3rem 0.5rem;margin-bottom:0.5rem;cursor:help}
/* Segmentation: hover tooltip (reuses .qa-tooltip look). A full-height transparent hit-area
   per quarter means you can hover anywhere in a column to see every segment, not just a bar. */
.seg-chart-wrap{position:relative}
.seg-svg .seg-col-hit{cursor:pointer;transition:fill .1s ease}
.seg-svg .seg-col-hit:hover{fill:rgba(255,255,255,0.05)}
/* Segment growth cards (YoY) — standard .lens-metric grid */
.seg-growth{margin-top:0.75rem}
.seg-growth .lens-metric-grid{margin-bottom:0}
.seg-growth .lens-metric-label .seg-mix-dot{width:0.5rem;height:0.5rem;flex:0 0 auto}
/* Honest note shown instead of growth cards when the segment split can't be reconciled to revenue */
.seg-recon-note{cursor:default;line-height:1.5;margin-bottom:0}
.seg-recon-note b{color:var(--snow)}

/* ─── Workforce & Productivity ─────────────────────────────────── */
.wf-section{margin:1.25rem 0;padding:1rem 1.1rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.75rem}
.wf-head{font-weight:600;font-size:0.95rem;color:var(--text-primary);display:flex;align-items:center;gap:0.4rem;margin-bottom:0.6rem}
.wf-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.75rem}
/* Card fonts standardized to the .lens-metric scale (fm 0.59375 label, fd 1rem value). */
.wf-card{background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.5rem;padding:0.625rem 0.75rem}
.wf-lbl{font-family:var(--fm);font-size:0.59375rem;font-weight:600;color:var(--fog);text-transform:uppercase;letter-spacing:.06em}
.wf-val{font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow);line-height:1;letter-spacing:-.01em;margin-top:0.25rem;font-variant-numeric:tabular-nums}
.wf-sub{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);margin-top:0.1875rem}
.wf-sub.up{color:var(--green)}.wf-sub.down{color:#ff7560}
.wf-spark{width:100%;height:2.1rem;display:block;margin:0.2rem 0}
.wf-spark-card{display:flex;flex-direction:column;justify-content:center}

/* ─── Ownership & Insider Activity ─────────────────────────────── */
.own-section{margin:1.1rem 0;padding:1rem 1.1rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.75rem}
.own-head{font-weight:600;font-size:0.95rem;color:var(--text-primary);display:flex;align-items:center;gap:0.4rem}
.own-sub{font-size:0.75rem;color:var(--fog);margin:0.15rem 0 0.7rem}
.own-cards{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem}
@media (max-width:52rem){.own-cards{grid-template-columns:1fr}.wf-grid{grid-template-columns:1fr}}
.own-card{background:var(--bg3);border:0.0625rem solid var(--rim);border-radius:0.5rem;padding:0.7rem 0.85rem}
.own-card-head{font-size:0.8rem;font-weight:600;color:var(--cloud);margin-bottom:0.45rem;display:flex;justify-content:space-between;align-items:center}
.own-asof{font-size:0.68rem;color:var(--fog);font-weight:400}
.own-row{display:flex;justify-content:space-between;font-size:0.8rem;padding:0.15rem 0;color:var(--fog)}
.own-row b{color:var(--text-primary);font-variant-numeric:tabular-nums}
.own-row b.up{color:var(--green)}.own-row b.down{color:#ff7560}
.own-verdict{margin-top:0.5rem;padding-top:0.45rem;border-top:0.0625rem solid var(--rim);font-size:0.8rem;font-weight:600}
.own-verdict.up{color:var(--green)}.own-verdict.down{color:#ff7560}
.own-ins-list{margin-top:0.5rem;display:flex;flex-direction:column;gap:0.25rem}
.own-ins-row{display:grid;grid-template-columns:0.5rem 1fr auto auto;align-items:center;gap:0.5rem;font-size:0.75rem}
.own-ins-dot{width:0.5rem;height:0.5rem;border-radius:50%}
.own-ins-dot.up{background:var(--green)}.own-ins-dot.down{background:#ff7560}
.own-ins-name{color:var(--cloud);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.own-ins-act{color:var(--fog)}
.own-ins-val{color:var(--text-primary);font-variant-numeric:tabular-nums}
.own-empty{font-size:0.75rem;color:var(--fog);font-style:italic}

/* Slightly tighter card padding so things feel composed, not stretched */
.lens-detail .lens-chart{padding:0.875rem 1rem 0.875rem}

/* ═════════════════════════════════════════════════════════════════
   Next Earnings — 5-Year Track Record block
   ═════════════════════════════════════════════════════════════════ */
.earn-next-history{
  margin-top:0.625rem;
  padding:0.625rem 0.75rem 0.6875rem 0.75rem;
  background:linear-gradient(180deg,rgba(90,200,250,0.04) 0%,rgba(90,200,250,0.01) 100%);
  border:0.0625rem solid rgba(90,200,250,0.18);
  border-radius:0.4375rem;
}
.earn-next-history-head{
  display:flex;align-items:center;gap:0.4375rem;
  margin-bottom:0.5rem;
}
.earn-next-history-head svg{
  width:0.75rem;height:0.75rem;color:#5ac8fa;
  filter:drop-shadow(0 0 3px rgba(90,200,250,0.4));
  flex-shrink:0;
}
.earn-next-history-label{
  font-family:var(--fm);font-size:0.625rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:#5ac8fa;
}
.earn-next-history-n{
  font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em;
  margin-left:auto;
}

.earn-next-history-stats{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0.375rem;
}
.earn-next-hist-stat{
  display:flex;flex-direction:column;align-items:flex-start;gap:0.125rem;
  padding:0.375rem 0.4375rem;
  background:rgba(0,0,0,0.22);
  border:0.0625rem solid rgba(255,255,255,0.04);
  border-radius:0.3125rem;
  min-width:0;
}
.earn-next-hist-num{
  font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow);letter-spacing:-.01em;line-height:1.05;
}
.earn-next-hist-num.green{color:var(--green);text-shadow:0 0 8px rgba(204,255,0,0.25)}
.earn-next-hist-num.red{color:#ff7560;text-shadow:0 0 8px rgba(255,117,96,0.25)}
.earn-next-hist-lbl{
  font-family:var(--fm);font-size:0.5625rem;color:var(--fog);
  letter-spacing:.04em;line-height:1.2;
}
.earn-next-hist-sub{
  font-family:var(--fm);font-size:0.5625rem;color:rgba(204,255,0,0.7);
  letter-spacing:.02em;margin-top:0.0625rem;
}

/* ═════════════════════════════════════════════════════════════════
   Earnings Call Transcript — beautified panel
   Replaces the old .lens-strip wrapper. Uses a violet/purple accent
   so it stands apart from the blue (next) + green (last) panels.
   ═════════════════════════════════════════════════════════════════ */
.earn-tx{
  position:relative;
  padding:0.875rem 1rem 0.875rem 1.125rem;
  background:linear-gradient(180deg,var(--bg2) 0%,var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.625rem;
  overflow:hidden;
  cursor:pointer;
  transition:border-color .2s, transform .15s;
}
.earn-tx:hover{
  border-color:rgba(191,143,255,0.3);
  transform:translateY(-0.0625rem);
}
.earn-tx:hover .earn-tx-glow{opacity:1}

.earn-tx-stripe{
  position:absolute;left:0;top:0.5rem;bottom:0.5rem;width:0.1875rem;
  background:linear-gradient(180deg,#bf8fff 0%,rgba(191,143,255,0.3) 100%);
  box-shadow:0 0 6px rgba(191,143,255,0.4);
  border-radius:0 0.125rem 0.125rem 0;
}
.earn-tx-glow{
  position:absolute;top:-50%;right:-20%;width:60%;height:200%;
  background:radial-gradient(ellipse at center,rgba(191,143,255,0.06) 0%,transparent 70%);
  pointer-events:none;opacity:0.5;transition:opacity .3s;
}

.earn-tx-head{
  display:grid;grid-template-columns:auto 1fr auto;gap:0.75rem;align-items:center;
  margin-bottom:0.6875rem;
}
.earn-tx-icon{
  position:relative;
  width:2.125rem;height:2.125rem;display:flex;align-items:center;justify-content:center;
  color:#bf8fff;
  background:linear-gradient(135deg,rgba(191,143,255,0.12) 0%,rgba(191,143,255,0.04) 100%);
  border:0.0625rem solid rgba(191,143,255,0.3);
  border-radius:0.5rem;
  box-shadow:inset 0 0 8px rgba(191,143,255,0.08);
  flex-shrink:0;
}
.earn-tx-icon svg{width:1.125rem;height:1.125rem;filter:drop-shadow(0 0 3px rgba(191,143,255,0.4))}
.earn-tx-icon-pulse{
  position:absolute;top:-0.125rem;right:-0.125rem;
  width:0.5rem;height:0.5rem;border-radius:50%;
  background:radial-gradient(circle,#fff 0%,#bf8fff 60%,transparent 100%);
  box-shadow:0 0 6px rgba(191,143,255,0.8);
  animation:txpulse 2.2s ease-in-out infinite;
}
@keyframes txpulse{0%,100%{opacity:0.45;transform:scale(0.9)}50%{opacity:1;transform:scale(1.15)}}

.earn-tx-titles{min-width:0;display:flex;flex-direction:column;gap:0.1875rem}
.earn-tx-title-row{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}
.earn-tx-title{
  font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;line-height:1.1;
}
.earn-tx-quarter-badge{
  font-family:var(--fm);font-size:0.625rem;font-weight:800;
  color:#bf8fff;letter-spacing:.08em;text-transform:uppercase;
  padding:0.1875rem 0.4375rem;
  background:linear-gradient(135deg,rgba(191,143,255,0.12) 0%,rgba(191,143,255,0.04) 100%);
  border:0.0625rem solid rgba(191,143,255,0.32);
  border-radius:0.3125rem;
}
.earn-tx-meta{
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.02em;
}

.earn-tx-actions{display:flex;align-items:center;gap:0.5rem;flex-shrink:0}
/* Clear, button-like call-to-action — this strip is clickable. */
.earn-tx-cta{
  display:inline-flex;align-items:center;gap:0.375rem;
  font-size:0.6875rem;font-weight:700;letter-spacing:.01em;
  color:#d9c2ff;
  padding:0.3125rem 0.625rem;
  background:linear-gradient(135deg,rgba(191,143,255,0.16) 0%,rgba(191,143,255,0.06) 100%);
  border:0.0625rem solid rgba(191,143,255,0.4);
  border-radius:0.4375rem;
  white-space:nowrap;
  transition:background .15s, border-color .15s, color .15s;
}
.earn-tx-cta svg{width:0.8125rem;height:0.8125rem}
.earn-tx:hover .earn-tx-cta{
  color:#fff;
  background:linear-gradient(135deg,rgba(191,143,255,0.28) 0%,rgba(191,143,255,0.12) 100%);
  border-color:rgba(191,143,255,0.6);
}
.earn-tx-pending{
  display:inline-flex;align-items:center;gap:0.3125rem;
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  color:var(--gold);letter-spacing:.1em;text-transform:uppercase;
  padding:0.25rem 0.5rem 0.25rem 0.4375rem;
  background:linear-gradient(135deg,rgba(245,166,35,0.08) 0%,rgba(245,166,35,0.03) 100%);
  border:0.0625rem solid rgba(245,166,35,0.32);
  border-radius:0.3125rem;
}
.earn-tx-pending-dot{
  width:0.375rem;height:0.375rem;border-radius:50%;
  background:radial-gradient(circle,#ffd700 0%,#f5a623 70%);
  box-shadow:0 0 4px rgba(245,166,35,0.7);
  animation:txpulse 2.4s ease-in-out infinite;
}
.earn-tx-chevron{
  display:inline-flex;align-items:center;justify-content:center;
  width:1.5rem;height:1.5rem;
  color:var(--fog);
  border:0.0625rem solid var(--rim);
  border-radius:50%;
  transition:transform .25s, color .15s, border-color .15s;
}
.earn-tx-chevron svg{width:0.75rem;height:0.75rem}
.earn-tx:hover .earn-tx-chevron{color:var(--snow);border-color:rgba(191,143,255,0.4)}
.earn-tx.expanded .earn-tx-chevron{transform:rotate(180deg);color:#bf8fff;border-color:rgba(191,143,255,0.5)}

.earn-tx-topics{
  display:flex;flex-wrap:wrap;gap:0.3125rem;
  padding-top:0.625rem;
  border-top:0.0625rem solid var(--rim);
}
.earn-tx-chip{
  font-family:var(--fm);font-size:0.625rem;font-weight:600;
  color:var(--cloud);letter-spacing:.02em;
  padding:0.25rem 0.5rem;
  background:linear-gradient(135deg,rgba(191,143,255,0.06) 0%,rgba(191,143,255,0.02) 100%);
  border:0.0625rem solid rgba(191,143,255,0.2);
  border-radius:1rem;
  transition:all .15s;
}
.earn-tx-chip:hover{
  background:rgba(191,143,255,0.1);
  border-color:rgba(191,143,255,0.4);
  color:var(--snow);
}

/* ═════════════════════════════════════════════════════════════════
   Key Ratios — stubbed lens-detail page (pending real-data wire-up).
   Visual scaffolding only; categories preview what will be populated.
   ═════════════════════════════════════════════════════════════════ */
/* ═══════════════════════════════════════════════════════════════════
   Key Ratios — real-data diagnostic dashboard (live FMP)
   ═══════════════════════════════════════════════════════════════════ */
.kr-dashboard{margin-top:0.25rem}
/* Quality scores row */
.kr-scores-row{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0.875rem;margin-bottom:1.25rem;
}
@media (max-width:760px){.kr-scores-row{grid-template-columns:1fr}}
.kr-score{
  display:flex;align-items:center;gap:0.875rem;padding:0.875rem 1rem;
  background:rgba(0,0,0,0.20);border:0.0625rem solid rgba(255,255,255,0.05);border-radius:0.625rem;
}
.kr-score-pending{opacity:0.7}
.kr-score-meta{min-width:0}
.kr-score-name{font-size:0.8125rem;font-weight:700;color:var(--ink)}
.kr-score-sub{font-size:0.6875rem;color:var(--fog);line-height:1.4;margin-top:0.125rem}
.kr-score-sub b{color:var(--ash)}
/* Piotroski dial */
.kr-dial{position:relative;width:3.25rem;height:3.25rem;flex-shrink:0}
.kr-dial svg{width:100%;height:100%}
.kr-dial-bg{fill:none;stroke:rgba(255,255,255,0.08);stroke-width:6}
.kr-dial-fg{fill:none;stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset 0.6s ease}
.kr-dial.good .kr-dial-fg{stroke:var(--green)}
.kr-dial.mid .kr-dial-fg{stroke:var(--gold)}
.kr-dial.bad .kr-dial-fg{stroke:#e13535}
.kr-dial-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:0.9375rem;font-weight:800;color:var(--ink)}
.kr-dial-num span{font-size:0.625rem;color:var(--fog);font-weight:600}
/* Altman zone meter */
.kr-zmeter{flex-shrink:0;width:7.5rem}
.kr-zmeter-num{font-size:1.125rem;font-weight:800;line-height:1;margin-bottom:0.3125rem}
.kr-zmeter.good .kr-zmeter-num{color:var(--green)}
.kr-zmeter.mid .kr-zmeter-num{color:var(--gold)}
.kr-zmeter.bad .kr-zmeter-num{color:#e13535}
.kr-zmeter-track{position:relative;height:0.375rem;border-radius:0.25rem;display:flex;overflow:hidden}
.kr-zmeter-z1{flex:1.81;background:rgba(225,53,53,0.5)}
.kr-zmeter-z2{flex:1.18;background:rgba(245,166,35,0.5)}
.kr-zmeter-z3{flex:3;background:rgba(204,255,0,0.5)}
/* Beneish meter: clean (green) left of threshold, flag (red) right */
.kr-bz-clean{flex:55.5;background:rgba(204,255,0,0.5)}
.kr-bz-flag{flex:44.5;background:rgba(225,53,53,0.5)}
.kr-zmeter-dot{position:absolute;top:50%;width:0.625rem;height:0.625rem;border-radius:50%;
  background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 0 0.125rem rgba(0,0,0,0.5)}
.kr-zmeter-scale{display:flex;justify-content:space-between;font-size:0.5rem;color:var(--fog);
  text-transform:uppercase;letter-spacing:0.03em;margin-top:0.25rem}
/* Family grid */
.kr-fam-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.875rem}
@media (max-width:760px){.kr-fam-grid{grid-template-columns:1fr}}
.kr-fam{
  background:rgba(0,0,0,0.18);border:0.0625rem solid rgba(255,255,255,0.05);
  border-radius:0.625rem;padding:0.875rem 1rem;
}
.kr-fam-head{display:flex;align-items:baseline;gap:0.5rem;margin-bottom:0.625rem;
  padding-bottom:0.5rem;border-bottom:0.0625rem solid rgba(255,255,255,0.06)}
.kr-fam-title{font-size:0.8125rem;font-weight:700;color:var(--ink)}
.kr-fam-sub{font-size:0.625rem;color:var(--fog)}
.kr-metrics{display:flex;flex-direction:column;gap:0.625rem}
.kr-metric{display:flex;flex-direction:column;gap:0.25rem}
.kr-metric-top{display:flex;align-items:baseline;justify-content:space-between;gap:0.5rem}
.kr-metric-label{font-size:0.75rem;color:var(--ash)}
.kr-metric-value{font-size:0.875rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.kr-metric-mid{display:flex;align-items:center;justify-content:space-between;gap:0.625rem;min-height:1.25rem}
.kr-spark{width:4rem;height:1.25rem;flex-shrink:0;opacity:0.85}
.kr-metric-bench{display:flex;align-items:center;gap:0.4375rem;margin-left:auto;font-size:0.625rem;color:var(--fog)}
.kr-bench-label{white-space:nowrap}
.kr-bench-badge{font-weight:700;padding:0.0625rem 0.375rem;border-radius:0.625rem;white-space:nowrap}
.kr-bench-badge.good{color:var(--green);background:rgba(204,255,0,0.12)}
.kr-bench-badge.bad{color:var(--gold);background:rgba(245,166,35,0.12)}
.kr-foot{display:flex;align-items:center;gap:0.4375rem;margin-top:1rem;
  font-size:0.625rem;color:var(--fog)}
.kr-foot svg{width:0.875rem;height:0.875rem;flex-shrink:0}

.key-ratios-stub{
  position:relative;
  padding:2rem 1.5rem 1.75rem;
  background:linear-gradient(180deg,var(--bg2) 0%,var(--bg1) 100%);
  border:0.0625rem dashed rgba(255,142,182,0.32);
  border-radius:0.625rem;
  text-align:center;
  overflow:hidden;
}
.key-ratios-stub::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 60% 50% at 50% 0%, rgba(255,142,182,0.06) 0%, transparent 70%);
  pointer-events:none;
}
.key-ratios-stub > *{position:relative;z-index:1}

.key-ratios-stub-icon{
  width:3rem;height:3rem;margin:0 auto 0.875rem;
  display:flex;align-items:center;justify-content:center;
  color:#ff8eb6;
  background:linear-gradient(135deg,rgba(255,142,182,0.1) 0%,rgba(255,142,182,0.02) 100%);
  border:0.0625rem solid rgba(255,142,182,0.28);
  border-radius:0.625rem;
  box-shadow:0 0 16px rgba(255,142,182,0.18), inset 0 0 12px rgba(255,142,182,0.06);
}
.key-ratios-stub-icon svg{width:1.5rem;height:1.5rem;filter:drop-shadow(0 0 4px rgba(255,142,182,0.4))}

.key-ratios-stub-title{
  font-family:var(--fd);font-size:1.0625rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;margin-bottom:0.5rem;
}
.key-ratios-stub-sub{
  font-size:0.8125rem;line-height:1.55;color:var(--cloud);
  max-width:40rem;margin:0 auto 1.5rem;
}

.key-ratios-stub-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0.6875rem;
  margin-bottom:1.25rem;text-align:left;
}
@media (max-width:54rem){.key-ratios-stub-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:38rem){.key-ratios-stub-grid{grid-template-columns:1fr}}

.key-ratios-stub-card{
  position:relative;
  padding:0.75rem 0.875rem 0.8125rem 1rem;
  background:rgba(0,0,0,0.22);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
}
.key-ratios-stub-card::before{
  content:'';position:absolute;left:0;top:0.4375rem;bottom:0.4375rem;width:0.1875rem;
  background:linear-gradient(180deg,#ff8eb6 0%,rgba(255,142,182,0.3) 100%);
  border-radius:0 0.125rem 0.125rem 0;
  box-shadow:0 0 4px rgba(255,142,182,0.35);
}
.key-ratios-stub-card-label{
  font-family:var(--fm);font-size:0.625rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:#ff8eb6;margin-bottom:0.4375rem;
}
.key-ratios-stub-card-list{display:flex;flex-direction:column;gap:0.25rem}
.key-ratios-stub-card-list span{
  font-size:0.75rem;color:var(--cloud);line-height:1.35;
  padding-left:0.6875rem;position:relative;
}
.key-ratios-stub-card-list span::before{
  content:'';position:absolute;left:0;top:0.46875rem;
  width:0.25rem;height:0.0625rem;background:rgba(255,142,182,0.45);
}

.key-ratios-stub-foot{
  display:inline-flex;align-items:center;gap:0.4375rem;
  font-family:var(--fm);font-size:0.625rem;font-weight:700;
  color:var(--gold);letter-spacing:.1em;text-transform:uppercase;
  padding:0.3125rem 0.625rem;
  background:rgba(245,166,35,0.06);
  border:0.0625rem solid rgba(245,166,35,0.28);
  border-radius:0.3125rem;
}
.key-ratios-stub-foot-dot{
  width:0.4375rem;height:0.4375rem;border-radius:50%;
  background:radial-gradient(circle,#ffd700 0%,#f5a623 70%);
  box-shadow:0 0 5px rgba(245,166,35,0.7);
  animation:aipulse 2.4s ease-in-out infinite;
}

/* ── Financial Health Score banner (top of Key Ratios) ── */
.kr-health{
  display:flex;align-items:center;gap:1.25rem;
  margin:0 0 1.25rem;padding:1.125rem 1.375rem;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.07);
  border-radius:0.75rem;
}
.kr-health-col{display:flex;flex-direction:column;align-items:center;gap:0.25rem;flex-shrink:0}
.kr-health-grade{
  font-family:var(--fd);font-size:2.5rem;font-weight:900;line-height:1;
  text-align:center;letter-spacing:-0.02em;
}
.kr-health-grade.good{color:var(--green)}
.kr-health-grade.neutral{color:var(--cloud)}
.kr-health-grade.warn{color:var(--gold)}
.kr-health-lbl{
  font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:0.05em;
  text-transform:uppercase;color:var(--ash);text-align:center;line-height:1.3;
}
.kr-health-lbl span{display:block;font-weight:500;color:var(--fog);letter-spacing:0.02em}
.kr-health-div{width:0.0625rem;align-self:stretch;background:var(--rim);margin:0.25rem 0.25rem}
.kr-health-body{min-width:0;flex:1}
.kr-health-title{
  display:flex;align-items:center;gap:0.4375rem;
  font-size:0.9375rem;font-weight:700;color:var(--ink);margin-bottom:0.25rem;
}
.kr-health-title svg{width:1rem;height:1rem;color:var(--green)}
.kr-health-score{
  margin-left:0.375rem;font-family:var(--fm);font-size:0.6875rem;font-weight:600;
  color:var(--fog);letter-spacing:0.02em;
}
.kr-health-sub{font-size:0.8125rem;color:var(--fog);line-height:1.5}

/* ═══════════════════════════════════════════════════════════════════
   Key Ratios dashboard — Piotroski / Altman cards, Key Metrics,
   Efficiency Metrics, and headline highlight cards.
   ═══════════════════════════════════════════════════════════════════ */
.kr-top-row{display:grid;grid-template-columns:1fr 1fr;gap:0.875rem;margin-bottom:0.875rem}
@media (max-width:760px){.kr-top-row{grid-template-columns:1fr}}

.kr-card{
  background:var(--bg2);border:0.0625rem solid var(--rim);
  border-radius:0.625rem;overflow:hidden;
}
.kr-card-head{
  display:flex;align-items:center;gap:0.75rem;padding:0.875rem 1rem;
  cursor:pointer;user-select:none;transition:background 0.15s;
}
.kr-card-head:hover{background:rgba(255,255,255,0.02)}
.kr-card-head-left{flex:1;min-width:0}
.kr-card-title{display:block;font-size:0.875rem;font-weight:700;color:var(--ink)}
.kr-card-sub{display:block;font-size:0.6875rem;color:var(--fog);line-height:1.35;margin-top:0.125rem}
.kr-badge{
  flex-shrink:0;font-family:var(--fm);font-size:0.5625rem;font-weight:700;
  letter-spacing:0.08em;padding:0.1875rem 0.4375rem;border-radius:0.3125rem;
}
.kr-badge.good{color:var(--green);background:rgba(204,255,0,0.12);border:0.0625rem solid rgba(204,255,0,0.25)}
.kr-badge.mid{color:var(--gold);background:rgba(245,166,35,0.12);border:0.0625rem solid rgba(245,166,35,0.28)}
.kr-badge.bad{color:#ff6b6b;background:rgba(225,53,53,0.12);border:0.0625rem solid rgba(225,53,53,0.3)}
.kr-collapse-hint{
  flex-shrink:0;display:inline-flex;align-items:center;gap:0.25rem;
  font-size:0.625rem;color:var(--fog);white-space:nowrap;
}
.kr-collapse-hint svg{width:0.75rem;height:0.75rem;transition:transform 0.2s}
.kr-card.collapsed .kr-collapse-hint svg{transform:rotate(180deg)}
.kr-card.collapsed .kr-card-body{display:none}
.kr-card-body{padding:0 1rem 1rem}

.kr-score-big{font-family:var(--fd);font-size:2.5rem;font-weight:800;line-height:1;margin-bottom:0.75rem}
.kr-score-big span{font-family:var(--fb);font-size:1.125rem;font-weight:600;color:var(--fog)}
.kr-score-big.good{color:var(--green)}
.kr-score-big.mid{color:var(--gold)}
.kr-score-big.bad{color:#ff6b6b}

.kr-segbar{display:flex;gap:0.25rem;margin-bottom:1rem}
.kr-seg{flex:1;height:0.375rem;border-radius:0.1875rem;background:rgba(255,255,255,0.07)}
.kr-seg.on.good{background:var(--green)}
.kr-seg.on.mid{background:linear-gradient(90deg,var(--gold),#ffb347)}
.kr-seg.on.bad{background:#e13535}

.kr-crit-list{display:flex;flex-direction:column;gap:0.5rem}
.kr-crit{display:flex;align-items:center;gap:0.5rem;font-size:0.75rem;color:var(--cloud)}
.kr-crit svg{width:0.875rem;height:0.875rem;flex-shrink:0}
.kr-crit.pass{color:var(--cloud)}
.kr-crit.pass .kr-tick{color:var(--green)}
.kr-crit.fail{color:var(--fog)}
.kr-crit.fail .kr-cross{color:#e13535}

.kr-az-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:0.75rem}
.kr-az-legend{display:flex;flex-direction:column;gap:0.25rem;font-size:0.625rem;color:var(--fog)}
.kr-az-legend span{display:flex;align-items:center;gap:0.375rem;white-space:nowrap}
.kr-dot{width:0.5rem;height:0.5rem;border-radius:0.125rem;flex-shrink:0;display:inline-block}
.kr-dot.good{background:var(--green)}
.kr-dot.mid{background:var(--gold)}
.kr-dot.bad{background:#e13535}
.kr-zbar{display:flex;height:0.375rem;border-radius:0.1875rem;overflow:hidden;margin-bottom:1rem}
.kr-zbar-bad{flex:1.81;background:rgba(225,53,53,0.55)}
.kr-zbar-mid{flex:1.18;background:rgba(245,166,35,0.55)}
.kr-zbar-good{flex:3;background:rgba(204,255,0,0.55)}

.kr-comp-list{display:flex;flex-direction:column;gap:0.5rem}
.kr-comp{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:0.75rem;font-size:0.75rem}
.kr-comp-label{color:var(--ash)}
.kr-comp-weight{font-family:var(--fm);font-size:0.625rem;color:var(--fog)}
.kr-comp-val{font-family:var(--fm);font-weight:700;color:var(--green);text-align:right;min-width:3.5rem;font-variant-numeric:tabular-nums}

.kr-block{
  background:var(--bg2);border:0.0625rem solid var(--rim);
  border-radius:0.625rem;padding:1rem;margin-bottom:0.875rem;
}
.kr-block-head{display:flex;align-items:center;gap:0.5rem;font-size:0.875rem;font-weight:700;color:var(--ink);margin-bottom:0.875rem}
.kr-block-hint{margin-left:auto;font-size:0.625rem;font-weight:400;color:var(--fog)}
.kr-block-icon{
  display:inline-grid;place-items:center;width:1.25rem;height:1.25rem;border-radius:0.3125rem;
  background:rgba(204,255,0,0.1);color:var(--green);font-size:0.75rem;
}
.kr-kv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem 1.25rem}
@media (max-width:640px){.kr-kv-grid{grid-template-columns:repeat(2,1fr)}}
.kr-kv-label{font-size:0.6875rem;color:var(--fog);margin-bottom:0.25rem}
.kr-kv-value{font-size:1.0625rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}

.kr-hi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0.875rem;margin-bottom:0.875rem}
@media (max-width:760px){.kr-hi-row{grid-template-columns:repeat(2,1fr)}}
.kr-hi-card{
  background:var(--bg2);border:0.0625rem solid var(--rim);
  border-radius:0.625rem;padding:1rem;position:relative;
  border-top:0.1875rem solid var(--rim2);
}
.kr-hi-card.good{border-top-color:var(--green)}
.kr-hi-card.mid{border-top-color:var(--gold)}
.kr-hi-card.warn{border-top-color:var(--gold)}
.kr-hi-label{font-size:0.6875rem;color:var(--fog);margin-bottom:0.375rem}
.kr-hi-value{font-family:var(--fd);font-size:1.75rem;font-weight:800;color:var(--ink);line-height:1;margin-bottom:0.5rem}
.kr-hi-card.good .kr-hi-value{color:var(--green)}
.kr-hi-badge{
  font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:0.06em;
  padding:0.125rem 0.4375rem;border-radius:0.3125rem;
}
.kr-hi-badge.good{color:var(--green);background:rgba(204,255,0,0.12)}
.kr-hi-badge.mid{color:var(--gold);background:rgba(245,166,35,0.12)}
.kr-hi-badge.warn{color:var(--gold);background:rgba(245,166,35,0.12)}

/* ── Price vs Fair Value (+ YouTuber targets) ── */
.kr-fv-verdict{font-family:var(--fd);font-size:1.5rem;font-weight:800;line-height:1.1;margin:0.25rem 0 0.125rem}
.kr-fv-verdict.good{color:var(--green)}
.kr-fv-verdict.warn{color:var(--red)}
.kr-fv-verdict.neutral{color:var(--cloud)}
.kr-fv-basis{font-size:0.6875rem;color:var(--fog);margin-bottom:1rem}
.kr-fv-bars{display:flex;flex-direction:column;gap:0.625rem}
.kr-fv-row{display:grid;grid-template-columns:9.5rem 1fr auto;align-items:center;gap:0.75rem}
.kr-fv-label{font-size:0.75rem;color:var(--ash);text-align:right}
.kr-fv-track{position:relative;height:0.5rem;border-radius:0.25rem;background:rgba(255,255,255,0.06);overflow:visible}
.kr-fv-fill{position:absolute;left:0;top:0;bottom:0;border-radius:0.25rem;min-width:0.25rem}
.kr-fv-val{font-family:var(--fm);font-size:0.8125rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right;min-width:5rem}
.kr-fv-up{font-family:var(--fm);font-size:0.6875rem;font-weight:600;margin-left:0.4375rem}
.kr-fv-up.up{color:var(--green)}
.kr-fv-up.down{color:var(--red)}
/* per-creator target rows */
.kr-fvt-h-row{display:flex;align-items:baseline;justify-content:space-between;gap:0.5rem;margin:1.25rem 0 0.625rem;padding-top:0.875rem;border-top:0.0625rem solid var(--rim)}
.kr-fvt-h{font-size:0.8125rem;font-weight:700;color:var(--ink)}
.kr-fvt-hsub{font-size:0.625rem;color:var(--fog)}
.kr-fvt-row{display:flex;align-items:center;gap:0.625rem;padding:0.4375rem 0}
.kr-fvt-av{width:1.75rem;height:1.75rem;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--bg3)}
.kr-fvt-av-fb{display:inline-grid;place-items:center;color:var(--ash);font-family:var(--fm);font-size:0.6875rem;font-weight:700;border:0.0625rem solid var(--rim)}
.kr-fvt-main{flex:1;min-width:0}
.kr-fvt-head{display:flex;align-items:baseline;gap:0.4375rem;margin-bottom:0.3125rem}
.kr-fvt-name{font-size:0.8125rem;font-weight:600;color:var(--ink)}
.kr-fvt-rec{font-size:0.625rem;color:var(--fog)}
.kr-fvt-barline{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:0.625rem}
.kr-fvt-cur{position:absolute;top:-0.125rem;bottom:-0.125rem;width:0.09375rem;background:rgba(255,255,255,0.65);transform:translateX(-50%)}
.kr-fvt-val{font-family:var(--fm);font-size:0.8125rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}

/* ── Ratio Explorer — 4-tab benchmarked metric cards ── */
.kre{margin-top:0.875rem;margin-bottom:0.875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.625rem;overflow:hidden}
.kre-tabs{display:flex;border-bottom:0.0625rem solid var(--rim)}
.kre-tab{
  flex:1;display:flex;align-items:center;justify-content:center;gap:0.4375rem;
  padding:0.875rem 0.5rem;background:transparent;border:none;
  border-bottom:0.125rem solid transparent;color:var(--fog);
  font-family:inherit;font-size:0.8125rem;font-weight:600;cursor:pointer;
  transition:color 0.15s,border-color 0.15s;white-space:nowrap;
}
.kre-tab:hover{color:var(--ash)}
.kre-tab.active{color:var(--green);border-bottom-color:var(--green)}
.kre-tab-icon{opacity:0.85}
.kre-panels{padding:1rem}
.kre-panel{display:none}
.kre-panel.active{display:block}
.kre-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.875rem}
@media (max-width:860px){.kre-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.kre-grid{grid-template-columns:1fr}}
.kre-card{background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:0.5rem;padding:0.875rem}
.kre-card-top{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;margin-bottom:0.5rem}
.kre-card-name{font-size:0.75rem;color:var(--ash);font-weight:500}
.kre-badge{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:0.04em;padding:0.125rem 0.4375rem;border-radius:0.3125rem;flex-shrink:0}
.kre-badge.good{color:var(--green);background:rgba(204,255,0,0.12)}
.kre-badge.watch{color:var(--gold);background:rgba(245,166,35,0.12)}
.kre-card-val{
  font-family:var(--fd);font-size:1.5rem;font-weight:800;color:var(--ink);
  font-variant-numeric:tabular-nums;line-height:1;margin-bottom:0.75rem;
  display:flex;align-items:baseline;gap:0.5rem;flex-wrap:wrap;
}
.kre-vs{font-family:var(--fb);font-size:0.6875rem;font-weight:400;color:var(--fog)}
.kre-bar{position:relative;height:0.4375rem;border-radius:0.21875rem;background:rgba(255,255,255,0.07);margin-bottom:0.375rem}
.kre-bar-fill{position:absolute;left:0;top:0;bottom:0;border-radius:0.21875rem;min-width:0.1875rem;transition:width 0.4s ease}
.kre-bar-fill.good{background:var(--green)}
.kre-bar-fill.watch{background:linear-gradient(90deg,var(--gold),#ffb347)}
.kre-bar-fill.neutral{background:rgba(122,140,255,0.55)}
.kre-mark{position:absolute;top:-0.125rem;bottom:-0.125rem;width:0.125rem;border-radius:0.0625rem;background:rgba(255,255,255,0.5);transform:translateX(-50%)}
.kre-scale{position:relative;height:0.875rem;font-size:0.5625rem;color:var(--fog);font-variant-numeric:tabular-nums}
.kre-scale-lo{position:absolute;left:0;opacity:0.7}
.kre-scale-hi{position:absolute;right:0;opacity:0.7}
.kre-scale-mid{position:absolute;transform:translateX(-50%);white-space:nowrap}

/* ── Competitor header (industry + logo chips + global toggle) ── */
.kre-cohead{display:flex;align-items:center;gap:0.875rem;flex-wrap:wrap;padding:0.875rem 1rem;border-bottom:0.0625rem solid var(--rim);background:rgba(255,255,255,0.015)}
.kre-cohead-l{display:flex;align-items:baseline;gap:0.4375rem;flex-wrap:wrap}
.kre-cohead-label{font-size:0.6875rem;color:var(--fog)}
.kre-cohead-ind{font-size:0.875rem;font-weight:700;color:var(--green)}
.kre-cohead-sub{font-size:0.625rem;color:var(--fog)}
.kre-colist{display:flex;align-items:center;gap:0.375rem;flex-wrap:wrap;margin-left:auto}
.kre-cochip{display:inline-flex;align-items:center;gap:0.375rem;padding:0.25rem 0.5rem 0.25rem 0.25rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:1rem;font-family:var(--fm);font-size:0.6875rem;color:var(--ash);transition:border-color 0.15s}
.kre-cochip:hover{border-color:var(--rim2)}
.kre-cochip.subject{background:rgba(204,255,0,0.1);border-color:rgba(204,255,0,0.35);color:var(--green);font-weight:700}
.kre-compare-all{flex-shrink:0;font-family:var(--fm);font-size:0.625rem;font-weight:700;letter-spacing:0.04em;color:var(--green);background:rgba(204,255,0,0.1);border:0.0625rem solid rgba(204,255,0,0.25);border-radius:0.375rem;padding:0.375rem 0.625rem;cursor:pointer;white-space:nowrap}
.kre-compare-all:hover{background:rgba(204,255,0,0.16)}

.kre-logo{position:relative;width:1.25rem;height:1.25rem;border-radius:0.3125rem;background:#fff;flex-shrink:0;overflow:hidden;display:inline-grid;place-items:center}
.kre-logo-img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff;padding:0.0625rem}
.kre-logo-init{font-family:var(--fm);font-size:0.5rem;font-weight:700;color:var(--mist)}
.kre-logo-fallback{background:var(--bg3);border:0.0625rem solid var(--rim)}
.kre-logo-fallback{color:var(--ash);font-family:var(--fm);font-size:0.5rem;font-weight:700}

/* ── Per-card expand + peer comparison rows ── */
.kre-expand{display:flex;align-items:center;justify-content:center;gap:0.3125rem;width:100%;margin-top:0.75rem;padding:0.4375rem;background:rgba(255,255,255,0.02);border:none;border-top:0.0625rem solid var(--rim);border-radius:0 0 0.45rem 0.45rem;color:var(--fog);font-family:inherit;font-size:0.6875rem;font-weight:600;cursor:pointer;transition:color 0.15s,background 0.15s}
.kre-expand:hover{color:var(--ash);background:rgba(255,255,255,0.04)}
.kre-expand svg{width:0.75rem;height:0.75rem;transition:transform 0.2s}
.kre-card.open .kre-expand svg{transform:rotate(180deg)}
.kre-peers{display:none;margin-top:0.625rem;padding:0.625rem;background:rgba(0,0,0,0.22);border:0.0625rem solid var(--rim);border-radius:0.5rem;flex-direction:column;gap:0.125rem}
.kre-card.open .kre-peers,.kre.kre-compare-on .kre-peers{display:flex}
.kre.kre-compare-on .kre-expand svg{transform:rotate(180deg)}
.kre-peers-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:0.375rem;padding:0 0.375rem;font-family:var(--fm);font-size:0.5625rem;letter-spacing:0.06em;text-transform:uppercase;color:var(--fog)}
.kre-peers-head-sub{color:var(--green);opacity:0.85}
.kre-prow{display:grid;grid-template-columns:1.125rem 1.25rem 4.25rem 1fr 3.25rem;align-items:center;gap:0.5rem;padding:0.3125rem 0.375rem;border-radius:0.375rem}
.kre-prow:hover{background:rgba(255,255,255,0.03)}
.kre-prow.subject{background:rgba(204,255,0,0.09);box-shadow:inset 0.1875rem 0 0 var(--green)}
.kre-prank{font-family:var(--fm);font-size:0.625rem;color:var(--mist);text-align:center}
.kre-prow.subject .kre-prank{color:var(--green);font-weight:700}
.kre-pticker{font-family:var(--fm);font-size:0.75rem;font-weight:600;color:var(--ash);display:flex;align-items:center;gap:0.3125rem;white-space:nowrap}
.kre-prow.subject .kre-pticker{color:var(--snow)}
.kre-you{font-family:var(--fm);font-size:0.5rem;font-weight:700;color:#000;background:var(--green);padding:0.0625rem 0.25rem;border-radius:0.625rem;letter-spacing:0.04em;text-transform:uppercase}
.kre-pbar{height:0.4375rem;border-radius:0.21875rem;background:rgba(255,255,255,0.06);overflow:hidden}
.kre-pbar-fill{height:100%;border-radius:0.21875rem;background:rgba(122,140,255,0.55)}
.kre-prow.subject .kre-pbar-fill{background:var(--green)}
.kre-pval{font-family:var(--fm);font-size:0.75rem;font-weight:700;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}
.kre-prow.subject .kre-pval{color:var(--green)}

/* ═════════════════════════════════════════════════════════════════
   AI Verdict canvas — full-stack AI synthesis dashboard (stubbed)
   ═════════════════════════════════════════════════════════════════ */
.aiv-wrap{display:flex;flex-direction:column;gap:1rem;max-width:78rem;margin:0 auto;padding:0.25rem 0}

/* ── Hero card ── */
.aiv-hero{
  position:relative;
  display:grid;grid-template-columns:1fr auto;gap:1.25rem;align-items:center;
  padding:1.125rem 1.25rem;
  background:
    linear-gradient(135deg, rgba(204,255,0,0.04) 0%, rgba(245,166,35,0.03) 50%, rgba(155,89,182,0.03) 100%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.75rem;
  overflow:hidden;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.04);
}
.aiv-hero-glow{
  position:absolute;top:-30%;right:-15%;width:50%;height:200%;
  background:radial-gradient(ellipse at center, rgba(245,166,35,0.08) 0%, transparent 60%);
  pointer-events:none;
}
.aiv-hero-left{display:flex;align-items:center;gap:1rem;min-width:0;position:relative;z-index:1}
.aiv-hero-stamp{
  position:relative;
  width:3rem;height:3rem;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);
  background:linear-gradient(135deg, rgba(245,166,35,0.15) 0%, rgba(245,166,35,0.04) 100%);
  border:0.0625rem solid rgba(245,166,35,0.32);
  border-radius:0.625rem;
  box-shadow:0 0 12px rgba(245,166,35,0.18), inset 0 0 12px rgba(245,166,35,0.06);
}
.aiv-hero-stamp svg{width:1.5rem;height:1.5rem;filter:drop-shadow(0 0 4px rgba(245,166,35,0.5))}
.aiv-hero-stamp-pulse{
  position:absolute;top:-0.1875rem;right:-0.1875rem;
  width:0.625rem;height:0.625rem;border-radius:50%;
  background:radial-gradient(circle, #fff 0%, var(--gold) 60%, transparent 100%);
  box-shadow:0 0 8px rgba(245,166,35,0.9);
  animation:aipulse 2.2s ease-in-out infinite;
}

.aiv-hero-titles{min-width:0;display:flex;flex-direction:column;gap:0.1875rem}
.aiv-hero-eyebrow{
  font-family:var(--fm);font-size:0.625rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold);
}
.aiv-hero-stance{
  font-family:var(--fd);font-size:1.375rem;font-weight:800;color:var(--snow);
  letter-spacing:-.01em;line-height:1.1;display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;
}
.aiv-hero-conf{
  font-family:var(--fm);font-size:0.6875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--green);
  padding:0.25rem 0.5rem;border-radius:0.3125rem;
  background:rgba(204,255,0,0.08);border:0.0625rem solid rgba(204,255,0,0.3);
}
.aiv-hero-meta{
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.02em;line-height:1.4;
}
.aiv-hero-meta b{color:var(--cloud);font-weight:600}

/* Score ring */
.aiv-hero-right{position:relative;z-index:1}
.aiv-score-ring{
  position:relative;width:6rem;height:6rem;
  display:flex;align-items:center;justify-content:center;flex-direction:column;
}
.aiv-score-ring svg{position:absolute;inset:0;width:100%;height:100%}
.aiv-score-num{
  font-family:var(--fd);font-size:2rem;font-weight:800;color:var(--snow);
  letter-spacing:-.02em;line-height:1;
  text-shadow:0 0 16px rgba(204,255,0,0.4);
  position:relative;z-index:1;
}
.aiv-score-lbl{
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);
  letter-spacing:.04em;margin-top:0.1875rem;position:relative;z-index:1;
}

/* ── Thesis quote block ── */
.aiv-thesis{
  position:relative;
  padding:1rem 1.25rem 1rem 3rem;
  background:linear-gradient(180deg, rgba(0,0,0,0.22) 0%, rgba(0,0,0,0.08) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5625rem;
}
.aiv-thesis-quote{
  position:absolute;left:0.75rem;top:0.125rem;
  font-family:var(--fd);font-size:3.25rem;line-height:1;color:var(--gold);opacity:0.4;
  user-select:none;
}
.aiv-thesis-body{
  font-size:0.9375rem;line-height:1.6;color:var(--cloud);letter-spacing:.005em;
}
.aiv-thesis-body b{color:var(--snow);font-weight:700}
.aiv-thesis-body em{color:var(--gold);font-style:italic}

/* ── Section labels ── */
.aiv-section-label{
  display:flex;align-items:center;gap:0.4375rem;
  font-family:var(--fm);font-size:0.6875rem;font-weight:800;
  color:var(--gold);letter-spacing:.12em;text-transform:uppercase;
  margin-top:0.25rem;
}
.aiv-section-label svg{width:0.875rem;height:0.875rem;filter:drop-shadow(0 0 3px rgba(245,166,35,0.4))}

/* ── Lens consensus grid ── */
.aiv-lens-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:0.5rem}
@media (max-width:64rem){.aiv-lens-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:42rem){.aiv-lens-grid{grid-template-columns:repeat(2,1fr)}}

.aiv-lens-cell{
  position:relative;
  padding:0.625rem 0.6875rem 0.6875rem 0.8125rem;
  background:linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.4375rem;
  display:flex;flex-direction:column;gap:0.1875rem;
}
.aiv-lens-cell::before{
  content:'';position:absolute;left:0;top:0.3125rem;bottom:0.3125rem;width:0.1875rem;
  border-radius:0 0.125rem 0.125rem 0;
}
.aiv-lens-cell.pass::before{background:linear-gradient(180deg,var(--green) 0%,rgba(204,255,0,0.3) 100%);box-shadow:0 0 4px rgba(204,255,0,0.4)}
.aiv-lens-cell.watch::before{background:linear-gradient(180deg,var(--gold) 0%,rgba(245,166,35,0.3) 100%);box-shadow:0 0 4px rgba(245,166,35,0.4)}
.aiv-lens-cell.fail::before{background:linear-gradient(180deg,#ff7560 0%,rgba(255,117,96,0.3) 100%);box-shadow:0 0 4px rgba(255,117,96,0.4)}
.aiv-lens-cell.pending::before{background:repeating-linear-gradient(180deg,rgba(255,255,255,0.25) 0 4px,transparent 4px 8px)}

.aiv-lens-name{
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;
  color:var(--cloud);letter-spacing:.02em;
}
.aiv-lens-v{
  font-family:var(--fd);font-size:0.8125rem;font-weight:800;
  letter-spacing:.04em;line-height:1;
}
.aiv-lens-cell.pass .aiv-lens-v{color:var(--green)}
.aiv-lens-cell.watch .aiv-lens-v{color:var(--gold)}
.aiv-lens-cell.fail .aiv-lens-v{color:#ff7560}
.aiv-lens-cell.pending .aiv-lens-v{color:var(--fog)}
.aiv-lens-sub{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em}

/* ── Two-column Signals / Risks (similar to AI Summary cols) ── */
.aiv-cols{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem}
@media (max-width:48rem){.aiv-cols{grid-template-columns:1fr}}

.aiv-col{
  position:relative;padding:0.875rem 1rem 0.875rem 1.125rem;
  background:linear-gradient(180deg, rgba(0,0,0,0.22) 0%, rgba(0,0,0,0.06) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
}
.aiv-col::before{content:'';position:absolute;left:0;top:0.5rem;bottom:0.5rem;width:0.1875rem;border-radius:0 0.125rem 0.125rem 0}
.aiv-col-pos::before{background:linear-gradient(180deg,var(--green) 0%,rgba(204,255,0,0.35) 100%);box-shadow:0 0 6px rgba(204,255,0,0.35)}
.aiv-col-neg::before{background:linear-gradient(180deg,#ff7560 0%,rgba(255,117,96,0.35) 100%);box-shadow:0 0 6px rgba(255,117,96,0.35)}

.aiv-col-title{
  display:flex;align-items:center;gap:0.4375rem;
  font-family:var(--fm);font-size:0.6875rem;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;margin-bottom:0.5rem;
}
.aiv-col-pos .aiv-col-title{color:var(--green)}
.aiv-col-neg .aiv-col-title{color:#ff7560}
.aiv-col-dot{width:0.4375rem;height:0.4375rem;border-radius:50%}
.aiv-col-pos .aiv-col-dot{background:var(--green);box-shadow:0 0 6px rgba(204,255,0,0.7)}
.aiv-col-neg .aiv-col-dot{background:#ff7560;box-shadow:0 0 6px rgba(255,117,96,0.7)}

.aiv-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:0.4375rem}
.aiv-list li{
  position:relative;padding-left:1rem;
  font-size:0.8125rem;line-height:1.55;color:var(--cloud);
}
.aiv-list li::before{
  content:'›';position:absolute;left:0;top:-0.0625rem;
  font-family:var(--fd);font-size:0.875rem;font-weight:800;line-height:1.55;opacity:0.85;
}
.aiv-col-pos .aiv-list li::before{color:var(--green)}
.aiv-col-neg .aiv-list li::before{color:#ff7560}
.aiv-list li b{color:var(--snow);font-weight:700}

/* ── Pattern matches ── */
.aiv-patterns{display:flex;flex-direction:column;gap:0.5rem}
.aiv-pattern{
  padding:0.75rem 0.9375rem;
  background:linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
}
.aiv-pattern-head{
  display:flex;justify-content:space-between;align-items:baseline;gap:0.75rem;
  margin-bottom:0.3125rem;flex-wrap:wrap;
}
.aiv-pattern-name{
  font-family:var(--fd);font-size:0.875rem;font-weight:700;color:var(--snow);
  letter-spacing:-.005em;
}
.aiv-pattern-stat{
  font-family:var(--fm);font-size:0.6875rem;font-weight:800;
  padding:0.1875rem 0.4375rem;border-radius:0.25rem;letter-spacing:.04em;flex-shrink:0;
}
.aiv-pattern-stat.green{color:var(--green);background:rgba(204,255,0,0.08);border:0.0625rem solid rgba(204,255,0,0.28)}
.aiv-pattern-stat.red{color:#ff7560;background:rgba(255,117,96,0.08);border:0.0625rem solid rgba(255,117,96,0.28)}
.aiv-pattern-body{font-size:0.75rem;line-height:1.55;color:var(--fog);letter-spacing:.005em}

/* ── 3 mini stat cards (Catalyst / Horizon / Sizing) ── */
.aiv-cols-3{display:grid;grid-template-columns:repeat(3,1fr);gap:0.625rem}
@media (max-width:48rem){.aiv-cols-3{grid-template-columns:1fr}}

.aiv-mini{
  padding:0.75rem 0.9375rem;
  background:linear-gradient(180deg, rgba(245,166,35,0.04) 0%, rgba(245,166,35,0.01) 100%);
  border:0.0625rem solid rgba(245,166,35,0.18);
  border-radius:0.5rem;
}
.aiv-mini-label{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold);
}
.aiv-mini-stat{
  font-family:var(--fd);font-size:1.125rem;font-weight:800;color:var(--snow);
  letter-spacing:-.015em;line-height:1.1;margin-top:0.25rem;
}
.aiv-mini-sub{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);margin-top:0.1875rem;letter-spacing:.01em}

/* ── Process pipeline ── */
.aiv-process{
  padding:0.875rem 1rem;
  background:linear-gradient(180deg, rgba(0,0,0,0.18) 0%, rgba(0,0,0,0.05) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
}
.aiv-process-head{
  display:flex;align-items:center;gap:0.4375rem;
  font-family:var(--fm);font-size:0.6875rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--cloud);margin-bottom:0.625rem;
}
.aiv-process-head svg{width:0.875rem;height:0.875rem;color:var(--gold)}
.aiv-process-pipeline{display:flex;flex-direction:column;gap:0.375rem}
.aiv-process-step{
  display:flex;align-items:center;gap:0.625rem;
  font-size:0.75rem;color:var(--cloud);line-height:1.45;
}
.aiv-process-step-n{
  font-family:var(--fd);font-size:0.625rem;font-weight:800;
  width:1.125rem;height:1.125rem;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(245,166,35,0.1);color:var(--gold);
  border:0.0625rem solid rgba(245,166,35,0.3);border-radius:50%;flex-shrink:0;
}
.aiv-process-step-txt{flex:1;min-width:0}

/* ── Foot ── */
.aiv-foot{
  display:flex;justify-content:space-between;align-items:center;
  padding:0.625rem 0.875rem;flex-wrap:wrap;gap:0.5rem;
  border-top:0.0625rem solid var(--rim);
}
.aiv-foot-left{
  display:flex;align-items:center;gap:0.4375rem;
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.01em;
}
.aiv-foot-left svg{width:0.8125rem;height:0.8125rem;color:var(--gold)}
.aiv-foot-left b{color:var(--cloud);font-weight:700}
.aiv-foot-right{
  display:inline-flex;align-items:center;gap:0.375rem;
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  color:var(--gold);letter-spacing:.12em;text-transform:uppercase;
  padding:0.25rem 0.5rem;
  background:rgba(245,166,35,0.06);border:0.0625rem solid rgba(245,166,35,0.28);
  border-radius:0.3125rem;
}
.aiv-foot-pending-dot{
  width:0.4375rem;height:0.4375rem;border-radius:50%;
  background:radial-gradient(circle,#ffd700 0%,#f5a623 70%);
  box-shadow:0 0 5px rgba(245,166,35,0.7);
  animation:aipulse 2.4s ease-in-out infinite;
}

/* ═════════════════════════════════════════════════════════════════
   v6 Mind-map — true radial layout. 6 rich branch nodes orbit
   a central hub, connected by curved gradient lines. Each branch:
   icon · name · master · score · brief · creator quote · verdict.
   ═════════════════════════════════════════════════════════════════ */
.mindmap-wrap.mm-v6,
.mindmap-wrap.mm-spine-v7{
  position:relative;
  padding:0.625rem 0.75rem 0.75rem;
  max-width:82rem;margin:0.625rem auto 0;
  /* no box: the map sits directly on the panel in both sidebar + fullscreen */
  background:none;
  border:none;
  border-radius:0;
  box-shadow:none;
}
.mindmap-wrap.mm-v6::before,
.mindmap-wrap.mm-spine-v7::before{display:none}  /* drop the dot-grid texture too */
.mm-v6 .mm-header,
.mm-spine-v7 .mm-header{
  text-align:center;margin-bottom:0.5rem;
}
.mm-v6 .mm-title,
.mm-spine-v7 .mm-title{
  font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);
  letter-spacing:-.01em;margin-bottom:0.125rem;
}
.mm-v6 .mm-sub,
.mm-spine-v7 .mm-sub{
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);
  letter-spacing:.04em;
}
.mm-v6 .mm-sub b,
.mm-spine-v7 .mm-sub b{color:var(--cloud)}

/* ═════════════════════════════════════════════════════════════════
   v7: Deep Analysis — central-spine org-chart
   HUB at top → 5 lenses branch in aligned L/R pairs + a centred tail.
   A single grid item draws the vertical spine (auto-sizes to height);
   each lens draws its own horizontal branch + node dot via ::before/::after.
   ═════════════════════════════════════════════════════════════════ */
/* The mind-map box is centred via JS margins and may overflow its own width while the
   visible (scaled) content stays in view — clip the horizontal so it never spawns a scrollbar. */
#canvasViewBody{overflow-x:hidden}

/* Gutter width between the two columns = where the spine + branch dots live. */
.mm-spine{
  --mm-gutter:3.25rem;               /* centre channel width */
  position:relative;
  display:grid;
  grid-template-columns:minmax(16rem,1fr) var(--mm-gutter) minmax(16rem,1fr);
  align-items:center;
  justify-items:stretch;
  row-gap:1.15rem;
  padding:0.5rem 0.25rem 0.75rem;
}

/* Vertical spine — placed in the centre gutter column, spans every row so it
   auto-stretches to the exact content height. Sits behind the cards + hub. */
.mm-spine-line{
  /* NB: rows are implicit, so `-1` would collapse to zero height — pin to the
     known 4 rows (hub + 2 lens pairs + centred tail). */
  grid-column:2;grid-row:1 / 5;
  justify-self:center;align-self:stretch;
  width:0.1875rem;
  margin:0.5rem 0 0.75rem;           /* just clears the hub above / ratios below */
  background:linear-gradient(180deg,
    rgba(204,255,0,0.85) 0%,
    rgba(204,255,0,0.55) 45%,
    rgba(204,255,0,0.30) 100%);
  border-radius:999px;
  box-shadow:0 0 12px rgba(204,255,0,0.5);
  z-index:1;pointer-events:none;
}

/* ── Central hub — top of the spine, spans full width & centred ── */
.mm-spine-hub{
  position:relative;
  grid-column:1 / -1;grid-row:1;
  justify-self:center;
  z-index:3;
  width:11rem;height:5.5rem;
  margin-bottom:0.25rem;
}
.mm-hub-glow{
  position:absolute;inset:-1.5rem;
  background:radial-gradient(ellipse at center,
    rgba(204,255,0,0.22) 0%,
    rgba(204,255,0,0.08) 30%,
    transparent 65%);
  border-radius:50%;
  pointer-events:none;
  animation:mmHubPulse 3.5s ease-in-out infinite;
}
@keyframes mmHubPulse{
  0%,100%{opacity:0.7;transform:scale(1)}
  50%{opacity:1;transform:scale(1.08)}
}
.mm-hub-inner{
  position:relative;width:100%;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.3125rem;
  background:linear-gradient(135deg, rgba(204,255,0,0.15) 0%, rgba(245,166,35,0.06) 100%),
             linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid rgba(204,255,0,0.45);
  border-radius:0.625rem;
  box-shadow:
    0 0 24px rgba(204,255,0,0.25),
    inset 0 0 16px rgba(204,255,0,0.08),
    inset 0 0.0625rem 0 rgba(255,255,255,0.08);
}
.mm-hub-inner::before{
  content:'';position:absolute;inset:0.1875rem;
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.4375rem;pointer-events:none;
}
.mm-hub-ticker{
  font-family:var(--fd);font-size:1.5rem;font-weight:900;color:var(--snow);
  letter-spacing:-.02em;line-height:1;
  text-shadow:0 0 18px rgba(204,255,0,0.55);
}
.mm-hub-label{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  color:var(--green);letter-spacing:.18em;text-transform:uppercase;
}

/* ── Branch node — compact-rich, ~18rem wide × ~9rem tall ── */
.mm-node{
  position:relative;z-index:2;
  display:flex;flex-direction:column;gap:0.4375rem;
  padding:0.5625rem 0.6875rem 0.5625rem;
  background:linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5625rem;
  cursor:pointer;
  transition:border-color .2s, transform .2s, box-shadow .25s, background .2s;
  align-self:center;
  width:100%;
  max-width:19rem;
  box-shadow:0 0.0625rem 0.125rem rgba(0,0,0,0.3);
}
.mm-node:hover{
  transform:translateY(-0.125rem);
  box-shadow:0 0.625rem 1.5rem rgba(0,0,0,0.5);
}

/* ── Spine lens placement — aligned L/R pairs + a centred tail ──
   Auto-flow: hub(row1) → fundamentals(L)+technicals(R) share row2,
   moat(L)+valuation(R) share row3, key_ratios centred on row4. */
.mm-lens{position:relative;z-index:2;max-width:20rem}
.mm-lens.lft{grid-column:1;justify-self:end}
.mm-lens.rgt{grid-column:3;justify-self:start}
.mm-lens.ctr{grid-column:1 / -1;justify-self:center;margin-top:0.15rem}

/* Horizontal branch — reaches from the card's inner edge to the spine centre
   (half the gutter). ::after = the line, ::before = the dot on the spine. */
.mm-lens.lft::after,
.mm-lens.rgt::after{
  content:'';position:absolute;top:50%;
  width:calc(var(--mm-gutter) / 2);height:0.125rem;
  transform:translateY(-50%);pointer-events:none;
}
.mm-lens.lft::after{right:calc(var(--mm-gutter) / -2);
  background:linear-gradient(90deg,rgba(204,255,0,0.15),rgba(204,255,0,0.75))}
.mm-lens.rgt::after{left:calc(var(--mm-gutter) / -2);
  background:linear-gradient(270deg,rgba(204,255,0,0.15),rgba(204,255,0,0.75))}
.mm-lens.lft::before,
.mm-lens.rgt::before{
  content:'';position:absolute;top:50%;
  width:0.5rem;height:0.5rem;border-radius:50%;
  background:var(--green);transform:translateY(-50%);
  box-shadow:0 0 0.5rem rgba(204,255,0,0.7);pointer-events:none;z-index:2;
}
.mm-lens.lft::before{right:calc(var(--mm-gutter) / -2 - 0.25rem)}
.mm-lens.rgt::before{left:calc(var(--mm-gutter) / -2 - 0.25rem)}
/* Branch/dot pick up the lens's own accent on hover */
.mm-lens[data-lens="fundamentals"]:hover::before,
.mm-lens[data-lens="moat"]:hover::before{background:var(--blue);box-shadow:0 0 0.5rem rgba(90,200,250,0.8)}
.mm-lens[data-lens="technicals"]:hover::before{background:var(--purple);box-shadow:0 0 0.5rem rgba(155,89,182,0.8)}
.mm-lens[data-lens="key_ratios"]:hover::before{background:#ff8eb6;box-shadow:0 0 0.5rem rgba(255,142,182,0.8)}

/* Head row: icon + (name+via) + score */
.mm-node-head{display:flex;align-items:center;gap:0.5rem}
.mm-node-icon{
  flex-shrink:0;
  width:2rem;height:2rem;
  display:grid;place-items:center;
  border-radius:0.4375rem;
}
.mm-node-icon svg{width:1.0625rem;height:1.0625rem}
.mm-node[data-lens="fundamentals"] .mm-node-icon{background:rgba(90,200,250,.1);color:var(--blue);border:0.0625rem solid rgba(90,200,250,.28)}
.mm-node[data-lens="technicals"]   .mm-node-icon{background:rgba(155,89,182,.1);color:var(--purple);border:0.0625rem solid rgba(155,89,182,.28)}
.mm-node[data-lens="valuation"]    .mm-node-icon{background:rgba(204,255,0,.08);color:var(--green);border:0.0625rem solid rgba(204,255,0,.28)}
.mm-node[data-lens="news"]         .mm-node-icon{background:rgba(245,166,35,.1);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.28)}
.mm-node[data-lens="moat"]         .mm-node-icon{background:rgba(90,200,250,.1);color:var(--blue);border:0.0625rem solid rgba(90,200,250,.28)}
.mm-node[data-lens="key_ratios"]   .mm-node-icon{background:rgba(255,142,182,.08);color:#ff8eb6;border:0.0625rem solid rgba(255,142,182,.28)}

.mm-node-text{min-width:0;flex:1;display:flex;flex-direction:column;gap:0.0625rem}
.mm-node-name{
  font-family:var(--fd);font-size:0.875rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;line-height:1.1;
}
.mm-node-via{
  font-family:var(--fm);font-size:0.5625rem;color:var(--fog);
  letter-spacing:.02em;line-height:1.15;
}
.mm-node-via b{color:var(--cloud);font-weight:600}

/* Score chip — big number on right of head. Use center align +
   explicit line-heights so the number isn't dropped to the baseline
   while the small "/10" pulls its top down. */
.mm-node-score{
  flex-shrink:0;
  display:inline-flex;align-items:center;gap:0.125rem;
  padding:0.3125rem 0.4375rem;
  background:linear-gradient(180deg, rgba(204,255,0,0.1) 0%, rgba(204,255,0,0.03) 100%);
  border:0.0625rem solid rgba(204,255,0,0.3);
  border-radius:0.375rem;
  line-height:1;
}
.mm-node-score.watch{
  background:linear-gradient(180deg, rgba(245,166,35,0.1) 0%, rgba(245,166,35,0.03) 100%);
  border-color:rgba(245,166,35,0.3);
}
.mm-node-score.pending{
  background:rgba(255,255,255,0.03);
  border:0.0625rem dashed rgba(255,255,255,0.18);
}
.mm-node-score-num{
  font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--green);
  letter-spacing:-.02em;line-height:1;
}
.mm-node-score.watch .mm-node-score-num{color:var(--gold)}
.mm-node-score.pending .mm-node-score-num{color:var(--fog)}
.mm-node-score.risk{
  background:linear-gradient(180deg, rgba(255,80,0,0.1) 0%, rgba(255,80,0,0.03) 100%);
  border-color:rgba(255,80,0,0.3);
}
.mm-node-score.risk .mm-node-score-num{color:#ff7560}
/* Taxonomy verdict word in the node chip — pill, smaller uppercase */
.mm-node-score.is-word{padding:0.25rem 0.5rem;border-radius:999px}
.mm-node-score.is-word .mm-node-score-num{font-size:0.625rem;font-weight:700;letter-spacing:0.02em;text-transform:uppercase}
.mm-node-score-max{
  font-family:var(--fm);font-size:0.5625rem;font-weight:700;
  color:var(--fog);letter-spacing:.04em;line-height:1;
  align-self:flex-end;padding-bottom:0.125rem;
}

/* TL;DR line */
.mm-node-tldr{
  font-size:0.6875rem;line-height:1.35;color:var(--cloud);
  letter-spacing:.005em;
  border-left:0.125rem solid var(--rim);
  padding-left:0.4375rem;
}

/* Creator quote with avatar */
.mm-node-quote{
  display:flex;align-items:flex-start;gap:0.4375rem;
  padding:0.375rem 0.4375rem;
  background:rgba(0,0,0,0.22);
  border:0.0625rem solid rgba(255,255,255,0.04);
  border-radius:0.4375rem;
}
.mm-node-avatar{
  flex-shrink:0;
  width:1.625rem;height:1.625rem;border-radius:50%;
  display:grid;place-items:center;
  font-family:var(--fd);font-size:0.5625rem;font-weight:800;color:#fff;
  letter-spacing:.02em;
  box-shadow:inset 0 0 0.25rem rgba(255,255,255,0.15), 0 0 0.25rem rgba(0,0,0,0.3);
  text-shadow:0 0.0625rem 0.125rem rgba(0,0,0,0.4);
}
.mm-node-avatar-empty{
  background:rgba(255,255,255,0.06) !important;
  color:var(--fog);
  border:0.0625rem dashed rgba(255,255,255,0.18);
  box-shadow:none;
}
.mm-node-quote-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:0.1875rem}
.mm-node-quote-text{
  font-size:0.6875rem;line-height:1.35;color:var(--cloud);font-style:italic;
  letter-spacing:.005em;
}
.mm-node-quote-empty .mm-node-quote-text{color:var(--fog);font-style:normal}
.mm-node-quote-who{
  font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.02em;
}
.mm-node-quote-who b{color:var(--green);font-weight:700}
.mm-node-quote-empty .mm-node-quote-who b{color:var(--fog)}

/* Foot row: verdict + CTA */
.mm-node-foot{
  display:flex;align-items:center;justify-content:space-between;gap:0.5rem;
  padding-top:0.0625rem;
}
.mm-node-verdict{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  padding:0.1875rem 0.4375rem;border-radius:0.25rem;
  letter-spacing:.08em;text-transform:uppercase;
}
.mm-node-verdict.pass{background:rgba(204,255,0,.1);color:var(--green);border:0.0625rem solid rgba(204,255,0,.3)}
.mm-node-verdict.watch{background:rgba(245,166,35,.1);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.3)}
.mm-node-verdict.fail{background:rgba(255,80,0,.1);color:#ff7560;border:0.0625rem solid rgba(255,80,0,.3)}
.mm-node-verdict.pending{background:rgba(255,255,255,.04);color:var(--fog);border:0.0625rem dashed rgba(255,255,255,.2)}
.mm-node-cta{
  font-family:var(--fm);font-size:0.5625rem;font-weight:700;
  color:var(--fog);letter-spacing:.04em;
  transition:color .15s, transform .15s;
}
.mm-node:hover .mm-node-cta{color:var(--snow);transform:translateX(0.1875rem)}

/* Per-lens hover glow — picks up its category color */
.mm-node[data-lens="fundamentals"]:hover{border-color:rgba(90,200,250,.5);background:linear-gradient(180deg,rgba(90,200,250,0.05),var(--bg1))}
.mm-node[data-lens="technicals"]:hover  {border-color:rgba(155,89,182,.5);background:linear-gradient(180deg,rgba(155,89,182,0.05),var(--bg1))}
.mm-node[data-lens="valuation"]:hover   {border-color:rgba(204,255,0,.5);background:linear-gradient(180deg,rgba(204,255,0,0.05),var(--bg1))}
.mm-node[data-lens="news"]:hover        {border-color:rgba(245,166,35,.5);background:linear-gradient(180deg,rgba(245,166,35,0.05),var(--bg1))}
.mm-node[data-lens="moat"]:hover        {border-color:rgba(90,200,250,.5);background:linear-gradient(180deg,rgba(90,200,250,0.05),var(--bg1))}
.mm-node[data-lens="key_ratios"]:hover  {border-color:rgba(255,142,182,.5);background:linear-gradient(180deg,rgba(255,142,182,0.05),var(--bg1))}

/* Tablet: tighter gutter + cards */
@media (max-width:64rem){
  .mm-spine{--mm-gutter:2.5rem}
  .mm-lens{max-width:16rem}
}

/* Mobile fallback — collapse to a single centred column, drop the spine art */
@media (max-width:48rem){
  .mm-spine{
    grid-template-columns:1fr;
    row-gap:0.75rem;
  }
  .mm-spine-line{display:none}
  .mm-spine-hub{grid-column:1;margin:0.25rem auto 0.5rem}
  .mm-lens.lft,.mm-lens.rgt,.mm-lens.ctr{grid-column:1;justify-self:stretch;max-width:none}
  .mm-lens.lft::before,.mm-lens.rgt::before,
  .mm-lens.lft::after,.mm-lens.rgt::after{display:none}
}

/* ═════════════════════════════════════════════════════════════════
   Technicals lens — numbered section headers
   ═════════════════════════════════════════════════════════════════ */
.tech-section-head{
  display:flex;align-items:flex-start;gap:0.75rem;
  margin:1.25rem 0 0.75rem;
  padding:0.25rem 0;
}
.tech-section-num{
  flex-shrink:0;
  width:1.625rem;height:1.625rem;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--fd);font-size:0.8125rem;font-weight:800;
  color:var(--green);
  background:radial-gradient(circle, rgba(204,255,0,0.12) 0%, rgba(204,255,0,0.04) 100%);
  border:0.0625rem solid rgba(204,255,0,0.32);
  border-radius:50%;
  box-shadow:0 0 8px rgba(204,255,0,0.18), inset 0 0 4px rgba(204,255,0,0.1);
  margin-top:0.125rem;
}
.tech-section-icon{
  flex-shrink:0;
  width:1.625rem;height:1.625rem;
  display:flex;align-items:center;justify-content:center;
  color:var(--green);
  margin-top:0.125rem;
}
.tech-section-icon svg{width:1.125rem;height:1.125rem}
.tech-section-titles{flex:1;min-width:0}
.tech-section-title{
  font-family:var(--fd);font-size:1.0625rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;line-height:1.15;
}
.tech-section-sub{
  font-size:0.8125rem;line-height:1.55;color:var(--cloud);
  letter-spacing:.005em;margin-top:0.25rem;
  max-width:54rem;
}

/* ═════════════════════════════════════════════════════════════════
   Market Context — live macro backdrop card with tabs
   ═════════════════════════════════════════════════════════════════ */
.mkt-ctx{
  position:relative;
  background:
    radial-gradient(ellipse 60% 40% at 0% 0%, rgba(90,200,250,0.04) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(90,200,250,0.2);
  border-radius:0.75rem;
  padding:0.875rem 1rem 0.9375rem;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.025), 0 0.0625rem 0.125rem rgba(0,0,0,0.25);
  margin-bottom:0.875rem;
}

.mkt-ctx-head{
  display:flex;justify-content:space-between;align-items:center;
  gap:1rem;flex-wrap:wrap;
  padding-bottom:0.75rem;margin-bottom:0.875rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
  position:relative;
}
.mkt-ctx-head::after{
  content:'';position:absolute;left:0;bottom:-0.0625rem;
  width:1.875rem;height:0.0625rem;
  background:linear-gradient(90deg, #5ac8fa 0%, rgba(90,200,250,0.25) 100%);
  box-shadow:0 0 4px rgba(90,200,250,0.35);
}

.mkt-ctx-titlebar{display:flex;align-items:center;gap:0.625rem;min-width:0}
.mkt-ctx-icon{
  width:1.75rem;height:1.75rem;
  display:flex;align-items:center;justify-content:center;
  color:#5ac8fa;
  background:linear-gradient(135deg, rgba(90,200,250,0.12) 0%, rgba(90,200,250,0.03) 100%);
  border:0.0625rem solid rgba(90,200,250,0.28);
  border-radius:0.4375rem;
}
.mkt-ctx-icon svg{width:1rem;height:1rem;filter:drop-shadow(0 0 3px rgba(90,200,250,0.4))}
.mkt-ctx-title{
  font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;
}
.mkt-ctx-pulse{
  display:inline-flex;align-items:center;gap:0.3125rem;
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  color:var(--green);letter-spacing:.12em;text-transform:uppercase;
  padding:0.1875rem 0.4375rem 0.1875rem 0.375rem;
  background:rgba(204,255,0,0.06);
  border:0.0625rem solid rgba(204,255,0,0.28);
  border-radius:0.3125rem;
  cursor:default;
}
.mkt-ctx-pulse span{
  width:0.4375rem;height:0.4375rem;border-radius:50%;
  background:radial-gradient(circle, #fff 0%, var(--green) 60%, transparent 100%);
  box-shadow:0 0 5px rgba(204,255,0,0.7);
  animation:aipulse 1.8s ease-in-out infinite;
}

/* Tabs */
.mkt-ctx-tabs{display:inline-flex;gap:0.25rem;padding:0.1875rem;background:rgba(0,0,0,0.32);border:0.0625rem solid var(--rim);border-radius:0.4375rem}
.mkt-ctx-tab{
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;
  color:var(--fog);letter-spacing:.02em;
  padding:0.3125rem 0.625rem;
  background:transparent;border:none;border-radius:0.3125rem;
  cursor:pointer;transition:all .15s;
}
.mkt-ctx-tab:hover{color:var(--cloud);background:rgba(255,255,255,0.04)}
.mkt-ctx-tab.active{
  color:var(--snow);
  background:linear-gradient(180deg, rgba(90,200,250,0.18) 0%, rgba(90,200,250,0.08) 100%);
  border:0.0625rem solid rgba(90,200,250,0.4);
  padding:0.25rem 0.5625rem;
  box-shadow:0 0 8px rgba(90,200,250,0.18), inset 0 0 4px rgba(90,200,250,0.08);
}

/* Quote grid */
.mkt-ctx-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0.5rem;
}
/* [hidden] attribute defaults to display:none, but .mkt-ctx-grid's
   display:grid would override that. Explicit rule restores it. */
.mkt-ctx-grid[hidden]{display:none}
.mkt-ctx-grid.mkt-ctx-grid-6{grid-template-columns:repeat(6,1fr)}
.mkt-ctx-grid.mkt-ctx-grid-2{grid-template-columns:repeat(2,1fr);max-width:32rem}
@media (max-width:64rem){
  .mkt-ctx-grid{grid-template-columns:repeat(2,1fr)}
  .mkt-ctx-grid.mkt-ctx-grid-6{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:42rem){
  .mkt-ctx-grid, .mkt-ctx-grid.mkt-ctx-grid-6, .mkt-ctx-grid.mkt-ctx-grid-2{grid-template-columns:1fr}
}

/* Quote card */
.mkt-card{
  position:relative;
  padding:0.5625rem 0.6875rem 0.5rem 0.8125rem;
  background:linear-gradient(180deg, var(--bg1) 0%, var(--bg2) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
  overflow:hidden;
  transition:border-color .2s;
}
.mkt-card:hover{border-color:rgba(255,255,255,0.1)}
.mkt-card::before{
  content:'';position:absolute;left:0;top:0.4375rem;bottom:0.4375rem;width:0.1875rem;
  border-radius:0 0.125rem 0.125rem 0;
}
.mkt-card.up::before{background:linear-gradient(180deg, var(--green) 0%, rgba(204,255,0,0.3) 100%);box-shadow:0 0 4px rgba(204,255,0,0.4)}
.mkt-card.down::before{background:linear-gradient(180deg, #ff7560 0%, rgba(255,117,96,0.3) 100%);box-shadow:0 0 4px rgba(255,117,96,0.4)}
.mkt-card.flat::before{background:rgba(255,255,255,0.18)}

.mkt-card-head{display:flex;justify-content:space-between;align-items:baseline;gap:0.375rem;margin-bottom:0.1875rem}
.mkt-card-label{
  font-family:var(--fm);font-size:0.625rem;font-weight:700;
  color:var(--fog);letter-spacing:.06em;text-transform:uppercase;
}
.mkt-card-sym{
  font-family:var(--fm);font-size:0.5rem;font-weight:700;
  color:rgba(255,255,255,0.28);letter-spacing:.06em;
}
.mkt-card-price{
  font-family:var(--fd);font-size:1.1875rem;font-weight:800;
  color:var(--snow);letter-spacing:-.015em;line-height:1.1;
}
.mkt-card-chg{
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;
  margin-top:0.1875rem;letter-spacing:.005em;line-height:1.1;
}
.mkt-card.up .mkt-card-chg{color:var(--green)}
.mkt-card.down .mkt-card-chg{color:#ff7560}
.mkt-card.flat .mkt-card-chg{color:var(--fog)}
.mkt-card-pct{font-weight:700;opacity:0.85;margin-left:0.125rem}
.mkt-card-spark{
  display:block;width:100%;height:1.375rem;margin-top:0.3125rem;
  opacity:0.85;
}
.mkt-card.up .mkt-card-spark{color:var(--green)}
.mkt-card.down .mkt-card-spark{color:#ff7560}
.mkt-card.flat .mkt-card-spark{color:rgba(255,255,255,0.4)}

/* Footer */
.mkt-ctx-foot{
  display:flex;justify-content:space-between;align-items:center;
  gap:0.5rem;flex-wrap:wrap;
  padding-top:0.75rem;margin-top:0.75rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;
}
.mkt-ctx-foot-left{display:flex;align-items:center;gap:0.375rem}
.mkt-ctx-foot-left svg{width:0.75rem;height:0.75rem;color:var(--gold)}
.mkt-ctx-foot-left b{color:var(--cloud);font-weight:700}
.mkt-ctx-foot-right{
  font-size:0.5625rem;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,0.32);
}

/* Inline pill that sits next to a section title (e.g. "last 30d") */
.tech-section-title-pill{
  display:inline-block;
  font-family:var(--fm);font-size:0.625rem;font-weight:700;
  color:var(--gold);letter-spacing:.08em;text-transform:uppercase;
  padding:0.125rem 0.4375rem;
  background:rgba(245,166,35,0.06);
  border:0.0625rem solid rgba(245,166,35,0.28);
  border-radius:0.25rem;
  vertical-align:middle;margin-left:0.4375rem;
}

/* ═════════════════════════════════════════════════════════════════
   Key Events — vertical timeline feed with sentiment-tinted cards
   ═════════════════════════════════════════════════════════════════ */
.ke-feed{
  position:relative;
  background:
    radial-gradient(ellipse 60% 40% at 100% 0%, rgba(245,166,35,0.025) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(245,166,35,0.22);
  border-radius:0.75rem;
  padding:0.875rem 1rem 0.9375rem;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.025), 0 0.0625rem 0.125rem rgba(0,0,0,0.25);
  margin-bottom:0.875rem;
}

/* Head row */
.ke-feed-head{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;
  padding-bottom:0.75rem;margin-bottom:0.875rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
  position:relative;
}
.ke-feed-head::after{
  content:'';position:absolute;left:0;bottom:-0.0625rem;
  width:1.875rem;height:0.0625rem;
  background:linear-gradient(90deg, var(--gold) 0%, rgba(245,166,35,0.25) 100%);
  box-shadow:0 0 4px rgba(245,166,35,0.35);
}

.ke-feed-titlebar{display:flex;align-items:center;gap:0.625rem;min-width:0}
.ke-feed-icon{
  width:1.75rem;height:1.75rem;
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);
  background:linear-gradient(135deg, rgba(245,166,35,0.12) 0%, rgba(245,166,35,0.03) 100%);
  border:0.0625rem solid rgba(245,166,35,0.28);
  border-radius:0.4375rem;
}
.ke-feed-icon svg{width:1rem;height:1rem;filter:drop-shadow(0 0 3px rgba(245,166,35,0.4))}
.ke-feed-title{
  font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;line-height:1.1;
}
.ke-feed-sub{
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;
  margin-top:0.1875rem;
}
.ke-feed-sub b{color:var(--cloud);font-weight:700}
.ke-feed-sub b:nth-of-type(2){color:var(--green)}
.ke-feed-sub b:nth-of-type(3){color:#ff7560}

.ke-feed-meta{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}
.ke-feed-pending{
  display:inline-flex;align-items:center;gap:0.3125rem;
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  color:var(--gold);letter-spacing:.1em;text-transform:uppercase;
  padding:0.25rem 0.5rem 0.25rem 0.4375rem;
  background:rgba(245,166,35,0.06);border:0.0625rem solid rgba(245,166,35,0.28);
  border-radius:0.3125rem;
}
.ke-feed-pending-dot{
  width:0.375rem;height:0.375rem;border-radius:50%;
  background:radial-gradient(circle, #ffd700 0%, #f5a623 70%);
  box-shadow:0 0 4px rgba(245,166,35,0.7);
  animation:aipulse 2.4s ease-in-out infinite;
}
.ke-feed-refresh{
  font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em;
  text-transform:uppercase;
}
.ke-feed-refresh b{color:var(--cloud);font-weight:700}

/* Timeline column — scrollable past the first ~4 events */
.ke-timeline{
  position:relative;
  padding-left:1.5rem;
  padding-right:0.5rem;
  max-height:26rem;
  overflow-y:auto;
  /* Subtle fade at top + bottom edges so cut-off events feel intentional */
  mask:linear-gradient(180deg, transparent 0, black 0.625rem, black calc(100% - 1rem), transparent 100%);
  -webkit-mask:linear-gradient(180deg, transparent 0, black 0.625rem, black calc(100% - 1rem), transparent 100%);
  scrollbar-width:thin;
  scrollbar-color:rgba(245,166,35,0.3) transparent;
}
.ke-timeline::-webkit-scrollbar{width:0.375rem}
.ke-timeline::-webkit-scrollbar-track{background:transparent}
.ke-timeline::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg, rgba(245,166,35,0.35) 0%, rgba(245,166,35,0.15) 100%);
  border-radius:0.1875rem;
}
.ke-timeline::-webkit-scrollbar-thumb:hover{background:rgba(245,166,35,0.55)}

.ke-timeline::before{
  content:'';position:absolute;
  left:0.5625rem;top:0.5rem;bottom:0.5rem;width:0.0625rem;
  background:linear-gradient(180deg, transparent 0%, rgba(255,255,255,0.08) 8%, rgba(255,255,255,0.08) 92%, transparent 100%);
}

/* Date dividers between days */
.ke-date-divider{
  display:flex;align-items:center;gap:0.5rem;
  margin:0.75rem 0 0.4375rem -1.5rem;
  padding-left:1.5rem;
}
.ke-date-divider:first-child{margin-top:0}
.ke-date-line{
  flex:1;height:0.0625rem;
  background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.06) 50%, transparent 100%);
}
.ke-date-label{
  flex-shrink:0;
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  color:var(--fog);letter-spacing:.12em;text-transform:uppercase;
  padding:0.1875rem 0.5rem;
  background:rgba(255,255,255,0.025);
  border:0.0625rem solid var(--rim);
  border-radius:0.25rem;
}

/* Each event row */
.ke-event{
  position:relative;
  display:flex;align-items:flex-start;gap:0.75rem;
  margin-bottom:0.4375rem;
}
.ke-event:last-child{margin-bottom:0}

/* Node circle on the timeline */
.ke-event-node{
  position:absolute;left:-1.5rem;top:0.5rem;
  width:0.75rem;height:0.75rem;border-radius:50%;
  border:0.125rem solid var(--bg1);
  z-index:2;
}
.ke-bull .ke-event-node{background:var(--green);box-shadow:0 0 6px rgba(204,255,0,0.55)}
.ke-bear .ke-event-node{background:#ff7560;box-shadow:0 0 6px rgba(255,117,96,0.55)}
.ke-neu  .ke-event-node{background:rgba(255,255,255,0.4);box-shadow:0 0 4px rgba(255,255,255,0.2)}

/* Event card */
.ke-event-card{
  flex:1;min-width:0;
  position:relative;
  display:flex;align-items:stretch;gap:0.75rem;
  padding:0.625rem 0.8125rem 0.6875rem 0.9375rem;
  background:linear-gradient(180deg, var(--bg1) 0%, var(--bg2) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
  transition:border-color .2s, transform .15s;
  overflow:hidden;
}
.ke-event-main{flex:1;min-width:0;display:flex;flex-direction:column}
/* Article thumbnail (og:image) */
.ke-event-thumb{
  flex:0 0 auto;width:5.25rem;height:3.75rem;align-self:center;
  border-radius:0.375rem;overflow:hidden;background:var(--bg3);
  border:0.0625rem solid var(--rim);order:2;
}
.ke-event-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ke-event-card::before{
  content:'';position:absolute;left:0;top:0.4375rem;bottom:0.4375rem;width:0.1875rem;
  border-radius:0 0.125rem 0.125rem 0;
}
.ke-bull .ke-event-card::before{background:linear-gradient(180deg, var(--green) 0%, rgba(204,255,0,0.3) 100%);box-shadow:0 0 4px rgba(204,255,0,0.4)}
.ke-bear .ke-event-card::before{background:linear-gradient(180deg, #ff7560 0%, rgba(255,117,96,0.3) 100%);box-shadow:0 0 4px rgba(255,117,96,0.4)}
.ke-neu  .ke-event-card::before{background:rgba(255,255,255,0.18)}
.ke-event-card:hover{border-color:rgba(255,255,255,0.1);transform:translateX(0.125rem)}

/* Top row: sentiment + source + time */
.ke-event-top{
  display:flex;align-items:center;gap:0.4375rem;
  margin-bottom:0.3125rem;
  flex-wrap:wrap;
}
.ke-event-sent{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;
  padding:0.125rem 0.4375rem;border-radius:0.25rem;
}
.ke-event-sent.bull{color:var(--green);background:rgba(204,255,0,0.08);border:0.0625rem solid rgba(204,255,0,0.3)}
.ke-event-sent.bear{color:#ff7560;background:rgba(255,117,96,0.08);border:0.0625rem solid rgba(255,117,96,0.3)}
.ke-event-sent.neu {color:var(--fog);background:rgba(255,255,255,0.04);border:0.0625rem solid rgba(255,255,255,0.12)}
.ke-event-source{
  font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--cloud);
  letter-spacing:.02em;
}
.ke-event-time{
  font-family:var(--fm);font-size:0.5625rem;color:var(--fog);
  letter-spacing:.04em;margin-left:auto;
}
/* Event category + impact tags (technical relevance signalling) */
.ke-event-type{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#9ad0ff;background:rgba(90,200,250,0.08);border:0.0625rem solid rgba(90,200,250,0.25);padding:0.125rem 0.4375rem;border-radius:0.25rem}
.ke-event-impact{font-family:var(--fm);font-size:0.5rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:0.125rem 0.375rem;border-radius:0.25rem}
.ke-event-impact.high{color:var(--gold);background:rgba(245,166,35,0.1);border:0.0625rem solid rgba(245,166,35,0.3)}
.ke-event-impact.med{color:var(--fog);background:rgba(255,255,255,0.04);border:0.0625rem solid rgba(255,255,255,0.1)}
.ke-event-top .ke-event-source{margin-left:auto}

/* ── Event Flow full view — blurred backdrop modal, scrollable 30-day list ── */
.ef-modal-root{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:2rem}
.ef-modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.ef-modal{position:relative;width:100%;max-width:46rem;max-height:86vh;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--bg2),var(--bg1));border:0.0625rem solid var(--rim2);border-radius:0.875rem;box-shadow:0 1.5rem 4rem rgba(0,0,0,0.6);overflow:hidden;animation:efpop .18s ease}
@keyframes efpop{from{opacity:0;transform:translateY(0.5rem) scale(0.99)}to{opacity:1;transform:none}}
.ef-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:0.0625rem solid var(--rim)}
.ef-modal-title{font-family:var(--fd);font-size:1.05rem;font-weight:800;color:var(--snow);display:flex;align-items:center;gap:0.5rem}
.ef-modal-pill{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fog);background:var(--bg3);border:0.0625rem solid var(--rim);padding:0.125rem 0.4375rem;border-radius:1rem}
.ef-modal-sub{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);margin-top:0.25rem}
.ef-modal-sub b{color:var(--cloud)}
.ef-modal-close{flex-shrink:0;width:1.75rem;height:1.75rem;border-radius:0.4375rem;border:0.0625rem solid var(--rim);background:var(--bg3);color:var(--fog);font-size:0.8125rem;cursor:pointer;transition:all .15s}
.ef-modal-close:hover{color:var(--snow);border-color:var(--rim2);background:var(--bg4)}
.ef-modal-context{padding:0.75rem 1.25rem;font-size:0.75rem;line-height:1.55;color:var(--cloud);background:rgba(255,255,255,0.02);border-bottom:0.0625rem solid var(--rim)}
.ef-modal-body{padding:1rem 1.25rem 1.5rem;overflow-y:auto}

/* Headline (may be an <a> to the source article) */
.ke-event-headline{
  font-family:var(--fd);font-size:0.875rem;font-weight:700;color:var(--snow);
  letter-spacing:-.005em;line-height:1.35;
  margin-bottom:0.3125rem;
  text-decoration:none;display:block;transition:color .15s;
}
a.ke-event-headline:hover{color:var(--green)}
.ke-event-ext{width:0.75rem;height:0.75rem;margin-left:0.3125rem;vertical-align:-0.0625rem;opacity:0;transition:opacity .15s;color:var(--fog)}
a.ke-event-headline:hover .ke-event-ext{opacity:.8}

/* "Why it matters" line */
.ke-event-why{
  display:flex;align-items:flex-start;gap:0.4375rem;
  font-size:0.6875rem;color:var(--fog);line-height:1.4;letter-spacing:.005em;
  padding-left:0.0625rem;
}
.ke-event-why svg{
  width:0.6875rem;height:0.6875rem;flex-shrink:0;margin-top:0.1875rem;
  color:var(--gold);opacity:0.7;
}

/* Footer */
.ke-feed-foot{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:0.75rem;margin-top:0.875rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;
}
.ke-feed-foot-link{
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;
  color:var(--gold);letter-spacing:.02em;text-decoration:none;
  transition:color .15s;
}
.ke-feed-foot-link:hover{color:var(--snow);text-decoration:underline}

/* ═════════════════════════════════════════════════════════════════
   Confluence Map — chart + lanes + detail cards + prediction
   ═════════════════════════════════════════════════════════════════ */
.conf-map{
  position:relative;
  background:
    radial-gradient(ellipse 60% 30% at 50% 0%, rgba(90,200,250,0.04) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(90,200,250,0.22);
  border-radius:0.75rem;
  padding:0.875rem 1rem 0.9375rem;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.025), 0 0.0625rem 0.125rem rgba(0,0,0,0.25);
  margin-bottom:0.875rem;
}

/* Head */
.conf-map-head{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;
  padding-bottom:0.75rem;margin-bottom:0.625rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
  position:relative;
}
.conf-map-head::after{
  content:'';position:absolute;left:0;bottom:-0.0625rem;
  width:1.875rem;height:0.0625rem;
  background:linear-gradient(90deg, #5ac8fa 0%, rgba(90,200,250,0.25) 100%);
  box-shadow:0 0 4px rgba(90,200,250,0.35);
}
.conf-map-titlebar{display:flex;align-items:center;gap:0.625rem;min-width:0}
.conf-map-icon{
  width:1.75rem;height:1.75rem;
  display:flex;align-items:center;justify-content:center;
  color:#5ac8fa;
  background:linear-gradient(135deg, rgba(90,200,250,0.12) 0%, rgba(90,200,250,0.03) 100%);
  border:0.0625rem solid rgba(90,200,250,0.28);
  border-radius:0.4375rem;
}
.conf-map-icon svg{width:1rem;height:1rem;filter:drop-shadow(0 0 3px rgba(90,200,250,0.4))}
.conf-map-title{
  font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow);letter-spacing:-.005em;line-height:1.1;
}
.conf-map-sub{
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em;margin-top:0.1875rem;
}

.conf-map-pills{display:flex;gap:0.375rem;flex-wrap:wrap}
.conf-pill{
  display:inline-flex;align-items:center;gap:0.375rem;
  font-family:var(--fm);font-size:0.625rem;font-weight:700;
  color:var(--cloud);letter-spacing:.02em;
  padding:0.25rem 0.5rem 0.25rem 0.4375rem;
  background:rgba(0,0,0,0.25);
  border:0.0625rem solid var(--rim);
  border-radius:0.3125rem;
}
.conf-pill b{color:var(--snow);font-weight:800}
.conf-pill-dot{
  width:0.4375rem;height:0.4375rem;border-radius:50%;
  box-shadow:0 0 4px currentColor;
}
.conf-pill-dot.tech{background:#ccff00;color:#ccff00}
.conf-pill-dot.news{background:#f5a623;color:#f5a623}
.conf-pill-dot.quote{background:#bf8fff;color:#bf8fff}

/* Chart */
.conf-chart-wrap{
  position:relative;
  margin-bottom:0.75rem;
}
.conf-chart-svg{
  display:block;width:100%;height:auto;
  aspect-ratio:1000 / 360;
}

.conf-legend{
  display:flex;justify-content:center;gap:1.25rem;flex-wrap:wrap;
  padding:0.4375rem 0;margin-top:0.25rem;
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
}
.conf-leg{display:inline-flex;align-items:center;gap:0.375rem}
.conf-leg-line{display:inline-block;width:1.25rem;height:0.125rem;border-radius:0.0625rem}
.conf-leg-dot{display:inline-block;width:0.5rem;height:0.5rem;border-radius:50%}
.conf-leg-dot.bull{background:#ccff00;box-shadow:0 0 4px rgba(204,255,0,0.7)}
.conf-leg-dot.bear{background:#ff7560;box-shadow:0 0 4px rgba(255,117,96,0.7)}
.conf-leg-conf{display:inline-block;width:0.625rem;height:0.625rem;border-radius:50%;
  background:radial-gradient(circle, rgba(245,166,35,0.7) 0%, rgba(245,166,35,0.2) 60%, transparent 100%);
  border:0.0625rem solid rgba(245,166,35,0.5);
}

/* Detail cards · scrollable */
.conf-detail-list{
  display:flex;flex-direction:column;gap:0.4375rem;
  max-height:22rem;overflow-y:auto;
  padding:0.5rem 0.5rem 0.5rem 0;margin:0.5rem 0 0.75rem;
  mask:linear-gradient(180deg, transparent 0, black 0.5rem, black calc(100% - 0.5rem), transparent 100%);
  -webkit-mask:linear-gradient(180deg, transparent 0, black 0.5rem, black calc(100% - 0.5rem), transparent 100%);
  scrollbar-width:thin;
  scrollbar-color:rgba(90,200,250,0.3) transparent;
}
.conf-detail-list::-webkit-scrollbar{width:0.375rem}
.conf-detail-list::-webkit-scrollbar-thumb{background:linear-gradient(180deg, rgba(90,200,250,0.35) 0%, rgba(90,200,250,0.12) 100%);border-radius:0.1875rem}

.conf-detail-card{
  position:relative;
  padding:0.625rem 0.875rem 0.6875rem 1rem;
  background:linear-gradient(180deg, var(--bg1) 0%, var(--bg2) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
  transition:border-color .2s, transform .15s;
}
.conf-detail-card::before{
  content:'';position:absolute;left:0;top:0.4375rem;bottom:0.4375rem;width:0.1875rem;
  border-radius:0 0.125rem 0.125rem 0;
}
.conf-detail-card.bull::before{background:linear-gradient(180deg, var(--green) 0%, rgba(204,255,0,0.3) 100%);box-shadow:0 0 4px rgba(204,255,0,0.4)}
.conf-detail-card.bear::before{background:linear-gradient(180deg, #ff7560 0%, rgba(255,117,96,0.3) 100%);box-shadow:0 0 4px rgba(255,117,96,0.4)}
.conf-detail-card.neu::before{background:rgba(255,255,255,0.18)}
.conf-detail-card:hover{border-color:rgba(255,255,255,0.1);transform:translateX(0.125rem)}

.conf-detail-meta{
  display:flex;align-items:center;gap:0.625rem;flex-wrap:wrap;
  margin-bottom:0.3125rem;
  font-family:var(--fm);font-size:0.625rem;
}
.conf-detail-date{color:var(--cloud);font-weight:700;letter-spacing:.04em}
.conf-detail-tally{color:var(--fog);letter-spacing:.02em}
.conf-detail-tally b.bull{color:var(--green)}
.conf-detail-tally b.bear{color:#ff7560}
.conf-detail-tally b.neu{color:var(--fog)}
.conf-detail-stance{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  padding:0.125rem 0.4375rem;border-radius:0.25rem;margin-left:auto;
}
.conf-detail-stance.bull{color:var(--green);background:rgba(204,255,0,0.08);border:0.0625rem solid rgba(204,255,0,0.28)}
.conf-detail-stance.bear{color:#ff7560;background:rgba(255,117,96,0.08);border:0.0625rem solid rgba(255,117,96,0.28)}
.conf-detail-stance.neu{color:var(--fog);background:rgba(255,255,255,0.04);border:0.0625rem solid rgba(255,255,255,0.12)}

.conf-detail-text{
  font-size:0.71875rem;line-height:1.5;color:var(--cloud);letter-spacing:.005em;
}
.conf-detail-text b{color:var(--snow);font-weight:700}
.conf-detail-pat{color:var(--gold);font-weight:600}

/* ── Yellow prediction synthesis ── */
.conf-pred{
  position:relative;
  display:flex;align-items:flex-start;gap:0.75rem;
  padding:0.875rem 1rem 0.9375rem 1.125rem;
  background:
    radial-gradient(ellipse 50% 80% at 0% 0%, rgba(245,166,35,0.08) 0%, transparent 65%),
    linear-gradient(180deg, rgba(245,166,35,0.05) 0%, rgba(245,166,35,0.02) 100%);
  border:0.0625rem solid rgba(245,166,35,0.32);
  border-radius:0.625rem;
  overflow:hidden;
  margin:0.5rem 0;
}
.conf-pred-stripe{
  position:absolute;left:0;top:0.5rem;bottom:0.5rem;width:0.1875rem;
  background:linear-gradient(180deg, #f5a623 0%, rgba(245,166,35,0.3) 100%);
  border-radius:0 0.125rem 0.125rem 0;
  box-shadow:0 0 6px rgba(245,166,35,0.5);
}
.conf-pred-icon{
  width:2.25rem;height:2.25rem;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);
  background:linear-gradient(135deg, rgba(245,166,35,0.15) 0%, rgba(245,166,35,0.04) 100%);
  border:0.0625rem solid rgba(245,166,35,0.32);
  border-radius:0.5rem;
  box-shadow:0 0 12px rgba(245,166,35,0.18), inset 0 0 8px rgba(245,166,35,0.08);
}
.conf-pred-icon svg{width:1.25rem;height:1.25rem;filter:drop-shadow(0 0 4px rgba(245,166,35,0.55))}
.conf-pred-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:0.625rem}

.conf-pred-head{
  display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;
}
@media (max-width:54rem){.conf-pred-head{grid-template-columns:1fr}}
.conf-pred-titles{min-width:0}
.conf-pred-eyebrow{
  font-family:var(--fm);font-size:0.625rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold);
}
.conf-pred-title{
  font-family:var(--fd);font-size:1.125rem;font-weight:800;color:var(--snow);
  letter-spacing:-.01em;line-height:1.1;margin-top:0.1875rem;
}
.conf-pred-pct{color:var(--green);text-shadow:0 0 10px rgba(204,255,0,0.3)}

.conf-pred-bar-wrap{min-width:14rem;display:flex;flex-direction:column;gap:0.3125rem}
.conf-pred-bar-track{
  position:relative;
  display:flex;height:0.625rem;
  background:rgba(0,0,0,0.32);
  border:0.0625rem solid rgba(255,255,255,0.04);
  border-radius:0.3125rem;
  overflow:hidden;
}
.conf-pred-bar-bear{background:linear-gradient(180deg, #ff7560 0%, rgba(255,117,96,0.6) 100%);box-shadow:0 0 6px rgba(255,117,96,0.35) inset}
.conf-pred-bar-neu{background:linear-gradient(180deg, rgba(255,255,255,0.32) 0%, rgba(255,255,255,0.18) 100%)}
.conf-pred-bar-bull{background:linear-gradient(180deg, var(--green) 0%, rgba(204,255,0,0.6) 100%);box-shadow:0 0 6px rgba(204,255,0,0.35) inset}
.conf-pred-bar-labels{
  display:flex;justify-content:space-between;
  font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em;text-transform:uppercase;
}
.conf-pred-bar-labels b{color:var(--cloud);font-weight:700}

.conf-pred-text{
  font-size:0.8125rem;line-height:1.55;color:var(--cloud);letter-spacing:.005em;
}
.conf-pred-text b{color:var(--snow);font-weight:700}
.conf-pred-text b.bull{color:var(--green)}
.conf-pred-text b.bear{color:#ff7560}

.conf-pred-caveat{
  display:flex;align-items:flex-start;gap:0.4375rem;
  padding:0.5rem 0.6875rem;
  background:rgba(0,0,0,0.22);
  border:0.0625rem dashed rgba(245,166,35,0.32);
  border-radius:0.4375rem;
  font-size:0.6875rem;line-height:1.5;color:var(--fog);
}
.conf-pred-caveat svg{width:0.875rem;height:0.875rem;color:var(--gold);flex-shrink:0;margin-top:0.0625rem}
.conf-pred-caveat b{color:var(--gold);font-weight:800}

/* Foot */
.conf-foot{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:0.5rem;margin-top:0.5rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;
}
.conf-foot-pending{
  display:inline-flex;align-items:center;gap:0.3125rem;
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  color:var(--gold);letter-spacing:.1em;text-transform:uppercase;
}
.conf-foot-note{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em;font-style:italic}
/* Full-height hover columns: show a pointer so the whole column reads as hoverable */
.conf-day{cursor:crosshair}
.conf-day-hit{cursor:crosshair}
.conf-foot-pending-dot{
  width:0.375rem;height:0.375rem;border-radius:50%;
  background:radial-gradient(circle, #ffd700 0%, #f5a623 70%);
  box-shadow:0 0 4px rgba(245,166,35,0.7);
  animation:aipulse 2.4s ease-in-out infinite;
}

/* Per-day hit + highlight ring inside the SVG */
.conf-chart-wrap{position:relative}
.conf-day{cursor:pointer}
.conf-day-dot{
  transition:opacity .12s, r .12s;
  filter:drop-shadow(0 0 6px rgba(255,255,255,0.85));
}
.conf-day:hover .conf-day-dot{opacity:1 !important}
.conf-day:hover{transform-origin:center}

/* Confluence tooltip — floats above the chart on hover */
.conf-tooltip{
  position:absolute;
  z-index:30;
  width:25rem;max-width:92vw;
  max-height:30rem;overflow-y:auto;
  padding:0.6875rem 0.875rem 0.75rem;
  background:linear-gradient(180deg, rgba(28,28,32,0.98) 0%, rgba(18,18,22,0.98) 100%);
  border:0.0625rem solid rgba(255,255,255,0.12);
  border-radius:0.625rem;
  box-shadow:0 0.625rem 1.875rem rgba(0,0,0,0.6), 0 0 0 0.0625rem rgba(255,255,255,0.04) inset;
  backdrop-filter:blur(8px);
  pointer-events:auto;       /* interactive so the user can scroll the quotes */
  transform:translateX(-50%);
  animation:ctFadeIn .12s ease;
  word-wrap:break-word;overflow-wrap:break-word;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.2) transparent;
}
/* Many real quotes on popular days → cap the list and let it scroll on its own. */
.ct-quotes-scroll{max-height:12.5rem;overflow-y:auto;padding-right:0.25rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.2) transparent}
.ct-quotes-scroll::-webkit-scrollbar{width:0.25rem}
.ct-quotes-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);border-radius:0.125rem}
.conf-tooltip::-webkit-scrollbar{width:0.25rem}
.conf-tooltip::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);border-radius:0.125rem}
@keyframes ctFadeIn{from{opacity:0;transform:translateX(-50%) translateY(-4px)}to{opacity:1}}

.ct-head{
  display:flex;justify-content:space-between;align-items:baseline;gap:0.5rem;
  padding-bottom:0.4375rem;margin-bottom:0.5rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.06);
}
.ct-date{
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);
  letter-spacing:.04em;
}
.ct-price{
  font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;
}
.ct-chg{
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;
  margin-left:0.3125rem;
}
.ct-chg.up{color:var(--green)}
.ct-chg.down{color:#ff7560}

.ct-sec{margin-bottom:0.5rem}
.ct-sec:last-child{margin-bottom:0}
.ct-sec-h{
  display:flex;align-items:center;gap:0.4375rem;
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  letter-spacing:.12em;text-transform:uppercase;color:var(--gold);
  margin-bottom:0.375rem;
}
.ct-sec-dot{
  display:inline-block;width:0.4375rem;height:0.4375rem;border-radius:50%;
}
.ct-sec-dot.tech{background:#ccff00;box-shadow:0 0 4px rgba(204,255,0,0.7)}
.ct-sec-dot.quote{background:#bf8fff;box-shadow:0 0 4px rgba(191,143,255,0.7)}
.ct-sec-dot.news{background:#f5a623;box-shadow:0 0 4px rgba(245,166,35,0.7)}

/* Technical signal row */
.ct-sig{
  padding:0.3125rem 0.4375rem;
  background:rgba(204,255,0,0.04);
  border:0.0625rem solid rgba(204,255,0,0.18);
  border-radius:0.3125rem;
  margin-bottom:0.25rem;
}
.ct-sig-label{
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--green);
  letter-spacing:.005em;
}
.ct-sig-detail{
  font-size:0.6875rem;line-height:1.4;color:var(--cloud);
  margin-top:0.125rem;letter-spacing:.005em;
}

/* Creator quote rows */
.ct-q{
  display:flex;align-items:flex-start;gap:0.4375rem;
  padding:0.3125rem 0.4375rem;
  border-left:0.125rem solid transparent;border-radius:0.1875rem;
}
.ct-q.bull{border-left-color:rgba(204,255,0,0.4)}
.ct-q.bear{border-left-color:rgba(255,117,96,0.55);background:rgba(255,117,96,0.04)}
.ct-q.neu{border-left-color:rgba(255,255,255,0.15)}
.ct-q + .ct-q{border-top:0.0625rem solid rgba(255,255,255,0.04)}
.ct-q-avatar{
  flex-shrink:0;
  width:1.375rem;height:1.375rem;border-radius:50%;
  display:grid;place-items:center;
  font-family:var(--fd);font-size:0.5rem;font-weight:800;color:#fff;
  letter-spacing:.02em;
  box-shadow:inset 0 0 0.25rem rgba(255,255,255,0.15);
  text-shadow:0 0.0625rem 0.125rem rgba(0,0,0,0.4);
}
.ct-q-body{min-width:0;flex:1;display:flex;flex-direction:column;gap:0.125rem}
.ct-q-handle{
  font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--green);
  letter-spacing:.01em;
}
.ct-q-text{
  font-size:0.6875rem;line-height:1.4;color:var(--cloud);
  font-style:italic;letter-spacing:.005em;
  word-wrap:break-word;overflow-wrap:break-word;
  white-space:normal;
}

/* News rows inside the tooltip */
.ct-news{
  display:flex;align-items:flex-start;gap:0.4375rem;
  padding:0.3125rem 0;
}
.ct-news + .ct-news{border-top:0.0625rem solid rgba(255,255,255,0.04)}
.ct-news-source{
  flex-shrink:0;
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;
  padding:0.125rem 0.375rem;border-radius:0.1875rem;
  color:var(--gold);background:rgba(245,166,35,0.08);border:0.0625rem solid rgba(245,166,35,0.3);
}
.ct-news-source.bull{color:var(--green);background:rgba(204,255,0,0.08);border-color:rgba(204,255,0,0.3)}
.ct-news-source.bear{color:#ff7560;background:rgba(255,117,96,0.08);border-color:rgba(255,117,96,0.3)}
.ct-news-text{
  font-size:0.6875rem;line-height:1.4;color:var(--cloud);
  word-wrap:break-word;overflow-wrap:break-word;
}
.ct-more{
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);
  letter-spacing:.02em;padding-top:0.25rem;margin-top:0.1875rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
}

.ct-empty{
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);
  letter-spacing:.02em;font-style:italic;
  text-align:center;padding:0.3125rem 0;
}

/* ═════════════════════════════════════════════════════════════════
   Technical Dashboard — combined verdict + 6 indicator infographic
   ═════════════════════════════════════════════════════════════════ */
.td-board{
  position:relative;
  background:
    radial-gradient(ellipse 60% 30% at 50% 0%, rgba(155,89,182,0.04) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(155,89,182,0.22);
  border-radius:0.75rem;
  padding:0.875rem 1rem 0.9375rem;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.025), 0 0.0625rem 0.125rem rgba(0,0,0,0.25);
  margin-bottom:0.875rem;
}

/* ── Verdict hero strip ── */
.td-verdict{
  display:grid;grid-template-columns:1fr 1.2fr;gap:1.25rem;align-items:center;
  padding:0.75rem 0.875rem;
  background:linear-gradient(180deg, rgba(255,117,96,0.06) 0%, rgba(255,117,96,0.015) 100%);
  border:0.0625rem solid rgba(255,117,96,0.24);
  border-radius:0.625rem;
  margin-bottom:1rem;
}
@media (max-width:54rem){.td-verdict{grid-template-columns:1fr}}

.td-verdict-eyebrow{
  font-family:var(--fm);font-size:0.625rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--fog);
}
.td-verdict-stance{
  display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;
  margin-top:0.25rem;
}
.td-verdict-arrow{font-size:1.25rem;line-height:1;font-weight:800}
.td-verdict-arrow.bull{color:var(--green);text-shadow:0 0 8px rgba(204,255,0,0.5)}
.td-verdict-arrow.bear{color:#ff7560;text-shadow:0 0 8px rgba(255,117,96,0.5)}
.td-verdict-word{
  font-family:var(--fd);font-size:1.5rem;font-weight:800;color:var(--snow);
  letter-spacing:-.01em;line-height:1;
}
.td-verdict-conf{
  font-family:var(--fm);font-size:0.625rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--gold);
  padding:0.1875rem 0.4375rem;
  background:rgba(245,166,35,0.06);
  border:0.0625rem solid rgba(245,166,35,0.3);
  border-radius:0.25rem;
}
.td-verdict-sub{
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.02em;
  margin-top:0.3125rem;
}

.td-verdict-bar-wrap{display:flex;flex-direction:column;gap:0.3125rem}
.td-verdict-bar{
  display:flex;height:0.6875rem;
  background:rgba(0,0,0,0.32);
  border:0.0625rem solid rgba(255,255,255,0.04);
  border-radius:0.3125rem;
  overflow:hidden;
}
.td-verdict-bar-bear{background:linear-gradient(180deg, #ff7560 0%, rgba(255,117,96,0.6) 100%);box-shadow:inset 0 0 6px rgba(255,117,96,0.35)}
.td-verdict-bar-neu{background:linear-gradient(180deg, rgba(255,255,255,0.32) 0%, rgba(255,255,255,0.18) 100%)}
.td-verdict-bar-bull{background:linear-gradient(180deg, var(--green) 0%, rgba(204,255,0,0.6) 100%);box-shadow:inset 0 0 6px rgba(204,255,0,0.35)}
.td-verdict-bar-labels{
  display:flex;justify-content:space-between;
  font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em;text-transform:uppercase;
}
.td-verdict-bar-labels b{color:var(--cloud);font-weight:700}

/* ── 6-tile indicator grid ── */
.td-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0.625rem;
  margin-bottom:0.75rem;
}
@media (max-width:64rem){.td-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:40rem){.td-grid{grid-template-columns:1fr}}

.td-tile{
  position:relative;
  padding:0.6875rem 0.8125rem 0.75rem 0.9375rem;
  background:linear-gradient(180deg, var(--bg1) 0%, var(--bg2) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
  display:flex;flex-direction:column;gap:0.4375rem;
  overflow:hidden;
  transition:border-color .2s;
}
.td-tile:hover{border-color:rgba(255,255,255,0.1)}
.td-tile::before{
  content:'';position:absolute;left:0;top:0.4375rem;bottom:0.4375rem;width:0.1875rem;
  border-radius:0 0.125rem 0.125rem 0;
}
.td-tile[data-sentiment="bull"]::before{background:linear-gradient(180deg, var(--green) 0%, rgba(204,255,0,0.3) 100%);box-shadow:0 0 4px rgba(204,255,0,0.4)}
.td-tile[data-sentiment="bear"]::before{background:linear-gradient(180deg, #ff7560 0%, rgba(255,117,96,0.3) 100%);box-shadow:0 0 4px rgba(255,117,96,0.4)}
.td-tile[data-sentiment="neu"]::before{background:rgba(255,255,255,0.18)}

.td-tile-head{display:flex;justify-content:space-between;align-items:center;gap:0.375rem}
.td-tile-name{
  font-family:var(--fd);font-size:0.8125rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;
}
.td-tile-period{
  font-family:var(--fm);font-size:0.5625rem;font-weight:600;color:var(--fog);
  letter-spacing:.04em;margin-left:0.25rem;
}
.td-tile-badge{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;
  padding:0.125rem 0.375rem;border-radius:0.25rem;flex-shrink:0;
}
.td-tile-badge.bull{color:var(--green);background:rgba(204,255,0,0.08);border:0.0625rem solid rgba(204,255,0,0.3)}
.td-tile-badge.bear{color:#ff7560;background:rgba(255,117,96,0.08);border:0.0625rem solid rgba(255,117,96,0.3)}
.td-tile-badge.neu{color:var(--fog);background:rgba(255,255,255,0.04);border:0.0625rem solid rgba(255,255,255,0.18)}

.td-tile-value{
  font-family:var(--fd);font-size:1.375rem;font-weight:800;color:var(--snow);
  letter-spacing:-.015em;line-height:1.05;
}
.td-tile-sub{
  font-family:var(--fm);font-size:0.6875rem;font-weight:600;color:var(--fog);
  letter-spacing:.02em;margin-left:0.25rem;
}

/* Generic gauge — horizontal track with zones + marker */
.td-tile-gauge{padding:0.25rem 0}
.td-gauge-track{
  position:relative;
  height:0.4375rem;
  background:rgba(0,0,0,0.32);
  border:0.0625rem solid rgba(255,255,255,0.04);
  border-radius:0.21875rem;
  overflow:hidden;
}
.td-gauge-zone{
  position:absolute;top:0;bottom:0;
}
.td-gauge-zone.bull{background:linear-gradient(180deg, rgba(204,255,0,0.32) 0%, rgba(204,255,0,0.12) 100%)}
.td-gauge-zone.bear{background:linear-gradient(180deg, rgba(255,117,96,0.32) 0%, rgba(255,117,96,0.12) 100%)}
.td-gauge-zone.neu{background:rgba(255,255,255,0.04)}
.td-gauge-marker{
  position:absolute;top:-0.1875rem;bottom:-0.1875rem;width:0.1875rem;
  background:var(--snow);
  border-radius:0.0625rem;
  box-shadow:0 0 6px rgba(255,255,255,0.8);
  transform:translateX(-50%);
  z-index:2;
}
.td-gauge-scale{
  display:flex;justify-content:space-between;
  font-family:var(--fm);font-size:0.5rem;color:var(--fog);letter-spacing:.04em;
  margin-top:0.25rem;
}

/* MACD-style pair (two horizontal bars) */
.td-gauge-bar-pair{display:flex;flex-direction:column;gap:0.25rem}
.td-gauge-pair-row{
  display:grid;grid-template-columns:2.5rem 1fr 2rem;gap:0.4375rem;align-items:center;
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);
}
.td-gauge-pair-lbl{font-weight:700;letter-spacing:.04em}
.td-gauge-pair-bar{
  height:0.375rem;
  background:rgba(0,0,0,0.32);
  border-radius:0.1875rem;overflow:hidden;
  border:0.0625rem solid rgba(255,255,255,0.04);
}
.td-gauge-pair-bar > div{height:100%;border-radius:0.1875rem}
.td-gauge-pair-val{font-family:var(--fd);font-weight:800;color:var(--cloud);text-align:right;font-size:0.6875rem}

/* MAs row layout */
.td-gauge-mas{display:flex;flex-direction:column;gap:0.1875rem}
.td-gauge-mas-row{
  display:grid;grid-template-columns:3rem 1fr auto;gap:0.4375rem;align-items:baseline;
  font-family:var(--fm);font-size:0.625rem;
  padding:0.125rem 0;
}
.td-gauge-mas-lbl{color:var(--fog);font-weight:700;letter-spacing:.02em}
.td-gauge-mas-val{font-family:var(--fd);font-weight:700;color:var(--snow);font-size:0.6875rem}
.td-gauge-mas-stance{font-size:0.5625rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}
.td-gauge-mas-row.up .td-gauge-mas-stance{color:var(--green)}
.td-gauge-mas-row.down .td-gauge-mas-stance{color:#ff7560}

/* Sparkline gauge for OBV */
.td-gauge-spark{
  display:block;width:100%;height:1.5rem;
  color:var(--green);opacity:0.85;
}

.td-tile-note{
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);
  letter-spacing:.005em;line-height:1.4;
  margin-top:auto;
}

/* Foot */
.td-foot{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:0.5rem;margin-top:0.25rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;
}
.td-foot-left{display:flex;align-items:center;gap:0.375rem}
.td-foot-left svg{width:0.75rem;height:0.75rem;color:var(--gold)}
.td-foot-left b{color:var(--cloud);font-weight:700}
.td-foot-right{
  display:inline-flex;align-items:center;gap:0.3125rem;
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  color:var(--gold);letter-spacing:.1em;text-transform:uppercase;
}
.td-foot-pending-dot{
  width:0.375rem;height:0.375rem;border-radius:50%;
  background:radial-gradient(circle, #ffd700 0%, #f5a623 70%);
  box-shadow:0 0 4px rgba(245,166,35,0.7);
  animation:aipulse 2.4s ease-in-out infinite;
}

/* ═════════════════════════════════════════════════════════════════
   Creator Take on Momentum — quote rows + green consensus synth
   ═════════════════════════════════════════════════════════════════ */
.ctom{
  position:relative;
  background:
    radial-gradient(ellipse 60% 30% at 0% 0%, rgba(191,143,255,0.04) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(191,143,255,0.22);
  border-radius:0.75rem;
  padding:0.875rem 1rem 0.9375rem;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.025), 0 0.0625rem 0.125rem rgba(0,0,0,0.25);
  margin-bottom:0.875rem;
}

.ctom-head{
  display:flex;justify-content:space-between;align-items:center;
  gap:1rem;flex-wrap:wrap;
  padding-bottom:0.75rem;margin-bottom:0.75rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
  position:relative;
}
.ctom-head::after{
  content:'';position:absolute;left:0;bottom:-0.0625rem;
  width:1.875rem;height:0.0625rem;
  background:linear-gradient(90deg, #bf8fff 0%, rgba(191,143,255,0.25) 100%);
  box-shadow:0 0 4px rgba(191,143,255,0.4);
}

.ctom-titlebar{display:flex;align-items:center;gap:0.625rem;min-width:0}
.ctom-icon{
  width:1.75rem;height:1.75rem;
  display:flex;align-items:center;justify-content:center;
  color:#bf8fff;
  background:linear-gradient(135deg, rgba(191,143,255,0.12) 0%, rgba(191,143,255,0.03) 100%);
  border:0.0625rem solid rgba(191,143,255,0.28);
  border-radius:0.4375rem;
}
.ctom-icon svg{width:1rem;height:1rem;filter:drop-shadow(0 0 3px rgba(191,143,255,0.4))}
.ctom-title{
  font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow);letter-spacing:-.005em;
}
.ctom-sub{
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;margin-top:0.1875rem;
}
.ctom-sub b{color:var(--cloud);font-weight:700}
.ctom-sub b:nth-of-type(2){color:var(--green)}
.ctom-sub b:nth-of-type(3){color:#ff7560}

.ctom-pending{
  display:inline-flex;align-items:center;gap:0.3125rem;
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  color:var(--gold);letter-spacing:.1em;text-transform:uppercase;
  padding:0.25rem 0.5rem 0.25rem 0.4375rem;
  background:rgba(245,166,35,0.06);border:0.0625rem solid rgba(245,166,35,0.28);
  border-radius:0.3125rem;
}
.ctom-pending-dot{
  width:0.375rem;height:0.375rem;border-radius:50%;
  background:radial-gradient(circle, #ffd700 0%, #f5a623 70%);
  box-shadow:0 0 4px rgba(245,166,35,0.7);
  animation:aipulse 2.4s ease-in-out infinite;
}

/* Quote list */
/* Slim count tally above the raw quotes (no duplicate title / no AI synthesis) */
.ctom-tally{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.02em;margin-bottom:0.625rem}
.ctom-tally b{color:var(--cloud);font-weight:700}
.ctom-tally b.bull{color:var(--green)}
.ctom-tally b.bear{color:#ff7560}
/* ~4 quotes tall, then scroll for the rest (no "view all" toggle needed) */
.ctom-list{display:flex;flex-direction:column;gap:0.5rem;margin-bottom:0.75rem;max-height:28rem;overflow-y:auto;padding-right:0.25rem;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.2) transparent}
.ctom-list::-webkit-scrollbar{width:0.3125rem}
.ctom-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.2);border-radius:0.125rem}

.ctom-row{
  position:relative;
  flex-shrink:0;            /* don't let the scroll container squeeze + clip rows */
  display:flex;align-items:flex-start;gap:0.75rem;
  padding:0.6875rem 0.875rem 0.75rem 1rem;
  background:linear-gradient(180deg, var(--bg1) 0%, var(--bg2) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
  overflow:hidden;
  transition:border-color .15s, transform .15s;
}
.ctom-row:hover{border-color:rgba(255,255,255,0.1);transform:translateX(0.125rem)}
.ctom-row::before{
  content:'';position:absolute;left:0;top:0.5rem;bottom:0.5rem;width:0.1875rem;
  border-radius:0 0.125rem 0.125rem 0;
}
.ctom-row.bull::before{background:linear-gradient(180deg, var(--green) 0%, rgba(204,255,0,0.3) 100%);box-shadow:0 0 4px rgba(204,255,0,0.4)}
.ctom-row.bear::before{background:linear-gradient(180deg, #ff7560 0%, rgba(255,117,96,0.3) 100%);box-shadow:0 0 4px rgba(255,117,96,0.4)}

.ctom-avatar{
  flex-shrink:0;
  width:2rem;height:2rem;border-radius:50%;
  display:grid;place-items:center;
  font-family:var(--fd);font-size:0.6875rem;font-weight:800;color:#fff;
  letter-spacing:.02em;
  box-shadow:inset 0 0 0.25rem rgba(255,255,255,0.15), 0 0 0.25rem rgba(0,0,0,0.3);
  text-shadow:0 0.0625rem 0.125rem rgba(0,0,0,0.4);
}

.ctom-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:0.3125rem}

.ctom-meta{display:flex;align-items:center;gap:0.375rem;flex-wrap:wrap}
.ctom-name{
  font-family:var(--fd);font-size:0.8125rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;
}
.ctom-handle{
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;
}
.ctom-pill{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;
  padding:0.125rem 0.4375rem;border-radius:0.25rem;
  margin-left:0.125rem;
}
.ctom-pill.bull{color:var(--green);background:rgba(204,255,0,0.08);border:0.0625rem solid rgba(204,255,0,0.3)}
.ctom-pill.bear{color:#ff7560;background:rgba(255,117,96,0.08);border:0.0625rem solid rgba(255,117,96,0.3)}

.ctom-quote{
  font-size:0.8125rem;line-height:1.55;color:var(--cloud);font-style:italic;
  letter-spacing:.005em;
  word-wrap:break-word;overflow-wrap:break-word;
}

.ctom-foot{
  display:flex;align-items:center;gap:0.625rem;flex-wrap:wrap;
  margin-top:0.125rem;
}
.ctom-tag{
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;
  letter-spacing:.005em;
}
.ctom-tag.bull{color:var(--green)}
.ctom-tag.bear{color:#ff7560}
.ctom-time{
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;
  margin-left:auto;
}
.ctom-watch{
  display:inline-flex;align-items:center;gap:0.25rem;
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;
  color:var(--gold);text-decoration:none;letter-spacing:.04em;
  padding:0.1875rem 0.4375rem;border-radius:0.25rem;
  background:rgba(245,166,35,0.05);border:0.0625rem solid rgba(245,166,35,0.22);
  transition:all .15s;
}
.ctom-watch:hover{background:rgba(245,166,35,0.12);border-color:rgba(245,166,35,0.45);color:var(--snow)}
.ctom-watch svg{width:0.5625rem;height:0.5625rem}

/* Green consensus synthesis box */
.ctom-synth{
  display:flex;align-items:flex-start;gap:0.625rem;
  padding:0.6875rem 0.875rem 0.75rem 1rem;
  background:
    radial-gradient(ellipse 50% 80% at 0% 0%, rgba(204,255,0,0.08) 0%, transparent 65%),
    linear-gradient(180deg, rgba(204,255,0,0.05) 0%, rgba(204,255,0,0.02) 100%);
  border:0.0625rem solid rgba(204,255,0,0.3);
  border-radius:0.5rem;
  position:relative;
}
.ctom-synth::before{
  content:'';position:absolute;left:0;top:0.5rem;bottom:0.5rem;width:0.1875rem;
  background:linear-gradient(180deg, var(--green) 0%, rgba(204,255,0,0.3) 100%);
  border-radius:0 0.125rem 0.125rem 0;
  box-shadow:0 0 6px rgba(204,255,0,0.4);
}
.ctom-synth-icon{
  flex-shrink:0;
  width:1.375rem;height:1.375rem;
  color:var(--green);
  filter:drop-shadow(0 0 4px rgba(204,255,0,0.45));
  margin-top:0.125rem;
}
.ctom-synth-body{flex:1;min-width:0}
.ctom-synth-label{
  font-family:var(--fm);font-size:0.625rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--green);margin-bottom:0.25rem;
}
.ctom-synth-text{
  font-size:0.8125rem;line-height:1.55;color:var(--cloud);letter-spacing:.005em;
}
.ctom-synth-text b{color:var(--snow);font-weight:700}

/* Footer bar */
.ctom-foot-bar{
  display:flex;justify-content:space-between;align-items:center;
  padding-top:0.6875rem;margin-top:0.6875rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;
}
.ctom-foot-link{
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;
  color:#bf8fff;letter-spacing:.02em;text-decoration:none;
  transition:color .15s;
}
.ctom-foot-link:hover{color:var(--snow);text-decoration:underline}

/* ═════════════════════════════════════════════════════════════════
   Moving Averages — values table + chart
   ═════════════════════════════════════════════════════════════════ */
.ma-table{
  position:relative;
  background:
    radial-gradient(ellipse 60% 30% at 0% 0%, rgba(245,166,35,0.03) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(245,166,35,0.22);
  border-radius:0.75rem;
  padding:0.875rem 1rem 0.9375rem;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.025), 0 0.0625rem 0.125rem rgba(0,0,0,0.25);
  margin-bottom:0.625rem;
}
.ma-table-head{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding-bottom:0.625rem;margin-bottom:0.75rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
  position:relative;
}
.ma-table-head::after{
  content:'';position:absolute;left:0;bottom:-0.0625rem;
  width:1.875rem;height:0.0625rem;
  background:linear-gradient(90deg, var(--gold) 0%, rgba(245,166,35,0.25) 100%);
  box-shadow:0 0 4px rgba(245,166,35,0.35);
}
.ma-table-titlebar{display:flex;align-items:center;gap:0.5rem}
.ma-table-icon{
  width:1.625rem;height:1.625rem;
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);
  background:linear-gradient(135deg, rgba(245,166,35,0.12) 0%, rgba(245,166,35,0.03) 100%);
  border:0.0625rem solid rgba(245,166,35,0.28);
  border-radius:0.4375rem;
}
.ma-table-icon svg{width:0.9375rem;height:0.9375rem;filter:drop-shadow(0 0 3px rgba(245,166,35,0.4))}
.ma-table-title{
  font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;
}
.ma-table-current{
  display:inline-flex;align-items:baseline;gap:0.4375rem;
  padding:0.3125rem 0.625rem;
  background:rgba(204,255,0,0.05);
  border:0.0625rem solid rgba(204,255,0,0.22);
  border-radius:0.375rem;
}
.ma-table-current-lbl{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;color:var(--green);
  letter-spacing:.1em;text-transform:uppercase;
}
.ma-table-current-val{
  font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow);
  letter-spacing:-.015em;line-height:1;
}

/* 2-col grid of MA rows */
.ma-table-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:0.25rem 1.25rem;
}
@media (max-width:46rem){.ma-table-grid{grid-template-columns:1fr}}

.ma-row{
  display:grid;grid-template-columns:3.5rem 1fr auto;gap:0.625rem;align-items:baseline;
  padding:0.4375rem 0.5rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
  font-family:var(--fm);font-size:0.75rem;
}
.ma-row-spacer{border-bottom:none}
.ma-row:last-child{border-bottom:none}
.ma-row-lbl{
  font-family:var(--fm);font-size:0.6875rem;font-weight:800;
  color:var(--gold);letter-spacing:.06em;text-transform:uppercase;
}
.ma-row-val{
  font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow);
  letter-spacing:-.015em;
}
.ma-row-stance{
  font-family:var(--fm);font-size:0.625rem;font-weight:700;letter-spacing:.02em;
  text-align:right;
}
.ma-row-stance.up{color:var(--green)}
.ma-row-stance.down{color:#ff7560}

/* Status pill bar */
.ma-status-bar{
  display:flex;flex-wrap:wrap;gap:0.375rem;align-items:center;
  padding:0.6875rem 0.5rem 0.25rem;
  margin-top:0.5rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
}
.ma-status-pill{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  letter-spacing:.08em;text-transform:uppercase;
  padding:0.1875rem 0.4375rem;border-radius:0.25rem;
}
.ma-status-pill.up{color:var(--green);background:rgba(204,255,0,0.08);border:0.0625rem solid rgba(204,255,0,0.3)}
.ma-status-pill.down{color:#ff7560;background:rgba(255,117,96,0.08);border:0.0625rem solid rgba(255,117,96,0.3)}
.ma-status-verdict{
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;
  color:var(--cloud);letter-spacing:.005em;margin-left:auto;
}

/* MA chart card */
.ma-chart{
  position:relative;
  background:
    radial-gradient(ellipse 60% 30% at 0% 0%, rgba(204,255,0,0.03) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(204,255,0,0.22);
  border-radius:0.75rem;
  padding:0.875rem 1rem 0.9375rem;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.025), 0 0.0625rem 0.125rem rgba(0,0,0,0.25);
  margin-bottom:0.875rem;
}
.ma-chart-head{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding-bottom:0.625rem;margin-bottom:0.625rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
  position:relative;
}
.ma-chart-head::after{
  content:'';position:absolute;left:0;bottom:-0.0625rem;
  width:1.875rem;height:0.0625rem;
  background:linear-gradient(90deg, var(--green) 0%, rgba(204,255,0,0.25) 100%);
  box-shadow:0 0 4px rgba(204,255,0,0.4);
}
.ma-chart-titlebar{display:flex;align-items:center;gap:0.5rem;min-width:0}
.ma-chart-icon{
  width:1.625rem;height:1.625rem;
  display:flex;align-items:center;justify-content:center;
  color:var(--green);
  background:linear-gradient(135deg, rgba(204,255,0,0.12) 0%, rgba(204,255,0,0.03) 100%);
  border:0.0625rem solid rgba(204,255,0,0.28);
  border-radius:0.4375rem;
}
.ma-chart-icon svg{width:0.9375rem;height:0.9375rem;filter:drop-shadow(0 0 3px rgba(204,255,0,0.4))}
.ma-chart-title{
  font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;line-height:1.1;
}
.ma-chart-sub{
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;
  margin-top:0.125rem;
}
.ma-chart-pill{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  letter-spacing:.08em;text-transform:uppercase;
  padding:0.25rem 0.5rem;border-radius:0.3125rem;
  flex-shrink:0;
}
.ma-chart-pill.up{color:var(--green);background:rgba(204,255,0,0.08);border:0.0625rem solid rgba(204,255,0,0.3)}
.ma-chart-pill.down{color:#ff7560;background:rgba(255,117,96,0.08);border:0.0625rem solid rgba(255,117,96,0.3)}

.ma-chart-svg{
  display:block;width:100%;height:auto;
  aspect-ratio: 1000 / 360;
}

.ma-chart-legend{
  display:flex;justify-content:center;gap:1.25rem;flex-wrap:wrap;
  padding-top:0.5rem;margin-top:0.25rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-family:var(--fm);font-size:0.6875rem;color:var(--cloud);letter-spacing:.02em;
}
.ma-leg{display:inline-flex;align-items:center;gap:0.375rem;font-weight:600}
.ma-leg-line{display:inline-block;width:1.5rem;height:0.1875rem;border-radius:0.0625rem;box-shadow:0 0 4px currentColor}

/* ═════════════════════════════════════════════════════════════════
   Section 7 · Momentum Charts (RSI + MACD side-by-side)
   ═════════════════════════════════════════════════════════════════ */
.mc-block{
  position:relative;
  background:
    radial-gradient(ellipse 60% 30% at 100% 0%, rgba(155,89,182,0.04) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(155,89,182,0.22);
  border-radius:0.75rem;
  padding:0.875rem 1rem;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.025), 0 0.0625rem 0.125rem rgba(0,0,0,0.25);
  margin-bottom:0.875rem;
}
.mc-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem}
@media (max-width:54rem){.mc-grid{grid-template-columns:1fr}}

.mc-card{
  background:linear-gradient(180deg, var(--bg1) 0%, rgba(11,11,13,0.5) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
  padding:0.625rem 0.75rem 0.5rem;
}
.mc-card-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:0.5rem;
  margin-bottom:0.375rem;
}
.mc-card-title{
  font-family:var(--fd);font-size:0.875rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;
}
.mc-card-period{
  font-family:var(--fm);font-size:0.6875rem;font-weight:600;color:var(--fog);
  letter-spacing:.02em;margin-left:0.25rem;
}
.mc-card-sub{
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em;
  margin-top:0.1875rem;
}
.mc-card-side{display:flex;align-items:center;gap:0.4375rem;flex-shrink:0}
.mc-card-pill{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  letter-spacing:.08em;text-transform:uppercase;
  padding:0.1875rem 0.4375rem;border-radius:0.25rem;
}
.mc-card-pill.up{color:var(--green);background:rgba(204,255,0,0.08);border:0.0625rem solid rgba(204,255,0,0.3)}
.mc-card-pill.down{color:#ff7560;background:rgba(255,117,96,0.08);border:0.0625rem solid rgba(255,117,96,0.3)}
.mc-card-cur{font-family:var(--fm);font-size:0.6875rem;color:var(--fog)}
.mc-card-cur b{color:var(--snow);font-family:var(--fd);font-weight:800;letter-spacing:-.005em}

.mc-svg{display:block;width:100%;height:auto;aspect-ratio:520/320}

/* ═════════════════════════════════════════════════════════════════
   Price Performance — 6 cells (1D/1W/1M/3M/6M/1Y)
   ═════════════════════════════════════════════════════════════════ */
.pp-grid-block{
  background:
    radial-gradient(ellipse 60% 30% at 0% 0%, rgba(204,255,0,0.03) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(204,255,0,0.22);
  border-radius:0.75rem;
  padding:0.75rem 1rem 0.875rem;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.025), 0 0.0625rem 0.125rem rgba(0,0,0,0.25);
  margin-bottom:0.625rem;
}
.pp-grid-head{
  display:flex;align-items:center;gap:0.5rem;
  padding-bottom:0.625rem;margin-bottom:0.5rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
}
.pp-grid-icon{
  width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;
  color:var(--green);
  background:rgba(204,255,0,0.07);
  border:0.0625rem solid rgba(204,255,0,0.25);
  border-radius:0.375rem;
}
.pp-grid-icon svg{width:0.875rem;height:0.875rem}
.pp-grid-title{
  font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;
}
.pp-grid{
  display:grid;grid-template-columns:repeat(6,1fr);gap:0.625rem;
}
@media (max-width:54rem){.pp-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:36rem){.pp-grid{grid-template-columns:repeat(2,1fr)}}
.pp-cell{
  display:flex;flex-direction:column;align-items:center;gap:0.25rem;
  padding:0.5rem;
}
.pp-cell-lbl{
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);
  letter-spacing:.04em;
}
.pp-cell-val{
  font-family:var(--fd);font-size:1.125rem;font-weight:800;
  letter-spacing:-.015em;line-height:1;
}
.pp-cell-val.up{color:var(--green)}
.pp-cell-val.down{color:#ff7560}
.pp-cell-val.neu{color:var(--cloud)}

/* ═════════════════════════════════════════════════════════════════
   52-Week Range — horizontal gradient bar with current marker
   ═════════════════════════════════════════════════════════════════ */
.wr-block{
  background:
    radial-gradient(ellipse 60% 30% at 50% 0%, rgba(245,166,35,0.04) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(245,166,35,0.22);
  border-radius:0.75rem;
  padding:0.875rem 1rem 0.9375rem;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.025), 0 0.0625rem 0.125rem rgba(0,0,0,0.25);
  margin-bottom:0.625rem;
}
.wr-head{
  display:flex;align-items:center;gap:0.5rem;
  padding-bottom:0.5rem;margin-bottom:0.5rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
}
.wr-icon{
  width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;
  color:var(--gold);
  background:rgba(245,166,35,0.07);
  border:0.0625rem solid rgba(245,166,35,0.25);
  border-radius:0.375rem;
}
.wr-icon svg{width:0.875rem;height:0.875rem}
.wr-title{
  font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;
}
.wr-edges{
  display:flex;justify-content:space-between;align-items:flex-end;
  margin-top:0.5rem;
}
.wr-edge-lbl{
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);
  letter-spacing:.04em;text-transform:uppercase;
}
.wr-edge-val{
  font-family:var(--fd);font-size:1.5rem;font-weight:800;color:var(--snow);
  letter-spacing:-.02em;line-height:1.1;
}
.wr-edge-right{text-align:right}

.wr-bar{
  position:relative;
  margin:0.875rem 0 0.4375rem;
  height:0.75rem;
}
.wr-bar-track{
  height:100%;width:100%;
  background:linear-gradient(90deg,
    #ff7560 0%,
    #ff7560 8%,
    #f5a623 22%,
    #f5a623 35%,
    #ccff00 55%,
    #ccff00 80%,
    var(--green) 100%);
  border-radius:0.375rem;
  box-shadow:inset 0 0 0.5rem rgba(0,0,0,0.4);
}
.wr-bar-marker{
  position:absolute;top:-0.625rem;bottom:-0.625rem;
  transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.wr-bar-marker-pill{
  font-family:var(--fd);font-size:0.75rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;
  padding:0.125rem 0.4375rem;
  background:rgba(11,11,13,0.95);
  border:0.0625rem solid rgba(255,255,255,0.3);
  border-radius:0.25rem;
  margin-bottom:0.1875rem;
  box-shadow:0 0 0.5rem rgba(0,0,0,0.6);
}
.wr-bar-marker-dot{
  width:0.875rem;height:0.875rem;border-radius:50%;
  background:var(--snow);
  border:0.1875rem solid rgba(11,11,13,0.95);
  box-shadow:0 0 0.5rem rgba(255,255,255,0.9);
}
.wr-foots{
  display:flex;justify-content:space-between;
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);
  letter-spacing:.02em;
}
.wr-foots b.up{color:var(--green);font-weight:700}
.wr-foots b.down{color:#ff7560;font-weight:700}

/* ═════════════════════════════════════════════════════════════════
   Analyst Ratings & Price Target
   ═════════════════════════════════════════════════════════════════ */
.ar-block{
  background:
    radial-gradient(ellipse 60% 30% at 50% 0%, rgba(204,255,0,0.04) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(204,255,0,0.22);
  border-radius:0.75rem;
  padding:0.875rem 1rem 0.9375rem;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.025), 0 0.0625rem 0.125rem rgba(0,0,0,0.25);
  margin-bottom:0.875rem;
}
.ar-head{
  display:flex;align-items:center;gap:0.5rem;
  padding-bottom:0.5rem;margin-bottom:0.5rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
}
.ar-icon{
  width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;
  color:var(--green);
  background:rgba(204,255,0,0.07);
  border:0.0625rem solid rgba(204,255,0,0.25);
  border-radius:0.375rem;
}
.ar-icon svg{width:0.875rem;height:0.875rem}
.ar-title{
  font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;
}

.ar-hero{
  text-align:center;
  padding:0.75rem 0 0.625rem;
}
.ar-hero-eyebrow{
  font-family:var(--fm);font-size:0.625rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--fog);
}
.ar-hero-num{
  font-family:var(--fd);font-size:2.25rem;font-weight:900;color:var(--green);
  letter-spacing:-.02em;line-height:1.05;
  text-shadow:0 0 18px rgba(204,255,0,0.35);
  margin-top:0.25rem;
}
.ar-hero-upside{
  font-family:var(--fm);font-size:0.8125rem;font-weight:700;
  letter-spacing:.02em;margin-top:0.1875rem;
}
.ar-hero-upside.up{color:var(--green)}
.ar-hero-upside.down{color:#ff7560}

.ar-edges{
  display:flex;justify-content:space-between;align-items:center;
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.02em;
  padding:0.375rem 0 0.5rem;
}
.ar-edge b{color:var(--snow);font-family:var(--fd);font-weight:800;letter-spacing:-.005em}
.ar-edge-mid{text-align:center;flex:1}
.ar-edge:first-child{text-align:left}
.ar-edge:last-child{text-align:right}

.ar-bar{
  display:flex;height:1.25rem;
  border-radius:0.375rem;
  overflow:hidden;
  border:0.0625rem solid rgba(255,255,255,0.05);
  box-shadow:inset 0 0 0.5rem rgba(0,0,0,0.4);
}
.ar-seg{
  display:flex;align-items:center;justify-content:center;
  font-family:var(--fd);font-size:0.6875rem;font-weight:800;color:#000;
  letter-spacing:-.005em;
  min-width:1.5rem;
  transition:opacity .15s;
}
.ar-seg.strong-sell{background:#dc3545;color:#fff}
.ar-seg.sell{background:#fd7e14;color:#000}
.ar-seg.hold{background:#facc15;color:#000}
.ar-seg.buy{background:#65a30d;color:#000}
.ar-seg.strong-buy{background:#15803d;color:#fff}
.ar-bar-labels{
  position:relative;height:0.875rem;
  font-family:var(--fm);font-size:0.5625rem;color:var(--fog);
  letter-spacing:.06em;text-transform:uppercase;
  margin-top:0.3125rem;
}
.ar-bar-labels .ar-lbl{position:absolute;top:0;white-space:nowrap}
.ar-bar-labels .ar-lbl-mid{transform:translateX(-50%)}
.ar-bar-labels .ar-lbl-zero{opacity:.38}

/* ═════════════════════════════════════════════════════════════════
   Section 8 · Volume Analysis
   ═════════════════════════════════════════════════════════════════ */
.va-block{
  position:relative;
  background:
    radial-gradient(ellipse 60% 30% at 50% 0%, rgba(124,255,174,0.04) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(124,255,174,0.22);
  border-radius:0.75rem;
  padding:0.875rem 1rem 0.9375rem;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.025), 0 0.0625rem 0.125rem rgba(0,0,0,0.25);
  margin-bottom:0.875rem;
}
.va-head{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  padding-bottom:0.625rem;margin-bottom:0.75rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
}
.va-titlebar{display:flex;align-items:center;gap:0.5rem;min-width:0}
.va-icon{
  width:1.625rem;height:1.625rem;
  display:flex;align-items:center;justify-content:center;
  color:#7cffae;
  background:rgba(124,255,174,0.08);
  border:0.0625rem solid rgba(124,255,174,0.28);
  border-radius:0.4375rem;
}
.va-icon svg{width:0.9375rem;height:0.9375rem;filter:drop-shadow(0 0 3px rgba(124,255,174,0.4))}
.va-title{
  font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;
}
.va-regime{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  padding:0.25rem 0.5rem;border-radius:0.3125rem;
  background:rgba(255,255,255,0.04);
  border:0.0625rem solid rgba(255,255,255,0.18);
  color:var(--cloud);
}
.va-regime.heavy{color:#7cffae;background:rgba(124,255,174,0.08);border-color:rgba(124,255,174,0.32)}
.va-regime.light{color:var(--gold);background:rgba(245,166,35,0.08);border-color:rgba(245,166,35,0.32)}

.va-stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0.625rem;
  margin-bottom:0.875rem;
}
@media (max-width:48rem){.va-stats{grid-template-columns:repeat(2,1fr)}}
.va-stat{
  display:flex;flex-direction:column;align-items:center;gap:0.1875rem;
  padding:0.4375rem;
}
.va-stat-lbl{
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);
  letter-spacing:.04em;
}
.va-stat-val{
  font-family:var(--fd);font-size:1.125rem;font-weight:800;color:var(--snow);
  letter-spacing:-.015em;
}

.va-svg{display:block;width:100%;height:auto;aspect-ratio:1320/510}

.va-foot{
  display:flex;align-items:center;gap:0.625rem;
  padding-top:0.625rem;margin-top:0.5rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
}
.va-trend{
  font-family:var(--fm);font-size:0.6875rem;font-weight:800;letter-spacing:.04em;
}
.va-trend.up{color:#7cffae}
.va-trend.down{color:#ff7560}
.va-trend-detail{
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);letter-spacing:.02em;
}
.va-trend-detail b.up{color:#7cffae;font-weight:700}
.va-trend-detail b.down{color:#ff7560;font-weight:700}

/* ═════════════════════════════════════════════════════════════════
   Section 9 · Contrarian Creator View — stub
   Surfaces extreme bull + extreme bear quotes (the outliers).
   ═════════════════════════════════════════════════════════════════ */
.ccv{
  position:relative;
  background:
    radial-gradient(ellipse 60% 30% at 0% 0%, rgba(124,255,174,0.04) 0%, transparent 60%),
    linear-gradient(180deg, var(--bg2) 0%, var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-top-color:rgba(124,255,174,0.22);
  border-radius:0.75rem;
  padding:0.875rem 1rem 0.9375rem;
  box-shadow:inset 0 0.0625rem 0 rgba(255,255,255,0.025), 0 0.0625rem 0.125rem rgba(0,0,0,0.25);
  margin-bottom:0.875rem;
}
.ccv-head{
  display:flex;justify-content:space-between;align-items:center;
  gap:1rem;flex-wrap:wrap;
  padding-bottom:0.625rem;margin-bottom:0.625rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
}
.ccv-titlebar{display:flex;align-items:center;gap:0.5rem;min-width:0}
.ccv-icon{
  width:1.625rem;height:1.625rem;
  display:flex;align-items:center;justify-content:center;
  color:#7cffae;
  background:rgba(124,255,174,0.08);
  border:0.0625rem solid rgba(124,255,174,0.28);
  border-radius:0.4375rem;
}
.ccv-icon svg{width:0.9375rem;height:0.9375rem;filter:drop-shadow(0 0 3px rgba(124,255,174,0.4))}
.ccv-title{
  font-family:var(--fd);font-size:0.875rem;font-weight:800;
  color:#7cffae;letter-spacing:.12em;text-transform:uppercase;
}

.ccv-pending{
  display:inline-flex;align-items:center;gap:0.3125rem;
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  color:var(--gold);letter-spacing:.1em;text-transform:uppercase;
  padding:0.25rem 0.5rem 0.25rem 0.4375rem;
  background:rgba(245,166,35,0.06);
  border:0.0625rem solid rgba(245,166,35,0.28);
  border-radius:0.3125rem;
}
.ccv-pending-dot{
  width:0.375rem;height:0.375rem;border-radius:50%;
  background:radial-gradient(circle, #ffd700 0%, #f5a623 70%);
  box-shadow:0 0 4px rgba(245,166,35,0.7);
  animation:aipulse 2.4s ease-in-out infinite;
}

.ccv-list{display:flex;flex-direction:column;gap:0.5rem}

.ccv-row{
  position:relative;
  display:flex;align-items:flex-start;gap:0.75rem;
  padding:0.6875rem 0.875rem 0.75rem 1rem;
  background:linear-gradient(180deg, var(--bg1) 0%, var(--bg2) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
  overflow:hidden;
  transition:border-color .15s, transform .15s;
}
.ccv-row:hover{border-color:rgba(255,255,255,0.1);transform:translateX(0.125rem)}
.ccv-row::before{
  content:'';position:absolute;left:0;top:0.5rem;bottom:0.5rem;width:0.1875rem;
  border-radius:0 0.125rem 0.125rem 0;
}
.ccv-row.bull::before{background:linear-gradient(180deg, var(--green) 0%, rgba(204,255,0,0.3) 100%);box-shadow:0 0 4px rgba(204,255,0,0.4)}
.ccv-row.bear::before{background:linear-gradient(180deg, #ff7560 0%, rgba(255,117,96,0.3) 100%);box-shadow:0 0 4px rgba(255,117,96,0.4)}

.ccv-avatar{
  flex-shrink:0;
  width:2.25rem;height:2.25rem;border-radius:50%;
  display:grid;place-items:center;
  font-family:var(--fd);font-size:0.75rem;font-weight:800;color:#fff;
  letter-spacing:.02em;
  box-shadow:inset 0 0 0.25rem rgba(255,255,255,0.15), 0 0 0.25rem rgba(0,0,0,0.3);
  text-shadow:0 0.0625rem 0.125rem rgba(0,0,0,0.4);
}

.ccv-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:0.3125rem}
.ccv-meta{display:flex;align-items:center;gap:0.375rem;flex-wrap:wrap}
.ccv-name{
  font-family:var(--fd);font-size:0.875rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;
}
.ccv-pill{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;
  letter-spacing:.06em;text-transform:uppercase;
  padding:0.125rem 0.4375rem;border-radius:0.25rem;
}
.ccv-pill.bull{color:var(--green);background:rgba(204,255,0,0.08);border:0.0625rem solid rgba(204,255,0,0.3)}
.ccv-pill.bear{color:#ff7560;background:rgba(255,117,96,0.08);border:0.0625rem solid rgba(255,117,96,0.3)}

.ccv-quote{
  font-size:0.8125rem;line-height:1.55;color:var(--cloud);font-style:italic;
  letter-spacing:.005em;
  word-wrap:break-word;overflow-wrap:break-word;
}

.ccv-foot{
  display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;
  font-family:var(--fm);font-size:0.625rem;
}
.ccv-tag{
  font-weight:700;letter-spacing:.005em;
}
.ccv-tag.bull{color:#5ac8fa}
.ccv-tag.bear{color:#5ac8fa}
.ccv-time{color:var(--fog);margin-left:auto}
.ccv-dot-sep{color:var(--fog)}
.ccv-watch{
  display:inline-flex;align-items:center;gap:0.25rem;
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;
  color:var(--gold);text-decoration:none;letter-spacing:.04em;
  padding:0.1875rem 0.4375rem;border-radius:0.25rem;
  background:rgba(245,166,35,0.05);
  border:0.0625rem solid rgba(245,166,35,0.22);
  transition:all .15s;
}
.ccv-watch:hover{background:rgba(245,166,35,0.12);border-color:rgba(245,166,35,0.45);color:var(--snow)}
.ccv-watch svg{width:0.5625rem;height:0.5625rem}

/* ═════════════════════════════════════════════════════════════════
   Rich AI chat answer · streams in with cards + citations
   ═════════════════════════════════════════════════════════════════ */
.msg-ai-rich{margin:0.625rem 0 1rem}
.msg-ai-rich .msg-ai-content{
  display:flex;flex-direction:column;gap:0.625rem;
}

/* Thinking dots */
.ai-thinking-dot{
  display:inline-block;width:0.3125rem;height:0.3125rem;border-radius:50%;
  background:var(--gold);
  margin-right:0.1875rem;
  opacity:0.4;
  animation:aiThink 1.4s ease-in-out infinite;
}
.ai-thinking-dot:nth-child(2){animation-delay:.15s}
.ai-thinking-dot:nth-child(3){animation-delay:.3s}
@keyframes aiThink{0%,100%{opacity:0.25;transform:scale(0.9)}50%{opacity:1;transform:scale(1.2)}}

.ai-av-thinking{
  background:linear-gradient(135deg,rgba(245,166,35,0.18),rgba(204,255,0,0.08));
  box-shadow:0 0 0 0 rgba(245,166,35,0.5);
  animation:aiAvPulse 1.6s ease-in-out infinite;
}
@keyframes aiAvPulse{
  0%{box-shadow:0 0 0 0 rgba(245,166,35,0.45)}
  100%{box-shadow:0 0 0 0.75rem rgba(245,166,35,0)}
}

/* Thesis line — bold opener */
.ai-thesis{
  font-family:var(--fd);font-size:0.9375rem;font-weight:700;color:var(--snow);
  letter-spacing:-.005em;line-height:1.45;
  padding:0.5rem 0.75rem;
  background:linear-gradient(180deg,rgba(204,255,0,0.06) 0%,rgba(204,255,0,0.015) 100%);
  border-left:0.1875rem solid var(--green);
  border-radius:0 0.375rem 0.375rem 0;
}
.ai-thesis b{color:var(--green);font-weight:800}

/* Cards row */
.ai-cards-row{
  display:flex;gap:0.5rem;flex-wrap:wrap;
  animation:aiSlideIn .35s ease both;
}
@keyframes aiSlideIn{from{opacity:0;transform:translateY(0.375rem)}to{opacity:1;transform:translateY(0)}}

.ai-card{
  flex:1;min-width:6.5rem;
  padding:0.5rem 0.625rem 0.625rem;
  background:linear-gradient(180deg,var(--bg2) 0%,var(--bg1) 100%);
  border:0.0625rem solid var(--rim);
  border-radius:0.5rem;
  display:flex;flex-direction:column;align-items:center;gap:0.1875rem;
  position:relative;overflow:hidden;
}
.ai-card-verdict{
  border-color:rgba(204,255,0,0.32);
  background:linear-gradient(180deg,rgba(204,255,0,0.08),var(--bg1));
}
.ai-card-verdict.bear{
  border-color:rgba(255,117,96,0.32);
  background:linear-gradient(180deg,rgba(255,117,96,0.08),var(--bg1));
}
.ai-card-num{
  font-family:var(--fd);font-size:1.5rem;font-weight:900;color:var(--green);
  letter-spacing:-.02em;line-height:1;
  text-shadow:0 0 12px rgba(204,255,0,0.35);
}
.ai-card-verdict.bear .ai-card-num{color:#ff7560;text-shadow:0 0 12px rgba(255,117,96,0.35)}
.ai-card-unit{
  font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--fog);
  margin-left:0.125rem;
}
.ai-card-val{
  font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);
  letter-spacing:-.005em;
}
.ai-card-stat.bull .ai-card-val{color:var(--green)}
.ai-card-stat.bear .ai-card-val{color:#ff7560}
.ai-card-stat.warn .ai-card-val{color:var(--gold)}
.ai-card-stat.pill .ai-card-val{color:var(--snow);font-size:0.75rem}
.ai-card-lbl{
  font-family:var(--fm);font-size:0.5625rem;font-weight:700;
  color:var(--fog);letter-spacing:.08em;text-transform:uppercase;
  text-align:center;
}

.ai-card-tally{align-items:stretch;padding:0.625rem}
.ai-card-tally-bar{display:flex;height:0.4375rem;border-radius:0.21875rem;overflow:hidden;background:rgba(0,0,0,0.3)}
.ai-card-tally-bar > div{transition:width .25s}
.ai-card-tally-lbl{
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);
  text-align:center;margin-top:0.25rem;
}
.ai-card-tally-lbl .bull{color:var(--green);font-weight:700}
.ai-card-tally-lbl .bear{color:#ff7560;font-weight:700}
.ai-card-tally-lbl .neu{color:var(--cloud)}

/* Body paragraph */
.ai-body-p{
  font-size:0.8125rem;line-height:1.55;color:var(--cloud);
  letter-spacing:.005em;
}
.ai-body-p b{color:var(--snow);font-weight:700}

/* Citations footer */
.ai-cites{
  margin-top:0.25rem;
  padding:0.5rem 0.625rem;
  background:rgba(0,0,0,0.22);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.4375rem;
}
.ai-cites-label{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold);margin-bottom:0.375rem;
}
.ai-cites-row{display:flex;gap:0.375rem;flex-wrap:wrap}
.ai-cite{
  display:inline-flex;align-items:center;gap:0.4375rem;
  padding:0.3125rem 0.5rem;
  background:linear-gradient(180deg,var(--bg2),var(--bg1));
  border:0.0625rem solid var(--rim);
  border-radius:0.375rem;
  opacity:0;
  animation:citePop .25s ease forwards;
  transition:border-color .15s, transform .15s;
}
.ai-cite:hover{border-color:rgba(245,166,35,0.4);transform:translateY(-0.0625rem)}
@keyframes citePop{from{opacity:0;transform:translateY(0.25rem) scale(0.95)}to{opacity:1;transform:translateY(0) scale(1)}}

.ai-cite-icon{
  width:1.125rem;height:1.125rem;display:flex;align-items:center;justify-content:center;
  color:var(--gold);flex-shrink:0;
}
.ai-cite-icon svg{width:0.75rem;height:0.75rem}
.ai-cite-body{display:flex;flex-direction:column;gap:0;line-height:1.15}
.ai-cite-src{
  font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--cloud);
  letter-spacing:.005em;
}
.ai-cite-tag{
  font-family:var(--fm);font-size:0.5rem;font-weight:700;color:var(--fog);
  letter-spacing:.08em;text-transform:uppercase;
}

.ai-cites-foot{
  margin-top:0.5rem;padding-top:0.4375rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;
}

/* ═══════════════════════════════════════════════════════
   VALUATION LENS — DCF scenarios + peer comparison
   ═══════════════════════════════════════════════════════ */

/* ── DCF Section ─────────────────────────────────────── */
.val-dcf-section{
  margin-top:1.25rem;padding:1rem 1rem 0.875rem;
  background:linear-gradient(180deg,rgba(204,255,0,0.025),rgba(0,0,0,0));
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.875rem;position:relative;overflow:hidden;
}
.val-dcf-head{margin-bottom:1rem}
.val-dcf-titlebar{
  display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.val-dcf-titles{flex:1;min-width:16rem}
.val-dcf-title{
  display:flex;align-items:center;gap:0.5rem;
  font-family:var(--fd);font-size:1.05rem;font-weight:700;color:var(--ink);
  letter-spacing:.01em;
}
.val-dcf-title svg{width:1.125rem;height:1.125rem;color:var(--green)}
.val-dcf-sub{
  margin-top:0.375rem;font-size:0.8125rem;line-height:1.45;color:var(--fog);
  max-width:42rem;
}
.val-dcf-sub em{color:var(--ash);font-style:italic}
.val-dcf-source{
  display:flex;flex-direction:column;gap:0.25rem;
  font-family:var(--fm);font-size:0.625rem;letter-spacing:.04em;text-transform:uppercase;
}
.val-dcf-source-real{color:var(--green)}
.val-dcf-source-stub{color:var(--gold);opacity:0.85}
/* Official caption, top-right of the DCF head */
.val-dcf-asof{
  flex-shrink:0;align-self:flex-start;
  font-family:var(--fm);font-size:0.625rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--fog);
  padding:0.25rem 0.5rem;border:0.0625rem solid var(--rim);border-radius:1rem;
  white-space:nowrap;
}

.val-dcf-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0.75rem;
}
@media (max-width:60rem){.val-dcf-grid{grid-template-columns:1fr}}

.val-dcf-card{
  position:relative;padding:1rem 0.875rem 0.875rem;
  background:rgba(0,0,0,0.35);
  border:0.0625rem solid rgba(255,255,255,0.07);
  border-radius:0.75rem;
  transition:transform 0.15s ease,border-color 0.15s ease;
}
.val-dcf-card:hover{transform:translateY(-2px);border-color:rgba(255,255,255,0.14)}
.val-dcf-card-bull{border-color:rgba(204,255,0,0.22);background:linear-gradient(180deg,rgba(204,255,0,0.05),rgba(0,0,0,0.35))}
.val-dcf-card-base{border-color:rgba(245,166,35,0.25);background:linear-gradient(180deg,rgba(245,166,35,0.05),rgba(0,0,0,0.35))}
.val-dcf-card-bear{border-color:rgba(255,90,95,0.22);background:linear-gradient(180deg,rgba(255,90,95,0.05),rgba(0,0,0,0.35))}

.val-dcf-card-tag{
  font-family:var(--fm);font-size:0.625rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--fog);font-weight:700;margin-bottom:0.5rem;
}
.val-dcf-card-bull .val-dcf-card-tag{color:var(--green)}
.val-dcf-card-base .val-dcf-card-tag{color:var(--gold)}
.val-dcf-card-bear .val-dcf-card-tag{color:var(--red)}

.val-dcf-card-value{
  font-family:var(--fd);font-size:2.25rem;font-weight:700;color:var(--ink);
  letter-spacing:-.02em;line-height:1;margin-bottom:0.25rem;
}
.val-dcf-card-up{
  font-family:var(--fm);font-size:0.8125rem;font-weight:700;letter-spacing:.01em;
  margin-bottom:0.875rem;
}
.val-dcf-card-up.green{color:var(--green)}
.val-dcf-card-up.gold{color:var(--gold)}
.val-dcf-card-up.red{color:var(--red)}

.val-dcf-card-assumptions{
  display:grid;grid-template-columns:1fr 1fr;gap:0.375rem 0.5rem;
  padding:0.5rem 0.625rem;background:rgba(0,0,0,0.35);
  border:0.0625rem solid rgba(255,255,255,0.05);border-radius:0.5rem;
  margin-bottom:0.625rem;
}
.val-dcf-assumption{
  font-family:var(--fm);font-size:0.6875rem;color:var(--fog);
}
.val-dcf-assumption b{color:var(--ash);font-weight:600}

.val-dcf-card-note{
  font-size:0.75rem;line-height:1.4;color:var(--fog);font-style:italic;
}

.val-dcf-footer{
  display:flex;align-items:center;gap:0.5rem;
  margin-top:0.875rem;padding-top:0.625rem;
  border-top:0.0625rem solid rgba(255,255,255,0.05);
  font-size:0.6875rem;color:var(--fog);line-height:1.4;
}
.val-dcf-footer b{color:var(--ash);font-weight:600}
.val-dcf-pending-dot{
  width:0.5rem;height:0.5rem;border-radius:50%;background:var(--gold);
  box-shadow:0 0 6px rgba(245,166,35,0.6);flex-shrink:0;
  animation:val-pulse 2s ease-in-out infinite;
}
@keyframes val-pulse{
  0%,100%{opacity:1;transform:scale(1)}
  50%{opacity:0.5;transform:scale(0.85)}
}

/* ── Peer Comparison Section ─────────────────────────── */
.val-peers-section{
  margin-top:1.25rem;padding:1rem 1rem 0.875rem;
  background:linear-gradient(180deg,rgba(90,200,250,0.025),rgba(0,0,0,0));
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.875rem;
}
.val-peers-head{margin-bottom:0.875rem}
.val-peers-titlebar{
  display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap;
}
.val-peers-titles{flex:1;min-width:14rem}
.val-peers-title{
  display:flex;align-items:center;gap:0.5rem;
  font-family:var(--fd);font-size:1.05rem;font-weight:700;color:var(--ink);
}
.val-peers-title svg{width:1.125rem;height:1.125rem;color:var(--blue)}
.val-peers-sub{
  margin-top:0.375rem;font-size:0.8125rem;line-height:1.45;color:var(--fog);
  max-width:36rem;
}

.val-peers-tabs{
  display:flex;align-items:center;gap:0.25rem;
  padding:0.1875rem;background:rgba(0,0,0,0.45);
  border:0.0625rem solid rgba(255,255,255,0.06);border-radius:0.5rem;
}
.val-peers-tab{
  appearance:none;background:transparent;border:none;cursor:pointer;
  padding:0.4375rem 0.75rem;border-radius:0.375rem;
  font-family:var(--fm);font-size:0.75rem;font-weight:600;letter-spacing:.02em;
  color:var(--fog);transition:background 0.15s ease,color 0.15s ease;
}
.val-peers-tab:hover{color:var(--ash)}
.val-peers-tab.active{background:rgba(255,255,255,0.08);color:var(--ink)}

.val-peers-table-wrap{
  overflow-x:auto;
  border:0.0625rem solid rgba(255,255,255,0.05);
  border-radius:0.625rem;background:rgba(0,0,0,0.25);
}
.val-peers-table{
  width:100%;border-collapse:collapse;font-size:0.8125rem;
}
.val-peers-table thead th{
  position:sticky;top:0;background:rgba(0,0,0,0.55);
  font-family:var(--fm);font-size:0.6875rem;letter-spacing:.08em;text-transform:uppercase;
  font-weight:700;color:var(--fog);padding:0.625rem 0.75rem;
  text-align:right;border-bottom:0.0625rem solid rgba(255,255,255,0.08);
  white-space:nowrap;
}
.val-peers-table thead th.val-peers-th-peer{text-align:left;min-width:11rem}
.val-peers-table tbody td{
  padding:0.625rem 0.75rem;text-align:right;color:var(--ash);
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
  font-family:var(--fm);font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.val-peers-table tbody td:first-child{text-align:left}
.val-peers-table tbody tr:last-child td{border-bottom:none}
.val-peers-table tbody tr:hover td{background:rgba(255,255,255,0.02)}

.val-peers-table .pos{color:var(--green)}
.val-peers-table .neg{color:var(--red)}

.val-peers-row-subject td{
  background:rgba(204,255,0,0.04) !important;
  border-bottom-color:rgba(204,255,0,0.15) !important;
}
.val-peers-row-subject td b{color:var(--ink)}
.val-peers-row-median td{
  background:rgba(255,255,255,0.025) !important;
  font-style:normal;
}
.val-peers-row-median td b{color:var(--fog);font-weight:700}

.val-peers-cell{
  display:flex;align-items:center;gap:0.625rem;
}
.val-peers-logo{
  width:1.875rem;height:1.875rem;border-radius:0.375rem;
  background:#fff;object-fit:contain;padding:0.125rem;
  border:0.0625rem solid rgba(255,255,255,0.08);flex-shrink:0;
}
.val-peers-logo-fallback{
  width:1.875rem;height:1.875rem;border-radius:0.375rem;
  background:linear-gradient(135deg,var(--blue),var(--purple));
  display:flex;align-items:center;justify-content:center;
  font-family:var(--fd);font-size:0.6875rem;font-weight:700;color:#fff;
  border:0.0625rem solid rgba(255,255,255,0.08);flex-shrink:0;
  letter-spacing:.02em;
}
.val-peers-logo-median{
  background:linear-gradient(135deg,rgba(255,255,255,0.1),rgba(255,255,255,0.04));
  color:var(--ash);font-style:normal;
}
.val-peers-name{display:flex;flex-direction:column;line-height:1.2;text-align:left}
.val-peers-name b{font-size:0.8125rem;color:var(--ash);font-weight:600}
.val-peers-row-subject .val-peers-name b{color:var(--ink)}
.val-peers-name small{font-size:0.6875rem;color:var(--fog);font-family:var(--fm);letter-spacing:.02em}

.val-peers-foot{
  margin-top:0.625rem;padding-top:0.5rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-size:0.6875rem;color:var(--fog);line-height:1.4;
}
.val-peers-foot b{color:var(--ash);font-weight:600}
.ai-cites-foot b{color:var(--gold);font-weight:700}

/* ═══════════════════════════════════════════════════════════════════
   Valuation X-Ray — reverse DCF, football field, advanced cards
   ═══════════════════════════════════════════════════════════════════ */
.val-xray-section{margin-top:1.5rem}
.val-xray-head{margin-bottom:1rem}
.val-xray-title{
  display:flex;align-items:center;gap:0.5rem;
  font-size:1rem;font-weight:700;color:var(--text-primary);
}
.val-xray-title svg{width:1.05rem;height:1.05rem;color:var(--green)}
.val-xray-sub{margin-top:0.25rem;font-size:0.8125rem;color:var(--fog);line-height:1.45}

/* ── Reverse DCF ── */
.val-rdcf{
  background:rgba(204,255,0,0.025);border:0.0625rem solid rgba(204,255,0,0.14);
  border-radius:0.875rem;padding:1.125rem 1.25rem;margin-bottom:1rem;
}
.val-rdcf-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.val-rdcf-title{font-size:0.9375rem;font-weight:700;color:var(--text-primary)}
.val-rdcf-title b{color:var(--green)}
.val-rdcf-sub{margin-top:0.3rem;font-size:0.78125rem;color:var(--fog);line-height:1.5;max-width:46rem}
.val-rdcf-verdict-chip{
  flex:0 0 auto;padding:0.3rem 0.7rem;border-radius:999px;font-size:0.75rem;font-weight:700;
  white-space:nowrap;
}
.val-rdcf-verdict-chip.good{background:rgba(204,255,0,0.14);color:var(--green)}
.val-rdcf-verdict-chip.warn{background:rgba(255,117,96,0.14);color:#ff7560}
.val-rdcf-body{
  display:grid;grid-template-columns:minmax(0,0.9fr) minmax(0,1.6fr);gap:2rem;
  margin-top:1.125rem;align-items:center;
}
.val-rdcf-implies-lbl,.val-rdcf-scale-lbl{
  font-size:0.6875rem;font-weight:700;letter-spacing:0.03em;text-transform:uppercase;
  color:var(--ash);margin-bottom:0.625rem;
}
/* implied-assumption mini-grid (value over label, no wrapping collisions) */
.val-rdcf-imp-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem}
.val-rdcf-imp{
  display:flex;flex-direction:column;gap:0.1rem;
  padding:0.5rem 0.625rem;border-radius:0.5rem;
  background:rgba(255,255,255,0.025);border:0.0625rem solid rgba(255,255,255,0.05);
}
.val-rdcf-imp-v{font-size:1.0625rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums;line-height:1.1}
.val-rdcf-imp-k{font-size:0.65rem;color:var(--fog);line-height:1.25}
/* scenario scale — inset from the column edges so the Bear/Bull end labels
   (centered on their 0%/100% nodes) don't crowd the box edge */
.val-rdcf-scale{position:relative;height:3.25rem;margin:1.25rem 1.75rem 0 1rem}
.val-rdcf-scale-track{
  position:absolute;top:0;left:0;right:0;height:0.375rem;border-radius:999px;
  background:linear-gradient(90deg,rgba(255,117,96,0.5),rgba(245,166,35,0.5),rgba(204,255,0,0.5));
}
.val-rdcf-scale-fill{position:absolute;top:0;left:0;height:0.375rem;border-radius:999px;background:transparent}
.val-rdcf-node{position:absolute;top:0;transform:translateX(-50%)}
.val-rdcf-node-dot{
  position:absolute;top:-0.0625rem;left:50%;transform:translateX(-50%);
  width:0.625rem;height:0.625rem;border-radius:50%;background:var(--fog);
  border:0.125rem solid var(--bg-primary,#0a0a0a);
}
.val-rdcf-node.now .val-rdcf-node-dot{width:0.875rem;height:0.875rem;background:var(--green);top:-0.18rem;box-shadow:0 0 0 0.25rem rgba(204,255,0,0.18)}
.val-rdcf-node.bear .val-rdcf-node-dot{background:#ff7560}
.val-rdcf-node.bull .val-rdcf-node-dot{background:var(--green)}
.val-rdcf-node-lbl{
  position:absolute;top:1rem;left:50%;transform:translateX(-50%);text-align:center;
  font-size:0.65rem;color:var(--fog);line-height:1.3;white-space:nowrap;
}
.val-rdcf-node-lbl b{display:block;font-size:0.8125rem;color:var(--text-primary);font-weight:700}
.val-rdcf-node-lbl small{font-size:0.6rem;color:var(--ash)}
.val-rdcf-node-lbl.up b{color:var(--green)}
.val-rdcf-node.now .val-rdcf-node-lbl{top:1.25rem;font-weight:600}
.val-rdcf-verdict{
  margin-top:1.25rem;padding-top:1rem;border-top:0.0625rem solid rgba(255,255,255,0.06);
  font-size:0.8125rem;line-height:1.55;color:var(--ash);
}
.val-rdcf-verdict b{color:var(--text-primary);font-weight:700}

/* ── Football field ── */
.val-ffield{
  background:var(--bg-secondary,rgba(255,255,255,0.02));
  border:0.0625rem solid rgba(255,255,255,0.06);border-radius:0.875rem;
  padding:1.125rem 1.25rem;margin-bottom:1rem;
}
.val-ffield-title{font-size:0.9375rem;font-weight:700;color:var(--text-primary)}
.val-ffield-sub{margin-top:0.25rem;font-size:0.78125rem;color:var(--fog);line-height:1.45}
.val-ffield-chart{position:relative;margin-top:1.5rem;padding-top:1.25rem}
.val-ffield-now{
  position:absolute;top:0;bottom:1.25rem;width:0;z-index:3;
  border-left:0.0938rem dashed rgba(204,255,0,0.55);
}
.val-ffield-now-lbl{
  position:absolute;top:-0.125rem;left:50%;transform:translateX(-50%);
  background:var(--green);color:#0a0a0a;font-size:0.625rem;font-weight:700;
  padding:0.05rem 0.35rem;border-radius:0.25rem;white-space:nowrap;
}
.val-ffield-row{display:flex;align-items:center;gap:0.75rem;height:2.5rem}
.val-ffield-rlabel{
  flex:0 0 4.25rem;font-size:0.75rem;font-weight:700;color:var(--text-primary);
  display:flex;flex-direction:column;line-height:1.15;
}
.val-ffield-rlabel small{font-size:0.625rem;font-weight:500;color:var(--fog)}
.val-ffield-track{position:relative;flex:1;height:100%}
.val-ffield-bar{
  position:absolute;top:50%;transform:translateY(-50%);height:0.875rem;
  border-radius:0.3rem;opacity:0.85;
}
.val-ffield-bar.dcf{background:linear-gradient(90deg,#ff7560,var(--green))}
.val-ffield-bar.comps{background:rgba(120,170,255,0.55)}
.val-ffield-bar.analyst{background:rgba(245,166,35,0.5)}
.val-ffield-bar.creator{background:rgba(204,255,0,0.4)}
.val-ffield-bar.range{background:rgba(255,255,255,0.12)}
.val-ffield-mid{
  position:absolute;top:50%;transform:translate(-50%,-50%);
  width:0.1875rem;height:1.25rem;border-radius:999px;background:var(--text-primary);z-index:2;
}
.val-ffield-lo,.val-ffield-hi{
  position:absolute;top:50%;transform:translateY(-50%);
  font-size:0.625rem;font-weight:600;color:var(--ash);
  font-variant-numeric:tabular-nums;pointer-events:none;
}
.val-ffield-lo{transform:translate(-104%,-50%)}
.val-ffield-hi{transform:translate(4%,-50%)}
.val-ffield-foot{
  margin-top:1rem;padding-top:0.625rem;border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-size:0.6875rem;color:var(--fog);line-height:1.45;
}

/* ── Advanced stat-cards row ── */
.val-xcards{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0.75rem;margin-bottom:1rem;
}
.val-xcard{
  background:var(--bg-secondary,rgba(255,255,255,0.02));
  border:0.0625rem solid rgba(255,255,255,0.06);border-radius:0.75rem;
  padding:0.875rem 0.9375rem;display:flex;flex-direction:column;
}
.val-xcard-top{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;margin-bottom:0.75rem}
.val-xcard-name{font-size:0.78125rem;font-weight:700;color:var(--text-primary)}
.val-xcard-tag{padding:0.15rem 0.45rem;border-radius:0.3rem;font-size:0.65rem;font-weight:700;white-space:nowrap}
.val-xcard-tag.good{background:rgba(204,255,0,0.14);color:var(--green)}
.val-xcard-tag.warn{background:rgba(255,117,96,0.14);color:#ff7560}
.val-xcard-r{display:flex;align-items:baseline;justify-content:space-between;gap:0.5rem;padding:0.22rem 0;font-size:0.75rem;color:var(--fog)}
.val-xcard-r b{font-size:0.875rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}
.val-xcard-r.muted{color:var(--ash);opacity:0.85;border-top:0.0625rem solid rgba(255,255,255,0.04);margin-top:0.15rem;padding-top:0.35rem}
.val-xcard-r.muted b{color:var(--ash);font-weight:600}
.val-xcard-note{margin-top:auto;padding-top:0.625rem;font-size:0.6875rem;color:var(--fog);line-height:1.5}
.val-xcard-note b{color:var(--ash);font-weight:700}
/* TV gauge */
.val-xcard-gaugewrap{margin-bottom:0.5rem}
.val-xcard-gauge{height:0.5rem;border-radius:999px;background:rgba(255,255,255,0.06);overflow:hidden}
.val-xcard-gauge-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold),#ff7560)}
.val-xcard-gauge-val{margin-top:0.5rem;font-size:0.75rem;color:var(--fog)}
.val-xcard-gauge-val b{font-size:1.375rem;font-weight:300;color:var(--text-primary);margin-right:0.25rem}
.val-xcard-gauge-val span{color:var(--ash)}
/* Quality bars */
.val-xcard-qhero{display:flex;align-items:baseline;gap:0.4rem;margin-bottom:0.625rem}
.val-xcard-qhero b{font-size:1.625rem;font-weight:300;color:var(--green);line-height:1}
.val-xcard-qhero span{font-size:0.6875rem;color:var(--fog)}
.val-xcard-qbar{display:flex;align-items:center;gap:0.4rem;padding:0.15rem 0;font-size:0.6875rem}
.val-xcard-qbar .k{flex:0 0 2.75rem;color:var(--ash);font-weight:600}
.val-xcard-qbar .t{flex:1;height:0.375rem;border-radius:999px;background:rgba(255,255,255,0.05);overflow:hidden}
.val-xcard-qbar .f{display:block;height:100%;border-radius:999px;background:var(--fog)}
.val-xcard-qbar .f.nvda{background:var(--green)}
.val-xcard-qbar .v{flex:0 0 2rem;text-align:right;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}

@media (max-width:880px){
  .val-rdcf-body{grid-template-columns:1fr;gap:2.25rem}
  .val-xcards{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════════════════════════
   Valuation lens — expanded multiples grid (8 cards, denser sub text)
   ═══════════════════════════════════════════════════════════════════ */
.val-mult-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.625rem;
  margin-bottom:1.5rem;
}
@media (max-width:900px){.val-mult-grid{grid-template-columns:repeat(2,1fr)}}

/* ═══════════════════════════════════════════════════════════════════
   Historical Multiples Bands — 5y range with min/median/max + dot
   ═══════════════════════════════════════════════════════════════════ */
.val-bands-section{
  margin:1.5rem 0;padding:1.25rem;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.75rem;
}
.val-bands-head{margin-bottom:1rem}
.val-bands-title{
  display:flex;align-items:center;gap:0.5rem;
  font-size:0.875rem;font-weight:600;color:var(--ink);
  margin-bottom:0.375rem;
}
.val-bands-title svg{width:1rem;height:1rem;color:var(--green)}
.val-bands-sub{font-size:0.75rem;color:var(--fog);line-height:1.45}
.val-bands-sub b{color:var(--ash);font-weight:600}
/* Axis header — anchors the single cheap→rich reading direction over the track column */
.val-band-axis-row{
  display:grid;grid-template-columns:7rem 1fr 9rem;align-items:center;gap:0.875rem;
  margin:0.875rem 0 0.625rem;
}
.val-band-axis{
  display:flex;justify-content:space-between;align-items:center;
  font-size:0.625rem;font-weight:600;letter-spacing:0.04em;text-transform:uppercase;
}
.vba-cheap{color:var(--green)}
.vba-mid{color:var(--fog);font-weight:500}
.vba-rich{color:var(--gold)}
.val-bands-grid{display:flex;flex-direction:column;gap:0.875rem}
.val-band-row{
  display:grid;grid-template-columns:7rem 1fr 9rem;align-items:center;gap:0.875rem;
}
.val-band-label{
  font-size:0.75rem;font-weight:600;color:var(--ash);
  letter-spacing:0.02em;text-transform:uppercase;
}
.val-band-track{
  position:relative;height:0.5rem;border-radius:0.25rem;
  background:linear-gradient(90deg,
    rgba(204,255,0,0.22) 0%,
    rgba(204,255,0,0.10) 35%,
    rgba(255,255,255,0.06) 50%,
    rgba(245,166,35,0.10) 65%,
    rgba(245,166,35,0.25) 100%
  );
  border:0.0625rem solid rgba(255,255,255,0.05);
}
/* .val-band-track-inverse retired — every row now reads cheap(left)→rich(right);
   FCF yield is inverted in JS instead of flipping the gradient. */
/* track + its 5-yr range caption stacked in the middle grid cell */
.val-band-track-col{display:flex;flex-direction:column;gap:0.375rem}
.val-band-ends{
  display:flex;justify-content:space-between;align-items:baseline;
  font-size:0.625rem;color:var(--fog);font-variant-numeric:tabular-nums;
}
.val-band-ends b{color:var(--ash);font-weight:600}
.vbe-lo{color:var(--fog)}
.vbe-hi{color:var(--fog)}
.val-band-med{
  position:absolute;left:50%;top:-0.25rem;bottom:-0.25rem;width:0.0625rem;
  background:rgba(255,255,255,0.18);
}
.val-band-dot{
  position:absolute;top:50%;width:0.875rem;height:0.875rem;border-radius:50%;
  background:var(--fog);box-shadow:0 0 0 0.1875rem rgba(255,255,255,0.10);
  transform:translate(-50%,-50%);
  transition:left 0.4s ease;
}
.val-band-dot-cheap{background:var(--green);box-shadow:0 0 0 0.1875rem rgba(204,255,0,0.18)}
.val-band-dot-fair{background:var(--ash);box-shadow:0 0 0 0.1875rem rgba(255,255,255,0.12)}
.val-band-dot-warn{background:var(--gold);box-shadow:0 0 0 0.1875rem rgba(245,166,35,0.18)}
.val-band-value{
  text-align:right;font-size:0.75rem;color:var(--ash);
  font-variant-numeric:tabular-nums;line-height:1.3;
}
.val-band-value b{color:var(--ink);font-weight:700}
.val-band-verdict{
  display:inline-block;margin-left:0.25rem;padding:0.0625rem 0.375rem;
  border-radius:0.625rem;font-size:0.625rem;font-weight:600;
  letter-spacing:0.02em;text-transform:lowercase;vertical-align:middle;
}
.vbv-cheap{color:var(--green);background:rgba(204,255,0,0.12)}
.vbv-fair{color:var(--ash);background:rgba(255,255,255,0.07)}
.vbv-rich{color:var(--gold);background:rgba(245,166,35,0.12)}
.val-bands-foot{
  margin-top:1rem;padding-top:0.75rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-size:0.6875rem;color:var(--fog);line-height:1.5;
  display:flex;align-items:center;gap:0.25rem;flex-wrap:wrap;
}
.val-band-dot-legend{
  display:inline-block;width:0.625rem;height:0.625rem;border-radius:50%;
  background:var(--fog);vertical-align:middle;margin:0 0.125rem;
}
.val-band-dot-legend-cheap{background:var(--green)}
.val-band-dot-legend-fair{background:var(--ash)}
.val-band-dot-legend-warn{background:var(--gold)}

/* ═══════════════════════════════════════════════════════════════════
   Analyst Targets & Consensus — PT ladder + rec breakdown + changes
   ═══════════════════════════════════════════════════════════════════ */
.val-analyst-section{
  margin:1.5rem 0;padding:1.25rem;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.75rem;
}
.val-analyst-head{margin-bottom:1.25rem}
.val-analyst-title{
  display:flex;align-items:center;gap:0.5rem;
  font-size:0.875rem;font-weight:600;color:var(--ink);
  margin-bottom:0.375rem;
}
.val-analyst-title svg{width:1rem;height:1rem;color:var(--green)}
.val-analyst-sub{font-size:0.75rem;color:var(--fog);line-height:1.45}
.val-analyst-sub b{color:var(--ash);font-weight:600}
.val-analyst-body{
  display:grid;grid-template-columns:1.4fr 1fr;gap:1.5rem;
  margin-bottom:1rem;
}
@media (max-width:900px){.val-analyst-body{grid-template-columns:1fr}}

/* Price-target ladder */
.val-analyst-ladder{
  padding:1rem;background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);border-radius:0.5rem;
}
.val-analyst-ladder-title{
  font-size:0.6875rem;font-weight:700;color:var(--ash);
  letter-spacing:0.06em;text-transform:uppercase;margin-bottom:1.5rem;
}
.val-analyst-ladder-track{
  position:relative;height:2.75rem;margin:0 0.5rem 1.25rem;
}
.val-analyst-ladder-bar{
  position:absolute;top:50%;left:0;right:0;height:0.25rem;
  border-radius:0.125rem;transform:translateY(-50%);
  background:linear-gradient(90deg,
    rgba(225,53,53,0.35) 0%,
    rgba(245,166,35,0.40) 50%,
    rgba(204,255,0,0.45) 100%
  );
}
.val-analyst-ladder-marker{
  position:absolute;top:50%;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;
  font-variant-numeric:tabular-nums;
}
.val-analyst-marker-dot{
  width:0.75rem;height:0.75rem;border-radius:50%;
  background:rgba(255,255,255,0.6);border:0.125rem solid rgba(0,0,0,0.5);
}
.val-analyst-marker-dot-now{
  background:var(--ink);width:1rem;height:1rem;
  box-shadow:0 0 0 0.1875rem rgba(255,255,255,0.12);
}
.val-analyst-marker-dot-median{
  background:var(--green);
  box-shadow:0 0 0 0.1875rem rgba(204,255,0,0.18);
}
.val-analyst-marker-label{
  position:absolute;top:1rem;font-size:0.625rem;color:var(--fog);
  white-space:nowrap;text-align:center;line-height:1.2;
}
.val-analyst-marker-label b{color:var(--ash);font-weight:700;font-size:0.6875rem}
.val-analyst-marker-label-now b{color:var(--ink)}
/* The Current marker can land anywhere on the axis (including right on top of the
   fixed Low/Median/High labels) — its label always rides ABOVE the bar so the two
   label rows can never collide, wherever the price sits. */
.val-analyst-marker-now .val-analyst-marker-label{top:auto;bottom:1.35rem}
.val-analyst-marker-label-median b{color:var(--green)}
.val-analyst-marker-low .val-analyst-marker-label{left:0;text-align:left}
.val-analyst-marker-high .val-analyst-marker-label{right:0;text-align:right}
.val-analyst-ladder-foot{
  font-size:0.6875rem;color:var(--fog);line-height:1.5;
  padding-top:0.625rem;border-top:0.0625rem solid rgba(255,255,255,0.04);
}
.val-analyst-ladder-foot b{font-weight:700}

/* Recommendation breakdown */
.val-analyst-rec{
  padding:1rem;background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);border-radius:0.5rem;
}
.val-analyst-rec-title{
  font-size:0.6875rem;font-weight:700;color:var(--ash);
  letter-spacing:0.06em;text-transform:uppercase;margin-bottom:0.75rem;
}
.val-analyst-rec-bar{
  display:flex;height:1.5rem;border-radius:0.25rem;overflow:hidden;
  border:0.0625rem solid rgba(255,255,255,0.06);margin-bottom:0.75rem;
}
.val-analyst-rec-seg{
  display:flex;align-items:center;justify-content:center;
  font-size:0.625rem;font-weight:700;color:rgba(0,0,0,0.7);
  letter-spacing:0.05em;min-width:1.5rem;
}
.val-rec-strongbuy{background:#9ce600}
.val-rec-buy{background:#cff36e}
.val-rec-hold{background:rgba(245,166,35,0.85);color:rgba(0,0,0,0.75)}
.val-rec-sell{background:rgba(225,103,103,0.85);color:rgba(255,255,255,0.95)}
.val-rec-strongsell{background:#c52525;color:rgba(255,255,255,0.95)}
.val-analyst-rec-legend{
  display:grid;grid-template-columns:1fr 1fr;gap:0.25rem 0.75rem;
  font-size:0.6875rem;color:var(--fog);margin-bottom:0.75rem;
}
.val-analyst-rec-item{
  display:flex;align-items:center;gap:0.375rem;
  font-variant-numeric:tabular-nums;
}
.val-analyst-rec-item b{color:var(--ash);font-weight:700;margin-left:auto}
.val-rec-dot{
  display:inline-block;width:0.5rem;height:0.5rem;border-radius:50%;
}
.val-analyst-rec-score{
  padding-top:0.625rem;border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-size:0.75rem;color:var(--fog);
}
.val-analyst-rec-score b{font-weight:700}

/* Rating changes feed */
.val-analyst-changes{
  margin-top:1rem;padding-top:1rem;
  border-top:0.0625rem solid rgba(255,255,255,0.06);
}
.val-analyst-changes-title{
  font-size:0.6875rem;font-weight:700;color:var(--ash);
  letter-spacing:0.06em;text-transform:uppercase;margin-bottom:0.625rem;
}
.val-analyst-changes-list{display:flex;flex-direction:column;gap:0.375rem}
.val-analyst-change-row{
  display:flex;align-items:center;gap:0.625rem;flex-wrap:wrap;
  padding:0.5rem 0.75rem;
  background:rgba(0,0,0,0.15);border:0.0625rem solid rgba(255,255,255,0.04);
  border-radius:0.375rem;
  font-size:0.75rem;color:var(--ash);
}
.val-analyst-change-row b{color:var(--ink);font-weight:600}
.val-analyst-change-date{
  font-size:0.625rem;color:var(--fog);font-weight:600;letter-spacing:0.04em;
  text-transform:uppercase;min-width:3rem;
}
.val-analyst-change-row .muted{color:var(--fog);font-weight:400;font-style:italic}

/* ═══════════════════════════════════════════════════════════════════
   Margin-of-Safety meter — composite gauge + component breakdown
   ═══════════════════════════════════════════════════════════════════ */
.val-mos-section{
  margin:1.5rem 0;padding:1.25rem;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.75rem;
}
.val-mos-head{margin-bottom:1.25rem}
.val-mos-title{
  display:flex;align-items:center;gap:0.5rem;
  font-size:0.875rem;font-weight:600;color:var(--ink);
  margin-bottom:0.375rem;
}
.val-mos-title svg{width:1rem;height:1rem;color:var(--green)}
.val-mos-sub{font-size:0.75rem;color:var(--fog);line-height:1.45}
.val-mos-body{
  display:grid;grid-template-columns:1.1fr 1fr;gap:1.5rem;align-items:center;
}
@media (max-width:900px){.val-mos-body{grid-template-columns:1fr}}

.val-mos-gauge{
  display:flex;flex-direction:column;gap:0.5rem;
  padding:1rem;background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);border-radius:0.5rem;
  position:relative;
}
.val-mos-gauge-track{
  position:relative;height:1.25rem;
  background:rgba(255,255,255,0.05);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.625rem;overflow:hidden;
}
.val-mos-gauge-fill{
  position:absolute;left:0;top:0;bottom:0;
  background:linear-gradient(90deg,
    rgba(225,53,53,0.85) 0%,
    rgba(245,166,35,0.85) 50%,
    rgba(204,255,0,0.85) 100%
  );
  transition:width 0.6s ease;
}
.val-mos-gauge-tick{
  position:absolute;top:-0.1875rem;bottom:-0.1875rem;width:0.0625rem;
  background:rgba(255,255,255,0.15);
}
.val-mos-gauge-labels{
  display:flex;justify-content:space-between;
  font-size:0.625rem;color:var(--fog);letter-spacing:0.04em;
  text-transform:uppercase;
}
.val-mos-gauge-readout{
  display:flex;flex-direction:column;align-items:center;
  margin-top:0.5rem;padding-top:0.625rem;
  border-top:0.0625rem solid rgba(255,255,255,0.05);
}
.val-mos-score{
  font-size:2.5rem;font-weight:300;line-height:1;
  color:var(--gold);font-variant-numeric:tabular-nums;
}
.val-mos-label{
  font-size:0.75rem;color:var(--ash);margin-top:0.25rem;
}

.val-mos-breakdown{display:flex;flex-direction:column;gap:0.75rem}
.val-mos-comp{
  display:grid;grid-template-columns:1fr;gap:0.25rem;
  padding:0.625rem 0.75rem;background:rgba(0,0,0,0.15);
  border:0.0625rem solid rgba(255,255,255,0.04);
  border-radius:0.375rem;
}
.val-mos-comp-label{
  font-size:0.6875rem;color:var(--ash);font-weight:600;
  display:flex;align-items:center;gap:0.4375rem;flex-wrap:wrap;
}
.val-mos-comp-label .muted{color:var(--fog);font-weight:400}
/* YouTube include/exclude toggle + its live delta on the score */
.val-mos-yt-toggle{
  font-family:var(--fm);font-size:0.5625rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:#ff8eb6;background:rgba(255,142,182,0.1);border:0.0625rem solid rgba(255,142,182,0.35);
  border-radius:1rem;padding:0.125rem 0.5rem;cursor:pointer;transition:all .15s;
}
.val-mos-yt-toggle[aria-pressed="true"]{color:#ff8eb6;background:rgba(255,142,182,0.14)}
.val-mos-yt-toggle[aria-pressed="false"]{color:var(--fog);background:rgba(255,255,255,0.04);border-color:var(--rim)}
.val-mos-yt-toggle:hover{filter:brightness(1.2)}
.val-mos-yt-delta{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.02em;color:var(--fog)}
.val-mos-yt-delta.pos{color:var(--green)} .val-mos-yt-delta.neg{color:#ff7560}
/* Dim the row when creators are excluded from the score */
.val-mos-comp.val-mos-comp-excluded{opacity:0.42}
.val-mos-comp.val-mos-comp-excluded .val-mos-comp-bar{filter:grayscale(1)}
.val-mos-comp-bar{
  height:0.375rem;background:rgba(255,255,255,0.05);border-radius:0.1875rem;
  overflow:hidden;
}
.val-mos-comp-fill{
  height:100%;background:var(--green);transition:width 0.5s ease;
}
.val-mos-comp-fill-warn{background:var(--gold)}
.val-mos-comp-val{
  font-size:0.6875rem;color:var(--fog);text-align:right;
  font-variant-numeric:tabular-nums;
}

/* ═══════════════════════════════════════════════════════════════════
   YouTube Creator Signal — avg PT + sentiment % + mention feed
   ═══════════════════════════════════════════════════════════════════ */
.val-yt-section,
.val-mentions-section{
  margin:1.5rem 0;padding:1.25rem;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.75rem;
}
/* mentions feed pulled out of the YT signal block into its own bottom-of-cluster section */
.val-mentions-section .val-yt-mentions{margin-top:0}
.val-yt-head{margin-bottom:1.25rem}
.val-yt-titlebar{
  display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
}
.val-yt-titles{flex:1;min-width:0}
.val-yt-title{
  display:flex;align-items:center;gap:0.5rem;
  font-size:0.875rem;font-weight:600;color:var(--ink);
  margin-bottom:0.375rem;
}
.val-yt-title svg{width:1.125rem;height:1.125rem;color:#e13535}
.val-yt-sub{font-size:0.75rem;color:var(--fog);line-height:1.45}
.val-yt-sub b{color:var(--ash);font-weight:600}
.val-yt-mode-badge{
  flex-shrink:0;
  font-size:0.625rem;font-weight:700;letter-spacing:0.06em;
  padding:0.25rem 0.5rem;border-radius:0.25rem;
  background:rgba(204,255,0,0.10);color:var(--green);
  border:0.0625rem solid rgba(204,255,0,0.25);
}

.val-yt-body{
  display:grid;grid-template-columns:1.1fr 1fr;gap:1.25rem;
  margin-bottom:1.25rem;
}
@media (max-width:900px){.val-yt-body{grid-template-columns:1fr}}

/* Card shells */
.val-yt-pt-card,.val-yt-sent-card{
  padding:1rem;background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);border-radius:0.5rem;
  display:flex;flex-direction:column;gap:0.875rem;
}
.val-yt-card-title{
  font-size:0.6875rem;font-weight:700;color:var(--ash);
  letter-spacing:0.06em;text-transform:uppercase;
}

/* Avg PT hero */
.val-yt-pt-hero{
  display:flex;align-items:baseline;gap:0.75rem;
}
.val-yt-pt-value{
  font-size:2.25rem;font-weight:300;line-height:1;
  color:var(--ink);font-variant-numeric:tabular-nums;
}
.val-yt-pt-upside{font-size:0.875rem;font-weight:600}

/* Avg PT range bar (mirrors analyst ladder visually) */
.val-yt-pt-range{margin-top:0.25rem}
.val-yt-pt-range-track{
  position:relative;height:2.75rem;margin:0 0.5rem;
}
.val-yt-pt-range-bar{
  position:absolute;top:50%;left:0;right:0;height:0.25rem;
  border-radius:0.125rem;transform:translateY(-50%);
  background:linear-gradient(90deg,
    rgba(225,53,53,0.30) 0%,
    rgba(245,166,35,0.40) 50%,
    rgba(204,255,0,0.45) 100%
  );
}
.val-yt-pt-range-marker{
  position:absolute;top:50%;transform:translate(-50%,-50%);
  display:flex;flex-direction:column;align-items:center;
}
.val-yt-pt-range-dot{
  width:0.75rem;height:0.75rem;border-radius:50%;
  background:rgba(255,255,255,0.6);border:0.125rem solid rgba(0,0,0,0.5);
}
.val-yt-pt-range-dot-now{
  background:var(--ink);width:1rem;height:1rem;
  box-shadow:0 0 0 0.1875rem rgba(255,255,255,0.12);
}
.val-yt-pt-range-dot-avg{
  background:#e13535;
  box-shadow:0 0 0 0.1875rem rgba(225,53,53,0.18);
}
.val-yt-pt-range-label{
  position:absolute;top:1rem;font-size:0.625rem;color:var(--fog);
  white-space:nowrap;text-align:center;line-height:1.2;
}
.val-yt-pt-range-label b{color:var(--ash);font-weight:700;font-size:0.6875rem}
.val-yt-pt-range-label-now b{color:var(--ink)}
.val-yt-pt-range-label-avg b{color:#ff6b6b}
.val-yt-pt-marker-low .val-yt-pt-range-label{left:0;text-align:left}
.val-yt-pt-marker-high .val-yt-pt-range-label{right:0;text-align:right}

.val-yt-pt-foot{
  margin-top:0.5rem;padding-top:0.625rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-size:0.6875rem;color:var(--fog);line-height:1.55;
}
.val-yt-pt-foot b{font-weight:700;color:var(--ash)}
.val-yt-pt-foot b.green{color:var(--green)}

/* ── Crowd vs Wall Street comparison panel ── */
.val-yt-cmp{
  margin-top:1rem;padding-top:1rem;
  border-top:0.0625rem solid rgba(255,255,255,0.06);
}
.val-yt-cmp-title{
  font-size:0.6875rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;
  color:var(--ash);margin-bottom:0.75rem;
}
.val-yt-cmp-cols{
  display:flex;align-items:stretch;gap:0.5rem;
}
.val-yt-cmp-col{
  flex:1;display:flex;flex-direction:column;gap:0.25rem;
  padding:0.75rem 0.625rem;border-radius:0.625rem;
  background:rgba(255,255,255,0.025);border:0.0625rem solid rgba(255,255,255,0.05);
}
.val-yt-cmp-col.creator{
  background:rgba(204,255,0,0.06);border-color:rgba(204,255,0,0.18);
}
.val-yt-cmp-who{font-size:0.75rem;color:var(--ash);font-weight:600}
.val-yt-cmp-who b{color:var(--text-primary)}
.val-yt-cmp-pt{
  font-size:1.875rem;font-weight:300;line-height:1.05;color:var(--text-primary);
  font-variant-numeric:tabular-nums;
}
.val-yt-cmp-col.creator .val-yt-cmp-pt{color:var(--green)}
.val-yt-cmp-up{font-size:0.75rem;font-weight:600;color:var(--fog)}
/* Center gap chip */
.val-yt-cmp-gap{
  flex:0 0 auto;align-self:center;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:0.125rem;
  padding:0 0.5rem;min-width:4.5rem;text-align:center;
}
.val-yt-cmp-gap-amt{
  font-size:1.125rem;font-weight:700;line-height:1;font-variant-numeric:tabular-nums;
  color:var(--text-primary);
}
.val-yt-cmp-gap-lbl{
  font-size:0.625rem;color:var(--fog);line-height:1.2;text-transform:uppercase;
  letter-spacing:0.03em;
}
.val-yt-cmp.cmp-below .val-yt-cmp-gap-amt{color:#ff9d6b}
.val-yt-cmp.cmp-above .val-yt-cmp-gap-amt{color:var(--green)}
.val-yt-cmp.cmp-aligned .val-yt-cmp-gap-amt{color:var(--ash)}
.val-yt-cmp-verdict{
  margin-top:0.875rem;font-size:0.8125rem;line-height:1.55;color:var(--ash);
}
.val-yt-cmp-verdict b{color:var(--text-primary);font-weight:700}
.val-yt-cmp-meta{
  margin-top:0.75rem;padding-top:0.625rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-size:0.6875rem;color:var(--fog);line-height:1.5;
}
.val-yt-cmp-meta b{font-weight:700;color:var(--ash)}

/* Sentiment hero */
.val-yt-sent-hero{
  display:flex;align-items:baseline;gap:0.75rem;
}
.val-yt-sent-score{
  font-size:2.25rem;font-weight:300;line-height:1;
  font-variant-numeric:tabular-nums;
}
.val-yt-sent-label{font-size:0.875rem;font-weight:600;color:var(--ash)}

/* Sentiment % stacked bar */
.val-yt-sent-bar{
  display:flex;height:1.75rem;border-radius:0.25rem;overflow:hidden;
  border:0.0625rem solid rgba(255,255,255,0.06);
}
.val-yt-sent-seg{
  display:flex;align-items:center;justify-content:center;
  font-size:0.6875rem;font-weight:700;color:rgba(0,0,0,0.7);
  letter-spacing:0.02em;min-width:1.5rem;
}
.val-yt-sent-bull{background:#9ce600;color:rgba(0,0,0,0.75)}
.val-yt-sent-neutral{background:rgba(245,166,35,0.85);color:rgba(0,0,0,0.75)}
.val-yt-sent-bear{background:#c52525;color:rgba(255,255,255,0.95)}

.val-yt-sent-legend{display:flex;flex-direction:column;gap:0.375rem}
.val-yt-sent-row{
  display:grid;grid-template-columns:0.625rem 1fr auto auto;
  gap:0.625rem;align-items:center;
  font-size:0.75rem;
}
.val-yt-sent-dot{
  width:0.625rem;height:0.625rem;border-radius:50%;
}
.val-yt-sent-row-label{color:var(--ash);font-weight:500}
.val-yt-sent-row-pct{
  color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums;
  min-width:2.5rem;text-align:right;
}
.val-yt-sent-row-n{
  color:var(--fog);font-size:0.6875rem;
  font-variant-numeric:tabular-nums;min-width:5rem;text-align:right;
}
.val-yt-sent-foot{
  margin-top:0.25rem;padding-top:0.625rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-size:0.6875rem;color:var(--fog);line-height:1.5;
}
.val-yt-sent-foot b{font-weight:700}
.val-yt-sent-foot b.red{color:#ff7560}

/* Call-to-action breakdown (what creators actually did) */
.val-yt-cta{
  margin-top:0.75rem;padding-top:0.75rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
}
.val-yt-cta-title{
  font-size:0.6875rem;font-weight:700;letter-spacing:0.03em;text-transform:uppercase;
  color:var(--ash);margin-bottom:0.5rem;
}
.val-yt-cta-sub{font-weight:500;text-transform:none;letter-spacing:0;color:var(--fog)}
.val-yt-cta-bars{display:flex;flex-direction:column;gap:0.375rem}
.val-yt-cta-row{display:flex;align-items:center;gap:0.5rem}
.val-yt-cta-key{
  flex:0 0 8.25rem;display:flex;align-items:center;gap:0.375rem;
  font-size:0.6875rem;color:var(--ash);
}
.val-yt-cta-dot{width:0.5rem;height:0.5rem;border-radius:50%;flex-shrink:0}
.val-yt-cta-dot.buying{background:var(--green)}
.val-yt-cta-dot.holding{background:var(--gold)}
.val-yt-cta-dot.trimming{background:#ff7560}
.val-yt-cta-dot.watching{background:var(--fog)}
.val-yt-cta-track{
  flex:1;height:0.4375rem;border-radius:0.25rem;
  background:rgba(255,255,255,0.05);overflow:hidden;
}
.val-yt-cta-fill{display:block;height:100%;border-radius:0.25rem;transition:width 0.4s ease}
.val-yt-cta-fill.buying{background:var(--green)}
.val-yt-cta-fill.holding{background:var(--gold)}
.val-yt-cta-fill.trimming{background:#ff7560}
.val-yt-cta-fill.watching{background:var(--fog)}
.val-yt-cta-n{
  flex:0 0 1.75rem;text-align:right;font-size:0.6875rem;font-weight:700;
  color:var(--text-primary);font-variant-numeric:tabular-nums;
}

/* Empty / sparse coverage state */
.val-yt-empty{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:0.5rem;padding:2.5rem 1rem;text-align:center;
}
.val-yt-empty-icon{font-size:1.75rem;opacity:0.7}
.val-yt-empty-text{font-size:0.8125rem;color:var(--fog);max-width:28rem;line-height:1.5}
.val-yt-empty.val-yt-empty-banner{
  flex-direction:row;gap:0.5rem;padding:0.625rem 0.875rem;margin-bottom:0.75rem;
  text-align:left;justify-content:flex-start;
  background:rgba(245,166,35,0.08);border:0.0625rem solid rgba(245,166,35,0.25);
  border-radius:0.5rem;
}
.val-yt-empty.val-yt-empty-banner .val-yt-empty-icon{font-size:1rem}
.val-yt-empty.val-yt-empty-banner .val-yt-empty-text{font-size:0.75rem;color:var(--ash)}

/* Mentions feed */
.val-yt-mentions{
  margin-top:1rem;padding-top:1rem;
  border-top:0.0625rem solid rgba(255,255,255,0.06);
}
.val-yt-mentions-title{
  font-size:0.6875rem;font-weight:700;color:var(--ash);
  letter-spacing:0.06em;text-transform:uppercase;margin-bottom:0.625rem;
}
.val-yt-mentions-list{
  display:flex;flex-direction:column;gap:0.5rem;
  /* Cap at ~3 visible rows; scroll the rest */
  max-height:14.5rem;overflow-y:auto;
  padding-right:0.375rem;
  /* Custom scrollbar so it doesn't look heavy */
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,0.12) transparent;
}
.val-yt-mentions-list::-webkit-scrollbar{width:0.375rem}
.val-yt-mentions-list::-webkit-scrollbar-track{background:transparent}
.val-yt-mentions-list::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,0.10);border-radius:0.1875rem;
}
.val-yt-mentions-list::-webkit-scrollbar-thumb:hover{
  background:rgba(255,255,255,0.18);
}
.val-yt-mention-row{
  display:grid;grid-template-columns:11rem 4rem 6rem 1fr;
  gap:0.875rem;align-items:center;
  padding:0.625rem 0.875rem;
  background:rgba(0,0,0,0.15);
  border:0.0625rem solid rgba(255,255,255,0.04);
  border-radius:0.375rem;
}
@media (max-width:900px){
  .val-yt-mention-row{
    grid-template-columns:1fr;
    gap:0.375rem;
  }
}
.val-yt-mention-creator{
  display:flex;align-items:center;gap:0.5rem;
}
.val-yt-mention-avatar{
  width:1.875rem;height:1.875rem;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:0.6875rem;font-weight:700;letter-spacing:0.02em;
  flex-shrink:0;
}
.val-yt-mention-meta{
  display:flex;flex-direction:column;line-height:1.2;min-width:0;
}
.val-yt-mention-meta b{
  font-size:0.75rem;font-weight:600;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.val-yt-mention-meta small{
  font-size:0.625rem;color:var(--fog);
}
.val-yt-mention-stance{
  font-size:0.625rem;font-weight:700;letter-spacing:0.04em;
  padding:0.1875rem 0.5rem;border-radius:0.25rem;text-align:center;
}
.val-yt-mention-stance.bull{background:rgba(204,255,0,0.10);color:var(--green);border:0.0625rem solid rgba(204,255,0,0.25)}
.val-yt-mention-stance.bear{background:rgba(225,53,53,0.10);color:#ff6b6b;border:0.0625rem solid rgba(225,53,53,0.25)}
.val-yt-mention-stance.neutral{background:rgba(245,166,35,0.10);color:var(--gold);border:0.0625rem solid rgba(245,166,35,0.25)}
.val-yt-mention-pt{
  font-size:0.75rem;color:var(--fog);font-variant-numeric:tabular-nums;
}
.val-yt-mention-pt b{color:var(--ink);font-weight:700}
.val-yt-mention-quote{
  font-size:0.75rem;color:var(--ash);font-style:italic;line-height:1.45;
}
.val-yt-mentions-foot{
  margin-top:0.75rem;padding-top:0.625rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-size:0.6875rem;color:var(--fog);
}
.val-yt-mentions-foot b{color:var(--ash);font-weight:600}

/* AI note footer — soft pending state */
.val-yt-ai-note{
  margin-top:1rem;padding:0.625rem 0.75rem;
  background:rgba(175,82,222,0.06);
  border:0.0625rem solid rgba(175,82,222,0.20);
  border-radius:0.375rem;
  display:flex;align-items:flex-start;gap:0.5rem;
  font-size:0.6875rem;color:var(--ash);line-height:1.5;
}
.val-yt-ai-note b{color:#c08ce6;font-weight:700}
.val-yt-ai-dot{
  display:inline-block;width:0.5rem;height:0.5rem;border-radius:50%;
  background:#c08ce6;flex-shrink:0;margin-top:0.375rem;
  animation:val-pulse 2s infinite ease-in-out;
}


/* ═══════════════════════════════════════════════════════════════════
   Stance shifts — who's changing their mind (creators + Wall St)
   ═══════════════════════════════════════════════════════════════════ */
.val-shifts-section{
  margin:1.5rem 0;padding:1.25rem;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.75rem;
}
.val-shifts-head{margin-bottom:1rem}
.val-shifts-titlebar{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.val-shifts-titles{flex:1;min-width:0}
.val-shifts-title{
  display:flex;align-items:center;gap:0.5rem;
  font-size:0.875rem;font-weight:600;color:var(--ink);margin-bottom:0.375rem;
}
.val-shifts-title svg{width:1.125rem;height:1.125rem;color:var(--green)}
.val-shifts-sub{font-size:0.75rem;color:var(--fog);line-height:1.45}
.val-shifts-sub b{color:var(--ash);font-weight:600}
/* filter */
.val-shifts-filter{flex-shrink:0;display:flex;gap:0.25rem;background:rgba(0,0,0,0.25);padding:0.1875rem;border-radius:0.5rem}
.val-shifts-tab{
  font-size:0.6875rem;font-weight:600;padding:0.3125rem 0.625rem;border-radius:0.375rem;
  background:transparent;border:none;color:var(--fog);cursor:pointer;transition:all 0.15s;
}
.val-shifts-tab:hover{color:var(--ash)}
.val-shifts-tab.active{background:rgba(204,255,0,0.12);color:var(--green)}
/* summary strip */
.val-shifts-summary{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0.625rem;margin-bottom:1.25rem;
}
@media (max-width:760px){.val-shifts-summary{grid-template-columns:repeat(2,1fr)}}
.val-shift-stat{
  padding:0.75rem;background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);border-radius:0.5rem;
}
.vss-num{font-size:1.125rem;font-weight:800;color:var(--ink);line-height:1.1;margin-bottom:0.25rem}
.vss-num.green{color:var(--green)}
.vss-num.red{color:#e13535}
.vss-lbl{font-size:0.625rem;color:var(--fog);text-transform:uppercase;letter-spacing:0.04em;line-height:1.3}
/* timeline */
.val-shifts-timeline{display:flex;flex-direction:column;gap:0.5rem}
.val-shifts-group-label{
  font-size:0.625rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--fog);margin:0.75rem 0 0.25rem;padding-left:0.125rem;
}
.val-shifts-group-label:first-child{margin-top:0}
/* two side-by-side tracks, each scrolls independently → creators vs the Street */
.val-shifts-cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}
@media (max-width:860px){.val-shifts-cols{grid-template-columns:1fr}}
.val-shifts-col{
  min-width:0;background:rgba(0,0,0,0.15);
  border:0.0625rem solid rgba(255,255,255,0.05);border-radius:0.625rem;overflow:hidden;
}
.val-shifts-col-head{
  display:flex;align-items:center;gap:0.5rem;
  padding:0.625rem 0.875rem;font-size:0.75rem;font-weight:700;color:var(--ink);
  background:rgba(255,255,255,0.02);border-bottom:0.0625rem solid rgba(255,255,255,0.06);
}
.vsc-dot{width:0.5rem;height:0.5rem;border-radius:50%;flex-shrink:0}
.vsc-dot.creator{background:var(--green)}
.vsc-dot.street{background:#7aa2ff}
.vsc-count{margin-left:auto;font-size:0.625rem;font-weight:600;color:var(--fog);text-transform:uppercase;letter-spacing:0.04em}
.val-shifts-col-scroll{
  max-height:34rem;overflow-y:auto;padding:0.75rem;
  display:flex;flex-direction:column;gap:0.625rem;
}
.val-shifts-col-scroll::-webkit-scrollbar{width:0.5rem}
.val-shifts-col-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.10);border-radius:0.25rem}
.val-shifts-col-scroll::-webkit-scrollbar-track{background:transparent}
/* source link (FMP price-target newsURL) on Wall-St rows */
.val-shift-source{
  display:inline-block;margin-top:0.5rem;font-size:0.625rem;font-weight:600;
  color:#7aa2ff;text-decoration:none;
}
.val-shift-source:hover{text-decoration:underline}
.val-shift-row{
  display:flex;gap:0.75rem;padding:0.875rem;
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);border-radius:0.5rem;
  border-left:0.1875rem solid var(--fog);
}
.val-shift-row[data-shift-dir="up"]{border-left-color:var(--green)}
.val-shift-row[data-shift-dir="down"]{border-left-color:#e13535}
.val-shift-rail{display:flex;flex-direction:column;align-items:center;padding-top:0.25rem}
.val-shift-rail-dot{width:0.625rem;height:0.625rem;border-radius:50%;background:var(--fog);flex-shrink:0}
.val-shift-rail-dot.up{background:var(--green);box-shadow:0 0 0 0.1875rem rgba(204,255,0,0.15)}
.val-shift-rail-dot.down{background:#e13535;box-shadow:0 0 0 0.1875rem rgba(225,53,53,0.15)}
.val-shift-rail-dot.flat{background:var(--gold)}
.val-shift-body{flex:1;min-width:0}
.val-shift-rowhead{display:flex;align-items:flex-start;justify-content:space-between;gap:0.75rem;margin-bottom:0.625rem}
.val-shift-who{display:flex;align-items:center;gap:0.5rem;min-width:0}
.val-shift-avatar{
  width:2rem;height:2rem;border-radius:50%;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  font-size:0.6875rem;font-weight:700;
}
.val-shift-avatar.firm{
  border-radius:0.375rem;background:rgba(255,255,255,0.07);color:var(--ash);
  font-family:var(--fm,monospace);font-size:0.625rem;letter-spacing:0.02em;
}
.val-shift-who-meta{min-width:0}
.val-shift-who-meta b{display:block;font-size:0.8125rem;color:var(--ink);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.val-shift-who-meta small{font-size:0.625rem;color:var(--fog)}
.val-shift-srcbadge{
  font-size:0.5625rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;
  padding:0.0625rem 0.3125rem;border-radius:0.625rem;
}
.val-shift-srcbadge.creator{background:rgba(204,255,0,0.10);color:var(--green)}
.val-shift-srcbadge.street{background:rgba(90,140,255,0.12);color:#7aa2ff}
.val-shift-when{text-align:right;flex-shrink:0;display:flex;flex-direction:column;gap:0.1875rem;align-items:flex-end}
.val-shift-date{font-size:0.6875rem;color:var(--ash);font-weight:600;white-space:nowrap}
/* context line: trigger attribution + price-when-shifted outcome */
.val-shift-context{
  display:flex;align-items:center;flex-wrap:wrap;gap:0.5rem 0.875rem;
  margin-bottom:0.625rem;
}
.val-shift-trigger{
  font-size:0.625rem;font-weight:600;color:var(--ash);
  background:rgba(255,255,255,0.05);border:0.0625rem solid rgba(255,255,255,0.07);
  padding:0.1875rem 0.5rem;border-radius:0.3125rem;white-space:nowrap;
}
.val-shift-trigger[data-kind="earnings"]{background:rgba(90,140,255,0.10);border-color:rgba(90,140,255,0.25);color:#8fb0ff}
.val-shift-trigger[data-kind="product"]{background:rgba(204,255,0,0.08);border-color:rgba(204,255,0,0.22);color:var(--green)}
.val-shift-trigger[data-kind="valuation"]{background:rgba(245,166,35,0.10);border-color:rgba(245,166,35,0.25);color:var(--gold)}
.val-shift-trigger[data-kind="coverage"]{background:rgba(175,82,222,0.10);border-color:rgba(175,82,222,0.25);color:#c08ce6}
.val-shift-price{font-size:0.625rem;color:var(--fog)}
.val-shift-price b{color:var(--ash);font-weight:700}
.vsp-since{font-weight:700;margin-left:0.1875rem}
.vsp-since.up{color:var(--green)}
.vsp-since.down{color:#ff6b6b}
/* transition chips */
.val-shift-transitions{display:flex;flex-direction:column;gap:0.3125rem}
.val-shift-trans{display:flex;align-items:center;gap:0.4375rem;flex-wrap:wrap}
.val-shift-trans-key{
  font-size:0.5625rem;color:var(--fog);text-transform:uppercase;letter-spacing:0.04em;
  width:4.25rem;flex-shrink:0;
}
.vst-chip{
  font-size:0.6875rem;font-weight:600;color:var(--ash);
  background:rgba(255,255,255,0.05);padding:0.125rem 0.4375rem;border-radius:0.3125rem;
}
.vst-chip.up{background:rgba(204,255,0,0.12);color:var(--green)}
.vst-chip.down{background:rgba(225,53,53,0.12);color:#ff6b6b}
.vst-chip.muted{background:transparent;color:var(--fog);font-style:italic;font-weight:500;padding-left:0}
.vst-arrow{font-size:0.75rem;color:var(--fog);font-weight:700}
.vst-arrow.up{color:var(--green)}
.vst-arrow.down{color:#e13535}
.vst-arrow.flat{color:var(--gold)}
/* before / after quotes */
.val-shift-quotes{
  margin-top:0.625rem;display:flex;flex-direction:column;gap:0.375rem;
  border-top:0.0625rem solid rgba(255,255,255,0.05);padding-top:0.625rem;
}
.val-shift-quote{
  font-size:0.75rem;line-height:1.45;color:var(--ash);font-style:italic;
  padding-left:0.625rem;border-left:0.125rem solid rgba(255,255,255,0.10);
}
.val-shift-quote.before{color:var(--fog)}
.val-shift-quote.after{border-left-color:rgba(204,255,0,0.4)}
.vsq-tag{
  display:inline-block;font-style:normal;font-size:0.5625rem;font-weight:700;
  letter-spacing:0.04em;text-transform:uppercase;color:var(--fog);margin-right:0.375rem;
}
.val-shift-quote.after .vsq-tag{color:var(--green)}
/* ai note */
.val-shifts-ai-note{
  margin-top:1rem;padding:0.625rem 0.75rem;
  background:rgba(204,255,0,0.05);
  border:0.0625rem solid rgba(204,255,0,0.18);border-radius:0.375rem;
  display:flex;align-items:flex-start;gap:0.5rem;
  font-size:0.6875rem;color:var(--ash);line-height:1.5;
}
.val-shifts-ai-note b{color:var(--green);font-weight:700}
.val-shifts-ai-dot{
  display:inline-block;width:0.5rem;height:0.5rem;border-radius:50%;
  background:var(--green);flex-shrink:0;margin-top:0.375rem;
  animation:val-pulse 2s infinite ease-in-out;
}


/* ═══════════════════════════════════════════════════════════════════
   News & Sentiment lens — newspaper-feel rebuild
   ═══════════════════════════════════════════════════════════════════ */

/* Filter row */
.news-filter-bar{
  display:flex;flex-wrap:wrap;gap:1rem;align-items:center;
  margin:1rem 0 1.25rem;padding:0.75rem 1rem;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.625rem;
}
.news-filter-time{display:flex;align-items:center;gap:0.625rem}
.news-filter-label{
  font-size:0.625rem;font-weight:700;color:var(--fog);
  letter-spacing:0.06em;text-transform:uppercase;
}
.news-filter-segmented{
  display:inline-flex;background:rgba(0,0,0,0.25);
  border:0.0625rem solid rgba(255,255,255,0.06);border-radius:0.375rem;
  padding:0.125rem;
}
.news-filter-seg{
  background:transparent;border:none;
  color:var(--fog);font-size:0.6875rem;font-weight:600;
  padding:0.3125rem 0.625rem;border-radius:0.25rem;cursor:pointer;
  transition:all 0.15s;
}
.news-filter-seg:hover{color:var(--ash)}
.news-filter-seg.active{background:rgba(255,255,255,0.10);color:var(--ink)}

.news-filter-cats{
  display:flex;flex-wrap:wrap;gap:0.375rem;flex:1;
  justify-content:flex-end;
}
.news-cat-pill{
  display:inline-flex;align-items:center;gap:0.375rem;
  background:rgba(0,0,0,0.20);border:0.0625rem solid rgba(255,255,255,0.06);
  color:var(--ash);font-size:0.6875rem;font-weight:500;
  padding:0.3125rem 0.625rem;border-radius:1rem;cursor:pointer;
  transition:all 0.15s;
}
.news-cat-pill:hover{background:rgba(255,255,255,0.04);color:var(--ink)}
.news-cat-pill.active{background:rgba(255,255,255,0.08);color:var(--ink);border-color:rgba(255,255,255,0.18)}
.news-cat-pill b{font-weight:700;color:var(--fog);font-variant-numeric:tabular-nums}
.news-cat-pill.active b{color:var(--ash)}

/* Category color dots — used in pills and bars */
.news-cat-dot{
  display:inline-block;width:0.5rem;height:0.5rem;border-radius:50%;
  background:var(--fog);
}
.news-cat-dot.cat-earnings, .news-cat-bar-fill.cat-earnings, .news-tag-cat.cat-earnings{background:#9ce600;color:rgba(0,0,0,0.75)}
.news-cat-dot.cat-analyst,  .news-cat-bar-fill.cat-analyst,  .news-tag-cat.cat-analyst{background:#7cb8ff;color:rgba(0,0,0,0.75)}
.news-cat-dot.cat-product,  .news-cat-bar-fill.cat-product,  .news-tag-cat.cat-product{background:#c08ce6;color:rgba(0,0,0,0.75)}
.news-cat-dot.cat-regulatory, .news-cat-bar-fill.cat-regulatory, .news-tag-cat.cat-regulatory{background:#ff6b6b;color:rgba(255,255,255,0.95)}
.news-cat-dot.cat-insider,  .news-cat-bar-fill.cat-insider,  .news-tag-cat.cat-insider{background:#f5a623;color:rgba(0,0,0,0.75)}
.news-cat-dot.cat-macro,    .news-cat-bar-fill.cat-macro,    .news-tag-cat.cat-macro{background:#26d4d4;color:rgba(0,0,0,0.75)}
.news-cat-dot.cat-corporate, .news-cat-bar-fill.cat-corporate, .news-tag-cat.cat-corporate{background:#a0a8b8;color:rgba(0,0,0,0.85)}
.news-cat-dot.cat-general,  .news-cat-bar-fill.cat-general,  .news-tag-cat.cat-general{background:rgba(255,255,255,0.30);color:rgba(0,0,0,0.85)}

.news-metric-grid{margin-bottom:1.5rem}

/* ── AI curation banner — sits above the metric strip ─────────────── */
.news-curation-banner{
  display:flex;align-items:center;gap:0.875rem;
  margin:0 0 0.875rem;padding:0.875rem 1.125rem;
  background:linear-gradient(135deg, rgba(204,255,0,0.06), rgba(204,255,0,0.02));
  border:0.0625rem solid rgba(204,255,0,0.18);
  border-radius:0.625rem;
}
.news-curation-icon{
  width:2rem;height:2rem;border-radius:50%;
  background:linear-gradient(135deg, #cce600, #99cc00);
  color:rgba(0,0,0,0.85);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.news-curation-icon svg{width:0.9375rem;height:0.9375rem}
.news-curation-text{flex:1;min-width:0}
.news-curation-title{font-size:0.8125rem;color:var(--ink);font-weight:600;line-height:1.4}
.news-curation-title b{color:var(--green);font-weight:700;font-variant-numeric:tabular-nums}
.news-curation-sub{font-size:0.6875rem;color:var(--fog);line-height:1.45;margin-top:0.125rem}
.news-curation-source-pill{
  display:inline-flex;align-items:center;gap:0.375rem;flex-shrink:0;
  background:rgba(0,0,0,0.30);border:0.0625rem solid rgba(255,255,255,0.06);
  padding:0.3125rem 0.625rem;border-radius:1rem;
  font-size:0.625rem;color:var(--ash);
}
.news-curation-source-pill b{color:var(--green);font-weight:700;letter-spacing:0.02em}
.news-curation-source-dot{
  width:0.4375rem;height:0.4375rem;border-radius:50%;background:var(--green);
  box-shadow:0 0 0 0.125rem rgba(204,255,0,0.18);
}

/* ── Premium 4-banner metric strip ────────────────────────────────── */
.news-banner-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.625rem;
  margin-bottom:1.5rem;
}
@media (max-width:900px){.news-banner-grid{grid-template-columns:repeat(2,1fr)}}

.news-banner{
  display:flex;flex-direction:column;gap:0.375rem;
  padding:0.875rem 1rem;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.625rem;
  transition:border-color 0.15s;
}
.news-banner:hover{border-color:rgba(255,255,255,0.12)}
.news-banner-head{
  display:flex;align-items:center;gap:0.4375rem;
}
.news-banner-icon{
  width:1.125rem;height:1.125rem;color:var(--fog);
  flex-shrink:0;
}
.news-banner-icon svg{width:100%;height:100%}
.news-banner-label{
  font-size:0.625rem;font-weight:700;letter-spacing:0.06em;
  color:var(--ash);text-transform:uppercase;
}
.news-banner-value{
  font-size:1.5rem;font-weight:300;line-height:1.1;color:var(--ink);
  font-variant-numeric:tabular-nums;
  word-break:break-word;
}
.news-banner-value.green{color:var(--green)}
.news-banner-value.red{color:#ff6b6b}
.news-banner-value.gold{color:var(--gold)}
.news-banner-explain{
  display:flex;align-items:center;gap:0.375rem;
  font-size:0.6875rem;color:var(--fog);line-height:1.4;
}
.news-banner-explain-help{
  display:inline-flex;align-items:center;justify-content:center;
  width:0.875rem;height:0.875rem;border-radius:50%;
  background:rgba(255,255,255,0.08);color:var(--fog);
  font-size:0.5625rem;font-weight:700;cursor:help;
  flex-shrink:0;
}
.news-banner-explain-help:hover{background:rgba(255,255,255,0.14);color:var(--ash)}

/* Banner 3 special: clickable "Top Story" title (not a number) */
.news-banner-story{
  border-color:rgba(245,166,35,0.18);
  background:linear-gradient(135deg, rgba(245,166,35,0.04), transparent);
}
.news-banner-story-link{text-decoration:none;color:inherit;display:block}
.news-banner-story-title{
  font-size:0.8125rem;font-weight:600;color:var(--ink);line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;text-overflow:ellipsis;
  transition:color 0.15s;
  min-height:3.3rem;
}
.news-banner-story-link:hover .news-banner-story-title{color:var(--gold)}

/* Hero featured story */
.news-hero{
  display:grid;grid-template-columns:1.2fr 1fr;gap:0;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.08);
  border-radius:0.75rem;overflow:hidden;
  margin-bottom:1.5rem;
  transition:border-color 0.2s, transform 0.2s;
  cursor:pointer;
}
.news-hero:hover{
  border-color:rgba(204,255,0,0.25);
  transform:translateY(-0.0625rem);
}
@media (max-width:900px){.news-hero{grid-template-columns:1fr}}
.news-hero-image{
  position:relative;min-height:14rem;
  background:linear-gradient(135deg, rgba(204,255,0,0.05), rgba(245,166,35,0.05));
  background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;
}
.news-hero-image.has-image .news-hero-image-placeholder{display:none}
.news-hero-image-placeholder{
  color:rgba(255,255,255,0.15);width:4rem;height:4rem;
}
.news-hero-image-placeholder svg{width:100%;height:100%}
.news-hero-badge{
  position:absolute;top:0.75rem;left:0.75rem;
  font-size:0.5625rem;font-weight:700;letter-spacing:0.08em;
  background:rgba(204,255,0,0.85);color:rgba(0,0,0,0.85);
  padding:0.25rem 0.5rem;border-radius:0.25rem;
}
.news-hero-body{
  padding:1.25rem 1.5rem;display:flex;flex-direction:column;gap:0.625rem;
}
.news-hero-tags{display:flex;flex-wrap:wrap;gap:0.375rem;align-items:center}
.news-hero-title{
  font-size:1.125rem;font-weight:600;color:var(--ink);line-height:1.35;
}
.news-hero-excerpt{
  font-size:0.8125rem;color:var(--ash);line-height:1.55;
}
.news-hero-meta{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:auto;padding-top:0.625rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-size:0.6875rem;color:var(--fog);
}
.news-hero-meta b{color:var(--ash);font-weight:600}
.news-hero-action{color:var(--green);font-weight:600}

/* Article grid */
.news-grid-head{
  display:flex;justify-content:space-between;align-items:baseline;
  margin-bottom:0.75rem;
}
.news-grid-title{
  display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;
  font-size:0.875rem;font-weight:600;color:var(--ink);
}
.news-grid-title svg{width:1rem;height:1rem;color:var(--fog)}
.news-grid-subtitle{
  flex:1 1 100%;padding-left:1.5rem;margin-top:0.15rem;
  font-size:0.6875rem;font-weight:400;color:var(--fog);line-height:1.4;
}
.news-grid-meta{font-size:0.6875rem;color:var(--fog)}
.news-grid-meta b{color:var(--ash);font-weight:700}

.news-article-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:0.75rem;
  margin-bottom:1.75rem;
  /* Cap at ~6 cards visible (3 rows of 2); scroll the rest within the section */
  max-height:30rem;overflow-y:auto;
  padding-right:0.375rem;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,0.12) transparent;
  scroll-behavior:smooth;
}
.news-article-grid::-webkit-scrollbar{width:0.375rem}
.news-article-grid::-webkit-scrollbar-track{background:transparent}
.news-article-grid::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,0.10);border-radius:0.1875rem;
}
.news-article-grid::-webkit-scrollbar-thumb:hover{
  background:rgba(255,255,255,0.18);
}
@media (max-width:900px){.news-article-grid{grid-template-columns:1fr;max-height:none;overflow-y:visible}}

.news-article-card{
  display:grid;grid-template-columns:7rem 1fr;gap:0;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.5rem;overflow:hidden;
  cursor:pointer;transition:all 0.15s;
}
.news-article-card:hover{
  background:rgba(255,255,255,0.025);
  border-color:rgba(255,255,255,0.12);
  transform:translateY(-0.0625rem);
}
.news-article-card.placeholder{opacity:0.4;cursor:default}
.news-article-card.placeholder:hover{transform:none}

.news-article-image{
  background:linear-gradient(135deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01));
  background-size:cover;background-position:center;
  min-height:6.5rem;position:relative;
}
.news-article-body{
  padding:0.625rem 0.875rem;
  display:flex;flex-direction:column;gap:0.375rem;min-width:0;
}
.news-article-tags{display:flex;flex-wrap:wrap;gap:0.25rem;align-items:center}
.news-article-title{
  font-size:0.8125rem;font-weight:600;color:var(--ink);line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;text-overflow:ellipsis;
}
.news-article-excerpt{
  font-size:0.6875rem;color:var(--fog);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;text-overflow:ellipsis;
}
.news-article-meta{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:auto;font-size:0.625rem;color:var(--fog);
}
.news-article-meta b{color:var(--ash);font-weight:600}

/* Tag pills */
.news-tag-cat{
  font-size:0.5625rem;font-weight:700;letter-spacing:0.04em;
  padding:0.1875rem 0.4375rem;border-radius:0.25rem;
  text-transform:uppercase;background:rgba(255,255,255,0.06);
  color:var(--ash);
}
.news-tag-sent{
  font-size:0.5625rem;font-weight:700;letter-spacing:0.04em;
  padding:0.1875rem 0.4375rem;border-radius:0.25rem;text-transform:uppercase;
}
.news-tag-sent.bull{background:rgba(204,255,0,0.10);color:var(--green);border:0.0625rem solid rgba(204,255,0,0.22)}
.news-tag-sent.bear{background:rgba(225,53,53,0.10);color:#ff6b6b;border:0.0625rem solid rgba(225,53,53,0.22)}
.news-tag-sent.neutral{background:rgba(245,166,35,0.10);color:var(--gold);border:0.0625rem solid rgba(245,166,35,0.22)}
.news-tag-time{
  font-size:0.625rem;color:var(--fog);margin-left:auto;
}

/* Creator Voices section */
.news-voices-section{
  margin:2rem 0 1.5rem;padding:1.25rem;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.75rem;
}
.news-voices-head{margin-bottom:0.875rem}
.news-voices-title{
  display:flex;align-items:center;gap:0.5rem;
  font-size:0.875rem;font-weight:600;color:var(--ink);
  margin-bottom:0.25rem;
}
.news-voices-title svg{width:1.125rem;height:1.125rem;color:#e13535}
.news-voices-sub{font-size:0.75rem;color:var(--fog)}
.news-voices-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0.625rem;
}
@media (max-width:900px){.news-voices-grid{grid-template-columns:1fr}}

.news-voice-card{
  position:relative;
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);border-radius:0.5rem;
  padding:0.75rem 0.875rem;
  display:flex;flex-direction:column;gap:0.5rem;
  cursor:pointer;transition:all 0.15s;overflow:hidden;
}
.news-voice-card:hover{
  background:rgba(255,255,255,0.02);
  border-color:rgba(225,53,53,0.20);
  transform:translateY(-0.0625rem);
}
.news-voice-card::before{
  content:'';position:absolute;top:0;left:0;bottom:0;width:0.1875rem;
  background:#e13535;
}
.news-voice-head{display:flex;align-items:center;gap:0.5rem}
.news-voice-avatar{
  width:1.75rem;height:1.75rem;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:0.625rem;font-weight:700;color:var(--ink);
  background:rgba(255,255,255,0.06);flex-shrink:0;overflow:hidden;
}
.news-voice-avatar img{width:100%;height:100%;object-fit:cover}
.news-voice-meta{
  display:flex;flex-direction:column;line-height:1.2;min-width:0;
}
.news-voice-meta b{
  font-size:0.75rem;color:var(--ink);font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.news-voice-meta small{font-size:0.5625rem;color:var(--fog)}
.news-voice-stance{
  font-size:0.5625rem;font-weight:700;letter-spacing:0.04em;
  padding:0.125rem 0.375rem;border-radius:0.1875rem;
  margin-left:auto;flex-shrink:0;
}
.news-voice-stance.bull{background:rgba(204,255,0,0.10);color:var(--green)}
.news-voice-stance.bear{background:rgba(225,53,53,0.10);color:#ff6b6b}
.news-voice-stance.neutral{background:rgba(245,166,35,0.10);color:var(--gold)}
.news-voice-quote{
  font-size:0.75rem;color:var(--ash);line-height:1.45;font-style:italic;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;text-overflow:ellipsis;
}
.news-voice-foot{
  display:flex;justify-content:space-between;align-items:center;
  font-size:0.625rem;color:var(--fog);
  padding-top:0.375rem;border-top:0.0625rem solid rgba(255,255,255,0.04);
}
.news-voice-foot b{color:var(--ash);font-weight:600}

/* Insights row */
.news-insights-row{
  display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:0.75rem;
  margin-bottom:1rem;
}
@media (max-width:1100px){.news-insights-row{grid-template-columns:1fr}}

.news-insight-card{
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.625rem;
  padding:1rem;
  display:flex;flex-direction:column;gap:0.75rem;
}
.news-insight-head{display:flex;flex-direction:column;gap:0.125rem}
.news-insight-title{font-size:0.8125rem;font-weight:600;color:var(--ink)}
.news-insight-sub{font-size:0.6875rem;color:var(--fog)}
.news-insight-legend{
  display:flex;gap:0.875rem;font-size:0.625rem;color:var(--fog);
}
.news-sent-legend-dot{
  display:inline-block;width:0.5rem;height:0.5rem;border-radius:50%;
  margin-right:0.25rem;vertical-align:middle;
}
.news-sent-legend-dot.bull{background:#9ce600}
.news-sent-legend-dot.neutral{background:rgba(245,166,35,0.85)}
.news-sent-legend-dot.bear{background:#c52525}
.news-insight-foot{
  font-size:0.625rem;color:var(--fog);padding-top:0.5rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  display:flex;align-items:center;gap:0.375rem;
}

/* Sentiment timeline */
.news-sent-timeline{
  display:flex;align-items:flex-end;gap:0.25rem;
  height:5rem;
}
.news-sent-day{
  flex:1;display:flex;flex-direction:column-reverse;
  height:100%;gap:0.0625rem;position:relative;
}
.news-sent-day-bull{background:#9ce600;width:100%}
.news-sent-day-neutral{background:rgba(245,166,35,0.85);width:100%}
.news-sent-day-bear{background:#c52525;width:100%}
.news-sent-day-label{
  position:absolute;bottom:-1.25rem;left:50%;transform:translateX(-50%);
  font-size:0.5rem;color:var(--fog);white-space:nowrap;
}

/* Category bars */
.news-cat-bars{display:flex;flex-direction:column;gap:0.5rem}
.news-cat-bar-row{
  display:grid;grid-template-columns:5rem 1fr 2rem;gap:0.5rem;align-items:center;
  font-size:0.6875rem;
}
.news-cat-bar-label{color:var(--ash)}
.news-cat-bar{
  height:0.5rem;background:rgba(255,255,255,0.04);border-radius:0.25rem;
  overflow:hidden;
}
.news-cat-bar-fill{height:100%;border-radius:0.25rem;transition:width 0.3s}
.news-cat-bar-n{
  color:var(--ash);font-weight:600;text-align:right;
  font-variant-numeric:tabular-nums;
}

/* Narrative tracker */
.news-narratives{display:flex;flex-direction:column;gap:0.5rem}
.news-narrative{
  background:rgba(0,0,0,0.15);border:0.0625rem solid rgba(255,255,255,0.04);
  border-radius:0.375rem;padding:0.5rem 0.625rem;
  display:flex;flex-direction:column;gap:0.1875rem;
}
.news-narrative-head{
  display:flex;justify-content:space-between;align-items:center;
  font-size:0.75rem;
}
.news-narrative-name{color:var(--ink);font-weight:600}
.news-narrative-strength{
  font-size:0.6875rem;font-weight:700;font-variant-numeric:tabular-nums;
}
.news-narrative-strength.bull{color:var(--green)}
.news-narrative-strength.bear{color:#ff6b6b}
.news-narrative-meta{font-size:0.625rem;color:var(--fog)}

/* AI Summary BULL badge for news */
.ai-summary-badge.bull{
  background:rgba(204,255,0,0.10);color:var(--green);
  border:0.0625rem solid rgba(204,255,0,0.22);
}

/* ═══════════════════════════════════════════════════════════════════
   Global AI Chat — floating FAB + expandable panel, every canvas
   ═══════════════════════════════════════════════════════════════════ */
.gai-fab{
  position:fixed;bottom:1.5rem;right:1.5rem;
  width:3.5rem;height:3.5rem;border-radius:50%;
  background:linear-gradient(135deg, #cce600, #99cc00);
  color:rgba(0,0,0,0.85);border:none;cursor:pointer;
  box-shadow:0 0.5rem 1.5rem rgba(204,255,0,0.30), 0 0.125rem 0.5rem rgba(0,0,0,0.4);
  display:flex;align-items:center;justify-content:center;
  z-index:9000;transition:all 0.2s;
  font-family:inherit;
}
.gai-fab:hover{
  transform:translateY(-0.125rem) scale(1.03);
  box-shadow:0 0.75rem 2rem rgba(204,255,0,0.40), 0 0.25rem 0.75rem rgba(0,0,0,0.5);
}
.gai-fab svg{width:1.5rem;height:1.5rem}
.gai-fab-pulse{
  position:absolute;inset:-0.25rem;border-radius:50%;
  border:0.125rem solid rgba(204,255,0,0.40);
  animation:val-pulse 2.5s infinite ease-out;pointer-events:none;
}

/* ── Portable copilot + table-of-contents: IMMERSIVE (expanded) canvas view only ──
   In the normal split view the corner stays clean (the chat lives elsewhere); when the
   canvas goes fullscreen the copilot docks bottom-LEFT and the TOC rail appears. */
.gai-fab{display:none}
body.studio-expanded .gai-fab{display:flex}
.gai-fab.gai-dock-left{left:1.5rem;right:auto}
.gai-chat-panel.gai-dock-left{left:1.5rem;right:auto;transform-origin:bottom left}

/* New-chat button in the panel head — clears the shared conversation everywhere */
.gai-chat-newchat{display:inline-flex;align-items:center;gap:0.25rem;padding:0.3rem 0.5rem;border-radius:0.4rem;
  background:rgba(204,255,0,0.10);border:0.0625rem solid rgba(204,255,0,0.28);color:var(--green);cursor:pointer;
  font-family:var(--fm);font-size:0.6rem;font-weight:700;letter-spacing:0.03em;transition:all .15s}
.gai-chat-newchat:hover{background:var(--green);color:#0a0a0a;border-color:var(--green)}
.gai-chat-newchat svg{width:0.7rem;height:0.7rem}

/* Table-of-contents rail — fixed to the left edge, follows the reader down (immersive view only) */
.canvas-toc{position:fixed;left:0;top:4.6rem;bottom:1.75rem;width:16.5rem;z-index:8900;
  display:flex;flex-direction:column;gap:0.12rem;padding:0.3rem 0.7rem 1rem 1.1rem;overflow-y:auto;overflow-x:hidden;
  scrollbar-width:thin;border-right:0.0625rem solid rgba(255,255,255,0.06)}
.canvas-toc::-webkit-scrollbar{width:5px}
.canvas-toc::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.12);border-radius:3px}
.canvas-toc-h{font-family:var(--fm);font-size:0.62rem;font-weight:800;letter-spacing:0.18em;text-transform:uppercase;
  color:var(--fog);padding:0.35rem 0.5rem 1rem;opacity:0.85}
.canvas-toc-item{position:relative;display:flex;align-items:center;gap:0.75rem;width:100%;text-align:left;background:none;
  border:0;cursor:pointer;padding:0.6rem 0.6rem;border-radius:0.6rem;color:var(--cloud);font:inherit;
  transition:background .14s,color .14s}
.canvas-toc-item:hover{background:rgba(255,255,255,0.05);color:var(--snow)}
/* glowing accent bar on the active section (uses the per-item accent) */
.canvas-toc-item::before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:0.18rem;height:0;
  border-radius:0 0.14rem 0.14rem 0;background:var(--toc-accent,var(--green));transition:height .16s}
.canvas-toc-item.active{color:var(--toc-accent,var(--green))}
.canvas-toc-item.active::before{height:1.5rem;box-shadow:0 0 8px color-mix(in srgb,var(--toc-accent,#cce64d) 70%,transparent)}
/* circular step badges, tinted per section */
.canvas-toc-num{display:flex;align-items:center;justify-content:center;width:1.55rem;height:1.55rem;border-radius:50%;
  flex:0 0 auto;font-family:var(--fm);font-size:0.66rem;font-weight:800;color:var(--toc-accent,var(--fog));
  background:color-mix(in srgb,var(--toc-accent,#fff) 9%,transparent);
  border:0.0938rem solid color-mix(in srgb,var(--toc-accent,#fff) 38%,transparent);
  transition:background .14s,border-color .14s,color .14s,box-shadow .14s}
.canvas-toc-item:hover .canvas-toc-num{background:color-mix(in srgb,var(--toc-accent,#fff) 16%,transparent)}
.canvas-toc-item.active .canvas-toc-num{background:var(--toc-accent,var(--green));border-color:var(--toc-accent,var(--green));
  color:#0a0a0a;box-shadow:0 0 0 0.22rem color-mix(in srgb,var(--toc-accent,#cce64d) 16%,transparent)}
/* bigger, bolder, more characterful labels (display font) */
.canvas-toc-label{flex:1;min-width:0;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  font-family:var(--fd);font-size:0.95rem;font-weight:700;letter-spacing:-0.005em;line-height:1.22}

/* Central panel makes room for the rail (left) + chat (right) — margin:auto on .lens-detail then re-centres
   it into the remaining band, so opening the chat glides the content left and closing it back. Overrides the
   padding:0 !important reset above with our own scoped !important + a transition. */
body.studio-expanded #canvasViewBody{transition:padding .3s cubic-bezier(.2,.8,.2,1)}
/* DEFAULT: content centred in the full viewport (the TOC sits in the empty left gutter). When the chat
   opens, reserve BOTH gutters so the content glides to centre between the rail and the chat. */
body.studio-expanded.gai-open #canvasViewBody{padding-left:17rem !important;padding-right:28rem !important}
/* sections shouldn't tuck under the sticky header when jumped-to from the TOC */
body.studio-expanded .lens-detail > *{scroll-margin-top:4.5rem}

/* Portable copilot — streamed markdown answer + citation chips */
.gai-chat-msg.assistant{max-width:94%}
.gai-md{font-size:0.78rem;line-height:1.6;color:var(--cloud)}
.gai-md h2,.gai-md h3,.gai-md h4{font-size:0.82rem;margin:0.55rem 0 0.3rem;color:var(--snow)}
.gai-md p{margin:0 0 0.5rem}
.gai-md ul,.gai-md ol{margin:0 0 0.5rem;padding-left:1.1rem}
.gai-md li{margin:0.15rem 0}
.gai-md strong{color:var(--snow)}
.gai-md code{font-family:var(--fm);font-size:0.92em;background:rgba(255,255,255,0.06);padding:0 0.25em;border-radius:0.2rem}
.gai-md table{border-collapse:collapse;width:100%;margin:0.45rem 0;font-size:0.72rem;display:block;overflow-x:auto}
.gai-md th,.gai-md td{border:0.0625rem solid rgba(255,255,255,0.1);padding:0.25rem 0.4rem;text-align:left}
.gai-md blockquote{margin:0.4rem 0;padding:0.2rem 0.7rem;border-left:0.125rem solid rgba(204,255,0,0.4);color:var(--fog)}
.gai-md hr{border:0;border-top:0.0625rem solid rgba(255,255,255,0.1);margin:0.6rem 0}
.gai-chat-msg.assistant.error{color:#e68a8a}
.gai-cursor{display:inline-block;width:0.45rem;height:0.85rem;vertical-align:text-bottom;margin-left:1px;
  background:var(--green);opacity:0.85;animation:gai-blink 1s steps(2) infinite}
@keyframes gai-blink{50%{opacity:0}}
.gai-cites{display:flex;flex-wrap:wrap;gap:0.3rem;margin-top:0.55rem;padding-top:0.5rem;border-top:0.0625rem dashed rgba(255,255,255,0.1)}
.gai-cite{display:inline-flex;align-items:center;gap:0.3rem;max-width:100%;text-decoration:none;
  background:rgba(255,255,255,0.04);border:0.0625rem solid rgba(255,255,255,0.1);border-radius:0.4rem;
  padding:0.12rem 0.4rem;font-size:0.6rem;color:var(--cloud);transition:border-color .12s,background .12s}
a.gai-cite:hover{border-color:rgba(204,255,0,0.45);background:rgba(204,255,0,0.06)}
.gai-cite-n{font-weight:800;color:var(--green);font-family:var(--fm)}
.gai-cite-label{font-weight:700;color:#9ce6ff;white-space:nowrap}
.gai-cite-title{color:var(--fog);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:9rem}

.gai-chat-panel{
  position:fixed;bottom:1.5rem;right:1.5rem;
  width:26rem;max-width:calc(100vw - 3rem);
  background:rgba(15,16,18,0.98);
  border:0.0625rem solid rgba(255,255,255,0.12);
  border-radius:0.875rem;
  box-shadow:0 1.5rem 3rem rgba(0,0,0,0.5);
  z-index:9001;
  display:flex;flex-direction:column;
  max-height:calc(100vh - 3rem);
  transform-origin:bottom right;
  animation:ai-chat-slide-in 0.22s ease-out;
}
@keyframes ai-chat-slide-in{
  from{opacity:0;transform:translateY(0.5rem) scale(0.96)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

.gai-chat-head{
  display:flex;align-items:center;gap:0.625rem;
  padding:0.875rem 1rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.06);
}
.gai-chat-head-icon{
  width:1.875rem;height:1.875rem;border-radius:50%;
  background:linear-gradient(135deg, #cce600, #99cc00);
  color:rgba(0,0,0,0.85);
  display:flex;align-items:center;justify-content:center;
}
.gai-chat-head-icon svg{width:1rem;height:1rem}
.gai-chat-head-title{flex:1;font-size:0.875rem;font-weight:600;color:var(--ink)}
.gai-chat-head-sub{font-size:0.625rem;color:var(--fog);font-weight:400}
.gai-chat-close{
  background:transparent;border:none;color:var(--fog);cursor:pointer;
  width:1.75rem;height:1.75rem;border-radius:0.25rem;
  display:flex;align-items:center;justify-content:center;
  transition:all 0.15s;
}
.gai-chat-close:hover{background:rgba(255,255,255,0.05);color:var(--ink)}
.gai-chat-close svg{width:0.875rem;height:0.875rem}

.gai-chat-context{
  padding:0.625rem 1rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
  background:rgba(204,255,0,0.025);
  display:flex;flex-wrap:wrap;gap:0.375rem;align-items:center;
  min-height:2.5rem;
}
.gai-chat-context-empty{
  font-size:0.6875rem;color:var(--fog);font-style:italic;
}
.gai-chat-context-pill{
  display:inline-flex;align-items:center;gap:0.25rem;
  background:rgba(204,255,0,0.10);
  border:0.0625rem solid rgba(204,255,0,0.25);
  color:var(--green);font-size:0.625rem;font-weight:600;
  padding:0.25rem 0.5rem;border-radius:1rem;
}
/* Baseline pill = always-on "you are here" context, slightly de-emphasized */
.gai-chat-context-pill-baseline{
  background:rgba(255,255,255,0.04);
  border-color:rgba(255,255,255,0.10);
  color:var(--ash);
}
.gai-baseline-prefix{
  color:var(--fog);font-weight:400;text-transform:uppercase;
  letter-spacing:0.04em;font-size:0.5625rem;margin-right:0.125rem;
}
.gai-chat-context-pill-remove{
  background:transparent;border:none;color:inherit;cursor:pointer;
  padding:0;line-height:1;font-size:0.875rem;opacity:0.55;
}
.gai-chat-context-pill-remove:hover{opacity:1}
.gai-chat-context-help{
  font-size:0.625rem;color:var(--fog);margin-left:auto;
  display:flex;align-items:center;gap:0.25rem;
}
.gai-chat-context-help kbd{
  background:rgba(255,255,255,0.06);border:0.0625rem solid rgba(255,255,255,0.10);
  padding:0.0625rem 0.3125rem;border-radius:0.1875rem;
  font-family:inherit;font-size:0.5625rem;color:var(--ash);
}

.gai-chat-messages{
  flex:1;overflow-y:auto;padding:1rem;
  display:flex;flex-direction:column;gap:0.625rem;
  min-height:5rem;max-height:18rem;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,0.10) transparent;
}
.gai-chat-empty{
  display:flex;flex-direction:column;gap:0.625rem;
  padding:0.5rem 0;font-size:0.75rem;color:var(--fog);
}
.gai-chat-empty-prompt{color:var(--ink);font-weight:500;font-size:0.8125rem;line-height:1.45}
.gai-chat-empty-prompt b{color:var(--green);font-weight:600}
.gai-chat-empty-hint{
  font-size:0.6875rem;color:var(--fog);line-height:1.5;
  padding:0.5rem 0.625rem;background:rgba(255,255,255,0.025);
  border:0.0625rem solid rgba(255,255,255,0.05);border-radius:0.375rem;
}
.gai-chat-empty-hint kbd{
  background:rgba(255,255,255,0.06);border:0.0625rem solid rgba(255,255,255,0.10);
  padding:0.0625rem 0.3125rem;border-radius:0.1875rem;
  font-family:inherit;font-size:0.5625rem;color:var(--ash);
}
.gai-chat-empty-suggestions{display:flex;flex-direction:column;gap:0.25rem}
.gai-chat-suggestion{
  background:rgba(255,255,255,0.025);border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.375rem;padding:0.5rem 0.625rem;
  font-size:0.6875rem;color:var(--ash);cursor:pointer;
  transition:all 0.15s;text-align:left;
}
.gai-chat-suggestion:hover{background:rgba(255,255,255,0.05);border-color:rgba(204,255,0,0.15)}

.gai-chat-msg{
  font-size:0.75rem;line-height:1.5;
  padding:0.5rem 0.75rem;border-radius:0.5rem;
  max-width:85%;
}
.gai-chat-msg.user{
  align-self:flex-end;background:rgba(204,255,0,0.10);
  border:0.0625rem solid rgba(204,255,0,0.20);
  color:var(--ink);
}
.gai-chat-msg.assistant{
  align-self:flex-start;background:rgba(255,255,255,0.03);
  border:0.0625rem solid rgba(255,255,255,0.05);
  color:var(--ash);
}

.gai-chat-input-row{
  display:flex;gap:0.375rem;align-items:flex-end;
  padding:0.625rem 0.75rem 0.75rem;
  border-top:0.0625rem solid rgba(255,255,255,0.06);
}
.gai-chat-input{
  flex:1;background:rgba(0,0,0,0.30);
  border:0.0625rem solid rgba(255,255,255,0.08);
  border-radius:0.5rem;
  padding:0.5rem 0.75rem;color:var(--ink);
  font-family:inherit;font-size:0.75rem;line-height:1.4;
  resize:none;outline:none;min-height:2rem;max-height:6rem;
  transition:border-color 0.15s;
}
.gai-chat-input:focus{border-color:rgba(204,255,0,0.35)}
.gai-chat-send{
  background:linear-gradient(135deg, #cce600, #99cc00);
  color:rgba(0,0,0,0.85);border:none;cursor:pointer;
  width:2rem;height:2rem;border-radius:0.375rem;
  display:flex;align-items:center;justify-content:center;
  transition:all 0.15s;flex-shrink:0;
}
.gai-chat-send:hover{transform:scale(1.05)}
.gai-chat-send svg{width:0.875rem;height:0.875rem}

/* Highlight any element when user is in "selecting context" mode */
.gai-context-select-mode [data-gai-context]{
  cursor:pointer !important;outline:0.0625rem dashed rgba(204,255,0,0.25);
  outline-offset:0.125rem;transition:outline 0.15s;
}
.gai-context-select-mode [data-gai-context]:hover{
  outline:0.125rem solid rgba(204,255,0,0.55);
  background:rgba(204,255,0,0.03);
}
[data-gai-context].gai-context-selected{
  outline:0.125rem solid var(--green) !important;
  background:rgba(204,255,0,0.04);
}

/* ═══════════════════════════════════════════════════════════════════
   News lens v2 — featured carousel, catalysts/headwinds, dual sentiment,
   maximal voice scroller. All visual upgrades over v1.
   ═══════════════════════════════════════════════════════════════════ */

/* ── Featured carousel header ─────────────────────────────────────── */
.news-featured-wrap{margin-bottom:1.5rem}
.news-featured-head{
  display:flex;justify-content:space-between;align-items:center;
  margin-bottom:0.625rem;
}
.news-featured-title{
  display:flex;align-items:center;gap:0.5rem;
  font-size:0.875rem;font-weight:600;color:var(--ink);
}
.news-featured-title svg{width:0.9375rem;height:0.9375rem;color:var(--green)}
.news-featured-nav{display:flex;gap:0.25rem}
.news-featured-arrow{
  width:1.75rem;height:1.75rem;border-radius:0.375rem;
  background:rgba(255,255,255,0.04);border:0.0625rem solid rgba(255,255,255,0.08);
  color:var(--ash);cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
  transition:all 0.15s;
}
.news-featured-arrow:hover{background:rgba(255,255,255,0.08);color:var(--ink);border-color:rgba(255,255,255,0.16)}
.news-featured-arrow:disabled{opacity:0.35;cursor:not-allowed}
.news-featured-arrow svg{width:0.875rem;height:0.875rem}

/* ── Featured carousel: snap-scrolling horizontal track ───────────── */
.news-featured-carousel{
  display:flex;gap:0.75rem;
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,0.12) transparent;
  padding-bottom:0.375rem;
}
.news-featured-carousel::-webkit-scrollbar{height:0.375rem}
.news-featured-carousel::-webkit-scrollbar-track{background:transparent}
.news-featured-carousel::-webkit-scrollbar-thumb{
  background:rgba(255,255,255,0.10);border-radius:0.1875rem;
}

.news-featured-card{
  flex:0 0 min(36rem, 90%);
  scroll-snap-align:start;
  display:grid;grid-template-columns:1.2fr 1fr;gap:0;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.08);
  border-radius:0.75rem;overflow:hidden;
  cursor:pointer;transition:all 0.15s;
}
.news-featured-card:hover{border-color:rgba(204,255,0,0.25);transform:translateY(-0.0625rem)}
.news-featured-card-image{
  position:relative;min-height:11rem;
  background:linear-gradient(135deg, rgba(204,255,0,0.05), rgba(245,166,35,0.05));
  background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;
}
.news-featured-card-image.has-image .news-featured-card-image-placeholder{display:none}
.news-featured-card-image-placeholder{
  width:3rem;height:3rem;color:rgba(255,255,255,0.15);
}
.news-featured-card-image-placeholder svg{width:100%;height:100%}
.news-featured-rank{
  position:absolute;top:0.5rem;left:0.5rem;
  font-size:0.5625rem;font-weight:700;letter-spacing:0.06em;
  background:rgba(0,0,0,0.65);color:var(--green);
  padding:0.1875rem 0.4375rem;border-radius:0.25rem;
  backdrop-filter:blur(4px);
}
.news-featured-rank.is-1{background:rgba(204,255,0,0.92);color:rgba(0,0,0,0.85)}
.news-featured-card-body{
  padding:1rem 1.125rem;display:flex;flex-direction:column;gap:0.5rem;
}
.news-featured-card-tags{display:flex;flex-wrap:wrap;gap:0.3125rem;align-items:center}
.news-featured-card-title{
  font-size:0.9375rem;font-weight:600;color:var(--ink);line-height:1.35;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;text-overflow:ellipsis;
}
.news-featured-card-excerpt{
  font-size:0.75rem;color:var(--ash);line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;text-overflow:ellipsis;
}
.news-featured-card-meta{
  display:flex;justify-content:space-between;align-items:center;
  margin-top:auto;padding-top:0.5rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-size:0.625rem;color:var(--fog);
}
.news-featured-card-meta b{color:var(--ash);font-weight:600}
.news-featured-card-meta a{color:var(--green);font-weight:600;text-decoration:none}

/* ── Catalysts & Headwinds card ───────────────────────────────────── */
.news-insight-wide{grid-column:span 1}
.news-ch-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:0.625rem;
}
@media (max-width:700px){.news-ch-grid{grid-template-columns:1fr}}
.news-ch-col{
  padding:0.625rem 0.75rem;border-radius:0.5rem;
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);
}
.news-ch-col-bull{border-left:0.1875rem solid #9ce600}
.news-ch-col-bear{border-left:0.1875rem solid #ff6b6b}
.news-ch-col-head{
  display:flex;align-items:center;gap:0.375rem;
  font-size:0.625rem;font-weight:700;letter-spacing:0.06em;
  color:var(--ash);text-transform:uppercase;
  padding-bottom:0.5rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);margin-bottom:0.5rem;
}
.news-ch-col-head b{color:var(--ink);font-weight:700;margin-left:auto}
.news-ch-dot{
  display:inline-block;width:0.5rem;height:0.5rem;border-radius:50%;
}
.news-ch-dot.bull{background:#9ce600}
.news-ch-dot.bear{background:#ff6b6b}
.news-ch-list{
  display:flex;flex-direction:column;gap:0.375rem;
  max-height:9.5rem;overflow-y:auto;padding-right:0.25rem;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,0.10) transparent;
}
.news-ch-list::-webkit-scrollbar{width:0.25rem}
.news-ch-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.08);border-radius:0.125rem}
.news-ch-item{
  display:flex;flex-direction:column;gap:0.1875rem;
  padding:0.4375rem 0.5rem;
  background:rgba(255,255,255,0.025);border-radius:0.3125rem;
  cursor:pointer;transition:background 0.15s;
  text-decoration:none;color:inherit;
}
.news-ch-item:hover{background:rgba(255,255,255,0.05)}
.news-ch-item-title{
  font-size:0.6875rem;font-weight:600;color:var(--ink);line-height:1.4;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;
}
.news-ch-item-meta{
  display:flex;justify-content:space-between;align-items:center;
  font-size:0.5625rem;color:var(--fog);
}
.news-ch-item-meta b{color:var(--ash);font-weight:600}
.news-ch-impact{
  display:inline-flex;align-items:center;gap:0.125rem;
  font-weight:700;letter-spacing:0.04em;
}
.news-ch-impact.high{color:var(--green)}
.news-ch-impact.bear-high{color:#ff6b6b}

/* ── Dual sentiment distribution (donuts) ─────────────────────────── */
.news-dist-dual{
  display:grid;grid-template-columns:1fr auto 1fr;gap:0.5rem;align-items:stretch;
}
.news-dist-block{
  display:flex;flex-direction:column;align-items:center;gap:0.5rem;
  padding:0.625rem 0.5rem;
  background:rgba(0,0,0,0.18);border:0.0625rem solid rgba(255,255,255,0.04);
  border-radius:0.5rem;
}
.news-dist-source-label{
  font-size:0.625rem;font-weight:700;letter-spacing:0.06em;
  color:var(--ash);text-transform:uppercase;
}
.news-dist-donut{
  position:relative;width:5rem;height:5rem;
}
.news-dist-svg{width:100%;height:100%;transform:rotate(-90deg)}
.news-dist-svg circle{fill:transparent;stroke-width:5}
.news-dist-svg .bg{stroke:rgba(255,255,255,0.05)}
.news-dist-svg .seg-bull{stroke:#9ce600}
.news-dist-svg .seg-neutral{stroke:rgba(245,166,35,0.85)}
.news-dist-svg .seg-bear{stroke:#c52525}
.news-dist-center{
  position:absolute;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;
}
.news-dist-score{
  font-size:1rem;font-weight:300;line-height:1;
  font-variant-numeric:tabular-nums;
}
.news-dist-score.green{color:var(--green)}
.news-dist-score.red{color:#ff6b6b}
.news-dist-score.gold{color:var(--gold)}
.news-dist-label{
  font-size:0.5625rem;color:var(--fog);margin-top:0.125rem;line-height:1.2;
}
.news-dist-counts{
  display:flex;gap:0.5rem;font-size:0.625rem;color:var(--fog);
  font-variant-numeric:tabular-nums;
}
.news-dist-counts span{display:inline-flex;align-items:center;gap:0.1875rem}
.news-dist-counts b{color:var(--ash);font-weight:700}
.news-dist-dot{
  display:inline-block;width:0.4375rem;height:0.4375rem;border-radius:50%;
}
.news-dist-dot.bull{background:#9ce600}
.news-dist-dot.neutral{background:rgba(245,166,35,0.85)}
.news-dist-dot.bear{background:#c52525}

.news-dist-divider{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:0 0.375rem;text-align:center;gap:0.1875rem;
}
.news-dist-divergence-label{
  font-size:0.5rem;font-weight:700;letter-spacing:0.08em;
  color:var(--fog);text-transform:uppercase;
}
.news-dist-divergence-val{
  font-size:1.125rem;font-weight:300;line-height:1;
  color:var(--ink);font-variant-numeric:tabular-nums;
}
.news-dist-divergence-val.aligned{color:var(--green)}
.news-dist-divergence-val.diverge{color:var(--gold)}
.news-dist-divergence-val.strong-diverge{color:#ff6b6b}
.news-dist-divergence-explain{
  font-size:0.5rem;color:var(--fog);line-height:1.3;
  max-width:4rem;text-align:center;
}

/* ── Maximal Creator Voices: scroller + bigger cards ──────────────── */
.news-voices-section-v2{
  margin:2rem 0 1.5rem;padding:1.25rem;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.75rem;
}
.news-voices-head-v2{
  display:flex;justify-content:space-between;align-items:center;gap:1rem;
  margin-bottom:1rem;flex-wrap:wrap;
}
.news-voices-title-v2{
  display:flex;align-items:center;gap:0.5rem;
  font-size:0.9375rem;font-weight:600;color:var(--ink);
}
.news-voices-title-v2 svg{width:1.25rem;height:1.25rem}
.news-voices-count-pill{
  font-size:0.625rem;color:var(--fog);font-weight:400;
  margin-left:0.375rem;
}
.news-voices-count-pill b{color:var(--ash);font-weight:700}

.news-voices-controls{
  display:flex;align-items:center;gap:0.5rem;
}
.news-voices-mini-dist{
  display:flex;flex-direction:column;gap:0.25rem;
  min-width:8rem;
}
.news-voices-mini-bar{
  height:0.375rem;background:rgba(225,53,53,0.20);border-radius:0.1875rem;
  overflow:hidden;
}
.news-voices-mini-fill{
  height:100%;border-radius:0.1875rem;
  transition:width 0.3s ease;
}
.news-voices-mini-fill.bull{background:#9ce600}
.news-voices-mini-legend{
  font-size:0.5625rem;color:var(--fog);
  font-variant-numeric:tabular-nums;
}
.news-voices-mini-legend b{color:var(--ash);font-weight:700}

.news-voices-scroller{
  display:flex;gap:0.75rem;
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding-bottom:0.5rem;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,0.12) transparent;
}
.news-voices-scroller::-webkit-scrollbar{height:0.375rem}
.news-voices-scroller::-webkit-scrollbar-track{background:transparent}
.news-voices-scroller::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.10);border-radius:0.1875rem}

.news-voice-card-v2{
  flex:0 0 22rem;scroll-snap-align:start;
  position:relative;
  background:rgba(0,0,0,0.25);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.625rem;overflow:hidden;
  cursor:pointer;transition:all 0.15s;
  display:flex;flex-direction:column;
}
.news-voice-card-v2:hover{
  border-color:rgba(225,53,53,0.30);
  transform:translateY(-0.0625rem);
}
.news-voice-card-v2.bull{border-top:0.1875rem solid #9ce600}
.news-voice-card-v2.bear{border-top:0.1875rem solid #ff6b6b}
.news-voice-card-v2.neutral{border-top:0.1875rem solid var(--gold)}

.news-voice-card-thumb{
  position:relative;height:8rem;
  background:linear-gradient(135deg, rgba(225,53,53,0.10), rgba(0,0,0,0.6)),
             linear-gradient(135deg, rgba(255,255,255,0.04), rgba(255,255,255,0.01));
  background-size:cover;background-position:center;
  display:flex;align-items:center;justify-content:center;
}
.news-voice-card-thumb.has-image::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.6));
  pointer-events:none;
}
.news-voice-play-icon{
  width:2.5rem;height:2.5rem;border-radius:50%;
  background:rgba(225,53,53,0.92);color:#fff;
  display:flex;align-items:center;justify-content:center;
  box-shadow:0 0.25rem 1rem rgba(0,0,0,0.4);
  position:relative;z-index:1;
}
.news-voice-play-icon svg{width:1rem;height:1rem;margin-left:0.125rem}
a.news-voice-play-icon{cursor:pointer;transition:transform 0.12s ease, background 0.12s ease}
a.news-voice-play-icon:hover{transform:scale(1.08);background:rgba(225,53,53,1)}

.news-voice-card-stance{
  position:absolute;top:0.5rem;right:0.5rem;z-index:2;
  font-size:0.5625rem;font-weight:700;letter-spacing:0.06em;
  padding:0.1875rem 0.4375rem;border-radius:0.25rem;
  backdrop-filter:blur(4px);
}
.news-voice-card-stance.bull{background:rgba(204,255,0,0.92);color:rgba(0,0,0,0.85)}
.news-voice-card-stance.bear{background:rgba(225,53,53,0.92);color:#fff}
.news-voice-card-stance.neutral{background:rgba(245,166,35,0.92);color:rgba(0,0,0,0.85)}

.news-voice-card-pt{
  position:absolute;bottom:0.5rem;left:0.5rem;z-index:2;
  font-size:0.5625rem;font-weight:700;letter-spacing:0.04em;
  background:rgba(0,0,0,0.65);color:var(--green);
  padding:0.1875rem 0.4375rem;border-radius:0.25rem;
  backdrop-filter:blur(4px);
}

.news-voice-card-body{
  padding:0.75rem 0.875rem 0.875rem;
  display:flex;flex-direction:column;gap:0.4375rem;flex:1;
}
.news-voice-card-author{
  display:flex;align-items:center;gap:0.5rem;
}
.news-voice-card-avatar{
  width:1.75rem;height:1.75rem;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:0.625rem;font-weight:700;color:var(--ink);
  background:rgba(255,255,255,0.06);flex-shrink:0;overflow:hidden;
}
.news-voice-card-avatar img{width:100%;height:100%;object-fit:cover}
.news-voice-card-author-meta{
  display:flex;flex-direction:column;line-height:1.2;min-width:0;flex:1;
}
.news-voice-card-author-meta b{
  font-size:0.75rem;color:var(--ink);font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.news-voice-card-author-meta small{font-size:0.5625rem;color:var(--fog)}
.news-voice-card-cred{
  font-size:0.5625rem;color:var(--ash);
  background:rgba(255,255,255,0.05);
  padding:0.125rem 0.375rem;border-radius:0.1875rem;
  font-variant-numeric:tabular-nums;
}

.news-voice-card-quote{
  font-size:0.75rem;color:var(--ash);line-height:1.5;font-style:italic;
  display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;
  overflow:hidden;text-overflow:ellipsis;flex:1;
}
.news-voice-card-foot{
  display:flex;justify-content:space-between;align-items:center;
  font-size:0.5625rem;color:var(--fog);
  padding-top:0.4375rem;border-top:0.0625rem solid rgba(255,255,255,0.04);
}
.news-voice-card-foot b{color:var(--ash);font-weight:600}
a.news-voice-watch{color:var(--green);font-weight:700;text-decoration:none;white-space:nowrap}
a.news-voice-watch:hover{text-decoration:underline}


/* ═══════════════════════════════════════════════════════════════════
   News lens v3 — Signal Dynamics panel: cross-source intelligence
   ═══════════════════════════════════════════════════════════════════ */

/* New row layout: 1fr (Catalysts) + 2fr (Signal Dynamics) */
.news-insights-row-v2{
  grid-template-columns: 1fr 1.7fr;
  gap:0.875rem;
}
@media (max-width:1100px){
  .news-insights-row-v2{grid-template-columns:1fr}
}

/* Signal panel shell */
.news-signal-panel{
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.75rem;
  padding:1.25rem;
  display:flex;flex-direction:column;gap:1rem;
}
.news-signal-head{
  display:flex;justify-content:space-between;align-items:flex-start;
  gap:1rem;flex-wrap:wrap;
}
.news-signal-title{
  display:flex;align-items:center;gap:0.5rem;
  font-size:0.875rem;font-weight:600;color:var(--ink);
  margin-bottom:0.25rem;
}
.news-signal-title svg{width:1rem;height:1rem;color:var(--green)}
.news-signal-sub{font-size:0.75rem;color:var(--fog);line-height:1.45;max-width:34rem}

/* Legend pills */
.news-signal-legend{
  display:flex;gap:0.625rem;flex-wrap:wrap;
}
.news-signal-legend-item{
  display:inline-flex;align-items:center;gap:0.3125rem;
  font-size:0.625rem;color:var(--ash);font-weight:500;
}
.news-signal-line{
  display:inline-block;width:1rem;height:0.125rem;border-radius:0.0625rem;
}
.news-signal-line.news{background:var(--green)}
.news-signal-line.creator{background:#ff6b6b}
.news-signal-line.price{background:var(--gold)}

/* Mood chart container */
.news-mood-chart-wrap{
  position:relative;width:100%;
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.04);
  border-radius:0.5rem;
  padding:0.875rem;
  min-height:11.25rem;
}
.news-mood-chart{
  width:100%;height:11rem;display:block;
}
.news-mood-chart .gridline{stroke:rgba(255,255,255,0.05);stroke-width:1}
.news-mood-chart .zero{stroke:rgba(255,255,255,0.12);stroke-width:1;stroke-dasharray:3 3}
.news-mood-chart .axis-label{
  fill:var(--fog);font-size:8px;
  font-family:inherit;font-variant-numeric:tabular-nums;
}
.news-mood-chart .line-news{
  fill:none;stroke:var(--green);stroke-width:1.5;
}
.news-mood-chart .line-creator{
  fill:none;stroke:#ff6b6b;stroke-width:1.5;
}
.news-mood-chart .line-price{
  fill:none;stroke:var(--gold);stroke-width:1.5;stroke-dasharray:4 2;
}
.news-mood-chart .dot{
  fill:var(--bg);stroke-width:1.25;
}
.news-mood-chart .dot.news{stroke:var(--green)}
.news-mood-chart .dot.creator{stroke:#ff6b6b}
.news-mood-chart .dot.price{stroke:var(--gold)}
.news-mood-chart .area-news{
  fill:url(#mood-news-grad);opacity:0.25;
}
.news-mood-chart-tooltip{
  position:absolute;padding:0.4375rem 0.625rem;
  background:rgba(0,0,0,0.92);border:0.0625rem solid rgba(255,255,255,0.10);
  border-radius:0.375rem;font-size:0.6875rem;color:var(--ink);
  pointer-events:none;z-index:2;line-height:1.45;white-space:nowrap;
}

/* Tile grid below the chart */
.news-signal-tiles{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0.625rem;
}
@media (max-width:1300px){.news-signal-tiles{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.news-signal-tiles{grid-template-columns:1fr}}

.news-signal-tile{
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);
  border-radius:0.5rem;
  padding:0.75rem 0.875rem;
  display:flex;flex-direction:column;gap:0.5rem;
}
.news-signal-tile-ai{
  background:linear-gradient(135deg, rgba(175,82,222,0.03), rgba(0,0,0,0.20));
  border-color:rgba(175,82,222,0.15);
}
.news-signal-tile-head{
  display:flex;align-items:center;gap:0.4375rem;
  font-size:0.6875rem;font-weight:700;letter-spacing:0.04em;
  color:var(--ash);text-transform:uppercase;
}
.news-signal-ai-badge{
  font-size:0.5rem;font-weight:700;letter-spacing:0.06em;
  background:rgba(175,82,222,0.18);color:#c08ce6;
  padding:0.0625rem 0.3125rem;border-radius:0.1875rem;
  margin-left:auto;
}
.news-signal-tile-foot{
  margin-top:auto;padding-top:0.4375rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-size:0.5625rem;color:var(--fog);line-height:1.4;
  display:flex;align-items:center;gap:0.3125rem;flex-wrap:wrap;
}

/* Tile 1: 3-Source Triangle */
.news-signal-triangle-rows{
  display:flex;flex-direction:column;gap:0.3125rem;
}
.news-signal-tri-row{
  display:grid;grid-template-columns:5rem 1fr 2.5rem;gap:0.4375rem;align-items:center;
  font-size:0.6875rem;
}
.news-signal-tri-label{color:var(--ash);font-size:0.625rem}
.news-signal-tri-bar{
  position:relative;height:0.4375rem;
  background:rgba(255,255,255,0.04);border-radius:0.21875rem;overflow:hidden;
}
.news-signal-tri-bar::before{
  content:'';position:absolute;left:50%;top:0;bottom:0;width:0.0625rem;
  background:rgba(255,255,255,0.18);z-index:1;
}
.news-signal-tri-bar-fill{
  position:absolute;top:0;bottom:0;
  /* "Center anchored": left:50% + transform decides direction */
  background:var(--green);transition:all 0.3s;
}
.news-signal-tri-bar-fill.bear{background:#ff6b6b}
.news-signal-tri-bar-fill.neutral{background:var(--gold)}
.news-signal-tri-row b{
  text-align:right;font-weight:700;font-variant-numeric:tabular-nums;
  color:var(--ink);
}
.news-signal-align-badge{
  font-size:0.5rem;font-weight:700;letter-spacing:0.06em;
  padding:0.125rem 0.375rem;border-radius:0.1875rem;text-transform:uppercase;
}
.news-signal-align-badge.aligned{background:rgba(204,255,0,0.10);color:var(--green);border:0.0625rem solid rgba(204,255,0,0.22)}
.news-signal-align-badge.split{background:rgba(245,166,35,0.10);color:var(--gold);border:0.0625rem solid rgba(245,166,35,0.22)}
.news-signal-align-badge.diverged{background:rgba(225,53,53,0.10);color:#ff6b6b;border:0.0625rem solid rgba(225,53,53,0.22)}
.news-signal-align-detail{color:var(--fog);font-size:0.5625rem}

/* Tile 2: Silent Risks */
.news-signal-silent-headline{font-size:0.6875rem;color:var(--ash);line-height:1.45;margin-bottom:0.3125rem}
.news-signal-silent-headline b{color:#c08ce6;font-weight:700}
.news-signal-silent-examples{display:flex;flex-direction:column;gap:0.3125rem}
.news-signal-silent-item{
  font-size:0.625rem;color:var(--ash);line-height:1.45;
  padding:0.3125rem 0.4375rem;background:rgba(255,255,255,0.025);
  border-left:0.125rem solid rgba(175,82,222,0.45);border-radius:0.1875rem;
}
.news-signal-silent-tag{
  display:inline-block;font-size:0.5rem;font-weight:700;letter-spacing:0.04em;
  color:#c08ce6;background:rgba(175,82,222,0.12);
  padding:0.0625rem 0.3125rem;border-radius:0.1875rem;margin-right:0.3125rem;
  text-transform:uppercase;
}

/* Tile 3: Narrative Velocity */
.news-signal-velocity-body{display:flex;flex-direction:column;gap:0.3125rem}
.news-signal-vel-row{
  display:grid;grid-template-columns:1fr auto auto;gap:0.4375rem;align-items:center;
  font-size:0.6875rem;color:var(--ash);
  padding:0.3125rem 0.4375rem;background:rgba(255,255,255,0.025);border-radius:0.25rem;
}
.news-signal-vel-name{
  font-weight:600;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.news-signal-vel-arrow{
  font-size:0.5625rem;font-weight:700;letter-spacing:0.02em;
  padding:0.0625rem 0.3125rem;border-radius:0.1875rem;
}
.news-signal-vel-arrow.up{background:rgba(204,255,0,0.10);color:var(--green)}
.news-signal-vel-arrow.first{background:rgba(245,166,35,0.10);color:var(--gold)}
.news-signal-vel-arrow.steady{background:rgba(255,255,255,0.06);color:var(--ash)}
.news-signal-vel-arrow.down{background:rgba(225,53,53,0.10);color:#ff6b6b}
.news-signal-vel-count{
  font-size:0.5625rem;color:var(--fog);font-variant-numeric:tabular-nums;
}

/* Tile 4: Reflexivity + Catalyst */
.news-signal-reflex-body{display:flex;flex-direction:column;gap:0.4375rem}
.news-signal-reflex-row{
  display:flex;justify-content:space-between;align-items:baseline;
  font-size:0.6875rem;color:var(--ash);
}
.news-signal-reflex-label{font-size:0.625rem;color:var(--fog)}
.news-signal-reflex-val{
  font-size:1.125rem;font-weight:300;line-height:1;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.news-signal-reflex-val.high{color:var(--green)}
.news-signal-reflex-val.low{color:var(--gold)}
.news-signal-reflex-bar{
  height:0.3125rem;background:rgba(255,255,255,0.05);
  border-radius:0.15625rem;overflow:hidden;
}
.news-signal-reflex-bar-fill{
  height:100%;background:var(--green);transition:width 0.4s;
}
.news-signal-reflex-explain{
  font-size:0.5625rem;color:var(--fog);line-height:1.45;
}
.news-signal-catalyst-row{
  display:flex;justify-content:space-between;align-items:baseline;
  padding-top:0.3125rem;border-top:0.0625rem solid rgba(255,255,255,0.04);
  margin-top:0.125rem;
}
.news-signal-catalyst-label{font-size:0.625rem;color:var(--fog)}
.news-signal-catalyst-val{
  font-size:0.75rem;font-weight:700;color:var(--gold);
  font-variant-numeric:tabular-nums;
}
.news-signal-tile-foot-note{color:var(--fog);font-style:italic}

/* ═══════════════════════════════════════════════════════════════════
   Signal Dynamics v2 — tighter layout: chart → 3-source strip → 3 tiles
   ═══════════════════════════════════════════════════════════════════ */

/* Taller chart for better readability */
.news-mood-chart{height:14.5rem !important}
.news-mood-chart-wrap{min-height:15rem;padding:1rem}

/* ── Compact horizontal 3-source verdict strip ─────────────────────── */
.news-signal-tri-strip{
  display:grid;
  grid-template-columns: auto repeat(3, minmax(0, 1fr)) auto;
  gap:1rem;align-items:center;
  padding:0.75rem 1rem;
  background:rgba(0,0,0,0.18);
  border:0.0625rem solid rgba(255,255,255,0.05);
  border-radius:0.5rem;
}
@media (max-width:1100px){
  .news-signal-tri-strip{grid-template-columns:1fr;gap:0.5rem}
}
.news-signal-tri-strip-head{
  display:flex;align-items:center;gap:0.375rem;
  font-size:0.625rem;font-weight:700;letter-spacing:0.06em;
  color:var(--fog);text-transform:uppercase;
  white-space:nowrap;
}
.news-signal-tri-strip-head svg{width:0.875rem;height:0.875rem;color:var(--green)}
.news-signal-tri-strip-row{
  display:grid;grid-template-columns:5.5rem 1fr 2.5rem;
  gap:0.4375rem;align-items:center;font-size:0.6875rem;
  min-width:0;
}
.news-signal-tri-name{
  color:var(--ash);font-size:0.6875rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.news-signal-tri-strip-bar{
  position:relative;height:0.4375rem;
  background:rgba(255,255,255,0.04);border-radius:0.21875rem;overflow:hidden;
}
.news-signal-tri-strip-bar::before{
  content:'';position:absolute;left:50%;top:0;bottom:0;width:0.0625rem;
  background:rgba(255,255,255,0.18);z-index:1;
}
.news-signal-tri-strip-bar-fill{
  position:absolute;top:0;bottom:0;
  background:var(--green);transition:all 0.3s;
}
.news-signal-tri-strip-bar-fill.bear{background:#ff6b6b}
.news-signal-tri-strip-bar-fill.neutral{background:var(--gold)}
.news-signal-tri-val{
  text-align:right;font-size:0.8125rem;font-weight:700;
  font-variant-numeric:tabular-nums;color:var(--ink);
}
.news-signal-tri-strip-verdict{
  display:flex;flex-direction:column;align-items:flex-end;gap:0.1875rem;
  padding-left:0.875rem;
  border-left:0.0625rem solid rgba(255,255,255,0.06);
  white-space:nowrap;
}
@media (max-width:1100px){
  .news-signal-tri-strip-verdict{
    align-items:flex-start;border-left:none;padding-left:0;
    padding-top:0.5rem;border-top:0.0625rem solid rgba(255,255,255,0.06);
  }
}

/* ── 3-tile row (replaces the old 4-tile) ──────────────────────────── */
.news-signal-tiles-3{
  display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:0.625rem;
}
@media (max-width:1100px){.news-signal-tiles-3{grid-template-columns:repeat(2,1fr)}}
@media (max-width:700px){.news-signal-tiles-3{grid-template-columns:1fr}}

/* Each tile slightly taller with denser content (replaces .news-signal-tile rules) */
.news-signal-tiles-3 .news-signal-tile{
  min-height:11rem;
}

/* Reflexivity tile gets a wider hero layout to fill the larger card */
.news-signal-reflex-hero{
  display:grid;grid-template-columns:auto 1fr;gap:0.875rem;align-items:center;
  padding:0.5rem 0.625rem;
  background:rgba(255,255,255,0.02);border-radius:0.375rem;
}
.news-signal-reflex-hero .news-signal-reflex-label{
  font-size:0.5625rem;color:var(--fog);
  text-transform:uppercase;letter-spacing:0.04em;
  margin-bottom:0.1875rem;
}
.news-signal-reflex-hero .news-signal-reflex-val{
  font-size:1.5rem;font-weight:300;line-height:1;
  font-variant-numeric:tabular-nums;color:var(--ink);
}
.news-signal-reflex-bar-wrap{flex:1;min-width:0}

/* Velocity tile: more rows now fit, slightly tighter spacing */
.news-signal-tiles-3 .news-signal-velocity-body{gap:0.3125rem}
.news-signal-tiles-3 .news-signal-vel-row{padding:0.3125rem 0.5rem}

/* ═══════════════════════════════════════════════════════════════════
   Signal Dynamics v3 — chart + verdict side-by-side, dense layout
   ═══════════════════════════════════════════════════════════════════ */
.news-signal-line.analyst{background:#7cb8ff}

/* Top row: chart + verdict side-by-side */
.news-signal-top{
  display:grid;
  grid-template-columns: minmax(0, 1.85fr) minmax(15rem, 0.7fr);
  gap:0.875rem;align-items:stretch;
}
@media (max-width:1100px){
  .news-signal-top{grid-template-columns:1fr}
}

/* Chart wrapper — taller + meta header strip on top */
.news-mood-chart-wrap{
  position:relative;
  background:rgba(0,0,0,0.22);
  border:0.0625rem solid rgba(255,255,255,0.05);
  border-radius:0.5rem;
  padding:0.875rem 1rem 0.5rem;
  display:flex;flex-direction:column;gap:0.4375rem;
}
.news-mood-chart{height:13.5rem !important;width:100%;display:block}
.news-mood-chart-meta{
  display:flex;align-items:baseline;gap:0.5rem;
  font-size:0.625rem;color:var(--fog);
}
.news-mood-chart-window-label{
  color:var(--ash);font-weight:600;
}
.news-mood-chart-window-hint{
  color:var(--fog);font-style:italic;font-size:0.5625rem;
}

/* Smoother chart styling */
.news-mood-chart .line-news,
.news-mood-chart .line-creator{
  stroke-width:2;stroke-linejoin:round;stroke-linecap:round;
}
.news-mood-chart .line-price{
  stroke-width:1.75;stroke-dasharray:5 3;stroke-linejoin:round;stroke-linecap:round;
}
.news-mood-chart .dot{r:3;stroke-width:1.5}
.news-mood-chart .area-news{
  fill:url(#mood-news-grad);opacity:0.35;
}

/* Source Verdict — vertical card on the right */
.news-signal-verdict{
  background:linear-gradient(180deg, rgba(255,255,255,0.025), rgba(0,0,0,0.20));
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.5rem;
  padding:0.875rem 1rem;
  display:flex;flex-direction:column;gap:0.875rem;
}
.news-signal-verdict-head{
  font-size:0.625rem;font-weight:700;letter-spacing:0.08em;
  color:var(--fog);text-transform:uppercase;
}
.news-signal-verdict-rows{
  display:flex;flex-direction:column;gap:0.5rem;flex:1;
}
.news-signal-verdict-row{
  display:grid;grid-template-columns:5rem 1fr 2.5rem;
  gap:0.5rem;align-items:center;
}
.news-signal-verdict-row-label{
  display:flex;align-items:center;gap:0.375rem;
  font-size:0.6875rem;color:var(--ash);
  white-space:nowrap;
}
.news-signal-verdict-row-label .news-signal-line{
  width:0.75rem;height:0.125rem;
}
.news-signal-verdict-row-bar{
  position:relative;height:0.4375rem;
  background:rgba(255,255,255,0.04);border-radius:0.21875rem;overflow:hidden;
}
.news-signal-verdict-row-bar::before{
  content:'';position:absolute;left:50%;top:0;bottom:0;width:0.0625rem;
  background:rgba(255,255,255,0.18);z-index:1;
}
.news-signal-verdict-bar-fill{
  position:absolute;top:0;bottom:0;
  background:var(--green);transition:all 0.3s;
}
.news-signal-verdict-bar-fill.bear{background:#ff6b6b}
.news-signal-verdict-bar-fill.neutral{background:var(--gold)}
.news-signal-verdict-row-val{
  text-align:right;font-size:0.9375rem;font-weight:700;
  font-variant-numeric:tabular-nums;color:var(--ink);
}
.news-signal-verdict-foot{
  display:flex;flex-direction:column;align-items:center;gap:0.375rem;
  padding-top:0.625rem;
  border-top:0.0625rem solid rgba(255,255,255,0.06);
}
.news-signal-verdict-foot .news-signal-align-badge{
  font-size:0.625rem;letter-spacing:0.08em;
  padding:0.25rem 0.625rem;
}
.news-signal-verdict-foot .news-signal-align-detail{
  font-size:0.6875rem;text-align:center;color:var(--fog);
}

/* Hide the old horizontal strip remnants if present */
.news-signal-tri-strip{display:none !important}

/* ═══════════════════════════════════════════════════════════════════
   Bull / Bear forces card v2 — 2x2 grid: Near-term + Macro tiers
   ═══════════════════════════════════════════════════════════════════ */

/* Tier label sits between rows to mark real vs AI-derived */
.news-ch-tier-label{
  display:flex;align-items:center;gap:0.5rem;
  margin:1rem 0 0.5rem;
  font-size:0.5625rem;font-weight:700;letter-spacing:0.08em;
  color:var(--fog);text-transform:uppercase;
}
.news-ch-tier-label:first-of-type{margin-top:0}
.news-ch-tier-dot{
  display:inline-block;width:0.5rem;height:0.5rem;border-radius:50%;
  background:var(--green);
}
.news-ch-tier-dot.ai{
  background:#c08ce6;
  box-shadow:0 0 0 0.125rem rgba(175,82,222,0.18);
}
.news-ch-tier-label-ai{
  border-top:0.0625rem dashed rgba(255,255,255,0.05);
  padding-top:0.75rem;
}
.news-ch-ai-badge{
  font-size:0.5rem;font-weight:700;letter-spacing:0.06em;
  background:rgba(175,82,222,0.18);color:#c08ce6;
  padding:0.0625rem 0.3125rem;border-radius:0.1875rem;
  margin-left:auto;
}

/* Macro columns have a subtle purple tint to differentiate from real */
.news-ch-col-ai{
  background:linear-gradient(180deg, rgba(175,82,222,0.02), rgba(0,0,0,0.20));
}
.news-ch-col-ai.news-ch-col-bull{border-left-color:rgba(204,255,0,0.55)}
.news-ch-col-ai.news-ch-col-bear{border-left-color:rgba(225,53,53,0.55)}

/* Make the macro lists taller — they don't need to scroll since only 3 items */
.news-ch-col-ai .news-ch-list{max-height:none;overflow:visible}

/* The card-level footer with AI badge */
.news-ch-footer{
  margin-top:0.75rem;padding-top:0.625rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-size:0.625rem;color:var(--fog);line-height:1.5;
  display:flex;align-items:center;gap:0.375rem;
}
.news-ch-footer code{
  font-size:0.5625rem;background:rgba(255,255,255,0.04);
  padding:0.0625rem 0.3125rem;border-radius:0.1875rem;
  font-family:'JetBrains Mono',ui-monospace,monospace;color:var(--ash);
}

/* ═══════════════════════════════════════════════════════════════════
   News lens v4 — 3 stacked full-width panels (final structure)
   ═══════════════════════════════════════════════════════════════════ */

/* Shared panel shell */
.news-forces-panel,
.news-signal-panel,
.news-ailens-panel{
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.75rem;
  padding:1.25rem;
  margin-bottom:0.875rem;
  display:flex;flex-direction:column;gap:1rem;
}

/* Override Signal panel placement so it's no longer in a 2-col grid */
.news-signal-panel{margin-bottom:0.875rem;width:auto}

/* Override forces-panel positioning out of the grid container */
.news-forces-panel{width:auto}

.news-panel-head{
  display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;
}
.news-panel-title{
  display:flex;align-items:center;gap:0.5rem;
  font-size:0.9375rem;font-weight:600;color:var(--ink);
  margin-bottom:0.3125rem;
}
.news-panel-title svg{width:1rem;height:1rem;color:var(--green)}
.news-panel-sub{
  font-size:0.75rem;color:var(--ash);line-height:1.55;max-width:60rem;
}
.news-panel-sub b{color:var(--ink);font-weight:600}
.news-panel-sub em{color:var(--gold);font-style:italic}
.news-panel-foot{
  margin-top:auto;padding-top:0.625rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  font-size:0.625rem;color:var(--fog);font-style:italic;
}

/* Hide the old container that wrapped everything */
.news-insights-row.news-insights-row-v2{display:contents}

/* ── Forces panel: clear tier separation ──────────────────────────── */
.news-forces-tier{display:flex;flex-direction:column;gap:0.5rem}
.news-forces-tier-label{
  display:flex;align-items:center;gap:0.5rem;
  font-size:0.625rem;font-weight:700;letter-spacing:0.08em;
  color:var(--ash);text-transform:uppercase;
  padding-bottom:0.375rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
}
.news-forces-tier-icon{font-size:0.875rem;line-height:1}
.news-forces-tier-meta{
  color:var(--fog);font-weight:400;font-style:italic;
  text-transform:none;letter-spacing:0;font-size:0.625rem;
}
.news-forces-tier-ai .news-forces-tier-label{
  border-bottom-style:dashed;border-bottom-color:rgba(175,82,222,0.18);
}

/* Make the catalysts/headwinds + tailwinds/crosswinds lists not scroll
   (they're wider now in the full-width panel) and let them grow */
.news-forces-panel .news-ch-list{
  max-height:none;overflow:visible;
}

/* ── Signal panel header layout: text left, legend right ──────────── */
.news-panel-head-signal{
  flex-wrap:wrap;
}
.news-panel-head-signal .news-signal-legend{
  flex-shrink:0;
}

/* ── Chart wrapper — full width, taller ──────────────────────────── */
.news-signal-panel .news-mood-chart-wrap{
  width:100%;padding:1rem 1.125rem 0.625rem;
}
.news-signal-panel .news-mood-chart{height:15.5rem !important}

/* ── 3-column stats strip below the chart ─────────────────────────── */
.news-signal-strip{
  display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:0.625rem;
}
@media (max-width:900px){
  .news-signal-strip{grid-template-columns:1fr}
}
.news-signal-strip-card{
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);
  border-radius:0.5rem;
  padding:0.875rem 1rem;
  display:flex;flex-direction:column;gap:0.625rem;
}
.news-signal-strip-head{
  font-size:0.625rem;font-weight:700;letter-spacing:0.08em;
  color:var(--ash);text-transform:uppercase;
}
.news-signal-strip-rows{display:flex;flex-direction:column;gap:0.4375rem}
.news-signal-strip-foot{
  display:flex;justify-content:space-between;align-items:center;gap:0.5rem;
  padding-top:0.5rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
}

/* News ↔ Price Agreement (was Reflexivity) */
.news-signal-agree-hero{
  display:flex;flex-direction:column;gap:0.25rem;
}
.news-signal-agree-val{
  font-size:2rem;font-weight:300;line-height:1;
  color:var(--ink);font-variant-numeric:tabular-nums;
}
.news-signal-agree-val.high{color:var(--green)}
.news-signal-agree-val.low{color:var(--gold)}
.news-signal-agree-label{
  font-size:0.6875rem;color:var(--ash);line-height:1.4;
}
.news-signal-agree-label b{color:var(--ink);font-weight:600}
.news-signal-agree-explain{
  font-size:0.625rem;color:var(--fog);line-height:1.5;
  padding-top:0.4375rem;border-top:0.0625rem solid rgba(255,255,255,0.04);
}

/* Catalyst card */
.news-signal-catalyst-hero{
  display:flex;flex-direction:column;gap:0.25rem;
}
.news-signal-catalyst-val-big{
  font-size:2rem;font-weight:300;line-height:1;
  color:var(--gold);font-variant-numeric:tabular-nums;
}
.news-signal-catalyst-label{
  font-size:0.6875rem;color:var(--ash);
}
.news-signal-catalyst-explain{
  font-size:0.625rem;color:var(--fog);line-height:1.5;
  padding-top:0.4375rem;border-top:0.0625rem solid rgba(255,255,255,0.04);
  margin-top:auto;
}

/* ── AI Lens panel — 2 columns ────────────────────────────────────── */
.news-ailens-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:0.625rem;
}
@media (max-width:900px){.news-ailens-grid{grid-template-columns:1fr}}
.news-ailens-panel .news-signal-tile{min-height:auto}
.news-signal-velocity-explain{
  font-size:0.6875rem;color:var(--ash);line-height:1.5;
  padding:0.5rem 0.625rem;background:rgba(255,255,255,0.025);
  border-radius:0.375rem;
  margin-bottom:0.25rem;
}
.news-signal-velocity-explain b{color:var(--ink);font-weight:600}

/* Hide old elements no longer used */
.news-signal-top,
.news-signal-tiles-3,
.news-signal-verdict,
.news-signal-tri-strip,
.news-insight-card.news-insight-wide{display:none !important}

/* Re-enable forces-panel's tier columns since news-insight-card was hidden globally */
.news-forces-panel .news-ch-grid{
  display:grid !important;grid-template-columns:1fr 1fr;gap:0.625rem;
}
@media (max-width:700px){
  .news-forces-panel .news-ch-grid{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════════════════════════════
   News lens v5 — visual polish
   ═══════════════════════════════════════════════════════════════════ */

/* ── Mood chart taller (was looking horizontally stretched) ──────── */
.news-signal-panel .news-mood-chart{height:20rem !important}

/* ── Forces panel — cleaner tier separator + softer item cards ───── */
.news-forces-panel{
  background:linear-gradient(180deg, rgba(255,255,255,0.018), rgba(255,255,255,0.010));
}
.news-forces-tier-label{
  position:relative;
  padding:0.4375rem 0 0.4375rem 0.875rem;
  border-bottom:none;
  border-left:0.1875rem solid var(--green);
  background:linear-gradient(90deg, rgba(204,255,0,0.04), transparent);
  border-radius:0 0.375rem 0.375rem 0;
  font-size:0.6875rem;
}
.news-forces-tier-ai .news-forces-tier-label{
  border-left-color:#c08ce6;
  background:linear-gradient(90deg, rgba(175,82,222,0.04), transparent);
  border-bottom-style:none;
}
.news-forces-tier-icon{display:none}  /* drop emoji — cleaner */
.news-forces-tier-meta{
  color:var(--fog);font-weight:400;font-style:normal;
  text-transform:none;letter-spacing:0;font-size:0.625rem;
  margin-left:0.4375rem;
}
.news-forces-tier-label > span:not(.news-forces-tier-meta):not(.news-forces-tier-icon){
  color:var(--ink);font-weight:700;letter-spacing:0.08em;
}
.news-forces-tier-ai .news-forces-tier-label > span:not(.news-forces-tier-meta):not(.news-forces-tier-icon):not(.news-ch-ai-badge){
  color:#c08ce6;
}

/* Tier 2 needs visible separation from Tier 1 */
.news-forces-tier-ai{
  margin-top:0.875rem;padding-top:0.875rem;
  border-top:0.0625rem solid rgba(255,255,255,0.05);
}

/* Polish the catalyst/headwind items */
.news-forces-panel .news-ch-col{
  background:rgba(0,0,0,0.18);
  border:0.0625rem solid rgba(255,255,255,0.04);
  border-left-width:0.1875rem;
}
.news-forces-panel .news-ch-col-bull{border-left-color:#9ce600}
.news-forces-panel .news-ch-col-bear{border-left-color:#ff6b6b}
.news-forces-panel .news-ch-col-ai{
  background:linear-gradient(180deg, rgba(175,82,222,0.025), rgba(0,0,0,0.18));
}
.news-forces-panel .news-ch-col-head{
  font-size:0.625rem;letter-spacing:0.06em;
}
.news-forces-panel .news-ch-item{
  background:rgba(255,255,255,0.018);
  border:0.0625rem solid rgba(255,255,255,0.04);
  transition:background 0.15s, border-color 0.15s, transform 0.15s;
}
.news-forces-panel .news-ch-item:hover{
  background:rgba(255,255,255,0.04);
  border-color:rgba(255,255,255,0.10);
  transform:translateX(0.125rem);
}
.news-forces-panel .news-ch-item-title{font-size:0.75rem;line-height:1.45}
.news-forces-panel .news-ch-item-meta{font-size:0.5625rem;margin-top:0.1875rem}
.news-forces-panel .news-ch-impact{
  font-size:0.5rem;letter-spacing:0.06em;
  padding:0.0625rem 0.3125rem;border-radius:0.1875rem;
  background:rgba(255,255,255,0.05);
}
.news-forces-panel .news-ch-impact.high{
  background:rgba(204,255,0,0.10);color:var(--green);
}
.news-forces-panel .news-ch-impact.bear-high{
  background:rgba(225,53,53,0.10);color:#ff6b6b;
}

/* ── Source Verdict — clearer scale explanation ──────────────────── */
.news-signal-strip-explain{
  font-size:0.5625rem;color:var(--fog);line-height:1.4;
  margin-top:-0.25rem;
}
.news-signal-strip-explain b{
  color:var(--ash);font-weight:700;font-variant-numeric:tabular-nums;
}

/* Subtle scale ticks above the bars */
.news-signal-strip-rows{position:relative}
.news-signal-strip-rows::before{
  content:'';position:absolute;
  /* The bar column is the middle 1fr of the 5rem|1fr|2.5rem grid. */
  left:5.5rem;right:3rem;
  top:-0.25rem;height:0.1875rem;
  background:linear-gradient(90deg,
    rgba(225,53,53,0.0) 0%,
    rgba(225,53,53,0.20) 30%,
    rgba(255,255,255,0.10) 50%,
    rgba(204,255,0,0.20) 70%,
    rgba(204,255,0,0.0) 100%);
  border-radius:0.0625rem;
  pointer-events:none;
}

/* ── AI Lens polish ──────────────────────────────────────────────── */
.news-ailens-panel{
  background:linear-gradient(135deg, rgba(175,82,222,0.025), rgba(255,255,255,0.012));
  border-color:rgba(175,82,222,0.10);
}
.news-ailens-panel .news-panel-title svg{color:#c08ce6}
.news-ailens-grid{gap:0.875rem}

/* Silent Risks: each item like a "discovered" card with severity rail */
.news-ailens-panel .news-signal-tile{
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(175,82,222,0.12);
}
.news-ailens-panel .news-signal-tile-head{
  font-size:0.75rem;color:var(--ink);
  display:flex;align-items:center;gap:0.5rem;
}
.news-ailens-panel .news-signal-tile-head::before{
  content:'';width:0.375rem;height:0.375rem;border-radius:50%;
  background:#c08ce6;flex-shrink:0;
  box-shadow:0 0 0 0.1875rem rgba(175,82,222,0.18);
}
.news-signal-silent-headline{
  font-size:0.6875rem;color:var(--ash);line-height:1.5;
  padding:0.4375rem 0.625rem;
  background:rgba(175,82,222,0.04);border-radius:0.375rem;
  border-left:0.125rem solid rgba(175,82,222,0.40);
  margin-bottom:0.5rem;
}
.news-signal-silent-headline b{color:#c08ce6;font-weight:700}
.news-signal-silent-item{
  font-size:0.6875rem;line-height:1.55;color:var(--ash);
  padding:0.5rem 0.625rem;
  background:rgba(255,255,255,0.02);border-radius:0.375rem;
  border-left:0.1875rem solid rgba(175,82,222,0.55);
  margin-bottom:0.375rem;
  transition:background 0.15s;
}
.news-signal-silent-item:last-child{margin-bottom:0}
.news-signal-silent-item:hover{background:rgba(255,255,255,0.04)}
.news-signal-silent-tag{
  display:inline-block;font-size:0.5rem;font-weight:700;letter-spacing:0.06em;
  color:#c08ce6;background:rgba(175,82,222,0.15);
  padding:0.125rem 0.375rem;border-radius:0.1875rem;
  margin-right:0.4375rem;text-transform:uppercase;
  vertical-align:middle;
}

/* Narrative Velocity: tighter row spacing, better arrows */
.news-signal-velocity-explain{
  font-size:0.6875rem;color:var(--ash);line-height:1.5;
  padding:0.4375rem 0.625rem;
  background:rgba(175,82,222,0.04);border-radius:0.375rem;
  border-left:0.125rem solid rgba(175,82,222,0.40);
  margin-bottom:0.375rem;
}
.news-signal-velocity-explain b{color:#c08ce6;font-weight:700}
.news-signal-vel-row{
  background:rgba(255,255,255,0.02);
  padding:0.4375rem 0.625rem;
  border-left:0.1875rem solid transparent;
  transition:all 0.15s;
}
.news-signal-vel-row:hover{
  background:rgba(255,255,255,0.04);
  border-left-color:rgba(175,82,222,0.45);
}
.news-signal-vel-name{
  font-size:0.75rem;color:var(--ink);font-weight:600;
}
.news-signal-vel-arrow{
  font-size:0.5625rem;font-weight:700;letter-spacing:0.04em;
  padding:0.125rem 0.4375rem;border-radius:0.1875rem;
  white-space:nowrap;
}
.news-signal-vel-count{
  font-size:0.5625rem;color:var(--fog);
  font-variant-numeric:tabular-nums;white-space:nowrap;
}

/* AI badge color refinement */
.news-ch-ai-badge{
  background:rgba(175,82,222,0.20);color:#d6a9ff;
  font-size:0.5rem;font-weight:700;letter-spacing:0.08em;
}

/* ═══════════════════════════════════════════════════════════════════
   Moat lens — Batch 1: Moat Dimensions radar + Porter's Five Forces
   ═══════════════════════════════════════════════════════════════════ */

/* Section shells */
.moat-dim-section,
.moat-porter-section{
  margin:1.5rem 0;padding:1.25rem;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.75rem;
}
.moat-porter-section{
  background:linear-gradient(135deg, rgba(175,82,222,0.03), rgba(255,255,255,0.010));
  border-color:rgba(175,82,222,0.10);
}

.moat-dim-head{margin-bottom:1.25rem;position:relative}
/* Reserve room for the corner chip only on headers that actually have one */
.moat-dim-head:has(.moat-head-stat){padding-right:9rem}

/* Colour-coded stat chip in the section header's top-right corner */
.moat-head-stat{
  position:absolute;top:-0.125rem;right:0;
  display:inline-flex;align-items:baseline;gap:0.4375rem;
  padding:0.375rem 0.6875rem;border-radius:0.5rem;
  background:color-mix(in srgb, var(--stat, var(--green)) 12%, transparent);
  border:0.0625rem solid color-mix(in srgb, var(--stat, var(--green)) 34%, transparent);
}
.moat-head-stat-label{
  font-size:0.5625rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--fog);
}
.moat-head-stat-num{
  font-size:1.1875rem;font-weight:700;line-height:1;
  color:var(--stat, var(--green));font-variant-numeric:tabular-nums;
}
.moat-head-stat-word{
  font-size:0.625rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;
  color:var(--stat, var(--green));
}
.moat-dim-title{
  display:flex;align-items:center;gap:0.75rem;
  font-family:var(--fd);font-size:1.5rem;font-weight:800;letter-spacing:-0.015em;color:var(--snow);
  margin-bottom:0.4rem;line-height:1.1;
}
/* icon → a colour-coded rounded chip, one accent per section, so each header reads distinctly */
.moat-dim-title svg{width:1.05rem;height:1.05rem;padding:0.5rem;box-sizing:content-box;border-radius:0.7rem;flex:0 0 auto;
  color:var(--green);background:linear-gradient(135deg,rgba(204,255,0,0.22),rgba(204,255,0,0.05));
  box-shadow:inset 0 0 0 0.0625rem rgba(204,255,0,0.28)}
.moat-porter-section .moat-dim-title svg{color:#c08ce6;background:linear-gradient(135deg,rgba(192,140,230,0.22),rgba(192,140,230,0.05));box-shadow:inset 0 0 0 0.0625rem rgba(192,140,230,0.3)}
.moat-bmc-section .moat-dim-title svg{color:#7cb8ff;background:linear-gradient(135deg,rgba(124,184,255,0.22),rgba(124,184,255,0.05));box-shadow:inset 0 0 0 0.0625rem rgba(124,184,255,0.3)}
.moat-comp-section .moat-dim-title svg{color:#ff9e64;background:linear-gradient(135deg,rgba(255,158,100,0.22),rgba(255,158,100,0.05));box-shadow:inset 0 0 0 0.0625rem rgba(255,158,100,0.3)}
.moat-news-section .moat-dim-title svg,.moat-creators-section .moat-dim-title svg,.moat-debate-section .moat-dim-title svg{color:#9ce6ff;background:linear-gradient(135deg,rgba(156,230,255,0.2),rgba(156,230,255,0.05));box-shadow:inset 0 0 0 0.0625rem rgba(156,230,255,0.28)}
.moat-dim-sub{font-size:0.8rem;color:var(--fog);line-height:1.55;margin-left:0.15rem}

.moat-ai-stub-badge{
  font-size:0.5rem;font-weight:700;letter-spacing:0.08em;
  background:rgba(175,82,222,0.18);color:#c08ce6;
  padding:0.1875rem 0.4375rem;border-radius:0.1875rem;
  margin-left:auto;
}

/* Two-column layout: radar on left, cards stack on right */
.moat-dim-grid{
  display:grid;grid-template-columns:minmax(20rem, 1fr) minmax(0, 1.4fr);
  gap:1.25rem;align-items:stretch;
}
@media (max-width:900px){.moat-dim-grid{grid-template-columns:1fr}}

/* Radar chart wrapper — square aspect, score in center */
.moat-dim-radar-wrap{
  position:relative;
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);
  border-radius:0.5rem;
  padding:1rem;
  display:flex;align-items:center;justify-content:center;
}
.moat-dim-radar{
  width:100%;max-width:26rem;height:auto;display:block;
}
.moat-dim-radar .radar-grid{
  stroke:rgba(255,255,255,0.13);stroke-width:0.85;fill:transparent;
}
.moat-dim-radar .radar-axis{stroke:rgba(255,255,255,0.07);stroke-width:0.75}
.moat-dim-radar .radar-area{
  fill:url(#radar-grad-bull);stroke:var(--green);stroke-width:2.25;
  stroke-linejoin:round;fill-opacity:0.9;
  filter:drop-shadow(0 0 5px rgba(204,255,0,0.35));
}
.moat-dim-radar .radar-area.porter{
  fill:url(#radar-grad-purple);stroke:#c896f0;
  filter:drop-shadow(0 0 5px rgba(192,140,230,0.40));
}
.moat-dim-radar .radar-dot{
  fill:var(--bg);stroke:var(--green);stroke-width:2.25;
}
.moat-dim-radar .radar-dot.porter{stroke:#c896f0}
.moat-dim-radar .radar-label{
  fill:var(--ash);font-size:9px;font-weight:600;
  font-family:inherit;text-anchor:middle;
}
.moat-dim-radar .radar-score-label{
  fill:var(--green);font-size:8px;font-weight:700;
  font-family:inherit;text-anchor:middle;font-variant-numeric:tabular-nums;
}
.moat-dim-radar .radar-score-label.porter{fill:#c896f0}

.moat-dim-radar-score{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  text-align:center;pointer-events:none;
}
.moat-dim-radar-score-num{
  font-size:1.875rem;font-weight:300;line-height:1;
  color:var(--ink);font-variant-numeric:tabular-nums;
}
.moat-dim-radar-score-label{
  font-size:0.5625rem;color:var(--fog);
  text-transform:uppercase;letter-spacing:0.06em;margin-top:0.1875rem;
}
.moat-dim-radar-center{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-size:0.625rem;font-weight:700;color:#c08ce6;letter-spacing:0.08em;
  pointer-events:none;
}

/* Per-dimension cards (right column) */
.moat-dim-cards,
.moat-porter-cards{
  display:grid;grid-template-columns:1fr 1fr;gap:0.6rem;align-items:start;
}
@media(max-width:640px){.moat-dim-cards,.moat-porter-cards{grid-template-columns:1fr}}
.moat-dim-card{
  display:grid;grid-template-columns:2.5rem 1fr;gap:0.75rem;
  padding:0.75rem 0.875rem;
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);
  border-left:0.1875rem solid var(--dim-color, var(--green));
  border-radius:0.5rem;
  transition:all 0.15s;
}
.moat-dim-card:hover{
  background:rgba(255,255,255,0.025);
  transform:translateX(0.125rem);
}
.moat-dim-card-icon{
  width:2.5rem;height:2.5rem;border-radius:0.5rem;
  background:color-mix(in srgb, var(--dim-color, var(--green)) 12%, transparent);
  color:var(--dim-color, var(--green));
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;align-self:start;
}
.moat-dim-card-icon svg{width:1.25rem;height:1.25rem}
.moat-dim-card-body{min-width:0;display:flex;flex-direction:column;gap:0.3125rem}
.moat-dim-card-head{
  display:flex;justify-content:space-between;align-items:baseline;
}
.moat-dim-card-name{
  font-size:0.8125rem;font-weight:600;color:var(--ink);
}
.moat-dim-card-score{
  font-size:1rem;font-weight:300;color:var(--ink);
  font-variant-numeric:tabular-nums;line-height:1;
}
.moat-dim-card-score small{
  font-size:0.625rem;color:var(--fog);font-weight:400;
}
.moat-dim-card-bar{
  height:0.25rem;background:rgba(255,255,255,0.04);border-radius:0.125rem;
  overflow:hidden;
}
.moat-dim-card-bar-fill{
  height:100%;background:var(--dim-color, var(--green));
  border-radius:0.125rem;transition:width 0.4s;
}
.moat-dim-card-text{
  font-size:0.6875rem;color:var(--ash);line-height:1.5;
}

/* Porter cards (similar to dim cards but purple-themed) */
.moat-porter-card{
  display:grid;grid-template-columns:2.5rem 1fr;gap:0.75rem;
  padding:0.75rem 0.875rem;
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);
  border-left:0.1875rem solid #c08ce6;
  border-radius:0.5rem;
  transition:all 0.15s;
}
.moat-porter-card:hover{
  background:rgba(175,82,222,0.04);
  transform:translateX(0.125rem);
}
.moat-porter-icon{
  width:2.5rem;height:2.5rem;border-radius:0.5rem;
  background:rgba(175,82,222,0.12);color:#c08ce6;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;align-self:start;
}
.moat-porter-icon svg{width:1.25rem;height:1.25rem}
.moat-porter-body{min-width:0;display:flex;flex-direction:column;gap:0.3125rem}
.moat-porter-head{
  display:flex;align-items:center;gap:0.5rem;
}
/* name expands so the threat badge + toggle always sit flush-right, aligned
   across every Porter card regardless of name length */
.moat-porter-name{font-size:0.8125rem;font-weight:600;color:var(--ink);flex:1;min-width:0}
.moat-porter-threat{margin-left:auto}
.moat-porter-threat{
  font-size:0.5625rem;font-weight:700;letter-spacing:0.06em;
  padding:0.1875rem 0.4375rem;border-radius:0.25rem;
}
.moat-porter-threat.low{background:rgba(204,255,0,0.10);color:var(--green);border:0.0625rem solid rgba(204,255,0,0.22)}
.moat-porter-threat.medium{background:rgba(245,166,35,0.10);color:var(--gold);border:0.0625rem solid rgba(245,166,35,0.22)}
.moat-porter-threat.high{background:rgba(225,53,53,0.10);color:#ff6b6b;border:0.0625rem solid rgba(225,53,53,0.22)}
.moat-porter-text{font-size:0.6875rem;color:var(--ash);line-height:1.5}

/* ═══════════════════════════════════════════════════════════════════
   Single-dimension viewer — show ONE moat dimension / Porter force at a
   time, with intuitive nav (segmented pills · prev/next · radar vertices).
   ═══════════════════════════════════════════════════════════════════ */
/* Vertical stack: full-width ridge on top, the focused card below. Replaces
   the old side-by-side radar grid so we use the panel's width, not its height. */
.moat-dim-stack{display:flex;flex-direction:column;gap:1rem;min-width:0}

/* The horizontal strength/pressure ridge */
.moat-rail-wrap{
  background:rgba(255,255,255,0.035);
  border:0.0625rem solid rgba(255,255,255,0.09);
  border-radius:0.75rem;
  padding:0.5rem 0.875rem 0.375rem;
}
.moat-porter-section .moat-rail-wrap{
  background:linear-gradient(135deg, rgba(175,82,222,0.08), rgba(255,255,255,0.035));
  border-color:rgba(175,82,222,0.16);
}
.moat-rail{width:100%;height:auto;display:block}
.moat-rail .rail-band{stroke:rgba(255,255,255,0.05);stroke-width:1}
.moat-rail .rail-grid{stroke:rgba(255,255,255,0.05);stroke-width:1}
.moat-rail .rail-line{
  stroke-width:3.25;stroke-linecap:round;stroke-linejoin:round;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,0.45));
}
/* Every node is a click target — make that obvious */
.moat-rail .rail-node{cursor:pointer}
.moat-rail .rail-hit{transition:fill 0.15s}
.moat-rail .rail-node:hover .rail-hit{fill:rgba(255,255,255,0.04)}
.moat-rail .rail-dot{
  fill:var(--bg,#0b0e13);stroke:var(--node,var(--green));stroke-width:3;
  transition:r 0.15s, fill 0.15s, stroke 0.15s;
}
.moat-rail .rail-node:hover .rail-dot{r:9.5}
.moat-rail .rail-val{
  fill:var(--node,var(--green));font-size:12.5px;font-weight:700;font-family:inherit;
  letter-spacing:0.02em;pointer-events:none;text-transform:uppercase;
}
.moat-rail .rail-node:hover .rail-val{filter:brightness(1.15)}
.moat-rail .rail-name{
  fill:var(--ash);font-size:16px;font-weight:600;font-family:inherit;
  pointer-events:none;
}
/* Selected node = classic brand green ("you are here"), bigger + glowing */
.moat-rail .rail-node.is-active .rail-dot{
  r:10.5;fill:var(--green);stroke:var(--green);
  filter:drop-shadow(0 0 8px var(--green));
}
.moat-rail .rail-node.is-active .rail-val{fill:var(--green);filter:brightness(1.05)}
.moat-rail .rail-node.is-active .rail-name{fill:var(--ink);font-weight:700}
/* score-axis key (0/25/50/75/100) down the left edge */
.moat-rail .rail-axis{fill:rgba(255,255,255,0.32);font-size:11px;font-weight:600;font-family:inherit;pointer-events:none}
/* individual numeric score — hidden until hover / active, so the composite reads as derived */
.moat-rail .rail-score{opacity:0;fill:var(--node,var(--ink));font-size:15px;font-weight:800;font-family:inherit;pointer-events:none;transition:opacity 0.15s}
.moat-rail .rail-node:hover .rail-score,
.moat-rail .rail-node.is-active .rail-score{opacity:1}
/* section logo above each name — keeps its own section colour (set inline); active/hover lights it up.
   NB: no transform here — scaling a nested <svg> shifts it onto the name label. */
.moat-rail .rail-ico{color:var(--node,var(--ash));opacity:0.8;pointer-events:none;transition:opacity 0.15s,filter 0.15s}
.moat-rail .rail-node:hover .rail-ico{opacity:1}
.moat-rail .rail-node.is-active .rail-ico{opacity:1;filter:drop-shadow(0 0 5px currentColor)}

.moat-dim-viewer{display:flex;flex-direction:column;gap:0.75rem;min-width:0}

/* Stage: cards stack on top of each other; only .active is shown, full-width */
.moat-dim-cards,.moat-porter-cards{display:block;gap:0}
.moat-dim-cards>.moat-dim-card,
.moat-porter-cards>.moat-porter-card{display:none}
.moat-dim-cards>.moat-dim-card.active,
.moat-porter-cards>.moat-porter-card.active{
  display:grid;animation:moat-card-in 0.22s ease-out;
}
.moat-dim-card.active:hover,
.moat-porter-card.active:hover{transform:none}
@keyframes moat-card-in{
  from{opacity:0;transform:translateY(0.3rem)}
  to{opacity:1;transform:none}
}

/* Radar vertices double as nav — highlight the active one */
.moat-dim-radar .radar-hit{cursor:pointer}
.moat-dim-radar .radar-dot.is-active{
  stroke-width:4.5;filter:drop-shadow(0 0 4px currentColor);
}
.moat-dim-radar .radar-label.is-active{fill:var(--ink)}
.moat-dim-radar .radar-score-label.is-active{filter:brightness(1.35)}

/* ─── The active card is now the hero of the section — give it presence ─── */
.moat-dim-cards>.moat-dim-card.active,
.moat-porter-cards>.moat-porter-card.active{
  grid-template-columns:3.25rem 1fr;
  gap:1rem;
  padding:1.25rem 1.375rem;
  border-left-width:0.25rem;
  border-radius:0.75rem;
}
.moat-dim-cards>.moat-dim-card.active{
  background:
    radial-gradient(120% 120% at 0% 0%,
      color-mix(in srgb, var(--dim-color, var(--green)) 11%, transparent), transparent 60%),
    linear-gradient(160deg, rgba(255,255,255,0.025), rgba(0,0,0,0.22));
  box-shadow:
    0 0 0 0.0625rem color-mix(in srgb, var(--dim-color, var(--green)) 16%, transparent),
    0 0.875rem 2.25rem rgba(0,0,0,0.32);
}
.moat-porter-cards>.moat-porter-card.active{
  background:
    radial-gradient(120% 120% at 0% 0%, rgba(175,82,222,0.13), transparent 60%),
    linear-gradient(160deg, rgba(255,255,255,0.02), rgba(0,0,0,0.22));
  box-shadow:
    0 0 0 0.0625rem rgba(192,140,230,0.18),
    0 0.875rem 2.25rem rgba(0,0,0,0.32);
}

/* Bigger, gradient icon tile */
.moat-dim-card.active .moat-dim-card-icon,
.moat-porter-card.active .moat-porter-icon{
  width:3.25rem;height:3.25rem;border-radius:0.875rem;align-self:start;
}
.moat-dim-card.active .moat-dim-card-icon{
  background:linear-gradient(135deg,
    color-mix(in srgb, var(--dim-color, var(--green)) 30%, transparent),
    color-mix(in srgb, var(--dim-color, var(--green)) 7%, transparent));
  box-shadow:inset 0 0 0 0.0625rem color-mix(in srgb, var(--dim-color, var(--green)) 34%, transparent);
}
.moat-porter-card.active .moat-porter-icon{
  background:linear-gradient(135deg, rgba(175,82,222,0.30), rgba(175,82,222,0.07));
  box-shadow:inset 0 0 0 0.0625rem rgba(192,140,230,0.40);
}
.moat-dim-card.active .moat-dim-card-icon svg,
.moat-porter-card.active .moat-porter-icon svg{width:1.625rem;height:1.625rem}

/* Larger headline, score, summary on the hero card */
.moat-dim-card.active .moat-dim-card-body,
.moat-porter-card.active .moat-porter-body{gap:0.5rem}
.moat-dim-card.active .moat-dim-card-name,
.moat-porter-card.active .moat-porter-name{font-size:1.0625rem;font-weight:650}
.moat-dim-card.active .moat-dim-card-score{font-size:1.875rem;font-weight:300}
.moat-dim-card.active .moat-dim-card-bar{height:0.4375rem;border-radius:0.25rem}
.moat-dim-card.active .moat-dim-card-bar-fill{
  box-shadow:0 0 0.625rem color-mix(in srgb, var(--dim-color, var(--green)) 65%, transparent);
}
.moat-porter-card.active .moat-porter-threat{
  font-size:0.6875rem;padding:0.25rem 0.6875rem;border-radius:0.375rem;
}
.moat-dim-card.active .moat-dim-card-text,
.moat-porter-card.active .moat-porter-text{font-size:0.8125rem;line-height:1.6}

/* The auto-expanded deep-dive: tint it with the dimension's own colour */
.moat-dim-card.active .moat-dim-card-expand{
  margin-top:0.75rem;
  border-color:color-mix(in srgb, var(--dim-color, var(--green)) 22%, transparent);
  background:linear-gradient(135deg,
    color-mix(in srgb, var(--dim-color, var(--green)) 6%, transparent),
    rgba(0,0,0,0.22));
}
.moat-dim-card.active .moat-card-ai-icon{
  background:color-mix(in srgb, var(--dim-color, var(--green)) 22%, transparent);
  color:var(--dim-color, var(--green));
}

/* Batch-progress placeholder card (temporary, replaced by Batches 2-3) */
.moat-batch-placeholder{
  margin:1.5rem 0;padding:1rem 1.25rem;
  background:rgba(124,184,255,0.04);
  border:0.0625rem dashed rgba(124,184,255,0.20);
  border-radius:0.625rem;
  font-size:0.75rem;color:var(--ash);line-height:1.55;
}
.moat-batch-placeholder-head{
  display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;
  font-weight:600;color:var(--ink);margin-bottom:0.3125rem;
}
.moat-batch-tag{
  font-size:0.5rem;font-weight:700;letter-spacing:0.08em;
  background:rgba(124,184,255,0.18);color:#7cb8ff;
  padding:0.1875rem 0.4375rem;border-radius:0.1875rem;
}
.moat-batch-placeholder-body{color:var(--fog);font-size:0.6875rem}

/* ═══════════════════════════════════════════════════════════════════
   Moat lens — Batch 2: Moat News, Creator Opinions, Bull vs Bear Debate
   ═══════════════════════════════════════════════════════════════════ */

/* Shared section shell (uses same look as Batch 1 sections) */
.moat-news-section,
.moat-creators-section,
.moat-debate-section{
  margin:1.5rem 0;padding:1.25rem;
  background:rgba(255,255,255,0.015);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.75rem;
}

/* ── Moat news: 2-col grid (strengthening | threats) ───────────────── */
.moat-news-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:0.875rem;
}
@media (max-width:900px){.moat-news-grid{grid-template-columns:1fr}}

.moat-news-col{
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);
  border-radius:0.5rem;padding:0.875rem;
  display:flex;flex-direction:column;gap:0.625rem;
}
.moat-news-col-strengthen{border-left:0.1875rem solid #9ce600}
.moat-news-col-threaten{border-left:0.1875rem solid #ff6b6b}

.moat-news-col-head{
  display:flex;align-items:center;gap:0.4375rem;
  font-size:0.625rem;font-weight:700;letter-spacing:0.08em;
  color:var(--ash);text-transform:uppercase;
  padding-bottom:0.5rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
}
.moat-news-col-head small{
  color:var(--fog);font-weight:400;text-transform:none;letter-spacing:0;
  font-size:0.5625rem;font-style:italic;
}
.moat-news-count{
  color:var(--ink);font-weight:700;
  font-variant-numeric:tabular-nums;
  margin-left:auto;font-size:0.75rem;
}
.moat-news-dot{
  display:inline-block;width:0.5rem;height:0.5rem;border-radius:50%;
}
.moat-news-dot.strengthen{background:#9ce600;box-shadow:0 0 0 0.125rem rgba(204,255,0,0.15)}
.moat-news-dot.threaten{background:#ff6b6b;box-shadow:0 0 0 0.125rem rgba(225,53,53,0.15)}

.moat-news-list{
  display:flex;flex-direction:column;gap:0.4375rem;
  max-height:18rem;overflow-y:auto;padding-right:0.25rem;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.10) transparent;
}
.moat-news-list::-webkit-scrollbar{width:0.25rem}
.moat-news-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.10);border-radius:0.125rem}

.moat-news-item{
  display:flex;flex-direction:column;gap:0.25rem;
  padding:0.5rem 0.625rem;
  background:rgba(255,255,255,0.02);
  border:0.0625rem solid rgba(255,255,255,0.04);
  border-radius:0.375rem;
  text-decoration:none;color:inherit;
  transition:all 0.15s;
}
.moat-news-item:hover{
  background:rgba(255,255,255,0.04);
  border-color:rgba(255,255,255,0.10);
  transform:translateX(0.0625rem);
}
.moat-news-item-title{
  font-size:0.75rem;font-weight:600;color:var(--ink);line-height:1.45;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;
}
.moat-news-item-meta{
  display:flex;justify-content:space-between;align-items:center;
  font-size:0.5625rem;color:var(--fog);
}
.moat-news-item-meta b{color:var(--ash);font-weight:600}

/* ── What creators say (single scrollable strip, full width) ──────── */
.moat-creators-count{
  font-size:0.625rem;color:var(--fog);font-weight:400;
  margin-left:auto;
}
.moat-creators-count b{color:var(--ash);font-weight:700}

.moat-creators-scroller{
  display:flex;gap:0.625rem;
  overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding-bottom:0.5rem;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.10) transparent;
}
.moat-creators-scroller::-webkit-scrollbar{height:0.375rem}
.moat-creators-scroller::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.10);border-radius:0.1875rem}

.moat-creator-card{
  flex:0 0 18rem;scroll-snap-align:start;
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);
  border-radius:0.5rem;padding:0.75rem 0.875rem;
  display:flex;flex-direction:column;gap:0.4375rem;
  transition:all 0.15s;
}
.moat-creator-card.bull{border-top:0.1875rem solid #9ce600}
.moat-creator-card.bear{border-top:0.1875rem solid #ff6b6b}
.moat-creator-card.neutral{border-top:0.1875rem solid var(--gold)}
.moat-creator-card:hover{background:rgba(255,255,255,0.025);transform:translateY(-0.0625rem)}

.moat-creator-head{
  display:flex;align-items:center;gap:0.5rem;
}
.moat-creator-avatar{
  width:1.75rem;height:1.75rem;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:0.625rem;font-weight:700;color:var(--ink);
  background:rgba(255,255,255,0.06);flex-shrink:0;overflow:hidden;
}
.moat-creator-avatar img{width:100%;height:100%;object-fit:cover}
.moat-creator-meta{display:flex;flex-direction:column;line-height:1.2;min-width:0;flex:1}
.moat-creator-meta b{
  font-size:0.75rem;color:var(--ink);font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.moat-creator-meta small{font-size:0.5625rem;color:var(--fog)}
.moat-creator-stance{
  font-size:0.5625rem;font-weight:700;letter-spacing:0.04em;
  padding:0.125rem 0.375rem;border-radius:0.1875rem;
  margin-left:auto;flex-shrink:0;
}
.moat-creator-stance.bull{background:rgba(204,255,0,0.10);color:var(--green)}
.moat-creator-stance.bear{background:rgba(225,53,53,0.10);color:#ff6b6b}
.moat-creator-stance.neutral{background:rgba(245,166,35,0.10);color:var(--gold)}

.moat-creator-quote{
  font-size:0.75rem;color:var(--ash);font-style:italic;line-height:1.5;
  display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;
  overflow:hidden;
}

/* ── Bull vs Bear debate (2-col scrollable) ───────────────────────── */
.moat-debate-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:0.875rem;
}
@media (max-width:900px){.moat-debate-grid{grid-template-columns:1fr}}

.moat-debate-col{
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);
  border-radius:0.5rem;padding:0.875rem;
  display:flex;flex-direction:column;gap:0.625rem;
}
.moat-debate-col-bull{border-left:0.1875rem solid #9ce600}
.moat-debate-col-bear{border-left:0.1875rem solid #ff6b6b}
.moat-debate-col-head{
  display:flex;align-items:center;gap:0.4375rem;
  font-size:0.625rem;font-weight:700;letter-spacing:0.08em;
  color:var(--ash);text-transform:uppercase;
  padding-bottom:0.5rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
}
.moat-debate-col-head small{
  color:var(--fog);font-weight:400;text-transform:none;letter-spacing:0;
  font-size:0.5625rem;font-style:italic;
}

.moat-debate-list{
  display:flex;flex-direction:column;gap:0.375rem;
  max-height:22rem;overflow-y:auto;padding-right:0.25rem;
  scrollbar-width:thin;scrollbar-color:rgba(255,255,255,0.10) transparent;
}
.moat-debate-list::-webkit-scrollbar{width:0.25rem}
.moat-debate-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.10);border-radius:0.125rem}

.moat-debate-item{
  display:flex;flex-direction:column;gap:0.25rem;
  padding:0.5rem 0.625rem;
  background:rgba(255,255,255,0.02);
  border:0.0625rem solid rgba(255,255,255,0.04);
  border-radius:0.375rem;
}
.moat-debate-item-head{
  display:flex;align-items:center;gap:0.4375rem;
}
.moat-debate-item-avatar{
  width:1.25rem;height:1.25rem;border-radius:50%;
  background:rgba(255,255,255,0.06);
  display:flex;align-items:center;justify-content:center;
  font-size:0.5625rem;font-weight:700;color:var(--ink);
  flex-shrink:0;overflow:hidden;
}
.moat-debate-item-avatar img{width:100%;height:100%;object-fit:cover}
.moat-debate-item-name{
  font-size:0.6875rem;font-weight:600;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0;
}
.moat-debate-item-date{
  font-size:0.5625rem;color:var(--fog);white-space:nowrap;
}
.moat-debate-item-quote{
  font-size:0.6875rem;color:var(--ash);line-height:1.5;font-style:italic;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;
  overflow:hidden;
}

/* ═══════════════════════════════════════════════════════════════════
   Moat lens — Batch 3: Business Model Canvas + Competitor Benchmarking
   ═══════════════════════════════════════════════════════════════════ */

.moat-bmc-section,
.moat-comp-section{
  margin:1.5rem 0;padding:1.25rem;
  background:linear-gradient(180deg,rgba(255,255,255,0.055) 0%,rgba(255,255,255,0.025) 100%);
  border:0.0625rem solid rgba(255,255,255,0.1);
  border-radius:0.75rem;
}

/* ── Business Model Canvas: 2x2 grid ──────────────────────────────── */
.moat-bmc-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:0.875rem;
}
@media (max-width:900px){.moat-bmc-grid{grid-template-columns:1fr}}

.moat-bmc-cell{
  background:linear-gradient(180deg,rgba(255,255,255,0.045) 0%,rgba(255,255,255,0.02) 100%);
  border:0.0625rem solid rgba(255,255,255,0.08);
  border-radius:0.5rem;
  transition:border-color 0.15s, background 0.15s, transform 0.15s, box-shadow 0.15s;
  align-self:start;overflow:hidden;
}
.moat-bmc-cell:hover{border-color:rgba(204,255,0,0.30);background:linear-gradient(180deg,rgba(204,255,0,0.07) 0%,rgba(255,255,255,0.03) 100%)}
.moat-bmc-cell:not(.expanded):hover{transform:translateY(-0.0625rem);box-shadow:0 0.25rem 0.75rem rgba(0,0,0,0.25)}
.moat-bmc-cell.expanded{
  grid-column:1 / -1;                       /* expanded card takes the full row; others reflow below */
  background:linear-gradient(180deg,rgba(204,255,0,0.06) 0%,rgba(255,255,255,0.025) 100%);
  border-color:rgba(204,255,0,0.28);
}
/* the compact, clickable summary (icon · title · lead · body · tags) */
.moat-bmc-cell-toggle{
  display:flex;flex-direction:column;gap:0.5rem;width:100%;
  padding:1rem 1.125rem;background:none;border:0;text-align:left;cursor:pointer;color:inherit;font:inherit;
}
.moat-bmc-cell-caret{margin-left:auto;color:var(--ash);font-size:0.7rem;transition:color 0.15s, transform 0.15s}
.moat-bmc-cell:hover .moat-bmc-cell-caret{color:var(--green)}
.moat-bmc-cell.expanded .moat-bmc-cell-caret{color:var(--green)}
.moat-bmc-cell-lead{
  font-size:0.8125rem;font-weight:650;color:var(--ink);line-height:1.4;letter-spacing:-0.01em;
}
.moat-bmc-cell-body{
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;   /* compact when collapsed */
}
.moat-bmc-cell.expanded .moat-bmc-cell-body{-webkit-line-clamp:unset;overflow:visible}
/* the drill-down detail, revealed on expand */
.moat-bmc-cell-detail{
  padding:0 1.125rem 1.125rem;
  border-top:0.0625rem solid rgba(255,255,255,0.07);margin-top:0.25rem;
}
.moat-bmc-cell-detail.hidden{display:none}
/* make the drill-down affordance unmistakable — a pill that brightens on hover */
.moat-bmc-cell-foot [data-bmc-cta]{
  margin-left:auto;display:inline-flex;align-items:center;gap:0.25rem;
  font-size:0.625rem;font-weight:700;letter-spacing:0.02em;
  padding:0.25rem 0.5rem;border-radius:0.3125rem;
  background:rgba(204,255,0,0.10);color:var(--green);
  border:0.0625rem solid rgba(204,255,0,0.28);transition:all 0.15s;
}
.moat-bmc-cell:hover [data-bmc-cta]{background:var(--green);color:#0a0a0a;border-color:var(--green)}
.moat-bmc-cell-head{
  display:flex;align-items:center;gap:0.625rem;
}
.moat-bmc-cell-icon{
  width:2.5rem;height:2.5rem;border-radius:0.5rem;
  background:color-mix(in srgb, var(--bmc-color, var(--green)) 14%, transparent);
  color:var(--bmc-color, var(--green));
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.moat-bmc-cell-icon svg{width:1.25rem;height:1.25rem}
.moat-bmc-cell-title{
  font-size:0.875rem;font-weight:600;color:var(--ink);
  letter-spacing:0.01em;
}
.moat-bmc-cell-body{
  font-size:0.75rem;color:var(--ash);line-height:1.55;
}
.moat-bmc-cell-foot{
  display:flex;flex-wrap:wrap;gap:0.3125rem;
  padding-top:0.4375rem;
  border-top:0.0625rem solid rgba(255,255,255,0.04);
  margin-top:auto;
}
.moat-bmc-tag{
  font-size:0.5625rem;font-weight:600;letter-spacing:0.04em;
  padding:0.1875rem 0.4375rem;border-radius:0.1875rem;
  background:rgba(255,255,255,0.04);color:var(--ash);
}
.moat-bmc-tag.warn{background:rgba(225,53,53,0.08);color:#ff6b6b}
.moat-bmc-tag.green{background:rgba(204,255,0,0.08);color:var(--green)}

/* ── Competitor Benchmarking: "coming once peers indexed" placeholder ── */
.moat-comp-coming{padding:0.25rem 0}
.moat-comp-coming-badge{display:inline-flex;align-items:center;gap:0.4rem;font-size:0.6875rem;font-weight:700;letter-spacing:0.03em;color:var(--gold);background:rgba(245,166,35,0.10);border:0.0625rem solid rgba(245,166,35,0.28);border-radius:0.375rem;padding:0.3rem 0.6rem}
.moat-comp-coming-lead{font-size:0.8125rem;line-height:1.6;color:var(--ash);margin:0.875rem 0 1rem;max-width:none}
.moat-comp-coming-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.875rem}
@media (max-width:900px){.moat-comp-coming-grid{grid-template-columns:1fr}}
.moat-comp-coming-item{padding:1rem 1.125rem;background:rgba(0,0,0,0.20);border:0.0625rem solid rgba(255,255,255,0.05);border-radius:0.5rem}
.moat-comp-coming-item.novel{border-color:rgba(204,255,0,0.28);background:color-mix(in srgb, var(--green) 4%, rgba(0,0,0,0.20))}
.moat-comp-coming-h{font-size:0.8125rem;font-weight:650;color:var(--ink);margin-bottom:0.4rem;display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}
.moat-comp-coming-tag{font-size:0.5625rem;font-weight:700;letter-spacing:0.04em;text-transform:uppercase;color:var(--green);background:rgba(204,255,0,0.12);border-radius:0.25rem;padding:0.15rem 0.4rem}
.moat-comp-coming-item p{font-size:0.75rem;line-height:1.55;color:var(--ash);margin:0}
/* benchmarking preview — subject's real moat polygon (peers overlay once indexed) */
.moat-bench-preview{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:1rem;align-items:center;margin:1rem 0}
@media (max-width:900px){.moat-bench-preview{grid-template-columns:1fr}}
.moat-bench-radar-wrap{display:flex;justify-content:center}
.moat-bench-radar{width:100%;max-width:19rem;height:auto}
.moat-bench-radar .radar-grid{stroke:rgba(255,255,255,0.07);stroke-width:0.75;fill:transparent}
.moat-bench-radar .radar-axis{stroke:rgba(255,255,255,0.05);stroke-width:0.75}
.moat-bench-radar .radar-label{fill:var(--ash);font-size:8px;font-weight:600;text-anchor:middle}
.moat-bench-radar .radar-ring-label{fill:rgba(255,255,255,0.28);font-size:7px;text-anchor:start}
.moat-bench-subj{fill:rgba(204,255,0,0.16);stroke:#cce600;stroke-width:2}
.moat-bench-side{display:flex;flex-direction:column;gap:0.75rem}
.moat-bench-legend{display:flex;flex-direction:column;gap:0.3rem}
.moat-bench-leg-row{display:flex;align-items:center;gap:0.45rem;font-size:0.72rem;color:var(--ink)}
.moat-bench-leg-row.ghost{color:var(--ash);opacity:0.75}
.moat-bench-dot{width:0.6rem;height:0.6rem;border-radius:50%;background:#cce600;flex:0 0 auto}
.moat-bench-dot.ghost{background:transparent;border:0.0625rem dashed var(--ash)}
.moat-bench-leg-tag{font-size:0.58rem;font-weight:700;letter-spacing:0.03em;color:var(--green);background:rgba(204,255,0,0.10);border-radius:0.25rem;padding:0.1rem 0.35rem}

/* ── Competitor Benchmarking: peer pills + chart grid ─────────────── */
.moat-comp-peers{
  display:flex;flex-wrap:wrap;gap:0.3125rem;align-items:center;
  margin-bottom:0.875rem;
}
.moat-comp-peer{
  display:inline-flex;align-items:center;gap:0.3125rem;
  background:rgba(255,255,255,0.04);border:0.0625rem solid rgba(255,255,255,0.06);
  color:var(--ash);font-size:0.6875rem;font-weight:600;
  padding:0.3125rem 0.625rem;border-radius:1rem;
  cursor:pointer;transition:all 0.15s;
}
.moat-comp-peer:hover{background:rgba(255,255,255,0.08)}
.moat-comp-peer.subject{
  background:rgba(204,255,0,0.10);color:var(--green);
  border-color:rgba(204,255,0,0.25);
}
.moat-comp-peer.active{
  background:rgba(255,255,255,0.10);color:var(--ink);border-color:rgba(255,255,255,0.18);
}
.moat-comp-peer-add{
  background:transparent;border:0.0625rem dashed rgba(255,255,255,0.15);
  color:var(--fog);
}

/* Vertical stack — single column. Each chart gets full width so it breathes
   and the radar isn't squished. Bars no longer fight for room. */
.moat-comp-grid{
  display:flex;flex-direction:column;gap:0.875rem;
  margin-bottom:0.875rem;
}

.moat-comp-card{
  background:rgba(0,0,0,0.20);
  border:0.0625rem solid rgba(255,255,255,0.05);
  border-radius:0.5rem;padding:0.875rem 1rem;
  display:flex;flex-direction:column;gap:0.5rem;
}
/* Radar card centers itself with reasonable max width inside the full-width column */
.moat-comp-card-wide .moat-comp-radar-wrap{justify-content:center}

.moat-comp-card-head{
  display:flex;justify-content:space-between;align-items:baseline;gap:0.5rem;
}
.moat-comp-card-title{
  font-size:0.75rem;font-weight:700;letter-spacing:0.04em;color:var(--ash);
  text-transform:uppercase;
}

/* Radar comparison */
.moat-comp-radar-wrap{
  display:flex;align-items:center;justify-content:center;padding:0.625rem;
}
.moat-comp-radar{width:100%;max-width:30rem;height:auto}
.moat-comp-radar .radar-grid{stroke:rgba(255,255,255,0.07);stroke-width:0.75;fill:transparent}
.moat-comp-radar .radar-axis{stroke:rgba(255,255,255,0.04);stroke-width:0.75}
.moat-comp-radar .radar-label{fill:var(--ash);font-size:8px;font-weight:600;font-family:inherit;text-anchor:middle}
.moat-comp-radar .radar-poly{fill-opacity:0.15;stroke-width:1.5;stroke-linejoin:round}

.moat-comp-radar-legend{
  display:flex;flex-wrap:wrap;gap:0.625rem;justify-content:center;
  font-size:0.625rem;color:var(--ash);
}
.moat-comp-radar-legend-item{display:inline-flex;align-items:center;gap:0.3125rem}
.moat-comp-radar-legend-dot{width:0.5rem;height:0.5rem;border-radius:50%}

/* Multi-series bar groups (valuation + margins) */
.moat-comp-bars{
  display:flex;flex-direction:column;gap:0.4375rem;
  padding:0.375rem 0;min-height:11rem;
}
.moat-comp-bar-row{
  display:grid;grid-template-columns:3rem 1fr;gap:0.5rem;align-items:center;
  font-size:0.625rem;
}
.moat-comp-bar-row-label{
  color:var(--ash);font-weight:600;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.moat-comp-bar-row-bars{
  display:flex;flex-direction:column;gap:0.125rem;min-width:0;
}
.moat-comp-bar{
  height:0.4375rem;background:rgba(255,255,255,0.03);border-radius:0.21875rem;
  position:relative;overflow:hidden;
}
.moat-comp-bar-fill{
  position:absolute;top:0;bottom:0;left:0;
  border-radius:0.21875rem;
  transition:width 0.4s;
}
.moat-comp-bar-fill.val-pe{background:#9ce600}
.moat-comp-bar-fill.val-ps{background:#7cb8ff}
.moat-comp-bar-fill.val-ev{background:#c08ce6}
.moat-comp-bar-val{
  position:absolute;top:0;bottom:0;right:0.25rem;
  display:flex;align-items:center;
  font-size:0.5625rem;color:var(--ash);font-variant-numeric:tabular-nums;
  pointer-events:none;
}

.moat-comp-bars-legend{
  display:flex;gap:0.625rem;
  font-size:0.625rem;color:var(--fog);
  padding-top:0.4375rem;border-top:0.0625rem solid rgba(255,255,255,0.04);
}
.moat-comp-bars-legend span{display:inline-flex;align-items:center;gap:0.25rem}
.bar-dot{width:0.4375rem;height:0.4375rem;border-radius:50%}
.bar-dot.val-pe{background:#9ce600}
.bar-dot.val-ps{background:#7cb8ff}
.bar-dot.val-ev{background:#c08ce6}

/* Quarterly revenue line chart */
.moat-comp-line-chart{
  width:100%;height:18rem;display:block;
}
.moat-comp-line-chart .gridline{stroke:rgba(255,255,255,0.05);stroke-width:0.75}
.moat-comp-line-chart .axis-label{fill:var(--fog);font-size:8px;font-family:inherit;font-variant-numeric:tabular-nums}
.moat-comp-line-chart .series-line{
  fill:none;stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;
}
.moat-comp-line-chart .series-dot{r:2.5;stroke-width:1.25;fill:var(--bg)}

/* Growth & Efficiency table */
.moat-comp-table-wrap{
  overflow-x:auto;
  scrollbar-width:thin;
}
.moat-comp-table{
  width:100%;border-collapse:collapse;
  font-size:0.6875rem;font-variant-numeric:tabular-nums;
}
.moat-comp-table thead th{
  text-align:right;padding:0.4375rem 0.625rem;
  font-size:0.5625rem;font-weight:700;letter-spacing:0.06em;
  color:var(--ash);text-transform:uppercase;
  border-bottom:0.0625rem solid rgba(255,255,255,0.06);
  background:rgba(255,255,255,0.02);
}
.moat-comp-table thead th:first-child{text-align:left;min-width:8rem}
.moat-comp-table tbody td{
  padding:0.4375rem 0.625rem;text-align:right;
  color:var(--ash);
  border-bottom:0.0625rem solid rgba(255,255,255,0.03);
}
.moat-comp-table tbody td:first-child{text-align:left;color:var(--ink);font-weight:600}
.moat-comp-table tbody td.subject{color:var(--green);font-weight:700}
.moat-comp-table tbody tr:hover td{background:rgba(255,255,255,0.02)}

/* ═══════════════════════════════════════════════════════════════════
   Moat lens v2 — interactive peer pills + vertical grouped bars +
   radar with score key
   ═══════════════════════════════════════════════════════════════════ */

/* Peer pills: interactive states */
.moat-comp-peer{position:relative;user-select:none}
.moat-comp-peer.inactive{
  background:rgba(255,255,255,0.02);color:var(--fog);
  border-color:rgba(255,255,255,0.04);
}
.moat-comp-peer.inactive:hover{
  background:rgba(255,255,255,0.05);color:var(--ash);
}
.moat-comp-peer-x{
  background:transparent;border:none;
  color:inherit;opacity:0.55;cursor:pointer;
  padding:0;line-height:1;font-size:0.875rem;
  margin-right:0.1875rem;
}
.moat-comp-peer-x:hover{opacity:1;color:#ff6b6b}
.moat-comp-peer-tag{
  font-size:0.5rem;font-weight:600;letter-spacing:0.06em;
  background:rgba(204,255,0,0.18);color:var(--green);
  padding:0.125rem 0.3125rem;border-radius:0.1875rem;
  margin-left:0.25rem;text-transform:uppercase;
}
.moat-comp-peer-input{
  background:rgba(255,255,255,0.04);
  border:0.0625rem solid rgba(255,255,255,0.10);
  border-radius:1rem;color:var(--ink);
  font-family:inherit;font-size:0.6875rem;font-weight:600;
  padding:0.3125rem 0.75rem;width:5rem;
  text-transform:uppercase;letter-spacing:0.04em;
  outline:none;
}
.moat-comp-peer-input:focus{border-color:rgba(204,255,0,0.45)}

/* Radar: ring-value labels (25, 50, 75, 100) + score key panel */
.moat-comp-radar .radar-ring-label{
  fill:rgba(255,255,255,0.30);font-size:7px;font-family:inherit;
  text-anchor:start;font-variant-numeric:tabular-nums;
}
.moat-comp-radar .radar-key-head{
  fill:var(--fog);font-size:7px;font-weight:700;
  font-family:inherit;letter-spacing:0.04em;
}
.moat-comp-radar .radar-key-ticker{
  fill:var(--ash);font-size:8px;font-weight:600;font-family:inherit;
}
.moat-comp-radar .radar-key-score{
  fill:var(--ink);font-size:8px;font-weight:700;font-family:inherit;
  font-variant-numeric:tabular-nums;text-anchor:end;
}

/* Grouped bar chart SVG */
.moat-comp-bars{min-height:13rem}
.moat-comp-bar-svg{display:block}
.moat-comp-bar-svg .gridline{stroke:rgba(255,255,255,0.05);stroke-width:0.75}
.moat-comp-bar-svg .axis-label{
  fill:var(--fog);font-size:9px;font-family:inherit;
  font-variant-numeric:tabular-nums;
}
.moat-comp-bar-svg .axis-label.x-tick{
  fill:var(--ash);font-size:10px;font-weight:600;
}
.moat-comp-bar-svg .bar{transition:opacity 0.15s}
.moat-comp-bar-svg .bar:hover{opacity:0.85}
.moat-comp-bar-svg .bar-empty{fill:rgba(255,255,255,0.08)}

/* ═══════════════════════════════════════════════════════════════════
   Moat lens v3 — bigger icons, expandable dimension cards
   ═══════════════════════════════════════════════════════════════════ */

/* Bigger icons for moat dimensions */
.moat-dim-card{
  grid-template-columns:3.5rem 1fr;
  gap:0.875rem;
}
.moat-dim-card-icon{
  width:3.5rem;height:3.5rem;border-radius:0.625rem;
}
.moat-dim-card-icon svg{width:1.75rem !important;height:1.75rem !important}

/* Bigger icons for Porter cards */
.moat-porter-card{
  grid-template-columns:3.5rem 1fr;
  gap:0.875rem;
}
.moat-porter-icon{
  width:3.5rem;height:3.5rem;border-radius:0.625rem;
}
.moat-porter-icon svg{width:1.75rem !important;height:1.75rem !important}

/* Card head needs space for chevron toggle */
.moat-dim-card-head,
.moat-porter-head{
  align-items:center;gap:0.5rem;
}

/* Chevron toggle button (in card head) */
/* The selected card's deep-dive is always shown — only the inner "read full
   analysis" collapses — so the card-level expand chevron is retired. */
.moat-dim-card-toggle{display:none}
.moat-dim-card.active,
.moat-porter-card.active{cursor:default}
.moat-dim-card-toggle:hover{
  background:rgba(255,255,255,0.06);color:var(--ink);
}
.moat-dim-card-toggle svg{
  width:0.875rem;height:0.875rem;
  transition:transform 0.2s;
}
.moat-dim-card-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}

/* The whole card becomes clickable when collapsed; cursor signals it */
.moat-dim-card,
.moat-porter-card{cursor:pointer}
.moat-dim-card.expanded,
.moat-porter-card.expanded{
  background:rgba(255,255,255,0.025);
  border-color:rgba(255,255,255,0.10);
}

/* Expanded AI deep-dive panel */
.moat-dim-card-expand{
  margin-top:0.625rem;padding:0.75rem 0.875rem 0.875rem;
  background:linear-gradient(135deg, rgba(175,82,222,0.04), rgba(0,0,0,0.20));
  border:0.0625rem solid rgba(175,82,222,0.18);
  border-radius:0.5rem;
  display:flex;flex-direction:column;gap:0.5rem;
  animation:moat-expand-in 0.2s ease-out;
}
@keyframes moat-expand-in{
  from{opacity:0;transform:translateY(-0.25rem)}
  to{opacity:1;transform:none}
}
.moat-dim-card-expand-head{
  display:flex;align-items:center;gap:0.4375rem;
  padding-bottom:0.4375rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.04);
}
.moat-card-ai-icon{
  width:1.125rem;height:1.125rem;border-radius:50%;
  background:rgba(175,82,222,0.18);color:#c08ce6;
  display:inline-flex;align-items:center;justify-content:center;
  flex-shrink:0;
}
.moat-card-ai-icon svg{width:0.625rem;height:0.625rem}
.moat-card-ai-title{
  font-size:0.6875rem;font-weight:700;color:var(--ink);
  letter-spacing:0.02em;flex:1;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.moat-card-ai-badge{
  font-size:0.5rem;font-weight:700;letter-spacing:0.06em;
  background:rgba(175,82,222,0.18);color:#c08ce6;
  padding:0.0625rem 0.3125rem;border-radius:0.1875rem;
}
.moat-dim-card-expand-body{
  font-size:0.75rem;color:var(--ash);line-height:1.6;
  margin:0;
}
.moat-dim-card-expand-body b{color:var(--ink);font-weight:600}

/* Dummy/illustrative tag on debate items (when real bear data is empty) */
.moat-debate-item-dummy-tag{
  font-size:0.4375rem;font-weight:700;letter-spacing:0.08em;
  background:rgba(245,166,35,0.14);color:var(--gold);
  padding:0.125rem 0.3125rem;border-radius:0.1875rem;
  text-transform:uppercase;margin-left:0.125rem;
}

/* CRITICAL: ensure the dimension/porter card expand panel actually respects
   the HTML `hidden` attribute — display:flex above would otherwise show it. */
.moat-dim-card-expand[hidden]{display:none !important}

/* Cleaner HTML legend table below the moat strength radar — replaces the
   in-SVG score key (which was illegible at scale). */
.moat-comp-radar-legend{
  display:flex;justify-content:center;
  /* override the old flex inline-list look */
  padding:0.5rem 0 0;
}
.moat-radar-key{
  width:100%;max-width:24rem;
  background:rgba(0,0,0,0.25);
  border:0.0625rem solid rgba(255,255,255,0.06);
  border-radius:0.5rem;
  padding:0.5rem 0.75rem;
}
.moat-radar-key-head{
  display:flex;justify-content:space-between;align-items:center;
  font-size:0.5625rem;font-weight:700;letter-spacing:0.08em;
  color:var(--fog);text-transform:uppercase;
  padding-bottom:0.3125rem;
  border-bottom:0.0625rem solid rgba(255,255,255,0.05);
  margin-bottom:0.3125rem;
}
.moat-radar-key-row{
  display:flex;justify-content:space-between;align-items:center;
  padding:0.25rem 0;font-size:0.75rem;
}
.moat-radar-key-row + .moat-radar-key-row{
  border-top:0.0625rem solid rgba(255,255,255,0.03);
}
.moat-radar-key-cell{
  display:inline-flex;align-items:center;gap:0.4375rem;
  color:var(--ash);
}
.moat-radar-key-cell b{color:var(--ink);font-weight:600}
.moat-radar-key-dot{
  display:inline-block;width:0.625rem;height:0.625rem;border-radius:50%;
}
.moat-radar-key-score{
  font-size:0.9375rem;font-weight:700;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.moat-radar-key-score small{
  font-size:0.5625rem;font-weight:400;color:var(--fog);
}

/* Bar chart styling v3 — high-contrast labels so tickers and values pop */
.moat-comp-bar-svg .axis-label-y{
  fill:rgba(255,255,255,0.55);font-size:13px;font-family:inherit;
  font-variant-numeric:tabular-nums;
}
.moat-comp-bar-svg .axis-label-x{
  fill:#ffffff;font-size:18px;font-weight:700;font-family:inherit;
  letter-spacing:0.04em;
}
.moat-comp-bar-svg .bar-value-label{
  fill:rgba(255,255,255,0.92);font-size:12px;font-weight:700;font-family:inherit;
  font-variant-numeric:tabular-nums;
  pointer-events:none;
}
/* No height cap on the bar wrap now — SVG self-scales with viewBox */
.moat-comp-bars{min-height:auto}

/* Hide the old PRIMARY tag styling (no longer rendered) */
.moat-comp-peer-tag{display:none}

/* ═══════════════════════════════════════════════════════════════════
   Moat Strength v3 — side-by-side radar + key with hover highlight
   ═══════════════════════════════════════════════════════════════════ */
.moat-strength-split{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(18rem, 22rem);
  gap:1rem;align-items:center;
}
@media (max-width:760px){
  .moat-strength-split{grid-template-columns:1fr}
}
.moat-strength-split .moat-comp-radar-wrap{
  padding:0.5rem;
  justify-content:center;
}
.moat-strength-split .moat-comp-radar{max-width:22rem}
.moat-strength-split .moat-comp-radar-legend{
  display:block;padding:0;
}
.moat-strength-split .moat-radar-key{
  max-width:none;
  background:rgba(0,0,0,0.28);
}

/* Hover interaction: rows highlight the corresponding polygon */
.moat-radar-key-row{
  cursor:pointer;transition:background 0.15s;
  border-radius:0.25rem;padding:0.3125rem 0.5rem;
}
.moat-radar-key-row:hover{background:rgba(255,255,255,0.04)}

/* When .is-hovering is set on the wrap, dim all polygons except the
   one matching .focus-{ticker} via attribute selector. */
.moat-comp-card-wide.is-hovering .moat-comp-radar .radar-poly{
  opacity:0.10;transition:opacity 0.2s;
}
.moat-comp-card-wide.is-hovering .moat-comp-radar .radar-poly.is-focus{
  opacity:1;
  stroke-width:2.5;
  fill-opacity:0.22 !important;
}

/* Card hint above the chart */
.moat-comp-card-hint{
  font-size:0.625rem;color:var(--fog);font-style:italic;
  margin-right:auto;margin-left:0.5rem;
}

/* ═══ Workspace copilot — streaming RAG chat ═══ */
.cop-synth{display:inline-flex;align-items:center;gap:0.4375rem;font-size:0.75rem;color:var(--fog,#8a93a3)}
.cop-synth b{color:var(--cloud,#cfd6e0);font-weight:700}
.cop-synth-pulse{width:0.5rem;height:0.5rem;border-radius:50%;background:var(--teal,#2ee5d5);animation:copPulse 1s ease-in-out infinite;flex:none}
@keyframes copPulse{0%,100%{opacity:.3;transform:scale(.75)}50%{opacity:1;transform:scale(1.3)}}
.cop-done{font-size:0.75rem;color:var(--teal,#2ee5d5);font-weight:600}
.cop-answer{font-size:0.84rem;line-height:1.6;color:var(--cloud,#cfd6e0)}
.cop-answer b{color:var(--snow,#fff);font-weight:700}
.cop-h{font-weight:800;color:var(--snow,#fff);margin:0.5rem 0 0.25rem;font-size:0.8rem}
.cop-li{padding-left:0.9rem;position:relative;margin:0.2rem 0}
.cop-li::before{content:'▸';position:absolute;left:0;color:var(--teal,#2ee5d5)}
.cop-cite{color:var(--teal,#2ee5d5);font-weight:700;font-size:0.6rem;background:rgba(46,229,213,.12);border-radius:0.25rem;padding:0 0.25rem;margin:0 0.0625rem;cursor:pointer;transition:background .12s,color .12s;vertical-align:super}
.cop-cite[data-n]:hover,.cop-cite[data-n]:focus-visible{background:rgba(46,229,213,.3);color:var(--snow,#fff);outline:none}
.cop-cite-gap{display:inline-block;width:0.1875rem}
/* source-type colour coding in the prose: news = purple, transcripts (future) = red */
.cop-cite.cop-cite-src-news{color:#b794ff;background:rgba(154,123,255,.14)}
.cop-cite.cop-cite-src-news:hover{background:rgba(154,123,255,.32)}
.cop-cite.cop-cite-src-yt{color:#ff7a7a;background:rgba(255,99,99,.14)}
.cop-cite.cop-cite-src-yt:hover{background:rgba(255,99,99,.32)}
.cop-cite.cop-cite-src-filing{color:#f5a623;background:rgba(245,166,35,.16)}
.cop-cite.cop-cite-src-filing:hover{background:rgba(245,166,35,.34)}
.cop-cite.cop-cite-src-earn{color:#5ac8fa;background:rgba(90,200,250,.16)}
.cop-cite.cop-cite-src-earn:hover{background:rgba(90,200,250,.34)}
/* ── full-markdown answer styling (GFM is the mandatory output protocol) ── */
.cop-answer h1,.cop-answer h2,.cop-answer h3,.cop-answer h4{color:var(--snow,#fff);font-weight:800;line-height:1.3;margin:0.75rem 0 0.375rem}
.cop-answer h1{font-size:0.95rem}.cop-answer h2{font-size:0.875rem}.cop-answer h3,.cop-answer h4{font-size:0.8rem}
.cop-answer p{margin:0 0 0.5rem}
.cop-answer ul,.cop-answer ol{margin:0.25rem 0 0.625rem;padding-left:1.25rem}
.cop-answer li{margin:0.2rem 0}
.cop-answer li::marker{color:var(--teal,#2ee5d5)}
.cop-answer strong{color:var(--snow,#fff);font-weight:700}
.cop-answer em{color:var(--cloud,#cfd6e0)}
.cop-answer hr{border:none;border-top:0.0625rem solid var(--rim,#252a33);margin:0.75rem 0}
.cop-answer blockquote{margin:0.5rem 0;padding:0.25rem 0.75rem;border-left:0.1875rem solid rgba(46,229,213,.5);color:var(--fog,#aab3c2);font-style:italic}
.cop-answer code{font-family:var(--fm,monospace);font-size:0.72rem;background:var(--bg2,#161a21);border:0.0625rem solid var(--rim,#252a33);border-radius:0.25rem;padding:0 0.25rem}
.cop-answer table,.cop-table{width:100%;border-collapse:collapse;margin:0.5rem 0;font-size:0.76rem;line-height:1.45}
.cop-answer table th,.cop-table th{text-align:left;font-family:var(--fm,monospace);font-size:0.625rem;letter-spacing:.05em;text-transform:uppercase;color:var(--fog,#8a93a3);padding:0.25rem 0.5rem;border-bottom:0.0625rem solid var(--rim,#252a33)}
.cop-answer table td,.cop-table td{vertical-align:top;padding:0.375rem 0.5rem;border-bottom:0.0625rem solid rgba(37,42,51,.55);color:var(--cloud,#cfd6e0)}
.cop-answer table tr:last-child td,.cop-table tr:last-child td{border-bottom:none}
.cop-caret{display:inline-block;width:0.45rem;height:0.9rem;background:var(--teal,#2ee5d5);margin-left:0.125rem;vertical-align:text-bottom;animation:copBlink .9s step-end infinite}
@keyframes copBlink{50%{opacity:0}}
.cop-cites{margin-top:0.625rem;padding-top:0.5rem;border-top:0.0625rem solid var(--rim,#252a33)}
.cop-cites-label{font-family:var(--fm,monospace);font-size:0.5625rem;letter-spacing:.06em;text-transform:uppercase;color:var(--fog,#8a93a3);margin-bottom:0.3125rem}
.cop-cites-row{display:flex;flex-wrap:wrap;gap:0.3125rem}
.cop-cite-chip{display:inline-flex;align-items:center;gap:0.25rem;font-family:var(--fm,monospace);font-size:0.625rem;color:var(--cloud,#cfd6e0);background:var(--bg2,#161a21);border:0.0625rem solid var(--rim,#252a33);border-radius:0.375rem;padding:0.1875rem 0.4375rem;white-space:nowrap}
.cop-cite-chip b{color:var(--teal,#2ee5d5)}
/* the index number — baseline-aligned pill, NOT a raised oversized superscript */
.cop-cite-chip .cop-cite-idx{vertical-align:baseline;font-size:0.625rem;line-height:1;font-weight:700;color:var(--ink,#0a0d12);background:var(--teal,#2ee5d5);border-radius:0.25rem;min-width:0.875rem;height:0.875rem;display:inline-flex;align-items:center;justify-content:center;padding:0 0.1875rem}
.cop-cite-news .cop-cite-idx{background:#9a7bff}
.cop-cite-canvas{border-color:rgba(46,229,213,.35)}
.cop-cite-news{border-color:rgba(120,80,255,.35)}
/* one colour per DATA SOURCE so provenance is legible at a glance:
   canvas=teal · news=purple · SEC filing=GOLD · earnings call=sky · (YouTube=red, future) */
.cop-cite-filing .cop-cite-idx{background:var(--gold,#F5A623)}
.cop-cite-filing{border-color:rgba(245,166,35,.45)}
.cop-cite-filing b{color:var(--gold,#F5A623)}
.cop-cite-filing.cop-cite-clickable:hover{border-color:var(--gold,#F5A623)}
.cop-cite-earnings_call .cop-cite-idx{background:var(--blue,#5AC8FA)}
.cop-cite-earnings_call{border-color:rgba(90,200,250,.45)}
.cop-cite-earnings_call b{color:var(--blue,#5AC8FA)}
.cop-cite-clickable{cursor:pointer;transition:border-color .14s,background .14s,transform .1s}
.cop-cite-clickable:hover{background:var(--bg3,#1c2129);border-color:var(--teal,#2ee5d5);transform:translateY(-1px)}
.cop-cite-clickable:focus-visible{outline:none;border-color:var(--teal,#2ee5d5)}
.cop-cite-clickable:active{transform:translateY(0)}
.cop-cite-chip.cop-flash{animation:copFlash 1.1s ease}
@keyframes copFlash{0%{background:rgba(46,229,213,.4);border-color:var(--teal,#2ee5d5);transform:scale(1.06)}100%{background:var(--bg2,#161a21);transform:scale(1)}}
/* ── Live thinking timeline (the copilot's real stages, streamed) ── */
.cop-think{margin:0.25rem 0 0.5rem;padding:0.5rem 0.625rem;background:rgba(46,229,213,.035);
  border:0.0625rem solid rgba(46,229,213,.14);border-radius:0.5rem;font-size:0.72rem;color:var(--cloud,#cfd6e0)}
.cop-think-step{display:flex;gap:0.5rem;align-items:flex-start;padding:0.1875rem 0;animation:thinkIn .25s ease}
@keyframes thinkIn{from{opacity:0;transform:translateY(2px)}to{opacity:1;transform:none}}
.cop-think-dot{flex:none;width:0.4375rem;height:0.4375rem;border-radius:50%;margin-top:0.3125rem;background:var(--rim,#252a33)}
.cop-think-step.active .cop-think-dot{background:var(--teal,#2ee5d5);box-shadow:0 0 0.4rem rgba(46,229,213,.7)}
.cop-think-step.done .cop-think-dot{background:rgba(46,229,213,.55);animation:none}
.cop-think-text b{color:var(--snow,#fff)}
.cop-think-ms{margin-left:0.375rem;font-family:var(--fm,monospace);font-size:0.625rem;opacity:.55}
.cop-think-pills{display:flex;flex-direction:column;align-items:flex-start;gap:0.3125rem;margin-top:0.3125rem}
.cop-think-row{display:flex;align-items:baseline;gap:0.4375rem;min-width:0}
.cop-think-q{font-size:0.66rem;color:var(--fog,#8a93a3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:26rem}
@keyframes copJolt{0%{transform:translateX(0.1875rem)}100%{transform:none}}
.cop-think-pill{font-family:var(--fm,monospace);font-size:0.625rem;padding:0.0625rem 0.375rem;
  border:0.0625rem solid rgba(46,229,213,.25);border-radius:0.625rem;color:var(--teal,#2ee5d5);background:rgba(46,229,213,.06);transition:all .2s}
.cop-think-pill i{font-style:normal;opacity:.65;margin-left:0.25rem}
.cop-think-pill.searching{border-color:var(--teal,#2ee5d5);background:rgba(46,229,213,.14);box-shadow:0 0 0.5rem rgba(46,229,213,.3);animation:copJolt .28s ease 1}
.cop-think-pill.hit{background:rgba(46,229,213,.16);border-color:rgba(46,229,213,.5);animation:none;box-shadow:none}
.cop-think-count{margin-left:0.25rem;color:var(--snow,#fff);font-weight:700}
/* connector rail linking the thinking steps' dots */
.cop-think-step{position:relative}
.cop-think-step:not(:last-child)::after{content:'';position:absolute;left:0.1875rem;top:0.875rem;bottom:-0.3125rem;width:0.0625rem;background:linear-gradient(180deg,rgba(46,229,213,.45),rgba(46,229,213,.08))}
/* collapsed = an obvious clickable "show work" bar (the live steps are hidden behind it) */
.cop-think-summary{display:inline-flex;align-items:center;gap:0.4rem;cursor:pointer;font-size:0.72rem;
  color:var(--fog,#8a93a3);padding:0.3rem 0.65rem;border:0.0625rem solid var(--rim,#252a33);
  border-radius:0.5rem;background:rgba(46,229,213,.05);transition:background .15s,border-color .15s,color .15s}
.cop-think-summary:hover{background:rgba(46,229,213,.12);border-color:rgba(46,229,213,.4);color:var(--cloud,#cfd6e0)}
.cop-think-spark{color:var(--teal,#2ee5d5)}
.cop-think-chev{transition:transform .15s;color:var(--teal,#2ee5d5)}
.cop-think-hint{font-family:var(--fm,monospace);font-size:0.6rem;text-transform:uppercase;letter-spacing:.06em;opacity:.6}
.cop-think.collapsed.open .cop-think-hint{opacity:0}
.cop-think.collapsed .cop-think-steps{display:none}
.cop-think.collapsed.open .cop-think-steps{display:block;margin-top:0.375rem}
.cop-think.collapsed.open .cop-think-chev{transform:rotate(90deg)}
.cop-think.collapsed{background:transparent;border-color:transparent;padding:0.125rem 0}

/* ── In-app article viewer: blurred workspace + reader card ── */
.art-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;
  background:rgba(8,10,14,.55);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);animation:artIn .18s ease}
@keyframes artIn{from{opacity:0}to{opacity:1}}
.art-card{width:min(46rem,92vw);max-height:84vh;display:flex;flex-direction:column;background:var(--bg1,#101319);
  border:0.0625rem solid var(--rim,#252a33);border-radius:0.875rem;box-shadow:0 1.5rem 4rem rgba(0,0,0,.55);overflow:hidden}
.art-head{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;
  padding:0.75rem 1rem;border-bottom:0.0625rem solid var(--rim,#252a33);flex:none}
.art-meta{font-family:var(--fm,monospace);font-size:0.6875rem;letter-spacing:.04em;color:var(--fog,#8a93a3);text-transform:uppercase}
.art-tier{margin-left:0.375rem;padding:0.0625rem 0.375rem;border-radius:0.25rem;font-size:0.625rem;border:0.0625rem solid var(--rim)}
.art-tier-original{color:var(--teal,#2ee5d5);border-color:rgba(46,229,213,.4)}
.art-tier-primary{color:#ccff00;border-color:rgba(204,255,0,.4)}
.art-tier-aggregation{color:var(--cloud,#cfd6e0)}
.art-tier-opinion{color:#9a7bff;border-color:rgba(154,123,255,.4)}
.art-close{flex:none;width:1.75rem;height:1.75rem;border-radius:50%;border:0.0625rem solid var(--rim,#252a33);
  background:var(--bg2,#161a21);color:var(--cloud,#cfd6e0);font-size:0.8125rem;cursor:pointer;transition:all .15s}
.art-close:hover{color:#fff;border-color:var(--teal,#2ee5d5)}
.art-body{padding:1rem 1.25rem 1.25rem;overflow-y:auto}
.art-title{font-size:1.125rem;font-weight:800;color:var(--snow,#fff);line-height:1.35;margin-bottom:0.625rem}
.art-excerpt-note{font-size:0.6875rem;color:var(--gold,#f5a623);background:rgba(245,166,35,.08);
  border:0.0625rem solid rgba(245,166,35,.25);border-radius:0.375rem;padding:0.375rem 0.625rem;margin-bottom:0.625rem}
.art-text{font-size:0.84rem;line-height:1.65;color:var(--cloud,#cfd6e0)}
.art-text p{margin:0 0 0.75rem}
.art-loading{padding:2rem 0;text-align:center;color:var(--fog,#8a93a3);font-size:0.8125rem}
.art-link{display:inline-block;margin-top:0.5rem;font-size:0.75rem;color:var(--teal,#2ee5d5);text-decoration:none}
.art-link:hover{text-decoration:underline}

/* Stage 2: transient ring on the lens sub-section a citation scrolled to */
.cop-section-flash{animation:copSectionFlash 1.9s ease}
@keyframes copSectionFlash{0%,18%{box-shadow:0 0 0 2px var(--teal,#2ee5d5),0 0 18px rgba(46,229,213,.45);border-radius:0.5rem}100%{box-shadow:0 0 0 0 rgba(46,229,213,0)}}

/* ═══════════════════════════════════════════════════════════════════
   Truth-or-loading: every overlay-target field starts as a shimmer and is
   replaced ONLY by real data. If data never lands it shows "—" — never a
   hardcoded placeholder number. This is what keeps the app honest.
   ═══════════════════════════════════════════════════════════════════ */
.rd-skel{
  display:inline-block;vertical-align:middle;
  min-width:2.25rem;width:62%;max-width:6rem;height:0.85em;
  border-radius:0.25rem;
  background:linear-gradient(90deg, rgba(255,255,255,0.05) 25%, rgba(255,255,255,0.13) 37%, rgba(255,255,255,0.05) 63%);
  background-size:400% 100%;
  animation:rdShimmer 1.35s ease-in-out infinite;
  opacity:0.7;
}
@keyframes rdShimmer{0%{background-position:100% 0}100%{background-position:0 0}}

/* Loading cover — shimmer over a whole canvas/lens body until real data is applied.
   `.rd-loading` hides the placeholder-valued template children; the cover shimmers on top. */
.rd-loading > *:not(.rd-loading-cover){ visibility:hidden !important; }
.rd-loading-cover{
  position:absolute; inset:0; z-index:6;
  display:flex; flex-direction:column; gap:1rem;
  padding:1.5rem; pointer-events:none;
}
.rd-skel-block{
  border-radius:0.5rem;
  background:linear-gradient(90deg, rgba(255,255,255,0.05) 25%, rgba(255,255,255,0.13) 37%, rgba(255,255,255,0.05) 63%);
  background-size:400% 100%;
  animation:rdShimmer 1.35s ease-in-out infinite;
  opacity:0.7;
}

/* ═══════════════════════════════════════════════════════════════
   SEVERED-FOR-LAUNCH — take some things off view (code all kept intact).
   Restore by deleting this block.
   ═══════════════════════════════════════════════════════════════ */

/* Top-nav: hide the account chip + Dashboard/Briefing/Leaderboard tabs.
   The bare [hidden] attribute is beaten by `.nav-tab{display:flex}`, so we
   force it here. Only the Workspace tab (and search) remain. */
.nav-tab[hidden],
.identity-chip[hidden]{ display:none !important; }

/* Workspace: the Creators left panel is RESTORED (2026-07-19) — it now hosts the
   Creators list + the Research Sources universe. (Was severed for launch; brought
   back as the app's social-media "sources" column.) Defaults to its MAX width. */
#page-workspace{ --left-w:28.75rem; }
