/* ═══════════════════════════════════════════
   v4 NEW CARD TYPES
   ═══════════════════════════════════════════ */

/* Card type accents for new cards */
.c-card[data-type="verdict"] .c-card-icon{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25)}
.c-card[data-type="receipts"] .c-card-icon{background:rgba(90,200,250,.08);color:var(--blue);border:0.0625rem solid rgba(90,200,250,.2)}
.c-card[data-type="conflict"] .c-card-icon{background:rgba(245,166,35,.08);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.25)}
.c-card[data-type="slow_down"] .c-card-icon{background:rgba(255,80,0,.08);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}
.c-card[data-type="devils_advocate"] .c-card-icon{background:rgba(155,89,182,.08);color:var(--purple);border:0.0625rem solid rgba(155,89,182,.25)}
.c-card[data-type="silent_risk"] .c-card-icon{background:rgba(245,166,35,.08);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.25)}
.c-card[data-type="fraud_flags"] .c-card-icon{background:rgba(255,80,0,.08);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}

/* "Auto-populated" badge on hero cards */
.c-card-auto{position:absolute;top:-0.4375rem;left:0.875rem;padding:0.125rem 0.4375rem;background:var(--bg);border:0.0625rem solid rgba(204,255,0,.3);border-radius:0.1875rem;font-family:var(--fm);font-size:0.53125rem;font-weight:700;color:var(--green);letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;gap:0.25rem;z-index:2}
.c-card-auto .dot{width:0.25rem;height:0.25rem;border-radius:50%;background:var(--green);box-shadow:0 0 0.25rem var(--green)}
.c-card-auto.warn{border-color:rgba(245,166,35,.3);color:var(--gold)}
.c-card-auto.warn .dot{background:var(--gold);box-shadow:0 0 0.25rem var(--gold)}
.c-card-auto.alert{border-color:rgba(255,80,0,.4);color:var(--red)}
.c-card-auto.alert .dot{background:var(--red);box-shadow:0 0 0.25rem var(--red)}

/* ── Verdict card ── */
.c-verdict-hero{display:flex;align-items:center;gap:0.875rem;margin-bottom:0.75rem;padding:0.25rem 0}
.c-verdict-score{font-family:var(--fd);font-size:2.125rem;font-weight:900;color:var(--green);line-height:1;letter-spacing:-.02em;min-width:4.375rem}
.c-verdict-score.bear{color:var(--red)}
.c-verdict-score.neutral{color:var(--gold)}
.c-verdict-label{flex:1;min-width:0}
.c-verdict-name{font-family:var(--fd);font-size:0.875rem;font-weight:700;color:var(--snow);line-height:1.2;margin-bottom:0.125rem}
.c-verdict-sub{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.04em}
.c-verdict-sub b{color:var(--cloud);font-weight:600}
.c-verdict-conf{font-family:var(--fm);font-size:0.59375rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:0.1875rem 0.4375rem;border-radius:0.25rem;background:var(--bg3);color:var(--cloud)}
.c-verdict-conf.high{color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.2)}
.c-verdict-conf.med{color:var(--gold);background:rgba(245,166,35,.06);border:0.0625rem solid rgba(245,166,35,.2)}
.c-verdict-conf.low{color:var(--red);background:rgba(255,80,0,.06);border:0.0625rem solid rgba(255,80,0,.2)}

.c-verdict-tri{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;margin:0.625rem 0;padding:0;border-radius:var(--r-sm);overflow:hidden;background:var(--bg3);height:0.375rem}
.c-verdict-tri-raw{background:var(--green)}
.c-verdict-tri-neu{background:var(--gold)}
.c-verdict-tri-bear{background:var(--red)}
.c-verdict-tri-labels{display:flex;justify-content:space-between;font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em;margin-bottom:0.625rem;margin-top:0.25rem}

/* ── Receipts card ── */
.c-receipts-summary{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.375rem;margin-bottom:0.75rem}
.c-receipt-stat{padding:0.5rem 0.625rem;background:var(--bg3);border-radius:var(--r-sm);text-align:center}
.c-receipt-stat-v{font-family:var(--fd);font-size:1.125rem;font-weight:800;line-height:1;letter-spacing:-.01em}
.c-receipt-stat-v.green{color:var(--green)}
.c-receipt-stat-v.red{color:var(--red)}
.c-receipt-stat-v.gold{color:var(--gold)}
.c-receipt-stat-l{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em;margin-top:0.1875rem;text-transform:uppercase}

.c-receipts-list{display:flex;flex-direction:column;gap:0.375rem}
.c-receipt-row{display:flex;align-items:center;gap:0.625rem;padding:0.5rem 0.625rem;background:var(--bg3);border-radius:var(--r-sm);font-size:0.71875rem}
.c-receipt-row.deleted{background:rgba(255,80,0,.04);border:0.0625rem solid rgba(255,80,0,.15)}
.c-receipt-who{width:3.75rem;font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--cloud);flex-shrink:0}
.c-receipt-call{flex:1;min-width:0;font-size:0.6875rem;color:var(--cloud);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-receipt-pl{font-family:var(--fm);font-size:0.6875rem;font-weight:700;min-width:3.125rem;text-align:right;flex-shrink:0}
.c-receipt-pl.green{color:var(--green)}
.c-receipt-pl.red{color:var(--red)}
.c-receipt-pl.strike{color:var(--red);font-size:0.625rem;position:relative}
.c-receipt-pl.strike::after{content:'';position:absolute;left:0;right:0;top:50%;height:0.0625rem;background:var(--red);opacity:.6}

.c-archive-alert{margin-top:0.625rem;padding:0.625rem 0.75rem;background:rgba(255,80,0,.04);border:0.0625rem solid rgba(255,80,0,.2);border-radius:var(--r-sm);font-size:0.71875rem;color:var(--cloud);line-height:1.5}
.c-archive-alert b{color:var(--red);font-weight:700}
.c-archive-icon{font-size:0.8125rem;margin-right:0.25rem;vertical-align:-0.0625rem}

/* ── Conflict / Disclosure card ── */
.c-conflict-grid{display:flex;flex-direction:column;gap:0.5rem}
.c-conflict-row{display:flex;align-items:center;gap:0.625rem;padding:0.625rem;background:var(--bg3);border-radius:var(--r-sm)}
.c-conflict-who{font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--snow);width:6.25rem;flex-shrink:0}
.c-conflict-status{flex:1;display:flex;flex-direction:column;gap:0.125rem;min-width:0}
.c-conflict-line{font-size:0.6875rem;color:var(--cloud);line-height:1.4;display:flex;align-items:center;gap:0.3125rem}
.c-conflict-line svg{width:0.625rem;height:0.625rem;flex-shrink:0}
.c-conflict-line.green{color:var(--green)}
.c-conflict-line.amber{color:var(--gold)}
.c-conflict-line.red{color:var(--red)}
.c-conflict-line b{color:var(--snow);font-weight:600}
.c-conflict-badge{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.04em;padding:0.125rem 0.375rem;border-radius:0.1875rem;flex-shrink:0;text-transform:uppercase}
.c-conflict-badge.clean{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.2)}
.c-conflict-badge.partial{background:rgba(245,166,35,.06);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.25)}
.c-conflict-badge.flag{background:rgba(255,80,0,.06);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}

.c-conflict-ctx{margin-top:0.625rem;padding:0.5625rem 0.75rem;background:rgba(90,200,250,.04);border-left:0.125rem solid var(--blue);border-radius:0 var(--r-sm) var(--r-sm) 0;font-size:0.6875rem;color:var(--cloud);line-height:1.5}
.c-conflict-ctx b{color:var(--snow)}

/* ── Slow-Down card (urgent friction) ── */
.c-slow-hero{display:flex;align-items:center;gap:0.75rem;margin-bottom:0.75rem}
.c-slow-icon{width:2.25rem;height:2.25rem;border-radius:50%;background:rgba(255,80,0,.08);border:0.0625rem solid rgba(255,80,0,.3);display:grid;place-items:center;color:var(--red);flex-shrink:0}
.c-slow-icon svg{width:1rem;height:1rem}
.c-slow-msg{flex:1;min-width:0}
.c-slow-title{font-family:var(--fd);font-size:0.875rem;font-weight:800;color:var(--snow);line-height:1.2;margin-bottom:0.125rem}
.c-slow-sub{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.04em}
.c-slow-sub b{color:var(--red);font-weight:700}

.c-slow-checklist{display:flex;flex-direction:column;gap:0.375rem;margin-top:0.625rem}
.c-slow-check{display:flex;align-items:flex-start;gap:0.5rem;padding:0.5rem 0.625rem;background:var(--bg3);border-radius:var(--r-sm);cursor:pointer;transition:all .15s;font-size:0.71875rem;line-height:1.45;color:var(--cloud)}
.c-slow-check:hover{background:#1E1E1E}
.c-slow-check.checked{background:rgba(204,255,0,.04);border:0.0625rem solid rgba(204,255,0,.18)}
.c-slow-check-box{width:0.9375rem;height:0.9375rem;border-radius:0.1875rem;border:0.09375rem solid var(--mist);display:grid;place-items:center;flex-shrink:0;margin-top:0.0625rem;transition:all .15s}
.c-slow-check.checked .c-slow-check-box{background:var(--green);border-color:var(--green)}
.c-slow-check-box svg{width:0.5rem;height:0.5rem;color:transparent}
.c-slow-check.checked .c-slow-check-box svg{color:#000}
.c-slow-check b{color:var(--snow);font-weight:600}

.c-slow-fca{margin-top:0.625rem;padding:0.5rem 0.75rem;background:rgba(255,80,0,.04);border:0.0625rem solid rgba(255,80,0,.15);border-radius:var(--r-sm);font-size:0.65625rem;color:var(--cloud);line-height:1.5;font-family:var(--fm)}
.c-slow-fca b{color:var(--red)}

/* ── Devil's Advocate / Prebunking card ── */
.c-advocate-head{display:flex;align-items:center;gap:0.625rem;margin-bottom:0.75rem;padding:0.625rem 0.75rem;background:rgba(155,89,182,.06);border:0.0625rem solid rgba(155,89,182,.2);border-radius:var(--r-sm)}
.c-advocate-icon{width:1.75rem;height:1.75rem;border-radius:50%;background:rgba(155,89,182,.12);display:grid;place-items:center;color:var(--purple);flex-shrink:0}
.c-advocate-icon svg{width:0.875rem;height:0.875rem}
.c-advocate-msg{flex:1;min-width:0;font-size:0.75rem;color:var(--cloud);line-height:1.45}
.c-advocate-msg b{color:var(--snow)}

.c-advocate-points{display:flex;flex-direction:column;gap:0.5rem}
.c-advocate-point{padding:0.625rem 0.75rem;background:var(--bg3);border-radius:var(--r-sm);border-left:0.125rem solid var(--red)}
.c-advocate-point-head{display:flex;align-items:baseline;gap:0.5rem;margin-bottom:0.3125rem}
.c-advocate-point-num{font-family:var(--fd);font-size:0.8125rem;font-weight:900;color:var(--red);line-height:1}
.c-advocate-point-who{font-family:var(--fm);font-size:0.625rem;color:var(--fog);font-weight:600;margin-left:auto}
.c-advocate-point-who b{color:var(--cloud);font-weight:700}
.c-advocate-point-title{font-family:var(--fd);font-size:0.78125rem;font-weight:700;color:var(--snow);flex:1;line-height:1.3}
.c-advocate-point-body{font-size:0.71875rem;color:var(--cloud);line-height:1.5}
.c-advocate-point-body em{color:var(--snow);font-style:italic}

/* ── Silent Risk card ── */
.c-silent-head{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;margin-bottom:0.625rem;font-weight:600}
.c-silent-head b{color:var(--gold)}
.c-silent-items{display:flex;flex-direction:column;gap:0.5rem}
.c-silent-item{padding:0.625rem 0.75rem;background:var(--bg3);border-radius:var(--r-sm);position:relative;padding-left:2.125rem}
.c-silent-item::before{content:'';position:absolute;left:0.75rem;top:0.75rem;width:0.875rem;height:0.875rem;border-radius:50%;background:rgba(245,166,35,.12);border:0.09375rem solid var(--gold)}
.c-silent-item::after{content:'!';position:absolute;left:1rem;top:0.625rem;font-family:var(--fd);font-size:0.6875rem;font-weight:900;color:var(--gold)}
.c-silent-item-title{font-family:var(--fd);font-size:0.78125rem;font-weight:700;color:var(--snow);margin-bottom:0.1875rem;line-height:1.3}
.c-silent-item-body{font-size:0.71875rem;color:var(--cloud);line-height:1.5}
.c-silent-item-body b{color:var(--snow)}
.c-silent-item-src{margin-top:0.3125rem;font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.04em}

/* ── Fraud Red-Flag Sniffer card ── */
.c-fraud-summary{display:flex;align-items:center;gap:0.625rem;margin-bottom:0.75rem}
.c-fraud-score{font-family:var(--fd);font-size:1.625rem;font-weight:900;line-height:1}
.c-fraud-score.clean{color:var(--green)}
.c-fraud-score.warn{color:var(--gold)}
.c-fraud-score.alert{color:var(--red)}
.c-fraud-score-max{font-family:var(--fm);font-size:0.75rem;color:var(--fog);font-weight:500}
.c-fraud-badge{font-family:var(--fm);font-size:0.625rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:0.1875rem 0.5rem;border-radius:0.25rem;margin-left:auto}
.c-fraud-badge.clean{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25)}
.c-fraud-badge.warn{background:rgba(245,166,35,.06);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.25)}

.c-fraud-list{display:flex;flex-direction:column;gap:0.3125rem}
.c-fraud-row{display:flex;align-items:center;gap:0.5625rem;padding:0.4375rem 0.625rem;background:var(--bg3);border-radius:var(--r-sm);font-size:0.71875rem}
.c-fraud-check-icon{width:1rem;height:1rem;border-radius:50%;display:grid;place-items:center;flex-shrink:0}
.c-fraud-check-icon svg{width:0.5625rem;height:0.5625rem}
.c-fraud-check-icon.pass{background:rgba(204,255,0,.12);color:var(--green)}
.c-fraud-check-icon.fail{background:rgba(255,80,0,.12);color:var(--red)}
.c-fraud-text{flex:1;color:var(--cloud);line-height:1.4}
.c-fraud-text b{color:var(--snow);font-weight:600}
.c-fraud-status{font-family:var(--fm);font-size:0.59375rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.c-fraud-status.pass{color:var(--green)}
.c-fraud-status.fail{color:var(--red)}

/* ═══════════════════════════════════════════
   v5 STUDIO LAYOUT (NotebookLM-inspired)
   ═══════════════════════════════════════════ */

/* Panel mode switching — studio home vs canvas view */
.studio-mode-home .studio-canvas-view{display:none}
.studio-mode-canvas .studio-home{display:none}

/* STUDIO HOME: button grid + saved canvases list */
.studio-home{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}
.studio-scroll{flex:1;overflow-y:auto;padding:0.25rem 1.125rem 1.125rem;display:flex;flex-direction:column;gap:1.125rem}

/* Top: button grid */
.studio-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem}
.studio-btn{position:relative;padding:0.6875rem 0.6875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);cursor:pointer;transition:all .18s;text-align:left;display:flex;flex-direction:column;gap:0.25rem;min-height:3.75rem;overflow:hidden}
.studio-btn::before{content:'';position:absolute;top:0;left:0;right:0;height:0.125rem;background:linear-gradient(90deg,transparent,var(--green),transparent);opacity:0;transition:opacity .2s}
.studio-btn:hover{border-color:rgba(255,255,255,.18);background:var(--bg3);transform:translateY(-0.0625rem)}
.studio-btn:hover::before{opacity:.8}
.studio-btn:active{transform:translateY(0)}
.studio-btn-icon{width:1.5rem;height:1.5rem;border-radius:0.375rem;display:grid;place-items:center;flex-shrink:0}
.studio-btn-icon svg{width:0.8125rem;height:0.8125rem}
/* Real full-colour brand tile (inline SVG fills the tile; no tinted bg/border) */
.studio-btn-icon.is-brand-tile{background:transparent;border:none;overflow:hidden}
.studio-btn-icon.is-brand-tile svg{width:100%;height:100%}
.studio-btn-title{font-family:var(--fb);font-size:0.78125rem;font-weight:700;color:var(--snow);line-height:1.25;display:flex;align-items:center;gap:0.375rem;flex-wrap:wrap}
.studio-btn-sub{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);line-height:1.4;letter-spacing:.02em}
.studio-btn-arrow{position:absolute;top:0.875rem;right:0.75rem;color:var(--fog);opacity:.6;transition:opacity .15s}
.studio-btn:hover .studio-btn-arrow{opacity:1;color:var(--green)}
.studio-btn-arrow svg{width:0.6875rem;height:0.6875rem}

/* Button type colors */
.studio-btn[data-btn="deep_analysis"] .studio-btn-icon{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25)}
.studio-btn[data-btn="verdict"] .studio-btn-icon{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25)}
.studio-btn[data-btn="receipts"] .studio-btn-icon{background:rgba(90,200,250,.08);color:var(--blue);border:0.0625rem solid rgba(90,200,250,.25)}
.studio-btn[data-btn="conflict"] .studio-btn-icon{background:rgba(245,166,35,.08);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.25)}
.studio-btn[data-btn="slow_down"] .studio-btn-icon{background:rgba(255,80,0,.08);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}
.studio-btn[data-btn="silent_risk"] .studio-btn-icon{background:rgba(245,166,35,.08);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.25)}
.studio-btn[data-btn="fraud_flags"] .studio-btn-icon{background:rgba(255,80,0,.08);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}

.studio-btn .featured-mark{font-family:var(--fm);font-size:0.53125rem;font-weight:700;padding:0.0625rem 0.3125rem;border-radius:0.1875rem;background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25);letter-spacing:.04em}

/* ═════════════════════════════════════════════════════════════════
   Studio home v2 — a cohesive quad of templates over two big units
   ═════════════════════════════════════════════════════════════════ */
/* Top: the four canvas templates as one tight 2×2 unit */
.studio-grid.studio-quad{grid-template-columns:1fr 1fr;gap:0.5rem}

/* Bottom: two bigger side-by-side units */
.studio-duo{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;align-items:stretch}
/* Left duo cell splits into YouTube (halved) + AI Verdict, equal widths, same height */
.studio-yt-pair{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;align-items:stretch;min-width:0}
.studio-yt-pair > .studio-big{min-width:0}
.studio-big{
  position:relative;display:flex;flex-direction:column;gap:0.5rem;
  padding:0.75rem;min-height:6.25rem;
  background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);
  text-align:left;
}
.studio-big.studio-btn{cursor:pointer;transition:border-color .18s, background .18s, transform .18s}
.studio-big.studio-btn:hover{border-color:rgba(255,255,255,.18);background:var(--bg3);transform:translateY(-0.0625rem)}
.studio-big-head{display:flex;align-items:flex-start;gap:0.625rem}
.studio-big-titles{flex:1;min-width:0;display:flex;flex-direction:column;gap:0.1875rem}
.studio-big-title{font-family:var(--fb);font-size:0.875rem;font-weight:700;color:var(--snow);line-height:1.2;display:flex;align-items:center;gap:0.375rem;flex-wrap:wrap}
.studio-big-sub{font-family:var(--fm);font-size:0.625rem;color:var(--fog);line-height:1.35;letter-spacing:.02em}
.studio-big .studio-btn-arrow{position:static;opacity:.6}
.studio-big-yt::before{content:'';position:absolute;top:0;left:0;right:0;height:0.125rem;background:linear-gradient(90deg,transparent,#FF5050,transparent);opacity:0;transition:opacity .2s;border-radius:var(--r) var(--r) 0 0}
.studio-big-yt:hover::before{opacity:.8}
.studio-big-yt:hover .studio-btn-arrow{opacity:1;color:#FF7575}

/* AI Verdict unit — mirrors the YouTube accent, green key */
.studio-big-verdict::before{content:'';position:absolute;top:0;left:0;right:0;height:0.125rem;background:linear-gradient(90deg,transparent,var(--green),transparent);opacity:0;transition:opacity .2s;border-radius:var(--r) var(--r) 0 0}
.studio-big-verdict:hover::before{opacity:.8}
.studio-big-verdict:hover .studio-btn-arrow{opacity:1;color:var(--green)}
.studio-big-verdict .studio-big-body{margin-top:0;flex:1;justify-content:center}

/* Verdict tile body — a synthesis collage of the 5 deep-analysis lenses + macro
   converging into one cred-weighted verdict. */
.sv-synth{display:flex;flex-direction:column;gap:0.5rem;width:100%}
.sv-lenses{display:flex;flex-wrap:wrap;gap:0.375rem;justify-content:center}
.sv-lens{
  width:1.875rem;height:1.875rem;flex:0 0 auto;
  display:grid;place-items:center;border-radius:0.5rem;
  color:var(--c);background:color-mix(in srgb,var(--c) 10%,transparent);
  border:0.0625rem solid color-mix(in srgb,var(--c) 32%,transparent);
  transition:transform .18s, box-shadow .18s;
}
.sv-lens svg{width:1rem;height:1rem}
.studio-big-verdict:hover .sv-lens{transform:translateY(-0.125rem);box-shadow:0 0.25rem 0.75rem color-mix(in srgb,var(--c) 22%,transparent)}
/* the merge rail — the lenses "flow" down into the verdict */
.sv-merge{position:relative;display:flex;align-items:center;justify-content:center;height:0.875rem}
.sv-merge-rail{position:absolute;left:12%;right:12%;top:50%;height:0.0625rem;background:linear-gradient(90deg,transparent,rgba(204,255,0,.35),transparent)}
.sv-merge-caret{position:relative;width:0.875rem;height:0.875rem;color:var(--green);background:var(--bg2);border-radius:50%;padding:0.0625rem}
.sv-out{
  display:flex;align-items:center;gap:0.5rem;
  padding:0.4375rem 0.5rem;border-radius:0.5rem;
  background:linear-gradient(180deg,rgba(204,255,0,.09),rgba(204,255,0,.02));
  border:0.0625rem solid rgba(204,255,0,.28);
}
.sv-out-mark{
  flex:0 0 auto;width:1.625rem;height:1.625rem;display:grid;place-items:center;
  border-radius:0.4375rem;background:var(--green);color:#0a0a0a;
  font-family:var(--fd);font-size:0.625rem;font-weight:900;letter-spacing:.02em;
}
.sv-out-txt{display:flex;flex-direction:column;gap:0.0625rem;min-width:0;font-family:var(--fm);font-size:0.5625rem;color:var(--fog);line-height:1.3;letter-spacing:.01em}
.sv-out-txt b{font-family:var(--fb);font-size:0.75rem;font-weight:700;color:var(--snow);letter-spacing:-.005em}

/* YouTube unit — the live-24h creator front */
.studio-big-body{display:flex;flex-direction:column;gap:0.5rem;margin-top:auto;align-items:flex-start}
.studio-big-yt .studio-big-body{margin-top:0;flex:1;justify-content:center}
.studio-yt-stat{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em}
.studio-yt-stat b{color:var(--snow);font-weight:700}
.studio-live-label{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;display:flex;align-items:center;gap:0.375rem}
.studio-live-label b{color:var(--snow);font-weight:700}
.studio-live-dot{width:0.4375rem;height:0.4375rem;border-radius:50%;background:#FF5050;box-shadow:0 0 0 0 rgba(255,80,80,.6);animation:studioLivePulse 2s ease-out infinite;flex-shrink:0}
@keyframes studioLivePulse{0%{box-shadow:0 0 0 0 rgba(255,80,80,.55)}70%{box-shadow:0 0 0 0.375rem rgba(255,80,80,0)}100%{box-shadow:0 0 0 0 rgba(255,80,80,0)}}
.studio-av-row{display:flex;align-items:center;padding-left:0.4375rem}
.studio-av{
  width:2.125rem;height:2.125rem;border-radius:50%;margin-left:-0.4375rem;
  display:grid;place-items:center;flex-shrink:0;
  font-family:var(--fb);font-size:0.6875rem;font-weight:800;color:#0a0a0a;
  border:0.125rem solid var(--bg2);position:relative;
  transition:transform .15s;
}
.studio-big-yt:hover .studio-av{transform:translateY(-0.125rem)}
.studio-av-more{
  margin-left:-0.4375rem;width:2.125rem;height:2.125rem;border-radius:50%;
  display:grid;place-items:center;flex-shrink:0;
  background:var(--bg3);border:0.125rem solid var(--bg2);
  font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--fog);
}

/* Research unit — the source universe */
.studio-big-research{overflow:hidden}
.studio-research-search{display:flex;align-items:center;gap:0.5rem;padding:0.4375rem 0.625rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:0.5rem}
.studio-research-search:focus-within{border-color:rgba(90,200,250,.4)}
.studio-research-search svg{width:0.875rem;height:0.875rem;color:var(--fog);flex-shrink:0}
.studio-research-search input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--snow);font-family:var(--fm);font-size:0.6875rem;letter-spacing:.01em}
.studio-research-search input::placeholder{color:var(--fog)}
.studio-research-chips{display:flex;gap:0.4375rem;flex-wrap:wrap}
.studio-chip{font-family:var(--fm);font-size:0.6875rem;font-weight:700;padding:0.3125rem 0.75rem;border-radius:999px;background:var(--bg1);border:0.0625rem solid var(--rim);color:var(--fog);cursor:pointer;transition:all .15s;letter-spacing:.03em}
.studio-chip:hover{color:var(--snow);border-color:rgba(255,255,255,.2)}
.studio-chip.is-on{background:var(--green-soft);color:var(--green);border-color:rgba(204,255,0,.35)}
.studio-research-list{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:0.25rem;margin:0 -0.3125rem;padding:0.125rem 0.3125rem;scrollbar-width:thin}
.studio-src{display:flex;align-items:center;gap:0.5625rem;padding:0.4375rem 0.5rem;border-radius:0.5rem;border:0.0625rem solid transparent;cursor:pointer;transition:background .12s, border-color .12s}
.studio-src:hover{background:var(--bg3);border-color:var(--rim)}
.studio-src-av{width:1.75rem;height:1.75rem;border-radius:0.4375rem;display:grid;place-items:center;flex-shrink:0;font-family:var(--fb);font-size:0.625rem;font-weight:800;color:#0a0a0a}
.studio-src-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:0.0625rem}
.studio-src-name{font-family:var(--fb);font-size:0.71875rem;font-weight:700;color:var(--snow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:0.3125rem}
.studio-src-meta{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.studio-src-type{font-family:var(--fm);font-size:0.46875rem;font-weight:700;padding:0.03125rem 0.28125rem;border-radius:0.1875rem;text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}
.studio-src-type.youtuber{background:rgba(255,80,80,.12);color:#FF7575}
.studio-src-type.firm{background:rgba(155,89,182,.14);color:#c99be0}
.studio-src-type.newswire{background:rgba(245,166,35,.14);color:var(--gold)}
.studio-src-type.analyst{background:rgba(90,200,250,.14);color:var(--blue)}
.studio-src-type.twitter{background:rgba(255,255,255,.08);color:#e6e6e6}
.studio-src-type.reddit{background:rgba(255,69,0,.14);color:#ff6a33}
.studio-src-type.discord{background:rgba(88,101,242,.16);color:#8b95f5}

/* Real avatars / brand logos — image layered over a colour+monogram that shows through
   if the image fails (onerror removes the <img>). Shared by the deep-dive + research tiles. */
.studio-av,.studio-src-av{overflow:hidden;position:relative}
.studio-av .av-ini,.studio-src-av .av-ini{position:absolute;inset:0;display:grid;place-items:center}
.studio-av .av-img,.studio-src-av .av-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
/* Social platform mark: white glyph on the brand colour; fallback monogram stays white/readable */
.studio-av.is-brand .av-img,.studio-src-av.is-brand .av-img{object-fit:contain;padding:22%;box-sizing:border-box}
.studio-av.is-brand .av-ini,.studio-src-av.is-brand .av-ini{color:#fff;font-size:0.5625rem}
/* Company logo (Clearbit): full-colour logo needs a light tile to read */
.studio-src-av.is-logo{background:#fff}
.studio-src-av.is-logo .av-img{object-fit:contain;padding:14%;box-sizing:border-box}
.studio-src-av.is-logo .av-ini{color:#0a0a0a}

/* Real full-colour brand tile (inline SVG: white mascot on the true brand colour) */
.studio-av.is-brand-svg,.studio-src-av.is-brand-svg{background:transparent}
.studio-av.is-brand-svg svg,.studio-src-av.is-brand-svg svg{width:100%;height:100%;display:block}

/* Filter-chip brand logos */
.studio-chip{display:inline-flex;align-items:center;gap:0.34rem}
.chip-logo{width:1rem;height:1rem;display:inline-flex;flex-shrink:0}
.chip-logo svg,.chip-logo img{width:100%;height:100%;object-fit:contain;display:block}

/* "Coming soon" title badge — shiny gold */
.soon-mark{font-family:var(--fm);font-size:0.53125rem;font-weight:800;padding:0.0625rem 0.375rem;border-radius:0.25rem;
  background:linear-gradient(100deg,#8a6a12 0%,#e8c14e 28%,#fff6cf 50%,#e8c14e 72%,#8a6a12 100%);
  background-size:200% 100%;color:#3a2c00;border:0.0625rem solid rgba(245,220,130,.55);letter-spacing:.05em;
  text-transform:none;white-space:nowrap;box-shadow:0 0 0.5rem rgba(245,200,90,.35);animation:soonShine 3.5s linear infinite}
@keyframes soonShine{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* Preview-canvas blur + coming-soon overlay */
/* Contain the preview to a fixed height + clip the (often very tall) mock, so the centred
   "coming soon" message is ALWAYS in view — a tall canvas (e.g. YouTube Deep Dive) must not
   push the message hundreds of px below the fold. */
.cs-wrap{position:relative;height:32rem;overflow:hidden;border-radius:0.75rem}
.cs-under{position:absolute;inset:0;overflow:hidden;filter:blur(0.375rem) saturate(.7);opacity:.5;pointer-events:none;user-select:none;transform:scale(1.01);z-index:1}
.cs-overlay{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:0.5rem;padding:2rem;background:radial-gradient(ellipse at center, rgba(10,10,12,.55), rgba(10,10,12,.82))}
.cs-badge{font-family:var(--fm);font-size:0.625rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);background:rgba(245,166,35,.12);border:0.0625rem solid rgba(245,166,35,.35);padding:0.25rem 0.6rem;border-radius:999px}
.cs-title{font-family:var(--fb);font-size:1.05rem;font-weight:750;color:var(--snow)}
.cs-sub{font-family:var(--fm);font-size:0.75rem;color:var(--cloud);max-width:26rem;line-height:1.5}
.studio-src-score{font-family:var(--fb);font-size:0.6875rem;font-weight:800;flex-shrink:0;letter-spacing:-.01em}
.studio-src-star{flex-shrink:0;width:1.25rem;height:1.25rem;display:grid;place-items:center;color:var(--fog);opacity:0;transition:opacity .12s, color .12s}
.studio-src:hover .studio-src-star,.studio-src.is-followed .studio-src-star{opacity:1}
.studio-src.is-followed .studio-src-star{color:var(--gold)}
.studio-src-star svg{width:0.875rem;height:0.875rem}
.studio-research-empty{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);text-align:center;padding:1.25rem 0.5rem}

/* Sidebar (narrow) — the two big units stack; the quad stays 2×2.
   Expanded (fullscreen) — there's room, so lay the units side-by-side and
   spread the quad into a single four-across row. */
.studio-duo{grid-template-columns:1fr}
.studio-big-research{min-height:15.625rem}
body.studio-expanded .studio-duo{grid-template-columns:1fr 1fr}
/* Keep the home quad at 2 columns even when expanded — the panel is now ~44rem, so 4
   across would cram/wrap the card text. */
body.studio-expanded .studio-grid.studio-quad{grid-template-columns:1fr 1fr}
body.studio-expanded .studio-big{min-height:7rem}
body.studio-expanded .studio-big-research{min-height:22rem}

/* ═════════════════════════════════════════════════════════════════
   Namespace-canvas workspace host — SEC/earnings widget relocated so its
   chat pane spans the MIDDLE column and its document fills the STUDIO column;
   fullscreen covers everything and slides the chat to the LEFT.
   ═════════════════════════════════════════════════════════════════ */
.ns-host{overflow:hidden}
/* sidebar mode: absolutely cover the MIDDLE + STUDIO columns (left panel stays
   visible). Absolute-over-.workspace is more robust than grid stretch, which
   left the host short. */
body.ns-active .ns-host{
  position:absolute;top:0;bottom:0;right:0;
  left:calc(var(--left-w,17.5rem) + 0.375rem);
  z-index:30;display:flex;flex-direction:column;
  background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);
}
/* fullscreen — cover the position:fixed studio panel (z-index:9999) entirely */
body.ns-active.studio-expanded .ns-host{
  position:fixed;inset:0;left:0;z-index:10000;
  border:none;border-radius:0;background:#000;
}
.ns-host-bar{flex:0 0 auto;display:flex;align-items:center;gap:0.75rem;padding:0.5625rem 0.625rem}
.ns-host-bar{border-bottom:0.0625rem solid var(--rim)}
.ns-host-title{flex:1;min-width:0;font-family:var(--fb);font-weight:700;color:var(--snow);font-size:0.875rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ns-host-btn{display:inline-flex;align-items:center;gap:0.375rem;padding:0.375rem 0.625rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);color:var(--cloud);font-family:var(--fm);font-size:0.6875rem;font-weight:700;cursor:pointer;transition:border-color .15s,color .15s}
.ns-host-btn:hover{border-color:var(--rim2);color:var(--snow)}
.ns-host-btn svg{width:0.8125rem;height:0.8125rem}
.ns-host-expand{padding:0.375rem}
.ns-host-expand .i-collapse{display:none}
body.studio-expanded .ns-host-expand .i-expand{display:none}
body.studio-expanded .ns-host-expand .i-collapse{display:inline-block}
body.ns-active.studio-expanded .ns-host-bar{padding-left:max(0.75rem,calc((100vw - 78rem) / 2));padding-right:max(0.75rem,calc((100vw - 78rem) / 2))}
.ns-host-body{flex:1;min-height:0;overflow:hidden;padding:0.5rem 0.75rem 0.75rem}
body.ns-active.studio-expanded .ns-host-body{padding:0.75rem max(0.75rem,calc((100vw - 78rem) / 2)) 1rem}
.ns-host-body .ns-canvas{height:100%;display:block}
/* !important defeats fitCanvas's inline height (captured against the old Studio
   scroller before relocation) so the widget fills the host instead */
.ns-host-body .ns2{height:100% !important}
/* fullscreen: keep the chat visible on the LEFT (override the widget's cinema hide) */
body.ns-active .ns2-cinema .ns2-left{display:flex}
body.ns-active .ns2-cinema .ns2-resize{display:block}
body.ns-active.studio-expanded .ns2-left{flex:0 0 27rem}

/* Section divider */
.studio-section{display:flex;align-items:center;justify-content:space-between;gap:0.625rem;padding:0 0.125rem;margin-top:0.25rem}
.studio-section-title{font-family:var(--fm);font-size:0.625rem;font-weight:600;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;gap:0.375rem}
.studio-section-title b{color:var(--snow)}
.studio-section-count{font-family:var(--fm);font-size:0.625rem;color:var(--fog)}
.studio-section-count b{color:var(--green);font-weight:700}

/* Generated canvases list */
.canvas-saved-list{display:flex;flex-direction:column;gap:0.25rem}
.canvas-saved-item{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);cursor:pointer;transition:all .15s;position:relative;animation:savedIn .35s ease both}
@keyframes savedIn{from{opacity:0;transform:translateY(-0.25rem)}to{opacity:1;transform:none}}
.canvas-saved-item:hover{border-color:var(--rim2);background:var(--bg3)}
.canvas-saved-icon{width:1.75rem;height:1.75rem;border-radius:0.375rem;display:grid;place-items:center;flex-shrink:0;overflow:hidden}
.canvas-saved-icon svg{width:0.8125rem;height:0.8125rem}
/* YouTube Deep Dive → real full-colour brand tile (fills the tile) */
.canvas-saved-item[data-type="youtube_dive"] .canvas-saved-icon{background:transparent}
.canvas-saved-item[data-type="youtube_dive"] .canvas-saved-icon svg{width:100%;height:100%}
.canvas-saved-item[data-type="deep_analysis"] .canvas-saved-icon{background:var(--green-soft);color:var(--green)}
.canvas-saved-item[data-type="verdict"] .canvas-saved-icon{background:var(--green-soft);color:var(--green)}
.canvas-saved-item[data-type="receipts"] .canvas-saved-icon{background:rgba(90,200,250,.08);color:var(--blue)}
.canvas-saved-item[data-type="conflict"] .canvas-saved-icon{background:rgba(245,166,35,.08);color:var(--gold)}
.canvas-saved-item[data-type="slow_down"] .canvas-saved-icon{background:rgba(255,80,0,.08);color:var(--red)}
.canvas-saved-item[data-type="silent_risk"] .canvas-saved-icon{background:rgba(245,166,35,.08);color:var(--gold)}
.canvas-saved-item[data-type="fraud_flags"] .canvas-saved-icon{background:rgba(255,80,0,.08);color:var(--red)}
.canvas-saved-info{flex:1;min-width:0}
.canvas-saved-title{font-size:0.78125rem;font-weight:600;color:var(--snow);line-height:1.25;margin-bottom:0.125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.canvas-saved-meta{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.02em;display:flex;align-items:center;gap:0.3125rem}
.canvas-saved-badge{font-family:var(--fm);font-size:0.53125rem;font-weight:700;padding:0.0625rem 0.3125rem;border-radius:0.1875rem;letter-spacing:.06em;text-transform:uppercase}
.canvas-saved-badge.auto{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.2)}
.canvas-saved-badge.alert{background:rgba(255,80,0,.06);color:var(--red);border:0.0625rem solid rgba(255,80,0,.2)}
.canvas-saved-badge.warn{background:rgba(245,166,35,.06);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.2)}
.canvas-saved-menu{width:1.5rem;height:1.5rem;border-radius:0.3125rem;display:grid;place-items:center;color:var(--fog);flex-shrink:0;transition:all .15s}
.canvas-saved-menu:hover{background:var(--bg3);color:var(--cloud)}
.canvas-saved-menu svg{width:0.75rem;height:0.75rem}

/* Empty state for saved list */
.canvas-saved-empty{padding:1.125rem 0.75rem;text-align:center;border:0.0625rem dashed var(--rim2);border-radius:var(--r);font-size:0.71875rem;color:var(--fog);line-height:1.55}
.canvas-saved-empty b{color:var(--cloud)}

/* CANVAS VIEW MODE — full-panel view of one generated canvas */
.studio-canvas-view{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0}
.canvas-view-header{display:flex;align-items:center;gap:0.625rem;padding:0.75rem 1.125rem 0.625rem;border-bottom:0.0625rem solid var(--rim);flex-shrink:0}
.canvas-view-back{display:flex;align-items:center;gap:0.3125rem;padding:0.3125rem 0.625rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.375rem;font-family:var(--fm);font-size:0.65625rem;font-weight:600;color:var(--cloud);cursor:pointer;transition:all .15s}
.canvas-view-back:hover{background:var(--bg3);border-color:var(--rim2);color:var(--snow)}
.canvas-view-back svg{width:0.625rem;height:0.625rem}
.canvas-view-title{flex:1;min-width:0;font-family:var(--fd);font-size:0.875rem;font-weight:800;color:var(--snow);letter-spacing:-.01em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.canvas-view-ticker{font-family:var(--fm);font-size:0.6875rem;color:var(--green);font-weight:700;margin-left:0.25rem}
.canvas-view-actions{display:flex;gap:0.25rem;flex-shrink:0}
.canvas-view-body{flex:1;overflow-y:auto;padding:1rem 1.125rem 1.5rem}

/* Individual canvas body inside the view — reuses existing .c-* styles but without the card shell */
.canvas-view-body .c-card{margin-bottom:0;animation:cardIn .35s ease both}

/* ═══════════════════════════════════════════
   DEEP ANALYSIS MIND-MAP (the "think like a master" canvas)
   ═══════════════════════════════════════════ */
.mindmap-wrap{background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);padding:1.125rem;position:relative;overflow:hidden}
.mindmap-wrap::before{content:'';position:absolute;inset:0;background-image:radial-gradient(circle,rgba(204,255,0,.03) 0.0625rem,transparent 0.0625rem);background-size:0.875rem 0.875rem;opacity:.7;pointer-events:none}

.mm-title{font-family:var(--fd);font-size:0.875rem;font-weight:800;color:var(--snow);letter-spacing:-.01em;margin-bottom:0.25rem;position:relative}
.mm-sub{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.04em;margin-bottom:1rem;position:relative}
.mm-sub b{color:var(--cloud)}

/* Central hub */
.mm-hub{position:relative;margin:0 auto 1rem;width:10rem;height:3.625rem;background:linear-gradient(135deg,var(--green-soft),transparent);border:0.0625rem solid rgba(204,255,0,.3);border-radius:var(--r);display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:2}
.mm-hub::before{content:'';position:absolute;inset:-0.0625rem;border-radius:var(--r);background:linear-gradient(135deg,rgba(204,255,0,.3),transparent);z-index:-1;filter:blur(0.375rem);opacity:.6}
.mm-hub-ticker{font-family:var(--fd);font-size:1.125rem;font-weight:900;color:var(--snow);letter-spacing:-.01em;line-height:1}
.mm-hub-label{font-family:var(--fm);font-size:0.59375rem;color:var(--green);letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-top:0.25rem}

/* Connectors SVG — absolute behind branches */
.mm-connectors{position:absolute;top:3.4375rem;left:0;right:0;height:2.5rem;z-index:1;pointer-events:none}
.mm-connectors path{stroke:rgba(204,255,0,.2);stroke-width:1.2;fill:none;stroke-dasharray:3 3}

/* Branches */
.mm-branches{display:grid;grid-template-columns:1fr 1fr;gap:0.625rem;position:relative;z-index:2}
.mm-branch{background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);padding:0.75rem;position:relative;transition:all .2s}
.mm-branch:hover{border-color:var(--rim2);transform:translateY(-0.0625rem)}
.mm-branch-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.5rem;padding-bottom:0.5rem;border-bottom:0.0625rem solid var(--rim)}
.mm-branch-icon{width:1.375rem;height:1.375rem;border-radius:0.375rem;display:grid;place-items:center;flex-shrink:0}
.mm-branch-icon svg{width:0.6875rem;height:0.6875rem}
.mm-branch[data-lens="fundamentals"] .mm-branch-icon{background:rgba(90,200,250,.1);color:var(--blue);border:0.0625rem solid rgba(90,200,250,.2)}
.mm-branch[data-lens="technicals"] .mm-branch-icon{background:rgba(155,89,182,.1);color:var(--purple);border:0.0625rem solid rgba(155,89,182,.2)}
.mm-branch[data-lens="valuation"] .mm-branch-icon{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.2)}
.mm-branch[data-lens="news"] .mm-branch-icon{background:rgba(245,166,35,.1);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.2)}
.mm-branch[data-lens="moat"] .mm-branch-icon{background:rgba(90,200,250,.1);color:var(--blue);border:0.0625rem solid rgba(90,200,250,.2)}
.mm-branch[data-lens="key_ratios"] .mm-branch-icon{background:rgba(255,142,182,.08);color:#ff8eb6;border:0.0625rem solid rgba(255,142,182,.22)}

.mm-branch-name{font-family:var(--fd);font-size:0.75rem;font-weight:800;color:var(--snow);line-height:1.1}
.mm-branch-master{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em;line-height:1.1;margin-top:0.0625rem}
.mm-branch-master b{color:var(--cloud)}
.mm-branch-verdict{margin-left:auto;font-family:var(--fm);font-size:0.5625rem;font-weight:700;padding:0.125rem 0.3125rem;border-radius:0.1875rem;letter-spacing:.04em;text-transform:uppercase;flex-shrink:0}
.mm-branch-verdict.pass{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25)}
.mm-branch-verdict.watch{background:rgba(245,166,35,.08);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.25)}
.mm-branch-verdict.fail{background:rgba(255,80,0,.08);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}
.mm-branch-verdict.pending{background:rgba(255,255,255,.04);color:var(--fog);border:0.0625rem dashed rgba(255,255,255,.18);letter-spacing:.06em}

.mm-branch-q{font-family:var(--fd);font-size:0.71875rem;font-style:italic;color:var(--cloud);line-height:1.35;margin-bottom:0.5rem;padding-left:0.5rem;border-left:0.125rem solid var(--mist)}
.mm-branch-q b{color:var(--snow);font-style:normal;font-weight:600}

.mm-branch-answer{font-size:0.71875rem;color:var(--cloud);line-height:1.45;margin-bottom:0.5rem}
.mm-branch-answer strong{color:var(--snow);font-weight:600}

.mm-branch-points{display:flex;flex-direction:column;gap:0.3125rem}
.mm-branch-point{font-size:0.65625rem;color:var(--fog);line-height:1.4;padding-left:0.625rem;position:relative}
.mm-branch-point::before{content:'';position:absolute;left:0;top:0.375rem;width:0.25rem;height:0.25rem;border-radius:50%;background:var(--mist)}
.mm-branch-point b{color:var(--cloud);font-weight:600}
.mm-branch[data-lens="fundamentals"] .mm-branch-point::before{background:var(--blue)}
.mm-branch[data-lens="technicals"] .mm-branch-point::before{background:var(--purple)}
.mm-branch[data-lens="valuation"] .mm-branch-point::before{background:var(--green)}
.mm-branch[data-lens="news"] .mm-branch-point::before{background:var(--gold)}
.mm-branch[data-lens="moat"] .mm-branch-point::before{background:var(--blue)}

/* Synthesis row at bottom of mind-map */
.mm-synth{margin-top:0.875rem;padding:0.75rem;background:rgba(204,255,0,.04);border:0.0625rem solid rgba(204,255,0,.2);border-radius:var(--r);position:relative}
.mm-synth-label{font-family:var(--fm);font-size:0.5625rem;color:var(--green);letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:0.3125rem}
.mm-synth-text{font-size:0.75rem;color:var(--cloud);line-height:1.5}
.mm-synth-text strong{color:var(--snow)}

/* v7: make mind-map branches clickable with hover cue */
.mm-branch{cursor:pointer;position:relative}
.mm-branch:not([style*="opacity:0"]):hover{border-color:rgba(204,255,0,.3);background:var(--bg3);transform:translateY(-0.125rem);box-shadow:0 0.25rem 0.75rem rgba(0,0,0,.3)}
.mm-branch:not([style*="opacity:0"])::after{content:'';position:absolute;top:0.625rem;right:0.625rem;width:0.875rem;height:0.875rem;background:transparent url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23CCFF00' stroke-width='2.5' stroke-linecap='round'><path d='M5 12h14M13 6l6 6-6 6'/></svg>") no-repeat center;opacity:0;transition:opacity .2s}
.mm-branch:not([style*="opacity:0"]):hover::after{opacity:.9}

/* ═══════════════════════════════════════════
   v7 LENS-DETAIL VIEWS (drill-down from mind-map)
   ═══════════════════════════════════════════ */
.lens-detail{animation:cardIn .3s ease both;padding:0}
.lens-back{display:inline-flex;align-items:center;gap:0.375rem;padding:0.375rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.375rem;font-family:var(--fm);font-size:0.65625rem;font-weight:600;color:var(--cloud);cursor:pointer;transition:all .15s;margin-bottom:0.875rem}
.lens-back:hover{background:var(--bg3);border-color:var(--rim2);color:var(--snow)}
.lens-back svg{width:0.6875rem;height:0.6875rem}

.lens-head{display:flex;align-items:center;gap:0.75rem;margin-bottom:0.875rem;padding-bottom:0.75rem;border-bottom:0.0625rem solid var(--rim)}
.lens-head-icon{width:2.25rem;height:2.25rem;border-radius:0.5rem;display:grid;place-items:center;flex-shrink:0}
.lens-head-icon svg{width:1.125rem;height:1.125rem}
.lens-head-text{flex:1;min-width:0}
.lens-head-title{font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow);letter-spacing:-.01em;line-height:1.15}
.lens-head-sub{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.04em;margin-top:0.125rem}
.lens-head-verdict{font-family:var(--fm);font-size:0.625rem;font-weight:700;padding:0.1875rem 0.5rem;border-radius:0.25rem;letter-spacing:.06em;text-transform:uppercase;flex-shrink:0}
.lens-head-verdict.pass{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25)}
.lens-head-verdict.watch{background:rgba(245,166,35,.08);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.25)}
.lens-head-verdict.fail{background:rgba(255,80,0,.08);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}

/* Sub-section containers inside a lens */
.lens-section{margin-bottom:0.875rem}
.lens-section-title{display:flex;align-items:center;gap:0.375rem;font-family:var(--fd);font-size:0.78125rem;font-weight:800;color:var(--snow);margin-bottom:0.5rem;letter-spacing:-.005em}
.lens-section-title svg{width:0.8125rem;height:0.8125rem;flex-shrink:0}
.lens-section-title-badge{margin-left:auto;font-family:var(--fm);font-size:0.5625rem;font-weight:700;padding:0.125rem 0.375rem;border-radius:0.1875rem;letter-spacing:.06em;text-transform:uppercase}
.lens-section-title-badge.pass{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25)}
.lens-section-title-badge.watch{background:rgba(245,166,35,.06);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.25)}
.lens-section-title-badge.fail{background:rgba(255,80,0,.06);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}

/* AI Summary card */
.lens-ai-summary{display:flex;align-items:flex-start;gap:0.625rem;padding:0.75rem;background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.2);border-radius:var(--r);margin-bottom:0.875rem}
.lens-ai-icon{width:1.5rem;height:1.5rem;border-radius:50%;background:rgba(204,255,0,.1);display:grid;place-items:center;color:var(--green);flex-shrink:0}
.lens-ai-icon svg{width:0.8125rem;height:0.8125rem}
.lens-ai-body{flex:1;min-width:0}
.lens-ai-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.3125rem}
.lens-ai-title{font-family:var(--fd);font-size:0.75rem;font-weight:700;color:var(--snow)}
.lens-ai-badge{font-family:var(--fm);font-size:0.5625rem;font-weight:700;padding:0.125rem 0.3125rem;border-radius:0.1875rem;background:var(--green);color:#000;letter-spacing:.06em;text-transform:uppercase}
.lens-ai-badge.bearish{background:var(--red);color:#fff}
.lens-ai-badge.neutral{background:var(--gold);color:#000}
.lens-ai-text{font-size:0.71875rem;color:var(--cloud);line-height:1.5;margin-bottom:0.375rem}
.lens-ai-bullets{display:grid;grid-template-columns:1fr 1fr;gap:0.25rem 0.75rem;margin-top:0.375rem}
.lens-ai-bullet{font-size:0.65625rem;color:var(--cloud);line-height:1.4;padding-left:0.875rem;position:relative}
.lens-ai-bullet::before{content:'✓';position:absolute;left:0;top:0;color:var(--green);font-weight:700}

/* Metric grid (4 up cards) */
.lens-metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0.5rem;margin-bottom:0.875rem}
.lens-metric{padding:0.625rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);text-align:left}
.lens-metric-label{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;font-weight:600;margin-bottom:0.25rem;display:flex;align-items:center;gap:0.25rem}
.lens-metric-label svg{width:0.625rem;height:0.625rem}
.lens-metric-value{font-family:var(--fd);font-size:1rem;font-weight:800;color:var(--snow);line-height:1;letter-spacing:-.01em}
.lens-metric-value.green{color:var(--green)}
.lens-metric-value.red{color:var(--red)}
.lens-metric-value.gold{color:var(--gold)}
.lens-metric-value.blue{color:var(--blue)}
.lens-metric-value.purple{color:var(--purple)}
.lens-metric-sub{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);margin-top:0.1875rem}
.lens-metric-sub.green{color:var(--green)}
.lens-metric-sub.red{color:var(--red)}

/* Info strips (earnings call, next earnings) */
.lens-strip{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);margin-bottom:0.625rem}
.lens-strip-icon{width:1.75rem;height:1.75rem;border-radius:0.375rem;background:var(--green-soft);color:var(--green);display:grid;place-items:center;flex-shrink:0}
.lens-strip-icon svg{width:0.8125rem;height:0.8125rem}
.lens-strip-body{flex:1;min-width:0}
.lens-strip-title{font-family:var(--fd);font-size:0.75rem;font-weight:700;color:var(--snow);display:flex;align-items:center;gap:0.375rem}
.lens-strip-title-badge{font-family:var(--fm);font-size:0.5625rem;padding:0.0625rem 0.3125rem;background:var(--green-soft);color:var(--green);border-radius:0.1875rem;font-weight:700;letter-spacing:.04em}
.lens-strip-meta{font-family:var(--fm);font-size:0.625rem;color:var(--fog);margin-top:0.125rem}
.lens-strip-right{font-family:var(--fm);font-size:0.625rem;color:var(--fog);text-align:right;flex-shrink:0}
.lens-strip-right b{display:block;color:var(--snow);font-size:0.75rem;font-weight:700;margin-top:0.0625rem}

/* Chart wrapper (SVG bar/line chart) */
.lens-chart{background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);padding:0.75rem;margin-bottom:0.625rem}
.lens-chart-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.25rem}
.lens-chart-title{font-family:var(--fd);font-size:0.75rem;font-weight:700;color:var(--snow)}
.lens-chart-badges{display:flex;gap:0.25rem;margin-left:auto}
.lens-chart-badges span{font-family:var(--fm);font-size:0.5625rem;font-weight:700;padding:0.125rem 0.375rem;border-radius:0.1875rem;letter-spacing:.04em;text-transform:uppercase}
.lens-chart-sub{font-family:var(--fm);font-size:0.625rem;color:var(--fog);margin-bottom:0.625rem}
.lens-chart-svg{width:100%;height:8.75rem;display:block}
.lens-chart-legend{display:flex;justify-content:center;gap:0.875rem;margin-top:0.375rem;font-family:var(--fm);font-size:0.59375rem;color:var(--fog)}
.lens-chart-legend span{display:inline-flex;align-items:center;gap:0.25rem}
.lens-chart-legend i{width:0.5625rem;height:0.125rem;display:inline-block;border-radius:0.0625rem}
.lens-chart-signal{margin-top:0.5rem;padding:0.4375rem 0.625rem;background:var(--bg3);border-radius:var(--r-sm);font-size:0.65625rem;color:var(--cloud);line-height:1.45}
.lens-chart-signal b{color:var(--snow)}

/* Quarter cards row (bottom of EPS surprise). Font scale standardized to .lens-metric
   (fm 0.59375 label/sub, fd 1rem value) so every chart's key-stat cards read alike. */
.lens-qrow{display:grid;grid-template-columns:repeat(4,1fr);gap:0.5rem;margin-top:0.625rem}
.lens-qcard{padding:0.625rem 0.75rem;background:var(--bg3);border-radius:var(--r-sm);text-align:center}
.lens-qcard-q{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;font-weight:600}
.lens-qcard-v{font-family:var(--fd);font-size:1rem;font-weight:800;line-height:1;margin:0.25rem 0 0.1875rem;letter-spacing:-.01em}
.lens-qcard-v.green{color:var(--green)}
.lens-qcard-v.red{color:var(--red)}
.lens-qcard-sub{font-family:var(--fm);font-size:0.59375rem;color:var(--fog)}

/* Signal pills row (technicals) */
.lens-signal-bar{padding:0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);margin-bottom:0.75rem}
.lens-signal-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.5rem}
.lens-signal-label{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.lens-signal-overall{font-family:var(--fd);font-size:0.8125rem;font-weight:800;margin-left:0.25rem}
.lens-signal-overall.bullish{color:var(--green)}
.lens-signal-overall.bearish{color:var(--red)}
.lens-signal-tally{margin-left:auto;display:flex;gap:0.25rem}
.lens-signal-tally span{font-family:var(--fm);font-size:0.59375rem;font-weight:700;padding:0.125rem 0.4375rem;border-radius:0.1875rem}
.lens-signal-tally .bull{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25)}
.lens-signal-tally .bear{background:rgba(255,80,0,.06);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}
.lens-signal-pills{display:flex;flex-wrap:wrap;gap:0.375rem}
.lens-pill{display:inline-flex;align-items:center;gap:0.3125rem;padding:0.3125rem 0.5625rem;border-radius:0.375rem;font-family:var(--fm);font-size:0.65625rem;font-weight:600}
.lens-pill.bull{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25)}
.lens-pill.bear{background:rgba(255,80,0,.06);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}
.lens-pill.neu{background:rgba(138,138,138,.08);color:var(--cloud);border:0.0625rem solid var(--rim2)}
.lens-pill svg{width:0.625rem;height:0.625rem;opacity:.9}

/* Indicator cards (RSI, MACD, etc.) */
.lens-ind-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem}
.lens-ind{padding:0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r)}
.lens-ind-head{display:flex;align-items:baseline;gap:0.375rem;margin-bottom:0.375rem}
.lens-ind-name{font-family:var(--fd);font-size:0.78125rem;font-weight:800;color:var(--snow)}
.lens-ind-badge{font-family:var(--fm);font-size:0.5625rem;font-weight:700;padding:0.0625rem 0.375rem;border-radius:0.1875rem;letter-spacing:.04em;text-transform:lowercase}
.lens-ind-badge.bullish{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25)}
.lens-ind-badge.bearish{background:rgba(255,80,0,.06);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}
.lens-ind-badge.neutral{background:rgba(138,138,138,.08);color:var(--cloud);border:0.0625rem solid var(--rim2)}
.lens-ind-value{font-family:var(--fd);font-size:1.125rem;font-weight:900;color:var(--snow);line-height:1;letter-spacing:-.02em}
.lens-ind-sub{font-family:var(--fm);font-size:0.625rem;color:var(--fog);margin-top:0.3125rem;line-height:1.4}

/* Scenario rows (DCF) */
.lens-scenario{display:grid;grid-template-columns:1fr auto;gap:0.75rem;padding:0.625rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);margin-bottom:0.375rem;align-items:center}
.lens-scenario-label{font-family:var(--fd);font-size:0.71875rem;font-weight:700;color:var(--snow);line-height:1.2}
.lens-scenario-label small{display:block;font-family:var(--fm);font-size:0.625rem;color:var(--fog);font-weight:400;margin-top:0.125rem}
.lens-scenario-value{font-family:var(--fd);font-size:1rem;font-weight:800;line-height:1;text-align:right}
.lens-scenario-value.green{color:var(--green)}
.lens-scenario-value.red{color:var(--red)}
.lens-scenario-value.gold{color:var(--gold)}
.lens-scenario-value small{display:block;font-family:var(--fm);font-size:0.5625rem;color:var(--fog);font-weight:500;margin-top:0.1875rem}

/* Table (financial statements, peer comps) */
.lens-table{width:100%;border-collapse:collapse;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);overflow:hidden;font-size:0.6875rem;margin-bottom:0.625rem}
.lens-table th{font-family:var(--fm);font-size:0.59375rem;font-weight:700;color:var(--fog);text-transform:uppercase;letter-spacing:.06em;text-align:left;padding:0.5rem 0.625rem;border-bottom:0.0625rem solid var(--rim);background:var(--bg3)}
.lens-table th:not(:first-child){text-align:right}
.lens-table td{padding:0.5rem 0.625rem;border-bottom:0.0625rem solid var(--rim);color:var(--cloud)}
.lens-table td:not(:first-child){text-align:right;font-family:var(--fm);font-variant-numeric:tabular-nums}
.lens-table tr:last-child td{border-bottom:none}
.lens-table tr:hover td{background:var(--bg3)}
.lens-table .pos{color:var(--green)}
.lens-table .neg{color:var(--red)}
.lens-table td b{color:var(--snow);font-weight:600}

/* News/catalyst items */
.lens-news-item{display:flex;gap:0.625rem;padding:0.625rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);margin-bottom:0.375rem}
.lens-news-date{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.04em;min-width:3.25rem;flex-shrink:0;padding-top:0.125rem}
.lens-news-body{flex:1;min-width:0}
.lens-news-title{font-family:var(--fd);font-size:0.75rem;font-weight:700;color:var(--snow);line-height:1.3;margin-bottom:0.1875rem}
.lens-news-title-badge{font-family:var(--fm);font-size:0.53125rem;font-weight:700;padding:0.0625rem 0.3125rem;border-radius:0.1875rem;letter-spacing:.04em;text-transform:uppercase;margin-left:0.3125rem;vertical-align:0.0625rem}
.lens-news-title-badge.pos{background:var(--green-soft);color:var(--green)}
.lens-news-title-badge.neg{background:rgba(255,80,0,.06);color:var(--red)}
.lens-news-title-badge.neu{background:rgba(138,138,138,.1);color:var(--cloud)}
.lens-news-excerpt{font-size:0.6875rem;color:var(--cloud);line-height:1.45;margin-bottom:0.25rem}
.lens-news-source{font-family:var(--fm);font-size:0.59375rem;color:var(--fog)}
.lens-news-source b{color:var(--cloud)}

/* Moat dimension rows with score bars */
.lens-moat-row{padding:0.625rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);margin-bottom:0.375rem}
.lens-moat-row-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.375rem}
.lens-moat-name{font-family:var(--fd);font-size:0.75rem;font-weight:700;color:var(--snow)}
.lens-moat-score{margin-left:auto;font-family:var(--fd);font-size:0.875rem;font-weight:800;color:var(--green)}
.lens-moat-score small{font-family:var(--fm);font-size:0.625rem;color:var(--fog);font-weight:500}
.lens-moat-bar{height:0.25rem;background:var(--bg3);border-radius:0.125rem;overflow:hidden;margin-bottom:0.3125rem}
.lens-moat-bar-fill{height:100%;background:linear-gradient(90deg,var(--green),rgba(204,255,0,.4));border-radius:0.125rem}
.lens-moat-text{font-size:0.6875rem;color:var(--cloud);line-height:1.45}

/* Bear case quote block */
.lens-bearcase{padding:0.75rem;background:rgba(255,80,0,.04);border:0.0625rem solid rgba(255,80,0,.2);border-left:0.1875rem solid var(--red);border-radius:var(--r);margin-bottom:0.625rem}
.lens-bearcase-label{font-family:var(--fm);font-size:0.5625rem;color:var(--red);letter-spacing:.1em;text-transform:uppercase;font-weight:700;margin-bottom:0.3125rem}
.lens-bearcase-quote{font-size:0.71875rem;font-style:italic;color:var(--cloud);line-height:1.5;margin-bottom:0.25rem}
.lens-bearcase-src{font-family:var(--fm);font-size:0.59375rem;color:var(--fog)}
.lens-bearcase-src b{color:var(--cloud)}

/* Responsive for lens detail */
@media(max-width:960px){
  .lens-metric-grid{grid-template-columns:repeat(2,1fr)}
  .lens-qrow{grid-template-columns:repeat(2,1fr)}
  .lens-ind-grid{grid-template-columns:1fr}
  .lens-ai-bullets{grid-template-columns:1fr}
}

/* ═══════════════════════════════════════════
   v8: ECONOMIC PICTURE canvas + CANVAS ACTIONS
   ═══════════════════════════════════════════ */

/* Top metric strip — 6-up for macro metrics */
.econ-metric-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:0.5rem;margin-bottom:0.875rem}
@media(max-width:960px){.econ-metric-strip{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.econ-metric-strip{grid-template-columns:repeat(2,1fr)}}
.econ-metric{padding:0.625rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);position:relative}
.econ-metric-lbl{display:flex;align-items:center;gap:0.3125rem;font-family:var(--fm);font-size:0.53125rem;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-bottom:0.375rem}
.econ-metric-lbl svg{width:0.625rem;height:0.625rem}
.econ-metric-val{font-family:var(--fd);font-size:1rem;font-weight:900;line-height:1;letter-spacing:-.02em;margin-bottom:0.25rem}
.econ-metric-val.blue{color:var(--blue)}
.econ-metric-val.teal{color:var(--teal)}
.econ-metric-val.purple{color:var(--purple)}
.econ-metric-val.green{color:var(--green)}
.econ-metric-val.gold{color:var(--gold)}
.econ-metric-val.red{color:var(--red)}
.econ-metric-trend{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.02em;display:flex;align-items:center;gap:0.1875rem}
.econ-metric-trend.up{color:var(--green)}
.econ-metric-trend.down{color:var(--red)}
.econ-metric-trend.flat{color:var(--fog)}

/* ═══ Market-News rail — reusable horizontal scroller w/ cover photos ═══
   Shared between the Economic Picture canvas and the dashboard. Compact,
   image-led, scroll-snapped. Each card carries a relevance tag (Macro /
   industry) for AI-driven selection later. */
.econ-news-wrap{margin-bottom:0.875rem}
.mkt-news{margin:0}
.mkt-news-head{display:flex;align-items:center;justify-content:space-between;gap:0.75rem;margin-bottom:0.5rem}
.mkt-news-h-title{display:flex;align-items:center;gap:0.4375rem;font-family:var(--fm);font-size:0.6875rem;color:var(--snow);letter-spacing:.06em;text-transform:uppercase;font-weight:800}
.mkt-news-h-title svg{width:0.875rem;height:0.875rem;color:var(--teal)}
.mkt-news-nav{display:flex;gap:0.3125rem}
.mkt-news-arrow{display:flex;align-items:center;justify-content:center;width:1.625rem;height:1.625rem;padding:0;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.4375rem;color:var(--cloud);cursor:pointer;transition:border-color .15s,color .15s,background .15s}
.mkt-news-arrow:hover{border-color:rgba(46,229,213,.4);color:var(--teal);background:rgba(46,229,213,.06)}
.mkt-news-arrow svg{width:0.875rem;height:0.875rem}
.mkt-news-track{display:flex;gap:0.625rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:0.375rem;scrollbar-width:thin;scrollbar-color:var(--rim) transparent}
.mkt-news-track::-webkit-scrollbar{height:0.375rem}
.mkt-news-track::-webkit-scrollbar-thumb{background:var(--rim);border-radius:1rem}
.mkt-news-track::-webkit-scrollbar-track{background:transparent}
.mkt-news-card{flex:0 0 15.5rem;scroll-snap-align:start;display:flex;flex-direction:column;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);overflow:hidden;text-decoration:none;transition:border-color .15s,transform .15s}
.mkt-news-card:hover{border-color:rgba(46,229,213,.4);transform:translateY(-0.125rem)}
.mkt-news-cover{position:relative;width:100%;height:6.25rem;background:linear-gradient(135deg,rgba(46,229,213,.12),rgba(120,80,255,.12))}
.mkt-news-img{width:100%;height:100%;object-fit:cover;display:block}
.mkt-news-img-fail{background:linear-gradient(135deg,rgba(46,229,213,.14),rgba(120,80,255,.14))}
img.mkt-news-img-fail{display:none}
.mkt-news-tag{position:absolute;top:0.4375rem;left:0.4375rem;font-family:var(--fm);font-size:0.5rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#04110f;background:var(--teal);padding:0.1875rem 0.4375rem;border-radius:0.3125rem;box-shadow:0 0.125rem 0.5rem rgba(0,0,0,.35)}
.mkt-news-card-body{padding:0.5625rem 0.625rem 0.6875rem;display:flex;flex-direction:column;gap:0.3125rem}
.mkt-news-meta{display:flex;align-items:center;justify-content:space-between;gap:0.5rem}
.mkt-news-site{font-family:var(--fm);font-size:0.53125rem;color:var(--teal);letter-spacing:.05em;text-transform:uppercase;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}
.mkt-news-date{font-family:var(--fm);font-size:0.53125rem;color:var(--fog);white-space:nowrap}
.mkt-news-title{font-size:0.78125rem;font-weight:700;line-height:1.32;color:var(--snow);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

/* ═══ Factor Sensitivity — the stock-specific transmission panel ═══
   How the stock moves with market forces (betas/correlations) + a current
   tailwind/headwind stance. Lead section of the Economic Picture. */
.fs-wrap{margin-bottom:0.875rem}
.fs-panel{background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);padding:0.875rem}
.fs-head{margin-bottom:0.5rem}
.fs-h-title{display:flex;align-items:center;gap:0.4375rem;font-family:var(--fm);font-size:0.6875rem;color:var(--snow);letter-spacing:.06em;text-transform:uppercase;font-weight:800;margin-bottom:0.25rem}
.fs-h-title svg{width:0.9375rem;height:0.9375rem;color:var(--teal)}
.fs-h-sub{font-size:0.6875rem;color:var(--fog);line-height:1.4}
.fs-h-sub b{color:var(--cloud)}
.fs-synth{font-size:0.78125rem;line-height:1.5;color:var(--cloud);background:rgba(46,229,213,.05);border-left:0.1875rem solid var(--teal);border-radius:0.3125rem;padding:0.5rem 0.625rem;margin-bottom:0.625rem}
.fs-synth b{color:var(--snow);font-weight:700}
/* 3×3 grid of compact factor cells (was 9 stacked rows). */
.fs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.5rem}
@media(max-width:760px){.fs-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:460px){.fs-grid{grid-template-columns:1fr}}
.fs-cell{background:var(--bg);border:0.0625rem solid var(--rim);border-top:0.1875rem solid var(--rim);border-radius:0.5rem;padding:0.625rem 0.6875rem;display:flex;flex-direction:column;gap:0.4375rem;min-width:0}
.fs-cell.stance-tailwind{border-top-color:var(--green)}
.fs-cell.stance-headwind{border-top-color:var(--red)}
.fs-cell.stance-neutral{border-top-color:var(--rim)}
.fs-cell-top{display:flex;align-items:center;justify-content:space-between;gap:0.375rem;min-width:0}
.fs-name{font-size:0.78125rem;font-weight:700;color:var(--snow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.fs-proxy{font-family:var(--fm);font-size:0.5rem;font-weight:700;letter-spacing:.05em;color:var(--fog);background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.25rem;padding:0.0625rem 0.3125rem;flex:none}
.fs-cell-mid{display:flex;align-items:center;justify-content:space-between;gap:0.375rem}
.fs-beta{font-family:var(--fm);font-size:0.625rem;color:var(--fog);white-space:nowrap}
.fs-beta b{font-size:1.0625rem;font-weight:800;letter-spacing:-.01em}
.fs-beta.pos b{color:var(--green)}
.fs-beta.neg b{color:var(--red)}
.fs-stance{font-family:var(--fm);font-size:0.5rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:0.125rem 0.375rem;border-radius:0.25rem;white-space:nowrap}
.fs-stance.tailwind{color:var(--green);background:rgba(204,255,0,.1)}
.fs-stance.headwind{color:var(--red);background:rgba(255,80,0,.1)}
.fs-stance.neutral{color:var(--fog);background:rgba(255,255,255,.04)}
.fs-stance.off{color:var(--fog);background:transparent;border:0.0625rem dashed var(--rim)}
.fs-cell-bar{position:relative;width:100%;height:0.3125rem;background:var(--bg2);border-radius:1rem;overflow:hidden}
.fs-cell-bar i{position:absolute;left:0;top:0;height:100%;border-radius:1rem;display:block}
.fs-str-strong i{background:var(--green)}
.fs-str-moderate i{background:var(--teal)}
.fs-str-weak i{background:var(--gold)}
.fs-str-none i{background:var(--rim)}
.fs-cell-foot{display:flex;min-width:0}
.fs-strlbl{font-family:var(--fm);font-size:0.53125rem;color:var(--fog);letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fs-cell-trans{font-size:0.625rem;color:var(--cloud);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fs-trans-muted{color:var(--fog);font-style:italic}
.fs-foot{margin-top:0.625rem;display:flex;gap:0.4375rem;font-size:0.59375rem;line-height:1.45;color:var(--fog)}
.fs-foot-dot{flex:none;width:0.375rem;height:0.375rem;border-radius:50%;background:var(--teal);margin-top:0.3125rem}

/* ═══ Macro vitals — compact secondary stat row under the indicator strip ═══ */
.econ-vitals{display:grid;grid-template-columns:repeat(4,1fr);gap:0.5rem;margin-bottom:0.875rem}
@media(max-width:560px){.econ-vitals{grid-template-columns:repeat(2,1fr)}}
.econ-vital{padding:0.5rem 0.625rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-left:0.1875rem solid var(--rim);border-radius:0.4375rem}
.econ-vital.good{border-left-color:var(--green)}
.econ-vital.bad{border-left-color:var(--red)}
.econ-vital.mid{border-left-color:var(--gold)}
.econ-vital-lbl{font-family:var(--fm);font-size:0.5rem;color:var(--fog);letter-spacing:.05em;text-transform:uppercase;font-weight:700;margin-bottom:0.25rem}
.econ-vital-val{font-family:var(--fd);font-size:0.9375rem;font-weight:900;color:var(--snow);line-height:1}
.econ-vital-sub{font-family:var(--fm);font-size:0.5rem;color:var(--fog);margin-top:0.1875rem}

/* Real creator avatars inside macro quote cards */
.econ-quote-av img{width:100%;height:100%;object-fit:cover;display:block}
.econ-quote-empty{font-size:0.71875rem;color:var(--fog);font-style:italic;padding:0.5rem 0}
/* Creator pulse + per-quote debate theme tags */
.econ-pulse{font-size:0.75rem;line-height:1.5;color:var(--cloud);background:rgba(46,229,213,.05);border-left:0.1875rem solid var(--teal);border-radius:0.3125rem;padding:0.5rem 0.625rem;margin-bottom:0.625rem}
.econ-pulse b{color:var(--snow);font-weight:700;text-transform:capitalize}
.econ-quote-tags{display:flex;align-items:center;gap:0.3125rem;margin:0.25rem 0 0.375rem}
.econ-quote-theme{font-family:var(--fm);font-size:0.5rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--teal);background:rgba(46,229,213,.1);border-radius:0.25rem;padding:0.125rem 0.375rem}
.econ-quote-stance{font-family:var(--fm);font-size:0.5rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border-radius:0.25rem;padding:0.125rem 0.375rem}
.econ-quote-stance.bearish{color:var(--red);background:rgba(255,80,0,.1)}
.econ-quote-stance.cautious{color:var(--gold);background:rgba(245,166,35,.1)}
.econ-outlook-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.0625rem;height:1.0625rem;padding:0 0.3125rem;margin-left:0.375rem;border-radius:0.625rem;background:var(--bg3);color:var(--fog);font-family:var(--fm);font-size:0.5625rem;font-weight:700}

/* ═══ Economic calendar — released (outcomes) + upcoming, scrollable ═══ */
.econ-winds-grid.econ-cal{display:block}
.econ-cal-head{display:flex;align-items:center;gap:0.4375rem;font-family:var(--fm);font-size:0.6875rem;color:var(--snow);letter-spacing:.06em;text-transform:uppercase;font-weight:800;margin-bottom:0.5rem}
.econ-cal-head svg{width:0.875rem;height:0.875rem;color:var(--teal)}
.econ-cal-note{font-family:var(--fm);font-size:0.5rem;color:var(--fog);letter-spacing:.02em;text-transform:none;font-weight:600;margin-left:auto}
.econ-cal-cols{display:grid;grid-template-columns:1fr 1fr;gap:0.625rem}
@media(max-width:640px){.econ-cal-cols{grid-template-columns:1fr}}
.econ-cal-coltitle{font-family:var(--fm);font-size:0.5625rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin-bottom:0.375rem;padding-left:0.125rem}
.econ-cal-coltitle.upcoming{color:var(--teal)}
.econ-cal-coltitle.released{color:var(--fog)}
.econ-cal-scroll{display:flex;flex-direction:column;gap:0.375rem;max-height:15rem;overflow-y:auto;padding-right:0.25rem;scrollbar-width:thin;scrollbar-color:var(--rim) transparent}
.econ-cal-scroll::-webkit-scrollbar{width:0.375rem}
.econ-cal-scroll::-webkit-scrollbar-thumb{background:var(--rim);border-radius:1rem}
.econ-cal-item{background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.4375rem;padding:0.4375rem 0.5625rem}
.econ-cal-row{display:flex;align-items:center;gap:0.4375rem}
.econ-cal-date{font-family:var(--fm);font-size:0.5625rem;font-weight:700;color:var(--teal);white-space:nowrap;min-width:2.75rem}
.econ-cal-evt{font-size:0.71875rem;font-weight:600;color:var(--cloud);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.econ-cal-figs{display:flex;align-items:center;gap:0.3125rem;white-space:nowrap;font-family:var(--fm);font-size:0.5625rem}
.econ-cal-actual{color:var(--snow);font-weight:800}
.econ-cal-est{color:var(--cloud);font-weight:700}
.econ-cal-vs{color:var(--fog)}
.econ-cal-surprise{font-size:0.5rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase;padding:0.0625rem 0.25rem;border-radius:0.1875rem}
.econ-cal-surprise.beat{color:var(--green);background:rgba(204,255,0,.12)}
.econ-cal-surprise.miss{color:var(--red);background:rgba(255,80,0,.12)}
.econ-cal-surprise.inline{color:var(--fog);background:rgba(255,255,255,.05)}
.econ-cal-why{flex:none;width:1rem;height:1rem;padding:0;border-radius:50%;border:0.0625rem solid var(--rim);background:transparent;color:var(--fog);font-size:0.5625rem;font-weight:800;cursor:pointer;line-height:1}
.econ-cal-why:hover{border-color:var(--teal);color:var(--teal)}
.econ-cal-whytext{display:none;font-size:0.625rem;line-height:1.4;color:var(--fog);margin-top:0.375rem;padding-top:0.375rem;border-top:0.0625rem solid var(--rim)}
.econ-cal-item.open .econ-cal-whytext{display:block}
.econ-cal-empty{font-size:0.6875rem;color:var(--fog);font-style:italic;padding:0.375rem 0}

/* Source chips in the AI-summary tailwind/headwind lists */
.ai-summary-src{display:inline-block;font-family:var(--fm);font-size:0.5rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--teal);background:rgba(46,229,213,.1);border-radius:0.1875rem;padding:0.0625rem 0.25rem;margin-left:0.25rem;vertical-align:middle}

/* Industry & ticker themes */
.econ-env-rel{font-family:var(--fm);font-size:0.5rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;padding:0.0625rem 0.3125rem;border-radius:0.25rem;color:var(--fog);background:rgba(255,255,255,.05)}
.econ-env-rel.direct{color:var(--teal);background:rgba(46,229,213,.1)}
.econ-env-src{font-family:var(--fm);font-size:0.5rem;color:var(--fog);letter-spacing:.03em;text-transform:uppercase;margin-top:0.375rem}

/* Environment grid — 2 columns of env cards */
.econ-env-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-bottom:0.875rem}
@media(max-width:640px){.econ-env-grid{grid-template-columns:1fr}}
.econ-env{padding:0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);position:relative}
.econ-env.tailwind{background:rgba(46,229,213,.04);border-color:rgba(46,229,213,.2)}
.econ-env.headwind{background:rgba(255,80,0,.04);border-color:rgba(255,80,0,.2)}
.econ-env-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.375rem}
.econ-env-icon{width:1.625rem;height:1.625rem;border-radius:0.375rem;display:grid;place-items:center;flex-shrink:0}
.econ-env-icon svg{width:0.8125rem;height:0.8125rem}
.econ-env.tailwind .econ-env-icon{background:rgba(46,229,213,.12);color:var(--teal)}
.econ-env.headwind .econ-env-icon{background:rgba(255,80,0,.12);color:var(--red)}
.econ-env:not(.tailwind):not(.headwind) .econ-env-icon{background:rgba(138,138,138,.12);color:var(--cloud)}
.econ-env-name{font-family:var(--fd);font-size:0.78125rem;font-weight:700;color:var(--snow)}
.econ-env-tag{font-family:var(--fm);font-size:0.5625rem;font-weight:700;padding:0.0625rem 0.3125rem;border-radius:0.1875rem;letter-spacing:.04em;text-transform:lowercase}
.econ-env-tag.headwind{background:rgba(255,80,0,.1);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}
.econ-env-tag.tailwind{background:rgba(46,229,213,.1);color:var(--teal);border:0.0625rem solid rgba(46,229,213,.25)}
.econ-env-tag.improving{background:rgba(46,229,213,.1);color:var(--teal);border:0.0625rem solid rgba(46,229,213,.25)}
.econ-env-tag.neutral{background:rgba(138,138,138,.1);color:var(--cloud);border:0.0625rem solid var(--rim2)}
.econ-env-sev{margin-left:auto;font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.06em;color:var(--fog)}
.econ-env-body{font-size:0.6875rem;color:var(--cloud);line-height:1.5}

/* Creator Macro Outlook */
.econ-outlook-wrap{padding:0.875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);margin-bottom:0.875rem}
.econ-outlook-title{display:flex;align-items:center;gap:0.375rem;font-family:var(--fd);font-size:0.78125rem;font-weight:800;color:var(--snow);margin-bottom:0.625rem}
.econ-outlook-cols{display:grid;grid-template-columns:1fr 1fr;gap:0.625rem}
@media(max-width:640px){.econ-outlook-cols{grid-template-columns:1fr}}
.econ-outlook-col{padding:0.625rem;background:var(--bg1);border-radius:var(--r-sm)}
.econ-outlook-col.bull{border:0.0625rem solid rgba(204,255,0,.2)}
.econ-outlook-col.bear{border:0.0625rem solid rgba(255,80,0,.2)}
.econ-outlook-col-head{display:flex;align-items:center;gap:0.375rem;margin-bottom:0.625rem;font-family:var(--fd);font-size:0.71875rem;font-weight:800}
.econ-outlook-col.bull .econ-outlook-col-head{color:var(--green)}
.econ-outlook-col.bear .econ-outlook-col-head{color:var(--red)}
.econ-outlook-col-head svg{width:0.8125rem;height:0.8125rem}
.econ-quote{padding-bottom:0.625rem;margin-bottom:0.625rem;border-bottom:0.0625rem dashed var(--rim)}
.econ-quote:last-child{border-bottom:none;padding-bottom:0;margin-bottom:0}
.econ-quote-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.3125rem}
.econ-quote-av{width:1.375rem;height:1.375rem;border-radius:50%;background:var(--bg3);overflow:hidden;flex-shrink:0;display:grid;place-items:center;color:var(--fog);font-family:var(--fd);font-size:0.625rem;font-weight:700}
.econ-quote-name{font-family:var(--fd);font-size:0.71875rem;font-weight:700;color:var(--snow)}
.econ-quote-date{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);margin-left:auto}
.econ-quote-text{font-size:0.6875rem;font-style:italic;color:var(--cloud);line-height:1.5;padding-left:0.625rem;border-left:0.125rem solid var(--rim2)}
.econ-outlook-col.bull .econ-quote-text{border-left-color:rgba(204,255,0,.4)}
.econ-outlook-col.bear .econ-quote-text{border-left-color:rgba(255,80,0,.4)}

/* Tailwinds / Headwinds lists (side-by-side) */
.econ-winds-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.625rem;margin-bottom:0.875rem}
@media(max-width:640px){.econ-winds-grid{grid-template-columns:1fr}}
.econ-winds-col{padding:0.75rem;border-radius:var(--r)}
.econ-winds-col.tail{background:rgba(46,229,213,.04);border:0.0625rem solid rgba(46,229,213,.2)}
.econ-winds-col.head{background:rgba(255,80,0,.04);border:0.0625rem solid rgba(255,80,0,.2)}
.econ-winds-col-head{display:flex;align-items:center;gap:0.375rem;margin-bottom:0.625rem;font-family:var(--fd);font-size:0.75rem;font-weight:800}
.econ-winds-col.tail .econ-winds-col-head{color:var(--teal)}
.econ-winds-col.head .econ-winds-col-head{color:var(--red)}
.econ-winds-col-head svg{width:0.8125rem;height:0.8125rem}
.econ-winds-count{margin-left:auto;font-family:var(--fm);font-size:0.625rem;font-weight:700;padding:0.125rem 0.4375rem;border-radius:0.625rem}
.econ-winds-col.tail .econ-winds-count{background:rgba(46,229,213,.1);color:var(--teal);border:0.0625rem solid rgba(46,229,213,.25)}
.econ-winds-col.head .econ-winds-count{background:rgba(255,80,0,.1);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}
.econ-wind-item{padding:0.625rem;background:var(--bg1);border-radius:var(--r-sm);margin-bottom:0.375rem}
.econ-wind-item:last-child{margin-bottom:0}
.econ-wind-item-title{display:flex;align-items:start;gap:0.375rem;font-family:var(--fd);font-size:0.71875rem;font-weight:700;color:var(--snow);line-height:1.35;margin-bottom:0.3125rem}
.econ-wind-item-title svg{width:0.6875rem;height:0.6875rem;flex-shrink:0;margin-top:0.125rem}
.econ-winds-col.tail .econ-wind-item-title svg{color:var(--teal)}
.econ-winds-col.head .econ-wind-item-title svg{color:var(--red)}
.econ-wind-item-note{display:flex;align-items:start;gap:0.25rem;font-size:0.65625rem;line-height:1.45;padding-left:0.875rem;margin-bottom:0.25rem}
.econ-wind-item-note svg{width:0.625rem;height:0.625rem;flex-shrink:0;margin-top:0.125rem}
.econ-winds-col.tail .econ-wind-item-note{color:var(--teal)}
.econ-winds-col.head .econ-wind-item-note{color:var(--red)}
.econ-wind-item-src{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);margin-top:0.1875rem}

/* Sector Themes */
.econ-sectors-wrap{padding:0.875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r)}
.econ-sectors-title{display:flex;align-items:center;gap:0.375rem;font-family:var(--fd);font-size:0.78125rem;font-weight:800;color:var(--snow);margin-bottom:0.625rem}
.econ-sectors-title svg{width:0.8125rem;height:0.8125rem;color:var(--purple)}
.econ-sectors-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem}
@media(max-width:640px){.econ-sectors-grid{grid-template-columns:1fr}}
.econ-sector{padding:0.625rem 0.75rem;background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-sm)}
.econ-sector.tailwind{background:rgba(46,229,213,.04);border-color:rgba(46,229,213,.2)}
.econ-sector.headwind{background:rgba(255,80,0,.04);border-color:rgba(255,80,0,.2)}
.econ-sector-head{display:flex;align-items:center;gap:0.375rem;margin-bottom:0.25rem}
.econ-sector-head svg{width:0.6875rem;height:0.6875rem}
.econ-sector.tailwind .econ-sector-head svg{color:var(--teal)}
.econ-sector.headwind .econ-sector-head svg{color:var(--red)}
.econ-sector-name{font-family:var(--fd);font-size:0.71875rem;font-weight:700;color:var(--snow)}
.econ-sector-tag{margin-left:auto;font-family:var(--fm);font-size:0.5625rem;font-weight:700;padding:0.0625rem 0.3125rem;border-radius:0.1875rem;letter-spacing:.04em}
.econ-sector-tag.tailwind{background:rgba(46,229,213,.1);color:var(--teal);border:0.0625rem solid rgba(46,229,213,.25)}
.econ-sector-tag.headwind{background:rgba(255,80,0,.1);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}
.econ-sector-desc{font-size:0.65625rem;color:var(--cloud);line-height:1.45;margin-bottom:0.3125rem}
.econ-sector-rel{font-family:var(--fm);font-size:0.5625rem;font-weight:700;padding:0.125rem 0.375rem;border-radius:0.1875rem;display:inline-block;letter-spacing:.04em}
.econ-sector-rel.direct{background:rgba(204,255,0,.08);color:var(--green);border:0.0625rem solid rgba(204,255,0,.2)}
.econ-sector-rel.indirect{background:rgba(138,138,138,.08);color:var(--cloud);border:0.0625rem solid var(--rim2)}
.econ-sector-rel.moderate{background:rgba(245,166,35,.08);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.25)}

/* ═══════ CANVAS ACTIONS section (6-button grid) ═══════ */
.studio-actions-title{font-family:var(--fm);font-size:0.625rem;font-weight:600;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;margin:0.25rem 0.125rem 0.5rem;display:flex;align-items:center;gap:0.375rem}
.studio-actions-title b{color:var(--snow);font-weight:700}
.studio-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-bottom:0.625rem}
.studio-action-btn{position:relative;padding:0.875rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);cursor:pointer;transition:all .18s;text-align:left;display:flex;flex-direction:column;gap:0.375rem;min-height:5.625rem}
.studio-action-btn:hover{border-color:rgba(255,255,255,.18);background:var(--bg3);transform:translateY(-0.0625rem)}
.studio-action-btn-icon{width:1.75rem;height:1.75rem;border-radius:0.375rem;display:grid;place-items:center;flex-shrink:0;margin-bottom:0.25rem}
.studio-action-btn-icon svg{width:0.875rem;height:0.875rem}
.studio-action-btn[data-action="debate_mode"] .studio-action-btn-icon{background:rgba(255,80,0,.08);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}
.studio-action-btn[data-action="pattern_match"] .studio-action-btn-icon{background:rgba(245,166,35,.08);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.25)}
.studio-action-btn[data-action="thesis_builder"] .studio-action-btn-icon{background:rgba(245,166,35,.08);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.25)}
.studio-action-btn[data-action="what_if"] .studio-action-btn-icon{background:rgba(155,89,182,.08);color:var(--purple);border:0.0625rem solid rgba(155,89,182,.25)}
.studio-action-btn[data-action="sec_dive"] .studio-action-btn-icon{background:rgba(90,200,250,.08);color:var(--blue);border:0.0625rem solid rgba(90,200,250,.25)}
.studio-action-btn[data-action="consensus_map"] .studio-action-btn-icon{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25)}
.studio-action-btn-title{font-family:var(--fd);font-size:0.8125rem;font-weight:800;color:var(--snow);line-height:1.2}
.studio-action-btn-sub{font-family:var(--fm);font-size:0.625rem;color:var(--fog);line-height:1.4;letter-spacing:.02em}

/* ═══════ Compact canvas layouts (for Canvas Action canvases) ═══════ */
/* Debate Mode — bull vs bear columns */
.debate-thesis{padding:0.875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);margin-bottom:0.875rem;text-align:center}
.debate-thesis-label{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--fog);margin-bottom:0.3125rem}
.debate-thesis-text{font-family:var(--fd);font-size:0.875rem;font-weight:700;color:var(--snow);line-height:1.35;font-style:italic}
.debate-cols{display:grid;grid-template-columns:1fr 1fr;gap:0.625rem;margin-bottom:0.875rem}
@media(max-width:640px){.debate-cols{grid-template-columns:1fr}}
.debate-col{padding:0.75rem;border-radius:var(--r)}
.debate-col.bull{background:rgba(204,255,0,.04);border:0.0625rem solid rgba(204,255,0,.2)}
.debate-col.bear{background:rgba(255,80,0,.04);border:0.0625rem solid rgba(255,80,0,.2)}
.debate-col-head{display:flex;align-items:center;gap:0.375rem;margin-bottom:0.625rem;font-family:var(--fd);font-size:0.75rem;font-weight:800}
.debate-col.bull .debate-col-head{color:var(--green)}
.debate-col.bear .debate-col-head{color:var(--red)}
.debate-col-head svg{width:0.8125rem;height:0.8125rem}
.debate-point{padding:0.5rem 0.625rem;background:var(--bg1);border-radius:var(--r-sm);margin-bottom:0.375rem}
.debate-point:last-child{margin-bottom:0}
.debate-point-weight{display:flex;align-items:center;gap:0.375rem;font-family:var(--fm);font-size:0.59375rem;color:var(--fog);margin-bottom:0.25rem}
.debate-point-weight b{color:var(--cloud);font-weight:700}
.debate-point-text{font-size:0.6875rem;color:var(--cloud);line-height:1.45}
.debate-ref{padding:0.75rem;background:rgba(245,166,35,.04);border:0.0625rem solid rgba(245,166,35,.2);border-left:0.1875rem solid var(--gold);border-radius:var(--r)}
.debate-ref-label{font-family:var(--fm);font-size:0.5625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-weight:700;margin-bottom:0.3125rem}
.debate-ref-text{font-size:0.71875rem;color:var(--cloud);line-height:1.5}
.debate-ref-text b{color:var(--snow)}

/* Pattern Match layout */
.pattern-item{padding:0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);margin-bottom:0.5rem}
.pattern-item-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.5rem}
.pattern-item-dot{width:0.4375rem;height:0.4375rem;border-radius:50%;background:var(--gold);box-shadow:0 0 0.375rem var(--gold)}
.pattern-item-title{font-family:var(--fd);font-size:0.78125rem;font-weight:800;color:var(--snow);flex:1}
.pattern-item-score{font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--green)}
.pattern-item-sub{font-size:0.6875rem;color:var(--cloud);line-height:1.45;margin-bottom:0.5rem}
.pattern-item-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:0.375rem}
.pattern-item-meta > div{padding:0.375rem 0.5rem;background:var(--bg1);border-radius:var(--r-sm);text-align:center}
.pattern-item-meta-l{font-family:var(--fm);font-size:0.53125rem;color:var(--fog);letter-spacing:.04em;text-transform:uppercase;font-weight:600}
.pattern-item-meta-v{font-family:var(--fd);font-size:0.8125rem;font-weight:800;color:var(--snow);margin-top:0.125rem}

/* Thesis Builder — picker + output */
.builder-blocks{display:grid;grid-template-columns:repeat(2,1fr);gap:0.375rem;margin-bottom:0.875rem}
@media(max-width:640px){.builder-blocks{grid-template-columns:1fr}}
.builder-block{padding:0.625rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);cursor:pointer;transition:all .15s;position:relative}
.builder-block.picked{background:var(--green-soft);border-color:rgba(204,255,0,.3)}
.builder-block:hover{border-color:var(--rim2)}
.builder-block-head{display:flex;align-items:center;gap:0.375rem;margin-bottom:0.25rem}
.builder-block-creator{font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--cloud)}
.builder-block-stance{font-family:var(--fm);font-size:0.5625rem;font-weight:700;padding:0.0625rem 0.3125rem;border-radius:0.1875rem}
.builder-block-stance.bull{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25)}
.builder-block-stance.bear{background:rgba(255,80,0,.08);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}
.builder-block-check{margin-left:auto;width:0.875rem;height:0.875rem;border-radius:0.1875rem;border:0.09375rem solid var(--mist);display:grid;place-items:center;flex-shrink:0}
.builder-block.picked .builder-block-check{background:var(--green);border-color:var(--green);color:#000}
.builder-block-check svg{width:0.5625rem;height:0.5625rem;color:transparent}
.builder-block.picked .builder-block-check svg{color:#000}
.builder-block-text{font-size:0.6875rem;color:var(--cloud);line-height:1.4}
.builder-output{padding:0.875rem;background:rgba(204,255,0,.04);border:0.0625rem solid rgba(204,255,0,.2);border-radius:var(--r)}
.builder-output-label{font-family:var(--fm);font-size:0.5625rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green);font-weight:700;margin-bottom:0.375rem}
.builder-output-text{font-size:0.75rem;color:var(--cloud);line-height:1.55}
.builder-output-text strong{color:var(--snow)}

/* What-If scenarios */
.whatif-row{padding:0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);margin-bottom:0.5rem}
.whatif-row.bull{border-left:0.1875rem solid var(--green)}
.whatif-row.base{border-left:0.1875rem solid var(--gold)}
.whatif-row.bear{border-left:0.1875rem solid var(--red)}
.whatif-row-head{display:flex;align-items:baseline;gap:0.5rem;margin-bottom:0.5rem}
.whatif-row-stance{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}
.whatif-row.bull .whatif-row-stance{color:var(--green)}
.whatif-row.base .whatif-row-stance{color:var(--gold)}
.whatif-row.bear .whatif-row-stance{color:var(--red)}
.whatif-row-title{font-family:var(--fd);font-size:0.78125rem;font-weight:800;color:var(--snow);flex:1}
.whatif-row-prob{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);font-weight:700}
.whatif-row-prob b{color:var(--cloud)}
.whatif-implications{display:grid;grid-template-columns:repeat(2,1fr);gap:0.375rem}
@media(max-width:560px){.whatif-implications{grid-template-columns:1fr}}
.whatif-imp{padding:0.375rem 0.5rem;background:var(--bg1);border-radius:var(--r-sm);font-size:0.65625rem;color:var(--cloud);line-height:1.4}
.whatif-imp b{color:var(--snow);font-size:0.59375rem;font-family:var(--fm);letter-spacing:.04em;text-transform:uppercase;display:block;margin-bottom:0.125rem;color:var(--fog)}

/* SEC Deep Dive — fact check rows */
.secdive-item{padding:0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);margin-bottom:0.5rem}
.secdive-item.match{border-left:0.1875rem solid var(--green)}
.secdive-item.contradict{border-left:0.1875rem solid var(--red)}
.secdive-item.unclear{border-left:0.1875rem solid var(--gold)}
.secdive-head{display:flex;align-items:baseline;gap:0.5rem;margin-bottom:0.375rem}
.secdive-creator{font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--cloud)}
.secdive-verdict{font-family:var(--fm);font-size:0.5625rem;font-weight:700;padding:0.125rem 0.375rem;border-radius:0.1875rem;letter-spacing:.04em;text-transform:uppercase;margin-left:auto}
.secdive-verdict.match{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.25)}
.secdive-verdict.contradict{background:rgba(255,80,0,.08);color:var(--red);border:0.0625rem solid rgba(255,80,0,.25)}
.secdive-verdict.unclear{background:rgba(245,166,35,.08);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.25)}
.secdive-claim{font-family:var(--fd);font-size:0.75rem;color:var(--snow);line-height:1.4;margin-bottom:0.5rem;font-style:italic}
.secdive-check{padding:0.5rem 0.625rem;background:var(--bg1);border-radius:var(--r-sm);font-size:0.65625rem;color:var(--cloud);line-height:1.5}
.secdive-check b{color:var(--snow)}
.secdive-src{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);margin-top:0.3125rem}

/* Consensus Map — scatter-style visualization */
.consensus-map{padding:1rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);margin-bottom:0.875rem;position:relative;height:16.25rem;overflow:hidden}
.consensus-grid-lines{position:absolute;inset:1rem}
.consensus-grid-lines line{stroke:var(--rim);stroke-dasharray:2 4}
.consensus-axis{position:absolute;font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase;font-weight:700}
.consensus-axis.x-left{bottom:0.25rem;left:1.125rem}
.consensus-axis.x-right{bottom:0.25rem;right:1.125rem}
.consensus-axis.y-top{top:0.25rem;left:1.125rem;writing-mode:vertical-rl;transform:rotate(180deg)}
.consensus-axis.y-bot{bottom:1.125rem;left:1.125rem;writing-mode:vertical-rl;transform:rotate(180deg)}
.consensus-dot{position:absolute;width:2.25rem;height:2.25rem;border-radius:50%;background:var(--bg3);border:0.125rem solid var(--rim2);display:grid;place-items:center;font-family:var(--fd);font-size:0.625rem;font-weight:800;color:var(--snow);cursor:pointer;transition:all .15s;transform:translate(-50%,-50%)}
.consensus-dot:hover{transform:translate(-50%,-50%) scale(1.15);z-index:5}
.consensus-dot.bull{border-color:var(--green);color:var(--green)}
.consensus-dot.bear{border-color:var(--red);color:var(--red)}
.consensus-dot.neutral{border-color:var(--gold);color:var(--gold)}
.consensus-legend{display:flex;gap:0.75rem;padding:0.625rem 0.75rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);font-family:var(--fm);font-size:0.625rem;color:var(--cloud);flex-wrap:wrap}
.consensus-legend span{display:inline-flex;align-items:center;gap:0.3125rem}
.consensus-legend i{width:0.625rem;height:0.625rem;border-radius:50%;border:0.09375rem solid;display:inline-block}
.consensus-legend .bull i{border-color:var(--green)}
.consensus-legend .bear i{border-color:var(--red)}
.consensus-legend .neutral i{border-color:var(--gold)}

/* ════════════════════════════════════════════
   v7.2 STUDIO EXPANDED MODE — bulletproof fullscreen
   Removed ::before overlay entirely (was causing dim
   rendering due to stacking context). Panel IS the
   modal now. Hardcoded opaque bg + z-index 9999.
   ════════════════════════════════════════════ */
/* ════════════════════════════════════════════
   Collapsible Studio (NotebookLM-style) — the right panel collapses to a slim
   icon rail by default so the canvases stay out of the way. The top button (or
   any rail icon) opens it.
   ════════════════════════════════════════════ */
.studio-rail{display:none}
.workspace.ws-studio-collapsed{--right-w:3.5rem}
.workspace.ws-studio-collapsed > .resize-handle[data-target="right"]{visibility:hidden;pointer-events:none}
.ws-studio-collapsed #studioPanel > .panel-header,
.ws-studio-collapsed #studioPanel > .studio-home,
.ws-studio-collapsed #studioPanel > .studio-canvas-view{display:none !important}
.ws-studio-collapsed #studioPanel > .studio-rail{display:flex}
#studioPanel > .studio-rail{flex-direction:column;align-items:center;gap:0.5rem;flex:1;width:100%;padding:0.75rem 0;overflow-y:auto}
.studio-rail-btn,.studio-rail-ic{width:2.25rem;height:2.25rem;border-radius:0.625rem;display:grid;place-items:center;border:0.0625rem solid var(--rim2);background:var(--bg1);color:var(--fog);cursor:pointer;transition:all .15s;flex-shrink:0;overflow:hidden;padding:0}
.studio-rail-btn:hover,.studio-rail-ic:hover{border-color:var(--rim);color:var(--snow);background:var(--bg2);transform:translateY(-1px)}
.studio-rail-btn svg,.studio-rail-ic svg{width:1.125rem;height:1.125rem}
.studio-rail-expand{color:var(--snow);background:var(--bg2);border-color:var(--rim)}
.studio-rail-divider{width:1.5rem;height:0.0625rem;background:var(--rim2);flex-shrink:0;margin:0.125rem 0}
.studio-rail-list{display:flex;flex-direction:column;align-items:center;gap:0.5rem}
.studio-rail-ic.is-brand-tile{border:none;background:transparent}
.studio-rail-ic.is-brand-tile svg,.studio-rail-ic[data-brand] svg{width:100%;height:100%}
/* Studio home header (NotebookLM style): "Studio" in a clean sans on the LEFT, collapse
   icon on the RIGHT. Tighter section heading below it. */
#studioPanel .panel-header{justify-content:space-between;gap:0.5rem;padding:0.875rem 1rem 0.625rem}
#studioPanel .panel-header .studio-collapse-btn{margin-left:auto}
#studioPanel .panel-header .panel-title .studio-title{font-family:var(--fb);font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;color:var(--snow);margin:0}
#studioPanel .studio-section-head{margin-bottom:0.75rem}
#studioPanel .studio-section-title{font-size:0.8125rem}
#studioPanel .studio-section-sub{font-size:0.65625rem}
/* Rail icons carry each canvas's identity colour (matches the studio-home cards) */
.studio-rail-ic[data-btn="deep_analysis"]{background:var(--green-soft);border-color:rgba(204,255,0,.3);color:var(--green)}
.studio-rail-ic[data-btn="economic_picture"]{background:rgba(155,89,182,.1);border-color:rgba(155,89,182,.32);color:var(--purple)}
.studio-rail-ic[data-btn="earnings_canvas"]{background:rgba(204,255,0,.08);border-color:rgba(204,255,0,.28);color:var(--green)}
.studio-rail-ic[data-btn="sec_canvas"]{background:rgba(80,160,255,.1);border-color:rgba(80,160,255,.32);color:#5aa0ff}
.studio-rail-ic.is-verdict{background:var(--green-soft);border-color:rgba(204,255,0,.35);color:var(--green)}
.studio-rail-ic[data-btn="deep_analysis"]:hover,.studio-rail-ic[data-btn="earnings_canvas"]:hover,.studio-rail-ic.is-verdict:hover{border-color:rgba(204,255,0,.6);background:var(--green-dim);color:var(--green)}
.studio-rail-ic[data-btn="economic_picture"]:hover{border-color:rgba(155,89,182,.6);color:var(--purple)}
.studio-rail-ic[data-btn="sec_canvas"]:hover{border-color:rgba(80,160,255,.6);color:#5aa0ff}

/* Expand = WIDEN the Studio to ~half the viewport and squish the workspace to the LEFT
   (NOT fullscreen). The grid transition (.ws-animate, added during the toggle) makes it
   glide smoothly. The creators column tucks away so the chat centres on the left. */
body.studio-expanded #page-workspace .workspace{
  /* Studio is at most 48rem, but ALWAYS leaves >= 54rem for the middle so the
     "What do you want to know?" content (max-width 52rem) can never squeeze — on a
     narrow window the studio shrinks instead of squeezing the chat. */
  --right-w: min(30rem, calc(100vw - 54rem)) !important;
  --left-w: 0rem !important;
}
body.studio-expanded #page-workspace .panel-left,
body.studio-expanded #page-workspace .resize-handle[data-target="left"]{ visibility:hidden; }
/* comfortable reading padding inside the now-wide panel (no fullscreen centring) */
body.studio-expanded #studioPanel .canvas-view-body{ padding:1.25rem 1.75rem 2.5rem; }
body.studio-expanded #studioPanel .canvas-view-header{ padding:0.875rem 1.25rem; }
body.studio-expanded #studioPanel .studio-scroll{ padding:0.25rem 1.25rem 1.75rem; }

/* Canvas views (economic_picture etc.) render in a bare .c-card with no
   .lens-detail wrapper, so they have no width cap and sprawl edge-to-edge in
   fullscreen — the macro grids ache the eye on a wide monitor. Cap + centre
   the Economic Picture as one cohesive document. No effect in the narrow
   sidebar (panel width < max-width, so margin-auto collapses to 0). */
.c-card[data-type="economic_picture"]{
  /* widened 60→70→76rem (2026-07-08): the pulse analysis and macro grids earn
     the room; the :has() rule below widens the expanded-view budget to match */
  max-width:76rem;
  margin-left:auto;
  margin-right:auto;
}
/* When the expanded studio shows the Economic Picture, widen the content budget
   beyond the default 62.5rem — the pulse infographics use the extra field. */
body.studio-expanded #studioPanel .canvas-view-body:has(.c-card[data-type="economic_picture"]){
  padding:1.25rem max(1.5rem, calc((100vw - 76rem) / 2)) 2.5rem;
}

/* v6: icon-toggle swap for expand button */
.canvas-view-expand .icon-collapse{display:none}
body.studio-expanded .canvas-view-expand .icon-expand{display:none}
body.studio-expanded .canvas-view-expand .icon-collapse{display:block}


/* ── Moat drill-down (real agent output): card deep-dive + full analysis ── */
.moat-dd-grade{font-size:0.7rem;color:var(--fog);margin-bottom:0.5rem;font-weight:600}
.moat-dd-row{display:flex;gap:0.5rem;margin:0.4rem 0;align-items:flex-start}
.moat-dd-row p{margin:0;font-size:0.78rem;line-height:1.45}
.moat-dd-tag{flex:0 0 auto;font-size:0.6rem;font-weight:700;padding:0.1rem 0.4rem;border-radius:0.25rem;letter-spacing:0.03em}
.moat-dd-tag.bull{background:rgba(120,200,80,0.18);color:#9ce67a}
.moat-dd-tag.bear{background:rgba(230,90,90,0.18);color:#e68a8a}
.moat-dd-synth{font-size:0.78rem;line-height:1.45;margin:0.5rem 0;padding:0.5rem;background:rgba(255,255,255,0.03);border-radius:0.35rem}
.moat-dd-monitor{font-size:0.74rem;color:var(--fog);margin:0.4rem 0}
.moat-dd-monitor ul{margin:0.2rem 0 0;padding-left:1rem}
.moat-dd-fullbtn{margin-top:0.5rem;background:rgba(204,230,0,0.12);color:#cce600;border:1px solid rgba(204,230,0,0.3);border-radius:0.35rem;padding:0.35rem 0.7rem;font-size:0.72rem;font-weight:600;cursor:pointer}
.moat-dd-fullbtn:hover{background:rgba(204,230,0,0.2)}
.moat-dd-full{margin-top:0.5rem;font-size:0.78rem;line-height:1.55;padding:0.6rem;background:rgba(0,0,0,0.18);border-radius:0.35rem;border-left:2px solid rgba(204,230,0,0.4)}
.moat-dd-cites{margin-top:0.5rem;font-size:0.66rem;color:var(--fog);display:flex;flex-wrap:wrap;gap:0.25rem 0.6rem;align-items:center}
.moat-cite{color:#9ce6ff;text-decoration:none;white-space:nowrap}
.moat-cite:hover{text-decoration:underline}
/* card face tier word (replaces the fake-precise /100) */
.moat-tier-word{font-size:1.05rem;font-weight:700;letter-spacing:0.01em}
/* source citations drop-down: date · headline · newswire, per dimension/force */
.moat-dd-sources{margin-top:0.6rem;font-size:0.66rem}
.moat-dd-sources>summary{cursor:pointer;color:#9ce6ff;font-weight:600;list-style:none;user-select:none}
.moat-dd-sources>summary::-webkit-details-marker{display:none}
.moat-dd-sources[open]>summary{margin-bottom:0.35rem}
.moat-cite-list{display:flex;flex-direction:column;gap:0.2rem;border-left:2px solid rgba(156,230,255,0.25);padding-left:0.55rem}
.moat-cite-row{display:grid;grid-template-columns:5.5rem 1fr auto;gap:0.5rem;align-items:baseline;color:var(--text-secondary,#9aa);text-decoration:none;line-height:1.3;padding:0.12rem 0}
a.moat-cite-row:hover{color:#cfe;background:rgba(255,255,255,0.03)}
.moat-cite-date{color:var(--fog);font-variant-numeric:tabular-nums;white-space:nowrap}
.moat-cite-title{color:var(--text-primary,#dde);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.moat-cite-src{color:#9ce6ff;white-space:nowrap;font-size:0.6rem}
/* Decomposed deep-dive: grounded present state + sharp point lists + navigable full analysis */
.moat-dd-present{color:var(--text-primary,#eef0f7);font-size:0.95rem;font-weight:520;line-height:1.62;margin:0.2rem 0 0.7rem;letter-spacing:0.002em}
/* Per-factor news scroll — image cards of the articles that fed this dimension/force's reasoning. */
.moat-dimnews{margin:0.3rem 0 1.1rem}
.moat-dimnews-lbl{font-size:0.6rem;font-weight:800;letter-spacing:0.07em;text-transform:uppercase;color:#9ce6ff;display:flex;align-items:center;gap:0.4rem;margin-bottom:0.5rem}
.moat-dimnews-lbl span{font-size:0.56rem;font-weight:700;color:var(--fog);background:rgba(255,255,255,0.06);border-radius:0.6rem;padding:0.05rem 0.4rem;letter-spacing:0}
.moat-dimnews-rail{display:flex;gap:0.7rem;overflow-x:auto;padding-bottom:0.45rem;scroll-snap-type:x proximity;scrollbar-width:thin}
.moat-dimnews-rail::-webkit-scrollbar{height:6px}
.moat-dimnews-rail::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.14);border-radius:3px}
.moat-dimnews-card{flex:0 0 13rem;width:13rem;scroll-snap-align:start;display:flex;flex-direction:column;border:1px solid var(--hairline,rgba(255,255,255,0.1));border-radius:0.7rem;overflow:hidden;background:rgba(255,255,255,0.025);text-decoration:none;transition:transform .14s,border-color .14s,background .14s}
.moat-dimnews-card:hover{transform:translateY(-2px);border-color:rgba(156,230,255,0.42);background:rgba(255,255,255,0.05)}
.moat-dimnews-img{height:6.4rem;background-size:cover;background-position:center;background-color:rgba(255,255,255,0.04)}
.moat-dimnews-body{padding:0.55rem 0.65rem 0.7rem;display:flex;flex-direction:column;gap:0.32rem}
.moat-dimnews-meta{display:flex;justify-content:space-between;gap:0.5rem;font-size:0.57rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:#9ce6ff}
.moat-dimnews-meta span:last-child{color:var(--fog)}
.moat-dimnews-title{font-size:0.72rem;line-height:1.35;font-weight:600;color:var(--text-primary,#dde);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
/* Per-factor "Explored deeper" strip — text cards of articles the verification loop fetched to deepen a
   specific open idea (the claim that triggered the search + why the source helps). No images: the provenance
   is the payload. Amber/green "deeper" accent ties it to the Sources panel's Deeper Analysis group. */
.moat-deeper{margin:-0.4rem 0 1.1rem}
.moat-deeper-lbl{font-size:0.6rem;font-weight:800;letter-spacing:0.07em;text-transform:uppercase;color:#9ce67a;display:flex;align-items:center;gap:0.4rem;margin-bottom:0.5rem}
.moat-deeper-lbl span{font-size:0.56rem;font-weight:700;color:var(--fog);background:rgba(255,255,255,0.06);border-radius:0.6rem;padding:0.05rem 0.4rem;letter-spacing:0}
.moat-deeper-hint{font-size:0.54rem;font-weight:600;font-style:normal;text-transform:none;letter-spacing:0;color:var(--fog);opacity:0.7}
.moat-deeper-rail{display:flex;align-items:flex-start;gap:0.7rem;overflow-x:auto;padding-bottom:0.45rem;scroll-snap-type:x proximity;scrollbar-width:thin}
.moat-deeper-rail::-webkit-scrollbar{height:6px}
.moat-deeper-rail::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.14);border-radius:3px}
.moat-deeper-card{flex:0 0 15rem;width:15rem;scroll-snap-align:start;display:flex;flex-direction:column;gap:0.4rem;border:1px solid rgba(120,200,80,0.22);border-left:2px solid rgba(156,230,122,0.55);border-radius:0.7rem;padding:0.6rem 0.7rem 0.65rem;background:rgba(120,200,80,0.045);text-decoration:none;transition:transform .14s,border-color .14s,background .14s}
.moat-deeper-card:hover,.moat-deeper-card:focus-within{transform:translateY(-2px);border-color:rgba(156,230,122,0.5);background:rgba(120,200,80,0.08)}
.moat-deeper-claim{font-size:0.72rem;line-height:1.34;font-weight:680;color:var(--text-primary,#eef0f7);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.moat-deeper-also{font-size:0.6rem;line-height:1.36;font-weight:600;color:#ffd278;opacity:0.92}
.moat-deeper-why{font-size:0.66rem;line-height:1.42;color:var(--text-secondary,#9aa);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
/* hover/focus → reveal the full cut-off text */
.moat-deeper-card:hover .moat-deeper-claim,.moat-deeper-card:focus-within .moat-deeper-claim,
.moat-deeper-card:hover .moat-deeper-why,.moat-deeper-card:focus-within .moat-deeper-why{display:block;overflow:visible;-webkit-line-clamp:unset}
.moat-deeper-meta{display:flex;align-items:center;gap:0.5rem;font-size:0.57rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--fog)}
.moat-deeper-via{color:#9ce67a;background:rgba(120,200,80,0.14);border-radius:0.3rem;padding:0.05rem 0.32rem;letter-spacing:0.02em}
.moat-deeper-src{color:#9ce6ff}
/* Provenance chain — the lineage that led to this article (factor → open idea → source). Collapsed by
   default; revealed on hover/focus. A vertical path graph: nodes connected by a dashed edge with a label. */
.moat-deeper-chain{display:flex;flex-direction:column;max-height:0;opacity:0;overflow:hidden;transition:max-height .28s ease,opacity .2s ease,margin-top .28s ease;margin-top:0}
.moat-deeper-card:hover .moat-deeper-chain,.moat-deeper-card:focus-within .moat-deeper-chain{max-height:24rem;opacity:1;margin-top:0.55rem;border-top:1px dashed rgba(255,255,255,0.1);padding-top:0.6rem}
.mdc-node{display:flex;align-items:flex-start;gap:0.4rem;padding:0.32rem 0.5rem;border-radius:0.5rem;background:rgba(255,255,255,0.035);border:1px solid rgba(255,255,255,0.09)}
/* linkable nodes (① lead article, ③ deeper article) — the open-point node ② stays a plain label */
a.mdc-node{text-decoration:none;cursor:pointer;transition:border-color .14s,background .14s,transform .12s}
a.mdc-factor:hover{border-color:rgba(156,230,255,0.6);background:rgba(156,230,255,0.08);transform:translateX(1px)}
a.mdc-art:hover{border-color:rgba(156,230,122,0.72);background:rgba(120,200,80,0.1);transform:translateX(1px)}
/* JS-forced collapse on tab-return (overrides the :hover/:focus-within expansion until the user re-hovers) */
.moat-deeper-card.mdc-collapsed .moat-deeper-chain{max-height:0 !important;opacity:0 !important;margin-top:0 !important;border-top:none !important;padding-top:0 !important}
.moat-deeper-card.mdc-collapsed .moat-deeper-claim{-webkit-line-clamp:2 !important;display:-webkit-box !important;overflow:hidden !important}
.moat-deeper-card.mdc-collapsed .moat-deeper-why{-webkit-line-clamp:3 !important;display:-webkit-box !important;overflow:hidden !important}
.mdc-ico{font-size:0.78rem;line-height:1.1;flex:0 0 auto}
.mdc-txt{font-size:0.66rem;line-height:1.32;font-weight:680;color:var(--text-primary,#eef0f7)}
.mdc-txt em{display:block;font-style:normal;font-weight:600;font-size:0.56rem;color:var(--fog);margin-top:0.12rem}
.mdc-factor{border-color:rgba(156,230,255,0.34)}.mdc-factor .mdc-txt{color:#9ce6ff}
.mdc-idea{border-color:rgba(255,210,120,0.34)}.mdc-idea .mdc-txt{color:#ffd278;font-weight:600}
.mdc-art{border-color:rgba(156,230,122,0.46)}.mdc-art .mdc-txt{color:#9ce67a}
.mdc-edge{position:relative;margin-left:1rem;padding:0.2rem 0 0.2rem 0.85rem;border-left:1.5px dashed rgba(255,255,255,0.24);font-size:0.53rem;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--fog)}
.mdc-edge::after{content:"";position:absolute;left:-4.5px;bottom:0.05rem;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid rgba(255,255,255,0.34)}
.moat-dd-pts{margin:0.1rem 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:0.25rem}
.moat-dd-pts li{position:relative;padding-left:0.9rem;font-size:0.75rem;line-height:1.4;color:var(--text-secondary,#9aa)}
.moat-dd-pts li::before{content:"";position:absolute;left:0;top:0.5rem;width:4px;height:4px;border-radius:50%;background:currentColor;opacity:0.5}
.moat-fa{margin-top:0.4rem}
.moat-fa-nav{display:flex;flex-wrap:wrap;gap:0.3rem;position:sticky;top:0;padding:0.3rem 0;background:var(--bg-secondary,#0d0f17);z-index:2;border-bottom:1px solid var(--hairline,rgba(255,255,255,0.08));margin-bottom:0.6rem}
.moat-fa-navbtn{font-size:0.62rem;font-weight:700;letter-spacing:0.03em;text-transform:uppercase;padding:0.25rem 0.6rem;border-radius:0.5rem;border:1px solid var(--hairline,rgba(255,255,255,0.12));background:transparent;color:var(--fog);cursor:pointer;transition:all .12s}
.moat-fa-navbtn:hover{color:var(--text-primary,#dde);border-color:rgba(156,230,255,0.4)}
.moat-fa-navbtn.active{background:rgba(156,230,255,0.14);color:#9ce6ff;border-color:rgba(156,230,255,0.5)}
.moat-fa-content,.moat-fa-sec,.moat-sec-inner{width:100%}
.moat-fa-sec.hidden{display:none}
.moat-fa-sec p{font-size:0.82rem;line-height:1.62;color:var(--text-primary,#dde);margin:0 0 0.7rem}
.moat-fa-sec ul{margin:0 0 0.7rem;padding-left:1.1rem;display:flex;flex-direction:column;gap:0.3rem}
.moat-fa-sec li{font-size:0.8rem;line-height:1.5;color:var(--text-secondary,#9aa)}
/* Section inner: AI headline → summary band → docs-style [guide rail | wide content] row. Guide + content
   are both tall, so no empty gap, and the guide rail sticks while you read. */
.moat-sec-headline{font-size:1.3rem;font-weight:750;line-height:1.25;color:var(--text-primary,#f0f2fa);margin:0.2rem 0 0.9rem;letter-spacing:-0.01em}
.moat-sec-summary{background:rgba(156,230,255,0.06);border:1px solid var(--hairline,rgba(156,230,255,0.18));border-radius:0.6rem;padding:0.8rem 1rem;margin-bottom:1.2rem}
.moat-sec-summary-lbl{display:block;font-size:0.6rem;font-weight:800;letter-spacing:0.08em;text-transform:uppercase;color:#9ce6ff;margin-bottom:0.4rem}
.moat-sec-summary p{margin:0;font-size:0.88rem;line-height:1.62;font-weight:450;color:var(--text-primary,#eaecf5)}
.moat-sec-body{display:grid;grid-template-columns:13.5rem 1fr;gap:1.6rem;align-items:start}
@media (max-width:820px){.moat-sec-body{grid-template-columns:1fr}}
.moat-sub-guide{position:sticky;top:0.4rem;align-self:start;display:flex;flex-direction:column;gap:0.15rem}
.moat-sub-guide-lbl{font-size:0.56rem;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:var(--fog);margin-bottom:0.35rem;padding-left:0.45rem}
.moat-sub-navbtn{display:flex;align-items:center;gap:0.5rem;text-align:left;font-size:0.73rem;line-height:1.3;padding:0.4rem 0.5rem;border-radius:0.45rem;border:1px solid transparent;background:transparent;color:var(--text-secondary,#9aa);cursor:pointer;transition:all .12s}
.moat-sub-navbtn:hover{color:var(--text-primary,#dde);background:rgba(255,255,255,0.04)}
.moat-sub-navbtn.active{background:rgba(156,230,255,0.12);color:#cfe;border-color:rgba(156,230,255,0.3);font-weight:600}
.moat-sub-navnum{flex:0 0 auto;width:1.05rem;height:1.05rem;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,0.06);font-size:0.6rem;font-weight:700}
.moat-sub-navbtn.active .moat-sub-navnum{background:rgba(156,230,255,0.3);color:#0d0f17}
.moat-sub-content{min-width:0}
.moat-sub-pane.hidden{display:none}
.moat-sub-h{font-size:1.08rem;font-weight:750;color:var(--text-primary,#f0f2fa);margin:0 0 0.75rem;line-height:1.3;padding-bottom:0.5rem;border-bottom:1px solid var(--hairline,rgba(255,255,255,0.1))}
.moat-sub-pane p{font-size:0.86rem;line-height:1.7;font-weight:450;color:var(--text-primary,#e3e6f0);margin:0 0 0.85rem;max-width:76ch}
.moat-sub-pane ul{max-width:76ch}
.moat-sub-pane li{font-weight:450}
/* Plain sections (cross-pattern / what-would-change): headline + full-width prose, no narrow column */
.moat-sec-plain p{font-size:0.9rem;line-height:1.68;font-weight:450;color:var(--text-primary,#e3e6f0);max-width:none;margin:0 0 0.8rem}
.moat-sec-plain ul{max-width:none;padding-left:1.2rem;display:flex;flex-direction:column;gap:0.55rem;margin:0.2rem 0}
.moat-sec-plain li{font-size:0.9rem;line-height:1.62;font-weight:450;color:var(--text-primary,#e3e6f0)}
/* Sectioned, trust-framed source groups (Filings & Transcripts / News & Reporting / Financial Data) */
.moat-cite-group{margin-bottom:0.45rem}
.moat-cite-group:last-child{margin-bottom:0}
.moat-cite-group-h{display:flex;align-items:baseline;gap:0.4rem;font-size:0.58rem;font-weight:700;letter-spacing:0.05em;text-transform:uppercase;color:#9ce6ff;margin:0.1rem 0 0.2rem}
.moat-cite-group-note{font-weight:600;letter-spacing:0.02em;text-transform:none;color:var(--fog);font-size:0.56rem}
/* Quant value-creation gate — collapsed into one compact drop-down (reiterated info, kept for the AI summary) */
.moat-quant{margin:1.2rem 0 0.4rem;border:1px solid var(--hairline,rgba(255,255,255,0.1));border-radius:0.6rem;background:rgba(255,255,255,0.02)}
.moat-quant>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:0.7rem;padding:0.6rem 0.9rem;user-select:none}
.moat-quant>summary::-webkit-details-marker{display:none}
.moat-quant-lbl{font-size:0.62rem;font-weight:800;letter-spacing:0.06em;text-transform:uppercase;color:var(--fog)}
.moat-quant-mini{font-size:0.74rem;font-weight:650;font-variant-numeric:tabular-nums}
.moat-quant-mini.pos{color:#9ce67a}.moat-quant-mini.neg{color:#e88a8a}
.moat-quant-hint{margin-left:auto;font-size:0.6rem;color:#9ce6ff;font-weight:600}
.moat-quant[open]>summary{border-bottom:1px solid var(--hairline,rgba(255,255,255,0.08))}
.moat-vc-inner{padding:0.9rem}
/* Business model: plain-English overview lead above the navigable dimension sections */
/* Lead callout — same words, editorial treatment: a drop-cap initial, highlighted key figures, and a
   balanced two-column flow so the dense overview reads like a magazine intro, not a wall of text. */
.moat-bm-overview{font-size:0.9rem;line-height:1.78;font-weight:450;color:var(--ink,#e6e9f2);
  margin:0.6rem 0 1.4rem;padding:1.2rem 1.4rem;border-radius:0.7rem;
  background:linear-gradient(180deg,rgba(255,255,255,0.052) 0%,rgba(255,255,255,0.016) 100%);
  border:1px solid rgba(255,255,255,0.08);border-left:3px solid rgba(204,255,0,0.5);
  columns:2;column-gap:2.4rem;column-rule:1px solid rgba(255,255,255,0.07);text-wrap:pretty}
@media(max-width:760px){.moat-bm-overview{columns:1}}
/* drop cap — the signature accent that anchors the block */
.moat-bm-overview::first-letter{float:left;font-family:var(--fd,Georgia,serif);font-size:3rem;line-height:0.78;
  font-weight:700;color:var(--green,#cce600);margin:0.3rem 0.55rem 0 0}
/* highlighted figures — a soft accent "highlighter" behind the numbers that carry the story */
.bm-fig{color:var(--snow,#f4f6fb);font-weight:680;font-variant-numeric:tabular-nums;
  background:linear-gradient(180deg,transparent 60%,rgba(204,255,0,0.22) 60%);
  padding:0 0.08em;border-radius:0.12em;white-space:nowrap}
/* Engaging dimension cards (the old BMC visual) → click to navigate into the deep detail below */
.bm-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.7rem;margin-bottom:1.2rem}
@media(max-width:640px){.bm-grid{grid-template-columns:1fr}}
.bm-card{text-align:left;display:flex;flex-direction:column;gap:0.3rem;padding:0.85rem 0.95rem;border-radius:0.7rem;border:1px solid var(--hairline,rgba(255,255,255,0.1));border-top:3px solid var(--bm-c,#cce600);background:rgba(255,255,255,0.025);cursor:pointer;transition:transform .12s,background .12s,border-color .12s}
.bm-card:hover{transform:translateY(-2px);background:rgba(255,255,255,0.05)}
.bm-card.active{background:color-mix(in srgb,var(--bm-c) 12%,transparent);border-color:var(--bm-c,#cce600)}
.bm-card-icon{font-size:1.15rem;line-height:1}
.bm-card-name{font-size:0.84rem;font-weight:700;color:var(--text-primary,#eef)}
.bm-card-sum{font-size:0.7rem;line-height:1.42;color:var(--text-secondary,#9aa);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bm-detail-pane{border-top:1px solid var(--hairline,rgba(255,255,255,0.08));padding-top:1rem}
.bm-detail.hidden{display:none}
/* ── Moat Pulse — combined news + creator quotes, one bull/bear toggle (engaging top panel) ───── */
.moat-pulse{margin:1.1rem 0;border:1px solid var(--hairline,rgba(255,255,255,0.12));border-radius:0.8rem;background:linear-gradient(180deg,rgba(156,230,255,0.08),rgba(255,255,255,0.045));overflow:hidden}
.pulse-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:0.9rem 1.1rem;border-bottom:1px solid var(--hairline,rgba(255,255,255,0.08))}
.pulse-head-main{min-width:0;flex:1}
.pulse-title{font-size:0.95rem;font-weight:750;color:var(--text-primary,#eef);letter-spacing:-0.01em}
.pulse-sub{font-size:0.7rem;line-height:1.4;color:var(--fog);margin-top:0.2rem;max-width:70ch}
.pulse-toggle{display:flex;gap:0.4rem;flex:0 0 auto}
/* at-a-glance balance bar (replaces the dense subtitle) */
.pulse-balance{display:flex;align-items:center;gap:0.75rem;margin-top:0.65rem;max-width:36rem}
.pulse-bal-lbl{font-size:0.74rem;font-weight:750;white-space:nowrap;letter-spacing:0.01em}
.pulse-bal-lbl.up{color:#9ce67a}
.pulse-bal-lbl.down{color:#e88a8a}
.pulse-bal-bar{flex:1;height:0.7rem;border-radius:0.35rem;background:rgba(232,138,138,0.38);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,0.06)}
.pulse-bal-up{height:100%;background:linear-gradient(90deg,#7cd66f,#9ce67a);border-radius:0.35rem 0 0 0.35rem;box-shadow:0 0 10px rgba(156,230,122,0.4);transition:width .3s}
/* ── Moat key-stats band — engaging headline tiles under the high-level summary ──────────────── */
.moat-keystats{display:grid;grid-template-columns:repeat(auto-fit,minmax(15.5rem,1fr));gap:1.1rem;margin:1.6rem 0 0.6rem}
/* Each tile = a vertical card: accent-tinted wash · eyebrow label on top · [visual + hero] below. Generous
   height so the headline numbers breathe — this band is the first thing the eye lands on. */
.mks-tile{position:relative;overflow:hidden;display:flex;flex-direction:column;gap:1.05rem;padding:1.5rem 1.5rem 1.45rem;min-height:9.5rem;border:1px solid rgba(255,255,255,0.085);border-radius:1.15rem;
  background:radial-gradient(135% 115% at 0% 0%, color-mix(in srgb, var(--accent,#9ce67a) 13%, transparent), transparent 56%), rgba(255,255,255,0.015);
  box-shadow:0 0.6rem 1.6rem rgba(0,0,0,0.22);transition:transform .16s,box-shadow .16s,border-color .16s}
.mks-tile:hover{transform:translateY(-0.15rem);border-color:color-mix(in srgb,var(--accent,#9ce67a) 40%,transparent);box-shadow:0 0.95rem 2.1rem rgba(0,0,0,0.32)}
.mks-eyebrow{display:flex;align-items:center;gap:0.45rem;font-size:0.6rem;font-weight:800;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent,#9ce67a)}
.mks-eyebrow::before{content:'';width:0.46rem;height:0.46rem;border-radius:0.13rem;background:var(--accent,#9ce67a);box-shadow:0 0 9px color-mix(in srgb,var(--accent,#9ce67a) 75%,transparent)}
.mks-body{display:flex;align-items:center;gap:1.2rem;flex:1}
.mks-vis{flex:0 0 auto;display:flex;align-items:center;justify-content:center}
.mks-hero{min-width:0;display:flex;flex-direction:column;gap:0.34rem}
.mks-hero-v{font-size:1.85rem;font-weight:840;color:var(--text-primary,#f1f3fb);letter-spacing:-0.025em;text-transform:capitalize;line-height:1.04;display:flex;align-items:center;flex-wrap:wrap;gap:0.4rem}
.mks-hero-v small{font-size:0.5em;font-weight:700;color:var(--fog);letter-spacing:0;text-transform:none}
.mks-hero-l{font-size:0.63rem;color:var(--fog);text-transform:uppercase;letter-spacing:0.05em;font-weight:700;line-height:1.4}
.mks-chip{font-size:0.5rem;font-weight:800;text-transform:uppercase;letter-spacing:0.05em;color:#0a0a0a;background:var(--accent,#9ce67a);border-radius:0.3rem;padding:0.16rem 0.42rem}
/* overall-grade ring — gradient stroke + a soft accent halo behind it so the headline number glows */
.mks-ringwrap{position:relative;display:grid;place-items:center;flex:0 0 auto}
.mks-ringwrap::before{content:'';position:absolute;width:5.8rem;height:5.8rem;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent,#9ce67a) 30%,transparent),transparent 66%);filter:blur(3px);z-index:0}
.mks-ringwrap .mks-ring{position:relative;z-index:1}
.mks-ring{width:5.35rem;height:5.35rem}
/* Overall-moat visual = a liquid-filled SHIELD (a moat is a defensive barrier). Accent "water" rises to the
   score with a rippling, gently-swelling surface, a glowing crest line, and a glowing shield edge. */
.moat-shield{overflow:visible}
.moat-shield-edge{stroke-width:1.8;stroke-linejoin:round;filter:drop-shadow(0 0 2.5px color-mix(in srgb,var(--accent,#9ce67a) 80%,transparent)) drop-shadow(0 0 8px color-mix(in srgb,var(--accent,#9ce67a) 40%,transparent))}
.moat-shield-surf{filter:drop-shadow(0 0 3px color-mix(in srgb,var(--accent,#9ce67a) 90%,transparent))}
.moat-shield-liquid{transform-origin:32px 36px;animation:moatSwell 3.4s ease-in-out infinite}
@keyframes moatSwell{0%,100%{transform:translateY(0.5px)}50%{transform:translateY(-0.8px)}}
.moat-shield-gloss{mix-blend-mode:screen;opacity:0.9;pointer-events:none}
.moat-bubbles .mb{opacity:0}
.moat-bubbles .mb1{animation:moatBub 3.6s ease-in infinite}
.moat-bubbles .mb2{animation:moatBub 4.5s ease-in infinite .9s}
.moat-bubbles .mb3{animation:moatBub 5.2s ease-in infinite 1.7s}
.moat-bubbles .mb4{animation:moatBub 3.1s ease-in infinite 2.4s}
@keyframes moatBub{0%{transform:translateY(3px);opacity:0}14%{opacity:0.75}70%{opacity:0.5}100%{transform:translateY(-40px);opacity:0}}
.moat-shield-score{font-size:18px;font-weight:850;font-family:inherit;letter-spacing:-0.02em;fill:#fff;stroke:rgba(0,0,0,0.42);stroke-width:0.7;paint-order:stroke;filter:drop-shadow(0 1px 1.5px rgba(0,0,0,0.45))}
/* value creation — dual ROIC/WACC bars (ROIC cyan, not green) */
/* value creation = ROIC vs WACC bars on a shared scale; the ROIC overhang past the WACC hurdle line glows = the
   spread. Bars grow in on load. */
.mks-vcg{width:8.7rem;height:auto;overflow:visible}
.mks-vcg-k{font-size:6.6px;font-weight:800;fill:var(--fog);letter-spacing:0.05em;dominant-baseline:central}
.mks-vcg-v{font-size:8.6px;font-weight:850;fill:var(--text-secondary,#cdd3e0);text-anchor:end;dominant-baseline:central;font-variant-numeric:tabular-nums}
.mks-vcg-track{fill:rgba(255,255,255,0.07)}
.mks-vcg-roic{transform-box:fill-box;transform-origin:left center;filter:drop-shadow(0 0 4px color-mix(in srgb,var(--acc,#46cfd6) 50%,transparent));animation:vcGrow .85s cubic-bezier(.2,.85,.25,1) both}
.mks-vcg-wacc{fill:#6b7689;transform-box:fill-box;transform-origin:left center;animation:vcGrow .85s cubic-bezier(.2,.85,.25,1) .1s both}
@keyframes vcGrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.mks-vcg-hurdle{stroke:#fff;stroke-opacity:0.5;stroke-width:1;stroke-dasharray:2 2}
/* the spread hero (+48) softly pulses so the headline value-creation number breathes */
.mks-spread{animation:vcPulse 2.6s ease-in-out infinite}
@keyframes vcPulse{0%,100%{text-shadow:0 0 6px color-mix(in srgb,currentColor 35%,transparent)}50%{text-shadow:0 0 16px color-mix(in srgb,currentColor 65%,transparent)}}
/* strongest pillar — the dimension's own icon in an accent-tinted badge */
/* strongest pillar — the dimension's icon in a glowing badge: a bright accent arc sweeps the border, the
   whole badge pulses, and the icon gently breathes. */
.mks-badge{position:relative;width:4.4rem;height:4.4rem;border-radius:1.2rem;display:grid;place-items:center;
  background:radial-gradient(circle at 32% 26%,color-mix(in srgb,var(--accent,#8f7cff) 30%,transparent),color-mix(in srgb,var(--accent,#8f7cff) 11%,transparent));
  border:1px solid color-mix(in srgb,var(--accent,#8f7cff) 40%,transparent);
  animation:pillarGlow 2.8s ease-in-out infinite}
.mks-badge::before{content:'';position:absolute;inset:-1px;border-radius:inherit;padding:2px;
  background:conic-gradient(from 0deg,transparent 0deg,color-mix(in srgb,var(--accent,#8f7cff) 95%,transparent) 70deg,transparent 150deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;
  animation:pillarSpin 4.5s linear infinite;pointer-events:none}
@keyframes pillarSpin{to{transform:rotate(360deg)}}
@keyframes pillarGlow{0%,100%{box-shadow:inset 0 0 14px color-mix(in srgb,var(--accent,#8f7cff) 14%,transparent),0 0 8px color-mix(in srgb,var(--accent,#8f7cff) 28%,transparent)}50%{box-shadow:inset 0 0 17px color-mix(in srgb,var(--accent,#8f7cff) 24%,transparent),0 0 18px color-mix(in srgb,var(--accent,#8f7cff) 55%,transparent)}}
.mks-badge-ico{width:2.2rem;height:2.2rem;color:var(--accent,#8f7cff);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--accent,#8f7cff) 50%,transparent));animation:pillarBreathe 2.8s ease-in-out infinite}
@keyframes pillarBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.09)}}
.mks-badge-sc{font-size:1.45rem;font-weight:850;color:var(--accent,#8f7cff)}
/* competitive pressure — Porter forces as bars, each tinted by its own severity (matches the rail); bars rise
   in on load and the biggest threat keeps pulsing. */
.mks-pbars{display:flex;align-items:flex-end;gap:0.4rem;height:4rem}
.mks-pbar{width:0.72rem;border-radius:0.22rem 0.22rem 0.1rem 0.1rem;align-self:flex-end;min-height:0.5rem;
  background:linear-gradient(180deg,color-mix(in srgb,var(--bar,#e8705a) 62%,#fff 38%),var(--bar,#e8705a));
  box-shadow:0 0 6px color-mix(in srgb,var(--bar,#e8705a) 42%,transparent);
  transform-origin:bottom;animation:pbarRise .65s cubic-bezier(.2,.9,.2,1) both}
.mks-pbar:nth-child(2){animation-delay:.07s}
.mks-pbar:nth-child(3){animation-delay:.14s}
.mks-pbar:nth-child(4){animation-delay:.21s}
.mks-pbar:nth-child(5){animation-delay:.28s}
@keyframes pbarRise{0%{transform:scaleY(0);opacity:0}100%{transform:scaleY(1);opacity:1}}
.mks-pbar.hot{animation:pbarRise .65s cubic-bezier(.2,.9,.2,1) both,pbarPulse 1.9s ease-in-out .65s infinite}
@keyframes pbarPulse{0%,100%{box-shadow:0 0 6px color-mix(in srgb,var(--bar,#e8705a) 42%,transparent)}50%{box-shadow:0 0 14px color-mix(in srgb,var(--bar,#e8705a) 90%,transparent)}}
.pulse-tab{font-size:0.72rem;font-weight:650;padding:0.4rem 0.75rem;border-radius:0.5rem;border:1px solid var(--hairline,rgba(255,255,255,0.12));background:transparent;color:var(--text-secondary,#9aa);cursor:pointer;white-space:nowrap;transition:all .12s}
.pulse-tab.up.active{background:rgba(120,200,80,0.14);color:#9ce67a;border-color:rgba(120,200,80,0.4)}
.pulse-tab.down.active{background:rgba(230,90,90,0.14);color:#e88a8a;border-color:rgba(230,90,90,0.4)}
.pulse-stance{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;padding:1rem 1.1rem}
.pulse-stance.hidden{display:none}
@media(max-width:760px){.pulse-stance{grid-template-columns:1fr}}
.pulse-col{display:flex;flex-direction:column;gap:0.55rem;min-width:0}
.pulse-col-h{font-size:0.58rem;font-weight:800;letter-spacing:0.07em;text-transform:uppercase;color:#9ce6ff;display:flex;align-items:center;gap:0.4rem}
.pulse-col-n{font-size:0.56rem;font-weight:700;color:var(--fog);background:rgba(255,255,255,0.06);border-radius:0.6rem;padding:0.05rem 0.4rem;letter-spacing:0}
.pulse-col-body{display:flex;flex-direction:column;gap:0.55rem;min-width:0}
.pulse-col-body.pulse-scroll{max-height:30rem;overflow-y:auto;padding-right:0.35rem;scrollbar-width:thin}
.pulse-col-body.pulse-scroll::-webkit-scrollbar{width:6px}
.pulse-col-body.pulse-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.14);border-radius:3px}
.pulse-empty{font-size:0.74rem;color:var(--fog);font-style:italic;padding:0.6rem 0}
.pulse-news{display:flex;gap:0.65rem;text-decoration:none;padding:0.5rem;border-radius:0.55rem;border:1px solid var(--hairline,rgba(255,255,255,0.07));background:rgba(255,255,255,0.02);transition:background .12s,border-color .12s}
.pulse-news:hover{background:rgba(255,255,255,0.05);border-color:rgba(156,230,255,0.3)}
.pulse-news-img{flex:0 0 84px;height:60px;border-radius:0.4rem;overflow:hidden;background:linear-gradient(135deg,#1a1f2e,#0e1118)}
.pulse-news-img img{width:100%;height:100%;object-fit:cover}
.pulse-news-body{min-width:0;display:flex;flex-direction:column;gap:0.22rem}
.pulse-news-meta{display:flex;justify-content:space-between;font-size:0.58rem;color:var(--fog)}
.pulse-news-src{font-weight:700;color:#9ce6ff}
.pulse-news-title{font-size:0.76rem;font-weight:650;line-height:1.3;color:var(--text-primary,#e6e9f2)}
.pulse-news-why{font-size:0.7rem;line-height:1.45;color:var(--text-secondary,#aab)}   /* AI why — FULLY readable, no clamp */
.pulse-quote{padding:0.6rem 0.7rem;border-radius:0.55rem;border:1px solid var(--hairline,rgba(255,255,255,0.07));background:rgba(255,255,255,0.02)}
.pulse-q-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.4rem}
.pulse-q-av img,.pulse-q-noav{width:1.7rem;height:1.7rem;border-radius:50%;object-fit:cover;flex:0 0 auto}
.pulse-q-noav{display:grid;place-items:center;background:rgba(156,230,255,0.18);color:#9ce6ff;font-weight:800;font-size:0.7rem}
.pulse-q-id{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.pulse-q-id b{font-size:0.72rem;color:var(--text-primary,#e6e9f2)}
.pulse-q-id span{font-size:0.58rem;color:var(--fog);font-variant-numeric:tabular-nums}
.pulse-q-text{font-size:0.74rem;line-height:1.5;color:var(--text-secondary,#aab);margin:0;font-style:italic}
.pulse-quote{transition:border-color .12s,background .12s}
.pulse-quote:hover{border-color:rgba(156,230,255,0.25);background:rgba(255,255,255,0.035)}
/* wider verbatim transcript excerpt — hidden until hover, then slides open (the AI completes the cut-off
   thought; the key quote is bolded). Scrolls if long. */
.pulse-q-chunk{font-size:0.66rem;line-height:1.55;color:var(--fog);max-height:0;opacity:0;overflow:hidden;transition:max-height .2s ease,opacity .2s ease,margin-top .2s ease;margin-top:0}
.pulse-q-chunk strong{color:var(--text-primary,#e6e9f2);font-weight:680}
.pulse-quote:hover .pulse-q-chunk{max-height:16rem;overflow-y:auto;opacity:0.95;margin-top:0.45rem;padding-top:0.4rem;border-top:1px solid var(--hairline,rgba(255,255,255,0.07))}
/* watch-the-video link (replaces the old alpha/win credibility line) */
.pulse-q-vid{display:inline-block;margin-top:0.5rem;font-size:0.62rem;font-weight:650;color:#9ce6ff;text-decoration:none;line-height:1.35;opacity:0.85;transition:opacity .12s}
.pulse-q-vid:hover{opacity:1;text-decoration:underline}
/* ── Moat news — bull/bear nav + cover-image cards (spacious) ─────────────────────────────────── */
.moat-news-nav{display:flex;gap:0.5rem;margin:0.4rem 0 1rem}
.moat-news-tab{display:flex;align-items:center;gap:0.45rem;font-size:0.74rem;font-weight:650;padding:0.5rem 0.95rem;border-radius:0.6rem;border:1px solid var(--hairline,rgba(255,255,255,0.12));background:transparent;color:var(--text-secondary,#9aa);cursor:pointer;transition:all .14s}
.moat-news-tab b{font-size:0.72rem;font-weight:800;opacity:0.85}
.moat-news-tab:hover{color:var(--text-primary,#dde)}
.moat-news-tab.strengthen.active{background:rgba(120,200,80,0.14);color:#9ce67a;border-color:rgba(120,200,80,0.4)}
.moat-news-tab.threaten.active{background:rgba(230,90,90,0.14);color:#e88a8a;border-color:rgba(230,90,90,0.4)}
.moat-news-dot{width:7px;height:7px;border-radius:50%}
.moat-news-dot.strengthen{background:#9ce67a}.moat-news-dot.threaten{background:#e88a8a}
.mn-pane.hidden{display:none}
/* Horizontal-scroll rail of compact, wide, short cards (fundamentals-canvas style) */
.mn-rail{display:flex;gap:0.8rem;overflow-x:auto;padding:0.2rem 0.1rem 0.7rem;scroll-snap-type:x proximity;scrollbar-width:thin}
.mn-rail .mn-card{flex:0 0 300px;scroll-snap-align:start}
.mn-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.mn-empty{font-size:0.78rem;color:var(--fog);font-style:italic;padding:1.5rem 0}
.mn-card{display:flex;flex-direction:column;border-radius:0.7rem;overflow:hidden;background:var(--bg-tertiary,rgba(255,255,255,0.025));border:1px solid var(--hairline,rgba(255,255,255,0.08));text-decoration:none;transition:transform .14s,border-color .14s}
.mn-card:hover{transform:translateY(-2px);border-color:rgba(156,230,255,0.35)}
.mn-card-cover{position:relative;aspect-ratio:2/1;background:linear-gradient(135deg,#1a1f2e,#0e1118);overflow:hidden}
.mn-card-img{width:100%;height:100%;object-fit:cover;display:block}
.mn-card.mn-noimg .mn-card-img{display:none}
/* No-image cards keep the same 16:9 cover with a tasteful gradient + the source name → uniform wall */
.mn-card-fallback{position:absolute;inset:0;display:grid;place-items:center}
.mn-fallback-src{font-size:0.92rem;font-weight:750;letter-spacing:0.01em;color:rgba(255,255,255,0.92)}
.mn-card.mn-strengthen .mn-card-fallback{background:linear-gradient(135deg,#2c4a22,#172a12)}
.mn-card.mn-threaten .mn-card-fallback{background:linear-gradient(135deg,#4a2222,#2a1212)}
.mn-card-tag{position:absolute;top:0.55rem;left:0.55rem;font-size:0.54rem;font-weight:800;letter-spacing:0.05em;padding:0.18rem 0.45rem;border-radius:0.35rem;backdrop-filter:blur(4px);z-index:1}
.mn-card-tag.strengthen{background:rgba(120,200,80,0.85);color:#0d1108}
.mn-card-tag.threaten{background:rgba(230,90,90,0.85);color:#1a0808}
.mn-card-body{padding:0.7rem 0.8rem 0.85rem;display:flex;flex-direction:column;gap:0.35rem}
.mn-card-meta{display:flex;justify-content:space-between;align-items:baseline;font-size:0.6rem;color:var(--fog)}
.mn-card-src{font-weight:700;color:#9ce6ff}
.mn-card-title{font-size:0.8rem;font-weight:600;line-height:1.32;color:var(--text-primary,#e6e9f2);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mn-card-why{font-size:0.68rem;line-height:1.4;color:var(--text-secondary,#9aa);font-style:italic;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.mn-card.mn-strengthen.mn-noimg{border-left:3px solid #9ce67a}
.mn-card.mn-threaten.mn-noimg{border-left:3px solid #e88a8a}
/* Verification cites: the article row + WHY it confirms the (purposely-fetched) claim */
.moat-verify-cite{padding:0.15rem 0 0.35rem}
.moat-verify-why{font-size:0.66rem;line-height:1.45;color:var(--text-secondary,#9aa);padding-left:0.55rem;margin-top:0.15rem}
.moat-verify-tag{display:inline-block;font-size:0.54rem;font-weight:800;letter-spacing:0.04em;text-transform:uppercase;color:#9ce67a;background:rgba(120,200,80,0.14);border-radius:0.3rem;padding:0.05rem 0.32rem;margin-right:0.35rem}
.moat-verify-claim{display:block;color:var(--fog);font-style:italic;margin-top:0.1rem}
/* AI summary rich format: tailwind/risk 'why' + swing-factor / bottom-line rows */
.ai-sum-why{display:block;font-size:0.62rem;color:var(--fog);line-height:1.3;margin-top:0.1rem}
/* Swing factor / consensus / bottom line — distinct callout cards with a colored accent (was a plain stack) */
[data-ai-summary-extra]{margin-top:1.75rem;padding-top:1.6rem;border-top:1px solid var(--hairline,rgba(255,255,255,0.08));display:grid;grid-template-columns:1fr 1fr;gap:1rem}
/* Swing / Consensus / Bottom-line — same card language as the strengths/risks columns (gradient surface,
   rim border, glowing accent bar, mono label) so the whole summary reads as one family. Laid out on the
   same 2-up rhythm: swing + consensus side-by-side, bottom-line spans the row. */
[data-ai-summary-extra]{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;margin-top:0.75rem}
@media (max-width:48rem){[data-ai-summary-extra]{grid-template-columns:1fr}}
.ai-sum-extra-row{position:relative;display:flex;flex-direction:column;gap:0.45rem;padding:0.8125rem 0.9375rem 0.75rem 1.0625rem;border-radius:0.5rem;background:linear-gradient(180deg,rgba(0,0,0,0.18) 0%,rgba(0,0,0,0.04) 100%);border:0.0625rem solid var(--rim);line-height:1.6;overflow:hidden}
.ai-sum-extra-row::before{content:'';position:absolute;left:0;top:0.5rem;bottom:0.5rem;width:0.1875rem;border-radius:0 0.125rem 0.125rem 0;background:linear-gradient(180deg,#cce600 0%,rgba(204,255,0,0.35) 100%);box-shadow:0 0 6px rgba(204,255,0,0.35)}
.ai-sum-extra-row.consensus::before{background:linear-gradient(180deg,#c9a0ff 0%,rgba(201,160,255,0.35) 100%);box-shadow:0 0 6px rgba(201,160,255,0.35)}
.ai-sum-extra-row.bottom{grid-column:1 / -1;background:linear-gradient(180deg,rgba(156,230,255,0.07) 0%,rgba(156,230,255,0.01) 100%)}
.ai-sum-extra-row.bottom::before{background:linear-gradient(180deg,#9ce6ff 0%,rgba(156,230,255,0.35) 100%);box-shadow:0 0 6px rgba(156,230,255,0.35)}
.ai-sum-extra-k{display:flex;align-items:center;gap:0.4375rem;font-family:var(--fm);color:#cce600;font-weight:800;text-transform:uppercase;font-size:0.6875rem;letter-spacing:0.1em}
.ai-sum-extra-row.bottom .ai-sum-extra-k{color:#9ce6ff}
.ai-sum-extra-row.consensus .ai-sum-extra-k{color:#c9a0ff}
.ai-sum-extra-v{color:var(--cloud);font-size:0.8125rem;font-weight:450;line-height:1.6}
/* The breakdown is a DISTINCT, spacious panel (own surface + generous padding) so the expanded detail reads
   as its own section, clearly separated from the always-visible summary — not crammed underneath it. */
.ai-summary-more{margin-top:1.25rem;max-height:6000px;opacity:1;padding:1.5rem 1.6rem;border-radius:0.85rem;background:rgba(255,255,255,0.014);border:1px solid var(--hairline,rgba(255,255,255,0.055));overflow:hidden;transition:max-height .38s ease,opacity .3s ease,padding .3s ease,margin .3s ease}
.ai-summary-more.collapsed{max-height:0;opacity:0;margin:0;padding-top:0;padding-bottom:0;border-color:transparent}
.ai-summary-more > .ai-summary-cols{margin-top:0}
/* the value-creation (STEP 1) banner sits inside the drawer — give it real breathing room from the rows above */
.ai-summary-more .moat-vc-banner{margin-top:1.75rem;margin-bottom:0}
.ai-summary-toggle{display:flex;align-items:center;justify-content:center;gap:0.5rem;width:100%;margin-top:1rem;padding:0.7rem;font-size:0.72rem;font-weight:700;letter-spacing:0.04em;color:#cce600;background:linear-gradient(180deg,rgba(204,255,0,0.03),rgba(204,255,0,0.08));border:1px solid rgba(204,255,0,0.18);border-radius:0.6rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.ai-summary-toggle:hover{background:#cce600;color:#0a0a0a;border-color:#cce600}
.ai-sum-tog-caret{font-size:0.62rem}
.moat-news-item-why{font-size:0.68rem;color:var(--fog);margin:0.15rem 0;line-height:1.35;font-style:italic}
/* snippet: hidden by default, slides open on hover for an at-a-glance read of the source text */
.moat-news-item-snippet{font-size:0.64rem;color:var(--text-secondary,#9aa);line-height:1.4;max-height:0;opacity:0;overflow:hidden;transition:max-height .28s ease,opacity .2s ease,margin .2s ease;margin:0}
.moat-news-item:hover .moat-news-item-snippet{max-height:6.5rem;opacity:0.92;margin:0.3rem 0 0.1rem}
.moat-news-item:hover{background:rgba(255,255,255,0.03)}
.moat-debate-item-cred{font-size:0.6rem;font-weight:700;color:#cce600;background:rgba(204,230,0,0.12);padding:0.05rem 0.35rem;border-radius:0.25rem;margin-left:0.35rem}
.moat-card-ai-badge.pos{background:rgba(120,200,80,0.2);color:#9ce67a}
.moat-card-ai-badge.neg{background:rgba(230,90,90,0.2);color:#e68a8a}

/* ── Moat value-creation gate: facts (left) vs plain-English (right) ── */
.moat-vc-banner{border-radius:0.7rem;padding:1.25rem 1.35rem;margin-bottom:1rem;border:1px solid var(--rim2)}
.moat-vc-banner.pos{background:linear-gradient(180deg,rgba(204,255,0,0.05),rgba(204,255,0,0.01));border-color:rgba(204,255,0,0.22)}
.moat-vc-banner.neg{background:linear-gradient(180deg,rgba(255,80,0,0.06),rgba(255,80,0,0.01));border-color:rgba(255,80,0,0.25)}

.moat-vc-top{display:flex;align-items:center;justify-content:space-between;gap:0.6rem;margin-bottom:0.9rem}
.moat-vc-step{font-size:0.6rem;font-weight:700;letter-spacing:0.08em;color:var(--fog);font-family:var(--fm)}
.moat-vc-badge{font-size:0.62rem;font-weight:700;letter-spacing:0.04em;padding:0.2rem 0.55rem;border-radius:1rem;text-transform:uppercase;white-space:nowrap;font-family:var(--fm)}
.moat-vc-badge.pos{background:rgba(204,255,0,0.12);color:var(--green)}
.moat-vc-badge.neg{background:rgba(255,80,0,0.12);color:var(--red)}

.moat-vc-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.3rem}
@media(max-width:680px){.moat-vc-grid{grid-template-columns:1fr;gap:0.9rem}}
.moat-vc-col-label{font-size:0.58rem;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;color:var(--fog);margin-bottom:0.7rem;font-family:var(--fm)}

/* left column — stacked facts */
.moat-vc-fact{display:flex;align-items:flex-start;gap:0.75rem}
.moat-vc-fact-num{font-size:1.5rem;font-weight:300;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;min-width:4.4rem;flex-shrink:0}
.moat-vc-fact-num.muted{color:var(--cloud)}
.moat-vc-fact-num.pos{color:var(--green)}
.moat-vc-fact-num.neg{color:var(--red)}
.moat-vc-fact-body{flex:1;min-width:0}
.moat-vc-fact-head{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}
.moat-vc-fact-name{font-size:0.8rem;font-weight:600;color:var(--snow);line-height:1.25}
.moat-vc-fact-note{font-size:0.62rem;color:var(--fog);margin-top:0.2rem}
.moat-vc-acro{display:inline-block;font-size:0.68rem;font-weight:800;letter-spacing:0.06em;border-radius:0.3rem;padding:0.12rem 0.45rem;font-family:var(--fm);flex-shrink:0}
.moat-vc-acro.earns{color:var(--green);background:rgba(204,255,0,0.12)}
.moat-vc-acro.costs{color:var(--cloud);background:rgba(255,255,255,0.07)}
.moat-vc-acro.spread{color:var(--blue);background:rgba(90,200,250,0.12)}
.moat-vc-acro-full{font-size:0.64rem;color:var(--fog);margin-top:0.2rem;letter-spacing:0.01em}
.moat-vc-acro-full b{color:var(--cloud);font-weight:700}
.moat-vc-op{font-size:0.6rem;text-transform:uppercase;letter-spacing:0.06em;color:var(--fog);margin:0.45rem 0 0.45rem 0.3rem}
.moat-vc-fact.spread{margin-top:0.15rem;padding-top:0.6rem;border-top:1px solid var(--rim)}

/* plain-English drop-downs on the jargon */
.moat-vc-def{margin-top:0.3rem}
.moat-vc-def summary{font-size:0.66rem;color:var(--blue);cursor:pointer;list-style:none;user-select:none;display:inline-flex;align-items:center;gap:0.3rem;width:fit-content}
.moat-vc-def summary::-webkit-details-marker{display:none}
.moat-vc-def summary::before{content:'›';display:inline-block;font-weight:800;transition:transform 0.15s ease}
.moat-vc-def[open] summary::before{transform:rotate(90deg)}
.moat-vc-def p{font-size:0.68rem;color:var(--fog);line-height:1.55;margin:0.4rem 0 0}
.moat-vc-def p b{color:var(--ash);font-weight:600}

/* right column — why it matters */
.moat-vc-explain{border-left:1px solid var(--rim);padding-left:1.3rem}
@media(max-width:680px){.moat-vc-explain{border-left:none;padding-left:0;border-top:1px solid var(--rim);padding-top:0.9rem}}
.moat-vc-explain p{font-size:0.72rem;color:var(--ash);line-height:1.6;margin:0 0 0.6rem}
.moat-vc-explain p b{color:var(--snow);font-weight:600}
.moat-vc-next{border-left:2px solid var(--rim2);padding-left:0.6rem;margin-left:0.05rem}
.moat-vc-verdict{font-size:0.7rem;line-height:1.5;font-weight:500;padding:0.5rem 0.65rem;border-radius:0.4rem;background:rgba(255,255,255,0.03)}
.moat-vc-verdict.pos{color:#cce600}
.moat-vc-verdict.neg{color:#ff8a5c}

/* ── Moat official sources (earnings calls + 10-K, Tier-1) ── */
.moat-official-section{margin-top:1.25rem}
.moat-official-badge{font-size:0.58rem;font-weight:700;color:#9ce6ff;background:rgba(156,230,255,0.12);padding:0.1rem 0.4rem;border-radius:0.25rem;margin-left:0.5rem;vertical-align:middle}
.moat-official-link{font-size:0.66rem;color:#9ce6ff;margin-left:0.5rem;text-decoration:none}
.moat-official-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0.6rem;margin-top:0.6rem}
.moat-official-quote{background:rgba(255,255,255,0.03);border:1px solid rgba(255,255,255,0.07);border-radius:0.4rem;padding:0.6rem}
.moat-official-quote-head{display:flex;align-items:center;gap:0.45rem;flex-wrap:wrap;font-size:0.64rem;color:var(--fog);margin-bottom:0.35rem}
.moat-official-theme{background:rgba(204,230,0,0.12);color:#cce600;padding:0.05rem 0.35rem;border-radius:0.25rem;font-weight:600}
.moat-official-quote-text{font-size:0.78rem;line-height:1.45;font-style:italic}
.moat-official-cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:0.6rem}
.moat-official-col-h{font-size:0.7rem;font-weight:700;color:var(--fog);margin-bottom:0.3rem;text-transform:uppercase;letter-spacing:0.03em}
.moat-official-list{margin:0;padding-left:1rem}
.moat-official-list li{font-size:0.76rem;line-height:1.5;margin-bottom:0.4rem}
@media(max-width:640px){.moat-official-cols{grid-template-columns:1fr}}

/* ── Moat: BIG radar above, cards in a plain 2-up grid (5th = row 3 col 1) ── */
.moat-dim-section .moat-dim-grid,.moat-porter-section .moat-dim-grid{display:block}
.moat-dim-radar-wrap{max-width:560px;width:100%;margin:0 auto 1.4rem}
.moat-dim-radar-wrap svg,svg.moat-dim-radar{width:100%;height:auto;display:block}
.moat-dim-cards,.moat-porter-cards{display:grid;grid-template-columns:1fr 1fr;gap:0.7rem;align-items:start}
@media(max-width:640px){.moat-dim-cards,.moat-porter-cards{grid-template-columns:1fr}}

/* ── AI summary strong/vulnerable: thicker, pill verdicts ──
   Scope the flex row to ONLY the moat name+pill items; prose bullets (fundamentals
   KEY STRENGTHS / RISKS / REQUIRES-INVESTIGATION) must keep normal inline flow,
   otherwise each <b> and text run becomes a separate flex item and the sentence
   visually scrambles. */
.ai-summary-list li:has(.ai-sum-pill){display:flex;align-items:center;gap:0.5rem;line-height:1.35}
.ai-sum-item-name{font-weight:650}
.ai-sum-pill{font-size:0.56rem;font-weight:800;letter-spacing:0.04em;padding:0.12rem 0.4rem;border-radius:0.3rem;flex:0 0 auto}
.ai-sum-pill.pos{background:rgba(120,200,80,0.2);color:#9ce67a}
.ai-sum-pill.neg{background:rgba(230,90,90,0.2);color:#e68a8a}

/* ── Management (earnings) section ── */
/* The gist: two readable columns of full-sentence bullets (NOT chips). */
.moat-mgmt-summary{display:grid;grid-template-columns:1fr 1fr;gap:0.9rem;margin:0.9rem 0}
@media(max-width:680px){.moat-mgmt-summary{grid-template-columns:1fr}}
.moat-mgmt-col{background:rgba(255,255,255,0.02);border:1px solid var(--rim);border-radius:0.5rem;padding:0.7rem 0.8rem}
.moat-mgmt-col.pos{border-top:2px solid rgba(204,255,0,0.45)}
.moat-mgmt-col.neg{border-top:2px solid rgba(255,80,0,0.45)}
.moat-mgmt-col-h{font-size:0.66rem;font-weight:800;text-transform:uppercase;letter-spacing:0.04em;margin-bottom:0.5rem}
.moat-mgmt-col.pos .moat-mgmt-col-h{color:var(--green)}
.moat-mgmt-col.neg .moat-mgmt-col-h{color:#ff8a5c}
.moat-mgmt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0.5rem}
.moat-mgmt-list li{position:relative;font-size:0.72rem;line-height:1.5;color:var(--ash);padding-left:1rem}
.moat-mgmt-list li::before{position:absolute;left:0;top:0.05rem;font-weight:800}
.moat-mgmt-col.pos .moat-mgmt-list li::before{content:'✓';color:var(--green)}
.moat-mgmt-col.neg .moat-mgmt-list li::before{content:'!';color:#ff8a5c}
.moat-official-quote.pos{border-left:3px solid rgba(120,200,80,0.5)}
.moat-official-quote.neg{border-left:3px solid rgba(230,90,90,0.5)}
.moat-official-quote.neu{border-left:3px solid rgba(255,255,255,0.15)}

/* ── SEC collapsible groups ── */
.moat-sec-group{margin-top:0.6rem;border:1px solid rgba(255,255,255,0.08);border-radius:0.4rem;overflow:hidden}
.moat-sec-group-head{width:100%;display:flex;align-items:center;gap:0.5rem;background:rgba(255,255,255,0.03);border:0;color:inherit;padding:0.55rem 0.7rem;font-size:0.74rem;font-weight:700;cursor:pointer;text-align:left}
.moat-sec-group-head.pos{border-left:3px solid rgba(204,255,0,0.55)}
.moat-sec-group-head.neu{border-left:3px solid rgba(90,200,250,0.5)}
.moat-sec-group-head.neg{border-left:3px solid rgba(255,80,0,0.55)}
.moat-sec-count{margin-left:auto;font-size:0.6rem;color:var(--fog);background:rgba(255,255,255,0.06);padding:0.05rem 0.4rem;border-radius:0.3rem}
.moat-sec-caret{font-size:0.7rem;color:var(--fog)}
.moat-sec-group-body{padding:0.5rem 0.7rem;max-height:320px;overflow-y:auto}
.moat-sec-quote{font-size:0.76rem;line-height:1.55;color:var(--ash);padding:0.5rem 0;border-bottom:1px solid rgba(255,255,255,0.05)}
.moat-sec-qt::before{content:'“'}.moat-sec-qt::after{content:'”'}
.moat-sec-verify{font-size:0.62rem;color:#9ce6ff;text-decoration:none;margin-left:0.3rem;white-space:nowrap}
.moat-sec-verify::before,.moat-sec-verify::after{content:''}
/* form tag (10-K vs 10-Q) so freshness is visible at a glance */
.moat-sec-form{font-size:0.55rem;font-weight:800;letter-spacing:0.03em;padding:0.05rem 0.32rem;border-radius:0.25rem;margin-right:0.35rem;font-family:var(--fm);vertical-align:middle}
.moat-sec-form::before,.moat-sec-form::after{content:''}
.moat-sec-form.k{background:rgba(255,255,255,0.08);color:var(--cloud)}
.moat-sec-form.q{background:rgba(204,255,0,0.14);color:var(--green)}

/* ── 6th-slot pentagon echo (fills the odd grid gap) ── */
.moat-grid-gap{display:flex;align-items:center;justify-content:center;opacity:0.5;padding:0.5rem}
.moat-gap-radar{width:100%;max-width:200px;height:auto}

/* ── Full-analysis close-to-top button ── */
.moat-dd-closebtn{display:block;margin:0.8rem 0 0;width:100%;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.1);color:var(--fog);border-radius:0.35rem;padding:0.4rem;font-size:0.7rem;font-weight:600;cursor:pointer}
.moat-dd-closebtn:hover{background:rgba(255,255,255,0.1);color:#fff}

/* ── Credibility "trust check" card ── */
.moat-cred{padding:0.7rem 0.8rem;border-radius:0.5rem;margin:0.9rem 0;background:rgba(255,255,255,0.03);border:1px solid var(--rim)}
.moat-cred.pos{border-left:3px solid rgba(204,255,0,0.6)}
.moat-cred.neg{border-left:3px solid rgba(255,80,0,0.6)}
.moat-cred.neu{border-left:3px solid rgba(245,166,35,0.6)}
.moat-cred-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.4rem}
.moat-cred-icon{font-weight:800;font-size:0.9rem}
.moat-cred.pos .moat-cred-icon{color:var(--green)}
.moat-cred.neg .moat-cred-icon{color:#ff8a5c}
.moat-cred.neu .moat-cred-icon{color:var(--gold)}
.moat-cred-title{font-size:0.78rem;font-weight:700;color:var(--snow)}
.moat-cred-rating{font-size:0.6rem;font-weight:800;letter-spacing:0.04em;padding:0.1rem 0.45rem;border-radius:1rem;margin-left:0.3rem;vertical-align:middle}
.moat-cred-rating.pos{background:rgba(204,255,0,0.14);color:var(--green)}
.moat-cred-rating.neg{background:rgba(255,80,0,0.14);color:#ff8a5c}
.moat-cred-rating.neu{background:rgba(245,166,35,0.14);color:var(--gold)}
.moat-cred-body{font-size:0.72rem;line-height:1.55;color:var(--ash)}

/* ── Earnings claim tracker: collapsible themes + vertical quote timeline ── */
.moat-themes-h{font-size:0.66rem;font-weight:800;text-transform:uppercase;letter-spacing:0.05em;color:var(--fog);margin:1rem 0 0.5rem}
.moat-themes{display:flex;flex-direction:column;gap:0.6rem}
.moat-theme{background:rgba(255,255,255,0.02);border:1px solid var(--rim);border-radius:0.5rem;overflow:hidden}
.moat-theme.pos{border-left:3px solid rgba(204,255,0,0.45)}
.moat-theme.neu{border-left:3px solid rgba(245,166,35,0.45)}
.moat-theme.neg{border-left:3px solid rgba(255,80,0,0.45)}
.moat-theme-head{display:flex;align-items:center;gap:0.6rem;padding:0.65rem 0.8rem;cursor:pointer;list-style:none;user-select:none}
.moat-theme-head::-webkit-details-marker{display:none}
.moat-theme-head:hover{background:rgba(255,255,255,0.02)}
.moat-theme-name{font-size:0.8rem;font-weight:700;color:var(--snow);flex:1;min-width:0}
.moat-traj-badge{font-size:0.6rem;font-weight:800;letter-spacing:0.03em;padding:0.16rem 0.5rem;border-radius:1rem;white-space:nowrap;flex-shrink:0}
.moat-traj-badge.pos{background:rgba(204,255,0,0.16);color:var(--green)}
.moat-traj-badge.neu{background:rgba(245,166,35,0.16);color:#f5c265}
.moat-traj-badge.neg{background:rgba(255,80,0,0.16);color:#ff8a5c}
.moat-theme-toggle{font-size:0.6rem;color:var(--fog);white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:0.25rem}
.moat-theme-toggle::after{content:'▸';transition:transform 0.15s ease}
.moat-theme[open] .moat-theme-toggle::after{transform:rotate(90deg)}
.moat-theme-sum{font-size:0.74rem;color:var(--ash);line-height:1.5;padding:0 0.8rem 0.2rem;margin:0}
.moat-theme[open] .moat-theme-sum{padding-bottom:0.6rem}
/* vertical timeline: quarter rail on the left, quote on the right */
.moat-q-tl{padding:0.2rem 0.8rem 0.8rem}
.moat-q-row{display:grid;grid-template-columns:4.2rem 1fr;gap:0.7rem;position:relative;padding:0.5rem 0 0.5rem 0}
.moat-q-row:not(:last-child){border-bottom:1px solid var(--rim)}
.moat-q-when{font-size:0.64rem;font-weight:800;color:var(--cloud);font-family:var(--fm);padding-top:0.05rem;position:relative;padding-left:0.8rem}
.moat-q-when::before{content:'';position:absolute;left:0;top:0.15rem;width:0.5rem;height:0.5rem;border-radius:50%;background:var(--fog)}
.moat-q-row.pos .moat-q-when::before{background:var(--green)}
.moat-q-row.neg .moat-q-when::before{background:#ff8a5c}
.moat-q-row.neu .moat-q-when::before{background:var(--gold)}
.moat-q-quote{font-size:0.74rem;line-height:1.5;color:var(--snow)}
.moat-q-quote::before{content:'“'}.moat-q-quote::after{content:'”'}
.moat-q-by{display:flex;align-items:center;gap:0.4rem;margin-top:0.35rem;font-size:0.62rem;color:var(--fog);flex-wrap:wrap}
.moat-q-by b{color:var(--cloud);font-weight:700;font-size:0.66rem}
.moat-q-role{background:rgba(90,200,250,0.14);color:var(--blue);padding:0.04rem 0.35rem;border-radius:0.25rem;font-weight:700}
.moat-q-date{color:var(--mist)}
.moat-sec-src{font-style:normal;font-size:0.58rem;font-weight:700;color:#9ce6ff;background:rgba(156,230,255,0.12);padding:0.05rem 0.35rem;border-radius:0.25rem;margin-right:0.4rem}
