.message.error {
  background: #fdecec;
  color: #a82c2c;
}

.review-alert {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #fff5db;
  border: 1px solid #f4d995;
  color: #6d4c00;
  padding: 14px 18px;
  border-radius: 12px;
  text-decoration: none;
  margin: -4px 0 20px;
}

.review-alert span { color: #916000; }
.review-alert strong { margin-left: auto; }
.review-head { align-items: flex-end; }
.review-count { background: #fff5db; color: #916000; border-radius: 99px; padding: 8px 13px; font-weight: 700; }
.review-stack { display: grid; gap: 18px; }
.review-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: -6px 0 20px; }
.review-summary div { display: flex; align-items: baseline; gap: 10px; padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: 11px; }
.review-summary strong { font-size: 22px; }
.review-summary span { color: var(--muted); }
.review-summary .summary-green strong { color: var(--green); }
.review-summary .summary-amber strong { color: var(--amber); }
.review-card { display: grid; grid-template-columns: minmax(300px, .8fr) minmax(500px, 1.4fr); overflow: hidden; }
.review-source { padding: 22px; background: #fafbfd; border-right: 1px solid var(--line); }
.review-source-top, .candidate-title, .candidate-main { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.source-label { font-size: 12px; color: var(--muted); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.review-amount { font-size: 30px; font-weight: 800; margin: 16px 0; }
.review-details { display: grid; gap: 10px; margin: 0; }
.review-details div { display: grid; grid-template-columns: 120px 1fr; gap: 12px; }
.review-details dt { color: var(--muted); }
.review-details dd { margin: 0; font-weight: 650; }
.review-note { margin-top: 16px; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 9px; white-space: normal; }
.review-note b { display: block; font-size: 11px; color: var(--muted); margin-bottom: 4px; }
.candidate-side { padding: 22px; }
.candidate-title { margin-bottom: 12px; }
.candidate-title span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #eef2f7; font-weight: 700; }
.candidate { border: 1px solid var(--line); border-radius: 11px; padding: 15px; margin-top: 10px; }
.candidate-flags { display: flex; gap: 7px; flex-wrap: wrap; margin-bottom: 10px; }
.candidate-flags span { border-radius: 99px; padding: 3px 8px; font-size: 11px; font-weight: 700; }
.date-delta { background: #eef2f7; color: #536078; }
.safe-flag { background: #e6f8f1; color: #087653; }
.conflict-flag { background: #fff0d1; color: #916000; }
.candidate-main strong { font-size: 18px; }
.candidate-main small { display: block; color: var(--muted); margin-top: 2px; }
.candidate p { color: #46536a; margin: 10px 0; white-space: normal; }
.candidate-action { display: flex; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid var(--line); padding-top: 12px; }
.decision-confirm { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--muted); cursor: pointer; }
.decision-confirm input { width: auto; }
.empty-candidates { padding: 24px; border: 1px dashed #cfd7e4; border-radius: 11px; color: var(--muted); text-align: center; }
.no-match-form { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--line); }
.no-match-form small { color: var(--muted); flex-basis: 100%; }
.button.danger { border-color: #efb5b5; color: #a82c2c; background: #fff7f7; }
.review-empty { text-align: center; padding: 50px; }
.review-empty div { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: #e6f8f1; color: #087653; font-size: 24px; margin: 0 auto 12px; }

@media (max-width: 1000px) {
  .review-card { grid-template-columns: 1fr; }
  .review-source { border-right: 0; border-bottom: 1px solid var(--line); }
}

@media (max-width: 650px) {
  .review-summary { grid-template-columns: 1fr; }
  .candidate-action { align-items: stretch; flex-direction: column; }
  .candidate-action .button { width: 100%; text-align: center; }
  .review-details div { grid-template-columns: 1fr; gap: 2px; }
}
