/* Read-only presentation layers. Existing intake, scope and hero styling stays in place. */
:root {--text:#f5f5f5}
#app:has(.observatory) .journey {max-width:1920px; padding-top:20px}
.journey-step {position:relative; color:var(--muted)}
.journey-step.current {color:var(--text)}
.journey-step.current::after {content:""; position:absolute; height:2px; width:18px; bottom:-10px; left:0; background:var(--blue)}
.journey-step.current .step-number {color:#b6c3ff}
.journey-step.done {color:var(--muted)}
.plenoscope-mark {width:30px; height:34px; fill:currentColor; flex:none}
.plenoscope-mark path {fill:none; stroke:currentColor; stroke-width:1}
.thinking-message {padding:8px 0 12px}
.thinking-indicator {display:flex; align-items:center; gap:13px; min-height:46px}
.thinking-name, .thinking-caption {display:block; font-size:13px}
.thinking-caption {color:var(--muted); font-size:12px; margin-top:2px}
.thinking-mark {animation:brief-luminance 1.2s ease-in-out infinite alternate; color:#c7cfff}
@keyframes brief-luminance {from{opacity:.55}to{opacity:1}}

.research-progress {display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:64px; padding-top:54px}
.research-main, .research-context {min-width:0}
.research-heading h1 {max-width:670px; font-size:clamp(34px,3.6vw,52px); line-height:1.14; letter-spacing:-.045em}
.research-heading .lead {margin-top:25px; font-size:16px; color:var(--muted)}
.research-context {border-left:1px solid var(--line); padding-left:32px}
.research-context>h2 {font-size:17px; font-weight:450; margin:0 0 32px}
.research-field {margin:48px 0 42px}
.research-field svg {display:block; width:100%; height:auto; overflow:visible}
.field-phase {fill:#515151; stroke:#3c3c3c}
.field-phase.complete {fill:#c0c0c0; stroke:#707070}
.field-phase.active {fill:#bfcbff; stroke:var(--blue)}
.field-phase.paused {fill:#d2d2d2; stroke:#939393}
.field-phase circle {stroke:none}
.field-phase path {fill:none; stroke-width:1}
.field-phase .field-path {stroke-dasharray:2 7; stroke-width:.8}
.field-phase .field-focus {fill:none; stroke:var(--blue); stroke-width:.6}
.field-phase .convergence {stroke-width:.6}
.field-labels {display:grid; grid-template-columns:repeat(5,1fr); gap:12px; list-style:none; margin:2px 0 0; padding:0; font-size:12px}
.field-labels li {text-align:center; color:var(--muted)}
.field-labels li[data-state="complete"]>span, .field-labels li[data-state="active"]>span {color:var(--text)}
.field-labels small {display:block; font-size:11px; margin-top:3px}
.field-labels li[data-state="active"] small {color:#b6c3ff}
.research-field figcaption {font-size:11px; color:var(--muted); margin-top:25px; text-align:center}
.research-main .current-activity {margin:0; padding:28px 0 0; border-top:1px solid var(--line)}
.research-main .current-activity h2 {font-size:22px; font-weight:430}
.research-main .current-activity p {max-width:560px; font-size:14px; color:var(--muted)}
.research-main .quiet-status {margin:32px 0 0; color:var(--muted); font-size:12px}
.research-main>.sample-note {margin-top:28px}
.research-rail {list-style:none; padding:0; margin:0}
.research-rail li {position:relative; display:grid; grid-template-columns:24px minmax(0,1fr); gap:16px; padding-bottom:28px}
.research-rail li:not(:last-child)::after {content:""; position:absolute; left:11.5px; top:28px; bottom:4px; width:1px; background:var(--line)}
.rail-node {position:relative; display:flex; align-items:center; justify-content:center; width:24px; height:24px; border:1px solid #626262; border-radius:50%; color:var(--muted); font-size:11px}
.rail-title {font-size:14px; color:var(--muted); line-height:1.4; margin:2px 0 5px}
.rail-description {font-size:12px; line-height:1.5; color:var(--muted); margin:0}
.rail-state {display:block; font-size:11px; color:var(--muted); margin-top:5px}
.research-rail [data-state="active"] .rail-node {border-color:var(--blue); color:#c3cdff; box-shadow:0 0 0 4px #4c6fff0d}
.research-rail [data-state="active"] .rail-title {color:var(--text)}
.research-rail [data-state="active"] .rail-state {color:#b6c3ff}
.research-rail [data-state="complete"] .rail-node {border-color:#737373; color:#d1d1d1}
.research-rail [data-state="complete"] .rail-title {color:#c8c8c8}
.research-rail [data-state="paused"] .rail-node {border-style:dashed; color:#ddd}
.research-rail [data-state="paused"] .rail-title {color:var(--text)}
.research-context .run-details {margin-top:4px}
.report-ready {display:flex; align-items:flex-start; gap:24px; border-top:1px solid var(--line); padding-top:30px}
.resolved-mark {color:#c1caff; width:37px; height:42px; margin-top:4px}
.report-ready h2 {font-size:24px; font-weight:430; letter-spacing:-.03em; margin:0 0 8px}
.report-ready p {color:var(--muted); max-width:500px; font-size:14px; margin:0}
.report-ready .action-row {margin-top:24px; gap:22px}

.observatory {max-width:1920px; padding-top:28px}
.observatory-heading {display:flex; justify-content:space-between; align-items:flex-start; gap:32px}
.observatory-heading .eyebrow {margin-bottom:8px}
.observatory-heading h1 {font-size:32px; line-height:1.2; margin-bottom:6px}
.observatory-subtitle {font-size:14px; color:var(--muted); margin:0}
.observatory-actions {display:flex; flex-direction:column; align-items:flex-end; gap:12px; flex:none}
.observatory-actions .button {min-height:42px; padding:10px 18px; font-size:12px}
.observatory-actions .text-link {font-size:12px}
.observatory>.sample-banner {background:transparent; border:0; border-left:2px solid #565656; padding:0 0 0 14px; margin:18px 0; font-size:11px; color:#aaa; max-width:1100px}
.observatory-nav {display:flex; gap:28px; border-bottom:1px solid var(--line); margin:0 0 24px}
.observatory-nav button {position:relative; background:none; border:0; color:var(--muted); padding:12px 0; font-size:13px; min-height:44px; white-space:nowrap}
.observatory-nav button[aria-pressed="true"] {color:#c0cbff}
.observatory-nav button[aria-pressed="true"]::after {content:""; position:absolute; bottom:-1px; left:0; right:0; height:2px; background:var(--blue)}
.observatory-grid {display:grid; grid-template-columns:216px minmax(0,1fr) 296px; gap:28px; align-items:start}
.supplier-browser, .observatory-center, .candidate-panel {min-width:0}
.supplier-browser-heading h2 {font-size:16px; font-weight:450; margin:0 0 19px}
.supplier-browser-heading h2 span {color:var(--muted); font-size:12px; margin-left:3px}
.supplier-toggle {display:none}
#candidate-search {width:100%; background:#111; border:1px solid #454545; border-radius:4px; padding:11px 12px; color:var(--text); font:inherit; font-size:12px; min-height:44px}
#candidate-search::placeholder {color:#a3a3a3}
.supplier-filters {display:flex; flex-wrap:wrap; gap:0 12px; margin:11px 0 3px}
.supplier-filters button {background:none; border:0; color:var(--muted); font-size:11px; padding:8px 0; min-height:34px}
.supplier-filters button[aria-pressed="true"] {color:#c0cbff; text-decoration:underline; text-underline-offset:5px}
.filter-count {color:var(--muted); font-size:11px; margin:8px 0 16px}
.supplier-row {position:relative; display:flex; align-items:center; gap:8px; width:100%; text-align:left; background:none; border:0; border-bottom:1px solid var(--line); border-left:2px solid transparent; padding:17px 11px; color:var(--text); min-height:74px}
.supplier-row strong {display:block; font-size:12px; line-height:1.45; font-weight:450}
.supplier-row small {display:block; font-size:10px; line-height:1.5; color:var(--muted); margin-top:5px}
.supplier-row[aria-pressed="true"] {background:#141b2c; border-left-color:var(--blue)}
.supplier-row:hover {background:#151515}
.candidate-arrow {margin-left:auto; font-size:13px; color:var(--muted)}
.exploration-surface {background:#0e0e0e; border:1px solid var(--line); border-radius:4px; padding:24px}
.exploration-heading {display:flex; align-items:start; justify-content:space-between; flex-wrap:wrap; gap:16px}
.exploration-heading .eyebrow {margin-bottom:8px; font-size:10px}
.exploration-heading h2 {font-size:20px; line-height:1.3; font-weight:450; letter-spacing:-.03em; margin:0}
.field-switch {display:flex; gap:0; border:1px solid #383838; border-radius:4px}
.field-switch button {font-size:11px; border:0; background:none; color:var(--muted); padding:8px 12px; min-height:34px}
.field-switch button[aria-pressed="true"] {color:var(--text); background:#222}
.universe-field {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:start; gap:12px; min-height:290px; margin-top:36px}
.universe-cluster:nth-child(2) {margin-top:40px}
.universe-cluster:nth-child(3) {margin-top:88px}
.universe-cluster h3 {font-size:10px; font-weight:400; color:var(--muted); margin:0 0 17px}
.universe-entity {display:flex; align-items:center; gap:8px; color:#ddd; text-align:left; padding:12px 0; border:0; background:none; width:100%; min-height:64px}
.universe-entity .plenoscope-mark {width:21px; height:25px}
.universe-entity strong {font-size:11px; line-height:1.45; font-weight:400; display:block}
.universe-entity small {display:none}
.universe-entity[aria-pressed="true"] {color:#bac7ff}
.universe-entity[aria-pressed="true"] .plenoscope-mark {stroke:var(--blue)}
.universe-entity:hover strong {text-decoration:underline; text-underline-offset:4px}
.universe-caption {color:var(--muted); font-size:11px; border-top:1px solid var(--line); padding-top:16px; margin:10px 0 0}
.empty-universe {min-height:240px; padding-top:40px; color:var(--muted)}
.observatory-context {display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:24px}
.observatory-context section {border-top:1px solid var(--line); padding-top:20px}
.observatory-context h2 {font-size:13px; font-weight:500; margin:0 0 15px}
.observatory-context p {font-size:12px; color:#b8b8b8; line-height:1.75; margin:0 0 14px}
.observatory-context .text-link {font-size:12px; text-align:left}
.candidate-panel {position:sticky; top:116px; max-height:min(800px,calc(100dvh - 156px)); overflow:auto; scrollbar-width:thin; border-left:1px solid var(--line); padding:0 12px 8px 24px; overscroll-behavior:contain}
.candidate-panel:focus-visible {outline:2px solid #8da3ff; outline-offset:5px}
.candidate-panel>.eyebrow {font-size:9px; line-height:1.6}
.candidate-panel>h2 {font-size:23px; font-weight:450; line-height:1.25; letter-spacing:-.04em; margin:0 0 14px}
.candidate-panel .detail-subtitle {font-size:11px; margin:0 0 14px; color:var(--muted)}
.candidate-panel .evidence-state {font-size:10px; line-height:1.6}
.candidate-panel .detail-section {padding-top:20px; margin-top:24px}
.candidate-panel .detail-section h3 {font-size:10px; letter-spacing:.07em; text-transform:uppercase; font-weight:400; color:var(--muted); margin-bottom:14px}
.candidate-panel .detail-section p, .candidate-panel .plain-list, .candidate-panel .detail-facts {font-size:12px; line-height:1.65}
.candidate-panel .plain-list {padding-left:16px}
.candidate-panel .detail-facts {display:block}
.candidate-panel .detail-facts dt {font-size:10px; margin-top:15px}
.candidate-panel .detail-facts dd {margin:4px 0 0}
.candidate-panel .evidence-link {font-size:12px; padding:14px 0}
.candidate-panel .evidence-link small {font-size:10px; margin-top:7px}
.observatory-table-wrap {overflow:auto; margin-top:25px}
.observatory-table-wrap:focus-visible {outline:2px solid #8da3ff; outline-offset:5px}
.observatory-table {width:100%; min-width:830px; border-collapse:collapse; font-size:12px}
.observatory-table th, .observatory-table td {vertical-align:top; text-align:left; padding:15px 12px; border-bottom:1px solid var(--line); min-width:115px}
.observatory-table th {font-size:10px; font-weight:400; color:var(--muted)}
.observatory-table .candidate-name {font-size:12px; text-align:left}
.intelligence-grid {display:grid; grid-template-columns:1fr 1fr; gap:48px 80px; max-width:1200px}
.intelligence-grid>section {border-top:1px solid var(--line); padding-top:25px; min-width:0}
.intelligence-grid h2, .evidence-heading h2 {margin-bottom:14px; font-size:26px; font-weight:450; letter-spacing:-.035em; line-height:1.3}
.intelligence-grid p, .intelligence-grid li {font-size:14px; color:#c0c0c0}
.intelligence-grid .eyebrow {font-size:11px; color:var(--muted)}
.intelligence-grid .relationship-note {margin-top:28px; padding:20px; background:#111; border:1px solid var(--line)}
.evidence-workspace {display:grid; grid-template-columns:minmax(220px,.7fr) minmax(0,1.5fr); gap:80px; max-width:1300px}
.evidence-heading h2 {max-width:340px}
.evidence-heading .muted {font-size:14px; max-width:340px}
.observatory-sources {list-style:none; padding:0; margin:0}
.observatory-sources>li {padding:25px 0; border-top:1px solid var(--line)}
.observatory-sources>li:first-child {padding-top:8px; border-top:0}
.observatory-sources p {font-size:14px; margin:12px 0; color:#c0c0c0}
.observatory-sources .source-meta {font-size:12px; color:var(--muted)}
.observatory-sources .source-title {font-size:16px; text-align:left}
.observatory-footer {display:flex; justify-content:space-between; align-items:center; gap:24px; border-top:1px solid var(--line); margin-top:64px; padding-top:24px; font-size:12px}

@media(min-width:1700px) {
  .observatory-grid {grid-template-columns:248px minmax(0,1fr) 344px; gap:36px}
  .exploration-surface {padding:30px}
  .universe-field {min-height:330px; margin-top:44px; gap:24px}
  .universe-entity strong {font-size:13px}
  .universe-entity .plenoscope-mark {width:26px; height:30px}
}
@media(max-width:1199px) {
  .observatory-grid {grid-template-columns:minmax(0,1fr)}
  .candidate-panel {display:none}
  .supplier-browser-heading {display:flex; align-items:center; justify-content:space-between; gap:20px}
  .supplier-browser-heading h2 {margin:0}
  .supplier-toggle {display:block; font-size:12px}
  #supplier-browser-content {display:none; padding-top:20px}
  .supplier-browser.expanded #supplier-browser-content {display:block}
  .supplier-list {display:grid; grid-template-columns:1fr 1fr; gap:0 18px}
  .universe-entity strong {font-size:13px}
  .universe-cluster h3 {font-size:12px}
  .universe-entity .plenoscope-mark {width:28px; height:32px}
}
@media(max-width:1000px) {
  .research-progress {gap:32px; grid-template-columns:minmax(0,1fr) 278px}
  .research-context {padding-left:24px}
  .research-heading h1 {font-size:36px}
  .field-labels {gap:5px; font-size:11px}
  .field-labels small {font-size:10px}
  .research-field {margin-top:40px}
  .evidence-workspace {gap:40px; grid-template-columns:minmax(200px,.7fr) minmax(0,1fr)}
}
@media(max-width:850px) {
  .research-progress {grid-template-columns:minmax(0,1fr); padding-top:36px; gap:42px}
  .research-heading h1 {max-width:500px}
  .research-context {border-left:0; border-top:1px solid var(--line); padding:28px 0 0}
  .research-rail {display:grid; grid-template-columns:1fr 1fr; gap:0 30px}
  .research-rail li::after {display:none}
  .research-context .run-details {max-width:550px}
  .intelligence-grid {gap:36px}
}
@media(max-width:580px) {
  .journey {gap:22px}
  .journey-step {gap:7px; font-size:11px}
  .research-progress {padding-top:28px}
  .research-heading h1 {font-size:35px; max-width:310px}
  .research-heading .lead {font-size:14px; margin-top:24px}
  .research-field {margin:38px 0 32px}
  .research-field svg {min-height:96px}
  .research-field figcaption {font-size:10px; line-height:1.7; margin-top:20px}
  .field-labels {font-size:11px; gap:8px}
  .field-labels small {font-size:10px; line-height:1.5; margin-top:5px}
  .research-main .current-activity {gap:14px; padding-top:24px}
  .research-main .current-activity h2 {font-size:21px}
  .research-main .current-activity p {font-size:13px}
  .research-rail {display:block}
  .research-rail li::after {display:block}
  .research-rail li {padding-bottom:24px}
  .research-context>h2 {margin-bottom:25px}
  .report-ready {gap:16px; padding-top:26px}
  .report-ready .action-row {align-items:flex-start; flex-direction:column; gap:18px}
  .report-ready h2 {font-size:22px}
  .resolved-mark {width:27px; height:32px}
  .observatory {padding-top:28px}
  .observatory-heading {display:block}
  .observatory-heading h1 {font-size:30px}
  .observatory-subtitle {font-size:12px}
  .observatory-actions {flex-direction:row; align-items:center; justify-content:space-between; gap:12px; margin-top:22px}
  .observatory-actions .text-link {font-size:11px; text-align:right}
  .observatory>.sample-banner {font-size:10px; line-height:1.8; margin:23px 0 12px}
  .observatory-nav {gap:20px; margin-bottom:24px}
  .observatory-nav button {font-size:11px; padding:15px 0}
  .supplier-toggle {display:none}
  #supplier-browser-content {display:block}
  .supplier-list {display:block}
  .supplier-row {min-height:75px; padding:16px 12px}
  .supplier-row strong {font-size:14px}
  .supplier-row small {font-size:11px}
  .supplier-filters {gap:0 15px}
  .supplier-filters button {min-height:40px}
  .exploration-surface {padding:20px}
  .exploration-heading h2 {font-size:21px}
  .exploration-heading {gap:15px}
  .universe-field {grid-template-columns:minmax(0,1fr); min-height:0; gap:28px; margin-top:30px}
  .universe-cluster:nth-child(n) {margin-top:0}
  .universe-cluster h3 {margin-bottom:8px; font-size:11px}
  .universe-entity {padding:10px 0; min-height:50px}
  .universe-entity strong {font-size:13px}
  .universe-entity .plenoscope-mark {width:23px; height:27px}
  .observatory-context, .intelligence-grid, .evidence-workspace {grid-template-columns:1fr; gap:30px}
  .observatory-context p {font-size:13px}
  .observatory-footer {flex-direction:column; align-items:flex-start; margin-top:44px}
  .evidence-workspace {gap:24px}
  .observatory-sources>li:first-child {padding-top:24px; border-top:1px solid var(--line)}
  .drawer:has(.candidate-evidence) {height:100dvh; max-height:100dvh; border-radius:0}
}
@media(prefers-reduced-motion:reduce) {
  .thinking-mark {animation:none; opacity:1}
}

/* F-3 report truth: final vs partial dossier, committed stage state, plural sources/relationships. */
.field-phase.partial {fill:#a8a8a8; stroke:#8a7a4a}
.field-labels li[data-state="partial"]>span {color:var(--text)}
.research-rail [data-state="partial"] .rail-node {border-color:#8a7a4a; color:#e2cf94}
.research-rail [data-state="partial"] .rail-title {color:#c8c8c8}
.report-truth {margin:0 0 28px; padding:18px 0 20px; border-bottom:1px solid var(--line)}
.truth-badges {display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px}
.truth-badge {display:inline-block; padding:4px 10px; border:1px solid #3a3a3a; font-size:12px; letter-spacing:.04em; color:var(--text)}
.report-truth[data-report-kind="partial_dossier"] .truth-badge.kind {border-color:#8a7a4a; color:#e2cf94}
.report-truth[data-completeness="partial"] .truth-badge.completeness {border-color:#8a7a4a; color:#e2cf94}
.report-truth[data-completeness="complete"] .truth-badge.completeness {border-color:var(--blue); color:#b6c3ff}
.truth-stop {max-width:820px; margin:0 0 16px; font-size:14px; color:#c0c0c0}
.stage-truth {display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; list-style:none; margin:0; padding:0}
.stage-truth li {min-width:0; padding:8px 10px; border-top:2px solid #333; font-size:12px; color:var(--muted)}
.stage-truth li>span {display:block; color:#c8c8c8; overflow-wrap:anywhere}
.stage-truth small {display:block; margin-top:3px; font-size:11px}
.stage-truth li[data-state="committed_complete"] {border-top-color:#737373}
.stage-truth li[data-state="committed_partial"] {border-top-color:#8a7a4a}
.stage-truth li[data-state="committed_partial"] small {color:#e2cf94}
.stage-truth li[data-state="stopped"] {border-top-color:#9a5a5a}
.stage-truth li[data-state="stopped"] small {color:#e3a8a8}
.stage-truth li[data-state="not_started"] {border-top-style:dashed}
.truth-limitations {margin-top:14px; font-size:13px; color:#c0c0c0}
.truth-limitations summary {cursor:pointer; color:var(--muted)}
.missing-section, .missing-inline {margin:12px 0; padding:12px 14px; border:1px dashed #3a3a3a; font-size:13px; color:#bdbdbd}
.missing-section .eyebrow {margin:0 0 4px; font-size:11px; color:var(--muted)}
.observatory-empty {max-width:720px; padding:24px 0}
.relationship-list {list-style:none; margin:16px 0 0; padding:0; display:grid; gap:10px}
.relationship-item {padding:16px 18px; background:#111; border:1px solid var(--line)}
.relationship-item p {margin:4px 0}
.relationship-count {font-size:12px; color:var(--muted)}
.source-names {margin:6px 0 0; padding-left:18px; font-size:13px; color:#c0c0c0}
.source-card {margin:12px 0; padding:14px 16px; border:1px solid var(--line)}
.source-card h4 {margin:2px 0 8px}
.source-card h5 {margin:12px 0 4px; font-size:12px; font-weight:500; color:var(--muted)}
.source-limitation {font-size:13px}
@media (max-width: 900px) {
  .stage-truth {grid-template-columns:repeat(2,minmax(0,1fr))}
}
