/* 案件内主体专项复核覆盖层；原件仍由当事人隐私材料域保存。 */
body.cpi_review_open { overflow: hidden; }
.cpi_review_host { position: fixed; inset: 0; z-index: 10080; color: #172033; font: 14px/1.5 Inter, "PingFang SC", "Microsoft YaHei", sans-serif; }
.cpi_backdrop { position: absolute; inset: 0; padding: 26px; background: rgba(12, 20, 34, .64); display: grid; place-items: center; }
.cpi_dialog { width: min(1500px, 96vw); height: min(900px, 94vh); background: #f8fafc; border-radius: 22px; box-shadow: 0 24px 70px rgba(3, 12, 28, .3); overflow: hidden; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.cpi_dialog.is-loading, .cpi_dialog.is-error { width: min(520px, 92vw); height: auto; min-height: 260px; padding: 48px; place-items: center; text-align: center; display: grid; position: relative; }
.cpi_spinner { width: 42px; height: 42px; border: 4px solid #dbe7ff; border-top-color: #1769e0; border-radius: 50%; animation: cpi-spin .8s linear infinite; }
@keyframes cpi-spin { to { transform: rotate(360deg); } }
.cpi_header { padding: 22px 26px; display: flex; justify-content: space-between; gap: 24px; border-bottom: 1px solid #dfe7f2; background: #fff; }
.cpi_header span { color: #1769e0; font-weight: 700; }
.cpi_header h2 { margin: 4px 0; font-size: 24px; }
.cpi_header p, .cpi_footer p { margin: 0; color: #627089; }
.cpi_header > div:last-child { display: flex; align-items: flex-start; gap: 16px; }
.cpi_header b { color: #1769e0; background: #edf4ff; border-radius: 999px; padding: 8px 14px; white-space: nowrap; }
.cpi_close { border: 1px solid #d4deec; background: #fff; width: 40px; height: 40px; border-radius: 10px; font-size: 22px; cursor: pointer; }
.cpi_body { min-height: 0; display: grid; grid-template-columns: minmax(240px, .78fr) minmax(360px, 1.15fr) minmax(360px, 1.1fr); }
.cpi_body > * { min-width: 0; overflow: auto; padding: 22px; border-right: 1px solid #dfe7f2; }
.cpi_body > *:last-child { border-right: 0; }
.cpi_body h3, .cpi_body h4 { margin: 0 0 14px; }
.cpi_candidate { width: 100%; border: 1px solid #d9e3f1; background: #fff; border-radius: 14px; padding: 14px; margin-bottom: 10px; display: grid; grid-template-columns: 28px 1fr auto; gap: 10px; text-align: left; cursor: pointer; color: inherit; }
.cpi_candidate.is-active { border-color: #1769e0; background: #edf5ff; box-shadow: 0 0 0 2px rgba(23,105,224,.08); }
.cpi_candidate_index { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: #1769e0; color: #fff; font-weight: 700; }
.cpi_candidate strong, .cpi_candidate small { display: block; }
.cpi_candidate small { color: #6b7890; margin-top: 4px; }
.cpi_badge { align-self: start; background: #fff2d8; color: #9a6100; border-radius: 999px; padding: 3px 8px; font-size: 12px; white-space: nowrap; }
.cpi_badge.is-danger { background: #ffebe8; color: #b42318; }
.cpi_axis { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.cpi_axis span { padding: 5px 9px; border-radius: 999px; background: #edf2f8; color: #506078; font-size: 12px; }
.cpi_material { display: flex; justify-content: space-between; gap: 12px; border: 1px solid #dbe4ef; border-radius: 12px; padding: 12px; background: #fff; margin-bottom: 10px; }
.cpi_material strong, .cpi_material small { display: block; overflow-wrap: anywhere; }
.cpi_material small { color: #6b7890; margin-top: 3px; }
.cpi_material a { color: #1769e0; white-space: nowrap; }
.cpi_readiness { margin-top: 20px; border: 1px solid #cddcf0; border-radius: 14px; overflow: hidden; background: #fff; }
.cpi_readiness header { display: flex; justify-content: space-between; padding: 12px 14px; background: #eef5ff; }
.cpi_readiness header span { color: #1769e0; font-weight: 700; }
.cpi_readiness > p { margin: 12px 14px; color: #596a83; }
.cpi_readiness ul { list-style: none; padding: 0; margin: 0; }
.cpi_readiness li { display: grid; grid-template-columns: 1fr auto; gap: 3px 12px; padding: 10px 14px; border-top: 1px solid #edf1f6; }
.cpi_readiness li b { color: #b54708; }
.cpi_readiness li.is-uploaded b, .cpi_readiness li.is-satisfied b, .cpi_readiness li.is-waived b { color: #16794b; }
.cpi_readiness li.is-pending-review b, .cpi_readiness li.is-pending_confirmation b { color: #9a6100; }
.cpi_readiness li.is-conflict b, .cpi_readiness li.is-expired b, .cpi_readiness li.is-missing b { color: #b42318; }
.cpi_readiness li small { color: #7a879a; grid-column: 1 / -1; }
.cpi_decision_panel { border: 1px solid #dce5f0; border-radius: 14px; background: #fff; padding: 16px; }
.cpi_choice { display: grid; gap: 8px; margin-bottom: 16px; }
.cpi_choice label { border: 1px solid #dde5ef; border-radius: 10px; padding: 10px; }
.cpi_form_grid { display: grid; gap: 12px; }
.cpi_form_grid label { display: grid; gap: 5px; font-weight: 600; color: #42516a; }
.cpi_form_grid input, .cpi_form_grid select { min-width: 0; border: 1px solid #bdcbe0; background: #fff; border-radius: 9px; padding: 10px; color: #172033; }
.cpi_form_grid .cpi_confirm { display: flex; align-items: center; gap: 8px; color: #a83b12; }
.cpi_match_notes p { display: grid; margin: 7px 0; padding: 9px; background: #f4f7fb; border-radius: 8px; }
.cpi_match_notes span { color: #65748a; }
.cpi_match_notes b { color: #b42318; }
.cpi_warning { color: #a3430a; background: #fff4e8; padding: 10px; border-radius: 9px; }
.cpi_merge_note { margin: 0; color: #36536f; background: #eef6ff; padding: 10px; border-radius: 9px; }
.cpi_preflight { margin-top: 14px; border: 1px solid #f0bfa8; background: #fff5ef; border-radius: 12px; padding: 12px; }
.cpi_preflight.is-ok { border-color: #9ed6b7; background: #effbf4; }
.cpi_preflight header { display: flex; justify-content: space-between; gap: 10px; }
.cpi_preflight p { margin: 7px 0 0; color: #b42318; }
.cpi_preflight p.is-warning { color: #9a5d00; }
.cpi_footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px 24px; border-top: 1px solid #dfe7f2; background: #fff; }
.cpi_footer > div { display: flex; gap: 10px; }
.cpi_footer button, .cpi_primary { border: 1px solid #b8c7db; background: #fff; color: #19304e; border-radius: 9px; padding: 10px 16px; cursor: pointer; font-weight: 700; }
.cpi_footer button:disabled { opacity: .45; cursor: not-allowed; }
.cpi_footer .cpi_primary, .cpi_primary { background: #1769e0; border-color: #1769e0; color: #fff; }
.cpi_result { max-width: 720px; margin: auto; text-align: center; padding: 54px; }
.cpi_result_mark { margin: 0 auto 18px; width: 64px; height: 64px; display: grid; place-items: center; background: #e8f8ef; color: #15804d; border-radius: 50%; font-size: 34px; }
.cpi_result p { color: #5c6d84; }
.cpi_empty { color: #78869a; padding: 24px; text-align: center; }
@media (max-width: 1100px) { .cpi_backdrop { padding: 8px; } .cpi_dialog { width: 100%; height: 98vh; } .cpi_body { grid-template-columns: 220px 1fr; } .cpi_controls { grid-column: 1 / -1; border-top: 1px solid #dfe7f2; } }
