:root {
  color-scheme: dark;
  --bg: #0c0e0f;
  --panel: #151819;
  --panel-2: #1a1e1f;
  --line: #292e2f;
  --line-soft: #212526;
  --text: #f4f5ef;
  --muted: #8b9290;
  --lime: #b8ff5a;
  --lime-dim: rgba(184,255,90,.14);
  --red: #ff836f;
  --blue: #70d8ff;
  --radius: 18px;
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 320px; background: var(--bg); color: var(--text); }
button, input { font: inherit; }
button { color: inherit; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 222px minmax(0, 1fr); }

.sidebar { position: sticky; top: 0; height: 100vh; border-right: 1px solid var(--line-soft); padding: 30px 20px 22px; display: flex; flex-direction: column; background: #0e1011; z-index: 10; }
.brand { color: var(--text); text-decoration: none; display: flex; align-items: center; gap: 12px; font-size: 13px; line-height: 1.05; letter-spacing: -.02em; }
.brand strong { font-size: 16px; }
.brand-mark { width: 36px; height: 36px; position: relative; display: inline-flex; align-items: flex-end; justify-content: center; gap: 2px; transform: rotate(-12deg); }
.brand-mark i { display: block; width: 6px; background: var(--lime); border-radius: 6px; }
.brand-mark i:nth-child(1) { height: 12px; opacity: .45; }
.brand-mark i:nth-child(2) { height: 23px; opacity: .75; }
.brand-mark i:nth-child(3) { height: 32px; }

nav { display: grid; gap: 7px; margin-top: 55px; }
.nav-item { width: 100%; height: 44px; display: flex; align-items: center; gap: 12px; border: 0; background: transparent; border-radius: 11px; color: var(--muted); cursor: pointer; padding: 0 12px; text-align: left; font-size: 13px; transition: .2s ease; }
.nav-item:hover { background: #171a1b; color: var(--text); }
.nav-item.active { color: var(--text); background: #1b1f20; }
.nav-icon { width: 20px; color: var(--lime); font-size: 19px; line-height: 1; }
.sidebar-bottom { margin-top: auto; display: grid; gap: 16px; }
.model-status { border: 1px solid var(--line-soft); border-radius: 12px; padding: 12px; display: flex; align-items: center; gap: 9px; }
.model-status > span { width: 8px; height: 8px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 14px var(--lime); }
.model-status div, .profile div { min-width: 0; display: grid; }
.model-status strong, .profile strong { font-size: 11px; font-weight: 600; }
.model-status small, .profile small { font-size: 9px; color: var(--muted); margin-top: 3px; }
.profile { border: 0; background: transparent; display: grid; grid-template-columns: 31px 1fr auto; align-items: center; text-align: left; gap: 9px; padding: 0; cursor: pointer; }
.profile > span { display: grid; place-items: center; width: 31px; aspect-ratio: 1; border-radius: 50%; background: #303637; font-size: 10px; }
.profile b { font-size: 10px; color: var(--muted); letter-spacing: 1px; }

main { width: 100%; min-width: 0; padding: 28px clamp(24px, 3.2vw, 52px) 60px; }
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.eyebrow { margin: 0 0 6px; color: #737a78; font-size: 9px; letter-spacing: .18em; font-weight: 750; }
h1 { font-size: clamp(23px, 2.3vw, 33px); letter-spacing: -.04em; margin: 0; line-height: 1.1; font-weight: 420; }
h1 span { color: #aeb4b2; }
.top-actions { display: flex; align-items: center; gap: 10px; }
.icon-button { position: relative; border: 1px solid var(--line); background: #141718; height: 40px; min-width: 40px; border-radius: 10px; cursor: pointer; }
.icon-button > span { position: absolute; width: 6px; height: 6px; border-radius: 50%; right: 8px; top: 7px; background: var(--lime); }
.add-button, .save-button { height: 40px; border: 0; border-radius: 10px; color: #10130d; background: var(--lime); padding: 0 16px; font-weight: 750; font-size: 12px; cursor: pointer; box-shadow: 0 10px 30px rgba(184,255,90,.08); }
.add-button b { font-size: 18px; vertical-align: -1px; margin-right: 3px; }
.mobile-menu { display: none; }

.ticker-strip { display: flex; gap: 8px; margin: 31px 0 20px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; }
.ticker-strip::-webkit-scrollbar { display: none; }
.action-banner { display: grid; grid-template-columns: minmax(250px, 1fr) auto minmax(180px, .65fr); align-items: center; gap: 22px; margin-bottom: 16px; padding: 17px 20px; background: linear-gradient(115deg, #181d1b, #151819 55%, #121516); }
.action-primary { display: flex; align-items: center; gap: 13px; }
.action-icon { display: grid; place-items: center; width: 44px; height: 44px; flex: 0 0 auto; border-radius: 13px; font-size: 23px; }
.action-icon.positive { color: var(--lime); background: var(--lime-dim); }
.action-icon.negative { color: var(--red); background: rgba(255,131,111,.12); }
.action-icon.neutral { color: var(--blue); background: rgba(112,216,255,.1); }
.action-primary h2 { margin: 0; font-size: 15px; letter-spacing: -.02em; }
.action-primary > div > p:last-child { margin: 4px 0 0; color: var(--muted); font-size: 8px; }
.action-metrics { display: grid; grid-template-columns: repeat(4, auto); gap: 20px; }
.action-metrics div { display: grid; }
.action-metrics small { color: #68706e; font-size: 6px; letter-spacing: .09em; }
.action-metrics strong { margin-top: 5px; font-size: 11px; white-space: nowrap; }
.action-metrics span { margin-top: 2px; font-size: 7px; }
.action-risks { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 5px; }
.action-risks p { width: 100%; margin: 0 0 3px; color: var(--muted); font-size: 7px; text-align: right; }
.action-risks span { padding: 4px 6px; border: 1px solid #343a39; border-radius: 6px; color: #909896; font-size: 6px; }
.ticker-chip { flex: 0 0 170px; height: 62px; display: grid; grid-template-columns: 1fr 52px; align-items: center; border: 1px solid var(--line-soft); border-radius: 13px; background: #121516; padding: 10px 11px; cursor: pointer; text-align: left; transition: .18s ease; }
.ticker-chip:hover { border-color: #3c4241; transform: translateY(-1px); }
.ticker-chip.active { border-color: #4c5b3d; background: linear-gradient(145deg, rgba(184,255,90,.07), #151819 55%); }
.ticker-name { display: flex; align-items: center; gap: 7px; font-weight: 750; font-size: 12px; }
.ticker-logo { display: grid; place-items: center; width: 20px; height: 20px; border-radius: 6px; color: #0c0e0f; font-size: 8px; }
.ticker-price { font-size: 10px; color: #aeb4b2; margin-top: 5px; }
.ticker-change { margin-left: 4px; }
.positive { color: var(--lime); }
.negative { color: var(--red); }
.sparkline { width: 52px; height: 30px; overflow: visible; }
.ticker-add { flex: 0 0 55px; height: 62px; border-radius: 13px; border: 1px dashed #363b3b; background: transparent; color: var(--muted); font-size: 20px; cursor: pointer; }

.content-grid { display: grid; grid-template-columns: minmax(0, 1.52fr) minmax(300px, .72fr); gap: 16px; }
.primary-column, .secondary-column { min-width: 0; display: grid; align-content: start; gap: 16px; }
.panel { border: 1px solid var(--line-soft); border-radius: var(--radius); background: var(--panel); overflow: hidden; }
.hero-card { min-height: 272px; padding: 26px 28px 22px; background: radial-gradient(circle at 82% 20%, rgba(184,255,90,.10), transparent 33%), linear-gradient(150deg, #181c1c, #131617 70%); }
.hero-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 20px; }
.company { display: flex; align-items: center; gap: 12px; }
.company-logo { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 12px; color: #11140f; font-weight: 900; font-size: 12px; }
.company h2 { margin: 0; font-size: 18px; letter-spacing: -.02em; }
.company p { margin: 4px 0 0; font-size: 10px; color: var(--muted); }
.updated { color: var(--muted); font-size: 9px; }
.updated { display: flex; align-items: center; gap: 6px; }
.source-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--red); }
.source-dot.real { background: var(--lime); box-shadow: 0 0 9px rgba(184,255,90,.5); }
.hero-middle { display: grid; grid-template-columns: 1fr auto; align-items: end; margin-top: 28px; }
.conditions-label { display: flex; align-items: center; gap: 8px; color: var(--lime); font-size: 10px; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.conditions-label i { width: 7px; height: 7px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 13px rgba(184,255,90,.6); }
.outlook-summary { font-size: clamp(31px, 4vw, 54px); margin: 8px 0 0; font-weight: 420; letter-spacing: -.055em; line-height: .98; }
.outlook-summary span { color: var(--lime); }
.price-block { text-align: right; }
.price-block .price { font-size: 26px; letter-spacing: -.04em; }
.price-block small { display: block; color: var(--muted); margin-top: 5px; font-size: 9px; }
.hero-bottom { display: grid; grid-template-columns: 1fr auto; align-items: center; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--line-soft); }
.confidence { display: flex; align-items: center; gap: 12px; }
.confidence-ring { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 50%; font-size: 10px; font-weight: 750; }
.confidence-copy strong { font-size: 11px; display: block; }
.confidence-copy small { font-size: 9px; color: var(--muted); }
.next-close { display: flex; gap: 20px; align-items: center; }
.next-close div { text-align: right; }
.next-close small { color: var(--muted); font-size: 8px; letter-spacing: .08em; }
.next-close strong { display: block; margin-top: 4px; font-size: 12px; }
.data-ribbon { display: flex; align-items: center; gap: 13px; margin: 17px -8px -6px; padding: 10px 8px 0; border-top: 1px solid var(--line-soft); color: #77807d; font-size: 8px; }
.data-ribbon span { white-space: nowrap; }
.data-ribbon span:first-child { color: #aeb6b3; margin-right: auto; }
.data-ribbon span i { display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--lime); margin: 0 6px 1px 0; }
.data-ribbon button { border: 0; background: transparent; color: var(--lime); font-size: 8px; cursor: pointer; padding: 4px; white-space: nowrap; }
.data-ribbon button:disabled { color: var(--muted); }

.forecast-panel, .accuracy-panel, .signal-card, .news-panel, .events-panel, .peers-panel, .news-research-panel, .regulatory-panel, .automation-panel { padding: 22px; }
.future-chart-heading { display: flex; align-items: end; justify-content: space-between; gap: 15px; margin-top: 19px; padding-top: 18px; border-top: 1px solid var(--line-soft); }
.future-chart-heading h3 { margin: 0; font-size: 12px; }
.horizon-controls { display: flex; padding: 3px; border: 1px solid var(--line-soft); border-radius: 9px; background: #111415; }
.horizon-controls button { min-width: 39px; height: 25px; border: 0; border-radius: 6px; background: transparent; color: var(--muted); font-size: 7px; cursor: pointer; }
.horizon-controls button.active { background: #283126; color: var(--lime); }
.future-chart-wrap { height: 270px; margin-top: 12px; }
.future-svg { width: 100%; height: 100%; overflow: visible; }
.future-grid { stroke: #252a2a; stroke-width: 1; vector-effect: non-scaling-stroke; }
.future-axis-label { fill: #68706e; font-size: 8px; }
.future-band { fill: url(#futureBand); }
.future-model-line { fill: none; stroke-width: 1; opacity: .46; vector-effect: non-scaling-stroke; }
.future-quant-line { fill: none; stroke: #fff; stroke-width: 1.3; stroke-dasharray: 4 4; opacity: .75; vector-effect: non-scaling-stroke; }
.future-factor-line { fill: none; stroke: var(--lime); stroke-width: 2.4; vector-effect: non-scaling-stroke; }
.future-legend { display: flex; flex-wrap: wrap; gap: 8px 13px; margin: -4px 0 10px 48px; color: var(--muted); font-size: 7px; }
.future-legend span { display: flex; align-items: center; gap: 4px; }
.future-legend i { width: 6px; height: 6px; border-radius: 50%; }
.future-legend .range-key i { width: 12px; border-radius: 3px; background: rgba(184,255,90,.16); border: 1px solid rgba(184,255,90,.25); }
.future-chart-summary { display: flex; align-items: center; gap: 14px; margin: 0 0 5px 48px; color: var(--muted); font-size: 8px; }
.future-chart-summary b { color: var(--text); font-size: 11px; }
.future-chart-summary em { margin-left: 5px; font-size: 8px; font-style: normal; }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.panel-heading h2 { margin: 0; font-size: 15px; letter-spacing: -.025em; }
.panel-heading.compact { margin-bottom: 15px; }
.legend { display: flex; gap: 14px; color: var(--muted); font-size: 8px; }
.legend span { display: flex; align-items: center; gap: 5px; }
.legend i { display: block; width: 7px; height: 7px; border-radius: 50%; }
.actual-dot { background: var(--lime); }
.range-dot { background: #4b5251; }
.forecast-days { display: grid; grid-template-columns: repeat(6, 1fr); margin-top: 19px; border-top: 1px solid var(--line-soft); }
.forecast-day { padding: 15px 8px 5px; border-right: 1px solid var(--line-soft); text-align: center; }
.forecast-day:last-child { border-right: 0; }
.forecast-day .day { color: #939a98; font-size: 9px; }
.weather-icon { height: 42px; display: grid; place-items: center; font-size: 24px; margin: 7px 0; }
.weather-icon.up { color: var(--lime); }
.weather-icon.down { color: var(--red); }
.weather-icon.flat { color: var(--blue); }
.forecast-price { font-size: 12px; font-weight: 700; }
.forecast-change { font-size: 8px; margin-top: 4px; }
.forecast-range { color: #656d6a; font-size: 7px; margin-top: 6px; }
.forecast-confidence { display: inline-block; margin-top: 8px; padding: 3px 6px; background: #202525; border-radius: 8px; font-size: 7px; color: #9ca3a1; }
.model-forecast { border-top: 1px solid var(--line-soft); margin-top: 17px; padding-top: 18px; }
.model-table-heading { display: flex; align-items: end; justify-content: space-between; gap: 15px; margin-bottom: 12px; }
.model-table-heading h3 { margin: 0; font-size: 12px; }
.model-table-heading > span { color: var(--muted); font-size: 8px; }
.model-table-scroll { overflow-x: auto; scrollbar-width: thin; }
.model-table { min-width: 650px; display: grid; grid-template-columns: 142px repeat(var(--forecast-columns), minmax(74px, 1fr)); border: 1px solid var(--line-soft); border-radius: 11px; overflow: hidden; }
.model-cell { min-width: 0; min-height: 42px; padding: 9px 10px; border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); display: flex; align-items: center; }
.model-cell:nth-child(7n) { border-right: 0; }
.model-header, .model-date { background: #111415; color: #6e7674; font-size: 8px; text-transform: uppercase; letter-spacing: .07em; }
.model-date { justify-content: center; text-align: center; display: grid; }
.model-date small { font-size: 7px; text-transform: none; letter-spacing: 0; margin-top: 2px; }
.model-name { gap: 8px; font-size: 9px; color: #c5cac8; }
.model-name i { width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; }
.model-name span { min-width: 0; }
.model-name small { display: block; color: #68706e; font-size: 7px; margin-top: 3px; white-space: nowrap; }
.model-price { display: grid; justify-content: center; text-align: center; font-size: 9px; }
.model-price small { display: block; color: #737b79; font-size: 7px; margin-top: 3px; }
.consensus-row .model-cell { background: rgba(184,255,90,.045); font-weight: 700; }

.text-button { border: 0; background: transparent; color: #9ea6a3; font-size: 9px; cursor: pointer; padding: 6px; }
.text-button:hover { color: var(--lime); }
.chart-wrap { height: 180px; margin-top: 16px; }
.history-svg { width: 100%; height: 100%; overflow: visible; }
.chart-grid { stroke: #252a2a; stroke-width: 1; }
.actual-line { fill: none; stroke: var(--lime); stroke-width: 2; vector-effect: non-scaling-stroke; }
.prediction-line { fill: none; stroke: #7e8784; stroke-width: 1.5; stroke-dasharray: 4 5; vector-effect: non-scaling-stroke; }
.consensus-line { fill: none; stroke: #fff; stroke-width: 1.5; stroke-dasharray: 5 4; vector-effect: non-scaling-stroke; opacity: .9; }
.individual-model-line { fill: none; stroke-width: 1; vector-effect: non-scaling-stroke; opacity: .38; }
.chart-area { fill: url(#areaFill); }
.chart-label { fill: #68706e; font-size: 8px; }
.review-legend { display: flex; align-items: center; flex-wrap: wrap; gap: 9px 13px; margin-top: -3px; color: var(--muted); font-size: 7px; }
.review-legend span { display: flex; align-items: center; gap: 4px; }
.review-legend i { display: inline-block; width: 6px; height: 6px; border-radius: 50%; }
.review-legend b { margin-left: auto; color: var(--text); font-size: 8px; }

.validation-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 24px 0 10px; padding-top: 18px; border-top: 1px solid var(--line-soft); }
.validation-heading h3 { margin: 4px 0 0; font-size: 13px; }
.validation-heading > span { color: var(--muted); font-size: 8px; }
.validation-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; }
.validation-card { min-width: 0; padding: 11px; border: 1px solid var(--line-soft); border-radius: 10px; background: #151919; }
.validation-card > div { display: grid; }
.validation-card > div strong { font-size: 9px; }
.validation-card > div span { margin-top: 3px; color: var(--muted); font-size: 7px; }
.validation-card dl { display: grid; grid-template-columns: 1fr auto; gap: 6px 4px; margin: 11px 0 0; padding-top: 9px; border-top: 1px solid var(--line-soft); }
.validation-card dt { color: #707875; font-size: 6px; text-transform: uppercase; letter-spacing: .05em; }
.validation-card dd { margin: 0; text-align: right; font-size: 7px; }

.signal-card { background: linear-gradient(150deg, #181c1c, #141718); }
.tune { height: 32px; min-width: 32px; font-size: 12px; }
.signal-overview { display: flex; justify-content: space-between; align-items: end; margin: 18px 0; }
.signal-score { font-size: 38px; line-height: 1; letter-spacing: -.05em; }
.signal-score small { font-size: 11px; color: var(--muted); }
.signal-verdict { color: var(--lime); font-size: 9px; padding: 5px 7px; border-radius: 7px; background: var(--lime-dim); }
.signal-row { display: grid; grid-template-columns: 76px 1fr 32px; align-items: center; gap: 9px; min-height: 32px; }
.signal-name { font-size: 9px; color: #9ba3a0; text-transform: capitalize; }
.signal-track { position: relative; height: 4px; border-radius: 5px; background: #272c2c; overflow: hidden; }
.signal-track i { position: absolute; top: 0; bottom: 0; border-radius: 5px; background: var(--lime); }
.signal-value { font-size: 8px; text-align: right; color: var(--muted); }
.signal-actions { display: flex; align-items: center; gap: 7px; }
#weight-mode { padding: 4px 6px; border-radius: 6px; font-size: 6px; letter-spacing: .07em; }
#weight-mode.learned { color: var(--lime); background: var(--lime-dim); }
#weight-mode.guarded_prior { color: var(--blue); background: rgba(112,216,255,.11); }
#weight-mode.manual { color: #f9c95b; background: rgba(249,201,91,.12); }

.peer-summary { display: flex; align-items: end; justify-content: space-between; padding: 6px 0 15px; }
.peer-summary div { display: grid; }
.peer-summary small, .peer-stat small { color: #6f7774; font-size: 7px; letter-spacing: .09em; }
.peer-summary strong { font-size: 25px; letter-spacing: -.04em; margin-top: 4px; }
.peer-summary > span { color: var(--muted); font-size: 8px; }
.peer-row { display: grid; grid-template-columns: minmax(90px, 1fr) 40px 48px 35px 33px; gap: 7px; align-items: center; padding: 11px 0; border-top: 1px solid var(--line-soft); }
.peer-identity { min-width: 0; display: flex; align-items: center; gap: 8px; }
.peer-identity > i { display: grid; place-items: center; width: 27px; height: 27px; flex: 0 0 auto; color: #101310; border-radius: 8px; font-size: 7px; font-style: normal; font-weight: 800; }
.peer-identity span { min-width: 0; }
.peer-identity strong { display: block; font-size: 9px; }
.peer-identity small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--muted); font-size: 7px; margin-top: 3px; }
.peer-stat { display: grid; text-align: right; }
.peer-stat strong { font-size: 8px; margin-top: 4px; }
.peer-weight { justify-self: end; padding: 4px 5px; border-radius: 6px; background: #222727; color: #9ca3a1; font-size: 7px; }

.news-item { display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; padding: 13px 0; border-top: 1px solid var(--line-soft); align-items: start; }
.news-item:first-child { border-top: 0; }
.sentiment { width: 34px; height: 28px; border-radius: 8px; display: grid; place-items: center; font-size: 11px; }
.sentiment.good { color: var(--lime); background: var(--lime-dim); }
.sentiment.bad { color: var(--red); background: rgba(255,131,111,.12); }
.news-item h3 { font-size: 10px; line-height: 1.35; margin: 0; font-weight: 580; }
.news-meta { color: var(--muted); font-size: 8px; margin-top: 5px; }
.news-impact { font-size: 8px; color: var(--muted); }
.lobby-card { margin-top: 8px; padding: 13px; border-radius: 11px; background: #1b2020; border: 1px solid #282e2d; }
.lobby-card-top { display: flex; justify-content: space-between; color: #78817e; font-size: 8px; letter-spacing: .08em; text-transform: uppercase; }
.lobby-card h3 { margin: 8px 0 3px; font-size: 11px; }
.lobby-card p { margin: 0; font-size: 8px; color: var(--muted); }
.empty-state { padding: 20px 10px; color: var(--muted); font-size: 9px; line-height: 1.5; text-align: center; }

.archive-badge { padding: 5px 8px; border: 1px solid #354039; background: var(--lime-dim); color: var(--lime); border-radius: 8px; font-size: 7px; letter-spacing: .08em; }
.research-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 18px; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 12px; background: var(--line-soft); }
.research-stats > div { min-width: 0; display: grid; padding: 14px; background: #171b1b; }
.research-stats small { color: #6f7774; font-size: 7px; letter-spacing: .1em; }
.research-stats strong { margin-top: 7px; font-size: 22px; letter-spacing: -.04em; }
.research-stats span { margin-top: 4px; color: var(--muted); font-size: 7px; }
.research-explainer { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 16px 0 10px; }
.research-explainer span { flex: 0 0 auto; color: #a6aeab; font-size: 8px; }
.research-explainer span i { display: inline-block; width: 6px; height: 6px; margin-right: 6px; border-radius: 50%; background: var(--lime); }
.research-explainer p { max-width: 430px; margin: 0; text-align: right; color: var(--muted); font-size: 8px; line-height: 1.5; }
.headline-table { border: 1px solid var(--line-soft); border-radius: 12px; overflow: hidden; }
.headline-table-head, .headline-event { display: grid; grid-template-columns: minmax(0, 1fr) 52px 52px 52px; gap: 8px; align-items: center; }
.headline-table-head { padding: 9px 12px; background: #111415; color: #69716f; font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }
.headline-table-head span:not(:first-child) { text-align: right; }
.headline-event { min-height: 54px; padding: 10px 12px; border-top: 1px solid var(--line-soft); color: inherit; text-decoration: none; transition: .15s ease; }
.headline-event:hover { background: #1a1e1e; }
.headline-event > span { min-width: 0; }
.headline-event strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; font-weight: 580; }
.headline-event small { display: block; margin-top: 4px; color: var(--muted); font-size: 7px; }
.headline-event b { text-align: right; font-size: 8px; }
.headline-event .muted-return { color: var(--muted); }

.regulatory-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 18px; }
.disclosure-block { min-width: 0; padding: 16px; border: 1px solid var(--line-soft); border-radius: 13px; background: #171b1b; }
.disclosure-title { display: flex; align-items: center; gap: 10px; }
.official-mark { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; background: #253329; color: var(--lime); font-size: 8px; font-weight: 850; letter-spacing: .04em; }
.official-mark.senate { background: #292d35; color: #a8a4ff; }
.official-mark.bls { background: #263039; color: var(--blue); }
.disclosure-title div { min-width: 0; display: grid; }
.disclosure-title strong { font-size: 10px; }
.disclosure-title small { margin-top: 4px; color: var(--muted); font-size: 7px; }
.disclosure-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; overflow: hidden; margin: 14px 0; border: 1px solid var(--line-soft); border-radius: 9px; background: var(--line-soft); }
.disclosure-metrics div { display: grid; padding: 9px; background: #121515; }
.disclosure-metrics small { color: #69716f; font-size: 6px; letter-spacing: .08em; }
.disclosure-metrics strong { margin-top: 5px; font-size: 13px; }
.fundamental-detail-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; overflow: hidden; margin: -4px 0 14px; border: 1px solid var(--line-soft); border-radius: 9px; background: var(--line-soft); }
.fundamental-detail-grid > div { min-width: 0; display: grid; padding: 8px 9px; background: #151919; }
.fundamental-detail-grid small { color: #69716f; font-size: 6px; letter-spacing: .06em; }
.fundamental-detail-grid strong { margin-top: 4px; overflow: hidden; text-overflow: ellipsis; font-size: 9px; white-space: nowrap; }
.filing-list { display: grid; }
.filing-list a { display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 7px; min-height: 29px; border-top: 1px solid var(--line-soft); color: inherit; text-decoration: none; }
.filing-list b { color: var(--lime); font-size: 7px; }
.filing-list span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 8px; }
.filing-list small { color: var(--muted); font-size: 7px; }
.issue-list { display: flex; flex-wrap: wrap; gap: 6px; }
.issue-list span { padding: 5px 7px; border-radius: 7px; background: #202525; color: #9ba3a0; font-size: 7px; }
.issue-list b { color: var(--text); margin-left: 3px; }
.disclosure-note { margin: 13px 0 0; color: var(--muted); font-size: 7px; line-height: 1.5; }
.macro-strip { display: grid; grid-template-columns: minmax(210px, 1fr) repeat(4, minmax(72px, .45fr)); gap: 10px; align-items: center; margin-top: 12px; padding: 12px 16px; border: 1px solid var(--line-soft); border-radius: 12px; background: #171b1b; }
.macro-strip > div:not(.disclosure-title) { display: grid; text-align: right; }
.macro-strip > div:not(.disclosure-title) small { color: #69716f; font-size: 6px; letter-spacing: .08em; }
.macro-strip > div:not(.disclosure-title) strong { margin-top: 4px; font-size: 11px; }

.external-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 18px; }
.external-card { min-width: 0; padding: 15px; border: 1px solid var(--line-soft); border-radius: 12px; background: #171b1b; }
.external-title { display: flex; align-items: center; gap: 9px; }
.external-title > span { display: grid; place-items: center; width: 35px; height: 30px; border-radius: 8px; background: var(--lime-dim); color: var(--lime); font-size: 7px; font-weight: 850; }
.external-title > div { display: grid; }
.external-title strong { font-size: 10px; }
.external-title small { margin-top: 3px; color: var(--lime); font-size: 6px; letter-spacing: .08em; }
.external-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 13px 0 10px; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 8px; background: var(--line-soft); }
.external-metrics > div { min-width: 0; display: grid; padding: 9px; background: #121515; }
.external-metrics small { color: #6f7774; font-size: 6px; letter-spacing: .05em; }
.external-metrics strong { margin-top: 5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }
.external-card p { margin: 0; color: var(--muted); font-size: 7px; line-height: 1.5; }
.point-in-time-note { display: grid; grid-template-columns: auto 1fr; gap: 12px; align-items: center; margin-top: 10px; padding: 11px 13px; border: 1px solid #354038; border-radius: 10px; background: var(--lime-dim); }
.point-in-time-note b { color: var(--lime); font-size: 8px; white-space: nowrap; }
.point-in-time-note span { color: #aab2ae; font-size: 7px; line-height: 1.5; }

.cross-summary { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1px; overflow: hidden; margin-top: 18px; border: 1px solid var(--line-soft); border-radius: 11px; background: var(--line-soft); }
.cross-summary > div { min-width: 0; display: grid; padding: 13px; background: #171b1b; }
.cross-summary small { color: #69716f; font-size: 6px; letter-spacing: .08em; }
.cross-summary strong { margin-top: 6px; font-size: 17px; letter-spacing: -.03em; }
.cross-summary span { margin-top: 4px; color: var(--muted); font-size: 7px; }
.cross-factor-table { margin-top: 12px; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 11px; }
.cross-factor-head, .cross-factor-row { display: grid; grid-template-columns: minmax(120px, 1.4fr) repeat(5, minmax(62px, .65fr)); gap: 8px; align-items: center; padding: 9px 12px; }
.cross-factor-head { background: #111414; color: #69716f; font-size: 6px; letter-spacing: .07em; text-transform: uppercase; }
.cross-factor-row { min-height: 38px; border-top: 1px solid var(--line-soft); font-size: 8px; }
.cross-factor-row > span:first-child { display: grid; }
.cross-factor-row b { font-size: 8px; }
.cross-factor-row small { margin-top: 2px; color: var(--muted); font-size: 6px; }
.cross-factor-row > span:last-child { position: relative; height: 4px; border-radius: 5px; background: #282d2c; }
.cross-factor-row > span:last-child i { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: var(--lime); }
.cross-factor-row > span:last-child small { position: absolute; top: -13px; right: 0; }
.cross-note { margin: 11px 2px 0; color: var(--muted); font-size: 7px; line-height: 1.55; }

.event { display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 10px; padding: 11px 0; border-top: 1px solid var(--line-soft); }
.event:first-child { border-top: 0; }
.event-date { text-align: center; border-radius: 8px; background: #202525; padding: 6px 3px; }
.event-date strong { display: block; font-size: 11px; }
.event-date small { font-size: 7px; color: var(--muted); text-transform: uppercase; }
.event h3 { margin: 0; font-size: 9px; }
.event p { margin: 4px 0 0; color: var(--muted); font-size: 8px; }
.importance { width: 6px; height: 6px; border-radius: 50%; background: #e5bd59; }
.importance.critical { background: var(--red); box-shadow: 0 0 8px rgba(255,131,111,.4); }

.automation-light { width: 8px; height: 8px; border-radius: 50%; background: var(--lime); box-shadow: 0 0 12px rgba(184,255,90,.55); }
.automation-status { display: flex; align-items: center; gap: 10px; padding: 7px 0 14px; }
.automation-pulse { width: 28px; height: 28px; flex: 0 0 auto; border: 1px solid #3d4938; border-radius: 50%; background: radial-gradient(circle, var(--lime) 0 13%, var(--lime-dim) 15% 100%); }
.automation-pulse.busy { animation: pulse 1s infinite alternate; }
@keyframes pulse { to { box-shadow: 0 0 20px rgba(184,255,90,.35); } }
.automation-status div { display: grid; }
.automation-status strong { font-size: 10px; }
.automation-status small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.automation-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; overflow: hidden; border: 1px solid var(--line-soft); border-radius: 9px; background: var(--line-soft); }
.automation-grid div { display: grid; padding: 9px; background: #181c1c; }
.automation-grid small { color: #6f7774; font-size: 6px; letter-spacing: .08em; }
.automation-grid strong { margin-top: 4px; font-size: 14px; }
.automation-copy { color: var(--muted); font-size: 8px; line-height: 1.55; }
.automation-run { width: 100%; height: 34px; border: 1px solid #3b4835; border-radius: 9px; background: var(--lime-dim); color: var(--lime); font-size: 8px; font-weight: 700; cursor: pointer; }
.automation-run:disabled { color: var(--muted); border-color: var(--line); }

body.loading-data::before { content: ""; position: fixed; z-index: 100; top: 0; left: 0; width: 30%; height: 2px; background: var(--lime); box-shadow: 0 0 12px var(--lime); animation: loading-sweep 1.2s ease-in-out infinite alternate; }
@keyframes loading-sweep { from { transform: translateX(-100%); } to { transform: translateX(333%); } }

dialog { width: min(510px, calc(100% - 30px)); border: 0; padding: 0; background: transparent; color: var(--text); }
dialog::backdrop { background: rgba(4,6,6,.78); backdrop-filter: blur(8px); }
.dialog-card { position: relative; background: #171a1b; border: 1px solid #303636; border-radius: 20px; padding: 28px; box-shadow: 0 30px 80px rgba(0,0,0,.4); }
.dialog-card h2 { font-size: 24px; letter-spacing: -.04em; margin: 0; }
.dialog-copy { color: var(--muted); font-size: 11px; line-height: 1.5; max-width: 380px; }
.dialog-close { position: absolute; top: 16px; right: 16px; width: 32px; height: 32px; border: 1px solid var(--line); background: #202424; border-radius: 9px; color: var(--muted); cursor: pointer; font-size: 18px; }
.search-box { height: 48px; display: flex; align-items: center; gap: 9px; margin: 20px 0 12px; padding: 0 14px; border: 1px solid #343a39; background: #101313; border-radius: 11px; }
.search-box span { color: var(--lime); }
.search-box input { min-width: 0; width: 100%; border: 0; outline: 0; background: transparent; color: var(--text); font-size: 12px; }
.stock-results { max-height: 295px; overflow: auto; display: grid; gap: 6px; }
.stock-search-status { min-height: 16px; margin: -3px 2px 10px; color: var(--muted); font-size: 8px; line-height: 1.4; }
.stock-result { border: 1px solid var(--line-soft); background: #1b1f20; border-radius: 10px; padding: 10px 12px; display: grid; grid-template-columns: 35px 1fr auto; gap: 10px; align-items: center; cursor: pointer; text-align: left; }
.stock-result:hover { border-color: #546348; }
.stock-result-logo { width: 35px; height: 35px; display: grid; place-items: center; color: #101310; border-radius: 9px; font-size: 9px; font-weight: 800; }
.stock-result strong { display: block; font-size: 11px; }
.stock-result small { color: var(--muted); font-size: 8px; }
.tracked-pill { color: var(--lime); font-size: 8px; }
.ingestion-progress { min-height: 110px; display: flex; align-items: center; justify-content: center; gap: 14px; padding: 20px; border: 1px solid #354038; border-radius: 12px; background: var(--lime-dim); }
.ingestion-spinner { width: 28px; height: 28px; flex: 0 0 auto; border: 2px solid #3d4938; border-top-color: var(--lime); border-radius: 50%; animation: ingestion-spin .8s linear infinite; }
@keyframes ingestion-spin { to { transform: rotate(360deg); } }
.ingestion-progress div { display: grid; }
.ingestion-progress strong { font-size: 11px; }
.ingestion-progress small { margin-top: 5px; color: var(--muted); font-size: 8px; line-height: 1.35; }
.weight-control { margin-top: 18px; }
.weight-label { display: flex; justify-content: space-between; font-size: 10px; text-transform: capitalize; }
.weight-label output { color: var(--lime); }
input[type="range"] { width: 100%; accent-color: var(--lime); margin-top: 9px; }
.save-button { width: 100%; margin-top: 25px; }
.auto-weight-button { width: 100%; height: 36px; margin-top: 22px; border: 1px solid #3b4835; border-radius: 9px; background: var(--lime-dim); color: var(--lime); font-size: 9px; cursor: pointer; }
.auto-weight-button + .save-button { margin-top: 8px; }
.toast { position: fixed; right: 26px; bottom: 26px; z-index: 30; padding: 11px 16px; background: var(--text); color: #111; border-radius: 9px; font-size: 10px; font-weight: 650; transform: translateY(80px); opacity: 0; transition: .25s ease; }
.toast.show { transform: translateY(0); opacity: 1; }

@media (max-width: 1080px) {
  .app-shell { grid-template-columns: 86px minmax(0,1fr); }
  .sidebar { padding-inline: 16px; align-items: center; }
  .brand > span:last-child, .nav-item:not(.active)::after, .nav-item { font-size: 0; }
  .nav-item { justify-content: center; padding: 0; }
  .nav-icon { width: auto; font-size: 20px; }
  .model-status div, .profile div, .profile b { display: none; }
  .profile { display: flex; justify-content: center; }
  .content-grid { grid-template-columns: minmax(0, 1.35fr) minmax(270px, .7fr); }
  .action-banner { grid-template-columns: 1fr auto; }
  .action-risks { grid-column: 1 / -1; justify-content: flex-start; }
  .action-risks p { text-align: left; }
}

@media (max-width: 820px) {
  .home-tracked-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .recommendation-groups { grid-template-columns: 1fr; }
  .paper-consensus-details > summary { grid-template-columns: 1fr; gap: 12px; }
  .paper-vote-tally { justify-self: stretch; }
  .paper-expand { justify-self: start; }
  .paper-agent-row { grid-template-columns: 28px minmax(180px, 1fr) 130px 66px; }
  .paper-agent-reason, .paper-agent-open { display: none; }
  .app-shell { display: block; }
  .sidebar { display: none; }
  main { padding: 22px 18px 40px; }
  .mobile-menu { display: block; border: 0; background: transparent; font-size: 18px; }
  .content-grid { grid-template-columns: 1fr; }
  .action-banner { grid-template-columns: 1fr; }
  .action-metrics { grid-template-columns: repeat(4, 1fr); }
  .secondary-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .events-panel { grid-column: 1 / -1; }
  .research-stats { grid-template-columns: repeat(2, 1fr); }
  .regulatory-grid { grid-template-columns: 1fr; }
  .macro-strip { grid-template-columns: repeat(4, 1fr); }
  .macro-strip .disclosure-title { grid-column: 1 / -1; }
  .validation-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cross-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  .home-welcome, .recommendation-heading { display: grid; align-items: start; }
  .home-welcome .add-button { width: 100%; }
  .home-tracked-grid, .price-explanation-list, .history-event-list { grid-template-columns: 1fr; }
  .recommendation-heading > span { text-align: left; }
  .history-range-controls { width: 100%; }
  .history-range-controls button { flex: 1; }
  .history-toolbar { width: 100%; display: grid; }
  .history-view-controls button { flex: 1; }
  .paper-library-note, .paper-detail-heading { grid-template-columns: 1fr; }
  .paper-library-note .secondary-button { width: 100%; }
  .paper-agent-toolbar { display: grid; }
  .paper-agent-row { grid-template-columns: 25px 1fr 62px; }
  .paper-agent-family { display: none; }
  .topbar > div:first-of-type .eyebrow { display: none; }
  .topbar h1 { font-size: 20px; }
  .icon-button:not(.tune) { display: none; }
  .add-button { width: 40px; padding: 0; font-size: 0; }
  .add-button b { font-size: 19px; margin: 0; }
  .hero-card { padding: 22px 18px; }
  .updated, .price-block { display: none; }
  .outlook-summary { font-size: 38px; }
  .hero-bottom { grid-template-columns: 1fr; gap: 16px; }
  .next-close { justify-content: space-between; }
  .data-ribbon { overflow-x: auto; margin-top: 12px; }
  .data-ribbon span:first-child { margin-right: 0; }
  .forecast-panel, .accuracy-panel { padding: 18px 12px; }
  .action-metrics { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .future-chart-wrap { height: 220px; }
  .future-chart-summary, .future-legend { margin-left: 0; }
  .future-chart-summary { flex-wrap: wrap; }
  .legend { display: none; }
  .forecast-days { overflow-x: auto; grid-template-columns: repeat(6, 90px); }
  .secondary-column { grid-template-columns: 1fr; }
  .events-panel { grid-column: auto; }
  .research-explainer { align-items: flex-start; flex-direction: column; gap: 8px; }
  .research-explainer p { text-align: left; }
  .headline-table-head, .headline-event { grid-template-columns: minmax(160px, 1fr) 45px 45px 45px; }
  .headline-table { overflow-x: auto; }
  .headline-table-head, .headline-event { min-width: 430px; }
  .validation-grid, .external-grid { grid-template-columns: 1fr; }
  .cross-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cross-factor-table { overflow-x: auto; }
  .cross-factor-head, .cross-factor-row { min-width: 620px; }
}

/* 0.8 interface refresh: calm, light, and information-first. */
:root {
  color-scheme: light;
  --bg: #f5f7fa;
  --panel: #ffffff;
  --panel-2: #f8fafc;
  --line: #d7dee8;
  --line-soft: #e7ecf2;
  --text: #172033;
  --muted: #667085;
  --lime: #177a53;
  --lime-dim: rgba(23,122,83,.09);
  --red: #c3424f;
  --blue: #2f6fed;
  --radius: 14px;
}

body { background: var(--bg); color: var(--text); font-size: 14px; }
.app-shell { grid-template-columns: 196px minmax(0, 1fr); }
.sidebar { border-color: var(--line); padding: 26px 18px 20px; background: #fff; }
.brand { color: var(--text); }
.brand-mark i { background: #2f6fed; box-shadow: none; }
nav { margin-top: 42px; }
.nav-item { height: 42px; color: #667085; font-size: 12px; }
.nav-item:hover { background: #f3f6fa; color: var(--text); }
.nav-item.active { background: #edf3ff; color: #1f5fd1; font-weight: 700; }
.nav-icon { width: 23px; color: #8b98aa; font-size: 9px; font-weight: 800; letter-spacing: .03em; }
.nav-item.active .nav-icon { color: #2f6fed; }
.model-status { border-color: var(--line); background: #f8fafc; }
.model-status > span { background: #20a66a; box-shadow: none; }
.profile > span { background: #e7edf5; }
main { max-width: 1540px; margin: 0 auto; padding-top: 26px; }
.eyebrow { color: #7c8798; font-size: 9px; letter-spacing: .14em; }
h1 { font-weight: 600; }
h1 span { color: #667085; }
.add-button, .save-button { color: #fff; background: #2f6fed; box-shadow: none; }
.icon-button { border-color: var(--line); background: #fff; }

.ticker-strip { margin-top: 26px; }
.ticker-chip { flex-basis: 164px; border-color: var(--line); background: #fff; box-shadow: 0 1px 2px rgba(16,24,40,.03); }
.ticker-chip:hover { border-color: #9eb9ec; transform: none; }
.ticker-chip.active { border-color: #7ea5ee; background: #f4f7ff; box-shadow: inset 0 0 0 1px #dce8ff; }
.ticker-logo, .peer-identity > i { color: #172033; }
.ticker-add { border-color: #b9c3d0; background: #fff; color: #667085; }
.positive { color: #177a53; }
.negative { color: #c3424f; }

.panel { border-color: var(--line); background: #fff; box-shadow: 0 1px 3px rgba(16,24,40,.035); }
.action-banner { background: #fff; }
.action-icon.positive { color: #177a53; background: #eaf6f0; }
.action-icon.negative { color: #c3424f; background: #fff0f1; }
.action-icon.neutral { color: #2f6fed; background: #edf3ff; }
.action-primary h2 { font-size: 18px; }
.action-primary > div > p:last-child, .action-risks p { color: var(--muted); font-size: 10px; line-height: 1.45; }
.action-metrics { gap: 24px; }
.action-metrics small, .next-close small { color: #7c8798; font-size: 8px; }
.action-metrics strong { font-size: 13px; }
.action-risks span { border-color: #d9e0e8; background: #f8fafc; color: #596579; font-size: 8px; }

.decision-panel { margin-bottom: 16px; padding: 22px; }
.paper-consensus { margin-bottom: 16px; overflow: visible; }
.paper-consensus-details > summary { min-height: 92px; display: grid; grid-template-columns: minmax(300px, 1fr) auto 128px; align-items: center; gap: 20px; padding: 15px 20px; list-style: none; cursor: pointer; }
.paper-consensus-details > summary::-webkit-details-marker { display: none; }
.paper-consensus-details[open] > summary { border-bottom: 1px solid var(--line); }
.paper-consensus-title { min-width: 0; display: flex; align-items: center; gap: 13px; }
.paper-consensus-title h2 { margin: 2px 0 3px; font-size: 18px; }
.paper-consensus-title small, .paper-vote-tally small { color: var(--muted); font-size: 9px; }
.paper-stack-mark { width: 48px; height: 48px; flex: 0 0 auto; display: grid; place-items: center; border: 1px solid #bfd1f2; border-radius: 13px; background: #edf3ff; color: #1f5fd1; font-size: 16px; font-weight: 850; box-shadow: 4px 4px 0 #dfe9fa, 8px 8px 0 #f1f5fb; }
.paper-vote-tally { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: 12px; }
.paper-vote-tally > span { display: flex; gap: 10px; }
.paper-vote-tally > span b { color: #667085; font-size: 10px; }
.paper-vote-tally > span b.up { color: #177a53; }
.paper-vote-tally > span b.down { color: #c3424f; }
.paper-vote-tally > small { grid-column: 2; margin-top: 4px; }
.paper-verdict { min-width: 62px; padding: 9px 11px; border-radius: 10px; text-align: center; font-size: 14px; }
.paper-verdict.up, .paper-agent-vote.up { color: #116b47; background: #e9f6ef; }
.paper-verdict.down, .paper-agent-vote.down { color: #b33442; background: #fff0f1; }
.paper-verdict.neutral, .paper-agent-vote.neutral { color: #596579; background: #f1f4f8; }
.paper-expand { justify-self: end; color: #1f5fd1; font-size: 9px; font-weight: 750; }
.paper-consensus-details[open] .paper-expand { font-size: 0; }
.paper-consensus-details[open] .paper-expand::after { content: "Hide agents"; font-size: 9px; }
.paper-consensus-body { padding: 20px; background: #fbfcfe; border-radius: 0 0 var(--radius) var(--radius); }
.paper-library-note { display: grid; grid-template-columns: 1fr auto; gap: 20px; align-items: center; padding: 12px 14px; border: 1px solid #cfe0fa; border-radius: 10px; background: #f4f8ff; }
.paper-library-note > div { display: grid; gap: 3px; }
.paper-library-note b { font-size: 11px; }
.paper-library-note span { color: var(--muted); font-size: 9px; line-height: 1.45; }
.paper-library-note .secondary-button { width: auto; }
.paper-agent-toolbar { display: flex; justify-content: space-between; gap: 12px; margin: 16px 0 8px; }
.paper-agent-toolbar > div { display: flex; gap: 5px; }
.paper-agent-toolbar button { min-height: 29px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: #667085; font-size: 8px; font-weight: 700; cursor: pointer; }
.paper-agent-toolbar button.active { border-color: #9eb9ec; background: #edf3ff; color: #1f5fd1; }
.paper-agent-count { margin-bottom: 9px; color: var(--muted); font-size: 8px; }
.paper-agent-list { max-height: 620px; overflow: auto; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.paper-agent-row { width: 100%; min-height: 70px; display: grid; grid-template-columns: 34px minmax(210px, 1.6fr) 145px minmax(190px, 1.4fr) 70px 48px; align-items: center; gap: 10px; padding: 9px 11px; border: 0; border-bottom: 1px solid var(--line-soft); background: #fff; color: inherit; text-align: left; cursor: pointer; }
.paper-agent-row:last-child { border-bottom: 0; }
.paper-agent-row:hover { background: #f7f9fc; }
.paper-agent-index { color: #98a2b3; font-size: 9px; font-variant-numeric: tabular-nums; }
.paper-agent-paper, .paper-agent-vote { display: grid; gap: 4px; }
.paper-agent-paper strong { font-size: 10px; line-height: 1.3; }
.paper-agent-paper small, .paper-agent-reason { color: var(--muted); font-size: 8px; line-height: 1.35; }
.paper-agent-family { width: max-content; max-width: 140px; padding: 4px 6px; border-radius: 6px; background: #f1f4f8; color: #596579; font-size: 8px; }
.paper-agent-vote { justify-items: center; padding: 6px; border-radius: 8px; }
.paper-agent-vote b { font-size: 10px; }
.paper-agent-vote small { color: inherit; font-size: 7px; }
.paper-agent-open { color: #1f5fd1; font-size: 8px; font-weight: 700; text-align: right; }
.paper-disclosure { margin: 12px 2px 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
.paper-empty { min-height: 86px; display: flex; justify-content: space-between; align-items: center; gap: 18px; padding: 16px 20px; }
.paper-empty h2 { margin: 2px 0; font-size: 16px; }
.paper-empty p:last-child { margin: 4px 0 0; color: var(--muted); font-size: 9px; }
.paper-empty .secondary-button { width: auto; }
#paper-agent-dialog { width: min(800px, calc(100% - 30px)); }
.paper-agent-dialog-card { width: auto; max-height: calc(100vh - 50px); overflow: auto; }
.paper-detail-heading { display: grid; grid-template-columns: 78px 1fr; gap: 14px; align-items: start; margin-top: 10px; }
.paper-detail-heading .paper-agent-vote { padding: 10px 8px; }
.paper-detail-heading h2 { margin: 0 30px 5px 0; font-size: 18px; line-height: 1.25; }
.paper-detail-heading p { margin: 0; color: var(--muted); font-size: 10px; }
.paper-detail-meta { display: flex; flex-wrap: wrap; gap: 6px; margin: 14px 0; }
.paper-detail-meta span { padding: 5px 7px; border-radius: 7px; background: #f1f4f8; color: #596579; font-size: 8px; }
.paper-plain-explanation, .paper-evidence, .paper-abstract { margin-top: 11px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafc; }
.paper-plain-explanation h3, .paper-evidence h3, .paper-abstract h3 { margin: 0 0 7px; font-size: 11px; }
.paper-plain-explanation p, .paper-abstract p { margin: 5px 0 0; color: #596579; font-size: 9px; line-height: 1.55; }
.paper-evidence > div { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; padding: 8px 0; border-top: 1px solid var(--line-soft); }
.paper-evidence > div span { display: grid; gap: 2px; }
.paper-evidence > div b { font-size: 9px; }
.paper-evidence > div small { color: var(--muted); font-size: 8px; }
.paper-evidence > div > strong { font-size: 10px; font-variant-numeric: tabular-nums; }
.paper-caveat { display: grid; grid-template-columns: auto 1fr; gap: 9px; margin-top: 11px; padding: 11px 12px; border: 1px solid #efdba9; border-radius: 10px; background: #fffaf0; }
.paper-caveat b { color: #8b5b00; font-size: 9px; }
.paper-caveat span { color: #725f34; font-size: 8px; line-height: 1.45; }
.paper-source-link { display: inline-flex; margin-top: 13px; color: #1f5fd1; font-size: 9px; font-weight: 750; text-decoration: none; }
.decision-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 18px; }
.decision-heading h2 { margin: 0; font-size: 18px; }
.decision-heading p:last-child { max-width: 680px; margin: 7px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.decision-heading > span { flex: 0 0 auto; padding: 6px 9px; border-radius: 999px; background: #f1f4f8; color: #596579; font-size: 9px; font-weight: 700; }
.decision-scroll { margin-top: 17px; overflow-x: auto; }
.decision-grid { min-width: 900px; display: grid; grid-template-columns: 220px repeat(4, minmax(165px, 1fr)); border: 1px solid var(--line); border-radius: 11px; overflow: hidden; }
.decision-cell { min-width: 0; min-height: 58px; display: grid; align-content: center; padding: 10px 12px; border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
.decision-cell:nth-child(5n) { border-right: 0; }
.decision-head { min-height: 54px; background: #f7f9fc; color: #596579; font-size: 10px; }
.decision-head b { color: var(--text); font-size: 11px; text-transform: none; }
.decision-cell small { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.35; }
.decision-name b { font-size: 11px; }
.decision-answer b { width: max-content; padding: 3px 7px; border-radius: 999px; font-size: 10px; }
.decision-answer.yes b { background: #e9f6ef; color: #116b47; }
.decision-answer.maybe b { background: #fff6df; color: #8b5b00; }
.decision-answer.no b { background: #f5f6f8; color: #667085; }

.content-grid { grid-template-columns: minmax(0, 1.55fr) minmax(310px, .72fr); gap: 16px; }
.hero-card { min-height: 0; background: #fff; }
.company h2 { font-size: 19px; }
.updated { color: var(--muted); }
.source-dot.real { background: #20a66a; box-shadow: none; }
.conditions-label { color: #2f6fed; }
.conditions-label i { background: #2f6fed; box-shadow: none; }
.outlook-summary { font-size: clamp(28px, 3.2vw, 44px); line-height: 1.04; }
.outlook-summary span { color: #177a53; }
.hero-bottom, .data-ribbon { border-color: var(--line-soft); }
.confidence-ring span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; background: #fff; }
.data-ribbon { color: #7c8798; font-size: 9px; }
.data-ribbon span:first-child { color: #596579; }
.data-ribbon button { color: #2f6fed; }

.forecast-panel, .accuracy-panel, .signal-card, .news-panel, .events-panel, .peers-panel, .automation-panel { padding: 22px; }
.panel-heading h2 { font-size: 16px; }
.panel-intro { margin: -5px 0 12px; color: var(--muted); font-size: 10px; line-height: 1.45; }
.future-chart-heading, .forecast-days, .model-forecast, .validation-heading { border-color: var(--line-soft); }
.horizon-controls { border-color: var(--line); background: #f5f7fa; }
.horizon-controls button { color: #667085; font-size: 9px; }
.horizon-controls button.active { background: #fff; color: #1f5fd1; box-shadow: 0 1px 3px rgba(16,24,40,.1); }
.future-grid, .chart-grid { stroke: #e4e9ef; }
.future-axis-label, .chart-label { fill: #7c8798; }
.future-quant-line, .consensus-line { stroke: #172033; }
.future-factor-line, .actual-line { stroke: #177a53; }
.future-legend, .future-chart-summary, .review-legend { color: var(--muted); font-size: 9px; }
.future-legend .range-key i { background: rgba(47,111,237,.13); border-color: rgba(47,111,237,.2); }
.forecast-day { border-color: var(--line-soft); }
.forecast-day .day { color: #596579; font-size: 10px; }
.direction-icon { height: 35px; display: grid; place-items: center; margin: 5px 0; font-size: 19px; }
.direction-icon.up { color: #177a53; }
.direction-icon.down { color: #c3424f; }
.direction-icon.flat { color: #2f6fed; }
.forecast-price { font-size: 13px; }
.forecast-change, .forecast-range { font-size: 9px; }
.forecast-range { color: #7c8798; }
.forecast-confidence { background: #f1f4f8; color: #667085; font-size: 8px; }

.model-details, .validation-details { margin-top: 16px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfd; }
.model-details summary, .validation-details summary, .research-panel summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 16px; }
.model-details summary::-webkit-details-marker, .validation-details summary::-webkit-details-marker, .research-panel summary::-webkit-details-marker { display: none; }
.model-details summary span, .validation-details summary span, .research-panel summary span { display: grid; }
.model-details summary b, .validation-details summary b, .research-panel summary b { font-size: 11px; }
.model-details summary small, .validation-details summary small, .research-panel summary small { margin-top: 4px; color: var(--muted); font-size: 9px; font-weight: 400; }
.model-details summary em, .validation-details summary em, .research-panel summary em { color: #2f6fed; font-size: 9px; font-style: normal; font-weight: 700; }
.model-details[open] summary em, .validation-details[open] summary em, .research-panel[open] summary em { font-size: 0; }
.model-details[open] summary em::after, .validation-details[open] summary em::after, .research-panel[open] summary em::after { content: "Hide"; font-size: 9px; }
.model-table-scroll { padding: 0 14px 14px; }
.model-table { border-color: var(--line); }
.model-cell { border-color: var(--line-soft); }
.model-header, .model-date { background: #f5f7fa; color: #667085; }
.model-name { color: var(--text); }
.model-name small, .model-price small { color: #7c8798; }
.consensus-row .model-cell { background: #f1f7f4; }
.validation-details { border: 0; background: transparent; }
.validation-details summary { border: 1px solid var(--line); border-radius: 10px; background: #fbfcfd; }
.validation-heading { margin-inline: 0; padding-inline: 2px; }
.validation-grid { padding-bottom: 2px; }
.validation-card { border-color: var(--line); background: #fff; }

.signal-card { background: #fff; }
.tune { width: auto; min-width: 0; height: 29px; padding: 0 9px; color: #2f6fed; font-size: 9px; }
#weight-mode { color: #596579 !important; background: #f1f4f8 !important; font-size: 8px; letter-spacing: 0; }
.signal-overview { margin: 14px 0 10px; }
.signal-score { font-size: 34px; }
.signal-verdict { color: #177a53; background: #eaf6f0; font-size: 9px; }
.signal-row { width: 100%; grid-template-columns: 118px 1fr 58px 30px; gap: 8px; min-height: 39px; padding: 0 4px; border: 0; border-top: 1px solid var(--line-soft); background: transparent; color: inherit; cursor: pointer; text-align: left; }
.signal-row:hover { background: #f7f9fc; }
.signal-name { color: #344054; font-size: 10px; text-transform: none; }
.signal-track { background: #e7ecf2; }
.signal-value { color: #667085; font-size: 8px; }
.signal-open { color: #2f6fed; font-size: 8px; text-align: right; }

.peer-row, .news-item, .event { border-color: var(--line-soft); }
.peer-summary small, .peer-stat small { color: #7c8798; }
.peer-weight, .event-date, .issue-list span { background: #f1f4f8; color: #596579; }
.sentiment.good { color: #177a53; background: #eaf6f0; }
.sentiment.bad { color: #c3424f; background: #fff0f1; }
.lobby-card { border-color: var(--line); background: #f7f9fc; }
.live-pill, .archive-badge { border-color: #b8d8ca; background: #eaf6f0; color: #177a53; }

.research-stack { display: grid; gap: 10px; scroll-margin-top: 20px; }
.research-stack-heading { padding: 12px 4px 3px; }
.research-stack-heading h2 { margin: 0; font-size: 18px; }
.research-stack-heading > p:last-child { margin: 6px 0 0; color: var(--muted); font-size: 11px; }
.research-panel { overflow: hidden; }
.research-panel summary { min-height: 70px; }
.research-panel summary b { font-size: 13px; }
.research-content { padding: 0 20px 20px; border-top: 1px solid var(--line-soft); }
.research-stats, .disclosure-metrics, .fundamental-detail-grid, .external-metrics, .cross-summary, .automation-grid { border-color: var(--line); background: var(--line-soft); }
.research-stats > div, .disclosure-metrics div, .fundamental-detail-grid > div, .external-metrics > div, .cross-summary > div, .automation-grid div { background: #fff; }
.headline-table, .disclosure-block, .external-card, .cross-factor-table, .macro-strip { border-color: var(--line); background: #fff; }
.headline-table-head, .cross-factor-head { background: #f5f7fa; color: #667085; }
.headline-event { border-color: var(--line-soft); }
.headline-event:hover { background: #f7f9fc; }
.official-mark { background: #eaf6f0; color: #177a53; }
.official-mark.senate { background: #f0efff; color: #6254c7; }
.official-mark.bls { background: #edf3ff; color: #2f6fed; }
.filing-list a { border-color: var(--line-soft); }
.external-title > span { background: #edf3ff; color: #2f6fed; }
.point-in-time-note { border-color: #c7d8fa; background: #f3f7ff; }
.point-in-time-note b { color: #2f6fed; }
.point-in-time-note span { color: #596579; }
.cross-factor-row { border-color: var(--line-soft); }
.cross-factor-row > span:last-child { background: #e7ecf2; }
.automation-light { background: #20a66a; box-shadow: none; }
.automation-pulse { border-color: #b8d8ca; background: radial-gradient(circle, #20a66a 0 13%, #eaf6f0 15% 100%); }
.automation-run, .auto-weight-button { border-color: #bcd0f5; background: #edf3ff; color: #1f5fd1; }

dialog::backdrop { background: rgba(23,32,51,.35); backdrop-filter: blur(4px); }
.dialog-card { border-color: var(--line); background: #fff; box-shadow: 0 24px 70px rgba(16,24,40,.22); }
.dialog-close { border-color: var(--line); background: #f5f7fa; color: #667085; }
.search-box { border-color: var(--line); background: #f8fafc; }
.search-box input { color: var(--text); }
.stock-result { border-color: var(--line); background: #fff; }
.stock-result:hover { border-color: #8caeec; background: #f7f9ff; }
.tracked-pill { color: #2f6fed; }
.ingestion-progress { border-color: #c7d8fa; background: #f3f7ff; }
.ingestion-spinner { border-color: #c7d8fa; border-top-color: #2f6fed; }
input[type="range"] { accent-color: #2f6fed; }
.weight-label output { color: #2f6fed; }
.toast { background: #172033; color: #fff; }

#signal-dialog { width: min(650px, calc(100% - 30px)); }
.signal-dialog-card { width: 100%; }
.signal-dialog-card h2 { margin: 0; }
.signal-detail-explanation { max-width: 520px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.signal-detail-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 18px 0 12px; }
.signal-detail-summary > div, .signal-evidence > div { display: grid; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; }
.signal-detail-summary small, .signal-evidence small, .signal-source small { color: #7c8798; font-size: 8px; letter-spacing: .07em; }
.signal-detail-summary strong, .signal-evidence strong { margin-top: 5px; font-size: 12px; }
.signal-source { display: grid; padding: 11px 2px; }
.signal-source strong { margin-top: 4px; font-size: 11px; }
.signal-evidence { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.signal-detail-note { margin: 14px 0 0; color: var(--muted); font-size: 10px; line-height: 1.55; }

#action-banner, #forecast-card, #signal-card, #accuracy-card { scroll-margin-top: 20px; }

@media (max-width: 1080px) {
  .app-shell { grid-template-columns: 78px minmax(0, 1fr); }
  .content-grid { grid-template-columns: minmax(0, 1fr); }
  .secondary-column { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .signal-card { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
  .sidebar { display: none; }
  .secondary-column { grid-template-columns: 1fr; }
  .signal-card { grid-column: auto; }
  .decision-heading { display: grid; }
  .decision-heading > span { width: max-content; }
}

@media (max-width: 560px) {
  .decision-panel { padding: 18px 12px; }
  .signal-row { grid-template-columns: 105px 1fr 50px; }
  .signal-open { display: none; }
  .signal-detail-summary, .signal-evidence { grid-template-columns: 1fr; }
  .research-content { padding: 0 12px 14px; }
}

/* 0.9 interaction and forecast clarity */
.chart-hint { color: var(--muted); font-size: 10px; }
.chart-layer-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.chart-layer-controls > span { margin-right: 2px; color: var(--muted); font-size: 9px; font-weight: 700; }
.chart-layer-controls button { height: 30px; display: flex; align-items: center; gap: 6px; padding: 0 10px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: #667085; font-size: 9px; cursor: pointer; }
.chart-layer-controls button:hover { border-color: #9eb9ec; }
.chart-layer-controls button.active { border-color: #8caeec; background: #edf3ff; color: #1f5fd1; box-shadow: inset 0 0 0 1px #dce8ff; }
.chart-layer-controls i { width: 12px; height: 3px; border-radius: 4px; background: #172033; }
.chart-layer-controls .range-swatch { height: 8px; background: rgba(47,111,237,.18); border: 1px solid rgba(47,111,237,.25); }
.chart-layer-controls .models-swatch { background: linear-gradient(90deg, #70d8ff 0 30%, #ff9f7b 30% 65%, #a8a4ff 65%); }
.future-chart-wrap { height: auto; margin-top: 8px; overflow: visible; }
.future-svg { display: block; width: 100%; height: 310px; }
.future-band { opacity: .72; }
.future-model-line { stroke-width: 1.15; opacity: .58; }
.future-factor-line { stroke-width: 2.8; }
.future-point { cursor: pointer; outline: none; }
.future-point circle { fill: #fff; stroke: var(--lime); stroke-width: 2; vector-effect: non-scaling-stroke; }
.future-point:hover circle, .future-point:focus circle, .future-point.selected circle { fill: var(--lime); stroke: #fff; stroke-width: 2.5; }
.future-legend { min-height: 20px; margin: 10px 0 0 52px; gap: 8px 15px; }
.future-chart-summary { display: grid; grid-template-columns: .9fr 1.2fr .7fr 1.5fr; gap: 0; margin: 13px 0 22px; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #f8fafc; }
.future-chart-summary > div { min-width: 0; display: grid; align-content: center; min-height: 62px; padding: 11px 13px; border-right: 1px solid var(--line-soft); }
.future-chart-summary > div:last-child { border-right: 0; }
.future-chart-summary small { color: #7c8798; font-size: 8px; letter-spacing: .07em; }
.future-chart-summary strong { margin-top: 5px; overflow: hidden; text-overflow: ellipsis; color: var(--text); font-size: 12px; white-space: nowrap; }
.future-chart-summary em { margin-left: 4px; font-size: 9px; font-style: normal; }
.forecast-days { margin-top: 0; padding-top: 4px; }

.stance-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 17px; }
.stance-card { min-width: 0; display: grid; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafc; }
.stance-card small { color: #667085; font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.stance-card strong { margin-top: 8px; font-size: 14px; }
.stance-card span { margin-top: 5px; color: var(--muted); font-size: 9px; line-height: 1.4; }
.stance-card.yes { border-color: #b9decd; background: #f0faf5; }
.stance-card.yes strong { color: #116b47; }
.stance-card.maybe { border-color: #efdba9; background: #fffaf0; }
.stance-card.maybe strong { color: #8b5b00; }
.stance-card.no { border-color: #efc6ca; background: #fff5f6; }
.stance-card.no strong { color: #a93642; }

.news-item { color: inherit; text-decoration: none; border-radius: 8px; transition: background .15s ease; }
.news-item:hover { background: #f7f9fc; }
.news-impact { color: #2f6fed; font-weight: 700; white-space: nowrap; }
.peer-row { grid-template-columns: minmax(105px, 1fr) 49px 37px 43px; }
.peer-row > .peer-stat:nth-of-type(2), .peer-weight { display: none; }
.peer-action { height: 27px; padding: 0 7px; border: 1px solid #bcd0f5; border-radius: 7px; background: #edf3ff; color: #1f5fd1; font-size: 8px; font-weight: 700; cursor: pointer; }
.peer-action:disabled { color: var(--muted); border-color: var(--line); background: #f5f7fa; }

#calendar-dialog, #workspace-dialog { width: min(650px, calc(100% - 30px)); }
#weights-dialog .dialog-card { max-height: min(86vh, 820px); overflow: auto; }
.utility-dialog-card { width: 100%; }
.calendar-details { display: grid; gap: 8px; margin: 20px 0; }
.calendar-row { display: grid; grid-template-columns: 58px 1fr; align-items: center; gap: 12px; padding: 10px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafc; }
.calendar-row time { display: grid; grid-template-columns: 1fr 1fr; align-items: center; padding: 7px; border-radius: 8px; background: #edf3ff; color: #1f5fd1; text-align: center; }
.calendar-row time b { grid-column: 1 / -1; font-size: 8px; text-transform: uppercase; }
.calendar-row time strong { font-size: 18px; }
.calendar-row time span { align-self: end; font-size: 8px; }
.calendar-row > div { display: grid; }
.calendar-row > div strong { font-size: 11px; }
.calendar-row > div small { margin-top: 5px; color: var(--muted); font-size: 9px; }
.workspace-details { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 20px 0; }
.workspace-details > div { display: grid; padding: 13px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; }
.workspace-details small { color: #7c8798; font-size: 8px; letter-spacing: .07em; }
.workspace-details strong { margin-top: 5px; font-size: 14px; }
.workspace-details span { margin-top: 4px; color: var(--muted); font-size: 9px; }
.workspace-wide { grid-column: 1 / -1; }
.secondary-button { width: 100%; min-height: 40px; padding: 0 14px; border: 1px solid #bcd0f5; border-radius: 9px; background: #edf3ff; color: #1f5fd1; font-size: 10px; font-weight: 700; cursor: pointer; }
.secondary-button:disabled { border-color: var(--line); color: var(--muted); background: #f5f7fa; }
.cross-summary { grid-template-columns: repeat(6, minmax(0, 1fr)); }

.source-status-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.source-status-grid > div { display: grid; grid-template-columns: 9px 1fr; align-items: center; gap: 3px 7px; padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; }
.source-status-grid strong { font-size: 10px; }
.source-status-grid small { grid-column: 2; color: var(--muted); font-size: 8px; }
.source-dot { width: 7px; height: 7px; border-radius: 50%; background: #dc5964; box-shadow: 0 0 0 3px #fbecef; }
.source-dot.positive { background: #25835f; box-shadow: 0 0 0 3px #e5f4ed; }
.source-dot.neutral { background: #ca8a04; box-shadow: 0 0 0 3px #fff4ce; }
.public-signal-summary { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 14px 0; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: var(--line); }
.public-signal-summary > div { display: grid; min-height: 76px; align-content: center; padding: 12px; background: #fff; }
.public-signal-summary small { color: #7c8798; font-size: 8px; letter-spacing: .06em; }
.public-signal-summary strong { margin-top: 5px; font-size: 17px; }
.public-signal-summary span { margin-top: 4px; color: var(--muted); font-size: 8px; }
.public-evidence-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.public-evidence-columns > section { min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.public-evidence-title { display: flex; justify-content: space-between; gap: 10px; align-items: baseline; margin-bottom: 8px; }
.public-evidence-title h3 { margin: 0; font-size: 12px; }
.public-evidence-title span { color: var(--muted); font-size: 8px; }
.public-event-list { display: grid; }
.public-event-list a { position: relative; display: grid; grid-template-columns: 1fr auto; gap: 4px 10px; padding: 10px 2px; border-top: 1px solid var(--line-soft); color: inherit; text-decoration: none; }
.public-event-list a:first-child { border-top: 0; }
.public-event-list a:hover b { color: #1f5fd1; }
.public-event-list a > span { display: grid; }
.public-event-list b { font-size: 10px; }
.public-event-list small { margin-top: 3px; color: var(--muted); font-size: 8px; }
.public-event-list p { grid-column: 1 / -1; max-height: 32px; margin: 2px 0 0; overflow: hidden; color: #475467; font-size: 9px; line-height: 1.55; }
.public-event-list em { grid-column: 2; grid-row: 1; font-size: 9px; font-style: normal; font-weight: 800; }
.news-controls { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin: 2px 0 9px; }
.news-controls > div { display: flex; gap: 5px; }
.news-controls button, .calendar-toolbar button { min-height: 27px; padding: 0 9px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: #667085; font-size: 8px; font-weight: 700; cursor: pointer; }
.news-controls button.active, .calendar-toolbar button.active { border-color: #9eb9ec; background: #edf3ff; color: #1f5fd1; }
.news-controls > span { color: var(--muted); font-size: 8px; }
.news-more, .events-more { width: 100%; min-height: 32px; margin-top: 7px; border: 1px solid #bcd0f5; border-radius: 8px; background: #edf3ff; color: #1f5fd1; font-size: 9px; font-weight: 700; cursor: pointer; }
.intelligence-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: var(--line); }
.intelligence-summary > div { display: grid; min-height: 82px; align-content: center; padding: 13px; background: #fff; }
.intelligence-summary small { color: #7c8798; font-size: 8px; letter-spacing: .06em; }
.intelligence-summary strong { margin-top: 6px; font-size: 16px; }
.intelligence-summary span { margin-top: 4px; color: var(--muted); font-size: 8px; }
.intelligence-columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.intelligence-columns > section { min-width: 0; padding: 13px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.supply-chain-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 12px 0; }
.supply-chain-strip > div { display: grid; padding: 12px; border: 1px solid #cfe0fa; border-radius: 10px; background: #f5f9ff; }
.supply-chain-strip small { color: #667085; font-size: 8px; letter-spacing: .05em; }
.supply-chain-strip strong { margin-top: 5px; font-size: 13px; }
.supply-chain-strip span { margin-top: 4px; color: var(--muted); font-size: 8px; }
.calendar-toolbar { display: grid; gap: 9px; margin: 14px 0 8px; }
.calendar-toolbar > div { display: flex; flex-wrap: wrap; gap: 5px; }
.calendar-summary { display: flex; align-items: baseline; flex-wrap: wrap; gap: 7px 12px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; }
.calendar-summary strong { font-size: 14px; }
.calendar-summary span { color: var(--muted); font-size: 9px; }
.calendar-row > div span { margin-top: 4px; color: #7c8798; font-size: 8px; }

.home-page { display: grid; gap: 16px; }
.home-page[hidden], .stock-workspace[hidden] { display: none !important; }
.home-welcome, .recommendation-heading { display: flex; justify-content: space-between; align-items: end; gap: 20px; }
.home-welcome { padding: 8px 2px 2px; }
.home-welcome h2, .recommendation-heading h2 { margin: 2px 0 4px; font-size: 22px; }
.home-welcome p:last-child, .recommendation-heading p:last-child { margin: 0; color: var(--muted); font-size: 10px; }
.home-tracked-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.home-stock-card { position: relative; min-width: 0; padding: 16px; }
.home-stock-top { display: grid; grid-template-columns: 38px 1fr 26px; align-items: center; gap: 9px; }
.home-stock-top .company-logo { width: 38px; height: 38px; font-size: 9px; }
.home-stock-top > div { min-width: 0; display: grid; gap: 2px; }
.home-stock-top strong { font-size: 12px; }
.home-stock-top small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.home-remove { width: 26px; height: 26px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: #98a2b3; cursor: pointer; }
.home-remove:hover { border-color: #efc6ca; background: #fff5f6; color: #c3424f; }
.home-stock-price { min-height: 22px; margin-top: 14px; font-size: 15px; font-weight: 800; }
.home-stock-price b { margin-left: 5px; font-size: 9px; }
.home-stock-card .sparkline { width: 100%; height: 44px; margin: 3px 0 7px; }
.home-open-stock { width: 100%; height: 32px; border: 1px solid #bcd0f5; border-radius: 8px; background: #edf3ff; color: #1f5fd1; font-size: 9px; font-weight: 750; cursor: pointer; }
.home-empty { min-height: 175px; display: grid; place-items: center; align-content: center; gap: 6px; border-style: dashed; color: #667085; cursor: pointer; }
.home-empty b { font-size: 22px; color: #2f6fed; }
.home-empty span { font-size: 9px; }
.recommendation-heading { margin-top: 12px; }
.recommendation-heading > span { max-width: 420px; color: #98a2b3; font-size: 8px; text-align: right; line-height: 1.4; }
.recommendation-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.recommendation-group { min-width: 0; padding: 16px; }
.recommendation-group > div:first-child { display: flex; gap: 10px; align-items: center; padding-bottom: 12px; border-bottom: 1px solid var(--line-soft); }
.recommendation-group h3 { margin: 0; font-size: 13px; }
.recommendation-group p { margin: 3px 0 0; color: var(--muted); font-size: 8px; line-height: 1.35; }
.recommendation-icon { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 9px; background: #edf3ff; color: #1f5fd1; font-size: 14px; font-weight: 800; }
.recommendation-icon.emerging { background: #fff7e6; color: #a16207; }
.recommendation-icon.buzz { background: #f4efff; color: #6941c6; }
.recommendation-list { display: grid; }
.recommendation-row { min-width: 0; display: grid; grid-template-columns: 31px minmax(0, 1fr) auto auto; gap: 8px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--line-soft); }
.recommendation-row:last-child { border-bottom: 0; }
.recommendation-row .ticker-logo { width: 31px; height: 31px; }
.recommendation-row > span:nth-child(2) { min-width: 0; display: grid; }
.recommendation-row strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.recommendation-row small { margin-top: 3px; overflow: hidden; color: var(--muted); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.recommendation-move { color: #596579; font-size: 8px; font-weight: 750; }
.recommendation-row button { min-height: 27px; padding: 0 7px; border: 1px solid #bcd0f5; border-radius: 7px; background: #edf3ff; color: #1f5fd1; font-size: 8px; font-weight: 750; cursor: pointer; }
.recommendation-row button:disabled { border-color: var(--line); background: #f5f7fa; color: #98a2b3; }

.price-explanation { margin-top: 16px; padding: 20px 22px; }
.price-explanation-heading { display: flex; justify-content: space-between; gap: 15px; align-items: start; }
.price-explanation-heading h2 { margin: 2px 0 0; font-size: 17px; }
.price-explanation-heading > span { padding: 5px 8px; border-radius: 999px; background: #edf3ff; color: #1f5fd1; font-size: 8px; font-weight: 700; }
.price-explanation-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; margin-top: 14px; }
.price-reason { min-width: 0; display: grid; grid-template-columns: 30px 1fr; gap: 9px; align-items: center; padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; }
.price-reason i { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 8px; background: #f1f4f8; color: #667085; font-size: 13px; font-style: normal; }
.price-reason.positive i { background: #e9f6ef; color: #177a53; }
.price-reason.negative i { background: #fff0f1; color: #c3424f; }
.price-reason span { display: grid; gap: 3px; }
.price-reason strong { font-size: 10px; }
.price-reason small { color: var(--muted); font-size: 8px; line-height: 1.35; }
.price-reason em { color: #98a2b3; font-size: 7px; font-style: normal; }
.reason-sources { display: grid; gap: 4px; margin-top: 5px; }
.reason-sources a { display: grid; grid-template-columns: auto 1fr; gap: 5px; min-width: 0; padding-top: 4px; border-top: 1px solid var(--line-soft); color: #596579; font-size: 7px; line-height: 1.3; text-decoration: none; }
.reason-sources a b { color: #1f5fd1; font-size: 7px; white-space: nowrap; }
.reason-sources a:hover { color: #1f5fd1; }
.price-explanation > p { margin: 10px 2px 0; color: #98a2b3; font-size: 8px; }

.history-toolbar { display: flex; gap: 7px; }
.history-range-controls, .history-view-controls { display: flex; padding: 3px; border: 1px solid var(--line); border-radius: 9px; background: #f5f7fa; }
.history-range-controls button, .history-view-controls button { min-width: 40px; height: 27px; padding: 0 9px; border: 0; border-radius: 6px; background: transparent; color: #667085; font-size: 8px; cursor: pointer; }
.history-range-controls button.active, .history-view-controls button.active { background: #fff; color: #1f5fd1; box-shadow: 0 1px 3px rgba(16,24,40,.1); }
#history-chart.chart-wrap { height: auto; min-height: 0; overflow: visible; }
.history-svg { width: 100%; height: 310px; display: block; }
.history-y-label { fill: #98a2b3; font-size: 7px; }
.chart-grid.zero { stroke: #98a2b3; stroke-width: 1.2; }
.actual-line { stroke: #172033; stroke-width: 2.5; }
.main-history-line { stroke: #2f6fed; stroke-width: 3.5; }
.history-quant-line { fill: none; stroke: #98a2b3; stroke-width: 1.5; stroke-dasharray: 5 4; }
.history-event-marker line { stroke: #c7d3e3; stroke-width: 1; stroke-dasharray: 3 4; }
.history-event-marker circle { fill: #667085; stroke: #fff; stroke-width: 2; }
.history-event-marker circle.positive { fill: #20a66a; }
.history-event-marker circle.negative { fill: #dc5964; }
.history-event-marker text { fill: #475467; font-size: 7px; font-weight: 800; }
.review-legend { align-items: center; gap: 11px; }
.review-legend .actual-key { background: #172033; }
.review-legend .main-key { height: 3px; background: #2f6fed; }
.review-legend .quant-key { background: #98a2b3; }
.review-legend button { min-height: 27px; padding: 0 9px; border: 1px solid var(--line); border-radius: 7px; background: #fff; color: #667085; font-size: 8px; font-weight: 700; cursor: pointer; }
.review-legend button.active { border-color: #9eb9ec; background: #edf3ff; color: #1f5fd1; }
.history-alignment-note { display: flex; gap: 9px; align-items: baseline; margin: 10px 0; padding: 9px 11px; border: 1px solid #cfe0fa; border-radius: 9px; background: #f5f9ff; }
.history-alignment-note b { color: #1f5fd1; font-size: 8px; }
.history-alignment-note span { color: #596579; font-size: 8px; line-height: 1.4; }
.history-event-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; }
.history-event-chip { min-width: 0; display: grid; grid-template-columns: 23px 1fr; gap: 7px; align-items: center; padding: 8px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: inherit; text-decoration: none; }
.history-event-chip > b { width: 23px; height: 23px; display: grid; place-items: center; border-radius: 6px; background: #edf3ff; color: #1f5fd1; font-size: 8px; }
.history-event-chip span { min-width: 0; display: grid; gap: 2px; }
.history-event-chip strong { overflow: hidden; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.history-event-chip small, .history-no-events { color: var(--muted); font-size: 7px; }
.future-factor-line { stroke: #2f6fed; stroke-width: 3.4; }
.future-legend .main-model-key { color: #1f5fd1; font-weight: 750; }
.future-legend .main-model-key i { height: 3px; background: #2f6fed; }
.future-legend .model-mode-badge { padding: 3px 6px; border-radius: 6px; background: #f1f4f8; color: #596579; font-size: 7px; }
.consensus-row .model-cell { background: #edf3ff; border-top: 1px solid #bcd0f5; border-bottom: 1px solid #bcd0f5; }

.research-model-panel { margin-top: 16px; padding: 22px; }
.research-model-summary { display: grid; grid-template-columns: minmax(0, 1fr) 230px; gap: 12px; margin-top: 15px; }
.research-model-summary > div { display: grid; align-content: center; min-height: 84px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 11px; background: #f8fafc; }
.research-model-summary small { color: #667085; font-size: 8px; font-weight: 750; letter-spacing: .06em; }
.research-model-summary strong { margin-top: 5px; font-size: 14px; }
.research-model-summary span { margin-top: 5px; color: var(--muted); font-size: 8px; line-height: 1.45; }
.research-model-summary .research-score { background: #fff; }
.research-score.positive { border-color: #b9dfcc; background: #f2fbf6; }
.research-score.positive strong { color: #177a53; }
.research-score.neutral strong { color: #596579; }
.research-model-toolbar { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin: 14px 0 8px; }
.research-model-toolbar > span { color: var(--muted); font-size: 8px; }
.research-horizons { display: flex; padding: 3px; border: 1px solid var(--line); border-radius: 9px; background: #f5f7fa; }
.research-horizons button { min-width: 40px; height: 28px; border: 0; border-radius: 6px; background: transparent; color: #667085; font-size: 8px; font-weight: 700; cursor: pointer; }
.research-horizons button.active { background: #fff; color: #1f5fd1; box-shadow: 0 1px 3px rgba(16,24,40,.1); }
.research-model-toggles { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 9px; }
.research-model-toggles button { min-height: 29px; display: flex; align-items: center; gap: 6px; padding: 0 9px; border: 1px solid var(--line); border-radius: 8px; background: #fff; color: #667085; font-size: 8px; font-weight: 700; cursor: pointer; opacity: .62; }
.research-model-toggles button.active { border-color: #a9c1ec; background: #f4f8ff; color: #1f5fd1; opacity: 1; }
.research-model-toggles i, .research-results i { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; }
.research-model-toggles b { padding: 2px 4px; border-radius: 5px; background: #e4f4ec; color: #177a53; font-size: 6px; text-transform: uppercase; }
.research-chart-wrap { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.research-model-svg { width: 100%; height: 310px; display: block; }
.research-model-svg line { stroke: #e3e8ef; stroke-width: 1; }
.research-model-svg text { fill: #7c8798; font-size: 7px; }
.research-model-svg polyline { fill: none; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.research-model-svg .paper-line { stroke-width: 1.4; opacity: .72; }
.research-model-svg .ensemble-line { stroke-width: 3.2; opacity: 1; }
.research-current-dot { fill: #172033; stroke: #fff; stroke-width: 2; vector-effect: non-scaling-stroke; }
.research-test-note { margin: 10px 0; padding: 10px 12px; border: 1px solid #d7e2f4; border-radius: 9px; background: #f5f9ff; color: #596579; font-size: 8px; line-height: 1.5; }
.research-test-note b { color: #1f5fd1; }
.research-results-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: 10px; }
.research-results { width: 100%; min-width: 850px; border-collapse: collapse; font-size: 8px; }
.research-results th { padding: 9px 10px; background: #f5f7fa; color: #667085; text-align: left; font-weight: 700; white-space: nowrap; }
.research-results td { padding: 10px; border-top: 1px solid var(--line-soft); color: #475467; white-space: nowrap; }
.research-results tr.ensemble-row td { background: #f5f9ff; }
.research-results tr.champion-row td { background: #f0faf5; border-top-color: #b9dfcc; }
.research-results tr.champion-row a b { color: #0b6b4f; }
.research-results td:first-child { width: 220px; white-space: normal; }
.research-results a { display: flex; gap: 7px; align-items: center; color: inherit; text-decoration: none; }
.research-results a > span, .research-results td:nth-child(2) { display: grid; gap: 2px; }
.research-results a b { color: #172033; font-size: 9px; }
.research-results small { color: #98a2b3; font-size: 7px; line-height: 1.35; }
.research-results .positive { color: #177a53; font-weight: 750; }
.research-results .negative { color: #c3424f; font-weight: 750; }
.research-status { padding: 4px 6px; border-radius: 999px; font-size: 7px; font-weight: 750; }
.research-status.passed { background: #e4f4ec; color: #177a53; }
.research-status.blocked { background: #f1f3f6; color: #667085; }
.research-method-note { margin: 9px 2px 0; color: #98a2b3; font-size: 7px; line-height: 1.5; }
.research-model-empty { display: grid; gap: 6px; margin-top: 14px; padding: 16px; border: 1px dashed #c7d3e3; border-radius: 10px; background: #f8fafc; }
.research-model-empty strong { font-size: 11px; }
.research-model-empty span, .research-model-empty code { color: #667085; font-size: 8px; }
.recent-paper-screen { margin-top: 11px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.recent-paper-screen summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px; background: #f8fafc; cursor: pointer; list-style: none; }
.recent-paper-screen summary::-webkit-details-marker { display: none; }
.recent-paper-screen summary > span { display: grid; gap: 3px; }
.recent-paper-screen summary b { font-size: 9px; }
.recent-paper-screen summary small, .recent-paper-screen summary em { color: #7c8798; font-size: 7px; font-style: normal; }
.recent-paper-screen > div { display: grid; padding: 0 12px; }
.recent-paper-screen a { display: flex; justify-content: space-between; gap: 14px; padding: 11px 0; border-top: 1px solid var(--line-soft); color: inherit; text-decoration: none; }
.recent-paper-screen a span { display: grid; gap: 3px; }
.recent-paper-screen a b { font-size: 9px; }
.recent-paper-screen a small { color: #1f5fd1; font-size: 7px; }
.recent-paper-screen a em { color: #667085; font-size: 7px; font-style: normal; line-height: 1.4; }
.recent-paper-screen a > strong { align-self: center; color: #1f5fd1; font-size: 7px; white-space: nowrap; }

@media (max-width: 820px) {
  .stance-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .future-chart-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .future-chart-summary > div:nth-child(2) { border-right: 0; }
  .future-chart-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .cross-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .source-status-grid, .public-signal-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .public-evidence-columns { grid-template-columns: 1fr; }
  .intelligence-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .intelligence-columns { grid-template-columns: 1fr; }
  .supply-chain-strip { grid-template-columns: 1fr; }
  .research-model-summary { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .chart-hint { display: none; }
  .chart-layer-controls { align-items: stretch; }
  .chart-layer-controls > span { width: 100%; }
  .chart-layer-controls button { flex: 1; justify-content: center; padding-inline: 7px; }
  .future-svg { height: 245px; }
  .future-legend { margin-left: 0; }
  .stance-cards { grid-template-columns: 1fr; }
  .workspace-details { grid-template-columns: 1fr; }
  .workspace-wide { grid-column: auto; }
  .source-status-grid, .public-signal-summary { grid-template-columns: 1fr; }
  .intelligence-summary { grid-template-columns: 1fr; }
  .research-model-toolbar { align-items: flex-start; flex-direction: column; }
  .research-model-svg { height: 250px; }
}

/* 2.0 — research-first interface
   Calm hierarchy, accessible contrast, progressive disclosure and larger controls. */
:root {
  color-scheme: light;
  --bg: #f4f6f8;
  --panel: #ffffff;
  --panel-2: #f8fafc;
  --line: #d7dee8;
  --line-soft: #e8edf3;
  --text: #101828;
  --muted: #596579;
  --lime: #147a5b;
  --lime-dim: #e9f5ef;
  --red: #b42318;
  --blue: #2457c5;
  --amber: #8a5600;
  --radius: 16px;
  font-family: Inter, Aptos, "Segoe UI Variable", "Segoe UI", system-ui, sans-serif;
}

html { scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: var(--text);
  font-size: 15px;
  line-height: 1.5;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body .app-shell small { font-size: 11px !important; line-height: 1.45; }
body :is(strong, .price, .signal-score, .forecast-price, .ticker-price, dd) { font-variant-numeric: tabular-nums; }
button, input, summary { touch-action: manipulation; }
button:not(.nav-item):not(.ticker-chip):not(.signal-row):not(.paper-agent-row):not(.stock-result) { min-height: 36px; }
button:focus-visible, a:focus-visible, input:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid rgba(36, 87, 197, .28);
  outline-offset: 2px;
}
.skip-link {
  position: fixed;
  left: 16px;
  top: 12px;
  z-index: 100;
  transform: translateY(-160%);
  padding: 10px 14px;
  border-radius: 9px;
  background: var(--text);
  color: #fff;
  font-weight: 700;
  text-decoration: none;
}
.skip-link:focus { transform: translateY(0); }

.app-shell { grid-template-columns: 224px minmax(0, 1fr); }
.sidebar {
  padding: 28px 18px 22px;
  border-color: var(--line);
  background: #fff;
  box-shadow: 1px 0 0 rgba(16, 24, 40, .02);
}
.brand { gap: 11px; color: var(--text); }
.brand > span:last-child { display: grid; gap: 2px; }
.brand strong { font-size: 17px; letter-spacing: -.02em; }
.brand small { color: var(--muted); font-weight: 500; }
.brand-mark { width: 38px; height: 38px; transform: none; align-items: center; padding: 6px; gap: 3px; border-radius: 11px; background: #eef3ff; }
.brand-mark i { width: 5px; background: var(--blue); border-radius: 4px; }
.brand-mark i:nth-child(1) { height: 10px; }
.brand-mark i:nth-child(2) { height: 18px; }
.brand-mark i:nth-child(3) { height: 25px; }
.sidebar nav { gap: 5px; margin-top: 38px; }
.nav-item {
  position: relative;
  height: 46px;
  padding: 0 12px;
  border-radius: 10px;
  color: #475467;
  font-size: 13px;
  font-weight: 600;
}
.nav-item:hover { background: #f5f7fa; color: var(--text); }
.nav-item.active { background: #eef3ff; color: #1f4faf; }
.nav-item.active::before { content: ""; position: absolute; left: -18px; width: 3px; height: 24px; border-radius: 0 3px 3px 0; background: var(--blue); }
.nav-icon { width: 22px; color: #8a96a8; font-size: 10px; font-weight: 750; }
.model-status { padding: 12px; border-color: var(--line); background: #f8fafc; }
.model-status strong, .profile strong { font-size: 12px; }
.profile { min-height: 42px; border-radius: 10px; }

main { max-width: 1600px; padding: 0 clamp(20px, 3vw, 48px) 64px; }
.topbar {
  position: sticky;
  top: 0;
  z-index: 8;
  min-height: 92px;
  margin: 0 -8px;
  padding: 16px 8px;
  background: rgba(244, 246, 248, .92);
  backdrop-filter: blur(14px);
}
.eyebrow { margin-bottom: 5px; color: #6b778c; font-size: 10px; line-height: 1.3; letter-spacing: .12em; }
h1 { font-size: clamp(26px, 2.3vw, 34px); font-weight: 650; }
h1 span { color: #667085; font-weight: 500; }
.top-actions { gap: 12px; }
.shortcut-hint { color: var(--muted); font-size: 12px; }
.shortcut-hint kbd { min-width: 24px; display: inline-grid; place-items: center; margin: 0 3px; padding: 2px 6px; border: 1px solid #cbd3de; border-bottom-width: 2px; border-radius: 6px; background: #fff; color: #344054; font: inherit; }
.add-button, .save-button { min-height: 42px; padding: 0 17px; border-radius: 10px; background: var(--blue); color: #fff; font-size: 13px; box-shadow: 0 1px 2px rgba(16, 24, 40, .1); }
.add-button:hover, .save-button:hover { background: #1f4faf; }
.icon-button { min-width: 38px; border-color: var(--line); background: #fff; }

.ticker-strip { gap: 10px; margin: 24px 0 20px; }
.ticker-chip { flex-basis: 176px; height: 68px; padding: 11px 12px; border-color: var(--line); border-radius: 12px; background: #fff; }
.ticker-chip.active { border-color: #8ba8e9; background: #f4f7ff; box-shadow: inset 0 0 0 1px #dce6fb; }
.ticker-name { font-size: 13px; }
.ticker-price { margin-top: 3px; color: #475467; font-size: 11px; }
.ticker-add { height: 68px; border-color: #aeb8c6; border-radius: 12px; background: #fff; }

.panel { border-color: var(--line); border-radius: var(--radius); background: #fff; box-shadow: 0 1px 2px rgba(16, 24, 40, .035); }
.action-banner {
  grid-template-columns: minmax(300px, 1.1fr) minmax(440px, 1.4fr);
  align-items: stretch;
  gap: 18px 24px;
  padding: 22px 24px;
  background: #fff;
}
.action-primary h2 { font-size: 19px; }
.action-primary > div > p:last-child, .action-risks p { font-size: 12px; }
.action-icon { width: 46px; height: 46px; }
.action-metrics { grid-template-columns: repeat(4, minmax(92px, 1fr)); gap: 8px; }
.action-metrics div { justify-content: center; padding: 10px 12px; border: 1px solid var(--line-soft); border-radius: 10px; background: #f8fafc; }
.action-metrics small { font-size: 10px; }
.action-metrics strong { margin-top: 3px; font-size: 14px; }
.action-metrics span { font-size: 11px; }
.action-risks { grid-column: 1 / -1; justify-content: flex-start; padding-top: 2px; }
.action-risks p { width: auto; margin: 4px 4px 0 0; text-align: left; }
.action-risks span { padding: 5px 8px; border-color: var(--line); background: #f8fafc; color: #475467; font-size: 11px; }

.paper-consensus, .decision-panel { margin-bottom: 20px; }
.paper-consensus-details > summary { min-height: 88px; padding: 18px 24px; }
.paper-consensus-title h2, .decision-heading h2 { font-size: 20px; }
.paper-expand, .paper-agent-open { font-size: 11px; }
.decision-panel { padding: 24px; }
.decision-heading p:last-child { font-size: 12px; }
.stance-cards { gap: 10px; margin-top: 20px; }
.stance-card { min-height: 98px; padding: 14px; }
.stance-card strong { font-size: 14px; }
.stance-card span { font-size: 11px; }
.decision-details { margin-top: 18px; border: 1px solid var(--line); border-radius: 11px; overflow: hidden; background: #fbfcfe; }
.decision-details > summary { min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 16px; cursor: pointer; list-style: none; }
.decision-details > summary::-webkit-details-marker { display: none; }
.decision-details > summary span { display: grid; }
.decision-details > summary b { font-size: 13px; }
.decision-details > summary em { color: var(--blue); font-size: 11px; font-style: normal; font-weight: 750; }
.decision-details[open] > summary { border-bottom: 1px solid var(--line); }
.decision-details[open] > summary em { font-size: 0; }
.decision-details[open] > summary em::after { content: "Close comparison"; font-size: 11px; }
.decision-details .decision-scroll { margin: 0; padding: 14px; background: #fff; }
.decision-cell { min-height: 66px; }
.decision-head, .decision-head b, .decision-name b, .decision-answer b { font-size: 12px; }

.content-grid { grid-template-columns: minmax(0, 1.72fr) minmax(340px, .78fr); gap: 20px; }
.primary-column, .secondary-column { gap: 20px; }
.hero-card { padding: 28px; }
.company h2 { font-size: 20px; }
.company p, .updated { font-size: 12px; }
.outlook-summary { max-width: 760px; font-size: clamp(36px, 3.7vw, 54px); line-height: 1.02; }
.price-block .price { font-size: 30px; }
.conditions-label { font-size: 11px; }
.confidence-copy strong, .next-close strong { font-size: 13px; }
.data-ribbon { flex-wrap: wrap; gap: 10px 16px; font-size: 11px; }
.data-ribbon button { min-height: 28px !important; font-size: 11px; }

.forecast-panel, .accuracy-panel, .signal-card, .news-panel, .events-panel, .peers-panel, .automation-panel, .research-model-panel { padding: 24px; }
.panel-heading h2 { font-size: 20px; line-height: 1.25; }
.panel-intro { margin-top: -2px; font-size: 12px; }
.chart-hint { color: var(--muted); font-size: 11px; }
.future-chart-heading { margin-top: 22px; padding-top: 20px; }
.future-chart-heading h3 { font-size: 15px; }
.horizon-controls { padding: 4px; border-color: var(--line); background: #f4f6f9; }
.horizon-controls button { min-width: 46px; height: 34px; color: #475467; font-size: 12px; }
.horizon-controls button.active { background: #fff; color: var(--blue); box-shadow: 0 1px 3px rgba(16, 24, 40, .12); }
.chart-layer-controls { gap: 8px; margin-top: 14px; }
.chart-layer-controls > span { font-size: 11px; }
.chart-layer-controls button { min-height: 38px; padding: 0 12px; color: #475467; font-size: 11px; }
.future-chart-wrap { height: auto; min-height: 340px; margin-top: 10px; }
.future-svg { height: 340px; }
.future-grid, .chart-grid { stroke: #e3e8ef; }
.future-axis-label, .chart-label, .history-y-label { font-size: 10px; }
.future-factor-line { stroke: var(--blue); stroke-width: 3; }
.future-quant-line { stroke: #172033; stroke-width: 1.6; }
.future-crosshair { stroke: #8da2c8; stroke-width: 1; stroke-dasharray: 4 4; vector-effect: non-scaling-stroke; }
.future-point { cursor: pointer; }
.future-point circle { fill: #fff; stroke: var(--blue); stroke-width: 2.2; vector-effect: non-scaling-stroke; }
.future-point.selected circle { fill: var(--blue); stroke: #fff; stroke-width: 2.5; }
.future-legend { gap: 8px 16px; margin: 2px 0 14px 52px; font-size: 11px; }
.future-chart-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0 0 10px; border: 1px solid var(--line-soft); border-radius: 10px; background: #f8fafc; }
.future-chart-summary > div { min-height: 65px; display: grid; align-content: center; gap: 4px; padding: 10px 14px; border-right: 1px solid var(--line-soft); }
.future-chart-summary > div:last-child { border-right: 0; }
.future-chart-summary strong { color: var(--text); font-size: 14px; }
.forecast-days { overflow-x: auto; grid-template-columns: repeat(6, minmax(125px, 1fr)); }
.forecast-day { padding: 16px 10px 12px; }
.forecast-day .day { font-size: 11px; }
.forecast-price { font-size: 15px; }
.forecast-change, .forecast-range { font-size: 11px; }
.forecast-confidence { padding: 4px 8px; font-size: 10px; }
.model-details summary b, .validation-details summary b { font-size: 13px; }
.model-details summary em, .validation-details summary em { font-size: 11px; }
.model-cell, .model-name, .model-price, .model-header, .model-date { font-size: 11px; }

.chart-wrap { height: 290px; }
.review-legend { margin-top: 8px; font-size: 11px; }
.review-legend button { font-size: 11px; }
.history-toolbar button, .history-range-controls button, .history-view-controls button { min-height: 34px; font-size: 11px; }
.history-alignment-note { font-size: 12px; }
.history-event-chip strong { font-size: 12px; }
.validation-card > div strong { font-size: 12px; }
.validation-card dt, .validation-card dd { font-size: 10px; }

.signal-overview { align-items: center; margin: 16px 0; padding: 14px; border-radius: 11px; background: #f8fafc; }
.signal-score { font-size: 38px; }
.signal-verdict { font-size: 11px; }
.signal-list-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 2px 2px 8px; color: var(--muted); font-size: 11px; }
.signal-list-heading b { color: #344054; font-weight: 650; }
.signal-row { grid-template-columns: 126px 1fr 68px 32px; min-height: 46px; gap: 9px; padding: 0 6px; }
.signal-name { color: #344054; font-size: 12px; font-weight: 600; }
.signal-track { height: 6px; background: #e7ecf2; }
.signal-track::after { content: ""; position: absolute; left: 50%; top: -2px; bottom: -2px; width: 1px; background: #b8c2d0; }
.signal-value, .signal-open, #weight-mode { font-size: 10px; }
.signal-toggle { width: 100%; margin-top: 10px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--blue); font-size: 12px; font-weight: 700; cursor: pointer; }
.signal-toggle:hover { background: #f5f8ff; }

.peer-summary strong { font-size: 27px; }
.peer-row, .news-item, .event { min-height: 54px; }
.peer-row b, .news-item b, .event b { font-size: 12px; }
.news-item p, .event p, .peer-row span { font-size: 11px; }
.peer-identity strong, .peer-stat strong { font-size: 11px; }
.peer-identity small, .news-meta, .news-impact { font-size: 10px; }
.peer-action, .news-controls button, .news-more, .events-more { min-height: 34px; font-size: 11px; }
.news-controls > span { font-size: 10px; }
.news-item h3 { font-size: 12px; line-height: 1.45; }
.text-button { min-height: 36px; color: var(--blue); font-size: 11px; font-weight: 700; }
.live-pill { font-size: 10px; }

.research-stack { gap: 12px; }
.research-stack-heading h2 { font-size: 21px; }
.research-stack-heading > p:last-child { font-size: 12px; }
.research-panel summary { min-height: 74px; padding: 16px 20px; }
.research-panel summary b { font-size: 14px; }
.research-panel summary em { font-size: 11px; }
.research-content { padding: 0 20px 20px; }
.research-model-summary strong { font-size: 14px; }
.research-model-summary span, .research-test-note, .research-method-note { font-size: 11px; }
.research-model-toolbar button, .research-model-toggles button { min-height: 36px; font-size: 11px; }
.research-model-svg { height: 330px; }
.research-model-svg text { font-size: 10px; }
.research-results { font-size: 11px; }
.research-results a b { font-size: 12px; }
.research-status, .model-mode-badge { font-size: 10px; }
.research-results th, .research-results td { padding: 11px 12px; }
.recent-paper-screen summary b, .recent-paper-screen a b { font-size: 12px; }
.recent-paper-screen summary em, .recent-paper-screen a em, .recent-paper-screen a small { font-size: 10px; }
.paper-agent-toolbar button { min-height: 36px; font-size: 11px; }
.paper-agent-row { min-height: 78px; }
.paper-agent-paper strong { font-size: 12px; }
.paper-agent-paper small, .paper-agent-reason, .paper-agent-family, .paper-agent-vote b { font-size: 10px; }
.price-explanation { padding: 24px; }
.price-explanation-heading h2 { font-size: 20px; }
.price-explanation-heading > span { font-size: 10px; }
.price-reason { padding: 14px; align-items: start; }
.price-reason strong { font-size: 13px; line-height: 1.4; }
.price-reason em, .reason-sources a, .reason-sources a b, .price-explanation > p { font-size: 10px; }
.automation-copy { font-size: 11px; }
.automation-run { min-height: 38px; font-size: 11px; }

.home-welcome p:last-child, .recommendation-heading p:last-child { font-size: 12px; }
.home-stock-top strong, .recommendation-row strong { font-size: 13px; }
.home-stock-price b, .home-open-stock, .home-empty span, .recommendation-row small, .recommendation-move, .recommendation-row button { font-size: 11px; }
.home-open-stock, .recommendation-row button { min-height: 36px; }

dialog { border: 0; border-radius: 16px; }
.dialog-card { padding: 26px; }
.dialog-card h2 { font-size: 22px; }
.dialog-copy { font-size: 13px; line-height: 1.55; }
.search-box { min-height: 48px; }
.search-box input { font-size: 15px; }
.toast { font-size: 13px; }

@media (max-width: 1180px) {
  .app-shell { grid-template-columns: 202px minmax(0, 1fr); }
  .content-grid { grid-template-columns: minmax(0, 1fr); }
  .secondary-column { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .signal-card { grid-row: span 2; }
  .action-banner { grid-template-columns: 1fr; }
  .action-risks { grid-column: auto; }
}

@media (max-width: 820px) {
  .app-shell { display: block; }
  .sidebar {
    display: flex !important;
    position: fixed;
    inset: 0 auto 0 0;
    width: min(86vw, 300px);
    height: 100dvh;
    transform: translateX(-105%) !important;
    transition: transform .2s ease;
    box-shadow: 18px 0 40px rgba(16, 24, 40, .18);
  }
  body.nav-open { overflow: hidden; }
  body.nav-open .sidebar { transform: translateX(0) !important; }
  body.nav-open::after { content: ""; position: fixed; inset: 0; z-index: 9; background: rgba(16, 24, 40, .34); }
  main { padding: 0 18px 48px; }
  .topbar { min-height: 82px; margin: 0 -4px; padding: 12px 4px; }
  .mobile-menu { display: grid; place-items: center; width: 42px; height: 42px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: #344054; }
  .model-status { width: 100%; }
  .model-status div, .profile div { display: grid; }
  .profile { width: 100%; display: grid; grid-template-columns: 31px 1fr auto; justify-content: initial; }
  .profile b { display: block; }
  .topbar > div:nth-child(2) { margin-right: auto; }
  .topbar h1 { font-size: 23px; }
  .shortcut-hint { display: none; }
  .paper-consensus-details > summary { grid-template-columns: 1fr auto; }
  .paper-vote-tally { display: none; }
  .action-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .secondary-column { grid-template-columns: 1fr; }
  .signal-card { grid-row: auto; }
  .future-chart-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .future-chart-summary > div:nth-child(2) { border-right: 0; }
  .future-chart-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .stance-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 560px) {
  body { font-size: 14px; }
  main { padding-inline: 12px; }
  .topbar { gap: 10px; }
  .topbar .eyebrow { display: none; }
  .topbar h1 { font-size: 18px; }
  .add-button { min-width: 42px; width: 42px; padding: 0; font-size: 0; }
  .add-button b { margin: 0; font-size: 21px; }
  .panel, .paper-consensus-details { border-radius: 13px; }
  .hero-card, .forecast-panel, .accuracy-panel, .signal-card, .news-panel, .events-panel, .peers-panel, .automation-panel, .research-model-panel, .decision-panel { padding: 17px; }
  .hero-top, .hero-middle, .hero-bottom { grid-template-columns: 1fr; gap: 14px; }
  .hero-top { display: grid; }
  .updated, .price-block, .next-close div { text-align: left; }
  .outlook-summary { font-size: 35px; }
  .data-ribbon { overflow-x: auto; flex-wrap: nowrap; }
  .panel-heading { align-items: flex-start; }
  .panel-heading h2 { font-size: 18px; }
  .future-chart-heading { align-items: flex-start; flex-direction: column; }
  .horizon-controls { width: 100%; }
  .horizon-controls button { flex: 1; }
  .future-svg { height: 275px; }
  .future-chart-wrap { min-height: 275px; }
  .future-legend { margin-left: 0; }
  .forecast-days { margin-inline: -17px; padding-inline: 17px; }
  .signal-row { grid-template-columns: 108px 1fr 58px; }
  .signal-open { display: none; }
  .price-explanation-list { grid-template-columns: 1fr; }
  .price-reason { grid-template-columns: 34px 1fr; }
  .reason-sources a { grid-template-columns: 1fr; gap: 2px; }
  .stance-cards { grid-template-columns: 1fr; }
  .decision-heading { display: grid; }
  .paper-consensus-details > summary { padding: 16px; }
  .paper-stack-mark { display: none; }
  .paper-consensus-title h2 { font-size: 17px; }
  .chart-wrap { height: 250px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
}

/* 2.1 — watchlist carousel, event stories and prediction-market evidence */
.ticker-rail { position: relative; margin: 24px 0 20px; }
.ticker-rail .ticker-strip { margin: 0; padding: 3px 48px 6px; scroll-padding-inline: 48px; scroll-snap-type: x proximity; }
.ticker-rail .ticker-chip, .ticker-rail .ticker-add { scroll-snap-align: start; }
.ticker-scroll {
  position: absolute;
  top: 50%;
  z-index: 3;
  width: 38px;
  min-width: 38px;
  height: 38px;
  min-height: 38px !important;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  border: 1px solid #cbd5e1;
  border-radius: 50%;
  background: rgba(255,255,255,.96);
  color: #344054;
  box-shadow: 0 3px 12px rgba(16,24,40,.13);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}
.ticker-scroll-left { left: 5px; }
.ticker-scroll-right { right: 5px; }
.ticker-scroll:hover:not(:disabled) { border-color: #8ba8e9; color: var(--blue); }
.ticker-scroll:disabled { opacity: .32; cursor: default; box-shadow: none; }
.ticker-scroll[hidden] { display: none; }
.ticker-rail::before, .ticker-rail::after { content: ""; position: absolute; z-index: 2; top: 0; bottom: 4px; width: 58px; pointer-events: none; opacity: 0; transition: opacity .15s ease; }
.ticker-rail::before { left: 0; background: linear-gradient(90deg, var(--bg) 25%, transparent); }
.ticker-rail::after { right: 0; background: linear-gradient(270deg, var(--bg) 25%, transparent); }
.ticker-rail.can-scroll-left::before, .ticker-rail.can-scroll-right::after { opacity: 1; }

.prediction-summary { display: grid; grid-template-columns: 1.45fr repeat(3, minmax(130px, .8fr)); gap: 1px; overflow: hidden; margin-top: 18px; border: 1px solid var(--line); border-radius: 11px; background: var(--line); }
.prediction-summary > div { min-height: 92px; display: grid; align-content: center; gap: 4px; padding: 14px; background: #fff; }
.prediction-summary small { color: #6b778c; font-size: 10px; letter-spacing: .06em; }
.prediction-summary strong { font-size: 16px; line-height: 1.25; }
.prediction-summary span { color: var(--muted); font-size: 11px; }
.prediction-source-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 13px 0; }
.prediction-source-row span { display: flex; align-items: center; gap: 6px; padding: 5px 8px; border-radius: 999px; background: #f3f5f8; color: #596579; font-size: 10px; }
.prediction-source-row i { width: 7px; height: 7px; border-radius: 50%; background: #98a2b3; }
.prediction-source-row .connected i { background: #20a66a; }
.prediction-source-row .unavailable i { background: #d0555f; }
.prediction-market-list { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; }
.prediction-market-row { min-height: 82px; display: grid; grid-template-columns: minmax(0,1fr) 148px; align-items: center; gap: 20px; padding: 13px 15px; border-top: 1px solid var(--line-soft); color: inherit; text-decoration: none; }
.prediction-market-row:first-child { border-top: 0; }
.prediction-market-row:hover { background: #f8fafc; }
.prediction-market-title { min-width: 0; display: grid; gap: 4px; }
.prediction-market-title > span { width: max-content; padding: 3px 6px; border-radius: 6px; background: #eef3ff; color: var(--blue); font-size: 9px; font-weight: 750; }
.prediction-market-title b { font-size: 12px; line-height: 1.4; }
.prediction-market-title small { color: var(--muted); font-size: 10px; }
.prediction-probability { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 2px 8px; text-align: right; }
.prediction-probability > strong { font-size: 20px; }
.prediction-probability > span { font-size: 10px; }
.prediction-probability > i { grid-column: 1 / -1; position: relative; height: 7px; overflow: hidden; border-radius: 999px; background: #e8edf3; }
.prediction-probability > i b { position: absolute; inset: 0 auto 0 0; border-radius: inherit; background: var(--blue); }
.prediction-identity-note { display: grid; grid-template-columns: auto 1fr; gap: 10px; margin-top: 13px; padding: 12px 14px; border: 1px solid #ead7a8; border-radius: 10px; background: #fffaf0; }
.prediction-identity-note b { color: #7a4d00; font-size: 11px; }
.prediction-identity-note span { color: #685834; font-size: 11px; line-height: 1.5; }

.history-event-stories { display: grid; gap: 9px; margin-top: 12px; }
.history-story { display: grid; grid-template-columns: 138px minmax(0,1fr) 190px; gap: 16px; align-items: center; padding: 14px; border: 1px solid var(--line); border-left-width: 4px; border-radius: 11px; background: #fff; }
.history-story.positive { border-left-color: #20a66a; }
.history-story.negative { border-left-color: #d0555f; }
.history-story.neutral { border-left-color: #8090a5; }
.history-story-date { display: grid; grid-template-columns: 28px 1fr; gap: 2px 8px; align-items: center; }
.history-story-date > b { grid-row: 1 / 3; width: 28px; height: 28px; display: grid; place-items: center; border-radius: 50%; background: #eef3ff; color: var(--blue); font-size: 11px; }
.history-story-date time { font-size: 11px; font-weight: 700; }
.history-story-date span { color: var(--muted); font-size: 10px; }
.history-story-copy h3 { margin: 0; font-size: 13px; line-height: 1.4; }
.history-story-copy p { margin: 4px 0; color: #475467; font-size: 11px; line-height: 1.5; }
.history-story-copy small { color: var(--muted); font-size: 10px; }
.history-story-copy a { color: var(--blue); font-weight: 700; text-decoration: none; }
.history-story-reaction { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.history-story-reaction > div { display: grid; gap: 3px; padding: 9px; border-radius: 9px; background: #f7f9fc; }
.history-story-reaction small { color: #6b778c; font-size: 9px; }
.history-story-reaction strong { font-size: 14px; }
.event-key { background: #8090a5; }
.stock-workspace.focus-wide .content-grid { grid-template-columns: minmax(0, 1fr); }
.stock-workspace.focus-wide .secondary-column { display: none; }

@media (max-width: 820px) {
  .ticker-rail .ticker-strip { padding-inline: 43px; }
  .prediction-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .history-story { grid-template-columns: 120px minmax(0,1fr); }
  .history-story-reaction { grid-column: 1 / -1; }
}

@media (max-width: 560px) {
  .ticker-rail { margin-inline: -12px; }
  .ticker-scroll { width: 36px; min-width: 36px; height: 36px; }
  .prediction-summary { grid-template-columns: 1fr; }
  .prediction-market-row { grid-template-columns: 1fr; gap: 9px; }
  .prediction-probability { grid-template-columns: auto auto; justify-content: start; text-align: left; }
  .prediction-identity-note { grid-template-columns: 1fr; }
  .history-toolbar { align-items: stretch; }
  .history-view-controls { overflow-x: auto; }
  .history-view-controls button { flex: 0 0 auto; }
  .history-story { grid-template-columns: 1fr; gap: 10px; padding: 12px; }
  .history-story-reaction { grid-column: auto; }
}

/* 2.2 — simpler forecast, options lab and explanatory charts */
.stance-card.yes { border-color: #83c9a7; background: #e8f7ef; box-shadow: inset 0 3px 0 #20a66a; }
.stance-card.yes strong { color: #087044; }
.stance-card.no { border-color: #e8abb1; background: #fff0f1; box-shadow: inset 0 3px 0 #d0555f; }
.stance-card.no strong { color: #a51f2c; }
.action-icon.positive { color: #087044; background: #dff4e9; }
.action-primary:has(.action-icon.positive) h2 { color: #087044; }
.action-primary:has(.action-icon.negative) h2 { color: #a51f2c; }

.option-lab { margin-top: 20px; padding: 18px; border: 1px solid var(--line); border-radius: 13px; background: #f8fafc; }
.option-lab-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.option-lab-heading h3 { margin: 0; font-size: 17px; }
.option-lab-heading > span { padding: 6px 9px; border-radius: 999px; font-size: 10px; font-weight: 750; white-space: nowrap; }
.option-lab-heading > span.usable { background: #e8f7ef; color: #087044; }
.option-lab-heading > span.limited { background: #fff2e0; color: #875300; }
.option-market-facts { display: grid; grid-template-columns: .75fr .9fr .8fr 1.55fr; gap: 1px; margin: 14px 0; overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: var(--line); }
.option-market-facts > span { min-height: 66px; display: grid; align-content: center; gap: 4px; padding: 10px 12px; background: #fff; }
.option-market-facts small { color: #6b778c; font-size: 9px; letter-spacing: .05em; }
.option-market-facts b { font-size: 12px; line-height: 1.35; }
.option-strategy-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; }
.option-strategy { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.option-strategy summary { min-height: 70px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; cursor: pointer; list-style: none; }
.option-strategy summary::-webkit-details-marker { display: none; }
.option-strategy summary > span { display: grid; gap: 3px; }
.option-strategy summary small { color: var(--muted); font-size: 10px; }
.option-strategy summary b { font-size: 13px; }
.option-strategy summary > strong { max-width: 155px; padding: 5px 8px; border-radius: 7px; background: #f1f4f8; color: #475467; font-size: 10px; text-align: right; }
.option-strategy.positive summary b { color: #087044; }
.option-strategy.negative summary b { color: #a51f2c; }
.option-strategy.income summary b { color: #775400; }
.option-strategy.protect summary b { color: #2457c5; }
.option-strategy[open] summary { border-bottom: 1px solid var(--line-soft); }
.option-strategy > div { padding: 12px 14px; }
.option-strategy p { margin: 0; color: #344054; font-size: 12px; line-height: 1.5; }
.option-strategy ul { display: grid; gap: 5px; margin: 10px 0 0; padding-left: 18px; color: var(--muted); font-size: 11px; }
.option-disclaimer { margin: 12px 2px 0; color: var(--muted); font-size: 10px; }

.classic-models { margin-top: 12px; border: 1px solid var(--line); border-radius: 11px; background: #fbfcfe; }
.classic-models > summary { min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 12px 14px; cursor: pointer; list-style: none; }
.classic-models > summary::-webkit-details-marker { display: none; }
.classic-models > summary span { display: grid; gap: 3px; }
.classic-models > summary b { font-size: 13px; }
.classic-models > summary small { color: var(--muted); font-size: 11px; }
.classic-models > summary em { color: var(--blue); font-size: 11px; font-style: normal; }
.classic-model-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; padding: 1px; border-top: 1px solid var(--line); background: var(--line-soft); }
.classic-model-grid article { min-height: 78px; display: grid; grid-template-columns: 9px minmax(0,1fr) auto; align-items: center; gap: 10px; padding: 12px; background: #fff; }
.classic-model-grid article > i { width: 9px; height: 9px; border-radius: 50%; }
.classic-model-grid article > span, .classic-model-grid article > div { display: grid; gap: 3px; }
.classic-model-grid article b { font-size: 12px; }
.classic-model-grid article small { color: var(--muted); font-size: 10px; line-height: 1.4; }
.classic-model-grid article > div { text-align: right; }
.classic-model-grid article > div strong { font-size: 13px; }
.foundational-methods { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; padding: 12px 14px; border-top: 1px solid var(--line); background: #fff; }
.foundational-methods span { margin-right: 3px; color: var(--muted); font-size: 11px; }
.foundational-methods a { padding: 5px 8px; border-radius: 999px; background: #eef3ff; color: var(--blue); font-size: 10px; font-weight: 700; text-decoration: none; }

.prediction-visuals { display: grid; grid-template-columns: 1.05fr .95fr; gap: 12px; margin: 13px 0; }
.prediction-visuals > section { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.prediction-visual-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.prediction-visual-heading > span { display: grid; gap: 2px; }
.prediction-visual-heading b { font-size: 12px; }
.prediction-visual-heading small, .prediction-visual-heading em { color: var(--muted); font-size: 10px; font-style: normal; }
.prediction-timeline { width: 100%; height: 160px; margin-top: 8px; }
.prediction-timeline .prediction-zero { stroke: #cdd6e2; stroke-dasharray: 4 4; vector-effect: non-scaling-stroke; }
.prediction-timeline polyline { fill: none; stroke: var(--blue); stroke-width: 2.5; vector-effect: non-scaling-stroke; }
.prediction-timeline circle { fill: #fff; stroke: var(--blue); stroke-width: 2; vector-effect: non-scaling-stroke; }
.prediction-timeline text { fill: #7c8798; font-size: 10px; }
.prediction-change-list { display: grid; gap: 9px; margin-top: 12px; }
.prediction-change-list > div { display: grid; grid-template-columns: minmax(110px,1fr) 130px 42px; align-items: center; gap: 9px; }
.prediction-change-list > div > span { overflow: hidden; color: #344054; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.prediction-change-list > div > i { position: relative; height: 7px; border-radius: 999px; background: linear-gradient(90deg,#f8e1e3 0 49.5%,#b8c2d0 49.5% 50.5%,#dff4e9 50.5%); }
.prediction-change-list > div > i b { position: absolute; inset-block: 0; border-radius: inherit; }
.prediction-change-list > div > i b.positive { background: #20a66a; }
.prediction-change-list > div > i b.negative { background: #d0555f; }
.prediction-change-list > div > strong { font-size: 10px; text-align: right; }
.prediction-collecting { min-height: 120px; display: grid; place-items: center; color: var(--muted); font-size: 11px; text-align: center; }
.prediction-contract-details { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; }
.prediction-contract-details > summary { min-height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 15px; cursor: pointer; list-style: none; background: #fbfcfe; }
.prediction-contract-details > summary::-webkit-details-marker { display: none; }
.prediction-contract-details > summary span { display: grid; gap: 3px; }
.prediction-contract-details > summary b { font-size: 13px; }
.prediction-contract-details > summary small { color: var(--muted); font-size: 10px; }
.prediction-contract-details > summary em { color: var(--blue); font-size: 11px; font-style: normal; font-weight: 750; }
.prediction-contract-details[open] > summary { border-bottom: 1px solid var(--line); }
.prediction-contract-details .prediction-market-list { border: 0; border-radius: 0; }
.research-panel[open] .prediction-contract-details:not([open]) > summary em { font-size: 11px; }
.research-panel[open] .prediction-contract-details:not([open]) > summary em::after { content: none; }
.research-panel[open] .prediction-contract-details[open] > summary em::after { content: "Hide contracts"; font-size: 11px; }

.history-story-copy p { font-size: 12px; }
.history-story-copy small, .history-story-date span, .history-story-reaction small { font-size: 10px; }
.model-mode-badge { font-size: 10px !important; }
.cross-note, .option-disclaimer, .price-explanation > p { font-size: 11px !important; line-height: 1.5; }
.future-chart-summary em, .forecast-confidence { font-size: 11px; }
.decision-heading > span { font-size: 11px; }
.research-model-toolbar > span { font-size: 11px; }
.research-model-toggles b { font-size: 9px; }
.review-legend b { font-size: 11px; }
.history-alignment-note b, .history-alignment-note span { font-size: 11px; }

@media (max-width: 820px) {
  .option-market-facts { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .prediction-visuals { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .option-lab { padding: 14px; }
  .option-lab-heading { display: grid; }
  .option-market-facts, .option-strategy-grid, .classic-model-grid { grid-template-columns: 1fr; }
  .prediction-change-list > div { grid-template-columns: minmax(90px,1fr) 96px 38px; }
}

/* 2.3 - contract-level options workbench */
.option-workbench { padding: 22px; background: linear-gradient(180deg,#fbfcff,#f6f8fb); }
.option-lab-heading > div > p:not(.eyebrow) { max-width: 690px; margin: 7px 0 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
.option-top-pick { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(350px,.75fr); gap: 18px; margin-top: 18px; padding: 20px; border: 1px solid #b9cbee; border-radius: 14px; background: linear-gradient(135deg,#fff 0%,#f0f5ff 100%); box-shadow: 0 8px 24px rgba(43,82,145,.07); }
.option-pick-copy h4 { margin: 7px 0; color: #10234a; font-size: 22px; letter-spacing: -.02em; }
.option-pick-copy > p { margin: 0; color: #475467; font-size: 12px; line-height: 1.5; }
.option-pick-copy ul { display: grid; gap: 6px; margin: 13px 0 0; padding-left: 18px; color: #344054; font-size: 11px; line-height: 1.45; }
.option-verdict { display: inline-flex; padding: 5px 8px; border-radius: 6px; background: #dfeaff; color: #2457c5; font-size: 9px; font-weight: 800; letter-spacing: .08em; }
.option-pick-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: var(--line); gap: 1px; }
.option-pick-metrics > div { min-height: 88px; display: grid; align-content: center; gap: 3px; padding: 12px; background: rgba(255,255,255,.92); }
.option-pick-metrics small { color: #667085; font-size: 8px; font-weight: 750; letter-spacing: .06em; }
.option-pick-metrics strong { font-size: 17px; }
.option-pick-metrics span { color: var(--muted); font-size: 9px; }
.option-scenario-strip { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; margin-top: 12px; }
.option-scenario-strip article { display: grid; gap: 5px; padding: 14px; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.option-scenario-strip article.down { border-top: 3px solid #d0555f; }
.option-scenario-strip article.base { border-top: 3px solid #2f6fed; }
.option-scenario-strip article.up { border-top: 3px solid #20a66a; }
.option-scenario-strip small { color: #667085; font-size: 9px; font-weight: 700; }
.option-scenario-strip strong { font-size: 15px; }
.option-scenario-strip strong em { font-size: 10px; font-style: normal; }
.option-scenario-strip span { color: var(--muted); font-size: 10px; }
.option-method-note { display: grid; grid-template-columns: 165px 1fr; gap: 15px; margin: 11px 0 16px; padding: 12px 14px; border-left: 3px solid #2f6fed; border-radius: 0 8px 8px 0; background: #edf3ff; }
.option-method-note b { color: #173e91; font-size: 11px; }
.option-method-note span { color: #344054; font-size: 11px; line-height: 1.5; }
.option-strategy-tabs { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin: 4px 0 14px; }
.option-strategy-tabs button { display: grid; gap: 3px; min-height: 74px; padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.option-strategy-tabs button:hover { border-color: #9bb5e8; }
.option-strategy-tabs button.active { border-color: #2f6fed; background: #edf3ff; box-shadow: inset 0 0 0 1px #2f6fed; }
.option-strategy-tabs span { font-size: 11px; font-weight: 750; }
.option-strategy-tabs b { font-size: 13px; }
.option-strategy-tabs small { color: var(--muted); font-size: 9px; line-height: 1.35; }
.option-simulator-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(280px,.45fr); gap: 12px; }
.option-simulator-panel,.option-save-panel,.simulation-journal { padding: 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; }
.option-subheading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.option-subheading h4,.option-save-panel h4 { margin: 0; font-size: 15px; }
.option-subheading > span { color: var(--muted); font-size: 10px; }
.option-contract-picker,.option-save-panel label { display: grid; gap: 6px; margin-top: 13px; }
.option-contract-picker > span,.option-save-panel label > span { color: #475467; font-size: 10px; font-weight: 700; }
.option-contract-picker select,.option-save-panel input,.option-save-panel textarea { width: 100%; border: 1px solid #ccd5e3; border-radius: 8px; background: #fff; color: var(--ink); font: inherit; font-size: 11px; }
.option-contract-picker select,.option-save-panel input { height: 38px; padding: 0 10px; }
.option-save-panel textarea { min-height: 105px; padding: 10px; resize: vertical; line-height: 1.45; }
.option-payoff-chart { width: 100%; height: 230px; margin-top: 12px; overflow: visible; }
.option-payoff-chart .payoff-profit { fill: #edf9f3; }
.option-payoff-chart .payoff-loss { fill: #fff1f2; }
.option-payoff-chart .payoff-zero { stroke: #9aa8bb; stroke-dasharray: 4 4; vector-effect: non-scaling-stroke; }
.option-payoff-chart > polyline { fill: none; stroke: #2f6fed; stroke-width: 3; vector-effect: non-scaling-stroke; }
.option-payoff-chart .payoff-scenario { stroke: #8c9cb4; stroke-dasharray: 3 4; vector-effect: non-scaling-stroke; }
.option-payoff-chart circle { fill: #fff; stroke: #2f6fed; stroke-width: 2; vector-effect: non-scaling-stroke; }
.option-payoff-chart text { fill: #738096; font-size: 9px; }
.payoff-legend { display: flex; flex-wrap: wrap; gap: 12px; color: var(--muted); font-size: 9px; }
.payoff-legend span { display: inline-flex; align-items: center; gap: 5px; }
.payoff-legend i { width: 9px; height: 9px; border-radius: 2px; }
.payoff-legend i.profit { background: #d9f2e6; }.payoff-legend i.loss { background: #f8dfe2; }.payoff-legend i.scenario { width: 12px; height: 2px; border-radius: 0; background: #8c9cb4; }
.option-contract-table { margin-top: 13px; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; }
.option-contract-table summary { display: flex; justify-content: space-between; gap: 12px; padding: 11px 12px; background: #f8fafc; cursor: pointer; list-style: none; }
.option-contract-table summary::-webkit-details-marker { display:none; }.option-contract-table summary b { font-size: 10px; }.option-contract-table summary span { color: var(--muted); font-size: 9px; }
.option-contract-scroll { overflow-x: auto; }.option-contract-table table { width: 100%; border-collapse: collapse; white-space: nowrap; }
.option-contract-table th,.option-contract-table td { padding: 9px 10px; border-top: 1px solid var(--line-soft); font-size: 9px; text-align: right; }
.option-contract-table th:first-child,.option-contract-table td:first-child { text-align: left; }.option-contract-table th { color: var(--muted); font-weight: 700; }
.option-contract-table tr.selected { background: #edf3ff; }.option-contract-table td small { display:block; color:var(--muted); }
.option-contract-table button { padding: 4px 7px; border: 1px solid #9bb5e8; border-radius: 6px; background: #fff; color: #2457c5; font-size: 9px; font-weight: 700; cursor:pointer; }
.option-save-panel { align-self: start; background: #f9fbff; }
.option-save-panel > p:not(.eyebrow) { margin: 8px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.option-save-panel .save-button { width: 100%; margin-top: 14px; }
.option-save-panel > small { display: block; margin-top: 9px; color: var(--muted); font-size: 9px; line-height: 1.45; }
.simulation-journal { margin-top: 12px; }
.simulation-list { display: grid; gap: 8px; margin-top: 13px; }
.simulation-card { overflow: hidden; border: 1px solid var(--line); border-radius: 10px; }
.simulation-card summary { display: grid; grid-template-columns: 1fr 280px; align-items: center; gap: 16px; min-height: 82px; padding: 12px 14px; cursor: pointer; list-style: none; }
.simulation-card summary::-webkit-details-marker { display:none; }.simulation-card summary > div { display:grid; gap:4px; }.simulation-card summary > div:last-child { grid-template-columns: 180px 1fr; text-align:right; }.simulation-card summary > div:last-child small { grid-column:2; }
.simulation-card summary b { font-size: 11px; }.simulation-card summary small { color:var(--muted); font-size:9px; }.simulation-card summary strong { font-size:13px; }
.simulation-status { width: max-content; padding:3px 6px; border-radius:999px; background:#e8f7ef; color:#087044; font-size:8px; font-weight:800; text-transform:uppercase; }.simulation-status.closed,.simulation-status.settled { background:#eef1f5;color:#526078; }
.simulation-spark { width:180px;height:44px; }.simulation-spark line { stroke:#ccd5e3;stroke-dasharray:3 3; }.simulation-spark polyline { fill:none;stroke:#2f6fed;stroke-width:2;vector-effect:non-scaling-stroke; }
.simulation-no-marks { color:var(--muted);font-size:9px; }.simulation-detail { display:grid;grid-template-columns:1fr 1.2fr auto;gap:15px;padding:14px;border-top:1px solid var(--line);background:#fbfcfe; }.simulation-detail section small { color:var(--muted);font-size:8px; }.simulation-detail section p { margin:5px 0 0;color:#344054;font-size:10px;line-height:1.5; }.simulation-detail dl { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:0; }.simulation-detail dl div { display:grid;gap:3px; }.simulation-detail dt { color:var(--muted);font-size:8px; }.simulation-detail dd { margin:0;font-size:10px;font-weight:700; }.simulation-detail button { align-self:center;white-space:nowrap; }
.simulation-empty { display:grid;gap:5px;margin-top:12px;padding:18px;border:1px dashed #bdc8d8;border-radius:9px;text-align:center; }.simulation-empty b { font-size:11px; }.simulation-empty span { color:var(--muted);font-size:10px;line-height:1.45; }
.option-methodology { margin-top:10px;padding:0 4px; }.option-methodology summary { color:#475467;font-size:10px;font-weight:700;cursor:pointer; }.option-methodology p { max-width:900px;color:var(--muted);font-size:10px;line-height:1.5; }
.option-unavailable > p { color:var(--muted);font-size:11px; }

@media (max-width: 980px) {
  .option-top-pick,.option-simulator-grid { grid-template-columns: 1fr; }
  .option-strategy-tabs { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .simulation-detail { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .option-workbench { padding: 14px; }
  .option-pick-metrics,.option-scenario-strip,.option-strategy-tabs { grid-template-columns: 1fr; }
  .option-method-note { grid-template-columns: 1fr; }
  .simulation-card summary { grid-template-columns: 1fr; }
  .simulation-card summary > div:last-child { grid-template-columns: 1fr auto; text-align:left; }
  .simulation-card summary > div:last-child small { grid-column:2; }
  .simulation-spark { width:100%; }
  .simulation-detail dl { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

/* 2.4 - compact research workspace and unified forecast */
html { scroll-padding-top: 108px; }
.stock-workspace .panel,.stock-workspace .research-stack { scroll-margin-top: 92px; }
.action-banner { display: block; padding: 0; overflow: hidden; background: #fff; }
.consensus-overview { display: grid; gap: 14px; padding: 18px; }
.consensus-lead { display: grid; grid-template-columns: minmax(280px,1fr) auto auto; align-items: center; gap: 24px; }
.consensus-lead h2 { margin: 3px 0 5px; font-size: 23px; letter-spacing: -.025em; }
.consensus-lead p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 12px; }
.consensus-price,.consensus-target { display: grid; gap: 3px; min-width: 135px; padding-left: 18px; border-left: 1px solid var(--line-soft); }
.consensus-price small,.consensus-target small { color: var(--muted); font-size: 8px; font-weight: 800; letter-spacing: .08em; }
.consensus-price strong,.consensus-target strong { font-size: 19px; }
.consensus-price span,.consensus-target span { font-size: 10px; font-weight: 700; }
.opinion-grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 7px; }
.opinion-card { display: grid; gap: 8px; min-width: 0; padding: 11px; border: 1px solid var(--line-soft); border-radius: 9px; background: #fbfcfe; color: var(--text); text-align: left; cursor: pointer; }
.opinion-card:hover { border-color: #9bb5e8; background: #f7faff; }
.opinion-card > span { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.opinion-card small { overflow: hidden; color: var(--muted); font-size: 8px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.opinion-card > span b { font-size: 9px; white-space: nowrap; }
.opinion-card.up > span b { color: #087044; }.opinion-card.down > span b { color: #b42318; }.opinion-card.neutral > span b { color: #596579; }
.opinion-card em { overflow: hidden; color: #475467; font-size: 9px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.opinion-card > i { height: 3px; overflow: hidden; border-radius: 3px; background: #e8edf4; }
.opinion-card > i b { display: block; height: 100%; background: #8a96a8; }.opinion-card.up > i b { background: #20a66a; }.opinion-card.down > i b { background: #d0555f; }
.consensus-caveats { border-top: 1px solid var(--line-soft); }
.consensus-caveats > summary { width: max-content; padding-top: 11px; color: #475467; font-size: 10px; font-weight: 700; cursor: pointer; }
.consensus-caveats > div { display: flex; flex-wrap: wrap; gap: 6px; padding-top: 9px; color: var(--muted); font-size: 10px; }.consensus-caveats p { flex-basis: 100%; margin: 0; }.consensus-caveats span { padding: 5px 7px; border-radius: 6px; background: #f3f5f8; }

.forecast-panel { padding-bottom: 18px; }
.future-chart-wrap { min-height: 310px; }
.future-factor-line { stroke-width: 4; }
.research-unified-line { fill: none; stroke-width: 1.8; stroke-dasharray: 5 4; opacity: .72; vector-effect: non-scaling-stroke; }
.research-unified-line.champion { stroke-width: 2.4; stroke-dasharray: none; opacity: .85; }
.future-detail-dot { fill: #fff; stroke: #2f6fed; stroke-width: 1.4; vector-effect: non-scaling-stroke; pointer-events: none; }
.research-swatch { background: linear-gradient(90deg,#0b6b4f 0 48%,#7c3aed 48% 100%) !important; }
.future-legend { max-height: 58px; overflow: auto; scrollbar-width: thin; }
.forecast-detail-drawer,.research-method-drawer,.option-workbench-shell { overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: #fff; }
.forecast-detail-drawer > summary,.research-method-drawer > summary,.option-workbench-shell > summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 15px; background: #f8fafc; cursor: pointer; list-style: none; }
.forecast-detail-drawer > summary::-webkit-details-marker,.research-method-drawer > summary::-webkit-details-marker,.option-workbench-shell > summary::-webkit-details-marker { display:none; }
.forecast-detail-drawer > summary span,.research-method-drawer > summary span,.option-workbench-shell > summary span { display:grid; gap:3px; }
.forecast-detail-drawer > summary b,.research-method-drawer > summary b,.option-workbench-shell > summary b { font-size: 11px; }
.forecast-detail-drawer > summary small,.research-method-drawer > summary small,.option-workbench-shell > summary small { color: var(--muted); font-size: 9px; }
.forecast-detail-drawer > summary em,.research-method-drawer > summary em,.option-workbench-shell > summary em { color:#2f6fed; font-size:9px; font-style:normal; font-weight:800; white-space:nowrap; }
.forecast-detail-drawer[open] > summary em::before,.research-method-drawer[open] > summary em::before,.option-workbench-shell[open] > summary em::before { content:"Hide "; }
.forecast-detail-drawer .forecast-days { margin-top: 0; border-top: 1px solid var(--line); }

.research-compact-summary { display:grid; grid-template-columns:minmax(250px,1fr) auto; align-items:center; gap:24px; padding:15px 0; }
.research-compact-summary h3 { margin:3px 0 5px; font-size:17px; }.research-compact-summary p:not(.eyebrow) { margin:0; color:var(--muted); font-size:10px; }
.research-compact-metrics { display:grid; grid-template-columns:repeat(4,minmax(100px,1fr)); overflow:hidden; border:1px solid var(--line); border-radius:9px; }
.research-compact-metrics span { display:grid; gap:4px; padding:10px 12px; border-right:1px solid var(--line-soft); }.research-compact-metrics span:last-child { border-right:0; }
.research-compact-metrics small { color:var(--muted); font-size:7px; font-weight:800; letter-spacing:.07em; }.research-compact-metrics b { max-width:135px; overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.research-shared-note { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 11px; padding:10px 12px; border-radius:8px; background:#edf7f3; color:#315a4e; font-size:10px; }
.research-shared-note span { display:flex; align-items:center; gap:6px; }.research-shared-note i { width:18px; height:3px; border-radius:3px; background:#0b6b4f; }
.research-shared-note button { border:0; background:transparent; color:#087044; font-size:9px; font-weight:800; cursor:pointer; }
.research-model-toolbar.compact { margin:0; padding:10px 0; border-top:1px solid var(--line-soft); }
.research-model-toggles.compact { max-height:80px; overflow:auto; margin-bottom:12px; padding:1px 1px 6px; scrollbar-width:thin; }
.research-method-drawer { margin-bottom:9px; }.research-method-drawer .research-results-scroll { border:0; border-top:1px solid var(--line); border-radius:0; }
.classic-models,.recent-paper-screen { margin-top:8px; }

.option-workbench-shell { margin: 15px 0; }
.option-workbench-shell-body { border-top:1px solid var(--line); }.option-workbench-shell .option-lab { border:0; border-radius:0; box-shadow:none; }
.side-drawer { overflow:hidden; padding:0 !important; }
.side-drawer > summary { display:flex; align-items:center; justify-content:space-between; min-height:62px; gap:12px; padding:13px 15px; cursor:pointer; list-style:none; }
.side-drawer > summary::-webkit-details-marker { display:none; }.side-drawer > summary > span { display:grid; gap:3px; }
.side-drawer > summary small { color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.08em; }.side-drawer > summary b { font-size:12px; }
.side-drawer > summary > em { max-width:130px; overflow:hidden; color:var(--muted); font-size:9px; font-style:normal; text-overflow:ellipsis; white-space:nowrap; }
.side-drawer[open] > summary { border-bottom:1px solid var(--line-soft); background:#f8fafc; }.side-drawer-body { padding:14px 15px 16px; }
.compact-secondary { gap:10px; }

.paper-integrity { display:flex; flex-wrap:wrap; gap:6px; margin:11px 0; }.paper-integrity span { padding:5px 7px; border-radius:6px; background:#f2f4f7; color:#596579; font-size:9px; }.paper-integrity .passed { background:#e8f7ef; color:#087044; }.paper-integrity .failed { background:#fff0f1; color:#b42318; }
.paper-family-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin-bottom:12px; }
.paper-family-summary > span { display:grid; gap:3px; padding:8px; border-left:3px solid #98a2b3; border-radius:6px; background:#f8fafc; }.paper-family-summary > span.up { border-color:#20a66a; }.paper-family-summary > span.down { border-color:#d0555f; }
.paper-family-summary b { font-size:9px; }.paper-family-summary small { color:var(--muted); font-size:8px; }

@media (max-width: 1180px) {
  .opinion-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .research-compact-summary { grid-template-columns:1fr; }.research-compact-metrics { width:100%; }
}
@media (max-width: 820px) {
  .consensus-lead { grid-template-columns:1fr 1fr; }.consensus-lead > div:first-child { grid-column:1/-1; }.consensus-price { border-left:0; padding-left:0; }.consensus-target { padding-left:14px; }
  .opinion-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .paper-family-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .research-compact-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }.research-compact-metrics span:nth-child(2) { border-right:0; }.research-compact-metrics span:nth-child(-n+2) { border-bottom:1px solid var(--line-soft); }
}
@media (max-width: 560px) {
  .consensus-overview { padding:14px; }.consensus-lead { gap:14px; }.consensus-lead h2 { font-size:19px; }
  .opinion-grid { grid-template-columns:1fr; }.opinion-card { grid-template-columns:1fr auto; align-items:center; }.opinion-card > i { grid-column:1/-1; }
  .future-chart-wrap { min-height:250px; }.chart-layer-controls { align-items:stretch; }.chart-layer-controls button { flex:1 1 45%; justify-content:center; }
  .paper-family-summary { grid-template-columns:1fr; }
}

/* 2.5 - Galaxy-class mobile workspace */
.mobile-bottom-nav { display: none; }

@media (max-width: 560px) {
  html { scroll-padding-top: 78px; }
  body { padding-bottom: calc(72px + env(safe-area-inset-bottom)); background: #f4f6f8; }
  main { padding: 0 10px 36px; }
  .topbar { min-height: 68px; margin: 0 -2px; padding: 8px 2px; }
  .mobile-menu,.add-button { width: 38px; min-width: 38px; height: 38px; min-height: 38px; border-radius: 10px; }
  .topbar h1 { max-width: 230px; overflow: hidden; font-size: 17px; text-overflow: ellipsis; white-space: nowrap; }
  .stock-workspace .panel,.stock-workspace .research-stack { scroll-margin-top: 76px; }

  .ticker-rail { margin: 10px 0 12px; }
  .ticker-rail .ticker-strip { gap: 7px; padding: 2px 34px 5px; }
  .ticker-rail .ticker-chip { flex-basis: 145px; height: 56px; padding: 8px 9px; }
  .ticker-rail .ticker-add { flex-basis: 48px; height: 56px; }
  .ticker-scroll { width: 30px; min-width: 30px; height: 36px; }

  .consensus-overview { gap: 12px; padding: 14px 13px; }
  .consensus-lead { grid-template-columns: 1fr 1fr; gap: 12px; }
  .consensus-lead > div:first-child { grid-column: 1 / -1; }
  .consensus-lead h2 { font-size: 20px; }
  .consensus-lead p:not(.eyebrow) { font-size: 11px; line-height: 1.45; }
  .consensus-price,.consensus-target { min-width: 0; padding: 10px; border: 1px solid var(--line-soft); border-radius: 9px; background: #f8fafc; }
  .consensus-price strong,.consensus-target strong { font-size: 17px; }
  .opinion-grid { display: flex; gap: 8px; margin-inline: -13px; padding: 0 13px 5px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .opinion-grid::-webkit-scrollbar { display: none; }
  .opinion-card { min-width: 205px; min-height: 78px; display: grid; grid-template-columns: 1fr; align-items: initial; scroll-snap-align: start; }
  .opinion-card > i { grid-column: auto; }

  .paper-consensus-details > summary { min-height: 82px; grid-template-columns: 1fr auto; gap: 8px; padding: 13px; }
  .paper-consensus-title small { max-width: 220px; line-height: 1.4; }
  .paper-expand { font-size: 9px; }
  .paper-consensus-body { padding: 13px; }
  .paper-agent-toolbar { align-items: stretch; flex-direction: column; }
  .paper-agent-toolbar > div { overflow-x: auto; flex-wrap: nowrap; }
  .paper-agent-row { grid-template-columns: 28px minmax(0,1fr) auto; }
  .paper-agent-family,.paper-agent-reason,.paper-agent-open { display: none; }

  .decision-panel { padding: 14px; }
  .decision-heading h2 { font-size: 18px; }
  .decision-heading > div > p:last-child { font-size: 10px; line-height: 1.45; }
  .stance-cards { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(190px, 72vw); grid-template-columns: none; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
  .stance-cards::-webkit-scrollbar { display: none; }
  .stance-card { scroll-snap-align: start; }

  .content-grid,.primary-column,.secondary-column { gap: 12px; }
  .price-explanation,.forecast-panel,.accuracy-panel,.research-model-panel { padding: 14px; }
  .price-explanation-heading { gap: 8px; }
  .price-explanation-heading h2,.panel-heading h2 { font-size: 17px; line-height: 1.25; }
  .price-explanation-heading > span,.chart-hint { display: none; }

  .future-chart-heading { gap: 10px; margin-top: 14px; padding-top: 13px; }
  .future-chart-heading h3 { font-size: 13px; line-height: 1.4; }
  .horizon-controls,.research-horizons { min-height: 43px; padding: 3px; }
  .horizon-controls button,.research-horizons button { min-height: 36px; }
  .chart-layer-controls { flex-wrap: nowrap; margin: 9px -2px 0; padding-bottom: 3px; overflow-x: auto; scrollbar-width: none; }
  .chart-layer-controls::-webkit-scrollbar { display: none; }
  .chart-layer-controls > span { display: none; }
  .chart-layer-controls button { flex: 0 0 auto; min-height: 38px; padding-inline: 10px; white-space: nowrap; }
  .future-chart-wrap { min-height: 238px; margin-inline: -7px; }
  .future-svg { height: 238px; }
  .future-legend { gap: 7px 10px; max-height: 48px; font-size: 8px; }
  .model-mode-badge { margin: 6px 0 10px; white-space: normal; }
  .future-chart-summary { margin-bottom: 9px; }
  .future-chart-summary > div { min-height: 58px; padding: 9px 10px; }
  .future-chart-summary strong { font-size: 12px; }
  .forecast-detail-drawer > summary,.research-method-drawer > summary,.option-workbench-shell > summary { padding: 12px; }
  .forecast-detail-drawer > summary small,.research-method-drawer > summary small,.option-workbench-shell > summary small { line-height: 1.35; }

  .research-compact-summary { gap: 12px; padding: 10px 0; }
  .research-compact-summary h3 { font-size: 16px; }
  .research-compact-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .research-compact-metrics span { min-width: 0; padding: 9px; }
  .research-shared-note { align-items: flex-start; flex-direction: column; line-height: 1.4; }
  .research-shared-note span { align-items: flex-start; }
  .research-model-toolbar.compact { align-items: stretch; flex-direction: column; }
  .research-horizons { width: 100%; display: flex; }
  .research-horizons button { flex: 1; }
  .research-model-toggles.compact { display: flex; max-height: none; padding-bottom: 7px; overflow-x: auto; overflow-y: hidden; }
  .research-model-toggles.compact button { flex: 0 0 auto; min-height: 38px; }
  .classic-model-grid { grid-template-columns: 1fr; }

  .history-toolbar { width: 100%; align-items: stretch; flex-direction: column; }
  .history-view-controls,.history-range-controls { width: 100%; display: flex; overflow-x: auto; }
  .history-view-controls button,.history-range-controls button { flex: 1 0 auto; min-height: 38px; }
  .chart-wrap { margin-inline: -8px; }

  .side-drawer > summary { min-height: 58px; padding: 12px 13px; }
  .side-drawer-body { padding: 12px 13px 14px; }
  .option-top-pick,.option-simulator-grid { grid-template-columns: 1fr; }
  .option-workbench { padding: 12px; }
  .option-pick-copy h4 { font-size: 18px; }
  .option-pick-metrics,.option-scenario-strip,.option-strategy-tabs { grid-template-columns: 1fr 1fr; }
  .simulation-detail dl { grid-template-columns: 1fr 1fr; }

  dialog { width: 100%; max-width: none; height: auto; max-height: calc(100dvh - 18px); margin: auto 0 0; border-radius: 18px 18px 0 0; }
  .dialog-card { padding: 22px 16px calc(22px + env(safe-area-inset-bottom)); }

  .mobile-bottom-nav { position: fixed; inset: auto 0 0; z-index: 18; display: grid; grid-template-columns: repeat(5,1fr); gap: 2px; min-height: calc(66px + env(safe-area-inset-bottom)); margin: 0; padding: 6px 6px calc(6px + env(safe-area-inset-bottom)); border-top: 1px solid #d9e0e9; background: rgba(255,255,255,.96); box-shadow: 0 -8px 24px rgba(16,24,40,.08); backdrop-filter: blur(16px); }
  .mobile-bottom-nav .nav-item { position: relative; width: auto; height: 52px; display: grid; place-items: center; align-content: center; gap: 2px; padding: 0; border-radius: 10px; color: #667085; text-align: center; }
  .mobile-bottom-nav .nav-item::before { display: none; }
  .mobile-bottom-nav .nav-item span { font-size: 19px; line-height: 1; }
  .mobile-bottom-nav .nav-item small { font-size: 9px; font-weight: 700; }
  .mobile-bottom-nav .nav-item.active { background: #eef3ff; color: #2457c5; }

  .home-welcome,.recommendation-heading { display: grid; align-items: start; gap: 12px; }
  .home-welcome h2,.recommendation-heading h2 { font-size: 21px; line-height: 1.25; }
  .home-welcome .add-button { width: 100%; min-height: 42px; font-size: 12px; }
  .home-tracked-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .home-stock-card { padding: 12px; }
  .home-stock-top { grid-template-columns: 36px minmax(0,1fr) auto; }
  .home-stock-card .sparkline { height: 38px; }
  .home-open-stock { width: 100%; min-height: 38px; }
  .recommendation-groups { grid-template-columns: 1fr; gap: 10px; }
  .recommendation-group { padding: 13px; }
  .recommendation-row { grid-template-columns: 31px minmax(0,1fr) auto; }
  .recommendation-row .recommendation-move { display: none; }
}

/* 2.6 - public tester access and invite management */
body.access-checking .app-shell,body.access-checking .mobile-bottom-nav,body.access-locked .app-shell,body.access-locked .mobile-bottom-nav { display:none !important; }
.access-gate[hidden] { display:none; }
.access-gate { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px; overflow:auto; background:radial-gradient(circle at 50% 10%,#e9f1ff 0,transparent 34%),#f4f6f8; }
.access-gate-card { width:min(100%,450px); display:grid; justify-items:stretch; padding:34px; border:1px solid #d8e0eb; border-radius:20px; background:rgba(255,255,255,.96); box-shadow:0 24px 70px rgba(21,40,75,.14); }
.access-gate-mark { width:58px; height:58px; display:flex; align-items:flex-end; justify-content:center; gap:5px; margin-bottom:22px; padding:10px; border-radius:16px; background:#eef3ff; }
.access-gate-mark i { width:8px; border-radius:8px; background:#2f6fed; }.access-gate-mark i:nth-child(1){height:18px;opacity:.5}.access-gate-mark i:nth-child(2){height:29px;opacity:.75}.access-gate-mark i:nth-child(3){height:38px}
.access-gate-card h1 { margin:0; font-size:28px; font-weight:700; }.access-gate-card > p:not(.eyebrow) { margin:10px 0 22px; color:var(--muted); font-size:13px; line-height:1.55; }
.access-gate-card form { display:grid; gap:10px; }.access-gate-card label { display:grid; gap:7px; }.access-gate-card label span { color:#475467; font-size:10px; font-weight:750; }
.access-gate-card input { width:100%; height:48px; padding:0 13px; border:1px solid #c9d3e1; border-radius:10px; background:#fff; color:var(--text); font-size:13px; }
.access-gate-card .save-button { width:100%; min-height:46px; }.access-error { min-height:20px; margin-top:9px; color:#b42318; font-size:11px; }
.access-gate-card > small { margin-top:14px; color:#7a8698; font-size:9px; line-height:1.5; }

.access-manager { display:grid; gap:13px; margin-top:18px; padding-top:18px; border-top:1px solid var(--line); }
.access-manager-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; }.access-manager-heading h3 { margin:0; font-size:16px; }.access-manager-heading p:not(.eyebrow) { margin:5px 0 0; color:var(--muted); font-size:10px; }
.access-manager-heading > span { padding:6px 8px; border-radius:7px; background:#edf3ff; color:#2457c5; font-size:9px; font-weight:750; }
.create-invite-form { display:grid; grid-template-columns:minmax(150px,1fr) 145px 100px auto; align-items:end; gap:8px; padding:12px; border:1px solid var(--line); border-radius:10px; background:#f8fafc; }
.create-invite-form label { display:grid; gap:5px; }.create-invite-form label span { color:#667085; font-size:9px; font-weight:750; }
.create-invite-form input,.create-invite-form select { width:100%; height:38px; padding:0 9px; border:1px solid #cbd5e1; border-radius:8px; background:#fff; color:var(--text); font:inherit; font-size:10px; }
.create-invite-form .save-button { min-height:38px; height:38px; }
.invite-created { padding:12px; border:1px solid #a9dac3; border-radius:10px; background:#edf9f3; }.invite-created[hidden]{display:none}.invite-created > div { display:flex; align-items:center; justify-content:space-between; gap:12px; }.invite-created span { display:grid; gap:2px; }.invite-created b { font-size:11px; }.invite-created small { color:#567267; font-size:9px; }
.invite-created button,.invite-row button { min-height:32px; padding:0 10px; border:1px solid #9bb5e8; border-radius:7px; background:#fff; color:#2457c5; font-size:9px; font-weight:750; cursor:pointer; }
.invite-created input { width:100%; height:38px; margin-top:9px; padding:0 9px; border:1px solid #b9d8ca; border-radius:7px; background:#fff; color:#344054; font:inherit; font-size:9px; }
.invite-list { display:grid; gap:7px; }.invite-row { display:grid; grid-template-columns:minmax(130px,1.1fr) minmax(90px,.8fr) minmax(120px,1fr) minmax(90px,.7fr) auto auto; align-items:center; gap:10px; padding:11px 12px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.invite-row > div { min-width:0; display:grid; gap:3px; }.invite-row strong { font-size:11px; }.invite-row span,.invite-row small { color:var(--muted); font-size:8px; }.invite-row b { overflow:hidden; font-size:9px; text-overflow:ellipsis; white-space:nowrap; }
.invite-status { width:max-content; padding:4px 6px; border-radius:999px; background:#eef1f5; font-weight:750; }.invite-row.active .invite-status { background:#e8f7ef;color:#087044}.invite-row.revoked .invite-status,.invite-row.expired .invite-status { background:#fff0f1;color:#b42318}
.invite-row button { border-color:#edc8cc; color:#b42318; }.invite-empty { display:grid; gap:4px; padding:18px; border:1px dashed #c8d1de; border-radius:9px; text-align:center; }.invite-empty b { font-size:11px; }.invite-empty span { color:var(--muted); font-size:9px; }
.logout-access { width:100%; margin-top:12px; }
body.access-viewer #add-stock,body.access-viewer #home-add-stock,body.access-viewer .home-remove,body.access-viewer [data-home-track],body.access-viewer .ticker-add,body.access-viewer #tune-weights,body.access-viewer #run-all-automation,body.access-viewer #run-automation,body.access-viewer .paper-sync,body.access-viewer #save-simulation { display:none !important; }

@media (max-width: 760px) {
  .access-gate { padding:12px; }.access-gate-card { padding:25px 20px; border-radius:17px; }.access-gate-card h1 { font-size:24px; }
  .access-manager-heading { display:grid; }.access-manager-heading > span { width:max-content; }
  .create-invite-form { grid-template-columns:1fr 1fr; }.create-invite-form label:first-child { grid-column:1/-1; }.create-invite-form .save-button { width:100%; }
  .invite-row { grid-template-columns:1fr auto; }.invite-row > div:nth-child(n+2) { display:none; }.invite-row .invite-status { grid-column:2;grid-row:1; }.invite-row button { grid-column:1/-1;width:100%; }
}
