/* Spec Lab workspace. Shared reader styling remains in style.css. */
body.workspace-app {
  --ink:#20242c; --muted:#505967; --line:#e5e7eb; --soft:#f8f9fa;
  --green:#5146a4; --pale:#eeecf8; --amber:#945500; --red:#984343;
  --accent:#5146a4; --accent-hover:#42388c; --rail:#f7f7f5; --radius:7px;
  --rail-width:210px;
  min-height:100vh; margin:0; padding-left:var(--rail-width);
  background:#fff; color:var(--ink); font-size:14px; line-height:1.6;
}
.workspace-app a { color:var(--accent); }
.workspace-app :is(button,a,input,select,textarea,summary,[tabindex]):focus-visible {
  outline:2px solid var(--accent); outline-offset:3px;
}
.workspace-app :is(button,a,input,select,textarea,summary) { touch-action:manipulation; }
.workspace-app ::selection { background:#ddd8f5; }
.workspace-app h1 { font-size:25px; line-height:1.3; font-weight:650; letter-spacing:-.025em; }
.workspace-app h2 { font-size:21px; line-height:1.35; }
.workspace-app h3 { font-size:15px; }
.workspace-app h4 { font-size:13px; }
.workspace-app :is(p,li,td,th) { overflow-wrap:anywhere; }
.workspace-app .skip { position:fixed; left:calc(var(--rail-width) + 16px); z-index:40; }
.workspace-app :is(.lab-header,.workspace-bar,.plan-heading,.plan-index) { display:none; }

/* Persistent navigation, with quiet utilities below the document views. */
.workspace-rail {
  position:fixed; inset:0 auto 0 0; z-index:20; width:var(--rail-width);
  display:flex; flex-direction:column; overflow-y:auto; padding:25px 13px 15px;
  background:var(--rail); border-right:1px solid var(--line);
}
.workspace-brand { display:block; padding:0 10px 24px; text-decoration:none; color:var(--ink)!important; font-size:25px; font-weight:750; letter-spacing:-1px; }
.workspace-brand>span { display:block; margin-top:4px; color:var(--muted); font-size:9px; font-weight:600; letter-spacing:1.3px; line-height:1.5; text-transform:uppercase; }
.workspace-brand small { display:block; margin-top:3px; color:var(--muted); font-size:9px; font-weight:600; letter-spacing:1.3px; text-transform:uppercase; }
.rail-project { display:flex; align-items:center; gap:10px; padding:12px 10px; margin-bottom:15px; border:1px solid #e1e2de; border-radius:6px; background:#f0f1ed; font-size:12px; font-weight:600; overflow-wrap:anywhere; }
.rail-project>div { min-width:0; }
.rail-project>div strong { display:block; font-size:12px; }
.rail-project>div>span { display:block; color:var(--muted); font-size:10px; font-weight:400; margin-top:2px; }
.project-monogram { display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; border:1px solid #d9dbd9; border-radius:6px; color:#6c736b; background:#e8ebe5; font-size:13px; }
.rail-project small { display:block; margin-top:3px; font-size:10px; color:var(--muted); font-weight:400; }
.rail-label { padding:15px 10px 8px; margin:0; font-size:10px; letter-spacing:1px; text-transform:uppercase; color:var(--muted); font-weight:600; }
.workspace-nav { display:flex; flex-direction:column; gap:3px; }
.workspace-nav button {
  display:flex; align-items:center; gap:10px; width:100%; min-height:38px;
  padding:9px 10px; border:1px solid transparent; border-radius:5px;
  background:transparent; color:#5d6370; font-size:12px; font-weight:500; text-align:left;
}
.workspace-nav button:hover:not(:disabled) { background:#ebedee; color:var(--ink); }
.workspace-nav button[aria-current="page"],.workspace-nav button[aria-current="true"],.workspace-nav button[aria-selected="true"] {
  background:var(--pale); color:var(--accent); font-weight:650;
}
.nav-icon { display:inline-flex; align-items:center; justify-content:center; width:17px; height:17px; flex:0 0 17px; font-size:14px; }
.nav-icon svg { width:17px; height:17px; }
.nav-count { margin-left:auto; min-width:20px; padding:0 5px; border-radius:4px; font-size:11px; line-height:20px; color:var(--muted); font-variant-numeric:tabular-nums; text-align:center; }
.nav-count.attention { color:#825012; background:#f2e3c6; }
.workspace-nav button[aria-current] .nav-count { color:inherit; }
.rail-tools { margin-top:auto; padding:22px 8px 0; display:flex; flex-direction:column; align-items:stretch; gap:5px; }
.rail-tools :is(button,a) { padding:7px 2px; min-height:32px; border:0; background:transparent; text-align:left; font-size:11px; font-weight:500; color:var(--muted); justify-content:flex-start; text-decoration:none; }
.rail-tools :is(button,a):hover { color:var(--accent); text-decoration:underline; }
.rail-tools p { margin:5px 0; font-size:10px; line-height:1.6; color:var(--muted); }

.rail-identity { padding:15px 10px 0; margin-top:14px; border-top:1px solid var(--line); font-size:11px; font-weight:550; }
.rail-identity>span { display:block; margin-top:3px; color:var(--muted); font-size:10px; font-weight:400; }
.workspace-inactive { display:none!important; }
.workspace-app .intro>.eyebrow,.workspace-app .intro>h1,.workspace-app .lab-footer,.workspace-app .site-links { display:none; }

/* Package title and controls are distinct from the selected view's heading. */
.workspace-header { padding:18px 30px 20px; border-bottom:1px solid var(--line); background:#fff; min-width:0; }
.workspace-breadcrumb { display:flex; align-items:center; flex-wrap:wrap; gap:8px; min-height:20px; font-size:11px; color:var(--muted); }
.workspace-breadcrumb a { color:var(--muted); text-decoration:none; }
.workspace-breadcrumb a:hover { color:var(--accent); }
.workspace-title-row { display:flex; align-items:center; justify-content:space-between; gap:18px; padding-top:13px; }
.workspace-title-row>div { min-width:0; }
#workspace-title { margin:0; overflow-wrap:anywhere; }
#workspace-meta { margin:7px 0 0; color:var(--muted); font-size:11px; line-height:1.6; }
#workspace-status { margin-left:auto; text-align:right; max-width:45%; color:var(--amber); font-size:11px; }
#workspace-status:empty { display:none; }
.workspace-header-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.workspace-header-actions .report-toolbar { max-width:none; }
.workspace-header-actions .export-actions { justify-content:flex-end; }
.workspace-header-actions #report-status { font-size:11px; max-width:360px; }
.workspace-app .primary { background:var(--accent); border-color:var(--accent); }
.workspace-app .primary:hover:not(:disabled) { background:var(--accent-hover); border-color:var(--accent-hover); }
.workspace-app :is(.primary,.secondary) { min-height:35px; padding:7px 12px; border-radius:6px; font-size:12px; font-weight:550; }
.workspace-app .secondary { background:#fff; border-color:#d3d7dd; }
.workspace-app .secondary:hover:not(:disabled) { background:#f5f6f8; border-color:#bec3cc; }
.workspace-app .more-exports { margin:0; }
.workspace-app .more-exports>summary { min-height:35px; padding:7px 11px; font-size:12px; }
.workspace-app .more-exports>div { z-index:30; top:41px; }
.workspace-app .lab-shell { width:100%; max-width:1600px; margin:0; padding:25px 30px 36px; min-height:calc(100vh - 174px); }
.workspace-app .stage { padding:0; }
.workspace-view-heading { margin:0 0 23px; }
.workspace-view-heading h2 { font-size:21px; }
.workspace-view-heading p { margin:5px 0 0; font-size:12px; color:var(--muted); max-width:860px; }
.workspace-app .intro { padding:0 0 23px; max-width:780px; }
.workspace-app .intro h1 { font-size:25px; }
.workspace-app .intro>p:last-child { margin-top:9px; font-size:13px; }
.workspace-app .source-grid { grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr); gap:32px; max-width:1200px; }
.workspace-app .section-top h2 { font-size:16px; }
.workspace-app #spec { font-size:13px; min-height:320px; line-height:1.7; }
.workspace-app textarea { padding:12px; border-color:#d3d7dd; }
.workspace-app .start-aside { background:#fafafa; border-color:var(--line); border-radius:7px; padding:20px; }
.workspace-app .start-aside h2 { font-size:20px; }
.workspace-app .example-table { font-size:12px; }
.workspace-app .saved-drafts { background:#fafafa; margin-top:0; }
.workspace-app .eyebrow { font-size:10px; letter-spacing:1px; }

/* Review: a focused decision queue and the selected question. */
.workspace-app .inline-analysis { margin:0 0 22px; }
.workspace-app .stage-heading { margin-bottom:18px; }
.workspace-app .stage-heading h2 { font-size:21px; }
.workspace-app .stage-heading p:not(.eyebrow) { font-size:12px; }
.decision-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:30px; align-items:start; }
.decision-layout.single-decision { grid-template-columns:minmax(0,1fr); }
.decision-index { padding-right:18px; border-right:1px solid var(--line); min-width:0; }
.decision-index button { display:block; width:100%; min-height:44px; padding:12px; margin:0 0 8px; border:1px solid transparent; border-radius:6px; background:transparent; text-align:left; font-size:12px; font-weight:550; line-height:1.5; overflow-wrap:anywhere; }
.decision-index button:hover { background:var(--soft); }
.decision-index button[aria-current="true"] { background:var(--pale); border-color:#e1dcf3; color:var(--accent); font-weight:650; }
.decision-index button span,.decision-index button small { display:block; margin-top:5px; font-size:10px; font-weight:400; color:var(--muted); }
.decision-index>p { font-size:11px; color:var(--muted); padding:0 10px; }
.workspace-app #question-list { min-width:0; max-width:1000px; }
.workspace-app .question { padding:0 0 22px; background:#fff; border:0; border-bottom:1px solid var(--line); border-radius:0; margin-bottom:22px; }
.workspace-app .question label { font-size:20px; line-height:1.45; letter-spacing:-.02em; font-weight:650; max-width:840px; }
.workspace-app .question .small { font-size:12px; color:var(--muted); max-width:820px; }
.workspace-app .question textarea { min-height:86px; font-size:13px; background:#fff; }
.workspace-app .question-alternatives { gap:10px; margin:18px 0 12px; }
.workspace-app .question-option { border:1px solid #d3d7dd; padding:13px; border-radius:6px; gap:5px; }
.workspace-app .question-option:hover { background:#faf9fc; border-color:#bcb5d9; }
.workspace-app .question-option[aria-pressed="true"] { border-color:#9080c6; background:#f6f3fc; box-shadow:0 0 0 1px #9080c630; }
.workspace-app .question-option[aria-pressed="true"] strong { color:var(--accent); }
.workspace-app .question-option strong { font-size:12px; font-weight:650; line-height:1.5; }
.workspace-app .question-option span { font-size:11px; }
.workspace-app .source-conflict-rule { border-left-color:#d1c9e6; font-size:12px; }
.workspace-app .source-conflict-evidence { gap:18px; margin:16px 0; }
.workspace-app .report-overview { padding:12px 14px; border-color:#e2dcf1; background:#f8f6fc; border-radius:6px; font-size:12px; }
.workspace-app .report-overview:has(.model-blocker-notice) { border-color:#efd7a6; background:#fff8e9; }
.workspace-app .model-notice { border-color:#e2dcf1; background:#f8f6fc; font-size:12px; }
.workspace-app .model-notice p { font-size:12px; }
.workspace-app .error { border-left-color:var(--red); background:#fbf0f0; font-size:12px; }
.workspace-app #answers-form>.actions { padding-top:4px; }

/* Preserve the live analysis and native evidence, at document density. */
.workspace-app .progress-panel { padding:17px 18px; border-radius:7px; }
.workspace-app .progress-heading { font-size:13px; }
.workspace-app .progress-stages [data-current=true] strong { color:var(--accent); }
.workspace-app .progress-stages [data-current=true] { background:var(--pale); }
.workspace-app .progress-events { font-family:inherit; font-size:12px; }
.workspace-app .progress-events code { font-size:11px; }
.workspace-app .progress-events li { padding:5px 0; }
.workspace-app .report-layout { display:block; margin-top:0; }
.workspace-app .report-content>.plan-section { padding-bottom:24px; margin-bottom:22px; }
.workspace-app .plan-section>h3 { font-size:18px; }
.workspace-app .section-intro { font-size:12px; margin:7px 0 15px; }
.workspace-app :is(.advanced-report,.behavior-review) { padding:14px 16px; background:#fafafa; border-radius:6px; }
.workspace-app :is(.advanced-report,.behavior-review)>summary { font-size:12px; }
.workspace-app .report-subsection { margin:18px 0; }
.workspace-app .report-subsection>h4 { font-size:13px; }
.workspace-app .table-wrap { border-radius:6px; margin-top:12px; }
.workspace-app table { font-size:12px; line-height:1.6; }
.workspace-app th,.workspace-app td { padding:10px 12px; }
.workspace-app thead th { background:#f8f9fa; color:var(--muted); font-size:10px; font-weight:600; }
.workspace-app tbody tr:hover { background:#fafafc; }
.workspace-app .report-table td h4 { font-size:12px; }
.workspace-app .report-table td p,.workspace-app .acceptance-cases td { font-size:12px; }
.workspace-app .numeric-cases td:last-child { font-weight:600; }
.workspace-app tr.selected { background:#f2eefb; }
.workspace-app .pair-controls button[aria-pressed="true"] { background:var(--accent); border-color:var(--accent); }
.workspace-app .assignment-card>h4 { font-size:14px; }
.workspace-app .formula-input,.workspace-app .formal-rule { background:#f5f4f8; color:#493b63; }
.workspace-app .metrics { padding:0; background:transparent; gap:12px; }
.workspace-app .metric { border:1px solid var(--line); border-radius:6px; padding:14px 16px; }
.workspace-app .metric strong { font-size:26px; font-weight:600; letter-spacing:-.04em; }
.workspace-app .metric span { font-size:11px; }
.workspace-app .next-step { padding-top:20px; margin-top:24px; }
.workspace-app .next-step h3 { font-size:15px; }
.workspace-app .next-step p:not(.eyebrow) { font-size:12px; }
.workspace-footer { border-top:1px solid var(--line); padding:10px 30px; display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 18px; background:#fdfdfd; font-size:10px; color:var(--muted); }
.workspace-footer p { margin:0; }
.workspace-footer a { color:var(--muted); }
.workspace-app .lab-footer { font-size:10px; padding:13px 0; }
.workspace-app .delete-dialog { border-radius:9px; }
.workspace-app .delete-dialog h2 { font-size:21px; }
.workspace-app .delete-message { font-size:13px; }

@media(min-width:1600px) {
  .workspace-app .lab-shell { padding-right:50px; }
}
@media(max-width:1120px) {
  body.workspace-app { --rail-width:190px; }
  .workspace-header { padding-inline:24px; }
  .workspace-app .lab-shell { padding-inline:24px; }
  .workspace-title-row { align-items:flex-start; }
  .workspace-header-actions { max-width:310px; }
  .decision-layout { grid-template-columns:180px minmax(0,1fr); gap:22px; }
  .workspace-app .source-grid { grid-template-columns:minmax(0,1fr); }
  .workspace-app .start-aside { max-width:none; }
  .workspace-app .source-conflict-evidence { grid-template-columns:1fr; }
}
@media(max-width:800px) {
  body.workspace-app { padding-left:0; }
  .workspace-rail { position:static; width:auto; padding:14px 18px 10px; border-right:0; border-bottom:1px solid var(--line); overflow:visible; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px 14px; }
  .workspace-brand { padding:0; font-size:23px; align-self:center; }
  .workspace-brand>span,.workspace-brand small { display:inline; margin-left:10px; font-size:8px; }
  .rail-project { margin:0; padding:6px 9px; font-size:11px; max-width:220px; }
  .rail-project small { font-size:9px; }
  .rail-label { display:none; }
  .workspace-nav { grid-column:1/-1; flex-direction:row; flex-wrap:wrap; gap:4px; }
  .workspace-nav button { width:auto; min-height:38px; padding:7px 9px; gap:6px; font-size:11px; }
  .nav-count { margin-left:2px; font-size:10px; min-width:16px; padding:0 3px; }
  .rail-tools { grid-column:1/-1; flex-direction:row; flex-wrap:wrap; padding:0; gap:4px 16px; margin:0; }
  .rail-tools p,.rail-identity { display:none; }
  .rail-tools :is(button,a) { font-size:10px; min-height:28px; padding:3px 0; }
  .workspace-header { padding:15px 20px 18px; }
  .workspace-title-row { flex-wrap:wrap; gap:12px; }
  .workspace-header-actions { max-width:none; justify-content:flex-start; }
  .workspace-header-actions .export-actions { justify-content:flex-start; }
  .workspace-app .lab-shell { padding:22px 20px 30px; min-height:calc(100vh - 270px); }
  .workspace-app .skip { left:12px; }
  .decision-layout { grid-template-columns:1fr; gap:20px; }
  .decision-index { display:flex; gap:8px; flex-wrap:wrap; padding:0 0 14px; border-right:0; border-bottom:1px solid var(--line); }
  .decision-index button { flex:1 1 180px; width:auto; margin:0; }
  .decision-index>p { width:100%; margin:0; padding:0; }
  .workspace-footer { padding-inline:20px; }
}
@media(max-width:600px) {
  .workspace-brand>span,.workspace-brand small { display:block; margin:2px 0 0; }
  .workspace-rail { padding-inline:14px; }
  .workspace-nav button { min-height:40px; padding-inline:8px; }
  .nav-icon { width:14px; height:14px; flex-basis:14px; }
  .workspace-header { padding:14px 16px 17px; }
  .workspace-title-row h1 { font-size:22px; }
  #workspace-status { max-width:58%; font-size:10px; }
  .workspace-header-actions { width:100%; }
  .workspace-header-actions :is(.primary,.secondary),.workspace-app .more-exports>summary { min-height:40px; font-size:11px; }
  .workspace-app .more-exports>div { right:0; max-width:calc(100vw - 32px); }
  .workspace-app .lab-shell { padding:20px 16px 26px; }
  .workspace-app .intro h1 { font-size:23px; }
  .workspace-app .intro>p:last-child { font-size:13px; }
  .workspace-app #spec,.workspace-app .question textarea { font-size:16px; }
  .workspace-app #spec { min-height:270px; }
  .workspace-app .question label { font-size:18px; line-height:1.5; }
  .workspace-app .question-alternatives { grid-template-columns:1fr; }
  .workspace-app .question-option { min-height:48px; padding:12px; }
  .workspace-app .question-option strong { font-size:13px; }
  .workspace-app .question-option span { font-size:12px; }
  .workspace-app .source-conflict-evidence { gap:12px; }
  .workspace-app .progress-stages { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .workspace-app .progress-stages strong { font-size:10px; }
  .workspace-app .live-preview-grid { grid-template-columns:1fr; }
  .workspace-app .numeric-cases td,.workspace-app .risk-scenarios-table td,.workspace-app .acceptance-cases td { padding:6px 0; }
  .workspace-app .numeric-cases td:last-child { background:#f7f4fc; padding:9px; }
  .workspace-app .risk-scenarios-table td { padding-inline:12px; }
  .workspace-app .metrics { gap:7px; }
  .workspace-app .metric { padding:10px; }
  .workspace-app .metric strong { font-size:22px; }
  .workspace-app .metric span { font-size:10px; }
  .workspace-app .result-head { gap:12px; }
  .workspace-app .count-pill { min-width:76px; padding:8px; }
  .workspace-footer { padding-inline:16px; }
}
@media(prefers-reduced-motion:reduce) {
  .workspace-app *, .workspace-app *::before, .workspace-app *::after { scroll-behavior:auto; }
}
@media print {
  body.workspace-app { padding-left:0; }
  .workspace-rail,.workspace-header,.workspace-footer,.workspace-app .decision-index { display:none!important; }
  .workspace-app .lab-shell { padding:0; max-width:none; min-height:0; }
  .workspace-app .decision-layout { display:block; }
}

/* Saved context is a readable activity log, rather than a raw event dump. */
.history-answers { margin:18px 0; }
.history-answers dt { font-size:12px; font-weight:600; padding:13px 0 5px; border-top:1px solid var(--line); }
.history-answers dd { margin:0 0 13px; color:var(--muted); font-size:12px; white-space:pre-wrap; }
.history-log ol { padding-left:20px; }
.history-log li { padding:8px 0; border-bottom:1px solid var(--line); font-size:12px; }
.history-log time { display:block; color:var(--muted); font-size:10px; margin-bottom:3px; }

/* Keep the decision itself above supporting diagnostics. */
.workspace-app[data-workspace-view="review"] .workspace-view-heading {display:none}
.workspace-app .workspace-nav button[aria-current="page"]:hover {background:var(--pale);color:var(--accent)}
.workspace-app .question-source {border:0;margin:12px 0 16px}
.workspace-app .question-source blockquote {border-left:3px solid #d4ccec;margin:10px 0;padding:10px 14px;background:#faf9fd}
.workspace-app .question-source .field {font-size:11px;color:var(--muted);font-weight:500}
.workspace-app #workspace-open-work {margin-top:24px}
.workspace-app #workspace-open-work .plan-section {padding-top:18px}
.workspace-app #workspace-answer-status {margin:0 0 12px}
.workspace-app .decision-draft-status {color:var(--accent);font-weight:550}
.workspace-access-dialog {width:min(680px,calc(100% - 32px));max-height:85vh;border:1px solid #d3d7dd;border-radius:10px;padding:24px;color:var(--ink);overflow:auto}
.workspace-access-dialog::backdrop {background:#1b203966}
.workspace-access-dialog #session-links {margin-bottom:0}
.workspace-app .source-scope {margin:22px 0;max-width:900px}
.workspace-app #source-context {margin:18px 0}

/* Readability pass: dense information must not depend on faint or tiny text.
   Disabled controls stay legible; their surface and cursor convey availability. */
.workspace-app button:disabled,
.workspace-app :is(input:not([type="file"]),select,textarea):disabled {
  opacity:1; color:#59616e; background:#f1f2f5; border-color:#b7bec8;
  cursor:not-allowed; box-shadow:none;
}
.workspace-app .workspace-nav button:disabled {
  opacity:1; color:#59616e; background:transparent; border-color:transparent;
}
.workspace-app .rail-tools button:disabled {
  opacity:1; color:#59616e; background:transparent; border-color:transparent;
}
.workspace-app .busy { opacity:1; }
.workspace-app .workspace-nav button { color:#434b58; font-size:13px; }
.workspace-app .workspace-nav button[aria-current="page"] { color:var(--accent); }
.workspace-app .workspace-nav button[aria-current="page"] .nav-count { color:var(--accent); }
.workspace-app :is(.primary,.secondary,.more-exports>summary,.rail-tools button,.rail-tools a) { font-size:13px; }
.workspace-app .rail-tools :is(button,a) { min-height:36px; }
.workspace-app .rail-project>div strong { font-size:13px; }
.workspace-app :is(.rail-project>div>span,.rail-identity>span,.rail-label,.nav-count,.workspace-breadcrumb,#workspace-meta,#workspace-status,.workspace-footer,.history-log time) { font-size:12px; }
.workspace-app .project-monogram { color:#50594f; }
.workspace-app :is(.intro>p:last-child,.section-intro,.workspace-view-heading p,.stage-heading p:not(.eyebrow),.question .small,.question-option strong,.question-option span,.source-conflict-rule,.example-rule,.scope-note,.next-step p:not(.eyebrow)) { font-size:14px; line-height:1.65; }
.workspace-app :is(.small,.privacy,.data-retention-note,.privacy-details p,.editor-meta,.example-caption,.scope-limit,.plan-note,.progress-clock,.progress-stages strong,.progress-stages span,.progress-details>summary) { font-size:12px; }
.workspace-app :is(.report-overview,.report-overview p,.report-overview ul,.model-notice,.model-notice p,.error,.progress-events,.progress-heading,.history-answers dt,.history-answers dd,.history-log li) { font-size:13px; }
.workspace-app #spec,.workspace-app .question textarea { font-size:14px; }
.workspace-app :is(textarea,input,select,.formula-input) { border-color:#8d96a4; }
.workspace-app :is(input,textarea)::placeholder { color:#626c7b; opacity:1; }
.workspace-app .question-option { border-color:#a1a8b4; }
.workspace-app .question-option[aria-pressed="true"] { border-color:#7563ae; }
.workspace-app .question-option span { color:var(--muted); }
.workspace-app .decision-index button { font-size:13px; }
.workspace-app .decision-index button :is(span,small) { font-size:12px; }
.workspace-app :is(table,.report-table td p,.report-table td li,.acceptance-cases td,.risk-scenarios-table td,.risk-scenarios-table td p,.case-value dt,.case-value dd,.plan-detail p,.plan-detail li,.plan-detail>summary) { font-size:13px; }
.workspace-app :is(thead th,.report-table td h5,.case-label,.row-kind,.risk-class,.risk-origin,.disposition,.check-status) { font-size:12px; }
.workspace-app :is(.report-table td h4,.report-subsection>h4) { font-size:14px; }
.workspace-app .source-witness-table th,.workspace-app .source-witness-table td { font-size:13px; }
.workspace-app .source-witness-table code { color:var(--muted); font-size:12px; }
.workspace-app .source-witness-table th span { color:var(--ink); }
.workspace-app .metric span { font-size:12px; }
.workspace-app .rail-tools .danger-text { color:#96313b; }
@media(max-width:800px) {
  .workspace-app .workspace-nav button { font-size:12px; min-height:42px; }
  .workspace-app .rail-tools :is(button,a) { font-size:12px; min-height:36px; }
  .workspace-app .workspace-breadcrumb,.workspace-app #workspace-status { font-size:12px; }
}
@media(max-width:600px) {
  .workspace-app #spec,.workspace-app .question textarea { font-size:16px; }
  .workspace-app .workspace-header-actions :is(.primary,.secondary),.workspace-app .more-exports>summary { font-size:12px; }
  .workspace-app .progress-stages strong,.workspace-app .progress-stages span { font-size:11px; }
  .workspace-app :is(.numeric-cases td::before,.risk-scenarios-table td::before,.acceptance-cases td:nth-child(2)::before) { font-size:12px; }
}

/* Availability belongs to the input action, not buried in privacy text. */
.workspace-app #build-hint {margin:8px 0 12px;color:var(--muted);font-size:13px;line-height:1.6}
.workspace-app .service-availability {display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 13px;margin:0 0 18px;border:1px solid #c8ced8;border-radius:6px;background:#f5f6f8;color:#434b58}
.workspace-app .service-availability #service-status {margin:0;color:inherit;font-size:13px;line-height:1.55}
.workspace-app .service-availability[data-state="ready"] {background:#f1f7f3;border-color:#c0d3c7;color:#285a40}
.workspace-app .service-availability[data-state="unavailable"] {background:#fff7e8;border-color:#c49b54;color:#714600}
.workspace-app #retry-service {flex:0 0 auto;min-height:36px;color:#714600;border-color:#9b763c;background:#fff;font-size:12px}
.workspace-app #retry-service:hover:not(:disabled) {background:#fff8ea;border-color:#714600}
.workspace-app .rail-tools #reset {justify-content:flex-start;text-align:left;padding:8px 2px;background:transparent;border:0;color:#96313b;font-weight:500}
.workspace-app .rail-tools #reset:hover:not(:disabled) {color:#75222b;background:#fbefef;text-decoration:none}
.workspace-app .rail-tools #reset:disabled {background:transparent;color:#59616e}
@media(max-width:600px) {
 .workspace-app .service-availability {align-items:flex-start;flex-wrap:wrap}
 .workspace-app #retry-service {min-height:40px}
}

/* The label is the file-picker control; keep native chrome hidden even when locked. */
.workspace-app .file-button input[type="file"],
.workspace-app .file-button input[type="file"]:disabled {opacity:0;background:transparent;border:0}
.workspace-app .file-button:has(input:disabled) {color:var(--muted);text-decoration:none;cursor:not-allowed}
.workspace-app .file-button:focus-within {outline:2px solid var(--accent);outline-offset:3px}

/* Progress is working content, not a muted notification. Distinct surfaces and
   near-black copy keep both empty and populated previews readable. */
body.workspace-app { --muted:#374151; }
.workspace-app .progress-panel:not(.progress-stopped) {
  background:#eef1f5; border:1px solid #8895a7; color:#18212f;
}
.workspace-app .progress-panel :is(p,li,td,th,summary,.small,.progress-clock,#progress-caption,#progress-wait,.progress-stages span) {
  color:#253247; font-size:14px; line-height:1.6;
}
.workspace-app .progress-panel :is(h3,h4,.progress-heading,strong) {color:#111827}
.workspace-app .progress-panel .progress-heading {font-size:15px}
.workspace-app .progress-panel .progress-stages li {border-top-color:#a3adbc}
.workspace-app .progress-panel .progress-stages [data-current="true"] {background:#fff;border-top-color:#5146a4;box-shadow:inset 0 0 0 1px #b1aacb}
.workspace-app .progress-panel .progress-stages [data-current="true"] strong {color:#3e318b}
.workspace-app .live-preview {border-top-color:#9ba7b7;padding-top:20px}
.workspace-app .live-preview-heading h3 {font-size:18px;font-weight:700}
.workspace-app .live-preview-card {background:#fff;border:1px solid #8895a7;border-radius:6px;padding:18px}
.workspace-app .live-preview-card h4 {font-size:15px;font-weight:700;margin:0 0 8px;color:#111827}
.workspace-app .live-preview-card :is(p,li,.live-preview-empty,.small) {color:#253247;font-size:14px;line-height:1.65}
.workspace-app .live-preview-badge {background:#fff8e6;color:#603d00;border:1px solid #9e7729;font-size:12px;font-weight:600;padding:4px 8px}
.workspace-app .progress-details {border-top-color:#9ba7b7}
.workspace-app .progress-details>summary {color:#18212f;font-size:14px;font-weight:650}
.workspace-app .live-preview-table th {background:#e8edf3;color:#18212f;font-size:13px}
.workspace-app .live-preview-table :is(td,th) {border-color:#9ba7b7}
@media(max-width:600px) {
 .workspace-app .live-preview-card {padding:14px}
 .workspace-app .progress-panel .progress-stages :is(strong,span) {font-size:12px;line-height:1.45}
}

/* During source checking, show the user's real input rather than empty counters. */
.workspace-app .live-preview-source-text {margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.7;color:#18212f;border-left:3px solid #b4accf;padding:0 0 0 14px}
.workspace-app .live-preview-purpose {margin:18px 0 0}
.workspace-app .live-preview-purpose h4 {font-size:14px;margin:0 0 7px}
.workspace-app .live-preview-purpose ul {margin:0;padding-left:20px}
.workspace-app .live-preview-purpose li {margin:5px 0}
.workspace-app #progress-limit {margin:12px 0;padding:10px 12px;border:1px solid #b8c0cd;background:#fff;border-radius:5px}

/* Lead with the acceptance statement; technical records are supporting detail. */
.workspace-app .requirements-table .criterion {display:flex;flex-direction:column;gap:6px;padding:10px 0}
.workspace-app .requirements-table .criterion:first-child {border-top:0;padding-top:0}
.workspace-app .requirements-table .criterion>p {order:0;margin:0}
.workspace-app .requirements-table .criterion>.plan-detail {order:1;border:0;padding:0}
.workspace-app .requirements-table .criterion>.plan-detail>summary {color:var(--muted);font-size:12px;font-weight:500}
@media(max-width:600px) {
 .workspace-app .workspace-nav {flex-wrap:nowrap;overflow-x:auto;max-width:100%;min-width:0;padding-bottom:4px;overscroll-behavior-x:contain;scrollbar-width:thin}
 .workspace-app .workspace-nav button {flex:0 0 auto;white-space:nowrap}
 .workspace-app .rail-tools {gap:2px 14px}
}

.workspace-nav-hint {display:none}
@media(max-width:600px) {
 .workspace-app .workspace-nav-hint {display:block;grid-column:1/-1;margin:-3px 0 0;color:var(--muted);font-size:11px;text-align:right}
}

.workspace-app .numeric-column-cases.numeric-cases tr td{padding:10px 12px}
.workspace-app .numeric-column-cases.numeric-cases td:last-child{background:#f0f5fa}

/* Outcome-first report. The result is the content; provenance stays inspectable. */
.workspace-app .review-result-summary {margin:14px 0 18px}
.workspace-app .review-source-intent {max-width:80ch;font-size:16px;line-height:1.65;color:#20242c}
.workspace-app .result-facts {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}
.workspace-app .result-facts>div {border:1px solid #cdd2da;border-radius:6px;background:white;padding:14px}
.workspace-app .result-facts dt {font-size:13px;font-weight:600;color:#374151}
.workspace-app .result-facts dd {margin:4px 0;font-size:28px;font-weight:650;line-height:1.2;color:#20242c}
.workspace-app .result-facts p {margin:7px 0 0}
.workspace-app .review-next-step {font-size:15px;max-width:80ch}
.workspace-app .review-followup {border-left:3px solid #9c7428;padding:8px 12px;background:#fff8e9;color:#674513}
.workspace-app .count-legend {margin:14px 0 0;font-size:13px}
.workspace-app .report-overview:has(.review-result-summary) {background:#f8fafc;border-color:#bdc6d1;padding:22px}
.workspace-app .report-overview>strong {font-size:20px;line-height:1.4}
.workspace-app .record-review {margin:22px 0;border-top:1px solid #d1d5db;padding-top:15px}
.workspace-app .record-review>summary {font-size:13px;color:#374151}
.workspace-app .count-legend>summary {font-weight:500}
.workspace-app #source-revise {margin:8px 0 18px}
.workspace-app.has-saved-project #source .start-aside,
.workspace-app.has-saved-project #source :is(.source-actions,#build-hint,.service-availability,.file-button,.editor-meta) {display:none}
.workspace-app.has-saved-project .source-grid {display:block;max-width:1000px}
.workspace-app.has-saved-project #spec {color:#20242c;background:#f8fafc;cursor:text;line-height:1.7;min-height:310px}
.workspace-app.has-saved-project #source-locked {font-size:14px;margin:18px 0 4px;max-width:78ch}
.workspace-app #workspace-history {margin-bottom:24px}
.workspace-app .history-workflow {margin:16px 0}
/* A raw payload must not expand into hundreds of thousands of page pixels. */
.workspace-app pre {max-height:360px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere;overscroll-behavior:contain;border:1px solid #d1d5db;border-radius:5px;padding:12px;background:#f8fafc;color:#243044;font-size:12px}
.workspace-app .history-log ol {max-height:480px;overflow:auto;overscroll-behavior:contain}
.workspace-app .workspace-more-views,.workspace-app .workspace-project-tools {border:0;padding:0;background:transparent;margin:0}
.workspace-app .workspace-more-views>summary,.workspace-app .workspace-project-tools>summary {display:none}
.workspace-app .workspace-secondary-views {display:flex;flex-direction:column;gap:3px;margin-top:12px}
.workspace-app .workspace-project-tools {margin-top:auto}
.workspace-app .workspace-nav {overflow:visible}
.workspace-app .workspace-nav-hint {display:none}
@media(max-width:800px){
 .workspace-app .workspace-rail {padding:10px 14px;grid-template-columns:1fr auto;gap:8px}
 .workspace-app .workspace-brand {font-size:22px}
 .workspace-app .workspace-brand>span,.workspace-app .rail-project,.workspace-app .rail-identity {display:none}
 .workspace-app .workspace-project-tools {grid-column:2;grid-row:1;margin:0;position:relative;align-self:center}
 .workspace-app .workspace-project-tools>summary {display:block;padding:7px 10px;border:1px solid #c4cad4;border-radius:5px;font-size:13px;color:#374151;cursor:pointer}
 .workspace-app .project-tools-content {position:absolute;z-index:45;right:0;top:42px;min-width:190px;background:#fff;border:1px solid #bdc6d1;border-radius:6px;box-shadow:0 5px 20px #1f29371a;padding:10px}
 .workspace-app .project-tools-content .rail-tools {display:flex;flex-direction:column;gap:4px;padding:0}
 .workspace-app .rail-tools :is(button,a) {font-size:13px;min-height:42px;padding:6px}
 .workspace-app .workspace-nav {grid-column:1/-1;display:flex;flex-wrap:nowrap;gap:4px;overflow:visible;padding:0}
 .workspace-app .workspace-nav>button {flex:1 1 auto;justify-content:center;min-width:0;padding:8px 6px;font-size:12px;min-height:42px;white-space:normal}
 .workspace-app .workspace-nav>button .nav-icon,.workspace-app .workspace-nav>button .nav-count {display:none}
 .workspace-app .workspace-more-views {position:relative;flex:0 1 auto;min-width:85px}
 .workspace-app .workspace-more-views>summary {display:flex;align-items:center;justify-content:center;min-height:42px;padding:8px;border:1px solid #c4cad4;border-radius:5px;font-size:12px;cursor:pointer;color:#374151}
 .workspace-app .workspace-secondary-views {position:absolute;right:0;top:46px;z-index:45;width:210px;padding:8px;margin:0;background:#fff;border:1px solid #bdc6d1;border-radius:6px;box-shadow:0 5px 20px #1f29371a}
 .workspace-app .workspace-secondary-views>button {width:100%;min-height:44px;font-size:13px}
 .workspace-app .workspace-header {padding:12px 16px}
 .workspace-app .workspace-breadcrumb>span:not(#workspace-status) {display:none}
 .workspace-app #workspace-status {margin:0;max-width:100%;text-align:left;font-size:12px}
 .workspace-app .workspace-title-row {padding-top:6px;gap:10px}
 .workspace-app #workspace-title {font-size:22px}
 .workspace-app #workspace-meta {margin-top:4px;font-size:11px}
 .workspace-app .workspace-header-actions .export-actions {gap:6px}
 .workspace-app .workspace-header-actions :is(button,.more-exports>summary) {min-height:38px;padding:7px 8px;font-size:11px}
 .workspace-app .lab-shell {padding:16px}
 .workspace-app .report-overview:has(.review-result-summary) {padding:16px}
 .workspace-app .result-facts {gap:7px;margin:14px 0}
 .workspace-app .result-facts>div {padding:10px}
 .workspace-app .result-facts dt {font-size:11px}
 .workspace-app .result-facts dd {font-size:24px}
 .workspace-app .result-facts p {display:none}
 .workspace-app .review-source-intent {font-size:14px}
 .workspace-app pre {max-height:280px}
}
@media(max-width:600px){
 .workspace-app .numeric-column-cases.numeric-cases {border:0;overflow:visible}
 .workspace-app .numeric-column-cases.numeric-cases::before {display:none}
 .workspace-app .numeric-column-cases.numeric-cases :is(table,tbody) {display:block;min-width:0;width:100%}
 .workspace-app .numeric-column-cases.numeric-cases thead {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .workspace-app .numeric-column-cases.numeric-cases tr {display:flex;flex-wrap:wrap;border:1px solid #b8c2cf;border-radius:6px;padding:12px;margin:0 0 12px;gap:0 12px}
 .workspace-app .numeric-column-cases.numeric-cases tr[hidden] {display:none}
 .workspace-app .numeric-column-cases.numeric-cases tr :is(th,td) {display:block;min-width:0;max-width:100%;padding:6px 0;border:0;white-space:normal;margin:0}
 .workspace-app .numeric-column-cases.numeric-cases tbody th {width:100%;order:0;text-align:left;font-size:14px}
 .workspace-app .numeric-column-cases.numeric-cases tbody td {flex:1 1 40%;order:2;font-size:14px}
 .workspace-app .numeric-column-cases.numeric-cases tbody td::before {display:block;content:attr(data-label);font-size:12px;color:#374151;font-weight:600;margin-bottom:3px}
 .workspace-app .numeric-column-cases.numeric-cases tbody td.expected-value {flex:1 1 100%;order:1;background:#edf3fa;border:1px solid #c3cedc;border-radius:4px;padding:9px;margin:4px 0 6px;font-size:16px}
 .workspace-app .numeric-column-cases.numeric-cases .case-purpose {font-size:13px;font-weight:400;margin:6px 0}
}
.workspace-app .numeric-column-cases.numeric-cases tbody th,
.workspace-app .numeric-column-cases.numeric-cases .case-purpose {font-family:inherit;letter-spacing:normal}
.workspace-app.has-saved-project #spec[readonly] {color:#20242c;background:#f8fafc;cursor:text}

/* The workspace already supplies a Test plan heading. Keep the first task close
   to it instead of repeating the report's standalone document headings. */
.workspace-app #plan-tests > .eyebrow,
.workspace-app #plan-tests > h3,
.workspace-app .test-task-plan > h4 { display:none; }
.workspace-app .test-task-table th[scope="row"] { font:inherit; font-weight:650; }
.workspace-app .test-task-plan { margin-top:0; }
/* Task handoff: show action, expected result and evidence together on a phone. */
.workspace-app .test-task-table table {table-layout:fixed}
.workspace-app .test-task-table th:first-child {width:24%}
.workspace-app .test-task-table th:nth-child(2) {width:52%}
.workspace-app .test-task-table th:nth-child(3) {width:24%}
.workspace-app .test-task-table td p {margin:0 0 7px}
@media(max-width:600px){
 .workspace-app .test-task-table {border:0;overflow:visible}
 .workspace-app .test-task-table :is(table,tbody) {display:block;min-width:0;width:100%}
 .workspace-app .test-task-table thead {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .workspace-app .test-task-table tr {display:block;padding:14px;margin:0 0 14px;border:1px solid #bdc6d1;border-radius:6px;background:white}
 .workspace-app .test-task-table tr :is(th,td) {display:block;width:100%;min-width:0;padding:8px 0;border:0;text-align:left}
 .workspace-app .test-task-table tbody th {font-size:15px;padding-top:0}
 .workspace-app .test-task-table td::before {content:attr(data-label);display:block;margin-bottom:7px;font-size:12px;font-weight:650;color:#374151}
 .workspace-app .test-task-table td+td {border-top:1px solid #d1d5db;margin-top:7px}
}
@media(max-width:600px){
 .workspace-app .test-task-table th:first-child {width:100%}
}

.specification-heading{display:flex;justify-content:space-between;align-items:center;gap:16px}.specification-heading h3{margin:0}.record-support-heading{display:none}.workspace-app .specification-support{padding:0;background:transparent;border:0}.workspace-app #feedback-form{padding:22px;border:1px solid #b9c4d4;border-radius:6px;background:#f8fafc;scroll-margin-top:24px}.workspace-app #feedback-form h3{font-size:20px;margin:0 0 14px}.workspace-app #feedback-form textarea{background:white;color:#17202c}.workspace-app #plan-behavior #model-notice{margin:12px 0 20px}@media(max-width:600px){.specification-heading{align-items:flex-start;flex-direction:column;gap:12px}.specification-heading button{width:100%}.workspace-app #feedback-form{padding:16px}}

.workspace-app #requirement-list{display:grid;gap:22px}.workspace-app #requirement-list>.requirement{margin:0;padding:22px;border:1px solid #c5ccd6;border-radius:7px;background:#fff}.workspace-app #requirement-list h3{font-size:19px;line-height:1.45}.workspace-app #requirement-list .requirement-role{margin:0 0 9px;font-size:12px;font-weight:650;color:#475569}.workspace-app #requirement-list :is(.requirement-description,.requirement-rationale,.acceptance-records p){font-size:14px;line-height:1.65}.workspace-app .acceptance-records{padding-left:22px}.workspace-app .acceptance-records>li{padding:8px 0;border-bottom:1px solid #e2e8f0}.workspace-app .criterion-insight{padding:12px 14px;background:#f1f5f9;border-left:3px solid #6b7d97;margin:12px 0}.workspace-app .requirement-source{margin:20px 0;padding-top:12px;border-top:1px solid #d1d5db}.workspace-app #requirement-list .native-formula{padding:14px;background:#f4f6f9;border:1px solid #d5dce5;border-radius:4px;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:600px){.workspace-app #requirement-list>.requirement{padding:16px}.workspace-app #requirement-list h3{font-size:18px}}

.workspace-app .requirement-hierarchy{padding:18px;border:1px solid #cbd3de;border-radius:6px;background:#fafbfc;margin:16px 0 22px}.requirement-hierarchy h4{font-size:15px;margin:0 0 10px}.requirement-levels{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.requirement-levels span{font-size:12px;padding:4px 8px;border:1px solid #cbd3de;border-radius:4px;background:white}.requirement-hierarchy ol{list-style:none;margin:8px 0;padding-left:20px;border-left:1px solid #b9c4d2}.requirement-hierarchy nav>ol{padding-left:0;border:0}.requirement-hierarchy li{margin:9px 0}.hierarchy-node{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:13px}.hierarchy-level{font-size:11px;font-weight:650;color:#475569}.hierarchy-diagnostic,.hierarchy-missing{font-size:12px;color:#495466;line-height:1.6}.workspace-app #requirement-list>.requirement{margin-left:calc(var(--requirement-depth,0)*18px);border-left:3px solid #c5cdd9}.workspace-app #requirement-list .requirement-level{font-size:11px;letter-spacing:.04em;text-transform:uppercase;font-weight:650;color:#42516a;margin:0 0 8px}.requirement-parent{font-size:12px;margin:0 0 10px}.workspace-app .criterion-insight{background:#fafafa;border:1px solid #d5dbe3;border-left:3px solid #a6b1c0;padding:12px 14px}.criterion-insight .field{margin-top:0}.criterion-insight details{margin-top:8px}.criterion-insight summary{font-size:12px}.workspace-app #test-design-notes-legend{margin:14px 0 22px;color:#475569}@media(max-width:600px){.workspace-app #requirement-list>.requirement{margin-left:calc(var(--requirement-depth,0)*8px)}.requirement-hierarchy ol{padding-left:12px}.workspace-app .requirement-hierarchy{padding:14px}}

/* Recorded parent-to-child branches, outside the readable card surface. */
.workspace-app #requirement-list{position:relative;isolation:isolate}
.workspace-app #requirement-list>.requirement{position:relative;margin-left:calc(var(--requirement-depth,0)*32px);background:#fff}
.requirement-connectors{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:-1}
.requirement-connectors path{fill:none;stroke:#8493ab;stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.requirement-hierarchy ol ol{position:relative}
.requirement-hierarchy ol ol>li{position:relative}
.requirement-hierarchy ol ol>li::before{content:"";position:absolute;left:-20px;top:10px;width:14px;border-top:1px solid #8493ab}
@media(max-width:600px){.workspace-app #requirement-list>.requirement{margin-left:calc(var(--requirement-depth,0)*16px)}.requirement-hierarchy ol ol>li::before{left:-12px;width:8px}}

.workspace-app .specification-original{margin:16px 0 22px;padding:16px 18px;background:#fafbfc;border:1px solid #cbd3de;border-radius:6px}
.specification-original h4{font-size:15px;margin:0 0 8px}
.specification-original .original-source-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.65;font-family:inherit;font-size:13px;color:#263244}
.specification-original .original-source-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;max-height:4.95em;margin:12px 0}
.specification-original:has(details[open]) .original-source-preview{display:none}
.specification-original summary{font-size:13px;font-weight:600;color:#4338a0;cursor:pointer;margin-top:12px}
.specification-original .original-source-open{display:none}
.specification-original details[open] .original-source-open{display:inline}
.specification-original details[open] .original-source-closed{display:none}
.original-source-expanded{margin-top:14px;border-top:1px solid #d6dce5;padding-top:4px}
#specification-original-answers h5{font-size:14px;margin:20px 0 8px}
.original-source-answer{margin:12px 0;border-left:2px solid #cbd3de;padding-left:12px}
.original-source-answer strong{font-size:13px}

/* Keep prose readable and keep revision work next to the text being reviewed. */
.workspace-app #specification-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;width:100%;max-width:none;align-items:start}
.specification-reading,.specification-correction-sticky,#specification-correction-pane{min-width:0}
.workspace-app #specification-layout #plan-behavior{margin:0 0 24px;padding:0}
.workspace-app #specification-layout .specification-support{max-width:none;margin:0}
.workspace-app #specification-correction-pane #feedback-form{margin:0;padding:20px}
.workspace-app #specification-correction-pane #feedback-form h3{font-size:18px;line-height:1.4}
.workspace-app #specification-correction-pane textarea{width:100%;min-height:150px;box-sizing:border-box;resize:vertical}
.workspace-app #specification-correction-pane #revise{white-space:normal;width:100%;line-height:1.45}
.workspace-app #specification-correction-pane #correction-availability:not([hidden]){margin:0;padding:18px;border:1px solid #cbd3de;border-radius:6px;background:#f8fafc}
.workspace-app[data-workspace-view="specification"] .workspace-view-heading{max-width:720px}
@media(min-width:1200px){
 .workspace-app #specification-layout{grid-template-columns:minmax(0,1fr) minmax(280px,360px);gap:28px;max-width:none}
 .specification-correction-sticky{position:sticky;top:24px;max-height:calc(100dvh - 48px);overflow:auto}
 #specification-correction-pane{align-self:stretch}
}

/* One verification plan: behavior, failure checks and unresolved decisions. */
.workspace-app #plan-tests > h3{display:block;margin-top:0}
.workspace-app .test-plan-outline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 28px}
.test-plan-outline a{display:flex;flex-direction:column;gap:5px;padding:14px 16px;border:1px solid #cbd3de;border-radius:6px;background:#f8fafc;text-decoration:none;color:#20242c;min-width:0}
.test-plan-outline a:hover{border-color:#5545ad;background:#f4f2fc}
.test-plan-outline strong{font-size:14px}.test-plan-outline span{font-size:13px;color:#4b5565}
.workspace-app #plan-hazards,.workspace-app #plan-decisions{border-top:1px solid #cbd3de;padding-top:28px;margin-top:32px;scroll-margin-top:20px}
.workspace-app #plan-decisions{padding-bottom:24px}
#test-plan-decisions-list li{margin-bottom:12px;max-width:85ch}
@media(max-width:700px){.workspace-app .test-plan-outline{grid-template-columns:1fr;gap:8px}.test-plan-outline a{padding:12px 14px;flex-direction:row;justify-content:space-between;align-items:center;gap:14px}.test-plan-outline span{text-align:right;flex-shrink:0;max-width:45%}}

/* Verification work follows the native model, acceptance criteria and hazards. */
.workspace-app .test-plan-outline{grid-template-columns:repeat(4,minmax(0,1fr))}
.workspace-app #plan-acceptance{border-top:1px solid #cbd3de;padding-top:28px;margin-top:32px;scroll-margin-top:20px}
.requirement-pair-card,.acceptance-test-group{margin:20px 0 24px;border:1px solid #cbd3de;border-radius:7px;padding:18px;min-width:0}
.workspace-app .requirement-pair-card h4,.workspace-app .acceptance-test-group h4{font-size:16px;margin:0 0 10px}
.pair-requirement-description{max-width:95ch;color:#303b4a}
.pair-provenance{font-size:12px;font-weight:600;color:#4a5565}
.workspace-app .requirement-pair-table > table{width:100%;table-layout:fixed;min-width:0;font-size:13px}
.workspace-app .requirement-pair-table > table>thead th:first-child{width:48%}
.workspace-app .requirement-pair-table > table>tbody>tr>th,.workspace-app .requirement-pair-table > table>tbody>tr>td{padding:12px;vertical-align:top}
.pair-variable-role{display:block;margin-top:3px;font-size:12px;font-weight:400;color:#4b5565}
.workspace-app .plan-pair-toggle{background:transparent;border:0;border-radius:0;padding:0;display:inline;text-align:left;color:#44359c;font-size:13px;font-weight:650;line-height:1.5;box-shadow:none}
.plan-pair-toggle::before{content:'▸';display:inline-block;width:16px}
.plan-pair-toggle[aria-expanded=true]::before{content:'▾'}
.pair-summary{cursor:pointer}.pair-summary:hover{background:#f7f6fc}
.pair-expanded>td{background:#f8fafc}.pair-expanded[hidden]{display:none!important}
.workspace-app .pair-values-table table{font-size:12px;width:100%;min-width:0;table-layout:fixed}
.pair-values-table .changed-variable{background:#ebe8fa}
.workspace-app .pair-values-table th,.workspace-app .pair-values-table td{padding:9px}
.workspace-app .pair-values-table .small{font-size:12px;font-weight:400;margin:3px 0}
.implementation-examples{margin:20px 0;padding:16px;border:1px solid #cbd3de;border-radius:7px}
.implementation-examples>summary{font-weight:650;color:#44359c;cursor:pointer}
.example-requirement-links a{margin-right:12px}
.workspace-app .acceptance-test-table > table{width:100%;table-layout:fixed;min-width:0;font-size:13px}
.workspace-app .acceptance-test-table > table>thead>tr>th:first-child{width:53%}
.workspace-app .acceptance-test-table > table>thead>tr>th:nth-child(2){width:27%}
.acceptance-test-table details a{display:block;margin:6px 0}
.risk-test-level{font-size:12px;font-weight:600;color:#38465b}
@media(max-width:1100px){.workspace-app .test-plan-outline{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){
 .workspace-app .test-plan-outline{grid-template-columns:1fr}
 .requirement-pair-card,.acceptance-test-group{padding:12px}
 .workspace-app .requirement-pair-table > table>thead,.workspace-app .acceptance-test-table > table>thead{display:none}
 .workspace-app .requirement-pair-table > table>tbody>tr:not([hidden]),.workspace-app .acceptance-test-table > table>tbody>tr{display:block;border-bottom:1px solid #cbd3de}
 .workspace-app .requirement-pair-table > table>tbody>tr>th,.workspace-app .requirement-pair-table > table>tbody>tr>td,.workspace-app .acceptance-test-table > table>tbody>tr>td{display:block;width:100%;box-sizing:border-box;border:0;padding:8px}
 .pair-summary>td::before,.acceptance-test-table > table>tbody>tr>td::before{content:attr(data-label);display:block;color:#4b5565;font-size:11px;font-weight:600;margin-bottom:4px}
 .workspace-app .pair-values-table table{table-layout:fixed;font-size:11px}
 .workspace-app .pair-values-table th,.workspace-app .pair-values-table td{padding:5px;overflow-wrap:anywhere}
 .workspace-app .pair-values-table th:first-child{width:40%}
 .workspace-app .pair-values-table .small{font-size:11px}
}

.workspace-app .requirement-pair-table th,.workspace-app .pair-values-table th,.workspace-app .plan-pair-toggle{font-family:inherit}

/* Each recorded scenario is a row; categories are visible row groups. */
.workspace-app .risk-work-table>table{width:100%;min-width:0;table-layout:fixed;font-size:13px}
.risk-work-table>table>thead th:nth-child(1){width:39%}
.risk-work-table>table>thead th:nth-child(2){width:16%}
.risk-work-table>table>thead th:nth-child(3){width:28%}
.risk-work-table>table>thead th:nth-child(4){width:17%}
.workspace-app .risk-work-table>table>tbody>tr>td{padding:12px;vertical-align:top}
.workspace-app .risk-work-table .risk-group-heading>th{padding:12px;background:#e9edf3;border-top:2px solid #bdc8d7;color:#202b3a;font:inherit;text-align:left}
.risk-group-count{margin-left:12px;font-size:12px;color:#475467;font-weight:400}
.risk-item-kind{display:block;font-size:11px;font-weight:600;color:#576273;margin-bottom:5px}
.workspace-app .risk-work-table p{margin:5px 0 8px;line-height:1.6}
.risk-work-item{cursor:pointer}.risk-work-item:hover{background:#fafbfe}
.workspace-app .risk-work-table blockquote{border:0;padding:0;margin:5px 0 10px;color:#263244;font-size:13px}
.risk-work-table .risk-origin{display:block;margin:0 0 8px;font-size:12px}
.workspace-app .risk-work-toggle{display:inline;padding:0;border:0;border-radius:0;background:none;color:#44359c;font:inherit;font-weight:600;text-decoration:underline;box-shadow:none}
.risk-work-toggle::before{content:'▸ ';text-decoration:none}.risk-work-toggle[aria-expanded=true]::before{content:'▾ '}
.risk-work-status{display:block;font-size:12px}
.risk-work-details[hidden]{display:none!important}.risk-work-details>td{background:#f7f9fc}
.risk-detail-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px}
.risk-detail-grid h5{font-size:13px;margin:0 0 10px}.risk-detail-grid p{max-width:85ch}
.risk-method-heading th{background:#f5f6f8;color:#4b5565;font:inherit;font-size:12px;text-align:left;padding:10px 12px}
.risk-method-item{background:#fcfcfe}
@media(max-width:850px){
 .workspace-app .risk-work-table>table>thead{display:none}
 .workspace-app .risk-work-table>table,.workspace-app .risk-work-table>table>tbody{display:block;width:100%}
 .workspace-app .risk-work-table>table>tbody>tr:not([hidden]){display:block;border-bottom:1px solid #cbd3de}
 .workspace-app .risk-work-table>table>tbody>tr>td,.workspace-app .risk-work-table>table>tbody>tr>th{display:block;box-sizing:border-box;width:100%;border:0;padding:9px 12px}
 .risk-work-item>td::before,.risk-method-item>td::before{content:attr(data-label);display:block;font-size:11px;font-weight:600;color:#576273;margin-bottom:5px}
 .risk-work-item>td:first-child::before,.risk-method-item>td:first-child::before{display:none}
 .risk-detail-grid{grid-template-columns:1fr;gap:16px}
}

/* Lead with test inputs; disclose model explanations on demand. */
.partition-coverage{padding:14px 16px;margin:12px 0 16px;border-left:3px solid #4b6480;background:#f1f5f9;color:#202b3b;max-width:85ch}
.partition-coverage p{margin:8px 0 0}
.case-methodology,.case-variable-definitions,.requirement-analysis{margin:16px 0}
.case-methodology>summary,.case-variable-definitions>summary,.requirement-analysis>summary{font-weight:600;cursor:pointer}
.case-methodology p{max-width:85ch}
.case-variable-table th,.case-variable-table td{overflow-wrap:anywhere}

/* Trace each failure scenario to its requirement and reviewable evidence. */
.hazard-evidence-flow{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:24px;list-style:none;padding:16px 20px;margin:18px 0;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:8px}
.hazard-evidence-flow li{position:relative;min-width:0}.hazard-evidence-flow li+li::before{content:'→';position:absolute;left:-20px;color:#52647b}
.hazard-evidence-flow strong,.hazard-evidence-flow span{display:block}.hazard-evidence-flow span{font-size:13px;color:#475467;margin-top:5px}
.risk-work-intro{max-width:85ch}.risk-requirement-group{margin:26px 0 36px;padding-left:20px;border-left:3px solid #cbd5e1;min-width:0}
.workspace-app .risk-owner-level{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#475467;margin:0 0 8px}
.workspace-app .risk-requirement-group>h4{max-width:85ch;font-size:16px;line-height:1.6;margin:0 0 8px}.workspace-app .risk-requirement-group>h4 a{font:inherit;overflow-wrap:anywhere}
.risk-hierarchy-table>table>thead th:nth-child(1){width:48%}.risk-hierarchy-table>table>thead th:nth-child(2){width:22%}.risk-hierarchy-table>table>thead th:nth-child(3){width:30%}
.risk-scenario-text{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.risk-work-toggle{margin-top:8px}
.hazard-review-chain{list-style:none;padding:0 0 0 22px;margin:12px 8px;border-left:2px solid #aab9cd;max-width:90ch}.hazard-review-chain>li{position:relative;padding:0 0 22px 0;overflow-wrap:anywhere}.hazard-review-chain>li:last-child{padding-bottom:4px}
.hazard-review-chain>li::before{content:'';position:absolute;left:-28px;top:6px;width:10px;height:10px;border-radius:50%;background:#586c88;border:1px solid #f7f9fc}
.workspace-app .hazard-review-chain h5{font-size:14px;margin:0 0 8px;color:#202b3a}.hazard-review-chain ul{padding-left:20px}
.risk-method-suggestions{margin-top:16px}.risk-method-suggestions>summary{cursor:pointer;font-size:13px;font-weight:600}.risk-method-table th,.risk-method-table td{overflow-wrap:anywhere}
@media(max-width:850px){
 .hazard-evidence-flow{grid-template-columns:1fr;gap:22px}.hazard-evidence-flow li+li::before{content:'↓';left:auto;top:-20px}
 .risk-requirement-group{padding-left:10px}.risk-method-table>table{min-width:0!important;table-layout:fixed;font-size:12px}.risk-method-table th,.risk-method-table td{padding:8px!important}
 .hazard-review-chain{margin:10px 0;padding-left:16px}.hazard-review-chain>li::before{left:-22px}
}

.specification-components{margin:24px 0}.specification-components>h4{margin:0 0 8px}.specification-components>p{max-width:80ch}
.spec-component{border:1px solid #cbd5e1;border-radius:8px;padding:16px 20px;margin:12px 0;scroll-margin-top:24px}.workspace-app .spec-component h5{font-size:15px;margin:0;overflow-wrap:anywhere}.spec-component>p{margin:6px 0 12px}.component-variables>summary{font-size:13px;font-weight:600;cursor:pointer}
.component-variable-table{margin-top:14px;overflow:auto}.component-variable-table table{width:100%;border-collapse:collapse;font-size:13px}.component-variable-table :is(th,td){text-align:left;vertical-align:top;padding:10px;border-bottom:1px solid #d5dce5;overflow-wrap:anywhere}.component-variable-table th{background:#f6f8fa}.component-variable-table td p{margin:0 0 4px}.component-variable-table tr{scroll-margin-top:24px}.requirement-component{font-size:13px}.requirement-variable-links{font-size:13px;overflow-wrap:anywhere}
@media(max-width:700px){.spec-component{padding:14px}.component-variable-table thead{display:none}.component-variable-table :is(table,tbody,tr,th,td){display:block;width:100%;box-sizing:border-box}.component-variable-table tr{border:1px solid #cbd5e1;border-radius:6px;margin-bottom:12px}.component-variable-table td::before{content:attr(data-label);display:block;font-size:11px;font-weight:600;color:#475467;margin-bottom:4px}}

.hierarchy-component{font-size:11px;color:#475467;padding:2px 6px;border:1px solid #d1d9e4;border-radius:4px;overflow-wrap:anywhere}

.acceptance-case-expanded[hidden]{display:none!important}
.acceptance-case-expanded>td{background:#f8fafc}
.workspace-app .acceptance-linked-cases table{width:100%;table-layout:fixed;min-width:0;font-size:12px}
.workspace-app .acceptance-linked-cases td,.workspace-app .acceptance-linked-cases th{overflow-wrap:anywhere;padding:10px}
@media(max-width:700px){
 .workspace-app .acceptance-linked-cases thead{display:none}
 .workspace-app .acceptance-linked-cases tr{display:block;border-bottom:1px solid #cbd3de}
 .workspace-app .acceptance-linked-cases td{display:block;width:100%;box-sizing:border-box;border:0}
 .workspace-app .acceptance-linked-cases td::before{content:attr(data-label);display:block;font-weight:600;color:#4b5565;font-size:11px}
}

/* A short handoff before the detailed plan. Counts describe saved artifacts only. */
.workspace-app .test-plan-handoff{border:1px solid #cbd3de;border-radius:8px;background:#fff;padding:22px;margin:0 0 20px}
.workspace-app .test-plan-handoff h3{margin:0 0 18px;font-size:19px}
.test-plan-handoff ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;list-style:none;counter-reset:handoff;padding:0;margin:0}
.test-plan-handoff li{counter-increment:handoff;min-width:0}
.test-plan-handoff li strong{display:block;font-size:14px;color:#20242c}
.test-plan-handoff li strong::before{content:counter(handoff) ' · ';color:#5545ad}
.workspace-app .test-plan-handoff li p{font-size:13px;color:#475467;line-height:1.55;margin:8px 0 0}
.workspace-app .handoff-review-status{margin:20px 0 0;padding:14px 0 0;border-top:1px solid #d8dde5;font-size:13px;color:#754414;line-height:1.6}
.acceptance-linked-cases tfoot td{text-align:center;background:#f8fafc;padding:12px}
.acceptance-linked-cases tr[hidden]{display:none!important}
.workspace-app .acceptance-linked-cases th{font-family:inherit}
@media(max-width:850px){.test-plan-handoff ol{grid-template-columns:1fr;gap:16px}.workspace-app .test-plan-handoff{padding:16px}.acceptance-linked-cases tfoot,.acceptance-linked-cases tfoot tr,.acceptance-linked-cases tfoot td{display:block;width:100%;box-sizing:border-box}}

/* Keep orientation short enough that the actual test table stays in view. */
.workspace-app[data-workspace-view=tests] .plan-note{display:none}
.workspace-app .test-plan-handoff{padding:16px 20px;margin-bottom:16px}
.workspace-app .test-plan-outline{display:flex;flex-wrap:wrap;gap:8px 22px;margin:0 0 24px;padding:0 0 14px;border-bottom:1px solid #d8dde5}
.workspace-app .test-plan-outline a{display:inline;padding:4px 0;border:0;background:transparent;border-radius:0;color:#44359c;text-decoration:underline;text-underline-offset:4px}
.workspace-app .test-plan-outline a span{display:none}
.workspace-app .test-plan-outline a:hover{background:transparent;color:#302374}
@media(max-width:850px){.workspace-app .test-plan-handoff{padding:16px}.workspace-app .test-plan-outline{gap:8px 16px}.workspace-app .test-plan-outline strong{font-size:13px}}

/* Concrete hazard checks reuse the existing compact table language. */
.typed-risk-group{margin:24px 0;min-width:0}.typed-risk-table :is(th,td){vertical-align:top;overflow-wrap:anywhere}.typed-risk-table td{width:25%}.typed-risk-table .case-values{margin:0}.typed-risk-table .case-value{margin-bottom:6px}.typed-risk-table .case-value :is(dt,dd){margin:0}.typed-risk-table .case-value dt{font-size:12px;color:#475467}.typed-risk-table .case-value dd{font-variant-numeric:tabular-nums;color:#202b3a}.typed-risk-table p{margin:6px 0}.typed-risk-table summary{cursor:pointer;font-weight:600}.typed-risk-scenario{border-top:1px solid #d5dce5;margin-top:12px;padding-top:12px}.typed-risk-scenario h5{margin:0 0 8px}.typed-risk-table blockquote{margin:10px 0;padding-left:12px;border-left:2px solid #cbd5e1}.typed-risk-table tr[hidden]{display:none!important}
@media(max-width:850px){.typed-risk-table{overflow:visible}.typed-risk-table table{min-width:0!important}.typed-risk-table thead{display:none}.typed-risk-table :is(table,tbody,tr,td){display:block;width:100%;box-sizing:border-box}.typed-risk-table tr{border:1px solid #cbd5e1;border-radius:6px;margin-bottom:12px}.typed-risk-table td{padding:12px!important;border:0!important}.typed-risk-table td::before{content:attr(data-label);display:block;font-weight:600;font-size:12px;color:#475467;margin-bottom:8px}.typed-risk-table .case-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}}
@media print{.typed-risk-table tr[hidden]{display:table-row!important}.typed-risk-table .case-table-footer{display:none}}

.typed-risk-table td.expected-value{background:#f1f5fb}.typed-risk-table .case-value dd{overflow-wrap:anywhere}
@media print{.typed-risk-group .case-table-footer{display:none}.typed-risk-table details>*{display:block!important}.typed-risk-table details::details-content{content-visibility:visible!important}}

@media(max-width:850px){.typed-risk-table .case-value{display:block;min-width:0}.typed-risk-table .case-value dd{text-align:left;margin-top:4px}}

/* Compact risk columns keep each default desktop row scannable. */
.typed-risk-column-table table{table-layout:auto;min-width:0!important}.typed-risk-column-table td{width:auto;padding:10px 12px!important}.typed-risk-column-table :is(th,td){font-size:12px}.typed-risk-column-table th{white-space:normal}.typed-risk-column-table .risk-input-value{font-variant-numeric:tabular-nums;white-space:nowrap}.risk-case-reuse{display:block;font-size:11px;font-weight:400;color:#475467;margin-top:5px}.risk-other-links{font-size:11px;color:#475467}.risk-case-toggle{border:1px solid #cbd5e1;border-radius:5px;padding:6px 10px;background:#fff;color:#44359c;font:inherit;font-weight:600;cursor:pointer}.risk-case-toggle:focus-visible{outline:2px solid #5046a4;outline-offset:2px}.typed-risk-detail-content{max-width:90ch;padding:10px 8px}.typed-risk-case-details>td{background:#f8fafc!important}.typed-risk-detail-content>h5{margin:0 0 8px}.typed-risk-detail-content .case-values{max-width:60ch}
@media(max-width:850px){.typed-risk-column-table .risk-input-value{white-space:normal}.typed-risk-column-table td{width:100%}.typed-risk-column-table .typed-risk-case{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.typed-risk-column-table .typed-risk-case>td:nth-last-child(-n+2){grid-column:1/-1}.typed-risk-column-table .typed-risk-case-details>td::before{display:none}.typed-risk-detail-content{padding:2px}.typed-risk-case-details{margin-top:-12px}}
