﻿/* 审查朱批组件：独立文件，避免与主视觉修订互相覆盖。 */
.entry-review-stack {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .4rem;
}

.review-seal {
  --review-ink: #8b2d27;
  position: relative;
  display: inline-flex;
  width: 3.15rem;
  height: 3.15rem;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  color: var(--review-ink);
  border: 2px solid currentColor;
  outline: 1px solid rgba(139, 45, 39, .45);
  outline-offset: -5px;
  background: rgba(247, 244, 237, .9);
  font-family: var(--display, serif);
  transform: rotate(-3deg);
  letter-spacing: .04em;
  box-shadow: 0 1px 0 rgba(30, 20, 12, .1);
}
.review-seal::before {
  content: "";
  position: absolute;
  inset: 4px;
  border: 1px dashed rgba(139, 45, 39, .5);
  pointer-events: none;
}
.review-seal::after {
  content: "";
  position: absolute;
  right: 2px;
  bottom: 7px;
  width: 8px;
  height: 3px;
  background: var(--paper-card, #f7f4ed);
  opacity: .7;
  transform: rotate(-18deg);
}
.review-seal i {
  position: absolute;
  top: .08rem;
  left: .2rem;
  font-style: normal;
  font-size: .52rem;
  opacity: .68;
}
.review-seal b {
  writing-mode: vertical-rl;
  text-orientation: upright;
  font-size: .78rem;
  line-height: 1;
  font-weight: 600;
}
.review-seal.review-notes { --review-ink: #9d3b31; transform: rotate(2deg); }
.review-seal.review-revise {
  --review-ink: #672922;
  border-style: double;
  border-width: 3px;
  background: rgba(103, 41, 34, .08);
  transform: rotate(-7deg);
}
.review-seal.review-pending {
  --review-ink: #777067;
  border-style: dotted;
  opacity: .78;
  transform: none;
}
.review-seal.review-exempt { --review-ink: #68635c; opacity: .72; }
.review-seal.is-compact {
  width: 1.55rem;
  height: 1.55rem;
  border-width: 1px;
  outline: none;
  transform: rotate(-3deg);
}
.review-seal.is-compact::before { inset: 2px; }
.review-seal.is-compact::after,
.review-seal.is-compact i { display: none; }
.review-seal.is-compact b {
  writing-mode: horizontal-tb;
  font-size: .55rem;
  letter-spacing: 0;
}

.entry-row.review-revise {
  border-color: rgba(103, 41, 34, .52) !important;
  background: linear-gradient(90deg, rgba(103, 41, 34, .08), transparent 25%), var(--paper-card, #f7f4ed);
}
.entry-row.review-pending { border-style: dashed; }
.entry-review-stack .badge { opacity: .6; font-size: .7rem; }

.review-ledger {
  margin: 1rem max(1rem, calc((100% - var(--max, 1080px)) / 2)) 1.45rem;
  padding: .85rem 1rem .95rem;
  border: 1px solid rgba(122, 46, 40, .34);
  border-left: 5px solid #7a2e28;
  background: linear-gradient(110deg, rgba(122, 46, 40, .09), transparent 40%), var(--paper-card, #f7f4ed);
  box-shadow: 0 6px 24px rgba(30, 20, 12, .05);
}
.review-ledger.is-compact { margin: .8rem 0 1rem; }
.review-ledger-head {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: .7rem;
}
.review-ledger-kicker {
  color: #7a2e28;
  font-family: var(--display, serif);
  letter-spacing: .16em;
}
.review-ledger-head b { font-family: var(--display, serif); font-weight: 500; }
.review-ledger-head button {
  margin-left: auto;
  padding: .3rem .62rem;
  border: 1px solid rgba(122, 46, 40, .42);
  color: #7a2e28;
  background: transparent;
  font-family: var(--serif, serif);
}
.review-ledger-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .45rem;
}
.review-count {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: .5rem;
  align-items: center;
  padding: .45rem .6rem;
  border: 1px solid rgba(26, 22, 18, .1);
  background: rgba(255, 255, 255, .3);
}
.review-count i {
  grid-row: 1 / 3;
  display: grid;
  place-items: center;
  width: 1.65rem;
  height: 1.65rem;
  border: 1px solid currentColor;
  font-style: normal;
  font-family: var(--display, serif);
}
.review-count b { font-family: var(--display, serif); font-size: 1.05rem; font-weight: 500; }
.review-count small { color: var(--ink-mute, #6a6258); }
.review-count.passed, .review-count.notes { color: #7a2e28; }
.review-count.revise { color: #672922; }
.review-count.pending { color: #777067; }

.gold-path .review-seal,
.gallery-card .review-seal,
.spine-node .review-seal { z-index: 3; }
.gp-node .review-seal {
  position: absolute;
  top: -.3rem;
  right: -.55rem;
}
.gallery-card { position: relative; }
.gallery-card > .review-seal {
  position: absolute;
  right: .45rem;
  top: .45rem;
}
.track-lane-list .review-seal { margin-left: auto; }

.reader-review {
  display: flex;
  align-items: center;
  gap: .8rem;
  padding: .62rem 1.25rem;
  border-bottom: 1px solid rgba(26, 22, 18, .1);
  background: linear-gradient(90deg, rgba(122, 46, 40, .11), transparent 65%), var(--paper-card, #f7f4ed);
}
.reader-review[hidden] { display: none !important; }
.reader-review > span:not(.review-seal) {
  flex: 1;
  color: var(--ink-soft, #3a342c);
  font-size: .86rem;
}
.reader-review > span:not(.review-seal) b {
  display: block;
  margin-bottom: .1rem;
  color: #7a2e28;
  font-family: var(--display, serif);
  letter-spacing: .12em;
}
.reader-review small { display: block; margin-top: .12rem; color: var(--ink-mute, #6a6258); }
.reader-review button {
  padding: .35rem .68rem;
  border: 1px solid rgba(122, 46, 40, .42);
  color: #7a2e28;
  background: transparent;
  white-space: nowrap;
  font-family: var(--serif, serif);
}
.reader-review.review-revise {
  background: linear-gradient(90deg, rgba(103, 41, 34, .18), transparent 70%), var(--paper-card, #f7f4ed);
}

body[data-mode="dark"] .review-ledger,
body[data-mode="dark"] .reader-review {
  background: linear-gradient(90deg, rgba(196, 88, 75, .12), transparent 65%), #211b16;
  border-color: rgba(196, 88, 75, .32);
}
body[data-mode="dark"] .review-seal {
  background: #211b16;
  color: #ce6c61;
}
body[data-mode="dark"] .review-count { background: rgba(255, 255, 255, .025); }

@media (max-width: 900px) {
  .entry-review-stack .badge { display: none; }
  .entry-review-stack .review-seal { display: inline-flex; }
  .review-ledger { margin: .8rem .75rem 1.1rem; }
  .review-ledger-grid { grid-template-columns: 1fr 1fr; }
  .review-ledger-head { flex-wrap: wrap; }
  .review-ledger-head button { margin-left: 0; }
  .reader-review { align-items: flex-start; padding: .55rem .75rem; }
  .reader-review .review-seal { width: 2.65rem; height: 2.65rem; }
  .reader-review button { align-self: center; }
}
