/* B43.0-S02: reuse the project shell, brand type and neutral/blue palette. */
html:has(.main.reviews-active) { scrollbar-gutter: stable; }
.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-sort-note { margin: 0 0 16px; font-size: 14px; color: var(--text-secondary); }
.review-project-list { border-top: 1px solid var(--border); }
.review-project-columns, .review-project-row { display: grid; grid-template-columns: minmax(180px, 2fr) minmax(120px, 1fr) minmax(200px, 2fr) 80px; gap: 32px; align-items: center; }
.review-project-columns { padding: 14px 18px; font-size: 14px; color: var(--text-secondary); background: var(--card-bg); border-bottom: 1px solid var(--border); }
.review-project-row { padding: 24px 18px; border-bottom: 1px solid var(--border); font-size: 15px; line-height: 1.65; }
.review-project-row:hover { background: var(--card-bg); }
.review-project-row > * { min-width: 0; overflow-wrap: anywhere; }
.review-project-identity h2 { font-size: 20px; font-weight: 600; line-height: 1.5; margin: 4px 0; }
.review-project-identity > p { margin: 0; font-size: 14px; color: var(--text-secondary); }
.review-project-cell { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; }
.review-project-state .review-empty { font-size: 14px; margin: 4px 0 0; }
.review-mobile-label { display: none; }
@media(max-width:900px) {
  .review-project-columns { display: none; }
  .review-project-row { grid-template-columns: minmax(180px, 2fr) minmax(110px, 1fr) minmax(160px, 1.5fr); gap: 18px 24px; }
  .review-project-identity { grid-column: 1; grid-row: 1 / 3; }
  .review-project-counts { grid-column: 2; }
  .review-project-state { grid-column: 3; grid-row: 1; }
  .review-project-row > .review-row-link { grid-column: 3; justify-self: start; }
  .review-mobile-label { display: block; font-size: 14px; color: var(--text-secondary); }
}
@media(max-width:720px) {
  .review-project-row { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 24px 0; }
  .review-project-identity { grid-column: 1 / -1; grid-row: auto; }
  .review-project-counts { grid-column: 1; }
  .review-project-state { grid-column: 2; grid-row: auto; }
  .review-project-row > .review-row-link { grid-column: 1 / -1; }
}
.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-inputs { display: flex; flex-direction: column; }
.review-flow-feedback { display: grid; grid-template-columns: minmax(0, 1fr) 260px minmax(0, 1fr); align-items: center; gap: 12px 24px; }
.review-flow-feedback h3 { margin: 0; font-size: 16px; font-weight: 400; justify-self: end; }
.review-flow-feedback h3 > span { color: var(--text-secondary); font-size: 14px; font-weight: 400; }
.review-flow-feedback-note { margin: 0; color: var(--text-secondary); font-size: 14px; }
.review-flow-orchestration { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px 24px; margin: 20px 0; }
.review-flow-orchestration h3, .review-flow-orchestration p { margin: 0; color: var(--text-secondary); font-size: 14px; font-weight: 400; }
.review-flow-orchestration .portal-flow-unit { width: 260px; max-width: 100%; }
.review-flow-directions { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; margin: 0; }
.review-flow-direction:nth-child(2) { grid-column: span 2; }
.review-flow-direction { display: flex; flex-direction: column; position: relative; min-width: 0; border-top: 2px solid var(--primary); }
.review-flow-direction > h3 { font-weight: 400; font-size: 20px; margin: 16px 0; }
.review-flow-branches { display: flex; flex: 1; gap: 24px; }
.review-flow-branch { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.review-flow-branch > .portal-flow-unit, .review-flow-targets > .portal-flow-unit { min-width: 0; width: 100%; }
.review-flow-targets { display: grid; flex: 1; align-content: start; gap: 12px; list-style: none; margin: 0; padding: 0; }
.review-flow-mobile-join { display: none; }
.review-flow-completion { display: flex; flex-direction: column; align-items: center; text-align: center; }
.review-flow-terminal { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 4px 20px; width: 100%; padding: 12px 24px; background: var(--plan-check); border: 1px solid var(--plan-line); }
.review-flow-terminal strong { color: var(--plan-brand-deep); font-size: 16px; font-weight: 600; }
.review-flow-terminal p { margin: 0; color: var(--text-secondary); font-size: 14px; }
.review-guide-divider { border: 0; border-top: 1px solid var(--border); margin: 40px 0; }
.review-guide-title { margin-bottom: 28px; }
.review-category-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,2fr) minmax(0,2fr); gap: 24px; align-items: start; }
.review-category { min-width: 0; }
.review-category-title { margin: 0 0 20px; padding-top: 14px; border-top: 2px solid var(--primary); font-size: 20px; font-weight: 400; color: var(--text); }
.review-category-modules { display: grid; gap: 20px; align-items: start; }
.review-category-grid .review-category-modules { grid-template-columns: repeat(auto-fit,minmax(170px,1fr)); }
.review-category-other { grid-column: 1 / -1; }
.review-guide > .review-category { margin-top: 32px; }
.review-flow-module, .review-document-module { border: 1px solid var(--border); background: var(--card-bg); min-width: 0; }
.review-flow-module > header, .review-document-module > header { padding: 14px 20px; border-bottom: 1px solid var(--border); background: var(--bg); }
.review-flow-module h4, .review-document-module > header :is(h3,h4) { margin: 0; font-size: 18px; font-weight: 600; color: var(--text); }
.review-flow-module > header { padding: 12px; }
.review-flow-module h4 { font-size: 16px; }
.review-module-graph { padding: 16px 12px; min-width: 0; }
.review-process-input { padding: 16px 12px 0; min-width: 0; }
.review-process-input .portal-flow-unit { min-width: 0; width: 100%; }
.review-graph-level { position: relative; display: grid; gap: 12px; }
.review-parallel-units { padding: 0; }
.review-module-graph .portal-flow-unit { min-width: 0; width: 100%; }
.review-module-note { color: var(--text-secondary); margin: 0 20px 20px; font-size: 14px; }
.review-flow-module .project-source-note { margin: 0 20px 20px; }
.review-document-module { margin-bottom: 28px; }
.review-module-doc-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.review-module-doc-columns > div { min-width: 0; padding: 20px; }
.review-module-doc-columns > div + div { border-left: 1px solid var(--border); }
.review-column-label { margin: 0 0 16px; font-size: 14px; color: var(--text-secondary); }
.review-unit-docs { border: 1px solid var(--border); min-width: 0; }
.review-unit-docs .review-unit-heading { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 10px; margin: 0; padding: 12px 14px; background: var(--primary-light); border-bottom: 1px solid var(--border); font-size: 16px; line-height: 1.5; font-weight: 400; }
.review-unit-kind { font-size: 12px; color: var(--text-secondary); }
.review-unit-number { color: var(--primary); font-weight: 600; }
.review-unit-name { color: var(--text); }
.review-unit-docs + .review-unit-docs { margin-top: 16px; }
.review-document-module > .review-unit-docs { margin: 20px; }
.review-unit-docs .review-docs { list-style: none; padding: 0; margin: 0; font-size: 15px; }
.review-unit-docs .review-docs > li { display: grid; grid-template-columns: 126px minmax(0, 1fr) auto; align-items: baseline; gap: 12px; min-height: 52px; padding: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.review-unit-docs .review-docs > li + li { border-top: 1px solid var(--border); }
.review-unit-docs .review-doc-number { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 400; color: var(--text-secondary); }
.review-doc-icon { width: 16px; height: 18px; flex: 0 0 16px; }
.review-doc-version { font-size: 13px; color: var(--text-secondary); white-space: nowrap; }
.review-unit-docs > .review-empty { margin: 0; padding: 14px; }
/* B34.1-S01 brand blue; B43.0-S02 interface neutrals and typography. */
.main.reviews-active:has(.review-guide-page) { --bg: #FBFBF9; --card-bg: #FBFBF9; --text: #20282F; --text-secondary: #66737B; --text-light: #66737B; --border: #DCDEDA; --border-light: #DCDEDA; --primary-light: #EAF1F9; background: var(--bg); }
.review-guide-page { color: var(--text); }
.review-guide a { color: var(--primary); }
.review-doc-directory-heading { margin-bottom: 36px; }
.review-doc-directory-heading .review-guide-title { font-size: 36px; margin: 0 0 24px; }
.review-doc-nav { display: flex; flex-wrap: wrap; gap: 12px 36px; padding-bottom: 14px; border-bottom: 1px solid #BCC3C5; }
.review-doc-nav button { border: 0; background: transparent; color: var(--text); font: inherit; font-size: 18px; padding: 4px 0; cursor: pointer; }
.review-doc-nav button:hover { color: var(--primary); text-decoration: underline; text-underline-offset: 8px; }
.review-doc-nav button:focus-visible, .review-guide a:focus-visible { outline: 2px solid var(--primary); outline-offset: 4px; }
.review-guide .review-category { scroll-margin-top: 88px; }
.review-guide .review-category-title { border-top: 1px solid #BCC3C5; padding-top: 24px; margin: 0 0 28px; font-size: 24px; font-weight: 300; }
.review-guide .review-category-modules { gap: 36px; }
.review-document-module { display: grid; grid-template-columns: 160px minmax(0,1fr); gap: 32px; align-items: start; background: transparent; border: 0; margin: 0 0 36px; }
.review-document-module > :not(header) { grid-column: 2; min-width: 0; }
.review-document-module > header { padding: 3px 0 3px 14px; border: 0; border-left: 3px solid var(--primary); background: transparent; }
.review-document-module > header :is(h3,h4) { font-size: 20px; font-weight: 400; line-height: 1.5; }
.review-document-module > .project-source-note { grid-column: 2; }
.review-module-doc-columns { gap: 28px; }
.review-module-doc-columns > div { padding: 0; }
.review-module-doc-columns > div + div { padding-left: 28px; }
.review-column-label { margin: 0 0 20px; font-size: 18px; font-weight: 600; color: var(--text); }
.review-unit-docs { border: 0; }
.review-unit-docs .review-unit-heading { gap: 8px 14px; padding: 12px 16px; font-size: 18px; border: 0; }
.review-unit-docs + .review-unit-docs { margin-top: 28px; }
.review-unit-docs .review-docs > li, .review-doc-columns { grid-template-columns: 120px minmax(0,1fr) 42px; gap: 12px; padding: 14px 12px; }
.review-unit-docs .review-docs > li { border-bottom: 1px solid var(--border); }
.review-unit-docs .review-docs > li + li { border-top: 0; }
.review-unit-docs .review-docs > li:hover, .review-unit-docs .review-docs > li:focus-within { background: var(--primary-light); }
.review-doc-columns { display: grid; color: var(--text-secondary); font-size: 14px; border-bottom: 1px solid var(--border); }
.review-unit-docs .review-doc-number, .review-doc-version { font-size: 14px; }
.review-doc-version, .review-doc-columns > :last-child { text-align: right; }
@media (min-width: 801px) and (max-width: 1200px) {
  .review-document-module { grid-template-columns: 120px minmax(0,1fr); gap: 24px; }
  .review-module-doc-columns { gap: 20px; }
  .review-module-doc-columns > div + div { padding-left: 20px; }
  .review-unit-docs .review-docs > li, .review-doc-columns { grid-template-columns: 106px minmax(0,1fr) 38px; gap: 8px; padding-inline: 8px; }
}
@media (max-width: 800px) {
  .review-document-module { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .review-document-module > :not(header) { grid-column: 1; }
  .review-document-module > .project-source-note { grid-column: 1; }
  .review-module-doc-columns { gap: 28px; }
  .review-module-doc-columns > div + div { padding: 24px 0 0; }
  .review-doc-columns { display: none; }
  .review-category-grid, .review-module-doc-columns { grid-template-columns: minmax(0, 1fr); }
  .review-module-doc-columns > div + div { border-left: 0; border-top: 1px solid var(--border); }
  .review-unit-docs .review-docs > li { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; }
  .review-unit-docs .review-doc-number { grid-column: 1 / -1; }
}
@media (min-width: 801px) and (max-width: 1100px) {
  .review-category-grid { grid-template-columns: minmax(0,1fr); }
  .review-category-grid .review-category-modules { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
.review-doc-group { margin-top: 36px; }
.review-doc-group > h2 { margin-bottom: 20px; }
.review-guide .project-section > h3 { margin: 0 0 18px; font-size: 20px; font-weight: 400; }
.review-guide .project-section > h3 > span { color: var(--primary); font-size: 16px; font-weight: 600; margin-right: 12px; }
.review-view-tabs, .review-task-tabs { display: flex; flex-wrap: wrap; gap: 8px clamp(32px, 5vw, 72px); 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 { display: grid; grid-template-columns: minmax(190px, 1.5fr) repeat(4, minmax(115px, 1fr)) auto; gap: 20px 28px; margin-top: 0; padding-top: 24px; border-top: 0; }
.review-filter-bar:has([name="kind"]) { grid-template-columns: minmax(190px, 1.5fr) repeat(5, minmax(110px, 1fr)) auto; }
.review-filter-bar:has([name="sort"]) { grid-template-columns: minmax(190px, 2fr) repeat(2, minmax(130px, 1fr)) auto auto; }
.review-filter-bar input, .review-filter-bar select { width: 100%; max-width: 100%; min-width: 0; }
.review-filter-bar label { min-width: 0; font-size: 16px; }
.review-filter-bar [data-count] { grid-column: 1 / -1; min-height: 22px; text-align: right; }
.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: transparent; background: #E8EFF9; }
.review-status[data-state="处理中"] { color: #755512; border-color: transparent; background: #F6EEDB; }
.review-status[data-state="暂缓"] { color: #626873; border-color: transparent; background: #EDEFF2; }
.review-status[data-state="已结束"] { color: #27784E; border-color: transparent; background: #E5F1E9; }
.review-current-task { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.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 { position: sticky; top: 56px; z-index: 5; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin: 0 0 18px; padding: 12px 0; background: var(--bg); border-bottom: 1px solid var(--border); font-size: 15px; color: var(--text-secondary); }
.review-selection-bar > span { margin-right: 8px; }
.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 { position: fixed; inset: 0; margin: auto; width: min(1200px, calc(100vw - 64px)); max-width: none; max-height: calc(100dvh - 64px); overflow-y: auto; padding: 30px; border: 1px solid var(--border); border-radius: 4px; background: var(--card-bg); color: var(--text); overscroll-behavior: contain; box-shadow: 0 20px 80px rgba(27, 51, 72, .18); }
.review-batch-dialog::backdrop { background: rgba(27, 51, 72, .35); }
.review-batch-heading { position: sticky; top: -30px; z-index: 2; display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; padding: 20px 0; background: var(--card-bg); border-bottom: 1px solid var(--border); }
.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:1100px) { .review-filter-bar, .review-filter-bar:has([name="kind"]), .review-filter-bar:has([name="sort"]) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@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, .review-filter-bar:has([name="kind"]), .review-filter-bar:has([name="sort"]) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .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 { top: -18px; 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(max-width:1000px) {
  .review-flow-connector { display: none; }
  .review-flow-mobile-join { display: block; }
  .review-flow-direction:nth-child(2) { grid-column: auto; }
}
@media(min-width:721px) and (max-width:1000px) {
  .review-flow-directions { grid-template-columns: minmax(0, 1fr); }
}
@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 { align-items: flex-start; flex-direction: column; gap: 10px; }
  .review-flow-heading > a { flex-shrink: 1; }
  .review-flow-directions { grid-template-columns: minmax(0,1fr); }
  .review-flow-directions { gap: 28px; }
  .review-flow-branches { flex-direction: column; gap: 24px; }
  .review-flow-feedback { display: flex; flex-direction: column; align-items: stretch; }
  .review-flow-feedback > .portal-flow-unit { width: 100%; min-width: 0; }
  .review-flow-feedback-note { margin-left: 0; }
}
