/* B43.0-S02: reuse the project shell, brand type and neutral/blue palette. */
.main.reviews-active { max-width: none; padding: 0; }
#reviewsPage { width: 100%; max-width: none; }
.review-shell { padding-top: 42px; padding-bottom: 70px; }
.review-shell .project-page-heading h1 { font-size: clamp(42px, 4vw, 62px); font-weight: 300; line-height: 1.15; }
.review-shell .project-breadcrumb { font-size: 15px; margin-bottom: 24px; }
.review-shell .project-number, .review-shell .project-stage, .review-shell .project-source-note { font-size: 14px; }
.review-shell .project-card-facts { font-size: 15px; line-height: 1.7; }
.review-shell .project-card { border-radius: 2px; box-shadow: none; padding: 24px; }
.review-shell .project-card:hover { box-shadow: none; border-color: var(--primary); }
.review-shell .project-card h2 { font-weight: 400; font-size: 23px; }
.review-shell .project-summary { margin-top: 30px; }
.review-toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 24px; padding: 24px 0; margin: 24px 0 30px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.review-toolbar label { display: flex; flex-direction: column; gap: 8px; font-size: 14px; color: var(--text-secondary); }
.review-toolbar input, .review-toolbar select { height: 44px; padding: 0 12px; border: 1px solid var(--border); border-radius: 2px; color: var(--text); background: var(--card-bg); font: inherit; font-size: 15px; max-width: 100%; }
.review-toolbar input { width: 300px; }
.review-toolbar [data-count] { margin-left: auto; padding-bottom: 10px; font-size: 15px; color: var(--text-secondary); }
.review-card-action { margin-top: auto; padding-top: 18px; border-top: 1px solid var(--border); display: flex; justify-content: space-between; gap: 12px; font-size: 15px; }
.review-card-action span { color: var(--text-secondary); font-size: 14px; }
.review-shell a { color: var(--primary); text-decoration: none; }
.review-shell a:hover { text-decoration: underline; }
.review-shell a:focus-visible, .review-shell button:focus-visible, .review-shell input:focus-visible, .review-shell select:focus-visible, .review-shell summary:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.review-context { display: flex; gap: 24px; flex-wrap: wrap; font-size: 15px; padding-top: 18px; }
.review-specialties { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; margin: 30px 0; }
.review-specialty { min-width: 0; padding: 24px; background: var(--card-bg); border: 1px solid var(--border); border-top: 3px solid var(--primary); }
.review-specialty header { display: flex; align-items: baseline; gap: 18px; margin-bottom: 24px; }
.review-specialty header > span { font-size: 17px; font-weight: 600; color: var(--primary); }
.review-specialty h2 { font-size: 28px; font-weight: 300; }
.review-specialty dl { display: grid; gap: 12px; font-size: 16px; line-height: 1.7; }
.review-specialty dl > div { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 18px; }
.review-specialty dt { font-weight: 600; }
.review-specialty dd { margin: 0; color: var(--text-secondary); overflow-wrap: anywhere; }
.review-specialty-links { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--border); font-size: 15px; }
.review-specialty-links > span { color: var(--text-secondary); }
.review-support { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.review-shell .project-section { min-width: 0; border-radius: 2px; box-shadow: none; }
.review-shell .project-section h2 { font-size: 26px; font-weight: 300; }
.review-links { display: flex; flex-direction: column; gap: 12px; font-size: 15px; line-height: 1.7; }
.review-links a { overflow-wrap: anywhere; }
.review-tasks { margin-top: 30px; }
.review-empty { font-size: 15px; line-height: 1.8; color: var(--text-secondary); }
.review-task { border-top: 1px solid var(--border); padding: 18px 0; font-size: 15px; }
.review-task summary { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; cursor: pointer; }
.review-task summary > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.review-note { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 1.8; margin-top: 18px; }
.review-guide { margin-top: 30px; }
.review-guide .project-section + .project-section { margin-top: 30px; }
.review-guide h2 > span { font-size: 17px; font-weight: 600; color: var(--primary); margin-right: 12px; }
.review-docs > div { display: grid; grid-template-columns: 145px minmax(0,1fr) 90px; gap: 24px; padding: 18px 0; border-top: 1px solid var(--border); font-size: 15px; overflow-wrap: anywhere; }
.review-doc-number { font-weight: 600; }
.review-docs > div > span:last-child { color: var(--text-secondary); }
.review-flow { margin-top: 32px; font-size: 15px; line-height: 1.65; }
.review-flow-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.review-flow-heading h2, .review-guide-title { font-size: 28px; font-weight: 300; line-height: 1.3; }
.review-flow-heading p { margin: 8px 0 0; color: var(--text-secondary); }
.review-flow-heading > a { flex-shrink: 0; }
.review-flow-entry { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 24px; border: 1px solid var(--border); background: var(--card-bg); }
.review-flow-entry > div { display: flex; align-items: baseline; gap: 18px; }
.review-flow-entry strong { font-size: 18px; font-weight: 500; }
.review-flow-entry > p { margin: 0; font-size: 14px; }
.review-flow-entry > p strong { font-size: 15px; }
.review-flow-feedback { display: block; margin-top: 4px; color: var(--text-secondary); }
.review-flow-label { display: block; font-size: 14px; color: var(--text-secondary); }
.review-flow-directions { display: grid; grid-template-columns: 2fr 1fr 1.2fr; gap: 24px; margin: 30px 0 0; }
.review-flow-direction { position: relative; min-width: 0; border-top: 2px solid var(--primary); }
.review-flow-direction::before { content: ""; position: absolute; height: 30px; border-left: 1px solid var(--border); left: 50%; top: -32px; }
.review-flow-direction > h3 { font-weight: 500; font-size: 20px; margin: 16px 0; }
.review-flow-branches { display: flex; gap: 20px; }
.review-flow-branch { flex: 1; min-width: 0; }
.review-flow-unit { padding: 16px; background: var(--card-bg); border: 1px solid var(--border); }
.review-flow-unit > span { color: var(--primary); font-size: 16px; font-weight: 600; }
.review-flow-unit h4 { font-size: 20px; font-weight: 400; margin: 4px 0 10px; }
.review-flow-unit p { color: var(--text-secondary); margin: 0; font-size: 14px; }
.review-flow-condition { min-height: 58px; padding: 12px 0; display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--text-secondary); }
.review-flow-condition > span { color: var(--primary); font-size: 22px; }
.review-flow-targets { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--border); }
.review-flow-targets li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 10px; padding: 12px 0; border-bottom: 1px solid var(--border); }
.review-flow-targets li > span { font-weight: 600; }
.review-flow-targets strong { font-weight: 400; }
.review-flow-future { margin: 12px 0 0; color: var(--text-secondary); font-size: 14px; }
.review-flow-results { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 32px; margin-top: 28px; padding: 20px 24px; background: var(--card-bg); border: 1px solid var(--border); }
.review-flow-results strong { display: block; margin-top: 4px; font-size: 18px; font-weight: 500; }
.review-flow-results p { margin: 6px 0 0; color: var(--text-secondary); font-size: 14px; }
.review-flow-close { border-left: 1px solid var(--border); padding-left: 24px; }
.review-flow-continuation { margin: 12px 0 0; font-size: 14px; color: var(--text-secondary); }
.review-guide-divider { border: 0; border-top: 1px solid var(--border); margin: 40px 0; }
.review-guide-title { margin-bottom: 28px; }
.review-view-tabs, .review-task-tabs { display: flex; flex-wrap: wrap; gap: 8px 24px; border-bottom: 1px solid var(--border); margin-top: 30px; }
.review-view-tabs a, .review-task-tabs a { display: flex; align-items: center; min-height: 48px; border-bottom: 3px solid transparent; padding: 8px 0; color: var(--text-secondary); font-size: 17px; }
.review-view-tabs a[aria-current], .review-task-tabs a[aria-current] { color: var(--primary); border-bottom-color: var(--primary); }
.review-task-tabs { margin-top: 12px; gap: 24px; }
.review-task-tabs a { font-size: 15px; }
.review-workbench .project-breadcrumb { margin-top: 24px; }
.review-workbench label { font-size: 16px; font-weight: 600; }
.review-workbench input, .review-workbench textarea, .review-workbench select { font: inherit; font-size: 15px; font-weight: 400; color: var(--text); background: var(--card-bg); border: 1px solid var(--border); border-radius: 2px; padding: 10px 12px; }
.review-workbench input, .review-workbench select { min-height: 44px; }
.review-workbench textarea { display: block; resize: vertical; width: 100%; min-height: 96px; line-height: 1.8; margin-top: 8px; }
.review-workbench textarea:focus-visible, .review-workbench dialog:focus-visible { outline: 2px solid var(--primary); outline-offset: 3px; }
.review-workbench button { min-height: 44px; }
.review-filter-bar { gap: 18px; margin-top: 0; padding-top: 24px; border-top: 0; }
.review-filter-bar input { width: 260px; }
.review-filter-bar select { max-width: 240px; }
.review-filter-bar label { font-size: 16px; }
.review-status { display: inline-flex; align-items: center; flex-shrink: 0; gap: 8px; min-height: 28px; padding: 2px 8px; border: 1px solid var(--border); font-size: 14px; color: var(--text-secondary); white-space: nowrap; }
.review-status[data-state="待审批"] { color: var(--primary); border-color: var(--primary); }
.review-status[data-state="已结束"] { color: #27784E; border-color: #27784E; }
.review-notice { margin: 18px 0; border-left: 3px solid var(--primary); background: var(--card-bg); padding: 12px 18px; color: var(--text); font-size: 15px; line-height: 1.8; overflow-wrap: anywhere; }
.review-notice.is-error { border-color: #C0392B; }
.review-selection-bar { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin: 0 0 18px; font-size: 15px; color: var(--text-secondary); }
.review-selection-bar > span { margin-right: auto; }
.review-item-list { border-top: 1px solid var(--border); }
.review-item-row { display: flex; align-items: flex-start; gap: 18px; padding: 24px 0; border-bottom: 1px solid var(--border); }
.review-check { flex-shrink: 0; display: flex; align-items: center; justify-content: center; width: 44px; min-height: 44px; cursor: pointer; }
.review-check input { width: 18px; height: 18px; min-height: 18px; padding: 0; accent-color: var(--primary); }
.review-item-main { flex: 1; min-width: 0; }
.review-item-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; }
.review-item-heading h2 { min-width: 0; margin: 0; font-size: 23px; line-height: 1.45; font-weight: 400; overflow-wrap: anywhere; }
.review-item-heading h2 a { color: var(--text); }
.review-item-meta { display: flex; gap: 8px 18px; flex-wrap: wrap; color: var(--text-secondary); font-size: 14px; line-height: 1.8; }
.review-item-meta > span { overflow-wrap: anywhere; }
.review-current-task { margin: 8px 0 12px; color: var(--text); font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; }
.review-row-link { flex-shrink: 0; display: flex; align-items: center; min-height: 44px; font-size: 15px; }
.review-item-summary { padding: 24px 0 30px; border-bottom: 1px solid var(--border); }
.review-item-summary > .review-item-heading h2 { font-size: clamp(28px, 3vw, 36px); font-weight: 300; }
.review-item-summary .review-current-task { margin-top: 18px; }
.review-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 42px; align-items: start; padding-top: 30px; }
.review-reading { min-width: 0; }
.review-submission-heading { margin-bottom: 24px; }
.review-submission-heading h2 { font-size: 26px; font-weight: 300; line-height: 1.45; }
.review-submission-heading p, .review-batch-heading p, .review-batch-item > header p { color: var(--text-secondary); font-size: 14px; margin-top: 8px; }
.review-reading-section { margin-bottom: 30px; }
.review-reading-section h3 { font-size: 18px; font-weight: 600; margin: 0 0 12px; }
.review-prose { font-size: 16px; line-height: 1.9; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--text); }
.review-prose.review-empty { color: var(--text-secondary); }
.review-facts { font-size: 16px; line-height: 1.8; }
.review-facts > div { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 18px; margin: 8px 0; }
.review-facts dt { font-weight: 600; }
.review-facts dd { margin: 0; overflow-wrap: anywhere; }
.review-decision-panel { position: sticky; top: 76px; min-width: 0; padding: 24px; border: 1px solid var(--border); background: var(--card-bg); }
.review-decision-panel h2 { font-size: 23px; font-weight: 300; margin: 0 0 12px; }
.review-decision-panel > p { font-size: 15px; line-height: 1.8; margin-bottom: 18px; }
.review-decision-actions { display: flex; flex-direction: column; gap: 12px; margin: 18px 0; }
.review-decision-actions summary, .review-version-list summary, .review-project-materials summary, .review-batch-item summary { min-height: 44px; padding: 10px 0; font-size: 15px; cursor: pointer; }
.review-decision-actions details > button { margin: 8px 8px 0 0; }
.review-text-button { color: var(--primary); font: inherit; font-size: 15px; background: none; border: 0; padding: 8px; cursor: pointer; text-align: left; }
.review-text-button:hover { text-decoration: underline; }
.review-history { border-top: 1px solid var(--border); padding-top: 30px; margin-top: 42px; }
.review-history > h2, .review-comment h2 { font-size: 28px; font-weight: 300; margin-bottom: 24px; }
.review-history ol { list-style: none; padding: 0; margin: 0; }
.review-history li { padding: 18px 0; border-bottom: 1px solid var(--border); }
.review-history-heading { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin-bottom: 8px; font-size: 16px; }
.review-history-heading > span { font-size: 14px; color: var(--text-secondary); }
.review-history-heading > button { margin-left: auto; }
.review-version-list { margin-top: 18px; }
.review-version-list button { display: block; }
.review-comment { margin-top: 30px; max-width: 900px; }
.review-comment > button { margin-top: 12px; }
.review-project-materials { margin-top: 24px; border-top: 1px solid var(--border); }
.review-project-materials .review-links { padding: 18px 0; }
.review-batch-dialog { width: min(1100px, calc(100% - 48px)); max-width: none; max-height: calc(100dvh - 48px); padding: 30px; border: 1px solid var(--border); border-radius: 2px; background: var(--card-bg); color: var(--text); overscroll-behavior: contain; }
.review-batch-dialog::backdrop { background: rgba(27, 51, 72, .35); }
.review-batch-heading { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; }
.review-batch-heading h2 { font-size: 30px; font-weight: 300; }
.review-batch-heading > button { flex-shrink: 0; }
.review-batch-tools { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0; }
.review-batch-common { display: block; }
.review-batch-common > span { display: block; margin-top: 8px; color: var(--text-secondary); font-size: 14px; font-weight: 400; }
.review-batch-item { border-top: 1px solid var(--border); margin-top: 30px; padding-top: 24px; }
.review-batch-item > header h3 { font-size: 23px; font-weight: 400; line-height: 1.5; overflow-wrap: anywhere; }
.review-batch-item > details { margin-top: 12px; }
.review-batch-item .review-submission-heading { margin-top: 18px; }
.review-batch-decision { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 24px; margin-top: 18px; }
.review-batch-decision select { display: block; width: 100%; margin-top: 8px; }
.review-batch-footer { position: sticky; bottom: -30px; padding: 18px 0; margin-top: 24px; border-top: 1px solid var(--border); background: var(--card-bg); }
@media(max-width:1024px) { .review-filter-bar input { width: 220px; } .review-filter-bar select { max-width: 220px; } }
@media(max-width:900px) { .review-detail-layout { grid-template-columns: minmax(0, 1fr); gap: 24px; } .review-decision-panel { position: static; } }
@media(max-width:760px) {
  .review-filter-bar label, .review-filter-bar input, .review-filter-bar select { width: 100%; max-width: none; }
  .review-item-row { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; }
  .review-item-row:not(:has(.review-check)) { grid-template-columns: minmax(0, 1fr); }
  .review-check { width: 30px; }
  .review-item-heading { flex-wrap: wrap; gap: 8px 12px; }
  .review-item-heading h2 { font-size: 21px; flex-basis: 100%; }
  .review-row-link { grid-column: -2 / -1; justify-self: start; }
  .review-selection-bar > span { flex-basis: 100%; }
  .review-view-tabs { gap: 8px 18px; }
  .review-view-tabs a { font-size: 16px; }
  .review-batch-dialog { width: calc(100% - 24px); max-height: calc(100dvh - 24px); padding: 18px; }
  .review-batch-heading { flex-direction: column; gap: 12px; }
  .review-batch-decision { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .review-batch-footer { bottom: -18px; }
  .review-facts > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}
@media(min-width:721px) and (max-width:1000px) {
  .review-flow-directions { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .review-flow-direction:first-child { grid-column: 1 / -1; }
  .review-flow-direction:not(:first-child)::before { display: none; }
}
@media(max-width:720px) {
  .review-shell { padding-top: 30px; }
  .review-toolbar { gap: 18px; }
  .review-toolbar label, .review-toolbar input, .review-toolbar select { width: 100%; min-width: 0; }
  .review-toolbar [data-count] { margin-left: 0; }
  .review-specialties, .review-support { grid-template-columns: minmax(0,1fr); }
  .review-docs > div { grid-template-columns: minmax(0,1fr); gap: 8px; }
  .review-task summary { flex-wrap: wrap; }
  .review-specialty { padding: 18px; }
  .review-flow-heading, .review-flow-entry, .review-flow-entry > div { align-items: flex-start; flex-direction: column; gap: 10px; }
  .review-flow-heading > a { flex-shrink: 1; }
  .review-flow-directions, .review-flow-results { grid-template-columns: minmax(0,1fr); }
  .review-flow-directions { gap: 28px; }
  .review-flow-branches { flex-direction: column; gap: 24px; }
  .review-flow-direction:not(:first-child)::before { display: none; }
  .review-flow-entry, .review-flow-results { padding: 18px; }
  .review-flow-close { border-left: 0; border-top: 1px solid var(--border); padding: 16px 0 0; }
  .review-flow-results { gap: 16px; }
}
