.finding-review { min-width: 0; overflow-anchor: none; }
.review-reader-heading { position: sticky; top: 0; z-index: 4; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; padding: 12px 0; background: #f6f8f7f5; backdrop-filter: blur(6px); border-bottom: 1px solid #dfe8e2; }
.review-reader-heading h2 { color: #243f30; font-size: 21px; }
.review-reader-heading h2 > span { margin-left: 8px; font-size: 14px; color: #5f7868; font-weight: 500; }
.review-reader-heading p { font-size: 13px; color: #627768; margin-top: 5px; }
.review-reader-nav { display: flex; align-items: center; gap: 12px; flex: none; }
.review-reader-nav .button { min-height: 42px; font-size: 13px; }
.review-reader-nav .button:last-child { flex-direction: row-reverse; }
#review-position { min-width: 65px; text-align: center; color: #58705f; font-size: 13px; }
#review-position strong { color: #244b34; font-size: 18px; }
.review-risk-filters { display: flex; align-items: center; gap: 8px; margin-bottom: 13px; flex-wrap: wrap; }
.review-risk-filter { display: inline-flex; align-items: center; gap: 9px; border: 1px solid #d9e4dc; border-radius: 7px; background: #fff; padding: 7px 12px; font-size: 13px; font-weight: 600; min-height: 38px; }
.review-risk-filter span { font-weight: 700; }
.review-risk-filter.high { color: #b42318; }
.review-risk-filter.medium { color: #825b08; }
.review-risk-filter.low { color: #177a40; }
.review-risk-filter.active { box-shadow: inset 0 -3px currentColor; background: #ecf5ef; color: #146b59; border-color: #aacbb8; }
.review-risk-filter.high.active { background: #fff1f0; color: #b42318; border-color: #e8b8b3; }
.review-risk-filter.medium.active { background: #fff7d3; color: #825b08; border-color: #e0c967; }
.review-risk-filter.low.active { background: #edfaf1; color: #177a40; border-color: #a2d6b3; }
.review-finding-rail { display: flex; gap: 12px; overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x proximity; scrollbar-width: thin; scrollbar-color: #abc4b4 #edf3ef; padding: 4px 3px 13px; margin: 0 -3px 14px; }
.review-finding-card { position: relative; flex: 0 0 276px; height: 151px; scroll-snap-align: start; display: flex; flex-direction: column; gap: 10px; text-align: left; border: 1px solid #d8e4dc; border-radius: 11px; padding: 14px 16px; background: #fff; box-shadow: 0 2px 4px #233e2910; }
.review-finding-card:hover { background: #fbfdfb; border-color: #8db6a0; }
.review-finding-card.is-selected { border: 2px solid #146b59; padding: 13px 15px; background: #f5fbf7; box-shadow: 0 2px 7px #146b591a; }
.review-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 12px; color: #617768; }
.review-finding-card > strong { color: #284532; font-size: 15px; line-height: 1.65; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.review-card-location { margin-top: auto; color: #687d6e; font-size: 12px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; width: 100%; }
.review-card-bottom { display: flex; align-items: center; gap: 7px; width: 100%; min-width: 0; margin-top: auto; }
.review-card-bottom .review-card-location { min-width: 0; flex: 1; width: auto; margin-top: 0; }
.review-direction-indicator { flex: none; display: inline-flex; align-items: center; border: 1px solid #bfd5fa; border-radius: 5px; padding: 3px 6px; background: #eaf2ff; color: #1d4ed8; font-size: 11px; font-weight: 650; line-height: 1.6; white-space: nowrap; }
.review-risk-badge { display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 700; border: 1px solid transparent; padding: 3px 9px; border-radius: 6px; white-space: nowrap; }
.review-risk-badge.high { background: #b42318; color: #fff; }
.review-risk-badge.medium { background: #facc15; color: #634209; }
.review-risk-badge.low { background: #15803d; color: #fff; }
.review-risk-badge.neutral { background: #eaf0ec; color: #506b59; }
.review-rail-empty { display: flex; align-items: center; justify-content: center; gap: 9px; height: 151px; flex: 1; background: #f0f7f3; border: 1px dashed #bacfc1; border-radius: 10px; padding: 20px; color: #476852; font-size: 14px; }
.review-body-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 20px; align-items: stretch; }
.review-finding-detail { min-width: 0; height: 600px; overflow-y: auto; overscroll-behavior: contain; background: #fff; border: 1px solid #dce7df; border-left: 4px solid #ccdace; border-radius: 12px; padding: 21px 24px; }
.review-finding-detail.high { border-left-color: #b42318; }
.review-finding-detail.medium { border-left-color: #eab308; }
.review-finding-detail.low { border-left-color: #15803d; }
.review-detail-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; margin-bottom: 17px; }
.review-detail-heading > div { min-width: 0; }
.review-detail-heading h3 { font-size: 19px; line-height: 1.7; color: #263f31; margin: 9px 0 3px; overflow-wrap: anywhere; }
.review-detail-heading p { font-size: 12px; color: #657c6c; }
.review-detail-heading .button { flex: none; min-height: 38px; font-size: 12px; }
.review-detail-columns { display: grid; grid-template-columns: minmax(0,1fr); gap: 20px; align-items: start; }
.review-detail-columns h4 { display: flex; align-items: center; gap: 6px; font-size: 13px; color: #4b6d58; margin: 0 0 8px; }
.review-detail-columns h4 .icon { width: 16px; height: 16px; }
.review-detail-columns p,.review-basis p,.review-saved-memo p { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 14px; line-height: 1.95; }
.review-proposal { background: #eff8f2; border-radius: 8px; padding: 13px 16px; }
.review-basis { border-top: 1px solid #e4ece7; margin-top: 19px; padding-top: 13px; }
.review-basis summary { cursor: pointer; color: #416c51; font-size: 13px; font-weight: 600; }
.review-basis p { margin-top: 10px; }
.review-basis .review-reference-names { font-size: 12px; color: #607666; }
.review-saved-memo { background: #fffbea; border: 1px solid #ecdda9; border-radius: 7px; padding: 12px 15px; margin-top: 14px; }
.review-saved-memo strong { font-size: 12px; color: #785d22; }
.review-no-selection { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 10px; height: 100%; color: #597762; }
.review-no-selection h3 { font-size: 17px; }
.review-no-selection p { font-size: 14px; line-height: 1.9; }
.review-source-panel { min-width: 0; height: 600px; display: flex; flex-direction: column; background: #fff; border: 1px solid #dce6df; border-radius: 12px; overflow: hidden; }
.review-source-panel > header { display: flex; justify-content: space-between; align-items: center; gap: 15px; padding: 17px 23px 13px; }
.review-source-panel > header > div { min-width: 0; }
.review-source-panel h3 { display: flex; align-items: center; gap: 7px; font-size: 18px; color: #2b4c37; }
.review-source-panel > header p { font-size: 12px; color: #637b6b; margin-top: 5px; overflow-wrap: anywhere; }
.review-source-panel > header .button { flex: none; min-height: 38px; font-size: 12px; }
.review-source-caption { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 23px; background: #f4f8f5; border-top: 1px solid #e2ebe5; border-bottom: 1px solid #e2ebe5; font-size: 12px; color: #597461; }
#review-source-label { min-width: 0; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; font-weight: 650; }
.review-source-caption > span:last-child { flex: none; font-size: 11px; }
.review-source-scroll { flex: 1; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 20px 24px; background: #fbfcfb; }
.review-source-block { padding: 13px 16px; margin-bottom: 12px; border: 1px solid transparent; border-radius: 8px; }
.review-source-block h4 { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 12px; color: #617966; margin: 0 0 9px; }
.review-source-block h4 > span { font-size: 11px; padding: 1px 7px; border-radius: 4px; background: #fff; color: #315d3f; }
.review-source-block p { white-space: pre-wrap; overflow-wrap: anywhere; line-height: 2; font-size: 15px; color: #334b3b; }
.review-source-block.is-selected { border-left-width: 4px; background: #eef8f2; border-color: #8cc3a3; }
.review-source-block.is-selected.high { background: #fff5f4; border-color: #df9c95; }
.review-source-block.is-selected.medium { background: #fffbed; border-color: #ddc762; }
.review-source-block.is-selected.low { background: #f0fbf4; border-color: #8fc6a2; }
.review-source-block mark { background: #ffeb9c; color: #473719; border-radius: 2px; padding: 1px 0; }
.review-source-footnote { padding: 10px 23px; color: #637c6a; font-size: 11px; border-top: 1px solid #e2ebe5; }
.review-source-notice { display: flex; align-items: flex-start; gap: 9px; border: 1px solid #ead69b; background: #fff9e7; color: #765c25; padding: 14px 16px; border-radius: 8px; margin-bottom: 15px; font-size: 13px; overflow-wrap: anywhere; }
.review-source-notice span { display: block; margin-top: 9px; }
.review-source-notice q { display: block; margin-top: 5px; white-space: pre-wrap; }
@media(max-width:1100px) { .review-reader-heading { align-items: flex-start; flex-direction: column; gap: 13px; } .review-detail-columns { gap: 16px; } }
@media(max-width:760px) { .review-reader-heading h2 { font-size: 19px; } .review-reader-nav { width: 100%; justify-content: space-between; gap: 8px; } .review-reader-nav .button { min-height: 44px; } .review-risk-filters { gap: 6px; } .review-risk-filter { font-size: 12px; gap: 6px; padding: 8px 10px; min-height: 40px; } .review-finding-card { flex-basis: min(280px,82vw); } .review-finding-detail { height: 385px; padding: 18px; } .review-detail-columns { grid-template-columns: 1fr; } .review-detail-heading { gap: 10px; } .review-detail-heading h3 { font-size: 17px; } .review-detail-heading .button { min-height: 40px; padding: 7px 10px; } .review-source-panel > header { padding: 14px 17px; gap: 10px; } .review-source-caption { padding: 10px 17px; } .review-source-caption > span:last-child { display: none; } .review-source-scroll { height: 330px; padding: 15px 12px; } .review-source-block { padding: 12px; } .review-source-block p { font-size: 14px; } .review-source-footnote { padding: 10px 17px; } }
@media(max-width:980px) { .review-body-grid { grid-template-columns: minmax(0,1fr); } .review-finding-detail { height: 470px; } .review-source-panel { height: 470px; } }
@media print { .review-reader-nav,.review-risk-filters,.review-finding-rail { display: none; } .review-body-grid { display: block; } .review-finding-detail,.review-source-panel,.review-source-scroll { height: auto; overflow: visible; } }

/* Must-fix is a priority subset of high risk, counted by contract location. */
.must-fix-panel{margin:20px 0;padding:22px 24px;border:1px solid #e5aeb5;border-top:4px solid #931b37;border-radius:12px;background:#fff8fa;color:#4c1725}
.must-fix-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.must-fix-heading h2{font-size:21px;margin:4px 0 8px;color:#80132d}.must-fix-heading h2 span{font-size:16px;margin-left:8px}
.must-fix-heading .small-label{color:#924256;margin:0}.must-fix-tag,.review-risk-badge.must,.risk-chip.must{background:#931b37;color:#fff;border-color:#931b37;font-weight:700}
.must-fix-tag{padding:6px 12px;border-radius:6px;white-space:nowrap}.risk-chip.must{font-size:14px;white-space:nowrap}
.must-fix-help{font-size:13px;line-height:1.8;color:#78515b;margin:8px 0}
.must-fix-list{list-style:none;padding:0;margin:16px 0 10px;display:grid;gap:10px}
.must-fix-list li{display:grid;grid-template-columns:30px 1fr auto;align-items:start;gap:12px;padding:16px;background:white;border:1px solid #ecd2d8;border-radius:8px}
.must-fix-number{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#931b37;color:white;font-weight:700}
.must-fix-list strong{font-size:15px;line-height:1.7}.must-fix-list p{font-size:13px;line-height:1.85;color:#61434b;margin:5px 0}.must-fix-list .button{white-space:nowrap}
.must-fix-progress{font-weight:700;color:#931b37;animation:must-fix-pulse 1.8s ease-in-out infinite}
@keyframes must-fix-pulse{50%{opacity:.55}}@media(prefers-reduced-motion:reduce){.must-fix-progress{animation:none}}
.review-risk-filter.must{color:#931b37;border-color:#d4a1ad}.review-risk-filter.must.active{background:#931b37;color:white;border-color:#931b37}
.amendment-presets{border:1px solid #cfdfda;background:#f5faf8;border-radius:10px;padding:16px;margin:14px 0}.amendment-presets>strong{font-size:14px;color:#244e43}
.amendment-preset-buttons{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.amendment-preset-buttons .button{white-space:normal;min-height:40px}
.amendment-preset-buttons .button span{font-size:12px;margin-left:5px}.amendment-preset-buttons .preset-active{box-shadow:inset 0 0 0 1px #146b59;background:#e1f0eb}.amendment-preset-buttons .must-preset{color:#931b37;border-color:#c18594}
.workflow-directions .must-fix-panel{padding:18px;margin:14px 0}.workflow-directions .must-fix-heading h2{font-size:18px}
@media(max-width:700px){.must-fix-panel{padding:16px}.must-fix-list li{grid-template-columns:28px 1fr}.must-fix-list .button{grid-column:2;justify-self:start}.amendment-preset-buttons .button{flex:1 1 45%}}
