.kirin-review-result-comparison{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.kirin-review-result-comparison>.kirin-review-panel{height:100%;min-width:0}
.kirin-review-compare-panel{grid-column:1/-1}
.kirin-review-recommended-panel{border-color:rgba(215,181,74,.22);background:linear-gradient(145deg,#11140f,#0a0d0b)}
.kirin-review-recommended-list{display:grid;gap:6px}
.kirin-review-recommended-row{display:grid;grid-template-columns:minmax(72px,.7fr) minmax(0,2.4fr) minmax(86px,.8fr);gap:12px;align-items:center;padding:8px 10px;border:1px solid var(--line-soft);border-radius:7px;background:#090c09}
.kirin-review-recommended-row strong{font-size:11px;color:#d9dfda}
.kirin-review-recommended-row span{min-width:0;font-size:13px;font-weight:800;color:#f2f4f2}
.kirin-review-recommended-row em{text-align:right;font-size:11px;font-style:normal;color:var(--muted);white-space:nowrap}
.kirin-review-recommended-summary{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.kirin-review-recommended-summary>span{padding:7px 9px;border:1px solid var(--line-soft);border-radius:999px;color:var(--muted);font-size:10px}
.kirin-review-recommended-summary strong{color:#edf1ed}
.kirin-review-recommended-empty{padding:18px;border:1px dashed #465047;border-radius:11px;background:#090c09}
.kirin-review-recommended-empty strong{font-size:14px;color:#edf1ed}
.kirin-review-recommended-empty p{margin:7px 0 0;color:var(--muted);font-size:11px;line-height:1.6}
.kirin-review-payout-row span{font-variant-numeric:tabular-nums}
@media(max-width:900px){.kirin-review-result-comparison{grid-template-columns:1fr}}
@media(max-width:720px){.kirin-review-result-comparison{gap:12px}.kirin-review-recommended-row{grid-template-columns:62px minmax(0,1fr) auto}}
@media(max-width:480px){.kirin-review-recommended-row{grid-template-columns:1fr auto}.kirin-review-recommended-row strong{grid-column:1/-1}}
@media(min-width:1281px){
  .kirin-review-recommended-list{gap:3px}
  .kirin-review-recommended-row{grid-template-columns:104px minmax(0,1fr) 94px;gap:10px;padding:7px 10px;min-width:0}
  .kirin-review-recommended-row>em{justify-self:end;white-space:nowrap}
  .kirin-review-recommended-row span small{display:block;margin-top:2px;line-height:1.25}
  .kirin-review-recommended-summary{gap:5px;margin-top:7px}
}

/* === Sprint40 Review shared comparison mark alignment BEGIN === */
/*
 * Canonical comparison horse-cell contract.
 *
 * Root cause of recurring unmarked-row drift:
 * the mark slot and the horse identity were being laid out as independent
 * inline/flex children. Device CSS could preserve the empty placeholder width,
 * but the unmarked row still inherited different inline spacing/child behavior.
 *
 * Own the WHOLE horse cell as a 3-column grid:
 *   mark(18px) | horse-number(auto) | horse-name(1fr)
 * Every row therefore starts horse-number/name at the same coordinates,
 * regardless of whether the mark contains a glyph or is an empty placeholder.
 */
.kirin-review-comparison-horse{
  display:grid!important;
  grid-template-columns:18px max-content minmax(0,1fr)!important;
  align-items:center!important;
  column-gap:8px!important;
}

.kirin-review-comparison-horse>em{
  grid-column:1!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:18px!important;
  min-width:18px!important;
  margin:0!important;
  padding:0!important;
  font-style:normal!important;
  line-height:1!important;
  text-align:center!important;
}

.kirin-review-comparison-horse>.kirin-review-comparison-mark-placeholder{
  visibility:hidden!important;
}

.kirin-review-comparison-horse>.kirin-review-horse-number,
.kirin-review-comparison-horse>.kirin-horse-number,
.kirin-review-comparison-horse>[class*="horse-number"]{
  grid-column:2!important;
  margin:0!important;
}

.kirin-review-comparison-horse>.kirin-review-comparison-horse-name,
.kirin-review-comparison-horse>[class*="horse-name"]{
  grid-column:3!important;
  min-width:0!important;
  margin:0!important;
}
/* === Sprint40 Review shared comparison mark alignment END === */

/* === Sprint40 Review comparison semantic mark v9 BEGIN === */
/*
 * Canonical mark contract from ACTUAL renderer.
 * Every comparison horse row now contains a direct <em> mark slot.
 * Marked rows contain ◎/○/▲/△ etc.
 * Unmarked rows contain a transparent em dash.
 */
.kirin-review-comparison-horse>.kirin-review-comparison-mark{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 18px!important;
  width:18px!important;
  min-width:18px!important;
  max-width:18px!important;
  height:18px!important;
  margin:0!important;
  padding:0!important;
  font-style:normal!important;
  font-weight:800!important;
  line-height:1!important;
  text-align:center!important;
}
.kirin-review-comparison-horse>.kirin-review-comparison-mark--primary{
  color:#d85b5b!important;
}
.kirin-review-comparison-horse>.kirin-review-comparison-mark--secondary{
  color:#f2f4f2!important;
}
.kirin-review-comparison-horse>.kirin-review-comparison-mark-placeholder{
  visibility:visible!important;
  color:transparent!important;
  opacity:1!important;
  text-shadow:none!important;
  user-select:none!important;
}
/* === Sprint40 Review comparison semantic mark v9 END === */
