/* Opportunity center. The shell owns typography, controls and brand tokens. */
.op-workbench { min-width: 0; }
.op-workbench .page-head .actions { gap: 10px; }
.op-metrics { margin-bottom: 26px; }
.op-metrics .metric strong { font-variant-numeric: tabular-nums; }
.op-tabs { gap: 28px; margin-bottom: 20px; }
.op-tabs button { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.op-tabs button > span { min-width: 22px; padding: 0 5px; border-radius: 5px; background: #f0f3f8; color: var(--muted); font-size: 14px; font-weight: 500; }
.op-tabs button.active > span { color: var(--brand); background: #e8effe; }
.op-monitors { display: grid; grid-template-columns: repeat(auto-fit,minmax(250px,1fr)); gap: 14px; padding: 0 20px 20px; }
.op-monitor { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 9px; background: #fcfdff; }
.op-monitor.selected { border-color: #afc8f9; background: #f5f8ff; }
.op-line { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.op-title { padding: 0; border: 0; background: transparent; color: var(--ink); font-size: 15px; font-weight: 600; text-align: left; line-height: 1.6; }
.op-title:hover { color: var(--brand); }
.op-monitor .op-title { max-width: 75%; }
.op-monitor-meta { display: grid; gap: 3px; margin: 10px 0 14px; }
.op-monitor small, .op-results-table small, .op-history small { display: block; font-size: 14px; line-height: 1.7; color: var(--muted); }
.op-monitor .actions { gap: 6px; }
.op-blank-inline { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 0 20px 20px; color: var(--muted); font-size: 14px; }
.op-category-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin: 0 0 20px; }
.op-chip-list { display: flex; flex-wrap: wrap; gap: 8px; }
.op-chip { min-height: 36px; padding: 5px 12px; border: 1px solid var(--line); border-radius: 7px; background: white; font-size: 14px; }
.op-chip:hover { background: #f6f8fd; }
.op-chip.active { border-color: #c7d6fb; color: var(--indigo); background: #f0f2ff; }
.op-list-filters { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 14px; padding: 0 20px 18px; }
.op-segments { display: flex; flex-wrap: wrap; gap: 4px; }
.op-segments button { display: flex; align-items: center; gap: 7px; min-height: 36px; padding: 6px 10px; border: 1px solid transparent; border-radius: 7px; background: transparent; color: var(--muted); font-size: 14px; }
.op-segments button:hover { background: #f5f7fc; }
.op-segments button.active { background: #eef3ff; color: var(--brand); border-color: #dfe8fd; font-weight: 600; }
.op-segments button span { font-variant-numeric: tabular-nums; font-weight: 400; }
.op-search { display: flex; gap: 8px; align-items: center; }
.op-search input { width: 190px; min-height: 36px; padding: 6px 10px; border: 1px solid var(--line-strong); border-radius: 7px; font-size: 14px; background: white; }
.op-active-filter { display: flex; align-items: center; gap: 10px; padding: 0 20px 14px; color: var(--brand); font-size: 14px; }
.op-results-table .table { min-width: 990px; }
.op-results-table .table th:first-child { width: 25%; }
.op-results-table .table td:first-child { min-width: 230px; max-width: 330px; }
.op-results-table .table td:nth-child(5) { min-width: 230px; max-width: 290px; }
.op-results-table .table td:nth-child(5) small { margin-top: 5px; }
.op-results-table .table td:last-child, .op-results-table .table th:last-child { position: sticky; right: 0; width: 116px; min-width: 116px; border-left: 1px solid var(--line); background: white; z-index: 1; }
.op-results-table .table th:last-child { background: #f7f9fc; z-index: 2; }
.op-results-table .table tbody tr:hover td:last-child { background: #f9fbff; }
.op-table-empty { padding: 5px 20px 30px; text-align: center; }
.op-table-empty .empty { padding-bottom: 16px; }
.op-detail { font-size: 16px; }
.op-detail-heading { margin-bottom: 20px; }
.op-detail-heading p { margin-top: 10px; line-height: 1.8; }
.op-detail-metrics { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 18px 0; }
.op-detail-metrics .metric { padding: 16px; }
.op-detail-metrics .metric strong { font-size: 23px; line-height: 1.45; overflow-wrap: anywhere; }
.op-detail-metrics .metric small { font-size: 14px; color: var(--muted); }
.op-profit-details { margin-bottom: 24px; }
.op-detail-folds { display: grid; gap: 4px; }
.op-section { margin-top: 28px; }
.op-section > h3, .op-section-head { margin-bottom: 14px; font-size: 16px; }
.op-section-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.op-section-head h3 { font-size: 16px; }
.op-section-head > span { font-size: 14px; color: var(--muted); }
.op-reasons { display: grid; gap: 0; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.op-reason { padding: 15px 16px; }
.op-reason + .op-reason { border-top: 1px solid var(--line); }
.op-reason p { margin-top: 6px; color: var(--muted); font-size: 14px; line-height: 1.75; }
.op-evidence { margin: 0; padding: 0; list-style: none; }
.op-evidence li { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.op-evidence strong { font-size: 14px; font-weight: 500; }
.op-evidence a { font-size: 14px; }
.op-evidence small { display: block; margin-top: 4px; font-size: 14px; color: var(--muted); }
.op-evidence time { flex: 0 0 auto; color: var(--muted); font-size: 14px; }
.op-research-sources { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.op-research-source { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 9px; background: #fcfcff; }
.op-research-source.is-missing { border-style: dashed; background: #fff; }
.op-research-source .op-line { align-items: flex-start; flex-wrap: wrap; gap: 6px; }
.op-research-source strong { font-size: 14px; }
.op-research-source p { margin-top: 9px; font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.op-research-source small { display: block; margin-top: 8px; font-size: 14px; color: var(--muted); }
.op-research-insights { margin-top: 14px; border: 1px solid var(--line); border-radius: 9px; }
.op-research-insights > summary { padding: 14px; font-size: 14px; font-weight: 600; cursor: pointer; }
.op-research-insight-body { display: grid; gap: 18px; padding: 0 16px 16px; font-size: 14px; line-height: 1.75; }
.op-research-insight-body h4 { margin: 0 0 8px; font-size: 14px; }
.op-research-insight-body ul { margin: 0; padding-left: 20px; }
.op-research-insight-body li + li { margin-top: 5px; }
.op-research-observations { display: grid; gap: 12px; margin: 0; }
.op-research-observations > div { display: grid; grid-template-columns: 112px minmax(0,1fr); gap: 12px; }
.op-research-observations dt, .op-research-pending { color: var(--muted); }
.op-research-observations dd { margin: 0; overflow-wrap: anywhere; }
.op-research-hypotheses { padding: 14px; border-left: 3px solid #b7a2df; border-radius: 5px; background: #f8f5ff; }
.op-empty-note { padding: 16px; border: 1px dashed var(--line-strong); border-radius: 8px; font-size: 14px; color: var(--muted); }
.op-candidates { display: grid; gap: 12px; }
.op-candidate { display: block; padding: 17px; border: 1px solid var(--line); border-radius: 9px; cursor: pointer; }
.op-candidate:hover { border-color: #adc4f5; }
.op-candidate:has(input:checked) { border-color: #9cbaf4; background: #f7faff; box-shadow: 0 0 0 1px #dce7fc inset; }
.op-candidate-title { display: flex; align-items: center; gap: 10px; min-width: 0; }
.op-candidate-title input { flex: 0 0 auto; width: 16px; height: 16px; accent-color: var(--brand); }
.op-candidate-title strong { font-size: 16px; }
.op-candidate > p { margin-top: 8px; font-size: 14px; color: var(--muted); }
.op-candidate > small { display: block; margin-top: 12px; font-size: 14px; color: var(--muted); }
.op-source-link { display: inline-block; margin-top: 10px; font-size: 14px; }
.op-recent-tasks { display: grid; gap: 16px; }
.op-recent-tasks small { display: block; color: var(--muted); font-size: 14px; }
.op-candidate-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; margin-top: 16px; }
.op-candidate-metrics span { display: block; color: var(--muted); font-size: 14px; }
.op-candidate-metrics strong { display: block; margin-top: 4px; font-size: 16px; font-variant-numeric: tabular-nums; }
.op-candidate .op-missing { color: var(--amber); }
.op-select-shop { margin-top: 20px; }
.op-detail-actions { margin-top: 20px; }
.op-timeline { list-style: none; padding: 0; margin: 18px 0; border-left: 2px solid #dbe5fc; }
.op-timeline li { position: relative; margin: 0 0 22px; padding-left: 18px; }
.op-timeline li::before { position: absolute; content: ''; top: 9px; left: -5px; width: 8px; height: 8px; border-radius: 50%; background: var(--brand); }
.op-timeline p, .op-timeline small { display: block; margin-top: 5px; font-size: 14px; color: var(--muted); }
.op-history .table { min-width: 640px; }
.op-rule-prompt { padding: 17px; margin-bottom: 24px; background: #f7f9ff; border: 1px solid #dfe6fb; border-radius: 9px; }
.op-rule-prompt .field { margin: 0; }
.op-rule-prompt textarea { min-height: 100px; background: white; }
.op-rule-prompt .actions { margin-top: 12px; }
.op-rule-form .field input, .op-rule-form .field select { min-width: 0; width: 100%; }
.op-shop-options { min-width: 0; padding: 16px; border: 1px solid var(--line); border-radius: 8px; }
.op-shop-options legend { padding: 0 6px; font-size: 14px; font-weight: 500; }
.op-shop-options > div { display: flex; gap: 12px 22px; flex-wrap: wrap; }
.op-shop-options label { display: inline-flex; gap: 8px; align-items: center; font-size: 14px; }
.op-shop-options input { width: 16px; height: 16px; accent-color: var(--brand); }
.op-form-footer { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
.op-source-templates { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-bottom: 24px; }
.op-source-templates > button { display: grid; grid-template-columns: 1fr 24px; gap: 7px 12px; padding: 18px 20px; text-align: left; background: white; border: 1px solid var(--line); border-radius: 10px; color: var(--ink); }
.op-source-templates > button:hover { border-color: #b5a1e4; background: #faf8ff; }
.op-source-templates span { font-size: 16px; font-weight: 600; }
.op-source-templates small { grid-column: 1; color: var(--muted); font-size: 14px; }
.op-source-templates b { grid-column: 2; grid-row: 1/3; align-self: center; color: var(--brand); font-size: 24px; font-weight: 400; }
.op-task-list { padding: 0 20px 6px; }
.op-task-card { display: grid; grid-template-columns: minmax(270px,1fr) auto auto; gap: 24px; align-items: center; padding: 22px 0; }
.op-task-card + .op-task-card { border-top: 1px solid var(--line); }
.op-task-main { min-width: 0; }
.op-task-main .op-line { justify-content: flex-start; align-items: flex-start; flex-wrap: wrap; gap: 8px; }
.op-task-meta, .op-task-context { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 14px; color: var(--muted); font-size: 14px; line-height: 1.7; }
.op-task-meta { margin-top: 10px; }
.op-task-context { margin: -5px 0 24px; }
.op-task-rules { margin-top: 10px; color: var(--muted); font-size: 14px; line-height: 1.8; }
.op-task-counts { display: flex; gap: 24px; text-align: center; }
.op-task-counts strong { display: block; font-size: 22px; font-weight: 600; font-variant-numeric: tabular-nums; }
.op-task-counts span { display: block; color: var(--muted); font-size: 14px; margin-top: 4px; white-space: nowrap; }
.op-task-actions { display: grid; gap: 10px; }
.op-task-actions .actions { gap: 7px; }
.op-task-actions small { color: var(--muted); font-size: 14px; text-align: right; }
.op-pipeline { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 0 20px 20px; }
.op-pipeline > div { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 9px; background: #fdfcff; }
.op-pipeline section { flex: 1; min-width: 80px; }
.op-pipeline strong { display: block; font-size: 16px; }
.op-pipeline small { display: block; margin-top: 5px; color: var(--muted); font-size: 14px; }
.op-pipeline .tag { font-size: 14px; }
.op-step-index { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #efeafa; color: #6446a1; font-size: 14px; font-weight: 600; }
.op-detail .op-pipeline { padding: 0; margin: 22px 0; grid-template-columns: 1fr; }
.op-rule-inline { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 18px 0 24px; padding: 15px 18px; border: 1px solid var(--line); border-radius: 9px; background: white; font-size: 14px; line-height: 1.8; }
.op-rule-inline strong { margin-right: 14px; font-weight: 600; }
.op-record-filter { display: flex; align-items: end; gap: 12px; padding: 0 20px 18px; }
.op-record-filter .field { margin: 0; min-width: 180px; font-size: 14px; }
.op-record-filter .button { margin-bottom: 0; }
.op-source-rules { margin: 24px 0; padding: 20px; border: 1px solid #dcd2ee; background: #fcfaff; border-radius: 10px; }
.op-source-rules h3 { font-size: 16px; }
.op-rule-note { font-size: 14px; color: var(--muted); line-height: 1.8; margin: 10px 0 14px; }
.op-source-rules .op-rule-note:last-child { margin-bottom: 0; }
.op-advanced-rules { border-top: 1px solid var(--line); padding-top: 16px; }
.op-advanced-rules > summary { font-size: 16px; font-weight: 600; cursor: pointer; margin-bottom: 18px; }
.op-rule-status { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 20px; font-size: 14px; color: var(--muted); line-height: 1.8; }
.op-rule-history { display: grid; gap: 16px; }
.op-rule-history article { padding: 18px; border: 1px solid var(--line); border-radius: 9px; }
.op-rule-history article > small { display: block; color: var(--muted); margin-top: 8px; font-size: 14px; }
.op-rule-history article > p { margin: 14px 0; font-size: 14px; line-height: 1.8; }
.op-freight-line { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 18px 0; font-size: 14px; color: var(--muted); }
.op-freight-line span:first-child { color: var(--ink); font-weight: 600; }
.op-checks { margin-top: 14px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.op-checks summary { padding: 13px 14px; font-size: 14px; font-weight: 600; cursor: pointer; }
.op-checks > p { padding: 0 14px; font-size: 14px; line-height: 1.8; }
.op-checks > .details { padding: 0 14px; }
.op-check { display: grid; grid-template-columns: 110px minmax(0,1fr) auto; align-items: center; gap: 10px; border-top: 1px solid var(--line); padding: 11px 14px; font-size: 14px; line-height: 1.6; }
.op-check > span:nth-child(2) { color: var(--muted); }
.op-candidate:has(input:checked) { border-color: #b5a1e4; background: #fcfaff; box-shadow: 0 0 0 1px #ede5fa inset; }
.op-segments button.active { background: #f2edfa; border-color: #e4daf3; color: #6946a5; }
.op-tabs button.active > span { color: #6946a5; background: #eee6fa; }
.op-workbench button:focus-visible, .op-detail button:focus-visible, .op-rule-form input:focus-visible, .op-rule-form select:focus-visible, .op-rule-form textarea:focus-visible { outline: 2px solid #8c6ac7; outline-offset: 3px; }
.op-workbench button:disabled { opacity: .45; cursor: not-allowed; }
@media(max-width:1100px) {
  .op-list-filters { align-items: stretch; }
  .op-search { margin-left: auto; }
  .op-task-card { grid-template-columns: minmax(220px,1fr) auto; gap: 20px; }
  .op-task-actions { grid-column: 1/-1; display: flex; align-items: center; justify-content: space-between; }
  .op-pipeline { grid-template-columns: 1fr; }
}
@media(max-width:700px) {
  .op-tabs { gap: 20px; }
  .op-monitors { grid-template-columns: 1fr; padding: 0 14px 14px; }
  .op-list-filters { padding: 0 14px 16px; }
  .op-search { width: 100%; margin: 0; }
  .op-search input { flex: 1; width: 100%; }
  .op-detail-metrics { gap: 8px; }
  .op-detail-metrics .metric { padding: 12px; }
  .op-detail-metrics .metric strong { font-size: 20px; }
  .op-candidate-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .op-evidence li { flex-direction: column; gap: 5px; }
  .op-research-sources { grid-template-columns: 1fr; }
  .op-research-observations > div { grid-template-columns: 1fr; gap: 3px; }
  .op-section-head { align-items: flex-start; flex-wrap: wrap; gap: 6px; }
  .op-candidate .op-line { align-items: flex-start; }
  .op-blank-inline { padding: 0 14px 14px; }
  .op-source-templates { grid-template-columns: 1fr; }
  .op-task-card { grid-template-columns: 1fr; }
  .op-task-counts { justify-content: flex-start; text-align: left; }
  .op-task-actions { display: grid; }
  .op-task-actions small { text-align: left; }
  .op-rule-inline { align-items: flex-start; flex-direction: column; gap: 8px; }
  .op-rule-inline strong { display: block; }
  .op-source-rules { padding: 14px; }
  .op-check { grid-template-columns: 88px minmax(0,1fr) auto; gap: 8px; padding: 10px; }
}

/* Task results: the downstream signal stays beside the compared supply. */
.op-breadcrumb { display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 14px;color:var(--muted);font-size:14px; }
.op-breadcrumb .button { padding:0;font-size:14px;min-height:28px; }
.op-breadcrumb > strong { font-weight:500; }
.op-sort-note { color:var(--muted);font-size:14px; }
.op-results-grid { display:grid;gap:20px;padding:0 20px 20px; }
.op-opportunity { border:1px solid #e6deef;border-radius:10px;overflow:hidden;background:#fff; }
.op-opportunity > header { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 16px;border-bottom:1px solid #eee8f3; }
.op-opportunity > header > div { display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px;color:var(--muted); }
.op-comparison { display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,1.9fr);gap:16px;padding:16px;align-items:stretch; }
.op-source-cards { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px; }
.op-product-card { min-width:0;display:flex;flex-direction:column;align-items:stretch;padding:13px;border:1px solid #e8e1ef;border-radius:9px; }
.op-product-card.downstream { background:#fcfaff;border-color:#d9cbea; }
.op-card-label { font-size:14px;color:#7554a2;margin-bottom:10px; }
.op-product-image { aspect-ratio:4/3;width:100%;height:auto;max-height:190px;overflow:hidden;border-radius:7px;background:#f4f2f7;margin-bottom:12px; }
.op-product-image img { display:block;width:100%;height:100%;object-fit:contain;background:#fff; }
.op-product-image.is-missing { display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#8a8196;border:1px dashed #ddd4e8;font-size:16px; }
.op-product-image.is-missing small { font-size:14px; }
.op-card-title { font-size:16px;line-height:1.6;overflow-wrap:anywhere;font-weight:600; }
.op-card-source { font-size:14px;color:var(--muted);margin:7px 0 12px;line-height:1.7; }
.op-observed-facts { display:grid;gap:8px;margin:0; }
.op-observed-facts > div { display:flex;align-items:flex-start;justify-content:space-between;gap:12px;font-size:14px;line-height:1.7; }
.op-observed-facts dt { color:var(--muted);flex:0 0 auto;max-width:45%; }
.op-observed-facts dd { text-align:right;margin:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums; }
.op-product-card > small { margin-top:12px;color:var(--muted);font-size:14px; }
.op-card-difference { margin-top:auto;padding-top:13px;font-size:14px;line-height:1.7;color:#756783; }
.op-card-foot { display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;margin-top:12px; }
.op-card-foot .button { font-size:14px; }
.op-opportunity > footer { display:flex;align-items:center;justify-content:space-between;gap:16px;border-top:1px solid #eee8f3;padding:12px 16px;background:#fdfbff; }
.op-opportunity > footer > span { color:var(--muted);font-size:14px;line-height:1.7; }
.op-opportunity > footer .button { flex-shrink:0; }
.op-detail-downstream .op-product-card { display:grid;grid-template-columns:132px minmax(0,1fr);gap:5px 16px; }
.op-detail-downstream .op-card-label { grid-column:1/-1;margin-bottom:5px; }
.op-detail-downstream .op-product-image { grid-column:1;grid-row:2/6;aspect-ratio:1;max-height:132px;margin:0; }
.op-detail-downstream .op-title,.op-detail-downstream .op-card-source,.op-detail-downstream .op-observed-facts,.op-detail-downstream .op-product-card > small,.op-detail-downstream .op-product-card > a { grid-column:2; }
.op-detail-downstream .op-card-source { margin:0 0 8px; }
.op-candidate-visual { display:flex;gap:16px;align-items:flex-start;margin-top:14px; }
.op-candidate-visual .op-product-image { width:100px;aspect-ratio:1;flex-shrink:0;margin:0; }
.op-candidate-visual p { margin:0 0 7px;font-size:14px;color:var(--muted);line-height:1.7; }
.op-detail-analysis { margin-top:22px;border-top:1px solid var(--line);padding-top:15px; }
.op-detail-analysis > summary { cursor:pointer;font-size:16px;font-weight:600;margin-bottom:16px; }
.op-detail-analysis > .op-observed-facts { grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 22px;margin-bottom:18px; }
.op-analysis-rules,.op-collection-rules { margin:24px 0; }
.op-analysis-rules h3,.op-collection-rules h3 { font-size:16px;margin:0 0 16px; }
.op-analysis-rules { border:1px solid #ded2ee;border-radius:10px;padding:18px;background:#fcfaff; }
.op-source-evidence { font-size:14px;color:var(--muted);line-height:1.8;margin-top:13px; }
.op-rule-prompt .op-rule-note { margin-bottom:0; }
.op-suggestion { margin:0 0 24px;padding:18px;border:1px solid #cbb5e5;border-radius:10px;background:#f8f3ff; }
.op-suggestion .op-observed-facts { margin:14px 0; }
.op-suggestion .op-line strong { font-size:16px; }
.op-suggestion .actions { margin-top:16px; }
@media(max-width:1450px) {
  .op-source-cards { grid-template-columns:1fr; }
  .op-comparison { grid-template-columns:minmax(180px,1fr) minmax(0,1.3fr); }
}
@media(max-width:700px) {
  .op-comparison { grid-template-columns:1fr;padding:12px; }
  .op-results-grid { padding:0 12px 16px; }
  .op-opportunity > footer { align-items:flex-start;flex-direction:column; }
  .op-detail-downstream .op-product-card { grid-template-columns:90px minmax(0,1fr);gap:8px; }
  .op-detail-analysis > .op-observed-facts { grid-template-columns:1fr; }
  .op-suggestion .op-line { align-items:flex-start;flex-wrap:wrap; }
}
/* Display-only product sketches; all evidence remains in the source record. */
.op-product-card .op-product-image{aspect-ratio:4/3;max-height:none;height:auto;position:relative;flex-shrink:0}.op-product-image.is-illustration{position:relative;background:#f5f1ed}.op-product-image.is-illustration img{object-fit:contain;background:transparent}.op-illustration-label{position:absolute;left:9px;bottom:9px;padding:3px 8px;border:1px solid rgba(255,255,255,.85);border-radius:5px;background:rgba(255,255,255,.88);color:#6c626b;font-size:12px;line-height:1.5;font-weight:500;pointer-events:none}.op-candidate-visual .op-illustration-label{font-size:10px;padding:2px 4px;left:4px;bottom:4px}
.op-selection-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px;margin:0 0 18px;background:#f7f3ff;border:1px solid #e7ddfb;border-radius:10px;font-size:15px}
.op-product-pick{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:#653ec0;cursor:pointer}
.op-product-pick input{width:18px;height:18px;accent-color:#7344d4}
.op-product-pick:has(input:disabled){color:#8d8798;cursor:default}
.op-batch-review>p{margin:0 0 14px}.op-batch-review .actions{margin-top:20px}
