:root {
  color-scheme: light;
  --ink: #17211d;
  --muted: #64736c;
  --line: #dce4df;
  --paper: #f7f8f5;
  --panel: #ffffff;
  --green: #145c43;
  --green-soft: #e3f1ea;
  --amber: #9b5b13;
  --red: #a3362d;
  --shadow: 0 14px 45px rgba(26, 52, 41, .08);
  font-family: Inter, "Microsoft YaHei UI", "PingFang SC", system-ui, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: var(--paper); color: var(--ink); }
button, input, select, textarea { font: inherit; }
.topbar { height: 94px; display: flex; align-items: center; justify-content: space-between; padding: 16px 30px; color: white; background: linear-gradient(120deg, #103f31, #1a694f 60%, #4b765a); box-shadow: var(--shadow); }
.topbar h1 { margin: 1px 0 0; font-family: Georgia, serif; letter-spacing: -.03em; }
.eyebrow { font-size: 11px; letter-spacing: .14em; opacity: .7; }
.project-picker { display: flex; align-items: center; gap: 10px; }
.project-picker label { font-size: 12px; opacity: .8; }
.project-picker select { min-width: 210px; border: 1px solid rgba(255,255,255,.2); border-radius: 8px; padding: 9px 11px; background: rgba(255,255,255,.12); color: white; }
.project-picker option { color: var(--ink); background: white; }
.session-user { max-width: 180px; overflow: hidden; color: rgba(255,255,255,.88); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.shell { min-height: calc(100vh - 94px); display: grid; grid-template-columns: 210px 1fr; }
.sidebar { padding: 26px 15px; border-right: 1px solid var(--line); background: #eef2ee; display: flex; flex-direction: column; gap: 6px; }
.nav-item { border: 0; border-radius: 8px; padding: 11px 15px; text-align: left; color: #45544d; background: transparent; cursor: pointer; }
.nav-item:hover { background: rgba(255,255,255,.7); }
.nav-item.active { color: var(--green); background: white; font-weight: 700; box-shadow: 0 3px 16px rgba(35,76,59,.07); }
.sidebar-note { margin-top: auto; padding: 14px; border: 1px solid #cbdad2; border-radius: 10px; color: var(--muted); font-size: 12px; line-height: 1.65; background: rgba(255,255,255,.55); }
main { padding: 28px; max-width: 1440px; width: 100%; }
.tab { display: none; }
.tab.active { display: block; }
.page-head { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 20px; gap: 20px; }
.page-head h2 { margin: 0 0 5px; font-size: 25px; }
.page-head p { margin: 0; color: var(--muted); }
.grid { display: grid; gap: 15px; }
.grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.card { border: 1px solid var(--line); border-radius: 12px; background: var(--panel); box-shadow: 0 5px 22px rgba(31,54,45,.045); padding: 18px; }
.card h3 { margin: 0 0 12px; font-size: 16px; }
.metric { font-family: Georgia, serif; font-size: 34px; color: var(--green); }
.metric-label { color: var(--muted); font-size: 12px; }
.button { border: 0; border-radius: 8px; padding: 9px 14px; cursor: pointer; font-weight: 650; }
.button.primary { background: var(--green); color: white; }
.button.secondary { border: 1px solid rgba(255,255,255,.45); color: white; background: transparent; }
.button.ghost { border: 1px solid var(--line); color: var(--ink); background: white; }
.button.danger { color: var(--red); border: 1px solid #ecc7c3; background: #fff8f7; }
.button.small { padding: 6px 9px; font-size: 12px; }
.stack { display: grid; gap: 12px; }
.row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.item { border: 1px solid var(--line); border-radius: 10px; padding: 14px; background: white; }
.item-title { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.item-title strong { font-size: 14px; }
.meta { color: var(--muted); font-size: 12px; line-height: 1.6; }
.badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 3px 8px; font-size: 11px; font-weight: 700; background: #edf1ee; color: #536159; }
.badge.accepted, .badge.completed, .badge.passed, .badge.complete { color: var(--green); background: var(--green-soft); }
.badge.open, .badge.running, .badge.queued { color: var(--amber); background: #fff1d8; }
.badge.failed, .badge.blocker, .badge.rejected { color: var(--red); background: #fde9e7; }
.badge.danger { color: var(--red); background: #fde9e7; }
form.inline-form { display: grid; grid-template-columns: 1fr 1fr auto; gap: 10px; margin-bottom: 16px; }
form.editor { display: grid; gap: 10px; }
label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; }
input, select, textarea { width: 100%; border: 1px solid #cfd9d3; border-radius: 8px; padding: 9px 10px; color: var(--ink); background: white; }
textarea { min-height: 100px; resize: vertical; line-height: 1.55; }
pre { max-height: 320px; overflow: auto; white-space: pre-wrap; word-break: break-word; border-radius: 8px; padding: 12px; background: #f3f5f2; font-size: 12px; }
.notice { position: fixed; z-index: 20; top: 103px; right: 20px; max-width: 440px; padding: 12px 16px; border-radius: 9px; color: white; background: #263c33; box-shadow: var(--shadow); }
.notice.error { background: var(--red); }
.modal { position: fixed; inset: 0; z-index: 30; display: grid; place-items: center; background: rgba(10,25,19,.48); }
.modal[hidden] { display: none; }
.modal-card { width: min(480px, calc(100vw - 32px)); display: grid; gap: 16px; padding: 22px; border-radius: 14px; background: white; box-shadow: var(--shadow); }
.modal-title { display: flex; align-items: center; justify-content: space-between; }
.modal-title h2 { margin: 0; }
.icon-button { border: 0; background: transparent; font-size: 25px; cursor: pointer; }
.form-error { padding: 9px 11px; border-radius: 8px; color: var(--red); background: #fff1ef; font-size: 13px; }
.check-list { display: grid; gap: 8px; }
.check { border-left: 4px solid var(--line); padding: 9px 12px; background: #f8faf8; }
.check.blocker { border-color: var(--red); }
.check.warning { border-color: #e0a64a; }
.empty { color: var(--muted); padding: 25px 10px; text-align: center; }
@media (max-width: 900px) {
  .topbar { height: auto; align-items: flex-start; gap: 15px; flex-direction: column; }
  .project-picker { width: 100%; flex-wrap: wrap; }
  .project-picker select { flex: 1; }
  .shell { grid-template-columns: 1fr; }
  .sidebar { flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); padding: 10px; }
  .sidebar-note { display: none; }
  main { padding: 18px; }
  .grid.four, .grid.two { grid-template-columns: 1fr; }
  form.inline-form { grid-template-columns: 1fr; }
}

/* 写作管线与提案审查 */
.check-inline { display: inline-flex; align-items: center; gap: 6px; color: var(--ink); font-size: 12px; margin-right: 10px; }
.check-inline input { width: auto; }
.diff-row { border-left: 4px solid var(--line); padding: 8px 12px; background: #f8faf8; }
.diff-row.changed { border-color: #e0a64a; background: #fffaf0; }
.diff-row pre { max-height: 160px; margin-top: 6px; }
.waive-reason { margin-top: 6px; font-size: 12px; }
.badge.high, .badge.awaiting_approval, .badge.awaiting { color: #e0761f; background: #fdeeda; }
.badge.incomplete { color: #e0761f; background: #fdeeda; }
.badge.baseline_building, .badge.optimizing, .badge.planning { color: var(--amber); background: #fff1d8; }
.badge.baseline_ready, .badge.release_candidate, .badge.awaiting_final_approval { color: var(--green); background: var(--green-soft); }
.badge.baseline_ready_degraded, .badge.awaiting_human_input, .badge.budget_exhausted,
.badge.blocked_missing_evidence, .badge.stagnated, .badge.oscillating { color: var(--red); background: #fde9e7; }
.badge.medium { color: #5a6b74; background: #e9eff2; }
.loop-card { display: grid; gap: 8px; }
.loop-progress { height: 5px; overflow: hidden; border-radius: 999px; background: #edf1ee; }
.loop-progress span { display: block; height: 100%; background: var(--green); }
.compact-select { width: auto; min-width: 210px; padding: 6px 8px; font-size: 12px; }
h4 { margin: 14px 0 8px; }

/* 分角色模型路由 */
.model-routing-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.model-routing-note { display: flex; flex-direction: column; justify-content: center; gap: 4px; padding: 9px 12px; border: 1px dashed #cbdad2; border-radius: 8px; background: #f8faf8; }
.model-routing-note strong { color: var(--ink); font-size: 12px; }
.model-routing-note span { color: var(--muted); font-size: 11px; }
.model-routes { display: flex; flex-wrap: wrap; gap: 5px 12px; padding: 7px 9px; border-radius: 8px; background: #f6f8f6; }
.model-route { color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
.model-route strong { color: var(--ink); }
.model-route em { color: var(--green); font-style: normal; }
.evidence-preflight { border: 1px solid var(--line); border-radius: 10px; padding: 12px; background: #f8faf8; }
.evidence-preflight.has-gaps { border-color: #d9a441; background: #fffaf0; }
.evidence-preflight .evidence-gap-ack { margin-top: 8px; align-items: flex-start; }

/* M4-0 可视化写作工作流 */
.workflow-panel { margin-top: 14px; overflow: hidden; border: 1px solid #cfd9d3; border-radius: 12px; background: #f5f7f4; }
.workflow-panel.runtime { margin-top: 16px; background: #f8faf8; box-shadow: inset 0 1px 0 rgba(255,255,255,.8); }
.workflow-panel[hidden] { display: none; }
.workflow-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 13px 15px; border-bottom: 1px solid var(--line); background: white; }
.workflow-panel-head h3, .workflow-panel-head h4 { margin: 0 0 3px; }
.workflow-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; min-height: 400px; }
.workflow-placeholder { display: grid; min-height: 390px; place-items: center; color: var(--muted); }
.workflow-canvas-scroll { min-width: 0; height: min(64vh, 680px); overflow: auto; overscroll-behavior: contain; background-color: #eef2ef; background-image: radial-gradient(#c8d2cc 1px, transparent 1px); background-size: 18px 18px; scrollbar-color: #aebdb5 #edf1ee; }
.workflow-canvas { position: relative; isolation: isolate; }
.workflow-wires { position: absolute; z-index: 0; inset: 0; overflow: visible; pointer-events: none; }
.workflow-edge { fill: none; stroke: #8ca197; stroke-width: 2; opacity: .8; }
.workflow-wires marker path { fill: #718a7e; }
.workflow-node { position: absolute; z-index: 1; display: flex; flex-direction: column; gap: 7px; overflow: hidden; padding: 10px 11px; border: 1px solid #bfcac4; border-left: 5px solid #8ca197; border-radius: 9px; text-align: left; color: var(--ink); background: rgba(255,255,255,.97); box-shadow: 0 6px 18px rgba(29,52,42,.1); cursor: pointer; }
.workflow-node:hover { border-color: #6e8c7e; box-shadow: 0 9px 24px rgba(29,52,42,.16); transform: translateY(-1px); }
.workflow-node:focus-visible, .workflow-node.selected { outline: 3px solid rgba(20,92,67,.22); border-color: var(--green); }
.workflow-node.status-running, .workflow-node.status-queued { border-left-color: #d78c27; background: #fffaf1; }
.workflow-node.status-completed, .workflow-node.status-complete, .workflow-node.status-passed { border-left-color: var(--green); background: #f7fcf9; }
.workflow-node.status-degraded { border-left-color: #d78c27; background: #fffaf1; }
.workflow-node.status-failed, .workflow-node.status-blocked { border-left-color: var(--red); background: #fff8f7; }
.workflow-node.status-disabled, .workflow-node.status-skipped, .workflow-node.status-canceled { border-left-color: #8d9792; opacity: .72; background: #f2f4f2; }
.workflow-node-top { display: flex; align-items: center; justify-content: space-between; gap: 7px; }
.workflow-node-role { overflow: hidden; color: var(--muted); font-size: 10px; font-weight: 750; letter-spacing: .03em; text-overflow: ellipsis; white-space: nowrap; }
.workflow-node strong { overflow: hidden; font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.workflow-node-model { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.workflow-node-progress { display: block; height: 4px; overflow: hidden; border-radius: 999px; background: #e4e9e6; }
.workflow-node-progress i { display: block; height: 100%; background: var(--green); }
.workflow-node.status-running .workflow-node-progress i, .workflow-node.status-queued .workflow-node-progress i { background: #d78c27; }
.workflow-node.status-failed .workflow-node-progress i, .workflow-node.status-blocked .workflow-node-progress i { background: var(--red); }
.workflow-node-progress-text { color: var(--muted); font-size: 9px; }
.workflow-status { display: inline-flex; flex: 0 0 auto; align-items: center; border-radius: 999px; padding: 3px 7px; color: #536159; background: #e8eeea; font-size: 10px; font-weight: 750; white-space: nowrap; }
.workflow-status.running, .workflow-status.queued, .workflow-status.waiting { color: #8a520d; background: #fff0d3; }
.workflow-status.completed, .workflow-status.complete, .workflow-status.passed, .workflow-status.ready { color: var(--green); background: var(--green-soft); }
.workflow-status.degraded { color: #8a520d; background: #fff0d3; }
.workflow-status.failed, .workflow-status.blocked { color: var(--red); background: #fde9e7; }
.workflow-status.disabled, .workflow-status.skipped, .workflow-status.canceled { color: #626e68; background: #e5e9e6; }
.workflow-status.locked { color: #515c57; background: #e8ece9; }
.workflow-inspector { min-width: 0; padding: 15px; border-left: 1px solid var(--line); background: white; }
.workflow-inspector .empty { padding-top: 90px; }
.workflow-inspector-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 9px; margin-bottom: 14px; }
.workflow-inspector-head h4 { margin: 3px 0 0; font-size: 15px; }
.workflow-inspector label { margin-bottom: 12px; }
.workflow-lock-note { margin: 12px 0; padding: 9px 10px; border: 1px dashed #c4d0c9; border-radius: 8px; color: var(--muted); background: #f7f9f7; font-size: 11px; line-height: 1.55; }
.workflow-detail-list { display: grid; gap: 7px; margin: 0 0 14px; }
.workflow-detail-list div { display: grid; grid-template-columns: 68px minmax(0, 1fr); gap: 8px; padding-bottom: 6px; border-bottom: 1px solid #edf0ee; }
.workflow-detail-list dt { color: var(--muted); font-size: 11px; }
.workflow-detail-list dd { margin: 0; overflow-wrap: anywhere; font-size: 11px; }
.workflow-progress-summary { display: grid; gap: 8px; padding: 14px 15px; border-bottom: 1px solid var(--line); background: #fbfdfb; }
.workflow-progress-number { display: flex; align-items: baseline; gap: 12px; }
.workflow-progress-number strong { color: var(--green); font-family: Georgia, serif; font-size: 28px; }
.workflow-progress-number span { color: var(--ink); font-size: 12px; }
.workflow-progress-track { height: 8px; overflow: hidden; border-radius: 999px; background: #e3e9e5; }
.workflow-progress-track i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #1c7254, #57a17e); transition: width .25s ease; }
.workflow-recent-error { display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px; border: 1px solid #ecc7c3; border-radius: 8px; color: var(--red); background: #fff8f7; font-size: 11px; }
.workflow-recent-error span { color: #77433e; overflow-wrap: anywhere; }

/* M4-1 Workflow Studio */
.workflow-panel-head.studio { align-items: center; }
.workflow-studio-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 7px; }
.workflow-revision-badge { padding: 4px 8px; border: 1px solid #d6dfda; border-radius: 999px; color: #52625a; background: #f6f8f6; font: 10px/1.2 ui-monospace, monospace; }
.workflow-import { cursor: pointer; }
.workflow-compile-result { display: flex; align-items: center; gap: 12px; width: 100%; padding: 8px 14px; border: 0; border-bottom: 1px solid; text-align: left; }
.workflow-compile-result strong { flex: 0 0 auto; font-size: 11px; }
.workflow-compile-result span { overflow: hidden; font: 10px/1.4 ui-monospace, monospace; text-overflow: ellipsis; white-space: nowrap; }
.workflow-compile-result.valid { color: #156343; border-color: #b9d9c8; background: #eff9f3; }
.workflow-compile-result.warning { color: #81500c; border-color: #ead5a9; background: #fff8e9; }
.workflow-compile-result.invalid { color: #8d3029; border-color: #edc4c0; background: #fff2f0; cursor: pointer; }
.workflow-canvas-shell { position: relative; min-width: 0; overflow: hidden; background: #202221; }
.workflow-canvas-toolbar { position: relative; z-index: 8; display: flex; flex-wrap: wrap; align-items: center; gap: 7px; min-height: 44px; padding: 6px 9px; color: #d9dddb; border-bottom: 1px solid #111; background: #303332; box-shadow: 0 3px 10px rgba(0,0,0,.22); }
.workflow-tool-group { display: flex; align-items: center; gap: 2px; padding: 2px; border: 1px solid #484b49; border-radius: 6px; background: #282a29; }
.workflow-tool-group:not(.workflow-search) { flex: 0 0 auto; }
.workflow-tool-group button, .workflow-tool-group select { flex: 0 0 auto; min-height: 27px; border: 0; border-radius: 4px; padding: 4px 7px; color: #dfe3e1; background: transparent; font-size: 10px; white-space: nowrap; cursor: pointer; }
.workflow-tool-group button:hover, .workflow-tool-group button.active, .workflow-tool-group select:hover { color: white; background: #4a4e4c; }
.workflow-tool-group button:disabled { opacity: .35; cursor: default; }
.workflow-tool-group select { background: #303332; }
.workflow-tool-group select option { color: #e5e8e6; background: #303332; }
.workflow-tool-group.workflow-search { flex: 1 1 150px; max-width: 250px; }
.workflow-tool-group.workflow-search input { min-width: 70px; width: 100%; height: 27px; border: 0; color: #f1f3f2; background: transparent; font-size: 10px; outline: 0; }
.workflow-tool-note { margin-left: auto; color: #aeb5b1; font: 10px/1.2 ui-monospace, monospace; }
.workflow-viewport { position: relative; height: min(70vh, 740px); min-height: 480px; overflow: hidden; touch-action: none; user-select: none; cursor: grab; background-color: #1e201f; background-image: radial-gradient(#3c403e 1px, transparent 1px), linear-gradient(rgba(255,255,255,.015) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.015) 1px, transparent 1px); background-size: 20px 20px, 100px 100px, 100px 100px; }
.workflow-viewport:active { cursor: grabbing; }
.workflow-camera { position: absolute; inset: 0 auto auto 0; transform-origin: 0 0; will-change: transform; }
.workflow-canvas { position: relative; isolation: isolate; }
.workflow-wires { position: absolute; z-index: 0; inset: 0; overflow: visible; pointer-events: auto; }
.workflow-edge { fill: none; stroke: #85908a; stroke-width: 2; opacity: .74; pointer-events: none; transition: opacity .12s, stroke-width .12s; }
.workflow-edge-hit { fill: none; stroke: transparent; stroke-width: 16; pointer-events: stroke; cursor: pointer; }
.workflow-edge-hit:hover + .workflow-edge, .workflow-edge.selected { opacity: 1; stroke-width: 4; filter: drop-shadow(0 0 3px rgba(255,255,255,.2)); }
.workflow-edge-hit:focus-visible { outline: none; stroke: rgba(110,181,231,.16); }
.workflow-edge.dimmed { opacity: .14; }
.workflow-edge.aggregate { stroke-dasharray: 8 5; stroke-width: 2.6; }
.workflow-edge.type-control { stroke: #a8b1ac; }
.workflow-edge.type-evidence { stroke: #68c184; }
.workflow-edge.type-manuscript { stroke: #7cbced; }
.workflow-edge.type-review { stroke: #efad56; }
.workflow-edge.type-advice { stroke: #b693ed; }
.workflow-edge.type-artifact { stroke: #ef78bb; }
.workflow-edge.type-bundle { stroke: #8fd3c7; }
.workflow-wires marker path.type-control { fill: #a8b1ac; }
.workflow-wires marker path.type-evidence { fill: #68c184; }
.workflow-wires marker path.type-manuscript { fill: #7cbced; }
.workflow-wires marker path.type-review { fill: #efad56; }
.workflow-wires marker path.type-advice { fill: #b693ed; }
.workflow-wires marker path.type-artifact { fill: #ef78bb; }
.workflow-wires marker path.type-bundle { fill: #8fd3c7; }
.workflow-edge-preview { fill: none; stroke: #f4f6f5; stroke-width: 2; stroke-dasharray: 6 4; pointer-events: none; }
.workflow-node { position: absolute; z-index: 2; display: flex; flex-direction: column; gap: 7px; overflow: visible; box-sizing: border-box; padding: 10px 12px; border: 1px solid #4c504e; border-top: 4px solid #77837d; border-left-width: 1px; border-radius: 8px; text-align: left; color: #e8ebe9; background: linear-gradient(#373a38, #303230); box-shadow: 0 7px 18px rgba(0,0,0,.34); cursor: move; }
.workflow-node:hover { transform: none; border-color: #79847e; box-shadow: 0 9px 23px rgba(0,0,0,.42); }
.workflow-node:focus-visible, .workflow-node.selected { outline: 3px solid rgba(87,166,223,.3); border-color: #6eb5e7; }
.workflow-node.locked-position { cursor: not-allowed; }
.workflow-node.locked-position::after { content: "⌕"; position: absolute; right: 7px; bottom: 5px; color: #9ca5a0; font-size: 11px; }
.workflow-node.macro { border-top-color: #a773b4; background: linear-gradient(#49384c, #382d3a); cursor: pointer; }
.workflow-node.status-running, .workflow-node.status-queued { border-top-color: #e09b3f; background: linear-gradient(#463d2e, #34312a); }
.workflow-node.status-completed, .workflow-node.status-complete, .workflow-node.status-passed { border-top-color: #4db47f; background: linear-gradient(#314038, #2d3430); }
.workflow-node.status-degraded { border-top-color: #d99a3f; background: linear-gradient(#463d2e, #34312a); }
.workflow-node.status-failed, .workflow-node.status-blocked { border-top-color: #df6e65; background: linear-gradient(#493433, #382e2d); }
.workflow-node.status-disabled, .workflow-node.status-skipped, .workflow-node.status-canceled { border-top-color: #737a76; opacity: .68; color: #b6bcb9; background: #303230; }
.workflow-node .workflow-node-role { color: #acb4b0; }
.workflow-node-top, .workflow-node > strong, .workflow-node .workflow-node-model, .workflow-node .workflow-node-progress, .workflow-node .workflow-node-progress-text { flex: 0 0 auto; }
.workflow-node > strong { overflow: hidden; color: #f4f6f5; font-size: 13px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.workflow-node .workflow-node-model, .workflow-node .workflow-node-progress-text { color: #acb4b0; line-height: 1.35; }
.workflow-node .workflow-node-progress { min-height: 4px; background: #202220; }
.workflow-node .workflow-node-progress-text { padding-right: 48px; }
.workflow-node .workflow-status { color: #c6ccc9; background: #252826; }
.workflow-node .workflow-status.running, .workflow-node .workflow-status.queued { color: #ffd28c; background: #4a3a25; }
.workflow-node .workflow-status.completed, .workflow-node .workflow-status.ready { color: #9ce0bc; background: #244434; }
.workflow-node .workflow-status.failed, .workflow-node .workflow-status.blocked { color: #ffb0aa; background: #522e2b; }
.workflow-port { position: absolute; z-index: 4; display: flex; align-items: center; gap: 5px; height: 20px; border: 0; padding: 0; color: #c4cac7; background: transparent; font-size: 9px; transform: translateY(-50%); cursor: crosshair; }
.workflow-port.input { left: -7px; flex-direction: row; }
.workflow-port.output { right: -7px; flex-direction: row; }
.workflow-port.input span { transform: translateX(5px); }
.workflow-port.output span { transform: translateX(-5px); }
.workflow-port i, .workflow-port-dot { display: inline-block; flex: 0 0 auto; width: 10px; height: 10px; box-sizing: border-box; border: 2px solid #202220; border-radius: 50%; background: #a8b1ac; box-shadow: 0 0 0 1px #7c8580; }
.workflow-port:hover i { width: 13px; height: 13px; box-shadow: 0 0 0 3px rgba(255,255,255,.14); }
.workflow-port.type-evidence i, .workflow-port-dot.type-evidence { background: #68c184; }
.workflow-port.type-manuscript i, .workflow-port-dot.type-manuscript { background: #7cbced; }
.workflow-port.type-review i, .workflow-port-dot.type-review { background: #efad56; }
.workflow-port.type-advice i, .workflow-port-dot.type-advice { background: #b693ed; }
.workflow-port.type-artifact i, .workflow-port-dot.type-artifact { background: #ef78bb; }
.workflow-port.type-bundle i, .workflow-port-dot.type-bundle { background: #8fd3c7; }
.workflow-group-toggle { position: absolute; right: 7px; bottom: 7px; width: 24px; height: 22px; border: 1px solid #7f6485; border-radius: 5px; color: white; background: #5a4260; cursor: pointer; }
.workflow-group-collapse { position: absolute; z-index: 5; right: 7px; bottom: 7px; height: 22px; border: 1px solid #65726c; border-radius: 5px; padding: 0 7px; color: #e8eeeb; background: #39413d; font-size: 9px; cursor: pointer; }
.workflow-group-collapse:hover { border-color: #87aa98; background: #46534c; }
.workflow-selection-box { position: absolute; z-index: 6; border: 1px solid #70b7e9; background: rgba(74,156,216,.14); pointer-events: none; }
.workflow-minimap { position: absolute; z-index: 7; right: 12px; bottom: 12px; overflow: hidden; border: 1px solid #555b58; border-radius: 7px; background: rgba(19,21,20,.86); box-shadow: 0 5px 18px rgba(0,0,0,.4); pointer-events: none; }
.workflow-minimap > div { position: relative; transform-origin: 0 0; }
.workflow-minimap i { position: absolute; display: block; border: 1px solid #7b8580; border-radius: 1px; background: #4d5551; }
.workflow-minimap i.selected { border-color: #78bde9; background: #3f7da5; }
.workflow-minimap span { position: absolute; inset: 6px; border: 1px solid rgba(255,255,255,.2); pointer-events: none; }
.workflow-camera-hint { position: absolute; z-index: 5; left: 12px; bottom: 10px; color: #808985; font-size: 9px; pointer-events: none; }
.workflow-drawer { position: absolute; z-index: 12; top: 48px; right: 0; bottom: 0; width: min(330px, 88%); overflow: auto; padding: 12px; color: #e4e7e5; border-left: 1px solid #555a57; background: rgba(42,45,43,.98); box-shadow: -12px 0 26px rgba(0,0,0,.28); }
.workflow-drawer-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.workflow-drawer-head button { width: 27px; height: 27px; border: 0; border-radius: 5px; color: white; background: #444946; cursor: pointer; }
.workflow-drawer .workflow-lock-note { color: #b8c0bc; border-color: #5b635f; background: #303432; }
.workflow-catalog-list { display: grid; gap: 8px; }
.workflow-catalog-item { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 5px 8px; padding: 9px; border: 1px solid #565d59; border-radius: 7px; background: #353936; }
.workflow-catalog-item > div:first-child { display: flex; flex-direction: column; }
.workflow-catalog-item span, .workflow-catalog-item .meta { color: #aeb6b2; font-size: 9px; }
.workflow-catalog-item .meta { grid-column: 1; }
.workflow-catalog-item button { grid-column: 2; grid-row: 1 / span 2; align-self: center; }
.workflow-help-grid { display: grid; grid-template-columns: max-content minmax(0,1fr); gap: 8px 10px; align-items: center; color: #cbd1ce; font-size: 11px; }
.workflow-help-grid kbd { padding: 3px 6px; border: 1px solid #646b67; border-radius: 4px; color: white; background: #222523; box-shadow: inset 0 -1px #111; }
.workflow-port-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 12px 0; padding-top: 10px; border-top: 1px solid #edf0ee; }
.workflow-port-summary strong { font-size: 10px; }
.workflow-port-summary ul { display: grid; gap: 5px; margin: 6px 0 0; padding: 0; list-style: none; font-size: 10px; }
.workflow-port-summary li { display: flex; align-items: center; gap: 5px; }
.workflow-port-summary small { color: var(--muted); }
.workflow-inspector-actions { align-items: stretch; }

@media (max-width: 1180px) {
  .workflow-studio-actions { justify-content: flex-start; }
  .workflow-canvas-toolbar { align-items: stretch; }
  .workflow-tool-group.workflow-search { order: 5; max-width: none; }
}

/* M3-0 只读工作稿阅读器 */
.manuscript-reader { margin: 0 0 15px; overflow: hidden; }
.manuscript-reader[hidden] { display: none; }
.manuscript-reader-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 12px; }
.manuscript-reader-head h3 { margin-bottom: 4px; }
.draft-watermark { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 -18px; padding: 9px 18px; color: #7f2d25; background: repeating-linear-gradient(135deg, #fff0ed, #fff0ed 16px, #fff8f6 16px, #fff8f6 32px); border-block: 1px solid #efc9c3; }
.draft-watermark strong { padding: 2px 7px; border: 1px solid #d99c93; border-radius: 999px; font-size: 11px; letter-spacing: .08em; background: rgba(255,255,255,.72); }
.draft-watermark span { margin-left: auto; font-size: 11px; }
.manuscript-reader-layout { display: grid; grid-template-columns: minmax(190px, 240px) minmax(0, 1fr); min-height: 480px; margin: 0 -18px -18px; }
.manuscript-nav { display: flex; flex-direction: column; gap: 5px; max-height: 72vh; overflow: auto; padding: 16px 12px; border-right: 1px solid var(--line); background: #f5f7f4; }
.manuscript-nav-item { display: flex; justify-content: space-between; align-items: center; gap: 8px; width: 100%; padding: 8px 9px; border: 0; border-radius: 7px; text-align: left; color: var(--ink); background: transparent; cursor: pointer; }
.manuscript-nav-item:hover, .manuscript-nav-item:focus-visible { background: white; outline: 1px solid #cbdad2; }
.quality-mark { flex: 0 0 auto; padding: 2px 6px; border-radius: 999px; color: #59665f; background: #e7ece9; font-size: 10px; font-weight: 700; }
.quality-mark.danger { color: var(--red); background: #fde9e7; }
.quality-mark.warning { color: var(--amber); background: #fff1d8; }
.quality-mark.draft { color: #52645b; background: #e8eeea; }
.manuscript-reading-pane { max-height: 72vh; overflow: auto; scroll-behavior: smooth; padding: 26px clamp(22px, 5vw, 68px) 60px; background: #fff; }
.manuscript-section { max-width: 880px; margin: 0 auto 46px; scroll-margin-top: 16px; }
.manuscript-section + .manuscript-section { padding-top: 32px; border-top: 1px solid var(--line); }
.manuscript-section-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 18px; }
.manuscript-section-head h2 { margin: 3px 0 0; font-family: Georgia, "Microsoft YaHei UI", serif; font-size: 23px; }
.manuscript-prose { color: #202924; font-family: Georgia, "Noto Serif SC", "Songti SC", serif; font-size: 15px; line-height: 1.9; white-space: pre-wrap; overflow-wrap: anywhere; }

@media (max-width: 1100px) {
  .model-routing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .workflow-layout { grid-template-columns: minmax(0, 1fr) 240px; }
}

@media (max-width: 760px) {
  .model-routing-grid { grid-template-columns: 1fr; }
  .workflow-panel-head { flex-direction: column; }
  .workflow-layout { grid-template-columns: 1fr; }
  .workflow-canvas-scroll { height: 58vh; min-height: 360px; }
  .workflow-inspector { border-top: 1px solid var(--line); border-left: 0; }
  .workflow-inspector .empty { padding-top: 24px; }
  .manuscript-reader-head { flex-direction: column; }
  .draft-watermark span { width: 100%; margin-left: 0; }
  .manuscript-reader-layout { grid-template-columns: 1fr; }
  .manuscript-nav { flex-direction: row; max-height: none; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--line); }
  .manuscript-nav-item { min-width: 170px; }
  .manuscript-reading-pane { max-height: 65vh; padding: 22px 18px 48px; }
}

/* M4-UX 领域信息架构、分类与时间视图 */
.section-kicker { margin-bottom: 5px; color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.page-summary { display: flex; align-items: center; gap: 9px; min-width: 150px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 10px; background: white; }
.page-summary strong { color: var(--green); font: 28px/1 Georgia, serif; }
.page-summary span { color: var(--muted); font-size: 11px; line-height: 1.35; }
.time-meta { display: flex; flex-wrap: wrap; gap: 5px 14px; margin: 8px 0; color: var(--muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.time-meta span { display: inline-flex; gap: 5px; }
.time-meta b { color: #46564e; font-size: 10px; }
.time-meta .overdue, .time-meta .overdue b { color: var(--red); }
.overview-task-card { margin-top: 15px; }
.overview-task-card h3 { margin-bottom: 4px; }
form.inline-form.task-create { grid-template-columns: minmax(180px, 1fr) minmax(120px, .55fr) minmax(180px, .7fr) auto; margin: 15px 0; }
.task-board { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; align-items: start; }
.task-column { min-width: 0; padding: 10px; border: 1px solid #e2e8e4; border-radius: 10px; background: #f5f7f5; }
.task-column-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 9px; font-size: 12px; }
.task-column-head span, .count-pill { display: inline-flex; align-items: center; min-height: 23px; padding: 3px 8px; border-radius: 999px; color: #536159; background: #e6ece8; font-size: 10px; font-weight: 750; }
.count-pill.warning { color: var(--amber); background: #fff1d8; }
.work-item { padding: 11px; }
.blocked-reason-box { margin: 6px 0; padding: 5px 8px; background: #fff5f5; border-left: 3px solid #e53e3e; color: #c53030; font-size: 11px; border-radius: 2px; line-height: 1.4; word-break: break-word; }
.compact-actions { margin-top: 8px; gap: 5px; }
.compact-actions .button { padding: 4px 7px; font-size: 10px; }
.event-list > div { padding-bottom: 8px; border-bottom: 1px solid #edf1ee; }
.filter-bar { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 15px 0; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #f0f4f1; }
.filter-group { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.filter-group > strong { margin-right: 2px; color: #526159; font-size: 10px; text-transform: uppercase; }
.filter-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 29px; border: 1px solid transparent; border-radius: 999px; padding: 5px 9px; color: #526159; background: rgba(255,255,255,.72); font-size: 11px; cursor: pointer; }
.filter-chip span { color: #7b8982; font-size: 9px; }
.filter-chip:hover { border-color: #b9c9c0; }
.filter-chip.active { color: white; border-color: var(--green); background: var(--green); }
.filter-chip.active span { color: #cfe7db; }
.classified-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.material-library-section { margin-bottom: 15px; }
.material-section-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 2px 0 12px; }
.material-section-head h3 { margin-bottom: 4px; }
.artifact-item, .proposal-item, .review-item, .debt-item { display: grid; align-content: start; gap: 7px; }
.artifact-item .button, .proposal-item > .button, .debt-item > .button { justify-self: start; }
.category-label { margin-bottom: 4px; color: var(--green); font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.id-meta { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.domain-tabs { display: flex; gap: 5px; margin-bottom: 12px; padding: 4px; overflow-x: auto; border: 1px solid var(--line); border-radius: 11px; background: #edf2ef; }
.domain-tab { display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; border: 0; border-radius: 8px; padding: 9px 12px; color: #536159; background: transparent; font-size: 12px; font-weight: 700; cursor: pointer; }
.domain-tab span { min-width: 20px; padding: 2px 6px; border-radius: 999px; color: #718078; background: rgba(255,255,255,.68); font-size: 9px; }
.domain-tab.active { color: var(--green); background: white; box-shadow: 0 2px 8px rgba(28,61,46,.08); }
.review-filter { margin-top: 0; }
.review-domain { min-width: 0; margin-bottom: 15px; }
.review-domain > .item-title { margin-bottom: 14px; }
.review-domain h3 { margin-bottom: 4px; }
.review-history { margin-top: 14px; border-top: 1px solid var(--line); padding-top: 12px; }
.review-history > summary { margin-bottom: 10px; color: var(--green); font-size: 12px; font-weight: 700; cursor: pointer; }
.candidate-lineage { margin-bottom: 15px; }
.candidate-lineage > .item-title { margin-bottom: 12px; }
.candidate-section-group, .candidate-loop-group { border: 1px solid var(--line); border-radius: 9px; background: #fbfcfb; }
.candidate-section-group + .candidate-section-group { margin-top: 9px; }
.candidate-section-group > summary, .candidate-loop-group > summary, .candidate-archive > summary {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; list-style: none; cursor: pointer;
}
.candidate-section-group > summary::-webkit-details-marker, .candidate-loop-group > summary::-webkit-details-marker,
.candidate-archive > summary::-webkit-details-marker { display: none; }
.candidate-section-group > summary { padding: 11px 13px; color: var(--ink); font-size: 12px; font-weight: 800; }
.candidate-section-group > summary::before, .candidate-loop-group > summary::before, .candidate-archive > summary::before {
  content: "›"; flex: 0 0 auto; color: var(--green); font-size: 18px; line-height: 1; transform: rotate(0); transition: transform .14s ease;
}
.candidate-section-group[open] > summary::before, .candidate-loop-group[open] > summary::before,
.candidate-archive[open] > summary::before { transform: rotate(90deg); }
.candidate-section-group > summary > :first-child, .candidate-loop-group > summary > :first-child,
.candidate-archive > summary > :first-child { margin-right: auto; }
.candidate-section-group > summary > :last-child, .candidate-loop-group > summary > :last-child { color: var(--muted); font-size: 10px; font-weight: 600; }
.candidate-loop-group { margin: 0 10px 10px; border-style: dashed; background: white; }
.candidate-loop-group > summary { padding: 9px 11px; color: #536159; font-size: 10px; font-weight: 700; }
.candidate-loop-group.archived { background: #f7f8f7; }
.candidate-timeline { padding: 2px 11px 11px; }
.candidate-step { display: grid; grid-template-columns: 18px minmax(0, 1fr); position: relative; }
.candidate-step:not(:last-child)::before { content: ""; position: absolute; top: 15px; bottom: -4px; left: 5px; width: 2px; background: #dce5e0; }
.candidate-step-marker { position: relative; z-index: 1; width: 12px; height: 12px; margin-top: 13px; border: 3px solid white; border-radius: 50%; background: #9aaba1; box-shadow: 0 0 0 1px #9aaba1; }
.candidate-step.is-best .candidate-step-marker { background: var(--green); box-shadow: 0 0 0 1px var(--green); }
.candidate-step-body { min-width: 0; margin: 4px 0 7px; padding: 10px 11px; border: 1px solid #e4e9e6; border-radius: 8px; background: white; }
.candidate-step-body > .item-title { gap: 10px; }
.candidate-step-body > .item-title > div { display: grid; min-width: 0; gap: 5px; }
.candidate-step-body > .item-title strong { overflow-wrap: anywhere; }
.candidate-stage, .candidate-best { display: inline-flex; width: max-content; max-width: 100%; padding: 2px 7px; border-radius: 999px; font-size: 9px; font-weight: 800; }
.candidate-stage { color: #536159; background: #edf2ef; }
.candidate-best { flex: 0 0 auto; color: #0e5a3c; background: #dff2e8; }
.candidate-step-body > .button { margin-top: 8px; }
.check.audit-only { color: #72501b; border-color: #ead6ad; background: #fff8e8; }
.candidate-archive { margin-bottom: 15px; }
.candidate-archive > summary { min-height: 42px; }
.candidate-archive > summary > span:first-of-type { display: grid; gap: 3px; }
.candidate-archive > summary small { color: var(--muted); font-weight: 400; }
.candidate-archive[open] > summary { margin-bottom: 12px; }
.paper-quality-area { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line); }
.paper-quality-area > #review-workbench-panel { margin-top: 12px; }
#review-workbench-panel + .debt-center { margin-top: 15px; }
.debt-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 14px; }
.debt-summary div { display: flex; align-items: baseline; justify-content: space-between; padding: 9px 11px; border-radius: 8px; background: #f2f5f3; }
.debt-summary strong { color: var(--green); font: 22px/1 Georgia, serif; }
.debt-summary span { color: var(--muted); font-size: 10px; }
.debt-item { border-left: 4px solid #b8c5be; }
.debt-item.severity-blocker, .debt-item.severity-high { border-left-color: var(--red); }
.debt-item.severity-medium { border-left-color: #d79a3d; }
.active-loop-list > .item-title { margin: 4px 0 10px; }
.active-loop-list h3 { margin: 0; }
.audit-archive { margin-top: 12px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #f5f7f5; }
.audit-group { min-width: 0; padding: 10px; border: 1px solid #e0e6e2; border-radius: 8px; background: white; }
.audit-archive > summary, .audit-group > summary { display: flex; align-items: center; gap: 12px; cursor: pointer; list-style: none; }
.audit-archive > summary::-webkit-details-marker, .audit-group > summary::-webkit-details-marker { display: none; }
.audit-archive > summary::before, .audit-group > summary::before { content: "›"; flex: 0 0 auto; color: #697b70; font-size: 20px; line-height: 1; }
.audit-archive[open] > summary::before, .audit-group[open] > summary::before { transform: rotate(90deg); }
.audit-archive > summary > :first-child, .audit-group > summary > :first-child { display: grid; min-width: 0; gap: 4px; margin-right: auto; }
.audit-archive > summary small, .audit-group > summary small { color: var(--muted); font-size: 11px; font-weight: 400; overflow-wrap: anywhere; }
.audit-archive > summary .count-pill, .audit-group > summary .count-pill { flex-shrink: 0; }
.audit-archive[open] > summary, .audit-group[open] > summary { margin-bottom: 12px; }
.archived-loop, .archived-debt { background: #f9faf9; }
.debt-item.archived-debt { border-left-color: #bcc6bf; }
.archived-debt > .item-title strong { color: #536159; }
.review-agent-area, .review-runs, .manuscript-baseline { margin-top: 15px; }
.manuscript-baseline-list { display: grid; gap: 8px; margin-top: 12px; }
.manuscript-tools { display: grid; grid-template-columns: minmax(0,1fr) minmax(220px,.7fr) auto; gap: 10px; align-items: center; padding: 12px 0; }
.manuscript-tools .row { flex-wrap: nowrap; }
.manuscript-search input { min-width: 140px; }
.manuscript-tool-result { margin: 0 0 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 9px; background: #f6f8f6; }
.manuscript-search-results { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; margin-top: 8px; }
.manuscript-search-results button { display: grid; gap: 3px; min-width: 0; padding: 8px; border: 1px solid #dfe7e2; border-radius: 7px; text-align: left; color: var(--ink); background: white; cursor: pointer; }
.manuscript-search-results span { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.manuscript-diff-list { display: grid; gap: 8px; margin-top: 9px; }
.manuscript-diff-list > div { padding: 8px 10px; border-radius: 7px; background: white; }
.manuscript-diff-list > div > span { margin-left: 8px; color: var(--muted); font-size: 10px; }
.manuscript-diff-list p { margin: 5px 0 0; padding: 4px 7px; border-radius: 4px; font: 11px/1.45 ui-monospace,monospace; }
.manuscript-diff-list .diff-added { color: #155a3c; background: #eaf7f0; }
.manuscript-diff-list .diff-removed { color: #8c332b; background: #fff0ee; }
.manuscript-prose p { margin: 0 0 1.15em; }
.manuscript-prose ul { padding-left: 1.4em; }
.formula-inline, .formula-block { color: #214b3a; font-family: "Cambria Math", "STIX Two Math", serif; background: #f0f6f2; }
.formula-inline { padding: 1px 4px; border-radius: 4px; }
.formula-block { overflow-x: auto; margin: 18px 0; padding: 14px; border-left: 3px solid var(--green); text-align: center; white-space: pre-wrap; }
.citation-ref { padding: 0 3px; color: #1c674b; border-bottom: 1px dotted #1c674b; font-weight: 700; }
.manuscript-code { overflow-x: auto; padding: 12px; color: #e9efeb; border-radius: 7px; background: #27302b; }
.manuscript-figure { display: grid; place-items: center; min-height: 150px; margin: 18px 0; border: 1px dashed #aebfb5; border-radius: 8px; color: #6c7c73; background: #f4f7f5; }
.execution-plan { display: grid; gap: 9px; margin: 10px 0; padding: 12px; border: 1px solid #cbdad2; border-radius: 9px; background: #f5f8f6; }
.execution-plan.insufficient { border-color: #e6c88d; background: #fff9ed; }
.execution-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.execution-metrics div { display: grid; gap: 3px; padding: 8px; border-radius: 7px; background: white; }
.execution-metrics b { color: var(--green); font-size: 17px; }.execution-metrics span { color: var(--muted); font-size: 9px; }
.execution-batches, .execution-boundary { display: flex; flex-wrap: wrap; gap: 6px 12px; }
.execution-batches span, .execution-boundary span { padding: 4px 7px; border-radius: 5px; background: rgba(255,255,255,.78); font-size: 10px; }
.execution-boundary b { margin-right: 5px; color: #53645b; }
.batch-diff { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 12px 0; padding: 8px 10px; border-radius: 8px; background: #f3f6f4; }
.batch-diff span { display: inline-flex; gap: 4px; align-items: baseline; color: var(--muted); font-size: 10px; }.batch-diff b { color: var(--green); font-size: 16px; }
.review-finding-filters { display: grid; grid-template-columns: repeat(6,minmax(110px,1fr)); gap: 7px; margin: 10px 0; }
.review-finding-filters label { font-size: 9px; }.review-finding-filters select,.review-finding-filters input { margin-top: 3px; padding: 6px; font-size: 10px; }
.review-finding-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin: 10px 0; }
.review-finding-row { min-width: 0; padding: 10px; border: 1px solid var(--line); border-left: 4px solid #aabbb1; border-radius: 8px; background: #fff; }
.review-finding-row.blocking { border-left-color: var(--red); }.review-finding-row p { margin: 7px 0; font-size: 11px; }
.claim-evidence-card { margin-top: 8px; padding: 8px; border-radius: 6px; background: #eef5f1; }.claim-evidence-card pre { white-space: pre-wrap; }
.pagination { justify-content: flex-end; }

@media (max-width: 1180px) {
  .task-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .classified-list { grid-template-columns: 1fr; }
  .manuscript-tools { grid-template-columns: 1fr 1fr; }.export-switch { grid-column: 1 / -1; }
  .review-finding-filters { grid-template-columns: repeat(3,minmax(110px,1fr)); }
}

@media (max-width: 760px) {
  .page-head { flex-direction: column; }
  .page-summary { width: 100%; }
  form.inline-form.task-create, .task-board, .debt-summary { grid-template-columns: 1fr; }
  .domain-tabs { margin-inline: -3px; }
  .filter-bar { align-items: flex-start; flex-direction: column; }
  .manuscript-tools, .execution-metrics, .review-finding-list { grid-template-columns: 1fr; }
  .manuscript-tools .row { flex-wrap: wrap; }.manuscript-search-results { grid-template-columns: 1fr; }
  .review-finding-filters { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
