/* Research flow B: A1 tokens and A2 sprite icons, presentation only. */
.research-heading, .card-top, .card-footer, .progress-caption, .sheet-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.research-heading { margin-bottom:2rem; }
.research-heading .lead { margin-bottom:0; }
.research-heading > .button { gap:.5rem; white-space:nowrap; }
.research-start { max-width:850px; margin:1rem auto; }
.research-composer { padding:clamp(1.5rem,5vw,3.5rem); border-top:3px solid var(--accent); }
.research-composer h1 { max-width:23ch; }
.composer-icon { display:inline-grid; place-items:center; width:52px; height:52px; color:var(--accent); background:var(--soft); border-radius:var(--radius-md); }
.composer-icon .icon { width:26px; height:26px; }
.research-composer .examples button { border-radius:999px; font-size:var(--type-sm); background:var(--bg); }
.category-chips { margin-top:.75rem; }
.category-chips [aria-pressed=true] { color:var(--accent); border-color:var(--accent); background:var(--soft); }
.supplier-details { margin:1rem 0 1.5rem; }
.supplier-details summary { border:0; color:var(--muted); padding-inline:0; }
#start { min-width:200px; }
.filters-sheet { display:block; position:static; width:100%; max-width:none; margin:0; border:1px solid var(--line); border-radius:var(--radius-lg); padding:1.2rem; background:var(--surface); color:var(--text); }
.filters-sheet .filters { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; }
.filters-sheet .filters > div { min-width:0; }
.filters-sheet label { font-size:var(--type-xs); color:var(--muted); }
#reset-filters { margin-top:1rem; font-size:var(--type-sm); }
.filter-toggle, .sheet-heading { display:none; }
.research-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1rem; }
.research-card { margin:0; min-width:0; padding:1.4rem; border-radius:var(--radius-lg); background:var(--surface); box-shadow:var(--shadow); }
.research-card:hover { box-shadow:0 0 0 1px var(--accent); }
.research-card h2 { font-size:1.25rem; margin-top:1.4rem; }
.card-top > .icon { color:var(--accent); }
.card-top .chip { margin:0; }
[data-decision=GO] .chip { color:var(--profit); background:var(--go-bg); }
[data-decision=TEST] .chip { color:var(--test-fg); background:var(--test-bg); }
[data-decision=HOLD] .chip { color:var(--warning); background:var(--hold-bg); }
[data-decision=REJECT] .chip { color:var(--loss); background:var(--reject-bg); }
[data-decision=INSUFFICIENT_DATA] .chip { color:var(--muted); background:var(--insufficient-bg); }
.card-metrics { border-top:1px solid var(--line); padding-top:1rem; display:grid; gap:1.2rem; }
.card-metrics strong { display:block; font-size:1.6rem; line-height:1.5; }
.card-metrics small, .evidence-stat small { display:block; font-size:var(--type-xs); }
.evidence-stat { display:flex; align-items:center; gap:.75rem; font-size:var(--type-sm); }
.evidence-ring { display:grid; place-items:center; flex:0 0 48px; width:48px; height:48px; border-radius:50%; position:relative; }
.evidence-ring svg { position:absolute; inset:0; width:48px; height:48px; fill:none; stroke-width:4; }
.ring-track { stroke:var(--line); }.ring-value { stroke:var(--accent); }
.evidence-ring > span { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:var(--surface); font-weight:700; }
.card-footer { border-top:1px solid var(--line); margin-top:1.3rem; padding-top:1rem; color:var(--muted); font-size:var(--type-xs); }
.research-steps li { display:flex; flex-direction:column; gap:.5rem; border-radius:var(--radius-sm); font-size:var(--type-sm); }
.research-steps .current .icon { animation:research-pulse 1.8s ease-in-out infinite; color:var(--accent); }
.running-view[data-status=waiting] .current .icon, .running-view[data-status=failed] .current .icon { animation:none; }
.progress-caption { color:var(--muted); font-size:var(--type-sm); }
.progress-caption strong { color:var(--accent); }
.completion-controls { margin-block:1.5rem; }
.live-updates { padding:1rem 1.2rem; background:var(--bg); border:1px solid var(--line); border-radius:var(--radius-md); margin:1.5rem 0; }
.live-updates h2 { font-size:var(--type-sm); margin:0 0 .75rem; }
.live-updates p { margin:.4rem 0; font-size:var(--type-sm); }
.live-updates time { margin-right:.75rem; font-variant-numeric:tabular-nums; }
.skeleton-card { border:1px solid var(--line); border-radius:var(--radius-md); padding:1.3rem; }
.skeleton-card i { display:block; height:12px; margin:.7rem 0; border-radius:6px; background:var(--surface-raised); animation:research-pulse 1.8s ease-in-out infinite; }
.skeleton-card i:nth-child(2) { width:70%; }.skeleton-card i:nth-child(3) { width:45%; }
.unavailable-state { max-width:740px; margin:4rem auto; text-align:center; }
.unavailable-state > .icon { width:40px; height:40px; color:var(--muted); }
.unavailable-state .button { gap:.5rem; }
#completion-toast:not(:empty) { position:sticky; top:1rem; z-index:10; }
@keyframes research-pulse { 50% { opacity:.4; } }
@media(max-width:1000px) { .research-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:768px) {
  .research-heading { align-items:flex-start; flex-direction:column; }
  .filter-toggle { display:inline-flex; align-items:center; gap:.5rem; }
  .filters-sheet:not([open]) { display:none; }
  .filters-sheet[open] { position:fixed; inset:auto 0 0; margin:0; width:100%; max-width:none; max-height:90dvh; overflow:auto; border-radius:var(--radius-lg) var(--radius-lg) 0 0; padding:1.5rem; }
  .filters-sheet::backdrop { background:#0009; }
  .sheet-heading { display:flex; margin-bottom:1rem; }
  .filters-sheet .filters { grid-template-columns:1fr; }
  .research-grid { grid-template-columns:1fr; }
  .research-composer { margin-top:0; }
  .research-composer h1 { font-size:1.9rem; }
  .research-composer .examples { gap:.5rem; }
  #start { width:100%; }
  .research-steps { grid-template-columns:repeat(2,minmax(0,1fr))!important; }
  .research-steps li { font-size:var(--type-xs); }
  .running-view .completion-controls > button { width:100%; }
  .skeleton-cards { grid-template-columns:1fr; }
  .skeleton-card:not(:first-child) { display:none; }
}
@media(prefers-reduced-motion:reduce) { .research-steps .current .icon,.skeleton-card i { animation:none; } }
@media print { #filter-area,.completion-controls,.skeleton-cards { display:none; } }

/* Electric Indigo research surfaces. Completed steps use the secondary cyan. */
.filters-sheet input, .filters-sheet select { background: var(--tile); border-radius: var(--radius-sm); }
.research-composer, .running-view { border-radius: var(--radius-lg); }
.research-card .card-top .chip { white-space: normal; overflow-wrap: anywhere; }
.research-card .card-top > span { min-width: 0; }
.card-metrics > div:first-child { padding: 1rem; border-radius: var(--radius-md); background: var(--tile); }
.research-card .card-footer time { min-width: 0; overflow-wrap: anywhere; }
.research-grid > .panel { grid-column: 1 / -1; padding: 3rem 1.5rem; text-align: center; }
.steps li.done { border-color: var(--cost); color: var(--cost); }
.steps li.current { border-color: var(--accent); background: var(--tile); color: var(--text); box-shadow: 0 0 24px var(--glow); }
.guided .guided-steps li.done { border-color: var(--cost); }
.skeleton-card { background: var(--tile); }
.skeleton-card i { background: var(--line); }
progress { appearance: none; border: 0; border-radius: 999px; overflow: hidden; background: var(--tile); }
progress::-webkit-progress-bar { background: var(--tile); border-radius: 999px; }
progress::-webkit-progress-value { background: linear-gradient(90deg, var(--accent), var(--cost)); border-radius: 999px; }
progress::-moz-progress-bar { background: linear-gradient(90deg, var(--accent), var(--cost)); border-radius: 999px; }
@media(max-width:768px) {
  .guided .guided-steps li.done { background: var(--cost); }
  .guided .guided-steps li.current { background: var(--accent); }
  .running-view, .research-composer { min-width: 0; }
  .running-view h1 { overflow-wrap: anywhere; }
  .research-steps li { min-width: 0; overflow-wrap: anywhere; }
}
