
.workspace { padding: 42px clamp(20px, 5vw, 72px) 82px; }
.workspace[data-state=input], .workspace[data-state=review], .workspace[data-state=analyzing], .workspace[data-state=results] {
  max-width: 1180px;
  margin: 0 auto;
  padding: 28px clamp(20px, 4vw, 48px) 52px;
}

.workspace-intro { max-width: 760px; margin-bottom: 16px; }
.workspace[data-state=results] .workspace-intro { display: none; }
.workspace-intro h1 { color: var(--ink); font: 600 var(--type-page-title)/1.16 var(--heading); letter-spacing: -.025em; }
.workspace-intro .helper { max-width: 660px; margin-top: 6px; font-size: 15px; }

.workspace-state { display: none; }
.workspace[data-state=input] .input-state,
.workspace[data-state=review] .review-state,
.workspace[data-state=analyzing] .analyzing-state,
.workspace[data-state=results] .results-state { display: block; }

.input-state { max-width: 760px; }
.input-card {
  padding: clamp(20px, 2.6vw, 26px);
  border: 1px solid var(--line);
  border-radius: 16px;
  background: var(--paper);
}
.input-card h2 { margin: 0 0 6px; color: var(--ink); font: 600 var(--type-subheading)/1.28 var(--heading); letter-spacing: -.01em; }

.mode-switch {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin: 18px 0 18px;
}
.mode-button {
  min-height: 42px;
  padding: 0 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: transparent;
  color: var(--muted);
  font-weight: 700;
}
.mode-button.active { border-color: var(--plum); background: var(--plum-soft); color: var(--plum); }
.input-mode { display: none; }
.input-mode.active { display: block; }

label { display: block; margin: 20px 0 8px; color: #302b25; font-size: 13px; font-weight: 600; }
textarea, select, input[type="text"] {
  width: 100%;
  border: 1px solid var(--line-strong);
  border-radius: 12px;
  background: #fffdf8;
  color: var(--ink);
  outline: none;
}
textarea { min-height: 184px; padding: 16px; line-height: 1.62; resize: vertical; }
select, input[type="text"] { min-height: 42px; padding: 8px 12px; }

.input-foot { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 20px; }
.input-foot .helper { max-width: 520px; font-size: 13px; }
.paste-submit { min-width: 178px; }
.paste-preview {
  margin-top: 16px;
  padding: 14px 16px;
  border-left: 3px solid var(--sage);
  border-radius: 0 10px 10px 0;
  background: var(--paper-sage);
}
.paste-preview[hidden] { display: none; }
.preview-label { color: var(--sage-dark); font-size: 12px; font-weight: 600; }
.paste-preview strong { display: block; margin-top: 4px; color: var(--ink); font: 600 18px/1.35 var(--heading); }
.paste-preview p { margin-top: 5px; color: var(--muted); font-size: 13px; }
.file-drop {
  position: relative;
  padding: 36px 22px;
  border: 1px dashed var(--sage);
  border-radius: 12px;
  background: rgba(229, 234, 223, .55);
  text-align: center;
}
.file-drop.dragover { background: #dbe6d5; }
.file-drop strong { color: var(--ink); font: 600 18px var(--heading); }
.file-drop p { margin-top: 6px; color: var(--muted); font-size: 12px; }
.file-select { margin-top: 16px; }
.file-input { display: none; }
.file-status { margin-top: 14px; color: var(--muted); font-size: 13px; }
.file-status[data-state=error] { color: var(--state-error); }
.file-status[data-state=ready] { color: var(--state-success); }

.advanced {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.advanced summary, .context-edit summary, .claim-details summary {
  cursor: pointer;
  color: var(--plum);
  font-weight: 600;
  list-style: none;
}
.advanced summary::before, .context-edit summary::before { content: '+ '; }
.advanced[open] summary::before, .context-edit[open] summary::before { content: '- '; }
.advanced-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 8px; }
.advanced-grid label { margin-top: 12px; }
.input-note { margin-top: 16px; color: var(--muted); font-size: 12px; }

.inline-error, .selection-error, .truncation-note, .context-note, .r2a-warnings, .analysis-note {
  padding: 13px 16px;
  border-left: 4px solid var(--ochre);
  border-radius: 0 16px 16px 0;
  background: #f3e8d6;
  color: #40372d;
  font-size: 14px;
  line-height: 1.55;
}
.inline-error { display: none; margin: 20px 0; border-left-color: var(--state-error); background: var(--state-error-50); }
.inline-error.show { display: block; }
.inline-error b, .r2a-warnings b { display: block; color: var(--ink); margin-bottom: 3px; }
.truncation-note, .context-note, .r2a-warnings { margin-bottom: 22px; }
.r2a-warnings { border-left-color: var(--sage); background: var(--paper-sage); }
.r2a-warnings span { display: block; }

.review-header, .analyzing-header, .results-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 28px;
  margin-bottom: 22px;
}
.review-header, .analyzing-header { gap: 22px; margin-bottom: 16px; }
.review-header h2 { margin: 0; color: var(--ink); font: 600 var(--type-heading)/1.2 var(--heading); letter-spacing: -.018em; }
.analyzing-header h2 { margin: 0; color: var(--ink); font: 600 var(--type-subheading)/1.24 var(--heading); letter-spacing: -.014em; }
.results-header h2 { margin-top: 8px; color: var(--ink); font: 600 var(--type-results-title)/1.14 var(--heading); }
.review-file, .analysis-summary { max-width: 420px; color: var(--muted); text-align: right; font-size: 12px; line-height: 1.6; }

.summary-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 16px 0 28px;
  border-block: 1px solid var(--line);
}
.summary-item { min-height: 64px; padding: 12px 14px; color: var(--muted); font-size: 12px; }
.summary-item + .summary-item { border-left: 1px solid var(--line); }
.summary-item b { display: block; margin-bottom: 3px; color: var(--ink); font: 600 18px/1.2 var(--heading); }

.confirmation-panel {
  margin: 0 0 28px;
  padding: 0;
  border: 0;
  background: transparent;
}
.confirmation-head { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; }
.confirmation-head h3 { color: var(--ink); font: 600 24px/1.25 var(--heading); letter-spacing: -.015em; }
.confirmation-head > p { max-width: 430px; color: var(--muted); font-size: 13px; }
.confirmation-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0; margin-top: 16px; border-block: 1px solid var(--line); }
.confirmation-item { min-height: 76px; padding: 12px; }
.confirmation-item + .confirmation-item { border-left: 1px solid var(--line); }
.confirmation-item span { display: block; color: var(--muted); font-size: 11px; }
.confirmation-item strong { display: block; margin-top: 6px; color: var(--ink); font-size: 13px; line-height: 1.45; }
.edit-paste { display: block; margin-top: 8px; font-size: 12px; }

.review-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; align-items: start; }
.context-panel, .claims-panel, .selection-panel {
  padding: 20px 0;
  border: 0;
  border-top: 1px solid var(--line);
  border-radius: 0;
  background: transparent;
}
.context-panel { margin-bottom: 20px; }
.context-head { display: flex; justify-content: space-between; gap: 18px; }
.context-head h3, .claims-head h3, .selection-panel h3 { color: var(--ink); font: 600 23px/1.25 var(--heading); letter-spacing: -.015em; }
.context-head p, .claims-head p { margin-top: 5px; color: var(--muted); font-size: 13px; }
.claims-selection { margin-bottom: 8px; color: var(--sage-dark); font-size: 12px; }
.context-grid { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.context-value {
  padding: 8px 10px;
  border: 1px solid rgba(111,132,105,.38);
  border-radius: 8px;
  background: rgba(229, 234, 223, .65);
  color: var(--ink);
  font-size: 13px;
}
.context-value small { margin-right: 6px; color: var(--sage-dark); font-size: 10px; }
.context-value.user { border-color: rgba(111,45,97,.35); background: var(--plum-soft); }
.context-value.user small { color: var(--plum); }
.context-empty { margin-top: 12px; color: var(--muted); }
.context-edit { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.context-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; margin-top: 6px; }
.context-actions { grid-column: 1 / -1; display: flex; gap: 10px; margin-top: 14px; }

.claims-head { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; margin-bottom: 8px; }
.claims-list { display: grid; gap: 12px; }
.claim-card {
  padding: 18px 0 20px;
  border-bottom: 1px solid var(--line);
}
.claim-card:last-child { border-bottom: 0; padding-bottom: 0; }
.claim-main { display: flex; gap: 14px; align-items: flex-start; }
.claim-main input { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 6px; accent-color: var(--plum); }
.claim-body { min-width: 0; }
.claim-label { margin-bottom: 6px; color: var(--sage-dark); font-size: 12px; font-weight: 600; }
.result-label, .action-label { margin-bottom: 6px; color: var(--sage-dark); font: 500 10px var(--label-font); letter-spacing: .1em; text-transform: uppercase; }
.claim-text { margin: 0; color: var(--ink); font: 600 20px/1.45 var(--body-font); }
.claim-badges { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.claim-badge { padding: 4px 7px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); font-size: 11px; }
.claim-badge.risk-high { border-color: rgba(168,72,64,.42); color: var(--state-error); background: var(--state-error-50); }
.claim-badge.risk-medium { border-color: rgba(173,123,47,.42); color: var(--ochre); background: var(--state-warning-50); }
.claim-location { margin-top: 9px; color: var(--muted); font-size: 13px; }
.claim-details { margin-top: 10px; }
.claim-details summary { color: var(--sage-dark); font-size: 13px; }
.reason-list { margin-top: 8px; padding-left: 13px; border-left: 3px solid var(--sage); color: var(--muted); font-size: 13px; }
.reason-list span { display: block; margin-bottom: 3px; }

.selection-panel { position: sticky; top: 96px; padding: 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
.selection-count { margin: 14px 0 6px; color: var(--ink); font: 600 28px/1.15 var(--heading); letter-spacing: -.02em; }
.selection-panel .button { width: 100%; margin-top: 20px; }
.selection-panel .button:disabled { opacity: .45; transform: none; box-shadow: none; }
.selection-rule { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 1.6; }
.external-consent { display: flex; gap: 10px; align-items: flex-start; margin: 16px 0 0; color: #40372d; font-size: 12px; line-height: 1.55; }
.external-consent input { flex: 0 0 auto; width: 16px; height: 16px; margin-top: 2px; accent-color: var(--plum); }
.selection-error { display: none; margin-top: 16px; border-left-color: var(--state-error); background: var(--state-error-50); }
.selection-error.show { display: block; }
.no-claims { padding: 24px; border: 1px dashed var(--line-strong); border-radius: 14px; color: var(--muted); }
.no-claims b { display: block; margin-bottom: 7px; color: var(--ink); font: 600 22px var(--heading); }
.no-claims .button { margin-top: 15px; }

.job-list { display: grid; gap: 12px; margin-top: 16px; }
.job-row {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 210px;
  gap: 18px;
  align-items: start;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--paper);
}
.job-number { color: var(--plum); font: 500 12px var(--caption-font); }
.job-claim { color: var(--ink); font: 600 19px/1.45 var(--body-font); }
.job-meta { margin-top: 7px; color: var(--muted); font-size: 13px; }
.job-status { color: var(--muted); text-align: right; font-size: 12px; line-height: 1.5; }
.job-status.active { color: var(--plum); }
.job-status.complete { color: var(--sage-dark); }
.job-status.error { color: var(--state-error); }
.stage-list { display: flex; justify-content: flex-end; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.stage-chip { padding: 3px 6px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); font-size: 10px; }
.stage-chip.active { border-color: var(--plum); color: var(--plum); background: var(--plum-soft); }
.stage-chip.done { border-color: rgba(111,132,105,.5); color: var(--sage-dark); background: var(--paper-sage); }
.analysis-note { margin-top: 20px; border-left-color: var(--sage); background: var(--paper-sage); }

.results-header { align-items: flex-start; margin-bottom: 16px; }
.results-kicker { margin-bottom: 6px; color: var(--sage-dark); font: 600 12px/1.4 var(--label-font); }
.results-header h1 { margin: 0; color: var(--ink); font: 600 var(--type-results-title)/1.14 var(--heading); letter-spacing: -.024em; }
.results-header .helper { max-width: 680px; margin-top: 8px; font-size: 15px; }
.results-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
.result-summary { display: block; margin: 16px 0 20px; }
.decision-summary {
  display: grid;
  grid-template-columns: minmax(260px, .72fr) minmax(0, 1.28fr);
  gap: 20px;
  align-items: center;
  padding: 14px 0;
  border-block: 1px solid var(--line);
}
.decision-summary > div:first-child p:not(.result-label) { max-width: 520px; color: var(--muted); font-size: 14px; line-height: 1.55; }
.decision-summary .result-label, .result-card .result-label { margin-bottom: 6px; color: var(--sage-dark); font: 600 12px/1.4 var(--label-font); letter-spacing: 0; text-transform: none; }
.action-summary { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; padding: 0; border: 0; border-radius: 0; background: transparent; }
.action-count { display: inline-flex; align-items: baseline; gap: 6px; padding-bottom: 5px; border-bottom: 1px solid rgba(111, 132, 105, .36); color: var(--muted); font-size: 12px; }
.action-count b { color: var(--ink); font: 600 19px/1 var(--heading); font-variant-numeric: tabular-nums; }
.action-count.retry { border-bottom-color: rgba(168, 72, 64, .42); }
.result-list { display: grid; gap: 16px; }
.result-card {
  display: grid;
  gap: 16px;
  padding: 22px 24px 20px;
  border: 1px solid var(--line);
  border-radius: 18px;
  background: rgba(255, 250, 240, .72);
}
.result-claim { max-width: 900px; color: var(--ink); font: 600 var(--type-subheading)/1.42 var(--body-font); }
.result-location, .result-source { margin-top: 8px; color: var(--muted); font-size: 12px; line-height: 1.55; }
.result-decision {
  padding: 14px 16px;
  border-left: 4px solid var(--sage);
  border-radius: 0 14px 14px 0;
  background: var(--paper-sage);
}
.result-decision-row { display: flex; align-items: baseline; gap: 10px 14px; flex-wrap: wrap; }
.result-decision-row p { color: #443b31; line-height: 1.55; }
.result-reason p { max-width: 840px; color: #443b31; line-height: 1.62; }
.result-evidence { max-width: 900px; padding: 15px 17px; border-left: 4px solid var(--sage); border-radius: 0 16px 16px 0; background: var(--paper-sage); color: var(--ink); }
.result-evidence blockquote { margin: 0; color: var(--ink); font: 500 18px/1.55 var(--body-font); }
.result-evidence.none { border: 1px dashed var(--line-strong); background: transparent; color: var(--muted); }
.result-evidence.none p:not(.result-label) { color: var(--muted); line-height: 1.58; }
.result-next-actions { display: flex; flex-wrap: wrap; gap: 9px; align-items: center; }
.result-next-note { color: var(--muted); font-size: 13px; }
.result-audit { padding-top: 14px; border-top: 1px solid var(--line); color: var(--muted); }
.result-audit summary { cursor: pointer; color: var(--muted); font-size: 12px; font-weight: 600; }
.result-audit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 16px; margin: 12px 0 0; }
.result-audit-grid div { min-width: 0; }
.result-audit-grid .wide { grid-column: 1 / -1; }
.result-audit-grid dt { color: var(--sage-dark); font-size: 11px; font-weight: 600; }
.result-audit-grid dd { margin: 3px 0 0; overflow-wrap: anywhere; color: var(--muted); font: 500 11px/1.6 var(--caption-font); }
.result-error { margin-top: 14px; padding: 14px 16px; border-left: 4px solid var(--state-error); border-radius: 0 16px 16px 0; background: var(--state-error-50); color: #3f332d; }
.retry-button { margin-top: 12px; }
.result-empty { padding: 30px 0; color: var(--muted); }

@media (max-width: 1040px) {
  .summary-strip { grid-template-columns: repeat(3, minmax(120px, 1fr)); }
  .review-grid { grid-template-columns: 1fr; }
  .decision-summary { grid-template-columns: 1fr; align-items: start; }
  .result-audit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .selection-panel { position: static; order: -1; }
}

@media (max-width: 720px) {
  .workspace { padding-inline: 18px; }
  .workspace[data-state=input], .workspace[data-state=review], .workspace[data-state=analyzing], .workspace[data-state=results] { padding: 22px 18px 44px; }
  .workspace-intro, .review-header, .analyzing-header, .results-header { display: block; }
  .workspace-intro { margin-bottom: 14px; }
  .workspace-intro .helper, .review-file, .analysis-summary { margin-top: 8px; text-align: left; }
   .input-card { padding: 18px; border-radius: 14px; }
   .selection-panel { padding: 20px; border-radius: 14px; }
   .confirmation-head { display: block; }
   .confirmation-head > p { margin-top: 8px; }
  .input-foot { display: block; }
  .paste-submit { width: 100%; margin-top: 16px; }
   .advanced-grid, .context-form, .summary-strip, .confirmation-grid { grid-template-columns: 1fr; }
   .summary-item + .summary-item, .confirmation-item + .confirmation-item { border-left: 0; border-top: 1px solid var(--line); }
  .context-actions, .results-actions { flex-direction: column; align-items: stretch; }
  .job-row { grid-template-columns: 34px minmax(0, 1fr); padding: 18px; }
  .job-status { grid-column: 2; text-align: left; }
  .stage-list { justify-content: flex-start; }
   .results-header h1 { font-size: 28px; line-height: 1.2; }
  .decision-summary { gap: 14px; }
  .result-card { padding: 18px; border-radius: 14px; }
  .result-decision { padding: 13px 14px; }
  .result-decision-row { display: block; }
  .result-decision-row p { margin-top: 8px; }
  .result-next-actions { flex-direction: column; align-items: stretch; }
  .result-next-actions .button, .result-next-actions .text-button { width: 100%; text-align: center; }
  .result-audit-grid { grid-template-columns: 1fr; }
}

/* C-2 triage panel: per-sentence citation-need chips (risk hints, not error counts). */
.triage-panel { margin: 0 0 20px; padding: 16px 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.triage-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; margin-bottom: 10px; }
.triage-head h2 { margin: 0; font-size: var(--type-subheading, 17px); }
.triage-summary { margin: 0; color: var(--muted); font-size: 13px; }
.triage-list { display: grid; gap: 8px; }
.triage-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 14px; align-items: start; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--ivory, #fff); }
.triage-row p { margin: 0; }
.triage-text { font-size: 14px; line-height: 1.6; }
.triage-reason { color: var(--muted); font-size: 12px; line-height: 1.5; }
.triage-question { color: var(--sage-dark); font-size: 12px; line-height: 1.5; }
.triage-side { display: grid; gap: 6px; justify-items: end; }
.triage-chip { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; line-height: 1.6; border: 1px solid var(--line); color: var(--muted); white-space: nowrap; }
.triage-chip.need { color: var(--plum); border-color: var(--plum); }
.triage-chip.review { color: var(--state-error); border-color: var(--state-error); }
.triage-chip.has { color: var(--sage-dark); border-color: var(--sage-dark); }
.triage-fold summary { cursor: pointer; color: var(--muted); font-size: 13px; padding: 6px 0; }
.triage-note { margin: 10px 0 0; color: var(--muted); font-size: 12px; }

/* C-3 judgement card: recommendation cards inside the evidence section. */
.rec-list { display: grid; gap: 10px; margin-top: 6px; }
.rec-card { padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--ivory, #fff); }
.rec-card.adopted { border-color: var(--plum); box-shadow: inset 3px 0 0 var(--plum); }
.rec-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 6px; }
.rec-rank { font-size: 12px; font-weight: 600; color: var(--muted); letter-spacing: 0.02em; }
.rec-adopted { margin-left: auto; font-size: 12px; color: var(--plum); font-weight: 600; }
.support-chip { display: inline-block; padding: 2px 8px; border-radius: 999px; font-size: 12px; line-height: 1.6; border: 1px solid var(--line); color: var(--muted); }
.support-chip.support { color: var(--sage-dark); border-color: var(--sage-dark); }
.support-chip.partial { color: var(--plum); border-color: var(--plum); }
.support-chip.contradict { color: var(--state-error); border-color: var(--state-error); }
.support-chip.metadata { color: var(--muted); border-style: dashed; }
.rec-title { margin: 0 0 2px; font-size: 15px; line-height: 1.5; font-weight: 600; }
.rec-meta { margin: 0 0 8px; font-size: 12px; line-height: 1.5; color: var(--muted); }
.rec-meta a { color: var(--sage-dark); text-decoration: underline; }
.rec-why { margin: 0 0 8px; font-size: 13px; line-height: 1.6; }
.rec-why-source { color: var(--muted); font-size: 12px; }
.rec-span { margin: 0 0 10px; padding: 8px 12px; border-left: 3px solid var(--sage-dark); background: var(--paper); font-size: 13px; line-height: 1.6; }
.rec-span.none { border-left-color: var(--line); color: var(--muted); border-left-style: dashed; }
.rec-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.result-card-dismissed { opacity: 0.75; }

/* C-3.5 library context inside triage rows. */
.triage-library { color: var(--sage-dark); font-size: 12px; line-height: 1.6; }
.triage-library.missing { color: var(--muted); }
.triage-library a { color: var(--plum); text-decoration: underline; }
.triage-verify { margin-top: 6px; font-size: 12px; line-height: 1.6; }
.triage-verify q { color: var(--ink); }

/* C-3b cloud run list on the history page. */
.cloud-runs { display: grid; gap: 8px; margin-bottom: 18px; }
.cloud-run { display: grid; gap: 2px; padding: 12px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--ivory, #fff); color: var(--ink); text-decoration: none; }
.cloud-run b { font-size: 14px; line-height: 1.5; }
.cloud-run span { font-size: 12px; color: var(--muted); }
.cloud-run:hover { border-color: var(--plum); }
