/* ════════════════════════════════════════════
   WORKSPACE PAGE (Plus-tier, drill-in only)
   ════════════════════════════════════════════ */
.workspace{position:relative;display:grid;grid-template-columns:var(--left-w,17.5rem) 0.375rem 1fr 0.375rem var(--right-w,30rem);gap:0.375rem;padding:0;min-height:0;overflow:hidden;height:calc(100vh - 3.625rem)}
/* smooth slide for the auto-expand (added only during the animation, so drag-resize stays instant) */
.workspace.ws-animate{transition:grid-template-columns .34s cubic-bezier(.4,0,.2,1)}
/* Workspace is full-bleed — override the generic main{max-width:var(--max)} rule inherited from the ranking design system */
main#page-workspace{max-width:none;margin:0;padding:0;width:100%}
/* v6: resize handles between panels */
.resize-handle{position:relative;cursor:col-resize;touch-action:none;user-select:none;transition:background .15s}
.resize-handle::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:0.125rem;height:2.375rem;background:var(--rim2);border-radius:0.125rem;transition:all .15s;opacity:.5}
.resize-handle:hover::before,.resize-handle.dragging::before{background:var(--green);opacity:1;box-shadow:0 0 0.5rem rgba(204,255,0,.4);height:3rem}
.resize-handle:hover,.resize-handle.dragging{background:rgba(204,255,0,.03)}
.panel{background:var(--bg1);border:0.0625rem solid var(--rim);border-radius:var(--r-lg);display:flex;flex-direction:column;overflow:hidden}
.panel-header{display:flex;align-items:center;justify-content:space-between;padding:1.125rem 1.25rem 0.875rem;flex-shrink:0}
.panel-title h2{font-family:var(--fd);font-size:1.05rem;font-weight:800;color:var(--snow);letter-spacing:-.01em;margin-bottom:0.1875rem}
.panel-title .count{font-family:var(--fm);font-size:0.65625rem;color:var(--fog);letter-spacing:.04em}
.panel-title .count b{color:var(--cloud);font-weight:600}
.icon-btn{width:1.75rem;height:1.75rem;border-radius:0.4375rem;display:grid;place-items:center;color:var(--fog);transition:all .15s}
.icon-btn:hover{background:var(--bg3);color:var(--cloud)}
.icon-btn svg{width:0.875rem;height:0.875rem}

/* FIX U2: reduced left panel — 3 affordances not 7 */
.creators-top{padding:0 1.25rem 0.875rem;flex-shrink:0}
.search-w{position:relative}
.search-w svg{position:absolute;left:0.75rem;top:50%;transform:translateY(-50%);width:0.8125rem;height:0.8125rem;color:var(--fog)}
.search-i{width:100%;padding:0.625rem 0.75rem 0.625rem 2.125rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r-sm);color:var(--snow);font-size:0.78125rem}
.search-i::placeholder{color:var(--fog)}
.search-i:focus{border-color:rgba(204,255,0,.3)}

.filter-dropdown-wrap{display:flex;align-items:center;gap:0.625rem;padding:0.625rem 1.25rem;border-top:0.0625rem solid var(--rim);flex-shrink:0}
.filter-dropdown{display: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);font-family:var(--fm);font-size:0.65625rem;color:var(--cloud);cursor:pointer;transition:all .15s}
.filter-dropdown:hover{border-color:var(--rim2)}
.filter-dropdown svg{width:0.625rem;height:0.625rem;color:var(--fog)}
.filter-dropdown b{color:var(--green);font-weight:700}
.select-all-count{margin-left:auto;font-family:var(--fm);font-size:0.625rem;color:var(--fog)}
.select-all-count b{color:var(--green);font-weight:700}

.creator-list{flex:1;overflow-y:auto;padding:0.375rem 0.625rem 0.625rem}
.creator-item{display:flex;align-items:center;gap:0.625rem;padding:0.625rem 0.625rem;border-radius:var(--r-sm);cursor:pointer;transition:background .15s;margin-bottom:0.125rem}
.creator-item:hover{background:var(--bg2)}
.creator-item.selected{background:var(--green-soft)}
.creator-av{width:1.875rem;height:1.875rem;border-radius:50%;background:var(--bg3);display:grid;place-items:center;font-size:0.6875rem;font-weight:700;color:var(--green);flex-shrink:0}
.creator-av.gold{background:rgba(245,166,35,.12);color:var(--gold)}
.creator-info{flex:1;min-width:0}
.creator-name{font-size:0.78125rem;font-weight:500;color:var(--snow);margin-bottom:0.125rem;display:flex;align-items:center;gap:0.375rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fresh-dot{width:0.3125rem;height:0.3125rem;border-radius:50%;background:var(--green);box-shadow:0 0 0.375rem var(--green);flex-shrink:0}
.acc-badge{font-family:var(--fm);font-size:0.625rem;color:var(--cloud)}
.acc-badge b{font-weight:700}
.acc-badge.high b{color:var(--green)}
.acc-badge.mid b{color:var(--gold)}
.checkbox{width:0.9375rem;height:0.9375rem;border-radius:0.25rem;border:0.09375rem solid var(--mist);display:grid;place-items:center;cursor:pointer;transition:all .15s;flex-shrink:0;margin-left:auto}
.checkbox.checked{background:var(--green);border-color:var(--green)}
.checkbox.checked svg{width:0.5625rem;height:0.5625rem;color:#000}
.checkbox svg{color:transparent}

.tier-divider{padding:0.875rem 0.875rem 0.375rem;font-family:var(--fm);font-size:0.5625rem;color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-weight:700;display:flex;align-items:center;gap:0.375rem;margin-top:0.25rem;cursor:help}
.tier-divider::before,.tier-divider::after{content:'';flex:1;height:0.0625rem;background:rgba(245,166,35,.15)}
.creator-item.research{background:rgba(245,166,35,.04)}
.creator-item.research:hover{background:rgba(245,166,35,.08)}
.research-mark{font-size:0.5625rem;color:var(--gold);margin-left:0.25rem;cursor:help}

/* Chat */
.chat-ctx-bar{padding:0.625rem 1.5rem;border-bottom:0.0625rem solid var(--rim);font-family:var(--fm);font-size:0.65625rem;color:var(--fog);flex-shrink:0;display:flex;align-items:center;gap:0.75rem;flex-wrap:wrap}
.chat-ctx-bar b{color:var(--cloud);font-weight:600}
.chat-ctx-sep{color:var(--mist)}
.chat-ctx-limit{margin-left:auto;display:flex;align-items:center;gap:0.375rem;padding:0.1875rem 0.5625rem;background:rgba(245,166,35,.06);border:0.0625rem solid rgba(245,166,35,.15);border-radius:6.25rem;color:var(--gold)}
.chat-ctx-limit svg{width:0.625rem;height:0.625rem}

.chat-body{flex:1;overflow-y:auto;padding:1.75rem 1.75rem 1.25rem;display:flex;flex-direction:column;gap:1.75rem}

.msg-user{align-self:flex-end;max-width:72%}
.msg-user-bubble{padding:0.8125rem 1.0625rem;background:var(--bg3);border-radius:1rem 1rem 0.25rem 1rem;font-size:0.875rem;line-height:1.55;color:var(--snow)}
.msg-user-time{font-family:var(--fm);font-size:0.625rem;color:var(--fog);text-align:right;margin-top:0.375rem;padding-right:0.375rem}

.msg-ai{max-width:100%;animation:fadeUp .4s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(0.375rem)}to{opacity:1;transform:none}}
.msg-ai-head{display:flex;align-items:center;gap:0.625rem;margin-bottom:0.875rem}
.ai-av{width:1.625rem;height:1.625rem;border-radius:0.4375rem;background:var(--green);display:grid;place-items:center;flex-shrink:0}
.ai-av svg{width:0.8125rem;height:0.8125rem;color:#000}
.ai-label{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.06em;text-transform:uppercase}
.ai-label b{color:var(--cloud);font-weight:600}

.msg-ai-content{font-size:0.90625rem;line-height:1.7;color:var(--cloud)}
.msg-ai-content p{margin-bottom:0.875rem}
.msg-ai-content h4{font-family:var(--fd);font-size:1rem;color:var(--snow);margin:1.25rem 0 0.75rem;font-weight:800;letter-spacing:-.01em}
.msg-ai-content strong{color:var(--snow);font-weight:600}

/* FIX U5: loading skeleton for generating */
.msg-ai.generating{padding:1rem 0}
.gen-shimmer{height:0.875rem;background:linear-gradient(90deg,var(--bg2),var(--bg3),var(--bg2));background-size:200% 100%;border-radius:0.25rem;animation:shimmer 1.6s ease-in-out infinite;margin-bottom:0.625rem}
.gen-shimmer:nth-child(1){width:80%}
.gen-shimmer:nth-child(2){width:95%}
.gen-shimmer:nth-child(3){width:70%}
@keyframes shimmer{0%{background-position:200% 50%}100%{background-position:-100% 50%}}

.cv-stack{display:flex;flex-direction:column;gap:0.5rem;margin:1rem 0}
.cv-card{padding:0.8125rem 1rem;background:var(--bg2);border-radius:var(--r);border-left:0.125rem solid var(--mist)}
.cv-card.bull{border-left-color:var(--green)}
.cv-card.neutral{border-left-color:var(--gold)}
.cv-card.research{border-left-color:var(--gold);background:rgba(245,166,35,.04)}
.cv-head{display:flex;align-items:baseline;gap:0.5rem;margin-bottom:0.3125rem}
.cv-creator{font-size:0.78125rem;font-weight:600;color:var(--snow)}
.cv-creator .research-mark{font-size:0.5625rem;color:var(--gold);margin-left:0.1875rem}
.cv-acc{font-family:var(--fm);font-size:0.625rem;color:var(--fog)}
.cv-acc b{color:var(--green);font-weight:700}
.cv-stance{margin-left:auto;font-family:var(--fm);font-size:0.59375rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.cv-stance.bull{color:var(--green)}
.cv-stance.neutral{color:var(--gold)}
.cv-stance.research{color:var(--gold)}
.cv-quote{font-size:0.78125rem;color:var(--cloud);line-height:1.55}

.sec-callout{margin:1rem 0;padding:0.8125rem 1rem;background:rgba(90,200,250,.04);border-radius:var(--r);border-left:0.125rem solid var(--blue)}
.sec-title{font-family:var(--fm);font-size:0.625rem;color:var(--blue);letter-spacing:.1em;text-transform:uppercase;margin-bottom:0.375rem;font-weight:600}
.sec-title b{color:var(--snow);margin-left:0.375rem;font-weight:600}
.sec-text{font-size:0.78125rem;color:var(--cloud);line-height:1.55}
.sec-text strong{color:var(--snow)}

.msg-actions{display:flex;align-items:center;gap:0.25rem;margin-top:0.875rem}
.msg-action{display:flex;align-items:center;gap:0.3125rem;padding:0.375rem 0.625rem;border-radius:0.375rem;font-size:0.71875rem;color:var(--fog);transition:all .15s}
.msg-action:hover{background:var(--bg2);color:var(--cloud)}
.msg-action svg{width:0.6875rem;height:0.6875rem}
.msg-action.primary{color:var(--green)}

.chat-input-wrap{padding:0.875rem 1.5rem 1.125rem;flex-shrink:0}
.chat-input-box{background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);padding:0.25rem 0.25rem 0.25rem 0.875rem;display:flex;align-items:flex-end;gap:0.5rem;transition:border-color .2s,box-shadow .2s}
/* focus ring wraps the ENTIRE bar (send button included) — never just the inner textarea */
.chat-input-box:focus-within{border-color:var(--green);box-shadow:0 0 0 0.0625rem var(--green),0 0 1.125rem rgba(204,255,0,.12)}
.chat-input-box .chat-textarea:focus,.chat-input-box .chat-textarea:focus-visible{outline:none;border:none;box-shadow:none}
.chat-textarea{flex:1;padding:0.625rem 0;background:transparent;color:var(--snow);font-size:0.84375rem;line-height:1.5;resize:none;min-height:1.5rem;max-height:7.5rem}
.chat-textarea::placeholder{color:var(--fog)}
.send-btn{width:1.875rem;height:1.875rem;border-radius:0.4375rem;background:var(--green);display:grid;place-items:center;color:#000;flex-shrink:0;margin-bottom:0.1875rem}
.send-btn svg{width:0.75rem;height:0.75rem}
.chat-input-helper b{color:var(--cloud)}

/* ═══════════ ANALYSIS CANVAS (v3 chat-driven) ═══════════ */
.canvas-head-meta{padding:0.125rem 1.25rem 0.875rem;flex-shrink:0}
.canvas-progress{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.5rem}
.canvas-progress-label{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.canvas-progress-label b{color:var(--cloud)}
.canvas-progress-count{font-family:var(--fm);font-size:0.65625rem;font-weight:700}
.canvas-progress-count b{color:var(--green)}
.canvas-progress-count .max{color:var(--fog);font-weight:500}
.canvas-progress-bar{height:0.25rem;background:var(--bg3);border-radius:0.125rem;overflow:hidden;position:relative}
.canvas-progress-fill{height:100%;background:linear-gradient(90deg,var(--green),#E6FF33);border-radius:0.125rem;transition:width .4s ease;box-shadow:0 0 0.5rem rgba(204,255,0,.4)}
.canvas-progress-fill.warn{background:linear-gradient(90deg,var(--gold),#FFB84D);box-shadow:0 0 0.5rem rgba(245,166,35,.4)}

.canvas-body{flex:1;overflow-y:auto;padding:0.125rem 1.125rem 1.125rem;display:flex;flex-direction:column;gap:0.75rem}

/* Empty state — when canvas has no cards yet */
.canvas-empty{padding:1.75rem 1rem;text-align:center;border:0.0625rem dashed var(--rim2);border-radius:var(--r);margin-top:0.5rem}
.canvas-empty-icon{width:2.625rem;height:2.625rem;margin:0 auto 0.75rem;border-radius:50%;background:var(--bg2);border:0.0625rem solid var(--rim);display:grid;place-items:center;color:var(--fog)}
.canvas-empty-icon svg{width:1.125rem;height:1.125rem}
.canvas-empty-title{font-family:var(--fd);font-size:0.9375rem;font-weight:700;color:var(--snow);margin-bottom:0.375rem}
.canvas-empty-body{font-size:0.75rem;color:var(--fog);line-height:1.55;max-width:13.75rem;margin:0 auto}
.canvas-empty-body b{color:var(--green)}

/* Generic canvas card shell */
.c-card{padding:1rem 1.125rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:var(--r);position:relative;animation:cardIn .5s cubic-bezier(.22,.8,.3,1.1) both}
@keyframes cardIn{from{opacity:0;transform:translateY(0.625rem) scale(.98)}to{opacity:1;transform:none}}
.c-card.generating{position:relative;overflow:hidden}
.c-card.generating::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(204,255,0,.06),transparent);animation:cardShimmer 1.3s ease-in-out infinite}
@keyframes cardShimmer{0%{left:-100%}100%{left:100%}}
.c-card-head{display:flex;align-items:center;gap:0.5rem;margin-bottom:0.75rem;padding-bottom:0.625rem;border-bottom:0.0625rem solid var(--rim)}
.c-card-icon{width:1.375rem;height:1.375rem;border-radius:0.375rem;display:grid;place-items:center;flex-shrink:0}
.c-card-icon svg{width:0.75rem;height:0.75rem}
.c-card-title{font-family:var(--fd);font-size:0.84375rem;font-weight:800;color:var(--snow);letter-spacing:-.005em;flex:1;min-width:0;line-height:1.2}
.c-card-stance{font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:0.125rem 0.375rem;border-radius:0.1875rem;flex-shrink:0}
.c-card-stance.bull{color:var(--green);background:var(--green-soft);border:0.0625rem solid rgba(204,255,0,.2)}
.c-card-stance.bear{color:var(--red);background:rgba(255,80,0,.06);border:0.0625rem solid rgba(255,80,0,.2)}
.c-card-stance.neutral{color:var(--gold);background:rgba(245,166,35,.06);border:0.0625rem solid rgba(245,166,35,.2)}

/* Card type accents */
.c-card[data-type="consensus"] .c-card-icon{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.2)}
.c-card[data-type="fundamentals"] .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="technicals"] .c-card-icon{background:rgba(155,89,182,.08);color:var(--purple);border:0.0625rem solid rgba(155,89,182,.2)}
.c-card[data-type="news"] .c-card-icon{background:rgba(245,166,35,.08);color:var(--gold);border:0.0625rem solid rgba(245,166,35,.2)}
.c-card[data-type="ratios"] .c-card-icon{background:var(--green-soft);color:var(--green);border:0.0625rem solid rgba(204,255,0,.2)}
.c-card[data-type="moat"] .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="macro"] .c-card-icon{background:rgba(155,89,182,.08);color:var(--purple);border:0.0625rem solid rgba(155,89,182,.2)}

.c-card-close{position:absolute;top:0.625rem;right:0.625rem;width:1.25rem;height:1.25rem;display:grid;place-items:center;color:var(--fog);border-radius:0.25rem;opacity:0;transition:all .15s}
.c-card:hover .c-card-close{opacity:.7}
.c-card-close:hover{opacity:1;color:var(--red);background:var(--bg3)}
.c-card-close svg{width:0.625rem;height:0.625rem}

/* Card body shared */
.c-body{font-size:0.78125rem;color:var(--cloud);line-height:1.55}
.c-body strong{color:var(--snow);font-weight:600}
.c-verdict{font-size:0.8125rem;color:var(--cloud);line-height:1.55;margin-bottom:0.75rem;padding-bottom:0.75rem;border-bottom:0.0625rem solid var(--rim)}
.c-verdict strong{color:var(--snow)}

/* Score rings + bars */
.c-score-row{display:flex;align-items:center;gap:0.625rem;margin-bottom:0.75rem}
.c-score-big{font-family:var(--fd);font-size:1.625rem;font-weight:900;color:var(--green);line-height:1;letter-spacing:-.02em}
.c-score-big.bear{color:var(--red)}
.c-score-big.neutral{color:var(--gold)}
.c-score-max{font-family:var(--fm);font-size:0.6875rem;color:var(--fog);font-weight:500}
.c-score-lbl{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.08em;text-transform:uppercase;margin-left:auto;font-weight:600}

/* Sentiment donut (consensus card) */
.c-sent{display:flex;align-items:center;gap:0.625rem;margin-bottom:0.75rem}
.c-sent-donut{width:2.75rem;height:2.75rem;border-radius:50%;background:conic-gradient(var(--green) 0 75%,var(--gold) 75% 87%,var(--red) 87% 100%);display:grid;place-items:center;flex-shrink:0;position:relative}
.c-sent-donut::before{content:'';position:absolute;inset:0.3125rem;background:var(--bg2);border-radius:50%}
.c-sent-donut span{position:relative;font-family:var(--fm);font-size:0.71875rem;font-weight:700;color:var(--green)}
.c-sent-info{flex:1;min-width:0}
.c-sent-num{font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);line-height:1.2;margin-bottom:0.0625rem}
.c-sent-sub{font-family:var(--fm);font-size:0.625rem;color:var(--fog);letter-spacing:.04em}

/* Quote stack (compact) */
.c-quotes{display:flex;flex-direction:column;gap:0.375rem;margin-top:0.625rem}
.c-quote{padding:0.5rem 0.625rem;background:var(--bg3);border-radius:var(--r-sm);border-left:0.125rem solid var(--mist);font-size:0.71875rem;line-height:1.45;color:var(--cloud)}
.c-quote.bull{border-left-color:var(--green)}
.c-quote.bear{border-left-color:var(--red)}
.c-quote.research{border-left-color:var(--gold);background:rgba(245,166,35,.04)}
.c-quote-head{display:flex;align-items:center;gap:0.375rem;margin-bottom:0.1875rem}
.c-quote-who{font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--snow)}
.c-quote-acc{font-family:var(--fm);font-size:0.5625rem;color:var(--fog)}
.c-quote-acc b{color:var(--green);font-weight:700}
.c-quote-text{font-size:0.71875rem;color:var(--cloud);font-style:italic;line-height:1.45}

/* Research callout inside card */
.c-research{margin-top:0.625rem;padding:0.625rem 0.75rem;background:rgba(245,166,35,.05);border:0.0625rem solid rgba(245,166,35,.2);border-radius:var(--r-sm);font-size:0.71875rem;color:var(--cloud);line-height:1.5;position:relative}
.c-research::before{content:'◆';position:absolute;top:0.625rem;left:0.625rem;font-size:0.625rem;color:var(--gold)}
.c-research-wrap{padding-left:1.125rem}
.c-research-lbl{font-family:var(--fm);font-size:0.5625rem;color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-bottom:0.1875rem}
.c-research-text{color:var(--cloud)}
.c-research-text b{color:var(--snow)}

/* Metric strip (fundamentals/ratios) */
.c-metrics{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-top:0.625rem}
.c-metric{padding:0.5rem 0.625rem;background:var(--bg3);border-radius:var(--r-sm)}
.c-metric-l{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em;margin-bottom:0.125rem}
.c-metric-v{font-family:var(--fm);font-size:0.8125rem;font-weight:700;color:var(--snow);line-height:1}
.c-metric-v.green{color:var(--green)}
.c-metric-v.red{color:var(--red)}
.c-metric-v.gold{color:var(--gold)}
.c-metric-sub{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);margin-top:0.125rem}

/* Bar chart for technicals / macro */
.c-bar-row{display:flex;align-items:center;gap:0.625rem;margin-bottom:0.5rem;font-size:0.71875rem}
.c-bar-row:last-child{margin-bottom:0}
.c-bar-lbl{font-family:var(--fm);font-size:0.625rem;color:var(--fog);min-width:3.75rem;flex-shrink:0}
.c-bar-track{flex:1;height:0.3125rem;background:var(--bg3);border-radius:0.1875rem;overflow:hidden;position:relative}
.c-bar-fill{height:100%;border-radius:0.1875rem;transition:width .5s ease}
.c-bar-fill.green{background:var(--green)}
.c-bar-fill.red{background:var(--red)}
.c-bar-fill.gold{background:var(--gold)}
.c-bar-val{font-family:var(--fm);font-size:0.65625rem;font-weight:700;color:var(--cloud);min-width:2.75rem;text-align:right;flex-shrink:0}

/* Signal dot list (technicals, news) */
.c-signals{display:flex;flex-direction:column;gap:0.375rem;margin-top:0.5rem}
.c-signal{display:flex;align-items:flex-start;gap:0.4375rem;font-size:0.71875rem;line-height:1.5;color:var(--cloud)}
.c-signal-dot{width:0.375rem;height:0.375rem;border-radius:50%;flex-shrink:0;margin-top:0.3125rem}
.c-signal-dot.bull{background:var(--green);box-shadow:0 0 0.3125rem var(--green)}
.c-signal-dot.bear{background:var(--red)}
.c-signal-dot.neutral{background:var(--gold)}
.c-signal b{color:var(--snow);font-weight:600}

/* Moat score bars */
.c-moat{display:flex;flex-direction:column;gap:0.5rem;margin-top:0.5rem}
.c-moat-row{display:flex;align-items:center;gap:0.5rem}
.c-moat-name{font-family:var(--fm);font-size:0.625rem;color:var(--cloud);min-width:6.25rem;flex-shrink:0}
.c-moat-track{flex:1;height:0.25rem;background:var(--bg3);border-radius:0.1875rem;overflow:hidden}
.c-moat-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--gold));border-radius:0.1875rem}
.c-moat-score{font-family:var(--fm);font-size:0.625rem;font-weight:700;color:var(--green);min-width:1.75rem;text-align:right;flex-shrink:0}

/* Bull vs Bear split card */
.c-bullbear{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-top:0.625rem}
.c-bullbear-col{padding:0.625rem;background:var(--bg3);border-radius:var(--r-sm)}
.c-bullbear-col.bull{border:0.0625rem solid rgba(204,255,0,.15)}
.c-bullbear-col.bear{border:0.0625rem solid rgba(255,80,0,.15)}
.c-bullbear-head{font-family:var(--fm);font-size:0.59375rem;letter-spacing:.08em;text-transform:uppercase;font-weight:700;margin-bottom:0.375rem}
.c-bullbear-col.bull .c-bullbear-head{color:var(--green)}
.c-bullbear-col.bear .c-bullbear-head{color:var(--red)}
.c-bullbear-list{display:flex;flex-direction:column;gap:0.3125rem;font-size:0.6875rem;color:var(--cloud);line-height:1.45}
.c-bullbear-list > div{padding-left:0.5rem;position:relative}
.c-bullbear-list > div::before{content:'';position:absolute;top:0.375rem;left:0;width:0.1875rem;height:0.1875rem;border-radius:50%}
.c-bullbear-col.bull .c-bullbear-list > div::before{background:var(--green)}
.c-bullbear-col.bear .c-bullbear-list > div::before{background:var(--red)}

/* DCF fair-value bar (ratios) */
.c-dcf{margin-top:0.625rem;padding:0.625rem;background:var(--bg3);border-radius:var(--r-sm)}
.c-dcf-head{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:0.5rem}
.c-dcf-price{font-family:var(--fm);font-size:0.875rem;font-weight:700;color:var(--snow)}
.c-dcf-up{font-family:var(--fm);font-size:0.6875rem;font-weight:700;color:var(--green)}
.c-dcf-up.down{color:var(--red)}
.c-dcf-bar{height:0.375rem;background:linear-gradient(90deg,rgba(255,80,0,.3),rgba(245,166,35,.3),rgba(204,255,0,.3));border-radius:0.1875rem;position:relative;margin-bottom:0.375rem}
.c-dcf-marker{position:absolute;top:-0.1875rem;width:0.125rem;height:0.75rem;background:var(--snow);border-radius:0.0625rem}
.c-dcf-marker.dcf{background:var(--green);box-shadow:0 0 0.25rem var(--green)}
.c-dcf-labels{display:flex;justify-content:space-between;font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em}

/* Save action row */
.c-actions{display:flex;align-items:center;gap:0.25rem;margin-top:0.75rem;padding-top:0.625rem;border-top:0.0625rem solid var(--rim)}
.c-act{display:flex;align-items:center;gap:0.25rem;padding:0.25rem 0.5rem;border-radius:0.3125rem;font-family:var(--fm);font-size:0.625rem;color:var(--fog);transition:all .15s}
.c-act:hover{color:var(--cloud);background:var(--bg3)}
.c-act svg{width:0.625rem;height:0.625rem}
.c-act.saved{color:var(--green);background:var(--green-soft)}

/* Paywall card — shown when free user hits 5 cards */
.c-paywall{padding:1.125rem;background:linear-gradient(135deg,rgba(245,166,35,.1),rgba(245,166,35,.02));border:0.0625rem solid rgba(245,166,35,.3);border-radius:var(--r);text-align:center;animation:cardIn .5s cubic-bezier(.22,.8,.3,1.1) both}
.c-paywall-icon{width:2.375rem;height:2.375rem;border-radius:50%;background:rgba(245,166,35,.12);border:0.0625rem solid rgba(245,166,35,.3);display:grid;place-items:center;margin:0 auto 0.625rem;color:var(--gold)}
.c-paywall-icon svg{width:1rem;height:1rem}
.c-paywall-title{font-family:var(--fd);font-size:0.9375rem;font-weight:800;color:var(--snow);margin-bottom:0.3125rem;letter-spacing:-.01em}
.c-paywall-title .plus-mark{display:inline-flex;align-items:center;justify-content:center;padding:0.125rem 0.375rem;border-radius:0.1875rem;background:var(--gold);color:#000;font-family:var(--fm);font-size:0.5625rem;font-weight:700;letter-spacing:.04em;margin-right:0.375rem;vertical-align:0.125rem}
.c-paywall-body{font-size:0.75rem;color:var(--cloud);line-height:1.55;margin-bottom:0.75rem;max-width:16.25rem;margin-left:auto;margin-right:auto}
.c-paywall-btn{display:inline-flex;align-items:center;gap:0.3125rem;padding:0.5rem 0.875rem;background:var(--gold);color:#000;border-radius:0.375rem;font-family:var(--fm);font-size:0.6875rem;font-weight:700;letter-spacing:.02em}
.c-paywall-btn svg{width:0.625rem;height:0.625rem}
.c-paywall-note{display:block;margin-top:0.5rem;font-family:var(--fm);font-size:0.625rem;color:var(--fog)}

/* ═══════════ QUICK-QUESTION CHIPS (below chat input) ═══════════ */
.chat-chips{display:flex;gap:0.3125rem;padding:0.5rem 1.5rem 0.875rem;flex-wrap:wrap;flex-shrink:0;border-top:0.0625rem solid var(--rim);background:var(--bg1)}
.chat-chips-label{font-family:var(--fm);font-size:0.59375rem;color:var(--fog);letter-spacing:.1em;text-transform:uppercase;width:100%;margin-bottom:0.1875rem;font-weight:600}
.chat-chip{display:inline-flex;align-items:center;gap:0.3125rem;padding:0.375rem 0.6875rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:6.25rem;font-family:var(--fm);font-size:0.65625rem;color:var(--cloud);cursor:pointer;transition:all .15s;font-weight:500}
.chat-chip:hover{border-color:rgba(204,255,0,.35);color:var(--green);transform:translateY(-0.0625rem)}
.chat-chip.used{opacity:.5;border-style:dashed}
.chat-chip .chip-emoji{font-size:0.75rem}

/* Plus hint inside metrics */
.plus-inline{display:inline-flex;align-items:center;gap:0.1875rem;font-family:var(--fm);font-size:0.5625rem;padding:0.0625rem 0.3125rem;border-radius:0.1875rem;background:rgba(245,166,35,.08);color:var(--gold);font-weight:600;letter-spacing:.04em;margin-left:0.25rem;vertical-align:0.0625rem}


/* ── Ticker scope intro card (replaces the old fake answer) ───────────────── */
.intro-card{font-family:var(--fm)}
.intro-top{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;margin-bottom:0.625rem}
.intro-score{font-size:0.6875rem;padding:0.25rem 0.5rem;border-radius:0.375rem;border:0.0625rem solid var(--rim);background:var(--bg2);color:var(--cloud);letter-spacing:.02em}
.intro-score b{color:inherit}
.intro-score-unit{opacity:.5;font-size:0.625rem}
.intro-score-high{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,transparent);background:color-mix(in srgb,var(--green) 10%,transparent)}
.intro-score-mid{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 40%,transparent)}
.intro-score-low{color:#e0796b;border-color:color-mix(in srgb,#e0796b 40%,transparent)}
.intro-pulse{font-size:0.6875rem;color:var(--fog)}.intro-pulse b{color:var(--cloud)}
.intro-chip{font-size:0.6875rem;color:var(--fog);padding:0.25rem 0.5rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.375rem}.intro-chip b{color:var(--cloud)}
.intro-sent{margin-bottom:0.75rem}
.intro-sent-bar{display:flex;height:0.4375rem;border-radius:0.25rem;overflow:hidden;background:var(--bg2)}
.intro-sent-bar .seg.bull{background:var(--green)}.intro-sent-bar .seg.neu{background:var(--mist)}.intro-sent-bar .seg.bear{background:#e0796b}
.intro-sent-legend{display:flex;gap:0.75rem;margin-top:0.375rem;font-size:0.625rem;flex-wrap:wrap}
.intro-sent-legend .bull{color:var(--green)}.intro-sent-legend .neu{color:var(--fog)}.intro-sent-legend .bear{color:#e0796b}
.intro-sent-label{margin-left:auto;color:var(--cloud);font-weight:600}
.intro-news-head{font-size:0.625rem;text-transform:uppercase;letter-spacing:.08em;color:var(--fog);margin:0.5rem 0 0.375rem}.intro-news-head span{color:var(--green)}
.intro-news{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-bottom:0.75rem}
.intro-news-card{display:flex;gap:0.5rem;padding:0.4375rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.5rem;cursor:pointer;transition:all .15s;align-items:center}
.intro-news-card:hover{border-color:var(--mist);background:var(--bg3);transform:translateY(-0.0625rem)}
.intro-news-img{width:2.75rem;height:2.75rem;border-radius:0.375rem;background-size:cover;background-position:center;flex-shrink:0;background-color:var(--bg3)}
.intro-news-noimg{display:grid;place-items:center;color:var(--fog);font-size:0.75rem}
.intro-news-body{min-width:0}
.intro-news-title{font-size:0.6875rem;line-height:1.25;color:var(--cloud);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.intro-news-meta{font-size:0.5625rem;color:var(--fog);margin-top:0.1875rem}
.intro-foot{display:flex;align-items:center;gap:0.625rem;flex-wrap:wrap;padding-top:0.5rem;border-top:0.0625rem solid var(--rim);font-size:0.5625rem;color:var(--fog)}
.intro-verified{display:inline-flex;align-items:center;gap:0.1875rem;letter-spacing:.02em}
.intro-open-canvas{margin-left:auto;color:var(--green);text-decoration:none;font-weight:600;font-size:0.625rem}
.intro-open-canvas:hover{text-decoration:underline}
@media(max-width:30rem){.intro-news{grid-template-columns:1fr}}
.intro-header{display:flex;align-items:baseline;justify-content:space-between;gap:0.75rem;margin-bottom:0.625rem;padding-bottom:0.5rem;border-bottom:0.0625rem solid var(--rim);flex-wrap:wrap}
.intro-price{font-family:var(--fd);font-size:1.25rem;font-weight:800;color:var(--snow);letter-spacing:-.01em}
.intro-chg{font-family:var(--fm);font-size:0.75rem;font-weight:600;margin-left:0.25rem}
.intro-chg.up{color:var(--green)}.intro-chg.down{color:#e0796b}
.intro-header-meta{display:flex;gap:0.875rem;font-family:var(--fm);font-size:0.625rem;color:var(--fog)}
.intro-header-meta b{color:var(--cloud);font-weight:600}

/* ── Intro card: company header block (mirrors the fundamentals page top) ──── */
.ix-crumb{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.04em;margin-bottom:0.5rem}
.ix-sep{opacity:.4;margin:0 0.1875rem}
.ix-id{display:flex;align-items:flex-start;justify-content:space-between;gap:0.75rem;margin-bottom:0.625rem}
.ix-id-left{display:flex;align-items:center;gap:0.5rem;min-width:0}
.ix-logo{width:1.75rem;height:1.75rem;border-radius:0.375rem;object-fit:contain;background:var(--bg2);flex-shrink:0}
.ix-name{font-family:var(--fd);font-size:1.0625rem;font-weight:800;color:var(--snow);letter-spacing:-.01em;line-height:1.1}
.ix-exch{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.06em;margin-top:0.1875rem}.ix-exch b{color:var(--cloud)}
.ix-id-right{text-align:right;flex-shrink:0}
.ix-target{font-family:var(--fm);font-size:0.625rem;color:var(--fog)}.ix-target b{color:var(--snow);font-weight:700}
.ix-analysts{font-family:var(--fm);font-size:0.5rem;color:var(--fog);margin-top:0.0625rem}
.ix-uv{display:inline-block;margin-top:0.375rem;font-family:var(--fm);font-size:0.5625rem;font-weight:700;padding:0.1875rem 0.4375rem;border-radius:0.3125rem}
.ix-uv.under{color:var(--green);background:color-mix(in srgb,var(--green) 14%,transparent);border:0.0625rem solid color-mix(in srgb,var(--green) 40%,transparent)}
.ix-uv.over{color:#e0796b;background:color-mix(in srgb,#e0796b 12%,transparent);border:0.0625rem solid color-mix(in srgb,#e0796b 38%,transparent)}
.ix-price{font-family:var(--fd);font-size:1.5rem;font-weight:800;color:var(--snow);letter-spacing:-.02em}
.ix-chg{font-family:var(--fm);font-size:0.6875rem;font-weight:700;padding:0.25rem 0.5rem;border-radius:0.375rem}
.ix-chg.up{color:var(--green);background:color-mix(in srgb,var(--green) 12%,transparent)}
.ix-chg.down{color:#e0796b;background:color-mix(in srgb,#e0796b 12%,transparent)}
.ix-mcap{font-family:var(--fm);font-size:0.625rem;color:var(--fog);padding:0.25rem 0.5rem;background:var(--bg2);border:0.0625rem solid var(--rim);border-radius:0.375rem}.ix-mcap b{color:var(--cloud)}
.intro-spark{width:8.25rem;height:1.875rem;flex-shrink:0}
.ix-stats{display:flex;gap:1rem;font-family:var(--fm);font-size:0.625rem}
.ix-stats span{display:flex;flex-direction:column;gap:0.0625rem}
.ix-stats i{font-style:normal;color:var(--fog);font-size:0.5rem;letter-spacing:.06em}
.ix-stats b{color:var(--cloud);font-weight:600}
.ix-stats b.up{color:var(--green)}.ix-stats b.down{color:#e0796b}
.intro-updated{font-family:var(--fm);font-size:0.5rem;color:var(--fog);opacity:.7;margin-top:0.5rem;letter-spacing:.03em}

/* ── Intro: score + creator-pulse stat block (bigger, cleaner) ── */
.isc-sub{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);letter-spacing:.02em}.isc-sub b{color:var(--cloud)}
.isc-meta{font-family:var(--fm);font-size:0.5625rem;color:var(--fog)}.isc-meta b{color:var(--cloud)}
.intro-sent-empty{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);font-style:italic;padding-top:0.125rem}
.intro-ptrow{margin-bottom:0.625rem}
/* description drop-down */
.intro-desc-wrap{margin:0.25rem 0 0.875rem}
.intro-desc{font-size:0.71875rem;line-height:1.55;color:var(--fog);margin:0}
.intro-desc.clamped{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.intro-desc-toggle{margin-top:0.25rem;background:none;border:none;color:var(--green);font-family:var(--fm);font-size:0.625rem;font-weight:600;cursor:pointer;padding:0;display:inline-flex;align-items:center;gap:0.1875rem}
.intro-desc-toggle:hover{text-decoration:underline}
.intro-desc-toggle .chev{font-size:0.75rem;line-height:1}

/* Combined market row — price block (left) + sparkline & returns (right): uses the full
   width so the header is shorter and news/footer fit without scrolling. */
.ix-market{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-bottom:0.625rem;margin-bottom:0.625rem;border-bottom:0.0625rem solid var(--rim)}
.ix-price-block{display:flex;align-items:baseline;gap:0.5rem;flex-wrap:wrap}
.ix-spark-block{display:flex;align-items:center;gap:0.75rem;margin-left:auto}
/* tighten overall vertical rhythm so it fits without scroll */
.intro-card .ix-id{margin-bottom:0.5rem}
.intro-card .intro-card .intro-news{margin-bottom:0.5rem}

/* ── Compact creator-pulse strip (replaces the tall two-card block) ── */
.intro-pulse{margin:0.5rem 0 0.625rem}
.ipulse-metrics{display:flex;align-items:center;gap:0.5rem 0.875rem;flex-wrap:wrap;font-family:var(--fm);font-size:0.6875rem;color:var(--fog);margin-bottom:0.4375rem}
.ipulse-metrics b{color:var(--cloud);font-weight:700}
.ipulse-score{font-weight:700;padding:0.1875rem 0.4375rem;border-radius:0.375rem;border:0.0625rem solid var(--rim);background:var(--bg2);color:var(--cloud)}
.ipulse-score i{font-style:normal;opacity:.5;font-size:0.5625rem}
.ipulse-score.intro-score-high{color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,transparent)}
.ipulse-score.intro-score-mid{color:var(--gold)}.ipulse-score.intro-score-low{color:#e0796b}
.ipulse-win{color:var(--mist);font-size:0.625rem}
.intro-sent-empty{font-family:var(--fm);font-size:0.5625rem;color:var(--fog);font-style:italic}
/* fit-without-scroll: tighten everything */
.intro-card .ix-crumb{margin-bottom:0.375rem}
.intro-card .ix-id{margin-bottom:0.4375rem}
.intro-card .ix-market{padding-bottom:0.5rem;margin-bottom:0.5rem}
.intro-desc.clamped{-webkit-line-clamp:2}
.intro-desc-wrap{margin:0.125rem 0 0.625rem}
.intro-news{gap:0.375rem;margin-bottom:0.5rem}
.intro-news-card{padding:0.375rem}
.intro-news-img{width:2.25rem;height:2.25rem}
.intro-news-head{margin:0.25rem 0 0.3125rem}
.intro-foot{padding-top:0.4375rem}
.ipulse-primary b{color:var(--green)}
.ipulse-muted{opacity:.7}
