/* TradinZ workspace — shared ink, ice-blue and glass visual language with iOS. */
:root {
  color-scheme: dark;
  --bg: #0b1018;
  --panel: #121c29;
  --panel-2: #172332;
  --text: #eef4fb;
  --muted: #93a4b8;
  --accent: #9bc7ff;
  --up: #65d6b0;
  --down: #f48d96;
  --warn: #edc58b;
  --border: rgba(183, 207, 238, .105);
  --glass: rgba(24, 35, 50, .64);
  --glass-strong: rgba(36, 51, 71, .76);
  --glass-border: rgba(194, 217, 249, .14);
  --glass-highlight: inset 0 1px 0 rgba(255, 255, 255, .075);
  --chip-bg: rgba(168, 199, 239, .045);
  --chip-bg-hover: rgba(168, 199, 239, .11);
  --chip-active: rgba(155, 199, 255, .15);
  --radius-card: 20px;
  --workspace-left: 256px;
}
html { background: var(--bg); scroll-padding-top: 100px; }
body { background: transparent; color: var(--text); letter-spacing: -.012em; line-height: 1.5; }
body::before { background: radial-gradient(ellipse at 50% -15%, rgba(54, 91, 134, .21), transparent 57%), radial-gradient(ellipse at 0% 70%, rgba(30, 60, 73, .12), transparent 50%), var(--bg); }
button, input, select, textarea { font-family: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
button:disabled { opacity: .45; cursor: wait; }
[hidden] { display: none !important; }
.skip-link { position: fixed; top: -80px; left: 20px; z-index: 9999; background: var(--panel); padding: 12px 20px; color: var(--text); border: 1px solid var(--accent); border-radius: 12px; }
.skip-link:focus { top: 12px; }
.workspace-nav { position: fixed; z-index: 80; inset: 16px auto 16px 16px; width: 216px; display: flex; flex-direction: column; border: 1px solid var(--glass-border); border-radius: 24px; padding: 23px 12px 16px; background: linear-gradient(150deg, rgba(36, 52, 72, .64), rgba(15, 24, 35, .84) 60%); backdrop-filter: blur(22px) saturate(140%); -webkit-backdrop-filter: blur(22px) saturate(140%); box-shadow: var(--glass-highlight), 0 18px 55px #0003; }
.brand { display: flex; align-items: center; gap: 11px; padding: 0 10px 27px; color: var(--text); text-decoration: none; }
.brand-emblem { width: 40px; height: 40px; flex: none; display: grid; place-items: center; }
.brand-emblem img { display: block; width: 100%; height: 100%; object-fit: contain; }
.auth-brand-icon { display: block; width: 80px; height: 80px; object-fit: contain; margin: 0 auto 14px; }
.brand-mark { font-size: 22px; font-weight: 680; letter-spacing: -.06em; line-height: 1.2; }
.brand-z { color: var(--accent); }
.brand .subtitle { font-size: 9px; letter-spacing: .015em; margin-top: 4px; white-space: nowrap; }
.workspace-nav .watchlist-bar { position: static; padding: 0; background: none; border: none; overflow-y: auto; min-height: 0; flex: 1; will-change: auto; }
.workspace-nav .watchlist-tabs { display: flex; flex-direction: column; align-items: stretch; padding: 0; width: 100%; background: none !important; border: 0; border-radius: 0; box-shadow: none; overflow: visible; }
.nav-group { padding-bottom: 22px; }
.nav-group-label { display: block; padding: 0 13px 9px; color: #7e90a7; font-size: 10px; font-weight: 600; letter-spacing: .10em; text-transform: uppercase; }
.workspace-nav .watchlist-tab { display: flex; align-items: center; gap: 11px; width: 100%; padding: 11px 12px; margin: 3px 0; min-height: 43px; border: 1px solid transparent; border-radius: 12px; color: #9dacc0; font-size: 12px; font-weight: 500; letter-spacing: 0; text-align: left; background: transparent; box-shadow: none; }
.watchlist-tab svg { width: 18px; height: 18px; flex: none; opacity: .85; }
.workspace-nav .watchlist-tab:hover { color: var(--text); background: #b5d4ff09; }
.workspace-nav .watchlist-tab.active { color: #dbeaff; border-color: #b3d4ff23; background: linear-gradient(115deg, #9bc7ff22, #9bc7ff0b); box-shadow: inset 0 1px 0 #ffffff0c, 0 4px 12px #00000012; }
.nav-indicator { width: 5px; height: 5px; margin-left: auto; border-radius: 50%; background: transparent; }
.active .nav-indicator { background: var(--accent); box-shadow: 0 0 10px #9bc7ff40; }
.sidebar-note { display: grid; gap: 7px; margin: 8px 8px 0; padding: 16px 9px 2px; border-top: 1px solid var(--border); }
.sidebar-note-mark { color: var(--accent); font-size: 22px; }
.sidebar-note strong { font-size: 12px; font-weight: 550; }
.sidebar-note > span:not(.sidebar-note-mark) { color: var(--muted); font-size: 11px; max-width: 145px; }
.sidebar-note a { margin-top: 5px; color: var(--accent); font-size: 10px; text-decoration: none; }
.topbar { margin-left: var(--workspace-left); min-height: 84px; padding: 15px 32px 15px 8px; display: flex; gap: 20px; border: 0; border-bottom: 1px solid var(--border); position: relative; background: transparent !important; box-shadow: none; z-index: 70; }
.workspace-breadcrumb { display: flex; gap: 11px; font-size: 11px; align-items: center; color: #7e90a7; white-space: nowrap; }
.workspace-breadcrumb strong { color: #c8d4e3; font-weight: 500; }
.topbar .search-wrap { flex: 1; width: auto; min-width: 180px; max-width: 360px; margin-left: auto; padding: 0 13px; height: 40px; border-radius: 12px; border: 1px solid var(--border); background: #b1cff308; box-shadow: inset 0 1px 0 #ffffff04; }
.search-icon { position: static; width: 17px; height: 17px; flex: none; font-size: 16px; }
.search-wrap input { min-width: 0; width: 100%; padding: 0 8px; font-size: 11px; }
.search-wrap input::placeholder { color: #8799af; }
.search-shortcut { border: 1px solid #bfdcff20; border-radius: 5px; font: 11px inherit; padding: 0 5px; color: var(--muted); }
.search-wrap:focus-within { border-color: #9bc7ff66; box-shadow: 0 0 0 3px #9bc7ff0a; }
.topbar .meta { gap: 10px; flex: none; font-size: 10px; }
.topbar .updated { display: none; }
.status { max-width: 150px; }
#statusText { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 125px; }
.dot { width: 6px; height: 6px; }
.dot.ok { box-shadow: 0 0 9px #65d6b035; }
.btn, #refreshBtn, .al-btn { background: #b5d1f20a; border: 1px solid var(--glass-border); border-radius: 10px; min-height: 36px; padding: 8px 12px; font-size: 11px; color: #c9d8eb; box-shadow: inset 0 1px 0 #ffffff05; }
.btn:hover, #refreshBtn:hover { background: #b5d1f215; border-color: #bed7f638; }
.load-progress { margin-left: var(--workspace-left); height: 2px; background: transparent; }
main#workspaceMain { margin-left: var(--workspace-left); padding: 29px 32px 40px 8px; min-width: 0; outline: none; }
.page-intro { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.eyebrow { display: block; font-size: 10px; letter-spacing: .14em; font-weight: 600; color: #8ea5c1; margin-bottom: 7px; }
.page-intro h1 { font-size: clamp(26px, 2.4vw, 35px); line-height: 1.2; font-weight: 560; letter-spacing: -.045em; margin: 0; }
.page-intro p { margin: 9px 0 0; font-size: 12px; color: var(--muted); }
.page-actions { display: flex; gap: 14px; align-items: center; white-space: nowrap; }
#workspaceDate { color: var(--muted); font-size: 11px; }
.workspace-overview { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 25px; }
.overview-card { position: relative; display: flex; flex-direction: column; gap: 12px; padding: 19px 20px; border: 1px solid var(--glass-border); border-radius: 18px; background: linear-gradient(125deg, #c2ddff0b, #8babd203); box-shadow: var(--glass-highlight), 0 8px 24px #0000000d; overflow: hidden; }
.overview-card::after { position: absolute; content: ''; height: 1px; left: 24px; right: 24px; top: 0; background: linear-gradient(90deg,transparent,#d8eaff24,transparent); }
.overview-label { font-size: 11px; color: #acbace; }
.overview-value { font-size: 29px; line-height: 1.1; font-weight: 550; letter-spacing: -.04em; font-variant-numeric: tabular-nums; }
.overview-value.up { color: var(--up); }.overview-value.down { color: var(--down); }
.overview-note { font-size: 10px; color: #7f93ac; }
.filters { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding: 0 0 16px; background: transparent; border: none; min-height: 0; }
.filter-group { flex-wrap: wrap; gap: 6px; }
.filter-group.right { margin-left: auto; }
.watchlist-desc { display: none !important; }
.auto { font-size: 10px; gap: 7px; }
.auto input { accent-color: #9bc7ff; width: 13px; height: 13px; }
.chip, .chip.active, .watchlist-tab { transition: background .18s ease, border-color .18s ease, color .18s ease; }
.chip { padding: 7px 12px; font-size: 11px; border-radius: 9px; border-color: transparent; color: var(--muted); background: transparent; }
.chip.active, .chip.chip-primary { color: #d9e9ff; border-color: #9bc7ff33; background: #9bc7ff14; box-shadow: inset 0 1px 0 #ffffff09; }
.chip.chip-back { margin-right: 7px; background: #9bc7ff08; border-color: var(--border); }
.table-scroll { border-radius: var(--radius-card); border-color: var(--glass-border); background: linear-gradient(155deg,#a9c9f208,#a9c9f202), rgba(15,23,34,.72); box-shadow: var(--glass-highlight), 0 12px 40px #00000015; scrollbar-color: #455b7380 transparent; scrollbar-width: thin; }
thead th { padding: 15px 15px; font-size: 9px; letter-spacing: .085em; color: #8095ae; font-weight: 550; background: #141e2b; border-bottom-color: var(--glass-border); }
tbody td { padding: 16px 15px; border-bottom-color: #b5d3fb0b; font-size: 12px; }
tbody tr:hover > td { background: #bedbff05; }
.company { color: #e4edf9; font-size: 12px; font-weight: 540; }
.ticker { font-size: 11px; letter-spacing: .02em; font-weight: 650; color: var(--accent); }
.verdict { font-size: 10px; color: #9eafc4; line-height: 1.55; }
.verdict b { border-radius: 4px; font-size: 9px; padding: 2px 5px; }
.short-read { font-size: 9px; opacity: .7; }
.price { font-size: 13px; font-weight: 550; letter-spacing: -.01em; }
body[data-metrics="essential"] #stocksTable { width: 100%; min-width: 780px; table-layout: auto; }
body[data-metrics="essential"] #stocksTable > thead > tr > th:is(:nth-child(1),:nth-child(5),:nth-child(7),:nth-child(n+9):nth-child(-n+21),:nth-child(23),:nth-child(24)),
body[data-metrics="essential"] #stocksTable > tbody > tr:not(.detail-row) > td:not([colspan]):is(:nth-child(1),:nth-child(5),:nth-child(7),:nth-child(n+9):nth-child(-n+21),:nth-child(23),:nth-child(24)) { display: none; }
body[data-metrics="essential"] #stocksTable > tbody > tr:not(.detail-row) > td:nth-child(3) { min-width: 160px; max-width: 280px; width: 30%; white-space: normal; }
body[data-metrics="essential"] #stocksTable .company { display: block; }
body[data-metrics="essential"] #stocksTable .verdict { display: block; overflow: hidden; max-width: 270px; text-overflow: ellipsis; white-space: nowrap; }
body[data-metrics="essential"] #stocksTable .short-read { display: none; }
/* Content glass uses static highlights, keeping large tables smooth to scroll. */
.st-section, .radar-col, .st-card, .model-block, .st-latest-q, .adv-card, .gp-section, .st-col, .lists-card, .inf-card, .cons-brief, .cons-note, .research-card {
  background: linear-gradient(135deg,#c7ddfa09,transparent 70%),rgba(19,29,42,.74);
  border: 1px solid var(--glass-border); border-radius: var(--radius-card); box-shadow: var(--glass-highlight),0 8px 30px #00000015;
}
.st-section, .radar-col, .adv-card, .gp-section, .st-col, .research-card { padding: 23px; margin-bottom: 20px; }
.st-section h3, .radar-col h2, .gp-section h3, .research-card h3 { font-size: 15px; letter-spacing: -.025em; font-weight: 560; margin-top: 0; margin-bottom: 13px; color: #e8f1fd; }
.panel-src, .detail-note, .research-source, .st-check { font-size: 11px; line-height: 1.65; color: #8ea2bb; }
.radar-grid, .pulse-view .radar-grid { gap: 20px; }
.p-row { padding: 15px 0; column-gap: 14px; border-bottom-color: #bdd9ff0b; }
.p-l1 { font-size: 12px; line-height: 1.6; font-weight: 500; }.p-l2 { color: var(--muted); line-height: 1.6; }
.p-when { font-size: 9px; color: #7c91ab; }.p-price { font-weight: 550; }.p-chg { font-size: 11px; }
.pf-summary { gap: 14px; }.pf-card { border: 1px solid var(--glass-border); background: linear-gradient(130deg,#b7d5ff0b,#b7d5ff03); border-radius: 18px; padding: 19px 20px; box-shadow: var(--glass-highlight); }
.pf-k { font-size: 10px; text-transform: none; letter-spacing: 0; color: var(--muted); }.pf-v { margin-top: 11px; font-size: 27px; font-weight: 550; letter-spacing: -.04em; }
.pf-v small { font-size: 12px; letter-spacing: 0; }.pf-card.sub .pf-v { font-size: 23px; }
.st-head { gap: 15px; margin: 6px 0 20px; }.st-ticker { font-size: 28px; letter-spacing: -.04em; }.st-price { font-size: 27px; font-weight: 550; }.st-name { color: var(--muted); }
.st-stats { gap: 10px; margin-bottom: 22px; }.st-stat { background: #aacdf809; border-color: var(--border); border-radius: 12px; padding: 12px 16px; }.st-stat-v { font-size: 16px; font-weight: 550; }.st-stat-k { font-size: 9px; letter-spacing: .055em; }
.st-tiers { gap: 20px; }.st-card { padding: 20px; }.st-card-val { font-size: 30px; letter-spacing: -.04em; }
.lists-grid { gap: 18px; grid-template-columns: repeat(auto-fill,minmax(265px,1fr)); }.lists-card { padding: 25px; transition: transform .2s,border-color .2s,background .2s; }.lists-card:hover { transform: translateY(-3px); border-color: #9bc7ff4a; background: linear-gradient(135deg,#c7ddfa12,transparent),#162233; }.lists-name { font-size: 17px; font-weight: 550; letter-spacing: -.03em; }.lists-desc { color: var(--muted); line-height: 1.65; font-size: 12px; }
.inf-card { padding: 22px; }.inf-name { font-size: 16px; font-weight: 550; }.inf-style { color: var(--muted); }.guru-meta { margin: 12px 0; color: var(--muted); }
.research-card { margin: 20px 0; }.research-row { padding: 14px 0; border-color: #bdd9ff0d; font-size: 12px; }.research-row b { font-weight: 550; }.research-table th { font-size: 9px; }.research-table td { font-size: 11px; padding: 13px 12px; }.research-warning { color: var(--warn); }
input:not([type=checkbox]):not([type=range]):not([type=search]), select, textarea { border-radius: 10px; border-color: var(--glass-border); }
input[type=range] { accent-color: var(--accent); }
.workspace-footer { margin-left: var(--workspace-left); padding: 0 32px 26px 8px; border: none; font-size: 10px; color: #7f92aa; display: block; }
.footer-heading { display: flex; justify-content: space-between; align-items: center; border-top: 1px solid var(--border); padding-top: 19px; gap: 12px; margin-bottom: 12px; }.footer-heading > span { color: #c7d6e9; }.workspace-footer a { color: var(--muted); text-decoration: none; }.workspace-footer details { line-height: 1.8; max-width: 1150px; }.workspace-footer summary { cursor: pointer; font-size: 10px; }.workspace-footer details > span { display: block; margin-top: 12px; }
#companionFab, .companion-fab { box-shadow: 0 8px 28px #0005, inset 0 1px 0 #ffffff30; }
@media(min-width:1500px) { .pulse-view .radar-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:1200px) {
  :root { --workspace-left: 222px; }
  .workspace-nav { width: 188px; }.brand { gap: 8px; padding-left: 6px; }.brand .subtitle { font-size: 8px; }.brand-mark { font-size: 20px; }
  .topbar { gap: 12px; }.workspace-breadcrumb { display: none; }.topbar .search-wrap { margin-left: 0; max-width: none; }
  main#workspaceMain { padding-right: 24px; }.topbar { padding-right: 24px; }.overview-card { padding: 16px; }.overview-value { font-size: 26px; }.page-actions { flex-direction: column; align-items: end; gap: 8px; }
}
@media(max-width:900px) {
  :root { --workspace-left: 0px; }
  .workspace-nav { position: sticky; top: 0; inset-inline: 0; width: 100%; border-radius: 0; border-width: 0 0 1px; padding: 10px 16px; display: block; background: rgba(15,24,35,.90); }
  .workspace-nav .brand, .sidebar-note, .nav-group-label, .nav-indicator { display: none; }
  .workspace-nav .watchlist-bar { overflow-x: auto; scrollbar-width: none; }.workspace-nav .watchlist-tabs { flex-direction: row; gap: 10px; }.nav-group { display: flex; gap: 3px; padding: 0; flex: none; }.workspace-nav .watchlist-tab { width: auto; min-height: 40px; margin: 0; padding: 9px 12px; gap: 7px; font-size: 11px; }.watchlist-tab svg { width: 16px; height: 16px; }
  .topbar { min-height: 72px; padding: 14px 20px; }.topbar .meta { gap: 8px; }.status { max-width: 100px; }#statusText { max-width: 80px; }
  main#workspaceMain { padding: 24px 20px 30px; }.workspace-footer { padding: 0 20px 24px; }.page-intro { gap: 18px; margin-bottom: 22px; }.page-intro h1 { font-size: 29px; }
  .st-tiers { grid-template-columns: minmax(0,1fr); }.workspace-overview { gap: 10px; }.overview-card { padding: 16px 13px; }.overview-label { font-size: 10px; }
}
@media(max-width:600px) {
  .topbar { padding: 12px 16px; gap: 9px; }.topbar .search-wrap { min-width: 0; height: 40px; }.topbar .status, .topbar .updated, .search-shortcut, .topbar .auth-chip { display: none; }.topbar .meta { gap: 6px; }.topbar .btn, #refreshBtn, .al-btn { font-size: 10px; padding: 7px 9px; min-height: 36px; }
  .page-intro { align-items: flex-start; gap: 14px; }.page-intro h1 { font-size: 26px; }.page-intro p { font-size: 11px; line-height: 1.6; }.page-actions { padding-top: 23px; }.page-actions #workspaceDate { display: none; }.metric-toggle { font-size: 10px; padding: 7px 9px; min-height: 34px; }.eyebrow { font-size: 9px; }
  main#workspaceMain { padding: 22px 16px 28px; }.workspace-overview { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-bottom: 19px; }.overview-card { padding: 15px 16px; gap: 10px; border-radius: 16px; }.overview-value { font-size: 26px; }.overview-note { font-size: 9px; }
  .filters { gap: 10px; }.filter-group.right { margin-left: 0; }.filter-group .chip { padding: 7px 9px; font-size: 10px; }
  .st-section, .radar-col, .research-card, .st-col, .adv-card, .gp-section, .inf-card { padding: 17px; border-radius: 17px; }.st-section h3, .radar-col h2 { font-size: 14px; }.research-row { gap: 9px; }.lists-grid { grid-template-columns: minmax(0,1fr); }.lists-card { padding: 23px; }.pf-summary { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }.pf-card { padding: 16px; }.pf-v { font-size: 23px; }.pf-v small { font-size: 10px; }.pf-summary.xray-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .footer-heading { align-items: flex-start; flex-direction: column; gap: 7px; }.workspace-footer { padding-inline: 16px; }.p-row { grid-template-columns: 50px minmax(0,1fr) auto; column-gap: 8px; }
}
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; } }
@media(prefers-reduced-transparency:reduce) { .workspace-nav { background: #131e2c; backdrop-filter: none; -webkit-backdrop-filter: none; }.overview-card,.st-section,.radar-col,.research-card,.lists-card { background: #142030; } }

/* Source-specific forecasts stay within the detail column at every width. */
body[data-mode="stock"] .stock-company-header { align-items:center; justify-content:space-between; gap:20px; margin:0 0 24px; padding:24px; border:1px solid var(--glass-border); border-radius:22px; background:linear-gradient(120deg,#abcfff10,#abcfff02); box-shadow:var(--glass-highlight); }
.stock-company-identity { flex:1 1 160px; min-width:0; }.stock-company-header .st-ticker { margin:0; font-size:clamp(30px,4vw,42px); line-height:1.1; font-weight:650; letter-spacing:-.045em; color:var(--text); }.stock-company-header .st-name { margin:8px 0 0; font-size:15px; color:#b9c9dc; overflow-wrap:anywhere; }
.stock-company-quote { display:grid; gap:5px; text-align:right; flex:0 1 auto; min-width:0; }.stock-company-header .st-price { font-size:clamp(28px,3.5vw,38px); font-weight:600; line-height:1.2; letter-spacing:-.04em; }.stock-company-quote > :last-child { font-size:13px; font-weight:550; }.stock-company-header .st-pills { flex-basis:100%; margin:0; padding-top:16px; border-top:1px solid var(--border); }
body[data-mode="stock"] .st-section > h3 { font-size:17px; font-weight:600; letter-spacing:-.025em; color:var(--text); margin-bottom:14px; }
body[data-mode="stock"] .st-stat-v { font-weight:600; } body[data-mode="stock"] .st-stat-k { color:#a7b9cf; }
@media(max-width:480px) { body[data-mode="stock"] .stock-company-header { padding:18px; gap:16px; }.stock-company-identity { flex-basis:120px; }.stock-company-header .st-name { font-size:13px; } }
.projection-years { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr)); gap:14px; margin-top:20px; align-items:start; }
.projection-year { min-width:0; padding:18px; border:1px solid var(--glass-border); border-radius:17px; background:linear-gradient(140deg,#abcfff0a,#abcfff02); overflow-wrap:anywhere; }
.projection-year header { display:grid; gap:8px; margin-bottom:18px; }
.projection-year h4 { margin:0; font-size:18px; font-weight:550; letter-spacing:-.035em; }
.projection-kind { font-size:10px; color:var(--accent); }.projection-modeled .projection-kind { color:var(--muted); }
.projection-fundamentals { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.projection-year small { display:block; font-size:10px; color:var(--muted); }.projection-fundamentals b { display:block; margin:5px 0; font-size:17px; font-weight:550; font-variant-numeric:tabular-nums; }
.projection-price { display:grid; gap:7px; margin-top:20px; padding-top:16px; border-top:1px solid var(--border); }.projection-price strong { font-size:29px; font-weight:550; letter-spacing:-.05em; font-variant-numeric:tabular-nums; }.projection-price > span { font-size:11px; }.projection-price small b { color:var(--text); font-weight:500; }
.projection-year .delta-up { color:var(--up); }.projection-year .delta-down { color:var(--down); }
.projection-details,.projection-method { margin-top:18px; font-size:11px; color:var(--muted); }.projection-details summary,.projection-method summary { cursor:pointer; }.projection-details p { margin:10px 0 0; line-height:1.65; }
.analyst-call-controls { display:flex; gap:14px; flex-wrap:wrap; margin:18px 0; }.analyst-call-controls label { display:grid; gap:6px; font-size:11px; color:var(--muted); min-width:0; flex:1 1 180px; }.analyst-call-controls input,.analyst-call-controls select { width:100%; min-width:0; padding:10px 12px; border:1px solid var(--glass-border); border-radius:11px; background:var(--panel); color:var(--text); }
.analyst-call-meta { display:flex; flex-wrap:wrap; gap:8px 18px; color:var(--muted); font-size:11px; }.analyst-call-meta b { font-weight:550; color:var(--text); }
.analyst-call-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr)); gap:12px; align-items:start; }
.analyst-call { min-width:0; padding:18px; border:1px solid var(--glass-border); border-radius:16px; background:#bddaff04; overflow-wrap:anywhere; }.analyst-call-heading { display:flex; flex-wrap:wrap; gap:8px; justify-content:space-between; }.analyst-call h4 { margin:0 0 5px; font-size:14px; font-weight:550; }.analyst-call small,.analyst-call time { color:var(--muted); font-size:10px; }.analyst-call-rating { display:flex; align-items:center; gap:9px; flex-wrap:wrap; margin-top:16px; font-size:12px; }.analyst-call-target { display:grid; gap:6px; margin-top:16px; }.analyst-call-target strong { font-size:25px; font-weight:550; letter-spacing:-.04em; font-variant-numeric:tabular-nums; }.analyst-call-target > span { font-size:11px; }
.forecast-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr)); gap:12px; margin:16px 0; }
.forecast-metrics > div { min-width:0; padding:12px; border:1px solid var(--border); border-radius:14px; background:#cce0ff06; }
.forecast-metrics b { display:block; margin-top:5px; font-variant-numeric:tabular-nums; }
.forecast-estimate { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:12px; padding:11px 0; border-bottom:1px solid var(--border); font-size:12px; overflow-wrap:anywhere; }
.forecast-estimate > :last-child { text-align:right; font-variant-numeric:tabular-nums; }
.forecast-estimates { padding-top:6px; }
.outlook-meta,.outlook-subhead,.outlook-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.outlook-meta { margin-bottom:20px; }.outlook-meta > span { font-size:9px; letter-spacing:.16em; color:var(--accent); }
.outlook-target { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:20px; padding:22px; border:1px solid #b8d7ff20; border-radius:20px; background:linear-gradient(125deg,#8fb9ff12,#b4deff03); }
.outlook-target strong { display:block; font-size:clamp(28px,5vw,42px); font-weight:550; letter-spacing:-.055em; font-variant-numeric:tabular-nums; margin:8px 0; }.outlook-target span { font-size:11px; color:var(--muted); }
.outlook-target-range { display:flex; flex-direction:column; justify-content:center; gap:16px; padding-left:20px; border-left:1px solid var(--border); }.outlook-target-range b { display:block; margin-top:5px; font-size:17px; font-weight:500; }
.outlook-sentiment { padding:22px 0; }.outlook-subhead h4 { margin:0; font-size:12px; font-weight:500; }.outlook-subhead > b { font-size:12px; text-transform:capitalize; }
.outlook-rating-bar { display:flex; height:7px; gap:3px; overflow:hidden; border-radius:8px; margin:14px 0; }.outlook-rating-bar span { min-width:3px; border-radius:3px; }
.outlook-rating-legend { display:flex; flex-wrap:wrap; gap:9px 16px; font-size:10px; color:var(--muted); }.outlook-rating-legend span { display:flex; align-items:center; gap:5px; }.outlook-rating-legend i { width:6px; height:6px; border-radius:50%; }.outlook-rating-legend b { color:var(--text); font-weight:500; }
.outlook-rating-bar .strong-buy,.outlook-rating-legend .strong-buy { background:#4bc4a2; }.outlook-rating-bar .buy,.outlook-rating-legend .buy { background:#8bcbb0; }.outlook-rating-bar .hold,.outlook-rating-legend .hold { background:#d1b87c; }.outlook-rating-bar .sell,.outlook-rating-legend .sell { background:#d99696; }.outlook-rating-bar .strong-sell,.outlook-rating-legend .strong-sell { background:#e77182; }
.outlook-section { padding:18px 0; border-top:1px solid var(--border); }.outlook-section > summary { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:13px; font-weight:550; list-style:none; }.outlook-section > summary::after { content:'+'; color:var(--muted); }.outlook-section[open] > summary::after { content:'−'; }.outlook-section > summary small { margin-left:auto; font-weight:400; }
.forward-estimate-tabs { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0; }
.forward-estimates .outlook-metric-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); }
.outlook-period { margin-top:20px; }.outlook-period h4 { font-size:11px; font-weight:550; color:var(--muted); margin:0 0 12px; }
.outlook-metric-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.outlook-metric { padding:15px; border:1px solid var(--border); border-radius:14px; background:#bddaff04; min-width:0; overflow-wrap:anywhere; }.outlook-metric > b { display:block; font-size:20px; font-weight:500; letter-spacing:-.03em; font-variant-numeric:tabular-nums; margin:7px 0; }.outlook-metric small:empty { display:none; }
.outlook-more { margin-top:12px; }.outlook-more > summary { color:var(--muted); font-size:11px; padding:6px 0; }.outlook-more .outlook-metric-grid { margin-top:10px; }
.outlook-activity { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.7fr); gap:14px; padding:17px 0; border-bottom:1px solid var(--border); font-size:12px; overflow-wrap:anywhere; }.outlook-activity b { font-weight:500; }.outlook-activity-value { text-align:right; font-variant-numeric:tabular-nums; }.outlook-activity-value > b { font-size:15px; }.outlook-rating-pill { display:inline-block; margin-top:8px; padding:4px 9px; border:1px solid var(--border); border-radius:20px; color:var(--muted); font-size:10px; text-transform:capitalize; }
.outlook-changes { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:15px 0; }.outlook-change { padding:12px; border-radius:12px; background:#bddaff05; }.outlook-change b { display:block; margin-top:6px; font-size:17px; font-weight:500; }
.outlook-footer { padding-top:14px; }.outlook-announcement { padding:15px 0; border-bottom:1px solid var(--border); }.outlook-announcement h4 { margin:7px 0; font-size:13px; font-weight:500; line-height:1.6; }
.research-card .positive { color:#75d6b0; }.research-card .negative { color:#ee94a1; }.outlook-explanation { margin-top:8px; font-size:11px; line-height:1.6; color:var(--muted); }.outlook-help summary { color:var(--muted); font-size:10px; margin-top:8px; }.outlook-help p { margin:8px 0 0; font-size:11px; line-height:1.6; color:var(--muted); }
.outlook-comparison { display:block; font-size:11px; margin-top:9px; font-variant-numeric:tabular-nums; }.outlook-comparison small { color:var(--muted); font-size:10px; }
.brief-label { display:flex; justify-content:space-between; align-items:center; gap:12px; color:var(--muted); font-size:10px; }.brief-label > span { padding:4px 8px; border-radius:20px; border:1px solid #aacbff30; color:var(--accent); }
.brief-headline { font-size:clamp(19px,2.8vw,25px); font-weight:550; line-height:1.35; letter-spacing:-.035em; margin:16px 0 10px; }.brief-summary { font-size:13px; line-height:1.75; color:var(--muted); max-width:85ch; }
.brief-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,130px),1fr)); gap:10px; margin:20px 0; }.brief-stats > div { padding:12px; border:1px solid var(--border); border-radius:13px; background:#bddaff05; min-width:0; }.brief-stats b { display:block; margin-top:7px; font-size:19px; font-weight:500; letter-spacing:-.025em; font-variant-numeric:tabular-nums; }
.brief-columns { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr)); gap:18px; }.brief-points { padding-top:6px; }.brief-points h4 { font-size:11px; font-weight:550; margin:0 0 9px; }.brief-strengths h4 { color:#75d6b0; }.brief-risks h4 { color:#ee94a1; }.brief-watch h4 { color:var(--accent); }.brief-points ul { margin:0; padding-left:15px; }.brief-points li { font-size:11px; line-height:1.65; margin:6px 0; color:var(--muted); }
@media(max-width:480px) { .outlook-target { gap:14px; padding:17px; }.outlook-target-range { padding-left:14px; }.outlook-metric { padding:12px; }.outlook-metric > b { font-size:17px; }.outlook-activity { grid-template-columns:minmax(0,1fr) minmax(0,.7fr); } }
@media(max-width:480px) { .forecast-estimate { grid-template-columns:minmax(0,1fr); gap:5px; }.forecast-estimate > :last-child { text-align:left; } }
/* The workspace supplies the outer spacing for every destination. */
.portfolio-view, .feed-view, .radar-view, .influencers-view, .pulse-view, .advisor-view, .stock-view, .builder-view, .lists-view { padding: 0 0 28px; max-width: none; margin: 0; min-width: 0; }
.topbar .updated { display: block; font-size: 9px; color: #8196af; white-space: nowrap; }
#companionBtn { background: linear-gradient(135deg,#324d6c,#172738); border-color: #a6cfff45; color: #d5e7ff; box-shadow: inset 0 1px 0 #ffffff1c,0 10px 26px #0004; }
#companionPanel, #alertsPanel { background: rgba(19,30,44,.97); border-color: var(--glass-border); border-radius: 20px; }
@media(max-width:600px) {
  .topbar { flex-wrap: wrap; row-gap: 8px; }
  .topbar .meta { display: contents; }
  .topbar .status { display: flex; order: 3; flex: 1 1 45%; max-width: none; font-size: 9px; }
  .topbar #statusText { max-width: none; }
  .topbar .updated { display: block; order: 3; margin-left: auto; }
  body[data-metrics="essential"] #stocksTable { width: 100%; min-width: 0; table-layout: fixed; }
  body[data-metrics="essential"] #stocksTable > thead > tr > th:is(:nth-child(8),:nth-child(22),:nth-child(25),:nth-child(26),:nth-child(27)),
  body[data-metrics="essential"] #stocksTable > tbody > tr:not(.detail-row) > td:not([colspan]):is(:nth-child(8),:nth-child(22),:nth-child(25),:nth-child(26),:nth-child(27)) { display: none; }
  body[data-metrics="essential"] #stocksTable > thead > tr > th:nth-child(2) { width: 17%; }
  body[data-metrics="essential"] #stocksTable > thead > tr > th:nth-child(3) { width: 33%; }
  body[data-metrics="essential"] #stocksTable > thead > tr > th:nth-child(4) { width: 25%; }
  body[data-metrics="essential"] #stocksTable > thead > tr > th:nth-child(6) { width: 25%; }
  body[data-metrics="essential"] #stocksTable > tbody > tr:not(.detail-row) > td:nth-child(3) { min-width: 0; max-width: none; width: auto; }
  body[data-metrics="essential"] #stocksTable > thead > tr > th { padding: 13px 9px; font-size: 8px; }
  body[data-metrics="essential"] #stocksTable > tbody > tr:not(.detail-row) > td { padding: 16px 9px; font-size: 10px; overflow: hidden; text-overflow: ellipsis; }
  body[data-metrics="essential"] #stocksTable .company { font-size: 10px; line-height: 1.45; }
  body[data-metrics="essential"] #stocksTable .verdict { display: none; }
  body[data-metrics="essential"] #stocksTable .price { font-size: 11px; }
  body[data-metrics="essential"] #stocksTable .ticker { font-size: 9px; }
}
@media(max-width:600px) { .topbar .search-wrap { flex: 1 1 calc(100% - 140px); max-width: none; } }

.footer-disclaimer { margin: 0 0 8px; color: var(--muted); font-size: 10px; }
.chip.active:hover, .st-chart-tabs .chip.active, .bld-modes .chip.active { color: #d9e9ff; border-color: #9bc7ff33; background: #9bc7ff1c; box-shadow: inset 0 1px 0 #ffffff12; }
.st-chart-tabs, .bld-modes { border-radius: 12px; background: #9bc7ff05; }.st-chart-tabs .chip, .bld-modes .chip { border-radius: 8px; }
.brand-z { background: none; color: var(--accent); }
/* Repeated quote reference keeps future prices comparable without scrolling. */
.stock-view .stock-price-reference {
  display:inline-flex; align-items:center; flex-wrap:wrap; gap:5px 8px;
  align-self:start; justify-self:start; width:fit-content; max-width:100%;
  padding:5px 9px; margin:6px 0; border:1px solid #a9cfff24; border-radius:9px;
  background:linear-gradient(135deg,#b9d8ff0c,#b9d8ff04); color:var(--muted);
  font-size:10px; font-weight:400; line-height:1.45; letter-spacing:0;
}
.stock-view .stock-price-reference > strong {
  display:inline; margin:0; color:var(--text); font-size:12px; font-weight:550;
  line-height:1.45; letter-spacing:0; font-variant-numeric:tabular-nums;
}
.stock-view .outlook-target .stock-price-reference { margin:8px 0 12px; }
.stock-view .analyst-call-target .stock-price-reference { gap:4px 6px; padding:4px 7px; margin:0; }
#stockAnalystCalls .analyst-call-target .stock-price-reference > strong { font-size:11px; line-height:1.45; letter-spacing:0; }
/* Clear creation actions and consistent spacing between watchlist groups. */
.lists-view .lists-grid { gap: 18px; grid-template-columns: repeat(auto-fill,minmax(min(100%,260px),1fr)); margin-bottom: 36px; }
.lists-view .lists-h { display:flex; flex-wrap:wrap; align-items:baseline; gap:8px 14px; margin:0 0 18px; line-height:1.45; }
.lists-view .lists-h .pill-sub { margin:0; font-size:12px; font-weight:400; }
.lists-section-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; margin-bottom:18px; }
.lists-section-heading .lists-h { margin:0; }
.list-create-button { display:inline-flex; align-items:center; gap:9px; min-height:44px; padding:10px 17px; border:1px solid #b2d6ff70; border-radius:13px; color:#eff7ff; background:linear-gradient(135deg,#5687c74a,#436fba30); box-shadow:inset 0 1px 0 #ffffff24,0 5px 20px #0002; font:inherit; font-size:13px; font-weight:600; cursor:pointer; }
.list-create-button > span { font-size:23px; line-height:1; }
.lists-view .lists-card { min-width:0; min-height:176px; padding:23px; gap:11px; }
.lists-view .lists-new { position:relative; border-color:#a2cbff64; background:radial-gradient(ellipse at top right,#84b9ff20,transparent 75%),linear-gradient(135deg,#37547c42,#12253a80); }
.lists-create-icon { display:grid; place-items:center; width:36px; height:36px; border:1px solid #bddcff48; border-radius:11px; background:#acd1ff14; font-size:25px; color:#c4e1ff; }
.lists-create-link { display:flex; justify-content:space-between; gap:12px; margin-top:auto; padding-top:6px; font-size:12px; font-weight:600; color:#bddcff; }
.lists-view .scr-builder { margin:0 0 36px; }
.list-create-button:focus-visible,.lists-card:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
/* The chart owns its internal table layout; app table rules must not leak in. */
:is(.st-chart-box,.panel-chart-canvas) { width:100%; min-width:0; overflow:hidden; touch-action:pan-y; }
:is(.st-chart-box,.panel-chart-canvas) table { min-width:0 !important; max-width:100%; border-collapse:separate !important; border-spacing:0; }
:is(.st-chart-box,.panel-chart-canvas) :is(td,th) { padding:0 !important; border:0 !important; min-width:0 !important; background:none !important; position:static !important; }
.stock-view .st-chart-tabs { gap:5px; row-gap:10px; max-width:100%; }
.stock-view .st-chart-meta { min-width:0; }
/* The first useful forecast numbers remain visible before opening details. */
.outlook-preview { display:grid; gap:15px; margin:22px 0 8px; }
.outlook-preview-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr)); gap:12px; }
.outlook-preview-grid > div { display:flex; flex-direction:column; gap:9px; min-width:0; padding:16px; border:1px solid var(--glass-border); border-radius:13px; background:#aacfff07; }
.outlook-preview-grid small,.outlook-preview-grid span,.outlook-latest > span { font-size:11px; color:var(--muted); line-height:1.5; }
.outlook-preview-grid strong { font-size:23px; letter-spacing:-.035em; font-weight:550; font-variant-numeric:tabular-nums; }
.outlook-latest { display:grid; gap:7px; padding:15px 17px; border-left:2px solid #a8cfff70; border-radius:0 10px 10px 0; background:#9bc7ff06; }
.outlook-latest b { font-size:13px; font-weight:550; }.outlook-latest p { margin:0; font-size:12px; line-height:1.5; }
/* Predictable rows keep calls comparable even when source fields are absent. */
#stockAnalystCalls .analyst-call-guide { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); gap:16px; margin:18px 0 22px; }
.analyst-call-guide > div { display:grid; align-content:start; gap:6px; padding-left:12px; border-left:2px solid #b2d6ff35; }
.analyst-call-guide b { font-size:12px; font-weight:550; }.analyst-call-guide span { color:var(--muted); font-size:12px; line-height:1.6; }
#stockAnalystCalls .analyst-call-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr)); gap:16px; align-items:stretch; }
#stockAnalystCalls .analyst-call { display:flex; flex-direction:column; gap:16px; padding:20px; }
#stockAnalystCalls .analyst-call-heading { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:12px; min-height:48px; }
#stockAnalystCalls .analyst-call-heading h4 { line-height:1.4; font-size:15px; margin:0 0 4px; }
#stockAnalystCalls .analyst-call-heading time { padding-top:3px; white-space:nowrap; }
#stockAnalystCalls .analyst-call-heading small { display:block; line-height:1.5; }
#stockAnalystCalls .analyst-call-rating { align-content:start; margin:0; min-height:42px; line-height:1.6; }
#stockAnalystCalls .analyst-call-target { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; margin:0; padding:15px 0; border-top:1px solid var(--glass-border); border-bottom:1px solid var(--glass-border); }
.analyst-call-target-main,.analyst-call-gap { display:grid; align-content:start; gap:9px; }
#stockAnalystCalls .analyst-call-target strong { font-size:25px; line-height:1.3; }
.analyst-call-gap b { font-size:21px; font-weight:550; font-variant-numeric:tabular-nums; line-height:1.5; }
.analyst-call-context { display:grid; align-content:start; gap:8px; min-height:40px; font-size:11px; color:var(--muted); line-height:1.5; }
.analyst-call-context b { font-weight:500; }
.analyst-call-footer { margin:auto 0 0; border-top:1px solid var(--glass-border); padding:12px 0 0; background:none; }
.analyst-call-footer .outlook-help { margin:0; }.analyst-call-footer summary { line-height:1.5; }
@media(max-width:600px) { .list-create-button { width:100%; justify-content:center; }.lists-view .lists-grid { margin-bottom:28px; }#stockAnalystCalls .analyst-call { padding:16px; }#stockAnalystCalls .analyst-call-heading { grid-template-columns:minmax(0,1fr); gap:5px; }.st-chart-meta { flex-basis:100%; margin-left:0; } }
.al-note,.al-empty,.al-when { color: var(--muted); }.al-item.al-unread { border-left-color: var(--accent); background: #9bc7ff0c; }
/* Stock details follow their content container, including inside wide watchlists. */
#workspaceMain > .table-scroll, #portfolioView .table-scroll { container-type: inline-size; }
#workspaceMain .detail-panel {
  box-sizing: border-box; width: 100cqi; max-width: 100cqi;
  grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr));
}
.detail-panel > *, .stock-view > *, .st-tiers > * { min-width: 0; }
.panel-topbar, .panel-chart-head, .stock-view .st-chart-tabs, .panel-chart-tabs { flex-wrap: wrap; }
.panel-chart, .panel-chart-live, .panel-chart-canvas, .st-chart-box { min-width: 0; max-width: 100%; }
.stock-view .st-tiers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.stock-view .tier-line { white-space: normal; overflow-wrap: anywhere; }
.stock-data-wrap { min-width: 0; width: 100%; container: stock-table / inline-size; }
.stock-view .stock-data-table { width: 100%; min-width: 0; table-layout: fixed; }
.stock-data-table :is(th, td) { min-width: 0; white-space: normal; overflow-wrap: anywhere; }
@container stock-table (max-width: 1080px) {
.stock-data-table.stock-wide thead { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
.stock-data-table.stock-wide, .stock-data-table.stock-wide tbody { display: block; }
.stock-data-table.stock-wide tbody tr { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); padding: 10px 4px; border-bottom: 1px solid var(--border); }
.stock-data-table.stock-wide tbody :is(th, td) { display: block; width: auto; text-align: left; padding: 8px; border: 0; }
.stock-data-table.stock-wide tbody :is(th, td)::before { content: attr(data-label); display: block; color: var(--muted); font-size: 10px; font-weight: 400; margin-bottom: 5px; }
.stock-data-table.stock-wide tbody th { grid-column: 1 / -1; }
.stock-data-table.stock-wide tbody [colspan] { grid-column: 1 / -1; }
}
@container stock-table (max-width: 630px) {
.stock-data-table.stock-medium thead { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
.stock-data-table.stock-medium, .stock-data-table.stock-medium tbody { display: block; }
.stock-data-table.stock-medium tbody tr { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); padding: 10px 4px; border-bottom: 1px solid var(--border); }
.stock-data-table.stock-medium tbody :is(th, td) { display: block; width: auto; text-align: left; padding: 8px; border: 0; }
.stock-data-table.stock-medium tbody :is(th, td)::before { content: attr(data-label); display: block; color: var(--muted); font-size: 10px; font-weight: 400; margin-bottom: 5px; }
.stock-data-table.stock-medium tbody th { grid-column: 1 / -1; }
.stock-data-table.stock-medium tbody [colspan] { grid-column: 1 / -1; }
}
@container stock-table (max-width: 420px) {
.stock-data-table.stock-narrow thead { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); overflow: hidden; }
.stock-data-table.stock-narrow, .stock-data-table.stock-narrow tbody { display: block; }
.stock-data-table.stock-narrow tbody tr { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); padding: 10px 4px; border-bottom: 1px solid var(--border); }
.stock-data-table.stock-narrow tbody :is(th, td) { display: block; width: auto; text-align: left; padding: 8px; border: 0; }
.stock-data-table.stock-narrow tbody :is(th, td)::before { content: attr(data-label); display: block; color: var(--muted); font-size: 10px; font-weight: 400; margin-bottom: 5px; }
.stock-data-table.stock-narrow tbody th { grid-column: 1 / -1; }
.stock-data-table.stock-narrow tbody [colspan] { grid-column: 1 / -1; }
}
@media (max-width: 1100px) { .stock-view .st-tiers { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) {
  #workspaceMain .detail-panel { padding: 16px; }
  .detail-panel .hero-why { min-width: 0; }
  .panel-chart-meta { margin-left: 0; flex-basis: 100%; }
}

.stock-data-table details { min-width: 0; max-width: 100%; }
.stock-view .tier-line b { white-space: normal; }
/* Keep dossier measurements stable while tables change from columns to records. */
.stock-view .st-section:not(.st-chart-sec) { content-visibility: visible; contain-intrinsic-size: none; }

/* Research controls stay compact and do not replace the scrolling content. */
.market-status { font-size: 11px; color: var(--muted); display: inline-flex; align-items: center; gap: 5px; }
.market-status::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex-shrink: 0; }
.market-status.market-open { color: #67dba0; }
.stock-company-quote { flex-wrap: wrap; }
.stock-company-quote #stockMarketStatus { flex-basis: 100%; justify-content: flex-end; }
.advisor-preview { padding: 10px 14px; margin: 8px 0; background: rgba(125,155,190,.07); border: 1px solid rgba(125,155,190,.16); border-radius: 10px; font-size: 12px; line-height: 1.5; }
.advisor-preview b, .advisor-preview span { display: block; }
.advisor-preview span { color: var(--muted); margin-top: 3px; }
#companionPanel > .advisor-preview { margin: 8px 12px 0; }
.al-presets { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 12px; }
.al-rule > span { flex: 1; }

/* Animate the disclosure itself, leaving the portfolio and its chart mounted. */
#portfolioView .pf-detail-reveal {
  position: sticky; left: 0; width: 100cqi; max-width: 100cqi;
  overflow: clip; box-sizing: border-box;
}
#portfolioView .pf-detail-reveal > .detail-panel { position: static; width: 100%; max-width: 100%; }
#portfolioView .detail-row > td { padding: 0; border: 0; }
#portfolioView .panel-chart { min-height: 278px; }
#portfolioView .expand-btn { transition: transform 200ms ease; }
@media (prefers-reduced-motion: reduce) {
  #portfolioView .expand-btn { transition: none; }
}

/* Native select semantics, with a glass popup where customizable selects exist.
   Unsupported browsers keep their platform picker (including Safari's glass).
   https://developer.chrome.com/blog/a-customizable-select */
@supports (appearance: base-select) and selector(select::picker(select)) {
  select:not([multiple]):not([size]),
  select:not([multiple]):not([size])::picker(select) { appearance: base-select; }

  select:not([multiple]):not([size]) {
    box-sizing: border-box; min-inline-size: 0; max-inline-size: 100%;
    color: var(--text); cursor: pointer; gap: 12px; align-items: center;
    border: 1px solid rgba(194, 217, 249, .21); border-radius: 12px;
    background: linear-gradient(150deg, rgba(221, 237, 255, .10), rgba(128, 171, 221, .025) 55%), rgba(26, 39, 56, .72);
    box-shadow: inset 0 1px 0 #ffffff16, inset 0 -1px 0 #07101b38, 0 3px 10px #00000012;
    backdrop-filter: blur(16px) saturate(155%);
    transition: border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease;
  }
  select:not([multiple]):not([size]):hover:not(:disabled),
  select:not([multiple]):not([size]):open {
    border-color: rgba(194, 217, 249, .40);
    background-color: rgba(44, 63, 86, .78);
    box-shadow: inset 0 1px 0 #ffffff25, 0 4px 16px #00000020;
  }
  select:not([multiple]):not([size]):focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
  select:not([multiple]):not([size]):disabled { opacity: .45; cursor: not-allowed; }
  select:not([multiple]):not([size])::picker-icon {
    color: var(--muted); font-size: 11px; transition: rotate 150ms ease;
  }
  select:not([multiple]):not([size]):open::picker-icon { rotate: 180deg; color: var(--accent); }

  select:not([multiple]):not([size])::picker(select) {
    box-sizing: border-box; width: max-content; min-inline-size: anchor-size(width);
    max-inline-size: min(440px, calc(100vw - 24px)); max-block-size: min(380px, 60dvh);
    margin-block: 6px; padding: 6px; overflow-y: auto; overscroll-behavior: contain;
    color: var(--text); font-family: inherit; font-size: 13px; font-weight: 400; line-height: 1.45;
    border: 1px solid rgba(218, 234, 255, .26); border-radius: 17px;
    background: linear-gradient(145deg, rgba(220, 237, 255, .13), rgba(160, 195, 234, .035) 50%, rgba(8, 16, 28, .12)), rgba(23, 34, 49, .76);
    backdrop-filter: blur(28px) saturate(175%);
    box-shadow: inset 0 1px 0 #ffffff26, inset 0 -1px 0 #00000026, 0 16px 48px #00000055, 0 3px 10px #00000033;
    scrollbar-width: thin; scrollbar-color: #aac8ee50 transparent;
    opacity: 0; transform: translateY(-4px) scale(.985); transform-origin: top center;
    transition: opacity 150ms ease, transform 170ms cubic-bezier(.2,.8,.2,1), display 170ms allow-discrete, overlay 170ms allow-discrete;
  }
  select:not([multiple]):not([size]):open::picker(select) { opacity: 1; transform: none; }
  @starting-style {
    select:not([multiple]):not([size]):open::picker(select) { opacity: 0; transform: translateY(-4px) scale(.985); }
  }
  select:not([multiple]):not([size]) option {
    display: flex; align-items: center; gap: 9px; min-height: 32px;
    padding: 7px 10px; margin: 1px 0; border: 1px solid transparent; border-radius: 10px;
    color: var(--text); background: transparent; font-size: 13px; line-height: 1.4;
    white-space: normal; overflow-wrap: anywhere; cursor: pointer;
  }
  select:not([multiple]):not([size]) option:checked {
    background: rgba(155, 199, 255, .14); border-color: rgba(194, 217, 249, .09);
  }
  select:not([multiple]):not([size]) option:hover:not(:disabled),
  select:not([multiple]):not([size]) option:focus-visible {
    background: rgba(182, 216, 255, .21); border-color: rgba(210, 230, 255, .18); outline: none;
  }
  select:not([multiple]):not([size]) option::checkmark { color: var(--accent); }
  select:not([multiple]):not([size]) option:disabled { color: var(--muted); opacity: .45; cursor: not-allowed; }

  @media (max-width: 720px) {
    .influencers-view .reddit-controls label { flex: 1 0 200px; }
  }

  @media (prefers-reduced-motion: reduce) {
    select:not([multiple]):not([size]),
    select:not([multiple]):not([size])::picker-icon,
    select:not([multiple]):not([size])::picker(select) { transition: none; }
  }
  @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
    select:not([multiple]):not([size]),
    select:not([multiple]):not([size])::picker(select) { background: #1a283a; backdrop-filter: none; }
  }
  @media (forced-colors: active) {
    select:not([multiple]):not([size]),
    select:not([multiple]):not([size])::picker(select) { background: Canvas; color: CanvasText; border-color: ButtonText; box-shadow: none; backdrop-filter: none; }
    select:not([multiple]):not([size]) option { color: CanvasText; }
    select:not([multiple]):not([size]) option:checked,
    select:not([multiple]):not([size]) option:focus-visible { background: Highlight; color: HighlightText; }
  }
}

/* The app owns search recommendations, so Chrome and Safari share the same glass. */
.stock-suggestions {
  position: fixed; z-index: 10000; box-sizing: border-box; padding: 6px; margin: 0;
  overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin;
  color: var(--text); border: 1px solid rgba(218,234,255,.28); border-radius: 18px;
  background: linear-gradient(145deg,rgba(220,237,255,.16),rgba(160,195,234,.035) 55%),rgba(23,34,49,.70);
  -webkit-backdrop-filter: blur(28px) saturate(175%); backdrop-filter: blur(28px) saturate(175%);
  box-shadow: inset 0 1px 0 #ffffff30, inset 0 -1px 0 #00000026, 0 16px 48px #00000050;
  animation: search-reveal 140ms ease-out;
}
.stock-suggestions[hidden] { display: none; }
.stock-suggestion { display: flex; align-items: center; gap: 12px; padding: 10px 12px; min-height: 44px; box-sizing: border-box; border: 1px solid transparent; border-radius: 11px; cursor: pointer; }
.stock-suggestion strong { font-size: 12px; font-weight: 650; flex: 0 0 68px; }
.stock-suggestion span { min-width: 0; font-size: 12px; line-height: 1.4; color: #b9c9dc; overflow-wrap: anywhere; }
.stock-suggestion-screen { display: block; }
.stock-suggestion-screen strong, .stock-suggestion-screen span { display: block; }
.stock-suggestion-screen span { margin-top: 3px; }
.stock-suggestions-heading { padding: 10px 12px 5px; color: var(--muted); font-size: 10px; font-weight: 650; letter-spacing: .035em; }
.stock-suggestions-heading:not(:first-child) { margin-top: 4px; border-top: 1px solid #c2d9f918; }
.stock-suggestion small { display: block; margin-top: 2px; color: #92bce9; font-size: 10px; }
.stock-suggestion:hover, .stock-suggestion[aria-selected="true"] { background: rgba(182,216,255,.18); border-color: rgba(210,230,255,.16); }
.stock-suggestions-empty { padding: 14px; color: var(--muted); font-size: 12px; line-height: 1.5; }
.content-navigation { margin: 0 0 14px; }
.content-search { flex: 1; min-width: 220px; max-width: 400px; margin: 0 0 0 auto; }
.content-search > label { display: block; font-size: 11px; color: var(--muted); margin-bottom: 7px; }
.content-search-field { display: flex; align-items: center; gap: 9px; padding: 0 12px; border: 1px solid var(--glass-border); background: #a7c5ef07; border-radius: 12px; min-height: 42px; }
.content-search-field:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px #aac8ee0c; }
.content-search-field svg { width: 17px; height: 17px; flex-shrink: 0; color: var(--muted); }
.content-search-field input { flex: 1; min-width: 0; width: 100%; padding: 10px 0; background: transparent; border: 0; color: var(--text); font: inherit; font-size: 13px; outline: none; }
.content-search-field input::-webkit-search-cancel-button { display: none; }
.content-search-field button { border: 0; background: transparent; color: var(--muted); cursor: pointer; font-size: 20px; }
.content-search-field .search-count { position: static; flex-shrink: 0; font-size: 10px; }
@media (max-width: 1100px) {
  .page-intro { flex-wrap: wrap; }
  .content-search { order: 3; flex: 1 0 100%; max-width: none; min-width: 0; }
}
@keyframes search-reveal { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .stock-suggestions { animation: none; } }
@media (prefers-reduced-transparency: reduce), (prefers-contrast: more) { .stock-suggestions { background: #1a283a; backdrop-filter: none; -webkit-backdrop-filter: none; } }
@media (forced-colors: active) {
  .stock-suggestions { background: Canvas; color: CanvasText; border-color: ButtonText; backdrop-filter: none; }
  .stock-suggestion span { color: CanvasText; }
  .stock-suggestion[aria-selected="true"] { background: Highlight; color: HighlightText; }
}
body[data-mode="influencers"] .content-search > label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
body[data-mode="influencers"] .content-search-field { min-height: 36px; }
body[data-mode="influencers"] .content-search-field input { padding: 8px 0; }
.stock-source-links { display: flex; flex-wrap: wrap; gap: 7px; margin: -10px 0 18px; }
#stockNews, #stockCompanyUpdates { scroll-margin-top: 18px; }
.stock-news-item { padding: 12px 0; border-bottom: 1px solid var(--border); }
.stock-news-item h4 { margin: 5px 0 8px; font-size: 13px; font-weight: 500; line-height: 1.6; }
.stock-news-item > a, .outlook-announcement > a { display: inline-block; padding: 4px 0; color: var(--accent); font-size: 12px; }
.stock-news-more > summary { padding: 12px 0; cursor: pointer; color: var(--accent); font-size: 12px; }
.voices-sell-row { padding: 12px 0; border-bottom: 1px solid var(--border); font-size: 12px; overflow-wrap: anywhere; }
.voices-sell-row > p { color: var(--muted); margin: 8px 0; }
.voices-sell-row summary { cursor: pointer; color: var(--accent); }
.voices-sell-evidence { display: grid; gap: 4px; padding: 10px 0; }

.voices-bearish-panel { margin-bottom: 16px; border: 1px solid var(--line, #334155); border-radius: 14px; padding: 12px 16px; }
.voices-bearish-panel > summary { cursor: pointer; font-weight: 600; }
.voices-bearish-panel[open] > summary { margin-bottom: 12px; }
/* Keep the first arriving quote from changing the header height. */
.stock-company-quote [data-stock-change] { min-height: 1.5em; line-height: 1.5; font-variant-numeric: tabular-nums; }
.stock-company-quote .st-price { font-variant-numeric: tabular-nums; }
.voices-direction { display:inline-flex; gap:4px; padding:4px; margin:0 0 16px; border:1px solid var(--glass-border); border-radius:14px; background:#9bc7ff08; }
.voices-direction .chip { border-color:transparent; min-width:108px; border-radius:10px; }
.voices-direction [aria-selected="true"] { background:#9bc7ff20; box-shadow:inset 0 1px #ffffff1c; }
.voices-direction [data-side="bearish"][aria-selected="true"], .voices-direction [data-side="sells"][aria-selected="true"] { background:#f48d9618; color:#f5b0b6; }
.live-quote-pair { display:inline-flex; gap:8px; align-items:baseline; font-variant-numeric:tabular-nums; }
.gp-row details { margin-top:10px; font-size:12px; }
.gp-row .tier-line { display:block; line-height:1.65; }
.gp-row .cons-bar { margin-top:10px; }
.cons-bar { display:flex; }
.cons-bar .cons-bear { background:#f48d96; height:100%; }
.cons-bar .cons-neutral { background:#718198; height:100%; }
